diff --git a/index.html b/index.html index c256b89..f98ff35 100644 --- a/index.html +++ b/index.html @@ -5,9 +5,9 @@ Vite App - - - + + +
diff --git a/package.json b/package.json index 4a4a5bc..dce1cb4 100644 --- a/package.json +++ b/package.json @@ -45,5 +45,12 @@ "vite-plugin-html": "^2.1.2", "vite-plugin-mock": "^2.9.6", "vite-plugin-vue-setup-extend": "^0.4.0" + }, + "eslintConfig": { + "globals": { + "Cesium": true, + "scene": true, + "viewer": true + } } -} +} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json new file mode 100644 index 0000000..0dbf157 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":0,"numberOfSamples":1000,"samples":[-0.002403025022753476,-2.5083047211757836e-5,-1.721638967214743e-8,-0.002402558217007106,-2.5020003017226545e-5,-1.7146589882925253e-8,-0.002402152743739069,-2.4908815008776256e-5,-1.7018183343380784e-8,-0.0024018177616850914,-2.4779340864272868e-5,-1.686693112266686e-8,-0.0024015512294922256,-2.4661265859267777e-5,-1.672851429567895e-8,-0.0024013415089134365,-2.4580601237402673e-5,-1.6634308307010567e-8,-0.0024011692853140917,-2.4557354638250633e-5,-1.660856911234815e-8,-0.0024010094083213077,-2.460379520847823e-5,-1.666634004388421e-8,-0.002400832781870665,-2.472274606391698e-5,-1.681138635859172e-8,-0.0024006088674261195,-2.490565851910724e-5,-1.7033840158805374e-8,-0.0024003096414815053,-2.513083477542098e-5,-1.7307985763326293e-8,-0.002399915678730765,-2.5363106308028472e-5,-1.759177707540246e-8,-0.0023994239684226163,-2.5557205638682287e-5,-1.7830822072448312e-8,-0.0023988549431304905,-2.566700881355288e-5,-1.7969488578482e-8,-0.0023982538707374547,-2.5660422954022525e-5,-1.7968844164137065e-8,-0.002397681821948537,-2.553480284678542e-5,-1.7825226886235993e-8,-0.0023971964165357008,-2.53237668313255e-5,-1.7578462540315414e-8,-0.002396830441918346,-2.50885777844268e-5,-1.7301586465142487e-8,-0.0023965800106651434,-2.4896546614298096e-5,-1.7075078798371497e-8,-0.0023964084361551537,-2.4797687943490375e-5,-1.695902560230991e-8,-0.002396262002993096,-2.481096708533641e-5,-1.6976666372280337e-8,-0.0023960882393536166,-2.4923817586803518e-5,-1.7113670694608337e-8,-0.002395849219877066,-2.5101106375207836e-5,-1.732863106912266e-8,-0.002395527525579831,-2.5297461255455714e-5,-1.756761197379987e-8,-0.0023951260596151974,-2.546854998291281e-5,-1.7777564319951067e-8,-0.0023946640036132836,-2.5579325396643004e-5,-1.7916241394922998e-8,-0.0023941708783994835,-2.5608875350224024e-5,-1.7958135357141878e-8,-0.0023936800199459637,-2.5552141704174967e-5,-1.7896681829365477e-8,-0.00239322243029576,-2.5418865388500117e-5,-1.774311016303839e-8,-0.0023928218677541743,-2.5230314934074022e-5,-1.7522587181791123e-8,-0.0023924917832175113,-2.5014690159013176e-5,-1.7268730448048223e-8,-0.0023922342643846748,-2.480218762163173e-5,-1.7017686942652696e-8,-0.0023920407464684762,-2.4620565317509125e-5,-1.6802798466007283e-8,-0.0023918939307276768,-2.4491771693316273e-5,-1.6650542584010726e-8,-0.0023917702332855676,-2.442975015807349e-5,-1.6577888357278284e-8,-0.002391642329452238,-2.443909807420655e-5,-1.6590679729922046e-8,-0.002391481763245852,-2.4514179502452957e-5,-1.6682551340715887e-8,-0.0023912619080620466,-2.4638499724969643e-5,-1.6834129065335303e-8,-0.002390961805205984,-2.478455800610903e-5,-1.701276797456279e-8,-0.00239057134744484,-2.4915132198915024e-5,-1.717399678816932e-8,-0.0023900974268101054,-2.4987729973603072e-5,-1.7266795508165544e-8,-0.0023895689055318833,-2.496391501976109e-5,-1.7244787681999786e-8,-0.002389036165074365,-2.4823284691699932e-5,-1.7083063873624844e-8,-0.002388560578292379,-2.4577378315217863e-5,-1.6794918110509053e-8,-0.0023881937570601162,-2.4274142413621198e-5,-1.643724545979219e-8,-0.0023879553394346147,-2.3985163329236852e-5,-1.6095335313882396e-8,-0.002387823242597225,-2.3778727505381422e-5,-1.5850778179207802e-8,-0.002387743703083488,-2.3693514905278695e-5,-1.575012576846581e-8,-0.002387654469699301,-2.3727803248252375e-5,-1.57919573836453e-8,-0.0023875068224310926,-2.384701163322787e-5,-1.5935693828749185e-8,-0.0023872766838733636,-2.4000872036063545e-5,-1.6121849968027748e-8,-0.0023869645383715133,-2.4139837531397063e-5,-1.6291451853276617e-8,-0.0023865890688437295,-2.4225578577636494e-5,-1.6398545934918142e-8,-0.002386179207668243,-2.4235415814278647e-5,-1.641560182566368e-8,-0.0023857671367677994,-2.4162608465253676e-5,-1.633403013000638e-8,-0.00238538293231372,-2.4014446579879058e-5,-1.6162059832962554e-8,-0.002385050648932289,-2.3809267842749758e-5,-1.5921265822080736e-8,-0.0023847856192039767,-2.357281279621325e-5,-1.564223465313254e-8,-0.002384592973846085,-2.333418942320294e-5,-1.5359717819261274e-8,-0.0023844674152753756,-2.3121781930974167e-5,-1.5107704928910368e-8,-0.0023843942234786524,-2.2959461734624766e-5,-1.491486592392592e-8,-0.002384351361188566,-2.2863520256191973e-5,-1.4800873864748202e-8,-0.0023843123252193354,-2.28406536006252e-5,-1.4773996666932113e-8,-0.0023842493365599203,-2.2887020091128393e-5,-1.4829969279080835e-8,-0.0023841366567967904,-2.2988230871289267e-5,-1.4951960812478233e-8,-0.0023839539952364617,-2.312021069380629e-5,-1.5111546301631272e-8,-0.00238369008534005,-2.3251022890859802e-5,-1.527079819049034e-8,-0.0023833464925758774,-2.3344139544444378e-5,-1.5386101234343148e-8,-0.002382941139623567,-2.336411463944466e-5,-1.5414884137776942e-8,-0.002382509826925251,-2.328539769468119e-5,-1.532618136616557e-8,-0.0023821027927208825,-2.3103440347943915e-5,-1.5114003628255345e-8,-0.002381773349088804,-2.284408291453904e-5,-1.4808671898883374e-8,-0.0023815590512039917,-2.2563826220574735e-5,-1.4477243667166011e-8,-0.002381463086871345,-2.233471929550198e-5,-1.4205559558666824e-8,-0.0023814485095478804,-2.221697578834785e-5,-1.4065641166745777e-8,-0.002381452228381859,-2.2233998994991225e-5,-1.4085907881538568e-8,-0.002381411455037569,-2.2365307161191684e-5,-1.424262147988882e-8,-0.0023812864408547367,-2.2559894107652725e-5,-1.447559680357265e-8,-0.002381068549780454,-2.2758766135733266e-5,-1.4714854003566721e-8,-0.0023807747559344136,-2.291337561706086e-5,-1.4902487127724783e-8,-0.002380436370789755,-2.2994297064707167e-5,-1.5003052078078702e-8,-0.0023800885646524635,-2.299177707261808e-5,-1.5004382649226507e-8,-0.00237976327801646,-2.291211671228343e-5,-1.4913466509235396e-8,-0.0023794853741548514,-2.277298527889861e-5,-1.4750994633350504e-8,-0.0023792708581126575,-2.2599122259547465e-5,-1.4546281765613793e-8,-0.0023791261518308006,-2.241861685502684e-5,-1.4332799297124966e-8,-0.002379048025038435,-2.2259517123002332e-5,-1.4144070736454437e-8,-0.002379024159088545,-2.214660348294054e-5,-1.4009774292460906e-8,-0.0023790344674725033,-2.209831973031592e-5,-1.395206580492697e-8,-0.0023790533562057336,-2.2124111902023713e-5,-1.3982415286808531e-8,-0.002379052917494198,-2.222265873839312e-5,-1.4099513692685225e-8,-0.0023790067355613062,-2.238139064397462e-5,-1.428869841454831e-8,-0.002378893869389061,-2.257747476862916e-5,-1.4523091866730754e-8,-0.002378702581053121,-2.2780337278386994e-5,-1.476653436627111e-8,-0.002378433361551305,-2.2955662245878917e-5,-1.4978254730954575e-8,-0.002378100828725866,-2.3070719458652143e-5,-1.511914018072533e-8,-0.0023777339193535064,-2.310095367991105e-5,-1.515956714522654e-8,-0.0023773732909614727,-2.303748192499462e-5,-1.5088399696609955e-8,-0.0023770645160716658,-2.2893966475516838e-5,-1.492131520640025e-8,-0.002376846389675512,-2.2709585344523315e-5,-1.4704506770614907e-8,-0.0023767362857042957,-2.2543662682762967e-5,-1.4508420483594385e-8,-0.0023767187552697256,-2.2459283627088534e-5,-1.4408307234147157e-8,-0.0023767459611238515,-2.2499820209175073e-5,-1.445625065299755e-8,-0.0023767538670920077,-2.2670163085399482e-5,-1.4658709621930782e-8,-0.0023766872411040843,-2.2934727415897178e-5,-1.4973964372283597e-8,-0.0023765193201164465,-2.323369224805631e-5,-1.5331258141108677e-8,-0.0023762563410213845,-2.350669143427009e-5,-1.5658866089500266e-8,-0.002375928430938125,-2.371079089789632e-5,-1.5905466616878e-8,-0.0023755754730009244,-2.382701217823089e-5,-1.6047996748580552e-8,-0.0023752354105984904,-2.3857755177899014e-5,-1.6088754695381856e-8,-0.002374937643938984,-2.3820288416794153e-5,-1.6047823960984603e-8,-0.002374700710601401,-2.3740166302795695e-5,-1.5955340321399732e-8,-0.0023745323579410426,-2.364615831678585e-5,-1.584546360315411e-8,-0.002374430478790293,-2.356666639934087e-5,-1.575205426032653e-8,-0.002374384221762089,-2.352701024171114e-5,-1.57053729084508e-8,-0.0023743752258978223,-2.3547031862098734e-5,-1.572919102890182e-8,-0.0023743792463522813,-2.3638741087943782e-5,-1.5837991897107692e-8,-0.002374368580960303,-2.380412406762251e-5,-1.60343866710735e-8,-0.002374315566041234,-2.403369636554169e-5,-1.6307405665562255e-8,-0.0023741969508027684,-2.4306554286211768E-05,-1.663253558578559e-8,-0.0023739984897390765,-2.4592488041431972e-5,-1.6974166769903272e-8,-0.0023737187937815855,-2.485635257581502e-5,-1.729069822860392e-8,-0.0023733713634909127,-2.506433547134887e-5,-1.75419012861819e-8,-0.002372983923689407,-2.5191127286277645e-5,-1.769739737193478e-8,-0.002372594652471399,-2.5226659292504724e-5,-1.774469317666995e-8,-0.0023722453489884105,-2.518097690876975e-5,-1.7695084665231785e-8,-0.0023719720500917853,-2.508558541252764e-5,-1.758542950683843e-8,-0.0023717945137316262,-2.4989429346639012e-5,-1.7473550411127092e-8,-0.002371707467356645,-2.494832237534192e-5,-1.7425795584798645e-8,-0.002371677894372136,-2.5008867215187453e-5,-1.7497939205762146e-8,-0.0023716521953735695,-2.519167607485704e-5,-1.7715125311405072e-8,-0.002371573067713854,-2.548183725590846e-5,-1.8060341886620035e-8,-0.0023713996123746663,-2.5833052724984733e-5,-1.8479137373701417e-8,-0.002371120733790304,-2.6184543627960917e-5,-1.8899572452170946e-8,-0.002370755545988175,-2.6481976563885553e-5,-1.925703522704526e-8,-0.0023703426289241364,-2.6692240399045317e-5,-1.951183288718046e-8,-0.002369925545652223,-2.6807480392539526e-5,-1.9654094044252732e-8,-0.0023695414256623836,-2.6840554567015164e-5,-1.969852847864199e-8,-0.0023692152111846727,-2.681698378371743e-5,-1.9675010651785046e-8,-0.0023689586030738027,-2.676742403134865e-5,-1.961971546979294e-8,-0.002368771517557994,-2.672230169153053e-5,-1.9568738474777108e-8,-0.0023686442754798733,-2.6708491821190418e-5,-1.9554090992955217e-8,-0.0023685596467347297,-2.6747237733667733e-5,-1.960116950419851e-8,-0.0023684946354959537,-2.68525198499682e-5,-1.97267938434712e-8,-0.002368422377939945,-2.7029396546161804e-5,-1.9937245693158044e-8,-0.002368314731930507,-2.7272358283705946e-5,-2.0226327583010683e-8,-0.002368145999280894,-2.7564325967266348e-5,-2.0574158419038293e-8,-0.0023678977178564387,-2.7877297359742607e-5,-2.0947880438817348e-8,-0.002367563716932125,-2.8175607003251493e-5,-2.13054362009557e-8,-0.0023671538835179904,-2.842219417818171e-5,-2.1602912348808545e-8,-0.0023666947656918185,-2.8587099112517685e-5,-2.1804557557978034e-8,-0.002366225711058261,-2.865603679897383e-5,-2.1892948933762033e-8,-0.0023657906850576426,-2.8636207775475263e-5,-2.1875955583981355e-8,-0.0023654275601418958,-2.855700316341736e-5,-2.178772414823076e-8,-0.0023651577407058874,-2.8464659629023123e-5,-2.168254086275059e-8,-0.002364979157822262,-2.8411626526095733e-5,-2.162241058543541e-8,-0.0023648650418965824,-2.8442979454826838e-5,-2.166103733977592e-8,-0.0023647696710966484,-2.858341235909699e-5,-2.182833892955203e-8,-0.0023646404647817425,-2.8828964162584613e-5,-2.2120438590644107e-8,-0.002364433315624853,-2.9147094222646294e-5,-2.2499504905555506e-8,-0.0023641258489594833,-2.9486173871872614e-5,-2.2904806040155516e-8,-0.0023637232753826293,-2.979130710829397e-5,-2.3271375506734424e-8,-0.0023632546433513643,-3.0020135017275484e-5,-2.3548762139194928e-8,-0.002362761919778162,-3.0152532930312014e-5,-2.371261331000258e-8,-0.002362287259213515,-3.019176737033716e-5,-2.3766181246292998e-8,-0.002361863354709199,-3.015895406508579e-5,-2.3733906423839642e-8,-0.0023615089325091636,-3.0084812691876054e-5,-2.3651770841389847e-8,-0.00236122863993826,-3.0002168291456246e-5,-2.355846990290136e-8,-0.002361015342081342,-2.9940748794497447e-5,-2.3489231721847384e-8,-0.002360853090462664,-2.99242064708113e-5,-2.347223119682423e-8,-0.0023607198261957722,-2.9968579872684983e-5,-2.352671480071416e-8,-0.0023605896206938806,-3.008134175253829e-5,-2.3661849584525067e-8,-0.002360434817332799,-3.0260449420114613e-5,-2.3875596082544623e-8,-0.002360228724551759,-3.049336232044938e-5,-2.4153533560309604e-8,-0.002359949398259028,-3.0756647438100245e-5,-2.4468344706144205e-8,-0.0023595845450922696,-3.1017291850921676e-5,-2.4781284325725616e-8,-0.0023591366902662777,-3.1236974924948935e-5,-2.5047141991886597e-8,-0.0023586265980894577,-3.1379935910133564e-5,-2.5223485405296768e-8,-0.0023580922330621156,-3.1423318194842274e-5,-2.5282880705071384e-8,-0.002357581446433621,-3.136654245445751e-5,-2.5224014627911062e-8,-0.0023571393504713037,-3.123511772789739e-5,-2.507629936540768e-8,-0.0023567945569627356,-3.107585378526121e-5,-2.4894381030997065e-8,-0.002356549808293787,-3.094425143746427e-5,-2.474345004782824e-8,-0.0023563808398743354,-3.088856588907149e-5,-2.468058353057825e-8,-0.002356243673347264,-3.093631165990455e-5,-2.473883210055294e-8,-0.0023560873309623623,-3.108742146766624e-5,-2.491898425872327e-8,-0.002355867681615853,-3.131543790559243e-5,-2.5190695953120915e-8,-0.0023555585115042363,-3.157564626292947e-5,-2.5501820575724358e-8,-0.0023551570793018816,-3.1817414987353845e-5,-2.5792819079502532e-8,-0.0023546830395721335,-3.199708556138092e-5,-2.601196397786125e-8,-0.0023541715928763573,-3.2087761735616844e-5,-2.612699814404651e-8,-0.0023536634728575476,-3.208356074308803e-5,-2.6130313106072467e-8,-0.002353195112875602,-3.199796079202877e-5,-2.6037164980856268e-8,-0.0023527917127598285,-3.185788963483199e-5,-2.5878832104811108e-8,-0.0023524643421163408,-3.1696231806253835e-5,-2.569384848742031e-8,-0.002352210558042157,-3.15451429795799e-5,-2.5520122001298037e-8,-0.002352017095867703,-3.1431404225224024e-5,-2.5389404645823923e-8,-0.0023518632011028735,-3.137387309610943e-5,-2.532421829510982e-8,-0.0023517237164243985,-3.138241693585632e-5,-2.5336544634470662e-8,-0.0023515716747720653,-3.1457557889187125e-5,-2.542738407693742e-8,-0.002351380666688492,-3.159026777706401e-5,-2.5586503563180176e-8,-0.002351127544409854,-3.1761819323126654e-5,-2.5792232842799336e-8,-0.002350795997438297,-3.194420346482523e-5,-2.601189004377488e-8,-0.00235038109753939,-3.210218902073709e-5,-2.620411988036901e-8,-0.0023498939766626002,-3.2198362784118887e-5,-2.6324761207664516e-8,-0.002349364441336059,-3.2201906185988056e-5,-2.6337171516754927e-8,-0.002348838300113838,-3.2099820884316304e-5,-2.622549250364978e-8,-0.002348367104865175,-3.1906193387378433E-05,-2.6005638953133388e-8,-0.002347991928908947,-3.16632964565759e-5,-2.572670334096174e-8,-0.0023477278385863123,-3.1430895046698076e-5,-2.5458524871709287e-8,-0.0023475573302447783,-3.1266834683295797e-5,-2.526903432937616e-8,-0.0023474365947856223,-3.1207840834265524e-5,-2.5201788974958383e-8,-0.0023473111312674834,-3.125926073193481e-5,-2.5263855985966862e-8,-0.0023471329217680113,-3.139668630853095e-5,-2.5427484190962568e-8,-0.0023468725828316842,-3.157629805487812e-5,-2.564195034641037e-8,-0.00234652400711633,-3.174838223286182e-5,-2.5849203831761563e-8,-0.0023461023891960834,-3.1869477830964374e-5,-2.5998061315297644e-8,-0.0023456379459007243,-3.191071358278629e-5,-2.6054089874945166e-8,-0.002345167714297938,-3.1861618822297345e-5,-2.6004274687434745e-8,-0.0023447273964050676,-3.1729710102991125e-5,-2.5856743363241975e-8,-0.0023443447623778383,-3.15367263237694e-5,-2.5636504725218675e-8,-0.002344035611415732,-3.1312828941514695e-5,-2.5378716588854288e-8,-0.0023438025868741026,-3.1090321324122036e-5,-2.5121307043493483e-8,-0.002343636419494298,-3.0898215687290654e-5,-2.4898533605619872e-8,-0.0023435187346924568,-3.075840762917019e-5,-2.473640851696107e-8,-0.002343425470101371,-3.06836209512552e-5,-2.4650217468068794e-8,-0.002343330156203922,-3.067678824239108e-5,-2.46437581014699e-8,-0.0023432067557343844,-3.0731268964403044e-5,-2.4709591242115973e-8,-0.002343032205144756,-3.083142896996042e-5,-2.482971769728214e-8,-0.0023427890317182145,-3.09534849684997e-5,-2.4976536733214626e-8,-0.002342468429998982,-3.1066960867543575e-5,-2.5114480866863458e-8,-0.0023420738829506476,-3.113759753821509e-5,-2.520334251191813e-8,-0.0023416245655075696,-3.113286617338482e-5,-2.5204692814982757e-8,-0.002341156456037676,-3.1030702451985074e-5,-2.5092155875587517e-8,-0.0023407180452088712,-3.083007768640861e-5,-2.4863906224778936e-8,-0.0023403583393829482,-3.055874873840108e-5,-2.4551880478986413e-8,-0.002340109110049135,-3.027131810595971e-5,-2.421961909495806e-8,-0.0023399695530012623,-3.0033690127916367e-5,-2.394416454197952e-8,-0.0023399035996637175,-2.9898874983898596e-5,-2.378781857784365e-8,-0.0023398534173924984,-2.9886919236503446e-5,-2.3774659522504135e-8,-0.002339761711113448,-2.9979953784273124e-5,-2.388461211409085e-8,-0.0023395905205925225,-3.0132912884441697e-5,-2.4065731184666787e-8,-0.002339328969507674,-3.0291463113513845e-5,-2.4254908440399182e-8,-0.0023389905263682936,-3.0407909014329455e-5,-2.439632805788379e-8,-0.002338604647812188,-3.0450610353352113e-5,-2.4452510933726005e-8,-0.002338207386718835,-3.0406942615971795e-5,-2.4407957962391716e-8,-0.002337833512955816,-3.0281802581374335e-5,-2.4267646192649814e-8,-0.002337510916804099,-3.009374007485284e-5,-2.405271127085375e-8,-0.00233725717872705,-2.9870050109659613e-5,-2.379481298482102e-8,-0.0023370780896862574,-2.96415499392353e-5,-2.3530020163429226e-8,-0.0023369679571642664,-2.943765111817507e-5,-2.3292964938693384e-8,-0.002336911380731853,-2.928228272071026e-5,-2.311196745938867e-8,-0.0023368860519105425,-2.9191004014698512e-5,-2.3005572673000774e-8,-0.0023368660995786595,-2.9169474421886248e-5,-2.2980719814710166e-8,-0.002336825467155114,-2.921325593941368e-5,-2.3032512896595408e-8,-0.0023367409423963475,-2.9308629309781252e-5,-2.3145193486284356e-8,-0.002336594789812839,-2.94340434461076e-5,-2.329383537317645e-8,-0.002336377141683103,-2.9562078747041886e-5,-2.3446595994696407e-8,-0.0023360882937399465,-2.9662099579462933e-5,-2.3567732219797592e-8,-0.0023357408585416017,-2.9704065354320472e-5,-2.36219691020052e-8,-0.0023353611169372288,-2.9664178807460198e-5,-2.3581074777115405e-8,-0.002334987901996926,-2.953256184083392e-5,-2.3432902238347995e-8,-0.002334666656879615,-2.9321444023828176e-5,-2.3191111499019182e-8,-0.002334437144125591,-2.906967526378198e-5,-2.2900614292587276e-8,-0.0023343170286952335,-2.8837540628692366e-5,-2.263164135915559e-8,-0.002334289377364724,-2.868863915936848e-5,-2.245863079739621e-8,-0.0023343042731189534,-2.8664576401788524e-5,-2.243065985991554e-8,-0.002334297427240077,-2.8766728884431434e-5,-2.2550060161150142e-8,-0.00233421602436304,-2.8956937999179782e-5,-2.277304822604038e-8,-0.0023340366493231914,-2.9175695277364925e-5,-2.3030723691705274e-8,-0.0023337675567428337,-2.9365148437702835e-5,-2.325572494540632e-8,-0.002333439019167699,-2.948499872544599e-5,-2.3400714149062195e-8,-0.002333090235900311,-2.9517803647735512e-5,-2.3444668908795366e-8,-0.002332758701346869,-2.9466638538369463e-5,-2.3390385484474364e-8,-0.0023324738052357035,-2.934937562502968e-5,-2.3258055105401835e-8,-0.0023322540424882687,-2.919255582833955e-5,-2.3078281732160556e-8,-0.0023321064600515273,-2.902614663617285e-5,-2.2885999487207492e-8,-0.002332027286009202,-2.8879263050207602e-5,-2.271540058262342e-8,-0.0023320033619865835,-2.877662704188809e-5,-2.259567613496163e-8,-0.002332014289946477,-2.873576097567269e-5,-2.2547631244607782e-8,-0.002332035177135321,-2.8765014379972653e-5,-2.2581326280258576e-8,-0.0023320398449503863,-2.8862571973660708e-5,-2.2694919143851268e-8,-0.0023320042471653172,-2.9016654866027363e-5,-2.287492871831799e-8,-0.0023319096779583115,-2.9206946607571382e-5,-2.3097917898279694e-8,-0.002331745434296553,-2.940702053860624e-5,-2.333330260051453e-8,-0.0023315107913132412,-2.9587554741398894e-5,-2.354703004535643e-8,-0.002331216183994399,-2.9720241445388588e-5,-2.370604059396504e-8,-0.0023308833968589734,-2.9782371874826208e-5,-2.378354402409868e-8,-0.0023305442821816677,-2.976211745161164e-5,-2.376519028712881e-8,-0.002330237019842478,-2.9664138028036154e-5,-2.3655730605611676e-8,-0.002329998741183291,-2.9513937315933643e-5,-2.3484296706424633e-8,-0.0023298543227104943,-2.935776247905231e-5,-2.3304483190610554e-8,-0.0023298039688696283,-2.9254146272590037e-5,-2.3184600111912306e-8,-0.0023298161627486316,-2.9255771124284795e-5,-2.3186513526067538e-8,-0.002329833717182933,-2.9387407680729007e-5,-2.3339799540173714e-8,-0.00232979429485865,-2.963251445919433e-5,-2.3625939095795707e-8,-0.0023296555485235837,-2.993876684354111e-5,-2.3984573422930422e-8,-0.002329410031430962,-3.0240089226068864e-5,-2.433902191722381e-8,-0.002329082684861528,-3.048133910260082e-5,-2.4624941076546366e-8,-0.002328716252266335,-3.063272313348873e-5,-2.4807118980201846e-8,-0.0023283552432151315,-3.0691090518933916e-5,-2.4881121231374615e-8,-0.002328035235814446,-3.067316204035687e-5,-2.486564617259907e-8,-0.002327778453652459,-3.060672619689269e-5,-2.4792504271784795e-8,-0.0023275936390781573,-3.052324005011218e-5,-2.4698123022970693e-8,-0.002327477917828302,-3.0452785078251434e-5,-2.461765146651857e-8,-0.002327419112590265,-3.0420884134364205E-05,-2.458113394257909e-8,-0.0023273980040969685,-3.0446326357327403e-5,-2.4610839446448034e-8,-0.002327390669521878,-3.0539531096370326e-5,-2.4719266183936192e-8,-0.0023273711094918687,-3.070139397965835e-5,-2.4907774784639605e-8,-0.002327314298389271,-3.0922803788878494e-5,-2.5166047977091938e-8,-0.002327199604182002,-3.118523180180453e-5,-2.5472802828543438e-8,-0.0023270141555905726,-3.146275582275373e-5,-2.579813850369303e-8,-0.002326755507257778,-3.1725524753218145e-5,-2.6107509797618743e-8,-0.002326433025242352,-3.194433915074523e-5,-2.636696380227279e-8,-0.00232606757107646,-3.2095816875852493E-05,-2.6549064620552972e-8,-0.0023256892347763903,-3.216744119251998e-5,-2.663874128588696e-8,-0.0023253330548705857,-3.216173673953351e-5,-2.6638224765391106e-8,-0.002325032753407156,-3.209873777588853e-5,-2.6570101510359574e-8,-0.0023248127299698297,-3.201549252585091e-5,-2.6476970450584947e-8,-0.002324679419257254,-3.1960909325668365e-5,-2.641563798078472e-8,-0.002324614738368727,-3.198471760129885e-5,-2.6444333423830437e-8,-0.0023245759518624605,-3.2121629871326e-5,-2.6604171937243653e-8,-0.002324505785473568,-3.237602913514e-5,-2.6901108196581215e-8,-0.0023243518127423596,-3.271591879496891e-5,-2.7298653087985366e-8,-0.00232408675837698,-3.308237216229446e-5,-2.772870037338478e-8,-0.0023237183421038277,-3.341134600686158e-5,-2.8116827565107905e-8,-0.0023232834120907914,-3.365603424276712e-5,-2.8408283829963784e-8,-0.0023228315250686865,-3.379852594585868e-5,-2.8581601521190148e-8,-0.0023224081917482394,-3.384823308876176e-5,-2.8646918820079517e-8,-0.0023220447513682056,-3.3832392487888304e-5,-2.8635163154902712e-8,-0.0023217556857669294,-3.378539642682306e-5,-2.8585851446400122e-8,-0.0023215406467797794,-3.374081042009061e-5,-2.8537897313167375e-8,-0.002321388188291431,-3.3726795999537757e-5,-2.8524238705810844e-8,-0.002321279357326137,-3.376398701175925e-5,-2.8569237172436706e-8,-0.002321190580067218,-3.3864561252015965e-5,-2.8687469509032147e-8,-0.0023210960815719848,-3.403170234189584e-5,-2.8883032294239802e-8,-0.0023209703112198727,-3.425921865422195e-5,-2.9149091545929388e-8,-0.0023207907692627456,-3.453153525414017e-5,-2.9467892708359517e-8,-0.002320541348280485,-3.4824632907782434e-5,-2.9811852888919886e-8,-0.002320215787982576,-3.510859047522046e-5,-3.014647119465895e-8,-0.002319820326628823,-3.5352020534393274e-5,-3.0435397604764066e-8,-0.002319374429235887,-3.5528027890910064e-5,-3.064726176518535e-8,-0.0023189086929537852,-3.562058707993201e-5,-3.0763027321289934e-8,-0.0023184596969337903,-3.562967431567573e-5,-3.078198150000386e-8,-0.0023180625159862473,-3.557348082881343e-5,-3.072444153370548e-8,-0.0023177424037032486,-3.548664144440317e-5,-3.062992075551395e-8,-0.0023175074984734543,-3.5414226963611394e-5,-3.0550393228261676e-8,-0.0023173444808164832,-3.5402047537825155e-5,-3.053919267474974e-8,-0.002317219043515323,-3.548478675955916e-5,-3.063722510387765e-8,-0.0023170825452282313,-3.567474791693208e-5,-3.085971138660794e-8,-0.0023168847150472982,-3.595522696647335e-5,-3.118819869005432e-8,-0.0023165894160324624,-3.628263070896687e-5,-3.157275232013399e-8,-0.0023161874027681608,-3.659879209134966e-5,-3.194610912976707e-8,-0.002315699674318987,-3.6849589557777495e-5,-3.224527727736699e-8,-0.002315169322935829,-3.7001624225642415e-5,-3.2430960432418255e-8,-0.002314646199700832,-3.704960690848625e-5,-3.249625130896201e-8,-0.0023141720768090047,-3.701289220350198e-5,-3.246278529929417e-8,-0.0023137719944856,-3.692533958583261e-5,-3.2369181497699095e-8,-0.002313452787336121,-3.682436937453514e-5,-3.225850415814049e-8,-0.002313206349815514,-3.674303927821273e-5,-3.216911319350878e-8,-0.002313014513893187,-3.6705975238209506e-5,-3.21298653443614e-8,-0.002312853494672486,-3.6728114464930174e-5,-3.215852030546475e-8,-0.0023126972338266515,-3.681481612065799e-5,-3.226175333094992e-8,-0.0023125198655322456,-3.696232465768661e-5,-3.24356389814037e-8,-0.002312297893017724,-3.7158178604489365e-5,-3.266612338087536e-8,-0.0023120126639769563,-3.7381726521067834e-5,-3.292962936131338e-8,-0.002311653424383115,-3.760539504033395e-5,-3.319450237088803e-8,-0.0023112206387045776,-3.7797568417562995e-5,-3.3424282093674193e-8,-0.002310728536788081,-3.7927679776685745e-5,-3.3583518129125895e-8,-0.0023102052694704335,-3.7973269632081315e-5,-3.3645883688399196e-8,-0.002309689114953737,-3.792741024238655e-5,-3.3602769741033175e-8,-0.002309220367796046,-3.780365018678395e-5,-3.34690861984953e-8,-0.0023088306454635615,-3.763560952953059e-5,-3.328295822689161e-8,-0.0023085331437765486,-3.7470095324169245e-5,-3.30979876994702e-8,-0.0023083175552887736,-3.7355299923970754e-5,-3.296981668241202e-8,-0.0023081517291295645,-3.732774019023125e-5,-3.2941121239366296e-8,-0.0023079897002703125,-3.740204716129852e-5,-3.302971182509186e-8,-0.0023077837234663535,-3.7566599907923365e-5,-3.322321468544985e-8,-0.0023074969972720206,-3.778618699150824e-5,-3.348181192736664e-8,-0.002307113642460123,-3.801111136025596e-5,-3.374850764245679e-8,-0.002306642967714749,-3.819047303514916e-5,-3.3964389987148476e-8,-0.0023061164179579287,-3.8285780849737995e-5,-3.40844388236443e-8,-0.0023055780533455137,-3.828042081343265e-5,-3.408864550347391e-8,-0.0023050720265702773,-3.818189606197478e-5,-3.3984813393723e-8,-0.0023046316398957264,-3.801683262139339e-5,-3.3802987367837267e-8,-0.00230427334288954,-3.7821682524135505e-5,-3.358486019035794e-8,-0.0023039963644423222,-3.7633111972824855e-5,-3.337272686138091e-8,-0.002303786336992908,-3.748100255910153e-5,-3.320135317605305e-8,-0.0023036204437704402,-3.738497046118624e-5,-3.3093833427999516e-8,-0.002303472191629436,-3.735370107695463e-5,-3.306068870435814e-8,-0.002303315004370737,-3.738581151208172e-5,-3.310077586295026e-8,-0.0023031247168510474,-3.7471158388023855e-5,-3.32027746012847e-8,-0.002302881512812013,-3.759204402485969e-5,-3.334659244660564e-8,-0.002302571933303701,-3.772437161974421e-5,-3.3504698526810776e-8,-0.0023021913377570913,-3.7839318120416736e-5,-3.364401288936653e-8,-0.0023017466592312736,-3.790639624397905e-5,-3.3729365113627754e-8,-0.002301258499438132,-3.789868982799408e-5,-3.3729469251606456e-8,-0.0023007607416336475,-3.780025860121621e-5,-3.362545368835861e-8,-0.0023002955727393715,-3.761398422436507e-5,-3.341996763976326e-8,-0.002299903135206751,-3.7366095073082776e-5,-3.314251715734096e-8,-0.002299608241321281,-3.7103131944292765e-5,-3.284613208267745e-8,-0.002299409859179875,-3.687991824381861e-5,-3.259369265324991e-8,-0.002299279285932504,-3.674229260682073e-5,-3.243819215569253e-8,-0.002299168823546775,-3.6712133551511284e-5,-3.240551750739637e-8,-0.002299027108588892,-3.678121604662647e-5,-3.248721326687466e-8,-0.0022988143521173038,-3.6915489318077446e-5,-3.2645093229978927e-8,-0.0022985121434507642,-3.706652291671608e-5,-3.282408232012828e-8,-0.0022981259731840605,-3.718510344513982e-5,-3.296765596479805e-8,-0.002297681444338649,-3.723291069296564e-5,-3.3031266622567177e-8,-0.0022972163826716816,-3.7189964304819385e-5,-3.299108395567988e-8,-0.002296771289655474,-3.705699893642229e-5,-3.284699771750507e-8,-0.0022963804162048507,-3.685301926143306e-5,-3.2620069474865724e-8,-0.0022960653412444033,-3.66092080660818e-5,-3.234570517089325e-8,-0.0022958321994601843,-3.6361104881873565e-5,-3.206471491834107e-8,-0.002295672602594345,-3.6141216362085723e-5,-3.181475278986125e-8,-0.002295567237924504,-3.5973699239903435e-5,-3.1624065630400416e-8,-0.0022954906243840873,-3.5871742882865936e-5,-3.150833328403298e-8,-0.002295415668514197,-3.583734289021038e-5,-3.1470303577740756e-8,-0.002295317231199662,-3.5862619387422194e-5,-3.15012747362056e-8,-0.002295174587684972,-3.593175025312556e-5,-3.158334026307848e-8,-0.0022949731503511582,-3.6022919077861825e-5,-3.169165951737354e-8,-0.0022947059593891967,-3.6110200777476796e-5,-3.1796616976641045e-8,-0.0022943752972072132,-3.616576445549112e-5,-3.186629056886203e-8,-0.002293994395917849,-3.616308491839482e-5,-3.1870055583428156e-8,-0.0022935884913046806,-3.608188698839053e-5,-3.1784218012190775e-8,-0.002293193570220022,-3.591490428985524e-5,-3.159981966187581e-8,-0.002292850700555697,-3.567488665407547e-5,-3.1330816136700846e-8,-0.0022925949121289655,-3.539799888834784e-5,-3.101814903088958e-8,-0.002292441079759657,-3.5138654460845667e-5,-3.072396888884776e-8,-0.0022923737482313526,-3.495377210004042e-5,-3.051367324612897e-8,-0.0022923487357085484,-3.4881645478195986e-5,-3.043169702193616e-8,-0.0022923082878944408,-3.492651926994169e-5,-3.048374540670587e-8,-0.0022922023645509603,-3.5057777584302726e-5,-3.063565736187704e-8,-0.002292004823110608,-3.522321745129158e-5,-3.0828335408719365e-8,-0.002291718031987991,-3.536782916311345e-5,-3.099901295008251e-8,-0.0022913672330241424,-3.544908418763723e-5,-3.109866179650461e-8,-0.002290990059070643,-3.544468044302114e-5,-3.1100956371175926e-8,-0.0022906260283061795,-3.535334262818601e-5,-3.1003445892457103e-8,-0.0022903084934227853,-3.5191150650947184e-5,-3.082366001102285e-8,-0.002290059645962504,-3.4985740590012e-5,-3.059271116004469e-8,-0.002289888308889336,-3.476990829758171e-5,-3.034806608016834e-8,-0.002289790112933232,-3.457553303386381e-5,-3.0126527996035566e-8,-0.0022897496397346197,-3.442855427528838e-5,-2.995832382862933e-8,-0.002289743927638933,-3.434557978525591e-5,-2.986303752963534e-8,-0.002289746588173612,-3.433235628935457e-5,-2.984772570762622e-8,-0.002289731806192985,-3.438399705495003e-5,-2.9907130752155833e-8,-0.0022896776371395563,-3.448658144544781e-5,-3.0025539997263514e-8,-0.002289568333240068,-3.4619516180843974e-5,-3.0179546880832127e-8,-0.002289395830989697,-3.47581192864351e-5,-3.034104020878307e-8,-0.0022891606980330746,-3.487624615385044e-5,-3.048017863245395e-8,-0.0022888727561433233,-3.494909690242651e-5,-3.0568516096956604e-8,-0.0022885513883073552,-3.4956571873741554e-5,-3.058275352336701e-8,-0.002288225022291335,-3.4887629910986334e-5,-3.050971134872694e-8,-0.0022879285346280604,-3.474558680788467e-5,-3.0352495822772635e-8,-0.002287697014005668,-3.4552914595581084e-5,-3.013619110840197e-8,-0.002287555258528512,-3.4352264826514714e-5,-2.990924381258495e-8,-0.002287505296293813,-3.419939650252042e-5,-2.9735499630763315e-8,-0.0022875185392014596,-3.414608973943245e-5,-2.9674650423240414e-8,-0.002287540654767576,-3.421841512072958e-5,-2.975725826269698e-8,-0.0022875109191809696,-3.44028369555647e-5,-2.9968681291149824e-8,-0.0022873866431173677,-3.4650463730046105e-5,-3.025373403994287e-8,-0.002287158332342123,-3.489747604808045e-5,-3.05398504214709e-8,-0.0022868484445149025,-3.5088852879194874e-5,-3.076405861695239e-8,-0.0022864982748903593,-3.519317267669936e-5,-3.0889870385194194e-8,-0.002286152562989151,-3.520525313625685e-5,-3.091044534452543e-8,-0.002285848351995372,-3.514064936767193e-5,-3.084259232463975e-8,-0.0022856095545583004,-3.5027359972136336e-5,-3.071759518882632e-8,-0.0022854458582351883,-3.4898128170332654e-5,-3.057260162184731e-8,-0.00228535406658743,-3.4784542000901826e-5,-3.0443888195242704e-8,-0.0022853205545476122,-3.471284955278595e-5,-3.0361936066289834e-8,-0.0022853242782383083,-3.4701131164836125e-5,-3.034799776992067e-8,-0.0022853401172956323,-3.475768108400181e-5,-3.0412079618106474e-8,-0.0022853423369857883,-3.488055943683937e-5,-3.055234935450222e-8,-0.0022853079331452636,-3.505829657473036e-5,-3.075595068991225e-8,-0.002285219540357508,-3.5271714452898415e-5,-3.1001145596984345e-8,-0.0022850675526555806,-3.5496617417606936e-5,-3.12604400979373e-8,-0.0022848513167228906,-3.5706935033342264e-5,-3.150417106161792e-8,-0.0022845794630886704,-3.587803665272236e-5,-3.170422273669897e-8,-0.0022842694256383967,-3.599011192601114e-5,-3.183778648177624e-8,-0.00228394612191299,-3.6031573527607656e-5,-3.1891182357691236e-8,-0.002283639559272516,-3.6002497987339216e-5,-3.1863829412209876e-8,-0.0022833807000028155,-3.591781523569677e-5,-3.17720571397393e-8,-0.002283194835117489,-3.580895633737797e-5,-3.1651234007313374e-8,-0.0022830926687873554,-3.572151453512309e-5,-3.155331255203707e-8,-0.0022830615120185546,-3.57062013456485e-5,-3.1536574359696766e-8,-0.002283061910144253,-3.5802515052971905e-5,-3.1646865496677e-8,-0.0022830358716624693,-3.602024681505544e-5,-3.1896238479571526e-8,-0.002282927452508825,-3.6329876875859376e-5,-3.2251745516056244e-8,-0.0022827062816265977,-3.667107036558002e-5,-3.264498114105585e-8,-0.0022823796709535715,-3.697658131461953e-5,-3.299928501542816e-8,-0.0022819864232603475,-3.719735460090399e-5,-3.325834215160285e-8,-0.0022815785791103415,-3.731532145924846e-5,-3.340080377913226e-8,-0.0022812032084957965,-3.734128205682896e-5,-3.3438034270071183e-8,-0.002280891871937716,-3.7304369843453694e-5,-3.3402379181189025e-8,-0.00228065814223643,-3.724061603780327e-5,-3.333439792808469e-8,-0.0022805000038872204,-3.718451764462349e-5,-3.327337443004344e-8,-0.0022804039844390635,-3.7164175330215406e-5,-3.325171023981485e-8,-0.002280349211641098,-3.7198996010101034e-5,-3.3292116454290506e-8,-0.0022803108906574855,-3.729879835377055e-5,-3.3406389414515064e-8,-0.002280263357184188,-3.746369139111816e-5,-3.359514042205903e-8,-0.0022801829142725643,-3.76845561343038e-5,-3.3848312986735143e-8,-0.0022800505440541212,-3.794419075362827e-5,-3.4146529008746734e-8,-0.002279854394613768,-3.821932509749697e-5,-3.446344080378021e-8,-0.002279591667380771,-3.8483592197162534e-5,-3.4769134737453335e-8,-0.0022792694769532365,-3.8711202674219674e-5,-3.503427192200282e-8,-0.002278904453787725,-3.888090559245803e-5,-3.523451107453436e-8,-0.002278520994022731,-3.897981593858639e-5,-3.5354790439935546e-8,-0.0022781481387727765,-3.900661067575245e-5,-3.539296714173588e-8,-0.002277815196272408,-3.897358681368924e-5,-3.536228182941742e-8,-0.0022775462453310945,-3.8907078916294634e-5,-3.5292063500544346e-8,-0.0022773537578315915,-3.88453723888866e-5,-3.5225611058902015e-8,-0.0022772323066882973,-3.88328268780596e-5,-3.5213664861948535e-8,-0.002277154719218136,-3.89093864059176e-5,-3.5302432695555914e-8,-0.0022770743013513575,-3.909671606337604e-5,-3.551757119061668e-8,-0.0022769361938568297,-3.93858582620144e-5,-3.584980135264396e-8,-0.0022766965332619883,-3.9734321357865546e-5,-3.625133407898208e-8,-0.002276341115211891,-4.007817531691193e-5,-3.664954907985626e-8,-0.0022758922917568173,-4.035551223226274e-5,-3.697373201351628e-8,-0.0022753992488523085,-4.0528709716748785e-5,-3.7180470529775404e-8,-0.0022749180581077707,-4.059371095721217e-5,-3.726429156698758e-8,-0.0022744933359550488,-4.057442247318822e-5,-3.7251455930854735e-8,-0.0022741491150162865,-4.0509294110553696e-5,-3.718495011122612e-8,-0.0022738888817427747,-4.043836498717976e-5,-3.7109976390399145e-8,-0.0022737006122365193,-4.0394935220934196e-5,-3.706454561541384e-8,-0.0022735628534328385,-4.0401953921682715e-5,-3.7075254422409025e-8,-0.0022734497848497666,-4.047142453162688e-5,-3.7156399239620105e-8,-0.0022733348583905645,-4.060512607912676e-5,-3.731060746631049e-8,-0.0022731934580261463,-4.0795705115488924e-5,-3.752998308750005e-8,-0.00227300512552994,-4.102789765037355e-5,-3.7797496246937914e-8,-0.0022727556876095496,-4.128004247365327e-5,-3.808875005360056e-8,-0.002272439315133133,-4.152626986166031e-5,-3.837450044928072e-8,-0.0022720601389120266,-4.173970137526162e-5,-3.862427282168575e-8,-0.0022716327599983676,-4.1896595491755895e-5,-3.8811002059216745e-8,-0.0022711810539608945,-4.1980908267824755e-5,-3.8916135263443654e-8,-0.00227073496835204,-4.1988409487146426e-5,-3.8934279948754235e-8,-0.002270325441507122,-4.192927899551331e-5,-3.8876227340469446e-8,-0.002269978122215947,-4.1828177158028644e-5,-3.8769219119330844e-8,-0.00226970702629286,-4.172123601459589e-5,-3.865378498185866e-8,-0.0022695094556672577,-4.1649926366732944e-5,-3.857700174244831e-8,-0.002269363629343624,-4.165219466353312e-5,-3.858250738357373e-8,-0.0022692306298698933,-4.175204263636338e-5,-3.869853604806306e-8,-0.0022690619905320303,-4.195007217268219e-5,-3.892687238355782e-8,-0.0022688127656313537,-4.22189359377569e-5,-3.923733305382498e-8,-0.0022684568851602466,-4.2507766167857475e-5,-3.9572560430991624e-8,-0.002267998326091102,-4.275672312180571e-5,-3.986449700076138e-8,-0.0022674714734245843,-4.291695195769548e-5,-4.005713795935709e-8,-0.0022669291597497737,-4.296662160132691e-5,-4.012487438155247e-8,-0.0022664242564903914,-4.2915295188340505e-5,-4.007760659904807e-8,-0.0022659940652150863,-4.279611123618072e-5,-3.995206908990567e-8,-0.002265653503930502,-4.265191244855833e-5,-3.979631362883339e-8,-0.0022653969340296893,-4.252261313043785e-5,-3.965552378432056e-8,-0.0022652046236925952,-4.243769493960012e-5,-3.95634861733223e-8,-0.002265049794477369,-4.241380155046763e-5,-3.9539697044729416e-8,-0.0022649041082798216,-4.245547864330964e-5,-3.9589986428501323e-8,-0.00226474124918325,-4.255711975844435e-5,-3.970856627954339e-8,-0.0022645391613217362,-4.270500455743162e-5,-3.988028806109427e-8,-0.0022642816799547678,-4.287910780361013e-5,-4.008272167427198e-8,-0.002263960087918555,-4.3054900809357125e-5,-4.028824466566982e-8,-0.002263574719130994,-4.320567695985923e-5,-4.0466687322319195e-8,-0.0022631362204558894,-4.330590165289405e-5,-4.058908270551296e-8,-0.0022626656639188536,-4.3335670173572484e-5,-4.063264302083518e-8,-0.0022621925719040524,-4.328569846595285e-5,-4.0586363627982455e-8,-0.0022617502460647106,-4.316153538197371e-5,-4.045582192050501e-8,-0.0022613686905826485,-4.298517863381172e-5,-4.02651379123331e-8,-0.002261066659628733,-4.279254577136207e-5,-4.0054328367112326e-8,-0.002260845254738966,-4.2626492298289355e-5,-3.9871642378719045e-8,-0.002260685452234943,-4.252671070386968e-5,-3.976228848354713e-8,-0.0022605509404802003,-4.251909481418603e-5,-3.9756384567982686e-8,-0.002260396131472639,-4.260760900980759e-5,-3.985954021720435e-8,-0.002260177694963087,-4.277131989594658e-5,-4.004914789052283e-8,-0.002259866766101412,-4.2968166060102e-5,-4.027830918497738e-8,-0.002259458210637815,-4.3145372744970057e-5,-4.048742944540769e-8,-0.0022589733613924707,-4.3254145791464096e-5,-4.062085419440258e-8,-0.002258454294531585,-4.326392054614321e-5,-4.064315339359069e-8,-0.0022579511436190353,-4.3170655978861896e-5,-4.0548734377790825e-8,-0.0022575073922757242,-4.2995916330466316e-5,-4.036104128218041e-8,-0.0022571489718927946,-4.2777865460527206e-5,-4.012258232791228e-8,-0.0022568805697357453,-4.255884861731508e-5,-3.988102778980891e-8,-0.0022566887016491335,-4.2374725671374876e-5,-3.967716426716014e-8,-0.002256548444902981,-4.2248875604791526e-5,-3.953799287615894e-8,-0.002256430457477919,-4.2190877177150564e-5,-3.9475031093020603e-8,-0.0022563063262742698,-4.219814048656945e-5,-3.9485967035225393e-8,-0.0022561518892659908,-4.225864272457631e-5,-3.9557654446514965e-8,-0.0022559490620141626,-4.235363463796422e-5,-3.9669178707093105e-8,-0.0022556869196150115,-4.245992921932744e-5,-3.9794503964805914e-8,-0.002255362650026142,-4.2551960746738174e-5,-3.990484416493067e-8,-0.00225498259128279,-4.260418776905965e-5,-3.9971363026047316e-8,-0.0022545629951551973,-4.259443556510106e-5,-3.996888136177645e-8,-0.002254129647814144,-4.2508371758274345e-5,-3.988086135327218e-8,-0.0022537151993712646,-4.234455193159232e-5,-3.970509132900266e-8,-0.00225335330209883,-4.2118407480589275e-5,-3.9458268320626675e-8,-0.0022530698916637996,-4.186263655252896e-5,-3.917660732834667e-8,-0.0022528740190121094,-4.162180095563857e-5,-3.8909958155369906e-8,-0.002252752217450626,-4.1441201489894646e-5,-3.870944411348118e-8,-0.0022526698614514173,-4.1353325375690816e-5,-3.861225482382609e-8,-0.0022525801000990234,-4.136713774543938e-5,-3.862947201208333e-8,-0.0022524373733573866,-4.146464933767827e-5,-3.8741929345072135e-8,-0.002252210525373519,-4.1605994325611274e-5,-3.89055852814104e-8,-0.0022518911377591767,-4.1740803405337114e-5,-3.906405012373955e-8,-0.0022514949999607,-4.182182996698903e-5,-3.9163825942864726e-8,-0.0022510569958787445,-4.181681135790668e-5,-3.916776403591502e-8,-0.002250621342141275,-4.171557236139564e-5,-3.906331946104076e-8,-0.0022502301294550285,-4.15308425955026e-5,-3.886378396708598e-8,-0.002249913449319389,-4.129306958437996e-5,-3.860271679338941e-8,-0.002249683726453224,-4.104130530740587e-5,-3.832383998911728e-8,-0.002249535283975047,-4.0813295369522146e-5,-3.8069884935159855e-8,-0.0022494483048860476,-4.0637702512655366e-5,-3.787370255806774e-8,-0.002249395075586441,-4.053008747505458e-5,-3.775352485809548e-8,-0.002249346228387429,-4.049258564563083e-5,-3.771239510768213e-8,-0.0022492755010270257,-4.0516052192387256e-5,-3.774046242612261e-8,-0.0022491626277783426,-4.058321264511812e-5,-3.7818520580070174e-8,-0.0022489947436900195,-4.0671780343274614e-5,-3.7921589641568395e-8,-0.002248766957445944,-4.075711343877572e-5,-3.8021986797907276e-8,-0.0022484826632076446,-4.081452585563666e-5,-3.8091951714669235e-8,-0.002248153838048646,-4.0821728247974105e-5,-3.8106341905870566e-8,-0.002247801079960905,-4.076195151424849e-5,-3.804605949402225e-8,-0.002247452593148405,-4.0628012018448585e-5,-3.790257146744856e-8,-0.0022471409301629466,-4.042682459236734e-5,-3.768302732502345e-8,-0.00224689646765886,-4.018263561138499e-5,-3.7414039313886286e-8,-0.0022467379334867687,-3.993603737751534e-5,-3.71407722402369e-8,-0.0022466629330224067,-3.973603731085064e-5,-3.6918205817805125e-8,-0.0022466437937668942,-3.962548372148706e-5,-3.679484541297912e-8,-0.0022466332626418345,-3.962510713746668e-5,-3.679475135912498e-8,-0.0022465795112438054,-3.972433968955547e-5,-3.690704831574807e-8,-0.002246443844399572,-3.988431149987231e-5,-3.7089012125681974e-8,-0.0022462127331009103,-4.005144641550452e-5,-3.728104124941213e-8,-0.002245899726127667,-4.017461828870116e-5,-3.742571513024981e-8,-0.0022455385610210964,-4.021870065905526e-5,-3.7482979092119534e-8,-0.002245171991501091,-4.017101257208119e-5,-3.743755699529912e-8,-0.0022448406857828573,-4.0040872064166135e-5,-3.729877117661851e-8,-0.002244574842630709,-3.985434389103751e-5,-3.709499167218068e-8,-0.00224438953153147,-3.964658315948225e-5,-3.6865281132306804e-8,-0.002244283739282433,-3.9453769098646514e-5,-3.6650395806950313e-8,-0.0022442425786291715,-3.9306138580895836e-5,-3.648483998275852e-8,-0.0022442417262513318,-3.9223235736532204e-5,-3.639130046745756e-8,-0.002244252825270072,-3.921193238763609e-5,-3.637818766334322e-8,-0.002244248580715095,-3.926701981343953e-5,-3.6440147045714485e-8,-0.002244206665010873,-3.9373614587264704e-5,-3.656072898333406e-8,-0.0022441120851505714,-3.9510449394149734e-5,-3.671615220159067e-8,-0.002243958158082218,-3.9653224799783987e-5,-3.687916687487293e-8,-0.002243746569982561,-3.977754481038861e-5,-3.702240992509356e-8,-0.0022434870012997396,-3.986143852984975e-5,-3.7121211995940224e-8,-0.002243196539261886,-3.9887788360821346e-5,-3.715623183345602e-8,-0.002242898748955786,-3.984704324325663e-5,-3.711640914072695e-8,-0.0022426218280860106,-3.974042123909537e-5,-3.7002547544910815e-8,-0.0022423948446182447,-3.9583186860967147e-5,-3.683110598566761e-8,-0.002242241179018976,-3.940641160112801e-5,-3.663638469156625e-8,-0.00224216956598242,-3.925442123747653e-5,-3.646787712775838e-8,-0.002242165743912653,-3.917522022806908e-5,-3.63796461283401e-8,-0.0022421904430927637,-3.92042809462743e-5,-3.641210968875951e-8,-0.0022421888363345576,-3.934800163595166e-5,-3.657333079382851e-8,-0.0022421101287026773,-3.957707112540881e-5,-3.683135600408295e-8,-0.0022419276065207064,-3.983591431005777e-5,-3.712457446970693e-8,-0.0022416477393448642,-4.0063753426798325e-5,-3.73851192566621e-8,-0.0022413045475564155,-4.0215340963561835e-5,-3.7561970560884604e-8,-0.0022409449338205603,-4.0271819274777205e-5,-3.7633148529958066e-8,-0.0022406136872176463,-4.0240309319839884e-5,-3.7605480019251675e-8,-0.002240343470877864,-4.0146522531138636e-5,-3.750668536605433e-8,-0.002240150677565745,-4.002533269708593e-5,-3.7375157741474976e-8,-0.002240035711440105,-3.991240818250783e-5,-3.725076167766338e-8,-0.002239985804253139,-3.9838071993125945e-5,-3.7167903625866e-8,-0.0022399789880449567,-3.9823368021104823e-5,-3.715090319780558e-8,-0.0022399885175577506,-3.9878050065343086e-5,-3.721146830451135e-8,-0.002239987272940578,-4.000036042511323e-5,-3.734824122526935e-8,-0.0022399516443405575,-4.017838712946535e-5,-3.7548239619326853e-8,-0.002239864499431365,-4.0392596449678075e-5,-3.778973496167977e-8,-0.0022397169957782525,-4.061908331716644e-5,-3.804599535317224e-8,-0.002239509163109704,-4.083302738834809e-5,-3.828923970936112e-8,-0.00223924945058436,-4.101186342286681e-5,-3.8494196874711744e-8,-0.002238953599371396,-4.113797301515876e-5,-3.8641048926455915e-8,-0.0022386430618668383,-4.120100796303263e-5,-3.871793082545036e-8,-0.002238342944066297,-4.1200001151770064e-5,-3.872324181388282e-8,-0.0022380791839847307,-4.114530686782865e-5,-3.866788607866194e-8,-0.002237874380510262,-4.1060002066053976e-5,-3.857703907310176e-8,-0.00223774180926945,-4.097948394853225e-5,-3.848995354296783e-8,-0.00223767825635013,-4.094712480839855e-5,-3.845528558322179e-8,-0.002237658399419641,-4.1004061797862145e-5,-3.851967858482813e-8,-0.0022376356888406273,-4.11738325963669e-5,-3.8710382858211906e-8,-0.0022375542283195344,-4.144791944811161e-5,-3.9018797372337954e-8,-0.002237369976256706,-4.178239537910177e-5,-3.939648342269923e-8,-0.0022370705865857117,-4.211192540677199e-5,-3.97707040733493e-8,-0.002236681021205403,-4.237528136520402e-5,-4.0072894403993155e-8,-0.0022362515136581293,-4.2537390808246587e-5,-4.026326754963274e-8,-0.0022358368811051695,-4.2596592517748946e-5,-4.033897314519272e-8,-0.002235479455892738,-4.257760540665977e-5,-4.032647668471118e-8,-0.0022352014732815342,-4.251839568376904e-5,-4.026725325138652e-8,-0.0022350055128588357,-4.245824814262653e-5,-4.0204769494537755e-8,-0.002234879072292001,-4.2429981973685345e-5,-4.017588031994506e-8,-0.002234800143287794,-4.245617891594765e-5,-4.020647152992803e-8,-0.0022347421748675988,-4.254810062132713e-5,-4.030997076660549e-8,-0.002234678089860464,-4.2706022024608e-5,-4.04874490318804e-8,-0.002234583596800719,-4.292040013149177e-5,-4.072877100486095e-8,-0.0022344399196055193,-4.3173776366831664e-5,-4.101470592062815e-8,-0.002234235865992565,-4.344333894544913e-5,-4.13198704377615e-8,-0.002233969089473579,-4.370403283753067e-5,-4.1616299339581775e-8,-0.0022336463289874286,-4.393200590097062e-5,-4.1877337327494744e-8,-0.002233282501130823,-4.410796757286399e-5,-4.2081351239347404e-8,-0.0022328987863395795,-4.422003807868895e-5,-4.2214822045642e-8,-0.0022325199496675764,-4.426587777665794e-5,-4.227465236873269e-8,-0.0022321710530385326,-4.4253972215963034e-5,-4.226962591744968e-8,-0.0022318736432929433,-4.420392191805795e-5,-4.2220888713159193e-8,-0.0022316414113256896,-4.414545555348796e-5,-4.216110347774086e-8,-0.0022314754270215662,-4.4115440270257426e-5,-4.213136166132721e-8,-0.002231359823442391,-4.415175418461966e-5,-4.217445054382591e-8,-0.0022312601532689185,-4.4283382554984865e-5,-4.232367827957026e-8,-0.002231127767120565,-4.4518168017474204e-5,-4.258888372588604e-8,-0.0022309127621388284,-4.483326721123653e-5,-4.2945429863533486e-8,-0.0022305832777618443,-4.5176107345948044e-5,-4.33350641470657e-8,-0.0022301417812274774,-4.548042189951665e-5,-4.3683804639003184e-8,-0.00222962696006888,-4.5691654474732635e-5,-4.3930355472978606e-8,-0.0022290982784922498,-4.578732224176004e-5,-4.404886114752745e-8,-0.0022286126995498105,-4.578096414425489e-5,-4.405337631430236e-8,-0.002228207126679372,-4.571064953482692e-5,-4.39852734699268e-8,-0.002227893056699919,-4.562206961243283e-5,-4.38947320909112e-8,-0.002227660846567752,-4.555526540573994e-5,-4.382620421038141e-8,-0.002227487702103169,-4.55379758899719e-5,-4.381102028222137e-8,-0.0022273451775774154,-4.558426004228901e-5,-4.386564409422788e-8,-0.0022272045720067527,-4.569590592468164e-5,-4.39929402649985e-8,-0.002227040330898362,-4.586469098944103e-5,-4.418444952301841e-8,-0.0022268322499077128,-4.607464729273845e-5,-4.4422813065954085e-8,-0.0022265671012077232,-4.6304319138032545e-5,-4.46843227290974e-8,-0.002226239866699384,-4.65292374402582e-5,-4.4941773047288794e-8,-0.002225854484890745,-4.6724799757426735e-5,-4.51677431041688e-8,-0.0022254237956320375,-4.6869601410910074e-5,-4.5338309138385286e-8,-0.002224968272659459,-4.694890763075256e-5,-4.543684582222292e-8,-0.002224513374267207,-4.695764552052053e-5,-4.545727907051517e-8,-0.0022240857042466885,-4.690227807341315e-5,-4.5406156340506795e-8,-0.0022237084214524207,-4.680103654287797e-5,-4.530300679993751e-8,-0.002223396530534961,-4.668216756519775e-5,-4.517860947561035e-8,-0.002223152787249789,-4.658014304122351e-5,-4.507104168252101e-8,-0.002222964935742375,-4.652995213290346e-5,-4.501951893274435e-8,-0.002222805166025817,-4.655966574712351e-5,-4.505611999008108e-8,-0.0022226330833182246,-4.6682000764129616e-5,-4.519616588800026e-8,-0.002222403496610867,-4.6886909508180545e-5,-4.542958762812166e-8,-0.002222079087811143,-4.7138819175493126e-5,-4.571749442657403e-8,-0.0022216449448798823,-4.738267384694757e-5,-4.59987335824701e-8,-0.002221118171827722,-4.7560111136303446e-5,-4.620795613858712e-8,-0.002220545312392466,-4.763048075773373e-5,-4.629917145710085e-8,-0.002219986393474025,-4.758588464850228e-5,-4.626262271116031e-8,-0.002219493466999461,-4.745169161788492e-5,-4.612549476134362e-8,-0.0022190950899372997,-4.727349057060608e-5,-4.5937616176018814e-8,-0.0022187928437108866,-4.709946526084481e-5,-4.575211981967887e-8,-0.0022185676608473866,-4.6967148258508964e-5,-4.561086581454774e-8,-0.0022183897340214403,-4.6897877865561347e-5,-4.5538205382200175e-8,-0.002218227112864587,-4.689730372738356e-5,-4.55412865670691e-8,-0.0022180511931498754,-4.6958726789225835e-5,-4.5613476972552826e-8,-0.002217839478448058,-4.706684563405332e-5,-4.573834204511953e-8,-0.002217576767892167,-4.720088385532349e-5,-4.5893088802846886e-8,-0.0022172557391592737,-4.7337099909682e-5,-4.605143273264397e-8,-0.0022168773700565656,-4.74510906017821e-5,-4.6186255635813826e-8,-0.0022164511799183666,-4.752034046529439e-5,-4.627248139736567e-8,-0.002215994899699834,-4.7527295848164124e-5,-4.629045712510837e-8,-0.002215532947978386,-4.746279506796771e-5,-4.622968509992351e-8,-0.0022150932151455763,-4.732912349998839e-5,-4.60921625117704e-8,-0.0022147021652644183,-4.714160221841957e-5,-4.589418230010463e-8,-0.002214378969883185,-4.692762570971198e-5,-4.566542228593394e-8,-0.0022141300645164186,-4.672255695780222e-5,-4.544463178449744e-8,-0.0022139458137362612,-4.6562850713633075e-5,-4.52722393117001e-8,-0.00221380060967952,-4.64777591528412e-5,-4.518126383051442e-8,-0.0022136569173281237,-4.648149783906708e-5,-4.518852648490155e-8,-0.0022134729343128413,-4.65678409922886e-5,-4.5288350736913463e-8,-0.002213212730213477,-4.670898079689068e-5,-4.545089717714251e-8,-0.002212856797894262,-4.686004182357243e-5,-4.562684735817594e-8,-0.0022124099074522273,-4.6969555866714336e-5,-4.575890861717408e-8,-0.0022119026018825377,-4.699407898397332e-5,-4.579813949784263e-8,-0.0022113839010346006,-4.691226389953383e-5,-4.5719800103478644e-8,-0.0022109065487812933,-4.673212611187127e-5,-4.553166994833471e-8,-0.0022105106421530336,-4.6487513953655795e-5,-4.52703652159344e-8,-0.002210212924897253,-4.622545023671105e-5,-4.498750033432147e-8,-0.0022100056515220326,-4.599082657138239e-5,-4.4732842639896e-8,-0.0022098634270506174,-4.58151562763414e-5,-4.454182124988341e-8,-0.002209753114187779,-4.5712337116466916e-5,-4.4430643000829475e-8,-0.0022096423610802776,-4.568024895658921e-5,-4.439779129857697e-8,-0.0022095048224221024,-4.570516696428774e-5,-4.4428692789315846e-8,-0.0022093223580628898,-4.576643434562114e-5,-4.45008081941231e-8,-0.0022090854104389146,-4.5840198863217866e-5,-4.458782308690369e-8,-0.002208792684048753,-4.590211841998753e-5,-4.4662757683266604e-8,-0.002208450773065764,-4.592949249699432e-5,-4.470041059236587e-8,-0.0022080738356743857,-4.590342965342051e-5,-4.467976024450722e-8,-0.0022076829208446235,-4.581149511652582e-5,-4.45868263584567e-8,-0.0022073042325302127,-4.565081152181556e-5,-4.441802397944935e-8,-0.002206965605216999,-4.5430915166275075e-5,-4.418331181075295e-8,-0.0022066909305378285,-4.51749843519472e-5,-4.390764665471133e-8,-0.0022064933389565914,-4.49177448738443e-5,-4.3628860219709356e-8,-0.0022063692939843756,-4.469903269899099e-5,-4.339076928750656e-8,-0.002206296459441618,-4.455384182826084e-5,-4.323234070924075e-8,-0.002206237344690818,-4.450182876565845e-5,-4.317610450389361e-8,-0.002206148437110928,-4.454022855258338e-5,-4.322014158498983e-8,-0.0022059920678573607,-4.464314996140854e-5,-4.333696738013364e-8,-0.002205747078655037,-4.47677698551155e-5,-4.3480006469238615e-8,-0.0022054149560458707,-4.4865453971987394e-5,-4.359562672668298e-8,-0.0022050197778874484,-4.4894469310904836e-5,-4.363714563703815e-8,-0.002204602080350687,-4.483081733338681e-5,-4.357698088947024e-8,-0.0022042082496701748,-4.4674256976108435e-5,-4.34136267011671e-8,-0.002203878355963061,-4.444767502332483e-5,-4.317130450908105e-8,-0.002203636131830214,-4.418988337579432e-5,-4.289227455216706e-8,-0.0022034842767954172,-4.3944313012475434e-5,-4.2624468807672645e-8,-0.0022034062225738905,-4.374765150444576e-5,-4.240888990786396e-8,-0.0022033728732570334,-4.362214656382595e-5,-4.22709113039624e-8,-0.0022033511472193176,-4.357325021474196e-5,-4.2217405326860426e-8,-0.002203311259278957,-4.359184072021775e-5,-4.2238963148967383e-8,-0.002203231161403219,-4.365884984553331e-5,-4.2314893940482235e-8,-0.0022030981896355236,-4.37501815219e-5,-4.241868804084055e-8,-0.0022029088590102435,-4.3840715442687394e-5,-4.252255845087228e-8,-0.002202667855443351,-4.390713159132299e-5,-4.2600676139939876e-8,-0.0022023869397814195,-4.392991328620103e-5,-4.263141972686281e-8,-0.002202083971331653,-4.389514078579005e-5,-4.259929970541784e-8,-0.0022017817509400405,-4.3796571313615305e-5,-4.2497155377534966e-8,-0.002201506019114991,-4.363807773550661e-5,-4.232878802184368e-8,-0.002201281829056389,-4.3435865519477696e-5,-4.211145676298463e-8,-0.0022011278651603286,-4.321905966755535e-5,-4.187668985882363e-8,-0.002201049428771376,-4.3026635343832115e-5,-4.166711799444936e-8,-0.0022010326564595945,-4.2899212226683795e-5,-4.1527605488542144e-8,-0.0022010438605880736,-4.2866701401245325e-5,-4.149168981230639e-8,-0.002201036815050561,-4.2936311524374124e-5,-4.156826007306663e-8,-0.0022009668005209242,-4.3087189621691026e-5,-4.1735408849570453e-8,-0.002200805687849186,-4.3275540935940235e-5,-4.194576010041846e-8,-0.0022005511147673534,-4.344845205145683e-5,-4.214141087930924e-8,-0.0022002261579351164,-4.356010243054483e-5,-4.2271627325288035e-8,-0.0021998709471877614,-4.3583870411128616e-5,-4.230621553318354e-8,-0.0021995306329296136,-4.351713167905666e-5,-4.2241049980976345e-8,-0.002199244012936336,-4.337907539302264e-5,-4.209604395428574e-8,-0.0021990354974688524,-4.3203716761038325e-5,-4.190782352683438e-8,-0.0021989114882803953,-4.303068697336216e-5,-4.1719808660383815e-8,-0.0021988611198272934,-4.2896143039547516e-5,-4.157220587465444e-8,-0.002198860529686386,-4.28256834219112e-5,-4.149400848221767e-8,-0.0021988792290551736,-4.283052362484336e-5,-4.149848437908441e-8,-0.0021988868020958604,-4.290728558961128e-5,-4.158266825085552e-8,-0.002198858332636107,-4.30407374421635e-5,-4.1730227888167276e-8,-0.0021987776559889718,-4.320815607531913e-5,-4.191627227789234e-8,-0.0021986383828306827,-4.338394252488224e-5,-4.211255171468341e-8,-0.0021984432617016725,-4.354352417484422e-5,-4.229189520363366e-8,-0.0021982026851288055,-4.366616419637895e-5,-4.243138177200893e-8,-0.002197932987833362,-4.373685585806035e-5,-4.2514400830429825e-8,-0.0021976547873646343,-4.374776948947891e-5,-4.2532145447490745e-8,-0.0021973912163822202,-4.3699666494011446e-5,-4.248507449934088e-8,-0.002197165565964018,-4.360339553726757e-5,-4.238455982416569e-8,-0.0021969976661542537,-4.348102472191013e-5,-4.2254266098886135e-8,-0.0021968986060033643,-4.3365344851824027e-5,-4.212983081364773e-8,-0.002196864488916266,-4.329582521635688e-5,-4.205462845468875e-8,-0.00219687177106506,-4.330950164594914e-5,-4.206983298743024e-8,-0.0021968783763478264,-4.342774012978813e-5,-4.219976819299261e-8,-0.002196833942465688,-4.364410781791684e-5,-4.2438344229764724e-8,-0.0021966974953614438,-4.392134829558463e-5,-4.274547229078794e-8,-0.0021964542822063117,-4.420215324008212e-5,-4.305868573313644e-8,-0.002196122004749595,-4.4429633911088055e-5,-4.3315482134634745e-8,-0.002195743141195934,-4.456667055575025e-5,-4.3474511881865136e-8,-0.0021953688213683063,-4.460502832877005e-5,-4.352567029416044e-8,-0.0021950430896256865,-4.456276883725236e-5,-4.34875261233581e-8,-0.00219479325103675,-4.447456387533459e-5,-4.339707996174946e-8,-0.0021946271302473947,-4.4380500039176534e-5,-4.329781770575668e-8,-0.0021945353071144784,-4.43168589575551e-5,-4.322972528487527e-8,-0.0021944959560133495,-4.4310062852754164e-5,-4.322252177775724e-8,-0.002194480563537203,-4.4373660852183527e-5,-4.32920524953864e-8,-0.0021944595227321863,-4.450786864707432e-5,-4.343945466521452e-8,-0.0021944069506842096,-4.4701191951449525e-5,-4.36527150890374e-8,-0.0021943042180325003,-4.49335617950116e-5,-4.391005375463803e-8,-0.002194141906377647,-4.518027077748843e-5,-4.4184332052663467e-8,-0.0021939201779301136,-4.5416019876788224e-5,-4.444764386522221e-8,-0.002193647790767406,-4.561847347713716e-5,-4.4675332295713537e-8,-0.0021933402416158846,-4.5770915859345256e-5,-4.484892453692752e-8,-0.00219301755709073,-4.586399243241319e-5,-4.495797173896476e-8,-0.0021927019881854267,-4.589680376520009e-5,-4.50011490514789e-8,-0.002192415581968075,-4.587758677189852e-5,-4.498696354861374e-8,-0.002192177416627541,-4.582404354917942e-5,-4.493420418458068e-8,-0.0021920001056428633,-4.576302032079154e-5,-4.487180284605771e-8,-0.0021918853630141493,-4.5728554041258204e-5,-4.483694086387648e-8,-0.0021918193971149852,-4.575678790110061e-5,-4.486962210563871e-8,-0.0021917704552939657,-4.5876737000029106e-5,-4.500249145208053e-8,-0.0021916921793231213,-4.609805171784536e-5,-4.524715951212536e-8,-0.002191535722030832,-4.640085504307758e-5,-4.558273256144663e-8,-0.002191268622527711,-4.673572239421093e-5,-4.5955562378608346e-8,-0.0021908911531643392,-4.703860588774864e-5,-4.6295536372601254e-8,-0.0021904389342049485,-4.725525462149562e-5,-4.654284579454351e-8,-0.0021899688757674282,-4.7361335435271427e-5,-4.667003748796585e-8,-0.002189537217572945,-4.736738240175443e-5,-4.66875152635767e-8,-0.002189182178099598,-4.730905371796731e-5,-4.6633131046491385e-8,-0.0021889175315774733,-4.723144495265606e-5,-4.655539679656418e-8,-0.0021887354256682617,-4.717574835041439e-5,-4.6499184056199204e-8,-0.0021886135162408732,-4.717157179860376e-5,-4.649736314449432e-8,-0.0021885224957076004,-4.723435333698451e-5,-4.656775348526145e-8,-0.002188432196672109,-4.736596568910569e-5,-4.671343301511786e-8,-0.0021883159915355365,-4.755688007918747e-5,-4.69247944722332e-8,-0.002188153797184117,-4.7789060056815985e-5,-4.7182558125506696e-8,-0.0021879339216937933,-4.8039252490120275e-5,-4.7461392605544466e-8,-0.0021876538472704776,-4.828243590852618e-5,-4.773381750934838e-8,-0.002187319992989988,-4.849521912185547e-5,-4.7974061450627616e-8,-0.0021869464613131022,-4.865894024085986e-5,-4.816152081756237e-8,-0.0021865528992877276,-4.87620998684626e-5,-4.828339410490294e-8,-0.0021861618199906937,-4.8801891534619e-5,-4.833627312095251e-8,-0.0021857956854069802,-4.878486309271509e-5,-4.832680892763946e-8,-0.0021854738600616984,-4.8726762987137e-5,-4.8271587194920043e-8,-0.0021852094900030724,-4.86515128943926e-5,-4.8196176656966384e-8,-0.002185006334014698,-4.858914285791343e-5,-4.8133122371377696e-8,-0.0021848556724831675,-4.8572182159752406e-5,-4.8118210423692764e-8,-0.0021847340908449993,-4.862969584851901e-5,-4.818398533821574e-8,-0.0021846040333787834,-4.8778729210677626e-5,-4.835019658202303e-8,-0.0021844197065521583,-4.901477659668526e-5,-4.861300583671992e-8,-0.002184139908137586,-4.9305740268685153e-5,-4.89380239589084e-8,-0.002183745208710712,-4.959578164277363e-5,-4.926436436193073e-8,-0.0021832508778272947,-4.9822400093252296e-5,-4.9523381452495355e-8,-0.0021827054179990426,-4.9940812964766306e-5,-4.9665452368679164e-8,-0.002182172657790118,-4.9941786271621964e-5,-4.967953305482646e-8,-0.0021817074157041024,-4.985220421423567e-5,-4.959386599256073e-8,-0.002181338673865619,-4.9720142395811015e-5,-4.945991919619401e-8,-0.0021810666706533364,-4.9595568980319e-5,-4.933166537295909e-8,-0.0021808703783844,-4.951657478515571e-5,-4.92507832762818e-8,-0.0021807181941960203,-4.950399504420421e-5,-4.924073730655143e-8,-0.0021805769182982548,-4.956218364039945e-5,-4.9307324380953e-8,-0.0021804174795038798,-4.968259370492711e-5,-4.9442212976376634e-8,-0.0021802179110294567,-4.9847836933814006e-5,-4.9627109424267564e-8,-0.002179964670767143,-5.003531159657192e-5,-4.983764252872737e-8,-0.0021796530724134083,-5.0220385609024966e-5,-5.004692161411961e-8,-0.002179287108625143,-5.0379309817940806e-5,-5.0228863268068284e-8,-0.0021788786984716967,-5.049197671212808e-5,-5.0361312329529946e-8,-0.0021784462256297563,-5.054452595703909e-5,-5.04289060225776e-8,-0.0021780122025803136,-5.053151803276535e-5,-5.042538797210063e-8,-0.002177600157916581,-5.045722929573454e-5,-5.035495070136917e-8,-0.0021772310966522526,-5.0335776567875636e-5,-5.023237210708531e-8,-0.002176919902460922,-5.0189932859938544e-5,-5.0081843179902245e-8,-0.00217667207082299,-5.004853269807545e-5,-4.993436120974221e-8,-0.0021764812441906808,-4.994249777622941e-5,-4.982363597059191e-8,-0.0021763280507105863,-4.98996114264398e-5,-4.978052270196503e-8,-0.0021761809437515654,-4.9938185981473035e-5,-4.982603516805561e-8,-0.002176000149806595,-5.006025793450334e-5,-4.9963621703133264e-8,-0.002175745817326205,-5.024622884164902e-5,-5.0172910484799115e-8,-0.002175390157594791,-5.0454365055776456e-5,-5.0408841281164365e-8,-0.002174930337153652,-5.06288459355e-5,-5.061036106903455e-8,-0.002174395353711165,-5.071699644838109e-5,-5.0719362989473973e-8,-0.0021738401034926535,-5.0689679713245726e-5,-5.0703131233504954e-8,-0.0021733265233010663,-5.055363671187018e-5,-5.056794205359903e-8,-0.0021729011128648096,-5.034775070284775e-5,-5.035513085813307e-8,-0.0021725811078602674,-5.012585939427826e-5,-5.012259516349527e-8,-0.0021723547388293137,-4.993700515060601e-5,-4.992354472562844e-8,-0.0021721915116131806,-4.9812811310871116e-5,-4.979285902848771e-8,-0.0021720546749986677,-4.976445626435847e-5,-4.9743630077680485e-8,-0.002171910550591354,-4.978612573658363e-5,-4.977057674929707e-8,-0.0021717334408312126,-4.986073223887547e-5,-4.985593590639394e-8,-0.0021715072056702122,-4.9965197761627746e-5,-4.997503848354697e-8,-0.002171225123681876,-5.007442062639999e-5,-5.010064735726323e-8,-0.0021708891541935235,-5.0164162613396194e-5,-5.020624123144993e-8,-0.002170509011565236,-5.021337352113505e-5,-5.026869269970753e-8,-0.0021701010201165194,-5.020633834079381e-5,-5.027067408474085e-8,-0.002169686481978018,-5.013479660142251e-5,-5.02029350445516e-8,-0.0021692892001323122,-4.999980622314807e-5,-5.006625128102955e-8,-0.002168932022375522,-4.9812758371010945e-5,-4.9872480658075486e-8,-0.002168632724515974,-4.95948957641629e-5,-4.96440934171442e-8,-0.0021683999304833723,-4.9374905475583854e-5,-4.94117279890712e-8,-0.0021682299884622017,-4.9184517024424835e-5,-4.9209644023520306e-8,-0.0021681057683319905,-4.905256550499114e-5,-4.906946354132325e-8,-0.0021679981084059274,-4.899850303697785e-5,-4.901315398366616e-8,-0.0021678702118165865,-4.902660625417457e-5,-4.904654790153962e-8,-0.002167684855459021,-4.912228342329066e-5,-4.915496722137846e-8,-0.002167413675346147,-4.9252117611135175e-5,-4.930287422769272e-8,-0.0021670467328493287,-4.9369236645834006e-5,-4.9439453319941026e-8,-0.0021665991445428225,-4.942457392269512e-5,-4.951084310411176e-8,-0.0021661107109958544,-4.9382031214902844e-5,-4.9476821013151695e-8,-0.0021656359860024264,-4.923205966050717e-5,-4.932584479686643e-8,-0.0021652269664645565,-4.8996524294130615e-5,-4.908058662160895e-8,-0.0021649159058167063,-4.872105249104496e-5,-4.878982557957179e-8,-0.002164706655984438,-4.8458301673946887e-5,-4.8510450968611894e-8,-0.0021645777385677746,-4.825084661063017e-5,-4.8288973195301046e-8,-0.0021644934054848965,-4.812122783466715e-5,-4.81506379139743e-8,-0.0021644159176900527,-4.8071024900689184e-5,-4.809815557247862e-8,-0.0021643141929952214,-4.808594061576428e-5,-4.81168922637752e-8,-0.002164167674411756,-4.814266053659258e-5,-4.818208341414474e-8,-0.0021639667146355628,-4.8214709519840826e-5,-4.8265144796799985e-8,-0.0021637113015193915,-4.8276471408607926e-5,-4.833815104674628e-8,-0.0021634093935051597,-4.8305717497990586e-5,-4.8376751136334334e-8,-0.0021630753860666465,-4.8285336142651836e-5,-4.836216222000512e-8,-0.0021627286667312874,-4.8204863846761885e-5,-4.828283802361071e-8,-0.002162391861482956,-4.8062097732630306e-5,-4.813613888210156e-8,-0.0021620882679398825,-4.786457221389886e-5,-4.792984469758117e-8,-0.0021618381966684985,-4.763020148052184e-5,-4.768283959318655e-8,-0.0021616544721947527,-4.738615688544101e-5,-4.74240049864915e-8,-0.0021615380479013072,-4.716519867376527e-5,-4.718845234479752e-8,-0.002161475302072799,-4.699937039553237e-5,-4.701091284755469e-8,-0.0021614386393250546,-4.6912154688658707e-5,-4.691736184216948e-8,-0.002161391201800069,-4.6911292679655636e-5,-4.691717630397373e-8,-0.002161295075484384,-4.698475296081406e-5,-4.6998506562417824e-8,-0.002161121034202,-4.710162372082691e-5,-4.712886694957854e-8,-0.002160857131367918,-4.7218339997966116e-5,-4.726153824963162e-8,-0.0021605135166616594,-4.728911357216719e-5,-4.734669635449493e-8,-0.002160121614640899,-4.727811102218645e-5,-4.7344670899897986e-8,-0.002159727070259186,-4.71700332472349e-5,-4.72376676723403e-8,-0.002159377681774251,-4.697546153405605e-5,-4.703590761080976e-8,-0.0021591097858532486,-4.672829423936533e-5,-4.677517141941328e-8,-0.002158938074167603,-4.6475408602648845e-5,-4.650582202815821e-8,-0.002158852916009944,-4.626235480050213e-5,-4.627738514230599e-8,-0.002158825801635166,-4.612087538018337e-5,-4.612493766194266e-8,-0.002158819709787541,-4.606270599802699e-5,-4.606214934513943e-8,-0.002158799607308813,-4.608051665422589e-5,-4.6081993496327766e-8,-0.0021587395273344563,-4.615361327504223e-5,-4.616267371658823e-8,-0.002158625286072611,-4.625494118904886e-5,-4.627511694149892e-8,-0.002158453953359905,-4.635691120285143e-5,-4.638936013416345e-8,-0.002158231790057722,-4.643523375110354e-5,-4.647887273854775e-8,-0.002157971911670394,-4.647108233605865e-5,-4.652305041561149e-8,-0.0021576922476335206,-4.6452294121769896e-5,-4.650856384345036e-8,-0.0021574138014324212,-4.637428430326153e-5,-4.6430286990051256e-8,-0.0021571587957101316,-4.624105015071745e-5,-4.629227406134107e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json new file mode 100644 index 0000000..b4be241 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":1000,"numberOfSamples":1000,"samples":[-0.002156948117797158,-4.6066106188504274e-5,-4.610870837852341e-8,-0.0021567976844821175,-4.587262928957953e-5,-4.590411215695837e-8,-0.002156713908245568,-4.569170874283684e-5,-4.5711626484184725e-8,-0.0021566893595621928,-4.555761003533914e-5,-4.5568113732113295e-8,-0.002156700743371349,-4.549983445555494e-5,-4.5505741530892555e-8,-0.0021567115663395065,-4.5533671389188886e-5,-4.5541790676334716e-8,-0.0021566804178876843,-4.5652915406612466e-5,-4.5670622833809834e-8,-0.002156572912636481,-4.582870678241587e-5,-4.58621255953264e-8,-0.0021563728566239655,-4.601620142754535e-5,-4.6068577295811786e-8,-0.0021560880133587525,-4.616711622705171e-5,-4.623794070121091e-8,-0.002155748222189647,-4.62434863816923e-5,-4.6328641438483505e-8,-0.002155396920669294,-4.622782396424562e-5,-4.632067580425877e-8,-0.00215507933393081,-4.612686483113469e-5,-4.621997607570151e-8,-0.0021548310204559523,-4.596856314722607e-5,-4.605556460572259e-8,-0.0021546697448800787,-4.579380803487395e-5,-4.5870948767990285e-8,-0.0021545925009090403,-4.564545026639773e-5,-4.571243253541094e-8,-0.00215457808447119,-4.555777214888923e-5,-4.561767662258407e-8,-0.002154594019620961,-4.554927142265337e-5,-4.560764640929833e-8,-0.002154605368940617,-4.562040509803385e-5,-4.568383677005805e-8,-0.002154582628502511,-4.575613804937631e-5,-4.583074108471704e-8,-0.0021545067042819666,-4.593156748733217e-5,-4.602179515117175e-8,-0.0021543704349080905,-4.6118291920214145e-5,-4.6226298143065905e-8,-0.002154177429419203,-4.628970757896518e-5,-4.64152905393417e-8,-0.0021539395320203554,-4.642448039496704e-5,-4.656547403677698e-8,-0.0021536740325304696,-4.6508347419083976e-5,-4.6661248300741016e-8,-0.002153401212638439,-4.6534852085000904e-5,-4.669548060691322e-8,-0.0021531422886805827,-4.650565883599465e-5,-4.666974436961425e-8,-0.0021529174221249937,-4.6430830311047396e-5,-4.6594529114611347e-8,-0.002152743281384537,-4.632899782380846e-5,-4.648943285318694e-8,-0.0021526297364554913,-4.622682327908873e-5,-4.6382720029024235e-8,-0.0021525757781952213,-4.615665217809799e-5,-4.6309007987320986e-8,-0.0021525657635618595,-4.615111791560906e-5,-4.630363581540198e-8,-0.0021525683606683156,-4.623433111379003e-5,-4.639321479077921e-8,-0.0021525411131787307,-4.641162808298889e-5,-4.658444896551646e-8,-0.00215244181360915,-4.6662730585749126e-5,-4.685650807739798e-8,-0.002152243559761613,-4.69438336830974e-5,-4.716299443903288e-8,-0.0021519463173773905,-4.720028130623982e-5,-4.744536946490242e-8,-0.0021515783140552483,-4.738487646555355e-5,-4.7652539659263205e-8,-0.0021511863195340735,-4.7473012892754915e-5,-4.775714558013054e-8,-0.002150820158632104,-4.74681988823182e-5,-4.7761682951372046e-8,-0.0021505186509381763,-4.739759003524929e-5,-4.769404722497823e-8,-0.002150301454146949,-4.7301602034095665e-5,-4.75967746928141e-8,-0.002150167504080223,-4.722237577724007e-5,-4.751493736774092e-8,-0.0021500984653760494,-4.7194327180898005e-5,-4.7486029043007825e-8,-0.002150065007643072,-4.7238211715320985e-5,-4.753336591146179e-8,-0.002150034011848315,-4.735890504159874e-5,-4.7663329284699034e-8,-0.0021499752813515308,-4.754650144645341e-5,-4.7866189097583804e-8,-0.0021498666614940885,-4.777999559892799e-5,-4.811985529955003e-8,-0.002149696844734374,-4.8032435641353954e-5,-4.8395408706038154e-8,-0.0021494657462589853,-4.8276239272205825e-5,-4.866295866283441e-8,-0.0021491829316347584,-4.848761715432387e-5,-4.8896590036391526e-8,-0.002148864888882999,-4.864954755615883e-5,-4.9077698538029214e-8,-0.002148531969661492,-4.875324012053347e-5,-4.9196590948451486e-8,-0.00214820559302335,-4.879845385417849e-5,-4.925275811633043e-8,-0.0021479058723801398,-4.8793211725869386e-5,-4.9254476683867235e-8,-0.0021476494691693242,-4.875326148772683e-5,-4.921820529983365e-8,-0.0021474473356039884,-4.8701280224926454e-5,-4.916782927985692e-8,-0.002147302025734625,-4.8665427348109735e-5,-4.913330991550414e-8,-0.0021472046146883317,-4.867636961659977e-5,-4.914769826441347e-8,-0.0021471322071707254,-4.8761685544412094e-5,-4.924121019381598e-8,-0.0021470482597085038,-4.893732048233069e-5,-4.943192954490526e-8,-0.002146908584499707,-4.91979967179343e-5,-4.97152190263401E-08,-0.002146674363316176,-4.9511646656850674e-5,-5.0057427768996096e-8,-0.002146328667920062,-4.982422622000098e-5,-5.0400872447169334e-8,-0.0021458875359486144,-5.007688042712524e-5,-5.0682229364308553e-8,-0.002145397011314185,-5.0228379818507437e-5,-5.0856638807463407e-8,-0.0021449161791735768,-5.0270217445764416e-5,-5.091394422090286e-8,-0.002144495917953705,-5.0226434247242504e-5,-5.087865414824122e-8,-0.002144164522903363,-5.01408709895491e-5,-5.079660476566392e-8,-0.002143924532470479,-5.0060878640441164e-5,-5.0717902245852795e-8,-0.002143757959315198,-5.002483607513269e-5,-5.068379162791456e-8,-0.002143634896737234,-5.005585115815337e-5,-5.071984838493151e-8,-0.002143521842854634,-5.0160650756850324e-5,-5.083446444779818e-8,-0.002143388120717485,-5.0331651201626866e-5,-5.102064773664288e-8,-0.002143210184954386,-5.055054311417113e-5,-5.125954074459971e-8,-0.002142974117514982,-5.079251129394976e-5,-5.152482507010141e-8,-0.0021426765074378826,-5.103064468172294e-5,-5.178753018681961e-8,-0.0021423238391256607,-5.124006797853224e-5,-5.202065134245872e-8,-0.002141930651324379,-5.140134181465216e-5,-5.220297342970296e-8,-0.0021415168281439588,-5.150282446702924e-5,-5.2321688446799315e-8,-0.0021411044645297406,-5.154180999406271e-5,-5.237359158139016e-8,-0.0021407148054202576,-5.152449499997826e-5,-5.236496558245039e-8,-0.0021403655678020684,-5.146510002939213e-5,-5.231059043138093e-8,-0.002140068652238457,-5.138444270295482e-5,-5.2232268635753575e-8,-0.002139828133292629,-5.1308028225241545e-5,-5.2156950212399334e-8,-0.002139638422673149,-5.126350568803761e-5,-5.2114230564000163e-8,-0.00213948268691379,-5.1277018333799685e-5,-5.213259191254482e-8,-0.002139332290822501,-5.1367795817320406e-5,-5.223357239670482e-8,-0.0021391489883805194,-5.154098912009453e-5,-5.242383088390882e-8,-0.002138891970010422,-5.1780522562900146e-5,-5.268710604455327e-8,-0.0021385305995390066,-5.20462253084977e-5,-5.2980835455315765e-8,-0.002138059594008942,-5.2280784568316565e-5,-5.324353111816718e-8,-0.002137508049281609,-5.242840674319948e-5,-5.341489927661907e-8,-0.0021369333564798328,-5.245794992558174e-5,-5.3460757754233854e-8,-0.0021364000567887635,-5.237659280739311e-5,-5.338772944526506e-8,-0.0021359554177806913,-5.222499524366457e-5,-5.323816602452792e-8,-0.0021356157132549174,-5.205829004263862e-5,-5.307010206523827e-8,-0.002135367798385966,-5.1925718630202697e-5,-5.293584770307225e-8,-0.0021351802309842655,-5.185853393324863e-5,-5.2869237987871783e-8,-0.002135015709675917,-5.186747116928778e-5,-5.288277568269625e-8,-0.0021348401734937695,-5.194616985504687e-5,-5.2970891829753475e-8,-0.002134627758060293,-5.2076667370690687e-5,-5.311539888620349e-8,-0.002134362664862016,-5.22346501846903e-5,-5.329085053332862e-8,-0.0021340393185033547,-5.2393733389077045e-5,-5.3469096840437146e-8,-0.002133661644592146,-5.252894430972528e-5,-5.362316413179043e-8,-0.0021332416919183183,-5.2619642849676823e-5,-5.373058405670703e-8,-0.002132797639105352,-5.265187989316952e-5,-5.377605953151373e-8,-0.00213235123299873,-5.262008658853691e-5,-5.3753301407695094e-8,-0.0021319247547086106,-5.252787431710746e-5,-5.366582385721862e-8,-0.002131537812166341,-5.2387711692295135e-5,-5.3526527141880856e-8,-0.002131204386649835,-5.221948578729788e-5,-5.335616249926751e-8,-0.002130930436840616,-5.204813499564776e-5,-5.3180922715721016e-8,-0.0021307122475242276,-5.190051666082856e-5,-5.3029303636494595e-8,-0.002130535691096194,-5.1801663288743484e-5,-5.2928303953712826e-8,-0.002130376577415983,-5.1770519389418736e-5,-5.289893815879023e-8,-0.0021302025383327134,-5.1815158911048855e-5,-5.2950976313991277e-8,-0.002129977378036466,-5.192792796725971e-5,-5.3077407334747964E-08,-0.0021296688087945386,-5.208214555192072e-5,-5.325050928388623e-8,-0.0021292592998348823,-5.2233329336141494e-5,-5.342289782969275e-8,-0.002128757014872047,-5.2328224363975537e-5,-5.353718707965699e-8,-0.0021282003685288873,-5.232211388239153e-5,-5.354471701182651e-8,-0.0021276495587692528,-5.219820202071707e-5,-5.342650421322242e-8,-0.002127165444777017,-5.1977374748586926e-5,-5.32037987462269e-8,-0.002126786408919701,-5.1710339300552144e-5,-5.292980367635397e-8,-0.0021265166937946525,-5.145633618560855e-5,-5.2667177244896215e-8,-0.00212633105580082,-5.126167160748416e-5,-5.246538067689548e-8,-0.002126189328271234,-5.114869660600918e-5,-5.234897812409529e-8,-0.0021260510373621883,-5.111638783278097e-5,-5.231801132895357e-8,-0.002125884513579751,-5.114733030685652e-5,-5.235503053809026e-8,-0.0021256702248682435,-5.121572331910457e-5,-5.243327665430199e-8,-0.002125400455812279,-5.1293642979333694e-5,-5.252321996716058e-8,-0.0021250775059338096,-5.1355096043385815e-5,-5.259696904862907e-8,-0.0021247116610059085,-5.1378537621995244e-5,-5.2631164024147827e-8,-0.0021243192352671083,-5.134861185069034e-5,-5.2609026267915535e-8,-0.002123920533294502,-5.125749504161394e-5,-5.252187717870801e-8,-0.002123537513917045,-5.1105899487825944e-5,-5.237017732952232e-8,-0.0021231909824004935,-5.0903510148269925e-5,-5.21639052525058e-8,-0.002122897386272381,-5.066840160744641e-5,-5.192188374186477e-8,-0.0021226656718111524,-5.042508933637542e-5,-5.166975788992617e-8,-0.002122494839571998,-5.0201204525872756e-5,-5.143662126873064e-8,-0.0021223728064571974,-5.002307532138799e-5,-5.125052539179263e-8,-0.002122277063662247,-4.9910792187481684e-5,-5.1133373559448276e-8,-0.002122177350465051,-4.9873571668336e-5,-5.1095958839310544e-8,-0.002122040271899325,-4.990621895883855e-5,-5.113395766297128e-8,-0.002121835670220407,-4.998749569171908e-5,-5.122580454826739e-8,-0.002121544289358671,-5.008151805352115e-5,-5.133380683137773e-8,-0.0021211653940700756,-5.0143498952941705e-5,-5.141007127166793e-8,-0.0021207216447338448,-5.0130441492102875e-5,-5.1407976149345016e-8,-0.002120257496141451,-5.001520456175847e-5,-5.1297441102601807e-8,-0.002119828397979043,-4.9798850489622e-5,-5.107840402680578e-8,-0.0021194826754195456,-4.9513892869127156e-5,-5.078451782729881e-8,-0.002119244086201465,-4.921409445932999e-5,-5.0472444375840066e-8,-0.0021191046402436534,-4.8954748273117716e-5,-5.0200988226733736e-8,-0.002119031138708923,-4.8773978554723135e-5,-5.001124485406591e-8,-0.002118980101862301,-4.8684026206295004e-5,-4.991720030835334e-8,-0.00211891220827597,-4.867379334879302e-5,-4.990812813538284e-8,-0.0021188006530865576,-4.8717674424215837e-5,-4.9957631878584515e-8,-0.0021186330805224884,-4.878489183979079e-5,-5.003335885442783e-8,-0.002118409606923484,-4.8846210672363946e-5,-5.010414572430475e-8,-0.0021181395569648243,-4.887764161794287e-5,-5.0144131459874775e-8,-0.002117838428140765,-4.8862089859800686e-5,-5.013472762586503e-8,-0.0021175254797301053,-4.87900395563563e-5,-5.006548391793509e-8,-0.0021172217039225403,-4.865995177280172e-5,-4.9934517707598465e-8,-0.0021169477453683006,-4.8478584561881674e-5,-4.9748766630150475e-8,-0.002116721392799632,-4.8261007717598124e-5,-4.952391111144196e-8,-0.00211655455107997,-4.802973321358578e-5,-4.928344153787555e-8,-0.002116450096966629,-4.781233066898358e-5,-4.9056238260434893e-8,-0.0021163995074253497,-4.763723300556185e-5,-4.88723175000772e-8,-0.00211638238176434,-4.752806896211847e-5,-4.8757005535652654e-8,-0.0021163687749273766,-4.749765415455074e-5,-4.872463016284184e-8,-0.0021163245129189124,-4.75433801208055e-5,-4.8773504423959966e-8,-0.0021162186131261293,-4.7645689733550204e-5,-4.888400543678275e-8,-0.0021160311239636605,-4.7770598620135224e-5,-4.902087037517744e-8,-0.0021157594156345004,-4.787624496808221e-5,-4.913984622203423e-8,-0.0021154210653734945,-4.792249771712643e-5,-4.919779498322852e-8,-0.0021150518661444766,-4.788171611098116e-5,-4.916427157162084e-8,-0.0021146983037815758,-4.774784549571525e-5,-4.903151581702451e-8,-0.0021144054214774677,-4.754043449876239e-5,-4.881909664190108e-8,-0.002114203335655032,-4.730071511555959e-5,-4.857004998709531e-8,-0.0021140976257717674,-4.7079605315396366e-5,-4.8338297363515245e-8,-0.002114068243449401,-4.6921741162987395e-5,-4.817168920274723e-8,-0.0021140776517754515,-4.685238849929127e-5,-4.8097948508555413e-8,-0.002114084019446718,-4.6872596236596724e-5,-4.81192411375788e-8,-0.002114053227237637,-4.6963141965845496e-5,-4.821604606694751e-8,-0.002113965448400426,-4.7093502898033734e-5,-4.8356449951288814e-8,-0.0021138158726727416,-4.7231060835115885e-5,-4.8505867927921634e-8,-0.0021136117434029157,-4.73475915439524e-5,-4.863405741638106e-8,-0.002113368243224607,-4.742253450655109e-5,-4.8718797175518944e-8,-0.0021131048107557887,-4.7443958322278066e-5,-4.874708212682086e-8,-0.002112842390293642,-4.740840058984932e-5,-4.87150037508711e-8,-0.002112601402461571,-4.732044050097083e-5,-4.8627229494421786e-8,-0.002112399898104981,-4.71923458598116e-5,-4.84965171325286e-8,-0.0021122513870208202,-4.7043586695278016e-5,-4.834314259144425e-8,-0.002112162155506463,-4.689959768605062e-5,-4.8193650389836864e-8,-0.0021121284044120486,-4.678902511400128e-5,-4.807810872069021e-8,-0.002112134192586928,-4.6738909755118304e-5,-4.802520783954363e-8,-0.002112151736011111,-4.676805674809973e-5,-4.8055358790222776e-8,-0.0021121455008559073,-4.68802207502431e-5,-4.8173435647070684e-8,-0.002112080244306887,-4.705993268071947e-5,-4.8364140938563196e-8,-0.0021119310664213338,-4.727368018370931e-5,-4.8592931302070324e-8,-0.002111691895111901,-4.747730114612249e-5,-4.881352739322071e-8,-0.0021113788749667064,-4.7627699607907756e-5,-4.898012188224292e-8,-0.00211102704677318,-4.7694954771803144e-5,-4.9060201272908396e-8,-0.002110681352249585,-4.767075494556609e-5,-4.90436883734857e-8,-0.002110384874318121,-4.7570663804349934e-5,-4.894570849816082e-8,-0.0021101677401916797,-4.7429813825341904e-5,-4.8802430880724736e-8,-0.002110039696581039,-4.729335730533683e-5,-4.866125590022362e-8,-0.0021099884072854364,-4.7204358850854926e-5,-4.8568084600913465e-8,-0.002109983945387274,-4.7192708949043166e-5,-4.855543459993911e-8,-0.0021099879117350232,-4.726846620998511e-5,-4.863507382826351e-8,-0.0021099639576379094,-4.7421428985429237e-5,-4.879720662545984e-8,-0.0021098861854816123,-4.7626298326830003e-5,-4.901567331796005e-8,-0.002109743186109511,-4.7850789510772105e-5,-4.9256450069474826e-8,-0.002109537586825893,-4.8063526347891254e-5,-4.948609768053289e-8,-0.002109282655958739,-4.8239580975826655e-5,-4.967782243823404e-8,-0.0021089979409871034,-4.8363148343395243e-5,-4.981449771751667e-8,-0.002108705341277884,-4.8427999229028034e-5,-4.988923858233261e-8,-0.002108426170116319,-4.843672757019664e-5,-4.990457813568429e-8,-0.0021081790939703336,-4.8399655340769195e-5,-4.987120855545762e-8,-0.002107978462340765,-4.8333815691984267e-5,-4.98068240380907e-8,-0.0021078325085235445,-4.8261883157006745e-5,-4.973500790876879e-8,-0.002107741182028866,-4.8210487087105704e-5,-4.968358842430621e-8,-0.0021076938773007476,-4.820714020935879e-5,-4.9681591379790985e-8,-0.0021076680383246907,-4.827513281127266e-5,-4.975399170959863e-8,-0.002107630376401887,-4.842654419791798e-5,-4.991432609044488e-8,-0.0021075425159545343,-4.865523284848443e-5,-5.015711147352186e-8,-0.0021073713272879244,-4.893349928726431e-5,-5.045403692151433e-8,-0.002107101054149504,-4.921621165090497e-5,-5.075804312180078e-8,-0.00210674158544731,-4.9453141274911964e-5,-5.1016160495136004e-8,-0.0021063277292051657,-4.960526660686225e-5,-5.1186657637328415e-8,-0.0021059088236712936,-4.965767137535703e-5,-5.1252729209342855e-8,-0.002105533355710234,-4.962333434846008e-5,-5.122672710022117e-8,-0.002105235298687669,-4.953725574759237e-5,-5.114433301511661e-8,-0.0021050267301768173,-4.9444765358431426e-5,-5.105262008384059e-8,-0.0021048975954977385,-4.938895653500951e-5,-5.099704564916817e-8,-0.0021048209457205044,-4.940083264676395e-5,-5.1011036159970786e-8,-0.0021047611320736954,-4.9493878141675046e-5,-5.110997819652719e-8,-0.0021046825545899023,-4.9663315734863536e-5,-5.1290024568352304e-8,-0.002104557033149279,-4.98893453161492e-5,-5.1531150434198844e-8,-0.0021043684802190066,-5.0143026698940785e-5,-5.1803180748147716e-8,-0.002104114312419352,-5.0393089164750924e-5,-5.2073008844431506e-8,-0.0021038039107087792,-5.0611974369170696e-5,-5.2311154609061635e-8,-0.002103455142864527,-5.077997300985246e-5,-5.249634587215205e-8,-0.0021030901973043527,-5.088713159052434e-5,-5.261767665298347e-8,-0.002102731754757487,-5.093327497583167e-5,-5.2674658453290784e-8,-0.002102400038249737,-5.0926853473763044e-5,-5.267593710089334e-8,-0.002102110741705476,-5.088333895282607e-5,-5.2637516149960456e-8,-0.002101873489403106,-5.08235740242651e-5,-5.2580999673824274e-8,-0.0021016904381226816,-5.07720385838116e-5,-5.2531862498246874e-8,-0.0021015548084289933,-5.0754644122074386e-5,-5.2517309070279127e-8,-0.002101449525764805,-5.079541727592946e-5,-5.256294807274047e-8,-0.002101346863688587,-5.091147619245311e-5,-5.268753767417356e-8,-0.0021012107625705593,-5.110647842638639e-5,-5.2895930277749896e-8,-0.0021010036231113496,-5.1364431323432054e-5,-5.317225671965255e-8,-0.0021006978474307205,-5.164780092740599e-5,-5.347763770609452e-8,-0.0021002887607210427,-5.1904283966139336e-5,-5.3757151991875933e-8,-0.0020998017811831972,-5.2082983385010847e-5,-5.3956856249473105e-8,-0.002099287305051419,-5.2153786677272464e-5,-5.404424493360183e-8,-0.002098803714303415,-5.211938886395136e-5,-5.402099729340937e-8,-0.0020983970909576486,-5.201310176200273e-5,-5.392087032373497e-8,-0.0020980879471518285,-5.1884788106360025e-5,-5.379525398388802e-8,-0.0020978694594535633,-5.178355560077695e-5,-5.3695353664609535e-8,-0.0020977146033212875,-5.1744897802943776e-5,-5.3658858151211176e-8,-0.0020975867206337855,-5.17850538647107e-5,-5.370387698001164e-8,-0.002097449252174256,-5.1901448471996434e-5,-5.382901325735156e-8,-0.0020972727165282454,-5.2076755488728516e-5,-5.4017187239652266e-8,-0.002097038679265766,-5.228448053746355e-5,-5.424119501315798e-8,-0.002096741115512614,-5.2494770950254756e-5,-5.446974146690214e-8,-0.0020963856479537316,-5.267968073580639e-5,-5.467310941300608e-8,-0.0020959871806476727,-5.281730553664611e-5,-5.482773870037851e-8,-0.002095566547851664,-5.2894425618154075e-5,-5.49192091763326e-8,-0.0020951467983804607,-5.2907580747666326e-5,-5.494346629557186e-8,-0.0020947496865052926,-5.2862703551995284e-5,-5.490641407062349e-8,-0.00209439283463895,-5.277366064911636e-5,-5.482230500560337e-8,-0.002094087719578533,-5.266022168051224e-5,-5.471156076175677e-8,-0.0020938383034884785,-5.2545818362760925e-5,-5.459846822588298e-8,-0.00209364009071615,-5.245512424241938e-5,-5.4508786421523974e-8,-0.002093479524987209,-5.241128303972207e-5,-5.4467015989831044e-8,-0.002093333866675805,-5.243244496307399e-5,-5.449285675295966e-8,-0.002093172238328941,-5.25272454837531e-5,-5.459637339444828e-8,-0.002092959192295158,-5.2689536740216397e-5,-5.47721861308031e-8,-0.002092662162437497,-5.289419192472436e-5,-5.4994709404817255e-8,-0.002092262731012093,-5.3097515495686634e-5,-5.5218327291160634e-8,-0.0020917682925749906,-5.3246152076680836e-5,-5.5386719323868286e-8,-0.0020912168729252238,-5.32948950916572e-5,-5.5451705931345774e-8,-0.00209066831104737,-5.322638039161152e-5,-5.539407826225248e-8,-0.002090182976448214,-5.306061034027742e-5,-5.523368866112795e-8,-0.0020897991792229852,-5.2847036022818596e-5,-5.502129784760488e-8,-0.0020895220312050072,-5.264403046194828e-5,-5.481735951820511e-8,-0.002089327651578887,-5.2498344531242285e-5,-5.4670817165440435e-8,-0.002089176601984936,-5.243402752975581e-5,-5.46075905285881e-8,-0.002089027832962104,-5.2451886161662154e-5,-5.462976227025945e-8,-0.002088848145979607,-5.253524957931374e-5,-5.4721159636310425e-8,-0.002088616519163286,-5.265749417095675e-5,-5.485481113266398e-8,-0.0020883247601802828,-5.278870213189013e-5,-5.499971074275159e-8,-0.0020879761659435914,-5.290068935685728e-5,-5.512613172786507e-8,-0.002087583221816599,-5.297058683962383e-5,-5.520959628157752e-8,-0.002087164777385674,-5.29832296796577e-5,-5.5233626895864976e-8,-0.002086742950109644,-5.2932455223265686e-5,-5.519126877302781e-8,-0.002086339956581604,-5.282138748957507e-5,-5.508542075950947e-8,-0.0020859750527439137,-5.266171847400609e-5,-5.492801945295256e-8,-0.0020856618891764334,-5.247200185689632e-5,-5.4738177469182e-8,-0.0020854066000901466,-5.227520696881749e-5,-5.453962120190033e-8,-0.0020852067040709943,-5.209587655834655e-5,-5.4357819901512334e-8,-0.002085050761531667,-5.19570440334916e-5,-5.421693100956444e-8,-0.0020849188250382576,-5.187695475340274e-5,-5.4136513752244604e-8,-0.0020847838283227895,-5.1865633386018315e-5,-5.4127943797766366e-8,-0.002084614302700284,-5.192134366393279e-5,-5.4190517439071605e-8,-0.002084379177216386,-5.202743147570318e-5,-5.4307801867957737e-8,-0.0020840552632532838,-5.2151132764179095e-5,-5.444603412637725e-8,-0.0020836367229090016,-5.2246983387897786e-5,-5.4557508305702125e-8,-0.0020831432642481086,-5.226727446908682e-5,-5.45915998704627e-8,-0.00208262110484632,-5.217892051956154e-5,-5.451267651801983e-8,-0.0020821314693878165,-5.1979995231158984e-5,-5.4317639028435655e-8,-0.002081728580818981,-5.170500269403149e-5,-5.404156653193917e-8,-0.0020814384597434145,-5.1412711832119855e-5,-5.374512512192592e-8,-0.0020812512548079114,-5.1162601970100065e-5,-5.349017232141276e-8,-0.0020811301739922143,-5.0993981576040526e-5,-5.331814200443522e-8,-0.0020810288964036128,-5.091778800135395e-5,-5.324144113486929e-8,-0.0020809068797548306,-5.0920708246115815e-5,-5.324742058440525e-8,-0.002080737412895719,-5.0975044648063965e-5,-5.330822538299496e-8,-0.0020805090765344805,-5.104836915559959e-5,-5.339054776415609e-8,-0.0020802235105041346,-5.111032019083676e-5,-5.3462654102947513e-8,-0.0020798920087048986,-5.113645247824958e-5,-5.349856905196274e-8,-0.0020795322310856322,-5.111013067736273e-5,-5.3480319452971573e-8,-0.002079165270330489,-5.102337145825212e-5,-5.339903379738613e-8,-0.002078812929807196,-5.0877027322918444e-5,-5.325522084868336e-8,-0.0020784951021789507,-5.0680399754512935e-5,-5.3058323468374344e-8,-0.0020782272019827155,-5.0450194248135284e-5,-5.2825530483115977E-08,-0.002078017796904138,-5.020860124030872e-5,-5.257971627504764e-8,-0.002077866846658982,-4.998045829403398e-5,-5.234652763334412e-8,-0.002077764949227266,-4.9789769777337244e-5,-5.215090293742938e-8,-0.002077693796213007,-4.96559598259346e-5,-5.201333928555749e-8,-0.002077627945643406,-4.959024266445353e-5,-5.1946199184189877e-8,-0.0020775379573369774,-4.959258117963107e-5,-5.1950458272378425e-8,-0.002077394847759163,-4.964972754567608e-5,-5.20133946027985e-8,-0.0020771757956997636,-4.973494898228385e-5,-5.2107934240242226e-8,-0.0020768707597667575,-4.981047198397003e-5,-5.21948928946358e-8,-0.002076488719453658,-4.9833950263944744e-5,-5.222962698296795e-8,-0.0020760607752435137,-4.976947981592237e-5,-5.217368787144459e-8,-0.0020756363255762,-4.960119521007246e-5,-5.2009327355383566e-8,-0.0020752699804712604,-4.934370262592132e-5,-5.175068444401802e-8,-0.002075002258206543,-4.904167747827994e-5,-5.144355599514386e-8,-0.002074843505137487,-4.875527236421879e-5,-5.115030112001243e-8,-0.002074770885112081,-4.85375576824606e-5,-5.092642497342114e-8,-0.0020747400769557814,-4.841647775431193e-5,-5.080178737543361e-8,-0.00207470360549399,-4.839002227744564e-5,-5.077538800998163e-8,-0.0020746254988324455,-4.843356303392952e-5,-5.082265162308837e-8,-0.002074487411936633,-4.8512066229528486e-5,-5.090778965666528e-8,-0.002074287589063454,-4.8590652566310444e-5,-5.099462507142112e-8,-0.0020740364229402913,-4.864094211986411e-5,-5.105327235216716e-8,-0.0020737516117730406,-4.864364377231825e-5,-5.1063071939584795e-8,-0.0020734542779023923,-4.858893563414716e-5,-5.101324060777878e-8,-0.0020731661303226793,-4.847596434842968e-5,-5.090249495797251e-8,-0.0020729072209830705,-4.831209437291138e-5,-5.073826475982897e-8,-0.002072693884949742,-4.81119863715466e-5,-5.053563043378728e-8,-0.0020725366574624164,-4.789627336170478e-5,-5.031584456326077e-8,-0.002072438244777095,-4.76894406001386e-5,-5.0104114550785046e-8,-0.0020723920062757552,-4.751664405123388e-5,-4.992640119935618e-8,-0.002072381620741844,-4.7399626029792626e-5,-4.980535122260885e-8,-0.002072382493146707,-4.735231857382114e-5,-4.975587690759763e-8,-0.002072365126038206,-4.737703392101369e-5,-4.9781211913094104e-8,-0.0020723002115636837,-4.746229500170882e-5,-4.987048608611002e-8,-0.002072164686144449,-4.758318793891755e-5,-4.9998772052492005e-8,-0.0020719476479477516,-4.7704672733856255e-5,-5.0130175273880784e-8,-0.0020716548762382742,-4.778785681354576e-5,-5.0224127220180263E-08,-0.002071310506859259,-4.779875995902617e-5,-5.0244500497020163e-8,-0.0020709542977483263,-4.7718213318121765e-5,-5.017014103512715e-8,-0.002070633392768585,-4.755018007788747e-5,-5.0003890279004845e-8,-0.0020703892518739446,-4.7324560969728754e-5,-4.9775852540256276e-8,-0.002070243556064142,-4.709095642120351e-5,-4.953713265926498e-8,-0.002070189582318923,-4.690347790577672e-5,-4.93441179578025e-8,-0.002070194443298303,-4.6802416516879245e-5,-4.9239360290252976e-8,-0.002070211781957937,-4.680166452708117e-5,-4.923831183218621e-8,-0.0020701982102484394,-4.688757653287808e-5,-4.9327848095478144e-8,-0.0020701254502533,-4.702784331254064e-5,-4.947517696147768e-8,-0.002069984310820259,-4.718405080239909e-5,-4.9640685225447364e-8,-0.002069781881963152,-4.732196406548829e-5,-4.978861540585559e-8,-0.002069535727065262,-4.741708010271714e-5,-4.989300757237092e-8,-0.0020692682062174064,-4.7456088345065395e-5,-4.993946266170168e-8,-0.0020690022999483347,-4.743604483466135e-5,-4.9924473337753236e-8,-0.0020687589325963695,-4.736278778201662e-5,-4.9853830021207306e-8,-0.0020685552095647745,-4.724938104372905e-5,-4.9740931313843226e-8,-0.0020684029471759965,-4.7114721697835956e-5,-4.9605222607596616e-8,-0.002068307113632894,-4.698198596032385e-5,-4.9470525465095644e-8,-0.002068264210735056,-4.6876359384872586e-5,-4.936274057243991e-8,-0.0020682611085878133,-4.682161851644506e-5,-4.930645763105391e-8,-0.002068275207205279,-4.683559588593652e-5,-4.932042167102954e-8,-0.002068276840995726,-4.692525626768796e-5,-4.941250393336782e-8,-0.0020682343681795467,-4.708286526062035e-5,-4.9575641749325084e-8,-0.002068121336074826,-4.728509807584928e-5,-4.9786665145860586e-8,-0.002067923897843404,-4.7496385865671217e-5,-5.0009436305109905e-8,-0.0020676460373650566,-4.7676378285878495e-5,-5.0202301586995866e-8,-0.0020673105644500745,-4.77898332491647e-5,-5.032822287464823e-8,-0.002066955050994269,-4.781625324925658e-5,-5.036486940750825e-8,-0.0020666233471462645,-4.7756464778773514e-5,-5.0311739548860085e-8,-0.002066354580310086,-4.763398187934115e-5,-5.0191974764700023E-08,-0.0020661724200392493,-4.7490128745401975e-5,-5.004766473653001e-8,-0.0020660778693884388,-4.737345115377653e-5,-4.9929071504630356e-8,-0.002066048524221078,-4.732603099287772e-5,-4.9880421809209325e-8,-0.0020660453797246812,-4.737129330364156e-5,-4.992704483799921e-8,-0.0020660250285791494,-4.7508085193365105e-5,-5.006889477610717e-8,-0.0020659523841825966,-4.7713206060515434e-5,-5.028283650859611e-8,-0.0020658090029066624,-4.795053885650078e-5,-5.053188956294247e-8,-0.002065594771846483,-4.818222569886375e-5,-5.0776768516938594e-8,-0.002065324117375244,-4.837752105633615e-5,-5.0985184294608874e-8,-0.002065019767433622,-4.851728875182688e-5,-5.1136723525022014e-8,-0.0020647068446275245,-4.8594594783670716e-5,-5.1223668798557995e-8,-0.0020644086381638085,-4.861304972472082e-5,-5.124938607964203e-8,-0.002064144097864555,-4.8584434676873395e-5,-5.122584536957933e-8,-0.002063926468637026,-4.852647936788248e-5,-5.1171225339119544e-8,-0.0020637623786124806,-4.846100605905334e-5,-5.11079143446867e-8,-0.0020636508879348973,-4.841213269692522e-5,-5.106066445180714e-8,-0.002063582435238546,-4.8403934845334516e-5,-5.1054290024565175e-8,-0.002063538168965467,-4.8457018960260466e-5,-5.1110281108115146e-8,-0.002063490642966396,-4.858388401565267e-5,-5.12421042751145e-8,-0.002063407082221286,-4.8783799285689586e-5,-5.144985988199522e-8,-0.0020632559577338995,-4.9039126710606216e-5,-5.1716281192541857e-8,-0.0020630160427410785,-4.931581340272001e-5,-5.200696102828744e-8,-0.002062684941410063,-4.95699691789468e-5,-5.2276889335559116e-8,-0.0020622829172062315,-4.9759696099219955e-5,-5.2482526161209284e-8,-0.0020618491854511264,-4.9858113731482825e-5,-5.259526114699326e-8,-0.0020614313126430684,-4.98622055714111e-5,-5.261072103110058e-8,-0.0020610717124268244,-4.979388598943105e-5,-5.255018976438976e-8,-0.00206079622917913,-4.9693307260769264e-5,-5.2454091838812215e-8,-0.002060608259750969,-4.960738794563041e-5,-5.2370482519734586e-8,-0.0020604893759882652,-4.957747244117635e-5,-5.234243575739418e-8,-0.0020604054583355405,-4.962944279368117e-5,-5.239769021503708e-8,-0.00206031622426224,-4.976850689463904e-5,-5.254290844467591e-8,-0.0020601854537221713,-4.997959938080869e-5,-5.276367005121703e-8,-0.002059989171420568,-5.0232827495872717e-5,-5.3029781808228276e-8,-0.0020597197607184654,-5.049196909900188e-5,-5.330394627200139e-8,-0.002059385412596773,-5.0723251719086136e-5,-5.35509256812709e-8,-0.002059005920337264,-5.0901931837912855e-5,-5.374455696877302e-8,-0.0020586068325025636,-5.1015438910330984e-5,-5.387122879648511e-8,-0.0020582139353274493,-5.106332394108202e-5,-5.3929977985066915e-8,-0.0020578492211639973,-5.105516573900859e-5,-5.3930358175955645e-8,-0.002057528552028513,-5.100771436745336e-5,-5.388943054436595e-8,-0.0020572605931187234,-5.094215881551009e-5,-5.382886471043966e-8,-0.0020570463828137086,-5.088182315066045e-5,-5.3772543032440546e-8,-0.0020568790450358394,-5.0850080664488783e-5,-5.3744486331419684e-8,-0.0020567435004348058,-5.086799254343324e-5,-5.376655829843546e-8,-0.0020566165172875277,-5.0951144908211624e-5,-5.38553140117008e-8,-0.002056468009873697,-5.1105440079060466e-5,-5.40176449522486e-8,-0.002056264887091375,-5.13224346701609e-5,-5.4245796040435814e-8,-0.0020559784072281106,-5.157623756835036e-5,-5.451389058844007e-8,-0.0020555942713637253,-5.1825209665744814e-5,-5.4779432398487804e-8,-0.0020551217432332926,-5.202108670480498e-5,-5.4992587084446835e-8,-0.002054595971680873,-5.212442299521637e-5,-5.511211091620739e-8,-0.002054069540827032,-5.212000715115373e-5,-5.51213256728815e-8,-0.0020535954582683582,-5.202381128623128e-5,-5.503543356010499e-8,-0.002053209667556904,-5.187728707364314e-5,-5.48959111155173e-8,-0.002052921320923942,-5.1732422490422854e-5,-5.4755490408141264e-8,-0.0020527136286440546,-5.163540619096735e-5,-5.466165472016251e-8,-0.002052552370246584,-5.16152962902263e-5,-5.464504010682952e-8,-0.002052397089200715,-5.167979779085585e-5,-5.471483931427527e-8,-0.0020522111175157827,-5.1817015362214554e-5,-5.4860156203498216e-8,-0.002051968552414977,-5.200091488002448e-5,-5.505518884494557e-8,-0.002051657757119859,-5.219838699551085e-5,-5.5266251947721564e-8,-0.0020512816489339715,-5.237636228823249e-5,-5.5459107581815276e-8,-0.0020508553095427784,-5.2507832957142995e-5,-5.5605365688318714e-8,-0.0020504017421625635,-5.2575890404729004e-5,-5.568690921630114e-8,-0.002049946887543557,-5.257533993074332e-5,-5.5697769382127575e-8,-0.002049514984834118,-5.251207506856239e-5,-5.5643570315387093e-8,-0.0020491250330573053,-5.240083953067565e-5,-5.553919797775131e-8,-0.0020487886736325817,-5.226219084775036e-5,-5.540559549606092e-8,-0.002048509350314085,-5.211942672300324e-5,-5.526655233827838e-8,-0.0020482822912756475,-5.1995876311308334e-5,-5.514595440180733e-8,-0.0020480948969156336,-5.191250486751777e-5,-5.506543751527602e-8,-0.0020479273660762303,-5.188554270222557e-5,-5.5042078174011434e-8,-0.002047753716271682,-5.19237834715236e-5,-5.5085654827554707e-8,-0.002047543853386551,-5.202532476066097e-5,-5.5195172880639046e-8,-0.0020472677925593256,-5.2174216124140644e-5,-5.535514660858792e-8,-0.002046902870774027,-5.2338771760351975e-5,-5.553355877045675e-8,-0.0020464432837271392,-5.247451873274851e-5,-5.568470840459575e-8,-0.0020459084093877532,-5.253449204712567e-5,-5.575981860047395e-8,-0.002045343640214381,-5.2486027294355265e-5,-5.5724461720487053e-8,-0.002044808785656605,-5.2326853813685626e-5,-5.557525555895152e-8,-0.002044356731611969,-5.208986005362827e-5,-5.534487592771635e-8,-0.002044013525552351,-5.183141847200364e-5,-5.5090255370018856e-8,-0.002043771226817781,-5.160953417781544e-5,-5.48704621303244e-8,-0.0020435956589243583,-5.1464429347744986e-5,-5.472704260792385e-8,-0.0020434418674889353,-5.1410036594933055e-5,-5.4675282541850294e-8,-0.0020432684427998627,-5.14362548539681e-5,-5.470618039648655e-8,-0.0020430462096218717,-5.1516940304592496e-5,-5.4794150517663037e-8,-0.0020427612302023604,-5.161886518563504e-5,-5.490581755587025e-8,-0.002042413976632722,-5.170911019925943e-5,-5.50074620408479e-8,-0.0020420165420526716,-5.1760253982835196e-5,-5.5070471238764245e-8,-0.0020415890123641396,-5.1753638794210315e-5,-5.507496856439569e-8,-0.002041155494939975,-5.168102371657047e-5,-5.501178570621877e-8,-0.0020407401651533347,-5.154474405169965e-5,-5.488278817879703e-8,-0.0020403637204026146,-5.135653343018677e-5,-5.4699684377973364e-8,-0.002040040576882192,-5.113526412477106e-5,-5.448162890443747e-8,-0.002039777091455139,-5.09039490226065e-5,-5.425206240270826e-8,-0.0020395709362431877,-5.068649756636404e-5,-5.4035371776647424e-8,-0.002039411459954195,-5.050467571637247e-5,-5.385385724355181e-8,-0.002039280756574348,-5.037542727193322e-5,-5.372512326084712e-8,-0.0020391552857087123,-5.030852534711591e-5,-5.365977061904039e-8,-0.0020390080427771986,-5.030447590753775e-5,-5.365921376204627e-8,-0.002038811568452725,-5.0352607930303213e-5,-5.3713516384989046e-8,-0.0020385424324039243,-5.042973944197244e-5,-5.379970190700536e-8,-0.0020381875739485158,-5.050077044952324e-5,-5.388206675784495e-8,-0.0020377516616928775,-5.052330199125621e-5,-5.391680200972993e-8,-0.0020372625651711995,-5.045802416725423e-5,-5.386277190055731e-8,-0.0020367698775526524,-5.028392416035833e-5,-5.3697376840582164e-8,-0.0020363321435952564,-5.001196000452072e-5,-5.34308014077663e-8,-0.0020359951521852593,-4.968703486004547e-5,-5.310816086035136e-8,-0.0020357726478473404,-4.937288418461528e-5,-5.279414480895378e-8,-0.0020356419556401216,-4.9126855995544544e-5,-5.2547399322285394e-8,-0.002035556684070434,-4.897959533240644e-5,-5.2399885499866514e-8,-0.0020354668174017705,-4.892970414356411e-5,-5.2351307750795756e-8,-0.0020353344578759418,-4.8951698867931034e-5,-5.237686688565701e-8,-0.0020351402813209166,-4.900893595997211e-5,-5.2440021527677685e-8,-0.0020348825479860966,-4.906468718670452e-5,-5.250353037457378e-8,-0.0020345726105927375,-4.908894182699448e-5,-5.253641005057569e-8,-0.002034229863541913,-4.906144649731033e-5,-5.251727392128725e-8,-0.002033877432711455,-4.897243922319491e-5,-5.2435389666249733e-8,-0.002033538711092817,-4.882223756648143e-5,-5.2290488844127926e-8,-0.002033234470164266,-4.8620156756388854e-5,-5.2091736421230884e-8,-0.0020329804185158853,-4.838285072517303e-5,-5.185597492180308e-8,-0.0020327852353072594,-4.813206614562613e-5,-5.160531630998899e-8,-0.002032649254192641,-4.789178910703803e-5,-5.136415864036497e-8,-0.00203256409568354,-4.7684964149517676e-5,-5.115586867184493e-8,-0.002032513412831578,-4.7530207576543425e-5,-5.099954932398015e-8,-0.0020324746777436327,-4.743890663944881e-5,-5.0907215491822745e-8,-0.002032421864725609,-4.741298395352246e-5,-5.088156196373777e-8,-0.002032328861343699,-4.744359026821503e-5,-5.091451930689139e-8,-0.002032173443614939,-4.7510913626487626e-5,-5.098678990055797e-8,-0.002031941783002499,-4.75853718193778e-5,-5.106873150905396e-8,-0.0020316332829377146,-4.763092567556373e-5,-5.112349305662727e-8,-0.002031264678451989,-4.7611506845454626e-5,-5.111354889776993e-8,-0.0020308711459007655,-4.7500835256465015e-5,-5.101094070015697e-8,-0.002030501384939176,-4.7293891553481265e-5,-5.0809346057054425e-8,-0.0020302046550841244,-4.7015069114082157e-5,-5.053271389164446e-8,-0.002030012417735536,-4.6715860633814e-5,-5.023306514824246e-8,-0.0020299237206302333,-4.645858056483108e-5,-4.997393446583235e-8,-0.002029904534219609,-4.629246101907128e-5,-4.980599835191041e-8,-0.0020299027081861383,-4.6235733219535855e-5,-4.974874457112798e-8,-0.0020298691085456756,-4.6273355836021885e-5,-4.9787942532947575e-8,-0.002029772836986357,-4.6368492929145236e-5,-4.9886997870461254e-8,-0.0020296053518841788,-4.6478270704142267e-5,-5.0002696473796485e-8,-0.0020293762284797076,-4.6565779984025805e-5,-5.009732090515303e-8,-0.0020291058975264805,-4.660586503998099e-5,-5.0144678766039385e-8,-0.0020288190745721122,-4.658611551409667e-5,-5.013139050785385e-8,-0.0020285401833065263,-4.650544482721242e-5,-5.0055709880198454e-8,-0.0020282905163081324,-4.637198758862261e-5,-4.9925521941264115e-8,-0.0020280863812595215,-4.6201017541421475e-5,-4.975620376898143e-8,-0.002027937697407739,-4.6012910954525015e-5,-4.95684364968778e-8,-0.0020278468548150497,-4.5830932166805734e-5,-4.938584335030445e-8,-0.0020278079352926354,-4.5678563130217145e-5,-4.923225233991149e-8,-0.0020278066732735607,-4.5576287146234076e-5,-4.9128512005390405e-8,-0.0020278216052989797,-4.553814792964579e-5,-4.908913495339701e-8,-0.0020278266184087235,-4.5568694544187735e-5,-4.91192941943901e-8,-0.0020277947861438816,-4.566099727855335e-5,-4.921277950752152e-8,-0.0020277030598136164,-4.579640243999685e-5,-4.9351559556919325e-8,-0.0020275370670149273,-4.5946459644631754e-5,-4.950743825762933e-8,-0.0020272951641109476,-4.6077038467505365e-5,-4.964594133297112e-8,-0.0020269909380996286,-4.615441491887575e-5,-4.9732349917762104e-8,-0.002026653192492816,-4.615293081887066e-5,-4.973956903588067e-8,-0.002026322209052732,-4.606314805429271e-5,-4.965671815932576e-8,-0.0020260414134917063,-4.5898197313257225e-5,-4.949598467985722e-8,-0.002025845064816443,-4.569487890022771e-5,-4.929407616837752e-8,-0.0020257453978966516,-4.550622741121225e-5,-4.9104815330766504e-8,-0.0020257254701901042,-4.538541867435896e-5,-4.898274157296879e-8,-0.0020257433889951937,-4.536680350718691e-5,-4.89636608578841e-8,-0.0020257476215753702,-4.5453789008186565e-5,-4.905208248604179e-8,-0.002025695654193513,-4.562012774480506e-5,-4.922225373647776e-8,-0.0020255663701208917,-4.582262170758979e-5,-4.943082479997011e-8,-0.0020253618227586557,-4.6016984020625265e-5,-4.963283638283841e-8,-0.00202510099803616,-4.6169328034816214e-5,-4.979343944742674e-8,-0.002024811017417274,-4.626077683867761e-5,-4.989278000082901e-8,-0.002024519795827304,-4.6286832571634604e-5,-4.992561400738215e-8,-0.0020242514862415977,-4.625433913083903e-5,-4.989840752411386e-8,-0.002024024252686185,-4.617810969109077e-5,-4.982595556164917e-8,-0.0020238493406938953,-4.607808430854788e-5,-4.972841725462505e-8,-0.0020237306112493255,-4.597702408116703e-5,-4.96288581956967e-8,-0.002023664162763472,-4.589834984431947e-5,-4.955099750636145e-8,-0.0020236381094273855,-4.586365827157764e-5,-4.951673189348936e-8,-0.0020236329502209293,-4.5889656355000434e-5,-4.954314934249165e-8,-0.002023623153744319,-4.5984715081919234e-5,-4.963915423232379e-8,-0.0020235804546441657,-4.6145777376813115e-5,-4.980235686787022e-8,-0.002023478863220688,-4.635676148666589e-5,-5.0017332271608656e-8,-0.0020233006158513526,-4.658965624449702e-5,-5.025648223081647e-8,-0.002023041531229927,-4.6808945440860525e-5,-5.048423155390615e-8,-0.0020227139642913913,-4.6978896318268104e-5,-5.066420578545552e-8,-0.002022346013528821,-4.7072161309276584e-5,-5.0767917079637096e-8,-0.002021976583923614,-4.7077557162162256e-5,-5.0782829172766134e-8,-0.002021646938817805,-4.700482993717928e-5,-5.071753209060727e-8,-0.0020213903373314294,-4.688457071627136e-5,-5.060204845365824e-8,-0.00202122225761361,-4.676225438165741e-5,-5.048208770780828e-8,-0.002021134399579563,-4.668682793085823e-5,-5.040757499631068e-8,-0.0020210955157597492,-4.66964938733245e-5,-5.041810897949245e-8,-0.002021060207166187,-4.680660727557303e-5,-5.053039604591645e-8,-0.0020209831787395298,-4.700501284627893e-5,-5.073317426465869e-8,-0.0020208331782008877,-4.7257207541469374e-5,-5.0992163914768974e-8,-0.002020600749527367,-4.751873684499668e-5,-5.126249359928724e-8,-0.002020297495132843,-4.7748817668834114e-5,-5.150253416122725e-8,-0.002019949045350994,-4.791973032907616e-5,-5.168357842505219e-8,-0.002019586148214338,-4.801998291591459e-5,-5.1793273968425187e-8,-0.0020192374342056386,-4.8052601996660434e-5,-5.183409256541799e-8,-0.002018925159106304,-4.8031175323490096e-5,-5.181942050354247e-8,-0.0020186634942643855,-4.797571811880198e-5,-5.1769350061628944e-8,-0.002018458307559683,-4.7909321720409155e-5,-5.17071934570522e-8,-0.0020183074793059634,-4.7855657746552463e-5,-5.1656878184229704e-8,-0.0020182012242393878,-4.783688725574289e-5,-5.164083264519561e-8,-0.0020181224346406887,-4.7871384574551e-5,-5.167777089044754e-8,-0.002018047515893418,-4.797092449356852e-5,-5.177995991815182e-8,-0.0020179484270965854,-4.813745696818201e-5,-5.1950004632217014e-8,-0.0020177966111187182,-4.836022705575067e-5,-5.217785319666721e-8,-0.0020175689778127058,-4.861471743161788e-5,-5.243952149084699e-8,-0.0020172549083493363,-4.886518940475764e-5,-5.2699404555608824e-8,-0.0020168618491771245,-4.9071739379400246e-5,-5.291720278700551e-8,-0.0020164165457899337,-4.920074189090056e-5,-5.305839885690176e-8,-0.0020159601254947663,-4.923537724905972e-5,-5.310497994930823e-8,-0.0020155377782343923,-4.9182101111894395e-5,-5.3062208619770655e-8,-0.0020151863264922898,-4.9070186505180795e-5,-5.2958496549887175e-8,-0.0020149239683831454,-4.894424255995497e-5,-5.28381974040878e-8,-0.002014745466484543,-4.8852234007670655e-5,-5.2749744360003565e-8,-0.002014623980385843,-4.8832737442584404e-5,-5.2732795661562925E-08,-0.0020145187675945538,-4.8905033515197663e-5,-5.2807996323674024e-8,-0.002014386463354211,-4.9064737170752646e-5,-5.297217537397421e-8,-0.0020141926071653754,-4.928613889269881e-5,-5.3200321420099145e-8,-0.002013919923050992,-4.953032530867741e-5,-5.3453543629696204e-8,-0.002013571006866503,-4.975617191211685e-5,-5.369014468097558e-8,-0.0020131652167542056,-4.993046123284049e-5,-5.3875992139383384e-8,-0.002012731692604997,-5.0034158097124634e-5,-5.399109718532883e-8,-0.0020123014742402913,-5.0063845602625036e-5,-5.403129483295887e-8,-0.00201190121087524,-5.002933955111049e-5,-5.4005977959494064e-8,-0.002011549521326985,-4.994945558883987e-5,-5.393385164637899e-8,-0.002011255743455944,-4.984764678639762e-5,-5.383846809376056e-8,-0.0020110201985696686,-4.974843179222414e-5,-5.374453985485008e-8,-0.002010835083772604,-4.9674777295965575e-5,-5.367526613695328e-8,-0.0020106854277154628,-4.964606496865315e-5,-5.365032901804489e-8,-0.0020105500400673802,-4.9676073962541255e-5,-5.3683953076972764e-8,-0.0020104028617102853,-4.9770593190928885e-5,-5.3782559234610896e-8,-0.0020102154280196164,-4.992472116898015e-5,-5.39419945769669e-8,-0.002009961203093299,-5.01205774324166e-5,-5.4145045648848874e-8,-0.0020096220475094026,-5.032702956215601e-5,-5.436091558231032e-8,-0.0020091956873586328,-5.0503577918817376e-5,-5.454893403638213e-8,-0.0020087010935627442,-5.060963041617747e-5,-5.466782814365228e-8,-0.0020081776870822868,-5.06175125618987e-5,-5.468889528583259e-8,-0.0020076760813480246,-5.052404157729019e-5,-5.4607820427235687e-8,-0.0020072426309083852,-5.03543523152836e-5,-5.444874990717472e-8,-0.0020069043511348767,-5.015493124700536e-5,-5.42575575233768e-8,-0.0020066610667815107,-4.997871174697851e-5,-5.40871357697118e-8,-0.0020064875013838,-4.98690470565664e-5,-5.3981449732444325e-8,-0.0020063429428621477,-4.9848723760962696e-5,-5.396442162152271e-8,-0.0020061836818402717,-4.991653940438004e-5,-5.40361687618578e-8,-0.0020059740082301832,-5.005060728795719e-5,-5.4175883241144576e-8,-0.0020056933781890086,-5.021595398427699e-5,-5.434910207886136e-8,-0.0020053390005447076,-5.037374382076034e-5,-5.4516829286568113e-8,-0.0020049242019915922,-5.048986269802197e-5,-5.464425732666e-8,-0.0020044736538592134,-5.054119841472836e-5,-5.470733410760349e-8,-0.0020040170112563204,-5.0518666909647305e-5,-5.469609132681992e-8,-0.002003582651521957,-5.0426916644760484e-5,-5.461455429534083e-8,-0.002003192848389794,-5.028151267800684e-5,-5.4477987905210974e-8,-0.0020028610069787686,-5.010484787898947e-5,-5.430874706071043e-8,-0.0020025908720933084,-4.992194480586509e-5,-5.413196542421391e-8,-0.0020023771463984017,-4.9756918400443195e-5,-5.3971933421660555e-8,-0.002002206808863418,-4.963034306888264e-5,-5.384945799572805e-8,-0.0020020606277349035,-4.955729195151486e-5,-5.3779965287491494e-8,-0.002001914752160842,-4.9545629165052306e-5,-5.377186303277142e-8,-0.0020017426370449094,-4.959424701946217e-5,-5.382477021649585e-8,-0.0020015178700865826,-4.9691252782268014e-5,-5.392756337052816e-8,-0.002001218597218113,-4.981272984636775e-5,-5.4056892268100934e-8,-0.0020008337756181305,-4.9923598500677135e-5,-5.417780009747694e-8,-0.002000370096206164,-4.998267559890689e-5,-5.4248682766537245e-8,-0.0019998563334538166,-4.995319905600739e-5,-5.423191853970226e-8,-0.0019993405058199324,-4.981692900508882e-5,-5.4108211202206056e-8,-0.0019988771595501596,-4.958544642961348e-5,-5.388813032255459e-8,-0.001998508235516319,-4.930060305686856e-5,-5.361273486836377e-8,-0.0019982470792282445,-4.902112276864653e-5,-5.3340329163181614e-8,-0.001998074636703137,-4.880149849864028e-5,-5.31255233957502e-8,-0.0019979490776461596,-4.867431780069525e-5,-5.300163018068865e-8,-0.001997822100817167,-4.864355803151583e-5,-5.2973805172126e-8,-0.0019976535169998273,-4.8688691267618395e-5,-5.3022777123200866e-8,-0.001997419552504148,-4.8774601604832057e-5,-5.311433704727912e-8,-0.001997114744774493,-4.8862226688571974e-5,-5.320970261330998e-8,-0.0019967494607951706,-4.891701856579829e-5,-5.3273961127601174e-8,-0.0019963452028423133,-4.8914377496388965e-5,-5.328171644965104e-8,-0.0019959291743273603,-4.884227819040176e-5,-5.3220032150562435e-8,-0.0019955289872912786,-4.870151669163586e-5,-5.3088954045228216e-8,-0.001995168161878916,-4.850401085939419e-5,-5.289994962557313e-8,-0.0019948628903654394,-4.8269744288963775e-5,-5.267284224427861e-8,-0.0019946202670904343,-4.8023026531601735e-5,-5.2431967802807096e-8,-0.0019944379707342885,-4.7788675113880514e-5,-5.220224766362233e-8,-0.0019943051797844005,-4.7588659781935926e-5,-5.200579146376313e-8,-0.0019942042706509,-4.743954711749449e-5,-5.1859386167826104e-8,-0.001994112859914415,-4.735069680607469e-5,-5.1772781475901097e-8,-0.001994006037341234,-4.732295848864623e-5,-5.1747440313270875e-8,-0.001993858894812306,-4.7347710668200726e-5,-5.177551950964653e-8,-0.0019936496579878314,-4.740627635058635e-5,-5.18390919640976e-8,-0.001993363861819001,-4.7470190253398286e-5,-5.1910146838977426e-8,-0.0019929996205191062,-4.7503541595903896e-5,-5.195272017060764e-8,-0.0019925728195238626,-4.746902878186876e-5,-5.1928915188607375e-8,-0.001992119310680294,-4.7338527946317814e-5,-5.1809644671995214e-8,-0.001991689987214206,-4.710613654808492e-5,-5.1587956392584026e-8,-0.0019913363447532006,-4.6797293437381455e-5,-5.128838764343941e-8,-0.0019910904742861894,-4.6465669201456026e-5,-5.096398901617266e-8,-0.001990950368197197,-4.617513909028325e-5,-5.067840830528089e-8,-0.0019908806466250022,-4.5975167125504204e-5,-5.048140368418561e-8,-0.0019908285309041696,-4.5883747649525306e-5,-5.039181646697579e-8,-0.0019907446103717484,-4.588605349155747e-5,-5.039601315964357e-8,-0.0019905972795608703,-4.59456274268961e-5,-5.045866854053545e-8,-0.0019903769307380295,-4.601920467643337e-5,-5.053718566759492e-8,-0.001990092573971516,-4.60683822052351e-5,-5.059317403618827e-8,-0.0019897653271612717,-4.6066023946311286e-5,-5.059894157366422e-8,-0.0019894219047486518,-4.5998288524238066e-5,-5.0539804388693425e-8,-0.001989089388356069,-4.5864029542767294e-5,-5.041380553085208e-8,-0.001988791342582684,-4.5672889943786124e-5,-5.023002279694939e-8,-0.0019885450270769787,-4.544267119758317e-5,-5.000598811628438e-8,-0.001988359611822744,-4.519623780012269e-5,-4.9764511439258186e-8,-0.001988235373861473,-4.4958196634044265e-5,-4.9530237154278555e-8,-0.001988163874878257,-4.475155292368226e-5,-4.932622435749737e-8,-0.0019881291494703197,-4.4594624487372946e-5,-4.917088069716583e-8,-0.0019881097672433527,-4.449860634103792e-5,-4.907562319610449e-8,-0.0019880814361664893,-4.446599676205845e-5,-4.9043404078743095e-8,-0.001988019896370336,-4.448984902371915e-5,-4.90679788963876e-8,-0.0019879040251158317,-4.455382789815783e-5,-4.9133842968146527e-8,-0.001987719144006088,-4.463316087772778e-5,-4.921694042093964e-8,-0.001987460558236463,-4.46967620556441e-5,-4.9286514917244204e-8,-0.0019871370966062707,-4.471122399257981e-5,-4.9308929889939364e-8,-0.0019867735413332,-4.464753053386993e-5,-4.925440944020967e-8,-0.0019864096922321078,-4.449046879624519e-5,-4.910667619111871e-8,-0.001986093293887148,-4.424847454638656e-5,-4.887310764941467e-8,-0.0019858657165408035,-4.395851101024967e-5,-4.858986252843164e-8,-0.0019857444502105696,-4.36793761172567e-5,-4.831531748591886e-8,-0.0019857123157436644,-4.3471892985409506e-5,-4.811032585031551e-8,-0.001985722442942424,-4.3374678707536145e-5,-4.801403302963816e-8,-0.001985717837909519,-4.3389861516746215e-5,-4.802953349265059e-8,-0.0019856536347009303,-4.348657983914437e-5,-4.812711300883761e-8,-0.001985509793314366,-4.3617293200771854e-5,-4.826016677840372e-8,-0.001985291041141802,-4.373551017512467e-5,-4.8382599589213666e-8,-0.001985018982825112,-4.380710889702349e-5,-4.8460059289153266e-8,-0.00198472269519155,-4.381413163467009e-5,-4.8473904889146595e-8,-0.0019844313817317153,-4.3753602107519224e-5,-4.8420335013601454e-8,-0.0019841698777690116,-4.3634265418978614e-5,-4.830740886578302e-8,-0.00198395631013117,-4.347308097731399e-5,-4.815167459106861e-8,-0.00198380093609794,-4.32920529085931e-5,-4.7974972464015794e-8,-0.0019837056325942176,-4.311530044265703e-5,-4.7801388949448075e-8,-0.0019836639326078916,-4.2966205027643966e-5,-4.765430103584804e-8,-0.0019836616788419274,-4.2864560277764126e-5,-4.755351001687462e-8,-0.0019836784835310212,-4.2823816969524074e-5,-4.75125667742844e-8,-0.0019836901334029686,-4.284880913635948e-5,-4.753661876885519e-8,-0.0019836717844280323,-4.293443985340406e-5,-4.7621167559884083e-8,-0.001983601577361672,-4.306561983656408e-5,-4.775195443764006e-8,-0.00198346427639853,-4.321860830029743e-5,-4.79061064744248e-8,-0.001983254503428399,-4.3363817575379086e-5,-4.805466061004061e-8,-0.001982979128261479,-4.3470011868281195e-5,-4.8166508580713625e-8,-0.0019826583317162807,-4.350982227820718e-5,-4.8213806615591725e-8,-0.0019823245270563744,-4.346642997860529e-5,-4.817876549475533e-8,-0.0019820179079688013,-4.334055689306835e-5,-4.806092503305833e-8,-0.0019817776241884424,-4.315546627647395e-5,-4.788249609663614e-8,-0.001981629243341138,-4.295622121243347e-5,-4.768788218876515e-8,-0.00198157253207564,-4.279964969343516e-5,-4.753376447678903e-8,-0.0019815768110193243,-4.273555993575656e-5,-4.747031671641675e-8,-0.0019815896914275643,-4.2786939561310826e-5,-4.752132323658576e-8,-0.001981556964728314,-4.294065163758243e-5,-4.767470277125102e-8,-0.001981442898715948,-4.315455768342111e-5,-4.788935301045354e-8,-0.001981239994932547,-4.337586664281439e-5,-4.811318043326988e-8,-0.001980965615592369,-4.3559380683812036e-5,-4.830112897720887e-8,-0.001980651104271411,-4.3677669740602314e-5,-4.842535724700544e-8,-0.001980330622165264,-4.37224614567855e-5,-4.8476842035870866e-8,-0.001980033601616317,-4.370082309922366e-5,-4.846185712372692e-8,-0.001979781186553916,-4.362987461869388e-5,-4.8396913373778846e-8,-0.0019795853426471683,-4.35321462310607e-5,-4.8304189751421825e-8,-0.001979449164923876,-4.343211096476673e-5,-4.8208004801788516e-8,-0.001979367516891493,-4.335355049589747e-5,-4.81320762404166e-8,-0.0019793277939190233,-4.331724667908914e-5,-4.8097157631997425e-8,-0.0019793109779484602,-4.333865671006025e-5,-4.811875302716466e-8,-0.00197929334115372,-4.342552864224307e-5,-4.8204839307820454e-8,-0.0019792491585166726,-4.3575840607934675e-5,-4.835390191602501e-8,-0.0019791544719827683,-4.377676979296662e-5,-4.855390559455163e-8,-0.0019789914659854206,-4.400538864917376e-5,-4.878285284376596e-8,-0.001978752618067997,-4.423151487384888e-5,-4.9011380729146134e-8,-0.001978443571552841,-4.442266642057841e-5,-4.920743293376487e-8,-0.0019780837559768326,-4.455044155192306e-5,-4.93424419569069e-8,-0.001977704189216635,-4.459716325964112e-5,-4.9397956177720134e-8,-0.0019773423735596264,-4.4561466986321577e-5,-4.937141684655841e-8,-0.001977034607825835,-4.446140319979623e-5,-4.927959934097138e-8,-0.0019768066566202684,-4.433345001834858e-5,-4.915798984075471e-8,-0.0019766648048065616,-4.422600808807836e-5,-4.905454320636164e-8,-0.001976590642014865,-4.418718038152136e-5,-4.901754862575995e-8,-0.0019765433922679146,-4.424941926591262e-5,-4.908018505043689e-8,-0.0019764714799322142,-4.441704193678446e-5,-4.924782281001948e-8,-0.0019763299672662825,-4.466351711965738e-5,-4.949503779025665e-8,-0.0019760958592488333,-4.494111748014449e-5,-4.9774988214425593e-8,-0.001975773776278894,-4.519821653836421e-5,-5.003649186587927e-8,-0.001975390495162118,-4.539533451112828e-5,-5.0239976118785304e-8,-0.0019749831859174212,-4.551335871876182e-5,-5.0365773681986254e-8,-0.0019745879207018306,-4.555320514137526e-5,-5.041400386812903e-8,-0.0019742323786003236,-4.553037719774458e-5,-5.039938833552872e-8,-0.0019739331147513276,-4.5468406296927464e-5,-5.03448680797245e-8,-0.001973695819172792,-4.539349471122782e-5,-5.0276287499947574e-8,-0.0019735168135767726,-4.533089935511781e-5,-5.0218721062822205e-8,-0.0019733846944876474,-4.5302611923024283e-5,-5.019408501320979e-8,-0.0019732817668098417,-4.532562487218592e-5,-5.021939519624579e-8,-0.0019731854504376916,-4.5410207074392044e-5,-5.0305107394665245e-8,-0.0019730701622044603,-4.5557997564901036e-5,-5.045329830787116e-8,-0.001972910223039121,-4.576026673732602e-5,-5.0655959638034884e-8,-0.001972684031500541,-4.5997198476817514E-05,-5.0894198826261366e-8,-0.001972379090884328,-4.623929153514652e-5,-5.113944114811148e-8,-0.001971996635686588,-4.6451727228890164e-5,-5.135753400078218e-8,-0.0019715539766186102,-4.660160044857538e-5,-5.1515737334611745e-8,-0.0019710828542270687,-4.6666477609024985e-5,-5.159115485388241e-8,-0.001970623298040414,-4.664162896085638e-5,-5.1578016403124346e-8,-0.001970214212090245,-4.65432620191606e-5,-5.1491151948029e-8,-0.001969883242927487,-4.6406229230851866e-5,-5.1364075446337285e-8,-0.001969638857557791,-4.627639846031354e-5,-5.124174919757445e-8,-0.001969467008160238,-4.6199420166105754e-5,-5.116961866658035e-8,-0.0019693336914688433,-4.6208627966382286e-5,-5.1181552597747694e-8,-0.001969193371546135,-4.631535486871011e-5,-5.128996338486575e-8,-0.0019690015104308046,-4.650497733936632e-5,-5.148150977961362e-8,-0.001968727504736385,-4.6740821064600386e-5,-5.172064567922468e-8,-0.001968363316252578,-4.697522012612561e-5,-5.196041523031695e-8,-0.00196792440570595,-4.71636765838571e-5,-5.2156492160433425e-8,-0.001967443051877653,-4.727655930735045e-5,-5.227890703313716e-8,-0.0019669575953292872,-4.730437768201357e-5,-5.2317472555509746e-8,-0.0019665022928231123,-4.7256201646844035e-5,-5.228042290007389e-8,-0.0019661009362071376,-4.715377406937989e-5,-5.218873377314962e-8,-0.0019657647779907092,-4.702464970878444e-5,-5.206938544394163e-8,-0.001965493477560509,-4.689660585321579e-5,-5.194979398067257e-8,-0.001965277377825799,-4.6794002474408414e-5,-5.185413345399812e-8,-0.001965099914950498,-4.67357278760477e-5,-5.1801254050097615e-8,-0.0019649396611614903,-4.673397854378611e-5,-5.180348656861776e-8,-0.0019647721014879383,-4.6793187059781656e-5,-5.186563289514447e-8,-0.0019645716558417217,-4.690878647692816e-5,-5.1983771468773974e-8,-0.0019643145874512157,-4.706604455706395e-5,-5.214404907793817e-8,-0.001963983213520618,-4.7239795327600476e-5,-5.232226406608289e-8,-0.0019635711534783046,-4.7396399391850306e-5,-5.248560550378622e-8,-0.0019630881783210172,-4.749923158841316e-5,-5.2597912011238834e-8,-0.0019625620385825687,-4.7517783547080394e-5,-5.262860028092075e-8,-0.001962034600536159,-4.743810866143697e-5,-5.2563034466538445e-8,-0.001961551663459193,-4.7270187530390955e-5,-5.2409958425237556e-8,-0.0019611493437624405,-4.7047867070956564e-5,-5.2201684891901307e-8,-0.0019608425118726406,-4.682012526184868e-5,-5.198578136085175e-8,-0.001960620223510975,-4.663679110534357e-5,-5.1811253235307756e-8,-0.00196044964691645,-4.65343886842311e-5,-5.1714684022350806e-8,-0.001960286244385532,-4.652696232149927e-5,-5.171103424799668e-8,-0.0019600861987816276,-4.660393314075276e-5,-5.1791161198884274e-8,-0.001959817384072231,-4.673447845393499e-5,-5.192571546679343e-8,-0.0019594663672666632,-4.687647620848606e-5,-5.207366237327364e-8,-0.0019590402013480103,-4.69873681531962e-5,-5.219291849091948e-8,-0.0019585630459199917,-4.7034093216261266e-5,-5.2250281015410575e-8,-0.0019580689434451474,-4.699963912862847e-5,-5.222813797470916e-8,-0.001957593098636109,-4.6884855780413277E-05,-5.212650982795257e-8,-0.0019571642607120374,-4.6705755925512453e-5,-5.196056523166988e-8,-0.001956800031936092,-4.648795164335014e-5,-5.175520387715332e-8,-0.0019565055327110657,-4.626040613743492e-5,-5.1538868280151164e-8,-0.001956274664949442,-4.605019885705157e-5,-5.133830575689433e-8,-0.0019560927255029953,-4.587904903303501e-5,-5.117507505063576e-8,-0.001955939273522816,-4.5761480824035993e-5,-5.106372503209461e-8,-0.00195579066288265,-4.570401845100373e-5,-5.101104052329391e-8,-0.001955622211363207,-4.570476038673568e-5,-5.101566680936453e-8,-0.001955410378080181,-4.575298140689403e-5,-5.1067700552761083e-8,-0.0019551355106216866,-4.5828851541139104e-5,-5.114829612455283e-8,-0.0019547856381423576,-4.590392133545704e-5,-5.122995115968192e-8,-0.001954361197611504,-4.594364275569868e-5,-5.127880370114713e-8,-0.001953879361532978,-4.591336545457481e-5,-5.126044894606853e-8,-0.001953375159198017,-4.5788157126795125e-5,-5.114965466945004e-8,-0.0019528960573228693,-4.556404200060815e-5,-5.094156483201756e-8,-0.0019524888638265663,-4.52650121756844e-5,-5.0658773399677315e-8,-0.0019521829510683111,-4.493969555783338e-5,-5.03482415102804e-8,-0.001951978224705543,-4.4646436883604996e-5,-5.006686001308755e-8,-0.0019518449631389671,-4.4433199757164185e-5,-4.9861909053352045e-8,-0.0019517355290165363,-4.43223575013476e-5,-4.9756164208185047e-8,-0.0019516011374687279,-4.430667685873654e-5,-4.9743737900243164e-8,-0.0019514058087092413,-4.4355660121435736e-5,-4.979589561049797e-8,-0.0019511334488388776,-4.442707829644108e-5,-4.987196748279403e-8,-0.0019507882121724506,-4.4478635729643045e-5,-4.993057447552316e-8,-0.0019503903208332868,-4.447687118184344e-5,-4.9938400968221414e-8,-0.0019499696523796678,-4.440237013879302e-5,-4.9875550740711113e-8,-0.0019495587983859016,-4.425144642123595e-5,-4.973750799595954e-8,-0.0019491867583722598,-4.403481674939329e-5,-4.953408613857425e-8,-0.001948874170726926,-4.3773966244990976e-5,-4.928597425302703e-8,-0.0019486306854478142,-4.3496186610003896e-5,-4.901984567298104e-8,-0.0019484545808215287,-4.322941742227304e-5,-4.876319520040075e-8,-0.0019483342448092852,-4.299784164805793e-5,-4.853991498678627e-8,-0.0019482508367361243,-4.281882578092175e-5,-4.8367249272998265E-08,-0.0019481813406516451,-4.2701332047739913e-5,-4.8254265238426306e-8,-0.001948101431884755,-4.2645465612550796e-5,-4.820147285858156e-8,-0.0019479880023605153,-4.2642663695294445e-5,-4.820104258643957e-8,-0.0019478215084132696,-4.267621983914629e-5,-4.823725928348993e-8,-0.0019475884766814169,-4.2722120831818105e-5,-4.8287176766687065e-8,-0.001947284537476418,-4.2750605376743135e-5,-4.832193112023108e-8,-0.0019469179020162252,-4.272943149953421e-5,-4.830978464674593e-8,-0.001946512130701754,-4.2629987351193034e-5,-4.8222103668448865e-8,-0.0019461057920909896,-4.243645483759409e-5,-4.804249139879382e-8,-0.0019457459924259364,-4.2155871844775294e-5,-4.777688442978733e-8,-0.001945474433914433,-4.182357814670306e-5,-4.745909633402526e-8,-0.0019453099923769398,-4.149726260691403e-5,-4.7145127891331156e-8,-0.0019452376149965635,-4.123797713130104e-5,-4.689469161507122e-8,-0.0019452123501192205,-4.108646923628689e-5,-4.67481344270079e-8,-0.0019451775408544185,-4.104846697515171e-5,-4.671199913017461e-8,-0.001945086305653114,-4.10964890190002e-5,-4.67605464329462e-8,-0.00194491498170104,-4.118420798055841e-5,-4.6849415350206084e-8,-0.0019446649566739968,-4.1263439193324884e-5,-4.693190382853436e-8,-0.0019443564891179575,-4.129638690638195e-5,-4.6970831215838533e-8,-0.001944019871009889,-4.126124977537125e-5,-4.694416268183079e-8,-0.0019436874568431314,-4.115267744009283e-5,-4.6845757576426216e-8,-0.0019433878283089455,-4.097933082895468e-5,-4.668329117893592e-8,-0.0019431420227587768,-4.076018683375537e-5,-4.64748293924473e-8,-0.001942961425049852,-4.052037587530838e-5,-4.624478413720799e-8,-0.001942847090506267,-4.028693694379081e-5,-4.6019666043409794e-8,-0.001942790358890472,-4.008483999357206e-5,-4.5824064376144906e-8,-0.0019427745871054582,-3.9933607897037706e-5,-4.5677259981585586e-8,-0.0019427777616891982,-3.984486508728241e-5,-4.559083113158273e-8,-0.0019427755865315058,-3.982107608163827e-5,-4.556748866183424e-8,-0.0019427445679542873,-3.985544668643988e-5,-4.5601049016244416e-8,-0.0019426648249855798,-3.9932722126588916e-5,-4.5677213148583996e-8,-0.0019425225723483325,-4.003067731752825e-5,-4.577491057145826e-8,-0.00194231231186212,-4.0122223590998573e-5,-4.586815250812175e-8,-0.001942038840723702,-4.017825071467646e-5,-4.592859500544757e-8,-0.0019417189403766162,-4.017172995117602e-5,-4.592943591477745e-8,-0.0019413817963929902,-4.0083668653272205e-5,-4.5851299075569445e-8,-0.0019410663758636533,-3.9910612776753746e-5,-4.5689797651230024e-8,-0.0019408138567119492,-3.9671609827259084e-5,-4.546263553447091e-8,-0.0019406546006421536,-3.941021451110704e-5,-4.52117972507066e-8,-0.001940593319235403,-3.918608994782784e-5,-4.499543804327817e-8,-0.0019406012767298,-3.905498590278002e-5,-4.486832358067523e-8,-0.001940623920404477,-3.904542284858823e-5,-4.4859006867683975e-8,-0.0019406025544464632,-3.914639483061919e-5,-4.495769578301747e-8,-0.001940497520876102,-3.931411884703988e-5,-4.512260307194805e-8,-0.001940299698239888,-3.949212761192832e-5,-4.5299254342045724e-8,-0.0019400271696272137,-3.9631546521015266e-5,-4.5440050246729585e-8,-0.0019397134945464904,-3.970249901148748e-5,-4.55153769119164e-8,-0.0019393955892964717,-3.969592038203203e-5,-4.551557626730208e-8,-0.0019391053846128947,-3.961966037424788e-5,-4.544745102453445e-8,-0.0019388656601532564,-3.9492805816283906e-5,-4.532898685003671e-8,-0.0019386887618311728,-3.9340423201373115e-5,-4.518433473733331e-8,-0.0019385768153243493,-3.9189313030825355e-5,-4.5039624737876385e-8,-0.0019385226755074644,-3.9064588188579694e-5,-4.491950007652083e-8,-0.0019385113945777103,-3.89868350713039e-5,-4.4844233237342264e-8,-0.0019385222021650083,-3.8969763524809525e-5,-4.48273957066787e-8,-0.0019385310528990875,-3.9018436577778017e-5,-4.4874176736247263E-08,-0.001938513684450707,-3.912838732750907e-5,-4.498060099930697e-8,-0.0019384488723173468,-3.928589530112374e-5,-4.51338353807561e-8,-0.001938321483040145,-3.946943857740446e-5,-4.531354277085539e-8,-0.0019381250107120861,-3.965222629013153e-5,-4.5494184057548586e-8,-0.0019378633026130548,-3.9805684583894356e-5,-4.5648196322549064e-8,-0.0019375512317700392,-3.990367219926965e-5,-4.574992768613837e-8,-0.0019372141057675222,-3.9927275177831916e-5,-4.5780279834495175e-8,-0.0019368852732491004,-3.987006414845319e-5,-4.573198875575406e-8,-0.0019366009982821448,-3.9743041431457964e-5,-4.561474398462704e-8,-0.001936392008214114,-3.9577268369624826e-5,-4.545806912288991e-8,-0.0019362725887905185,-3.9421116423997146e-5,-4.530885190760244e-8,-0.0019362308367980837,-3.93293215936308e-5,-4.522070434461868e-8,-0.0019362265448863605,-3.934447117414749e-5,-4.5235796012735197e-8,-0.0019362021567699314,-3.947831204143984e-5,-4.5366449130396565e-8,-0.0019361044622756712,-3.9704499044345756e-5,-4.558787687093552e-8,-0.0019359055467726995,-3.9969038024905696e-5,-4.5848165191453386e-8,-0.001935610918476163,-4.0212436952495197e-5,-4.608967212085328e-8,-0.0019352522767100955,-4.0390248298052926e-5,-4.626892936144965e-8,-0.001934872343550989,-4.04826572347339e-5,-4.636602580928481e-8,-0.0019345110162189247,-4.0492973987788945e-5,-4.6383349171738214e-8,-0.0019341974042064007,-4.0440353373262014e-5,-4.633877244453355e-8,-0.00193394745527741,-4.035183976460438e-5,-4.6258113992407355e-8,-0.0019337648831009675,-4.025623586702828e-5,-4.6169223646382756e-8,-0.001933643297940725,-4.018010690860001e-5,-4.6098017218746215e-8,-0.0019335684391845415,-4.014524819687492e-5,-4.606588963420782e-8,-0.0019335202829593439,-4.016691288990378e-5,-4.608791074426844e-8,-0.001933475196842574,-4.025240778009302e-5,-4.617145854048994e-8,-0.0019334084174011334,-4.039999941699849e-5,-4.6315210257224784e-8,-0.0019332970460884604,-4.0598441631085976e-5,-4.6508730328468455e-8,-0.0019331234337040622,-4.0827636234276635e-5,-4.67330881859333e-8,-0.0019328784570221483,-4.1060782189105156e-5,-4.69628242270068e-8,-0.001932564016748744,-4.126806268614148e-5,-4.716934132885776e-8,-0.0019321940512386387,-4.14215942181376e-5,-4.732552837106896e-8,-0.001931793485630655,-4.1500945427768556e-5,-4.741103326315836e-8,-0.0019313948975945483,-4.149824340283206e-5,-4.741729676503009e-8,-0.0019310330346188518,-4.142188515293687e-5,-4.7351395895912765e-8,-0.0019307375352558293,-4.1297801414388954e-5,-4.723760067108958e-8,-0.0019305246932332914,-4.116693684145903e-5,-4.711522060800814e-8,-0.0019303901558369954,-4.107771840039374e-5,-4.7031429532281454e-8,-0.001930305702440573,-4.1073507327231025e-5,-4.70290097302363e-8,-0.001930223661133537,-4.117772149833033e-5,-4.71316652941459e-8,-0.0019300904151773313,-4.1382707713134946e-5,-4.733292449466249e-8,-0.0019298652063116251,-4.1649473063614e-5,-4.7595646288971316e-8,-0.0019295353407003367,-4.192078311450537e-5,-4.786461098057043e-8,-0.0019291195029987889,-4.214178037375372e-5,-4.8086494979264673e-8,-0.0019286581510240075,-4.227740391874418e-5,-4.822680388860586e-8,-0.0019281977027044515,-4.23190945630982e-5,-4.827648982478889e-8,-0.001927776949794641,-4.228093381957044e-5,-4.8248402386580654e-8,-0.0019274200721663662,-4.219051722902683e-5,-4.8168652620736966e-8,-0.001927135772707496,-4.20798850584923e-5,-4.8067954346620734e-8,-0.0019269198332215003,-4.197912027142969e-5,-4.797542280744417e-8,-0.0019267586318278405,-4.1912777277154615e-5,-4.7915023022203665e-8,-0.0019266323173630316,-4.189820026513446e-5,-4.7903834928403336e-8,-0.0019265173637764677,-4.194471819140883e-5,-4.795122144177823e-8,-0.0019263888011234276,-4.205308385953557e-5,-4.805829680961167e-8,-0.0019262225974915343,-4.221501646557592e-5,-4.821751718558146e-8,-0.0019259985568891125,-4.2413183674726635e-5,-4.8412658231367925e-8,-0.0019257037357562376,-4.262227688328076e-5,-4.861977364178274e-8,-0.0019253358507307667,-4.281183412618318e-5,-4.88097763412886e-8,-0.0019249056464002532,-4.295109158693287e-5,-4.895296804974039e-8,-0.00192443696510101,-4.3015405547280085e-5,-4.9025146674251664e-8,-0.001923963576351099,-4.299286159649854e-5,-4.901401418858055e-8,-0.0019235227456985294,-4.288907110417211e-5,-4.892397352513479e-8,-0.0019231466972611288,-4.2728295806226845e-5,-4.8777489495455956e-8,-0.0019228540148536525,-4.2549887097491935e-5,-4.861195243355361e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json new file mode 100644 index 0000000..771149a --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":10000,"numberOfSamples":1000,"samples":[1.9197471616856318e-4,7.996600532056201e-6,-1.2597360486632112e-8,1.923979354906972e-4,8.059544161443208e-6,-1.2601754449986743e-8,1.9274745963100852e-4,8.18217092448731e-6,-1.2612185701149497e-8,1.9301410614298842e-4,8.328459694631899e-6,-1.2625220207854334e-8,1.9320200661086356e-4,8.46367290461882e-6,-1.263746635903232e-8,1.933256574311564e-4,8.557979990756902e-6,-1.264596926377846e-8,1.9340729897750835e-4,8.588749871695277e-6,-1.2648467217789009e-8,1.9347454382165973e-4,8.54234886551231e-6,-1.2643575641672086e-8,1.9355780445299317e-4,8.41580428718647e-6,-1.2630935191527253e-8,1.9368703586457032e-4,8.218144650907273e-6,-1.2611321617725655e-8,1.9388759494511673e-4,7.970728457914735e-6,-1.2586673932584885e-8,1.9417557384287807e-4,7.70570255454025e-6,-1.2559972916060515e-8,1.9455353413614596e-4,7.461994170668981e-6,-1.2534909842557773e-8,1.950079268750979e-4,7.278838435440244e-6,-1.2515320800328438e-8,1.9550946566497787e-4,7.1877009230743185e-6,-1.250443183656935e-8,1.9601716991058025e-4,7.204296880679899e-6,-1.2504049076168112e-8,1.964858622143666e-4,7.322751895738212e-6,-1.2513893072518937e-8,1.9687601817327312e-4,7.513719443070609e-6,-1.2531293180978063e-8,1.9716418145619786e-4,7.727807131336245e-6,-1.255143733487227e-8,1.9735148270881055e-4,7.904972006017888e-6,-1.256828984627858e-8,1.9746717430474582e-4,7.989189307001313e-6,-1.2576107854737417e-8,1.9756414464783983e-4,7.945391162788686e-6,-1.2571208909452543e-8,1.9770522673983343e-4,7.772936988045046e-6,-1.255336219063038e-8,1.9794335851555265e-4,7.508737590816236e-6,-1.2526112219574885e-8,1.9830340643788719e-4,7.216310774252375e-6,-1.2495704511570225e-8,1.9877444051722307e-4,6.9643475770128966e-6,-1.2468991956480241e-8,1.9931605492441463e-4,6.804754497374457e-6,-1.2451273955690413e-8,1.99874367496323e-4,6.7599548302468994e-6,-1.2444993679265321e-8,2.0039900027274713e-4,6.82270849799812e-6,-1.2449629419202722e-8,2.0085428305204736e-4,6.964723431631095e-6,-1.2462470630692901e-8,2.012230129828281e-4,7.147810040913146e-6,-1.2479705950981818e-8,2.015048844233702e-4,7.3331078822919305e-6,-1.2497376827881843e-8,2.0171260728942556e-4,7.4869143007848404e-6,-1.2512018298014086e-8,2.0186784837753266e-4,7.583663846056725e-6,-1.2521002574264202e-8,2.0199788115223623e-4,7.6072954724533325e-6,-1.252268798054521e-8,2.0213287762151582e-4,7.552075776678594e-6,-1.25164799413586e-8,2.023032713093168e-4,7.423389313956485e-6,-1.250287524528341e-8,2.025365492604393e-4,7.238354929979809e-6,-1.2483501654253962e-8,2.0285312487000682e-4,7.025543178481034e-6,-1.2461102098633864e-8,2.032615548180566e-4,6.822697696785637e-6,-1.2439358398961576e-8,2.037542292355152e-4,6.671464949679808e-6,-1.2422433892723618e-8,2.043054648544205e-4,6.609017340781519e-6,-1.241418367286807e-8,2.0487402079284614e-4,6.658061470286973e-6,-1.2417141084804209e-8,2.0541091916908847e-4,6.8183286453880834e-6,-1.2431576848491557e-8,2.0587131297464264e-4,7.063148440915905e-6,-1.2455025250029365e-8,2.0622704282800456e-4,7.343452105811302e-6,-1.2482583077772363e-8,2.064756840198449e-4,7.598950788494315e-6,-1.2508013979414962e-8,2.0664282168786132e-4,7.773572333271332e-6,-1.2525372054527937e-8,2.0677643799377142e-4,7.830732911241555e-6,-1.2530654293509096e-8,2.069346139971509e-4,7.763969732585166e-6,-1.252297208136234e-8,2.0716968071363143e-4,7.599507240572051e-6,-1.2504868071919612e-8,2.075133831394106e-4,7.389324388835024e-6,-1.2481637303243253e-8,2.079680047158014e-4,7.196295440443784e-6,-1.2459822238997104e-8,2.0850678511286473e-4,7.076223630712314e-6,-1.2445361216516968e-8,2.09083353603553e-4,7.063208010991012e-6,-1.2442027977015235e-8,2.0964607359171694e-4,7.163288146015455e-6,-1.245068068918884e-8,2.1015153998119444e-4,7.357300167494584e-6,-1.2469466055778998e-8,2.105729208467013e-4,7.6098914082299795e-6,-1.2494715588623496e-8,2.1090206952705673e-4,7.880059152858419e-6,-1.2522068534104855e-8,2.1114705135521922e-4,8.129688725332927e-6,-1.2547426277362978e-8,2.11327623932954e-4,8.328785948689606e-6,-1.2567558359396523e-8,2.1147063027153733e-4,8.45781981905388e-6,-1.2580371063842255e-8,2.116062170779773e-4,8.508318739735103e-6,-1.2584953522756101e-8,2.1176489219544155e-4,8.482821664273282e-6,-1.2581533889456395e-8,2.1197487908306462e-4,8.394780190546323e-6,-1.2571439050506965e-8,2.1225908578335732e-4,8.268336110121104e-6,-1.2557075378613995e-8,2.1263125815806694e-4,8.137282943263268e-6,-1.2541867403695375e-8,2.1309149641396343e-4,8.042041677157666e-6,-1.2530015745409708e-8,2.1362232923984473e-4,8.023413973770414e-6,-1.2525906367685887e-8,2.141877185477536e-4,8.112834049185048e-6,-1.2533095524318957e-8,2.1473774581068903e-4,8.3210914871919e-6,-1.2553050116063849e-8,2.1522011129794914e-4,8.630080126066386e-6,-1.2584142235542132e-8,2.1559591766686086e-4,8.992908412392393e-6,-1.2621531987775295e-8,2.1585357677476676e-4,9.344915051726786e-6,-1.2658284937238318e-8,2.1601416666211921e-4,9.622593263837225e-6,-1.2687427039128446e-8,2.1612534488552648e-4,9.78287653756447e-6,-1.2704087855205246e-8,2.1624652249650514e-4,9.81514982519467e-6,-1.2706860844017089e-8,2.1643148366610137e-4,9.742398905621779e-6,-1.2697982257149455e-8,2.1671439125053968e-4,9.612686075077394e-6,-1.2682472194826136e-8,2.1710262618754617e-4,9.484942883597433e-6,-1.2666663487275253e-8,2.1757724992220657e-4,9.413689438536168e-6,-1.2656583095773519e-8,2.180998881122663e-4,9.436636301726828e-6,-1.2656579120301334e-8,2.1862349866680082e-4,9.567821662343242e-6,-1.2668481926430359e-8,2.1910382506955763e-4,9.797254291937394e-6,-1.2691451235088495e-8,2.1950852180187367e-4,1.0096209406878957e-5,-1.2722473686840802e-8,2.1982203208259762e-4,1.0425814221374339e-5,-1.2757289563240955e-8,2.2004593990235762e-4,1.0746017377170483e-5,-1.279141904043139e-8,2.2019594725035345e-4,1.1022697089033848e-5,-1.2821004358988786e-8,2.2029723714439854e-4,1.1231954282858246e-5,-1.284332207805951e-8,2.2037976133546005e-4,1.1361792925413278e-5,-1.285697045584737e-8,2.204743050715671e-4,1.1412058566647195e-5,-1.2861837839761607e-8,2.2060942735678435e-4,1.139360836886871e-5,-1.2858986747465736e-8,2.2080886496210573e-4,1.1327297175898568e-5,-1.2850546480647196e-8,2.2108883199633075e-4,1.1242779422350658e-5,-1.2839626876663463e-8,2.2145479727229533e-4,1.117656313941561e-5,-1.2830179748791994e-8,2.218978524119614e-4,1.1168241380550244e-5,-1.2826654765479383e-8,2.223918274118358e-4,1.125368271022084e-5,-1.2833271066266854e-8,2.2289360923823234e-4,1.1454892795233024e-5,-1.2852838922138324e-8,2.2334970247736352e-4,1.1768728623398749e-5,-1.288537714386462e-8,2.2371036423718345e-4,1.2159917386077626e-5,-1.2927189221052759e-8,2.2394786325905398e-4,1.2565129918165497e-5,-1.2971236046903973e-8,2.2407012789687003e-4,1.2910776320851335e-5,-1.3009149058543156e-8,2.2412080512659326e-4,1.3138423398335554e-5,-1.3034156281509835e-8,2.2416403518024246e-4,1.3225258584550226e-5,-1.3043432270151873e-8,2.242617193073924e-4,1.31895428771349e-5,-1.303873108036752e-8,2.244545122747121e-4,1.3080514119203897e-5,-1.302529805681681e-8,2.247533541484739e-4,1.2960154137190002e-5,-1.3009918312410972e-8,2.2514149681588606e-4,1.288542370013457e-5,-1.2999015386017868e-8,2.2558304221404233e-4,1.2896057941767493e-5,-1.2997297157850649e-8,2.2603369392279116e-4,1.3009117176953077e-5,-1.3007061790201875e-8,2.264507770082446e-4,1.3219243737167519e-5,-1.3028087674737915e-8,2.2680097981678127e-4,1.3502917845584759e-5,-1.3057987443448877e-8,2.2706512925085745e-4,1.3825112165154655e-5,-1.3092899943215674e-8,2.2723980182644377e-4,1.4146844760246526e-5,-1.312835960370297e-8,2.2733606659061404e-4,1.4432176615984899e-5,-1.316015072754668e-8,2.2737613010144923e-4,1.4653552288310205e-5,-1.3184975709050629e-8,2.2738889061095103e-4,1.4794967275872633e-5,-1.3200846957566375e-8,2.2740539458427508e-4,1.485298630857986e-5,-1.3207200828708261e-8,2.2745491914188558e-4,1.48361020505556e-5,-1.3204810600297655e-8,2.2756189301271438e-4,1.4763163136429955e-5,-1.3195611648549548e-8,2.2774342945347363e-4,1.4661392768367974e-5,-1.318251654013457e-8,2.2800711646406744e-4,1.4564073938727435e-5,-1.3169225227622847e-8,2.2834878588194946e-4,1.4507553748530596e-5,-1.3159958692847593e-8,2.287503519544513e-4,1.4526782542924386e-5,-1.3158983635572145e-8,2.2917872878590236e-4,1.4648464790645952e-5,-1.3169782666393387e-8,2.2958798770619958e-4,1.4881779191418465e-5,-1.3193861131791164e-8,2.2992738155013117e-4,1.5208892056563145e-5,-1.3229487616666131e-8,2.3015629354228862e-4,1.5580637661667213e-5,-1.3271075564489491e-8,2.3026234150305317e-4,1.5924292688085457e-5,-1.331008459441756e-8,2.3027280889853033e-4,1.6165999528322054e-5,-1.3337725131374554e-8,2.3024916735463958e-4,1.6259694822258185e-5,-1.3348408049319169e-8,2.3026415545918469e-4,1.6206222473384533e-5,-1.334196191813377e-8,2.303737207873722e-4,1.6050930760160185e-5,-1.3323325049974134e-8,2.3059936656605264e-4,1.586282236461781e-5,-1.3300188674521488e-8,2.309273397309413e-4,1.5709080036263402e-5,-1.328019137069129e-8,2.3131987266427655e-4,1.5637160807724585e-5,-1.3268952807786755e-8,2.3172978464227394e-4,1.5668110115491378e-5,-1.3269276372437528e-8,2.3211253167230013e-4,1.579838872190477e-5,-1.3281222326984168e-8,2.3243381968418038e-4,1.6005968044664794e-5,-1.3302645758738719e-8,2.326732628860945e-4,1.6257565449448583e-5,-1.3329918467555854e-8,2.3282524674238283e-4,1.651551762610959e-5,-1.3358697686405669e-8,2.3289788056306504e-4,1.674381866600482e-5,-1.3384673664069943e-8,2.3291052997145164e-4,1.6913063406322665e-5,-1.3404220672953126e-8,2.3289032072172143e-4,1.700401500413197e-5,-1.3414875180816028e-8,2.3286803858424185e-4,1.7009620439693355e-5,-1.3415595856352999e-8,2.328739025738482e-4,1.6935397883075238e-5,-1.3406804390503862e-8,2.3293373693946084e-4,1.6798289595216762e-5,-1.3390246403408823e-8,2.3306590757557672e-4,1.6624355851294292e-5,-1.3368746419574027e-8,2.3327907598190837e-4,1.6445739810291813e-5,-1.334591547674048e-8,2.3357067709120252e-4,1.6297106752196225e-5,-1.3325815392409889e-8,2.3392604926032666e-4,1.621152078481189e-5,-1.3312532903507163e-8,2.3431832644508823e-4,1.6215461539974096e-5,-1.3309583151627188e-8,2.3470981296471905e-4,1.6322593851986297e-5,-1.3319074542987742e-8,2.350563586266793e-4,1.6526652827706943e-5,-1.3340700335972787e-8,2.3531635632917516e-4,1.6795606538324656e-5,-1.3370882993466678e-8,2.3546449597391608e-4,1.7071515543042718e-5,-1.3402687449686616e-8,2.3550651143611578e-4,1.7281479296035646e-5,-1.3427194538859864e-8,2.354860662292638e-4,1.736119067195648e-5,-1.3436455207389577e-8,2.354745423562714e-4,1.7282664410910297e-5,-1.3426879119078932e-8,2.3554413988636483e-4,1.7069422488256228e-5,-1.340100684306105e-8,2.3573843359821594e-4,1.678735137254538e-5,-1.3366380140959267e-8,2.3605794175604995e-4,1.6516440745440828e-5,-1.333226482032832e-8,2.364666128436858e-4,1.6321330128306323e-5,-1.3306309980540544e-8,2.369106704107837e-4,1.6235316784717564e-5,-1.329272307712745e-8,2.373372411284009e-4,1.6259841608278305e-5,-1.3292124623119489e-8,2.3770594596677692e-4,1.6372931299750227e-5,-1.3302373390412671e-8,2.37993246071328e-4,1.6539681380754335e-5,-1.3319651568231e-8,2.3819211939730327e-4,1.6721074059761234e-5,-1.3339438365960858e-8,2.3830961030271236e-4,1.6880231173799742e-5,-1.335727306140373e-8,2.3836375681855868e-4,1.6986636247061285e-5,-1.3369334013755532e-8,2.3838035533166568e-4,1.701905501777484e-5,-1.33728675782703e-8,2.383895323005555e-4,1.6967478698558967e-5,-1.3366467989198284e-8,2.38422070556946e-4,1.6834089647268072e-5,-1.3350197399653409e-8,2.3850556570700744e-4,1.6633066038275236e-5,-1.3325545739040455e-8,2.3866072662191243e-4,1.6388979589520194e-5,-1.32952356240298e-8,2.3889832942241776e-4,1.613376763873816e-5,-1.3262897145540119e-8,2.3921726251748584e-4,1.5902571416136462e-5,-1.3232645062727092e-8,2.3960391772207974e-4,1.5728837101970084e-5,-1.3208572512056224e-8,2.4003306897066437e-4,1.5639090729009958e-5,-1.3194159292205045e-8,2.4047031694471747e-4,1.5647770280759835e-5,-1.3191601366742145e-8,2.408763192909911e-4,1.5752441997243236e-5,-1.320109658813078e-8,2.4121332685415593e-4,1.593012198481269e-5,-1.3220221033409507e-8,2.414543324312317e-4,1.6136500786482835e-5,-1.3243695130072412e-8,2.4159379503856346e-4,1.631092961927605e-5,-1.3263965868818756e-8,2.416563493402631e-4,1.6389819439386743e-5,-1.327294423034196e-8,2.416971351728686e-4,1.6327839253466488e-5,-1.3264745691624821e-8,2.4178793488179986e-4,1.611933231700696e-5,-1.323839068662466e-8,2.4199092390150611e-4,1.580664719687679e-5,-1.3198809867441091e-8,2.4233282522947923e-4,1.546635588883893e-5,-1.315515486800695e-8,2.42795161206397e-4,1.5179028049018296e-5,-1.3117189496490207e-8,2.4332560646111933e-4,1.5000197877739287e-5,-1.3091844309906427e-8,2.4386095630435782e-4,1.494730909943296e-5,-1.3081612462610715e-8,2.443476230301867e-4,1.5004081626133282e-5,-1.3084945993000656e-8,2.447521154769013e-4,1.513382584235183e-5,-1.3097713318885834e-8,2.4506227529865664e-4,1.529290726155764e-5,-1.3114741963102495e-8,2.4528352222681816e-4,1.5440210476210758e-5,-1.3130971246521739e-8,2.454337577216843e-4,1.554235342838633e-5,-1.3142157207141877e-8,2.4553879145722154e-4,1.5576059836117717e-5,-1.3145250706278301e-8,2.456286535961741e-4,1.5529165859651303e-5,-1.313858102750454e-8,2.4573440156436537e-4,1.5401067537156352e-5,-1.312192399297445e-8,2.4588495016140917e-4,1.5202739157127264e-5,-1.3096479904399723e-8,2.4610367254958987e-4,1.4956012999883382e-5,-1.3064759078539774e-8,2.4640490122437197e-4,1.4691580503364029e-5,-1.3030343464314749e-8,2.467909300514352e-4,1.444531172938255e-5,-1.299749108332309e-8,2.472503716788958e-4,1.4252978327617077e-5,-1.2970574858005676e-8,2.4775861981413225e-4,1.4143991993889015e-5,-1.2953383025503955e-8,2.482808292580495e-4,1.4135196216785739e-5,-1.2948356913590524e-8,2.4877732410946555e-4,1.4225995061342692e-5,-1.295589775406787e-8,2.492108317402965e-4,1.439598151292376e-5,-1.297390984283666e-8,2.495546496005041e-4,1.4605934664835293e-5,-1.2997753852338253e-8,2.4980058126312243e-4,1.4802976706468473e-5,-1.3020791083393111e-8,2.499648122532091e-4,1.4930522578149964e-5,-1.3035648974352602e-8,2.500889719183307e-4,1.4942625206491755e-5,-1.3036141981384923e-8,2.502332948927713e-4,1.4819937637970325e-5,-1.301942657528763e-8,2.5046053996871437e-4,1.458121681939785e-5,-1.2987549154608683e-8,2.508142835955966e-4,1.4282610184457833e-5,-1.294739872783118e-8,2.513011655620707e-4,1.4000896174505066e-5,-1.2908626141535389e-8,2.5188749805877945e-4,1.3806467779425598e-5,-1.288027326783674e-8,2.5251290861910285e-4,1.3739666020847875e-5,-1.286777210466249e-8,2.531129543478528e-4,1.3801980509944972e-5,-1.2871727408598455e-8,2.5363851477171943e-4,1.3963248403024858e-5,-1.288867324663838e-8,2.5406475771490327e-4,1.4177059797621997e-5,-1.2912910633960826e-8,2.543902585935145e-4,1.4395467555977205e-5,-1.2938351134914312e-8,2.5463093937902145e-4,1.457846819591566e-5,-1.295977796036463e-8,2.54813136638039e-4,1.4698160028561238e-5,-1.2973461632588474e-8,2.54967981581639e-4,1.4739503755468211e-5,-1.2977324579518188e-8,2.551274405562864e-4,1.4699654562096109e-5,-1.2970877284779953e-8,2.5532142348084824e-4,1.4587027197628657e-5,-1.2955077061468487e-8,2.5557518672666003e-4,1.4420380583572636e-5,-1.2932175481281603e-8,2.5590650103593743e-4,1.4227567224019883e-5,-1.2905548350362233e-8,2.5632253366152845e-4,1.4043212860365394e-5,-1.287943866108471e-8,2.568170361656435e-4,1.3904585536052271e-5,-1.285851192094646e-8,2.5736901125437294e-4,1.384542362248093e-5,-1.2847155402873307e-8,2.5794421239109947e-4,1.388843946076878e-5,-1.2848556465930347e-8,2.5850035030317047e-4,1.403829277109537e-5,-1.2863749847957166e-8,2.589956924459188e-4,1.4277505943607658e-5,-1.2890953907157057e-8,2.5939924357184515e-4,1.4567459494134127e-5,-1.2925525776831505e-8,2.596996993209261e-4,1.4855178454192225e-5,-1.2960705554380696e-8,2.5991041763439313e-4,1.5084813281586183e-5,-1.2989066766874659e-8,2.6006856585053105e-4,1.5211326349834672e-5,-1.3004361087109885e-8,2.602278725687631e-4,1.5213126500508729e-5,-1.3003294012197764e-8,2.6044583194747623e-4,1.5100107540589441e-5,-1.2986715711409487e-8,2.607678954750293e-4,1.4913817381501574e-5,-1.2959760458590743e-8,2.6121309337834975e-4,1.471789554231206e-5,-1.2930675613196354e-8,2.617666739936158e-4,1.4580147819581488e-5,-1.2908507750034461e-8,2.623838952785086e-4,1.4551998820653167e-5,-1.2900372867353652e-8,2.6300436611455946e-4,1.465364176688067e-5,-1.2909389577639032e-8,2.6357084573760297e-4,1.4871017273617807e-5,-1.293411963262422e-8,2.640443869669923e-4,1.5164543154651873e-5,-1.2969586613798102e-8,2.64410737769705e-4,1.548385098723045e-5,-1.3009177614068972e-8,2.6467821443590807e-4,1.5781554620764703e-5,-1.304650817055167e-8,2.648707916531887e-4,1.602193715049497e-5,-1.3076659266674922e-8,2.650204220774552e-4,1.6184189121099728e-5,-1.309668323525758e-8,0.00026516090400317593,1.626199634794566e-5,-1.3105583832666333e-8,2.653238016446657e-4,1.626157432670227e-5,-1.3104045518856175e-8,2.6553584872296177e-4,1.619953400725645e-5,-1.3094120073806924e-8,2.6581694404772865e-4,1.6101034287601604e-5,-1.3078966785871532e-8,2.6617803512994057e-4,1.599792643257314e-5,-1.3062635061321467e-8,2.666186743112128e-4,1.5926127147520803e-5,-1.3049789195619948e-8,2.671247177812508e-4,1.5921303481340893e-5,-1.3045222202262528e-8,2.6766743265218185e-4,1.6012313493671894e-5,-1.3053032308258361e-8,2.682058449019524e-4,1.6212993883764293e-5,-1.3075494404843321e-8,2.6869381754198406e-4,1.6514662380160417e-5,-1.3111934310112453e-8,2.690915392547794e-4,1.688312459406304e-5,-1.3158158531168263e-8,2.693782808806831e-4,1.726356887424719e-5,-1.3206971608799833e-8,2.695612194819721e-4,1.7593764377538284e-5,-1.3249899145305468e-8,2.696757969225932e-4,1.7821710710339604e-5,-1.3279603194733367e-8,2.697766262792751e-4,1.7921174890309415e-5,-1.3292069257397106e-8,2.699221571586634e-4,1.7899381168918985e-5,-1.3287759748585721e-8,2.701585140051222e-4,1.7794662659770487e-5,-1.3271427248333769e-8,2.7050743193193414e-4,1.7665574219650932e-5,-1.3250774476406711e-8,2.70961263500747e-4,1.7575149467220522e-5,-1.3234415117476824e-8,2.714859046544607e-4,1.7574737909080554e-5,-1.3229680863399421e-8,2.7203052331977687e-4,1.769170100835547e-5,-1.324083414757745e-8,2.7254117585821244e-4,1.7924189075479015e-5,-1.3268167506586092e-8,2.729741997691505e-4,1.8244128847031433e-5,-1.3308232751599827e-8,2.733054105239225e-4,1.860683481743521e-5,-1.335506308671976e-8,2.7353289682521516e-4,1.896345349760831e-5,-1.3401893664246537E-08,2.73673842637392e-4,1.9271996265799993e-5,-1.3442759869942829e-8,2.737578282615282e-4,1.9504213337008058e-5,-1.3473535503050086e-8,2.738194967147241e-4,1.9647848480923535e-5,-1.3492301040760689e-8,2.7389256852830313e-4,1.9705491001702175e-5,-1.3499197079042159e-8,2.740058704701865e-4,1.9691777654711647e-5,-1.3496023246278775e-8,2.741810262902575e-4,1.9630334079578346e-5,-1.3485807494797274e-8,2.744310131178127e-4,1.9551058078948304e-5,-1.347245824705066e-8,2.747588655876082e-4,1.948759434125028e-5,-1.3460484076347776e-8,2.7515620852405575e-4,1.9474357175009086e-5,-1.3454669802832967e-8,2.7560192124283077e-4,1.954221941430565e-5,-1.3459536895858992e-8,2.760620815654129e-4,1.9712188518429024e-5,-1.3478446229307413e-8,2.764931140341487e-4,1.998747860898367e-5,-1.3512381587099931e-8,2.768499825458415e-4,2.0346447047745347e-5,-1.3558791588758346e-8,2.7709934818909317e-4,2.0740975236487897e-5,-1.3611211001438215e-8,2.7723376707050325e-4,2.1104902391710272e-5,-1.3660381144345922e-8,2.7727951721184677e-4,2.1372977512600064e-5,-1.3696942301516698e-8,2.7729156569639065e-4,2.150364337470411e-5,-1.371469511192883e-8,2.7733590146886866e-4,2.1494482605572527e-5,-1.3712813986364758e-8,2.7746730910535865e-4,2.1382407878183956e-5,-1.3695935779833347e-8,2.777129170467314e-4,2.1229571564400812e-5,-1.3672319050985458e-8,2.7806720281447627e-4,2.1102980963536406e-5,-1.3651166775522754e-8,2.7849753778370835e-4,2.105639774177976e-5,-1.3640203101975407e-8,2.7895571606205595e-4,2.1119312740397868e-5,-1.36440855384151e-8,2.7939082054513723e-4,2.129380639205303e-5,-1.3663777942921247e-8,2.797602560487331e-4,2.155785003144518e-5,-1.3696778046641539e-8,2.8003725820557e-4,2.1872858482824725e-5,-1.3738005196123418e-8,2.802142004107094e-4,2.219328394309847e-5,-1.3781099702460829e-8,2.8030175709160225e-4,2.2476143948988695e-5,-1.381982555271776e-8,2.8032472939190016e-4,2.268859947612066e-5,-1.3849251125167231e-8,2.803159812312574e-4,2.2812371570131774e-5,-1.386647093141835e-8,2.803101183459111e-4,2.2844791364820303e-5,-1.387080182051307e-8,2.8033821087907477e-4,2.2797146171930603e-5,-1.3863552789390385e-8,2.8042420340903043e-4,2.2691458727297488e-5,-1.3847561307081722e-8,2.8058292600206835e-4,2.2556824850266946e-5,-1.3826691726476474e-8,2.8081916298474405e-4,2.2425953925453616e-5,-1.3805403994071266e-8,2.8112721903985157e-4,2.2331951025042324e-5,-1.3788383591687185e-8,2.8149066344888076e-4,2.2304951530066296e-5,-1.3780134438421739e-8,2.8188238547674434e-4,2.2367947560152177e-5,-1.3784386060479597e-8,2.822658721965546e-4,2.2531246589409013e-5,-1.380320444288144e-8,2.8259936195518845e-4,2.278597036190299e-5,-1.38358812243578e-8,2.828444569445365e-4,2.3098866508920356e-5,-1.3877999412904191e-8,2.82979105364523e-4,2.341279564136978e-5,-1.3921401485040897e-8,2.8301103748081484e-4,2.3657751771110462e-5,-1.3955814384309308e-8,2.8298340770177647e-4,2.37731328817469e-5,-1.3972176264270338e-8,2.8296484207766603e-4,2.3733029889624773e-5,-1.3966353021702428e-8,2.830249037760498e-4,2.3559828091315065e-5,-1.3941085550751729e-8,2.832073180871705e-4,2.331632681640619e-5,-1.3904875495648811e-8,2.8351576155621184e-4,2.308077284889224e-5,-1.3868553787955135e-8,2.8391769853862014e-4,2.2919547763551398e-5,-1.384157822144315e-8,2.8436019434869387e-4,2.287017449835268e-5,-1.3829694080640847e-8,2.847876469600927e-4,2.2937814065198065e-5,-1.3834319348602738e-8,2.8515485284144533e-4,2.3101223801610495e-5,-1.3853146215244e-8,2.85433793371567e-4,2.332264590269975e-5,-1.3881308460203237e-8,2.856153143340677e-4,2.3557815709961442e-5,-1.3912679492992264e-8,2.857074693224336e-4,2.3764383273789843e-5,-1.3941085356826256e-8,2.8573186713930584e-4,2.390828726211465e-5,-1.3961325891680267e-8,2.857188696819171e-4,2.39679560926046e-5,-1.3969911360196299e-8,2.8570231452007376e-4,2.3936257400670855e-5,-1.3965439487283113e-8,2.857144182944666e-4,2.382028199606721e-5,-1.394860030825303e-8,2.8578147687363805e-4,2.3639260037550102e-5,-1.3921869960500952e-8,2.8592084201393037e-4,2.342114432945347e-5,-1.3889012634409748e-8,2.8613931356911184e-4,2.3198585473751224e-5,-1.3854531958188717e-8,2.864327166543551e-4,2.3004883616430312e-5,-1.3823159470958645e-8,2.867863494363946e-4,2.2870125806672398e-5,-1.3799380523453057e-8,2.8717609388622425e-4,2.2817452101605205e-5,-1.378693317459741e-8,2.8757018441867614e-4,2.2859200077940465e-5,-1.378819562942302e-8,2.8793216925267906e-4,2.2992674449651844e-5,-1.3803413833910311e-8,2.8822619040308e-4,2.3196048522297792e-5,-1.3829891060439484e-8,2.8842548394305867e-4,2.3426397377221117e-5,-1.386152544402009e-8,2.885234854253173e-4,2.362330839766609e-5,-1.3889296541301406e-8,2.885438986592403e-4,2.3721722641275258e-5,-1.3903263102308176e-8,2.885424114376653e-4,2.3674183477913317e-5,-1.3896003696172715e-8,2.885929118709168e-4,2.3474313471584593e-5,-1.3866152311867126e-8,2.8875979009874574e-4,2.316637368653028e-5,-1.3819777847051538e-8,2.890704395776163e-4,2.283074746827438e-5,-1.3768264842029872e-8,2.895049885128943e-4,2.2551813469805068e-5,-1.3723757443181604e-8,2.900082669629545e-4,2.2387357101861408e-5,-1.3694865214262721e-8,2.9051374253208817e-4,2.235489612947439e-5,-1.36846867449533e-8,2.909649021340734e-4,2.2436103025525936e-5,-1.3691271872221072e-8,2.9132650488845045e-4,2.2590621258034392e-5,-1.3709370985045623e-8,2.9158637691061105e-4,2.2770429252790272e-5,-1.3732329579321405e-8,2.917517969683068e-4,2.2930448877807925e-5,-1.3753577653967498e-8,2.9184401188628566e-4,2.303489006955536e-5,-1.3767628184703838e-8,2.918927671925494e-4,2.3060445344766418e-5,-1.3770682898745772e-8,2.919314014291164e-4,2.299749274559909e-5,-1.3760937852867262e-8,2.9199247847638013e-4,2.2849926468667013e-5,-1.3738629102849638e-8,2.921039092862608e-4,2.2633834466347406e-5,-1.370584503210565e-8,2.92285666948327e-4,2.2375057960451114e-5,-1.3666144851793793e-8,2.925473850976914e-4,2.2105676829510934e-5,-1.3624037426111123e-8,2.9288716836903646e-4,2.185972836237773e-5,-1.3584395520403735e-8,2.93291734444017e-4,2.1668667070356885e-5,-1.355186975838904e-8,2.937378250344291e-4,2.1556973898122735e-5,-1.3530315087571015e-8,2.941947974500097e-4,2.1538210800188506e-5,-1.3522214675142932e-8,2.9462828965697827e-4,2.161178421989162e-5,-1.3528102494893166e-8,2.950049836659742e-4,2.176062612107966e-5,-1.3546028771640402e-8,2.9529877895283186e-4,2.1950341406551685e-5,-1.3571220417731373e-8,2.95498425036084e-4,2.2131299035723218e-5,-1.3596256341667975e-8,2.956153580837951e-4,2.22458472466366e-5,-1.361215968484941e-8,2.9568840667843486e-4,2.224225736534045e-5,-1.3610641296881544e-8,2.957800686939963e-4,2.2093977823393965e-5,-1.3587181550703598e-8,2.9595999348482825e-4,2.181678085271199e-5,-1.3543713834794471e-8,2.9627849161117025e-4,2.1471574018712877e-5,-1.3489060449153417e-8,2.9674319322068856e-4,2.1145294614123724e-5,-1.343609251827474e-8,2.9731425733706953e-4,2.09172161107864e-5,-1.3396774613550436e-8,2.9792187015270356e-4,2.082994835974585e-5,-1.3377886272534408e-8,2.984942122206886e-4,2.0880413673918396e-5,-1.3379586077781747e-8,2.989796522647844e-4,2.1030612573302552e-5,-1.3396809617098212e-8,2.993552928593664e-4,2.1226817991504233e-5,-1.3421929704689853e-8,2.9962420917402626e-4,2.141632957853267e-5,-1.3447160232838052e-8,2.998076048709863e-4,2.155742331817498e-5,-1.3466074608348756e-8,2.999366508951447e-4,2.162322261659597e-5,-1.3474303011588651e-8,3.0004605342871587e-4,2.160194083120627e-5,-1.3469704117491014e-8,3.001694758979349e-4,2.1495566477339442e-5,-1.3452259987949643e-8,3.003361714790454e-4,2.131801033581268e-5,-1.34238210598226e-8,3.00568250260884e-4,2.109291783629834e-5,-1.3387751649168571e-8,3.0087835205456256e-4,2.0850953582104578e-5,-1.3348491679679161e-8,3.012678716217725e-4,2.062624812724149e-5,-1.3311032550608233e-8,3.0172620046434173e-4,2.045193589878053e-5,-1.3280308792564854e-8,3.0223147737772435e-4,2.0355180263715515e-5,-1.3260534503027968e-8,3.027530905670879e-4,2.03523675046193e-5,-1.3254528922034592e-8,3.0325589739471393e-4,2.0445234386801097e-5,-1.326309141038214e-8,3.0370584098537583e-4,2.061873537337817e-5,-1.3284535301274032e-8,3.0407635475241393e-4,2.084132023298335e-5,-1.3314523112149486e-8,3.043548220950259e-4,2.106807932262644e-5,-1.334635951759101e-8,3.0454817712909907e-4,2.1247259597402573e-5,-1.337190847136496e-8,3.0468606841306306e-4,2.1330590886984806e-5,-1.338324729373875e-8,3.048190993710789e-4,2.1286814653441683e-5,-1.337492842426596e-8,3.0500947292813136e-4,2.1115405047104646e-5,-1.3346293728374482e-8,3.0531334240780847e-4,2.0854333144826318e-5,-1.330280661991811e-8,3.0575933228971686e-4,2.057446009779354e-5,-1.3255246543245369e-8,3.063336126043048e-4,2.035786012500672e-5,-1.3216390908366007e-8,3.0698195437051866e-4,2.0267933422058764e-5,-1.3196404367399528e-8,3.076297906607286e-4,2.0326989761099988e-5,-1.3199302777510673e-8,3.0820929098613465e-4,2.051301152374637e-5,-1.3222284594361782e-8,3.086790667643346e-4,2.0774250916837253e-5,-1.3257795354211066e-8,3.0902959140693113e-4,2.1050411845724763e-5,-1.3296685507824527e-8,3.0927719251130383e-4,2.1289582840270976e-5,-1.3330825505471842e-8,3.0945357058928e-4,2.145674944124067e-5,-1.33545105445674e-8,3.095961699201846e-4,2.153531284308726e-5,-1.3364818313685573e-8,3.0974146708267824e-4,2.152488868920895e-5,-1.3361368767381744e-8,3.0992097203242546e-4,2.1438017800151246e-5,-1.3345858365688848e-8,3.1015887202686857e-4,2.1297039816659653e-5,-1.3321563576426557e-8,3.1047036154725256e-4,2.1131275414374563e-5,-1.3292871575557973e-8,3.1086020309551777e-4,2.0974113615666323e-5,-1.3264820449894448e-8,0.00031132159469673937,2.0859458460963544e-5,-1.3242589706398116e-8,3.118358892299663e-4,2.08172018406579e-5,-1.3230876462418405e-8,3.123739556176808e-4,2.0867961619606607e-5,-1.3233145002595053e-8,3.1289980273878425e-4,2.1017999708571363e-5,-1.3250835029635484e-8,3.133765322075633e-4,2.1255710514705023e-5,-1.3282711917019378e-8,3.1377389441996034e-4,2.1551170659549085e-5,-1.332461455740315e-8,3.1407592571305155e-4,2.1859774047728385e-5,-1.3369828669154369e-8,3.1428671803730246e-4,2.212997996013805e-5,-1.3410177045357869e-8,3.14432506824964e-4,2.2314131680739853e-5,-1.3437721540724634e-8,3.1455876362506394e-4,2.2380463429616143e-5,-1.3446783871977407e-8,3.1472170043465105e-4,2.2323641852085563e-5,-1.3435813847370838e-8,3.1497476110345693e-4,2.217044112756572e-5,-1.3408494160108003e-8,3.153526234579617e-4,2.1976994096751363e-5,-1.337345682081832e-8,3.1585774444304715e-4,2.1815602165497123e-5,-1.3342262745022897e-8,3.1645594131746787e-4,2.1753230588716412e-5,-1.332596859353312e-8,3.170852855440563e-4,2.1829339986754936e-5,-1.3331486306519194e-8,3.1767609064744373e-4,2.204329336795916e-5,-1.335938578246327e-8,3.1817307131503856e-4,2.2357437282565592e-5,-1.3404182809004631e-8,3.185496252597622e-4,2.2713150253212193e-5,-1.3456770258106373e-8,3.188097318692035e-4,2.305068096859074e-5,-1.350756753269062e-8,3.1898017607109944e-4,2.3324049974074164e-5,-1.3548973772346303e-8,3.1909924742474843e-4,2.3507561072834535e-5,-1.3576520061523686e-8,3.192068961684871e-4,2.359541331330978e-5,-1.3588911123510958e-8,3.1933831976116504e-4,2.3597783076813762e-5,-1.358746123971623e-8,3.1952065880791903e-4,2.3536160980096142e-5,-1.3575362908229614e-8,3.19771579080949e-4,2.3439311888661372e-5,-1.3557025218592592e-8,3.200985885643759e-4,2.3340011786561243e-5,-1.3537543756519094e-8,3.2049846336595103e-4,2.3272031254568778e-5,-1.3522245412330314e-8,3.2095680118528186e-4,2.3266656684082567e-5,-1.3516194501257755e-8,3.214482960990994e-4,2.3348264536126095e-5,-1.3523546070473995e-8,3.219387035953197e-4,2.352905494166589e-5,-1.3546710031825095e-8,3.2238945173181284e-4,2.3803973484541637e-5,-1.3585453917150966e-8,3.2276517284783867e-4,2.414782235178386e-5,-1.3636274656717374e-8,3.2304300787259485e-4,2.4516917684648338e-5,-1.369247871891746e-8,3.2322093588827404e-4,2.4856694790520883e-5,-1.374527463790208e-8,3.2332167991338466e-4,2.5114409674883268e-5,-1.3785796286515207e-8,3.233897052011945e-4,2.525357146846435e-5,-1.3807516666649438e-8,3.2348120921461983e-4,2.5265406266578555e-5,-1.3808261001094046e-8,3.2364963922767976e-4,2.5173284625345988e-5,-1.3791120413398418e-8,3.2393091613960477e-4,2.5028248522414485e-5,-1.3763924450587002e-8,3.243327110819311e-4,2.489645279708152e-5,-1.3737355303383892e-8,3.2483114194985555e-4,2.4841661933600615e-5,-1.3722151158493351e-8,3.253764637315329e-4,2.4907661106982096e-5,-1.3726145974744325e-8,3.2590667505080653e-4,2.5106163518978407e-5,-1.3752074004335538e-8,3.263648743232834e-4,2.5414592771149465e-5,-1.3796943801410434e-8,3.267142644419916e-4,2.5784562274762126e-5,-1.3853232512079237e-8,3.2694560655390203e-4,2.6157379978950974e-5,-1.3911368702242648e-8,3.2707552207375036e-4,2.64802029079398e-5,-1.3962446344578679e-8,3.2713809920406574e-4,2.6717260951139974e-5,-1.4000191368277358e-8,3.2717430412455535e-4,2.685395991046812e-5,-1.4021757723105099e-8,3.272230250199076e-4,2.6895095773412356e-5,-1.4027518182301305e-8,3.273154328546555e-4,2.6859988741622723e-5,-1.4020303863838187e-8,3.27472427946398e-4,2.6777052624059808e-5,-1.4004517409235265e-8,3.2770404819257206e-4,2.667917357422416e-5,-1.3985374637999391e-8,3.2800968800751206e-4,2.6600135622202087e-5,-1.396833964272351e-8,3.283784197698704e-4,2.65715822213231e-5,-1.3958675851617953e-8,3.2878934377281676e-4,2.661975357857392e-5,-1.3960963251046796e-8,3.2921252136175277e-4,2.6761429111553565e-5,-1.397844020247438e-8,3.2961152402647006e-4,2.699907821559547e-5,-1.4012129808211943e-8,3.29948753915105e-4,2.7316263206531952e-5,-1.4059921868231094e-8,3.3019401009220286e-4,2.7675690266479282e-5,-1.4116060189696021e-8,3.303348983515174e-4,2.8023052525526852e-5,-1.417164175112956e-8,3.303851664433875e-4,2.8298564869411255e-5,-1.4216501609523993e-8,3.303858174704456e-4,2.845434313568276e-5,-1.4242167403395092e-8,3.303959416014983e-4,2.847131185450436e-5,-1.424477933710207e-8,3.304753311960585e-4,2.8367701265917583e-5,-1.4226626167552076e-8,3.3066574499633107e-4,2.8194592527739406e-5,-1.4195561924860455e-8,3.3097847333721307e-4,2.8020371048836455e-5,-1.4162617817120332e-8,3.3139229136450047e-4,2.7910733393913838e-5,-1.4138840614943994e-8,3.318610576038761e-4,2.7911418740544573e-5,-1.4132437583694847e-8,3.32327158660616e-4,2.8038257552148033e-5,-1.4146944421067845e-8,3.3273630146328536e-4,2.8275956095937735e-5,-1.4180721826563061e-8,3.3304982043797914e-4,2.8584590280257757e-5,-1.4227750741366778e-8,3.332518772704476e-4,2.8911198090895583e-5,-1.4279413650778645e-8,3.3335044303321585e-4,2.9203016014443303e-5,-1.4326720121414798e-8,3.3337264600420897e-4,2.9418844303718548e-5,-1.4362340255230543e-8,3.333565716870711e-4,2.953593528593423e-5,-1.438192328577023e-8,3.333423100299153e-4,2.955156240787833e-5,-1.4384490907506754e-8,3.333646227280616e-4,2.9480245799448394e-5,-1.4372041376989542e-8,3.3344841055820307e-4,2.9348582447400512e-5,-1.434870041016347e-8,3.3360692534264394e-4,2.9189588504290738e-5,-1.4319770705147037e-8,3.338418939605668e-4,2.903780052882538e-5,-1.429092220642219e-8,3.341445478842576e-4,2.8925502238673784e-5,-1.4267598983776846e-8,3.3449686902692956e-4,2.8879716510260736e-5,-1.4254567192028621e-8,3.34872893630502e-4,2.8919305085978387e-5,-1.4255452413328958e-8,3.3524046998712566e-4,2.905162633610626e-5,-1.4272125495191893e-8,3.3556438983591447e-4,2.926868042533546e-5,-1.4303906971243346e-8,3.358120415655983e-4,2.9543700862908523e-5,-1.4346787820191492e-8,3.359620973953016e-4,2.9830621885824582e-5,-1.4393165436296007e-8,3.3601476557872876e-4,3.0069847654572008e-5,-1.4432765793470925e-8,3.3599911919222826e-4,3.020259394749606e-5,-1.4455159337401374e-8,3.3597110300592314e-4,3.019141034190686e-5,-1.4453385307179457e-8,3.35998526488256e-4,3.00380349093956e-5,-1.4427081304578546e-8,3.3613729850181856e-4,2.9787423935761663e-5,-1.4383225010504009e-8,3.3641053011372276e-4,2.9513350056419022e-5,-1.4333808242876725e-8,3.368014006431015e-4,2.9292449987817804e-5,-1.4291641185111276e-8,3.3726185452744576e-4,2.9179980574871958e-5,-1.4266408426820145e-8,3.377303740186198e-4,2.9197037823386694e-5,-1.4262469364142498e-8,3.3814986945613203e-4,2.9330730888683372e-5,-1.427863436126763e-8,3.3848010158714516e-4,2.9543115154846164e-5,-1.4309336642064932e-8,3.38703273259897e-4,2.9783603206552747e-5,-1.4346471770152776e-8,3.388238715787891e-4,3.0001002317025725e-5,-1.4381352417660723e-8,3.388645512106792e-4,3.015313826145052e-5,-1.4406430035573901e-8,3.388596992978482e-4,3.0213214891368453e-5,-1.441656210821404e-8,3.388480896868653e-4,3.0172579589435465e-5,-1.4409671063513486e-8,3.3886595201610624e-4,3.0040010984943417e-5,-1.4386745775937594e-8,3.389415616773652e-4,2.983826465857231e-5,-1.435129353309962e-8,3.3909197448769624e-4,2.9599024245251944e-5,-1.4308467177209232e-8,3.393219732788287e-4,2.935743690567301e-5,-1.4264115645959442e-8,3.396247872186201e-4,2.9147198599977515e-5,-1.4223960274082391e-8,3.3998384944594585e-4,2.8996680396776103e-5,-1.419298232822601e-8,3.4037497978542483e-4,2.8925994092867653e-5,-1.4174970094013113e-8,3.4076876816749476e-4,2.8944576739562157e-5,-1.4172101451461987e-8,3.4113333363185183e-4,2.9048903134653624e-5,-1.4184452613283302e-8,3.4143806830900614e-4,2.9220259014859665e-5,-1.4209426481068721e-8,3.416592313159679e-4,2.942335957385573e-5,-1.4241300071719586e-8,3.4178768959361645e-4,2.9607879560626548e-5,-1.4271351102299056e-8,3.418373350901813e-4,2.971582378240197e-5,-1.4289150939638257e-8,3.4184996084014505e-4,2.9696727082961728e-5,-1.4285356690807156e-8,3.418902633601011e-4,2.952827110856552e-5,-1.425546855762454e-8,3.420270707706498e-4,2.9232745927517535e-5,-1.4202771104298555e-8,3.4230607491550166e-4,2.8876464783064984e-5,-1.4138250014917669e-8,3.4272891522547444e-4,2.8547270391760742e-5,-1.4076783978948293e-8,3.432521860159393e-4,2.8320914566404532e-5,-1.4031512125887654e-8,3.4380643577638096e-4,2.8235399587572567e-5,-1.4009518407800017e-8,3.4432227839255926e-4,2.8284922903914585e-5,-1.4010681330376893e-8,3.4474989405392577e-4,2.8430706232186193e-5,-1.4029244458375631e-8,3.450667007921132e-4,2.8618389049455682e-5,-1.405649452639386e-8,3.4527564357985356e-4,2.879355388007985e-5,-1.4083250375345564e-8,3.453987654829163e-4,2.8912049121438285e-5,-1.4101646097180218e-8,3.45469585268103e-4,2.894525815503267e-5,-1.4106194425210915e-8,3.4552604642457406e-4,2.8881730901118583e-5,-1.4094281874326899e-8,3.4560455047242703e-4,2.8726431535401165e-5,-1.4066215283106948e-8,3.457351529958053e-4,2.84982490045257e-5,-1.4024875511406945e-8,3.459380666037131e-4,2.8226171437823553e-5,-1.397505116091795e-8,3.462216637718113e-4,2.794459723979762e-5,-1.3922581182171141e-8,3.4658209986642525e-4,2.7688322235778394e-5,-1.3873458405560078e-8,3.4700449561030034e-4,2.748781270498401e-5,-1.3833031101689292e-8,3.474653304988083e-4,2.7365322208472776e-5,-1.3805386540778746e-8,3.479355692431911e-4,2.7332084280176915e-5,-1.3792904236856692e-8,3.483841987506852e-4,2.738651159118678e-5,-1.3795909548384521e-8,3.48782076015223e-4,2.7513276120753096e-5,-1.3812375954175199e-8,3.4910623716508923e-4,2.768327317176719e-5,-1.3837706596348546e-8,3.493450066374296e-4,2.785497909947437e-5,-1.3864767635512509e-8,3.4950380428156456e-4,2.7978582520697178e-5,-1.388452258098352e-8,3.496101796449104e-4,2.800470747307293e-5,-1.3887648902006153e-8,3.4971470295323565e-4,2.7898579782032046e-5,-1.3867255990212172e-8,3.498829672228969e-4,2.7657103890016168e-5,-1.3822133605209417e-8,3.5017591926531956e-4,2.7320571946380355e-5,-1.375894735333673e-8,3.5062370726759935e-4,2.6967510508779796e-5,-1.3691352108885298e-8,3.512076836751679e-4,2.668829415482261e-5,-1.3635359280006073e-8,3.518645594543916e-4,2.6549168451208284e-5,-1.3603044848274974e-8,3.525120860381075e-4,2.6567976763254272e-5,-1.359825241655584e-8,3.530801471377777e-4,2.671440633051558e-5,-1.3616465703002289e-8,3.5353016455276417e-4,2.692942938290615e-5,-1.3647971513994665e-8,3.538577002956241e-4,2.7148881753446637e-5,-1.3681795510084634e-8,3.540840771794443e-4,2.7320151877578618e-5,-1.3708567939664234e-8,3.542449634789241e-4,2.740961864282937e-5,-1.372191839944505e-8,3.543805993034693e-4,2.7403434203548572e-5,-1.3718799059739425e-8,3.545289983413223e-4,2.730498627401825e-5,-1.3699233288566783e-8,3.547216624954893e-4,2.7131303055044464e-5,-1.366581028187246e-8,3.5498087228620824e-4,2.690928730173587e-5,-1.3623050830270064e-8,3.5531797095255416e-4,2.6671814970846222e-5,-1.3576675347345746e-8,3.557325408326314e-4,2.6453572621222732e-5,-1.3532810617513158e-8,3.562126332903402e-4,2.628664184351773e-5,-1.3497191162436568e-8,3.5673629776197384e-4,2.619610347960688e-5,-1.3474416118620455e-8,3.5727449108908464e-4,2.6196233744873596e-5,-1.3467331827186608e-8,3.577951171362706e-4,2.628789151186731e-5,-1.3476583429700484e-8,3.582677504977914e-4,2.6457485603445368e-5,-1.3500355686777276e-8,3.5866856083210973e-4,2.667773719840518e-5,-1.3534335889835297e-8,3.58984983565573e-4,2.691031135287597e-5,-1.3571967951946276e-8,3.592197788921785e-4,2.7110381522096033e-5,-1.3605104433755066e-8,3.5939395836391525e-4,2.723347733466807e-5,-1.3625211838772243e-8,3.5954731475294516e-4,2.7245005640118063e-5,-1.3625233122092842e-8,3.5973439287282456e-4,2.7131819567977223e-5,-1.3601941703224978e-8,3.600135954575884e-4,2.6912915110491107e-5,-1.355814290805302e-8,3.60429073295564e-4,2.664325075241653e-5,-1.3503526756102676e-8,3.60990418920039e-4,2.64034696792908e-5,-1.3452835801158697e-8,3.6166146352094975e-4,2.6273775898966717e-5,-1.3421074493356377e-8,3.623688032765512e-4,2.630225709809558e-5,-1.3417659611230746e-8,3.6302889191182174e-4,2.6485921915614753e-5,-1.3442821004948017e-8,3.635787000997205e-4,2.6775836053406942e-5,-1.3488337737398986e-8,3.6399313254539714e-4,2.7100845265447172e-5,-1.3541675775041822e-8,3.6428387361378935e-4,2.739386253867796e-5,-1.3590675845310196e-8,3.644865074909421e-4,2.7608376878739416e-5,-1.3626575377250361e-8,3.6464576613601913e-4,2.7723005292816395e-5,-1.364495582745406e-8,3.6480461555127395e-4,2.77383404850266e-5,-1.3645341642181487e-8,3.6499818740537e-4,2.76710053685678e-5,-1.3630271402829668e-8,3.6525122259954397e-4,2.754788664050142e-5,-1.360432815008887e-8,3.6557730310316335e-4,2.7401492817728636e-5,-1.357329062063108e-8,3.659787553882458e-4,2.72661665993695e-5,-1.3543394730429565e-8,3.6644689750384423e-4,2.7174555417879994e-5,-1.352065178127914e-8,3.669628241382334e-4,2.7153908983776746e-5,-1.3510179030065285e-8,3.674992016602788e-4,2.7222166045638933e-5,-1.3515526234079713e-8,3.68023539090487e-4,2.73843521332642e-5,-1.3538046023492725e-8,3.685030041719975e-4,2.7630228716345682e-5,-1.357642629855776e-8,3.689102801263324e-4,2.793415315314418e-5,-1.362653567100988e-8,3.692294796808659e-4,2.825781083626839e-5,-1.368173224189925e-8,3.694608523244996e-4,2.8555916027981706e-5,-1.3733727733496358e-8,3.6962307871807993e-4,2.8784249160797294e-5,-1.3773978177336275e-8,3.697522993353289e-4,2.8908903102290343e-5,-1.3795451641862713e-8,3.6989731803456434e-4,2.8915385836666257e-5,-1.3794521381371401e-8,3.701106527110447e-4,2.8815745762559872e-5,-1.3772576532502819e-8,3.704358354453675e-4,2.8651045702873957e-5,-1.3736749819577554e-8,3.7089307273516974e-4,2.8486040803253674e-5,-1.369908367506479e-8,3.714679608227572e-4,2.8394043726751596e-5,-1.3673710854101186e-8,3.7210991213757036e-4,2.843405066778115e-5,-1.3672440108961631e-8,3.7274498490128303e-4,2.8628554579815174e-5,-1.3700371291720451e-8,3.733002400374539e-4,2.8953884905579092e-5,-1.375383654447321e-8,3.737283127161456e-4,2.934966667201483e-5,-1.3821992572909582e-8,3.74019840199307e-4,2.9742318752869464e-5,-1.3891158565206442e-8,3.741996113300426e-4,3.0069483883304552e-5,-1.3949424588473654e-8,3.743121974552402e-4,3.0294519375517385e-5,-1.3989456769194334e-8,3.7440629029591007e-4,3.0408720943630665e-5,-1.4009040575435913e-8,3.745237271452724e-4,3.042555417326966e-5,-1.4010137999684472e-8,3.7469432233555345e-4,3.0372415163084517e-5,-1.399745265579277e-8,3.7493481407911624e-4,3.0283392801809747e-5,-1.3977121315336288e-8,3.7524974009757705e-4,3.0194074963467853e-5,-1.3955729687359219e-8,3.7563276072333213e-4,3.013796030115297e-5,-1.3939607838651707e-8,3.7606789752317216e-4,3.014358067755694e-5,-1.3934276197156442e-8,3.765308715945007e-4,3.0231593508346177e-5,-1.394391327502817e-8,3.769911447976581e-4,3.0411553226949515e-5,-1.3970762499094855e-8,3.774153866080384e-4,3.067874957136116e-5,-1.4014505540693484e-8,3.7777276900158004e-4,3.101223988098575e-5,-1.4071785355970582e-8,3.780416881621932e-4,3.137561973052833e-5,-1.4136185048005719e-8,3.782164562994042e-4,3.1721813892388676e-5,-1.4198962795870701e-8,3.7831168136817563e-4,3.2002044707192615e-5,-1.4250643304019193e-8,3.7836207867593326e-4,3.2177378338159576e-5,-1.4283213281041604e-8,3.784166470845473e-4,3.222972568760059e-5,-1.4292338201740607e-8,3.7852801727424653e-4,3.216882097511682e-5,-1.4278915068388991e-8,3.7873941235653586e-4,3.2032643792585974e-5,-1.4249424676350356e-8,3.7907250187723524e-4,3.1880386191779476e-5,-1.4214835935159804e-8,3.79519524138801e-4,3.1778859253417956e-5,-1.4188143257430748e-8,3.800425591675725e-4,3.1785057707013906e-5,-1.4180988668013144e-8,3.8058155833472476e-4,3.192941802742809e-5,-1.420023019579586e-8,3.810702007095623e-4,3.220552703223705e-5,-1.424564138430845e-8,3.814550608339061e-4,3.257118968284767e-5,-1.4309824655516338e-8,3.8171088610531375e-4,3.2961679962287354e-5,-1.4380610992098202e-8,3.818457030615165e-4,3.3310117296884816e-5,-1.444499449135639e-8,3.8189440825249304e-4,3.356630414228731e-5,-1.4492871054400158e-8,3.8190518456659355e-4,3.3706990005561714e-5,-1.4519156100786139e-8,3.8192545511999565e-4,3.3735939536645784e-5,-1.4523932873023375e-8,0.00038199221663132935,3.36770574780388e-5,-1.4511243699103591e-8,3.8212794959808886e-4,3.356532850735636e-5,-1.44874232515469e-8,3.8234068283503006e-4,3.3438964212912564e-5,-1.445961632653455e-8,3.826260695837975e-4,3.333397058547786e-5,-1.4434725361888601e-8,3.8296985541619517e-4,3.328078604508245e-5,-1.4418750654133305e-8,3.8335002714571484e-4,3.3302014460873146e-5,-1.441635218389012e-8,3.837387391287661e-4,3.341034772114456e-5,-1.4430449062814374e-8,3.841046361875188e-4,3.3606223967194986e-5,-1.4461732780659432e-8,3.844163948873668e-4,3.3875453388444264e-5,-1.4508108409027856e-8,3.846481026697538e-4,3.4187920503036706e-5,-1.4564283527851176e-8,3.8478626988731516e-4,3.449926174844078e-5,-1.4621926226168586e-8,3.8483677916458626e-4,3.475742957885683e-5,-1.4670832194101453e-8,3.8482854708888275e-4,3.491455839733871e-5,-1.4701226812136726e-8,3.8481043392111564e-4,3.4941584971485933e-5,-1.4706695752866484e-8,3.8484010168733006e-4,3.484013825587449e-5,-1.468664371357169e-8,3.8496755452253895e-4,3.464574228765504e-5,-1.4647105606473425e-8,3.852194666708856e-4,3.4419635873436564e-5,-1.4599384135326243e-8,3.8559051584685747e-4,3.4231768838361375e-5,-1.4556966089518085e-8,3.8604470174984556e-4,3.4141257634779535e-5,-1.4531832281699271e-8,3.8652549596401316e-4,3.4180796113487486e-5,-1.4531324827219252e-8,3.8697101818921484e-4,3.434917801281351e-5,-1.4556386882613265e-8,3.8732970092140794e-4,3.461318978913546e-5,-1.4601550234372074e-8,3.875723463890504e-4,3.491766325493246e-5,-1.4656605918405712e-8,3.8769763284319733e-4,3.5200524303996284e-5,-1.4709446876581307e-8,3.8772997811639925e-4,3.540841369879993e-5,-1.474921260370285e-8,3.877109937265693e-4,3.550840337825738e-5,-1.476877406003373e-8,3.8768778169230556e-4,3.5492866851361164e-5,-1.476588786722735e-8,3.877020190388187e-4,3.5377264492801586e-5,-1.4742916279944912e-8,3.8778272420060984e-4,3.519311331097323e-5,-1.4705540490345767e-8,3.8794354267678884e-4,3.497940485725285e-5,-1.4661111679795208e-8,3.88183621815305e-4,3.4775082366194856e-5,-1.4617171125102894e-8,3.8849040862005046e-4,3.4613774624727124e-5,-1.4580401934381552e-8,3.888429039948693e-4,3.452069902788002e-5,-1.4556015515333534e-8,3.8921458948142855e-4,3.45109299576898e-5,-1.4547412738969088e-8,3.8957597873680495e-4,3.4588150401447517e-5,-1.455591709815627e-8,3.8989728274007056e-4,3.474336635341969e-5,-1.4580440622513306e-8,3.9015195396758514e-4,3.495368121352255e-5,-1.4617090694513199e-8,3.9032177735499337e-4,3.5182101792084835e-5,-1.4658947568485471e-8,3.9040340540185385e-4,3.5380277120652675e-5,-1.4696467881042956e-8,3.904146306630224e-4,3.549631641986946e-5,-1.4719008759851094e-8,3.903967427080332e-4,3.548836893154207e-5,-1.4717615696219794e-8,3.9040860609677376e-4,3.534095270614115e-5,-1.468840935651692e-8,3.905107938530057e-4,3.507658782265891e-5,-1.4635025503981219e-8,3.9074435561294203e-4,3.4754301960084933e-5,-1.4568447883446436e-8,3.911142837911334e-4,3.445237060488615e-5,-1.4503769375063293e-8,3.915867065914306e-4,3.4242280516138355e-5,-1.4455241755727162e-8,3.9210098851033884e-4,3.416630020580259e-5,-1.4431921054112957e-8,3.9258978921974933e-4,3.42277415173893e-5,-1.4435583191215956e-8,3.92997891960016e-4,3.43949587943332e-5,-1.446115512515839e-8,3.9329397995157005e-4,3.4614214184008465e-5,-1.4498870429778417e-8,3.934741228294369e-4,3.482529654460197e-5,-1.4537116508416524e-8,3.935585439745504e-4,3.497539271070658e-5,-1.456516089516988e-8,3.935841244453831e-4,3.502882428209544e-5,-1.4575248316469991e-8,3.935950084123615e-4,3.497180118274077e-5,-1.4563798423281858e-8,3.9363335905265697e-4,3.4812268755863353e-5,-1.453161028551469e-8,3.9373196934599825e-4,3.457567997812712e-5,-1.4483168817569692e-8,3.9390985158140024e-4,3.4298244121273065e-5,-1.442534785326174e-8,3.941710735045695e-4,3.401951202215226e-5,-1.4365908871774454e-8,3.945062887672119e-4,3.377587091359689e-5,-1.431215883946541e-8,3.948959058166358e-4,3.3595868201667825e-5,-1.4269990715109863e-8,3.9531378332501087e-4,3.34975018387911e-5,-1.4243345355196083e-8,3.95730734118531e-4,3.348697905005418e-5,-1.4233969882786683e-8,3.9611767962868447e-4,3.3558268125866676e-5,-1.424129255710753e-8,3.964487102877791e-4,3.3693000306870486e-5,-1.4262290516375536e-8,3.9670457560232427e-4,3.386072530925677e-5,-1.429136009013897e-8,3.96877142245794e-4,3.402026478479182e-5,-1.4320404114221407e-8,3.96974675963087e-4,3.412377428846557e-5,-1.433955280018419e-8,3.970263033690597e-4,3.412534347773198e-5,-1.4338948576893425e-8,3.970821930901893e-4,3.3994646882125137E-05,-1.4311677516442803e-8,3.972051269460485e-4,3.373258641401384e-5,-1.4257126814339408e-8,3.9745171697619185e-4,3.3380857036472385e-5,-1.4183048350455968e-8,3.9784887548471545e-4,3.3015677815108926e-5,-1.4104376616313594e-8,3.983784208606685e-4,3.272315572911758e-5,-1.4038376360391643e-8,3.989810077392129e-4,3.2567028222608205e-5,-1.3998275239165507e-8,3.995784033932848e-4,3.256650678484111e-5,-1.3988808427858587e-8,4.001011450991133e-4,3.269479846358877e-5,-1.4005705396679457e-8,4.0050766556828905e-4,3.2894820685850835e-5,-1.4038489709830286e-8,4.0078956955466436e-4,3.310064022337845e-5,-1.407446327281956e-8,4.0096621978551547e-4,3.325505206119748e-5,-1.4102093289319672e-8,4.010745404447036e-4,3.3319672146671645e-5,-1.4113112716440347e-8,4.0115849496576356e-4,3.3278246778498246e-5,-1.4103416685224999e-8,4.0126036221118603e-4,3.3135359116825646e-5,-1.4073080729645138e-8,4.014143685471576e-4,3.291243375807629e-5,-1.4025773677232568e-8,4.0164265136440953e-4,3.264223661405534e-5,-1.3967743564302586e-8,4.019534608500238e-4,3.236272447032621e-5,-1.390655605379301e-8,4.023414451750576e-4,3.211102729665613e-5,-1.3849797898036786e-8,4.0278971307670453e-4,3.191824538468825e-5,-1.3803953237611915e-8,4.032731686233601e-4,3.18056089510052e-5,-1.3773602883065726e-8,4.037624347508987e-4,3.178228329803735e-5,-1.376099772735688e-8,4.0422776760387706e-4,3.184466222614487e-5,-1.3765925422093045e-8,4.0464271102872616e-4,3.1976751617668895e-5,-1.3785736315062855e-8,4.049875078121135e-4,3.2151373504918296e-5,-1.3815449042655647e-8,4.0525242347578963e-4,3.2332175019236376e-5,-1.3847964962952615e-8,4.0544119121250843e-4,3.2476862419152035e-5,-1.3874561986942388e-8,4.05574305140568e-4,3.254270756363941e-5,-1.3885979640020726e-8,4.0569066632959827e-4,3.249544686392352e-5,-1.3874369128060043e-8,4.0584474135106326e-4,3.232141920233108e-5,-1.3836033795223245e-8,4.060959597117366e-4,3.203981711665866e-5,-1.3774198864523915e-8,4.0648944202457856e-4,3.170776499799547e-5,-1.3700205970255192e-8,4.070339380710125e-4,3.14094387988266e-5,-1.3631320248747382e-8,4.076901544592694e-4,3.122757281338524e-5,-1.3584880382566213e-8,4.083808447150242e-4,3.1209812559531696e-5,-1.357136683146307e-8,4.090200221087287e-4,3.1349995147856346e-5,-1.3590446140588086e-8,4.0954443123187515e-4,3.1595103343674464e-5,-1.3632168430282483e-8,4.099303837683666e-4,3.187049880203468e-5,-1.3681872256090355e-8,4.101918277261662e-4,3.210671035463291e-5,-1.3725481876963942e-8,4.103671176469619e-4,3.225608889167277e-5,-1.3752883934071199e-8,4.1050398879131114e-4,3.2297665182539014e-5,-1.3759059927073484e-8,4.106480562172606e-4,3.223425978678608e-5,-1.3743742869076615e-8,4.108359107796797e-4,3.208637535174844e-5,-1.371041895829871e-8,4.1109180515318115e-4,3.188566709771694e-5,-1.366514943234374e-8,4.1142658815250326e-4,3.166901056491771e-5,-1.3615380156688916e-8,4.118380537063425e-4,3.147326545835003e-5,-1.3568790580043022e-8,4.123123872285276e-4,3.1330693322293186e-5,-1.3532246924646132e-8,4.1282660990819755e-4,3.12650855735152e-5,-1.3510937230181173e-8,4.1335194038861985e-4,3.12888232285669e-5,-1.3507759179538763e-8,0.00041385782791872523,3.14012402587035e-5,-1.3523006860697865e-8,4.143162097043059e-4,3.158851800056764e-5,-1.3554343762603742e-8,4.147055736697891e-4,3.182504325345812e-5,-1.3596998591413753e-8,4.150145461827425e-4,3.207610038134238e-5,-1.3644157727172217e-8,4.1524476893370035e-4,3.230183268389632e-5,-1.368759809958973e-8,4.1541284364256985e-4,3.2462481911037404e-5,-1.3718658948585584e-8,4.1555091775811174e-4,3.252513293742975e-5,-1.3729683805619488e-8,4.1570478512098117e-4,3.247211793603926e-5,-1.3715984522395111e-8,4.159276624200048e-4,3.2310116826504505e-5,-1.3678055124053507e-8,4.1626805702971783e-4,3.2076790804311726e-5,-1.3623245822332607e-8,4.167524617387805e-4,3.1839355536118996e-5,-1.3565610929515464e-8,4.173687071937988e-4,3.1679433606488e-5,-1.352271054257597e-8,4.180608672886187e-4,3.166480571656874e-5,-1.3509541984888306e-8,4.187443288713044e-4,3.182021371545731e-5,-1.353221487846181e-8,4.193369682737023e-4,3.211533218369021e-5,-1.3585218588590153e-8,4.1978931227977685e-4,3.247863499575709e-5,-1.3654153761093438e-8,4.2009704087509506e-4,3.282777137229304e-5,-1.3721983897773367e-8,4.202929904690921e-4,3.309778073197644e-5,-1.377490014751364e-8,4.2042859167406205e-4,3.325494568929429e-5,-1.3805267082687721e-8,4.2055631802961126e-4,3.329635406528146e-5,-1.3811685967344244e-8,4.207187075410816e-4,3.324181570289828e-5,-1.3797529601781316e-8,4.209438553744661e-4,3.312430221578908e-5,-1.376914696052265e-8,4.212450114021482e-4,3.29820290127452e-5,-1.3734307231289387e-8,4.2162200611876914e-4,3.285276439909095e-5,-1.3700985550654417e-8,4.220632466273461e-4,3.276974175556986e-5,-1.3676406563612262e-8,4.225479806825113e-4,3.275847057478871e-5,-1.3666274054639809e-8,4.2304896717371235e-4,3.283409778896946e-5,-1.367416405793029e-8,4.23535782825238e-4,3.299935006506142e-5,-1.3701088573561653e-8,4.2397886988324306e-4,3.3243478824476034e-5,-1.374527589841765e-8,4.2435406637511227e-4,3.354279531934157e-5,-1.3802236076034794e-8,4.246470102477941e-4,3.3863147891369016e-5,-1.3865160722445153e-8,4.248566904943515e-4,3.4164346787876715e-5,-1.392568757735148e-8,4.249974307882397e-4,3.4406249583597606e-5,-1.3975043403899051e-8,4.2509869023787635e-4,3.455590008719841e-5,-1.4005525482322397e-8,4.252022353167417e-4,3.4594902384809774e-5,-1.4012200930378964e-8,4.2535628227180944e-4,3.452606191561703e-5,-1.3994602436161527e-8,4.2560627053101944e-4,3.437774195887487e-5,-1.3957997791203556e-8,4.259826655671023e-4,3.42033544248866e-5,-1.3913552496987838e-8,4.2648812302165757e-4,3.407288572264099e-5,-1.3876612700332113e-8,4.2708920644435e-4,3.405490071168592e-5,-1.3862734860228985e-8,4.2771960286236156e-4,3.419246160656786e-5,-1.388224482934693e-8,4.2829858276369735e-4,3.4483331127508464e-5,-1.39356667397566e-8,4.287591800201008e-4,3.487711132752329e-5,-1.401286696741407e-8,4.2907189221625086e-4,3.529375343362766e-5,-1.4096933853643936e-8,4.2925111181198606e-4,3.5653822332007866e-5,-1.4170691079982273e-8,4.293431436633978e-4,3.590386737424457e-5,-1.422220020649449e-8,4.294057069943159e-4,3.602629900089709e-5,-1.4246968028465437e-8,4.2949028887441184e-4,3.603476243390713e-5,-1.4247107509361492e-8,4.296326637699373e-4,3.596258975350247e-5,-1.422906114426545e-8,4.298507830160587e-4,3.585122067538412e-5,-1.4201284229219959e-8,4.30146821619837e-4,3.574178595192985e-5,-1.4172502101488057e-8,4.305105528179752e-4,3.567004669500458e-5,-1.4150577469349977e-8,4.309225690144668e-4,3.566353502127585e-5,-1.4141794633184363e-8,4.3135708115020477e-4,3.5739694174433475e-5,-1.4150368611616155e-8,4.3178466029482305e-4,3.5904363120716595e-5,-1.4178070671429282e-8,4.321754230960808e-4,3.615055457113382e-5,-1.4223940930016515e-8,4.3250300470527235e-4,3.645801938170371e-5,-1.4284152898436964e-8,4.327492141671965e-4,3.6794455062480333e-5,-1.4352180111878265e-8,4.329086361301494e-4,3.711914037777242e-5,-1.441944170755436e-8,4.329919362284678e-4,3.738922622588004e-5,-1.4476525706585657e-8,4.3302648954548616e-4,3.756805202918171e-5,-1.4514923144055002e-8,4.330533235187689e-4,3.763391300210855e-5,-1.4528989528198715e-8,4.331202330514279e-4,3.7587099620632155e-5,-1.4517675625248134e-8,4.33271953934643e-4,3.7453099149815584e-5,-1.4485529520827118e-8,4.335391170749413e-4,3.728040086638992e-5,-1.4442540122095772e-8,4.3392835970523195e-4,3.713209968463934e-5,-1.4402528788363379e-8,4.344165500758634e-4,3.707165347756771e-5,-1.4380064897967802e-8,4.3495230062594813e-4,3.714511840207765e-5,-1.438637838413005e-8,4.3546692736868404e-4,3.7364868229131036e-5,-1.4425430174624792e-8,4.3589372030768185e-4,3.7701867510223756e-5,-1.4491842764582526e-8,4.361893091351183e-4,3.8092289800798756e-5,-1.4572120153155367e-8,4.3634757852403625e-4,3.8457985039809324e-5,-1.464910812938325e-8,4.363991796352178e-4,3.8732147174392066e-5,-1.4707727290935779e-8,4.3639763452364114e-4,3.887826414780291e-5,-1.4739264857224268e-8,4.364001722647106e-4,3.889525252824335e-5,-1.474263969373984e-8,4.364523016838084e-4,3.881021476354108e-5,-1.4722977299200551e-8,4.365804771433114e-4,3.866556340462599e-5,-1.468896039574687e-8,4.367919722871205e-4,3.8506926413442914e-5,-1.4650297668231218e-8,4.370786669043261e-4,3.837491837753309e-5,-1.4615939698352876e-8,4.3742177567648004e-4,3.8300841711920557e-5,-1.4593067497875068e-8,4.377959505900983e-4,3.830495380523125e-5,-1.4586611379527836e-8,4.3817246361271725e-4,3.839583492266989e-5,-1.4599028669935255e-8,4.385219262133009e-4,3.856996202628723e-5,-1.4630154871815322e-8,4.388172474094774e-4,3.881133934777927e-5,-1.4677068982739351e-8,4.3903736753377824e-4,3.909172438758446e-5,-1.4734059655137036e-8,4.39171785700476e-4,3.9372492362129876e-5,-1.4792916472356046e-8,4.392250878709724e-4,3.9609287825052854e-5,-1.48438349018792e-8,4.392197841418492e-4,3.9760010138741e-5,-1.4877110525214467e-8,4.391952872335693e-4,3.9795215836805176e-5,-1.488546114998337e-8,4.392015028478242e-4,3.9708130526000964e-5,-1.4866368508482124e-8,4.392874740657098e-4,3.9520303226885334e-5,-1.4823547388579492e-8,4.3948798661524503e-4,3.927964654825381e-5,-1.4766788554084115e-8,4.3981252877586845e-4,3.905019462021475e-5,-1.4709963203151688e-8,4.4024057367895406e-4,3.889606668889953e-5,-1.4667637174980205e-8,4.407251019923313e-4,3.886426054421898e-5,-1.465121537204819e-8,4.4120371732378895e-4,3.897130268161372e-5,-1.4665702138134793e-8,4.4161456567829924e-4,3.919776198075389e-5,-1.4708062006301217e-8,4.41912806692747e-4,3.949272215218089e-5,-1.4767828043097781e-8,4.4208268554817335e-4,3.978761101197567e-5,-1.4829982902345276e-8,4.421409699762284e-4,4.001548958358082e-5,-1.4879284623686034e-8,4.421303237867017e-4,4.012928886396741e-5,-1.4904509091663218e-8,4.4210531633417574e-4,4.011254468451751e-5,-1.4901064005645254e-8,4.421168168722615e-4,3.997960143327207e-5,-1.487124044964496e-8,4.422004451507053e-4,3.9767094807069e-5,-1.4822485598136494e-8,4.4237183113721076e-4,3.9521669753076244e-5,-1.4764783122292205e-8,4.426279491665109e-4,3.928881642907068e-5,-1.4708204056709783e-8,4.429518454747351e-4,3.91054375635812e-5,-1.4661205248835662e-8,4.433181067887932e-4,3.899632725145631e-5,-1.4629752573422735e-8,4.436975223791884e-4,3.8973357147412855e-5,-1.4617048273316101e-8,4.4406056405082626e-4,3.903590468819179e-5,-1.4623561502714967e-8,4.4438008650014344e-4,3.91715076460056e-5,-1.4647122090138582e-8,4.446339768961001e-4,3.935646602380224e-5,-1.4682981479505956e-8,4.448083963396037e-4,3.955684978592832e-5,-1.4723927049201846e-8,4.4490177030358924e-4,3.973098128986008e-5,-1.4760714274992125e-8,4.4492878725670593e-4,3.9834759260079374e-5,-1.4783179135015065e-8,4.4492247041699046e-4,3.983068781073579e-5,-1.4782276848273152e-8,4.4493150521741963e-4,3.9699639584905065e-5,-1.4752832416571488e-8,4.4501065268293756e-4,3.945150399211428e-5,-1.4696101798232349e-8,4.452051621230111e-4,3.912878232058367e-5,-1.4620773630123115e-8,4.4553450758414917e-4,3.879851843897706e-5,-1.4541367888067542e-8,4.459831270119789e-4,3.853341144760553e-5,-1.4474199279655483e-8,4.4650334228181737e-4,3.83892962100095e-5,-1.4432428557074345e-8,4.470294963479162e-4,3.838843851633301e-5,-1.4422210720894016e-8,4.474971022466872e-4,3.8514644123259556e-5,-1.4441268698217063e-8,4.4785977033990704e-4,3.872025545847296e-5,-1.4480033042680275e-8,4.480991934681107e-4,3.8940889744311725e-5,-1.4524608121518424e-8,4.48226794522255e-4,3.911257774162124e-5,-1.4560498684405491e-8,4.482780588321118e-4,3.918669829382871e-5,-1.457607889926847e-8,4.4830195410043057e-4,3.913954024565277e-5,-1.4565007306195704e-8,4.483485381147606e-4,3.8974954360315984e-5,-1.4527125710483059e-8,4.484579671969714e-4,3.872030337677846e-5,-1.4467791545713628e-8,4.4865345969394e-4,3.841765061935548e-5,-1.4396030200337683e-8,4.489392960449042e-4,3.811327623924533e-5,-1.4322193270630174e-8,4.4930320331229367e-4,3.7848511485026534e-5,-1.4255821744391228e-8,4.497213338957374e-4,3.765366154702086e-5,-1.4204163537672068e-8,4.5016388935185643e-4,3.7545304813913294e-5,-1.4171463776027224e-8,4.5060002058532647e-4,3.752619081927828e-5,-1.415888242467012e-8,4.5100150770761724e-4,3.758652962581753e-5,-1.4164756572674547e-8,4.5134546376081325e-4,3.7705677615177184e-5,-1.4184941935731645e-8,4.5161665818218725e-4,3.785383751499737e-5,-1.4213111016563784e-8,4.518100423627256e-4,3.7994051971822126e-5,-1.4241074681839239e-8,4.5193371514478737e-4,3.8085369823532785e-5,-1.4259379743515523e-8,4.5201173652522936e-4,3.808847352382779e-5,-1.4258553184670598e-8,4.5208492668352473e-4,3.797471001575803e-5,-1.4231251193107125e-8,4.522066971808626e-4,3.77376787180318e-5,-1.4175095272905575e-8,4.5243135935849304e-4,3.7403252871591634e-5,-1.4095172040726785e-8,4.5279582657719995e-4,3.7030874343293475e-5,-1.4004497095542028e-8,4.5330172975054594e-4,3.6700112219684904e-5,-1.3921072538958264e-8,4.539088056613535e-4,3.648437266876659e-5,-1.3861984223206524e-8,4.545461169138244e-4,3.642372882885231e-5,-1.3837216692123784e-8,4.5513658700048617e-4,3.651138922317251e-5,-1.3846408129259836e-8,4.556220323441288e-4,3.66997016694241e-5,-1.3879890283223254e-8,4.559775185965056e-4,3.691969978430192e-5,-1.3922769386842146e-8,4.562122242740801e-4,3.710309854736905e-5,-1.3959682858114987e-8,4.5636084388552884e-4,3.7198647914217366e-5,-1.397848887776796e-8,4.564712492187718e-4,3.7180239677984124e-5,-1.3972296643507357e-8,4.5659257815677795e-4,3.7047788247771294e-5,-1.393998633269255e-8,4.5676585962010804e-4,3.682314037864092e-5,-1.3885605024489333e-8,4.57017899354544e-4,3.65430985371316e-5,-1.3816998895031419e-8,4.573585513254664e-4,3.625115082842816e-5,-1.3743986972765052e-8,4.5778120823241134e-4,3.5989329685002914e-5,-1.367641965358165e-8,4.582659310878471e-4,3.579152347703973e-5,-1.3622494409608255e-8,4.587842300484169e-4,3.567911872805785e-5,-1.3587614246913989e-8,4.5930436312677383e-4,3.565921697959824e-5,-1.357389940117045e-8,4.5979615512869434e-4,3.572510183973148e-5,-1.358027877351196e-8,4.6023475988321376e-4,3.585820060660067e-5,-1.360294284347647e-8,4.6060335832733674e-4,3.6030722091809204e-5,-1.3635911870639802e-8,4.60895139188042e-4,3.6208528902177354e-5,-1.3671590860836431e-8,4.6111494690815154e-4,3.635429757026502e-5,-1.3701352069797334e-8,4.612807925415506e-4,3.6431488839050474e-5,-1.3716346193401218e-8,4.614247987373746e-4,3.6410027954227026e-5,-1.3708835750741679e-8,4.6159205914533125e-4,3.62743262879114e-5,-1.3674231350069227e-8,4.6183498055835207e-4,3.6032773953528615e-5,-1.3613573886357206e-8,4.6220096368370197e-4,3.572504366766511e-5,-1.3535497406452498e-8,4.627142460022724e-4,3.5420516607509466e-5,-1.345601089443765e-8,4.633589570077975e-4,3.520158587923049e-5,-1.339462640412944e-8,4.640754895656249e-4,3.5133781640715624e-5,-1.336732887285183e-8,4.6477797333421513e-4,3.523710146370312e-5,-1.337976511947418e-8,4.653863109243403e-4,3.5476761963375476e-5,-1.3424888861955243e-8,4.658546211216421e-4,3.577942568893229e-5,-1.3486488367131025e-8,4.661813358342299e-4,3.6063351831523195e-5,-1.3545965988268696e-8,4.664004611033069e-4,3.626473218857858e-5,-1.3588320959816941e-8,4.665639958352068e-4,3.6350407228647365e-5,-1.360513303776225e-8,4.6672541684679767e-4,3.631790496298228e-5,-1.3594788762173888e-8,4.6692865416770923e-4,3.618845377576418e-5,-1.3561187150119446e-8,4.672026368560225e-4,3.5997925297469526e-5,-1.3511940939945172e-8,4.6755982834898976e-4,3.5788386314177225e-5,-1.3456575605413407e-8,4.67997179408685e-4,3.5601078032541834e-5,-1.3404875559273569e-8,4.684985923176623e-4,3.5470812389852354e-5,-1.3365423942936016e-8,4.6903849108559164e-4,3.542180047068913e-5,-1.3344439413006975e-8,4.695861596821659e-4,3.546508508953634e-5,-1.3345040436527447e-8,4.7011041192164126e-4,3.559772500847251e-5,-1.3367006714160734e-8,4.705840542170844e-4,3.580375537789526e-5,-1.3407016011675667e-8,4.7098759753275935e-4,3.6056678871433476e-5,-1.3459233547938723e-8,4.7131190949890184e-4,3.632298007574168e-5,-1.3516078049011552e-8,4.71559790690804e-4,3.6566204934469644e-5,-1.3569053058169974e-8,4.717465735754899e-4,3.6751383530202755E-05,-1.3609647477316639e-8,4.718998124130554e-4,3.684981905601746e-5,-1.3630405599256602e-8,4.7205781579265745e-4,3.684452081682734e-5,-1.3626310087204059e-8,4.7226605766033966e-4,3.673637051258554e-5,-1.3596506069195115e-8,4.725699924678846e-4,3.654994787786842e-5,-1.3546025765795578e-8,4.730033180778431e-4,3.6336041112372295e-5,-1.3486667699711668e-8,4.7357300089362716e-4,3.616604739808837e-5,-1.3435763281303896e-8,4.74246972161772e-4,3.611397064008277e-5,-1.3411769997669891e-8,4.7495468950762464e-4,3.6228226616847743e-5,-1.342728801093758e-8,4.756075265498231e-4,3.6506596772157785e-5,-1.3482806498111208e-8,4.761324789643435e-4,3.68921215314555e-5,-1.3565521966204982e-8,4.76500027685036e-4,3.729587464380291e-5,-1.3654665288008376e-8,4.7672987690625123e-4,3.763293743393644e-5,-1.3730017018062513e-8,4.768749775046739e-4,3.7850136442992455e-5,-1.3778472109271951e-8,4.7699763159739244e-4,3.7934345672070496e-5,-1.379606231317544e-8,4.7715085690734735e-4,3.790502947009683e-5,-1.3786386207802384e-8,4.7736947329048336e-4,3.780076670277705e-5,-1.3757715344810296e-8,4.7766881383462853e-4,3.7666865402247315e-5,-1.3720316041747617e-8,4.780473761409701e-4,3.7546640888132714e-5,-1.368447808114495e-8,4.7849069816615584e-4,3.747611264933771e-5,-1.3659170952435136e-8,4.789752246660876e-4,3.748091718942398e-5,-1.3651117518452754e-8,4.7947201707088224e-4,3.757448492495361e-5,-1.3664168314897276e-8,4.799505077512641e-4,3.775714321569889e-5,-1.3698971973992664e-8,4.803824002412184e-4,3.801622409426613e-5,-1.3752971782310215e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json new file mode 100644 index 0000000..765f637 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":11000,"numberOfSamples":1000,"samples":[4.807455898115237e-4,3.832746570992544e-5,-1.3820749559112586e-8,4.810276804026849e-4,3.8657939483712816e-5,-1.3894708855793208e-8,4.8122851144731977e-4,3.897037866353488e-5,-1.3966029941865335e-8,4.8136122169643126e-4,3.922846753666153e-5,-1.4025813189547578e-8,4.8145158055841605e-4,3.94025277918899e-5,-1.406634943105251e-8,4.815355041583503e-4,3.9474978459853574e-5,-1.408245537787128e-8,4.8165478219839815e-4,3.9445013590506954e-5,-1.4072791780691197e-8,4.8185089652025466e-4,3.933196966399209e-5,-1.4041008026015441e-8,4.8215671196515623e-4,3.9176311765079673e-5,-1.3996340784096513e-8,4.825864763543066e-4,3.9036228711670225e-5,-1.3953028790341758e-8,4.8312623641597524e-4,3.897747212754661e-5,-1.3927849119148707e-8,4.837291888970253e-4,3.9055456474574426e-5,-1.3935510387344442e-8,4.843221611312391e-4,3.929313827217236e-5,-1.3982860442730526e-8,4.848265247112546e-4,3.966499254457847e-5,-1.4064616609993489e-8,4.8518733416020557e-4,4.009980545620315e-5,-1.4163881241573302e-8,4.853950931909375e-4,4.050581912340954e-5,-1.425830655995102e-8,4.854866151667581e-4,4.080574058134305e-5,-1.4328715323638037e-8,4.85525688196407e-4,4.096178493042818e-5,-1.4365239392562207e-8,4.855772001398806e-4,4.0979862819758134e-5,-1.4368394366073396e-8,4.856885804979649e-4,4.089713112766541e-5,-1.4346234987150922e-8,4.8588326125485515e-4,4.076435074414623e-5,-1.4310345248447114e-8,4.8616296080937287e-4,4.063161994000118e-5,-1.4272594843316575e-8,4.865136173432042e-4,4.054008405187016e-5,-1.4243172616081504e-8,4.8691142789272524e-4,4.051847158520118e-5,-1.4229620182921136e-8,4.8732762934217247e-4,4.0582299326150006e-5,-1.4236433463507242e-8,4.8773212709177916e-4,4.07341134689005e-5,-1.4264941962397524e-8,4.880965967034294e-4,4.096407600183585e-5,-1.4313353517338398e-8,4.88397573177068e-4,4.1250927252936434e-5,-1.4376959666340294e-8,4.886197129387349e-4,4.1563798332032156e-5,-1.4448564853229553e-8,4.887589435265532e-4,4.1865488207741994e-5,-1.451924254306548e-8,4.888247307700336e-4,4.211748974787741e-5,-1.4579476522027053e-8,4.888405100767859e-4,4.228641181812268e-5,-1.462064263346648e-8,4.888415356313333e-4,4.235083017747227e-5,-1.463666315611464e-8,4.888699069788087e-4,4.2307124574301165e-5,-1.462554429370797e-8,4.889672434197426e-4,4.2172729191325406e-5,-1.459042628142175e-8,4.89166100944331e-4,4.198561886052198e-5,-1.4539802909504917e-8,4.894815424795779e-4,4.179941029790374e-5,-1.4486638095790344e-8,4.899045597653066e-4,4.16738571918689e-5,-1.4446179472955758e-8,4.903995543457572e-4,4.1661226263416274e-5,-1.4432491631334258e-8,4.909084078410756e-4,4.179064877681403e-5,-1.4454232713012669e-8,4.913629055658968e-4,4.205495921373214e-5,-1.4510927067288458e-8,4.917043498415898e-4,4.2406630471518614e-5,-1.4591584452824552e-8,4.919041260653661e-4,4.2768455240018365e-5,-1.4677226547185713e-8,4.91975143734432e-4,4.30581023135401e-5,-1.4747087713819914e-8,4.919667281492841e-4,4.321634341236769e-5,-1.4785795141156964e-8,4.919450134806429e-4,4.322488299346272e-5,-1.4787918091785175e-8,4.919696544610528e-4,4.310619995991277e-5,-1.4758043194016052e-8,4.920780610928328e-4,4.2909134196637064e-5,-1.4707389424281414e-8,4.922813225790399e-4,4.269033595193827e-5,-1.464944226297227e-8,4.925688425220637e-4,4.249988199139718e-5,-1.4596537842685818e-8,4.92916302217559e-4,4.2373819969799324e-5,-1.4557994767186664e-8,4.932930424762773e-4,4.233227598512297e-5,-1.4539483417289066e-8,4.936673798735039e-4,4.2380499169877454e-5,-1.4543082916464466e-8,4.940100632622315e-4,4.251078828128216e-5,-1.4567604259159937e-8,4.942967406427109e-4,4.27043504794895e-5,-1.4608973846901326e-8,4.945102476677884e-4,4.2933063498730834e-5,-1.4660638792530654e-8,4.946431248320447e-4,4.316170803770033e-5,-1.4714088579726986e-8,4.947001929114915e-4,4.335150966562856e-5,-1.4759675319273507e-8,4.947003518474758e-4,4.3465620460088586e-5,-1.4787908056141978e-8,4.946762700491294e-4,4.3476391218321277e-5,-1.4791230435817252e-8,4.946706632709735e-4,4.337312853241991e-5,-1.4766006598097854e-8,4.947286919062398e-4,4.316792790944356e-5,-1.4714140745679074e-8,4.948875598480194e-4,4.289680338026428e-5,-1.46436248866499e-8,4.951660198459949e-4,4.261431606960693e-5,-1.4567507684274658e-8,4.955572023782361e-4,4.238205390573295e-5,-1.4501266960766878e-8,4.960275056948562e-4,4.225356593077395e-5,-1.4459112508157139e-8,4.965226079965434e-4,4.225970770296015e-5,-1.445012992875491e-8,4.969797348841862e-4,4.239855798309805e-5,-1.4475344797421208e-8,4.973435745501257e-4,4.263333074298414e-5,-1.452672530286383e-8,4.975817616767804e-4,4.290011641573763e-5,-1.4588789841322534e-8,4.976949342797306e-4,4.31246291984686e-5,-1.4642736998874316e-8,4.977169933512843e-4,4.32435191844831e-5,-1.4671952404593025e-8,4.977043744489744e-4,4.3222752491909916e-5,-1.4666876259907704e-8,4.977180995272924e-4,4.30657402384419e-5,-1.4627283126456636e-8,4.978060190996614e-4,4.280844975449757e-5,-1.4561258969220208e-8,4.979920722311104e-4,4.2505071693506214e-5,-1.4481783123106343e-8,4.982749931993637e-4,4.221149461163865e-5,-1.4402704387878677e-8,4.986341351162414e-4,4.1972812399652274e-5,-1.4335614319282961e-8,4.99038023174974e-4,4.181724732728816e-5,-1.4288203371298527e-8,4.994521132236064e-4,4.1755451375511826e-5,-1.4263899128169458e-8,4.998442497099592e-4,4.1782774302784495e-5,-1.4262268021020732e-8,5.001879318353291e-4,4.1882399162322495e-5,-1.4279703860248156e-8,5.004642516735846e-4,4.202823461485221e-5,-1.4310113798395751e-8,5.006634317541689e-4,4.218742398465999e-5,-1.4345522650409268e-8,5.007865154243883e-4,4.232301933686223e-5,-1.4376697915433863e-8,5.008471450808845e-4,4.239771827120947e-5,-1.4394026271468186e-8,5.008726192415792e-4,4.237947661390274e-5,-1.4388889379628621e-8,5.009027064025104e-4,4.224906691188224e-5,-1.4355605708386248e-8,5.009844664141034e-4,4.200814399437556e-5,-1.4293595372097094e-8,5.011622958425812e-4,4.168457799010023e-5,-1.4208933086185455e-8,5.014648490094809e-4,4.133098997158663e-5,-1.4114222164068199e-8,5.018933871908035e-4,4.1014046129932506e-5,-1.4026120755346876e-8,5.024172779489319e-4,4.079629120466331e-5,-1.3960894019653134e-8,5.029800978344093e-4,4.0716851663191706e-5,-1.3929502673170868e-8,5.035149205751237e-4,4.0778803174321974e-5,-1.3934148788121047e-8,5.039631026052139e-4,4.0948067350335475e-5,-1.3967574412809247e-8,5.042898951464934e-4,4.116358529728348e-5,-1.4015214047407058e-8,5.044923433820881e-4,4.1354546447450864e-5,-1.405930760929713e-8,5.045980853346142e-4,4.145904379395495e-5,-1.4083628433054094e-8,5.046562864241187e-4,4.143903113694813e-5,-1.4077491031220824e-8,5.047237703547672e-4,4.128796116298141e-5,-1.4038013428869964e-8,5.048504577142612e-4,4.1029648300892024e-5,-1.3970152894372228e-8,5.050682042868694e-4,4.070946922079784e-5,-1.3884718542673423e-8,5.053857892959258e-4,4.038129871002777e-5,-1.3795175637434057e-8,5.057904773855169e-4,4.0094587167200846e-5,-1.3714342555419928e-8,5.062542972907671e-4,3.988514116215506e-5,-1.3651908298048012e-8,5.067420758582822e-4,3.9771018930213065e-5,-1.36131932106548e-8,5.072186700798977e-4,3.9752847710952766e-5,-1.3599056334601855e-8,5.076541049257842e-4,3.981679039448647e-5,-1.3606552572220539e-8,5.080265636895346e-4,3.993839829792082e-5,-1.3629887915207912e-8,5.083239056768367e-4,4.008625429723009e-5,-1.366134539027628e-8,5.085445405312649e-4,4.02251540015048e-5,-1.3692068130210929e-8,5.086982215653529e-4,4.031923748367069e-5,-1.3712790472901225e-8,5.088067942896942e-4,4.033585746282454e-5,-1.3714758380114217e-8,5.089042016332715e-4,4.0250984480183826e-5,-1.369110873241738e-8,5.090342370463796e-4,4.005630209267127e-5,-1.36387919547938e-8,5.09244162874289e-4,3.976656292219734e-5,-1.3560660497017656e-8,5.095732393487734e-4,3.942360984383623e-5,-1.3466737784983145e-8,5.100381218559963e-4,3.9092145563312785e-5,-1.3373334502326575e-8,5.106211663506831e-4,3.884421714299498e-5,-1.3299185546533904e-8,5.112695708256073e-4,3.873558642398053e-5,-1.325938777322804e-8,5.119093049859852e-4,3.878426446529394e-5,-1.3259745614206067e-8,5.124690770718819e-4,3.896273593345075e-5,-1.3294485083970076e-8,5.129030399538616e-4,3.920805997219822e-5,-1.3348486880023718e-8,5.13202292093832e-4,3.944384781038976e-5,-1.3402621757432825e-8,5.133926118135372e-4,3.9603311868793384e-5,-1.3439524368879208e-8,5.135225876503645e-4,3.964513077729718e-5,-1.344773648237942e-8,5.136484244188965e-4,3.955939833262208e-5,-1.3423498173910979e-8,5.138202846515992e-4,3.936503101320661e-5,-1.337045078206997e-8,5.140727251366115e-4,3.9101620258126494e-5,-1.3297891578819023e-8,5.144200439889327e-4,3.8818723273896924e-5,-1.3218230049065295e-8,5.148563248939854e-4,3.8565076244178615e-5,-1.31442269252279e-8,5.153592942705727e-4,3.8379720577811564e-5,-1.3086552229207539e-8,5.158965586590853e-4,3.8286402743178446e-5,-1.3052102047767048e-8,5.164325300028227e-4,3.829166482457637e-5,-1.3043289492522785e-8,5.169345624266961e-4,3.838611140678518e-5,-1.3058250794240458e-8,5.173773998025525e-4,3.854777091398222e-5,-1.3091694599441699e-8,5.177457469094699e-4,3.8746318140652295E-05,-1.3136024508001314e-8,5.180353753683765e-4,3.894721737733719e-5,-1.3182422098429487e-8,5.182533801875123e-4,3.9115464526579055e-5,-1.322176802538456e-8,5.184180207872244e-4,3.9219155018714586e-5,-1.3245479826195314e-8,5.185582174206982e-4,3.923339887816621e-5,-1.3246473160946539e-8,5.187121920390923e-4,3.9145162676454723e-5,-1.3220474590964729e-8,0.00051892397371530155,3.895909776742693e-5,-1.316773040159988e-8,5.192361363727685e-4,3.8702959631497384e-5,-1.3094695644609137e-8,5.19678041196177e-4,3.8429183553321686e-5,-1.3014701920521112e-8,5.20251698135249e-4,3.820781513346968e-5,-1.2946243125940887e-8,5.209217831712024e-4,3.810779889170091e-5,-1.2908049988956758e-8,5.216188239536118e-4,3.817071047034634e-5,-1.2912046211167408e-8,5.222596846655533e-4,3.8389929217076366e-5,-1.295764933741635e-8,5.227776981227885e-4,3.870942493105218e-5,-1.3031193682067312e-8,5.231462221446176e-4,3.90449333361414e-5,-1.3111251595486714e-8,5.233834624169179e-4,3.9315346546736246e-5,-1.3176687479802485e-8,5.235394281321812e-4,3.946752696132619e-5,-1.3213083897284422e-8,5.236754233317036e-4,3.9485713744511626e-5,-1.3215295714260378e-8,5.238462568216775e-4,3.9387314888452363e-5,-1.3186630329662888e-8,5.240896667697123e-4,3.921173128856953e-5,-1.3136310014778118e-8,5.244226644038686e-4,3.900801174331826e-5,-1.3076572242619164e-8,5.248426426550115e-4,3.882439799199982e-5,-1.3020069826079723e-8,5.253311937372029e-4,3.870065090327242e-5,-1.2977767650741354e-8,5.258593061790778e-4,3.8663123547147846e-5,-1.2957402470289928e-8,5.263931056407179e-4,3.8722437005912813e-5,-1.2962597830659435e-8,5.268994400545242e-4,3.887355383309786e-5,-1.2992693609541672e-8,5.273506944811689e-4,3.909786013135494e-5,-1.304323238147115e-8,5.277283618928682e-4,3.9366737045691754e-5,-1.310693161469982e-8,5.280251104455353e-4,3.964596224958332e-5,-1.3174889451303355e-8,5.282454335082373e-4,3.990022972843365e-5,-1.3237768428264953e-8,5.284052231946588e-4,4.009736888639202e-5,-1.3286836033079106e-8,5.285305494829884e-4,4.021225325537939e-5,-1.3314912562979519e-8,5.286557060394544e-4,4.0230579521206196e-5,-1.3317363974876683e-8,5.288202403339737e-4,4.015271335318547e-5,-1.3293259523465599e-8,5.290641459351538e-4,3.999743645858218e-5,-1.3246644881952389e-8,5.29420183065172e-4,3.980429049478516e-5,-1.3187490243689071e-8,5.299032094367221e-4,3.963165594186321e-5,-1.313141009986588e-8,5.304988417193463e-4,3.9546878333224285e-5,-1.3097054263167734e-8,5.311574317731786e-4,3.96065921173356e-5,-1.3100650126240523e-8,5.318014578119245e-4,3.98319165292681e-5,-1.3149038022273758e-8,5.32349611324718e-4,4.019180005671327e-5,-1.3234910936428494e-8,5.327485204893838e-4,4.0608738174731215e-5,-1.3338177317094923e-8,5.32993774836213e-4,4.098800442554419e-5,-1.3433731281722263e-8,5.331274981533502e-4,4.125409164773492e-5,-1.3501160283562443e-8,5.332164335123858e-4,4.137379163363762e-5,-1.353087213849061e-8,5.333259193608972e-4,4.13576666322837e-5,-1.3524569124303872e-8,5.335024650995162e-4,4.124644008992089e-5,-1.3491904463169542e-8,5.337679129261047e-4,4.109355822924989e-5,-1.3446225415098136e-8,5.341216559001369e-4,4.0951180469202836e-5,-1.340113134321436e-8,5.345463734211426e-4,4.0861572281668134e-5,-1.3368231159593744e-8,5.350143019353962e-4,4.0852955656746325e-5,-1.3355852072504397e-8,5.354928423825327e-4,4.093817556745151e-5,-1.3368381791204466e-8,5.359493976739728e-4,4.111506478866112e-5,-1.3406093750610092e-8,5.363555591240247e-4,4.136805710751307e-5,-1.3465430533373401e-8,5.366906062535734e-4,4.167087291184944e-5,-1.353970510439085e-8,5.369441549435876e-4,4.199017748541348e-5,-1.3620131233801054e-8,5.371176836764395e-4,4.229004758300979e-5,-1.3697055796399448e-8,5.372246939412618e-4,4.2536815840649555e-5,-1.376122922588961e-8,5.372894831724115e-4,4.2703741062777625e-5,-1.3804984921125316e-8,5.373446669618185e-4,4.277512234113474e-5,-1.3823300988072162e-8,0.00053742757544824975,4.27496117961429e-5,-1.3814764582700658e-8,5.375755603610683e-4,4.264248462223457e-5,-1.3782413644499372e-8,5.378200593904353e-4,4.2486472593883745e-5,-1.373430126808111e-8,5.381792508290428e-4,4.233015478549633e-5,-1.368338167500512e-8,5.386499283189473e-4,4.223204705859813e-5,-1.3646059069466792e-8,5.392010226639216e-4,4.224848840771485e-5,-1.3638780125339982e-8,5.397734225659609e-4,4.2415447202705524e-5,-1.3672723821927818e-8,5.402914650870005e-4,4.272937436938092e-5,-1.3748141826012162e-8,5.406870951769552e-4,4.3138228021123006e-5,-1.3851605137995859e-8,5.409276624223462e-4,4.355360016244392e-5,-1.3959259082476329e-8,5.410308634400444e-4,4.388299832113226e-5,-1.404572807505199e-8,5.410560312127462e-4,4.406544519190341e-5,-1.409387560046213e-8,5.410774246421454e-4,4.4090008179269903e-5,-1.4099829500317099e-8,5.411566007764416e-4,4.399025355105983e-5,-1.4071552354515442e-8,5.413273035270495e-4,4.3823916588713976e-5,-1.4023612135435341e-8,5.415945168970027e-4,4.365179453199496e-5,-1.3971835246327046e-8,5.41941678191083e-4,4.3523829968479546e-5,-1.3929763987744986e-8,5.423397870270695e-4,4.3473105445618066e-5,-1.3906988846966135e-8,5.427550475932729e-4,4.3515132910834864e-5,-1.3908697960636151e-8,5.431542404764803e-4,4.364960885200329e-5,-1.393582992804166e-8,5.435083954292767e-4,4.386290135691708e-5,-1.3985503452994463e-8,5.437955680521673e-4,4.413075019834189e-5,-1.4051648813651171e-8,5.440031193610353e-4,4.442130458093591e-5,-1.4125847171957948e-8,5.441294904295869e-4,4.4698775986850106e-5,-1.4198377383350764e-8,5.441851609821107e-4,4.4927902109817414e-5,-1.4259451932272639e-8,5.44192274379237e-4,4.5079042801761985e-5,-1.4300570677415424e-8,5.441825131835359e-4,4.513324877772769e-5,-1.4315854380231034e-8,5.441931678314615e-4,4.508643514283918e-5,-1.4303200161377657e-8,5.442616930190452e-4,4.495182030705989e-5,-1.4265097005812744e-8,5.444193252662113e-4,4.475992062198913e-5,-1.420891194830896e-8,5.446845113517835e-4,4.455563870804244e-5,-1.4146439051286658e-8,5.450570012046475e-4,4.439214140356481e-5,-1.4092482439868092e-8,5.455138259491807e-4,4.432123995689494e-5,-1.4062247519459378e-8,5.460091567979519e-4,4.4380529159655735e-5,-1.4067548181360422e-8,5.464806332929459e-4,4.457933352573298e-5,-1.411246534473196e-8,5.468639351101996e-4,4.488842557502628e-5,-1.41900303462031e-8,5.471137114483806e-4,4.5240836901430264e-5,-1.4282186009332701e-8,5.472228700801882e-4,4.5549104705021665e-5,-1.436459415403402e-8,5.472286408053625e-4,4.573542557700775e-5,-1.4415174862346914e-8,5.471991045330296e-4,4.576046398285103e-5,-1.4422216878027767e-8,5.47206448294467e-4,4.56349055279638e-5,-1.4387623676551349e-8,5.473019740297997e-4,4.5409058585348715e-5,-1.4324164571538933e-8,5.475045890269017e-4,4.5149831126079944e-5,-1.4249406835206891e-8,5.47803705825606e-4,4.4918876045973197e-5,-1.4180002072172085e-8,5.481698176479473e-4,4.4759851057189094e-5,-1.412830013525889e-8,5.48565692247331e-4,4.469494792163449e-5,-1.410125538583461e-8,5.489546078069922e-4,4.4727065395722936e-5,-1.4100722236229494e-8,5.493051789854964e-4,4.484400912140682e-5,-1.4124308082445898e-8,5.495938405083384e-4,4.5022613923846395e-5,-1.4166321890606745e-8,5.498062624304646e-4,4.523222436300298e-5,-1.4218687392005276e-8,5.499384595504489e-4,4.54378852388539e-5,-1.4271863647322725e-8,5.49997724894559e-4,4.560386201037831e-5,-1.4315865288538859e-8,5.500030030438457e-4,4.5697985530979016e-5,-1.434147018981161e-8,5.499839508065228e-4,4.5696843463098964e-5,-1.4341625669559141e-8,5.499779032270899e-4,4.559110119398946e-5,-1.4312908167490931e-8,5.500244181110129e-4,4.5389582007094315e-5,-1.4256724128095877e-8,5.50157883005538e-4,4.512048381923619e-5,-1.417984329569152e-8,5.503995686945172e-4,4.482844257285975e-5,-1.4093882581779136e-8,5.507511242321261e-4,4.456714389146746e-5,-1.4013561269086788e-8,5.511914791808575e-4,4.438847474538031e-5,-1.3953862718354635e-8,5.516785262955729e-4,4.43302010252111e-5,-1.3926532510634918e-8,5.521561635635225e-4,4.4404755979930705e-5,-1.3936611787065186e-8,5.525663239678071e-4,4.459220322119048e-5,-1.3979975801327925e-8,5.528642063231052e-4,4.484065587117192e-5,-1.4043007349154969e-8,5.530328973052125e-4,4.507661529127626e-5,-1.4105288308440919e-8,5.530916519570143e-4,4.522480506594574e-5,-1.4145236907282978e-8,5.530923528858961e-4,4.523202408225343e-5,-1.4147030087645297e-8,5.531031506537776e-4,4.5085084291692684e-5,-1.4105860437065999e-8,5.531855430718504e-4,4.4813819040833696e-5,-1.4028958709191986e-8,5.533755526889687e-4,4.447784879142051e-5,-1.3932084645392354e-8,5.536768815553462e-4,4.41448232435347e-5,-1.3833668292310375e-8,5.540662856310166e-4,4.387093911013423e-5,-1.3749517436350942e-8,5.545054107827476e-4,4.369036706870036e-5,-1.3689826206305373e-8,5.549526056740539e-4,4.3613801028485625e-5,-1.3658542876311258e-8,5.553711420623051e-4,4.363257224331595e-5,-1.3654223719707622e-8,5.55733434845886e-4,4.3724503286497815e-5,-1.3671440617076656e-8,5.560225166865299e-4,4.385919757848827e-5,-1.3702164569045507e-8,5.56232263778228e-4,4.400211587684637e-5,-1.3736921152732457e-8,5.563673733728169e-4,4.4117846392702796e-5,-1.376575922796316e-8,5.564433941300915e-4,4.4173372568585065e-5,-1.3779194966470485e-8,5.564864419333089e-4,4.414206095567587e-5,-1.3769317275568825e-8,5.565317072407061e-4,4.4008603643539826E-05,-1.373115531210439e-8,5.566196665612034e-4,4.377426004116058e-5,-1.3664180386757936e-8,5.567893255742785e-4,4.3460653879901505e-5,-1.3573495648336821e-8,5.5706903259323e-4,4.3109638309396154e-5,-1.3470018373719109e-8,5.574671621600434e-4,4.277713905643178e-5,-1.3369019224232388e-8,5.579663031544923e-4,4.25209069743737e-5,-1.3286905991693288e-8,5.585242506155931e-4,4.2385091814629774e-5,-1.323695369887385e-8,5.590827837639093e-4,4.238670958930531e-5,-1.322532616995296e-8,5.595820943030839e-4,4.2508928121728134e-5,-1.324879527303495e-8,5.599765436803205e-4,4.270375260425213e-5,-1.3295025360336303e-8,5.602470647653046e-4,4.290357624198227e-5,-1.3345467218010926e-8,5.604066433327727e-4,4.3038521618008536e-5,-1.3380135565607916e-8,5.604971361354452e-4,4.305496671614097e-5,-1.3382982052173816e-8,5.605778644400599e-4,4.293002467591174e-5,-1.3346289025681776e-8,5.607089623263255e-4,4.267729978794635e-5,-1.3272636519098559e-8,5.609347399582315e-4,4.234165410834814e-5,-1.3173718674744843e-8,5.61272824224999e-4,4.1984822487049506e-5,-1.3066489427049024e-8,5.617125088503604e-4,4.1667542738988164e-5,-1.2968201743518012e-8,5.622215885905281e-4,4.1434866394617e-5,-1.289219032748799e-8,5.627575830200749e-4,4.130882130901546e-5,-1.2845587660872705e-8,5.632786025023382e-4,4.1288594336048484e-5,-1.2829102735199409e-8,5.637508743402848e-4,4.135555763250854e-5,-1.2838217765699319e-8,5.641523616550949e-4,4.147987966628914e-5,-1.2864954028178306e-8,5.644734987008431e-4,4.1626480056051095e-5,-1.2899567931198906e-8,5.647164882240774e-4,4.1759528984558676e-5,-1.2931887162585448e-8,5.648942535231952e-4,4.184578296212132e-5,-1.2952297818560158e-8,5.650294889116143e-4,4.1857547900959665e-5,-1.2952577895423737e-8,5.651535715361088e-4,4.177605896823371e-5,-1.2926828568155383e-8,5.653044894483615e-4,4.159567182824132e-5,-1.287267633441649e-8,5.655225692094629e-4,4.132839759346974e-5,-1.279266224815386e-8,5.658430328778544e-4,4.100697766475647e-5,-1.2695307297663935e-8,5.662857653330005e-4,4.068344030322492e-5,-1.2594934042639526e-8,5.668451659124272e-4,4.042019197207262e-5,-1.2509327194232984e-8,5.674853336557398e-4,4.027347907363591e-5,-1.2455107328985577e-8,5.681455713211361e-4,4.027408208489247e-5,-1.244214622307206e-8,5.68756746685192e-4,4.0414004798879e-5,-1.2469513131187434e-8,5.692626340933667e-4,4.0646580039138516e-5,-1.2525133623159566e-8,5.696369955166504e-4,4.090066807453131e-5,-1.2589478046435055e-8,5.698896665275624e-4,4.110245921092196e-5,-1.2641551835441664e-8,5.700608716068607e-4,4.1195953729986446e-5,-1.2664715990718236e-8,5.702077505850598e-4,4.1155798139361454e-5,-1.2650540717421748e-8,5.703884759901265e-4,4.099042424392756e-5,-1.2600051493450478e-8,5.706483903579017e-4,4.073662588412746e-5,-1.2522583891047876e-8,5.710109691405875e-4,4.0448332338844876e-5,-1.243290518949643e-8,5.714748841309391e-4,4.0182934684654553E-05,-1.2347452802728689e-8,5.720170435890389e-4,3.9988544477136714e-5,-1.2280615128135358e-8,5.726001321744273e-4,3.9895057969472874e-5,-1.2241921421025485e-8,5.731821206679281e-4,3.991064069654339e-5,-1.2234717623019245e-8,5.737250198595423e-4,4.002343402058786e-5,-1.2256397133360156e-8,5.742009861844149e-4,4.0206784374766535e-5,-1.2299779958393722e-8,5.745952088943357e-4,4.042579305071043e-5,-1.2355009254206567e-8,5.749061274942017e-4,4.064339540438695e-5,-1.2411383146639144e-8,5.751440773201222e-4,4.0825069665894794e-5,-1.2458778726029885e-8,5.753293799587323e-4,4.094221059405223e-5,-1.2488629625521792e-8,5.754904006567578e-4,4.097477176506438e-5,-1.2494646793562146e-8,5.756615125629631e-4,4.0913864151746437e-5,-1.2473547362790684e-8,5.758803459554417e-4,4.076472695839921e-5,-1.24259847650868e-8,5.761832436211499e-4,4.0549772255380785e-5,-1.2357617600292305e-8,5.765979379808243e-4,4.0310124351701156e-5,-1.2279811549458918e-8,5.771336876089873e-4,4.010269549721812e-5,-1.2209012413795871e-8,5.777716895829274e-4,3.9989598090760646e-5,-1.2163757626176808e-8,5.784616465902294e-4,4.001937776225071e-5,-1.2159125570823381e-8,5.791308482835355e-4,4.020580099469462e-5,-1.2200322952745242e-8,5.797065295022585e-4,4.0515899636114696e-5,-1.2278907274980914e-8,5.80142457888133e-4,4.087731150446172e-5,-1.2374661952472232e-8,5.804354401798264e-4,4.120363917341638e-5,-1.2462792256088949e-8,5.806232139856671e-4,4.142456024104346e-5,-1.2522577976320966e-8,5.807671988462954e-4,4.1505812543823224e-5,-1.2543184545504214e-8,5.809309310098887e-4,4.145299058481706e-5,-1.2524943479233836e-8,5.811633911987712e-4,4.130273058000135e-5,-1.2477155055317291e-8,5.814906054594975e-4,4.110843349549538e-5,-1.241437134424403e-8,5.819145513730104e-4,4.092617541810449e-5,-1.2352610977888855e-8,5.824169208822125e-4,4.0803658015597504e-5,-1.2306198503680667e-8,5.829655041898003e-4,4.077300848955851e-5,-1.2285457641107754e-8,5.835216304790936e-4,4.08473506951388e-5,-1.2295353076190144e-8,5.840475044047213e-4,4.1020878040647856e-5,-1.2335168157344423e-8,5.845123946407954e-4,4.1271912795883656e-5,-1.2399194688289209e-8,5.848968676341912e-4,4.1568009920163966e-5,-1.247819580484653e-8,5.851947152164219e-4,4.1871931312817365e-5,-1.2561243079423654e-8,5.854127287371877e-4,4.214737362730478e-5,-1.2637501168654626e-8,5.855689082537816e-4,4.236363657066199e-5,-1.2697641820982583e-8,5.856898580934266e-4,4.2498978178316354e-5,-1.2734800220127118e-8,5.85807889067023e-4,4.254292268264029e-5,-1.2745207957826337e-8,5.859579513795578e-4,4.249795347224145e-5,-1.272871639020561e-8,5.861741086786202e-4,4.2380895742717424e-5,-1.2689360718495551e-8,5.8648484953241e-4,4.2223796026970555e-5,-1.2635890084310931e-8,5.869065735812319e-4,4.2073073991807874e-5,-1.2581801894459312e-8,5.874356319421588e-4,4.19846475120227e-5,-1.2544061137121026e-8,5.880413756125081e-4,4.201259995003142e-5,-1.2539678227518325e-8,5.886653049404993e-4,4.219108683589354e-5,-1.2580052638216501e-8,5.8923238679551e-4,4.2514839582835756e-5,-1.266480189970253e-8,5.896756386652956e-4,4.2930283800824865e-5,-1.2778839288959433e-8,5.89964101552167e-4,4.334851356362142e-5,-1.2896139522771572e-8,5.901171113360668e-4,4.367814905014522e-5,-1.298951948589008e-8,5.901947880698806e-4,4.38602737483596e-5,-1.3040992057450742e-8,5.902714285460607e-4,4.3885736496831144e-5,-1.3046861211874255e-8,5.904086373518427e-4,4.3789236335983746e-5,-1.3016096632518927e-8,5.90640488345573e-4,4.362965960038413e-5,-1.2964884842237333e-8,5.90971946441086e-4,4.34695603945582e-5,-1.2911008855333938e-8,5.913852195337234e-4,4.336092270372908e-5,-1.2869904121306538e-8,5.918485774305888e-4,4.333812126088688e-5,-1.285252461742886e-8,5.923245446952727e-4,4.3416150897318016e-5,-1.2864501648532461e-8,5.927764593066211e-4,4.359190961413261e-5,-1.2906114467297666e-8,5.931734732856898e-4,4.384714236114294e-5,-1.2972841846778543e-8,5.934942150203255e-4,4.4152466088083324e-5,-1.3056421398296158e-8,5.937291030815587e-4,4.447215885443439e-5,-1.3146311817982143e-8,5.938811933955622e-4,4.47693426906656e-5,-1.3231356330999967e-8,5.93965485886057e-4,4.5011077674093984e-5,-1.3301399351245954e-8,5.94006799600864e-4,4.5172770496475155e-5,-1.334862131885749e-8,5.940365840398179e-4,4.5241413682133494e-5,-1.336846818500244e-8,5.940891110207756e-4,4.521750624615486e-5,-1.3360212923084611e-8,5.941973595900601e-4,4.511571456359875e-5,-1.3327250246980502e-8,5.943887128092454e-4,4.4964352725929755e-5,-1.3277177720368145e-8,5.946803298205737e-4,4.480359021479988e-5,-1.3221572693952441E-08,5.950740552025116e-4,4.4681698944798734e-5,-1.3175121289205661e-8,5.955515209880322e-4,4.4648007751150914e-5,-1.3153551831570361e-8,5.960715426732222e-4,4.474149532569575e-5,-1.3169977028198143e-8,5.965733804112413e-4,4.4975795704802126e-5,-1.3229934760324216e-8,5.969897334847129e-4,4.5325368620618036e-5,-1.3326761651752678e-8,5.972695820723137e-4,4.572244176421522e-5,-1.3440440521292401e-8,5.974020923934746e-4,4.607385900358259e-5,-1.3542760448690568e-8,5.974260041454101e-4,4.6295468638069834e-5,-1.3607887991505155e-8,5.974149745012774e-4,4.63461491160932e-5,-1.3622690856111841e-8,5.974464645346873e-4,4.62408255489987e-5,-1.3590608456208522e-8,5.975733330563519e-4,4.603711609863486e-5,-1.3527729382284185e-8,5.978120949073726e-4,4.5808229996933905e-5,-1.3455010772294891e-8,5.981476506938362e-4,4.561887790575258e-5,-1.3391473757723922e-8,5.985457456463102e-4,4.551241536514983e-5,-1.3350535217826406e-8,5.989652880636257e-4,4.550820785410715e-5,-1.3339057205444769e-8,5.993671400674556e-4,4.560473672048171e-5,-1.3357888193002322e-8,5.997192571010954e-4,4.578464443118222e-5,-1.340296607210915e-8,5.999993638835912e-4,4.601975491101805e-5,-1.3466562670281527e-8,6.001963194062474e-4,4.627562551405624e-5,-1.353859250547407e-8,6.003106951839153e-4,4.651585668922163e-5,-1.3607999789540018e-8,6.003545828554706e-4,4.670640694476506e-5,-1.3664190858733449e-8,6.003504102879558e-4,4.681993271445912e-5,-1.3698426655564152e-8,6.003285040062579e-4,4.6839792267256964e-5,-1.3705039077842174e-8,6.003233654665366e-4,4.6763054815347505e-5,-1.3682318721009288e-8,6.00368980029104e-4,4.6601915443853456e-5,-1.3632979669015082e-8,6.004936892972919e-4,4.638313791509782e-5,-1.3564152706925421e-8,6.007152397239569e-4,4.6145339984406526e-5,-1.348684271745055e-8,6.010365913857648e-4,4.5934168128419516e-5,-1.3414767746104295e-8,6.014429942225124e-4,4.5795480210201754e-5,-1.3362464203894209e-8,6.019011057532637e-4,4.576653383496385e-5,-1.334252963495435e-8,6.023615895275835e-4,4.586559553492988e-5,-1.3362105344807452e-8,6.027669935205449e-4,4.608188309838632e-5,-1.3419300705541302e-8,6.030658883371729e-4,4.6370003546858796e-5,-1.350105745458068e-8,6.032312519987232e-4,4.66548633865428e-5,-1.3584497719127712e-8,6.032758091670896e-4,4.685133527899667e-5,-1.3643100300052348e-8,6.032535495762095e-4,4.6894725810143705e-5,-1.365628640799527e-8,6.03241729155245e-4,4.6767362660908595e-5,-1.3617683021674188e-8,6.033108166392385e-4,4.65049510596044e-5,-1.3537085025814027e-8,6.034993182490741e-4,4.617895985207165e-5,-1.3435213551070888e-8,6.038060843341433e-4,4.5867317225684895e-5,-1.3335114749071355e-8,6.041994185155103e-4,4.563018257654167e-5,-1.3255104395874068e-8,6.046332663829588e-4,4.549926714185694e-5,-1.3205572436516151e-8,6.05061438746373e-4,4.5478931464839044e-5,-1.3189054107180226e-8,6.054462336936745e-4,4.555306960662015e-5,-1.3201909329785792e-8,6.05762009514742e-4,4.5692876070382345e-5,-1.3236331295070042e-8,6.059957599659084e-4,4.586321651672058e-5,-1.3282117826334546e-8,6.061465022300673e-4,4.6027351570760987e-5,-1.332813231699191e-8,6.062243702543427e-4,4.615066462844048e-5,-1.3363565264245378e-8,6.062495021200464e-4,4.620409516581872e-5,-1.3379104609315037e-8,6.062503718534889e-4,4.616766157689615e-5,-1.3368067825864579e-8,6.062610395188557e-4,4.6033924576426214e-5,-1.3327457601791911e-8,6.063169469718518e-4,4.581063544655485e-5,-1.3258772884036288e-8,6.064494044595206e-4,4.55215188896636e-5,-1.3168331958415403e-8,6.066795318747286e-4,4.52042881604833e-5,-1.3066866709055663e-8,6.070128998625647e-4,4.490545427349359e-5,-1.2968213330564991e-8,6.074363111856063e-4,4.467226793872749e-5,-1.2887087372606102e-8,6.079179098524724e-4,4.4543009907630994e-5,-1.2836174421477544e-8,6.084112436310817e-4,4.453736700212919e-5,-1.282297992625794e-8,6.08863370461571e-4,4.464886329443632e-5,-1.2847073663286673e-8,6.092264758703546e-4,4.4841679024146196e-5,-1.289860746681526e-8,6.094712937410751e-4,4.505445305432866e-5,-1.2959127922180999e-8,6.095987972448405e-4,4.521292039621171e-5,-1.3005410854173592e-8,6.096448764943399e-4,4.5250510079934645e-5,-1.3016030794821033e-8,6.096730138384927e-4,4.513114561506076e-5,-1.2978711001202054e-8,6.097545631549566e-4,4.486402580498518e-5,-1.2895124516848801e-8,6.099439852908066e-4,4.450134061490781e-5,-1.2780348513948726e-8,6.102610819546051e-4,4.4118743907326676e-5,-1.265702267633818e-8,6.106884949894511e-4,4.378880296374916e-5,-1.2547376438516559e-8,6.111831302385094e-4,4.356052924504412e-5,-1.2467023709897674e-8,6.116930853079845e-4,4.3451843285146805e-5,-1.2422507196552202e-8,6.121718091847651e-4,4.3453283807383274e-5,-1.2412110270198072e-8,6.125859229567852e-4,4.3537061943772174e-5,-1.242828767855344e-8,6.129174051327997e-4,4.3666315988779066e-5,-1.2460290569013057e-8,6.131625421240779e-4,4.380214478201701e-5,-1.249629588729844e-8,6.133297797994605e-4,4.390824915390768e-5,-1.2524935334363993e-8,6.134376059320164e-4,4.395405443660182e-5,-1.2536392208869133e-8,6.135126429920539e-4,4.391729178049016e-5,-1.2523285610369912e-8,6.135875232541355e-4,4.37866565556534e-5,-1.248151062142838e-8,6.136978474050366e-4,4.3564553195397556e-5,-1.2411078877572878e-8,6.138776204707606e-4,4.3269171658970975e-5,-1.2316794930864575e-8,6.141531157431434e-4,4.293451537346142e-5,-1.2208394276352459e-8,6.145360882992824e-4,4.260690395661579e-5,-1.2099680577646451e-8,6.150183068876578e-4,4.233718420343913e-5,-1.2006354865178858e-8,6.155698862543469e-4,4.216944569007125e-5,-1.194266561911202e-8,6.161432780116315e-4,4.212893829735594e-5,-1.191760894514987e-8,6.166829962369822e-4,4.221304211145604e-5,-1.1931838226690434e-8,6.171390028809723e-4,4.2388733189199025e-5,-1.1976435073662864e-8,6.174801786565707e-4,4.2598204728411776e-5,-1.2034228597516467e-8,6.177039713164523e-4,4.2771969148489644e-5,-1.2083631887323418e-8,6.178390324477566e-4,4.284658717591776e-5,-1.2104190944765916e-8,6.179391490155112e-4,4.2782467541547576e-5,-1.2082381407395732e-8,6.180690499519215e-4,4.257622589977647e-5,-1.2015807665370394e-8,6.182856981106309e-4,4.2262641290182364e-5,-1.1914142478848567e-8,6.186214061728539e-4,4.1904306638940616e-5,-1.1796159869780265e-8,6.190753692770967e-4,4.1572254817565175e-5,-1.168386155567887e-8,6.196167242703293e-4,4.1325277041778395e-5,-1.1596058210408694e-8,6.201967488488639e-4,4.119594759437842e-5,-1.1543865254199268e-8,6.20764019662867e-4,4.118716574602068e-5,-1.1529328261415304e-8,6.21276549030351e-4,4.127757978552318e-5,-1.154678533548196e-8,6.217080946567695e-4,4.143120927489927e-5,-1.1585638643255654e-8,6.220491812385284e-4,4.1606888823869886e-5,-1.1633240123016763e-8,6.223049974865838e-4,4.176527688606243e-5,-1.1677161479087305e-8,6.224922388533137e-4,4.1873203335198556e-5,-1.1706688765447071e-8,6.226360955927154e-4,4.1906205539858945e-5,-1.1713717885084007e-8,6.227676718629662e-4,4.185030251602371e-5,-1.1693341505436549E-08,6.229214415278793e-4,4.1703735041523074e-5,-1.1644381723185078e-8,6.231319853664534e-4,4.147878640125714e-5,-1.1569970337746821e-8,6.234292802965761e-4,4.120299476324085e-5,-1.1478018587251494e-8,6.238323413543623e-4,4.0918246606836314e-5,-1.1381111507640178e-8,6.243421835840833e-4,4.067585345858345e-5,-1.1295177991775304e-8,6.249366570621865e-4,4.052646987191822e-5,-1.1236482520549367e-8,6.255707246045346e-4,4.0506051125566727e-5,-1.1217220872998886e-8,6.261847863392266e-4,4.062225481812146e-5,-1.124105993740093e-8,6.267202336075681e-4,4.08475845493812e-5,-1.1300642714626034e-8,6.271371716095217e-4,4.112393555640522e-5,-1.1378640363826194e-8,6.274272002337375e-4,4.137818217173511e-5,-1.1452374173663731e-8,6.276160661029025e-4,4.1543172110683946e-5,-1.1500321761911784e-8,6.277555903893943e-4,4.157642470580568e-5,-1.1508102924530854e-8,6.27908422691926e-4,4.147064598947023e-5,-1.1472061584588963e-8,6.281309101857208e-4,4.125382444025051e-5,-1.1399670417759892e-8,6.284589806615875e-4,4.0979990293322234e-5,-1.1307001676311571e-8,6.289004951050204e-4,4.071397673517665e-5,-1.1214196847662963e-8,6.294355537344494e-4,4.051475934856745e-5,-1.1140281814471427e-8,6.300239373611482e-4,4.0422039237037176e-5,-1.1098767800734435e-8,6.306167817204206e-4,4.044943019418976e-5,-1.1095165829009265e-8,6.311685570877783e-4,4.058515042629986e-5,-1.1126836428171848e-8,6.316459742628735e-4,4.079850842401508e-5,-1.1184776656645354e-8,6.320322305868174e-4,4.104897677346346e-5,-1.1256406714476454e-8,6.323269912046183e-4,4.129481071708473e-5,-1.1328374881368757e-8,6.325436800244089e-4,4.149944694038418e-5,-1.138873428162963e-8,6.327057717418874e-4,4.16353572641571e-5,-1.142829124798009e-8,6.3284320211077e-4,4.168599958414399e-5,-1.144127484924841e-8,6.329892507073682e-4,4.1646813714983565e-5,-1.1425641935138297e-8,6.331776221375067e-4,4.1525972124440285e-5,-1.1383308731724334e-8,6.334390698103364e-4,4.134505386970275e-5,-1.1320431548573354e-8,6.337968406765966e-4,4.1139068109295805e-5,-1.1247577530122925e-8,6.342606793062239e-4,4.0954382499360176e-5,-1.1179279984573037e-8,6.34820349377044e-4,4.084256691331992e-5,-1.1132243894526839e-8,6.354414692002509e-4,4.084884439949683e-5,-1.1121682761778917e-8,6.360679001502076e-4,4.0996568100376256e-5,-1.1156195968997953e-8,6.366339468110234e-4,4.1273455162251384e-5,-1.1233067444498262e-8,6.370847593082296e-4,4.162814226045832e-5,-1.1336844237008164e-8,6.37396720814852e-4,4.1982708229566924e-5,-1.1443112874876232e-8,6.375870858518857e-4,4.225789061658065e-5,-1.1526456467575253e-8,6.377074182492132e-4,4.239935949578947e-5,-1.1568844891267493e-8,6.378247532323368e-4,4.239301187350808e-5,-1.1564617122042744e-8,6.380001550354765e-4,4.226467189936685e-5,-1.1520634437041544e-8,6.382730696351323e-4,4.20678159364482e-5,-1.145275407366425e-8,6.386547983664781e-4,4.186642207611976e-5,-1.1380759726833166e-8,6.391301491825187e-4,4.1718969727590826e-5,-1.1323481608403951e-8,6.396645134501095e-4,4.16669354931265E-05,-1.1295058824572489e-8,6.402135211432802e-4,4.1728883630486846e-5,-1.130272523179324e-8,6.407329313863037e-4,4.189994975384543e-5,-1.1346210158588048e-8,6.411869273337647e-4,4.215579668992807e-5,-1.141864418294653e-8,6.415535317098374e-4,4.245951292741821e-5,-1.1508603446175233e-8,6.418266451670236e-4,4.276953906141313e-5,-1.160268944345754e-8,6.420150711981394e-4,4.3046889911181794e-5,-1.168800792468656e-8,6.42139481568027e-4,4.326056338850396e-5,-1.1754073581974093e-8,6.422284650134046e-4,4.3390762964130205e-5,-1.1793939423120785e-8,6.423145863944254e-4,4.343025232088572e-5,-1.1804643333497793e-8,6.424308611712833e-4,4.3384560725109035e-5,-1.1787259369334247e-8,6.426075271147033e-4,4.327164998942055e-5,-1.1746830998873365e-8,6.428686772623222e-4,4.312121499188235e-5,-1.1692290186969063e-8,6.43228211111064e-4,4.297319789412587e-5,-1.163620160738782e-8,6.436849034127897e-4,4.2874338512484316e-5,-1.1593853762600689e-8,6.442175178239869e-4,4.287106863696716e-5,-1.1581024865378009e-8,6.447826241944376e-4,4.299769946587701e-5,-1.1610003778983072e-8,6.453192106631316e-4,4.326148989808878e-5,-1.1684410461728622e-8,6.457633643151136e-4,4.363072674477005e-5,-1.179495428359945e-8,6.460709780358178e-4,4.403539258500074e-5,-1.1919425251124777e-8,6.46238269440531e-4,4.438654427814625e-5,-1.202896701159812e-8,6.463067360377512e-4,4.460863357575101e-5,-1.2098638955452586e-8,6.463473522053487e-4,4.466782983677177e-5,-1.2116629130642991e-8,6.464328198700985e-4,4.458091988511223e-5,-1.2087172530117929e-8,6.466134080396352e-4,4.440296244483021e-5,-1.2026767218001455e-8,6.469062893985017e-4,4.420432212394621e-5,-1.1957162905655501e-8,6.472980673486538e-4,4.4049415375376975e-5,-1.1898899064049858e-8,6.477545569824074e-4,4.398348465637827e-5,-1.1867178141227173e-8,6.482321283936542e-4,4.402769158632383e-5,-1.1870077472484313e-8,6.486874451684293e-4,4.4180110616365914e-5,-1.190843181001741e-8,6.490845942283705e-4,4.442004791255551e-5,-1.1976767655848106e-8,6.493996674170178e-4,4.471399475420608e-5,-1.2064930829832403e-8,6.496230132730473e-4,4.502224997790057e-5,-1.2160170877601224e-8,6.497593165315699e-4,4.530541463222377e-5,-1.2249376594925378e-8,6.498257985589669e-4,4.5530023897967826e-5,-1.2321106524374785e-8,6.498490150835266e-4,4.5672787320462324e-5,-1.2367125184429808e-8,6.49860849248668e-4,4.5723111388483726e-5,-1.2383285624306336e-8,6.498943459428724e-4,4.56838734642481e-5,-1.2369777794004631e-8,6.499798483583396e-4,4.5570805788698724e-5,-1.2330940194194202e-8,6.50141540921297e-4,4.5410946737608354e-5,-1.2274858062634918e-8,6.50394252361549e-4,4.524034632505981e-5,-1.2212820673742356e-8,6.507402898474811e-4,4.510081644081227e-5,-1.2158498221920027e-8,6.511662941424877e-4,4.503501619399875e-5,-1.2126476181320007e-8,6.516409652377725e-4,4.507883196177047e-5,-1.2129687005367259e-8,6.521158333795178e-4,4.525065636203942e-5,-1.2175577965498676e-8,6.525322031476455e-4,4.553941364164363e-5,-1.2261726884082065e-8,6.528365381010586e-4,4.5896913451435045e-5,-1.2372957541494924e-8,6.53001864278318e-4,4.6243075736359524e-5,-1.2482966177543175e-8,6.530450153429226e-4,4.6489294263523875e-5,-1.2562182212005331e-8,6.530262302326049e-4,4.657300931178719e-5,-1.2589338662501737e-8,6.530266241761063e-4,4.6484341852986244e-5,-1.2560253186849565e-8,6.531153745404709e-4,4.626789168937222e-5,-1.248839206681805e-8,6.533259500794602e-4,4.600025166059354e-5,-1.2397689341809364e-8,6.536518626923442e-4,4.5759473698595974e-5,-1.2312978138197302e-8,6.540578644141293e-4,4.56028117197643e-5,-1.2253084886290816e-8,6.544960449519266e-4,4.555825704891566e-5,-1.222809841334969e-8,6.549192256583115e-4,4.562646405711048e-5,-1.2239671643138295e-8,6.552892641813089e-4,4.578752220519903e-5,-1.2282737836356728e-8,6.555809511761707e-4,4.6008638879196065e-5,-1.23475952409882e-8,6.557831063329746e-4,4.625097547136351e-5,-1.2421941128098137e-8,6.558981448308248e-4,4.647540239116749e-5,-1.2492798538365653e-8,6.559406151232579e-4,4.664739366488725e-5,-1.2548313680324879e-8,6.55934795368779e-4,4.674108669115587e-5,-1.2579299722569738e-8,6.559114262674878e-4,4.674234926529412e-5,-1.258037528172128e-8,6.559037475636952e-4,4.6650576798607184e-5,-1.2550589153337167e-8,6.559431799480559e-4,4.647890047352641e-5,-1.2493483386171588e-8,6.560551490320222e-4,4.625272895401807e-5,-1.241665830734056e-8,6.562554736211841e-4,4.6006843480568736e-5,-1.2330965549949725e-8,6.565475621712678e-4,4.5781298533340715e-5,-1.224938677601268e-8,6.569205673771478e-4,4.561626701972796e-5,-1.2185538559539806e-8,6.573487109405446e-4,4.554580590585966e-5,-1.2151659149246088e-8,6.577924153502072e-4,4.5590415220543125e-5,-1.215594635662814e-8,6.58202593113294e-4,4.574881097857109e-5,-1.2199412084801173e-8,6.585297262397721e-4,4.59909687918636e-5,-1.2273096298199133e-8,6.587382425042407e-4,4.62568085760598e-5,-1.2357324481940705e-8,6.588231495329708e-4,4.646624084061321e-5,-1.2425073606254522e-8,6.588204978599106e-4,4.65431768960108e-5,-1.2450244405357208e-8,6.588012287440477e-4,4.644637290291428e-5,-1.2418191579088436e-8,6.588458419334591e-4,4.61899779128904e-5,-1.2332619928155143e-8,6.590119357198074e-4,4.5838877755827045e-5,-1.2214031205022718e-8,6.593137391720427e-4,4.548068499544168e-5,-1.2090617955505468e-8,6.597236153319567e-4,4.519227164557173e-5,-1.1987544773090963e-8,6.601895628610029e-4,4.5018724180246425e-5,-1.1920237507966108e-8,6.606554423138694e-4,4.49697296954195e-5,-1.189308702067798e-8,6.610749674083071e-4,4.502738150794323e-5,-1.1901620274760557e-8,6.614178803084616e-4,4.515738862713096e-5,-1.1935726383931564e-8,6.616706357616994e-4,4.531887849385159e-5,-1.1982572911828448e-8,6.61834447382716e-4,4.547133072107415e-5,-1.2028824379413137e-8,6.6192264137107e-4,4.5579126378920714e-5,-1.2062283892577649e-8,6.619580115031964e-4,4.561475770029697e-5,-1.2073180904243843e-8,6.619700433900955e-4,4.556135838574398e-5,-1.2055197467963607e-8,6.61991699576438e-4,4.5414661343623503e-5,-1.200620365179172e-8,6.620555712945934e-4,4.51840896179602e-5,-1.1928622796913211e-8,6.621894741458482e-4,4.489240920507422e-5,-1.182931385336294e-8,6.624119923538018e-4,4.457342997377879e-5,-1.1718880084197724e-8,6.627287685916333e-4,4.4267655432898346e-5,-1.1610397059841187e-8,6.631303288208212e-4,4.401622188040044e-5,-1.1517614629584648e-8,6.635920520441031e-4,4.3853814799379214e-5,-1.1452739383809711e-8,6.640766309640293e-4,4.3801500136949246e-5,-1.1423990223408127e-8,6.645391547065707e-4,4.3860465762502585e-5,-1.1433213609765761e-8,6.649348907757294e-4,4.400781803244625e-5,-1.1474022268078109e-8,6.652295738743438e-4,4.4196208170768975e-5,-1.1531237312247409e-8,6.654109062286146e-4,4.435975285734818e-5,-1.1582666541464982e-8,6.654978651706966e-4,4.442827675775156e-5,-1.1603994416442983e-8,6.655421492594667e-4,4.434891282437948e-5,-1.1576365369570233e-8,6.656163939754637e-4,4.410816482066763e-5,-1.1494114352982963e-8,6.657897957674164e-4,4.3742356818358154e-5,-1.136844192019311e-8,6.661014873919342e-4,4.332714263267976e-5,-1.1223980436229123e-8,6.66546435586102e-4,4.294919512763321e-5,-1.1089453851181167e-8,6.670813088959861e-4,4.267547632709114e-5,-1.0987569771282318e-8,6.676444956798761e-4,4.2535713727573955e-5,-1.0929181332560628e-8,6.681774843805674e-4,4.252258156620681e-5,-1.0913107238000703e-8,6.686384044883153e-4,4.260325002735994e-5,-1.0929587800350869e-8,6.690062161390295e-4,4.2733346818073974e-5,-1.0964592948012124e-8,6.692787368457985e-4,4.286787118068754e-5,-1.1003310653399214e-8,6.694682707915127e-4,4.296777011126571e-5,-1.1032406940396475e-8,6.695972389198812e-4,4.300322240539698e-5,-1.1041321064106932e-8,6.696946149272839e-4,4.295523829967347e-5,-1.1023008875669534e-8,6.697929196037282e-4,4.2816698354687566e-5,-1.0974419442589062e-8,6.699251733474295e-4,4.2593196764431914e-5,-1.0896807753560433e-8,6.701212865700194e-4,4.230341044442153e-5,-1.0795842637994127e-8,6.704037174690174e-4,4.1978221761531796e-5,-1.0681328919295532e-8,6.707828559139265e-4,4.1657672615155404e-5,-1.0566288547495148e-8,6.712532690016723e-4,4.138524242901553e-5,-1.0465216530512158e-8,6.717922865944109e-4,4.119981360746378e-5,-1.0391550497627238e-8,6.723621835534646e-4,4.112674104581725e-5,-1.0354712996658229e-8,6.729163674503193e-4,4.117028254115718e-5,-1.0357404924622589e-8,6.734087601805087e-4,4.1309743555585105e-5,-1.0393953428156289e-8,6.738045432664134e-4,4.150094656252346e-5,-1.0450378613876328e-8,6.740899326696811e-4,4.168357203370962e-5,-1.0506544084907395e-8,6.742784623792691e-4,4.1793849405908306e-5,-1.0540362360195925e-8,6.744112537778521e-4,4.178074134045985e-5,-1.053345924363471e-8,6.745493044657425e-4,4.1621948675312874e-5,-1.0476951591107518e-8,6.747577135709221e-4,4.1334207987166106e-5,-1.0375304924468307e-8,6.750854372839487e-4,4.097200972504231e-5,-1.0246168788815136e-8,6.755482329271165e-4,4.0612262569480024e-5,-1.0115334350837037e-8,6.761231653952755e-4,4.032957409188221e-5,-1.0008413784011982e-8,6.767578521833027e-4,4.017301604488647e-5,-9.94290139609733e-9,6.773894310269758e-4,4.015465619698559e-5,-9.924065754328441e-9,6.779636072244319e-4,4.025271194279116e-5,-9.945684323589636e-9,6.784462992592076e-4,4.042426218751692e-5,-9.994032077050076e-9,6.788262531519046e-4,4.0619750895181834e-5,-1.0052621713449427e-8,6.791114670866537e-4,4.0793953317949755e-5,-1.0105937498144301e-8,6.793233103813246e-4,4.091197852871128e-5,-1.0141630257049476e-8,6.794909850969935e-4,4.0951453051865014e-5,-1.01514585939184e-8,6.7964728168145e-4,4.090274064307937e-5,-1.0131510062344522e-8,6.798254076015645e-4,4.076859742149239e-5,-1.0082138915684628e-8,6.800561699820016e-4,4.0563850495158245e-5,-1.0007849266961698e-8,6.8036477449427e-4,4.031492566409186e-5,-9.917132870207206e-9,6.807668440871827e-4,4.0058407100975396e-5,-9.822042726828585e-9,6.812639721347429e-4,3.98374389784475e-5,-9.737104678895134e-9,6.818400995093161e-4,3.9695020030860256e-5,-9.677186556046806e-9,6.824608377364019e-4,3.966437272967973e-5,-9.65429089058683e-9,6.830778514977682e-4,3.975846050622824e-5,-9.673896804332269e-9,6.8363893699842e-4,3.996251016407234e-5,-9.732153955509115e-9,6.841017372567231e-4,4.023361206932423e-5,-9.815394137449953e-9,6.844466228191916e-4,4.05092582535884e-5,-9.902727164968086e-9,6.846838738110617e-4,4.072297495515305e-5,-9.971213593928136e-9,6.848523051199315e-4,4.082220466885166e-5,-1.000201594026922e-8,6.850095982123903e-4,4.07828469698932e-5,-9.98560223372568e-9,6.852171873960667e-4,4.0616222783899834e-5,-9.924483469796086e-9,6.855238737488718e-4,4.036653532224773e-5,-9.832728989987601e-9,6.859526224257744e-4,4.00993290741107e-5,-9.732322816114245e-9,6.86494446675017e-4,3.988386503340198e-5,-9.647264291981038e-9,6.871115650576727e-4,3.977452661168896e-5,-9.597109977300679e-9,6.877489646437295e-4,3.979728759741124e-5,-9.592045225736865e-9,6.883501673843535e-4,3.994563772478752e-5,-9.631095222420986e-9,6.888714062386018e-4,4.018638516815171e-5,-9.70376889018204e-9,6.89289773006254e-4,4.047168422173579e-5,-9.79400284884246e-9,6.896042371432542e-4,4.075196513064055e-5,-9.884614283434994e-9,6.898314601928995e-4,4.0985699460782386e-5,-9.960814485912439e-9,6.899994707481199e-4,4.114457896454388e-5,-1.0012195088317796e-8,6.901416346331935e-4,4.1214864630885974e-5,-1.0033353714839723e-8,6.902920197616812e-4,4.119656099349532e-5,-1.0023683572674945e-8,6.904821165138293e-4,4.1101881144250444e-5,-9.986848350330236e-9,6.907382638650003e-4,4.09537582206849e-5,-9.930264533573738e-9,6.910790024415842e-4,4.0784383529647454e-5,-9.864646068425661e-9,6.915118287645734e-4,4.06330723894299e-5,-9.803388502339166e-9,6.92029478921974e-4,4.054225759251511e-5,-9.761330963984282e-9,6.926069404711696e-4,4.055042383207215e-5,-9.752392841996608e-9,6.93201577440324e-4,4.068187369966381e-5,-9.785963135087253e-9,6.937591702126083e-4,4.0935603885594335e-5,-9.86281521804032e-9,6.942270330740719e-4,4.1278405821690475e-5,-9.972398042232453e-9,6.945712632534799e-4,4.164815702606528e-5,-1.0093706764041374e-8,6.947908016139201e-4,4.196965425274466e-5,-1.0200641875276863e-8,6.949204861200494e-4,4.217816671559534e-5,-1.027018519806173e-8,6.950204845917e-4,4.2240436893643125e-5,-1.0289782773011855e-8,6.951568783835051e-4,4.2163991349505506e-5,-1.0260761389728324e-8,6.953820071952732e-4,4.1992296890793167e-5,-1.0196951522017627e-8,6.957214881833488e-4,4.1789873918597023e-5,-1.0119904592446122e-8,6.961704254910497e-4,4.162399139921554e-5,-1.0052855248199617e-8,6.966977464138914e-4,4.154851515582117e-5,-1.0015196278929336e-8,6.972559483814732e-4,4.159322790104321e-5,-1.0018554243928807e-8,6.977931798100247e-4,4.1759927789965654e-5,-1.006500579411969e-8,6.982647541256812e-4,4.202510292476047e-5,-1.0147554437825793e-8,6.986416504509654e-4,4.23477429452799e-5,-1.0252547579380231e-8,6.989144432942709e-4,4.267979568978907e-5,-1.0363254734980224e-8,6.990924889111561e-4,4.297633660441667e-5,-1.046354978955787e-8,6.991995765864698e-4,4.3203125469473766e-5,-1.0540778184890215e-8,6.992679525856361e-4,4.334055988722916e-5,-1.0587341630078698e-8,6.993324737511327e-4,4.338433788379723e-5,-1.0601042222300012e-8,6.994259422448656e-4,4.33439373540044e-5,-1.0584573537885036e-8,6.995758178822197e-4,4.324016014019141e-5,-1.0544655239898046e-8,6.998018846283525e-4,4.310255497934784e-5,-1.049116419505745e-8,7.001142366953494e-4,4.296687167505949e-5,-1.0436353487376878e-8,7.00511078834245e-4,4.28720812612912e-5,-1.0393964239501379e-8,7.009763426032131e-4,4.285598693783195e-5,-1.0377799290857615e-8,7.014781075470884e-4,4.294835757893481e-5,-1.0399281482030315e-8,7.01969994354906e-4,4.316142500987284e-5,-1.0463892261942207e-8,7.023982919714376e-4,4.3479848296496525E-05,-1.0567290124078954e-8,7.027162843902773e-4,4.385542505735799e-5,-1.0693127635927223e-8,7.029027821209852e-4,4.42135354664673e-5,-1.0815191406563102e-8,7.029758681401383e-4,4.44744496722845e-5,-1.0904987723913586e-8,7.029914590549362e-4,4.458263269534113e-5,-1.0942205658178163e-8,7.030240973959722e-4,4.4528749813272105e-5,-1.0922540209312683e-8,7.031394395161471e-4,4.435182467687107e-5,-1.0858532246731884e-8,7.033730001998939e-4,4.412187581728143e-5,-1.0773708033050758e-8,7.037236525719877e-4,4.391449186565976e-5,-1.0694038600834027e-8,7.041603691418619e-4,4.378961991431415e-5,-1.0640801646843702e-8,7.046353875274154e-4,4.378031259963003e-5,-1.0626632482199593e-8,7.050976569019387e-4,4.3890906265389334e-5,-1.0654550090175343e-8,7.055033512381783e-4,4.4101463726791514e-5,-1.0719012226212606e-8,7.058225832089542e-4,4.4375368649487437e-5,-1.0808140470310517e-8,7.060425584939559e-4,4.4667972118194066e-5,-1.0906544945457309e-8,7.061676354241381e-4,4.4934992978476056e-5,-1.0998328320161188e-8,7.062167941862384e-4,4.513963638656883e-5,-1.1069817830506132e-8,7.062192461146077e-4,4.525758094198104e-5,-1.1111586225981603e-8,7.062091365135665e-4,4.527941172781372e-5,-1.1119497270185845e-8,7.062203187254132e-4,4.521057587191405e-5,-1.1094762027694266e-8,7.062819845440831e-4,4.5069391812404094e-5,-1.1043233702560278e-8,7.06415505665796e-4,4.488393907460559e-5,-1.0974313413837001e-8,7.066323612634319e-4,4.4688540962570335e-5,-1.089978106738531e-8,7.069327966070445e-4,4.452012245181196e-5,-1.0832652650027417e-8,7.073048809528734e-4,4.4414291049901125e-5,-1.0785940512482935e-8,7.077239303819673e-4,4.4400593182769026e-5,-1.0771010723654536e-8,7.081530282662858e-4,4.449628480384157e-5,-1.0795218004047385e-8,7.08546309372772e-4,4.4698728013663695e-5,-1.0858860998889045e-8,7.088570074624559e-4,4.497837061391854e-5,-1.0952277710884579e-8,7.090511764918637e-4,4.527680031930541e-5,-1.1054882078469456e-8,7.091242875412201e-4,4.551603875633128e-5,-1.1138494306429178e-8,7.091120498076681e-4,4.562208888687946e-5,-1.117598713005094e-8,7.090846177539748e-4,4.5555482629709526e-5,-1.1152408119707443e-8,7.091216217038918e-4,4.533143658656323e-5,-1.1072207380177586e-8,7.092802036001695e-4,4.501504148607371e-5,-1.0957523637321026e-8,7.095747795025035e-4,4.469379194735881e-5,-1.0838617797559788e-8,7.099779924341384e-4,4.4444886939645104e-5,-1.0742641317809363e-8,7.104372322708001e-4,4.431417690490606e-5,-1.0686428868332595e-8,7.108944427121056e-4,4.43116119214771e-5,-1.067478403156329e-8,7.113007184917924e-4,4.441806234799192e-5,-1.0702470480375884e-8,7.11623679367533e-4,4.459632083759559e-5,-1.0757592826290675e-8,7.118492538786992e-4,4.480161570626685e-5,-1.0824953711808661e-8,7.11980233791131e-4,4.4989876558258635e-5,-1.0888886188899312e-8,7.120332870788396e-4,4.512373743613871e-5,-1.093553525218388e-8,7.120351830951165e-4,4.517671189813642e-5,-1.0954618391336977e-8,7.12018506314901e-4,4.513573773315998e-5,-1.094058962873492e-8,7.12017114163592e-4,4.500208629716573e-5,-1.0893112309757543e-8,7.120616914124563e-4,4.47905968840482e-5,-1.0816818974571956e-8,7.121758530794824e-4,4.452730583824109e-5,-1.0720449941183935e-8,7.12373225808455e-4,4.424582850797638e-5,-1.0615582948149321e-8,7.126557056969058e-4,4.3983020894276823E-05,-1.0515185840291802e-8,7.130128748690027e-4,4.377430370445033e-5,-1.0432097453514521e-8,7.134225026408814e-4,4.364884043657226e-5,-1.0377410518766734e-8,7.138521296875519e-4,4.3624612316220915e-5,-1.0358662531311387e-8,7.142621087199356e-4,4.370335181858926e-5,-1.0377769717223068e-8,7.146110340123279e-4,4.386580901383108e-5,-1.0428929632440784e-8,7.148644843579355e-4,4.406916289330847e-5,-1.0497305281474699e-8,7.150068229220568e-4,4.424991700273873e-5,-1.0559887164612516e-8,7.150530524366479e-4,4.4336178298709344e-5,-1.0590042672540263e-8,7.15053734810595e-4,4.42704276374271e-5,-1.056605287956476e-8,7.150846291680763e-4,4.403576931514396e-5,-1.0480847359923442e-8,7.152198511851885e-4,4.3670120179829765e-5,-1.0347183403858284e-8,7.155008744882165e-4,4.325529287265698e-5,-1.019372183871818e-8,7.159202063701489e-4,4.288442453165478e-5,-1.0053486378649688e-8,7.164288382090401e-4,4.262714020159595e-5,-9.95164253828637e-9,7.169595712173114e-4,4.2511112636761016e-5,-9.899008498589871e-9,7.174506599694499e-4,4.2524020942925516e-5,-9.892540841677029e-9,7.178598144621892e-4,4.2627404619268514e-5,-9.91983987587705e-9,7.181678446769699e-4,4.27721963699476e-5,-9.964266310840572e-9,7.183759126586623e-4,4.291045343841636e-5,-1.0008908875743132e-8,7.18500405594647e-4,4.300234497131943e-5,-1.0039122755238085e-8,7.185677828556197e-4,4.30196320106107e-5,-1.0044007543963475e-8,7.186101042079086e-4,4.294717412168661e-5,-1.001723346601736e-8,7.186610533817944e-4,4.278335317154585e-5,-9.957406051808767e-9,7.18752168284341e-4,4.253964376045135e-5,-9.867997924772748e-9,7.189091853091514e-4,4.2239192867652126e-5,-9.756827287293615e-9,7.191486680453425e-4,4.191412441845834e-5,-9.635062646698978e-9,7.194753833185204e-4,4.1601472907260915e-5,-9.515794554155215e-9,7.198809710473828e-4,4.1338056243998875e-5,-9.412302783608438e-9,7.203442861506658e-4,4.115483206636226e-5,-9.33615368049298e-9,7.208335901116579e-4,4.107136650050428e-5,-9.295250483512817e-9,7.21310582686931e-4,4.109113767836152e-5,-9.292009746461441e-9,7.217361374829578e-4,4.1198376722348027e-5,-9.321908690989147e-9,7.220776248483091e-4,4.135721706930838e-5,-9.372781644989014e-9,7.223174798075731e-4,4.151444248885548e-5,-9.42550576306746e-9,7.224616572947125e-4,4.160760778234224e-5,-9.456878589667109e-9,7.225448756233372e-4,4.157965702183735e-5,-9.445137808270311e-9,7.226279081272899e-4,4.139838628719147e-5,-9.377400707335786e-9,7.22782831518834e-4,4.107397411941798e-5,-9.256348015631858e-9,7.230679109607896e-4,4.066348908937088e-5,-9.10200491377539e-9,7.235030324353299e-4,4.025454393631868e-5,-8.94585670514005e-9,7.240604349135902e-4,3.993307278447048e-5,-8.819235976789946e-9,7.246770474161983e-4,3.9752475639384204e-5,-8.74220271896425e-9,7.25280167562206e-4,3.972032945361145e-5,-8.71863631377646e-9,7.258112499168408e-4,3.980545137139982e-5,-8.738490452126625e-9,7.262379795707331e-4,3.995588791311808e-5,-8.783922245220665e-9,7.265545698200255e-4,4.011659749582939e-5,-8.83541706972929e-9,7.267755339873465e-4,4.024105833074878e-5,-8.875936197311278e-9,7.269279845271264e-4,4.029652987094112e-5,-8.892976574019021e-9,7.270451450548466e-4,4.026516750216042e-5,-8.879235354411228e-9,7.271616327638609e-4,4.014326976173892e-5,-8.832575722188413e-9,7.273099551577129e-4,3.993996905439593e-5,-8.755682817923396e-9,7.275175140387404e-4,3.9675705000669275e-5,-8.65552457776656e-9,7.278037036096325e-4,3.938023732409923e-5,-8.542589315450922e-9,7.281770882665271e-4,3.9089662899162196e-5,-8.429786504232964e-9,7.286331360591269e-4,3.884197223268564e-5,-8.330888585721539e-9,7.291533677555678e-4,3.867120217350354e-5,-8.258515599405508e-9,7.297067738756757e-4,3.860090558086704e-5,-8.221844583454592e-9,7.302539666578742e-4,3.8638182704821905e-5,-8.224400957513714e-9,7.307538962269374e-4,3.876983049784128e-5,-8.262452625865695e-9,7.311722092434422e-4,3.896204742743471e-5,-8.324571705863522e-9,7.314897527645678e-4,3.9164524285314036e-5,-8.3927927962959e-9,7.317094414493923e-4,3.931904431090589e-5,-8.445566122962981e-9,7.318594845103638e-4,3.937201425400375e-5,-8.462392890762826e-9,7.319908066651358e-4,3.928917259530832e-5,-8.42948659848983e-9,7.321669790530052e-4,3.906885058053107e-5,-8.345010771919948e-9,7.324469928605998e-4,3.8748281868431985e-5,-8.22172192559327e-9,7.328651675913713e-4,3.839739804730499e-5,-8.084889760603431e-9,7.334166535442571e-4,3.809868218835139e-5,-7.964969302770367e-9,7.340570593855317e-4,3.791967584824037e-5,-7.88746795733556e-9,7.347180158889726e-4,3.789093829132095e-5,-7.864694610367329e-9,7.35330978895752e-4,3.799999059049531e-5,-7.893257941684946e-9,7.358473549973659e-4,3.820188625552753e-5,-7.95762224232136e-9,7.36247320859895e-4,3.8438037090302746e-5,-8.036768609057542e-9,7.365375874964547e-4,3.865343008418449e-5,-8.110432460280896e-9,7.367432165561168e-4,3.880698844533339e-5,-8.163005946748622e-9,7.368986354207467e-4,3.8875061863166875e-5,-8.185035831936871e-9,7.370405983510341e-4,3.885061218849014e-5,-8.173156102939069e-9,7.372035548293182e-4,3.8740714185469477e-5,-8.129326522098361e-9,7.374166923744471e-4,3.8563901864775714e-5,-8.05990590565618e-9,7.377017025310008e-4,3.834777065479802e-5,-7.974743340507008e-9,7.38070622142274e-4,3.8126512150255426e-5,-7.886238130470689e-9,7.385236155784789e-4,3.7937678633434624e-5,-7.80816935910351e-9,7.390471872462534e-4,3.7817479218706066e-5,-7.754041850862354e-9,7.39613896733862e-4,3.779443638936219e-5,-7.734832514708064e-9,7.401848806728716e-4,3.788221163124379e-5,-7.75635096994411e-9,7.407160397257579e-4,3.807351780711525e-5,-7.816863716772319e-9,7.411675017627108e-4,3.83377342940748e-5,-7.905958120875292e-9,7.415142919555773e-4,3.8624442718095306e-5,-8.005552813609206e-9,7.417549191637427e-4,3.887335159084064e-5,-8.093346705012602e-9,7.419146387750976e-4,3.902868594401002e-5,-8.14809060536792e-9,7.420415466924796e-4,3.9054260051663074e-5,-8.155305505607456e-9,7.421957712450767e-4,3.894484020912841e-5,-8.111780096870276e-9,7.424340938914088e-4,3.873006125504485e-5,-8.02737573183699e-9,7.42793899355561e-4,3.846880194086285e-5,-7.923264854219435e-9,7.432812620141698e-4,3.823437454532318e-5,-7.82664187542525e-9,7.438677441412036e-4,3.809405520022208e-5,-7.763143694430137e-9,7.444981839003461e-4,3.808955287654943e-5,-7.749409650064826e-9,7.451073361538792e-4,3.822586805072566e-5,-7.788599612458683e-9,7.456389114710405e-4,3.847282903416642e-5,-7.870587084328902e-9,7.460595325375159e-4,3.8777620572790256e-5,-7.97634017132848e-9,7.463633344203971e-4,3.90818258416466e-5,-8.084164382373755e-9,7.465679154850866e-4,3.9335967587656355e-5,-8.175197120055171e-9,7.467056704916095e-4,3.950769387356267e-5,-8.236653653676395e-9,7.468147802209882e-4,3.958364471163843e-5,-8.262748556136644e-9,7.469323302937862e-4,3.956728801685668e-5,-8.25406326448367e-9,7.470900224543724e-4,3.947522924674709e-5,-8.21625230612436E-09,7.473117786206921e-4,3.9333574246693434e-5,-8.15868872939971e-9,7.476122444451707e-4,3.917483364161524e-5,-8.093285230637837e-9,7.479954258414936e-4,3.9035053263447094e-5,-8.033430521419e-9,7.484532171378763e-4,3.8950407831258895e-5,-7.992775209673987e-9,7.489642810589979e-4,3.895244597740534e-5,-7.983527194781351e-9,7.494944525688141e-4,3.906165830601274e-5,-8.014060469529422e-9,7.500002746529996e-4,3.9280174203610924e-5,-8.086078232861302e-9,7.504369055959056e-4,3.9586013083436254e-5,-8.192238951203957e-9,7.507699029120727e-4,3.993257848288867e-5,-8.31570446363603e-9,7.509875768828624e-4,4.025651618290501e-5,-8.432888245201967e-9,7.511084739632404e-4,4.049377684511111e-5,-8.519412651981377e-9,7.511792950330379e-4,4.059903216808652e-5,-8.557453460506901e-9,7.51262580818493e-4,4.056073182061699e-5,-8.541545996409175e-9,7.514184424281146e-4,4.040549547796316e-5,-8.480474453332119e-9,7.516871944073718e-4,4.019036204144835e-5,-8.394680466844668e-9,7.520786833722089e-4,3.998634873333417e-5,-8.31041577663291e-9,7.525708694622507e-4,3.985920059382761e-5,-8.252707967838128e-9,7.531170338310043e-4,3.985300180192867e-5,-8.239147244363815e-9,7.536588526186752e-4,3.998070036708499e-5,-8.276008258796359e-9,7.541413990265233e-4,4.022342678605548e-5,-8.357544078241255e-9,7.54525863865062e-4,4.05380201242533e-5,-8.468421354961952e-9,7.547967008719969e-4,4.0869815523018587e-5,-8.588335122366214e-9,7.549619635945633e-4,4.116635887970118e-5,-8.697206288555848e-9,7.550480101612701e-4,4.1388047065979665e-5,-8.779387588935774e-9,7.550913554910073e-4,4.151357045899603e-5,-8.825967420826681e-9,7.551305842522161e-4,4.154031612162445e-5,-8.835132581061215e-9,7.552001895864037e-4,4.148139165922518e-5,-8.811164119887681e-9,7.55326828426084e-4,4.1361260126847735e-5,-8.762820923675844e-9,7.555274925687125e-4,4.12114438663705e-5,-8.70170647458801e-9,7.558087203055979e-4,4.1066871518413693e-5,-8.640891785799208e-9,7.561661037027524e-4,4.09626519740274e-5,-8.593743073534889e-9,7.565837873294337e-4,4.0930595848213674e-5,-8.572674913245856e-9,7.570343023719693e-4,4.0994708019895345e-5,-8.58746909968765e-9,7.574798432523166e-4,4.116526167701248e-5,-8.642942450707564e-9,7.578766597453443e-4,4.143219506580418e-5,-8.736227826676889e-9,7.581839700006578e-4,4.1760430647830195e-5,-8.85472089607003e-9,7.583769007372872e-4,4.209143613341075e-5,-8.97646260497755e-9,7.584593350854895e-4,4.235492678888832e-5,-9.074535079715516e-9,7.584693326984003e-4,4.249010700473473e-5,-9.125223368184249e-9,7.58470988460264e-4,4.246860282595259e-5,-9.116849569321388e-9,7.585337351705025e-4,4.230716762507732e-5,-9.054700673282172e-9,7.587083994551931e-4,4.206260627237825e-5,-8.959261900385463e-9,7.590114511903744e-4,4.181169099700161e-5,-8.858889905876627e-9,7.594231618304254e-4,4.162653730197789e-5,-8.780808674797843e-9,7.598974502542237e-4,4.155567159126383e-5,-8.744091746991325e-9,7.603770701441117e-4,4.161547883315085e-5,-8.756261200644959e-9,7.608083072352005e-4,4.1791395294714015e-5,-8.813314074637931e-9,7.611518311466191e-4,4.204568142158321e-5,-8.902175671211233e-9,7.613885521055572e-4,4.232834360337178e-5,-9.004492689727314e-9,7.615206177534766e-4,4.258845489577387e-5,-9.100837967244961e-9,7.61568322961355e-4,4.2783817580922045e-5,-9.174529986143186e-9,7.615641863347267e-4,4.288746563387388e-5,-9.214382010099968e-9,7.615458421224065e-4,4.289030424473849e-5,-9.215981555878051e-9,7.615493776879412e-4,4.280020160465099e-5,-9.181526671744856e-9,7.616042486398303e-4,4.26385797343642e-5,-9.118594656166542e-9,7.61730210455046e-4,4.2435795379432153e-5,-9.03837554219817e-9,7.61936050598561e-4,4.222646210520275e-5,-8.953874020503188e-9,7.622194897874063e-4,4.204535712200338e-5,-8.87837427683221e-9,7.625676250645121e-4,4.1923882039288665e-5,-8.824153587401546e-9,7.629576171601758e-4,4.188660389994002e-5,-8.801211913123232e-9,0.00076335781686778445,4.194730410322629e-5,-8.815719768604965e-9,7.637301806589586e-4,4.210424149540176e-5,-8.868024377405146e-9,7.640353866362429e-4,4.233530176320579e-5,-8.950502771608857e-9,7.642418368971225e-4,4.259542541961727e-5,-9.046295943306457e-9,7.643379706413167e-4,4.282042794217269e-5,-9.130652554192153e-9,7.643436783033333e-4,4.29411494887276e-5,-9.176459932444947e-9,7.643128225427903e-4,4.290719105443412e-5,-9.163573390875584e-9,7.643198908851147e-4,4.27107298651634e-5,-9.088104238947882e-9,7.644329712891078e-4,4.23954390951903e-5,-8.965872528852865e-9,7.646866633436667e-4,4.204199444422708e-5,-8.826934866527333e-9,7.650704200976676e-4,4.17372669333947e-5,-8.704057045239502e-9,7.655369936842672e-4,4.154471093131832e-5,-8.621706108552556e-9,7.660227565342318e-4,4.1489461027239444e-5,-8.590446292021975e-9,7.664679096395077e-4,4.155968867214678e-5,-8.60719762281304e-9,7.668295552510263e-4,4.1717667344140696e-5,-8.65897698447111e-9,7.670867797953163e-4,4.191334217832278e-5,-8.727615499482921e-9,7.672399375245228e-4,4.209611415617943e-5,-8.794011363368658e-9,7.673067113076542e-4,4.2223374435902354e-5,-8.841422117427617e-9,7.673167461421355e-4,4.226589688328241e-5,-8.857772846673981e-9,7.673057770691697e-4,4.221051342646373e-5,-8.837001052988211e-9,7.673098402283448e-4,4.206030802892788e-5,-8.779391079594279e-9,7.673601781277127e-4,4.18326361185597e-5,-8.690943756311483e-9,7.674793660680467e-4,4.1555511526051535e-5,-8.58199870451685e-9,7.676789770593695e-4,4.126301892957958e-5,-8.465429763661297e-9,7.679588364412986e-4,4.0990480338567314e-5,-8.354768907767848e-9,7.683075907368027e-4,4.077001331558171e-5,-8.262536838002104e-9,7.687041577968274e-4,4.062672035544098e-5,-8.198843955832656e-9,7.691197778494181e-4,4.057536670843389e-5,-8.170131786714939e-9,7.69520695114969e-4,4.061730481647757e-5,-8.17788778750396e-9,7.698719236009533e-4,4.073758088267318e-5,-8.217289031700045e-9,7.701429410375053e-4,4.090284202188645e-5,-8.276083307954193e-9,7.703158959245221e-4,4.106194157234824e-5,-8.334583011415699e-9]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json new file mode 100644 index 0000000..ed067a1 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":12000,"numberOfSamples":1000,"samples":[7.703954280162467e-4,4.1152337826266915e-5,-8.368108119871265e-9,7.704163319665058e-4,4.111507788730868e-5,-8.352989399151336e-9,7.704421464154993e-4,4.091720944904923e-5,-8.275542352848811e-9,7.705485092428724e-4,4.05724562623383e-5,-8.140252864992262e-9,7.707939985966856e-4,4.014524130054576e-5,-7.971353086916377e-9,7.71193504222048e-4,3.972957759547678e-5,-7.80469566907836e-9,7.717115053607008e-4,3.9412072212316335e-5,-7.673655282248528e-9,7.722792203821364e-4,3.924081276169691e-5,-7.597334312683116e-9,7.728228927422465e-4,3.921592014800571e-5,-7.576902082499595e-9,7.732865636479628e-4,3.930044006202883e-5,-7.599469965429773e-9,7.736417360467977e-4,3.9439508716162856e-5,-7.645015059481085e-9,7.738862021781628e-4,3.9577299627356655e-5,-7.692550022805146e-9,7.740375781067476e-4,3.9667776867413035e-5,-7.724156675043192e-9,7.741257583521852e-4,3.9679734947780095e-5,-7.727075835179889e-9,7.741863193020013e-4,3.959810915098842e-5,-7.69451274251175e-9,7.742552430288779e-4,3.9423328672554246e-5,-7.625696494804441e-9,7.743646142276804e-4,3.9169548057952974e-5,-7.525395913350832e-9,7.745390796275454e-4,3.886191912277735e-5,-7.4029175785362335e-9,7.747931611691499e-4,3.853296073940333e-5,-7.2706518736087654e-9,7.751296404933389e-4,3.821816871539602e-5,-7.14230656603222e-9,7.75539277044951e-4,3.795118644851318e-5,-7.03102083378519e-9,7.760019965895818e-4,3.7759097444815016e-5,-6.947589780698099e-9,7.764894114568546e-4,3.7658393030000226e-5,-6.898960011119357e-9,7.769683935525284e-4,3.765194567776308e-5,-6.887041206138857e-9,7.77405468600329e-4,3.7727187339015794e-5,-6.907852463658269e-9,7.777719367210197e-4,3.7855696317654865e-5,-6.951096001721251e-9,7.780497715515111e-4,3.799465132874708e-5,-7.000433114460731e-9,7.782381033839588e-4,3.809125972066116e-5,-7.035036448543083e-9,7.783590131789634e-4,3.809174285674149e-5,-7.033143881376136e-9,7.784595953194529e-4,3.795570392998253e-5,-6.97793131163529e-9,7.786057068107846e-4,3.767368510457848e-5,-6.864708360881282e-9,7.78863996118783e-4,3.728037531656348e-5,-6.706310810691064e-9,7.792756265371022e-4,3.685219468959701e-5,-6.532225465482031e-9,7.798348397283327e-4,3.648330405006227e-5,-6.379231745544197e-9,7.804875774404013e-4,3.624915992465997e-5,-6.277220111165846e-9,7.811532791147602e-4,3.6178446406365796e-5,-6.238248751260801e-9,7.817563618614648e-4,3.624887846641678e-5,-6.254752293779451e-9,7.822492066349364e-4,3.6404572752001926e-5,-6.305999039127454e-9,7.826184621073835e-4,3.658034238992342e-5,-6.367226110433409e-9,7.828786448897808e-4,3.672020080806501e-5,-6.416659701095429e-9,7.830611528872669e-4,3.678622737434062e-5,-6.439002339589363e-9,7.83204269111392e-4,3.6760045223355876e-5,-6.4262288080890655e-9,7.83346116265409e-4,3.6640538094929564e-5,-6.376990645821899e-9,7.835202865150684e-4,3.644047816686522e-5,-6.2955425776532835e-9,7.837530585274323e-4,3.618322636043522e-5,-6.190565289506217e-9,7.840613538345039e-4,3.5899528490766174e-5,-6.073894295370791e-9,7.844511692520874e-4,3.56240404001225e-5,-5.959079652820332e-9,7.849166362486965e-4,3.5391266889247926e-5,-5.859734881539029e-9,7.854401461991078e-4,3.5230870470624936e-5,-5.787703349498604e-9,7.85994077008628e-4,3.516280326863614e-5,-5.751203618221222e-9,7.865443681490566e-4,3.519312942196211e-5,-5.753224515569559e-9,7.870557121649313e-4,3.531147041257569e-5,-5.790462278713693e-9,7.874977374834473e-4,3.549084781661851e-5,-5.8530751899271e-9,7.878512977067683e-4,3.5690381696580056e-5,-5.925483082828172e-9,7.88113902130303e-4,3.586089281430252e-5,-5.9883395159535995e-9,7.883033069918536e-4,3.595324388575569e-5,-6.021732124830117e-9,7.884579960410935e-4,3.5929083510116866e-5,-6.009544248256601e-9,7.886327975757129e-4,3.577280030598468e-5,-5.9444715378693474e-9,7.888879780100181e-4,3.550164046195876e-5,-5.832367391647236e-9,7.8927192870103e-4,3.51687389345516e-5,-5.693704861085736e-9,7.898018205719634e-4,3.4853326117873307e-5,-5.559814012217819e-9,7.904515896948133e-4,3.4636846056963114e-5,-5.463410169207496e-9,7.911567365586743e-4,3.457328365667514e-5,-5.426733674861982e-9,7.91836723351535e-4,3.4669207955395765e-5,-5.453450884163303e-9,7.924237202788972e-4,3.488486649734166e-5,-5.5288267094573905e-9,7.928824548961669e-4,3.515389152880303e-5,-5.627269436403621e-9,7.932136820118008e-4,3.540839736028799e-5,-5.722097489506235e-9,7.934449059141124e-4,3.5597063748403574e-5,-5.792673659357338e-9,7.936168882573704e-4,3.569210775996662e-5,-5.827295173952732e-9,7.937723217445624e-4,3.568791359332356e-5,-5.822884193637893e-9,7.93948800831336e-4,3.559595323883983e-5,-5.783216738249511e-9,7.941754088277288e-4,3.543933477989003e-5,-5.716920600537979e-9,7.944713320113322e-4,3.524834071649752e-5,-5.635744464363097e-9,7.948452117223364e-4,3.505690102972568e-5,-5.5531067119024055e-9,7.952946621025866e-4,3.489936168856889e-5,-5.482741290558481e-9,7.958060134527227e-4,3.4806877971801684e-5,-5.437234302862502e-9,7.963548356244236e-4,3.4803064153757236e-5,-5.4263155715433935e-9,7.969080873912969e-4,3.4899187129560714e-5,-5.454979598662578e-9,7.974285582348853e-4,3.50899868901018e-5,-5.521799771482021e-9,7.978815595783528e-4,3.53517139310461e-5,-5.618028402827992e-9,7.982428279621153e-4,3.5643920541599894e-5,-5.728107579266846e-9,7.985056927078104e-4,3.591576113045357e-5,-5.8319638327390805e-9,7.986852279968585e-4,3.6116131940588234e-5,-5.908914090462572e-9,7.988176580367524e-4,3.620557989303193e-5,-5.942429308719043e-9,7.989544079791842e-4,3.616720864975489e-5,-5.924668401918435e-9,7.991513656849079e-4,3.601375362426653e-5,-5.859607617947738e-9,7.994550428476274e-4,3.5788266373648105e-5,-5.763648882378041e-9,7.99888593020665e-4,3.5556588356057684e-5,-5.662870662485801e-9,8.004419741134302e-4,3.539153188530321e-5,-5.586797190304597e-9,8.010710698253013e-4,3.5351857597047766e-5,-5.559879219657929e-9,8.017086298947224e-4,3.546304659868737e-5,-5.5935163200738305e-9,8.022846671415112e-4,3.5708577068191366e-5,-5.6822096378184195e-9,8.027481145977655e-4,3.603666410112383e-5,-5.805964874906324e-9,8.03080122412991e-4,3.637928126071499e-5,-5.9377647708489825e-9,8.032943410005627e-4,3.66738652272459e-5,-6.0522761139605395e-9,8.034269249007324e-4,3.687843167960255e-5,-6.132033879229968e-9,8.035230519879982e-4,3.697653334579644e-5,-6.1696217748146e-9,8.036257380118303e-4,3.6974206946549126e-5,-6.166656508896828e-9,8.037692352128727e-4,3.689330257374978e-5,-6.131278442552063e-9,8.039764427338145e-4,3.6764723596644845e-5,-6.075520263494496e-9,8.042586457584074e-4,3.662315128777011e-5,-6.013183162784273e-9,8.046160819092535e-4,3.6503272989771094e-5,-5.9582713714511854e-9,8.050385231957502e-4,3.643678976682334e-5,-5.9237473528870625e-9,8.055057955743184e-4,3.644934285412461e-5,-5.920288595123292e-9,8.05988792090945e-4,3.655676717208342e-5,-5.95478706400642e-9,8.064519656770659e-4,3.676075426661275e-5,-6.028574833606665e-9,8.068582848986766e-4,3.7045013088594046e-5,-6.1357749440002495e-9,8.071769237677392e-4,3.737399900933667e-5,-6.26261951082692e-9,8.073924491758243e-4,3.769659412573422e-5,-6.388754892200863e-9,8.075124666197616e-4,3.7955997865778476e-5,-6.491115253060035e-9,8.075698393218493e-4,3.8104352666225344e-5,-6.549812033282912e-9,8.07616918266904e-4,3.811755258854625e-5,-6.5542030392740885e-9,8.077125028108634e-4,3.8004458985452114e-5,-6.506795533466793e-9,8.079056000982033e-4,3.780654452780539e-5,-6.4233624926436094e-9,8.082214227720043e-4,3.758774308343327e-5,-6.3291414262697445e-9,8.086539871520523e-4,3.741775103981728e-5,-6.252328710187585e-9,8.091672759069606e-4,3.7353752588214316e-5,-6.216752306565877e-9,8.097045052884347e-4,3.742558962134468e-5,-6.235686559437506e-9,8.10203012993122e-4,3.7628423384850995e-5,-6.308502277607127e-9,8.106106251449948e-4,3.792510731679957e-5,-6.421212634856097e-9,8.108985322821864e-4,3.8257644162653106e-5,-6.550833196339432e-9,8.11066628774171e-4,3.856383400569566e-5,-6.6720638631456955e-9,8.111401568994287e-4,3.8793232686939005e-5,-6.763879623403471e-9,8.111600098107639e-4,3.89173073971411e-5,-6.813868422693099e-9,8.111711107269196e-4,3.893182181341246e-5,-6.8194280235812216e-9,8.112128636990658e-4,3.8852913529948424e-5,-6.786357912765378e-9,8.1131356935384e-4,3.8710088334482416e-5,-6.726121364291298e-9,8.114885730374386e-4,3.853908980505929e-5,-6.652976845483148e-9,8.117408037071133e-4,3.837625006855202e-5,-6.5816575047402725e-9,8.120622864326276e-4,3.825456404102906e-5,-6.5257403552766695e-9,8.124357145823514e-4,3.82008938099246e-5,-6.496493824519633e-9,8.128358550233297e-4,3.823344877076438e-5,-6.50185004606853e-9,8.132312194083829e-4,3.8358874558908814e-5,-6.54518991660995e-9,8.135869354214777e-4,3.856887726212377e-5,-6.623869747140799e-9,8.138698868858205e-4,3.8837323813125146e-5,-6.727869263055802e-9,8.140566018155787e-4,3.91199837876055e-5,-6.83950023112515e-9,8.141427039935174e-4,3.935979230186433e-5,-6.9354371500791985e-9,8.14150262656473e-4,3.949946847388898e-5,-6.9918722744796985e-9,8.141277285832854e-4,3.949960053306327e-5,-6.991994835378283e-9,8.141388942367572e-4,3.935526219250151e-5,-6.93289197521611e-9,8.142430879224422e-4,3.910207785679162e-5,-6.8281493368907015e-9,8.144749296276758e-4,3.880686864520632e-5,-6.704223833237992e-9,8.1483306083408e-4,3.854646680042599e-5,-6.592073096421126e-9,8.152821053230805e-4,3.838435896231063e-5,-6.5178631025860026e-9,8.157651947313659e-4,3.835428291873892e-5,-6.49629781434836e-9,8.162207450781731e-4,3.845478693315215e-5,-6.528135674230928e-9,8.16597684699937e-4,3.865376270796675e-5,-6.60159629155916e-9,8.168657158061926e-4,3.889947743847334e-5,-6.69644446442954e-9,8.170194049574676e-4,3.913422953807289e-5,-6.7893400986806185e-9,8.17076394641524e-4,3.930728020730456e-5,-6.85914255437804e-9,8.170710316645813e-4,3.938449175604022e-5,-6.891061862959034e-9,8.170454569870298e-4,3.935306732398158e-5,-6.878882809994513e-9,8.170405722878981e-4,3.9221105681444305e-5,-6.825033584806315e-9,8.1708896023377e-4,3.901310215359767e-5,-6.7388979016364186e-9,8.172108407223391e-4,3.87633764776707e-5,-6.634171213681119e-9,8.174130175522054e-4,3.850938229687362e-5,-6.526094414707984e-9,8.176899834395489e-4,3.8286205079792516e-5,-6.4291520891420515e-9,8.180260959470649e-4,3.812267075009407e-5,-6.3554492104173685e-9,8.183979894619872e-4,3.803873780290355e-5,-6.313637763487015e-9,8.187769116206049e-4,3.804351923521837e-5,-6.308093725118056e-9,8.191312129866966e-4,3.813337134793312e-5,-6.338063937256885e-9,8.194296942684052e-4,3.8289922698924704e-5,-6.396704673018225e-9,8.196467238419641e-4,3.847879781237149e-5,-6.470354270719354e-9,8.197695294206804e-4,3.8650968100779566e-5,-6.538921130269099e-9,8.19806513649201e-4,3.874943540462814e-5,-6.5785960033068025e-9,8.197929489727498e-4,3.8723134804595094e-5,-6.5676898771434025e-9,8.197883002079536e-4,3.854613941350416e-5,-6.4947236728071645e-9,8.198609759695765e-4,3.823403064971981e-5,-6.365297279203114e-9,8.200636944477346e-4,3.784594464219167e-5,-6.203000857389413e-9,0.000820411436661712,3.746667085519243e-5,-6.042172936215794e-9,8.208749674671344e-4,3.7176223092774686e-5,-5.915617415305801e-9,8.213932248000017e-4,3.7022992160726405e-5,-5.843759010230899e-9,8.218961027605576e-4,3.701275044446644e-5,-5.830076453078521e-9,8.223254904904929e-4,3.711435819021485e-5,-5.863118056849916e-9,8.226473843906112e-4,3.727482958449793e-5,-5.922239824745653e-9,8.228545590175748e-4,3.7435687186837764e-5,-5.983966399587255e-9,8.229627474394682e-4,3.7545885310616436e-5,-6.027176921838554e-9,8.230036090129152e-4,3.756990148797665e-5,-6.036554527428151e-9,8.230167806825249e-4,3.749138311092206e-5,-6.004372061981051e-9,8.230423185742567e-4,3.731317666393389e-5,-5.930818699795622e-9,8.231143493501816e-4,3.705449505134662e-5,-5.823063768625377e-9,8.23256553209646e-4,3.674606808012696e-5,-5.693352353058202e-9,8.234798189428454e-4,3.642429612693932e-5,-5.556571384393087e-9,8.237820413355269e-4,3.6125418828181186e-5,-5.427765212931279e-9,8.241496751844597e-4,3.588054059534543e-5,-5.320016584338888e-9,8.245603883153199e-4,3.571199342395666e-5,-5.242923452023574e-9,8.249861688108776e-4,3.563099782478505e-5,-5.201638270344065e-9,8.253965549120751e-4,3.563626588694151e-5,-5.1962726434097535e-9,8.257620082869455e-4,3.571323197160154e-5,-5.221486300041849e-9,8.260577695440884e-4,3.583385451251235e-5,-5.266230045559657e-9,8.262687299902825e-4,3.595753207818218e-5,-5.313924512584801e-9,8.263954241197148e-4,3.6034603798458864e-5,-5.343784865943491e-9,8.264598903887887e-4,3.601442540484084e-5,-5.334201311502159e-9,8.265081515702821e-4,3.585914554288692e-5,-5.268642284511385e-9,8.26604385596247e-4,3.556101693181241e-5,-5.143074426032549e-9,8.268132192939278e-4,3.515537353926115e-5,-4.971501142912185e-9,8.271738744510702e-4,3.471782861774951e-5,-4.7848532086355065e-9,8.276795586094963e-4,3.4340322196190036e-5,-4.621118053741745e-9,8.282766891716653e-4,3.4095760039524445e-5,-4.5108069909192165e-9,8.288861464980373e-4,3.401140563924369e-5,-4.465996728964361e-9,8.29433355059079e-4,3.406500941237964e-5,-4.4785874372255114e-9,8.298704729894737e-4,3.420103631857123e-5,-4.526688711410476e-9,8.301833096396713e-4,3.4353709967328716e-5,-4.583790454622501e-9,8.303862100769367e-4,3.446546478614344e-5,-4.626173157513306e-9,8.305118250621173e-4,3.449687603771798e-5,-4.6370194576684565e-9,8.306008664699762e-4,3.442941009341466e-5,-4.607762309491803e-9,8.306940322478887e-4,3.426386875947961e-5,-4.537752547464339e-9,8.308263261536525e-4,3.401682527001027e-5,-4.4330652748613145e-9,8.310232819304966e-4,3.371620106257414e-5,-4.304822699303797e-9,8.312987280593526e-4,3.339641097448233e-5,-4.167187973746248e-9,8.31653979219806e-4,3.309335744578138e-5,-4.0351952674026125e-9,8.32078417238307e-4,3.283958122742209e-5,-3.9226242940869606e-9,8.325514069439921e-4,3.26599656110982e-5,-3.8401496329485945e-9,8.330453353948687e-4,3.256846904668967e-5,-3.793977723288974e-9,8.335293651888821e-4,3.2566169333962955e-5,-3.785049055168084e-9,8.33973516225973e-4,3.264061001145597e-5,-3.808740687729704e-9,8.343528580041156e-4,3.2766396288388346e-5,-3.855005633134729e-9,8.346517248312861e-4,3.290709657118518e-5,-3.9089874063833434e-9,8.348679389439184e-4,3.301872928211123e-5,-3.95230090306051e-9,8.350167359300278e-4,3.305558632640454e-5,-3.965393684369818e-9,8.351331058149185e-4,3.297932755397413e-5,-3.9314416005053e-9,8.352699660831031e-4,3.277126367429032e-5,-3.8417220291605366e-9,8.354889117471341e-4,3.244507340953231e-5,-3.7012047953805833e-9,8.358419691208809e-4,3.205326833172769e-5,-3.531440109697599e-9,8.36348763283404e-4,3.167867290599403e-5,-3.3670502139274996e-9,8.369813197061595e-4,3.140782451156133e-5,-3.244586908337016e-9,8.376693061030729e-4,3.129669563122999e-5,-3.1881493598681102e-9,8.383263658012633e-4,3.134863920078477e-5,-3.200051972071662e-9,8.388826052155265e-4,3.151766556410064e-5,-3.2619908468242225e-9,8.393050072888866e-4,3.173205489277276e-5,-3.344664087646371e-9,8.395988757541516e-4,3.192172100776251e-5,-3.419003963066664e-9,8.397963286098811e-4,3.203621272799185e-5,-3.46362815353071e-9,8.399416326313247e-4,3.205061679819683e-5,-3.4674080518768483e-9,8.400794992423449e-4,3.1963263817541386e-5,-3.4287495907215916e-9,8.402479103687121e-4,3.179002909330446e-5,-3.3534888117140308e-9,8.404745687451004e-4,3.155830071326884e-5,-3.2525737289196144e-9,8.407754646399417e-4,3.130173895136262e-5,-3.1399368209433314e-9,8.41154541388092e-4,3.1055764720891035e-5,-3.0305415711644196e-9,8.416041280544131e-4,3.085345156272672e-5,-2.9385364426828023e-9,8.421061656017975e-4,3.072164283076384e-5,-2.8755213785209154e-9,8.426344113814458e-4,3.067736638925079e-5,-2.8490015368691745e-9,8.431577953645121e-4,3.072498523450466e-5,-2.8612024549307127e-9,8.436447971117692e-4,3.085470440573325e-5,-2.9084547718786858e-9,8.440683720702881e-4,3.1042869672780824e-5,-2.981273689818602e-9,8.444108321936859e-4,3.125426055813509e-5,-3.065198477158535e-9,8.446680629527056e-4,3.144642492558669e-5,-3.142451937358192e-9,8.448524507159502e-4,3.15759057443261e-5,-3.194437005461156e-9,8.449938340091091e-4,3.160610588444374e-5,-3.2050494314965393e-9,8.451374660071655e-4,3.151638576719877e-5,-3.1646699302547115e-9,8.453375715697237e-4,3.1311130994121866e-5,-3.0742611477808833e-9,8.456453986738488e-4,3.1025780835067146e-5,-2.94819557957702e-9,8.46092653379528e-4,3.0725045293271956e-5,-2.81368862948315e-9,8.466753220872281e-4,3.0488818598972834e-5,-2.704879810332908e-9,8.473471109643087e-4,3.038640446510119e-5,-2.6518278127619258e-9,8.480305696476147e-4,3.0449024854662588e-5,-2.668679548466348e-9,8.486441257401572e-4,3.065628903781551e-5,-2.7477040330430985e-9,8.491313375173792e-4,3.094576582096809e-5,-2.8631317709746885e-9,8.494766164139384e-4,3.123946697058364e-5,-2.9822273668107125e-9,8.497020423260754e-4,3.1471127846907625e-5,-3.0767866876898872e-9,8.498521170161459e-4,3.16017891014394e-5,-3.129775126187276e-9,8.499770409409726e-4,3.1621830699592834e-5,-3.1363362066964675e-9,8.501209480543094e-4,3.1544720456021056e-5,-3.1013685836141294e-9,8.503161532077362e-4,3.1398399640952655e-5,-3.036097487468567e-9,8.505816546173871e-4,3.1217759899263695e-5,-2.9550165687006546e-9,8.509236995527479e-4,3.103916188717301e-5,-2.8735662703891047e-9,8.513369862483362e-4,3.0896507607776705e-5,-2.8063743424389867e-9,8.518060495699486e-4,3.081805794501351e-5,-2.7657886014572145e-9,8.523069735798167e-4,3.082345930368575e-5,-2.7605358876292335e-9,8.528098318936862e-4,3.0920864735206294e-5,-2.79447672381635e-9,8.532822991542584e-4,3.110457416848017e-5,-2.8656065993726486e-9,8.536945524033567e-4,3.1354085988535145e-5,-2.965633018689591e-9,8.540249574865114e-4,3.163548969538209e-5,-3.080489694586202e-9,8.542654720972812e-4,3.190574453586719e-5,-3.192028596537508e-9,8.544254041595665e-4,3.211974836915866e-5,-3.28090202256463e-9,8.545322236510779e-4,3.2239278828225266e-5,-3.3303148632010992e-9,8.546285733291039e-4,3.224218246448245e-5,-3.330007151957699e-9,8.547652672831671e-4,3.2129878781118014e-5,-3.279649312494011e-9,8.549907364400541e-4,3.193111420486313e-5,-3.1907193571916717e-9,8.553382926807156e-4,3.1699773222277685e-5,-3.0858345714949625e-9,8.558140144434115e-4,3.150496484434305e-5,-2.9946769942906606e-9,8.563897321781071e-4,3.1413455736156216e-5,-2.9464704670555277e-9,8.570061787799461e-4,3.1468304822318046e-5,-2.960646903904852e-9,8.575886586831152e-4,3.167199701229673e-5,-3.039317862345337e-9,8.580709942206223e-4,3.198346246211776e-5,-3.1656988018487623e-9,8.584171135061124e-4,3.233248147476386e-5,-3.310099393214403e-9,8.586297960336273e-4,3.264478971416768e-5,-3.440645754903185e-9,8.587438963877701e-4,3.286515489171303e-5,-3.5332321749884526e-9,8.58810255130539e-4,3.2968897888927814e-5,-3.5765784450704622e-9,8.588794391843271e-4,3.2960802961293873e-5,-3.5719305847910328e-9,8.589911009932855e-4,3.2866533850223576e-5,-3.529577019202463e-9,8.591697919005255e-4,3.272249454060714e-5,-3.4646650245504987e-9,8.594251730433313e-4,3.256765883619841e-5,-3.393767811079765e-9,8.597541389353542e-4,3.2438210292960187e-5,-3.3325521813766835e-9,8.601432315592983e-4,3.236427582707883e-5,-3.2942803106507433e-9,8.605707893509768e-4,3.236765846754327e-5,-3.2887387933129255e-9,8.610090272757816e-4,3.245976837958149e-5,-3.3212886990489386e-9,8.614266330715411e-4,3.2639496241471747e-5,-3.3919234343927197e-9,8.617925265638105e-4,3.289145361493536e-5,-3.4944824234170423e-9,8.620810773671341e-4,3.318566240946574e-5,-3.616455097562243e-9,8.62278291344594e-4,3.3480062508905175e-5,-3.7399625948591e-9,8.623874686730959e-4,3.372681857367478e-5,-3.844371487446432e-9,8.624320722870976e-4,3.38822001208865e-5,-3.910489310686052e-9,8.624536695365803e-4,3.391801974913249e-5,-3.925509323340507e-9,8.625041693741896e-4,3.3831145103447495e-5,-3.887217720697746e-9,8.626336863724894e-4,3.364749744285424e-5,-3.805912914971897e-9,8.628771728569449e-4,3.34184061309152e-5,-3.703085242205503e-9,8.632436901356097e-4,3.3209472451514874e-5,-3.606852247536402e-9,8.637117164869609e-4,3.30843353744748e-5,-3.5450791305814132e-9,8.64232526978409e-4,3.30874054017447e-5,-3.537852982664476e-9,8.647417259564168e-4,3.32305264787094e-5,-3.591449619924816e-9,8.651764977358669e-4,3.348834402295054e-5,-3.695963620118213e-9,8.654934113410493e-4,3.380514974584113e-5,-3.827962144226022e-9,8.65680227216288e-4,3.411174050293928e-5,-3.957644664897803e-9,8.657570330287688e-4,3.4346041766830635e-5,-4.057808965225653e-9,8.657669387277931e-4,3.446932313815453e-5,-4.11101586076775e-9,8.657613435022625e-4,3.4472588411529344e-5,-4.112539581686109e-9,8.657862135868558e-4,3.4373094380466114e-5,-4.069050533975013e-9,8.658735763707832e-4,3.4205060581144676e-5,-3.99475967321788e-9,8.660388852455758e-4,3.400943296480929e-5,-3.907091687927469e-9,8.66282466493992e-4,3.3825844969993364e-5,-3.823219696797409e-9,8.665927137849105e-4,3.3687619719216236e-5,-3.7578388388344435e-9,8.669494024009601e-4,3.361913423273398e-5,-3.7219299984715987e-9,8.673264891657124e-4,3.363439881774626e-5,-3.7220625465320145e-9,8.676945418145927e-4,3.373592694579208e-5,-3.7598487309122184e-9,8.680234235964354e-4,3.391351714465576e-5,-3.831368929963179e-9,8.682859972296471e-4,3.4143297256214016e-5,-3.926691202132316e-9,8.684632880644983e-4,3.4388163647136244e-5,-4.029972466578756e-9,8.685506814790997e-4,3.460127638371885e-5,-4.120889818604067e-9,8.685633840062911e-4,3.4734023180121915e-5,-4.178058611548191e-9,8.685380720783138e-4,3.4748252417980764e-5,-4.184372534042753e-9,8.685276349437916e-4,3.462966914812959e-5,-4.132901756292709e-9,8.685883291320915e-4,3.439669502663824e-5,-4.030854924441111e-9,8.687628382465881e-4,3.409933619952682e-5,-3.8992420211352555e-9,8.690658895057307e-4,3.3806647123293056e-5,-3.767634596223998e-9,8.694785799556857e-4,3.358696397155016e-5,-3.66578227162126e-9,8.69953568550893e-4,3.348840676249508e-5,-3.6152232829612797e-9,8.704286241585501e-4,3.352635120659295e-5,-3.623705146793659e-9,8.708434233092473e-4,3.36810197345908e-5,-3.6838087593563796e-9,8.711544860856722e-4,3.390464015558857e-5,-3.775680273187482e-9,8.713445725476498e-4,3.4135193673201416e-5,-3.872743220397276e-9,8.714246913321904e-4,3.4312587501143965e-5,-3.948669842514471e-9,8.714288385999942e-4,3.4392832306213484e-5,-3.983673438771948e-9,8.714035709437477e-4,3.4356588349835174e-5,-3.968454991877816e-9,8.713959401397892e-4,3.4210390500048455e-5,-3.904979500162979e-9,8.714434314935408e-4,3.398142071965159e-5,-3.80439632081465e-9,8.715682144280527e-4,3.370866502664886e-5,-3.6833035835006632e-9,8.717760142029626e-4,3.343373250814609e-5,-3.5597712152619653e-9,8.720583485322628e-4,3.3193644320049306e-5,-3.450143545804329e-9,8.723963305223968e-4,3.301640385510928e-5,-3.367013852901416e-9,8.727645877754009e-4,3.2918942751948914e-5,-3.318240190622122e-9,8.731346053164378e-4,3.290646426016532e-5,-3.3065975355143806e-9,8.734775263631105e-4,3.297227361968222e-5,-3.329661479803068e-9,8.737669246598247e-4,3.3097659941762863e-5,-3.3797021541565744e-9,8.739822501713752e-4,3.325204966262417e-5,-3.443668277316694e-9,8.741134429392175e-4,3.339441456133996e-5,-3.5037068763647772e-9,8.741663973729802e-4,3.347758868121113e-5,-3.538992779628764e-9,8.741674829281171e-4,3.3457101736264556e-5,-3.529614543781381e-9,8.741636709228396e-4,3.33044797175946e-5,-3.4624919926690294e-9,8.742144615830622e-4,3.302135267114131e-5,-3.337668517116169e-9,8.743747932608298e-4,3.264687423555464e-5,-3.1716545924770886e-9,8.746743840366114e-4,3.2251051243278426e-5,-2.9946081022665746e-9,8.751039489192597e-4,3.1913364921373566e-5,-2.841130150424048e-9,8.75616678903275e-4,3.169573821909346e-5,-2.738595983860198e-9,8.761445007935473e-4,3.162302292091491e-5,-2.698649906049282e-9,8.766203447195945e-4,3.167892308982781e-5,-2.715236885002451e-9,8.769963987697803e-4,3.18159383463042e-5,-2.7686104110067445e-9,8.772531062745815e-4,3.197221978649029e-5,-2.8323654947714774e-9,8.773990475854998e-4,3.2088299096119665e-5,-2.880564943726866e-9,8.774645762292172e-4,3.211954673233677e-5,-2.893205151464858e-9,8.774924155916585e-4,3.204298846969703e-5,-2.8593905607603026e-9,8.775277330636137e-4,3.185874387139908e-5,-2.778242446816188e-9,8.776094585559394e-4,3.158700840416259e-5,-2.657838435817586e-9,8.777641128132043e-4,3.126183960920271e-5,-2.5126548703569532e-9,8.78002877757191e-4,3.092341017264447e-5,-2.360210638245288e-9,8.78321864386743e-4,3.061051760107952e-5,-2.217716237311034e-9,8.787048132667152e-4,3.0354696413936292e-5,-2.0993733631963004e-9,8.791271129207127e-4,3.0176554948077197e-5,-2.0146576508170057e-9,8.795600526842855e-4,3.0084265265720063e-5,-1.9675904842138486e-9,8.799746005764623e-4,3.0073592700195904e-5,-1.9567272155798592e-9,8.803445685727407e-4,3.0128701933306585e-5,-1.9754931411414064e-9,8.806494724082241e-4,3.0223295863434567e-5,-2.012635250546257e-9,8.808775707256542e-4,3.0322170015652122e-5,-2.052817626545346e-9,8.810294629751855e-4,3.0383874541022066e-5,-2.077700737209661e-9,8.811219817814094e-4,3.0365784932921254e-5,-2.068140259899549e-9,8.811907881742122e-4,3.0232911390513986e-5,-2.0081342888122047e-9,8.812885190182023e-4,2.997035224275941e-5,-1.8904615726488688e-9,8.814748050867232e-4,2.9595882363843328e-5,-1.7223897108962145e-9,8.817972325406356e-4,2.9164896341324755e-5,-1.5279575596742727e-9,8.822694105023639e-4,2.8759323793384683e-5,-1.343146342028477e-9,8.828590048460752e-4,2.846005103322195e-5,-1.203784176843767e-9,8.834961316970444e-4,2.8315408404152892e-5,-1.1317019817736651e-9,8.840994293836644e-4,2.83238474756633e-5,-1.1270381711241277e-9,8.846048503517724e-4,2.8439563876848128e-5,-1.1705107836514342e-9,8.849825261434277e-4,2.859423427913567e-5,-1.2327153363012424e-9,8.852377405673897e-4,2.872082247503333e-5,-1.2843809606697235e-9,8.854014350719654e-4,2.876976020388615e-5,-1.303411303612948e-9,8.855175691600622e-4,2.8715569658327886e-5,-1.277894686911527e-9,8.856319414654461e-4,2.8556383656666185e-5,-1.2061264571813115e-9,8.857841196699158e-4,2.8309570284204513e-5,-1.0949624616496077e-9,8.86002414496257e-4,2.800577749822175e-5,-9.574157297751806e-10,8.863013254260068e-4,2.7682541703841347e-5,-8.099261480403505e-10,8.866810883604368e-4,2.737801278175877e-5,-6.695408320630273e-10,8.871291034948231e-4,2.712535762590261e-5,-5.513048593649785e-10,8.876228817584209e-4,2.6948399119048687e-5,-4.661876242949888e-10,8.881339924077757e-4,2.6858865286951922e-5,-4.197713685400893e-10,8.886323956855838e-4,2.6855412138336997e-5,-4.1179225649502044e-10,8.890905424093482e-4,2.6924258581403914e-5,-4.3643441475982406e-10,8.89486876270744e-4,2.704096977561104e-5,-4.831197421077393e-10,8.898087302066524e-4,2.7172978043164845e-5,-5.375765842824722e-10,8.900547902185537e-4,2.7282747178927522e-5,-5.831513974124379e-10,8.902372653753913e-4,2.733186854749421e-5,-6.02542926548089e-10,8.903834851144673e-4,2.7286782595027556e-5,-5.803341451115104e-10,8.905356820182493e-4,2.712678713758405e-5,-5.066546828876249e-10,8.907466490935431e-4,2.6853822167289743e-5,-3.817222697006188e-10,8.910687379135351e-4,2.650095008026581e-5,-2.1981389275727818e-10,8.915358613141435e-4,2.613316302797963e-5,-4.974968918210426e-11,8.921441557986117e-4,2.583341569558239e-5,9.130127597938247e-11,8.928435576312597e-4,2.5673648601187617e-5,1.7077634639135572e-10,8.935508750856743e-4,2.5683679634147847e-5,1.7468326592194504e-10,8.941811428365587e-4,2.5837610180360195e-5,1.1381510218411522e-10,8.946793739990621e-4,2.6067113585673513e-5,1.8006901262402275e-11,8.950349091826171e-4,2.6291644820413183e-5,-7.717084794839584e-11,8.952750213494531e-4,2.6446389435700407e-5,-1.427663814093566e-10,8.954475970296075e-4,2.64960814946439e-5,-1.625988001066087e-10,8.956041887442954e-4,2.6435196735103513e-5,-1.334689640026147e-10,8.957887712051753e-4,2.6280905283114967e-5,-6.224871917615731e-11,8.960323226691599e-4,2.6064317323041538e-5,3.777765165941726e-11,8.963513575114935e-4,2.5822815459411318e-5,1.5017549800954496e-10,8.96748509792149e-4,2.5594124919428984e-5,2.5799083696445723e-10,8.972140957359525e-4,2.5411712108030967e-5,3.459131555119787e-10,8.97728398380985e-4,2.5301088813513795e-5,4.0208667445015245e-10,8.982646818886401e-4,2.5276973108559064e-5,4.19511702332487e-10,8.987928885022273e-4,2.5341491278246515e-5,3.969097854818967e-10,8.992838386101128e-4,2.548373838032777e-5,3.389148700251626e-10,8.997135067687896e-4,2.5680959581705512e-5,2.5551799630259e-10,9.000668011166033e-4,2.590128913974731e-5,1.6084571383571664e-10,9.003404075887244e-4,2.610773225553987e-5,7.143433854803536e-11,9.005444531271067e-4,2.626306035931546e-5,4.124552392039377e-12,9.00702826310028e-4,2.6335350498633444e-5,-2.636373164642357e-11,9.008518990331428e-4,2.6304027478397698e-5,-1.0173572691243059e-11,9.010369750715351e-4,2.616622985452215e-5,5.4685092455799334e-11,9.013053376731691e-4,2.5942528849006335e-5,1.5954350428825642e-10,9.016950534266347e-4,2.5679451672258137e-5,2.8372503804596007e-10,9.022205066966907e-4,2.544470577148632e-5,3.9657633063202955e-10,9.028595081446744e-4,2.5311299328910574e-5,4.6464848630157026e-10,9.035509621163673e-4,2.5331826054565013e-5,4.634519661365919e-10,9.042106403831823e-4,2.5513725417149697e-5,3.8884970955208253e-10,9.047617243836385e-4,2.5811755065389144e-5,2.60664002639359e-10,9.051639505218222e-4,2.614554976562279e-5,1.1486292999309726e-10,9.054243849394402e-4,2.6432431256007105e-5,-1.1230224109221291e-11,9.055864786501333e-4,2.6615750824420068e-5,-9.174245642919217e-11,9.057083348203511e-4,2.6675961252054152e-5,-1.1728835587695205e-10,9.05843511575355e-4,2.6625694545636095e-5,-9.286576972832296e-11,9.06030514980889e-4,2.649764658641052e-5,-3.258481232105302e-11,9.06290090659766e-4,2.6332711316700743e-5,4.5492394804177083e-11,9.066269079166894e-4,2.617147979221003e-5,1.230902666428942e-10,9.07032727485054e-4,2.6049140781842117e-5,1.8405636274430814e-10,9.074895537591257e-4,2.5992565692749985e-5,2.1580884693763228e-10,9.079725233622418e-4,2.601842289978903e-5,2.1034058494702972e-10,9.08452843161885e-4,2.6131794189518346e-5,1.649501949413581e-10,9.089011187176733e-4,2.632531969086917e-5,8.266582317282753e-11,9.092912509323934e-4,2.657930002330282e-5,-2.7811191372744197e-11,9.096046947811349e-4,2.686337600497953e-5,-1.5287896453951608e-10,9.098343835696975e-4,2.7140160235303376e-5,-2.756580777618742e-10,9.099874027396871e-4,2.737067976970732e-5,-3.7839683569915226e-10,9.100856080701482e-4,2.7521019033657425e-5,-4.4541806075215186e-10,9.101636727790192e-4,2.756915427471307e-5,-4.662024595936307e-10,9.102644580498961e-4,2.751076592587584e-5,-4.3810314345020306E-10,9.104319511252228e-4,2.736291054800073e-5,-3.681879685719245e-10,9.107022221916946e-4,2.7164432891512126e-5,-2.736553609265788e-10,9.110933354507029e-4,2.6971680885033756e-5,-1.800824904443576e-10,9.11596330532063e-4,2.6848117080263942e-5,-1.167738231171905e-10,9.121710507471927e-4,2.6847793958635906e-5,-1.0913815308381964e-10,9.12751534970597e-4,2.6996070209376236e-5,-1.6964949395235283e-10,9.132634636288651e-4,2.72756008370633e-5,-2.9115810444199527e-10,9.136492992958313e-4,2.762733566158342e-5,-4.471383736182009e-10,9.138892892803114e-4,2.797002314543524e-5,-6.005507786510418e-10,9.140064810409892e-4,2.8229735821653137e-5,-7.173953360843062e-10,9.140537060586121e-4,2.8363778381520954e-5,-7.777099880424133e-10,9.14091744347561e-4,2.8368259804342512e-5,-7.790964097262822e-10,9.141707165736832e-4,2.8270290432506036e-5,-7.332676996715194e-10,9.143209375298112e-4,2.811333903517838e-5,-6.595294780294835e-10,9.145523676781168e-4,2.7943782175206335e-5,-5.787922436801097e-10,9.148586524660526e-4,2.780218073489562e-5,-5.09645207598181e-10,9.15222213264884e-4,2.771907523928594e-5,-4.663750532641056e-10,9.156186000215372e-4,2.771356286516508e-5,-4.581833019385022e-10,9.160198239972885e-4,2.7793018214471577e-5,-4.889247071998724e-10,9.163971548837643e-4,2.795307226790254e-5,-5.570122799444724e-10,9.167240149473723e-4,2.8177711329907586e-5,-6.554310086134877e-10,9.169794235753807e-4,2.8439962674449603e-5,-7.720472188029496e-10,9.171519825482253e-4,2.870402885777489e-5,-8.905750008556582e-10,9.172436935254598e-4,2.8929649817970348e-5,-9.925419838939779e-10,9.172722940063046e-4,2.9078832692983632e-5,-1.0603291660817625e-9,9.172706400546866e-4,2.912409780548574e-5,-1.080924584550345e-9,9.17282157849279e-4,2.9056323329246427e-5,-1.0495469582952546e-9,9.17352548715972e-4,2.8889652042343435e-5,-9.719977617501207e-10,9.175193386587934e-4,2.8661331040972106e-5,-8.647637143988589e-10,9.178017998224793e-4,2.842566755332037e-5,-7.524533284368034e-10,9.181939299909826e-4,2.824278153652306e-5,-6.627971222401617e-10,9.186627846165465e-4,2.8164133229208014e-5,-6.200278774014088e-10,9.19153691738718e-4,2.8217986087638425e-5,-6.380459293784765e-10,9.196025451004935e-4,2.8398984740483134E-05,-7.153326477966576e-10,9.199531003263491e-4,2.8666337663424036e-5,-8.338087002295918e-10,9.201741950295597e-4,2.8953522843619235e-5,-9.631226655409933e-10,9.202698561839225e-4,2.918802920852016e-5,-1.0697405631849333e-9,9.202770539297086e-4,2.9313951870328424e-5,-1.1274657767908662e-9,9.20251788073042e-4,2.9307694253609973e-5,-1.1248038587933661e-9,9.202503631241845e-4,2.918064509705824e-5,-1.0663142394564279e-9,9.203142811661418e-4,2.897003743896867e-5,-9.68530131895985e-10,9.204634699590332e-4,2.8724513202568727e-5,-8.534492296718607e-10,9.206973132387841e-4,2.849110787091789e-5,-7.426352211365498e-10,9.209999773637789e-4,2.8307067355278376e-5,-6.534492842105844e-10,9.213465790289916e-4,2.8196472237938423e-5,-5.974035621587512e-10,9.21708293335506e-4,2.8169942280115928e-5,-5.798940312517992e-10,9.220560080914304e-4,2.8225631349565033e-5,-6.005462214024394e-10,9.223629986190541e-4,2.8350410654034294e-5,-6.536955210792199e-10,9.226073866112044e-4,2.8520935298446312e-5,-7.28851240962084e-10,9.227750120124014e-4,2.8705005688838147e-5,-8.113094184352923e-10,9.228628541636617e-4,2.886416079327547e-5,-8.833278120249603e-10,9.228823589672353e-4,2.895853283479903e-5,-9.263428574000358e-10,9.228611534120579e-4,2.8954410829763517e-5,-9.244525203760215e-10,9.22841094274703e-4,2.8833597004887607e-5,-8.687589669821464e-10,9.228711087655056e-4,2.860178543460586e-5,-7.612984631604381e-10,9.229952903879357e-4,2.8291928119182712e-5,-6.167002132570091e-10,9.232395355675018e-4,2.7959342967609063e-5,-4.600776629160696e-10,9.236018170315074e-4,2.766851040299726e-5,-3.211006337196332e-10,9.240504121843283e-4,2.7475443382623978e-5,-2.2596816610665073e-10,9.24531262399518e-4,2.741170749626898e-5,-1.8999789985040983e-10,9.249820629694834e-4,2.747542499218661e-5,-2.1326498107148244e-10,9.25348579660942e-4,2.7631811895541113e-5,-2.805432543382063e-10,9.255984900902482e-4,2.7822723222327646e-5,-3.6544697746303546e-10,9.257290496695094e-4,2.798233184373522e-5,-4.3755816439126784e-10,9.25766534088789e-4,2.80545120609564e-5,-4.705154590635174e-10,9.257576987930197e-4,2.800685278340508e-5,-4.4865598588417815e-10,9.257561138535627e-4,2.7837106293070436e-5,-3.701910247767966e-10,9.258080615404461e-4,2.757056376533481e-5,-2.4616627976356377e-10,9.259425348434525e-4,2.7250326470559132e-5,-9.609656809923689e-11,9.261676807511085e-4,2.6924824434891593e-5,5.773311606893498e-11,9.264731188036599e-4,2.663697142690499e-5,1.9528968966108854e-10,9.268356351407438e-4,2.6417432659609167e-5,3.019901995562894e-10,9.272255509647921e-4,2.6282152592361178e-5,3.6997091936557287e-10,9.276120574189009e-4,2.6232846291373425e-5,3.9797540595297546e-10,9.279670116931762e-4,2.6258881085469936e-5,3.9055441141759986e-10,9.282675227858236e-4,2.633942937784366e-5,3.570959163618194e-10,9.284980234511821e-4,2.644547284239765e-5,3.109050504872678e-10,9.286524796636579e-4,2.654193492234242e-5,2.6822927772623276e-10,9.287369625751979e-4,2.6590780100069592e-5,2.468431766251289e-10,9.287720369209947e-4,2.6556135305642376e-5,2.636822102111064e-10,9.287934339306461e-4,2.6412028824363202e-5,3.312264037819188e-10,9.288486997992517e-4,2.6151880961107663e-5,4.530300718778846e-10,9.289878720362526e-4,2.5796515725207018e-5,6.199146734068698e-10,9.292487589067231e-4,2.5395465656098757e-5,8.092647167352129e-10,9.29641666352082e-4,2.5017209649756432e-5,9.894516360464816e-10,9.301413876496481e-4,2.472917795980915e-5,1.1290141747255939e-9,9.306922559167429e-4,2.4575229989538544e-5,1.2070780979559616e-9,9.312251819721861e-4,2.4561109000296633e-5,1.2202059312944135e-9,9.316789667520669e-4,2.465414560968802e-5,1.1827604254879246e-9,9.320169043861123e-4,2.479571175444768e-5,1.1213819953507269e-9,9.322336847376593e-4,2.4919677271373376e-5,1.0666004249723868e-9,9.323526991819391e-4,2.496981318218703e-5,1.044792681412822e-9,9.324168167771345e-4,2.4911728305382368e-5,1.072537792680831e-9,9.324763341556606e-4,2.473779692662344e-5,1.1541348440936524e-9,9.32577287240139e-4,2.446550131433796e-5,1.2821529509168165e-9,9.327524775390439e-4,2.4130741138395573e-5,1.440358563370683e-9,9.330166395630526e-4,2.3778318046824064e-5,1.608044416470438e-9,9.333661039477023e-4,2.345210977652227e-5,1.7646106799430005e-9,9.337821762564567e-4,2.3187164366326925e-5,1.8933448565731633e-9,9.342366534787011e-4,2.3004991867956138e-5,1.983756984261391e-9,9.346977645863617e-4,2.2912152275451638e-5,2.0323646948176415e-9,9.351352665974508e-4,2.2901360219547865e-5,2.0422501912195693e-9,9.355241516458479e-4,2.2953966611580642e-5,2.021915505548688e-9,9.358471024062418e-4,2.3042848220487e-5,1.983917263664366e-9,9.360962029673838e-4,2.313526295966051e-5,1.9435240421953627e-9,9.362744148421519e-4,2.319579877368126e-5,1.9173555450183216e-9,9.363970340869479e-4,2.3190008396632788e-5,1.921714213936969e-9,9.364926985739199e-4,2.3089580081948874e-5,1.970175219873316e-9,9.366025595028989e-4,2.287954350737153e-5,2.070174683549589e-9,9.367754583789063e-4,2.256662486320555e-5,2.219009962619075e-9,9.370572543760401e-4,2.2185503816041416e-5,2.40080151825208e-9,9.374749898088448e-4,2.179746684581724e-5,2.5870254829646286e-9,9.380215496738124e-4,2.1476617739059208e-5,2.7428988022427817e-9,9.386504920238448e-4,2.1285143976963856e-5,2.8389345262250392e-9,9.392879545260637e-4,2.124847926412409e-5,2.8626284858923288e-9,9.398581363504856e-4,2.1344635824425707e-5,2.8236063659948714e-9,9.403092110193681e-4,2.1513973951784947e-5,2.749245885993131e-9,9.406269138130842e-4,2.1682634723939766e-5,2.67386501863676e-9,9.408323763286779e-4,2.178648157968665e-5,2.6275885831474924e-9,9.409696504997068e-4,2.1786146578814432e-5,2.6292808737827737e-9,9.410906514838015e-4,2.1671298131321062e-5,2.6844268786052037e-9,9.41242649635597e-4,2.145702236312698e-5,2.786633456564728e-9,9.414601509848395e-4,2.1176178630965497e-5,2.9210047073092557e-9,9.417610200086401e-4,2.0870608445111807e-5,3.0681179766648086e-9,9.421460370053103e-4,2.0582809873944577e-5,3.207899651127782e-9,9.426010936837508e-4,2.0348968697412414e-5,3.3229824926066307e-9,9.431012540259686e-4,2.0193985304551373e-5,3.401195641488044e-9,9.436158120570794e-4,2.012884842892798e-5,3.436951038320817e-9,9.441134784478598e-4,2.015031500623975e-5,3.4314859276191417e-9,9.44566950904901e-4,2.0242534645964484e-5,3.3921135298370826e-9,9.449563631171996e-4,2.0379982085524475e-5,3.330805785534591e-9,9.45271517348029e-4,2.0530961708450033e-5,3.2625023737391606e-9,9.455131621575188e-4,2.0661233197895548e-5,3.203395247216593e-9,9.456936234191719e-4,2.0737740900431553e-5,3.1692023079153e-9,9.458369007988554e-4,2.073272466669384e-5,3.1732674706314038e-9,9.459779040524844e-4,2.0628653770206123e-5,3.224233945190357e-9,9.461597634391267e-4,2.0424167988906754e-5,3.3231751090821356e-9,9.46427574458297e-4,2.014003684687474e-5,3.4606600272122213e-9,9.468173676227388e-4,1.98221812789624e-5,3.615192303367057e-9,9.473413942934375e-4,1.9537012097558103e-5,3.755318583394564e-9,9.479753457182548e-4,1.9355058402098106e-5,3.847349600926752e-9,9.486571399076209e-4,1.9325058394134616e-5,3.867688552958027e-9,9.493040520760504e-4,1.9450539767815956e-5,3.814066075128484e-9,9.498430651538646e-4,1.9684623094334385e-5,3.7081770948540923e-9,9.502378728614017e-4,1.994861501821484e-5,3.5870008241428506e-9,9.504975307118342e-4,2.01632840220824e-5,3.4880374073031084e-9,9.506654032765242e-4,2.0274709481559317e-5,3.437068799563959e-9,9.507989420812344e-4,2.0264365859063468e-5,3.4433449550727618e-9,9.509516863480496e-4,2.0145143002205663e-5,3.5013586813003237e-9,9.511626032896819e-4,1.9950604861647016e-5,3.595755007819909e-9,9.514523625841899e-4,1.972359867900281e-5,3.7065483148110366e-9,9.518240846294337e-4,1.9507126203245064e-5,3.813351896094841e-9,9.522662841079077e-4,1.933798514493866e-5,3.898421280054506e-9,9.527567177104721e-4,1.9242649321887765e-5,3.94873970416592e-9,9.532666534200279e-4,1.9234898009828817e-5,3.9573083496472175e-9,9.537653046836214e-4,1.931500888982162e-5,3.923656171525834e-9,9.542241491314553e-4,1.9470419469034043e-5,3.853573929853045e-9,9.546208269205008e-4,1.967778168597357e-5,3.758113485784791e-9,9.549422337944906e-4,1.990624356532854e-5,3.6519733720235854e-9,9.551864658672643e-4,2.012153016907811e-5,3.5515235649189295e-9,9.553635348866212e-4,2.029033148993112e-5,3.4727284456947125e-9,9.554949463176509e-4,2.0384734278047446e-5,3.429079651875691e-9,9.55612166139684e-4,2.03866030610309e-5,3.4295402733541126e-9,9.557537872596488e-4,2.029183687422643e-5,3.4764900665650733e-9,9.559608378031081e-4,2.0114246891201803e-5,3.563775485379721e-9,9.562694312086343e-4,1.988802000189864e-5,3.6753836672060575e-9,9.567005353306505e-4,1.9666425812314765e-5,3.785918859393363e-9,9.572485741343938e-4,1.951354653734905e-5,3.864486310112931e-9,9.57873847869679e-4,1.9487015195238054e-5,3.8829949935352816e-9,9.58506375185627e-4,1.961495423927636e-5,3.827353654574862e-9,9.590658554599388e-4,1.9878214338844435e-5,3.706183686441474e-9,9.59491778185771e-4,2.021167822462048e-5,3.5503480856677113e-9,9.597671996149698e-4,2.0528378965229346e-5,3.4014299519401243e-9,9.599217284447296e-4,2.0753552855409916e-5,3.295380207449077e-9,9.600140258223889e-4,2.084893939258985e-5,3.2508500223577976e-9,9.601071466008167e-4,2.081721898662703e-5,3.2670417811981256e-9,9.602500853369318e-4,2.0691028420511654e-5,3.3288768573415605e-9,9.604701387776805e-4,2.051709319339869e-5,3.4144264007709955e-9,9.60773545484276e-4,2.034297332174702e-5,3.501100421052396e-9,9.611500679665309e-4,2.0208786324005668e-5,3.569552864573399e-9,9.615783591656324e-4,2.014318881895291e-5,3.6056735200335207e-9,9.620307130834803e-4,2.0161937110386437e-5,3.6014269400379457e-9,9.62477113531018e-4,2.0267731706648574e-5,3.5550823882264824e-9,9.628889049217328e-4,2.0450864920827385e-5,3.4710012484743916e-9,9.632422415170349e-4,2.069066577730867e-5,3.3589647822421636e-9,9.635212754316284e-4,2.0957906935666852e-5,3.2329849290971195e-9,9.637208099389389e-4,2.1218360815741975e-5,3.1095519476630494e-9,9.638478893925641e-4,2.143740445538196e-5,3.0054061149790872e-9,9.639218361763492e-4,2.158517204251695e-5,2.9350831633136274e-9,9.639725275225862e-4,2.164161332623286e-5,2.9085171189180765e-9,9.64036920303166e-4,2.1600821946777073e-5,2.928960887667208e-9,9.641539462469475e-4,2.1473982466179215e-5,2.991503500896854e-9,9.643579665181983e-4,2.129029021121154e-5,3.0824929931979146e-9,9.646710825382556e-4,2.1095019009386883e-5,3.180304929063653e-9,9.650951414487477e-4,2.0943493593642626e-5,3.2581268817857795e-9,9.656055505064805e-4,2.08898021785074e-5,3.2893920797482204e-9,9.661506527532753e-4,2.0970707862049013e-5,3.2556740154475738e-9,9.666609700686485e-4,2.1188936127107843e-5,3.154989219151684e-9,9.670695157136533e-4,2.1504456001118907e-5,3.0062342252277902e-9,9.673367523603838e-4,2.1842686062608042e-5,2.8453160317467475e-9,9.674669505838162e-4,2.2120216315934066e-5,2.7126670331229932e-9,9.675052672091475e-4,2.227588153984791e-5,2.6381300324599617e-9,9.67517310975436e-4,2.2290098639572074e-5,2.631571812351488e-9,9.675641549386202e-4,2.2184188610723864e-5,2.683192639935835e-9,9.676856175598294e-4,2.20050732406217e-5,2.770831293998539e-9,9.678958345343047e-4,2.1806797104405777e-5,2.8687326779884426e-9,9.681874796128061e-4,2.1636899335670483e-5,2.953998363007588e-9,9.685391645791842e-4,2.152957275673156e-5,3.00987037631748e-9,9.689223645110006e-4,2.150393434528262e-5,3.0266647100820593e-9,9.693065461435913e-4,2.1564905127593073e-5,3.0015027830697376e-9,9.696627464705727e-4,2.170489096403e-5,2.9376390040777005e-9,9.699663713453124e-4,2.190558400417185e-5,2.843664610904784e-9,9.701997585934131e-4,2.213998368625858e-5,2.732536103734538e-9,9.703546573483743e-4,2.2375052452482884e-5,2.6202568912921775e-9,9.704343769114892e-4,2.2575473791547756e-5,2.524023751178972e-9,9.70454924970594e-4,2.2708679506424222e-5,2.4597828841057676e-9,9.704442684490575e-4,2.2750680548228815e-5,2.4394191096140195e-9,9.70439123002729e-4,2.269163919856002e-5,2.4680675742140396e-9,9.704792630519241e-4,2.2539791907013454e-5,2.542185695856593e-9,9.706000419416595e-4,2.2322356320565065e-5,2.6490241837254375e-9,9.708244225247657e-4,2.208254490993235e-5,2.7679330778128663e-9,9.711561348596273e-4,2.1872563135784633e-5,2.8736116004682885e-9,9.715756674472968e-4,2.1743144202396543e-5,2.9411105609226534e-9,9.720408542324096e-4,2.1730926538918943e-5,2.952015717458691e-9,9.724936339510598e-4,2.1846219921065344e-5,2.9005828036571425e-9,9.728734724452532e-4,2.206526684943893e-5,2.797753482524233e-9,9.73135268736305e-4,2.2331915022099625e-5,2.670534930423955e-9,9.732656869873846e-4,2.2571721047228047e-5,2.5551777813643346e-9,9.732896097496811e-4,2.2715649390846857e-5,2.4855509251822116e-9,9.732616414073596e-4,2.272350320648063e-5,2.481624710067114e-9,9.732459633450723e-4,2.2595527734851322e-5,2.5437609524692543e-9,9.732948670608518e-4,2.2367393624596813e-5,2.6551037957679194e-9,9.73435775314028e-4,2.2093662920085047e-5,2.7895237218060307e-9,9.736697513088091e-4,2.18295826774539e-5,2.9203430820786453e-9,9.739779823635234e-4,2.1618463822268142e-5,3.0263986928152343e-9,9.743307630656896e-4,2.14864286442583e-5,3.094632000552376e-9,9.746951934172733e-4,2.1442559653592196e-5,3.120143478228777e-9,9.75040337470858e-4,2.1481561948537084e-5,3.105047155900916e-9,9.753402753088035e-4,2.1586872020260996e-5,3.0570669881734935e-9,9.755760407850127e-4,2.1733399542332765e-5,2.9882432258541283e-9,9.757372606998641e-4,2.1890007987213578e-5,2.913710103700545e-9,9.758238522467932e-4,2.2022308074060718e-5,2.8502981225779335e-9,9.758475695193567e-4,2.2096463822383953e-5,2.814649675643213e-9,9.75832592759985e-4,2.208441265972937e-5,2.8206647589847394e-9,9.758139779570534e-4,2.1970120824932505e-5,2.8764536267483205e-9,9.758329513980938e-4,2.1755459239150598e-5,2.9814657729990575e-9,9.759289405456378e-4,2.146343405290607e-5,3.1248755506446147e-9,9.761297562449015e-4,2.1136469459250627e-5,3.2863308207215907e-9,9.764427844228285e-4,2.0828722875066234e-5,3.4395760619971846e-9,9.768504235625822e-4,2.05936578116549e-5,3.558401665094199e-9,9.773119310828517e-4,2.047011212383905e-5,3.623414500991834e-9,9.777718670258082e-4,2.0470907088346007e-5,3.627703453703138e-9,9.781733258317801e-4,2.057752945621449e-5,3.5796494003707138e-9,9.784727031122457e-4,2.0742968740602736e-5,3.501766797457081e-9,9.786520083386822e-4,2.090280873294008e-5,3.4254174178099575e-9,9.787247391817811e-4,2.099234249163606e-5,3.3824366972435045e-9,9.787325073239532e-4,2.0964978181006943e-5,3.3960258792809006e-9,9.787325574450096e-4,2.080554329966027e-5,3.474116418782361e-9,9.78780386798012e-4,2.053316629811452e-5,3.607853339306525e-9,9.78914283306498e-4,2.0192836373745813e-5,3.7756288344559166e-9,9.79147450149718e-4,1.9840040928541138e-5,3.9505044744465266e-9,9.794691393037586e-4,1.9525344833017023e-5,4.107694790089413e-9,9.798520178516646e-4,1.928413468832371e-5,4.229601723499455e-9,9.802613780058582e-4,1.9132999458968806e-5,4.30768523320254e-9,9.806628425931363e-4,1.9071152761889917e-5,4.341903576740723e-9,9.810273134182267e-4,1.9084239326578834e-5,4.338962357581536e-9,9.81333537072951e-4,1.9148443642578993e-5,4.310353550740631e-9,9.81569296115634e-4,1.9233976343823555e-5,4.2706388260183405e-9,9.817321483998952e-4,1.9307966381521585e-5,4.235993167701627e-9,9.81830219636952e-4,1.933733918927407e-5,4.222757802688705e-9,9.818829501630556e-4,1.9292467400002797e-5,4.245632427234919e-9,9.819209964844942e-4,1.9152168044642423e-5,4.315222825428222e-9,9.8198392831691e-4,1.890983975966044e-5,4.435029642934434e-9,9.821143377150008e-4,1.857919889488635e-5,4.59861659028588e-9,9.823480141006478e-4,1.819663416702158e-5,4.788408783691395e-9,9.827021678395676e-4,1.781681352429813e-5,4.977767747591471e-9,9.8316630954625e-4,1.750019208422675e-5,5.1370239028109335e-9,9.837010460599907e-4,1.729533464359589e-5,5.242087342349132e-9,9.842471758127079e-4,1.722284340206006e-5,5.282365711457081e-9,9.847423799112572e-4,1.7267922501442923e-5,5.2645551112541595e-9,9.851390392167326e-4,1.7384650541422545e-5,5.210737350473865e-9,9.85416712413494e-4,1.7509721680699187e-5,5.151788515618179e-9,9.855858656559924e-4,1.7580163367743918e-5,5.118732221992248e-9,9.856830005405348e-4,1.754937325800318e-5,5.134813103943706e-9,9.857596419803308e-4,1.7397498039928058e-5,5.210281577132254e-9,9.858686370143312e-4,1.7134242430752782e-5,5.340872784086539e-9,9.860514093620037e-4,1.6794137806137563e-5,5.509998145968244e-9,9.863293550422345e-4,1.6426136917274978e-5,5.693759305662125e-9,9.867012674118518e-4,1.6080882897378395e-5,5.867166202605813e-9,9.871466831850105e-4,1.5799461394281728e-5,6.009706321470195e-9,9.876331363464859e-4,1.560644168178504e-5,6.108876220456722e-9,9.881244546795737e-4,1.5508013115131364e-5,6.16123561320287e-9,9.885877203164924e-4,1.5494168132305846e-5,6.1714423956312695e-9,9.889977731607897e-4,1.554301218967708e-5,6.150173958810571e-9,9.89339357154404e-4,1.5625438489487203e-5,6.11180328305642e-9,9.896077069428486e-4,1.5709163928471263e-5,6.072354236231378e-9,9.898084641090051e-4,1.5761986455145772e-5,6.047846128949401e-9,9.89957481892549e-4,1.575472773264608e-5,6.052821432389052e-9,9.900805416390554e-4,1.5664564164811243e-5,6.098708901861965e-9,9.902123484409752e-4,1.5479331179479615e-5,6.191709401312268e-9,9.903935258545628e-4,1.5202748222706768e-5,6.33020714370356e-9,9.906641160678208e-4,1.4859172652645127e-5,6.502381741232603e-9,9.910530106883304e-4,1.4494749524882107e-5,6.685572808518867e-9,9.915653761885476e-4,1.4170939529055735e-5,6.8494023081549725e-9,9.92173804543939e-4,1.3948485846748767e-5,6.963646567409606e-9,9.92820439606734e-4,1.3865800846189006e-5,7.008937764536123e-9,9.934330686488335e-4,1.3922023616282452e-5,6.98524850756154e-9,9.939493480964887e-4,1.4075052891534514e-5,6.91302227434678e-9,9.943372374337234e-4,1.4256527274009431e-5,6.825888020437902e-9,9.946022722861765e-4,1.4395571285888233e-5,6.75895614654633e-9,9.947808856143072e-4,1.4439740434982362e-5,6.738430832136037e-9,9.949257957257986e-4,1.4366093115323758e-5,6.776065172871318e-9,9.950905167510095e-4,1.418186073054903e-5,6.868729017701459e-9,9.953173989064848e-4,1.391790875148587e-5,7.001518418367263e-9,9.95630713119781e-4,1.3618756991412558e-5,7.152573416875709e-9,9.960345799292754e-4,1.3332040182830323e-5,7.29822948174995e-9,9.965148922381106e-4,1.3099245727471433e-5,7.4176277467670906e-9,9.970441941477112e-4,1.294893783688122e-5,7.496180701557594e-9,9.975882397394037e-4,1.2893264734091967e-5,7.527452492986098e-9,9.98112746713271e-4,1.2927881166143136e-5,7.513323955728468e-9,9.985890416039868e-4,1.3034634044303174e-5,7.462717843178684e-9,9.98997826875862e-4,1.3185900947308538e-5,7.389423516943071e-9,9.993309205324102e-4,1.3349405125668461e-5,7.3096360810763596e-9,9.99591375901445e-4,1.3492586365441474e-5,7.2397137309556e-9,9.99792668555754e-4,1.3586170648049899e-5,7.19436794380859e-9,9.999574846180697e-4,1.3607159236305784e-5,7.185183536470915e-9,0.0010001162353076604,1.3541721843540724e-5,7.219205045654568e-9,0.0010003049165363592,1.3388426048463978e-5,7.297338394204071e-9,0.0010005613623854227,1.3161776667357265e-5,7.4125560623676355e-9,0.0010009186855654698,1.2894930291567578e-5,7.548472365832492e-9,0.001001395431805748,1.2638913929780974e-5,7.679645009834532e-9,0.0010019842716833783,1.2454704246940159e-5,7.775465670467849e-9,0.0010026447567112351,1.2396089240531763e-5,7.80872345265965e-9,0.0010033080233894881,1.2487217081785896e-5,7.766920829338294e-9,0.0010038972478855197,1.2706548445498057e-5,7.660458605367358e-9,0.0010043565504526115,1.2989946449421098e-5,7.521224770364038e-9,0.001004672231437384,1.3254551939388285e-5,7.390681026669133e-9,0.0010048741581043606,1.3430195374539308e-5,7.304097230213788e-9,0.001005019125368549,1.3480998017901777e-5,7.27969563649755e-9,0.001005168386359312,1.340941335065461e-5,7.316596454133312e-9,0.0010053704906546521,1.3246930061867809e-5,7.3994046186029145e-9,0.0010056532197300141,1.3040000118914438e-5,7.505138119129774e-9,0.0010060229091539998,1.2837303701281687e-5,7.609490773330097e-9,0.0010064679702872599,1.2680694358525935e-5,7.691325334965295e-9,0.00100696410900686,1.2599802055308625e-5,7.73543576837147e-9,0.0010074799303969257,1.2609453088105831e-5,7.733972018905462e-9,0.0010079824262810555,1.270927137545503e-5,7.68678360040066e-9,0.001008441983199197,1.2885166585695294e-5,7.600766502657164e-9,0.0010088364680810365,1.3112382500046945e-5,7.488348827427479e-9,0.0010091540147537904,1.3359627618872047e-5,7.365366043977686e-9,0.0010093942793346546,1.3593707411098743e-5,7.248659658443538e-9,0.0010095681767792678,1.3783993741249416e-5,7.15377885761242e-9,0.0010096964280629517,1.3906222158150544e-5,7.093063507146875e-9,0.0010098073351207102,1.3945501108580383e-5,7.074156161434548e-9,0.001009933998475673,1.3898670498425644e-5,7.098839141011301e-9,0.0010101108925560731,1.3776156395851466e-5,7.162087545997906e-9,0.0010103693537762879,1.3603229200616472e-5,7.2513716092129284e-9,0.001010731370310706,1.3419833637562037e-5,7.3466457393835305e-9,0.0010112016762827962,1.3277108498864683e-5,7.422018074019115e-9,0.0010117598625822178,1.3228209751310446e-5,7.450356500270065e-9,0.0010123568768607588,1.3312347000828476e-5,7.411421404428368e-9,0.0010129222480500654,1.3535582819181508e-5,7.301724939909382e-9,0.001013385331984101,1.3858804132080293e-5,7.140781390672817e-9,0.001013703707706818,1.4205000113155494e-5,6.967497490960027e-9,0.0010138822454817784,1.448749274687313e-5,6.825833236491937e-9,0.0010139696115598694,1.464433393257325e-5,6.747309515966404e-9,0.001014034960781267,1.4658559233696529e-5,6.740744459985028e-9,0.0010141406929217946,1.4555765436898252e-5,6.793498539548968e-9,0.0010143254890754552,1.4386576477060897e-5,6.880297884166936e-9,0.0010146008251386124,1.420706593101242e-5,6.973012537470857e-9,0.0010149561275081414,1.4065065181815716e-5,7.047465907773897e-9,0.00101536675460542,1.3993570240248546e-5,7.0867457546242325e-9,0.0010158013574818438,1.4009210516690739e-5,7.0820601273590445e-9,0.0010162275161801665,1.4113340727320419e-5,7.032323770553171e-9,0.0010166159146742558,1.429419134817385e-5,6.943198192930504e-9,0.0010169435907143895,1.4529570251940101e-5,6.825790427443894e-9,0.001017196458485237,1.4790107827825064e-5,6.695003258799705e-9,0.0010173710222833715,1.5043063994411697e-5,6.5675509780237646e-9,0.0010174750556951806,1.5256600380969255e-5,6.459732390817189e-9,0.001017526963278131,1.5404159828331004e-5,6.385177403566588e-9,0.0010175537373666459,1.5468376233596634e-5,6.352868110860509e-9,0.001017587717364337,1.544402654131814e-5,6.365661713647204e-9,0.0010176624605994554,1.5339717534360233e-5,6.419435210938414e-9,0.0010178080063839555,1.5178075945731396e-5,6.502944076621323e-9,0.0010180457452669584,1.4994254410299033e-5,6.598491835633543e-9,0.001018383064035031,1.4832381264038678e-5,6.6836353960864175e-9,0.0010188083316972948,1.47391332796154e-5,6.734397667122887e-9,0.0010192878609278002,1.475363974145172e-5,6.730438678602947e-9,0.0010197678046505864,1.4894272655654495e-5,6.661915015952189e-9,0.00102018443463024,1.5145950174105276e-5,6.5361350999692345e-9,0.0010204836747962334,1.5455522234757765e-5,6.380048705078234e-9,0.0010206437243931602,1.5743334912936524e-5,6.2343512371156256e-9,0.0010206877187796243,1.5931055263172206e-5,6.139179160224897e-9,0.0010206758978202743,1.5972669549953236e-5,6.118206896081988e-9,0.0010206802785743953,1.587040614601252e-5,6.170538509004209e-9,0.0010207572457502255,1.5667653115910527e-5,6.274358304487625e-9,0.0010209325449119094,1.5426977239675342e-5,6.398084889086976e-9,0.0010212017498908892,1.520786821074164e-5,6.511580983868921e-9,0.0010215398590799887,1.5053291656116975e-5,6.5929010127443566e-9,0.001021912431934167,1.498569502034724e-5,6.630329259183798e-9,0.0010222841435015692,1.5008880327172054e-5,6.621529648464819e-9,0.0010226239917599095,1.5112068113238198e-5,6.571614831742929e-9,0.0010229080944826484,1.527401144689631e-5,6.491159177179544e-9,0.0010231212780165244,1.5466570242856973e-5,6.394419794620523e-9,0.001023258140679252,1.565799311163615e-5,6.29764201481796e-9,0.001023323723746117,1.581631986787821e-5,6.217269214912676e-9,0.0010233335657502231,1.5913194832607108e-5,6.1679458224003706e-9,0.001023312652942418,1.592801691867029e-5,6.160375068918902e-9,0.0010232928007281963,1.5851837316847298e-5,6.199331981376249e-9,0.0010233083950897286,1.5690131829775294e-5,6.282255337576482e-9,0.0010233908943278179,1.5463603240336597e-5,6.398818557630599e-9,0.0010235628682748299,1.5206365333078503e-5,6.531796793225194e-9,0.001023832615986048,1.4961295414609502e-5,6.659351030318273e-9,0.0010241904386357422,1.4772889164037382e-5,6.75860252344733e-9,0.001024607567166903,1.4678269177210256e-5,6.810218842264442e-9,0.001025038835875019,1.4697338813962965e-5,6.803536849223181e-9,0.0010254302198467145,1.4824014543455562e-5,6.7412161836967475e-9,0.001025731571596928,1.5021882123837198e-5,6.641636326261475e-9,0.0010259126052034333,1.522848767407803e-5,6.536783150416774e-9,0.0010259765363499528,1.5370953906319304e-5,6.464197088487894e-9,0.0010259633245588596,1.5390062552732196e-5,6.454503675266422e-9,0.0010259374918061134,1.5262568774086813e-5,6.519889575291671e-9,0.0010259645518792863,1.5009405517106155e-5,6.649894303135918e-9,0.0010260881771412683,1.4685110812366908e-5,6.816835676346961e-9,0.0010263193576777233,1.4355638624471758e-5,6.98711790063453e-9,0.0010266398889383535,1.4077159844329356e-5,7.1319926882616635e-9,0.001027014226018415,1.388425288732607e-5,7.2335633845970444e-9,0.0010274020414492461,1.3788133610311604e-5,7.285745723386852e-9,0.0010277670997235588,1.378095198171993e-5,7.292187151879546e-9,0.0010280818168414282,1.384189253769118e-5,7.263261955630348e-9,0.0010283288268859772,1.3942614549109414e-5,7.213352520340318e-9,0.0010285011445110084,1.405139140764495e-5,7.158731665697266e-9,0.0010286019408435882,1.413632711989153e-5,7.115870597147311e-9,0.0010286442540053864,1.4168322568558104e-5,7.09986088584424e-9,0.0010286504037499457,1.4124365397943462e-5,7.12268504128625e-9,0.0010286504791455998,1.3991292700524017e-5,7.191271681234185e-9,0.0010286791648484964,1.3769478993510954e-5,7.3056080066068604e-9,0.0010287705469715204,1.3475266008978337e-5,7.457494460578409e-9,0.001028951327632887,1.3140689311306862e-5,7.630660550566689e-9,0.0010292338285229816,1.280935564220711e-5,7.802822009644976e-9,0.0010296108825569928,1.2528353458002378e-5,7.949760843038067e-9,0.0010300546940236487,1.233759347627838e-5,8.050755726164393e-9,0.0010305208273311641,1.2259178009605778e-5,8.094075186049836e-9,0.0010309570900584187,1.2289732755782155e-5,8.08103476461809e-9,0.0010313157392175553,1.239822992254162e-5,8.027273387668908e-9,0.0010315663465513536,1.2530919495367793e-5,7.960336714121893e-9,0.0010317058209335492,1.2623500762804774e-5,7.913435014428099e-9,0.001031761762409121,1.2618455216019864e-5,7.916445804350526e-9,0.0010317863213620134,1.2482715648861428e-5,7.986708154305847e-9,0.0010318409415092163,1.2218875567850196e-5,8.123174915224233e-9,0.0010319770490094284,1.1864341225077265e-5,8.306813126168584e-9,0.00103222073763433,1.1478137897328902e-5,8.507363432120657e-9,0.001032567744181653,1.1121486498340977e-5,8.693293502779717e-9,0.001032989301697024,1.084087419509298e-5,8.840491614529463e-9,0.0010334441429188832,1.065944919603051e-5,8.936740074754993e-9,0.0010338905402688494,1.0577173083741774e-5,8.981736505163395e-9,0.0010342945423151325,1.0576383955421915e-5,8.98433665789792e-9,0.00103463375858786,1.0628837350001691e-5,8.958991422832772e-9,0.0010348979793146607,1.0701777354861157e-5,8.922621233770985e-9,0.0010350882727302663,1.0762337371071754e-5,8.89230185881902e-9,0.0010352157191526022,1.0780632780980312e-5,8.883608858628518e-9,0.0010353002554859072,1.0732303407048932e-5,8.90925860516677e-9,0.0010353694431257166,1.0601227344865006e-5,8.977690201699487e-9,0.0010354564618759658,1.0382697470573208e-5,9.09143350297743e-9,0.0010355964502504992,1.008658752883728e-5,9.245490273873833e-9,0.00103582062126145,9.739174784541215e-6,9.426394426544935e-9,0.001036148531357024,9.381685552026843e-6,9.612933762557046e-9,0.001036580411402926,9.063860868442835e-6,9.779418101910907e-9,0.0010370928511063498,8.832500434599207e-6,9.901545674027221e-9,0.0010376410685493903,8.717740287966906e-6,9.963490318062588e-9,0.001038168776362179,8.722090107823838e-6,9.963639543713632e-9,0.001038623174432724,8.817117820241822e-6,9.916433090139891e-9,0.0010389699638132367,8.949806345046257e-6,9.849185263172341e-9,0.0010392031310252545,9.056681538401306e-6,9.794814136056429e-9,0.0010393464417650642,9.081041880969784e-6,9.7828832107339e-9,0.0010394465445357972,8.98803121924295e-6,9.831716602058708e-9,0.0010395599652596504,8.773379181090786e-6,9.943793307826468e-9,0.0010397377850124105,8.463527638538071e-6,1.010562028455275e-8,0.0010400124740567555,8.107264085356009e-6,1.0292016552047566e-8,0.0010403907983126954,7.761647465210934e-6,1.047336668482392e-8,0.0010408546068110553,7.476975351250501e-6,1.0623406725890964e-8,0.0010413683448417354,7.285608742141655e-6,1.0725068130866081e-8,0.0010418898199738098,7.197436696745734e-6,1.077292879202111e-8,0.0010423802623030689,7.201792582882333e-6,1.0772323696065717e-8,0.0010428110604212102,7.273401012350935e-6,1.0736320365516424e-8,0.0010431666141344895,7.3794054706384364e-6,1.0682066369385867e-8,0.0010434442537033133,7.485424438284342e-6,1.062758834085327e-8,0.001043652630466233,7.559908129853109e-6,1.0589456096467488e-8,0.0010438096899647942,7.577040457584126e-6,1.0581220954317427e-8,0.0010439407598399314,7.518874452397437e-6,1.0612288493742078e-8,0.0010440766580099585,7.3774053804267025e-6,1.0686856280073861e-8,0.0010442511917944904,7.1569232978676465e-6,1.0802719477653824e-8,0.0010444971593526165,6.876269078840813e-6,1.0950114569202205e-8,0.001044840195797599,6.569674575005575e-6,1.1111270660756568e-8,0.0010452907905748228,6.284047442282688e-6,1.1261780001466925e-8,0.0010458366657182785,6.070632446913745e-6,1.1374885918198315e-8,0.0010464397212440041,5.970991705073476e-6,1.1428761032437083e-8,0.0010470419129418023,6.0012650636924906e-6,1.1414752486565529e-8,0.0010475808873286244,6.142246342171787e-6,1.134266195270011e-8,0.0010480101442759484,6.342031857499272e-6,1.1239472124113928e-8,0.0010483145665516262,6.531775462877667e-6,1.1141164514740623e-8,0.0010485141839921832,6.647674109549178e-6,1.1081204358546142e-8,0.0010486555927916323,6.649554437643226e-6,1.1080769771562399e-8,0.0010487962274780228,6.52970014858732e-6,1.1144090607712959e-8,0.001048988161110087,6.311113549640392e-6,1.1259318747852037e-8,0.001049266135585487,6.038217412853158e-6,1.140334069973273e-8,0.0010496417708631659,5.764112342343603e-6,1.1548386965958874e-8,0.001050103884713581,5.538005408647266e-6,1.1668579695155248e-8,0.0010506236688532541,5.395419538643018e-6,1.1745084312143063e-8,0.001051162793625547,5.352737678222033e-6,1.176905039772956e-8,0.0010516822059403249,5.4065291012566944e-6,1.1742069546748452e-8,0.0010521495626468031,5.5369304279269275e-6,1.1674479004989727e-8,0.0010525439851890206,5.7134564555245825e-6,1.1582329111142928e-8,0.0010528578438257308,5.9014015084172195e-6,1.1483979856274418e-8,0.0010530961263485919,6.067417747217445e-6,1.139710095373138e-8,0.0010532743691075914,6.1835874192326255e-6,1.133647354846759e-8,0.0010534160834845703,6.230045791333779e-6,1.1312589735762775e-8,0.001053550198721015,6.1966823130205854e-6,1.1330774854534354e-8,0.0010537085154161126,6.0844906794547615e-6,1.1390513063025623e-8,0.0010539227224054864,5.906847205676181e-6,1.1484802633572627e-8,0.00105422025687308,5.690435278638442e-6,1.1599668036115498e-8,0.0010546184278993171,5.4746708261865515e-6,1.1714426246353476e-8,0.001055117156275193,5.307635025766357e-6,1.1803769941651274e-8,0.001055692545616445,5.236529243510756e-6,1.184274644058134e-8,0.001056295705931545,5.292689648675187e-6,1.1814655608677331e-8,0.0010568617072468647,5.4757403210461624e-6,1.1719477956429268e-8,0.0010573293783666506,5.74604326804144e-6,1.157796966652239e-8,0.0010576645165347547,6.033560344798371e-6,1.1427058221344922e-8,0.0010578737870635731,6.261973517443829e-6,1.1307094518131505e-8,0.0010580009637449824,6.3760497725166996e-6,1.1247346419441141e-8,0.001058108517330219,6.358165356812837e-6,1.1257242872632262e-8,0.0010582556001528874,6.228289144348805e-6,1.1326384333356857e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json new file mode 100644 index 0000000..d7e3be9 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":13000,"numberOfSamples":1000,"samples":[0.0010584823083198346,6.031818825503171e-6,1.14309469118811e-8,0.0010588036033781425,5.823520864538709e-6,1.1542103150393909e-8,0.0010592110744742987,5.6537248748726675e-6,1.1633248752700286e-8,0.0010596790894540058,5.559275280564943e-6,1.1684765345343194e-8,0.0010601724727019367,5.559236240846307e-6,1.1686339583847125e-8,0.0010606540091394276,5.654379293057021e-6,1.163732802349451e-8,0.0010610908819856466,5.829497270171977e-6,1.1545624012790231e-8,0.0010614594503400023,6.057715047147503e-6,1.1425423187205381e-8,0.001061747989835144,6.305862037083749e-6,1.1294367431781857e-8,0.0010619573719630783,6.539955951254238e-6,1.1170587469196216e-8,0.0010620999645025674,6.73003410085884e-6,1.107008326599654e-8,0.0010621972572704668,6.85379996171742e-6,1.1004756707165859e-8,0.0010622768540195135,6.898913123430779e-6,1.098119849532928e-8,0.0010623693266318172,6.864185869807982e-6,1.1000078885400938e-8,0.0010625050436689565,6.760079817880366e-6,1.1055907410923635e-8,0.001062710756522555,6.608668374463369e-6,1.1137052470541557e-8,0.0010630055440594903,6.442842455479279e-6,1.122613014857253e-8,0.0010633958133875673,6.303928192637586e-6,1.1301216346173524e-8,0.0010638698300656857,6.236227673998108e-6,1.1338700200742188e-8,0.0010643938207032379,6.277096687541316e-6,1.1318549017049607e-8,0.0010649135018336272,6.443029009602109e-6,1.1231761017071778e-8,0.0010653652534506645,6.716334917457601e-6,1.1087554932954997e-8,0.0010656971998236583,7.041447402084115e-6,1.0915428186536279e-8,0.0010658919742331224,7.338860744797124e-6,1.0757744815379704e-8,0.0010659770288683225,7.534292063466726e-6,1.0654138240953239e-8,0.001066013886508743,7.587831708115414e-6,1.0625935223163422e-8,0.0010660723258305996,7.506181686783977e-6,1.0669662265910576e-8,0.0010662052115061964,7.3335686443663195e-6,1.0761922260944352e-8,0.0010664358470525873,7.130863915281745e-6,1.0870481691937031e-8,0.0010667588393153595,6.955633515934309e-6,1.0964801902708683e-8,0.0010671485918925085,6.8498410434954626e-6,1.1022511941646397e-8,0.0010675694409390784,6.835426550329633e-6,1.1031759374762615e-8,0.0010679841615469535,6.915158645441867e-6,1.0990824083116765e-8,0.0010683599657830244,7.076052103195604e-6,1.0906394119921115e-8,0.0010686723933572796,7.293685466136946e-6,1.0791343615514796e-8,0.00106890765095213,7.536822311352906e-6,1.0662299642942404e-8,0.0010690635977016276,7.77211139688823e-6,1.0537115853861746e-8,0.001069149428980129,7.968577301214409e-6,1.0432429890255657e-8,0.0010691841550370862,8.101601929648258e-6,1.036149374624633e-8,0.0010691940071483454,8.156061538266819e-6,1.0332478423133815e-8,0.001069209055658057,8.128266563717782e-6,1.03474435063982e-8,0.0010692594713290538,8.026593480405271e-6,1.0402013164716527e-8,0.0010693717459872535,7.870945267100574e-6,1.0485664177770738e-8,0.0010695649713014753,7.691125951702836e-6,1.05825672334285e-8,0.0010698471837835711,7.524020444771572e-6,1.0673046459330192e-8,0.0010702118794917663,7.409199319244088e-6,1.073588364535248e-8,0.0010706353190277158,7.382260325524803e-6,1.0751866255570777e-8,0.0010710762838212979,7.465490347225327e-6,1.0708824642405977e-8,0.0010714809682874885,7.6570210693528492E-06,1.0607528738465052e-8,0.0010717954666795326,7.92266264450533e-6,1.0466162353522634e-8,0.0010719849482146093,8.197549025520211e-6,1.031948512559187e-8,0.0010720518335533688,8.403355641842077e-6,1.0209555077841326e-8,0.0010720405373210041,8.477632103826806e-6,1.0169920153450947e-8,0.001072021738228369,8.400092320472587e-6,1.021150931330851e-8,0.0010720635198379748,8.199374023477202e-6,1.0319075409549964e-8,0.0010722065788787624,7.937147885028722e-6,1.0459750886515433e-8,0.00107245583521534,7.681893768449438e-6,1.0597036740148054e-8,0.0010727875503866039,7.487659268153709e-6,1.0702071381753594e-8,0.0010731630002383215,7.384581405590331e-6,1.075864496894142e-8,0.0010735409195010803,7.379180450137632e-6,1.0763066178824929e-8,0.001073885642552888,7.459556157906894e-6,1.0721462765445143e-8,0.0010741711464074789,7.60167164073378e-6,1.064650717664984e-8,0.0010743824677307964,7.774854624539591e-6,1.05545292946971e-8,0.0010745158753886549,7.946253107214568e-6,1.0463140800736486e-8,0.0010745783975093434,8.084663970024577e-6,1.0389154063601514e-8,0.0010745867148931046,8.164015707520659e-6,1.0346669113505363e-8,0.0010745652935797434,8.166515928713906e-6,1.0345347414447921e-8,0.0010745436064007652,8.085247843115634e-6,1.0389003625916266e-8,0.001074552414002862,7.925732239563838e-6,1.04747713355022e-8,0.0010746194263179607,7.705947602888145e-6,1.0593098065321354e-8,0.0010747649179418883,7.45457851834404e-6,1.0728675241616273e-8,0.0010749978735612412,7.207509835919612e-6,1.0862287758949862e-8,0.0010753131883688583,7.0027414856204215e-6,1.0973502950806292e-8,0.0010756904320888402,6.874033979996817e-6,1.1044059873554255e-8,0.0010760947834755237,6.8436529769841505e-6,1.1061787085804026e-8,0.001076481049891446,6.914886396186059e-6,1.1024693263841812e-8,0.0010768018290682909,7.066051634150347e-6,1.0944283327208556e-8,0.0010770200321076698,7.249261634913781e-6,1.0846289489249666e-8,0.001077123420982185,7.39804993243476e-6,1.076656197635394e-8,0.0010771348797026668,7.44585714263904e-6,1.0741042838621376e-8,0.0010771101367558554,7.350779981649652e-6,1.0792371226593277e-8,0.0010771194563272597,7.114340819791003e-6,1.091978472227473e-8,0.0010772207158111727,6.781925749825741e-6,1.1098942285178267e-8,0.001077438751988009,6.423598569950669e-6,1.1292263291924475e-8,0.0010777614606054466,6.107174429654953e-6,1.1463350840217734e-8,0.001078150988925822,5.878278442603043e-6,1.1587643347827043e-8,0.0010785602961386523,5.753858224937523e-6,1.1655892460490189e-8,0.0010789465240847547,5.72623912615062e-6,1.167203738632892e-8,0.0010792781883616845,5.7715171050260465e-6,1.1648769383961856e-8,0.0010795372547668179,5.857715055435001e-6,1.1603202812664468e-8,0.001079718408317149,5.950842140755552e-6,1.1553633958985417e-8,0.0010798274054571314,6.018931123532262e-6,1.1517348515355086e-8,0.0010798793764046966,6.034916081994106e-6,1.150903056702829e-8,0.0010798970957694128,5.979082561969348e-6,1.1539400992860876e-8,0.0010799088782759599,5.841386795654391e-6,1.1613943229511664e-8,0.001079945671266815,5.6234999239785664e-6,1.1731800417280663e-8,0.0010800370563297977,5.339960624404898e-6,1.1885168170973472e-8,0.0010802063626677298,5.017558699714286e-6,1.2059638070394361e-8,0.001080465709873069,4.692281975823613e-6,1.2235836282107038e-8,0.0010808121845919524,4.403722523375394e-6,1.239241282362964e-8,0.0010812263927673289,4.1875776377249006e-6,1.2510056790341688e-8,0.0010816742755761358,4.067606126441703e-6,1.2575830541311822e-8,0.0010821124162932766,4.048764490048608e-6,1.2586910279254428e-8,0.001082496394029135,4.1132067224480435e-6,1.2552812557360103e-8,0.0010827911400719823,4.220728194789922e-6,1.2495218049522599e-8,0.0010829814407256138,4.315035608807498e-6,1.2444602628550136e-8,0.0010830795939978,4.336331558319785e-6,1.2433397469308228e-8,0.0010831263014689158,4.238515418925506e-6,1.2486625405764085e-8,0.0010831815716910997,4.005888907583e-6,1.2612831618416838e-8,0.0010833062871192334,3.6615290203470267e-6,1.2799568273597161e-8,0.0010835411795810717,3.261162454656364e-6,1.3016729071965934e-8,0.0010838933778462134,2.8737930394674124e-6,1.3227010267237029e-8,0.001084337034999438,2.5585169726812227e-6,1.3398407369065678e-8,0.0010848260137734957,2.3486087687672093e-6,1.351281176227918e-8,0.0010853104715353803,2.2479370425633493e-6,1.3567994079646327e-8,0.0010857496852788604,2.2371567972056594e-6,1.3574322546551323e-8,0.0010861181451779231,2.2837281191620208e-6,1.3549388239562281e-8,0.0010864060912470594,2.3509882779473265e-6,1.351309848109019e-8,0.001086617167375567,2.4043382300803017e-6,1.348429676688557e-8,0.0010867653789912383,2.414780175748046e-6,1.3478800918996513e-8,0.0010868723951977914,2.36090336349784e-6,1.3508287044674754e-8,0.0010869652859729975,2.230320299619587e-6,1.357949036950374e-8,0.0010870742527047388,2.0210940838380106e-6,1.3693435401754393e-8,0.0010872297036982135,1.7431263470573831e-6,1.3844706627164613e-8,0.0010874581583647045,1.4188304041524766e-6,1.4021110351396713e-8,0.0010877770309646244,1.0819285734700634e-6,1.420434005833336e-8,0.0010881892473587201,7.732394508393998e-7,1.4372250040797893e-8,0.0010886795450963712,5.330813350595426e-7,1.4502949312721697e-8,0.001089214649730255,3.9140243490344096e-7,1.458013766244398e-8,0.0010897487258969283,3.584072521389756e-7,1.459820749252219e-8,0.0010902335819651038,4.191729634013468e-7,1.4565214418600275e-8,0.0010906310187498445,5.348153076480196e-7,1.4502295396028616e-8,0.0010909236281021046,6.506177348026824e-7,1.443926695100913e-8,0.001091120685014961,7.092800663955221e-7,1.4407391615029013e-8,0.001091257136747916,6.658869235087142e-7,1.4431183604022623e-8,0.0010913854479859381,5.005821622148568e-7,1.4521478794650966e-8,0.0010915618860652314,2.251478759511052e-7,1.467185398741576e-8,0.0010918307189155313,-1.1924299742407577e-7,1.4859864732950039e-8,0.0010922113493534546,-4.734372432057817e-7,1.5053255310459487e-8,0.0010926932935980337,-7.775556028587294e-7,1.5219334684945516e-8,0.0010932410472572044,-9.877102401363634e-7,1.533407805988485e-8,0.0010938063797259453,-1.0859165470122615e-6,1.5387566050399254e-8,0.001094342455259391,-1.080589230442882e-6,1.5384321095468852e-8,0.00109481445675083,-9.995980021090122e-7,1.5339569592932147e-8,0.0010952043212414967,-8.803420527904827e-7,1.5273828324478645e-8,0.0010955103354372215,-7.608506842509845e-7,1.520800473466209e-8,0.0010957438947718288,-6.738297010954895e-7,1.516008890171015e-8,0.0010959255739260278,-6.435882030741187e-7,1.514342886133524e-8,0.0010960816844447629,-6.848008439732961e-7,1.516603611113632e-8,0.001096241543978873,-8.02004725041787e-7,1.5230321629549556e-8,0.0010964350536024304,-9.891361497491146e-7,1.5332873831182345e-8,0.0010966898752015986,-1.2290044827439803e-6,1.5464206803068726e-8,0.0010970275583669783,-1.4932930260580311e-6,1.5608784981685757e-8,0.0010974584822657629,-1.7443109645131954e-6,1.574598051452959e-8,0.0010979764965260918,-1.9399561880694465e-6,1.5852762521604583e-8,0.0010985554895813923,-2.0426623918831098e-6,1.590856103716042e-8,0.0010991510076969397,-2.031063016383569e-6,1.590164521848076e-8,0.0010997091337757634,-1.9102678540224635e-6,1.5834788151340182e-8,0.0011001814643931509,-1.7151290714917107e-6,1.5727115299126148e-8,0.0011005408546707206,-1.5028952094650604e-6,1.5610105905041306e-8,0.001100790948640354,-1.3368393448549428e-6,1.5518581808694086e-8,0.001100965184316589,-1.2672952194125447e-6,1.5480237846173764e-8,0.0011011161176956588,-1.3175209969869768e-6,1.5507843040213407e-8,0.0011012998469212088,-1.4787697248972343e-6,1.5596542078759433e-8,0.001101561065014156,-1.7146998910046917e-6,1.5726308035865734e-8,0.0011019226990827457,-1.9724071175410574e-6,1.586801490545639e-8,0.001102382007116548,-2.196363356079692e-6,1.5991084228148263e-8,0.0011029132667145561,-2.3416096021800094e-6,1.6070722292919825e-8,0.0011034757514399483,-2.38310916619068e-6,1.6093077245681256e-8,0.0011040244786115357,-2.31927776315323e-6,1.6057225467888683e-8,0.0011045205794044041,-2.1694385072843676e-6,1.597381802522786e-8,0.0011049385690624493,-1.966838354498544e-6,1.5861252045493124e-8,0.0011052692443645087,-1.750001842086337e-6,1.5740883086523665e-8,0.0011055186380034719,-1.5550353774155559e-6,1.5632734001830676e-8,0.0011057045369247066,-1.4103695910270938e-6,1.5552549745965977e-8,0.0011058522277989002,-1.3341378137981495e-6,1.551032955262108e-8,0.0011059906217503908,-1.3335025490994153e-6,1.5509962936515426e-8,0.001106149150194748,-1.404950501845874e-6,1.5549420079728942e-8,0.0011063551807779252,-1.5348143523852197e-6,1.5621073311654e-8,0.0011066313631327655,-1.6998081049754247e-6,1.5712016164878937e-8,0.0011069922927926747,-1.8679853774396568e-6,1.580459705808824e-8,0.0011074402507398938,-2.0011637405826746e-6,1.5877740607269027e-8,0.0011079607077455421,-2.060248709035317e-6,1.5909858156164228e-8,0.001108519738968454,-2.0144254988523965e-6,1.588390462537339e-8,0.0011090667951459137,-1.8531436940924132e-6,1.5794016241904865e-8,0.0011095457522609323,-1.5962893152773853E-06,1.5651187561937485e-8,0.0011099131036531966,-1.295286315591519e-6,1.548393416264128e-8,0.0011101558729649911,-1.0201697065466408e-6,1.5331133204623056e-8,0.0011102988958696094,-8.358929741676526e-7,1.5228836499800212e-8,0.001110396160826366,-7.792957175517323e-7,1.519745019538023e-8,0.00111051078357651,-8.4832733122868e-7,1.5235767590110828e-8,0.0011106942753399312,-1.0069042485667557e-6,1.5323711725274e-8,0.00111097368196469,-1.1999692577389667e-6,1.5430718007157876e-8,0.0011113487938456635,-1.370515245006706e-6,1.5525164027079777e-8,0.0011117968919402519,-1.472886234678616e-6,1.5581716379428368e-8,0.00111228126468647,-1.4803580618799743e-6,1.5585522069862342e-8,0.0011127605283525728,-1.38735025143936e-6,1.553345118973782e-8,0.0011131969606502966,-1.207467615593322e-6,1.5433042494833323e-8,0.0011135628384484684,-9.68609089136904e-7,1.5299812786382335e-8,0.0011138441430138264,-7.063766770539463e-7,1.515359787677788e-8,0.0011140413969519087,-4.5716749529745555e-7,1.5014692696968984e-8,0.0011141679771116317,-2.5224292949749117e-7,1.4900524553462284e-8,0.0011142467106409985,-1.1360505719006956e-7,1.4823340179212186e-8,0.0011143057375622243,-5.1947099677121166e-8,1.478906414284595e-8,0.0011143745275428235,-6.641623982905153e-8,1.479718055412551e-8,0.0011144805411490116,-1.4554045014367347e-7,1.4841267716474989e-8,0.0011146465039405943,-2.6868186327244643e-7,1.4909818722617364e-8,0.0011148879464543517,-4.077487512787168e-7,1.4987193531681402e-8,0.0011152106069133069,-5.293572049765862e-7,1.5054810350341645e-8,0.001115607505557431,-5.981354506604627e-7,1.5092967998964315e-8,0.0011160562278251995,-5.82238372920153e-7,1.508390498897239e-8,0.0011165181858738054,-4.617774614729789e-7,1.5016501585294573e-8,0.0011169427756374372,-2.3916486858598275e-7,1.489207589936706e-8,0.001117279123695704,5.281074662320559e-8,1.4728931150574154e-8,0.0011174945353303808,3.5238253651923323e-7,1.4561593636104278e-8,0.0011175918891919794,5.85237341776037e-7,1.4431602483043102e-8,0.001117613973298778,6.922600246158575e-7,1.4371955080154304e-8,0.0011176285284481737,6.540692000960255e-7,1.4393394122909386e-8,0.0011177012518909313,4.973859584028976e-7,1.4480914676359373e-8,0.0011178724639969737,2.807665191832271e-7,1.4601797634793543e-8,0.0011181484319527568,7.064887876481905e-8,1.4718987525011862e-8,0.0011185068668504749,-7.890745011779789e-8,1.4802357637019236e-8,0.0011189091709123736,-1.3646153918415363e-7,1.4834384089423755e-8,0.0011193126105248509,-9.43931094899234e-8,1.48108065335213e-8,0.0011196792366973227,3.5164048593491474e-8,1.473837430297344e-8,0.0011199811858316087,2.26369559642981e-7,1.4631494218090753e-8,0.0011202031869314724,4.4589422366034254e-7,1.4508776239873582e-8,0.00112034310520379,6.586854121746841e-7,1.4389816343386903e-8,0.0011204109385747102,8.330417415667043e-7,1.4292352649188305e-8,0.0011204265234972595,9.446967691452359e-7,1.4229970169917528e-8,0.0011204162785695454,9.796302768584618e-7,1.4210520366177409e-8,0.0011204093914756884,9.354136766252925e-7,1.423536740670385e-8,0.0011204339509095645,8.210357617533893e-7,1.4299488573279187e-8,0.0011205135047749502,6.554492436680685e-7,1.4392288214421408e-8,0.0011206642577800594,4.652528434009131e-7,1.4498888367884619e-8,0.001120892869175372,2.817729973787914e-7,1.4601751044198787e-8,0.0011211947550755549,1.3757495990860276e-7,1.4682621069015419e-8,0.0011215528883894927,6.21872975976025e-8,1.4724918735586556e-8,0.001121937523487324,7.657802320904832e-8,1.471684663627745e-8,0.0011223081121608392,1.862337483495964e-7,1.4655293964103262e-8,0.0011226193191337492,3.7406125879550593e-7,1.4549846746055096e-8,0.001122832579558784,5.965725646991329e-7,1.4424943518651694e-8,0.001122931860338344,7.888398809784377e-7,1.4317073347269448e-8,0.0011229368584202211,8.823540066354003e-7,1.42646972284513e-8,0.0011229030163360236,8.31978931560535e-7,1.4293081372632381e-8,0.0011229027871189272,6.377983868581165e-7,1.4402074372500076e-8,0.0011229961745440554,3.466313844851877e-7,1.4565346045514696e-8,0.0011232080312209413,3.131213495657076e-8,1.4742059226319447e-8,0.0011235241667242122,-2.384517151272013e-7,1.4893183747109764e-8,0.0011239038866639104,-4.1705069829968125e-7,1.4993199888376666e-8,0.0011242978045176068,-4.891837396590307e-7,1.5033552385496457e-8,0.0011246618087164136,-4.650533911979487e-7,1.501996092483476e-8,0.0011249644073865193,-3.712956185955165e-7,1.4967350495564534e-8,0.0011251887847238463,-2.4226609099827207e-7,1.489497804254355e-8,0.0011253319323496448,-1.1342860023329529e-7,1.4822732804632492e-8,0.001125402634959825,-1.6748392335343594e-8,1.476855463336166e-8,0.0011254190551908455,2.2583818610430424e-8,1.4746592428163293e-8,0.001125406006350285,-1.147849811646348e-8,1.4765866874794957e-8,0.0011253918703925659,-1.2428284425453638e-7,1.4829389975213278e-8,0.001125405153669,-3.098575433825358e-7,1.4933811618400424e-8,0.001125470825285484,-5.515007109536961e-7,1.5069747750744837e-8,0.0011256068473051415,-8.237402109522106e-7,1.522287862447306e-8,0.0011258213742378021,-1.0955210324600928e-6,1.5375735433027346e-8,0.001126110953640497,-1.33434576076099e-6,1.551002392607651e-8,0.0011264599688784321,-1.5110754595557068e-6,1.5609325258051984e-8,0.0011268415324472347,-1.6050367155868619e-6,1.5661979950811296e-8,0.0011272200850014037,-1.6091063327225863e-6,1.5663968705012574e-8,0.0011275562307977297,-1.5342861631028003e-6,1.5621508044081852e-8,0.0011278144681279808,-1.4124327608801717e-6,1.5552595027563792e-8,0.001127973697196369,-1.2945868803236955e-6,1.548604925928786e-8,0.0011280382587597413,-1.2418556395565706e-6,1.5456333428887506e-8,0.0011280441049613882,-1.3076713541081708e-6,1.5493515389976944e-8,0.0011280530903307478,-1.5159246352740396e-6,1.5610950547436537e-8,0.001128132778175655,-1.8463668689740967e-6,1.579711977668449e-8,0.0011283296134604944,-2.238778351585612e-6,1.601804452302929e-8,0.0011286507402838491,-2.6162893563312223e-6,1.6230430827785135e-8,0.001129064849116733,-2.914505922934018e-6,1.639803217786027e-8,0.0011295188883964043,-3.1003495271215335e-6,1.650223555792818e-8,0.0011299585096496848,-3.1743954370268017e-6,1.6543390761059785e-8,0.0011303422387863712,-3.1616614223987634e-6,1.6535639899295777e-8,0.0011306468543703053,-3.099226465392222e-6,1.649993957729718e-8,0.0011308665355909385,-3.026115926253836e-6,1.6458343678529448e-8,0.0011310092877528594,-2.97696670198988e-6,1.643041637428008e-8,0.0011310930107738839,-2.9787150579821667e-6,1.643135725219101e-8,0.0011311420979546502,-3.048971357365785e-6,1.6471083224590702e-8,0.0011311844863316548,-3.1951543584245246e-6,1.655374177555831e-8,0.0011312487969415517,-3.4140426711787296e-6,1.667746050617603e-8,0.001131361247585663,-3.6918347099299193e-6,1.683438659836271e-8,0.0011315422288500833,-4.005155407124281e-6,1.701126248263884e-8,0.0011318028686057846,-4.323516118603748e-6,1.719082210152812e-8,0.001132142305142021,-4.613386976593811e-6,1.7354095519871995e-8,0.001132546459390808,-4.843583003603475e-6,1.7483454475893005e-8,0.0011329889427781129,-4.991272754047409e-6,1.7566013688537354e-8,0.0011334344413259357,-5.047541910774497e-6,1.7596784618951905e-8,0.001133844458183822,-5.021292733474158e-6,1.7580889129752105e-8,0.0011341848700335095,-4.94040959890774e-6,1.753421475919338e-8,0.0011344344119443499,-4.8491916969188745e-6,1.748193700907113e-8,0.0011345925814498685,-4.801059066100088e-6,1.745434825021528e-8,0.001134684387300292,-4.846227082445247e-6,1.7479841111046328e-8,0.0011347584805635495,-5.0160858158737145e-6,1.7576061597522453e-8,0.0011348759327808268,-5.309263400214288e-6,1.7742064468409605e-8,0.0011350908173706725,-5.6869034120381485e-6,1.7955706489080888e-8,0.0011354299176144932,-6.082800701089851e-6,1.8179418623203863e-8,0.0011358822190113598,-6.426124898603051e-6,1.8373054177066374e-8,0.0011364043809356825,-6.665757949870108e-6,1.8507648393622844e-8,0.0011369384853650538,-6.7840861137196476e-6,1.8573247563186413e-8,0.0011374316455507916,-6.795823634017219e-6,1.8578280026159067e-8,0.001137848673807987,-6.736604005607285e-6,1.85430965640259e-8,0.001138175543947817,-6.649378408098194e-6,1.8492219634553844e-8,0.0011384164599360274,-6.574091986083006e-6,1.8448433493018965e-8,0.0011385884812031334,-6.5420367269707E-06,1.8429543600599157e-8,0.0011387163515221173,-6.573764105960214e-6,1.844718403120001e-8,0.0011388284833158092,-6.678850501571657e-6,1.8506697577031452e-8,0.0011389539421612653,-6.856289459219892e-6,1.8607380918886297e-8,0.0011391198567281403,-7.094990988364993e-6,1.8742791852569966e-8,0.0011393486909906535,-7.374470404067843e-6,1.8901162544082247e-8,0.001139655105173082,-7.666288253826918e-6,1.9066235687773136e-8,0.0011400426757558419,-7.936983461486883e-6,1.921894205864218e-8,0.0011405013577337874,-8.152936837249098e-6,1.9340168556050783e-8,0.0011410069453844265,-8.286904307477137e-6,1.941447163411268e-8,0.001141523687978373,-8.325052062458535e-6,1.943407977800105e-8,0.0011420104921204704,-8.272482966705914e-6,1.940204081740356e-8,0.0011424298885641681,-8.155032071176124e-6,1.9333238629293002e-8,0.0011427577026877223,-8.01590505046847e-6,1.9252449665323856e-8,0.0011429907616206283,-7.907174957399983e-6,1.9189445751876634e-8,0.0011431501649271265,-7.877608061907913e-6,1.917200273740673e-8,0.0011432784491987938,-7.9594886944176e-6,1.9218374972079383e-8,0.0011434302434748492,-8.157983701078854e-6,1.9331275036921774e-8,0.0011436578055424847,-8.446881947193677e-6,1.949552477305666e-8,0.00114399515501405,-8.773659928063834e-6,1.9681008281834052e-8,0.001144446522983574,-9.073972603149053e-6,1.9850948567032337e-8,0.0011449845240813815,-9.291172843971188e-6,1.997301868872744e-8,0.0011455595354737658,-9.393027652032006e-6,2.0028869806567677e-8,0.0011461161009334714,-9.378716130867975e-6,2.001814630971795e-8,0.0011466089029168024,-9.274461172054308e-6,1.9956008806800238e-8,0.0011470122988015584,-9.121833292035425e-6,1.9866427698242803e-8,0.00114732188508422,-8.96496066277439e-6,1.977481168122164e-8,0.001147550426654242,-8.84115873090527e-6,1.970259092640148e-8,0.0011477216937115396,-8.776250220560751e-6,1.966451506584681e-8,0.0011478647584178116,-8.783503033521037e-6,1.966805944170667e-8,0.0011480097210303582,-8.864451422748417e-6,1.971393023358895e-8,0.0011481847339456337,-9.010282799110149e-6,1.9796897029095008e-8,0.0011484137013095736,-9.203162855983934e-6,1.9906583070119853e-8,0.0011487139621447924,-9.417536219790016e-6,2.0028232082651543e-8,0.0011490935669522466,-9.622008265590576e-6,2.0143797216780358e-8,0.0011495483701545808,-9.782674812070154e-6,2.0233850339937727e-8,0.0011500598968202766,-9.868530899457088e-6,2.0280675342107168e-8,0.001150595576793416,-9.858788234789456e-6,2.027245503525575e-8,0.0011511130407411538,-9.750551556433113e-6,2.0207673116114426e-8,0.0011515690958261268,-9.563815939238883e-6,2.0097983923800655e-8,0.0011519316806153635,-9.340392670730376e-6,1.9967584121287674e-8,0.001152190749497022,-9.135185026245966e-6,1.9848156573524196e-8,0.0011523634382926925,-9.001659265593388e-6,1.9770455193964563e-8,0.0011524907957058544,-8.976351650421527e-6,1.975535707782608e-8,0.0011526268209164589,-9.067935946616826e-6,1.9807599727437817e-8,0.0011528235054923113,-9.25449432683755e-6,1.9914294904382524e-8,0.0011531166414686328,-9.489552149459594e-6,2.0048491573720485e-8,0.0011535164504243166,-9.71476019621844e-6,2.0176519619224113e-8,0.0011540055000518578,-9.875454353321969e-6,2.0266935867828633e-8,0.0011545443526542588,-9.934597905884134e-6,2.029851857027083e-8,0.0011550830429836547,-9.881012223473731e-6,2.026498429883669e-8,0.0011555744937682764,-9.729706251418504e-6,2.0175168201088018e-8,0.0011559854772124829,-9.51504938883692e-6,2.0049071556327196e-8,0.0011563021464909625,-9.280042396553756e-6,1.991163982225793e-8,0.0011565296752859802,-9.065727818539686e-6,1.9786613888511836e-8,0.001156687736425848,-8.903688987058367e-6,1.9692182364519e-8,0.0011568044046975123,-8.8125619957311e-6,1.9638981965480233e-8,0.0011569105458751,-8.797789715304598e-6,1.9629991386652268e-8,0.0011570356151798416,-8.853178776230065e-6,1.9661469660227554e-8,0.0011572048275839113,-8.963029002850191e-6,1.9724213131765286e-8,0.0011574371573823965,-9.104180604326605e-6,1.9804750235027096e-8,0.0011577435098976399,-9.247950130788989e-6,1.9886461799431398e-8,0.0011581246406424353,-9.362476184699034e-6,1.9950934601369646e-8,0.001158568958664678,-9.41631267388031e-6,1.9980033554842147e-8,0.001159051135572797,-9.383982662467644e-6,1.9959107105592105e-8,0.0011595332400694842,-9.253407196201551e-6,1.988127948054991e-8,0.0011599704116754437,-9.033473617199929e-6,1.9751830591591057e-8,0.001160321905079089,-8.757962164306107e-6,1.9590469326886845e-8,0.0011605651381540996,-8.481352968156326e-6,1.9428884611557018e-8,0.0011607066977102414,-8.264780100526713e-6,1.9302555692561575e-8,0.0011607835786356816,-8.156211653841857e-6,1.9239208531028127e-8,0.001160852303938451,-8.173672131833849e-6,1.9249082973678126e-8,0.0011609704050213417,-8.299502401002055e-6,1.9321670102197103e-8,0.0011611786600939425,-8.487524842860316e-6,1.942996472795716e-8,0.00116149085756971,-8.678548440956826e-6,1.9539526753642373e-8,0.0011618930476837161,-8.817263786054158e-6,1.961829467481908e-8,0.0011623502480845786,-8.865197369246996e-6,1.9644073624203352e-8,0.0011628170462849206,-8.807345064885849e-6,1.9608343243756524e-8,0.001163248772606246,-8.652436380407108e-6,1.9516370694754277e-8,0.0011636107636861521,-8.42810745764086e-6,1.9384372461534673e-8,0.0011638841503945102,-8.17290291549061e-6,1.9234838808357553e-8,0.0011640675332915647,-7.927309243105636e-6,1.9091306227406572e-8,0.001164174910574985,-7.725934562782125e-6,1.897381570422459e-8,0.0011642310911780206,-7.592301438636944e-6,1.8895911963434465e-8,0.001164266183153776,-7.536686249750781e-6,1.8863426101585725e-8,0.0011643105098843333,-7.556534996681924e-6,1.8874751833990127e-8,0.0011643907219274397,-7.638508383357229e-6,1.892205030520054e-8,0.0011645272144765674,-7.761166811425134e-6,1.8992807601442906e-8,0.0011647324707863098,-7.897651936164617e-6,1.9071379900299287e-8,0.0011650098094900412,-8.018265814666975e-6,1.914048233352255e-8,0.0011653521888236509,-8.093307790327415e-6,1.9182839583695098e-8,0.001165741133615056,-8.096798948189496e-6,1.9183362843101123e-8,0.0011661465394286383,-8.01169930545659e-6,1.913219846759754e-8,0.0011665289267256526,-7.836536321099879e-6,1.9028592765835697e-8,0.0011668460658409007,-7.591725078170206e-6,1.8884569456476698e-8,0.0011670647742319771,-7.321672629410377e-6,1.872613603007408e-8,0.0011671752536712213,-7.087778965397692e-6,1.8589162929747138e-8,0.0011672007945532352,-6.950506281680236e-6,1.8508875117680157e-8,0.0011671946165852476,-6.946270276537636e-6,1.8506350208028936e-8,0.0011672219724961402,-7.071417197234697e-6,1.8579216055933185e-8,0.0011673358746302342,-7.283275108892446e-6,1.8702356985605753e-8,0.0011675594159570796,-7.517413113909867e-6,1.8838061377010595e-8,0.0011678822015231747,-7.710561368063675e-6,1.8949420655493054e-8,0.0011682689261397071,-7.818135372925264e-6,1.9010538692202126e-8,0.0011686730493583339,-7.821696462300443e-6,1.90108499425854e-8,0.0011690494583318888,-7.727720962976632e-6,1.8954353489254236e-8,0.0011693632444199163,-7.56134032774171e-6,1.885590552632025e-8,0.00116959424227111,-7.358324729191973e-6,1.8736493783482777e-8,0.0011697381322427927,-7.157289319737172e-6,1.861866602390422e-8,0.001169805015940991,-6.993028321525914e-6,1.852264983791331e-8,0.0011698161546601542,-6.891491872816817e-6,1.8463458014440653e-8,0.0011697995747586565,-6.866806023143072e-6,1.8449195474681566e-8,0.001169785345145261,-6.9204124414224666e-6,1.8480593608555368e-8,0.0011698012390084927,-7.0420511084665356e-6,1.8551596753815423e-8,0.0011698692959780039,-7.212115770190638e-6,1.865072612237821e-8,0.001170003535115469,-7.40476340602822e-6,1.876287162320732e-8,0.0011702087001298016,-7.591191261412983e-6,1.887118665962335e-8,0.001170479701385697,-7.742851069545861e-6,1.895896527939579e-8,0.0011708015200401624,-7.834746251544546e-6,1.9011588216858993e-8,0.0011711496211634048,-7.849130822009977e-6,1.9018713426567524e-8,0.0011714913924403504,-7.779910197998646e-6,1.8976869060788222e-8,0.0011717897544849946,-7.637523831636095e-6,1.889230519205385e-8,0.001172010309956273,-7.452738502943907e-6,1.8783182601489195e-8,0.0011721323598993924,-7.275994332800178e-6,1.867913794942048e-8,0.0011721611281580594,-7.168155593634209e-6,1.861581265298405e-8,0.0011721343191450696,-7.1813051484193844e-6,1.862357539268324e-8,0.0011721149049607846,-7.335813716215587e-6,1.87141217167984e-8,0.001172168800567516,-7.607145133330706e-6,1.8872833135365767e-8,0.0011723380208572738,-7.933227173421569e-6,1.9063184028057393e-8,0.0011726252496139771,-8.239481077610759e-6,1.924143891636807e-8,0.0011729975280554965,-8.466260519538257e-6,1.9372719916227837e-8,0.0011734031858778484,-8.584501548552111e-6,1.944016181411194e-8,0.001173790302185874,-8.596454295920204e-6,1.944531693494591e-8,0.0011741190787508823,-8.527161410478187e-6,1.9403109104349883e-8,0.0011743669348481497,-8.413502697600549e-6,1.933534155711618e-8,0.0011745284115409797,-8.294793736602777e-6,1.9265131227668844e-8,0.0011746124079364151,-8.206190261184355e-6,1.9213032276832187e-8,0.0011746385065752375,-8.174556373859033e-6,1.9194649111671876e-8,0.0011746330915234392,-8.216052103381338e-6,1.9219279634408336e-8,0.0011746253880197785,-8.335082109550146e-6,1.9289350289034145e-8,0.0011746435809791025,-8.524542340119898e-6,1.9400586230916127e-8,0.0011747112692470335,-8.767280557710057e-6,1.954286430798587e-8,0.0011748445359639791,-9.03865596643075e-6,1.9701692857538592e-8,0.0011750499632298852,-9.309966660718363e-6,1.9860201817912727e-8,0.001175323799399941,-9.552298843262974e-6,2.0001396821218872e-8,0.00117565222379474,-9.740381416028808e-6,2.0110439466007515e-8,0.0011760125740055314,-9.856258828588306e-6,2.0176834214821782e-8,0.001176375524771259,-9.89270749701017e-6,2.0196458357561633e-8,0.0011767084198622795,-9.856295447680713e-6,2.0173355725141192e-8,0.0011769802534832457,-9.769680052766479e-6,2.0121046365166935e-8,0.001177168799588408,-9.671871258832764e-6,2.0062613323586582e-8,0.0011772694476469777,-9.6141384720008e-6,2.002822704058926e-8,0.0011773031276615976,-9.649130357389883e-6,2.004871269724044e-8,0.001177317927990144,-9.813195811093411e-6,2.0145182911243707e-8,0.0011773784774201084,-1.0107742086366462e-5,2.031816622647421e-8,0.0011775429199502576,-1.0491244705205072e-5,2.054301185498362e-8,0.001177837880102486,-1.0891186429975976e-5,2.077695811502661e-8,0.0011782469508336748,-1.1232228758863288e-5,2.0975685618500445e-8,0.0011787199252995327,-1.1464270048217633e-5,2.1109807093236463e-8,0.001179195117857407,-1.1575096317836384e-5,2.1172327792887724e-8,0.0011796204060343677,-1.1585333083324484e-5,2.117567378298927e-8,0.001179964253721622,-1.153426084540048e-5,2.1143276835969646e-8,0.001180216947487361,-1.1465789942356163e-5,2.1101215758474892e-8,0.0011803864077251783,-1.1418915216628996e-5,2.107252293342305e-8,0.0011804924552570766,-1.1422849945557147e-5,2.1074313204903283e-8,0.0011805616351961057,-1.149534972563153e-5,2.111684828473406e-8,0.0011806231296561194,-1.164260838042896e-5,2.1203547272920038e-8,0.001180705405349917,-1.185983590457733e-5,2.133138289587363e-8,0.0011808332022572984,-1.2132380829244001e-5,2.1491566451183692e-8,0.0011810247593277404,-1.2437538534793616e-5,2.1670609888946692e-8,0.00118128939658047,-1.2747235945817167e-5,2.1851893747692842e-8,0.0011816258296817952,-1.3031688632184382e-5,2.2017816721285344e-8,0.0011820217409164156,-1.3263766786722557e-5,2.215238102483769e-8,0.0011824549343442512,-1.3423476824073942e-5,2.224386173036045e-8,0.0011828960923008392,-1.3501908143475178e-5,2.228715845248425e-8,0.0011833129578829248,-1.3504032616951642e-5,2.2285447254115404e-8,0.0011836756314048944,-1.3449812928952117e-5,2.2250794275112108e-8,0.001183962592413837,-1.3373153848677134e-5,2.2203458812617827e-8,0.0011841669322909438,-1.3318065327970467e-5,2.2169537514422055e-8,0.0011843016926503368,-1.3331175884827947e-5,2.2176482373441217e-8,0.0011844020642103072,-1.3450260247773386e-5,2.2246332098472546e-8,0.001184521202676278,-1.3690428025695983e-5,2.2387640451217336e-8,0.0011847171293863903,-1.4032994909381187e-5,2.2589027933433944e-8,0.001185032463777717,-1.4424743371322873e-5,2.281883562996951e-8,0.0011854755677246913,-1.4792794984495582e-5,2.3033918419938312e-8,0.0011860147396502052,-1.507088024578483e-5,2.319513060443558e-8,0.0011865905179456926,-1.5223319477673633e-5,2.328150001628114e-8,0.0011871389466646689,-1.5253718038456167e-5,2.3295410581307743e-8,0.0011876123061146714,-1.519648813755946e-5,2.3257586969311357e-8,0.0011879885113928858,-1.5099845661934605e-5,2.3196940123018956e-8,0.0011882695341677578,-1.501035144178206e-5,2.31412842396481e-8,0.0011884742356245803,-1.4963788315746421e-5,2.3111852364620775e-8,0.001188630530564791,-1.4982034546106686e-5,2.3121452402727265e-8,0.0011887692807419578,-1.507353292827563e-5,2.3174817880824452e-8,0.0011889202463939105,-1.5235106883747588e-5,2.3269772227890994e-8,0.0011891093972103773,-1.5453904219857056e-5,2.3398442893928934e-8,0.001189356787492648,-1.5709243646093957e-5,2.3548380493865156e-8,0.001189674562434833,-1.597465760311393e-5,2.3703767108688843e-8,0.0011900650705906138,-1.622059546320253e-5,2.3847010207390837e-8,0.0011905194959919482,-1.641817450904896e-5,2.396096721453941e-8,0.0011910177895063875,-1.6543919681829082e-5,2.403177226492937e-8,0.0011915306556030559,-1.6584788766736868e-5,2.4051839818261955e-8,0.001192023898945927,-1.6542298384545826e-5,2.4022324070467803e-8,0.001192464757553144,-1.643440146715635e-5,2.3954211093486313e-8,0.001192829119799411,-1.629404609753833e-5,2.3867395750016865e-8,0.001193108027212104,-1.6164104458207515e-5,2.3787569044241983e-8,0.0011933118430555575,-1.608921071912973e-5,2.3741272731391792e-8,0.0011934707320330146,-1.6105658509481013e-5,2.374985781205688e-8,0.0011936303976635173,-1.623111932778949e-5,2.3823425330801796e-8,0.0011938425904213918,-1.6456797947603263e-5,2.3956291913805633e-8,0.0011941512693824246,-1.6745405678767475e-5,2.4125926378533872e-8,0.0011945777513011316,-1.703806116613979e-5,2.4297131106293858e-8,0.0011951108176325653,-1.7270552184130284e-5,2.4431706269672658e-8,0.0011957078826386161,-1.7394145331375484e-5,2.4500786304503858e-8,0.001196308651953773,-1.7391670563142902e-5,2.4494397478295562e-8,0.0011968553574094527,-1.7280885870127336e-5,2.442346637634852e-8,0.0011973097438809756,-1.7104486121415902e-5,2.4313830319614202e-8,0.0011976600271846305,-1.6913544964189015e-5,2.4196263777647027e-8,0.0011979178287977973,-1.6752823815132273e-5,2.4097605696463648e-8,0.0011981097707620147,-1.6652578579863055e-5,2.4035827004151324e-8,0.0011982686801686477,-1.6626751066110573e-5,2.401899572758425e-8,0.0011984270612510747,-1.6674980003615707e-5,2.4046572026728495e-8,0.0011986131998672476,-1.6785856209140574e-5,2.411144126081378e-8,0.00119884907936858,-1.6939967517406705e-5,2.4201781684558578e-8,0.0011991490988296598,-1.7112385016964997e-5,2.430255743190104e-8,0.0011995189044720176,-1.727490968716899e-5,2.4396846663078468e-8,0.0011999541434850292,-1.73987053704685e-5,2.446740213138539e-8,0.0012004395264967585,-1.7457927525291007e-5,2.4498820966803372E-08,0.0012009491082435547,-1.743451264755266e-5,2.4480422287605266e-8,0.001201448900782843,-1.7323465817622007e-5,2.4409425154034857e-8,0.0012019025457898729,-1.713703206787251e-5,2.429344400128628e-8,0.0012022796375072394,-1.6905527800039264e-5,2.415095110327444e-8,0.001202564674709609,-1.66730256383639e-5,2.4008615527302114e-8,0.0012027634568679232,-1.6487847620334767e-5,2.3895505198766226e-8,0.001202904030611828,-1.6390163394670685e-5,2.3835574955575874e-8,0.0012030311028923925,-1.6400516224166192e-5,2.384078723594285e-8,0.0012031951747230444,-1.6513004713512284e-5,2.390712060734509e-8,0.001203439368777117,-1.6695385826531313e-5,2.4014786720648956e-8,0.0012037875416534632,-1.6896357132806125e-5,2.413273573212916e-8,0.0012042369997383238,-1.7058417430140396e-5,2.422642990299439e-8,0.001204758270153749,-1.7133153462624448e-5,2.42669920335499e-8,0.0012053027296240449,-1.7094557087145528e-5,2.4239131779032624e-8,0.001205816243419089,-1.694576087819249e-5,2.414512189749825e-8,0.001206254208107606,-1.671652593603102e-5,2.4003224447649546e-8,0.0012065924774887938,-1.6452686017868706e-5,2.3841274764580573e-8,0.0012068306855210508,-1.6202252980745935e-5,2.3688257288772364e-8,0.0012069882451567506,-1.6003642610002783e-5,2.3567193058502826e-8,0.0012070962548821874,-1.5879317737007825e-5,2.3491350212189728e-8,0.0012071891126864752,-1.5834987172204415e-5,2.3463848234982794e-8,0.0012072982435586271,-1.5862395994595704e-5,2.3479429419473134E-08,0.0012074484919681056,-1.5943390285158226e-5,2.3526960795175952e-8,0.0012076565349967772,-1.6053727644420263e-5,2.3591735054261115e-8,0.0012079303224518817,-1.6166109640853678e-5,2.3657270713232458e-8,0.0012082687433021958,-1.625265566416613e-5,2.370677465035961e-8,0.0012086611896754904,-1.6287448494366172e-5,2.372466631141001e-8,0.0012090872917999832,-1.6249836702848495e-5,2.3698580523446967e-8,0.0012095176855486077,-1.6128815528154758e-5,2.3622028928013453e-8,0.0012099170613362122,-1.592798579392285e-5,2.349739986274672e-8,0.0012102505659388227,-1.566936060894537e-5,2.3338237567455915e-8,0.0012104933479661164,-1.5393153749585413e-5,2.316906420901978e-8,0.0012106406191476266,-1.5150881099106516e-5,2.302113572545944e-8,0.001210713427762985,-1.4991745019339821e-5,2.2924136337323242e-8,0.0012107557250189674,-1.4946543294335746e-5,2.2896419733099684e-8,0.0012108221716802248,-1.5016161651831003e-5,2.293810304377412e-8,0.0012109612315525406,-1.5170264902251345e-5,2.3030401775421017e-8,0.0012112005956738774,-1.535671009607627e-5,2.3141465559964834e-8,0.0012115402123723076,-1.551722648703216e-5,2.3235958218962858e-8,0.0012119541203185218,-1.5603217342101987e-5,2.32846361790215e-8,0.0012123989690091418,-1.558704649773601e-5,2.32711262155396e-8,0.0012128258188160085,-1.546672637976945e-5,2.3194667025593706e-8,0.0012131919055231588,-1.526397476343263e-5,2.306882035076686e-8,0.001213469672752588,-1.5016981076206275e-5,2.2916988632259907e-8,0.0012136512717100716,-1.4770193242323362e-5,2.2766165374691033e-8,0.0012137479589100495,-1.4563974629347552e-5,2.2640665341646183e-8,0.0012137852603573004,-1.4426773355970368e-5,2.255743926778347e-8,0.0012137959093788662,-1.4371343522844578e-5,2.2523883713028728e-8,0.0012138128365966673,-1.439499826481813e-5,2.2538091856692798e-8,0.0012138638400819995,-1.4482668698853964e-5,2.2590762305896745e-8,0.0012139685086682349,-1.4611158244269921e-5,2.2667775734842887e-8,0.0012141370773553156,-1.4753294457875256e-5,2.2752669276880412e-8,0.0012143704447298367,-1.4881339284913565e-5,2.2828655628043122e-8,0.0012146606157735983,-1.4969696583580246e-5,2.2880242761076628e-8,0.0012149911979015464,-1.499739616837105e-5,2.2894754107216863e-8,0.001215338074413792,-1.495094088433912e-5,2.286409075695815e-8,0.0012156709220629822,-1.4827860365214653e-5,2.278691472150337e-8,0.0012159566967008494,-1.4640607873998432e-5,2.2671006872583375e-8,0.0012161661678526474,-1.4419214392042551e-5,2.253482998176492e-8,0.0012162834218881762,-1.4209794962010202e-5,2.2406545421342624e-8,0.001216315642396274,-1.4065845309811994e-5,2.2318651755283653e-8,0.0012162975273846636,-1.4032046896515793e-5,2.229810801795348e-8,0.001216284646636957,-1.412603160851158e-5,2.2355282871068613e-8,0.0012163354726003424,-1.4328040488737538e-5,2.2477767363016963e-8,0.0012164899159747096,-1.4585949126754397e-5,2.263355123417095e-8,0.001216755574130199,-1.4833892797710722e-5,2.278243853374842e-8,0.0012171078245810246,-1.5014490026863692e-5,2.2889603737556964e-8,0.001217501208749591,-1.5094377647005056e-5,2.2935034657986378e-8,0.0012178847630020077,-1.5068934395509631e-5,2.2916347417685273e-8,0.0012182150285436164,-1.4958137548021152e-5,2.2846155074825506e-8,0.0012184640069405344,-1.4797783644600629e-5,2.2746590779909395e-8,0.0012186220505673322,-1.4629683731770791e-5,2.2643235920746163e-8,0.001218696822913379,-1.449297270290909e-5,2.2559801522444672e-8,0.0012187095811834294,-1.4417539138099393e-5,2.2514186857630122e-8,0.0012186898663968694,-1.4420061297596525e-5,2.2516180023635898e-8,0.0012186696633395672,-1.4502833252156467e-5,2.2566860603567102e-8,0.0012186780735641304,-1.4655108434294776e-5,2.2659490899290508e-8,0.0012187372918174148,-1.4856253456001961e-5,2.2781443114298367e-8,0.001218860273629298,-1.5079824490775369e-5,2.2916635639418696e-8,0.0012190500435946263,-1.5297700051893458e-5,2.3047988343221898e-8,0.001219300200263371,-1.548365519236493e-5,2.3159560794279936e-8,0.0012195960618367548,-1.5616237415079354e-5,2.3238309613797606e-8,0.0012199161265676276,-1.568118550987916e-5,2.3275603178996437e-8,0.0012202338545077081,-1.567373100870673e-5,2.326866879195279e-8,0.0012205201561264112,-1.560100091808706e-5,2.3222067337371707e-8,0.001220747382989795,-1.5484226141098953e-5,2.3148995007320677e-8,0.0012208955835540899,-1.535941411892994e-5,2.3071605072069785e-8,0.0012209607427107806,-1.5274050539459638e-5,2.3018902382756045e-8,0.001220962475274646,-1.5277280997782236e-5,2.3020705792687032e-8,0.0012209458731045407,-1.5403436960660497e-5,2.309762894932575e-8,0.0012209717976255354,-1.565448470536381e-5,2.3250476497938733e-8,0.0012210955463632595,-1.5992317511104423e-5,2.345566341649283e-8,0.0012213435678971353,-1.634934524496698e-5,2.367175263118225e-8,0.0012217022640911984,-1.6653999885394203e-5,2.3855040758167472e-8,0.0012221254162641652,-1.685673242853055e-5,2.397543609100118e-8,0.0012225539172616843,-1.694295513018085e-5,2.4024369111537456e-8,0.0012229355612905532,-1.6930207344080828e-5,2.4013018459709848e-8,0.0012232368258948774,-1.6856088422204816e-5,2.3964815471614588e-8,0.001223445818883135,-1.6764870074623695e-5,2.3907108196114857e-8,0.0012235694616662836,-1.66972195773145e-5,2.3864781052871904e-8,0.0012236282176459417,-1.668400111843338e-5,2.3856473140188308e-8,0.0012236504409797394,-1.6743379709783217e-5,2.3892909894168513e-8,0.0012236671763620997,-1.6880175503808295e-5,2.3976645895061022e-8,0.001223707624433692,-1.708683221483701e-5,2.4102766441136323e-8,0.0012237954317209335,-1.734565340062886e-5,2.426029685357651e-8,0.0012239459921608604,-1.7631973134540477e-5,2.4434117926847972e-8,0.0012241649213519893,-1.791791608308859e-5,2.4607207076905056e-8,0.0012244478183697678,-1.817632574317451e-5,2.476299133590999e-8,0.0012247812244358886,-1.838435464330882e-5,2.4887533086232756e-8,0.0012251444556581857,-1.8526399189167512e-5,2.4971356499031972e-8,0.001225512030680893,-1.8596356874691012e-5,2.5010875116620252e-8,0.0012258566090267735,-1.8599249204608337e-5,2.500940666446154e-8,0.0012261525206215848,-1.8552184327634754e-5,2.4977727871947743e-8,0.0012263801754533244,-1.8484389126531722e-5,2.4934001023126065e-8,0.001226531589440995,-1.8435353897332787e-5,2.4902521731442044e-8,0.0012266163824655456,-1.844942436845583e-5,2.4910327037782435e-8,0.0012266658987470957,-1.8565429063659797e-5,2.498085133256966e-8,0.0012267312754294553,-1.880207278591228e-5,2.5125090674904964e-8,0.0012268713258371598,-1.914430998630717e-5,2.533341535608457e-8,0.001227131022819862,-1.954022969406463e-5,2.557377342250434e-8,0.0012275202373195173,-1.991570456003484e-5,2.5800673545950185e-8,0.0012280066605481112,-2.0202550073462475e-5,2.5972399157529153e-8,0.0012285289260753722,-2.036442274620531e-5,2.6066887113834473e-8,0.0012290215337736447,-2.0405843598096857e-5,2.608730247250189e-8,0.0012294364792536673,-2.0362831684957532e-5,2.605626237353159e-8,0.0012297525480403702,-2.0285001528169813e-5,2.600470001447718e-8,0.001229973287643303,-2.0219675206655426e-5,2.596192790923771e-8,0.00123011945294299,-2.0202577079814657e-5,2.5949829286862887e-8,0.0012302208090147813,-2.0254570927893388e-5,2.598089556577197e-8,0.001230309575850642,-2.0382079862008366e-5,2.6058620701201978e-8,0.0012304158345859968,-2.0579100696291248e-5,2.6178889594627654e-8,0.0012305643517482184,-2.0829746668818747e-5,2.6331638580619262e-8,0.0012307723235892732,-2.1111062515209374e-5,2.6502607204116547e-8,0.0012310478548748765,-2.1396114777007075e-5,2.6675202086625746e-8,0.0012313891899758615,-2.1657391046044656e-5,2.6832534064826254e-8,0.0012317848985939483,-2.187044513583133e-5,2.6959629716658373e-8,0.001232215249623264,-2.2017430944470345e-5,2.7045614719736176e-8,0.0012326547447966258,-2.209001773221379e-5,2.7085542859440893e-8,0.0012330755592392312,-2.2091326924775106e-5,2.70816135899996e-8,0.0012334516279752959,-2.203663011034868e-5,2.7043580150642033e-8,0.001233763101802164,-2.1952544155669515e-5,2.6988170698065287e-8,0.001234000846053606,-2.1874499915341305e-5,2.6937404354593894e-8,0.0012341705639102628,-2.184212653370876e-5,2.691563704449534e-8,0.0012342956223987628,-2.1891979650956894e-5,2.6945050302677308e-8,0.001234416688585595,-2.2047557895417835e-5,2.7039585964648845e-8,0.0012345855888722889,-2.23083766412273e-5,2.719839449139654e-8,0.0012348517249173988,-2.2642708147870215e-5,2.7401545144008608e-8,0.0012352433616983397,-2.2990593392258627e-5,2.7611962377998624e-8,0.0012357521897338616,-2.328103233247334e-5,2.778596961972363e-8,0.0012363319390749912,-2.3458241076732956e-5,2.7889391237730747e-8,0.001236914832205126,-2.3503051358274284e-5,2.7910738893106944e-8,0.0012374372602634584,-2.34370143285074e-5,2.7863779646029196e-8,0.0012378600978094599,-2.3308844078715344e-5,2.7779123129400366e-8,0.001238175025995959,-2.3173834169043024e-5,2.7691345091404345e-8,0.0012383987375117022,-2.3077516654817154e-5,2.7628715793488518e-8,0.0012385621901050622,-2.304804267920002e-5,2.7608434146434345e-8,0.001238700730871274,-2.3095701387628564e-5,2.7636418998067664e-8,0.0012388473917175444,-2.321606101218933e-5,2.7709418024290113e-8,0.0012390291726658905,-2.339397590953754e-5,2.781763697063455e-8,0.001239265187271221,-2.3607198404592336e-5,2.7947049692492793e-8,0.0012395656932513142,-2.3829477290720274e-5,2.808131142382676e-8,0.001239931567574002,-2.4033454791804963e-5,2.8203502070202986e-8,0.001240354197034772,-2.419368952870141e-5,2.8297948187087624e-8,0.0012408160639877112,-2.4289979933212816e-5,2.835226322126063e-8,0.0012412924936616241,-2.431076507997636e-5,2.835947104322042e-8,0.001241754847581157,-2.4255949556786933e-5,2.8319783468064274e-8,0.0012421750027906508,-2.413837942889537e-5,2.8241514856497743e-8,0.0012425305735050856,-2.398330917104594e-5,2.8140695039591662e-8,0.001242810041407821,-2.3825431793646963e-5,2.803911624686781e-8,0.0012430167548026835,-2.3703494765039817e-5,2.796086702784852e-8,0.0012431707595330977,-2.3653019187846447e-5,2.792773776976358e-8,0.0012433075282853305,-2.3697965910599013e-5,2.7954078812129726e-8,0.0012434727173970845,-2.3842679769997022e-5,2.8041949740427052e-8,0.001243712463212426,-2.4066405760676784e-5,2.8177927469785303e-8,0.0012440601035040232,-2.432362427984792e-5,2.8333484399655164e-8,0.0012445228361571915,-2.4553159928907133e-5,2.84706844897476e-8,0.001245074558848186,-2.469598742631698e-5,2.8553156726817562e-8,0.0012456608862963842,-2.4715959349908565e-5,2.8558858281151512e-8,0.001246216708050109,-2.4613291013679496e-5,2.8488399775580813e-8,0.001246688489499405,-2.4423038202625592e-5,2.8364074640010765e-8,0.0012470500759516796,-2.4199802086790886e-5,2.8220269933140577e-8,0.0012473056186578205,-2.3997923243581362e-5,2.8091007067191165e-8,0.0012474816718979766,-2.3856832628854112e-5,2.8000725693752732e-8,0.0012476152297567857,-2.3795467178827526e-5,2.796083255759579e-8,0.0012477434727424471,-2.3813936544781482e-5,2.797087896365848e-8,0.0012478974825907967,-2.3898538079999737e-5,2.802185450423327e-8,0.0012480994715242364,-2.4027063105389873e-5,2.8099607177080368e-8,0.0012483620860405254,-2.4173063448967265e-5,2.8187527217003586e-8,0.0012486885425988454,-2.4309038643380227e-5,2.8268487756534477e-8,0.0012490729604937483,-2.4409048929309893e-5,2.832640747738927e-8,0.0012495008229754566,-2.4451320673572244e-5,2.8347832218140762e-8,0.0012499499393055541,-2.442119484453209e-5,2.8323772418069707e-8,0.0012503925365264328,-2.4314275664468087e-5,2.8251695604431464e-8,0.0012507990005257714,-2.4139030867608762e-5,2.8137171704645568e-8,0.001251143262636996,-2.391768914256767e-5,2.7994415164953935e-8,0.0012514090363835088,-2.368426701735876e-5,2.7844976389814205e-8,0.0012515953110546903,-2.3479107716070564e-5,2.771421375274228e-8,0.0012517191350728285,-2.3340474530020665e-5,2.7625933544735366e-8,0.0012518141482856812,-2.3295030625602135e-5,2.7596407518891168e-8,0.00125192444142756,-2.334975383124914e-5,2.7629401271552236e-8,0.0012520946514939732,-2.348776438369355e-5,2.7713746828686006e-8,0.0012523583631477433,-2.3669877510084097e-5,2.7824516476769492e-8,0.0012527277286170939,-2.38425421336231e-5,2.7928118057615044e-8,0.0012531876409788102,-2.3951178423680048e-5,2.7990642199443437e-8,0.0012536974445180235,-2.395580939174183e-5,2.7987543221912417e-8,0.0012542012794675764,-2.3843814405731823e-5,2.7911488512020674e-8,0.0012546444912580575,-2.3634230998913443e-5,2.7774939914552914e-8,0.0012549898708866338,-2.337098949679818e-5,2.760582318235473e-8,0.0012552269467497428,-2.31078977299701e-5,2.7438033142794907e-8,0.0012553712247767674,-2.2892283909759187e-5,2.730112602560997e-8,0.001255455539610628,-2.2753872111695107e-5,2.7213370434487382e-8,0.0012555187275849952,-2.2701515499694785e-5,2.7179817449245153e-8,0.0012555962675502516,-2.2726235663317327e-5,2.719436714414756e-8,0.0012557148843836085,-2.280713457832666e-5,2.724360162183075e-8,0.001255890687072248,-2.2917285638186973e-5,2.7310518757386415e-8,0.001256129398595488,-2.3028282424195017e-5,2.7377340966423323e-8,0.0012564273842037858,-2.3113398094334926e-5,2.742741470506988e-8,0.001256772748129926,-2.3149894992070267e-5,2.7446594516070987e-8,0.0012571463545275083,-2.3121157899020574e-5,2.7424565261140528e-8,0.0012575231640768645,-2.3019131476612913e-5,2.7356401669610725e-8,0.001257874612111306,-2.284700440575688e-5,2.7244296214391676e-8,0.0012581727000068063,-2.2621361371800596e-5,2.7098925268443296e-8,0.0012583959412701018,-2.2372382207858894e-5,2.6939533510837228e-8,0.0012585362273141267,-2.2140433227805133e-5,2.6791698499354605e-8,0.0012586042852673735,-2.196814660205169e-5,2.6682241581275458e-8,0.0012586306549829782,-2.1889126806689826e-5,2.6632055608261722e-8,0.0012586601311620252,-2.1916855981065547e-5,2.664914718129419e-8,0.0012587403517282045,-2.2038399148444123e-5,2.672480002912566e-8,0.0012589081308858302,-2.2216070066749486e-5,2.6834805998698666e-8,0.001259178401966701,-2.2397001174915816e-5,2.6945651229235044e-8,0.0012595395662738137,-2.2527436600423014e-5,2.7023591961309044e-8,0.0012599565073977735,-2.2567114697326255e-5,2.704368259177285e-8,0.0012603800277351954,-2.249955563699239e-5,2.6996141762203254e-8,0.0012607598300570521,-2.2335587057110256e-5,2.6888416016816608e-8,0.0012610573544834757,-2.2109330675960614e-5,2.674249136516303e-8,0.0012612547690560867,-2.186800615213288e-5,2.6588343449294578e-8,0.0012613575758832708,-2.1658922356915117e-5,2.6455686208838244e-8,0.001261390591051946,-2.151793017938794e-5,2.6366737636690552e-8,0.00126138947197204,-2.146269522919313e-5,2.6332111564846554e-8,0.001261391218294045,-2.1491868003257122e-5,2.635046486548411e-8,0.0012614266428808319,-2.15888902989852e-5,2.641103229929555e-8,0.0012615162216082754,-2.1727952954471072e-5,2.6497431575663864e-8,0.0012616690635331466,-2.187983048108349e-5,2.6591299115901463e-8,0.0012618838439774989,-2.2016383972793845e-5,2.6675035116793972e-8,0.0012621505235054361,-2.2113585277586392e-5,2.6733624171416905e-8,0.0012624521180612978,-2.2153524616584108e-5,2.6755867859438524e-8,0.00126276632102878,-2.2126043067001626e-5,2.6735440962205498e-8,0.0012630672801498218,-2.2030481309721585e-5,2.6672051476437688e-8,0.0012633282001385453,-2.1877576094169603e-5,2.6572675677080794e-8,0.0012635254927225803,-2.1690821374928485e-5,2.6452399559931268e-8,0.0012636447200479173,-2.150581193844573e-5,2.6333924961939377e-8,0.0012636873694712005,-2.1365630790647973e-5,2.62445471842398e-8,0.001263675689203714,-2.1311092535360135e-5,2.6209908895091034e-8,0.001263651583389443,-2.1367352542053175e-5,2.624553285893486e-8,0.0012636669236140193,-2.1532112858698217e-5,2.6349454998586358e-8,0.0012637672086514252,-2.1772261625864342e-5,2.6500247615930587e-8,0.0012639754671761418,-2.2032532614826404e-5,2.666264158225693e-8,0.001264284192241647,-2.2253087100624153e-5,2.679874434506354e-8,0.0012646586664950854,-2.238799657886381e-5,2.687976398338216e-8,0.001265048952007261,-2.2417146448438736e-5,2.68935001124463e-8,0.0012654046375396352,-2.2348637976309602e-5,2.6845743928639548e-8,0.001265687166465729,-2.2213199967963506e-5,2.6756558234120423e-8,0.0012658770847539854,-2.205411237295862e-5,2.6653709859809845e-8,0.0012659757694239995,-2.1916095275190147e-5,2.6565519875628988e-8,0.0012660024992930466,-2.1835733466883678e-5,2.6514812194613012e-8,0.0012659883363219941,-2.183504682483079e-5,2.6514975770749016e-8,0.001265968564043513,-2.1918984668542527e-5,2.656857289282304e-8,0.0012659755016867593,-2.2076758125450218e-5,2.666835322071545e-8,0.0012660331867845541,-2.2286013655878877e-5,2.6799978389807436e-8,0.0012661546447266811,-2.2518299270481508e-5,2.6945459630868268e-8,0.0012663416011667139,-2.2744366594706175e-5,2.708642168120064e-8,0.0012665859156780787,-2.2938374403736194e-5,2.720666230998871e-8,0.0012668718340026004,-2.308069895407578e-5,2.729387607334129e-8,0.0012671783608418628,-2.315961813842999e-5,2.7340731279403066e-8,0.0012674815022603028,-2.3172399530941718e-5,2.734561490457562e-8,0.0012677565540440863,-2.3126206424985553e-5,2.7313258391016998e-8,0.0012679809078356128,-2.3038880813856224e-5,2.7255232108115096e-8,0.0012681379667225815,-2.293909764723427e-5,2.718996925380211e-8,0.001268222410981478,-2.2864607647463806e-5,2.714153350665855e-8,0.0012682458991817589,-2.285674137919671e-5,2.7136033101520892e-8,0.0012682404442877298,-2.294997743206441e-5,2.7194986348181077e-8,0.0012682552261359058,-2.3158135615329883e-5,2.732665258099185e-8,0.0012683438357439264,-2.3463184370203866e-5,2.751908579692521e-8,0.0012685445912806244,-2.381508922712379e-5,2.774017528295886e-8,0.0012688635218484556,-2.4146813037913072e-5,2.794723304902699e-8,0.0012692705636366676,-2.439852622614259e-5,2.8102383947438925e-8,0.0012697114811386142,-2.453808374801821e-5,2.818558432617654e-8,0.0012701278926337827,-2.456798692026666e-5,2.8199025785485304E-08,0.0012704747097447653,-2.451874191640579e-5,2.8162796580241977e-8,0.0012707290511519327,-2.4435369716645258e-5,2.8106093111468987e-8,0.00127089082105009,-2.4363968771578763e-5,2.8058468845464867e-8,0.0012709780445711418,-2.4341966719446985e-5,2.804354865594735e-8,0.0012710200656264432,-2.439279816146933e-5,2.8075722588673664e-8,0.001271050641705294,-2.4524258495752033e-5,2.8159296031538897e-8,0.0012711018882705825,-2.4729497552478398e-5,2.8289339641440367e-8,0.0012711994916664129,-2.4989923105568873e-5,2.8453680377103202e-8,0.0012713595362361608,-2.5279401250563086e-5,2.863560229913506e-8,0.0012715871496310693,-2.5568988582094783e-5,2.8816787886148046e-8,0.0012718768697763392,-2.5831442116825033e-5,2.898007870930307e-8,0.0012722144010838205,-2.6044933071783422e-5,2.911175618979125e-8,0.0012725792455093397,-2.619559555621507e-5,2.9203144635270495e-8,0.001272947626786604,-2.627888618297095e-5,2.9251514544716158e-8,0.0012732953571026233,-2.630006763486035e-5,2.9260441855358742e-8,0.0012736006475878774,-2.6274127894061375e-5,2.9239767557704245e-8,0.0012738470763975945,-2.6225193166156763e-5,2.9205161411702542e-8,0.0012740270157430664,-2.6185124088254545e-5,2.9177104177386633e-8,0.0012741455908807501,-2.6190414429344983e-5,2.9178785414269988e-8,0.001274224316427514,-2.62760887589678e-5,2.9232165679184445e-8,0.0012743020615554482,-2.646586880061536e-5,2.935178899471236e-8,0.001274429803943883,-2.6760187731966526e-5,2.9537333686976303e-8,0.0012746566213436674,-2.712756647179489e-5,2.976831346906732e-8,0.0012750096385508432,-2.7507546288788524e-5,3.0006033761210905e-8,0.0012754781610912526,-2.7829406560484464e-5,3.020548189174035e-8,0.001276013858158292,-2.8039650417442057e-5,3.033279425528792e-8,0.0012765492750488386,-2.812244159011328e-5,3.0378310890776146e-8,0.001277023642649741,-2.810137217333263e-5,3.035772861075833e-8,0.0012774012466509133,-2.802473521408781e-5,3.0302589247883327e-8,0.0012776758745853178,-2.7945890596938154e-5,3.024749497268067e-8,0.0012778647758220772,-2.79085430819153e-5,3.022048134829472e-8,0.001277998800793535,-2.793980262467159e-5,3.0238533240266736e-8,0.0012781132813501053,-2.804931557698271e-5,3.0307171318946226e-8,0.0012782413834105137,-2.8231718287190717e-5,3.042226138414893e-8,0.0012784098972853835,-2.8470294804898002e-5,3.0572571320992245e-8,0.0012786367518833218,-2.8740849073584766e-5,3.074235593251752e-8,0.0012789297433653374,-2.9015619036969142e-5,3.091384476109464e-8,0.0012792863683563302,-2.9267159831319898e-5,3.10696300382083e-8,0.0012796947422641365,-2.9471974501639326e-5,3.119488465856777e-8,0.0012801355484260517,-2.9613619515355336e-5,3.127929159311357e-8,0.0012805848824221722,-2.9684936207415627e-5,3.131847898599492e-8,0.001281017638662968,-2.968910490383866e-5,3.131473845451968e-8,0.0012814109964758992,-2.963950002011583e-5,3.1276957457645865e-8,0.0012817477332364437,-2.9558493616968298e-5,3.1219814796159154e-8,0.0012820192456920046,-2.9475284638605605e-5,3.116227933862801e-8,0.001282228197848576,-2.9422701983244574e-5,3.1125420021043346e-8,0.001282390606699797,-2.943268070189973e-5,3.112941115271035e-8,0.0012825366317504978,-2.9529907636028162e-5,3.118948519163852e-8,0.0012827084194776662,-2.9723676059624966e-5,3.131088059813362e-8,0.0012829528288665348,-2.9999700516418604e-5,3.1483844908667825e-8,0.0012833079130263225,-3.0316201547194518e-5,3.168132285335997e-8,0.0012837859765342673,-3.061020073146328e-5,3.1863018658290956e-8,0.0012843618450062628,-3.081684226297564e-5,3.198765635324121e-8,0.0012849765874220782,-3.089521995994752e-5,3.20294184946202e-8,0.0012855586318208988,-3.084588285428632e-5,3.1989175468429604e-8,0.0012860510837547415,-3.0708540178211655e-5,3.189304549666774e-8,0.001286429391721135,-3.054259065273131e-5,3.1779790208841204e-8,0.0012867022080911398,-3.0404062537684042e-5,3.1685762437681995e-8,0.001286900377279203,-3.0330777585708804e-5,3.163518182633183e-8,0.001287063300987379,-3.0338387143386424e-5,3.163759774986754e-8,0.001287228565364857,-3.042354922701865e-5,3.1690131287687944e-8,0.0012874261434639106,-3.056970632894269e-5,3.1781451277475414e-8,0.0012876761011276928,-3.075264889043229e-5,3.189554315979008e-8,0.001287988197340863,-3.094489886686548e-5,3.201458498978887e-8,0.0012883622633117567,-3.111913753711612e-5,3.2121090216733314e-8,0.0012887890246263095,-3.125116421789353e-5,3.219969606469643e-8,0.0012892514436496775,-3.1322610080414284e-5,3.223881626240157e-8,0.0012897267572810904,-3.132337450102907e-5,3.223217751474067e-8,0.0012901893827250341,-3.125348366035541e-5,3.2180042784654345e-8,0.0012906146194111945,-3.1123848609875844e-5,3.208974051574626e-8,0.0012909826969805158,-3.0955505293186115e-5,3.197517438868874e-8,0.0012912825565626971,-3.0777215881050795e-5,3.185520292845642e-8,0.0012915147687625943,-3.0621540642874033e-5,3.175097395022615e-8,0.001291693035842951,-3.0519716537336427E-05,3.168249183610786e-8,0.0012918438362249742,-3.0495841413462402e-5,3.1664819795655e-8,0.0012920037928547566,-3.056087693364674e-5,3.1704304670211076e-8,0.0012922141715474165,-3.0707282053063105e-5,3.17953364867465e-8,0.001292512034520009,-3.090599709338316e-5,3.1918661500173786e-8,0.0012929187002381516,-3.110850773894603e-5,3.2042880122178096e-8,0.0012934285950733568,-3.1256693423193994e-5,3.213078673276235e-8,0.0012940044453168913,-3.1300498297250774e-5,3.215061328521406e-8,0.001294584877820033,-3.12176444133966e-5,3.20885883560331e-8,0.001295104589766634,-3.102462475607171e-5,3.195596529494129e-8,0.0012955179603695564,-3.077085167751126e-5,3.178521309227125e-8,0.0012958131840410975,-3.0518540566581096e-5,3.1616916955709714e-8,0.0012960105999187787,-3.032026641965267e-5,3.148511085415194e-8,0.0012961495978159076,-3.0205433323736027e-5,3.140845109678617e-8,0.0012962734470908504,-3.0178565979806494e-5,3.1389212768773746e-8,0.0012964186126221632,-3.022527856628844e-5,3.141738252834504e-8,0.0012966099467786687,-3.032037295760454e-5,3.1476126820308665e-8,0.0012968600751613467,-3.043465498738407e-5,3.154631955101938e-8,0.0012971707339509185,-3.0539529403013107e-5,3.160949484610287e-8,0.0012975345391934867,-3.0609886172662965e-5,3.164960498486348e-8,0.0012979366525891216,-3.062613758462698e-5,3.1654217987039235e-8,0.0012983564533401342,-3.057599296156603e-5,3.1615600298714555e-8,0.0012987695840761062,-3.0456167864014533e-5,3.1531828857941956e-8,0.0012991507884455799,-3.027379091331488e-5,3.140775068646107e-8,0.0012994777236449333,-3.004683999448522e-5,3.125530194558217e-8,0.0012997353921117309,-2.9802813505353085e-5,3.1092622133109445e-8,0.0012999202861004046,-2.9575139003558806e-5,3.09416264273142e-8,0.0013000430270444395,-2.93974130243819e-5,3.0824133092212875e-8,0.001300128331498118,-2.9296350396882437e-5,3.075718715872455e-8,0.0013002116679433546,-2.928500804947685e-5,3.074866956412388e-8,0.0013003328193243616,-2.935801434543197e-5,3.0794343521651624e-8,0.001300527308605543,-2.9490231267340253e-5,3.0877225135393917e-8,0.0013008171756119307,-2.9639869058835446e-5,3.0969838317194383e-8,0.0013012031591031939,-2.9756515314625574e-5,3.10395465251122e-8,0.0013016609455879465,-2.9793446563434323e-5,3.105650235031395e-8,0.0013021442562541905,-2.972172931898944e-5,3.100263591424007e-8,0.0013025961177511457,-2.9541337275106654e-5,3.087867894617946e-8,0.0013029660006317406,-2.9283509335878423e-5,3.0705543544897195e-8,0.0013032261586196996,-2.9001308736517474e-5,3.051808034793436e-8,0.0013033793833759004,-2.875164122635431e-5,3.035331118242153e-8,0.0013034547749617115,-2.8577237008618275e-5,3.023868954419752e-8,0.0013034950005774671,-2.8496554952853205e-5,3.018561791167246e-8,0.0013035422626375217,-2.8503927091162528e-5,3.018972942257647e-8,0.0013036286487182313,-2.8576659673191224e-5,3.023572044825167e-8,0.0013037723920898197,-2.8683998777921855e-5,3.0303320007544866e-8,0.0013039784710675347,-2.8794434907111588e-5,3.037204952208462e-8,0.0013042411712836108,-2.8880283437659195e-5,3.042410362765577e-8,0.0013045469059940415,-2.8920083977942182e-5,3.044577741719525e-8,0.0013048765892900785,-2.8899827777303695e-5,3.042817208710491e-8,0.0013052076096280716,-2.8813836177220682e-5,3.0367751697282956e-8,0.0013055158699504063,-2.8665686201342626e-5,3.026699500311816e-8,0.0013057784723598796,-2.8469027833693583e-5,3.0134989400730604e-8,0.0013059774012722158,-2.824758312302742e-5,2.998744624708401e-8,0.0013061039917527009,-2.803329661145913e-5,2.984543622349855e-8,0.0013061631500154798,-2.786174715368294e-5,2.973227959525612e-8,0.0013061755169066931,-2.7764752904717206e-5,2.966860348764004e-8,0.0013061756394885842,-2.7761595595907e-5,2.9666567318660748e-8,0.0013062052931786697,-2.785175086959786e-5,2.972518749832201e-8,0.001306303142538855,-2.801230059159129e-5,2.9828826603746476e-8,0.0013064938194895942,-2.820182285028999e-5,2.9949955265754234e-8,0.001306780086361943,-2.8370168467178228e-5,3.005571106771042e-8,0.0013071407644421912,-2.8471378373462444e-5,3.0116392578181026e-8,0.0013075352201250116,-2.8475996159682643e-5,3.011342304590286e-8,0.001307913334487316,-2.8379292346448963e-5,3.0044539506056616e-8,0.0013082284553436203,-2.820295608258615e-5,2.992467194139616e-8,0.001308449795111905,-2.798934380814309e-5,2.9781980996995586e-8,0.0013085703641908598,-2.7789555942438875e-5,2.9649940584985727e-8,0.0013086075992558702,-2.7649081856834136e-5,2.9557946510256037e-8,0.0013085965713823258,-2.7596068441511594e-5,2.9523765739778143e-8,0.001308578775603071,-2.763613069992761e-5,2.9550353019012925e-8,0.0013085910545795772,-2.7754483402330733e-5,2.9627464816654964e-8,0.0013086582864577261,-2.7923038311927625e-5,2.973644409629548e-8,0.00130879097813508,-2.810881146934206e-5,2.985573633256056e-8,0.0013089866559391336,-2.8280794299983097e-5,2.9965288371083946e-8,0.0013092330853364449,-2.841421177594859e-5,3.004918959647898e-8,0.0013095117218239086,-2.849249915857971e-5,3.00968495932514e-8,0.0013098006051115334,-2.8507901829533638e-5,3.010335322333937e-8,0.0013100766331532816,-2.8461574612671678e-5,3.006956699423517e-8,0.00131031764281404,-2.8363692896845595e-5,3.0002285569679514e-8,0.0013105049028917662,-2.823351948220192e-5,2.991431821194102e-8,0.0013106264457913824,-2.809877946612421e-5,2.9824048280105456e-8,0.001310681133427025,-2.7993271777071674e-5,2.9753766780009736e-8,0.0013106824426351005,-2.795161269268233e-5,2.972610709291234e-8,0.0013106598420135267,-2.8000824017845768e-5,2.975846481850516e-8,0.001310655166280242,-2.8150479328616627e-5,2.9856575254154354e-8,0.0013107127876955784,-2.8385509043680695e-5,3.000993471753322e-8,0.0013108657814568222,-2.866643869990418e-5,3.0192141079751784e-8,0.0013111236756196114,-2.8939129152693387e-5,3.036744088323199e-8,0.0013114677764056418,-2.915104009753794e-5,3.0501486920959236e-8,0.001311856492484787,-2.9267251923133067e-5,3.0571854184595145e-8,0.001312238049311916,-2.9279859822208612e-5,3.057411525864111e-8,0.0013125651169096678,-2.9208198159179714e-5,3.0521802359526976e-8,0.0013128064021552001,-2.909142250826646e-5,3.044129361786551e-8,0.0013129525886068233,-2.897698933927629e-5,3.0364030849243177e-8,0.001313016206816826,-2.890865807546817e-5,3.031854722956662e-8,0.001313026461668143,-2.8916887043806896e-5,3.0324238748257375e-8,0.0013130209243820167,-2.901349026915853e-5,3.0388075426164644e-8,0.0013130364508609068,-2.91912467162573e-5,3.050460897562148e-8,0.0013131016267059507,-2.9427863667728573e-5,3.0658773423636455e-8,0.00131323234339437,-2.9692576163541312e-5,3.0830280966021656e-8,0.0013134309224520154,-2.9953194080713292e-5,3.099817761610996e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json new file mode 100644 index 0000000..e8e2db5 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":14000,"numberOfSamples":1000,"samples":[0.0013136880538731968,-3.0181825300251084e-5,3.1144455018197914e-8,0.0013139862307697747,-3.0358458604268804e-5,3.125626468859012e-8,0.0013143034381558063,-3.0472498704118995e-5,3.1326857923882795e-8,0.001314616342296335,-3.0522889122674205e-5,3.135568412117831e-8,0.0013149028238326915,-3.051757614543907e-5,3.134810730752583e-8,0.0013151441476950397,-3.0472812693602606e-5,3.1315005489895234e-8,0.001315327245423572,-3.041233669157899e-5,3.127221966442859e-8,0.0013154474985632677,-3.0365940022199845e-5,3.1239522569258994e-8,0.0013155119761371786,-3.0366482616605727e-5,3.123852579233063e-8,0.0013155421786821661,-3.044428590458291e-5,3.1288903751562086e-8,0.0013155741637083083,-3.061859253490029e-5,3.140279579367739e-8,0.0013156532826805987,-3.08878545724263e-5,3.15785553459714e-8,0.0013158221093964287,-3.122350814634265e-5,3.179684474210843e-8,0.0013161043666861684,-3.1573152017452694e-5,3.202287220092828e-8,0.001316492562279381,-3.187552478285449e-5,3.221630534507893e-8,0.0013169475071545026,-3.2081986318948946e-5,3.234541530079332e-8,0.0013174114482328236,-3.217362581767834e-5,3.2398333198900105e-8,0.0013178279759007432,-3.216549962188907e-5,3.238578137269618e-8,0.0013181587209702065,-3.209786877058771e-5,3.233512178519737e-8,0.0013183908584672483,-3.202101456924127e-5,3.2280078366949867e-8,0.0013185355723118594,-3.198087692229784e-5,3.22510415181099e-8,0.0013186210256550192,-3.200948903377424e-5,3.226871171627078e-8,0.001318683516304464,-3.212087078817048e-5,3.2341550899422565e-8,0.0013187592325329092,-3.2311333689063695e-5,3.246626921888799e-8,0.0013188777975085585,-3.256278527721231e-5,3.263027897225073e-8,0.0013190580943835157,-3.28478210560236e-5,3.281520552707126e-8,0.001319306537685271,-3.3135522599053245e-5,3.30007052286256e-8,0.0013196176305973269,-3.339691167788335e-5,3.3167938459672674e-8,0.0013199762931723731,-3.360923943949643e-5,3.330224076991175e-8,0.001320361240591444,-3.3758679883073964e-5,3.339478932604852e-8,0.0013207486407314094,-3.3841371491741154e-5,3.3443266039948134e-8,0.0013211154170834028,-3.3863122696377714e-5,3.345170814905867e-8,0.0013214419486963593,-3.3838325595684376e-5,3.342984862739796e-8,0.0013217143059939618,-3.3788485178276064e-5,3.3392152957732015e-8,0.0013219262892678202,-3.374042925569602e-5,3.3356565064026065e-8,0.0013220814837101608,-3.37239298755937e-5,3.334280561542386e-8,0.0013221952658236343,-3.3768093745891034e-5,3.336987271475884e-8,0.0013222959339579021,-3.389572813238187e-5,3.345230413051685e-8,0.0013224231012386285,-3.411559264521433e-5,3.359518483099222e-8,0.001322620987373266,-3.44143314836092e-5,3.378904291433436e-8,0.0013229254974994617,-3.47525377055976e-5,3.4007455453146385e-8,0.0013233481259613213,-3.507078420316715e-5,3.421110391244622e-8,0.0013238651644779758,-3.5307915680853196e-5,3.435980179531848e-8,0.0013244214578083684,-3.5424988893193025e-5,3.4428250117923195e-8,0.0013249498096669955,-3.5421322382391885e-5,3.441665080515855e-8,0.0013253957656545127,-3.533284530570563e-5,3.4349593606930406e-8,0.0013257341054285624,-3.521518782185486e-5,3.4264687362774436e-8,0.0013259708733802966,-3.5122901891955616e-5,3.4198504380576074e-8,0.0013261345823387194,-3.509485421874728e-5,3.4176685340857736e-8,0.0013262639590043055,-3.514877227589115e-5,3.421034115508173e-8,0.0013263974759466818,-3.5282692478288204e-5,3.42972534612874e-8,0.0013265664975942637,-3.547980948220061e-5,3.4425417060696266e-8,0.00132679174008558,-3.5714173837029465e-5,3.457707337361339e-8,0.0013270820868991236,-3.595606011854193e-5,3.473236215303623e-8,0.0013274350277215283,-3.617667618018595e-5,3.487237396855363e-8,0.0013278383205704806,-3.6352045676457e-5,3.4981566469251094e-8,0.0013282725585155749,-3.6465885830951754e-5,3.504952018493835e-8,0.0013287143399232126,-3.651136884131447e-5,3.507202780552796e-8,0.001329139723468503,-3.649166207236073e-5,3.5051459488144146e-8,0.0013295275370495275,-3.6419245769639135e-5,3.499636143139478e-8,0.0013298621741601225,-3.631427873602864e-5,3.492040029054349e-8,0.0013301357987788196,-3.620233676919433e-5,3.484081953074903e-8,0.0013303500182077856,-3.6111625895291846e-5,3.4776475543805855e-8,0.0013305170072328,-3.606960581815073e-5,3.4745462642883064e-8,0.0013306599051258836,-3.609882203418703e-5,3.4762278550856455e-8,0.0013308118536023116,-3.621166286686944e-5,3.483441417239421e-8,0.0013310123518564367,-3.64043217054422e-5,3.495855682409469e-8,0.0013312994223816388,-3.6651762152887505e-5,3.511751481890027e-8,0.0013316973518746693,-3.6907391838432765e-5,3.528018149292224e-8,0.0013322032136629622,-3.711186898684884e-5,3.540737536800615e-8,0.0013327798493111566,-3.721219549322923e-5,3.546437127639159e-8,0.0013333634934342639,-3.718420813249119e-5,3.543571757580381e-8,0.001333886255019829,-3.70450465515009e-5,3.53335093009964e-8,0.0013343019613464686,-3.6846215847581066e-5,3.5192757078025216e-8,0.001334600413137058,-3.6651362298198277e-5,3.505642654975122e-8,0.0013348042208097524,-3.6512872822752915e-5,3.495958564720737e-8,0.0013349544109773996,-3.6458841744971036e-5,3.49205708479965e-8,0.0013350949386154267,-3.649215529746224e-5,3.49404840851344e-8,0.0013352621732775469,-3.659679818886342e-5,3.500770195061645e-8,0.001335480179315456,-3.6746003522191745e-5,3.510363508802379e-8,0.0013357600358690303,-3.6909212409168185e-5,3.520756323936493e-8,0.0013361011544938224,-3.705705068984642e-5,3.52999605336332e-8,0.00133649332519081,-3.7164741980348925e-5,3.536463540591373e-8,0.0013369190829818159,-3.7214510810799346e-5,3.539015342857483e-8,0.0013373563443612583,-3.719721204638616e-5,3.537079341232845e-8,0.0013377813051418917,-3.711323131523201e-5,3.530711046883947e-8,0.0013381715937814552,-3.697254005026054e-5,3.520601101140213e-8,0.0013385094912165925,-3.6793660324817705e-5,3.5080116340020854e-8,0.0013387847813319696,-3.660147627572446e-5,3.494630461274569e-8,0.0013389968351418553,-3.642410292771776e-5,3.482354178926302e-8,0.0013391557003256266,-3.628905404552198e-5,3.473019081800264e-8,0.0013392819820180002,-3.621893946658274e-5,3.468102678374732e-8,0.0013394052631200586,-3.622700347066692e-5,3.468425016446891e-8,0.0013395607383982387,-3.631286700900988e-5,3.473878515860904e-8,0.0013397835600754613,-3.645915330073845e-5,3.483228424044899e-8,0.0013401005623555385,-3.663056453013473e-5,3.494077405219707e-8,0.0013405202232471124,-3.6777887727110934e-5,3.5031461893425745e-8,0.0013410241084409612,-3.684910446392256e-5,3.5070089714356354e-8,0.0013415655317836142,-3.68068037108336e-5,3.503236888286036e-8,0.0013420805713068025,-3.664539114072159e-5,3.491530557749418e-8,0.0013425100358751974,-3.6397470548011556e-5,3.47413920987351e-8,0.00134282186684753,-3.6122771266874264e-5,3.455114282299104e-8,0.0013430210440999052,-3.5884585735838275e-5,3.438718523558038e-8,0.0013431424937006674,-3.5727401868071906e-5,3.427912167202074e-8,0.00134323392387406,-3.5666709476200635e-5,3.423668442759081e-8,0.0013433393957544833,-3.569188452387105e-5,3.425186840423222e-8,0.0013434898472930886,-3.577592172660759e-5,3.430576805004325e-8,0.0013437006458960645,-3.588557734935549e-5,3.4375631883152696e-8,0.0013439733632099559,-3.598872432152733e-5,3.443987682266083e-8,0.0013442990272794215,-3.6058572131738544e-5,3.448082578605249e-8,0.0013446613049089872,-3.6075754726357985e-5,3.44859220020242e-8,0.001345039248616876,-3.6029368037547205e-5,3.444825503332818e-8,0.0013454098213895693,-3.591751673460431e-5,3.436684759254604e-8,0.0013457504724702282,-3.57474829484819e-5,3.424678910825797e-8,0.0013460419605556845,-3.5535332633184876e-5,3.409904369034362e-8,0.0013462713941414768,-3.530453678562293e-5,3.3939575913952353e-8,0.0013464350440412546,-3.5083247688415916e-5,3.3787496601098456e-8,0.001346540218956281,-3.490026072080504e-5,3.366224387151234e-8,0.0013466055506973335,-3.478008498355249e-5,3.358013732940204e-8,0.001346659241019408,-3.4737853074248655e-5,3.355088149022233e-8,0.0013467351263881956,-3.477505002897689e-5,3.3574748237485566e-8,0.0013468668157807983,-3.487707274585662e-5,3.36411293630354e-8,0.0013470805087412794,-3.501350818296307e-5,3.3728992049500143e-8,0.0013473874871725111,-3.5141989537112516e-5,3.3809694862078156e-8,0.0013477779846166242,-3.5216299066590065e-5,3.385250575241212e-8,0.0013482190793279586,-3.5198369687471605e-5,3.3832555330064887e-8,0.001348659613978359,-3.507162618165665e-5,3.3739577083562544e-8,0.001349043468490627,-3.485031268644354e-5,3.358395470384573e-8,0.001349327999366581,-3.4578485620740276e-5,3.3395893343763146e-8,0.0013494994616960665,-3.431622032059404e-5,3.321604676365601e-8,0.001349576900362316,-3.411840812110945e-5,3.3081186820720924e-8,0.0013496024923671088,-3.4016892922365775e-5,3.3012189592066463e-8,0.0013496246279193777,-3.401415154718749e-5,3.300992090644571e-8,0.0013496829179363164,-3.408870967312186e-5,3.305913434321514e-8,0.0013498005419856707,-3.420638364611618e-5,3.313629142245499e-8,0.001349983766265312,-3.433103577998142e-5,3.3216931742549514e-8,0.001350225503188383,-3.443167213616684e-5,3.328041116125517e-8,0.001350509870791549,-3.44857855079198e-5,3.3311987997451824e-8,0.001350816111848709,-3.44802776149318e-5,3.330325655153641e-8,0.0013511215354534733,-3.44113203272646e-5,3.325193674476666e-8,0.0013514038266242718,-3.428394324938091e-5,3.3161588903372553e-8,0.0013516432294084326,-3.41115562702498e-5,3.3041366067246576e-8,0.0013518249947347244,-3.391515061958602e-5,3.29055587983786e-8,0.0013519421489563276,-3.372159161237384e-5,3.277246672853169e-8,0.0013519981162253448,-3.35604192219653e-5,3.2662172488743894e-8,0.0013520082488663807,-3.345899609113347e-5,3.259313778399188e-8,0.0013519991491952143,-3.343655294053388e-5,3.257806735071459e-8,0.0013520049886915973,-3.349849264305731e-5,3.262004101630264e-8,0.0013520609158930905,-3.36328575909331e-5,3.2710241377374956e-8,0.0013521948074782938,-3.3810651240403614e-5,3.2828394204526694e-8,0.0013524194680195325,-3.399070247049815e-5,3.2946301667474426e-8,0.0013527275548078518,-3.412846985252045e-5,3.3033954284171145e-8,0.0013530910516223313,-3.41870260521444e-5,3.306696170857802e-8,0.0013534662186818406,-3.414758958099839e-5,3.303351712767489e-8,0.0013538036921596796,-3.401650121264336e-5,3.293885919569297e-8,0.0013540617630267778,-3.3825695437600704e-5,3.280532715743045e-8,0.0013542189655621978,-3.3625013396523797e-5,3.2666968653528377e-8,0.0013542809896239987,-3.3467679762926974e-5,3.255963827369867e-8,0.0013542783419837156,-3.3394020433318414e-5,3.251003853738814e-8,0.0013542554119995557,-3.342020697923614e-5,3.252828382153754e-8,0.0013542560140103023,-3.3536391035527796e-5,3.2606892142050424e-8,0.0013543116989025482,-3.371353007933651e-5,3.2725642792952345e-8,0.0013544365308802784,-3.391431273365121e-5,3.285910327271554e-8,0.0013546280975285543,-3.410316353858851e-5,3.2983383466057345e-8,0.0013548720539619643,-3.4252552907384106e-5,3.308026489902493e-8,0.001355147353668992,-3.43454908576762e-5,3.313870075252464e-8,0.0013554305468037433,-3.437553330264171e-5,3.315467676927687e-8,0.0013556988011802253,-3.434572357619407e-5,3.313045281129339e-8,0.0013559320038673691,-3.426735815892247e-5,3.30737806614842e-8,0.0013561145343338845,-3.415887769336406e-5,3.299724375590522e-8,0.0013562372346350193,-3.40446430953795e-5,3.291748056072256e-8,0.001356299729968249,-3.395293821719811e-5,3.285379960496967e-8,0.0013563126464800305,-3.39124616274109e-5,3.2825694374099335e-8,0.0013562986345168043,-3.394695718115785e-5,3.284908231937111e-8,0.0013562906901488832,-3.406854808973949e-5,3.2931730931658255e-8,0.0013563265580224901,-3.4271700357362895e-5,3.3069227097465745e-8,0.0013564394803830895,-3.453081024388408e-5,3.3243512234392763e-8,0.001356647830444362,-3.480395690125668e-5,3.342564568063368e-8,0.0013569477158602284,-3.504296952579012e-5,3.358281757335669e-8,0.0013573120584085639,-3.52068525793514e-5,3.368754392194241e-8,0.001357697050412798,-3.5273779767518736e-5,3.3725762172275216e-8,0.0013580538346326509,-3.524742322405932e-5,3.3700952947215904e-8,0.0013583414729187431,-3.515577457801083e-5,3.3633068996217375e-8,0.0013585373183607017,-3.504326814963739e-5,3.3552899090837633e-8,0.0013586421139425234,-3.4958781479045985e-5,3.3493719387707e-8,0.001358678685937704,-3.494290707046618e-5,3.3482624669021657e-8,0.001358684778336174,-3.501803608967189e-5,3.353396129882613e-8,0.001358702322909947,-3.518405715028354e-5,3.36466993389363e-8,0.0013587666406036992,-3.542061521536396e-5,3.380626499920978e-8,0.0013588989123856205,-3.5694495803273485e-5,3.398974496696862e-8,0.001359103663247866,-3.5969025766868755e-5,3.417229612867719e-8,0.0013593708567535968,-3.621226756590788e-5,3.4332592451649465e-8,0.0013596806793210175,-3.640207539916034e-5,3.4456072169122394e-8,0.0013600088338772479,-3.6527817297702786e-5,3.4535941490019846e-8,0.0013603309085686056,-3.6589745925869715e-5,3.4572666368770736e-8,0.0013606253906847028,-3.659727205627579e-5,3.4572817000381455e-8,0.0013608755966453268,-3.656705235731982e-5,3.45478428901892e-8,0.0013610710755603856,-3.652125748003627e-5,3.4512957394544435e-8,0.0013612090115036409,-3.648585481662091e-5,3.448596151433922e-8,0.0013612958461505,-3.648833256815448e-5,3.448560847301663e-8,0.0013613487825353768,-3.655412453139295e-5,3.452905427534737e-8,0.0013613960977975756,-3.6701245140876124e-5,3.4628141465119906e-8,0.0013614745650237811,-3.693358561190437e-5,3.4784884782548805e-8,0.0013616224205170902,-3.7235042204870165e-5,3.4987633233731027e-8,0.001361868091522445,-3.756832421090297e-5,3.521045772248526e-8,0.001362218255945228,-3.788197415238886e-5,3.541808383563176e-8,0.0013626514699812326,-3.812539193249165e-5,3.557619486093644e-8,0.001363122322234058,-3.8266165560665596e-5,3.566324383611881e-8,0.0013635754647547845,-3.830134386399334e-5,3.5678079037798024e-8,0.0013639630780626708,-3.825738313571894e-5,3.563975015298319e-8,0.001364258080357862,-3.817994201829989e-5,3.5580274568062977e-8,0.0013644589434662312,-3.811922202797349e-5,3.5534332460088205e-8,0.0013645865742663128,-3.81166924124298e-5,3.5530027944857735e-8,0.0013646762446455044,-3.819653354824757e-5,3.558310331044814e-8,0.001364767819829093,-3.8362605590993256e-5,3.569514079478911e-8,0.0013648967631197295,-3.8600238344742254e-5,3.585514627803409e-8,0.0013650874946786213,-3.888148752071901e-5,3.60434300221522e-8,0.0013653499642588421,-3.917227000116867e-5,3.62365942886353e-8,0.00136567964200512,-3.943967176457917e-5,3.6412451385441956e-8,0.0013660603709506384,-3.965784039600382e-5,3.65538578644758e-8,0.0013664688889499187,-3.981147629204727e-5,3.665089579529965e-8,0.0013668796761675812,-3.989679821734419e-5,3.6701401260529234e-8,0.0013672690955396569,-3.992052333462929e-5,3.6710241547116054e-8,0.0013676183253096337,-3.9897716306200194e-5,3.668789735721834e-8,0.0013679151464472477,-3.984932666566189e-5,3.664884493646582e-8,0.0013681550099158162,-3.979985343784534e-5,3.660997364210455e-8,0.0013683418187992174,-3.977508572660584e-5,3.658897704031485e-8,0.0013684886345164064,-3.9799531863791056e-5,3.6602481816290366e-8,0.0013686181140462686,-3.989297417404592e-5,3.6663608773571173e-8,0.0013687618136698219,-4.006569078124706e-5,3.677873040014451e-8,0.0013689567976789784,-4.031268759372785e-5,3.6943686509812775e-8,0.0013692379960220952,-4.0608958982055686e-5,3.714077674900414e-8,0.0013696263976024602,-4.0909688045915914e-5,3.733908018595111e-8,0.001370116858706226,-4.115943735403728e-5,3.7500783826076915e-8,0.0013706730192843547,-4.131030892561659e-5,3.759353716751259e-8,0.0013712357655380756,-4.1341651354543865e-5,3.760387092264407e-8,0.001371743681640421,-4.1269733274189294e-5,3.754378869036469e-8,0.0013721549303818486,-4.114093707006044e-5,3.744600118910848e-8,0.0013724590038156602,-4.1013018078885606e-5,3.7350822712677154e-8,0.0013726746583584263,-4.0935524588789915e-5,3.7292433498253575e-8,0.0013728388253621247,-4.093780361015353e-5,3.7290504667023286e-8,0.0013729936653109317,-4.102619609853645e-5,3.7348411588796894e-8,0.001373176359782013,-4.118762655376452e-5,3.745605098886693e-8,0.0013734130133102524,-4.139607981819826e-5,3.759467361926248e-8,0.0013737161837680623,-4.161950138762874e-5,3.7741869452387925e-8,0.0013740850229568907,-4.182594710895547e-5,3.787581954548767e-8,0.0013745072421834012,-4.198858396882682e-5,3.797857502949695e-8,0.0013749623837124778,-4.208926335925624e-5,3.803827857381001e-8,0.0013754258276343432,-4.2120407717748035e-5,3.8050265155743136e-8,0.001375872892622539,-4.2085198307853355e-5,3.801710263943968e-8,0.001376282469925798,-4.199628974034897e-5,3.7947728565110885e-8,0.0013766397572874227,-4.187345120748918e-5,3.7855899666402347e-8,0.0013769379150291574,-4.1740698791756187e-5,3.775826686919178e-8,0.0013771788132807986,-4.162339046388268e-5,3.76723488673647e-8,0.0013773731537905993,-4.154540420571933e-5,3.7614493141915814e-8,0.0013775401104706387,-4.1526264618012495e-5,3.759779228022895e-8,0.0013777064032593797,-4.157796597586423e-5,3.762987031680914e-8,0.001377904267471179,-4.170125910920436e-5,3.771044184184231e-8,0.0013781672206391812,-4.188175848661827e-5,3.78288749397831e-8,0.00137852256618738,-4.2087548328483725e-5,3.7962807628071696e-8,0.0013789809169083302,-4.2271422389212076e-5,3.807982991820045e-8,0.0013795260580142504,-4.238109909941585e-5,3.8144447194615674e-8,0.0013801120459359865,-4.237742637005507e-5,3.813041208095439e-8,0.0013806741263976,-4.225334424947585e-5,3.8033625865393774e-8,0.0013811520519300435,-4.2041187655938626e-5,3.787713159675286e-8,0.0013815136370865081,-4.180098864064637e-5,3.7703002181980215e-8,0.0013817644462791729,-4.159593522969593e-5,3.755522195444356e-8,0.0013819398040921613,-4.146995772891535e-5,3.7463973571636786e-8,0.0013820873195676013,-4.143814444971667e-5,3.74389528223684e-8,0.0013822508297504756,-4.1489856674521627e-5,3.747173694159376e-8,0.0013824612018183504,-4.159808318168086e-5,3.7542636676095634e-8,0.001382733677333939,-4.172918004101423e-5,3.76277743218216e-8,0.0013830692173663335,-4.185025959459586e-5,3.7704340994960595e-8,0.0013834575067367659,-4.193387127219509e-5,3.7753754368892116e-8,0.00138388030970731,-4.196070426809343e-5,3.776329962305264e-8,0.0013843148322871465,-4.1921028124019695e-5,3.7726878625517075e-8,0.0013847370777409624,-4.181512286564115e-5,3.7645150528966244e-8,0.0013851250900450299,-4.165273271465304e-5,3.752512539985943e-8,0.0013854619058602147,-4.145156074913463e-5,3.737919056711855e-8,0.0013857379458243554,-4.123483834305219e-5,3.722351350041851e-8,0.0013859525067954938,-4.1028195536964666e-5,3.707590164867331e-8,0.001386114186987945,-4.08562465832129e-5,3.6953376917189425e-8,0.0013862402914967716,-4.0739217947163935e-5,3.6869727504020365e-8,0.0013863552819137583,-4.068981038566365e-5,3.683325080139284e-8,0.0013864882812566375,-4.071045407698197e-5,3.684488191793497e-8,0.0013866695093654466,-4.0791084850707254e-5,3.689683217641563e-8,0.0013869252570760705,-4.0907845082072896e-5,3.6971967000828836e-8,0.0013872711358115565,-4.102392437415202e-5,3.7044638632372434e-8,0.0013877044103900269,-4.10944872644231e-5,3.708418444800822e-8,0.0013881982022425643,-4.107730918647336e-5,3.70621554354846e-8,0.0013887024507251455,-4.094823201885367e-5,3.696274535980045e-8,0.0013891560996636264,-4.071545369969397e-5,3.6792453536201996e-8,0.0013895088976246747,-4.042264374578624e-5,3.658214577314118e-8,0.0013897421255975183,-4.013475017712353e-5,3.637717862062872e-8,0.0013898751358086116,-3.99123909946508e-5,3.621955119697095e-8,0.0013899539157585976,-3.97898760399196e-5,3.613256495667892e-8,0.0013900305358917047,-3.976825529054825e-5,3.611605869920365e-8,0.0013901459897183817,-3.982280938552323e-5,3.615187595826213e-8,0.001390322583927315,-3.9916483926864295e-5,3.621354110721034e-8,0.0013905644815372748,-4.00116379826972e-5,3.627465691377648e-8,0.001390862196549241,-4.007719389834769e-5,3.6313891042696686e-8,0.0013911977272878053,-4.009168854677753e-5,3.631692015857626e-8,0.001391548803289706,-4.004388985804637e-5,3.627660019245447e-8,0.0013918921108757572,-3.9932383942914886e-5,3.619246897144912e-8,0.001392205925877442,-3.976474847087717e-5,3.607009012040189e-8,0.001392472481833256,-3.9556371616133894e-5,3.592027726302581e-8,0.0013926801795685095,-3.932876436594814e-5,3.5758025153182566e-8,0.0013928255206943443,-3.910712261197275e-5,3.5600891948591315e-8,0.0013929143574365078,-3.891704325009154e-5,3.546670424830646e-8,0.0013929619662561058,-3.878067864465175e-5,3.5370785800753655e-8,0.0013929916634681091,-3.8712865216251155e-5,3.5323145245009847e-8,0.0013930319212074739,-3.871783709874851e-5,3.532613964822986e-8,0.0013931121650108214,-3.878718027241075e-5,3.537313617747967e-8,0.0013932576761824852,-3.889956926863257e-5,3.544855030305457e-8,0.0013934841205019005,-3.902264562679513e-5,3.5529430896809445e-8,0.0013937923389470475,-3.911747336501126e-5,3.558876680690813e-8,0.0013941645951322254,-3.9146037401005566e-5,3.560072677257016e-8,0.0013945643433518572,-3.908149684330105e-5,3.554760976148454e-8,0.0013949419740809537,-3.8919080012482775e-5,3.54271205202408e-8,0.0013952477277678645,-3.868301987054237e-5,3.525691407233159e-8,0.001395448996586115,-3.842366805801884e-5,3.507242835859129e-8,0.0013955441184541493,-3.8202198743737096e-5,3.491619511363628e-8,0.001395563841894682,-3.806835542580855e-5,3.482237329132881e-8,0.0013955584098649994,-3.804297850225461e-5,3.4804676331452736e-8,0.0013955778157443777,-3.8114400232592614e-5,3.4854056156277526e-8,0.0013956561830292,-3.8248114880291454e-5,3.4945709067619815e-8,0.0013958061096767589,-3.840169374270801e-5,3.504970300817749e-8,0.001396021525706078,-3.853707477095065e-5,3.513962678304474e-8,0.0013962843041433993,-3.8627076516026636e-5,3.5197026880596114e-8,0.0013965707576988314,-3.865699570879773e-5,3.521229439063478e-8,0.0013968563725718281,-3.8623536025609064e-5,3.5183688298750485e-8,0.0013971187911648243,-3.8532907044979155e-5,3.511587978476073e-8,0.001397339741657006,-3.8398963032655006e-5,3.501866053362015e-8,0.0013975065707011172,-3.824149273866268e-5,3.490584928664414e-8,0.0013976137214529206,-3.808437691328442e-5,3.47941124837482e-8,0.0013976641337538325,-3.795316224892923e-5,3.470130668547223e-8,0.0013976701313359334,-3.787171824233571e-5,3.4644083108582145e-8,0.0013976530803277948,-3.785809777299285e-5,3.4634877223998395e-8,0.0013976411745630901,-3.792027581554576e-5,3.467883721971932e-8,0.0013976651171231898,-3.8052873706371765e-5,3.477154552196402e-8,0.001397752138213877,-3.8236151892252456e-5,3.489846164729002e-8,0.0013979195447783234,-3.8438219455829296e-5,3.5036710195449224e-8,0.0013981694399458889,-3.862056128580171e-5,3.515918741519236e-8,0.001398486147697437,-3.874608834560939e-5,3.524031957876636e-8,0.0013988374531938928,-3.878827062153085e-5,3.526239348503685e-8,0.001399180229735303,-3.873936055813441e-5,3.5221074317918304e-8,0.0013994701906148062,-3.861521125226919e-5,3.5128449985403174e-8,0.0013996740998213511,-3.845410205611195e-5,3.501191367250836e-8,0.0013997808979702491,-3.830798334251088e-5,3.490787420794603e-8,0.0013998068841861602,-3.822734029112152e-5,3.485117466616385e-8,0.0013997912690781416,-3.824484084870901e-5,3.486381492238321e-8,0.001399782875381604,-3.836511152067367e-5,3.494805808686753e-8,0.0013998239209614296,-3.856545057793629e-5,3.508720829151086e-8,0.0013999383452429608,-3.880618248898522e-5,3.5253069111989446e-8,0.001400128687982977,-3.9044513556967366e-5,3.5415721677933286e-8,0.0014003803140351105,-3.924559928935504e-5,3.555119946742358e-8,0.0014006688652410718,-3.938796884383357e-5,3.564509648433299e-8,0.0014009672459019793,-3.946401158692379e-5,3.569268613464028e-8,0.0014012504631784645,-3.9477773714654874e-5,3.5697219627372335e-8,0.0014014983378744935,-3.9442025791079544e-5,3.566783351875651e-8,0.0014016968485090753,-3.937562123845998e-5,3.561776933093947e-8,0.0014018389311078144,-3.930135009856592e-5,3.556297869454529e-8,0.0014019252611881805,-3.924395351028988e-5,3.552079791655267e-8,0.0014019650674987158,-3.922771502573723e-5,3.550823547292913e-8,0.0014019765254487317,-3.927316184126799e-5,3.5539561321083074e-8,0.0014019859072127623,-3.939286678870541e-5,3.562326047613582e-8,0.0014020245683540645,-3.9587049026522654e-5,3.57589225433063e-8,0.0014021232793080098,-3.984050350448809e-5,3.5935183683834784e-8,0.0014023045619820167,-4.0122876368864325e-5,3.613011664758931e-8,0.001402575188517273,-4.0393711578013267e-5,3.631499515737404e-8,0.0014029218430838034,-4.0611873294491905e-5,3.6461068646827724e-8,0.0014033123169753285,-4.074679499372091e-5,3.654749216388009e-8,0.0014037026283073234,-4.078780138232347e-5,3.6567752091281347e-8,0.0014040481592061073,-4.074819558912667e-5,3.653228462529379e-8,0.0014043154629272954,-4.0662606574106574e-5,3.646629348386904e-8,0.0014044912857379814,-4.057825582912705e-5,3.640333363998543e-8,0.001404586199481951,-4.054249152292174e-5,3.6376420565956945E-08,0.0014046315916832204,-4.059001163717845e-5,3.640913312668297e-8,0.0014046706036646942,-4.073363552405963e-5,3.650939734711049e-8,0.0014047457709805932,-4.096173679938644e-5,3.6668033280187714e-8,0.0014048875975041877,-4.1243138982900314e-5,3.686248986601918e-8,0.0014051079231287907,-4.153727189609017e-5,3.706412048229687e-8,0.0014053996891925462,-4.180543919169627e-5,3.724605723962737e-8,0.0014057418851642401,-4.201928520354164e-5,3.7388982979293707e-8,0.0014061067325829505,-4.216459310863377e-5,3.748357386154352e-8,0.0014064662792454632,-4.2240904034702006e-5,3.75300453375767e-8,0.001406796935332708,-4.225873123662221e-5,3.753610982343233e-8,0.0014070818711074016,-4.223609237701761e-5,3.7514565091294765e-8,0.0014073119283782146,-4.219538055815336e-5,3.748118402098386e-8,0.0014074858454996213,-4.216086923191445e-5,3.7453036902211475e-8,0.0014076103837110468,-4.215657537536124e-5,3.744699428145286e-8,0.001407700482867457,-4.2203893189522455e-5,3.7477990165415446e-8,0.0014077790394113716,-4.231848459825597e-5,3.755673767593618e-8,0.0014078754676845311,-4.250633958081457e-5,3.768691664581742e-8,0.0014080219967517041,-4.275967059593405e-5,3.7862358742113034e-8,0.0014082470158322466,-4.305438268393406e-5,3.8065444478173206e-8,0.0014085662107764442,-4.3351709842482535e-5,3.826846229183665e-8,0.0014089744868300872,-4.360598119993927e-5,3.843922404533621e-8,0.0014094431536157055,-4.377765422595991e-5,3.8550288702544655e-8,0.0014099256069116926,-4.384699363489847e-5,3.8588547143931624e-8,0.001410370621965012,-4.3822017616625005e-5,3.8560684416864574e-8,0.0014107379906385569,-4.373660777036701e-5,3.8491618344667396e-8,0.001411009964557524,-4.363969764258664e-5,3.841657689536917e-8,0.0014111946000197385,-4.3580512043394426e-5,3.8370420063415034e-8,0.0014113211867777273,-4.359545857298468e-5,3.837829828573306e-8,0.0014114306461733982,-4.3700232323209964e-5,3.8450239351540594e-8,0.001411564408632792,-4.388818610139138e-5,3.858035161105931e-8,0.0014117547305501578,-4.4134232812283986e-5,3.874997182226532e-8,0.0014120184750084578,-4.440248212920195e-5,3.8933324817321076e-8,0.0014123552829552618,-4.4655279826922307e-5,3.910396017989396e-8,0.0014127498958597165,-4.4861304314633954e-5,3.924032595412258e-8,0.0014131773611926266,-4.500092974261656e-5,3.932930729967511e-8,0.0014136092759243295,-4.5068124233728125e-5,3.9367328715653395e-8,0.001414019350464863,-4.50693223258045e-5,3.9359414083827914e-8,0.001414387280570928,-4.5020436860496765e-5,3.931705416718012e-8,0.0014147007530842784,-4.4943253683445574e-5,3.925572649703533e-8,0.0014149560140847756,-4.486209219785531e-5,3.919262101512192e-8,0.0014151576551419522,-4.4801074437002196e-5,3.914474595500056e-8,0.001415318136201093,-4.478183557739158e-5,3.912726793698288e-8,0.0014154572003696824,-4.482122856836196e-5,3.9151802563573214e-8,0.0014156009001108517,-4.492859041749618e-5,3.9224425325897754e-8,0.0014157795097893533,-4.5102449376290346e-5,3.93433918158505e-8,0.0014160233109937125,-4.532727500167816e-5,3.94970098303655e-8,0.0014163555567608258,-4.557201265798743e-5,3.96628298780135e-8,0.0014167833913719533,-4.579313198730899e-5,3.980996986060289e-8,0.0014172901012929602,-4.594441145983626e-5,3.990606550755613e-8,0.0014178341748209257,-4.599235373069634e-5,3.9928088314464635e-8,0.0014183591944381855,-4.593096157451421e-5,3.987268351609923e-8,0.0014188124373602864,-4.5787093578951006e-5,3.975984439233655e-8,0.001419163393834719,-4.561185313227637e-5,3.9626636645945325e-8,0.0014194126920989531,-4.5462152420401115e-5,3.951386849890556e-8,0.0014195882504336435,-4.5382171232237414e-5,3.945270542300551e-8,0.0014197329253106763,-4.539256577330823e-5,3.9456983564371725e-8,0.0014198906236090039,-4.548923231726588e-5,3.952257759491028e-8,0.001420095771986858,-4.5648857684138e-5,3.963175850856077e-8,0.0014203677362581296,-4.5837385340540104e-5,3.975959325884974e-8,0.0014207096597213865,-4.601850510949015e-5,3.988016811818957e-8,0.0014211104809135435,-4.616063637726872e-5,3.9971495331700885e-8,0.0014215489510336552,-4.624177480943514e-5,4.001871904464167e-8,0.0014219986351035052,-4.6251956591088596e-5,4.0015574979438314e-8,0.0014224329376801295,-4.619339291718908e-5,3.996426457805398e-8,0.001422829353219783,-4.607871301987465e-5,3.9874120697775513e-8,0.0014231724530763103,-4.592798447099774e-5,3.9759530620922137e-8,0.0014234554326269762,-4.57652124151591e-5,3.9637548056577846e-8,0.0014236803642659415,-4.561496504861187e-5,3.952556952558051e-8,0.0014238575838519927,-4.5499512314608026e-5,3.943929979142778e-8,0.0014240046262760098,-4.543644346492547e-5,3.9390987574810174e-8,0.0014241448474782898,-4.543650107068099e-5,3.938780661528568e-8,0.0014243055769598875,-4.55014025622324e-5,3.943030334635427e-8,0.0014245153230789524,-4.562160361393435e-5,3.951093333991738e-8,0.0014247992679477627,-4.5774516750711624e-5,3.9613026810845106e-8,0.0014251725776000539,-4.592471607435623e-5,3.97111673534239e-8,0.0014256324150758487,-4.6028499832087334e-5,3.9774539919194244e-8,0.0014261519278773282,-4.604466942670059e-5,3.97745103455597e-8,0.0014266816106519023,-4.595018557846401e-5,3.9695557904295956e-8,0.0014271621257017225,-4.575388705227969e-5,3.9544859389287236e-8,0.0014275457311608392,-4.549845458283125e-5,3.935358890200528e-8,0.001427815306107102,-4.524605002091276e-5,3.916657774531871e-8,0.0014279894860666584,-4.505443172790813e-5,3.9025101307670685e-8,0.001428111845943068,-4.4957151971777735e-5,3.895259664595886e-8,0.0014282324457039898,-4.4956997998443266e-5,3.8950037799349965e-8,0.0014283921152246375,-4.5031813061035744e-5,3.9000405529012745e-8,0.001428614503799861,-4.514594302658012e-5,3.907728510090153e-8,0.0014289052039444517,-4.526123102336767e-5,3.915303573565249e-8,0.0014292549887714064,-4.5344780633131716e-5,3.9204408290150735e-8,0.0014296445351593818,-4.537328317671618e-5,3.921546485399938e-8,0.0014300491927835234,-4.533479827914965e-5,3.917854634066426e-8,0.0014304433224275918,-4.522881772940035e-5,3.909403114722347e-8,0.001430804033341362,-4.5065037434135e-5,3.896929881664266e-8,0.001431114134170649,-4.486114602985143e-5,3.8817147411994384e-8,0.001431364173594574,-4.463995090524377e-5,3.8653843304944497e-8,0.001431553477665542,-4.4426110315797016e-5,3.8496905092415785e-8,0.0014316900992935974,-4.4242818950062476e-5,3.8362786478080485e-8,0.0014317897941557708,-4.410886020323244e-5,3.8264727869013804e-8,0.0014318743099349634,-4.403620954390451e-5,3.8210949087253464e-8,0.0014319691565770345,-4.402814004867514e-5,3.8203232744223565e-8,0.0014321008288139233,-4.407781633250867e-5,3.823596615193787e-8,0.0014322933132242908,-4.4167493057523215e-5,3.829575167824442e-8,0.0014325635783059797,-4.426874231918825e-5,3.8361828243839776e-8,0.0014329159984174987,-4.4344806916418694e-5,3.8407962919808685e-8,0.0014333367610415697,-4.435666435111393e-5,3.840682171688473e-8,0.0014337910720800594,-4.4273697098380086e-5,3.833742616530986e-8,0.0014342273731959762,-4.408716016137151e-5,3.819450047412489e-8,0.0014345914434781843,-4.382020957560829e-5,3.79954130449742e-8,0.0014348470970175808,-4.352582193219588e-5,3.7778581483576264e-8,0.0014349925697684392,-4.326902649537983e-5,3.759070188014273e-8,0.0014350613489107376,-4.3101343714786775e-5,3.746837044387351e-8,0.0014351064354383872,-4.304237393549526e-5,3.74248666578265e-8,0.0014351786308693037,-4.3077895175319485e-5,3.744893988723652e-8,0.001435311120145527,-4.3171511316731736e-5,3.751349253798805e-8,0.001435514983638263,-4.3280124103506245e-5,3.7587031889058094e-8,0.0014357827442222175,-4.33657644870084e-5,3.764234602726513e-8,0.0014360950176135047,-4.340168328161423e-5,3.766080981694061e-8,0.0014364268982985113,-4.3373918763642415e-5,3.7633249662091946e-8,0.0014367527843651797,-4.328039694830718e-5,3.755898187846603e-8,0.0014370497401466067,-4.312909776010434e-5,3.7444270646673757e-8,0.0014372999251545048,-4.29358844997081e-5,3.730070931627148e-8,0.0014374923724849156,-4.2722063680720855e-5,3.71435536648068e-8,0.0014376241618117747,-4.251167408721932e-5,3.6989920136254e-8,0.0014377009262072043,-4.2328490779715396e-5,3.6856738666764285e-8,0.0014377364788064743,-4.2192837572660376e-5,3.675846863045126e-8,0.0014377513692969844,-4.2118585485798534e-5,3.6704856042820815e-8,0.001437770451447845,-4.2110786884528316e-5,3.669912913273134e-8,0.0014378196981251372,-4.21642244916051e-5,3.6736925449717485e-8,0.0014379224790505686,-4.226308798281828e-5,3.680616377621557e-8,0.0014380955334853483,-4.238200534606743e-5,3.6888012155040675e-8,0.0014383449114242503,-4.2488670304332985e-5,3.6959034935254815e-8,0.0014386623333420816,-4.254848883471872e-5,3.69946922542799e-8,0.001439023053413255,-4.253172746547254e-5,3.6974437223496824e-8,0.00143938722951177,-4.242284653717159e-5,3.688818009449981e-8,0.001439707137154768,-4.222971419566938e-5,3.674257304428873e-8,0.0014399409659193428,-4.198781671588203e-5,3.656376280190634e-8,0.001440069459918548,-4.1753765044836575e-5,3.6392606119182155e-8,0.001440106597622063,-4.158679104094984e-5,3.6271381464065536e-8,0.0014400959148385573,-4.1525832600832144e-5,3.622739349459521e-8,0.0014400927711180566,-4.15752438414865e-5,3.626283531393904e-8,0.0014401429180055368,-4.170699406909172e-5,3.635659541946491e-8,0.0014402691460889587,-4.1875615871244114e-5,3.6475292110604114e-8,0.0014404700687453444,-4.20353985030447e-5,3.658586574851633e-8,0.0014407270427852904,-4.215187194132588e-5,3.666388371140973e-8,0.001441013130719309,-4.220595818615349e-5,3.6696359973947585e-8,0.0014413003263376396,-4.219308157288958e-5,3.6680826446642095e-8,0.001441564033217401,-4.212012924590863e-5,3.662287749152233e-8,0.0014417853809006085,-4.2002181831792545e-5,3.653368462176073e-8,0.0014419523959797523,-4.185969337729201e-5,3.642799751790315e-8,0.0014420606999227586,-4.171600435622608e-5,3.632248964966348e-8,0.0014421139198980406,-4.159487387718513e-5,3.623411674528073e-8,0.0014421237028206181,-4.151777055500738e-5,3.6178218018737015e-8,0.0014421089934266833,-4.150085444996026e-5,3.6166287820635e-8,0.0014420941576250958,-4.155198804294638e-5,3.620370937664565e-8,0.0014421057972856064,-4.166845338362705e-5,3.628802792965738e-8,0.0014421685219863218,-4.183607922736202e-5,3.6408352528175015e-8,0.0014423002757643633,-4.203032172674412e-5,3.65463031098458e-8,0.0014425080608542666,-4.22195472333642e-5,3.667862994977846e-8,0.001442784991572208,-4.237031728117714e-5,3.6781252110025435e-8,0.0014431095090614871,-4.245409762385614e-5,3.6834180674033206e-8,0.0014434474962299161,-4.245454297942441e-5,3.682664986919906e-8,0.0014437579597159325,-4.237398291446551e-5,3.676149381934002e-8,0.0014440024218877274,-4.2236870836770005e-5,3.665727124065034e-8,0.0014441566692500326,-4.208735480065546e-5,3.654623465415403e-8,0.0014442210777839057,-4.197894413823149e-5,3.646678154580181e-8,0.0014442238639085503,-4.1957657259825583e-5,3.6451395741224957e-8,0.001444213177633174,-4.204514955028633e-5,3.6514704020701185e-8,0.0014442400148779796,-4.2230738483301597e-5,3.664799820937176e-8,0.001444340327612597,-4.2477002171248194e-5,3.6823531208232587E-08,0.0014445252831045401,-4.273521305190709e-5,3.700583739358809e-8,0.001444782633063003,-4.296167146369278e-5,3.716358146341754e-8,0.0014450854085491184,-4.312785702347721e-5,3.727679374827056e-8,0.001445401951167018,-4.322288651739154e-5,3.733842340885731e-8,0.001445703365975638,-4.3250813436262515e-5,3.735212787958807e-8,0.0014459674945798882,-4.32260760357198e-5,3.73288004390637e-8,0.001446180300220262,-4.316923443732345e-5,3.728344873718978e-8,0.0014463359582635035,-4.310370309668452e-5,3.723292189167686e-8,0.0014464365687389773,-4.305328850624032e-5,3.719426687269874e-8,0.0014464918465855834,-4.304002473972689e-5,3.718325365119318e-8,0.0014465186728166825,-4.308181819575483e-5,3.721266618215463e-8,0.0014465400355141305,-4.3189687170519945e-5,3.7290221487352145e-8,0.0014465827531187007,-4.336489798552785e-5,3.741640893771544e-8,0.0014466736056468219,-4.3596841039752464e-5,3.758294229173246e-8,0.0014468340922974643,-4.386279199894946e-5,3.77726972029659e-8,0.0014470748301542683,-4.413057535440872e-5,3.7961848327240886e-8,0.0014473912922101449,-4.4364408720834884e-5,3.812432810558878e-8,0.0014477626657607462,-4.453297875666711e-5,3.8237820661230854e-8,0.001448154854433801,-4.461771816489685e-5,3.828974037644961e-8,0.0014485274030723117,-4.461890202134063e-5,3.8281447589952853e-8,0.0014488429638407447,-4.455758179245559e-5,3.822931479912126e-8,0.001449077126957026,-4.447225398864734e-5,3.816195570741389e-8,0.001449226023125882,-4.441032020245069e-5,3.8113794316332475e-8,0.0014493090755652274,-4.441579020404974e-5,3.8116125833806295e-8,0.001449364947092221,-4.451633994090186e-5,3.818794133287042e-8,0.0014494407057380814,-4.471426477041007e-5,3.832972073058778e-8,0.0014495774144823556,-4.498555350055323e-5,3.8523117853081915e-8,0.0014497978450341655,-4.5288121537755064e-5,3.873716648698755e-8,0.001450101396289851,-4.557563857325436e-5,3.89383696430426e-8,0.0014504674700356046,-4.581077178440381e-5,3.9100206897818924e-8,0.001450864329811925,-4.59729347684755e-5,3.920855010190983e-8,0.001451258767715561,-4.605934108050844e-5,3.92621859121156e-8,0.001451623153623208,-4.608136827590191e-5,3.926997648012008e-8,0.0014519388956488832,-4.605924560935e-5,3.9246910208725725e-8,0.0014521971379447417,-4.6017229535460886e-5,3.9210629613232204e-8,0.0014523980389310705,-4.5980057149587095e-5,3.917896492879653e-8,0.0014525496603379358,-4.597051953376308e-5,3.9168276920308264e-8,0.0014526669574361673,-4.600759430739576e-5,3.9192135619664394e-8,0.0014527708281076104,-4.610453020282936e-5,3.9259884840940946e-8,0.0014528867245701964,-4.626654176388048e-5,3.9374895639106777e-8,0.0014530421048613528,-4.648831416903428e-5,3.9532731387203335e-8,0.0014532621468013511,-4.6752190201937326e-5,3.971990995005398e-8,0.0014535637916342824,-4.7028515568426274e-5,3.9914326393312656e-8,0.0014539493947660874,-4.727971460801391e-5,4.008841173852169e-8,0.0014544025921314587,-4.7468597955633217e-5,4.021531201044032e-8,0.0014548892922685616,-4.7569142347220584e-5,4.027675511472258e-8,0.0014553650558184153,-4.7575810436338764e-5,4.026972977663235e-8,0.0014557870851216873,-4.750717265528638e-5,4.020889782847651e-8,0.0014561265502366723,-4.7401772022354576e-5,4.012327246018735e-8,0.0014563767220609832,-4.730757137609055e-5,4.004821937536077e-8,0.00145655435776092,-4.726880621379515e-5,4.001569186801683e-8,0.001456694463586125,-4.73144514864003e-5,4.004587627083997e-8,0.0014568404770532691,-4.7451327393656046e-5,4.0142460997834714e-8,0.0014570327641523222,-4.7663290283813975e-5,4.029246947753112e-8,0.001457298519145466,-4.7916441311999795e-5,4.047043105356473e-8,0.0014576457793189451,-4.816871716330359e-5,4.064555627563837e-8,0.0014580630692166065,-4.8380870254886153e-5,4.07896946312839e-8,0.0014585242916217804,-4.85254475628263e-5,4.0883660976549706e-8,0.0014589966823086494,-4.859135992178545e-5,4.092028278391199e-8,0.0014594488895383127,-4.8583561201735886e-5,4.0903922552317477e-8,0.0014598568660654338,-4.851917902858856e-5,4.084752107398645e-8,0.001460206718017994,-4.8422238333548e-5,4.0768741953613706e-8,0.0014604949812930131,-4.831876578154884e-5,4.068648768877478e-8,0.0014607274013576004,-4.823314160900414e-5,4.0618350180221016e-8,0.0014609172150457537,-4.8185712318530414e-5,4.057893429465176e-8,0.001461083502746424,-4.8191179258434105E-05,4.0578670798416085e-8,0.001461249671904525,-4.82571706133708e-5,4.0622715345642995e-8,0.001461441693727446,-4.838261929000545e-5,4.07097296081658e-8,0.0014616854233344243,-4.8556014057686534e-5,4.083066061163576e-8,0.0014620023267894015,-4.8754249269082786e-5,4.0968058990523775e-8,0.0014624034953483796,-4.894358809285292e-5,4.109698020827211e-8,0.0014628831941533296,-4.908464338861261e-5,4.118875936509696e-8,0.0014634150433660768,-4.914226299762998e-5,4.121824393937142e-8,0.0014639548020531532,-4.9098224861191336e-5,4.117296927439143e-8,0.001464451637979818,-4.8961091183785824e-5,4.106020733296679e-8,0.0014648646915946838,-4.8766820370606e-5,4.090722801199529e-8,0.0014651772883869003,-4.8568009313809076e-5,4.075319349404685e-8,0.0014654017214941388,-4.8416426777365386e-5,4.063612262558724e-8,0.0014655731149098806,-4.834715390556542e-5,4.05811408271586e-8,0.0014657366598345033,-4.8370472978448067e-5,4.0594648027202523e-8,0.0014659342958094506,-4.847253437725393e-5,4.066516335293664e-8,0.0014661950114605521,-4.862215666828612e-5,4.076876008564538e-8,0.0014665301910791108,-4.8780249807602064e-5,4.0876316291687736e-8,0.0014669336173157724,-4.8909088442915184e-5,4.096041061837196e-8,0.0014673849869394323,-4.89797010783182e-5,4.10005813588427e-8,0.0014678556191269404,-4.8976435201010984e-5,4.0986359543432826e-8,0.0014683149714162325,-4.889830880085964e-5,4.091793502517985e-8,0.0014687365529222206,-4.875735290426732e-5,4.080472681276175e-8,0.0014691021142846357,-4.857481423921316e-5,4.0662543710692137e-8,0.0014694036337962362,-4.8376450354823765e-5,4.0510213167388694e-8,0.0014696432745798936,-4.8188046898087444e-5,4.0366429937764576e-8,0.0014698319277800106,-4.803190530328035e-5,4.0247286006004545e-8,0.0014699871102827962,-4.7924526915939426e-5,4.0164595796703556e-8,0.0014701307848855516,-4.787522027490336e-5,4.012482396092963e-8,0.0014702872622128149,-4.788517195205734e-5,4.012834089633514e-8,0.0014704809975428358,-4.794666693736669e-5,4.0168855709075365e-8,0.0014707338344027386,-4.804244009905834e-5,4.0233062784634995e-8,0.0014710611213139102,-4.814566107532364e-5,4.030084085232558e-8,0.0014714665413726273,-4.822181569590968e-5,4.034683134470572e-8,0.001471936732554558,-4.823419676772928e-5,4.0344537351810816e-8,0.0014724385787785134,-4.815393883152968e-5,4.02735824939934e-8,0.0014729232921461939,-4.7972708991935915e-5,4.012881131104992e-8,0.001473339733380658,-4.771194684085152e-5,3.99268721108642e-8,0.0014736534482333627,-4.7420811459529796e-5,3.97045678271898e-8,0.0014738614631978186,-4.716016424666695e-5,3.9506949528936975e-8,0.0014739933492919856,-4.697982067329245e-5,3.937043540172194e-8,0.0014740979744279096,-4.690167112469379e-5,3.931032980142313e-8,0.0014742246024554207,-4.691644256644111e-5,3.9318604552850936e-8,0.0014744082651071803,-4.69922299640802e-5,3.9370563974310175e-8,0.0014746637140043946,-4.708756851895923e-5,3.943489870131204e-8,0.0014749866046875014,-4.7162958123676244e-5,3.948243157993727e-8,0.001475358543065385,-4.71883294842356e-5,3.949159654624633e-8,0.001475753210166725,-4.714652817698946e-5,3.945074236392933e-8,0.001476142078096254,-4.7033888847950614e-5,3.9358189832320374e-8,0.0014764992123982724,-4.685887934392134e-5,3.9220928510260014e-8,0.0014768049713061416,-4.663938791887539e-5,3.905248086942313e-8,0.001477048391317066,-4.639911917690382e-5,3.8870289051615004e-8,0.0014772281442441146,-4.61636413222774e-5,3.86929540003015e-8,0.0014773521218631534,-4.595660324837137e-5,3.8537604231317574e-8,0.0014774358574483667,-4.579659133441228e-5,3.841765492707048e-8,0.0014775001956065402,-4.569496823083304e-5,3.8341186816552856e-8,0.0014775686820781154,-4.565470129067433e-5,3.830999686167372e-8,0.0014776649243166784,-4.566994456347111e-5,3.8319233095593914e-8,0.0014778099359220231,-4.5726192560117234e-5,3.83575570353092e-8,0.0014780193244124584,-4.580097117160524e-5,3.840782891730723e-8,0.0014783000450939625,-4.5865328797617776e-5,3.8448445201550915e-8,0.0014786467079729625,-4.588696439857752e-5,3.845582251437362e-8,0.0014790384080720245,-4.583611242343526e-5,3.840873944588172e-8,0.0014794383527260398,-4.56945594107753e-5,3.82947864626867e-8,0.001479799398450005,-4.5465999161076066e-5,3.811769435150879e-8,0.0014800774121277783,-4.518250806512075e-5,3.790185132520664e-8,0.0014802492942168032,-4.489995809258601e-5,3.768879845012064e-8,0.0014803258879004637,-4.467961171000656e-5,3.7523621216932424e-8,0.0014803496588216847,-4.456364916372832e-5,3.7436882425543227E-08,0.0014803767789849922,-4.455914717389837e-5,3.743285124826617e-8,0.00148045471663273,-4.463944669785187e-5,3.749072374826842e-8,0.0014806079903739232,-4.4759080332929866e-5,3.757599995374444e-8,0.0014808363575325631,-4.4871298219932226e-5,3.7653765328709984e-8,0.0014811213748755097,-4.49400791113898e-5,3.7697698950566665e-8,0.0014814353063795221,-4.494494148911797e-5,3.769349125262831e-8,0.0014817486607833878,-4.488064489949951e-5,3.7638296039217246e-8,0.0014820352591590176,-4.475444899156155e-5,3.75383511170801e-8,0.001482275222988769,-4.458271568201399e-5,3.740624045556785e-8,0.0014824566343186552,-4.438752806725547e-5,3.7258364186440963e-8,0.0014825762933425046,-4.41933973514123e-5,3.711263205430016e-8,0.0014826396781233982,-4.402407385189993e-5,3.698628868785702e-8,0.0014826601038704105,-4.3899537486014864e-5,3.689381745950238e-8,0.0014826570290835308,-4.3833355408042506e-5,3.684500249109746e-8,0.0014826535665252642,-4.383076384824262e-5,3.684342893133268e-8,0.0014826734964349505,-4.388776027353641e-5,3.688571137475423e-8,0.0014827381250709867,-4.3991250197185465e-5,3.696157870415823e-8,0.0014828632277558774,-4.4120225732295084e-5,3.7054853705114773e-8,0.0014830562790585913,-4.424796254416029e-5,3.7145299091021524e-8,0.001483314114902658,-4.4345226853738956e-5,3.721123064884487e-8,0.0014836212427355765,-4.438471351759688e-5,3.723292906691934e-8,0.0014839495880320053,-4.434704884177869e-5,3.719700534277648e-8,0.0014842612053440878,-4.4227969750309367e-5,3.7101437221589655e-8,0.001484515578411819,-4.4044706083483356e-5,3.6959930289161086e-8,0.0014846818321571568,-4.383767436946015e-5,3.6802887599284104e-8,0.001484752665298912,-4.366282494601175e-5,3.6671649941767425e-8,0.0014847523079773632,-4.357345179251354e-5,3.6605110282143873e-8,0.0014847306685902028,-4.3598461730291396e-5,3.662379044416523e-8,0.0014847439416985908,-4.372996532663204e-5,3.672084767057359e-8,0.001484832455576805,-4.392834159757466e-5,3.6866053246575335e-8,0.0014850084524969315,-4.414052139172515e-5,3.701958292803764e-8,0.0014852579225742377,-4.4319394962506785e-5,3.7146574635816525e-8,0.00148555111690797,-4.443521318072178e-5,3.7225576915926685e-8,0.0014858540251273446,-4.447773434048518e-5,3.724992857383376e-8,0.0014861364543161625,-4.445270363925244e-5,3.722482225495067e-8,0.0014863760913723298,-4.437656318307988e-5,3.716309655277369e-8,0.0014865597532513933,-4.427164451826376e-5,3.708154822513582e-8,0.0014866832683675857,-4.4162460074345484e-5,3.699824191460888e-8,0.0014867508559287582,-4.407282323694022e-5,3.693054466535894e-8,0.0014867742340000237,-4.402339782503651e-5,3.68934712540527e-8,0.0014867713714220555,-4.402943420367354e-5,3.689807422058526e-8,0.0014867646564762282,-4.409867285281513e-5,3.6949844467746125e-8,0.0014867782740302412,-4.422973621937711e-5,3.7047415402730984e-8,0.0014868348754921309,-4.441152508594255e-5,3.718204520461165e-8,0.0014869519465962582,-4.462400182095811e-5,3.733824048865543e-8,0.0014871384186216602,-4.484053098879151e-5,3.749566462993671e-8,0.0014873921480441546,-4.5031733174503954e-5,3.7632239067973675e-8,0.0014876988747097991,-4.517047600970056e-5,3.772804673560034e-8,0.0014880330851069787,-4.5237407062414714e-5,3.776948065811721e-8,0.0014883611336936045,-4.522638867386191e-5,3.7753106366925946e-8,0.0014886470419661934,-4.5148829423299135e-5,3.768853679617695e-8,0.0014888610099375744,-4.503511107630251e-5,3.75991142701746e-8,0.0014889893734640611,-4.493078727593386e-5,3.7518833390943256e-8,0.0014890426802024238,-4.4885939658503095e-5,3.74844077895564e-8,0.0014890568559620368,-4.493900359979849e-5,3.752344755667185e-8,0.0014890836459080803,-4.5101175184416406e-5,3.7643181361237684e-8,0.001489172305795643,-4.535029512050693e-5,3.7826206234394064e-8,0.0014893513815948645,-4.5639131365739326e-5,3.803685162170241e-8,0.0014896203853677792,-4.591379586939746e-5,3.8234980089391865e-8,0.0014899543663838013,-4.613185728141613e-5,3.8389462478218916e-8,0.0014903162297077394,-4.6271946349084726e-5,3.848520377485263e-8,0.0014906691385107214,-4.6333741604474694e-5,3.852289537208366e-8,0.0014909844428688587,-4.6332267253878814e-5,3.851449641139075e-8,0.0014912446994979787,-4.629096295265064e-5,3.8477884251820716e-8,0.001491443475023993,-4.623604922293549e-5,3.843262815520471e-8,0.0014915838036451312,-4.61927449105687e-5,3.8397284898482245e-8,0.0014916764513131834,-4.618284796155863e-5,3.838776175182558e-8,0.0014917383357409837,-4.622298504810592e-5,3.8416126988273096e-8,0.0014917909428913139,-4.632303584535767e-5,3.848944739748476e-8,0.0014918583550758398,-4.648458412369112e-5,3.860856466449232e-8,0.0014919645095770773,-4.669969166698596e-5,3.8767106301308565e-8,0.001492129594339425,-4.695065290037247e-5,3.895130296913219e-8,0.0014923659795207224,-4.721144655663761e-5,3.914118664687933e-8,0.0014926745732702724,-4.745133715731877e-5,3.931347861780057e-8,0.0014930428020581202,-4.764050267803905e-5,3.944599080200351e-8,0.0014934453287540244,-4.77567381989998e-5,3.952272977792478e-8,0.0014938479976421455,-4.7791615726440825e-5,3.9538419803086526e-8,0.0014942145959709434,-4.775437268653611e-5,3.950114664854367e-8,0.0014945152548361581,-4.7672147717775885e-5,3.943216537025932e-8,0.0014947347496844735,-4.758571958330954e-5,3.936237614997539e-8,0.0014948784839529095,-4.754071729882442e-5,3.9325587712150906e-8,0.001494973688060228,-4.7575580700830986e-5,3.934960606065222e-8,0.001495063893699758,-4.7709339668887554e-5,3.9447410821275483e-8,0.0014951967819727924,-4.793386974666786e-5,3.961177012530231e-8,0.0014954089548056488,-4.82150113356529e-5,3.9816407071216556e-8,0.001495713972368483,-4.8503439552528306e-5,4.0024278257678855e-8,0.0014960992299929698,-4.875088216767253e-5,4.0199671339311314e-8,0.0014965325627533485,-4.892426755697233e-5,4.031863181757441e-8,0.0014969742965597005,-4.9012244353112056e-5,4.037361715514292e-8,0.0014973887060458133,-4.90234527916337e-5,4.037196030438772e-8,0.0014977509975768778,-4.897987925534544e-5,4.033069659995429e-8,0.0014980493699429142,-4.8909370842569586e-5,4.0270872530960104e-8,0.0014982838272042372,-4.8839785143966184e-5,4.0213214367086265e-8,0.0014984636893112296,-4.879533379597899e-5,4.017552829673121e-8,0.0014986050564438516,-4.879459745805125e-5,4.0171351190536136e-8,0.0014987286878216618,-4.884940264365551e-5,4.020917276631506e-8,0.0014988581486848397,-4.8963892845157507e-5,4.029171690125393e-8,0.0014990177337836207,-4.9133541633318104e-5,4.0415144161886566e-8,0.0014992296650089489,-4.934439725353427e-5,4.056846910653133e-8,0.0014995103608385159,-4.957328780427341e-5,4.073379081419653e-8,0.0014998661313054954,-4.978992849651283e-5,4.0888033317214166E-08,0.001500289438846751,-4.996169395570395e-5,4.100670227701081e-8,0.0015007575640223773,-5.00609271009138e-5,4.1069476582698656e-8,0.0015012354183340914,-5.0073132062903215e-5,4.106633523245191e-8,0.001501682931435136,-5.000313393611321e-5,4.10020124318666e-8,0.0015020653958463235,-4.9876318236111225e-5,4.089664152349184e-8,0.001502363510762478,-4.973362668651773e-5,4.078166708635209e-8,0.0015025796036362987,-4.9621359434477365e-5,4.06919240015438e-8,0.001502737788613337,-4.957881774687852e-5,4.0656280257301776e-8,0.0015028778851812186,-4.9627518948032364e-5,4.0689710099869005e-8,0.001503044775055048,-4.9765138003926926e-5,4.078912007859041e-8,0.001503276131990282,-4.9966042084288354e-5,4.093418214974257e-8,0.0015035921340975534,-5.0188522911167886e-5,4.109307745813918e-8,0.0015039904959644906,-5.038664086853307e-5,4.12314822617478e-8,0.0015044484479765602,-5.052272450607022e-5,4.1321828260849926e-8,0.0015049305867960681,-5.057627006151882e-5,4.1349724488542334e-8,0.0015053992671028003,-5.0546698588028124e-5,4.1315734395285215e-8,0.001505823682333701,-5.0450202162379264e-5,4.123276774522326e-8,0.0015061851264551991,-5.03131376162049e-5,4.1120991139124105e-8,0.00150647810650972,-5.0164985415371416e-5,4.100254562995308e-8,0.0015067085911635734,-5.003289045076868e-5,4.0897557578942296e-8,0.0015068910568689683,-4.9938339881018866e-5,4.0821788084939146e-8,0.0015070455081733843,-4.989557017837055e-5,4.078553560863914e-8,0.0015071949768719031,-4.991095762554463e-5,4.079319265895584e-8,0.0015073634330199596,-4.998270255847455e-5,4.0842964940455486e-8,0.001507573648758257,-5.0100484272582855e-5,4.092657881678172e-8,0.001507844474226869,-5.024531275080717e-5,4.1029213145852093E-08,0.0015081872475477102,-5.039029477878423e-5,4.113020982278904e-8,0.001508601639381369,-5.0503348351200574e-5,4.1205288990591655e-8,0.0015090721800536042,-5.0552825964399286e-5,4.123090271547341e-8,0.0015095677542445187,-5.051598845732162e-5,4.119061726808571e-8,0.0015100464398749296,-5.0388137396494456e-5,4.1081869583940654e-8,0.0015104661524490966,-5.0188150732697904e-5,4.091992886992478e-8,0.0015107980562968522,-4.995626598255443e-5,4.073597315450068e-8,0.0015110369884425087,-4.974323096834382e-5,4.056865503257804e-8,0.0015112037636235288,-4.9594689096187027e-5,4.0452143784550536e-8,0.0015113382538688342,-4.9537390122333774e-5,4.040571885063075e-8,0.001511486651518908,-4.9572491390367476e-5,4.0428949376900265e-8,0.0015116882343063284,-4.9677288522526345e-5,4.0503412055625985e-8,0.001511965832908493,-4.981328246977489e-5,4.0599203239587485e-8,0.0015123218678560742,-4.993712667865752e-5,4.0683458185044255e-8,0.0015127398774388951,-5.001120491259384e-5,4.072833176366586e-8,0.0015131902459503254,-5.0011430442294444e-5,4.0716651632460574e-8,0.0015136381639806527,-4.9930908725903795e-5,4.064433406034829e-8,0.0015140516272895985,-4.977923819466192e-5,4.051953249837382e-8,0.0015144075622012096,-4.9578319631606846e-5,4.035928102066704e-8,0.0015146949683276282,-4.9356355695184494e-5,4.0184938821169755e-8,0.0015149150502128804,-4.9141887980333486e-5,4.0017799643976816e-8,0.0015150791746275875,-4.895917584109024e-5,3.9875772118617474e-8,0.0015152057997848073,-4.8825388632539786e-5,3.977139653273003e-8,0.0015153173317295856,-4.874940504486354e-5,3.971098695425316e-8,0.0015154374095433952,-4.8731643689852686e-5,3.9694467703771245e-8,0.0015155886318726306,-4.876432642304724e-5,3.971551230211538e-8,0.0015157903988936615,-4.8831866635134174e-5,3.976183295261236e-8,0.0015160564336704537,-4.891150797550089e-5,3.9815759747989534e-8,0.001516391691608481,-4.8974788479225625e-5,3.985552106330658e-8,0.0015167888924818176,-4.899079602098747e-5,3.985786664037715e-8,0.0015172258993118245,-4.893217400965164e-5,3.9802659015735863e-8,0.0015176663030841539,-4.878381729040918e-5,3.967934665594565e-8,0.0015180658418397924,-4.855185669703154e-5,3.9493549812086156e-8,0.0015183852145058741,-4.8267882631723335e-5,3.927002879151628e-8,0.001518605245428821,-4.7983227159816685E-05,3.904816418536927e-8,0.0015187364109845078,-4.7752853667001454e-5,3.8869607112691156e-8,0.0015188162107197098,-4.76157007253304e-5,3.876330623471329e-8,0.0015188951081814535,-4.7581646967552716e-5,3.87356971621642e-8,0.0015190187423242043,-4.763095682004308e-5,3.877055536279872e-8,0.0015192148843438057,-4.7724206359166875e-5,3.883693164021174e-8,0.0015194889111096335,-4.7816122036906335e-5,3.890001525702813e-8,0.0015198265573875282,-4.78675190041975e-5,3.893034461914193e-8,0.0015202006147450764,-4.785267690604367e-5,3.8909281403952436e-8,0.0015205786058022936,-4.776206764521024e-5,3.883074987792664e-8,0.001520929655959892,-4.7601511265561416e-5,3.8700210594517606e-8,0.0015212297485279174,-4.73889457227636e-5,3.853192522081979e-8,0.001521464985636384,-4.714978616986874e-5,3.834534142739313e-8,0.001521632714070136,-4.691181862109943e-5,3.8161308626593714e-8,0.0015217407259916819,-4.6700544473304215e-5,3.7998737945680615e-8,0.001521805050737679,-4.653561112622005e-5,3.7872078917049705e-8,0.0015218469609350476,-4.6428620942574455e-5,3.77897496515343e-8,0.0015218898209953303,-4.638232433864213e-5,3.7753505077697286e-8,0.0015219562588472324,-4.63908829784902e-5,3.775855431522331e-8,0.0015220657852472567,-4.644073196168358e-5,3.779415592915643e-8,0.0015222326849345393,-4.6511768353575117e-5,3.78445580321092e-8,0.0015224639302797234,-4.6578917633677744e-5,3.789033821231449e-8,0.0015227569400496383,-4.6614434070743716e-5,3.791035015751786e-8,0.0015230973823843132,-4.659163295010869e-5,3.788469386599491e-8,0.0015234580899453059,-4.6490764418833046e-5,3.779915028577375e-8,0.0015238011301948635,-4.630679101973296e-5,3.765088713532935e-8,0.0015240852672769784,-4.6056717425461094e-5,3.7453737167092474e-8,0.001524279176362041,-4.578158370729293e-5,3.723946842777562e-8,0.0015243761207970313,-4.5537893273890615e-5,3.7051147789336374e-8,0.0015244012465784203,-4.537833811089991e-5,3.692846975976653e-8,0.0015244043069810233,-4.5330485030194646e-5,3.689159982476225e-8,0.001524440051851727,-4.5386093677926136e-5,3.693319329946158e-8,0.0015245475921702796,-4.550706901455292e-5,3.70231970685862e-8,0.001524739631177373,-4.564256280847005e-5,3.712221109997426e-8,0.0015250039821238194,-4.574645320979391e-5,3.719506196713576e-8,0.001525312469978232,-4.57880724817201e-5,3.7219009823727845e-8,0.0015256311465300198,-4.575529177708597e-5,3.71858758629502e-8,0.0015259283156329572,-4.5652460184988825e-5,3.710009588757813e-8,0.001526179490549331,-4.549604863952453e-5,3.697504333756095e-8,0.0015263698298762106,-4.5309863016883735e-5,3.682918922629797e-8,0.0015264948690534665,-4.5120549024834013e-5,3.668269874859717e-8,0.0015265600057452486,-4.495356643058214e-5,3.65545436819091e-8,0.0015265789603062382,-4.4829825029204026e-5,3.646015826369734e-8,0.0015265714591917814,-4.476317621887072e-5,3.640967597256171e-8,0.001526560393019653,-4.47588814097071e-5,3.6406785222506725e-8,0.0015265687425595057,-4.481319012855167e-5,3.6448328955322366e-8,0.001526616673386339,-4.491402171639455e-5,3.6524727155707175e-8,0.001526719088838322,-4.5042478706087005e-5,3.662110821247449e-8,0.001526883671120863,-4.517492388060347e-5,3.671899335520608e-8,0.001527109357997393,-4.528556689050531e-5,3.679846629243785e-8,0.0015273852648541443,-4.5349660451110904e-5,3.684080865883039e-8,0.0015276902649918051,-4.5347572784252786e-5,3.683168213824624e-8,0.0015279940023550515,-4.5269982630066084e-5,3.676496818810432e-8,0.001528260741500139,-4.5123660491407865e-5,3.664687940483986e-8,0.0015284573649040436,-4.493568923535388e-5,3.649883068748661e-8,0.0015285651819203082,-4.475224028990135e-5,3.6356268024786054e-8,0.001528591522529057,-4.462799322930828e-5,3.6260564495138095e-8,0.0015285733068809862,-4.4606708170989893e-5,3.6244339332635135e-8,0.0015285663015500417,-4.4701580903939586e-5,3.631667920617675e-8,0.001528623057978843,-4.4888075568297965e-5,3.645788182105769e-8,0.0015287721301055885,-4.511488889181742e-5,3.662804240559266e-8,0.0015290104785997134,-4.532567197125326e-5,3.678385405657058e-8,0.0015293104382067145,-4.547810886081325e-5,3.689331286542308e-8,0.0015296334898081117,-4.555238252513215e-5,3.6942127930790746e-8,0.0015299425822774475,-4.5549875508693376e-5,3.6932458321921016e-8,0.0015302094618059117,-4.5487012585997464e-5,3.687784149123152e-8,0.0015304173593234294,-4.538838777224406e-5,3.6797650641900755e-8,0.0015305608012845585,-4.5281191160702335e-5,3.6712741731269536e-8,0.0015306441945146152,-4.5191250244956506e-5,3.664253537729438e-8,0.0015306800306723414,-4.514019365633332e-5,3.660306514411148e-8,0.0015306868440561443,-4.5143317412885504e-5,3.660554118454364e-8,0.0015306868688130097,-4.5208046874071456e-5,3.665525950628058e-8,0.001530703372269813,-4.533304361844633e-5,3.675088279926432e-8,0.0015307577071024677,-4.550816475509205e-5,3.6884311766138235e-8,0.0015308663545292767,-4.5715530714938635e-5,3.7041438425744794e-8,0.001531038403461839,-4.5931705831679506e-5,3.7203859056823594e-8,0.0015312738096312358,-4.613076201647923e-5,3.7351380006003594e-8,0.001531562647587085,-4.628797631784266e-5,3.7465058196804165e-8,0.001531885540287841,-4.638388948223532e-5,3.753045447184219e-8,0.0015322154350115606,-4.6408424099129384e-5,3.75407624833672e-8,0.0015325210181051422,-4.636473481435046e-5,3.749952617090675e-8,0.0015327722562987192,-4.62720299113284e-5,3.742243109933671e-8,0.0015329482178092664,-4.616568661040811e-5,3.7337038635539955e-8,0.0015330459667584296,-4.60922941785365e-5,3.7278814888025735e-8,0.001533087023241133,-4.609795126881395e-5,3.728225619249699e-8,0.001533115983708838,-4.621153374983078e-5,3.736837190134323e-8,0.0015331876400693626,-4.643018459294151e-5,3.753391652633899e-8,0.0015333461088477486,-4.6716886718747485e-5,3.7749779963297116e-8,0.001533607077938741,-4.701413330082583e-5,3.797158062251958e-8,0.0015339536898771556,-4.7266463413301e-5,3.8156979046495933e-8,0.0015343469210881689,-4.7438804933053115e-5,3.827972461061156e-8,0.0015347420400233514,-4.7522609577066365e-5,3.833423468532848e-8,0.0015351018922789568,-4.75311913550837e-5,3.833175719045527e-8,0.0015354032268769953,-4.7490536847499134e-5,3.8293014468682244e-8,0.0015356372503282487,-4.7430749661384474e-5,3.8241437080403724e-8,0.0015358072060457936,-4.738020854009638e-5,3.819867181103716e-8,0.0015359252275494756,-4.736231090740194e-5,3.818223813016995e-8,0.0015360095332831896,-4.739380510817324e-5,3.820445815928393e-8,0.0015360820478136717,-4.748383499571379e-5,3.82718722773441e-8,0.001536166141831675,-4.763330834665019e-5,3.838478548063725e-8,0.001536284194639195,-4.783458629340891e-5,3.8536969464764897e-8,0.0015364548174580863,-4.8071792138992605e-5,3.871582755825761e-8,0.001536689888308331,-4.832221693893701e-5,3.890347256035087e-8,0.001536991949021952,-4.8559125680806725e-5,3.907898810591917e-8,0.0015373526882001662,-4.875585201501901e-5,3.9221757056841037E-08,0.0015377531409755225,-4.889068042494506e-5,3.931538272353313e-8,0.0015381659828674545,-4.895167436888976e-5,3.9351451406966635e-8,0.0015385598715198048,-4.894040830492917e-5,3.9332267184161023e-8,0.0015389053503828088,-4.887366805568127e-5,3.927184980018389e-8,0.0015391815674583567,-4.878238533919379e-5,3.919473310592367e-8,0.0015393827610044833,-4.870713902780217e-5,3.913220935194622e-8,0.001539522826925547,-4.868983638924286e-5,3.911586463438951e-8,0.001539635551012186,-4.8762258491063296e-5,3.916897922140672e-8,0.0015397681169518995,-4.893424373568861e-5,3.929783969200081e-8,0.0015399675307219867,-4.9186670824232385e-5,3.9486747633733346e-8,0.0015402639575685848,-4.94746582698892e-5,3.970072063670472e-8,0.001540658896768355,-4.974203898215638e-5,3.989665648604e-8,0.0015411250260262703,-4.9940960584229624e-5,4.0038309783718896e-8,0.0015416177088270302,-5.0046684404287795e-5,4.010752915400204e-8,0.0015420911707916128,-5.006124568783706e-5,4.010688682435594e-8,0.0015425111740769344,-5.000709715400226e-5,4.00545534176231e-8,0.0015428603593231258,-4.9916572907574924e-5,3.9975967592465016e-8,0.001543137348004615,-4.9822560505639655e-5,3.9896549730067413e-8,0.0015433527728847896,-4.9752685894152456e-5,3.983728353617607e-8,0.0015435248853113634,-4.972672630231794e-5,3.981289716560943e-8,0.0015436759860362377,-4.975595477250484e-5,3.9831537088095255e-8,0.0015438297952060482,-4.984325147671539e-5,3.989494979643839e-8,0.0015440093369692496,-4.998334813656624e-5,3.999866380557658e-8,0.0015442348151259754,-5.016309804535865e-5,4.013214246585282e-8,0.0015445211154071746,-5.0362121259628284e-5,4.027925529887606e-8,0.0015448749611662643,-5.055446980018576e-5,4.0419618992163206e-8,0.0015452923005028491,-5.071189862384606e-5,4.053125674762409e-8,0.0015457569800726891,-5.0808855828295383E-05,4.059460327889975e-8,0.0015462418900000286,-5.082850879931722e-5,4.059724221672877e-8,0.0015467132993301472,-5.076823346637892e-5,4.0538094268894254e-8,0.0015471380038922773,-5.064252614673594e-5,4.042945683138028e-8,0.0015474916360774626,-5.048174585710053e-5,4.0295709244955134e-8,0.0015477657624747324,-5.0326348408581844e-5,4.016852598729084e-8,0.0015479715584376128,-5.02176988612463e-5,4.00795759607021e-8,0.001548138675163666,-5.018759931395581e-5,4.0052468864238434e-8,0.001548309019173918,-5.0249167170106635e-5,4.0095999848332944e-8,0.001548526363415651,-5.039173011559901e-5,4.020064552392213e-8,0.001548824072026234,-5.0581979693915296e-5,4.033985817256759e-8,0.0015492146318262102,-5.0772290610955474e-5,4.047669746431854e-8,0.0015496851936439822,-5.091443598787875e-5,4.057438892398452e-8,0.001550201601146154,-5.0973893683465014e-5,4.0607169310144533e-8,0.001550719547427848,-5.093895551994056e-5,4.0567056747315524e-8,0.0015511979549022272,-5.082132789363123e-5,4.0464060310906736e-8,0.001551609085796503,-5.064930767517722e-5,4.032070429909841e-8,0.001551942485882253,-5.045777032215602e-5,4.0164179972009266e-8,0.001552203365741154,-5.027932903282667e-5,4.0019527762343134e-8,0.0015524080338778475,-5.0138911795649996e-5,3.990557662144009e-8,0.0015525789206599471,-5.005169954767954e-5,3.983352487266917e-8,0.0015527405622942454,-5.0023207216840704e-5,3.980713258549693e-8,0.001552916795278977,-5.005024771803662e-5,3.982350168918181e-8,0.0015531287739189376,-5.012197934084325e-5,3.987384769919168e-8,0.0015533932025365111,-5.022080731770897e-5,3.99441559610026e-8,0.0015537202826231122,-5.03234457482546e-5,4.0016025565273536e-8,0.0015541112665716941,-5.0402810390084915e-5,4.0068239562396716e-8,0.0015545561079804125,-5.0431489448755314e-5,4.007959506236113e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json new file mode 100644 index 0000000..c6ac961 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":15000,"numberOfSamples":1000,"samples":[0.001555032396790159,-5.038717964716439e-5,4.003321453737454e-8,0.001555507240340409,-5.025945257220019e-5,3.992178064606655e-8,0.0015559433318249748,-5.005568561411016e-5,3.975199831316558e-8,0.0015563086828940746,-4.9802949292686764e-5,3.9545822083813816e-8,0.001556587031841404,-4.9543375923704664e-5,3.9336583092513e-8,0.0015567845028372617,-4.93232976794034e-5,3.9160317297773175e-8,0.0015569291408115862,-4.9179757456819175e-5,3.904518941710335e-8,0.0015570631279621951,-4.912957061070448e-5,3.90031151041951e-8,0.0015572306984882043,-4.916483994647903e-5,3.902661169621281e-8,0.0015574660511056152,-4.9255840502179806e-5,3.9091477245714126e-8,0.0015577847760354089,-4.9359606772293576e-5,3.9163823082464017e-8,0.001558180685115808,-4.943135773630568e-5,3.920908834205859e-8,0.0015586283968716341,-4.943566203060656e-5,3.920059314584998e-8,0.0015590906701226305,-4.9354497209498185e-5,3.9125494924869697e-8,0.001559528261058972,-4.919020584318819e-5,3.8986728207848124e-8,0.0015599093591160292,-4.896289913685733e-5,3.880070214408021e-8,0.0015602159244718476,-4.870367300374791e-5,3.8591890031225615e-8,0.001560445583043622,-4.844627081761637e-5,3.838637217885279e-8,0.0015606095190522666,-4.821988699048854e-5,3.8206389463064e-8,0.001560728059333107,-4.80447105719932e-5,3.8067072967328046e-8,0.0015608258215469178,-4.7930366808124216e-5,3.797538689472998e-8,0.0015609276655558022,-4.787644642721989e-5,3.793059714039383e-8,0.0015610558505919753,-4.7874043041353836e-5,3.792543115973339e-8,0.0015612281647851558,-4.7907464781617856e-5,3.794734148986789e-8,0.0015614564996265033,-4.795579391508165e-5,3.797969902153523e-8,0.0015617453775785114,-4.7994480662788104e-5,3.8003106795686565e-8,0.001562090231917282,-4.799751763502489e-5,3.7997236526191586e-8,0.0015624757732016965,-4.7940913074933274e-5,3.7943666553683704e-8,0.0015628755385377238,-4.780797264952134e-5,3.783002608138753e-8,0.0015632543909054244,-4.759591895225801e-5,3.765503864336205e-8,0.0015635755508337965,-4.7321569326116703e-5,3.743272490582087e-8,0.0015638118247210714,-4.702212301492192e-5,3.719276938020053e-8,0.0015639572183669657,-4.674759666086147e-5,3.697442350326965e-8,0.0015640325431972783,-4.654548661616456e-5,3.681443353406246e-8,0.0015640803149591668,-4.644389332460276e-5,3.673389012822279e-8,0.0015641503210691414,-4.644165242496307e-5,3.673070606589074e-8,0.0015642829369577056,-4.651013021168292e-5,3.678135043023996e-8,0.0015644977495392904,-4.660446073429612e-5,3.685000664095114e-8,0.001564790749643378,-4.6677917336542896e-5,3.6900071652951433e-8,0.001565138707406003,-4.66938238368795e-5,3.690350083708066e-8,0.0015655073435626183,-4.663241657433939e-5,3.6845954665167155e-8,0.0015658602190323327,-4.649255514773499e-5,3.672776169544263e-8,0.0015661663607259592,-4.628936931980565e-5,3.656170224679889e-8,0.0015664055799049252,-4.6049225283354464e-5,3.636883604376693e-8,0.001566571002171141,-4.580336936715299e-5,3.6173502381504967e-8,0.0015666687673390187,-4.558160277952096e-5,3.599852488215996e-8,0.0015667154033415197,-4.5407215387777025e-5,3.586148463513818e-8,0.0015667338355941623,-4.529393320932333e-5,3.577253994149994e-8,0.0015667490993197454,-4.524500274399756e-5,3.573380667359368e-8,0.0015667846174289822,-4.5254024907903564e-5,3.57399848967389e-8,0.001566859497029681,-4.5306834496840176e-5,3.5779734964378544e-8,0.0015669868024443458,-4.5383715412729446e-5,3.583733887760147e-8,0.001567172455798627,-4.546158479647085e-5,3.5894430294282084e-8,0.0015674144103284765,-4.551618411695069e-5,3.593183701499408e-8,0.001567701899164982,-4.5524599621765035e-5,3.593172347162997e-8,0.0015680149455750063,-4.5468646452923546e-5,3.588034316011282e-8,0.001568325023881159,-4.533952995396979e-5,3.577163595791014e-8,0.001568598375261144,-4.514331996072684e-5,3.561129614715066e-8,0.0015688033307539359,-4.490516831986402e-5,3.5419775786897466e-8,0.0015689213635770478,-4.4668520678280764e-5,3.5231422956829793e-8,0.0015689580930293371,-4.448560774152507e-5,3.508694038347068e-8,0.001568947072838441,-4.439966029933874e-5,3.501951652065551e-8,0.0015689406813127415,-4.442653532989222e-5,3.5040594280255434e-8,0.0015689905208410501,-4.454694343553021e-5,3.5134005465375e-8,0.0015691279470960945,-4.471462114836585e-5,3.526264408522862e-8,0.001569355167197491,-4.4874982251366504e-5,3.5383351783517066e-8,0.0015696491590304815,-4.498328840192346e-5,3.5461324901144965e-8,0.0015699730086184231,-4.5014843868502684e-5,3.547806086334234e-8,0.0015702878466824224,-4.496644962533722e-5,3.5432227789964445e-8,0.0015705615045717492,-4.48522455988792e-5,3.5336015448358164e-8,0.0015707731361774711,-4.469737825179658e-5,3.520983386424041e-8,0.0015709146371371892,-4.453167337270511e-5,3.507720338549927e-8,0.0015709899450492496,-4.4384204168804375e-5,3.4960569188722246e-8,0.0015710129446352492,-4.427899769327988e-5,3.487815813513884e-8,0.0015710044338982897,-4.4232035758685976e-5,3.484187409746818e-8,0.0015709885901114629,-4.424966839076787e-5,3.48562113954969e-8,0.0015709893763831153,-4.4328433769242266e-5,3.491813422291662e-8,0.0015710273252120134,-4.4456174728882454e-5,3.501786728147512e-8,0.001571117095259444,-4.4614146603934006e-5,3.514044529398255e-8,0.0015712659471281585,-4.4779625550250765e-5,3.526772890807883e-8,0.0015714729990209998,-4.492865339998087e-5,3.5380643711257126e-8,0.0015717290886569444,-4.503882672267935e-5,3.5461540303863484e-8,0.0015720171486412,-4.509218250304847e-5,3.549662088853352e-8,0.0015723131710548195,-4.507838065681111e-5,3.547847663955526e-8,0.0015725883317389549,-4.499835421555663e-5,3.540880348366659e-8,0.001572813307826608,-4.486786800809496e-5,3.5300892636416496e-8,0.0015729655070056204,-4.47191603474519e-5,3.518058646081875e-8,0.0015730384980441499,-4.459776227937817e-5,3.5083578249073555e-8,0.0015730502214990328,-4.4551776967474605e-5,3.504702004926623e-8,0.0015730436787471955,-4.461436338745037e-5,3.5095992048822466e-8,0.0015730749295945277,-4.478695231412046e-5,3.5230609633398364e-8,0.00157319126570817,-4.5034672737442647e-5,3.542266299781257e-8,0.0015734115792861226,-4.529940702276995e-5,3.562602881073632e-8,0.0015737208148722149,-4.552319788898638e-5,3.5795178558746185e-8,0.0015740799139331147,-4.5667994072365434e-5,3.590075376760617e-8,0.0015744426094396393,-4.572297761098429e-5,3.593523410445762e-8,0.0015747694654922382,-4.570060260613509e-5,3.5909545233455296e-8,0.0015750350883362262,-4.56275210357777e-5,3.584556214181634e-8,0.0015752294134122743,-4.5535604842148e-5,3.576877953266378e-8,0.0015753556604648073,-4.545534529408837e-5,3.5703062165524755e-8,0.0015754271119554817,-4.541175214597163e-5,3.566756900441209e-8,0.0015754637850900197,-4.5422021566715475e-5,3.567516845886349e-8,0.0015754892419881964,-4.549435685857388e-5,3.5731726192643936e-8,0.0015755275323007985,-4.562767745693644e-5,3.5835969133508226e-8,0.0015756002822981585,-4.581213815904196e-5,3.597985887669808e-8,0.0015757240290649212,-4.603051129355547e-5,3.6149580268519345e-8,0.0015759080778055216,-4.626046736804536e-5,3.632726928230143e-8,0.0015761532032229398,-4.6477532670966515e-5,3.6493374497356665e-8,0.0015764513190264005,-4.66583682351069e-5,3.662937540080888e-8,0.0015767861221216862,-4.6784116146357104e-5,3.67205887315865e-8,0.0015771347357232419,-4.6843579857850895e-5,3.6758772560147956e-8,0.0015774703483009739,-4.683599304438294e-5,3.67442426941251e-8,0.0015777659552356682,-4.677317302149219e-5,3.66873186351272e-8,0.0015779995237324785,-4.668049190430199e-5,3.660873387655922e-8,0.0015781605555831091,-4.659528839149842e-5,3.6538079166891776e-8,0.0015782567852510353,-4.656091594072024e-5,3.650901070819981e-8,0.0015783179633283798,-4.6615418475760236e-5,3.655049543919046e-8,0.0015783922903835324,-4.677665068892878e-5,3.667544840847755e-8,0.0015785325756434202,-4.703036852583066e-5,3.687171431896692e-8,0.0015787756427616659,-4.733035159097787e-5,3.7102367094230025e-8,0.0015791259181678027,-4.761430923312568e-5,3.731827295238525e-8,0.0015795538411506713,-4.7828037828527396e-5,3.747709330858676e-8,0.0015800096969891477,-4.7943878769038486E-05,3.7557792145692596e-8,0.0015804431624417705,-4.796481847401571e-5,3.756375094216574e-8,0.0015808178057632656,-4.791635491291735e-5,3.7516101368887467e-8,0.0015811164141571583,-4.783405291768669e-5,3.744360223405161e-8,0.0015813392677104443,-4.775314048922322e-5,3.737423693485045e-8,0.0015814993203580124,-4.7702326404354844e-5,3.733035174588052e-8,0.0015816171643790661,-4.7701193814970105e-5,3.7326791516613286e-8,0.0015817169630395575,-4.775965776778595e-5,3.737071389079256e-8,0.001581823347515752,-4.787832470052812e-5,3.7462041637598934e-8,0.0015819588828547596,-4.8049258257063996e-5,3.7594106726625155e-8,0.0015821417963573898,-4.8257082895207296e-5,3.775446258471748e-8,0.0015823838479101892,-4.848060164321304e-5,3.792608585212836e-8,0.001582688504544025,-4.869520808633535e-5,3.8089269531459865e-8,0.0015830498625370153,-4.887615170356731e-5,3.822428825087552e-8,0.0015834527637300596,-4.9002351733972964e-5,3.8314560752223585e-8,0.0015838743628422021,-4.906026034512833e-5,3.834982706901485e-8,0.001584287221216587,-4.904715037019271e-5,3.832875105474419e-8,0.001584663741938823,-4.897310145628491e-5,3.826032241557493e-8,0.001584981463061841,-4.8861079857009655e-5,3.8163607031293117e-8,0.0015852285820703014,-4.874466991235223e-5,3.8065608345197424e-8,0.0015854088600154176,-4.8662962215500585e-5,3.7997004979177486e-8,0.0015855444217866606,-4.86522846509656e-5,3.798563784368472e-8,0.001585674261819128,-4.8735533803462465e-5,3.804836085608511e-8,0.001585846375312292,-4.891189807186035e-5,3.818334234181005e-8,0.00158610348310477,-4.9151982596995845e-5,3.836657757562266e-8,0.001586466654834368,-4.9403489989380824e-5,3.8556531405909456e-8,0.0015869251102463237,-4.960807810621859e-5,3.870740581132169e-8,0.0015874391429179613,-4.9722343633764594e-5,3.8785587350351096e-8,0.0015879553631793688,-4.973190214442801e-5,3.878064452942808e-8,0.001588425577199708,-4.9652024693980827e-5,3.870567071163837e-8,0.00158881977381429,-4.951725979120483e-5,3.8588846273972866e-8,0.0015891295065786543,-4.936775952074638e-5,3.84623889278333e-8,0.001589364066660281,-4.9238715531157035e-5,3.8354092314337146e-8,0.001589543909685928,-4.9154994199223596e-5,3.8283168581558065e-8,0.0015896945618050432,-4.9129902713118106e-5,3.825948659678869e-8,0.0015898422153512498,-4.916611627099987e-5,3.8284520145138256e-8,0.001590010859028341,-4.925727610695112e-5,3.8352726691160195e-8,0.0015902202966968217,-4.938958761833569e-5,3.845280876708773e-8,0.0015904844846205953,-4.954336749390981e-5,3.8568874325898195e-8,0.0015908099083882816,-4.969485381752708e-5,3.868182932013065e-8,0.0015911941068452644,-4.98187279964764e-5,3.8771413773902485e-8,0.0015916248545581027,-4.989160905264646e-5,3.881908380631811e-8,0.0015920807276100831,-4.9896318601345885e-5,3.881152013111638e-8,0.0015925336582621405,-4.982618528736371e-5,3.874409592893164e-8,0.0015929536328127007,-4.9688213379708714e-5,3.862330576383604e-8,0.0015933149629505758,-4.950379940089145e-5,3.846710078351864e-8,0.001593602808933612,-4.930610263244153e-5,3.830248200720968e-8,0.0015938182399501703,-4.913404445176729e-5,3.8160453318297506e-8,0.0015939802243672306,-4.902380951458289e-5,3.806916042959481e-8,0.0015941233988982489,-4.899946750049259e-5,3.8046581250505863e-8,0.0015942911880484664,-4.906498251129774e-5,3.80945375169188e-8,0.0015945249563040758,-4.920032285756388e-5,3.8196040630227036e-8,0.0015948515164234465,-4.9364207196608636e-5,3.8317796980507725e-8,0.001595273159867582,-4.950449066879408e-5,3.841854809931519e-8,0.0015957650230228916,-4.9573895929635576e-5,3.846143646287539e-8,0.0015962822947114133,-4.954513058246872e-5,3.842577890144347e-8,0.0015967748230214939,-4.941856956430488e-5,3.8312929742037596e-8,0.001597202494943064,-4.921934317902047e-5,3.814375061431865e-8,0.0015975448239908775,-4.898645979137916e-5,3.794978155712491e-8,0.0015978022649466863,-4.876005227964857e-5,3.7762998553756675e-8,0.0015979913135114392,-4.85719625681952e-5,3.76083609760703e-8,0.0015981373497028673,-4.84414879329937e-5,3.750059586381275e-8,0.0015982682896983585,-4.837523496803743e-5,3.744429677813117e-8,0.0015984102235238262,-4.8369073369492696e-5,3.743563223650375e-8,0.0015985848577516198,-4.8410619737028296e-5,3.746436079232389e-8,0.0015988080578801715,-4.848147621960483e-5,3.751556089859576e-8,0.0015990887787054714,-4.8559129023742496e-5,3.7571077107145096e-8,0.0015994279675657184,-4.861890144868653e-5,3.761106919377434e-8,0.0015998175105410416,-4.8636534469734454e-5,3.761614354464905e-8,0.0016002397772522405,-4.859177185400766e-5,3.757032802152641e-8,0.0016006686543139628,-4.84728413566226e-5,3.74647259539885e-8,0.0016010729910405593,-4.828097347843213e-5,3.7301095421887124e-8,0.0016014227983081818,-4.8033231546302496e-5,3.709395135898375e-8,0.0016016972164009232,-4.776158920159305e-5,3.686957478771082e-8,0.001601891799677878,-4.750708267512769e-5,3.6661070725469196e-8,0.0016020220967839574,-4.730984733590426e-5,3.65002268054441e-8,0.0016021214376728508,-4.7197895387483466e-5,3.640855159267248e-8,0.0016022329539292035,-4.7178441191331395e-5,3.6390568883612766e-8,0.001602398098868516,-4.723486700987873e-5,3.64317778525816e-8,0.0016026451775172069,-4.7330459524417435e-5,3.6502037536061675e-8,0.0016029812826023223,-4.741790311922242e-5,3.6563402100527594e-8,0.0016033900211863004,-4.7451924030049034e-5,3.658023478305435e-8,0.0016038359142873748,-4.7401493578198037e-5,3.65287527576269e-8,0.0016042743565764664,-4.725778830099e-5,3.6403069368047857e-8,0.0016046639296792753,-4.703526837810497e-5,3.621574128865795e-8,0.0016049768310006606,-4.676579911472799e-5,3.599284252644777e-8,0.0016052041001474093,-4.6488499312397777e-5,3.576575444073776e-8,0.0016053547788864799,-4.623936983449527e-5,3.556292473478258e-8,0.0016054506685802667,-4.604404725371659e-5,3.540424269592429e-8,0.00160551955904301,-4.591491456251917e-5,3.529894528530359e-8,0.0016055893304846428,-4.585176544402924e-5,3.5246319584402404e-8,0.0016056839738281931,-4.584435487657563e-5,3.523780378361235e-8,0.0016058214226180075,-4.58754099005351e-5,3.525934967930275e-8,0.0016060125662822487,-4.5923316964371105e-5,3.5293484731850514e-8,0.0016062607469574757,-4.5964330399595076e-5,3.5321033008763995e-8,0.0016065612721366269,-4.597465556251913e-5,3.5322825752794e-8,0.001606900939181552,-4.5932990607520925e-5,3.528185027009399e-8,0.0016072580949436541,-4.582396800827508e-5,3.518611857277115e-8,0.0016076041773001588,-4.564246758849356e-5,3.503214741997083e-8,0.001607907835484071,-4.539791130326102e-5,3.482829369055841e-8,0.001608142149154005,-4.511646354493401e-5,3.4596304332457856e-8,0.0016082937279128775,-4.483839603063741e-5,3.4368956580540236e-8,0.001608370164011681,-4.460905850485839e-5,3.418262319337986e-8,0.0016084013367679887,-4.4465215778220584e-5,3.4066244784300986e-8,0.0016084321421592992,-4.442209614898366e-5,3.4031040378216796e-8,0.0016085087032214472,-4.4467328910789975e-5,3.406590890538271e-8,0.001608663854204168,-4.4564751128790306e-5,3.414084287148784e-8,0.0016089078261996121,-4.466603533873435e-5,3.4216585652257157e-8,0.0016092268749752002,-4.472491235101269e-5,3.425621097733665e-8,0.0016095888815234746,-4.470896660568734e-5,3.4234524970492415e-8,0.00160995294459917,-4.46061700180591e-5,3.414304169545714e-8,0.0016102797685153603,-4.442554150736995e-5,3.39901449867369e-8,0.001610540291413511,-4.41928249660299e-5,3.379729090404697e-8,0.001610720877149768,-4.3942959524330366e-5,3.3592785051752095e-8,0.0016108243718107255,-4.3711535533740247e-5,3.340493987008991e-8,0.0016108673896750982,-4.352740556905542e-5,3.325631883018611e-8,0.0016108751528596623,-4.340803798367828e-5,3.31602500419108e-8,0.0016108756639389974,-4.3358117340029234e-5,3.31199083561361e-8,0.00161089471982018,-4.33708154841172e-5,3.312942713946964e-8,0.0016109525410755215,-4.34306101333567e-5,3.317612870807587e-8,0.0016110620470242626,-4.351655218140907e-5,3.3243045504261954e-8,0.001611228317562383,-4.360524372648092e-5,3.331122931252226e-8,0.0016114486396584151,-4.367330914275547e-5,3.336174083792286e-8,0.0016117127150576606,-4.3699607289291936e-5,3.33775293772246e-8,0.0016120029665654158,-4.366764384768521e-5,3.3345510827283086e-8,0.0016122953248352881,-4.35685848202546e-5,3.3259070099345036e-8,0.0016125613483437497,-4.340490324202378e-5,3.312093756709973e-8,0.0016127727551766623,-4.319382193216696e-5,3.294576076085041e-8,0.0016129088996316033,-4.296843215561775e-5,3.276074107332174e-8,0.0016129659137071207,-4.277350269527232e-5,3.260204841704383e-8,0.0016129634518711477,-4.2654123502679954e-5,3.250560511019986e-8,0.0016129434192342419,-4.263951160928507e-5,3.249413087936494e-8,0.0016129578689934336,-4.272950726670111e-5,3.25664702196115e-8,0.001613050232896208,-4.2892278302879625e-5,3.2696007974918103e-8,0.0016132395138366183,-4.307566567224347e-5,3.2840080832235315e-8,0.0016135153781361821,-4.3225967007183096e-5,3.295532521363271e-8,0.0016138447598283675,-4.330446141592195e-5,3.3011068605873004e-8,0.0016141845061787268,-4.329558915141256e-5,3.299579503566333e-8,0.0016144937858859182,-4.320654916003372e-5,3.29165093334752e-8,0.0016147426836319956,-4.3061418898431364e-5,3.2793617549553344e-8,0.0016149162538619413,-4.28932148940195e-5,3.2654235700933185e-8,0.0016150148382885333,-4.273622151749938e-5,3.252591778532962e-8,0.0016150517857130536,-4.261972946654225e-5,3.243173477682972e-8,0.001615049514803641,-4.256367933918242e-5,3.238701919898679e-8,0.0016150347633862986,-4.2576490174574447e-5,3.239787068664833e-8,0.0016150339039934956,-4.265505690214593e-5,3.24613058418649e-8,0.0016150690590622733,-4.278649690659109e-5,3.2566675877575025e-8,0.0016151554483356746,-4.2951022505443604e-5,3.269788817933618e-8,0.0016153001048231429,-4.312527285417708e-5,3.283598386574173e-8,0.0016155017602802555,-4.328548587995333e-5,3.2961656880308e-8,0.0016157514557302796,-4.3410193344149555e-5,3.305749480030836e-8,0.0016160335151886938,-4.348253336100209e-5,3.310998203842222e-8,0.0016163267962227231,-4.3492450229067064e-5,3.311139396130571e-8,0.001616606420595729,-4.343902077762299e-5,3.306167660919614e-8,0.001616846570836147,-4.3332918110579625e-5,3.297027424956425e-8,0.0016170251774682734,-4.319829401359851e-5,3.285736904569684e-8,0.0016171308087405997,-4.307222907662207e-5,3.2753160720529384e-8,0.0016171704476762414,-4.299915965162309e-5,3.2693234113441636e-8,0.0016171742841552047,-4.301865193973153e-5,3.2708769773927315e-8,0.0016171918923307148,-4.314894035091985e-5,3.281350053431754e-8,0.0016172768691222427,-4.337450691395369e-5,3.299396166424684e-8,0.0016174652144145727,-4.364756211844907e-5,3.321089173978478e-8,0.0016177597932134746,-4.390561146011057e-5,3.341354613711286e-8,0.0016181304852361284,-4.4095543629212986e-5,3.3559243265705895e-8,0.0016185284692897027,-4.4190547319258514e-5,3.362705585213057e-8,0.0016189045522376445,-4.4193243891010715e-5,3.362020601659291e-8,0.0016192223969067512,-4.412817824935237e-5,3.355967969498163e-8,0.0016194638193470891,-4.403063195720452e-5,3.34748138358053e-8,0.0016196280163832983,-4.393679585500097e-5,3.339511192107193e-8,0.0016197277267549035,-4.3877154423368346e-5,3.334489133236136e-8,0.0016197845593948158,-4.387287847418416e-5,3.334056960624522e-8,0.0016198245204375643,-4.3934319125600074e-5,3.3389732573910446e-8,0.0016198739737394417,-4.4060948688515964e-5,3.3491313790702704e-8,0.001619956137050907,-4.424248547766236e-5,3.3636593203828094e-8,0.0016200882954145463,-4.4460987523551896e-5,3.381084517949932e-8,0.0016202798937417601,-4.469366279624242e-5,3.399550450501883e-8,0.0016205316675254457,-4.4916122131234496e-5,3.417072218106146e-8,0.0016208358841783572,-4.51056635939364e-5,3.431804144775011e-8,0.0016211775123474187,-4.524417861154815e-5,3.442285758382958e-8,0.0016215360341788234,-4.532053562216261e-5,3.447647579529873e-8,0.0016218877589150979,-4.5332465127465866e-5,3.4477688314315185e-8,0.0016222086413283134,-4.528794941479019e-5,3.4433800071019065e-8,0.0016224777898770169,-4.520602795248432e-5,3.436102856785716e-8,0.0016226820080681198,-4.511649275684907e-5,3.428394416218811e-8,0.0016228212897336288,-4.505716598228851e-5,3.423303906504118e-8,0.0016229139005976808,-4.50670885186496e-5,3.423920259833186e-8,0.0016229978830992289,-4.51749217202737e-5,3.432456868826437e-8,0.0016231246866747196,-4.538503437297744e-5,3.449162408965321e-8,0.0016233428870291516,-4.566853319778398e-5,3.4716252957965794e-8,0.0016236772248806965,-4.596812991238768e-5,3.495178509204106e-8,0.0016241152647686152,-4.621869465816446e-5,3.514559949367053e-8,0.0016246116056889723,-4.637312377459764e-5,3.526003661180751e-8,0.0016251072872445914,-4.6418152194176277e-5,3.5285198490338464e-8,0.0016255516901675028,-4.637296697358738e-5,3.523771443245092e-8,0.0016259155653828902,-4.627592173555477e-5,3.5149685697300395e-8,0.0016261928281600965,-4.616943668607092e-5,3.5056106184870745e-8,0.0016263953747431522,-4.608946050777786e-5,3.4986134383754507e-8,0.00162654592076792,-4.606055522365073e-5,3.4959174040392114e-8,0.0016266717530924076,-4.6094961601108544e-5,3.498436583192719e-8,0.0016268002162611959,-4.619362578856872e-5,3.506170277704274e-8,0.0016269555762756986,-4.6347898809298577e-5,3.5183591772346576e-8,0.0016271567027249208,-4.654151467710764e-5,3.533649211716943e-8,0.0016274153179251607,-4.675286847043376e-5,3.550269075582101e-8,0.0016277348011426761,-4.695766887346226e-5,3.566236234788382e-8,0.0016281097039318963,-4.7132008983412574e-5,3.5796030279421156e-8,0.0016285262644494334,-4.7255678611228e-5,3.5887315314142226e-8,0.001628964073625187,-4.731526564371127e-5,3.5925567937765023E-08,0.0016293987695045343,-4.7306594472402196e-5,3.5907931482636357e-8,0.0016298055166128098,-4.723617482978707e-5,3.5840485560798704e-8,0.0016301629750232944,-4.7121376003895105e-5,3.573820180050115e-8,0.0016304574112304933,-4.698912835410786e-5,3.562359354313474e-8,0.001630686636381212,-4.687296006046646e-5,3.552402309108488e-8,0.001630863266571223,-4.6807921698255846e-5,3.546744809793738e-8,0.001631016074302961,-4.6822961021669483e-5,3.5476346222796364e-8,0.0016311873490471736,-4.6931285427303824e-5,3.556023149782128e-8,0.0016314241196807519,-4.712134705140385e-5,3.570874980570606e-8,0.0016317631244090534,-4.7353656267366736e-5,3.5889370924150126e-8,0.0016322143049490748,-4.756904084464057e-5,3.605411987293246e-8,0.0016327523237028758,-4.770869469055887e-5,3.615570802256036e-8,0.001633323721960312,-4.7737093003807625e-5,3.616600609540491e-8,0.0016338673630050457,-4.7654512699828896e-5,3.608614967055138e-8,0.0016343363161102794,-4.7492623882838964e-5,3.59428498486487e-8,0.0016347097760828822,-4.729839554612501e-5,3.577507367476015e-8,0.0016349924051370127,-4.7117130386448616e-5,3.5619987353530545e-8,0.0016352061343948639,-4.6981902350859326e-5,3.550426387925348e-8,0.0016353807083681227,-4.691028273741784e-5,3.544154910868567e-8,0.0016355464804455415,-4.690570628738172e-5,3.543383998937961e-8,0.001635730112170018,-4.696057989449839e-5,3.5474262687520425e-8,0.0016359523601496132,-4.705941012943231e-5,3.5549738432914185e-8,0.0016362269041772656,-4.718145036852111e-5,3.56431208201011e-8,0.0016365595879771274,-4.730304536267612e-5,3.5735016865504467e-8,0.0016369478987237219,-4.7400035126582016e-5,3.58056778292684e-8,0.0016373808483354118,-4.7450543227840547e-5,3.583728050603426e-8,0.0016378397017732427,-4.7438197284311285e-5,3.581663456998011e-8,0.0016383000265438497,-4.7355354305080354e-5,3.573790790644766e-8,0.001638735210162438,-4.720557229499285e-5,3.5604668453241686e-8,0.0016391211394910926,-4.700451726643738e-5,3.5430520082254106e-8,0.001639441306452008,-4.6778640180967995e-5,3.5237790208829276e-8,0.0016396912690668532,-4.6561377647454084e-5,3.5054142350092676e-8,0.0016398813658379573,-4.63872399230719e-5,3.490753406266736e-8,0.0016400368292994823,-4.628458200577974e-5,3.4820292858860436e-8,0.0016401946504560447,-4.6268117996810935e-5,3.480322538106792e-8,0.0016403967479677747,-4.6332728578918845e-5,3.485095674241419e-8,0.001640679685853359,-4.645083249127904e-5,3.494018708827335e-8,0.0016410627568417529,-4.657595311703952e-5,3.5032828146860476e-8,0.0016415385136823188,-4.665404102506928e-5,3.5085209016852697e-8,0.0016420712361589218,-4.6640593747802424e-5,3.506183028304087e-8,0.0016426066758982037,-4.651680204060536e-5,3.49483030632206e-8,0.0016430902029990438,-4.6296213477060036e-5,3.4756616314912035e-8,0.0016434846325752775,-4.601807762842053e-5,3.451956176891535e-8,0.0016437792010674768,-4.573164001443794e-5,3.4277753576294015e-8,0.0016439873944463735,-4.5480182565328244e-5,3.406648234300473e-8,0.0016441377649539473,-4.5291435015766347e-5,3.390791520498886e-8,0.0016442637177816871,-4.517553440841134e-5,3.38096166616314e-8,0.0016443960339398652,-4.512789702654878e-5,3.376713660815342e-8,0.0016445588953631549,-4.5133752929414504e-5,3.3767884966551584e-8,0.0016447684565497988,-4.517231429766106e-5,3.3794572068923304e-8,0.001645032669366525,-4.521994135279829e-5,3.382772789479797e-8,0.0016453514524502528,-4.5252519765481794e-5,3.3847558228796395e-8,0.0016457168505185967,-4.524759349498278e-5,3.38356608525806e-8,0.001646113327512554,-4.51867851078022e-5,3.3777059144320585e-8,0.0016465187233436285,-4.5058731090684236e-5,3.366270182651552e-8,0.0016469065595708819,-4.4862213010709696e-5,3.349209230451183e-8,0.0016472501485759548,-4.460855757214049e-5,3.327522050357837e-8,0.0016475282892311342,-4.43219688174928e-5,3.303267631530774e-8,0.001647731361928809,-4.40365769207798e-5,3.279298525555044e-8,0.0016478658173717641,-4.378990661504161e-5,3.2587010223876336e-8,0.001647955012278325,-4.361395560197095e-5,3.244050743190803e-8,0.0016480353368982224,-4.352634140384957e-5,3.236693816783387e-8,0.0016481481573200063,-4.352430208745986e-5,3.236282743263174e-8,0.0016483294908475749,-4.358362185466893e-5,3.240727442369534e-8,0.001648600066709863,-4.366323577305269e-5,3.2466074614676396e-8,0.0016489585077819739,-4.371486073861877e-5,3.249977289857885e-8,0.0016493799815096145,-4.369565905864213e-5,3.247396466644824e-8,0.0016498216574363398,-4.35805854427313e-5,3.236916312326058e-8,0.0016502342591044501,-4.337016148742985e-5,3.2186868815840264e-8,0.0016505762173780565,-4.309020706568123e-5,3.194909432152713e-8,0.0016508250968513124,-4.278317246005813e-5,3.1691092721698956e-8,0.0016509819009967624,-4.24946924788503e-5,3.1450271221881416e-8,0.0016510674183862332,-4.226105950962592e-5,3.125597438215787e-8,0.0016511135338679924,-4.210202576888828e-5,3.112374663814163e-8,0.0016511538874274358,-4.201993406387043e-5,3.105483497910188e-8,0.0016512170388640625,-4.200324771532353e-5,3.1039256218679945e-8,0.0016513230147448136,-4.2031673250908966e-5,3.106005739207479e-8,0.0016514824899899535,-4.2080862105879425e-5,3.109711887696447e-8,0.0016516973653265966,-4.212590433392133e-5,3.1129923067476226e-8,0.001651961729402234,-4.214373526750093e-5,3.113947244255304e-8,0.001652262709403183,-4.2115034434587586e-5,3.11098777670916e-8,0.001652581282236162,-4.20262355409554e-5,3.103010807540562e-8,0.001652893563089459,-4.1871968498026697e-5,3.089609413234407e-8,0.0016531733119630543,-4.165773999853627e-5,3.071294747399099e-8,0.001653396304072018,-4.1401950749318465e-5,3.0496512296258735e-8,0.0016535465337220673,-4.113559677284715e-5,3.027291157231968e-8,0.00165362283822673,-4.08978653952933e-5,3.007468972951524e-8,0.001653643051829214,-4.072709688518788e-5,2.993320892854408e-8,0.0016536425379715574,-4.064915069866908e-5,2.986905479463843e-8,0.0016536658656256423,-4.0667642322225216e-5,2.988415848613424e-8,0.0016537538623654171,-4.076077998128367e-5,2.995949305378407e-8,0.0016539310239152949,-4.088682206365838e-5,3.0059909699632935e-8,0.0016541982039326847,-4.099610396545309e-5,3.0144299811144e-8,0.0016545328263749025,-4.1044953793367646e-5,3.0177129842224954e-8,0.0016548957129889686,-4.100692229408898e-5,3.013755445295461e-8,0.0016552417765755723,-4.0878540058739154e-5,3.0023865014476645e-8,0.0016555313813681053,-4.0678744800547455e-5,2.985267628556814e-8,0.0016557394578348126,-4.0442706059349526e-5,2.965356616713717e-8,0.0016558602205119905,-4.0212091256584694e-5,2.9460936650144332e-8,0.0016559066064064827,-4.002467175107929e-5,2.9305507808049016e-8,0.0016559051411805651,-3.990618815504244e-5,2.9207810627581598e-8,0.0016558883208421219,-3.986641734804314e-5,2.9175190181454984e-8,0.0016558871094012825,-3.989970995789232e-5,2.920244204328383e-8,0.0016559255239323612,-3.9988717521732396e-5,2.9274958922300416e-8,0.0016560179934640134,-4.010939295998521e-5,2.9372803922459204e-8,0.0016561690600313398,-4.023567907279301e-5,2.947446435780696e-8,0.0016563744709726966,-4.0343077329543915e-5,2.9559704687070583e-8,0.0016566227473716701,-4.04110569171678e-5,2.9611550177314757e-8,0.0016568967011817656,-4.0424765170366424e-5,2.9617783814663727e-8,0.0016571748725286567,-4.03766005139679e-5,2.9572361572399208e-8,0.001657433277921752,-4.026798280415287e-5,2.9476932544257488e-8,0.0016576481341211992,-4.011122108290574e-5,2.9342315929308953e-8,0.0016578002161897344,-3.993068140079735e-5,2.918927620055278e-8,0.0016578808882250792,-3.97616016784514e-5,2.904730413787855e-8,0.0016578983842147038,-3.964455859766971e-5,2.894986463588264e-8,0.0016578810457861806,-3.961480375790006e-5,2.8925550308629004e-8,0.0016578735047228827,-3.968893422226867e-5,2.8987194852995764e-8,0.0016579242628156493,-3.985510074322592e-5,2.9124022121367424e-8,0.0016580686098759247,-4.007348282468502e-5,2.9302307407495906e-8,0.001658315212483153,-4.028875236110224e-5,2.9475907260284677e-8,0.0016586433615687947,-4.044883713349159e-5,2.9601907087753384e-8,0.0016590113970561915,-4.0520869931719907e-5,2.9653810852602028e-8,0.0016593709065407672,-4.049825768358674e-5,2.9627222749183985e-8,0.0016596801558158162,-4.039855087642855e-5,2.953777937619335e-8,0.0016599128451770951,-4.025546688761349e-5,2.9414208659192474e-8,0.001660061372670357,-4.010894002692455e-5,2.928985879812469e-8,0.0016601355508499426,-3.999598249842553e-5,2.9195098085642385e-8,0.0016601582578794414,-3.994386969418339e-5,2.9151836997324146e-8,0.0016601594601349523,-3.9966285990856224e-5,2.9170608546724392E-08,0.0016601699239930832,-4.006254573710791e-5,2.9250175101477995e-8,0.0016602158041532625,-4.021951416375853e-5,2.9379253301896273e-8,0.0016603149537395255,-4.041536412718664e-5,2.9539614735345927e-8,0.00166047527124585,-4.062408817363606e-5,2.970971399095024e-8,0.0016606948895783432,-4.081978853524619e-5,2.986812443718438e-8,0.0016609636296508186,-4.098007900947471e-5,2.9996308350286483e-8,0.0016612650174455234,-4.108841983012459e-5,3.0080601450579956e-8,0.0016615783991599132,-4.113565076063209e-5,3.01135932639863e-8,0.00166188105966781,-4.11211016170598e-5,3.009513534055636e-8,0.001662150531071203,-4.105352714493535e-5,3.0033097660775586e-8,0.0016623675379770072,-4.095183539624763e-5,2.994381510048298e-8,0.0016625201033940193,-4.0844962473662907e-5,2.98517361833591e-8,0.0016626087554811723,-4.0769446539057265e-5,2.9787188477707118e-8,0.0016626514160071732,-4.0762994359918156e-5,2.9780965991072815e-8,0.0016626848298044925,-4.0853432310140516e-5,2.9855291758414986e-8,0.0016627585180696237,-4.104557297078488e-5,3.001319945286181e-8,0.0016629196343020275,-4.1312810810254054e-5,3.023184378109478e-8,0.0016631936622173485,-4.1601319751516236e-5,3.046615302114082e-8,0.0016635717482644979,-4.1848343784879263e-5,3.0664058183648755e-8,0.0016640132555107746,-4.200576477773202e-5,3.0786057280139574e-8,0.0016644620386205267,-4.205590491481198e-5,3.0818301607812385e-8,0.001664866364125141,-4.201279974388258e-5,3.0773509768777413e-8,0.001665192705554029,-4.1912072651471524e-5,3.068227045198648e-8,0.0016654301308830564,-4.1797159168452974e-5,3.0581274453788686e-8,0.0016655875286445104,-4.170783384293948e-5,3.050359333944092e-8,0.001665687465604892,-4.167319984191924e-5,3.0472896827926416e-8,0.0016657594905155892,-4.170874776273719e-5,3.050124412626773e-8,0.0016658342301060726,-4.181625386895793e-5,3.058929521132896e-8,0.0016659386770511526,-4.1985505643195065e-5,3.0727965256502515e-8,0.0016660927790692734,-4.2197234556937535e-5,3.0900934221248055e-8,0.001666307394327278,-4.242676039351328e-5,3.108761361993264e-8,0.0016665836116936171,-4.2647885737481854e-5,3.1266263776837525e-8,0.0016669133750296294,-4.2836615240290816e-5,3.141699700450582e-8,0.0016672812040082632,-4.29742538784887e-5,3.1524353127941986e-8,0.001667666583854231,-4.3049585079543835e-5,3.157918783389978e-8,0.0016680466219054927,-4.306016694156729e-5,3.1579840829446867e-8,0.0016683988209936053,-4.3012919060955386e-5,3.153264421759085e-8,0.0016687039684606657,-4.2924075892586436e-5,3.145177637443578e-8,0.001668949248977301,-4.281847186208641e-5,3.135844372913255e-8,0.001669131786259909,-4.272775819299064e-5,3.127914542178871e-8,0.0016692623804481766,-4.268653070428464e-5,3.1242302733313314e-8,0.0016693680627836978,-4.272526972232355e-5,3.1272440060728026e-8,0.0016694908319522278,-4.286013130087455e-5,3.138195636848311e-8,0.0016696795079151228,-4.3082236687797025e-5,3.156257050561017e-8,0.0016699738397906113,-4.335263606913009e-5,3.178138863954782e-8,0.0016703860640257925,-4.3610062290433165e-5,3.1987399692878435e-8,0.0016708909850968417,-4.3792311883293744e-5,3.212916881254575e-8,0.0016714333005318656,-4.3861116917503015e-5,3.217546090751692e-8,0.0016719492822700806,-4.3815726814167675e-5,3.2126524444803504e-8,0.0016723897475633752,-4.368843070089595e-5,3.201025739742718e-8,0.0016727324810957033,-4.352796787840965e-5,3.1868119479992646e-8,0.0016729818078562674,-4.338203342372647e-5,3.174024705968066e-8,0.001673160510358554,-4.3286058936851166e-5,3.165596355869807e-8,0.0016733001997954202,-4.325918304672302e-5,3.1630534790235667e-8,0.0016734335563792723,-4.3305040518058526e-5,3.166611119385737e-8,0.0016735892269826305,-4.3414715646800075e-5,3.1754482304429493e-8,0.0016737888324904195,-4.357023755789901e-5,3.188016234879414e-8,0.0016740453537005702,-4.3748057320064645e-5,3.202330368510447e-8,0.0016743624861162748,-4.392241829557162e-5,3.216241408654458e-8,0.0016747348092937828,-4.406860454410632e-5,3.227695616684352e-8,0.0016751487805059524,-4.416603666815915e-5,3.234987839857888e-8,0.001675584637718124,-4.420100590072595e-5,3.236992864406305e-8,0.0016760191120139118,-4.4168658691226686e-5,3.23333885762874e-8,0.0016764286255676625,-4.407397693962139e-5,3.224493873197347e-8,0.0016767926831136699,-4.393169599546051e-5,3.211753662941352e-8,0.001677097237930815,-4.3765093105344423e-5,3.197123217472216e-8,0.00167733777658621,-4.360358105039846e-5,3.183091478114156e-8,0.001677521869398556,-4.347902774846859e-5,3.172303510741116e-8,0.0016776707408900074,-4.342049118287758e-5,3.167116295241453e-8,0.0016778187422698135,-4.3447130391136005e-5,3.1690241873688606e-8,0.0016780089503785252,-4.3560098509420256e-5,3.178016652122048e-8,0.0016782833720448765,-4.373614563117936e-5,3.192080369790514e-8,0.0016786683666438333,-4.3927655024510755e-5,3.207221484054373e-8,0.001679160369115784,-4.407367191046424e-5,3.2183808817329206e-8,0.0016797209875307913,-4.412114009758808e-5,3.221188471697183e-8,0.0016802880403294148,-4.404672142738793e-5,3.213771971384632e-8,0.001680798773740542,-4.386597338792192e-5,3.197519004817064e-8,0.0016812121713359505,-4.362439078443936e-5,3.176318558267004e-8,0.0016815186777889915,-4.337739128303645e-5,3.1548644038694827e-8,0.0016817358173011794,-4.317163234212843e-5,3.137068706839119e-8,0.0016818964774662018,-4.303518866881324e-5,3.125235326029229e-8,0.0016820373053456571,-4.2976515779093504e-5,3.1199916976096325e-8,0.0016821908517579908,-4.298835334932385e-5,3.120645643391533e-8,0.001682381643870257,-4.305295001771544e-5,3.125647495228362e-8,0.0016826248641123465,-4.314669659029766e-5,3.1329875743603594e-8,0.0016829262935964223,-4.3243765750394774e-5,3.1404959032322505e-8,0.0016832827993444842,-4.3319058823132525e-5,3.1460773886099394e-8,0.0016836831808576592,-4.335081474193989e-5,3.147921387142313e-8,0.0016841094761317773,-4.332309858073908e-5,3.144709006843145e-8,0.0016845389965708768,-4.322812581928537e-5,3.1358136502702837e-8,0.0016849472827916928,-4.30680097516396e-5,3.121454317459761e-8,0.001685311817324549,-4.28553785051464e-5,3.102747616737498e-8,0.0016856160259362443,-4.2612465496661675e-5,3.081620600067579e-8,0.0016858529647612876,-4.2368472572295754e-5,3.060568908899294e-8,0.0016860279929869306,-4.2155252212118004e-5,3.042272064814904e-8,0.0016861597397253318,-4.2001707138160697e-5,3.029110352696416e-8,0.001686278802546357,-4.192753075558542e-5,3.0226450956112963e-8,0.0016864236511896307,-4.1937096150845514e-5,3.023131644925384e-8,0.0016866333005143353,-4.20148809990313e-5,3.029172471873377e-8,0.0016869370383114897,-4.212468985170035e-5,3.0376837396555156e-8,0.0016873432300061099,-4.221528826700933e-5,3.0443795692792346e-8,0.0016878316433975797,-4.223370069387507e-5,3.044875659726567e-8,0.0016883549945588567,-4.214339067565662e-5,3.0361907947096335e-8,0.0016888524992501178,-4.193939125212146e-5,3.017996755366323e-8,0.0016892708942925403,-4.165129888299081e-5,2.992858118803242e-8,0.0016895823148465297,-4.1331399559831654e-5,2.9652240492607542e-8,0.0016897900659125485,-4.103474076847829e-5,2.9397395175287495e-8,0.0016899216625505006,-4.080203475990938e-5,2.919799465346154e-8,0.0016900157054978312,-4.0652031392961096e-5,2.906915313908238e-8,0.0016901099208097574,-4.058288462987776e-5,2.900853004866035e-8,0.0016902339270298944,-4.057817378667731e-5,2.900165126974593e-8,0.0016904065626526063,-4.061354355146046e-5,2.9027644312851774e-8,0.0016906360051758417,-4.0661950119559325e-5,2.9063648467584324e-8,0.0016909209995482196,-4.069723028481099e-5,2.9087710885649258e-8,0.0016912522654108416,-4.069653884596306e-5,2.9080721860103752e-8,0.0016916138646757722,-4.064230977992161e-5,2.9028017183053914e-8,0.0016919847467131485,-4.052416230559773e-5,2.8921020015667242e-8,0.0016923408945919195,-4.034078146507427e-5,2.8758904768726176e-8,0.0016926584456100585,-4.0101338254094135e-5,2.854984370404633e-8,0.0016929177886920088,-3.98256830559316e-5,2.8311126828899853e-8,0.001693108077881154,-3.954252987433632e-5,2.8067479641023334e-8,0.0016932310746483276,-3.928519728252996e-5,2.7847258747180767e-8,0.0016933029691601435,-3.908519792267514e-5,2.767686433700739e-8,0.0016933530634665743,-3.896487647791898e-5,2.7574483226122663e-8,0.0016934189419301243,-3.893091195901987e-5,2.7544749748504323e-8,0.0016935386906464923,-3.897054727601237e-5,2.7575867805514548e-8,0.001693741560057379,-3.905203356829756e-5,2.7640332995878002e-8,0.0016940391412425884,-3.9130122676386634e-5,2.7699808677760945e-8,0.0016944196388182435,-3.9156405028759944e-5,2.7713881316001143e-8,0.0016948479443695268,-3.909270277009998e-5,2.7651188701418565e-8,0.0016952732925359264,-3.892369137957591e-5,2.749979593321849e-8,0.0016956435737868081,-3.8663481150373246e-5,2.7272496371780773e-8,0.001695921508217519,-3.835205250275875e-5,2.7003629854952092e-8,0.0016960956761315402,-3.804202367397545e-5,2.67378143191e-8,0.0016961815319577094,-3.778160361537539e-5,2.6515529524935576e-8,0.001696213032473906,-3.7601416121365983e-5,2.6362069074866936e-8,0.0016962301457196613,-3.750973613700963e-5,2.628370233701135e-8,0.0016962680770975457,-3.749551816840239e-5,2.627045669394839e-8,0.0016963512376621233,-3.753538910232288e-5,2.63021853253086e-8,0.0016964917453452192,-3.7600818583413475e-5,2.635465438290942e-8,0.001696690651419292,-3.766350660714986e-5,2.6404007688425848e-8,0.001696940137771745,-3.769874102950349e-5,2.642947829630893e-8,0.0016972256658882062,-3.7687335396604675e-5,2.6414948818137022e-8,0.0016975277902204365,-3.761694740849289e-5,2.635007890531258e-8,0.001697823895555182,-3.7483365373189244e-5,2.6231474474216885e-8,0.0016980904064073249,-3.729186542931282e-5,2.6063916854335785e-8,0.0016983059629982868,-3.705818431813839e-5,2.5861193564983613e-8,0.00169845567523588,-3.6808209557159376e-5,2.5645733638452276e-8,0.0016985358748413822,-3.6575286342219624e-5,2.544614117888997e-8,0.0016985578725676185,-3.6394393189292205e-5,2.5292069524213555e-8,0.0016985486004877865,-3.629367901585675e-5,2.5206946956193076e-8,0.001698546470920179,-3.628561471787852e-5,2.5200532434859682e-8,0.0016985925376170278,-3.6361141746669543e-5,2.5264171502710526e-8,0.0016987192823167937,-3.648970911878939e-5,2.537113473313952e-8,0.0016989407603901555,-3.66260131869023e-5,2.548261022146134e-8,0.0016992475797464068,-3.672165020583402e-5,2.5557724392811732e-8,0.0016996084606618878,-3.673811638230782e-5,2.5564517650592807e-8,0.001699977956475142,-3.6657310285023185e-5,2.5488638588697726e-8,0.0017003082070326627,-3.648654916289649e-5,2.5337305501061796e-8,0.001700561508238771,-3.625653060246809e-5,2.5137301531646965e-8,0.0017007199892369825,-3.601259358681587e-5,2.492738326789755e-8,0.0017007892677775634,-3.580192599678626e-5,2.474739066190967e-8,0.0017007949978842718,-3.566104751616369e-5,2.462773297309177e-8,0.0017007740285271689,-3.560774970729352e-5,2.4582760104628268e-8,0.001700763881614479,-3.5639540723169225e-5,2.4609678123756305e-8,0.0017007942876682992,-3.5737747088271245e-5,2.4692199666377635e-8,0.0017008827935677405,-3.5874468764077714e-5,2.48064931342209e-8,0.0017010342865269056,-3.601946403066804e-5,2.4926953335125145e-8,0.0017012429683338664,-3.614526778038245e-5,2.503041713192252e-8,0.0017014952046849267,-3.623023427960677e-5,2.5098644185563178e-8,0.001701772238022168,-3.626002631665762e-5,2.5119562344499273e-8,0.0017020524196195597,-3.6228338899696296e-5,2.5087946189913077e-8,0.0017023131682198593,-3.613749747676565e-5,2.500601481098576e-8,0.0017025331952084945,-3.599911636755302e-5,2.488403054979358e-8,0.001702695545569224,-3.583443484893609e-5,2.4740519688495516e-8,0.001702791658995604,-3.567341761960704e-5,2.4601345097724025e-8,0.001702825905263925,-3.5551336305842663e-5,2.449660803475595e-8,0.0017028188818827854,-3.550180632355494e-5,2.4454604213756933e-8,0.001702806735149731,-3.5546798682885895e-5,2.4493348244526906e-8,0.0017028341827005904,-3.5686793861779424e-5,2.4612368548798255e-8,0.0017029417119942861,-3.589622192692521e-5,2.4789084250634145e-8,0.001703151464359933,-3.612826882154989e-5,2.4983140816697334e-8,0.0017034584180842351,-3.632857896050061e-5,2.514822835935455e-8,0.0017038313132765339,-3.645226816286234e-5,2.5246595649292e-8,0.0017042226379164888,-3.647699395454146e-5,2.5260079820686068e-8,0.0017045828447247262,-3.640761249596701e-5,2.5193854756660187e-8,0.0017048733046878682,-3.627237682470769e-5,2.5072903100127402e-8,0.0017050744960167964,-3.611354589471979e-5,2.4933747465570844e-8,0.0017051883610562926,-3.597597816658294e-5,2.4814589910546375e-8,0.0017052354342512147,-3.5896752180398834e-5,2.4746512664333185e-8,0.0017052482576193312,-3.589793749996182e-5,2.4747526264296278e-8,0.001705263072666433,-3.598363726072869e-5,2.482032549880074e-8,0.0017053119227668128,-3.614137236019604e-5,2.4953695706256513e-8,0.0017054169711461474,-3.6346798808851755e-5,2.5126630491637535e-8,0.001705587948875609,-3.656997064057401e-5,2.5313627491764613e-8,0.0017058225445119196,-3.678132058142517e-5,2.548965965479151e-8,0.0017061087821257628,-3.69561651974611e-5,2.563388881603951e-8,0.0017064282269366776,-3.70773600928232e-5,2.5731871018470053e-8,0.0017067591018042412,-3.713639521195745e-5,2.5776518819360373e-8,0.0017070789070781516,-3.71335783856623e-5,2.576833424327725e-8,0.001707366647808429,-3.7077896034809675e-5,2.5715344204894712e-8,0.0017076050669122245,-3.6986775316050295e-5,2.563286430776859e-8,0.0017077833482693745,-3.6885519284883346e-5,2.5542879446377526e-8,0.0017079005422884115,-3.6805662765103294e-5,2.547244983570222e-8,0.0017079692563718653,-3.678101653653675e-5,2.545019000338502e-8,0.0017080179220300188,-3.684031594380135e-5,2.549999137370553e-8,0.0017080887479602191,-3.699691368462634e-5,2.5632392147724558e-8,0.001708228641281455,-3.723898589582162e-5,2.583648649016691e-8,0.0017084735851781347,-3.752657719115359e-5,2.607763848747086e-8,0.0017088326289339622,-3.7800822890985845e-5,2.6305464895935834e-8,0.0017092809717665692,-3.800389880699946e-5,2.6470864658603684e-8,0.001709767617820864,-3.810010719756817e-5,2.6543979991628234e-8,0.0017102337850382358,-3.8086965178193554e-5,2.6523588534275293e-8,0.0017106319934249428,-3.799214504651016e-5,2.6434316445958196e-8,0.0017109375331463164,-3.786074079930412e-5,2.6315481437475767e-8,0.0017111503518974585,-3.774050858751181e-5,2.6208213356204093e-8,0.0017112901426587356,-3.767043065840216e-5,2.6145574168089167e-8,0.001711388473927356,-3.767435097338324e-5,2.6147233879245078e-8,0.0017114807478860903,-3.7759148181293965e-5,2.6218181852708225e-8,0.0017115993915441882,-3.791616629237784e-5,2.6350243451075947e-8,0.0017117688340202747,-3.812478479964005e-5,2.6525321161408846e-8,0.0017120025462314225,-3.8357269218783055e-5,2.671957407701288e-8,0.0017123022368902155,-3.858401705662783e-5,2.690781030939024e-8,0.0017126589667248331,-3.8778319536625255e-5,2.706742096037333e-8,0.0017130556713426438,-3.892000575518932e-5,2.718139609955358e-8,0.0017134704463890348,-3.8997637220543705e-5,2.72401837338603e-8,0.0017138799079658143,-3.900926090925543e-5,2.7242381927571813e-8,0.0017142621560916798,-3.896209930041389e-5,2.719452965369347e-8,0.0017145992769997747,-3.887164408049795e-5,2.7110327165076998e-8,0.0017148795732618073,-3.876038090260755e-5,2.7009443934541433e-8,0.0017150997739135154,-3.8656079592503165e-5,2.691587804537622e-8,0.0017152674011576832,-3.858919935674702e-5,2.6855564023675893e-8,0.001715402930080424,-3.858850645778573e-5,2.68525620088811e-8,0.0017155403030105689,-3.867411814540851e-5,2.6923223505940072e-8,0.001715723354598753,-3.884849496986257e-5,2.706875788258036e-8,0.0017159957908326042,-3.9088518326831626e-5,2.7268754434345864e-8,0.0017163851403779347,-3.9344697300168935e-5,2.748066663980295e-8,0.001716886993958065,-3.955318428218216e-5,2.7650053898035193e-8,0.0017174602847125158,-3.965909042471542e-5,2.773040269966326e-8,0.001718040134972025,-3.963938085916244e-5,2.770265841257851e-8,0.0017185625897166842,-3.9511228867599055e-5,2.758236823583223e-8,0.0017189868062355465,-3.932167724591736e-5,2.7410713552494807e-8,0.001719303790073166,-3.912724285345024e-5,2.7236765021706585e-8,0.0017195315916373054,-3.897569321704473e-5,2.710159348901865e-8,0.0017197039490144403,-3.889639604552238e-5,2.7029929542711243e-8,0.001719859026622647,-3.889874932274322e-5,2.7028998797406246e-8,0.0017200313178398767,-3.897534491821806e-5,2.7091549749431207e-8,0.0017202469671751624,-3.910684938799904e-5,2.7200319928931065e-8,0.001720521602018453,-3.926695176135516e-5,2.7332412797781222e-8,0.001720859794259045,-3.942689817955544e-5,2.7463158757262513e-8,0.001721255728863236,-3.955955466122989e-5,2.756947544016638e-8,0.0017216948873827532,-3.9642868900642176e-5,2.7632707506931933e-8,0.001722156569161592,-3.966254350579579e-5,2.764085344336467e-8,0.0017226170439005363,-3.9613697538888915e-5,2.7590003469533287e-8,0.001723052976870324,-3.9501301872358064e-5,2.7484764624405265e-8,0.0017234446600947672,-3.933941901930363e-5,2.733763268972299e-8,0.001723778754377761,-3.914951517199835e-5,2.7167486552635708e-8,0.0017240504576373702,-3.8958063040786535e-5,2.6997386666773607e-8,0.0017242650711087881,-3.8793531002493264e-5,2.6851810256787167e-8,0.0017244389431611393,-3.868270733259092e-5,2.675337383241879e-8,0.0017245995113033862,-3.864602832841346e-5,2.671885005626151e-8,0.0017247834536315045,-3.8691681327300336e-5,2.6754311849929e-8,0.0017250313802367769,-3.880929377612953e-5,2.6850034141866425e-8,0.001725377842565471,-3.896581169015178e-5,2.697723630726428e-8,0.0017258375470063556,-3.910800396460535e-5,2.7090318371162557e-8,0.0017263930836693708,-3.917572346874251e-5,2.7138107085967308e-8,0.0017269933872087041,-3.912436180795919e-5,2.7082925689746156e-8,0.0017275689865215494,-3.8945638522437385e-5,2.691835379492017e-8,0.0017280585048235183,-3.86727214245852e-5,2.6673635556659343e-8,0.001728431073422244,-3.836534884152783e-5,2.6400818438587404e-8,0.0017286923868734853,-3.808504387510162e-5,2.61532106623058e-8,0.0017288748816655678,-3.787530232705404e-5,2.5968120288942417e-8,0.0017290217154868146,-3.7754199534558863E-05,2.5860493154658515e-8,0.0017291734675064128,-3.771726995413944e-5,2.582562501534354e-8,0.0017293607820238672,-3.7744848247661723E-05,2.584579636728525e-8,0.001729602000315515,-3.780948874960963e-5,2.5896883802857644e-8,0.001729903599395464,-3.788165973355425e-5,2.595331727889163e-8,0.0017302617181777903,-3.7933690493989186e-5,2.5991389794231897e-8,0.0017306640141175572,-3.794259510943676e-5,2.5991547940454676e-8,0.001731091755867424,-3.789224556048095e-5,2.594015958103042e-8,0.001731522255539111,-3.7775051882364856e-5,2.5830937167328825e-8,0.0017319317604426708,-3.7593037290670407e-5,2.5665905426726304e-8,0.0017322987686243735,-3.735795299004614e-5,2.545555029736884e-8,0.0017326074067128012,-3.709011144855787e-5,2.5217806685687195e-8,0.0017328503457029842,-3.6815919057722917e-5,2.4975834819967113e-8,0.001733030801250284,-3.6564297546596944e-5,2.4754770932095832e-8,0.001733163245050693,-3.636230112525841e-5,2.4577788776660804e-8,0.0017332725692263016,-3.6230386059595666e-5,2.446195888578073e-8,0.001733391561335409,-3.6177777041230204e-5,2.4414354594100277e-8,0.0017335564073636222,-3.619837183913728e-5,2.4428778625296542e-8,0.001733799814146551,-3.626816379255833e-5,2.4483858210644657e-8,0.0017341419144584454,-3.634606741287226e-5,2.454398795466479e-8,0.0017345806750870597,-3.638048933612316e-5,2.4565021790145197e-8,0.0017350858869240476,-3.632295309658755e-5,2.4505843202086038e-8,0.0017356024788424108,-3.614624025006184e-5,2.4343764994910206e-8,0.0017360663216553012,-3.585874629062718e-5,2.408675934782713e-8,0.0017364275421104804,-3.550486845228883e-5,2.377374351553505e-8,0.001736668888599713,-3.514850340937432e-5,2.34602712311622e-8,0.001736808661045457,-3.4848567953173e-5,2.3197265336036242e-8,0.001736888544939611,-3.464037865199596e-5,2.301485336433552e-8,0.0017369558513605297,-3.4530440416808935e-5,2.29179595201377e-8,0.001737049707092597,-3.4502354376221574e-5,2.289165624475731e-8,0.0017371947516276504,-3.4526982344086895e-5,2.2910199010581445e-8,0.0017374008073448293,-3.4571512886728264e-5,2.2944984052831473e-8,0.001737665467048844,-3.460545560147143e-5,2.2969695297045837e-8,0.001737977290689824,-3.460390307791772e-5,2.296299541437974e-8,0.0017383186141002541,-3.454918032334136e-5,2.290982677063709e-8,0.0017386679295325906,-3.4431804356590167e-5,2.2802188582601254e-8,0.0017390021734525031,-3.42511906097866e-5,2.2639776047910924e-8,0.0017392992945751758,-3.40160914722638e-5,2.243042545250072e-8,0.0017395413117880889,-3.374434814309473e-5,2.2189933916874547e-8,0.0017397176600680104,-3.346135952529788e-5,2.1940688488459516e-8,0.0017398281621878566,-3.319689225605055e-5,2.170877243418754e-8,0.0017398847366847004,-3.2980307378858836e-5,2.1519663391740078e-8,0.00173991100205662,-3.283480466826047e-5,2.1393128136041958e-8,0.0017399392899709579,-3.27718231350248e-5,2.1338379242105724e-8,0.00174000521831946,-3.278698042141254e-5,2.1350723083240454e-8,0.001740140572588363,-3.285870325852261e-5,2.1410652793135758e-8,0.0017403655886877377,-3.295034303669861e-5,2.1485963701877946e-8,0.0017406820927880144,-3.301629939579607e-5,2.153721791335664e-8,0.0017410695269251995,-3.301209684177935e-5,2.152643905078453e-8,0.001741486310794703,-3.290702867540473e-5,2.1427864745405244e-8,0.0017418784545159788,-3.269589869418132e-5,2.1237862433750336e-8,0.0017421948525763043,-3.2404476839655194e-5,2.097945465702013e-8,0.001742404370709457,-3.208389090653782e-5,2.069734831489266e-8,0.001742506671572139,-3.179415040864402e-5,2.0443603476147352e-8,0.0017425307722198473,-3.158389373995162e-5,2.0260073766504838e-8,0.0017425223974869423,-3.147622681133658e-5,2.0166207874633754e-8,0.0017425275508909542,-3.146622368211866e-5,2.0157058325399752e-8,0.0017425801811898768,-3.152827253738807e-5,2.020986020759265e-8,0.0017426972860252556,-3.162719052466486e-5,2.02938080720638e-8,0.001742880085460341,-3.172780363660379e-5,2.0378372619537326e-8,0.001743118076178938,-3.180084546028723e-5,2.0438317988914532e-8,0.0017433934077427334,-3.1825558838409014e-5,2.045583270732787e-8,0.0017436844082488409,-3.179033969714021e-5,2.0421013873564265e-8,0.001743968178512343,-3.169263001235832e-5,2.0331783624667846e-8,0.0017442227209409098,-3.153871728518193e-5,2.0193782525411485e-8,0.0017444291701622036,-3.134350069999404e-5,2.002022746940685e-8,0.0017445744879534223,-3.112978763186553e-5,1.9831294365844262e-8,0.0017446545474839863,-3.092639446856581e-5,1.9652370870985962e-8,0.0017446769299296102,-3.0764373350770444e-5,1.9510621046903156e-8,0.0017446621867443558,-3.067120727891532e-5,1.9429795770389297e-8,0.001744642159515886,-3.066382603124781e-5,1.9424111620866493e-8,0.0017446545782597647,-3.074243219545489e-5,1.9492972810802038e-8,0.0017447345609175441,-3.088764647827402e-5,1.961870511808151e-8,0.0017449051754598907,-3.106281392238331e-5,1.9768826171514667e-8,0.0017451700230479688,-3.122163105108318e-5,1.9902887093021913e-8,0.001745510408947374,-3.1319374667683715e-5,1.9982307573413395e-8,0.001745888357283682,-3.1324766347923475e-5,1.998060209584599e-8,0.0017462551360621196,-3.122919694479231e-5,1.989118907219179e-8,0.0017465634988662125,-3.105046157655002e-5,1.9730384470556232e-8,0.001746780545164631,-3.0829192817083005e-5,1.9534083265630877e-8,0.0017468971763283654,-3.06181089004315e-5,1.9348284579479396e-8,0.0017469304559974707,-3.0466979567041213e-5,1.921600927524104e-8,0.001746917542182514,-3.0408580265584186e-5,1.916519343229281e-8,0.001746903536584843,-3.0450937289348743e-5,1.9202135362128732e-8,0.0017469283478326418,-3.057824727716383e-5,1.931250208156185e-8,0.0017470175401144699,-3.075870969388561e-5,1.9468283092315117e-8,0.0017471793662891689,-3.095489208974001e-5,1.9636835355944387e-8,0.00174740696584924,-3.1132521919019314e-5,1.978845734405289e-8,0.0017476831047323403,-3.126577909856488e-5,1.9900875698021727e-8,0.0017479851225330183,-3.1339285687671686e-5,1.9960887050540934e-8,0.0017482888771933986,-3.134799753916344e-5,1.9964247391127438e-8,0.001748571500534339,-3.1296247023240655e-5,1.9914888607216414e-8,0.0017488134063673208,-3.1196725784627565e-5,1.9824099003596076e-8,0.0017490001909731922,-3.106955308858083e-5,1.970973106837139e-8,0.0017491248720657058,-3.0941022082626086e-5,1.9595042768266226e-8,0.0017491904664698418,-3.084128927975832e-5,1.9506546090950694e-8,0.0017492122725144203,-3.080019758367981e-5,1.9470218613974216e-8,0.0017492184473760612,-3.084086291599031e-5,1.950583763271849e-8,0.0017492470171063378,-3.097194995726486e-5,1.9620297100766168e-8,0.0017493381646387358,-3.1181363894115793e-5,1.980227981843363e-8,0.0017495228601829887,-3.143510381205071e-5,2.0021485851797534e-8,0.0017498116793050868,-3.168386290175472e-5,2.023458425088819e-8,0.0017501889553554505,-3.18764773563137e-5,2.039704390946832e-8,0.001750615655745262,-3.197543249573554e-5,2.0476649055390935e-8,0.0017510402683068693,-3.1968199999134966e-5,2.0463276536587624e-8,0.0017514133531797574,-3.187031880307763e-5,2.037138563020928e-8,0.0017517005273633118,-3.1719998107685436e-5,2.0235063634656074e-8,0.001751890219662361,-3.156694813316782e-5,2.009806183335921e-8,0.0017519948081852045,-3.1459214757831945e-5,2.0002203745109712e-8,0.0017520456413406555,-3.14316280501743e-5,1.99773642676767e-8,0.001752083843670919,-3.149863525213701e-5,2.0035412948970665e-8,0.0017521497040240116,-3.1652918673865666e-5,2.0169255510395947e-8,0.0017522736069611874,-3.186951297035694e-5,2.0356620338662876e-8,0.0017524707370152176,-3.211356229077129e-5,2.056690037038114e-8,0.0017527403103441905,-3.234896981308914e-5,2.076865466262888e-8,0.0017530684808992239,-3.254545176213017e-5,2.0935651692450514e-8,0.0017534331318351181,-3.2682714956734884e-5,2.1050408448247448e-8,0.0017538088119477358,-3.275180452227584e-5,2.110531752462392e-8,0.0017541707526388716,-3.275447431229004e-5,2.1102114748483773e-8,0.0017544976901405082,-3.270162706579011e-5,2.105056824283674e-8,0.0017547738024637697,-3.2611589026689284e-5,2.096699993899653e-8,0.0017549902985381242,-3.250844445279376e-5,2.0872790992964694e-8,0.001755147084288628,-3.242014951493518e-5,2.0792620166438958e-8,0.001755254570490484,-3.2375793594230804e-5,2.0751927960372814e-8,0.001755335063281145,-3.2401220502996406e-5,2.0772996896363735e-8,0.0017554223357314845,-3.251259859283147e-5,2.0869356621329078e-8,0.0017555573977173214,-3.2708863724273736e-5,2.1039332104000612e-8,0.0017557790984082053,-3.29660727723672e-5,2.126132814313656e-8,0.0017561108323753565,-3.3238262436040336e-5,2.1494763264115556e-8,0.0017565485849542516,-3.346811995275699e-5,2.1689479904005575e-8,0.0017570576145160576,-3.360552772869162e-5,2.1801953478252693e-8,0.001757581785070488,-3.362585143779291e-5,2.1811245999041253e-8,0.0017580620722044517,-3.353851148587489e-5,2.1726427797049774e-8,0.001758455202278241,-3.3382035778471196e-5,2.158208310470156e-8,0.0017587444079113072,-3.320959575010596e-5,2.1425399176948597e-8,0.0017589399770165945,-3.307263661221911e-5,2.130160656072588e-8,0.0017590722808459125,-3.3008502295315075e-5,2.1243072677899854e-8,0.001759181556547813,-3.3034286998855964e-5,2.1264051244620618e-8,0.0017593078653479616,-3.314644102862432e-5,2.1360602034657684e-8,0.0017594831921096522,-3.332452486865661e-5,2.1514143545573805e-8,0.0017597265437465275,-3.353738875474003e-5,2.1697021326259336e-8,0.001760042245970357,-3.3750244753001815e-5,2.1878713640531822e-8,0.001760421146334321,-3.393124357669487e-5,2.2031497920959415e-8,0.0017608439638752132,-3.405644801825657e-5,2.2134681640893213e-8,0.0017612857471203435,-3.411264048046515e-5,2.2176972713998292e-8,0.0017617204091223166,-3.409797973084421e-5,2.2157031793999206e-8,0.0017621245438929386,-3.402096746414191e-5,2.208259287114386e-8,0.0017624801775086999,-3.3898450706873454e-5,2.1968740632231774e-8,0.0017627765982876126,-3.3753300304850276e-5,2.183585863215288e-8,0.001763011621842634,-3.3612016549370004e-5,2.1707446371806972e-8,0.0017631925713161728,-3.350214912888116e-5,2.1607729651469524e-8,0.0017633370417948848,-3.344913871513708e-5,2.1558783250075647e-8,0.0017634730174059953,-3.347197967528787e-5,2.1576714714329268e-8,0.0017636371116576798,-3.357742597786236e-5,2.1666704084487572e-8,0.0017638691979690627,-3.3753723774377576e-5,2.181772916999189e-8,0.0017642023031790117,-3.396680513750332e-5,2.1999445627985694e-8,0.0017646491667109299,-3.4163476660183754e-5,2.2165086343053056e-8,0.0017651911849654452,-3.428501454789286e-5,2.226334653764835e-8,0.001765778160698935,-3.428858702670496e-5,2.2257091907866984e-8,0.0017663432093342334,-3.416606996623403e-5,2.213983656780172e-8,0.0017668269543614896,-3.3948415208319496e-5,2.193955489711035e-8,0.001767197842766506,-3.369259112538415e-5,2.17070724834961e-8,0.0017674586193811824,-3.34596154530708e-5,2.1496498412280247e-8,0.001767639060592299,-3.329574652596208e-5,2.1348468166328244e-8,0.0017677821871205088,-3.3223440312985864e-5,2.1282180173486558e-8,0.0017679311822968995,-3.324154570836546e-5,2.129578103953367e-8,0.001768120512436396,-3.333086353608994e-5,2.1371561635770116e-8,0.0017683715270797181,-3.346142626072527e-5,2.148260408851196e-8,0.0017686914318105862,-3.3599409128902524e-5,2.1598953117881766e-8,0.0017690744739801523,-3.371291615094851e-5,2.1692652330809286e-8,0.0017695045695388376,-3.3776430454713476e-5,2.1741529840179073e-8,0.0017699588242402324,-3.3773791444695706e-5,2.1731694812881347e-8,0.0017704114732510778,-3.369964876976124e-5,2.1658752122008647e-8,0.0017708378094016797,-3.355943690940463e-5,2.152778106353521e-8,0.0017712176390383754,-3.336799684118138e-5,2.1352151053456795e-8,0.0017715378651225137,-3.314720089247531e-5,2.1151437607701027e-8,0.0017717941126926234,-3.2923077927578334e-5,2.0948840418387312e-8,0.0017719915599731899,-3.272273093629134e-5,2.0768364307715262e-8,0.0017721450953806894,-3.257108279253322e-5,2.063183815712094e-8,0.001772278789586462,-3.248736044869667e-5,2.0555760321616602e-8,0.0017724243969323124,-3.2481099228891417e-5,2.0547838756955484e-8,0.0017726180377305497,-3.2547672204280884e-5,2.06032360891902e-8,0.001772893902096436,-3.26643881516983e-5,2.070137445010743e-8,0.0017732745145420026,-3.278970120097843e-5,2.0805422495871913e-8,0.0017737592672930375,-3.286910117515717e-5,2.0867510935645095e-8,0.0017743165104114895,-3.285007607212869e-5,2.0841794381781585e-8,0.0017748868641271837,-3.27030730663727e-5,2.0702786663879134e-8,0.0017754014530360297,-3.2437768348831866e-5,2.0459662686927267e-8,0.0017758080743716612,-3.2102608481630945e-5,2.015584789108212e-8,0.0017760903595036206,-3.17656634260758e-5,1.985200104905266e-8,0.0017762693117928238,-3.1488255206219554e-5,1.9602496536206447e-8,0.0017763894591366236,-3.13062590108772e-5,1.9438747273234566e-8,0.001776500414190258,-3.12255836885439e-5,1.9365283650061506e-8,0.0017766430268873303,-3.1228419406428315e-5,1.9365541425495753e-8,0.0017768429247380117,-3.128342719222774e-5,1.9411160162745227e-8,0.0017771097947912773,-3.1355028823638904e-5,1.9470365609482324e-8,0.0017774396800211817,-3.141000926638304e-5,1.9513809181670135e-8,0.0017778182926467716,-3.142162035464175e-5,1.951808140830944e-8,0.0017782244717445747,-3.137198226709649e-5,1.946769186203101e-8,0.0017786336024299082,-3.12533185341731e-5,1.9356066032986675e-8,0.0017790209705546684,-3.1068226775794e-5,1.9185763398043137e-8,0.0017793650121143564,-3.08290205222032e-5,1.8967926769402895e-8,0.001779650296646995,-3.055604937514018e-5,1.8720829744334336e-8,0.0017798698743530228,-3.0274995636721267e-5,1.846747256260845e-8,0.001780026632235612,-3.001344158238894e-5,1.8232467517967285e-8,0.0017801335374979842,-2.9797089846618077e-5,1.8038579085288705e-8,0.0017802127450977066,-2.964590951538579e-5,1.7903218620709243e-8,0.0017802935187865058,-2.9570467972433672e-5,1.783518762572123e-8,0.0017804088777299578,-2.9568714404354944e-5,1.7831942719272197e-8,0.0017805907080136712,-2.9623577448738986e-5,1.7877681205500904e-8,0.0017808630276179797,-2.97023326731302e-5,1.7943009994474517e-8,0.0017812337934054229,-2.97595557883807e-5,1.7987695659313328e-8,0.0017816872967592035,-2.9745687070046982e-5,1.7968220015004007e-8,0.0017821813976015835,-2.962172070135213e-5,1.7850629717166458e-8,0.0017826548299887984,-2.9376324177287026e-5,1.762553130680372e-8,0.0017830461959892749,-2.903634032102028e-5,1.731731488754778e-8,0.0017833176117902473,-2.866124927995671e-5,1.6979208783705445e-8,0.001783469533852475,-2.832122375637814e-5,1.6673724822837606e-8,0.0017835376035968266,-2.80706105762117e-5,1.6448993998207882e-8,0.0017835749164607615,-2.793168172891396e-5,1.6324306949224888e-8,0.0017836317390693452,-2.7894493168831586e-5,1.6290136262871556e-8,0.0017837425116183111,-2.7927737072698468e-5,1.6318029727125984e-8,0.0017839222251040216,-2.7991952248573566e-5,1.6372552649405453e-8,0.0017841690180765415,-2.804960543379875e-5,1.6420305148628225e-8,0.0017844690921453375,-2.8070762770376914e-5,1.6434881896134044e-8,0.001784801494145308,-2.803540319002629e-5,1.6398785045025665e-8,0.0017851419554334824,-2.7933929717305372e-5,1.6303760303012625e-8,0.0017854659718042635,-2.7766907604290468e-5,1.6150522430904983e-8,0.0017857515136427459,-2.7544366750350456e-5,1.5948164497142894e-8,0.0017859816002243757,-2.7284609584283965e-5,1.571315251966609e-8,0.0017861467536977667,-2.7012260273114013e-5,1.5467614316026404e-8,0.0017862470230057806,-2.6755286369400636e-5,1.5236648496569402e-8,0.0017862930134701384,-2.654104265296623e-5,1.504470406978934e-8,0.001786305424195102,-2.6391773125555355e-5,1.491146539228525e-8,0.0017863128449208082,-2.6320220335777346e-5,1.4847885035371189e-8,0.0017863478278571186,-2.632612309632168e-5,1.4853112441925018e-8,0.0017864415524204687,-2.639440009895842e-5,1.491303463720827e-8,0.0017866176433893105,-2.649564870787032e-5,1.500094022968379e-8,0.0017868858723667914,-2.6589505322540724e-5,1.5080702406757717e-8,0.0017872368982414784,-2.66314436018206e-5,1.5112903973863852e-8,0.0017876399981771522,-2.6583121415397484e-5,1.5063969741293373e-8,0.0017880463839678022,-2.6424855833963814e-5,1.4917086903880453e-8,0.0017884001103203367,-2.61662566626825e-5,1.4681479769128718e-8,0.0017886554421320897,-2.5848825556468653e-5,1.439459563665528e-8,0.0017887942451537537,-2.5535601758596886e-5,1.4112816495281188e-8,0.0017888338091817063,-2.5289736988679483e-5,1.3892330893168733e-8,0.0017888195185604239,-2.515213106178181e-5,1.3769205429052592e-8,0.0017888063464290775,-2.5129846263159923e-5,1.3749151498984439e-8,0.0017888398156686227,-2.5199537269306553e-5,1.3810764966794239e-8,0.0017889451574657782,-2.5320670226036306e-5,1.391749936516575e-8,0.0017891262814678304,-2.544988601042015e-5,1.4030567902762325e-8,0.0017893708634015488,-2.5550922719877188e-5,1.4117760285831568e-8,0.0017896570726811836,-2.5599109255723216e-5,1.4157333008626661e-8,0.0017899592671993573,-2.5582042811262578e-5,1.4138489270469296e-8,0.0017902519438446774,-2.5498478260559e-5,1.4060321791036643e-8,0.0017905123629933307,-2.535677868794753e-5,1.3930440496755607e-8,0.0017907225488373376,-2.51734072821892e-5,1.3763682625522863e-8,0.0017908711693659085,-2.4971322438834654e-5,1.3580725771725944e-8,0.0017909554371954345,-2.4777821665357153e-5,1.3406151734326352e-8,0.0017909827283962571,-2.462135499749847e-5,1.3265522508586063e-8,0.001790971202300491,-2.4527148765017287e-5,1.3181360162542386e-8,0.0017909485628708425,-2.4512064252896147e-5,1.316846906372442e-8,0.0017909483769799933,-2.457975629539259e-5,1.3229610662378395e-8,0.0017910040460442844,-2.4717652977466054e-5,1.3352913035006776e-8,0.001791141441592685,-2.4897216452611835e-5,1.3512291120867038e-8,0.0017913719494893788,-2.5078198784446382e-5,1.367144672572904e-8,0.0017916878464235458,-2.5216509648907783e-5,1.3791025050547342e-8,0.0017920615866127356,-2.5274345945545365e-5,1.3837668829362787e-8,0.0017924499408709217,-2.5230505604992228e-5,1.3793113821811035e-8,0.001792803043549295,-2.508822447015411e-5,1.3660997294053245e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json new file mode 100644 index 0000000..bf89351 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":16000,"numberOfSamples":1000,"samples":[0.0017930770944964171,-2.487756201187732e-5,1.3468791504217692e-8,0.0017932476264231187,-2.464987080068864e-5,1.3262714904077391e-8,0.0017933184724985877,-2.446409956071231e-5,1.3095425337680572e-8,0.0017933216314600794,-2.436869143477916e-5,1.3009865564682467e-8,0.0017933067138776958,-2.438639601001157e-5,1.3025800857085489e-8,0.0017933242278720884,-2.450889654783832e-5,1.3135191695059903e-8,0.0017934104016406212,-2.470298517826634e-5,1.330788790362845e-8,0.0017935796118112995,-2.4923857068963115e-5,1.35036193070344e-8,0.0017938254296263332,-2.512860398380717e-5,1.3684062401894767e-8,0.001794127049257825,-2.5285096932882215e-5,1.3820701756483629e-8,0.0017944568919538132,-2.537530987356056e-5,1.389769075082024e-8,0.0017947867111250417,-2.5394724503292413e-5,1.3911234845185292e-8,0.0017950914943699093,-2.5349982163249467e-5,1.3867468677974076e-8,0.0017953516485814604,-2.5256290869559507e-5,1.3780165902829643e-8,0.0017955543110713956,-2.513520274015715e-5,1.3668792904120013e-8,0.0017956944918898108,-2.501264398241291e-5,1.3556752559378335e-8,0.0017957763330320648,-2.4916631576514276e-5,1.3469287614057573e-8,0.0017958142078399008,-2.487403171878831e-5,1.343048298157746e-8,0.0017958328475770424,-2.4906014603702265e-5,1.3459107884232579e-8,0.001795865353512456,-2.5022541802827092e-5,1.3563657130380593e-8,0.001795948122041468,-2.521726303763574e-5,1.3737855679584164e-8,0.0017961127345561176,-2.546517299188524e-5,1.395871521848886e-8,0.0017963766324439365,-2.572537619201675e-5,1.4189187885469435e-8,0.0017967359302593923,-2.5949711291697144e-5,1.4386024761031048e-8,0.0017971637506210216,-2.6095329969824996e-5,1.451109103127541e-8,0.0017976155937020869,-2.6137143168968956e-5,1.4542469045381444e-8,0.0017980404371389018,-2.607573723966647e-5,1.4481422712615806e-8,0.001798394095120732,-2.5938065908348892e-5,1.4352832525648934e-8,0.0017986508156540284,-2.5770774714917362e-5,1.4199014670934582e-8,0.0017988099091846071,-2.5628118914854457e-5,1.4068743101640252e-8,0.0017988956039585806,-2.555773604555096e-5,1.4004458068040699e-8,0.0017989500158965364,-2.558822796060149e-5,1.4031230788508505e-8,0.0017990211621026053,-2.5722340085414784e-5,1.415084222610123e-8,0.0017991498357205768,-2.593791853046823e-5,1.4342850551324464e-8,0.0017993597382745207,-2.6195968610161597e-5,1.4571956673982097e-8,0.0017996538157950808,-2.645239065855816e-5,1.4798559267271849e-8,0.0018000169294873425,-2.666894130169837e-5,1.498852497549383e-8,0.0018004224996779246,-2.6820193009237008e-5,1.5119328433877708e-8,0.0018008399579285909,-2.6895709367472842e-5,1.5181911626012463e-8,0.0018012407279650508,-2.6898643187987404e-5,1.5179375808053418e-8,0.0018016019580566775,-2.6842624017871885e-5,1.512418529733506e-8,0.0018019083507358257,-2.6748422125539742e-5,1.503519386765796e-8,0.0018021529000758112,-2.664111066735776e-5,1.4935106313335826e-8,0.0018023373010458653,-2.654770620791294e-5,1.4848328300519829e-8,0.0018024724205052492,-2.6494772143160663e-5,1.4798742963175621e-8,0.0018025786668415908,-2.6505317999914305e-5,1.4806850211476605e-8,0.0018026854955645365,-2.659451656531552e-5,1.4885891179718516e-8,0.0018028287921071594,-2.6764406036804033e-5,1.5037147763755564e-8,0.0018030448604636129,-2.6999007434058543e-5,1.5245693907824705e-8,0.0018033608554715635,-2.726276700041339e-5,1.5479157196478573e-8,0.0018037839756043577,-2.750560873314212e-5,1.5692371417557645e-8,0.0018042943907072807,-2.767567790489397e-5,1.583886014992919e-8,0.0018048471164087917,-2.7736268154231167e-5,1.5886025345858665e-8,0.0018053841995643509,-2.7679480289528892e-5,1.582737530167465e-8,0.0018058526507647669,-2.752969711011927e-5,1.5685558185452904e-8,0.001806220217685462,-2.73353380759272e-5,1.550478294473961e-8,0.0018064829196074033,-2.715336860705409e-5,1.533667607943918e-8,0.001806663117932587,-2.7033305913710596e-5,1.5225741546222746e-8,0.001806800801895628,-2.7005730814722615e-5,1.5199028506319084e-8,0.0018069420013151019,-2.7077300335566203e-5,1.5261811538653193e-8,0.0018071276684187964,-2.7232000211422743e-5,1.5398964117004876e-8,0.0018073853085648632,-2.7437165696606414e-5,1.5580585890886757e-8,0.0018077246572371043,-2.7652248535832284e-5,1.576998693661435e-8,0.0018081377800550024,-2.7838089562507862e-5,1.5932006675260243e-8,0.0018086029626342595,-2.7964541054522235e-5,1.603977518121356e-8,0.0018090908374324907,-2.8014926126988497e-5,1.607861859878816e-8,0.00180957084697334,-2.7986978508900445e-5,1.6046829753568754e-8,0.0018100165314672806,-2.7890983536707856e-5,1.5953965389800106e-8,0.0018104089137041853,-2.774636589803873e-5,1.5817776136232783e-8,0.0018107380434183873,-2.7577939639375955e-5,1.5660833269492737e-8,0.0018110032945058872,-2.7412588632335316e-5,1.5507519669488106e-8,0.0018112130984671998,-2.727650820984009e-5,1.5381492498527788e-8,0.0018113845185778008,-2.719266881496396e-5,1.5303331370154355e-8,0.0018115426463610783,-2.7177984586301253e-5,1.5287947407869493e-8,0.0018117192686648675,-2.7239724617485946e-5,1.5341380468993828e-8,0.001811949680932402,-2.7371212382235838e-5,1.545703888127489e-8,0.0018122663836599232,-2.754807176709037e-5,1.561247872864076e-8,0.0018126893601793177,-2.772785807579092e-5,1.57692019263019e-8,0.001813215168157243,-2.7856683016959833e-5,1.5878661656300398e-8,0.001813810503341971,-2.788443523714781e-5,1.589593222254393e-8,0.0018144169960900853,-2.7784424994027194e-5,1.5797369795099836e-8,0.0018149690546354657,-2.7567238609616395e-5,1.5593102180247856e-8,0.0018154173615913274,-2.7279217321055754e-5,1.532562475157829e-8,0.001815745477353155,-2.698524284095293e-5,1.5054105867581623e-8,0.001815971625884253,-2.674564379645672e-5,1.4833294082824518e-8,0.0018161376350310534,-2.6598869981665784e-5,1.4697715161200344e-8,0.0018162930699050063,-2.6555272801256695e-5,1.46561098570472e-8,0.0018164816791041126,-2.6600309925083196e-5,1.4694563048089877e-8,0.001816733162707175,-2.6702680190249542e-5,1.4784125685246063e-8,0.0018170600913158257,-2.682355433898887e-5,1.4889335877885533e-8,0.0018174585911996668,-2.6924764974141972e-5,1.4975656178105195e-8,0.0018179114635388195,-2.697514492077015e-5,1.5015123550887387e-8,0.0018183927840198378,-2.69547379106428e-5,1.499003182489609e-8,0.0018188731580403156,-2.6856711418009936e-5,1.4894556739454665e-8,0.001819324793629755,-2.6687029559253713e-5,1.473440683021408e-8,0.0018197256785068433,-2.6462277654925132e-5,1.4524849413287513e-8,0.001820062373922574,-2.6206258898886165e-5,1.428764312060864e-8,0.001820331254382838,-2.5946127881015275e-5,1.4047536963377575e-8,0.001820538445168254,-2.5708755861324498e-5,1.3828946837314153e-8,0.0018206989383891886,-2.5517624437804906e-5,1.365308557110985e-8,0.0018208352337955717,-2.5390152599451144e-5,1.3535489407026761e-8,0.0018209755912363625,-2.5335207243642732e-5,1.34837573147026e-8,0.001821151632775928,-2.5350517985874814e-5,1.3495281869197622e-8,0.0018213945362785741,-2.5420047270152325e-5,1.3555011738893574e-8,0.0018217289276931587,-2.551235675360919e-5,1.363413439824075e-8,0.001822164406689718,-2.5582239942904856e-5,1.3691653129699898e-8,0.001822686655285152,-2.557849948022469e-5,1.3681411343723724e-8,0.0018232531039378613,-2.5459295222371094e-5,1.3565889406493894e-8,0.0018237998026180275,-2.5211254782313133e-5,1.3333435451442727e-8,0.0018242618025331551,-2.48617013791813e-5,1.300934477782622e-8,0.0018245988973076108,-2.4473013353101097e-5,1.2650735273151976e-8,0.0018248114805428112,-2.4119027032174727e-5,1.2325005783849212e-8,0.0018249369229238492,-2.3856916289854328e-5,1.2084104532181132e-8,0.0018250308362240503,-2.371030618670482e-5,1.1949100841989596e-8,0.001825146047330891,-2.366910915234589e-5,1.1910159201163204e-8,0.0018253190675345766,-2.3700474694523012e-5,1.1936747643950821e-8,0.0018255659145471929,-2.3762271034004848e-5,1.1990121606287427e-8,0.0018258842445968248,-2.3813805840709907e-5,1.2033166516185259e-8,0.001826258169929863,-2.382242826521537e-5,1.2036355717542334e-8,0.0018266634773100754,-2.3766769983762126e-5,1.1980573637170289e-8,0.001827072388230482,-2.363782080690576e-5,1.1857967699394822e-8,0.0018274577516185762,-2.343858881848419e-5,1.1671564450583e-8,0.0018277966526101797,-2.318264021823313e-5,1.1433927158541618e-8,0.0018280733241575382,-2.2891668446499556e-5,1.1164967072672481e-8,0.0018282811577905753,-2.259224023359341e-5,1.0889004337993399e-8,0.001828423551827078,-2.231201801919025e-5,1.0631321018346868e-8,0.0018285135003267157,-2.207596922814408e-5,1.0414665395833809e-8,0.0018285721071275558,-2.1903000912757984e-5,1.0256127104231967e-8,0.0018286262706814032,-2.1803209435120533e-5,1.0164594038831645e-8,0.001828705702435555,-2.177583438325039e-5,1.0138909579633824e-8,0.001828839337656277,-2.1807956588344662e-5,1.0166784524005633e-8,0.0018290509329571627,-2.1874064192536067e-5,1.0224554437432966e-8,0.0018293535538177238,-2.1937215282132975e-5,1.027838557907086e-8,0.0018297433561300666,-2.1953289747187514e-5,1.0288214837085777e-8,0.0018301945153309169,-2.1879869760203124e-5,1.0215787794044302e-8,0.001830658946308421,-2.168992779500395e-5,1.0036992338479185e-8,0.0018310753618979378,-2.138679258668782e-5,9.755367998113473e-9,0.0018313889838965569,-2.1011704357252705e-5,9.40893730399691e-9,0.0018315746329431721,-2.063467135717398e-5,9.061841978804914e-9,0.0018316490783180249,-2.0328796754628263e-5,8.780851241439044e-9,0.0018316632653398112,-2.0141677331726018e-5,8.60917634137112e-9,0.001831679395233614,-2.0080681978185537e-5,8.55305072202464e-9,0.0018317476612021335,-2.0117816834583795e-5,8.586332987307337e-9,0.0018318940208144653,-2.0206428881992914e-5,8.665969743081962e-9,0.0018321201082134187,-2.0298263194615822e-5,8.747708166164193e-9,0.001832409908402203,-2.0354458317239478e-5,8.796142458866711e-9,0.00183273774398109,-2.035003732644327e-5,8.788718700893353e-9,0.001833074770107819,-2.027416826766039e-5,8.715846695855356e-9,0.001833393452426999,-2.0128529716534936e-5,8.579316424344743e-9,0.0018336705866361742,-1.992511730302927e-5,8.390268759309309e-9,0.0018338894912187423,-1.968387735533606e-5,8.167058601271752e-9,0.0018340416791292305,-1.943010095958344e-5,7.932910852662894e-9,0.0018341280134618974,-1.9191384559990707e-5,7.713154507289564e-9,0.0018341590816821458,-1.8994066898046752e-5,7.53193522572574e-9,0.0018341544149850127,-1.885940649167221e-5,7.40865932392435e-9,0.0018341403815578727,-1.8800038802715472e-5,7.3546966523347715e-9,0.0018341468535115438,-1.8817250628981883e-5,7.370872897137305e-9,0.0018342029234141627,-1.889956862277312e-5,7.446231414582977e-9,0.0018343321227258867,-1.9023083174690816e-5,7.558447698209529e-9,0.0018345476553118807,-1.9153707945490168e-5,7.676042116963366e-9,0.0018348481083950683,-1.9251549921866032e-5,7.762491329140837e-9,0.0018352144196331546,-1.9277769509678416e-5,7.782530133022137e-9,0.0018356096596253435,-1.920398976117508e-5,7.710681424220857e-9,0.0018359837763515755,-1.9022957466042443e-5,7.540865396769042e-9,0.0018362849741516284,-1.8756908829736255e-5,7.293910761478627e-9,0.0018364766833233455,-1.8457870012827724e-5,7.017737181329629e-9,0.0018365538571077135,-1.8194914639068882e-5,6.775647214996834e-9,0.001836548563460727,-1.803024372589666e-5,6.624410847690285e-9,0.0018365187675594202,-1.7995409567851337e-5,6.592525088216024e-9,0.0018365252877235454,-1.8081331449302935e-5,6.671177914624835e-9,0.0018366101542084223,-1.8246672589318575e-5,6.822077045534804e-9,0.0018367869375824912,-1.8436994200718304e-5,6.995122222991016e-9,0.001837043888830328,-1.8602938875977135e-5,7.145101322978344e-9,0.0018373537387537482,-1.8710583772040503e-5,7.241122599512904e-9,0.0018376837337121634,-1.8743874840279134e-5,7.2687428712580284e-9,0.0018380027530075403,-1.8702372696090056e-5,7.227808403795434e-9,0.0018382852635966235,-1.8597450955179613e-5,7.128926096284541e-9,0.001838513176276471,-1.8448670412689796e-5,6.990149973877557e-9,0.0018386767249291653,-1.8280754164638692e-5,6.8342449477846595e-9,0.0018387750038904136,-1.812090639012062e-5,6.686252226411574e-9,0.0018388162973281307,-1.799601728606697e-5,6.570911706461216e-9,0.0018388179260978472,-1.7929389648419776e-5,6.509607695224068e-9,0.0018388050594228275,-1.7937016075237906e-5,6.516893378261047e-9,0.0018388079846011016,-1.8023966004633595e-5,6.597145459559734e-9,0.001838857713922728,-1.818180313357647e-5,6.742223335637884e-9,0.0018389803552352245,-1.838806035919854e-5,6.9310780933096055e-9,0.0018391912530982262,-1.860858891245793e-5,7.132034188312767e-9,0.0018394902971468079,-1.88029481324306e-5,7.3078518212857724e-9,0.0018398597310770378,-1.8932177661136858e-5,7.422918615431776e-9,0.0018402654168871984,-1.896772954162206e-5,7.451423914551764e-9,0.0018406621235211068,-1.8899934385024923e-5,7.385028293072869e-9,0.0018410028729857332,-1.8743806537061265e-5,7.238049462551088e-9,0.0018412512510457238,-1.8539475868505472e-5,7.047719368366382e-9,0.0018413937282192889,-1.834483799071887e-5,6.86733900839635e-9,0.0018414470718991932,-1.8220140618210308e-5,6.752093172557913e-9,0.0018414557581306575,-1.8208514775956216e-5,6.741217444212319e-9,0.0018414780209857879,-1.8320709364073575e-5,6.844095149750602e-9,0.001841565803992494,-1.8532077021471085e-5,7.037638298125493e-9,0.0018417482230087799,-1.8793447944416692e-5,7.276395121919292e-9,0.001842025845932932,-1.9049480082961622e-5,7.509453930519011e-9,0.001842376034057044,-1.925507263145096e-5,7.69549565376883e-9,0.0018427639401787223,-1.9383990375315344e-5,7.810647629678605e-9,0.0018431531413094465,-1.942958955901095e-5,7.849070713791684e-9,0.0018435127392187048,-1.940088549418417e-5,7.8192866216250315E-09,0.001843820730492911,-1.9317320377072763e-5,7.739348166296656e-9,0.0018440648885501498,-1.9204160908646343e-5,7.632620118984367e-9,0.001844242531542363,-1.9089035068363377e-5,7.524612793811735e-9,0.0018443600647661403,-1.8999259868333292e-5,7.440521812341918e-9,0.001844432549312981,-1.8959307662865297e-5,7.402863667254894e-9,0.0018444829953387927,-1.8987874349045107e-5,7.428729689176291e-9,0.0018445407209490732,-1.9094430440071465e-5,7.52658268876082e-9,0.0018446380463958871,-1.9275761849198014e-5,7.693093256534828e-9,0.001844804951317121,-1.9513700180089063e-5,7.911127592194227e-9,0.0018450622049142106,-1.9775670897407012e-5,8.15036239379623e-9,0.0018454146537959305,-2.0019361155694627e-5,8.37168352380671e-9,0.0018458471645658634,-2.020149491512519e-5,8.53532123115057e-9,0.001846325472916595,-2.0288852030465627e-5,8.610991677718667e-9,0.001846802738334875,-2.0268255874207588e-5,8.587035433849896e-9,0.0018472305526570348,-2.0152106866842266e-5,8.475412368243551e-9,0.0018475714841345342,-1.99772538420524e-5,8.31053358635742e-9,0.0018478096100095864,-1.9796940495792812e-5,8.141712154172403e-9,0.0018479558587613187,-1.9667497884298463e-5,8.020816057287474e-9,0.0018480460497650023,-1.9633092096664974e-5,7.988216118779569e-9,0.0018481313475885142,-1.97130435184807e-5,8.061204673026506e-9,0.0018482635125553158,-1.989628715353263e-5,8.229056332405201e-9,0.0018484798977238869,-2.014547254945726e-5,8.45695909902495e-9,0.0018487937859131421,-2.0409270039150275e-5,8.697434490355547e-9,0.0018491933464550954,-2.0637777460108637e-5,8.904531720257321e-9,0.001849648388562267,-2.0794981895125802e-5,9.04525543618406e-9,0.0018501208603383453,-2.0864590650255843e-5,9.104868950596546e-9,0.0018505745805460858,-2.0849287684095834e-5,9.086145203825255e-9,0.0018509815951685388,-2.0766006244656177e-5,9.004964655845875e-9,0.0018513249009249032,-2.0640121265863943e-5,8.88493947825769e-9,0.0018515986248674762,-2.0500399014916906e-5,8.75275158592604e-9,0.0018518069924697927,-2.037529947986055e-5,8.634737803338043e-9,0.0018519630574627775,-2.029034519449881e-5,8.55444480376467e-9,0.0018520875544509319,-2.0265862670398454e-5,8.530515515536571e-9,0.0018522076118006106,-2.0314479503742223e-5,8.574357895458459e-9,0.001852354640478269,-2.043817792207266e-5,8.68743961998716e-9,0.0018525605725263623,-2.0625343158510295e-5,8.85862825193293e-9,0.0018528519045839407,-2.0849110173348045e-5,9.06276525797922e-9,0.0018532420360760945,-2.1069073571299936e-5,9.262339779435322e-9,0.001853724130935122,-2.123818424609054e-5,9.413907129041965e-9,0.0018542681745039775,-2.13146965067963e-5,9.479118156772436e-9,0.001854825500677946,-2.1275855803305648e-5,9.437327265942164e-9,0.0018553411001434338,-2.1127603421251835e-5,9.294511094167757e-9,0.001855769808091963,-2.0905197786356253e-5,9.083769325899609e-9,0.001856089934500493,-2.066366542445483e-5,8.856377940750694e-9,0.001856309055157489,-2.0461827016597087e-5,8.66688007773098e-9,0.0018564605291198604,-2.0346009610590452e-5,8.557941716365146e-9,0.0018565929794966702,-2.0338609963516525e-5,8.549815123998282e-9,0.0018567566935258077,-2.0434095465034442e-5,8.636794189047838e-9,0.0018569909246059376,-2.0602544164462002e-5,8.790679141975657e-9,0.001857315247217037,-2.079894845221756e-5,8.96952007306406e-9,0.0018577267622189627,-2.097526582003082e-5,9.12880609280628e-9,0.001858203223977554,-2.109175679528336e-5,9.231914666619509e-9,0.0018587104540100233,-2.1124682017155018e-5,9.257156442445109e-9,0.0018592113115679834,-2.106890188932159e-5,9.200104828967708e-9,0.0018596735056705283,-2.0935816127821806e-5,9.07163153057935e-9,0.0018600745996205108,-2.0748452915729757e-5,8.89332379757743e-9,0.0018604039664238258,-2.0535775690622106e-5,8.692194187757801e-9,0.0018606624467996109,-2.032768021272182e-5,8.496037214902576e-9,0.0018608607937328295,-2.0151290741381685e-5,8.329989644194028e-9,0.0018610177895546044,-2.0028404875289557e-5,8.214148845006132e-9,0.0018611584243115355,-1.9973516875703052e-5,8.161728802068476e-9,0.0018613119834204608,-1.999186368250376e-5,8.17725592983337e-9,0.0018615094730483387,-2.0077264157555704e-5,8.254611200906061e-9,0.0018617795921467622,-2.021010824142319e-5,8.375250055651793e-9,0.0018621426777235635,-2.0356759570897997e-5,8.507743574528015e-9,0.0018626030974959807,-2.0472527218197918e-5,8.610594760757943e-9,0.001863142529370494,-2.0510266452106173e-5,8.640213095127023e-9,0.001863718542838287,-2.0434462278556232e-5,8.563932655985352e-9,0.0018642726717816077,-2.0236362154722935e-5,8.374014217097276e-9,0.0018647478436570396,-1.9942109211313427e-5,8.095175761587323e-9,0.001865108368948935,-1.960728289796133e-5,7.779474788722417e-9,0.0018653524017467537,-1.9298711898535704e-5,7.4892916930745e-9,0.0018655107551995035,-1.9072315354648044e-5,7.27659510756275e-9,0.0018656340820196373,-1.895724351204022e-5,7.168151304633016e-9,0.0018657758320747826,-1.895135064135561e-5,7.161416176012306e-9,0.0018659780113648356,-1.9026593337249196e-5,7.229749985625541e-9,0.0018662631207856332,-1.9139791481250695e-5,7.332602529333776e-9,0.0018666323647777408,-1.9244376015289706e-5,7.426524029334083e-9,0.0018670686302071045,-1.93003096381889e-5,7.474374412439072e-9,0.0018675424105708905,-1.9280847880737214e-5,7.451532270409492e-9,0.0018680189994260549,-1.9175704489265866e-5,7.348747503653877e-9,0.0018684654564785955,-1.8990736169104185e-5,7.171778438188237e-9,0.0018688561260398076,-1.8744836865035615e-5,6.938463114669843e-9,0.0018691760026911882,-1.8465188498455326e-5,6.674284503730649e-9,0.001869421833270251,-1.818207784859466e-5,6.407542925266269e-9,0.0018696013388690184,-1.7924257543533537e-5,6.165035437391302e-9,0.0018697312745747144,-1.77154221714517e-5,5.968767927016784e-9,0.0018698350512996898,-1.7571817919185243e-5,5.8337191006715384e-9,0.0018699402886244905,-1.750060390009367e-5,5.76630978226681e-9,0.0018700762544792589,-1.7498573862310598e-5,5.763229760950721e-9,0.0018702708423503566,-1.7551071627329354e-5,5.8104800416812336e-9,0.0018705465025051088,-1.763137263486119e-5,5.882878383752786e-9,0.0018709146903029294,-1.770161615547732e-5,5.945007935726127e-9,0.0018713693790612124,-1.771717503436893e-5,5.955326079857078e-9,0.001871882005628167,-1.7636224585071255e-5,5.875056690709975e-9,0.0018724021730790383,-1.7434179833481032e-5,5.681589270232072e-9,0.0018728684333721528,-1.7118167658035483e-5,5.3819353393236815e-9,0.0018732287172204356,-1.6732355540166632e-5,5.017686966724454e-9,0.0018734616898216,-1.6346704189132433e-5,4.654472798669768e-9,0.0018735862278335242,-1.6031827206181716e-5,4.358367558462995e-9,0.0018736526901350647,-1.583326478782647e-5,4.1717537065880975e-9,0.0018737219046122688,-1.5758804508346698e-5,4.10148922345258e-9,0.0018738443004110933,-1.578241850439683e-5,4.12273758898688e-9,0.0018740479774201498,-1.5858384906640113e-5,4.192354118637595e-9,0.0018743368377812267,-1.5936813363410486e-5,4.2635170100055776e-9,0.0018746952507608576,-1.5975245333576563e-5,4.296582563572818e-9,0.001875095253598817,-1.594505681652756e-5,4.265000879239349e-9,0.0018755037392833745,-1.5833619336192383e-5,4.157239354603041e-9,0.0018758885761289046,-1.5643635440476038e-5,3.976084601740173e-9,0.001876223379869671,-1.539063040568846e-5,3.736258860742264e-9,0.0018764908158095375,-1.5099215718405392e-5,3.460921341786339e-9,0.0018766843555797306,-1.4798700313825205e-5,3.1775739251165955e-9,0.001876808514204054,-1.4518593640800304e-5,2.913862771528727e-9,0.001876877684600156,-1.428449594527703e-5,2.6937304046643276e-9,0.0018769138794313335,-1.4114849713635936e-5,2.534362112040424e-9,0.001876943877891384,-1.4018784813808756e-5,2.444153315210054e-9,0.0018769961556297737,-1.3994930354196748e-5,2.4215928014478305e-9,0.0018770976892354386,-1.4030988542626093e-5,2.454884423634573e-9,0.0018772705481379275,-1.4104015382463982e-5,2.5222631987773908e-9,0.001877528051302119,-1.4181603792678899e-5,2.5931789806121115e-9,0.0018778703569376982,-1.4224713941675174e-5,2.6310160704288327e-9,0.0018782801543122864,-1.4193451439422243e-5,2.598529820729149e-9,0.0018787205590664604,-1.405678212300852e-5,2.4669139600598395e-9,0.0018791386692319275,-1.3805285464980217e-5,2.2276810492311913e-9,0.0018794780123360833,-1.3462303276611882e-5,1.9030504386180313e-9,0.0018796988460152687,-1.3085081939944344e-5,1.5469771882351445e-9,0.001879797376121251,-1.2749246711917046e-5,1.2305366805810725e-9,0.001879810814909188,-1.2520431987685998e-5,1.0152379061173355e-9,0.0018798025069450173,-1.2428480565797385e-5,9.28792039154265e-10,0.0018798356637794984,-1.2459405930458762e-5,9.576569245815327e-10,0.0018799514652937973,-1.2567147881760806e-5,1.058227207885944e-9,0.0018801611228964044,-1.2694459694026742e-5,1.1765668337490139e-9,0.0018804504286041776,-1.2790844470236134e-5,1.2652815802583089e-9,0.0018807898296935043,-1.2822211239622132e-5,1.2925348480468322e-9,0.001881144296639176,-1.2773137375766395e-5,1.244082520275377e-9,0.001881480541304962,-1.2644829708590756e-5,1.1212779543347608e-9,0.0018817714830373492,-1.2451442593087324e-5,9.37573033027889e-10,0.0018819987877392661,-1.2216113471832141e-5,7.147943106851535e-10,0.0018821541835679256,-1.1967040551517974e-5,4.79481554800589e-10,0.001882239823342938,-1.1733614321682521e-5,2.592733145950963e-10,0.0018822677333682823,-1.1542659347071796e-5,7.937878641490489e-11,0.001882258290813125,-1.1414929386642006e-5,-4.073055482831923e-11,0.00188223769665013,-1.1362192719985607e-5,-9.008293919875422e-11,0.001882234648515446,-1.1385337979164145e-5,-6.800108198389007e-11,0.0018822765976668182,-1.147373068275585e-5,1.529829570741141e-11,0.0018823859220090569,-1.1605863972995146e-5,1.3934936610352848e-10,0.0018825762769299201,-1.1751333204930212e-5,2.7535196640362164e-10,0.001882849356696919,-1.1874174668779581e-5,3.8937810798312383e-10,0.0018831923326353601,-1.1937760844475924e-5,4.470257514000792e-10,0.0018835766745060477,-1.1911660763090492e-5,4.198775427362523e-10,0.0018839599006157666,-1.1780441166968134e-5,2.937343558620432e-10,0.0018842923200876947,-1.1552816367157377e-5,7.714292268036392e-11,0.0018845300065070212,-1.1267101431234662e-5,-1.935563353070176e-10,0.001884651848842402,-1.0986979616266467e-5,-4.582805070815646e-10,0.0018846729512961321,-1.0783668473551395e-5,-6.500369715974631e-10,0.001884644026311698,-1.0709107993313308e-5,-7.201687612284614e-10,0.0018846329849430254,-1.0774324376780514e-5,-6.586566194780138e-10,0.0018846977991100334,-1.0946622650667459e-5,-4.966346506891892e-10,0.0018848664449174443,-1.1166459365350037e-5,-2.9038739613313543e-10,0.0018851332005309256,-1.1371807843700045e-5,-9.836030862044166e-11,0.00188546833284025,-1.1516483567944784e-5,3.6072174092010136e-11,0.0018858320534413794,-1.1577196587717038e-5,9.118298144119174e-11,0.0018861858170151932,-1.1551897946543376e-5,6.526251494340663e-11,0.0018864988368209698,-1.1454250824736898e-5,-2.8641386320276168e-11,0.0018867506997908348,-1.130771157982184e-5,-1.683171289939276e-10,0.0018869317981828468,-1.114067253953726e-5,-3.269535468848281e-10,0.00188704288267068,-1.0982683580718171e-5,-4.766790893169354e-10,0.00188709425157458,-1.0861262431198378e-5,-5.915582605683498e-10,0.0018871045582005074,-1.0798915164720963e-5,-6.504092600231872e-10,0.0018870989904794264,-1.0810255077489202e-5,-6.395398827368157e-10,0.0018871065171513206,-1.089946266139451e-5,-5.551558313967678e-10,0.0018871561148395357,-1.1058676341069262e-5,-4.048719775294948e-10,0.0018872723151573511,-1.1267948529405112e-5,-2.077232698081918e-10,0.0018874707273317042,-1.1497174238386989e-5,7.702962172308863e-12,0.0018877543345839755,-1.1710094620244999e-5,2.0709679356946207e-10,0.0018881113731507087,-1.1870079468074387e-5,3.5592247332806187e-10,0.0018885154354453212,-1.1947025394181564e-5,4.2594198011051527e-10,0.0018889282709940963,-1.1924554434572256e-5,4.0198452420754266e-10,0.0018893057509901104,-1.180642796887354e-5,2.8793937793174093e-10,0.0018896072155190882,-1.1620319815144137e-5,1.102325230061882e-10,0.0018898073174633363,-1.141620503858083e-5,-8.378045830706647e-11,0.0018899072882816023,-1.1256680872880053e-5,-2.350144500265779e-10,0.00188994004525897,-1.1199004466727915e-5,-2.8962303888349816e-10,0.0018899634124805416,-1.1274091765243815e-5,-2.187662588737686e-10,0.0018900409279768637,-1.1472911999612212e-5,-3.133758064503063e-11,0.0018902183761997377,-1.1749297526970216e-5,2.2880621691449785e-10,0.0018905085190595347,-1.2038537620544541e-5,5.004579398597872e-10,0.0018908911977333046,-1.2281010673800587e-5,7.273646082903298e-10,0.0018913257026649535,-1.2438746635557551e-5,8.738262880584713e-10,0.001891766418942364,-1.2500025159169855e-5,9.289921702418269e-10,0.0018921745217345054,-1.2474898759061678e-5,9.025856295473614e-10,0.0018925235949496604,-1.2387224374957897e-5,8.173373978207359e-10,0.0018928006012498605,-1.2267242724669224e-5,7.019521780489794e-10,0.001893004532648849,-1.2146219309942353e-5,5.860420989860535e-10,0.0018931444568213974,-1.2052958305120446e-5,4.968374482519974e-10,0.0018932376922635935,-1.201136506885249e-5,4.5688395279176046e-10,0.0018933080932005942,-1.203830971069964e-5,4.820179060546816e-10,0.0018933840198379344,-1.2141431704543413e-5,5.792878687063079e-10,0.0018934954432214392,-1.2317048491958935e-5,7.449904944807481e-10,0.0018936698433884116,-1.2548874791752978e-5,9.63493451044306e-10,0.0018939271289290503,-1.2808571057900438e-5,1.207801973263226e-9,0.0018942745270844783,-1.3059009801183272e-5,1.4426931836520661e-9,0.0018947029628015445,-1.3260512884313262e-5,1.6306445395104082e-9,0.0018951865409454112,-1.3379240786205856e-5,1.739776196090901e-9,0.0018956861193035659,-1.339582085200682e-5,1.7520006276159735e-9,0.001896156784362993,-1.3311821218936873e-5,1.6691149414387627e-9,0.0018965578833635218,-1.315201628144059e-5,1.5148888736049156e-9,0.0018968634955145083,-1.2961201862073039e-5,1.3319718714925833e-9,0.0018970707895216053,-1.27953186054354e-5,1.1734090967998433e-9,0.0018972035254706415,-1.270792499395131e-5,1.0897877058615488e-9,0.0018973082905004745,-1.2734836504746565e-5,1.1147159041982071e-9,0.0018974426469162598,-1.2881765897702211e-5,1.2532161191392723e-9,0.0018976577334179135,-1.3120638566367633e-5,1.4783604413576136e-9,0.0018979817061840188,-1.3397830754750496e-5,1.7391592222003208e-9,0.001898411458923872,-1.3651830597880485e-5,1.9773042111285594e-9,0.0018989162166529016,-1.3832467412215963e-5,2.1453543532283e-9,0.0018994501504002229,-1.3913394698958246e-5,2.218528300226893e-9,0.0018999670934915821,-1.3894285229865015e-5,2.1967560935101533e-9,0.0019004313205916007,-1.3794987368719163e-5,2.0991062793393773e-9,0.0019008222473536457,-1.3646563923406225e-5,1.9552477096692173e-9,0.0019011342862434643,-1.3483210869567092e-5,1.7977502645593472e-9,0.0019013742670453792,-1.3336710126712298e-5,1.656805182705815e-9,0.0019015583445810035,-1.3233251710861967e-5,1.557210441490532e-9,0.0019017093215130678,-1.3191683234416556e-5,1.516718948288368e-9,0.0019018544551819409,-1.322222486221346e-5,1.5448335845441187e-9,0.0019020232614363063,-1.332508798252e-5,1.641518474045382e-9,0.0019022446122891282,-1.3489036976123344e-5,1.7958687511443292e-9,0.0019025425844261994,-1.369058867045455e-5,1.985394636394811e-9,0.0019029310998461496,-1.3895103526272778e-5,2.177098013812628e-9,0.0019034084130146504,-1.4061158291373949e-5,2.3316432829741173e-9,0.0019039536403952983,-1.4148798826174367e-5,2.411188360481643e-9,0.00190452798036301,-1.4130390523376207e-5,2.3896713112052716e-9,0.0019050821403015848,-1.4000599135125858e-5,2.262277159589695e-9,0.0019055688083909521,-1.3781106731241096e-5,2.0499028297317794e-9,0.0019059562148011579,-1.3517137805515713e-5,1.795813482384683e-9,0.0019062378216281627,-1.3266226807941069e-5,1.55488479026225e-9,0.0019064346707243743,-1.3082876840158903e-5,1.3789321851604236e-9,0.0019065897975290977,-1.300402884385789e-5,1.3028645792247607e-9,0.0019067566525288243,-1.3039478647258866e-5,1.335631681489911e-9,0.0019069848668208623,-1.3169664466781716e-5,1.458241594737562e-9,0.0019073072088376596,-1.3351363244590194e-5,1.6292950121476715e-9,0.0019077314104704636,-1.35297729754093e-5,1.7965331398129217e-9,0.0019082393455308658,-1.3653389545506359e-5,1.910981408664566e-9,0.0019087936495511212,-1.368692249063571e-5,1.9391998920108105e-9,0.0019093490888763,-1.36182247050182e-5,1.8698433679372743e-9,0.0019098643504093444,-1.3457815665676977e-5,1.7131785903247102e-9,0.0019103104535418381,-1.3232664882104302e-5,1.49513174647234e-9,0.001910674199703993,-1.2977653683504635e-5,1.2491153226176072e-9,0.001910957383345947,-1.2727836569487273e-5,1.0086216538112337e-9,0.0019111736376836673,-1.2513095263658599e-5,8.021151208985223e-10,0.0019113446910483782,-1.2355262008813369e-5,6.502990133921028e-10,0.0019114970699477254,-1.2266914435896981e-5,5.649887739956633e-10,0.001911659458251913,-1.2250863989869682e-5,5.48651037755953e-10,0.0019118603142655674,-1.2299688915426472e-5,5.939871771107086e-10,0.0019121250704395051,-1.2395224103850199e-5,6.83479516283135e-10,0.001912472298250459,-1.2508553962420433e-5,7.894175597020551e-10,0.0019129086995072113,-1.2601732458062466e-5,8.755614362231623e-10,0.0019134238587510172,-1.2632856875682743e-5,9.019823758839568e-10,0.0019139872139001782,-1.2565475255362356e-5,8.340185275907759e-10,0.0019145507149744756,-1.2380996991705414e-5,6.541016494998854e-10,0.0019150594943169597,-1.208942059331609e-5,3.720012705806915e-10,0.0019154687355826697,-1.1731803189978585e-5,2.7186751351475117e-11,0.0019157599073696201,-1.1370438510631843e-5,-3.2059589419623007e-10,0.0019159480871280882,-1.1069433649940181e-5,-6.099776897920081e-10,0.0019160765242110884,-1.0874351161307604e-5,-7.975067244527357e-10,0.001916201638240862,-1.0799731954230843e-5,-8.695695269755934e-10,0.0019163757206690922,-1.0828066294132719e-5,-8.432736692445251e-10,0.001916633663319116,-1.0918083407511515e-5,-7.583931686950212e-10,0.0019169865545414935,-1.1017681518618213e-5,-6.649208970516302e-10,0.0019174220148160516,-1.1077138327480256e-5,-6.104228457140029e-10,0.001917909652400136,-1.1059628873658679e-5,-6.300141180862712e-10,0.0019184095373273615,-1.0947442807596206e-5,-7.404583107456317e-10,0.0019188815145464583,-1.074336196537258e-5,-9.388858115135974e-10,0.0019192932808213034,-1.0467594123611643e-5,-1.20575358697917e-9,0.0019196256213150462,-1.0151606595075532e-5,-1.5107725145640873e-9,0.0019198741582867806,-9.830831037267878e-6,-1.8199155582087304e-9,0.001920048034328906,-9.53810189496491e-6,-2.101716952530784e-9,0.00192016664884815,-9.298985720095432e-6,-2.3317451423285186e-9,0.0019202557299710247,-9.129284586844093e-6,-2.4949779817672822e-9,0.0019203436982262987,-9.03425635494825e-6,-2.5865276762768656e-9,0.0019204586561453517,-9.008766308266697e-6,-2.6114761398253937e-9,0.0019206257964393613,-9.037767379553837e-6,-2.584400459288261e-9,0.0019208647556760669,-9.096934635335611e-6,-2.528749375572851e-9,0.0019211863918376449,-9.153791617985142e-6,-2.475744453410305e-9,0.0019215887893763244,-9.170318069016814e-6,-2.4618619106144695e-9,0.0019220532680969222,-9.108486698013456e-6,-2.5235177511399977e-9,0.0019225426370994027,-8.93968667282501e-6,-2.6880381102716844e-9,0.0019230051437690364,-8.656881355420935e-6,-2.9620064184294193e-9,0.0019233868768198299,-8.284641843373393e-6,-3.321635583237772e-9,0.0019236508865696793,-7.87924983238811e-6,-3.7126811593957043e-9,0.0019237944180940756,-7.513626152701059e-6,-4.064969808739745e-9,0.0019238530642237287,-7.251346875133989e-6,-4.317442787274023e-9,0.0019238875264319904,-7.123184534446885e-6,-4.440727658128514e-9,0.0019239602849499028,-7.118772335068044e-6,-4.445080751689829e-9,0.0019241150340064711,-7.195410187776e-6,-4.3718032484889515e-9,0.0019243672115235493,-7.296057858543114e-6,-4.275859784550209e-9,0.0019247056490780219,-7.366796576870663e-6,-4.209081160263236e-9,0.001925100638222425,-7.368390575798459e-6,-4.2090899838722325e-9,0.0019255136991263675,-7.28124033598263e-6,-4.29459094897082e-9,0.0019259062934330908,-7.105313322498182e-6,-4.465474633111174e-9,0.001926246455241092,-6.8569503429279765e-6,-4.705904064104801e-9,0.001926513155176582,-6.563908504672785e-6,-4.989086595641599e-9,0.0019266984060524598,-6.259565315487143e-6,-5.28285207654197e-9,0.0019268072181901595,-5.977125716265304e-6,-5.555231795710813e-9,0.0019268557194206991,-5.744607949504135e-6,-5.779286983994542e-9,0.001926867956789526,-5.581192829623622e-6,-5.93661711990306e-9,0.0019268720688889452,-5.495252817643273e-6,-6.019245563941074e-9,0.0019268965365545243,-5.483964670467983e-6,-6.029980211505466e-9,0.0019269669147046517,-5.534047865259946e-6,-5.981698489668393e-9,0.0019271030607710645,-5.623188311924287e-6,-5.895977467639949e-9,0.0019273166863302753,-5.7219540024492885e-6,-5.8012471529754476e-9,0.001927608964943563,-5.7963044626612365e-6,-5.730359732741071e-9,0.001927968073137577,-5.811296023443038e-6,-5.716996716285913e-9,0.001928367327868175,-5.736968151573158e-6,-5.789976737812062e-9,0.0019287657529438592,-5.556881102280313e-6,-5.965023129181158e-9,0.0019291137044280984,-5.2780252562612125e-6,-6.235225744033611e-9,0.0019293656129909568,-4.9378508432014095e-6,-6.564293224012181e-9,0.0019294981647026979,-4.601333003765205e-6,-6.88943201632588e-9,0.001929525485728095,-4.342876353937429e-6,-7.138863176862139e-9,0.0019294994801223031,-4.217696588858802e-6,-7.25946537969358e-9,0.0019294908116161604,-4.238299439230228e-6,-7.239417461315074e-9,0.001929560314582812,-4.371015270438031e-6,-7.111424613284696e-9,0.0019297377118852202,-4.55344246107046e-6,-6.935795233464066e-9,0.001930017314096714,-4.719917590952116e-6,-6.775858205910853e-9,0.001930367658027968,-4.821014209853837e-6,-6.679201920416775e-9,0.0019307459008136353,-4.8316120263198285e-6,-6.669947990797228e-9,0.0019311099639047478,-4.749855588336907e-6,-6.749791325681373e-9,0.001931426078730715,-4.591648798416053e-6,-6.903320619292728e-9,0.0019316723240502833,-4.384152509840636e-6,-7.104284083463843e-9,0.00193183957714851,-4.159855661523347e-6,-7.321298468100921e-9,0.0019319309590358179,-3.951522849872863e-6,-7.522721099309414e-9,0.001931960272729608,-3.7879464393165173e-6,-7.680755766459321e-9,0.0019319496225054618,-3.690498897752296e-6,-7.774788967531755e-9,0.0019319263202685097,-3.6706055523742944e-6,-7.793831867149322e-9,0.001931919267959071,-3.7283927164905087e-6,-7.737819257871908e-9,0.0019319552108667095,-3.852716726614077e-6,-7.617573393096083e-9,0.0019320552988749142,-4.02248969024826e-6,-7.453520879166667e-9,0.0019322322171346693,-4.209066647074804e-6,-7.27339092546293e-9,0.0019324880384187753,-4.379522397329557e-6,-7.109051304871561e-9,0.0019328128907126745,-4.5006846976982455e-6,-6.9926006585541975e-9,0.001933184500922892,-4.543960637217014e-6,-6.951680008281516e-9,0.0019335690805746674,-4.491239132575197e-6,-7.0037418708715674e-9,0.0019339247854987158,-4.3417098714221724e-6,-7.149447726110859e-9,0.0019342092422925217,-4.118009382523817e-6,-7.366743932940767e-9,0.0019343916827004838,-3.868204312684253e-6,-7.608992772716862e-9,0.001934467361572726,-3.658733712507117e-6,-7.811866984567964e-9,0.001934467204138646,-3.5553083996379697e-6,-7.911879053399946e-9,0.0019344532495840499,-3.5966460829545584e-6,-7.871776332288663e-9,0.0019344968195731504,-3.7753114217998696e-6,-7.698978894623498e-9,0.0019346495112623097,-4.03947689724567e-6,-7.443761240396356e-9,0.0019349242390860283,-4.315579736048795e-6,-7.177294842177374e-9,0.0019352959799658958,-4.537209508290387e-6,-6.9637480873944295e-9,0.0019357174371195988,-4.664295527601881e-6,-6.8417869033334726e-9,0.0019361376429321514,-4.687227031264865e-6,-6.820621053087697e-9,0.0019365149604292852,-4.620518272556331e-6,-6.886137513437268e-9,0.001936822735002006,-4.4930784615761195e-6,-7.01030959332819e-9,0.0019370497573068866,-4.3395817761451026e-6,-7.159541983283873e-9,0.0019371982714750445,-4.194332245529059e-6,-7.300606086896117e-9,0.0019372813098119841,-4.0872389658178436e-6,-7.404541171072901e-9,0.0019373200047168263,-4.041081596253815e-6,-7.449311969194115e-9,0.0019373408698219712,-4.06951090543502e-6,-7.421751862826817e-9,0.0019373728401152071,-4.175601163817662e-6,-7.318959872347354e-9,0.0019374438984557292,-4.351140097040351e-6,-7.14897163907601e-9,0.0019375773878386295,-4.577090029110529e-6,-6.930294004143148e-9,0.0019377884492321462,-4.8255307456941e-6,-6.690013847281935e-9,0.0019380811458521296,-5.063086450380342e-6,-6.460482833914179e-9,0.0019384468078961414,-5.2556340897116115e-6,-6.274765644942493e-9,0.001938864070694948,-5.373859826780817e-6,-6.161257575262624e-9,0.0019393008815218134,-5.39900090253849e-6,-6.138107237175963e-9,0.0019397185968336869,-5.328108998262378e-6,-6.208094891699568e-9,0.0019400783924782288,-5.178029968915432e-6,-6.3547673684562564e-9,0.001940350064460665,-4.986568248040517e-6,-6.541330751226949e-9,0.0019405222410656135,-4.808507589956162e-6,-6.714561951692604e-9,0.0019406110279473565,-4.704360703335738e-6,-6.815780527851394e-9,0.0019406619186682263,-4.722099909779016e-6,-6.798592282970913e-9,0.0019407397828170951,-4.877341093394415e-6,-6.6480630164182626e-9,0.0019409070239167167,-5.142645237546104e-6,-6.3909979796592525e-9,0.0019411991246476956,-5.455021750594156e-6,-6.08859132515089e-9,0.0019416113591816284,-5.739907638638507e-6,-5.813170806092759e-9,0.0019421039399188788,-5.938379623146413e-6,-5.621848443746926e-9,0.001942620441220814,-6.023358180511173e-6,-5.540825654139379e-9,0.0019431076064300335,-6.000155352616885e-6,-5.564854280690739e-9,0.0019435278468381142,-5.896618797745685e-6,-5.66679479290207e-9,0.0019438629592743444,-5.750852545969404e-6,-5.809548326748877e-9,0.0019441120808416875,-5.601534475667561e-6,-5.955480832384088e-9,0.001944287443752201,-5.482065741624393e-6,-6.072125549617999e-9,0.0019444101506376872,-5.417660736467644e-6,-6.135020234542866e-9,0.001944506708268009,-5.424015514502002e-6,-6.12900103028505e-9,0.0019446061453395735,-5.5065945921930115e-6,-6.048882321230036e-9,0.0019447372317435117,-5.660164219490716e-6,-5.899883466024544e-9,0.0019449253683826993,-5.8687316263243564E-06,-5.6976552684035205e-9,0.001945189030333371,-6.106463427556881e-6,-5.467362321854533e-9,0.001945536161431122,-6.340235377640483e-6,-5.241200084831334e-9,0.0019459613750219223,-6.534129514976202e-6,-5.0540407206024526E-09,0.0019464450016517627,-6.655627092463941e-6,-4.9374385215283745e-9,0.0019469548828858596,-6.682567740270542e-6,-4.912878296775678e-9,0.001947451269570495,-6.60932933283276e-6,-4.985758640608991e-9,0.0019478943525422965,-6.450513493834239e-6,-5.14178782748562e-9,0.0019482532181079584,-6.2407756398245034e-6,-5.347142200685174e-9,0.0019485145355209999,-6.029956846976695e-6,-5.553227818359947e-9,0.001948688832848761,-5.8732962326046545e-6,-5.706255960069141e-9,0.0019488117889920867,-5.817657136586249e-6,-5.76069054929591e-9,0.001948938125527602,-5.886667676818439e-6,-5.69370500652984e-9,0.0019491274075020232,-6.0699856033129015e-6,-5.515569915679763e-9,0.0019494249289553265,-6.3227915401508744E-06,-5.270071903094241e-9,0.001949845257742566,-6.578590377092514e-6,-5.022021831291358e-9,0.0019503668701211755,-6.771379833246088e-6,-4.8356927104913765e-9,0.001950941025999169,-6.857006618888046e-6,-4.754047856449597e-9,0.0019515098360051739,-6.823912357418047e-6,-4.788264987953578e-9,0.0019520240658229982,-6.690500284410137e-6,-4.920280238133386e-9,0.0019524536244067533,-6.49382548244997e-6,-5.113816259747165e-9,0.0019527895094792508,-6.276752315075202e-6,-5.326941081183438e-9,0.0019530401509459683,-6.078332438438705e-6,-5.521497393189113e-9,0.001953225817980965,-5.928567237035448e-6,-5.668236483345585e-9,0.0019533734478342783,-5.84651286102268e-6,-5.74866469745462e-9,0.0019535127069048035,-5.840135760566559e-6,-5.755159455452236e-9,0.0019536730713173847,-5.906707798229399e-6,-5.690546687804252e-9,0.0019538812761171337,-6.033223898987462e-6,-5.567654612994196e-9,0.0019541585144023286,-6.197000707763707e-6,-5.408699430107965e-9,0.0019545171385095907,-6.367107479822374e-6,-5.243879262195881e-9,0.0019549572076320533,-6.5074833444539475e-6,-5.108346058501838e-9,0.0019554639201165612,-6.582363249082454e-6,-5.03694129358835e-9,0.001956007498430186,-6.563809875728904e-6,-5.0568720809815e-9,0.001956546986261798,-6.4398326830353245e-6,-5.179789317621606e-9,0.001957038319601614,-6.220390777973844e-6,-5.3959025305882386e-9,0.001957445211377807,-5.938406346561329e-6,-5.6729623501463044E-09,0.0019577497434098727,-5.6441961139281294e-6,-5.961701088875459e-9,0.00195795905198493,-5.3940117834603315e-6,-6.207071934832427e-9,0.001958105475933685,-5.235595818058769e-6,-6.362420055449834e-9,0.0019582395183540724,-5.194843437985116e-6,-6.402542072145623e-9,0.001958417079498149,-5.267559275761301e-6,-6.331712684108876e-9,0.0019586841391798864,-5.419208397437096e-6,-6.183867152169376e-9,0.0019590632992368684,-5.5936274617679324e-6,-6.0140407497047866e-9,0.0019595468572287758,-5.728796846682779e-6,-5.882943397267424e-9,0.001960099404208329,-5.774659859002328e-6,-5.8395474337831e-9,0.0019606692273000065,-5.706491547132605e-6,-5.908007246472056e-9,0.001961203875844111,-5.5290734820936245e-6,-6.083550911233866e-9,0.001961663710892444,-5.271294504247528e-6,-6.33775249294814e-9,0.0019620291042840325,-4.974990706173587e-6,-6.62948408349352e-9,0.0019623006544432146,-4.683271223898374e-6,-6.916401377222745e-9,0.001962494734377491,-4.432015613971804e-6,-7.163317469825513e-9,0.00196263744876942,-4.24555166449937e-6,-7.3464495352867865e-9,0.001962759151531451,-4.135625053205161e-6,-7.454405906541533e-9,0.0019628903475563684,-4.102163162853727e-6,-7.487397138171459e-9,0.001963058825873597,-4.134581772027361e-6,-7.45591629508366e-9,0.0019632873735704035,-4.2130275752858015e-6,-7.37949782948698e-9,0.001963591384460584,-4.309670509689841e-6,-7.285447272084761e-9,0.001963976034392938,-4.390698571258319e-6,-7.2069014925367394E-09,0.00196443330876546,-4.419933657794488e-6,-7.1793089036528066e-9,0.0019649399761413515,-4.364865771727716e-6,-7.23453490273262e-9,0.001965458415821613,-4.2050069352158806e-6,-7.392670556572303e-9,0.0019659423021510165,-3.940624693125234e-6,-7.653438357820787e-9,0.001966347619651084,-3.5979703831828426e-6,-7.991020087185636e-9,0.001966646410720784,-3.2268073690315724e-6,-8.35646294373238e-9,0.001966837804951861,-2.88866026076316e-6,-8.6892469084276e-9,0.0019669507350560987,-2.638942552458159e-6,-8.93489923720782e-9,0.001967036219204756,-2.509897091168396e-6,-9.061792188439865e-9,0.0019671521102095036,-2.5011703515333097e-6,-9.070385947269845e-9,0.001967346338386762,-2.5810055380569523e-6,-8.992002968155938e-9,0.0019676443316525953,-2.696486676324743e-6,-8.878723391163976e-9,0.0019680437540308916,-2.788602202893239e-6,-8.788584213578214e-9,0.00196851699192739,-2.8074134547524235e-6,-8.77069512204032e-9,0.0019690198105688102,-2.723406029950918e-6,-8.854087293070188e-9,0.001969503286514971,-2.5325606025790628e-6,-9.042705655591e-9,0.0019699255438227234,-2.2545503651888572e-6,-9.317149614451272e-9,0.0019702602048416143,-1.9254253998824907e-6,-9.64186138287465e-9,0.0019704998243126686,-1.587626778063647e-6,-9.974977396460062e-9,0.001970654436207738,-1.2805361083925496e-6,-1.0277671836369529E-08,0.001970746848452303,-1.0338220010957484e-6,-1.0520734387427998e-8,0.001970806813276138,-8.642671882979529e-7,-1.0687691080751363e-8,0.0019708657346138646,-7.754852094272468e-7,-1.0775054263680461e-8,0.001970952685885467,-7.59358064857489e-7,-1.0790873734095068e-8,0.001971091690133412,-7.980785287859418e-7,-1.075270881326718e-8,0.0019712997330186763,-8.661819417994633e-7,-1.0685635082892515e-8,0.001971584912381313,-9.325958251431366e-7,-1.0620251655417039e-8,0.001971944386893563,-9.632389319096306e-7,-1.0590148555848218e-8,0.0019723623172643737,-9.250101036695197e-7,-1.0627989281767547e-8,0.001972808830631805,-7.919702181976068e-7,-1.0759406320346234e-8,0.0019732419679683944,-5.536462457545765e-7,-1.0994779047683153e-8,0.001973614823661226,-2.2335933302557065e-7,-1.1320973812675675e-8,0.0019738884737286657,1.5799990717252462e-7,-1.1697589927724113e-8,0.0019740473224203847,5.280347963458416e-7,-1.2062959771330483e-8,0.00197410928803649,8.20358883314744e-7,-1.2351497457826083e-8,0.001974123317235958,9.877098265902934e-7,-1.251656570489879e-8,0.001974153255924493,1.0192999814429548e-6,-1.2547588496020676e-8,0.0019742556717545824,9.434428611000109e-7,-1.2472576911245205e-8,0.0019744623865517686,8.154180584666158e-7,-1.2346103517772794e-8,0.001974774135226251,6.982018680757243e-7,-1.2230299564424663e-8,0.001975164866836536,6.44800593857355e-7,-1.2177471453811616e-8,0.001975592187135106,6.871905621175031e-7,-1.221921769330186e-8,0.001976009248334955,8.327104581488337e-7,-1.2362852376014084e-8,0.0019763749925609457,1.0663971388143509e-6,-1.259366276420492e-8,0.001976661273607453,1.3571121056137057e-6,-1.2880913658228117e-8,0.0019768563928079714,1.6655158949823804e-6,-1.3185711559255818e-8,0.001976965150873674,1.9522178827619e-6,-1.3469078659361015e-8,0.0019770060231024044,2.1846215565256827e-6,-1.3698753468466588e-8,0.001977006519814771,2.3414551764659016e-6,-1.3853691582153881E-08,0.0019769979445145433,2.4146980122888094e-6,-1.3925966248255384e-8,0.0019770105929741008,2.409217344158514e-6,-1.3920387497226856e-8,0.0019770700502998715,2.340825972519958e-6,-1.3852563760087515e-8,0.0019771946962903715,2.233613597212906e-6,-1.3746268263541514e-8,0.001977394083641216,2.117137695108602e-6,-1.3630691930216664e-8,0.00197766776849491,2.02355937158754e-6,-1.353764934893884e-8,0.0019780043391657534,1.9844130263776497e-6,-1.3498405475263642e-8,0.001978380746958981,2.0264143260061553e-6,-1.353951384539365e-8,0.001978762774876461,2.1656876800633962e-6,-1.3677055583687163e-8,0.00197910834678161,2.4005955486988004e-6,-1.3909478074330424e-8,0.0019793755690996236,2.7052325640155345e-6,-1.4211108687579435e-8,0.0019795358980323765,3.0280329593492748e-6,-1.4530782563116931e-8,0.0019795888602322726,3.3008762468395384e-6,-1.4800926854883546e-8,0.001979569909580966,3.4602522751505376e-6,-1.4958607317158036e-8,0.0019795428292347273,3.4729664075210322e-6,-1.4971007396679774e-8,0.0019795766858330343,3.3517185374406653e-6,-1.485078131230214e-8,0.001979719097725177,3.150012236996182e-6,-1.4650917551003886e-8,0.0019799807430923235,2.939717703579574e-6,-1.4442508997057445e-8,0.001980337179051505,2.785210747885825e-6,-1.4289220607364234e-8,0.001980742604001265,2.726455749296866e-6,-1.423061560237119e-8,0.0019811460867675897,2.7744247605888214e-6,-1.4277633511904348e-8,0.001981503955526798,2.915383589334282e-6,-1.4416788031389436e-8,0.0019817866606374806,3.119072655949307e-6,-1.4618203584318185e-8,0.0019819810541467733,3.3472878569643014e-6,-1.4844069697144964e-8,0.0019820896686203603,3.5612914305410776e-6,-1.5055977587760283e-8,0.00198212818028609,3.7276910519524167e-6,-1.522077511487346e-8,0.0019821217200457113,3.822702343827983e-6,-1.531483119915164e-8,0.001982100526968717,3.8346574475360094e-6,-1.5326546430867445e-8,0.001982095446197697,3.7647342774013897e-6,-1.525707214555077e-8,0.0019821337647565624,3.626027788928867e-6,-1.511936833404366e-8,0.00198223586051072,3.441229396883561e-6,-1.4935887639064302e-8,0.00198241295750562,3.2394074768603723e-6,-1.4735395171384388e-8,0.001982665941468611,3.0524134698759988e-6,-1.4549442314482317e-8,0.0019829850278711707,2.9111670054398966e-6,-1.4408723058841443e-8,0.0019833501452222605,2.841809897117393e-6,-1.4339272286988301e-8,0.0019837320752173157,2.8615334931783054e-6,-1.4358293854803897e-8,0.001984094861776407,2.9738376767734945e-6,-1.4469388182609625e-8,0.001984400625925791,3.163606036205151e-6,-1.465759406565055e-8,0.001984617903763515,3.39387177161666e-6,-1.4886148324894974e-8,0.001984733239124418,3.6078493427449448e-6,-1.5098540495896356e-8,0.001984762586708769,3.740319866084089e-6,-1.522990885918146e-8,0.001984755051949164,3.739151728899739e-6,-1.5228487094580237e-8,0.0019847812506757346,3.589373742862749e-6,-1.507949371776934e-8,0.0019849070018280613,3.324884794977739e-6,-1.481665653780441e-8,0.0019851657075547475,3.017077739740492e-6,-1.4510837813089766e-8,0.001985546337819205,2.7455641756043497e-6,-1.4240999293311826e-8,0.0019860027126962026,2.5689052542741243e-6,-1.4065234505030063e-8,0.001986474911058454,2.5102785475177926e-6,-1.4006586884914449e-8,0.001986909190146146,2.5597820777408202e-6,-1.4055310223533645e-8,0.001987269141598994,2.685729541695863e-6,-1.4180024373601416e-8,0.001987538415975901,2.8470244196991636e-6,-1.4339955147058143e-8,0.0019877184535379826,3.0026745725009918e-6,-1.4494369758932575e-8,0.001987824315689395,3.1178169485181043e-6,-1.4608579499453113e-8,0.0019878803285720108,3.1671431670578377e-6,-1.4657380747630862e-8,0.001987916017903525,3.1367378731829e-6,-1.4626916752757822e-8,0.00198796225735607,3.0248075252962984e-6,-1.4515412078652403e-8,0.001988047562103157,2.8413753222055076e-6,-1.4332850735856531e-8,0.0019881946131477435,2.60687216740141e-6,-1.4099542829987458e-8,0.001988417298411971,2.349527873938127e-6,-1.3843513258288562e-8,0.0019887187102340417,2.1016769841030624e-6,-1.3596844711551368e-8,0.001989090425727029,1.895388778983732e-6,-1.3391377619170956e-8,0.001989513160461744,1.7578895979745178e-6,-1.3254203612054567e-8,0.001989958770446367,1.7071788559904026e-6,-1.3203316404532476e-8,0.001990393534070427,1.7481911434179824e-6,-1.3243755974189393e-8,0.0019907827350952195,1.8697874359525122e-6,-1.336454230925692e-8,0.00199109681028482,2.0431157285996407e-6,-1.3536978415285554e-8,0.001991319151058384,2.222726763531207e-6,-1.371574429721612e-8,0.0019914544946981836,2.3526243150694117e-6,-1.3844968523515149e-8,0.0019915347809361574,2.379086977407752e-6,-1.3871077631016254e-8,0.001991617224389839,2.269346242030513e-6,-1.376144811926663e-8,0.0019917698902892863,2.0294384279911193e-6,-1.3522157951942242e-8,0.0019920466456429435,1.7095202837346074e-6,-1.3203206351826863e-8,0.001992463423863107,1.3885001624897012e-6,-1.288317749571206e-8,0.0019929908638321907,1.143480512993817e-6,-1.2638853847306288e-8,0.0019935682104733686,1.0214708448982725e-6,-1.2517091776224162e-8,0.0019941285130815195,1.0283869976145581e-6,-1.2523846927649901e-8,0.0019946200002937324,1.1365035316745898e-6,-1.2631538348227922e-8,0.001995015574720192,1.300685938679259e-6,-1.2795181679410482e-8,0.0019953118522825736,1.4734595686959486e-6,-1.2967407715671091e-8,0.0019955231121392253,1.6145721408287418e-6,-1.3108023269665573e-8,0.001995674485554681,1.6953207844439172e-6,-1.3188361405392658e-8,0.001995796372307964,1.6996250991069645e-6,-1.3192379686625797e-8,0.0019959203169879858,1.6236696505985474e-6,-1.3116312565503816e-8,0.0019960757921594096,1.475055708754886e-6,-1.2967807444551166e-8,0.0019962873383381975,1.271613814117125e-6,-1.2764702800757431e-8,0.001996571813660661,1.039617664310189e-6,-1.253321173415832e-8,0.001996935876688311,8.10987734279826e-7,-1.2305124592895642e-8,0.0019973742307001037,6.19237649378676e-7,-1.2113796509748371e-8,0.0019978693382533895,4.943937406260044e-7,-1.198913399233764e-8,0.0019983931254425164,4.575767847518032e-7,-1.1952232495962723e-8,0.0019989108215040154,5.162092500765573e-7,-1.2010593106379118e-8,0.0019993866344011147,6.609218430927506e-7,-1.215498240158599e-8,0.001999790531775251,8.650472468204294e-7,-1.2358850045151053e-8,0.0020001051872744658,1.0872195388065961e-6,-1.258086799786539e-8,0.0020003320300538583,1.2774384887276872e-6,-1.2770987731393865e-8,0.0020004948833237455,1.386820963278251e-6,-1.2880238021882123e-8,0.0020006389899060112,1.380409164658492e-6,-1.2873596607745973e-8,0.0020008230599442827,1.250445294729628e-6,-1.2743295658742569e-8,0.0020011035292148414,1.0248522465183068e-6,-1.2517287786395435e-8,0.0020015145004623476,7.642707366236366e-7,-1.2256256246504428e-8,0.002002052224806011,5.444286659134359e-7,-1.203598958625036e-8,0.0020026739455431216,4.2948544136936147e-7,-1.1920745495741174e-8,0.002003313579512777,4.496948714502562e-7,-1.1940890619262743e-8,0.0020039058326337656,5.94885512572639e-7,-1.208630936784008e-8,0.0020044058510690797,8.245709877731227e-7,-1.2316460457905977e-8,0.002004796841439746,1.0859096843776425e-6,-1.2578353220820108e-8,0.0020050868112686674,1.3296101468781744e-6,-1.2822521486441082e-8,0.0020053001577274294,1.5190539612688328e-6,-1.3012215262669332e-8,0.002005469139021302,1.6331027930982382e-6,-1.3126245137314179e-8,0.0020056275325741548,1.6652065850658668e-6,-1.3158091335992063e-8,0.0020058066106900104,1.6211993428942383e-6,-1.3113673482230696e-8,0.0020060325903481888,1.5170686408574125e-6,-1.3009079439298547e-8,0.002006324650222416,1.3769637497429265e-6,-1.2868534813545612e-8,0.0020066929754689877,1.2310800018681066e-6,-1.2722269046986007e-8,0.002007136798951896,1.1127780991151567e-6,-1.2603647647411476e-8,0.0020076429784578894,1.054378781853201e-6,-1.254500526328362e-8,0.002008186099861188,1.081598763449451e-6,-1.2572118807769247e-8,0.0020087311297168646,1.2074288608481698e-6,-1.2698088673752461e-8,0.002009239103287181,1.4270773152031296e-6,-1.2918234760844035e-8,0.0020096752789058284,1.716007875070945e-6,-1.3208055118895744e-8,0.0020100179652990918,2.0326550064858777e-6,-1.352587734554098e-8,0.0020102654993804938,2.3260539621831587e-6,-1.3820486693134687e-8,0.0020104390771972405,2.547030253336762e-6,-1.4042386690680413e-8,0.002010580106295075,2.6604804750482006e-6,-1.4156191902665433e-8,0.0020107419502173964,2.6557832329077294e-6,-1.4151139319925016e-8,0.0020109771879805558,2.5523069324261464e-6,-1.4046647718123685e-8,0.0020113229426591533,2.397375789826293e-6,-1.3890280276741745e-8,0.0020117884211216064,2.2554114694326285e-6,-1.3746841070905745e-8,0.0020123497341117697,2.1898980519676447e-6,-1.3680257875013628e-8,0.002012955651515441,2.2438213886840194e-6,-1.3733900181722728e-8,0.0020135433728180985,2.4266447610087438e-6,-1.39174182558369e-8,0.0020140579317852875,2.71366437476233e-6,-1.4206014604787913e-8,0.0020144668228012324,3.057204948402956e-6,-1.4551671002974376e-8,0.0020147647475891694,3.403199418756304e-6,-1.4899863316082618e-8,0.0020149692079483423,3.7055522989431925e-6,-1.520408419186706e-8,0.00201511150064555,3.9340846123691215e-6,-1.5433892567141782e-8,0.0020152277251075717,4.076173637410506e-6,-1.5576577887703656e-8,0.002015352239871468,4.134536644454852e-6,-1.563490853663456e-8,0.0020155138461719147,4.123692670047893e-6,-1.5623536213635403e-8,0.002015733840614426,4.0666243269108735e-6,-1.55656072328393e-8,0.0020160248674950276,3.992054942875605e-6,-1.549001455038565e-8,0.002016389829459018,3.93198510839712e-6,-1.542893704410032e-8,0.0020168206820040395,3.918765993757011e-6,-1.541493242521958e-8,0.0020172975756185623,3.980985777701276e-6,-1.5476833726911856E-08,0.0020177894153615887,4.137875398081949e-6,-1.5634127210906082e-8,0.002018257233673766,4.392939175307108e-6,-1.589050240627824e-8,0.0020186613266694954,4.728908346737077e-6,-1.6228694079735292e-8,0.0020189715206215524,5.107091194937329e-6,-1.660975065177038e-8,0.0020191776486713324,5.473615092617835e-6,-1.6979292753435012e-8,0.002019295779758033,5.772429950864491e-6,-1.7280651483171656e-8,0.002019366518176988,5.961349214838775e-6,-1.7471108259171236e-8,0.0020194449006417144,6.025194125173232e-6,-1.7535205282025255e-8,0.0020195851788385455,5.980999551576999e-6,-1.7490022440756466e-8,0.0020198257279237858,5.873603143711555e-6,-1.7380744515888384e-8,0.0020201787279912464,5.763467291729197e-6,-1.7268403150332105e-8,0.002020627231636164,5.710627551405569e-6,-1.7213706810198902e-8,0.002021130054639501,5.7592346508056935e-6,-1.7261429057047976e-8,0.002021632985760314,5.926817997082376e-6,-1.7429501306651574e-8,0.0020220830928120654,6.20118699778434e-6,-1.7705783145695567e-8,0.0020224418380563767,6.54565640069781e-6,-1.8053264624984565e-8,0.002022693062944097,6.910491614078083e-6,-1.842162169656846e-8,0.0020228439203432147,7.246330768272015e-6,-1.876083414523109e-8,0.00202291967499455,7.515105216752511e-6,-1.9032294027402762e-8,0.002022955371584404,7.695808702277565e-6,-1.9214681031198905e-8,0.0020229876289183193,7.785067752112486e-6,-1.9304540519772036e-8,0.002023048591573068,7.794246700981407e-6,-1.931333154928886e-8,0.0020231624980154585,7.745203409912733e-6,-1.926311028183914e-8,0.0020233442466032186,7.666212202219833e-6,-1.918240528759956e-8,0.0020235989734061375,7.588624354679677e-6,-1.9102866270263047e-8,0.002023921859131006,7.544034825291021e-6,-1.9056442936228402e-8,0.0020242978850773183,7.561308638331777e-6,-1.907241483206435e-8,0.0020247018586647472,7.662755338235264e-6,-1.9173526603769192e-8,0.0020250996748987574,7.859045107714878e-6,-1.9370801266084847e-8,0.0020254522736660083,8.143408211325172e-6,-1.9657586738974178e-8,0.0020257235021321623,8.487284167289417e-6,-2.0005064388235096e-8,0.0020258914008579325,8.841089839559924e-6,-2.0362983469746076e-8,0.0020259593522022504,9.143502782538063e-6,-2.0669092452411597e-8,0.002025960886878649,9.339097586877438e-6,-2.0867079499950275e-8,0.0020259529258870486,9.398254944606137e-6,-2.0926796085751366e-8,0.0020259980842913805,9.329515946722925e-6,-2.085676872498728e-8,0.0020261436498098338,9.177436067364245e-6,-2.0702003689784143e-8,0.002026406976788043,9.007145260904893e-6,-2.0528373390696197e-8,0.0020267726311981303,8.883574211806648e-6,-2.0401649057662443e-8,0.002027200045442295,8.85396367750792e-6,-2.0369837232274553e-8,0.00202763668051562,8.938366466169523e-6,-2.0453528387901555e-8,0.002028031669042613,9.128606584898225e-6,-2.0644735364591285e-8,0.0020283466335991557,9.39376249959402e-6,-2.0912327645621907e-8,0.00202856210099846,9.689503075361093e-6,-2.121142268331872e-8,0.002028679138809268,9.968698912730516e-6,-2.1494151041399055e-8,0.0020287166795685033,1.0191047732068404e-5,-2.1719481725996414e-8,0.0020287057358542504,1.0329897581158466e-5,-2.186021727137697e-8,0.0020286822638829623,1.0375287950705e-5,-2.1906123600102078e-8,0.0020286804677956084,1.0333353870444897e-5,-2.186332802988044e-8,0.0020287278066525257,1.022312602899354e-5,-2.175105158087606e-8,0.0020288421647846723,1.0072112218170743e-5,-2.1597111262225863e-8,0.0020290308875681577,9.911875842701016e-6,-2.143344844153332e-8,0.0020292909665944156,9.774243576700235e-6,-2.129232494824514e-8,0.0020296097239808366,9.688113323346603e-6,-2.1203133387480477e-8,0.0020299656877050217,9.67644684934271e-6,-2.11893658424898e-8,0.0020303297882378582,9.752905982662366e-6,-2.1265165055571597e-8,0.0020306676073327287,9.917766980710009e-6,-2.1431087980682735e-8,0.002030943934628873,1.0153584998504719e-5,-2.1669593622508353e-8,0.0020311306708723493,1.0422590466425067e-5,-2.1942323425636325e-8,0.002031217579951732,1.0669289798588603e-5,-2.219275019954811e-8,0.002031222335730858,1.0831796516238949e-5,-2.235778014634001e-8,0.002031193048301995,1.0861890930176747e-5,-2.2388241959551486e-8,0.00203119703859634,1.0746492481003186e-5,-2.2270735146629827e-8,0.002031297195154339,1.0517768776177442e-5,-2.2037844471414716e-8,0.0020315273094421984,1.0243291108028e-5,-2.1758092239078608e-8,0.0020318802493412753,1.0000530434740792e-5,-2.1510081000851584e-8,0.002032314137298937,9.850022664826762e-6,-2.1355340836590286e-8,0.002032770207259545,9.81982278786599e-6,-2.132258299426645e-8,0.0020331917199350323,9.904280503784482e-6,-2.14063888568104e-8,0.002033536949342053,1.0072489993620747e-5,-2.157566092331201e-8,0.0020337847861032054,1.0280151984724976e-5,-2.178555756437125e-8,0.002033934644404204,1.0480633734434917e-5,-2.1988684509594312e-8,0.002034002956023895,1.0633476288885205e-5,-2.2143773497299168e-8,0.0020340179562521273,1.0710065550269308e-5,-2.222152752762457e-8,0.002034013813275749,1.0696609639052564e-5,-2.2207730651406188e-8,0.002034024860105363,1.0594604521297306e-5,-2.2103765848150748e-8,0.002034080587443095,1.0419122419825089e-5,-2.19248717814829e-8,0.0020342019278727854,1.0195455518673118e-5,-2.169670062200928e-8,0.0020343991620295483,9.954802844166271e-6,-2.145091239995425e-8,0.0020346714321390342,9.729785129053017e-6,-2.122063084652677e-8,0.0020350074824118905,9.550386709694598e-6,-2.103636451097717e-8,0.002035387185509016,9.440493583899565e-6,-2.0922533216016104e-8,0.0020357836037984364,9.414912608424384e-6,-2.089444107511516e-8,0.0020361655489376162,9.476655420791237e-6,-2.0955452598258494e-8,0.002036501001353076,9.614310232276557e-6,-2.1094206564680248e-8,0.002036762210872142,9.79994037620005e-6,-2.1282363869390327e-8,0.0020369330481708123,9.989184837192771e-6,-2.1474658477092256e-8,0.002037017771296381,1.012628359366276e-5,-2.1614061269663444e-8,0.002037047915437464,1.015658110540848e-5,-2.164463677168314e-8,0.0020370813026867737,1.0046056108125668e-5,-2.153154985964805e-8,0.0020371875508600258,9.800650799576031e-6,-2.1280773292665346e-8,0.002037421936656467,9.472336381754918e-6,-2.094520101904596e-8,0.0020378005857027153,9.143072453333508e-6,-2.0608270685343048e-8,0.0020382928899801513,8.892876275813154e-6,-2.035149508235166e-8,0.0020388358398022157,8.770499811406708e-6,-2.0224669132370346e-8,0.002039359770557812,8.781941663669052e-6,-2.0234157130035133e-8,0.0020398103504522254,8.897729739466089e-6,-2.0350211586612295e-8,0.0020401588643933475,9.069382952218172e-6,-2.0523629149456965e-8,0.0020404019625274035,9.245293559122839e-6,-2.0701866584475123e-8,0.002040555827693921,9.381504609670853e-6,-2.0840025781472896e-8,0.0020406489259659406,9.447228151930216e-6,-2.0906536788607898e-8,0.0020407154331214734,9.426696770852405e-6,-2.088512838607746e-8,0.00204078985578392,9.318873354513713e-6,-2.077459998128169e-8,0.00204090271395194,9.135845367544504e-6,-2.0587206452044835e-8,0.0020410771407216085,8.900239108317796e-6,-2.034599700431967e-8,0.002041326419699712,8.641807325844239e-6,-2.0081292128129632e-8,0.0020416526435947345,8.393337339943669e-6,-1.982648942593215e-8,0.002042046703171445,8.186237577472187e-6,-1.9613586261310882e-8,0.0020424895896427346,8.046339142518472e-6,-1.9468954219893878e-8,0.0020429547843234747,7.990305000968632e-6,-1.940972395069631e-8,0.0020434115251253306,8.022843551834938e-6,-1.9440936885743926e-8,0.002043828782565443,8.134892448156656e-6,-1.9553616311880043e-8,0.0020441798602190554,8.302917025788585e-6,-1.972393223071845e-8,0.0020444477519546617,8.4896969525292e-6,-1.9913901817449882e-8,0.0020446311903293338,8.647706547103258e-6,-2.0074815114312748e-8,0.0020447501973034107,8.726723226422148e-6,-2.0155077328217368e-8,0.002044848244940901,8.686627904246379e-6,-2.011341515541943e-8,0.0020449867383772256,8.513737749746249e-6,-1.9935671842505055e-8,0.002045228541166259,8.234144633017872e-6,-1.964846070320371e-8,0.0020456134638839763,7.913572361465218e-6,-1.931898185881672e-8,0.0020461377861319533,7.63729312921591e-6,-1.9034476270744172e-8,0.0020467521585061633,7.477202828544634e-6,-1.8868592712503943e-8,0.002047381272856939,7.464688941483806e-6,-1.8853644549237028e-8,0.0020479532062943314,7.58431837206364e-6,-1.8974080315531745e-8,0.0020484215587382487,7.78774400789283e-6,-1.918060677428675e-8,0.0020487722662357426,8.015405362121847e-6,-1.941233147259879e-8,0.002049018198077936,8.214197838192044e-6,-1.9614843383185996e-8,0.0020491889216315115,8.346735295295853e-6,-1.9749735808637718e-8,0.0020493210512069144,8.393632060507522e-6,-1.979700451228811e-8,0.0020494512449664246,8.351957607960816e-6,-1.9753525015406534e-8,0.0020496117250101715,8.23232744734854e-6,-1.963010652990153e-8,0.002049827426776408,8.055769435622714e-6,-1.944827439536342e-8,0.002050114053526486,7.850558869214728e-6,-1.9236989441846953e-8,0.0020504767490431433,7.648847136675355e-6,-1.9029157282885984e-8,0.0020509094756088818,7.482854532348159e-6,-1.8857725613841873e-8,0.002051395453334524,7.380623768682452e-6,-1.8751377321085998e-8,0.0020519090052662243,7.361760387571575e-6,-1.8730230620980626e-8,0.0020524188593675297,7.433818308990292e-6,-1.8802173480598776e-8,0.0020528926844391848,7.589950602549962e-6,-1.8960428834936324e-8,0.0020533024421489844,7.808390524123514e-6,-1.9182928498524213e-8,0.0020536299340462158,8.054192913403938e-6,-1.9433978306497595e-8,0.0020538718361486044,8.283434195619361e-6,-1.9668482974938482e-8,0.0020540434289632683,8.45004521906672e-6,-1.9838956797592828e-8,0.0020541797514216247,8.515402796906978e-6,-1.99054534057615e-8,0.0020543322054149753,8.459930706160225e-6,-1.984759651675978e-8,0.0020545585952090927,8.293944827313858e-6,-1.9675807879402267e-8,0.0020549063810787,8.062431097372e-6,-1.9436246264897823e-8,0.0020553934153247633,7.837497117823304e-6,-1.920304947832446e-8,0.002055995700465939,7.696451661454231e-6,-1.9055809090821722e-8,0.002056651811353018,7.693154521324639e-6,-1.9050112336143213e-8,0.0020572846695030584,7.837818600247798e-6,-1.919671296351236e-8,0.002057829365555983,8.096658859821898e-6,-1.946106441052887e-8,0.002058252145844519,8.409493816274429e-6,-1.978134730901258e-8,0.0020585536030746266,8.712990432294358e-6,-2.0092375696100318e-8,0.002058759808669095,8.957877739096902e-6,-2.0343349339844396e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json new file mode 100644 index 0000000..4dcccb3 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":17000,"numberOfSamples":1000,"samples":[0.0020589095356776037,9.116105504093818e-6,-2.0505272164235435e-8,0.002059043510293161,9.180255067418492e-6,-2.0570390059257767e-8,0.0020591976431414568,9.159302745262173e-6,-2.054785882824188e-8,0.002059399625909375,9.073759899582225e-6,-2.045874721325323e-8,0.0020596674746746844,8.95148439515232e-6,-2.033170765436402e-8,0.00206000888513569,8.824207938457376e-6,-2.019937465729761e-8,0.002060420904195782,8.724308617167852e-6,-2.0095032184184587e-8,0.0020608899779143205,8.68132520947309e-6,-2.0049049012491025e-8,0.0020613928365786132,8.717972919315283e-6,-2.008482719556681e-8,0.0020618988348358,8.845955809078727e-6,-2.021453482958727e-8,0.002062374125258358,9.062441716260134e-6,-2.0435474508193457e-8,0.0020627874895708226,9.348364762479418e-6,-2.072826871336509e-8,0.0020631169945883126,9.669654112154566e-6,-2.1058015950605946e-8,0.0020633560604633263,9.98198746864013e-6,-2.137908652587735e-8,0.002063517288428266,1.023877017749716e-5,-2.164330411583651e-8,0.002063632645942536,1.0401139220424818e-5,-2.1810299545772995e-8,0.0020637491502467223,1.0448183572471843e-5,-2.185815206205818e-8,0.0020639198525462597,1.0385066085844465e-5,-2.1791885352537092e-8,0.002064190922547863,1.0246206042140799e-5,-2.1646843352671344e-8,0.002064587291919049,1.0090636415679369e-5,-2.1483949591921145e-8,0.0020651014652658243,9.988078798241432e-6,-2.13753442005915e-8,0.002065691367589172,9.998026570269695e-6,-2.1382754626188622e-8,0.002066291012197917,1.0149230388591655e-5,-2.153622147579785e-8,0.002066831501387849,1.0429452683376921e-5,-2.182338975756979e-8,0.002067263169333099,1.0791237145000513e-5,-2.2195367611649683e-8,0.002067568557615017,1.1170401662074308e-5,-2.2585814103541868e-8,0.0020677618994642912,1.1507219742502304e-5,-2.2932879418767003e-8,0.0020678786593962845,1.1760992660056131e-5,-2.319433420100162e-8,0.00206796228678175,1.1914801500387303e-5,-2.3352529680849556e-8,0.0020680536670884195,1.1972789302221374e-5,-2.3411612372762594e-8,0.002068185083895209,1.1954165594086708e-5,-2.339133460421787e-8,0.0020683778972125345,1.1887104070253944e-5,-2.3320744180844544e-8,0.002068642307553408,1.180390121082168e-5,-2.3233173740066774e-8,0.002068977856263579,1.1737393814191125e-5,-2.3162537647244684e-8,0.002069373999389383,1.1717978706675388e-5,-2.3140267827765654e-8,0.0020698107873335274,1.1770514429890422e-5,-2.3192140613020073e-8,0.0020702602014525747,1.1910715973072524e-5,-2.3334573248691355e-8,0.002070688939508567,1.2141252692424613e-5,-2.3570578997251697e-8,0.0020710632916822844,1.2448527390387745e-5,-2.3886375187523575e-8,0.002071356066541742,1.2801803268012288e-5,-2.4250382510760558e-8,0.0020715543319876706,1.3156451701310057e-5,-2.4616491549786515e-8,0.00207166551766087,1.3462116971780244e-5,-2.493246716960177e-8,0.002071719050649512,1.3674624989544023e-5,-2.5152297788431047e-8,0.0020717617377544535,1.3768431742533288e-5,-2.524915847137308e-8,0.0020718472574079074,1.374550081599251e-5,-2.5224700784713937e-8,0.0020720223622184525,1.363727582508806e-5,-2.5111195478472052e-8,0.0020723137031515636,1.3498471162329926e-5,-2.496519243244624e-8,0.002072719191338335,1.339381780152275e-5,-2.485385332221292e-8,0.002073206795757431,1.338096643139214e-5,-2.483723759380846e-8,0.0020737219362692,1.3494245133198445e-5,-2.4951381108780162e-8,0.00207420211020392,1.373455339359368e-5,-2.5197661804572466e-8,0.0020745944143773383,1.4069430089365293e-5,-2.554271199173207e-8,0.002074869746023746,1.4443723774723879e-5,-2.5929405831806994e-8,0.0020750285128816304,1.479667972622433e-5,-2.6294607590510123e-8,0.0020750966176363173,1.5078544268788864e-5,-2.6586483364644268e-8,0.0020751148669499956,1.5260889492796408e-5,-2.677529701011583e-8,0.0020751270004247535,1.5338783722705668e-5,-2.6855711891848633e-8,0.0020751704833224575,1.5326746513909972e-5,-2.684261106263222e-8,0.0020752715762822763,1.5251984116094389e-5,-2.6764080409271047e-8,0.002075444009124103,1.5147762629496005e-5,-2.6654533703698157e-8,0.002075689729548116,1.504827746606285e-5,-2.6549398220846943e-8,0.002076000366210549,1.4985082629739757e-5,-2.6481430881895264e-8,0.002076358657231711,1.498441301720375e-5,-2.6477967033587838e-8,0.0020767397992757677,1.5064587977735741e-5,-2.6558240543651232e-8,0.002077113259954405,1.5233004156103975e-5,-2.6730240753699176e-8,0.0020774459186594374,1.548284453443912e-5,-2.6987226620384064e-8,0.002077707337417931,1.5790500049088474e-5,-2.7304945193864276e-8,0.002077877261826839,1.6115682164498162e-5,-2.764165309505029e-8,0.0020779538822941765,1.6406603632449e-5,-2.7943458192743133e-8,0.0020779594398716464,1.6611353072832964e-5,-2.8156170195329946e-8,0.0020779390055978278,1.6693382219093287e-5,-2.824146792653341e-8,0.0020779502913158923,1.6645409426593984e-5,-2.8191416586278918e-8,0.002078046844161103,1.6494938438233428e-5,-2.803425405045996e-8,0.0020782610782756087,1.6297779276038386e-5,-2.782772424649056e-8,0.0020785941150732565,1.612175588363035e-5,-2.7642241561896423e-8,0.0020790159587568842,1.6027141518751153e-5,-2.754063775278662e-8,0.0020794748756735038,1.6050743503202965e-5,-2.756160492638588e-8,0.0020799118940896845,1.619791239208086e-5,-2.7711253577368164e-8,0.0020802757626315633,1.6443513592555717e-5,-2.7963924844698012e-8,0.0020805345246273253,1.674043522617959e-5,-2.8270877063799093e-8,0.002080681226938013,1.7032634096537527e-5,-2.857380300224129e-8,0.002080732951995497,1.7268943244941685e-5,-2.881925151534997e-8,0.002080724194408864,1.7413982316484317e-5,-2.8970092565580946e-8,0.0020806971435383278,1.745367834708195e-5,-2.901136620869484e-8,0.0020806920260737966,1.7394912621893336e-5,-2.8949975367327408e-8,0.002080739988704213,1.72607815502705e-5,-2.8809768850635676e-8,0.002080859515267317,1.70838985357426e-5,-2.8624560861473263e-8,0.0020810559636607064,1.6899885539921436e-5,-2.8431349761988563e-8,0.0020813230557203376,1.6742274751481572e-5,-2.8265022453786016e-8,0.0020816451171855417,1.6639033795220282e-5,-2.8154767386943654e-8,0.0020819993189068113,1.6610203007369465e-5,-2.812164312243963e-8,0.0020823577851628115,1.6665911699555345e-5,-2.817650914736122e-8,0.0020826899633292987,1.680426930790959e-5,-2.8317770861029884e-8,0.002082966018551884,1.7009150846059025e-5,-2.852896394235378e-8,0.002083162073066397,1.7248756752608075e-5,-2.8777135556946513e-8,0.0020832674579102563,1.7476932878513038e-5,-2.9014151463292816e-8,0.0020832924694833593,1.7639846001218737e-5,-2.9183675584427234e-8,0.0020832727739094805,1.7689422424584678e-5,-2.9235274256026354e-8,0.0020832653064138955,1.7601030960855478e-5,-2.9142946193151746e-8,0.0020833330245630757,1.7387646058308056e-5,-2.8919920603682593e-8,0.002083522753935488,1.7100955802243916e-5,-2.8619808329920083e-8,0.0020838468179513333,1.6815710705222776e-5,-2.8320330725747508e-8,0.002084278439419095,1.6604039049236554e-5,-2.8096659219011013e-8,0.0020847625566020353,1.6512511531122853e-5,-2.799759622144117e-8,0.002085235023267062,1.6551414097566436e-5,-2.8034351982823543e-8,0.0020856408987005555,1.6697366798988196e-5,-2.8183104552679034e-8,0.0020859461245631033,1.690450794263447e-5,-2.8396456266918066e-8,0.0020861415082864985,1.7118421130651345e-5,-2.8617819915088376e-8,0.0020862405867537945,1.7288696492304295e-5,-2.8794501922373435e-8,0.0020862736330299575,1.737809826474195e-5,-2.8887350772104285e-8,0.002086279804006059,1.7367702998098975e-5,-2.8876251011356654e-8,0.0020862990421835854,1.7258011428210435e-5,-2.8761400589556528e-8,0.002086365115922038,1.7066487746353264e-5,-2.8560802190087286e-8,0.0020865008408489875,1.682256943694604e-5,-2.8305053907286174e-8,0.002086715919263949,1.656156014476701e-5,-2.8030941270095572e-8,0.0020870071990390262,1.6318714925791584e-5,-2.7775237638634485e-8,0.0020873606761909773,1.612444436636325e-5,-2.7569706696292268e-8,0.0020877543487093165,1.6001012803300085e-5,-2.7437694306513178e-8,0.0020881612220372825,1.596050578626689e-5,-2.7392040420271822e-8,0.002088552230288847,1.6003549082607828e-5,-2.7433729548710437e-8,0.0020888992435952967,1.611837191802468e-5,-2.7550832366391624e-8,0.0020891786471092483,1.6280160651193357e-5,-2.7717702617435652e-8,0.0020893761169842166,1.6451350603092855e-5,-2.7895164399045403e-8,0.002089492678959948,1.6584503687808136e-5,-2.803347849401429e-8,0.0020895506186168747,1.6629975070205594e-5,-2.8080421596796448e-8,0.0020895956639829702,1.654957839540818e-5,-2.799570583593579e-8,0.002089690395538273,1.6333804471878623e-5,-2.7769090685971695e-8,0.002089896033722322,1.6014373257708863e-5,-2.7433529126734662e-8,0.0020902475806469254,1.5661140369289124e-5,-2.7061908434893643e-8,0.002090735796633609,1.5359270098771867e-5,-2.67432120407e-8,0.00209130859780546,1.5176778132377433e-5,-2.6548672939580005e-8,0.002091891842946931,1.5140754055244766e-5,-2.6506954770801897e-8,0.0020924165245282877,1.5233761825979138e-5,-2.660030176659009e-8,0.002092838108888907,1.5407435049015967e-5,-2.6778581186473033e-8,0.0020931426145603437,1.5602073463539797e-5,-2.697961713028947e-8,0.002093342524197185,1.576303163752042e-5,-2.7146256028244872e-8,0.0020934681224012187,1.5850536534203465e-5,-2.7236664035016808e-8,0.002093558330924372,1.584356238962605e-5,-2.7228488040135843e-8,0.002093652929189025,1.5739702587511593e-5,-2.711885649216876e-8,0.002093786585558144,1.5552692842214613e-5,-2.6921891528832596e-8,0.002093984610700063,1.530847635566744e-5,-2.6664625730728237e-8,0.002094260408522702,1.5040327883243397e-5,-2.6381866829385993e-8,0.0020946146605398033,1.4783590396206654e-5,-2.6110629573656682e-8,0.0020950361908124754,1.4570612940870071e-5,-2.5884801421741135e-8,0.002095504287982403,1.4426464136665532e-5,-2.573066979561237e-8,0.0020959920098880948,1.436589162782448e-5,-2.566378974830331e-8,0.0020964698904481064,1.4391654082877689e-5,-2.568727581986414e-8,0.002096909672107035,1.4494027260271335e-5,-2.5791262682142066e-8,0.002097287955238897,1.4651254484391914e-5,-2.595327902709219e-8,0.0020975898588619776,1.483086589384205e-5,-2.6139490483611765e-8,0.0020978129239909112,1.4992194433574303e-5,-2.6307227096703933e-8,0.002097971126731232,1.5091109530391926e-5,-2.6409931481351222e-8,0.002098097703998993,1.5088284225384236e-5,-2.6405927211233465e-8,0.002098243998954342,1.4961356647547054e-5,-2.6271336291410024e-8,0.002098470643735973,1.4718558663920096e-5,-2.601451060716538e-8,0.002098829142769062,1.4406847413029446e-5,-2.568461021728266e-8,0.002099338584112944,1.4104891981013634e-5,-2.5364227738068856e-8,0.002099970577078888,1.389718581053549e-5,-2.51422113367583e-8,0.0021006554024350413,1.3839945599057747e-5,-2.5077873022135188e-8,0.0021013089162565824,1.3939075366767634e-5,-2.5177804466452004e-8,0.0021018642410454017,1.4152966541286029e-5,-2.5398697748388907e-8,0.002102290544234685,1.4414719463911722e-5,-2.5670555129297722e-8,0.002102593458372229,1.4657717276490355e-5,-2.5923475251490083e-8,0.002102803823419274,1.4832523419603329e-5,-2.610539494337901e-8,0.002102963997051854,1.4912874042482475e-5,-2.6188440763515092e-8,0.00210311701985688,1.489429901720448e-5,-2.6167581509441245e-8,0.00210329981316489,1.4789514144286761e-5,-2.605589711490424e-8,0.0021035395604685125,1.4623216960515582e-5,-2.5879181897882027e-8,0.002103852012857229,1.4427256816148642e-5,-2.5670874573032203e-8,0.0021042409306866908,1.4236166858646234e-5,-2.546731313778813e-8,0.002104698454320543,1.4082882456060734e-5,-2.53031751996881e-8,0.0021052064752133293,1.3994654154339699e-5,-2.5207158431920774e-8,0.0021057391315831625,1.3989407920046565e-5,-2.519818244598461e-8,0.002106266387320575,1.4073050130678136e-5,-2.5282607415599342e-8,0.002106758334830071,1.423820083636465e-5,-2.5452924691916057e-8,0.0021071897012097697,1.4464569256647e-5,-2.568810271807864e-8,0.0021075440763852053,1.4720984983073159e-5,-2.5955605114652786e-8,0.002107817455023985,1.4968991587208612e-5,-2.6215033812032676e-8,0.0021080207898770947,1.5167881763610569e-5,-2.6423345985019315e-8,0.0021081811782254606,1.52812712911579e-5,-2.6541802838830476e-8,0.002108340721814446,1.5285367127017497e-5,-2.6544815228638046e-8,0.002108551393130802,1.5178224387244792e-5,-2.6429882679400344e-8,0.0021088642657054028,1.4987405902763008e-5,-2.6225817522741596e-8,0.0021093131823441873,1.477109413125047e-5,-2.5993980396136906e-8,0.0021098973634679687,1.4606796678395606e-5,-2.5816350529623914e-8,0.0021105729078048107,1.4566334520348138e-5,-2.5769076832392603e-8,0.0021112628777701157,1.4686483996552583e-5,-2.589140375989459e-8,0.002111884963727069,1.49524858304974e-5,-2.616814292368397e-8,0.0021123820416213326,1.530564027223351e-5,-2.653758083888853e-8,0.002112738443062604,1.566943862865359e-5,-2.6919021383359056e-8,0.0021129763380782042,1.597734406587063e-5,-2.7242128079128386e-8,0.002113139906608551,1.6188913189144726e-5,-2.7463982116337144e-8,0.0021132785147635735,1.6292255587917617e-5,-2.7571731956963736e-8,0.002113435244892276,1.6298231436790853e-5,-2.7576542617677282e-8,0.002113641467647694,1.623231108640538e-5,-2.750507948119659e-8,0.0021139155020888497,1.612742596429646e-5,-2.739200662875825e-8,0.002114263195353226,1.601868102419684e-5,-2.7274398004963558e-8,0.002114679097938746,1.5939462619916927e-5,-2.7187584649230205e-8,0.002115147857818045,1.591820498712063e-5,-2.7161697731839154e-8,0.0021156460082405507,1.5975354031712748e-5,-2.7218453269601503e-8,0.0021161445333496127,1.6120489838517026e-5,-2.736813658476198e-8,0.002116612541248858,1.6350066999505276e-5,-2.7607239032229045e-8,0.002117021983644663,1.6646569377117553e-5,-2.791754490148783e-8,0.002117352837098394,1.697979911393296e-5,-2.826741083990463e-8,0.0021175978015787107,1.731065634053247e-5,-2.8615637817191073e-8,0.00211776543378165,1.759725263509948e-5,-2.8917829165943654e-8,0.002117880769420787,1.7802584133189674e-5,-2.9134478291953385e-8,0.002117982886203447,1.7902584529889876e-5,-2.9239569317390042e-8,0.002118119198387002,1.7893289828263934e-5,-2.922832774864068e-8,0.002118336487991736,1.7795584944785858e-5,-2.9122440610658274e-8,0.0021186692843823997,1.7655389538035962e-5,-2.8970402749374115e-8,0.0021191276345471233,1.7536852324466382e-5,-2.8840362727093884e-8,0.0021196884143433207,1.7507199823531867e-5,-2.880401634238384e-8,0.002120295925762307,1.7615411346021366e-5,-2.8913861014445143e-8,0.0021208758106100725,1.787247903713528e-5,-2.9182079529307654e-8,0.002121359406182991,1.8244267405424016e-5,-2.9572807067690778e-8,0.0021217074721560777,1.8663209769622012e-5,-3.0014474124992184e-8,0.0021219209004431955,1.905356541542978e-5,-3.042663828206199e-8,0.0021220343298265485,1.9356536768551152e-5,-3.0746705244532125e-8,0.002122099166839674,1.954377814105041e-5,-3.094431491310143e-8,0.002122166330543905,1.9617217855782224e-5,-3.102119259421685e-8,0.0021222752180405586,1.9600531064406503e-5,-3.100215517299388e-8,0.002122449658514504,1.952878967527067e-5,-3.092419165467688e-8,0.0021226984612435964,1.9440127761138346e-5,-3.082765962692926e-8,0.002123017846957808,1.9370314072744265e-5,-3.075052790344494e-8,0.0021233940681903195,1.934948928989278e-5,-3.0724888774326296e-8,0.0021238056794888474,1.9399952935627528e-5,-3.077458440678296e-8,0.002124225682580438,1.9534193054597844e-5,-3.091310551719368e-8,0.002124624113565031,1.9752886458047202e-5,-3.1141464105636413e-8,0.002124971655833702,2.0043233580223036e-5,-3.144639940286134e-8,0.00212524450155675,2.037859705176521e-5,-3.179992728445566e-8,0.002125429949440885,2.0720660307119964e-5,-3.216153381034379e-8,0.0021255313735390655,2.1024952911718785e-5,-3.2483951488909524e-8,0.0021255706390746042,2.1249553405534983e-5,-3.272236244662322e-8,0.0021255862274255134,2.136531580176944e-5,-3.284530096658392e-8,0.002125626472329969,2.136477599867833e-5,-3.2844230643420137e-8,0.0021257389764561077,2.1266765123494018e-5,-3.273861136499655e-8,0.0021259586471253046,2.1114766388613177e-5,-3.2574325849611996e-8,0.0021262973922635143,2.0968604798671925e-5,-3.241497651320302e-8,0.0021267384416393392,2.0890666115759917e-5,-3.2327268627746654e-8,0.0021272376715695132,2.0929425811587144e-5,-3.236339970670092e-8,0.002127733046172089,2.110460424404699e-5,-3.2545061768599696e-8,0.00212816092546539,2.1399236109442378e-5,-3.2854762929754035e-8,0.0021284746737500223,2.176302809822261e-5,-3.3239236614057686e-8,0.002128658496133636,2.212740460159936e-5,-3.362543623506609e-8,0.0021287304336883744,2.2426834845535454e-5,-3.3943333219980947e-8,0.0021287335646911943,2.2617434207905126e-5,-3.414584047635682e-8,0.0021287204228760234,2.2685679731977404e-5,-3.421817395035784e-8,0.0021287380406940413,2.264602236182866e-5,-3.417535947240264e-8,0.002128818715188701,2.2531501692113913e-5,-3.4052283410800604e-8,0.002128977344015476,2.2382911676892006e-5,-3.3892197642410027e-8,0.002129213263803856,2.2240213464310166e-5,-3.373760006185234e-8,0.0021295139322477768,2.2137245808817076e-5,-3.362460002842891e-8,0.0021298586205894944,2.2099046795842652e-5,-3.358004972356987e-8,0.0021302214146577676,2.2140545104573738e-5,-3.362013028869592e-8,0.0021305737006618716,2.2265607580957118e-5,-3.374931398457121e-8,0.0021308867762918587,2.2466010723704024e-5,-3.39592257518173e-8,0.002131135293920836,2.2720594046935103e-5,-3.4227667717305434e-8,0.0021313019334212695,2.2995565753170124e-5,-3.451884933521096e-8,0.0021313829342262734,2.3247460182788705e-5,-3.4786456209133385e-8,0.0021313929103826883,2.3430080081429465e-5,-3.4981018338903236e-8,0.0021313662623369065,2.35053775592328e-5,-3.506154647311194e-8,0.002131352534668617,2.3455775394926864e-5,-3.500875472352498e-8,0.0021314050619435174,2.3293157757724045e-5,-3.483475480248656e-8,0.0021315656878382726,2.305959461858975e-5,-3.458394904972025e-8,0.002131851148769884,2.2817817875395575e-5,-3.432300884872676e-8,0.002132246675708553,2.2634145895239077e-5,-3.412278123476084e-8,0.0021327093056224787,2.255991732479814e-5,-3.4038512859965103e-8,0.0021331794386085386,2.261762912569421e-5,-3.4094941293936804e-8,0.002133596614516856,2.2795606804280943e-5,-3.4280365800889207e-8,0.0021339148569076657,2.3052078776754165e-5,-3.455073970041519e-8,0.0021341135296762083,2.3327034579694484e-5,-3.484217778475803e-8,0.0021342009716787884,2.355832491670355e-5,-3.508814955727273e-8,0.0021342101969445745,2.3697300658380293e-5,-3.523629751598651e-8,0.0021341884075972216,2.3719450332254015e-5,-3.525994944230765e-8,0.002134184081791398,2.3627331849970435e-5,-3.5161372712859956e-8,0.002134235900463689,2.3446066878692636e-5,-3.4967036409302774e-8,0.0021343663946126897,2.321429430328426e-5,-3.471798296710547e-8,0.0021345807976598918,2.2974350116389325e-5,-3.4459344612988514e-8,0.0021348696549837566,2.2764450779378168e-5,-3.4231980765256686e-8,0.0021352131046345666,2.2613905870942357e-5,-3.4067347153649095e-8,0.0021355851791665065,2.25409643711599e-5,-3.398518306415485e-8,0.002135957353588875,2.255223300982052e-5,-3.3992879723749303e-8,0.0021363013822437923,2.264265540717151e-5,-3.408542886166249e-8,0.0021365919676518924,2.279553658100697e-5,-3.4245382178955386e-8,0.0021368099415358917,2.298274820199354e-5,-3.444296877039347e-8,0.0021369464146205742,2.3165964903851673e-5,-3.463731317033913e-8,0.0021370076236995232,2.3300428516159704e-5,-3.4780406073762714e-8,0.0021370188901841084,2.334275576213467e-5,-3.482548254690987e-8,0.002137024662802771,2.3262920180390915e-5,-3.473993474880969e-8,0.0021370813223880038,2.3057492795026685e-5,-3.451958523389752e-8,0.002137241889275746,2.2757801904735166e-5,-3.41974981982623e-8,0.0021375370262618257,2.2426116340509338e-5,-3.3839966919214845e-8,0.002137961316631726,2.213800200907653e-5,-3.3527737842564464e-8,0.0021384728126343628,2.1957459800264673e-5,-3.332951347872889e-8,0.002139006670366777,2.191643370582827e-5,-3.3280036206354196e-8,0.0021394959229136664,2.2007302232413204e-5,-3.3371904617377737e-8,0.0021398901271324055,2.2189143712365275e-5,-3.3562023526722955e-8,0.002140166006414651,2.2402515162981413e-5,-3.378718549615929e-8,0.002140329077781706,2.2586184572995143e-5,-3.398186921720036e-8,0.0021404083035632985,2.2691063196128188e-5,-3.409319354061641e-8,0.002140446731689183,2.2688976940126358e-5,-3.409045739764433e-8,0.002140490895281052,2.2575699890952926e-5,-3.396857223236857e-8,0.0021405812375513067,2.2368761539972847e-5,-3.374586429282327e-8,0.002140745261299301,2.21013187905107e-5,-3.345758704823717e-8,0.002140994332456639,2.181402372302832e-5,-3.314720913566537e-8,0.002141324077070165,2.15469856889004e-5,-3.285775427864785e-8,0.002141717448243737,2.1333424920190157e-5,-3.262494699138589e-8,0.0021421491254591573,2.1195757227350775e-5,-3.247299004550511e-8,0.0021425900057506363,2.1143998775028036e-5,-3.2412859574264454e-8,0.002143011062769476,2.117578153748411e-5,-3.2442332125159627e-8,0.0021433864887417924,2.1277166088685482e-5,-3.254683206575627e-8,0.0021436964440635616,2.142377656843826e-5,-3.270056832632809e-8,0.0021439298869587705,2.1582271289495213e-5,-3.2867992137633203e-8,0.0021440878674806683,2.1712763255525305e-5,-3.3006289361086e-8,0.002144187054590783,2.1773439803346106e-5,-3.3070310510598916e-8,0.002144262009093983,2.172867744059509e-5,-3.302135431596869e-8,0.002144363336494184,2.156066898233932e-5,-3.2839788635029706e-8,0.0021445484486645283,2.128161554298987e-5,-3.253826914107641e-8,0.0021448640499980975,2.093968006406232e-5,-3.216820242252745e-8,0.0021453256085358927,2.0610778355504582e-5,-3.181096877059883e-8,0.002145905198301666,2.0374493068902587e-5,-3.155211428654284e-8,0.00214653761622983,2.028404497865664e-5,-3.144915450204835e-8,0.002147143609271417,2.0346789600608755e-5,-3.151058660106004e-8,0.0021476575414585346,2.0525272704293914e-5,-3.1696854344447995e-8,0.002148045581613403,2.0755200980876327e-5,-3.193942834876001e-8,0.0021483090662633483,2.0968393190590092e-5,-3.2165288983192186e-8,0.002148476685362016,2.111059951237463e-5,-3.231601401750927e-8,0.002148592188673189,2.115054857145032e-5,-3.235756967674147e-8,0.0021487026050471423,2.108140192452833e-5,-3.2282037014221544e-8,0.002148849218208448,2.091738286919093e-5,-3.2104180012498956e-8,0.0021490617141141114,2.0687943158359667e-5,-3.185531826563116e-8,0.0021493552248900965,2.043093865495207e-5,-3.1576037272193084e-8,0.0021497299103959574,2.018578295980443e-5,-3.1308781112487576e-8,0.0021501726730506327,1.99873898678633e-5,-3.109124846202539e-8,0.0021506604730088547,1.986152543363258e-5,-3.0951322070678607e-8,0.0021511645783630928,1.9821951349432184e-5,-3.0903980935864254e-8,0.0021516549924586936,1.986945352369192e-5,-3.0950285248140185e-8,0.0021521044365688485,1.9992440843010033e-5,-3.107804747030246e-8,0.0021524916686676407,2.016856874486101e-5,-3.126355090492214e-8,0.0021528042317079527,2.0367018571783807e-5,-3.147390414350625e-8,0.002153040804545645,2.0551375958833374e-5,-3.167000555671362e-8,0.002153213305985311,2.0683403675124328e-5,-3.181050955508008e-8,0.002153348503797179,2.0728467991859314e-5,-3.185767901736995e-8,0.002153487865791758,2.06633838486928e-5,-3.178596101433709e-8,0.002153683336498533,2.0486260716953912e-5,-3.159278162166714e-8,0.0021539866168050876,2.022543685029994e-5,-3.130833435668043e-8,0.0021544317139913717,1.9941401323367558e-5,-3.099772567279643e-8,0.0021550161923323133,1.9714632358069782e-5,-3.074786370682314e-8,0.002155692720036186,1.961840203113644e-5,-3.0638105864892124e-8,0.0021563809762338523,1.9688010875520684e-5,-3.070702518398803e-8,0.0021569972223773057,1.990511081944595e-5,-3.0935392402114285e-8,0.002157485124027573,2.0207307545267066e-5,-3.125638734645144e-8,0.002157830955696959,2.0515501898373752e-5,-3.1584963952577884e-8,0.0021580591073866546,2.0761657983135865e-5,-3.1847730058857165e-8,0.0021582161445200332,2.0904745124936695e-5,-3.200013957830926e-8,0.0021583539825240404,2.0933500471754782e-5,-3.20295538061186e-8,0.0021585179343003775,2.0861021855106574e-5,-3.194956386357729e-8,0.0021587404344839763,2.071653038410741e-5,-3.179127525102121e-8,0.0021590389475030915,2.0537441620192218e-5,-3.159486520542445e-8,0.0021594163239126024,2.0362778417702688e-5,-3.140248197378161e-8,0.002159862527034524,2.02278948399552e-5,-3.12524698579826e-8,0.002160357285130327,2.0160345669093216e-5,-3.117480508185589e-8,0.002160873478204498,2.017687657565958e-5,-3.1187780101922056e-8,0.002161381090914999,2.028164028054539e-5,-3.1296077539601465e-8,0.0021618514304895253,2.0465857833124282e-5,-3.1490443368311834e-8,0.0021622611359319007,2.0709012451658273e-5,-3.174899334089471e-8,0.002162595566211041,2.0981352258249935e-5,-3.203986438715612e-8,0.0021628513653473066,2.1247405686018214e-5,-3.232489338007879e-8,0.0021630380775924086,2.1470340095996585e-5,-3.256419591015205e-8,0.0021631786722644116,2.1617083222566323e-5,-3.272164177108625e-8,0.00216330868415945,2.1664275769114177e-5,-3.277135694153426e-8,0.0021634731281762807,2.1605065487863532e-5,-3.2705257492733154e-8,0.0021637197852005,2.1455812436603205e-5,-3.254053477237097e-8,0.0021640877997709013,2.1259948537739125e-5,-3.232400898296171e-8,0.002164592603377122,2.108438739205041e-5,-3.212829934769005e-8,0.0021652124263154904,2.1004045458292953e-5,-3.2034996857797784e-8,0.002165885927123784,2.107545579977581e-5,-3.21059404679378e-8,0.002166528501769656,2.1310646054636276e-5,-3.235474767326647e-8,0.0021670632549307834,2.1668132745757332e-5,-3.273691349900394e-8,0.0021674499574846086,2.2069275229952522e-5,-3.3167461209084994e-8,0.002167695398646148,2.2430414143251984e-5,-3.355576152777364e-8,0.0021678424617177497,2.2691454458900874e-5,-3.383651203996052e-8,0.002167948850623929,2.2828166985303557e-5,-3.398307877885336e-8,0.0021680682294110717,2.2848871903014454e-5,-3.400396925492826e-8,0.002168239621410091,2.2783477264658934e-5,-3.393109259567893e-8,0.0021684843405062296,2.2671975588932204e-5,-3.380744770218485e-8,0.0021688073255370847,2.2555681481195456e-5,-3.367771500329707e-8,0.0021692001470083005,2.247154601714925e-5,-3.358207900819488e-8,0.0021696442585630864,2.2448607182279223e-5,-3.355228837104354e-8,0.0021701141864079454,2.250565226458912e-5,-3.360901884393857e-8,0.0021705808201399487,2.2649663627314837e-5,-3.376013066261044e-8,0.002171014994842116,2.2875029470842755e-5,-3.399981066861581e-8,0.0021713914000250586,2.3163823595123173e-5,-3.430889349840126e-8,0.002171692521788873,2.348758011808522e-5,-3.4656770876542255e-8,0.0021719120261017694,2.381072758144914e-5,-3.500503838425244e-8,0.002172056961163761,2.4095477309522668e-5,-3.531268029929626e-8,0.002172148267756013,2.430773141450824e-5,-3.5542386815216575e-8,0.0021722192183669113,2.4423369339532766e-5,-3.5667380799741086e-8,0.0021723115797911727,2.443412716691192e-5,-3.567793407850738e-8,0.002172469370856416,2.435222243916228e-5,-3.558662383347489e-8,0.002172730141133899,2.4212483806263987e-5,-3.5430893243344456e-8,0.0021731143123856107,2.406994280862633e-5,-3.527059410845282e-8,0.0021736147553494305,2.399049051461565e-5,-3.517783640369402e-8,0.0021741911382967354,2.4033616638707532e-5,-3.5218066388396594e-8,0.0021747750128882433,2.4230582571380168e-5,-3.542607458320517e-8,0.0021752887669595176,2.4567528571206925e-5,-3.5787372573666643e-8,0.002175673052155437,2.49852415759974e-5,-3.623781078312394e-8,0.002175908854725856,2.5399662837313294e-5,-3.668591393596756e-8,0.0021760215228088064,2.5733306593570758e-5,-3.704716213606398e-8,0.002176065901163682,2.5940343519971294e-5,-3.727134201842648e-8,0.0021761034783204496,2.6014370722419524e-5,-3.735101978943853e-8,0.0021761840080405325,2.598057227504093e-5,-3.731306905929495e-8,0.0021763370696546024,2.5881272618678495e-5,-3.7203079961238056e-8,0.002176571964578955,2.5762734966788867e-5,-3.7071131130532555e-8,0.002176881812643163,2.5666444320064544e-5,-3.6962369095902545e-8,0.002177248530362033,2.562462645803108e-5,-3.6912097310867254e-8,0.0021776471185262275,2.56583990067598e-5,-3.694366624460091e-8,0.0021780490847102727,2.577707907708006e-5,-3.706762059466764e-8,0.002178425470464016,2.5977906113517757e-5,-3.7281338682605485e-8,0.002178749995054507,2.6246122306122735e-5,-3.7569099018844795e-8,0.00217900258816672,2.6555835903572176e-5,-3.7903003824289374e-8,0.0021791731432856958,2.687235363923373e-5,-3.8245472427078433e-8,0.002179264774642755,2.715651610226576e-5,-3.8553882093067663e-8,0.0021792954993946666,2.737100012726711e-5,-3.878734993897014e-8,0.0021792972905228126,2.7487801409019163e-5,-3.891485525836279e-8,0.0021793118845096627,2.7495392292255558e-5,-3.8923106738733907e-8,0.0021793835257311045,2.740366279969572e-5,-3.8822101383632065e-8,0.0021795497062576503,2.7244969924330507e-5,-3.864650695887784e-8,0.0021798315902990814,2.70702521421955e-5,-3.845164962605757e-8,0.0021802262299320907,2.693987847972113e-5,-3.8303651911103566e-8,0.0021807030536763806,2.6909868400577606e-5,-3.826434729027413e-8,0.002181207209043901,2.7015773686396604e-5,-3.837346895969279e-8,0.002181671386070132,2.7258810728352984e-5,-3.8633200520179275e-8,0.0021820347882051537,2.7600628586197033e-5,-3.9002200115334744e-8,0.002182263235355336,2.7971926183414146e-5,-3.940491263576584e-8,0.0021823611556105044,2.829417321789066e-5,-3.9755366604696456e-8,0.0021823687183090976,2.8505597620353956e-5,-3.9985695960752894e-8,0.002182345504518596,2.8579166128070304e-5,-4.006587420492795e-8,0.00218234968005574,2.852535965389795e-5,-4.000679786407413e-8,0.0021824224556048176,2.838187447749541e-5,-3.984911376569704e-8,0.0021825822079256305,2.8198197432587352e-5,-3.964648840870845e-8,0.002182826606343748,2.802230424969246e-5,-3.9451180587015695e-8,0.0021831385394179867,2.7892584515013404e-5,-3.930524420287103e-8,0.002183492363313434,2.7834558372804433e-5,-3.9236882225582924e-8,0.00218385884397354,2.7860496490932013e-5,-3.9259933128383583e-8,0.0021842086588251997,2.7970168372585447e-5,-3.937460019364952e-8,0.0021845150758582356,2.815172900254157e-5,-3.956836422313752e-8,0.0021847565668936496,2.838260505830918e-5,-3.9816914283289737e-8,0.002184919839335821,2.8630898322059892e-5,-4.0085638458821643e-8,0.002185003215576358,2.885819450463714e-5,-4.033263381846127e-8,0.00218501956630861,2.9024619642616696e-5,-4.0514173513386934e-8,0.002184997331671042,2.9096343678574037e-5,-4.0592881414629923e-8,0.0021849779434766005,2.9054458176741742e-5,-4.054747138967016e-8,0.0021850086809995705,2.890265974050007e-5,-4.0381253019101765e-8,0.0021851317555203866,2.867039550492026e-5,-4.012573894978999e-8,0.002185372477190764,2.8408972654841787e-5,-3.983659301605007e-8,0.002185730455124099,2.8180528313815657e-5,-3.958174677758403e-8,0.0021861771693066417,2.804251014407566e-5,-3.942450075684918e-8,0.002186661265337064,2.803206489062113e-5,-3.940634962351665e-8,0.0021871205644257144,2.8154906091556042e-5,-3.953453886956924e-8,0.0021874978725242504,2.8382145494403323e-5,-3.977826745766282e-8,0.002187756423815575,2.865671184733779e-5,-4.0075466582978284e-8,0.0021878902551987,2.8908425992492547e-5,-4.0349239996036213E-08,0.0021879255831569328,2.907366219308399e-5,-4.052949755270081e-8,0.002187912085216684,2.9112986253584563e-5,-4.057244739063578e-8,0.0021879072199879612,2.9020292931549317e-5,-4.0470759660277784E-08,0.0021879598630596396,2.8820635503511565e-5,-4.025130399634947e-8,0.0021880992812219192,2.855917509608077e-5,-3.996313733776403e-8,0.002188332056726784,2.8287020621832985e-5,-3.9662060963515264e-8,0.0021886456060208528,2.804939262502735e-5,-3.9397673106991304e-8,0.0021890148819920466,2.7878715380127772e-5,-3.9205757381181164e-8,0.002189409156221178,2.7792378102702624e-5,-3.9105747978824426e-8,0.0021897972687176166,2.7793455583849522e-5,-3.9101439536603146e-8,0.0021901511374968234,2.7872602070577086e-5,-3.9183008468822456e-8,0.0021904481235000325,2.80099950384596e-5,-3.932910624744156e-8,0.002190673074057688,2.8177065500827853e-5,-3.950871255388833e-8,0.0021908206554662854,2.8338483116444323e-5,-3.9683248872783535e-8,0.002190898034144987,2.8455330491275332e-5,-3.980999342254779e-8,0.002190927155960091,2.8490498477234655e-5,-3.9847964078533655e-8,0.0021909449561215767,2.841676049523602e-5,-3.9766800450551744e-8,0.002190999293289918,2.8226395593368268e-5,-3.955740530076425e-8,0.0021911391604951622,2.7938931175521973e-5,-3.924055987672371e-8,0.0021914004248092763,2.7602074739011113e-5,-3.886808440988153e-8,0.00219179202133541,2.7282286475806473e-5,-3.851264350198292e-8,0.002192289357213238,2.704625873866707e-5,-3.82475557684289e-8,0.0021928392696263337,2.6940105864173445e-5,-3.812399760810237e-8,0.0021933752027235077,2.697500409955819e-5,-3.815512007691709e-8,0.002193836370061701,2.712470614302269e-5,-3.8313049345572726e-8,0.0021941837606845793,2.7334592335765326e-5,-3.8538514178115646e-8,0.0021944084668189573,2.753776194502866e-5,-3.875830475133487e-8,0.002194531286417225,2.7672583796492192e-5,-3.890450991618433e-8,0.002194595052600508,2.769704623340426e-5,-3.893040017878978e-8,0.0021946525033668582,2.759686253141467e-5,-3.881953924029014e-8,0.002194753120305771,2.7386090076476726e-5,-3.858667842959779e-8,0.0021949323250686314,2.7100914061041817e-5,-3.82710888669168e-8,0.0021952055424206626,2.678902702000713e-5,-3.792497063521771e-8,0.0021955679291575467,2.6498107213706706e-5,-3.760078207771899e-8,0.0021959986568907772,2.626660204683497e-5,-3.73410335002723e-8,0.0021964674766541165,2.6118501228737073e-5,-3.7172439057852775e-8,0.0021969413113013753,2.60620374695922e-5,-3.7104408935529385e-8,0.0021973894608135576,2.6091132908844254e-5,-3.7130604436828466e-8,0.00219778705276762,2.6188108161646412e-5,-3.7231911539965425e-8,0.0021981171577645352,2.6326541689641457e-5,-3.7379570709525906e-8,0.0021983722862443157,2.647389410124768e-5,-3.753800898406534e-8,0.0021985558494707763,2.6594192238440678e-5,-3.766770585522208e-8,0.0021986837479933113,2.6651537795907375e-5,-3.772898009889921e-8,0.0021987855132714115,2.6615420265459276e-5,-3.76878288712398e-8,0.0021989034252902504,2.646839864760911e-5,-3.752446513210713e-8,0.002199087291365176,2.621516384114665e-5,-3.7243437839789706e-8,0.002199383129417582,2.588937576288623e-5,-3.688130790905145e-8,0.0021998169911259277,2.555241378810931e-5,-3.650538638656394e-8,0.0022003802001003703,2.5279351320183844e-5,-3.619836871761591e-8,0.0022010254563611044,2.513422877506996e-5,-3.603114654032077e-8,0.002201679461595271,2.5145548720641303e-5,-3.603578324988553e-8,0.0022022676262901954,2.5295397762231912e-5,-3.619337702747384e-8,0.0022027384098715387,2.552770043771887e-5,-3.6442911016991864e-8,0.0022030761947726936,2.5769490088737933e-5,-3.6704451465803936e-8,0.0022032999837505608,2.5953710056367697e-5,-3.690413133727294e-8,0.002203452495899009,2.6035101872089713e-5,-3.699166081129466e-8,0.00220358608653898,2.5996726968420892e-5,-3.6947657521712005e-8,0.0022037500668679825,2.584868135819004e-5,-3.678246540474378e-8,0.0022039815599960576,2.562183741456571e-5,-3.6529498934363496e-8,0.0022043004146107474,2.5359154396673204e-5,-3.6235824598435174e-8,0.0022047079845341367,2.510642092784503e-5,-3.595198121736966e-8,0.002205189271399241,2.490392157422305e-5,-3.5722695471243174e-8,0.0022057175485827437,2.4780291065975067e-5,-3.557995202152093e-8,0.002206260229099632,2.4749273402388118E-05,-3.553929040719807e-8,0.0022067847011294868,2.4809362891213233e-5,-3.559935513770356e-8,0.002207263133432532,2.494571788740346e-5,-3.574402276444476e-8,0.0022076757646234684,2.5133391696059046e-5,-3.594599847110066e-8,0.0022080127950028375,2.534094893318031e-5,-3.61707958606488e-8,0.0022082753512539274,2.5533983406702185e-5,-3.6380543421501094e-8,0.0022084759594946783,2.5678586499651885e-5,-3.653770547250637e-8,0.0022086387115195184,2.5745202620986414e-5,-3.6609273231779453e-8,0.002208798772150077,2.5713550443386234e-5,-3.6572240060008746e-8,0.002208999993716592,2.557900040024047e-5,-3.6420802882875486e-8,0.0022092887458073814,2.5359488384672675e-5,-3.6174216899908184e-8,0.0022097025167608603,2.5099812062111692e-5,-3.588172643050776e-8,0.0022102543881308777,2.4867936743048755e-5,-3.56185625830845e-8,0.0022109195242995543,2.4738476511340537e-5,-3.5467648422950415e-8,0.002211634051687777,2.4765337819048855e-5,-3.5489237515539794e-8,0.002212313150289902,2.495636083716276e-5,-3.5692713187243686e-8,0.0022128823429647753,2.526671790565515e-5,-3.602912278257172e-8,0.0022133046472050132,2.5616981016093155e-5,-3.641102991172894e-8,0.0022135888531115686,2.5924578071327065e-5,-3.6747220225829005e-8,0.0022137783155401383,2.6130440340332528e-5,-3.69721280559337e-8,0.0022139309577410685,2.6210438172246873e-5,-3.705850643683236e-8,0.0022141014474845195,2.6172901848814536e-5,-3.7014821330468624e-8,0.0022143303324376486,2.604895373490618e-5,-3.687478915277662e-8,0.002214639802017609,2.5881451700368056e-5,-3.668537821684993e-8,0.0022150338963010646,2.5715502764954452e-5,-3.649643735626844e-8,0.0022155011447347337,2.5591302194405776e-5,-3.6352737563078843e-8,0.0022160184567097205,2.553907975187675e-5,-3.628822151576024e-8,0.0022165557263009628,2.5575938852458807e-5,-3.63223191891732e-8,0.0022170807551756427,2.5704576800506107e-5,-3.6458407892383054e-8,0.002217564030701961,2.591385422119361e-5,-3.668441906146322e-8,0.0022179828448299827,2.6181049859668053e-5,-3.697537858622144e-8,0.0022183242804138395,2.6475407977684876e-5,-3.729737331333177e-8,0.002218586851652362,2.6762362021212276e-5,-3.7612202106384365e-8,0.002218780907528584,2.7007899392426868e-5,-3.7882116402540654e-8,0.00221892800983572,2.718282261799535e-5,-3.807443917791746e-8,0.0022190594291572868,2.7266897794539164e-5,-3.816614008581418e-8,0.002219213643884262,2.7253074171586324e-5,-3.814862701576736e-8,0.0022194321448706397,2.7151812912431053e-5,-3.8032782192625904e-8,0.0022197524438374,2.699457943246866e-5,-3.785310248538782e-8,0.0022201977516507457,2.6834004944931882e-5,-3.7668058896544666e-8,0.0022207647596439554,2.6736960739406968e-5,-3.755241769514929e-8,0.002221414588087056,2.6767401671111417e-5,-3.757801963905858e-8,0.0022220754445295104,2.696116773143545e-5,-3.778551747050506e-8,0.002222662982074354,2.7304481080951647e-5,-3.81602371398771e-8,0.002223112492580615,2.7732335963690483e-5,-3.8630272100101265e-8,0.0022234048892087036,2.815262001038408e-5,-3.9093316095525206e-8,0.002223570353579146,2.8482812379548647e-5,-3.9457507211628694e-8,0.0022236698422765312,2.8677471002609632e-5,-3.9671972494411865e-8,0.002223768955546225,2.8734606819302868e-5,-3.973390147896533e-8,0.002223918561912486,2.8685068606721128e-5,-3.9676852435000445e-8,0.002224146947177898,2.857614254949019e-5,-3.955275079853739e-8,0.002224460584546953,2.8457539680318737e-5,-3.9416539001133896e-8,0.0022248488878112726,2.8372409677147155e-5,-3.931628151961653e-8,0.0022252897394614136,2.8352697862785916e-5,-3.9287926512737694e-8,0.002225754439448891,2.8417200189247082e-5,-3.9352956850409215e-8,0.0022262119752000306,2.8571064147124517e-5,-3.9517646409515605e-8,0.0022266329015272588,2.8806246946617162e-5,-3.977346217838114e-8,0.002226992971723243,2.9102919767945163e-5,-4.009861614536306e-8,0.002227276408541931,2.9431986686848863e-5,-4.046090776146395e-8,0.002227478443459657,2.975881765135786e-5,-4.082189498635584e-8,0.0022276066367046955,3.00479536480172e-5,-4.114208286135804e-8,0.0022276806541805206,3.0268246647568305e-5,-4.1386550741833944e-8,0.0022277304168021564,3.0397850263698415e-5,-4.153044218187168e-8,0.0022277927064168696,3.0428497299104088e-5,-4.1563769098494404e-8,0.0022279064138012593,3.036858246513481e-5,-4.149502940286735e-8,0.002228106506621653,3.0244655302837534e-5,-4.13531517818982e-8,0.0022284166785792644,3.0100550888706932e-5,-4.1186794221321944e-8,0.0022288411897262855,2.9992625796661267e-5,-4.10591614928939e-8,0.0022293578310589434,2.997937361758266e-5,-4.1036340003927136e-8,0.002229915827113162,3.0105006870106393e-5,-4.116870189588894e-8,0.0022304437011137785,3.0380336855881893e-5,-4.146920822621145e-8,0.0022308696821551816,3.0770008843180174e-5,-4.189889481023213e-8,0.0022311489278408515,3.119747911794132e-5,-4.237238494059883e-8,0.002231282975267909,3.157105128869589e-5,-4.278709882978031e-8,0.0022313182697664352,3.181892335039289e-5,-4.3062523712161575e-8,0.0022313244787628863,3.1913280890993805e-5,-4.316712531818715e-8,0.0022313668866389517,3.187208721013959e-5,-4.312031825412391e-8,0.0022314877691962513,3.174329917730292e-5,-4.297493790279011e-8,0.0022317016189136243,3.1584440533183345e-5,-4.2794660080913634e-8,0.0022320000376087473,3.1447193001066374e-5,-4.263700565313382e-8,0.0022323599775302527,3.1369544649942365e-5,-4.2544629399779314e-8,0.0022327512669868426,3.13736485445689e-5,-4.254281430583861e-8,0.0022331420789577098,3.146660704082846e-5,-4.264014632464142e-8,0.002233502662649728,3.164221547907365e-5,-4.283028278424188e-8,0.0022338081602597494,3.188287847991798e-5,-4.309400116155361e-8,0.0022340411058888376,3.216172283638613e-5,-4.340155202858812e-8,0.002234193788318541,3.244531827001491e-5,-4.371572186288535e-8,0.002234270215537642,3.269748772071455e-5,-4.399608728756532e-8,0.0022342870174345488,3.288434625146084e-5,-4.4204595810092806e-8,0.0022342725300309807,3.298010211189754e-5,-4.431198509478476e-8,0.00223426358719864,3.297265366270278e-5,-4.430402838113176e-8,0.002234300042169446,3.28677210223566e-5,-4.4186255163092324e-8,0.0022344176501358816,3.269023712664952e-5,-4.398572890389884e-8,0.0022346404530500393,3.248215526411121e-5,-4.374887676761402e-8,0.0022349739993351363,3.229642695778004e-5,-4.3534981383312984e-8,0.002235400846601725,3.218729338221004e-5,-4.3405375317758714e-8,0.0022358801294424515,3.2197598996961654e-5,-4.3409074494626946e-8,0.0022363531613351687,3.234518444318427e-5,-4.356719715545998e-8,0.0022367562584270713,3.26124404623423e-5,-4.386088239969612e-8,0.002237039364916164,3.2944799036726895e-5,-4.4229360674700297e-8,0.002237184585255663,3.3263008754100455e-5,-4.458371191536925e-8,0.0022372152097443723,3.348808466964168e-5,-4.4835003790813605e-8,0.002237188268790842,3.356890037152168e-5,-4.492538522979582e-8,0.002237172973766367,3.3498373396684425e-5,-4.4846285550617134e-8,0.002237226446062347,3.331063740330506e-5,-4.463527151098567e-8,0.0022373785866876966,3.306356285861056e-5,-4.435657408777556e-8,0.0022376301801785795,3.281796598936418e-5,-4.407798109343235e-8,0.002237960293002327,3.262266212632057e-5,-4.385422435645071e-8,0.0022383364907900727,3.250798890852662e-5,-4.371970523753345e-8,0.002238723456645966,3.2485676809755455e-5,-4.3688197681211816e-8,0.0022390886143439774,3.255173487689696e-5,-4.3755889161178954e-8,0.002239405282078471,3.2689939993701276e-5,-4.390514695537152e-8,0.002239654500276259,3.2874917872497975e-5,-4.410791058122196e-8,0.002239826466603891,3.3074841894149056e-5,-4.43287154816248e-8,0.0022399219825763365,3.325431872964785e-5,-4.452793608909369e-8,0.00223995372724577,3.337818442270938e-5,-4.466602508507044e-8,0.002239946609945796,3.341665474095889e-5,-4.4709250539583116e-8,0.0022399361149010558,3.335152643078121e-5,-4.463662869840457e-8,0.0022399637177205746,3.318214901741799e-5,-4.4446666383878356e-8,0.0022400692719222156,3.292908438196356e-5,-4.4161604326662625e-8,0.0022402815961347503,3.263324461259011e-5,-4.382667142532589e-8,0.0022406097829435986,3.234928937051243e-5,-4.35029200728048e-8,0.0022410381982317313,3.2133989991873885e-5,-4.325433505758617e-8,0.002241527366860039,3.2032192958380706e-5,-4.31320710589e-8,0.002242021338402319,3.206407169227447e-5,-4.315991919307524e-8,0.002242460373611949,3.22173758634287e-5,-4.3325235858678146e-8,0.0022427962572554097,3.244758975145919e-5,-4.3578759913273076e-8,0.002243006285647738,3.268735329396462e-5,-4.384500203668317e-8,0.002243101254106713,3.2863977904254935e-5,-4.4041959824776854e-8,0.002243123492551911,3.292048609982193e-5,-4.410494856355586e-8,0.0022431341784470964,3.283271918257909e-5,-4.400603585822717e-8,0.002243194132145136,3.261533508896748e-5,-4.376093452019552e-8,0.0022433459529788004,3.2314277942817154e-5,-4.342065606321087e-8,0.0022436045440565053,3.198999227156275e-5,-4.305276261895022e-8,0.002243958133515982,3.169947891807182e-5,-4.2721289735892826e-8,0.002244376640907042,3.148388477407264e-5,-4.2472798095789184e-8,0.0022448221512804886,3.136378685678507e-5,-4.233096289601714e-8,0.0022452575632132565,3.134045113321896e-5,-4.2297823602288997e-8,0.002245652005153063,3.139999666608745e-5,-4.2358322241039085e-8,0.002245983472810847,3.151802159817808e-5,-4.248543069195238e-8,0.0022462398578507008,3.166353197668659e-5,-4.2644554056704593e-8,0.002246419446397792,3.180211929402931e-5,-4.2797108244559135e-8,0.0022465314514837314,3.1898991863196846e-5,-4.290391686790522e-8,0.0022465964763423293,3.192267915682146e-5,-4.292934587877446e-8,0.0022466461542808808,3.185001140863545e-5,-4.2846882077462555e-8,0.0022467207138888905,3.1672240851810194e-5,-4.264604611928958e-8,0.0022468631990779767,3.140089843834509e-5,-4.2339079016408486e-8,0.0022471100388813652,3.1070610463486265e-5,-4.196427300171984e-8,0.002247479746499827,3.073566784992554e-5,-4.158230565870342e-8,0.0022479638331529823,3.045874199951375e-5,-4.1263714808448154e-8,0.002248524763253154,3.02937857422682e-5,-4.1069733388505545e-8,0.002249103611883865,3.0268960024283786e-5,-4.1032988729356464e-8,0.0022496357222364597,3.0376558929030593e-5,-4.114590430823665e-8,0.002250068824548509,3.0574158665270486e-5,-4.1361647414439126e-8,0.0022503772247836114,3.07964029825346e-5,-4.160710741763205e-8,0.002250567802057482,3.097301904580212e-5,-4.1803061544443096e-8,0.002250676749711126,3.1047324392743566e-5,-4.188509138902905e-8,0.0022507586723131802,3.099010340839463e-5,-4.1819420951854353e-8,0.002250871480347393,3.080538471041008e-5,-4.1609680129912226e-8,0.0022510615188335178,3.052699532297764e-5,-4.1293253390966694e-8,0.002251353179262093,3.0207520227351978e-5,-4.092900157619033e-8,0.0022517456031207373,2.990365199999711e-5,-4.058081653528731e-8,0.002252216441744965,2.966277801546249e-5,-4.0302454700107246e-8,0.0022527301904458124,2.9514465763670236e-5,-4.012779775956819e-8,0.0022532475943158755,2.9467955847632948e-5,-4.0067851081194045e-8,0.0022537333307623537,2.9514413442723212e-5,-4.0113146302274113E-08,0.0022541607881451917,2.9631644844628163e-5,-4.023900335211374e-8,0.002254514189838657,2.9789237110179563e-5,-4.041133614434692e-8,0.0022547890266936274,2.9952985275678716e-5,-4.059167064094272e-8,0.0022549917913854377,3.0088440765969818e-5,-4.074114160771088e-8,0.0022551396035145384,3.016407696389352e-5,-4.08240201186456e-8,0.0022552597216511264,3.015481429148342e-5,-4.081164539487939e-8,0.0022553882919875423,3.0046508802163843e-5,-4.0687495180085486e-8,0.002255567099077569,2.9841357504034444e-5,-4.045337540522603e-8,0.0022558369388607233,2.9562838755949134e-5,-4.0135156504026914e-8,0.0022562271875581842,2.9257130726269753e-5,-3.978455631529007e-8,0.0022567436326642507,2.898714903281843e-5,-3.947255364662877e-8,0.0022573598823487835,2.8817209579511943e-5,-3.927213390100102e-8,0.002258018966071855,2.8791605493017066e-5,-3.923404737454537e-8,0.002258648117312685,2.891633036493332e-5,-3.936599702943412e-8,0.0022591820275492096,2.9154153382066135e-5,-3.962682189325287e-8,0.0022595839247476135,2.9436595028559185e-5,-3.993977198480979e-8,0.00225985505008105,2.9686790215993037e-5,-4.021816649643196e-8,0.002260030241699472,2.9842461088519565e-5,-4.039130403089442e-8,0.002260164133587199,2.9870701143892955e-5,-4.042125712911031e-8,0.0022603147060398874,2.9772008334002676e-5,-4.0307640364203134e-8,0.002260529356679789,2.957539212424842e-5,-4.008236218492744e-8,0.0022608360709949985,2.9328088618681445e-5,-3.9798262676794195e-8,0.002261240279369694,2.9083351681059975e-5,-3.951545849385412e-8,0.0022617268003365322,2.888909043567816e-5,-3.9288472509905356e-8,0.0022622655482008036,2.8779388123142624e-5,-3.915647214350556e-8,0.002262819189102602,2.8770098261314698e-5,-3.913805732001187e-8,0.002263350798057785,2.88586129564398e-5,-3.92308125522209e-8,0.0022638299762149723,2.9026875547142857e-5,-3.9414639258724473e-8,0.00226423666135669,2.9246199189130553e-5,-3.9657234352431613e-8,0.0022645626786873415,2.9482478245198007e-5,-3.992005306099529e-8,0.0022648116674165116,2.9700822468235492e-5,-4.016358408751382e-8,0.0022649981596772123,2.9869345096513426e-5,-4.0351602493104255e-8,0.00226514630501003,2.9962411033835785e-5,-4.04547762743576e-8,0.002265288298830657,2.9963862391270176e-5,-4.045428268554886e-8,0.0022654620702153745,2.9870664852001304e-5,-4.034600056798178e-8,0.002265707212446325,2.969691295175194e-5,-4.0145217890832345e-8,0.002266057956294179,2.947691133511338e-5,-3.9890345763315734e-8,0.0022665329039003286,2.926444328548644e-5,-3.964227072360827e-8,0.0022671236887107245,2.9124484378898093e-5,-3.9475022511818455E-08,0.002267788240646869,2.9115420126813518e-5,-3.945552451759843e-8,0.0022684561262601086,2.9265821438624493e-5,-3.9617054061131354e-8,0.0022690490903026677,2.955733641213853e-5,-3.993960157280089e-8,0.002269509515122626,2.992626254599793e-5,-4.035147042985752e-8,0.00226982162214845,3.0286068029203308e-5,-4.0754733553186254e-8,0.0022700138757717004,3.055897303667495e-5,-4.1061025649979134e-8,0.0022701436737226793,3.069989577380529e-5,-4.1218699906638504e-8,0.00227027517647685,3.070387520696665e-5,-4.122131101616223e-8,0.002270461042897145,3.059919619723711e-5,-4.1100011651257346e-8,0.002270732689133939,3.0433729733369717e-5,-4.090835113136894e-8,0.002271098337780852,3.026097227227714e-5,-4.070670005595391e-8,0.002271546105525531,3.012906258930677e-5,-4.0549886052690306e-8,0.002272049606456396,3.007354356655947e-5,-4.0478868217575704e-8,0.0022725744638758933,3.011354728086309e-5,-4.051615436512521e-8,0.0022730847790649704,3.0250954443169037e-5,-4.066458322488583e-8,0.002273548838725809,3.047206367789406e-5,-4.0909059104787467e-8,0.0022739434936463994,3.075113090835044e-5,-4.1220551846418976e-8,0.0022742568636345524,3.105504186902545e-5,-4.156147942044127e-8,0.0022744892839467825,3.134835492335001e-5,-4.189151521878511e-8,0.0022746527416301044,3.159798737144839e-5,-4.217292294439811e-8,0.0022747692873981264,3.177714018497166e-5,-4.237495585906838e-8,0.0022748688113758886,3.186850606857967e-5,-4.247743480535395e-8,0.002274986290774487,3.186699225575003e-5,-4.2473855910760004e-8,0.0022751583117732004,3.178213127539921e-5,-4.237427673206388e-8,0.0022754182619907173,3.1640017291713195e-5,-4.2207768491395545e-8,0.0022757894556965316,3.1483670873694755e-5,-4.202308555544977e-8,0.0022762763149492913,3.1369490725813464e-5,-4.188476186116999e-8,0.002276855832823401,3.135697026894548e-5,-4.186133900931318e-8,0.0022774744421386866,3.1490633861351893e-5,-4.200454099581501e-8,0.0022780569340058936,3.177865036092299e-5,-4.232457983909165e-8,0.0022785298502353986,3.217986098398422e-5,-4.277512950721424e-8,0.002278850878859694,3.261186828087253e-5,-4.326249088421801e-8,0.002279027127460274,3.29810254809563e-5,-4.3679853601427606e-8,0.0022791101135152944,3.3218485070021266e-5,-4.3948435338700015e-8,0.0022791716138773816,3.33017751806445e-5,-4.404203618293163e-8,0.0022792763622203156,3.325354630218967e-5,-4.3985619723857855e-8,0.0022794650184009696,3.312474867222378e-5,-4.3836336864797965e-8,0.0022797502493714416,3.297479872131966e-5,-4.3661248003750406e-8,0.00228012142820996,3.285672340462785e-5,-4.35206528604119e-8,0.0022805525144040995,3.2809069538178984e-5,-4.3458910771532503e-8,0.002281009749824412,3.28530678199272e-5,-4.350102367560977e-8,0.002281457946481573,3.299290573495884e-5,-4.3652647942342574e-8,0.0022818653863613037,3.3217663060474e-5,-4.390203862093646e-8,0.0022822076095379298,3.350430854908523e-5,-4.4223341324998374e-8,0.0022824701581385626,3.38215008984268e-5,-4.458094556850484e-8,0.0022826501909389498,3.413398695711384e-5,-4.493459121134231e-8,0.0022827568168762593,3.44073498830337e-5,-4.524485208989148e-8,0.0022828100447377627,3.4612658901913384e-5,-4.547843105508966e-8,0.0022828384740465075,3.4730475087631895e-5,-4.561266796396316e-8,0.002282876011570533,3.475388096679199e-5,-4.5638964500433376e-8,0.002282957848421652,3.469040464851831e-5,-4.5565062411767125e-8,0.0022831158204580496,3.456271833872463e-5,-4.541606069616092e-8,0.0022833731202049406,3.440786048574832e-5,-4.5233819572801423e-8,0.0022837383081319583,3.427425554837967e-5,-4.507378989735375e-8,0.0022841992424606486,3.42151255976047e-5,-4.4997528462908375e-8,0.0022847190630679586,3.427694413898361e-5,-4.505929978605274e-8,0.0022852381039333777,3.448341082476899e-5,-4.528736898920922e-8,0.002285686017006873,3.4819631970934466e-5,-4.566551541864208e-8,0.0022860045965692596,3.522625967483624e-5,-4.6126130449042295e-8,0.0022861729555042707,3.5613274931110104e-5,-4.65660689031637e-8,0.002286219685653516,3.5892392446296056e-5,-4.688394305335418e-8,0.002286211691889868,3.601177133491025e-5,-4.7019944247694604e-8,0.002286225505956513,3.5972626779050686e-5,-4.697479161031815e-8,0.0022863188543598124,3.58205873724714e-5,-4.6799832485411654e-8,0.00228651668635773,3.562198060753e-5,-4.6570120297171264e-8,0.002286812966928041,3.5440632292562546e-5,-4.635820450409294e-8,0.002287180868527256,3.532389707738892e-5,-4.6218365864022434e-8,0.002287583967878681,3.5298098790532246e-5,-4.618136168410986e-8,0.0022879848284268977,3.536980504236021e-5,-4.6255633734096165e-8,0.0022883504197809537,3.552946613083765e-5,-4.643115703668337e-8,0.002288655274879669,3.575541538610793e-5,-4.668378554344655e-8,0.0022888834463104927,3.60176745468646e-5,-4.697952823998258e-8,0.002289029789277668,3.6281738912671874e-5,-4.727893103740416e-8,0.002289100595889158,3.65126058036671e-5,-4.754178038619249e-8,0.0022891133320047745,3.667916372430841e-5,-4.773217946936401e-8,0.0022890950961498148,3.675871799412574e-5,-4.782371311654076e-8,0.0022890795607725576,3.674100774676719e-5,-4.7804003549630296e-8,0.002289102527511509,3.663093644990813e-5,-4.767785241181172e-8,0.002289196541348638,3.644938070154096e-5,-4.746830614559982e-8,0.0022893851939173337,3.6231636872978196e-5,-4.7215134114218746e-8,0.002289677840039512,3.602331407239086e-5,-4.6970406519053876e-8,0.0022900654708520327,3.58736629553553e-5,-4.679101983320465e-8,0.002290518708418688,3.582634915501503e-5,-4.6728061346799346e-8,0.0022909894789891827,3.590809695929047e-5,-4.681348212371508e-8,0.002291418352774001,3.611712058525191e-5,-4.704638370723802e-8,0.002291748752111823,3.641569025232455e-5,-4.7384109668672996e-8,0.0022919460643483626,3.6733133288591057e-5,-4.774556420547209e-8,0.0022920143328060607,3.6983858880081674e-5,-4.803206329891999e-8,0.002291999814615806,3.7096977477987554e-5,-4.8161604641847836e-8,0.002291975474626928,3.704374634491269e-5,-4.8100515063701843e-8,0.0022920128248449328,3.6846970662485426e-5,-4.787422973248501e-8,0.0022921567275596033,3.656759825553701e-5,-4.7551933742153225e-8,0.0022924155206640656,3.627866505605262e-5,-4.721685937218435e-8,0.0022927669894349093,3.6041857596996885e-5,-4.6939648387720506e-8,0.002293172035520522,3.589533984270876e-5,-4.676448884083824e-8,0.002293587774220062,3.585234950794764e-5,-4.670737294106673e-8,0.00229397625599273,3.5905780732209896e-5,-4.676107434656356e-8,0.0022943087935883965,3.603438248915831e-5,-4.690198432790658e-8,0.0022945674627496593,3.6208248273547327e-5,-4.709625363021303e-8,0.0022947453752612396,3.639309951270794e-5,-4.730469355160464e-8,0.002294846618012875,3.655385217382977e-5,-4.748694572871607e-8,0.0022948859966711527,3.6658142221179055e-5,-4.760561192507473e-8,0.0022948882229804706,3.66802485027254e-5,-4.7630789899419904e-8,0.002294885915277481,3.660536515102313e-5,-4.754496057001509e-8,0.0022949158390162044,3.64335141641052e-5,-4.7347464493291285e-8,0.002295013303258485,3.6181877526743895e-5,-4.705723761896796e-8,0.0022952053707549756,3.5884255428738196e-5,-4.6712359540665154e-8,0.0022955042500871392,3.558678939109289e-5,-4.6365392836542746e-8,0.002295902637857623,3.534001900618766e-5,-4.607449202272132e-8,0.002296372603345501,3.518847407688666e-5,-4.5891531629784525e-8,0.002296868936882388,3.515979486113663e-5,-4.584945571699113e-8,0.002297337100875107,3.525571375908133e-5,-4.595154991513938e-8,0.0022977251112613487,3.54474663309797e-5,-4.6165727461002804e-8,0.002297997511006086,3.567828648084553e-5,-4.642708208073091e-8,0.0022981479038201797,3.587486868504097e-5,-4.665101902295781e-8,0.0022982048890346418,3.59670990491837e-5,-4.6756152857442506e-8,0.0022982264993906746,3.591076706084595e-5,-4.66907281238414e-8,0.00229828244392896,3.570370688981107e-5,-4.645139989864305e-8,0.0022984305793150974,3.538654013029307e-5,-4.6084187811529834e-8,0.002298698613153666,3.502687277549902e-5,-4.5666380520174655e-8,0.0022990791902976694,3.4695334694455384e-5,-4.5279093849930466e-8,0.0022995381727997865,3.4445276278051516e-5,-4.49839970221804e-8,0.002300029218953335,3.430321854904224e-5,-4.4812265883725474e-8,0.0023005071520190556,3.426970567379333e-5,-4.4765358220823394e-8,0.0023009363058259054,3.432593949783263e-5,-4.4822399265362546e-8,0.0023012938617268945,3.444159290053393e-5,-4.494899788620879e-8,0.002301570006953491,3.458126436569647e-5,-4.51046246777301e-8,0.002301766800108603,3.470904311234521e-5,-4.524791553057968e-8,0.002301896888738061,3.479179416047871e-5,-4.534053254240823e-8,0.002301982375857608,3.480208071788327e-5,-4.535057802732492e-8,0.0023020534602801847,3.472142304601621e-5,-4.525634915545079e-8,0.0023021460538406057,3.454404162586172e-5,-4.505063369302154e-8,0.002302297520970304,3.4280415377693827e-5,-4.474483116108385e-8,0.00230254017354546,3.395911142067943e-5,-4.4371164167657605e-8,0.0023028932564570586,3.3624877587848964e-5,-4.398066536436923e-8,0.0023033555964254958,3.333152309155398e-5,-4.3635188638132984e-8,0.0023039020503271127,3.312995217770553e-5,-4.339376844190064e-8,0.002304486385520222,3.305425894193706e-5,-4.329658172175806e-8,0.002305051035348368,3.3110519998397165e-5,-4.335181227808648e-8,0.0023055413708626526,3.3272560571329226e-5,-4.353040435431237e-8,0.0023059202737308734,3.348666573581906e-5,-4.3771124818958763e-8,0.0023061786570983014,3.368428524135492e-5,-4.3994995923487775e-8,0.0023063388048928817,3.379947725797813e-5,-4.412542796611055e-8,0.0023064492323863275,3.378653186463361e-5,-4.410875759920423e-8,0.0023065718780325255,3.363277880294064e-5,-4.392931753536871e-8,0.0023067648430645355,3.336223440573916e-5,-4.361391666217241e-8,0.0023070660644278905,3.302816568314063e-5,-4.322345795297547e-8,0.002307483727852774,3.269679339994018e-5,-4.2834243518091083e-8,0.0023079967124393116,3.242829025455311e-5,-4.2516054578377455e-8,0.002308563857239961,3.2262195589673835e-5,-4.2315205384790976e-8,0.0023091372052619127,3.221149782256434e-5,-4.224750159055635e-8,0.002309673844341424,3.2265073740245427e-5,-4.2300823774791806e-8,0.0023101432068525158,3.239501720334835e-5,-4.244342832539441e-8,0.0023105295861446016,3.256496006872504e-5,-4.2633513685632894e-8,0.0023108314009869526,3.2736917316135974e-5,-4.282717939490637e-8,0.002311059046577513,3.287596311964373e-5,-4.298390962236588e-8,0.0023112325956021447,3.2953249680788354e-5,-4.30701110947523e-8,0.00231137979665109,3.294831861010061e-5,-4.306178209267358e-8,0.0023115340997543143,3.285151044406728e-5,-4.2947275355292e-8,0.0023117319317365243,3.2666777386046935e-5,-4.2730561942988145e-8,0.0023120082445560355,3.241439708027806e-5,-4.243445694518821e-8,0.0023123897136956896,3.213200948149292e-5,-4.210197938273945e-8,0.002312886188388601,3.1871514418046985e-5,-4.179294978549619e-8,0.0023134830361791667,3.168968477884489e-5,-4.157326718028376e-8,0.0023141388246951094,3.163282940214068e-5,-4.149718047268907e-8,0.002314792329840861,3.172005820484998e-5,-4.158778555622238e-8,0.002315378896673669,3.193290371843414e-5,-4.182474929661659e-8,0.0023158505127047306,3.2217740072628357e-5,-4.214680612835947e-8,0.0023161909435828218,3.2501262856054346e-5,-4.2469442360932653e-8,0.002316419671183998,3.271254277366566e-5,-4.27103290681903e-8,0.0023165841921237427,3.2802780436011716e-5,-4.2812247472897776e-8,0.0023167450214273137,3.2756541656388914e-5,-4.275628838705075e-8,0.0023169591271539453,3.259272819167442e-5,-4.256326379538918e-8,0.0023172663812004936,3.2356898186037265e-5,-4.228512778642178e-8,0.0023176817453812227,3.2108186977599e-5,-4.199006993769168e-8,0.002318194185054491,3.1904582986137214e-5,-4.174553762547756e-8,0.00231877176791076,3.1790160014621046e-5,-4.1603324561922454e-8,0.002319371007020906,3.1787119353049104e-5,-4.159008391244041e-8,0.0023199475183516252,3.189400454355314e-5,-4.17049622110272e-8,0.0023204650305293554,3.20894591354611e-5,-4.1923747329153166e-8,0.002320900868517307,3.2339315150879754e-5,-4.220702939293869e-8,0.0023212476092142357,3.260440417190498e-5,-4.2509329097549e-8,0.0023215118356965506,3.284715719192341e-5,-4.278686762213579e-8,0.0023217113982006393,3.3036182323788574e-5,-4.300295310375987e-8,0.002321872364162279,3.314903836216729e-5,-4.313120169100703e-8,0.0023220262092654128,3.3173971066507745e-5,-4.315751282036905e-8,0.002322207158400309,3.311135649858902e-5,-4.3081732272613976e-8,0.0023224491028571363,3.297521373884765e-5,-4.291948491394481e-8,0.002322781228382118,3.279447518776715e-5,-4.270382165655561e-8,0.0023232216822924234,3.261266466520483e-5,-4.248505510679363e-8,0.002323769722566849,3.2483621858754785e-5,-4.2325943183644296e-8,0.002324398904211897,3.2460944922610885e-5,-4.228942774440365e-8,0.002325056179267136,3.258120401470381e-5,-4.241896142727533e-8,0.002325671964702718,3.2846122159074696e-5,-4.271751943685757e-8,0.00232618144268266,3.321386581244003e-5,-4.3137207029593565e-8,0.0023265488268709705,3.36082031220369e-5,-4.3589753742231386e-8,0.0023267814240886583,3.394420957442691e-5,-4.397636855767629e-8,0.0023269254239565483,3.415782391829717e-5,-4.422212158225807e-8,0.002327046906947544,3.422452814123435e-5,-4.429770088385412e-8,0.002327209206277997,3.4160981089080925e-5,-4.422143906155781e-8,0.002327456336525311,3.401357864203633e-5,-4.4046282714445835E-08,0.002327805923589105,3.384194337626255e-5,-4.384093488623098e-8,0.002328250166554385,3.37036441574621e-5,-4.3672328614357636e-8,0.002328761740259225,3.364315089403521e-5,-4.3592791245387643e-8,0.002329301915681379,3.36856352720997e-5,-4.3632602011700155e-8,0.002329829055291661,3.383516729126079e-5,-4.379753708045467e-8,0.0023303062390849644,3.407663050535043e-5,-4.407078165874924e-8,0.0023307070359199853,3.438049828740393e-5,-4.441833484198168e-8,0.0023310187619350036,3.470925636680583e-5,-4.4796515547741785e-8,0.0023312431048083324,3.502410718649536e-5,-4.515990686671555e-8,0.002331394528886721,3.5290797443504604e-5,-4.5468276438613356e-8,0.002331497260081565,3.5483844383961805e-5,-4.569154976787356e-8,0.002331581733856791,3.558904226640621e-5,-4.581270005257149e-8,0.0023316810811048884,3.560465423137779e-5,-4.582909582100883e-8,0.002331827771099224,3.5541816076164474e-5,-4.575300867708182e-8,0.0023320501595354027,3.542447396167401e-5,-4.561169901534009e-8,0.0023323683909373285,3.528871876135906e-5,-4.5446880835164095e-8,0.0023327891822946096,3.51805346933835e-5,-4.531231018055253e-8,0.002333299958278486,3.515015003696038e-5,-4.52672578511267e-8,0.0023338645432176663,3.5241270465413334e-5,-4.5363790266725256e-8,0.002334424562220092,3.5475412457926315e-5,-4.562814505895616e-8,0.0023349112408662287,3.583613212030472e-5,-4.6041947983230845e-8,0.002335268146958933,3.626338247097496e-5,-4.6535418255023436e-8,0.0023354760591965088,3.666773954728629e-5,-4.700402689339779e-8,0.0023355644528050535,3.696270836812873e-5,-4.7346394509497067e-8,0.002335600051392683,3.7098371862978543e-5,-4.75036656435806e-8,0.002335658860810056,3.707695140177438e-5,-4.747763880896117e-8,0.0023357987401432536,3.694435600604198e-5,-4.732093922172631e-8,0.002336045463982361,3.6767616798790464e-5,-4.711093689128459e-8,0.002336393449628172,3.661235323283033e-5,-4.6923808409687194e-8,0.00233681482692482,3.6528212315890726e-5,-4.68177625437056e-8,0.002337270388702322,3.6542959451067806e-5,-4.682607312286444e-8,0.0023377189367930666,3.66625719363429e-5,-4.6956871248297825e-8,0.002338124071548144,3.687450363014641e-5,-4.7196561629315964e-8,0.002338458716826444,3.71523445299233e-5,-4.75149713046986e-8,0.0023387078440758034,3.7461115310449495e-5,-4.787144263559505e-8,0.002338869585723431,3.7762817841687184e-5,-4.822140859107426e-8,0.0023389547817296704,3.802184043837775e-5,-4.852287616148231e-8,0.0023389850485431105,3.820974950563554e-5,-4.87421532200505e-8,0.002338989627065774,3.830895059743735e-5,-4.885815585004515e-8,0.0023390014899789605,3.8314840733578865e-5,-4.8864887051675046e-8,0.002339053227796983,3.823643256374001e-5,-4.8772155817743224e-8,0.0023391730470084114,3.809565596331883e-5,-4.860485990028719e-8,0.002339381007965399,3.7925524692509784e-5,-4.840106376674009e-8,0.0023396854228536312,3.776719520424567e-5,-4.82088209371393e-8,0.0023400793116841023,3.76654727255943e-5,-4.808107898018889e-8,0.002340537481346002,3.766178500501879e-5,-4.8067398459253976e-8,0.0023410160318337752,3.778395059438169e-5,-4.820166978989883e-8,0.0023414571514578423,3.8033753723512084e-5,-4.8487112668261064e-8,0.002341802014567862,3.837655741982126e-5,-4.888372230559299e-8,0.0023420114228051465,3.874102641968516e-5,-4.930783648964436e-8,0.0023420863661792065,3.9036695298684036e-5,-4.965293287954776e-8,0.0023420745217566197,3.918717458210972e-5,-4.982885057806455e-8,0.0023420538209714603,3.91622722916344e-5,-4.9799546790811774e-8,0.0023421004046062298,3.8988852688015025e-5,-4.959573407663678e-8,0.0023422602630217295,3.8734768578304047e-5,-4.9296049457022376e-8,0.0023425391360975905,3.847893082192605e-5,-4.899224673303789e-8,0.0023429102765989336,3.828568044273994e-5,-4.8759531463412606e-8,0.0023433299940436355,3.819251167163617e-5,-4.8642341136861975e-8,0.0023437518655280796,3.8209551159922836e-5,-4.865357708177263e-8,0.0023441359775748295,3.8325147109487965e-5,-4.87807783260245e-8,0.002344453495623456,3.8512988018584136e-5,-4.8994075741131246e-8,0.002344688236531956,3.873852777500904e-5,-4.9253489797137967e-8,0.0023448367420634006,3.896429832747165e-5,-4.951513690495988e-8,0.002344907563344286,3.915445172418351e-5,-4.973668851539436e-8,0.002344919846223446,3.927885131661452e-5,-4.9882338277690744e-8,0.0023449010717055798,3.9316757036171124e-5,-4.992722780668246e-8,0.0023448838074805536,3.925979958184939e-5,-4.986094461349622e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json new file mode 100644 index 0000000..f46c700 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":18000,"numberOfSamples":1000,"samples":[0.002344901558802442,3.911368303105064e-5,-4.968948981883951e-8,0.002344984132234963,3.8898163040661456e-5,-4.9435280092255396e-8,0.002345153076453194,3.8645137911801235e-5,-4.913505665071581e-8,0.0023454177649364274,3.8394882701718704e-5,-4.883571430956027e-8,0.0023457726182683734,3.8190636084535106e-5,-4.858818570335279e-8,0.0023461958479369647,3.8071833815956895e-5,-4.8439580759263195E-08,0.0023466502566154754,3.806617270836784e-5,-4.8423700396250246e-8,0.0023470871667342188,3.818099295284342e-5,-4.855052067391149e-8,0.0023474547964515697,3.8395736841710905e-5,-4.8796864492445077e-8,0.002347711548848421,3.865908630266998e-5,-4.9102715263344044e-8,0.0023478420825502667,3.889571950044163e-5,-4.937914952780937e-8,0.00234786961391877,3.902607152063935e-5,-4.9531851099022974e-8,0.0023478548636246925,3.899526350333567e-5,-4.949545923878963e-8,0.002347876570857601,3.8797420616696476e-5,-4.926230021920203e-8,0.0023480009856264934,3.8479554435582394e-5,-4.888691218568922e-8,0.002348257394842648,3.81212678497871e-5,-4.8462214576854004e-8,0.0023486326479069406,3.7803093228172886e-5,-4.8082513592352674e-8,0.0023490835964367573,3.75814623825538e-5,-4.781433129307214e-8,0.002349556312825578,3.747939916176964e-5,-4.768549705089819e-8,0.002350001794120482,3.7490379203984336e-5,-4.768944037993623e-8,0.002350384381521822,3.758800212452211e-5,-4.779618621991062e-8,0.0023506841057128985,3.773572437125139e-5,-4.796348785816809e-8,0.0023508956980960788,3.7894232799687954e-5,-4.814536983155262e-8,0.00235102648099269,3.802641740658273e-5,-4.829803528414698e-8,0.002351094173287532,3.810084978765315e-5,-4.838411531070628e-8,0.0023511246964647747,3.8094608924835005e-5,-4.837614007717066e-8,0.0023511496348331447,3.799585924542727e-5,-4.825963731338258e-8,0.0023512029179003826,3.780605403700456e-5,-4.803571540037979e-8,0.002351316493203054,3.754110540847055e-5,-4.772242618165293e-8,0.002351515254331023,3.723065606146325e-5,-4.7353971759481864e-8,0.0023518120205759476,3.6914840723378074e-5,-4.697706960436158e-8,0.0023522036900594134,3.663842066327486e-5,-4.664428486396447e-8,0.0023526697415857454,3.6442835626573675e-5,-4.6404850464569947E-08,0.0023531739492806607,3.635743472275251e-5,-4.629433098034591e-8,0.0023536695969230293,3.639153741844735e-5,-4.632502065598751e-8,0.002354107963028887,3.65290387843179e-5,-4.64791633358682e-8,0.0023544493334192655,3.672744771866113e-5,-4.670739713326941e-8,0.0023546748244885193,3.692340046714689e-5,-4.693502893752279e-8,0.0023547957604870243,3.704596407123413e-5,-4.707779081016492e-8,0.002354855915443392,3.703656572046711e-5,-4.70656375977696e-8,0.0023549223160394474,3.68699978500431e-5,-4.6867843166706427e-8,0.002355064610704272,3.656683381659626e-5,-4.65078344897485e-8,0.002355330456332751,3.6188645949168455e-5,-4.605762360942627e-8,0.0023557290800031,3.581614088997792e-5,-4.561209830788785e-8,0.0023562313149006323,3.552104851024793e-5,-4.525598622392911e-8,0.002356784170343763,3.534573263514571e-5,-4.503985226093692e-8,0.00235733028458666,3.529761527789713e-5,-4.49733843052568e-8,0.002357823000083982,3.535587514723036e-5,-4.503300722505471e-8,0.0023582334607192713,3.548324139112816e-5,-4.517550230472812e-8,0.0023585511399880337,3.5636946080439145e-5,-4.535076312918837e-8,0.002358780962041987,3.577633956909642e-5,-4.551078335076926e-8,0.0023589395842511522,3.5867314155800855e-5,-4.561499749370089e-8,0.002359052080351249,3.588475773629073e-5,-4.563332272362631e-8,0.002359149147828655,3.58142084645814e-5,-4.554820350082022e-8,0.0023592643626533377,3.565335730415486e-5,-4.5356402142557453E-08,0.002359430841246486,3.541339537933329e-5,-4.507057121932486e-8,0.0023596768567981123,3.511952535451973e-5,-4.471987460114685e-8,0.0023600205188522927,3.480948168500788e-5,-4.4348345490610194e-8,0.0023604644698905536,3.452896471445555e-5,-4.400967986329848e-8,0.002360992350010294,3.432364769813786e-5,-4.375798612579386e-8,0.002361569042366369,3.422878850205881e-5,-4.363559641492016e-8,0.0023621460051594665,3.4259012492440044e-5,-4.3660883375380844e-8,0.0023626713616961515,3.440164922381125e-5,-4.3820080092443e-8,0.002363102567048767,3.4616447316981465e-5,-4.4066547053651594e-8,0.002363418276529288,3.484277697645849e-5,-4.432896661511161e-8,0.002363625904080295,3.501331834422755e-5,-4.452741922922826e-8,0.002363762140673494,3.50713100177352e-5,-4.459391491625094e-8,0.0023638851680286292,3.498694287747205e-5,-4.449207573009896e-8,0.0023640594734086117,3.4767688893707976e-5,-4.422967279774819e-8,0.002364337052724743,3.44579776897352e-5,-4.385849503168624e-8,0.0023647414089119547,3.412668761857231e-5,-4.345970698104098e-8,0.002365260922020612,3.3846152104623893e-5,-4.3119075143364176e-8,0.0023658544426327192,3.367093165302294e-5,-4.290180278936738e-8,0.0023664660490979486,3.362478090509265e-5,-4.2836928949552116e-8,0.002367041894211088,3.3699477499923e-5,-4.29156715149733e-8,0.0023675425813141815,3.3863070665591675e-5,-4.3100929149056666e-8,0.002367948361133545,3.407186155979982e-5,-4.334131276515742e-8,0.0023682583104001854,3.4281125480317074e-5,-4.358383945165417e-8,0.002368486347050624,3.4452289918945094e-5,-4.378254145392837e-8,0.002368656569458454,3.455667745010834e-5,-4.3903037676489125e-8,0.002368799213631667,3.457704329979657e-5,-4.39244496666408e-8,0.0023689474323752143,3.450818698611703e-5,-4.384015205758009e-8,0.0023691344170632556,3.4357416482385305e-5,-4.3658308045106786e-8,0.002369390127550806,3.4144946605107745e-5,-4.340234799568976e-8,0.002369737050180081,3.390358038895181e-5,-4.311066755298774e-8,0.0023701849761484078,3.367640314542406e-5,-4.283404275674573e-8,0.002370725808074802,3.351105695568608e-5,-4.262900855450118e-8,0.0023713306372070224,3.344998149691437e-5,-4.254638292238252e-8,0.0023719519724518553,3.351806525291478e-5,-4.261657041710548e-8,0.0023725329401571575,3.371175366291013e-5,-4.283642668257849e-8,0.0023730222295828053,3.3995002702351264e-5,-4.316414308379054e-8,0.002373389973065274,3.430578520129685e-5,-4.3526671192005085e-8,0.0023736381505010734,3.4572328983584834e-5,-4.38388242013889e-8,0.0023738010098588143,3.473355012811767e-5,-4.402752760022938e-8,0.00237393531167498,3.4756315512409036e-5,-4.40524591922618e-8,0.0023741041518875864,3.4643979531241987e-5,-4.391644020525929e-8,0.0023743597715574142,3.443428581685144e-5,-4.366325823519776e-8,0.002374730275263065,3.418808569592938e-5,-4.336456918047751e-8,0.0023752135991477064,3.397259983293269e-5,-4.3100208376556956e-8,0.002375779941817866,3.384415723124978e-5,-4.293768908589405e-8,0.0023763813960745914,3.383531261076801e-5,-4.2916694132470866e-8,0.0023769653178674142,3.394966546843266e-5,-4.304258701004152e-8,0.0023774870203995034,3.416488144273135e-5,-4.3289677344681276e-8,0.002377918235263097,3.444154087954113e-5,-4.3611544323386645e-8,0.0023782499725694506,3.473394751413563e-5,-4.3953871457543554e-8,0.002378490676997382,3.499948400810439e-5,-4.4265690042450136e-8,0.002378661785361829,3.520478219905836e-5,-4.45068771402646e-8,0.0023787927125148967,3.5328684667322306e-5,-4.465179236135274e-8,0.0023789164661922424,3.5362982250262976e-5,-4.4690190041228925e-8,0.002379066168330197,3.531210837114164e-5,-4.462683919511151e-8,0.0023792721073279486,3.519257964256899e-5,-4.448085699607398e-8,0.0023795586569317585,3.50323249823028e-5,-4.4284979324380445e-8,0.0023799404698155602,3.486935159153574e-5,-4.408411931944888e-8,0.00238041786411957,3.4748539855140206e-5,-4.39317205628605e-8,0.0023809723866902452,3.471506365948844e-5,-4.38820214882267e-8,0.0023815649852208134,3.48036933953732e-5,-4.397726798401748e-8,0.0023821401857936045,3.502563195655052e-5,-4.423182507960411e-8,0.0023826385643343764,3.535804096673262e-5,-4.461940477123716e-8,0.002383015549616911,3.574351081297848e-5,-4.507218244911266e-8,0.0023832590121007622,3.610394768843331e-5,-4.549722500288198e-8,0.0023833960729126107,3.6365403192313095e-5,-4.5806082879119395e-8,0.0023834844707587666,3.6482794911242564e-5,-4.594430660481812e-8,0.0023835926131679144,3.6453070353420245e-5,-4.5907232417809996e-8,0.0023837780068744117,3.6312527567923084e-5,-4.573698815443366e-8,0.002384072504190872,3.612228458903607e-5,-4.550549834835012e-8,0.002384477540262076,3.594951747525463e-5,-4.529245938741677e-8,0.0023849679834993427,3.5850894327466484e-5,-4.516576690664186e-8,0.0023855013057676516,3.586164050491832e-5,-4.5168379713013465e-8,0.0023860287687607305,3.599113018920311e-5,-4.5312724744731254e-8,0.002386506003294634,3.6224400739596276e-5,-4.558208417162952e-8,0.0023869010817420566,3.65281921996621e-5,-4.5937482125035984e-8,0.0023871989250919125,3.685955147899608e-5,-4.632784241705567e-8,0.002387401820865755,3.7174763898084735e-5,-4.6700739768763154e-8,0.002387526785819297,3.7436733765039484e-5,-4.701140163670798e-8,0.0023876010849905364,3.761979915266924e-5,-4.7228628272774645e-8,0.00238765727041805,3.771186667545958e-5,-4.733742080218521e-8,0.002387728725155376,3.7714449644070145e-5,-4.7339022820513065e-8,0.0023878460686218663,3.764152424039279e-5,-4.724953688088123e-8,0.002388034216505095,3.751792399775393e-5,-4.709805432518741e-8,0.0023883096269505005,3.7377464417580596e-5,-4.692455759226862e-8,0.002388677274146209,3.726041803036959e-5,-4.677709598428318e-8,0.0023891272588487315,3.720938268477899e-5,-4.6706986835451093e-8,0.0023896319399229,3.7262272101778856e-5,-4.6760418636059854e-8,0.0023901458647094826,3.7441849520893325e-5,-4.696572132812101e-8,0.002390611746871633,3.774354152197786e-5,-4.731844757029362e-8,0.0023909747687158945,3.81269601588696e-5,-4.777091840959034e-8,0.002391202906290385,3.8519192870702565e-5,-4.823603735908806e-8,0.0023913040660786186,3.883476948556154e-5,-4.8611270833999345e-8,0.002391328128732739,3.9006667440986484e-5,-4.881589018117696e-8,0.00239134943562406,3.90124026913742e-5,-4.882222941094568e-8,0.002391438487576229,3.8880411452464615e-5,-4.866331475848319e-8,0.0023916383708005662,3.867507853522781e-5,-4.841510309828039e-8,0.00239195590432241,3.847153998643774e-5,-4.816669872463936e-8,0.0023923668018147257,3.833341819751815e-5,-4.799408876442468e-8,0.002392828007801345,3.830015839190798e-5,-4.794511807386538e-8,0.0023932907590552147,3.8383856123547755e-5,-4.8035481865629606e-8,0.00239371096036409,3.857245714578611e-5,-4.82521178047072e-8,0.0023940559931876475,3.883616405890264e-5,-4.856042818085454e-8,0.0023943082930363074,3.9134985874419545e-5,-4.891304887908877e-8,0.0023944662220829185,3.9426309839536574e-5,-4.925889576057055e-8,0.0023945426540706474,3.967167832740828e-5,-4.955145041930234e-8,0.0023945617795173573,3.984206233309221e-5,-4.975530429415886e-8,0.002394554803373748,3.992121054124771e-5,-4.985033218746083e-8,0.00239455526447015,3.990695202747839e-5,-4.983330111917577e-8,0.002394594661569528,3.9810623353083994e-5,-4.971716322616409e-8,0.0023946988252229935,3.965513390937551e-5,-4.952874150407233e-8,0.0023948850777624304,3.9472259325648355e-5,-4.9305586614794425e-8,0.00239515997526318,3.9299439114975593e-5,-4.909233045733194e-8,0.0023955174021503037,3.9175945382072434e-5,-4.893628682300761e-8,0.002395937007932476,3.9137890421156826e-5,-4.8881533371822775e-8,0.002396383695909191,3.921131979781866e-5,-4.896047917113908e-8,0.0023968099593563576,3.9403258047878505e-5,-4.918277327372618e-8,0.002397163497613983,3.969252739918278e-5,-4.952387416863947e-8,0.0023974015854493413,4.002518309701328e-5,-4.99193026544001e-8,0.002397509675261247,4.0321678158350774e-5,-5.027326909845036e-8,0.0023975151824612907,4.049998955523513e-5,-5.048669925554299e-8,0.0023974844671535013,4.050819106081807e-5,-5.049657166197553e-8,0.002397499090668801,4.034853438152713e-5,-5.0304833087084466e-8,0.0023976229322382613,4.007667775600651e-5,-4.997738881179162e-8,0.002397879519985696,3.977656534145411e-5,-4.96140773901125E-08,0.0023982502957491016,3.9527801939768744e-5,-4.93098968993077e-8,0.002398689129527083,3.938302665345923e-5,-4.912820157919039e-8,0.002399141121851689,3.936112368628708e-5,-4.9092584839070415e-8,0.002399557122870482,3.945190021821551e-5,-4.919217196871091e-8,0.002399901681190261,3.9625470595205126e-5,-4.939240127952472e-8,0.0024001557140803276,3.9841782493496445e-5,-4.9646053324931454e-8,0.00240031603823306,4.0058414074826275e-5,-4.990243651972935e-8,0.0024003933848322214,4.02365269468108e-5,-5.0114610330648764e-8,0.0024004095942288745,4.034539638022784e-5,-5.0245052214989265e-8,0.0024003941453741816,4.0365693589607254e-5,-5.0269831914895396e-8,0.0024003801497172756,4.0291449589680024e-5,-5.018110199371788e-8,0.0024004000531943383,4.013054961443052e-5,-4.9987707246810776e-8,0.0024004814327914467,3.990360304898532e-5,-4.9713797552627094e-8,0.0024006433784475078,3.96412645683471e-5,-4.9395635374628664e-8,0.002400893829350257,3.938038444905259e-5,-4.907710595026679e-8,0.0024012280072063545,3.9159384872200925e-5,-4.88043653842751e-8,0.002401627983789423,3.901309599496099e-5,-4.861979177381442e-8,0.0024020634684160267,3.896712290496793e-5,-4.8555194568685595e-8,0.0024024942344411503,3.903172416614497e-5,-4.862420076639316e-8,0.0024028751869229125,3.919562945854613e-5,-4.881439962151439e-8,0.0024031652429550516,3.942160059336088e-5,-4.908159561584208e-8,0.0024033401183291706,3.964740296327271e-5,-4.9350792145343485e-8,0.002403406122558092,3.9796826052265784e-5,-4.952959530944614e-8,0.0024034075771528214,3.9802695108078196e-5,-4.953626629721684e-8,0.002403418663533099,3.963531471377749e-5,-4.933424264248788e-8,0.002403517483513351,3.9320414167136537e-5,-4.895377104664041e-8,0.00240375400559779,3.893213949475224e-5,-4.848339885001966e-8,0.0024041310350306584,3.856275056172833e-5,-4.803360539427687e-8,0.002404608522803643,3.8287467657906244e-5,-4.7694797328705657e-8,0.002405124618903588,3.814364277978108e-5,-4.7512463896821273e-8,0.002405618526611032,3.812961405164927e-5,-4.748570334517685e-8,0.0024060450436589023,3.821594093326314e-5,-4.7580367143404314e-8,0.002406379515424713,3.8359386346411104e-5,-4.774544974096198e-8,0.0024066165603803674,3.851416440298249e-5,-4.7926337409967924e-8,0.002406766193043988,3.863916072047892e-5,-4.8073452764022304e-8,0.0024068496190933135,3.870200493814187e-5,-4.814731567974312e-8,0.0024068954751543747,3.8681384728337856e-5,-4.812157280049673e-8,0.0024069363302526986,3.8568469741027326e-5,-4.7984907944708237e-8,0.002407005092363638,3.8367620010703626e-5,-4.774197343294295e-8,0.0024071311642991904,3.8096143001373596e-5,-4.741307791637707e-8,0.00240733648448139,3.7782662926820594e-5,-4.703219316231057e-8,0.0024076319591230843,3.746376601902139e-5,-4.664296180742872e-8,0.0024080150100535243,3.717901842199488e-5,-4.629284851707181e-8,0.0024084688627471237,3.6964873105139e-5,-4.6025986316963574e-8,0.002408963950387803,3.684822663195842e-5,-4.587550926484438e-8,0.002409461535231225,3.6840528070730786e-5,-4.585634918576009e-8,0.0024099194289861434,3.6933325176103526e-5,-4.595954827428758e-8,0.002410299639091284,3.709615129870326e-5,-4.6149286023116704e-8,0.0024105775736920194,3.727809719448076e-5,-4.636443290545415e-8,0.0024107515290991625,3.7414947503234764e-5,-4.652707276927955e-8,0.0024108494422053167,3.744332346904537e-5,-4.6559778833502254e-8,0.0024109280582808607,3.732068196771385e-5,-4.641012552830863e-8,0.0024110599588631028,3.704486401008396e-5,-4.6074593882075726e-8,0.0024113092457543352,3.666207745630117e-5,-4.560832165779338e-8,0.0024117058579894443,3.625440453889971e-5,-4.511002792620606e-8,0.00241223320394758,3.590984658345839e-5,-4.468591059086578e-8,0.0024128367433007784,3.569068786073452e-5,-4.4411566261216975e-8,0.002413447167854588,3.561679042361314e-5,-4.431182379727306e-8,0.002414003943390364,3.566857531655897e-5,-4.4364131508880796e-8,0.002414468917828636,3.5802128924618506e-5,-4.45164528407243e-8,0.0024148287689588913,3.596582802687616e-5,-4.4707042649597976e-8,0.0024150906323866994,3.6112294226174406e-5,-4.487876186163635e-8,0.0024152756199526553,3.620466985756144e-5,-4.4986732147043753e-8,0.002415412983422486,3.621886433437632e-5,-4.5001246595991545e-8,0.002415535705571361,3.614384708305006e-5,-4.490832914512481e-8,0.0024156771163272757,3.59813440871689e-5,-4.470949129805716e-8,0.0024158678193869285,3.5745351613970705e-5,-4.442116416614326e-8,0.002416132416351302,3.546120330008051e-5,-4.4073537242749924e-8,0.0024164859220694446,3.516352548830468e-5,-4.370808294460031e-8,0.00241693034169506,3.4892359785693274e-5,-4.337295078484064e-8,0.0024174524408001833,3.468719086143528e-5,-4.3115900098566585e-8,0.002418023930833043,3.457944258321774e-5,-4.2975364635792224e-8,0.002418604957254082,3.4584872568489474e-5,-4.297126534219297e-8,0.002419150952416655,3.469789771516463e-5,-4.30979643194712e-8,0.0024196218300455495,3.48898251884466e-5,-4.3321783064122653e-8,0.0024199916518604678,3.51121471359681e-5,-4.3584618304832864e-8,0.002420256595170644,3.5304987746849386e-5,-4.381393076419317e-8,0.002420439070447764,3.54098460734516e-5,-4.393818240200917e-8,0.002420585972638163,3.5384692412318615e-5,-4.39053621156832e-8,0.0024207596255476035,3.521796937688811e-5,-4.3700303187940916e-8,0.00242102169533141,3.493649672842064e-5,-4.335458114598203e-8,0.0024214136673983418,3.460203389622349e-5,-4.294254391313394e-8,0.0024219412696859064,3.4294397281599166e-5,-4.2560928350924536e-8,0.002422570997871016,3.40859042454751e-5,-4.2297873198728576e-8,0.002423241774708797,3.401825188013031e-5,-4.220478688725671e-8,0.002423886226246646,3.4092534703597756e-5,-4.2284029344064495e-8,0.002424450990286084,3.4275193790697986e-5,-4.2495842308161056e-8,0.002424907897269756,3.4513860089160096e-5,-4.277731373829174e-8,0.002425254646420478,3.475404717614502e-5,-4.306250514379759e-8,0.0024255087764721997,3.495073098604035e-5,-4.329653600382793e-8,0.0024256997145779124,3.5073628211510956e-5,-4.344214009667556e-8,0.0024258619447215263,3.510795400575972e-5,-4.3480765687463235e-8,0.002426030203565686,3.505305808974759e-5,-4.341105272837135e-8,0.0024262362674914877,3.4920608081784176e-5,-4.3246676601309794e-8,0.0024265064422872465,3.473295174654087e-5,-4.3014350394663596e-8,0.0024268589868617334,3.4521461493677566e-5,-4.275180769052857e-8,0.002427301138503399,3.432410975088323e-5,-4.250490759677728e-8,0.0024278260913050916,3.418129571204661e-5,-4.2322676945393295e-8,0.002428411097108386,3.4129280643721544e-5,-4.2249456747169526e-8,0.002429018449007624,3.4191654643649516e-5,-4.231457750259257e-8,0.002429600921945329,3.4370848029145066e-5,-4.2521942446609057e-8,0.002430111852543173,3.464306742421111e-5,-4.284362752322127e-8,0.0024305177078212167,3.4960014332554184e-5,-4.322166147588011e-8,0.0024308089963019476,3.525864256604065e-5,-4.3579634420191055e-8,0.0024310052103568625,3.54768490791095e-5,-4.3841674275576033e-8,0.0024311514832499894,3.5570331945046896e-5,-4.3953026184890535e-8,0.0024313076209347257,3.552531869349453e-5,-4.389576556823521e-8,0.0024315325810961527,3.5363327353876604e-5,-4.369491031447773e-8,0.0024318686265469066,3.513647254223246e-5,-4.341303915546696e-8,0.0024323294873825944,3.491423748049786e-5,-4.3134445579347336e-8,0.002432896167264619,3.476495141289254e-5,-4.294268271529085e-8,0.0024335222309093078,3.4737272570903575e-5,-4.2897907650809233e-8,0.0024341473034816276,3.484777220801906e-5,-4.3021473228785095e-8,0.0024347141143896403,3.5078911481254485e-5,-4.3293103813853885e-8,0.0024351828565165653,3.5387420696509406e-5,-4.3660807647483854e-8,0.0024355382696882246,3.571869639847352e-5,-4.4058284519528546e-8,0.0024357886769330174,3.602113490945862e-5,-4.442243365076725e-8,0.0024359595899447976,3.6255981177570735e-5,-4.470551282002724e-8,0.002436085616257832,3.64014787157889e-5,-4.4880378715262854e-8,0.002436203431207954,3.645261201880796e-5,-4.49403083766768e-8,0.002436346881699283,3.641860110716656e-5,-4.489600455109322e-8,0.0024365439720128446,3.631989439005647e-5,-4.477193408814986e-8,0.002436814886263786,3.618547757967348e-5,-4.460305079373914e-8,0.0024371701965660787,3.605043991849035e-5,-4.443187709405474e-8,0.0024376087810835056,3.5953118153448417e-5,-4.430512313890507e-8,0.002438115638816738,3.593080766479197e-5,-4.42685612060324e-8,0.0024386606910261066,3.601319060175138e-5,-4.43590417894124e-8,0.0024392005329820178,3.621366124796751e-5,-4.459380937231256e-8,0.0024396852406738875,3.652073535771226e-5,-4.495979153559817e-8,0.002440070792536112,3.689393707336404e-5,-4.540830813754903e-8,0.0024403341938348043,3.7269028978704966e-5,-4.586125501539923e-8,0.0024404847869948067,3.757420212930339e-5,-4.6230801286461525e-8,0.0024405649339235085,3.775253295873212e-5,-4.6446847061845124e-8,0.0024406379971211724,3.778108573313487e-5,-4.6480442904616754e-8,0.0024407684360130493,3.7678040163525975e-5,-4.635265130274541e-8,0.002441002576816896,3.749564568269083e-5,-4.6126207922268527e-8,0.0024413569455008703,3.730344562480743e-5,-4.58853778897302e-8,0.0024418164775716804,3.716885726843634e-5,-4.571251766869334e-8,0.002442341086211704,3.7141004685513786e-5,-4.566838003723965e-8,0.002442877339190302,3.72411338432493e-5,-4.5780171769525656e-8,0.002443371731515466,3.746064251142103e-5,-4.603872319654958e-8,0.002443782406429579,3.7766052234272806e-5,-4.640413953378797e-8,0.002444086872764397,3.810893879139721e-5,-4.681768347059421e-8,0.002444284388309687,3.843785498667255e-5,-4.721633349478445e-8,0.002444393232414692,3.8709012326829734e-5,-4.7546011694557105e-8,0.002444444549161754,3.889334328329184e-5,-4.7770454539860257e-8,0.002444475074792687,3.8979187827749855e-5,-4.787468720267451e-8,0.0024445206944451194,3.8971331473534686e-5,-4.7863936944109584e-8,0.0024446118314487707,3.8887888173957045e-5,-4.775982946018779e-8,0.0024447706911564257,3.8756507830295623e-5,-4.7595742185117445e-8,0.002445009754862674,3.861079858955392e-5,-4.741246632391835e-8,0.002445330792627307,3.848709249206566e-5,-4.7254353116952106e-8,0.0024457239072774276,3.84210898084392e-5,-4.7165331531864033e-8,0.002446166646694304,3.844355610942536e-5,-4.71836986496915e-8,0.002446624062616858,3.857428817952799e-5,-4.733464480752854e-8,0.0024470514934107203,3.88144481598043e-5,-4.762062321108293e-8,0.002447402125327943,3.913928762815128e-5,-4.801212199106996e-8,0.0024476400881559847,3.9495739935443694e-5,-4.8444475535150416e-8,0.0024477561339314394,3.981049166716775e-5,-4.8827712071902615e-8,0.002447778077693695,4.001077266348328e-5,-4.9072160123498955e-8,0.0024477670483197492,4.005148747549024e-5,-4.9121840338880554e-8,0.0024477974812433497,3.993465087268592e-5,-4.897832831402965e-8,0.002447929926440992,3.9709268450711776e-5,-4.870064967828901e-8,0.0024481909223161946,3.9451954414470326e-5,-4.838174394154787e-8,0.0024485684783898502,3.923993501418732e-5,-4.811575988446022e-8,0.0024490213965491316,3.9129377699806304e-5,-4.797180052202577e-8,0.0024494948154261892,3.91451644029732e-5,-4.798138431887394e-8,0.002449935069477873,3.928119976470324e-5,-4.8138482471436045e-8,0.002450300397506881,3.9507323269912974e-5,-4.840749035993413e-8,0.0024505668157711494,3.9779044908857327e-5,-4.8734735279841313E-08,0.0024507297637555462,4.004759573096723e-5,-4.906061161920809e-8,0.002450802394303154,4.02688488745371e-5,-4.9330599704006644e-8,0.0024508113644507706,4.0410128173367605e-5,-4.95038655686505e-8,0.002450791125069385,4.0454212555310635e-5,-4.955844487476108e-8,0.0024507778465312773,4.040035570468197e-5,-4.949267054201453e-8,0.0024508040198822152,4.026270069107783e-5,-4.932327950223557e-8,0.0024508944505534447,4.006688255862525e-5,-4.908122347286046e-8,0.0024510638634689867,3.984580917053899e-5,-4.880648823794057e-8,0.00245131584498336,3.963541528939374e-5,-4.854295462312273e-8,0.002451642653661857,3.9470681141633724e-5,-4.833364518839405e-8,0.002452025536044154,3.938176083843848e-5,-4.8216083300638214e-8,0.002452435488543121,3.938977033584164e-5,-4.8217107227132724e-8,0.002452835048062748,3.950174696583605e-5,-4.8346481745672895e-8,0.0024531824507044967,3.970500384005907e-5,-4.858962496972789e-8,0.0024534396241559695,3.9962702831889606e-5,-4.890182990265696e-8,0.0024535843268946146,4.021443150526203e-5,-4.920880941676828e-8,0.002453623652929858,4.0386636134526066e-5,-4.9419622792017125e-8,0.002453601452891794,4.041499005959166e-5,-4.945444695873122e-8,0.0024535904575645672,4.0272043808040254e-5,-4.9278768855135644e-8,0.002453667088416081,3.9984366591700615e-5,-4.892445528448971e-8,0.0024538804961186404,3.9625472135700606e-5,-4.8481018851177726e-8,0.002454234041076148,3.9286627001372286e-5,-4.8059919577965076e-8,0.002454688758937021,3.90430339964667e-5,-4.7753378723272426e-8,0.002455182859858328,3.893307901809375e-5,-4.760913419343073e-8,0.0024556538362148746,3.895585698194267e-5,-4.762729962876685e-8,0.0024560537286482022,3.908100050787737e-5,-4.777201985779246e-8,0.00245635559786168,3.92623565237223e-5,-4.7987768345426784e-8,0.002456553543520675,3.945013089553443e-5,-4.821391608652092e-8,0.002456659304914327,3.9599666210168044e-5,-4.839543997652059e-8,0.002456697551274787,3.9677063676223765e-5,-4.849000855734107e-8,0.002456700822614684,3.966238759049165e-5,-4.847222180997126e-8,0.0024567044573505052,3.9550907364328136e-5,-4.833540821334541e-8,0.0024567417680072287,3.935256550822404e-5,-4.8091109193474636e-8,0.0024568398052084747,3.9089819952275556e-5,-4.776643242859904e-8,0.002457016102034005,3.879409971555748e-5,-4.739964644423014e-8,0.0024572767266246858,3.850135084065896e-5,-4.7034702557923994e-8,0.002457615714144817,3.8247292949526414e-5,-4.671548886753261e-8,0.002458015719767934,3.806281830374309e-5,-4.648030512056859e-8,0.0024584497093368225,3.7969709899505705e-5,-4.6356668032574766e-8,0.0024588835950892117,3.797672416493626e-5,-4.6356402548602995e-8,0.002459280019112911,3.8076035091713856e-5,-4.647098884390965e-8,0.0024596039507214372,3.8240450757803655e-5,-4.666776031810568e-8,0.0024598307142160007,3.842294852242427e-5,-4.68890281670926e-8,0.002459955918353923,3.8561282527527495e-5,-4.7057687283657186e-8,0.0024600044256263562,3.85906258738798e-5,-4.7093002809037085e-8,0.0024600323640595525,3.846469351560399e-5,-4.693699010582562e-8,0.002460115198327215,3.817888591278212e-5,-4.658318142014719e-8,0.0024603211513315733,3.778139333481038e-5,-4.609033001301854e-8,0.0024606816896058582,3.7360118141523624e-5,-4.5566248750844804e-8,0.0024611773581020993,3.700873869629158e-5,-4.5126111329188663e-8,0.0024617480565587665,3.679136890764092e-5,-4.484915535672109e-8,0.0024623194040428297,3.6725241793431914e-5,-4.4757458521259293e-8,0.002462828313114861,3.6785610286324895e-5,-4.4821776764596e-8,0.0024632368323780508,3.692313753770688e-5,-4.49825480110503e-8,0.002463533911415987,3.7081973038857536e-5,-4.517174974987359e-8,0.002463730207416001,3.72123954530806e-5,-4.5328262829285335e-8,0.0024638508339381053,3.727738907944816e-5,-4.540602228952397e-8,0.0024639287406243806,3.725496815222289e-5,-4.537712390347134e-8,0.002463999440178538,3.7138246844026674e-5,-4.523220853693909e-8,0.002464096769834068,3.693441043162565e-5,-4.4979410248424785e-8,0.002464249278477507,3.6662920271676045e-5,-4.464221452771284e-8,0.0024644771058909905,3.6352892349154964e-5,-4.4256185173269244e-8,0.0024647894963774355,3.60394813223482e-5,-4.3864446992286476e-8,0.00246518333004217,3.575928664507124e-5,-4.3512032388348086e-8,0.00246564308966862,3.5545192829730305e-5,-4.323961698689231e-8,0.002466142462746481,3.54212599682058e-5,-4.30773347216381e-8,0.0024666475561435836,3.539825611996659e-5,-4.303928925890125e-8,0.002467121549800276,3.5470424064565755e-5,-4.311941218583528e-8,0.002467530510301026,3.5614038369783264e-5,-4.328936880925462e-8,0.0024678501018424014,3.578830836147025e-5,-4.3499317664747304e-8,0.00246807277205011,3.5939557401127685e-5,-4.368284640476247e-8,0.0024682141340358534,3.6009986170699735e-5,-4.3767824546787344e-8,0.002468315806348312,3.595167953042106e-5,-4.369398422338407e-8,0.002468440719277613,3.574403825458124e-5,-4.343483114258189e-8,0.0024686576285004418,3.5408406295791984e-5,-4.301598790135291e-8,0.002469016756628685,3.5009868675168896e-5,-4.251749277816247e-8,0.002469527016305481,3.4639085816369505e-5,-4.2051331770138575e-8,0.0024701491272457075,3.437918303108398e-5,-4.172053655964463e-8,0.0024708107727132163,3.4275108324639473e-5,-4.1581346163947136e-8,0.0024714349391305145,3.432221330845508e-5,-4.162900742123513e-8,0.0024719649634269477,3.447673339527891e-5,-4.181047415170179e-8,0.0024723756773897968,3.4677347990773343e-5,-4.2050733510056084e-8,0.0024726711706196352,3.486498141779451e-5,-4.227704642717137e-8,0.002472875776800631,3.499457801076819e-5,-4.243345755026598e-8,0.002473024311147267,3.5039164456257024e-5,-4.248596282344877e-8,0.002473154485424879,3.49892258455584e-5,-4.24219893311207e-8,0.0024733018836487117,3.485023256564978e-5,-4.224757508831041e-8,0.0024734966693373177,3.4639859686924084e-5,-4.198405931463602e-8,0.002473761122223743,3.4385249288497285e-5,-4.166470061647262e-8,0.0024741075410927692,3.412005527399114e-5,-4.1330957835760266e-8,0.0024745365035125336,3.388081280598191e-5,-4.1027956557272016e-8,0.0024750358991933777,3.3702298329276224e-5,-4.0798783384882296e-8,0.002475581446443766,3.361205682415149e-5,-4.0677810154140694e-8,0.0024761393094790735,3.362488283309667e-5,-4.068393655070341e-8,0.00247667099923248,3.3738415010136826e-5,-4.081509111115514e-8,0.0024771401592741794,3.393112591255991e-5,-4.104553604679316e-8,0.0024775202300596727,3.4163782098038836e-5,-4.132736396042357e-8,0.0024778015552186553,3.4384841805604154e-5,-4.15968981141725e-8,0.002477996355230064,3.453957481857277e-5,-4.178587242689799e-8,0.002478139925461257,3.4582095835946386e-5,-4.183646089222978e-8,0.0024782863608294597,3.448855008036613e-5,-4.171792894077942e-8,0.002478497599215119,3.426810101996982e-5,-4.1440616533293496e-8,0.002478826423475806,3.3966768621773196e-5,-4.106097101147728e-8,0.002479297655651806,3.365920201414745e-5,-4.067146491268234e-8,0.0024798956470742607,3.3427359889743966e-5,-4.0374142208359564e-8,0.002480566263107198,3.333281657692773e-5,-4.0246164098665086e-8,0.0024812348815230548,3.339569240715765e-5,-4.031349099874403e-8,0.002481832069138389,3.359098154088289e-5,-4.054608293176884e-8,0.0024823140828337882,3.3862509899205475e-5,-4.087496962472572e-8,0.0024826701499891905,3.4144843169478624e-5,-4.121926049669797e-8,0.0024829174589391183,3.438196398751778e-5,-4.150927531351717e-8,0.002483090231395934,3.453716218275256e-5,-4.169890994247633e-8,0.0024832289273681676,3.459479555529096e-5,-4.1768010969739914e-8,0.0024833725099405357,3.455739202683464e-5,-4.171898971311369e-8,0.002483553953461178,3.444130953944551e-5,-4.1571586234288615e-8,0.002483797896582137,3.42726872143246e-5,-4.135789466565913e-8,0.002484119250717028,3.408404982664835e-5,-4.111811949072816e-8,0.0024845220544084173,3.3911157045767064e-5,-4.08966177191401e-8,0.0024849984608592214,3.378942234513219e-5,-4.073744810316272e-8,0.002485528319030998,3.37493393541924e-5,-4.0678740705520224e-8,0.0024860802611576817,3.381090099062003e-5,-4.07458217081001e-8,0.002486615292822404,3.3977887022200906e-5,-4.094410565553709e-8,0.0024870933615432594,3.4233776242617746e-5,-4.1253884823212716e-8,0.0024874822433588704,3.454145160287273e-5,-4.162972775740252e-8,0.0024877666980437367,3.4848325612800404e-5,-4.200659476353093e-8,0.002487954948091704,3.5096872718110185e-5,-4.2312767159825944e-8,0.0024880797904155523,3.523845842873798e-5,-4.248704298833028e-8,0.002488193043039279,3.5246843277377304e-5,-4.249570636640487e-8,0.0024883539592743067,3.512738494103619e-5,-4.234426909230887e-8,0.0024886140602875923,3.49187025600563e-5,-4.207987071532803e-8,0.002489002194927896,3.468515900952789e-5,-4.178219564842183e-8,0.0024895143834379584,3.450085337149065e-5,-4.1543686661381805e-8,0.002490112692358687,3.4428839747837344e-5,-4.144362746866002e-8,0.002490735095733774,3.4502254176917696e-5,-4.152441444489307e-8,0.002491313820334456,3.47148501990305e-5,-4.177943206499539e-8,0.0024917952057646542,3.5025110867509906e-5,-4.21578484386859e-8,0.002492153108185882,3.537166319265242e-5,-4.2583614770799746e-8,0.0024923915653697563,3.569250545655623e-5,-4.297938359576452e-8,0.0024925381077774505,3.594019773552308e-5,-4.328553882965522e-8,0.0024926327298874706,3.608907519420701e-5,-4.346936640882342e-8,0.0024927174854313663,3.6135139860801745e-5,-4.352511605516019e-8,0.0024928293045150462,3.6091731116077385e-5,-4.3468759712982866e-8,0.0024929962078651933,3.598404077227055e-5,-4.3331234070503576e-8,0.002493235828937878,3.584424198247867e-5,-4.315237723752643e-8,0.002493554988497319,3.5707654226319e-5,-4.297612739315671e-8,0.002493949475402431,3.560950550536974e-5,-4.284648196073154e-8,0.002494403814902926,3.558150409860973e-5,-4.2803251027824265e-8,0.0024948914829334063,3.5647523756435825e-5,-4.287670742727347e-8,0.0024953765911673344,3.581825773142045e-5,-4.308089582356996e-8,0.0024958182908375675,3.608573040867354e-5,-4.340666705533066e-8,0.0024961786512342457,3.641986140806195e-5,-4.381718846972339e-8,0.0024964332001036105,3.677013333856981e-5,-4.424981283072611e-8,0.002496580985875428,3.707466125980302e-5,-4.4627260595163124e-8,0.00249664942189288,3.7275972463325826e-5,-4.487730097257107e-8,0.002496690103679088,3.733875515066651e-5,-4.4954995613220536e-8,0.0024967655193018647,3.726250067358835e-5,-4.485864320894178e-8,0.002496931013734003,3.7083456871196986e-5,-4.46324458229267e-8,0.0024972186148263043,3.686490845186074e-5,-4.435466169172905e-8,0.002497628180291189,3.6679510733870065e-5,-4.411582351619956e-8,0.002498128079111284,3.658972340409257e-5,-4.3994441199673844e-8,0.0024986644042137227,3.663208106121771e-5,-4.4037246854020054e-8,0.0024991755753180833,3.680926861936187e-5,-4.4248953740883185e-8,0.002499608064555356,3.709163133072151e-5,-4.459370765840227e-8,0.0024999288144117358,3.742710477725366e-5,-4.500715060851872e-8,0.0025001310412585205,3.775603780312682e-5,-4.5414811573711545e-8,0.0025002324917523817,3.8025992028683344e-5,-4.57506862741052e-8,0.002500267909808244,3.82021913744237e-5,-4.5970516699009e-8,0.0025002791334092648,3.827161818741498e-5,-4.6057156152074936e-8,0.002500306150636883,3.824142696912959e-5,-4.601877616789812e-8,0.002500381023813219,3.813396254515294e-5,-4.588273798227383e-8,0.002500524917925695,3.7980819109320463e-5,-4.5688184530668866e-8,0.002500747387946369,3.781755623906785e-5,-4.547941847511398e-8,0.0025010467943652028,3.7679593748579237e-5,-4.530076608806616e-8,0.002501411000812327,3.759894473403009e-5,-4.5192519652786e-8,0.002501818061535664,3.76010451065458e-5,-4.518700349120371e-8,0.002502237249305373,3.7700983349453346e-5,-4.530383549196263e-8,0.002502631391630373,3.789891117462528e-5,-4.5544060670952407e-8,0.0025029618245448393,3.817544639615828e-5,-4.588418136956523e-8,0.0025031968555852867,3.8489391629367015e-5,-4.6273070203581374e-8,0.002503322900130418,3.878132383082006e-5,-4.6636329847159344e-8,0.0025033544659702643,3.898595666221756e-5,-4.689179674409995e-8,0.0025033366866835474,3.9052160624291637e-5,-4.6974744631872444e-8,0.002503335424761968,3.8963286204251026e-5,-4.686346369928086e-8,0.002503416415545243,3.874697513072474e-5,-4.659163332249408e-8,0.002503622458507168,3.846773122092755e-5,-4.623914977805023e-8,0.0025039595976610314,3.820530008492874e-5,-4.590530882256746e-8,0.002504397631776516,3.802946606966512e-5,-4.5677537488936655e-8,0.002504882299547712,3.798169372682445e-5,-4.560852435839345e-8,0.002505352221421315,3.806826004220745e-5,-4.570743517294879e-8,0.00250575432324309,3.8263797822131395e-5,-4.59439244261933e-8,0.0025060542893460607,3.852145546614233e-5,-4.6260390338084265e-8,0.002506241100184328,3.878568465963214e-5,-4.658768272125083e-8,0.0025063261680084966,3.900454144029845e-5,-4.686046599932783e-8,0.0025063382859264074,3.913932359754488e-5,-4.702948014495108e-8,0.0025063160483484925,3.917014569025023e-5,-4.706882713849625e-8,0.002506299694580531,3.9097007570934184e-5,-4.697758835500036e-8,0.0025063241642786917,3.893705066219002e-5,-4.677655197485161e-8,0.002506414458106024,3.8719469291395064e-5,-4.650187612960767e-8,0.002506583529031959,3.847966713294664e-5,-4.6197729527279165e-8,0.0025068322231723375,3.825390939784268e-5,-4.5909552105830005e-8,0.00250715042643049,3.8075081039815325e-5,-4.5678747389959236e-8,0.002507518671035578,3.79694315028609e-5,-4.553864588391083e-8,0.002507909881434134,3.7953757863868274e-5,-4.551099211154035e-8,0.0025082914429322,3.8032479762118567e-5,-4.560219705504129e-8,0.0025086283062298424,3.819441369790588e-5,-4.5799089344806656e-8,0.002508888222288745,3.8409920504514224e-5,-4.6065065644875405e-8,0.002509049867274366,3.863051042059274e-5,-4.633938175836797e-8,0.002509113004638694,3.879425510226927e-5,-4.654391267553016e-8,0.0025091068429147767,3.883993594289078e-5,-4.6601084959132783e-8,0.0025090898042000585,3.872875934821506e-5,-4.6461387254399373e-8,0.002509134996273683,3.846495952331999e-5,-4.6129379088556667e-8,0.002509303823785431,3.810176136963081e-5,-4.567118163005868e-8,0.0025096206611317003,3.77249340788089e-5,-4.519386918014874e-8,0.0025100635025889603,3.742094334698776e-5,-4.480570179737146e-8,0.0025105750725739227,3.7247279761174246e-5,-4.4579149479260436e-8,0.0025110856597778002,3.721891833235642e-5,-4.4533963341258614e-8,0.0025115347336513087,3.7312355209207396e-5,-4.464198908935113e-8,0.0025118837717088426,3.7479672497395944e-5,-4.4844363555259744e-8,0.0025121197805155586,3.766434463552293e-5,-4.507092241835546e-8,0.0025122524606316582,3.781403239390384e-5,-4.5256039989766344e-8,0.002512308218517646,3.788897265948401e-5,-4.534921710684068e-8,0.002512323198993744,3.7866377431753216e-5,-4.532087455967344e-8,0.0025123364352792246,3.774164049515155e-5,-4.5164209733579505e-8,0.002512383722153255,3.752690440451212e-5,-4.4893662222274306e-8,0.0025124927690744884,3.724752495244522e-5,-4.454058376296237e-8,0.0025126800686300593,3.6937187041074546e-5,-4.4147073781900625e-8,0.002512949640805612,3.663249847498581e-5,-4.3759102263850506e-8,0.0025132935154346414,3.636784559588725e-5,-4.3419995601533096e-8,0.0025136935134270817,3.6171127440481755e-5,-4.3165098457630535e-8,0.002514123766723244,3.606055777639336e-5,-4.301781026749884e-8,0.002514553618955688,3.604231707921164e-5,-4.298663815376317e-8,0.0025149508839445193,3.610876316223164e-5,-4.306282715704458e-8,0.0025152857940081257,3.6237122105096005e-5,-4.321846926867821e-8,0.0025155362609611655,3.6389174493579715e-5,-4.3405830751730746e-8,0.002515694790395706,3.651350376824656e-5,-4.356001367114698e-8,0.002515776049335391,3.6552764092910476e-5,-4.360815615449484e-8,0.0025158217306482694,3.64579617376964e-5,-4.348766977365181e-8,0.002515896936537497,3.620833883698536e-5,-4.317158041654697e-8,0.002516073071847446,3.5828669318152446e-5,-4.269046581534293e-8,0.002516399987719169,3.539060604592482e-5,-4.213413246847748e-8,0.0025168814606322987,3.499021840014745e-5,-4.162331415721513e-8,0.0025174707936113064,3.4710531005774946e-5,-4.126263149227772e-8,0.002518090589616577,3.459078644678115e-5,-4.1102057661954364e-8,0.002518663524727177,3.4618912918017596e-5,-4.112741399925282e-8,0.0025191361740298083,3.474582741761788e-5,-4.1278096176040484e-8,0.0025194875406559848,3.490802432070915e-5,-4.147510457868247e-8,0.002519725292742549,3.504638962014763e-5,-4.16444050552658e-8,0.0025198766141857846,3.5116951628882e-5,-4.173036446018124e-8,0.002519978706172601,3.509468993429849e-5,-4.1700694202266914e-8,0.002520071130482626,3.497310385097045e-5,-4.154621540106111e-8,0.002520190252699242,3.4761794687652565e-5,-4.1278135639874127e-8,0.0025203652372844786,3.448316626617987e-5,-4.092409555262571e-8,0.002520615191656812,3.416849468288395e-5,-4.05232510677893e-8,0.002520947440465501,3.385345763496335e-5,-4.0120551152513905e-8,0.002521357059662189,3.3573332103171066e-5,-3.976057689732734e-8,0.0025218278023055253,3.335822588172072e-5,-3.9481488035551096e-8,0.0025223344083919984,3.3228896480038676e-5,-3.930979257938309e-8,0.0025228460215779803,3.319367073788616e-5,-3.925652251261835e-8,0.0025233303087924958,3.324669892834196e-5,-3.9315015622613785e-8,0.0025237579626117535,3.336760095667987e-5,-3.946031753109398e-8,0.0025241074151963775,3.352256518500154e-5,-3.9650309128366536e-8,0.0025243697315655363,3.366716014331096e-5,-3.982900185191263e-8,0.002524553460207322,3.375163915239177e-5,-3.9933128485974816e-8,0.002524688300114605,3.37298851909107e-5,-3.9903559505638475e-8,0.002524824998114826,3.357240651657453e-5,-3.970202211903166e-8,0.0025250277665400896,3.328120777325597e-5,-3.933021967054159e-8,0.002525356611076024,3.289990453199541e-5,-3.8842803606554595e-8,0.0025258428381231134,3.250914558990305e-5,-3.834160036262284e-8,0.0025264698957574395,3.220189906693548e-5,-3.794432342774024e-8,0.0025271741566565867,3.2047197639093385e-5,-3.773873488953271e-8,0.002527868930050737,3.206296769477658e-5,-3.7748283537389005e-8,0.002528477957775852,3.2214078628227146e-5,-3.792951338789108e-8,0.0025289589671146006,3.243333093220877e-5,-3.8198347470684486e-8,0.002529308244893737,3.2649160481611736e-5,-3.8464834618929027e-8,0.002529551044230285,3.280554245702909e-5,-3.8658136766423037e-8,0.0025297276422903844,3.286996887218826e-5,-3.873662679239773e-8,0.0025298816375502052,3.283279972249427e-5,-3.8687266747971134e-8,0.002530052440279624,3.2702708511500886e-5,-3.852013964263886e-8,0.0025302712732322313,3.250144171865661e-5,-3.8262077101730963E-08,0.002530559210242333,3.22591991158146e-5,-3.7950935413685944e-8,0.002530926148178654,3.2010602838034795e-5,-3.7630466201304596e-8,0.002531370351391248,3.1790798148834993e-5,-3.7345270529438355e-8,0.0025318786907376338,3.1631370951251876e-5,-3.713553615551818e-8,0.0025324279262051433,3.155608559611767e-5,-3.703162366365894e-8,0.0025329874164920214,3.1576901848478516e-5,-3.704907123537745e-8,0.0025335233363896095,3.1691081346079224e-5,-3.71849683887019e-8,0.002534004013295205,3.1880164541897305e-5,-3.741660475396124e-8,0.0025344056658638974,3.211134266810114e-5,-3.770302889521404e-8,0.0025347176716889862,3.234141683476799e-5,-3.798981805268735e-8,0.0025349464931195965,3.25231453918205e-5,-3.821692596727692e-8,0.002535117468766687,3.261356425395861e-5,-3.832919965284332e-8,0.002535273522037362,3.25837585549067e-5,-3.828894828785741e-8,0.0025354694854592633,3.242890013057747e-5,-3.808899818124254e-8,0.0025357608919522735,3.217582413424165e-5,-3.776263794934066e-8,0.002536187666940124,3.1883621764644e-5,-3.738458087106923e-8,0.0025367568259437178,3.1632385404099197e-5,-3.7056717765237276e-8,0.0025374327525164407,3.1499190159307474e-5,-3.687752844703763e-8,0.0025381439662942977,3.152925181564535e-5,-3.690529396896161e-8,0.00253880714969785,3.1717495544648184e-5,-3.7134493175846014e-8,0.002539357012067217,3.201212311537006e-5,-3.7500132915228656e-8,0.002539765928854451,3.233760649167408e-5,-3.79067823651572e-8,0.0025400453147970577,3.2622583246552875e-5,-3.82638918563021e-8,0.0025402331112333227,3.281872156862578e-5,-3.850972952935261e-8,0.002540377487382661,3.290621872055572e-5,-3.8618458257282727e-8,0.002540524155092487,3.288979390474908e-5,-3.8595246105451726e-8,0.0025407093934606078,3.279105867884921e-5,-3.846681028316092e-8,0.002540957537634892,3.2641231271875194e-5,-3.827233474111451e-8,0.002541280815381751,3.247562338960235e-5,-3.805651702208651e-8,0.0025416799467947535,3.232966235413645e-5,-3.786445609457888e-8,0.002542144857740274,3.223562798311164e-5,-3.7737407372711096e-8,0.002542655579590631,3.221938662051105e-5,-3.7708565661377785e-8,0.0025431838362320446,3.229680174430522e-5,-3.779849423590047e-8,0.0025436960054889923,3.247013233511464e-5,-3.8010564296692125e-8,0.00254415790798978,3.272542643389036e-5,-3.8327620226833e-8,0.002544541182956549,3.303226997284184e-5,-3.871155421654684e-8,0.0025448301444755037,3.334704611861932e-5,-3.9107270584671315e-8,0.0025450273211040327,3.3620069672829226e-5,-3.9451574837501164e-8,0.002545155729501141,3.380568399136757e-5,-3.968592063249876e-8,0.002545256556630443,3.387319471601984e-5,-3.977037692107729e-8,0.0025453820443540687,3.3816009067509984e-5,-3.969547432241733e-8,0.002545584452323269,3.365650342624907e-5,-3.948871602576002e-8,0.0025459029162299583,3.344455147949948e-5,-3.9213016496428415e-8,0.0025463510522096334,3.324840420752361e-5,-3.895529090102889e-8,0.002546909232956193,3.3138246514345544e-5,-3.8805530645937213e-8,0.002547525817875957,3.31656565561402e-5,-3.883045961997576e-8,0.002548129745697608,3.334578366524815e-5,-3.9050513834874766e-8,0.002548651901131051,3.3650693689135876e-5,-3.9431034299941284e-8,0.00254904685669721,3.4018656743914485e-5,-3.989388291545174e-8,0.002549305056062235,3.4375770534290136e-5,-4.034493649891447e-8,0.002549450755241978,3.465939649203068e-5,-4.070401123079711e-8,0.0025495291586907494,3.4833241697630345e-5,-4.092420182378461e-8,0.002549590687379239,3.4890489219274215e-5,-4.099602575860678e-8,0.0025496789205144556,3.4848031855415884e-5,-4.0940251920067316e-8,0.0025498244612649898,3.473730209237217e-5,-4.079637327911076e-8,0.0025500436032672657,3.459585033605535e-5,-4.061196445682029e-8,0.002550339547154352,3.4461308211710806e-5,-4.0434988555481746e-8,0.0025507043433619027,3.4367523260307965e-5,-4.030880973480197e-8,0.0025511206731693597,3.4341897944161364e-5,-4.0268729945377805e-8,0.002551563424104876,3.4402972367080165e-5,-4.03388608138628e-8,0.002552001606617659,3.4557690980306746e-5,-4.0528610973922175e-8,0.002552401461273141,3.479848664498499e-5,-4.082892216673805e-8,0.0025527314827823774,3.510120673609544e-5,-4.120952912256527e-8,0.002552969364218686,3.542565410114826e-5,-4.161951137566323e-8,0.0025531095580215266,3.572058968524942e-5,-4.19935413975739e-8,0.002553168729760865,3.59339104478195e-5,-4.226480110017664e-8,0.0025531858573809097,3.602631744383978e-5,-4.238244913932361e-8,0.0025532150611217693,3.598419299693054e-5,-4.232817322961466e-8,0.002553312233386756,3.582648549097322e-5,-4.212517282076237e-8,0.0025535195183206613,3.560220174300033e-5,-4.1835212060668614e-8,0.002553852830502855,3.537869695525301e-5,-4.15439349344679e-8,0.0025542964378125308,3.5224255096316406e-5,-4.133880357556166e-8,0.002554806195557747,3.519005643611671e-5,-4.1286055750094206e-8,0.002555320571266334,3.5296537354939525e-5,-4.141303722830442e-8,0.0025557766128750385,3.552799805828805e-5,-4.170091750744843e-8,0.002556126465171574,3.583732608559857e-5,-4.209034923582469e-8,0.002556349360987087,3.615973932622834e-5,-4.249882289419115e-8,0.0025564551410904254,3.6431100822784126e-5,-4.284408179364047e-8,0.0025564785276809823,3.6604393384032696e-5,-4.306534222497807e-8,0.002556467160589559,3.6658984478097046e-5,-4.3135357610844236e-8,0.002556468510402671,3.660096821231846e-5,-4.306106582894111e-8,0.0025565200544311623,3.645675748916501e-5,-4.28755593884766e-8,0.0025566445046864778,3.626394236750845e-5,-4.262649174123844e-8,0.0025568493925952245,3.606285126280341e-5,-4.236530656389189e-8,0.002557129168848333,3.589047078361781e-5,-4.213942711868888e-8,0.0025574680949682657,3.5776750212926264e-5,-4.1987475893609535e-8,0.0025578429268030643,3.574244515459497e-5,-4.193647233080398e-8,0.002558225197975276,3.579750560221392e-5,-4.1999734310573656e-8,0.0025585835602312756,3.593934241195524e-5,-4.217460204810126e-8,0.002558887016647417,3.61509584570488e-5,-4.2439939751589254e-8,0.0025591098618594843,3.639984373749989e-5,-4.2754572922321514e-8,0.002559238497448476,3.663948624180955e-5,-4.305908526809104e-8,0.002559278835866122,3.6815737799850185e-5,-4.3283910146574906e-8,0.002559261046831353,3.68791601038681e-5,-4.336518833602966e-8,0.0025592372774527606,3.680125222475687e-5,-4.3265665007869605e-8,0.0025592697003744484,3.658826729490232e-5,-4.299250430234186e-8,0.0025594113266689754,3.6284623802832374e-5,-4.260177686092147e-8,0.0025596874257284618,3.596177093402923e-5,-4.218437109225698e-8,0.0025600863540812774,3.569620677368294e-5,-4.183807532178788e-8,0.002560563687246403,3.554623400075656e-5,-4.1637989758230514e-8,0.002561056690233244,3.553661609585996e-5,-4.161684553067492e-8,0.0025615023865055877,3.565507989845713e-5,-4.176023644906828e-8,0.002561853048804872,3.585927599621287e-5,-4.20151041647804e-8,0.0025620856129585094,3.6090108860365954e-5,-4.230643641429664e-8,0.0025622040446008454,3.628699041834416e-5,-4.255663518033421e-8,0.0025622353918832905,3.6401300490328786e-5,-4.270283147309331e-8,0.0025622213473997326,3.6405401558346106e-5,-4.2708678956345274e-8,0.0025622078408738705,3.6295813489391095e-5,-4.256872173084837e-8,0.0025622353848293975,3.609068615788058e-5,-4.230540259760305e-8,0.00256233232102081,3.582322550250386e-5,-4.1960772840867707e-8,0.002562511863801732,3.553353735483984e-5,-4.158605612885912e-8,0.0025627725248878294,3.526111693837438e-5,-4.123196242121757e-8,0.00256310070883618,3.503928727808233e-5,-4.0941482037820396e-8,0.0025634741471409566,3.4891828381175004e-5,-4.074551346356165e-8,0.002563865248603042,3.483125361276283e-5,-4.066063228427299e-8,0.002564244075042713,3.4857926898380974e-5,-4.068793102758481e-8,0.002564581202623444,3.495942454822687e-5,-4.0812119542659516e-8,0.00256485109943431,3.5110048036088305e-5,-4.100075191629571e-8,0.0025650367242128005,3.527118210779312e-5,-4.120451556732618e-8,0.002565135498337338,3.539413055019303e-5,-4.136076151439963e-8,0.0025651654120114266,3.5427525351978796e-5,-4.1403038721833427e-8,0.0025651680412939974,3.533045146974794e-5,-4.127809559426407e-8,0.0025652038004362098,3.508913423679075e-5,-4.096749224333056e-8,0.0025653363340437958,3.472992631684516e-5,-4.050439181559414e-8,0.0025656093621240807,3.431861032240273e-5,-3.997271395936973e-8,0.0025660270415399614,3.394124366569468e-5,-3.9482630402027894e-8,0.0025665499166005316,3.367374522340637e-5,-3.913169321930131e-8,0.0025671094737676993,3.3555941288687166e-5,-3.8971649823626466e-8,0.0025676326398133926,3.358238507761676e-5,-3.899658257921173e-8,0.00256806353887396,3.3710715096302974e-5,-3.915332696323073e-8,0.0025683748955028416,3.387946611070678e-5,-3.936392740831083e-8,0.0025685688159335627,3.402630843529469e-5,-3.954873741392243e-8,0.0025686706264498697,3.410151913115822e-5,-3.96436201055269e-8,0.002568719735740128,3.4075375284090386e-5,-3.9609586863852165e-8,0.0025687602388208127,3.3940249039981586e-5,-3.9435794394587893e-8,0.002568832735617296,3.370870760914346e-5,-3.913743671001868e-8,0.0025689681542897694,3.340879250968684e-5,-3.874991257803349e-8,0.0025691840551694215,3.307763210742136e-5,-3.832068947589197e-8,0.002569483538443005,3.275462578485857e-5,-3.790047634512565e-8,0.00256985645494049,3.2475309573827486e-5,-3.753521316052912e-8,0.0025702822795653883,3.226668899010827e-5,-3.725997236190257e-8,0.002570733820216625,3.214437650152126e-5,-3.70952464417701e-8,0.002571181033117111,3.211133565934368e-5,-3.70453424363933e-8,0.0025715946013054125,3.215772517602418e-5,-3.7098167201791944e-8,0.002571949318347555,3.226144137496881e-5,-3.722583343084536e-8,0.002572227570996682,3.2389277195387017e-5,-3.738598474604562e-8,0.0025724233208959243,3.249913626791757e-5,-3.752447594345222e-8,0.002572546572517723,3.2544481248383096e-5,-3.7581027423136185e-8,0.002572627105263867,3.248253008845186e-5,-3.7499865346558056e-8,0.0025727146254667485,3.2286766565557764e-5,-3.7246045798024494e-8,0.0025728713746888203,3.196144702345607e-5,-3.6824362906102526e-8,0.0025731546573224077,3.1551122395760685e-5,-3.6291732875808416e-8,0.0025735930611439093,3.113531128318894e-5,-3.5750349486020505e-8,0.0025741686669498156,3.080383281342957e-5,-3.5315932671875985e-8,0.002574818793527538,3.0622158898999846e-5,-3.5073179334983326e-8,0.002575459250901792,3.0606384083367444e-5,-3.5043561582390667e-8,0.0025760157713347175,3.072183306088944e-5,-3.518340880366333e-8,0.0025764462366678763,3.0902486165110045e-5,-3.5408643786040035e-8,0.0025767458975593516,3.107681621716422e-5,-3.562773879707096e-8,0.0025769394739584782,3.118739906047621e-5,-3.5766760816977004e-8,0.0025770682803444704,3.12001551469743e-5,-3.5781267605868635e-8,0.0025771782767451306,3.110525759781823e-5,-3.565767914468704e-8,0.0025773113662062915,3.091339865537416e-5,-3.540879179965687e-8,0.0025774999609862632,3.065026064735654e-5,-3.5066958787603745e-8,0.0025777640357551542,3.035060945700293e-5,-3.4676643389330934e-8,0.002578110043284982,3.0052507451921462e-5,-3.428694627394564e-8,0.002578531397055513,2.9791926281541815e-5,-3.3944523195161236e-8,0.0025790103290381297,2.9598057935518227e-5,-3.368738209113566e-8,0.0025795209096909134,2.948965519446499e-5,-3.354007538112134e-8,0.002580032896739608,2.94727630782897e-5,-3.351077440578792e-8,0.0025805159234916397,2.954000878094914e-5,-3.3590389005577315e-8,0.002580943592558336,2.9671294779383406e-5,-3.375345201478358e-8,0.0025812972568394475,2.983567962877638e-5,-3.3960441519085414e-8,0.002581569412426488,2.9994385199715056e-5,-3.416148972868799e-8,0.002581766674986788,3.0105076417356167e-5,-3.430175679860849e-8,0.0025819120683374308,3.0127919994288804e-5,-3.4329229444587715e-8,0.002582045519993052,3.0034048227300084e-5,-3.420579656011638e-8,0.0025822203949664234,2.9816100977510195e-5,-3.392112802616561e-8,0.002582493526172687,2.9498181435378302e-5,-3.3505790908997055e-8,0.0025829078467866826,2.913934269067586e-5,-3.3035889417979293e-8,0.002583471922975573,2.8823154006253027e-5,-3.261957918279001e-8,0.0025841475821974037,2.8630944686295138e-5,-3.236241863773583e-8,0.0025848575009842015,2.860875020177161e-5,-3.23245690882075e-8,0.0025855132051104206,2.8747336224273945e-5,-3.249487409873808e-8,0.0025860483870083825,2.898840096044825e-5,-3.279872884323055e-8,0.0025864386289602428,2.925160284354101e-5,-3.31328354281292e-8,0.0025867003344974215,2.9464434140691195e-5,-3.340364643567008e-8,0.0025868758817611977,2.9580498213838604e-5,-3.355089908895895e-8,0.0025870163518221215,2.958356532888121e-5,-3.3552916689574256e-8,0.00258716874146591,2.948254760991543e-5,-3.342033057128494e-8,0.0025873690254704456,2.930331685653275e-5,-3.31857940505852e-8,0.0025876396104315717,2.908092911135896e-5,-3.289416461028243e-8,0.0025879892061104566,2.88534249664018e-5,-3.259456856612757e-8,0.0025884138089266786,2.8656989162023898e-5,-3.2334059412977954e-8,0.002588898359017111,2.8521979692271508e-5,-3.215231454490244e-8,0.002589419062272378,2.8469586189780088e-5,-3.2077164254932806e-8,0.002589946473323683,2.8509159090307877e-5,-3.212107523599057e-8,0.002590449393316276,2.8636563050092073e-5,-3.227904091415366e-8,0.002590899361197364,2.8834057391279875e-5,-3.2528461699677137e-8,0.00259127520629838,2.9071975778584452e-5,-3.2831291645010475e-8,0.0025915670649930126,2.9312176621478835e-5,-3.313838678718475e-8,0.0025917793326626975,2.951309804139549e-5,-3.33958896106978e-8,0.0025919320721802777,2.96361235160836e-5,-3.355336698452127e-8,0.002592060388232209,2.9652876016196784e-5,-3.357329612354791e-8,0.0025922110409532205,2.9552949250428954e-5,-3.344128213388367e-8,0.0025924352611730508,2.9350891816452204e-5,-3.3175402893513874e-8,0.0025927770732672843,2.908978789339379e-5,-3.2831114881942346e-8,0.0025932582302109035,2.8837351096213648e-5,-3.2496316807290324e-8,0.0025938644424488276,2.8670845449783314e-5,-3.2271752176790486e-8,0.00259454130569729,2.8651787572331885e-5,-3.223802204062918e-8,0.0025952073153012044,2.880006435961552e-5,-3.242178048536644e-8,0.0025957820237779284,2.9082752023308125e-5,-3.2781025144444316e-8,0.002596215451355888,2.942669394122801e-5,-3.3221292787055197e-8,0.0025965024447693404,2.9748129367640864e-5,-3.3634051131772567e-8,0.0025966765282158253,2.998185229157122e-5,-3.3934507817174133e-8,0.002596791242167228,3.009622528063916e-5,-3.408109516064842e-8,0.0025969011572768027,3.0092558261656323e-5,-3.4074756512656124e-8,0.002597049688176753,2.9995632087270322e-5,-3.3946851949197073e-8,0.0025972643186138377,2.9842572236855614e-5,-3.3744958806311066e-8,0.002597556681278304,2.9673938276303314e-5,-3.3521470462183287e-8,0.002597924726275709,2.9527819877394803e-5,-3.332595043754231e-8,0.0025983552864050196,2.9436122490796813e-5,-3.320019805897644e-8,0.002598826556628034,2.9421965307062316e-5,-3.3174709416024415e-8,0.0025993106853013,2.949756098639174e-5,-3.32658027069346e-8,0.002599776848353735,2.9662467082486734e-5,-3.347330412600232e-8,0.0026001951252648077,2.99025861685836e-5,-3.377926073172787e-8,0.0026005411717937273,3.019067108816419e-5,-3.414860105393843e-8,0.002600801115884702,3.048904747005782e-5,-3.453261736501532e-8,0.0026009756449572323,3.075479964565841e-5,-3.487558988314453e-8,0.0026010821201373643,3.094704699047445e-5,-3.512412559281178e-8,0.0026011537374556978,3.103526998712179e-5,-3.523794137373505e-8,0.0026012352359606815,3.100711111394474e-5,-3.52001023446636e-8,0.0026013752640351045,3.08739211784446e-5,-3.5024463414013454e-8,0.0026016160874248713,3.0672358090410115e-5,-3.475804093991398e-8,0.0026019820559800674,3.0460335902351476e-5,-3.447598865451195e-8,0.0026024694362678106,3.0306029731080202e-5,-3.4267389520307465e-8,0.0026030416290290835,3.0270338541856285e-5,-3.421233572704718e-8,0.0026036342474958208,3.0386657894908002e-5,-3.435533680675956e-8,0.0026041720030882468,3.064594194570206e-5,-3.4685549028801975e-8,0.0026045930310347977,3.09961293659131e-5,-3.513578419828963e-8,0.0026048698621258057,3.1359222083486464e-5,-3.560466452625087e-8,0.002605016277847952,3.165875436058266e-5,-3.5992435719287957e-8,0.0026050775582436726,3.1843809880593544e-5,-3.623231983185307e-8,0.0026051114117463955,3.1899280024474e-5,-3.630395313793583e-8,0.0026051700508598736,3.184180085895025e-5,-3.622821835659225e-8,0.0026052897100294578,3.1707923332180516e-5,-3.605202198717156e-8,0.0026054879335475844,3.154166996092474e-5,-3.5832271992857454e-8,0.0026057657097087847,3.138536625159791e-5,-3.5624031184444675e-8,0.0026061113393798714,3.1274330301516524e-5,-3.5473569113068227e-8,0.0026065041725679677,3.123426843754492e-5,-3.5414846395313414e-8,0.0026069176827509784,3.127995084377525e-5,-3.54676479866181e-8,0.0026073221793504135,3.141424395457776e-5,-3.563622226078849e-8,0.002607687760832499,3.162725534231478e-5,-3.590812143263662e-8,0.002607988052610515,3.189600175406857e-5,-3.6253749808592313e-8,0.0026082048747776295,3.218555030603266e-5,-3.662781876104157e-8,0.0026083332526672066,3.2452725750126513e-5,-3.697411627683993e-8,0.0026083853531278017,3.265297934002162e-5,-3.72343878712858e-8,0.0026083914259650088,3.2749867670578894e-5,-3.736065308576354e-8,0.002608396133617845,3.272507890931113e-5,-3.732831038939484e-8,0.0026084499787289036,3.258582024132688e-5,-3.714589715717855e-8,0.0026085974212649975,3.236651424287259e-5,-3.6857515677651e-8,0.0026088647679620098,3.2123260707560836e-5,-3.65358635683691e-8,0.002609251366434725,3.1921661831404596e-5,-3.6266559361749115e-8,0.0026097270315835943,3.182058662536569e-5,-3.612701970627575e-8,0.002610237284691165,3.185588171012813e-5,-3.6165054551592994e-8,0.002610716126815699,3.202876234196642e-5,-3.6383392719986345e-8,0.0026111037028992033,3.23033372673764e-5,-3.6736088564341154e-8,0.0026113636304113436,3.261570097552551e-5,-3.714014721843922e-8,0.002611493434829786,3.2892780986458314e-5,-3.750008482171149e-8,0.002611523495367077,3.307418573417459e-5,-3.7736560791061143E-08,0.002611505142783382,3.312826382278772e-5,-3.780750968567028e-8,0.002611493763715752,3.3056708359165294e-5,-3.771431792722278e-8,0.0026115341933477952,3.2888214172239555e-5,-3.749370515848177e-8,0.0026116528511147953,3.266635873779777e-5,-3.7202054725746606e-8,0.0026118568135878677,3.2437504850753895e-5,-3.6899719726700316e-8,0.0026121372770168093,3.22421675305727e-5,-3.663975855845446e-8,0.0026124744813415092,3.2110441667230555e-5,-3.646188211570326e-8,0.002612842227916604,3.206036322123708e-5,-3.639018811094762e-8,0.00261321139785924,3.2097696128144984e-5,-3.64327692480781e-8,0.00261355274464152,3.2216066114155835e-5,-3.658181139714531e-8,0.0026138396427348816,3.2397063044748426e-5,-3.681367790345908e-8,0.0026140514872013475,3.261067171343822e-5,-3.708942654441659e-8,0.0026141780311365196,3.2817050683532635e-5,-3.7357080590710184e-8,0.002614224114800926,3.297101014117252e-5,-3.7557436147006555e-8,0.002614213119889088,3.303013696291152e-5,-3.7634673802280204e-8,0.002614186549965068,3.296599359632987e-5,-3.755103806085695e-8,0.0026141973753741167,3.277534783937561e-5,-3.7301599143301795e-8,0.002614297046902401,3.248635183237581e-5,-3.69224435741917e-8,0.0026145197475576695,3.215508644569542e-5,-3.648630993783964e-8,0.002614870090159904,3.185171140863245e-5,-3.608467312200419e-8,0.0026153197674543857,3.164059402548646e-5,-3.5801927989370486e-8,0.0026158147703580206,3.156177686629293e-5,-3.569118447274441e-8,0.0026162903077401106,3.1620210993565046e-5,-3.5760006489734524e-8,0.0026166880991987354,3.1785560398102544e-5,-3.5969814749259693e-8,0.002616970841721617,3.200160523740788e-5,-3.624783231824479e-8,0.002617130261397801,3.220181753315225e-5,-3.65072435138508e-8,0.0026171871606737534,3.232655585316976e-5,-3.6669675925902054e-8,0.00261718397046602,3.233719347395405e-5,-3.6683842036219965e-8,0.0026171724016019787,3.222347506708292e-5,-3.6535405177033614e-8,0.0026172002283405987,3.200264024737339e-5,-3.624607593524087e-8,0.0026173011810684,3.171173130676567e-5,-3.586373455846947e-8,0.0026174902392406083,3.139662825485608e-5,-3.544818102047367e-8,0.0026177642440258567,3.110164755113335e-5,-3.5057518398642445e-8,0.0026181060091383474,3.086218416322592e-5,-3.4738433135395185e-8,0.0026184896650506663,3.070099873181416e-5,-3.452121062024481e-8,0.0026188855768160607,3.062736487635263e-5,-3.441851050195791e-8,0.0026192641644238587,3.063776642104189e-5,-3.44262138034998e-8,0.0026195987827379364,3.071705603650061e-5,-3.452490184616867e-8,0.0026198682621240295,3.083960982102611e-5,-3.4681327174304134e-8,0.0026200597799300902,3.0970713580179304e-5,-3.485016751422272e-8,0.0026201724252346513,3.106906901777973e-5,-3.497724556731821e-8,0.002620221032692184,3.1091763777759243e-5,-3.500601824118333e-8,0.0026202386178564006,3.10028288611161e-5,-3.4888839501679675e-8,0.0026202745150329704,3.0784947027866455e-5,-3.4602410900141006e-8,0.0026203852922867623,3.0450819216758257e-5,-3.416279062923851e-8,0.002620618265425924,3.0047622079189514e-5,-3.363132109745287e-8,0.002620992870319827,2.9648323815135033e-5,-3.31033303947174e-8,0.0026214894619416536,2.932979763141325e-5,-3.267956343422445e-8,0.0026220531242507274,2.9146566799369495e-5,-3.2431878766493014e-8,0.002622611657445149,2.9112958080091928e-5,-3.237984681690709e-8,0.0026230987533740094,2.9201352737337322e-5,-3.248826516711856e-8,0.0026234720422993033,2.935474709537481e-5,-3.268331002587069e-8,0.002623720696604966,2.950580934218716e-5,-3.28772184813543e-8,0.002623863141320352,2.9594733190630928e-5,-3.2991532941629956e-8,0.002623938403472255,2.9581523567624585e-5,-3.2973239176112444e-8,0.0026239948751797743,2.945153944445875e-5,-3.280223748832211e-8,0.002624079352158989,2.9214975075539966e-5,-3.249095709508292e-8,0.0026242282334253994,2.8901697565596798e-5,-3.207786296841002e-8,0.0026244620668671175,2.855315053807396e-5,-3.161700102240202e-8,0.0026247839524003213,2.821331655109691e-5,-3.116615430893701e-8,0.0026251814438661785,2.7920728883389294e-5,-3.077624804492969e-8,0.002625630821426735,2.770290261143587e-5,-3.048387523980967e-8,0.0026261023194173497,2.7573621615054672e-5,-3.030759911853844e-8,0.0026265650867071107,2.753272069170523e-5,-3.024760371638935e-8,0.0026269911754542366,2.7567495629662442e-5,-3.0287542037181364e-8,0.0026273585031503107,2.7654808956776647e-5,-3.0397305793839284e-8,0.0026276531846827346,2.776337289842733e-5,-3.0535989704684127e-8,0.0026278717322375995,2.785627661607388e-5,-3.0655133830369624e-8,0.0026280234298139303,2.7894361322732897e-5,-3.0703083939648824e-8,0.0026281325803872136,2.7841478039741167e-5,-3.063189326845691e-8,0.0026282392000712505,2.7672557297109677e-5,-3.040802070948686e-8,0.0026283955437060506,2.7384085700415085e-5,-3.002625965469175e-8,0.00262865565196701,2.700371371201096e-5,-2.9522515841626875e-8,0.002629057605315128,2.6592301817640855e-5,-2.897657699704715e-8,0.0026296042239974493,2.623136467768682e-5,-2.8495630917078668e-8,0.0026302538309996223,2.599585843503772e-5,-2.8178505464655922e-8,0.002630930614107705,2.5924188462011436e-5,-2.807623809106079e-8,0.0026315519205043305,2.6002942441934412e-5,-2.8171931342658712e-8,0.002632057542513618,2.6175113742488016e-5,-2.8391396121084223e-8,0.0026324258329257447,2.6364726212698507e-5,-2.8635308308118833e-8,0.002632672462723894,2.6502714775448774e-5,-2.881304110057633e-8,0.0026328380412312087,2.6543357889184606e-5,-2.8864178132588297e-8,0.0026329731241864014,2.6469411774491017e-5,-2.8765333495100423e-8,0.0026331258609140727,2.6289281768524357e-5,-2.852665947748336e-8,0.0026333338989213834,2.6030282261764095e-5,-2.8183285436663457e-8,0.002633620171689503,2.573080090149753e-5,-2.7785262712895203e-8,0.002633991642655656,2.5432731091922993e-5,-2.7387706234444074e-8,0.0026344403222787766,2.517473880061446e-5,-2.7041855038120544e-8,0.002634946113457011,2.498684705051351e-5,-2.6787753182580472e-8,0.0026354809501950237,2.4886802821856877e-5,-2.6649271729928865e-8,0.0026360135612485953,2.487845151655501e-5,-2.66318567861711e-8,0.0026365141657436557,2.4952076373098923e-5,-2.672296922722169e-8,0.002636958487571637,2.508635806998142e-5,-2.6894714182866534e-8,0.002637330770592852,2.5251345857424093e-5,-2.7107782135658014e-8,0.0026376258574601534,2.541191401004594e-5,-2.731596108184508e-8,0.002637850566159729,2.5531539580490765e-5,-2.747102088376633e-8,0.002638024527826738,2.557660264320669e-5,-2.7528304916922454e-8,0.0026381802741849004,2.552172015255805e-5,-2.7453780860784707e-8,0.0026383615500640014,2.535654692073106e-5,-2.7233147342018143e-8,0.0026386179885873363,2.5093413410281484e-5,-2.6882116638732477e-8,0.002638994289794082,2.4773009859853065e-5,-2.6454097522886618e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json new file mode 100644 index 0000000..270577e --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":19000,"numberOfSamples":1000,"samples":[0.00263951402096563,2.446275040491078e-5,-2.6038117688221015e-8,0.0026401631724560673,2.4241976200195275e-5,-2.5739261712150362e-8,0.002640884349598046,2.417407411008679e-5,-2.5641764129475454e-8,0.0026415912918163185,2.4277459627606698e-5,-2.577057311285661e-8,0.0026422007751247287,2.4514250198517228e-5,-2.6076268743377622e-8,0.002642664329828072,2.4806135401016956e-5,-2.6455914313675208e-8,0.002642981408758501,2.5067420523334124e-5,-2.6796599674782414e-8,0.0026431902581784475,2.523476738670862e-5,-2.701462116287926e-8,0.0026433473077564114,2.5280434293348607e-5,-2.707291191164421e-8,0.0026435080278592402,2.5209814035850336e-5,-2.6977864625794997e-8,0.0026437153058168224,2.5051197769627946e-5,-2.6766036632474325e-8,0.002643995008250455,2.4844553414124373e-5,-2.6489610125027892e-8,0.002644356096346505,2.4632482174508258e-5,-2.6204648569688263e-8,0.002644792866933108,2.4453878979516923e-5,-2.5962750928942762e-8,0.002645287958825506,2.433962413644026e-5,-2.580522022561437e-8,0.0026458157625529125,2.4309628109960647e-5,-2.5758941317575327e-8,0.00264634623063722,2.4371028134717308e-5,-2.5833817493889664e-8,0.0026468490048528843,2.4517626043978552e-5,-2.6021955503015233e-8,0.002647297629221693,2.473075415894809e-5,-2.629884122598041e-8,0.002647673419069512,2.498168300232041e-5,-2.6626587976528904e-8,0.0026479684516871804,2.5235364563765828e-5,-2.6958906132239313e-8,0.0026481873145099825,2.54550480044092e-5,-2.724714977923732e-8,0.0026483474854581976,2.5607329200806667e-5,-2.744689859121178e-8,0.002648478321749667,2.5667306663201197e-5,-2.7524725198145248e-8,0.002648618565417001,2.562364143904652e-5,-2.746495256788262e-8,0.002648811933829168,2.548331398325493e-5,-2.7276137128600436e-8,0.002649099993304903,2.5275225022656478e-5,-2.6996080239347117e-8,0.0026495118344468096,2.5050470037239995e-5,-2.6692385337925312e-8,0.0026500516782408433,2.4875937156110125e-5,-2.6454031394300517e-8,0.0026506887377273874,2.481830242231187e-5,-2.637005584696817e-8,0.0026513571570154788,2.4919878684211346e-5,-2.649732055333089e-8,0.0026519727576500727,2.5176293414199947e-5,-2.6830682803784936e-8,0.00265246347865712,2.553137242424813e-5,-2.7296067819030845e-8,0.0026527977885291948,2.5897092428559638e-5,-2.777691417282513e-8,0.0026529937872264786,2.6188736914085377e-5,-2.8160834927125474e-8,0.0026531053400488365,2.6354405340763377e-5,-2.8378742435525895e-8,0.002653197143730883,2.6384803835271885e-5,-2.8417798104530085e-8,0.0026533237489522734,2.630496073324375e-5,-2.8310488620170042e-8,0.002653519415667135,2.61584941720321e-5,-2.8113966146280626e-8,0.0026537972075638358,2.5993391727317396e-5,-2.7891437296909137e-8,0.0026541528220946162,2.5852711656499893e-5,-2.7699980495729533e-8,0.002654569583467504,2.576980469437125e-5,-2.758418502662082e-8,0.002655022888269817,2.5766321279371505e-5,-2.7573341150534074e-8,0.0026554838903719694,2.5851487346184455e-5,-2.7680269328933923e-8,0.0026559228543872925,2.6021962722230312e-5,-2.7900982114737346e-8,0.0026563125592436493,2.6262270927647677e-5,-2.8215210320601784e-8,0.0026566318822620954,2.6546159408893735e-5,-2.8588246183577963e-8,0.0026568693325829773,2.683937297731775e-5,-2.8974675169938895e-8,0.00265702588046726,2.7104047119859548e-5,-2.9324209301872344e-8,0.0026571162804157502,2.730439944298196e-5,-2.9589182861804454e-8,0.002657168287578267,2.741298625135473e-5,-2.973278593466467e-8,0.002657219506910407,2.7416528074622072e-5,-2.9736788701860016e-8,0.002657312004454739,2.7320200846281446e-5,-2.9607346163960382e-8,0.0026574851280428084,2.714945498836805e-5,-2.9377627673142143e-8,0.0026577671410715864,2.6948550466389847e-5,-2.9106116594645743e-8,0.0026581666337407396,2.677480114515534e-5,-2.8869130261933987e-8,0.002658665644369953,2.668759153112913e-5,-2.874622335182529e-8,0.0026592177642860556,2.673249924766369e-5,-2.8798893801029236e-8,0.0026597551845333914,2.6923863313585407e-5,-2.9047096880029876e-8,0.0026602066278280773,2.7233239467283458e-5,-2.945360447347533e-8,0.0026605218701161496,2.759279450344971e-5,-2.992839322576825e-8,0.002660691339317348,2.791687831695263e-5,-3.0357403494703774e-8,0.0026607489650131524,2.813307297178182e-5,-3.064397603742436e-8,0.002660756316410744,2.820629128228656e-5,-3.0740975280116455e-8,0.00266077813131762,2.814444053347429e-5,-3.0658329382785926e-8,0.0026608626181401033,2.7987094517445165e-5,-3.044802835863527e-8,0.002661033282093157,2.7787369099427664e-5,-3.018018911351549e-8,0.002661290670229049,2.759646253123286e-5,-2.992268275086257e-8,0.002661618847227499,2.745466279524221e-5,-2.9729256636510297e-8,0.002661992324996788,2.7388048564438633e-5,-2.9635075082451442e-8,0.0026623814914065623,2.740846380825369e-5,-2.9656508743774662e-8,0.0026627564064791672,2.751469021981976e-5,-2.9792508338229933e-8,0.002663089657287003,2.769378081550649e-5,-3.002626101217006e-8,0.0026633589993581537,2.7922422231694105e-5,-3.032697532756177e-8,0.0026635502049094915,2.816877186333765e-5,-3.065235507227498e-8,0.002663660058606214,2.8395509491539593e-5,-3.095269273591784e-8,0.0026636988226479592,2.8564683516255168e-5,-3.1177317725720975e-8,0.0026636910185861354,2.8644267020628355e-5,-3.128328931824663e-8,0.002663673368164203,2.8615444636392442e-5,-3.124507257083623e-8,0.0026636892999802016,2.847882357726595e-5,-3.106284172552677e-8,0.0026637804953454328,2.8257367087954442e-5,-3.076651119240239e-8,0.0026639771539304236,2.7994347029093748e-5,-3.041320967031577e-8,0.002664289390944928,2.7745919962196963e-5,-3.0077603120369135e-8,0.0026647021583839263,2.7569343911087362e-5,-2.983632036881539e-8,0.002665175574611234,2.7508966541401323e-5,-2.9749234062979572e-8,0.002665651753105894,2.758308150002246e-5,-2.9841711448467954e-8,0.0026660679387967637,2.777557445101302e-5,-3.009314804079612e-8,0.002666373652606828,2.8036422130212083e-5,-3.043735504000154e-8,0.0026665467921051737,2.8293485634668975e-5,-3.0778184924067085e-8,0.002666601852555459,2.8473726055012245e-5,-3.1017907545195027e-8,0.0026665852853927806,2.8526301970881325e-5,-3.1088172804032435e-8,0.002666559122253182,2.843738526897907e-5,-3.0969895282801916e-8,0.0026665805053176046,2.823043592843639e-5,-3.069370740064932e-8,0.0026666863526158286,2.795380188020402e-5,-3.032352927191644e-8,0.002666888030781808,2.7663438827002143e-5,-2.993366290807507e-8,0.0026671748130789254,2.7408493516036183e-5,-2.958966680282094e-8,0.0026675216046985984,2.722333376093842e-5,-2.933771824724552e-8,0.0026678967932506742,2.7125467417972392e-5,-2.920171724683057e-8,0.002668268174343812,2.7116928055334394e-5,-2.918496557666993e-8,0.0026686067536675503,2.718687142750966e-5,-2.9273488870256556e-8,0.002668889153521843,2.7314125916714938e-5,-2.9439367095546293e-8,0.0026690995240611494,2.7469415229723713e-5,-2.9643692403226327e-8,0.002669231588881734,2.761768401200625e-5,-2.983969287822529e-8,0.0026692909045567758,2.772137604439484e-5,-2.9977123836592665e-8,0.002669296689582548,2.7745483589062654e-5,-3.0009007656812204e-8,0.0026692818814056923,2.76645400450632e-5,-2.9900964988722216e-8,0.002669289786419154,2.7470487600255673e-5,-2.9641735210395685e-8,0.0026693663135547675,2.7178855682651955e-5,-2.9251483856010147e-8,0.002669548600717101,2.6829814064937723e-5,-2.8783321052296953e-8,0.002669853232704221,2.6481571864986507e-5,-2.8314646721668814e-8,0.0026702686612265127,2.6196540227162797e-5,-2.792883344868289e-8,0.0026707555410017745,2.6024208042934442e-5,-2.769243626155642e-8,0.0026712556999075863,2.5986573478360687e-5,-2.7635653186376986e-8,0.002671707089748267,2.6071129511972674e-5,-2.7742712797765785e-8,0.0026720600901569886,2.6233603318288687e-5,-2.795522462078366e-8,0.002672290443135009,2.640954156364561e-5,-2.818742186699068e-8,0.0026724052428170825,2.653145786869803e-5,-2.8349002218997386e-8,0.002672440220313686,2.6546752821712073e-5,-2.8369163632258638e-8,0.0026724489957256573,2.6431102842522592e-5,-2.8214673922745004e-8,0.002672487698917711,2.6193125149463324e-5,-2.789629736013679e-8,0.0026726001820109838,2.586916578069951e-5,-2.746199942230688e-8,0.002672808644915501,2.551090053887501e-5,-2.6980507296689357e-8,0.0026731118372536797,2.5170934360175597e-5,-2.6522128760281473e-8,0.0026734896589889912,2.4891330726868854e-5,-2.6143393330707435e-8,0.0026739109227287,2.4697549447807037e-5,-2.5878832880513e-8,0.0026743410670043246,2.4597486622909633e-5,-2.5739543146492245e-8,0.002674747998989801,2.458373190904632e-5,-2.5716071958711425e-8,0.0026751057440529678,2.463704675194214e-5,-2.57830039780471e-8,0.0026753964831346907,2.47297865751725e-5,-2.5903529531835557e-8,0.00267561183646005,2.4828867315808e-5,-2.6033429491443315e-8,0.0026757540793394046,2.489859900654912e-5,-2.6124877326598502e-8,0.00267583747024861,2.4904174485618595e-5,-2.6131104709850983e-8,0.0026758891320712635,2.4816671777239062e-5,-2.6013096260213478e-8,0.0026759481268225807,2.4619877273035702e-5,-2.5748745104085175e-8,0.002676060878740094,2.4317891637757816e-5,-2.534308690420903e-8,0.002676271641860672,2.3940547910458253e-5,-2.4835628594163594e-8,0.0026766089922976954,2.3542240639262514e-5,-2.429887410844018e-8,0.002677072911743146,2.3190810939116947e-5,-2.3823549830955104e-8,0.002677629384711697,2.2947801471423495e-5,-2.349226195279842e-8,0.0026782174373540597,2.284747447523584e-5,-2.3351420427147178e-8,0.002678767190753552,2.2884450527373708e-5,-2.3394574904936935e-8,0.002679221246387928,2.3015772470718473e-5,-2.3564955982734086e-8,0.0026795504594499405,2.31755695605357e-5,-2.3774871289120044e-8,0.002679759170591716,2.3295137206169125e-5,-2.393243272963582e-8,0.0026798803135628544,2.3320917185443094e-5,-2.3965602905995443e-8,0.0026799640145154023,2.322577558520088e-5,-2.3837397612610006e-8,0.0026800639314745046,2.3012215146842673e-5,-2.3550384713622862E-08,0.0026802248899573116,2.2708392050599457e-5,-2.3141585163499967e-8,0.0026804742934984,2.235906805897442e-5,-2.2670554977751216e-8,0.0026808185968568944,2.2014267511493717e-5,-2.220428842578894e-8,0.0026812448336239396,2.171854636264718e-5,-2.180280461715125e-8,0.0026817259374465234,2.150323880680172e-5,-2.1508611094251824e-8,0.00268222781652349,2.1382809836528223e-5,-2.1341628366433782e-8,0.0026827161726339327,2.1355034347562173e-5,-2.1299284836488415e-8,0.0026831617535715744,2.140378470911418e-5,-2.1360196730420277e-8,0.0026835436457758872,2.1502965966267144e-5,-2.1489465414133864e-8,0.0026838509543692596,2.16204854567272e-5,-2.1644050147128995e-8,0.002684083542702058,2.1721810919128004e-5,-2.1777567204648777e-8,0.0026842524063363047,2.1773296218550722e-5,-2.184473901283113e-8,0.0026843798793523676,2.174584592951199e-5,-2.1806283785570994e-8,0.002684499254751002,2.1619604754520625e-5,-2.1635208600026604e-8,0.002684652615539522,2.1389936125771377e-5,-2.132488556836351e-8,0.0026848851553524585,2.1073684595338914e-5,-2.0897551736655894e-8,0.002685234761333537,2.071276203290809e-5,-2.040922349572789e-8,0.0026857179492677428,2.0370460882582813e-5,-1.9944823185549678e-8,0.002686317392056504,2.0116807827503108e-5,-1.9598553255649772e-8,0.002686979523907763,2.0004912349695077e-5,-1.9442129284992614e-8,0.0026876280837219843,2.0048512671163523e-5,-1.949455243073783e-8,0.0026881899249303247,2.0214024293583018e-5,-1.9711294931862544e-8,0.002688620249435145,2.043285656095454e-5,-2.000069039920413e-8,0.002688914623014258,2.0626936406510176e-5,-2.0258093448061607e-8,0.002689104448499188,2.073370425998305e-5,-2.0399378529749706e-8,0.0026892419298627126,2.0720641518941455e-5,-2.038044359813892e-8,0.00268938312888527,2.0587598019377475e-5,-2.0200427284762034e-8,0.002689574768650333,2.0360579482662567e-5,-1.989355990805515e-8,0.0026898465947728313,2.0081670543145843e-5,-1.9515867700560127e-8,0.0026902088053080623,1.9798500950558975e-5,-1.913120086648592e-8,0.002690653320029833,1.9555086732382298e-5,-1.8798959747669437e-8,0.0026911577108349486,1.9384918317815483e-5,-1.856468027518342e-8,0.0026916907283687213,1.9306783846534458e-5,-1.8454204375709315e-8,0.0026922183440946422,1.932346249716126e-5,-1.8471725008849565e-8,0.0026927093194704355,1.9422959535281348e-5,-1.8601349303398246e-8,0.002693139577075912,1.9581620030571056e-5,-1.8811304655394267e-8,0.0026934949979082095,1.9768275469618075e-5,-1.905959980051295e-8,0.0026937727037630865,1.9948579211282313e-5,-1.9299928293298172e-8,0.002693981227014739,2.008903816565814e-5,-1.9487102008012012e-8,0.0026941399761876384,2.0160743594175506e-5,-1.958202828436642e-8,0.002694278150304583,2.014308771745926e-5,-1.9556669135148625e-8,0.002694432839134833,2.0027814972522264e-5,-1.939951202924289e-8,0.0026946454407021474,1.9823465164879817e-5,-1.912164795226923e-8,0.002694955118743798,1.9559228013221924e-5,-1.876210188452582e-8,0.0026953885604227568,1.9285588555638527e-5,-1.8388822887488567e-8,0.002695947389646158,1.906784792733087e-5,-1.8090003030037158e-8,0.002696598361371597,1.8969529356223275e-5,-1.7951673808881418e-8,0.0026972747172651123,1.9028183067974308e-5,-1.8024976958726027e-8,0.002697894448259002,1.923482567582152e-5,-1.82982964892157e-8,0.0026983903263144058,1.953167385178543e-5,-1.8694084270395405e-8,0.0026987355972708806,1.9833273175935162e-5,-1.9097304148343785e-8,0.002698950451980689,2.005962260427181e-5,-1.9400090848296767e-8,0.0026990880859063043,2.016241265792062e-5,-1.9537100067242948e-8,0.0026992117922432905,2.013345355569334e-5,-1.949684506615443e-8,0.002699375647089422,1.999759245364751e-5,-1.9312213181089278e-8,0.002699614261285006,1.9798830819145078e-5,-1.9041939056218857e-8,0.0026999406340535597,1.9586801508834097e-5,-1.8752604336031518e-8,0.0027003488738597202,1.9406767550178475e-5,-1.850529554434705e-8,0.002700818970481651,1.9293437948365567e-5,-1.8347238284879605e-8,0.0027013220497049467,1.9267719508964687e-5,-1.8307237617048195e-8,0.002701825549465035,1.9335593552310834e-5,-1.839393020569358e-8,0.0027022980757690288,1.9488723621636194e-5,-1.8596431789749385e-8,0.002702713662607276,1.970654001153539e-5,-1.8887103092774177e-8,0.002703055157533248,1.9959543955443707e-5,-1.9226073522447195e-8,0.002703316448267429,2.0213520540267606e-5,-1.9567030088327615e-8,0.0027035033133196956,2.0434152409261692e-5,-1.986350378693203e-8,0.0027036329373279133,2.059147843487134e-5,-2.0074871352699753e-8,0.002703732317100221,2.0663912104588616e-5,-2.017172044859481e-8,0.002703835708462897,2.064176391337209e-5,-2.0140576017720335e-8,0.002703981045779454,2.0530222225002636e-5,-1.9987983238696774e-8,0.002704204955540068,2.0351562676141675e-5,-1.9743638549377247e-8,0.0027045358067139627,2.014570325430151e-5,-1.9461313750205066e-8,0.002704984805772576,1.996714707688034e-5,-1.92148397591981e-8,0.0027055368649279493,1.987574577050617e-5,-1.9085611169575944e-8,0.002706145685078051,1.9919963553539275e-5,-1.913981275734757e-8,0.0027067395839023285,2.0115935619329194e-5,-1.9399872245807953e-8,0.002707241964949466,2.0432627984345386e-5,-1.9824189275903496e-8,0.002707600561978769,2.079591363745013e-5,-2.031258854203578e-8,0.0027078094546453073,2.1114943868623784e-5,-2.0742078873478338e-8,0.0027079095029694275,2.1317626509160715e-5,-2.101494646065448e-8,0.002707967740739984,2.1374638784031844e-5,-2.1091231796414332e-8,0.0027080501916891273,2.1301291919555723e-5,-2.0991196408044287e-8,0.002708202805321296,2.1142645928582355e-5,-2.0775234408464792e-8,0.0027084452776870867,2.0954316120813476E-05,-2.0518098346501502e-8,0.002708774162575712,2.078764131629634e-5,-2.028905117718749e-8,0.002709169810830763,2.0681479161499233e-5,-2.014086685744763e-8,0.0027096034430987557,2.065925821172407e-5,-2.0105765910602988e-8,0.0027100428652535534,2.0729021182110605e-5,-2.0195268624788187e-8,0.0027104568599029245,2.088478077558925e-5,-2.0401806622108805e-8,0.0027108187654351296,2.1108546115977512e-5,-2.0701327617105837e-8,0.002711109496587725,2.1372986326076458e-5,-2.10568899223502e-8,0.002711319970232938,2.1644827851250796e-5,-2.142334211249965e-8,0.002711452708090201,2.1889050652350722e-5,-2.1753098561200446e-8,0.002711522206080725,2.207368852602839e-5,-2.2002679141313222e-8,0.002711553726110139,2.2174663760722812e-5,-2.2139227350930035e-8,0.0027115804817427185,2.2179989492678676E-05,-2.214615199321869e-8,0.0027116394229722046,2.2092790600064617e-5,-2.2027220749220564e-8,0.002711765902353902,2.1932661136871404e-5,-2.1808497541801675e-8,0.0027119875265561675,2.17349102139576e-5,-2.153749682666738e-8,0.0027123175594141167,2.154714321577371e-5,-2.1278725972971384e-8,0.002712748677090166,2.1422310197924048e-5,-2.1104340382649643e-8,0.0027132489457220156,2.1407462817094904e-5,-2.107881988743877e-8,0.002713763222707799,2.1528939153101463e-5,-2.12386510801654e-8,0.002714223539826301,2.17779711508261e-5,-2.1572526893751845e-8,0.0027145692235508168,2.210462782438041e-5,-2.201294395593925e-8,0.0027147705289971287,2.242831272043591e-5,-2.245045363896241e-8,0.002714842961370987,2.26651374401677e-5,-2.2770961975807826e-8,0.0027148417371246187,2.2759728481484883e-5,-2.2899019449501894e-8,0.0027148384646546696,2.270361220246182e-5,-2.2822761360270927e-8,0.002714894133814566,2.253147752919397e-5,-2.2588785865962968e-8,0.002715042481976411,2.230178058034443e-5,-2.227589996373742e-8,0.0027152877602880654,2.2075146022270574e-5,-2.196600255000497e-8,0.0027156119658795414,2.189977200438472e-5,-2.1724460810982776e-8,0.0027159847379479274,2.180547085498409e-5,-2.1592064109398672e-8,0.0027163717326484887,2.18037059038195e-5,-2.158495102003217e-8,0.0027167402462662167,2.189035707386248e-5,-2.169814943921391e-8,0.0027170626329077376,2.204902136902486e-5,-2.1909862774099005e-8,0.002717318577686348,2.225407880034124e-5,-2.2185536220454567e-8,0.002717496917322223,2.247368848952755e-5,-2.2481941172479003e-8,0.0027175971570509785,2.2673148098990517e-5,-2.2751819980273843e-8,0.002717630437619656,2.2818986025088118e-5,-2.2949521472554347e-8,0.002717619374232879,2.2883830547347417e-5,-2.3037639752791775e-8,0.0027175960863589687,2.2851508344780233e-5,-2.29939131948583e-8,0.002717598071460584,2.27213176952526e-5,-2.281699857396905e-8,0.0027176621709201596,2.2510260056520727e-5,-2.2529529271382513e-8,0.0027178174751903974,2.22521853070832e-5,-2.2177067543554316e-8,0.0027180784671276526,2.1993333213934358e-5,-2.1822217623532972e-8,0.0027184398641318065,2.178448760758116e-5,-2.153411268172913e-8,0.0027188745594770346,2.1670561409178468e-5,-2.137429317301222e-8,0.0027193360025531545,2.1679009178246315e-5,-2.1380826619141587e-8,0.002719766138446254,2.1809462677510583e-5,-2.1553961002315126e-8,0.00272010902935972,2.2028302823201387e-5,-2.184847600516649e-8,0.0027203278821346134,2.2272524858974438e-5,-2.2178797892063562e-8,0.0027204196799707763,2.24654419229855e-5,-2.2440404566424472e-8,0.002720419476537429,2.2541182151501676e-5,-2.2543308403420168e-8,0.002720389514355453,2.246792006086709e-5,-2.2443785172222848e-8,0.0027203968580779593,2.2257868624423312e-5,-2.2157995797522724e-8,0.0027204907531003454,2.1959156500183422e-5,-2.17509487518943e-8,0.0027206903780250197,2.1635680043467534e-5,-2.1309184877300774e-8,0.0027209858546815508,2.1346417556349277e-5,-2.0912787442917073e-8,0.002721347808163526,2.1132433058736414e-5,-2.06177932502233e-8,0.002721738732659261,2.101302770424033e-5,-2.045091160605777e-8,0.002722121842089695,2.0988064107378192e-5,-2.0412526919188236e-8,0.0027224663072612032,2.104272221321373e-5,-2.0482980964473065e-8,0.0027227497312666536,2.1152219247249398e-5,-2.0628864697851955e-8,0.0027229592187699085,2.1285646420264224e-5,-2.0808205423364215e-8,0.002723092024279769,2.140915534170127e-5,-2.0974851448080727e-8,0.002723156140984944,2.14891410191427e-5,-2.108288393508341e-8,0.002723170606461795,2.149605797679514e-5,-2.1091870780846034e-8,0.0027231647986974373,2.140913982897247e-5,-2.0973305086363463e-8,0.002723175747615389,2.122154123906254e-5,-2.0717585989345948e-8,0.0027232427667478894,2.094452464224403e-5,-2.0339705819586754e-8,0.0027233996145755853,2.0608713479640643e-5,-1.9880992713257535e-8,0.002723665721382843,2.026060892275378e-5,-1.9404470170278227e-8,0.0027240391567136266,1.9953854594028393e-5,-1.898310231028625e-8,0.002724494146855511,1.9736789731948312e-5,-1.8682948875842208e-8,0.002724984781134481,1.9639562245665583e-5,-1.8545605329381536e-8,0.002725454640230336,1.9664591180140306e-5,-1.8575060281540082e-8,0.0027258502841296267,1.978346436416098e-5,-1.8733227690675876e-8,0.0027261353236396123,1.9941877016394326e-5,-1.894645849238284e-8,0.002726301248658682,2.007230249813052e-5,-1.912271463933041e-8,0.0027263713289722514,2.011187104949174e-5,-1.9175991154117115e-8,0.002726395138448426,2.002057957804487e-5,-1.905127428909273e-8,0.002726434196991114,1.9793401183908815e-5,-1.8741182852925098e-8,0.0027265433420372793,1.946100805656228e-5,-1.828705235095383e-8,0.0027267551469351914,1.9078518607560066e-5,-1.7763682989189432e-8,0.002727073366580046,1.870747687105405e-5,-1.7254861286109985e-8,0.0027274765293817524,1.8398952985918913e-5,-1.683037011094019e-8,0.002727927993060576,1.818353027833995e-5,-1.6532295654523488e-8,0.0027283871266923043,1.8069347217504134e-5,-1.637222675764901e-8,0.0027288178204516824,1.804577514014172e-5,-1.633611041703065e-8,0.0027291931918580247,1.8089300870504294e-5,-1.6392157254153952e-8,0.0027294972768002954,1.816913014448269e-5,-1.649844892067187e-8,0.0027297251046408027,1.8251552466542002e-5,-1.660892918346911e-8,0.0027298822811575333,1.830324285422369e-5,-1.6677976929709144e-8,0.0027299846109979653,1.8294199006395545e-5,-1.6664471571957215e-8,0.0027300576392803658,1.8201084382144078e-5,-1.6536379482566312e-8,0.002730135367558795,1.801142871411346e-5,-1.6276481194654895e-8,0.0027302569950561194,1.772835840690819e-5,-1.5888815400112085e-8,0.002730460675000141,1.7374367034465673e-5,-1.540383280991605e-8,0.002730774317388617,1.6991538671805468e-5,-1.487874681986958e-8,0.002731205492992096,1.663554986253649e-5,-1.4389430286252634e-8,0.0027317346225685167,1.6362736100393333e-5,-1.401285392592605e-8,0.0027323159732417688,1.6213321694122396e-5,-1.3804237823242727e-8,0.0027328882043883593,1.6197272773221976e-5,-1.377768292956184e-8,0.002733391477933123,1.628923403372551e-5,-1.3899104903846669e-8,0.0027337846859482747,1.6435087027299024e-5,-1.4095004537599963e-8,0.002734056500043612,1.656745755001094e-5,-1.4273511480543449e-8,0.0027342271115420556,1.6624323330041047e-5,-1.4349761230979106e-8,0.002734341218625606,1.6564849873113524e-5,-1.4267579057934553e-8,0.0027344551943848145,1.6378505391622318e-5,-1.4012046808109738e-8,0.002734622289801755,1.608581588143182e-5,-1.3610682506044439e-8,0.0027348797656559553,1.5731229116967588e-5,-1.312384293400565e-8,0.0027352411979116873,1.5370487927067927e-5,-1.262758861964929e-8,0.0027356956705479342,1.5056407177672457e-5,-1.2194285616455754e-8,0.002736213318040265,1.4827270079832405e-5,-1.1876677483532097e-8,0.0027367546090290257,1.4700733657187753e-5,-1.169940036745348e-8,0.002737279962922846,1.4673731384326293e-5,-1.16586767454608e-8,0.0027377570640155654,1.4726736350655366e-5,-1.1728029197099415e-8,0.0027381648557289963,1.482989457646782e-5,-1.1866648191392354e-8,0.0027384946423735903,1.4948942426058718e-5,-1.2027544616739114e-8,0.002738749434445084,1.504985821963847e-5,-1.216399804528127e-8,0.0027389426406392242,1.5102225647928979e-5,-1.2234218749741384e-8,0.0027390967313658887,1.508190848938774e-5,-1.2205022203274869e-8,0.0027392418828776502,1.497377683520103e-5,-1.2055543818857391e-8,0.0027394140032673863,1.4774979914795335e-5,-1.1781703210623261e-8,0.0027396510558396095,1.449859754939216e-5,-1.1401214646296961e-8,0.0027399865631337478,1.4176337452192784e-5,-1.0957324233453986e-8,0.0027404401157403325,1.3857589419184968e-5,-1.0517579850249122e-8,0.002741006988407936,1.3601649709835046e-5,-1.016324470539438e-8,0.002741651946643131,1.3461932237357087e-5,-9.967701894510386e-9,0.0027423134297618586,1.3466164991872435e-5,-9.969292325791265e-9,0.0027429204127412043,1.3602045380436758e-5,-1.0151559338201335e-8,0.0027434161980657615,1.381781057785335e-5,-1.0443902181835858e-8,0.0027437775903663983,1.403930043979941e-5,-1.0744867582233018e-8,0.00274402026056172,1.4195086586668818e-5,-1.0956551973741348e-8,0.002744189707180539,1.4237647948831023e-5,-1.101361813162918e-8,0.0027443444308235623,1.4153214739371446e-5,-1.0896808965594635e-8,0.0027445391212823013,1.3960083614703103e-5,-1.063071839494125e-8,0.0027448126229584063,1.369940353501182e-5,-1.0271311517205686e-8,0.0027451820491002014,1.342296064314159e-5,-9.889353385649206e-9,0.0027456424369939375,1.3181296837245952e-5,-9.554228595057486e-9,0.0027461706266553357,1.301415215625418e-5,-9.320814951324564e-9,0.0027467319065318033,1.2944348784452829e-5,-9.220945708603037e-9,0.0027472878430236675,1.297566686114043e-5,-9.26028974478475e-9,0.0027478036209455806,1.3094521161716708e-5,-9.420488426281658e-9,0.0027482535395967965,1.3274409109423844e-5,-9.665206228210173e-9,0.002748624017387072,1.3481665911821765e-5,-9.94808846615289e-9,0.002748914201993835,1.3681151040180056e-5,-1.0220678594459335e-8,0.002749134840466332,1.3840922486020028e-5,-1.0438925666362003e-8,0.0027493062755827883,1.3935617636275572e-5,-1.0567851392877573e-8,0.0027494561978375956,1.3948871850020234e-5,-1.0584841736813426e-8,0.002749617298368145,1.3875330877006017e-5,-1.0482372438320108e-8,0.002749824478571436,1.3722661790345272e-5,-1.0270772986168708e-8,0.002750110830763187,1.3513482353169196e-5,-9.98093410823438e-9,0.00275050148863685,1.3286167853943228e-5,-9.665504146217214e-9,0.0027510052007713166,1.3092282740735443e-5,-9.395433012835077e-9,0.0027516054627253683,1.2987797311630384e-5,-9.247916863310523e-9,0.0027522560077975567,1.3016795714357577e-5,-9.283940992366734e-9,0.002752887270832192,1.3191513005764179e-5,-9.520705716744854e-9,0.0027534268750110877,1.3479307947422266e-5,-9.913575792228905e-9,0.002753827252818105,1.380820104122874e-5,-1.0363635022831688e-8,0.002754085066367869,1.4092408000508905e-5,-1.0752843979321471e-8,0.002754240423604777,1.4264671631161601e-5,-1.0988570669126968e-8,0.0027543577158397454,1.4297504261183262e-5,-1.1032801675695634e-8,0.0027545010082918016,1.4205075789953122e-5,-1.0904699986993847e-8,0.0027547161998007054,1.4030591799180186e-5,-1.0663283329901377e-8,0.0027550240194078655,1.3829185117178249e-5,-1.0384043206256625e-8,0.002755421453020713,1.3653474454465471e-5,-1.0139258403077382e-8,0.0027558875196220835,1.3544259564344984e-5,-9.985280220478687e-9,0.0027563903321073395,1.3525955479519786e-5,-9.956181654857124e-9,0.0027568938904163395,1.3605460183974092e-5,-1.0062009063794016e-8,0.002757364073561223,1.3773418082126131e-5,-1.029030898978133e-8,0.0027577735523741467,1.4007312606634619e-5,-1.0610254942756665e-8,0.002758105281049702,1.4275878871466236e-5,-1.0978721485269755e-8,0.0027583543129910426,1.4544196144378514e-5,-1.1347397176404875e-8,0.002758527884760369,1.4778781498711986e-5,-1.1669921998794136e-8,0.0027586439565762334,1.495202207329257e-5,-1.1908062139585563e-8,0.0027587286752269713,1.5045486741457556e-5,-1.2036263263573345e-8,0.002758813283168323,1.5052079543374385e-5,-1.2044567346228864e-8,0.0027589307562035483,1.497726783006875e-5,-1.1940277717807085e-8,0.0027591121400170103,1.4839587044545021e-5,-1.1748696271030066e-8,0.002759382258301141,1.4670374331164395e-5,-1.1512860934478634e-8,0.0027597543590631487,1.4512060743916354e-5,-1.1291303651724086e-8,0.002760223851724849,1.4413504572653444e-5,-1.1151667518328181e-8,0.002760762772812467,1.4420577561528979e-5,-1.1157671499436408e-8,0.002761318710750578,1.4561512390203414e-5,-1.1348746558323507e-8,0.00276182335825203,1.483046758444795e-5,-1.171717072812087e-8,0.002762213232767044,1.5178600777388183e-5,-1.2195628938203373e-8,0.0027624561618459875,1.5523579998102924e-5,-1.2670370954457433e-8,0.002762568055471419,1.577896645887847e-5,-1.3021911778698365e-8,0.002762607053442844,1.588892345218556e-5,-1.3173036202525945e-8,0.0027626477535367317,1.5847494556313896e-5,-1.3115353264673006e-8,0.002762752148698717,1.5693341116187472e-5,-1.290193227055894e-8,0.002762952717258098,1.5488291251018845e-5,-1.2617722370350503e-8,0.0027632510418019677,1.5294686690858635e-5,-1.2348462136331391e-8,0.0027636259344087917,1.5160707656321381e-5,-1.2160612203495138e-8,0.002764043924793039,1.511465428428553e-5,-1.2093523880228672e-8,0.002764468105360931,1.5165219435121325e-5,-1.2159711904489318e-8,0.0027648642771565795,1.5304554776486206e-5,-1.2348881160795975e-8,0.00276520491193756,1.551214917612753e-5,-1.2633083740317827e-8,0.0027654717421526196,1.5758859205074683e-5,-1.2972187445271782e-8,0.0027656573615933593,1.601108180866163e-5,-1.331966747011974e-8,0.0027657658412326984,1.623508143758839e-5,-1.3628693916074076e-8,0.0027658122315612965,1.6401336192405455e-5,-1.385824500072823e-8,0.0027658208032614435,1.64885423505343e-5,-1.397868551819702e-8,0.0027658220656359834,1.6486733828388484e-5,-1.397605157394892e-8,0.002765848891824904,1.639909794692674e-5,-1.3854513826157042e-8,0.0027659321674139512,1.6242317878778517e-5,-1.3636849548780435e-8,0.002766096303503263,1.6045369593808686e-5,-1.3362857387789591e-8,0.0027663548615603564,1.5846730676314847e-5,-1.308562701077851e-8,0.0027667064826740096,1.5689835021215877e-5,-1.2865361853446855e-8,0.002767131628491153,1.5616253392744474e-5,-1.2759959238257351e-8,0.002767591541465577,1.565613932350352e-5,-1.2811680422273687e-8,0.0027680318643640033,1.581672526418174e-5,-1.3031031172521404e-8,0.0027683935757452003,1.607229328191158e-5,-1.3382687188492964e-8,0.0027686315906423767,1.6362317419807093e-5,-1.3782849249591848e-8,0.0027687352106116232,1.660487394222258e-5,-1.4117902190796029e-8,0.002768738239820442,1.6725105080637398e-5,-1.4283993588661351e-8,0.0027687087079556953,1.6685822510540136e-5,-1.422947633870195e-8,0.0027687213527381837,1.650176304721841e-5,-1.3974559220475729e-8,0.0027688289978741332,1.622925799770131e-5,-1.3596908755438644e-8,0.002769048363398059,1.594031700512789e-5,-1.3195832869032236e-8,0.00276936337344147,1.569769408859385e-5,-1.2857958409166736e-8,0.002769738192543268,1.5541237964123733e-5,-1.2638499739393606e-8,0.002770130857577132,1.5485700596560033e-5,-1.2558236264973412e-8,0.0027705028435936804,1.5525121557837643e-5,-1.2609441752677153e-8,0.002770824104016123,1.5639139817898094e-5,-1.2764417778794309e-8,0.0027710750382562957,1.579871667179225e-5,-1.298325399628226e-8,0.002771246995946245,1.5970684935818387e-5,-1.322007185623983e-8,0.0027713422068845884,1.6121524757386047e-5,-1.3428307331702114e-8,0.0027713733059165882,1.622087961293736e-5,-1.3565689517813172e-8,0.0027713622519797507,1.6245092710609566e-5,-1.3599228831309594e-8,0.002771338258376431,1.6180665568763176e-5,-1.3510033682923686e-8,0.0027713344138243505,1.6027070557930125e-5,-1.3297175460530656e-8,0.0027713830768532144,1.579813080854103e-5,-1.2979564370243544e-8,0.0027715105782646693,1.5521323628688927e-5,-1.2595002061998987e-8,0.002771732045267941,1.5234636665673235e-5,-1.2195915802458485e-8,0.002772047301432447,1.4981007805899022e-5,-1.1841777298032802e-8,0.002772438752589332,1.4800880562158318e-5,-1.1588867502371844e-8,0.0027728720133379584,1.4723695349422957e-5,-1.1478455258934069e-8,0.0027733000270757664,1.475936384689405e-5,-1.1524829287417343e-8,0.0027736714038943994,1.4891518683271445e-5,-1.1705728640433002e-8,0.002773942949580787,1.5075513691583893e-5,-1.1959405556781578e-8,0.002774094298536084,1.5244784160866828e-5,-1.2193420369479077e-8,0.00277413935771806,1.5327642621168224e-5,-1.2308056164262575e-8,0.002774127095241945,1.5271382737278492e-5,-1.222991079233378e-8,0.002774127125267959,1.5063483024427677e-5,-1.1941373736095969e-8,0.002774204509579759,1.4737530909312808e-5,-1.1488800019336111e-8,0.0027743965548067697,1.43593324733346e-5,-1.0963210259393599e-8,0.0027747034985702353,1.4001351538615448e-5,-1.0464911437262635e-8,0.0027750951364715324,1.3719672259939094e-5,-1.007167416389651e-8,0.002775526051367617,1.3542754928601997e-5,-9.823200461899074e-9,0.0027759503581378433,1.3472044653032601e-5,-9.721903248961207e-9,0.0027763311030684443,1.3489110782461308e-5,-9.742655844025204e-9,0.0027766441055164853,1.356402503429683e-5,-9.84425800476849e-9,0.002776878237542247,1.3662175145885656e-5,-9.978801364369811e-9,0.00277703421910064,1.3749001999510627e-5,-1.0098250340897997e-8,0.002777123145672282,1.3793304300500613e-5,-1.0159108468992627e-8,0.002777165069365021,1.3769948799978488e-5,-1.012627712891473e-8,0.002777187380425079,1.366257139239754e-5,-9.976865115490197e-9,0.002777222427192686,1.3466379006569386e-5,-9.704079704233e-9,0.002777303795784524,1.3190508945819256e-5,-9.32046418862628e-9,0.0027774610887294536,1.285887005615791e-5,-8.859037531642524e-9,0.00277771379236086,1.250829794191475e-5,-8.370757335750319e-9,0.0027780656045215007,1.2183280121571277e-5,-7.917278908180143e-9,0.00277850108054271,1.1927476784055753e-5,-7.559280656595044e-9,0.002778986285044394,1.1773582658743977e-5,-7.3424319327927995e-9,0.0027794741941447932,1.1734065609188585e-5,-7.284473669250357e-9,0.0027799142794985264,1.1795451333347614e-5,-7.367127372081157e-9,0.00278026452821218,1.1918270864807826e-5,-7.535846169209884e-9,0.0027805032458643373,1.204384768123753e-5,-7.709138116829781e-9,0.0027806373209791524,1.2107676158375936e-5,-7.797171506191644e-9,0.002780703452468078,1.2057033090757864e-5,-7.726358310931846e-9,0.002780759925646668,1.186787561236933e-5,-7.46295792291357e-9,0.002780869728653987,1.155427127221588e-5,-7.026249491461181e-9,0.002781080498337681,1.1164946271353642e-5,-6.483757041896363e-9,0.002781409786732128,1.0767143875816982e-5,-5.928845847483083e-9,0.0027818421004138097,1.04248448157659e-5,-5.450501229246064e-9,0.0027823377629871307,1.0181105245430409e-5,-5.10879819574084e-9,0.002782847735319512,1.0050699713777196e-5,-4.924616944992279e-9,0.002783327243787241,1.0022856728953502e-5,-4.883325460734916e-9,0.0027837440651562097,1.0069594711575953e-5,-4.94624874966697e-9,0.0027840812269027786,1.015483206039899e-5,-5.063271670053514e-9,0.0027843360787357524,1.024152532104462e-5,-5.1827770304128115e-9,0.002784517883012557,1.0296305457586499e-5,-5.258162067166841e-9,0.0027846452783812006,1.0292292461840592e-5,-5.251838399917288e-9,0.002784744078074569,1.0211053940810853e-5,-5.138017383006263e-9,0.0027848451722726508,1.004447040455388e-5,-4.905319130341186e-9,0.002784981869337182,9.796760182050914e-6,-4.559563393831464e-9,0.0027851859388087303,9.486172936094592e-6,-4.1260871182282976e-9,0.0027854820195520776,9.145128566965864e-6,-3.649923337373014e-9,0.0027858809685050146,8.817212839408479e-6,-3.1916519447886542e-9,0.002786374004344479,8.549858663854469e-6,-2.8172810988601715e-9,0.002786930516713693,8.38311526590999e-6,-2.5826759770245543e-9,0.0027875021251903167,8.337323332657525e-6,-2.5164033042951878e-9,0.002788033442730153,8.404341144331321e-6,-2.6074358965324996e-9,0.0027884768663511967,8.546587963184419e-6,-2.8036922561923524e-9,0.002788806444515096,8.705359435428541e-6,-3.023511191011914e-9,0.002789025898946628,8.816155454370437e-6,-3.1769693624562517e-9,0.00278916808580964,8.826174280013064e-6,-3.1902919454504053e-9,0.0027892861494492062,8.708654066453408e-6,-3.0259083522581603e-9,0.002789439024007953,8.46996585135858e-6,-2.6924102085292982e-9,0.0027896754169786063,8.14743898998842e-6,-2.2415918566646356e-9,0.002790020989298804,7.798481749683577e-6,-1.7533598997337004e-9,0.0027904727105389194,7.484380983397801e-6,-1.3132102122914294e-9,0.0027910019465777094,7.254182931369871e-6,-9.89761674395551e-10,0.0027915644996498075,7.133899378245067e-6,-8.196308089392246e-10,0.002792113334641582,7.123723332179867e-6,-8.034153427098901e-10,0.0027926094573086616,7.202432983697204e-6,-9.117101623954198e-10,0.002793028233302452,7.335726174669705e-6,-1.0966748720526548e-9,0.0027933609484635524,7.4849003149403414e-6,-1.3041707157630382e-9,0.002793613109513304,7.61360949860106e-6,-1.4832721372423023e-9,0.002793801331699417,7.692125726622039e-6,-1.5923023708007069e-9,0.0027939501157332436,7.699650544928369e-6,-1.602113739190793e-9,0.0027940890449749374,7.62559574208575e-6,-1.4978805430814948e-9,0.0027942502546082484,7.47061613566804e-6,-1.2805101597583769e-9,0.002794465545354246,7.247708832349798e-6,-9.681400023267961e-10,0.0027947623730721393,6.982972729165114e-6,-5.97180208495864e-10,0.002795158293619206,6.714815163187818e-6,-2.2122179168722028e-10,0.0027956544044971682,6.489842552957791e-6,9.465788350054435e-11,0.0027962298905296608,6.353985618709735e-6,2.862426270105938e-10,0.0027968413003591638,6.339329590931643e-6,3.085594249353236e-10,0.002797430023565606,6.450574770211097e-6,1.5483829055035215e-10,0.0027979381407812233,6.657939065789282e-6,-1.33481326751483e-10,0.0027983274370340884,6.9023050870562255e-6,-4.73865860969561e-10,0.0027985929487883057,7.112534229482264e-6,-7.668664513252449e-10,0.0027987644712778367,7.227889781129287e-6,-9.274873085756629e-10,0.002798895846497114,7.215922522318092e-6,-9.102130577481535e-10,0.0027990476214502418,7.07954168609196e-6,-7.189055791823305e-10,0.002799270159329704,6.8528184660678055e-6,-4.0097058487487015e-10,0.0027995921098042825,6.589150394962895e-6,-3.089155205840986e-11,0.0028000160559371254,6.346543838175632e-6,3.10246237176008e-10,0.0028005208861621384,6.174077528739478e-6,5.536306075559972e-10,0.002801069138807742,6.102332622183427e-6,6.561508599671992e-10,0.002801616887775129,6.139228531226112e-6,6.063570042587458e-10,0.0028021235424224794,6.271340195284573e-6,4.227738196672006e-10,0.0028025593261495505,6.469448209654452e-6,1.462323628969768e-10,0.002802909202716053,6.696171451931554e-6,-1.7081556781815749e-10,0.0028031732715659992,6.913472533175175e-6,-4.748902722777455e-10,0.002803364595060627,7.088522312131387e-6,-7.198047146353163e-10,0.002803505761944061,7.197381055746142e-6,-8.718919784335805e-10,0.002803625279954858,7.226791581760613e-6,-9.125259098952547e-10,0.0028037543398572442,7.1748236665111314e-6,-8.389867042693141e-10,0.0028039239008144736,7.051055423278122e-6,-6.646711695244907e-10,0.0028041616337651505,6.8765748079719594e-6,-4.190817695600791e-10,0.0028044880974484863,6.6835013555270844e-6,-1.471822583423747e-10,0.0028049117634366405,6.5130028002482435e-6,9.333211200818222e-11,0.002805423407949294,6.410183518830969e-6,2.391581525590211e-10,0.0028059919682429956,6.414458134729057e-6,2.348761811647254e-10,0.0028065656354558507,6.545964496883274e-6,5.204916047160679e-11,0.0028070820322286597,6.792467980851788e-6,-2.923256812302114e-10,0.0028074875111325586,7.1049452709561795e-6,-7.295484999982558e-10,0.002807758398439204,7.408801568743201e-6,-1.1549479735996095e-9,0.002807912309953183,7.629016879277494e-6,-1.4632184010996237e-9,0.0028080018600268285,7.717209899264664e-6,-1.5864308892715257e-9,0.00280809416469148,7.666574793887121e-6,-1.5149558263742769e-9,0.0028082476851966315,7.509156810078956e-6,-1.293585924107478e-9,0.0028084967768828226,7.300588647517751e-6,-1.0001414868267381e-9,0.002808847262739549,7.101610708252468e-6,-7.196587372359342e-10,0.0028092805508106752,6.9632211202788204e-6,-5.236849754708002e-10,0.0028097620700029556,6.9179843415002716e-6,-4.5813084509820613e-10,0.0028102506436204987,6.977109497128568e-6,-5.3909443895529e-10,0.002810706875116468,7.1318269763759485e-6,-7.546337294862254e-10,0.002811099653827845,7.357649721019065e-6,-1.0705937383009498e-9,0.0028114103186717213,7.620360090645017e-6,-1.4389400470211245e-9,0.0028116342841793644,7.882562522965005e-6,-1.8069960493090511e-9,0.002811780336556491,8.109700436176797e-6,-2.1259981185286337e-9,0.0028118681577567702,8.274759500587497e-6,-2.3578054290919355e-9,0.002811924804212133,8.361260065829955e-6,-2.479149299892737e-9,0.002811980892546883,8.36454527445245e-6,-2.4834224476780367e-9,0.0028120670235339054,8.291786877210306e-6,-2.380638941437992e-9,0.002812210545938763,8.161235186498023e-6,-2.196355734372293e-9,0.0028124324269317093,8.000947582996757e-6,-1.9699141477060387e-9,0.0028127438794841287,7.846806856187975e-6,-1.7517213264542863e-9,0.002813142552806622,7.739137129470781e-6,-1.5985536553676695e-9,0.002813608808015108,7.716755992795095e-6,-1.5652027889490953e-9,0.002814103934259319,7.807540942446503e-6,-1.6911479779159391e-9,0.0028145735374341036,8.016337002635303e-6,-1.9834359406417603e-9,0.0028149593679730016,8.31455967856922e-6,-2.4019489267911616e-9,0.0028152192752681693,8.639495206008205e-6,-2.858393347499628e-9,0.002815347491924279,8.910155826623826e-6,-3.238690313459153e-9,0.0028153820992645705,9.056877288906372e-6,-3.444739279219633e-9,0.0028153917225959865,9.049565373279847e-6,-3.434183721829044e-9,0.0028154478006963196,8.907688181128402e-6,-3.234368005566589e-9,0.0028155987912163055,8.687766600877536e-6,-2.924641731063571e-9,0.002815858796138938,8.458997654451106e-6,-2.6021037702235526e-9,0.0028162112125574854,8.281283974367032e-6,-2.3508457347741356e-9,0.002816620244870729,8.193045999255578e-6,-2.2249439851131193e-9,0.002817043196425516,8.208464494140208e-6,-2.2446042949535775e-9,0.0028174399451113383,8.320583317078408e-6,-2.4004250119473305e-9,0.0028177788955663485,8.506869283546043e-6,-2.661052702041974e-9,0.0028180401266746525,8.735196722855205e-6,-2.9814634943747566e-9,0.002818216618208338,8.969546300902432e-6,-3.3109360361838935e-9,0.0028183139820533165,9.175233421802618e-6,-3.600466281728827e-9,0.0028183488727125663,9.323413400084446e-6,-3.809217986798757e-9,0.0028183463049050498,9.39458305470024e-6,-3.90954465122841e-9,0.0028183361606477814,9.380837778898787e-6,-3.890194719106599e-9,0.002818349263122649,9.286671155840795e-6,-3.757406772881838e-9,0.002818413492033781,9.128333531433483e-6,-3.53396419516556e-9,0.0028185502773691137,8.932029054209705e-6,-3.2566550844126667e-9,0.0028187715560268277,8.731181934898563e-6,-2.972477812164968e-9,0.0028190771735186674,8.562773878565448e-6,-2.7335615331514525e-9,0.002819452811212173,8.462515809163019e-6,-2.5904087552382515e-9,0.0028198689659859892,8.458399189389392e-6,-2.5827732791303527e-9,0.0028202823760493027,8.562461789260582e-6,-2.7279409911836136e-9,0.0028206420530898016,8.76203294867925e-6,-3.0082465413739715e-9,0.0028209016970371353,9.01428419331315e-6,-3.3633026041725225e-9,0.0028210372630595158,9.250300643214355e-6,-3.695772409602383e-9,0.0028210625026776777,9.393515552182452e-6,-3.897503770163006e-9,0.0028210309762700552,9.388841811821506e-6,-3.890735771174717e-9,0.0028210180397079793,9.227581680220804e-6,-3.6632088806019304e-9,0.002821090430482207,8.951597895319539e-6,-3.273910330543877e-9,0.002821281364602508,8.633748034245999e-6,-2.8253997402826636e-9,0.0028215841712364,8.34816387734706e-6,-2.4219756103304343e-9,0.0028219629940235817,8.147536600047868e-6,-2.1378075495426764e-9,0.0028223698510740254,8.054819543764938e-6,-2.0053439921519466e-9,0.002822758897752516,8.06627654451556e-6,-2.0195926662397562e-9,0.0028230947143213737,8.159510301354147e-6,-2.149322407764077e-9,0.0028233554406812823,8.301852148391436e-6,-2.348744115947894e-9,0.00282353282593384,8.45708600749022e-6,-2.5668892800147934e-9,0.002823630975521782,8.590367413029983e-6,-2.754534233626674e-9,0.002823664602469181,8.671985233133684e-6,-2.869577271902303e-9,0.0028236568220320374,8.680413957217215e-6,-2.881448031847007e-9,0.002823636368151626,8.604700974308771e-6,-2.77454826352887e-9,0.00282363417253053,8.446003171394267e-6,-2.55042869198829e-9,0.0028236793809163405,8.217892940976991e-6,-2.2281801649158934e-9,0.0028237951897224314,7.945063459574405e-6,-1.8425677017566835e-9,0.0028239951055245996,7.660380146708828e-6,-1.4398777251617586e-9,0.0028242801645024245,7.40050743300998e-6,-1.0718072754261351e-9,0.0028246375107151937,7.200455492493439e-6,-7.878393942073073e-10,0.002825040666646605,7.087470503711195e-6,-6.266431600801484e-10,0.002825451877475943,7.074723084324243e-6,-6.071044899922806e-10,0.00282582713879414,7.155466286875476e-6,-7.199525343266866e-10,0.0028261246005233435,7.299190176080726e-6,-9.222045847808211e-10,0.00282631625064073,7.452589468357933e-6,-1.138486076576167e-9,0.002826400528199012,7.5487591099507736e-6,-1.2740885116638722e-9,0.002826410104662908,7.52604944408374e-6,-1.2417419852670848e-9,0.0028264072933222306,7.3519489307029926e-6,-9.95445629992879e-10,0.002826464019776748,7.0400481913062265e-6,-5.543990372405558e-10,0.0028266339859106117,6.6478080126638315e-6,2.5428477574195166e-13,0.002826932486316038,6.254009951919073e-6,5.573195548555597e-10,0.002827334926475173,5.928910433440534e-6,1.017639188279871e-9,0.0028277917797869642,5.7135131054699254E-06,1.3232757200131534e-9,0.002828248468891538,5.614983691413445e-6,1.4639603114758254e-9,0.0028286601533812237,5.614073569452187e-6,1.4666632447107474e-9,0.0028289983913868215,5.676607424183315e-6,1.379463686399024e-9,0.002829251626940915,5.763552361016194e-6,1.257411163440545e-9,0.0028294226533315623,5.8378051497912814e-6,1.1529709034080448e-9,0.002829525391442807,5.868127420486881e-6,1.1104318965864509e-9,0.002829581983388046,5.831461400637911e-6,1.162556397104102e-9,0.0028296201636700017,5.714584370675174e-6,1.3281613329217984e-9,0.0028296704970861516,5.515438234757098e-6,1.610201352537694e-9,0.0028297631021037386,5.243980536622576e-6,1.9945855887171813e-9,0.0028299236827314406,4.922012339098648e-6,2.4504737826893106e-9,0.0028301691569658544,4.581263003820374e-6,2.933023335426697e-9,0.0028305037217332307,4.259296600010102e-6,3.3891673170969797e-9,0.002830916459461489,3.993408191619676e-6,3.766190530193445e-9,0.0028313814792820546,3.8133369601973606e-6,4.021977064794002e-9,0.0028318611572783646,3.7341893056990802e-6,4.135010647324168e-9,0.0028323123871055148,3.7511839643312496e-6,4.1118687449955575e-9,0.002832695135207755,3.837639289960757e-6,3.990171251095755e-9,0.0028329821184355144,3.947374265896908e-6,3.835263147375323e-9,0.0028331678013638183,4.02244680576321e-6,3.7292680413861366e-9,0.002833273994081028,4.0063226672806816e-6,3.752376733977591e-9,0.0028333486086335536,3.8605677828823e-6,3.959124752584863e-9,0.0028334548656437477,3.5800588386143807e-6,4.356815088093346e-9,0.0028336519146150165,3.199196575199989e-6,4.896744085319297e-9,0.002833973775156948,2.7832242943678695e-6,5.486528461109836e-9,0.002834417043797699,2.4062456980927005e-6,6.021220646396547e-9,0.002834944056387233,2.1262318186002894e-6,6.418661302859258e-9,0.0028354988875670265,1.969203084860813e-6,6.641874660667108e-9,0.0028360266300474844,1.927913656213458e-6,6.70098348403756e-9,0.0028364871221820765,1.971420933258333e-6,6.639725869469694e-9,0.0028368601012207684,2.0580493155069e-6,6.517137481949485e-9,0.002837143798391918,2.146084523307919e-6,6.392404569592256e-9,0.0028373505649315713,2.200262702481213e-6,6.315634711039505e-9,0.0028375022225614853,2.194747581939334e-6,6.323580516384682e-9,0.002837626278744532,2.1141632193792574e-6,6.438118184879123e-9,0.002837752983195648,1.9539503821470446e-6,6.665710573780227e-9,0.002837912672316925,1.720635357079953e-6,6.997035491702147e-9,0.0028381327625960472,1.4319563558805509e-6,7.406851308263388e-9,0.0028384339774149996,1.1162175023410766e-6,7.85496469067567e-9,0.0028388259645027686,8.098741102245192e-7,8.289678744088075e-9,0.0028393032769971362,5.525056854996284e-7,8.654901931555912e-9,0.002839843390194472,3.791424868007549e-7,8.900980702450035e-9,0.0028404085467517684,3.1124743347196077e-7,8.997452128487504e-9,0.002840952357445899,3.4901622113740223e-7,8.943973785765355e-9,0.002841430295633725,4.68119085106208e-7,8.775000509935415e-9,0.0028418113735728568,6.229385663401742e-7,8.555251582211405e-9,0.0028420874546643236,7.562180083845292e-7,8.366042862071104e-9,0.002842277186103206,8.12928826496597e-7,8.28557717186452e-9,0.0028424229792514757,7.548341939316745e-7,8.368220742089385e-9,0.0028425812098529235,5.718152359385369e-7,8.628388634888865e-9,0.002842807562695609,2.864119988032696e-7,9.034090564959052e-9,0.0028431411958904427,-5.075784686922267e-8,9.513435790152513e-9,0.002843592795816794,-3.745954342178899e-7,9.973922781259542e-9,0.00284414136383234,-6.243541079214667e-7,1.0329162879331443e-8,0.0028447415293055118,-7.608178796241404e-7,1.0523290713005752e-8,0.0028453383289325533,-7.7516339165713e-7,1.0543619193061516e-8,0.0028458829874018483,-6.870431643594794e-7,1.0418002465363624e-8,0.002846343745861855,-5.347045473568402e-7,1.0200845400060194e-8,0.002846709393672464,-3.626758819940621e-7,9.955588339874181e-9,0.0028469868913886353,-2.1168976993434465e-7,9.740321417669294e-9,0.0028471961486281772,-1.1277953739782726e-7,9.5993194186896e-9,0.002847364587199702,-8.507667609072321e-8,9.559858106078426e-9,0.0028475227795878447,-1.357926730672906e-7,9.63217247842041e-9,0.0028477012760148397,-2.6098770439544055e-7,9.810568108142715e-9,0.0028479280799226956,-4.4634904759132186e-7,1.0074568307647262e-8,0.002848226026012085,-6.678989044547163e-7,1.038996413878128e-8,0.002848609485491815,-8.932110104100397e-7,1.0710570698878495e-8,0.0028490803883028048,-1.08421348997412e-6,1.0982211998329638e-8,0.0028496244808374053,-1.2027066912850638e-6,1.1150545368581883e-8,0.0028502098087099434,-1.2189535497820264e-6,1.117325646547346e-8,0.0028507899812964224,-1.1218694346857707e-6,1.1034558640475975e-8,0.0028513137786630493,-9.269848437980516e-7,1.0756559639854864e-8,0.0028517396184371633,-6.772541783626091e-7,1.040045521595228e-8,0.002852049745857075,-4.3383629160081065e-7,1.0053410747715433e-8,0.002852257667938162,-2.588555502582333e-7,9.80397507841194e-9,0.0028524050176591494,-1.966808876808624e-7,9.715373390453078e-9,0.002852549088431962,-2.610733914805113e-7,9.807193562515353e-9,0.002852746181827145,-4.3236107396414083e-7,1.0051389365553414e-8,0.002853036583500799,-6.643300296990387e-7,1.0382115635541902e-8,0.0028534351813685878,-8.975086395893872e-7,1.0714629219647167e-8,0.002853929365115319,-1.0745790729053187e-6,1.096719853065988e-8,0.0028544839144717562,-1.1539281212368752e-6,1.1080391616891132e-8,0.002855051068247713,-1.1181731669905117e-6,1.1029268499031812e-8,0.002855582768565016,-9.75875355579879e-7,1.0825912624788529e-8,0.0028560415652221956,-7.566392276976092e-7,1.051252610395587e-8,0.0028564073406055135,-5.018534207721013e-7,1.0148247915315251e-8,0.002856678785926064,-2.5444286344771827e-7,9.794490668368394e-9,0.002856870524742683,-5.058886026101649e-8,9.503046426891806e-9,0.002857007914873242,8.512852095070961e-8,9.30908662963937e-9,0.0028571215454132087,1.412895044493818e-7,9.22891211852966e-9,0.002857242681589101,1.1896856287060092e-7,9.260923881079643e-9,0.0028573999738171854,3.009713316077348e-8,9.38800232202608e-9,0.0028576170512156747,-1.0428600410014353e-7,9.580041432918065e-9,0.002857910332403342,-2.5568229132032263e-7,9.796312889070212e-9,0.002858286478980994,-3.900984786692505e-7,9.988259642955946e-9,0.002858739364701392,-4.712582429285285e-7,1.0104059717794627e-8,0.00285924729195101,-4.661759280679692e-7,1.0096572400747676e-8,0.002859772355326098,-3.5361998523694726e-7,9.935435750221926e-9,0.0028602647405304277,-1.3415193562808552e-7,9.621442048735044e-9,0.0028606740590430527,1.6248167838119398e-7,9.197139078236257e-9,0.0028609662384943444,4.78853899398024e-7,8.74468806781909e-9,0.002861139063409164,7.44255750862787e-7,8.365236229068475e-9,0.002861226934688806,8.984655386532225e-7,8.144871394043985e-9,0.002861290126468282,9.137233591571715e-7,8.123196247026203e-9,0.0028613933351704225,8.035260371148903e-7,8.280824203979028e-9,0.002861584483698411,6.150660520729815e-7,8.55027050948895e-9,0.0028618827041504077,4.113854839993796e-7,8.841474477305177e-9,0.0028622775767180642,2.524378755512151e-7,9.068802254899132e-9,0.0028627363987564036,1.8135003911035153e-7,9.17060221962431e-9,0.0028632149243848224,2.1781405590917407e-7,9.118624569170666e-9,0.002863668101326738,3.577669060595684e-7,8.918529212376947e-9,0.0028640588395250108,5.775725882547501e-7,8.603998240368662e-9,0.002864363874395403,8.409557603452859e-7,8.226895323903023e-9,0.002864576317683268,1.1070964706719793e-6,7.845700967819764e-9,0.0028647049562361203,1.3383042800297684e-6,7.514484405755572e-9,0.0028647709664122996,1.505912805444349e-6,7.274393180785887e-9,0.0028648031644739605,1.5936658590036488e-6,7.148753085068565e-9,0.0028648329825001757,1.5985844872876452e-6,7.141820831205116e-9,0.0028648901078107145,1.5298597346848266e-6,7.240401923975936e-9,0.0028649992237887115,1.40662889791498e-6,7.417073022953166e-9,0.002865177723667968,1.255395999935133e-6,7.63388684017037e-9,0.002865433962330402,1.1074017364182093e-6,7.84611558047985e-9,0.0028657656359532793,9.9575507730559e-7,8.006322067477023e-9,0.002866158158739561,9.517297115380463e-7,8.069644697438206e-9,0.0028665835690910722,9.99411061201828e-7,8.001485323787432e-9,0.0028670015032235038,1.1483302317519537e-6,7.788115041184415e-9,0.002867364559705957,1.3852827350377053e-6,7.448455109494122e-9,0.0028676299233594852,1.6691386030128764e-6,7.041536345565719e-9,0.0028677759678411305,1.9347439744128324e-6,6.660862146080923e-9,0.0028678167309223023,2.1103546939003207e-6,6.409323306547407e-9,0.0028678034788689843,2.144698261273195e-6,6.3603400593137696e-9,0.0028678078376921227,2.029720577821034e-6,6.525302617003996e-9,0.0028678938191672595,1.8044434865642015e-6,6.8481776203151215e-9,0.002868094666236441,1.5376263800915127e-6,7.230454856236507e-9,0.002868405913933894,1.3009574329347206e-6,7.569539411050057e-9,0.0028687938676968555,1.1474463535309566e-6,7.789602788927635e-9,0.002869210861589051,1.1019524188615657e-6,7.855057338570128e-9,0.002869609334325944,1.1622461307956396e-6,7.769013139741857e-9,0.002869951231852881,1.3057241037395412e-6,7.563711223382599e-9,0.002870212677215331,1.4976923875705954e-6,7.288744102079043e-9,0.002870385194690064,1.699062535904297e-6,7.000097817318875e-9,0.002870474725317542,1.8727935944983242e-6,6.75093165594071e-9,0.002870499135165648,1.988954290042755e-6,6.584275013804583e-9,0.00287048464138741,2.0282382639665136e-6,6.527917653518532e-9,0.0028704616140799583,1.9837809533528225e-6,6.5917562221991524E-09,0.0028704602549171655,1.8612665906276216e-6,6.767640226165102e-9,0.002870506668811975,1.6774673462495774e-6,7.031500508441279e-9,0.0028706197689758587,1.457604560662817e-6,7.34716419913411e-9,0.0028708091655566463,1.2320673332684813e-6,7.671058717135242e-9,0.0028710739127016565,1.0328358362055718e-6,7.957305852913069e-9,0.0028714019528153388,8.896734068155328e-7,8.163146833604354e-9,0.0028717702214416355,8.259448522978371e-7,8.254940922690583e-9,0.0028721457505871515,8.537612288983449e-7,8.215181934479207e-9,0.0028724887943640687,9.684630238408015e-7,8.050494120702066e-9,0.0028727594429303256,1.1436800035455436e-6,7.798780069504199e-9,0.0028729285817180555,1.3300651297795598e-6,7.531028042365649e-9,0.0028729915695690435,1.462263368762386e-6,7.341218977444032e-9,0.002872978448805743,1.4772429274966988e-6,7.3198920236120235e-9,0.002872951252863827,1.339998687991839e-6,7.517195289934864e-9,0.0028729836176172785,1.0630678713911078e-6,7.914951705548082e-9,0.0028731308183241877,7.051695488262558e-7,8.42876029911416e-9,0.0028734078884947605,3.473260311513201e-7,8.942348496380804e-9,0.0028737882087745852,6.114666054513867e-8,9.353047158655345e-9,0.002874219668384876,-1.1272126322969022e-7,9.602619303010073e-9,0.0028746456433421104,-1.6888577001482716e-7,9.683354937474298e-9,0.002875020314855133,-1.291094150016922e-7,9.626438926383505e-9,0.00287531548780091,-3.018828501717634e-8,9.484597230108128e-9,0.0028755210579180877,8.668647485398011e-8,9.31689120875924e-9,0.0028756422882183752,1.8328829012502568e-7,9.178200849892443e-9,0.002875696134402279,2.288312141503027e-7,9.112800066087184e-9,0.002875707547399061,2.025805089596482e-7,9.150562494597015e-9,0.002875705846174958,9.52630333672185e-8,9.304873938120105e-9,0.0028757210926035038,-9.052120703341189e-8,9.57200496741452e-9,0.0028757804866157105,-3.4091383411167794e-7,9.932003851136088e-9,0.002875904942563708,-6.325855214179894e-7,1.035130470799866e-8,0.0028761062305016523,-9.357358663929467e-7,1.0787070613173603e-8,0.002876385114451254,-1.2180331505464313e-6,1.1192851470911072e-8,0.002876730724811969,-1.4490859095561661e-6,1.1524975361779462e-8,0.002877121258656621,-1.6050876840491572e-6,1.174919121731711e-8,0.002877526072604426,-1.6732673197605107e-6,1.1847070930135468e-8,0.0028779092664162932,-1.6557908710847165e-6,1.1821668584018685e-8,0.0028782350578963945,-1.5726563757144414e-6,1.1701746720225946e-8,0.002878475324870978,-1.4624372605699738e-6,1.1542873713258664e-8,0.0028786189483200725,-1.3787231489666856e-6,1.1422265207849368e-8,0.002878680701003052,-1.3798468481290254e-6,1.1423915368175761e-8,0.002878704787159146,-1.5113471987390404e-6,1.1613291349036044e-8,0.002878756903957089,-1.785757177929549e-6,1.2008265758302951e-8,0.002878902862502164,-2.1705939820080316e-6,1.2561939708202041e-8,0.0028791817969540797,-2.5954920375929927e-6,1.3173007501556022e-8,0.002879589402551466,-2.9784185508799e-6,1.3723483959784089e-8,0.0028800817252932734,-3.2567032182663314e-6,1.4123284543802338e-8,0.0028805956227206074,-3.4055518723271702e-6,1.4336808076009957e-8,0.00288107208392016,-3.4376003397330977e-6,1.4382284035630344e-8,0.0028814710783001875,-3.3898579305011365e-6,1.43129954824349e-8,0.0028817755563885373,-3.3082580675083343e-6,1.4195060433588716e-8,0.002881988308033612,-3.2361154678533363e-6,1.4090836012607044e-8,0.0028821262129773463,-3.207791533507497e-6,1.4049812193983022e-8,0.0028822147082530657,-3.246215519180097e-6,1.4105033781258338e-8,0.0028822834027905776,-3.36241780936278e-6,1.4272395487930903e-8,0.002882362616150177,-3.5558741422002764e-6,1.4551103140709693e-8,0.0028824803465096684,-3.815258525621979e-6,1.4924750790070064e-8,0.002882659335415783,-4.119686711663455e-6,1.5363142882474208e-8,0.0028829141547347752,-4.440809412356523e-6,1.5825359058537653e-8,0.0028832486380844327,-4.746136382797398e-6,1.626457640078978e-8,0.0028836543274357697,-5.003595714935634e-6,1.6634632356475022e-8,0.0028841105948802857,-5.186858658952929e-6,1.6897660746955784e-8,0.0028845868380229104,-5.280659678729527e-6,1.703172244416492e-8,0.0028850468268388713,-5.285119178421869e-6,1.703703042675255e-8,0.0028854548808014517,-5.2180136555174015e-6,1.693924927655556e-8,0.00288578318588404,-5.1141539701945615e-6,1.678862920440044e-8,0.0028860192930803964,-5.021207939658294e-6,1.6653980349342108e-8,0.0028861723562649236,-4.991365507388845e-6,1.6610608238690897e-8,0.0028862757956466495,-5.06888921218822e-6,1.6722303008240677e-8,0.0028863833910300974,-5.2754810860775145e-6,1.7020219754766915e-8,0.002886556622110814,-5.598336802918629e-6,1.7485702072118628e-8,0.0028868448006271175,-5.988001271290007e-6,1.804727106737048e-8,0.0028872654738177545,-6.371171534302883e-6,1.8599132347397268e-8,0.002887795844354059,-6.675623117016277e-6,1.903710691825924e-8,0.0028883812762736244,-6.855447025490349e-6,1.9295003604406827e-8,0.0028889563468819752,-6.903610854021034e-6,1.9362747686658358e-8,0.0028894665800328696,-6.847559620219423e-6,1.9280059028761153e-8,0.0028898810668172878,-6.734011844686922e-6,1.911450684067196e-8,0.0028901940052642504,-6.612662324206851e-6,1.893795127279494e-8,0.0028904191547270935,-6.524988204859821e-6,1.881034874825922e-8,0.002890582222841485,-6.4992181867616665e-6,1.8772471855239283e-8,0.0028907142743236822,-6.549601240706169e-6,1.8844849350322546e-8,0.0028908470537224477,-6.677663335062472e-6,1.9029580088897277e-8,0.0028910098168515577,-6.87394958687946e-6,1.9312855656179486e-8,0.0028912269035187145,-7.1197167658875545e-6,1.966742957177217e-8,0.0028915154465618195,-7.388703555439692e-6,2.0055217248474415e-8,0.002891882983346302,-7.649501334948221e-6,2.0430764834169687e-8,0.002892325261621495,-7.869140909601243e-6,2.0746451553512368e-8,0.002892825069667161,-8.018140622490618e-6,2.095977025193972e-8,0.0028933531569161294,-8.0765493987099e-6,2.1042023401707183e-8,0.0028938720607829473,-8.039749741569616e-6,2.0986676926427616e-8,0.002894342905333149,-7.92219781746215e-6,2.081475472290096e-8,0.0028947341280570267,-7.757261613370963e-6,2.0574609101836252e-8,0.0028950300744023127,-7.592178937176516e-6,2.033462657209387e-8,0.0028952370056188714,-7.47855706718128e-6,2.0169463592427875e-8,0.0028953844081573035,-7.460137255342665e-6,2.0142316838205095e-8,0.00289552034348127,-7.560525475110968e-6,2.0287169809216575e-8,0.0028957008077851775,-7.774273461944861e-6,2.0595931401456922e-8,0.0028959747760086865,-8.06484752748952e-6,2.1015565228355683e-8,0.0028963687909720668,-8.37202856618837e-6,2.1458840848969644e-8,0.002896876822197008,-8.628384556733143e-6,2.1828161536226112e-8,0.002897460687328443,-8.779917072525279e-6,2.2045408873836965e-8,0.0028980621551318326,-8.802502597728348e-6,2.207573173944743e-8,0.002898621746734977,-8.706920074860234e-6,2.1934852495291796e-8,0.0028990957821008693,-8.531279911183452e-6,2.1678125082780306e-8,0.002899465167343782,-8.326114196731398e-6,2.137891611386844e-8,0.0028997348041497496,-8.13959047569529e-6,2.110712912790612e-8,0.002899926963249216,-8.007836040779991e-6,2.091513975889782e-8,0.002900073067994656,-7.951291908204955e-6,2.0832502054918495e-8,0.002900206831484279,-7.975306429587075e-6,2.0866828269500727e-8,0.002900359629928538,-8.072622529241776e-6,2.1007425546019428e-8,0.0029005576921144888,-8.226159990315293e-6,2.1229360644075667e-8,0.0029008202589749987,-8.411462892954981e-6,2.1497037476612273e-8,0.0029011579526491515,-8.59892006014462e-6,2.176744153154923e-8,0.0029015709907129882,-8.756361710375036e-6,2.1993920303424827e-8,0.002902047505571332,-8.85279154909494e-6,2.2131593765595492e-8,0.0029025628872768883,-8.863671727157463e-6,2.2145000075912374e-8,0.0029030815052825793,-8.777345014016352e-6,2.2017385091665053e-8,0.0029035620496829224,-8.600986341434939e-6,2.175931513310784e-8,0.002903966637114285,-8.363362576374002e-6,2.141266869690318e-8,0.0029042717781266334,-8.111634884846253e-6,2.1045980547935134e-8,0.002904477372654277,-7.901280532790563e-6,2.073978444425112e-8,0.002904609628244343,-7.781372369153714e-6,2.0565217145761693e-8,0.002904715791276944,-7.780057503835996e-6,2.056294239996993e-8,0.0029048518634546975,-7.895457374774159e-6,2.0729997122619613e-8,0.0029050672122561154,-8.095212921731798e-6,2.1019213111936452e-8,0.0029053908949938285,-8.324795261790677e-6,2.1351336711916632e-8,0.002905823673533291,-8.52201545814966e-6,2.1636089845854755e-8,0.0029063379482547036,-8.63355664871243e-6,2.1796127132877224e-8,0.00290688567731947,-8.628754999473182e-6,2.178700899956975e-8,0.002907411886688896,-8.506448804640417e-6,2.1607149038605026e-8,0.002907869313118284,-8.29292031099503e-6,2.1294847433827952e-8,0.002908229337953015,-8.032291094367549e-6,2.0914343210019756e-8,0.002908486197412823,-7.773494661513888e-6,2.0536855496935417e-8,0.0029086544808403334,-7.5585686559262325e-6,2.0223523711567358e-8,0.0029087623904295403,-7.415402414785589e-6,2.001484051067057e-8,0.002908843981353781,-7.35553482324306e-6,1.9927459583560743e-8,0.002908932726752054,-7.375649943051864e-6,1.9956406208574644e-8,0.0029090572536835126,-7.460809532075294e-6,2.0079817615799907e-8,0.002909238952715364,-7.5879228762615555e-6,2.0264014865399943e-8,0.0029094906884145105,-7.728775534689363e-6,2.0467914700593435e-8,0.0029098158523242937,-7.852662044244406e-6,2.064685157630933e-8,0.002910207338650096,-7.929175550194102e-6,2.0756624253538985e-8,0.0029106466203267355,-7.931911576665453e-6,2.0758877958416994e-8,0.002911103814377557,-7.843588459108618e-6,2.062855490190973e-8,0.0029115402023730556,-7.66224497593975e-6,2.0362916420013977e-8,0.002911914696322001,-7.406730952055019e-6,1.998953139422466e-8,0.0029121945161994208,-7.118129171687856e-6,1.9568325801371748e-8,0.0029123675377467186,-6.853478439441242e-6,1.918239985768633e-8,0.002912450734123804,-6.670885447814342e-6,1.8916298524169225e-8,0.002912488859188778,-6.610394269086291e-6,1.88281387438807e-8,0.0029125417695362995,-6.679120462312963e-6,1.8928018749465943e-8,0.0029126652147423104,-6.848070988212437e-6,1.9173497757355166e-8,0.0029128935517388484,-7.061935206702308e-6,1.9483944368025575e-8,0.002913231037578079,-7.256695642236208e-6,1.9766193972595816e-8,0.0029136533209005457,-7.377571585707302e-6,1.9940619511564884e-8,0.0029141165252539614,-7.391701575272796e-6,1.9959524190801965e-8,0.0029145697689046887,-7.293322714917477e-6,1.981463990082668e-8,0.0029149673788549375,-7.1018310443380406e-6,1.953430007430907e-8,0.002915278149714961,-6.8545563898393026e-6,1.9172935518929185e-8,0.002915490151865234,-6.596725101954491e-6,1.8796465187354656e-8,0.0029156107375936115,-6.371248850546456e-6,1.846741356078346e-8,0.002915662539790091,-6.210673245514143e-6,1.8233164243708407e-8,0.0029156771594396804,-6.1327104522359935e-6,1.8119444504375368e-8,0.002915688499493966,-6.139498762978267e-6,1.812926086634637e-8,0.0029157272510905927,-6.219687203803143e-6,1.824596696099231e-8,0.0029158172217261446,-6.3520114728173305e-6,1.843850247261238e-8,0.002915973412501954,-6.5091582694995025e-6,1.8667034188020637e-8,0.0029162012640837876,-6.6612268782975755e-6,1.888798608393158e-8,0.0029164964235661433,-6.778735787311186e-6,1.9058396783844645e-8,0.002916844658644618,-6.835584702079287e-6,1.91402221340199e-8,0.0029172220097263466,-6.812552966048134e-6,1.910544630322981e-8,0.002917595884444303,-6.7017614420562816e-6,1.8942618913472558e-8,0.002917928412307093,-6.511815863831633e-6,1.8664385893287575e-8,0.00291818347875855,-6.2719153866716e-6,1.8313480562819844e-8,0.002918337682433519,-6.031490122748525e-6,1.7962147335797165e-8,0.002918392453911434,-5.8514246809711895e-6,1.7699255420367632e-8,0.0029183808220965175,-5.785913109725185e-6,1.760375851831056e-8,0.002918361694896576,-5.860827931022856e-6,1.7713146738291097e-8,0.0029184005478205227,-6.060277614749884e-6,1.8003943123245615e-8,0.0029185450818061424,-6.330635628385983e-6,1.8397723097046376e-8,0.002918808813042895,-6.6005652769916755e-6,1.8790403319492904e-8,0.002919169951357401,-6.805733183674234e-6,1.908827114831872e-8,0.0029195829508730235,-6.906435273516535e-6,1.92336174657321e-8,0.002919994648581057,-6.893430674434389e-6,1.9213166424777753e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json new file mode 100644 index 0000000..7805bb3 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":2000,"numberOfSamples":1000,"samples":[-0.0019226433452019043,-4.2400202047522655e-5,-4.847209139509104e-8,-0.0019224915279308452,-4.232138293995991e-5,-4.839917575682174e-8,-0.0019223575599970867,-4.2339533342532786e-5,-4.841941987929699e-8,-0.0019221925201880694,-4.2455757141232014e-5,-4.853500256368106e-8,-0.0019219535221161883,-4.264378690983704e-5,-4.87214377132331e-8,-0.0019216173050324704,-4.285653639574512e-5,-4.893368444013015e-8,-0.0019211878632388768,-4.304035090341533e-5,-4.911986351109583e-8,-0.0019206944269591652,-4.3151566455827686e-5,-4.923733483565604e-8,-0.001920180782153211,-4.316840557061996e-5,-4.9264336921476375e-8,-0.0019196912154135558,-4.3093903838697776e-5,-4.920299044056076e-8,-0.001919259170950511,-4.2950548434361e-5,-4.9074301884897993e-8,-0.0019189019210674083,-4.277089886837732e-5,-4.8909249976046343e-8,-0.0019186208521778832,-4.258868047478004e-5,-4.8740241599705884e-8,-0.001918404926768647,-4.243272605567538e-5,-4.859521792579728e-8,-0.0019182349450095773,-4.2323928794774185e-5,-4.849461482060666e-8,-0.0019180872700253946,-4.2274266862589164E-05,-4.8450338629402915e-8,-0.001917936666180632,-4.228680533004299e-5,-4.846574052979398e-8,-0.00191775854316843,-4.2355896173164964e-5,-4.8535824807684226e-8,-0.0019175311877270766,-4.246735024004276e-5,-4.864742159638906e-8,-0.0019172384671460499,-4.25989290061144e-5,-4.877961167038227e-8,-0.0019168730864799963,-4.2721876682799584e-5,-4.890508625070886e-8,-0.0019164398837302117,-4.280432151427329e-5,-4.8993279677066866e-8,-0.0019159579014177714,-4.281706315274191e-5,-4.901583883335078e-8,-0.0019154594243000278,-4.27412144250086e-5,-4.8953968414289994e-8,-0.001914984557283099,-4.2575562469439085e-5,-4.880561552483321e-8,-0.0019145716125768752,-4.234039279521026e-5,-4.858934382627422e-8,-0.0019142459086730812,-4.207501807745824e-5,-4.834220694952108e-8,-0.0019140111182697102,-4.1828569489815494e-5,-4.811113500434928e-8,-0.0019138468399848853,-4.1646650455964184e-5,-4.794024685992306e-8,-0.0019137136475314569,-4.155842585264431e-5,-4.785840090516636e-8,-0.0019135639168575628,-4.156847538008292e-5,-4.787112479174571e-8,-0.001913354878178476,-4.165575436672902e-5,-4.795925785880041e-8,-0.001913060039736298,-4.1779660100407035e-5,-4.808445425303678e-8,-0.0019126758326174886,-4.189128905126362e-5,-4.8199834042895305e-8,-0.0019122216639617473,-4.194655693717889e-5,-4.8262624541360104e-8,-0.0019117335388331718,-4.191721880810053e-5,-4.8244930247959284e-8,-0.0019112535774869718,-4.17965282482666e-5,-4.8139407883790543e-8,-0.0019108191058004997,-4.159831661316574e-5,-4.795859671838348e-8,-0.001910454761111615,-4.13507805095086e-5,-4.7729094163578805e-8,-0.0019101693588310655,-4.108797784158734e-5,-4.74834365018481e-8,-0.0019099571113809235,-4.084210928294797e-5,-4.725264424568893e-8,-0.0019098014051956349,-4.06383521782112e-5,-4.706116300989979e-8,-0.001909679232807439,-4.049244367589526e-5,-4.6924445600308274e-8,-0.0019095650792493577,-4.041027304587661e-5,-4.684851156054176e-8,-0.0019094338706790138,-4.038850509596943e-5,-4.6830551880131895e-8,-0.0019092631960406178,-4.041545998091156e-5,-4.685979719885473e-8,-0.0019090353342274217,-4.0471961726856714e-5,-4.691831881589462e-8,-0.0019087395911655302,-4.053242839868951e-5,-4.698199191766588e-8,-0.0019083750969175394,-4.0566889485238066e-5,-4.7022295836454817e-8,-0.0019079535950202848,-4.05448090409642e-5,-4.7009857068801336e-8,-0.0019075008929219535,-4.0441352326518995e-5,-4.692041592595363e-8,-0.0019070548602137859,-4.024557340002766e-5,-4.674274417153859e-8,-0.0019066581194424014,-3.996789525520936e-5,-4.648596905336088e-8,-0.0019063458229643833,-3.964246667720178e-5,-4.618202616974119e-8,-0.001906132593687367,-3.932066250072738e-5,-4.5879631296205274e-8,-0.001906005112413036,-3.9056140911694693e-5,-4.563013841888741e-8,-0.0019059250849624966,-3.888725831245831e-5,-4.547077730150599e-8,-0.0019058418160187416,-3.882488208844757e-5,-4.541289156609024e-8,-0.0019057084893034362,-3.885058262649113e-5,-4.5439933455113804e-8,-0.0019054953071705263,-3.892448678948119e-5,-4.551462448108332e-8,-0.0019051956015066044,-3.899818092129441e-5,-4.559102248754266e-8,-0.001904824751066378,-3.902764552633575e-5,-4.562680789434229e-8,-0.0019044139453100216,-3.898286178877979e-5,-4.5592592314242095e-8,-0.0019040014133682513,-3.8852641286461894e-5,-4.547679044559279e-8,-0.0019036234930003598,-3.864464423892581e-5,-4.5285911009026024e-8,-0.0019033074182967,-3.838144973804248e-5,-4.504099501526467e-8,-0.0019030670807785748,-3.809414814477403e-5,-4.477156044224583e-8,-0.0019029021776647626,-3.7815292683842436e-5,-4.4508817510060506e-8,-0.001902800227035411,-3.757290803529455e-5,-4.427982585191298e-8,-0.0019027403062597105,-3.738655521525043e-5,-4.410361508352597e-8,-0.0019026972766109718,-3.726562021454014e-5,-4.3989482282936625e-8,-0.0019026455605967178,-3.720939282853564e-5,-4.393706825168861e-8,-0.001902562049494492,-3.720819681311018e-5,-4.393747898583925e-8,-0.0019024282429587474,-3.7244887169539354e-5,-4.397474157144386e-8,-0.0019022320167928473,-3.7296417780327447e-5,-4.402726172840666e-8,-0.0019019694121183246,-3.733563521997301e-5,-4.406942025345132e-8,-0.0019016466101295054,-3.7333817380047615e-5,-4.4073850286943826e-8,-0.001901281721675244,-3.72647279533573e-5,-4.401521158739995e-8,-0.0019009051492186858,-3.7110772537172744e-5,-4.387608872624823e-8,-0.0019005564761927897,-3.687070357499274e-5,-4.365449081610721e-8,-0.0019002760006965934,-3.656614621766662e-5,-4.3370288285066725e-8,-0.0019000913323042824,-3.624205466668279e-5,-4.306583828633659e-8,-0.0019000039601944792,-3.5956706816941076e-5,-4.279656932567122e-8,-0.0018999840816792122,-3.576226105855051e-5,-4.261250079410351e-8,-0.0018999792883793371,-3.568461104514584e-5,-4.253901137884262e-8,-0.001899933981398471,-3.5713853399087564e-5,-4.2567602344540055e-8,-0.0018998090711157681,-3.581022732657273e-5,-4.266128735242672e-8,-0.0018995924498515157,-3.5920529128532807E-05,-4.27699363285063e-8,-0.0018992979805863262,-3.599552540735251e-5,-4.284667515898346e-8,-0.001898956996465333,-3.60016505232314e-5,-4.2859033641491364e-8,-0.0018986077115788766,-3.5925404995038095e-5,-4.2793327231141533e-8,-0.0018982861274868695,-3.5772115322624845e-5,-4.2653762704726326e-8,-0.0018980197803509253,-3.556151123416992e-5,-4.245848237196928e-8,-0.0018978243192027849,-3.532201505409536e-5,-4.2234258129154944e-8,-0.0018977025183165013,-3.5084842908056075e-5,-4.201085903922587e-8,-0.001897645338891351,-3.487865622253372e-5,-4.181584089370757e-8,-0.001897634548299051,-3.472539749417785e-5,-4.1670438822720854e-8,-0.0018976462592206278,-3.4637684651986404E-05,-4.158699002545304e-8,-0.0018976547528813345,-3.461783260192269e-5,-4.156798431104482e-8,-0.0018976360025567379,-3.465835456450116e-5,-4.160658512785339e-8,-0.0018975704668702292,-3.474353699435762e-5,-4.168818028849286e-8,-0.0018974450856599756,-3.485154582856132e-5,-4.179238643199875e-8,-0.0018972547032642363,-3.4956750270050015e-5,-4.189517808310863e-8,-0.0018970031462578617,-3.5032293373468896e-5,-4.1971187462921197e-8,-0.001896704041121835,-3.5053177068163955e-5,-4.199649895495414e-8,-0.0018963811064912409,-3.500033872352196e-5,-4.195247884233675e-8,-0.0018960669388229457,-3.486606242620335e-5,-4.183101890714069e-8,-0.0018957986732221059,-3.466005594878666e-5,-4.1640536726904226e-8,-0.0018956091571617987,-3.441367338006517e-5,-4.141024300465335e-8,-0.0018955143084655717,-3.417789714991304e-5,-4.11883959487616e-8,-0.0018955015199407235,-3.401103934461799e-5,-4.103064766105313e-8,-0.0018955276091062383,-3.395751831846302e-5,-4.097979506922786e-8,-0.0018955320612609062,-3.4027724788744977e-5,-4.104650552871127e-8,-0.001895460925824634,-3.419213691026499e-5,-4.120354608540807e-8,-0.0018952876637236959,-3.439431347479264e-5,-4.139792350116541e-8,-0.0018950194973305701,-3.4574094187676726e-5,-4.157273141268476e-8,-0.00189468901820827,-3.468727701743215e-5,-4.168573954249668e-8,-0.0018943393648524587,-3.471417304124221e-5,-4.171758103848185e-8,-0.001894011175966523,-3.4658126432902484e-5,-4.1670568510380554e-8,-0.0018937347654549707,-3.4538913747532676e-5,-4.156270803527193e-8,-0.0018935271586108895,-3.438520384909261e-5,-4.1420753571334326e-8,-0.0018933922404869188,-3.4228171385826936e-5,-4.127420869753851e-8,-0.0018933224519850319,-3.409667569558539e-5,-4.115067186901395e-8,-0.001893301244193991,-3.40137190510597e-5,-4.10723266568858e-8,-0.0018933060255165923,-3.399399788202456e-5,-4.105348708812609e-8,-0.0018933114133081418,-3.404253904550354e-5,-4.109924608197351e-8,-0.0018932925837213562,-3.415443233452324e-5,-4.120524021833533e-8,-0.0018932284621856921,-3.431570348176952e-5,-4.135853030487643e-8,-0.001893104383091029,-3.4505267334039883e-5,-4.1539480078514925e-8,-0.00189291393259836,-3.469764551964496e-5,-4.172428673891212e-8,-0.0018926599383916741,-3.486610463956082e-5,-4.188783776156979e-8,-0.0018923546511316431,-3.498605241766292e-5,-4.2006785198344876e-8,-0.001892019101621626,-3.5038631408074926e-5,-4.206286015466167e-8,-0.0018916814855736094,-3.5014534367428806e-5,-4.204652314564249e-8,-0.001891374040852943,-3.491799599962725e-5,-4.196092987201902e-8,-0.0018911275262606326,-3.477018738663742e-5,-4.182542386637248e-8,-0.0018909628356181614,-3.460994197225293e-5,-4.167647877700423e-8,-0.0018908809794151223,-3.448870510773402e-5,-4.1563025636714426e-8,-0.001890855680381783,-3.4457266426274074e-5,-4.1533801407386716e-8,-0.0018908353879217353,-3.454621539121781e-5,-4.1618610494880996e-8,-0.0018907590601062614,-3.474930510512576e-5,-4.1812322746267864e-8,-0.0018905806559135173,-3.502183484605819e-5,-4.2073175486873276e-8,-0.0018902883688857062,-3.529801938551741e-5,-4.233914044230188e-8,-0.0018899068551920142,-3.551742428610809e-5,-4.255290749642152e-8,-0.001889483249018912,-3.564481602849056e-5,-4.268065997382881e-8,-0.0018890679245541686,-3.567523527632135e-5,-4.2716955210695495e-8,-0.00188870032072965,-3.562727788606181e-5,-4.267856906938492e-8,-0.0018884030745074487,-3.5532202829357725e-5,-4.2594437460528625e-8,-0.0018881823723488097,-3.54243921208098e-5,-4.2496795451858114e-8,-0.0018880312102406572,-3.533504994855418e-5,-4.2415230301185514e-8,-0.0018879332139387782,-3.5288747014991394e-5,-4.237330143238159e-8,-0.0018878660597741292,-3.5301680267534746e-5,-4.23867434249854e-8,-0.001887804493950075,-3.5380813257388804e-5,-4.246254511061698e-8,-0.0018877231921547025,-3.552361030820859e-5,-4.259866804167272e-8,-0.0018875996014664324,-3.5718391160070784e-5,-4.278440830777563e-8,-0.0018874167566322304,-3.594551788242534e-5,-4.300154835611885e-8,-0.0018871657927251448,-3.617965687985636e-5,-4.322647911791066e-8,-0.0018868476636197298,-3.639308212496223e-5,-4.3433238917490384e-8,-0.0018864736576865142,-3.655967876258171e-5,-4.359717299143751e-8,-0.0018860644895497603,-3.66591992046944e-5,-4.369885112248462e-8,-0.0018856478855353213,-3.668124668546799e-5,-4.37278181581545e-8,-0.0018852547440176993,-3.6628421846668554e-5,-4.3685686879638724e-8,-0.0018849140165977931,-3.651813115392309e-5,-4.358808695279573e-8,-0.0018846464338938206,-3.638236555382138e-5,-4.346473580791103e-8,-0.0018844576056432885,-3.6264235942699986e-5,-4.3356365793623564e-8,-0.0018843321784880178,-3.6209913884206997e-5,-4.3307130103906174e-8,-0.0018842322632395324,-3.625576306513159e-5,-4.335226126403655e-8,-0.0018841040436168481,-3.641349949400654e-5,-4.350374571050373e-8,-0.0018838940566287233,-3.6660400894427665e-5,-4.374080127460915e-8,-0.001883570085252579,-3.694276386559895e-5,-4.401301964778491e-8,-0.001883135475562002,-3.7194520085842316e-5,-4.425796870583932e-8,-0.001882627578444282,-3.73621475032825e-5,-4.442477583414205e-8,-0.0018821014403124572,-3.742201299485457e-5,-4.4490542846202025e-8,-0.001881609313986513,-3.7382507458315104e-5,-4.4462439215216833e-8,-0.0018811865907120172,-3.7274116019286886e-5,-4.436849914685254e-8,-0.001880847632416261,-3.713591350573811e-5,-4.424508395808057e-8,-0.00188058871037337,-3.7004918805228556e-5,-4.4126962304448526e-8,-0.0018803936614843618,-3.691021781204701e-5,-4.4041748300567786e-8,-0.0018802392951189633,-3.6870851790922326e-5,-4.400778710220607e-8,-0.0018800994849178696,-3.68957089255605e-5,-4.40339130327419e-8,-0.0018799481169941405,-3.698411204251374e-5,-4.411991825255021e-8,-0.0018797614670353787,-3.7126553405316096e-5,-4.425722892864331e-8,-0.0018795204776576248,-3.730559347706619e-5,-4.442976975442706e-8,-0.0018792131464299988,-3.749729428555327e-5,-4.46153152223929e-8,-0.0018788368365865878,-3.7673694011914794e-5,-4.4787772369335294e-8,-0.0018783998781203336,-3.780658890837698e-5,-4.492065092723705e-8,-0.0018779216417479986,-3.787236867220032e-5,-4.4991520603290696e-8,-0.0018774304478634798,-3.785712894848209e-5,-4.4986782858554793e-8,-0.001876959132956837,-3.776087580238688e-5,-4.490568783170876e-8,-0.001876538772816988,-3.759950843431477e-5,-4.476237298058196e-8,-0.0018761917084975216,-3.740363503756282e-5,-4.458499652618009e-8,-0.0018759253154816227,-3.721393836510612e-5,-4.441161416080866e-8,-0.0018757279816746558,-3.7073377257336396e-5,-4.4282962063134714e-8,-0.0018755687920489152,-3.701708377818567e-5,-4.4232881827984826e-8,-0.0018754023218197238,-3.706175871807319e-5,-4.427809041286009e-8,-0.0018751791516401983,-3.71976903316632e-5,-4.4410338519050925e-8,-0.0018748606150037481,-3.738752598197328e-5,-4.4594994984169714e-8,-0.0018744330348925565,-3.7574982787928245E-05,-4.47791613026569e-8,-0.0018739145177022712,-3.770239276914684e-5,-4.490826020461936e-8,-0.0018733495373167643,-3.773009490362128e-5,-4.4944415378813574e-8,-0.0018727931908080317,-3.764831441568e-5,-4.487773977743384e-8,-0.0018722931442570632,-3.7476441825173546e-5,-4.472576455407728e-8,-0.0018718776143170825,-3.72522449686114e-5,-4.452343076403651e-8,-0.0018715526178116695,-3.701813258333055e-5,-4.431030817274317e-8,-0.0018713062231411261,-3.681055615655657e-5,-4.4120686585272034e-8,-0.001871115468151383,-3.665468354723957e-5,-4.397851191896047e-8,-0.001870952694577932,-3.6563328602725056e-5,-4.389625440586987e-8,-0.0018707900517583916,-3.653811265418476e-5,-4.3875885637797216e-8,-0.0018706023334060244,-3.6571255822349916e-5,-4.391050608580251e-8,-0.0018703688700737859,-3.664722159578986e-5,-4.398588937722728e-8,-0.0018700751930006965,-3.6744157938658e-5,-4.408184554328447e-8,-0.0018697148769254426,-3.683557666976917e-5,-4.4173775089313205e-8,-0.0018692914772034106,-3.6892936200826666e-5,-4.423502611041501e-8,-0.0018688199023591616,-3.688965083963331e-5,-4.424057092448585e-8,-0.0018683261082645549,-3.680648604854699e-5,-4.4172010900809014e-8,-0.0018678439684996118,-3.663736658049673e-5,-4.4023038613393244e-8,-0.0018674088734324848,-3.639364723333976e-5,-4.3803546879327065e-8,-0.0018670490319146785,-3.610454803253589e-5,-4.354021989210011e-8,-0.001866776960604691,-3.581233195531623e-5,-4.327223113044107e-8,-0.0018665842545617494,-3.556274227869284e-5,-4.304246095848443e-8,-0.0018664419014308188,-3.539322985208859e-5,-4.2886518844144926e-8,-0.001866306540510951,-3.532250177755452e-5,-4.282282625286369e-8,-0.0018661311596336301,-3.5344543323723834e-5,-4.284673828172474e-8,-0.0018658774885188531,-3.542898898557433e-5,-4.293057236042494e-8,-0.0018655268253949977,-3.55281941668765e-5,-4.303001094315354e-8,-0.0018650860333417425,-3.55896847358241e-5,-4.309572055327366e-8,-0.0018645862558132557,-3.557072469934887e-5,-4.3087114771064386e-8,-0.001864074064290464,-3.54502290003869e-5,-4.298370377047688e-8,-0.0018635978679334747,-3.523359331224885e-5,-4.278980205390345e-8,-0.0018631947076426666,-3.494883476042089e-5,-4.2531058883068645e-8,-0.0018628822307316867,-3.4636347734627516E-05,-4.224496475448857e-8,-0.0018626577466252,-3.433705755884229e-5,-4.196979779298566e-8,-0.0018625028468491243,-3.408334448344101e-5,-4.173608792809358e-8,-0.0018623903292806535,-3.389462368841906e-5,-4.1562378749819724e-8,-0.001862290600784725,-3.377697613200107e-5,-4.145477037782527e-8,-0.0018621762300559555,-3.3725088096835355e-5,-4.14086669723388e-8,-0.0018620246347852986,-3.372488473601601e-5,-4.141123207304418e-8,-0.0018618195632346566,-3.375593156589706e-5,-4.1443656121148575e-8,-0.0018615521548540242,-3.3793432453618705e-5,-4.148302730689643e-8,-0.001861222100187459,-3.3810221048498295E-05,-4.15041470998425e-8,-0.0018608389284970092,-3.377941053241642e-5,-4.148192086511341e-8,-0.0018604228570434176,-3.367833230390359e-5,-4.139496124109246e-8,-0.0018600040268228783,-3.3493942425028966e-5,-4.123062094176194e-8,-0.001859618642548962,-3.322877352067173e-5,-4.0990619843655576e-8,-0.0018593011806838898,-3.290498445207031e-5,-4.0694967467908326e-8,-0.001859073836432133,-3.256319848003421e-5,-4.038105550600808e-8,-0.0018589370096645738,-3.225400787141628e-5,-4.0095898376829484e-8,-0.0018588658572420299,-3.202355089014602e-5,-3.988278237900221e-8,-0.001858815953690681,-3.1898535195761845e-5,-3.9767279252543205e-8,-0.0018587365322608792,-3.187731481624273e-5,-3.974875641256137e-8,-0.001858585847420525,-3.193072891426777e-5,-3.9800881931187754e-8,-0.0018583427276889898,-3.201157846011818e-5,-3.988018363222736e-8,-0.001858011024484624,-3.206838339685549e-5,-3.993871620605644e-8,-0.0018576168661056972,-3.2058722129593e-5,-3.993651170976707e-8,-0.001857200628294303,-3.1958785793748546e-5,-3.98506487342928e-8,-0.0018568063178679155,-3.1767390735336565e-5,-3.9679225404044e-8,-0.0018564711830394505,-3.150417991339459e-5,-3.943989843936122e-8,-0.0018562180244630548,-3.120309508365586e-5,-3.916393604405171e-8,-0.001856051832860989,-3.0903287984785486e-5,-3.888777991719524e-8,-0.0018559610387409902,-3.0640165715613776e-5,-3.864464037772421e-8,-0.0018559222165318323,-3.043888182499085e-5,-3.845831450517588e-8,-0.0018559062367179708,-3.031135180046263e-5,-3.8340287099323454e-8,-0.0018558839785556914,-3.025648674119293e-5,-3.828987583339211e-8,-0.0018558305005729916,-3.0262498510445098e-5,-3.829637141557298e-8,-0.0018557274688207667,-3.030998413607464e-5,-3.8341946180221575e-8,-0.0018555642923261315,-3.0374874455143256e-5,-3.8404431294548646e-8,-0.0018553386335638984,-3.043096245585696e-5,-3.8459652833342595e-8,-0.0018550567897867762,-3.0452262426219995e-5,-3.8483550463237314e-8,-0.0018547340635318174,-3.041572528206477e-5,-3.8454603062521525e-8,-0.0018543947164707576,-3.03048875961989e-5,-3.835716288178646e-8,-0.0018540704590361671,-3.0114692323656852e-5,-3.81859702743685e-8,-0.0018537960249984855,-2.985666954648834e-5,-3.79511015108531e-8,-0.0018536008786521339,-2.9562027461414482e-5,-3.768102528692731e-8,-0.0018534981424192035,-2.927893614320846e-5,-3.742024332911934e-8,-0.0018534751696137296,-2.9061233360087007e-5,-3.72188887172703e-8,-0.0018534923481789171,-2.8950357584252507e-5,-3.711593484750272e-8,-0.0018534940550578869,-2.8958436077817732e-5,-3.7123378482837e-8,-0.0018534282008300274,-2.9062277323979435e-5,-3.722046668883958e-8,-0.0018532645332598092,-2.921211788923309e-5,-3.736159207290112e-8,-0.0018530028720135114,-2.934986972526837e-5,-3.7493050320642694e-8,-0.0018526694542170326,-2.942727873570747e-5,-3.756982425163037e-8,-0.0018523058642196187,-2.9417150023504876e-5,-3.7566073539067835e-8,-0.0018519564866905035,-2.9316192868627697e-5,-3.7477965536880444e-8,-0.0018516584089416203,-2.9141557732680905e-5,-3.7320700414486564e-8,-0.001851435208412855,-2.8923992161479002e-5,-3.712235494419344e-8,-0.001851294541339165,-2.869997092993335e-5,-3.691666372244825e-8,-0.0018512288972952473,-2.850431556199019e-5,-3.673612972502268e-8,-0.0018512187605911334,-2.8364293030248146e-5,-3.6606422818222735e-8,-0.0018512372743969517,-2.8295880091963878e-5,-3.6542771387623024e-8,-0.001851255373367241,-2.830245486957463e-5,-3.654865101402205e-8,-0.0018512464347500161,-2.837567990696616e-5,-3.661658029509977e-8,-0.0018511897654824728,-2.849797616767571e-5,-3.6730452314410044e-8,-0.0018510726455833026,-2.864577894127868e-5,-3.6868605111867225e-8,-0.0018508911239511774,-2.879283048085962e-5,-3.700688885749968e-8,-0.0018506500169525825,-2.891316386992196e-5,-3.712138235946777e-8,-0.0018503624659893852,-2.8983841434482034e-5,-3.719083313132091e-8,-0.001850049192722774,-2.8987717253845237e-5,-3.719912582085492e-8,-0.00184973724683297,-2.8916604783197052e-5,-3.7138199915807674e-8,-0.0018494574590516221,-2.877500685094965e-5,-3.7011601488886906e-8,-0.001849239457271444,-2.8583618727700412e-5,-3.6837917133073514e-8,-0.001849103637120204,-2.8380420558935783e-5,-3.665199142573758e-8,-0.0018490512556514666,-2.8216113176951286e-5,-3.650082802289004e-8,-0.0018490568923369543,-2.814133170477168e-5,-3.643173901900574e-8,-0.001849070044366471,-2.8187498919253204e-5,-3.6474479853762786e-8,-0.0018490301023305032,-2.835027238269989e-5,-3.662573037762882e-8,-0.0018488899067574623,-2.8587217166636767e-5,-3.6846766146306595e-8,-0.0018486348257891318,-2.883361606393152e-5,-3.707797543919425e-8,-0.0018482863056600417,-2.902755950667316e-5,-3.726201459105288e-8,-0.0018478899852914469,-2.9130064005063796e-5,-3.736241363816512e-8,-0.0018474976562760789,-2.91321131307372e-5,-3.737016828147584e-8,-0.0018471524750899352,-2.905016180405401e-5,-3.729976063286029e-8,-0.0018468812786227445,-2.8916268553225196e-5,-3.718025357565311e-8,-0.0018466931172711491,-2.876806315238052e-5,-3.7046173746412294e-8,-0.0018465815057894385,-2.8640983775258864e-5,-3.6930365429741035e-8,-0.00184652829693714,-2.8563136245366806e-5,-3.685914654239289e-8,-0.0018465080445311866,-2.8552306292304803e-5,-3.6849396405970724e-8,-0.0018464923711327586,-2.8614698711177184e-5,-3.69072585309602e-8,-0.0018464540475209713,-2.874515858709884e-5,-3.702828145510411e-8,-0.001846370522506678,-2.8928669467886978e-5,-3.7198811661589566e-8,-0.001846226627091265,-2.9142919199792575e-5,-3.739840984195331e-8,-0.0018460161773210895,-2.936159596526058e-5,-3.7602928735736206e-8,-0.0018457424092981416,-2.9557907441157696e-5,-3.7787745528739335e-8,-0.0018454174436069045,-2.9707932709951874e-5,-3.793078679950588e-8,-0.001845060979936064,-2.9793682517744152e-5,-3.8015266553066575e-8,-0.0018446983139210466,-2.9805837685586976e-5,-3.803216933965162e-8,-0.001844357663506958,-2.974619611849742e-5,-3.7982560537325245e-8,-0.0018440664544479193,-2.9629797711193566e-5,-3.7879707314877856e-8,-0.001843845950446449,-2.948601531108566e-5,-3.775030341662861e-8,-0.0018437041818345754,-2.9356851092842417e-5,-3.763307774716062e-8,-0.0018436286704259478,-2.929018395984869e-5,-3.7572610524337075e-8,-0.0018435826591715672,-2.9326650546160026e-5,-3.7607099199983846e-8,-0.001843510243611047,-2.9482479522100277e-5,-3.7752270839027916e-8,-0.0018433534878047207,-2.9736569576451163e-5,-3.798922207122916e-8,-0.001843076228620517,-3.003258999787417e-5,-3.826624809927366e-8,-0.0018426810050820315,-3.0299279226205748e-5,-3.851758748645876e-8,-0.0018422077376924746,-3.0478508169391107e-5,-3.8689353289091895e-8,-0.0018417156239789582,-3.054470317700498e-5,-3.875746335719129e-8,-0.0018412606553196052,-3.050710730095082e-5,-3.872977574482587e-8,-0.001840880483325183,-3.0398882257686496e-5,-3.8636192256924036e-8,-0.001840590004125507,-3.026250677128237e-5,-3.851540126764517e-8,-0.0018403844397698059,-3.013820957242196e-5,-3.840435285169504e-8,-0.001840245361005513,-3.0057347763451893e-5,-3.8332152701456324e-8,-0.0018401466765782936,-3.0039751280580974e-5,-3.831749547487945e-8,-0.0018400595016326148,-3.0093363332831677e-5,-3.836817784862127e-8,-0.0018399559497764423,-3.0215015910877106e-5,-3.848169905675189e-8,-0.001839812170196447,-3.039186553279613e-5,-3.864654273812751e-8,-0.0018396108283989022,-3.060338054950594e-5,-3.884402378562721e-8,-0.0018393430417674114,-3.082394307346604e-5,-3.905071575977295e-8,-0.001839009544828154,-3.1026114366856945e-5,-3.924146216346563e-8,-0.0018386207708631277,-3.1184328723264915e-5,-3.939273712194119e-8,-0.0018381957305413437,-3.127857148136643e-5,-3.948596451419425e-8,-0.0018377597459139795,-3.1297656724416976e-5,-3.95104860508152e-8,-0.001837341137178437,-3.1241751125251476e-5,-3.946590292406994e-8,-0.0018369670512292443,-3.112376810976386e-5,-3.9363472022820164e-8,-0.0018366586561733092,-3.096932899220622e-5,-3.922626209101001e-8,-0.0018364258708403016,-3.0814812173559905e-5,-3.9087559514838445e-8,-0.0018362621920370473,-3.070252357614279e-5,-3.8986539372919337e-8,-0.0018361412688580824,-3.067203929167175e-5,-3.896025500527251e-8,-0.0018360180816703487,-3.0748042684471684e-5,-3.903223795898209e-8,-0.0018358378502917804,-3.092774827382751e-5,-3.920064225747588e-8,-0.0018355532968053283,-3.1174550168373766e-5,-3.9432189756387474e-8,-0.0018351446756584952,-3.142525945238052e-5,-3.966879216514516e-8,-0.001834631257077125,-3.161182618802566e-5,-3.9847630332795574e-8,-0.001834065391188641,-3.168747068911088e-5,-3.992527940095902e-8,-0.0018335116541834382,-3.164236364109196e-5,-3.989214970654177e-8,-0.0018330236496004874,-3.1501495858562004e-5,-3.977056585296882e-8,-0.0018326302885483708,-3.130976247069251e-5,-3.960119517536447e-8,-0.0018323344622033428,-3.111494455177007e-5,-3.94275962437217e-8,-0.0018321196002908996,-3.095597209536023e-5,-3.928554181120305e-8,-0.0018319582888422555,-3.085789845493625e-5,-3.919836392406287e-8,-0.0018318194757880513,-3.083157342368737e-5,-3.9176511626126014e-8,-0.0018316733480543946,-3.0875483927058214e-5,-3.9219089175635253e-8,-0.0018314943794796696,-3.097812687524317e-5,-3.931593991989682e-8,-0.0018312633560748676,-3.1120334429811935e-5,-3.9449760179892773e-8,-0.001830968913688379,-3.1277592120351454e-5,-3.9598246635518696e-8,-0.0018306087634235733,-3.14226374107931e-5,-3.9736499110668715e-8,-0.0018301904168349817,-3.152864766531905e-5,-3.9839932121797345e-8,-0.0018297309265778968,-3.1573033171681355e-5,-3.988771007373838e-8,-0.0018292551760944991,-3.154139489645285e-5,-3.986633134180522e-8,-0.0018287925523648566,-3.1430926466745534e-5,-3.977274223006469e-8,-0.0018283721888019805,-3.125244172846257e-5,-3.961626454205167e-8,-0.0018280173510476312,-3.1030241019074e-5,-3.941861928815817e-8,-0.0018277399014371466,-3.079933897322065e-5,-3.921157228495376e-8,-0.0018275359237807758,-3.060002936908609e-5,-3.9032106768399976e-8,-0.0018273836315456557,-3.0470075984707517e-5,-3.891530628053033e-8,-0.0018272448509398856,-3.0435259419920423e-5,-3.8885571590877783e-8,-0.0018270713806662069,-3.0500042234658058e-5,-3.8947817158765014e-8,-0.0018268166773114957,-3.064158208297821e-5,-3.908171343754616e-8,-0.0018264509824322654,-3.081128525962225e-5,-3.924294928095106e-8,-0.0018259745066705093,-3.0946791653507584e-5,-3.937422858396294e-8,-0.001825421200068397,-3.0992294321174295e-5,-3.942401662190722e-8,-0.001824848707194268,-3.091859675203208e-5,-3.936503312287334e-8,-0.0018243181665254498,-3.0732388589482095e-5,-3.920280801715213e-8,-0.0018238741939498265,-3.047033281073113e-5,-3.897033103345112e-8,-0.0018235344222076416,-3.0182968256406758e-5,-3.871343791162342e-8,-0.0018232907112232296,-2.9917962061241705e-5,-3.8475612220985564e-8,-0.0018231175915879915,-2.9709470223528575e-5,-3.8288287874661005e-8,-0.0018229820547856707,-2.9574767415543407e-5,-3.8167680241916334e-8,-0.0018228511227224586,-2.951575072500136e-5,-3.811601209651671e-8,-0.0018226963993247997,-2.9522399260808083e-5,-3.812455102291935e-8,-0.001822496346012939,-2.9576313361484465e-5,-3.817679071516764e-8,-0.00182223736569908,-2.9653667368211555e-5,-3.82511596794088e-8,-0.001821914484007764,-2.9727713244422272e-5,-3.8323339418991535e-8,-0.0018215319226575477,-2.9771325860086927e-5,-3.836859871537784e-8,-0.0018211033649289739,-2.9760077349048065e-5,-3.8364575828414726e-8,-0.0018206513209798074,-2.967600860452736e-5,-3.82946771372016e-8,-0.001820204868578569,-2.95117106918752e-5,-3.815177651088395e-8,-0.001819795308698592,-2.9273717903851084e-5,-3.7941337848129227e-8,-0.0018194499553985499,-2.8983792765006212e-5,-3.768268339819807e-8,-0.001819185216669178,-2.867678407238349e-5,-3.74071910297524e-8,-0.0018190008974349288,-2.83945853396037e-5,-3.715294339073842e-8,-0.001818877777254797,-2.8177048843502435e-5,-3.69565401325332e-8,-0.001818779842287521,-2.8051892787703585e-5,-3.684386725138177e-8,-0.0018186613648890997,-2.8026242318695985e-5,-3.682221547238342e-8,-0.0018184777104345217,-2.8082404782524753e-5,-3.687617397457534e-8,-0.0018181975534309522,-2.8179856821560048e-5,-3.6969212144048666e-8,-0.001817813196202531,-2.8264185854983048e-5,-3.705172966271644e-8,-0.001817345167041442,-2.8281685470529075e-5,-3.707441588866618e-8,-0.0018168381018592475,-2.8195553966210703e-5,-3.7003162870434875e-8,-0.0018163479603249767,-2.799754849487948e-5,-3.6829836985857307e-8,-0.0018159250008670967,-2.770979157575244e-5,-3.657403648862273e-8,-0.0018155995956956029,-2.7375894624095573e-5,-3.6275093682421794e-8,-0.0018153764219808644,-2.704596699485922e-5,-3.5978494998850386e-8,-0.0018152377869368145,-2.6762455524996808e-5,-3.572301447864534e-8,-0.001815152477201721,-2.6551760020655958e-5,-3.553302574177351e-8,-0.0018150853173970892,-2.6422470662984083e-5,-3.541677798998169e-8,-0.0018150042988686545,-2.6368080187245047e-5,-3.5368740905128105e-8,-0.001814884542944513,-2.637140326946383e-5,-3.5373559468304656e-8,-0.0018147098501943748,-2.640883213452553e-5,-3.540992975432918e-8,-0.001814472968339351,-2.6453705314678775e-5,-3.5453704890593495e-8,-0.0018141754822484056,-2.6478914642215583e-5,-3.548029701796509e-8,-0.0018138277280354835,-2.645933668573588e-5,-3.54668779570484e-8,-0.0018134485433922909,-2.63746995002284e-5,-3.539493771542412e-8,-0.0018130641999637516,-2.6213143484268603e-5,-3.525347116797519e-8,-0.0018127056529817164,-2.5975139443379584e-5,-3.504252776569707e-8,-0.0018124034131899443,-2.5676611824827752e-5,-3.477610412804476e-8,-0.0018121801872194175,-2.534931109205454e-5,-3.448259855575883e-8,-0.0018120429840718477,-2.503646524431114e-5,-3.420100849172037e-8,-0.0018119778375527472,-2.4783230392470123e-5,-3.3972382770939356e-8,-0.001811950347330866,-2.462408751833058e-5,-3.3828419190625865e-8,-0.0018119132838824324,-2.4571574822020067e-5,-3.3781151941416513e-8,-0.0018118193692635378,-2.461097139426063e-5,-3.381793208892705e-8,-0.0018116348830005524,-2.470333459138878e-5,-3.390395510139745e-8,-0.0018113494195414132,-2.479592830408992e-5,-3.399155855798691e-8,-0.0018109788397635016,-2.483652227449304e-5,-3.403315775348767e-8,-0.0018105608775236578,-2.4787225178468724e-5,-3.399388280325552e-8,-0.001810144903993606,-2.4634019749026035e-5,-3.386038668968676e-8,-0.0018097788424705386,-2.438943653685379e-5,-3.364343809426621e-8,-0.0018094970976968308,-2.408776623021186e-5,-3.3373712923926915e-8,-0.0018093131065530167,-2.3774611485516244e-5,-3.3092397700764274e-8,-0.0018092184234519324,-2.3494490111001275e-5,-3.283995827133673e-8,-0.0018091877331322158,-2.3280593294754563e-5,-3.2646790853564697e-8,-0.0018091871161683125,-2.314939866682767e-5,-3.252822506211939e-8,-0.0018091823293289193,-2.31004611501778e-5,-3.248421726376951e-8,-0.0018091448540584615,-2.311978262620908e-5,-3.250233499343941e-8,-0.0018090550794540737,-2.3184591180723153e-5,-3.2562086291900066e-8,-0.0018089031861997175,-2.3267897328885993e-5,-3.2639095018153503e-8,-0.0018086887334329814,-2.3342085624690892e-5,-3.2708403157821664e-8,-0.0018084198247745962,-2.338158487023955e-5,-3.2746898333729124e-8,-0.0018081122968712463,-2.3365150542970265e-5,-3.273533916353727e-8,-0.001807788822855228,-2.3278370617031e-5,-3.2660558495518114e-8,-0.0018074773359588981,-2.3116713555088714e-5,-3.251818044986732e-8,-0.0018072078836895496,-2.2888860456224638e-5,-3.231565942478291e-8,-0.0018070071067168634,-2.2619145607374683e-5,-3.2074584949186564e-8,-0.0018068904090166695,-2.2346867579039005e-5,-3.18301977417072e-8,-0.001806853807850492,-2.2119984734449717e-5,-3.162581546841964e-8,-0.0018068696241016469,-2.198255341150245e-5,-3.150153125112428e-8,-0.0018068904530553504,-2.195926967130759e-5,-3.1480191546692454e-8,-0.0018068624614854115,-2.2044177423088666e-5,-3.155704270849953e-8,-0.0018067433270976935,-2.2200245280886165e-5,-3.1699156433731375e-8,-0.0018065165630427827,-2.2371032429944445e-5,-3.1855811466588946e-8,-0.0018061958896326482,-2.2498959032548624e-5,-3.197492592167717e-8,-0.0018058190557784669,-2.2542034459431462e-5,-3.201819263383411e-8,-0.0018054353226003737,-2.2483393859611878e-5,-3.196979945333175e-8,-0.001805091981515879,-2.2332389766442987e-5,-3.183757466667896e-8,-0.0018048237525921153,-2.211905907663405e-5,-3.1648156894879373e-8,-0.0018046468284378982,-2.1884874969180767e-5,-3.1438765962970895e-8,-0.0018045577965828564,-2.167257080863706e-5,-3.124804952076372e-8,-0.0018045367469031802,-2.1517256483314775e-5,-3.1108003719807276e-8,-0.0018045532547471112,-2.1440415901790588e-5,-3.103843208390343e-8,-0.0018045734964459543,-2.1447606975861767e-5,-3.1044738831155513e-8,-0.0018045667264467702,-2.1529672691860464e-5,-3.111893588046535e-8,-0.0018045098804961046,-2.1666384245823865e-5,-3.1242914374253404e-8,-0.0018043898839023068,-2.183112130503548e-5,-3.1392708760228225e-8,-0.001804203954475141,-2.1995397908962797e-5,-3.1542638797071024e-8,-0.0018039586205425583,-2.2132522471774145e-5,-3.166864148494045e-8,-0.0018036682150897336,-2.222029327998615e-5,-3.1750683255942955e-8,-0.0018033532774611,-2.2243105107731316e-5,-3.1774601732825967e-8,-0.0018030388535303287,-2.2193945397383773e-5,-3.173385130063672e-8,-0.0018027522942073136,-2.2076575061598045e-5,-3.1631467135425805e-8,-0.0018025198123736337,-2.1907738260673892e-5,-3.148213395270582e-8,-0.0018023610503111382,-2.171835234695091e-5,-3.131339673265721e-8,-0.0018022817446064101,-2.155153029171974e-5,-3.1164020013668663e-8,-0.0018022664981731129,-2.145492195250491e-5,-3.107715875834362e-8,-0.0018022761116299893,-2.1466616576633423e-5,-3.1087611729159285e-8,-0.001802254637597213,-2.1598488185100718e-5,-3.1206666940015674e-8,-0.0018021472428660756,-2.182595909351053e-5,-3.1412695010306495e-8,-0.0018019218634438376,-2.2092822584774562e-5,-3.1655360838329714e-8,-0.0018015825756897933,-2.2331161258804622e-5,-3.187351846210822e-8,-0.0018011669858702807,-2.2485932648024347e-5,-3.2017362632812046e-8,-0.0018007305205330378,-2.2531424552391003e-5,-3.20632837968358e-8,-0.0018003274466781097,-2.247396849454174e-5,-3.201639378115172e-8,-0.001799997044701253,-2.2344006761817026e-5,-3.190352915618942e-8,-0.0017997576968600084,-2.2183994777753875e-5,-3.1762527108728355e-8,-0.0017996074214415598,-2.2037129804367622e-5,-3.163218737463046e-8,-0.0017995281388526994,-2.1939134700851098e-5,-3.1544874466880096e-8,-0.001799491474118722,-2.191336925847295e-5,-3.1522014871558e-8,-0.0017994648236848451,-2.196879034163294e-5,-3.157211653547259e-8,-0.0017994169612412726,-2.210030852102367e-5,-3.1690969385098476e-8,-0.0017993225970557186,-2.2291116208268445e-5,-3.1863685374065217e-8,-0.0017991654559053219,-2.2516364846537557e-5,-3.2068017711543623e-8,-0.0017989396964144166,-2.2747470340719118e-5,-3.2278281986817246e-8,-0.001798649733945888,-2.2956364822787877e-5,-3.246922246142647e-8,-0.0017983088087218547,-2.3119105042172602e-5,-3.2619262744900355e-8,-0.0017979368481374199,-2.3218557224021916e-5,-3.271288686018867e-8,-0.001797558043108042,-2.3246284945411038e-5,-3.274229168261259e-8,-0.0017971982454755217,-2.3203905608775542e-5,-3.2708591798824984e-8,-0.0017968820442133351,-2.3104089519329166e-5,-3.2622768771998037e-8,-0.0017966291126735867,-2.297111342990777e-5,-3.250628913382254e-8,-0.0017964493540700971,-2.2840186859440642e-5,-3.239064633254201e-8,-0.001796337092370337,-2.2753871040159905e-5,-3.231424590201427e-8,-0.001796266176874397,-2.2753701692947285e-5,-3.2314867821004395e-8,-0.0017961898758915664,-2.2866622884127602e-5,-3.241733430757836e-8,-0.0017960501969663332,-2.3089920943539757e-5,-3.261975895170297e-8,-0.0017957976108034395,-2.3383568322421448e-5,-3.288650179068292e-8,-0.0017954135250510931,-2.3679171476829465e-5,-3.315617804332179e-8,-0.0017949215447578652,-2.390518557869303e-5,-3.336437672142568e-8,-0.0017943787200954949,-2.401500851776904e-5,-3.3468942402757484e-8,-0.0017938521133034476,-2.400161061140643e-5,-3.346310636110839e-8,-0.0017933953283730748,-2.3893135268437862e-5,-3.3371567284018426e-8,-0.0017930360672664986,-2.3736813868647664e-5,-3.323619106299432e-8,-0.0017927757839283627,-2.3582117106361543e-5,-3.310107169625848e-8,-0.0017925963117210405,-2.3469363688785598e-5,-3.300241303329868e-8,-0.0017924682328384592,-2.342451096539411e-5,-3.296382113706184e-8,-0.0017923581550719071,-2.345828625550179e-5,-3.299539036168371e-8,-0.001792234150133278,-2.356759742598324e-5,-3.309481410911366e-8,-0.0017920696405059335,-2.3737980155055785e-5,-3.324947345493431e-8,-0.0017918461088012336,-2.3946656287756952e-5,-3.343914759620848e-8,-0.0017915547494891267,-2.416604836192296e-5,-3.363918826601897e-8,-0.0017911970460121622,-2.4367571375549456e-5,-3.382396166819764e-8,-0.0017907841940512808,-2.4525457139788785e-5,-3.3970302096064133e-8,-0.0017903353488858134,-2.4620205356925683e-5,-3.4060599419872674e-8,-0.001789874928831574,-2.464121873006898e-5,-3.408513361013069e-8,-0.0017894293545302076,-2.458842006514815e-5,-3.404350871950484e-8,-0.001789023505241213,-2.4472837169482275e-5,-3.394520600674971e-8,-0.0017886770648342907,-2.431614883409421e-5,-3.3809267595780996e-8,-0.0017884008200234735,-2.4149141187628658e-5,-3.366304609271047e-8,-0.001788192903348495,-2.4008712245158947e-5,-3.353964297579916e-8,-0.0017880354372265181,-2.393253545893989e-5,-3.347316905691076e-8,-0.0017878931539800256,-2.3950554353910987e-5,-3.34910405981934e-8,-0.0017877167144701928,-2.4073806065351983e-5,-3.360377068735919e-8,-0.001787453569690734,-2.428392045087678e-5,-3.379534491041236e-8,-0.0017870663495322726,-2.4530220442592966e-5,-3.402051298850108e-8,-0.0017865519910194932,-2.4741563720019448e-5,-3.4215448424805376e-8,-0.0017859491906381667,-2.4852189071213217e-5,-3.4321023197333045e-8,-0.001785325958533287,-2.482869995671932e-5,-3.4307016493753474e-8,-0.0017847528767015353,-2.4681669420333632e-5,-3.418245486606978e-8,-0.0017842781208460322,-2.4456188730650273e-5,-3.3987154219619505e-8,-0.0017839168488831807,-2.4210443635923462e-5,-3.3772695142451446e-8,-0.0017836554356915608,-2.3996010205156732e-5,-3.358499104157047e-8,-0.0017834629055072672,-2.384722325415727e-5,-3.345487005540549e-8,-0.0017833022278605421,-2.377911957973221e-5,-3.33961693481918e-8,-0.0017831382257718895,-2.3790191594592873e-5,-3.340803787799357e-8,-0.0017829420119458068,-2.386664304225821e-5,-3.347858835271957e-8,-0.0017826931337199766,-2.3986439556649512e-5,-3.35884337520014e-8,-0.001782380554182279,-2.4122805007119548e-5,-3.37138034186474e-8,-0.0017820030107513522,-2.424741808773985e-5,-3.382943346932811e-8,-0.0017815688268330704,-2.4333593880854584e-5,-3.391144581214018e-8,-0.0017810949919451016,-2.435957061890063e-5,-3.3940296734933424e-8,-0.0017806052023764001,-2.4311695591746605e-5,-3.3903609380761455e-8,-0.001780126733231539,-2.4186960953258744e-5,-3.3798419210927013e-8,-0.001779686389109376,-2.3994309151659606e-5,-3.363234575116789e-8,-0.0017793060255654567,-2.3754312161234117e-5,-3.3423362014270186e-8,-0.0017789982504817423,-2.3497003448101446e-5,-3.319796437690346e-8,-0.0017787629677499328,-2.325789658218794e-5,-3.2987743056121986e-8,-0.0017785853328477087,-2.307245026259536e-5,-3.2824528494159e-8,-0.001778435693719291,-2.29692203202828e-5,-3.2734270343295896e-8,-0.0017782724447692514,-2.2962114363640616e-5,-3.2729999425653523e-8,-0.0017780489744251891,-2.304310446279494e-5,-3.2805121499466924e-8,-0.0017777252482119056,-2.3178271529330762e-5,-3.292970232577239e-8,-0.0017772823647096638,-2.331129259651724e-5,-3.305351428606098e-8,-0.0017767346083272459,-2.3377529158287416e-5,-3.311868318348257e-8,-0.001776130764697321,-2.3326480780226323e-5,-3.3079844371637935e-8,-0.0017755397912121303,-2.3142506066602418e-5,-3.292267378791187e-8,-0.001775025923089456,-2.285130228165791e-5,-3.2669641431352325e-8,-0.001774626618706956,-2.2507845107702927e-5,-3.2369284423643596e-8,-0.0017743445685003865,-2.217390512592298e-5,-3.207630409849978e-8,-0.0017741544806826274,-2.1898231682136928e-5,-3.1834061464338805e-8,-0.0017740169436090173,-2.1707118952548065e-5,-3.166620956255327e-8,-0.001773891219541728,-2.1604779152879516e-5,-3.157692307526984e-8,-0.0017737432310165142,-2.157882930216389e-5,-3.155562491937049e-8,-0.0017735489504333692,-2.1606679331330368e-5,-3.1582552828697624e-8,-0.0017732949817235678,-2.1660754250425577e-5,-3.163336707176071e-8,-0.0017729779982578978,-2.1712249139899234e-5,-3.1682516270717386e-8,-0.0017726039251191308,-2.1733947237802756e-5,-3.170578892729579e-8,-0.0017721870422029683,-2.170274238348413e-5,-3.168258293259854e-8,-0.001771748742021881,-2.160228540957275e-5,-3.1598253034946674e-8,-0.001771315436498432,-2.142574791419228e-5,-3.144654198656495e-8,-0.0017709151725227585,-2.1178148251122183e-5,-3.123163082063926e-8,-0.0017705729667818262,-2.0877318554922502e-5,-3.096901728522543e-8,-0.00177030549185305,-2.055260685325797e-5,-3.0684433448224743e-8,-0.0017701162882080364,-2.0240789383713746e-5,-3.041032430169265e-8,-0.0017699929466398218,-1.99794218315807e-5,-3.018005089313501e-8,-0.0017699074633654773,-1.9798779288104986e-5,-3.002078373264498e-8,-0.0017698202590316055,-1.971411094245867e-5,-2.994657558110185e-8,-0.0017696875886955075,-1.9720002942223983e-5,-2.9953206911113435e-8,-0.0017694714315701055,-1.9788544043428927e-5,-3.0016365819494506e-8,-0.001769150179508032,-1.9872824099373976e-5,-3.009460999645151e-8,-0.0017687273917546744,-1.9916635597634004e-5,-3.013794933369788e-8,-0.0017682349328222557,-1.986951675134688e-5,-3.0101278511672435e-8,-0.00176772710105645,-1.970328034493384e-5,-2.995916376833186e-8,-0.0017672653670454336,-1.942323674398719e-5,-2.9715881402750377e-8,-0.0017668987135009146,-1.906762066737871e-5,-2.9404951820690843e-8,-0.0017666484557888058,-1.8694185914153163e-5,-2.9077305426574343e-8,-0.0017665045683398996,-1.836037649987278e-5,-2.8783779540595175e-8,-0.0017664336822339468,-1.810670803004512e-5,-2.85604298531802e-8,-0.0017663927590512497,-1.7949525459591675e-5,-2.8422063980110166e-8,-0.0017663414629926905,-1.7882936783559632e-5,-2.8363836548011972e-8,-0.001766249541876796,-1.7885707909765793e-5,-2.8367242121714928e-8,-0.001766099266242993,-1.7928819727490756e-5,-2.8406756909275128e-8,-0.0017658847993394775,-1.798137782732972e-5,-2.8455090069843767e-8,-0.001765610393070421,-1.8014480188581894e-5,-2.8486659197502897e-8,-0.0017652885448722823,-1.800366604960887e-5,-2.8479796999216368e-8,-0.0017649384258213695,-1.7930802219111313e-5,-2.8418420896184835e-8,-0.0017645842871166185,-1.778602853787445e-5,-2.829372109660203e-8,-0.0017642532352409623,-1.7569903288050705e-5,-2.81060198076404e-8,-0.001763971759473834,-1.7295278259522374e-5,-2.786641950500421e-8,-0.0017637607807011494,-1.698782162266873e-5,-2.7597305393828584e-8,-0.0017636298282722234,-1.668378910785923e-5,-2.7330463361969477e-8,-0.0017635720325075124,-1.6424062245120354e-5,-2.7101919283812356e-8,-0.0017635623160880396,-1.624485381333525e-5,-2.6943804573923697e-8,-0.0017635607308321933,-1.6167370096356146e-5,-2.6875224575923194e-8,-0.0017635211289864948,-1.6190012162179073e-5,-2.68952735608918e-8,-0.0017634030561349838,-1.6286391210993562e-5,-2.6981120973846906e-8,-0.0017631832067511017,-1.6410496829813158e-5,-2.7092420717209323e-8,-0.001762862804611093,-1.650784066444652e-5,-2.7181070789573557e-8,-0.001762468592752757,-1.6529538541808296e-5,-2.720366625840219e-8,-0.001762046894151369,-1.6445530812446836e-5,-2.713326263374019e-8,-0.0017616519554521687,-1.6253198861825676e-5,-2.696709599279156e-8,-0.0017613315225252794,-1.5978453405918325e-5,-2.672764292807032e-8,-0.0017611140058775958,-1.5668350101802668e-5,-2.645617877953825e-8,-0.0017610016624053787,-1.5377341425857762e-5,-2.6200694380823762e-8,-0.001760972152477191,-1.5152050261090025e-5,-2.6002466768736517e-8,-0.0017609872896826445,-1.5020078162915458e-5,-2.5886132235295784e-8,-0.0017610048499390252,-1.4986153105280482e-5,-2.585618781524479e-8,-0.0017609887967856529,-1.5035267740803247e-5,-2.5899659894477047e-8,-0.0017609151979063953,-1.5139768158020223e-5,-2.5992305073980463e-8,-0.001760773716567572,-1.5266958060346903e-5,-2.610532992986437e-8,-0.0017605661687073292,-1.5385079455718696e-5,-2.6210718388494383e-8,-0.0017603038826338377,-1.5467116653328303e-5,-2.6284636330568005e-8,-0.0017600050563999715,-1.5492918931559058e-5,-2.630931543163531e-8,-0.00175969254649456,-1.5450515709074643e-5,-2.6274181953792665e-8,-0.0017593918639489119,-1.5337330423786408e-5,-2.617687582404043e-8,-0.0017591287810466108,-1.516152233340109e-5,-2.6024399594225813e-8,-0.0017589258943309788,-1.4943092225619993e-5,-2.5834108333616962e-8,-0.0017587977883399433,-1.4713698844311321e-5,-2.563361964748376e-8,-0.001758745306123578,-1.4513557060983797e-5,-2.5458186180871662e-8,-0.0017587508567577885,-1.4384033445413648e-5,-2.534426611652559e-8,-0.0017587779139626098,-1.4356303112866524e-5,-2.5319563744401592e-8,-0.0017587774818432792,-1.4439371548397277e-5,-2.5392423095802513e-8,-0.0017587014180465244,-1.461308765223457e-5,-2.5545545630735418e-8,-0.0017585182143315644,-1.4831017637906244e-5,-2.573837988454579e-8,-0.001758224300036135,-1.5033522952700285e-5,-2.5918544356983626e-8,-0.0017578456814572269,-1.5165890121277228e-5,-2.6037769834404815e-8,-0.0017574296827317477,-1.5194062164951215e-5,-2.6065783871821737e-8,-0.0017570309130902051,-1.5112670663097581e-5,-2.5997452534758276e-8,-0.001756696813994369,-1.4944139321311835e-5,-2.5852086776316284e-8,-0.0017564568402563836,-1.473071652369088e-5,-2.566653582995585e-8,-0.0017563173354597894,-1.4522642160396031e-5,-2.548486082353178e-8,-0.0017562624354948073,-1.4365851015030895e-5,-2.5347546705261553e-8,-0.0017562599735600776,-1.4292151664489295e-5,-2.5282821848690496e-8,-0.001756270345717931,-1.4313890299943314e-5,-2.5301868529854778e-8,-0.0017562557588578422,-1.4423796145213121e-5,-2.5398581829437754e-8,-0.0017561874812613571,-1.4599191257972496e-5,-2.5553204717269587e-8,-0.0017560497205785389,-1.4808590783445874e-5,-2.573812424229174e-8,-0.0017558401001670073,-1.501849889141526e-5,-2.5923886858305346e-8,-0.0017555677036126833,-1.5198851791683837e-5,-2.6084035700955837e-8,-0.0017552499882569114,-1.5326523211685818e-5,-2.6198219746351277e-8,-0.0017549096171388453,-1.5387143092883683e-5,-2.625378099409158e-8,-0.0017545716844747704,-1.5375917958639373e-5,-2.624643446693762e-8,-0.0017542612485054693,-1.5298085448759974e-5,-2.618062930004095e-8,-0.0017540007404882867,-1.5169273450952789e-5,-2.6069861979063126e-8,-0.0017538066861335557,-1.5015531634949477e-5,-2.593675647987724e-8,-0.0017536853789179659,-1.4872118319182157e-5,-2.5812093138283254e-8,-0.0017536279768385933,-1.4779491480665109e-5,-2.5731383005018647e-8,-0.001753606952723239,-1.477510058162383e-5,-2.5727704626657337e-8,-0.0017535772625469973,-1.4881293853944655e-5,-2.5821044107833472e-8,-0.0017534854838303832,-1.5093084239007569e-5,-2.600743669074431e-8,-0.001753286710863749,-1.5372854528035302e-5,-2.6254185280220255e-8,-0.0017529628465813953,-1.5658309245887e-5,-2.650676375421154e-8,-0.0017525321779777868,-1.5882916451512282e-5,-2.6706754294287406e-8,-0.0017520438774256833,-1.599931632431093e-5,-2.6812413521358316e-8,-0.0017515603547515798,-1.599389242849295e-5,-2.6811474485739375e-8,-0.0017511370747768787,-1.58870721613282e-5,-2.6721446136561115e-8,-0.0017508085426400448,-1.5722498178991464e-5,-2.6580205900138525e-8,-0.001750583522276346,-1.5552126055896935e-5,-2.6433054088095324e-8,-0.0017504477988545496,-1.5423007708300132e-5,-2.6321212129111954e-8,-0.001750371174214469,-1.5368439711583733e-5,-2.62740633198849e-8,-0.001750315851837096,-1.5403810993203438e-5,-2.630543047416448e-8,-0.0017502443819633047,-1.552642617773328e-5,-2.641330452405617e-8,-0.0017501260881107377,-1.5718366270618406e-5,-2.6582255837826362e-8,-0.001749941315168841,-1.595138996435713e-5,-2.6787687878177625e-8,-0.0017496832210316077,-1.6192740022060927e-5,-2.7000937830024997e-8,-0.0017493572693855985,-1.6410744434680557e-5,-2.719422519070173e-8,-0.001748978948913387,-1.6579358203906588e-5,-2.7344668887639668e-8,-0.0017485704968312657,-1.6681163415333903e-5,-2.74369274282324e-8,-0.0017481574240992264,-1.670883282721197e-5,-2.7464466784574147e-8,-0.0017477653066889829,-1.666547427544194e-5,-2.742983935525184e-8,-0.0017474168841164288,-1.6564305460559376e-5,-2.7344394725503e-8,-0.001747129279233854,-1.6427879931202274e-5,-2.722763656186771e-8,-0.0017469110243550452,-1.6286771476204226e-5,-2.7106146180372478e-8,-0.0017467586534195868,-1.6177063093025705e-5,-2.7011472007132247e-8,-0.0017466533463252492,-1.6135412490742596e-5,-2.6975864478472212e-8,-0.0017465594178202246,-1.6190686058868135e-5,-2.7024931986323628e-8,-0.0017464276261986936,-1.6352739951425828e-5,-2.7167717614836124e-8,-0.0017462061719448097,-1.6602042086509395e-5,-2.7387475511613235e-8,-0.0017458589390846183,-1.688727509586495e-5,-2.7639480984314817e-8,-0.001745383793112345,-1.7137548063945405e-5,-2.7861723308800773e-8,-0.001744819115139456,-1.7287659579105718e-5,-2.7997065592867195e-8,-0.0017442316274042247,-1.7303833560797986e-5,-2.8015768007836517e-8,-0.0017436912573285538,-1.7194973975304273e-5,-2.7925287860788828e-8,-0.001743247452036388,-1.7004614184730193e-5,-2.7763247275154654e-8,-0.0017429180130239536,-1.6791404372740664e-5,-2.758049651565357e-8,-0.0017426913839497045,-1.6609904370917028e-5,-2.7424492345162885e-8,-0.001742536475141356,-1.649859690995107e-5,-2.7328913073261393e-8,-0.0017424137905466815,-1.6475754777084468e-5,-2.731001280582881e-8,-0.0017422844622990985,-1.6540670952381766e-5,-2.7367575703814308e-8,-0.001742116355369948,-1.6677544114767887e-5,-2.7488179361086792e-8,-0.0017418876343611228,-1.686031928037145e-5,-2.764933739189588e-8,-0.0017415883616594284,-1.70577248174131e-5,-2.782387438953023e-8,-0.0017412205022093819,-1.7238115114124338e-5,-2.7984175560639326e-8,-0.0017407965855088022,-1.737379930727008e-5,-2.8106002984605667e-8,-0.0017403372333003285,-1.744456666693547e-5,-2.81716008451723e-8,-0.0017398678463401798,-1.7440083829039737e-5,-2.817179627356715e-8,-0.0017394149398974874,-1.7360942313155324e-5,-2.8106908907450188e-8,-0.0017390025998627163,-1.7218462503755394e-5,-2.7986581351569095e-8,-0.0017386492629266872,-1.7033516940844868e-5,-2.78287765345854e-8,-0.0017383648667583472,-1.6834511621145167e-5,-2.7658071698212013e-8,-0.0017381483860776027,-1.6654526309760896e-5,-2.750323777098479e-8,-0.0017379857880764208,-1.6527352718845074e-5,-2.7393844848311547e-8,-0.0017378488996451671,-1.6481799532138352e-5,-2.735530264547702e-8,-0.0017376966372265247,-1.653390656976417e-5,-2.7402002468754002e-8,-0.0017374807521994074,-1.6678137811977933e-5,-2.752950967892001e-8,-0.0017371577619254865,-1.6881003467352378e-5,-2.7708880462880502e-8,-0.0017367058418978965,-1.7082956805723142e-5,-2.7888277038928824e-8,-0.0017361397871615877,-1.7213636041267133e-5,-2.8006313607759834e-8,-0.0017355130919502622,-1.7217983517437767e-5,-2.8014887489228886e-8,-0.0017349010873700975,-1.7080148864802256e-5,-2.789998107144859e-8,-0.0017343723348015217,-1.6829898005292252e-5,-2.7687166142917287e-8,-0.0017339647832955254,-1.6527764114669422e-5,-2.742869117101087e-8,-0.0017336786370508808,-1.6239846977128967e-5,-2.718170516827529e-8,-0.0017334849605685624,-1.6017009429821272e-5,-2.6990333500378085e-8,-0.0017333407869161536,-1.588567181395312e-5,-2.6877727087182345e-8,-0.0017332024740586718,-1.5848606242811324e-5,-2.6846667644146168e-8,-0.0017330340615586818,-1.5890746362680283e-5,-2.68844715727071e-8,-0.0017328110493750382,-1.598598400945783e-5,-2.696877596915934e-8,-0.00173252127473545,-1.6103053832416733e-5,-2.7072598915931684e-8,-0.0017321643150833425,-1.6210210138051937e-5,-2.716841036510506e-8,-0.0017317501140170313,-1.6278998147010685e-5,-2.723144593688566e-8,-0.0017312970188940173,-1.6287366080985484e-5,-2.7242447571344237e-8,-0.0017308292084595779,-1.6222185622260528e-5,-2.7189872388028625e-8,-0.001730373452436675,-1.6081006942388617e-5,-2.7071418830950497e-8,-0.0017299553582569695,-1.5872667604661172e-5,-2.6894553273205772e-8,-0.0017295955423252537,-1.5616500957420817e-5,-2.6675832877706237e-8,-0.0017293061873740823,-1.5340170469505593e-5,-2.6439061947713e-8,-0.0017290883470865532,-1.507625010199129e-5,-2.6212382075122478e-8,-0.0017289303472872032,-1.485771739629063e-5,-2.6024423253133448e-8,-0.0017288076171489378,-1.4712600788592941e-5,-2.5899692716363257e-8,-0.0017286843786890062,-1.4657982104751628e-5,-2.5853345982890227e-8,-0.0017285179920752429,-1.469378801204321e-5,-2.5885710544355952e-8,-0.0017282669016267444,-1.4797809692912494e-5,-2.597784298491023e-8,-0.0017279022709099565,-1.4924826606494031e-5,-2.6090678957383975e-8,-0.0017274210330882648,-1.5013539408658058e-5,-2.6171041964052904e-8,-0.0017268544886931924,-1.500339980186787e-5,-2.6166307322124555e-8,-0.0017262646488298942,-1.4857541654773406e-5,-2.6044338623451537e-8,-0.0017257250829835684,-1.4580494467278208e-5,-2.5808814537283378e-8,-0.0017252937794389228,-1.4218526667931194e-5,-2.5499476937908507e-8,-0.0017249930231404602,-1.3840794807331261e-5,-2.517585149150039e-8,-0.0017248067699141875,-1.351270711306445e-5,-2.4894335555473773e-8,-0.0017246934534974646,-1.3276295708485894e-5,-2.4691333401292228e-8,-0.0017246038274408126,-1.314433765536367e-5,-2.4578159853052325e-8,-0.0017244948196652298,-1.3105269854769773e-5,-2.454517288778279e-8,-0.0017243364526524838,-1.3132362073222714e-5,-2.456957312402072e-8,-0.0017241132667976712,-1.3192342565411862e-5,-2.4622786661510245e-8,-0.0017238228661482834,-1.325163183139236e-5,-2.4675851118792835e-8,-0.0017234735662261548,-1.3280343921097598e-5,-2.470291409721152e-8,-0.0017230820075737141,-1.3254924222723466e-5,-2.4683557620105018e-8,-0.0017226707950760843,-1.3160121817767504e-5,-2.4604525475472103e-8,-0.001722265910630456,-1.2990581890931382e-5,-2.4461095384133306e-8,-0.001721893605087852,-1.275194862461917e-5,-2.4258014835579526e-8,-0.0017215766694778005,-1.2461004044485085e-5,-2.400961012256891e-8,-0.0017213304202050618,-1.2144266502687791e-5,-2.373858904526001e-8,-0.0017211591144521662,-1.1834740035222872e-5,-2.3473278345894057e-8,-0.0017210536379387664,-1.15669121811399e-5,-2.3243368159746304e-8,-0.0017209912434660293,-1.137053703664978e-5,-2.3074600444917153e-8,-0.00172093786428734,-1.126418106526938e-5,-2.2983213066028008e-8,-0.0017208531150557185,-1.1249725559581083e-5,-2.2971150222902847e-8,-0.0017206977257007766,-1.1309037278010377e-5,-2.3023095245395752e-8,-0.0017204427559582552,-1.1404176889886242e-5,-2.3106548502949438e-8,-0.0017200791234227555,-1.1482681882738014e-5,-2.3176327687590162e-8,-0.0017196246541953794,-1.148889330573019e-5,-2.3184350335903796e-8,-0.001719124641958263,-1.1380227657635337e-5,-2.3093722950941158e-8,-0.0017186423638384035,-1.114361781624759e-5,-2.289295661201278e-8,-0.0017182400231541156,-1.0804036814357762e-5,-2.2603315828948557e-8,-0.0017179572397719124,-1.0418304686722344e-5,-2.2273489276189473e-8,-0.0017177979779009823,-1.0055136813138216e-5,-2.1962468500676522e-8,-0.0017177326568771723,-9.771363476111051e-6,-2.171915971274942e-8,-0.0017177126940655086,-9.59618259083335e-6,-2.1568855933039855e-8,-0.0017176882158911563,-9.528664202440341e-6,-2.151102115154199e-8,-0.0017176207842986657,-9.54532916023194e-6,-2.152570092195504e-8,-0.001717488539588401,-9.61114215968148e-6,-2.1582903167043163e-8,-0.0017172856020235222,-9.688935408136953e-6,-2.1650695633700068e-8,-0.0017170188075453885,-9.745503388018222e-6,-2.1700489974222203e-8,-0.001716704030343493,-9.75481187740589e-6,-2.1709853665659155e-8,-0.001716363051667733,-9.699527683861308e-6,-2.1663854398151375e-8,-0.0017160209740540878,-9.571902058244573e-6,-2.155581284513286e-8,-0.0017157037275235207,-9.374493289871258e-6,-2.1387892099804606e-8,-0.0017154351582843574,-9.12063251889091e-6,-2.1171465309349033e-8,-0.0017152334371241793,-8.834059379219236e-6,-2.0926792740536966e-8,-0.0017151070380174468,-8.54691461997685e-6,-2.0681324010697784e-8,-0.0017150511747853247,-8.295434661355793e-6,-2.0466057621787945e-8,-0.0017150460711992154,-8.113332137404114e-6,-2.030992124260642e-8,-0.0017150584488687581,-8.023886119027629e-6,-2.0233017236108107e-8,-0.0017150469068009022,-8.032794681682757e-6,-2.0240470470753276E-08,-0.0017149705846409252,-8.124212126971078e-6,-2.031895666669989e-8,-0.0017147992299687779,-8.261786867259084e-6,-2.043750161115691e-8,-0.0017145220766764634,-8.39524066367176e-6,-2.0553060054856926e-8,-0.001714152932724592,-8.471588872493842e-6,-2.062012893709478e-8,-0.0017137294505731322,-8.448766698921679e-6,-2.0602470471424994e-8,-0.0017133056268037235,-8.30827935977141e-6,-2.0484010951138584e-8,-0.0017129382965746429,-8.062726137621993e-6,-2.0275329834940626e-8,-0.0017126708829768335,-7.754388283059394e-6,-2.0012476947012425e-8,-0.0017125200757254853,-7.443621313326269e-6,-1.9747060849152198e-8,-0.0017124712795059404,-7.190431363037621e-6,-1.9530504080148718e-8,-0.001712485108463056,-7.0366396458408515e-6,-1.9398773754969298e-8,-0.0017125116285125956,-6.995979960543143e-6,-1.9363850589301513e-8,-0.0017125055152946264,-7.054904126090996e-6,-1.941433171688431e-8,-0.0017124362267456486,-7.181290036679982e-6,-1.9522819783303132e-8,-0.0017122912356786113,-7.33559115667751e-6,-1.9655458212988638e-8,-0.0017120739679193392,-7.480041670713854e-6,-1.9779851901213196e-8,-0.0017117993662422982,-7.584250733816216e-6,-1.9869913460128613e-8,-0.0017114893374762983,-7.627641340691138e-6,-1.9907989660052855e-8,-0.0017111690927208221,-7.6000125055850025e-6,-1.9885345225042433e-8,-0.0017108644073861132,-7.501412760528949e-6,-1.9802025000362843e-8,-0.0017105992780522003,-7.341978719606794e-6,-1.966667578346078e-8,-0.0017103933189507282,-7.1417111820099305e-6,-1.949632951528594e-8,-0.0017102585004460788,-6.929573781906971e-6,-1.9315642219774395e-8,-0.0017101954017993111,-6.7409497837180035e-6,-1.9154764556717096e-8,-0.0017101899463117245,-6.612514274616833e-6,-1.904501927146042e-8,-0.0017102124219094009,-6.574302226505446e-6,-1.9012164611844463e-8,-0.0017102208546907933,-6.640381461484933e-6,-1.906841604034119e-8,-0.0017101696872487946,-6.801430426475136e-6,-1.920604126355059e-8,-0.0017100221870999638,-7.023203351349197e-6,-1.939596217498844e-8,-0.0017097624173563275,-7.2532026779098715e-6,-1.959339512897098e-8,-0.0017094018542985613,-7.4343348959541015e-6,-1.9749511339903364e-8,-0.0017089776595243197,-7.520980981562084e-6,-1.982519953065219e-8,-0.0017085430785728673,-7.491875094526717e-6,-1.98021064005799e-8,-0.0017081533169143335,-7.355782261528479e-6,-1.968751486928549e-8,-0.0017078512816734047,-7.148736530329722e-6,-1.9512013140907094e-8,-0.0017076570788535014,-6.924050653939927e-6,-1.9321004792382517e-8,-0.0017075639301940206,-6.73805286028801e-6,-1.9162573935492407e-8,-0.0017075414744693901,-6.635623404704152e-6,-1.9075152574921577e-8,-0.0017075452538536885,-6.6397481673598866e-6,-1.907856769945405e-8,-0.0017075291279762277,-6.74799680854229e-6,-1.917095975773456e-8,-0.001707456464753147,-6.936270654025548e-6,-1.9331909124735297e-8,-0.001707306873839935,-7.167486224038338e-6,-1.9529815014463757e-8,-0.0017070774940020905,-7.40150152130711e-6,-1.9730384470556232e-8,-0.001706780055599116,-7.603160648750164e-6,-1.9903542367193303e-8,-0.0017064359548183703,-7.747073464223104e-6,-2.0027552034501053e-8,-0.0017060712869391593,-7.819370843360752e-6,-2.009053088308096e-8,-0.0017057128647851082,-7.81750689300007e-6,-2.0090272816758505e-8,-0.0017053853475831233,-7.749258787440385e-6,-2.0033369653230264e-8,-0.0017051090246987348,-7.63165252439743e-6,-1.9934273203516424e-8,-0.0017048976130836205,-7.48990374053086e-6,-1.9814391821666054e-8,-0.0017047556071532683,-7.355870167993619e-6,-1.9700800557958514e-8,-0.0017046752314598494,-7.265069438578037e-6,-1.962374814999241e-8,-0.001704633907873945,-7.251176602605976e-6,-1.9612010035070857e-8,-0.0017045942123405239,-7.337574074837141e-6,-1.968569133958673e-8,-0.0017045088636094908,-7.527447475358424e-6,-1.984773628854404e-8,-0.0017043321125059295,-7.796609969145614e-6,-2.0077728553648004e-8,-0.0017040352892301902,-8.094628881719389e-6,-2.033278529821439e-8,-0.0017036199174814714,-8.357321757473915e-6,-2.0558199710134475e-8,-0.0017031207453830734,-8.527279641554265e-6,-2.07049674527795e-8,-0.0017025957211632837,-8.573251713438601e-6,-2.0746330786424403e-8,-0.0017021073995130097,-8.499347348814524e-6,-2.0685612575558143e-8,-0.0017017044497118188,-8.341162243397592e-6,-2.0552915628861326e-8,-0.0017014101770728533,-8.152663137236833e-6,-2.0393996128262026e-8,-0.001701220123087332,-7.99029114266652e-6,-2.0256802195303342e-8,-0.0017011069963663247,-7.899440803721392e-6,-2.0180015465234488e-8,-0.0017010298088642021,-7.905934485141747e-6,-2.0185786978182623e-8,-0.0017009442845075707,-8.013087611659719e-6,-2.0277176829621546e-8,-0.001700812271449088,-8.203778005991368e-6,-2.043983579510598e-8,-0.001700608518360257,-8.446292559298515e-6,-2.0646923134808663e-8,-0.0017003238336688721,-8.702227743979316e-6,-2.086581340902206e-8,-0.0016999645473487364,-8.934420936028888e-6,-2.106486263485468e-8,-0.00169954913513485,-9.113190354238928e-6,-2.1218747636263865e-8,-0.0016991033874861217,-9.22001102864717e-6,-2.1311618593498575e-8,-0.0016986554807616981,-9.248647435155238e-6,-2.13380740034121e-8,-0.0016982318855080062,-9.204399731118582e-6,-2.1302519561850147e-8,-0.0016978543995590132,-9.10238542444722e-6,-2.121770451114759e-8,-0.0016975380294125626,-8.965565187764711e-6,-2.1103046899748445e-8,-0.0016972892355614753,-8.822716746064468e-6,-2.0982928734896224e-8,-0.001697104147393287,-8.706075816679848e-6,-2.0884721675880377e-8,-0.0016969666972081788,-8.647926619789557e-6,-2.0835920379221263e-8,-0.00169684740011825,-8.675181170249637e-6,-2.0859546028640884e-8,-0.0016967045804855362,-8.801519162920972e-6,-2.0967436610679105e-8,-0.0016964905065300056,-9.01844333619171e-6,-2.1152579343920042e-8,-0.0016961639731149969,-9.289415793960601e-6,-2.138406153842879e-8,-0.001695707106127775,-9.553311743058151e-6,-2.160998864081665e-8,-0.0016951385176591758,-9.741104001052941e-6,-2.1771702413548394e-8,-0.0016945128063564176,-9.801298769835388e-6,-2.1825425829586347e-8,-0.001693902985101117,-9.720976758235634e-6,-2.176009941619977e-8,-0.0016933741666031645,-9.529958261736527e-6,-2.1600847624303437e-8,-0.0016929627649807358,-9.286767509844959e-6,-2.1397063223247418e-8,-0.0016926700984223038,-9.056285660978077e-6,-2.1203544267075215e-8,-0.0016924690855679811,-8.890755742029625e-6,-2.1064502321326876e-8,-0.0016923170302585921,-8.819805710338477e-6,-2.1005150945671767e-8,-0.0016921682214408472,-8.8489478525651e-6,-2.1030391509463162e-8,-0.0016919833229793798,-8.963433333096914e-6,-2.1127991678712995e-8,-0.0016917350451069605,-9.1345146397534e-6,-2.1273812337831973e-8,-0.0016914106590955637,-9.326304850307346e-6,-2.1437577987506275e-8,-0.0016910119930584138,-9.50234733555081e-6,-2.158843896357954e-8,-0.0016905533915853798,-9.631291450467526e-6,-2.1699798048136526e-8,-0.0016900581754099764,-9.69110899668149e-6,-2.1752905508392625e-8,-0.0016895542586885487,-9.671493446052107e-6,-2.1738910779710982e-8,-0.0016890696305639124,-9.574362283327237e-6,-2.1659302094648493e-8,-0.0016886283866275086,-9.412685663855614e-6,-2.1524925607916213e-8,-0.001688247743667381,-9.208192002297713e-6,-2.1354054577412935e-8,-0.0016879360364431592,-8.98854909081757e-6,-2.1170017704178606e-8,-0.0016876914563649197,-8.784322466768402e-6,-2.0998642806816554e-8,-0.0016875013089274406,-8.625690463057586e-6,-2.086549585606093e-8,-0.0016873417279686287,-8.53858560005698e-6,-2.0792626469016813e-8,-0.001687178325547085,-8.539692110101775e-6,-2.079432297753112e-8,-0.0016869691166023061,-8.630151987089456e-6,-2.0871746461888742e-8,-0.0016866715029369072,-8.789267347131455e-6,-2.100754636158876e-8,-0.001686254318023176,-8.97163165767185e-6,-2.1163398058176738e-8,-0.0016857129301765929,-9.112940780203801e-6,-2.1284938230037018e-8,-0.0016850801573558933,-9.148161471228022e-6,-2.1317184884815498e-8,-0.001684422796496244,-9.037763226930734e-6,-2.122672379094548e-8,-0.0016838198027999708,-8.787797426035769e-6,-2.1018591580797273e-8,-0.0016833318949512636,-8.44940531154977e-6,-2.0735764854021037e-8,-0.0016829803888256231,-8.096954946202853e-6,-2.0440726785689123e-8,-0.0016827459755191082,-7.799047296914452e-6,-2.0191141842253217e-8,-0.001682583454796451,-7.598483392665845e-6,-2.0023083749209106e-8,-0.0016824406087873034,-7.507046345778621e-6,-1.9946647297024858e-8,-0.00168227233893414,-7.511005682637191e-6,-1.995050767444206e-8,-0.0016820477635596358,-7.580629314178077e-6,-2.0009840918065495e-8,-0.0016817519149339769,-7.679226904576688e-6,-2.0093885939198342e-8,-0.0016813844563981313,-7.770076038468931e-6,-2.017176810577966e-8,-0.00168095711875254,-7.821310599237092e-6,-2.02166337334569e-8,-0.0016804905773571324,-7.809332280904686e-6,-2.020854689581189e-8,-0.001680010953275545,-7.72105576611143e-6,-2.013639837823021e-8,-0.001679546036692029,-7.555014866778501e-6,-1.999884849506686e-8,-0.0016791214090587767,-7.3212178391739496e-6,-1.9804212819061585e-8,-0.0016787568208649483,-7.0396326381076e-6,-1.956919439356282e-8,-0.0016784633058374865,-6.737431280764423e-6,-1.9316573595337173e-8,-0.0016782413530992905,-6.445394475960026e-6,-1.907219462969039e-8,-0.001678080222805157,-6.193862700986028e-6,-1.8861571689255484e-8,-0.0016779584103784654,-6.008506027515523e-6,-1.8706342929766363e-8,-0.001677845249146384,-5.906093833141004e-6,-1.8620715185890165e-8,-0.0016777038192801804,-5.890290612856807e-6,-1.8607914310898255e-8,-0.0016774958004093384,-5.947719194763358e-6,-1.8656841222782147e-8,-0.0016771890493794792,-6.04551842846217e-6,-1.873997969081269e-8,-0.001676767832841618,-6.132885965309012e-6,-1.8814675758844495e-8,-0.0016762435242489034,-6.149771262434435e-6,-1.8830466334363702e-8,-0.0016756602448421592,-6.044400624246342e-6,-1.8743841862040513e-8,-0.001675087945535953,-5.795520152856072e-6,-1.8536922752685177e-8,-0.001674600133436057,-5.427392994706577e-6,-1.8229981102522346e-8,-0.0016742451149479186,-5.004926323171685e-6,-1.7877295972549893e-8,-0.0016740276746855878,-4.608399079730942e-6,-1.7546004506771972e-8,-0.0016739119980301556,-4.302510944871832e-6,-1.729026756861099e-8,-0.0016738412334485694,-4.117301795986611e-6,-1.7135338860309113e-8,-0.0016737597260480786,-4.047201977927108e-6,-1.7076725758927597e-8,-0.0016736272940627243,-4.062129813392705e-6,-1.708939796436854e-8,-0.0016734236526182423,-4.121225593287399e-6,-1.7139232302019368e-8,-0.0016731464204356393,-4.183527382690121e-6,-1.719194905092986e-8,-0.001672806667024793,-4.214324596648135e-6,-1.721846074771176e-8,-0.0016724243936852225,-4.1882372375009135e-6,-1.7197481453770475e-8,-0.0016720247121886067,-4.090499672781078e-6,-1.71166177315317e-8,-0.001671634560924054,-3.9173958791691575e-6,-1.697273167292582e-8,-0.0016712796064216253,-3.676148262014399e-6,-1.677183719774153e-8,-0.0016709811132979546,-3.3841381804794744e-6,-1.6528438089025636e-8,-0.001670752839878428,-3.067097445950772e-6,-1.626401154436992e-8,-0.0016705983902454557,-2.755995668689129e-6,-1.6004410253319553e-8,-0.0016705096420609104,-2.4827410471397807e-6,-1.5776279333381472e-8,-0.0016704667555038147,-2.2751486697532836e-6,-1.5602864533974782e-8,-0.001670440054529566,-2.151829226592785e-6,-1.5499751063543376e-8,-0.001670393800312215,-2.117817669325008e-6,-1.5471212409242127e-8,-0.001670291584102462,-2.1617204405963794e-6,-1.5507814775575798e-8,-0.0016701029794063543,-2.2550054075283997e-6,-1.5585801952800447e-8,-0.0016698110099757678,-2.354258371242796e-6,-1.5668961170856538e-8,-0.0016694193436379667,-2.4075797922360825e-6,-1.5713962061550806e-8,-0.0016689568880535386,-2.3659216383981152e-6,-1.5679837674904023e-8,-0.001668476255894404,-2.198389705642687e-6,-1.5540770761251108e-8,-0.0016680427111036224,-1.9070635849955495e-6,-1.5298448763090533e-8,-0.0016677138985701416,-1.5331708742942751e-6,-1.49871845626283e-8,-0.001667517861434114,-1.147223731015582e-6,-1.4665690841976024e-8,-0.0016674416245268775,-8.243545513833562e-7,-1.4396566986045408e-8,-0.0016674379465091208,-6.170824570407865e-7,-1.4223645290633774e-8,-0.0016674458929825874,-5.401446955353702e-7,-1.415932767755485e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json new file mode 100644 index 0000000..ddc7d4d --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":20000,"numberOfSamples":1000,"samples":[0.002920358133904192,-6.784113942412794e-6,1.9052440314477163e-8,0.0029206413912713745,-6.613636446664559e-6,1.880279195741177e-8,0.0029208307139081857,-6.4248857259363685e-6,1.8526799455172666e-8,0.002920930147853429,-6.259580496894272e-6,1.8285299846459358e-8,0.002920958301557765,-6.151401288497133e-6,1.8127384394993633e-8,0.002920943527534336,-6.121517965926748e-6,1.8083876197142136e-8,0.002920918375602291,-6.176714362040785e-6,1.816459054828576e-8,0.0029209142523147777,-6.309966452545619e-6,1.8359183512205728e-8,0.0029209570493570875,-6.502919273456435e-6,1.864078390277559e-8,0.0029210641805222245,-6.729529878146821e-6,1.8971329337261025e-8,0.0029212431239192664,-6.960111764971586e-6,1.9307474224319167e-8,0.0029214911994797127,-7.165144308668532e-6,1.960613535377138e-8,0.002921796120285953,-7.318617634903727e-6,1.982935162046132e-8,0.002922137007124233,-7.4010933087209115e-6,1.994874542519259e-8,0.0029224858842140738,-7.402792330024526e-6,1.9950053694911065e-8,0.0029228100891597296,-7.3269133160290385e-6,1.9838013786501703e-8,0.0029230765056806078,-7.192875581754198e-6,1.9641124744988003e-8,0.002923258593947595,-7.038021661925838e-6,1.941411030247615e-8,0.0029233461420444737,-6.914897975233613e-6,1.9233867338703342e-8,0.0029233550561071457,-6.88082642372724e-6,1.9184132872670825e-8,0.002923331035256764,-6.979157664713172e-6,1.9328047777690732e-8,0.002923340142385916,-7.2183869507838524e-6,1.9677702094935728e-8,0.002923445583922481,-7.561828631160178e-6,2.0179192009197127e-8,0.002923681317946548,-7.937980661899995e-6,2.072789220706034e-8,0.0029240384097172193,-8.268180631197756e-6,2.1208898937220332e-8,0.0029244717828463846,-8.495446917109097e-6,2.1539128515592525e-8,0.0029249206337382287,-8.5993447870362e-6,2.168897594018406e-8,0.0029253292642615033,-8.593866031641322e-6,2.1679150221309016e-8,0.002925659785723746,-8.515407336314436e-6,2.1563040883823154e-8,0.0029258958667452545,-8.409144036535884e-6,2.140676187245665e-8,0.0029260405842169023,-8.318330424117874e-6,2.1273515340970926e-8,0.0029261116369550147,-8.277597083016847e-6,2.1213831819462888e-8,0.0029261360482877165,-8.309529221173803e-6,2.1260608728115165e-8,0.0029261452014683505,-8.42340926017503e-6,2.142729184107828e-8,0.002926170313882796,-8.615486024606374e-6,2.1708269585437497e-8,0.00292623844165663,-8.870566448345604e-6,2.2081201504360447e-8,0.00292636924853009,-9.164729529600066e-6,2.2511001728707966e-8,0.0029265727710682966,-9.46889441648262e-6,2.295507952203869e-8,0.0029268483980316373,-9.752900430721535e-6,2.336931848773817e-8,0.0029271851539575938,-9.989600330613871e-6,2.371405611551756e-8,0.0029275631112714875,-1.0158516530347245e-5,2.3959412562508196e-8,0.002927955664309901,-1.0248883948905652e-5,2.408973052847181e-8,0.002928332543885939,-1.0262052169211477e-5,2.4107097524156514e-8,0.002928663659626732,-1.0213176614852856e-5,2.4033835922844377e-8,0.002928924086482032,-1.0131859571605514e-5,2.391343414198871e-8,0.002929100469893201,-1.006068720901442e-5,2.380835533385682e-8,0.00292919825272032,-1.0049779074946679e-5,2.3791978424671676e-8,0.0029292472514429032,-1.0145544621233506e-5,2.3932078427797663e-8,0.0029293008561212352,-1.0374107175155202e-5,2.4266580620660107e-8,0.0029294238469290295,-1.0725024417737487e-5,2.4779841229322424e-8,0.002929669111734987,-1.114611883277768e-5,2.539521780426727e-8,0.0029300535325597157,-1.1558053316444333e-5,2.599647534430263e-8,0.0029305485124082784,-1.1884615009568598e-5,2.647210161222967e-8,0.0029310923955805034,-1.2081611605397568e-5,2.675757842754958e-8,0.002931616304399638,-1.2148069338781219e-5,2.6851763811636517e-8,0.002932067285150511,-1.2117575796211164e-5,2.6804177118692685e-8,0.002932418917621506,-1.2040100109443465e-5,2.6688285414068273e-8,0.002932670230039864,-1.1965464765100921e-5,2.657720810322275e-8,0.0029328387680504554,-1.1933289258766363e-5,2.6528961772784398e-8,0.00293295270881014,-1.196897681852962e-5,2.658062017342903e-8,0.002933044376699607,-1.2083490982675024e-5,2.67480469420976e-8,0.0029331455921541476,-1.2274805413081184e-5,2.7028061070784242e-8,0.002933284292138651,-1.2529877406152909e-5,2.7401345594697467e-8,0.00293348183921598,-1.2826952297089921e-5,2.7835835906596038e-8,0.0029337508490475143,-1.3138354603080276e-5,2.829083170402535e-8,0.002934093645838865,-1.3433894030281315e-5,2.872201713802254e-8,0.0029345016544849406,-1.3684880135773215e-5,2.908736254701938e-8,0.0029349561406361926,-1.386840837531521e-5,2.935340201831078e-8,0.002935430486740117,-1.3971275110489517e-5,2.95009506018706e-8,0.002935893835760189,-1.3992889279387817e-5,2.9529348563241594e-8,0.002936315747796631,-1.3946693107954746e-5,2.9458526641335536e-8,0.0029366714399644074,-1.3859725730502529e-5,2.9328347332084718e-8,0.0029369471463227275,-1.3770076163005065e-5,2.919483182596872e-8,0.0029371450608840764,-1.3721886782902614e-5,2.912277265954847e-8,0.002937286864066753,-1.3757394229001907e-5,2.917400350300773e-8,0.0029374138979444495,-1.3905986529102212e-5,2.9391340967481903e-8,0.002937581299334286,-1.4172039349156543e-5,2.9780814874648412e-8,0.002937844163109093,-1.45262281968288e-5,3.029905020497397e-8,0.0029382377175291947,-1.4907319198974039e-5,3.085599616240686e-8,0.0029387598782889463,-1.5239082205155629e-5,3.13397558100923e-8,0.0029393676298225253,-1.5457827043506526e-5,3.165695446938089e-8,0.002939992216838139,-1.5536378976067384e-5,3.1767915909756623e-8,0.0029405653190518453,-1.5490797301223943e-5,3.169654522724492e-8,0.002941041254771594,-1.536815347138079e-5,3.151235350452084e-8,0.00294140542344543,-1.5225670745632641e-5,3.129971116966001e-8,0.0029416699353257774,-1.511314588614597e-5,3.113191036723647e-8,0.002941863403875871,-1.5063955018859357e-5,3.105791466104839e-8,0.002942020994539501,-1.5093505935668198e-5,3.110013611490886e-8,0.002942177366646585,-1.520170158147927e-5,3.125814014183412e-8,0.0029423625508156873,-1.537654151057894e-5,3.1514004634474597e-8,0.002942599690849947,-1.559743059921687e-5,3.183721614696178e-8,0.00294290359336924,-1.5838011990550073e-5,3.2188849522134435e-8,0.00294327957060671,-1.606891948600009e-5,3.252562907878252e-8,0.002943722566359027,-1.626091105834113e-5,3.2804552667574874e-8,0.0029442169460562008,-1.6388674978272435e-5,3.2988495583917805e-8,0.002944737613991192,-1.643514977217652e-5,3.3052553288382284e-8,0.002945253028492552,-1.6395599116742716e-5,3.299000825108424e-8,0.0029457301748656087,-1.6280316984019043e-5,3.2816276383530096e-8,0.0029461409054937337,-1.6114844458962526e-5,3.2569189442586106e-8,0.002946468467779173,-1.59369584836108e-5,3.230452078197805e-8,0.0029467127007430827,-1.5790452065963385e-5,3.20867790313752e-8,0.002946892484190752,-1.571653783339316e-5,3.19765091292342e-8,0.0029470444074099875,-1.574421226294738e-5,3.201610119609517e-8,0.00294721700040216,-1.5881334913556607e-5,3.2216717921521556e-8,0.002947460426363542,-1.6108825234197094e-5,3.2549869520431156e-8,0.002947812788728661,-1.6380947123874963e-5,3.294795449427606e-8,0.002948286406491707,-1.663423983095662e-5,3.3317466246604255e-8,0.0029488597757889802,-1.6805051579412595e-5,3.356478318315856e-8,0.0029494809972528905,-1.6850594771345913e-5,3.362711592054566e-8,0.0029500837834087173,-1.6764027436157334e-5,3.3494691584581735e-8,0.002950609547099543,-1.65754022846451e-5,3.321214488618771e-8,0.0029510248489415226,-1.6338277873894157e-5,3.285874310463184e-8,0.002951326908519711,-1.6110067758768604e-5,3.251932528889389e-8,0.002951537740617979,-1.5935923031543694e-5,3.226045946019777e-8,0.002951692897861342,-1.5841154803625142e-5,3.2119268917177497e-8,0.0029518308167177263,-1.5831373922113136e-5,3.210371527010424e-8,0.002951985680243071,-1.5896753371837802e-5,3.219898309769699e-8,0.0029521838394617654,-1.6017149276703177e-5,3.237510141211502e-8,0.0029524425171660266,-1.6166416508957604e-5,3.259333287301716e-8,0.002952769476479237,-1.631566760743691e-5,3.281097659429368e-8,0.0029531628666808734,-1.6435949662826805e-5,3.298530817637135e-8,0.002953611072809355,-1.6501010877409013e-5,3.307765926789581e-8,0.0029540929521073237,-1.6490693620487103e-5,3.305842467294873e-8,0.002954579264429746,-1.639499922671663e-5,3.291305556929234e-8,0.00295503617946976,-1.6218085914775832e-5,3.264794315872196e-8,0.0029554312636725514,-1.598068794654785e-5,3.2293958485677294e-8,0.002955741283648492,-1.5719093070127868e-5,3.1904895652031e-8,0.002955959806034109,-1.547937573783238e-5,3.154889715991773e-8,0.0029561017019983917,-1.5307268455907255e-5,3.129343797151466e-8,0.002956202124345455,-1.5236171399037398e-5,3.118759456372629e-8,0.002956309344895545,-1.5277053681785616e-5,3.124717312307237e-8,0.002956473061121083,-1.5413664099591182e-5,3.144774573045378e-8,0.002956731321048645,-1.56048785559379e-5,3.1728248939181924e-8,0.00295709965139376,-1.5793981380019647e-5,3.20047831722283e-8,0.002957565526219128,-1.592284518104132e-5,3.2191570296512827e-8,0.002958090281759539,-1.5947524626471783e-5,3.2223937815342005e-8,0.0029586188407144266,-1.5850738642942996e-5,3.2076690446522256e-8,0.002959094945026436,-1.5646720190761735e-5,3.177121976954928e-8,0.002959476848073268,-1.5376083073574004e-5,3.136786811924238e-8,0.0029597476091094625,-1.5092533249955837e-5,3.094622473963542e-8,0.0029599165389014807,-1.4847001851064014e-5,3.058161120537158e-8,0.0029600126576895124,-1.4675368085643121e-5,3.032691574396036e-8,0.0029600742944759875,-1.4593152680899354e-5,3.020479859533819e-8,0.0029601393336397405,-1.4596748310243467e-5,3.020960605628144e-8,0.002960238698290419,-1.4668406120361078e-5,3.031483113270092e-8,0.002960393348094185,-1.4782054688900286e-5,3.048176038556993e-8,0.0029606137208240614,-1.4908213038661743e-5,3.0666732803764704e-8,0.002960900307724539,-1.5017561814104221e-5,3.082638893027108e-8,0.002961244434757364,-1.50835587775595e-5,3.092151102287129e-8,0.0029616289196745093,-1.508481954343969e-5,3.092053838966425e-8,0.0029620288994349014,-1.5007922270276185e-5,3.080373072655211e-8,0.002962413625758523,-1.485083932757977e-5,3.056826258788275e-8,0.0029627502369207145,-1.4626387490437281e-5,3.023332794121676e-8,0.002963010182597418,-1.4364071234967201e-5,2.9842834228472035E-08,0.002963177767764606,-1.4107920694885702e-5,2.9462135061082662e-8,0.002963258245024794,-1.390835698351417e-5,2.9165907356940043e-8,0.002963281197327158,-1.3808595017261191e-5,2.9017964910745684e-8,0.0029632955592347656,-1.3829869002871433e-5,2.9049396981577167e-8,0.0029633562901483323,-1.396211303207011e-5,2.9244867118890364e-8,0.002963507429295757,-1.4165122782118485e-5,2.9544476640865564e-8,0.0029637685076608447,-1.4380196230406393e-5,2.986111941278739e-8,0.0029641293995320965,-1.4547336536681909e-5,3.010599812437667e-8,0.0029645544477331213,-1.462147944059388e-5,3.021262159737794e-8,0.002964993199433165,-1.4582947790407866e-5,3.015220993420224e-8,0.002965393786237881,-1.4440252912374524e-5,2.993775541428279e-8,0.002965715263846332,-1.4225700000439636e-5,2.9617431791449873e-8,0.002965936105661564,-1.3985740295725363e-5,2.926023813664994e-8,0.0029660572013795127,-1.3768956215185547e-5,2.893816297894991e-8,0.0029660991821764673,-1.361495218959358e-5,2.8709729777681658e-8,0.0029660954822132313,-1.3546940317984253e-5,2.8609061319606824e-8,0.0029660836753954115,-1.3569374678669404e-5,2.86424548981107e-8,0.002966097715672726,-1.3670152439685494e-5,2.8791723939980673e-8,0.002966162758787371,-1.382559151959131e-5,2.9021622975413763e-8,0.002966292909415142,-1.4006141463460001e-5,2.9288313696922994e-8,0.0029664912327432187,-1.4181368889154244e-5,2.9546719679842586e-8,0.00296675098439865,-1.432364071392131e-5,2.975594063607446e-8,0.0029670571768570203,-1.441068763053631e-5,2.988302426452729e-8,0.0029673880824924595,-1.4427641005829092e-5,2.990599124607975e-8,0.0029677168251591012,-1.4369146872198044e-5,2.9817001755657374e-8,0.002968013691011178,-1.4241810907193253e-5,2.962601250879183e-8,0.0029682500709710805,-1.4066513065220714e-5,2.93642059457502e-8,0.002968404731954602,-1.387910107568484e-5,2.9084963591962518e-8,0.002968471978193223,-1.3727039399383037e-5,2.88588007731629e-8,0.002968469059433979,-1.3659767445614165e-5,2.875897632722551e-8,0.0029684378958154877,-1.3713145157645224e-5,2.8838395498620046e-8,0.00296843646941631,-1.3893353069001035e-5,2.9105800690051132e-8,0.0029685202671800416,-1.4169383669450605e-5,2.9514779524273305e-8,0.0029687215722676882,-1.4480741544933563e-5,2.997532983204709e-8,0.0029690374925616814,-1.4758063993347154e-5,3.038452227517716e-8,0.002969432550313911,-1.494625005415047e-5,3.0660807023103234e-8,0.0029698527534371528,-1.501941615613648e-5,3.076614564288683e-8,0.002970242975131316,-1.4983590593674082e-5,3.070991787329774e-8,0.002970560707010411,-1.486978332026129e-5,3.053852833456252e-8,0.002970783380041674,-1.4722598896256202e-5,3.031840881526067e-8,0.0029709096528671933,-1.4588664344004444e-5,3.01187930361603e-8,0.0029709563531596737,-1.4507263299708571e-5,2.999782950169233e-8,0.0029709528196634203,-1.450412607323851e-5,2.9993430059943106e-8,0.0029709340930672533,-1.4588613765477793e-5,3.011917526326649e-8,0.0029709342235076834,-1.4754157039491757e-5,3.036503994043903e-8,0.0029709808089967682,-1.4981337496558506e-5,3.070201327711546e-8,0.0029710914938153535,-1.524256500555707e-5,3.1089054340748793e-8,0.0029712726180356206,-1.5507206205397086e-5,3.1480689014010646e-8,0.0029715197167699482,-1.5746211713835314e-5,3.1833846061620287e-8,0.002971819217195222,-1.5935676545529305e-5,3.211310994113541e-8,0.0029721506391493777,-1.6059298169857467e-5,3.2294356226821274e-8,0.002972488915422919,-1.6110085669579795e-5,3.236730284468479e-8,0.0029728068475521232,-1.609171171330991e-5,3.233754856855953e-8,0.0029730780491342918,-1.6019684593364873e-5,3.2228331099957483e-8,0.002973280996517472,-1.5922014544477006e-5,3.2081488017266414e-8,0.002973404663571169,-1.5838170077771026e-5,3.195582334149546e-8,0.0029734552005521004,-1.581431674792034e-5,3.1919928221359786e-8,0.002973461188362297,-1.589302000644207e-5,3.2036819078499595e-8,0.0029734728689441363,-1.609792381140514e-5,3.234121094806937e-8,0.0029735507610109523,-1.6418860094304986e-5,3.281753040259766e-8,0.002973744280704623,-1.6807320664665265e-5,3.3393348896120576e-8,0.0029740698756861514,-1.7189700640362698e-5,3.395915574472174e-8,0.002974502213153519,-1.7494403406110863e-5,3.4408643234550394e-8,0.002974984560957685,-1.767802825408724e-5,3.4677597890506306e-8,0.0029754513730213712,-1.773672456282881e-5,3.476073805538473e-8,0.002975849730807777,-1.7700253301847003e-5,3.470280180238341e-8,0.0029761508530331345,-1.7616516953682456e-5,3.4575409590022556e-8,0.0029763511916333146,-1.7535807952942615e-5,3.445351817065031e-8,0.0029764671850589274,-1.7499734982786542e-5,3.439891544803893e-8,0.002976527814731713,-1.753553605886131e-5,3.445182277720747e-8,0.0029765674333753333,-1.7654482487030005e-5,3.462863214504655e-8,0.0029766197783471023,-1.785285028144174e-5,3.4923452338110174e-8,0.002976713303471049,-1.8114495901758313e-5,3.531200044507124e-8,0.00297686786306883,-1.841450460826479e-5,3.575704849602197e-8,0.002977092820345906,-1.8723439945705067e-5,3.6214741069552453E-08,0.0029773865940886136,-1.9011730919729806e-5,3.6641106825301627e-8,0.00297773758195352,-1.9253744086145604e-5,3.6998098021908325e-8,0.002978126225410339,-1.9431077092030192e-5,3.725847234837322e-8,0.002978527778364898,-1.953481608938666e-5,3.740914085341509e-8,0.0029789154040244796,-1.9566826718393777e-5,3.7453087807647996e-8,0.002979263474936315,-1.9540223734977267e-5,3.741007038668588e-8,0.002979551126528603,-1.9479037319080024e-5,3.731610210216535e-8,0.002979766242014358,-1.9416859969519788e-5,3.722137847792964e-8,0.0029799099497124348,-1.9393715173435276e-5,3.7185523694292244e-8,0.002980000915971834,-1.94498533312271e-5,3.7268276541520824e-8,0.0029800772524500073,-1.9615566721707554e-5,3.7514326950814606e-8,0.002980192469529219,-1.9898167604817833e-5,3.7934040287157073e-8,0.0029804022602219083,-2.0271164712515565e-5,3.8487521814506124e-8,0.0029807434701728474,-2.067424132501533e-5,3.9084720785291444e-8,0.0029812147089178787,-2.1030261025836366e-5,3.961077233026522e-8,0.0029817719928732045,-2.127449949752043e-5,3.99694784583061e-8,0.0029823449666828935,-2.1379992430783766e-5,4.0121037663042906e-8,0.0029828645165091085,-2.136410513008704e-5,4.009182899623436e-8,0.0029832854451143304,-2.127531976246566e-5,3.995464665032265e-8,0.002983594498668351,-2.1171712511966522e-5,3.97964527218785e-8,0.0029838054954291746,-2.1103248487216302e-5,3.9691834147374094e-8,0.002983948836829765,-2.110276132606735e-5,3.968953147631429e-8,0.002984061290257191,-2.1184288397485705e-5,3.981006008442894e-8,0.002984178513731084,-2.1345484561751207E-05,4.004945855912969e-8,0.00298433040769511,-2.157146104983014e-5,4.0385128619668554e-8,0.002984538433971821,-2.183875045296736e-5,4.078179890719198e-8,0.002984814157245484,-2.2119128743535838e-5,4.1197228817699106e-8,0.0029851587068223267,-2.2383338100873876e-5,4.158774803164346e-8,0.0029855631058775885,-2.260472386163859e-5,4.191366897386889e-8,0.002986009558291577,-2.2762699849510053e-5,4.214444460091879e-8,0.002986473810408079,-2.2845709776562213e-5,4.226307152736928e-8,0.0029869284555065143,-2.285321248440732e-5,4.226903134195116e-8,0.0029873468009023675,-2.279640960153469e-5,4.217934987696174e-8,0.0029877069362470323,-2.2697618488155953e-5,4.202762496290873e-8,0.002987995706883981,-2.2588196005956238e-5,4.186087368514205e-8,0.0029882122724941918,-2.250493424394035e-5,4.173407992678916e-8,0.002988370845250907,-2.2484777608857293e-5,4.170223881865493e-8,0.0029885017936435655,-2.255756728162393e-5,4.180950622118746e-8,0.002988649508545319,-2.2737002269993502e-5,4.20757789848222e-8,0.002988864944534272,-2.3011660125789477e-5,4.248345478531366e-8,0.0029891917531914853,-2.3340375925996207e-5,4.2970713042447454e-8,0.0029896486141179545,-2.3657833305475466e-5,4.3439950290240724e-8,0.002990215930999584,-2.3893473135528555e-5,4.378597223794274e-8,0.0029908371871804683,-2.399812996226874e-5,4.393568517521914e-8,0.0029914382467285117,-2.396417191820179e-5,4.3878147729951906e-8,0.0029919551613743003,-2.38265851199188e-5,4.3666186218943454e-8,0.0029923547556799392,-2.364535922564181e-5,4.33899815622375e-8,0.0029926388924618567,-2.34815530183942e-5,4.314111317342226e-8,0.0029928352743501543,-2.3379858232251807e-5,4.298635560434982e-8,0.002992983643000855,-2.3362211966869825e-5,4.2958145653724355e-8,0.002993124239325345,-2.3429729514789833e-5,4.305762336091702e-8,0.0029932908205783236,-2.3568260581625195e-5,4.3263117748307686e-8,0.0029935075467194595,-2.3754218892099406e-5,4.353897939933425e-8,0.002993788115402275,-2.3959322132927218e-5,4.3842700238288005e-8,0.002994135865131543,-2.415427368613513e-5,4.413039745178603e-8,0.002994544317604473,-2.431187474329782e-5,4.436143642962751e-8,0.0029949981369148688,-2.4409940834154676e-5,4.4502773677267694e-8,0.002995474733920963,-2.4434159363146072e-5,4.453322269139798e-8,0.002995946867852737,-2.438065412063379e-5,4.444727962470359e-8,0.0029963863997792425,-2.4257633800533217e-5,4.425756592263305e-8,0.0029967688850502656,-2.4085455016201706e-5,4.399488097416399e-8,0.002997078338300538,-2.3894673268282683e-5,4.370522458009922e-8,0.002997311349129843,-2.3721945852451404e-5,4.344359182276227e-8,0.002997479656226587,-2.360404297666528e-5,4.32649398235654e-8,0.0029976103593761477,-2.357065305448074e-5,4.3213385803306306e-8,0.002997743110787153,-2.3636926496027646e-5,4.3311086910764544e-8,0.002997923748088096,-2.379704664473801e-5,4.354874311053949e-8,0.0029981942175954005,-2.4020889171051923e-5,4.388077348084879e-8,0.0029985799058661606,-2.4256592745038067e-5,4.422930981774514e-8,0.0029990778745615423,-2.444143335305884e-5,4.450051619084297e-8,0.002999651934402648,-2.4520419116148653e-5,4.461236561595702e-8,0.003000240119555401,-2.4466536425871935e-5,4.452486712152954e-8,0.0030007744382348467,-2.4292342453891288e-5,4.4257372821343864e-8,0.0030012043836071256,-2.4045254021272564e-5,4.388146492212079e-8,0.003001512146798215,-2.3788596603881732E-05,4.3492440534199405e-8,0.003001713011004348,-2.3579216292932016e-5,4.3175608587979206e-8,0.0030018440201570076,-2.345253767991309e-5,4.298382851303703e-8,0.0030019492490419297,-2.3418849803166555e-5,4.293202980731309e-8,0.0030020683571267115,-2.3467794115789163e-5,4.300412504387121e-8,0.003002230577040951,-2.3575924418412295e-5,4.3164515275253525e-8,0.0030024530481396073,-2.371369072928725e-5,4.336864156691746e-8,0.0030027414546316424,-2.3850507219765965e-5,4.357057053753451e-8,0.0030030914014577796,-2.395813305179184e-5,4.3728004665977624e-8,0.003003489836964812,-2.4013129247926298e-5,4.3805913400348664e-8,0.003003916505986112,-2.3999045197511412e-5,4.3779791639210484e-8,0.0030043458018004154,-2.3908648392456543e-5,4.3639009503235175e-8,0.003004749546491452,-2.3746015567883387e-5,4.338995688522113e-8,0.0030051010544452283,-2.3527756377723387e-5,4.305786620408989e-8,0.003005380278727441,-2.3282359290256304e-5,4.268578367873625e-8,0.0030055791218540325,-2.3046814799346892e-5,4.232942511550203e-8,0.003005705403471987,-2.2860300990568903e-5,4.2047613637055405e-8,0.0030057838269298923,-2.2755768795899834e-5,4.188959157506121e-8,0.0030058528292368726,-2.275134395340437e-5,4.188212374752424e-8,0.003005957307061821,-2.2843946110056914e-5,4.2020014794074985E-08,0.003006138413427418,-2.300724171618979e-5,4.226319699714995e-8,0.0030064225790959894,-2.319527741556905e-5,4.254234844837243e-8,0.003006812562702178,-2.335201743558618e-5,4.277330694714285e-8,0.0030072836012702583,-2.3425444976355578e-5,4.2878234687331705e-8,0.003007787264335132,-2.3382901257872224e-5,4.280856410095554e-8,0.003008263689228249,-2.3222450315454287e-5,4.2561953877304193e-8,0.0030086592071474436,-2.2974830200955383e-5,4.218511547518296e-8,0.0030089426676550976,-2.26937486182808e-5,4.17591305405803e-8,0.00300911333844383,-2.2438134195979213e-5,4.137267939823414e-8,0.003009197487585295,-2.225432969879038e-5,4.1095226879594374e-8,0.003009236757661162,-2.216547948200621e-5,4.0961121500672567e-8,0.003009274709149118,-2.217043771176245e-5,4.09681037873079e-8,0.0030093468102407217,-2.224960297551781e-5,4.108625065125137e-8,0.003009475717436156,-2.2373205783984607e-5,4.1270546851323725e-8,0.003009670815179887,-2.250862585044295e-5,4.147189797251425e-8,0.0030099299700386954,-2.2625428795493783e-5,4.164463699013084e-8,0.00301024187402901,-2.269838136100306e-5,4.1750971465696804e-8,0.003010588197802463,-2.2709282253166442e-5,4.17636812926794e-8,0.0030109454772800953,-2.2648401738654642e-5,4.1668279995880246e-8,0.0030112871514783373,-2.2515993789587058e-5,4.1465320020488957e-8,0.003011586410402015,-2.2323777967550487e-5,4.1172650945728414e-8,0.003011820354517727,-2.2095615453953176e-5,4.082642765490463e-8,0.0030119753682766987,-2.1866121724890676e-5,4.0478962804724885e-8,0.0030120526329220835,-2.167596603147096e-5,4.019155827324615e-8,0.003012071619005174,-2.1563470526289128e-5,4.002177521312465e-8,0.0030120689879420764,-2.1553983387326334e-5,4.0007412510859045e-8,0.0030120914835277484,-2.1650539471334874e-5,4.015251477306536e-8,0.003012183981443884,-2.1829957093484467e-5,4.0421644155871945e-8,0.003012376436940448,-2.2046872823385574e-5,4.074612539538994e-8,0.003012674385510726,-2.2245060636632923e-5,4.104120937557746e-8,0.003013056385483303,-2.237249037808146e-5,4.122877520759659e-8,0.003013479206572159,-2.2395363336080645e-5,4.125840285038834e-8,0.00301388907552939,-2.2307009988112173e-5,4.112064949092303e-8,0.003014235716569667,-2.21292539477236e-5,4.0848957479960844e-8,0.0030144852458368573,-2.1905904722336058e-5,4.0509715506145036e-8,0.003014628140393211,-2.1690273931464643e-5,4.0183354013727575e-8,0.0030146798861370155,-2.1530670765035162e-5,3.9942465173289727e-8,0.003014674513909391,-2.1458647516230403e-5,3.9834154839566405e-8,0.0030146539150070514,-2.1483480978725524e-5,3.9871866653527925e-8,0.003014657045850174,-2.159355446238517e-5,4.003762590554032e-8,0.0030147123189946208,-2.1762610361229233e-5,4.029158028075859e-8,0.0030148344079461886,-2.1957660138997936e-5,4.0583952504102195e-8,0.003015024723893025,-2.214588593896058e-5,4.0865392615269084e-8,0.0030152739036193445,-2.22993320272481e-5,4.109395623141755e-8,0.0030155648211872598,-2.239750335835605e-5,4.123893927793968e-8,0.0030158753159103555,-2.242862410171888e-5,4.1282740545661414e-8,0.0030161804959735242,-2.239035571976067e-5,4.122196425411615e-8,0.0030164549748184135,-2.2290484655788065e-5,4.106850249505057e-8,0.0030166756785176938,-2.2147566876471484e-5,4.085053467582822e-8,0.0030168257902463656,-2.1990840651876128e-5,4.0612367627877493e-8,0.0030168998356597245,-2.185809576971141e-5,4.041113557692705e-8,0.003016908801918456,-2.1790004412026398e-5,4.030814374624823e-8,0.0030168827390098687,-2.1820318277313286e-5,4.035402021045058e-8,0.0030168675107474373,-2.19637983748077e-5,4.057054444845606e-8,0.003016913871536386,-2.220687703617631e-5,4.09366942603126e-8,0.003017061280745224,-2.2507121073764624e-5,4.138801109760418e-8,0.0030173232653145413,-2.28042122748035e-5,4.1833304318833444e-8,0.0030176816547766365,-2.3038752114974032e-5,4.218308051823787e-8,0.003018092461901088,-2.317060860472061e-5,4.2377204037070425e-8,0.0030185000617629827,-2.3189358211647577e-5,4.240056434796237e-8,0.0030188531890023565,-2.3114278349446322e-5,4.2282916648184983e-8,0.0030191172695145925,-2.298608274263823e-5,4.2086230161827244e-8,0.003019280521670172,-2.2854616393563075e-5,4.188596434454325e-8,0.00301935377876645,-2.27664496809722e-5,4.1752283274555145e-8,0.0030193653932179577,-2.2755137035095014e-5,4.173540981919782e-8,0.0030193531828910203,-2.2835689436507088e-5,4.185743087774839e-8,0.003019355569264338,-2.3003756094996915e-5,4.211123646364793e-8,0.003019403958407845,-2.323899690414335e-5,4.246574371735947e-8,0.003019517875462904,-2.3511172447957385e-5,4.2875145551518413e-8,0.003019703373553423,-2.3786991097561844e-5,4.328922423781491e-8,0.003019954219332213,-2.4036029761377636e-5,4.3662218358333147e-8,0.003020254766068992,-2.423482031971884e-5,4.395891153209101e-8,0.003020583367897793,-2.4369010761043288e-5,4.415784033020523e-8,0.0030209155492026242,-2.4434102956819604e-5,4.425239523927991e-8,0.0030212267021837735,-2.443546844269732e-5,4.4250868318591255e-8,0.0030214945520319145,-2.438812313993975e-5,4.417614262844354e-8,0.0030217018620748537,-2.4316298536123176e-5,4.406504030121207e-8,0.0030218398456035413,-2.4252307744576375e-5,4.396654725060574e-8,0.003021912331535931,-2.4233602777596313e-5,4.39372627104561e-8,0.0030219396761021347,-2.429662036167427e-5,4.4032012805518794e-8,0.0030219599100410016,-2.4466782499552282e-5,4.4288740896769435e-8,0.00302202361177359,-2.4746531459929342e-5,4.47105455738881e-8,0.003022180395983599,-2.5107010582484676e-5,4.525329764117915e-8,0.003022460057180725,-2.5490814286278737e-5,4.5829951905006934e-8,0.003022857627761485,-2.5828964736561783e-5,4.633626256410645e-8,0.003023332267934383,-2.6065721301283244e-5,4.668826880948124e-8,0.003023821927221237,-2.6178133626157623e-5,4.685181828073514e-8,0.0030242654527104103,-2.618060722133502e-5,4.6849397702988095e-8,0.00302462064736006,-2.6115003315723564e-5,4.674500325784846e-8,0.003024872054652819,-2.6034210741007566e-5,4.661907867346306e-8,0.003025029247398639,-2.5987096868666402e-5,4.654559337911846e-8,0.003025119674183166,-2.600869221520683e-5,4.657718713531259e-8,0.0030251798618585422,-2.6115962524536738e-5,4.6738915646380234e-8,0.003025247304514287,-2.6307892425086884e-5,4.702858653637406e-8,0.0030253540345252404,-2.6568373656992416e-5,4.742130825887169e-8,0.003025522180290973,-2.6870812112854194e-5,4.7876552038498893e-8,0.0030257616742353777,-2.718362842899639e-5,4.834647617031556e-8,0.0030260701248843638,-2.7475754898200334e-5,4.878418797216237e-8,0.003026434531440565,-2.7721296131052857e-5,4.915072369570908e-8,0.003026834267375794,-2.790282528074767e-5,4.941997646359749e-8,0.003027244652317317,-2.801310467185596e-5,4.958126578195143e-8,0.00302764045789911,-2.8055375984440208e-5,4.963976761859313e-8,0.0030279989828120874,-2.8042678247256376e-5,4.961548465878466e-8,0.003028302732030385,-2.7996614735003015e-5,4.9541371336797554e-8,0.0030285419382640503,-2.7945668380696642e-5,4.946074008271887e-8,0.0030287171664962805,-2.7922799028450726e-5,4.9423540183523226e-8,0.003028841979820805,-2.796162115926255e-5,4.948048077466765e-8,0.0030289448272879803,-2.8090202994150213e-5,4.967360897101288e-8,0.00302906808799766,-2.832216698757468e-5,5.002291747065914e-8,0.003029261393516597,-2.8646859820436187e-5,5.051165188848918e-8,0.0030295674732655794,-2.9023648863821986e-5,5.107788139765754e-8,0.0030300035036457318,-2.9387468552092513e-5,5.1622994265168756e-8,0.003030547654439084,-2.966892547984612e-5,5.204210187529804e-8,0.0030311419708281494,-2.9821700123341288e-5,5.226546402242462e-8,0.003031713429022907,-2.9841451121119933e-5,5.228710697781398e-8,0.0030322015269454838,-2.9764614366811912e-5,5.216297581619774e-8,0.003032576700297681,-2.964992539693665e-5,5.1982771928407634e-8,0.0030328427049061664,-2.95558177823456e-5,5.18354400080819e-8,0.0030330273738204275,-2.952483864326578e-5,5.178537523848844e-8,0.0030331699517057442,-2.9577898541893805e-5,5.1863748181959154e-8,0.0030333104138618784,-2.9715604944099784e-5,5.207074030425486e-8,0.003033482465717576,-2.9922976396352082e-5,5.238294189196952e-8,0.0030337098242709487,-3.017493755703473e-5,5.276185486031358e-8,0.0030340047066781646,-3.0441434203506502e-5,5.316170038656006e-8,0.0030343677318868385,-3.069201162682167e-5,5.353632168723621e-8,0.0030347889661070187,-3.089987345211356e-5,5.384526338775909e-8,0.0030352499978571756,-3.104524236184448e-5,5.405880170678398e-8,0.0030357268634388502,-3.111778908424594e-5,5.416158516454266e-8,0.0030361935715449567,-3.1117887001919675e-5,5.415451590233293e-8,0.003036625814699871,-3.105651407747209e-5,5.4054586154864e-8,0.003037004388893214,-3.095390233892545e-5,5.3892806738359834e-8,0.003037318044491069,-3.083722670992275e-5,5.3710656905416486e-8,0.0030375656938618433,-3.073753439132445e-5,5.355535566628204e-8,0.0030377579336559293,-3.068595891553895e-5,5.347403607373892e-8,0.0030379177300265737,-3.0709070813912385e-5,5.350663829087113e-8,0.00303807966723912,-3.0823076928323533e-5,5.367713979638666e-8,0.0030382864205653216,-3.102708512509555e-5,5.3983480616954495e-8,0.003038580787609243,-3.1297162733261364e-5,5.438876948576837e-8,0.0030389926926067358,-3.158502205672186e-5,5.481947606929273e-8,0.003039524072818,-3.1826340398447944e-5,5.517809779127173e-8,0.0030401396754807146,-3.196074975273588e-5,5.5373393880473416e-8,0.0030407732402690456,-3.1956872342941396e-5,5.5358273365942866e-8,0.0030413506216760183,-3.1827784431995975e-5,5.515324561172027e-8,0.0030418182463314066,-3.1625541651179424e-5,5.4838080988230775e-8,0.003042160215499455,-3.141800758364335e-5,5.4516451859117366e-8,0.003042396527409552,-3.126315753054347e-5,5.4276642795710085e-8,0.003042568426483442,-3.119410063882663e-5,5.416865946881467e-8,0.0030427219468042673,-3.121729790939866e-5,5.4201628447496637e-8,0.0030428965072263536,-3.131876817788899e-5,5.435349924198628e-8,0.0030431195875498325,-3.1472417249374476e-5,5.4583966139684054e-8,0.003043405671120528,-3.164719823662061e-5,5.48454888443154e-8,0.003043757278206,-3.181220441401584e-5,5.509103044165085e-8,0.0030441666670632966,-3.194016210578213e-5,5.527928024881129e-8,0.0030446177728978936,-3.2010055857858906e-5,5.537854846801234e-8,0.0030450884814295937,-3.200922767702134e-5,5.5369895852801475e-8,0.003045553386619406,-3.193493319092446e-5,5.524947681257876e-8,0.003045987115545042,-3.179510076572901e-5,5.502968803317016e-8,0.0030463680745412454,-3.1607871380829794e-5,5.473845618856727e-8,0.0030466821164058687,-3.139963516825679e-5,5.441621391559135e-8,0.0030469255028017037,-3.120163298944072e-5,5.4110664553357935e-8,0.003047106649642553,-3.1045429760949075e-5,5.3869815322197836e-8,0.003047246264489913,-3.0957724333207185e-5,5.373401644060654e-8,0.0030473756148905722,-3.0955076276420677e-5,5.372793333790556e-8,0.0030475327337165107,-3.10391075449408e-5,5.385333611732599e-8,0.0030477562593878016,-3.119291882112134e-5,5.408383161903094e-8,0.0030480767420623433,-3.138019112187306e-5,5.436371344206401e-8,0.003048506271394186,-3.154923496407961e-5,5.461427067933738e-8,0.003049029398017934,-3.164403612417949e-5,5.4750595244403097E-08,0.003049600741217892,-3.162181473782961e-5,5.470817249590223e-8,0.0030501546590933595,-3.147129459702184e-5,5.447053534930495e-8,0.0030506267199089275,-3.122124129326912e-5,5.408216609011085e-8,0.003050977543809847,-3.0931489493301834e-5,5.363475132421305e-8,0.0030512056349143645,-3.066970206362606e-5,5.323164358366911e-8,0.0030513427951945633,-3.048709541508865e-5,5.2950735410073135e-8,0.0030514375272195533,-3.0405493613713788e-5,5.2824725934812176e-8,0.0030515374213706445,-3.0418359774685625e-5,5.284287745599565e-8,0.003051677995809869,-3.050014466075965e-5,5.296553808075435e-8,0.0030518790092155215,-3.061696562449272e-5,5.314062781446654e-8,0.003052145625853913,-3.073469977610028e-5,5.3316031028704927e-8,0.0030524714707749288,-3.082377392153637e-5,5.344682144560079e-8,0.0030528417493476028,-3.086160174564249e-5,5.34988474804598e-8,0.0030532358836312897,-3.0833881042707114e-5,5.345060667689741e-8,0.003053629879526026,-3.0735485986035706e-5,5.3294565854492434e-8,0.0030539988364117142,-3.0571146292916206e-5,5.30382059792326e-8,0.0030543199507090837,-3.0355674406952507e-5,5.270438907050841e-8,0.0030545760956502454,-3.0113150877368533e-5,5.233010961195881e-8,0.00305475954547292,-2.9874438142143042e-5,5.1962653663563995e-8,0.003054874940487383,-2.967277780668974e-5,5.165280031939516e-8,0.0030549404324154324,-2.9537825570307475e-5,5.144563962738253e-8,0.0030549861390338404,-2.9489134143288323e-5,5.137059250576423e-8,0.0030550495976808005,-2.953061394193003e-5,5.143300630399881e-8,0.003055168710759939,-2.9647526534915528e-5,5.160970828560753e-8,0.0030553733364540553,-2.9807121158297693e-5,5.1850176986509324e-8,0.0030556770688369554,-2.9963521348213533e-5,5.208418350889287e-8,0.0030560711382057876,-3.0066914121891328e-5,5.223590149011024e-8,0.003056522783852153,-3.007606385331831e-5,5.224295582005858e-8,0.0030569803906741184,-2.9971466768568165e-5,5.207634125974998e-8,0.0030573862107332603,-2.9764480348069197e-5,5.1754164969916074e-8,0.0030576939719519337,-2.9497043921062268e-5,5.134105271121149e-8,0.0030578844960596806,-2.9229485363525857e-5,5.092940536552576e-8,0.0030579714726823846,-2.9020378842860718e-5,5.060856308901679e-8,0.00305799430929109,-2.890783769790072e-5,5.0436246780448754e-8,0.0030580024833647516,-2.8900743931462217e-5,5.042530128741445e-8,0.0030580398139917744,-2.8981793723107103e-5,5.0548579370877406e-8,0.0030581349144192635,-2.9117796452997896e-5,5.075489270553819e-8,0.0030582989710085853,-2.927092112731661e-5,5.0986296117823764e-8,0.00305852838098303,-2.9406906130383003e-5,5.1190589621726315e-8,0.00305880913029923,-2.9499417804318987e-5,5.132784410791377e-8,0.0030591209014314944,-2.9531615236497716e-5,5.1372652866946216e-8,0.003059440241717404,-2.949633831159525e-5,5.131434068941656e-8,0.00305974298908132,-2.9395907947313022e-5,5.1156659354477445e-8,0.0030600065090859636,-2.9241933794825013e-5,5.091753916282965e-8,0.00306021229511157,-2.9054948323373344e-5,5.062856693783168e-8,0.003060349177847135,-2.8863199511689882e-5,5.033312632870034e-8,0.003060416814008068,-2.8699745555567035e-5,5.008188395273282e-8,0.0030604284223485962,-2.8597283966096064e-5,4.992478512143156e-8,0.0030604111977471983,-2.858098323762389e-5,4.990002248696701e-8,0.0030604029204521956,-2.8660871126497475e-5,5.002240613766968e-8,0.0030604443802250266,-2.8826475438747818e-5,5.027527520898142e-8,0.0030605691021830185,-2.9046441406551585e-5,5.061009175503469e-8,0.00306079346737266,-2.927436144349517e-5,5.0955543464884993e-8,0.0030611106463299936,-2.945974872572592e-5,5.123445153963956e-8,0.003061490627398194,-2.9561147187201426e-5,5.1383839021491824e-8,0.0030618866932196325,-2.9557585511589545e-5,5.137235223398255e-8,0.0030622468460100747,-2.9455021239405097e-5,5.1209933881528055e-8,0.0030625273270125427,-2.9285654512983767e-5,5.0946554534423536e-8,0.0030627045011972953,-2.909970499319971e-5,5.065943900038011e-8,0.003062781223049597,-2.8951506243513924e-5,5.043168206571564e-8,0.0030627851170516554,-2.8884214842026012e-5,5.032886811317642e-8,0.003062759221135395,-2.8918582214671775e-5,5.038203695084455e-8,0.0030627487734678108,-2.9049687038960627e-5,5.0582911500186546e-8,0.0030627893702877065,-2.9251814457828465e-5,5.0891584468485985e-8,0.0030629003148716434,-2.9488179827505706e-5,5.1251525998749074e-8,0.0030630839037973016,-2.972103318011528e-5,5.160504457192073e-8,0.0030633288315558426,-2.9918997653759335e-5,5.190441062046527e-8,0.003063615124797014,-3.0060785653816723e-5,5.211739828811116e-8,0.003063918729338474,-3.013609360645597e-5,5.222854366679751e-8,0.003064214995878956,-3.014497667576545e-5,5.223815136496016e-8,0.0030644811540353513,-3.0096760320048008e-5,5.2160662139867385e-8,0.003064698316991432,-3.0009023509637796e-5,5.202315302953461e-8,0.0030648536429064674,-2.990656924730143e-5,5.1863784882354814e-8,0.0030649429933266646,-2.9819741475536308e-5,5.1729180727117875e-8,0.0030649738454125133,-2.9781167475517766e-5,5.166933721709507e-8,0.0030649674206902153,-2.98201748061254e-5,5.172897531156119e-8,0.0030649581828044383,-2.9955006804012056e-5,5.19355879701887e-8,0.0030649887015580467,-3.0184701153387606e-5,5.2287079973691934e-8,0.0030650993228122743,-3.048438554024296e-5,5.274472973817438e-8,0.0030653151426291397,-3.080799959377198e-5,5.3237545317571995e-8,0.0030656356436287177,-3.109971429626911e-5,5.36798936350581e-8,0.003066032397083313,-3.131062399609393e-5,5.3997123564829124e-8,0.0030664566457068772,-3.141392264624986e-5,5.414878191396371e-8,0.003066853673243906,-3.141241782904111e-5,5.414000445922996e-8,0.003067178107954643,-3.1336255718859404e-5,5.401782535141934e-8,0.003067405017322031,-3.123297452844401e-5,5.385569119674471e-8,0.0030675342967685115,-3.115406523908855e-5,5.3732673458228506e-8,0.0030675883450696387,-3.1142126616185284e-5,5.3713731593782084e-8,0.003067604598905477,-3.122165258980363e-5,5.3835712946092174e-8,0.0030676253853558076,-3.139518885501176e-5,5.41016984091395e-8,0.0030676878955794595,-3.164514859820826e-5,5.448403678006608e-8,0.0030678167760080873,-3.1940102956282886e-5,5.4934156079083943e-8,0.00306802082106185,-3.22432379520567e-5,5.539556794925043e-8,0.0030682938008947383,-3.252038055262967e-5,5.581610023286302e-8,0.003068618188348601,-3.2745712319185725e-5,5.6156527333722295e-8,0.0030689700372110436,-3.290455445210272e-5,5.63947158589191e-8,0.0030693235621584002,-3.299368835276426e-5,5.652604281911584e-8,0.0030696546829265168,-3.302018003318915e-5,5.656158441311524e-8,0.003069943501781531,-3.299964329710182e-5,5.652548727111865e-8,0.0030701761356594238,-3.295448884467991e-5,5.6452316329964884e-8,0.0030703464351241215,-3.2912168983386934e-5,5.6384348797087725e-8,0.0030704579205523843,-3.290292724600728e-5,5.6368046064395786e-8,0.0030705257705411666,-3.2956240209135014e-5,5.6448491101539555e-8,0.003070577902929506,-3.3095212754677564e-5,5.666072725949836e-8,0.003070653303256023,-3.332901887976236e-5,5.7018206275630994e-8,0.0030707954675129484,-3.3645317050531466e-5,5.750131258839977e-8,0.003071040281409215,-3.4006866132882734e-5,5.805237688321617e-8,0.003071401442066699,-3.435724590922433e-5,5.858460257890024e-8,0.003071860664240823,-3.463707718078335e-5,5.900700173455468e-8,0.003072369948294953,-3.4805077484133635e-5,5.9256687131385314e-8,0.0030728668933984586,-3.4853323968064e-5,5.932224867940723e-8,0.00307329574470014,-3.4808729472292477e-5,5.9245906426521214e-8,0.0030736238628414326,-3.472127382584356e-5,5.910521892617646e-8,0.0030738476136962186,-3.4646440956723325e-5,5.898583976281836e-8,0.0030739883560582247,-3.462984017376718e-5,5.895772090868357e-8,0.0030740829181741033,-3.46981445897087e-5,5.906122528438606e-8,0.0030741729261370603,-3.485661305223858e-5,5.930354340403719e-8,0.0030742957031104122,-3.509154811261891e-5,5.966276668283171e-8,0.0030744779277463736,-3.537572740023708e-5,6.00964697542749e-8,0.0030747323559975367,-3.5675189893930766e-5,6.055223916889516e-8,0.003075057487670119,-3.5956061174078274e-5,6.097812908001633e-8,0.0030754397046584866,-3.619027550379833e-5,6.133134047523962e-8,0.0030758570531433604,-3.6359408441814945e-5,6.158398173260262e-8,0.0030762836935755364,-3.645637499575067e-5,6.17255797130405e-8,0.0030766941332692503,-3.6485215974385064e-5,6.176270393282051e-8,0.00307706662715048,-3.645952970605651e-5,6.17165520944473e-8,0.0030773855806581914,-3.64002479832436e-5,6.161954383422073e-8,0.0030776432027652626,-3.63332416409525e-5,6.151163570192726e-8,0.003077840759611733,-3.628682113866609e-5,6.143643256726638e-8,0.003077989627912044,-3.628885788142236e-5,6.143667890109774e-8,0.0030781120193623807,-3.6363006241524466e-5,6.154837667649236e-8,0.0030782405956229293,-3.652349964920907e-5,6.179278977302228e-8,0.0030784153961581056,-3.6768720995789186e-5,6.216668724687254e-8,0.003078676287039924,-3.707542807113103e-5,6.263368664319519e-8,0.0030790504999446576,-3.739763323181358e-5,6.312273725650803e-8,0.0030795385416962856,-3.767491089624212e-5,6.354097060212617e-8,0.0030801063485889927,-3.7851372011602716E-05,6.380282181650783e-8,0.003080691860843348,-3.789839797156401e-5,6.3864909335135015E-08,0.0030812263089583505,-3.782804205247127e-5,6.374660437345014e-8,0.0030816595018051856,-3.768799022595951e-5,6.352218567186832e-8,0.003081975175275685,-3.754141745986299e-5,6.328960513196501e-8,0.0030821904003572086,-3.7444257862379394e-5,6.313520651894206e-8,0.003082343638281676,-3.743069219176931e-5,6.311124043335557e-8,0.0030824800552818033,-3.7509564541134194e-5,6.323047245576145e-8,0.0030826400072475326,-3.7668452785068254e-5,6.347276711043042e-8,0.003082852413765722,-3.788093848520992e-5,6.379661295313797e-8,0.003083132266538477,-3.811403698482697e-5,6.415076333549884e-8,0.0030834808667202927,-3.833449478651092e-5,6.448396137955909e-8,0.0030838877341181153,-3.8513714836371074e-5,6.475242681002939e-8,0.0030843336004778847,-3.8631288755844996e-5,6.49251538042667e-8,0.003084794042322366,-3.867707285475078e-5,6.49869875714132e-8,0.0030852433321181686,-3.865183435490819e-5,6.49395475346079e-8,0.0030856581339217173,-3.856655888053119e-5,6.48001336398034e-8,0.0030860206460516367,-3.844058492853828e-5,6.459884806542256e-8,0.0030863208771382037,-3.8298947069799535e-5,6.437449277747022e-8,0.0030865580404335806,-3.816935596666206e-5,6.416988298112212e-8,0.0030867412223701774,-3.807898089265322e-5,6.402682842646071e-8,0.0030868893766480983,-3.8050984731237867e-5,6.398072676630348e-8,0.0030870304944824955,-3.810068561233592e-5,6.405462439468387e-8,0.003087199430753806,-3.823122572618231e-5,6.425261522376926e-8,0.0030874333446925814,-3.842914766591009e-5,6.455320872359164e-8,0.0030877636895722525,-3.866159342862816e-5,6.490525234810125e-8,0.0030882049718960573,-3.887836166676586e-5,6.523127311346362e-8,0.003088743561312213,-3.9022341755227606e-5,6.544356507347711e-8,0.003089333590640843,-3.904860755320145e-5,6.547348840413299e-8,0.0030899071036917716,-3.894510170953161e-5,6.530322358465656e-8,0.0030903979050176593,-3.8742004346281896e-5,6.498015271661827e-8,0.003090767228006569,-3.8501181533249536e-5,6.460049051721142e-8,0.0030910160608724553,-3.8290854101103754e-5,6.426997931057188e-8,0.0030911786470456865,-3.816087723268984e-5,6.406549047523721e-8,0.003091304636594572,-3.81308943961482e-5,6.401668515462453e-8,0.0030914415331645385,-3.819243835001492e-5,6.410948319588161e-8,0.003091624053373996,-3.831851468248846e-5,6.430123035197483e-8,0.0030918706623143453,-3.8474104361764894e-5,6.453722136219927e-8,0.0030921846709144477,-3.8624255014770126e-5,6.476330985906157e-8,0.0030925572633731823,-3.8739191826344275e-5,6.493373044917373e-8,0.0030929709124494467,-3.879722444333691e-5,6.501542077873879e-8,0.003093402731555433,-3.8786312162609277e-5,6.499027635350036e-8,0.0030938277663450082,-3.870467412242986e-5,6.485599547202599e-8,0.0030942222139669767,-3.856054410640383e-5,6.462566902485165e-8,0.003094566519648795,-3.8371053174280506e-5,6.432606100579885e-8,0.0030948481721392368,-3.816012347433993e-5,6.399436069664364e-8,0.003095063804553022,-3.795541247827492e-5,6.36734419165358e-8,0.003095220250846101,-3.778464042825393e-5,6.34061366452044e-8,0.003095334440344874,-3.76716671513097e-5,6.322910755980504e-8,0.00309543208101415,-3.76325912073004e-5,6.316677889485286e-8,0.0030955450293822886,-3.767217508425234e-5,6.32258396731875e-8,0.003095707183071852,-3.778095740397159e-5,6.339090801722296e-8,0.00309594862334514,-3.793365750566644e-5,6.36222778804018e-8,0.003096287931628474,-3.80901905074783e-5,6.385770713701393e-8,0.0030967236941520254,-3.8201303672671125e-5,6.402124536059043e-8,0.003097228280907147,-3.822036947682624e-5,6.404140759803494e-8,0.0030977490184312755,-3.8120022723220564e-5,6.387670810024808e-8,0.0030982210755350135,-3.7907147081520453e-5,6.353864073301886e-8,0.0030985900761617553,-3.762610731223205e-5,6.309655120907573e-8,0.0030988336384995293,-3.734434007536094e-5,6.265523738702239e-8,0.003098968816215725,-3.7126254709522466e-5,6.231441792645098e-8,0.003099041425769494,-3.7010331236075636e-5,6.213318613669418e-8,0.0030991055833493103,-3.7000963291756114e-5,6.211747094970239e-8,0.0030992057850765756,-3.707503307238412e-5,6.223050579274813e-8,0.0030993681475792695,-3.719515769679686e-5,6.241367766141261e-8,0.0030996000182369945,-3.7321886461173106e-5,6.260562024590069e-8,0.0030998940056717068,-3.742152940130405e-5,6.275433238229519e-8,0.003100233021590866,-3.7469791909199243e-5,6.282264287237035e-8,0.0031005946146256498,-3.74527865541713e-5,6.278957087078115e-8,0.0031009543309571943,-3.7366892039579344e-5,6.264995951136436e-8,0.003101288498980592,-3.721816385706405e-5,6.241351573364313e-8,0.0031015767979117176,-3.702139137135275e-5,6.210337620395833e-8,0.0031018047687390517,-3.679862687950359e-5,6.175387343947005e-8,0.0031019661991720264,-3.657686241831285e-5,6.140695022313485e-8,0.0031020649564957345,-3.638462538015085e-5,6.110684934249384e-8,0.0031021156285978737,-3.624768225270253e-5,6.089338495755532e-8,0.003102142484188417,-3.6184428286903e-5,6.079473351831937e-8,0.0031021765631752685,-3.620172937410701e-5,6.082097958568538e-8,0.0031022510076930674,-3.629208197157182e-5,6.095979473559371e-8,0.0031023950750430954,-3.643289906673445e-5,6.117550104443778e-8,0.0031026275545373554,-3.658852828809345e-5,6.141241349154455e-8,0.0031029505897565103,-3.6715498961018746e-5,6.160314515690131e-8,0.0031033454561945222,-3.677128760644678e-5,6.168223979401771e-8,0.0031037725875075316,-3.672594194239396e-5,6.160407633853862e-8,0.0031041783170027994,-3.6573890333345214e-5,6.13609507617016e-8,0.0031045091130757767,-3.634081561194844e-5,6.099349544356457e-8,0.0031047297909969312,-3.607980110758601e-5,6.058452494813771e-8,0.0031048374201034855,-3.585494963702326e-5,6.023352619407363e-8,0.003104862516995215,-3.5718644691785436e-5,6.002135737673514e-8,0.003104856093193385,-3.569405931092349e-5,5.998319444364333e-8,0.0031048700872880267,-3.577137790618058e-5,6.010288490586609e-8,0.003104941604094109,-3.5916960865466545e-5,6.032745899023271e-8,0.00310508658575867,-3.608784938858073e-5,6.058987181278256e-8,0.003105301813939656,-3.6244129061960325e-5,6.082825896614451e-8,0.0031055709169320175,-3.6355939860998774e-5,6.099670423139435e-8,0.003105870647986892,-3.6405690275413666e-5,6.106846533436347e-8,0.0031061756914431407,-3.638750956805874e-5,6.103492926911871e-8,0.0031064618740461935,-3.630572623697611e-5,6.090315332297189e-8,0.0031067083897661323,-3.617327510332381e-5,6.069340518034317e-8,0.0031068996748370463,-3.6010179052804656e-5,6.043687697777326e-8,0.0031070273067826453,-3.5841809895788134e-5,6.017304374810048e-8,0.003107091924907097,-3.569640763286369e-5,5.994580924865879e-8,0.003107104690948129,-3.5601421586642455e-5,5.979775912534584e-8,0.0031070874280543044,-3.557871974140187e-5,5.976263364692894e-8,0.0031070705639987084,-3.563939705212548e-5,5.985721638430891e-8,0.00310708845076731,-3.577953751271076e-5,6.007479140748683e-8,0.0031071724854550274,-3.597857902840596e-5,6.0382741421625e-8,0.003107343449944664,-3.620155104969642e-5,6.072622362437715e-8,0.0031076051132779385,-3.640540195274204e-5,6.10381901744192e-8,0.0031079410880545904,-3.6548419234103456e-5,6.125412657583635e-8,0.0031083163328670636,-3.6600797795219e-5,6.132843658673388e-8,0.003108683776045806,-3.655377779638129e-5,6.12484672972554e-8,0.0031089953478281146,-3.642449473760269e-5,6.104178540723422e-8,0.0031092151923365167,-3.6254006005909544e-5,6.077284786520125e-8,0.003109331132111241,-3.6097367552710236e-5,6.052739707346827e-8,0.00310935954808475,-3.6007610042852635e-5,6.038750927329051e-8,0.0031093404361101393,-3.601917120844064e-5,6.04059490162074e-8,0.0031093239113226005,-3.6137917913298556e-5,6.059089030936383e-8,0.003109354124427072,-3.6341991680345246e-5,6.090751315544337e-8,0.0031094576079410963,-3.6591899919457295e-5,6.12939239128099e-8,0.003109639723574992,-3.684400498898479e-5,6.168222747975021e-8,0.003109888172433052,-3.706155993675539e-5,6.201562972733295e-8,0.003110179865335902,-3.7220522609188814e-5,6.225730522644977e-8,0.0031104876813696455,-3.731061864999249e-5,6.239184703464731e-8,0.00311078539719096,-3.733367074941028e-5,6.242252235980394e-8,0.0031110506840359895,-3.730106234421321e-5,6.236728729470829e-8,0.003111266829818254,-3.723134017143124e-5,6.225510727514509e-8,0.0031114239398752712,-3.7148181411718e-5,6.212287206499815e-8,0.0031115201531575613,-3.7078419428024274e-5,6.201236188919679e-8,0.003111562975299694,-3.7049500972479054e-5,6.196625586571644e-8,0.003111570240611829,-3.7085775629295866e-5,6.20222732746493e-8,0.0031115696907623807,-3.720350361712773e-5,6.220533256957703e-8,0.003111595961660061,-3.740535774526301e-5,6.251900193071125e-8,0.0031116842348012787,-3.7676298720104116e-5,6.293919212979045e-8,0.0031118612256879658,-3.798340020650173e-5,6.341407163920447e-8,0.003112136139777003,-3.828150901245256e-5,6.387306782824209e-8,0.003112495379209596,-3.852427301854293e-5,6.424415997620797e-8,0.003112903926884855,-3.867726198381603e-5,6.447432367142958e-8,0.0031133136874417224,-3.872848224078679e-5,6.454579824951314e-8,0.0031136761793375063,-3.8692456923064395E-05,6.448222652228261e-8,0.0031139554371912236,-3.860656882561176e-5,6.434267804320025e-8,0.0031141372703484766,-3.8521032659985596e-5,6.420576709598722e-8,0.0031142324513703736,-3.848555621137015e-5,6.414873497201981e-8,0.003114273122112332,-3.85363882869955e-5,6.422732768153216e-8,0.0031143034616922818,-3.868736365238427e-5,6.446208120483557e-8,0.0031143674207793413,-3.892758353008189e-5,6.483503018920008e-8,0.003114497459059395,-3.9226240381586666e-5,6.529750515880651e-8,0.0031147078121036174,-3.954245370409532e-5,6.578559894383833e-8,0.00311499378960663,-3.983627974908429e-5,6.623730004445356e-8,0.0031153360888836355,-4.007726426013293e-5,6.660567612073376e-8,0.0031157075151952004,-4.024868825724295e-5,6.686529743458914e-8,0.00311607947574405,-4.034776414925683e-5,6.701237492469503e-8,0.0031164267230209515,-4.038331710088937e-5,6.706105409678788e-8,0.0031167301083817336,-4.037260325837689e-5,6.703845169512361e-8,0.003116977890976981,-4.033831580823609e-5,6.698004129434217e-8,0.0031171663505323325,-4.030610095786534e-5,6.692583316158584e-8,0.0031173002857739405,-4.030233658179883e-5,6.691691302618574e-8,0.0031173935830516013,-4.035158745219613e-5,6.699141672014888e-8,0.003117469472534857,-4.047311163717984e-5,6.71790093138832e-8,0.0031175594775110223,-4.067616621474953e-5,6.749354678239481e-8,0.0031176996760878236,-4.095478103045957e-5,6.792501578391407e-8,0.003117923245200117,-4.1284097202451735e-5,6.843400804444655e-8,0.003118249965451604,-4.162156390749211e-5,6.895378532468487e-8,0.0031186762577232225,-4.1915651713568604e-5,6.940399276282996e-8,0.0031191714040973333,-4.212116830683181e-5,6.971456663709166e-8,0.0031196840741649716,-4.2215346438736336e-5,6.985077033810668e-8,0.003120157847027817,-4.220674667049533e-5,6.98269624957057e-8,0.0031205489414833265,-4.2132362620646234e-5,6.97018734876997e-8,0.0031208383916512266,-4.20448327662397e-5,6.955836204462521e-8,0.003121034785095203,-4.199616018547974e-5,6.947774286240719e-8,0.003121168632125931,-4.202421267565137e-5,6.951862361251391e-8,0.0031212820770698153,-4.214528318978495e-5,6.970544612819716e-8,0.0031214177248149594,-4.235306877230772e-5,7.002722768273191e-8,0.0031216092731973467,-4.2622792035729374e-5,7.044435725304227e-8,0.0031218754919343627,-4.2918580516760454e-5,7.090035608149642e-8,0.0031222181803268524,-4.320209457310386e-5,7.133539946884241e-8,0.003122623947005099,-4.344044848734895e-5,7.169857291254788e-8,0.00312306884485219,-4.361179467816571e-5,7.195639886437939e-8,0.003123524289638139,-4.370774340490241e-5,7.209642624241596e-8,0.0031239626656890764,-4.373282262997294e-5,7.21262580887302e-8,0.0031243615440335547,-4.3701909396077086e-5,7.206948965492392e-8,0.0031247061538028763,-4.3636780471882876e-5,7.196033443639855e-8,0.0031249903765416783,-4.356272900897019e-5,7.183837800351165e-8,0.0031252168682957006,-4.3505688790359626e-5,7.174410685588453e-8,0.0031253968441908885,-4.348975073626395e-5,7.17150048965672e-8,0.0031255497310814042,-4.35346390742139e-5,7.178155313739291e-8,0.00312570246406995,-4.3652662272077505e-5,7.196242839516862e-8,0.0031258876523310264,-4.384487979547073e-5,7.225856364534224e-8,0.003126139361453899,-4.409699636109416e-5,7.26468964950289e-8,0.003126485461480311,-4.437689592985936e-5,7.307674195249288e-8,0.003126937079372063,-4.4637120813428204e-5,7.347383911846252e-8,0.003127478854765807,-4.482535361453673e-5,7.375675854161458e-8,0.0031280666690904416,-4.490213927602775e-5,7.386449999496449e-8,0.0031286382404406153,-4.4858518891369295e-5,7.37839353542856e-8,0.0031291344460409416,-4.472272685316552e-5,7.356017852034121e-8,0.0031295207052957296,-4.455029894921475e-5,7.328095575302624e-8,0.0031297969026368396,-4.440289276125083e-5,7.304320913549977e-8,0.0031299925059136854,-4.4327735522592144e-5,7.292069128837017e-8,0.0031301525953489643,-4.4346566926362245e-5,7.294663172919162e-8,0.003130323040755186,-4.44552245163689e-5,7.311334170083266e-8,0.0031305398839340287,-4.463002091424208e-5,7.338260528006618e-8,0.00313082404631057,-4.483652215332876e-5,7.369977824422968e-8,0.0031311803606072124,-4.503787355813529e-5,7.400698484506922e-8,0.0031315994383132096,-4.5201450522542784e-5,7.425347439859536e-8,0.0031320612381614877,-4.530356848674249e-5,7.440279963037097e-8,0.0031325396046175753,-4.533218545978504e-5,7.443682235158883e-8,0.003133007088926917,-4.528754210138793e-5,7.435654510846008e-8,0.003133439334571156,-4.51809403698077e-5,7.41801159799911e-8,0.003133818472273233,-4.503213230381495e-5,7.393873233871031e-8,0.003134135205289634,-4.486591093923118e-5,7.367133504974223e-8,0.0031343895555660316,-4.470855447784281e-5,7.34190699593144e-8,0.003134590575431148,-4.4584622562577654e-5,7.322027017012072e-8,0.0031347554245567386,-4.451420562905288e-5,7.310611312884732e-8,0.0031349080100163845,-4.451044644791041e-5,7.309669605942408e-8,0.0031350771198854635,-4.457710742852157e-5,7.319723119373661e-8,0.0031352936217133444,-4.47060605212665e-5,7.339422020383135e-8,0.0031355858958112227,-4.487510826442938e-5,7.365224958348347e-8,0.003135972822388433,-4.5047645339306655e-5,7.391369496033267e-8,0.0031364549294214225,-4.517674188187485e-5,7.410524949995039e-8,0.003137006880828943,-4.521608014150156e-5,7.415499865583744e-8,0.0031375773084138556,-4.513707215275879e-5,7.401903658596108e-8,0.003138101428611319,-4.494515854131807e-5,7.370680978793502e-8,0.0031385245037932065,-4.468383466731007e-5,7.328731665396651e-8,0.0031388241332245405,-4.441996388809048e-5,7.286597138629206e-8,0.003139017499846824,-4.421722026618582e-5,7.254276438257211e-8,0.003139150157383647,-4.411342074013215e-5,7.237653893372397e-8,0.0031392756212672386,-4.411288523762928e-5,7.237306272266767e-8,0.003139437968769991,-4.4192948719133804e-5,7.249557334607343e-8,0.0031396632755686426,-4.431658177299298e-5,7.268500837724008e-8,0.0031399588406845693,-4.444412071309936e-5,7.287870894461722e-8,0.0031403166737552367,-4.454122642373622e-5,7.302295817715162e-8,0.0031407183126958165,-4.4583109623867075e-5,7.307944575839242e-8,0.0031411394477191415,-4.4556196731207386e-5,7.302762227868937e-8,0.0031415539994911366,-4.445830099035177e-5,7.28647417048713e-8,0.003141937728993228,-4.429775179132686e-5,7.260437295376374e-8,0.0031422713373744243,-4.4091609934731785e-5,7.227358181570472e-8,0.0031425429027575314,-4.386309308749254e-5,7.190893225978437e-8,0.0031427494576673834,-4.363836426557965e-5,7.155149576181157e-8,0.0031428974772572276,-4.3442976873453624e-5,7.124128957024562e-8,0.003143002214192302,-4.329843267004607e-5,7.101185038058907e-8,0.003143086052266109,-4.321920239699395e-5,7.088551186228275e-8,0.0031431760678829164,-4.3210361139567735e-5,7.086966698763124e-8,0.0031433008971223707,-4.3265945431617366e-5,7.09542336198036e-8,0.003143486895319873,-4.336813785078726e-5,7.111052058211447e-8,0.0031437533847702066,-4.348759147027911e-5,7.12919612296051e-8,0.0031441069213620117,-4.358585463469756e-5,7.143813366953108e-8,0.003144535476545944,-4.362139298757207e-5,7.148429942205696e-8,0.003145005091611609,-4.3560203673701036e-5,7.137795505629189e-8,0.003145463126681861,-4.3389675112285365e-5,7.11003324650128e-8,0.003145851574927433,-4.3129979926205826e-5,7.068402441148508e-8,0.0031461283507413433,-4.2833959953962696e-5,7.021264040871186e-8,0.003146286100171612,-4.257032356693477e-5,6.979432110562806e-8,0.0031463558591178996,-4.239669820392884e-5,6.951932082306872e-8,0.003146392327049763,-4.233819904869464e-5,6.942631862677053e-8,0.0031464507043553205,-4.2383168839997224e-5,6.94958958380317e-8,0.0031465688651928546,-4.249459392815535e-5,6.966883115670779e-8,0.0031467612849682977,-4.262689345829094e-5,6.987285185595196e-8,0.0031470222789782287,-4.273918499304871e-5,7.004366315740973e-8,0.0031473330289561153,-4.2802158807808166e-5,7.013567759431403e-8,0.003147668417268007,-4.279983806022786e-5,7.01245308551207e-8,0.0031480021049310764,-4.272860133319068e-5,7.00052672228628e-8,0.0031483099313495784,-4.259528124034335e-5,6.978916831189976e-8,0.0031485723125253334,-4.241509647530167e-5,6.950045735299453e-8,0.0031487761173877083,-4.2209454417396814e-5,6.917289890407978e-8,0.0031489161538580373,-4.2003459881328945e-5,6.884596295593158e-8,0.003148996162170557,-4.1822953882087386e-5,6.856021556609623e-8,0.003149028978654053,-4.169106752864223e-5,6.835188836388549e-8,0.003149035482429731,-4.162464544196019e-5,6.824720046102467e-8,0.003149042199251593,-4.163112014627014e-5,6.825739085675065e-8,0.00314907771956232,-4.170639233813112e-5,6.837538674971382e-8,0.0031491682653819867,-4.18342132313785e-5,6.857492364962827e-8,0.0031493329122884942,-4.198742613049102e-5,6.881267918772647e-8,0.003149579039836493,-4.213120402571019e-5,6.903358555963276e-8,0.0031498986271138838,-4.2228420130555436e-5,6.91794432100356e-8,0.0031502664228729867,-4.2247298350746497e-5,6.920097199180307e-8,0.003150641701734798,-4.217078712182122e-5,6.907238815589541e-8,0.0031509754961388586,-4.200545381164349e-5,6.880509810771359e-8,0.0031512238608324395,-4.1785638196682574e-5,6.845392811745735e-8,0.0031513640821730364,-4.1567794289340616e-5,6.810802378555436e-8,0.003151406157010707,-4.141327484247085e-5,6.786370323995615e-8,0.0031513912510576945,-4.136560918026271e-5,6.778876311671728e-8,0.003151375804577231,-4.1434395174820625e-5,6.789730029476199e-8,0.0031514098642566202,-4.159482257943738e-5,6.81492342574456e-8,0.0031515215625475173,-4.18012216288661e-5,6.847194098192803e-8,0.0031517136174996478,-4.200494130433833e-5,6.878861599395965e-8,0.0031519692707481077,-4.216756787951769e-5,6.903911030241721e-8,0.003152261517243071,-4.2266490087485424e-5,6.918851693440988e-8,0.0031525610670786637,-4.229461685062819e-5,6.922644943555905e-8,0.0031528414655990046,-4.22573706176436e-5,6.9162068457332e-8,0.003153081775375267,-4.216923255662013e-5,6.901853417953314e-8,0.0031532678798198805,-4.205077312180638e-5,6.882835975902144e-8,0.0031533932546355388,-4.192616457967239e-5,6.862959482793142e-8,0.0031534595708972847,-4.1820803001536924e-5,6.84621653927876e-8,0.0031534770784778826,-4.175861379115542e-5,6.836364650161207e-8,0.0031534643622982412,-4.17588032667655e-5,6.836409543908077e-8,0.0031534468701465957,-4.183228856251606e-5,6.848035579602831e-8,0.003153453782052926,-4.197854007215975e-5,6.871105220452271e-8,0.003153513263736754,-4.218384148552481e-5,6.903390427614672e-8,0.0031536467429532566,-4.242196322172231e-5,6.940693592124387e-8,0.003153863430347162,-4.265783483101526e-5,6.977446531891138e-8,0.003154156585993926,-4.285397543340932e-5,7.007742427316526e-8,0.00315450279718283,-4.2978622186424466e-5,7.026625449926472e-8,0.0031548650041122103,-4.301400854080456e-5,7.031388230440871e-8,0.00315519943918034,-4.296289169347691e-5,7.022577473855363e-8,0.003155465859320983,-4.285109888117147e-5,7.00436294628589e-8,0.0031556391659936065,-4.272394847220358e-5,6.983943122484468e-8,0.0031557188612724523,-4.263555517927237e-5,6.969842457165365e-8,0.0031557317728420436,-4.263280101975123e-5,6.969387032889604e-8,0.0031557249027450757,-4.2739520543408744e-5,6.98623192302485e-8,0.0031557498994496218,-4.294833096833603e-5,7.019104128047928e-8,0.00315584589866597,-4.322452786249621e-5,7.062447804376743e-8,0.0031560287243041687,-4.3519737897634517e-5,7.108598411323216e-8,0.003156290210848438,-4.378791545601902e-5,7.150311106554863e-8,0.0031566054069980037,-4.3996660675542415e-5,7.182534984786604e-8,0.0031569423808284628,-4.4131253208340974e-5,7.203026754938302e-8,0.003157270337523358,-4.4192994871844845e-5,7.212064457656072e-8,0.003157564470837877,-4.419496903596624e-5,7.211761487890475e-8,0.003157808015852627,-4.415761251223253e-5,7.205364259861087e-8,0.0031579926823708912,-4.4105138784809375e-5,7.196695049477917e-8,0.0031581184957774153,-4.406285452731199e-5,7.189738913692536e-8,0.003158193599416625,-4.4054911516432865e-5,7.188294750699247e-8,0.003158234031798483,-4.4101897275740684e-5,7.195593087373301e-8,0.003158263018098467,-4.421788006294162e-5,7.213822712040806e-8,0.003158309054218505,-4.440704337455989e-5,7.243594276621938e-8,0.0031584021289597524,-4.466069514352587e-5,7.283470938809992e-8,0.0031585679463628875,-4.495603322513259e-5,7.329786169090022e-8,0.003158821045759386,-4.5258255933040026e-5,7.37699600181512e-8,0.003159158924190263,-4.5526890236963015e-5,7.418696615489833e-8,0.0031595597943583466,-4.572549126524957e-5,7.44916678688917e-8,0.003159985788919604,-4.5832004494916494e-5,7.465002833083531e-8,0.003160391467505701,-4.5846244908167024e-5,7.466284408960723e-8,0.003160735390904223,-4.5791651761595475e-5,7.456824370500927e-8,0.003160991329864051,-4.5710340506587154e-5,7.443354724124745e-8,0.0031611557652805296,-4.56525958579643e-5,7.433840211999739e-8,0.0031612493653574466,-4.566356507695597e-5,7.43536688058528e-8,0.0031613116320375638,-4.577082683019708e-5,7.452191859422641e-8,0.00316138983687732,-4.5976704493927694e-5,7.484561016922063e-8,0.0031615255351170207,-4.625816721714404e-5,7.52873081576349e-8,0.00316174330606514,-4.6574539940815696e-5,7.578215147025375e-8,0.0031620456464795553,-4.687999059605023e-5,7.625769376845123e-8,0.003162415165519021,-4.713588347181678e-5,7.665335200741533e-8,0.003162822036835446,-4.731880660958561e-5,7.693289460631574e-8,0.0031632329785881486,-4.7422738256966696e-5,7.708762391075058e-8,0.0031636185498555743,-4.7456548574135615e-5,7.713222429686289e-8,0.003163957394531511,-4.743930170684533e-5,7.709723112409955e-8,0.003164237749092535,-4.7395460395258866e-5,7.702145770310557e-8,0.0031644572629982944,-4.735103026805132e-5,7.694598016390119e-8,0.0031646221440750945,-4.733077694987257e-5,7.690981863864776e-8,0.003164746262745098,-4.735610332844896e-5,7.694660644621445e-8,0.003164850315648308,-4.744295341822404e-5,7.708123668442743e-8,0.003164960615211108,-4.7599282087552986e-5,7.732580598792541e-8,0.00316510674443353,-4.7822150507262595e-5,7.767502077308712e-8,0.0031653173075884386,-4.809522158373371e-5,7.810233831505504e-8,0.003165613500816317,-4.8388234367153477e-5,7.855932068502407e-8,0.003166001527547761,-4.8660505245747866e-5,7.898136490858256e-8,0.0031664667240323473,-4.886967395690606e-5,7.930165483686465e-8,0.0031669732473650035,-4.898427913808119e-5,7.947106008168446e-8,0.0031674717018881997,-4.899555012818512e-5,7.94766938590658e-8,0.0031679131839261526,-4.892263568963575e-5,7.934999749978144e-8,0.0031682643359964833,-4.8808002238974886e-5,7.91591853553536e-8,0.0031685171259444567,-4.8704610129976645e-5,7.898863798646383e-8,0.003168689888016564,-4.866027347872532e-5,7.891391738685978e-8,0.0031688203554882553,-4.870497925930795e-5,7.898168134647224e-8,0.0031689541483683986,-4.884458925824059e-5,7.919995944645049e-8,0.003169132666912061,-4.90615415154104e-5,7.953967154409288e-8,0.0031693835370994743,-4.932123743816433e-5,7.994513150365482e-8,0.0031697155633991425,-4.958174182690445e-5,8.034963065946353e-8,0.0031701188096189092,-4.9803993111668386e-5,8.069160780662406e-8,0.0031705690690595756,-4.995993501816825e-5,8.092735112553882e-8,0.0031710349046023332,-5.003685841512912e-5,8.103761860361142e-8,0.003171484997353245,-5.003758483585365e-5,8.10276899103105e-8,0.0031718939250299756,-4.997743721292307e-5,8.092241368604767e-8,0.0031722454763997874,-4.98796363572316e-5,8.075886678430627e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json new file mode 100644 index 0000000..841a3de --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":21000,"numberOfSamples":1000,"samples":[0.0031725336341924394,-4.9770637985046546e-5,8.057900832626396e-8,0.0031727619720193665,-4.967631255249218e-5,8.042370582661394e-8,0.0031729423213677447,-4.961918610821703e-5,8.032842301827844e-8,0.003173093301004051,-4.9616439750269165e-5,8.032005503717977e-8,0.0031732388512125246,-4.9678142521825614e-5,8.04140915834666e-8,0.003173406461172115,-4.980531114277095e-5,8.061152056197695e-8,0.003173624434517486,-4.998780080363393e-5,8.089554409980637e-8,0.0031739174410596086,-5.02027153676187e-5,8.122921958837977e-8,0.0031743000569504428,-5.0414905317985565e-5,8.155645946622467e-8,0.0031747693572844707,-5.058170552271261e-5,8.1809696462639e-8,0.003175299754099858,-5.066328166614758e-5,8.192630588543693e-8,0.003175844728509721,-5.06368615606572e-5,8.187106223913913e-8,0.003176348378152092,-5.0508762136083794e-5,8.16550486069026e-8,0.0031767639923363524,-5.0316402748498936e-5,8.133866443459827e-8,0.0031770709661550177,-5.011689791600365e-5,8.101329428919594e-8,0.0031772811274633317,-4.9967147620633346e-5,8.076944687326912e-8,0.003177432030673561,-4.9905479367471625e-5,8.066745206192551e-8,0.003177572270523811,-4.994259580574966e-5,8.072317955227706e-8,0.003177746439699948,-5.0063033684474547e-5,8.091070950808379e-8,0.0031779848344744835,-5.0233470557248106e-5,8.117598151931799e-8,0.0031782992076989803,-5.0413262606724425e-5,8.145387798184555e-8,0.003178683508504494,-5.056397454491497e-5,8.168346678500409e-8,0.0031791178624765563,-5.0656360805938936e-5,8.181895509495128e-8,0.003179574229733301,-5.067436252240991e-5,8.183576329438713e-8,0.003180022490647086,-5.0616168724939576e-5,8.173192449420742e-8,0.0031804358927458322,-5.049270511433461e-5,8.152548156884965e-8,0.0031807950553075313,-5.0324297904340744e-5,8.124910490024964e-8,0.0031810901697997096,-5.013646650496189e-5,8.094342997127281e-8,0.003181321456190578,-4.995570801310683e-5,8.065043893174666e-8,0.0031814982527144423,-4.9805917795511555e-5,8.040785329190629e-8,0.0031816373210504898,-4.970574993088201e-5,8.024497887522197e-8,0.0031817608717426495,-4.9666782981278536e-5,8.017978161620004e-8,0.0031818944706078238,-4.969213348437762e-5,8.021665586604609e-8,0.003182064656150664,-4.977526990474911e-5,8.034455083019423e-8,0.0031822958582123618,-4.9899054210053294e-5,8.053555151866265e-8,0.0031826060765792474,-5.00355420814562e-5,8.074475516704612e-8,0.0031830011463665404,-5.014786026254351e-5,8.091345990457809e-8,0.0031834686693217383,-5.0195995982255704e-5,8.097846711663703e-8,0.0031839746468371897,-5.01475748419181e-5,8.088913626890179e-8,0.0031844673261262986,-4.999173257679851e-5,8.062922765445895e-8,0.003184891172592454,-4.974957666882377e-5,8.023331134917238e-8,0.0031852075073160895,-4.9472597723993216e-5,7.978406694492346e-8,0.0031854111053174357,-4.922574084934537e-5,7.938518959159813e-8,0.0031855320833315435,-4.9062718900561163e-5,7.912193983519057e-8,0.003185621952271365,-4.9007423813544054e-5,7.903149987919705e-8,0.003185733140730741,-4.905026352546958e-5,7.909733195325303e-8,0.003185903073154297,-4.915750209942922e-5,7.926446313102022e-8,0.0031861477150601954,-4.9285511618747645e-5,7.946261622724468e-8,0.0031864630412842053,-4.9393086955828754e-5,7.962606325736776e-8,0.0031868305582437354,-4.944910682330027e-5,7.970578335261417e-8,0.0031872237417380285,-4.9435815064372105e-5,7.967442526435043e-8,0.003187613799646374,-4.934910556784959e-5,7.952642648280632e-8,0.0031879743406409483,-4.919701658863508e-5,7.927535204629794e-8,0.0031882849181979036,-4.899707191619981e-5,7.894954072044581e-8,0.0031885333705692622,-4.8772886247731465e-5,7.85867133852273e-8,0.0031887169235430774,-4.8550472591157195e-5,7.82281831475899e-8,0.0031888421191353347,-4.8354611885566905e-5,7.791317453714298e-8,0.0031889236591736768,-4.820561826479776e-5,7.767373204135999e-8,0.003188982392912168,-4.811685191685343e-5,7.753076281390647e-8,0.0031890428229633568,-4.80931088914721e-5,7.749144001256398e-8,0.003189130371339149,-4.8129751866914776e-5,7.754779717892457e-8,0.0031892684093893045,-4.821248076042052e-5,7.767640704932689e-8,0.003189474936144377,-4.8317827589117846e-5,7.78393091488724e-8,0.003189758740824415,-4.841472688601514e-5,7.798671830001753e-8,0.0031901151496382964,-4.846801130205281e-5,7.806277470675716e-8,0.0031905224205677797,-4.844497532884705e-5,7.801604196463123e-8,0.003190941284990858,-4.8325353983456495e-5,7.781525298490396e-8,0.0031913210506145494,-4.811258839800113e-5,7.746697340533311e-8,0.0031916141519961177,-4.784055752540146e-5,7.702604990677442e-8,0.003191795418319783,-4.7568255887754585e-5,7.658695371946121e-8,0.0031918755740832448,-4.73600221174305e-5,7.625217949764229e-8,0.003191898603829455,-4.725988960279658e-5,7.609132297246147e-8,0.0031919229650166662,-4.7275184045738147e-5,7.611500607230232e-8,0.003191998333085281,-4.737827479416436e-5,7.62779363395227e-8,0.0031921508881996145,-4.752216804202383e-5,7.65041794434679e-8,0.003192381393929433,-4.765854984268982e-5,7.671628736820805e-8,0.0031926718219546014,-4.7750056416319196e-5,7.685497758163076e-8,0.003192994371773742,-4.7775167613736925e-5,7.688676322707986e-8,0.0031933191121518447,-4.7727892633397725e-5,7.680310882032987e-8,0.0031936191057208192,-4.761498877639121e-5,7.661565929511285e-8,0.0031938734231599622,-4.74525826505499e-5,7.635065824624502e-8,0.0031940688710230926,-4.7262880918771545e-5,7.60436847923047e-8,0.0031942008964133926,-4.707097737875328e-5,7.573466367930087e-8,0.0031942737606263116,-4.6901719035824056e-5,7.546299629687368e-8,0.003194299972841271,-4.6776661718682426e-5,7.526278957837741e-8,0.003194298887206334,-4.6711226468842323e-5,7.51583342891208e-8,0.003194294386829285,-4.671240074914931e-5,7.516039741374076e-8,0.0031943118407074603,-4.6777394668392805e-5,7.526403312546946e-8,0.0031943746893159835,-4.6893437644436546e-5,7.544826377873212e-8,0.0031945009495270385,-4.7038759907479775e-5,7.567773903852656e-8,0.0031946998830175675,-4.7184820903478814e-5,7.590646855791671e-8,0.0031949691011137634,-4.729986237129749e-5,7.608369607755573e-8,0.0031952925157211496,-4.735397448743149e-5,7.616211706606225e-8,0.003195640046002511,-4.7325873413935426e-5,7.610866131565764e-8,0.0031959707011487326,-4.721084275969199e-5,7.591694218179518e-8,0.0031962407678702612,-4.7027544120006907e-5,7.561778712416466e-8,0.0031964172220154555,-4.68193172139658e-5,7.528100427078354e-8,0.003196492459990767,-4.664522204584982e-5,7.500092425591764e-8,0.003196492024360513,-4.6560407478603466e-5,7.486507180241458e-8,0.0031964677331033607,-4.6593856889802264e-5,7.491877034751068e-8,0.003196477403032644,-4.673659702635629e-5,7.514654134177191e-8,0.0031965625176653793,-4.694773588519694e-5,7.548204705047288e-8,0.0031967362693748544,-4.717322873987367e-5,7.583837429474331e-8,0.003196985533609338,-4.73651776342118e-5,7.613905990916508e-8,0.0031972812138878572,-4.74929888958597e-5,7.633588427653374e-8,0.003197589462630078,-4.7545490933105095e-5,7.64119965822908e-8,0.0031978796496195555,-4.752757942989125e-5,7.637620017022061e-8,0.00319812848863574,-4.745512493931714e-5,7.625453549820702e-8,0.00319832144886984,-4.73503257355979e-5,7.608275219379998e-8,0.003198452856742482,-4.723812082730018e-5,7.590064580016247e-8,0.0031985255501511783,-4.7143356527051194e-5,7.57476813144896e-8,0.0031985502819583764,-4.708825806567633e-5,7.565908112945316e-8,0.003198544736531598,-4.708995351933302e-5,7.566191375034777e-8,0.0031985318797554075,-4.7158036203798245e-5,7.577116598009077e-8,0.0031985373474858482,-4.729251335254058e-5,7.598640463765804e-8,0.003198585869566576,-4.7482775567525455e-5,7.629010685976644e-8,0.003198697155597323,-4.77081476564717e-5,7.664860219081877e-8,0.0031988819238857836,-4.794029858008897e-5,7.701607636820799e-8,0.003199138852327985,-4.8147471043280815e-5,7.734153154992998e-8,0.003199453210956632,-4.830010600773658e-5,7.757794512375888e-8,0.003199797758983186,-4.8377126251611665e-5,7.769236057072432e-8,0.0032001363178023106,-4.8371976704389703e-5,7.767540881795748e-8,0.0032004303140051693,-4.829716076321788e-5,7.754825940028813e-8,0.0032006480922657813,-4.818534649742223e-5,7.736402060215561e-8,0.0032007754503471137,-4.8084736666072045e-5,7.720004750070717e-8,0.0032008237523528764,-4.804734673697885e-5,7.713910918442968e-8,0.0032008304786310298,-4.811209016681051e-5,7.724247975155619e-8,0.0032008488052868407,-4.828932206014769e-5,7.75255161602495e-8,0.0032009288771208118,-4.8555592301733185e-5,7.794960329169746e-8,0.0032010998408043487,-4.886272668875077e-5,7.843695977208304e-8,0.003201361960637265,-4.915635461273817e-5,7.89004476629134e-8,0.0032016912406135044,-4.939361188750261e-5,7.927192014721211e-8,0.0032020513707647475,-4.955240233850549e-5,7.951689650027676e-8,0.003202405716929175,-4.963141986809062e-5,7.963431614369855e-8,0.003202725094131901,-4.964474472975755e-5,7.96475824883057e-8,0.0032029909049170156,-4.961523348656123e-5,7.959378125967193e-8,0.0032031952157390927,-4.9569099471490336e-5,7.951497736532009e-8,0.003203339535741044,-4.9532218017991734e-5,7.945241230521701e-8,0.003203433394698867,-4.9527674213515084e-5,7.944273135170713e-8,0.003203493051170196,-4.9573859322178696e-5,7.951503476725994e-8,0.0032035401504446515,-4.968261143955701e-5,7.968790885396807e-8,0.003203599881864006,-4.9857248372708116e-5,7.996622623173358e-8,0.0032036981474841027,-5.009083623491609e-5,8.033833401588e-8,0.003203857560932273,-5.036549668524096e-5,8.077497791863144e-8,0.003204092697562571,-5.0653692877754714e-5,8.123148677107812e-8,0.003204405679190628,-5.092213317310819e-5,8.165420910353239e-8,0.0032047836194003913,-5.1138171334250516e-5,8.199093925766638e-8,0.0032051993388942314,-5.1277508026645685e-5,8.220333981594443e-8,0.0032056159214573134,-5.1331152612609345e-5,8.227803147217174e-8,0.003205994476325643,-5.130950962968257e-5,8.223291039616594e-8,0.0032063034747539243,-5.124205747668012e-5,8.211628608958799e-8,0.0032065274675029567,-5.117202959915313e-5,8.199800522314307e-8,0.0032066727907678195,-5.114661833837934e-5,8.195353656090792e-8,0.003206768020942503,-5.120449980278048e-5,8.204400434520673e-8,0.003206857735831905,-5.1363916576045276e-5,8.229736031489842e-8,0.0032069901253816147,-5.161569359479557e-5,8.269759795845019e-8,0.0032072020803685336,-5.192501441612641e-5,8.318797642795423e-8,0.0032075077397297554,-5.2242393867866604e-5,8.368882847285539e-8,0.0032078955532431,-5.251946367429561e-5,8.412289258504691e-8,0.0032083345384939406,-5.272262269658563e-5,8.443706503733802e-8,0.0032087857334492185,-5.2839458337762004e-5,8.461246000974382e-8,0.0032092132683576424,-5.287735806351859e-5,8.466190722367029e-8,0.003209591378752329,-5.285732676741347e-5,8.461980304623928e-8,0.0032099067777057117,-5.28068081968459e-5,8.45304822826286e-8,0.0032101578456377655,-5.275393921740916e-5,8.443903221733049e-8,0.0032103524731652163,-5.272386017376191e-5,8.438550073902889e-8,0.003210505786562472,-5.273660287213019e-5,8.440164096217491e-8,0.0032106382225371155,-5.280577247081059e-5,8.450886182259405e-8,0.0032107738321281018,-5.293736316606222e-5,8.471631689347386e-8,0.0032109383060951215,-5.312841217033488e-5,8.501870672494748e-8,0.0032111560978738906,-5.3365752533195204e-5,8.53942849508674e-8,0.0032114462795934918,-5.362571089155793e-5,8.580446840164302e-8,0.003211817437324192,-5.3875979778961625e-5,8.619700739786424e-8,0.003212262941595191,-5.408075100149098e-5,8.651439387397291e-8,0.0032127589082548043,-5.42090965214644e-5,8.670741201761251e-8,0.003213267160170133,-5.4244595572723914e-5,8.675057308886833e-8,0.0032137438024166646,-5.419248668805494e-5,8.665344939450431e-8,0.003214151231767454,-5.4080711291759844e-5,8.646208359285265e-8,0.0032144693035585834,-5.395352361443707e-5,8.624839037585663e-8,0.003214701461565474,-5.385958237500533e-5,8.609072790016972e-8,0.003214873783886847,-5.383864063516811e-5,8.605238679805011e-8,0.0032150276171485034,-5.391105610832501e-5,8.616487457733809e-8,0.003215208326315366,-5.4072889410851724e-5,8.642041535988369e-8,0.0032154533705997484,-5.429755486548332e-5,8.677506471248515e-8,0.0032157828754069747,-5.4543390211428154e-5,8.716123185097693e-8,0.0032161952720170784,-5.47649828140714e-5,8.750601063943785e-8,0.0032166691643119804,-5.492483570390711e-5,8.7749822276115e-8,0.003217170484883344,-5.500177601999277e-5,8.785966932376333e-8,0.0032176621369899984,-5.499386164298536e-5,8.783350388091249e-8,0.0032181127441866936,-5.491583634520034e-5,8.76958803060696e-8,0.003218502126948113,-5.479314994168618e-5,8.748819344576886e-8,0.0032188229483265337,-5.465521433334049e-5,8.72578166749344e-8,0.0032190794757014783,-5.452988429357098e-5,8.704931644272088e-8,0.0032192849457666393,-5.443991014971355e-5,8.689888287838887e-8,0.003219458734952503,-5.440110974291796e-5,8.683149639470852e-8,0.003219623918717538,-5.442154904813298e-5,8.685964506488469e-8,0.0032198052118412182,-5.45010330062948e-5,8.698248405259667e-8,0.0032200268668433098,-5.463053766414709e-5,8.718490554543236e-8,0.0032203099278025797,-5.479171920972871e-5,8.743680309860852e-8,0.0032206683696555803,-5.4957218224956276e-5,8.769370344416006e-8,0.003221104252445989,-5.509302127948437e-5,8.790074530833945e-8,0.0032216031987040658,-5.516423932315975e-5,8.800209652952139e-8,0.003222132914621037,-5.514457142603367e-5,8.795617458979574e-8,0.003222647901010924,-5.502711200558859e-5,8.775290593353369e-8,0.0032231013851103294,-5.483131338436564e-5,8.74247239172623e-8,0.003223460966712298,-5.4600702849415643e-5,8.704264763661174e-8,0.003223720696988658,-5.43901749473945e-5,8.66955543476372e-8,0.0032239032022557705,-5.4248004296358326e-5,8.646099319840247e-8,0.003224051050262102,-5.4200944786757004e-5,8.638114273675721e-8,0.003224212268778945,-5.424827912428962e-5,8.645345453958669e-8,0.0032244265358801734,-5.4365234327404105e-5,8.663660081008881e-8,0.003224716276502034,-5.451231450454134e-5,8.686597920410975e-8,0.003225083737911467,-5.4646403659949004e-5,8.707189019189658e-8,0.0032255131188312245,-5.473059972318432e-5,8.719538813836393e-8,0.0032259761006378034,-5.4741087113638165e-5,8.719911679190398e-8,0.0032264390598020325,-5.467034723233956e-5,8.707212789604444e-8,0.003226870334335864,-5.452668660564738e-5,8.682879510984012e-8,0.0032272460710804887,-5.4330699940323715e-5,8.65029138253738e-8,0.0032275536298945894,-5.4109915442819836e-5,8.613902532997006e-8,0.003227792304669776,-5.389313593906661e-5,8.5783374691673e-8,0.0032279718677233277,-5.370570458175747e-5,8.547642058179856e-8,0.003228109845550558,-5.356634066004432e-5,8.524786544988952e-8,0.003228228456413095,-5.348557339633553e-5,8.511420042723426e-8,0.0032283518197443535,-5.346531342893715e-5,8.507801310989298e-8,0.0032285035568127823,-5.349896832429377e-5,8.512814037196994e-8,0.003228704536722173,-5.357174984312455e-5,8.524016481482288e-8,0.0032289703539402797,-5.366119984972382e-5,8.537735462686527e-8,0.00322930813206437,-5.373842092470895e-5,8.549282323459017e-8,0.003229712689921856,-5.377103839587337e-5,8.553448506801853e-8,0.0032301631836865975,-5.3729107718665944e-5,8.545465152637074e-8,0.0032306227277087924,-5.359428799950994e-5,8.522472059019744e-8,0.0032310441986026,-5.337012969281068e-5,8.48515280839209e-8,0.0032313836582013745,-5.30879790841398e-5,8.438660592029636e-8,0.0032316176061930268,-5.280197806460897e-5,8.391790250084734e-8,0.0032317548261706127,-5.2571609399665335e-5,8.354146004605948e-8,0.0032318343808087915,-5.243934120871027e-5,8.332524114371036e-8,0.00323190997001867,-5.24157284474321e-5,8.328513968311465e-8,0.003232029903870015,-5.247922773889295e-5,8.33849749888785e-8,0.0032322230037252673,-5.2587959715898925e-5,8.355594128527012e-8,0.0032324945300250224,-5.269508974157829e-5,8.372185756843382e-8,0.0032328299476484103,-5.2761097382812485e-5,8.381914925073835e-8,0.0032332022647684135,-5.2760565068347416e-5,8.380767128683809e-8,0.0032335796804347913,-5.268412304439345e-5,8.367349551296979e-8,0.003233931955256522,-5.2537170491451925e-5,8.342645104170425e-8,0.00323423510297691,-5.2336755010051395e-5,8.309480474079313e-8,0.003234474406802793,-5.210743061617814e-5,8.271847665355266e-8,0.0032346457437325534,-5.187668488346703e-5,8.234172294838152e-8,0.003234755280902423,-5.167055575138879e-5,8.200621219761825e-8,0.003234817807050895,-5.150997501251897e-5,8.174527616602243e-8,0.00323485410132211,-5.140821394599531e-5,8.157988013641992e-8,0.0032348878601373273,-5.1369622605597356e-5,8.15166024002056e-8,0.003234942697918216,-5.138953284328997e-5,8.154743911983669e-8,0.00323503947037617,-5.1454958354580704e-5,8.16508993774942e-8,0.0032351938886941546,-5.154582187779148e-5,8.179401797604287e-8,0.0032354142832091816,-5.16366609641141e-5,8.193524012891515e-8,0.003235699333554656,-5.1699018157927345e-5,8.202847891428973e-8,0.0032360358332845078,-5.170513116825102e-5,8.202923924758582e-8,0.003236397395298634,-5.163367599192616e-5,8.190391001440081e-8,0.0032367460274376706,-5.147751296830587e-5,8.164208997353886e-8,0.003237038911014802,-5.125146075858404e-5,8.126881868503913e-8,0.0032372413519731985,-5.099546813545693e-5,8.084938120768122e-8,0.0032373424767896393,-5.076735769152771e-5,8.04773994266105e-8,0.003237364737593232,-5.0623575968753e-5,8.024369261604461e-8,0.0032373583817348877,-5.0595930934664296e-5,8.01987556722749e-8,0.0032373814263608053,-5.067835383782129e-5,8.033154293976049e-8,0.0032374767927001143,-5.0831888417986464e-5,8.05778502518239e-8,0.0032376595358681605,-5.100299476696643e-5,8.08503013355666e-8,0.0032379179830066707,-5.1142929781694154e-5,8.106998345596535e-8,0.0032382234578475634,-5.121949714913483e-5,8.118548183125027e-8,0.0032385413765336594,-5.1220034229706235e-5,8.117745244402647e-8,0.0032388396301233986,-5.1148784000511076e-5,8.105395968506553e-8,0.00323909343633175,-5.1022080757357263e-5,8.084232217504016e-8,0.003239287476598087,-5.086344596635564e-5,8.058099601387515e-8,0.003239416418574005,-5.06993062299847e-5,8.031267394281034e-8,0.0032394844711164405,-5.055531403368913e-5,8.007849327535253e-8,0.0032395041778899027,-5.0453203864372276e-5,7.991313554603084e-8,0.003239494528968082,-5.0408228290502986e-5,7.98408045445796e-8,0.0032394784475627734,-5.0427301336513986e-5,7.987225828658261e-8,0.003239479791896909,-5.050810067219918e-5,8.000332058699083e-8,0.0032395202194974377,-5.063931236648878e-5,8.021522493846629e-8,0.003239616293252338,-5.080193546123921e-5,8.047671952390412e-8,0.003239777049036872,-5.097147176821398e-5,8.074769163503124e-8,0.003240002171167665,-5.112088531384368e-5,8.098412232278307e-8,0.0032402808961741075,-5.122423243494423e-5,8.114415044682696e-8,0.0032405918090109447,-5.126100829262938e-5,8.119521335082708e-8,0.003240904131438615,-5.122133435508816e-5,8.112236888320618e-8,0.003241181684719136,-5.111146117220087e-5,8.093692711688671e-8,0.003241390622446391,-5.095766931217798e-5,8.068237971757372e-8,0.0032415106650658305,-5.080520775946731e-5,8.04323546602781e-8,0.003241546514068598,-5.070868740467566e-5,8.027494782684523e-8,0.0032415324844812794,-5.071373081832885e-5,8.028313812372978e-8,0.003241523709398545,-5.083705921425271e-5,8.048281634683229e-8,0.0032415751240446157,-5.1057319994444045e-5,8.083823631077988e-8,0.003241719537245258,-5.132391935969942e-5,8.126660197144499e-8,0.0032419576140943988,-5.157842278878715e-5,8.167296421774885e-8,0.0032422632301883753,-5.177516910115313e-5,8.198373070848606e-8,0.0032425973491017465,-5.189151237656024e-5,8.216316480911329e-8,0.003242921385633165,-5.192728220314501e-5,8.221219939811576e-8,0.003243205429064354,-5.1898436692860174e-5,8.215775773060924e-8,0.0032434313058024543,-5.182970678799692e-5,8.204054311489319e-8,0.0032435923938506023,-5.1748673330064326e-5,8.190536290404036e-8,0.0032436920809447035,-5.1681708633171465e-5,8.179466859600291e-8,0.0032437419250657485,-5.165123951677518e-5,8.17443236041018e-8,0.0032437597611700603,-5.167373948957442e-5,8.178051974505204e-8,0.0032437676397874047,-5.1758154968282606e-5,8.191729901686929e-8,0.003243789408658554,-5.190473825027876e-5,8.215464440259327e-8,0.0032438478099100776,-5.2104555505873134e-5,8.247762756783664e-8,0.0032439612563935362,-5.234009583257239e-5,8.28573715553115e-8,0.0032441407595725984,-5.258721229750601e-5,8.325425050664329e-8,0.0032443875424479525,-5.281834024054875e-5,8.36232428780749e-8,0.0032446918276209393,-5.300675228469284e-5,8.392100559929466e-8,0.0032450332255609038,-5.3131371114476176e-5,8.411381289746435e-8,0.00324538295404514,-5.318148371486626e-5,8.418520437848297e-8,0.003245707983573782,-5.316071079859441e-5,8.414223757206918e-8,0.0032459772192329835,-5.3089364431137183e-5,8.401896535485175e-8,0.0032461694781570896,-5.300370532228837e-5,8.387484551908885e-8,0.003246281847351533,-5.2950284714670026e-5,8.37853066862844e-8,0.0032463352544695014,-5.297443793121066e-5,8.382308719834454e-8,0.0032463728424833803,-5.310479309421307e-5,8.403337508404443e-8,0.003246448216996769,-5.333992759564566e-5,8.441256609303461e-8,0.0032466062921121183,-5.364552457477591e-5,8.49040114435253e-8,0.0032468659901151594,-5.396605828032138e-5,8.541718992475005e-8,0.003247214553528512,-5.424562065011762e-5,8.586156956307863e-8,0.003247615679936334,-5.444642162568678e-5,8.617657458590432e-8,0.003248024912597425,-5.455655514944839e-5,8.634399975468773e-8,0.003248403432332568,-5.458687626580262e-5,8.638262859372707e-8,0.0032487255353343303,-5.4562352771310106e-5,8.633386467620277e-8,0.00324898008935198,-5.451326661190067e-5,8.624724859115626e-8,0.0032491685238771285,-5.4468896133598934e-5,8.617020704301661e-8,0.0032493017385686698,-5.44538837415368e-5,8.614231992982142e-8,0.0032493972235823195,-5.448639212370825e-5,8.619253072529561e-8,0.0032494766715691,-5.4577106999117414e-5,8.633766110669544e-8,0.003249563821635595,-5.4728537878472483e-5,8.658130339795376e-8,0.0032496821379050258,-5.4934496846960336e-5,8.691293350608795e-8,0.0032498520196944476,-5.5180047124981716e-5,8.730779131766455e-8,0.0032500875683692987,-5.544249647615775e-5,8.772852392629017e-8,0.0032503934051933206,-5.569395062737085e-5,8.812944569042736e-8,0.0032507623946056432,-5.5905572624570456e-5,8.846361811302392e-8,0.0032511752416808635,-5.60531534073218e-5,8.869203900002466e-8,0.0032516027189509527,-5.6122949655416366e-5,8.879316740083876e-8,0.003252010653866079,-5.6116271961945236e-5,8.87702629117698e-8,0.0032523669850277413,-5.605136928982403e-5,8.865417136694602e-8,0.0032526495630223616,-5.596163996267052e-5,8.850004846746351e-8,0.003252852996146235,-5.588978132512746e-5,8.837752315420322e-8,0.0032529925562878982,-5.58782471815996e-5,8.83550511189378e-8,0.003253103082055259,-5.595758026448335e-5,8.848108953757554e-8,0.0032532314776745693,-5.613576384150119e-5,8.876716640678854e-8,0.0032534234568621025,-5.6393001850667115e-5,8.917985280515563e-8,0.0032537084871765787,-5.668575826548498e-5,8.964767779069584e-8,0.0032540894242032077,-5.696017640428366e-5,9.008307761306017e-8,0.00325454214619616,-5.716962075359378e-5,9.041084937999461e-8,0.0032550252674333844,-5.728830620990315e-5,9.059011621990187e-8,0.003255494511827089,-5.731556283163272e-5,9.06209904156305e-8,0.003255914883576044,-5.7271048375594106e-5,9.0536487245569e-8,0.003256266746644497,-5.71854418674298e-5,9.03871423788393e-8,0.003256546050101389,-5.709145577327869e-5,9.022629331978918e-8,0.003256761198809244,-5.701770488175832e-5,9.010018411835402e-8,0.0032569290319573213,-5.6985589687069876e-5,9.004308407198988e-8,0.0032570712782715805,-5.700820517414628e-5,9.007569729439265e-8,0.003257211829634789,-5.709019855395602e-5,9.02050273070369e-8,0.003257374555642879,-5.722785472994945e-5,9.042451477474267e-8,0.0032575811280771455,-5.740918789972536e-5,9.07141464433097e-8,0.0032578484112563417,-5.761434937787547e-5,9.104111671626653e-8,0.003258185352705804,-5.781702102123823e-5,9.136217618930464e-8,0.0032585898547709312,-5.7987501554828986e-5,9.162880083070914e-8,0.003259046711760422,-5.8097856157750106e-5,9.179571951463989e-8,0.0032595281106661137,-5.812865707175766e-5,9.183195308320635e-8,0.003259997899742414,-5.807559874358659e-5,9.173151942039728e-8,0.003260419534272522,-5.7953377600878414e-5,9.151954278320197e-8,0.003260765818064894,-5.7794560130481856e-5,9.125009531413922e-8,0.0032610273094332534,-5.7642803315349266e-5,9.099481763997835e-8,0.0032612163205118245,-5.754195090058938e-5,9.082492438170712e-8,0.0032613648222029144,-5.752416949150301e-5,9.07918667306029e-8,0.0032615165714595593,-5.7600716096652344e-5,9.09125486368035e-8,0.003261715522120589,-5.7758163232549566e-5,9.116362370356967e-8,0.003261993680028687,-5.796146329096944e-5,9.148694570509478e-8,0.0032623620293660872,-5.8163394938097374e-5,9.180524978805767e-8,0.003262807665272582,-5.8317766793719975e-5,9.20437012761951e-8,0.0032632983134054426,-5.839199548958222e-5,9.215020451540345e-8,0.0032637924706452283,-5.8374669624859956e-5,9.210741718701442e-8,0.0032642511156409566,-5.827592207902026e-5,9.193302480930112e-8,0.0032646467560847373,-5.8121634092867766e-5,9.167002565308534e-8,0.003264967464613854,-5.794476140729533e-5,9.137245205768258e-8,0.0032652161360441057,-5.777729029325265e-5,9.109227604970783e-8,0.0032654068966987506,-5.764485386744147e-5,9.087078295628466e-8,0.003265560763456718,-5.756421591411039e-5,9.073466938213295e-8,0.0032657018358711034,-5.754278131830879e-5,9.069539608026732e-8,0.0032658544101094944,-5.757911789189286e-5,9.075008999633211e-8,0.0032660408074434333,-5.766372839766714e-5,9.088277448331733e-8,0.003266279396647697,-5.777976701135738e-5,9.106550153542938e-8,0.003266582301739539,-5.790395532285883e-5,9.12598753635655e-8,0.0032669526451217174,-5.80083795326496e-5,9.142009964322477e-8,0.003267381767555401,-5.8063972041273024e-5,9.149881185930952e-8,0.0032678476163183977,-5.804619770493952e-5,9.145646309337639e-8,0.003268316164476314,-5.79424713012002e-5,9.12733988533491e-8,0.0032687475221006164,-5.7759070899220414e-5,9.096097972973574e-8,0.003269106529960257,-5.7523825509117984e-5,9.056570793575683e-8,0.0032693746058921917,-5.7281393394498796e-5,9.01612217244734e-8,0.0032695575700859222,-5.7081169177186004e-5,8.982829299441299e-8,0.003269685200835826,-5.696205583363011e-5,8.962983858648573e-8,0.003269802214385346,-5.69404396125155e-5,8.959138558936853e-8,0.0032699545344188102,-5.700604476264368e-5,8.969464615227079e-8,0.0032701763009091883,-5.7126338282034846e-5,8.988518777066455e-8,0.003270481677542585,-5.725676162404585e-5,9.008956185060092e-8,0.0032708629470038705,-5.735286992395743e-5,9.023531943545998e-8,0.00327129431081459,-5.73809369580062e-5,9.026823726629858e-8,0.003271739599354458,-5.7324683909892404e-5,9.0162995318363e-8,0.0032721614993477402,-5.7187059246788255e-5,8.992569167509696e-8,0.0032725298445275717,-5.698731841848309e-5,8.958873870059514e-8,0.0032728270521627735,-5.675482647236528e-5,8.920055536744774e-8,0.003273049851570274,-5.652171851946322e-5,8.881356947561132e-8,0.0032732076970815966,-5.6316492523811355e-5,8.847388481842329e-8,0.003273319145670565,-5.615979289425225e-5,8.821459453534936e-8,0.0032734076545255755,-5.6062581528121386e-5,8.80529729256984e-8,0.003273497839452653,-5.602614665502433e-5,8.799058220459504e-8,0.003273612612866018,-5.604313201827532e-5,8.801494830994981e-8,0.0032737710867281598,-5.609888691693807e-5,8.81017115844299e-8,0.0032739868282610452,-5.617282175496241e-5,8.821681580619211e-8,0.0032742660365082388,-5.6239927611709573e-5,8.831905491514963e-8,0.003274605453936708,-5.627300819139812e-5,8.836386764965425e-8,0.0032749903608651097,-5.624637481283029e-5,8.830953041101465e-8,0.0032753938061936853,-5.614154823740327e-5,8.812653176627841e-8,0.0032757789936782864,-5.595449360495289e-5,8.78092919463083e-8,0.003276106647287594,-5.5701960526054305e-5,8.738628367074491e-8,0.0032763471421135533,-5.5422576587764e-5,8.692152997987455e-8,0.003276493258995722,-5.516877259292599e-5,8.650115186701256e-8,0.0032765664014518425,-5.499014654352684e-5,8.6206007430559e-8,0.003276610999942624,-5.491529491512299e-5,8.608196484440229e-8,0.00327667876464851,-5.494164014254628e-5,8.612345199946136e-8,0.0032768108494707626,-5.5038149965003114e-5,8.627829358674474e-8,0.0032770262708863127,-5.5157998227194705e-5,8.646888984364038e-8,0.0032773198064892668,-5.525387498988542e-5,8.661760852501955e-8,0.003277667339223204,-5.528988528837087e-5,8.666631731922832e-8,0.0032780346135977243,-5.5247658906088445e-5,8.658614562003795e-8,0.0032783860663120725,-5.512713483912658e-5,8.637835326428021e-8,0.0032786918994025917,-5.494363190933129e-5,8.606912261480339e-8,0.0032789327276445193,-5.472280951801439e-5,8.570104945011115e-8,0.003279101674465376,-5.449476059083265e-5,8.532342409842275e-8,0.0032792040453030104,-5.4288301754132294e-5,8.498301212375031e-8,0.0032792550494914192,-5.4126402494692005e-5,8.471678473867611e-8,0.00327927635003745,-5.402331015253779e-5,8.454741469132955e-8,0.003279292261048445,-5.398344931011103e-5,8.448159405887646e-8,0.0032793262697919023,-5.4001841681931624e-5,8.451073771217038e-8,0.0032793983038223334,-5.406554644950239e-5,8.461328637466328e-8,0.003279522775013503,-5.4155543035676e-5,8.475773055077884e-8,0.0032797071337421773,-5.4248736184423704e-5,8.490590178054932e-8,0.0032799506498463736,-5.432014534373688e-5,8.501666483516674e-8,0.003280243299674806,-5.434560660615751e-5,8.505051210231342e-8,0.003280565004985942,-5.430549748269372e-5,8.497579494488648e-8,0.003280886168989561,-5.4189871664097075e-5,8.47771184438119e-8,0.003281171139090372,-5.4004474659509736e-5,8.446499011144445e-8,0.003281386101154559,-5.377533480404946e-5,8.408301336304262e-8,0.0032815110470657827,-5.354778435894943e-5,8.370597725390225e-8,0.003281551525320081,-5.3376005048922325e-5,8.342256462979238e-8,0.0032815423544261006,-5.3303997698127796e-5,8.330417977081286e-8,0.0032815375199139597,-5.334662167257096e-5,8.337402779899631e-8,0.003281589425999078,-5.3482477388724635e-5,8.359571772677401e-8,0.003281729077837722,-5.366347603158219e-5,8.388931201996357e-8,0.0032819577992785165,-5.383448660629819e-5,8.416390530143764e-8,0.003282252028816867,-5.3951461208844274e-5,8.434755805679241e-8,0.003282575064733863,-5.399087527054447e-5,8.440270284958065e-8,0.0032828888308288045,-5.395041499415586e-5,8.432692167156779e-8,0.0032831620823933123,-5.384442525035143e-5,8.414501783308623e-8,0.003283374577592845,-5.369758720472906e-5,8.389827797025655e-8,0.0032835182149421297,-5.3538900495709054e-5,8.363445972132653e-8,0.003283596317507677,-5.3396677990892325e-5,8.339967143688218e-8,0.0032836217594359217,-5.3294597136367996e-5,8.323212142857587e-8,0.0032836142689651616,-5.3248868881598726e-5,8.31577096068053e-8,0.0032835972456282487,-5.326663219322064e-5,8.318754756177193e-8,0.003283594445314077,-5.33455619881586e-5,8.331735797629278e-8,0.003283626858166137,-5.34746355750414e-5,8.35286872417797e-8,0.0032837101355881193,-5.363590835227975e-5,8.379175121758466e-8,0.0032838527983820075,-5.3806929427041975e-5,8.406937560267436e-8,0.003284055181100754,-5.396343946274494e-5,8.432148778286718e-8,0.0032843089773761463,-5.40822511951771e-5,8.450998775388706e-8,0.003284597358913076,-5.414438100313206e-5,8.460404446842303e-8,0.003284895834787221,-5.413857912979374e-5,8.458595257932233e-8,0.003285174445296768,-5.406532947278778e-5,8.445757818292492e-8,0.0032854023338345904,-5.3940697089698616e-5,8.424636958756322e-8,0.0032855554831677934,-5.379806390910282e-5,8.400782714837921e-8,0.003285626815766494,-5.3684562539693467e-5,8.38193737194727e-8,0.0032856347701112503,-5.3649414340871245e-5,8.376117760633833e-8,0.0032856235616832005,-5.3725485877918647e-5,8.38860837426238e-8,0.003285650142636974,-5.391249164401037e-5,8.419236027689752e-8,0.0032857616382241683,-5.4173556173630084e-5,8.461836300416228e-8,0.003285976011289329,-5.444965808100916e-5,8.50665090145353e-8,0.003286277545198635,-5.468347961861177e-5,8.544264341871019e-8,0.0032866275363075573,-5.483838580460321e-5,8.568728752895917e-8,0.0032869809330381304,-5.490461627338049e-5,8.578565026164803e-8,0.0032872996339806037,-5.489474335285152e-5,8.575977711296552e-8,0.003287559053510933,-5.48347345844862e-5,8.565341922089876e-8,0.0032877491677817746,-5.475543920672599e-5,8.551775502054806e-8,0.0032878725457978937,-5.4686451467669074e-5,8.540127833973602e-8,0.0032879413934742783,-5.465235422268597e-5,8.534381381044643e-8,0.003287974597188788,-5.4670536130827427e-5,8.53731992403231e-8,0.003287994886136215,-5.474993658443841e-5,8.550343585455102e-8,0.003288026004617243,-5.489052942074253e-5,8.573393033814724e-8,0.0032880898877680324,-5.508355309891816e-5,8.604985500404462e-8,0.003288203921857211,-5.5312587539400495e-5,8.642385409484243e-8,0.0032883785505384453,-5.5555608027442216E-05,8.681938148259401e-8,0.0032886156357365445,-5.578790705412445e-5,8.719554080619211e-8,0.0032889078436774757,-5.5985521987479445e-5,8.751283667062376e-8,0.003289239125545009,-5.612881998939157e-5,8.77392146012537e-8,0.003289586318797038,-5.620594849831879e-5,8.78558281449679e-8,0.0032899218910641607,-5.621585137160659e-5,8.786195042061433e-8,0.0032902179191576634,-5.617054021271309e-5,8.77784760736655e-8,0.0032904515278464005,-5.609599525829377e-5,8.764903319639631e-8,0.003290611690989794,-5.603034994237022e-5,8.753663675600585e-8,0.0032907060886177963,-5.601757230920074e-5,8.751312401969255e-8,0.0032907648315062244,-5.60957001758165e-5,8.763993271030684e-8,0.00329083651219213,-5.628175714456582e-5,8.794367269940098e-8,0.003290973902945432,-5.656023599277606e-5,8.839762192953688e-8,0.003291213321631433,-5.6884077700507716e-5,8.892363541663668e-8,0.003291558763057707,-5.7191191598862794e-5,8.941943124269481e-8,0.0032919809643103797,-5.742839856654776e-5,8.979798297636507e-8,0.0032924313677109907,-5.756902600419823e-5,9.001640079964623e-8,0.0032928611324823196,-5.7616237434723784e-5,9.008120657162066e-8,0.003293234884122227,-5.759476981903807e-5,9.003437623650073e-8,0.003293535602904595,-5.753893290328132e-5,8.993321103832823e-8,0.003293762927268325,-5.7482792094576774e-5,8.983397854989548e-8,0.003293928650397064,-5.745439610101603e-5,8.978246898705095e-8,0.003294052074754002,-5.7473344437337244e-5,8.981023130920463e-8,0.003294156313027807,-5.755021904012821e-5,8.993390698836747e-8,0.0032942654733313977,-5.768674160814335e-5,9.01556607176256e-8,0.0032944022662521263,-5.787621616364838e-5,9.046394738638393e-8,0.003294585697181951,-5.810428412374258e-5,9.083470767938509e-8,0.003294828730883638,-5.835025192829971e-5,9.123350329312376e-8,0.0032951361110117538,-5.858935210068161e-5,9.161924961334033e-8,0.003295502862145243,-5.879608733804884e-5,9.194981099819587e-8,0.0032959140922813155,-5.894836427269165e-5,9.218894166181916e-8,0.003296346501630117,-5.903178845858687e-5,9.2313465377073e-8,0.0032967716942378903,-5.904330752969372e-5,9.231927451156279e-8,0.003297161013652729,-5.8993325195830865e-5,9.222465017716898e-8,0.0032974912528637187,-5.8905595820280855e-5,9.206977518622295e-8,0.0032977504065195102,-5.881449638135142e-5,9.191186754025751e-8,0.003297942473857903,-5.875940209359208e-5,9.181563871498607e-8,0.0032980898714052753,-5.877616173854993e-5,9.183921908280787e-8,0.0032982314957932714,-5.88866346272826e-5,9.201718962789459e-8,0.0032984146833885644,-5.908904162486795e-5,9.23451566292984e-8,0.0032986812779857745,-5.935379884542151e-5,9.277334751463147e-8,0.003299051997951586,-5.962945134656554e-5,9.321663709787946e-8,0.003299516827886728,-5.985901363351853e-5,9.358146928311346e-8,0.0033000378122319263,-5.999998453310655e-5,9.379868554416737e-8,0.003300563468977945,-6.003775679601342e-5,9.384541959529023e-8,0.003301046759699778,-5.9986342425414024e-5,9.374604054768167e-8,0.0033014576765286454,-5.987863396959832e-5,9.355579500500295e-8,0.003301786809054379,-5.975339670750789e-5,9.33390980278829e-8,0.0033020419823445663,-5.964508164161518e-5,9.315264867329e-8,0.0033022421362587082,-5.9578548895871055e-5,9.303685979764736e-8,0.003302411561432909,-5.9567748630520254e-5,9.301394192772079e-8,0.0033025757102160976,-5.961647141519134e-5,9.308938092423752e-8,0.003302758454813665,-5.971971311326604e-5,9.32543085753427e-8,0.003302980149123383,-5.986499809573707e-5,9.348767984635991e-8,0.0033032558966772426,-6.003362496588928e-5,9.375826851834662e-8,0.003303593705146403,-6.0202192353766145e-5,9.402715772445558e-8,0.0033039926166897105,-6.034495084095433e-5,9.425167222522078e-8,0.003304441386900897,-6.043737478577002e-5,9.439138689843304e-8,0.003304918618617791,-6.046082993353868e-5,9.441594479608006e-8,0.0033053952081656575,-6.040751190609572e-5,9.431324511412548e-8,0.0033058394190006372,-6.028418972979809e-5,9.409552551950787e-8,0.0033062239072710452,-6.011307792870043e-5,9.380056022170947e-8,0.0033065329819612454,-5.99287475949815e-5,9.348622559924204e-8,0.003306767914704313,-5.977122717532698e-5,9.321879190076651e-8,0.003306948486177933,-5.9676703637333575e-5,9.305741226162379e-8,0.0033071098761496675,-5.966803032891732e-5,9.303855751819586e-8,0.003307295078633383,-5.974750722150152e-5,9.316446634613662e-8,0.003307544114132092,-5.9894223093106617E-05,9.339925812123948e-8,0.0033078824817017226,-6.006764076265878e-5,9.367527554290179e-8,0.003308312428674662,-6.021771715946743e-5,9.390997219756039e-8,0.003308810868846452,-6.02993136284251e-5,9.402960860305769e-8,0.003309335890088662,-6.028585030600706e-5,9.39915224159716e-8,0.003309839846317023,-6.017646168426142e-5,9.379561381316522e-8,0.003310283495942255,-5.999380790271972e-5,9.348042402784567e-8,0.0033106453888089448,-5.977450811021991e-5,9.310709708273535e-8,0.0033109239015205183,-5.955734946844783e-5,9.273979011758474e-8,0.003311133299984977,-5.937407692846487e-5,9.243051520461885e-8,0.0033112972340637236,-5.924481776115903e-5,9.221178385233012e-8,0.0033114426199441147,-5.917750316763905e-5,9.209590179549796e-8,0.0033115952609545363,-5.9169497804775444e-5,9.207784107991695e-8,0.003311777204723194,-5.920987375766593e-5,9.213904652853273e-8,0.0033120052080999,-5.92814938356559e-5,9.225082851606375e-8,0.003312289594904694,-5.936274846059623e-5,9.237717028262174e-8,0.003312633024578902,-5.942929679557276e-5,9.247760893901174e-8,0.003313029137070735,-5.945642637260442e-5,9.251122688928723e-8,0.0033134615879803833,-5.942257807852542e-5,9.244260873645003e-8,0.0033139044987459776,-5.931413137224047e-5,9.22498336783901e-8,0.0033143255654085853,-5.913063940039792e-5,9.193309185903323e-8,0.003314692523404364,-5.888852657791199e-5,9.152061902109267e-8,0.003314982071759978,-5.862063074863608e-5,9.106765658072329e-8,0.0033151883441194956,-5.836990960235362e-5,9.064573525743296e-8,0.003315327061036844,-5.817820907612507e-5,9.032387007253822e-8,0.003315432756404787,-5.807381239007963e-5,9.014792415786519e-8,0.003315549502730872,-5.80625870862475e-5,9.012617527068651e-8,0.0033157184572218204,-5.8126053541180765e-5,9.022654455023874e-8,0.003315966551858763,-5.8226689676969886e-5,9.038585941639497e-8,0.0033162996332138915,-5.831825523870404e-5,9.052728727571216e-8,0.0033167015288640424,-5.835787971070538e-5,9.058041563143791e-8,0.0033171388754599613,-5.8316694902620264e-5,9.049864230177064e-8,0.003317570199537387,-5.818631498100734e-5,9.026951683504713e-8,0.0033179566224040904,-5.7979533462259516e-5,8.99154851350754e-8,0.0033182710352989515,-5.772533753434543e-5,8.94853309482593e-8,0.003318503156852944,-5.746022504077495e-5,8.903967082003617e-8,0.003318659520612165,-5.721893166409305e-5,8.863565691424088e-8,0.0033187593907932924,-5.7027409664830245e-5,8.831554830627552e-8,0.0033188288152567313,-5.6899447070337116e-5,8.810136402150192e-8,0.0033188949683195744,-5.683663868685322e-5,8.799503967854189e-8,0.0033189820031886176,-5.683044444173091e-5,8.79819251290983e-8,0.0033191086079180677,-5.686498657172212e-5,8.80353851458633e-8,0.0033192868090701146,-5.6919687627007744e-5,8.812108202417043e-8,0.0033195213608058194,-5.6971468212093134e-5,8.820056393045532e-8,0.003319809205334997,-5.6996756676009524e-5,8.823463939940167e-8,0.0033201388682853913,-5.6973850769248384e-5,8.818741927408212e-8,0.0033204901645404743,-5.688617916715095e-5,8.803185327819643e-8,0.0033208351653437364,-5.672667481568836e-5,8.775700668157399e-8,0.0033211417606726764,-5.650258196722333e-5,8.737589343481958e-8,0.0033213807589085697,-5.623860290952227e-5,8.693042466255639e-8,0.003321535704580842,-5.5975194089382036e-5,8.64882803546673e-8,0.003321611779853912,-5.575964063734652e-5,8.612788421461543e-8,0.0033216383488875716,-5.563121550563371e-5,8.591372038897917e-8,0.00332166160133251,-5.560648771923718e-5,8.587208299016034e-8,0.003321729332346463,-5.567246407025703e-5,8.597999999454416e-8,0.0033218749696411454,-5.5791288194139026e-5,8.617344710132884e-8,0.003322108078793622,-5.591357362818337e-5,8.636987047930183e-8,0.003322414074917141,-5.599359775464645e-5,8.649361999558831e-8,0.0033227610657908736,-5.600062818328033e-5,8.649468343439781e-8,0.0033231098129842453,-5.592409172339057e-5,8.635693899550423e-8,0.003323423401229845,-5.577304858807897e-5,8.60968278743868e-8,0.0033236746106560327,-5.5571625019046895e-5,8.57553706414179e-8,0.0033238501378285963,-5.535223551652658e-5,8.538670353148495e-8,0.003323951512978097,-5.5148243821503265e-5,8.504591708672522e-8,0.0033239930515267515,-5.4987516475655016e-5,8.477855814651931e-8,0.003323997693098464,-5.4888022929405465e-5,8.461360179444422e-8,0.0033239919654675055,-5.485601986581888e-5,8.456067453943338e-8,0.0033240012834951657,-5.4886614374086276e-5,8.461111130656435e-8,0.00332404640453801,-5.496599005265156e-5,8.474164448132102e-8,0.003324141328817078,-5.507438956499113e-5,8.491926542726227e-8,0.003324292421254159,-5.5189074106772154e-5,8.510604823670503e-8,0.0033244982624229583,-5.528690636714247e-5,8.526342573891019e-8,0.0033247498139609742,-5.534665974060568e-5,8.5356116539381e-8,0.003325030738318475,-5.535139742517621e-5,8.535622814349039e-8,0.003325318078773487,-5.529132808874682e-5,8.524810407518335e-8,0.0033255840434287193,-5.516732559483926e-5,8.503412127897562e-8,0.003325800025884042,-5.4994500283684165e-5,8.474038755337137e-8,0.003325943636647162,-5.4803921202816106e-5,8.441925947919739e-8,0.003326007954119694,-5.463949661780294e-5,8.414386557641033e-8,0.0033260093929748016,-5.454751850488496e-5,8.39906316797749e-8,0.0033259881913321188,-5.4560143825206843e-5,8.401195873056964e-8,0.0033259972865628765,-5.4680122236649234e-5,8.421112518435034e-8,0.003326082679984568,-5.4876669269890736e-5,8.453576539427439e-8,0.0033262656698723574,-5.509660108184346e-5,8.489670021080734e-8,0.0033265367421952,-5.528454025680654e-5,8.520177547374201e-8,0.0033268625692368203,-5.540089651290604e-5,8.53858406600953e-8,0.0033271997836301316,-5.5430263445104554e-5,8.542454745717457e-8,0.00332750801243725,-5.538020410605459e-5,8.533193941439912e-8,0.0033277582273325535,-5.527451512296222e-5,8.514878834424156e-8,0.0033279360985943923,-5.514504454421498e-5,8.492865234127454e-8,0.0033280417206101223,-5.502443713341801e-5,8.47257264967664e-8,0.0033280872119350394,-5.494062573953781e-5,8.458583816329359e-8,0.0033280931856418602,-5.4913121909954754e-5,8.454056432249686e-8,0.003328084687829209,-5.49510529651956e-5,8.460424445406648e-8,0.003328087119786794,-5.505287514330795e-5,8.477367296994299e-8,0.003328122619004344,-5.520754438276987e-5,8.503008040542494e-8,0.0033282072794208633,-5.539681605654844e-5,8.534289014342119e-8,0.0033283494784650124,-5.559823205385741e-5,8.567459021016955e-8,0.0033285493241682613,-5.5788247308437714e-5,8.5985886311372e-8,0.0033287989546007955,-5.594511202878772e-5,8.624053969095568e-8,0.0033290834152926,-5.605145404558202e-5,8.640978601385084e-8,0.0033293820025522038,-5.609665354800625e-5,8.647641681844645e-8,0.00332967012765513,-5.607914249037254e-5,8.64386360154981e-8,0.003329922108265471,-5.600868372770514e-5,8.63137014691309e-8,0.003330115618151409,-5.590807269377462e-5,8.614043768918587e-8,0.0033302381328333365,-5.58126677029861e-5,8.597808953775239e-8,0.0033302943335076583,-5.5765475825965935e-5,8.589791861426393e-8,0.0033303112431023363,-5.580611329656748e-5,8.596488539474054e-8,0.003330335893358347,-5.595512706192685e-5,8.621187561535514e-8,0.0033304217950196257,-5.620076748901601e-5,8.661809726569148e-8,0.0033306077541668403,-5.649824615334275e-5,8.710815973363818e-8,0.003330900673735715,-5.678551821777345e-5,8.757850948338549e-8,0.0033312733708816735,-5.7007580014031255e-5,8.793794593475561e-8,0.003331677827847687,-5.713506396332166e-5,8.81385544183494e-8,0.0033320641462310304,-5.7168762976044525e-5,8.818303689777447e-8,0.003332394888741356,-5.713232454494835e-5,8.81121521924967e-8,0.003332650948899174,-5.706056072566515e-5,8.79848172366316e-8,0.0033328307387244707,-5.69892054818512e-5,8.786079588531413e-8,0.003332946103134148,-5.6948270940260595e-5,8.7789662082767e-8,0.003333017524013881,-5.695869565914077e-5,8.780546633003202e-8,0.003333069785980845,-5.7031151550971855e-5,8.79250644837299e-8,0.003333128293176569,-5.7166122827538784e-5,8.814848616597651e-8,0.003333215942814037,-5.735486447701515e-5,8.846062555209589e-8,0.003333350526081416,-5.758107712399529e-5,8.883400189972032e-8,0.003333542711568079,-5.782323256543382e-5,8.923255045240708e-8,0.0033337948024626724,-5.805748921759443e-5,8.961641831353482e-8,0.0033341004955474854,-5.826092281925177e-5,8.994735848331943e-8,0.0033344456574180216,-5.8414663420069585e-5,9.019404254409442e-8,0.0033348099763535065,-5.850667539814434e-5,9.033680470762473e-8,0.0033351693972139954,-5.8534013007029704e-5,9.037145788055351e-8,0.0033354992652454255,-5.850435337312846e-5,9.031176994724097e-8,0.003335778150817505,-5.8436628216984924e-5,9.019026948162117e-8,0.0033359924676545083,-5.836033415719681e-5,9.005674088553579e-8,0.003336141696475799,-5.831247259530645e-5,8.99728131408324e-8,0.003336242937122228,-5.833081796090152e-5,9.000064726389226e-8,0.003336332072852576,-5.844314497737879e-5,9.018519988192054e-8,0.003336457993721301,-5.8654611621949015e-5,9.053364701309959e-8,0.003336668034416213,-5.8939341334053395e-5,9.100181248328803e-8,0.0033369886308538366,-5.9243988034202145e-5,9.15003563787348e-8,0.0033374117211466396,-5.950577741976175e-5,9.192485569877443e-8,0.0033378966406314506,-5.9676814334938345e-5,9.219623025373824e-8,0.003338387060585492,-5.974061238822445e-5,9.228818050131115e-8,0.003338832161640395,-5.9712769824558396e-5,9.222809662066525e-8,0.003339200660884803,-5.9629238348668325e-5,9.207713490030904e-8,0.0033394839946629365,-5.9531508527586526e-5,9.19051435138701e-8,0.00333969194933606,-5.9455615021928336e-5,9.177216062406416e-8,0.0033398456958361393,-5.9426735296063406e-5,9.171952556625893e-8,0.0033399714625476887,-5.94580076063395e-5,9.176821138029921e-8,0.0033400959454044452,-5.9551503177061825e-5,9.19207583444299e-8,0.003340243216604815,-5.969991931487511e-5,9.21642828744451e-8,0.003340432528612182,-5.988845372977386e-5,9.247363390315894e-8,0.00334067661964073,-6.009682747560091e-5,9.281470236403697e-8,0.003340980391006287,-6.0301603901974886e-5,9.314821825194654e-8,0.0033413400860247433,-6.047899922745841e-5,9.34344253905957e-8,0.0033417433406987395,-6.0608161718892285e-5,9.363861218700703e-8,0.0033421704338331562,-6.0674530868574566e-5,9.373681434940468e-8,0.003342596793867571,-6.067274472862805e-5,9.372073186756808e-8,0.003342996619504433,-6.060857747387037e-5,9.360092417739725e-8,0.0033433472973181913,-6.049938316515723e-5,9.340736779360886e-8,0.003343634076313921,-6.037265637678459e-5,9.318674843140178e-8,0.003343854352958671,-6.026253039672385e-5,9.29962869527095e-8,0.0033440207974379525,-6.02040503597778e-5,9.289398103642671e-8,0.00334416209570793,-6.0225227664861864e-5,9.292540486542561e-8,0.0033443195738953684,-6.033783862182839e-5,9.310869759814082e-8,0.0033445382535737425,-6.052967926745262e-5,9.342213643036966e-8,0.0033448528768625176,-6.076271261213488e-5,9.380146725962548e-8,0.0033452733341006566,-6.098129519580642e-5,9.415379750598335e-8,0.0033457773304763423,-6.11302103754188e-5,9.43875995339562e-8,0.003346316441695281,-6.117498982465232e-5,9.444642575943193e-8,0.0033468338086486238,-6.111354333006799e-5,9.432810795018451e-8,0.0033472838692474196,-6.097324927755117e-5,9.4079645301939e-8,0.0033476441985163447,-6.0797240704200516e-5,9.377398884436344e-8,0.0033479163084475117,-6.062888070521747e-5,9.348385258171712e-8,0.003348119017326552,-6.050124738963157e-5,9.326410433273226e-8,0.0033482798563691583,-6.043317112036643e-5,9.314535120928058e-8,0.0033484280459571253,-6.0429873261064216e-5,9.313533471622201e-8,0.0033485900303240564,-6.0485597297215256e-5,9.322360188274091e-8,0.0033487870427821647,-6.058650061285441e-5,9.338645264051759e-8,0.003349033779148276,-6.071317745669125e-5,9.359112405668456e-8,0.003349337512154647,-6.084287930407258e-5,9.379941019517652e-8,0.0033496973868342426,-6.0951778738148076e-5,9.39713912066027e-8,0.0033501040189214903,-6.1017654657638296e-5,9.406994902831682e-8,0.003350539852327468,-6.102313701204754e-5,9.406628005534092e-8,0.0033509808424563464,-6.0959184102096446e-5,9.394579478956938e-8,0.0033513997985662727,-6.0828035243102085e-5,9.371305998195274e-8,0.003351771242630648,-6.064464806465786e-5,9.339407682046672e-8,0.0033520770502697586,-6.043567280060645e-5,9.303431185934628e-8,0.0033523115992083793,-6.023549059632611e-5,9.269175686275925e-8,0.0033524849538567095,-6.0079656147178764e-5,9.242570667708549e-8,0.003352622868607595,-5.999683644913714e-5,9.228321247007672e-8,0.0033527629108964156,-6.0000858451751614e-5,9.228598308330152e-8,0.0033529466888537886,-6.0084899028015664e-5,9.242109352946563e-8,0.003353209163212818,-6.0220101719581925e-5,9.263915942649568e-8,0.003353567452423346,-6.036056292024498e-5,9.286301996208644e-8,0.003354013074553909,-6.045506176241125e-5,9.300742375322236e-8,0.003354511938151932,-6.0462793179074204e-5,9.300515855826013e-8,0.003355013937094379,-6.036701837740332e-5,9.282957547814603e-8,0.0033554690078815767,-6.018006277425595e-5,9.250263119120252e-8,0.0033558424476254254,-5.9937221757790955e-5,9.208440293612802e-8,0.0033561228412348943,-5.9683282240027307e-5,9.165030735952862e-8,0.003356320744440452,-5.9458664926667036e-5,9.126781835699132e-8,0.003356461215846782,-5.929059997108527e-5,9.09818074709203e-8,0.0033565749791113304,-5.919060979973586e-5,9.081060603989335e-8,0.0033566915189816907,-5.915640839670276e-5,9.07494897969949e-8,0.0033568350305881473,-5.91755770416691e-5,9.077702401431161e-8,0.003357022613830941,-5.9229226963443656e-5,9.086121990946202e-8,0.003357263701159578,-5.929496452229679e-5,9.096440629587108e-8,0.003357559911226247,-5.934921839576949e-5,9.104702421945221e-8,0.0033579049385909485,-5.9369383956175455e-5,9.1071192375381e-8,0.0033582845835001054,-5.9336313704812116e-5,9.100494733703145e-8,0.00335867744667257,-5.923739982099832e-5,9.082751861971475e-8,0.003359057001605932,-5.906997363720898e-5,9.053508695821385e-8,0.003359395616398978,-5.884413276926084e-5,9.014546329210125e-8,0.003359670484111321,-5.858354614172143e-5,8.96992412648217e-8,0.003359870306372325,-5.83227294745991e-5,8.925494292974744e-8,0.003360000476205311,-5.8100244081356475e-5,8.887733886137964e-8,0.0033600842939887445,-5.794905158876692e-5,8.862112733910623e-8,0.0033601588394004405,-5.7886876867381644e-5,8.851484939281549e-8,0.0033602660797591934,-5.790993390908707e-5,8.85506789176601e-8,0.003360441674025316,-5.799244505104898e-5,8.868407215376571e-8,0.003360704848971143,-5.809247460735285e-5,8.884397868653839e-8,0.003361052408555661,-5.8162610399993446e-5,8.895098477449679e-8,0.0033614587985430038,-5.816263041067814e-5,8.893850581578914e-8,0.003361882595100984,-5.807055435201572e-5,8.877103313526498e-8,0.0033622778382321966,-5.788851232418176e-5,8.845357733079992e-8,0.003362606646946412,-5.764123357960088e-5,8.802875740347297e-8,0.003362848722009863,-5.736772166360094e-5,8.756257923304475e-8,0.003363004624307182,-5.710951428610873e-5,8.712465566458204e-8,0.0033630925651310676,-5.690004657624532e-5,8.677046271557997e-8,0.0033631411170110623,-5.6758424875231495e-5,8.653114040510852e-8,0.003363181256001812,-5.668835779717318e-5,8.641199419472419e-8,0.0033632402740149748,-5.6680785627308535e-5,8.639713164955336e-8,0.0033633383786634027,-5.67180183840242e-5,8.64564805526587e-8,0.0033634874868962595,-5.6777755378881375e-5,8.65524655651299e-8,0.0033636912810481303,-5.683628445550697e-5,8.66452477529796e-8,0.003363945718484768,-5.687086249094485e-5,8.669663650025481e-8,0.0033642395389277832,-5.686171426360383e-5,8.667346696354637e-8,0.0033645548029027344,-5.6794222114151424e-5,8.655138743646585e-8,0.0033648679728196743,-5.6661634264931834e-5,8.631952160889124e-8,0.003365152316192434,-5.646808727765676e-5,8.598556119531746e-8,0.0033653823440695273,-5.6231009443925796e-5,8.557966538825618e-8,0.003365540348867742,-5.598115619209057e-5,8.515425825459867e-8,0.0033656236291926926,-5.5758262063050816e-5,8.477643543829795e-8,0.003365649237974656,-5.5601580627967396e-5,8.451187493962213e-8,0.003365652653538818,-5.5537505781072915e-5,8.440402629396734e-8,0.0033656789459104476,-5.5569291146105796e-5,8.445703766415184e-8,0.003365769023611574,-5.5674099565599833e-5,8.463116901817921e-8,0.003365946605285959,-5.580935658495085e-5,8.485389455646114e-8,0.003366211262409989,-5.592573091926771e-5,8.504204720695987e-8,0.0033665395943343838,-5.598132333980049e-5,8.512577176624952e-8,0.003366892961472996,-5.59521898282755e-5,8.506604596898847e-8,0.003367228357217615,-5.583677491599288e-5,8.486175343471328e-8,0.0033675090217883843,-5.565418314517531e-5,8.454632832083293e-8,0.0033677122812087027,-5.543770395775392e-5,8.417651191158752e-8,0.0033678331653782018,-5.522579913828783e-5,8.381704806824443e-8,0.0033678834944036373,-5.50530389308712e-5,8.352552276592036e-8,0.0033678872697589877,-5.494321345418341e-5,8.334103225252462e-8,0.003367874119813055,-5.490600237086945e-5,8.327889130742978e-8,0.0033678728417263332,-5.493731937946403e-5,8.333146207894089e-8,0.003367906582298691,-5.50223028120182e-5,8.347329601819736e-8,0.003367990240931756,-5.5139459330814e-5,8.36680693328067e-8,0.003368129820921837,-5.5264706650024884e-5,8.387526013174893e-8,0.0033683230141878383,-5.53746278372721e-5,8.405550425907457e-8,0.0033685602874602904,-5.544884667401181e-5,8.417455801548991e-8,0.0033688260245799536,-5.5471875403664845e-5,8.420648096017351e-8,0.0033690996964164,-5.54349217648513e-5,8.41368044105891e-8,0.0033693574390171246,-5.533796983745346e-5,8.396611154911362e-8,0.003369574738556079,-5.51920190230235e-5,8.371373979967595e-8,0.0033697309471166486,-5.502062543221554e-5,8.342014676700197e-8,0.0033698157191195807,-5.4858963662490004e-5,8.314502135403152e-8,0.00336983588693757,-5.4748211466438515e-5,8.295758836096101e-8,0.003369819180796456,-5.472435396786891e-5,8.291770942984493e-8,0.0033698103447281362,-5.4804144817696605e-5,8.305241791698605e-8,0.0033698580327925177,-5.497509215486744e-5,8.333937840761425e-8,0.00336999704671909,-5.519660736781785e-5,8.370918090270701e-8,0.003370235023755808,-5.541355414664154e-5,8.406846696487325e-8,0.0033705505910493,-5.557548077177791e-5,8.43325066766928e-8,0.0033709027002781183,-5.565191209448797e-5,8.445094442884492e-8,0.0033712449573918956,-5.563811944371171e-5,8.441726573141519e-8,0.0033715383281370122,-5.5551947479558465e-5,8.426301455023264e-8,0.0033717588003342688,-5.5425603682988634e-5,8.404350744757277e-8,0.0033718997534319347,-5.529628730757146e-5,8.382176259040501e-8,0.0033719703516509663,-5.519808521396885e-5,8.365483265879684e-8,0.0033719915125817105,-5.515616301581334e-5,8.358424368986457e-8,0.003371990670460589,-5.5183508520810655e-5,8.363084262341449e-8,0.003371996312094328,-5.5280222125438397e-5,8.37938999603007e-8,0.0033720332014755966,-5.543506986883743e-5,8.405389123547616e-8,0.0033721189855487107,-5.56286157858378e-5,8.437778720791833e-8,0.003372262458821144,-5.5837078683713314e-5,8.472545698884107e-8,0.0033724633940253805,-5.603614789623234e-5,8.505597653427594e-8,0.003372713546608454,-5.620417709122976e-5,8.533294234846123e-8,0.0033729982668022603,-5.632452546423462e-5,8.552844070193068e-8,0.00337329829570848,-5.6387235045065904e-5,8.562597120345452e-8,0.003373591662554191,-5.639037939243083e-5,8.56228158420924e-8,0.0033738558827816345,-5.634128823507716e-5,8.553209949381927e-8,0.0033740709065428706,-5.625757728164715e-5,8.538435984518772e-8,0.0033742233614416587,-5.6167318041165296e-5,8.522753464272809e-8,0.0033743120850930324,-5.6106839883563096e-5,8.512295286558207e-8,0.0033743535182657845,-5.6114284681771475e-5,8.51343302306435e-8,0.003374383584560917,-5.621816091412462e-5,8.530860378052354e-8,0.003374451653711905,-5.642363033026548e-5,8.565316246357324e-8,0.003374604874548048,-5.670392651341919e-5,8.612176775673318e-8,0.003374868363272367,-5.700515151316815e-5,8.662290807184912e-8,0.0033752327666612806,-5.726543902108981e-5,8.705223569982031e-8,0.003375657734454065,-5.743861941957818e-5,8.733251492462779e-8,0.00337608883276525,-5.7508964679654286e-5,8.743842547911098e-8,0.0033764770314720334,-5.749109053497066e-5,8.739613430904317e-8,0.003376791288154108,-5.741928432963936e-5,8.726484516431357e-8,0.003377021873463669,-5.733428391425587e-5,8.711405749206888e-8,0.003377177244553692,-5.727289468373037e-5,8.700584615729924e-8,0.0033772782065038614,-5.7261975296652276e-5,8.698482352101486e-8,0.003377351897211726,-5.731608876134401e-5,8.707450164078988e-8,0.0033774266600864046,-5.743750053577925e-5,8.727765185706965e-8,0.0033775279397840904,-5.761758344607225e-5,8.757892428997106e-8,0.0033776751676794963,-5.783921764291742e-5,8.794897670651642e-8,0.0033778797227997696,-5.807988352583364e-5,8.834963725304223e-8,0.0033781440270615184,-5.831509017006301e-5,8.873957895692964e-8,0.0033784617768650477,-5.8521803894550365e-5,8.908001953560924e-8,0.003378819238634322,-5.868149381761238e-5,8.933984781642511e-8,0.003379197323670683,-5.8782439093002966e-5,8.949957584080041e-8,0.003379574066231394,-5.882122050843463e-5,8.955393397490966e-8,0.003379927308581292,-5.880351542948081e-5,8.951323372093641e-8,0.0033802375736910525,-5.8744255904977356e-5,8.940353066295135e-8,0.003380491220639322,-5.86670851430349e-5,8.92654614473728e-8,0.003380684061250688,-5.8602724717853605e-5,8.915117457299559e-8,0.003380825238790617,-5.8585283278155506e-5,8.911787039413452e-8,0.0033809400725077258,-5.8645366370736766e-5,8.921617853680288e-8,0.0033810692089788217,-5.8799874204040243e-5,8.947323513780382e-8,0.003381260821250198,-5.904106722336901e-5,8.987469296042821e-8,0.0033815547925915685,-5.933123263112307e-5,9.0356110182332e-8,0.003381964109575867,-5.961028832185029e-5,9.081592148861166e-8,0.0033824647851254143,-5.981713959083937e-5,9.1151422106769e-8,0.003383003169851391,-5.9914358833980524e-5,9.130033548932249e-8,0.0033835175357943767,-5.9901254032734106e-5,9.126278647579509e-8,0.0033839605590798446,-5.980890433849116e-5,9.10926902260356e-8,0.00338431099616989,-5.968366488858203e-5,9.086948355865654e-8,0.0033845727837585357,-5.9570442762593056e-5,9.066948346775116e-8,0.0033847670858004075,-5.950243521857609e-5,9.05484296124944e-8,0.0033849232362922243,-5.9497727807565615e-5,9.053594275132374e-8,0.0033850716583332255,-5.956024397003957e-5,9.063751388399143e-8,0.0033852393421935963,-5.9682490187505253e-5,9.083949487511646e-8,0.0033854472176725985,-5.984859127500225e-5,9.111441080009529e-8,0.0033857086133339863,-6.003720459463659e-5,9.142588647628522e-8,0.0033860284271986017,-6.022439650227471e-5,9.173340583043047e-8,0.003386402955846923,-6.038656005091193e-5,9.199713865518988e-8,0.003386820462731965,-6.0503374088305864e-5,9.218289744117541e-8,0.003387262658810295,-6.05606230682693e-5,9.226693315388558e-8,0.0033877071395750856,-6.0552452997181255e-5,9.223981379163578e-8,0.0033881305330445235,-6.048266726105932e-5,9.210864890465263e-8,0.0033885120041810286,-6.036487174837796e-5,9.189727295160823e-8,0.003388836782278121,-6.022136221100909e-5,9.164417689053099e-8,0.003389099364723984,-6.008071140194549e-5,9.139814912203612e-8,0.003389306087909998,-5.9974056769629564e-5,9.121173103792565e-8,0.0033894766507592314,-5.992991778520634e-5,9.113234376727132e-8,0.0033896436217253243,-5.9967392439029444e-5,9.119094033650632e-8,0.003389848331184142,-6.00884494472235e-5,9.138938243016609e-8,0.003390131696696725,-6.027176738671097e-5,9.169052134537972e-8,0.003390520408645742,-6.0472489173007385e-5,9.20181223124543e-8,0.003391013048776062,-6.0632291852483944e-5,9.227391611926006e-8,0.003391574685345615,-6.069936708195099e-5,9.237117323434914e-8,0.0033921465752053356,-6.0649508463182645e-5,9.227013011226155e-8,0.003392668019375996,-6.049561955058757e-5,9.199390213601754e-8,0.003393098109249708,-6.027985582758634e-5,9.161498325294656e-8,0.003393425788317697,-6.005472021645174e-5,9.12229510324662e-8,0.00339366621882231,-5.986502345047448e-5,9.089367784604274e-8,0.003393849764889761,-5.973824800765525e-5,9.067301795341194e-8,0.0033940108887349028,-5.9683418753718195e-5,9.057517474706375e-8,0.0033941806177451347,-5.969475502631139e-5,9.058927390461232e-8,0.0033943828082887316,-5.9756555264083074e-5,9.068792616803152e-8,0.0033946329021984417,-5.984744069403636e-5,9.083450585144963e-8,0.003394937808251754,-5.994358255246006e-5,9.098854172687638e-8,0.003395296161910116,-6.002127117598997e-5,9.110993548500498e-8,0.003395698804414143,-6.0059267214638514e-5,9.116285658288206e-8,0.0033961296425301405,-6.004122350292775e-5,9.111984405853812e-8,0.0033965672449549665,-5.995817702591761e-5,9.096608893871411e-8,0.0033969875056327195,-5.9810681332088226e-5,9.070310529653611e-8,0.0033973673472186662,-5.960989551896998e-5,9.035055940505286e-8,0.0033976890073721226,-5.937702862808381e-5,8.994519524467432e-8,0.00339794414966279,-5.914078600227383e-5,8.953626954603158e-8,0.00339813686265762,-5.893285864413488e-5,8.91776383701858e-8,0.0033982846760873316,-5.8782022201718587e-5,8.891757350029357e-8,0.0033984170426695744,-5.8707756459061303e-5,8.878796990728907e-8,0.0033985710041651773,-5.8714419523522015e-5,8.879474808736464e-8,0.003398783964213327,-5.8787308590801815e-5,8.891163690828701e-8,0.003399084097724401,-5.889244323337396e-5,8.908026373626042e-8,0.003399480270250761,-5.898203293481756e-5,8.921967011645284e-8,0.0033999551699554283,-5.900646431000797e-5,8.924656326463904e-8,0.003400466358786225,-5.893049216975236e-5,8.91024588459512e-8,0.003400957801068039,-5.8747104648884236e-5,8.877683281588798e-8,0.003401378527359106,-5.848118000125292e-5,8.831304298309702e-8,0.0034016995373273343,-5.817987411373497e-5,8.779181892187154e-8,0.0034019205448226966,-5.789489120259509e-5,8.730103063936285e-8,0.0034020649231812825,-5.7666180030203005e-5,8.690798801868969e-8,0.003402168049287801,-5.751375176227864e-5,8.664571506488682e-8,0.003402265858276145,-5.743804869788241e-5,8.651389470980682e-8,0.00340238747932283,-5.742519852330234e-5,8.64881096032888e-8,0.0034025522455255973,-5.7453234933997976e-5,8.653057385184077e-8,0.0034027695489980392,-5.7497130460310654e-5,8.659865614011625e-8,0.003403039886903058,-5.753221388492227e-5,8.665054230622828e-8,0.0034033560870460524,-5.753644074444263e-5,8.664895352331391e-8,0.0034037044047870047,-5.7492186034072585e-5,8.656414307834132e-8,0.003404065680014834,-5.738807359108861e-5,8.637705347880114e-8,0.0034044170305128105,-5.722099116240365e-5,8.60828262613509e-8,0.003404734597935735,-5.6997926909140374e-5,8.569395943787588e-8,0.003404997558905359,-5.6736793275923886e-5,8.524163215191012e-8,0.0034051929890715296,-5.646520876211743e-5,8.477344074418974e-8,0.003405320408160798,-5.621648018227168e-5,8.434631513995815e-8,0.003405394300451476,-5.6022900264124296e-5,8.40149123124777e-8,0.0034054430646795236,-5.590772696450894e-5,8.381791884209707e-8,0.0034055038606741876,-5.587815564824331e-5,8.376626228374444e-8,0.0034056142384550816,-5.59216390476811e-5,8.383721738396868e-8,0.003405802567121793,-5.600706841995555e-5,8.397686437719106e-8,0.003406079762115114,-5.609104831024885e-5,8.411111539414267e-8,0.0034064347003346877,-5.6128202268790945e-5,8.416335082003054e-8,0.0034068351738956544,-5.6083285215666045e-5,8.407483916197228e-8,0.003407235151776666,-5.594181500695267e-5,8.382243623901492e-8,0.0034075871596243503,-5.5715353849958e-5,8.342714398589868e-8,0.0034078560389337632,-5.543856994368361e-5,8.294878555047174e-8,0.0034080288015259303,-5.5158405656903775e-5,8.246741739171249e-8,0.003408116556022004,-5.491960304745137e-5,8.20587213493105e-8,0.0034081483496585887,-5.475262430635319e-5,8.17736335484883e-8,0.0034081606287834965,-5.466819510979342e-5,8.162935251217643e-8,0.003408187213574958,-5.465879991060622e-5,8.161218884734959e-8,0.0034082529479952245,-5.470438823302094e-5,8.168747464274309e-8,0.0034083714747449156,-5.477893708194855e-5,8.181075694408507e-8,0.0034085458513296286,-5.4855751000708015e-5,8.193669718795236e-8,0.003408770414545297,-5.4910925975911326e-5,8.202480039048432e-8,0.003409032781106392,-5.4925363401297566e-5,8.204274072682829e-8,0.0034093155318804143,-5.488606600123461e-5,8.196858076576507e-8,0.0034095977133735593,-5.478735913882586e-5,8.179294852554372e-8,0.0034098566636729913,-5.463228818846857e-5,8.1521508229844755E-08,0.003410070752139286,-5.443391476149148e-5,8.117715796819658e-8,0.0034102233957102024,-5.4215684339399623e-5,8.0800505879973e-8,0.003410308068531649,-5.400958289018258e-5,8.044648266424068e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json new file mode 100644 index 0000000..5a65685 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":22000,"numberOfSamples":1000,"samples":[0.003410332914201753,-5.3850894022675106e-5,8.017517098961131e-8,0.003410322528879365,-5.376958194615e-5,8.003701237438996e-8,0.0034103145652221627,-5.3780481135696216e-5,8.005617875605212e-8,0.0034103506775372276,-5.3876274061593275e-5,8.021888857849169e-8,0.003410464307410866,-5.402707135418975e-5,8.047308167596654e-8,0.003410669971601388,-5.4187778507499705e-5,8.074133887896081e-8,0.003410958362427396,-5.431078402439631e-5,8.094271511350002e-8,0.0034112988966924413,-5.435925986441926e-5,8.101538020005893e-8,0.0034116483046836123,-5.431671386401488e-5,8.093263501288651e-8,0.0034119621492173344,-5.41904204198061e-5,8.070834304160092e-8,0.0034122059256284677,-5.400841636122217e-5,8.039138838903804e-8,0.0034123629141804617,-5.38113276447821e-5,8.005145827068325e-8,0.003412436926427523,-5.3641509849942013e-5,7.976047048128742e-8,0.0034124495366027988,-5.3532666321671336e-5,7.957504010808949e-8,0.0034124330661485227,-5.350283981451321e-5,7.952484351765614e-8,0.0034124218722404974,-5.3552370565715433e-5,7.960947036368768e-8,0.0034124447457084236,-5.3666539079328896e-5,7.980316491937519e-8,0.0034125202858526367,-5.382106091332426e-5,8.00642647210325e-8,0.0034126555868305777,-5.398815305369993e-5,8.034545908014444e-8,0.0034128473776592204,-5.414152490629849e-5,8.06021342297411e-8,0.0034130843642180496,-5.425966542015235e-5,8.079783644736344e-8,0.0034133497512128354,-5.4327618445658844e-5,8.090725685897239e-8,0.003413623435855102,-5.4337869912637006e-5,8.091781018622006e-8,0.003413883907454681,-5.429097539492461e-5,8.083081580105819e-8,0.0034141102665403125,-5.419622361028624e-5,8.066268207707981e-8,0.0034142849136512055,-5.407215162017978e-5,8.044570051432896e-8,0.00341439730488426,-5.394617096384391e-5,8.022718223765307e-8,0.003414448551881033,-5.385201336379878e-5,8.006482802604857e-8,0.0034144554442633347,-5.382365677022172e-5,8.001619006311863e-8,0.003414451133210198,-5.388562472720168e-5,8.012215438343905e-8,0.0034144795115925615,-5.4042269894100845e-5,8.038890648236031e-8,0.003414582717752921,-5.427144088560471e-5,8.077748959286917e-8,0.0034147858366957128,-5.452785635760065e-5,8.120990068433355e-8,0.003415086335408109,-5.475685197042185e-5,8.159276299340531e-8,0.0034154541675420077,-5.491264135361651e-5,8.184854560101504e-8,0.003415842328369328,-5.497241133679643e-5,8.19395012048398e-8,0.0034162020648540446,-5.494079694397467e-5,8.187500799224558e-8,0.0034164960597480513,-5.484509224563486e-5,8.170297816008171e-8,0.003416705855690934,-5.472520370648011e-5,8.14923147861858e-8,0.0034168331491478627,-5.462263220717812e-5,8.131389578844407e-8,0.003416896425673255,-5.457135459703978e-5,8.122506662590603e-8,0.003416924864737033,-5.459196701501527e-5,8.125992201462119e-8,0.0034169512624180483,-5.468942093895768e-5,8.142580537893595e-8,0.0034170054267853647,-5.485407812356393e-5,8.17054100824689e-8,0.0034171092005408077,-5.506533196508355e-5,8.206310391954363e-8,0.0034172737893538854,-5.529662285957986e-5,8.24534661992994e-8,0.0034174994368857004,-5.552057481406241e-5,8.282992315001632e-8,0.0034177769459542693,-5.5713266654435735e-5,8.315188937008223e-8,0.0034180902481047706,-5.58571185539423e-5,8.338960767448971e-8,0.0034184192209990544,-5.594239734507513e-5,8.352672714006698e-8,0.0034187422744122974,-5.5967759795049916e-5,8.356130894842189e-8,0.0034190386613258106,-5.5940313585960716e-5,8.350600300356605e-8,0.0034192907451060053,-5.5875438829459745e-5,8.338772029482915e-8,0.0034194865853197334,-5.5796286755981725e-5,8.324661178228372e-8,0.0034196231618546383,-5.573239332743332e-5,8.313343416160889e-8,0.0034197100026956712,-5.571629566234729e-5,8.310353167794132e-8,0.0034197718373557965,-5.5777017730924494e-5,8.320565011677361e-8,0.0034198476546487924,-5.593045265235306e-5,8.346570742357244e-8,0.0034199832418701356,-5.6169307155583144e-5,8.387000547866622e-8,0.0034202166393619616,-5.64584557493018e-5,8.435767926960611e-8,0.0034205614639800535,-5.67418663020452e-5,8.483274082655738e-8,0.003420997727034218,-5.696140593963007e-5,8.51962311929662e-8,0.0034214773558268368,-5.707879301142648e-5,8.538365211417604e-8,0.0034219421419332224,-5.708851047552745e-5,8.538688805157197e-8,0.0034223438059788605,-5.701585691614104e-5,8.525060072019697e-8,0.0034226564954146083,-5.690413699843295e-5,8.504993386503595e-8,0.003422878920363075,-5.679944106094893e-5,8.486413227000239e-8,0.0034230291674335464,-5.6739176541925223e-5,8.475681081074442e-8,0.003423136660697731,-5.6746178962097036e-5,8.476606168603778e-8,0.0034232343831674863,-5.682746769406769e-5,8.490269488349289e-8,0.0034233527024106186,-5.697594757338996e-5,8.515352124084064e-8,0.003423515048462373,-5.717372366496969e-5,8.548725451920484e-8,0.003423735360724929,-5.739623453008071e-5,8.586162778920173e-8,0.0034240171921175824,-5.761661689063496e-5,8.623076555625632e-8,0.003424354282394761,-5.7809781532945634e-5,8.655200921001188e-8,0.003424732337212298,-5.795580012171021e-5,8.679159414405439e-8,0.0034251316600929604,-5.804228112995662e-5,8.692867283680107e-8,0.0034255301389273553,-5.8065571370678764e-5,8.695739993818016e-8,0.0034259061435299876,-5.8030942708281336e-5,8.68873016976559e-8,0.003426241192945239,-5.7952061490074354e-5,8.674237096252997e-8,0.003426522442310002,-5.784987818084441e-5,8.655906513984539e-8,0.0034267450710929025,-5.775090698206635e-5,8.638314938058331e-8,0.0034269146613510586,-5.768461436478088e-5,8.626498016672915e-8,0.0034270492888037753,-5.7679206341423455e-5,8.625215296635437e-8,0.0034271801115048016,-5.775513150463932e-5,8.637847340111039e-8,0.003427348318837799,-5.791673040416302e-5,8.66500111928406e-8,0.003427596290732135,-5.814466196255829e-5,8.703260278195282e-8,0.0034279529627239238,-5.8394327194921334e-5,8.744949479355945e-8,0.003428418470586544,-5.860576263431353e-5,8.77983298726461e-8,0.00342895785967562,-5.872474275422114e-5,8.79870966366347e-8,0.0034295111225311516,-5.872520138069127e-5,8.797231646130829e-8,0.0034300159367414112,-5.8619276575255356e-5,8.777608739665868e-8,0.003430429936364875,-5.8449346719175054e-5,8.747221956219683e-8,0.0034307409539403753,-5.8269005362368705e-5,8.715330218992734e-8,0.0034309636874953423,-5.812488879415304e-5,8.689927969838687e-8,0.0034311290547955646,-5.804651663753494e-5,8.676002574361577e-8,0.0034312730856115364,-5.804431513186724e-5,8.675224016919222e-8,0.003431428842749821,-5.811258599710215e-5,8.686495556850346e-8,0.003431621833748501,-5.823424073945281e-5,8.706799112634763e-8,0.0034318679871170456,-5.838549788451625e-5,8.732014432177786e-8,0.0034321731793053077,-5.854001187955921e-5,8.757621999925782e-8,0.0034325337535511193,-5.8672442465983527E-05,8.779300375802679e-8,0.0034329377969641297,-5.876149483775846e-5,8.79343338304245e-8,0.0034333670820067457,-5.8792422402358875e-5,8.7975316488367e-8,0.0034337996533433854,-5.875886549720411e-5,8.790547650809066e-8,0.0034342129023982814,-5.8663743295375374e-5,8.773032040338553e-8,0.0034345867528595554,-5.8519040728693963E-05,8.747098149349937e-8,0.00343490662495616,-5.834457618854895e-5,8.716204139286165e-8,0.003435165997133961,-5.816584043444344e-5,8.684766473704805e-8,0.003435368377604481,-5.8010940498476064e-5,8.657614158669101e-8,0.003435528469312809,-5.79066894188021e-5,8.639300030976978e-8,0.0034356721817477088,-5.787374966119817e-5,8.633265875065238e-8,0.0034358346431882215,-5.7920805816179714e-5,8.640865043476558e-8,0.00343605489737805,-5.8038637339463834e-5,8.660388209222903e-8,0.0034363663675272185,-5.8196543664505935e-5,8.686495377469283e-8,0.003436784132872785,-5.834498191690136e-5,8.710692888866458e-8,0.003437293776835478,-5.8427735873480615e-5,8.72341254787051e-8,0.0034378497110881335,-5.8402092841660325e-5,8.717442687949159e-8,0.0034383882973978448,-5.8257765502926945e-5,8.691145603639477e-8,0.003438851408713721,-5.802240303565348e-5,8.649384664598423e-8,0.0034392073380863355,-5.774932951993929e-5,8.601401185593557e-8,0.0034394577744100104,-5.749559608304214e-5,8.557022184800596e-8,0.003439630233895451,-5.7303386349150334e-5,8.523451882013677e-8,0.0034397639148655676,-5.71921018810065e-5,8.503923334835471e-8,0.003439897152082377,-5.716002300749245e-5,8.498019404726612e-8,0.0034400599773055985,-5.719061355114749e-5,8.502796230293353e-8,0.0034402713672934656,-5.725932344600479e-5,8.513976877355545e-8,0.0034405393098027363,-5.7338962376120295e-5,8.52687687250456e-8,0.0034408620305790096,-5.7403458295962594e-5,8.5370360365332e-8,0.0034412295639111826,-5.74305399376233e-5,8.540661686558558e-8,0.0034416255077720182,-5.7403819017073256e-5,8.534975049941572e-8,0.0034420290593737894,-5.7314494475115625e-5,8.518502074925517e-8,0.0034424175204084556,-5.7162649725107814e-5,8.491300299198063e-8,0.0034427693744096327,-5.695780291358059e-5,8.45505703435799e-8,0.003443067694390436,-5.671827027498391e-5,8.412977141244271e-8,0.0034433033585062117,-5.6469137408961e-5,8.369422260683416e-8,0.003443477522363603,-5.6238888006486065e-5,8.329312068593308e-8,0.0034436028265143223,-5.6054927768332085e-5,8.297335687745774e-8,0.0034437028776761053,-5.593849466785818e-5,8.277067663956046e-8,0.0034438096971042514,-5.589961405993521e-5,8.270110737924363e-8,0.0034439589152577502,-5.593284157050621e-5,8.275395289466784e-8,0.0034441825909026142,-5.601493075148707e-5,8.288821797121621e-8,0.0034445001635288017,-5.610621465702858e-5,8.303535737202917e-8,0.0034449095226591654,-5.615762951966539e-5,8.311147869532069e-8,0.0034453821233687756,-5.612393855092263e-5,8.303989847633601e-8,0.003445866927768903,-5.598013860657117e-5,8.277898571579688e-8,0.003446305117155568,-5.573359851034611e-5,8.234268399454156e-8,0.003446650688170405,-5.54237541297035e-5,8.179975395214818e-8,0.003446886420895123,-5.5107576665760024e-5,8.124862318937609e-8,0.0034470267259821934,-5.483846667724602e-5,8.078097385183255e-8,0.00344710766051307,-5.464993566767857e-5,8.04536936374894e-8,0.003447171789706657,-5.455038535028025e-5,8.028012646114274e-8,0.0034472558389312216,-5.452741901483898e-5,8.02378602589795e-8,0.003447384454009153,-5.455622510521429e-5,8.028347230580017e-8,0.003447569166450617,-5.460748845901849e-5,8.036626359875367e-8,0.003447810144196527,-5.465292154467429e-5,8.043768722291936e-8,0.0034480987268725206,-5.466849659176279e-5,8.045671557812648e-8,0.003448419783191651,-5.46362499989435e-5,8.039277888315682e-8,0.003448753772593059,-5.45454637568273e-5,8.022774113086465e-8,0.0034490787902391605,-5.439364106836301e-5,7.995762374625734e-8,0.003449372967644381,-5.41872734508112e-5,7.959400330433788e-8,0.0034496174799257423,-5.394199608711304e-5,7.916430464845655e-8,0.003449800033082265,-5.368150494101013e-5,7.870985989025718e-8,0.0034499182123150364,-5.343472982432336e-5,7.828086678372597e-8,0.003449981722370573,-5.323117506956941e-5,7.792815673433031e-8,0.0034500124919465153,-5.30949612652312e-5,7.769278778854012e-8,0.0034500419488425822,-5.303878495366926e-5,7.759565134357626e-8,0.003450105483013042,-5.305939695552917e-5,7.762989261880157e-8,0.0034502349108771345,-5.3136052000312036E-05,7.775860628781301e-8,0.00345045036327994,-5.3232896856317525e-5,7.791934553656435e-8,0.0034507534559009615,-5.330563477313901e-5,7.803586216602371e-8,0.0034511239123253042,-5.331189940292976e-5,7.80359816725961e-8,0.0034515217741313154,-5.3223411868618484e-5,7.787229296285301e-8,0.0034518963778732035,-5.303630985682997e-5,7.753954870439826e-8,0.003452200772443476,-5.277494601652743e-5,7.708083438603485e-8,0.0034524067233620208,-5.24857622131667e-5,7.657676351766069e-8,0.003452513539318852,-5.222238745671445e-5,7.611970105647155e-8,0.003452546358006263,-5.202834487641089e-5,7.578401494859984e-8,0.003452545316805372,-5.1925238857953614e-5,7.56059228122419e-8,0.0034525517079226162,-5.1910531969244896e-5,7.55799748568084e-8,0.0034525973425899702,-5.1963341595560646e-5,7.566935879164173e-8,0.003452699860306806,-5.2053492925631584e-5,7.582168477769657e-8,0.003452863075258511,-5.2149607426261665e-5,7.598291155508565e-8,0.0034530799060755258,-5.222439818684115e-5,7.61063070119408e-8,0.003453335818338361,-5.2257343532068194e-5,7.615685892232103e-8,0.003453611766785339,-5.223571891965294e-5,7.61129377116946e-8,0.0034538864899658996,-5.215494408708145e-5,7.596690383151867e-8,0.003454138506384482,-5.201882998128307e-5,7.572562427973521e-8,0.003454348337076918,-5.183978826068164e-5,7.541091271463072e-8,0.0034545013314538756,-5.1638552963418784e-5,7.505903324803353e-8,0.003454591043269122,-5.144265642680074e-5,7.47179322561575e-8,0.0034546224963198295,-5.128290588661151e-5,7.444094709790633e-8,0.003454614029832736,-5.118756231866206e-5,7.427657654620211e-8,0.0034545960964780477,-5.117499667449252e-5,7.425575471974446e-8,0.0034546059759224725,-5.124696696840789e-5,7.438038383349255e-8,0.003454678971542103,-5.13853618139435e-5,7.46180167622108e-8,0.003454838496800186,-5.155451806553497e-5,7.490622976898416e-8,0.003455088410098183,-5.170923490366474e-5,7.516676020545438e-8,0.0034554104312331923,-5.18063784397559e-5,7.53256558047392e-8,0.0034557677626890567,-5.181660232781692e-5,7.533338722547459e-8,0.003456114043853787,-5.173270086815992e-5,7.517894604581043e-8,0.0034564052677747885,-5.157212308820495e-5,7.48937718027089e-8,0.003456611436614271,-5.1372648185342906e-5,7.454392055414663e-8,0.0034567244663298784,-5.118206849108857e-5,7.421205085109125e-8,0.0034567595924578005,-5.104487112438851e-5,7.397444303572169e-8,0.0034567496932292933,-5.0990411029647274e-5,7.388079046187029e-8,0.0034567348219838017,-5.1026634462844345E-05,7.394368941315555e-8,0.0034567511208470503,-5.1140910162072285e-5,7.41404001886787e-8,0.003456822969488365,-5.130640701071599e-5,7.442407063670418e-8,0.0034569600809666373,-5.149059048477161e-5,7.473844540174441e-8,0.003457158836079232,-5.166263101478568e-5,7.503054191154755e-8,0.0034574058624226842,-5.179814342816616e-5,7.525864485773623e-8,0.0034576819982162126,-5.188131487414444e-5,7.53958236160267e-8,0.003457965624434055,-5.190529764163641e-5,7.543055726802653e-8,0.003458235153642075,-5.187182989119657e-5,7.536613158997809e-8,0.003458470988800748,-5.179074706531707e-5,7.52198852644471e-8,0.0034586575036994354,-5.1679536585510255e-5,7.502247538759579e-8,0.0034587855033521653,-5.156254212189298e-5,7.481641900418598e-8,0.0034588552057932243,-5.1469030724573484e-5,7.465256143383775e-8,0.0034588791061978532,-5.142920657003421e-5,7.458297859873786e-8,0.003458883218149259,-5.1467660711166246e-5,7.464955268013278e-8,0.0034589045776179444,-5.159510836468649e-5,7.48697763858947e-8,0.0034589835250980615,-5.180135000044591e-5,7.522485150187091e-8,0.0034591517840109193,-5.205370320062124e-5,7.56573232920082e-8,0.0034594206555359705,-5.2303828254811026e-5,7.608317761780516e-8,0.0034597750906966754,-5.250174966429808e-5,7.641623908985145e-8,0.0034601771049745287,-5.2611539439694236e-5,7.659526793472266e-8,0.003460577222136936,-5.262200185778321e-5,7.660223703442587e-8,0.003460928903507887,-5.254861496345348e-5,7.646534203758294e-8,0.003461200559315436,-5.2427345790902366e-5,7.624789704143432e-8,0.0034613819623500147,-5.230371513415596e-5,7.602909490634815e-8,0.00346148446467581,-5.2220931733726785e-5,7.58833715008536e-8,0.003461536103359664,-5.2210117968981436e-5,7.586364467457609e-8,0.003461573517811942,-5.2284544913011865e-5,7.599167543503633e-8,0.0034616329485504336,-5.243864613206289e-5,7.625673698865155e-8,0.003461742549106104,-5.265142211148723e-5,7.662177846795173e-8,0.003461917703165235,-5.2892782274308036e-5,7.703449448843473e-8,0.0034621599737674246,-5.313072477304534e-5,7.74396760194996e-8,0.0034624591084389793,-5.33374098966768e-5,7.778955053911857e-8,0.003462796779292467,-5.349304510582412e-5,7.805033191515012e-8,0.003463150686187144,-5.3587487694671127e-5,7.820488911072816e-8,0.0034634980867577683,-5.362014291759816e-5,7.825256020973388e-8,0.0034638184347490337,-5.35989854743125e-5,7.820751398896041e-8,0.0034640953366142095,-5.353936163065365e-5,7.809672470592285e-8,0.0034643182806015373,-5.3462782486652334e-5,7.795785220255605e-8,0.0034644845501561154,-5.339545627403919e-5,7.783656035226323e-8,0.0034646014413177184,-5.336592005983549e-5,7.778221516267927e-8,0.0034646882637985664,-5.3400881599815127e-5,7.78405393635882e-8,0.003464776653159077,-5.351867683920702e-5,7.804231285445772e-8,0.003464906957150965,-5.372111733504216e-5,7.838949782169935e-8,0.0034651189235659127,-5.398689725856593e-5,7.884418711991946e-8,0.0034654377510551313,-5.427171287388532e-5,7.932912268318844e-8,0.003465861181889111,-5.45189747063227e-5,7.974637922620187e-8,0.0034663557995089868,-5.4679006723517416e-5,8.001057810235294e-8,0.003466866832075317,-5.4727667638690595e-5,8.008101605182355e-8,0.003467337213583027,-5.467430917764118e-5,7.997525515932372e-8,0.0034677259185634294,-5.45558137956383e-5,7.975848386026634e-8,0.0034680175758430914,-5.4421850197762574e-5,7.951758779610465e-8,0.003468221945391668,-5.431943863471243e-5,7.93341221303494e-8,0.003468366749984431,-5.4282189894998705e-5,7.926564782173139e-8,0.003468488253575451,-5.432554626942201e-5,7.933775100923389e-8,0.003468622577673265,-5.4446940976185534e-5,7.954473091422483e-8,0.00346879910386759,-5.4629139136083834e-5,7.985575566520995e-8,0.003469036315266957,-5.484531500646757e-5,8.022385234336574e-8,0.0034693400970225562,-5.506482644748267e-5,8.05959068464886e-8,0.003469704347103154,-5.525874833196587e-5,8.09221138287859e-8,0.003470113426848338,-5.54043045866477e-5,8.116348069551332e-8,0.003470545719066106,-5.548767615842907e-5,8.129655797854296e-8,0.0034709775149081618,-5.550506450046016e-5,8.131522490515083e-8,0.0034713865350294564,-5.546223505877917e-5,8.122990831469518e-8,0.00347175466700389,-5.537307165347207e-5,8.10651077332558e-8,0.003472069935483391,-5.5257707024367603e-5,8.085614780070984e-8,0.0034723279767847086,-5.514048489525153e-5,8.064555763367976e-8,0.0034725332728849033,-5.504767565387728e-5,8.047894670947377e-8,0.0034727002510506733,-5.5004592720721175e-5,8.039983781883514e-8,0.003472853897452726,-5.5031486682279284e-5,8.044249502323219e-8,0.0034730286883273595,-5.513778809238864e-5,8.062209526950794e-8,0.003473263973229728,-5.531544130156531e-5,8.092351809161323e-8,0.0034735943076693245,-5.553413717659481e-5,8.129347436960563e-8,0.003474035665897499,-5.574326882078972e-5,8.16441259001113e-8,0.0034745731955609315,-5.5884742086398796e-5,8.18752580591423e-8,0.0034751596486798657,-5.5914583892773785e-5,8.19115493205368e-8,0.003475729749079442,-5.5822556153648676e-5,8.173640984494093e-8,0.0034762246796353497,-5.563705319293436e-5,8.140033666182622e-8,0.003476612701492186,-5.541203574155975e-5,8.099801039245487e-8,0.003476895422108325,-5.52051656998577e-5,8.063001150121857e-8,0.0034771002354880218,-5.50597528893753e-5,8.037124816213464e-8,0.003477266808137206,-5.499678333889154e-5,8.025718895626209e-8,0.003477434878777277,-5.501575513956466e-5,8.028567476587208e-8,0.0034776364077081026,-5.510010155564282e-5,8.042677847876208e-8,0.0034778919129647623,-5.522370891534653e-5,8.063443431098723e-8,0.003478209655577147,-5.53567664624354e-5,8.085668027157581e-8,0.003478586484780268,-5.547053781197861e-5,8.104383769654996e-8,0.003479009745324267,-5.5541137233202974e-5,8.115488223399064e-8,0.0034794599661624203,-5.55522999409954e-5,8.116209039532e-8,0.00347991406310937,-5.5497055559913984e-5,8.105385714697197e-8,0.00348034877409459,-5.5378226962704636e-5,8.083554656447708e-8,0.003480743967899695,-5.5207701396177e-5,8.052824678244802e-8,0.003481085399356866,-5.500462615502403e-5,8.016563989201027e-8,0.003481366669257658,-5.4792906661938594e-5,7.978960191727658e-8,0.0034815903954937507,-5.459831114198394e-5,7.944505128213398e-8,0.003481768645435652,-5.444530524158718e-5,7.917429462220676e-8,0.003481922641158277,-5.435363020679066e-5,7.901097650404148e-8,0.003482081557943241,-5.43344611388244e-5,7.897344901624152e-8,0.0034822796949849086,-5.438607219406785e-5,7.90574880741661e-8,0.0034825508886991334,-5.4489814677525574e-5,7.922969966297901e-8,0.003482919510198329,-5.460863179618924e-5,7.942530879637457e-8,0.00348338922468968,-5.4691530175031036e-5,7.955606784582527e-8,0.0034839341482262006,-5.468684887826709e-5,7.953314250976801e-8,0.003484500044929782,-5.456236411226566e-5,7.930171563250027e-8,0.003485020395764967,-5.432242661163013e-5,7.887051211495277e-8,0.003485441830665722,-5.4009666442778456e-5,7.831463037203127e-8,0.003485744308334187,-5.3687830051453043e-5,7.774555423085291e-8,0.003485944356059249,-5.341619454208322e-5,7.726643890430705e-8,0.0034860824605426953,-5.323068031905013e-5,7.69391413336341e-8,0.003486205192699337,-5.313887848336849e-5,7.677573716104043e-8,0.003486351616487765,-5.312585818689202e-5,7.674902644824243e-8,0.003486546989851855,-5.3163832246076e-5,7.680975614919294e-8,0.003486802071512451,-5.322081037736187e-5,7.690188262653895e-8,0.003487115234474545,-5.326655085161755e-5,7.697289095930539e-8,0.003487475361305784,-5.3276107450321254e-5,7.697977967690026e-8,0.00348786468748232,-5.323188756023941e-5,7.689243976502786e-8,0.003488261541112851,-5.3124867656400085e-5,7.669564695902987e-8,0.0034886431118577687,-5.2955187271283527e-5,7.639006967152842e-8,0.0034889883345022694,-5.273207584356439e-5,7.599217164183895e-8,0.00348928082718179,-5.247287143335613e-5,7.553253065060545e-8,0.0034895115406157772,-5.220092938007728e-5,7.505217138911657e-8,0.0034896806403166163,-5.194253721386278e-5,7.45970984578306e-8,0.003489798281891112,-5.17231700616895e-5,7.421163449310192e-8,0.003489884081885023,-5.156346255637453e-5,7.393127924950925e-8,0.0034899651917605482,-5.1475349070217194e-5,7.37759579390884e-8,0.0034900730046242873,-5.145880727187514e-5,7.374448490150087e-8,0.0034902384487222934,-5.149957504391051e-5,7.38108940008001e-8,0.003490485713360978,-5.1568581097192085e-5,7.392383226896056e-8,0.0034908247516596694,-5.162452953725788e-5,7.401135645851316e-8,0.0034912442178913756,-5.162129070334261e-5,7.399384833356589e-8,0.0034917082870866084,-5.152067046187914e-5,7.380600775763368e-8,0.003492161919526589,-5.1307906470345714e-5,7.342344472404727e-8,0.0034925468003312904,-5.100251708159784e-5,7.28812436475048e-8,0.0034928230231711763,-5.065567102917774e-5,7.22692085054129e-8,0.00349298480607223,-5.0332008284307815e-5,7.170010948102879e-8,0.003493060486880091,-5.008509810197167e-5,7.126687367301145e-8,0.0034930978108644877,-4.994040408769448e-5,7.10129659368693e-8,0.003493144812116986,-4.989292212429899e-5,7.092852991350264e-8,0.003493236329890927,-4.991616821749949e-5,7.09664233386691e-8,0.003493389382240401,-4.997451260323819e-5,7.106400377600212e-8,0.0034936049670886314,-5.003303046878982e-5,7.116036558566628e-8,0.0034938724850190725,-5.006315699024087e-5,7.120605641471014e-8,0.003494174181710002,-5.004500801825621e-5,7.116689888635155e-8,0.003494488647240114,-4.9967898958017656e-5,7.10247226686362e-8,0.003494793491455296,-4.983017838931351e-5,7.077701977191036e-8,0.0034950676495118685,-4.963883343406836e-5,7.043629688622425e-8,0.0034952936893218015,-4.940884123717768e-5,7.00290073852739e-8,0.0034954602703394025,-4.91619116469257e-5,6.959337044053813e-8,0.003495564525333123,-4.8924164351532744e-5,6.917524860206665e-8,0.0034956137545527114,-4.872255946766232e-5,6.882178267966077e-8,0.003495625715726868,-4.858035828766625e-5,6.857332667336269e-8,0.003495626962793271,-4.8512296531638016e-5,6.845495049254806e-8,0.003495649053141319,-4.852049680516395e-5,6.846936904534974e-8,0.00349572299679345,-4.859225484338337e-5,6.859329915473242e-8,0.0034958728136478237,-4.870052145709375e-5,6.877863372874697e-8,0.003496109274904872,-4.8807474643686194e-5,6.895900381066696e-8,0.0034964250870034323,-4.887130098211752e-5,6.906179269833887e-8,0.0034967931639454048,-4.885581409325789e-5,6.902485348345956e-8,0.0034971698712657363,-4.874139651093061e-5,6.881530246607359e-8,0.0034975044920154213,-4.853405294472491e-5,6.84449092255104e-8,0.0034977539089692195,-4.82679369446728e-5,6.797415829244196e-8,0.0034978977356623906,-4.799750824878962e-5,6.749837862946622e-8,0.003497946438249529,-4.778016802970108e-5,6.71174247409688e-8,0.003497937170337883,-4.765667743097292e-5,6.690162413586374e-8,0.0034979190953097782,-4.763908471093491e-5,6.687094352623798e-8,0.003497936251514583,-4.771117288133363e-5,6.699607854306233e-8,0.0034980160892215074,-4.783863709240464e-5,6.72164958349271e-8,0.0034981665960245093,-4.798196106874302e-5,6.746304065721289e-8,0.0034983797653029723,-4.810632101892896e-5,6.7675162011292e-8,0.003498637465113023,-4.818668505636025e-5,6.780961989824135e-8,0.003498916867361659,-4.820909523255125e-5,6.784251930616007e-8,0.0034991943722301896,-4.816994545602405e-5,6.77679407084832e-8,0.003499448182358842,-4.8074658565751284e-5,6.759564195017042e-8,0.003499660159392372,-4.793641707463699e-5,6.734892080114882e-8,0.003499817561197899,-4.777495464323169e-5,6.70625616249293e-8,0.0034999149556601225,-4.761498368904733e-5,6.678005875369204e-8,0.0034999561644388504,-4.7483672003196496e-5,6.654908362581237e-8,0.003499955598723389,-4.7406752130685654e-5,6.64145242188782e-8,0.003499937981419274,-4.7403373506660164e-5,6.64093764187308e-8,0.0034999354725625304,-4.748062569635709e-5,6.654518620862992e-8,0.0034999818663642855,-4.762947778629249e-5,6.680512211808298e-8,0.003500104737353191,-4.782411608126126e-5,6.714310459443665e-8,0.0035003176166506283,-4.802589279357225e-5,6.749101949715656e-8,0.0035006147541124916,-4.819155958831892e-5,6.777333062458293e-8,0.0035009704717046735,-4.8283900302600454e-5,6.79257035406021e-8,0.0035013438418472647,-4.828195062171539e-5,6.791269545624289e-8,0.0035016879794580935,-4.818789700989003e-5,6.77394776851162e-8,0.00350196195728518,-4.8028314713332036e-5,6.7453611515929e-8,0.0035021422800556846,-4.784851634702435e-5,6.713486096804716e-8,0.0035022301857497284,-4.770064526201016e-5,6.687425034339409e-8,0.0035022515726871335,-4.762872570098612e-5,6.674801281177754e-8,0.003502248809025409,-4.76559744371242e-5,6.6795665439382e-8,0.0035022673478896467,-4.777938593190681e-5,6.701087743219682e-8,0.003502342631637575,-4.7973344665574994e-5,6.734808187955503e-8,0.0035024922414820824,-4.819969702053791e-5,6.774024524213613e-8,0.003502715017307082,-4.841926028605082e-5,6.811897897486228e-8,0.0035029954034810603,-4.8600480484494276e-5,6.842952899629088e-8,0.003503309784163736,-4.872362633221379e-5,6.863790981889476e-8,0.0035036322351094896,-4.878127146575032e-5,6.873159448741184e-8,0.0035039386022962613,-4.877672372667128e-5,6.871671928860393e-8,0.003504208970165578,-4.87218399559206e-5,6.861430714964363e-8,0.003504429141433504,-4.863501729753385e-5,6.845682584882933e-8,0.00350459182981821,-4.853945290340068e-5,6.828516088744188e-8,0.0035046979735865453,-4.846124060565817e-5,6.814520400131455e-8,0.00350475808642424,-4.842667362547513e-5,6.808297903800876e-8,0.00350479302443529,-4.845822639406622e-5,6.813746753851686e-8,0.003504833027239744,-4.8569169986268695e-5,6.833115419174137e-8,0.003504913702238319,-4.8757838383985466e-5,6.866012446657687e-8,0.0035050683853181447,-4.900391199350466e-5,6.908782646579392e-8,0.0035053182256271995,-4.926964452673352e-5,6.954751938057267e-8,0.003505663509814919,-4.950767016413277e-5,6.995616209346973e-8,0.003506080502214955,-4.967398233611283e-5,7.023720489982495e-8,0.0035065262851390663,-4.974153435641874e-5,7.034430756266863e-8,0.003506950416802348,-4.970896615211756e-5,7.027638385694825e-8,0.003507309058355678,-4.960110682063593e-5,7.0078148342398e-8,0.003507576569966767,-4.9461571981689524e-5,6.982680430100155e-8,0.003507751260505524,-4.9340525835212706e-5,6.961036660223815e-8,0.0035078543380118467,-4.928155435713404e-5,6.950463542881697e-8,0.003507923017411245,-4.931120710474176e-5,6.955507505634865e-8,0.003508000088817847,-4.943373386134086e-5,6.976794205386932e-8,0.0035081230318595195,-4.9631997266688886e-5,7.011223942234489e-8,0.003508315707408989,-4.987372010955851e-5,7.053089174394624e-8,0.003508584634184765,-5.012067906449034e-5,7.095689951327328e-8,0.003508920154172877,-5.033779131119303e-5,7.13291488630146e-8,0.0035093011174319503,-5.0499608977751295e-5,7.16036029544808e-8,0.0035097008909079027,-5.059322819724562e-5,7.175822123658268e-8,0.003510092795370233,-5.0618099620991336e-5,7.179252228933486e-8,0.0035104540074803628,-5.058396686418179e-5,7.172395576915468e-8,0.0035107678630634256,-5.050815563358695e-5,7.15831936559844e-8,0.0035110250474179707,-5.041300190160958e-5,7.140965978633763e-8,0.003511224303772449,-5.0323602655051194e-5,7.124755864747469e-8,0.003511373081760116,-5.026556563032649e-5,7.114182180173342e-8,0.0035114881227789486,-5.026219499321855e-5,7.113303314780363e-8,0.003511595434404246,-5.0330578468163386e-5,7.125049337013055e-8,0.003511728512620591,-5.047647794780582e-5,7.15033405278639e-8,0.0035119233836461974,-5.0689046876978714e-5,7.187153222950117e-8,0.003512209769178392,-5.093800093324406e-5,7.230120436607415e-8,0.003512599955153083,-5.1176799888461815e-5,7.271049692322936e-8,0.003513080034794742,-5.135392592457402e-5,7.300940477436388e-8,0.003513609502076132,-5.14298349934786e-5,7.312941724983363e-8,0.0035141320281950124,-5.139216413429823e-5,7.305001548325024e-8,0.0035145936629104664,-5.1261041454466944e-5,7.28077595651944e-8,0.003514959887450534,-5.108168091747994e-5,7.248300624823855e-8,0.0035152241266274524,-5.090867675710344e-5,7.217204520177112e-8,0.0035154059396990682,-5.078968882418096e-5,7.195828527441259e-8,0.0035155420813633245,-5.075426745699315e-5,7.189270617613542e-8,0.0035156751083582306,-5.0809654038145116e-5,7.198679130075311e-8,0.003515843117254807,-5.094257374417173e-5,7.221607476825528e-8,0.0035160725094786714,-5.112494538587068e-5,7.253048594280297e-8,0.0035163744088703465,-5.132142690619098e-5,7.286773029032713e-8,0.0035167446049327736,-5.1497064920155425e-5,7.316666417595633e-8,0.003517166385541075,-5.1623642515698906e-5,7.337826896105822e-8,0.0035176151934762446,-5.168374224689177e-5,7.347259275945112e-8,0.0035180638474490854,-5.167220679053694e-5,7.344117159692746e-8,0.003518487230567752,-5.159533656149261e-5,7.329555446259182e-8,0.0035188657466365884,-5.146856119474064e-5,7.306321274190783e-8,0.0035191873567905307,-5.13134535075297e-5,7.278232032475649e-8,0.0035194484899109596,-5.1154771029381724e-5,7.249655785721567e-8,0.0035196543025420254,-5.101775638284942e-5,7.225031546170417e-8,0.0035198186084428556,-5.0925530397301455e-5,7.208400788541844e-8,0.0035199635105888586,-5.089622436322815e-5,7.202894163244655e-8,0.003520118343208592,-5.093945103045378e-5,7.210112224469392e-8,0.0035203169511922577,-5.105206016209678e-5,7.229397007328736e-8,0.003520592065648051,-5.1214188069510806e-5,7.2571689142489e-8,0.00352096625240208,-5.138810927673326e-5,7.286756429012272e-8,0.0035214411001403445,-5.1523353653888815e-5,7.309310451119305e-8,0.0035219896591436894,-5.15702050538723e-5,7.316168179423694e-8,0.0035225589618442157,-5.149859927706176e-5,7.302152157725176e-8,0.003523085668432638,-5.1313067895405906e-5,7.268175566529078e-8,0.003523518917940908,-5.105359802726036e-5,7.221375246224139e-8,0.003523838095962248,-5.0780520742168284e-5,7.17243210762634e-8,0.0035240564761216146,-5.0552185506667285e-5,7.13161973079306e-8,0.003524211505779421,-5.040730619616483e-5,7.105688273569124e-8,0.003524349502340482,-5.035813602950126e-5,7.096680808680643e-8,0.0035245122820342207,-5.039321453053906e-5,7.102455458373297e-8,0.003524729076631242,-5.0485092313253465e-5,7.1180850127246e-8,0.003525013583176288,-5.059899047337806e-5,7.137404304621766e-8,0.003525364590777378,-5.070022815478351e-5,7.154318300099117e-8,0.0035257686958330417,-5.075977742115368e-5,7.163764186847562e-8,0.003526204144558562,-5.075793251795897e-5,7.16233638631601e-8,0.003526645154897335,-5.06861406598159e-5,7.148591957241648e-8,0.003527066167471657,-5.0547118838004726e-5,7.123062042100954e-8,0.0035274455836368955,-5.03535175473795e-5,7.088014482938875e-8,0.003527768623758874,-5.012545639882056e-5,7.047021401502236e-8,0.0035280290362206864,-4.988738877980477e-5,7.004408058198917e-8,0.0035282296839363246,-4.966483945398808e-5,6.964675729891865e-8,0.003528382291270085,-4.9481325891113706e-5,6.931952735975422e-8,0.003528506567199636,-4.935546278755109e-5,6.909476075587484e-8,0.003528628724271695,-4.929815291741338e-5,6.899092748257108e-8,0.0035287791842859104,-4.9309749713025403e-5,6.900767973450815e-8,0.0035289888641371506,-4.9377284113068966e-5,6.912119895490268e-8,0.003529283256307753,-4.947268367777429e-5,6.92813827041382e-8,0.0035296742313782816,-4.955407009659888e-5,6.941439827038625e-8,0.003530151349516904,-4.957278427309963e-5,6.943511266213218e-8,0.0035306772094212354,-4.948747198735312e-5,6.92717079077621e-8,0.003531192964839601,-4.928195652942658e-5,6.889685346018671e-8,0.0035316365215482056,-4.89774365236009e-5,6.834895029601523e-8,0.003531966575744259,-4.862874958980648e-5,6.772540073203424e-8,0.0035321786442322665,-4.830377164926679e-5,6.714615431489767e-8,0.003532303511122255,-4.805750770984733e-5,6.670788672264682e-8,0.0035323910644271955,-4.7915439884981005e-5,6.645464473265158e-8,0.003532490905278016,-4.787198094158151e-5,6.637538089556046e-8,0.0035326391070453276,-4.7899603242805185e-5,6.6420465804465665E-08,0.003532853457600977,-4.79609329089279e-5,6.652335567882734e-8,0.003533134764875135,-4.801870810507902e-5,6.661826425948239e-8,0.0035334709225311187,-4.80420607780708e-5,6.6651124930788e-8,0.0035338414892082007,-4.800969554135657e-5,6.658497123133597e-8,0.003534221883309781,-4.791109649069916e-5,6.640185991590025e-8,0.0035345870911481937,-4.774650430734176e-5,6.610271983901248e-8,0.003534914922415681,-4.7525956167852065e-5,6.570564041722356e-8,0.003535188784668761,-4.726751897573049e-5,6.524278234784632e-8,0.003535399869757837,-4.699475689773158e-5,6.475593288560843e-8,0.003535548488616758,-4.673352273796198e-5,6.429082959559262e-8,0.0035356443027719678,-4.6508419457597334e-5,6.389085743601263e-8,0.003535705452163371,-4.633936348530399e-5,6.359090277517784e-8,0.0035357567090917945,-4.623851257366044e-5,6.341187165168234e-8,0.003535826730715225,-4.6207747236638295e-5,6.335626221346214e-8,0.0035359444328626815,-4.62369186224868e-5,6.340521229944e-8,0.0035361343987252193,-4.6303140463713727e-5,6.351750974087675e-8,0.0035364112077063,-4.637182901460024e-5,6.363172583245652e-8,0.0035367731674912405,-4.640084478194753e-5,6.367372155706706e-8,0.003537197303637594,-4.634911429135081e-5,6.357183762261232e-8,0.0035376391122535576,-4.618966433176537e-5,6.327964211385549e-8,0.003538041119459337,-4.592349949638268e-5,6.280007246840904e-8,0.0035383510638224264,-4.558644822183458e-5,6.219724757422401e-8,0.0035385429814836127,-4.524104977366377e-5,6.158200500178063e-8,0.0035386287865788782,-4.495389988038994e-5,6.107183348045023e-8,0.003538652157842681,-4.477026159769317e-5,6.074602879654554e-8,0.0035386688439036844,-4.47004078804151e-5,6.062170724859673e-8,0.003538726003163398,-4.4722809906257866e-5,6.065974926915645e-8,0.0035388505435425223,-4.4797903515981296e-5,6.078947944701308e-8,0.003539047874416657,-4.488281287540454e-5,6.093489620785433e-8,0.0035393068814284787,-4.4941391084842396e-5,6.103238884542969e-8,0.003539606554146499,-4.494882794965666e-5,6.103867464873075e-8,0.003539921676724328,-4.4892499760318906e-5,6.093205597538492e-8,0.003540226919719803,-4.477102781459113e-5,6.07105950251088e-8,0.0035404997394379314,-4.4592754938286915e-5,6.03893845810904e-8,0.0035407226338242614,-4.437398906963968e-5,5.999749164758063e-8,0.003540885022134315,-4.413694086471505e-5,5.957436958624628e-8,0.0035409847601478635,-4.3907158055120185e-5,5.91653320895687e-8,0.003541029039603609,-4.371029443432704e-5,5.881578782502931e-8,0.003541034222876167,-4.3568356911767184e-5,5.856451374224705e-8,0.0035410242820919035,-4.34959360356527e-5,5.843690932693798e-8,0.0035410278165807162,-4.349704460319828e-5,5.8439391136652944e-8,0.003541073866467474,-4.35631774348635e-5,5.8556051173999174e-8,0.003541186954993939,-4.367314619920436e-5,5.874856491748497e-8,0.0035413819586960823,-4.379504612211161e-5,5.895993621631804e-8,0.003541659481115643,-4.389056974908652e-5,5.9122364071120686e-8,0.0035420026717852874,-4.392188556736655e-5,5.9169501196338025e-8,0.0035423770266627625,-4.386091460591744e-5,5.9052739202674654e-8,0.003542735137307152,-4.369954534362978e-5,5.8758966934382756e-8,0.003543027709928473,-4.345726115647605e-5,5.8323693696870554e-8,0.003543219432923343,-4.318096116450492e-5,5.783045574779396e-8,0.0035433037039722254,-4.293306375151269e-5,5.7389662664115485e-8,0.003543307510625984,-4.2770211481893025e-5,5.710096925546551e-8,0.003543281657416864,-4.2722564889928e-5,5.7016803661170176e-8,0.0035432808969128654,-4.2784998811324036e-5,5.7127048886294805e-8,0.003543345083182791,-4.29237431526913e-5,5.7371094348610354e-8,0.0035434901225729534,-4.309218173774192e-5,5.766603094543882e-8,0.0035437096200434323,-4.324625449648452e-5,5.793397699501254e-8,0.003543982437111229,-4.335377416740421e-5,5.811844457672117e-8,0.003544280963361055,-4.339731616568985e-5,5.81892230593214e-8,0.003544577345674607,-4.337307492070495e-5,5.814014309175838e-8,0.0035448472547188253,-4.328818788598209e-5,5.798423922921832e-8,0.003545071945356522,-4.315800457900615e-5,5.774893393946444e-8,0.0035452395202854154,-4.300371531604833e-5,5.7471914844255585e-8,0.0035453459408502194,-4.285012265748278e-5,5.719723861116069e-8,0.0035453958923160433,-4.2723120313231096e-5,5.697084279090594e-8,0.0035454032149012556,-4.264651128545993e-5,5.683482254338785e-8,0.0035453903011499546,-4.2638151061864956e-5,5.682050114724788e-8,0.003545385835098054,-4.270593783651835e-5,5.6941284815840156e-8,0.0035454206037119564,-4.2844639289619016e-5,5.718710304786205e-8,0.003545521737679013,-4.3034763683612925e-5,5.7522579910149e-8,0.0035457064554863466,-4.3244478586494526e-5,5.7890672855239426e-8,0.0035459768841103315,-4.343484771283477e-5,5.822218243869248e-8,0.0035463175130871715,-4.35676865911608e-5,5.8449803092231185e-8,0.003546696374372438,-4.361459001005239e-5,5.852408386886376e-8,0.003547070408275864,-4.3565227278255075e-5,5.842791123349795e-8,0.0035473947092906958,-4.343266116837182e-5,5.8185596798430805e-8,0.003547634245769986,-4.3253317404532224e-5,5.786248016398101e-8,0.003547775128552845,-4.307980993012999e-5,5.755198880500784e-8,0.0035478310759871168,-4.296686019185961e-5,5.7350653828112885e-8,0.003547840931561206,-4.295416001320256e-5,5.732790326738767e-8,0.003547856465191098,-4.305323561587963e-5,5.7503072995357236e-8,0.0035479251065484753,-4.3244764513410865e-5,5.7840967381065036e-8,0.0035480755467052556,-4.3487437490787506e-5,5.82678059755974e-8,0.003548312159234838,-4.3733132149183526e-5,5.869821561074207e-8,0.003548618609759482,-4.394085957403888e-5,5.9059893258797215e-8,0.0035489665155445534,-4.4084657379925696e-5,5.930742385274079e-8,0.0035493243155301293,-4.4155064485646884e-5,5.94246850590516e-8,0.0035496635912923074,-4.415657349882108e-5,5.942017343141657e-8,0.003549962454933137,-4.4103723515838815e-5,5.932002348157367e-8,0.0035502068853032385,-4.401745537774121e-5,5.91615814739689e-8,0.0035503910919313167,-4.392223541541534e-5,5.898836758135166e-8,0.0035505176599334156,-4.3843716170544275e-5,5.884594653272736e-8,0.0035505977261718136,-4.3806355923926305e-5,5.877765373835154e-8,0.0035506509029348764,-4.38304481117814e-5,5.881923373523053e-8,0.0035507042417583052,-4.392838644885185e-5,5.8992150582505356e-8,0.003550789375607358,-4.4100629561268414e-5,5.9296460179193444e-8,0.0035509372747178996,-4.4332623510118206e-5,5.970549942120029e-8,0.0035511709877155606,-4.459455929913146e-5,6.016568287046157e-8,0.0035514981633926815,-4.4845618151110135e-5,6.060425933750863e-8,0.0035519062473257645,-4.504285818124529e-5,6.094521953949166e-8,0.003552363010141798,-4.515265199572119e-5,6.112959670344877e-8,0.0035528232538145662,-4.516091931665212e-5,6.113348597576136e-8,0.0035532400588138987,-4.5078419810363994e-5,6.097717700290937e-8,0.0035535771481694945,-4.4939099071296303e-5,6.07218955472018e-8,0.0035538186514130496,-4.479186991256323e-5,6.045492489427308e-8,0.0035539735035672354,-4.4688098423139305e-5,6.02672442098929e-8,0.0035540731748337205,-4.466810631879039e-5,6.022963420680442e-8,0.0035541630731403067,-4.475043551216551e-5,6.037388305148787e-8,0.003554289865126375,-4.4927280773815736e-5,6.068503341769779e-8,0.0035544886846951913,-4.516779476639947e-5,6.110755581298996e-8,0.0035547745839082123,-4.542805241964009e-5,6.156319330980759e-8,0.0035551408759050616,-4.5663759910920776e-5,6.197350799964669e-8,0.003555563963135248,-4.5841008864221135e-5,6.227883337795943e-8,0.0035560116876657694,-4.5941979139417047e-5,6.24482093400329e-8,0.0035564516280192447,-4.596527201117455e-5,6.24798008660841e-8,0.003556857010155012,-4.592266312849646e-5,6.239502440655055e-8,0.003557209714814007,-4.5834565631833704e-5,6.223046308066282e-8,0.003557501080364987,-4.572581403912075e-5,6.203040815733011e-8,0.0035577315537230697,-4.562240269450946e-5,6.184110140786349e-8,0.003557910036471095,-4.554903608560832e-5,6.170637764909142e-8,0.0035580533024840793,-4.552692161730423e-5,6.166368747736406e-8,0.0035581853049642667,-4.557119728743023e-5,6.173946177102266e-8,0.0035583356940717664,-4.568768485662425e-5,6.194333838364082e-8,0.0035585365708927026,-4.586927857225371e-5,6.226185510588425e-8,0.0035588166627198116,-4.609326999183041e-5,6.265390851272246e-8,0.003559193137323904,-4.632193829336071e-5,6.30520372167614e-8,0.003559663281878733,-4.650876999059089e-5,6.337362542760012e-8,0.003560200245713937,-4.661063021140253e-5,6.354254648899662e-8,0.0035607569317794813,-4.6602396654738655e-5,6.351506594055439e-8,0.003561278648384015,-4.6487494514614917e-5,6.32983887923139e-8,0.0035617199935504846,-4.6298558243764545e-5,6.29516014692535e-8,0.003562058627582537,-4.608741314362649e-5,6.256758166751812e-8,0.0035623004672044175,-4.5909078533960046e-5,6.224430829280521e-8,0.003562475581175662,-4.5806486601264316e-5,6.205760310203278e-8,0.0035626279001984354,-4.580067735294027e-5,6.204384806523509e-8,0.003562802954124633,-4.5888015756848204e-5,6.219537779330008e-8,0.003563037055132452,-4.6043654273636875e-5,6.246701201447148e-8,0.003563350070700666,-4.622932203076322e-5,6.27901620525839e-8,0.0035637427913076075,-4.6403085941301916e-5,6.309025042503193e-8,0.003564198880158738,-4.6528682381631946e-5,6.330320173165173e-8,0.0035646903766327347,-4.658232632749611e-5,6.338736538669235e-8,0.0035651848849890845,-4.6555732749513495e-5,6.332870370697999e-8,0.0035656523705938485,-4.645535269046844e-5,6.313929883122431e-8,0.0035660700713561725,-4.6298937321714985e-5,6.285117367268997e-8,0.003566425004528302,-4.611096934697695e-5,6.250815533966789e-8,0.0035667143995241142,-4.591827694533483e-5,6.215809174271331e-8,0.0035669448573334944,-4.574655007561588e-5,6.184666832943819e-8,0.0035671310343054594,-4.561778706202556e-5,6.161284724828767e-8,0.0035672942787601126,-4.554824175451044e-5,6.148516952915002e-8,0.0035674611803288114,-4.5546361387194964e-5,6.147805454901015e-8,0.003567661543033928,-4.5610385548273515e-5,6.158757512312564e-8,0.003567924912442449,-4.5725767445714075e-5,6.178702994408387e-8,0.0035682748142848095,-4.5863544983274e-5,6.202428486357496e-8,0.0035687207877180566,-4.598192357438832e-5,6.222480065079293e-8,0.0035692503506583244,-4.603366023380281e-5,6.230484445613422e-8,0.0035698255742100237,-4.597995195287227e-5,6.219611092854864e-8,0.0035703895352063105,-4.580682740172019e-5,6.187471998839677e-8,0.003570883632004423,-4.553525834522834e-5,6.137904502638934e-8,0.003571268864222055,-4.521699225352601e-5,6.080211684283172e-8,0.0035715396695708015,-4.4916408899932836e-5,6.025908338968015e-8,0.003571723198393817,-4.468799023289393e-5,5.984686372144387e-8,0.003571866379697392,-4.456067955242553e-5,5.961625196141818e-8,0.0035720191409290983,-4.453406964456066e-5,5.956536150564443e-8,0.0035722211083410766,-4.458410992868764e-5,5.965019352482582e-8,0.003572494625911943,-4.4673173061435514e-5,5.980293252365561e-8,0.0035728434568544545,-4.476028636567257e-5,5.995034390494367e-8,0.0035732552997467812,-4.480936493091201e-5,6.002839604720158e-8,0.003573706429317807,-4.479480285769821e-5,5.99920413721776e-8,0.0035741673042217212,-4.4704415364411226e-5,5.982025244393188e-8,0.0035746082437256763,-4.45398457623661e-5,5.951659167339322e-8,0.003575004335958261,-4.43147481520429e-5,5.9105889956792483e-8,0.003575338940318722,-4.405137481478573e-5,5.862814161090186e-8,0.0035756054724064797,-4.3776367002100296e-5,5.81310100746709e-8,0.0035758075061845546,-4.3516565870462726e-5,5.766237414128631e-8,0.0035759576042431298,-4.32955011747464e-5,5.726406668644314e-8,0.003576075473322457,-4.313078064462699e-5,5.696719548910158e-8,0.0035761858511276887,-4.3032185858342236e-5,5.678871564724287e-8,0.0035763162079560256,-4.300017921430965e-5,5.672876610846801e-8,0.0035764940524594456,-4.3024605140873026e-5,5.6768438605918676e-8,0.0035767432881861085,-4.30836704446525e-5,5.686814868430869e-8,0.0035770790275487753,-4.314407216803266e-5,5.6968106744896594e-8,0.0035775010573515023,-4.3164050813275044e-5,5.699394484154996e-8,0.003577987803146952,-4.310136895375068e-5,5.6870952361826546e-8,0.0035784948165471183,-4.292678335936257e-5,5.65479221696561e-8,0.003578962840272767,-4.2639405852658924e-5,5.602429479005061e-8,0.003579336851006414,-4.227498438897039e-5,5.536473452635238e-8,0.003579588685688661,-4.18979968512765e-5,5.468488805835137e-8,0.0035797296080622783,-4.1578011198993515e-5,5.4109049105691114e-8,0.0035798042114301037,-4.1363105981440804e-5,5.372259413331688e-8,0.0035798702564199783,-4.126542984896543e-5,5.354626012529212e-8,0.0035799774382410184,-4.126391236459329e-5,5.354128307652321e-8,0.003580154993927935,-4.1317791469285e-5,5.363395239974795e-8,0.003580409608935486,-4.1381581597515776e-5,5.374262013811699e-8,0.003580729783643385,-4.1415934670145685e-5,5.3797139133405634e-8,0.003581092408746188,-4.139336320909661e-5,5.3748926352074026e-8,0.003581469034566333,-4.130007224972205e-5,5.357400193982709e-8,0.0035818310034735766,-4.1135487314135264e-5,5.3271956810880735e-8,0.0035821534692491988,-4.0910476824976e-5,5.286268340386592e-8,0.003582418418358619,-4.06446935945381e-5,5.238161243589318e-8,0.0035826166797022483,-4.0363280171443215e-5,5.187384845082181e-8,0.00358274884529989,-4.009317462540421e-5,5.1387588037206476e-8,0.003582824995614943,-3.985933882274082e-5,5.096737917280055e-8,0.0035828632611508504,-3.9681384105172434e-5,5.064806914993073e-8,0.0035828875139954875,-3.957098298811167e-5,5.045014818249678e-8,0.003582924529544475,-3.953016479695639e-5,5.0376688098463605e-8,0.00358300081862799,-3.955047708564117e-5,5.0411877426842314e-8,0.0035831392261010796,-3.961300640930363e-5,5.052117648958689e-8,0.003583355214352302,-3.968931328155379e-5,5.065319072165797e-8,0.0035836526718863154,-3.974377438611344e-5,5.074407946967609e-8,0.003584019676710392,-3.973841845099247e-5,5.072633320424865e-8,0.0035844258489106545,-3.9641235948389545e-5,5.0543575221023724e-8,0.003584824176308066,-3.943762986883524e-5,5.0170788891649215e-8,0.0035851605988330357,-3.914173842671066e-5,4.963424297277142e-8,0.0035853918960880448,-3.880043670747472e-5,4.9018405921792256e-8,0.003585505322328108,-3.848249328671764e-5,4.844644654517097e-8,0.003585527515563994,-3.8253569503164206e-5,4.803549689485371e-8,0.0035855144146158527,-3.8149888897543195e-5,4.784960245800021e-8,0.0035855273906091824,-3.8166487904675314e-5,4.787887836846632e-8,0.0035856104495281117,-3.8265157169492204e-5,4.805402080142565e-8,0.0035857798816200707,-3.8393560363288984e-5,4.828082047147677e-8,0.0035860268763078557,-3.8503227747035004e-5,4.847250586230702e-8,0.003586326680961035,-3.855986372475001e-5,4.8568113786697065e-8,0.003586648121636525,-3.8546152355993225e-5,4.853728942981486e-8,0.0035869605978639182,-3.846010828728895e-5,4.837710529272839e-8,0.003587238303345829,-3.8311783073421156e-5,4.810602981932446e-8,0.0035874625495865785,-3.811982896336047e-5,4.775775329407981e-8,0.00358762304655042,-3.790829412712801e-5,4.7375493462969575e-8,0.003587718543212155,-3.7703539314087314e-5,4.700651815697953e-8,0.0035877568854504843,-3.753109690746856e-5,4.669652828927809e-8,0.0035877543189045003,-3.741240911193318e-5,4.648378792509094e-8,0.0035877337821993926,-3.736170012036886e-5,4.639348279578213e-8,0.003587722146397466,-3.738348798138e-5,4.643324183247487e-8,0.003587746637258956,-3.747117499085622e-5,4.659063494568057e-8,0.0035878308010265218,-3.760702188597041e-5,4.683321176191194e-8,0.0035879904688035855,-3.776372946249842e-5,4.7111485215557924e-8,0.0035882302134709367,-3.790765307608103e-5,4.736488113389693e-8,0.0035885407027646038,-3.800358818517712e-5,4.753047496748133e-8,0.0035888975265631912,-3.802122612155703e-5,4.755460390198331e-8,0.003589262683625903,-3.7943134492679234e-5,4.740703403510289e-8,0.003589590313060849,-3.777295305645327e-5,4.709535929441549e-8,0.0035898376636516174,-3.754070148435225e-5,4.6674180657203245e-8,0.003589979939820703,-3.730052104784748e-5,4.6240824276023414e-8,0.003590023371945228,-3.711708048632642e-5,4.5910925049693536e-8,0.0035900077501635065,-3.7042871910765236e-5,4.577784781514526e-8,0.0035899933020088546,-3.709707415007798e-5,4.587502096050476e-8,0.003590037208575344,-3.725873614994456e-5,4.6163979998570615e-8,0.0035901730111987757,-3.747812082032692e-5,4.655494611376622e-8,0.0035904033060219416,-3.769784537258867e-5,4.6944876133643913e-8,0.003590705852666982,-3.787137405914086e-5,4.725061888805473e-8,0.0035910458330059257,-3.7972004750569304e-5,4.7424881917477886e-8,0.0035913870901548824,-3.799305368319623e-5,4.7456342834723396e-8,0.003591699210907479,-3.794340612840332e-5,4.736148608065085e-8,0.0035919606768198722,-3.7842095199116786e-5,4.7174801397497153e-8,0.0035921596171359957,-3.7713708795726786e-5,4.6940568127754947e-8,0.003592293558379161,-3.758490512066759e-5,4.6706667488679346e-8,0.0035923688823323,-3.7481625279828046e-5,4.651961895285797e-8,0.0035924001126666325,-3.742650014676788e-5,4.641991343171655e-8,0.003592408782381076,-3.743612894819133e-5,4.643708427178588e-8,0.0035924214411165024,-3.751830128528744e-5,4.6584688608919025e-8,0.0035924664696293106,-3.7669705308534085e-5,4.685621045027915e-8,0.003592569774155505,-3.7874901547291835e-5,4.7223301285490726e-8,0.003592749902450613,-3.810728859606727e-5,4.763765035237718e-8,0.0035930135281971444,-3.833251364146036e-5,4.8037268016193544e-8,0.003593352477999401,-3.85142094254474e-5,4.835692293551611e-8,0.003593743318325711,-3.862124028617287e-5,4.8541211620976406e-8,0.0035941500803349773,-3.8635219635304036e-5,4.855799005285224e-8,0.0035945303054739485,-3.8556856029829644e-5,4.8409563859566875e-8,0.0035948441441678958,-3.84093266238022e-5,4.8138450958546775e-8,0.0035950652932258955,-3.823653707192244e-5,4.7823971958565097E-08,0.003595191000352243,-3.809453371200407e-5,4.7566669363102354e-8,0.003595246796889517,-3.803631027123147e-5,4.7461060314247433E-08,0.0035952816700368603,-3.809404780623166e-5,4.756396298769029e-8,0.0035953529476908017,-3.826654280703843e-5,4.7872228760978966e-8,0.0035955064360887307,-3.851914359448242e-5,4.832290540180464e-8,0.0035957614102684605,-3.8797097685212365e-5,4.8817364790469434e-8,0.0035961074408753227,-3.904519065318432e-5,4.925659081088645e-8,0.0035965125426542463,-3.922380619036841e-5,4.9569925989950274e-8,0.0035969362675940465,-3.9315732962972006e-5,4.972712682605005e-8,0.003597341109482439,-3.932441886961113e-5,4.9735041797245097e-8,0.0035976991308152764,-3.9267828750470704e-5,4.962644042986901e-8,0.0035979941492756103,-3.917176770050048e-5,4.944797265987095e-8,0.0035982212646163817,-3.906461231436291e-5,4.925073309806581e-8,0.0035983853864858173,-3.8973731332623625e-5,4.9083882869826816e-8,0.003598499705108412,-3.8923037020490345e-5,4.899027237780294e-8,0.003598584313547959,-3.893093107139329e-5,4.900272753215885e-8,0.003598664665047769,-3.900814200916675e-5,4.914012707459969e-8,0.003598769295912446,-3.91554181102269e-5,4.940325446403414e-8,0.003598926296552057,-3.936159589408526e-5,4.9771395938974046e-8,0.0035991584178781378,-3.9603052569638225e-5,5.020149262688757e-8,0.0035994774570306106,-3.9845742495034574e-5,5.063196470603437e-8,0.003599879456446016,-4.0050595060088164e-5,5.099254875986903e-8,0.0036003427551529487,-4.018188155414745e-5,5.121939647495595e-8,0.0036008305267239238,-4.021666105614067e-5,5.127201267350899e-8,0.003601298082359539,-4.015241628723848e-5,5.114683795044416e-8,0.0036017034785005065,-4.001010080325409e-5,5.0882498429844205e-8,0.0036020186446318633,-3.983102151691306e-5,5.055393791953197e-8,0.00360223784043595,-3.966773922720605e-5,5.025583994965174e-8,0.0036023807275160397,-3.957088011118183e-5,5.0078834765566855e-8,0.0036024884440489483,-3.957514576006304e-5,5.008445593779248e-8,0.003602612836630004,-3.9688759093846825e-5,5.028643421396089e-8,0.003602801507346342,-3.9890448396384285e-5,5.064559582445518e-8,0.0036030837132397233,-4.013591224250133e-5,5.1081729897139555e-8,0.0036034625787910108,-4.037175117016467e-5,5.149873123423126e-8,0.0036039164745840613,-4.0551277524241955e-5,5.181297742668326e-8,0.0036044080529050305,-4.0646004294966926e-5,5.197384946590186e-8,0.00360489619893693,-4.064945869958866e-5,5.197041780922286e-8,0.0036053460251226866,-4.0574082061552914e-5,5.182570742191499e-8,0.0036057344318386826,-4.044453999591332e-5,5.158455566701788e-8,0.0036060514579108944,-4.029075668722807e-5,5.130104481965624e-8,0.003606299011004411,-4.01424970484346e-5,5.1028778692332877e-8,0.0036064885833287518,-4.0025849226308426e-5,5.081459498933569e-8,0.003606638973317254,-3.9961099891688534e-5,5.069476213733481e-8,0.003606774332411993,-3.9961203232245695e-5,5.069221405358963e-8,0.0036069222452277806,-4.003023028212907e-5,5.081374865009258e-8,0.0036071112182922568,-4.016168303508934e-5,5.1047028727656355e-8,0.003607366963232316,-4.033714988858951e-5,5.135826999643147e-8,0.0036077072303672525,-4.0526398781894345e-5,5.169257162187404e-8,0.0036081358410376746,-4.069044856608033e-5,5.19795998409735e-8,0.00360863791472181,-4.0788768684664725e-5,5.214662964419998e-8,0.0036091792602710175,-4.079000858969095e-5,5.2137837160242114e-8,0.003609712280943959,-4.068309768113012e-5,5.1934170132578293e-8,0.0036101880918484254,-4.04838562463079e-5,5.1565076095717744e-8,0.0036105710604826644,-4.0233135214053623e-5,5.11049366675387e-8,0.0036108500263461432,-3.998610781681087e-5,5.065355467128838e-8,0.003611041677968052,-3.9796540409886596e-5,5.0307660035659015e-8,0.0036111851665100313,-3.970186618515915e-5,5.0134017422303575e-8,0.0036113304864999287,-3.971382372907988e-5,5.0152753919674675e-8,0.0036115247250119607,-3.98167918000583e-5,5.033467938084641e-8,0.0036118001491949494,-3.997345877334354e-5,5.061180843179813e-8,0.003612167114637999,-4.013564216404726e-5,5.089703004119631e-8,0.0036126132814578962,-4.025692196720492e-5,5.110687626163271e-8,0.0036131087640671185,-4.0303479742982214e-5,5.118093281193777e-8,0.0036136150876857724,-4.026034802700086e-5,5.109292725088119e-8,0.003614094856008835,-4.0132016043704154e-5,5.085165351686192e-8,0.0036145193074628326,-3.993836208888382e-5,5.0493512681573206e-8,0.003614872292763547,-3.9708210576448246e-5,5.0070825982924494e-8,0.003615150815762236,-3.947285164647236e-5,4.9640137095099506e-8,0.0036153632808230353,-3.926096931140428e-5,4.9253097195019005e-8,0.0036155267616432177,-3.909538048400595e-5,4.89506275147321e-8,0.0036156642392711075,-3.8991230807476714e-5,4.8759693003331155e-8,0.0036158021749105296,-3.895495080175904e-5,4.86914245950835e-8,0.0036159682275933073,-3.8983383111791493e-5,4.873955389149923e-8,0.003616188577386115,-3.9062911493915725e-5,4.887889729439448e-8,0.0036164842465590077,-3.9168981167351876e-5,4.906461395007111e-8,0.003616866127419069,-3.926707099410478e-5,4.9234122993500053E-08,0.003617329348913702,-3.931673398289274e-5,4.9314522167269587e-8,0.003617849150796829,-3.928001916208648e-5,4.923780665633049e-8,0.003618381798653043,-3.913360777112033e-5,4.896267227430695e-8,0.0036188735440883186,-3.888055553865431e-5,4.849554188132768e-8,0.003619276853702225,-3.855491658006466e-5,4.789873129478229e-8,0.0036195676184713646,-3.821416389457841e-5,4.7276580612196774e-8,0.0036197545025373444,-3.792090095161403e-5,4.6742254073388355e-8,0.0036198753513412853,-3.772222272857822e-5,4.6380371688515686e-8,0.0036199830801991757,-3.763623905030227e-5,4.6222755173165736e-8,0.00362012849213772,-3.7650144684676776e-5,4.624521707582522e-8,0.003620346940104583,-3.77278873639625e-5,4.6381754134727366e-8,0.0036206519317770578,-3.7822429509832206e-5,4.654694600928876e-8,0.0036210353347296935,-3.788800232657244e-5,4.6658156643896576e-8,0.0036214722356083732,-3.7889552847069945e-5,4.665250017723497e-8,0.0036219282737146377,-3.7808250334028e-5,4.6496606350338104e-8,0.003622367558528604,-3.764294604213074e-5,4.618907856043481e-8,0.003622759613618764,-3.740807222574171e-5,4.5756568470016735e-8,0.003623084197594277,-3.7129000539556704e-5,4.524531717165578e-8,0.0036233334897944123,-3.6836271033352585e-5,4.471070197478162e-8,0.003623511822352105,-3.656004150987419e-5,4.42072171491852e-8,0.003623633625770037,-3.632568696345636e-5,4.378055463898182e-8,0.0036237204746564565,-3.615095303416537e-5,4.3462496938331666e-8,0.0036237980238943072,-3.604451542869379e-5,4.326833725239851e-8,0.0036238932087061873,-3.600542881626248e-5,4.3195891834918523e-8,0.0036240316260941043,-3.6022998605292114e-5,4.322528366433578e-8,0.003624234754252283,-3.6076927455552074E-05,4.331926852948421e-8,0.0036245165668879796,-3.613800749232242e-5,4.34246123367742e-8,0.003624879311897084,-3.617023187311202e-5,4.3476066000601294e-8,0.0036253090835464646,-3.6135726391495956e-5,4.3405390637871034e-8,0.0036257732585274127,-3.6003592967351125e-5,4.315733397260209e-8,0.0036262232058954036,-3.576186980901324e-5,4.271111422394686e-8,0.003626605331546473,-3.542823247726426e-5,4.209956869519151e-8,0.003626879436036661,-3.50518579454549e-5,4.1412337399755736e-8,0.0036270365079126123,-3.470071004044956e-5,4.0772704917605835e-8,0.0036271047904969573,-3.443736111457935e-5,4.029373159298715e-8,0.0036271389316380864,-3.429581521273013e-5,4.003629528591115e-8,0.0036271983746661196,-3.427189565117347e-5,3.999186380888534e-8,0.0036273272627723543,-3.433001504928174e-5,4.009507060595036e-8,0.0036275443605000503,-3.441929039714666e-5,4.02532013146905e-8,0.003627843559349204,-3.448978456372097e-5,4.037574941419381e-8,0.0036282007307444626,-3.450355291645972e-5,4.039436204166938e-8,0.0036285824334346233,-3.443962968437811e-5,4.027168052144104e-8,0.003628953774846586,-3.4294406238919776e-5,4.000181674287031e-8,0.003629284453436167,-3.4079224683629005e-5,3.960585055025596e-8,0.00362955288864694,-3.381643465683662e-5,3.912462715686188e-8,0.0036297485036715003,-3.353465476085004e-5,3.8610171191587416e-8,0.0036298722480067286,-3.3263883330298314e-5,3.811684927278125e-8,0.003629935574821214,-3.303104643643447e-5,3.769332757952957e-8,0.003629958188257625,-3.285642390889165e-5,3.737611903004188e-8,0.003629964993502037,-3.275128511796277e-5,3.7185320702803963e-8,0.0036299828010852926,-3.271683137367501e-5,3.712271268820873e-8,0.003630037189355566,-3.274419552984249e-5,3.7171770693712e-8,0.003630149597490292,-3.281517977483511e-5,3.729903127915843e-8,0.0036303345419651353,-3.290362286671258e-5,3.7456641443449155e-8,0.0036305967997701106,-3.297753462876925e-5,3.758635247116539e-8,0.003630928513207681,-3.300252642506156e-5,3.762587782766384e-8,0.0036313068265694214,-3.294744940956532e-5,3.7519188323039196e-8,0.00363169380297549,-3.2792780456482834e-5,3.7231652891866554e-8,0.0036320412779389313,-3.254062980327011e-5,3.676798183842747e-8,0.0036323028298620714,-3.222229600651305e-5,3.618566999286661e-8,0.00363245144150968,-3.1896535693968474e-5,3.559165692670533e-8,0.003632494924818845,-3.163343128727202e-5,3.5112974053962996e-8,0.003632477752238004,-3.148784739433187e-5,3.4848610971418145e-8,0.0036324645616411712,-3.147677766139223e-5,3.4828549478256566e-8,0.003632513929295136,-3.1574620316264846e-5,3.5005434477029905e-8,0.0036326579319382944,-3.1727711619258e-5,3.528122902984301e-8,0.0036328967617592235,-3.187682011716218e-5,3.554823526809591e-8,0.0036332061434049393,-3.197502524181992e-5,3.572156454636925e-8,0.0036335495974229026,-3.1995847248725226e-5,3.575374279393732e-8,0.003633889293870905,-3.19333227910892e-5,3.563461873953822e-8,0.003634193172744235,-3.17978842240923e-5,3.538369154094479e-8,0.003634438615965457,-3.161109030916799e-5,3.504045625380042e-8,0.003634613855985011,-3.1400671454106465e-5,3.465541572534082e-8,0.003634718071699902,-3.11961575856113e-5,3.428219175465637e-8,0.003634760562279025,-3.102500639946222e-5,3.3970535921702535e-8,0.0036347591134491177,-3.0909251987672765e-5,3.376025962304962e-8,0.003634737607805422,-3.086278268132625e-5,3.367629517795057e-8,0.0036347229490649663,-3.088948453492992e-5,3.372533325761154e-8,0.003634741563228235,-3.0982560065987805e-5,3.389460784514429e-8,0.003634815901229414,-3.112512713113596e-5,3.4153020033679004e-8,0.0036349612766972193,-3.129198170965659e-5,3.4454394956192596e-8,0.003635183245992869,-3.145240784677646e-5,3.4742669582784826e-8,0.0036354757079425717,-3.1573956992053166e-5,3.495886526255861e-8,0.0036358199160614058,-3.1627212256825974e-5,3.504983415027823e-8,0.0036361849045063073,-3.159171660721317e-5,3.4979039620345153e-8,0.003636530479561921,-3.1462895172653124e-5,3.473901011215707e-8,0.0036368142578559253,-3.1258495477149596e-5,3.436280051338025e-8,0.003637003387374721,-3.102115681331883e-5,3.3928392231956515e-8,0.003637088755021439,-3.081237158304347e-5,3.35475459720963e-8,0.003637094946225761,-3.069500019812094e-5,3.333402234292594e-8,0.0036370770559699434,-3.0708848592774254e-5,3.335935424561485e-8,0.0036371013292986853,-3.085231309250355e-5,3.361973574732224e-8,0.0036372186076369544,-3.108268917674487e-5,3.4036836713625407e-8,0.0036374461301725914,-3.133543760619602e-5,3.449300493597974e-8,0.0036377666800752285,-3.154966294649507e-5,3.4877648547478624e-8,0.003638141297749838,-3.1685759118405125e-5,3.511925103365506e-8,0.0036385252843173046,-3.173024090401332e-5,3.5193980505349496e-8,0.0036388799750885084,-3.1691380373824776e-5,3.5117541386689996e-8,0.003639178463924923,-3.1591479016366276e-5,3.493096321710203e-8,0.003639406831918024,-3.145964120367891e-5,3.4687408289269027e-8,0.0036395631103395176,-3.132641488984484e-5,3.444246310972407e-8,0.003639655535314708,-3.122008096808154e-5,3.4247456211883176e-8,0.0036397006665107633,-3.1163893875378406e-5,3.414448139816457e-8,0.003639721329488939,-3.1173806420359784e-5,3.416226804857164e-8,0.0036397441644748767,-3.125655767899938e-5,3.431270209771732e-8,0.003639796568166988,-3.140832386339877e-5,3.458839076722247e-8,0.0036399030331303018,-3.161441580614675e-5,3.49621599593727e-8,0.0036400812861970703,-3.1850493516183555e-5,3.538933414193512e-8,0.0036403388783366928,-3.2085469069802425e-5,3.581309683606768e-8,0.003640670899708472,-3.228595888933305e-5,3.617266898678714e-8,0.003641059410890908,-3.242184074945234e-5,3.6413480741849684e-8,0.003641474976614793,-3.2472192397990765e-5,3.6497992784001544e-8,0.0036418804736073327,-3.243081777099901e-5,3.6415684316993066e-8,0.0036422373048892133,-3.231046066567557e-5,3.619054998193656e-8,0.003642513965287651,-3.2144261682321465e-5,3.588351146600024e-8,0.0036426959856221573,-3.198235682061668e-5,3.5586005065773693e-8,0.0036427944977556605,-3.1881697208743154e-5,3.5401356745524745e-8,0.0036428486849075714,-3.188933045907144e-5,3.5414444145402196e-8,0.0036429173685921887,-3.202403752604784e-5,3.565852233264122e-8,0.0036430596414088368,-3.226577445343364e-5,3.609629779052436e-8,0.0036433124954249867,-3.2561078847616284e-5,3.66299793816928e-8,0.0036436776177795477,-3.284337212027593e-5,3.713830880496045e-8,0.0036441242313400286,-3.3057030277970586e-5,3.7520345040000954e-8,0.0036446041810241324,-3.317277180321848e-5,3.772337507096917e-8,0.0036450692490085615,-3.3189738563198884e-5,3.7746545722749065e-8,0.003645482899676809,-3.3128175256394194e-5,3.7627357042686266e-8,0.0036458246434632187,-3.301933774306142e-5,3.7423151774873677e-8,0.003646089234413236,-3.289707990184836e-5,3.71957515176344e-8,0.003646283665094115,-3.279244336538491e-5,3.7001641525103554e-8,0.0036464239349174375,-3.273067656021924e-5,3.6886607019548715e-8,0.0036465323149864697,-3.272957018214073e-5,3.6882747854165715e-8,0.0036466349961541663,-3.279825429446103e-5,3.700630533575309e-8,0.0036467596710251142,-3.2936106766617314e-5,3.725568811188398e-8,0.0036469325807821826,-3.313193807407561e-5,3.7610026698915855e-8,0.0036471748124150484,-3.3364069240662704e-5,3.802938859382088e-8,0.003647498169133209,-3.360210126412473e-5,3.845809149088258e-8,0.0036479015316435363,-3.38109253939106e-5,3.883209072712449e-8,0.003648368986541947,-3.395689666898082e-5,3.909027582893097e-8,0.003648870921029724,-3.401521748118757e-5,3.9187927000580045e-8,0.0036493686380024244,-3.397675991479839e-5,3.91090927084104e-8,0.0036498219897588453,-3.385230235314705e-5,3.887418894134722e-8,0.0036501985693956885,-3.367263505175776e-5,3.854000701640252e-8,0.0036504824684245895,-3.348382883038354e-5,3.819088250354824e-8,0.003650680396759058,-3.333785800459016e-5,3.792145205144569e-8,0.003650822939161007,-3.3279840876376515e-5,3.781338373671198e-8,0.003650959134371577,-3.3334613467666114e-5,3.791106516073476e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json new file mode 100644 index 0000000..3f54533 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":23000,"numberOfSamples":1000,"samples":[0.003651144035305788,-3.3496975736922465e-5,3.820410327566936e-8,0.0036514219143992843,-3.3730554777606135e-5,3.862552436820353e-8,0.0036518112676496577,-3.397791609056264e-5,3.907035721036122e-8,0.00365229870095008,-3.417907449598782e-5,3.9429383363913e-8,0.00365284489977173,-3.4290356787269744e-5,3.962343833009104e-8,0.0036533992613388363,-3.429527055965991e-5,3.962310443890886e-8,0.003653915601993734,-3.4204210437811016e-5,3.9448034728001705e-8,0.0036543625588809866,-3.404606217387052e-5,3.915149562803171e-8,0.003654726821743164,-3.385745548023324e-5,3.880065521411588e-8,0.003655011114586897,-3.367402646076845e-5,3.846060844958942e-8,0.003655229952491537,-3.352516388562213e-5,3.818482941081412e-8,0.0036554053665251193,-3.343165583497147e-5,3.8010946814686524e-8,0.0036555634966590643,-3.3404964167691095e-5,3.7959478606448984e-8,0.0036557319972541605,-3.3447035834001456e-5,3.803352192134055e-8,0.0036559377077366316,-3.355009646938942e-5,3.821840523078073e-8,0.003656203941986329,-3.3696494348695236e-5,3.848145228658821e-8,0.0036565469978612378,-3.3859223781751256e-5,3.877301569526761e-8,0.0036569720596978405,-3.4004124438745524e-5,3.9030579556823116e-8,0.003657469498455847,-3.40947073072433e-5,3.918763315500793e-8,0.003658013393850613,-3.409978236972752e-5,3.918760770228968e-8,0.0036585642841328063,-3.400250012732713e-5,3.9000338042948336e-8,0.003659077039174998,-3.380774452480385e-5,3.8635466490843415e-8,0.0036595124517896076,-3.354428513728769e-5,3.8146233975437406e-8,0.0036598488695074555,-3.325957393919969e-5,3.761980345160911e-8,0.0036600895177045143,-3.30080589998171e-5,3.7155744789631976e-8,0.0036602626699706706,-3.2836659874036776e-5,3.6839414480127626e-8,0.0036604145345912036,-3.277203283919482e-5,3.671875744486885e-8,0.003660597076071134,-3.281332359526204e-5,3.679128814107534e-8,0.0036608541980586175,-3.293230507705976e-5,3.700462952878297e-8,0.003661210012998719,-3.308093000187256e-5,3.7270537712529526e-8,0.003661662575751951,-3.320440094368456e-5,3.74888633727299e-8,0.003662185161327315,-3.325597408349231e-5,3.7574542846225874e-8,0.003662734729255613,-3.320874898829924e-5,3.747900861351535e-8,0.0036632644530644296,-3.3060666580031256e-5,3.719917570818271e-8,0.003663735688217234,-3.283177311008349e-5,3.677230797634811e-8,0.003664125550367317,-3.255600900274537e-5,3.6260899113540797e-8,0.0036644288159946347,-3.227144312843095e-5,3.573475239964142e-8,0.003664655379067319,-3.20122786606644e-5,3.525635740926294e-8,0.0036648256060508692,-3.180406776074698e-5,3.487218993328028e-8,0.0036649655917790954,-3.166186058055134e-5,3.460940215582945e-8,0.003665103342555086,-3.15901849968733e-5,3.4475849367541365e-8,0.003665265988254904,-3.158372346364206e-5,3.4461364201339914e-8,0.003665477540567749,-3.162801003528849e-5,3.4539055157405407e-8,0.0036657565338192736,-3.17000936026722e-5,3.466655892539428e-8,0.0036661130590637785,-3.176968248208968e-5,3.478820502904388e-8,0.003666545202793297,-3.180174937323968e-5,3.483986629008923e-8,0.003667035788941662,-3.1761745550580205e-5,3.475855435760227e-8,0.0036675514497473767,-3.162389916152661e-5,3.449759311569503e-8,0.003668046654744528,-3.138114071038292e-5,3.404470126419763e-8,0.0036684741721542814,-3.105261032794423e-5,3.343560777759723e-8,0.003668799974560434,-3.068345735179965e-5,3.2753539214570226e-8,0.0036690165364966303,-3.0334013759936222e-5,3.2109244036842246e-8,0.0036691474276989216,-3.0061206934846583e-5,3.160683200695938e-8,0.0036692401145173264,-2.9900241087574385e-5,3.131020806459519e-8,0.0036693503292834495,-2.9854613982101406e-5,3.122493185911916e-8,0.003669525187357138,-2.989751080207272e-5,3.1301037813817e-8,0.0036697912282753556,-2.9982013376298203e-5,3.1452001909760237e-8,0.003670149929656101,-3.0055069990531985e-5,3.15804774867729e-8,0.00367058012275416,-3.007069224005011e-5,3.160245845426072e-8,0.003671045233915078,-2.9999480736268876e-5,3.14646043020311e-8,0.00367150289146305,-2.9833136999524488e-5,3.1152343179196404e-8,0.0036719145236925356,-2.9583830819543413e-5,3.068856987855197e-8,0.0036722528819754623,-2.9279274289988172e-5,3.012451965536157e-8,0.0036725060723375516,-2.8955216659429878e-5,2.9525956515840337e-8,0.003672677754130943,-2.864755268356975e-5,2.895869275364607e-8,0.003672784291843022,-2.838594682136872e-5,2.8476927435519246e-8,0.0036728502871910297,-2.8189969093245898e-5,2.8116221838894727e-8,0.0036729039195573616,-2.8067750927584617e-5,2.7891105878276732e-8,0.0036729730472076353,-2.8016458620949784e-5,2.7795998669456532e-8,0.0036730823256591566,-2.8023639314141942e-5,2.7807699502206006e-8,0.0036732510393670506,-2.806876922500443e-5,2.7888233842029837e-8,0.0036734911388206174,-2.8124848250507907e-5,2.7987802985082756e-8,0.003673805048096844,-2.8160365318995213e-5,2.8048454388623762e-8,0.0036741831643614118,-2.8142417714421486e-5,2.800989211450284e-8,0.0036746017845311393,-2.8042014596425726e-5,2.781926303572099e-8,0.003675023305396148,-2.7842042600133794e-5,2.7445742165138232e-8,0.003675401277467576,-2.7546573380207877e-5,2.6897486202051013e-8,0.0036756920590245525,-2.718737099853137e-5,2.623340000871415e-8,0.0036758711240840844,-2.682142732552505e-5,2.555844943167183e-8,0.0036759465937811365,-2.6515692647237495e-5,2.499551903112205e-8,0.0036759605227197774,-2.6323182982489206e-5,2.464151777744949e-8,0.0036759744983032644,-2.6262593443452535e-5,2.4530039671133795e-8,0.0036760466285700347,-2.6312844659637143e-5,2.462156779143457e-8,0.0036762123044454384,-2.6424126112870143e-5,2.4824015221802194e-8,0.003676476786014314,-2.6537239075107872e-5,2.5028430559382807e-8,0.0036768192350094923,-2.6601221243758545e-5,2.5141395201407517e-8,0.0036772028513650874,-2.658386925131194e-5,2.5104237965815816e-8,0.0036775858883604795,-2.6474864491415744e-5,2.4898599976612817e-8,0.0036779306440379686,-2.6283647779182486e-5,2.4542371246482394e-8,0.003678209538973982,-2.603439997978615e-5,2.408037372138913e-8,0.003678408358108114,-2.5759783494692988e-5,2.357282896906436e-8,0.003678526948850447,-2.5494493653466036e-5,2.308351403533256e-8,0.0036785777355817883,-2.5269467883076505e-5,2.2669143006386352e-8,0.003678582593628918,-2.5107461818455048e-5,2.2371273529194018e-8,0.003678568782474355,-2.5020417507422695e-5,2.2211520779320994e-8,0.0036785647042003374,-2.500871973525351e-5,2.21902445854814e-8,0.0036785961805071692,-2.5062054156622615e-5,2.228816628316454e-8,0.003678683593958781,-2.5161266743696174e-5,2.24697994986493e-8,0.003678839813725382,-2.528068865976697e-5,2.268772363615898e-8,0.0036790686589521994,-2.5390721102639514e-5,2.28873548323344e-8,0.0036793636633603534,-2.5460766843175067e-5,2.301239734670839e-8,0.0036797070625050198,-2.5462938404665122e-5,2.3011746096490555e-8,0.0036800695540226,-2.5377224112577794e-5,2.2849032250097418e-8,0.0036804123072578534,-2.5198284596178738e-5,2.251506689142407e-8,0.003680693157902537,-2.4942526484895308E-05,2.2040681988927512e-8,0.003680878158399637,-2.4651854910035483e-5,2.150341156448466e-8,0.0036809565821238504,-2.4388619881055524e-5,2.101802531841774e-8,0.003680952179938686,-2.4218042502926116e-5,2.0704157135192892e-8,0.003680920788736872,-2.418258152607271e-5,2.063924897056901e-8,0.0036809307429876595,-2.428216159309294e-5,2.082238656290625e-8,0.0036810354111426534,-2.4473729304710523e-5,2.1173726237950885e-8,0.003681253971997315,-2.4690578711906134e-5,2.1570233191745147e-8,0.0036815697161010955,-2.4868511669727512e-5,2.1893875946001677e-8,0.00368194233743989,-2.4964629040890916e-5,2.2066135288962184e-8,0.003682324212490332,-2.496342898745231e-5,2.2059068741709067e-8,0.0036826731166814996,-2.4873277705717296e-5,2.1888636709994033e-8,0.0036829591588462465,-2.4718729832185195e-5,2.1600441398920033e-8,0.003683167023967205,-2.4532594782350245e-5,2.1255080252265367e-8,0.0036832954099022645,-2.4349370543578626e-5,2.0916081024659693e-8,0.0036833550335923348,-2.4200218198591833e-5,2.0640692551785886e-8,0.0036833658565634006,-2.410924176009306e-5,2.047307011231562e-8,0.00368335380237866,-2.4090944865297163e-5,2.0439619325797367e-8,0.0036833471475006176,-2.4148859135246296e-5,2.054650508300012e-8,0.003683372810946003,-2.4275435196936255e-5,2.07794955328708e-8,0.003683452919780664,-2.445325289733475e-5,2.110623168930102e-8,0.003683602046501696,-2.465734339942249e-5,2.1480525304410102e-8,0.003683825298735307,-2.4858264023953814e-5,2.184802813428788e-8,0.0036841172991974114,-2.5025683730293013e-5,2.2152849985111426e-8,0.0036844620856947494,-2.5132324086251992e-5,2.234486049199623e-8,0.003684833943600737,-2.5158192450841574e-5,2.2387540094785343e-8,0.0036851994497372497,-2.5095227283073492e-5,2.226654684123872e-8,0.003685521611166236,-2.495214102688181e-5,2.199854944989616e-8,0.0036857671361551635,-2.4758044853092278e-5,2.1637716007903936e-8,0.0036859169029455434,-2.4561976529873085E-05,2.127462522493109e-8,0.0036859772914223593,-2.44246555966739e-5,2.102094321803886e-8,0.0036859863765741317,-2.4400569866343113e-5,2.0976459090247287e-8,0.0036860072100742725,-2.451503865503077e-5,2.1187033549314085e-8,0.0036861059724534228,-2.4748908547852973e-5,2.1616674172997784e-8,0.003686324629094954,-2.504318975211854e-5,2.2156284356747038e-8,0.003686664486266351,-2.5323155005089623e-5,2.2668137696737203e-8,0.0036870898114569946,-2.5527244493044108e-5,2.303909962374833e-8,0.003687546149128421,-2.5624766795011134e-5,2.3213143420424893e-8,0.00368798044731879,-2.5617338941137874e-5,2.3193859568407812e-8,0.0036883539373483384,-2.5529670793774248e-5,2.3027315403045705e-8,0.0036886463867155743,-2.5397760191839542e-5,2.2780188658898496e-8,0.003688854693802478,-2.5259351496340612e-5,2.2522155643143783e-8,0.0036889891708466456,-2.5147850491353615e-5,2.231471497123031e-8,0.0036890695533378795,-2.5088946206269493e-5,2.2205016955307542e-8,0.0036891214131626097,-2.5098827308126288e-5,2.222261384963983e-8,0.0036891729137179556,-2.518329063537529e-5,2.2377841591020216e-8,0.0036892516769625227,-2.5337494371236543e-5,2.2661397865423784e-8,0.0036893816097385863,-2.554645169281843e-5,2.3045303929869593e-8,0.0036895797925711486,-2.578657672893664e-5,2.3485809567516533e-8,0.0036898538468566012,-2.6028463573269312e-5,2.392855402626147e-8,0.003690200266554174,-2.624073990187162e-5,2.431568410168666e-8,0.0036906040827712275,-2.6394652975592825e-5,2.4594312535909952e-8,0.0036910401320671615,-2.646892578198544e-5,2.4725481010514338e-8,0.0036914760290490357,-2.6454258869800837e-5,2.469246723504824e-8,0.0036918767628710283,-2.6356872170899155e-5,2.450728188668473e-8,0.003692210885339878,-2.6200462392483775e-5,2.4214168577148188e-8,0.0036924581686777775,-2.602543095805307e-5,2.388800430693621e-8,0.003692617733382483,-2.5883626505455566e-5,2.362443103435925e-8,0.0036927139953002153,-2.58271594885082e-5,2.3519158494680385e-8,0.0036927961075991973,-2.5891978747853797e-5,2.3637775773338626e-8,0.0036929267649546634,-2.6081277797364088e-5,2.398538810384016e-8,0.0036931609455419815,-2.6358161739026842e-5,2.4493348826303326e-8,0.0036935234174346435,-2.665549718890737e-5,2.5037572254635175e-8,0.003693998101314756,-2.6900775812927172e-5,2.5484402286752192e-8,0.0036945360219985063,-2.7042710855034788e-5,2.5739608547857825e-8,0.0036950760446270714,-2.7065371302568437e-5,2.57743737612283e-8,0.003695565661023816,-2.6985691375977797e-5,2.5620578062499176e-8,0.00369597274607554,-2.684069713273219e-5,2.5347080120574853e-8,0.003696287324292012,-2.667345195030066e-5,2.5033662232297028e-8,0.0036965173262114045,-2.6523010525635966e-5,2.4752456189175374e-8,0.0036966825886261623,-2.6419227346433036e-5,2.455840471365584e-8,0.003696809522700842,-2.6380986372349695e-5,2.4486064306819182e-8,0.0036969270936339123,-2.6416117172469423e-5,2.454950799475654e-8,0.0036970637745599656,-2.6521893503182198e-5,2.4743286277766767e-8,0.0036972449046433265,-2.6685737210574117e-5,2.504376987032764e-8,0.0036974900334030988,-2.6886274245188e-5,2.541115595707101e-8,0.003697810176347896,-2.7095219934198905e-5,2.5793006605434385e-8,0.0036982053804941253,-2.728057365079077e-5,2.613018555159297e-8,0.003698663356525077,-2.7411217452902692e-5,2.6365357275177697e-8,0.0036991599725369096,-2.7462484334453646e-5,2.6453253365305067e-8,0.0036996621606698965,-2.7421763096580724e-5,2.6370997112730044e-8,0.00370013328491362,-2.729281033021235e-5,2.6126029195423446e-8,0.0037005403211717563,-2.7097411250876837e-5,2.5759105766375958e-8,0.0037008616198824073,-2.6873458549975153e-5,2.534063229254157e-8,0.0037010937154705065,-2.6669054268328128e-5,2.4959623377691335e-8,0.0037012553893138378,-2.6532771677849146e-5,2.470560529795536e-8,0.003701386925754609,-2.6501162935385394e-5,2.464554459140342e-8,0.0037015427319560873,-2.65862451416973e-5,2.4800881221936585e-8,0.0037017770840136652,-2.6767600671031702e-5,2.5133175185444305e-8,0.003702126226889177,-2.6994365678892358e-5,2.5547991564237983e-8,0.003702594034496086,-2.7199503702774686e-5,2.5921361512321817e-8,0.003703149146929241,-2.7322124217394617e-5,2.6140992193989e-8,0.0037037362260185593,-2.732763109091641e-5,2.6143421934714618e-8,0.003704295665546802,-2.721607872496196e-5,2.5929372282700263e-8,0.0037047816795343263,-2.7016566312550213e-5,2.5553267597604028e-8,0.003705171555362991,-2.6773370862474705e-5,2.509745527697299e-8,0.003705465407158616,-2.6531809403462105e-5,2.4645955131628586e-8,0.0037056802842188206,-2.6328749558537203e-5,2.4266888380384873e-8,0.003705842962671197,-2.6188473724591307e-5,2.4004889346311846e-8,0.0037059839388316924,-2.6122241314280676e-5,2.3880388417301026e-8,0.0037061332623507665,-2.6129556128220352e-5,2.3892034999399584e-8,0.003706317770909461,-2.6199800840217618e-5,2.4019772205175913e-8,0.0037065589557418377,-2.6313745875571078e-5,2.4227665838511646e-8,0.003706870840343872,-2.644512355745995e-5,2.4466855843329514e-8,0.003707257688373799,-2.6562856852741105e-5,2.4679720562225874e-8,0.003707711915905993,-2.6634592082949376e-5,2.4806441695489335e-8,0.003708213120455237,-2.663186058357122e-5,2.479455939697902e-8,0.0037087294412449907,-2.6536451255494063e-5,2.4610743259413702e-8,0.003709222214515911,-2.6346543661015368e-5,2.4252099963225886e-8,0.0037096538724641567,-2.6080329046030495e-5,2.3752812169666824e-8,0.003709997524539029,-2.577492734907529e-5,2.3182040780489726e-8,0.0037102454227998637,-2.5479672505274922e-5,2.263137359655951e-8,0.0037104132986381126,-2.524481178501241e-5,2.219379012489409e-8,0.0037105385684950997,-2.5108446768208215e-5,2.1939440481081604e-8,0.003710672201591465,-2.5085405601484373e-5,2.1895121723236657e-8,0.0037108659074224157,-2.5161493732589e-5,2.2033822651041703e-8,0.0037111577917986476,-2.5295461489293446e-5,2.2278586025456243e-8,0.0037115606470070174,-2.542917933201141e-5,2.2521498478199035e-8,0.0037120571654388006,-2.5503837048517596e-5,2.2653719725711947e-8,0.003712604656330799,-2.5477070966070233e-5,2.259714366597435e-8,0.0037131481138471807,-2.5334611035146297e-5,2.232587717598007e-8,0.0037136365417578987,-2.509202414715311e-5,2.1869364929837613e-8,0.0037140360486028587,-2.4786787143587042e-5,2.1297584304020552e-8,0.0037143354755474435,-2.4465255139622436e-5,2.069678054959071e-8,0.003714544467024974,-2.4170306202152613e-5,2.0146497047207724e-8,0.003714687020580643,-2.393338515246342e-5,1.9704838425664365e-8,0.0037147941125955726,-2.3771532108372094e-5,1.9403042636394202e-8,0.0037148976705766875,-2.3687944947412868e-5,1.924662719845783e-8,0.0037150265340877417,-2.367419895466894e-5,1.9219583030809972e-8,0.003715204015883382,-2.37127525260934e-5,1.928905809182854e-8,0.0037154462776015544,-2.377915294824585e-5,1.9409457545578542e-8,0.0037157608120527794,-2.384409788521174e-5,1.9526274662557453e-8,0.0037161447586631148,-2.387597552240848e-5,1.9580823667812967e-8,0.003716583383528966,-2.384460787773986e-5,1.9517213785745727e-8,0.0037170496879362957,-2.372665990986959e-5,1.929240272445178e-8,0.003717506623292282,-2.3512366057301022e-5,1.8888665065491976e-8,0.003717913280569818,-2.3211764390501293e-5,1.832510925529357e-8,0.0037182350231976446,-2.2857213753819283e-5,1.766226069432184e-8,0.0037184549931704456,-2.2499015996168416e-5,1.69938183046161e-8,0.0037185822522199053,-2.2193400184984013e-5,1.642422937600723e-8,0.0037186520125712316,-2.1986125984029035e-5,1.6038180871423233e-8,0.0037187166025020217,-2.1897980951190913e-5,1.5873715102312037e-8,0.0037188302313518797,-2.1918094714878887e-5,1.5909975868926e-8,0.0037190333250862505,-2.200738683831528e-5,1.6073822676410523e-8,0.003719341736464505,-2.211021106517147e-5,1.6261616807192078e-8,0.003719743573072058,-2.216979978548509e-5,1.636795341593824e-8,0.0037202036700935363,-2.214280148765948e-5,1.631260873446929e-8,0.0037206737661205037,-2.2009147434640982e-5,1.6058763393847896e-8,0.0037211051970497504,-2.1775071201819367e-5,1.5618506174731158e-8,0.003721460458739193,-2.1469112666244478e-5,1.5045318183279198e-8,0.0037217205729197273,-2.113297412457324e-5,1.4417004888548999e-8,0.0037218868002361744,-2.081050254733132e-5,1.3815164650950308e-8,0.0037219772900882707,-2.0538209327698315e-5,1.3307554545741322e-8,0.003722020789722907,-2.033950176989565e-5,1.2937408851043707e-8,0.00372204987109083,-2.022296133826621e-5,1.2720322617019088e-8,0.0037220953992123298,-2.018363795951063e-5,1.2646747001885697e-8,0.0037221828649194387,-2.0205878245740093e-5,1.26873047206367e-8,0.0037223303313133104,-2.02664502220618e-5,1.2798609312135926e-8,0.003722547317866394,-2.0337344535813425e-5,1.292845264550573e-8,0.0037228339677174557,-2.0388317730423293e-5,1.3020518278734751e-8,0.003723180190839855,-2.0389705420379754e-5,1.3019629712220013e-8,0.0037235650128087322,-2.0316187736311858e-5,1.2878799919059847e-8,0.003723957027956693,-2.0152005616268402e-5,1.256897561523051e-8,0.003724317479797812,-1.9897320189773163e-5,1.2090860847159705e-8,0.0037246074892309214,-1.9573777293026863e-5,1.1485194896322013e-8,0.0037247994563825186,-1.922551672634567e-5,1.0834500081040653e-8,0.003724889413287953,-1.8911635022200557e-5,1.024891375539621e-8,0.003724903860006442,-1.8689419208005423e-5,9.834890386340725e-9,0.0037248950039658825,-1.8593936835862856e-5,9.657227552497414e-9,0.0037249241617011717,-1.8624070004157957e-5,9.713213497022367e-9,0.0037250406734058938,-1.874272347827841e-5,9.933231932671707e-9,0.003725266442256563,-1.889068343187049e-5,1.0206743013046786e-8,0.003725591957814072,-1.900639132302381e-5,1.0419161121580107e-8,0.0037259828367480837,-1.9042941445738243e-5,1.0483445088589561e-8,0.0037263919105630754,-1.8977532859680972e-5,1.0357575288150131e-8,0.0037267718541946424,-1.8812970780198845e-5,1.004722544629047e-8,0.0037270852122032435,-1.857321752592454e-5,9.597390829866145e-9,0.0037273105106150057,-1.829556589372417e-5,9.077766944676528e-9,0.0037274442822466383,-1.8021665816886436e-5,8.566019197106112e-9,0.003727499446205275,-1.7789180452793088e-5,8.132238797880786e-9,0.0037275009651962054,-1.762549477405663e-5,7.827238632585327e-9,0.003727480107433613,-1.7544324987777415e-5,7.676278027300595e-9,0.003727468693735596,-1.7545252223564655e-5,7.678260381961283e-9,0.0037274943796830745,-1.7615546114334517e-5,7.809198521585769e-9,0.0037275775048591624,-1.773333185341448e-5,8.028155894012631e-9,0.003727729461688348,-1.7871140037744037e-5,8.283855986333845e-9,0.0037279521045785026,-1.7999224672154963e-5,8.520831022886832e-9,0.0037282376812551145,-1.80885880022614e-5,8.685033780576021e-9,0.0037285690243083164,-1.8114038809190196e-5,8.729555432946514e-9,0.003728920113641478,-1.8057767593507887e-5,8.621345067804234e-9,0.0037292576952676747,-1.7913835381609194e-5,8.349624258909386e-9,0.0037295452618239825,-1.769325645659619e-5,7.935342096310923e-9,0.003729750685610381,-1.742782377238727e-5,7.438195143004906e-9,0.0037298573864923707,-1.7169070621178025e-5,6.954523489002591e-9,0.0037298756982351187,-1.6978346810287705e-5,6.598664526266755e-9,0.003729847357057938,-1.690734999300974e-5,6.466620041821976e-9,0.0037298361456615196,-1.6976011363689884e-5,6.594939654273422e-9,0.0037299052651525726,-1.716065001020904e-5,6.938856540972064e-9,0.003730092529452638,-1.7401587629302746e-5,7.386701385086378e-9,0.0037303974273488636,-1.7626624987369516e-5,7.803782958842304e-9,0.0037307856005640463,-1.7776600142330956e-5,8.080023637204767e-9,0.0037312048557727917,-1.782075236454326e-5,8.158500185359126e-9,0.0037316025984929033,-1.7758874434021704e-5,8.039315141398938e-9,0.003731938096263313,-1.7614499874872118e-5,7.76676690099454e-9,0.0037321881752387263,-1.7424800949631686e-5,7.410439462798648e-9,0.003732347832913049,-1.7230987288991442e-5,7.047285654047261e-9,0.003732427807332729,-1.7070752855394434e-5,6.747564430999931e-9,0.0037324505819447216,-1.6972951318685194e-5,6.564937105062063e-9,0.0037324456392299724,-1.695435236964585e-5,6.530439072511247e-9,0.003732444524964121,-1.701842445824136e-5,6.650238763256346e-9,0.0037324762624747466,-1.7155994000405556e-5,6.906918712508451e-9,0.003732563584080442,-1.734745000939961e-5,7.263649467205659e-9,0.003732720347862681,-1.7566052220995436e-5,7.670403442963853e-9,0.003732950305259306,-1.7781762662003478e-5,8.071102483695934e-9,0.003733247046701793,-1.796503766997897e-5,8.410658713739836e-9,0.003733594793483443,-1.8090329320746774e-5,8.641476568061361e-9,0.003733969829689655,-1.8139333953936072e-5,8.729522514097567e-9,0.0037343425695851745,-1.8104141430392796e-5,8.660245887318678e-9,0.003734680606263795,-1.7990430125363365e-5,8.444572497323546e-9,0.003734953553838489,-1.782034694147802e-5,8.124239420623847e-9,0.003735140403146867,-1.7633507226156773e-5,7.77352976095781e-9,0.003735238848109435,-1.748329459267977e-5,7.4921953391734e-9,0.003735273477531778,-1.742550583944127e-5,7.384151459049214e-9,0.0037352966592492363,-1.749922907883764e-5,7.52182191537506e-9,0.0037353759026406193,-1.7706708770883272e-5,7.908742842178216e-9,0.003735568740471046,-1.8005201420696946e-5,8.464598259716825e-9,0.003735897522340255,-1.8320262806021934e-5,9.050180658370451e-9,0.0037363400742964556,-1.8575326378219387e-5,9.522633384422312e-9,0.0037368415776035976,-1.8720037863678725e-5,9.788290822532997e-9,0.0037373380712256233,-1.874245668787921e-5,9.825363797506921e-9,0.0037377771555825133,-1.8663787364666786e-5,9.673974471483982e-9,0.0037381282616453346,-1.852433494079792e-5,9.409797508911304e-9,0.0037383834002827367,-1.8369540890756483e-5,9.117901324121186e-9,0.003738552757404369,-1.824019873721411e-5,8.874473223547163e-9,0.003738658809558917,-1.8167100505264942e-5,8.736870253285727e-9,0.003738730844138739,-1.8168783218842287e-5,8.739462794445459e-9,0.0037388003329487827,-1.8251037280980622e-5,8.892751862877826e-9,0.00373889698628947,-1.8407514500518183e-5,9.18453775255549e-9,0.0037390453516148825,-1.8621272393550024e-5,9.582855243041857e-9,0.0037392620029640536,-1.886722395403692e-5,1.0040612490717398e-8,0.0037395535311001136,-1.9115464924135617e-5,1.0501851379362463e-8,0.0037399156645016815,-1.9335279841595094e-5,1.0909231443508442e-8,0.003740333727271666,-1.949936503986908e-5,1.1211879486748627e-8,0.0037407843754003085,-1.9587781487259298e-5,1.1372730485053469e-8,0.00374123843967038,-1.9591286559904284e-5,1.1374739407503882e-8,0.003741664694071747,-1.951376722599113e-5,1.1225445494692067e-8,0.003742034426709988,-1.9373566096839915e-5,1.0959456056172562e-8,0.0037423268826330203,-1.9203348136011737e-5,1.0638143074060602e-8,0.0037425355319994974,-1.9047512251718933e-5,1.0344682395521544e-8,0.003742674153842459,-1.8955552707843683e-5,1.0171510875620036e-8,0.003742780075672932,-1.897020365172007e-5,1.0198117014107015e-8,0.003742910352084255,-1.91115247419747e-5,1.0461391980825988e-8,0.003743127236642866,-1.936274082819314e-5,1.0929372494595087e-8,0.0037434748877366456,-1.966787992300605e-5,1.1497025901544866e-8,0.0037439582292228346,-1.994830716850865e-5,1.2017239417133448e-8,0.0037445380916303205,-2.0132874757777342e-5,1.235715857869903e-8,0.003745147304945264,-2.018475709919423e-5,1.24483095139559e-8,0.003745717536123864,-2.0110039024257403e-5,1.2302602979977455e-8,0.0037462009957385913,-1.994718213155144e-5,1.1992528512288664e-8,0.003746578533952196,-1.9748112336383324e-5,1.1615631205305184e-8,0.0037468562058775336,-1.9561943110626034e-5,1.1263957057301948e-8,0.0037470568320752493,-1.942580720910747e-5,1.1006894832462288e-8,0.003747211591296955,-1.936188801722068e-5,1.0885690830408487e-8,0.0037473537091404366,-1.937798694893093e-5,1.0914592901045096e-8,0.00374751426169476,-1.9469411529319156e-5,1.1084443738119213e-8,0.003747719306811906,-1.9621107982094123e-5,1.1366715498674678e-8,0.003747987653823677,-1.98098865025236e-5,1.171772196127629e-8,0.0037483289877986337,-2.00069900657524e-5,1.2083476553019989e-8,0.0037487424409848157,-2.018133651430223e-5,1.2405790481457967e-8,0.003749216049729212,-2.0303576953806943e-5,1.262985740223278e-8,0.0037497276616432853,-2.0350656359240593e-5,1.2712744009555985e-8,0.0037502476097356495,-2.0310161881186038e-5,1.263147987969798e-8,0.0037507430698388022,-2.01836052339569e-5,1.238917732256602e-8,0.003751183640813286,-1.9987806416820744e-5,1.201762072309364e-8,0.003751547358372743,-1.975377558398845e-5,1.1575159589463945e-8,0.0037518262278624856,-1.9522888966651756e-5,1.1139487350292194e-8,0.003752030366449994,-1.9340357022812065e-5,1.0795307888503861e-8,0.003752189575101569,-1.9246075080711368e-5,1.0617115929008991e-8,0.00375235065514588,-1.926362082860626e-5,1.0648597353873207e-8,0.00375256874733072,-1.9389760757096198e-5,1.0883103913087454e-8,0.0037528923589819,-1.95889336244771e-5,1.1253515334163685e-8,0.003753345377221318,-1.9798233653190108e-5,1.1641722277737352e-8,0.003753914085684261,-1.9945444226348306e-5,1.1912441558529761e-8,0.0037545482183929373,-1.997468342657704e-5,1.1961217063101045e-8,0.003755178268860511,-1.9866841003214947e-5,1.1752664664935419e-8,0.003755740498054235,-1.9643572837075e-5,1.132790926630942e-8,0.003756196287862252,-1.9354386897528227e-5,1.078027677361611e-8,0.0037565380292510645,-1.9056473937833167e-5,1.02173374524946e-8,0.003756783287516352,-1.879808625982981e-5,9.729641408606765e-9,0.003756964059188642,-1.8610299848009276e-5,9.375278483928095e-9,0.0037571168822495586,-1.850601029274588e-5,9.178087064121487e-9,0.0037572761536310796,-1.8482743679660896e-5,9.133032553034088e-9,0.003757470458105261,-1.8526444575679007e-5,9.213386299761704e-9,0.003757720726876309,-1.8614862202039136e-5,9.377117285257808e-9,0.0037580391353763576,-1.8720347719301517e-5,9.572164083264661e-9,0.0037584281701537876,-1.88124868526117e-5,9.741392613497707e-9,0.003758879845331222,-1.886115999095588e-5,9.828343171502811e-9,0.003759375547369298,-1.884045521805883e-5,9.784556157303305e-9,0.0037598873171901443,-1.8733336140393533e-5,9.578297218737537e-9,0.0037603812993048536,-1.8536245409891986e-5,9.20316322759362e-9,0.003760823522734917,-1.826223272290799e-5,8.683933253519903e-9,0.0037611872682305502,-1.794102306496649e-5,8.07668074991078e-9,0.003761460322951104,-1.761495849043393e-5,7.461118830695648e-9,0.003761649939215854,-1.7330967802997768e-5,6.925453527388214e-9,0.003761783669047966,-1.7130080930370736e-5,6.546618226195867e-9,0.0037619052215471355,-1.7036850169632218e-5,6.370380696093653e-9,0.0037620655927134623,-1.7051287457088965e-5,6.396265383341771e-9,0.0037623107889809214,-1.7145824206739997e-5,6.571987750426438e-9,0.0037626686506996173,-1.7269316797664524e-5,6.8011328521040325e-9,0.0037631385620556235,-1.7358826009662052e-5,6.965369983083214e-9,0.003763688525936491,-1.735727517214488e-5,6.957620478797519e-9,0.0037642627046168722,-1.7231514285195872e-5,6.7159383377332736e-9,0.003764798192409383,-1.6983144070799588e-5,6.243784790204022e-9,0.003765244475384821,-1.6646684177942917e-5,5.606514320308481e-9,0.003765577041731878,-1.6276113749033035e-5,4.905976489211403e-9,0.0037658001496303955,-1.5926872483978327e-5,4.246574565661419e-9,0.003765940043113608,-1.5641428521669665e-5,3.7080826046676444e-9,0.0037660339883212393,-1.5442580188857785e-5,3.3330932819261697e-9,0.0037661202972565054,-1.533378212849883e-5,3.1277370664346276e-9,0.0037662317987403426,-1.530331931720143e-5,3.0696368494463564e-9,0.00376639269783391,-1.5329353706236113e-5,3.117459743615627e-9,0.0037666175999535394,-1.5384239766858776e-5,3.2190461479142756e-9,0.003766911424015544,-1.5437798596845338e-5,3.3175546155956647e-9,0.0037672694199051165,-1.5460010735471215e-5,3.3565118674225895e-9,0.003767677144880793,-1.5423844881946676e-5,3.285127707090549e-9,0.0037681108405431198,-1.5308808573030386e-5,3.0649759961602738e-9,0.00376853909328297,-1.5105335091860154e-5,2.678249819012819e-9,0.0037689267978603287,-1.4819271966290807e-5,2.1362017496681052e-9,0.0037692419464796334,-1.4474679157593949e-5,1.4843891964449467e-9,0.003769464408607395,-1.4112525842013234e-5,8.001758661740843e-10,0.0037695940570376656,-1.3783562552421724e-5,1.7924187200268179e-10,0.003769654513644912,-1.3535943066435279e-5,-2.877953882684514e-10,0.003769689655352273,-1.3401132828683478e-5,-5.419454827697908e-10,0.0037697528877103145,-1.3383352936094304e-5,-5.756719343471206e-10,0.0037698924838657317,-1.3456848768446041e-5,-4.379133873754168e-10,0.0037701379529232566,-1.3572133855236433e-5,-2.2219011005250034e-10,0.0037704917152187136,-1.36690613658659e-5,-4.190341608565942e-11,0.003770928286669406,-1.3692704936665648e-5,-4.184426881656405e-13,0.003771400984222682,-1.360764722503169e-5,-1.6419689144365008e-10,0.0037718542846100875,-1.3406801484918508e-5,-5.462400593197952e-10,0.0037722383742051645,-1.3112239502991186e-5,-1.1045888736203505e-9,0.0037725215280944423,-1.2767820548965187e-5,-1.756277314541145e-9,0.003772696517123917,-1.2426225277517897e-5,-2.4018373226817705e-9,0.003772779492258509,-1.2135018031827889e-5,-2.9516198186066968e-9,0.0037728027992608884,-1.1926333275018554e-5,-3.345233937647147e-9,0.003772805248437262,-1.1812618336310583e-5,-3.559509949169215e-9,0.0037728234022769208,-1.1787985186950563e-5,-3.605855082757096e-9,0.003772885871274732,-1.1832888997680663e-5,-3.5213519611769673e-9,0.0037730107830056705,-1.1919671821302818e-5,-3.3582733409701644e-9,0.0037732054834411486,-1.201738319949041e-5,-3.1750111515168823e-9,0.0037734672788120238,-1.2095393134790393e-5,-3.029308059715573e-9,0.0037737843623683997,-1.2126141515841897e-5,-2.9731078275435696e-9,0.0037741366633792803,-1.2087713479066177e-5,-3.0477005332985616e-9,0.0037744969434948855,-1.1966854684521575e-5,-3.2780044851181107e-9,0.0037748329505799573,-1.1762652811277419e-5,-3.665584516120736e-9,0.0037751117090649177,-1.1490296257088035e-5,-4.1815534879312055e-9,0.003775306671071242,-1.1183066734645489e-5,-4.762857357367671e-9,0.0037754069823609203,-1.0889694911885241e-5,-5.3173572358538974e-9,0.0037754256798606545,-1.0664706834353456e-5,-5.742147928915882e-9,0.003775401726689244,-1.0552455653838138e-5,-5.953742048116789e-9,0.003775391866454253,-1.0570337492320954e-5,-5.9196954740658214E-09,0.0037754533346908404,-1.069965404964022e-5,-5.6757115830877735e-9,0.0037756245234761812,-1.0889973474384802e-5,-5.3172574611983255e-9,0.0037759125769722722,-1.1075505491388981e-5,-4.9685789284492975e-9,0.0037762927653174714,-1.119569145297422e-5,-4.743856103245313e-9,0.0037767180710236953,-1.1211551456236634e-5,-4.716422581730153e-9,0.0037771336262513635,-1.1113289439129748e-5,-4.904484620551893e-9,0.0037774906920141566,-1.0919093669290008e-5,-5.273435637376515e-9,0.0037777568305629415,-1.0667562119560446e-5,-5.750186818487831e-9,0.0037779208867569462,-1.0406866195721732e-5,-6.243650787702565e-9,0.003777992767016646,-1.018352746019933e-5,-6.665958168127169e-9,0.0037779989182269913,-1.0033140590648544e-5,-6.949989656900959e-9,0.0037779751011073896,-9.97469904417571e-6,-7.060078675057539e-9,0.0037779584786724603,-1.0009194292538516e-5,-6.994608417451776e-9,0.0037779809048557934,-1.0121958368840203e-5,-6.781516708789922e-9,0.0037780645720082466,-1.0287344353781977e-5,-6.469394097223917e-9,0.003778220234630747,-1.047413085648688e-5,-6.1172540917545026e-9,0.003778447456985994,-1.0650388607779883e-5,-5.785368244403539e-9,0.003778735979536752,-1.078723859059365e-5,-5.528224279977244e-9,0.0037790674522738318,-1.086163687447547e-5,-5.3893085312301e-9,0.0037794172242492487,-1.0858682366088469e-5,-5.396741791551607e-9,0.003779756331525049,-1.0773944571270184e-5,-5.55883105247937e-9,0.0037800542820276006,-1.0616049404699768e-5,-5.859127603922072e-9,0.0037802835715694304,-1.0409041615552987e-5,-6.251958361016585e-9,0.0037804265587483227,-1.019284428731572e-5,-6.661632999833887e-9,0.0037804839392265306,-1.0019107510829138e-5,-6.990419724209726e-9,0.003780481632655872,-9.940027335123063e-6,-7.139785874260027e-9,0.003780470551458204,-9.990760852975178e-6,-7.043636122099973e-9,0.0037805145003715693,-1.0171924492472818e-5,-6.701260118724001e-9,0.0037806679024364473,-1.0443026877787217e-5,-6.189548974586507e-9,0.003780953749669685,-1.0734040814978671e-5,-5.640990002948598e-9,0.003781354446672115,-1.0970848138577473e-5,-5.195569712053512e-9,0.0037818202123343133,-1.1100878236964057e-5,-4.952398320323635e-9,0.0037822885451625726,-1.1106690075405191e-5,-4.9441331682067115e-9,0.0037827037918562686,-1.1004732221553931e-5,-5.139393429677356e-9,0.003783029580921028,-1.083450210581651e-5,-5.463297256101165e-9,0.0037832528926456414,-1.0645014240624529e-5,-5.8230619263333884E-09,0.003783382008619057,-1.0483107839539345e-5,-6.130107278142606e-9,0.0037834411521074293,-1.0385293670330903e-5,-6.315462602182711e-9,0.003783463866855065,-1.0373167422302901e-5,-6.338434431871988e-9,0.003783486346677699,-1.0451924135314523e-5,-6.1894075059543604e-9,0.0037835415059761126,-1.0611498941792025e-5,-5.887657773983901e-9,0.0037836543994592214,-1.0829747870240204e-5,-5.475280541301254e-9,0.0037838393893894684,-1.1076912436351042e-5,-5.00868499477498e-9,0.0037840991940355684,-1.1320547095963303e-5,-4.549244861849569e-9,0.0037844256115939245,-1.1530111692398709e-5,-4.154636535393267e-9,0.003784801380528869,-1.168067724546158e-5,-3.871892905681978e-9,0.0037852026131201958,-1.1755664641185652e-5,-3.732277813199833e-9,0.0037856015155439153,-1.1748839795853997e-5,-3.747515652641209e-9,0.003785969367532291,-1.166580442859177e-5,-3.906921033511718e-9,0.00378628001510182,-1.1525110745466617e-5,-4.175235589964458e-9,0.003786514449205436,-1.1358637205725354e-5,-4.491921267897067e-9,0.0037866667919770496,-1.1209875032777431e-5,-4.774493370527981e-9,0.0037867507548969247,-1.1128029735137191e-5,-4.929817589830909e-9,0.0037868036489551913,-1.1156279232741838e-5,-4.8764159931144795e-9,0.0037868831215570773,-1.1315159538627571e-5,-4.575860551166065e-9,0.0037870524179700496,-1.1587432273622035e-5,-4.061235434398263e-9,0.0037873563096598654,-1.1915434657407038e-5,-3.441960618087722e-9,0.0037877994416602927,-1.2218268853877623e-5,-2.871179678081107e-9,0.00378834159065941,-1.2422814649923206e-5,-2.4871089224278254e-9,0.0037889140278449785,-1.249102829822317e-5,-2.361451809750297e-9,0.0037894464319104034,-1.2428832387716597e-5,-2.4826372919214795e-9,0.003789888854569995,-1.2276000741283246e-5,-2.775033513542293e-9,0.003790220598166225,-1.2087372015433666e-5,-3.13458685349092e-9,0.003790447689810322,-1.1915907774812648e-5,-3.4609407828149515e-9,0.0037905948035725874,-1.1802236082212254e-5,-3.6772233896817644e-9,0.003790696401172688,-1.1770385986698964e-5,-3.73808626895047e-9,0.003790789335206898,-1.1827575732369238e-5,-3.6300747743801807e-9,0.003790907337032187,-1.1966138926110403e-5,-3.3679632150517645e-9,0.0037910770946163676,-1.2166553303929558e-5,-2.9889909055131355e-9,0.0037913156361942314,-1.2401135693384962e-5,-2.545809144827838e-9,0.0037916289168516333,-1.263815898674036e-5,-2.0986190900712304e-9,0.0037920116463947694,-1.2846175399722612e-5,-1.7069510131467538e-9,0.0037924484233062025,-1.299819527970367e-5,-1.4217770124520617e-9,0.0037929160329965078,-1.3075228465631499e-5,-1.2788768709480869e-9,0.0037933865555892653,-1.3068858631174979e-5,-1.294030013439374e-9,0.0037938309814365434,-1.2982776331081918e-5,-1.4601266957738199e-9,0.0037942231481280977,-1.283322743822306e-5,-1.7462770627408988e-9,0.003794543866539171,-1.2648304256008901e-5,-2.0991058430070644e-9,0.003794785242433129,-1.2465858940810928e-5,-2.4467144889246194e-9,0.0037949550625008244,-1.232927438422763e-5,-2.7067816859225326e-9,0.003795080187817642,-1.2279927284374798e-5,-2.8009626097236014e-9,0.0037952065161867134,-1.2345871523227187e-5,-2.6763892980301933e-9,0.0037953921373555235,-1.2528542983790664e-5,-2.3307936469979733e-9,0.0037956913857025054,-1.2793157015980988e-5,-1.8305356927816436e-9,0.003796132776286854,-1.3071563213552118e-5,-1.3050406169510527e-9,0.0037967017325761278,-1.328280143626571e-5,-9.077926254452141e-10,0.0037973411548898497,-1.3364516232244082e-5,-7.568234874396928e-10,0.0037979727650269374,-1.3297561018064426e-5,-8.881042448926196e-10,0.003798527090663047,-1.3109356495992466e-5,-1.2492122368724608e-9,0.003798964917021712,-1.28570520619648e-5,-1.7313517826797332e-9,0.0037992820034057637,-1.2603783737617608e-5,-2.2145093402545987e-9,0.003799500926082306,-1.240063635168012e-5,-2.6017407417391375e-9,0.0037996585584883936,-1.2278587025970907e-5,-2.8344302677579545e-9,0.0037997952173949366,-1.2248205620853774e-5,-2.892780987975255e-9,0.0037999474748775944,-1.2303191954665917e-5,-2.789037696090718e-9,0.003800144171209063,-1.2424890429828608e-5,-2.5588855394347242e-9,0.0038004044225855666,-1.2586549203308632e-5,-2.2533402981175947e-9,0.003800736709459013,-1.2757180681021012e-5,-1.9313801867040904e-9,0.0038011386726849684,-1.2905234943333781e-5,-1.6529274004774604e-9,0.0038015976307220777,-1.300228941643676e-5,-1.4718298071475957e-9,0.0038020920655212837,-1.3026745702081325e-5,-1.4288825387251392e-9,0.0038025942999659027,-1.2967137471847075e-5,-1.5456250913598982e-9,0.0038030742779153713,-1.2824453504739554e-5,-1.8199956009474816e-9,0.0038035040835843223,-1.2613005619355985e-5,-2.224696148359336e-9,0.003803862725819495,-1.2359515273662385e-5,-2.7088896073266286e-9,0.0038041406058219682,-1.210021971862752e-5,-3.203654961905564e-9,0.003804343039903815,-1.187601536262798e-5,-3.6312222314006306e-9,0.0038044921992625045,-1.172572264151848e-5,-3.9178384073525195e-9,0.00380462650870891,-1.1677577510893996e-5,-4.010014190249887e-9,0.0038047960105914956,-1.1739750231113836e-5,-3.892553967922982e-9,0.0038050522524015824,-1.1892359741202971e-5,-3.603641811340095e-9,0.0038054328722651374,-1.2085474055587181e-5,-3.238495369877979e-9,0.003805944893983198,-1.224821847258572e-5,-2.931950879082715e-9,0.003806555314129275,-1.2310374852742212e-5,-2.8173999266934114e-9,0.003807197680863527,-1.2229146407934576e-5,-2.9759540232212596e-9,0.0038077950074467274,-1.2006673466743497e-5,-3.4031768325958983e-9,0.003808287639007238,-1.1687444632760447e-5,-4.014049779331443e-9,0.003808650970431554,-1.1338022030420527e-5,-4.681632012604156e-9,0.003808896131037573,-1.1022265614456972e-5,-5.284306129734353e-9,0.0038090582406506883,-1.0784417102233183e-5,-5.738002868905132e-9,0.0038091815513970188,-1.0643809594594406e-5,-6.006202185145872e-9,0.003809307974440942,-1.0597903969188504e-5,-6.094047127429888e-9,0.0038094707196667066,-1.062865600428072e-5,-6.036147477861492e-9,0.0038096919065528753,-1.070881560223071e-5,-5.8845641294033734e-9,0.003809982306819115,-1.0806887438420577e-5,-5.699365884995947e-9,0.003810341878982876,-1.0890883083801036e-5,-5.541482188826337e-9,0.003810760558410313,-1.0931470433055232e-5,-5.466698369518253e-9,0.003811219360612792,-1.0905036479831683e-5,-5.5198308461602985e-9,0.003811692191355198,-1.0796853778255012e-5,-5.728734249431048e-9,0.0038121488378866334,-1.0604042188757008e-5,-6.098714331775193e-9,0.0038125593293713445,-1.0337543772812268e-5,-6.608803289335694e-9,0.003812899313522184,-1.0022178567600895e-5,-7.211652084835195e-9,0.003813155569947561,-9.694053505107579e-6,-7.838435889364233e-9,0.003813330410478557,-9.395101236701062e-6,-8.409236512806301e-9,0.0038134436413059824,-9.165292526420089e-6,-8.847896464769259e-9,0.0038135310890633975,-9.033789295919845e-6,-9.098924795496566e-9,0.0038136392405932478,-9.010703935907942e-6,-9.143237881021444e-9,0.0038138161247166904,-9.081404582108e-6,-9.008993457535895e-9,0.003814099382214336,-9.205645720023213e-6,-8.773169562587337e-9,0.0038145038512597245,-9.323767143029389e-6,-8.549656250554983e-9,0.003815012795942145,-9.370894020933878e-6,-8.462137200027408e-9,0.0038155779477628124,-9.29673571143693E-06,-8.606350895718982e-9,0.0038161315938342274,-9.08397255339519e-6,-9.015063906599803e-9,0.0038166080185463146,-8.755923206484596e-6,-9.64348405426532e-9,0.003816965037754244,-8.368207760136484e-6,-1.0385219024877421e-8,0.003817195248806939,-7.988222530295059e-6,-1.1111520776134655e-8,0.0038173229340541176,-7.673167559394442e-6,-1.1713278449963451e-8,0.0038173910001939285,-7.456361956860252e-6,-1.212711923818663e-8,0.0038174460930694254,-7.344703089557365e-6,-1.234016488954878e-8,0.0038175278039535875,-7.323953104584782e-6,-1.2379836417372083e-8,0.00381766349450458,-7.3667834734719346E-06,-1.2298441630227018e-8,0.003817867345920316,-7.44006181186134e-6,-1.2159268639340678e-8,0.003818141527292887,-7.510114938000029e-6,-1.2026573341010378e-8,0.003818477933177015,-7.546220680736763e-6,-1.1958946292781465e-8,0.003818859819405176,-7.523169308927341e-6,-1.2004439996582582e-8,0.0038192634063506886,-7.4236603910782554e-6,-1.2196000644852678e-8,0.0038196599709800997,-7.2408663983656445e-6,-1.254657877456703e-8,0.003820019070571289,-6.980898470168708e-6,-1.3044426574530458e-8,0.0038203132898458427,-6.664287919255013e-6,-1.3650268900585339e-8,0.0038205242460868597,-6.325154432293589e-6,-1.4298887743684189e-8,0.0038206486164603457,-6.006817141678243e-6,-1.4907506500728048e-8,0.0038207020750147184,-5.75354803338733e-6,-1.5391558345619086e-8,0.0038207189146382747,-5.599839594091006e-6,-1.568521212544733e-8,0.0038207461938191602,-5.560151445206347e-6,-1.5760970711142652e-8,0.00382083315281559,-5.622636517693993e-6,-1.5641635859755003e-8,0.003821018492077559,-5.749455228146534e-6,-1.5399662200224305e-8,0.0038213190875863523,-5.884391306755396e-6,-1.5142562499287096e-8,0.0038217235693960125,-5.966361142703782e-6,-1.4987076158289204e-8,0.0038221931563597426,-5.9456270845393625e-6,-1.502819170366169e-8,0.0038226704818977797,-5.798272337779563e-6,-1.531149257821805e-8,0.0038230947974088572,-5.5340664292121286e-6,-1.581812655956149e-8,0.0038234191450172406,-5.194116998158923e-6,-1.6469310260958883e-8,0.003823623312951976,-4.838285790666961e-6,-1.7150435861376128e-8,0.0038237175482825378,-4.526986941152714e-6,-1.7745939341755873e-8,0.0038237362016777052,-4.3046651521168036e-6,-1.8170927741837015e-8,0.003823725137708133,-4.1908453164058315e-6,-1.8388262055022257e-8,0.003823728754133948,-4.180212251173304e-6,-1.8408322336149633e-8,0.0038237809830387044,-4.2490079943162265e-6,-1.8276693046141356e-8,0.0038239015028385787,-4.363551982793333e-6,-1.8057833412152605e-8,0.003824095946593768,-4.487740674388706e-6,-1.7820751134813358e-8,0.003824358126063857,-4.588281903972761e-6,-1.7629039709488436e-8,0.0038246727136478013,-4.637862217435199e-6,-1.753487003336477e-8,0.003825017627068585,-4.61711276381841e-6,-1.7575256806811815e-8,0.003825366118825118,-4.516259894351772e-6,-1.7768895996776932e-8,0.0038256891088083935,-4.336919177129825e-6,-1.8112701958105336e-8,0.0038259584950023394,-4.093846046758095e-6,-1.8578421203903003e-8,0.00382615197722384,-3.815735474025295e-6,-1.9111084395452904e-8,0.0038262592364493595,-3.543489200549398e-6,-1.963234108463913e-8,0.0038262880282502877,-3.3242349858685718e-6,-2.005195595532296e-8,0.0038262672917729517,-3.200584377536259e-6,-2.0288421016364784e-8,0.0038262439982333636,-3.197318624244381e-6,-2.029444817156697e-8,0.003826272400189211,-3.3105522427901474e-6,-2.0077656752741834e-8,0.0038263982363601133,-3.505059768382942e-6,-1.9705603558615896e-8,0.003826643866615569,-3.7224637285441357e-6,-1.929005491723827e-8,0.003827000550067141,-3.897808129259171e-6,-1.8955276671465806e-8,0.0038274307773840765,-3.9781801362031975e-6,-1.8802446818552187e-8,0.0038278791501668245,-3.936838386802747e-6,-1.8882656721060616e-8,0.003828287511464482,-3.7789936758587133e-6,-1.91858484343628e-8,0.003828609599833306,-3.538639788532877e-6,-1.9646859993872794e-8,0.0038288214789188135,-3.2682591437941436e-6,-2.01651251887211e-8,0.0038289254924217973,-3.0247269062595245e-6,-2.0631684713590868e-8,0.0038289472814131997,-2.855414110560565e-6,-2.0955834728401942e-8,0.0038289273259179074,-2.788188187669053e-6,-2.108429624581785e-8,0.0038289100096469695,-2.827593307999e-6,-2.100851341943847e-8,0.0038289336504991763,-2.957270847791984e-6,-2.0759969177050435e-8,0.0038290239989857604,-3.1466075062872564e-6,-2.0397397678011425e-8,0.0038291919363631554,-3.358735621529485e-6,-1.9991428033826533e-8,0.0038294345412146105,-3.5575484015966483e-6,-1.9611153660184545e-8,0.0038297379974115684,-3.7126062375014595e-6,-1.931477643950267e-8,0.0038300809546290265,-3.8019422327944494e-6,-1.9144289526878937e-8,0.003830437556664625,-3.813471476213471e-6,-1.9122815383613343e-8,0.0038307800423785735,-3.7458453013279217e-6,-1.925296167705247e-8,0.0038310813355700818,-3.6092600087004904e-6,-1.951522260747604e-8,0.003831318289772106,-3.4261620143933223e-6,-1.9866570427390518e-8,0.0038314761727888578,-3.2310651372663914e-6,-2.024078705408704e-8,0.003831554328173983,-3.067891478985199e-6,-2.0553606536838275e-8,0.00383157155253598,-2.9829338185445362e-6,-2.071629056719002e-8,0.0038315679388297268,-3.0127134004410304e-6,-2.0658964500687748e-8,0.0038315991481782685,-3.1692879484097765e-6,-2.0358751628086406e-8,0.0038317214021556132,-3.429727904878386e-6,-1.9859827008455862e-8,0.0038319713636641617,-3.7377031114383478e-6,-1.9270251199510938e-8,0.003832350581616624,-4.0199454376947184e-6,-1.8730381252591345e-8,0.003832823444733821,-4.211063811726861e-6,-1.8365375552540856e-8,0.0038333298168283644,-4.2746105018214276e-6,-1.82449115700899e-8,0.0038338051698647065,-4.211439514210527e-6,-1.8367216874901712e-8,0.003834198761806769,-4.0546278942909735e-6,-1.8668806860764246e-8,0.003834484151940069,-3.856273197654131e-6,-1.9049773936193798e-8,0.0038346613147808603,-3.6724518049993973e-6,-1.940260611015573e-8,0.0038347524550533677,-3.550605899014387e-6,-1.9636361789940677e-8,0.0038347942577808274,-3.52127028068912e-6,-1.969253972068335e-8,0.0038348288874075678,-3.5944825007219915e-6,-1.9551978029488838e-8,0.0038348954913967792,-3.7604912766397788e-6,-1.9233502467926943e-8,0.0038350235792819626,-3.9939514459539405e-6,-1.8785861778853742e-8,0.0038352291926199416,-4.260277158951203e-6,-1.8275496622939114e-8,0.003835514073341714,-4.522523088560736e-6,-1.7773291753942183e-8,0.0038358673369616493,-4.7473979554075516E-06,-1.7343025332758908e-8,0.0038362687210526454,-4.9095732722181525e-6,-1.7033139263666595e-8,0.00383669236799276,-4.99408908331157e-6,-1.6872194841765404e-8,0.003837110381916312,-4.997253315309627e-6,-1.6867206012024054e-8,0.0038374959397268127,-4.926686817006647e-6,-1.7003556999435392e-8,0.003837826168240292,-4.800973729438346e-6,-1.724561889505605e-8,0.0038380852198412027,-4.64897087800454e-6,-1.7538006826362915e-8,0.0038382680055769084,-4.508244405378731e-6,-1.780856000998818e-8,0.0038383845372422826,-4.4213473667315845e-6,-1.7975542156029803e-8,0.0038384635487548452,-4.428331072852901e-6,-1.7962111992879813e-8,0.003838552412999034,-4.554891468079644e-6,-1.7719129920892407e-8,0.003838709449637709,-4.79857611780019e-6,-1.7251579776228027e-8,0.003838986727658379,-5.120008018211622e-6,-1.6635275122453434e-8,0.0038394080255532118,-5.448208410521412e-6,-1.6006525398447498e-8,0.0038399539523913803,-5.703228860578149e-6,-1.5518689679738132e-8,0.003840565607656355,-5.826728491288216e-6,-1.5283563189269852e-8,0.0038411666084649057,-5.803303992373885e-6,-1.5330502316579828e-8,0.003841690669226006,-5.6615015185918996e-6,-1.5604511736937722e-8,0.0038421002535852433,-5.457713918832178e-6,-1.5997183329700725e-8,0.0038423907809453407,-5.254822630049416e-6,-1.6387728287251544e-8,0.003842584084612968,-5.1054363205735894e-6,-1.6675159725889587e-8,0.0038427176193724898,-5.043044755021766e-6,-1.6795248365588627e-8,0.003842834018332966,-5.07989312250766e-6,-1.6724578044920652e-8,0.003842972942410085,-5.209054269116863e-6,-1.6476567824802356e-8,0.0038431654789848045,-5.4086399567047076e-6,-1.60933997922233e-8,0.00384343077449617,-5.647036470412883e-6,-1.563595510392797e-8,0.00384377466746861,-5.888566057774086e-6,-1.5172890552403953e-8,0.003844190175581018,-6.098988812967744e-6,-1.477000694122479e-8,0.0038446595948861905,-6.250255466342545e-6,-1.4481091439427506e-8,0.003845157818995818,-6.324023724179862e-6,-1.4341201409106802e-8,0.0038456562996112983,-6.313615647304992e-6,-1.4362989566193652e-8,0.003846127011783707,-6.224437602563978e-6,-1.4535971378501742e-8,0.003846546039512686,-6.073206328661482e-6,-1.4828020425045514e-8,0.0038468967151338742,-5.886318244836747e-6,-1.518844046641186e-8,0.0038471724104394123,-5.6974965543184785e-6,-1.5552409101517088e-8,0.0038473791476006172,-5.544524492413738e-6,-1.5847232591313744e-8,0.0038475379016441485,-5.464345014145458e-6,-1.6001824499551356e-8,0.0038476855030219305,-5.485613097100651e-6,-1.596112434254084e-8,0.003847871879727775,-5.6186931393504005e-6,-1.5705383768277254e-8,0.0038481508803807564,-5.845389848453475e-6,-1.526986177286528e-8,0.003848563503714657,-6.114171536753636e-6,-1.4753886498476955e-8,0.0038491178160156275,-6.348715588209728e-6,-1.4304328128888127e-8,0.0038497770085141143,-6.472740813382431e-6,-1.4067840281603289e-8,0.0038504673064347367,-6.441502007513236e-6,-1.4130328256331074e-8,0.0038511053849232322,-6.261082594443713e-6,-1.4479857491646347e-8,0.003851629844832358,-5.983091492067725e-6,-1.5016874116127136e-8,0.003852018859395578,-5.680152288202065e-6,-1.5601434430578248e-8,0.0038522882875718684,-5.418923444947771e-6,-1.6105201466218447e-8,0.0038524776393092323,-5.243503092060938e-6,-1.644339124890214e-8,0.0038526343526436983,-5.171293042120779e-6,-1.658266798991624e-8,0.0038528022610099396,-5.196803821713961e-6,-1.6533754071038998e-8,0.003853015203081441,-5.2983925912731155e-6,-1.6338444310091512e-8,0.003853294442269686,-5.444945618229092e-6,-1.6056762373860484e-8,0.0038536482567425854,-5.601504835855946e-6,-1.5756133822008962e-8,0.0038540726814287585,-5.7339517789242305e-6,-1.550233250246981e-8,0.0038545530770026947,-5.813032433141409e-6,-1.535167747524828e-8,0.003855066511348219,-5.817774971569551e-6,-1.5344433001374196e-8,0.0038555849763886965,-5.738119863076067e-6,-1.5499788248752717e-8,0.0038560793166990247,-5.576384824864866e-6,-1.5813120373490353e-8,0.0038565234608473496,-5.347216994734051e-6,-1.6256150387493468e-8,0.0038568984147355433,-5.075979025649893e-6,-1.678004601450871e-8,0.00385719557764678,-4.795731754718215e-6,-1.7321162029551486e-8,0.0038574190570229696,-4.543041028615571e-6,-1.780903983008837e-8,0.003857586762326891,-4.352859428110214e-6,-1.817625138390654e-8,0.003857730049101876,-4.252572787910336e-6,-1.8369938134093778e-8,0.0038578912513364937,-4.255213948707043e-6,-1.8364992404288677e-8,0.003858117874957074,-4.3525404651654585e-6,-1.8177456727680517e-8,0.003858452354547486,-4.510210597999658e-6,-1.7873784612501723e-8,0.003858917791777117,-4.669051428707108e-6,-1.756829129472984e-8,0.003859503672194377,-4.756979406824098e-6,-1.7400082133742694e-8,0.003860160107605068,-4.712384004790362e-6,-1.7487936966225806e-8,0.0038608091664962376,-4.510570068775836e-6,-1.7879323414882926e-8,0.003861372398538454,-4.177424357879907e-6,-1.8524047943606895e-8,0.003861800506333025,-3.7795425476321384e-6,-1.9293349565570984e-8,0.0038620880164654562,-3.396288792625095e-6,-2.0033913711143205e-8,0.003862267166860147,-3.0911799396654256e-6,-2.062317555474824e-8,0.0038623893494130436,-2.8966628210158406e-6,-2.099867596807234e-8,0.003862506563495998,-2.8140990119499413e-6,-2.115798768293966e-8,0.0038626598321244918,-2.822389550608056e-6,-2.114198102596278e-8,0.003862874873005275,-2.8882527356427605e-6,-2.1014973901108832e-8,0.003863162336153394,-2.9744902195046028e-6,-2.0848814677809523e-8,0.0038635199304515298,-3.045533830271848e-6,-2.0712205478631623e-8,0.0038639348992436243,-3.0710234770790767e-6,-2.066378398501029e-8,0.0038643864355204357,-3.028367117469868e-6,-2.0747147455070232e-8,0.00386484822728367,-2.904831494192115e-6,-2.0986801911394604e-8,0.0038652914752601592,-2.699236644680084e-6,-2.1384920240420773e-8,0.003865688624510196,-2.4228755743300013e-6,-2.191962018272638e-8,0.00386601767419727,-2.0990064949875313e-6,-2.2545976090700474e-8,0.003866266452299767,-1.760409030734062e-6,-2.3200715561079226e-8,0.0038664359843247702,-1.4449098341719433e-6,-2.3810796904036255e-8,0.0038665420780329414,-1.1892409375748905e-6,-2.4305217895457498e-8,0.003866614450261009,-1.0220808697119544e-6,-2.4628464023641513e-8,0.0038666931331427633,-9.574329517630934e-7,-2.4753373068809092e-8,0.00386682224894407,-9.894664267422647e-7,-2.469119648990868e-8,0.0038670414158975728,-1.0900193002419434e-6,-2.449647640784153e-8,0.0038673755149895308,-1.2103925169421118e-6,-2.4263553007702945e-8,0.0038678247276590877,-1.2892296045959293e-6,-2.4111252377403624e-8,0.003868358444959499,-1.267252656795297e-6,-2.4154311249935473e-8,0.0038689178723244452,-1.106609395965305e-6,-2.446591385034712e-8,0.0038694306364283385,-8.077989637281885e-7,-2.504494355576824e-8,0.0038698345342124824,-4.141703486132289e-7,-2.5807311711834674e-8,0.003870099809101716,1.7314109784301966e-9,-2.661245619101961e-8,0.0038702378083155316,3.6458720020279093e-7,-2.7314567339474627e-8,0.0038702920854368386,6.214663267685033e-7,-2.7811317375819918e-8,0.0038703190910244194,7.53858335647063e-7,-2.8067074676155508e-8,0.00387036974897286,7.748010931081934e-7,-2.8107228302703305e-8,0.0038704788581488724,7.175311052953002e-7,-2.7996153658333026e-8,0.0038706626331334653,6.232083040671878e-7,-2.781347285744613e-8,0.0038709211656908133,5.318687125353667e-7,-2.7636609917695287e-8,0.003871242513436442,4.772284502188831e-7,-2.753078648423058e-8,0.003871606525933271,4.841804967947889e-7,-2.754418615260003e-8,0.0038719879135084533,5.675785755217659e-7,-2.7705577960566147e-8,0.003872358880346966,7.314004543716178e-7,-2.8022675148351287e-8,0.0038726919022138077,9.680249185641712e-7,-2.8480732932027746e-8,0.003872963138652044,1.2579586782204766e-6,-2.9042030043767234e-8,0.00387315657601737,1.5708285211382788e-6,-2.9647789466682646e-8,0.0038732683373289547,1.86855923238929e-6,-3.0224309921934445e-8,0.0038733099271485473,2.1112153111972303e-6,-3.069424612561177e-8,0.003873308852725411,2.2650543922665764e-6,-3.0992188082449424e-8,0.0038733053736022243,2.3111642765606837e-6,-3.108140596859698e-8,0.003873345192169577,2.2521788410355123e-6,-3.0966904370240415e-8,0.0038734693367986866,2.1146262125177263e-6,-3.0700024716839653e-8,0.003873703593536369,1.9454980220390796e-6,-3.037183659191588e-8,0.0038740502205765353,1.8030645268901052e-6,-3.009534652539585e-8,0.003874484463380578,1.7433559304306285e-6,-2.997927136727451e-8,0.003874957745425761,1.805067475563303e-6,-3.009872427079351e-8,0.0038754081819814224,1.9969121911983876e-6,-3.0470633717663e-8,0.0038757768904046563,2.2921729176794824e-6,-3.104314330933098e-8,0.0038760255596562514,2.6342273406501153e-6,-3.1706344087442033e-8,0.003876148467003275,2.953007064522305e-6,-3.232426651598912e-8,0.003876173208269964,3.1867247516892045e-6,-3.2777089184574225e-8,0.0038761496228379723,3.299682974732298e-6,-3.2995681880150156e-8,0.0038761325461103228,3.2890272755367357e-6,-3.297463097922817e-8,0.003876166403606068,3.179714693762658e-6,-3.276239593634084e-8,0.003876276896591104,3.0126859225590633e-6,-3.243833774524097e-8,0.0038764701624275557,2.8325579269208208e-6,-3.208888404389721e-8,0.0038767365992111737,2.6787515873070964e-6,-3.1790385133102694e-8,0.003877056148306675,2.580816495240054e-6,-3.160009687833867e-8,0.003877403029010765,2.556826343211539e-6,-3.1553084495681475e-8,0.0038777493008821016,2.613289973686861e-6,-3.166203618942354e-8,0.0038780675614554605,2.745446505360736e-6,-3.191780672517262e-8,0.003878333476381656,2.937524412643369e-6,-3.2289889347489e-8,0.0038785287779384415,3.1632353044676755e-6,-3.2727348319001116e-8,0.0038786449743421613,3.38733667833281e-6,-3.3161835770498974e-8,0.0038786873128192818,3.569409484611795e-6,-3.351491898098499e-8,0.003878677591593657,3.6707118908738144e-6,-3.371139093728882e-8,0.003878653651155005,3.663736005572876e-6,-3.369782934114989e-8,0.003878663611183559,3.5420997935283253e-6,-3.346179770353897e-8,0.003878754731082063,3.3267106762652564e-6,-3.304380167421774e-8,0.003878959662882301,3.0642480397399228e-6,-3.2534349810315585e-8,0.0038792851193151815,2.8166766000497898e-6,-3.2053637071171815e-8,0.003879707781335941,2.644580007151263e-6,-3.171924924585675e-8,0.003880179414535661,2.590044261113597e-6,-3.161296170025512e-8,0.003880639462395093,2.664856929841553e-6,-3.175779169109812e-8,0.003881030963909623,2.847441295081661e-6,-3.211196330829822e-8,0.003881315132026455,3.088989773401876e-6,-3.258074793403881e-8,0.003881480673019954,3.3267950065992406e-6,-3.304234350010906e-8,0.0038815453906210946,3.500934082932849e-6,-3.33803219040278e-8,0.0038815497710628015,3.5694288741531944e-6,-3.3513127109619604e-8,0.003881544796778198,3.5173837589184617e-6,-3.341184114435914e-8,0.003881578212321525,3.3577257039687044e-6,-3.310159999772678e-8,0.0038816837406748395,3.1243817248589497e-6,-3.264830861127478e-8,0.0038818760151617553,2.8614164265762064e-6,-3.213752525507882e-8,0.0038821512694009203,2.612341272483004e-6,-3.165370238768937e-8,0.0038824917692874394,2.4124461107722537e-6,-3.1265314802538124e-8,0.003882871480346175,2.2849072067360234e-6,-3.1017329356398934e-8,0.0038832611824149987,2.2398928027330586e-6,-3.0929494207351274e-8,0.0038836323245214632,2.275318774487282e-6,-3.099781618751069e-8,0.0038839597921307414,2.378108423025778e-6,-3.119699030134757e-8,0.0038842242152507703,2.5254286212354412e-6,-3.148275781095068e-8,0.0038844144663355965,2.686059250390416e-6,-3.179451894543604e-8,0.0038845306688387576,2.822639547206788e-6,-3.2059675183163195e-8,0.003884587357003466,2.8959475224504465e-6,-3.220196455639171e-8,0.0038846153737523,2.8722310269464106e-6,-3.21557550736718e-8,0.003884660056959134,2.7333387608771316e-6,-3.18857668919105e-8,0.0038847732762158013,2.4869046599035173e-6,-3.1406851357082614e-8,0.0038849991252745794,2.1712642698410145e-6,-3.0793495921892944e-8,0.0038853574442500984,1.8496451423368823e-6,-3.016850650976043e-8,0.0038858330515733975,1.5925789224385644e-6,-2.9668865383990577e-8,0.003886377556622482,1.4547566015723252e-6,-2.940082528056271e-8,0.0038869241473787107,1.4569552475180457e-6,-2.9404819127186324e-8,0.0038874085176017156,1.5809669809562609e-6,-2.9645564220367717e-8,0.003887786800305342,1.7780034980890623e-6,-3.002832302171855e-8,0.0038880447159318995,1.9850173646662214e-6,-3.0430573951043864e-8,0.0038881971924163384,2.1420596256770285e-6,-3.073574438290413e-8,0.003888280961175994,2.205781072292864e-6,-3.085948449380518e-8,0.0038883435694981065,2.1568374784550173e-6,-3.076410840731744e-8,0.0038884319296096136,2.0009593416802778e-6,-3.0460718017368735e-8,0.00388858281744708,1.7646673454508626e-6,-3.000089846925649e-8,0.003888816937092785,1.487387634284406e-6,-2.9461380448588014e-8,0.003889137213009564,1.2122368285186793e-6,-2.8926083312790018e-8,0.0038895308769200843,9.77741933194379e-7,-2.8469964105098837e-8,0.0038899740437511265,8.120453633245923e-7,-2.81477220260484e-8,0.003890437171818333,7.300902557734322e-7,-2.7988343358411724e-8,0.0038908900772970704,7.333723847624609e-7,-2.7994672649499975e-8,0.0038913058202770783,8.11313345377628e-7,-2.8146131740211625e-8,0.003891663485624368,9.432958331578632e-7,-2.8402680159512044e-8,0.0038919502946732623,1.1008399990349611e-6,-2.8708996787877187e-8,0.0038921635340459903,1.2499486900889057e-6,-2.8998973546822423e-8,0.0038923125934744473,1.3541502616078596e-6,-2.9201603267134142e-8,0.0038924208408559866,1.379197734291158e-6,-2.9250157793629576e-8,0.0038925260361622285,1.3003034856014153e-6,-2.909634192665132e-8,0.0038926769630940033,1.1115916402400212e-6,-2.8728743103664676e-8,0.0038929238963934187,8.34996763450161e-7,-2.819013439953649e-8,0.003893302729372596,5.229491681716229e-7,-2.7582633768285374e-8,0.0038938176635446077,2.486270920040773e-7,-2.704868519022275e-8,0.0038944323474479204,8.290889866841129e-8,-2.6726217478885122e-8,0.0038950779585628413,6.71542862886964e-8,-2.6695708784190685e-8,0.0038956768103849595,1.9679611586948285e-7,-2.694825472718397e-8,0.003896169311776245,4.2495370109331924e-7,-2.73925766726845e-8,0.003896530677936019,6.822594553111313e-7,-2.7893606935094835e-8,0.0038967721729981984,9.007324311420936e-7,-2.8318972956552194e-8,0.003896930972109137,1.0312737312306008e-6,-2.8573056292209646e-8,0.0038970560356940956,1.0512333616440805e-6,-2.8611714898809007e-8,0.0038971954492596143,9.637576168076825e-7,-2.84410251401411e-8,0.0038973875128366286,7.922909732076531e-7,-2.8106623400673385e-8,0.003897655773663217,5.73039745366953e-7,-2.7679078820458593e-8,0.0038980074203048315,3.470975623162463e-7,-2.723855936562174e-8,0.003898434383602654,1.532557749678879e-7,-2.686076811069166e-8,0.003898916483642837,2.2273778031217942e-8,-2.6605698033749048e-8,0.003899425869944706,-2.6879705272445377e-8,-2.651026260606674e-8,0.003899931946443452,1.135752503116599e-8,-2.658517606455315e-8,0.003900405988380751,1.2952483923987927e-7,-2.6815784333920333e-8,0.0039008248607193337,3.0902597073996624e-7,-2.7165815642283763e-8,0.0039011736945926885,5.228355224148576e-7,-2.7582659172522265e-8,0.003901447733469793,7.385703341824681e-7,-2.800327930437387e-8,0.0039016535931530446,9.218576909926763e-7,-2.8360689234556944e-8,0.003901810063641041,1.0402342282423203e-6,-2.8591513682344532e-8,0.0039019482346590566,1.068114437545263e-6,-2.8645727584383664e-8,0.0039021099156309434,9.933162871447647e-7,-2.8499486010026745e-8,0.0039023425147539973,8.245733393134014e-7,-2.816985246159411e-8,0.0039026886667243655,5.973876226969504e-7,-2.7726207946250197e-8,0.0039031709184319144,3.732053312467776e-7,-2.728856993304565e-8,0.003903776436955178,2.2643689124575264e-7,-2.7002203145251322e-8,0.0039044517336320776,2.1908852626009318e-7,-2.6988107235954432e-8,0.0039051160269753435,3.7343990320735743e-7,-2.728970832405026e-8,0.0039056904602020087,6.597257455398579e-7,-2.7848816986833218e-8,0.0039061274952976715,1.008182754458275e-6,-2.8529159419230002e-8,0.003906424029832539,1.337864454440272e-6,-2.917267690733211e-8,0.0039066143239121455,1.584673185538172e-6,-2.9654276855512307e-8,0.003906751629333246,1.7160417124478927e-6,-2.991045051383723e-8,0.003906889981347287,1.7312807173328777e-6,-2.993987957694521e-8,0.003907072257425082,1.6535639424178371e-6,-2.978777180552823e-8,0.003907324953080964,1.5196860399174986e-6,-2.9525923596991393e-8,0.003907657617907691,1.3710174126904936e-6,-2.9235136326534077e-8,0.003908064791635279,1.246627938272527e-6,-2.8991808582392042e-8,0.003908529121213566,1.178355331974727e-6,-2.8858246582644022e-8,0.0039090251008069895,1.1874723538953122e-6,-2.8876064406570793e-8,0.0039095231741027164,1.2828026766380307e-6,-2.9062457134925734e-8,0.003909993971965604,1.4602429723720258e-6,-2.940930205385144e-8,0.003910412376088683,1.7037257014122688e-6,-2.9885126077279e-8,0.003910760972899444,1.9875614267849495e-6,-3.043974711070414e-8,0.003911032543742426,2.279815827653438e-6,-3.1010855542352346e-8,0.003911231493909528,2.5463069029857515e-6,-3.153173238001942e-8,0.003911374222650876,2.7549910335127733e-6,-3.193972170951845e-8,0.003911488384327841,2.880624085469085e-6,-3.218531726661661e-8,0.003911610864352182,2.909667982481857e-6,-3.224183476086153e-8,0.003911783886839922,2.84536194505679e-6,-3.211546429333361e-8,0.003912048236733935,2.7121190655270843e-6,-3.1853969077637996e-8,0.003912432956737331,2.5569177610852085e-6,-3.1549408250500364e-8,0.003912942711842446,2.4439948046497946e-6,-3.13276712957956e-8,0.003913547494005578,2.439525781374463e-6,-3.1318405148871284e-8,0.003914182801008766,2.587612510786791e-6,-3.160796365905382e-8,0.00391476670682019,2.8876813198392386e-6,-3.219515496038958e-8,0.003915229878465214,3.288612511808708e-6,-3.297977441605243e-8,0.00391554262842195,3.707168304776008e-6,-3.3798756641249064e-8,0.003915722816780819,4.061134667377567e-6,-3.449114586943816e-8,0.0039158221519932715,4.297554871760769e-6,-3.495337435976911e-8,0.003915902612886247,4.403020028690837e-6,-3.5159304982510026e-8,0.003916016771863963,4.3972762305046315e-6,-3.51476057496457e-8,0.003916198069716032,4.319425094326008e-6,-3.499472431255641e-8,0.003916459596845121,4.214738888555488e-6,-3.4789167335719515e-8,0.003916797401300606,4.125457418511884e-6,-3.46135897824814e-8,0.003917195121291198,4.085545626385126e-6,-3.453456558879286e-8,0.003917628376812855,4.118078743411213e-6,-3.459741276197698e-8,0.00391806864547818,4.234057023541767e-6,-3.4823781820516536e-8,0.0039184868549933145,4.432100524385358e-6,-3.521100643460954e-8,0.003918856894454718,4.698942282664103e-6,-3.5733089149345645e-8,0.003919159062997544,5.010909292212568e-6,-3.634366398414867e-8,0.003919383180819294,5.336673361384431e-6,-3.698142096457321e-8,0.003919530829987342,5.641296545403175e-6,-3.757799607711368e-8,0.0039196162213828035,5.891218249778886e-6,-3.8067651883344666e-8,0.0039196653747344806,6.059652716046391e-6,-3.8397777275256785E-08,0.003919713456096689,6.131770978781817e-6,-3.853905013964011e-8,0.003919800276775679,6.108967573413839e-6,-3.849390802272054e-8,0.003919964045053333,6.011521522845613e-6,-3.830191792649171e-8,0.003920233494230299,5.878730153642338e-6,-3.804014811232711e-8,0.003920618992780859,5.764983763374026e-6,-3.781547454419313e-8,0.00392110459247313,5.730010496430183e-6,-3.7745352062984805e-8,0.0039216448866342514,5.822802882578071e-6,-3.792614771435408e-8,0.00392217165582521,6.062441369382195e-6,-3.839540769990899e-8,0.003922612784897084,6.424343781374744e-6,-3.910483982583697e-8,0.003922918279510956,6.842549813656679e-6,-3.9924854655693004e-8,0.0039230801956615,7.231684285990491e-6,-4.068779460101494e-8,0.003923134148926395,7.5187772284920845e-6,-4.125047503163074e-8,0.003923141833425455,7.667435752105012e-6,-4.1541586012182924e-8,0.003923166269325025,7.683166138878378e-6,-4.1571999586433136e-8,0.003923253198934327,7.602234341381125e-6,-4.1412808153840096e-8,0.00392342418128479,7.474463541507354e-6,-4.1161593315289665e-8,0.003923678875818511,7.348774715809465e-6,-4.091417238620076e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json new file mode 100644 index 0000000..509a7d1 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":24000,"numberOfSamples":1000,"samples":[0.003924001349468574,7.264665173102422e-6,-4.0747989552475184e-8,0.003924366586169156,7.248790607297544e-6,-4.0715438046854016e-8,0.0039247455983737215,7.31449699975775e-6,-4.084288354023843e-8,0.003925109134008881,7.462510402409807e-6,-4.1131928535769936e-8,0.003925430619334403,7.681943579661476e-6,-4.156132990390201e-8,0.003925688916221978,7.9515663056217e-6,-4.208949033990723e-8,0.003925871139610513,8.241724001493012e-6,-4.26582543580377e-8,0.003925975343160025,8.517452558510482e-6,-4.319903585164052e-8,0.003926012408625573,8.743124708146312e-6,-4.364190844664137e-8,0.0039260062351111815,8.888393011087458e-6,-4.392721436513869e-8,0.0039259914819518545,8.934553769547599e-6,-4.401802379763859e-8,0.003926008601681654,8.87995541059872e-6,-4.391078722925618e-8,0.003926096603853184,8.742886424791559e-6,-4.364111335220435e-8,0.003926284700461693,8.560700555841224e-6,-4.328218871863738e-8,0.003926584419799495,8.38460458304358e-6,-4.293463839580567e-8,0.003926983982520055,8.27018419490559e-6,-4.270791978660203e-8,0.003927446933578442,8.26450952654458e-6,-4.269489056436631e-8,0.003927917035426422,8.392007583137403e-6,-4.294388907717355e-8,0.003928330548152765,8.643213090672838e-6,-4.343648270886796e-8,0.003928634404239271,8.97202431142347e-6,-4.4082022548759444e-8,0.003928804571353034,9.306016764539644e-6,-4.473798796749362e-8,0.003928855847415065,9.568840746130847e-6,-4.525415343428905e-8,0.0039288366735898165,9.705875342600683e-6,-4.552310678124801e-8,0.003928810708523999,9.70075387287824e-6,-4.5512697637589113e-8,0.003928834802404048,9.575566014901797e-6,-4.526632710582171e-8,0.003928943827175889,9.377534807333275e-6,-4.487669985208786e-8,0.003929146690245219,9.161289638700064e-6,-4.445102369531869e-8,0.003929431010766044,8.97479258527682e-6,-4.408344678591044e-8,0.003929771249439363,8.851942834798086e-6,-4.3840594450064106e-8,0.003930136299987928,8.810775413828423e-6,-4.375803213461219e-8,0.0039304949376361325,8.854733935909684e-6,-4.3842713182813283e-8,0.003930819251349883,8.97490756364095e-6,-4.4077307493303816e-8,0.003931086911330102,9.152169769274805e-6,-4.442436000944777e-8,0.0039312831240633185,9.359120650070548e-6,-4.4830096409770687e-8,0.003931402736278697,9.562353565431697e-6,-4.522888479978551e-8,0.0039314523679986994,9.725809891954073e-6,-4.554983213541918e-8,0.003931451821677968,9.81581544058732e-6,-4.572667330703574e-8,0.0039314335373014,9.807739373223678e-6,-4.5710846370490446e-8,0.003931438847422937,9.693139686684408e-6,-4.5485541526462294e-8,0.003931510540598468,9.485126741041124e-6,-4.507628154878644e-8,0.0039316827752822045,9.21922505098598e-6,-4.455269004539336e-8,0.003931971055312627,8.947933809120098e-6,-4.401789076476449e-8,0.0039323657307728825,8.729358784614993e-6,-4.358622919525109e-8,0.003932831731699162,8.612643855888081e-6,-4.335462841531593e-8,0.003933315344617792,8.62429738570606e-6,-4.337560654570439e-8,0.003933756715300976,8.759463349484685e-6,-4.363994931455601e-8,0.003934105106059232,8.981053856326873e-6,-4.407485811762412e-8,0.003934332913929343,9.227877438043526e-6,-4.4559891225405716e-8,0.0039344440871193175,9.430525068002884e-6,-4.4958286576969273e-8,0.003934473402796723,9.530858688927084e-6,-4.5155432327327116e-8,0.003934475863914978,9.498545685117723e-6,-4.509149078422063e-8,0.003934509718222492,9.33827824991407e-6,-4.47756142603218e-8,0.003934619792227327,9.085158588882537e-6,-4.427682786107174e-8,0.003934827415641757,8.791280140237335e-6,-4.369760258181166e-8,0.00393512933343696,8.510038014808986e-6,-4.31429928445453e-8,0.0039355035636141015,8.284081649552148e-6,-4.269695029529051e-8,0.003935918018543304,8.139406686077033e-6,-4.241070000822375e-8,0.003936338353846052,8.084775818140693e-6,-4.2301584302013366e-8,0.003936733445406277,8.114176353890525e-6,-4.235787766689351e-8,0.0039370785461212525,8.210197709692123e-6,-4.254541828860122e-8,0.003937356971767464,8.347130480599071e-6,-4.281369430236631e-8,0.003937561263758311,8.493567783692922e-6,-4.310094762045791e-8,0.003937694438031615,8.615002843389891e-6,-4.333926631812809e-8,0.003937771330134241,8.67725650150846e-6,-4.346131796842194e-8,0.003937819322870859,8.651508326884634e-6,-4.3410256470381495e-8,0.003937877058427044,8.521099894445721e-6,-4.3153137231452934e-8,0.003937989463885939,8.288931327634417e-6,-4.269550841092151e-8,0.003938198228981029,7.982475866423666e-6,-4.209131265757179e-8,0.003938529202136906,7.652421272823026e-6,-4.144024574779018e-8,0.003938981172624146,7.362348631112524e-6,-4.086748201679056e-8,0.003939521858698951,7.171057158621901e-6,-4.048891544782165e-8,0.003940094615197016,7.113880374154503e-6,-4.0374365707466556e-8,0.0039406342007793785,7.190918645244552e-6,-4.052432522098116e-8,0.003941085456845227,7.366953288287352e-6,-4.086966435709471e-8,0.003941417979926735,7.582297213206803e-6,-4.1292902967637985e-8,0.003941632550878733,7.769811582108233e-6,-4.1661704613367465e-8,0.0039417586573959,7.872367731094012e-6,-4.186332403044912e-8,0.00394184498935138,7.856147459827803e-6,-4.183089280710224e-8,0.003941946090056001,7.716963831159671e-6,-4.155595404739903e-8,0.003942108844751583,7.478721284531861e-6,-4.1085488184775086e-8,0.003942362280649743,7.1851264448118275e-6,-4.0505610055412035e-8,0.003942713056297738,6.887545188092401e-6,-3.9917635489093076e-8,0.003943147094181412,6.63285056822077e-6,-3.9414089140640513e-8,0.00394363576055283,6.45458746493619e-6,-3.906122521138246e-8,0.003944143851940386,6.3689698481875325e-6,-3.889108334065558e-8,0.003944636869159611,6.375238897636767e-6,-3.89021835862169e-8,0.003945086178514301,6.458758785510235e-6,-3.906566285644976e-8,0.003945471885644119,6.595087712929455e-6,-3.9333345409787816e-8,0.003945784062145488,6.75381682031183e-6,-3.96453240801719e-8,0.0039460231949269235,6.9018086924852714e-6,-3.993631138475404e-8,0.003946200484182494,7.0061699834473986e-6,-4.0141443325436696e-8,0.003946338123548155,7.037663514739489e-6,-4.020297398706976e-8,0.003946469030517169,6.975321308310946e-6,-4.007939202239149e-8,0.0039466347171631935,6.8125615268396335e-6,-3.9757548945000605e-8,0.003946879526314831,6.563781000662389e-6,-3.926572917290399e-8,0.003947240113576192,6.26832771088985e-6,-3.8681519815076635e-8,0.00394773162032693,5.987155767768718e-6,-3.8125213666258697e-8,0.00394833606959585,5.788678511154436e-6,-3.7731893344309e-8,0.0039490010315956,5.726070108611301e-6,-3.760663760887806e-8,0.003949653254363835,5.815841448021564e-6,-3.778221021701663e-8,0.003950222933085804,6.029784395114221e-6,-3.8203094717768544e-8,0.003950666763769117,6.305251283013329e-6,-3.874572335149639e-8,0.003950978997636163,6.567633107643007e-6,-3.926282625402561e-8,0.003951187946508848,6.753390037519353e-6,-3.9628897768472654e-8,0.003951342970045106,6.82499234587586e-6,-3.9769697357740485e-8,0.00395149899125544,6.775528812781524e-6,-3.9671369919487616e-8,0.003951703461040263,6.625121099539185e-6,-3.9373432374454456e-8,0.003951987858015527,6.412572497682793e-6,-3.8952382552237284e-8,0.003952363959429004,6.185216687773946e-6,-3.8501729618800614e-8,0.003952824318389738,5.9890392604355895e-6,-3.811248119847719e-8,0.003953346084383744,5.8605580191022866e-6,-3.7857015174201214e-8,0.003953896995412957,5.821583390244034e-6,-3.777860582122305e-8,0.003954442092751837,5.877359468380301e-6,-3.7887672658214384e-8,0.003954949781935346,6.017769412892624e-6,-3.816417373000497e-8,0.003955396289717578,6.220694202785564e-6,-3.856432318594815e-8,0.003955768174884203,6.456367672750993e-6,-3.902927598979735e-8,0.003956063179994125,6.691705169501888e-6,-3.949369249275251e-8,0.003956290051901221,6.894111093467348e-6,-3.989319559509603e-8,0.003956467854520423,7.034854759428582e-6,-4.017095218887658e-8,0.0039566249669400816,7.092436622888951e-6,-4.0284290088954386e-8,0.003956797478346305,7.056481487425291e-6,-4.021245059161304e-8,0.003957025994777186,6.932388600346256e-6,-3.996590300588929e-8,0.003957349414623954,6.7458410699163445e-6,-3.959537173887109e-8,0.003957794778545756,6.544498614818847e-6,-3.9195220973930975e-8,0.003958364489074411,6.392651543668574e-6,-3.889283923884582e-8,0.003959026190955713,6.355295837039837e-6,-3.881705762450065e-8,0.003959713978117959,6.473712946892012e-6,-3.904975388942963e-8,0.003960346658841707,6.743821961530491e-6,-3.958294960032686e-8,0.003960857575990237,7.112323350996538e-6,-4.031115186969541e-8,0.0039612197932018854,7.496174919039376e-6,-4.10699402100219e-8,0.003961452306299503,7.814588012843276e-6,-4.169936348567501e-8,0.003961606574536528,8.01530911676443e-6,-4.209596468724888e-8,0.003961744529834369,8.08439052342442e-6,-4.223205431160473e-8,0.003961919898203691,8.041055608842375e-6,-4.2145503385516964e-8,0.003962167934107929,7.92540646416268e-6,-4.1915471608097986e-8,0.003962502766954194,7.785608877629877e-6,-4.1637175222764884e-8,0.003962919504652272,7.667738377555936e-6,-4.140189174962666e-8,0.00396339860412415,7.6088866362392024e-6,-4.128330394764023e-8,0.003963911081389532,7.633028280277278e-6,-4.132919427751386e-8,0.003964423927548092,7.749152914604407e-6,-4.1557593105492124e-8,0.003964905318504584,7.951432583245587e-6,-4.1957026443146924e-8,0.003965329172806784,8.221199670866641e-6,-4.249046155503989e-8,0.0039656786145144665,8.530378408627668e-6,-4.310220299700377e-8,0.003965947990889918,8.845841392371245e-6,-4.37266017606286e-8,0.003966143368775138,9.134007815143316e-6,-4.429715430491004e-8,0.003966281763390242,9.365126081644348e-6,-4.475489492347632e-8,0.003966389432433808,9.517028569907252e-6,-4.50557398961551e-8,0.0039664994413490615,9.578380169243303e-6,-4.517691762130738e-8,0.003966648478154706,9.551562333274848e-6,-4.512279719134597e-8,0.003966872442131501,9.455213790585541e-6,-4.493010285476397e-8,0.003967200009096507,9.325645135291122e-6,-4.4670856835179115e-8,0.003967643942139405,9.215087087823338e-6,-4.4448923046119814e-8,0.0039681916280942,9.183905742556441e-6,-4.438445858297688e-8,0.003968799131557344,9.284666046934797e-6,-4.4582129386551373e-8,0.003969395714603861,9.540259293398974e-6,-4.508756258136944e-8,0.0039699037202130414,9.926237027984614e-6,-4.585222439096121e-8,0.003970268552470416,1.0371684773005795e-5,-4.673521137896835e-8,0.003970482142169558,1.078412203468818e-5,-4.755282003004367e-8,0.0039705843561092195,1.10860283048514e-5,-4.815115477383973e-8,0.003970642360386332,1.1241376583518066e-5,-4.845874452293147e-8,0.003970722821708415,1.125981504453911e-5,-4.8494689966727235e-8,0.0039708723071808566,1.11829441885822e-5,-4.834134805360363e-8,0.003971110919069601,1.1065211622363857e-5,-4.810650188240576e-8,0.003971435431608885,1.0958632735931508e-5,-4.7893216781566505e-8,0.003971826265812919,1.0903990546723049e-5,-4.778250186894762e-8,0.003972254586729742,1.0927283245886881e-5,-4.782624238951511e-8,0.003972688105211575,1.1039249843146977e-5,-4.8046116883982526e-8,0.0039730955939297884,1.1236386675066273e-5,-4.843545087392066e-8,0.00397345054557075,1.1502799362280447e-5,-4.8962807876693554e-8,0.003973734208169738,1.1812792318729848e-5,-4.9577158828296015e-8,0.003973937950405579,1.2134265111817801e-5,-5.021471558067026e-8,0.003974064679006379,1.2432918992578263e-5,-5.080734411592102e-8,0.003974128944467808,1.2676973960732623e-5,-5.129190491821449e-8,0.003974155556457899,1.2841827542246017e-5,-5.1619414061577866e-8,0.0039741767870729505,1.2914097734147498e-5,-5.1763003268766806e-8,0.003974228381508199,1.2894585117898373e-5,-5.1723840310494984e-8,0.0039743446740342315,1.2799778794775203e-5,-5.1534278839920305e-8,0.003974553031218095,1.2661651645222267e-5,-5.1257656952560386e-8,0.00397486770830553,1.252526192551265e-5,-5.0983665712715536e-8,0.003975283624309093,1.244306855380536e-5,-5.081702986908633e-8,0.003975771762776541,1.2464764616558008e-5,-5.085712444532777e-8,0.003976279358595454,1.2622668128129355e-5,-5.1168686224427466e-8,0.003976738806949802,1.2915806066879637e-5,-5.174997205879499e-8,0.00397708712480231,1.3300494013523065e-5,-5.251398213335525e-8,0.003977290708495544,1.3697307875515348e-5,-5.3302462984544026e-8,0.003977362035950759,1.4017395454687275e-5,-5.393846232144907e-8,0.003977355858695399,1.4196719691249908e-5,-5.429455632185751e-8,0.003977345605575303,1.4218583669657343e-5,-5.433755885903962e-8,0.003977394646971235,1.4112859234273654e-5,-5.412679978292305e-8,0.003977538120767945,1.3937040535825622e-5,-5.377637606636613e-8,0.003977780313015663,1.3753373811437281e-5,-5.3409789340420174E-08,0.0039781024005110955,1.361276026355333e-5,-5.312812805725196e-8,0.003978473023124186,1.3547849219766439e-5,-5.299644136530384e-8,0.003978857094370713,1.3572654477401475e-5,-5.304293291262342e-8,0.00397922161367756,1.3685187261991948e-5,-5.326404503945597e-8,0.0039795391090315735,1.387078103509612e-5,-5.363091484811033e-8,0.003979789799970764,1.4105237357237993e-5,-5.4095556401576257e-8,0.0039799632178153825,1.4357845076354077e-5,-5.45968922420498e-8,0.003980059500806607,1.4594673222991368e-5,-5.506737604277994e-8,0.003980090142970023,1.4782539911570218e-5,-5.5440930753357645e-8,0.003980077642195864,1.4893710156689642e-5,-5.566226817310781e-8,0.003980053468419345,1.4910803096605801e-5,-5.56965853216742e-8,0.0039800541106269635,1.4830983623911673e-5,-5.553787293347947e-8,0.0039801154418540406,1.466838142817004e-5,-5.5213797919344863e-8,0.003980266139921954,1.4453775388946017e-5,-5.478524269653043e-8,0.003980521287767714,1.4231023369268172e-5,-5.4339391697161045e-8,0.003980877353979621,1.4050315119139707e-5,-5.397640762167942e-8,0.003981309717837675,1.395868469966156e-5,-5.3790488944141864e-8,0.003981774090037387,1.3988628469092594e-5,-5.3846999457069773e-8,0.003982213281677193,1.4146764402475845e-5,-5.415961657859051e-8,0.003982570011449755,1.4406143821260008e-5,-5.467482526558627e-8,0.003982804131697453,1.47071498764841e-5,-5.527369286809923e-8,0.003982908778352366,1.4970992193698437e-5,-5.579891732093303e-8,0.003982916824397885,1.5124448073961797e-5,-5.6104337480320424e-8,0.003982891263406429,1.5126160410236833e-5,-5.610742482232311e-8,0.00398290215454356,1.4980743595872157e-5,-5.581730514030468e-8,0.0039830019202654705,1.4733222541316497e-5,-5.532354528930037e-8,0.003983211326857249,1.4448727937037265e-5,-5.4755680309660146e-8,0.003983520104257227,1.4189885389384998e-5,-5.423828496751849e-8,0.003983897259054235,1.4001826693159665e-5,-5.386125283385029e-8,0.003984303459136277,1.3907216352427944e-5,-5.366993275012876e-8,0.003984700579759181,1.3908279420985249e-5,-5.3669095525382856e-8,0.003985057207973846,1.399170223752423e-5,-5.3832563887307894e-8,0.00398535107067196,1.4133635001783242e-5,-5.411306762933109e-8,0.003985569881970607,1.4303771905497005e-5,-5.445033306625039e-8,0.0039857117052029475,1.4468652878353123e-5,-5.4777689929636526e-8,0.003985785248092382,1.4594817843348775e-5,-5.502840613731594e-8,0.003985809897015252,1.4652472383143383e-5,-5.514301337657362e-8,0.003985814826438397,1.4619974837042523e-5,-5.5078226609295487e-8,0.0039858363205629195,1.4488750116827408e-5,-5.481669944437828e-8,0.003985912714645442,1.426742833517886e-5,-5.4375274115178266e-8,0.003986077146685968,1.3983468945714063e-5,-5.380829619913038e-8,0.003986349418788184,1.3680607655818763e-5,-5.320267121504874e-8,0.003986729243878734,1.3411429492368585e-5,-5.266321054783875e-8,0.003987193368925278,1.3226052188088213e-5,-5.229014065094215e-8,0.0039876982347206835,1.3159498917999302e-5,-5.2153854337675876E-08,0.00398818833657533,1.3221106579292605e-5,-5.227358445765773e-8,0.003988608901007278,1.338916970518754e-5,-5.260647556617648e-8,0.003988920183252699,1.3613194193081244e-5,-5.3051916801022585e-8,0.003989109646982799,1.3824650626505712e-5,-5.347299765131535e-8,0.003989197746223967,1.3954767944424933e-5,-5.373215558025435e-8,0.003989233827788415,1.3954763566654355e-5,-5.373171638754063e-8,0.003989281800794039,1.3811236850979288e-5,-5.3444699852450874e-8,0.003989400134260441,1.3549823535973889e-5,-5.292209959911019e-8,0.003989624365284392,1.3225093106393183e-5,-5.227268643727621e-8,0.003989959279866753,1.290162083662521e-5,-5.1625249279043706e-8,0.0039903824814073756,1.2635093520500604e-5,-5.109093995112096e-8,0.00399085532254792,1.2460509228031144e-5,-5.0739748289693165e-8,0.003991335096141489,1.2389290014694273e-5,-5.0594703090057124e-8,0.003991784193685639,1.2412788238110021e-5,-5.063879306432595e-8,0.0039921750376531425,1.2508400657934924e-5,-5.082710027342623e-8,0.0039924916979013365,1.264552801312763e-5,-5.109866380876292e-8,0.003992729733420645,1.2790244411010073e-5,-5.138580639540977e-8,0.003992895505481774,1.2908774182592685e-5,-5.162109554086806e-8,0.003993005539841018,1.2970483448082949e-5,-5.1743325651077926e-8,0.003993085805853583,1.2951169554634605e-5,-5.170407528089941e-8,0.0039931702182065525,1.2837098930575677e-5,-5.1475750096119304e-8,0.003993297356816803,1.2629535465925717e-5,-5.106062222453551e-8,0.003993504537036869,1.2348458326471559e-5,-5.04982889205154e-8,0.00399381928261621,1.2033164964636035e-5,-4.9866956012253766e-8,0.003994250001187529,1.1737322154317254e-5,-4.9273662215669775e-8,0.0039947794474397376,1.1517572315967707e-5,-4.883161802180583e-8,0.003995364932969854,1.1417909076784898e-5,-4.8629022529340004e-8,0.0039959471867255245,1.145512467560501e-5,-4.8699907040692296e-8,0.003996465923696541,1.1611411554188564e-5,-4.9009176717670445e-8,0.003996876828671035,1.1837637422183225e-5,-4.9458966925161574e-8,0.003997163971009506,1.2066380201857806e-5,-4.991458667779847e-8,0.003997343759283495,1.2230228260355551e-5,-5.024110820721207e-8,0.003997459714537061,1.227962356731739e-5,-5.033913205513782e-8,0.0039975700174394516,1.2195246540345806e-5,-5.016966528746188e-8,0.0039977315793668896,1.199171433994848e-5,-4.9761614483588085e-8,0.003997985303974457,1.1711837911922054e-5,-4.920037428897476e-8,0.003998346858193554,1.1413566865496914e-5,-4.8601769213070115e-8,0.0039988053495900785,1.1154143067304714e-5,-4.808037527313077e-8,0.0039993293627035445,1.0976671983429418e-5,-4.7722620398013583e-8,0.003999877225762814,1.0902767894712806e-5,-4.7571985490559816e-8,0.004000407493370264,1.0931979187466173e-5,-4.762776490445662e-8,0.00400088668699902,1.1046120607170104e-5,-4.785368769200271e-8,0.0040012933178902805,1.1215681826101956e-5,-4.8190753288722657e-8,0.004001618824597613,1.140602944436198e-5,-4.856968419517292e-8,0.004001866716617343,1.1582292382143262e-5,-4.8920729394387654e-8,0.004002051089467816,1.1712900988527266e-5,-4.9180732644461024e-8,0.004002195134543225,1.1772393926335084e-5,-4.9298705411811596e-8,0.0040023296147842545,1.1744241358596293e-5,-4.9241438831947997e-8,0.004002490702025333,1.1624164492064202e-5,-4.9000150214148706e-8,0.004002716177242634,1.1423787492992013e-5,-4.859784391910101e-8,0.0040030390227214704,1.1173356864132723e-5,-4.8094833920023865e-8,0.004003478361347815,1.0920997712239193e-5,-4.7587334303852796e-8,0.004004029802038545,1.0725563863908767e-5,-4.719320099784125e-8,0.004004659792221574,1.0641953511935584e-5,-4.7022548424382676e-8,0.004005309358395405,1.0702231547952575e-5,-4.713991105371558e-8,0.004005909305357476,1.0900742430031743e-5,-4.7534332339053704e-8,0.004006402231050277,1.1192022790909333e-5,-4.8115061170983004e-8,0.004006761493609258,1.1504328555145381e-5,-4.8738556290387605e-8,0.004006998416788491,1.1762810600434922e-5,-4.925487801263246e-8,0.0040071557972175655,1.1911802199676452e-5,-4.955234189469917e-8,0.004007292492485376,1.1928068755813912e-5,-4.9584090451901684e-8,0.004007466154921649,1.182270536529946e-5,-4.9371962164986925e-8,0.004007719484345561,1.1633960677447274e-5,-4.8992235679285965e-8,0.004008072516982853,1.1415035698476774e-5,-4.855132546462214e-8,0.004008521247009628,1.1220739757355388e-5,-4.81591306861145e-8,0.004009041556486812,1.1095986552782165e-5,-4.790595409748483e-8,0.004009596684482728,1.1068126254001404e-5,-4.784699794194256e-8,0.004010146061004549,1.1144061978931795e-5,-4.799641499742937e-8,0.0040106533603855915,1.1311869844993711e-5,-4.833044905420133e-8,0.004011092236707525,1.1545566812726804e-5,-4.8796997573800546e-8,0.004011449171177877,1.1811239466230054e-5,-4.9327987188523245e-8,0.004011723764818403,1.2072971677857698e-5,-4.985134835693644e-8,0.00401192736389657,1.2297623888833959e-5,-5.0300619813788786e-8,0.004012080963416897,1.2458294160137046e-5,-5.06218316152855e-8,0.004012212952149902,1.2536886563441079e-5,-5.077857415701251e-8,0.004012356748830488,1.2526361690877996e-5,-5.075648134300845e-8,0.004012547921684051,1.2433048238960548e-5,-5.0567928963629637e-8,0.0040128199805693305,1.2278886932150372e-5,-5.025666471468604e-8,0.004013197985529161,1.2102470950470938e-5,-4.990002190519058e-8,0.00401369000353784,1.1956510006150005e-5,-4.960388878819715e-8,0.004014278532066863,1.1898883530667995e-5,-4.948472066423443e-8,0.0040149167491389135,1.197622246061075e-5,-4.963648586630433e-8,0.004015535619726837,1.2203997061740317e-5,-5.0090569001978953e-8,0.004016064005360639,1.2553240036393509e-5,-5.0789018255737813e-8,0.0040164548830214815,1.2954750430225737e-5,-5.1592962190804215e-8,0.004016703733644348,1.3322431746732769e-5,-5.232951731508461e-8,0.004016848431434354,1.3584310465564186e-5,-5.2854110685949694e-8,0.004016951977140229,1.3704978067918915e-5,-5.309550581731473e-8,0.00401707918422125,1.3690726517722423e-5,-5.3066050186417026e-8,0.004017278464444657,1.3580022117076173e-5,-5.284257367174307e-8,0.004017573349390648,1.3427603643939568e-5,-5.253461517336548e-8,0.004017962524787026,1.3289293461804937e-5,-5.2254123260796106e-8,0.004018424992325505,1.3210932934703492e-5,-5.2093339215260626e-8,0.0040189273729024705,1.3221997414880813e-5,-5.211190437947683e-8,0.0040194315062708425,1.3333214209773679e-5,-5.2331872879317006e-8,0.004019901334926071,1.3537385768781908e-5,-5.273915282943784e-8,0.00402030839443015,1.3812681913253474e-5,-5.3290015781132485e-8,0.004020635440219238,1.4127527132908653e-5,-5.392095666905157e-8,0.004020878035146411,1.4446146519830484e-5,-5.455996088115213e-8,0.004021044226821732,1.473392798977689e-5,-5.513737746601209e-8,0.00402115275112109,1.496191131793451e-5,-5.559493860655362e-8,0.004021230393628464,1.5110074592057919e-5,-5.589227823087387e-8,0.004021308993990323,1.5169566143298608e-5,-5.601133518705951e-8,0.004021422225284333,1.5144214158221058e-5,-5.595940175161358e-8,0.0040216019835709,1.505150937068162e-5,-5.57712373201424e-8,0.004021873939755527,1.4922916833095616e-5,-5.550989215428107e-8,0.0040222517467002885,1.4802621499919506e-5,-5.5264327043482085e-8,0.004022730175355548,1.4742845077977562e-5,-5.513999395696767e-8,0.00402327924617558,1.4793651408929851e-5,-5.5238179247849234e-8,0.004023843665981839,1.498685836194858e-5,-5.562340967782772e-8,0.004024352851506316,1.5318263529964064e-5,-5.62874975195311e-8,0.004024743118745088,1.573836892528872e-5,-5.7130821512435726e-8,0.004024984194842726,1.6162535861771282e-5,-5.7982877436069443E-08,0.004025094377176705,1.6501026274800637e-5,-5.866291758713605e-8,0.004025133037057492,1.6693810177365013e-5,-5.9050065212816505e-8,0.0040251747474465615,1.6730082192383597e-5,-5.912247029379822e-8,0.004025281332087344,1.6644195416193686e-5,-5.894897656672424e-8,0.004025485746450353,1.6495866969054968e-5,-5.864930998217878e-8,0.004025790429201538,1.634835179138792e-5,-5.8350370181822665e-8,0.0040261746462862255,1.6253223052331517e-5,-5.815584387978385e-8,0.0040266044641294775,1.624327250382378e-5,-5.813200951807451e-8,0.004027041638836209,1.633135361213576e-5,-5.8305293951082345e-8,0.00402745025711566,1.6512469372403883e-5,-5.866622925242898e-8,0.00402780134494779,1.6767326438795646e-5,-5.917637987828972e-8,0.004028075926393701,1.7066612366788847e-5,-5.977686171643531e-8,0.004028266748303052,1.7375686093179322e-5,-6.039784671300595e-8,0.004028378700267617,1.7659404592882538e-5,-6.096841423803015e-8,0.004028427921096438,1.7886793273255926e-5,-6.142604364033798e-8,0.00402843964084909,1.8035151508268353e-5,-6.172486403108444e-8,0.004028445012514573,1.809312331270539e-5,-6.184175008856881e-8,0.0040284773268235005,1.8062494703952662e-5,-6.177988665082503e-8,0.004028567910222432,1.7958723498241694e-5,-6.156990468255793e-8,0.004028741861400401,1.781021131030546e-5,-6.12686094634135e-8,0.0040290136622913525,1.765619786846825e-5,-6.095496322789188e-8,0.0040293826809504,1.754280016104753e-5,-6.07222216328837e-8,0.004029829124215082,1.751619084809753e-5,-6.066410876225836e-8,0.004030312256108125,1.7612020509539247e-5,-6.085324393616324e-8,0.004030774031389632,1.7841815454699297e-5,-6.131341293797681e-8,0.00403115142107213,1.8180564860966387e-5,-6.199433879515745e-8,0.0040313974300052735,1.8563852856182064e-5,-6.27659191383855e-8,0.004031503203472192,1.8902856758312773e-5,-6.344869780801121e-8,0.004031507215610012,1.9116091643266002e-5,-6.387812802255732e-8,0.004031481930153734,1.916242569246173e-5,-6.397118926916185e-8,0.004031503768949901,1.9055383830683572e-5,-6.375504333127174e-8,0.004031624504421274,1.885153534554923e-5,-6.334344369125224e-8,0.00403185885677837,1.8623798019755862e-5,-6.288296518438462e-8,0.004032189274944319,1.8436620157024645e-5,-6.250321630029159e-8,0.004032579178971542,1.83324637336343e-5,-6.228981683190497e-8,0.004032986090714059,1.8329161981569122e-5,-6.227911243671427e-8,0.0040333708125981456,1.8423493871162983e-5,-6.246522183995398e-8,0.004033702484811329,1.8596808258675e-5,-6.281112340841897e-8,0.0040339608469825575,1.882045266602357e-5,-6.325939983367222e-8,0.004034137070431829,1.906045203237547e-5,-6.374161530130195e-8,0.004034233855241526,1.928170635220029e-5,-6.41868612531973e-8,0.004034264876079334,1.9452018078757834e-5,-6.453000617107153e-8,0.004034253391531761,1.9546047063260236e-5,-6.47197441623075e-8,0.004034229755724816,1.9548977882390267e-5,-6.472596597020264e-8,0.004034227730682795,1.9459320969577683e-5,-6.454533452522716e-8,0.004034279865723162,1.9290186380915923e-5,-6.420383235003002e-8,0.004034412486171448,1.9068594732676885e-5,-6.375547510633614e-8,0.00403464093034948,1.8832637893526655e-5,-6.327679436677401e-8,0.004034965687074627,1.8626536313167505e-5,-6.285707244922939e-8,0.004035370034247165,1.8493819644007736e-5,-6.258465123000945e-8,0.004035819874790727,1.846886648562048e-5,-6.252971679787746e-8,0.004036266904185114,1.856732169763407e-5,-6.272465029492704e-8,0.0040366565598250765,1.8777113738250836e-5,-6.31455681508602e-8,0.0040369414612311345,1.9053783781087113e-5,-6.370271942688705e-8,0.004037098344333292,1.932539834606959e-5,-6.42504851948613e-8,0.004037141902942749,1.951083270094533e-5,-6.462457097034529e-8,0.004037125865169994,1.954813798447868e-5,-6.46995458547251e-8,0.004037125861820998,1.9419995141300983e-5,-6.444028053955575e-8,0.00403721048480607,1.9160768124473176e-5,-6.391602935018678e-8,0.004037416430514758,1.88403649270376e-5,-6.326771012194285e-8,0.0040377405727112705,1.853563684839144e-5,-6.265022145619625e-8,0.004038149143064464,1.8305856043064805e-5,-6.218312567891382e-8,0.004038594479970898,1.8181596820678142e-5,-6.192833669694351e-8,0.004039029805036155,1.8165835433560526e-5,-6.189230839848963e-8,0.004039418015136255,1.8241197474729e-5,-6.204049708155263e-8,0.0040397350446880215,1.837815198734788e-5,-6.231370568667206e-8,0.004039969999138671,1.8541650006683282e-5,-6.264136381327966e-8,0.004040124041563737,1.8695860404660215e-5,-6.295108921511804e-8,0.004040209074777056,1.8807706049100226e-5,-6.317591860236914e-8,0.004040246363654397,1.88500021655281e-5,-6.32607471793734e-8,0.004040264737547788,1.8804636954320954e-5,-6.316879237455187e-8,0.004040297831687618,1.866571824947087e-5,-6.288791561688243e-8,0.004040379958326903,1.844201983765977e-5,-6.243550964565625e-8,0.004040540705219954,1.8157672301950075e-5,-6.185990253089828e-8,0.004040799030115895,1.7850119174229367e-5,-6.123634554926798e-8,0.0040411581509778,1.7564868093298403e-5,-6.065660011340943e-8,0.004041602732207329,1.734741098407994e-5,-6.021277355052825e-8,0.0040420995762303815,1.7233639004230466e-5,-5.997796689164541e-8,0.004042602323436688,1.724067110935005e-5,-5.998756494201581e-8,0.00404305992163886,1.736012884995211e-5,-6.022533875758978e-8,0.004043427966196684,1.7555910433464828e-5,-6.061865961283453e-8,0.0040436810936756275,1.7768500926616962e-5,-6.104709566844615e-8,0.004043823230883101,1.7927149455153616e-5,-6.1367140862782e-8,0.004043891164479845,1.7968977540453174e-5,-6.145110341710769e-8,0.004043947176700689,1.7860007267002482e-5,-6.122984744605595e-8,0.0040440603521150744,1.760913353792817e-5,-6.072111082777755e-8,0.004044282997667049,1.726658843338252e-5,-6.002633777071843e-8,0.004044633306112802,1.6905912165610116e-5,-5.929416783466505e-8,0.0040450925842591984,1.6598297213721576e-5,-5.866858772554347e-8,0.004045616463144047,1.6391968202125593e-5,-5.824729428445154e-8,0.004046152091763345,1.630410509649094e-5,-5.80653572847142e-8,0.004046652760383014,1.6324348036651065e-5,-5.8102214711525505e-8,0.004047085929565268,1.6424100266681775e-5,-5.830035937199191e-8,0.004047435228495953,1.6566189179488793e-5,-5.8584786032397173e-8,0.004047698959744002,1.671216642566975e-5,-5.8877737365682856e-8,0.004047887444712365,1.6826943646276348e-5,-5.9108127517374904e-8,0.00404802049508203,1.6881670483517197e-5,-5.9217433706880595e-8,0.004048125273323472,1.6855947238255258e-5,-5.9164217502915826e-8,0.004048234127401434,1.674008799311883e-5,-5.8928701076803824e-8,0.004048381670060571,1.6537530470193916e-5,-5.851761039418674e-8,0.004048600436416601,1.6266746291805815e-5,-5.796802584768781e-8,0.004048914984056892,1.5961326425245878e-5,-5.734760338043135e-8,0.004049335282066074,1.566668088020222e-5,-5.674801447212363e-8,0.0040498513719114376,1.5432414454828066e-5,-5.626965875165331e-8,0.004050431921230339,1.5301075079280176e-5,-5.5998974280483204e-8,0.004051028668995067,1.5296083993458358e-5,-5.598395649797168e-8,0.004051586738790464,1.5412983005455173e-5,-5.62162478465142e-8,0.004052058328986434,1.5617600591062285e-5,-5.6627167195976384e-8,0.004052415758160085,1.5852514347711364e-5,-5.7100596870077054e-8,0.004052659913064241,1.6050494133565283e-5,-5.7500160816537554e-8,0.0040528214440387015,1.6151570852562244e-5,-5.7703907353645075e-8,0.004052953861013157,1.611931020329749e-5,-5.763746552942237e-8,0.004053119682835466,1.595162622613579e-5,-5.729612717276807e-8,0.004053373025435257,1.5682212292362576e-5,-5.6747852350428666e-8,0.004053744027610918,1.537106055446932e-5,-5.611410681536437e-8,0.004054230846152612,1.5086637935810276e-5,-5.553375453822118e-8,0.004054802304411898,1.488624806595296e-5,-5.5123232299645195e-8,0.0040554095026198176,1.4802029857689209e-5,-5.494808734565473e-8,0.004056000829014219,1.4836834906018199e-5,-5.501449222707493e-8,0.0040565344012080526,1.496913360261363e-5,-5.527907211829798e-8,0.004056984713435475,1.5162646600086324e-5,-5.5668377746635783e-8,0.004057343673139978,1.537616244421555e-5,-5.609881419197702e-8,0.004057618154709957,1.5570907870645105e-5,-5.6491651348612124e-8,0.004057826336088842,1.571498161585009e-5,-5.678207302107251e-8,0.004057994236563965,1.5785663812756403e-5,-5.692387796847087e-8,0.004058152876449292,1.5770755436499932e-5,-5.6892175274642595e-8,0.004058335730497766,1.56698047725992e-5,-5.6685842838322767e-8,0.004058575736492297,1.5495479753201927e-5,-5.6330312045967666e-8,0.004058901067412491,1.5274593050186677e-5,-5.587969998232432e-8,0.0040593292989023755,1.504744016568601e-5,-5.541556302293769e-8,0.004059860688647646,1.4863522530534258e-5,-5.5038323485976716e-8,0.004060472924789321,1.4772178278052189e-5,-5.484831991380623e-8,0.004061121016256655,1.4808824187926628e-5,-5.491786333355384e-8,0.004061745398388068,1.4980995070619321e-5,-5.526278213620586e-8,0.0040622878335508355,1.5260905424743596e-5,-5.58271445794069e-8,0.00406270977840194,1.5589957864201896e-5,-5.6492254117461846e-8,0.004063005280007226,1.5895053516072876e-5,-5.71096919262533e-8,0.004063202722944347,1.611033761314179e-5,-5.7545486920249105e-8,0.004063355322523949,1.6195737978189514e-5,-5.7717829505718655e-8,0.004063524982892078,1.614629397440836e-5,-5.761611433490631e-8,0.0040637654881181635,1.5990874718776372e-5,-5.729846921069878e-8,0.0040641096822484745,1.5782374878243806e-5,-5.687200018963553e-8,0.004064563196214051,1.558309622417832e-5,-5.646323142518138e-8,0.004065105372946402,1.5449401160722053e-5,-5.6186965778914343e-8,0.004065696400389077,1.5419375479983378e-5,-5.612111731815594e-8,0.004066288252635861,1.5506240841777267e-5,-5.6293121212787874e-8,0.004066836155862962,1.5698542971993716e-5,-5.668010909236039e-8,0.004067307459695976,1.5966009975132922e-5,-5.7220705532581126e-8,0.00406768613309999,1.6268363193234948e-5,-5.783296271933897e-8,0.004067972917711898,1.6564106468153707e-5,-5.8432340733695405e-8,0.004068182486831887,1.681727652571284e-5,-5.894554234053274e-8,0.00406833933892352,1.7001503611134662e-5,-5.931880776278692e-8,0.004068473756113949,1.7101841750667816e-5,-5.952159722920657e-8,0.004068618388467829,1.7115337876791556e-5,-5.9547687041123166e-8,0.004068805319711415,1.7051183194416186e-5,-5.941546370891142e-8,0.004069063045413328,1.693080237181354e-5,-5.9168176976249445e-8,0.004069412642286213,1.6787584460103433e-5,-5.887352588619779e-8,0.004069862675046376,1.6665125654505054e-5,-5.862021049541122e-8,0.0040704033862420915,1.6612132979317868e-5,-5.8507611354420696e-8,0.004071002433343476,1.6672362317351996e-5,-5.8625252169843815e-8,0.004071606146962371,1.6870078458229394e-5,-5.90230533337598e-8,0.004072150180031084,1.7195707718266797e-5,-5.968194828764344e-8,0.004072579327330133,1.7600304654934825e-5,-6.050250155157372e-8,0.004072869038903364,1.800622384140864e-5,-6.132663264350784e-8,0.004073036765467772,1.8332569931295446e-5,-6.1989505493645e-8,0.004073135737926338,1.852349328887892e-5,-6.237718185712606e-8,0.004073234663677566,1.85650892687075e-5,-6.246099877342193e-8,0.004073394556097025,1.848476914851136e-5,-6.229627231999442e-8,0.004073652726352091,1.833737723399551e-5,-6.199414171839608e-8,0.004074017372470005,1.818678426452505e-5,-6.168431508746106e-8,0.0040744707750797445,1.808984214398682e-5,-6.148259812586677e-8,0.004074977337424825,1.8085790232343694e-5,-6.14693541796517e-8,0.004075493263269258,1.8191439776279438e-5,-6.167952512829171e-8,0.004075975798354961,1.840124607827241e-5,-6.210249277646861e-8,0.004076390776901895,1.8691144047334405e-5,-6.268964660170682e-8,0.004076717622217568,1.902494399145827e-5,-6.336732629192284e-8,0.004076951353972912,1.9361837440099986e-5,-6.405219775676581e-8,0.004077101746210127,1.96635091438295e-5,-6.46659095300111e-8,0.0040771903314508785,1.989970237527024e-5,-6.514655672234517e-8,0.004077246262806788,2.005165635670929e-5,-6.545569860243698e-8,0.004077302032084395,2.0113486301099913e-5,-6.558109876386352e-8,0.0040773896466789,2.0092092019349717e-5,-6.553647593087778e-8,0.004077537342209875,2.0006253451383885e-5,-6.535969647604283e-8,0.004077766555167821,1.988527789663943e-5,-6.511016738314298e-8,0.004078088689458051,1.976710784085783e-5,-6.486516989220184e-8,0.004078501328342447,1.96951136887764e-5,-6.471343334262049e-8,0.004078984379126887,1.971216651307541e-5,-6.474300004433253e-8,0.004079498090171917,1.985082590723176e-5,-6.502100525056876e-8,0.004079986278779378,2.0120252289371937e-5,-6.55667052274478e-8,0.004080388235941525,2.0494122797303468e-5,-6.632662153528476e-8,0.004080659282108669,2.0908086133771597e-5,-6.716933519624624e-8,0.0040807921628955995,2.1274886377819846e-5,-6.791652262392293e-8,0.004080825530396653,2.151542116556529e-5,-6.840653341073122e-8,0.00408083076942298,2.1590301346052778e-5,-6.855881484240877e-8,0.00408088328291802,2.1513241158620907e-5,-6.84010788689678e-8,0.004081035155949392,2.134019848115492e-5,-6.804703209129059e-8,0.004081302546732209,2.1144355238359504e-5,-6.764545015636383e-8,0.004081668918553097,2.0992072249557375e-5,-6.733141248227607e-8,0.00408209685499066,2.092848134334002e-5,-6.719713964870882e-8,0.004082540990125184,2.09731231952271e-5,-6.72830951751148e-8,0.004082958197133572,2.112218615191573e-5,-6.758231956110174e-8,0.00408331422869279,2.1353847294547875e-5,-6.805099975797541e-8,0.0040835874057665485,2.1634567155020024e-5,-6.862106700376206e-8,0.004083770116681637,2.1925434668298697e-5,-6.921309213990532e-8,0.004083868551366543,2.218816882099307e-5,-6.974866033503243e-8,0.0040839008942840345,2.239039499761978e-5,-7.016132947403248e-8,0.004083894232067077,2.250978778831476e-5,-7.0405207142333e-8,0.004083880571241067,2.25366960163881e-5,-7.046030306590217e-8,0.00408389252947929,2.2475031488631666e-5,-7.033426314434203e-8,0.004083959249418965,2.2341562177163083e-5,-7.00608865512821e-8,0.004084102836943754,2.2163971654346905e-5,-6.969625158825354e-8,0.004084335399848269,2.1977972812721735e-5,-6.931302372966625e-8,0.004084656614019778,2.1823582213426522e-5,-6.899305140282665e-8,0.004085051725131036,2.1740298666453316e-5,-6.881758196303943e-8,0.00408549043013785,2.1760499615591525e-5,-6.88536205880247e-8,0.004085928134416261,2.1900671848150498e-5,-6.913569532030017e-8,0.0040863118371121795,2.215161693360532e-5,-6.964550832191338e-8,0.004086592559838579,2.2471365259167905e-5,-7.029728262333709e-8,0.004086743511323791,2.278742626781085e-5,-7.094245749548945e-8,0.004086777069432108,2.3014650869490377e-5,-7.140649996468963e-8,0.004086748324489586,2.3086554162397423e-5,-7.155319319147187e-8,0.004086737210606845,2.298478523801362e-5,-7.134486880118048e-8,0.0040868162246094596,2.274751838270059e-5,-7.085933294161156e-8,0.004087022774633262,2.245098166859568e-5,-7.025197183973786e-8,0.004087351063401967,2.21773293531232e-5,-6.969023534135919e-8,0.004087762942117613,2.1988078250473938e-5,-6.929965848306815e-8,0.004088206426731321,2.1912888693068682e-5,-6.914113536613453e-8,0.0040886315320029145,2.1951514131721826e-5,-6.921484527465759e-8,0.004088999563181579,2.2082048330308014e-5,-6.947683655171173e-8,0.004089286694209541,2.227007195705091e-5,-6.985740065000953e-8,0.0040894840997412005,2.2476260228544262e-5,-7.027641992708612e-8,0.004089596524746182,2.2662126678655353e-5,-7.065510425729817e-8,0.004089640201779963,2.2794420332461283e-5,-7.092513321189004e-8,0.0040896402838893646,2.284862699133553e-5,-7.103599943485881e-8,0.004089627705490863,2.2811697616913437e-5,-7.096068474456991e-8,0.004089635411507748,2.2683801109797253e-5,-7.069921973276663e-8,0.004089694115390104,2.2478677051700234e-5,-7.027932793650815e-8,0.004089828036207196,2.2222286505042233e-5,-6.975365444924291e-8,0.004090051161470819,2.1949786269337134e-5,-6.919369964114232e-8,0.004090364511991667,2.170103932630054e-5,-6.86808528694382e-8,0.004090754790796106,2.151498959955255e-5,-6.829506592183514e-8,0.004091194666195651,2.142330844766789e-5,-6.810185855541579e-8,0.004091644993372157,2.1443624281504225e-5,-6.813824314344391e-8,0.0040920596967446154,2.1572833523424404e-5,-6.83986719144852e-8,0.004092394222561333,2.1782031162445324e-5,-6.88243378416857e-8,0.00409261763274889,2.2016102025325163e-5,-6.93022303226837e-8,0.0040927261558925485,2.2201941671687712e-5,-6.968213454108016e-8,0.004092752390399775,2.226781056753669e-5,-6.98165868041908e-8,0.004092761828782771,2.217010941896625e-5,-6.961594162020133e-8,0.004092832347522563,2.191489742469643e-5,-6.90924145000651e-8,0.004093023916310563,2.1559197363135236e-5,-6.836256507621499e-8,0.004093355382863215,2.1188443825140062e-5,-6.760103065423595e-8,0.004093801442773309,2.0883140487863215e-5,-6.697239893387999e-8,0.004094308353665391,2.0693642127327703e-5,-6.657980636574702e-8,0.004094815962852751,2.0632674505226746e-5,-6.644971858931919e-8,0.0040952745320277885,2.068224872375703e-5,-6.654596569206641e-8,0.0040956524926629954,2.0806194730034872e-5,-6.67951505187713e-8,0.004095937126088291,2.0961685991746184e-5,-6.711000602505771e-8,0.004096131713874594,2.1107263596701378e-5,-6.740571701477901e-8,0.004096251810518326,2.1207630473032185e-5,-6.760979080112129e-8,0.004096321810660583,2.123646163530461e-5,-6.766796655208107e-8,0.004096371868974252,2.117828020698269e-5,-6.754820351325027e-8,0.004096434786498749,2.102987222746858e-5,-6.724363080817744e-8,0.0040965424713340064,2.0801158863912584e-5,-6.677428971329367e-8,0.004096721827951759,2.0514974467630822e-5,-6.618661611930796e-8,0.004096990403276643,2.0205057223031076e-5,-6.554934138305202e-8,0.004097352573177603,1.9911884762201487e-5,-6.494509874821933e-8,0.0040977972420050135,1.9676507214749987e-5,-6.445798705026133e-8,0.00409829795293573,1.953307645034436e-5,-6.415839226662203e-8,0.00409881595753222,1.950131413892924e-5,-6.408749767114518e-8,0.0040993062317397294,1.958041987144307e-5,-6.424454113672405e-8,0.004099725949858662,1.9745840788228674e-5,-6.457984351456717e-8,0.004100044534043069,1.9950335607570126e-5,-6.499672432697775e-8,0.004100253632198516,2.013084019847643e-5,-6.536554032319219e-8,0.004100374104936217,2.0221969791798727e-5,-6.555157283498206e-8,0.004100455954183344,2.017477740412432e-5,-6.545379905395303e-8,0.0041005675891791,1.9975516702515512e-5,-6.504358355699308e-8,0.004100774805833544,1.965545542492212e-5,-6.438482789008002e-8,0.004101116885460426,1.928372582152993e-5,-6.361922074229146e-8,0.004101591870619371,1.894360567216253e-5,-6.291755062884213e-8,0.004102159238000308,1.8703470116557066e-5,-6.242018269746027e-8,0.00410275747591571,1.859703517591237e-5,-6.219659152435074e-8,0.0041033257619690735,1.8620141853715126e-5,-6.223872071816769e-8,0.004103819526959297,1.874065523208672e-5,-6.248114525442182e-8,0.004104216341986781,1.8912959818053868e-5,-6.283064370406833e-8,0.004104514378076207,1.909031638156852e-5,-6.319144791179558e-8,0.004104727475774354,1.9232607115184218e-5,-6.348113509152911e-8,0.004104879851426564,1.931006277488053e-5,-6.363836365897142e-8,0.004105001750774871,1.9304641429037065e-5,-6.362581755356893e-8,0.004105126061105588,1.9210481227772614e-5,-6.343120965738759e-8,0.004105285298052878,1.903412670485694e-5,-6.306774716776545e-8,0.004105508333763851,1.879451414608241e-5,-6.257405625726658e-8,0.004105816518487927,1.8522105372562953e-5,-6.201237977882163e-8,0.004106219408261088,1.8256224455901378e-5,-6.146316659960243e-8,0.004106711031782206,1.8039834534071813e-5,-6.101448588822051e-8,0.00410726820104739,1.7911758794004197e-5,-6.074620274769431e-8,0.00410785241819564,1.7897526858302653e-5,-6.071123337928272e-8,0.004108416180285091,1.8001212401072268e-5,-6.091866896065255e-8,0.0041089130241994485,1.820113748087769e-5,-6.132469615222139e-8,0.004109309104207408,1.8451646262672002e-5,-6.183595690444914e-8,0.0041095931983087045,1.869153552715818e-5,-6.232669811154938e-8,0.004109782084836411,1.8857869433917337e-5,-6.266717936609684e-8,0.004109919049387194,1.890226775739589e-5,-6.275732940350907e-8,0.004110064678761718,1.8805497319272342e-5,-6.255697025959145e-8,0.004110281124285083,1.858555641793577e-5,-6.210261238000375e-8,0.004110613703963449,1.829511610327427e-5,-6.150227952510236e-8,0.004111076186029953,1.8007169267841526e-5,-6.090602884987728e-8,0.004111646199815092,1.779292050803584e-5,-6.046048759796877e-8,0.0041122733354077975,1.770055011084275e-5,-6.026514317284309e-8,0.0041128962379817155,1.774357289428051e-5,-6.034829633072815e-8,0.004113460777981091,1.790224628658376e-5,-6.06698069713779e-8,0.004113932211375858,1.8134726118468195e-5,-6.114390913053563e-8,0.004114298813701848,1.8391239948785017e-5,-6.166830949707429e-8,0.004114568894174971,1.862570592744579e-5,-6.214811466500701e-8,0.004114764817887481,1.8802594772439982e-5,-6.251002429640857e-8,0.004114916941016438,1.8899611324047082e-5,-6.270792853777051e-8,0.004115058788903396,1.8907892822336005e-5,-6.272336282371548e-8,0.004115223529956793,1.883126597625609e-5,-6.256398245923092e-8,0.00411544112890223,1.8685396522870248e-5,-6.226179188618023e-8,0.004115735426728429,1.8496880076378558e-5,-6.187126850283822e-8,0.004116120670135077,1.830166124887891e-5,-6.146615285795259e-8,0.0041165976094830435,1.8141735245261587e-5,-6.113275473128614e-8,0.0041171501459813615,1.8059102673713814e-5,-6.095761535265301e-8,0.0041177444298378775,1.808677278934742e-5,-6.100903876410642e-8,0.0041183326482072515,1.8238377845822922e-5,-6.131565461947553e-8,0.004118862644895194,1.8500025366803055e-5,-6.184947666116739e-8,0.004119291845670744,1.882888305936909e-5,-6.252277761117837e-8,0.004119600995524518,1.916129270179671e-5,-6.320463576506777e-8,0.004119802051454148,1.9429176950619105e-5,-6.375467477591138e-8,0.004119936452241972,1.9579389208801835e-5,-6.406297574667329e-8,0.004120063979010977,1.958911524116044e-5,-6.408192449547398e-8,0.004120246088908799,1.9472222424355246e-5,-6.383944294513096e-8,0.00412052913259154,1.927501773422856e-5,-6.343041897475507e-8,0.004120932292519319,1.906320686341203e-5,-6.299000026420115e-8,0.0041214433902594435,1.890409343719484e-5,-6.265701578056743e-8,0.004122023468462977,1.884920647966687e-5,-6.253815085908088e-8,0.004122618451191795,1.8922390072082127e-5,-6.268323571647604e-8,0.004123173897075194,1.911656377839061e-5,-6.307832429936484e-8,0.0041236480036418895,1.939920158835302e-5,-6.365677983994343e-8,0.004124019202185466,1.9723461236942205e-5,-6.432213367561228e-8,0.004124287288244285,2.0040448516884058e-5,-6.49734234542431e-8,0.004124469567213898,2.0308896945277934e-5,-6.552527867409888e-8,0.004124594685466592,2.050066336393985e-5,-6.591937018917111e-8,0.004124696486907284,2.0602417835979338e-5,-6.61279466825767e-8,0.004124809121272801,2.0614914334906605e-5,-6.615231627858997e-8,0.00412496354787499,2.055127128513555e-5,-6.601926590271963e-8,0.004125184918062037,2.0435134717556e-5,-6.57772755655983e-8,0.004125490124622406,2.029885113054249e-5,-6.549281651963915e-8,0.004125884999648892,2.0181120072676474e-5,-6.524562199853932e-8,0.004126361187835996,2.012312227810521e-5,-6.512079755335909e-8,0.004126893637683346,2.016202160381174e-5,-6.519543374690128e-8,0.0041274407643772945,2.0321520249793008e-5,-6.551902559572129e-8,0.0041279499280898095,2.0601210358685798e-5,-6.609131944530118e-8,0.00412836969991199,2.0969274287628928e-5,-6.684706034379096e-8,0.004128666706476001,2.1364544730577544e-5,-6.766013860494177e-8,0.0041288402130868545,2.1711284432474734e-5,-6.837410979895914e-8,0.0041289260941142205,2.1943052421982018e-5,-6.88515335136089e-8,0.0041289863790102055,2.2025323150899638e-5,-6.902071138081227e-8,0.004129088666642758,2.1966206179071726e-5,-6.889782614187511e-8,0.0041292849632450085,2.1811418243791324e-5,-6.857662713945957e-8,0.0041295982485091585,2.1627811881081866e-5,-6.819461136355642e-8,0.004130019713586947,2.1483464269815928e-5,-6.789215710034456e-8,0.004130514847826705,2.1431037977969292e-5,-6.777831067919666e-8,0.004131034556120914,2.1497848193685356e-5,-6.79102050168444e-8,0.0041315275855180284,2.1683260008845836e-5,-6.828741599827955e-8,0.0041319514162801475,2.196236627165169e-5,-6.885922779761631e-8,0.0041322797208666745,2.2294052841138688e-5,-6.95410620986726e-8,0.004132505435793167,2.2631076927335552e-5,-7.023526137874012e-8,0.004132639559466678,2.2929656701609897e-5,-7.085103297987233e-8,0.0041327068073958445,2.3156619956378226e-5,-7.131941152567361e-8,0.004132739789933165,2.329325563893979e-5,-7.160135080100659e-8,0.0041327732697304005,2.3336073204430915e-5,-7.168931655885992e-8,0.004132839498526474,2.3295362222597494e-5,-7.160425905283545e-8,0.00413296489491445,2.319267720853539e-5,-7.139037898864675e-8,0.004133167727447015,2.3058081690060263e-5,-7.110948143247038e-8,0.004133456251584568,2.2927368246838634e-5,-7.083536734083875e-8,0.004133826864680379,2.2838893766911416e-5,-7.064744138921729e-8,0.004134262246139552,2.2829234263837425e-5,-7.062178621276581e-8,0.004134730285875639,2.2926717969593375e-5,-7.081769093706275e-8,0.004135185707911027,2.31425991815179e-5,-7.125916402041035e-8,0.0041355769071945506,2.346164589422353e-5,-7.191520269449173e-8,0.004135859441965122,2.383687117408675e-5,-7.268874415754124e-8,0.00413601369908566,2.4195039750171892e-5,-7.342810252300716e-8,0.004136058529573073,2.4456681249135846e-5,-7.396855759155849e-8,0.004136050487278654,2.456513384479195e-5,-7.419258398190955e-8,0.004136065019007573,2.4509860369459744e-5,-7.407805053129414e-8,0.004136168231272512,2.4330162569653813e-5,-7.370577611668552e-8,0.004136394459822497,2.409789030051738e-5,-7.322376999160329e-8,0.0041367395368764786,2.389056192725738e-5,-7.279186780905995e-8,0.0041371686481556655,2.3768649735412706e-5,-7.253505860848046e-8,0.004137631091783037,2.3763952092816136e-5,-7.251957894397494e-8,0.0041380747660009765,2.3878490225956004e-5,-7.275049880309497e-8,0.004138456791204421,2.4090059448810835e-5,-7.318286374029693e-8,0.004138749601503419,2.4360668956780575e-5,-7.37387885346733e-8,0.004138943194899096,2.4645468588374668e-5,-7.4325712073413e-8,0.004139044422775969,2.49009409295305e-5,-7.485336553975188e-8,0.0041390740178470385,2.509158954761269e-5,-7.52478055388981e-8,0.004139062078858488,2.519450532721772e-5,-7.546109277291754e-8,0.004139042857680081,2.5201537323836e-5,-7.547591881161818e-8,0.004139049681730755,2.5119185084212284e-5,-7.530538123596477e-8,0.004139110696144454,2.4966623708413148e-5,-7.498882514872912e-8,0.004139245793706889,2.4772544989273615e-5,-7.458527889421062e-8,0.004139464664095014,2.4571523457755883e-5,-7.416602259172535e-8,0.0041397656452513715,2.4400247311316832e-5,-7.380696250121588e-8,0.004140135103394312,2.4293510720908743e-5,-7.358048043260725e-8,0.004140547313718007,2.427954414351527e-5,-7.354575599206736e-8,0.004140965413628404,2.4374141223041407e-5,-7.373639326420042e-8,0.004141344873455721,2.457362346913388e-5,-7.414551482757032e-8,0.004141641326420783,2.48483642172095e-5,-7.471205791422762e-8,0.0041418235765014145,2.5141002654557318e-5,-7.53169965475809e-8,0.004141889215372904,2.537511100337642e-5,-7.58014858398564e-8,0.004141874921065243,2.5477517766043897e-5,-7.601342829768719e-8,0.004141851043315424,2.5408217951499304e-5,-7.58696248028512e-8,0.004141897199717203,2.5181416417097176e-5,-7.539927233814727e-8,0.004142070032062376,2.4862233791190885e-5,-7.473692425033855e-8,0.004142382136416294,2.4539521848464896e-5,-7.406615519129582e-8,0.004142802962387187,2.4291862821753357e-5,-7.354938496791458e-8,0.004143276515293847,2.4165133492908547e-5,-7.328171206236878e-8,0.004143742610608551,2.416776805253065e-5,-7.328119646301892e-8,0.004144152149564842,2.427840550811608e-5,-7.350451056510971e-8,0.004144474270556827,2.4457891470911152e-5,-7.387144252687797e-8,0.004144697408744952,2.4660435604785124e-5,-7.428767698568889e-8,0.004144827026181618,2.484202674459949e-5,-7.466207837487929e-8,0.004144881994566124,2.4966196964502726e-5,-7.491871231531306e-8,0.0041448905048311665,2.500781452275799e-5,-7.500493400442998e-8,0.004144885711446158,2.4955282841337656e-5,-7.489617429690564e-8,0.004144901261135358,2.481120187725696e-5,-7.459741678649363e-8,0.004144966982912023,2.4591489692204364e-5,-7.41413441693972e-8,0.004145105121592094,2.4322991873659133e-5,-7.358329870301691e-8,0.004145327544473218,2.403980237268326e-5,-7.299364256044502e-8,0.004145634190738719,2.377879003345024e-5,-7.24485997969921e-8,0.0041460127758167105,2.3574818073592004e-5,-7.202053283003591e-8,0.00414643966336036,2.3455929817344242e-5,-7.17680808924154e-8,0.004146881876040019,2.343860803994068e-5,-7.172625974921142e-8,0.0041473004753961136,2.3523144481116746e-5,-7.189658153429537e-8,0.004147656007247302,2.3689506623327728e-5,-7.223811648289735e-8,0.004147916808771172,2.3895221603221915e-5,-7.266284458651311e-8,0.0041480699650081705,2.4078275121643128e-5,-7.304167053080141e-8,0.004148132195104441,2.4168654642653938e-5,-7.322864004199276e-8,0.004148154320381181,2.4109831376965727e-5,-7.310586674653458e-8,0.004148211444887462,2.388423375298592e-5,-7.263656875158706e-8,0.004148377033934869,2.3528252738308904e-5,-7.189610084153054e-8,0.004148691963497075,2.3123109596003326e-5,-7.105280147716092e-8,0.0041491473031022115,2.27629923552026e-5,-7.030185625864194e-8,0.004149691355374006,2.251899382813585e-5,-6.979067613092937e-8,0.004150253959921051,2.2418989460666156e-5,-6.957735617198645e-8,0.0041507716459602394,2.2449203170718728e-5,-6.963393426794152e-8,0.0041512023452277315,2.2568972898863263e-5,-6.987681903782312e-8,0.004151528686471275,2.2727414027209948e-5,-7.020106669410957e-8,0.004151754402958528,2.287579296648152e-5,-7.050582576156142e-8,0.004151898371708361,2.2974592076086222e-5,-7.070894000466604e-8,0.004151988885126911,2.2996670531363484e-5,-7.075363347500511e-8,0.004152058955955876,2.2928322974470473e-5,-7.061092750138042e-8,0.004152142382845093,2.2769356506527704e-5,-7.02799821925708e-8,0.0041522701226427315,2.253246200945357e-5,-6.978684571499767e-8,0.004152466791086021,2.2241707192617996e-5,-6.91812637823709e-8,0.004152747431065876,2.192983419561754e-5,-6.853098876725601e-8,0.004153115009949348,2.163416853510276e-5,-6.791329347391853e-8,0.004153559267504416,2.1391372281000134e-5,-6.740420502635174e-8,0.004154057371060857,2.1231670864169294e-5,-6.706668724391143e-8,0.004154576533781043,2.1173336928637963e-5,-6.693925978559595e-8,0.004155078480972005,2.121824985076246e-5,-6.702665399660066e-8,0.00415552544495053,2.1349266802329204e-5,-6.729405133405011e-8,0.004155887326128362,2.153005321203464e-5,-6.76663910045802e-8,0.004156149549489265,2.1708297200182368e-5,-6.803485371706521e-8,0.004156320429207047,2.18236504091612e-5,-6.827342868724723e-8,0.004156435436193511,2.1821325191162423e-5,-6.826745995209362e-8,0.004156554325266331,2.1670061717922965e-5,-6.795132318021076e-8,0.004156747395736589,2.137880483492358e-5,-6.734326680703699e-8,0.004157071827894007,2.100211751024774e-5,-6.655662407843876e-8,0.004157547507220719,2.0626045399976664e-5,-6.577030263586701e-8,0.004158146618620178,2.033725265562143e-5,-6.516458127082557e-8,0.0041588047435924405,2.0191197783449442e-5,-6.485500848833399e-8,0.00415944679960301,2.0196654226797564e-5,-6.486025586921148e-8,0.004160012347865569,2.0321627878139327e-5,-6.51143438105989e-8,0.004160468885463152,2.0512010737360385e-5,-6.550526134746365e-8,0.004160812154099564,2.071068901280456e-5,-6.591452917912113e-8,0.004161059067630895,2.087014425419266e-5,-6.624331294613351e-8,0.004161239040043181,2.095792204410952e-5,-6.642382604808944e-8,0.004161386829742425,2.095738077188751e-5,-6.642102047979822e-8,0.0041615375835493676,2.0866361049708102e-5,-6.622998144256762e-8,0.004161723445766619,2.069540030448162e-5,-6.587231810027344e-8,0.004161970833005958,2.0465957657424777e-5,-6.53924752623177e-8,0.004162297807662163,2.0208374532718804e-5,-6.485342857751e-8,0.004162711465524075,1.9958972538912966e-5,-6.433060157681065e-8,0.004163205788963567,1.9755721872438256e-5,-6.390289279020207e-8,0.004163760874885751,1.9632401292486634e-5,-6.364064398012052e-8,0.0041643445126078645,1.9611945515193513e-5,-6.359191191485507e-8,0.004164916661599382,1.9700370056451175e-5,-6.376982675484982e-8,0.004165436593260296,1.9883038081479463e-5,-6.414465536185601e-8,0.004165871533002719,2.0124840290481865e-5,-6.464389273479223e-8,0.004166204973161034,2.03750141868381e-5,-6.516203187808346e-8,0.0041664427071129,2.0576291719662896e-5,-6.557950750839939e-8,0.004166614831251215,2.067725739446178e-5,-6.578854573835485e-8,0.004166772201513261,2.064596860090837e-5,-6.572180046924913e-8,0.004166976394844767,2.0481684872547044e-5,-6.537706967734264e-8,0.004167283762105637,2.0220289969068403e-5,-6.482876722062341e-8,0.0041677270966903575,1.9928853053708316e-5,-6.42166276496646e-8,0.004168301889621721,1.9687639520167372e-5,-6.370817178698891e-8,0.004168964945397345,1.9564346141463034e-5,-6.344493463573707e-8,0.0041696482095524585,1.9591663234778752e-5,-6.349560115607152e-8,0.004170281928490304,1.975909669494271e-5,-6.383883261318782e-8,0.004170815776114936,2.002177562328637e-5,-6.438149484450375e-8,0.004171229165072177,2.0319307693815556e-5,-6.499787658365365e-8,0.004171529641595815,2.0594371506068787e-5,-6.556842529790701e-8,0.004171744205095692,2.08044574697309e-5,-6.600426377969002e-8,0.004171909319060356,2.0925909999591906e-5,-6.625570255367975e-8,0.004172063035543002,2.095283945319605e-5,-6.631007474738575e-8,0.004172240006446445,2.0893942567726186e-5,-6.618518936112582e-8,0.004172468631381149,2.0769185793469826e-5,-6.592244924085984e-8,0.00417276921141435,2.0606998287037323e-5,-6.558098507505531e-8,0.004173152263607924,2.044171213681954e-5,-6.523229587640529e-8,0.004173616699217774,2.0310521591751063e-5,-6.49539193513707e-8,0.004174148228173609,2.0249146804649307e-5,-6.482044670278411e-8,0.0041747190205534725,2.0285797724636808e-5,-6.489100076513135e-8,0.004175290038969232,2.043401685070224e-5,-6.519431780277011e-8,0.004175817138082009,2.0686286120805764e-5,-6.571531492271147e-8,0.004176260742955059,2.1011275247548487e-5,-6.638915896100802e-8,0.004176596947866172,2.135738903704526e-5,-6.710846106930013e-8,0.004176826283818876,2.1663316572518304e-5,-6.774516430718877e-8,0.004176976440504031,2.187329985370935e-5,-6.818241888125293e-8,0.004177097171342621,2.1952541600749897e-5,-6.834687461472092e-8,0.004177248393652027,2.1897850265493772e-5,-6.823110493770005e-8,0.004177484698447774,2.1740143881249863e-5,-6.789904756326871e-8,0.004177840456289382,2.153777152476557e-5,-6.74722389787032e-8,0.004178319648003268,2.1361956093379974e-5,-6.709951969906079e-8,0.004178893720907776,2.1277850737766288e-5,-6.69174602353876e-8,0.004179508920172153,2.1326593435868438e-5,-6.701273548062968e-8,0.00418010143870764,2.1514398644594126e-5,-6.739909921106913e-8,0.004180615325979776,2.181278040040501e-5,-6.801760816720763e-8,0.004181016588925626,2.2169477458321236e-5,-6.875930338309788e-8,0.004181298828271539,2.2524986894682156e-5,-6.949975199756988e-8,0.004181480040607371,2.282791399696808e-5,-7.013122390191389e-8,0.0041815939531634075,2.304443453220907e-5,-7.058260201965475e-8,0.004181680312312281,2.3160968578745368e-5,-7.082508197011263e-8,0.0041817771738139765,2.31820016723154e-5,-7.086767934850143e-8,0.004181916138040746,2.3125777208913207e-5,-7.074824050457918e-8,0.004182119981389813,2.301988109644779e-5,-7.052420786013162e-8,0.004182401587912403,2.2897560902910874e-5,-7.026493333350233e-8,0.004182763226082177,2.279464572132352e-5,-7.004528039888718e-8,0.004183195714757309,2.27463722411251e-5,-6.993905040066949e-8,0.0041836776903782045,2.2783245722880823e-5,-7.001037080800247e-8,0.004184175936522711,2.2925337371297516e-5,-7.030174363642383e-8,0.004184648351533992,2.3175376573468616e-5,-7.081948145094982e-8,0.00418505106926234,2.351265779926658e-5,-7.152078397866612e-8,0.00418534981740814,2.3891456557676195e-5,-7.231026107348822e-8,0.004185532699444083,2.4247798955379997e-5,-7.305402455302344e-8,0.0041856186975773695,2.4515523630203316e-5,-7.361333203789702e-8,0.004185656116733408,2.4647127383329684e-5,-7.388829334143641e-8,0.004185709463990267,2.4630561585255983e-5,-7.385309068068146e-8,0.004185839553237669,2.4494045601495442e-5,-7.356612233607162e-8,0.004186085175026919,2.4297013898756418e-5,-7.315119149276783e-8,0.004186453058714402,2.4111865678345753e-5,-7.275951997366621e-8,0.00418691819641979,2.4003918546233812e-5,-7.252797509274851e-8,0.004187432570247736,2.4015686123816057e-5,-7.254618294928173e-8,0.004187938527366445,2.4158751006996613e-5,-7.283932258420115e-8,0.00418838289655064,2.4413937365967342e-5,-7.336815666881627e-8,0.004188728513422404,2.4738606360928003e-5,-7.404399556996649e-8,0.00418896077263449,2.5078536869024493e-5,-7.475342352649681e-8,0.004189088187108331,2.5380979408035573e-5,-7.538568393181177e-8,0.004189137637378765,2.560542386655624e-5,-7.585541248978948e-8,0.004189146482758514,2.5729746333905715e-5,-7.611571356090715e-8,0.004189154226481784,2.5751295531856018e-5,-7.616056328669566e-8,0.004189195811872894,2.5684118435083626e-5,-7.601902615037475e-8,0.004189297432699497,2.55542284301067e-5,-7.574531169066045e-8,0.004189474640743976,2.539461358412779e-5,-7.54082984053367e-8,0.004189731923761839,2.5240920754474522e-5,-7.508253449426259e-8,0.004190062893369365,2.5127892543049684e-5,-7.484086743090381e-8,0.004190450577587119,2.508605327542561e-5,-7.474758404267058e-8,0.004190867863493793,2.5137902888573805e-5,-7.48504270355493e-8,0.004191278851066964,2.5293029167128904e-5,-7.517021445445091e-8,0.004191642553303303,2.55423836176811e-5,-7.568861108228818e-8,0.004191920429727899,2.585359199989586e-5,-7.633807975528864e-8,0.004192087961726734,2.6171043691637975e-5,-7.700197953776512e-8,0.0041921473996541884,2.6425138639552714e-5,-7.753404214212685e-8,0.004192134962329874,2.655208648022618e-5,-7.780007245043969e-8,0.004192114992464122,2.6518357750800253e-5,-7.772933711625707e-8,0.004192159595389882,2.6337159580545134e-5,-7.734907825665287e-8,0.0041923223662205,2.6066037508450072e-5,-7.677941655751047e-8,0.004192619875803577,2.578592305862587e-5,-7.618950486964727e-8,0.0041930293080447165,2.557321200031067e-5,-7.57392457018824e-8,0.004193500258489232,2.5478197525003033e-5,-7.553431849801728e-8,0.004193972401104941,2.5516253407646417e-5,-7.560771560475328e-8,0.004194391412284077,2.5670481527066318e-5,-7.592504671513956e-8,0.004194719476384159,2.5901118869691845e-5,-7.640387556528128e-8,0.004194939943894964,2.6157253045760205e-5,-7.693795310378307e-8,0.004195057196908215,2.6387965736528168e-5,-7.742045708403442e-8,0.004195093049339342,2.655137914482246e-5,-7.776307074307687e-8,0.0041950809049979216,2.662075619193178e-5,-7.790902792572845e-8,0.0041950589164355375,2.6587196549228087e-5,-7.783901651533447e-8,0.004195063418449753,2.6459035460426867e-5,-7.75700484300396e-8,0.004195123687424457,2.6258649342688074e-5,-7.714875237095379e-8,0.004195258624765763,2.6017731648806405e-5,-7.664139315682479e-8,0.0041954753979068695,2.5772178721423704e-5,-7.612311259338277e-8,0.004195769575099257,2.5557431308106203e-5,-7.566822001278618e-8,0.004196126138573454,2.540453466231477e-5,-7.534204817948078e-8,0.004196520954855405,2.53367037714102e-5,-7.51938225051339e-8,0.004196922622790946,2.5365966871741377e-5,-7.524954946219042e-8,0.004197295156724912,2.5489504985313087e-5,-7.550410520029874e-8,0.004197602564194241,2.5685951525308174e-5,-7.591317047680027e-8,0.004197816369561635,2.5913292788382522e-5,-7.638861304882352e-8,0.004197925960352721,2.6111518336327034e-5,-7.68040568734833e-8,0.004197949030411529,2.6213720596972247e-5,-7.701841069760118e-8,0.004197935777056729,2.6166841984154432e-5,-7.691972134593537e-8,0.004197959246279704,2.5955973534895593e-5,-7.647632694596954e-8,0.004198090449018128,2.561816100677808e-5,-7.576574198158926e-8,0.0041983690577137925,2.523320397695459e-5,-7.495518310321368e-8,0.00419878704502883,2.4893403872054307e-5,-7.423809664192561e-8,0.004199294657828197,2.466944744060831e-5,-7.37627848726335e-8,0.004199822567905109,2.4590529631573546e-5,-7.35909004360926e-8,0.004200305861270729,2.4644214422214637e-5,-7.369713717322046e-8,0.0042006995521685,2.478930388189759e-5,-7.399597656866322e-8,0.0042009837510207735,2.497203494463084e-5,-7.437531825774549e-8,0.004201161612568837,2.5139530804678885e-5,-7.472443695283559e-8,0.0042012538478359,2.524867550071118e-5,-7.495254886807737e-8,0.004201292331705662,2.527094607106964e-5,-7.49991216701699e-8,0.00420131393742547,2.5194311755950153e-5,-7.483814941996342e-8,0.004201354951284227,2.502295376661067e-5,-7.447781373617757e-8,0.0042014462866753815,2.4775206437341213e-5,-7.395626000164893e-8,0.004201609778427287,2.448005996210069e-5,-7.333420007618452e-8,0.004201855844869758,2.4172631007671907e-5,-7.268529378705414e-8,0.004202182698645817,2.3889171851144942e-5,-7.208562808425933e-8,0.004202577017310062,2.3662279170995062e-5,-7.160372968477706e-8,0.004203015758641201,2.351672818202007e-5,-7.129194406720078e-8,0.004203468829726377,2.3466037764782944e-5,-7.11792747736706e-8,0.004203902457944527,2.3509754658052647e-5,-7.126556074908164e-8,0.004204283346550584,2.3631449505063676e-5,-7.151698648158335e-8,0.004204584061959764,2.3797752657327603e-5,-7.186374646115213e-8,0.0042047900364866496,2.3959694992948275e-5,-7.22027000677904e-8,0.0042049075001769935,2.4058568751254713e-5,-7.240978381987185e-8,0.004204969667533672,2.4038460412971196e-5,-7.23666645880367e-8,0.004205036113172845,2.386531479855544e-5,-7.200115046387884e-8,0.004205179685910332,2.3546624248548318e-5,-7.132872503889457e-8,0.0042054607744250174,2.313929579412769e-5,-7.046897812798647e-8,0.00420589989798239,2.27347232082449e-5,-6.961404483515537e-8,0.004206466015888612,2.242427014344388e-5,-6.895601774624227e-8,0.004207089445384607,2.2264274521212205e-5,-6.861351443079364e-8,0.004207690765000283,2.2260358548173973e-5,-6.859880736537034e-8,0.004208207794816714,2.2375384589948536e-5,-6.883449347627073e-8,0.004208608832725967,2.2550256047354552e-5,-6.919700655526116e-8,0.004208892174623421,2.2724239908018644e-5,-6.955907850228315e-8,0.0042090782601795,2.284808125073127e-5,-6.981713891001085e-8,0.004209200296160906,2.2889691428958756e-5,-6.990328564693268e-8,0.004209296350094005,2.283492007234416e-5,-6.97870980120373e-8,0.004209403565906254,2.268592751806816e-5,-6.947247890090181e-8,0.004209554005893156,2.2458595057271006e-5,-6.899240475833879e-8,0.004209771538720962,2.2179411033598958e-5,-6.840241608206303e-8,0.00421006954601963,2.1881833085248087e-5,-6.777287276654248e-8,0.0042104495193963105,2.1602047665670182e-5,-6.717991814560981e-8,0.0042109008189892645,2.137421177667367e-5,-6.669544160393412e-8,0.004211401868604031,2.1225620883696596e-5,-6.637699983388579e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json new file mode 100644 index 0000000..ea90103 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":25000,"numberOfSamples":1000,"samples":[0.0042119228229227776,2.117242668988509e-5,-6.625892772821196e-8,0.00421242951621424,2.1216421815835606e-5,-6.634559593072919e-8,0.004212888396602669,2.1343324948057996e-5,-6.660764965178544e-8,0.004213272077688695,2.1522955697259163e-5,-6.698208934125665e-8,0.004213565153061029,2.171164617537871e-5,-6.737707330135306e-8,0.004213769823711238,2.1857483451438128e-5,-6.768286051317844e-8,0.004213910198871436,2.190927122349849e-5,-6.779084064030356e-8,0.004214032922657624,2.1829493537962127e-5,-6.762116816618272e-8,0.004214200852587069,2.160938196621095e-5,-6.71548148810529e-8,0.004214477322022827,2.1280462370500936e-5,-6.645802296286292e-8,0.004214903100503305,2.091373094832423e-5,-6.568048925307495e-8,0.004215475880773675,2.0600151223130995e-5,-6.501412598684065e-8,0.004216145898744334,2.0417442948628495e-5,-6.462301093688222e-8,0.004216833579580056,2.0400376819345232e-5,-6.458079850055622e-8,0.004217459970123071,2.053157579362677e-5,-6.485132807375522e-8,0.004217972502130171,2.0755398012646987e-5,-6.531780445307867e-8,0.004218354775674382,2.100283844312381e-5,-6.583514699901046e-8,0.004218621473875984,2.1213061032032433e-5,-6.627523661803764e-8,0.004218806437975746,2.1344829856945014e-5,-6.655094448616457e-8,0.0042189509605779895,2.1378863630848206e-5,-6.662115374902181e-8,0.004219095409105211,2.1315105530184897e-5,-6.648517553484988e-8,0.004219274283414654,2.1168357298914947e-5,-6.617374421911176e-8,0.0042195135261831026,2.0964046864058137e-5,-6.574021509881736e-8,0.0042198289277669875,2.0734467344645254e-5,-6.52526270229363e-8,0.004220225061155502,2.0515161357874974e-5,-6.478598265567233e-8,0.004220694716869642,2.0341013243499278e-5,-6.441392136515793e-8,0.004221219187507694,2.024179213121955e-5,-6.419932023758131e-8,0.004221769966808666,2.0237378693578086e-5,-6.418431147260425e-8,0.0042223122778394,2.033346797221274e-5,-6.438129961003437e-8,0.004222810379006872,2.051879431947242e-5,-6.47670814186124e-8,0.0042232340746766765,2.0764877854194254e-5,-6.528213506219293e-8,0.004223565395287756,2.1029006330211313e-5,-6.583665389689409e-8,0.004223804128873946,2.1260585340412296e-5,-6.632374566900979e-8,0.004223970876957566,2.1410361180324564e-5,-6.663887945834917e-8,0.004224106369310762,2.14415465441151e-5,-6.670356203916723e-8,0.0042242657983087495,2.134115638552841e-5,-6.648957977625455e-8,0.004224507399419219,2.112855412696634e-5,-6.603731852191216e-8,0.004224876159364572,2.085686994094544e-5,-6.545888489491197e-8,0.004225386732174476,2.0603067839644234e-5,-6.491709513429656e-8,0.004226013160943935,2.0446027498544085e-5,-6.457905743766462e-8,0.004226693128151923,2.043932475634994e-5,-6.45585312505897e-8,0.004227347974683707,2.059163946791718e-5,-6.487440472016235e-8,0.004227909703767054,2.086563813515611e-5,-6.544822544194953e-8,0.004228341362829596,2.1195202646072075e-5,-6.614053530613902e-8,0.004228642402086946,2.1510125092377255e-5,-6.680302045077538e-8,0.004228840647210552,2.1755805619472572e-5,-6.732012834688552e-8,0.004228978598476052,2.190213346099413e-5,-6.762786101905045e-8,0.0042291010496863166,2.194302357527711e-5,-6.771287814009528e-8,0.0042292470592518745,2.1891133200885374e-5,-6.760145956889963e-8,0.004229446049571827,2.1771621167792976e-5,-6.73464393792848e-8,0.004229716468222322,2.1616855272094037e-5,-6.701607817399818e-8,0.004230065522044785,2.146232151279719e-5,-6.668539495546459e-8,0.004230489183412082,2.134317016838142e-5,-6.642880367863476e-8,0.004230972374903851,2.12906866823376e-5,-6.631261090471438e-8,0.004231489771832401,2.132821216102119e-5,-6.638640134078987e-8,0.00423200798906628,2.1466603019303647e-5,-6.667347585959588e-8,0.004232489876042049,2.1700112891328544e-5,-6.716214332465655e-8,0.004232901078212662,2.2004253231900497e-5,-6.780110661848243e-8,0.0042332180115707534,2.233735468493118e-5,-6.850259405413669e-8,0.004233435294041164,2.264690582136456e-5,-6.915558955274176e-8,0.004233570081750011,2.288024682846949e-5,-6.964836523197342e-8,0.004233661175459219,2.299740945877807e-5,-6.989570010663392e-8,0.00423376212210765,2.298272324126421e-5,-6.986362270031153e-8,0.004233929261141872,2.2851697779811398e-5,-6.958422181245012e-8,0.004234207211841524,2.2650495622957343e-5,-6.915475814576002e-8,0.004234615425259081,2.2446809897144912e-5,-6.871849564593151e-8,0.004235140014210337,2.231313047848069e-5,-6.842929415254376e-8,0.004235734703969059,2.230620625541042e-5,-6.840801170460767e-8,0.004236332511029088,2.2449320169543877e-5,-6.870475534746973e-8,0.004236865352914913,2.2724777630289437e-5,-6.928273029224622e-8,0.004237284245080581,2.3080599212484498e-5,-7.003223837757029e-8,0.004237571736415137,2.3448608166368112E-05,-7.080893495957507e-8,0.004237742342841121,2.3765484141766943e-5,-7.147847424023432e-8,0.004237833085799702,2.3988137660734125e-5,-7.194917126202141e-8,0.004237890189882673,2.4099447950975766e-5,-7.218425790080511e-8,0.004237957595590428,2.4105773514283147e-5,-7.219670738284095e-8,0.004238069919582637,2.4030269658422523e-5,-7.203516533111505e-8,0.004238249618365501,2.39056679238968e-5,-7.176871236223504e-8,0.004238506777009503,2.376842054507791e-5,-7.14744782604305e-8,0.004238839960336995,2.3654485763485328e-5,-7.122870298290076e-8,0.004239237195182148,2.359612316887198e-5,-7.109993006965748e-8,0.00423967689584437,2.3618836515735366e-5,-7.114251881836275e-8,0.00424012919339875,2.3737839999153642e-5,-7.138914208350213e-8,0.004240558555859129,2.3954028829091893e-5,-7.184219988672258e-8,0.004240928632216016,2.425035359666654e-5,-7.246603747851151e-8,0.004241209686151803,2.4590515496345863e-5,-7.31840475098621e-8,0.004241387602314709,2.4922420371615704e-5,-7.388587732093796e-8,0.00424147157146284,2.5187961743731242e-5,-7.44481247159738e-8,0.004241496426214619,2.5338027012562994e-5,-7.476619148263978e-8,0.004241516665120159,2.53481927416961e-5,-7.478765248745461e-8,0.004241592614544567,2.5228750538790737e-5,-7.453362965654456e-8,0.004241773093309497,2.5024267468472517e-5,-7.409800415341168e-8,0.004242080828456248,2.480219962828495e-5,-7.362345063271682e-8,0.004242505642303187,2.463448176734963e-5,-7.326256531566072e-8,0.004243007230734643,2.4578174120876555e-5,-7.313688342900408e-8,0.004243526169055569,2.4660842178798045e-5,-7.330574786416262e-8,0.004243999680967984,2.4874463362710607e-5,-7.375310120416703e-8,0.0042443776570801894,2.5179193207145155e-5,-7.439515440950807e-8,0.004244634361830328,2.551555261019759e-5,-7.510602778954726e-8,0.0042447725833558445,2.5820973313206575e-5,-7.575282082432305e-8,0.004244819645713096,2.6045265557054406e-5,-7.622855268466984e-8,0.004244817657500771,2.6160427534331055e-5,-7.647316726976563e-8,0.004244812063322777,2.6162998914343238e-5,-7.647870316326475e-8,0.004244842201737484,2.6070232563465724e-5,-7.628128320228887e-8,0.004244935733735506,2.5913058455968382e-5,-7.594622609168704e-8,0.004245106822619801,2.572872050475992e-5,-7.555241538069889e-8,0.004245356804103788,2.5554802441117856e-5,-7.517960510152853e-8,0.004245675934005867,2.5425040582432493e-5,-7.48995353162313e-8,0.004246045266184226,2.53664067068817e-5,-7.47697603900719e-8,0.004246438382144604,2.5396616745149382e-5,-7.482836234073875e-8,0.004246823330043397,2.552139706651534e-5,-7.508808847131201e-8,0.004247165619004974,2.5731389115804212e-5,-7.55296442638736e-8,0.004247433275937945,2.5999499171301278e-5,-7.609589214748047e-8,0.0042476044631466715,2.6280705900143398e-5,-7.669131102787287e-8,0.004247676613223559,2.6517177808645175e-5,-7.719284879324458e-8,0.004247673609435171,2.6650746595202952e-5,-7.747651982304646e-8,0.004247645708001549,2.66412350943042e-5,-7.74564776254694e-8,0.004247658309913079,2.6483856580341366e-5,-7.712204781528955e-8,0.004247771456591539,2.6216061034290582e-5,-7.655226898516179e-8,0.004248018640476505,2.590800755606473e-5,-7.589568494417051e-8,0.004248395212570714,2.563994069145496e-5,-7.532244221725396e-8,0.004248861259489376,2.5477021622606432e-5,-7.497104067998361e-8,0.00424935590167607,2.5452038700586148e-5,-7.491170753332291e-8,0.004249815624233812,2.5560514080836893e-5,-7.513587325912593e-8,0.0042501900081495896,2.5766672608186727e-5,-7.556853344785969e-8,0.004250451383611506,2.6015861961209102e-5,-7.609427999654669e-8,0.0042505977356969114,2.6248914551540066e-5,-7.658758795271883e-8,0.0042506498090625795,2.6415031884901112e-5,-7.694017883491166e-8,0.004250644097952955,2.648096828203765e-5,-7.708071584908982e-8,0.0042506237812728765,2.6435303290169302e-5,-7.698415129034421e-8,0.004250629816343292,2.6287691938557887e-5,-7.667036324682085e-8,0.0042506940711203485,2.6064200669597658e-5,-7.619435383064163e-8,0.00425083548128867,2.5800616341765846e-5,-7.563201480582007e-8,0.004251059186062351,2.5535598231431913e-5,-7.506549954746807e-8,0.004251357853991461,2.5304981396812947e-5,-7.457106386619228e-8,0.004251714123475805,2.5137752884505912e-5,-7.421052674232194e-8,0.004252103288002902,2.5053445751813735e-5,-7.402578044122805e-8,0.0042524958808914486,2.5060282096586535e-5,-7.403485203242214e-8,0.004252860347046862,2.5153483119387155e-5,-7.422821487858902e-8,0.004253166420302202,2.5313592833064807e-5,-7.4565027741937e-8,0.004253390056795452,2.5505445065978426e-5,-7.497072826604751e-8,0.004253520373611728,2.567954717105097e-5,-7.533987563241299e-8,0.004253567583483577,2.5778553226866115e-5,-7.555000192971296e-8,0.004253568477479618,2.57508981459835e-5,-7.549083696491824e-8,0.004253583802551681,2.5570092233629636e-5,-7.51055603806773e-8,0.004253683035294351,2.5251865633977112e-5,-7.44273175308893e-8,0.0042539191944363595,2.4857202588394434e-5,-7.35855734003273e-8,0.004254305764216735,2.447438286380503e-5,-7.276784994537231e-8,0.004254809815918776,2.4186839495990022e-5,-7.215147164839955e-8,0.004255365549942023,2.40441206534225e-5,-7.184200794898621e-8,0.004255899200387112,2.4050089820884473e-5,-7.184826829956902e-8,0.0042563516080044266,2.416972185021108e-5,-7.209662433728606e-8,0.004256690396141003,2.434605252160264e-5,-7.246675786316027e-8,0.0042569115892744334,2.4517943449023026e-5,-7.282912443145628e-8,0.0042570344588616455,2.463347637775471e-5,-7.30732558512375e-8,0.0042570934805204125,2.465775417313392e-5,-7.312438614433928e-8,0.004257129932313604,2.4575925834567138e-5,-7.295011734563332e-8,0.0042571843494951115,2.4392667825468296e-5,-7.255962537821784e-8,0.00425729039774817,2.4129023933815476e-5,-7.199717208281165e-8,0.004257470606229811,2.3817370327804808e-5,-7.133146006679518e-8,0.004257734255741909,2.349544247400287e-5,-7.064283667735547e-8,0.004258077393204028,2.3200390137071024e-5,-7.001050679824002e-8,0.004258484618862725,2.2963666553012255e-5,-6.950158216921607e-8,0.004258932027056634,2.2807293789006354e-5,-6.916316297269846e-8,0.0042593906153518026,2.2741586385370254e-5,-6.901757022449099e-8,0.0042598297434363165,2.276399055898611e-5,-6.905989169541386e-8,0.004260220606168873,2.2858651267932304e-5,-6.925694232532747e-8,0.004260539991874552,2.2996585299082128e-5,-6.954740578872719e-8,0.004260774793749827,2.3136869567961894e-5,-6.984415171021355e-8,0.004260927452055153,2.3230106921002925e-5,-7.004155848425731e-8,0.004261021309681241,2.3226075701983406e-5,-7.003196358517582e-8,0.004261102938290243,2.308688722779646e-5,-6.9733984200722e-8,0.004261236712509181,2.2804045770392858e-5,-6.912910597515336e-8,0.004261487734137989,2.2412204909363093e-5,-6.829103484152083e-8,0.004261895857940792,2.1987951130290533e-5,-6.738297115674651e-8,0.004262453748847359,2.1626559517556065e-5,-6.660796308383029e-8,0.004263104835077354,2.14049565306401e-5,-6.613002381831203e-8,0.004263765230072934,2.1352073118542486e-5,-6.601108302348439e-8,0.004264356348996169,2.14434400684497e-5,-6.619951822339648e-8,0.00426482929740014,2.1618744627758198e-5,-6.656745990661841e-8,0.004265171943391067,2.1807560186110623e-5,-6.696539410340849e-8,0.004265402331610535,2.194966411597293e-5,-6.726522140368924e-8,0.004265556764276095,2.2005321336605362e-5,-6.738204521109695e-8,0.004265678484351986,2.1957407300082035e-5,-6.727876331639272e-8,0.004265809259589074,2.1808924150594526e-5,-6.696101507231523e-8,0.004265983904005325,2.1578682448027443e-5,-6.646826954849454e-8,0.004266226920993157,2.1296504146896058e-5,-6.586379168206377e-8,0.004266550629286272,2.0998265292050864e-5,-6.522408289024045e-8,0.004266954602654954,2.072086530767614e-5,-6.46280184319503e-8,0.0042674264408546,2.0497353315112702e-5,-6.414629674705478e-8,0.004267943861511287,2.0352576012947905e-5,-6.383209365453901e-8,0.004268477960877023,2.0299833661802612e-5,-6.371398436365584e-8,0.004268997253092252,2.0338959047789847e-5,-6.379193925228933e-8,0.004269472004022922,2.0455923406950072e-5,-6.403649435074647e-8,0.004269878504480831,2.0623872099556896e-5,-6.439082513227808e-8,0.004270203091943123,2.0805512560485156e-5,-6.477560803074754e-8,0.004270445852852126,2.0956944805511876e-5,-6.509700275244613e-8,0.004270623800199121,2.10334314266037e-5,-6.525895403540025e-8,0.004270772558072353,2.0997890319405713e-5,-6.518152289098647e-8,0.00427094441011345,2.083220432249813e-5,-6.482534637528951e-8,0.004271199798210908,2.05492416329248e-5,-6.421755267416815e-8,0.00427159041645784,2.0199863007888447e-5,-6.346677840095314e-8,0.004272137010630017,1.986641311092636e-5,-6.274914812415897e-8,0.004272812866192905,1.9637907019181664e-5,-6.225512618287865e-8,0.004273546661830289,1.957484111226967e-5,-6.211428300886088e-8,0.004274248084309201,1.9683554754882735e-5,-6.234052528862284e-8,0.004274842584556,1.9916585609271047e-5,-6.283284863669002e-8,0.004275294989396107,2.0196932839426866e-5,-6.34271221447608e-8,0.004275612111248886,2.044876157713103e-5,-6.396157774097112e-8,0.004275829854443942,2.0618302854561106e-5,-6.432132893338302e-8,0.004275996344867708,2.068048102350494e-5,-6.445246254988373e-8,0.004276158761153353,2.0635703336763096e-5,-6.435525871581819e-8,0.00427635575964747,2.050278681984088e-5,-6.406929194779216e-8,0.004276614264766545,2.03118344130943e-5,-6.365844604760266e-8,0.004276948681532183,2.0098462742130343e-5,-6.319870838452115e-8,0.00427736112987467,1.9899240304877655e-5,-6.276838480380487e-8,0.004277842211255956,1.974773290141609e-5,-6.243949971073313e-8,0.004278372391904025,1.967077619426468e-5,-6.226968673760751e-8,0.004278924276628769,1.9684968915617704e-5,-6.229464867897638e-8,0.00427946603046503,1.9793798937027695e-5,-6.252207128612635e-8,0.004279965907331355,1.9986115124125946e-5,-6.292842834492383e-8,0.004280397398965965,2.0236567080278434e-5,-6.345990398536185e-8,0.004280744247696593,2.0508303055502708e-5,-6.403801521126411e-8,0.004281004505802116,2.075787626038736e-5,-6.45698971255669e-8,0.004281192901995228,2.0941958152062637e-5,-6.496252518206134e-8,0.004281340930710332,2.1025255578912166e-5,-6.513969573609285e-8,0.004281494037741554,2.0988991621400003e-5,-6.506040387677097e-8,0.004281705020143845,2.083884172795236e-5,-6.473613988226346e-8,0.004282022932066112,2.0609966237029076e-5,-6.424190093837948e-8,0.004282478182800925,2.0365345667199266e-5,-6.371269223823294e-8,0.004283067616495902,2.018344302717714e-5,-6.331700549222439e-8,0.004283747241477742,2.0134651144824004e-5,-6.320619458649664e-8,0.0042844407554519515,2.0253973496551404e-5,-6.345578723847007e-8,0.004285064598384449,2.0524555265033713e-5,-6.403009214368057e-8,0.004285558228008341,2.0883667246896797e-5,-6.479498002189184e-8,0.004285903068305841,2.1248575485531713e-5,-6.557331881327865e-8,0.004286121591209917,2.1546759971092086e-5,-6.620971443688664e-8,0.004286261550244254,2.173512138139228e-5,-6.661161891835543e-8,0.004286377010822107,2.1803562222643158e-5,-6.675698118613891e-8,0.004286514639174886,2.1767962224157696e-5,-6.667927461907289e-8,0.004286707249844844,2.1659831340824737e-5,-6.644549978914754e-8,0.004286972651294204,2.1517288514130502e-5,-6.613702981233638e-8,0.004287315036407035,2.137879459328305e-5,-6.583625969488997e-8,0.004287726996196279,2.1279125575024203e-5,-6.561792724729806e-8,0.00428819142343141,2.1246497524740444e-5,-6.554282703858169e-8,0.004288683412819257,2.1300005175710134e-5,-6.56522121072733e-8,0.004289172646002349,2.144705325197606e-5,-6.596225331674356e-8,0.004289626831671317,2.1681083267848825e-5,-6.64591918001667e-8,0.004290016489747565,2.1980505883871905e-5,-6.709706780234995e-8,0.0042903207017423875,2.2309974166205005e-5,-6.780039689973465e-8,0.004290532704681695,2.2624802256956494e-5,-6.847351420232322e-8,0.004290663720481053,2.2878545281189634e-5,-6.901668815447957e-8,0.004290743428588021,2.3032647343331645e-5,-6.934675430215987e-8,0.004290816160740989,2.3066060527652307e-5,-6.941783186631997e-8,0.004290932973482719,2.298241860165485e-5,-6.923692897416443e-8,0.004291140720082246,2.281268438762679e-5,-6.886989001401675e-8,0.004291469988513568,2.261171092999127e-5,-6.843422945885471e-8,0.0042919245712092595,2.244789438370406e-5,-6.807700264279899e-8,0.004292475971297328,2.238658804783379e-5,-6.793912075922681e-8,0.004293066649609138,2.2470558774809148e-5,-6.811318501504072e-8,0.004293623937526895,2.2703998892035536e-5,-6.860890598586648e-8,0.0042940818493636184,2.304812006375384e-5,-6.934344898792616e-8,0.004294402362672422,2.3432831436448893e-5,-7.016645002765099e-8,0.004294586104386337,2.378055743966283e-5,-7.091121590795328e-8,0.004294667795317409,2.4030920659155234e-5,-7.144780929009046e-8,0.004294700566059802,2.4155324165777983e-5,-7.171440891510901e-8,0.004294738209100082,2.4157840931771394e-5,-7.171925710040148e-8,0.0042948226573763385,2.4066452881318333e-5,-7.152192906009953e-8,0.004294978812281802,2.3921337639631674e-5,-7.120830502904449e-8,0.004295214901080934,2.3765000948817973e-5,-7.08694876550506e-8,0.004295525436407369,2.363587044291823e-5,-7.058807624485363e-8,0.004295894601684546,2.3564786623837452E-05,-7.04305813207749e-8,0.004296299122201778,2.357308522950433e-5,-7.044321503200956e-8,0.004296710657229467,2.367115187319423e-5,-7.064870539544668e-8,0.004297098295590391,2.38568917503796e-5,-7.104295898373251e-8,0.004297431906932636,2.4114275885103977e-5,-7.159190498213205e-8,0.004297686870625992,2.4412901902798002e-5,-7.223050607165677e-8,0.004297849991681794,2.4710049162891303e-5,-7.286710575334312e-8,0.00429792530231652,2.4956591162591826e-5,-7.339606327152146e-8,0.004297937372396556,2.5107015043400802e-5,-7.371925088269417e-8,0.004297929510021779,2.5131737805527713e-5,-7.377254984435431e-8,0.004297955548234345,2.5027789983162344e-5,-7.354890403274291e-8,0.004298066575615005,2.4823310836198834e-5,-7.310812995376074e-8,0.004298296552607654,2.4573070322224938e-5,-7.256747872959403e-8,0.004298651648983001,2.434559188780995e-5,-7.207413756368472e-8,0.004299106911661393,2.4205518413300738e-5,-7.176741926718479e-8,0.004299611453430702,2.4196312655059432e-5,-7.174150839999789e-8,0.0043001009376553104,2.4328171010078167e-5,-7.201924724959771e-8,0.004300514215980978,2.45747458074727e-5,-7.254478183774332e-8,0.00430080955408668,2.4880164403869278e-5,-7.319841098782959e-8,0.00430097535914321,2.5174795560467062e-5,-7.383040760602065e-8,0.004301031639911904,2.5394822709818133e-5,-7.430318462394381e-8,0.004301021854896047,2.549876742515806e-5,-7.452698087324046e-8,0.004300998826632299,2.5475424898201563e-5,-7.447707677090092e-8,0.0043010105133326326,2.5341837209243172e-5,-7.418955573869462e-8,0.00430109035070397,2.513426620792213e-5,-7.374198268112992e-8,0.004301253742716078,2.48970164755011e-5,-7.32294267491531e-8,0.004301499427306543,2.467299592201586e-5,-7.274417707510015e-8,0.0043018132999952385,2.4497627550464064e-5,-7.236262240548909e-8,0.004302172657874503,2.4395814589290057e-5,-7.213867310051331e-8,0.004302549817683467,2.4380785913499932e-5,-7.210122313442096e-8,0.0043029149958991805,2.44536492446394e-5,-7.225313252007961e-8,0.004303238964457443,2.460296377691644e-5,-7.2570238773880585E-08,0.00430349625434463,2.4804348391217722e-5,-7.300042578258291e-8,0.0043036695281246816,2.50209511462533e-5,-7.34645445614565e-8,0.0043037550770795956,2.5206324498041653e-5,-7.386254745634518e-8,0.004303768148276709,2.5311391686062272e-5,-7.408849797523384e-8,0.004303745290754547,2.5296058710614142e-5,-7.405564302472968e-8,0.0043037402219377715,2.5143263129179642e-5,-7.372674513257676e-8,0.004303811401843918,2.486984655474745e-5,-7.31375476237472e-8,0.004304003924871586,2.452738717704159e-5,-7.239861410051003e-8,0.004304332998053507,2.4189634346796077e-5,-7.166837537127397e-8,0.004304777053220583,2.3930305794275484e-5,-7.110548942813876e-8,0.0043052839373079,2.380055815885997e-5,-7.082046368346776e-8,0.004305786979287081,2.381512406074437e-5,-7.084577599968396e-8,0.004306223908680077,2.3950918898359302e-5,-7.113265222969439e-8,0.0043065521824008435,2.4156359154944985e-5,-7.157081214482665e-8,0.00430675720105395,2.4366745878058644e-5,-7.202132826384251e-8,0.00430685272341944,2.452074994873828e-5,-7.235202054839195e-8,0.0043068746876313785,2.457397362237289e-5,-7.246674040986775e-8,0.004306870807432403,2.450692094765032e-5,-7.232274420159353e-8,0.0043068889333198876,2.4326274108967804e-5,-7.193368553734489e-8,0.004306967157178836,2.4060115372153373e-5,-7.135951482856131e-8,0.004307127792060001,2.3749312473508598e-5,-7.068800846487233e-8,0.004307375847549257,2.3437998378882705e-5,-7.001424126954424e-8,0.0043077011487614265,2.316559033074148e-5,-6.942331161839482e-8,0.004308082476774727,2.296156998550824e-5,-6.897901648309085e-8,0.004308492160407662,2.2843008936849732e-5,-6.871848008341235e-8,0.00430890014225028,2.2814028032551207e-5,-6.865098180169714e-8,0.004309277281921247,2.2866200020617407e-5,-6.875880227967708e-8,0.004309598220494261,2.2979234337591817e-5,-6.899862356038913e-8,0.004309844408536244,2.3121853538730567e-5,-6.930329429478826e-8,0.0043100078615668095,2.3253479651415424e-5,-6.95853524949172e-8,0.004310095640386761,2.3328083445441076e-5,-6.974529757037752e-8,0.0043101338257101485,2.3301787131791224e-5,-6.968807200575135e-8,0.004310168187241177,2.3144787924465443e-5,-6.934892854607553e-8,0.004310257826444425,2.285531683637069e-5,-6.872365125157918e-8,0.004310459684221365,2.2469228310805165e-5,-6.788925321183882e-8,0.0043108073193948325,2.2056750050369026e-5,-6.699692997284909e-8,0.004311294032439131,2.170255209789584e-5,-6.622910378436072e-8,0.004311871307369093,2.1476062378587954e-5,-6.573553756794064e-8,0.004312465198993063,2.1407057452158824e-5,-6.558081946270183e-8,0.004313001977162613,2.147859710794636e-5,-6.572910476913147e-8,0.00431343005920553,2.1637960989153616e-5,-6.606750631843108e-8,0.004313730316577628,2.181691089414023e-5,-6.644950764688654e-8,0.004313914738250244,2.1951418489715036e-5,-6.673726332891451e-8,0.004314017860593639,2.1995240270097538e-5,-6.6830778021755e-8,0.00431408563427076,2.1926188546349096e-5,-6.668152880876458e-8,0.004314164844430976,2.1746350005664837e-5,-6.62931915957548e-8,0.00431429466372932,2.1478088191753095e-5,-6.571331506627689e-8,0.004314501024681896,2.1157447735519515e-5,-6.501929657323107e-8,0.004314794068269408,2.0826407239506826e-5,-6.430170217264929e-8,0.004315168523400873,2.0525388218328684e-5,-6.364798919827755e-8,0.00431560642180513,2.0287173353931803e-5,-6.31292183912412e-8,0.0043160812455876356,2.0132909454777427e-5,-6.279132138753954e-8,0.004316562520177888,2.007033177327738e-5,-6.265126152698634e-8,0.00431702006617794,2.00938082788825e-5,-6.269717769742918e-8,0.004317427588706235,2.018551638500187e-5,-6.28909388180351e-8,0.004317765712734754,2.0317234227004703e-5,-6.317193328846631e-8,0.004318024775138963,2.0452628316515763e-5,-6.34618604024906e-8,0.00431820770093002,2.0550394730606987e-5,-6.367139110618334e-8,0.004318332893899484,2.0569188001987255e-5,-6.371081436092053e-8,0.004318436011644906,2.04754635624101e-5,-6.350712260775898e-8,0.0043185681789404615,2.0254385622796044e-5,-6.302778494565895e-8,0.004318787523787666,1.9921423273137004e-5,-6.230594134708772e-8,0.004319142414166795,1.9528518015015e-5,-6.145372829533996e-8,0.004319650180655444,1.9156534321257355e-5,-6.064588141621515e-8,0.004320282432594846,1.8890460254098007e-5,-6.006610839445816e-8,0.00432096924731175,1.8786257539194468e-5,-5.983551079099197e-8,0.004321623889974825,1.8848028753740572e-5,-5.996331107102821e-8,0.004322174856199251,1.9029232241916958e-5,-6.03494594472305e-8,0.004322587553187694,1.9254995930678356e-5,-6.083272565155132e-8,0.004322867520357473,1.9450265918529555e-5,-6.125132934634046e-8,0.004323049667978551,1.956007946768571e-5,-6.148655784160723e-8,0.004323182862961931,1.9557648041747735e-5,-6.148015369528662e-8,0.004323316556168647,1.9443050480583164e-5,-6.123159791433297e-8,0.004323491840940722,1.9237131005163212e-5,-6.0785188942898e-8,0.004323736659978244,1.8974013586600857e-5,-6.021415798447603e-8,0.00432406401637427,1.8693883726101143e-5,-5.960523413418266e-8,0.004324472264424686,1.8436553474490432e-5,-5.904470094336049e-8,0.004324946983099295,1.8236033860153257e-5,-5.860648003866715e-8,0.004325464084859797,1.811635649105119e-5,-5.8342897748555724e-8,0.004325993794135984,1.8088868183602328e-5,-5.8278740560323874e-8,0.004326505053826906,1.8151193617222837e-5,-5.84090469392405e-8,0.004326969827564337,1.8287871460248693e-5,-5.870057233852731e-8,0.004327366867667058,1.8472348280178974e-5,-5.909613070587311e-8,0.004327684784604043,1.8669955227489085e-5,-5.952094345795759e-8,0.004327924409123366,1.8841706401499647e-5,-5.989069354469142e-8,0.004328100446453682,1.8948978694444737e-5,-6.012153384588638e-8,0.004328242207755195,1.8959396499784854e-5,-6.014285604854431e-8,0.00432839251061342,1.8854306712077532e-5,-5.991366270790545e-8,0.004328602976287375,1.8637363771232864e-5,-5.9441399495521534e-8,0.004328923808193235,1.834172061702968e-5,-5.879768517306489e-8,0.0043293877420519525,1.803074398317214e-5,-5.8119858923673065e-8,0.004329992303019424,1.7786082973530267e-5,-5.7585025996974733e-8,0.0043306904239555155,1.768141014178147e-5,-5.735306902442807e-8,0.004331400140317573,1.7751344357086818e-5,-5.749928204325917e-8,0.00433203358321681,1.797402614272783e-5,-5.79766211094402e-8,0.004332530332663138,1.828016466901793e-5,-5.8635303908857e-8,0.004332875915402321,1.858298602165903e-5,-5.928765562337491e-8,0.00433309804217549,1.8810034258350935e-5,-5.977689798049865e-8,0.004333248483983109,1.8921204984793378e-5,-6.001607106531904e-8,0.00433338344031064,1.891050947589809e-5,-5.999178553599807e-8,0.004333550076056095,1.879802272931174e-5,-5.974688447449809e-8,0.00433378028617974,1.8619161178224815e-5,-5.935746777534596e-8,0.004334089547866698,1.841532739235039e-5,-5.891288378805079e-8,0.004334478361386218,1.8227051919153682e-5,-5.8500987248132956e-8,0.004334934676237755,1.8089192813388756e-5,-5.819765687811798e-8,0.004335436753461419,1.8027479513569926e-5,-5.805910095808496e-8,0.0043359564346629785,1.805604332199269e-5,-5.8116315662884676e-8,0.004336462854060841,1.8175905259323786e-5,-5.837173979925861e-8,0.0043369265589401195,1.8374650843245116e-5,-5.8798606028170783e-8,0.0043373237749320314,1.8627644789034814e-5,-5.9343665372251605e-8,0.004337640287689868,1.8900903887741546e-5,-5.993342885257249e-8,0.004337874393414731,1.915541028175581e-5,-6.0483416036833585E-08,0.004338038508031595,1.935252810257927e-5,-6.090974291052553e-8,0.004338159117798005,1.9460134108828392e-5,-6.114232980148806e-8,0.004338274774933433,1.9459013263327866e-5,-6.113884811203717e-8,0.004338431681466829,1.9348999136279857e-5,-6.089826911602292e-8,0.004338676165081497,1.9153806772625883e-5,-6.047161761109011e-8,0.004339043688685932,1.8922294391678095e-5,-5.996487910391701e-8,0.004339545635601907,1.872276095381814e-5,-5.952661815361361e-8,0.004340158161930944,1.8627380820978457e-5,-5.9314042383671195e-8,0.004340820587457169,1.8688023122385006e-5,-5.944030774359304e-8,0.0043414499059315215,1.8912570225124942e-5,-5.992294543545765e-8,0.004341969354982378,1.9256317958197064e-5,-6.066513104038634e-8,0.00434233727438235,1.963727956575248e-5,-6.148895689362684e-8,0.004342559700425284,1.9968375421524345e-5,-6.22053917653275e-8,0.004342681194553419,2.0187890581981525e-5,-6.268039485374884e-8,0.004342762928135588,2.0273446998614515e-5,-6.286515201466919e-8,0.004342861762115175,2.0238340874590014e-5,-6.278807051788223e-8,0.0043430181177510525,2.0118621313219873e-5,-6.25268278416331e-8,0.004343252686041884,1.9959504096147545e-5,-6.217910056180777e-8,0.004343568466291725,1.9805367104343365e-5,-6.184105171446118e-8,0.004343954731686096,1.9693836953182042e-5,-6.159455561595036e-8,0.004344390973704534,1.9652723436851773e-5,-6.150043408182522e-8,0.004344850331140559,1.969838524407601e-5,-6.159471002910778e-8,0.004345302792489047,1.9834740731576415e-5,-6.188629404236862e-8,0.004345718569954192,2.0052786388798823e-5,-6.235588467085406e-8,0.004346071890108299,2.0330942481172956e-5,-6.295676357140448e-8,0.004346345120939216,2.0636843362656404e-5,-6.361874562488397e-8,0.004346532649407227,2.0931092520010435e-5,-6.425633112670948e-8,0.004346643556812209,2.1172987348254808e-5,-6.478105282775598e-8,0.004346702139067369,2.1327622981692872e-5,-6.511679997367014e-8,0.004346745608778673,2.137326837845882e-5,-6.521581332631904e-8,0.004346818808370958,2.130755124320618e-5,-6.507223672428581e-8,0.004346966320702236,2.1150975510158874e-5,-6.472999399619078e-8,0.004347222824520035,2.0946473775532036e-5,-6.428207114555517e-8,0.004347603087958219,2.0753784072168932e-5,-6.385844812624413e-8,0.004348093942432825,2.0637814013072452e-5,-6.36007815326696e-8,0.004348651739160019,2.0651659508830847e-5,-6.36252925003523e-8,0.0043492091234758985,2.0818025289423062e-5,-6.398208836552688e-8,0.004349692649033529,2.1116545144798856e-5,-6.462735152225057e-8,0.004350046851532632,2.148558579412229e-5,-6.542717677117046e-8,0.004350254077818288,2.1841590704683874e-5,-6.619972247540033e-8,0.004350339218690546,2.2108334127427978e-5,-6.677897296497183e-8,0.0043503570289232605,2.2241363549602545e-5,-6.706795464383658e-8,0.004350370300956235,2.2236598604831392e-5,-6.705740408002692e-8,0.004350430646805905,2.2122994339245096e-5,-6.680980212150948e-8,0.004350568672542956,2.1947338186704e-5,-6.642641374111236e-8,0.004350793241612556,2.1759652050497017e-5,-6.601571687264844e-8,0.0043510958731244245,2.1603418432720286e-5,-6.567227801223937e-8,0.004351456464205779,2.1510811396030194e-5,-6.546638399293138e-8,0.004351848247956533,2.1501213936502228e-5,-6.544069492800358e-8,0.004352241536665431,2.1581184167779784e-5,-6.560999904068952e-8,0.00435260671995346,2.174478040527643e-5,-6.596178678053824e-8,0.004352917203110646,2.1974004373243897e-5,-6.645716600620018e-8,0.004353152776554337,2.2239771173006768e-5,-6.70329889115276e-8,0.0043533034557195595,2.250423557099356e-5,-6.760694213289382e-8,0.004353373159793762,2.2725320394767957e-5,-6.808739588456914e-8,0.004353381934028024,2.2863721397970617e-5,-6.838860655220757e-8,0.004353365144473504,2.2891593869259356e-5,-6.844958399294913e-8,0.004353368520464555,2.2800891768739177e-5,-6.825225963723115e-8,0.004353439178980252,2.2608536352457108e-5,-6.783284315230564e-8,0.004353614398994551,2.235592337679717e-5,-6.728093363331758e-8,0.004353911091254241,2.210179351953395e-5,-6.672420060605343e-8,0.004354319093981324,2.1909457854221882e-5,-6.63007028625976e-8,0.00435480070535855,2.183105798865961e-5,-6.612459579585697e-8,0.004355297564439238,2.1892701313526038e-5,-6.62535720399581e-8,0.004355744274261172,2.208486894760374e-5,-6.666768156040473e-8,0.004356085988373349,2.2362140804206785e-5,-6.72684784304803e-8,0.004356294790867451,2.265429960519879e-5,-6.790310472655907e-8,0.004356378446729466,2.2886711643210605e-5,-6.840875002736263e-8,0.004356377083974059,2.300287959510685e-5,-6.866191818023424e-8,0.004356348835649946,2.2979906602058662e-5,-6.861222380829316e-8,0.004356351070803769,2.283100298627068e-5,-6.828791603511024e-8,0.0043564253033482265,2.2596103437619816e-5,-6.777550831067574e-8,0.004356590438485916,2.232692894571213e-5,-6.71873398673657e-8,0.004356843977258533,2.207328036231141e-5,-6.663181407464889e-8,0.00435716773989199,2.1874255200302816e-5,-6.619429149558181e-8,0.0043575345277402245,2.17545974438534e-5,-6.592907552880914e-8,0.00435791364940389,2.1724473774609717e-5,-6.585880479157714e-8,0.004358274835255978,2.1780736857639492e-5,-6.597708420358102e-8,0.00435859102021611,2.190842428008057e-5,-6.625166759485598e-8,0.004358840788105637,2.2082124326210005e-5,-6.66273960160543e-8,0.004359011140673432,2.2267590761594875e-5,-6.702970759557112e-8,0.004359100770459174,2.2424521416654e-5,-6.737069654700543e-8,0.0043591232349589806,2.2511572931629804e-5,-6.756005138998922e-8,0.004359108521787183,2.2494178942973776e-5,-6.752211476792377e-8,0.004359100878157092,2.235434252364082e-5,-6.721725820444066e-8,0.004359151203790916,2.209952344550378e-5,-6.666129656422452e-8,0.004359304391648528,2.1766202486049173e-5,-6.59333189575158e-8,0.004359585156155929,2.141440124607869e-5,-6.516384241477555e-8,0.004359988028082468,2.1112991988769316e-5,-6.450292098818624e-8,0.004360476321122433,2.0920264451710092e-5,-6.407788779132097e-8,0.004360991139310915,2.0866833130000284e-5,-6.395608344448584e-8,0.0043614672632936585,2.094691373648151e-5,-6.412567446990825e-8,0.00436185047259702,2.1120373710730043e-5,-6.449986452881506e-8,0.004362111124733698,2.1324180464702604e-5,-6.4941620161576e-8,0.004362250570187353,2.1489435250093217e-5,-6.53007002748905e-8,0.004362299121386524,2.155913544719217e-5,-6.54524253343876e-8,0.004362306490900004,2.1501808725852057e-5,-6.532755100187959e-8,0.004362327761153033,2.131732881203479e-5,-6.492513324816661e-8,0.0043624093738372635,2.103373524474476e-5,-6.430576510522246e-8,0.0043625793884881775,2.0697054625575986e-5,-6.356950528095524e-8,0.004362844207020741,2.0358383999011046e-5,-6.282776240788013e-8,0.004363191208127825,2.006260880711081e-5,-6.217865603614356e-8,0.004363594835992581,1.984133466131531e-5,-6.169150041406605e-8,0.004364023394089613,1.971031936272081e-5,-6.140108548051583e-8,0.004364444713893855,1.9670147056786693e-5,-6.130906149278202e-8,0.004364830116595006,1.9708457183723877e-5,-6.13887614197793e-8,0.004365157008842049,1.9802456355045293e-5,-6.159066614971228e-8,0.0043654108447642925,1.9921222630134676e-5,-6.184741174273681e-8,0.004365587133171469,2.002805687530203e-5,-6.207888714985402e-8,0.004365693773882021,2.0083687956816993e-5,-6.219920719112305e-8,0.004365753261816067,2.0051413982690625e-5,-6.21279557727769e-8,0.004365803266929434,1.990492580654581e-5,-6.18073352015643e-8,0.004365893211815998,1.963812772857377e-5,-6.122369196067238e-8,0.00436607468587738,1.9273718051626967e-5,-6.042630561545666e-8,0.004366386030933518,1.8864892817626648e-5,-5.953112197574838e-8,0.004366836077417156,1.8485075349996475e-5,-5.869834534688314e-8,0.004367395636384049,1.8206114824510273e-5,-5.808489610024617e-8,0.0043680034475078715,1.807342018736887e-5,-5.779018629925774e-8,0.004368585429190273,1.8090183319349116e-5,-5.7821670584522674e-8,0.004369078205338029,1.8218018646954217e-5,-5.8096130493753056e-8,0.004369446485515545,1.8391914972714372e-5,-5.8472137246485704e-8,0.00436968898915749,1.854111673960781e-5,-5.879546235081837e-8,0.004369833869388169,1.8607666783746486e-5,-5.893945230499611e-8,0.004369927829734204,1.8558083076927652e-5,-5.883053071818364e-8,0.0043700232722843815,1.8387261432697222e-5,-5.845686139765173e-8,0.004370166642890487,1.8115771799109823e-5,-5.78626810222891e-8,0.004370389908592708,1.778250420799372e-5,-5.7132479090411445e-8,0.004370706190176643,1.7434832951346612e-5,-5.63696521066772e-8,0.004371109765100231,1.7118586178875612e-5,-5.5674571774707e-8,0.00437157972214823,1.6869939219546253e-5,-5.5126719806860253e-8,0.004372085769119738,1.671054970042191e-5,-5.477386649502183e-8,0.004372594495239376,1.6646123535862942e-5,-5.462880762363998e-8,0.004373074761423813,1.6667710334556395e-5,-5.467217352867607e-8,0.004373501568673639,1.675457816700928e-5,-5.485876153998176e-8,0.004373858478157565,1.687756120804058e-5,-5.5124896858937915e-8,0.004374139111879542,1.7002287531392034e-5,-5.5395470307775045e-8,0.0043743482958161295,1.7092346989803696e-5,-5.559079621301812e-8,0.004374503133939031,1.7112951246571128e-5,-5.5634563689226273e-8,0.004374633720251839,1.7035925052044434e-5,-5.546478116239983e-8,0.00437478225005965,1.6846665517467146e-5,-5.504911354774486e-8,0.0043749983953135655,1.6552475631203626e-5,-5.440324873724291e-8,0.004375328872488854,1.618927976830758e-5,-5.360566541222857e-8,0.0043758013925030695,1.5821068508656155e-5,-5.2796405543630164e-8,0.004376408267399701,1.552634116046679e-5,-5.214735730105396e-8,0.004377099954417064,1.5371900421595234E-05,-5.180488666204743e-8,0.004377797060914417,1.5385036173928835e-5,-5.182897065432117e-8,0.004378418187720637,1.5540645773084347e-5,-5.2165003016123936e-8,0.004378909008357041,1.5771884933839974e-5,-5.266706122898232e-8,0.0043792572209281865,1.599719360222389e-5,-5.315697219265368e-8,0.004379488986244382,1.6147744983164754e-5,-5.34842622002332e-8,0.004379653735493992,1.6183696763184442e-5,-5.356159676976171e-8,0.004379807029548539,1.6097454183882332e-5,-5.337188796430934e-8,0.004379997377027852,1.5908215829117925e-5,-5.2956489809098333e-8,0.004380258535441446,1.5652790384862128e-5,-5.239536296392365e-8,0.004380606499311609,1.5376010872551103e-5,-5.178635373794103e-8,0.00438103981704955,1.5122274389860483e-5,-5.122678455064238e-8,0.0043815422062817,1.4928716380928159e-5,-5.079841505994918e-8,0.0043820867949589636,1.4820349015323273e-5,-5.055656434916802e-8,0.004382641303252554,1.4807475268811135e-5,-5.052422039228374e-8,0.004383173380248949,1.4885420145896664e-5,-5.0691348370280644e-8,0.004383655356796422,1.5036302184118528e-5,-5.1018815625741976e-8,0.004384067847834171,1.5232293344004387e-5,-5.144564428159387e-8,0.0043844019828522774,1.543961315370945e-5,-5.1897827868784535e-8,0.004384660446837142,1.5622634657119858e-5,-5.229728990740927e-8,0.0043848576711448175,1.5747902572815793e-5,-5.257058563354719e-8,0.0043850193932531934,1.5788236658408824e-5,-5.2657827564574646e-8,0.0043851814481957125,1.572732220635757e-5,-5.252279948825495e-8,0.004385386970873339,1.5565072314536914e-5,-5.216487783723147e-8,0.004385680534183977,1.532309143986357e-5,-5.163119876709418e-8,0.004386097920633204,1.5047759637200314e-5,-5.102352030618483e-8,0.004386652021040343,1.4806503360449029e-5,-5.0490006751438264e-8,0.004387319473877426,1.4672634763753373e-5,-5.019184730718326e-8,0.004388037475553013,1.4699180145777687e-5,-5.024571194944651e-8,0.004388719358254085,1.4892581471994294e-5,-5.066597535539156e-8,0.004389286252243407,1.5203884862031068e-5,-5.1345376667470573e-8,0.00438969797548042,1.5546829342512437e-5,-5.209476228885879e-8,0.004389964650890107,1.583302129175502e-5,-5.272030351592314e-8,0.004390134913807563,1.6002864742013964e-5,-5.309129370757188e-8,0.004390272271287374,1.6037840528340582e-5,-5.3166940446750974e-8,0.004390434097429688,1.595511112825302e-5,-5.298445643173724e-8,0.004390660057645578,1.579392903294117e-5,-5.262936255347156e-8,0.004390969109008046,1.5602006407262715e-5,-5.220585215637865e-8,0.0043913615412258964,1.542537772061049e-5,-5.1814795817357e-8,0.004391823037389939,1.5302039558842245e-5,-5.153985439117854e-8,0.004392329121287766,1.5258332624760626e-5,-5.143939304550827e-8,0.004392849551497714,1.5307073316800725e-5,-5.1542117695367437e-8,0.004393352682154456,1.54470359086033e-5,-5.18457185429351e-8,0.00439380971458905,1.566375392426153e-5,-5.23185628529972e-8,0.004394198597306122,1.5931683059558592e-5,-5.2904527284831545e-8,0.004394507186734965,1.621768345692803e-5,-5.353077333402549e-8,0.004394735227108045,1.6485492657756142e-5,-5.411762647781867e-8,0.004394894902223298,1.6700626893534787e-5,-5.45892803278868e-8,0.004395009971871057,1.6835218512750443e-5,-5.48843068576531e-8,0.004395113603586854,1.687246367982367e-5,-5.496537371682426e-8,0.004395244949411491,1.6810475067017456e-5,-5.482779901120044e-8,0.0043954442427448425,1.6665347947444088e-5,-5.450649984627839e-8,0.004395745883391455,1.6472740140844224e-5,-5.407968384406357e-8,0.0043961693024316155,1.6286178870649144e-5,-5.366522773031633e-8,0.0043967088244268844,1.616943709032258e-5,-5.340384348847231e-8,0.00439732633496883,1.6180870696195093e-5,-5.342443633742838e-8,0.004397953375547895,1.635135413255929e-5,-5.379535836427356e-8,0.0043985084347460835,1.6664842817597192e-5,-5.448152340898046e-8,0.004398926535594353,1.7055762545965226e-5,-5.533868602056141e-8,0.004399186184162931,1.7430878674003617e-5,-5.616169045398201e-8,0.004399316502889809,1.7706012639717648e-5,-5.676535310620799e-8,0.004399380619391071,1.7836085828877507e-5,-5.7050496127308454e-8,0.0043994479138703985,1.782330059445976e-5,-5.70217692683362e-8,0.004399571685962228,1.7705329205192075e-5,-5.676158687960766e-8,0.004399779842592975,1.7535919356775476e-5,-5.6387604272475e-8,0.004400076250313624,1.736849329520766e-5,-5.601691660456328e-8,0.0044004470021380936,1.7246443601718784e-5,-5.574493496590799e-8,0.0044008672958289925,1.7199144884804796e-5,-5.5636639903815625e-8,0.004401307044890794,1.724130099925887e-5,-5.572497188992369e-8,0.00440173510197177,1.737368836590099e-5,-5.6012208288017816e-8,0.004402122691783258,1.7584415933249197e-5,-5.6472543144591716e-8,0.004402446537357039,1.785064042267672e-5,-5.705582151470724e-8,0.004402691816659508,1.8141037663291022e-5,-5.7693066337959046e-8,0.004402854735432183,1.841939830699297e-5,-5.8304506128850546e-8,0.0044029441466111215,1.86494319283523e-5,-5.88101859483882e-8,0.004402981550175842,1.8800342453498846e-5,-5.914217622460607e-8,0.004402999067764595,1.8852377164001726e-5,-5.925669183407802e-8,0.004403035359985339,1.8801411674438728e-5,-5.914416507577008e-8,0.0044031298139103415,1.866162281600663e-5,-5.883524829467042e-8,0.004403315601073636,1.8465518632622366e-5,-5.8401102927705954e-8,0.004403612303337892,1.8260820798133723e-5,-5.794674902359043e-8,0.00440401903455858,1.810360352195355e-5,-5.7596036212635465e-8,0.004404509752154576,1.8047165882872968e-5,-5.746702598309528e-8,0.004405033516436402,1.812725114889848e-5,-5.763917890945277e-8,0.004405522902615492,1.834684093381671e-5,-5.8119578846809494e-8,0.0044059119457882465,1.866727755270758e-5,-5.8823215461512124e-8,0.004406159440016461,1.9013925428711905e-5,-5.958550245976834e-8,0.004406266628248096,1.9299284542711648e-5,-6.021339687547807e-8,0.004406277737108989,1.945484969608813e-5,-6.055575571644973e-8,0.004406261496645234,1.9454837423611572e-5,-6.055559500071444e-8,0.004406284449775708,1.9319660877416878e-5,-6.025761062267969e-8,0.00440639062788073,1.910099176720538e-5,-5.977521664665257e-8,0.004406594829344743,1.886022453602534e-5,-5.924323335780905e-8,0.004406887078573716,1.8651292088100253e-5,-5.878025539400848e-8,0.004407241761031286,1.8511880264080445e-5,-5.846944211875105e-8,0.0044076263524043535,1.8461551898719056e-5,-5.835435137480919e-8,0.0044080076754981525,1.8503530268696664e-5,-5.8442683603324096e-8,0.00440835579500999,1.862755742929406e-5,-5.871235534719573e-8,0.004408646532290339,1.881262321625275e-5,-5.911736690258402e-8,0.004408863496128932,1.9029458207028737e-5,-5.959328119831901e-8,0.004409000066919958,1.924325840921723e-5,-6.006330961355848e-8,0.004409061253908856,1.9417302526743488e-5,-6.044637646552229e-8,0.004409064800155661,1.9517894893698925e-5,-6.066804549783033e-8,0.00440904055014602,1.9520391771617026e-5,-6.067376479634501e-8,0.004409027212339246,1.9415263477098266e-5,-6.044217579738232e-8,0.004409066265143777,1.9212538136596372e-5,-5.99949182565613e-8,0.004409193715141178,1.8942795303234154e-5,-5.939893403493536e-8,0.0044094314113227616,1.865344497733075e-5,-5.875845298339941e-8,0.004409780143242562,1.8400286623901103e-5,-5.8196555817766816e-8,0.004410216569539457,1.8235638567657733e-5,-5.782905216370578e-8,0.004410695422717016,1.8195238170461436e-5,-5.773546974239403e-8,0.004411157650944433,1.8286844900537162e-5,-5.7933659296607315e-8,0.004411543971861461,1.8484117436023682e-5,-5.836601541020027e-8,0.004411811395675748,1.8729348317482946e-5,-5.890535923731313e-8,0.004411947793992804,1.89470109132833e-5,-5.938486561457419e-8,0.0044119780011767805,1.906592214848751e-5,-5.964712702981143e-8,0.004411956808968038,1.9042277832868503e-5,-5.9595124411453214e-8,0.004411950401682743,1.8873156757466962e-5,-5.92220569871064e-8,0.004412014554899769,1.8594182067809693e-5,-5.8606156280090905e-8,0.004412179536671111,1.8263848967560027e-5,-5.7876134214088945e-8,0.0044124466739733125,1.7943581917926447e-5,-5.716729690606632e-8,0.004412794575472388,1.7682304086576782e-5,-5.6587619247160394e-8,0.004413189368832398,1.7509204078874898e-5,-5.6201810628385806e-8,0.004413594086340192,1.743345530047553e-5,-5.603059765879325e-8,0.004413975065031127,1.7447630029714103e-5,-5.605809066694707e-8,0.004414305472350097,1.7532025516451413e-5,-5.6241179923360305e-8,0.004414567041261399,1.7658503065552773e-5,-5.651793566777759e-8,0.004414751115520992,1.779363418722658e-5,-5.681456751260478e-8,0.004414859663338807,1.7901658854669397e-5,-5.7052019121006296e-8,0.0044149062993784445,1.794805755027884e-5,-5.7153915757579485e-8,0.004414916691840586,1.7904389601374315e-5,-5.7057269944060924e-8,0.004414927200000021,1.77543682378513e-5,-5.672588204884182e-8,0.0044149804922138025,1.750003314877578e-5,-5.616395099473292e-8,0.00441511759337999,1.7165714561544804e-5,-5.542484487782527e-8,0.004415367428776234,1.679696126662312e-5,-5.460881274387819e-8,0.0044157368984729635,1.64525946058128e-5,-5.3845568238601775e-8,0.0044162055472075626,1.6190716787134946e-5,-5.3263516737987664e-8,0.004416727899593218,1.6052589799655223e-5,-5.295419024084609e-8,0.0044172437234548155,1.6049869174066154e-5,-5.294395078197559e-8,0.004417693384688244,1.615974344870538e-5,-5.3183040430361466e-8,0.004418033663467096,1.6329784446188893e-5,-5.355607037861073e-8,0.004418249405605174,1.6491255741248804e-5,-5.391129234465096e-8,0.004418357633513688,1.657727659886784e-5,-5.41007360539825e-8,0.004418402673640693,1.6540796109409133e-5,-5.4020027084270734e-8,0.004418443391223361,1.636694373579072e-5,-5.3635805163711675e-8,0.004418536429934856,1.6075637077552477e-5,-5.2991599870440183e-8,0.004418721153570862,1.5713686813819345e-5,-5.219048380509432e-8,0.004419011327149181,1.5339827180016276e-5,-5.136208116526004e-8,0.004419395436149071,1.5008693642004086e-5,-5.062720950800594e-8,0.004419843763828487,1.475917925423041e-5,-5.0072119853676645e-8,0.004420318190940414,1.4609543041482485e-5,-4.973758066953034e-8,0.004420781006999231,1.455837640529271e-5,-4.9620879180614367e-8,0.004421200875707693,1.4588855571197866e-5,-4.9685116993361385e-8,0.004421555921818236,1.4673832615992423e-5,-4.9870423302738325e-8,0.004421834861138942,1.4780363310829798e-5,-5.0103979045361175e-8,0.004422037237442245,1.4873349197413976e-5,-5.030810679146616e-8,0.0044221735003303324,1.4918708687383351e-5,-5.0407314602882546e-8,0.004422265076734925,1.488684665139391e-5,-5.0335987892971714e-8,0.004422343894139628,1.4757129675741033e-5,-5.004829930915722e-8,0.004422450182798508,1.4523472760162985e-5,-4.953057889944237e-8,0.004422627129488367,1.4199935359410018e-5,-4.8813710361903955e-8,0.004422911606825086,1.382367526534905e-5,-4.7979688149729203e-8,0.004423322237828266,1.3451651182103001e-5,-4.715436315562399e-8,0.00442384901396835,1.3148639319550321e-5,-4.6480995689175956e-8,0.004424450465700748,1.2968277830758903e-5,-4.6078384882655163e-8,0.004425062411682258,1.2934115116972632e-5,-4.599895383332543e-8,0.004425616532075163,1.3029713949506274e-5,-4.620678002907812e-8,0.00442606125460747,1.3203026493029452e-5,-4.658713648167632e-8,0.004426376247492937,1.3382921571667098e-5,-4.698291956016331e-8,0.0044265757656095205,1.3500398155340669e-5,-4.7241493967355725e-8,0.0044267015746751685,1.3506656906523134e-5,-4.7254652877251136e-8,0.004426809564985756,1.3383317501207797e-5,-4.698127400556689e-8,0.004426954798878417,1.3143641854113754e-5,-4.645015416988944e-8,0.004427178862902963,1.282611238434304e-5,-4.574598280569655e-8,0.004427502065621027,1.248309395401886e-5,-4.498442593684408e-8,0.004427921557662274,1.2167909243147152e-5,-4.4283605507852286e-8,0.0044284149290582065,1.1923590626574095e-5,-4.373914849628887e-8,0.004428947492553156,1.1775726251332769e-5,-4.340818287378602e-8,0.0044294807498054785,1.1730276245194692e-5,-4.330431159108967e-8,0.00442997978210213,1.1775616157272551e-5,-4.3402016286169154e-8,0.004430418284203898,1.1887104697408922e-5,-4.3646763807176316e-8,0.004430781078167451,1.2032394059880673e-5,-4.396683813881441e-8,0.004431064723837474,1.2176260557030221e-5,-4.428411771350637e-8,0.0044312770935376515,1.228454666456542e-5,-4.452283720664672e-8,0.004431436570445023,1.2327479539015128e-5,-4.4616919616307796e-8,0.004431571073044788,1.2282959424570596e-5,-4.451723465126646e-8,0.004431716519505703,1.2140402085948442e-5,-4.420012359781004e-8,0.004431913708413011,1.190525144918933e-5,-4.367745401611296e-8,0.004432202271488714,1.1603137979985335e-5,-4.3005902031456583e-8,0.00443261096494701,1.128105558813796e-5,-4.228959825337529e-8,0.004433145658560025,1.1001798769206879e-5,-4.166779716993523e-8,0.004433779801368679,1.082900401217352e-5,-4.12817006687968e-8,0.004434454646972603,1.0805123199301839e-5,-4.122560821070611e-8,0.004435094025680583,1.093179184586048e-5,-4.1503363883340675e-8,0.004435629850168535,1.1164738583475233e-5,-4.20170322203088e-8,0.004436026030782993,1.1428372850655338e-5,-4.259921088755147e-8,0.004436288544140871,1.1642827137621819e-5,-4.30729574358741e-8,0.00443645852333741,1.1749408550127374e-5,-4.33081550485094e-8,0.004436594888881352,1.1724150687214207e-5,-4.3251474414460785e-8,0.004436755874140951,1.1577909422798677e-5,-4.292656969019233e-8,0.00443698556045168,1.134743368171151e-5,-4.241440383930332e-8,0.004437307141160754,1.1082923092713402e-5,-4.1825890935872864e-8,0.004437722000943753,1.0835997728485317e-5,-4.1275427325207346e-8,0.004438212894918262,1.0650076781292515e-5,-4.0859608303239765e-8,0.004438749638289341,1.055393982394728e-5,-4.0642808497137944e-8,0.004439295959152751,1.0558721353467244e-5,-4.065026502851615e-8,0.004439816265453436,1.065819146280534e-5,-4.0868482817672476e-8,0.004440281272009354,1.0831676496297347e-5,-4.1251640135869176e-8,0.004440671831938921,1.1048643543678123e-5,-4.173183848769729e-8,0.004440980777783971,1.1273898329578631e-5,-4.2230779881881195e-8,0.00444121303269828,1.1472474912977608e-5,-4.267071508775094e-8,0.004441384565236301,1.1613723431763203e-5,-4.298351149337096e-8,0.004441520716355006,1.1674659260946504e-5,-4.311801611635916e-8,0.004441654103827259,1.1642927188475744e-5,-4.304658575328331e-8,0.004441821893723169,1.151970903380154e-5,-4.277157863485106e-8,0.004442061733825511,1.1322569755221519e-5,-4.2331789891194374e-8,0.004442405367359218,1.1087324544257746e-5,-4.1806717475930976e-8,0.004442869542993695,1.0866655575333044e-5,-4.1313536007648224e-8,0.004443445735403163,1.0722317764963522e-5,-4.0989728756109695e-8,0.004444093284368835,1.0708865030730829e-5,-4.0956817567218523e-8,0.0044447430760904995,1.085167507562386e-5,-4.127142029165161e-8,0.004445316435740319,1.1129602124610225e-5,-4.1886642259513546e-8,0.004445754128237322,1.1475626607160576e-5,-4.2653546623268654e-8,0.004446040101964218,1.180003031512926e-5,-4.3372752883896014e-8,0.004446205530673317,1.2024629257590159e-5,-4.387057130415036e-8,0.004446312162708855,1.2108771182796773e-5,-4.405669777283164e-8,0.004446427135514646,1.2055740045207085e-5,-4.3938284164400834e-8,0.004446602819718554,1.1902415131929761e-5,-4.3596893302424874e-8,0.004446867462772274,1.1702280581489064e-5,-4.3150880569211476e-8,0.00444722502652385,1.1510013581017392e-5,-4.272141346034424e-8,0.004447660112373166,1.1371009258943887e-5,-4.240940734950581e-8,0.004448144592351008,1.1315808141326373e-5,-4.228315760058449e-8,0.00444864413440166,1.1358103698667109e-5,-4.237371725707588e-8,0.004449124029971733,1.1495141539025288e-5,-4.2675501313854964e-8,0.004449554153193063,1.1709878328814522e-5,-4.315087896932633e-8,0.004449912835517964,1.1974488478859295e-5,-4.373794004970734e-8,0.004450189440411732,1.2254789064169708e-5,-4.4360459045246395e-8,0.004450385488268202,1.2515133469631053e-5,-4.493894052335691e-8,0.004450514285615522,1.2723218588808307e-5,-4.540139076746559e-8,0.004450599251519201,1.285424788009527e-5,-4.569253626675187e-8,0.0044506713012207,1.2894201090678989e-5,-4.578100104332719e-8,0.004450765540459394,1.2842246866083047e-5,-4.5664633203186566e-8,0.004450917284953617,1.2712332911019386e-5,-4.537412450667041e-8,0.004451157155322636,1.2533780867555994e-5,-4.497450577626395e-8,0.004451504873237557,1.2350163721766086e-5,-4.45628020467471e-8,0.004451961919675364,1.2214876307893983e-5,-4.425820466465791e-8,0.004452504731610211,1.218142064773772e-5,-4.418032467973815e-8,0.004453082319776596,1.2287689702351628e-5,-4.441399178406356e-8,0.0044536237576869794,1.2537566429059222e-5,-4.496809227303929e-8,0.004454058600129623,1.2889221277017663e-5,-4.5749448011482285e-8,0.004454344557171657,1.3261764007055407e-5,-4.657774011379726e-8,0.004454487209756872,1.356321056345686e-5,-4.724799032523849e-8,0.004454537817108847,1.3726577222573843e-5,-4.761103975360433e-8,0.004454569953530231,1.3733042945322505e-5,-4.762500825386583e-8,0.0044546503114754445,1.3611019367534598e-5,-4.7353008192290663e-8,0.004454819540444871,1.3417353161617989e-5,-4.692121901981639e-8,0.004455088006355839,1.3214963151419203e-5,-4.6469264458608674e-8,0.0044554417320164475,1.3056798315819873e-5,-4.6114776888332594e-8,0.00445585181070049,1.2978205618864193e-5,-4.5936593073707565e-8,0.004456283063848414,1.2995515360089378e-5,-4.597157388372203e-8,0.004456700455403941,1.3107894323916252e-5,-4.621850553884396e-8,0.0044570734879752745,1.3300386432833933e-5,-4.664459015113946e-8,0.004457379329847273,1.354733210799182e-5,-4.719288460843296e-8,0.004457605083715164,1.381611653844664e-5,-4.779065425340231e-8,0.004457749208594007,1.4071308351959136e-5,-4.835873390854053e-8,0.004457821935847933,1.4279162754995978e-5,-4.882171487818592e-8,0.004457844413589892,1.4412244841220207e-5,-4.9118304592704225e-8,0.004457846392811299,1.4453606997495086e-5,-4.9210578647334747e-8,0.004457862579541846,1.4399892313824196e-5,-4.909080557286075e-8,0.004457928006711199,1.4262935015950712e-5,-4.878499921089497e-8,0.0044580728160356475,1.406956442522464e-5,-4.835259699152093e-8,0.004458316817654614,1.385936585539174e-5,-4.7881662798881046e-8,0.004458664213340158,1.3680097018682372e-5,-4.7478820736234354e-8,0.004459099197509258,1.3580228791160693e-5,-4.725262339870064e-8,0.004459584026033035,1.3598195514992196e-5,-4.728940689142557e-8,0.004460062199621417,1.3749252092781208e-5,-4.762371409222547e-8,0.0044604695823886415,1.4013664681784223e-5,-4.8211740969940616e-8,0.004460753777901616,1.4333327715772738e-5,-4.8923755358978294e-8,0.004460895857321044,1.4624178301927179e-5,-4.957195585635171e-8,0.00446092230560696,1.4804495669279922e-5,-4.997383459421404e-8,0.004460896977374359,1.4826692738442146e-5,-5.002318300311229e-8,0.004460895349738283,1.4694329378561483e-5,-4.972790533985917e-8,0.004460976016780967,1.4455254987504552e-5,-4.919452719357374e-8,0.0044611646111219405,1.4178234027314433e-5,-4.857603680579923e-8,0.004461454185855782,1.3928460573193122e-5,-4.801746458935442e-8,0.0044618157539403095,1.3752419469232318e-5,-4.7622364855750946e-8,0.0044622107137216325,1.3673354803297678e-5,-4.7442825841443116e-8,0.00446260043945746,1.369354382664959e-5,-4.7484455725649896e-8,0.004462952022908023,1.3799219006272274e-5,-4.7717131725367e-8,0.004463241121058138,1.3965553328710682e-5,-4.8085882901992276e-8,0.004463453324834858,1.4160873361938923e-5,-4.852016867099879e-8,0.0044635849469705675,1.435036495631774e-5,-4.894218569650978e-8,0.004463643417515637,1.4499782775240661e-5,-4.9275285274911396e-8,0.004463647051016639,1.4579493829923948e-5,-4.945312739285398e-8,0.004463623708041326,1.456882906403381e-5,-4.9429429021382195e-8,0.004463607842406662,1.4460176219189537e-5,-4.918704040982184e-8,0.0044636357910401445,1.4261818394534823e-5,-4.874420470914212e-8,0.0044637397511841466,1.3998495202235436e-5,-4.815581116683994e-8,0.004463941391235043,1.3708962880863763e-5,-4.7508063679370155e-8,0.004464246337336341,1.3440376771153735e-5,-4.6906117413019404e-8,0.0044646407956383674,1.3240001878015215e-5,-4.645569825673976e-8,0.004465091381001237,1.3145269848031426e-5,-4.624087973870854e-8,0.004465549066273715,1.3173598219246631e-5,-4.6301165592733985e-8,0.004465957939694511,1.3314136875100861e-5,-4.661280004540448e-8,0.004466268576327031,1.352468763662037e-5,-4.708169932958065e-8,0.00446645372428031,1.3737541360524216e-5,-4.7556478385599956e-8,0.004466520878302181,1.3876287526487771e-5,-4.786615773013864e-8,0.004466514326078782,1.3880445157377903e-5,-4.7875375783545784e-8,0.004466502142877897,1.3727918531229615e-5,-4.753461483998569e-8,0.004466552086217613,1.344312403337607e-5,-4.689826847344771e-8,0.0044667082651349286,1.3085819784721498e-5,-4.609959388131855e-8,0.004466980019477852,1.2727550786706039e-5,-4.529813388914731e-8,0.004467345755137234,1.2428783962732317e-5,-4.4628795806165725e-8,0.004467765779943532,1.2225982089979055e-5,-4.4173112494455235e-8,0.004468196005854024,1.2129693991677846e-5,-4.395498255353792e-8,0.004468597642816224,1.2129490543834448e-5,-4.395156917433471e-8,0.00446894206410521,1.2201011417455164e-5,-4.410885737385981e-8,0.00446921225500677,1.2312244640502023e-5,-4.43555394468987e-8,0.004469402654481283,1.2428213420078234e-5,-4.46134499502362e-8,0.0044695185950805304,1.2514503621319245e-5,-4.48055188286882e-8,0.004469575723049835,1.2540430548831996e-5,-4.486296672886854e-8,0.004469599148903078,1.2482479511679878e-5,-4.473308223481721e-8,0.004469621667375493,1.2328204497541601e-5,-4.4387945702341005e-8,0.004469680258111596,1.2080054076724377e-5,-4.38329250854799e-8,0.004469810440791369,1.1757832861630705e-5,-4.3112118745779403e-8,0.004470038938882233,1.139812552580378e-5,-4.2307071423256166e-8,0.004470376233823944,1.1049363336854192e-5,-4.1525836645826615e-8,0.004470811437085582,1.0762470256707936e-5,-4.088220096014905e-8,0.004471311827050345,1.057885493987764e-5,-4.046892914926202e-8,0.004471828174441778,1.0518954079644614e-5,-4.0332120643179816e-8,0.00447230517930829,1.057478045414597e-5,-4.045439322306815e-8,0.004472694773246646,1.0709058764895794e-5,-4.075274930775221e-8,0.004472969079340785,1.0862056909000877e-5,-4.1093716830421817e-8,0.004473129460972397,1.096542999972803e-5,-4.1324306385980915e-8,0.004473208349376754,1.0960344314636686e-5,-4.131265117419883e-8,0.004473261801176122,1.0814980769902441e-5,-4.098727821687716e-8,0.004473353611162491,1.0535090952922028e-5,-4.036078520359405e-8,0.004473535890618031,1.0162456216834655e-5,-3.952640941680167e-8,0.004473833792415958,9.760956408521302e-6,-3.862688960352953e-8,0.004474240602953426,9.396173414810474e-6,-3.7808898628385294e-8,0.004474724001444978,9.11738920258227e-6,-3.718281945206038e-8,0.004475238859403357,8.948272943174389e-6,-3.6801887768029544e-8,0.0044757402350894555,8.887048525787006e-6,-3.6662466891908055e-8,0.004476192324498001,8.912754115928486e-6,-3.6717928510436886e-8,0.004476572466872101,8.99328366656885e-6,-3.689655835364853e-8,0.004476871540255352,9.092325994737656e-6,-3.711706737226179e-8,0.0044770926280973825,9.174281950373387e-6,-3.7299643889725875e-8,0.004477249315061717,9.207572991317009e-6,-3.737343689531388e-8,0.0044773641629216165,9.167232096321902e-6,-3.7282422144220036e-8,0.004477467204936426,9.037578898248145e-6,-3.699141801660316e-8,0.004477593756950581,8.815347168589488e-6,-3.649307148880597e-8,0.00447778058690321,8.512872182307729e-6,-3.5814955514758316e-8,0.004478059745215661,8.159958224253264e-6,-3.502372164908136e-8,0.004478450365817333,7.802247766408065e-6,-3.4221459193305144e-8,0.004478950468601355,7.494062159631074e-6,-3.3529720730520204e-8,0.004479532465119492,7.285542176108168e-6,-3.3060801908352687e-8,0.004480146136971822,7.2072554470058906e-6,-3.288331103792207e-8,0.004480730224220354,7.258279349781589e-6,-3.2995444030558204e-8,0.004481229449583244,7.4035582392112385e-6,-3.331896233314279e-8,0.004481610689525678,7.582522644393277e-6,-3.371838931973838e-8,0.004481872292063173,7.725939025928392e-6,-3.403868938062639e-8,0.00448204374844317,7.774910697168804e-6,-3.414782399457034e-8,0.004482176671298304,7.696059172490782e-6,-3.397078855811176e-8,0.004482330435030019,7.4890430319435334e-6,-3.350650916046562e-8,0.004482556672721601,7.1850969128227755e-6,-3.282465246101726e-8,0.0044828866992572885,6.837522641746615e-6,-3.2044432737991846e-8,0.0044833250857910616,6.507056498926579e-6,-3.130192899832561e-8,0.004483850858172803,6.24650987263678e-6,-3.071570165203201e-8,0.004484425307959444,6.08924159396039e-6,-3.036088489326645e-8,0.004485003194359061,6.044356934728174e-6,-3.025827024763154e-8,0.004485543401858622,6.098712850233066e-6,-3.0378643182073185e-8,0.004486016219005494,6.2234233182378906e-6,-3.0657287324259747e-8,0.0044864064166258944,6.3817652026060565e-6,-3.1011736157922704e-8,0.004486712974298434,6.536100940869929e-6,-3.135738930785751e-8,0.004486946987567679,6.652794334948827e-6,-3.16186317416998e-8,0.0044871290855611435,6.705289352964788e-6,-3.173578594963119e-8,0.004487287039748156,6.676139966458214e-6,-3.1669660514816774e-8,0.004487453549021817,6.558809591876483e-6,-3.1405558068106883e-8,0.004487663626245549,6.359694715241642e-6,-3.095779699979666e-8,0.004487950667436226,6.100153211559874e-6,-3.0374268126452117e-8,0.004488340386805238,5.817319379742182e-6,-2.973828357636435e-8,0.004488842722498734,5.561454687988725e-6,-2.9162651978515495e-8,0.004489443758855133,5.387386078451001e-6,-2.87704753805209e-8,0.00449010207955269,5.339481305214199e-6,-2.866142686948672e-8,0.004490754688042762,5.434077367358827e-6,-2.887228736862537e-8,0.004491334130057058,5.647948607453723e-6,-2.9351019643881805e-8,0.004491791249757919,5.921297869142392e-6,-2.99634549511861e-8,0.004492112629279643,6.17644552752166e-6,-3.0535254824106297e-8,0.00449232388491216,6.343735825162951e-6,-3.0910079891972617e-8,0.004492478423788278,6.3824291151391336e-6,-3.0996454297399085e-8,0.0044926387333911215,6.288994539844147e-6,-3.078631234061721e-8,0.004492858636300761,6.092913739653983e-6,-3.0345562453837724e-8,0.004493171588724417,5.844789364045817e-6,-2.9787493231587065e-8,0.00449358619792652,5.60206433789655e-6,-2.9240893731404095e-8,0.004494087869175982,5.4161245069199806e-6,-2.882123891207294e-8,0.004494644740160421,5.322864554289205e-6,-2.8609503663609465e-8,0.004495216006784931,5.337654872160231e-6,-2.864069875751362e-8,0.004495760772876803,5.45491845871229e-6,-2.8902689986086383e-8,0.00449624562807949,5.6517357057193595e-6,-2.9344127629553888e-8,0.004496649625176552,5.894052353282223e-6,-2.988837234120634e-8,0.004496966197981279,6.14368973988668e-6,-3.044936038422412e-8,0.004497202413708704,6.364618307242032e-6,-3.094585642668188e-8,0.004497376491928267,6.527582409948589e-6,-3.131194447327545e-8,0.004497514640436966,6.6129278100694005e-6,-3.150337999113445e-8,0.004497647925917268,6.612117621637158e-6,-3.150093270015358e-8,0.004497809336845073,6.528610724443239e-6,-3.131231070153016e-8,0.004498030707089667,6.3785361876222695e-6,-3.09736925859592e-8,0.004498338829174895,6.191080665260008e-6,-3.055066942661581e-8,0.004498750077775436,6.0076683654676744e-6,-3.013646953689903e-8,0.004499263612814337,5.8780642609847445e-6,-2.9843203850422515e-8,0.004499854940636369,5.851244450515609e-6,-2.9781269629881294E-08,0.004500473936466841,5.960397636023314e-6,-3.002551100540538e-8,0.004501052719345036,6.205775394502228e-6,-3.057655086561226e-8,0.00450152565398311,6.544818406940442e-6,-3.133855594471292e-8,0.004501855052718436,6.89991925988118e-6,-3.213677936923044e-8,0.004502048299394567,7.184984577129539e-6,-3.277745584916125e-8,0.00450215485481849,7.337928245096862e-6,-3.312096524996092e-8,0.004502244939964075,7.34104622514252e-6,-3.31275673941889e-8,0.0045023832883471036,7.220589179745083e-6,-3.285626158580508e-8,0.0045026110823796145,7.030850470500054e-6,-3.2428926008768215e-8,0.0045029404092560505,6.834169236371335e-6,-3.198546698313869e-8,0.004503358106314494,6.685082210089396e-6,-3.1648403907449894e-8,0.004503833931529304,6.621199922123047e-6,-3.150250475699595e-8,0.004504329393182454,6.659916022098113e-6,-3.158735035096041e-8,0.004504805490228415,6.79906815339101e-6,-3.18986098972113e-8,0.0045052288712172945,7.020052500014815e-6,-3.239479081077634e-8,0.004505576291020284,7.292536290791366e-6,-3.300768877577651e-8,0.004505837190189702,7.580099251624076e-6,-3.3655110613896705e-8,0.0045060143045280365,7.846042790020471e-6,-3.42541110553583e-8,0.004506122446663604,8.058625318459529e-6,-3.473295260761845e-8,0.0045061858442556986,8.195104654863028e-6,-3.504028264202122e-8,0.004506234642510104,8.244233774000591e-6,-3.515070923594395e-8,0.004506301185498216,8.20730170658394e-6,-3.506705303538336e-8,0.004506416396345633,8.098093426558627e-6,-3.482021907021817e-8,0.004506606235169193,7.94206498498607e-6,-3.446740371929097e-8,0.004506887964378976,7.774744655900673e-6,-3.4088620681013444e-8,0.004507265898608951,7.63883680811971e-6,-3.378026681707891e-8,0.004507726866888514,7.578827637892328e-6,-3.364294154809401e-8,0.0045082369085281135,7.631796357853752e-6,-3.376059550196789e-8,0.0045087423408103665,7.81442404265071e-6,-3.4171064362557586e-8,0.004509179270358261,8.109527450340536e-6,-3.48355963905556e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json new file mode 100644 index 0000000..d989a12 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":26000,"numberOfSamples":1000,"samples":[0.004509493310776733,8.460255546355793e-6,-3.5625800851343465e-8,0.004509663584584268,8.78152154032578e-6,-3.634960149730122e-8,0.004509716789810693,8.989819707723907e-6,-3.681866430913203e-8,0.004509719059465651,9.037418772725032e-6,-3.692552117143939e-8,0.004509748243703133,8.930185223519827e-6,-3.668355434778159e-8,0.004509863647122957,8.719470842231082e-6,-3.620846132642241e-8,0.004510089653785742,8.476972036399517e-6,-3.5661533171045015e-8,0.004510416800722429,8.269299770251092e-6,-3.51925282944491e-8,0.004510813094911667,8.1427235238956e-6,-3.4905561743649874e-8,0.004511237012805131,8.118815983827459e-6,-3.4849442039030304e-8,0.004511647598100416,8.19695215375018e-6,-3.5023237901990346e-8,0.004512010754110658,8.359585736620415e-6,-3.538793530902102e-8,0.004512302608721269,8.577895407180773e-6,-3.5878908014654e-8,0.004512511101780664,8.817020399356672e-6,-3.6417590410461715e-8,0.004512636407156604,9.040913865577355e-6,-3.692247406897225e-8,0.004512690307657771,9.216869444768706e-6,-3.7319489010541575e-8,0.004512694498577715,9.319590010896785e-6,-3.755134208751638e-8,0.004512677812454461,9.33448051439994e-6,-3.758499305360356e-8,0.004512672525088187,9.259714461186162e-6,-3.74162487552752e-8,0.004512710155956202,9.106773676260358e-6,-3.7070886445067697e-8,0.004512817232229619,8.899452134994748e-6,-3.660239062283695e-8,0.004513011361703757,8.671416905011533e-6,-3.6086549932726506e-8,0.0045132978459024205,8.462410007400726e-6,-3.561303803422552e-8,0.00451366700674806,8.313087368408677e-6,-3.5273853268424084e-8,0.004514092641922462,8.258223307030978e-6,-3.5147920393724736e-8,0.004514532771288454,8.318077690988317e-6,-3.5281410931936163e-8,0.004514934630932754,8.4888481118899e-6,-3.566597134940736e-8,0.004515245854344678,8.735374126556136e-6,-3.622214330179837e-8,0.0045154316998782295,8.991891199064452e-6,-3.6801147360575755e-8,0.004515492902915043,9.176856590224277e-6,-3.7218586920753816e-8,0.004515473030595792,9.22132948769478e-6,-3.731873347690093e-8,0.004515445973338222,9.09843419372188e-6,-3.704104339955742e-8,0.00451548682469044,8.835578371895206e-6,-3.644751863773576e-8,0.00451564268107663,8.500985857177386e-6,-3.5692080359945736e-8,0.0045159197183348996,8.174205711565663e-6,-3.495399269113799e-8,0.004516289609363855,7.91891452501725e-6,-3.437668106843999e-8,0.004516706111846334,7.769533914623208e-6,-3.403776290168179e-8,0.004517121078763411,7.73134067417984e-6,-3.3949388348932536e-8,0.0045174946878258695,7.787734155315276e-6,-3.4074540770568025e-8,0.004517799867137044,7.908923469211388e-6,-3.434642142253354e-8,0.004518023021591153,8.059160327422076e-6,-3.468456742654183e-8,0.004518163140214663,8.202005982025426e-6,-3.50066650311153e-8,0.004518230411948181,8.30424890030949e-6,-3.523747823122548e-8,0.004518244570725208,8.33915192550796e-6,-3.531634932075353e-8,0.004518232782286238,8.28935594403696e-6,-3.5203891163581475e-8,0.004518226774465987,8.149365170645358e-6,-3.488762043767852e-8,0.004518259006711036,7.927116613346235e-6,-3.438542274392408e-8,0.004518358060544222,7.643963370228097e-6,-3.3745425584923236e-8,0.004518543856405558,7.332621283429884e-6,-3.3041356370972954e-8,0.004518823498710852,7.0329632269025115e-6,-3.236314547040654e-8,0.004519188579967757,6.785903929501321e-6,-3.180325247605029e-8,0.004519614661144808,6.626048418181081e-6,-3.14401232958339e-8,0.0045200634304379044,6.5740276672578925e-6,-3.132079397132222e-8,0.004520487966458727,6.62956304606739e-6,-3.144502131997278e-8,0.00452084147546764,6.766843341505083e-6,-3.175463526314589e-8,0.004521089187148414,6.934764185105069e-6,-3.2134004538126606e-8,0.004521221269959029,7.065025688552307e-6,-3.2428442843453624e-8,0.004521261859102045,7.089574850293132e-6,-3.248384715700535e-8,0.0045212674299407694,6.964089990219654e-6,-3.2199939344201606e-8,0.004521310513078177,6.687544084459722e-6,-3.1574464342686096e-8,0.004521453447203763,6.305670157088708e-6,-3.071085821791362e-8,0.0045217253573987225,5.893958647960642e-6,-2.9779688167653515e-8,0.004522114733755025,5.529133856038296e-6,-2.8954214723599135e-8,0.004522579377927455,5.264744210794258e-6,-2.8355366465152043e-8,0.004523065009217748,5.120982847527676e-6,-2.802885167464862e-8,0.004523521972907846,5.088150002782038e-6,-2.7952986672350293e-8,0.004523914736487703,5.136932989628306e-6,-2.8061821235107004e-8,0.004524224518460753,5.229079919518181e-6,-2.8269112293518485e-8,0.004524447866784532,5.325356167857952e-6,-2.8486202260608446e-8,0.004524593830297251,5.390497834119252e-6,-2.8633216627973057e-8,0.004524681160259874,5.396171432205578e-6,-2.864585654482284e-8,0.004524735849207278,5.323027317101781e-6,-2.8480176026552257e-8,0.0045247886943237964,5.16249823096028e-6,-2.8116730602371682e-8,0.004524872353940403,4.918444281738836e-6,-2.7564280225240977e-8,0.0045250174349796965,4.608134848323794e-6,-2.68619228883987e-8,0.004525247591606092,4.261615509273891e-6,-2.6077583364155316e-8,0.004525574321292053,3.918549452938378e-6,-2.530086898948843e-8,0.00452599277311532,3.622150479587777e-6,-2.462943302074595e-8,0.0045264801545203655,3.4107258886289212e-6,-2.4149954956603862e-8,0.004526998018263306,3.308450392319929e-6,-2.3917312554474847e-8,0.004527498775693957,3.317760005942039e-6,-2.3937301228621522e-8,0.00452793558120547,3.415707219466181e-6,-2.415823276235786e-8,0.00452827373820132,3.555942963102195e-6,-2.4475281614218993e-8,0.004528501076735233,3.677053577969154e-6,-2.4749321189987848e-8,0.004528634255226658,3.7166708540264696e-6,-2.4838951555615288e-8,0.00452871788049019,3.6288209284880697e-6,-2.4639908971730102e-8,0.004528814461392247,3.399578871249497e-6,-2.4120586107355082e-8,0.004528986348915549,3.0544546974012395e-6,-2.3338735228699577e-8,0.004529275447593868,2.652362755159554e-6,-2.2427751850493508e-8,0.0045296894826229355,2.266809562799965e-6,-2.1554061940523532e-8,0.004530201357681512,1.962172998408435e-6,-2.0863453384503786e-8,0.004530761107800889,1.7757792179593227e-6,-2.044053421769499e-8,0.004531313427122603,1.7122786235617054e-6,-2.0295983770420518e-8,0.0045318125655776954,1.749367675975404e-6,-2.037944352447753e-8,0.004532230187937357,1.8490802478591477e-6,-2.0605011670815894e-8,0.00453255650096998,1.968861091375431e-6,-2.08762767548505e-8,0.004532797413529103,2.069429992863889e-6,-2.1104137100273155e-8,0.004532970455627508,2.1191957801873115e-6,-2.121685754164669e-8,0.004533101006844266,2.0963386322046738e-6,-2.1164869031366592e-8,0.004533219236241922,1.9898190337828303e-6,-2.09231193072752e-8,0.004533357423629913,1.8001513809640854e-6,-2.0492836790277707e-8,0.004533546992225019,1.540165048997408e-6,-1.9903207651827864e-8,0.004533814625910253,1.2352637227640804e-6,-1.9211889086172134e-8,0.0045341773121543635,9.220902568912064e-7,-1.8501932634248034e-8,0.004534637007950439,6.443360771918933e-7,-1.7872295458798828e-8,0.004535176664792075,4.4499167138597644e-7,-1.7420339103780497e-8,0.004535760035304328,3.557925328380303e-7,-1.7217978115692215e-8,0.004536337215533742,3.866412902473646e-7,-1.728772350881937e-8,0.004536855876733859,5.191842687487436e-7,-1.7588072274695526e-8,0.004537275385870752,7.081369882607212e-7,-1.8016430469229954e-8,0.004537579125593926,8.912435030713721e-7,-1.8431639886474907e-8,0.004537780530744449,1.005317578228007e-6,-1.8690357071296403e-8,0.004537920538034231,1.0034699039837472e-6,-1.868616129977461e-8,0.0045380570398233745,8.682810605385142e-7,-1.837946472292758e-8,0.004538249294644987,6.169983072998986e-7,-1.780931248930263e-8,0.004538541670781989,2.970358272201004e-7,-1.708319176747392e-8,0.004538951579800054,-2.7231731686069303e-8,-1.634711520277816e-8,0.004539465565272268,-2.9245638234442717e-7,-1.5744867236873657e-8,0.004540044817016876,-4.530987714794202e-7,-1.537993968878856e-8,0.004540637691521912,-4.913904592554641e-7,-1.5292863661002783e-8,0.0045411941681401885,-4.179588426089708e-7,-1.545968048557915e-8,0.0045416771529875445,-2.646725790176748e-7,-1.580808820140591e-8,0.004542067915028178,-7.389589463817978e-8,-1.624181308946475e-8,0.004542365941693601,1.1161571806108388e-7,-1.6663601282918254e-8,0.004542585366851695,2.557719936323004e-7,-1.6991327574329404e-8,0.004542750301596352,3.328556897280507e-7,-1.7166487509062615e-8,0.004542890539772055,3.288339048433999e-7,-1.7157205799619142e-8,0.004543038110357333,2.4148307307612337e-7,-1.6958505979006495e-8,0.00454322442352209,8.020747945813414e-8,-1.659185787564851e-8,0.004543477357567356,-1.341554185295706e-7,-1.6104693284517906e-8,0.0045438176089469635,-3.6995599015852086e-7,-1.5568968349127696e-8,0.004544254057927853,-5.868612278189073e-7,-1.507632289085078e-8,0.004544778812882803,-7.409000787411416e-7,-1.4726631776247386e-8,0.0045453638821404034,-7.933529756111925e-7,-1.4607830316871693e-8,0.004545962512626217,-7.226259496806341e-7,-1.4768947865738407e-8,0.004546517831531095,-5.353354038386974e-7,-1.5194914668309396e-8,0.004546978401910495,-2.705801777601392e-7,-1.5796839796783648e-8,0.004547315606031961,7.426064280520287e-9,-1.6428760347708144e-8,0.00454753489003374,2.2771495362971647e-7,-1.6929398929145512e-8,0.004547674975302893,3.348200634734904e-7,-1.7172762210130373e-8,0.004547795269270398,3.0546407671952013e-7,-1.7106022758788838e-8,0.004547957342816333,1.5361082419481356e-7,-1.6760923023671023e-8,0.004548207818776337,-7.620926519655014e-8,-1.623857269178295e-8,0.004548567688113334,-3.2310178950335675e-7,-1.5677235728358874e-8,0.004549029689400049,-5.261904517049809e-7,-1.5215224434557068e-8,0.004549562879332015,-6.387181991297879e-7,-1.4958938590346338e-8,0.004550122119909111,-6.369676213818445e-7,-1.4962560924246113e-8,0.004550659547407562,-5.227487180281773e-7,-1.522226203843342e-8,0.00455113503524916,-3.198295674394947e-7,-1.568415057741117e-8,0.004551523306381531,-6.614611648123595e-8,-1.6261898726347644e-8,0.004551816641272785,1.9551328796095916e-7,-1.685796274830549e-8,0.004552023601182218,4.2580724108011224e-7,-1.7382583753550408e-8,0.004552165189758773,5.945892816202448e-7,-1.7766991018379748e-8,0.004552270093790798,6.837932410099917e-7,-1.7970026091410244e-8,0.004552370226282839,6.880617875256065e-7,-1.797954851084639e-8,0.004552497089156715,6.141061808103928e-7,-1.781091130786019e-8,0.004552678823971549,4.796156243032983e-7,-1.7504429067141582e-8,0.004552937441607541,3.1202357072442164e-7,-1.7122570952647516e-8,0.004553285657210565,1.4683488458868566e-7,-1.6746191281231358e-8,0.004553723072438308,2.461230159602889e-8,-1.6467701649164962e-8,0.004554232297584862,-1.4673606685835707e-8,-1.6378198838017022e-8,0.004554776931368462,5.916408340345163e-8,-1.654648595704409e-8,0.004555304544316013,2.5471410996338887e-7,-1.699210890005788e-8,0.004555757580182239,5.487508779098537e-7,-1.766206390844868e-8,0.00455609163018589,8.847980560550384e-7,-1.8427567403072217e-8,0.004556294266149341,1.1862585904106192e-6,-1.9114066338961307e-8,0.00455639356224145,1.3819276275300728e-6,-1.955944643880223e-8,0.004556449423840962,1.4320994076717743e-6,-1.967347844662727e-8,0.00455653146260646,1.3415196289400694e-6,-1.9467164239301853e-8,0.004556695250636879,1.1538974614742377e-6,-1.9040064669564954e-8,0.00455696762660136,9.337292242152009e-7,-1.8538868697838413e-8,0.004557344253094815,7.457228920368247e-7,-1.8110674855141883e-8,0.004557796262614695,6.393184058846508e-7,-1.7867944352973605e-8,0.004558280964655819,6.408021303045762e-7,-1.7870661006435703e-8,0.004558752717751708,7.521507776956689e-7,-1.812364701480733e-8,0.004559171865542613,9.545520907436515e-7,-1.8584396920373626e-8,0.004559510918417762,1.214685417394258e-6,-1.9177186559210626e-8,0.0045597577345257365,1.492268065989241e-6,-1.9810175736451022e-8,0.004559915758252532,1.747525782261627e-6,-2.0392490975707653e-8,0.004560001790681829,1.947399946982737e-6,-2.084852456530275e-8,0.004560042130719432,2.069755428846989e-6,-2.112766147211479e-8,0.004560068031127442,2.105379942421046e-6,-2.1208875035905857e-8,0.004560111313149676,2.0580137470542224e-6,-2.110073390215724e-8,0.004560200668904181,1.943025512553438e-6,-2.083829693588606e-8,0.004560358702285993,1.785412603296129e-6,-2.0478523102675264e-8,0.004560599413535639,1.6174458646150957e-6,-2.009495393525646e-8,0.004560925771429382,1.4758038902445344e-6,-1.977126696599221e-8,0.004561327227637577,1.3976103681723366e-6,-1.9592281027131787e-8,0.004561777687863393,1.414475222692563e-6,-1.963031184849548e-8,0.004562235579990404,1.5439760444566057e-6,-1.9925614673578647e-8,0.004562648675447503,1.7796412722016043e-6,-2.046341689014831e-8,0.004562966076598825,2.0834817290894464e-6,-2.1156859279096877e-8,0.004563156563769151,2.3880171788488707e-6,-2.1851733662215338e-8,0.004563226026995868,2.6134961406077906e-6,-2.236596297709388e-8,0.004563222002259049,2.697182257226839e-6,-2.255654425324677e-8,0.004563218140920344,2.6200473503104345e-6,-2.2380369070183947e-8,0.004563285177328307,2.4142697533356353e-6,-2.1911080480621846e-8,0.00456346510562536,2.1474700508499156e-6,-2.1302898831592876e-8,0.0045637614855055355,1.8952029862123072e-6,-2.0727876983910757e-8,0.004564146109374209,1.717390042126911e-6,-2.0322347502066937e-8,0.004564573586655692,1.6467160412382832e-6,-2.0160696512706902e-8,0.004564995621143562,1.6879982482464885e-6,-2.025403919365333e-8,0.004565371098880404,1.823849272809698e-6,-2.0563061761098215e-8,0.004565671575998424,2.0224636955771143e-6,-2.1015577494141815e-8,0.004565883304822525,2.2451570701558744e-6,-2.1523520714831093e-8,0.004566007062175339,2.4528861969496664e-6,-2.1997743592595424e-8,0.004566056469157245,2.6116666971517507e-6,-2.23604574329312e-8,0.004566055109573586,2.6967378051573467e-6,-2.2554903643749895e-8,0.004566032787591015,2.6952576374760298e-6,-2.2551638035756678e-8,0.004566021340058094,2.6074130943391173e-6,-2.2351082445335482e-8,0.004566050456020915,2.445916611802514e-6,-2.198229461679592e-8,0.004566143978834918,2.234071638222029e-6,-2.1498460356284963e-8,0.004566316991076654,2.002834908710053e-6,-2.0970174692905903e-8,0.004566573698773829,1.7872369419549948e-6,-2.047735188978444e-8,0.004566906025496633,1.6222415688750605e-6,-2.009987915744285e-8,0.004567292941820179,1.5378947751270364e-6,-1.9906572258774763e-8,0.0045677009482845456,1.5534732761251689e-6,-1.9941722705096247e-8,0.004568086845586504,1.6706423254153708e-6,-2.0209304708076832e-8,0.004568404479915657,1.8669001932336232e-6,-2.065787129431821e-8,0.004568616641222311,2.0927296815380814e-6,-2.1174057753546027e-8,0.004568710628782926,2.277737563029436e-6,-2.159677431671749e-8,0.004568710906383361,2.3496980887248315e-6,-2.1760931647364762e-8,0.004568678450507578,2.2627328227331568e-6,-2.1561913449607736e-8,0.004568690934995052,2.0202730399911163e-6,-2.100789416692359e-8,0.004568811461316786,1.6765736725135978e-6,-2.0223021008261412e-8,0.004569064102334118,1.3138502582226867e-6,-1.939501198865483e-8,0.00456942983638702,1.0095623883627573e-6,-1.870048308376553e-8,0.0045698609228537225,8.126805895776015e-7,-1.8250956905805127e-8,0.004570301299600792,7.370286449055343e-7,-1.8077863586350383e-8,0.004570702395164331,7.675146472653699e-7,-1.8146849034032396e-8,0.004571031105591736,8.712119800734532e-7,-1.838299920858834e-8,0.004571271553897738,1.0077872223193491e-6,-1.8694474593890068e-8,0.004571423431715869,1.1371794672960694e-6,-1.898988427190855e-8,0.00457149912894306,1.224623094486609e-6,-1.9189713805360918e-8,0.004571520661368493,1.2439529482437433e-6,-1.9233970167685107e-8,0.004571516461258664,1.1798659800376192e-6,-1.90875063062554e-8,0.004571517887299565,1.0292685411183112e-6,-1.874320617434184e-8,0.00457155544903053,8.015811947188519e-7,-1.822266996676711e-8,0.004571654890494846,5.177527012148897e-7,-1.757386049492885e-8,0.0045718335249696285,2.0776980474633583e-7,-1.686531683855287e-8,0.004572097388308316,-9.323396016944465e-8,-1.6177255542095043e-8,0.004572439665645757,-3.4987692521596087e-7,-1.5590463436344316e-8,0.004572840644505964,-5.31972816140779e-7,-1.5173961796713732e-8,0.004573269348815289,-6.200415053200593e-7,-1.4972436045635267e-8,0.004573687024026574,-6.10406095595246e-7,-1.4994491965318193e-8,0.004574052809641157,-5.192579563073559e-7,-1.520320779417572e-8,0.00457433198222599,-3.843987328357727e-7,-1.5512049283710714e-8,0.004574506433080039,-2.6231970700412053e-7,-1.57915871799184e-8,0.004574585098804139,-2.1787955603130257e-7,-1.5893271807468845e-8,0.0045746091849351205,-3.056827632750247e-7,-1.569220003592137e-8,0.004574645498676162,-5.476968892825376e-7,-1.513834525051923e-8,0.004574765267068838,-9.184797312588896e-7,-1.4290196294897466e-8,0.00457501606601899,-1.3499749934384158e-6,-1.3303575679860455e-8,0.004575402559457306,-1.7569182650377685e-6,-1.2373436343486388e-8,0.00457588755670308,-2.0690376161348062e-6,-1.1660288023729968e-8,0.004576410675222101,-2.2521266223356963e-6,-1.1242149216779647e-8,0.004576911396180024,-2.3103385627944873e-6,-1.1109414454615705e-8,0.004577344958268909,-2.275047092560445e-6,-1.119036156480763e-8,0.004577688009744958,-2.190125367673378e-6,-1.1384764724171442e-8,0.00457793703023403,-2.1001362793857524e-6,-1.1590799048558753e-8,0.004578103680851678,-2.0432033769984585e-6,-1.1721260373927869e-8,0.004578209903486739,-2.0476287663152695e-6,-1.1711299731405369e-8,0.00457828387494594,-2.1305649056463137e-6,-1.1521549135013692e-8,0.004578356691217041,-2.2974938653969773e-6,-1.113942510021554e-8,0.004578459254883159,-2.5420904405371936e-6,-1.0579494532798996e-8,0.004578618975408969,-2.8466169571197294e-6,-9.882523233547e-9,0.004578856169100808,-3.183321162571054e-6,-9.112167432714705e-9,0.004579180478803452,-3.5174083811508843e-6,-8.34808453913955e-9,0.004579588120477424,-3.8118316727193404e-6,-7.674971745318212e-9,0.004580060934558044,-4.03352156185739e-6,-7.168392305513895e-9,0.0045805679854873955,-4.1600968235078126e-6,-6.87951141941344e-9,0.0045810699651512255,-4.185692981165825e-6,-6.821782230335321e-9,0.00458152603375295,-4.124467505914989e-6,-6.962856854404446e-9,0.004581902189684743,-4.010657797913334e-6,-7.224349646031663e-9,0.004582179915574498,-3.894438306832133e-6,-7.491268811747432e-9,0.004582363424246814,-3.833098119282915e-6,-7.632267271587255e-9,0.004582483126184382,-3.8777855317296025e-6,-7.53011848341852e-9,0.004582592398102796,-4.057840675385612e-6,-7.117693448106915e-9,0.004582755475052093,-4.367487092300224e-6,-6.408428922268497e-9,0.004583027684494128,-4.761913130848646e-6,-5.505193981758026e-9,0.004583434904318093,-5.1682652158940795e-6,-4.575001218916299e-9,0.004583962740856525,-5.509717091332434e-6,-3.793847647778333e-9,0.004584562235224711,-5.731726984261732e-6,-3.286608037184449e-9,0.0045851690079899594,-5.8173444046123675e-6,-3.092013230972495e-9,0.004585724984926677,-5.785936446522613e-6,-3.1655856948169594e-9,0.004586192672434863,-5.680003803249362e-6,-3.4098510201368928e-9,0.004586558909587067,-5.549240041603622e-6,-3.710862720240599e-9,0.004586831090544941,-5.438473165345392e-6,-3.965824489806852e-9,0.004587030516411275,-5.381337431846182e-6,-4.097587491428378e-9,0.004587186126494469,-5.398361853965937e-6,-4.059053627389166e-9,0.0045873298103882906,-5.49731379182367e-6,-3.8324359563939324e-9,0.004587493095288864,-5.6741958005571095e-6,-3.427014054705955e-9,0.0045877044693880785,-5.914235263036652e-6,-2.876857912876998e-9,0.004587986651218072,-6.192958116809043e-6,-2.238299632400325e-9,0.004588353448843592,-6.477950803344133e-6,-1.5858038797377467e-9,0.004588806428404769,-6.73216177730537e-6,-1.0043412823020856e-9,0.00458933233628059,-6.919340188748711e-6,-5.769299288868636e-10,0.004589902743292579,-7.011376771941958e-6,-3.6786881572565e-10,0.004590477310455618,-6.996130497857601e-6,-4.0485922692968167e-10,0.004591011167147137,-6.883260760486553e-6,-6.656513658249578e-10,0.0045914652682251846,-6.705371049354524e-6,-1.075393733113511e-9,0.004591817010039603,-6.512924106794449e-6,-1.5182606557942965e-9,0.004592067796621043,-6.363468442006583e-6,-1.8621675068497396e-9,0.004592244944227824,-6.307637731525589e-6,-1.9909320328163395e-9,0.004592396800370081,-6.375463343972728e-6,-1.835720290287429e-9,0.004592581636072272,-6.566741952320174e-6,-1.397147556305703e-9,0.004592852503308843,-6.848670800862258e-6,-7.506592754098574e-10,0.0045932418347822595,-7.16265852740837e-6,-3.085310633349787e-11,0.004593750787773998,-7.439775464126724e-6,6.039907256439864e-10,0.004594348004365676,-7.620693551409611e-6,1.0176568839792315e-9,0.004594979307958952,-7.67285027729872e-6,1.1353900564086016e-9,0.004595584733360852,-7.597882344516838e-6,9.60993606260401e-10,0.004596115629330661,-7.427042036220201e-6,5.663444100107817e-10,0.004596545284004681,-7.208277314545172e-6,6.172570217697634e-11,0.004596870828408168,-6.9916428475073475e-6,-4.377209163440163e-10,0.004597108555701069,-6.818392915343977e-6,-8.371051908542961e-10,0.004597286586221487,-6.715617670183615e-6,-1.0741512526115635e-9,0.004597438018468549,-6.6953943241077795e-6,-1.1211643140079087e-9,0.004597595917342151,-6.7563461785649045e-6,-9.814428534041288e-10,0.0045977900559172604,-6.8858632210796456e-6,-6.841521467843064e-10,0.004598044659033155,-7.062128212677125e-6,-2.796287018101613e-10,0.004598376318128057,-7.255916920005681e-6,1.6480339335871812e-10,0.004598791545151504,-7.4327601793754e-6,5.698408862789437e-10,0.004599284036273952,-7.55641510487658e-6,8.521963256757693e-10,0.004599832545317101,-7.59449169585154e-6,9.37519703522967e-10,0.004600401089893143,-7.526267837569374e-6,7.783330705853753e-10,0.0046009435048163455,-7.351117380604259e-6,3.7337668699399923e-10,0.004601413323426574,-7.094082392306315e-6,-2.1959916877791475e-10,0.004601777276461345,-6.804398311453375e-6,-8.872456883447427e-10,0.004602027574734469,-6.544807205465784e-6,-1.4852269544859042e-9,0.004602187108824936,-6.373998484428838e-6,-1.878640796994688e-9,0.004602304305622246,-6.328662725555859e-6,-1.983290254130587e-9,0.004602439234285484,-6.4122851305789306e-6,-1.7913894121004542e-9,0.004602646341656962,-6.59454075292182e-6,-1.372856112257814e-9,0.004602959791749618,-6.820555679744346e-6,-8.539567811146143e-10,0.004603385401025903,-7.026168406663905e-6,-3.8223413598513426e-10,0.004603900535041509,-7.154432726648315e-6,-8.862971018962839e-11,0.004604461221360877,-7.16909923779504e-6,-5.6530923583887666e-11,0.004605014161836207,-7.061911347469658e-6,-3.0496913721986693e-10,0.004605510173710997,-6.852198505821913e-6,-7.894778705239851e-10,0.004605915231864156,-6.579480498016876e-6,-1.4190378636351609e-9,0.004606216233404941,-6.291994615044852e-6,-2.0824711583876744e-9,0.00460642071017142,-6.035108556079831e-6,-2.675171494544614e-9,0.00460655193149057,-5.842863718623184e-6,-3.1186589302558516e-9,0.004606641995139615,-5.733972110264688e-6,-3.369853455113043e-9,0.004606725264452894,-5.711711571864843e-6,-3.4213163304000836e-9,0.0046068334424430035,-5.7661813773756325e-6,-3.2960088168680032e-9,0.004606992447073734,-5.877366283212291e-6,-3.0401786490361465e-9,0.004607220525040382,-6.01804827384349e-6,-2.7166204947669695e-9,0.004607526828035787,-6.156368380259616e-6,-2.3987754818787228e-9,0.004607909878637184,-6.2584771004198995e-6,-2.1646433927517645e-9,0.004608355861891447,-6.292108699703443e-6,-2.0885544550141327e-9,0.004608837460403657,-6.231941022115572e-6,-2.2288041686048496e-9,0.004609314869247811,-6.066944432541149e-6,-2.610692390028512e-9,0.004609741181179981,-5.808287594175388e-6,-3.208296374163034e-9,0.004610073532643847,-5.494016982094601e-6,-3.9337217762102935e-9,0.004610288280096579,-5.185259144008995e-6,-4.645941435360547e-9,0.004610393895995997,-4.950873931477467e-6,-5.186269288801948e-9,0.004610433184336685,-4.844246198175972e-6,-5.431895389162019e-9,0.004610470758879338,-4.8829096485003395e-6,-5.342766223918112e-9,0.0046105707030473,-5.0419564476459976e-6,-4.976589310976798e-9,0.004610775446429694,-5.26417400954597e-6,-4.465310329754646e-9,0.004611094963682681,-5.480348310975678e-6,-3.968302033161426e-9,0.00461150823724263,-5.62972692844612e-6,-3.625329611994953e-9,0.004611973094222571,-5.673786679284628e-6,-3.524987578971608e-9,0.0046124390559712505,-5.60146915226002e-6,-3.692726761576285e-9,0.004612859222188488,-5.427288532920816e-6,-4.095184948750271e-9,0.004613199097686521,-5.184761096077944e-6,-4.655216115005645e-9,0.00461344157660515,-4.917463952163088e-6,-5.272388730713527e-9,0.004613587996069912,-4.669665926120923e-6,-5.844552407820035e-9,0.004613655691602776,-4.478251084401866e-6,-6.28652082530562e-9,0.004613673077859672,-4.367267921755222e-6,-6.542744128551488e-9,0.00461367367651798,-4.345651474038695e-6,-6.592631310893555e-9,0.0046136904516331,-4.407814373872608e-6,-6.449178045460803e-9,0.004613751389181142,-4.536239263420983e-6,-6.152919507168062e-9,0.004613876649815567,-4.704994955452618e-6,-5.763751856803909e-9,0.004614077028175075,-4.883303608630905e-6,-5.352690069082215e-9,0.004614353162834188,-5.038827337005442e-6,-4.994329710158694e-9,0.004614695036423012,-5.140875843306533e-6,-4.759499974144619e-9,0.004615081647533657,-5.164078436357073e-6,-4.706796509128987e-9,0.004615481345908867,-5.093156815280933e-6,-4.871507157630509e-9,0.004615854140456318,-4.928932317867542e-6,-5.251665030544923e-9,0.004616157793161933,-4.694284295014727e-6,-5.794263848231378e-9,0.004616358878782183,-4.436656622864292e-6,-6.389541647842568e-9,0.004616447225878722,-4.222062557520083e-6,-6.884973524270293e-9,0.004616447316459371,-4.117217975337249e-6,-7.126660174101772e-9,0.0046164171712829195,-4.163817419832329e-6,-7.018720722844495e-9,0.004616430002982171,-4.358091358751388e-6,-6.5703061256921416e-9,0.004616545920780777,-4.64955458388336e-6,-5.898225015384205e-9,0.004616789519416018,-4.961068379082266e-6,-5.180477898492885e-9,0.004617144952363664,-5.21797868115541e-6,-4.5890532040936815e-9,0.004617567428571435,-5.370589400078979e-6,-4.238257150629672e-9,0.004618001377383055,-5.4024523567296e-6,-4.165786813726474e-9,0.00461839617858386,-5.326689531338634e-6,-4.341319230810882e-9,0.004618715659086564,-5.176427103811998e-6,-4.688546619249612e-9,0.004618941704013463,-4.994299138923035e-6,-5.1092602716603065e-9,0.0046190738457956015,-4.823500218588578e-6,-5.503860695653606e-9,0.004619126539673815,-4.701021915286869e-6,-5.786919842108562e-9,0.00461912513350184,-4.6530002781485684e-6,-5.897985711351209e-9,0.004619101113456684,-4.692128922859444e-6,-5.8076723886911916e-9,0.004619087174435325,-4.817110070681227e-6,-5.5190059356818914e-9,0.004619112672785507,-5.013950645613634e-6,-5.064416509080086e-9,0.004619199956383798,-5.258745206492392e-6,-4.499227652478228e-9,0.004619361925076508,-5.521396310506229e-6,-3.892989039720409e-9,0.004619600861690062,-5.769630238686212e-6,-3.3201995651143257e-9,0.0046199082837785595,-5.972903127371703e-6,-2.851352592334347e-9,0.004620265553426885,-6.106140175320044e-6,-2.5443702178223045e-9,0.004620645157437597,-6.15344235394916e-6,-2.4360418005486742e-9,0.004621012910332626,-6.111969284666793e-6,-2.5329705998129033e-9,0.004621331889116244,-5.995896088586415e-6,-2.8023280874564467e-9,0.004621569196957076,-5.839257062531263e-6,-3.16525563366286e-9,0.004621705946598681,-5.6949592448301445e-6,-3.499245426945735e-9,0.0046217486369424686,-5.626269776579186e-6,-3.6579976183436843e-9,0.004621736346891752,-5.688589628394338e-6,-3.5136773121236357e-9,0.004621735560203208,-5.9056093086997374e-6,-3.011976455429588e-9,0.004621818663207311,-6.252544277839716e-6,-2.2106262735571202e-9,0.004622034186749106,-6.660327133482274e-6,-1.269447535738715e-9,0.004622386277920894,-7.0421296244785226e-6,-3.8895869566759596e-10,0.004622835921998608,-7.326987257096725e-6,2.672247922603419e-10,0.004623320597655784,-7.481387241366695e-6,6.22078154458821e-10,0.004623778166074979,-7.511256501722334e-6,6.895832720469361e-10,0.0046241631750252934,-7.4503005879202574e-6,5.476957123973267e-10,0.0046244526906444455,-7.344777280885875e-6,3.031921981158643e-10,0.004624644751104253,-7.241142852555951e-6,6.324918068849496e-11,0.0046247535293354415,-7.178329664083658e-6,-8.227089394819571e-11,0.004624803929537004,-7.1838293799132266e-6,-6.982495105222414e-11,0.004624826696230001,-7.272134715425384e-6,1.3414464882997706e-10,0.004624854095060916,-7.444583539571314e-6,5.327371256362688e-10,0.004624916026302616,-7.690267618702546e-6,1.1006291093985203e-9,0.004625036574007785,-7.98793405485864e-6,1.7885067099525766e-9,0.004625231133799637,-8.30888821439031e-6,2.5298802519654072e-9,0.004625504428824734,-8.620815020618825e-6,3.2500039740028935e-9,0.004625849747329165,-8.892151827359156e-6,3.875986187591585e-9,0.0046262495157665465,-9.09652545200698e-6,4.346970267559263e-9,0.004626677147753625,-9.216883627944467e-6,4.623605244888573e-9,0.004627100098948487,-9.249002221467704e-6,4.6961442314090165e-9,0.004627484100502901,-9.204044867914665e-6,4.590434874603475e-9,0.004627798689161824,-9.109776567161958e-6,4.3708109803278244e-9,0.004628024187515499,-9.0095003276215e-6,4.1376398888795614e-9,0.004628159602392367,-8.956974239448121e-6,4.015455545081188e-9,0.004628229255540625,-9.005485803645908e-6,4.127521100134283e-9,0.004628283803510658,-9.1910726190435e-6,4.556926589182645e-9,0.004628390435834369,-9.514454774165462e-6,5.304877259037512e-9,0.004628610918423801,-9.931843970056032e-6,6.269651296939101e-9,0.004628975503068454,-1.03648245865506e-5,7.2696549997176675e-9,0.004629467998225569,-1.0728850454589621e-5,8.10939549229837e-9,0.004630032512152586,-1.0965482676576773e-5,8.65397700401509e-9,0.004630597398772655,-1.1060056137677217e-5,8.86984853736169e-9,0.004631101082919748,-1.1038122203419039e-5,8.816457412620772e-9,0.004631507147841215,-1.0948389067229884e-5,8.606690701628071e-9,0.004631806481354592,-1.0844288661248472e-5,8.364204739480547e-9,0.004632011465302068,-1.0771358781577292e-5,8.194291991699351e-9,0.004632147892557216,-1.0761401585255883e-5,8.170455351365712e-9,0.004632247893263616,-1.0831308542105932e-5,8.331728476942694e-9,0.00463234477781505,-1.0984114505098195e-5,8.685073680741978e-9,0.004632469369290628,-1.1210771926742844e-5,9.209415190899736e-9,0.004632647141513031,-1.1492171204089592e-5,9.860291714348777e-9,0.004632895765556187,-1.1801489544677315e-5,1.0575356211698413e-8,0.004633222987185644,-1.2107161747595294e-5,1.1281365019742708e-8,0.004633625109689717,-1.2376748980879223e-5,1.1903214390625413e-8,0.004634086659004174,-1.2581610090192167e-5,1.2374746891829162e-8,0.004634581752502566,-1.2701806877036646e-5,1.2650024924146413e-8,0.004635077356706937,-1.273044813037253e-5,1.2713298103112125e-8,0.004635538281190807,-1.2676599340062202e-5,1.2585709492729057e-8,0.004635933426539173,-1.2565907068775515e-5,1.2326775887080312e-8,0.0046362425090470906,-1.2438342120984666e-5,1.202920592778017e-8,0.004636462294497865,-1.234271921279755e-5,1.1806193185873564e-8,0.004636611028747824,-1.232775517799123e-5,1.1770617073140064e-8,0.004636729067608224,-1.2429993538057063e-5,1.2006973681361427e-8,0.004636873204322435,-1.2660614669240317e-5,1.2540806146547426e-8,0.004637103047741207,-1.2995764214321633e-5,1.3316407776853431e-8,0.004637461294852211,-1.3376967540621544e-5,1.4197950262497705e-8,0.00463795534065098,-1.3726217412767458e-5,1.5004554273269622e-8,0.004638550845381015,-1.3972478316380603e-5,1.5571711376454045e-8,0.004639183148953752,-1.4077211752893863e-5,1.5810383357853653e-8,0.0046397812865391925,-1.4045280259926954e-5,1.5732214181573113e-8,0.0046402914283477465,-1.3917086868911308e-5,1.5431235497281092e-8,0.004640688992994678,-1.3749519789539588e-5,1.50396004361683e-8,0.004640977811977925,-1.3597154104758875e-5,1.4683939035007512e-8,0.0046411816590931215,-1.3500634643284917e-5,1.4458435271925997e-8,0.004641334337283517,-1.3482814716284878e-5,1.4415936504639937e-8,0.004641471841569615,-1.3549864644392499e-5,1.45705737914381e-8,0.004641627345314647,-1.36943373473814e-5,1.4904873429144573e-8,0.004641828265389255,-1.3898382253809021e-5,1.5377192152694978e-8,0.004642094369945667,-1.4136568493739574e-5,1.592827642183505e-8,0.004642436229981527,-1.4378530825307724e-5,1.648746362443435e-8,0.004642853793025203,-1.4591962398589605e-5,1.6979710468902657e-8,0.00464333536372152,-1.4746476784586312e-5,1.7334602810121096e-8,0.004643857739129038,-1.481845010519349e-5,1.749756817785199e-8,0.00464438837763796,-1.479624509342569e-5,1.7441917675913e-8,0.0046448901141322415,-1.4684572553892183e-5,1.7178880316379137e-8,0.00464532817306209,-1.4506395760338885e-5,1.676197448758261e-8,0.0046456782783954416,-1.4300948688484878e-5,1.628240091514535e-8,0.004645933875498211,-1.4117326680498562e-5,1.5854168093428857e-8,0.004646110289799332,-1.4004423473821114e-5,1.5590715394014384e-8,0.004646244116896511,-1.399911276381716e-5,1.5577449679665026e-8,0.004646387005593405,-1.41153100211975e-5,1.5846355805771457e-8,0.004646594141764705,-1.4337032558028205e-5,1.6359950354097322e-8,0.004646909305258094,-1.4618613247030586e-5,1.701188561366317e-8,0.0046473503812339495,-1.4894178333601433e-5,1.7649042879564176e-8,0.004647900916773948,-1.5095625610264924e-5,1.811329983033688e-8,0.004648512809389593,-1.5173842404411922e-5,1.829077431406508e-8,0.004649120903019922,-1.5114403601433032e-5,1.8148248545685655e-8,0.004649663817187577,-1.4940331193331636e-5,1.7739550224659373e-8,0.004650101646361556,-1.4701189768492982e-5,1.7180166575556488e-8,0.004650423559198932,-1.4455016176381626e-5,1.6605176919502795e-8,0.004650644665764515,-1.4251827770794912e-5,1.613086614501808e-8,0.004650796624019296,-1.4124141025250696e-5,1.583268895658235e-8,0.004650917415804542,-1.4084914955533756e-5,1.5740543813909623e-8,0.004651043598431591,-1.4130241265291127e-5,1.5845089278510927e-8,0.0046512057278376125,-1.4243729279101672e-5,1.6107974164142077e-8,0.0046514261340793615,-1.4400690454054686e-5,1.6471579916206996e-8,0.00465171789456136,-1.4571531090473221e-5,1.6866922638427443e-8,0.004652084137226091,-1.4724599130893931e-5,1.7220302263998086e-8,0.00465251732741125,-1.4829134893015994e-5,1.746020024223448e-8,0.004652998819609395,-1.4859005735948932e-5,1.7525983107701823e-8,0.004653499526234626,-1.4797478165342453e-5,1.7378984205893643e-8,0.004653982822792938,-1.4642447874902636e-5,1.701461884775316e-8,0.004654410522758944,-1.4410540357957179e-5,1.6471859896107837e-8,0.004654751676673082,-1.4137726039344877e-5,1.5834608479389963e-8,0.0046549921899199246,-1.3874312315314267e-5,1.5219993013443092e-8,0.004655141733859297,-1.3673984905797297e-5,1.4752835810267254e-8,0.004655234441725839,-1.3579420898515158e-5,1.4532174851046341e-8,0.00465532189043984,-1.3609191262358246e-5,1.460084197006534e-8,0.00465545992364021,-1.3750758727023153e-5,1.4929278998332993e-8,0.004655693328327301,-1.3962304090208998e-5,1.5419907146882814e-8,0.004656043110456753,-1.4183068768481111e-5,1.5931259431933548e-8,0.0046565001678516875,-1.434927671056179e-5,1.631501554350779e-8,0.004657027305155954,-1.4411158052329369e-5,1.6455548921583325e-8,0.004657569281103155,-1.434612452943196e-5,1.630052615942731e-8,0.004658068049326739,-1.41639120076071e-5,1.5872851697627348e-8,0.0046584782426453645,-1.3901969676808915e-5,1.525993191601153e-8,0.0046587776708922075,-1.3613082255371558e-5,1.458484088844579e-8,0.004658969832612916,-1.3350233172794423e-5,1.397103491590227e-8,0.004659079003760188,-1.3154157206487545e-5,1.3513330900768914e-8,0.004659141208384155,-1.3046837117797856e-5,1.3262761688597618e-8,0.004659194957403009,-1.3031068730407019e-5,1.3225604937819598e-8,0.004659274330167408,-1.3094026415269862e-5,1.3371747416260096e-8,0.0046594050651191455,-1.3212282800757067e-5,1.3646426315830232e-8,0.004659602999671059,-1.3356523513515203e-5,1.3981232874721674e-8,0.004659873789227049,-1.3495310852038219E-05,1.430287645128278e-8,0.004660213024776066,-1.359808005239616e-5,1.4540151248134795e-8,0.00466060633304002,-1.3637992835869933e-5,1.4630579714044076e-8,0.00466102965981684,-1.3595349253137439e-5,1.4528372069494455e-8,0.004661450563042212,-1.3461902340691184e-5,1.421449651710166e-8,0.004661831730217652,-1.3245578696188559e-5,1.3707678548966238e-8,0.004662137755511344,-1.2973872164911173e-5,1.307227092715899e-8,0.004662344999202101,-1.2693012432152884e-5,1.2416231574338447e-8,0.0046624519407560735,-1.2460082818593682E-05,1.1872648439435237e-8,0.004662485004202495,-1.2327880026386206e-5,1.1564379854227212e-8,0.004662494901102442,-1.2327021407297365e-5,1.1562375295099926e-8,0.004662542595555069,-1.24533420275431e-5,1.185644126351985e-8,0.0046626799506357805,-1.2667322066857839e-5,1.2354101779958266e-8,0.004662933402383711,-1.2906251170550697e-5,1.2909087247827492e-8,0.004663297073919368,-1.3103506845817271e-5,1.3366273288023952e-8,0.004663736575308624,-1.3207064274389993e-5,1.360471420722314e-8,0.00466420034455511,-1.3191474217760806e-5,1.3565421464328888e-8,0.004664633821846689,-1.3061257113502004e-5,1.3259181775894936e-8,0.0046649923454657955,-1.284657142486857e-5,1.2756441236261749e-8,0.0046652500093320995,-1.2593575575264028e-5,1.2164869400910327e-8,0.004665403125135055,-1.2352518526780268e-5,1.160163133759852e-8,0.004665468293837048,-1.2166612359423423e-5,1.1167452954822372e-8,0.004665476372929213,-1.2064179756235221e-5,1.092829431744967e-8,0.004665464527011558,-1.205536188602705e-5,1.090765701107904e-8,0.00466546866248559,-1.2133139463074206e-5,1.1088976843000324e-8,0.004665517840456056,-1.2277264814901737e-5,1.1424838647350068e-8,0.00466563119751025,-1.245936221956031e-5,1.1848924275875613e-8,0.004665817006354218,-1.2647802841822536e-5,1.2287410809984839e-8,0.004666073053110041,-1.281166414378168e-5,1.2668190698852117e-8,0.004666387542373383,-1.292381306206243e-5,1.2928022906658796e-8,0.004666740117300406,-1.2963606556451226e-5,1.3018805625924864e-8,0.004667103089208761,-1.2919782368290056e-5,1.2914336858847914e-8,0.004667443516313451,-1.2793855787151033e-5,1.261828935995056e-8,0.004667727216102982,-1.2603634007130076e-5,1.2172443742013038e-8,0.004667925717887047,-1.2385223968453717e-5,1.1661335221281164e-8,0.004668025982969037,-1.2190587373047782e-5,1.1206425769168459e-8,0.004668040124918859,-1.2077562615726495e-5,1.0942668267392677e-8,0.004668009332740903,-1.2092131257680859e-5,1.0977046211594681e-8,0.004667995963365245,-1.2248776168792324e-5,1.1342816317376177e-8,0.004668063394253834,-1.2519839245074089e-5,1.1974895693262607e-8,0.004668252213447853,-1.2842352538933383e-5,1.272604191553377e-8,0.004668565476656956,-1.3140346753934688e-5,1.3419026252516424e-8,0.004668970137839872,-1.3350798188378615e-5,1.390712963685913e-8,0.00466941145688206,-1.3440881943664238e-5,1.4114239617360718e-8,0.004669831352637258,-1.3411820715628956e-5,1.4043647933471819e-8,0.004670183125758375,-1.3292231840828618e-5,1.3762398499525709e-8,0.004670439551567326,-1.3126587614643615e-5,1.3374333363953765e-8,0.0046705947835942166,-1.2963357965618242e-5,1.2992486691062576e-8,0.004670661871582767,-1.2845325839862214e-5,1.2716578643366719e-8,0.004670667699865216,-1.2802931475699457e-5,1.2617538625965364e-8,0.004670646681376949,-1.2850763728081769e-5,1.2729307862896565e-8,0.00467063427678483,-1.2987111806417097e-5,1.304775137827414e-8,0.004670661343090428,-1.3196164916613432e-5,1.353577457443399e-8,0.004670750064167247,-1.3452020070287972e-5,1.4132715042564545e-8,0.004670911777831962,-1.3723508501828329e-5,1.4765677409608379e-8,0.004671146597861861,-1.397894625705489e-5,1.5360669460035923e-8,0.004671444375319671,-1.4190158848444865e-5,1.5851986140975655e-8,0.004671786392194452,-1.4335593144657587e-5,1.6189419371909977e-8,0.004672147385320302,-1.440277455442945e-5,1.634395024210514e-8,0.004672497882915822,-1.439047323877524e-5,1.63128171558708e-8,0.004672807221955093,-1.4310754474099981e-5,1.6124358297051074e-8,0.004673047967062916,-1.4190585450886653e-5,1.5841798023873977e-8,0.004673202402940901,-1.4071681804180103e-5,1.556283414706472e-8,0.004673270739720579,-1.4006175424222032e-5,1.5409373309145138e-8,0.004673278417874302,-1.4045585886180635e-5,1.5501616287218707e-8,0.0046732771097705355,-1.4223112429589761e-5,1.5916656213600744e-8,0.0046733335426375954,-1.4535231411889031e-5,1.6645637433110732e-8,0.0046735060396706435,-1.4934337773744007e-5,1.7576826633511244e-8,0.004673819189801707,-1.5341741234222534e-5,1.852618723245616e-8,0.004674252268579398,-1.5677278964770178e-5,1.9306615085994873e-8,0.004674748944885229,-1.5888924620635015e-5,1.9797027686382072e-8,0.004675240882951573,-1.5966460031890974e-5,1.997414641383107e-8,0.004675670613593522,-1.593625842060622e-5,1.9900119679567408e-8,0.0046760041793818975,-1.5845643844857367e-5,1.9685820881802324e-8,0.00467623309851158,-1.5746690960885734e-5,1.945294625392006e-8,0.004676369818220206,-1.568457041001168e-5,1.930686205008403e-8,0.004676440772138309,-1.5691203227189234e-5,1.932191376955323e-8,0.004676479528732202,-1.5782987495501686e-5,1.9536206216259085e-8,0.004676520954653062,-1.5961033347667108e-5,1.995215400474037e-8,0.004676596422060922,-1.6212951573783454e-5,2.0540610281932875e-8,0.004676730027189161,-1.6515837372076925e-5,2.1247813816331533e-8,0.004676935979999788,-1.6840152095742693e-5,2.2004505046599017e-8,0.004677217318990602,-1.7154102391278926e-5,2.2736247570911134e-8,0.00467756602649892,-1.7428077777037665e-5,2.3373860561672378e-8,0.004677964479425937,-1.763863379374355e-5,2.3862716425329537e-8,0.0046783879238457065,-1.7771596392012232e-5,2.4169923607945506e-8,0.004678807583239352,-1.782417897198473e-5,2.4289203675387195e-8,0.004679194192743565,-1.780618647288843e-5,2.4243687912563586e-8,0.004679521978008149,-1.7740311713799754e-5,2.4086639550366526e-8,0.0046797732769125674,-1.7661270247751158e-5,2.3899445231071237e-8,0.004679943926326737,-1.7612934963310745e-5,2.378485408762777e-8,0.00468004874105327,-1.76419904879494e-5,2.38520116422879e-8,0.0046801248137174605,-1.7786845602176726e-5,2.4190427202702886e-8,0.004680228593309382,-1.806263404032576e-5,2.4834927068767032e-8,0.004680422650323219,-1.844760764224442e-5,2.5734020536887993e-8,0.0046807527992763975,-1.8880759513499523e-5,2.674458018490809e-8,0.0046812254701966765,-1.9278549072575866e-5,2.7671099756894892e-8,0.004681800427430815,-1.9566523632612258e-5,2.8339657629219468e-8,0.004682406079741662,-1.9708395147643984e-5,2.8665861411746463e-8,0.004682968366748158,-1.9715465849410977e-5,2.867679352392317e-8,0.004683435608529261,-1.9634266355882566e-5,2.8481924313167707e-8,0.0046837883337889595,-1.952439154406978e-5,2.822106187628867e-8,0.004684035487230924,-1.9439673756009193e-5,2.8020203083391307e-8,0.004684204485088165,-1.941806770279495e-5,2.7967929163297136e-8,0.00468433116167156,-1.9479029937500837e-5,2.8109428435669545e-8,0.004684452186456466,-1.9625176187452407e-5,2.845049597540157e-8,0.004684600168465979,-1.984553498761316e-5,2.896517248241957e-8,0.0046848006032723915,-2.0118998764571928e-5,2.9603786467988204e-8,0.0046850698397548065,-2.041773635670475e-5,3.0300926191513015e-8,0.004685413783371999,-2.0710763850050337e-5,3.098384943257845e-8,0.00468582740770953,-2.096777642395736e-5,3.1581541361914726e-8,0.004686295292293071,-2.1163165376747107e-5,3.203417446835051e-8,0.004686793459251504,-2.127986172954694e-5,3.230208207219933e-8,0.004687292561605285,-2.1312386356273433e-5,3.2372809600881676e-8,0.0046877621105637915,-2.126854613740853e-5,3.2264991110637834e-8,0.004688175258111988,-2.1169442043346494e-5,3.202831932504239e-8,0.004688513640797768,-2.104761290672734e-5,3.173919627450822e-8,0.004688771804655766,-2.0943260277204035e-5,3.149188772523059e-8,0.004688960704666771,-2.089847309766487e-5,3.138494951118754e-8,0.004689109427812848,-2.0949239557927876e-5,3.150244410680444e-8,0.0046892635417487075,-2.111546408427255e-5,3.189053130139887e-8,0.004689477922148566,-2.139077308886334e-5,3.253367882818093e-8,0.004689802698454854,-2.1736387602686895e-5,3.3340499356742825e-8,0.004690264446209853,-2.2085256460148676e-5,3.415361339714332e-8,0.004690850572478942,-2.2360461861946586e-5,3.4792836260214054e-8,0.004691507905376526,-2.2503277074614084e-5,3.512087981369812e-8,0.0046921603699025816,-2.2496547289027997e-5,3.5098078105129547e-8,0.004692737515622717,-2.2369205648309436e-5,3.4792895698371355e-8,0.0046931977430484575,-2.218033828194287e-5,3.434443116540985e-8,0.004693535450245421,-2.19946049648199e-5,3.390460552743203e-8,0.004693773572452373,-2.1862829343110403e-5,3.359254933534034e-8,0.0046939501630360635,-2.181362607661693e-5,3.3475032195887265e-8,0.004694106408800557,-2.1853986931876104e-5,3.356800326714713e-8,0.004694278929507639,-2.1974145041739544e-5,3.384814078091561e-8,0.004694495986966662,-2.2153135943492177e-5,3.4265942399950725e-8,0.00469477605708682,-2.236343686777121e-5,3.475658838964401e-8,0.004695127385027143,-2.25745849279392e-5,3.5248415385464474e-8,0.004695547882976639,-2.2756322352379375e-5,3.567032900021728e-8,0.004696025355911659,-2.2881787560675736e-5,3.595935203368904e-8,0.004696538399017729,-2.2930998865573962e-5,3.6068830865346576e-8,0.0046970585118214685,-2.2894428695522926e-5,3.597678695177047e-8,0.0046975538398428066,-2.277591695522771e-5,3.569266368776685e-8,0.004697994417085737,-2.2593897361128732e-5,3.52601055038316e-8,0.004698358163045725,-2.238005741037552e-5,3.475374675121492e-8,0.0046986364344812365,-2.2175013783692378e-5,3.4269031535764016e-8,0.0046988377483364,-2.2021316841364653e-5,3.3905777612987485e-8,0.004698988505350433,-2.1954843872662592E-05,3.3747957039559153e-8,0.00469913001615439,-2.199603289469974e-5,3.384312019587815e-8,0.004699311555481439,-2.2142626039551497e-5,3.418542095617081e-8,0.004699579681160445,-2.2366028659942287e-5,3.470720003209844e-8,0.004699965159038889,-2.261379023439517e-5,3.528496641002932e-8,0.0047004707613474824,-2.2820209470544427e-5,3.576439822294622e-8,0.004701065275270101,-2.29245915141501e-5,3.600321104272019e-8,0.0047016890656927665,-2.2891951736126434e-5,3.591970431021748e-8,0.004702272011748362,-2.2726666777386748e-5,3.5524736397453896e-8,0.004702756920507253,-2.2470877734699576e-5,3.491788013206634e-8,0.004703116987165939,-2.2187808782063738e-5,3.4248104068405246e-8,0.004703359534640568,-2.193925935774467e-5,3.3660754039070295e-8,0.004703517130520162,-2.176842696306175e-5,3.325714330433221e-8,0.004703633418269326,-2.1693450292192006e-5,3.3079469125848756e-8,0.004703750784664788,-2.1710014565138826e-5,3.311710181821752e-8,0.004703902999268972,-2.1798210735348334e-5,3.332284229703271e-8,0.00470411241473192,-2.1929606093883388e-5,3.362958798550564e-8,0.004704389870876045,-2.207267688476105e-5,3.396308166894864e-8,0.0047047356012256255,-2.2196523423997598e-5,3.425061394883235e-8,0.004705140226676658,-2.2273583221930157e-5,3.4427402906015455e-8,0.004705585684179088,-2.2282131344618075e-5,3.444250019797068e-8,0.004706046484988976,-2.2209080754436687e-5,3.426539393023329e-8,0.004706492021561705,-2.205305499960459e-5,3.389321201807501e-8,0.004706890608130669,-2.182697129221664e-5,3.3356730967267744e-8,0.00470721539646339,-2.1558758464267093e-5,3.2721977504560417e-8,0.004707451321018943,-2.12887104727388e-5,3.208392178194558e-8,0.004707601124258925,-2.1062650368795808e-5,3.1550339335174934e-8,0.004707687923092548,-2.092164673284272e-5,3.1217597646232705e-8,0.004707752373939844,-2.0890881213821516e-5,3.1144495257733445e-8,0.004707844271649323,-2.097124597532204e-5,3.1332583670419434e-8,0.004708010475613604,-2.113670162270532e-5,3.172008981581706e-8,0.004708282385389394,-2.1338748014371744e-5,3.219257613945702e-8,0.0047086664359290925,-2.15173693706775e-5,3.2608780636782456e-8,0.0047091404880734164,-2.161606952423453e-5,3.283599569519555e-8,0.004709657840613588,-2.159728736032355e-5,3.278626927707014e-8,0.0047101587972046815,-2.14536381865304e-5,3.244275536750323e-8,0.004710587092019814,-2.1210639927389882e-5,3.1866026733256766e-8,0.004710905784652387,-2.0918934500008726e-5,3.11756702803512e-8,0.004711106530119068,-2.0638435018091832e-5,3.051288304831013e-8,0.004711208865517889,-2.0420804081158147e-5,2.999917704131898e-8,0.004711250995690448,-2.029710843358638e-5,2.9707348003223693e-8,0.004711277151420492,-2.0274053881011356e-5,2.9652724627549498e-8,0.00471132674977426,-2.033766978305856e-5,2.9801983439850805e-8,0.00471142806619857,-2.046071242907155e-5,3.009067825446045e-8,0.004711596296366146,-2.061020016312087e-5,3.044100612335261e-8,0.004711834389857875,-2.0753171954947886e-5,3.077533281366249e-8,0.004712134965726818,-2.086041685204148e-5,3.1024925417154556e-8,0.004712482251510385,-2.090882235568343e-5,3.1135456149055995e-8,0.004712853737906606,-2.0883211847782863e-5,3.107133595210802e-8,0.004713221881139335,-2.0778334625325025e-5,3.082042383122008e-8,0.004713556597760101,-2.0601134262572815e-5,3.0399376917884984e-8,0.004713829354068818,-2.037263915355485e-5,2.9858068237885336e-8,0.004714019207495355,-2.0127999853239356e-5,2.9279591365504785e-8,0.004714120040236812,-1.9912737159773322e-5,2.8771311538676714e-8,0.00471414655809,-1.9773869991005393e-5,2.8443873226592142e-8,0.004714135386249772,-1.9746861801332327e-5,2.83804276963628e-8,0.004714138370032906,-1.984258160661189e-5,2.8606000254505665e-8,0.004714208596707071,-2.004036454826956e-5,2.9071316232283385e-8,0.004714383927031075,-2.029154199139544e-5,2.966130936884501e-8,0.00471467478824134,-2.0532945180363846e-5,3.022705867006223e-8,0.004715061013315357,-2.070513244011117e-5,3.0628741349271914e-8,0.00471549819391272,-2.076855953990602e-5,3.0773644450018024e-8,0.004715930398805945,-2.0712828599232458e-5,3.06378229761092e-8,0.00471630479798327,-2.0557372487725065e-5,3.02675794944921e-8,0.00471658419168978,-2.0344538606421003e-5,2.9763064924636998e-8,0.004716754587575241,-2.012762846230072e-5,2.9250034311585e-8,0.004716826391143379,-1.9957347775696705e-5,2.8847903519089865e-8,0.004716829482927148,-1.9870328926400146e-5,2.8642734974974278e-8,0.004716804183631088,-1.9882591570309303e-5,2.8671899620700577e-8,0.004716791192796836,-1.9989005281011388e-5,2.8922902741116466e-8,0.004716823437325514,-2.016770532199581e-5,2.934387756265717e-8,0.004716921469150951,-2.0387043502867066e-5,2.986002387931219e-8,0.0047170924226144694,-2.0612596164450385e-5,3.0390138793191444e-8,0.004717331446500595,-2.081266616228881e-5,3.085955828244744e-8,0.00471762425529221,-2.0961852660023846e-5,3.120852397033979e-8,0.004717949786709429,-2.104309008518074e-5,3.139695112234478e-8,0.004718282560551554,-2.104890203008696e-5,3.1407378398035346e-8,0.00471859492533725,-2.0982516486430054e-5,3.1247623321056654e-8,0.004718859796079545,-2.0859052414961204e-5,3.0953605446153896e-8,0.004719054624823485,-2.0706285041295662e-5,3.059112867970817e-8,0.004719167008269947,-2.0563643657749342e-5,3.025342322589191e-8,0.0047192012609654915,-2.0477478018717793e-5,3.00498426889888e-8,0.00471918345441392,-2.0491050133859172e-5,3.0082155472353386e-8,0.004719160711673773,-2.0630138351970563e-5,3.041060704503147e-8,0.004719191097019601,-2.0889406258420564e-5,3.1021931692673706e-8,0.004719325043469325,-2.1227769789697886e-5,3.181866698159706e-8,0.0047195859260143365,-2.1578468896618452e-5,3.264310559084911e-8,0.004719960156972756,-2.187111814865657e-5,3.3329373513019146e-8,0.004720402230039262,-2.2055137896671795e-5,3.375863627291979e-8,0.004720851199728154,-2.211368644516015e-5,3.3891818178741824e-8,0.004721249742534635,-2.2064084478755165e-5,3.3770422384395773e-8,0.004721558271420089,-2.194802371751545e-5,3.349326327499581e-8,0.004721761248337392,-2.181765833721016e-5,3.318355542341268e-8,0.004721866556401599,-2.1722520963282726e-5,3.295805030285286e-8,0.004721900238871268,-2.169987115382176e-5,3.29043510790176e-8,0.004721898892204645,-2.176929055241197e-5,3.306826983285239e-8,0.004721901529417458,-2.193141803818353e-5,3.345092527192641e-8,0.004721942348745987,-2.2170269412426117e-5,3.401426136456454e-8,0.004722045516212493,-2.2458138717909424e-5,3.4692640398515564e-8,0.004722222546618573,-2.2761699487966296e-5,3.540726851507083e-8,0.0047224722135377,-2.3047940802877143e-5,3.6080226653327896e-8,0.004722782394577666,-2.3288951948910685e-5,3.6645758612571877e-8,0.004723132980101565,-2.3465103100195668e-5,3.7057739558551584e-8,0.004723499026608934,-2.3566743782828097e-5,3.729363200615465e-8,0.004723853726366984,-2.3594919509001365e-5,3.7356145869933e-8,0.004724171226410891,-2.356158846622636e-5,3.727375668144662e-8,0.00472442964344223,-2.3489522051841577e-5,3.710048713221879e-8,0.004724614776565834,-2.3411574874169688e-5,3.691415587823861e-8,0.004724724794459883,-2.3368277341243487e-5,3.6810591870453345e-8,0.0047247752100325596,-2.340213360934399e-5,3.6890033197833116e-8,0.004724801818033701,-2.354741153860014e-5,3.723294414462482e-8,0.00472485768521177,-2.3816423663497148e-5,3.786770260091306e-8,0.004725000635390749,-2.418751526032683e-5,3.8742466858000376e-8,0.004725272431033011,-2.4603620051597823e-5,3.972202334985268e-8,0.0047256788219663705,-2.4987702204493527e-5,4.062439541897351e-8,0.004726183285667441,-2.5270759185625143e-5,4.128696584233639e-8,0.004726720126803429,-2.541754230471784e-5,4.162712542300643e-8,0.004727219448344189,-2.5435941739691993e-5,4.166429361538732e-8,0.004727629770664268,-2.536784151980682e-5,4.149811650246318e-8,0.00472792886355938,-2.5270329894455154e-5,4.126387077300937e-8,0.00472812265068321,-2.5197835046972124e-5,4.109015364379114e-8,0.0047282373150355555,-2.5190669974525258e-5,4.1071880240448236e-8,0.004728309665470908,-2.5270343003186838e-5,4.125937504726307e-8,0.004728378624615121,-2.543968430350618e-5,4.165883422548709e-8,0.004728478767596398,-2.5685707126707573e-5,4.223916565564198e-8,0.004728635885651726,-2.5983880913205705e-5,4.294209090323031e-8,0.004728864409439411,-2.6303109090072288e-5,4.369389967187808e-8,0.00472916659618418,-2.6610845597161917e-5,4.44175634064523e-8,0.004729533321857145,-2.687781278328495e-5,4.5043926732075706e-8,0.00472994622235607,-2.708187235910797e-5,4.55208730022123e-8,0.004730380793270376,-2.721067737099242e-5,4.5819553184842186e-8,0.004730809906752847,-2.7262961196945158e-5,4.593735403726144e-8,0.004731207297948036,-2.724866569169805e-5,4.589813042879811e-8,0.004731550882303068,-2.7188193463415645e-5,4.5750407942570875e-8,0.004731825972564864,-2.7110878798737e-5,4.5563763450471336e-8,0.004732028530653421,-2.7052515132200603e-5,4.54229491228676e-8,0.004732168446389242,-2.7051350258781955e-5,4.541834024160813e-8,0.004732272116670077,-2.714157631827611e-5,4.563044734216501e-8,0.004732382358303023,-2.734381236381859e-5,4.610740117539504e-8,0.004732552676207028,-2.765400554259749e-5,4.6838853150868065e-8,0.004732833512182073,-2.803550331529912e-5,4.773748847006038e-8,0.004733252285295634,-2.842190019560124e-5,4.864598097253564e-8,0.004733796293531172,-2.8735835655547945e-5,4.9381511830951945e-8,0.004734411109839088,-2.891853713979851e-5,4.980557132802008e-8,0.004735019503554785,-2.895397730306729e-5,4.9880998252676156e-8,0.004735551138537044,-2.887270533546891e-5,4.9680920882470014e-8,0.00473596575267552,-2.873482839748109e-5,4.9348284107208375e-8,0.004736259519104328,-2.8605104853960317e-5,4.903667122874668e-8,0.004736457060975534,-2.8533821667809858e-5,4.886493863585071e-8,0.0047365979415711565,-2.85485921602435e-5,4.88979128990018e-8,0.004736724583238949,-2.8654807118183317e-5,4.914769787656253e-8,0.0047368742116397,-2.8840382877356432e-5,4.958511728727826e-8,0.004737074552126241,-2.9081541619000465e-5,5.015347478913712e-8,0.004737342012367782,-2.934812648323624e-5,5.078111482310837e-8,0.004737681309886265,-2.960821833601568e-5,5.139231870366264e-8,0.004738086098954303,-2.9832193363411564e-5,5.191692419486976e-8,0.004738540469209245,-2.9996259595434974e-5,5.229874245767923e-8,0.0047390212881655396,-3.0085394338945098e-5,5.2502529913061444e-8,0.004739501377336211,-3.0095423581682325e-5,5.251886124976056e-8,0.004739953305782397,-3.0033870472254683e-5,5.236603682676017e-8,0.004740353348319325,-2.9919407976351642e-5,5.208868447062693e-8,0.004740685200385828,-2.9779991128983356e-5,5.175327771239827e-8,0.004740943182403257,-2.9649741613378564e-5,5.1440738209547884e-8,0.004741134674185391,-2.9564621576085497e-5,5.1236171222247815e-8,0.004741281429687509,-2.955689735080932e-5,5.121571324845782e-8,0.004741419089674041,-2.9648317114137292e-5,5.1430346955513816e-8,0.004741593583568248,-2.984236535396184e-5,5.18876132323745e-8,0.0047418528064249385,-3.0117417530783683e-5,5.2535574522677666e-8,0.004742232999460031,-3.0424697664623252e-5,5.325821214909581e-8,0.004742742611363063,-3.069609207813721e-5,5.3894094209571386e-8,0.004743351393757184,-3.086414788615748e-5,5.4283751424790724e-8,0.004743994368040548,-3.088836563852584e-5,5.433186801908802e-8,0.004744593460110826,-3.0773559410401626e-5,5.4050676811265004e-8,0.004745086788273111,-3.0567784478253706e-5,5.3554919237006306e-8,0.004745448989905369,-3.034083898991905e-5,5.301067418598428e-8,0.0047456930853903715,-3.015732469647893e-5,5.257126350003612e-8,0.004745857698513026,-3.00585998089884e-5,5.233439298931279e-8,0.004745990240669041,-3.0058200221043662e-5,5.233146185427817e-8,0.004746133999600095,-3.01466801907586e-5,5.2539325380684306e-8,0.004746321325199566,-3.0299826522431672e-5,5.289999214373297e-8,0.004746571565708012,-3.048628868783824e-5,5.333878061980279e-8,0.004746891547053987,-3.067323831866283e-5,5.377769034777425e-8,0.004747276976592629,-3.083031101807034e-5,5.414468688672485e-8,0.0047477141402886116,-3.09325591886319E-05,5.4380693556431183e-8,0.004748181886555148,-3.096289364885244e-5,5.444541244979396e-8,0.004748654088097438,-3.09141513535335e-5,5.432224087989675e-8,0.004749102826477359,-3.079058892868887e-5,5.4021765189798875e-8,0.0047495023578297945,-3.060826542501298e-5,5.358256772490767e-8,0.004749833466407175,-3.0393770407297746e-5,5.306810148158317e-8,0.0047500874842839194,-3.018108231591561e-5,5.2559163277776153e-8,0.004750269208928283,-3.000667785776047e-5,5.214226026089898e-8,0.004750398005292498,-2.990333609399654e-5,5.1894905169507964e-8,0.004750506508683392,-2.9893424852776115e-5,5.186969825178604e-8,0.004750636541043871,-2.9982645840082855e-5,5.2079533030619567e-8,0.0047508320083346,-3.0155421919572188e-5,5.248676449937229e-8,0.004751128908639331,-3.037369192805859e-5,5.300052553271625e-8,0.0047515437134295745,-3.058146946640733e-5,5.348771766126394e-8,0.004752063484848125,-3.071700733657849e-5,5.380196084787112e-8,0.0047526432287152715,-3.073156493559227e-5,5.382809002665862e-8,0.004753215530274019,-3.060859876345908e-5,5.352758456900073e-8,0.004753711939495655,-3.0373149193153703e-5,5.2960713748294996e-8,0.004754087100048578,-3.0083973403278307e-5,5.226769683183297e-8,0.00475433293603724,-2.98112136590755e-5,5.1615475629158006e-8,0.004754476264544549,-2.9611822552670604e-5,5.113920082596975e-8,0.004754563953700199,-2.9514823359041654e-5,5.0907249040929476e-8,0.0047546455613278705,-2.9520016886330627e-5,5.0918372072733805e-8,0.004754761071596459,-2.9605722627759065e-5,5.112036823852704e-8,0.004754935662167024,-2.9739033755819657e-5,5.143462572713782e-8,0.0047551796096890735,-2.988434036747737e-5,5.1776389895648226e-8,0.004755490589258526,-3.0008869624587908e-5,5.206783588245407e-8,0.004755856442393838,-3.008584029224015e-5,5.224546763974042e-8,0.004756257668350731,-3.0096339668500227e-5,5.2264540791731686e-8,0.004756669706745484,-3.0030731792701057e-5,5.210242554479061e-8,0.004757065414585785,-2.9889908539192638e-5,5.176159886049536e-8,0.004757418195542284,-2.968619040159789e-5,5.1271759843174285e-8,0.00475770601363651,-2.9443203318333868e-5,5.0689459342253564e-8,0.004757915965546911,-2.9193873541743718e-5,5.009323271378707e-8,0.004758048438176281,-2.8975983699953833e-5,4.957295059706262e-8,0.0047581194741599594,-2.882542250153593e-5,4.921372935448555e-8,0.004758160019778779,-2.876818870394926e-5,4.9076934374705044e-8,0.004758211358591651,-2.8813062505827567e-5,4.9182827912228046e-8,0.004758317093348088,-2.894711954955259e-5,4.950002836532726e-8,0.004758513086696229,-2.913579719092093e-5,4.994582695633771e-8,0.004758817511140333,-2.932837760191171e-5,5.03993731608605e-8,0.004759223605850981,-2.9468701036464705e-5,5.072723219425754e-8,0.004759697867909933,-2.9509504216527897e-5,5.0817464553032814e-8,0.004760185864983653,-2.942696235017769e-5,5.061410130962157e-8,0.0047606259543624555,-2.9230317643366145e-5,5.0139889000795495e-8,0.004760967607467908,-2.896139174117637e-5,4.9494965504536796e-8,0.004761187350905263,-2.8682116608214554e-5,4.882704196243258e-8,0.004761294966547717,-2.8454389880011927e-5,4.828336259201367e-8,0.004761327275387122,-2.8321230768383856e-5,4.796585845162461e-8,0.004761333553681048,-2.829714704173953e-5,4.790836114893017e-8,0.0047613601652829966,-2.8369688621673795e-5,4.808053312846534e-8,0.004761440321646852,-2.8508399895063426e-5,4.8409387338905586e-8,0.004761590551451071,-2.8675522491192136e-5,4.880485640357133e-8,0.004761812082991868,-2.883449707617644e-5,4.917998782520274e-8,0.004762094385548418,-2.8955069947828657e-5,4.946298307321452e-8,0.004762418882065095,-2.9015693696433737e-5,4.960280392062293e-8,0.0047627620311700624,-2.9004461174501594e-5,4.95713500331758e-8,0.004763097828331392,-2.8919547543918302e-5,4.936452599578333e-8,0.004763400221147088,-2.8769621484632385e-5,4.90032528762637e-8,0.004763646058855578,-2.8574085268911304e-5,4.8534040160042696e-8,0.004763818946533213,-2.8362398774863e-5,4.802731915464349e-8,0.004763913739565946,-2.8171404920085826e-5,4.757097276326134e-8,0.004763940543520972,-2.8039773963918373e-5,4.725700354486537e-8,0.004763926283878361,-2.7999613583819032e-5,4.7161505527736824e-8,0.004763911790083301,-2.806694015820014e-5,4.732201788368541e-8,0.004763943561668426,-2.8234348316907707e-5,4.772020956502153e-8,0.004764061768513518,-2.846950262937871e-5,4.827848357257109e-8,0.004764288248044224,-2.8721294087771193e-5,4.8874818169044365e-8,0.004764618840848933,-2.893247019251986e-5,4.93729414401414e-8,0.004765022978940383,-2.905493603698263e-5,4.965875709174304e-8,0.004765450868508584,-2.9062967578863874e-5,4.967170122917772e-8,0.004765846191254104,-2.8960399760946087e-5,4.942169071629253e-8,0.00476616076776282,-2.8779715550303997e-5,4.8986766544630736e-8,0.004766367084636814,-2.8573141543301774e-5,4.849172329484978e-8,0.004766464911858467,-2.839814847115955e-5,4.807347695622499e-8,0.00476647980983421,-2.8301831799976193e-5,4.784386143983262e-8,0.004766454199070231,-2.830937480805551e-5,4.7862255367856655e-8,0.004766434603844106,-2.8420157629011527e-5,4.8126495550133353e-8,0.004766459867818386,-2.861169104607286e-5,4.8582435764613466e-8,0.004766553900979995,-2.8848469249434867e-5,4.9145161379864336e-8,0.004766723895020026,-2.9091731049801776e-5,4.9722271610959204e-8,0.004766962652236033,-2.9307102792118214e-5,5.023203099217928e-8,0.004767252783211253,-2.946903329270971e-5,5.061383669831442e-8,0.004767570966247876,-2.956252059197733e-5,5.083224211036534e-8,0.00476789143265435,-2.9583263200849124e-5,5.0877272768619633e-8,0.004768188657904238,-2.9537233992896767e-5,5.076341708753041e-8,0.004768439713838026,-2.9440208044921784e-5,5.0528530531352904e-8,0.004768626910754468,-2.9317193423369705e-5,5.0232483468787865e-8,0.004768741178477299,-2.9201099070795987e-5,4.9953931538163455e-8,0.004768786027644776,-2.9129513499080413e-5,4.978252629146496e-8,0.004768780936853772,-2.9138496012208616e-5,4.980400285879896e-8,0.0047687618966803106,-2.9253256552848995e-5,5.007792821246455e-8,0.004768776430770757,-2.94777909524039e-5,5.0613091054872876e-8,0.004768871988096792,-2.9788111750287958e-5,5.13515752527904e-8,0.004769080444607102,-3.013432954967566e-5,5.2173957718739495e-8,0.004769405284770623,-3.0453486715106665e-5,5.293006343952431e-8,0.004769818220406904,-3.0688999004594416e-5,5.3485350267577706e-8,0.00477026743433048,-3.080834002271513e-5,5.376298803352503e-8,0.004770693577738604,-3.081168201237658e-5,5.3764285152528835e-8,0.004771046589895863,-3.072935915638893e-5,5.3562407814568835e-8,0.004771297631526678,-3.0610999818195513e-5,5.3276237909610404e-8,0.004771443711692161,-3.051122681918304e-5,5.303613422492912e-8,0.004771505396973143,-3.047631542556714e-5,5.295212013490912e-8,0.004771519499267242,-3.0534710642808274e-5,5.3091406911566415e-8,0.004771529205577235,-3.0692816320908944e-5,5.346855026149306e-8,0.00477157418650815,-3.0936189653487376e-5,5.404847750248202e-8,0.004771682921045021,-3.123511651048176e-5,5.4759893534474465e-8,0.004771868687189363,-3.1552574400663744e-5,5.551430977654335e-8,0.004772129449714966,-3.1852223337845775e-5,5.622508871487745e-8,0.004772450721118148,-3.210457768014518e-5,5.682212037646142e-8,0.0047728099065585915,-3.2290564110685556e-5,5.726024480323222e-8,0.004773180754965365,-3.240266257319448e-5,5.752190311025016e-8,0.004773537085899212,-3.244442374528547e-5,5.761592957241243e-8,0.004773855633711976,-3.242925814099788e-5,5.757463774878549e-8,0.004774118342142201,-3.237905496994603e-5,5.7450525834272396e-8,0.004774314614586185,-3.23226647010406e-5,5.731264700502641e-8,0.004774443914942631,-3.2293765111534964e-5,5.724146147285952e-8,0.004774518652136438,-3.232717786829844e-5,5.731994509929363e-8,0.0047745663374796085,-3.245259117379958e-5,5.761852250142311e-8,0.004774628801644312,-3.268548015279706e-5,5.817341730913397e-8,0.004774755642402249,-3.301726301171104e-5,5.896332753649877e-8,0.004774990554962329,-3.340982109567715e-5,5.989660608993938e-8,0.004775353818295921,-3.3800784181514464e-5,6.082409330155231e-8,0.004775829687604098,-3.412186477507274e-5,6.158296115132251e-8,0.004776367868533359,-3.4323594773016025e-5,6.205572173406188e-8,0.004776900497853547,-3.439347655809735e-5,6.22134491263007e-8,0.004777365818310518,-3.435798439395554e-5,6.21203712505869e-8,0.004777726423271264,-3.426947678704886e-5,6.190234646575702e-8,0.004777975587727213,-3.418704078505039e-5,6.170085067616404e-8,0.004778133031878161,-3.416016772550692e-5,6.163388088984261e-8,0.004778235183303571,-3.42193194337018e-5,6.177353927618648e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json new file mode 100644 index 0000000..2cb2765 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":27000,"numberOfSamples":426,"samples":[0.004778324486778677,-3.437325503603603e-5,6.213990841775234e-8,0.0047784403655323285,-3.4611193149972956e-5,6.270647293317436e-8,0.004778612794687001,-3.490776213298559e-5,6.34120907874662e-8,0.004778858592736182,-3.52292773450405e-5,6.41760174740733e-8,0.004779180332297561,-3.554033000747647e-5,6.491361305699471e-8,0.0047795676373042825,-3.580972313910667e-5,6.555048782196374e-8,0.004780000304382801,-3.601491695515349e-5,6.603309632804475e-8,0.00478045244087296,-3.61445559073166e-5,6.63347373647879e-8,0.004780896788498023,-3.619907152539314e-5,6.64569282050896e-8,0.004781308537182374,-3.6189716300693844e-5,6.642701476463283e-8,0.004781668287402928,-3.613665338138569e-5,6.62935418736394e-8,0.004781964263597514,-3.606664631235279e-5,6.612070094818705e-8,0.004782194088007322,-3.6010502207012165e-5,6.598220199376154e-8,0.004782366358377176,-3.600003307813221e-5,6.595397202033107e-8,0.004782501973157172,-3.6063967015481664e-5,6.610431957871602e-8,0.004782634428155468,-3.622211612037997e-5,6.647996630880908e-8,0.004782807312744113,-3.647777437681964e-5,6.708796154697767e-8,0.004783066725500625,-3.681018070253991e-5,6.787788985789277e-8,0.004783447527929692,-3.717158351927006e-5,6.873512189479286e-8,0.004783956543699519,-3.749495769285591e-5,6.949941757309266e-8,0.004784561694818515,-3.7714824470447004e-5,7.001467512930746e-8,0.00478519734376055,-3.779386901530488e-5,7.019245393058328e-8,0.004785787298279908,-3.773988586048272e-5,7.005238005891471e-8,0.004786273540716633,-3.760159745695435e-5,6.971198893123057e-8,0.004786634261718939,-3.7446681679021194e-5,6.93338948131939e-8,0.004786883955125812,-3.7336538281738074e-5,6.90651418882107e-8,0.004787060855944783,-3.731025026111713e-5,6.89987545085644e-8,0.004787211498019626,-3.738052485901743e-5,6.916423518663561e-8,0.004787378723491085,-3.753768633517913e-5,6.953747098677388e-8,0.004787594743852002,-3.775688736390837e-5,7.005827277528313e-8,0.004787878341866488,-3.8005421267547694e-5,7.064797754466723e-8,0.004788234677867704,-3.824887091042978e-5,7.122411974828502e-8,0.004788656578890198,-3.845602832364749e-5,7.171211724931977e-8,0.004789126866304347,-3.8602762874008655e-5,7.205447458736902e-8,0.004789621527438917,-3.867476505188969e-5,7.221733392634786e-8,0.004790113453092092,-3.866900598852055e-5,7.219394452663505e-8,0.004790576389242894,-3.859380569021363e-5,7.200475975629059e-8,0.004790988658217021,-3.846749668906106e-5,7.169414035802423e-8,0.004791336185455692,-3.831592746623132e-5,7.132428928460062e-8,0.004791614602286293,-3.8169236193829984e-5,7.096748066882624e-8,0.004791830442019499,-3.8058199395276177E-05,7.069730505809583e-8,0.00479200147328233,-3.8010251494226334e-5,7.057912997799612e-8,0.00479215608282581,-3.8045112493544786e-5,7.065962097547686e-8,0.004792331243570715,-3.816988109148568e-5,7.095502401154791e-8,0.00479256801539422,-3.837391090721481e-5,7.143902873254914e-8,0.004792903356231363,-3.8625101009650084e-5,7.203412021826269e-8,0.00479335809982377,-3.887092912081732e-5,7.261428947824125e-8,0.004793923998139211,-3.904832069801235e-5,7.302876037880577e-8,0.004794557121329183,-3.910366330394545e-5,7.314982344552248e-8,0.004795186187943556,-3.901641098772414e-5,7.292918982979318e-8,0.004795737032643518,-3.881216157437762e-5,7.242916797983955e-8,0.004796161501972789,-3.855411099464743e-5,7.180203477009054e-8,0.004796453566145229,-3.831658356890081e-5,7.122636889591443e-8,0.004796644767523727,-3.815714860499036e-5,7.084000022037542e-8,0.004796785949434881,-3.8101951194646106e-5,7.070485098911682e-8,0.004796928139441377,-3.8146598603855446e-5,7.080934608157665e-8,0.004797110480654036,-3.8265789851055167e-5,7.109188904690533e-8,0.004797355877127002,-3.8424311612934556e-5,7.146748579270787e-8,0.004797671612426517,-3.8585616852327366e-5,7.184835086333892e-8,0.004798052093481322,-3.8717282547673696e-5,7.215687639979793e-8,0.004798481982683185,-3.879416904832568e-5,7.233306811500727e-8,0.0047989392109531745,-3.880032466659669e-5,7.233903786826962e-8,0.004799398014519919,-3.873014716490181e-5,7.216177815700216e-8,0.004799832156249859,-3.858883316916818e-5,7.181423253686315e-8,0.004800218353251468,-3.839193072968296e-5,7.133417138730679e-8,0.004800539728226463,-3.816370201797726e-5,7.07801739212383e-8,0.004800788798428815,-3.7934150450836535e-5,7.022440790334248e-8,0.004800969422381577,-3.773493298607536e-5,6.97427737273164e-8,0.004801097307136082,-3.7594608437565975e-5,6.940350057998089e-8,0.004801198860837516,-3.753375575082618e-5,6.925545753494772e-8,0.004801308307002621,-3.7560557353341817e-5,6.931760143740602e-8,0.004801463061629263,-3.766739513003747e-5,6.957089748412672e-8,0.0048016973159992595,-3.7829085241195104e-5,6.995424232825527e-8,0.004802033897188718,-3.800393663211438e-5,7.036721161540528e-8,0.004802475381486049,-3.8139426649914707e-5,7.068384881196978e-8,0.004802997237534293,-3.8183940325160886e-5,7.078086051437349e-8,0.0048035477616877155,-3.810365748834886e-5,7.057799420498539e-8,0.004804059432364746,-3.789890582121566e-5,7.007704800926735e-8,0.004804471058177286,-3.76100617891968e-5,6.93758159734603e-8,0.004804751226949466,-3.730566920695092e-5,6.863938578566553e-8,0.0048049094711126545,-3.705654492532993e-5,6.803781398940207e-8,0.004804988697932718,-3.691017647857788e-5,6.768458911635844e-8,0.004805045208603211,-3.687881976068849e-5,6.760819207952647e-8,0.004805128912216125,-3.6943695478478026e-5,6.776250536534154e-8,0.004805272128763522,-3.706800766501402e-5,6.805842303113509e-8,0.0048054875443432725,-3.72102043926267e-5,6.839587172762585e-8,0.004805771578807736,-3.733305531184578e-5,6.868556225257375e-8,0.004806109373196501,-3.740819210339049e-5,6.885971585954908e-8,0.004806479267214914,-3.741763766075652e-5,6.887556737614801e-8,0.00480685624919262,-3.7353970688048305e-5,6.871568343569287e-8,0.00480721474503835,-3.722005965565962e-5,6.838732853486281e-8,0.004807531254878627,-3.70285788369557e-5,6.792132402469517e-8,0.004807787168840347,-3.680107359176237e-5,6.736978068548045e-8,0.0048079717908961535,-3.656606685754552e-5,6.680147748275388e-8,0.004808085124176199,-3.635572067784862e-5,6.629375291303479e-8,0.0048081395655390005,-3.6201003683608846e-5,6.59208353445968e-8,0.004808159619935799,-3.61259119702826e-5,6.573995300854134e-8,0.004808179052187587,-3.614182096799145e-5,6.577781399967254e-8,0.0048082354644977225,-3.624339663861216e-5,6.602088125342372e-8,0.004808363016906486,-3.640739698014146e-5,6.641263422122376e-8,0.004808584568140996,-3.659514206004428e-5,6.685967165663355e-8,0.004808904762436531,-3.6758854267688404e-5,6.724710168628325e-8,0.00480930579650223,-3.685155258136531e-5,6.746239580653564e-8,0.0048097478566896616,-3.683927126708737e-5,6.742470100953433e-8,0.004810176029910032,-3.6712847565078014e-5,6.711298772615927e-8,0.0048105340254307105,-3.649482817530326e-5,6.658239512536003e-8,0.004810781727205723,-3.62365842449442e-5,6.595705126594526e-8,0.004810909644980501,-3.6003671889103674e-5,6.539470778083783e-8,0.004810942478516832,-3.5853999525254e-5,6.503419712779448e-8,0.004810929054258762,-3.581891665158464e-5,6.495006857326439e-8,0.0048109239580987374,-3.589619723046781e-5,6.513597488805307e-8,0.0048109704482596355,-3.605632765339819e-5,6.552011162684835e-8,0.004811091479469972,-3.625616637154878e-5,6.599830095926331e-8,0.0048112894999106535,-3.645235261818129e-5,6.646628961790225e-8,0.004811551496979631,-3.661003899809157e-5,6.684062633294758e-8,0.004811855326073649,-3.6706519877171644e-5,6.706718834733222e-8,0.004812175008010524,-3.673147922115121e-5,6.71216166824625e-8,0.00481248442724685,-3.668578285980148e-5,6.70063528600365e-8,0.004812759857408077,-3.6580011791983614e-5,6.67471364140862e-8,0.004812982021847438,-3.643312892218514e-5,6.638984182107787e-8,0.004813138260380984,-3.627105788419161e-5,6.599705939990736e-8,0.004813224984539436,-3.612453739463318e-5,6.56428706687843e-8,0.004813250027706149,-3.6025539008764395e-5,6.540413556464342e-8,0.004813233901618618,-3.600194055235022e-5,6.53476083256435e-8,0.004813208641342787,-3.6070981482546236e-5,6.55141956879046e-8,0.004813213185891162,-3.623309956685937e-5,6.590422431888505e-8,0.0048132853329533815,-3.6468577247922494e-5,6.646953796652841e-8,0.00481345196089862,-3.6739232782648675e-5,6.711775543238068e-8,0.004813720524850067,-3.699585543676539e-5,6.773031548224511e-8,0.004814074915372328,-3.718990777229592e-5,6.819070851646075e-8,0.004814477519636433,-3.7286327454266165e-5,6.841524919716474e-8,0.004814877412507499,-3.727371265226798e-5,6.837744468682739e-8,0.004815222824200392,-3.71687674239285e-5,6.811846623591315e-8,0.004815474776181273,-3.70132472069625e-5,6.773954080785747e-8,0.0048156180606356,-3.686348225678969e-5,6.737652512252384e-8,0.004815665783668138,-3.677486127562191e-5,6.716247159200004e-8,0.004815655222405848,-3.678604759224073e-5,6.718971555136587e-8,0.004815636005506843,-3.690868613654817e-5,6.74853269118757e-8,0.004815655154643246,-3.712641741469069e-5,6.800902880734398e-8,0.0048157448657402905,-3.740272786418989e-5,6.86723392503097e-8,0.004815916982414414,-3.769330697538445e-5,6.936842915828944e-8,0.004816164398472773,-3.79575991566434e-5,6.999989097850887e-8,0.004816466732888395,-3.8166161444911164e-5,7.049630552378684e-8,0.004816796998892661,-3.830332545250297e-5,7.082047667647441e-8,0.004817127128752034,-3.8366574426466915e-5,7.096680517792435e-8,0.004817431716377734,-3.8364425072400815e-5,7.095614538559232e-8,0.00481769031494261,-3.831406952629976e-5,7.0830151666776e-8,0.004817889007363463,-3.823930287395324e-5,7.064632660863894e-8,0.004818021924002364,-3.81685964240486e-5,7.047337979987863e-8,0.004818092995005395,-3.8132677946559405e-5,7.038533637487357e-8,0.004818117609598462,-3.8160829347254704e-5,7.045252292139183e-8,0.0048181231757472446,-3.8275439457385075e-5,7.072838433001155e-8,0.004818147032808319,-3.848524220234855e-5,7.123323584537503e-8,0.004818230263552585,-3.877913888410908e-5,7.193954194116859e-8,0.004818407376247594,-3.9123929426344404e-5,7.276667979907158e-8,0.004818694517905241,-3.946919365675648e-5,7.359290131063591e-8,0.004819081226702352,-3.975987623674142e-5,7.428575222689352e-8,0.004819530473516512,-3.99528372131395e-5,7.474192447320143e-8,0.004819988207444505,-4.003071053802827e-5,7.492052207630327e-8,0.0048203989246250615,-4.000728896884301e-5,7.485582965376748e-8,0.004820721175466344,-3.99227597487728e-5,7.464556945092878e-8,0.004820937782280773,-3.9831445677784674e-5,7.442110541926777e-8,0.004821058434419171,-3.978679151255124e-5,7.431111753324506e-8,0.004821115078288102,-3.982808284365596e-5,7.44096350669423e-8,0.0048211522270188,-3.9972043873461636e-5,7.475600152324611e-8,0.004821215190839854,-4.021085655268812e-5,7.533039650683856e-8,0.004821339447086454,-4.051642323333889e-5,7.606436621672032e-8,0.004821543793180569,-4.084903826994292e-5,7.686186217830935e-8,0.004821828560137223,-4.11675330397259e-5,7.762370019061549e-8,0.00482217843219588,-4.143791773110746e-5,7.826830249781045e-8,0.004822568060222116,-4.163862375087511e-5,7.874420409142698e-8,0.004822968276370532,-4.176204785493435e-5,7.903364411314588e-8,0.0048233512962861805,-4.1813332547424874e-5,7.914952587908982e-8,0.004823694268337095,-4.180773689787612e-5,7.912902718095061e-8,0.004823981341733217,-4.176770959006623e-5,7.902653839294732e-8,0.004824204843306262,-4.172022434438517e-5,7.890725119874452e-8,0.004824366170721857,-4.169434217802275e-5,7.884127164436675e-8,0.0048244767088938545,-4.1718500655906905e-5,7.889702962949885e-8,0.004824558542278362,-4.1816828861910714e-5,7.9132317175072e-8,0.004824644046356498,-4.2004005130913916e-5,7.958186192139638e-8,0.004824772810595939,-4.227902970506275e-5,8.02424031086156e-8,0.004824984330163837,-4.261986981161869e-5,8.105999852427741e-8,0.0048253063789773926,-4.2982701249766916e-5,8.192845535537351e-8,0.004825742302472369,-4.330968240475467e-5,8.2708249557431e-8,0.004826263889668254,-4.354578668059347e-5,8.326714000557609e-8,0.004826816164327769,-4.365883275531775e-5,8.352838122738419e-8,0.004827334389224904,-4.3652515189787744e-5,8.350199407923697e-8,0.0048277656748831246,-4.356505406150206e-5,8.328128245698638e-8,0.00482808475136242,-4.3454640222978786e-5,8.300742298950006e-8,0.0048282979694060126,-4.337986978855226e-5,8.282198985286413e-8,0.004828436715004647,-4.3383781338829196e-5,8.28283556019412e-8,0.004828545452468338,-4.3485739353153795e-5,8.307227830943268e-8,0.004828669442671055,-4.368097256269977e-5,8.354112596095182e-8,0.004828845131978453,-4.394543747541324e-5,8.417594361299053e-8,0.004829094332003,-4.42434357404026e-5,8.489003053203357e-8,0.004829422222056958,-4.453594609792681e-5,8.558908046994333e-8,0.004829818689134246,-4.4788154520325726e-5,8.618928271603903e-8,0.004830262162433468,-4.497503014521456e-5,8.663067376891177e-8,0.004830724791376845,-4.508429236527066e-5,8.688419593273334e-8,0.004831177763389958,-4.5116784857431304e-5,8.695250414418422e-8,0.0048315958105310045,-4.50848066644472e-5,8.686584714086303e-8,0.004831960372320328,-4.50092207251216e-5,8.667501419792826e-8,0.004832261385448886,-4.4916181410082026e-5,8.644339426785272e-8,0.004832498085672877,-4.4834021165063305e-5,8.623945104183476e-8,0.004832679280731162,-4.479034989518507e-5,8.612971656792317e-8,0.004832823322580668,-4.480906858922817e-5,8.61715560370843e-8,0.004832957631610085,-4.490685000713927e-5,8.640463908636807e-8,0.0048331170643941285,-4.508874878499018e-5,8.684036295819687e-8,0.004833339822081472,-4.5343323574385394e-5,8.745021561454051e-8,0.004833659599911437,-4.5639123415037367e-5,8.815754137046817e-8,0.004834094074838598,-4.592604139982e-5,8.884105976880853e-8,0.004834633097564738,-4.6145321609871045e-5,8.935914049205118e-8,0.004835233759482804,-4.624855257649796e-5,8.959560230484134e-8,0.004835829415303181,-4.621862951064732e-5,8.951018080070509e-8,0.004836352230776127,-4.6080232054244594e-5,8.916366565204528e-8,0.0048367583349983355,-4.589150422661235e-5,8.869757625100208e-8,0.004837041591904654,-4.572106996194247e-5,8.827831621545146e-8,0.004837230223456968,-4.562385027524527e-5,8.803847379686291e-8,0.004837371762779652,-4.562714338453696e-5,8.804318221037112e-8,0.004837516153686477,-4.572936473719342e-5,8.828738354028514e-8,0.004837703559825233,-4.590705729913291e-5,8.871321255880796e-8,0.00483795842100459,-4.6124666861455577e-5,8.923395641208231e-8,0.0048382884248457615,-4.634354743735913e-5,8.975592732878355e-8,0.004838686449812278,-4.652885932931713e-5,9.019505444720963e-8,0.004839134059291325,-4.6654302346770156e-5,9.048817401084265e-8,0.00483960577414928,-4.670490119196287e-5,9.059963781515475e-8,0.004840073592346507,-4.6677962776577816e-5,9.052354945919353e-8,0.004840511260350432,-4.6582397345525144e-5,9.028205993460479e-8,0.004840897899231785,-4.643670396318439e-5,8.992042145949509e-8,0.004841220660300779,-4.626596989787898e-5,8.949965282921296e-8,0.004841476202205037,-4.6098371678003375e-5,8.908802385796573e-8,0.004841671077489782,-4.596168029442229e-5,8.875259106524241e-8,0.004841821307091204,-4.587997080031785e-5,8.855125453694367e-8,0.004841951292609372,-4.587045888723051e-5,8.852512147964674e-8,0.004842091964053706,-4.5940344193465115e-5,8.869088863412212e-8,0.004842277739297711,-4.6083631809650075e-5,8.903322182845005e-8,0.004842541493972926,-4.627838807084122e-5,8.949828371537751e-8,0.004842906839177331,-4.648600438823033e-5,8.999219477976895e-8,0.004843378264295116,-4.665522221668618e-5,9.039097681872455e-8,0.004843932381435793,-4.6733606371812626e-5,9.056834871587784e-8,0.004844516593310677,-4.6686017948423326e-5,9.044026966797496e-8,0.004845061297440305,-4.651301745333522e-5,9.000924058638993e-8,0.004845504427784852,-4.6256995746914114e-5,8.93789350952813e-8,0.004845816313409309,-4.598827316210438e-5,8.872033893206934e-8,0.004846009719910427,-4.5777184591241536e-5,8.820391758061302e-8,0.004846129972474116,-4.566860671556084e-5,8.793778061329034e-8,0.0048462338316596935,-4.567181248329228e-5,8.794324136066889e-8,0.004846370227429732,-4.576600567215227e-5,8.816863162886767e-8,0.0048465699861102345,-4.591338738919411e-5,8.852141023091782e-8,0.004846844129874208,-4.6071908146491065e-5,8.889930925992923e-8,0.004847187112262369,-4.6204138643279386e-5,8.921179902089594e-8,0.004847581703514996,-4.6282067896565305e-5,8.939150694429025e-8,0.004848003735402131,-4.6289076937789076e-5,8.939877769506586e-8,0.004848426256645651,-4.6220321509909585e-5,8.922246700657916e-8,0.004848823209408606,-4.608209856359733e-5,8.887836627853265e-8,0.004849172664527739,-4.58903562975773e-5,8.840557932192903e-8,0.0048494595475039315,-4.5668426291373705e-5,8.786099087737668e-8,0.0048496777143903665,-4.544400174802944e-5,8.731188333905859e-8,0.004849831083297237,-4.524549703219852e-5,8.682706510070045e-8,0.0048499335706496585,-4.5098191704872816e-5,8.646751496052212e-8,0.004850007839811998,-4.502058698290767e-5,8.627758023189437e-8,0.004850082971399407,-4.502123491055191e-5,8.627733894012528e-8,0.00485019108473835,-4.509627653317102e-5,8.645669590689583e-8,0.004850362866722029,-4.522799803925022e-5,8.677198648497969e-8,0.004850621906510939,-4.5384910987798636e-5,8.71463393443206e-8,0.004850977946640694,-4.552441540774088e-5,8.747633199424684e-8,0.00485142013660625,-4.5599608404899196e-5,8.764862963748815e-8,0.0048519131380055204,-4.557121093968653e-5,8.756886324253519e-8,0.004852400538216197,-4.5422915883702246e-5,8.719862480298039e-8,0.004852819081156075,-4.517383633579113e-5,8.658536065820687e-8,0.004853121273694221,-4.4878623615075926e-5,8.586240756352643e-8,0.004853295526580276,-4.461012521329985e-5,8.52067471895604e-8,0.004853370910340709,-4.443133874108983e-5,8.477085726904584e-8,0.004853402989489355,-4.437253239360528e-5,8.462723494908248e-8,0.004853450340338429,-4.442557395851914e-5,8.475489986913897e-8,0.004853555566747505,-4.4554520782041413e-5,8.506551757055743e-8,0.004853737798332979,-4.471246662007726e-5,8.54446544743408e-8,0.00485399486389547,-4.485554721718429e-5,8.57858896141624e-8,0.004854309864890948,-4.495075979662197e-5,8.600964247263456e-8,0.00485465803028982,-4.497849770452831e-5,8.6069040778254e-8,0.00485501203358417,-4.493206747983682e-5,8.594850455856457e-8,0.00485534568228858,-4.481608527441229e-5,8.565974574854902e-8,0.004855636618776108,-4.464461889212684e-5,8.523726941055656e-8,0.004855868536584048,-4.4439150233652795e-5,8.473347207406128e-8,0.0048560330722339125,-4.422617519806977e-5,8.421282174134603e-8,0.004856131296365982,-4.4034205116743515e-5,8.374453608584602e-8,0.004856174444895931,-4.389004599187381e-5,8.339349699528367e-8,0.004856183359155293,-4.381463425405478e-5,8.321012126246628e-8,0.004856186304500604,-4.381908244061987e-5,8.322079181766202e-8,0.0048562152009108475,-4.3901681750652377e-5,8.342065742125228e-8,0.004856300584346492,-4.4046572784289005e-5,8.37705159905011e-8,0.004856465867596215,-4.422466583704176e-5,8.419918887759595e-8,0.004856721671702306,-4.439714167069116e-5,8.46121777512187e-8,0.004857061176355107,-4.452169624559631e-5,8.490696041970339e-8,0.004857457829840346,-4.456149265628484e-5,8.499476400738042e-8,0.00485786732258919,-4.4495941699599566e-5,8.482662558070934e-8,0.0048582357611451545,-4.433064375541632e-5,8.44172762033907e-8,0.004858514335168011,-4.4101716857274364e-5,8.385533918607352e-8,0.004858676764439197,-4.386931833014717e-5,8.32873433067394e-8,0.004858731337204977,-4.369916734671689e-5,8.287271910808891e-8,0.004858719353578516,-4.363884359422422e-5,8.272626402178683e-8,0.004858699079100403,-4.370113971203409e-5,8.287790899006382e-8,0.004858723862983524,-4.3863152455982114e-5,8.32708541147057e-8,0.004858826040038608,-4.4079389942548624e-5,8.379377681762571e-8,0.00485901243298159,-4.429951477497208e-5,8.432416681478761e-8,0.004859269289883763,-4.448198863401187e-5,8.476146671893096e-8,0.004859570954995191,-4.460045524794661e-5,8.504236029963514e-8,0.004859887795941977,-4.464428204949593e-5,8.514179476144743e-8,0.004860191622124641,-4.461614115330714e-5,8.506688634502332e-8,0.004860458789785439,-4.452889224023546e-5,8.48492775788132e-8,0.004860671945597038,-4.440278682495274e-5,8.453839235720549e-8,0.004860821241729715,-4.426305156165498e-5,8.419563819915824e-8,0.004860905419245433,-4.4137473414217795e-5,8.388856225560573e-8,0.004860932724572903,-4.405349915154474e-5,8.368376120026044e-8,0.004860921196088654,-4.403452027360999e-5,8.363778704610134e-8,0.004860897562807879,-4.4095524083173727e-5,8.378654746993848e-8,0.004860894101884112,-4.4238943389541296e-5,8.413526183041853e-8,0.0048609433408634845,-4.4451997534014956e-5,8.465211854456047e-8,0.004861071294856948,-4.470688491827875e-5,8.526891053304732e-8,0.004861290736213975,-4.4964675805282034e-5,8.589067031036176e-8,0.004861596402411748,-4.518269904195639e-5,8.641375721967553e-8,0.00486196380325942,-4.5324110154403064e-5,8.674916232953769e-8,0.0048623525742310615,-4.536760086172835e-5,8.684603658726279e-8,0.004862714420798966,-4.531482706925229e-5,8.670954354944289e-8,0.004863004623796651,-4.519303097661249e-5,8.640693812132527e-8,0.004863194723425296,-4.505076964306804e-5,8.605688184505726e-8,0.0048632825102846704,-4.494612337857568e-5,8.58005774809639e-8,0.004863294732214557,-4.492967036023607e-5,8.576036145889535e-8,0.004863279646140609,-4.50281209417457e-5,8.600009804265731e-8,0.004863291238192513,-4.5235972657266385e-5,8.650521261792416e-8,0.004863371875000471,-4.5519265521149334e-5,8.719217023603693e-8,0.004863541092600532,-4.5828989880735264e-5,8.794132978880563e-8,0.0048637941431590335,-4.611699389480268e-5,8.863570335939151e-8,0.004864108348633099,-4.6347665140982225e-5,8.918925654220265e-8,0.00486445241548828,-4.650270904600831e-5,8.95582979767788e-8,0.0048647945683711405,-4.658026758675538e-5,8.973908538631549e-8,0.004865107760312099,-4.659122884457311e-5,8.975868058567857e-8,0.004865372216069882,-4.655509521210519e-5,8.966485595145175e-8,0.004865576369720018,-4.649651590121914e-5,8.95177115085765e-8,0.004865717179949249,-4.644257685804242e-5,8.938315205316097e-8,0.004865800395588709,-4.642041241650156e-5,8.932709842864613e-8,0.004865840829426269,-4.6454505120622764e-5,8.940887781848442e-8,0.004865862139653059,-4.656317873149144e-5,8.967262906616372e-8,0.00486589520436499,-4.675433988431925e-5,9.013692766243163e-8,0.00486597415698355,-4.7021367342236717e-5,9.07848659725663e-8,0.004866129742279287,-4.7340909048838094e-5,9.15588685419079e-8,0.004866380968437412,-4.7674714425056845e-5,9.236536298478788e-8,0.004866727661902241,-4.797676853483728e-5,9.309231162293983e-8,0.004867147324684734,-4.8204752728047944e-5,9.363717379329655e-8,0.004867598631309231,-4.833237436364809e-5,9.393686151571851e-8,0.00486803127888161,-4.835807099496604e-5,9.398874966956663e-8,0.004868399226752945,-4.8306738611208255e-5,9.385460419655338e-8,0.0048686730911499205,-4.8223736532853264e-5,9.364566598366033e-8,0.004868847969216985,-4.816304071077976e-5,9.349354754634237e-8,0.0048689445715649204,-4.817300077705271e-5,9.351546946352385e-8,0.004869003383995121,-4.8283613222312364e-5,9.378341924616291e-8,0.004869073380924081,-4.849890638879081e-5,9.43059380023238e-8,0.0048691985524858695,-4.8796843985408144e-5,9.50282614209952e-8,0.004869406558763143,-4.9136789945777165e-5,9.585077822881535e-8,0.0048697031730176215,-4.947169627205198e-5,9.665881714263925e-8,0.004870073718317038,-4.9760441298475204e-5,9.735263346838005e-8,0.004870489786100687,-4.9976304469416066e-5,9.786787764373727e-8,0.004870917867218918,-5.010990840288102e-5,9.818254906626896e-8,0.004871326805083185,-5.016747905294032e-5,9.831256717497081e-8,0.004871692531052498,-5.016661596207553e-5,9.830134495028733e-8,0.004872000142688164,-5.0131652452055496e-5,9.820844897666668e-8,0.004872244237261572,-5.008976155652556e-5,9.810014547881626e-8,0.004872428488982316,-5.0068019068499616e-5,9.804229692860984e-8,0.004872565118915182,-5.0091037618228904e-5,9.809461966944169e-8,0.0048726744092658725,-5.017854275436142e-5,9.830475483883204e-8,0.004872783856378547,-5.034234927557437e-5,9.870086948139556e-8,0.00487292606572329,-5.058265619676878e-5,9.928265588588883e-8,0.0048731343054660824,-5.0884445663438285e-5,1.0001269113882292e-7,0.004873435129492483,-5.1215919899950034e-5,1.0081284930929764e-7,0.0048738390660209,-5.153170034332811e-5,1.015723136253397e-7,0.004874332805219763,-5.178266204412348e-5,1.0217165527867006e-7,0.004874877889632444,-5.1930947916088274e-5,1.0251939608479708e-7,0.004875419222669628,-5.196437324983978e-5,1.0258697726965176e-7,0.004875901546822159,-5.190279042143044e-5,1.0242405238386324e-7,0.004876286929160504,-5.179247995187442e-5,1.0214451691172397e-7,0.004876565554442809,-5.1691121210262656e-5,1.0188954108256096e-7,0.004876756238178176,-5.165032541885692e-5,1.0178476106510073e-7,0.004876898311797196,-5.170234825273362e-5,1.0190790776405611e-7,0.004877039291090606,-5.185415619525043e-5,1.0227463542533915e-7,0.004877222603926023,-5.20886997024062e-5,1.0284205932149231e-7,0.004877478233490123,-5.237148471881915e-5,1.0352515418660084e-7,0.004877817707882309,-5.2659998699574115e-5,1.0421992098956346e-7,0.004878233764547773,-5.291357147653802e-5,1.0482740644614637e-7,0.004878704103850562,-5.310151400306657e-5,1.0527339067231532e-7,0.0048791978095219886,-5.3207947753445196e-5,1.0551996632875121e-7,0.004879682486508378,-5.323275948828798e-5,1.055676880907866e-7,0.0048801303140343175,-5.318929968967715e-5,1.0544982140066945e-7,0.004880521970866183,-5.3100190207577814e-5,1.0522202640813102e-7,0.004880848294653186,-5.299267897057388e-5,1.0495098947741473e-7,0.0048811102117961675,-5.289457264711433e-5,1.0470451475918726e-7,0.004881317747189281,-5.2831136722353006e-5,1.045440020638691e-7,0.004881488756100408,-5.282274765893747e-5,1.0451875219165502e-7,0.004881647595748994,-5.2882791831743e-5,1.0466084584560046e-7,0.004881823499265498,-5.301535663747745e-5,1.0497951455693293e-7,0.004882047968987757,-5.321257874700818e-5,1.0545473459947656e-7,0.004882350207115018,-5.34522364381064e-5,1.0603152097503244e-7,0.004882749931583773,-5.3697319596594616e-5,1.0661911602920183e-7,0.004883248411975124,-5.390029444311228e-5,1.0710159048430002e-7,0.004883821223283848,-5.40142565780382e-5,1.0736509452548331e-7,0.004884418535029374,-5.400964585550486e-5,1.07338516263783e-7,0.004884977331862179,-5.388945231346987e-5,1.0703038492932809e-7,0.004885442982784979,-5.369291520334631e-5,1.0653767571805211e-7,0.0048857896031786405,-5.348285896525935e-5,1.060146273029446e-7,0.004886027899428079,-5.33225701704739e-5,1.0561598542362421e-7,0.004886197488183362,-5.3254761974328e-5,1.0544546399226637e-7,0.004886350220054461,-5.329186339414478e-5,1.0553216327134056e-7,0.00488653376420074,-5.341832436145469e-5,1.058366269418165e-7,0.004886780973520583,-5.3599972431194304e-5,1.0627419538425782e-7,0.004887105836022719,-5.379505921217329e-5,1.0674231474866518e-7,0.00488750437159898,-5.3963749688183614e-5,1.071437647657893e-7,0.004887958428542934,-5.4074868096297026e-5,1.074029666188478e-7,0.004888440866556042,-5.410987220354813e-5,1.0747544257958971e-7,0.004888921197063378,-5.406429862465683e-5,1.0735113586693954e-7,0.004889370931079509,-5.3946902121682926e-5,1.0705217492870693e-7,0.004889767913025726,-5.377692855867965e-5,1.0662613496775146e-7,0.004890099148351,-5.3580229669963764e-5,1.0613649899040003e-7,0.0048903619623596834,-5.3384985707783635e-5,1.0565218481282615e-7,0.004890563646224889,-5.321774155887791e-5,1.0523787065252472e-7,0.004890720050330306,-5.310023848256073e-5,1.0494629332969267e-7,0.00489085365033552,-5.304708763981897e-5,1.0481260896297154e-7,0.004890991351657461,-5.306401912048959e-5,1.0485014474108545e-7]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json new file mode 100644 index 0000000..9767b1b --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":3000,"numberOfSamples":1000,"samples":[-0.0016674126654346861,-5.729007527752374e-7,-1.4186514962201376e-8,-0.0016673064653587321,-6.734015165127343e-7,-1.4270276706700349e-8,-0.0016671184978181936,-7.942288639572809e-7,-1.4371055120518062e-8,-0.0016668581653082658,-8.937549802808163e-7,-1.4454094104781238e-8,-0.0016665462863460693,-9.416288807763305e-7,-1.4494058993362982e-8,-0.0016662092022260732,-9.201664606449159e-7,-1.4476216298494372e-8,-0.0016658745541862263,-8.237755484396502e-7,-1.4395945891238539e-8,-0.0016655683268689287,-6.578186550518726e-7,-1.4257765362438796e-8,-0.0016653124526036561,-4.3741842925891825e-7,-1.4074304544820363e-8,-0.0016651224530400707,-1.8607276082775895e-7,-1.3865132894139859e-8,-0.0016650049642489826,6.643303169026634e-8,-1.3655018765663274e-8,-0.0016649554928538104,2.8739437967418395e-7,-1.347113935991257e-8,-0.0016649572160637774,4.4604795424859426e-7,-1.3339056817593825e-8,-0.0016649817855313575,5.194876808583452e-7,-1.3277813795917761e-8,-0.0016649928181043465,4.985157505581373e-7,-1.329507262967021e-8,-0.00166495207648607,3.9179414860133283e-7,-1.3383654246342673e-8,-0.0016648274069321705,2.26664827416035e-7,-1.352084347660865e-8,-0.001664600739494372,4.5708357821865315e-8,-1.367124421905444e-8,-0.001664274219706894,-1.0088239670451744e-7,-1.3793127784445051e-8,-0.0016638726869829803,-1.6616023108150796e-7,-1.3847473701249546e-8,-0.0016634410124484337,-1.1869904209770958e-7,-1.3808176255662588e-8,-0.0016630354517974334,4.659577780072841e-8,-1.3671009811639623e-8,-0.001662709627560605,3.030262655914423e-7,-1.3458136463059741e-8,-0.0016624982880314673,5.958730436677693e-7,-1.3214963229037875e-8,-0.001662404794976831,8.568537842964569e-7,-1.2998163907749735e-8,-0.0016623988702162175,1.0254972177202318e-6,-1.2857973826241794e-8,-0.0016624271346917532,1.0685455003698803e-6,-1.2822084766277138e-8,-0.0016624319248438782,9.883600460942418e-7,-1.2888614390257493e-8,-0.001662369242835807,8.174787260993229e-7,-1.3030565315055226e-8,-0.0016622183938909184,6.041843871353809e-7,-1.3207794337616674e-8,-0.0016619818565370786,3.9717316279278375e-7,-1.3379782718210806e-8,-0.0016616789185444716,2.3502260822879676e-7,-1.3514435597222689e-8,-0.0016613377123989804,1.417265131744283e-7,-1.3591822041815075e-8,-0.0016609886089808544,1.2662367606576446e-7,-1.360423147824086e-8,-0.0016606598282278315,1.863922842656112e-7,-1.3554490273298172e-8,-0.0016603748199426104,3.0744517886406376e-7,-1.3453938412913645e-8,-0.0016601505255394024,4.680421085231016e-7,-1.3320649411749458e-8,-0.0016599957713533597,6.402384067973255e-7,-1.3177803860265977e-8,-0.0016599094977454972,7.922656339357963e-7,-1.3051723165875262e-8,-0.0016598791098382528,8.920717595398815e-7,-1.296895475612751e-8,-0.0016598798337515695,9.124839151887528e-7,-1.2952012505708826e-8,-0.001659876379622952,8.376861160842476e-7,-1.3014014454721298e-8,-0.0016598280484381447,6.695105801256583e-7,-1.3153456420237919e-8,-0.0016596973256014155,4.309782162426044e-7,-1.3351256087288848e-8,-0.001659460185844518,1.644717783767708e-7,-1.3572258355341262e-8,-0.0016591147270322442,-7.656124715275952e-8,-1.3772130406953462e-8,-0.0016586845140589572,-2.408327142852044e-7,-1.3908356700286018e-8,-0.0016582146152118225,-2.934361433791715e-7,-1.3952042824758485e-8,-0.0016577609941446497,-2.2641155822799227e-7,-1.3896646268225657e-8,-0.0016573762399432718,-6.21980795145008e-8,-1.3760786009222337e-8,-0.0016570956693766155,1.5125835864904947e-7,-1.3584155440668849e-8,-0.0016569277304044742,3.526938844470182e-7,-1.3417439166449944e-8,-0.0016568517179810498,4.838995413033776e-7,-1.3308801583491872e-8,-0.0016568239567060939,5.055051370474298e-7,-1.329085416886814e-8,-0.0016567907846579653,4.069873023778711e-7,-1.3372361772156796e-8,-0.0016567038867919353,2.0748592272561992e-7,-1.3537525963856996e-8,-0.001656532487673912,-5.231661404744325e-8,-1.375267653077842e-8,-0.0016562685745488837,-3.2332365832738283e-7,-1.3977143471321514e-8,-0.0016559247754694372,-5.607837026808751e-7,-1.4173848477561865e-8,-0.0016555275418913935,-7.327632792039998e-7,-1.4316343411791168e-8,-0.0016551092006448183,-8.233258722118555e-7,-1.4391445802169112e-8,-0.0016547013993568505,-8.316848376668471e-7,-1.439852456672699e-8,-0.0016543308264849162,-7.693391900307951e-7,-1.4347111821174578e-8,-0.0016540168884855639,-6.568154472154755e-7,-1.4254194224863743e-8,-0.00165377050241833,-5.208100635030763e-7,-1.4141844859881727e-8,-0.001653593196269087,-3.917048152325665e-7,-1.4035172614624135e-8,-0.001653476129350162,-3.0088888763530243e-7,-1.3960118899539777e-8,-0.0016533992421155022,-2.7714172882948965e-7,-1.3940479436687606e-8,-0.0016533313967630901,-3.4151069511884616e-7,-1.3993675666328718e-8,-0.001653232946576946,-5.008677652271779e-7,-1.4125420729844042e-8,-0.001653062183142646,-7.418000865678651e-7,-1.4324648124704472e-8,-0.0016527858361718897,-1.0281008249946432e-6,-1.456142157572885e-8,-0.0016523911376223348,-1.305464686483764e-6,-1.4790826634502255e-8,-0.0016518942603108112,-1.5146795210217696e-6,-1.4963914427081036e-8,-0.001651339688429203,-1.609920243457309e-6,-1.5042853245080335e-8,-0.0016507887609035258,-1.5746267527137686e-6,-1.501402985970417e-8,-0.0016503014049699613,-1.4275884845194972e-6,-1.4893009020259092e-8,-0.0016499186673924447,-1.2167625516751627e-6,-1.4719368976416159e-8,-0.0016496525262988243,-1.0042695210536724e-6,-1.4544312694847968e-8,-0.0016494852722868205,-8.488903215522008e-7,-1.4416272286595473e-8,-0.0016493768933366411,-7.916520763817829e-7,-1.4369068693422452e-8,-0.0016492770441696662,-8.477319335831267e-7,-1.441525088113211e-8,-0.0016491379089976894,-1.005586142802875e-6,-1.454535921366001e-8,-0.0016489247906258263,-1.2324077723442385e-6,-1.4732398295614608e-8,-0.0016486222435663186,-1.483745124523919e-6,-1.4939753931208416e-8,-0.0016482349077829455,-1.714387062746813e-6,-1.5130169934377415e-8,-0.0016477837047942081,-1.8876251196414704e-6,-1.5273388453025773e-8,-0.0016472992687706423,-1.9809318567924716e-6,-1.53508288088995e-8,-0.0016468148667739665,-1.987610693939075e-6,-1.5356941194346824e-8,-0.0016463605427636564,-1.915263460295526e-6,-1.529794271457019e-8,-0.0016459592556230336,-1.7824940981911972e-6,-1.5189110139549575e-8,-0.0016456248820582223,-1.6151699815473968e-6,-1.5051713360546717e-8,-0.0016453614347904178,-1.4430148462818047e-6,-1.4910218742385646e-8,-0.0016451628120618224,-1.2966201405178637e-6,-1.4789829372760213e-8,-0.0016450127057533186,-1.2044728826030512e-6,-1.4714032583746818e-8,-0.0016448847709624051,-1.1893868953393184e-6,-1.4701653351213367e-8,-0.0016447437874436506,-1.2638103881750775e-6,-1.4762980827432679e-8,-0.0016445491773054968,-1.4241708565546202e-6,-1.48951005064794e-8,-0.0016442623193067107,-1.645902905672155e-6,-1.5077791633897704e-8,-0.0016438578535539828,-1.8825890625995552e-6,-1.5272828105373147e-8,-0.0016433361724119703,-2.073293524915233e-6,-1.5430051194420875e-8,-0.0016427306855190664,-2.1595591992381907e-6,-1.5501400836018825e-8,-0.0016421028587470339,-2.107131410238427e-6,-1.545878784662949e-8,-0.0016415236596336047,-1.921503495197351e-6,-1.5306805835881395e-8,-0.0016410491716874508,-1.6475995048951014e-6,-1.508237666232406e-8,-0.0016407026930217476,-1.3532595827599134e-6,-1.4841150585489634e-8,-0.0016404710798181709,-1.1058220927750292e-6,-1.4638324030823384e-8,-0.0016403140434198668,-9.529880693486804e-7,-1.4513000663883932e-8,-0.0016401794241349037,-9.138189075949228e-7,-1.4480834585139251e-8,-0.001640017698453548,-9.79444485492997e-7,-1.4534599598191043e-8,-0.0016397921504842823,-1.1199629554508742e-6,-1.46498259445195e-8,-0.001639483962540219,-1.2938873374757163e-6,-1.4792536911725107e-8,-0.0016390929025693608,-1.4576102121358978e-6,-1.492701055511908e-8,-0.0016386346780947172,-1.5734220969873702e-6,-1.5022352898574618e-8,-0.0016381360741017184,-1.615194314249089e-6,-1.50571474431728e-8,-0.0016376290513289884,-1.5712506992188948e-6,-1.502179647791281e-8,-0.0016371449438908516,-1.4444928408342774e-6,-1.4918620999811586e-8,-0.0016367096648583616,-1.25031555175269e-6,-1.4760165902237422e-8,-0.0016363404739891797,-1.0131188796195411e-6,-1.4566365366279228e-8,-0.0016360443826047542,-7.623240043753878e-7,-1.4361298196704363e-8,-0.0016358178081207191,-5.285826195157557e-7,-1.4170084868955413e-8,-0.0016356469788772767,-3.4036970890659786e-7,-1.4016082203265821e-8,-0.001635508814606122,-2.207663722595964e-7,-1.3918227118982464e-8,-0.0016353723164385856,-1.840892669518823e-7,-1.3888261221685396e-8,-0.0016352009622329746,-2.3204470491520787e-7,-1.3927578205263703e-8,-0.0016349571713373055,-3.4963943026521634e-7,-1.4023883873503605e-8,-0.0016346099310555375,-5.023932688054426e-7,-1.4148931817790818e-8,-0.0016341454885156152,-6.3792299560969e-7,-1.4259849140121573e-8,-0.0016335782650784292,-6.955174267981529e-7,-1.4307009536395608e-8,-0.0016329555381133835,-6.248455078933967e-7,-1.4249353069369657e-8,-0.001632348566823429,-4.0811994916454653e-7,-1.4072462495238987e-8,-0.0016318292392897165,-7.307325909948915e-8,-1.3799065103672127e-8,-0.0016314426223732346,3.1411804635436726e-7,-1.348317422928833e-8,-0.0016311911484804568,6.740899862647185e-7,-1.3189486706427881e-8,-0.0016310385568320672,9.431757478148973e-7,-1.2969887537649966e-8,-0.0016309281956906096,1.0909595365989285e-6,-1.284917620325891e-8,-0.0016308035869936743,1.1218851358131656e-6,-1.2823744428951683e-8,-0.001630622539391083,1.0659851233981184e-6,-1.286910999649688e-8,-0.0016303628898681499,9.662126791094569e-7,-1.2950244535657924e-8,-0.0016300220532569065,8.673019924964457e-7,-1.303067628890683e-8,-0.0016296132995635643,8.078877149326865e-7,-1.3078931636879651e-8,-0.001629160810966706,8.157006448712503e-7,-1.3072446478192921e-8,-0.0016286945140845575,9.051596921306019e-7,-1.2999506114425888e-8,-0.001628245126395128,1.0769022975441644e-6,-1.285960415768863e-8,-0.0016278397306271277,1.3189544201936767e-6,-1.266248230864526e-8,-0.001627498165347806,1.6092434451098838e-6,-1.2426094284497363e-8,-0.0016272305284777825,1.919140067868813e-6,-1.2173739988352222e-8,-0.0016270360259148394,2.2175661941671596e-6,-1.1930728972988056e-8,-0.0016269031154630333,2.475096567993343e-6,-1.1721030329836182e-8,-0.0016268106690123906,2.6677037698851066e-6,-1.1564201830643506e-8,-0.0016267299509751117,2.7800877693262435e-6,-1.1472661493037969e-8,-0.0016266273869119789,2.808609891480967e-6,-1.1449301618478332e-8,-0.0016264683188791577,2.7638226285538478e-6,-1.148545475645509e-8,-0.001626222281076474,2.6722456015579204e-6,-1.1559486532781036e-8,-0.0016258702666007566,2.576093825543154e-6,-1.1637054006801947e-8,-0.001625413368763386,2.528652681956703e-6,-1.1674892793466553e-8,-0.0016248800163113045,2.5829769218688514e-6,-1.163000825805575e-8,-0.0016243264182511817,2.7739410660516134e-6,-1.147422855629942e-8,-0.001623824448257784,3.0994362029174313e-6,-1.1209399713251122e-8,-0.0016234371005962335,3.5125193005639037e-6,-1.0873674286989874e-8,-0.0016231924460283597,3.934280626806754e-6,-1.0531046713794774e-8,-0.0016230722116879442,4.2839261521980505e-6,-1.0247004462157263e-8,-0.0016230223920017024,4.509022315061528e-6,-1.0064052989792204e-8,-0.001622977701628644,4.599308318664541e-6,-9.990503166746648e-9,-0.0016228844735368534,4.580979504172208e-6,-1.0005062897292258e-8,-0.0016227124043607017,4.500425340947215e-6,-1.007001881606373e-8,-0.0016224552660553113,4.4079367639713336E-06,-1.0144494972609784e-8,-0.001622125516269599,4.346659224530802e-6,-1.0193467505461069e-8,-0.001621747326018003,4.347159211571133e-6,-1.0192193851439426e-8,-0.001621350394160166,4.425844840376646e-6,-1.0127472727933714e-8,-0.0016209651093993971,4.585398795260131e-6,-9.99724721593909e-9,-0.001620618755614523,4.816205832030953e-6,-9.809405621898151e-9,-0.0016203324293711152,5.0984795936064065e-6,-9.580037457445881e-9,-0.0016201185778446112,5.4050620808012625e-6,-9.331168050521922e-9,-0.0016199792751218015,5.7049341968223675e-6,-9.087925536625024e-9,-0.0016199055449921847,5.967355112173079e-6,-8.875191668941198e-9,-0.0016198780222882233,6.166231880713312e-6,-8.714053321567563e-9,-0.0016198689897785872,6.284171358720325e-6,-8.618507598772804e-9,-0.0016198456428020592,6.315766071306402e-6,-8.59280112903386e-9,-0.001619774385405621,6.26973000154361e-6,-8.629727496350617e-9,-0.0016196259296935819,6.169525357590731e-6,-8.710169915500509e-9,-0.0016193810015156772,6.052090182629365e-6,-8.804188184311565e-9,-0.0016190363271137104,5.963922429773775e-6,-8.87422587160706e-9,-0.0016186098081281857,5.953407381087274e-6,-8.88131796854117e-9,-0.0016181424573248472,6.058817784323751e-6,-8.794748910421731e-9,-0.0016176935536342239,6.293589642068541e-6,-8.60386918296675e-9,-0.001617326219104022,6.634329004002173e-6,-8.327694536227654e-9,-0.0016170853930605306,7.020289243504353e-6,-8.015286175478002e-9,-0.0016169778930223832,7.370415677596483e-6,-7.732028934152944e-9,-0.0016169675000937544,7.6131522800298654E-06,-7.535643904942126e-9,-0.0016169901136538418,7.713155380487486e-6,-7.454642010804234e-9,-0.0016169800837689205,7.679978347262525e-6,-7.481256003272846e-9,-0.0016168922572558102,7.556948303108508e-6,-7.580374851378752e-9,-0.0016167104555515727,7.400752728903742e-6,-7.706059646917471e-9,-0.0016164437683271215,7.26360821746386e-6,-7.816027752541982e-9,-0.0016161173530747812,7.183346466944154e-6,-7.879724076888564e-9,-0.0016157633104902577,7.180632707092512e-6,-7.880570755501255e-9,-0.0016154140207041772,7.260286490250837e-6,-7.814851788477083e-9,-0.001615098001463881,7.414069548772224e-6,-7.689396067402687e-9,-0.001614837378113596,7.623584166153096e-6,-7.519187049980965e-9,-0.0016146461104334338,7.863038966555796e-6,-7.325110558075486e-9,-0.0016145285922477045,8.102151822196889e-6,-7.13161729702838e-9,-0.0016144786655525626,8.30954750461279e-6,-6.963995681741373e-9,-0.0016144794389958994,8.456851025280304e-6,-6.8450772368244266e-9,-0.0016145044863076245,8.523247037034214e-6,-6.791555454796449e-9,-0.0016145208238440725,8.499790759989043e-6,-6.810504300559879e-9,-0.0016144936330299336,8.392510891781708e-6,-6.896885929710203e-9,-0.001614392228170857,8.223343280763281e-6,-7.032834909617165e-9,-0.0016141963521061268,8.028183732838383e-6,-7.189288356946133e-9,-0.0016139016436967962,7.851860839942969e-6,-7.330101133146092e-9,-0.0016135231106711163,7.740313336524296e-6,-7.4183830864822594e-9,-0.0016130954016894184,7.730606125699386e-6,-7.424519615650904e-9,-0.0016126685428214326,7.840105042654435e-6,-7.334806831697677e-9,-0.0016122981087462733,8.057474208610399e-6,-7.1585873366644e-9,-0.0016120303080747725,8.339676729142519e-6,-6.930579850289531e-9,-0.001611885615787256,8.619402313112867e-6,-6.704899178695777e-9,-0.0016118481928508355,8.824139607217275e-6,-6.539785116730204e-9,-0.001611868604140801,8.90107812285037e-6,-6.477642765675682e-9,-0.001611881154272387,8.835912981377337e-6,-6.529915716142489e-9,-0.0016118277460059921,8.655388821984905e-6,-6.674986610903632e-9,-0.001611675919713035,8.41338736769802e-6,-6.869352972909047e-9,-0.0016114237381993468,8.169993921702883e-6,-7.06452679210035e-9,-0.001611093177231819,7.974354515474472e-6,-7.220908293079042e-9,-0.0016107187721478148,7.856385780125358e-6,-7.3144902295771e-9,-0.0016103373933631776,7.826230747315016e-6,-7.33726541883732e-9,-0.0016099815773490676,7.877830737849756e-6,-7.294288237410739e-9,-0.0016096761674665666,7.993507370107692e-6,-7.199928950656389e-9,-0.0016094369744081014,8.147984768505116e-6,-7.074608444117655e-9,-0.0016092702451640983,8.311598200694667e-6,-6.942216930039938e-9,-0.00160917228355665,8.453152537768642e-6,-6.827830668858108e-9,-0.001609129179254943,8.543077992903146e-6,-6.755189047281374e-9,-0.0016091171262881026,8.557333011262786e-6,-6.743558851885236e-9,-0.0016091041391435737,8.481979668330493e-6,-6.804049103358642e-9,-0.0016090539129368906,8.317618601666572e-6,-6.9360391917084e-9,-0.0016089320065604345,8.082194724983374e-6,-7.1249350615802805e-9,-0.0016087135318696238,7.810443188597418e-6,-7.342654995567478e-9,-0.0016083904469439763,7.548814847622212e-6,-7.551773316743061e-9,-0.0016079759933311404,7.346151109873746e-6,-7.71307892483668e-9,-0.0016075042761180575,7.242056143792723e-6,-7.794939036152872e-9,-0.00160702430711951,7.255973870729432e-6,-7.782022387653911e-9,-0.0016065893832426634,7.380066935880531e-6,-7.680904798184895e-9,-0.0016062439692449664,7.578337494266571e-6,-7.520654677956422e-9,-0.0016060111996290365,7.793284040925081e-6,-7.347429731587253e-9,-0.001605884722251656,7.959699219668078e-6,-7.2134347447406345e-9,-0.0016058284903456366,8.02276170190471e-6,-7.162490523129645e-9,-0.001605786300256652,7.954794950983538e-6,-7.216659725347376e-9,-0.0016056989183379042,7.763856680531235e-6,-7.3693711382787e-9,-0.0016055223349501092,7.489910937153623e-6,-7.5884774454684e-9,-0.0016052394922760655,7.190282869697641e-6,-7.827929734487749e-9,-0.0016048613732839356,6.9214213509586415e-6,-8.042440056461898e-9,-0.0016044191014809085,6.724717813606781e-6,-8.19887721405118e-9,-0.0016039523942876091,6.620315668122966e-6,-8.281210552001504e-9,-0.0016034994404368291,6.608103489245576e-6,-8.289661775609236e-9,-0.00160309058100955,6.672612775449543e-6,-8.236730302719379e-9,-0.0016027456251598608,6.788717605477168e-6,-8.142605180973005e-9,-0.0016024734564696638,6.92643298585074e-6,-8.031328805630021e-9,-0.001602272562723833,7.054461000471735e-6,-7.927975303945096e-9,-0.0016021316395473646,7.1429733909865235e-6,-7.85643420942448e-9,-0.001602030096147785,7.166416618010949e-6,-7.837159326460504e-9,-0.0016019389325304322,7.106967943498292e-6,-7.884384590805072e-9,-0.001601822909317285,6.958748005321464e-6,-8.002733282683978e-9,-0.001601645025670833,6.732028706082511e-6,-8.183846196126166e-9,-0.0016013737843991493,6.455595568760507e-6,-8.404514185145453e-9,-0.0016009923060795966,6.174736476004758e-6,-8.628343547216521e-9,-0.0016005063926833,5.943025935706647e-6,-8.81240660038963e-9,-0.001599947436018963,5.80863970378304e-6,-8.918249717289788e-9,-0.0015993671346443959,5.799343297164342e-6,-8.923895711975885e-9,-0.001598824450917896,5.912206177088279e-6,-8.831981049727163e-9,-0.0015983691261643967,6.112691262219383e-6,-8.670353040535608e-9,-0.001598027750726865,6.34370842368762e-6,-8.484735141405814e-9,-0.001597796970333321,6.541210365541908e-6,-8.32624668865039e-9,-0.0015976453400901444,6.6511270032490696e-6,-8.237927113772566e-9,-0.0015975225826418882,6.642865882163979e-6,-8.244027233433758e-9,-0.0015973733172837778,6.5160674645092064e-6,-8.344671256899067e-9,-0.0015971514460371861,6.299134854850162e-6,-8.517063826659138e-9,-0.0015968312197721644,6.040236787256278e-6,-8.722695998097968e-9,-0.0015964119337554,5.793741677183589e-6,-8.918192024461737e-9,-0.0015959153524303371,5.606512708157547e-6,-9.066246268690955e-9,-0.0015953776009036073,5.508240931702783e-6,-9.143302312759663e-9,-0.0015948390145066778,5.5079279870896205e-6,-9.142302190616902e-9,-0.0015943353730508711,5.595937570596819e-6,-9.07100224242127E-09,-0.0015938924112206762,5.749295724445448e-6,-8.947734194601513e-9,-0.0015935237022038366,5.937745603497693e-6,-8.796600268425784e-9,-0.0015932308952599915,6.128923308494835e-6,-8.643381449495809e-9,-0.0015930050349990598,6.292138592490837e-6,-8.512542405787741e-9,-0.0015928280496299403,6.401112560124816e-6,-8.425039499555748e-9,-0.001592674118163697,6.436402325511549e-6,-8.396358552439093e-9,-0.001592511242825915,6.388162226916735e-6,-8.434284847973138e-9,-0.0015923038548076277,6.259479463662382e-6,-8.536238644079333e-9,-0.0015920175360308354,6.069704190545227e-6,-8.686647143544019e-9,-0.0015916265581974022,5.855945053772369e-6,-8.855809836079169e-9,-0.0015911234432686942,5.66982094337028e-6,-9.002557749844637e-9,-0.0015905271902137126,5.566980643098267e-6,-9.082660120678599e-9,-0.0015898846649755427,5.5901058549402035e-6,-9.062364074658102e-9,-0.0015892607401442954,5.751420421663427e-6,-8.932240034166934e-9,-0.0015887185141690312,6.0241142294602755e-6,-8.713870498328418e-9,-0.0015882979764191441,6.3490168297115175e-6,-8.454426383873467e-9,-0.0015880035039804617,6.654182728757788e-6,-8.211064945180594e-9,-0.0015878052699886624,6.877775058584288e-6,-8.032786882775957e-9,-0.0015876517590710897,6.984489838970192e-6,-7.947450754328946e-9,-0.0015874863779336544,6.971221701182685e-6,-7.957325293941682e-9,-0.0015872619917445506,6.863185748489404e-6,-8.042215733171648e-9,-0.0015869502414554443,6.704200258300083e-6,-8.167230467721707e-9,-0.0015865450265327885,6.544861833301743e-6,-8.292209810873044e-9,-0.001586060881771174,6.431419708027262e-6,-8.380562643969391e-9,-0.0015855275390838218,6.397223103243651e-6,-8.4060105625722e-9,-0.001584982293378186,6.457920516330214e-6,-8.356321717507075e-9,-0.0015844620349776742,6.61081898948137e-6,-8.233749425801078e-9,-0.0015839966677754043,6.837813403661317e-6,-8.052680242552925e-9,-0.0015836049744388627,7.110512974486875e-6,-7.83558877254055e-9,-0.00158329313272495,7.39599782801762e-6,-7.60852007937778e-9,-0.0015830553572955281,7.661943418484884e-6,-7.397063210929995e-9,-0.0015828757453601038,7.88048537908479e-6,-7.223288825216026e-9,-0.0015827305073950087,8.030921094971425e-6,-7.103576255489422e-9,-0.0015825902239223386,8.10175707948008e-6,-7.046953362750228e-9,-0.0015824222470464458,8.09261347207407e-6,-7.0535751904136625e-9,-0.0015821938020142208,8.016239439311893e-6,-7.1131587433406575e-9,-0.001581876678930113,7.90023529461386e-6,-7.203688583790658e-9,-0.0015814541506088944,7.786937005316729e-6,-7.291589958387156e-9,-0.001580929437716428,7.72886735500687e-6,-7.33539011103742e-9,-0.001580332627237802,7.777305469592599e-6,-7.294769075619663e-9,-0.0015797203731629178,7.964409090283794e-6,-7.144630568893987e-9,-0.0015791630814620142,8.285391603077017e-6,-6.889058321940481e-9,-0.001578720878001717,8.692298812053108e-6,-6.566101724486824e-9,-0.001578419502984907,9.10747486170557e-6,-6.2370916464480965e-9,-0.0015782405062512823,9.452091527792786e-6,-5.9641611304561455e-9,-0.0015781312909732138,9.674079549613374e-6,-5.7882606428250385e-9,-0.001578027360075597,9.761402781761969e-6,-5.718703551331627e-9,-0.0015778737449317608,9.738155742011253e-6,-5.736256424581671e-9,-0.0015776373992268053,9.650582774239132e-6,-5.804222309092312e-9,-0.0015773098917586672,9.551555633876995e-6,-5.88077278945436e-9,-0.0015769037319662415,9.488450878456881e-6,-5.928572703455147e-9,-0.001576445875891479,9.49569390768316e-6,-5.920653078048749e-9,-0.001575970674530697,9.591327497139855e-6,-5.84304192231517e-9,-0.0015755133171369835,9.77658865659438e-6,-5.694997471322311e-9,-0.0015751042615903047,1.003778163139329e-5,-5.487458624638412e-9,-0.001574765041689377,1.0349895109118027e-5,-5.240176643150512e-9,-0.0015745057554236149,1.0681318357532525e-5,-4.978030419643896e-9,-0.001574324361526077,1.0998934195309128e-5,-4.727059345412328e-9,-0.0015742076584801335,1.1272847997949395e-5,-4.510760254880358e-9,-0.0015741334933916324,1.148015300643822e-5,-4.347106597166391e-9,-0.0015740736145208995,1.1607546540740536e-5,-4.2464524410951475e-9,-0.0015739967905234456,1.165297766004052e-5,-4.210215818202505e-9,-0.0015738721019847755,1.1626573124438477e-5,-4.230176567081147e-9,-0.0015736725816667494,1.1550994953670337e-5,-4.288272760115865e-9,-0.0015733796828682138,1.1460984868635478e-5,-4.357060355334619e-9,-0.0015729888863822469,1.1400977627530216e-5,-4.401668546947189e-9,-0.001572515654131937,1.1418948321355508e-5,-4.38465144129614e-9,-0.0015719991378984194,1.155499016771094e-5,-4.27489553861985e-9,-0.0015714991590845522,1.1825387317786e-5,-4.059992614526739e-9,-0.0015710820407434478,1.2207971645261938e-5,-3.757587705347629e-9,-0.00157079647604091,1.2639630181296142e-5,-3.4172617851035963e-9,-0.0015706506457699233,1.3034205729014649e-5,-3.106531606911105e-9,-0.0015706061696304065,1.3315507185698884e-5,-2.885049906609442e-9,-0.0015705947849098492,1.3446774868260129e-5,-2.7815199812259615e-9,-0.0015705471798354855,1.3439686701807493e-5,-2.7865797392088607e-9,-0.0015704165589056223,1.3341690442592115e-5,-2.8627232184856177e-9,-0.0015701872847721412,1.3213818456770147e-5,-2.9617956699222407e-9,-0.0015698706765883304,1.3111683729022345e-5,-3.0400379076245207e-9,-0.0015694951802119525,1.3074916344619818e-5,-3.0664473087197053e-9,-0.0015690965559719964,1.3124045477720016e-5,-3.02518922812497E-09,-0.0015687104237655423,1.3261776187223445e-5,-2.914483963298332e-9,-0.0015683672849147719,1.3476135614623932e-5,-2.744017121960997e-9,-0.001568089331561201,1.3744221248213585e-5,-2.531925583923272e-9,-0.001567888481635352,1.4036199389495978e-5,-2.301652902586154e-9,-0.0015677654444036897,1.431949385617295e-5,-2.0787019259425203e-9,-0.001567709854690696,1.4563082634763757e-5,-1.8873090716874538e-9,-0.0015677016010537767,1.474164561397543e-5,-1.7472081474154697e-9,-0.0015677133377832947,1.4839081201440235e-5,-1.6708576042155112e-9,-0.0015677139033290711,1.4850945784761677e-5,-1.6615071481920558e-9,-0.001567672273456403,1.4785614343760266e-5,-1.712298071717079e-9,-0.001567561728035762,1.4664077909571058e-5,-1.8064872373507266e-9,-0.001567363964362006,1.4518342278869283e-5,-1.9188087740274477e-9,-0.0015670730416101715,1.4388371092908044e-5,-2.017975036911366e-9,-0.001566699009351379,1.4317124795163991e-5,-2.0706086887569183e-9,-0.001566270342050259,1.434288706438812e-5,-2.0471994116831762e-9,-0.0015658331609196012,1.4488670512990482e-5,-1.9302484376469083e-9,-0.0015654445000836176,1.4750408147840926e-5,-1.72331580198987e-9,-0.0015651576376926135,1.5088818242514955e-5,-1.4572399696723894e-9,-0.0015650016611725502,1.543273520838367e-5,-1.1875289074112136e-9,-0.0015649646525930018,1.5699315031914638e-5,-9.786981777112633e-10,-0.0015649932080395524,1.5825615668091956e-5,-8.797288461446118e-10,-0.0015650127561441629,1.5794360168681763e-5,-9.039460652179229e-10,-0.0015649578766231919,1.5637909598140213e-5,-1.0258340424130335e-9,-0.0015647946888691952,1.5419919015121727e-5,-1.1953572908828253e-9,-0.001564525408102832,1.5208671664966406e-5,-1.3589165068917122e-9,-0.0015641786040441487,1.5056893076463547e-5,-1.4752664574075088e-9,-0.00156379486909857,1.4993534545273575e-5,-1.521981552315444e-9,-0.0015634150399108117,1.5024788854757072e-5,-1.4945831313107964e-9,-0.0015630731490801214,1.5139317110787819e-5,-1.4023153307767539e-9,-0.0015627932503844573,1.5314097884522007e-5,-1.2634546568637839e-9,-0.0015625884467632353,1.5519419283943223e-5,-1.1013546330723007e-9,-0.001562460875346721,1.5722949233932406e-5,-9.412785609553453e-10,-0.0015624021479970563,1.5893311969822037e-5,-8.076525173200512e-10,-0.0015623942663999986,1.600355815982286e-5,-7.213957276926135e-10,-0.0015624113087739449,1.603464562664121e-5,-6.972120092446669e-10,-0.0015624222244725121,1.5978599480086515e-5,-7.411073308205331e-10,-0.0015623947894483653,1.5840685366149302e-5,-8.486840929629714e-10,-0.0015623003825704094,1.563995164582476e-5,-1.0047498832725248e-9,-0.00156211896716867,1.5407677934949402e-5,-1.1846143530044873e-9,-0.0015618434715127026,1.5183522199556461e-5,-1.3572122413585078e-9,-0.001561482731818114,1.5009579708722523e-5,-1.4898312300154014e-9,-0.0015610623229379093,1.492287455651844e-5,-1.553978673492256e-9,-0.0015606225925568506,1.4946887881331915e-5,-1.5318866836714567e-9,-0.001560212971251659,1.5083203136375069e-5,-1.422837639342225e-9,-0.0015598818401117295,1.530556706953706e-5,-1.2475983890907835e-9,-0.0015596626235708532,1.5560011265301256e-5,-1.0482226412439358e-9,-0.001559559627593272,1.577486934926789e-5,-8.802955933378288e-10,-0.0015595405570984476,1.5881538273988095e-5,-7.9692043926817e-10,-0.0015595430360532403,1.5839771966023374e-5,-8.291538101517867e-10,-0.0015594959955338393,1.5654660779172335e-5,-9.72801001056983e-10,-0.0015593463001946208,1.5374391353418983e-5,-1.190114515735307e-9,-0.0015590762116928854,1.5069709060576866e-5,-1.4258030022227316e-9,-0.001558703847788798,1.4807611900845037e-5,-1.6276153266680996e-9,-0.0015582703547364113,1.4632787290015397e-5,-1.7608768873779355e-9,-0.00155782354477752,1.4561962806159921e-5,-1.812864234105201e-9,-0.0015574055106049006,1.4587994709651823e-5,-1.7895075593158592e-9,-0.0015570463687551211,1.4687835068240819e-5,-1.7090593224017948e-9,-0.0015567627265973315,1.4830172836249719e-5,-1.5960694700656643e-9,-0.0015565585721585488,1.4981143223910987e-5,-1.4769346528028385e-9,-0.0015564268779924705,1.5108248878273527e-5,-1.3768878228299211e-9,-0.001556351184307716,1.5183283689987646e-5,-1.3177718726983572e-9,-0.0015563071846080817,1.518499355836712e-5,-1.3159931882651027e-9,-0.001556264759061091,1.5101840586844419e-5,-1.3803631127402186e-9,-0.0015561910289953722,1.493467497760959e-5,-1.5099983155967233e-9,-0.001556054769142461,1.4698525876528096e-5,-1.692928407678446e-9,-0.0015558319325716652,1.4422419435365395e-5,-1.9062865699394374e-9,-0.00155551134062967,1.4146276673803998e-5,-2.118820791349384e-9,-0.0015550990200105716,1.3914554215767493e-5,-2.2959501362179986e-9,-0.0015546195256492723,1.376733680242155e-5,-2.406755127218841e-9,-0.001554113115567492,1.3730683214261952e-5,-2.4314473667369036e-9,-0.001553628664032215,1.3808584379673326e-5,-2.367474165297039e-9,-0.0015532132442453931,1.3978822784027847e-5,-2.232532482775318e-9,-0.0015529002123789554,1.4194626461009348e-5,-2.063117347756414e-9,-0.0015526985302697924,1.439325938164884e-5,-1.907804521574992e-9,-0.0015525869004329388,1.4511149461068737e-5,-1.8155962076796212e-9,-0.0015525163561113226,1.4502518791870292e-5,-1.821618126894051e-9,-0.0015524229966605255,1.4355340596169604e-5,-1.934861536785402e-9,-0.0015522480046320417,1.4097085782131253e-5,-2.1337720574238567e-9,-0.0015519570630758844,1.3785964147240603e-5,-2.373056019133126e-9,-0.0015515502090884452,1.3490805690072358e-5,-2.5993134735632945e-9,-0.0015510581583219735,1.3269136012428824e-5,-2.7680732374480753e-9,-0.0015505287216183647,1.3153018247135854e-5,-2.8547493909096727e-9,-0.0015500111337097319,1.3146302784594268e-5,-2.8566824400189927e-9,-0.0015495446374244918,1.3230505435768768e-5,-2.788469542937826e-9,-0.001549153320614908,1.3373991814169866e-5,-2.6747740927702085e-9,-0.0015488458317407083,1.3540368315253085e-5,-2.543818936185515e-9,-0.0015486175736199625,1.3694424215569561e-5,-2.422826603784886e-9,-0.0015484534953238353,1.3805782453544893e-5,-2.335244042665086e-9,-0.0015483305799586244,1.3851194736815257e-5,-2.2989915178837034e-9,-0.0015482199989999771,1.3816427644258473e-5,-2.3249912029369815e-9,-0.001548089463216438,1.369826171317471e-5,-2.41558809311908e-9,-0.0015479064843226234,1.3506495043573231e-5,-2.5629790637511724e-9,-0.0015476430650823826,1.3265142070830212e-5,-2.748308110889761e-9,-0.0015472817047777522,1.3011433188873347e-5,-2.9425170054115522e-9,-0.0015468215378123499,1.2791153939947237e-5,-3.1100615838046316e-9,-0.0015462823008519895,1.264978126784404e-5,-3.2158634430605283e-9,-0.0015457034820694632,1.2620793299373853e-5,-3.23437207800151e-9,-0.0015451371557708795,1.271461979911524e-5,-3.1580199349164043e-9,-0.0015446354809309358,1.2912598720449401e-5,-3.001718234269623e-9,-0.0015442364302565255,1.3169086681883902e-5,-2.801040276875315e-9,-0.0015439524938185769,1.342193894043896e-5,-2.604019123633512e-9,-0.0015437662068975597,1.3608488064402962e-5,-2.4588197532468753e-9,-0.0015436340713854192,1.3682357584886e-5,-2.4008622169249547e-9,-0.001543497962354699,1.3626252232787606e-5,-2.4430807619033354e-9,-0.00154330101649021,1.3456844397511336e-5,-2.572263294225788e-9,-0.0015430034083978895,1.3219882326718478e-5,-2.7529027871083723e-9,-0.0015425929181858147,1.2976711436722279e-5,-2.937645646025132e-9,-0.0015420866882192013,1.278670592403656e-5,-3.080856310691857e-9,-0.00154152398796979,1.2691851204048305e-5,-3.1504613502583297e-9,-0.001540953480044075,1.2708519035282108e-5,-3.1341863973903237e-9,-0.0015404202334010281,1.2827867903263539e-5,-3.039126457904035e-9,-0.0015399566733843208,1.302256759212801e-5,-2.886485245993735e-9,-0.0015395788942260255,1.325586308652444e-5,-2.7045866919813093e-9,-0.0015392872954454852,1.3489692472678766e-5,-2.5226746116671805e-9,-0.0015390695180788213,1.3690362719305401e-5,-2.3666060094382767e-9,-0.0015389039426561332,1.3831829101966165e-5,-2.2563601055744896e-9,-0.0015387628159656927,1.3897428531583792e-5,-2.20469239650718e-9,-0.0015386148936828994,1.388103058929039e-5,-2.2162086122068876e-9,-0.0015384280799308537,1.3788188762037226e-5,-2.28644706084773e-9,-0.0015381727896268602,1.3637252599749298e-5,-2.4010335015984904e-9,-0.00153782662638598,1.3459685165893791e-5,-2.5355047694054314e-9,-0.0015373803606947806,1.3298103454663454e-5,-2.6569224773298658e-9,-0.0015368439449366434,1.3200271754010526e-5,-2.7285944715443808e-9,-0.0015362497069414172,1.3208268582747388e-5,-2.7184455758695063e-9,-0.0015356491281297727,1.3344727868614513e-5,-2.609535624585385e-9,-0.0015351012857119798,1.3601376685119754e-5,-2.4087144532296773e-9,-0.001534655333305587,1.3936432395579682e-5,-2.1484399499017215e-9,-0.0015343338675460306,1.4284442308400234e-5,-1.8790986065537597e-9,-0.001534124900712501,1.4575769360907748e-5,-1.6540268609434805e-9,-0.001533986063403117,1.4757650849527079e-5,-1.5134089313619608e-9,-0.0015338585577077514,1.4808523097929115e-5,-1.4733758294952858e-9,-0.001533684646016743,1.4741520547899112e-5,-1.5234227094639102e-9,-0.001533422629589494,1.4597945041350879e-5,-1.6315309243635806e-9,-0.0015330556633583313,1.4434363097761433e-5,-1.7541719141681908e-9,-0.0015325932941699795,1.43077142414427e-5,-1.8477863331828831e-9,-0.0015320665277323265,1.426230754346835e-5,-1.878725396982042e-9,-0.0015315185461519663,1.4321473573738102e-5,-1.8295328556822685e-9,-0.001530993934766879,1.4485180350014558e-5,-1.7006180859558923e-9,-0.001530529287402824,1.4733246178698408e-5,-1.5076755247691595e-9,-0.0015301472235543963,1.5032273750256648e-5,-1.2763383865137975e-9,-0.001529854434526647,1.5343751423442615e-5,-1.0360201232972493e-9,-0.0015296430494533845,1.5631173065596047e-5,-8.145421075795626e-10,-0.0015294939224596445,1.5865044960165455e-5,-6.343581941131169e-10,-0.0015293804665335667,1.6025681201232713e-5,-5.104211518947967e-10,-0.0015292721800424954,1.6104406698012555e-5,-4.492264661427397e-10,-0.0015291376898846022,1.610398838942385e-5,-4.484456737093128e-10,-0.0015289476443276155,1.6038826092304203e-5,-4.967851368558057e-10,-0.0015286780300962212,1.5934920116292352e-5,-5.7407767303816e-10,-0.0015283144581671828,1.5828995706173513e-5,-6.520649957069123e-10,-0.001527857433495814,1.5765420962771622e-5,-6.968641554284709e-10,-0.0015273273599870595,1.578919190086431e-5,-6.74377333345776e-10,-0.001526766307082904,1.5934197950098757e-5,-5.592021348606761e-10,-0.0015262325434225242,1.6208917896855537e-5,-3.454009983392546e-10,-0.0015257856016340661,1.6585900155219326e-5,-5.434009904032178e-11,-0.001525465322369261,1.7003376453317625e-5,2.6667254099619e-10,-0.0015252747715500247,1.738282006332563e-5,5.577945753003107e-10,-0.0015251774516648478,1.765614484759572e-5,7.673293029466002e-10,-0.0015251111941016761,1.778888314628154e-5,8.693422948032573e-10,-0.0015250108675460873,1.7788373699605145e-5,8.698678813149482e-10,-0.0015248284104435656,1.769597096092772e-5,8.008933904221264e-10,-0.001524543138352943,1.7570342537972436e-5,7.074837082249667e-10,-0.001524161958697962,1.747014596631279e-5,6.344307222398109e-10,-0.00152371290844506,1.7441141511317046e-5,6.163780060845438e-10,-0.001523235851785127,1.7509215448337496e-5,6.72585413499027e-10,-0.0015227730669315363,1.7678694633934106e-5,8.058200670495614e-10,-0.0015223612736943114,1.7934688640477055e-5,1.0043203383510617e-9,-0.0015220259505717274,1.82482101335355e-5,1.2458005545171251e-9,-0.0015217783771147274,1.858278154644696e-5,1.502482588468059e-9,-0.0015216153779278,1.8901176203271382e-5,1.7461563926156706e-9,-0.001521521286606779,1.9171184850908933e-5,1.9524855806838318e-9,-0.0015214713531420381,1.936973086375099e-5,2.1040967574472464e-9,-0.0015214357043695024,1.9485117407839795e-5,2.1923000740043392e-9,-0.001521383137404215,1.9517692447771478e-5,2.217627952739704e-9,-0.0015212844821984616,1.9479511468266107e-5,2.1895835175049778e-9,-0.0015211156742934025,1.939342867657197e-5,2.1258913140746853e-9,-0.0015208608563400331,1.9291673965034527e-5,2.0512979780619082e-9,-0.001520515854495682,1.9213505125941906e-5,1.995657851135691e-9,-0.0015200919884612346,1.9200901897949216e-5,1.9905876211772794e-9,-0.0015196190517206686,1.9290978781291798e-5,2.0637415938522103e-9,-0.001519144803733725,1.9504713196396947e-5,2.2304122471037216e-9,-0.001518727462232059,1.9834280591372538e-5,2.484141135478913e-9,-0.0015184192950395239,2.0235367514319987e-5,2.7910634415758664e-9,-0.0015182452262433325,2.0633099952696904e-5,3.0944338572009063e-9,-0.0015181877354138221,2.094520859440517e-5,3.3320858875781925e-9,-0.0015181899043198905,2.1113683302729238e-5,3.4603240998125803e-9,-0.0015181776587180065,2.1127106051478163e-5,3.4708520228233463e-9,-0.0015180885131474918,2.1021030404410242e-5,3.391091106264991e-9,-0.0015178909438639508,2.0859213783789e-5,3.2698730446144373e-9,-0.0015175877233646422,2.0709171992738493e-5,3.1587082248994756e-9,-0.0015172073558787026,2.0623842481949752e-5,3.0977101310951086e-9,-0.0015167914191089214,2.063317965218757e-5,3.109204821067375e-9,-0.0015163832619076432,2.0743705953134367e-5,3.1975368071754336e-9,-0.0015160200669873704,2.0942485608743105e-5,3.3523023756736195e-9,-0.0015157281682930876,2.1202788343014117e-5,3.5528268410564887e-9,-0.0015155208240000008,2.1490072546112796e-5,3.7727761422749006e-9,-0.0015153978329193042,2.1767775800983042e-5,3.984512020996164e-9,-0.0015153466823297202,2.2002561279956053e-5,4.162975427671088e-9,-0.0015153449752000046,2.2168662578104594e-5,4.2888951154383054e-9,-0.0015153638372301824,2.225102728825126e-5,4.351136659371982e-9,-0.001515371889179471,2.2246993016359994e-5,4.3479874066622305e-9,-0.0015153392563930425,2.216641597337143e-5,4.287271959233951e-9,-0.001515241213541778,2.2030490914074532e-5,4.1854284582402095e-9,-0.0015150613338686283,2.1869574703626888e-5,4.065761994294679e-9,-0.0015147941551076818,2.1720147110229897e-5,3.956004055400928e-9,-0.0015144474064621842,2.1620798118500058e-5,3.885163322724043e-9,-0.0015140436280418352,2.160676344805545e-5,3.879380610579873e-9,-0.0015136202312386242,2.1702388771875214e-5,3.956357484574458e-9,-0.001513226034844196,2.191177437422689e-5,4.1185205826258535e-9,-0.0015129120080209172,2.221001677650227e-5,4.346649078495528e-9,-0.001512715541928629,2.254041791686142e-5,4.597890678761155e-9,-0.001512642323751254,2.282451516198137e-5,4.8132638236435735e-9,-0.001512656112032841,2.2987226657755368e-5,4.936448725917021e-9,-0.0015126871339836351,2.2987814401065566e-5,4.937036368579893e-9,-0.0015126589666124984,2.283832816494508e-5,4.824488181507253e-9,-0.0015125191642603442,2.2596939508072832e-5,4.643164810446097e-9,-0.001512255771697461,2.234135481963672e-5,4.452159952580022e-9,-0.0015118937115124553,2.2139907404171068e-5,4.303255975411923e-9,-0.00151147883232571,2.203443093930126e-5,4.227845582902372e-9,-0.001511060993239207,2.2037202305538674e-5,4.234671953457867e-9,-0.0015106824975225093,2.213657085421608e-5,4.314282868663287e-9,-0.0015103725536317254,2.2305348342064856e-5,4.4455958177446396e-9,-0.001510145935250769,2.2508543748264166e-5,4.601885979825811e-9,-0.0015100037941396729,2.27093975733727e-5,4.75536669510632e-9,-0.0015099353530227085,2.2873996336669858e-5,4.880600371514767e-9,-0.0015099200916151164,2.2974973370313923e-5,4.957188134048892e-9,-0.0015099304637137257,2.2994496007904244e-5,4.971952359005194e-9,-0.0015099352286913673,2.2926461766264454e-5,4.920579998432417e-9,-0.0015099033645110472,2.277759522000927e-5,4.808472749402745e-9,-0.0015098082535331882,2.256704567886276e-5,4.650450638927179e-9,-0.0015096316019525189,2.2324318804894625e-5,4.469136915658275e-9,-0.0015093665766133704,2.208567924099814e-5,4.2921241199986e-9,-0.0015090197629728298,2.1889299652124044e-5,4.148176635499323e-9,-0.0015086116448405531,2.1769507934527783e-5,4.062815296740895e-9,-0.0015081753500045245,2.1750466832938717e-5,4.05360291565382e-9,-0.0015077531763032308,2.183960388547096e-5,4.125383508132904e-9,-0.0015073900399322092,2.202167990402843e-5,4.2660809956394935e-9,-0.0015071232263286609,2.225573764208077e-5,4.44462415416496e-9,-0.0015069693776782423,2.2478572667533146e-5,4.6136193435732875e-9,-0.0015069127900212765,2.261830809440704e-5,4.719430802140069e-9,-0.0015069025568193628,2.2617773461514468e-5,4.719545121206075e-9,-0.0015068654430890603,2.2459193836491986e-5,4.601005606662283e-9,-0.001506732732291867,2.2175454413684737e-5,4.388897633440769e-9,-0.0015064676102254564,2.1838262916960467e-5,4.1374773793336535e-9,-0.0015060770908259737,2.152899176668202e-5,3.9081543995164606e-9,-0.0015056034531821725,2.130964096087466e-5,3.747499605308365e-9,-0.0015051039831142801,2.120817745888039e-5,3.67616765940978e-9,-0.0015046318558587788,2.121994692951462e-5,3.6900798243215312e-9,-0.0015042251268647423,2.1317953608248667e-5,3.768369282876351e-9,-0.0015039036630436163,2.1464388035088392e-5,3.88222893943776e-9,-0.0015036707819547192,2.1619516091843104e-5,4.001665844105285e-9,-0.0015035165886605325,2.1747302655433718e-5,4.099689013291884e-9,-0.00150342132600212,2.1818716266063703e-5,4.154695925069204e-9,-0.001503358325448771,2.1813879500024203e-5,4.1519986156729824e-9,-0.0015032968462424501,2.1723736492507323e-5,4.08503905892022e-9,-0.0015032052341075262,2.155133538091197e-5,3.956368101994074e-9,-0.0015030546872407823,2.1312355770057032e-5,3.778071180337243e-9,-0.0015028235326783174,2.103420332333634e-5,3.5710789610787957e-9,-0.0015025013887804367,2.075307806093682e-5,3.362886440108658e-9,-0.0015020922453497882,2.0508886287330707e-5,3.183598559287639e-9,-0.0015016154742786625,2.0338452391119222e-5,3.0607104114683997e-9,-0.0015011040515861569,2.0268076034948164e-5,3.0134867470089806e-9,-0.001500599804274013,2.030688168146457e-5,3.04807733049152e-9,-0.0015001460726057133,2.044239395900025e-5,3.154424023362247e-9,-0.00149977856352969,2.0639604039527855e-5,3.305819021705255e-9,-0.0014995156172464786,2.0844817059723325e-5,3.461959279396227e-9,-0.0014993500137638414,2.0995399978085027e-5,3.576249789876038e-9,-0.0014992456432738306,2.1035335583678028e-5,3.60729449457631e-9,-0.0014991428844553212,2.0933644184201608e-5,3.532476786791916e-9,-0.0014989745730104767,2.0698804268457708e-5,3.3586078624101303e-9,-0.0014986888360896111,2.0380406021878866e-5,3.1231135922833585e-9,-0.0014982686733544998,2.0053717417477414e-5,2.88245886837212e-9,-0.001497737525690711,1.979300837962255e-5,2.692135997911263e-9,-0.001497148017881539,1.9647196210900128e-5,2.588415637713842e-9,-0.0014965613991866607,1.9629093705834248e-5,2.5803785904338805e-9,-0.0014960289411646245,1.971968706434261e-5,2.653283174951249e-9,-0.0014955820412908304,1.9880736800477454e-5,2.778157555940626e-9,-0.0014952309905867504,2.006787897714019e-5,2.9216817011335566e-9,-0.0014949687552116315,2.0239968863611068e-5,3.053154202397362e-9,-0.001494776174475137,2.0364131096063462e-5,3.1481831138080597e-9,-0.0014946265704327824,2.0417849223123522e-5,3.1901577490234746e-9,-0.0014944892845262566,2.038968095963877e-5,3.170735822070018e-9,-0.001494332545660484,2.0279629489477603e-5,3.090127645122555e-9,-0.0014941263545837618,2.009946410020862e-5,2.957370145196969e-9,-0.0014938459444002585,1.9872625600314708e-5,2.7902699955053625e-9,-0.0014934759328347927,1.9632856641228426e-5,2.614335134584265e-9,-0.0014930145655336932,1.9420569813598002e-5,2.4599538294097267e-9,-0.001492476702076429,1.9276431553751654e-5,2.3574741074222654e-9,-0.001491893815555032,1.923270705234934e-5,2.3306640563010123e-9,-0.0014913096645020614,1.930428755097455e-5,2.3900526656468323e-9,-0.0014907716135890666,1.9482318555866433e-5,2.5283426168944e-9,-0.0014903193643921373,1.973316438958572e-5,2.7198781518158167e-9,-0.0014899741448074898,2.0003956799043533e-5,2.9249937542774248e-9,-0.0014897315523588778,2.023395845028581e-5,3.098573729705269e-9,-0.0014895604078392077,2.036929696434408e-5,3.200967785115278e-9,-0.0014894086578894246,2.0377579597678796e-5,3.2087039570247428e-9,-0.0014892158047863976,2.0258385868426954e-5,3.122098731804692e-9,-0.001488929416536435,2.00457625312811e-5,2.9669485121319134e-9,-0.0014885210657221955,1.9800292408669174e-5,2.7885218058526498e-9,-0.0014879957071757151,1.9591794282292342e-5,2.6386436925550972e-9,-0.0014873899746012964,1.9478359809753334e-5,2.5601312681883347e-9,-0.0014867596618360918,1.949011570768919e-5,2.5748323704033555e-9,-0.0014861620498762876,1.96239922223134e-5,2.6799132147527057e-9,-0.0014856407320978139,1.9849868774778618e-5,2.8525944425785092e-9,-0.0014852179082245765,2.0123138972227992e-5,3.0595746869390322e-9,-0.001484894404555705,2.0397436089605455e-5,3.266468246613373e-9,-0.0014846544662120268,2.063358248057847e-5,3.444366312054756e-9,-0.0014844719149976677,2.080401172999627e-5,3.573026893968126e-9,-0.0014843155256631664,2.089389600951698e-5,3.6416569247405195e-9,-0.0014841529717873015,2.0900677734307805e-5,3.6485643076621275e-9,-0.0014839536957402732,2.083324538196875e-5,3.6005774495059056e-9,-0.0014836914694317035,2.0711220588510544e-5,3.5125354304605184e-9,-0.0014833473561297718,2.0564086382282243e-5,3.406608295349423e-9,-0.0014829133688975399,2.0429297886048457e-5,3.3108019367196984e-9,-0.0014823963710327067,2.0348185310062236e-5,3.25579730356668E-09,-0.0014818207428450856,2.0358734524199104e-5,3.269510016130022e-9,-0.0014812274772494347,2.048563738802864e-5,3.369725367338494e-9,-0.0014806675693328044,2.0730221397913308e-5,3.556767697544755e-9,-0.0014801896123771137,2.106481501301274e-5,3.809538836492915e-9,-0.0014798249253679303,2.143590416769047e-5,4.088059593597637e-9,-0.0014795761455542354,2.177709692752412e-5,4.3431788306475135e-9,-0.0014794146511569793,2.202796158292254e-5,4.530508461441201e-9,-0.0014792883061481331,2.21516328538685e-5,4.623353141774396e-9,-0.0014791364524373138,2.2144870224967428e-5,4.620002061129199e-9,-0.001478906684187595,2.203791530288745e-5,4.543444647931511e-9,-0.0014785683235115793,2.1885258092804413e-5,4.434360357647662e-9,-0.0014781193401062422,2.1750689691606835e-5,4.339933827235743e-9,-0.0014775854795386373,2.169092982823376e-5,4.3017291032046366e-9,-0.001477012299802205,2.1742145708306606e-5,4.345842348530162e-9,-0.0014764526498468376,2.191281179061359e-5,4.477843345187745e-9,-0.0014759534363243591,2.2184454181331846e-5,4.683549499194312e-9,-0.0014755455960484022,2.2519217855883682e-5,4.93475027814799e-9,-0.0014752396898019221,2.2870962823821085e-5,5.1974073013490225e-9,-0.0014750271342094889,2.3195958122338928e-5,5.439457561441334e-9,-0.0014748851544931095,2.3460421517391652e-5,5.636259530417908e-9,-0.0014747829673421675,2.3644120169039524e-5,5.773169265596725e-9,-0.001474687320693333,2.374080291527646e-5,5.845840169919798e-9,-0.0014745666070528286,2.3756880234768512e-5,5.859274017653767e-9,-0.0014743937130802754,2.370958754850038e-5,5.826487086509059e-9,-0.0014741482569230124,2.3625217663658505e-5,5.767179828898929e-9,-0.001473818894785108,2.353730629244631e-5,5.7063097259063755e-9,-0.0014734060778071696,2.3484074946004946e-5,5.672082995091509e-9,-0.001472924981874492,2.3504008874457454e-5,5.692603170476783e-9,-0.0014724072644037177,2.3628534088270373e-5,5.790480507708103e-9,-0.0014718991918354172,2.387197597384268e-5,5.975569281186334e-9,-0.0014714535304005726,2.422153315886059e-5,6.2378093646216116e-9,-0.0014711147480171334,2.463284924493281e-5,6.5441791770475725e-9,-0.0014709018005976526,2.5037149761910478e-5,6.844044438239558e-9,-0.0014707971735682401,2.5361087416693702e-5,7.08371765685339e-9,-0.0014707499231823534,2.5551998946229314e-5,7.224937628064112e-9,-0.0014706928556039132,2.559617122586235e-5,7.2582251778159335e-9,-0.0014705654035565266,2.5521412187611647e-5,7.204692681405604e-9,-0.0014703314954858874,2.5384704814681434e-5,7.106814374546921e-9,-0.001469986538679709,2.5252782134341083e-5,7.013936096625625e-9,-0.0014695540981764408,2.5183955143550453e-5,6.968766442288963e-9,-0.0014690762900327096,2.5215950258180403e-5,6.998456432120111e-9,-0.0014686020708823385,2.5360870206104967e-5,7.1110940673169154e-9,-0.001468176386598783,2.5606318665205407e-5,7.296811789583651e-9,-0.001467831922902369,2.592100301791191e-5,7.532134484148677e-9,-0.0014675843884544473,2.6263002803544234e-5,7.786145194716698e-9,-0.0014674316308986469,2.6588795756606222e-5,8.027060457500164e-9,-0.0014673561469447757,2.6861167542429433e-5,8.22790296065784e-9,-0.001467329858105644,2.7054651629686617e-5,8.370365121482301e-9,-0.0014673197245071011,2.7158013293985568e-5,8.446566196624374e-9,-0.0014672929285562525,2.717410966689769e-5,8.458950180331899e-9,-0.0014672208834997042,2.7118011201820044e-5,8.4189307986924e-9,-0.0014670820001531884,2.7014370775278294e-5,8.34495143072538e-9,-0.0014668636033767842,2.6894642929169563e-5,8.260369284515231e-9,-0.0014665634811135814,2.6794222102966245e-5,8.19123024785904e-9,-0.0014661914098972825,2.674909228562432e-5,8.163696466874626e-9,-0.001465770520724381,2.679114846664634e-5,8.200590836488431e-9,-0.001465337400999473,2.6941364730020337e-5,8.316505230393117e-9,-0.0014649388274165344,2.720105595585084e-5,8.511638713086152e-9,-0.0014646228477321868,2.7543744071366404e-5,8.766111014759959e-9,-0.0014644237187200332,2.791300341092992e-5,9.03854416039646e-9,-0.001464344966501293,2.8232690622237343e-5,9.273507511061049e-9,-0.00146435037296069,2.8431059296295023e-5,9.418980704214775e-9,-0.0014643722903750673,2.8469546292426055e-5,9.447272055057291e-9,-0.0014643365365555757,2.835968319109381e-5,9.367378735882624e-9,-0.0014641906956874835,2.8157374663821298e-5,9.220801767421116e-9,-0.0014639203699168175,2.793907130398366e-5,9.063972153156974e-9,-0.001463547743641747,2.777469392086682e-5,8.94819704622287e-9,-0.0014631181589848093,2.770971394278009e-5,8.906400483072525e-9,-0.0014626840013922983,2.7759615661242276e-5,8.949152904876544e-9,-0.0014622919778576426,2.7913376841285792e-5,9.067487925009645e-9,-0.0014619755187329977,2.8141209895819113e-5,9.238874894232356e-9,-0.0014617515941158011,2.840319839203045e-5,9.43374255358404e-9,-0.0014616206414562979,2.8657228590944903e-5,9.621316724398479e-9,-0.0014615686117483452,2.88656511750599e-5,9.77438646312151e-9,-0.0014615705063021332,2.9000359578134314e-5,9.872855466969257e-9,-0.0014615948598680729,2.9046009835060456e-5,9.905967029354836e-9,-0.001461608579480747,2.900124632155569e-5,9.873148682283592e-9,-0.0014615815016667387,2.8877991973552452e-5,9.783504838835818e-9,-0.001461490094774729,2.86991569091944e-5,9.65415693656674e-9,-0.0014613200429391873,2.8495379357004293e-5,9.507823393054517e-9,-0.0014610677949529376,2.8301325099769305e-5,9.370010304543687e-9,-0.0014607412749224225,2.8151769243240655e-5,9.266016170060544e-9,-0.001460359934266054,2.807741831222614e-5,9.217802419101563e-9,-0.001459954104262802,2.810012125881796e-5,9.240548810429125e-9,-0.0014595629027557774,2.8227079611997363e-5,9.338632920695437e-9,-0.001459229207373408,2.8444570378339046e-5,9.501348366973721e-9,-0.0014589903312328463,2.8713478214577256e-5,9.699906185659169e-9,-0.0014588646330113623,2.8970928160528702e-5,9.888704607981145e-9,-0.0014588380390138703,2.9143000527045176e-5,1.0014441084658272e-8,-0.0014588592510678298,2.916941323267889e-5,1.0033827086917958e-8,-0.0014588523821274818,2.9030953044343186e-5,9.933409035109415e-9,-0.0014587456644553276,2.8762477106263568e-5,9.739062259576716e-9,-0.001458501091057045,2.844024437257861e-5,9.506799999855063e-9,-0.001458127143420008,2.8150315430128008e-5,9.299622484807696e-9,-0.001457669435461303,2.7957472722960843e-5,9.164649386359438e-9,-0.0014571891196582215,2.788982620398424e-5,9.12181556433836e-9,-0.001456742655817562,2.7940470402478702e-5,9.1652351867303225E-09,-0.0014563700347164715,2.807848674258035e-5,9.271524962474886e-9,-0.0014560912588836175,2.826144010513699e-5,9.409190716108027e-9,-0.0014559078903742333,2.8445360201978687e-5,9.546033498517481e-9,-0.0014558067229891146,2.859145029300421e-5,9.65399985693406e-9,-0.0014557639343839687,2.867025540336573e-5,9.712068997365372e-9,-0.0014557492065120391,2.8664138594720785e-5,9.707890097359682e-9,-0.0014557298001960863,2.8568493551007577e-5,9.638560286519974e-9,-0.0014556745936851589,2.839177608483774e-5,9.510625422205857e-9,-0.0014555579370875656,2.815423714782051e-5,9.339183329667601e-9,-0.0014553629537277198,2.788526924195518e-5,9.14595894628804e-9,-0.0014550838573302906,2.7619586166606147e-5,8.95646433151999e-9,-0.0014547270310782067,2.7392671032165182e-5,8.796565507284847e-9,-0.0014543107698863327,2.7235881381529104e-5,8.688803061502544e-9,-0.0014538636547068316,2.7171559156514596e-5,8.648806078255112e-9,-0.0014534215710303232,2.7208440099601352e-5,8.68207399305285e-9,-0.001453023162629078,2.7337595874378007e-5,8.781285876904159e-9,-0.0014527031545351094,2.7529636906441165e-5,8.924571639210088e-9,-0.0014524833008458392,2.7735059993107925e-5,9.075970709988018e-9,-0.0014523621957538728,2.7890571544417234e-5,9.19001842577633e-9,-0.0014523077282724134,2.793379091660291e-5,9.22219677030714e-9,-0.0014522585937687897,2.7825223830983982e-5,9.144582317840528e-9,-0.0014521403795198652,2.7569149189017554e-5,8.960821255109384e-9,-0.001451893505617349,2.7219493141957345e-5,8.71038541518176e-9,-0.0014514989868257015,2.6862149989671336e-5,8.455773632611902e-9,-0.0014509858377754307,2.6581283086955036e-5,8.257991564297597e-9,-0.0014504161415827162,2.642918854125528e-5,8.154588223766253e-9,-0.0014498591074915373,2.6414918608475404e-5,8.151437565096828e-9,-0.0014493694267968629,2.6511849721997745e-5,8.228438049517682e-9,-0.001448977429522189,2.667403387196817e-5,8.351639483937653e-9,-0.0014486894408670674,2.6851542282472955e-5,8.484552463610772e-9,-0.0014484932417684118,2.700055872143433e-5,8.595494996252945e-9,-0.0014483645278005612,2.7088384874182358e-5,8.661115546099852e-9,-0.0014482724252906584,2.709519725146361e-5,8.667505390416874e-9,-0.0014481837922433506,2.7014246607076915e-5,8.610209915657879e-9,-0.0014480667630384213,2.6851367625677863e-5,8.493819386236972e-9,-0.0014478939985973695,2.6623968239600285e-5,8.331252341426477e-9,-0.0014476458307236476,2.635924813759418e-5,8.142498231074953e-9,-0.00144731311061095,2.6091231865376743e-5,7.952456649511876e-9,-0.0014468992107673786,2.5856444834127285e-5,7.787722099695875e-9,-0.0014464205463444633,2.5688537660867144e-5,7.672567457310853e-9,-0.0014459051593164764,2.5612502082256553e-5,7.624669465502379e-9,-0.0014453891705153014,2.5639343311066898e-5,7.651283894303304e-9,-0.0014449112632642608,2.5762226244715e-5,7.746636370364774e-9,-0.0014445057152640856,2.595501245227754e-5,7.891145026699935e-9,-0.0014441946694093064,2.6173960497131583e-5,8.052917461887092e-9,-0.0014439806475695987,2.636349963132186e-5,8.192048807278225e-9,-0.0014438411873451745,2.646690890427581e-5,8.268250609640819e-9,-0.0014437286296687954,2.6441511003512633e-5,8.251567637578792e-9,-0.001443578444853297,2.6275165731848128e-5,8.1339948899965e-9,-0.0014433273202660133,2.5997083928831833e-5,7.937096006765073e-9,-0.001442936409115405,2.567444219779277e-5,7.709508223593939e-9,-0.0014424086701659907,2.5391506100637698e-5,7.511889392046065e-9,-0.0014417892862947695,2.5219227646515815e-5,7.3950023164529674e-9,-0.001441147821285167,2.5191187270965408e-5,7.382424698161206e-9,-0.0014405525671188652,2.5297654232244746e-5,7.46642211059057e-9,-0.0014400506984845914,2.549697136888099e-5,7.616367322101587e-9,-0.0014396609875323325,2.573422047511667e-5,7.792362299919142e-9,-0.0014393770763216152,2.595731091946943e-5,7.956884889193762e-9,-0.0014391755390315833,2.6126299063856226e-5,8.081435414644157e-9,-0.0014390240648945822,2.621661961154909e-5,8.14872862017226e-9,-0.0014388876944924675,2.6218749094750767e-5,8.152319004850451e-9,-0.0014387330155882449,2.6136521805769236e-5,8.095315097039274e-9,-0.0014385310964584244,2.5985249879172986e-5,7.98902323659588e-9,-0.0014382599562942464,2.578984727441783e-5,7.851630723953415e-9,-0.001437907000473791,2.558258430097201e-5,7.706602007982529e-9,-0.0014374713475980292,2.539984818095332e-5,7.580298299298504e-9,-0.0014369654370357835,2.5277430919184726E-05,7.498481675769508e-9,-0.0014364149450387434,2.524445155724815e-5,7.481837634246073e-9,-0.0014358560907401488,2.531680732424275e-5,7.541239382042651e-9,-0.0014353299421923447,2.549174348391302e-5,7.67395063074306e-9,-0.0014348742608147498,2.5745447771436074e-5,7.862124322155557e-9,-0.0014345144552345818,2.6035180886781052e-5,8.074600559849243e-9,-0.0014342558619612528,2.6306381027453562e-5,8.272200047331242e-9,-0.001434079589311781,2.6503932782313694e-5,8.415841468953633e-9,-0.0014339437223416472,2.658569469617018e-5,8.476099349229682e-9,-0.0014337909162949274,2.653533090809111e-5,8.442148816768944e-9,-0.0014335620776601706,2.6370518693983798e-5,8.32738512813637e-9,-0.0014332136074441035,2.614232716045764e-5,8.16878953155742e-9,-0.0014327328436069065,2.592319956427502e-5,8.01823403658462e-9,-0.0014321447131647473,2.5785451237951414e-5,7.927095900408931e-9,-0.0014315049081303302,2.5778022969174607e-5,7.92972291182139e-9,-0.001430881462440153,2.591187567232032e-5,8.0331743458699e-9,-0.0014303331772278684,2.616035797685171e-5,8.217711692267238e-9,-0.0014298944934438224,2.6472481447071226e-5,8.446469961108673e-9,-0.0014295714210435305,2.6790920056085873e-5,8.67839265732808e-9,-0.0014293466416022695,2.706669905365202e-5,8.878682424407924e-9,-0.0014291886521796292,2.726698482237647e-5,9.024249768378522e-9,-0.0014290605250002484,2.7376714200605378e-5,9.104750656058354e-9,-0.0014289262535661926,2.7396668664601868e-5,9.121125674470142e-9,-0.0014287546376585928,2.734037378186705e-5,9.083361209742851e-9,-0.0014285215854872378,2.7231132652078738e-5,9.008387004102195e-9,-0.0014282118094740023,2.7099446056366132e-5,8.91824477219024e-9,-0.0014278205169719102,2.6980369162120895e-5,8.838165817857077e-9,-0.0014273551041353886,2.6910052790540644e-5,8.794014126806641e-9,-0.001426836217410468,2.692081607168585e-5,8.808668492982802e-9,-0.0014262969989791532,2.703467650249471e-5,8.897360695655925e-9,-0.0014257791653392638,2.7256366225002294e-5,9.062761040100194e-9,-0.0014253252294257476,2.7568169951920956e-5,9.291482753990074e-9,-0.0014249678412150235,2.7929586139618507e-5,9.554082763102208e-9,-0.001424719247272349,2.8283922152095817e-5,9.8099633515569e-9,-0.0014245649540888968,2.857138997614607e-5,1.0016784431585915e-8,-0.001424464819701088,2.874523105273305e-5,1.0141889729331605e-8,-0.0014243621807249333,2.8785614912595313e-5,1.0172034668321106e-8,-0.001424198594399113,2.8706550061364885e-5,1.0118076747905602e-8,-0.0014239298298215845,2.855338333973738e-5,1.0012952173362216e-8,-0.0014235384273948743,2.8391359153604704e-5,9.903332600293055e-9,-0.001423039068963574,2.8288237213866135e-5,9.837163726172813e-9,-0.0014224748046457894,2.8295862255426144e-5,9.850620457112531e-9,-0.0014219048911750486,2.8436423102220665e-5,9.95855573897215e-9,-0.0014213881167722824,2.8698019217145672e-5,1.0151643259449534e-8,-0.001420967450066756,2.9040746996965335e-5,1.0400951762124473e-8,-0.0014206611416994707,2.941022918094345e-5,1.066766982712532e-8,-0.001420462210050991,2.9752840746124096e-5,1.0913884054961945e-8,-0.0014203445464611544,3.0027360180390388e-5,1.111072374244291e-8,-0.0014202718523974758,3.0210625033603962e-5,1.1242230035220288e-8,-0.0014202059478694213,3.0297793467362173e-5,1.130543514634517e-8,-0.0014201126851082163,3.0299379741317255e-5,1.1308212546961511e-8,-0.001419965354967399,3.023722740125861e-5,1.126641797154726e-8,-0.0014197463754245395,3.0140745523510838e-5,1.1201222166966375e-8,-0.0014194482287997765,3.004374201377961e-5,1.1136832656018542e-8,-0.0014190743137684472,2.9981438465230445e-5,1.1098298258684281e-8,-0.001418639809555389,2.9986901963587264e-5,1.1108885328964141e-8,-0.001418171968272546,3.008617815680982e-5,1.1186579824169502e-8,-0.0014177085861886171,3.0291942135319834e-5,1.133964646008498e-8,-0.001417293059956346,3.05967206924271e-5,1.1562003200599675e-8,-0.0014169650708668305,3.0968510049347896e-5,1.1830355814926381e-8,-0.0014167481369272308,3.135278601208798e-5,1.210581797947972e-8,-0.0014166384270926171,3.168371673086619e-5,1.2341922339142801e-8,-0.001416601011852032,3.1903068064781095e-5,1.2497950944243014e-8,-0.001416577597530908,3.197990561297152e-5,1.2552765821321245e-8,-0.001416504023895075,3.192205189348772e-5,1.2512782170450044e-8,-0.0014163303334027324,3.177388113563488e-5,1.241023118085146e-8,-0.0014160352058320256,3.160197306166359e-5,1.2292773285630224e-8,-0.00141563020412267,3.147525183817631e-5,1.2209223647116733e-8,-0.001415154182806351,3.144686499940079e-5,1.219665427065755e-8,-0.0014146612944608804,3.1542588220823e-5,1.2272337128455885e-8,-0.0014142068212377667,3.17574992652059e-5,1.2431711044918489e-8,-0.0014138345495532411,3.206030619328251e-5,1.2651790954942593e-8,-0.0014135683760217552,3.240316711893786e-5,1.2898338055852669e-8,-0.0014134095167311366,3.273394154711765e-5,1.3134557510283644e-8,-0.0014133391618895421,3.300757270905415e-5,1.3329020931988017e-8,-0.0014133249690354472,3.31939594183018e-5,1.34610409333419e-8,-0.0014133289896605121,3.328119077205221e-5,1.3522794560786908e-8,-0.001413314822460721,3.3274656159752014e-5,1.3518607273504532e-8,-0.0014132527079583823,3.3193518643689525e-5,1.3462443644765452e-8,-0.0014131223461608018,3.3066195373724894e-5,1.3374722960227905e-8,-0.001412913992766144,3.292604615376844e-5,1.3279258055873786e-8,-0.0014126286522506636,3.2807704536436217e-5,1.3200599557144906e-8,-0.0014122779793304208,3.274378481004234e-5,1.3161617579820244e-8,-0.0014118840527596287,3.276134215889836e-5,1.318093997452497e-8,-0.0014114785988180107,3.287744387268909e-5,1.3269863918137662e-8,-0.0014111005438624472,3.309364278437632e-5,1.3428626290622916e-8,-0.0014107903444190032,3.339035361538781e-5,1.3642698341029341e-8,-0.0014105801213301545,3.372401496582465e-5,1.388102605623399e-8,-0.0014104809172316352,3.403140528598448e-5,1.4099169038639324e-8,-0.0014104721889999377,3.4244418459823575e-5,1.4249623837810556e-8,-0.0014105012730983308,3.431313016865975e-5,1.4297897851110098e-8,-0.0014104976530675871,3.4227232153276674e-5,1.4237483279052317e-8,-0.0014103978203613941,3.4023102917727105e-5,1.409478258989675e-8,-0.0014101683041605874,3.37710788967813e-5,1.3920030577394821e-8,-0.0014098152448564095,3.3549879175073367e-5,1.3769043937615413e-8,-0.0014093780596700428,3.342166325020871e-5,1.3685419104499984e-8,-0.0014089135400348065,3.341756238018929e-5,1.3690309226175862e-8,-0.0014084788334548454,3.3535493238112093e-5,1.37811189010826e-8,-0.0014081186845767038,3.374669781848928e-5,1.3936497322555077e-8,-0.0014078585339577186,3.400633332696204e-5,1.4124144409347155e-8,-0.0014077028508541673,3.42645878758073e-5,1.4308805334751806e-8,-0.0014076373664685578,3.4476340111075574e-5,1.4459025629545484e-8,-0.0014076339312917433,3.4608360343685586e-5,1.4552028310657353e-8,-0.0014076568208633863,3.464345854701809e-5,1.457641017245677e-8,-0.001407669277186434,3.458141606859998e-5,1.4532638817739162e-8,-0.0014076391876356137,3.443714237304597e-5,1.4431695615751243e-8,-0.0014075431589499628,3.42369134134312e-5,1.4292440206539112e-8,-0.0014073687088618709,3.401369363319955e-5,1.4138337135936162e-8,-0.0014071148025871514,3.380247774740365e-5,1.3994150056515684e-8,-0.0014067912957618034,3.363619137526845e-5,1.3882976655598566e-8,-0.001406417785833611,3.3542132876375727e-5,1.3823657520053249e-8,-0.0014060220696082155,3.3538605100390865e-5,1.3828389059174037e-8,-0.0014056380007306819,3.363132267047934e-5,1.3900311168766636e-8,-0.0014053019647113963,3.3809476163547754e-5,1.403098639393186e-8,-0.0014050467952829435,3.404235090138576e-5,1.4198316878603361e-8,-0.0014048925106380783,3.427900969237467e-5,1.4366522015636952e-8,-0.0014048352740607154,3.4454830578689884e-5,1.4490717899879615e-8,-0.0014048394576729162,3.450785686877302e-5,1.452817586539771e-8,-0.0014048405652307403,3.4402642110255266e-5,1.4454790297227312e-8,-0.001404764049178016,3.415061768516878e-5,1.4279243287251102e-8,-0.0014045544794032856,3.381223147440442e-5,1.4044512501709342e-8,-0.001404199019517501,3.34753415760048e-5,1.3812662721467575e-8,-0.0014037308928993113,3.322120032523223e-5,1.3640780805957817e-8,-0.0014032126628860826,3.309751484531842e-5,1.3561886833224022e-8,-0.0014027118105852483,3.311012467826726e-5,1.3579138976547671e-8,-0.0014022815504324637,3.3230920394382554e-5,1.3671690150678322e-8,-0.0014019518800177807,3.341272421638346e-5,1.3805518700988216e-8,-0.0014017290980962978,3.360354473780993e-5,1.3943711301648619e-8,-0.0014016000243125806,3.375694744860536e-5,1.4053807349603574e-8,-0.001401537920759662,3.383830386691697e-5,1.4112051071441454e-8,-0.001401508516602354,3.38278961316903e-5,1.4105333153706423e-8,-0.0014014756088146735,3.372177220527613e-5,1.4031568509718768e-8,-0.0014014060660440912,3.353076489929489e-5,1.3898885331730495e-8,-0.0014012739860668733,3.327793091957308e-5,1.3723815329935129e-8,-0.0014010636973225197,3.2994742987017955e-5,1.3528667448275764e-8,-0.0014007713279077503,3.271646976821572e-5,1.3338315101143095e-8,-0.0014004048383781237,3.247734073521475e-5,1.3176767910392181e-8,-0.001399982720160362,3.230609707347399e-5,1.3063963984102755e-8,-0.0013995317115542282,3.222223618554686e-5,1.3013065431940527e-8,-0.0013990837824146862,3.223298100013896e-5,1.3028362806501945e-8,-0.0013986724408224693,3.2330914871978444e-5,1.310378977963939e-8,-0.0013983280897938944,3.249234472603756e-5,1.3222059543851011e-8,-0.0013980719157413676,3.26771022098923e-5,1.3354806377875613e-8,-0.001397908301055983,3.2831582187595467E-05,1.3464847011626819e-8,-0.001397817347062273,3.289747667782527e-5,1.3512189019105797e-8,-0.001397751512132713,3.28277047548693e-5,1.3464871106866769e-8,-0.0013976423203658295,3.260691801970788e-5,1.3312974762696126e-8,-0.0013974208313565252,3.2266892279175194e-5,1.3079220779759064e-8,-0.0013970462170215551,3.188350281420138e-5,1.2816866134850941e-8,-0.001396526429072313,3.15504266134185e-5,1.2591347003175733e-8,-0.0013959162362914407,3.134208482490942e-5,1.2454319312828303e-8,-0.0013952934212709952,3.12876940613365e-5,1.2425488800691024e-8,-0.0013947290248052181,3.1368994960239776e-5,1.2491155941132685e-8,-0.0013942677926455445,3.153656609401135e-5,1.2615901943459306e-8,-0.001393923604268954,3.173094679442987e-5,1.2757639356311874e-8,-0.0013936850245932673,3.189863660685751e-5,1.287894027262053e-8,-0.0013935243292366379,3.20005016684368e-5,1.295286703830315e-8,-0.0013934059148908537,3.2014351751696166e-5,1.2964583482053157e-8,-0.0013932926868055352,3.193431439306784e-5,1.29106853876459e-8,-0.0013931506171936453,3.176890244780789e-5,1.279767711238989e-8,-0.0013929521622677431,3.153852371658084e-5,1.2640170940633758e-8,-0.0013926789463034916,3.1272453315631026e-5,1.2458806214965603e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json new file mode 100644 index 0000000..fb9e3f3 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":4000,"numberOfSamples":1000,"samples":[-0.0013923237156324762,3.10051313115372e-5,1.227772476593132e-8,-0.0013918913030339685,3.0771749723490945e-5,1.2121506307793586e-8,-0.0013913982265213998,3.060338976954708e-5,1.2011722091998317e-8,-0.0013908707040811456,3.052231698115309e-5,1.1963565646016446e-8,-0.001390341194667023,3.053811122326968e-5,1.198311590315129e-8,-0.0013898437960375297,3.064516965374932e-5,1.206567850949141e-8,-0.0013894089283486013,3.0821985171837794e-5,1.219550046257788e-8,-0.0013890577325521491,3.103246124664618e-5,1.234697235237071e-8,-0.001388796542557306,3.12295787680487e-5,1.2487412403812631e-8,-0.0013886120720738905,3.136210718279558e-5,1.2581786671309725e-8,-0.0013884688947041909,3.1385084006792996e-5,1.2599819994917749e-8,-0.0013883119458332274,3.127360474065753e-5,1.2525244839418013e-8,-0.0013880771300425396,3.103666131759266e-5,1.2365079707027838e-8,-0.0013877108551321243,3.072388276790292e-5,1.2154123117817592e-8,-0.0013871929430152989,3.0416606360292832e-5,1.1948741207200948e-8,-0.001386550391714903,3.0201205713724095e-5,1.1808429582903155e-8,-0.0013858506737383077,3.01357997768827e-5,1.1772803776767341e-8,-0.0013851759104291312,3.0229273883448915e-5,1.1847175892297428e-8,-0.001384592881220668,3.0443874540562336e-5,1.2004550146250928e-8,-0.0013841349373795028,3.0716035009628255e-5,1.2200281016361826e-8,-0.0013838008265632472,3.098058540822912e-5,1.2389009867920565e-8,-0.0013835645353088798,3.118712181259742e-5,1.2536034707260684e-8,-0.0013833877106148682,3.130621279611001e-5,1.2621499602221395e-8,-0.0013832296076505604,3.132862793970199e-5,1.2639667607070031e-8,-0.0013830533398082588,3.12615629520694e-5,1.2596119024238894e-8,-0.0013828292717648978,3.1124447793189026e-5,1.2504739208443173e-8,-0.001382536894290198,3.094526718665489e-5,1.238515875044467e-8,-0.001382166093661862,3.0757242436986546e-5,1.2260502826500002e-8,-0.0013817180828804721,3.059536687843876e-5,1.2155030689028627e-8,-0.0013812057662645032,3.0492356610198686e-5,1.2091316281131741e-8,-0.001380652965115511,3.0473944416237442e-5,1.2086924984252354e-8,-0.0013800918794172976,3.055405387965315e-5,1.2151015510603047e-8,-0.0013795585330693598,3.073089776278415e-5,1.2281664264941277e-8,-0.0013790865545975047,3.098519781713838e-5,1.2464780864846123e-8,-0.0013787002512115332,3.128152698517288e-5,1.2675280274755086e-8,-0.0013784083744284533,3.1573186320784075e-5,1.2880703491497357e-8,-0.0013782000273174174,3.181021399913377e-5,1.3046891803617532e-8,-0.0013780438976636682,3.19495350745652e-5,1.3144947940134445E-08,-0.0013778917807731484,3.1965865743675875e-5,1.3158522917130986e-8,-0.0013776871187557247,3.186125601721507e-5,1.3090054814128084e-8,-0.0013773784345414448,3.167005542915762e-5,1.2963872114938864e-8,-0.0013769355296510653,3.145540027821075e-5,1.2823586040322064e-8,-0.0013763632310821636,3.129451925350386e-5,1.2721957602677264e-8,-0.0013757051938257864,3.12548297658547e-5,1.2704580862237566e-8,-0.0013750325167593762,3.136980980661643e-5,1.2793513871866098e-8,-0.0013744200205683455,3.162705495398507e-5,1.297932656913296e-8,-0.001373921486003332,3.197529339541822e-5,1.3226141868971426e-8,-0.0013735559011152846,3.2345581764334165e-5,1.348632479099502e-8,-0.001373308834962327,3.267443076739067e-5,1.371638565723486e-8,-0.0013731440063741707,3.2918760928589506e-5,1.3887174851188765e-8,-0.0013730169969555664,3.306017025212218e-5,1.3986670884338575e-8,-0.001372885707505598,3.310177282032628e-5,1.4017645484980559e-8,-0.0013727161916267327,3.3062157152929236e-5,1.3993385650784678e-8,-0.0013724849650755444,3.2969528124314865e-5,1.3933613214447525e-8,-0.0013721795043743403,3.2857132549704686e-5,1.3861350571725312e-8,-0.001371798199420233,3.275975393211377e-5,1.3800541749182052e-8,-0.001371350267391638,3.2710546394120883e-5,1.3773879566233536e-8,-0.0013708554660210265,3.273748651144435e-5,1.3800332746004124e-8,-0.0013703429392595617,3.285908614832062e-5,1.3892159705457934e-8,-0.0013698482842253537,3.3079732505826116e-5,1.4051723281032588e-8,-0.0013694081789119867,3.33859216188847e-5,1.4269017354682299e-8,-0.0013690527752354515,3.3745292715916165e-5,1.4521206280880815e-8,-0.0013687973523058758,3.411026251376824e-5,1.4775341685527618e-8,-0.001368635864809167,3.442685430142285e-5,1.4994571911094206e-8,-0.001368539190809793,3.464725058126877e-5,1.5146764379461272e-8,-0.0013684596653155585,3.474271507765218e-5,1.5213225547749854e-8,-0.001368341412275528,3.471292842213015e-5,1.519483961915156e-8,-0.0013681340963783179,3.458864103148684e-5,1.5113572919781048e-8,-0.001367806641243441,3.442624486265195e-5,1.50084742827696e-8,-0.0013673571913396174,3.429481060775766e-5,1.492663952720893e-8,-0.0013668159712882611,3.425816744323766e-5,1.4910976651613327e-8,-0.0013662389537410337,3.4356679623137404e-5,1.4987969233571176e-8,-0.0013656929127156684,3.45948313307106e-5,1.5159539607809455e-8,-0.0013652362239514341,3.493996318255312e-5,1.540252269790559e-8,-0.0013649025854399397,3.533339206451559e-5,1.5676457844807535e-8,-0.001364694017006319,3.5709311516460834e-5,1.5936510012581336e-8,-0.0013645848390629765,3.6013317990182196e-5,1.6146000719145376e-8,-0.001364533006244744,3.6213785847992433e-5,1.6284003030435945e-8,-0.0013644928514191061,3.630413358810897e-5,1.6346724249025713e-8,-0.0013644247321696538,3.629841553527456e-5,1.6344369702902035e-8,-0.0013643001276189908,3.622421100892573e-5,1.6296216699097295e-8,-0.0013641030557909385,3.611585301733881e-5,1.6225972675099123e-8,-0.001363829489218644,3.6009284510185593e-5,1.6158272516967093e-8,-0.0013634861732545276,3.59384398039273e-5,1.6116209694143087e-8,-0.0013630895393642458,3.593237657339973e-5,1.6119355456194334e-8,-0.0013626646638417342,3.601230966247092e-5,1.618170797397962e-8,-0.001362243629102119,3.61880268938273e-5,1.6309266089582144e-8,-0.0013618622841067652,3.64538655276576e-5,1.6497393820657673e-8,-0.0013615544772974737,3.6785502430891855e-5,1.6728827194428735e-8,-0.0013613437161679772,3.713991173468955e-5,1.697386187057922e-8,-0.001361234021080087,3.746108911824493e-5,1.719439828116546e-8,-0.0013612037638524796,3.7692536866159856e-5,1.7352457140518053e-8,-0.001361206847971344,3.779396838960132e-5,1.742144636974678e-8,-0.0013611832374142226,3.7756031020244054e-5,1.7396011201743785e-8,-0.001361076191644119,3.7606086154550635e-5,1.7295762883204998e-8,-0.0013608496577971183,3.7401677631123275e-5,1.716059227166306e-8,-0.0013604990488915285,3.721408821670011e-5,1.7039232838343093e-8,-0.0013600520125571307,3.710835900255645e-5,1.697551683056106e-8,-0.0013595600099726545,3.712640498271043e-5,1.699695432191236e-8,-0.0013590841935409244,3.727760024130748e-5,1.71086275657347e-8,-0.001358679890204125,3.7538440708709115e-5,1.7293378278633092e-8,-0.00135838372132039,3.7860514706880266e-5,1.7517577456580113e-8,-0.0013582064390924846,3.818407848658802e-5,1.7740504047095585e-8,-0.0013581329272131877,3.845318903981301e-5,1.7924558906917483e-8,-0.0013581286541984837,3.862806850028087e-5,1.804345582610699e-8,-0.0013581498661130592,3.869159882723496e-5,1.8086397228283904e-8,-0.0013581539476281528,3.8649261142348775e-5,1.8057850041261867e-8,-0.0013581071226586598,3.8524189345567815e-5,1.7974088393725628e-8,-0.0013579883897526658,3.835008509330396e-5,1.7858356144320932e-8,-0.00135779018044884,3.8164384929534315e-5,1.7736239335068338e-8,-0.001357517027048097,3.800295694389865e-5,1.7632074255281237e-8,-0.0013571835099064594,3.789645286761099e-5,1.7566453802397066e-8,-0.0013568122323385436,3.786770844912354e-5,1.7554432313878906e-8,-0.0013564319146861178,3.792940545542113e-5,1.760394100218013e-8,-0.0013560751230173448,3.808144637277682e-5,1.771409396726125e-8,-0.001355774723096159,3.830809315615486e-5,1.7873437098055103e-8,-0.0013555581129589143,3.85759738967685e-5,1.805883775217439e-8,-0.0013554390847187276,3.883530834118127e-5,1.8236503204011578e-8,-0.001355409076240439,3.9027250633763036e-5,1.836699003058032e-8,-0.0013554321238842734,3.909874292882928e-5,1.8415131641263553e-8,-0.0013554490528045462,3.90218298649933e-5,1.836291168093209e-8,-0.0013553934777036426,3.88088274293409e-5,1.8219570358978306e-8,-0.0013552148739573212,3.8513364752411945e-5,1.8022193158569097e-8,-0.0013548976458011926,3.821394753241361e-5,1.7824422483376295e-8,-0.0013544662886432806,3.7987376502045904e-5,1.767824374087245e-8,-0.001353975167144596,3.788495877740173e-5,1.7617747380746665e-8,-0.0013534897169433626,3.792082265498023e-5,1.765132964873523e-8,-0.0013530679623867672,3.807359000944715e-5,1.776318309780284e-8,-0.0013527479846985185,3.82970266342332e-5,1.7920945154219862e-8,-0.0013525427737545379,3.8534126622979775e-5,1.8085549434599747e-8,-0.0013524413684721215,3.8730475725509086e-5,1.8220348872787433e-8,-0.0013524143580498815,3.8844550459139665e-5,1.829793515757917e-8,-0.0013524218120327396,3.885388259987187e-5,1.830403299861606e-8,-0.0013524218425320289,3.8756778190668846e-5,1.8238389323156565e-8,-0.0013523781464381873,3.857000249417001e-5,1.8113029207340084e-8,-0.0013522652859119853,3.832360437107422e-5,1.7948697828581297e-8,-0.0013520711816035556,3.805446144349454e-5,1.7770522740602527e-8,-0.0013517970474576544,3.7800026057570636e-5,1.760383303417335e-8,-0.0013514555502732262,3.759328234789039e-5,1.7470765883749638e-8,-0.0013510681406707162,3.745922197053802e-5,1.7387859156658665e-8,-0.0013506622145259056,3.741251692416933e-5,1.7364450412879974e-8,-0.0013502682953014952,3.7455843878886433e-5,1.7401577299135237e-8,-0.0013499170098815133,3.757843888576176e-5,1.749114206947162e-8,-0.0013496352319221148,3.775487577483726e-5,1.7615323797154796e-8,-0.001349440649488639,3.794495617766193e-5,1.7746750386563e-8,-0.0013493347424008647,3.809671819615431e-5,1.7850659872577422e-8,-0.001349295890582923,3.8155046902679206e-5,1.7890635669466993e-8,-0.0013492766959825838,3.807708327935155e-5,1.783874654599152e-8,-0.0013492110735612106,3.785133903622449e-5,1.768815260529381e-8,-0.001349033855976422,3.751108479626499e-5,1.7461969909133265e-8,-0.0013487069795288752,3.71303580506857e-5,1.7210535401503925e-8,-0.0013482379377772538,3.67993136705882e-5,1.6994726215196717e-8,-0.001347678208637462,3.659042766946213e-5,1.6863046213677397e-8,-0.0013471024913643088,3.6534216931232214e-5,1.6835204236635903e-8,-0.0013465817610538201,3.661531138061667e-5,1.6899639174625656e-8,-0.0013461637307948591,3.67855921967629e-5,1.702274689456107e-8,-0.0013458659040266978,3.698362593147122e-5,1.716236688366139e-8,-0.0013456786096961092,3.715150481672573e-5,1.7279353443021854e-8,-0.0013455729607305563,3.7245547989349e-5,1.7344764650321256e-8,-0.0013455098437546319,3.724113849988471e-5,1.7342896275356996e-8,-0.0013454479816408654,3.713333537401668e-5,1.7271384802952297e-8,-0.0013453504339775678,3.693472237791048e-5,1.7139497446621565e-8,-0.0013451893773290563,3.66714125531848e-5,1.69653115025737e-8,-0.001344949053305138,3.6377906041960216e-5,1.677225728879621e-8,-0.0013446268270830342,3.6091487557028635e-5,1.658542561013439e-8,-0.0013442324429496473,3.584683872566402e-5,1.642801203779135e-8,-0.0013437858000863968,3.567151610583387e-5,1.6318286339007397e-8,-0.0013433138090793446,3.5582718952246464e-5,1.6267381969080993e-8,-0.0013428468552322856,3.5585336135370534e-5,1.6277959343087233e-8,-0.0013424151246411572,3.567102736278635e-5,1.6343650045473796e-8,-0.0013420448217986622,3.581815905326798e-5,1.6449191850671144e-8,-0.0013417540843769415,3.5992621037087415e-5,1.6571231526067074e-8,-0.0013415482762467888,3.6150103914661236e-5,1.6680073457991738e-8,-0.0013414149103668283,3.624123041516313e-5,1.6743183400191018e-8,-0.0013413198868642417,3.622112481074397e-5,1.6731446982117347e-8,-0.00134120845189209,3.606369069563323e-5,1.662842184473864e-8,-0.0013410151654745213,3.577732086480887e-5,1.644054815603201e-8,-0.0013406846000409867,3.5413460407537786e-5,1.6202722853245097e-8,-0.0013401964609990825,3.505743910760731e-5,1.597215167212452e-8,-0.001339580425708274,3.479926151774641e-5,1.5808809507200667e-8,-0.0013389081886428587,3.4697739505285814e-5,1.5751417893888703e-8,-0.0013382653066040724,3.475913717423584e-5,1.5803205836748927e-8,-0.0013377198411129057,3.494136132320177e-5,1.593492656261746e-8,-0.0013373043650111932,3.517656334298736e-5,1.610030358752367e-8,-0.001337015439682562,3.5396327466275055e-5,1.6253166407767607e-8,-0.0013368239990238354,3.5548502293726705e-5,1.6358821610884963e-8,-0.0013366882809558854,3.560374914900627e-5,1.639832805964985e-8,-0.001336564467218173,3.55549452941308e-5,1.636783817572624e-8,-0.001336413776905145,3.541320348266067e-5,1.627564290331889e-8,-0.0013362066349266496,3.520293709170862e-5,1.6138666700184393e-8,-0.0013359249232274644,3.4956909941254224e-5,1.5979096337218204e-8,-0.001335562924155841,3.4711420854670354e-5,1.582122151313896e-8,-0.0013351271377057652,3.4501629448674695e-5,1.568840971408109e-8,-0.0013346349529169633,3.435711455278746e-5,1.5600199028356044e-8,-0.0013341121333342526,3.429797828590833e-5,1.5569686455152157e-8,-0.0013335892705868344,3.433199575848479e-5,1.5601580165570786e-8,-0.0013330975858291425,3.4453164621146024e-5,1.5691228226897585e-8,-0.0013326644706178011,3.464175000353744e-5,1.5824749599259128e-8,-0.0013323090899715643,3.4865868704546576e-5,1.5980301002253026e-8,-0.001332038338966892,3.508467362609938e-5,1.6130447896255385e-8,-0.0013318434113794785,3.525330077002587e-5,1.6245627748951825e-8,-0.0013316975322695253,3.5330051294305984e-5,1.629891139049964e-8,-0.001331556286785722,3.528619312938393e-5,1.6272293810409786e-8,-0.0013313628892067757,3.5117465072944155e-5,1.6163989779264318e-8,-0.0013310606240185723,3.485372509921916e-5,1.5994525193249938e-8,-0.001330612092239529,3.4560074860567006e-5,1.5807325007709106e-8,-0.0013300188819388664,3.432251695865668e-5,1.5659203035008636e-8,-0.0013293294672254824,3.4218415257834896e-5,1.5600856484188996e-8,-0.0013286258106659328,3.4284781738908746e-5,1.565595284409048e-8,-0.0013279927272366466,3.45034557497139e-5,1.5811466092247673e-8,-0.001327487245815521,3.481218305757908e-5,1.6025241776050835e-8,-0.0013271243297834456,3.5132573390047304e-5,1.6244759544611692e-8,-0.0013268819281744182,3.539726971412401e-5,1.6425301589944376e-8,-0.0013267165573191055,3.556482846968116e-5,1.6539830337867083e-8,-0.0013265791200544272,3.5621827657685704e-5,1.65802341767557e-8,-0.0013264257556151145,3.5577571686315266e-5,1.6553560503722946e-8,-0.0013262233226004878,3.5456646993180176e-5,1.6476832678516347e-8,-0.0013259512363842734,3.529220284957108e-5,1.637245418374682e-8,-0.001325601512184336,3.512067149730725e-5,1.626470172512635e-8,-0.0013251780734556981,3.497753493359976e-5,1.6177001160356565e-8,-0.0013246955832461917,3.4893601735033355e-5,1.6129548566876927e-8,-0.0013241776457557696,3.48914999010468e-5,1.6137021291032074e-8,-0.001323654076904617,3.4982458503977466e-5,1.6206426975212878e-8,-0.001323157041794967,3.5163901163299414e-5,1.633548781930137e-8,-0.0013227162371304468,3.5418581049974166e-5,1.651211397605036e-8,-0.001322353687199993,3.571581068946272e-5,1.6715367990939248e-8,-0.0013220789387146789,3.601504810064792e-5,1.6918061706656873e-8,-0.0013218855424575772,3.627176280866538e-5,1.7090842854582353e-8,-0.0013217496703317407,3.644508967537851e-5,1.720733490398808e-8,-0.0013216315923340778,3.65064979819164e-5,1.7249749168249524e-8,-0.0013214807524120568,3.644842841848515e-5,1.7214291107647377e-8,-0.0013212451222116156,3.6291038759722376e-5,1.711523751546295e-8,-0.0013208846495029996,3.60839095678969e-5,1.6985751198887913e-8,-0.0013203863550454039,3.5898854230369885e-5,1.6873006904681262e-8,-0.0013197752519399667,3.581166273538234e-5,1.682623169287687e-8,-0.0013191132255276836,3.587626651540886e-5,1.6879911863534467e-8,-0.0013184815790603076,3.610241659999537e-5,1.7039381967031404e-8,-0.0013179528033887597,3.645020189165614e-5,1.7277474450637978e-8,-0.0013175658344386403,3.684610326885073e-5,1.7545256584706124e-8,-0.0013173174371027003,3.721139594219093e-5,1.7790800848516823e-8,-0.0013171711591591722,3.7487162393554715e-5,1.797564920289059e-8,-0.0013170751083556422,3.764583818573417e-5,1.8082333520008842e-8,-0.0013169783809209286,3.768958704883004e-5,1.8113134460390254e-8,-0.001316841058972772,3.764169488899078e-5,1.8084193168326844e-8,-0.001316637900558923,3.7536910324560003e-5,1.8018963620713753e-8,-0.0013163581227781179,3.74137736701684e-5,1.7943079177386814e-8,-0.0013160036253867771,3.730942928907114e-5,1.7880963442603383e-8,-0.0013155869869080489,3.725613444561233e-5,1.7853614375631473e-8,-0.0013151295414577234,3.7278505354125304e-5,1.787686235519351e-8,-0.0013146592408699255,3.7390914042800114e-5,1.7959684433815758e-8,-0.0013142077768859126,3.759497729467439e-5,1.8102557862085905e-8,-0.0013138065061219567,3.787768395385184e-5,1.829626511989185e-8,-0.0013134811566555547,3.821118959139425e-5,1.852186865762894e-8,-0.0013132460042088404,3.855535190871637e-5,1.8752556581883928e-8,-0.0013130988888896927,3.886358760935178e-5,1.895768052314085e-8,-0.0013130187880983333,3.9091668685304416e-5,1.9108648012779857e-8,-0.0013129673945528086,3.920788927157972e-5,1.9185567048502283e-8,-0.001312895240496861,3.920217618512819e-5,1.918302681873874e-8,-0.001312751730863596,3.9091588709663886e-5,1.911338071545348e-8,-0.0013124973851131767,3.892009752658912e-5,1.9006243630838438e-8,-0.0013121156803837925,3.875132474201483e-5,1.8903462645629538e-8,-0.0013116210944716046,3.865427657691962e-5,1.884969011796569e-8,-0.0013110596023093825,3.868436788208665e-5,1.8880112079492577e-8,-0.0013104989534392041,3.8865074759319735e-5,1.9008779400316116e-8,-0.0013100096397849926,3.917783531577995e-5,1.9222392671536106e-8,-0.001309642829716195,3.9566441267412706e-5,1.9483464693369486e-8,-0.0013094148936341004,3.995569860122959e-5,1.974262974906959e-8,-0.0013093055437344233,4.027611457180882e-5,1.9954738594955732e-8,-0.001309269039156997,4.048329051082387e-5,2.0091415425642147e-8,-0.0013092512762208149,4.0565121305456764e-5,2.0145608286767512e-8,-0.001309204630257768,4.053753924890765e-5,2.012862157893427e-8,-0.0013090962818779034,4.043433842048082e-5,2.0063277178960123e-8,-0.0013089102465701447,4.029664197237238e-5,1.997689758602726e-8,-0.0013086455823332675,4.0164989376255385e-5,1.9896096938048397e-8,-0.0013083132488531785,4.0074480065967925e-5,1.984365052124649e-8,-0.0013079330725531747,4.005204604799757e-5,1.9836785608003348e-8,-0.0013075312073712847,4.011466197911539e-5,1.9886069633644747e-8,-0.001307137746835643,4.026767679567208e-5,1.9994358344677895e-8,-0.0013067837953618638,4.0503094151805196e-5,2.01557240211866e-8,-0.001306497350497541,4.079836018355392e-5,2.0354765247593485e-8,-0.0013062978171497592,4.111688713507512e-5,2.0567103458832157e-8,-0.0013061898867567608,4.141184316071489e-5,2.076202115095573e-8,-0.0013061586859034154,4.163420723263055e-5,2.0907824211338083e-8,-0.001306168888940125,4.174442656977121e-5,2.097944515467198e-8,-0.0013061699709006594,4.1724685296821706e-5,2.0966324787464215e-8,-0.0013061076049721034,4.1587191985985025e-5,2.0877595932876798e-8,-0.0013059383156452651,4.137443165518275e-5,2.0741958445759947e-8,-0.0013056425938951044,4.115010375057371e-5,2.060146632532868e-8,-0.0013052319085176942,4.098302152604378e-5,2.0500810520890916e-8,-0.001304747148248314,4.092874780265062e-5,2.0475326047336553e-8,-0.0013042487662768554,4.101434730128175e-5,2.0541288681716853e-8,-0.0013038012226081626,4.1230688242288156e-5,2.0691321547541416e-8,-0.0013034559571685768,4.153480564579156e-5,2.0896370294196396e-8,-0.0013032379646765557,4.186207205593781e-5,2.111390047210881e-8,-0.0013031404096450596,4.214456168589532e-5,2.1299885763046148e-8,-0.0013031290193728036,4.232935992827865e-5,2.1420571741681682e-8,-0.0013031540596875038,4.23905340975399e-5,2.1460031357444974e-8,-0.0013031647722243158,4.233156537247573e-5,2.1421513055924925e-8,-0.0013031210288061141,4.217942322107834e-5,2.132339132411696e-8,-0.0013029993698451085,4.19743987627646e-5,2.1192421768565933e-8,-0.0013027936105723457,4.175999540557228e-5,2.1057114924379603e-8,-0.0013025120277159838,4.157542941681899e-5,2.094288448231488e-8,-0.0013021733414850117,4.145125605159004e-5,2.0869268627645957e-8,-0.001301802931785606,4.1407329810052036e-5,2.08486684580033e-8,-0.0013014297605223135,4.1451908374797514e-5,2.0885812894513818e-8,-0.001301083724057496,4.158098532303902e-5,2.097737756976615e-8,-0.0013007927456693646,4.177756479690925e-5,2.1111607157953057e-8,-0.0013005788777021498,4.201134797256275e-5,2.126826146359011e-8,-0.0013004531008736547,4.224008178027535e-5,2.1419659516259312e-8,-0.0013004095063849311,4.241435176037529e-5,2.1533904163364884e-8,-0.001300421059288809,4.248719684661846e-5,2.1581120022324038e-8,-0.0013004404355749176,4.2427837091928494e-5,2.154224223145945e-8,-0.0013004089398097013,4.223528221728633e-5,2.1417667998620045e-8,-0.001300273032166463,4.194483810430357e-5,2.1231287584532605e-8,-0.0013000028044365167,4.162178844603964e-5,2.1026176296912758e-8,-0.0012996038559836165,4.13426408192214e-5,2.0852193780685487e-8,-0.0012991166051237216,4.117141562699113e-5,2.075042537733095e-8,-0.0012986036072820868,4.11409724530234e-5,2.0741091404972655e-8,-0.00129813093698426,4.1245817779201306e-5,2.0819172199719124e-8,-0.0012977508063343123,4.144686388868798e-5,2.095795336418839e-8,-0.001297490230837804,4.168441992169005e-5,2.1117875653405696e-8,-0.0012973474395914163,4.1894427134593377e-5,2.1257279803455193e-8,-0.001297295439153459,4.2023506126082147e-5,2.1342116234441085e-8,-0.001297290782074011,4.2039616230905444e-5,2.135260920238544e-8,-0.0012972848326498105,4.193654440887813e-5,2.1285844007437435e-8,-0.0012972345579685953,4.173200901824314e-5,2.1154255926592056e-8,-0.0012971103085002236,4.146082617494708e-5,2.0981029477300475e-8,-0.0012968992859630204,4.116578087591e-5,2.0794135694006106e-8,-0.0012966049398672192,4.0888917956883526e-5,2.062073980233298e-8,-0.0012962436295018886,4.066503581169255e-5,2.048307865442981e-8,-0.0012958401889284622,4.051793533458231e-5,2.039611146731544e-8,-0.0012954236654983476,4.045897416475759e-5,2.036662737785466e-8,-0.001295023782419015,4.0486965044612695e-5,2.039320583348045e-8,-0.0012946679941183582,4.058855472756083e-5,2.04665171281949e-8,-0.001294378612670228,4.0738730472340536e-5,2.056977240662803e-8,-0.0012941693814056939,4.0901748941956324e-5,2.0679500965812705e-8,-0.0012940411451917645,4.1033526442706687e-5,2.0767257575044023e-8,-0.0012939771911233996,4.108715604463087e-5,2.0803239961642293e-8,-0.0012939403977219072,4.102298074380838e-5,2.0762689854466084e-8,-0.0012938758566673656,4.082263405184535e-5,2.0634736809638925e-8,-0.0012937224662835883,4.050242606522025e-5,2.04308134609819e-8,-0.0012934330065076513,4.0117530900919203e-5,2.0187204767311665e-8,-0.00129299496709262,3.974958987689844e-5,1.995693470396842e-8,-0.0012924399284722028,3.947942732467301e-5,1.97920270271869e-8,-0.0012918341252307118,3.935776650460108e-5,1.9724509449887175e-8,-0.0012912547182092019,3.938930857514804e-5,1.97562193674393e-8,-0.001290764690673244,3.9536318616132313E-05,1.9861433777957795e-8,-0.0012903973760540492,3.973598386964465e-5,1.999850762256767e-8,-0.001290153512484858,3.992107605315687e-5,2.0123564778314824e-8,-0.0012900074223779303,4.003630507822636e-5,2.0201177921784495e-8,-0.0012899173653183767,4.0047651738485965e-5,2.0210256251888748e-8,-0.001289836338458807,3.9945200597234635e-5,2.0145554957262593e-8,-0.0012897212998023743,3.9741174964429464E-05,2.0016045030261284e-8,-0.0012895399514628268,3.946480109359224e-5,1.984132894245313e-8,-0.001289274703109967,3.915530609271689e-5,1.9647018285539673e-8,-0.0012889236983102278,3.885435148165427e-5,1.9459904493796818e-8,-0.0012884992067051736,3.8599204907948656e-5,1.9303690980758627e-8,-0.0012880241094008248,3.841760919532316e-5,1.919581678542283e-8,-0.0012875274288492854,3.832480054634275e-5,1.9145604099175267e-8,-0.0012870398381923532,3.8322598965528926e-5,1.9153682307136752e-8,-0.001286589752637628,3.840001624621069e-5,1.921238243257403e-8,-0.001286200095515784,3.853470660398659e-5,1.9306731004946026e-8,-0.0012858854886256378,3.86948874374072e-5,1.9415831342562718e-8,-0.001285649499877651,3.8841815281819475e-5,1.9514646939711093e-8,-0.0012854817125208561,3.893347048250045e-5,1.9576511347082232e-8,-0.0012853550995704204,3.893063802338816e-5,1.957702413451274e-8,-0.0012852255062502298,3.880636244566652e-5,1.9499927026725242e-8,-0.0012850362965845573,3.855807120421911e-5,1.9344575221523857e-8,-0.0012847311762881526,3.821819412132976e-5,1.9132471126811794e-8,-0.0012842747415224602,3.785512960173213e-5,1.8907745295762985e-8,-0.0012836727720354248,3.755682902569352e-5,1.8726620068053298e-8,-0.0012829784848701268,3.739895052372073e-5,1.863702330001396e-8,-0.0012822761530718633,3.7413406126274804e-5,1.86584821716486e-8,-0.0012816490975353263,3.7576622715437714e-5,1.8774747376732938e-8,-0.0012811506382189232,3.782352818577273e-5,1.8943030423325083e-8,-0.001280792436308164,3.8075703038799706e-5,1.9112370169816575e-8,-0.0012805506354879592,3.8266803390174146e-5,1.924016463208864e-8,-0.001280380738437669,3.835616719714332e-5,1.9300925603521577e-8,-0.0012802324630361284,3.833113206068958e-5,1.9287565495948508e-8,-0.0012800605197691444,3.820264194508425e-5,1.920823586964087e-8,-0.0012798308757682997,3.799830026151315e-5,1.9081529959526996e-8,-0.001279523586304221,3.775524645033635e-5,1.8931707405877297e-8,-0.0012791333774328948,3.751366233471992e-5,1.8784512978711527e-8,-0.0012786686262423056,3.731102412992637e-5,1.866362274807214e-8,-0.001278148993439162,3.717726455085912e-5,1.858772206348688e-8,-0.001277601942460214,3.7131143654458575e-5,1.8568311190285357e-8,-0.001277058498171101,3.717813474632904e-5,1.860839408251708e-8,-0.0012765487555219646,3.7310038774287194e-5,1.8702216632045073e-8,-0.0012760977084929888,3.750624505138479e-5,1.8836075192321827e-8,-0.0012757217769639956,3.773626898786361e-5,1.8990020553034313e-8,-0.0012754261510291623,3.796321117292025e-5,1.9140234836138346e-8,-0.0012752029370164196,3.814797161205375e-5,1.92619071682081e-8,-0.0012750300928311285,3.825433491231409e-5,1.9332571089335484e-8,-0.0012748715426223701,3.825537269909844e-5,1.933609650898041e-8,-0.0012746797344262949,3.814138317428424e-5,1.926746861138821e-8,-0.0012744025805871105,3.7928235466975745e-5,1.9137729803848053e-8,-0.0012739963106319753,3.76626292022581e-5,1.897701998328715e-8,-0.0012734431088101711,3.741827327675125e-5,1.8832033009774208e-8,-0.0012727667106644165,3.7277449564075795e-5,1.875439150470419e-8,-0.0012720341118107905,3.730026444876515e-5,1.8781318347441222e-8,-0.0012713356167803904,3.749648014380484e-5,1.8917966913490027e-8,-0.0012707503868975216,3.7818967997163176e-5,1.913345694695096e-8,-0.0012703173742792029,3.818460780063819e-5,1.937431495323869e-8,-0.0012700276843224567,3.850870965846999e-5,1.958648929745315e-8,-0.0012698377681131297,3.873234768920965e-5,1.9732821725893906e-8,-0.0012696906468235986,3.883226562099348e-5,1.9799315570624595e-8,-0.0012695333572401244,3.881646913695297e-5,1.9792123553590806e-8,-0.0012693264687479164,3.8713735516634753e-5,1.9730552119127156e-8,-0.0012690470332673868,3.856312435152506e-5,1.9640099461015192e-8,-0.0012686878191508922,3.840594630060172e-5,1.9547213377593627E-08,-0.0012682550883168057,3.8280251328920796e-5,1.9475836828836382e-8,-0.0012677659821863632,3.8216972883763434e-5,1.9445125675948716e-8,-0.0012672456478990807,3.823702573972687e-5,1.9467782522189376e-8,-0.0012667239315270157,3.834915450270301e-5,1.954879813655444e-8,-0.0012662315252516165,3.8548712365379255e-5,1.9684700622829385e-8,-0.0012657956741872701,3.881779556352557e-5,1.9863631777743846E-08,-0.0012654358895180374,3.9127111421915734e-5,2.0066562567351532e-8,-0.0012651603219259492,3.943960149495701e-5,2.0269701099621573e-8,-0.0012649633922718845,3.97155188282893e-5,2.044787773900412e-8,-0.0012648251191054683,3.991847051986315e-5,2.0578512385264233e-8,-0.0012647124020133814,4.002181530954318e-5,2.0645672703362345e-8,-0.0012645824423290432,4.0014854271467307e-5,2.0643806946391964e-8,-0.001264388687972703,3.99081829052254e-5,2.0580779083148893e-8,-0.001264089784429187,3.973682895821391e-5,2.0479457047750557e-8,-0.0012636612589438738,3.955863316563664e-5,2.0376410433125773e-8,-0.001263107692385635,3.944474943991824e-5,2.031587286383709e-8,-0.0012624700916807313,3.9460627398303827e-5,2.0337965483915675e-8,-0.0012618210646095807,3.9641206055020366e-5,2.0463436185732815e-8,-0.0012612438544760331,3.997186027742948e-5,2.0682014530823786e-8,-0.0012608019231333165,4.03889145758586e-5,2.095293879084057e-8,-0.001260515403514942,4.080331509500292e-5,2.1219900523197546e-8,-0.0012603580066779792,4.1134769690694334e-5,2.143251915066937e-8,-0.0012602736669382706,4.133709908764442e-5,2.156229199212994e-8,-0.0012602001674625438,4.140455790552599e-5,2.1606510199617428e-8,-0.0012600871138250655,4.13627425982667e-5,2.1582334626039323e-8,-0.0012599037723692542,4.125395520943257e-5,2.1517286350261602e-8,-0.001259639059405887,4.112448324373034e-5,2.1440993984703374e-8,-0.0012592978126801822,4.1016374406620794e-5,2.1379934028673295e-8,-0.0012588963729254486,4.096310517242658e-5,2.1354792900167895e-8,-0.0012584587728795547,4.0987516848376617e-5,2.13793433801656e-8,-0.0012580135545439072,4.110070043061135e-5,2.145990419081642e-8,-0.001257590729174874,4.130124851631068e-5,2.1594960240885516e-8,-0.0012572184068382751,4.1574933436424366e-5,2.1774990856265992e-8,-0.0012569188758809874,4.1895365866185666e-5,2.198290829395347e-8,-0.0012567044061644376,4.2226400284913416e-5,2.2195638913385633e-8,-0.0012565736154616957,4.252676325544257e-5,2.2387154231576545e-8,-0.0012565095347204847,4.275674007069808e-5,2.2532803702984725e-8,-0.001256480413149145,4.2886024148070224e-5,2.261430451888185e-8,-0.0012564438185601924,4.290116127527485e-5,2.262433259898739e-8,-0.0012563537977570908,4.2810748157597085e-5,2.256953566001536e-8,-0.0012561701266762151,4.264685474788228e-5,2.2471059965738813e-8,-0.001255868216795208,4.246161786198218e-5,2.2362052663867524e-8,-0.00125544775922725,4.2318356345838705e-5,2.2281882031267264e-8,-0.0012549374800614776,4.22774052795677e-5,2.226731056823057e-8,-0.0012543928884045982,4.237873413357958e-5,2.2341924508824796e-8,-0.0012538846382849707,4.262624486160383e-5,2.2506767656905367e-8,-0.0012534783871114205,4.2981135163356555e-5,2.2736596297391955e-8,-0.0012532126561929605,4.3370682260662835e-5,2.2985558206766268e-8,-0.0012530852538086268,4.3711798272939364e-5,2.3201876301994538e-8,-0.0012530559769681426,4.393918260812166e-5,2.3345305957001018e-8,-0.0012530638749481211,4.4024288239515566e-5,2.3398863033464984e-8,-0.0012530490271740113,4.3977672971138264e-5,2.3370162208987406e-8,-0.0012529684380834512,4.383778762251783e-5,2.3284209882351702e-8,-0.0012528018888721966,4.365500575092296e-5,2.317318439808869e-8,-0.001252549834499636,4.34782797526141e-5,2.3067930135885604e-8,-0.0012522276998212633,4.334721846604825e-5,2.2992993745712078e-8,-0.0012518599576908918,4.3288848879161106e-5,2.2964722563118695e-8,-0.0012514754687159037,4.331706400168195e-5,2.299109201556656e-8,-0.0012511041057524219,4.343305080609753e-5,2.3072114029472213e-8,-0.0012507740089569535,4.362583037811218e-5,2.3200256491004583e-8,-0.001250508740600051,4.387284960062057e-5,2.336086149484763e-8,-0.0012503238892904954,4.414121645053139e-5,2.353297738143989e-8,-0.0012502232383400124,4.439057639247119e-5,2.3691245534858623e-8,-0.0012501953913701654,4.4578519987771495e-5,2.380937649691334e-8,-0.0012502124466062187,4.466862199857083e-5,2.386522426953918e-8,-0.0012502324655709908,4.463985453790723e-5,2.38466230351851e-8,-0.0012502066668911443,4.449465916127025e-5,2.3756267679178933e-8,-0.0012500904907569506,4.4262301368479445e-5,2.3613540810084584e-8,-0.0012498556988007213,4.3995081325114545e-5,2.3451824758728542e-8,-0.0012494996714732477,4.375734202677175e-5,2.3311357072906797e-8,-0.0012490486343557058,4.360978994232384e-5,2.3229326501100328e-8,-0.0012485532799728183,4.359328030608507e-5,2.3229896399582473e-8,-0.001248077323762565,4.3716595091107244e-5,2.331696995481848e-8,-0.0012476814413027032,4.395208150458591e-5,2.3471965518926978e-8,-0.0012474066926813987,4.424143994728845e-5,2.3657815110514976e-8,-0.001247262641945451,4.4511219507711075e-5,2.3828756487483382e-8,-0.0012472248755787513,4.469382181566311e-5,2.3943301525145774e-8,-0.0012472435198697964,4.474664503382738e-5,2.3975912178036033e-8,-0.001247259506344416,4.466205719091103e-5,2.3922954185837815e-8,-0.0012472217473297215,4.446513739596869e-5,2.3801066644975018e-8,-0.0012470987187946957,4.420202198632878e-5,2.3639715221988536e-8,-0.0012468817729012385,4.392519162060175e-5,2.3471897838937096e-8,-0.0012465817445801888,4.368137901444268e-5,2.3326586331146017e-8,-0.0012462224178688196,4.3504603084736476e-5,2.3224476425034505e-8,-0.0012458339394664786,4.3413868956406416e-5,2.317671064191687e-8,-0.0012454477067935401,4.341371210977519e-5,2.318536732956266e-8,-0.001245092875503066,4.349582099726864e-5,2.3244572533892913e-8,-0.001244793861427751,4.364070138997217e-5,2.334159650208275e-8,-0.0012445680145702208,4.381919330597018e-5,2.3457855646996076e-8,-0.0012444228840729505,4.399437802864513e-5,2.35701808197754e-8,-0.0012443530695937283,4.4124913953168016e-5,2.3652983748257247e-8,-0.0012443375127046577,4.4170905959475854e-5,2.36819578137255e-8,-0.001244339050323051,4.410267397222573e-5,2.3639490947179656e-8,-0.0012443085409083597,4.391102098493597e-5,2.352090842966235e-8,-0.0012441949428326805,4.361529559426061e-5,2.3339274923289387e-8,-0.0012439599109511782,4.3264248999509696e-5,2.3125688607710063e-8,-0.0012435919172900148,4.292632418466513e-5,2.2923014333021052e-8,-0.0012431132807987672,4.2670863701421686e-5,2.2774032688701237e-8,-0.0012425758812366372,4.2547004754978845e-5,2.2708303443627026e-8,-0.001242046681417017,4.256875652229016e-5,2.273310098467663e-8,-0.0012415887940260054,4.2711639999148036e-5,2.2831736522023835e-8,-0.0012412448848635037,4.292095325018456e-5,2.2969151481539737e-8,-0.0012410276081992223,4.312771971755229e-5,2.310214052847942e-8,-0.0012409187405165644,4.3266945611404475e-5,2.3190749585606232e-8,-0.001240876179833917,4.329319757536537e-5,2.3207763152117412e-8,-0.0012408462077011405,4.3189822733976015e-5,2.314410023143346e-8,-0.001240777320283415,4.297005585476495e-5,2.3009154427995445e-8,-0.0012406317702474867,4.267059575677806e-5,2.2826536022629307e-8,-0.0012403919863629748,4.234042689642282e-5,2.26269926746929e-8,-0.0012400610415698615,4.2028799199970334e-5,2.2440951581700866e-8,-0.0012396584394359302,4.1775753442481906e-5,2.229275950494211e-8,-0.001239213642370792,4.160681735016447e-5,2.2197568374873713e-8,-0.001238759622997134,4.153164993599383e-5,2.21606545642313e-8,-0.0012383277669794706,4.154532626799311e-5,2.217831390256571e-8,-0.0012379443945620973,4.163077699858882e-5,2.223941511624005e-8,-0.0012376284470835346,4.17613701854737e-5,2.2327028899360917e-8,-0.0012373896362990083,4.190335157601163e-5,2.2420000164546246e-8,-0.001237226498897373,4.201852746249583e-5,2.2494706995441768e-8,-0.0012371242703294284,4.2068080603654364e-5,2.2527507113518604e-8,-0.0012370533291036505,4.201858038815096e-5,2.249845761104157e-8,-0.001236970018387961,4.18506164139745e-5,2.239652980094868e-8,-0.0012368223070618539,4.1568658962976625e-5,2.2225481522563593e-8,-0.0012365619116138991,4.120801712255095e-5,2.2007914498811416e-8,-0.0012361611416612153,4.083280694899721e-5,2.1783828379414836e-8,-0.001235627714205694,4.052073423663693e-5,2.1601104914924004e-8,-0.0012350082702082678,4.0337708897671565e-5,2.149979267276202e-8,-0.0012343757042772982,4.031356310619789e-5,2.1497194944095898e-8,-0.0012338050721628741,4.043155020851939e-5,2.1581628688838263e-8,-0.001233349834870539,4.063630930677973e-5,2.1717708568439122e-8,-0.0012330286624901638,4.0854394434720134e-5,2.1859385815913868e-8,-0.001232825543872876,4.1016780529853954e-5,2.1964061307544442e-8,-0.0012326994687433222,4.1075328421856106e-5,2.20027389188401e-8,-0.001232597984556413,4.1010377237678075e-5,2.196447509602127e-8,-0.0012324701701386766,4.083038763729262e-5,2.1855784862297425e-8,-0.0012322765508626758,4.0566046838917725e-5,2.1696628675659008e-8,-0.0012319949600370919,4.026131873137667e-5,2.151464212796346e-8,-0.0012316222127142264,3.996359807215556e-5,2.1339009160521587e-8,-0.0012311720726316338,3.971485937041825e-5,2.1195127901571155e-8,-0.001230670573013148,3.954524762662862e-5,2.1100877649413684e-8,-0.0012301501032358588,3.946977464651513e-5,2.1064790494578928e-8,-0.0012296436170803153,3.9487963552311815e-5,2.108595595697376e-8,-0.0012291799191749856,3.958568949318732e-5,2.1155185653788322e-8,-0.0012287803742935324,3.973818698101526e-5,2.1256853700710867e-8,-0.001228456809047748,3.991337515449703e-5,2.1370956879184295e-8,-0.0012282101383242943,4.007518264093764e-5,2.1475236423481508e-8,-0.0012280293349605576,4.0187061533075706e-5,2.1547450730279715e-8,-0.0012278906587169442,4.0216265386799466e-5,2.1568075140606426e-8,-0.001227757733952711,4.0139660658889306e-5,2.152381649965794e-8,-0.001227584040852701,3.995131561109933e-5,2.141206714008766e-8,-0.0012273199557392438,3.9670437193476325e-5,2.1245481814044025e-8,-0.0012269256617048919,3.934568255249432e-5,2.1054357934419238e-8,-0.001226387988600605,3.9049849819512705e-5,2.088324803621528e-8,-0.0012257337792927004,3.886073981427376e-5,2.077925099285005e-8,-0.001225029176986983,3.8832259555441034e-5,2.0774438780732722e-8,-0.0012243597146831978,3.897014608672804e-5,2.087118383561181e-8,-0.001223799174185458,3.922790438935534e-5,2.1039910874573118e-8,-0.0012233842237546633,3.952612757691313e-5,2.123118242844517e-8,-0.001223107335217403,3.9782946538246464e-5,2.139456934167179e-8,-0.0012229273220081428,3.993907780657064e-5,2.1494114292522025e-8,-0.001222787747765819,3.996887325239496e-5,2.1515041468992588e-8,-0.0012226337779387417,3.987869845089384e-5,2.1462498186417195e-8,-0.0012224231672501788,3.9698352797038394e-5,2.135591073507243e-8,-0.001222131287192134,3.94706075535104e-5,2.1222223071618265e-8,-0.0012217517999359017,3.924165377627985e-5,2.1089871554669243e-8,-0.0012212945943425393,3.905340977839935e-5,2.0984126176207197e-8,-0.0012207820344604945,3.8937868022761935e-5,2.0923847255017387e-8,-0.0012202442110411317,3.891356765329418e-5,2.0919587003276005e-8,-0.0012197138193019857,3.898419985757117e-5,2.0972925719657997e-8,-0.0012192212575737466,3.913919956043711e-5,2.1076902982625034e-8,-0.0012187904880345962,3.9356035455342134e-5,2.1217396945348294e-8,-0.001218436045934365,3.960367962125383e-5,2.1375213106972125e-8,-0.00121816125440768,3.9846620466140236e-5,2.1528562534707792e-8,-0.0012179574526165029,4.004903399140244e-5,2.165570613461297e-8,-0.0012178040605647724,4.0179078031285165e-5,2.1737684879836926e-8,-0.001217669467291421,4.021348370120589e-5,2.1761144819940345e-8,-0.0012175131332450237,4.014272182328031e-5,2.1721351070588032e-8,-0.001217289990042325,3.997662689165655e-5,2.162532349147562e-8,-0.0012169585457825218,3.9749007528304005e-5,2.1494297600574853e-8,-0.0012164931847068905,3.9517836703297245e-5,2.136358703249228e-8,-0.0012158983378917096,3.9356329110915773e-5,2.1277115324960004e-8,-0.0012152176438466392,3.9332104759699913E-05,2.127493647531436e-8,-0.001214528479586985,3.947928991470707e-5,2.1376600643727462e-8,-0.0012139177363669367,3.9778311663362115e-5,2.1569180758206194e-8,-0.0012134484162272517,4.015900048914238e-5,2.180933946924029e-8,-0.0012131363021741985,4.052837642935356e-5,2.2040280902569133e-8,-0.0012129497831343294,4.080665261167639e-5,2.2213672818770073e-8,-0.0012128291159121656,4.095125233841926e-5,2.230428148992462e-8,-0.001212710628911282,4.096082546243361e-5,2.2312340353820234e-8,-0.0012125440419645064,4.0864936103992574e-5,2.2257017392004202e-8,-0.0012122998065612566,4.070927702557695e-5,2.2167052698862267e-8,-0.001211969092054254,4.054291261138361e-5,2.207270204179144e-8,-0.0012115601294701622,4.04096307802744e-5,2.2000393390250897e-8,-0.0012110935055385707,4.034290695442932e-5,2.1969806882960636e-8,-0.001210597514896922,4.0363263803066746e-5,2.1992540281281542e-8,-0.001210103734529621,4.047720018381726e-5,2.2071717239761007e-8,-0.0012096427900898502,4.0677387217859966e-5,2.22022573473533e-8,-0.0012092403935229314,4.094407090176532e-5,2.237175494917936e-8,-0.0012089138646246408,4.124773087837309e-5,2.2562054742508997e-8,-0.001208669509931094,4.155294488543246e-5,2.2751575294808985e-8,-0.0012085012343950414,4.1823087158483395e-5,2.2918206290301382e-8,-0.0012083905541689021,4.20253509279023e-5,2.304245225579731e-8,-0.0012083080279941285,4.213570362400274e-5,2.3110503419034456e-8,-0.0012082161114372763,4.2143459888724324e-5,2.3116949841108062e-8,-0.0012080735324706796,4.2055159230597596e-5,2.3066900585552403e-8,-0.001207841533426535,4.189723091537656e-5,2.297724001603263e-8,-0.0012074923383279116,4.171613868549196e-5,2.2876363669851336e-8,-0.001207019283053891,4.157362669411139e-5,2.2801120538061767e-8,-0.0012064459189305014,4.1534493783767346e-5,2.2789521758592166e-8,-0.0012058286024298984,4.164656524482071e-5,2.2869009240234377e-8,-0.0012052460554162017,4.19184087749905e-5,2.3043477200400544e-8,-0.0012047743940046401,4.2307229374438395e-5,2.3286316882609802e-8,-0.0012044572585227797,4.272895499439604e-5,2.3546579750409415e-8,-0.001204288381331058,4.308962693418823e-5,2.376779519103741e-8,-0.0012042176630236775,4.332107815521141e-5,2.390938507508682e-8,-0.0012041753802073372,4.340093341660907e-5,2.3958706867713977e-8,-0.00120409843142815,4.335014281596996e-5,2.3929491995290315e-8,-0.0012039461046134032,4.3216266495513626e-5,2.3851510393422998e-8,-0.0012037033879847602,4.305483536435831e-5,2.3758982441867673e-8,-0.001203376539335363,4.291599030590616e-5,2.368228317218689e-8,-0.00120298613557427,4.283755592078561e-5,2.364376268900528e-8,-0.00120256066507784,4.2842730196850536e-5,2.365655954004364e-8,-0.0012021315896690958,4.29401323049733e-5,2.3724918753893763e-8,-0.0012017295357681474,4.3124764351869256e-5,2.384500705422323e-8,-0.0012013810188355309,4.3379445958178134e-5,2.400589014719376e-8,-0.0012011053959982453,4.367684303151363e-5,2.4190760318183176e-8,-0.0012009120711434845,4.3982426851927915e-5,2.4378686124360526e-8,-0.001200798320179096,4.4258666524398955e-5,2.4547135559008024e-8,-0.0012007483813156155,4.447035815567847e-5,2.4675237441635286e-8,-0.0012007344048218429,4.45904789956841e-5,2.4747373111654414e-8,-0.0012007195396916456,4.4605667043112055E-05,2.475647427648304e-8,-0.0012006630679124704,4.4520319606676825e-5,2.4706349244549025e-8,-0.0012005271433299393,4.435834252862902e-5,2.4612444809990292e-8,-0.0012002844344340745,4.416178423355356e-5,2.450065938028214e-8,-0.0011999257549066937,4.39856842762662e-5,2.4403951995426074e-8,-0.0011994662184232547,4.3888471317910234e-5,2.435650342589999e-8,-0.001198947460842372,4.3917923813857226e-5,2.43855173915342e-8,-0.001198432684587654,4.409482178445086e-5,2.4501884310528832e-8,-0.0011979921332492878,4.43998509534339e-5,2.469284335350204e-8,-0.00119768078598594,4.4772044938470945e-5,2.492136091235081e-8,-0.0011975168459692923,4.512476493318901e-5,2.5135693210741254e-8,-0.00119747326559844,4.53756385533257e-5,2.528710231716238e-8,-0.0011974888649364393,4.547604253094459e-5,2.5347319618533324e-8,-0.0011974930862349044,4.542451975687877e-5,2.5316491092253453e-8,-0.0011974302262546881,4.525952548655604e-5,2.5218719541367353e-8,-0.0011972721728209824,4.5039793706352555e-5,2.509006550443868e-8,-0.0011970183063790395,4.48245155389913e-5,2.4966396418741908e-8,-0.001196687932279745,4.4660550904328974e-5,2.487559033145641e-8,-0.0011963111623788396,4.457738285834904e-5,2.4834604037411308e-8,-0.0011959215436754737,4.45871920184613e-5,2.4849769736576936e-8,-0.0011955511692190652,4.468712727908596e-5,2.4918432734679642e-8,-0.0011952275920148667,4.486193679281758e-5,2.5030717037665653e-8,-0.001194971551310585,4.508639373150898e-5,2.5171047327290172e-8,-0.001194794863314542,4.5327777567539424e-5,2.5319623085596163e-8,-0.001194698341899172,4.554901617532855e-5,2.5454274898017947e-8,-0.0011946701458042791,4.5713081220382614e-5,2.555310251854561e-8,-0.0011946854231435274,4.5788787339589856e-5,2.5597980508971714e-8,-0.0011947082714650892,4.575734391539159e-5,2.5578493326096783e-8,-0.0011946966519119835,4.561819225984636e-5,2.5495358009355167e-8,-0.0011946100335258174,4.539218001394653e-5,2.536213072497259e-8,-0.0011944184455051122,4.512031317912244e-5,2.5204163446924352e-8,-0.0011941107653257608,4.485734384224478e-5,2.5054453515492776e-8,-0.0011936999083235803,4.466088478508766e-5,2.4946937452023213e-8,-0.0011932230592092813,4.457796164782929e-5,2.4908499047797812e-8,-0.001192735881163747,4.463180004644925e-5,2.4951402925395812e-8,-0.0011923007264965835,4.481237616870531e-5,2.506816181625162e-8,-0.001191970530689217,4.507461064861558e-5,2.523093820360962e-8,-0.0011917724140860335,4.5347229185161454e-5,2.5397066980609755e-8,-0.0011916972032087528,4.5552150560644986e-5,2.552053976524705e-8,-0.0011917008223672682,4.5628853227269786e-5,2.55662585680403e-8,-0.001191718836140086,4.55536438037028e-5,2.5521241678494558e-8,-0.0011916882079971906,4.534483429463704e-5,2.5397506076360736e-8,-0.0011915661764232738,4.50523352358896e-5,2.52256885925892e-8,-0.0011913387387294007,4.47385355732246e-5,2.504346293478613e-8,-0.0011910180546011024,4.446011631860293e-5,2.4884567965759092e-8,-0.0011906333941084394,4.425692301702829e-5,2.4772196056940904e-8,-0.0011902211184680275,4.414860982271032e-5,2.4717178867113547e-8,-0.0011898169790774708,4.4136455261757274e-5,2.4719329452121577e-8,-0.0011894514485054754,4.420725000515381e-5,2.4769977404092045e-8,-0.0011891472970888017,4.43372203473938e-5,2.4854416724191735e-8,-0.0011889182539292847,4.449528806773453e-5,2.4953861754942293e-8,-0.0011887678749798924,4.464592966057503e-5,2.504712463555681e-8,-0.0011886883030289687,4.4752380198887884e-5,2.5112510632544797e-8,-0.0011886592771498138,4.478098874931083e-5,2.5130424449580425e-8,-0.0011886483992062577,4.4707117457076194e-5,2.5086889829383304e-8,-0.0011886140329250244,4.4522010180780784e-5,2.4977592415005244e-8,-0.0011885119078034235,4.4238713784012066e-5,2.4811273251672534e-8,-0.0011883051844906306,4.3894051675223444e-5,2.461069041472246e-8,-0.0011879756183442926,4.354386275480496e-5,2.4409531085824178e-8,-0.0011875317045031677,4.3250911754683235e-5,2.4244998266980886e-8,-0.001187009814984017,4.306830808202916e-5,2.4147865942933328e-8,-0.0011864667588603476,4.302388062774488e-5,2.4133330210664937e-8,-0.0011859656180111609,4.3111034611001064e-5,2.4195943412766552e-8,-0.0011855592107146609,4.328925296709795e-5,2.4310387221332328e-8,-0.0011852761111206852,4.349413359054941e-5,2.443782423047731e-8,-0.0011851131455521931,4.3654131747047644e-5,2.4535986395746288e-8,-0.0011850365116463047,4.370946428713365e-5,2.4570271546609728e-8,-0.0011849914632903148,4.362784368851426e-5,2.4522773768495008e-8,-0.001184917896100419,4.341215487751708e-5,2.43964861556252e-8,-0.0011847668283073867,4.3097519747167916e-5,2.4213256739576758e-8,-0.001184512183165127,4.273915270154866e-5,2.400637699709233e-8,-0.001184154359433377,4.239606712181469e-5,2.381082880477647e-8,-0.001183715829325232,4.211673537541401e-5,2.3654834718410355e-8,-0.001183232091457753,4.193072848064575e-5,2.355508585492585e-8,-0.001182742076052658,4.184692919527811e-5,2.351593181722576e-8,-0.001182280783554334,4.185637277082278e-5,2.3531280291149167e-8,-0.0011818749650736491,4.193705913158789e-5,2.3587563717348847e-8,-0.0011815412371566454,4.20587459208501e-5,2.3666591547139997e-8,-0.001181285518418681,4.218688550045602e-5,2.374784651401943e-8,-0.0011811028444095974,4.2285853886151184e-5,2.381037385561812e-8,-0.001180977123076948,4.232217251513254e-5,2.3834703066651765e-8,-0.0011808810539391222,4.2268560697046846e-5,2.3805269882627502e-8,-0.0011807771612472478,4.2109361969074505e-5,2.3713602572318883e-8,-0.0011806214602274067,4.1846957049957275e-5,2.356200196449372e-8,-0.0011803711677501327,4.150714518977967e-5,2.3366529209186637e-8,-0.0011799963986054275,4.113978509884284e-5,2.3157162420999488e-8,-0.0011794927933482826,4.08108363408142e-5,2.2972909369344754e-8,-0.0011788890049142986,4.058504354233647e-5,2.2851491515976213e-8,-0.0011782430294203484,4.050438512482597e-5,2.2816671906510717e-8,-0.0011776263052778516,4.0571991173592686e-5,2.2868981508891815e-8,-0.0011771016155169122,4.074982996867079e-5,2.2984703383283737e-8,-0.0011767044632477951,4.097122380197114e-5,2.3123630234264177e-8,-0.0011764349839248737,4.1161829736862925e-5,2.3241707139593455e-8,-0.0011762614801303043,4.1260299791107996e-5,2.330328303434297e-8,-0.0011761320404088328,4.1232336783918625e-5,2.328924297558214e-8,-0.0011759893133244327,4.1075838938516295e-5,2.3199711124094704e-8,-0.0011757842580515552,4.081779203779472e-5,2.3051819147004552e-8,-0.001175486057786376,4.050513963720658e-5,2.2873984543674025e-8,-0.0011750866908770193,4.0192525827399625e-5,2.2698514425147638e-8,-0.0011745998913217442,3.9930000443378806e-5,2.2554401861589946e-8,-0.0011740555181366963,3.975350915748105e-5,2.2461942074838184e-8,-0.0011734914447389271,3.967996159531561e-5,2.2430123462058758e-8,-0.001172945410878914,3.970705295686038e-5,2.245677720924922e-8,-0.0011724486794790487,3.981662159239835e-5,2.2530685939862905e-8,-0.0011720222605774908,3.997974255206267e-5,2.263458529327139e-8,-0.0011716754580197422,4.0161947727554296e-5,2.274816904236688e-8,-0.0011714059108263474,4.032766224367516e-5,2.285064391621753e-8,-0.0011712002787532773,4.044378850159482e-5,2.2922839703133115e-8,-0.001171035100466492,4.048293650443117e-5,2.2949153547451752e-8,-0.0011708778846540614,4.042697766162125e-5,2.2919658210313572e-8,-0.0011706891457959967,4.0271429475899425e-5,2.2832600750891778e-8,-0.001170426728995793,4.0030416719605716e-5,2.269711830719015e-8,-0.0011700538042031948,3.9740414742010276e-5,2.253517245414926e-8,-0.0011695506069301434,3.945916078722506e-5,2.2380689483545792e-8,-0.0011689268944945577,3.9255517922141815e-5,2.227353935744273e-8,-0.001168228173677312,3.918909798715985e-5,2.224769728531718e-8,-0.0011675279781217165,3.9285907063139966e-5,2.2317220439852915e-8,-0.0011669049542857158,3.952322670802093e-5,2.24676871654407e-8,-0.0011664145207980038,3.9834885125080155e-5,2.265953681114611e-8,-0.001166070295452867,4.013563731944959e-5,2.2842517129925196e-8,-0.0011658440641923867,4.035108613749354e-5,2.2973299450432576e-8,-0.0011656808972777184,4.043846993678506e-5,2.302764914878378e-8,-0.0011655191438936243,4.039246802510346e-5,2.300366653105076e-8,-0.0011653067613803536,4.023909875147127e-5,2.291788321046429e-8,-0.001165010689103841,4.002390781978695e-5,2.2797942341975254e-8,-0.0011646197556137458,3.979940906101893e-5,2.2674938420648966e-8,-0.0011641429633779334,3.961443280877213e-5,2.2577103601577477e-8,-0.0011636049134929856,3.950632417993853e-5,2.252541402741315e-8,-0.0011630396411959254,3.9496218494349576e-5,2.253115281543781e-8,-0.001162483900516477,3.95874667786907e-5,2.2595320378682432e-8,-0.0011619709327954436,3.976699600781008e-5,2.2709638135691125e-8,-0.0011615255979191684,4.000893838449559e-5,2.2858712233979922e-8,-0.0011611613858706039,4.0279582776409567e-5,2.3022849008527116e-8,-0.001160879376169587,4.054263299169933e-5,2.3181024514051384e-8,-0.0011606687592218374,4.076394687408465e-5,2.3313608208272293e-8,-0.0011605083240079387,4.09154288041749e-5,2.3404666156265128e-8,-0.00116036847554564,4.097823517679709e-5,2.34438834621506e-8,-0.0011602136824594566,4.0945659648512586e-5,2.3428227761797474e-8,-0.0011600057215318002,4.0826012397539306e-5,2.3363471925632195e-8,-0.0011597086232655231,4.0645264473458956e-5,2.326545539839303e-8,-0.0011592962457193116,4.0447999006798314e-5,2.3160337368834338e-8,-0.00115876229853727,4.0293821820255384e-5,2.3082332980724006e-8,-0.0011581301558147067,4.0245920350732926e-5,2.3067127381392428e-8,-0.0011574563121098651,4.035081622828792e-5,2.3140425634618856e-8,-0.0011568199270357543,4.061526212816023e-5,2.3304961265381497e-8,-0.0011562968471505665,4.099409631845051e-5,2.353376588241085e-8,-0.0011559290458727804,4.140161770840252e-5,2.3776854904296303e-8,-0.0011557078806939019,4.1744238983237644e-5,2.3980097768470524e-8,-0.0011555814912751524,4.195588110422897e-5,2.4105697188319998E-08,-0.001155479481195814,4.201658493401853e-5,2.4142985129680127e-8,-0.00115533863075793,4.194919447273282e-5,2.4106395513946268e-8,-0.0011551182129401877,4.1802901903976074e-5,2.4025610864818883e-8,-0.0011548035981328402,4.163510488935334e-5,2.3934641492285587e-8,-0.0011544024679921467,4.149790402491649e-5,2.3863731188845464e-8,-0.0011539381598193543,4.143037373269924e-5,2.3834886083816383e-8,-0.0011534428504190312,4.145529592249755e-5,2.3860242372633465e-8,-0.0011529515734318722,4.157867605802834e-5,2.3942156152824156e-8,-0.001152497126030711,4.17910018793201e-5,2.407424330087287e-8,-0.00115210581430915,4.2069853360416185e-5,2.4243037050196697e-8,-0.001151794185245135,4.238365328686831e-5,2.4430139497299415e-8,-0.0011515669930675036,4.269628302794372e-5,2.461478437537122e-8,-0.0011514166348674099,4.2972125399724006e-5,2.4776661433350763e-8,-0.0011513241096236361,4.318091082678523e-5,2.4898702175336794e-8,-0.0011512612721551612,4.330181717597658e-5,2.496949457208967e-8,-0.001151194039557355,4.332656629776271e-5,2.4985098203453446e-8,-0.0011510862887999457,4.326145348232724e-5,2.4950132422663092e-8,-0.0011509043845628019,4.312830423117919e-5,2.4878096818187747e-8,-0.0011506225888506414,4.296414251839801e-5,2.4790856099194497e-8,-0.0011502295873348479,4.281860836006933e-5,2.4716871495239724e-8,-0.0011497354598191344,4.27473669523015e-5,2.4687324428481763e-8,-0.0011491767132249047,4.27998987093043e-5,2.4729297172923822e-8,-0.0011486149745644995,4.300208635109734e-5,2.4856210146960896e-8,-0.0011481242788471762,4.333890754543513e-5,2.505836780419132e-8,-0.0011477663805973333,4.37484335258334e-5,2.529978271595454e-8,-0.0011475638693054652,4.413754488074797e-5,2.552713565537854e-8,-0.0011474880690233208,4.441675095791563e-5,2.5689536506059154e-8,-0.0011474716437174161,4.4535329714636256e-5,2.5758576446798924e-8,-0.0011474381423005444,4.4496153607781065e-5,2.573686319342581e-8,-0.0011473298248947472,4.434525522139947e-5,2.5651963688180006e-8,-0.0011471206519927625,4.4148021131686344e-5,2.5542431090685233e-8,-0.0011468143867924144,4.396712744434881e-5,2.5444745012451112e-8,-0.001146435178096694,4.384958556407789e-5,2.538566338712817e-8,-0.0011460173053052653,4.382244135856911e-5,2.537984964690841e-8,-0.0011455972066733823,4.389369052636168e-5,2.543072424927479e-8,-0.001145208205189756,4.4055310810386594e-5,2.553258147049571e-8,-0.0011448771116926027,4.4286732802865605e-5,2.5672846892049696e-8,-0.001144621838537778,4.455834866317327e-5,2.5834176207532318e-8,-0.0011444496596464482,4.483524010238264e-5,2.5996533958276677e-8,-0.0011443561757723407,4.508136367107901e-5,2.6139484084071172e-8,-0.001144325302176957,4.526422796836885e-5,2.624479996609313e-8,-0.0011443306796744088,4.5359678801102835e-5,2.629920696942144e-8,-0.001144338684074093,4.535607232962796e-5,2.6296805202445227e-8,-0.0011443128443530714,4.525711697688811e-5,2.6240674007741413e-8,-0.0011442192204715602,4.5082805045375516e-5,2.6143256225398415e-8,-0.0011440321422607781,4.4868033997148654e-5,2.6025290536327584e-8,-0.0011437397009143968,4.465876200865301e-5,2.5913293776335838e-8,-0.0011433483936894827,4.450556201387472e-5,2.5835666573269417e-8,-0.0011428859132346458,4.4454301330230345e-5,2.5817407374967364e-8,-0.0011424002463549068,4.4534205124580296e-5,2.587362598157788e-8,-0.0011419527122034946,4.474530750720313e-5,2.600289980431649e-8,-0.0011416033368196802,4.505002810376823e-5,2.618294554588382e-8,-0.001141390428908636,4.5375931822066494e-5,2.6372385764556846e-8,-0.0011413123883100827,4.5634818511907473e-5,2.6521473534591453e-8,-0.001141323589395823,4.5754058078499044e-5,2.6589641295518906e-8,-0.0011413505127724332,4.570482861131677e-5,2.65614039044391e-8,-0.0011413207093381398,4.5510745451041515e-5,2.6451239643199213e-8,-0.001141188094617734,4.523323032317512e-5,2.6295158823665544e-8,-0.0011409425267060696,4.494512245552072e-5,2.613539055975473e-8,-0.0011406039242835295,4.470782444666231e-5,2.6007055239340012e-8,-0.001140209199720666,4.455976514490526e-5,2.5931497221064563e-8,-0.0011397998215520568,4.451513360626569e-5,2.591575701768682e-8,-0.001139413450043509,4.456814837601221e-5,2.595536246540539e-8,-0.0011390795966643849,4.469876670368622e-5,2.60379203690528e-8,-0.0011388178217883774,4.487777100093782e-5,2.614620234117578e-8,-0.001138637029323737,4.507087406977781e-5,2.6260499784491232e-8,-0.0011385351171898522,4.524231213375679e-5,2.636058011508952e-8,-0.001138498908997064,4.5358536475447353e-5,2.6427687830903223e-8,-0.001138504742717813,4.539239795883406e-5,2.6446876610957435e-8,-0.0011385203577618363,4.5327686077719404e-5,2.6409596426616204e-8,-0.001138508626476679,4.5163215308385346e-5,2.6316020938140107e-8,-0.001138433164520453,4.491524922861346e-5,2.617635271007851e-8,-0.0011382651611644248,4.461705208805853e-5,2.60103768433134e-8,-0.0011379901212315725,4.431475914112068e-5,2.5844832363761734e-8,-0.0011376128472153897,4.405962607495448e-5,2.5708742448517676e-8,-0.0011371591432191399,4.38977377850055e-5,2.5627459120037902e-8,-0.0011366732292220137,4.385892899825392e-5,2.561652405049774e-8,-0.0011362103950232623,4.394710877414942e-5,2.5676581411835278e-8,-0.0011358251542952108,4.413475261191414e-5,2.5790765942044402e-8,-0.0011355565320898134,4.436471443508226e-5,2.5926126309661128e-8,-0.0011354142388612493,4.456177182242592e-5,2.6040272006294392e-8,-0.0011353715564004837,4.4653360616528623e-5,2.6092925147649926e-8,-0.0011353705510015804,4.459362909579968e-5,2.605922322764486e-8,-0.0011353404038372476,4.4380227560943225e-5,2.5938971302698022e-8,-0.0011352217466509087,4.405454262243014e-5,2.5756616732937143e-8,-0.0011349852948189293,4.368490247039827e-5,2.5551578991552723e-8,-0.0011346366674042077,4.334216194977203e-5,2.5364227495662016e-8,-0.001134208126523297,4.307971922662928e-5,2.5224447033233243e-8,-0.0011337443916172296,4.292448780803408e-5,2.5146609857361533e-8,-0.0011332897864486306,4.287791196077834e-5,2.5130427988720302e-8,-0.0011328801743606684,4.292232941936807e-5,2.5164886702881576e-8,-0.0011325395437544183,4.302832693352377e-5,2.5232645329543546e-8,-0.0011322795036267984,4.316082969546979e-5,2.5313558114926845e-8,-0.0011320999644248192,4.328354167402069e-5,2.538712994851353e-8,-0.0011319900022255828,4.336233306022805e-5,2.5434328063291953e-8,-0.0011319286947636842,4.336840808418778e-5,2.5439298179225213e-8,-0.0011318863330729578,4.328188187579225e-5,2.5391365668682646e-8,-0.001131826798984989,4.309582777844892e-5,2.5287327028303578e-8,-0.0011317119237820342,4.282000536402383e-5,2.513352362103692e-8,-0.0011315081184450266,4.248267021715128e-5,2.4946745756693704e-8,-0.0011311944679122136,4.212855215251888e-5,2.47528810798855e-8,-0.001130770145740669,4.181171313272162e-5,2.458263730132284e-8,-0.0011302581872849279,4.158375073838242e-5,2.446470685820663e-8,-0.0011297031604086858,4.1480108144529596e-5,2.4418045723061402e-8,-0.001129162188693781,4.15087736209508e-5,2.4445738038119535e-8,-0.001128691235841923,4.164541695493883e-5,2.453267453652789e-8,-0.0011283303644603515,4.1837167858544846e-5,2.464812593336712e-8,-0.0011280922029762194,4.201470996660632e-5,2.4752841228200912e-8,-0.0011279572033331556,4.2109977185660934e-5,2.480903447905591e-8,-0.0011278777807429035,4.2074869072542864e-5,2.4790706388729773e-8,-0.0011277911058960631,4.189530837193729e-5,2.4691226160505966e-8,-0.0011276372138476932,4.15954194176583e-5,2.4525357679971217e-8,-0.0011273763094417542,4.1229584247699144e-5,2.4324526909304625e-8,-0.0011269987883137111,4.0865150594873515e-5,2.4126913313744505e-8,-0.0011265246487921932,4.056282496645149e-5,2.396636013648397e-8,-0.0011259939870450367,4.0362229990203176e-5,2.3864352719984643e-8,-0.0011254538280006646,4.027651035222083e-5,2.3827236887481313e-8,-0.0011249466443459084,4.029509964658356e-5,2.3848081936514294e-8,-0.0011245033782163948,4.0390924133027086e-5,2.3910968573532058e-8,-0.0011241409403492657,4.052829514471608e-5,2.3995517170635476e-8,-0.00112386263638038,4.066934213518109e-5,2.4080458369857855e-8,-0.001123659844043524,4.077852227744454e-5,2.4146059818045725e-8,-0.0011235138537491161,4.082575535334954e-5,2.417579891950277e-8,-0.0011233975399612892,4.078906093563617e-5,2.4157813543967808e-8,-0.0011232772130354719,4.065741806846923e-5,2.4086515680471002e-8,-0.0011231154772805123,4.043402590037051e-5,2.3964410167377178e-8,-0.0011228760409062776,4.0139252991621545e-5,2.380366568263808e-8,-0.0011225309508780508,3.9811507466245704e-5,2.362643573893063e-8,-0.0011220694021852218,3.9503593998477884e-5,2.3462607402847364e-8,-0.0011215052868612503,3.927276808058977e-5,2.334405693151438e-8,-0.0011208791815421717,3.916532907922445e-5,2.32959719470691e-8,-0.0011202512996662164,3.9200465609938846e-5,2.332793726446843e-8,-0.001119685750452599,3.936055511280073e-5,2.3428801926640012e-8,-0.0011192313624241938,3.959351310628623e-5,2.3568365483427852e-8,-0.0011189067970222813,3.982728786145331e-5,2.370580293829856e-8,-0.0011186957125675833,3.9990849821071303e-5,2.380156013682102e-8,-0.0011185529359586416,4.003380335406222e-5,2.382827657042045e-8,-0.0011184183604654927,3.9938559297950844e-5,2.3777363910180102e-8,-0.0011182335261142832,3.972257873820071e-5,2.365991178424167e-8,-0.0011179561348970367,3.943138742499119e-5,2.3502406776038373e-8,-0.0011175690250342211,3.9125231705559594e-5,2.333898219278873e-8,-0.0011170818909624026,3.8863484851492184e-5,2.3202592856615218e-8,-0.0011165261146400343,3.869113689297805e-5,2.3117576365828163e-8,-0.0011159450191786187,3.863070018781825e-5,2.309541688994295e-8,-0.001115382950846316,3.8680782729081375e-5,2.3134291481037248e-8,-0.0011148763323054643,3.88202433349568e-5,2.3221657136516122e-8,-0.0011144484116093652,3.9015366788503146e-5,2.333836405534532e-8,-0.0011141077300649053,3.922741200952648e-5,2.3462821981382622e-8,-0.0011138492060015412,3.941880989590515e-5,2.357433208540127e-8,-0.0011136564631223104,3.955748183796071e-5,2.3655382121537695e-8,-0.001113504398766395,3.961966181875024e-5,2.3693174947865333e-8,-0.0011133616119702572,3.9591985478981636e-5,2.3680806672121074e-8,-0.0011131929173312004,3.9473502927766754e-5,2.3618399758240768e-8,-0.001112962646214551,3.927781992830418e-5,2.3514237054040706e-8,-0.0011126396430199091,3.903476453581059e-5,2.338553477815076e-8,-0.0011122044622860591,3.878987372235069e-5,2.325794563447264e-8,-0.0011116579050496058,3.859916050478475e-5,2.3162471082326266e-8,-0.0011110277638066819,3.8517161490373446e-5,2.3128770665243614e-8,-0.0011103686318442126,3.857932217863279e-5,2.317550345585091e-8,-0.0011097504345893342,3.878498007287958e-5,2.3301147042226735e-8,-0.0011092368658773112,3.909083067031221e-5,2.348067606937274e-8,-0.001108862561025627,3.9421677057301995e-5,2.3671766690779e-8,-0.0011086207894536008,3.969541345367182e-5,2.3828789988108746e-8,-0.001108467784835197,3.9850203582443234e-5,2.3917930158623212e-8,-0.0011083400223898265,3.986149013467848e-5,2.3926558339224554e-8,-0.0011081749835332257,3.9744019406875444e-5,2.3864144977322292e-8,-0.0011079272311021648,3.954206227866765e-5,2.3756473773474773e-8,-0.0011075764036130426,3.9314276041815806e-5,2.3636846724881514e-8,-0.0011071276513506274,3.911872082508301e-5,2.353751460723729e-8,-0.001106606712234522,3.9001210256697606e-5,2.3483218868648787e-8,-0.0011060519911277476,3.8988244203939216e-5,2.3487531140898155e-8,-0.001105505670300844,3.908468395961993e-5,2.3551953376769463e-8,-0.001105005565791467,3.927568764132802e-5,2.3667339954019526e-8,-0.0011045790708096976,3.9531788880221474e-5,2.3816896490402398e-8,-0.0011042398847317478,3.9815546406795756e-5,2.397985579796228e-8,-0.0011039874767033147,4.008822786866677e-5,2.413504494817365e-8,-0.0011038086569949937,4.031539899273079e-5,2.4263827315283715e-8,-0.0011036803427045844,4.047087645509333e-5,2.4352204679952328e-8,-0.0011035726966564098,4.053916604625667e-5,2.4392162684179795e-8,-0.0011034522434320714,4.051692930416066e-5,2.438250815301555e-8,-0.0011032850399023103,4.041397991610771e-5,2.4329393420554233e-8,-0.0011030403485004744,4.0253960514007384e-5,2.424655679752155e-8,-0.001102695483905325,4.0074227905403326e-5,2.415503580398189e-8,-0.001102242193580227,3.992352368685253e-5,2.4081660659305638e-8,-0.0011016936673696796,3.985525563697915e-5,2.4055253488353385e-8,-0.0011010891641663526,3.991473667135059e-5,2.409971221190807e-8,-0.0011004912378463276,4.012168328025906e-5,2.422468321626409e-8,-0.0010999711538006204,4.045477360482803e-5,2.4417430252093232e-8,-0.0010995842055226655,4.084938248726866e-5,2.4641830821643385e-8,-0.0010993460929871167,4.121581701041971e-5,2.484844677700392e-8,-0.0010992250658169746,4.1472215284716905e-5,2.4992557013455944e-8,-0.0010991556460179283,4.1574464276116506e-5,2.505058969589844e-8,-0.0010990652089385281,4.1527398961356164e-5,2.5026265284520233e-8,-0.001098898156768374,4.1375312448001e-5,2.4945200752454744e-8,-0.0010986280334354423,4.118167475058328e-5,2.484337320183111e-8,-0.0010982574815838655,4.100937470290851e-5,2.4755843824772127e-8,-0.0010978110406426043,4.090738485072404e-5,2.4709226856153248e-8,-0.0010973257121964122,4.0904499228446404e-5,2.471836767874099e-8,-0.0010968421791160742,4.10083665738254e-5,2.4786177550209052e-8,-0.0010963977347210852,4.120779805968306e-5,2.4905329142025246e-8,-0.0010960210677344888,4.147702335351955e-5,2.506090255556026e-8,-0.0010957289251758702,4.178110279291195e-5,2.5233456325869303e-8,-0.001095524697387541,4.2081778366454555e-5,2.540215364575196e-8,-0.0010953988246681838,4.2343079153780506e-5,2.5547670181248777e-8,-0.0010953307583887954,4.253610901231246e-5,2.5654681311269465e-8,-0.0010952920447938042,4.264254236325311e-5,2.571372890267199e-8,-0.0010952499739452775,4.2656633559821643e-5,2.5722338660353446e-8,-0.0010951713587064734,4.2585944785351156e-5,2.5685421940828945e-8,-0.0010950263137780906,4.245110365085979e-5,2.5615053368196092e-8,-0.001094792159453469,4.2284683294743016e-5,2.5529653777638224e-8,-0.0010944577225138132,4.212890345796607e-5,2.5452477208888395e-8,-0.0010940280855575993,4.2031223829935575e-5,2.5409021613321293e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json new file mode 100644 index 0000000..3a71254 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":5000,"numberOfSamples":1000,"samples":[-0.001093528836966317,4.203642676149489e-5,2.5422725793163846e-8,-0.0010930072646208094,4.217440867148639e-5,2.5508574660559997e-8,-0.0010925265640548522,4.2445448281040656e-5,2.566549440168746e-8,-0.0010921498584701538,4.280927315836898e-5,2.5870776828536737e-8,-0.0010919163003251823,4.318794211770871e-5,2.6081780444674054e-8,-0.001091820523294629,4.348883154959585e-5,2.624831762871915e-8,-0.00109181029138295,4.364045659227296e-5,2.6331989440280285e-8,-0.0010918072934319603,4.362110831307491e-5,2.6321766949888615e-8,-0.0010917391971531742,4.346321105608486e-5,2.6236404835428295e-8,-0.0010915640090047574,4.323393624900339e-5,2.611370862534541e-8,-0.0010912766199280236,4.3007345034387695e-5,2.599493426705449e-8,-0.0010909009016498547,4.284299979150903e-5,2.5912727223068096e-8,-0.001090476431342811,4.277625215835485e-5,2.5885719367964947e-8,-0.0010900465218413144,4.2817753215300766e-5,2.5918503099339365e-8,-0.0010896499951765957,4.2957752709860237e-5,2.6004412180594708e-8,-0.0010893164869373976,4.3171842376795946e-5,2.612906955898042e-8,-0.0010890641035068592,4.34265580743787e-5,2.6273675178051805e-8,-0.0010888984776027527,4.3684563677071033e-5,2.6417842719480934e-8,-0.0010888129019089097,4.3909513777838174e-5,2.65421057988998e-8,-0.0010887895341848287,4.407054827337014e-5,2.663018859077577e-8,-0.0010888016920848876,4.4146217427231046e-5,2.667102788931276e-8,-0.001088817192482838,4.4127450376416946e-5,2.6660363442769395e-8,-0.0010888024752733671,4.401909753500576e-5,2.6601590837686793e-8,-0.0010887270459753056,4.383981898364833e-5,2.65056658451493e-8,-0.0010885677996571497,4.362036647066958e-5,2.639002532249307e-8,-0.0010883129235325867,4.3400346577718806e-5,2.627658759927833e-8,-0.0010879651578661836,4.322346930498476e-5,2.6188934255361087e-8,-0.001087544097987234,4.313109216854214e-5,2.6148709458164907e-8,-0.001087086674855694,4.315374123594729e-5,2.617116796712862e-8,-0.001086644066498112,4.330094126455337e-5,2.6260046435218025e-8,-0.0010862728381159504,4.3551620609182124e-5,2.640284239026193e-8,-0.00108601928226965,4.38502022017017e-5,2.656903579292576e-8,-0.0010859001135970722,4.411523709589743e-5,2.6714781887700585e-8,-0.0010858889754997796,4.426383145393484e-5,2.6795876138844725e-8,-0.0010859203351680025,4.424423453619814e-5,2.6785128110422738e-8,-0.001085913618912209,4.4058578601592776e-5,2.668460538734044e-8,-0.001085805393800295,4.376072785978275e-5,2.6524487039470494e-8,-0.0010855708545136362,4.343117507166159e-5,2.6349304657863846e-8,-0.0010852250584937636,4.314592290426317e-5,2.620071963961655e-8,-0.0010848090868554553,4.295570916633156e-5,2.6105975798650347e-8,-0.001084372654611788,4.2880291469861494e-5,2.6074830737518084e-8,-0.0010839610398885847,4.291308032542563e-5,2.6102403255115617e-8,-0.0010836081790852113,4.302959653013973e-5,2.6174200961517643e-8,-0.0010833344520610171,4.3195574161869046e-5,2.6270850944433867e-8,-0.001083146945167361,4.3373198164366636e-5,2.637160337223827e-8,-0.0010830405767407777,4.352569954505452e-5,2.645674242392391e-8,-0.0010829995124754573,4.3621083270509026e-5,2.6509425138913995e-8,-0.001082998991414148,4.363548696163819e-5,2.6517334874121295e-8,-0.0010830078695757855,4.3556232067080865e-5,2.6474252100274967e-8,-0.0010829921546684827,4.338421730365343e-5,2.638134536379059e-8,-0.0010829195457739626,4.313495597945831e-5,2.6247737743075178e-8,-0.0010827645199852117,4.2837568459182473e-5,2.6089894868217516e-8,-0.0010825131481838203,4.2531405839397756e-5,2.5929625306960433e-8,-0.0010821667257754604,4.2260415291339646e-5,2.5790800121408916e-8,-0.001081743391863589,4.2065789758412284e-5,2.5695202717475755e-8,-0.0010812771260442285,4.197779093233889e-5,2.5658116797976546e-8,-0.00108081368235774,4.2007788209395396e-5,2.5684279138019833e-8,-0.0010804030553122393,4.214188129809646e-5,2.5764875776401685e-8,-0.0010800884167244415,4.2338329128859495e-5,2.5876603076949472e-8,-0.001079892778156456,4.2531881372048156e-5,2.598424858567189e-8,-0.001079807154698478,4.264767562282009e-5,2.6048107274120274e-8,-0.0010797867060579334,4.262394191909685e-5,2.6035904077434437e-8,-0.001079760973783162,4.243610779021697e-5,2.593546226975552e-8,-0.0010796577282035234,4.210950720238184e-5,2.5761387251077892e-8,-0.00107942993302375,4.171117273294466e-5,2.555057096694696e-8,-0.001079071274203828,4.132383281774707e-5,2.5348037433669575e-8,-0.001078613065447523,4.101676275871758e-5,2.5191031444188244e-8,-0.0010781076445001167,4.082789625905243e-5,2.509930154443339e-8,-0.0010776094725232313,4.076147500814069e-5,2.507401361434535e-8,-0.0010771620659250866,4.079616385676292e-5,2.5102488709573008e-8,-0.001076792527426751,4.089624684549766e-5,2.5164595184415124e-8,-0.001076511483357941,4.102115014348993e-5,2.523807558214155e-8,-0.001076315486299618,4.1131846253385905e-5,2.530198861820359e-8,-0.00107618985214185,4.1194730844247526e-5,2.533864785318205e-8,-0.0010761111699562399,4.118418519494565e-5,2.5334821170315685e-8,-0.0010760496321073894,4.1084740905426734e-5,2.5282775112651636e-8,-0.0010759717151872302,4.089317638698599e-5,2.5181368331821842e-8,-0.0010758437806077928,4.062025720268964e-5,2.5037000465379675e-8,-0.001075636874965737,4.029124488214523e-5,2.4863872287821255e-8,-0.001075332344175619,3.994403311673042e-5,2.4682887122784044e-8,-0.0010749270772761371,3.962409533524119e-5,2.4518755050929554e-8,-0.0010744366625150808,3.937631781230898e-5,2.439541151761965e-8,-0.0010738948032005251,3.92350369958662e-5,2.433057466908826e-8,-0.0010733481764564313,3.9214698025557454e-5,2.433083409288902e-8,-0.0010728472503692334,3.930384295442124e-5,2.4388737863373705e-8,-0.0010724347731497891,3.94645175457536e-5,2.44828950313044e-8,-0.0010721343835682733,3.9638151634969455e-5,2.458148402653822e-8,-0.001071942205574794,3.9757775235519326e-5,2.4648932372444277e-8,-0.001071824440490328,3.976485588304506e-5,2.4654800605721794e-8,-0.0010717234455627444,3.962693202706781e-5,2.4582909766611626e-8,-0.0010715727554048086,3.935008138551149e-5,2.4437676459267312e-8,-0.0010713175244551965,3.8979848282591754e-5,2.4244352737564492e-8,-0.0010709326265880106,3.858785169979547e-5,2.4041693976913273e-8,-0.0010704300073954966,3.8248525783302696e-5,2.386941805332488e-8,-0.0010698520086136918,3.801636200014798e-5,2.375603419291011e-8,-0.0010692550526086402,3.791333074165718e-5,2.371227592816189e-8,-0.0010686922574283954,3.792939556885814e-5,2.3731673323543086e-8,-0.0010682017404291997,3.80320722103819e-5,2.379598347049132e-8,-0.0010678024504110503,3.8178531959137147e-5,2.3881867002065674e-8,-0.001067495548138812,3.832556322890049e-5,2.3966240581430207e-8,-0.001067268273277274,3.843582509864842e-5,2.4029501058277472e-8,-0.0010670980487706369,3.848102746680633e-5,2.4057051807740725e-8,-0.0010669558863532884,3.844342728250387e-5,2.4039967070581163e-8,-0.001066809160826231,3.8316803241082525e-5,2.3975457859135465e-8,-0.0010666243579828204,3.810746586828673e-5,2.386741669396789e-8,-0.0010663705574710293,3.7835149903862285e-5,2.3726898442079206e-8,-0.0010660241691441985,3.753288897009294e-5,2.3571997852970833e-8,-0.0010655747063436035,3.724442359481839e-5,2.3426335194630528e-8,-0.0010650302250668731,3.701779702157739e-5,2.331547794071486e-8,-0.0010644199291991467,3.68949742785659e-5,2.3261297539301097e-8,-0.001063791223981958,3.6899545236002384e-5,2.327544760228617e-8,-0.0010632000453968727,3.7026820203446666e-5,2.335429289972638e-8,-0.0010626963599818942,3.7241111127013385e-5,2.3477789197827204e-8,-0.0010623095681190381,3.748268981872828e-5,2.3613519575245354e-8,-0.0010620391726174265,3.768289862153553e-5,2.3724946388273585e-8,-0.0010618540779868658,3.7782581455481364e-5,2.3781234371721873e-8,-0.0010617006609737272,3.7748061352030124e-5,2.3765573920194672e-8,-0.0010615170480434892,3.758012724746697e-5,2.367965267011593e-8,-0.0010612495768359004,3.731371428715724e-5,2.3543130785882002e-8,-0.0010608669746345562,3.700835235428079e-5,2.3388256328231037e-8,-0.001060368182069979,3.6731912216637085e-5,2.325105313533104e-8,-0.0010597813426304625,3.654245594481344e-5,2.316169727120985e-8,-0.0010591544075762823,3.647402066316346e-5,2.313718174627855e-8,-0.0010585410167500333,3.653074230958909e-5,2.317853751683003e-8,-0.001057986920975386,3.669012758790272e-5,2.327290785733631e-8,-0.0010575211579176061,3.691257472653399e-5,2.339881300069309e-8,-0.001057153350837812,3.715260399430297e-5,2.3532138314401993e-8,-0.0010568758374386459,3.736812754225494e-5,2.365093104713143e-8,-0.0010566681914793606,3.752620921432137e-5,2.3738273286109503e-8,-0.0010565020401735535,3.760563844652094e-5,2.378349597906288e-8,-0.0010563451015339039,3.759754719033252e-5,2.3782437194464704e-8,-0.0010561643423562313,3.750528822528541e-5,2.3737377447389552e-8,-0.001055928777775758,3.734426906295574e-5,2.365696343832137e-8,-0.0010556126783150875,3.714173971895337e-5,2.3556054900511646e-8,-0.0010551998123746519,3.693577609363618e-5,2.3455071168099988e-8,-0.0010546886977346502,3.677200754758798e-5,2.3378106802298378e-8,-0.001054097575413405,3.66964742503015e-5,2.33490503669857e-8,-0.001053466266416154,3.674410830929957e-5,2.338552532428398e-8,-0.0010528513171096396,3.6925144473778674e-5,2.3491902560416617e-8,-0.0010523125721679219,3.721530665965493e-5,2.365441113669717e-8,-0.0010518941136466624,3.7556866487537555e-5,2.384196911473466e-8,-0.001051607652331739,3.787365765176419e-5,2.4014260649323585e-8,-0.0010514271013640408,3.809514403546298e-5,2.4134458275138142e-8,-0.001051297410707953,3.8178799703989044e-5,2.4180962088243847e-8,-0.001051153003686843,3.812136015142763e-5,2.415318391268279e-8,-0.00105093733776516,3.795628189484318e-5,2.4069945427589834e-8,-0.001050616809646753,3.7741095264425834e-5,2.396246019827039e-8,-0.0010501863481547247,3.754067586859115e-5,2.3865199592522806e-8,-0.0010496673073456411,3.7411575394765774e-5,2.380750812194908e-8,-0.0010490998191358019,3.739064048823195e-5,2.380774834712807e-8,-0.0010485322021737509,3.748944550858809e-5,2.38707245777141e-8,-0.0010480100257824426,3.769477583367159e-5,2.398835336975793e-8,-0.0010475672083879396,3.797425178348991e-5,2.4142928600404912e-8,-0.0010472208647171518,3.8285082197056416e-5,2.4311824887822292e-8,-0.0010469704046910332,3.858335909600687e-5,2.4472287017073512e-8,-0.0010468001087383734,3.883168894481607e-5,2.4605240478689e-8,-0.0010466836675630368,3.900401645641016e-5,2.469763622155349e-8,-0.0010465891449321784,3.9087623690885925e-5,2.4743396088065535e-8,-0.00104648333056439,3.908308679776768e-5,2.4743374271449885e-8,-0.0010463351903678341,3.900321589613522e-5,2.4704818833201865e-8,-0.0010461187174899236,3.887169112109677e-5,2.4640634398441143e-8,-0.0010458157657489216,3.872153411276594e-5,2.456847676636226e-8,-0.0010454194198092652,3.8592904649491364e-5,2.4509434847279802e-8,-0.0010449379598351336,3.85290470767447e-5,2.4485769249212857e-8,-0.0010443983417922637,3.8568960460999586e-5,2.4517067123617403e-8,-0.0010438466104127784,3.8736263817727636e-5,2.4614598497805885e-8,-0.0010433416549984493,3.902636136480175e-5,2.477493404220497e-8,-0.0010429399987465788,3.9398027050649106e-5,2.4975871277955936e-8,-0.0010426746362297934,3.9777843434769186e-5,2.5178904654138547e-8,-0.0010425380922074639,4.0081503788804406e-5,2.5340291710930592e-8,-0.0010424814444555638,4.0244644241275436e-5,2.5427023133151833e-8,-0.0010424322947735387,4.024690202392131e-5,2.5429321392407133e-8,-0.0010423219582340482,4.01162830340403e-5,2.5362869290134385e-8,-0.0010421073140257824,3.9914219183457514e-5,2.526080398688154e-8,-0.0010417790504298643,3.9712303792083824e-5,2.5161204349048078e-8,-0.001041357514815806,3.957206053756882e-5,2.509620077309175e-8,-0.0010408820867983744,3.953305791576254e-5,2.5085701841939114e-8,-0.0010403994183290342,3.960922925354849e-5,2.5135719972456448e-8,-0.001039953473752625,3.979097235888994e-5,2.5239903766051643e-8,-0.0010395783534878653,4.005056096735985e-5,2.538278306056733e-8,-0.0010392939602767437,4.034918264408066e-5,2.5543680164653243e-8,-0.001039104389012981,4.0644480901831106e-5,2.5700644896490313e-8,-0.0010389988421567525,4.089757785496551e-5,2.5833941072896978e-8,-0.0010389545970551956,4.107865514075927e-5,2.5928726316951552e-8,-0.0010389412824983889,4.11705030871186e-5,2.5976731161695342e-8,-0.001038925600905446,4.116986580467381e-5,2.5976894786312716e-8,-0.0010388757116827172,4.108687415422475e-5,2.5935077860987764e-8,-0.0010387648487817887,4.094320887370908e-5,2.586310945168862e-8,-0.0010385741873378635,4.0769583233729096e-5,2.5777407288912374e-8,-0.0010382952268426782,4.0602784133407614e-5,2.569728649515853e-8,-0.0010379320091739295,4.04820837611387e-5,2.564292327050562e-8,-0.0010375031926033312,4.0444330838904017e-5,2.56327270085341e-8,-0.0010370431136598767,4.0516825192555824e-5,2.5679750881275533e-8,-0.0010365998252919112,4.07078727032145e-5,2.5787103029239512e-8,-0.0010362274507746704,4.0997023108730364e-5,2.59432896351184e-8,-0.0010359711779905647,4.133023718538513e-5,2.6120005918730713e-8,-0.0010358476721283505,4.1627586877103866e-5,2.6276137158887212e-8,-0.0010358308191826967,4.180745449119192e-5,2.6370052259346927e-8,-0.0010358552027499252,4.18193769451226e-5,2.6376375102413223e-8,-0.0010358403135057738,4.166678727036104e-5,2.6297719124715485e-8,-0.0010357228189093813,4.140456572009227e-5,2.6163449539399887e-8,-0.0010354780401623975,4.111391003936417e-5,2.6016503918615263e-8,-0.0010351214402610947,4.0871490524131414e-5,2.5897043112633257e-8,-0.0010346952781462417,4.0728626709958974e-5,2.5831362930703574e-8,-0.0010342513894169626,4.070496768499591e-5,2.582864079884688e-8,-0.0010338376130666347,4.0792468598692156e-5,2.588333975697396e-8,-0.001033489928572441,4.09637112677769e-5,2.5979990127741127e-8,-0.0010332292836012598,4.118057987218832e-5,2.6098059615421084e-8,-0.0010330613284611158,4.140165888760393e-5,2.6215931638488723e-8,-0.0010329777530100068,4.158819846524718e-5,2.631390656871405e-8,-0.0010329586810779521,4.170886241656704e-5,2.6376437158564403e-8,-0.001032975936317296,4.1743274993385874e-5,2.6393736765147437e-8,-0.0010329969885598913,4.168421213030391e-5,2.636277559384442e-8,-0.0010329892783965391,4.153821954893292e-5,2.62875676595281e-8,-0.0010329244588995863,4.132454750884092e-5,2.6178635261370543e-8,-0.001032782060381272,4.10726094101633e-5,2.6051674387741775e-8,-0.0010325522769319654,4.0818357819433007e-5,2.5925576579428118e-8,-0.0010322377709549141,4.0599882712942876e-5,2.5819988038191913e-8,-0.0010318544785740738,4.045240035953763e-5,2.575258468299546e-8,-0.001031431325710975,4.0402610592020545e-5,2.5736166079833738e-8,-0.0010310082903914864,4.04622844238969e-5,2.577556155474702e-8,-0.0010306315696239265,4.062155526853457e-5,2.586455506912295e-8,-0.0010303445107737654,4.084394736602622e-5,2.5983723580936618e-8,-0.00103017415051348,4.106712011714914e-5,2.6101034286724267e-8,-0.00103011645990442,4.121429379152592e-5,2.617762452180817e-8,-0.0010301283373702107,4.1218183604357294e-5,2.617978519094077e-8,-0.0010301360479824519,4.1049891214193474e-5,2.6093535091742128e-8,-0.0010300617418679534,4.073592787552085e-5,2.5933314593629573e-8,-0.0010298552834028627,4.0349707833675383e-5,2.5737635695545288e-8,-0.0010295123624857808,3.9981058901976845e-5,2.555325702866578e-8,-0.0010290699371210256,3.970266737753418e-5,2.541762182017323e-8,-0.0010285862799355606,3.95510226577242e-5,2.5348871652570656e-8,-0.001028119665030133,3.952567217658717e-5,2.5345604153804084e-8,-0.0010277146398166707,3.9599592103778894e-5,2.5392608827923747e-8,-0.0010273969445857086,3.9732019239784237e-5,2.54679029136312e-8,-0.0010271741439923543,3.987889635605635e-5,2.554837330653049e-8,-0.0010270387420002831,3.999979218338487e-5,2.5613362144150908e-8,-0.0010269717730998133,4.006209216467498e-5,2.564665439659544e-8,-0.0010269462335600545,4.004361181148552e-5,2.563758062373979e-8,-0.001026930475247916,3.993429582593155e-5,2.5581696150718296e-8,-0.0010268917955752411,3.9737131056284514e-5,2.54811632465487e-8,-0.0010268003254188763,3.946803547779058e-5,2.5344696049297998e-8,-0.001026633045285693,3.9154302349015926e-5,2.51867793373167e-8,-0.001026377413673644,3.883136780108241e-5,2.502596843310329e-8,-0.0010260339595217747,3.8538067531633994e-5,2.4882331374804033e-8,-0.00102561729797183,3.8310807330376756e-5,2.477430480252826e-8,-0.0010251551932449294,3.8177261675103885e-5,2.471538175976041e-8,-0.001024685487708184,3.8150384280356484e-5,2.4711128828705612e-8,-0.0010242508292970316,3.822352571453758e-5,2.475696413222644e-8,-0.0010238910923221203,3.836763523516221e-5,2.4837113045173785e-8,-0.0010236336767047106,3.853222377882937e-5,2.492543131105467e-8,-0.0010234830537858264,3.865239008611646e-5,2.49891058187856e-8,-0.0010234129983969168,3.8663590948988006e-5,2.4996031285257513e-8,-0.0010233670245726736,3.852273512816904e-5,2.492524814844594e-8,-0.001023271959887443,3.822833359285693e-5,2.4776942964655382e-8,-0.0010230632432314934,3.782769524653137e-5,2.4575998844550145e-8,-0.0010227107525744934,3.740279961889332e-5,2.436473371991324e-8,-0.0010222302402959167,3.703969137491942e-5,2.418716232193019e-8,-0.0010216740030515826,3.6798124988745376e-5,2.4073362152007457e-8,-0.001021108290579188,3.669683896443461e-5,2.4031974626159863e-8,-0.0010205912572348655,3.6717350983459955e-5,2.4052398420585333e-8,-0.0010201604372997207,3.681830406381751e-5,2.411249122180296e-8,-0.0010198303307530497,3.6950727918991715e-5,2.418666800590093e-8,-0.0010195960756659162,3.706898533184759e-5,2.4251597017513103e-8,-0.001019439056359185,3.713670445797552e-5,2.4289132019925126e-8,-0.001019332059571601,3.7129221763336125e-5,2.428734485125245e-8,-0.0010192433493335681,3.70343141516297e-5,2.4240686043212892e-8,-0.0010191400194511332,3.685229866278754e-5,2.4149908608415946e-8,-0.0010189911883879065,3.659580376531763e-5,2.402192783224623e-8,-0.0010187714343872375,3.628895436908966e-5,2.3869435845986977e-8,-0.0010184645132939021,3.596533710163379e-5,2.3709873676371996e-8,-0.001018066855839815,3.566412672527142e-5,2.3563393719128077e-8,-0.0010175898667280023,3.542425031334137e-5,2.3449761052332165e-8,-0.0010170599390659412,3.5277162817117435e-5,2.3384558945173422e-8,-0.001016515394012989,3.523949770501541e-5,2.3375440811865953e-8,-0.0010160002224420199,3.530738001007149e-5,2.3419397704779323e-8,-0.0010155553831384591,3.545419198619564e-5,2.3501928264935122e-8,-0.001015209142874551,3.563302488615149e-5,2.3598624983890202e-8,-0.0010149684067089226,3.5784346527384886e-5,2.3679292211144022e-8,-0.0010148133891465872,3.584860072421633e-5,2.3714344288769612e-8,-0.0010146982630651578,3.5782055660811007E-05,2.3682629377636572e-8,-0.0010145599654888093,3.557207326886522e-5,2.3578848270284908e-8,-0.0010143351722388912,3.5245823371830506e-5,2.3417678410022003e-8,-0.0010139811800521554,3.486632047924191e-5,2.3231576085062046e-8,-0.001013492050599654,3.4513974439642034e-5,2.3061330561170134e-8,-0.0010129013184621315,3.4259974954934804e-5,2.2942555475658693e-8,-0.0010122691652813616,3.4143842428325755e-5,2.289440024171102e-8,-0.001011660964001645,3.416527319904436e-5,2.291564249859294e-8,-0.0010111280235503381,3.429134318278579e-5,2.2988645742694414e-8,-0.0010106976785511353,3.447205752042876e-5,2.3087503664077148e-8,-0.0010103730798261847,3.465571175252602e-5,2.3185940039964153e-8,-0.0010101387428839818,3.479919616418346e-5,2.3262469964226124e-8,-0.0010099675794849883,3.487271276682596e-5,2.3302608900919384e-8,-0.0010098269209837737,3.4860699206272e-5,2.3299134968487392e-8,-0.0010096829020666328,3.476102080226269e-5,2.3251535621906485e-8,-0.0010095036482449427,3.4583741581220033e-5,2.316533851284319e-8,-0.00100926202814437,3.434990375649573e-5,2.3051517011118484e-8,-0.0010089385902406682,3.409004467856952e-5,2.2925769286763956e-8,-0.0010085248696185096,3.384168830235557e-5,2.2807227493595864e-8,-0.0010080265806791115,3.3644931550302674e-5,2.2716140262856692e-8,-0.0010074654828322916,3.353571640167953e-5,2.26703687608163e-8,-0.0010068782778092742,3.353743271134205e-5,2.268110345686206e-8,-0.0010063112194841138,3.36528689313314e-5,2.274888894220196e-8,-0.0010058104572475534,3.3859569732431347e-5,2.286150383963712e-8,-0.0010054101212326877,3.411145176628525e-5,2.2995062591133473e-8,-0.0010051217418514823,3.434769733360527e-5,2.3118734876600543e-8,-0.0010049287823506632,3.450726125747007e-5,2.3202145373587556e-8,-0.0010047886815621875,3.454511779650876e-5,2.3223469127649264e-8,-0.001004642523791172,3.444551550645358e-5,2.317587375654054e-8,-0.0010044301777682276,3.4228082912857005e-5,2.307029016040388e-8,-0.0010041070053985303,3.394428660482434e-5,2.293333606477324e-8,-0.0010036572007801948,3.366424530591849e-5,2.280046957873214e-8,-0.0010030989670374397,3.3457142010512746e-5,2.2706067870780697e-8,-0.001002478977520436,3.3371580578821594e-5,2.2673661179006083e-8,-0.0010018578283530568,3.342312200493025e-5,2.2709939398912565e-8,-0.0010012922882052613,3.359334378293894e-5,2.2804621910948108e-8,-0.0010008212275209021,3.3839363188058443e-5,2.2935524319804295e-8,-0.0010004594328713067,3.410840614322706e-5,2.3076001992787873e-8,-0.0010001992187818722,3.4351274842747164e-5,2.320166356575127e-8,-0.0010000167281470184,3.453101661995363e-5,2.3294552412610813e-8,-9.998793317252265e-4,3.462633409658824e-5,2.3344654270450874e-8,-9.997518470452732e-4,3.4631318428131296e-5,2.3349607127017085e-8,-9.996009199043014e-4,3.455348552109253e-5,2.3313647478180466e-8,-9.9939795849614e-4,3.44114906802232e-5,2.3246470434010358e-8,-9.99121407187035e-4,3.4233040893128126e-5,2.3162210737379513e-8,-9.987590833800812e-4,3.405276743515656e-5,2.3078368950141786e-8,-9.983108679056524e-4,3.390926822320403e-5,2.3014265042933495e-8,-9.97791306534957e-4,3.384032770146051e-5,2.2988554306834156e-8,-9.972307991430098e-4,3.3875718713881964e-5,2.3015580148524872e-8,-9.966733564831009e-4,3.4028221102158114e-5,2.310094837163757e-8,-9.961691020362934e-4,3.428546408696686e-5,2.3237638825588425e-8,-9.957615865134595e-4,3.46069401339788e-5,2.3404762682669036e-8,-9.954733186501152e-4,3.493021100327155e-5,2.357086532821176e-8,-9.952956330342465e-4,3.5186762200118035e-5,2.370192787102682e-8,-9.95188477807128e-4,3.532262383638006e-5,2.377162507367407e-8,-9.950913872963697e-4,3.5315508210565336e-5,2.376975873492727e-8,-9.94941500795456e-4,3.518154860532421e-5,2.3705430116577784e-8,-9.946916452042978e-4,3.496972133573339e-5,2.3603993034892922e-8,-9.943224955306555e-4,3.4747072949003844e-5,2.3499389344168517e-8,-9.938459958236127e-4,3.458033160070616e-5,2.3424766870853507e-8,-9.933002965673123e-4,3.451936283405707e-5,2.3404222600228282e-8,-9.92738532106868e-4,3.4586492210376424e-5,2.34477123751599e-8,-9.922149570488884e-4,3.47737697346077e-5,2.35500702634693e-8,-9.917723365169562e-4,3.504802300243e-5,2.369389615669735e-8,-9.91433801696836e-4,3.536137626092322e-5,2.385500900287136e-8,-9.912006576782077e-4,3.566352992413874e-5,2.4008564476421496e-8,-9.910555099664157e-4,3.591217265700787e-5,2.4134077453991628e-8,-9.909685467225334e-4,3.607935109184319e-5,2.4218367354514807e-8,-9.90904493799253e-4,3.615353059249766e-5,2.4256393376223053e-8,-9.90828480212809e-4,3.613845925610944e-5,2.4250587005171246e-8,-9.90710154736621e-4,3.605041340979941e-5,2.420946428455628e-8,-9.905262925749175e-4,3.5915102415850375e-5,2.4146106990416895e-8,-9.902625674466235e-4,3.576480559520487e-5,2.407673810359449e-8,-9.899151595612757e-4,3.563558997580312e-5,2.4019285840091026e-8,-9.894925239248037e-4,3.556393259086711e-5,2.399161892926978e-8,-9.890169789091286e-4,3.558183032668142e-5,2.400906596769323e-8,-9.885248529442735e-4,3.570977187754583e-5,2.4080982598891237e-8,-9.880631022206629e-4,3.594816942793109e-5,2.4206693186517794e-8,-9.876803749587692e-4,3.6270078383065484e-5,2.4372152484305683e-8,-9.874125517596248e-4,3.662032117452578e-5,2.4549731590826265e-8,-9.872671120179847e-4,3.6926008414473374e-5,2.470348797116585e-8,-9.872146960178598e-4,3.7118461255131244e-5,2.4799926090503432e-8,-9.871951531337715e-4,3.715829143129886e-5,2.482028574407889e-8,-9.871375620403313e-4,3.705077677427379e-5,2.476806781996489e-8,-9.869847448893906e-4,3.684329236067619e-5,2.466765451933042e-8,-9.867105450566658e-4,3.660725536650436e-5,2.4555140657066402e-8,-9.86323904247596e-4,3.641469724773145e-5,2.4466432455541804e-8,-9.858615016007492e-4,3.631928880259697e-5,2.442766534764061e-8,-9.85374633250025e-4,3.634645237112784e-5,2.4450388419430107e-8,-9.849156337300748e-4,3.649235218034662e-5,2.453139904021426e-8,-9.845270231932197e-4,3.672923823051199e-5,2.465582036281864e-8,-9.842346708626541e-4,3.7014300862134964e-5,2.4801822245291615e-8,-9.840451716688692e-4,3.729969081586018e-5,2.4945700886248175e-8,-9.839470708571595e-4,3.754181375466232e-5,2.5066377411016933e-8,-9.839150653915634e-4,3.770836043790428e-5,2.514864253568232e-8,-9.83915845150665e-4,3.778218739727299e-5,2.5184832131647895e-8,-9.839141440703577e-4,3.776204586365129e-5,2.5175023720621267e-8,-9.838778946578378e-4,3.7660825559131726e-5,2.5126110722890017e-8,-9.837819111355383e-4,3.750231363693385e-5,2.5050212268447694e-8,-9.83610120160167e-4,3.731747931219535e-5,2.4962853060990782e-8,-9.833567922937184e-4,3.714089212336408e-5,2.4881163070795294e-8,-9.830272886633775e-4,3.700727412351498e-5,2.4822096717103307e-8,-9.826385911278707e-4,3.69477424015823e-5,2.4800505830703303e-8,-9.82219396284537e-4,3.698509836147771e-5,2.4826830050034716e-8,-9.818087670899545e-4,3.712771767756578e-5,2.4904243886600084e-8,-9.814515702841564e-4,3.7362648046258683e-5,2.5025539421476875e-8,-9.811889802018954e-4,3.7650571338024e-5,2.5170939795615703e-8,-9.810442154511204e-4,3.792755371116602e-5,2.5309102919604293e-8,-9.810080333830023e-4,3.811864493199592e-5,2.5403711739960307e-8,-9.81033207624282e-4,3.8163102204115404e-5,2.5425633123846726e-8,-9.810462359989666e-4,3.804100654306584e-5,2.5365828059548833e-8,-9.809743731534347e-4,3.778505688611488e-5,2.524112956896296e-8,-9.807739041156364e-4,3.746843502401319e-5,2.508825210734586e-8,-9.804438663459916e-4,3.717577379911337e-5,2.4949313572355698e-8,-9.800204118408863e-4,3.697428727925494e-5,2.485733884169189e-8,-9.795593431768212e-4,3.6897909348930136e-5,2.4828320900585492e-8,-9.791176972697106e-4,3.694613487266822e-5,2.4860822858248447e-8,-9.78740821256568e-4,3.709208601691692e-5,2.4940346749398108e-8,-9.784561041063255e-4,3.7293678129001164e-5,2.5045249521682385e-8,-9.782718489133458e-4,3.7504071244625615e-5,2.5152145120602866e-8,-9.781792758595254e-4,3.7679941882763186e-5,2.5239992535436655e-8,-9.781562333794412e-4,3.778745647138105e-5,2.5292850462091087e-8,-9.781718882523143e-4,3.780606999115621e-5,2.530147602469855e-8,-9.781918620216884e-4,3.773013883351006e-5,2.5263886480747403e-8,-9.781832167389938e-4,3.7568458080856365e-5,2.518501010675023e-8,-9.78118742072559e-4,3.7342042791065954e-5,2.507558218052921e-8,-9.779801236071979e-4,3.708061130398327e-5,2.4950452157285786e-8,-9.777597868775496e-4,3.681839353569755e-5,2.4826535622686178e-8,-9.774615375963498e-4,3.6589861622145944e-5,2.47206704952449e-8,-9.771002958644923e-4,3.642562803302159e-5,2.464752335844287e-8,-9.767011177636903e-4,3.6348412775412787e-5,2.461757103592887e-8,-9.762974059618317e-4,3.636884684333104e-5,2.463512177599872e-8,-9.759277035517238e-4,3.648101405343806e-5,2.4696356361916733e-8,-9.75629951246629e-4,3.665840901177218e-5,2.4787660934629145e-8,-9.754322748465593e-4,3.685252659570957e-5,2.4885193908702775e-8,-9.75340987613693e-4,3.699788916582287e-5,2.495739454375517e-8,-9.753299684090048e-4,3.702722840929396e-5,2.4972198717358794e-8,-9.753395265608093e-4,3.689599167738356e-5,2.490869287630752e-8,-9.752920720559031e-4,3.6606102877796636e-5,2.4768523544825133e-8,-9.751219280535475e-4,3.62127126348543e-5,2.457919604533296e-8,-9.748035378869218e-4,3.580501071706199e-5,2.4384716721739845e-8,-9.743604317943561e-4,3.5470563709328834E-05,2.4228018734390125e-8,-9.738510761405169e-4,3.526450154078282e-5,2.4135686744524703e-8,-9.733435765106256e-4,3.519840608946445e-5,2.411249078547065e-8,-9.728943634004211e-4,3.5247780682422384e-5,2.4145284649450995e-8,-9.725377477092212e-4,3.536768335651393e-5,2.4211049479849402e-8,-9.722848444423038e-4,3.550754893515966e-5,2.428448154165182e-8,-9.72127563371285e-4,3.562150854076412e-5,2.4343174928178926e-8,-9.720441769973178e-4,3.567417242302132e-5,2.437035998268252e-8,-9.720046367152485e-4,3.56432887461309e-5,2.4355963585866076e-8,-9.719752390974952e-4,3.552063301357858e-5,2.4296779131561367e-8,-9.719228596586245e-4,3.531171554305102e-5,2.4196141313711178e-8,-9.718188423673552e-4,3.503437202507118e-5,2.406317927089353e-8,-9.716423998941957e-4,3.471621408885309e-5,2.3911605715671775e-8,-9.713832408989576e-4,3.439096166140005e-5,2.3757978780585042e-8,-9.710430366130846e-4,3.409389102193965e-5,2.361948593481193e-8,-9.70635446133547e-4,3.3856923351839665e-5,2.3511491505683215e-8,-9.701846919981149e-4,3.370390574741038e-5,2.3445165212560717e-8,-9.697228228770885e-4,3.364647614797688e-5,2.342546325722505e-8,-9.692857745624962e-4,3.368081166293388e-5,2.3449670440655165e-8,-9.689081926968012e-4,3.378557365972413e-5,2.3506650641077334e-8,-9.686168099705691e-4,3.392170644199995e-5,2.357703705485365e-8,-9.684224658620934e-4,3.4035563171401795e-5,2.3634937383161203e-8,-9.68312113340623e-4,3.406746818840269e-5,2.3652061632635778e-8,-9.682443258694862e-4,3.396706662113197e-5,2.3604922859051918e-8,-9.681538286062369e-4,3.371329935534211e-5,2.348419799835916e-8,-9.679692761326831e-4,3.333058404686902e-5,2.330235800983941e-8,-9.676407409410866e-4,3.2888734991917684e-5,2.3093584924486144e-8,-9.671629996624705e-4,3.2480309923178234e-5,2.2902797651000153e-8,-9.665791080763037e-4,3.2184835146996645e-5,2.276825671546724e-8,-9.659613244934983e-4,3.204046428493923e-5,2.270778086296016e-8,-9.653822640887052e-4,3.203767611505963e-5,2.2715798323767404e-8,-9.648929276683705e-4,3.213287335072607e-5,2.2770213229558723e-8,-9.645149837962753e-4,3.226903530996189e-5,2.2842729866168465e-8,-9.642442355567376e-4,3.239247708087407e-5,2.2907171397624284e-8,-9.640587530216115e-4,3.24620993246358e-5,2.2943963859402317e-8,-9.639270001539048e-4,3.245248074250296e-5,2.2941464499432092e-8,-9.638140578411377e-4,3.235353569481727e-5,2.2895550510650823e-8,-9.6368595444148e-4,3.2168912493880215e-5,2.28086319018673e-8,-9.635128997527551e-4,3.191410788621952e-5,2.2688634455621677e-8,-9.632720633656184e-4,3.161432337084309e-5,2.2547969983926774e-8,-9.629500908473864e-4,3.1301728190777524e-5,2.2402276055104036e-8,-9.625451789726969e-4,3.101176374193039e-5,2.226867575507521e-8,-9.620681774777247e-4,3.077836455776551e-5,2.216345368450055e-8,-9.615420329416084e-4,3.0628500411465295e-5,2.209935540113096e-8,-9.609991467969121e-4,3.057690888665009e-5,2.2082994490797295e-8,-9.604766797714861e-4,3.062205911343596e-5,2.2112942498469528e-8,-9.600102747775835e-4,3.074434601472043e-5,2.2179018433807102e-8,-9.596270214263777e-4,3.090724439259373e-5,2.2263089974248304e-8,-9.593386562986945e-4,3.1061771792007744e-5,2.2341454918293274e-8,-9.591361349101454e-4,3.1154428547892235e-5,2.2388764734143828e-8,-9.589871735461636e-4,3.113854434292479e-5,2.2383389507898628e-8,-9.588390052667267e-4,3.0987899671081076e-5,2.23137088373979e-8,-9.586285812047179e-4,3.0709291166627064e-5,2.2183841699676357e-8,-9.583004549904042e-4,3.034807980718291e-5,2.20160808943815e-8,-9.578277490469907e-4,2.9980170319710332e-5,2.1846942684937246e-8,-9.572262091683876e-4,2.968886340238766e-5,2.1716059377740093e-8,-9.565515092747311e-4,2.953507814969651e-5,2.1651963566920276e-8,-9.558790138711099e-4,2.9536365304518656e-5,2.166217296734255e-8,-9.552767930981623e-4,2.9665583334704913e-5,2.173278583758932e-8,-9.547860467171304e-4,2.9867061406297094e-5,2.1836474927304304e-8,-9.544158266696612e-4,3.0078540975903094e-5,2.1943173400982044e-8,-9.541492278461368e-4,3.024805141205629e-5,2.20281932369835e-8,-9.539540335951516e-4,3.034185193150517e-5,2.2075920768301698e-8,-9.537924048895253e-4,3.0345247140230987e-5,2.208000983233228e-8,-9.536275311546465e-4,3.025982229495277e-5,2.204185499562896e-8,-9.534275077413425e-4,3.0099841725022342e-5,2.1968736705240954e-8,-9.531675967845711e-4,2.9889041402266785e-5,2.187225621318765e-8,-9.528318988517542e-4,2.9657867759765324e-5,2.1767059789256722e-8,-9.524149404686213e-4,2.9440645440285744e-5,2.1669541941369942e-8,-9.519231274636026e-4,2.9272003957849185e-5,2.1596154336982085e-8,-9.513754532627277e-4,2.9182105324352853e-5,2.156109047838405e-8,-9.508024505321581e-4,2.9190878090889825e-5,2.1573483188737836e-8,-9.502424663511357e-4,2.9302351813132366e-5,2.1634700321363326e-8,-9.49735030418587e-4,2.9500882232911995e-5,2.1736638845838566e-8,-9.493122042363756e-4,2.975120128025421e-5,2.1861931766478845e-8,-9.489899450602254e-4,3.0003488125871785e-5,2.19865714491652e-8,-9.487620601966599e-4,3.020311750055373e-5,2.2084695992892515e-8,-9.485988957950232e-4,3.030316317880326e-5,2.2134553407674564e-8,-9.484518091654521e-4,3.0276810472256283e-5,2.2124270364054122e-8,-9.482632222856166e-4,3.0126538386465414e-5,2.205597301242971e-8,-9.479807554179524e-4,2.9887047408005317e-5,2.194689841841948e-8,-9.475724436270446e-4,2.961960692398054e-5,2.1826477535904775e-8,-9.470384606933393e-4,2.9397309036501518e-5,2.1729216202936675e-8,-9.464140919087501e-4,2.9284117233135745e-5,2.168479093152599e-8,-9.457607135250013e-4,2.931474722874649e-5,2.1708699518209903e-8,-9.451468703045619e-4,2.948415363474355e-5,2.179756824154432e-8,-9.446272642077682e-4,2.975166154093429e-5,2.19313942223417e-8,-9.442287741878977e-4,3.005706659105484e-5,2.2081348790756766e-8,-9.439480612138644e-4,3.0340177706433605e-5,2.2219059244211306e-8,-9.437587330039747e-4,3.05555047742844e-5,2.232346391891961e-8,-9.436224123828684e-4,3.0678595514250895e-5,2.2383640253534496e-8,-9.434987028230832e-4,3.0705355294702186e-5,2.2398300631400305e-8,-9.433518093842979e-4,3.0647746413302585e-5,2.2373619930447855e-8,-9.431539596951896e-4,3.052879162175852e-5,2.2320812424416252e-8,-9.42886827941632e-4,3.0378337056025078e-5,2.2254139731918605e-8,-9.425421763466582e-4,3.0229750427711546e-5,2.2189391361884014e-8,-9.421224563862095e-4,3.011700715597695e-5,2.2142531937943215e-8,-9.416414774327706e-4,3.0071346469157127e-5,2.212810620989906e-8,-9.411245660268458e-4,3.0116816661240038e-5,2.215710354642401e-8,-9.406070615964384e-4,3.026467552618603e-5,2.2234316233793085e-8,-9.40129838692488e-4,3.050774422637882e-5,2.2355753528190237e-8,-9.397312194328286e-4,3.0817081031483444e-5,2.2507225708871276e-8,-9.394363651629871e-4,3.1143952690525606e-5,2.266544635054926e-8,-9.39247469629382e-4,3.14289902634384e-5,2.2802467253505157e-8,-9.391392811567771e-4,3.161734154321736e-5,2.28928419535772e-8,-9.390631834203985e-4,3.1675072753920046e-5,2.292128485717643e-8,-9.389595011470184e-4,3.160054917881444e-5,2.2887892684632222e-8,-9.38774017044829e-4,3.142629938669554e-5,2.2808821851867562E-08,-9.384731170441491e-4,3.121073248180759e-5,2.2712144428496986e-8,-9.380529653295315e-4,3.102263562512172e-5,2.2630329259409035e-8,-9.37540421932073e-4,3.0923179639618185e-5,2.2591680785415607e-8,-9.369857583175107e-4,3.095034383443137e-5,2.261312414301245e-8,-9.364492385837592e-4,3.1109898640259824e-5,2.269626110812058e-8,-9.359853619300495e-4,3.137546064701527e-5,2.2827755619925506e-8,-9.356295240548179e-4,3.16974681512932e-5,2.2983821119346855e-8,-9.353911527823038e-4,3.2017802198202046e-5,2.313717510433112e-8,-9.35254811672147e-4,3.228479107023496e-5,2.326399499414142e-8,-9.351875597689146e-4,3.2463820357644084e-5,2.3348709349042408e-8,-9.351488611202442e-4,3.2541398176328435e-5,2.338570291153537e-8,-9.350994833205346e-4,3.25234996917194e-5,2.3378386345866902e-8,-9.350074661012362e-4,3.2430678404906835e-5,2.333682380228043e-8,-9.348510276335349e-4,3.229243028857118e-5,2.3275080016553152e-8,-9.346193314669444e-4,3.214231620297721e-5,2.3208959235950077e-8,-9.34312262797197e-4,3.2014221186669155e-5,2.3154273367792384e-8,-9.339400414025882e-4,3.193933185076618e-5,2.3125418905859264e-8,-9.33522913696338e-4,3.194305448645945e-5,2.3133910756853474e-8,-9.330904862493931e-4,3.204115275895757e-5,2.3186578394138074e-8,-9.326796244283101e-4,3.223492294630654e-5,2.3283386135426127e-8,-9.323295184334296e-4,3.250635238251842e-5,2.3415326287966734e-8,-9.320730236673442e-4,3.281574833663746e-5,2.356349553000111e-8,-9.319252711366798e-4,3.310543782936856e-5,2.3700943505328696e-8,-9.318736216132645e-4,3.331219177128394e-5,2.3798471243414568e-8,-9.318752640651988e-4,3.338676318697942e-5,2.3833655432768257e-8,-9.31866963948998e-4,3.331301147491189e-5,2.3799668733206908e-8,-9.317849968972861e-4,3.311655040946259e-5,2.3709231637614105e-8,-9.315865645433877e-4,3.2857438239323513e-5,2.3591073380549135e-8,-9.312628626536916e-4,3.2610345594110236e-5,2.3480457903216238e-8,-9.308393005661033e-4,3.24417200448329e-5,2.3408301483171562e-8,-9.303651936824847e-4,3.239281090859414e-5,2.339318150193606e-8,-9.298986864069065e-4,3.24725338782039e-5,2.343818307136948e-8,-9.29492219127464e-4,3.265959531263871e-5,2.3532245846076462e-8,-9.291818021359038e-4,3.2911055999915944e-5,2.3654527540462002e-8,-9.289814804693926e-4,3.317408157338681e-5,2.3780107907133812e-8,-9.28883102878134e-4,3.339795710135585e-5,2.3885603751994195e-8,-9.288606081706539e-4,3.3543937048918637e-5,2.3953598676844333e-8,-9.288772589118661e-4,3.3591181371482934e-5,2.3975172255395918e-8,-9.288937419745458e-4,3.353814016920971e-5,2.395033272948154e-8,-9.288751893623011e-4,3.340004673214571e-5,2.3886721538417358e-8,-9.287959268978146e-4,3.320403594462646e-5,2.3797303763589087e-8,-9.286417064222096e-4,3.298355112980294e-5,2.369778683496962e-8,-9.284099392258089e-4,3.277328729013441e-5,2.3604298515993387e-8,-9.281087947963245e-4,3.260518664063019e-5,2.3531530406527254e-8,-9.277558922978596e-4,3.25053020042501e-5,2.3491259018736307e-8,-9.27376881127838e-4,3.2490978444289704E-05,2.349102519309791e-8,-9.270036743482587e-4,3.2567791005183e-5,2.3532761106056747e-8,-9.266715169341242e-4,3.2726055504754945e-5,2.361130945511728e-8,-9.264137151151058e-4,3.293770276831043e-5,2.3713172494102367e-8,-9.262532777753961e-4,3.315574465668824e-5,2.3816439311101114e-8,-9.261924253535585e-4,3.331972423030237e-5,2.389335984974595e-8,-9.262040127993932e-4,3.336992217268715e-5,2.3916815814377182e-8,-9.262317722939682e-4,3.326872605091641e-5,2.3870037451283865e-8,-9.26204733848964e-4,3.3020183443077696e-5,2.3755545743126395e-8,-9.260627882338456e-4,3.267485106444268e-5,2.3597373291928313e-8,-9.257806549268176e-4,3.2313603001887904e-5,2.343349628055146e-8,-9.253766285983505e-4,3.201794497161325e-5,2.3301884783205278e-8,-9.249026226141552e-4,3.1842977355389055e-5,2.3227766419155888e-8,-9.244236141866019e-4,3.1804942562237756e-5,2.321783898637054e-8,-9.239978305283136e-4,3.188429203691447e-5,2.3261932645223352e-8,-9.236643245273065e-4,3.203781785436325e-5,2.3339012154274225e-8,-9.234386977616611e-4,3.221281488408803e-5,2.3424069805742805e-8,-9.233147289125141e-4,3.235906739356297e-5,2.3493825767808208e-8,-9.232692914346888e-4,3.243722377144107e-5,2.3530540271546322e-8,-9.232686902572398e-4,3.242362191865267e-5,2.3524031114582375e-8,-9.232753070314963e-4,3.231198064538372e-5,2.347219924760264e-8,-9.232537561991422e-4,3.211234823824068e-5,2.3380345332508162e-8,-9.231758558037119e-4,3.1847866001873865e-5,2.3259584838009844e-8,-9.230239270817444e-4,3.155012781518374e-5,2.3124710835478002e-8,-9.227922362546493e-4,3.1253999746506684e-5,2.299185234886264e-8,-9.224867387452752e-4,3.0992724464646724e-5,2.2876250708263638e-8,-9.221236055597706e-4,3.079385597163362e-5,2.27903811393233e-8,-9.217270560533948e-4,3.067609570471294e-5,2.2742468990955336e-8,-9.213267796337176e-4,3.064680318714811e-5,2.2735346156833847e-8,-9.20954912564315e-4,3.0699934328855683e-5,2.2765581416612138e-8,-9.206421478418023e-4,3.08143607477365e-5,2.2822873109824424e-8,-9.204122660196305e-4,3.095320827010874e-5,2.2889943688910157e-8,-9.202747886912586e-4,3.106597764009101e-5,2.2943650815208422e-8,-9.20216936947342e-4,3.1095988189358365e-5,2.2958395502173376e-8,-9.201985234595585e-4,3.099497926622176e-5,2.2912665548665453e-8,-9.201557642877907e-4,3.074296687634402e-5,2.2797948208220792e-8,-9.200186966514138e-4,3.0364621739963786e-5,2.2626137511840795e-8,-9.197385636888824e-4,2.9929213138156976e-5,2.242949417390068e-8,-9.193108394574188e-4,2.9527970187913423e-5,2.225019669376877e-8,-9.187785340875029e-4,2.9238845703639758e-5,2.2123997801802605e-8,-9.182134225021054e-4,2.9098989670442113e-5,2.2067447146301895e-8,-9.176879830111815e-4,2.9098589555165532e-5,2.2075132170368005e-8,-9.17253784391652e-4,2.9193712335522423e-5,2.212586268610836e-8,-9.169332050515159e-4,2.932621852597383e-5,2.2192168520093514e-8,-9.167219505579218e-4,2.944065181810668e-5,2.224829932694638e-8,-9.165966656263807e-4,2.949439756587482e-5,2.2274934020959177e-8,-9.165233093736817e-4,2.9461840863147958e-5,2.226094758259148e-8,-9.164642868928159e-4,2.9334685108527463e-5,2.220331133229603e-8,-9.163839913645998e-4,2.9120232422900573e-5,2.2106066579955823e-8,-9.162530317647461e-4,2.883851348103519e-5,2.1978863978225656e-8,-9.160513185398048e-4,2.8518597058158136e-5,2.1835244906513958e-8,-9.15769988624412e-4,2.8194298243653313e-5,2.1690730238489156e-8,-9.154120664548803e-4,2.7899535170271005e-5,2.1560765750180442e-8,-9.149917488095805e-4,2.7663738874698725e-5,2.1458654195702416e-8,-9.145323801553542e-4,2.7507851429598272e-5,2.1393709233720136e-8,-9.140634112563936e-4,2.744128142921948e-5,2.136983448703116e-8,-9.136166435043148e-4,2.745994641856036e-5,2.1384644526880326e-8,-9.13221944692427e-4,2.754549808736449e-5,2.1429208794373388e-8,-9.129024910120398e-4,2.7665888640565562e-5,2.148847949703196e-8,-9.126694819496386e-4,2.7777706431344518e-5,2.154253176218981e-8,-9.125166098566058e-4,2.7831321553144563e-5,2.156899691685832e-8,-9.124157000485842e-4,2.7780165658292776e-5,2.1547232079309533e-8,-9.123165267733067e-4,2.759442992476146e-5,2.1464373542698462e-8,-9.121548623777333e-4,2.7276427140508372e-5,2.1322119221499095e-8,-9.118711019526034e-4,2.6870144591949852e-5,2.114094313683426e-8,-9.114350063079968e-4,2.6455006129514234e-5,2.0957209029743784e-8,-9.108634742462995e-4,2.6120092101343845e-5,2.081139801841706e-8,-9.102178200814272e-4,2.5929424367736944e-5,2.0732255869559906e-8,-9.095797117160946e-4,2.5898353086471822e-5,2.0726067368364644e-8,-9.090202329768966e-4,2.5993933266429337e-5,2.077699539719869e-8,-9.085793014011967e-4,2.615479802733407e-5,2.0856387709915296e-8,-9.082619863653898e-4,2.6315579246745158e-5,2.09341239475786e-8,-9.080467696016204e-4,2.6424152758084614e-5,2.098656643738969e-8,-9.078974977973308e-4,2.6448875948786817e-5,2.0999792057647626e-8,-9.077736775849799e-4,2.6378608518081082e-5,2.0969414117202983e-8,-9.076374388060467e-4,2.621931034153885e-5,2.089880711320176e-8,-9.074576563940846e-4,2.598981028468818e-5,2.0797007293920687e-8,-9.072123555606045e-4,2.5717763310892864e-5,2.067680801973962e-8,-9.068901702931364e-4,2.543581375595846e-5,2.055305287961445e-8,-9.064910919600087e-4,2.51777245706118e-5,2.044096225969404e-8,-9.060264239903059e-4,2.497429600456872e-5,2.0354350101638346e-8,-9.055176396903595e-4,2.4849147035049042e-5,2.0303725663131417e-8,-9.049938331462582e-4,2.48148520431951e-5,2.0294513960783498e-8,-9.044877759473634e-4,2.487013629166907e-5,2.0325761996341625e-8,-9.040309431041147e-4,2.4998716181532725e-5,2.0389648367651206e-8,-9.036480496186143e-4,2.5170219741609872e-5,2.0472012539751645e-8,-9.033517513971097e-4,2.534346091236584e-5,2.0553994872596846e-8,-9.031382345469437e-4,2.5472113323665762e-5,2.0614734900078757e-8,-9.029845516590252e-4,2.5512741628428336e-5,2.0635033273204925e-8,-9.028490149929373e-4,2.5434954827073677e-5,2.0601836238167363e-8,-9.026764902106563e-4,2.5232408447057923e-5,2.0513003051675774e-8,-9.02410173775587e-4,2.4931333305205534e-5,2.03809375747986e-8,-9.020092509206674e-4,2.459113424824214e-5,2.0232703367730958e-8,-9.014671775780341e-4,2.4291763948560345e-5,2.0104263036672917e-8,-9.008206650653747e-4,2.4108119510329703e-5,2.0028949316011377e-8,-9.001407652157997e-4,2.40815816794724e-5,2.002473027343289e-8,-8.995076036470077e-4,2.4204454860463047e-5,2.0087372224985797e-8,-8.989819618378563e-4,2.442640209534498e-5,2.0193550978397385e-8,-8.985886426926948e-4,2.4677367529835956e-5,2.0311351442965695e-8,-8.983168875609791e-4,2.489249041554455e-5,2.0411570672683616e-8,-8.981321994515865e-4,2.5027742305275945e-5,2.0474734817052442e-8,-8.979905680705888e-4,2.506411353886881e-5,2.0492861273368607e-8,-8.978493659111419e-4,2.50042478933684e-5,2.0467761838839778e-8,-8.976735626310779e-4,2.486629512223054e-5,2.040810250953443e-8,-8.974383807300419e-4,2.46779904367794e-5,2.0326637181998767e-8,-8.971300793370073e-4,2.447195277178342e-5,2.0238087853917463e-8,-8.967460299014721e-4,2.4281946492655756e-5,2.0157529321890946e-8,-8.962944874862408e-4,2.41394984040332e-5,2.009894778188007e-8,-8.957939342688571e-4,2.4070383811391924e-5,2.0073707412014148e-8,-8.952715333108823e-4,2.4090842783267837e-5,2.0088849549234874e-8,-8.94760107898572e-4,2.420397021695154e-5,2.014545178891125e-8,-8.942933680114259e-4,2.4397265038716906e-5,2.0237535845060154e-8,-8.938997498069575e-4,2.4642474151023778e-5,2.0352064205131918e-8,-8.935958998883974e-4,2.4898610660257977E-05,2.047041270308535e-8,-8.933813137979958e-4,2.5118392150347438e-5,2.057138082449648e-8,-8.932357382837027e-4,2.525738915614616e-5,2.0635360425476936e-8,-8.931205738507962e-4,2.5284299096435977e-5,2.0648906749984923e-8,-8.929848689198422e-4,2.5190265415252555e-5,2.0608774843090036e-8,-8.927757350545704e-4,2.4994824362930195e-5,2.052437537467493e-8,-8.924519189134882e-4,2.4745797708676503e-5,2.0417514294488545e-8,-8.919975931406865e-4,2.4510848006438183e-5,2.031846414448125e-8,-8.914314961573257e-4,2.436039906856739e-5,2.0258291785338553e-8,-8.908058509117407e-4,2.4345690900774747e-5,2.0259156353576073e-8,-8.901923458736179e-4,2.4480408023514104e-5,2.032632704668696e-8,-8.896591855754514e-4,2.473538117757218e-5,2.0446077286436584e-8,-8.892494467896753e-4,2.505003874490458e-5,2.0590986107984132e-8,-8.889707658958967e-4,2.5354671159387962e-5,2.0729934824061592e-8,-8.887992171195747e-4,2.5592069573353648e-5,2.0837712880844427e-8,-8.886922966930062e-4,2.572983863637043e-5,2.0900398514110002e-8,-8.886031916452067e-4,2.576187327548421e-5,2.0915874009217856e-8,-8.884910916697882e-4,2.5702806387382103e-5,2.0891201501616617e-8,-8.883263469942507e-4,2.5580247122862124e-5,2.0839048300129043e-8,-8.880918126579759e-4,2.5427917810549098e-5,2.0774582188619598e-8,-8.877822930623571e-4,2.528066113611859e-5,2.071327182632323e-8,-8.874034503409459e-4,2.51709375729389e-5,2.0669390176493168e-8,-8.869707261418254e-4,2.5125989723721748e-5,2.0654810035291582e-8,-8.865081500699982e-4,2.5164954314173364e-5,2.067774642510077e-8,-8.86046435520712e-4,2.5295625909005256e-5,2.074132329135633e-8,-8.856195799846079e-4,2.5511276908268373e-5,2.0842176511925037e-8,-8.852594627043434e-4,2.578871501824554e-5,2.0969645761179816e-8,-8.849887434082308e-4,2.6089236359805585e-5,2.1106290594163275e-8,-8.848135668142814e-4,2.6363915683878577e-5,2.12303363316089e-8,-8.847186517320325e-4,2.6563437790964064e-5,2.132009779085571e-8,-8.846674515235134e-4,2.6650601378864086e-5,2.1359523275735847e-8,-8.846087189309281e-4,2.66117823350549e-5,2.1343206192558952e-8,-8.844884826177575e-4,2.6463259603390726e-5,2.1279054822091283e-8,-8.84264302201615e-4,2.6249677950410016e-5,2.1187425909026206e-8,-8.839176546726403e-4,2.6034332006823362e-5,2.109662263366006e-8,-8.83460649868888e-4,2.588342561020468e-5,2.1035784916221402e-8,-8.82934630955511e-4,2.584833167410523e-5,2.102703848956324e-8,-8.824002202963414e-4,2.595091364572211e-5,2.1079174189276926e-8,-8.81920975885244e-4,2.61768927835987e-5,2.1185003004173495e-8,-8.815456299885851e-4,2.648030419312936e-5,2.132360042425762e-8,-8.812952960849518e-4,2.6797977084991984e-5,2.146685384949102e-8,-8.811602994497689e-4,2.7068443874576867e-5,2.1587808754275467e-8,-8.811068251980501e-4,2.7247856141716944e-5,2.1667584069800153e-8,-8.81089260979772e-4,2.7317788146902162e-5,2.169866440830599e-8,-8.810626671495409e-4,2.7284359038585255e-5,2.168436095027221e-8,-8.809914703339173e-4,2.7171697969967655e-5,2.1635803660338795e-8,-8.80853375306616e-4,2.7013728986054004e-5,2.1568241334736312e-8,-8.806396376131523e-4,2.6847076911299085e-5,2.14978976330453e-8,-8.803534902028214e-4,2.670608170906783e-5,2.1439805851815076e-8,-8.800081064751453e-4,2.661959400830792e-5,2.140644761622855e-8,-8.796247407013677e-4,2.6608697363742646e-5,2.1406789555317838e-8,-8.792309875330124e-4,2.668453948521081e-5,2.1445354689839482e-8,-8.788585456571649e-4,2.684586308158884e-5,2.152116684744657e-8,-8.78539601693883e-4,2.7076554888474195e-5,2.162673250547703e-8,-8.783011687268403e-4,2.7344451028370228e-5,2.1747606543339466e-8,-8.781575952511767e-4,2.760340690883203e-5,2.1863392752506867e-8,-8.781030584565838e-4,2.780060405021578e-5,2.1951002414711444e-8,-8.781075985026394e-4,2.7889387640801088e-5,2.1990279643567898e-8,-8.781205807905475e-4,2.7844561840664714e-5,2.197066505165757e-8,-8.780829418086908e-4,2.767387999018061e-5,2.1896173090185512e-8,-8.779448870805086e-4,2.74194206923248e-5,2.178590013371832e-8,-8.776820355245091e-4,2.7146767973214645e-5,2.166911671129024e-8,-8.773032995196551e-4,2.692589193920319e-5,2.157667830482182e-8,-8.768478522267831e-4,2.6811226903755186e-5,2.153215088316852e-8,-8.763733034865937e-4,2.6827771709541934e-5,2.1545755773169187e-8,-8.759398672705631e-4,2.6966612293309254e-5,2.1612637371882027e-8,-8.75595423955086e-4,2.718972268856917e-5,2.171528609991872e-8,-8.753651397527334e-4,2.744156484383133e-5,2.182888124213572e-8,-8.75247681912975e-4,2.766380317219204e-5,2.1927841507686533e-8,-8.752182834583848e-4,2.7809084316441637e-5,2.1991802394858896e-8,-8.752370705991506e-4,2.78503969031841e-5,2.2009553750829985e-8,-8.752596751637627e-4,2.7784140827711733e-5,2.1980196488628183e-8,-8.752468743315799e-4,2.7627256123099378e-5,2.1911727125109708e-8,-8.751709906385506e-4,2.741056684869909e-5,2.181802519722558e-8,-8.750184292407893e-4,2.717106230583093e-5,2.1715442258405405e-8,-8.747891179445456e-4,2.6945211256019782e-5,2.161989799005169e-8,-8.744942264117304e-4,2.6764246324536103e-5,2.1544865267399724e-8,-8.741534012510591e-4,2.6651298588158375e-5,2.1500162537119337e-8,-8.73792188217311e-4,2.6619664630001775e-5,2.1491228293641114e-8,-8.734396730616577e-4,2.6671435073366737e-5,2.1518551762450664e-8,-8.731258580016011e-4,2.679606382670435e-5,2.1577100432093963e-8,-8.7287798682881e-4,2.696908317973565e-5,2.165584590639723e-8,-8.727151324958717e-4,2.7152056798777518e-5,2.1737843898724333e-8,-8.726411876491597e-4,2.7295776371153268e-5,2.180169400597056e-8,-8.72638123277193e-4,2.7348884643569248e-5,2.1825288578833227e-8,-8.726635290724197e-4,2.7272385770363037e-5,2.1792059497611342e-8,-8.726572026318421e-4,2.7056308642078688e-5,2.16981558387545e-8,-8.725583379939474e-4,2.673014546177635e-5,2.1556946339519295e-8,-8.723277672615219e-4,2.6358529275551267e-5,2.1397083391496553e-8,-8.719640776249092e-4,2.6020955368897574e-5,2.1253534423843147e-8,-8.715045501738401e-4,2.5784651947306544e-5,2.1155571953329428e-8,-8.71011034255676e-4,2.5683903518439307e-5,2.1117663450457478e-8,-8.705491307552995e-4,2.5713812934991007e-5,2.113685431521052e-8,-8.701702166525884e-4,2.5837496324388218e-5,2.119617587482424e-8,-8.699014006819977e-4,2.6000426627921144e-5,2.1271201276789622e-8,-8.697436570127698e-4,2.6145631661998167e-5,2.1336868320268546e-8,-8.696759171271625e-4,2.6225891752515828E-05,2.137282593288771e-8,-8.696624900426764e-4,2.621144415050257e-5,2.136666972028361e-8,-8.696616766384265e-4,2.609309797451578e-5,2.1315093592520665e-8,-8.696339802855976e-4,2.58812240139253e-5,2.1223246173929514e-8,-8.695486258957221e-4,2.560145694153938e-5,2.1102720086846007e-8,-8.693875014404906e-4,2.5288439658636282e-5,2.096877998090809e-8,-8.691463110554454e-4,2.4979158898865863e-5,2.083749001199522e-8,-8.688333814216199e-4,2.4707133641329762e-5,2.0723252879501703e-8,-8.684669509396333e-4,2.449818770419122e-5,2.0637035505226535e-8,-8.680718625220174e-4,2.4367943926356345e-5,2.0585317375536392e-8,-8.676763190924599e-4,2.432063005736646e-5,2.0569587886541e-8,-8.673088635246923e-4,2.4348592526606557e-5,2.0586157121313442e-8,-8.669953180759233e-4,2.4432155464044134e-5,2.0626149014017224e-8,-8.667551694766482e-4,2.4539935083866278e-5,2.0675728630559995e-8,-8.665969051568935e-4,2.4630410220170644e-5,2.0716875446414914e-8,-8.665124727648299e-4,2.4656354944466406e-5,2.0729342915038327e-8,-8.664725697134575e-4,2.4573949994687252e-5,2.0694555012387574e-8,-8.664264664054185e-4,2.43569138231536e-5,2.0601608133330403e-8,-8.663110139622543e-4,2.401199304406164e-5,2.0453867175701917e-8,-8.660704693962533e-4,2.3586965902470763e-5,2.0272378725582345e-8,-8.656806366986982e-4,2.316147155005631e-5,2.0091868871878088e-8,-8.651633988921566e-4,2.281978312873848e-5,1.9948869925345905e-8,-8.645805810525198e-4,2.2618527290404762e-5,1.9867633866200034e-8,-8.640097643843145e-4,2.256770525095591e-5,1.9851904328723277e-8,-8.635166675543678e-4,2.2633614094821955e-5,1.9886336038762515e-8,-8.63137948012429e-4,2.2757311910044172e-5,1.9944743482180508e-8,-8.628781813717942e-4,2.2875933655872637e-5,1.9999555353413913e-8,-8.62716501594731e-4,2.2938215554097242e-5,2.0028639520069148e-8,-8.626167844185233e-4,2.291219190087368e-5,2.0018587878018706e-8,-8.625373867297079e-4,2.2786717609544522e-5,1.9965210231098124e-8,-8.624388179572647e-4,2.256927580919071e-5,1.987237287145151e-8,-8.62289189850553e-4,2.2281913356921493e-5,1.975006320331657e-8,-8.620677332013985e-4,2.195621272300181e-5,1.9612130462789248e-8,-8.617664966194991e-4,2.16277997444501e-5,1.9473928068892485e-8,-8.613902656342819e-4,2.1330954467429593e-5,1.935006757875441e-8,-8.609548908336364e-4,2.109389378252815e-5,1.9252475069560743e-8,-8.60484364617139e-4,2.0935189055747062e-5,1.9188905233103563e-8,-8.600071436128826e-4,2.086164348674763e-5,1.91620410767755e-8,-8.595522857630777e-4,2.086763182325774e-5,1.916920143547591e-8,-8.591457649603986e-4,2.0935595960451394e-5,1.9202563113239573e-8,-8.588070106868445e-4,2.103741778004402e-5,1.9249802291736785e-8,-8.585455278490724e-4,2.1136657572340328e-5,1.9295144248855717e-8,-8.583574459539792e-4,2.119206027325631e-5,1.9320951414396224e-8,-8.582223041875423e-4,2.1163256231024873e-5,1.9310193204886934e-8,-8.581015046639913e-4,2.1019633830437e-5,1.9250187621650533e-8,-8.579412331421961e-4,2.0752106826417253e-5,1.913751847356446e-8,-8.576831677947019e-4,2.0384459053393114e-5,1.898276909784322e-8,-8.572838524692297e-4,1.997686961930766e-5,1.8811952221028124e-8,-8.567366035007616e-4,1.9613260947646273e-5,1.8661045623987466e-8,-8.560824766647061e-4,1.9371935268362093e-5,1.8563376708157653e-8,-8.553990379155328e-4,1.9293084341216936e-5,1.8535706064271064e-8,-8.547703530167884e-4,1.936321412352537e-5,1.8571651992880513e-8,-8.542559556665059e-4,1.952555465174852e-5,1.864632532315067e-8,-8.538756727449201e-4,1.970687106733324e-5,1.8727989569739696e-8,-8.536133022643489e-4,1.9843141688829028e-5,1.8789169711081318e-8,-8.534305325201742e-4,1.989357508587466e-5,1.8812667709058706e-8,-8.532814843157356e-4,1.984307509264013e-5,1.879252452479186e-8,-8.531232008002682e-4,1.969807749884717e-5,1.8732068113313398e-8,-8.529215833508998e-4,1.9480194465247334e-5,1.864101205609392e-8,-8.526540395091069e-4,1.9220106769211913e-5,1.8532719999846374e-8,-8.523103008730304e-4,1.8952387630912345e-5,1.8421969114052342e-8,-8.518922166171214e-4,1.8711017815063302e-5,1.83230973754797e-8,-8.514126718644334e-4,1.8525339647629737e-5,1.8248378472723516e-8,-8.508935758492765e-4,1.8416482805648164e-5,1.820658103690855e-8,-8.503628746581636e-4,1.839451037204468e-5,1.8201787199229734e-8,-8.498506739728784e-4,1.8456726342008194e-5,1.823266217066025e-8,-8.493848597949864e-4,1.858755364818312e-5,1.8292382925859e-8,-8.489867877928165e-4,1.8760075533750793e-5,1.8369304773500778e-8,-8.486675197616957e-4,1.8939094885436825e-5,1.8448317961918758e-8,-8.484249414374999e-4,1.908551666785093e-5,1.8512794690847823e-8,-8.482420318448436e-4,1.9161892414962764e-5,1.854700959220887e-8,-8.480866947760388e-4,1.9139120485201888e-5,1.853898427741999e-8,-8.47914089849887e-4,1.9004229019293404e-5,1.8483705191242097e-8,-8.476729841454053e-4,1.8768219337488148e-5,1.8386304668266145e-8,-8.473174336537129e-4,1.847105600233066e-5,1.8264025543393118e-8,-8.46823043761053e-4,1.8178888378359918e-5,1.814493877116609e-8,-8.462024594710862e-4,1.7968779622830955e-5,1.8061442704564362e-8,-8.455100213327113e-4,1.790201857047041e-5,1.8039011781499097e-8,-8.44827387250912e-4,1.7997506299222376e-5,1.8085063263440332e-8,-8.442336473553949e-4,1.82219741246474e-5,1.8184995677384506e-8,-8.437761660142642e-4,1.8504766407932626e-5,1.8308588065556925e-8,-8.434584576481965e-4,1.8767662195956877e-5,1.842267679658266e-8,-8.4324815382798e-4,1.895151458304113e-5,1.8502419193258396e-8,-8.430953104809079e-4,1.9028223922689918e-5,1.853631028756183e-8,-8.429494942284543e-4,1.8998849917980934e-5,1.852528741826402e-8,-8.427701821877676e-4,1.8884905878580218e-5,1.8478909462789927E-08,-8.425307640973115e-4,1.8718917804788393e-5,1.8411232187863652e-8,-8.4221863676526e-4,1.853706175763964e-5,1.8337626368837928e-8,-8.418337179676496e-4,1.837420046907955e-5,1.827269721178165e-8,-8.413866423383756e-4,1.8260484347668602e-5,1.822893007494307e-8,-8.408968704231464e-4,1.8218648925198794e-5,1.821564458019552e-8,-8.403904546985228e-4,1.8261602613572497e-5,1.8238040596675744e-8,-8.398971047784783e-4,1.8390365569227584e-5,1.8296347683661744e-8,-8.394462933471349e-4,1.859286581010708e-5,1.8385307406524103e-8,-8.390625554693548e-4,1.8844349042141637e-5,1.849434016111365e-8,-8.387606740926772e-4,1.9109956838288736e-5,1.86086555425353e-8,-8.38541735765671e-4,1.934955354341349e-5,1.871133966197072e-8,-8.383910411803681e-4,1.9524369896896514e-5,1.8786212347626552e-8,-8.382786396254357e-4,1.9604517498810704e-5,1.882101552190826e-8,-8.381628606157513e-4,1.957613104080785e-5,1.8810378176449664e-8,-8.379968680478822e-4,1.9446885164135782e-5,1.8758024552986323e-8,-8.377380159940519e-4,1.924845999124919e-5,1.8677651607636933e-8,-8.373591718549969e-4,1.9034058927322546e-5,1.8591733411884385e-8,-8.368597531357094e-4,1.886904423475679e-5,1.8527502435010273e-8,-8.362722099438048e-4,1.881422597460021e-5,1.8509963766801086e-8,-8.356585036787218e-4,1.890516421021724e-5,1.8553367099453363e-8,-8.350935969910999e-4,1.913599743885326e-5,1.865465529485676e-8,-8.346403242080155e-4,1.945802313397077e-5,1.8793064946602195e-8,-8.34327545916489e-4,1.979670869488179e-5,1.893732043323308e-8,-8.341432058884843e-4,2.0079064624085877e-5,1.905704488089487e-8,-8.340443957116498e-4,2.0256813697895776e-5,1.9132370964305275e-8,-8.339762461212966e-4,2.0315496394862994e-5,1.915767659009268e-8,-8.338890176634837e-4,2.0269954024688864e-5,1.9139616310843984e-8,-8.337477088005211e-4,2.015310994528189e-5,1.9092327487425826e-8,-8.335344195487556e-4,2.0004740360878148e-5,1.9032641784256222e-8,-8.332464619472108e-4,1.9863456916696745e-5,1.897669433393755e-8,-8.328930721117551e-4,1.9762094713418337e-5,1.8938027533986976e-8,-8.32492297882966e-4,1.9725314418621403e-5,1.8926665101186917e-8,-8.32068415293489e-4,1.97681582273195e-5,1.8948588036477114e-8,-8.316495311428089e-4,1.9894810847537727e-5,1.900526818571205e-8,-8.312647852018803e-4,2.0097427747145573e-5,1.909320121864192e-8,-8.309406311115315e-4,2.0355522535096095e-5,1.9203660731413604e-8,-8.306961138447342e-4,2.0636898921431595e-5,1.9323105247655924e-8,-8.305378232200559e-4,2.0901137965268803e-5,1.9434664802670044e-8,-8.304559556956476e-4,2.1106081507306507e-5,1.9520878928693548e-8,-8.304232734093543e-4,2.121667553013109e-5,1.9567400873830927e-8,-8.303983658234531e-4,2.121422167099143e-5,1.9566836162855173e-8,-8.303333870477527e-4,2.1103220227911646e-5,1.952153119702011e-8,-8.301848490250651e-4,2.0913258553630374e-5,1.9444248405592745e-8,-8.299248979192241e-4,2.069466744819484e-5,1.935621254368111e-8,-8.295501421522738e-4,2.0508232040964325e-5,1.928269583340997e-8,-8.290853574454966e-4,2.0410715377186484e-5,1.9246942812164235e-8,-8.285801055587781e-4,2.0439332177392955e-5,1.9263794111536346e-8,-8.2809766077195e-4,2.059951905236773e-5,1.9334808940806114e-8,-8.276980402284858e-4,2.086083916102179e-5,1.944680759157122e-8,-8.274201421640853e-4,2.1164367562493242e-5,1.957510063623294e-8,-8.272700826664273e-4,2.1440488239337026e-5,1.9690891838981256e-8,-8.272211164209307e-4,2.163042771909038e-5,1.9770119508971764e-8,-8.272248984694739e-4,2.1702369405362463e-5,1.980002378644996e-8,-8.27228099796603e-4,2.1656229173428763e-5,1.9781034701150995e-8,-8.271868289199328e-4,2.151765544352276e-5,1.9724204114230814e-8,-8.270743741962598e-4,2.1326531390819485e-5,1.9646358599563786e-8,-8.26882219952542e-4,2.1125677324855516e-5,1.9565355735798533e-8,-8.266169368517766e-4,2.095292185174144e-5,1.94967870339568e-8,-8.262957480189584e-4,2.0836914464318622e-5,1.9452286083130493e-8,-8.25942474644233e-4,2.0795532754586838e-5,1.9438941053262905e-8,-8.255843718992038e-4,2.083550384946244e-5,1.9459206265133282e-8,-8.252495647333255e-4,2.095228065573517e-5,1.9510899184512012e-8,-8.249644062349847e-4,2.112985311313308e-5,1.958715392852858e-8,-8.247500865889223e-4,2.1340896571258705e-5,1.96765117319045e-8,-8.24618243855376e-4,2.1548299489712724e-5,1.9763583444848516e-8,-8.245661579256653e-4,2.1709369314150928e-5,1.983081139445514e-8,-8.245731982415894e-4,2.1783542272099323e-5,1.9861656355918796e-8,-8.246010337711906e-4,2.174293624505869e-5,1.9844932417100713e-8,-8.24599762693081e-4,2.1582829143363222e-5,1.9779092489063103e-8,-8.245199320168276e-4,2.1327443144663598e-5,1.9674559193285197e-8,-8.243271463267552e-4,2.1027056964939968e-5,1.9552443886955017e-8,-8.240137478913354e-4,2.0745880537874062E-05,1.9439417625111437e-8,-8.236027048837928e-4,2.054443207807126e-5,1.9360323569771445e-8,-8.231420981185931e-4,2.046260583006955e-5,1.9331166390175837e-8,-8.226923062309316e-4,2.050897293837082e-5,1.9354816716611825e-8,-8.223101620532402e-4,2.065914064149752e-5,1.9420558033546697e-8,-8.220346412416486e-4,2.0863033376546166e-5,1.9507310836051278e-8,-8.218778118280972e-4,2.1058697312165184e-5,1.958944171580837e-8,-8.218233231961076e-4,2.1188662210092975e-5,1.964349015093813e-8,-8.218326197553458e-4,2.1214125651217814e-5,1.9653903415513317e-8,-8.21856605729153e-4,2.112285109501725e-5,1.9616154125454246e-8,-8.218486723198633e-4,2.092896166987658e-5,1.9536534435121197e-8,-8.21774900682099e-4,2.0665900016862456e-5,1.9429164058162805e-8,-8.216189955439171e-4,2.0376078120981753e-5,1.9311669317101807e-8,-8.213819939742871e-4,2.010103213726683e-5,1.9201115798957357e-8,-8.210785719648872e-4,1.987447711399243e-5,1.911118281263017e-8,-8.20732153301422e-4,1.9718757169934105e-5,1.905076891931154e-8,-8.203703758138432e-4,1.964388881521585e-5,1.9023668998090353e-8,-8.200215277640999e-4,1.9647991667492965e-5,1.9028805308153496e-8,-8.197118007420141e-4,1.971813517172542e-5,1.906061049159396e-8,-8.194627667111748e-4,1.983118207998987e-5,1.910940136475893e-8,-8.192884188063901e-4,1.99548908795387e-5,1.9161861647232118e-8,-8.191914615513263e-4,2.005020377589606e-5,1.920200887423933e-8,-8.191593400069361e-4,2.0076033762683125e-5,1.92131658914827e-8,-8.191616964490206e-4,1.999753215727303e-5,1.918132541360626e-8,-8.191520734989105e-4,1.9797250015148836e-5,1.909967483876304e-8,-8.190765586708921e-4,1.948575838000759e-5,1.8972896885336155e-8,-8.188893026085382e-4,1.9105659284594878e-5,1.881876618035338e-8,-8.185698549347501e-4,1.8723588649551148e-5,1.8664805935860888e-8,-8.181336800547649e-4,1.8410527065246534e-5,1.8540121068539456e-8,-8.176292682317155e-4,1.8218322499468568e-5,1.8465698823274743e-8,-8.171225750854558e-4,1.816336880244077e-5,1.844774602721915e-8,-8.166763753560664e-4,1.8224017124166648e-5,1.8476781130729858e-8,-8.163333375780404e-4,1.8350561857245017e-5,1.853193523194076e-8,-8.16107745214289e-4,1.8481632209535812e-5,1.8587831243527868e-8,-8.159860616604793e-4,1.8560533642340127e-5,1.8621333711184525e-8,-8.159338548044192e-4,1.8547406867931718e-5,1.8616474714546974e-8,-8.159059685028022e-4,1.8425544094309115e-5,1.856691337547998e-8,-8.158571772717478e-4,1.8201877478809365e-5,1.8475986230218312e-8,-8.157511568267292e-4,1.790263037304738e-5,1.8354797984609146e-8,-8.155662647845826e-4,1.756578402681822e-5,1.8219061692464088e-8,-8.152974777324008e-4,1.7232463817564305e-5,1.80855624276064e-8,-8.149548380423059e-4,1.6939285910434784e-5,1.79690735294896e-8,-8.14559552341495e-4,1.6713010048744217e-5,1.7880250136234366e-8,-8.141391520903434e-4,1.6567887899189816e-5,1.7824625038532265e-8,-8.13722894907782e-4,1.65052911686815e-5,1.7802510165505718e-8,-8.133380240113629e-4,1.6514764792978118e-5,1.7809448528021547e-8,-8.130068823177181e-4,1.6575692411162992e-5,1.7836899066496914e-8,-8.127444898746023e-4,1.6659173301351172e-5,1.787301036505299e-8,-8.12556110967037e-4,1.6730231029844328e-5,1.79035428156178e-8,-8.1243455505061e-4,1.6751012160459823e-5,1.7913194389418595e-8,-8.123576337801389e-4,1.6686038010803166e-5,1.7887740556088877e-8,-8.122873281432063e-4,1.6510317217035855e-5,1.7817300812807638e-8,-8.12173296759821e-4,1.6219656866485414e-5,1.7700472205744483e-8,-8.119633169768517e-4,1.5839706948872637e-5,1.754794502201198e-8,-8.116204935794114e-4,1.5427302108426434e-5,1.7382995748216617e-8,-8.111412381260521e-4,1.5058049525129414e-5,1.723638629723847e-8,-8.105632272728717e-4,1.4801145884299286e-5,1.713607209252042e-8,-8.099554919138893e-4,1.4692744717581516e-5,1.7096374287795603e-8,-8.093939263332287e-4,1.4722847634811913e-5,1.7112747706322244e-8,-8.089353936498745e-4,1.484233801753127e-5,1.7164799969601408e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json new file mode 100644 index 0000000..36daa45 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":6000,"numberOfSamples":1000,"samples":[-8.086030009769924e-4,1.4983810405869992e-5,1.7224897231104907e-8,-8.083859978917138e-4,1.5083891420443416e-5,1.7267300877946733e-8,-8.082495498012613e-4,1.5098334698112563e-5,1.727428602498279e-8,-8.08147627922185e-4,1.5007880436382382e-5,1.72384405012867e-8,-8.080344588306433e-4,1.4817024022017442e-5,1.716203842239244e-8,-8.078727223656254e-4,1.4548770451198794e-5,1.705477562558989e-8,-8.076383715174149e-4,1.4237727414253643e-5,1.6930867623711068e-8,-8.07322519250199e-4,1.3922902257012772e-5,1.6806096847405343e-8,-8.069308512481781e-4,1.3641062334595963e-5,1.6695163186853533e-8,-8.064810674365431e-4,1.3421371907981373e-5,1.6609600165603765e-8,-8.059989962711845e-4,1.3281793410593358e-5,1.65564122262766e-8,-8.055140919096513e-4,1.3227437282497666e-5,1.6537470119423336e-8,-8.050550211507427e-4,1.3250758311506548e-5,1.654960752689265e-8,-8.046459011976815e-4,1.3333167640947059e-5,1.658525704041747e-8,-8.04303377210941e-4,1.3447472960351647e-5,1.6633415280209964e-8,-8.040343930544604e-4,1.3560785131852206e-5,1.6680814883554258e-8,-8.038344371049681e-4,1.3637887698738715e-5,1.6713305884428016e-8,-8.036861808400415e-4,1.3645376246194308e-5,1.6717552173535383e-8,-8.035588881624019e-4,1.355715046434086e-5,1.668324932697258e-8,-8.034098545481887e-4,1.3361633179672876e-5,1.660599824235996e-8,-8.031899161995416e-4,1.3069806636622722e-5,1.6490473396248044e-8,-8.028548171317579e-4,1.2720836118968e-5,1.635260915989386e-8,-8.023817298130074e-4,1.2379672673151174e-5,1.6218567533971117e-8,-8.017848916609258e-4,1.21214866090865e-5,1.6118432225501397e-8,-8.011195394685814e-4,1.2004672862047483e-5,1.6075358566152277e-8,-8.004664161243661e-4,1.2045064498369676e-5,1.6095295025865495e-8,-7.999018683719954e-4,1.2207888551202842e-5,1.6163899894807838e-8,-7.994702224832471e-4,1.242340488168506e-5,1.625294935668257e-8,-7.991732540075557e-4,1.2615665237930678e-5,1.6331930886767175e-8,-7.989782632286061e-4,1.2727385321542004e-5,1.6378010390939176e-8,-7.988353176257354e-4,1.2731278778766297e-5,1.6380533700705246e-8,-7.98693545654588e-4,1.262891363153558e-5,1.6340492793338305e-8,-7.985117563218257e-4,1.2443008649451221e-5,1.6267331548458157e-8,-7.982633092416262e-4,1.2208291416633506e-5,1.617517573988445e-8,-7.97937024226046e-4,1.1963551111059878e-5,1.6079587401967125e-8,-7.975359220318068e-4,1.1745517867734186e-5,1.5995123017000115e-8,-7.970748169146011e-4,1.1584298423249006e-5,1.5933578635139873e-8,-7.96577147084504e-4,1.1500116000004205e-5,1.59027823489698e-8,-7.960712612774264e-4,1.1501312858278244e-5,1.5905873133149612e-8,-7.955863788122124e-4,1.1583659586297626e-5,1.5941057128577827e-8,-7.951485028139105e-4,1.1731083070377464e-5,1.6001886167851592e-8,-7.947767272267163e-4,1.191780985300591e-5,1.607808021319529e-8,-7.944803671342594e-4,1.2111620389700717e-5,1.615680382240154e-8,-7.942570988685387e-4,1.2277833661532118e-5,1.622426162217438e-8,-7.940921495251726e-4,1.2383811890041994e-5,1.6267523534675877e-8,-7.939586304605242e-4,1.2403888228974189e-5,1.627651653757225e-8,-7.938193280601158e-4,1.2324675476991541e-5,1.6246136706354253e-8,-7.936307142675456e-4,1.2150538325271284e-5,1.6178380649204796e-8,-7.933502814410618e-4,1.1908091876990174e-5,1.608405253597014e-8,-7.929477558193591e-4,1.164701184564693e-5,1.5982993948326116e-8,-7.924185834346178e-4,1.1433225812865484e-5,1.5901308272972388e-8,-7.91794201526995e-4,1.1331683271163489e-5,1.5864503448445484e-8,-7.911404620961953e-4,1.1381697803054312e-5,1.5887775959579784e-8,-7.905387505296019e-4,1.1576581858174432e-5,1.5968081661271605e-8,-7.900557579253249e-4,1.1862063556780149e-5,1.6083659449037498e-8,-7.897185238722374e-4,1.2157584885353175e-5,1.6202533533502623e-8,-7.895090488599649e-4,1.238821600505574e-5,1.629512295943271e-8,-7.893784662655317e-4,1.2508703453700893e-5,1.6343711956180873e-8,-7.892687928634058e-4,1.2510154891614356e-5,1.6345059350363414e-8,-7.891303130012338e-4,1.2412762325594466e-5,1.630746636423513e-8,-7.889301607306106e-4,1.22532563576661e-5,1.6245726990312346e-8,-7.886537075923972e-4,1.207350096757021e-5,1.6176528951831164e-8,-7.883021088407754e-4,1.1912612868365128e-5,1.611529698390703e-8,-7.878886554381245e-4,1.1802366938175958e-5,1.6074404646753326e-8,-7.874351827903575e-4,1.1764678405500699e-5,1.606225725212218e-8,-7.869686785579548e-4,1.1810193745663737e-5,1.6082821884922013e-8,-7.865178808041266e-4,1.1937644143326378e-5,1.613543027797478e-8,-7.861097334099989e-4,1.2134002375285157e-5,1.621485643068633e-8,-7.857657050956631e-4,1.2375715139896458e-5,1.631178566628287e-8,-7.854982761710509e-4,1.2631342722271491e-5,1.6413830995212057e-8,-7.853082129742637e-4,1.2865627763957707e-5,1.650712800670973e-8,-7.851832404152557e-4,1.3044611801087987e-5,1.6578365268496393e-8,-7.850984979333072e-4,1.3141234772513003e-5,1.661701655440917e-8,-7.850189859904393e-4,1.314074642924285e-5,1.6617484545055545e-8,-7.849040783473408e-4,1.3045167089176555e-5,1.658083277620777e-8,-7.847140887854131e-4,1.2875989940709468e-5,1.6515781106734278e-8,-7.84418739673568e-4,1.2674020385660439e-5,1.643854403323704e-8,-7.840067264380274e-4,1.2494690124657561e-5,1.637089555624342e-8,-7.834940629310338e-4,1.2397202649814611e-5,1.633586078646625e-8,-7.829269123445694e-4,1.242762480633356e-5,1.6351121218225165e-8,-7.823738580167101e-4,1.2600199243328678e-5,1.6421819173272966e-8,-7.819059640317111e-4,1.2886068491034284e-5,1.6536310251172648e-8,-7.815711190078477e-4,1.3218908359013295e-5,1.6668481029581357e-8,-7.813760467322517e-4,1.3518369457025356e-5,1.678692018769316e-8,-7.812866097556989e-4,1.3719738169680302e-5,1.6866455278038853e-8,-7.81245043675736e-4,1.3793772038801468e-5,1.689586528796916e-8,-7.811924892995569e-4,1.3748855436262393e-5,1.6878708749903426e-8,-7.810853126995724e-4,1.3619700644445478e-5,1.6828864667497608e-8,-7.809012145161698e-4,1.3452099763330615e-5,1.6764485192192976e-8,-7.806376216935296e-4,1.3290653946538645e-5,1.6703112676782687e-8,-7.803066615377375e-4,1.31716120529323e-5,1.6658847878700447e-8,-7.799298430182615e-4,1.311988593603372e-5,1.6641219568441624e-8,-7.795337437080761e-4,1.3148379669826384e-5,1.665500141543589e-8,-7.791466519745774e-4,1.3258192670318894e-5,1.6700371540229692e-8,-7.787956166079658e-4,1.3439123013885566e-5,1.6773161126941902e-8,-7.785034521569552e-4,1.3670540636302536e-5,1.6865211246133127e-8,-7.782855194761558e-4,1.3923070098588027e-5,1.6965022456657025e-8,-7.781465158733033e-4,1.4161671472159447e-5,1.705894395665733e-8,-7.780780274644127e-4,1.4350439747166847e-5,1.713304166764391e-8,-7.780578724819625e-4,1.4458808126371696e-5,1.717552433911576e-8,-7.780520945693767e-4,1.4468165316748068e-5,1.7179332308174036e-8,-7.780199264883032e-4,1.4377381074197417e-5,1.7144283672725583e-8,-7.779212697790456e-4,1.42055818063788e-5,1.707811591367681e-8,-7.777254715128031e-4,1.399092160934568e-5,1.6995928407681764e-8,-7.774196852037493e-4,1.37848241088391e-5,1.691784077706239e-8,-7.770148281025337e-4,1.3641905255902624e-5,1.68649932739021e-8,-7.7654695118254e-4,1.3606723344494496e-5,1.6854386908037733e-8,-7.760719733956719e-4,1.3699981752654324e-5,1.6893614104122298e-8,-7.756528920660803e-4,1.3908611710779359e-5,1.6977171984468366e-8,-7.753414973715193e-4,1.4185135339496087e-5,1.708636928482128e-8,-7.751607783545031e-4,1.4459758828692502e-5,1.7194078255654558e-8,-7.750965022472446e-4,1.4662655192892729e-5,1.7273331572288793e-8,-7.751031768498831e-4,1.4747011345581016e-5,1.730618293517172e-8,-7.751215862559233e-4,1.4701900854900151e-5,1.7288656969080978e-8,-7.750986283316115e-4,1.45502732264208e-5,1.7229950783472687e-8,-7.750005720993924e-4,1.4336090541435382e-5,1.714739884303355e-8,-7.748166257563864e-4,1.4108830030091316e-5,1.7060381671628664e-8,-7.74555246270904e-4,1.3911680743308552e-5,1.6985680755460048e-8,-7.742375216046733e-4,1.3775437312394145e-5,1.6935101840957774e-8,-7.738908672395347e-4,1.3716934985120997e-5,1.691492118059338e-8,-7.735443296708602e-4,1.373987657547806e-5,1.6926288994825302e-8,-7.732253688257358e-4,1.3836379992091725e-5,1.6965903557041073e-8,-7.729574201870145e-4,1.398850143961783e-5,1.702664562074045e-8,-7.727575479089458e-4,1.41697546103367e-5,1.7098179346093112e-8,-7.726338127068317e-4,1.4347167415583573e-5,1.7167741915981117e-8,-7.72582526013079e-4,1.4484672906976143e-5,1.7221441721592798e-8,-7.725862452751478e-4,1.4548420666369706e-5,1.724630156120042e-8,-7.726138958417847e-4,1.4513823225779425e-5,1.723297684502607e-8,-7.726244080267737e-4,1.4372974279860863e-5,1.717861929269323e-8,-7.725743889406402e-4,1.4139927504773041e-5,1.708890500581759e-8,-7.724286327675101e-4,1.3851021527237483e-5,1.6978122122320604e-8,-7.721705055599232e-4,1.3558663671444288e-5,1.6866694872960056e-8,-7.718085762849863e-4,1.3319387181004731e-5,1.6776479385700888e-8,-7.713767987397502e-4,1.3179295367351444e-5,1.6725086614472134e-8,-7.709275714331829e-4,1.3161122848693512e-5,1.6720920077215314e-8,-7.705191844169844e-4,1.3256827859980563e-5,1.6760442718757147e-8,-7.702008063045723e-4,1.3428227793557443e-5,1.6828582942267516e-8,-7.699990644679152e-4,1.361618554202354e-5,1.6902388068197547e-8,-7.699104039245936e-4,1.3756467861176603e-5,1.6957151603506948e-8,-7.699023224946573e-4,1.3797806695198463e-5,1.697331252819716e-8,-7.69923693570122e-4,1.3715970518988264e-5,1.6941802014512077e-8,-7.699204730517889e-4,1.3518607018056203e-5,1.686585566047806e-8,-7.698506029324883e-4,1.3239647040700348e-5,1.675881321149357e-8,-7.696928309426752e-4,1.292679553392078e-5,1.663924458294889e-8,-7.694477547487295e-4,1.2627916951666916e-5,1.6525649634657365e-8,-7.691330174202381e-4,1.2380977939982187e-5,1.6432564147368763e-8,-7.687761526504343e-4,1.2209237379755138e-5,1.6368739832210366e-8,-7.684079653894965e-4,1.2120781661778011e-5,1.633703602331063e-8,-7.680577369530784e-4,1.2110432408898472e-5,1.6335228492463344e-8,-7.677501944254693e-4,1.21623329271923e-5,1.6357054465017322e-8,-7.675035516029946e-4,1.2252353588631538e-5,1.6393155437041988e-8,-7.673278510063229e-4,1.2350244031443248e-5,1.6431898304259127e-8,-7.672231013092557e-4,1.2422047112441263e-5,1.6460286860244704e-8,-7.671772688900853e-4,1.243363156115782e-5,1.6465302548663993e-8,-7.671649640707796e-4,1.2356108383738767e-5,1.6435971563363704e-8,-7.671484101972802e-4,1.2173134658280302e-5,1.6366160768870968e-8,-7.670825263514741e-4,1.188858814480631e-5,1.6257519307403445e-8,-7.669249561884815e-4,1.153125860759139e-5,1.6121270567197454e-8,-7.666492306156377e-4,1.115245465159126e-5,1.5977261511360678e-8,-7.662560978121537e-4,1.0814456656206232e-5,1.5849466079461248e-8,-7.657770512027595e-4,1.05724402594284e-5,1.5758977593618244e-8,-7.65267023298901e-4,1.0456872508954073e-5,1.571723833544501e-8,-7.647885985095952e-4,1.0463873633946137e-5,1.5722417018223885e-8,-7.643941100002343e-4,1.0557097979145212e-5,1.5760262592280024e-8,-7.641121194876584e-4,1.0679365871370066e-5,1.580868049828012e-8,-7.639418824019487e-4,1.0769014504534602e-5,1.5844044262621295e-8,-7.63856040874777e-4,1.0775642632836637e-5,1.5847200884499e-8,-7.638095816807227e-4,1.067134664327151e-5,1.5807708446849496e-8,-7.637520719001363e-4,1.0455341968064698e-5,1.5725533933861105e-8,-7.636398633410946e-4,1.015159717703648e-5,1.5610082730947348e-8,-7.634452271731003e-4,9.80080001717917e-6,1.547706895850993e-8,-7.63160419406769e-4,9.449412193445568e-6,1.5344290126782374e-8,-7.627963935193374e-4,9.13916163473737e-6,1.522760366709052e-8,-7.623775983584871e-4,8.899634906261868e-6,1.5138131787055436e-8,-7.619351862275943e-4,8.745021320744058e-6,1.5081084100568852e-8,-7.615007251523846e-4,8.674467790722235e-6,1.5055961298020598E-08,-7.611015754607918e-4,8.674636046522299e-6,1.5057573206547553e-8,-7.607580727699104e-4,8.723012138457471e-6,1.507730793528806e-8,-7.604819845856674e-4,8.79104729455283e-6,1.5104310215033872e-8,-7.602755220059144e-4,8.84693302571431e-6,1.512651308174354e-8,-7.60130395955743e-4,8.858401879917029e-6,1.5131688225382546e-8,-7.600268787531797e-4,8.796280560370882e-6,1.5108794499177295e-8,-7.599335469922736e-4,8.639531259323042e-6,1.5049899963453894e-8,-0.000759809210702789,8.381910431287344e-6,1.495271925500096e-8,-7.596089689111743e-4,8.038852722231386e-6,1.4823230368913413e-8,-7.592954714676379e-4,7.651012523481406e-6,1.4677004696445236e-8,-7.588534536653339e-4,7.279557888325591e-6,1.4537373653592984e-8,-7.583012167940397e-4,6.990438849818558e-6,1.4429384557414762e-8,-7.576907836367265e-4,6.831496399448591e-6,1.4371061617021388e-8,-7.570930731261787e-4,6.813281142864784e-6,1.4366159181078007e-8,-7.56573893838745e-4,6.904553518906711e-6,1.440256548875904e-8,-7.561728030269616e-4,7.044803405478948e-6,1.445716559337654e-8,-7.55894167206311e-4,7.166043359666975e-6,1.450415417168199e-8,-7.55711412564325e-4,7.212993883249746e-6,1.4522671727194704e-8,-7.555791656848098e-4,7.1549930276133835e-6,1.4501273602714309e-8,-7.554470640511585e-4,6.988776194001312e-6,1.443893097512812e-8,-7.552712370159999e-4,6.734529749762169e-6,1.4343479112262025e-8,-7.550218631592772e-4,6.428246653777687e-6,1.422866437274883e-8,-7.546866678361489e-4,6.112788824185316e-6,1.4110719482184918e-8,-7.542707923333388e-4,5.8292867079302145e-6,1.400510243390426e-8,-7.537936783321645e-4,5.610111184424559e-6,1.392387568318107e-8,-7.532839358400108e-4,5.474383321977379e-6,1.3874075234006555e-8,-7.527734587962739e-4,5.42640635004478e-6,1.3857186797906472e-8,-7.522919859404003e-4,5.45669894844625e-6,1.386957766596827e-8,-7.518629339501932e-4,5.544851652733658e-6,1.3903575419281547e-8,-7.515008253699221e-4,5.66324214311497e-6,1.3948838400251825e-8,-7.51210094786353e-4,5.780767390543559e-6,1.3993723032625362e-8,-7.509847483529711e-4,5.866229168685598e-6,1.4026532943938554e-8,-7.508084438557491e-4,5.891537175053618e-6,1.4036723339664531e-8,-7.506548991499108e-4,5.835186884660035e-6,1.4016225902040902e-8,-7.504890649576297e-4,5.6865153995048614e-6,1.3961069522205696e-8,-7.502702069824309e-4,5.450810519333698e-6,1.3873309470797243e-8,-7.499584705215199e-4,5.154093641144201e-6,1.376281194863296e-8,-7.495258303846799e-4,4.844492327076601e-6,1.3647730610076522e-8,-7.489697010459084e-4,4.585680212391129e-6,1.3551982235163058e-8,-7.483229773845283e-4,4.439424944083938e-6,1.3498642646116442e-8,-7.47651384167147e-4,4.441135789993236e-6,1.3500781498633393e-8,-7.47033630108719e-4,4.5810783550153105e-6,1.3554518828823992e-8,-7.465319640685318e-4,4.8048662841334895e-6,1.3639340521473976e-8,-7.461696806020518e-4,5.035072310667735e-6,1.3726250888424918e-8,-7.45927649234082e-4,5.200984456189078e-6,1.3788876550238137e-8,-7.457581262680648e-4,5.260058265685222e-6,1.3811432021938078e-8,-7.456046602651826e-4,5.203880705388684e-6,1.3790914319102578e-8,-7.454181631269655e-4,5.052110434397819e-6,1.373481274651468e-8,-7.451656280700271e-4,4.841472760620587e-6,1.3656958068869079e-8,-7.448325507537849e-4,4.61494382342504e-6,1.357343640410499e-8,-7.444214445461733e-4,4.413322175715639e-6,1.3499417669267064e-8,-7.439484346229335e-4,4.2694368736615086e-6,1.3447009746671435e-8,-7.434389857049532e-4,4.204518303627032e-6,1.3423957631836567e-8,-7.429232000552066e-4,4.22642353337615e-6,1.3433047936838739e-8,-7.424310713391792e-4,4.3296407656193255e-6,1.3472159698785832e-8,-7.419881612882491e-4,4.496920195240808e-6,1.3534885426142835e-8,-7.416121363128246e-4,4.702242436589464e-6,1.3611614172495427e-8,-7.413105280088105e-4,4.9146848337064315e-6,1.369092983616905e-8,-7.410798564648585e-4,5.102579289552534e-6,1.3761123342581654e-8,-7.409059284613239e-4,5.2374620959614515e-6,1.3811649751762265e-8,-7.40765021747722e-4,5.2976581500819286e-6,1.3834473325427858e-8,-7.406258251361314e-4,5.271569720175211e-6,1.3825313013330133e-8,-7.404522940607082e-4,5.16079816624066e-6,1.3784817350730312e-8,-7.402080188256512e-4,4.982998369865964e-6,1.3719616164717567e-8,-7.398629579022926e-4,4.773502162654375e-6,1.3642888630399176e-8,-7.394027814983437e-4,4.583451075155526e-6,1.3573616754794363e-8,-7.388391120671625e-4,4.471358391383276e-6,1.3533406453527241e-8,-7.382156353710173e-4,4.486293417993243e-6,1.3540246689754017e-8,-7.376025584177996e-4,4.646263952038066e-6,1.360057244394542e-8,-7.370753966750942e-4,4.923220958661702e-6,1.3703844593894654e-8,-7.366853493943496e-4,5.247831278658755e-6,1.3824412277992002e-8,-7.364384127765779e-4,5.535851078356583e-6,1.3931243008841947e-8,-7.362964904189415e-4,5.721421847439438e-6,1.400013251189647e-8,-7.361977969831083e-4,5.777834083495166e-6,1.4021317172913075e-8,-7.360817614101209e-4,5.717840477241389e-6,1.3999596259483795e-8,-7.359055977095308e-4,5.580085272187351e-6,1.3949330970951832e-8,-7.356494891230436e-4,5.412741838724204e-6,1.3888375540751401e-8,-7.353140711726487e-4,5.2611317114854454e-6,1.3833462198014537e-8,-7.349148352444343e-4,5.160747629068616e-6,1.3797605620566516e-8,-7.34476381499244e-4,5.134402307300587e-6,1.378907362699951e-8,-7.340275945238301e-4,5.1916865952263e-6,1.3811240956866352e-8,-7.335976379390709e-4,5.3295409738639065e-6,1.386285790594125e-8,-7.332124264851362e-4,5.533583318487555e-6,1.393857552488052e-8,-7.328914883847182e-4,5.780224195792896e-6,1.4029729175094004e-8,-7.326453464977734e-4,6.039657534633526e-6,1.412541622107681e-8,-7.324737353478441e-4,6.279722160979335e-6,1.4213885118568412e-8,-7.323650721376349e-4,6.470322863277057e-6,1.4284138014656952e-8,-7.322974036581984e-4,6.587844288483066e-6,1.4327549734585913e-8,-7.322407659586676e-4,6.619032470350085e-6,1.4339305787613665e-8,-7.321607813179032e-4,6.563928060747684e-6,1.4319492082724502e-8,-7.320233046863541e-4,6.4374966021072834e-6,1.4273690279829042e-8,-7.317999978283977e-4,6.269641412024475e-6,1.4212954276300681e-8,-7.314747508146167e-4,6.103003158628865e-6,1.415295567438129e-8,-7.310503956340962e-4,5.987372946262786e-6,1.4111888222525968e-8,-7.30553886574779e-4,5.969501086118192e-6,1.4106716472582734e-8,-7.300364338939657e-4,6.078516230287104e-6,1.4147877299553037e-8,-7.295642924788504e-4,6.3107236580662384e-6,1.4233817360402606e-8,-7.29198788762624e-4,6.622175486804494e-6,1.4348383535941494e-8,-7.289720333664855e-4,6.9380135239147e-6,1.4464270004578152e-8,-7.288720132220635e-4,7.178968146684719e-6,1.4552629285696456e-8,-7.288478475491566e-4,7.292033122646066e-6,1.4594189017363577e-8,-7.288324425920637e-4,7.267653302542506e-6,1.4585519239748402e-8,-7.287681356467766e-4,7.1358561174840265e-6,1.4537665753835853e-8,-7.286220514824529e-4,6.9483598487620115e-6,1.4469630977301123e-8,-7.28388085845522e-4,6.7592678922152605e-6,1.4401275496516345e-8,-7.280804913481166e-4,6.612273121504457e-6,1.4348581630811597e-8,-7.277252407959589e-4,6.5354231757555416e-6,1.4321716844225746e-8,-7.273527660572583e-4,6.540950211029966e-6,1.4324997142073501e-8,-7.269930114233965e-4,6.6273182842564705e-6,1.4357691570767854e-8,-7.26672240266485e-4,6.781718300136292e-6,1.4414990002890305e-8,-7.264107154812758e-4,6.982473886382033e-6,1.4488915944389668e-8,-7.262207318281119e-4,7.201524453767113e-6,1.4569238469116222e-8,-7.261048945983162e-4,7.407366857871365e-6,1.464452799757507e-8,-7.260549073749619e-4,7.568797659062485e-6,1.4703494431167381e-8,-7.26051465526772e-4,7.659436861891897e-6,1.4736614332348274e-8,-7.260658689683676e-4,7.662469338693832e-6,1.4737849783051846e-8,-7.260636091525101e-4,7.574690894230019e-6,1.4706123818166879e-8,-7.260097162467727e-4,7.408843381596091e-6,1.4646170303919831e-8,-7.258751869359084e-4,7.193327753172565e-6,1.4568414770672015e-8,-7.256434329193616e-4,6.968816351578809e-6,1.4487705994885722e-8,-7.253155606930208e-4,6.781829885047062e-6,1.4420936000282275e-8,-7.249132562182546e-4,6.6756763505280914e-6,1.4383719471977372e-8,-7.244778292372096e-4,6.679612946037396e-6,1.438647617104953e-8,-7.240638597492315e-4,6.798235959896041e-6,1.443065370266917e-8,-7.237266826504071e-4,7.004766318589259e-6,1.4506391489857573e-8,-7.235054613225411e-4,7.243025516191428e-6,1.4593301323513466e-8,-7.2340765660686e-4,7.441405783647142e-6,1.4665511557876749e-8,-7.234034010785615e-4,7.53631382926181e-6,1.4700082991218885e-8,-7.234351925205399e-4,7.495034347391305e-6,1.468523799630331e-8,-7.234393429224217e-4,7.325932982914151e-6,1.462407472647779e-8,-7.233679091640017e-4,7.071240070168453e-6,1.4531993918580552e-8,-7.2320061796834e-4,6.7884821942071435e-6,1.4429962503804012e-8,-7.229442000740695e-4,6.531515408382787e-6,1.4337580335722595e-8,-7.226237824510028e-4,6.338676971745417e-6,1.4268730878278133e-8,-7.222726609371696e-4,6.229186086844068e-6,1.4230270463511608e-8,-7.219243370456767e-4,6.204979076589403e-6,1.4222735101428858e-8,-7.216077209136364e-4,6.254637305234233e-6,1.424182454315981e-8,-7.213447052154808e-4,6.357313551246988e-6,1.427987548429127e-8,-7.211489353260135e-4,6.485977719230195e-6,1.432706196354135e-8,-7.210249390732579e-4,6.610178726644471e-6,1.4372391800318248e-8,-7.209673047686168e-4,6.69888928465445e-6,1.440471413451235e-8,-7.209601280974389e-4,6.7240278150433335e-6,1.4413965009805703e-8,-7.20977427897608e-4,6.664882671759e-6,1.4392744472576701e-8,-7.209854343714221e-4,6.51295128433434e-6,1.4338056762127022e-8,-7.209473640933031e-4,6.27595967171071e-6,1.4252764848687728e-8,-7.20830498270342e-4,5.979351536502665e-6,1.4146129546232638e-8,-7.206142541252474e-4,5.663667819126294e-6,1.4032848951131945e-8,-7.202969652261338e-4,5.377288241995543e-6,1.3930404038766788e-8,-7.198989165010806e-4,5.1656853148451214e-6,1.3855144520274798e-8,-7.194600346572165e-4,5.059761967389392e-6,1.381807600558674e-8,-7.190320840484526e-4,5.066413372274996e-6,1.3821501796020195e-8,-7.186667008859963e-4,5.164217116728777e-6,1.3857550892980985e-8,-7.184018625214499e-4,5.306290101127747e-6,1.3909277458429183e-8,-7.182503872805278e-4,5.430848543585556e-6,1.3954476928807232e-8,-7.181945402363831e-4,5.477745639924967e-6,1.3971593615188382e-8,-7.181899363308149e-4,5.406401461740874e-6,1.3946114620028615e-8,-7.181787956068019e-4,5.208432912413644e-6,1.3875092760960466e-8,-7.181080232052682e-4,4.909307597908525e-6,1.3767756999698908e-8,-7.179446434546303e-4,4.558250395919083e-6,1.3641890350548404e-8,-7.176825410055812e-4,4.2115104900122955e-6,1.3517783575060329e-8,-7.173394303115774e-4,3.9166207270580965e-6,1.3412530864261023e-8,-7.169476918402883e-4,3.7030604472824477e-6,1.3336657086835069e-8,-7.165441754546074e-4,3.5802790936875876e-6,1.3293434686648582e-8,-7.161624370313028e-4,3.540740334466443e-6,1.3280030267105057e-8,-7.158283342384227e-4,3.5648889198243974e-6,1.3289336702046267e-8,-7.155582446948228e-4,3.6259309695520506e-6,1.3311712356351884e-8,-7.153587035969551e-4,3.6936410852722728e-6,1.3336343509346127e-8,-7.152264834437153e-4,3.7373251672731826e-6,1.3352284086218272e-8,-7.151486443905965e-4,3.7285507918335262e-6,1.3349406474614047e-8,-7.151027106872547e-4,3.6443643170977546e-6,1.3319531867733131e-8,-7.150577088567976e-4,3.471371309569102e-6,1.3257885044742072e-8,-7.149771233861474e-4,3.2102934517910352e-6,1.3164734543938834e-8,-7.148246566289133e-4,2.879607352494538e-6,1.304671174381637e-8,-7.145727155168279e-4,2.5159715205526265e-6,1.2916970172838227e-8,-7.14211741474117e-4,2.1691340011926946e-6,1.2793345447593278e-8,-7.13756704294834e-4,1.8907340958244058e-6,1.2694309938959155e-8,-7.13246867286023e-4,1.7195895090076379e-6,1.263368292154631e-8,-7.127372110269032e-4,1.6687917986243744e-6,1.2616035558109819e-8,-7.122837106314069e-4,1.7200599947476228e-6,1.2634736954970411e-8,-7.11927625851379e-4,1.8279231828251246e-6,1.2673513419775649e-8,-7.116842639270483e-4,1.9322272870562014e-6,1.2710931582090524e-8,-7.115395372739504e-4,1.9745795969288553e-6,1.2726232447310445e-8,-7.114547557725002e-4,1.9136654302389338e-6,1.270474472926178e-8,-7.113777961538001e-4,1.735292690655213e-6,1.2641441637291946e-8,-7.112572859060644e-4,1.4546876493828617e-6,1.2541763992937194e-8,-7.110556761496227e-4,1.1107338000528394e-6,1.2419577806846834e-8,-7.107574398631749e-4,7.542984399074633e-7,1.2293006190122626e-8,-7.103703854584871e-4,4.3467766591549663e-7,1.2179579666103922e-8,-7.099206413352514e-4,1.8848792044254664e-7,1.209227121863942e-8,-7.094440058956009e-4,3.38112439872334e-8,1.2037433652280913e-8,-7.089770272256449e-4,-3.005946575574514e-8,1.2014751159396523e-8,-7.085502677011695e-4,-1.8942666134325098e-8,1.2018584823579895e-8,-7.081845728037587e-4,4.1504324056836106e-8,1.2039859175127503e-8,-7.078898530136206e-4,1.2085396250360532e-7,1.2067846450829226e-8,-7.07665357590904e-4,1.8796389173417595e-7,1.2091574008084617e-8,-7.075005062641622e-4,2.1404627281451953e-7,1.2100880394544461e-8,-7.073757642706145e-4,1.7527949313218791e-7,1.2087321949694448e-8,-7.072636271028598e-4,5.563556618695607e-8,1.2045175593473184e-8,-7.07130371455471e-4,-1.496666377152965e-7,1.1972682276401499e-8,-7.069396260706627e-4,-4.3038263800395507e-7,1.1873415802529695e-8,-7.06658736467273e-4,-7.585342773530107e-7,1.1757266370952408e-8,-7.062679103912365e-4,-1.0893111587869973e-6,1.164011958067034e-8,-7.057699493448573e-4,-1.3683565279279107e-6,1.1541242460665835e-8,-7.051958014848092e-4,-1.546143275736306e-6,1.1478149826314971e-8,-7.046006461074884e-4,-1.5955509000684547e-6,1.1460378253613378e-8,-7.040489785775769e-4,-1.5244730508863847e-6,1.1485082661954835e-8,-7.035938487042454e-4,-1.3758182686775965e-6,1.1537113738876136e-8,-7.032597812034259e-4,-1.2137575651664247e-6,1.1593901613711014e-8,-7.030369079407669e-4,-1.1027795845962554e-6,1.1632801609042198e-8,-7.028872532957906e-4,-1.0889580682558247e-6,1.1637630789638363e-8,-7.027584678100196e-4,-1.1897271998792792e-6,1.1602238033439061e-8,-7.025988796732991e-4,-1.3932883666335377e-6,1.1530725736851102e-8,-7.02369467900341e-4,-1.6652872066721532e-6,1.1435125811886794e-8,-7.020507465969052e-4,-1.959328698109832e-6,1.1331711320640786e-8,-7.016442939978633e-4,-2.2282184952551496e-6,1.1237034626369414e-8,-7.011697035243303e-4,-2.4335618600813347e-6,1.1164544945400339e-8,-7.006583801112918e-4,-2.5521150452073807e-6,1.1122365961218336e-8,-7.001460060304543e-4,-2.5781375982917395e-6,1.1112496075816941e-8,-6.996655112290227e-4,-2.5220161431554106e-6,1.1131319063948755e-8,-6.992418776281199e-4,-2.4062965783673872e-6,1.1171004748331547e-8,-6.988893060139256e-4,-2.260591788360715e-6,1.1221277939326513e-8,-6.986105278643894e-4,-2.1166353920163535e-6,1.1271116834225942e-8,-6.983975667488254e-4,-2.0042272969958953e-6,1.1310137596645092e-8,-6.982331775114807e-4,-1.948167868728002e-6,1.1329646935505253e-8,-6.980924984224593e-4,-1.9658036073505293e-6,1.1323502940205919e-8,-6.979449169280985e-4,-2.064692866216944e-6,1.128895545665963e-8,-6.977566158534427e-4,-2.240091878769088e-6,1.1227562045779688e-8,-6.974946560896657e-4,-2.4725062008836e-6,1.1146078731656455e-8,-6.971334322778307e-4,-2.7265579611108132e-6,1.1056870056968845e-8,-6.966634001809645e-4,-2.9535495920723803e-6,1.0976992639682918e-8,-6.960998225694706e-4,-3.1003923112501523e-6,1.0925024976391107e-8,-6.954864809875409e-4,-3.125514095301827e-6,1.0915470365326537e-8,-6.94888405730523e-4,-3.0171655312078273e-6,1.0952385872816837e-8,-6.943721615170897e-4,-2.8040956720319907e-6,1.1025740558355747e-8,-6.939812476892919e-4,-2.5493950355256136e-6,1.111363121856989e-8,-6.937199582600355e-4,-2.328052856844355e-6,1.119007794880418e-8,-6.935545525919977e-4,-2.199995786806156e-6,1.123431816683279e-8,-6.93429179173718e-4,-2.1924546956316556e-6,1.1236874298485071e-8,-6.932862200777068e-4,-2.2974342328778687e-6,1.1200440938200634e-8,-6.930818299262455e-4,-2.4806963116481874e-6,1.1136809772812793e-8,-6.927932877982263e-4,-2.69515791678022e-6,1.1062250907052743e-8,-6.924193527516066e-4,-2.8932872464684024e-6,1.0993214408490107e-8,-6.919763333906085e-4,-3.036081365862266e-6,1.0943205101581768e-8,-6.91492215226939e-4,-3.098326934476717e-6,1.0920952638432522e-8,-6.910002904512773e-4,-3.070683044984637e-6,1.0929697707612377e-8,-6.905331356871504e-4,-2.959140124946023e-6,1.0967394783237994e-8,-6.90117596465121e-4,-2.7823877442401985e-6,1.1027633804261848e-8,-6.897712626577218e-4,-2.567793687719598e-6,1.1101026790081565e-8,-6.895006358475275e-4,-2.3467550008997916e-6,1.1176795508382824e-8,-6.89300944615274e-4,-2.150115599113473e-6,1.1244329229978124e-8,-6.891573100006782e-4,-2.00424231133623e-6,1.1294520632905088e-8,-6.890467540316551e-4,-1.9280356409594636e-6,1.1320793607430406e-8,-6.889406381638624e-4,-1.930734024848246e-6,1.1319874885504703e-8,-6.888074504279619e-4,-2.0102414136189414e-6,1.1292397488351405e-8,-6.886161724085662e-4,-2.1518695593095066e-6,1.1243363432643985e-8,-6.883407101463712e-4,-2.327739840236361e-6,1.1182368829498123e-8,-6.879658514959947e-4,-2.497813089077346e-6,1.1123245267791766e-8,-6.874944007746656e-4,-2.6143891697839814e-6,1.108247815801189e-8,-6.869533275424424e-4,-2.6320148015926607e-6,1.1075749525894508e-8,-6.863944546199724e-4,-2.522826202578732e-6,1.1112635168862053e-8,-6.858844538666012e-4,-2.2926275030821306e-6,1.1191109583836215e-8,-6.854832279089802e-4,-1.9877298379677976e-6,1.1295269233710088e-8,-6.852191743942243e-4,-1.6834486218362717e-6,1.1399318636952878e-8,-6.850762207670568e-4,-1.4561494259965552e-6,1.1477115718733162e-8,-6.850017506227822e-4,-1.353885669014518e-6,1.1512169978020316e-8,-6.849299395502611e-4,-1.382232489232581e-6,1.1502489363880025e-8,-6.848057305429362e-4,-1.5099055715152289e-6,1.1458706325152704e-8,-6.845983153559325e-4,-1.6859188037799119e-6,1.1398245647313847e-8,-6.843027428170722e-4,-1.8571846721204412e-6,1.1339299333489303e-8,-6.839342878524915e-4,-1.9804742909492373e-6,1.1296704524613013e-8,-6.83520537940993e-4,-2.0280142608472192e-6,1.1280001238857747e-8,-6.830941226507634e-4,-1.9884992920636643e-6,1.1293074773063915e-8,-6.826870433621648e-4,-1.8656132505174621e-6,1.13346680053564e-8,-6.823264387413217e-4,-1.6753696630438363e-6,1.1399305110651174e-8,-6.82031487121087e-4,-1.4427423697938251e-6,1.1478456664893744e-8,-6.818114056550049e-4,-1.1978017957364357e-6,1.1561864398442774e-8,-6.816645845240956e-4,-9.716026242010502e-7,1.1638940368353777e-8,-6.81578901101889e-4,-7.920793248862827e-7,1.1700156773758746e-8,-6.815332503350359e-4,-6.803319074311323e-7,1.173830361103633e-8,-6.815001275355418e-4,-6.477490111422285e-7,1.1749467706559448e-8,-6.814489184104265e-4,-6.941843501332436e-7,1.1733661035226025e-8,-6.813496403718091e-4,-8.071935459534741e-7,1.1695093476635976e-8,-6.81177053403738e-4,-9.623862476189849e-7,1.164206416834527e-8,-6.809151476327394e-4,-1.1251098518570805e-6,1.158639073471916e-8,-6.80561933977751e-4,-1.254012468855875e-6,1.154218474453644e-8,-6.801338767888566e-4,-1.307464024167702e-6,1.1523643336190613e-8,-6.79668066854345e-4,-1.2535982747354408e-6,1.1541612761355467e-8,-6.792188902309273e-4,-1.0830088825351644e-6,1.1599275967291585e-8,-6.78845970446115e-4,-8.196398734036575e-7,1.1688487599342648e-8,-6.785938804680131e-4,-5.21865523976247e-7,1.1789443842818592e-8,-6.784716853381285e-4,-2.670917135713526e-7,1.1875898145539714e-8,-6.784454801674145e-4,-1.229862560247459e-7,1.1924869708763637e-8,-6.78451422731065e-4,-1.2039502744957288e-7,1.1925808501975738e-8,-6.784224136183189e-4,-2.4413852327126643e-7,1.188376744728601e-8,-6.783122474568518e-4,-4.450160638167141e-7,1.1815400961230667e-8,-6.781056774875232e-4,-6.622121589485789e-7,1.1741382274874111e-8,-6.778146379208505e-4,-8.426921141446391e-7,1.1679787181502826e-8,-6.774678679897052e-4,-9.513665380458594e-7,1.1642596348323024e-8,-6.771004646386013e-4,-9.730261227384026e-7,1.163500954750871e-8,-6.767463032638174e-4,-9.096388229470013e-7,1.165635793010542e-8,-6.764335621130428e-4,-7.761178639860844e-7,1.170155308564171e-8,-6.761823408651586e-4,-5.962181208590508e-7,1.1762500661860506e-8,-6.76003339470729e-4,-3.9886548663780184e-7,1.1829366116277767e-8,-6.758971746004418e-4,-2.1465214616865e-7,1.189177429067364e-8,-6.75854349008327e-4,-7.229850977163453e-8,1.1940006997847552e-8,-6.758560464209218e-4,4.947983413017979e-9,1.1966210837941946e-8,-6.75876029123182e-4,2.7488136745964224e-9,1.196554475242547e-8,-6.758837935815457e-4,-8.161918553295126e-8,1.1937085753012027e-8,-6.758487615666738e-4,-2.3790708629766936e-7,1.1884286585775744e-8,-6.757450114730958e-4,-4.432901815565406e-7,1.1814847546413683e-8,-6.75555981832124e-4,-6.647221873892998e-7,1.1739927591423942e-8,-6.752785440219556e-4,-8.632714013106472e-7,1.1672680443195546e-8,-6.749257989924772e-4,-1.0003070529774613e-6,1.1626159710092367e-8,-6.745277736728225e-4,-1.04533785405786e-6,1.1610666373841045e-8,-6.74128768082691e-4,-9.849061499935828e-7,1.1630749295767326e-8,-6.737798662443241e-4,-8.306924641557072e-7,1.1682486866486084e-8,-6.735259935027122e-4,-6.231378273326227e-7,1.1752281613645974e-8,-6.733897881249691e-4,-4.257941722485988e-7,1.1818755484053001e-8,-6.733589931298577e-4,-3.0779861157673254e-7,1.185861347121806e-8,-6.733862647382449e-4,-3.189045445843042e-7,1.1855019353474524e-8,-6.734052719418553e-4,-4.6933352922082787e-7,1.1804407956455615e-8,-6.73356095178138e-4,-7.26669545411652e-7,1.1717608951207223e-8,-6.732058920007578e-4,-1.03135768079192e-6,1.1614681309859787e-8,-6.729549688437168e-4,-1.3203085634674708e-6,1.1516948301661333e-8,-6.726292231984343e-4,-1.5456410863813466e-6,1.1440629950089799e-8,-6.722669138054278e-4,-1.6825813512472906e-6,1.1394139323916218e-8,-6.719069745690607e-4,-1.728292691642922e-6,1.1378462534167964e-8,-6.715817867987357e-4,-1.6963310651301452e-6,1.1389032635968985e-8,-6.713140269531039e-4,-1.6104898771342205e-6,1.1417818254359392e-8,-6.711159576172181e-4,-1.4997911391117643e-6,1.1455027849828653e-8,-6.7098967808978e-4,-1.3947627025395655e-6,1.1490377166722129e-8,-6.709276170943395e-4,-1.3244157649111584e-6,1.1514110299334853e-8,-6.709132260466664e-4,-1.3133527174552276e-6,1.1517964713543777e-8,-6.709221924822578e-4,-1.3787160274900425e-6,1.1496180968261428e-8,-6.709246793383498e-4,-1.5271024239717297e-6,1.144652479963841e-8,-6.708890101922466e-4,-1.7521057789037506e-6,1.1371108056069637e-8,-6.707867329827515e-4,-2.03349427394575e-6,1.1276673671676083e-8,-6.705983390374779e-4,-2.3389296906621046e-6,1.1174033427878806e-8,-6.703183942720542e-4,-2.6286525837106187e-6,1.1076507144233978e-8,-6.699586275639561e-4,-2.862764821608109e-6,1.0997482902064068e-8,-6.695477636789244e-4,-3.009877260332382e-6,1.0947514998244096e-8,-6.691275106414471e-4,-3.0553669347500317e-6,1.093155672567259e-8,-6.687448110835039e-4,-3.0073333148598256e-6,1.0946969098039167e-8,-6.684411914721439e-4,-2.8982694801256994e-6,1.09829603567278e-8,-6.682410506419115e-4,-2.7805932569171573e-6,1.1022061743662119e-8,-6.681420923177971e-4,-2.7151112480580224e-6,1.1043947687668447e-8,-6.681122430425281e-4,-2.7538322953627776e-6,1.103115103055556e-8,-6.680967532338296e-4,-2.922229780866871e-6,1.0975005824736362e-8,-6.680351768836946e-4,-3.208938989025025e-6,1.0879155445024393e-8,-6.678818198079746e-4,-3.569206800689314e-6,1.07584697087957e-8,-6.676199799142348e-4,-3.941264216912157e-6,1.0633592515886972e-8,-6.672637124200508e-4,-4.26723863883779e-6,1.0523919613312888e-8,-6.668484745365341e-4,-4.508722102625259e-6,1.0442353880863865e-8,-6.664173881818245e-4,-4.652194081672177e-6,1.0393476953270497e-8,-6.660096559372878e-4,-4.705856726945458e-6,1.0374609216835914e-8,-6.6565400917304e-4,-4.692450116383464e-6,1.0378215067070535e-8,-6.65366691378365e-4,-4.641992506869934e-6,1.0394325668100645e-8,-6.651520724436302e-4,-4.586289293999795e-6,1.0412367136578511e-8,-6.650041770194664e-4,-4.555288303349263e-6,1.0422370733593156e-8,-6.649082145975189e-4,-4.574557922642622e-6,1.0415807035090087e-8,-6.648419516531094e-4,-4.663098319825658e-6,1.0386306849815094e-8,-6.647772977923628e-4,-4.830967209773467e-6,1.0330446811403125e-8,-6.64682793482468e-4,-5.0767082913095886e-6,1.0248610310513204e-8,-6.645276535009935e-4,-5.385272368662441e-6,1.014569716509483e-8,-6.642874935506787e-4,-5.727739295789978e-6,1.0031241672519338e-8,-6.639508926581502e-4,-6.064303841982294e-6,9.918438764338643e-9,-6.635248175263377e-4,-6.351327713612035e-6,9.821803180388749e-9,-6.630363208422775e-4,-6.551644593751551e-6,9.753736842483382e-9,-6.625286011154107e-4,-6.6453412099685115e-6,9.720943269391243e-9,-6.620515220562129e-4,-6.637210765563028e-6,9.721958663164957e-9,-6.616490030515382e-4,-6.557815458928014e-6,9.746799934408593e-9,-6.613470434299081e-4,-6.457206611119339e-6,9.779019488102298e-9,-6.611460182660693e-4,-6.3927400851426745e-6,9.799687434697574e-9,-6.610196289517972e-4,-6.414181155194645e-6,9.79227361540468e-9,-6.609211623926225e-4,-6.550090663171576e-6,9.747151909141079e-9,-6.607958578615187e-4,-6.799453044112043e-6,9.664428684028409e-9,-6.605961968829965e-4,-7.131600161094896e-6,9.554052462247139e-9,-6.602952658559864e-4,-7.495192731900008e-6,9.432897717263338e-9,-6.59893337291204e-4,-7.833471097170003e-6,9.319721647992294e-9,-6.594154199307799e-4,-8.10003951822256e-6,9.229912967892944e-9,-6.589015974741606e-4,-8.26940720505979e-6,9.171982193286219e-9,-6.583948475325114e-4,-8.339570999084169e-6,9.146702941363071e-9,-6.579310057521284e-4,-8.32782653290947e-6,9.1484953460235e-9,-6.575332522116057e-4,-8.26326332931551e-6,9.167892353553748e-9,-6.572109057110091e-4,-8.179301464685762e-6,9.193979644439203e-9,-6.569608894446945e-4,-8.108097437895046e-6,9.21621770862212e-9,-6.56770170806039e-4,-8.077049399664383e-6,9.225578151807406e-9,-6.566181353193237e-4,-8.106736580969876e-6,9.2152178288862e-9,-6.56478602741209e-4,-8.209430423295186e-6,9.18097422655523e-9,-6.563217982510564e-4,-8.387533414582957e-6,9.121895607077113e-9,-6.561169927829369e-4,-8.631800308226666e-6,9.04085550962115e-9,-6.558365936151278e-4,-8.91992576094595e-6,8.945052981019506e-9,-6.55462020900297e-4,-9.216878126763627e-6,8.845932484547084e-9,-6.549905970801155e-4,-9.47883318251498e-6,8.757896962005024e-9,-6.544410174747893e-4,-9.66200422791736e-6,8.695387849400742e-9,-6.538536905887626e-4,-9.73541782277881e-6,8.668667779698704e-9,-6.532830284212719e-4,-9.693338183562016e-6,8.679746644976681e-9,-6.527824423394355e-4,-9.561069012846983e-6,8.72050444633388e-9,-6.523874598641779e-4,-9.389804754378765e-6,8.77438033627454e-9,-6.521043283306284e-4,-9.24162630277522e-6,8.821227300503736e-9,-6.519088365606864e-4,-9.170835057503315e-6,8.843328210896267e-9,-6.517549256998489e-4,-9.20896440435165e-6,8.83024338053133e-9,-6.515887679402991e-4,-9.35797527614904e-6,8.781065819974303e-9,-6.513631828401716e-4,-9.592194273994584e-6,8.703882366870197e-9,-6.510485784423071e-4,-9.866901365965093e-6,8.613066195460134e-9,-6.506383852720353e-4,-1.0130449155765347e-5,8.525370284901691e-9,-6.501484713535216e-4,-1.0336665778532513e-5,8.455876704000505e-9,-6.496113485493177e-4,-1.0454609877589606e-5,8.414782975243667e-9,-6.490671674646127e-4,-1.0473577830441985e-5,8.405737418544261e-9,-6.485542315122563e-4,-1.0402716045749107e-5,8.42594207718587e-9,-6.48101570190052e-4,-1.0266290315339773e-5,8.467673384414735e-9,-6.477249772667448e-4,-1.0096801161149698e-5,8.520499798179897e-9,-6.474264817325805e-4,-9.928189624151298e-6,8.573469231980985e-9,-6.471962142913522e-4,-9.790591753984345e-6,8.616798727509629e-9,-6.470153398393853e-4,-9.707072173579713e-6,8.642931881769316e-9,-6.4685902944632e-4,-9.691946903899617e-6,8.647090904414083e-9,-6.466990567131604e-4,-9.749935634588221e-6,8.627569008879582e-9,-6.465061945891082e-4,-9.875497327061216e-6,8.585973740369635e-9,-6.462529770962636e-4,-1.005213254042066e-5,8.527489357020453e-9,-6.459175297868126e-4,-1.0252057697941712e-5,8.46101921967877e-9,-6.454888874271263e-4,-1.0437434177263124e-5,8.398808897746156e-9,-6.449732096697071e-4,-1.0564966265109888e-5,8.354946495019238e-9,-6.4439852831923e-4,-1.0595381812212404e-5,8.34225639995346e-9,-6.438138844513587e-4,-1.0507072144502154e-5,8.367854756241516e-9,-6.432790367365826e-4,-1.0308974899831868e-5,8.428993979308454e-9,-6.428454586197086e-4,-1.0044472629606271e-5,8.511840347096126e-9,-6.425364546618369e-4,-9.780404242463435e-6,8.595019151624936e-9,-6.423374992473061e-4,-9.584105091257316e-6,8.656940621566346e-9,-6.422025862017104e-4,-9.499924509528801e-6,8.683268961814048e-9,-6.420723318815535e-4,-9.536788226021915e-6,8.6709032555823e-9,-6.418937058551346e-4,-9.670339340684684e-6,8.62736165406817e-9,-6.416333150807353e-4,-9.854985606826542e-6,8.567021549391805e-9,-6.412819489618678e-4,-1.0038675384978085e-5,8.506456394204669e-9,-6.40852233208935e-4,-1.0175358821881159e-5,8.460459308358457e-9,-6.403723843214741e-4,-1.0233119886925515e-5,8.439407583253215e-9,-6.398785177155639e-4,-1.0197922583846564e-5,8.44800812947473e-9,-6.394070755339369e-4,-1.0073651943128085e-5,8.485229457435074e-9,-6.389883923031362e-4,-9.879211991447938e-6,8.545190825663756e-9,-6.386421940044092e-4,-9.643564938301254e-6,8.61872891621823e-9,-6.383754932638375e-4,-9.399866438278023e-6,8.695270282083074e-9,-6.381828126059341e-4,-9.179868626602678e-6,8.764629424150486e-9,-6.380482197594612e-4,-9.009455497870036e-6,8.818449463555083e-9,-6.379484020972791e-4,-8.905757191846968e-6,8.851137444227476e-9,-6.378559844764216e-4,-8.875794396678722e-6,8.860308373744816e-9,-6.37742611576723e-4,-8.916182840260416e-6,8.846890961194638e-9,-6.375817826161573e-4,-9.013389503892508e-6,8.815063136955268e-9,-6.373517365413405e-4,-9.144324590548281e-6,8.772088767448038e-9,-6.37038822435467e-4,-9.277480646007872e-6,8.727983133697308e-9,-6.366416476230471e-4,-9.375433709051482e-6,8.69473010267958e-9,-6.361755073060954e-4,-9.400076070259292e-6,8.68460137525384e-9,-6.356751215483993e-4,-9.321725715954837e-6,8.70721463674457e-9,-6.351921226563311e-4,-9.131431137281154e-6,8.765577089452952e-9,-6.34783668220924e-4,-8.851983055038034e-6,8.852573074499977e-9,-6.34492590110691e-4,-8.53933103808297e-6,8.950528563696693e-9,-6.343273922649219e-4,-8.26772377613986e-6,9.035920785086607e-9,-6.342551582389573e-4,-8.102013804904856e-6,9.088118007656425e-9,-6.342142013915741e-4,-8.071933386762328e-6,9.097504097485443e-9,-6.341394360266019e-4,-8.163387841999844e-6,9.06827899549311e-9,-6.339853162802021e-4,-8.329403778276332e-6,9.01508325066568e-9,-6.337359214736137e-4,-8.510810762680521e-6,8.956528860220945e-9,-6.334023030696212e-4,-8.65473815155575e-6,8.909374863487501e-9,-6.330132471509208e-4,-8.725202991217194e-6,8.885158614041552e-9,-6.326051717095914e-4,-8.706169178413972e-6,8.889176992237429e-9,-6.32214019748295e-4,-8.599843727994052e-6,8.920959050065301e-9,-6.318697327111989e-4,-8.422780448879686e-6,8.975440229886825e-9,-6.315928418750007e-4,-8.20125617049522e-6,9.044392176943476e-9,-6.313926873838825e-4,-7.966459175451952e-6,9.117945199759327e-9,-6.31267082506243e-4,-7.749777386235528e-6,9.186104282521891e-9,-6.312033160743475e-4,-7.5785372180136775e-6,9.240130028371382e-9,-6.311803126735913e-4,-7.472534294452365e-6,9.273661681811642e-9,-6.311716770969148e-4,-7.441681249593242e-6,9.283469414099118e-9,-6.311491861629334e-4,-7.484987837433047e-6,9.269772409499044e-9,-6.310862639818491e-4,-7.590780571477355e-6,9.236162458649285e-9,-6.309612058273856e-4,-7.737892241529536e-6,9.189230845951367e-9,-6.307601275839634e-4,-7.897660405035442e-6,9.137956611667645e-9,-6.304796987183105e-4,-8.036756534142556e-6,9.09284140190737e-9,-6.301296693209371e-4,-8.121168651637492e-6,9.064674114885852e-9,-6.297347052073675e-4,-8.122014010732786e-6,9.062695008476826e-9,-6.293340333682221e-4,-8.02357893613418e-6,9.092032490280441e-9,-6.289764922907992e-4,-7.832498886235678e-6,9.150771158405365e-9,-6.287088356458074e-4,-7.584313389584958e-6,9.227855564074418e-9,-6.285582300395714e-4,-7.340955663643736e-6,9.303857526237659e-9,-6.285162181702288e-4,-7.173981894358338e-6,9.35622506385365e-9,-6.28535844534191e-4,-7.137050918742098e-6,9.367918818323381e-9,-6.285482266619833e-4,-7.242236086511384e-6,9.334891322630107e-9,-6.284908233474023e-4,-7.4556587282647425e-6,9.267547066221383e-9,-6.28330425274692e-4,-7.714648020679488e-6,9.185435045716488e-9,-6.28069302206002e-4,-7.95377724697567e-6,9.109102634548203e-9,-6.277362671666278e-4,-8.124785819023314e-6,9.053825972438715e-9,-6.273721375619873e-4,-8.204270724462586e-6,9.02715680817319e-9,-6.27017398081553e-4,-8.191793049541557e-6,9.029461806338658e-9,-6.267047725449272e-4,-8.103665827061228e-6,9.055810702686439e-9,-6.26456043916988e-4,-7.966249400547607e-6,9.098033223137005e-9,-6.26281416479543e-4,-7.810389877515416e-6,9.146451274581206e-9,-6.261800463441795e-4,-7.667092566462788e-6,9.191260130576387e-9,-6.261411718711373e-4,-7.564004290537873e-6,9.223675064183579e-9,-6.261457836463466e-4,-7.522438367703082e-6,9.23690378724907e-9,-6.261689058554466e-4,-7.554911651594159e-6,9.226935824039986e-9,-6.26182575765119e-4,-7.663394769762143e-6,9.193084339014298e-9,-6.261594321595429e-4,-7.83867655737204e-6,9.138166390547462e-9,-6.26076519398364e-4,-8.061135092227624e-6,9.068247870454783e-9,-6.259188201018052e-4,-8.302926480673475e-6,8.991964522431026e-9,-6.256821123187454e-4,-8.531474630101965e-6,8.919455933728389e-9,-6.253747887567023e-4,-8.714062415411706e-6,8.860964423618094e-9,-6.250183114255093e-4,-8.823240323023451e-6,8.825167866103795e-9,-6.246458882436894e-4,-8.842823215536685e-6,8.817300503612222e-9,-6.242985755887415e-4,-8.774026346559433e-6,8.837199099376945e-9,-6.240177934968095e-4,-8.640273119230142e-6,8.87774343727035e-9,-6.238340168367981e-4,-8.487734929015043e-6,8.924628410892147e-9,-6.237537835039231e-4,-8.37786762163323e-6,8.958649435262117e-9,-6.237508622334895e-4,-8.370050553809897e-6,8.961109428361436e-9,-6.237694285501078e-4,-8.498608243715725e-6,8.921029687418638e-9,-6.237425116459058e-4,-8.75592709653261e-6,8.840509552635665e-9,-6.236182223750581e-4,-9.0935440897417e-6,8.734482255018053e-9,-6.233789176946422e-4,-9.44210315649724e-6,8.62453087546554e-9,-6.230431618178639e-4,-9.738006393072087e-6,8.530559779025655e-9,-6.226528415322329e-4,-9.942072412796151e-6,8.464944949980187e-9,-6.222558156538971e-4,-1.0044216892862036e-5,8.431044644216811e-9,-6.218928123420268e-4,-1.0057759649626142e-5,8.424931676993069e-9,-6.215911924046659e-4,-1.0010051523072495e-5,8.438260126232764e-9,-6.213639804945358e-4,-9.934048776771606e-6,8.460847692598394e-9,-6.212115296909202e-4,-9.862436775050359e-6,8.482499035264433e-9,-6.211238864357817e-4,-9.823973462843352e-6,8.494171700339035e-9,-6.210830596535341e-4,-9.841115150435778e-6,8.488757155704299e-9,-6.210651942122257e-4,-9.928215073960674e-6,8.461672312188594e-9,-6.210429443543682e-4,-1.0090001829574346e-5,8.411340895070526e-9,-6.209883936927952e-4,-1.032045635967511e-5,8.339532086435201e-9,-6.208766895726924e-4,-1.0602611237518307e-5,8.251410557946112e-9,-6.206901011511374e-4,-1.0909904384581257e-5,8.155117882712867e-9,-6.204217801816662e-4,-1.1209428967393452e-5,8.060785794006027e-9,-6.200783346355796e-4,-1.1467000570356854e-5,7.978999665257574e-9,-6.196803527606607e-4,-1.1653487857353938e-5,7.918867885019981e-9,-6.192602675084233e-4,-1.1751341629004252e-5,7.886009589301413e-9,-6.18857430993645e-4,-1.1760013081941588e-5,7.880853644284182e-9,-6.185107199373036e-4,-1.1698990162283051e-5,7.897639687734814e-9,-6.182494033759342e-4,-1.1607106693188978e-5,7.924550386176266e-9,-6.180837782626559e-4,-1.1536704553317361e-5,7.945441153139379e-9,-6.17998354061986e-4,-1.1541930108901036e-5,7.943422534415343e-9,-6.179514865732182e-4,-1.1662608663681637e-5,7.905878369024749e-9,-6.178847530264709e-4,-1.1908666705688085e-5,7.829382187794986e-9,-6.177413716940561e-4,-1.225291771545529e-5,7.722050838337925e-9,-6.174866683392963e-4,-1.2638281908291842e-5,7.601388082277714e-9,-6.171202061499132e-4,-1.2997807711744528e-5,7.488094639614473e-9,-6.166733164451345e-4,-1.3277552122048224e-5,7.398956214429256e-9,-6.161948260617495e-4,-1.3451111439177265e-5,7.342324255674225e-9,-6.157338992816079e-4,-1.3521276834735159e-5,7.317585667968248e-9,-6.153277910312762e-4,-1.351221220619276e-5,7.3175400954822244e-9,-6.149969832299286e-4,-1.345864223227892e-5,7.331678474457581e-9,-6.147459001310118e-4,-1.3396792379450818e-5,7.3489284361196675e-9,-6.14566195981989e-4,-1.335865891362545e-5,7.3594093806847335e-9,-6.144404163975216e-4,-1.3369061432935648e-5,7.3553652588823905e-9,-6.143451013492217e-4,-1.3444276092296466e-5,7.331624223806665e-9,-6.142533201726146e-4,-1.3591271145411236e-5,7.285864502738724e-9,-6.141370824533147e-4,-1.3807054893883965e-5,7.2188286363125555e-9,-6.139701752177742e-4,-1.4078197634895255e-5,7.134475176715785e-9,-6.137317622253945e-4,-1.4381127354302392e-5,7.03989660873347e-9,-6.13410548401449e-4,-1.4684067691371548e-5,6.944744457685035e-9,-6.130086364730966e-4,-1.4951295234998012e-5,6.8599511266353936e-9,-6.125436581487522e-4,-1.5149749237378634e-5,6.795727421966501e-9,-6.120476639627279e-4,-1.5256983677622905e-5,6.759136642679807e-9,-6.115619176413706e-4,-1.5268340231572266e-5,6.751886205597447e-9,-6.111281095430912e-4,-1.520077746265615e-5,6.769114447606619e-9,-6.107779587857513e-4,-1.5091461683002552e-5,6.799746818271109e-9,-6.10524015294988e-4,-1.4990666324170982e-5,6.828571027830531e-9,-6.103544553284269e-4,-1.4950126437351983e-5,6.839718154874809e-9,-6.10233932630094e-4,-1.5009403395997819e-5,6.820816675408024e-9,-6.101112797303565e-4,-1.5183860384006196e-5,6.7667449207401965e-9,-6.099330136988942e-4,-1.5458296216177136e-5,6.6817180549403645e-9,-6.096591780398321e-4,-1.5789545255279567e-5,6.578625916310926e-9,-6.092759401267423e-4,-1.611861496564348e-5,6.475384794437283e-9,-6.087995316766636e-4,-1.638857118742033e-5,6.389456320634693e-9,-6.082696917744599e-4,-1.656102986792536e-5,6.332762451172584e-9,-6.07735931357823e-4,-1.6624724248411486e-5,6.309028251969762e-9,-6.07243028636269e-4,-1.659408062376702e-5,6.314176973263146e-9,-6.068212130456064e-4,-1.6500688633924005e-5,6.3388763395423195e-9,-6.064828882107512e-4,-1.6382732655089433e-5,6.3716957047222936e-9,-6.062244250029457e-4,-1.6276375396916556e-5,6.401688363734559e-9,-6.060303124501623e-4,-1.6210566121514825e-5,6.41997117246288e-9,-6.058775295989655e-4,-1.6204774019256874e-5,6.420448907864246e-9,-6.057391575612956e-4,-1.6268443228459086e-5,6.400024095330046e-9,-6.055871563899351e-4,-1.640110876257458e-5,6.358597590462493e-9,-6.053947651586242e-4,-1.6592563064539658e-5,6.299040120511544e-9,-6.051391799853258e-4,-1.6823062293831563e-5,6.2271479239230684e-9,-6.04804958969757e-4,-1.7064185629920318e-5,6.15140407656365e-9,-6.043880305658054e-4,-1.7281339145854306e-5,6.082244629251485e-9,-6.038993664978827e-4,-1.743882255386278e-5,6.03054138334135e-9,-6.033664982363028e-4,-1.7507647128342022e-5,6.005236775662678e-9,-6.028306776843586e-4,-1.747471621344875e-5,6.0105545030052955e-9,-6.02338498179153e-4,-1.7350074414647643e-5,6.043785475000533e-9,-6.019293636463869e-4,-1.7168208077473955e-5,6.094852354472843e-9,-6.016229799273229e-4,-1.6981102965108023e-5,6.148328418570691e-9,-6.014120043088848e-4,-1.6844415703121967e-5,6.1875079574704055e-9,-6.012631542790681e-4,-1.6801491798937394e-5,6.199152357907398e-9,-6.011264926259588e-4,-1.687094638850435e-5,6.177250027198649e-9,-6.009494858060641e-4,-1.7041783355707502e-5,6.124605564008008e-9,-6.006912495843881e-4,-1.7277030403387907e-5,6.051910031149934e-9,-6.003329547922971e-4,-1.7524265175610315e-5,5.974701125327572e-9,-5.998817609412311e-4,-1.7729749635034893e-5,5.909152133979997e-9,-5.993674834698096e-4,-1.7852060415235455e-5,5.8679359897686786e-9,-5.98833377167506e-4,-1.7871308208750187e-5,5.857377281089162e-9,-5.983242961249349e-4,-1.7791603804934904e-5,5.876628602108236e-9,-5.978761089750183e-4,-1.763692721889734e-5,5.9188348328191164e-9,-5.97509246371083e-4,-1.744281060909608e-5,5.973566370425565e-9,-5.972272340443155e-4,-1.724717783696112e-5,6.029530158965291e-9,-5.970191412732754e-4,-1.708303930127975e-5,6.076760853223087e-9,-5.968639601907031e-4,-1.6974182393121108e-5,6.107949062772968e-9,-5.967351618909186e-4,-1.6933562355692315e-5,6.1189757620988596e-9,-5.966044914543551e-4,-1.6963408114122988e-5,6.108924653343465e-9,-5.964448552706594e-4,-1.7056054741231575e-5,6.079858424794432e-9,-5.962326779452772e-4,-1.719488339402509e-5,6.036551327657856e-9,-5.959503269411983e-4,-1.7355296242159556e-5,5.9862122504836265e-9,-5.955890709894159e-4,-1.7506243438176608e-5,5.9380510048463094e-9,-5.951525234145372e-4,-1.7613258416163484e-5,5.902393637339857e-9,-5.946596553230791e-4,-1.764400034962936e-5,5.889033529766786e-9,-5.941454005656148e-4,-1.757658081028564e-5,5.9047300999132285e-9,-5.936562505153676e-4,-1.740909145309199e-5,5.9503386560754e-9,-5.932393300043767e-4,-1.7166185049999746e-5,6.018820818675055e-9,-5.929270253618056e-4,-1.6897363809678338e-5,6.095715953083003e-9,-5.927235829331455e-4,-1.6664334583585255e-5,6.162832492505709e-9,-5.926012168281408e-4,-1.6521086061127168e-5,6.204080876826821e-9,-5.925088318791681e-4,-1.6495650783895652e-5,6.2108462578212325e-9,-5.923893296595289e-4,-1.6581983910685432e-5,6.18445634623603e-9,-5.921973240230338e-4,-1.6744373968298434e-5,6.135018198325406e-9,-5.919105305805832e-4,-1.6930486544110382e-5,6.077709827522491e-9,-5.915325837551485e-4,-1.708674963487434e-5,6.028320742756395e-9,-5.910887401414671e-4,-1.7171114333858196e-5,5.999481940305171e-9,-5.906173977802621e-4,-1.7160751663905477e-5,5.998318193545036e-9,-5.901602907269286e-4,-1.7054266849847147e-5,6.025679671747184e-9,-5.897536026274595e-4,-1.6869186278252847e-5,6.076768658723353e-9,-5.894215706944987e-4,-1.6636088071657184e-5,6.142787676934763e-9,-5.891734417193177e-4,-1.639112845867565e-5,6.21311247089221e-9,-5.890037891503861e-4,-1.616881901687457e-5,6.277444531418832e-9,-5.888953870874903e-4,-1.599649526801642e-5,6.32750261058349e-9,-5.888234156540204e-4,-1.5891120266408232e-5,6.358035497480615e-9,-5.887598278097893e-4,-1.585830828911002e-5,6.36716114540014e-9,-5.886770911880141e-4,-1.5892951435849457e-5,6.356201350362242e-9,-5.88551067772663e-4,-1.598065881617845e-5,6.329251478975357e-9,-5.883632730491481e-4,-1.609944079656462e-5,6.292675486505938e-9,-5.881029486085081e-4,-1.622153632414498e-5,6.254574948934901e-9,-5.877692932525501e-4,-1.6315735016464423e-5,6.224131558643309e-9,-5.873738337045345e-4,-1.6350916709415508e-5,6.2105932820424296e-9,-5.869421485315761e-4,-1.630165097021894e-5,6.221632150191717e-9,-5.865131121598357e-4,-1.6156063475258574e-5,6.261002414793579e-9,-5.861331744440621e-4,-1.592434760802166e-5,6.325989749491587e-9,-5.858441940187316e-4,-1.5643598634390996e-5,6.405942312898085e-9,-5.856671951075539e-4,-1.5373106219251778e-5,6.483607719282582e-9,-5.855897763285556e-4,-1.517729276675414e-5,6.540086767802591e-9,-5.855664407766135e-4,-1.5101743305100796e-5,6.561819413722951e-9,-5.855345304499817e-4,-1.5154956209859986e-5,6.545946710766161e-9,-5.854378007236991e-4,-1.5306366023333386e-5,6.500984799091855e-9,-5.852448952227367e-4,-1.550045098503084e-5,6.442830961710452e-9,-5.849551516575722e-4,-1.567734639813534e-5,6.388848412759949e-9,-5.845930082893017e-4,-1.5789777542943528e-5,6.352965558410412e-9,-5.841969678310368e-4,-1.5811729052473348e-5,6.343113417189745e-9,-5.838084552194186e-4,-1.5739511632880423e-5,6.360814546463471e-9,-5.834633032295308e-4,-1.5588003820527e-5,6.402145833924053e-9,-5.831864760835484e-4,-1.538472081382847e-5,6.4593502606737386e-9,-5.829896181558738e-4,-1.5163375096637597e-5,6.5226561160815544e-9,-5.828708999533577e-4,-1.4957769589611858e-5,6.582074977801076e-9,-5.828167555766546e-4,-1.479662672105976e-5,6.628984531476504e-9,-5.828049993600993e-4,-1.46998740108272e-5,6.657304486326205e-9,-5.828086784632086e-4,-1.4676619073704028e-5,6.664156600488167e-9,-5.828000486403008e-4,-1.472477456925716e-5,6.649997471487258e-9,-5.827541399829672e-4,-1.4832100153552331e-5,6.618295601842242e-9,-5.826515746817173e-4,-1.4978198357449995e-5,6.574915976578972e-9,-5.824806499688132e-4,-1.5136975222470618e-5,6.5273858129103555e-9,-0.00058223891266244855,-1.5279382997478107e-5,6.484113573877451e-9,-5.819343932522649e-4,-1.537659130322262e-5,6.453510098108357e-9,-5.815864337643335e-4,-1.540395190071223e-5,6.442875322162274e-9,-5.812255138914551e-4,-1.5346207013270155e-5,6.456887019322757e-9,-5.808906783087563e-4,-1.5203879326331496e-5,6.495696015125998e-9,-5.806227398257667e-4,-1.4999252917115385e-5,6.553106536171523e-9,-5.804523980144355e-4,-1.4778150938693694E-05,6.6159779015583296e-9,-5.803857787226134e-4,-1.460244790593015e-5,6.666344613112382e-9,-5.803949019080188e-4,-1.453107430828226e-5,6.68691651811743e-9,-5.804222577193308e-4,-1.4595598468279076e-5,6.6681996557004115e-9,-5.804015691477434e-4,-1.4784365571006996e-5,6.613182223466211e-9,-5.802844416075218e-4,-1.504659664064087e-5,6.536251455252701e-9,-5.800572407115345e-4,-1.5314205201811868e-5,6.456956105272316e-9,-5.79740462121484e-4,-1.5527257460748158e-5,6.392682319350163e-9,-5.793754455308698e-4,-1.564997575685766e-5,6.354031421288331e-9,-5.79008526869674e-4,-1.5673984575231003E-05,6.3438332685434564e-9,-5.786793595545836e-4,-1.561305703577987e-5,6.358555023821292e-9,-5.78414926698478e-4,-1.5494822966848187e-5,6.390561211013941e-9,-5.782279782895778e-4,-1.535291284406682e-5,6.430282529202295e-9,-5.781179986625985e-4,-1.5220866757312826e-5,6.467953037038186e-9,-5.780733038593612e-4,-1.5127728821522725e-5,6.494942808591026e-9,-5.780737214613339e-4,-1.5094878202343984e-5,6.5047765753731806e-9,-5.780937304323509e-4,-1.5133945325895573e-5,6.493829724860568e-9,-5.781059012122124e-4,-1.5245845768728994e-5,6.461654192249107e-9,-5.780844231366714e-4,-1.5420967008494582E-05,6.410916404303534e-9,-5.780084375089962e-4,-1.5640566187065733e-5,6.346952753693187e-9,-5.778647777628711e-4,-1.5879285361295647e-5,6.277008199105833e-9,-5.776498175490725e-4,-1.6108436934896513e-5,6.209288793870668e-9,-5.773703656839252e-4,-1.6299721111280603e-5,6.151931069035016e-9,-5.770436111533959e-4,-1.6429208290678547e-5,6.111913238799296e-9,-5.766960225533119e-4,-1.6481506020845262e-5,6.093889659946264e-9,-5.763608734161528e-4,-1.6454038016908552e-5,6.098936037071565e-9,-5.760736744361726e-4,-1.6361021724264736e-5,6.123317511020036e-9,-5.758647102549619e-4,-1.6235696451862072e-5,6.157725998483951e-9,-5.757488547335339e-4,-1.612803540234014e-5,6.1878352067051535e-9,-5.757153315080947e-4,-1.609480237938911e-5,6.197125012537102e-9,-5.757234435926061e-4,-1.6181340271018654e-5,6.17217305833007e-9,-5.757111211388329e-4,-1.6400971995423106e-5,6.108703432860775e-9,-5.756170143529824e-4,-1.6724228696811727e-5,6.014819069588441e-9,-5.754058752564376e-4,-1.7087730422599016e-5,5.908527015219574e-9,-5.750819117894468e-4,-1.7419566737748216e-5,5.810457691770534e-9,-5.746829127406637e-4,-1.7665934924859706e-5,5.736209930949652e-9,-5.742617293776332e-4,-1.7804887133825812e-5,5.692403621165638e-9,-5.738676244788915e-4,-1.7844643668928444e-5,5.677123312045796e-9,-5.735352118200017e-4,-1.781324586487339e-5,5.682774688163753e-9,-5.732813705044003e-4,-1.774712544477777e-5,5.699224028512855e-9,-5.731070706253558e-4,-1.7682465513048927e-5,5.716183635261324e-9,-5.730010810481334e-4,-1.7650014543434743e-5,5.7246996299768535e-9,-5.729437243720952e-4,-1.7672436560521165e-5,5.717992329661441e-9,-5.729101327422091e-4,-1.77629912703616e-5,5.691943387538161e-9,-5.728732254490138e-4,-1.7924881686606425e-5,5.645364913125561e-9,-5.728066872098459e-4,-1.8151183111504288e-5,5.580046983978404e-9,-5.726880446715707e-4,-1.8425518479711568e-5,5.500544376149344e-9,-5.725017360320156e-4,-1.8723776519021976e-5,5.4136497171616706e-9,-5.722417478110209e-4,-1.901709758465021e-5,5.327525281669176e-9,-5.719132058612187e-4,-1.9275973453983113e-5,5.250556794951275e-9,-5.715324599224961e-4,-1.9474966424702655e-5,5.190061549896955e-9,-5.711254487065863e-4,-1.9597425970417595e-5,5.150993130292952e-9,-5.707243215314012e-4,-1.963951786184574e-5,5.134796911166756e-9,-5.703624645452386e-4,-1.961289496480425e-5,5.138582384870229e-9,-5.700681701023597e-4,-1.9545349551733103e-5,5.154808129149603e-9,-5.698573617980196e-4,-1.947850234148492e-5,5.171796776237571e-9,-5.697265168248463e-4,-1.946126166119291e-5,5.175504776714801e-9,-5.696483046445741e-4,-1.9538307489946467e-5,5.152814866181088e-9,-5.695737447050487e-4,-1.9735023712205888e-5,5.095954657144991e-9,-5.694440581573207e-4,-2.0044122435153433e-5,5.006492424902162e-9,-5.692107976121244e-4,-2.0422259733411498e-5,4.896447185420986e-9,-5.688556702159739e-4,-2.080239735784011e-5,4.784807248298537e-9,-5.683984430252771e-4,-2.1118146298752406e-5,4.69055903235853e-9,-5.678877874524411e-4,-2.1327200844530532e-5,4.6259837892894646e-9,-5.673813072802742e-4,-2.1421699487486857e-5,4.593705379214873e-9,-5.669266461901139e-4,-2.1423333992840117e-5,4.588040913127525e-9,-5.665515251973581e-4,-2.1370168449335505e-5,4.598631280140418e-9,-5.66262954244887e-4,-2.1303510202976556e-5,4.614029495947506e-9,-5.660516519242294e-4,-2.1259150169743164e-5,4.624106881604416e-9,-5.658977760906469e-4,-2.1263246516499423e-5,4.621241923637268e-9,-5.657758344743934e-4,-2.1331262909287216e-5,4.600715978969188e-9,-5.656582879656547e-4,-2.146824690958318e-5,4.560744399958647e-9,-5.655182799852074e-4,-2.166944979816653e-5,4.502372881234427e-9,-5.653320939464026e-4,-2.19210611198664e-5,4.429288721729575e-9,-5.650817267772786e-4,-2.2201302733604196e-5,4.347494108741701e-9,-5.647576281566446e-4,-2.248238891148829e-5,4.2647329227178e-9,-5.64361175875774e-4,-2.273385814627313e-5,4.1895539317782425e-9,-5.639060211063388e-4,-2.2927360460003696e-5,4.129994037758887e-9,-5.634173669126164e-4,-2.3042324624474837e-5,4.092025805841426e-9,-5.629285951340259e-4,-2.3071330028784256e-5,4.078067292741761e-9,-5.624753358397186e-4,-2.3023652525244365e-5,4.085953126634584e-9,-5.620879235594856e-4,-2.2925599059856908e-5,4.1087412604200885e-9,-5.617838311213657e-4,-2.2816948292584702e-5,4.13556726191145e-9,-5.615618506350042e-4,-2.274366245931516e-5,4.1535543827756625e-9,-5.613996862607292e-4,-2.2747751693369897e-5,4.150602400752755e-9,-5.61256426475516e-4,-2.2855979724977274e-5,4.1186293748158945e-9,-5.61080812039059e-4,-2.307016575944345e-5,4.056477812301431e-9,-5.608247544560862e-4,-2.3362823347901296e-5,3.971353014138016e-9,-5.6045888275338e-4,-2.3681771753724775e-5,3.877666551810311e-9,-5.599840255643514e-4,-2.3964648029816697e-5,3.7929726560466655e-9,-5.594323224548366e-4,-2.4158896301923775e-5,3.732284697554104e-9,-5.588562140180068e-4,-2.4238382403495358e-5,3.7033386543166194e-9,-5.583104935056323e-4,-2.4208922097151482e-5,3.7049913841555217e-9,-5.578362118896362e-4,-2.4101634993633252e-5,3.729013562684922e-9,-5.574526700823866e-4,-2.395959922159319e-5,3.763717738012945e-9,-5.571580150477938e-4,-2.3824918225424018e-5,3.7974724057465164e-9,-5.56934945270612e-4,-2.3730431642789787e-5,3.820986693463586e-9,-5.567575402096818e-4,-2.369650431855389e-5,3.828264474037562e-9,-5.565968561839238e-4,-2.3731175634325677e-5,3.81667238499676e-9,-5.564247258473144e-4,-2.383170766272784e-5,3.786608603817477e-9,-5.562162343773809e-4,-2.3986308687498875e-5,3.741076017959136e-9,-5.559516320965893e-4,-2.41756410521933e-5,3.6852669334650524e-9,-5.556182989939095e-4,-2.4374329729557413e-5,3.626126257835752e-9,-5.552129829469255e-4,-2.455308708972398e-5,3.5717509128408136e-9,-5.547439478003086e-4,-2.4682169708976556e-5,3.5304410056635687e-9,-5.542320441001034e-4,-2.4736519034990855e-5,3.509299202176376e-9,-5.537093394875636e-4,-2.470209240070845e-5,3.5124945121858324e-9,-5.532141884717492e-4,-2.4581739735308707e-5,3.539625413001244e-9,-5.527827987017785e-4,-2.4398065123244182e-5,3.584874043486559e-9,-5.524392207026548e-4,-2.419093064879187e-5,3.6375935558350362E-09,-5.521871673866484e-4,-2.400904254983496e-5,3.6845003460724823e-9,-5.52006996859421e-4,-2.3897600320895216e-5,3.7129769442225496e-9,-5.518594417411545e-4,-2.3885806156130697e-5,3.714505319352247e-9,-5.516952472542898e-4,-2.3978206075858976e-5,3.6871706513466653e-9,-5.514680023266997e-4,-2.415252676916681e-5,3.636467576060659e-9,-5.511466570996784e-4,-2.436472997812125e-5,3.5741160763841065e-9,-5.507243054631822e-4,-2.456016575596165e-5,3.5151030037156743e-9,-5.502204943898792e-4,-2.4688078368491355e-5,3.4736716022299434e-9,-5.49675845316952e-4,-2.4715297420699776e-5,3.4594450841273604e-9,-5.491403496431156e-4,-2.4634524609268043e-5,3.475010754579904e-9,-5.486594079579832e-4,-2.4464309834586896e-5,3.5158016687115214e-9,-5.482626949453814e-4,-2.424130364105868e-5,3.572121989232335e-9,-5.479593003710058e-4,-2.400859263852101e-5,3.6322781071167195e-9,-5.477393924139225e-4,-2.380483572567349e-5,3.685543859039702e-9,-5.475800136344878e-4,-2.365734300350956e-5,3.7241138416981567e-9,-5.47451900115605e-4,-2.3579686113701558e-5,3.743864278401933e-9,-5.473251545092862e-4,-2.3572576485177517e-5,3.744220422532077e-9,-5.471730460260657e-4,-2.3626248739021626e-5,3.727569108803425e-9,-5.469742478632765e-4,-2.3723043848052887e-5,3.6985616396725427e-9,-5.467142469598954e-4,-2.3839630731377964e-5,3.6634824609621807e-9,-5.463866264206015e-4,-2.3948973655604125e-5,3.6296880385067596e-9,-5.4599456793534e-4,-2.4022629138410048e-5,3.604980769764583e-9,-5.455523444943196e-4,-2.4034135649642785e-5,3.5967054365603564e-9,-5.450858818683846e-4,-2.396401744104895e-5,3.6104037986387385e-9,-5.446308564687652e-4,-2.380610222496027e-5,3.648086038965713e-9,-5.442267710418497e-4,-2.3573376044700058e-5,3.7065940327411654e-9,-5.43906780201333e-4,-2.3300037015731352e-5,3.776970362392915e-9,-5.436858585814063e-4,-2.303631065445945e-5,3.8457757017923984e-9,-5.43552613478327e-4,-2.28353475000358e-5,3.898554409891338e-9,-5.434699258623914e-4,-2.2736277504907688e-5,3.924381501274142e-9,-5.433855832143338e-4,-2.275078970747129e-5,3.919540539705527e-9,-5.43248646299094e-4,-2.285936214945721e-5,3.888688548443496e-9,-5.430245801652687e-4,-2.3018194797770242e-5,3.8431759853901846e-9,-5.427037893107168e-4,-2.3172944399802506e-5,3.7974973736510936e-9,-5.423020260258028e-4,-2.3273629234107787e-5,3.765329016282113e-9,-5.418542195221602e-4,-2.328631805513169e-5,3.756319626683319e-9,-5.414045400541133e-4,-2.3199382210688513e-5,3.774257587440266e-9,-5.409955890221134e-4,-2.302384304625818e-5,3.8167930066406206e-9,-5.406592269132189e-4,-2.2788582348018324e-5,3.876564618794517e-9,-5.404109156371855e-4,-2.253214165155441e-5,3.943315026925249e-9,-5.402484736817223e-4,-2.2293496058127136e-5,4.00637464546443e-9,-5.401548723226671e-4,-2.210423231623976e-5,4.056855142789439e-9]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json new file mode 100644 index 0000000..f56819c --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":7000,"numberOfSamples":1000,"samples":[-5.401035826582183e-4,-2.1983771746004456e-5,4.089071108861903e-9,-5.400645679375473e-4,-2.1937995914044596e-5,4.1010390739496695e-9,-5.400093979365809e-4,-2.1960549237341188e-5,4.094200825458988e-9,-5.399147607226752e-4,-2.203560775605646e-5,4.072680770337793e-9,-5.397644338651072e-4,-2.2140989396072942e-5,4.0424039620270295e-9,-5.395502643031555e-4,-2.2250959079911428e-5,4.010291455194114e-9,-5.392727708698771e-4,-2.233868896010399e-5,3.983582390762636e-9,-5.389417235021638e-4,-2.2378792834005243e-5,3.969178139964558e-9,-5.385766058145648e-4,-2.235055698671764e-5,3.972815745495291e-9,-5.382062428829531e-4,-2.2242365349685453e-5,3.9978965146973945e-9,-5.378662132655593e-4,-2.205712418011711e-5,4.043993326717811e-9,-5.375924932704364e-4,-2.181705877637256e-5,4.105479870305896e-9,-5.374109340395555e-4,-2.1564488189815053e-5,4.171221914461289e-9,-5.373252109046606e-4,-2.13546121672999e-5,4.226432351021938e-9,-5.373095626709229e-4,-2.123923851906108e-5,4.256999417283581e-9,-5.373130817418842e-4,-2.1246850964482913e-5,4.25485673473855e-9,-5.372765380678705e-4,-2.136960735856047e-5,4.221561718856039e-9,-5.371540300970259e-4,-2.156549994879516e-5,4.167859343731849e-9,-5.36928145915775e-4,-2.177449463181616e-5,4.109507993256763e-9,-5.36612298142394e-4,-2.193926959851254e-5,4.061836554881471e-9,-5.362421974391817e-4,-2.202084762893932e-5,4.035594559950374e-9,-5.358628658080441e-4,-2.200502185841941e-5,4.035163172736923e-9,-5.355167351147426e-4,-2.1900830823744038e-5,4.058798324504693e-9,-5.35235449411885e-4,-2.173439788390032e-5,4.100071676730384e-9,-5.350357193602122e-4,-2.15410881740401e-5,4.14980207032798e-9,-5.349185757880749e-4,-2.135782693181579e-5,4.198050291539687e-9,-5.348712290073628e-4,-2.121657442592248e-5,4.2359280087428855e-9,-5.348708000481933e-4,-2.1139615342117445e-5,4.257004944159546e-9,-5.348890826615417e-4,-2.113709309176623e-5,4.258128208977309e-9,-5.348974104172614e-4,-2.1206799246401138e-5,4.239584522007182e-9,-5.348708384321045e-4,-2.1335822917691524e-5,4.204678615706449e-9,-5.347911231697716e-4,-2.1503424398811796e-5,4.158913513206647e-9,-5.346483663470459e-4,-2.1684383203511062e-5,4.109023325019758e-9,-5.344415971986584e-4,-2.185222293312799e-5,4.062070768370815e-9,-5.341787121227865e-4,-2.198213649495927e-5,4.024683100836483e-9,-5.338760303296781e-4,-2.2053786749643512e-5,4.002365575691231e-9,-5.335574557412858e-4,-2.2054309116071213e-5,3.998758028608726e-9,-5.332528017860458e-4,-2.198181627770456e-5,4.014702338546216e-9,-5.32994271803446e-4,-2.1849184863030615e-5,4.047158626760407e-9,-5.328099775273082e-4,-2.1686695872980368E-05,4.088373074123842e-9,-5.327143982259301e-4,-2.1540670747909262e-5,4.1261167888255816e-9,-5.326982547305342e-4,-2.146472539588816e-5,4.145954976805639e-9,-5.327237676269208e-4,-2.150269819024173e-5,4.135827219007261e-9,-5.32732172820136e-4,-2.166880035547954e-5,4.091442962833996e-9,-5.32664363807273e-4,-2.193675634261866e-5,4.019307535221708e-9,-5.324850262715923e-4,-2.2247356034033065e-5,3.93482109123221e-9,-5.321959712692641e-4,-2.253169043764306e-5,3.856170494966331e-9,-5.318318024819819e-4,-2.2736299986202895e-5,3.797697407775919e-9,-5.314434001136979e-4,-2.283727543038531e-5,3.7661716224598815e-9,-5.310801862783224e-4,-2.2840328090950416e-5,3.760701663621395e-9,-5.307784695622606e-4,-2.277209911293882e-5,3.774865010501329e-9,-5.305570300482153e-4,-2.2669296597542187e-5,3.799377675031908e-9,-5.304177923198672e-4,-2.2569563199808032e-5,3.824373068544768e-9,-5.303490345079164e-4,-2.2505211219014473e-5,3.841055895162692e-9,-5.303294436667859e-4,-2.2499458669989806e-5,3.842819986704146e-9,-5.303323047521583e-4,-2.2564506861846283e-5,3.825934653411622e-9,-5.303295770130921e-4,-2.2701095439328812e-5,3.78981094362531e-9,-5.302956400451363e-4,-2.2899349303107257e-5,3.736840685640963e-9,-5.30210473665667e-4,-2.314073527658426e-5,3.6718507329490764e-9,-5.300620142371433e-4,-2.340093393614476e-5,3.601265981895817e-9,-5.298474349228372e-4,-2.3653284469214588e-5,3.532132956929273e-9,-5.29573308984056e-4,-2.3872320401723e-5,3.4711768964710575e-9,-5.292548431176042e-4,-2.403707365259649e-5,3.4239812057610383e-9,-5.289143407918906e-4,-2.4134058857944783e-5,3.3942741989696835e-9,-5.285789266630395e-4,-2.4159906281443744e-5,3.3832709646259577e-9,-5.282773952237134e-4,-2.4123609199085298e-5,3.389033411558258e-9,-5.280357364388392e-4,-2.404808982327215e-5,3.4059246595776906e-9,-5.278708810726782e-4,-2.3969949940549298e-5,3.4245089739342943e-9,-5.277831391864141e-4,-2.3935357712190903e-5,3.4325187746853774e-9,-5.277497546540487e-4,-2.3990053843999665e-5,3.417490568679712e-9,-5.277243373408124e-4,-2.416362760309801e-5,3.371043381811958e-9,-5.276472969010053e-4,-2.4453303594010498e-5,3.2933522318209953e-9,-5.274672038760931e-4,-2.4817592116745615e-5,3.1949762152372857e-9,-5.271634422555336e-4,-2.5188059386224728e-5,3.0937979755767632e-9,-5.267559068389037e-4,-2.549567899523349e-5,3.008057415556971e-9,-5.262952781608044e-4,-2.569664316277229e-5,2.9495561606916857e-9,-5.258412694183832e-4,-2.5783493066863733e-5,2.9207489680924703e-9,-5.254425066389419e-4,-2.5779503885456728e-5,2.9161612247094987e-9,-5.251263833011977e-4,-2.5724489785007588e-5,2.925940256027055e-9,-5.248986095698239e-4,-2.566102959629115e-5,2.9392604634341714e-9,-5.247480432907525e-4,-2.5625368004893986e-5,2.946595015690205e-9,-5.246528338231885e-4,-2.5643091786020372e-5,2.940887498147975e-9,-5.245858121778989e-4,-2.572797628618578e-5,2.918009092055048e-9,-5.245186697908287e-4,-2.5882406676612352e-5,2.8768303754599108e-9,-5.244252403009383e-4,-2.6098529986454154e-5,2.8190430572214277e-9,-5.242842104460674e-4,-2.6359918036558112e-5,2.748752781998075e-9,-5.240813809095547e-4,-2.664376012583758e-5,2.6718566779627634e-9,-5.23811405473642e-4,-2.6923697743507696e-5,2.5952305181850944e-9,-5.234786998958045e-4,-2.7173303690041893e-5,2.5257824612885647e-9,-5.230971720563157e-4,-2.7369871435687406e-5,2.4694878843742183e-9,-5.226886747385083e-4,-2.749801736194075e-5,2.4305157487672832e-9,-5.222802740203602e-4,-2.7552679878417226e-5,2.410501767346455e-9,-5.219004721067165e-4,-2.7541114744677728e-5,2.4080150610133087e-9,-5.215746064004773e-4,-2.748348611429587e-5,2.4182963593044943e-9,-5.213196916609409e-4,-2.741169261001642e-5,2.433387542607336e-9,-5.211390633776294e-4,-2.7365830864708946e-5,2.442883976030173e-9,-5.210177939670833e-4,-2.7387386588784694e-5,2.4356382416405185e-9,-5.2092103264559e-4,-2.7508753633437043e-5,2.4025749182162106e-9,-5.207983793056417e-4,-2.7740648686792387e-5,2.3401865242185253e-9,-5.205966266482828e-4,-2.806223642295004e-5,2.253350576167634e-9,-5.202789824851698e-4,-2.8421269302758358e-5,2.1554312055901617e-9,-5.198423209709797e-4,-2.8748981292602243e-5,2.064380772209385e-9,-5.193213569961983e-4,-2.8985277857182498e-5,1.996093068377223e-9,-5.187754286828383e-4,-2.9100856801229018e-5,1.95860814721846e-9,-5.182654734879904e-4,-2.910408008464851e-5,1.950328402209735e-9,-5.17834468885133e-4,-2.903146570281326e-5,1.9624204795998646e-9,-5.174994717055985e-4,-2.8930642345991606e-5,1.9830589980046977e-9,-5.172543344144145e-4,-2.8845521813800735e-5,2.0010793286060667e-9,-5.170775031307184e-4,-2.8808046397317225e-5,2.0080420772500573e-9,-5.169400421587481e-4,-2.883586587420426e-5,1.998918998843043e-9,-5.168116638617822e-4,-2.8933416322078027e-5,1.9719933681402133e-9,-5.166645952694134e-4,-2.9094191480639365e-5,1.928446821526537e-9,-5.16476024252827e-4,-2.930309443473024e-5,1.8718459878098334e-9,-5.162298604848831e-4,-2.9538674218475745e-5,1.8075644448687839e-9,-5.15918183163581e-4,-2.9775463189840496e-5,1.7421226458261029e-9,-5.155423951219354e-4,-2.9986754143992856e-5,1.682415416929058e-9,-5.151137407302886e-4,-3.0148054298078004e-5,1.6348102041026057e-9,-5.14652612618079e-4,-3.024103796625174e-5,1.6041685250154395e-9,-5.141862173715009e-4,-3.025736743569097e-5,1.5929194416540232e-9,-5.137445594032925e-4,-3.0201544061071227e-5,1.6003442662174793e-9,-5.133551073665073e-4,-3.0091913298744713e-5,1.6222546448333353e-9,-5.130369284461957e-4,-2.9959105712960137e-5,1.651244127376648e-9,-5.127954099507898e-4,-2.9841663506552026e-5,1.6776263789056898e-9,-5.126187743607301e-4,-2.977911818282605e-5,1.6910763709352394e-9,-5.124775920139699e-4,-2.980317215645477e-5,1.6828919402962205e-9,-5.123285291058596e-4,-2.992827896807966e-5,1.6485704768880652e-9,-5.121232184702717e-4,-3.0144080674584436e-5,1.5900146804836555e-9,-5.118216874803194e-4,-3.041333535976552e-5,1.5163090868023582e-9,-5.114069216089788e-4,-3.06788578426189e-5,1.4420450362417905e-9,-5.108941341159282e-4,-3.087997193374652e-5,1.383045829244638e-9,-5.103283884814538e-4,-3.097314754523197e-5,1.350950290890561e-9,-5.097696659935665e-4,-3.0946985077149386e-5,1.3492802047218747e-9,-5.092722871601308e-4,-3.0823751756630565e-5,1.3729826486285837e-9,-5.088689790088103e-4,-3.064783528784369e-5,1.4112787115572115e-9,-5.085657929059659e-4,-3.046880866802487e-5,1.4518356546063253e-9,-5.08346811352875e-4,-3.032757248561428e-5,1.4841879987672864e-9,-5.081833205273989e-4,-3.024951848205968e-5,1.5014927928567059e-9,-5.080425577921641e-4,-3.024389232124672e-5,1.5008319918093534e-9,-5.078937898414977e-4,-3.0306504584070308e-5,1.4827093655212703e-9,-5.077117106050379e-4,-3.042331137863873e-5,1.4502784815439696e-9,-5.074781087294359e-4,-3.0573627604291196e-5,1.4085697181512755e-9,-5.071827632231985e-4,-3.0732762305829554e-5,1.363783212066794e-9,-5.068241386956512e-4,-3.087440447664662e-5,1.322616276444108e-9,-5.064099743494193e-4,-3.097328317084115e-5,1.2915471371343079e-9,-5.059573813360568e-4,-3.100850766576199e-5,1.2759963019804067e-9,-5.054917280931815e-4,-3.09675266499804e-5,1.2793674539120017e-9,-5.050436028710859e-4,-3.085000943630236e-5,1.3021016279347987e-9,-5.046435847782699e-4,-3.067039629349787e-5,1.3410151010863194e-9,-5.043154041700915e-4,-3.0457621016956392e-5,1.3892739397176436e-9,-5.040690924503929e-4,-3.025093383015183e-5,1.4372920683562972e-9,-5.038963498673596e-4,-3.0091976510982597e-5,1.4745708467378526e-9,-5.037701041335682e-4,-3.001474285367648e-5,1.4921523724764496e-9,-5.036491510419384e-4,-3.0036038672483e-5,1.4850891219563646e-9,-5.034873278369172e-4,-3.0149240525066758e-5,1.4542250103523055e-9,-5.032453132593057e-4,-3.032361586041559e-5,1.4066373962624775e-9,-5.029021178492986e-4,-3.0510322165871625e-5,1.3543382658568904e-9,-5.024627404979756e-4,-3.06545113386691e-5,1.3112907864465489e-9,-5.01958677253733e-4,-3.0710749963624354e-5,1.2894420761309303e-9,-5.014397693770699e-4,-3.065674386674007e-5,1.2951067361437504e-9,-5.009594637119274e-4,-3.0499774007028698e-5,1.327181960804589e-9,-5.005591265624038e-4,-3.027289359707675e-5,1.3779593095465411e-9,-5.002577464773517e-4,-3.002286754188913e-5,1.4360302437884732e-9,-5.000502980916162e-4,-2.9795642680252517e-5,1.4898545010720947e-9,-4.999135018056022e-4,-2.96252177016554e-5,1.530564984614016e-9,-4.998148703059288e-4,-2.9528734833433275e-5,1.5533180663703762e-9,-4.997210391324866e-4,-2.9507108813167577e-5,1.557313949211449e-9,-4.996033580441727e-4,-2.95486805281199e-5,1.5450349761472517e-9,-4.994407134467235e-4,-2.963354086042027e-5,1.5212284427432084e-9,-4.99220513807549e-4,-2.9737275227078863e-5,1.4919412361183264e-9,-4.989388300780407e-4,-2.9833867578447486e-5,1.4637165471569636e-9,-4.986003615032496e-4,-2.989808300652266e-5,1.442933990607473e-9,-4.982184149831263e-4,-2.9907927865987277e-5,1.4351810441446417e-9,-4.978145252172193e-4,-2.9847712851288548e-5,1.4445248582206659e-9,-4.974169169914042e-4,-2.971176155615385e-5,1.4726359068551763e-9,-4.970569165391165e-4,-2.9508056286774713e-5,1.517893845763169e-9,-4.967628303390822e-4,-2.926026998042455e-5,1.574829976621728e-9,-4.96551978398408e-4,-2.900608455871382e-5,1.634431128285346e-9,-4.96423302209712e-4,-2.879027553840682e-5,1.6857146709917446e-9,-4.963541060645736e-4,-2.865323310167557e-5,1.7184681499924557e-9,-4.963036761354488e-4,-2.861842652841363e-5,1.7263462753477494e-9,-4.962236841992082e-4,-2.8683800491744274e-5,1.7091218148852898e-9,-4.960720233794146e-4,-2.8820919804120417e-5,1.673117417745899e-9,-4.958250916601518e-4,-2.898244031513813e-5,1.6295915726764063e-9,-4.954843911405692e-4,-2.911516518981793e-5,1.591663143962164e-9,-4.950757567029083e-4,-2.9174289607850693e-5,1.5708062654753593e-9,-4.946419883627445e-4,-2.9134683182893188e-5,1.5739443674704452e-9,-4.942313197632331e-4,-2.899634780038582e-5,1.601897900139963e-9,-4.938850760519116e-4,-2.8782878175581034e-5,1.6495407345080696e-9,-4.936280480341194e-4,-2.8533738897703263e-5,1.707525662802973e-9,-4.934641902772148e-4,-2.8293088750190768e-5,1.7649546067683797e-9,-4.933783032088761e-4,-2.80988640410467e-5,1.8121051613246878e-9,-4.933422254005704e-4,-2.7975289802310766e-5,1.8424210940995162e-9,-4.933227875226166e-4,-2.793022331205908e-5,1.853363241919422e-9,-4.932888738289174e-4,-2.7956735636432285e-5,1.8461872237371115e-9,-4.932160962554518e-4,-2.8037116641906087e-5,1.8250326211687373e-9,-4.930889594766327e-4,-2.8147435486230603e-5,1.7957702854856959e-9,-4.929012427190119e-4,-2.8261502965497104e-5,1.7649326447086253e-9,-4.926554961798312e-4,-2.835390391705434e-5,1.7388763334173934e-9,-4.923623095573031e-4,-2.8402349479687208e-5,1.7231683216680764e-9,-4.920395867133475e-4,-2.8389889647024718e-5,1.722073563894763e-9,-4.917115540492151e-4,-2.8307497965287012e-5,1.7379836944677346e-9,-4.914067695061618e-4,-2.815714883271202e-5,1.7707008124423624e-9,-4.911541935152892e-4,-2.7954758530073625e-5,1.8166878141640076e-9,-4.9097673506944e-4,-2.773135265619518e-5,1.868683014872907e-9,-4.908829819257416e-4,-2.753002578310636e-5,1.9163130986412e-9,-4.908600342594571e-4,-2.7396792960745575e-5,1.9482274136412787e-9,-4.908721173909682e-4,-2.736633164669827e-5,1.9555585722015448e-9,-4.908685218729858e-4,-2.7447945016454782e-5,1.935427847646306e-9,-4.907995565142859e-4,-2.7619289411182313e-5,1.8926347984558103e-9,-4.906336832509187e-4,-2.7832348344015255e-5,1.8383867655335314e-9,-4.903676923646972e-4,-2.802925951189207e-5,1.7865984348223615e-9,-4.900260027571856e-4,-2.81603898676814e-5,1.7495716625922467e-9,-4.89651135545775e-4,-2.8197278587712897e-5,1.7348223698973235e-9,-4.892906052692192e-4,-2.8137212384925217e-5,1.7438257478064728e-9,-4.889850187707911e-4,-2.800028120231637e-5,1.7725003438639047e-9,-4.887600631930353e-4,-2.782169608840279e-5,1.8128296668897378e-9,-4.886231415493295e-4,-2.764229676123075e-5,1.8550063239660704e-9,-4.885642484701803e-4,-2.7499550273375093e-5,1.8896080581632753e-9,-4.88560103003217e-4,-2.7420633789239168e-5,1.9094190965771907e-9,-4.885802098906471e-4,-2.741859369588705e-5,1.9105887095828677e-9,-4.885932963466409e-4,-2.749186494528233e-5,1.892958847920264e-9,-4.885727070221833e-4,-2.7626586385723848e-5,1.8596151082628022e-9,-4.884999125827284e-4,-2.780056601507957e-5,1.815912403162441e-9,-4.883659918181414e-4,-2.7987688626019622e-5,1.7683031663824352e-9,-4.881714965792303e-4,-2.8161857991136438e-5,1.7232621331153711e-9,-4.879253817230721e-4,-2.8300053385778088e-5,1.6864793191295907e-9,-4.876435954604153e-4,-2.838460913858599e-5,1.6623231380987314e-9,-4.87347570898538e-4,-2.8405127125376862e-5,1.6534487206287574e-9,-4.870624676766653e-4,-2.8360400428380635e-5,1.660397458157364e-9,-4.8681464921107224e-4,-2.8260451760282097e-5,1.6810999234867354e-9,-4.8662762504571956e-4,-2.8128194590838857e-5,1.710378936760407e-9,-4.865159493111669e-4,-2.7999259061439134e-5,1.7398402884595435e-9,-4.864778001628795e-4,-2.7917688216241995e-5,1.758782346831438e-9,-4.864891773662556e-4,-2.7925623648319725e-5,1.7566564873211407e-9,-4.8650469881442816e-4,-2.8048055389582203e-5,1.7268436941845679e-9,-4.8646900022718986e-4,-2.8278862045047066e-5,1.6701987909042514e-9,-4.863366661408441e-4,-2.8577505119019685e-5,1.596014686119699e-9,-4.8609095859314307e-4,-2.888149066944309e-5,1.5191180487893385e-9,-4.8575031131327785e-4,-2.9129303897496962e-5,1.4543917377772392e-9,-4.853594628443761e-4,-2.928127077721007e-5,1.4117786999065398e-9,-4.8497195747729835e-4,-2.932864068445588e-5,1.394071849831376e-9,-4.846337505125269e-4,-2.92901557766113e-5,1.397598481510503e-9,-4.8437354423659196e-4,-2.9201624636557654e-5,1.4144787727407432e-9,-4.842002284292061e-4,-2.9104393029698005e-5,1.4351477859261177e-9,-4.841052181270292e-4,-2.903609161431683e-5,1.4504558263885193e-9,-4.84067228217977e-4,-2.9024670479161186e-5,1.4531643834621424e-9,-4.840577748119623e-4,-2.90853939257728e-5,1.438879930124667e-9,-4.8404655015113853e-4,-2.9220176531956694e-5,1.4064663055144139e-9,-4.840061936266715e-4,-2.9418854952069273e-5,1.3579222509944927e-9,-4.839159970403585e-4,-2.9661986241126522e-5,1.2977592972372048e-9,-4.8376421255598803e-4,-2.99245694584744e-5,1.2320364517035848e-9,-4.8354887698368103e-4,-3.0180063885511402e-5,1.1672683012708056e-9,-4.832772700501507e-4,-3.0404142004948953e-5,1.1094257627540442e-9,-4.829643557323166e-4,-3.0577722626730395e-5,1.06319106972272e-9,-4.826306810340864e-4,-3.068915192762852e-5,1.0314937573263063e-9,-4.823000236618913e-4,-3.073572511170575e-5,1.0152261736262526e-9,-4.819967854440488e-4,-3.07247596187981e-5,1.0130129991719876e-9,-4.8174290438235536e-4,-3.067424662353938e-5,1.0209817846856487e-9,-4.8155387647187757e-4,-3.061273027346073e-5,1.032629336411569e-9,-4.814336608023644e-4,-3.057734555154527e-5,1.0391143981355627e-9,-4.813692597631775e-4,-3.060832201910778e-5,1.0304832601707698e-9,-4.813275459614071e-4,-3.073869463472397e-5,9.981998565152625e-10,-4.812585659790297e-4,-3.09804507134622e-5,9.386721541243323e-10,-4.811087866201458e-4,-3.1312961751180574e-5,8.56262021686922e-10,-4.8084200197442165e-4,-3.168291882514008e-5,7.634346976835111e-10,-4.804573453938174e-4,-3.202098523525012e-5,6.767668830172286e-10,-4.799919742448245e-4,-3.226863232885468e-5,6.104833504614054e-10,-4.7950561722214457e-4,-3.239963129412474e-5,5.713324640502453e-10,-4.7905711130771735e-4,-3.2424683834516966e-5,5.57489239643948e-10,-4.7868648919253005e-4,-3.2380572165611614e-5,5.61014998658449e-10,-4.78408756745913e-4,-3.231372536823076e-5,5.715060758294507e-10,-0.00047821695541208484,-3.226672810540936e-5,5.790543339561175e-10,-4.780892929635116e-4,-3.2270696159169436e-5,5.759797425532569e-10,-4.7799654019284706e-4,-3.2342694027153804e-5,5.575709307492149e-10,-4.7790798337904856e-4,-3.2486240286347094e-5,5.222191413059654e-10,-4.7779572256916394e-4,-3.269322339193252e-5,4.712137846897875e-10,-4.776377532430203e-4,-3.294643314889626e-5,4.0828191455557877e-10,-4.7742011900052996e-4,-3.322255415686779e-5,3.3887550315425643e-10,-4.7713813362436103e-4,-3.3495522236272236e-5,2.692723543611399e-10,-4.767966058786844e-4,-3.374005506219493e-5,2.0561845121165476e-10,-4.764089810761079e-4,-3.3935100660724256e-5,1.5304719488686107e-10,-4.759953978571277e-4,-3.4066794130658526e-5,1.150012473363178e-10,-4.75579914293648e-4,-3.4130529894258694e-5,9.281539758685568e-11,-4.7518726401693057e-4,-3.4132012358599385e-5,8.552166664277137e-11,-4.7483937947707337e-4,-3.4087283256587925e-5,8.9808001360197e-11,-4.745518134530909e-4,-3.402168289331611e-5,1.0012352749726892e-10,-4.743301302744044e-4,-3.396758918434555e-5,1.0901384685598315e-10,-4.7416643965561046e-4,-3.3960444197777966e-5,1.0790405985855532e-10,-4.740368979791793e-4,-3.4032281179469596e-5,8.86169595898152e-11,-4.739021227586955e-4,-3.420250408423377e-5,4.5725881072999446e-11,-4.7371326042227083e-4,-3.446757033559661e-5,-2.0710561717845824e-11,-4.734254927457585e-4,-3.479429725681101e-5,-1.0330249928567228e-10,-4.7301639236006836e-4,-3.5123672220509924e-5,-1.881476569178234e-10,-4.725000431178112e-4,-3.5388839961071916e-5,-2.591876480176443e-10,-4.7192604541348076e-4,-3.554105374407855e-5,-3.044707002743182e-10,-4.7136099969806975e-4,-3.556883779945993e-5,-3.206993534357789e-10,-4.7086294225468346e-4,-3.549888047725581e-5,-3.1342792392102554e-10,-4.7046352272326177e-4,-3.538050951555742e-5,-2.935213287305637e-10,-4.7016473226171217e-4,-3.5265590743997314e-5,-2.726806915020762e-10,-4.699464136836216e-4,-3.5194260656001715e-5,-2.6030955535709985e-10,-4.697770469616606e-4,-3.518932915329649e-5,-2.622205939252974e-10,-4.696228012465099e-4,-3.5256920462369833e-5,-2.8060094716625834e-10,-4.6945333703288087e-4,-3.538992906669341e-5,-3.145484253008059e-10,-4.69244867902677e-4,-3.5571919634512485e-5,-3.607624652693146e-10,-4.6898164086817774e-4,-3.5780529452895425e-5,-4.1425452821863957e-10,-4.686566863176195e-4,-3.5990449974228233e-5,-4.690962154934373e-10,-4.6827208786035787e-4,-3.617631589754077e-5,-5.192139267408718e-10,-4.678386863652773e-4,-3.631568320727738e-5,-5.591870571551936e-10,-4.6737497335989225e-4,-3.6392083291211825e-5,-5.849904896303589e-10,-4.6690488301707415e-4,-3.639782201853782e-5,-5.94602599597509e-10,-4.6645445102384944e-4,-3.633592139146378e-5,-5.883906819014525e-10,-4.660476945176547e-4,-3.6220661871468307e-5,-5.692228942796334e-10,-4.657022695838701e-4,-3.6076407131886816e-5,-5.422815071321678e-10,-4.6542554666657507e-4,-3.5934607127357874e-5,-5.145430862929582e-10,-4.6521176990474016e-4,-3.582914597600692e-5,-4.93889587145379e-10,-4.650408921003716e-4,-3.579037660247443e-5,-4.878228226654467e-10,-4.6487973809540686e-4,-3.583822677071e-5,-5.017887049330647e-10,-4.646864289969452e-4,-3.5975183793548686e-5,-5.37296846788472e-10,-4.64418929535433e-4,-3.618107017587765e-5,-5.903807450996709e-10,-4.640473748557744e-4,-3.641280549063968e-5,-6.513004445318026e-10,-4.6356706963375163e-4,-3.6612571972860786e-5,-7.064066461510136e-10,-4.6300573393137634e-4,-3.672503075757567e-5,-7.42296675743031e-10,-4.624182914159778e-4,-3.671797163766815e-5,-7.508047679955584e-10,-4.6186855565977626e-4,-3.659550128472903e-5,-7.321670756526646e-10,-4.614064225580401e-4,-3.6395389241618036e-5,-6.944563282812404e-10,-4.610528332327597e-4,-3.6172385710832e-5,-6.498299076742612e-10,-4.607987283925611e-4,-3.597801715887471e-5,-6.100320374056605e-10,-4.6061468507508637e-4,-3.5846959612404006e-5,-5.833503649471653e-10,-4.6046349004600013e-4,-3.579313229929127e-5,-5.736387227312834e-10,-4.6030994274539054e-4,-3.5812705095171745e-5,-5.807834219497946e-10,-4.601262422144594e-4,-3.588972134772124e-5,-6.017486078129592e-10,-4.5989390505752053e-4,-3.600142119002202e-5,-6.316505581854882e-10,-4.596038614192552e-4,-3.61222398339944e-5,-6.646706362294414e-10,-4.592559568531993e-4,-3.6226694452753686e-5,-6.948193567656552e-10,-4.5885834703375316e-4,-3.629175808199892e-5,-7.166060109300918e-10,-4.584267277797475e-4,-3.629920933167143e-5,-7.25651034334448e-10,-4.5798303120869814e-4,-3.623817319516776e-5,-7.192617233124736e-10,-4.575530806030977e-4,-3.610762730040304e-5,-6.969458465337379e-10,-4.571628892970559e-4,-3.591815255208761e-5,-6.607620683323364e-10,-4.56833823604343e-4,-3.569198142091502e-5,-6.153534493322551e-10,-4.5657747279228704e-4,-3.54605678450924e-5,-5.675121322431022e-10,-4.5639155317605325e-4,-3.525945503013983e-5,-5.251872676244543e-10,-4.562582877399368e-4,-3.5121101489857186e-5,-4.960025021303906e-10,-4.561462404911574e-4,-3.5067166813251846e-5,-4.855281510313871e-10,-4.560157354184803e-4,-3.510209657136758e-5,-4.956760285975314e-10,-4.558271844438492e-4,-3.520973052125918e-5,-5.23642942124648e-10,-4.555509722539143e-4,-3.5354377231198915e-5,-5.618485388203806e-10,-4.551767900011865e-4,-3.5487271728465515e-5,-5.99216862288837e-10,-4.547194931700101e-4,-3.555821241925147e-5,-6.238372524193589e-10,-4.5421824807652514e-4,-3.553016757808225e-5,-6.264728450339745e-10,-4.537270827198009e-4,-3.539206308847836e-5,-6.037125880351339e-10,-4.532987076358123e-4,-3.5163679660655164e-5,-5.592847955933052e-10,-4.5296792741134556e-4,-3.488912728160238e-5,-5.027086388929701e-10,-4.527422313081323e-4,-3.462138798450755e-5,-4.458766460131134e-10,-4.5260323410913533e-4,-3.4405453702598874e-5,-3.9926413768010085e-10,-4.5251644486876176e-4,-3.426740951649623e-5,-3.6938487658784766e-10,-4.5244332300902997e-4,-3.421213627964388e-5,-3.5808595438001316e-10,-4.523505626185003e-4,-3.4227480505678286e-5,-3.632636675315268e-10,-4.5221482312207624e-4,-3.4290899461766846e-5,-3.8020116677613763e-10,-4.5202375557595886e-4,-3.437554371425792e-5,-4.029081427514244e-10,-4.5177505774483904e-4,-3.445460262322402e-5,-4.251869797649234e-10,-4.514749547370295e-4,-3.4504079311446706e-5,-4.4139362238526164e-10,-4.5113679020358777e-4,-3.450468018923218e-5,-4.469651496899405e-10,-4.507797731939009e-4,-3.444350711070474e-5,-4.388225099902334e-10,-4.504274678763231e-4,-3.431595710739258e-5,-4.1574789980056126e-10,-4.501053968208255e-4,-3.412772239306382e-5,-3.7876689398194317e-10,-4.49837245052929e-4,-3.3896171321560205e-5,-3.3143923698792594e-10,-4.4963967883302245e-4,-3.364990241377015e-5,-2.7982500286964254e-10,-4.495167350280108e-4,-3.342519780636138e-5,-2.3182893325347959e-10,-4.494557916595384e-4,-3.32588698365336e-5,-1.9575098987866422e-10,-4.494275238613324e-4,-3.317868246084438e-5,-1.7822526619476317e-10,-4.493912544321645e-4,-3.319433112785999e-5,-1.8215182067943742e-10,-4.4930491559363935e-4,-3.329257874488547e-5,-2.0541584757431906e-10,-4.491366544886963e-4,-3.343893518934762e-5,-2.409915239755049e-10,-4.4887423428689434e-4,-3.358582747083409e-5,-2.785249749837473e-10,-4.4852918924545023e-4,-3.3684857564196356e-5,-3.069592004180854e-10,-4.481345025764483e-4,-3.3699547562141865E-05,-3.174400965017838e-10,-4.477364173205387e-4,-3.36150453685436e-5,-3.056899582009406e-10,-4.473824653024104e-4,-3.3442075559446554e-5,-2.731645840371916e-10,-4.471089794236686e-4,-3.3213746559910004e-5,-2.2659609678642381e-10,-4.4693193476726584e-4,-3.2975892326254515e-5,-1.7600234698550785e-10,-4.4684415933761597e-4,-3.2774072581832724e-5,-1.318180279743324e-10,-4.468195596048631e-4,-3.264180812728822e-5,-1.0215906621877542e-10,-4.468221350963377e-4,-3.259390394722096e-5,-9.111564082088563e-11,-4.468159270102211e-4,-3.262613831507543e-5,-9.843768488394674e-11,-4.4677253154619184e-4,-3.271981887431175e-5,-1.2037327381122013e-10,-4.466747593938944e-4,-3.2848326037323585e-5,-1.5107991793165482e-10,-4.465169535590928e-4,-3.298315215165685e-5,-1.8405170853296948e-10,-4.4630337571044507e-4,-3.309824656748056e-5,-2.1323351666357844e-10,-4.4604597579605345e-4,-3.317263929462189e-5,-2.337308573244723e-10,-4.45762317539977e-4,-3.3191928530204014e-5,-2.421841171496663e-10,-4.454738218877487e-4,-3.314935956184844e-5,-2.369644191333686e-10,-4.4520398080873634e-4,-3.304699535971351e-5,-2.1835135532547503e-10,-4.449759188950929e-4,-3.289697404544757e-5,-1.887628854791514e-10,-4.448087241116615e-4,-3.2722220146874976e-5,-1.529489231537002e-10,-4.4471242614531716e-4,-3.2555363695373645e-5,-1.1787226547448037e-10,-4.446825403539786e-4,-3.2434324371631275e-5,-9.188130706746193e-11,-4.4469655992664646e-4,-3.2393735943472714e-5,-8.291075104452407e-11,-4.4471563063769776e-4,-3.245364245052461e-5,-9.596818943647909e-11,-4.446933654754844e-4,-3.2609831845342675e-5,-1.3086158754423952e-10,-4.445900359888028e-4,-3.2831347836709934e-5,-1.814400172328324e-10,-4.4438642125605143e-4,-3.306811219248421e-5,-2.370680722983898e-10,-4.4409080264432883e-4,-3.326622792760892e-5,-2.858581212801058e-10,-4.437360837083105e-4,-3.33843518504114e-5,-3.1823887552277983e-10,-4.433690949210459e-4,-3.340463330407339e-5,-3.294487374573945e-10,-4.430370755530498e-4,-3.3335321031998855e-5,-3.203184353265311e-10,-4.427759960089928e-4,-3.320596713714179e-5,-2.9650278742528307e-10,-4.4260339341241914e-4,-3.305809413124731e-5,-2.666935334285821e-10,-4.425164934095727e-4,-3.293443729480453e-5,-2.403889490512539e-10,-4.424951037855245e-4,-3.286939195932481e-5,-2.2573681301802528e-10,-4.4250792553513906e-4,-3.2882577323854434e-5,-2.2789539745179735e-10,-4.425203905633074e-4,-3.297653466831185e-5,-2.4823497974085815e-10,-4.425019734590562e-4,-3.313848660280707e-5,-2.8448803781729026e-10,-4.424313311491289e-4,-3.334499881923905e-5,-3.3168004394333305e-10,-4.422985572981347e-4,-3.3567784931305844e-5,-3.834657566606249e-10,-4.4210484891880924e-4,-3.377905354369237e-5,-4.3346022827032136e-10,-4.4186050614891556e-4,-3.3955460677570604e-5,-4.762630706971752e-10,-0.00044158229376506733,-3.408047587119074e-5,-5.080560853142402e-10,-4.4129088951131405e-4,-3.4145537682724034e-5,-5.268328707022444e-10,-4.4100864451780675e-4,-3.415060214756904e-5,-5.324321778308508e-10,-4.4075744431709034e-4,-3.4104538515809105e-5,-5.265509515466792e-10,-4.405562048159596e-4,-3.402543308853396e-5,-5.128193797311413e-10,-4.4041749799388676e-4,-3.394031824044413e-5,-4.968520411437988e-10,-4.4034317371603764e-4,-3.388321666420194e-5,-4.859836819661576e-10,-4.4031985380117906e-4,-3.389003663385937e-5,-4.882781596747447e-10,-4.4031667309458187e-4,-3.398947734201114e-5,-5.105417250572887e-10,-4.40288726603928e-4,-3.419139460117802e-5,-5.556392875995702e-10,-4.4018852720764694e-4,-3.447763007612022e-5,-6.202734840122589e-10,-4.3998312776834925e-4,-3.4802253044518366e-5,-6.948530997978604e-10,-4.396688525708522e-4,-3.510470657110431e-5,-7.662719727894685e-10,-4.3927463938373874e-4,-3.533108692677226e-5,-8.225278615720626e-10,-4.388514849831018e-4,-3.545261924397217e-5,-8.567545923869293e-10,-4.384542114569926e-4,-3.5472467064472854e-5,-8.687704570663886e-10,-4.381250309194333e-4,-3.542007387575285e-5,-8.640367362840351e-10,-4.3788477725332484e-4,-3.533865244353876e-5,-8.512299465652137e-10,-4.377321566231613e-4,-3.52722511840646e-5,-8.396926899517458e-10,-4.3764830456916964e-4,-3.525614476523123e-5,-8.374333127536711e-10,-4.376036478383992e-4,-3.531151963905395e-5,-8.498330044244647e-10,-4.3756499698159503e-4,-3.544392307484552e-5,-8.790159276265403e-10,-4.3750174764789934e-4,-3.56445680225368e-5,-9.238259471745557e-10,-4.3739057794072914e-4,-3.5893675770702265e-5,-9.803621067461992e-10,-4.372182577922428e-4,-3.6165025749781834e-5,-1.042950971201023e-9,-4.369824734841252e-4,-3.6430802734025703e-5,-1.1053246753441703e-9,-4.36690901264442e-4,-3.6665949804834746e-5,-1.1617407465670032e-9,-4.3635900542241446e-4,-3.685147801086402e-5,-1.2078249534317108e-9,-4.360071976804138e-4,-3.697647114841903e-5,-1.2410262063482944e-9,-4.356579555231565e-4,-3.7038915732516285e-5,-1.260728985867218e-9,-4.353331667358742e-4,-3.704575670653252e-5,-1.2681800873321904e-9,-4.350516275750907e-4,-3.701249208677096e-5,-1.2663789075441324e-9,-4.348264748497907e-4,-3.696235632581322e-5,-1.2599873663792249e-9,-4.3466228069439307e-4,-3.692480626009468e-5,-1.2551736513394884e-9,-4.3455177288540366e-4,-3.6932510170417106e-5,-1.25912798564809e-9,-4.3447301468774706e-4,-3.701572674939781e-5,-1.278902275184977e-9,-4.3438916026796164e-4,-3.71935894381788e-5,-1.3194060826546412e-9,-4.3425376802956616e-4,-3.74638561498117e-5,-1.3809346111075104e-9,-4.340236163024067e-4,-3.779593543622154e-5,-1.4574024307369292e-9,-4.3367640876553675e-4,-3.8134118564692025e-5,-1.5369256916288049e-9,-4.332244241737091e-4,-3.8414502041651824e-5,-1.6055222702572017e-9,-4.3271386018431076e-4,-3.858948430017033e-5,-1.652481129483999e-9,-4.3220787923143326e-4,-3.864607462666557e-5,-1.6743270763616353e-9,-4.317629656468537e-4,-3.860761863456337e-5,-1.6752156913577408e-9,-4.3141176547786695e-4,-3.8520414864384305e-5,-1.6642240440609935e-9,-4.3115868222643985e-4,-3.8435327419660585e-5,-1.651702421749401e-9,-4.3098557996193025e-4,-3.8393580822086956e-5,-1.6464759363415677e-9,-4.3086147835504085e-4,-3.841992287116871e-5,-1.65440671246263e-9,-4.307516674336233e-4,-3.8521823132790755e-5,-1.6780078303099869e-9,-4.306243804306794e-4,-3.8692067403099935e-5,-1.716664885505569e-9,-4.3045497513185133e-4,-3.891267180424769e-5,-1.7671843133691706e-9,-4.302282105989142e-4,-3.9159095494623204e-5,-1.824566327370246e-9,-4.299390751286171e-4,-3.940438880534627e-5,-1.8829431790449586e-9,-4.295924025130069e-4,-3.9623034498814555e-5,-1.936562263178734e-9,-4.292014630930585e-4,-3.9794261037469396e-5,-1.9806593157273097e-9,-4.287856876623859e-4,-3.9904630596068394e-5,-2.0120950226613972e-9,-4.28367754503315e-4,-3.994964610903417e-5,-2.0296763544745215e-9,-4.279704452993792e-4,-3.9934237516808346e-5,-2.0341813886434956e-9,-4.276136265667553e-4,-3.987227137249826e-5,-2.0282039753249915e-9,-4.273114688402678e-4,-3.978527077197651e-5,-2.0159259234067885e-9,-4.2706992488113834e-4,-3.9700366198973295e-5,-2.002829069662559e-9,-4.268845197863682e-4,-3.964737840173896e-5,-1.9952647642030475e-9,-4.267386265969893e-4,-3.965471131576109e-5,-1.999700373052887e-9,-4.266029510717304e-4,-3.9743544324180614e-5,-2.0214358793739664e-9,-4.26437834568534e-4,-3.992039295746758e-5,-2.0627867533072652e-9,-4.2620038657907274e-4,-4.016980373449743e-5,-2.1212012265236316e-9,-4.2585728334790284e-4,-4.0451299582123726e-5,-2.1883606719571155e-9,-4.25400265363133e-4,-4.070596598753596e-5,-2.25155109322746e-9,-4.248561337280175e-4,-4.0874859811857436e-5,-2.2977411834001216e-9,-4.242820619720334e-4,-4.092274432793028e-5,-2.3187965446079723e-9,-4.237451316903482e-4,-4.085341822572131e-5,-2.3147791360394584e-9,-4.2329694415442286e-4,-4.070654441064251e-5,-2.2932869092235596e-9,-4.229578411734412e-4,-4.0538947222353454e-5,-2.2656447239000503e-9,-4.2271688421275413e-4,-4.040304127911455e-5,-2.2426165588610284e-9,-4.225427433080427e-4,-4.0333144803596924e-5,-2.231704275563879e-9,-4.223968689264773e-4,-4.0342043136537935e-5,-2.2363639652971267e-9,-4.222434398179648e-4,-4.042433106460874e-5,-2.256430112670042e-9,-4.220548334090586e-4,-4.056222883882198e-5,-2.2890006714688703e-9,-4.218136677594013e-4,-4.073117018433807e-5,-2.3293788637137593e-9,-4.21512946299068e-4,-4.0904258616967875e-5,-2.3719643641673716e-9,-4.2115531676598317e-4,-4.105575217512033e-5,-2.4111025484600863e-9,-4.207517952197999e-4,-4.1163907229954436e-5,-2.441863734119646e-9,-4.203200113401336e-4,-4.121333480514526e-5,-2.460678044086568e-9,-4.198819221794372e-4,-4.119688223171917e-5,-2.4657691210332674e-9,-4.194609188969578e-4,-4.111682572964086e-5,-2.4573520283086842e-9,-4.1907848888926417e-4,-4.0985005162454883e-5,-2.4375869987131062e-9,-4.1875086145044143e-4,-4.082171835588424e-5,-2.4103369791762464e-9,-4.1848604840921634e-4,-4.065342570658751e-5,-2.3807851127628465e-9,-4.182816061708275e-4,-4.050935427302264e-5,-2.3549026071762925e-9,-4.1812347686722286e-4,-4.041715861848515e-5,-2.3387103150409148e-9,-4.1798629068454416e-4,-4.039789505126642e-5,-2.337275945283984e-9,-4.178356307985684e-4,-4.046059638808345e-5,-2.353438615303446e-9,-4.1763304542852736e-4,-4.0597133531294696e-5,-2.3864309135234715e-9,-4.17344485054109e-4,-4.07791348421971e-5,-2.4308988000567276e-9,-4.1695157842682465e-4,-4.095991780817399e-5,-2.477108670627579e-9,-4.16462448119742e-4,-4.108433698392642e-5,-2.5130503328766345e-9,-4.15915771968092e-4,-4.1106404871525956e-5,-2.528346010590168e-9,-4.153721159190534e-4,-4.100833523430551e-5,-2.5184530965389194e-9,-4.1489323356661917e-4,-4.0810007275967356e-5,-2.4867440031700544e-9,-4.1451934265011636e-4,-4.056149998336314e-5,-2.443004015897615e-9,-4.14257057163492e-4,-4.032253315069391e-5,-2.399280027476654e-9,-4.140829643037679e-4,-4.014115402159914e-5,-2.365624213252662e-9,-4.139573594589503e-4,-4.004203540654317e-5,-2.347719850083814e-9,-4.1383883902764264e-4,-4.0026135838993726e-5,-2.346648557292666e-9,-4.1369395521428763e-4,-4.007714518494776e-5,-2.359918634965156e-9,-4.1350116283010187e-4,-4.0169438678037385e-5,-2.3828275358386247e-9,-4.132509204849382e-4,-4.02745458009851e-5,-2.409672202656709e-9,-4.12944098431814e-4,-4.036544899383293e-5,-2.434693727626981e-9,-4.1259003312596384e-4,-4.0419283786942026e-5,-2.4528076757501718e-9,-4.1220463180241106e-4,-4.041920894315126e-5,-2.460165886913844e-9,-4.118084241146482e-4,-4.035589750016881e-5,-2.4545551866637317e-9,-4.114243079808707e-4,-4.0228769440772255e-5,-2.4356339267987566e-9,-4.1107472547243434e-4,-4.004674770704506e-5,-2.4050065497151834e-9,-4.107782411517076e-4,-3.982801465533893e-5,-2.3661110631512318e-9,-4.1054594259781567e-4,-3.959827057314572e-5,-2.3238887851075064e-9,-4.10378395758591e-4,-3.938732383127705e-5,-2.2842171118400988e-9,-4.1026395191599125e-4,-3.922422342717951e-5,-2.2530908614786637e-9,-4.101791123460307e-4,-3.9131562701737556e-5,-2.23557803383868e-9,-4.100913745510124e-4,-3.911997116984464e-5,-2.2346619299068557e-9,-4.099645570075549e-4,-3.9183950507037974e-5,-2.250178149363926e-9,-4.097661972198411e-4,-3.930021397784681e-5,-2.278150153434694e-9,-4.0947612025577423e-4,-3.9429780090729804e-5,-2.310922006873919e-9,-4.090943862753506e-4,-3.952493336780649e-5,-2.338459230035468e-9,-4.086456517799025e-4,-3.954111611657848e-5,-2.3508883014153373e-9,-4.081763984351799e-4,-3.945141594102922e-5,-2.34172318966217e-9,-4.0774310491620253e-4,-3.9258165010706924e-5,-2.3105104000586573e-9,-4.0739410414728915e-4,-3.899487440782558e-5,-2.2634068239480487e-9,-4.071530517716821e-4,-3.8715380711305496e-5,-2.2110648360130516e-9,-4.07012517735472e-4,-3.8474663908117465e-5,-2.1647814676881445e-9,-4.0694031503661626e-4,-3.83111097332982e-5,-2.132885090794267e-9,-4.0689355328915437e-4,-3.823811500140989e-5,-2.118905391336737e-9,-4.0683245131795863e-4,-3.824611552137267e-5,-2.121744169365106e-9,-4.0672875066320724e-4,-3.83106584547127e-5,-2.137053712749919e-9,-4.065681541205749e-4,-3.8401284561318635e-5,-2.1588842425524963e-9,-4.063489170280104e-4,-3.848820200325258e-5,-2.181051087605659e-9,-4.0607899542711783e-4,-3.854620981262006e-5,-2.198080022710527e-9,-4.0577321760118843e-4,-3.855665233157998e-5,-2.2057933114142437e-9,-4.054509336224549e-4,-3.850839314776131e-5,-2.2016348705458945e-9,-4.051339790749997e-4,-3.839848304650612e-5,-2.1848218714545927e-9,-4.0484452728607707e-4,-3.8232763492249975e-5,-2.1563917184551757e-9,-4.046024009615301e-4,-3.8026166396044666e-5,-2.1191704389762e-9,-4.0442170184689123e-4,-3.780206287518215e-5,-2.0776109012345515e-9,-4.043071522932379e-4,-3.7589916539575194e-5,-2.037394588277785e-9,-4.0425112417486777e-4,-3.7420805564781884e-5,-2.0046841607319565e-9,-4.0423270413599097e-4,-3.732108474951415e-5,-1.9850017433876396e-9,-4.042199941499895e-4,-3.7305461211264305e-5,-1.9818909364028005e-9,-4.041759729458141e-4,-3.7371576180890595e-5,-1.995722476799383e-9,-4.040669367934563e-4,-3.749819781395151e-5,-2.023080949156707e-9,-4.038714430168704e-4,-3.764824543910441e-5,-2.0570719150784504e-9,-4.0358723837979936e-4,-3.777652245214125e-5,-2.088652532821821e-9,-4.0323392522940814e-4,-3.784066890271968e-5,-2.108786263221883e-9,-4.028499668827034e-4,-3.7812733764463005e-5,-2.110917795052249e-9,-4.024839213955273e-4,-3.768809159565209e-5,-2.0930452841422504e-9,-4.0218154105103323e-4,-3.748838143603014e-5,-2.0586134771402745e-9,-4.0197245691300375e-4,-3.7256296497542606e-5,-2.0156987881971886e-9,-4.0186148165965595e-4,-3.7042976733979594e-5,-1.974586200188155e-9,-4.018283808339541e-4,-3.6892494178303976e-5,-1.944623987475064e-9,-4.0183608868270894e-4,-3.6829760565161567e-5,-1.9316327261505804e-9,-4.0184323029191903e-4,-3.685629057238657e-5,-1.9367984159228025e-9,-4.0181540972463755e-4,-3.6953941902521246e-5,-1.9571606390107712e-9,-4.0173160962337696e-4,-3.7093205760581396e-5,-1.9871078224997477e-9,-4.015852743493223e-4,-3.724183204408453e-5,-2.0200937211791826e-9,-4.013819118193629e-4,-3.737112093517171e-5,-2.0500268935527753e-9,-4.0113546642722405e-4,-3.745934046666174e-5,-2.072145790532876e-9,-4.008649162475529e-4,-3.749303145455463e-5,-2.0834320591036338e-9,-4.005915876567197e-4,-3.746722429672266e-5,-2.0827005722215756e-9,-4.00337051736825e-4,-3.7385338843855984e-5,-2.0705219071079996e-9,-4.0012112723467486e-4,-3.725911600757237e-5,-2.0491068141487655e-9,-3.9995945006566694e-4,-3.710838880148392e-5,-2.02219878218256e-9,-3.9986036290861937e-4,-3.696000071532959e-5,-1.9948926212214277e-9,-3.9982147601925637e-4,-3.684496081292581e-5,-1.9731958999948373e-9,-3.998270224104261e-4,-3.6793151712941985e-5,-1.9631309255681626e-9,-3.9984782850540707e-4,-3.6825820017548094e-5,-1.9693326621769157e-9,-3.9984567314217234e-4,-3.6947721487253395e-5,-1.9934475370821446e-9,-3.997823060669654e-4,-3.714229558595796e-5,-2.0329994613703186e-9,-3.996308094008664e-4,-3.7373115060623765e-5,-2.0814266273117242e-9,-3.99384988712439e-4,-3.759249203934011e-5,-2.1295566994293455e-9,-3.9906271036433164e-4,-3.775472405457742e-5,-2.1681019565900638e-9,-3.987016202917927e-4,-3.7829193936713294e-5,-2.190272534708571e-9,-3.9834887836798216e-4,-3.780875269054671e-5,-2.193608295241445e-9,-3.980485538263064e-4,-3.7711034648837475e-5,-2.1805271009791155e-9,-3.978305141809676e-4,-3.75729460791574e-5,-2.157555028882998e-9,-3.9770366530245046e-4,-3.744037328616604e-5,-2.1335311050243456e-9,-3.9765504299890545e-4,-3.735613027207092e-5,-2.1172878104897155e-9,-3.976546923721489e-4,-3.7349520461290274e-5,-2.1154458093897077e-9,-3.976645841027215e-4,-3.7430385886824955e-5,-2.1309453027747796e-9,-3.9764857481630915e-4,-3.7588969553787584e-5,-2.16269710822895e-9,-3.975803240688057e-4,-3.78008285196242e-5,-2.206328545718188e-9,-3.9744725472712117e-4,-3.8034406317778884e-5,-2.2556260006985536e-9,-3.972504331599879e-4,-3.825848207709496e-5,-2.304116143937135e-9,-3.970016678082849e-4,-3.8447576129588216e-5,-2.346328968114079e-9,-3.967195597523896e-4,-3.85847761019194e-5,-2.378535140950185e-9,-3.9642580202908984e-4,-3.8662499543895226e-5,-2.3989805580658325e-9,-3.9614227617272086e-4,-3.8682093918056946e-5,-2.407778956750608e-9,-3.9588887819566896e-4,-3.865305185717903e-5,-2.406662527805749e-9,-3.9568165300506234e-4,-3.8592229765188354e-5,-2.3987512411946675e-9,-3.9553072846361295e-4,-3.852295871827556e-5,-2.3883867003944353e-9,-3.9543774790634314e-4,-3.847345808670505e-5,-2.3809297326839213e-9,-3.9539305003282924e-4,-3.847364136251777e-5,-2.382287114028292e-9,-3.9537371824626544e-4,-3.854948972135635e-5,-2.397910865159832e-9,-3.9534454501332527e-4,-3.8715107497318946e-5,-2.4312142198376576e-9,-3.952641095528031e-4,-3.896460770802551e-5,-2.4818178598376683e-9,-3.9509636929992376e-4,-3.9268210077471814e-5,-2.5445577437541576e-9,-3.9482433024793544e-4,-3.957704143478872e-5,-2.6102337078048142e-9,-3.944590437311957e-4,-3.983728465279895e-5,-2.66827632892777e-9,-3.9403811672779804e-4,-4.000826568398732e-5,-2.7102607573795425e-9,-3.936136334447647e-4,-4.007582516475161e-5,-2.732568246881595e-9,-3.932354489171214e-4,-4.005509986930359e-5,-2.7370829288428234e-9,-3.9293735005261444e-4,-3.9983124149450465e-5,-2.730028550413103e-9,-3.927304162113228e-4,-3.990616554842289e-5,-2.7198283129693987e-9,-3.926037104670152e-4,-3.986712394333029e-5,-2.7148744382944538e-9,-3.925300340245018e-4,-3.989630581245046e-5,-2.721726552456415e-9,-3.924740322961887e-4,-4.000673567964125e-5,-2.7439566656949624e-9,-3.9240044960224226e-4,-4.0193797020507027e-5,-2.781711773518208e-9,-3.9228100027058804e-4,-4.043835453992976e-5,-2.8319939335662753e-9,-3.920988397429943e-4,-4.071220949346134e-5,-2.8895632795737313e-9,-3.918501286346216e-4,-4.098447018044798e-5,-2.9482215655903276e-9,-3.915428759247042e-4,-4.1227354423628e-5,-3.002126932202798e-9,-3.911938860598323e-4,-4.142035578932055e-5,-3.0468184632871506e-9,-3.908248865257149e-4,-4.1552391217979064e-5,-3.079773043002786e-9,-3.904587877773441e-4,-4.162213920665322e-5,-3.100490246668063e-9,-3.901166540589265e-4,-4.163716629526032e-5,-3.1102498369570066e-9,-3.898154596295406e-4,-4.1612528206521545e-5,-3.1117545046976984e-9,-3.895663343014008e-4,-4.15692477287104e-5,-3.108816873159751e-9,-3.893729274795302e-4,-4.1532643167673676e-5,-3.106122424164249e-9,-3.8922964958095066e-4,-4.1530120920376783e-5,-3.108959796232942e-9,-3.8911993547672825e-4,-4.158773400879558e-5,-3.1226873440949273e-9,-3.890154780111431e-4,-4.172477613316137e-5,-3.1516937951170783e-9,-3.8887832398421657e-4,-4.1946490302301866e-5,-3.1978260954989524e-9,-3.8866798799491536e-4,-4.2236923527193535e-5,-3.2587392014650204e-9,-3.883541075724722e-4,-4.255643026767475e-5,-3.3271796700881e-9,-3.879309179981178e-4,-4.2848970224092304e-5,-3.3923178303223024e-9,-3.874252936797595e-4,-4.3060086306725585e-5,-3.4432808142227515e-9,-3.8689085406422015e-4,-4.315822428367038e-5,-3.473343383367832e-9,-3.863889877673784e-4,-4.3147231358598694e-5,-3.4823712443678767e-9,-3.859670303418556e-4,-4.306282988945449e-5,-3.476235200012914e-9,-3.856450179732965e-4,-4.29567332020061e-5,-3.4640108169692097e-9,-3.8541502948697586e-4,-4.287851646215824e-5,-3.4548315486565543e-9,-3.852493149355605e-4,-4.2863147399264384e-5,-3.4556957290431317e-9,-3.851111325842977e-4,-4.2926194690833945e-5,-3.4704676625369628e-9,-3.849641750666217e-4,-4.306488479653104e-5,-3.4997555963823663e-9,-3.8477904449105344e-4,-4.326230537360815e-5,-3.541315667419064e-9,-3.845368505256895e-4,-4.349269606106779e-5,-3.5907716079917845e-9,-3.842305470775176e-4,-4.372677264988809e-5,-3.6425556238611925e-9,-3.838644713396162e-4,-4.393662457551494e-5,-3.690971057311515e-9,-3.834524001017426e-4,-4.4099766813166904e-5,-3.731195660582228e-9,-3.8301455462920074e-4,-4.4201952462350065e-5,-3.760022682061001e-9,-3.8257407697839317e-4,-4.42385677285092e-5,-3.776219192075404e-9,-3.821534971407641e-4,-4.42146190699868e-5,-3.78049345493217e-9,-3.8177167811354886e-4,-4.414353188785048e-5,-3.775176115440497e-9,-3.814415037458072e-4,-4.404520966037506e-5,-3.763795599090132e-9,-3.811682438952999e-4,-4.3943745048884684e-5,-3.750686091708826e-9,-3.8094841874788385e-4,-4.3864881721126706e-5,-3.740645067077998e-9,-3.807690606418496e-4,-4.383310219135978e-5,-3.738542478624394e-9,-3.8060747113549404e-4,-4.3868015094879415e-5,-3.7487069852998005e-9,-3.8043212896826716e-4,-4.397964230952124e-5,-3.77392849591353e-9,-3.8020614214202126e-4,-4.416283549922484e-5,-3.814126337469046e-9,-3.7989477348660916e-4,-4.43925934432593e-5,-3.8651369785543476e-9,-3.7947723172862823e-4,-4.462397219530305e-5,-3.918497560033356e-9,-3.789593875598948e-4,-4.4800964639163135e-5,-3.96317158934382e-9,-3.783796554624242e-4,-4.487522211492297e-5,-3.989310173516736e-9,-3.7780028171270733e-4,-4.482731494297352e-5,-3.992457390009027e-9,-3.772848187336151e-4,-4.4677289049787794e-5,-3.975587279866091e-9,-3.768738589342568e-4,-4.4476302813578715e-5,-3.947557776892742e-9,-3.765731596693725e-4,-4.4284647088400656e-5,-3.919157973229763e-9,-3.763583684669076e-4,-4.415011216339383e-5,-3.8993178944763496e-9,-3.7618935482083637e-4,-4.409689236608701e-5,-3.893153730927883e-9,-3.760245905568384e-4,-4.412564418670974e-5,-3.901816527226052e-9,-3.758305281239963e-4,-4.4219737409461237e-5,-3.923290331122069e-9,-3.755856622553639e-4,-4.435289044370741e-5,-3.953443754350989e-9,-3.752809867131644e-4,-4.449563849145108e-5,-3.987032034029203e-9,-3.749186681115099e-4,-4.462002058569582e-5,-4.018598786101294e-9,-3.745100126286204e-4,-4.4702883418774216e-5,-4.043293546650498e-9,-3.740730272909859e-4,-4.472824114947566e-5,-4.057558558959361e-9,-3.736296275242296e-4,-4.4688796131403827e-5,-4.059581153155581e-9,-3.732025909944763e-4,-4.4586579231906474e-5,-4.049448013925343e-9,-3.7281240901532864e-4,-4.4432606619089756e-5,-4.029008414573869e-9,-3.724743361521061e-4,-4.4245446122239154e-5,-4.001513612609417e-9,-3.7219604683176886e-4,-4.404881315412431e-5,-3.971147889469539e-9,-3.719761559946201e-4,-4.386851506422404e-5,-3.942550572712875e-9,-3.718036869016746e-4,-4.3729011292962504e-5,-3.920339561133363e-9,-3.716585476438696e-4,-4.364979112255484e-5,-3.908574248164302e-9,-3.715130942800803e-4,-4.364173138022532e-5,-3.910078188684471e-9,-3.713350457921283e-4,-4.370352841575415e-5,-3.925586069346227e-9,-3.7109238380513845e-4,-4.3818651024463044e-5,-3.9528488394828995e-9,-3.707607845405598e-4,-4.395425389302266e-5,-3.986112633364346e-9,-3.7033298488081413e-4,-4.406449097933762e-5,-4.01659369367896e-9,-3.698271408886742e-4,-4.4100617660546984e-5,-4.034478858226037e-9,-3.6928850300559833e-4,-4.402761136944001e-5,-4.032309510928544e-9,-3.6877886950402043e-4,-4.3841161627626426e-5,-4.008397336623387e-9,-3.68354844176475e-4,-4.3574127073054776e-5,-3.9681227490621515e-9,-3.680456442399449e-4,-4.328536888044946e-5,-3.921896540270247e-9,-3.678438514995482e-4,-4.303605390842075e-5,-3.88088052714649e-9,-3.6771344272492777e-4,-4.286765668321312e-5,-3.853066475373028e-9,-3.6760744211130974e-4,-4.279271827029995e-5,-3.841571155142976e-9,-3.6748400287878505e-4,-4.279868404809011e-5,-3.845110101089603e-9,-3.6731503805980255e-4,-4.2858040425471004e-5,-3.859505188909107e-9,-3.670878782353395e-4,-4.293828963274571e-5,-3.879232548481663e-9,-3.668030259099282e-4,-4.300887457302174e-5,-3.8986149146387406e-9,-3.664707239972699e-4,-4.304497730933188e-5,-3.912649349560868e-9,-3.6610775839668016e-4,-4.302929792015812e-5,-3.917575783781463e-9,-3.657347454762509e-4,-4.295287241734541e-5,-3.911245377621743e-9,-3.653736412651876e-4,-4.2815417391808795e-5,-3.893281236926014e-9,-3.650452228879931e-4,-4.2625259277326516e-5,-3.865029786249455e-9,-3.6476641984123815e-4,-4.239866016669585e-5,-3.8293301914713776e-9,-3.645476115673927e-4,-4.215819173345968e-5,-3.790137077788593e-9,-3.643903517009124e-4,-4.192994909126311e-5,-3.752032661708107e-9,-3.642861036996599e-4,-4.173977362622034e-5,-3.71966635491313e-9,-3.642164327955368e-4,-4.160892942215545e-5,-3.697132215015159e-9,-3.641549093482707e-4,-4.1549858066543754e-5,-3.6872863278909777e-9,-3.6407072313266787e-4,-4.1562773802817286e-5,-3.6910546876715064e-9,-3.639337297548633e-4,-4.1633785245227165e-5,-3.706842402789998e-9,-3.637205402382895e-4,-4.17351263688552e-5,-3.730239026226662e-9,-3.634210733541716e-4,-4.182826882524199e-5,-3.7543125950062615e-9,-3.6304426985984744e-4,-4.187077889867399e-5,-3.770791848359487e-9,-3.626205679360432e-4,-4.1827023967553126e-5,-3.772195287003563e-9,-3.621980590998262e-4,-4.168082324199709e-5,-3.754465893092228e-9,-3.6183040236259707e-4,-4.144515737090433e-5,-3.719051514202747e-9,-3.615588707716338e-4,-4.1162290906568653e-5,-3.6731031521314867e-9,-3.61396538504054e-4,-4.089083947416614e-5,-3.627175685529882e-9,-3.6132387086853867e-4,-4.0684523717909506e-5,-3.5913642442355727e-9,-3.612984871112935e-4,-4.057381858184938e-5,-3.57191628278744e-9,-3.6127263538453984e-4,-4.0559572504084276e-5,-3.5699106570700582e-9,-3.6120844626298833e-4,-4.061897653845609e-5,-3.5820719173724824e-9,-3.610852118619653e-4,-4.0717434213808e-5,-3.6026558942381903e-9,-3.608991626924136e-4,-4.0819528038116416e-5,-3.625305177385425e-9,-3.6065929725962267e-4,-4.0895889554540754e-5,-3.644354040211268e-9,-3.6038248887045136e-4,-4.092611299111932e-5,-3.6555594903413846e-9,-3.6008948797461456e-4,-4.089924983103489e-5,-3.6564197922185135e-9,-3.598020583044798e-4,-4.0813324951301555e-5,-3.6462285238279096e-9,-3.5954081132138837e-4,-4.06746448702424e-5,-3.625955167087689e-9,-3.593232203764928e-4,-4.049706401005377e-5,-3.5980159849031315e-9,-3.591614767911618e-4,-4.030096233320472e-5,-3.5659792059672047e-9,-3.5906017581369425e-4,-4.011143008152642e-5,-3.5342021902016163e-9,-3.590142746293756e-4,-3.9955202075565014e-5,-3.5073577657903728e-9,-3.5900813493897933e-4,-3.9856294031816824e-5,-3.4898049410216977e-9,-3.590165228657977e-4,-3.9830885148132995e-5,-3.484809323888809e-9,-3.5900811619758537e-4,-3.988259608517585e-5,-3.4937187933879266e-9,-3.589513508368191e-4,-3.9999692692636196e-5,-3.515316951993148e-9,-3.588215300116031e-4,-4.015553409221791e-5,-3.5456245459726613e-9,-3.586074994236263e-4,-4.031277515563591e-5,-3.578347724118303e-9,-3.5831611404968134e-4,-4.0430887172238557e-5,-3.6060328154525907e-9,-3.5797300106842354e-4,-4.0475752013014714e-5,-3.621798180660383e-9,-3.5761860209188446e-4,-4.0429328523306393E-05,-3.6212892232579545e-9,-3.572993273213688e-4,-4.029669010026284e-5,-3.604282007806e-9,-3.5705516107877836e-4,-4.01074134564653e-5,-3.575261109336151e-9,-3.56907171864305e-4,-3.990910227757714e-5,-3.542466178765705e-9,-3.5685000952815797e-4,-3.975360446642084e-5,-3.51546370509442e-9,-3.568535768631939e-4,-3.968060851260814e-5,-3.502095452651505e-9,-3.568738387353768e-4,-3.9705767185260144e-5,-3.506123139270059e-9,-3.568676969066613e-4,-3.981847075560239e-5,-3.526548679024781e-9,-3.568050583051709e-4,-3.9988930782059254e-5,-3.558632436406407e-9,-3.56673931076042e-4,-4.017965642244248e-5,-3.595815124716367e-9,-3.564788653472729e-4,-4.035578451744323e-5,-3.631596410599711e-9,-3.562358193015023e-4,-4.049130472750036e-5,-3.6608170038248088e-9,-3.5596655047241536e-4,-4.057119598922274e-5,-3.6802591959901357e-9,-3.556941971200325e-4,-4.059099060777297e-5,-3.688733399766354e-9,-3.554403466676326e-4,-4.055530827745248e-5,-3.6868596918516015e-9,-3.552231502274103e-4,-4.047630480756108e-5,-3.6767210257453985e-9,-3.550558309426621e-4,-4.0372330118324426e-5,-3.6615103358701634e-9,-3.549450842029947e-4,-4.0266541812810685e-5,-3.6452166207126978e-9,-3.5488926874896996e-4,-4.018488717008979e-5,-3.6323023478007748e-9,-3.5487679855453013e-4,-4.0152863925988295e-5,-3.6272565039705226e-9,-3.5488564634128154e-4,-4.019082120417089e-5,-3.6339063053833576e-9,-3.548851821818268e-4,-4.030831790087331e-5,-3.6544836887830023e-9,-3.548412788564619e-4,-4.049915486044093e-5,-3.6886696467672877e-9,-3.547243771613122e-4,-4.073952000048624e-5,-3.733057102710848e-9,-3.5451840841679887e-4,-4.0991294984085655e-5,-3.781467494098887e-9,-3.5422725173712733e-4,-4.121070540757682e-5,-3.826258266543762e-9,-3.538757710829669e-4,-4.136004087638724e-5,-3.8603033376723175e-9,-3.53504443877645e-4,-4.1418554823238366e-5,-3.879000807542093e-9,-3.5315908496719346e-4,-4.1388813578662445e-5,-3.881636157749867e-9,-3.528788443462086e-4,-4.1296476166252965e-5,-3.871679975513234e-9,-3.5268596813342254e-4,-4.118364620333568e-5,-3.855939529728651e-9,-3.525801622010045e-4,-4.109766926615156e-5,-3.84277572321506e-9,-3.5253922633776333e-4,-4.107846753507557e-5,-3.839853266345332e-9,-3.5252589900936437e-4,-4.1148172477191464e-5,-3.852089139473279e-9,-3.5249873593641004e-4,-4.130635182893659e-5,-3.880468677924388e-9,-3.524232758040045e-4,-4.153215835850133e-5,-3.922098707575269e-9,-3.5227977421103506e-4,-4.179200475176239e-5,-3.971370515911904e-9,-3.5206553777650213e-4,-4.2049383308559924e-5,-4.02168889154195e-9,-3.517923456022032e-4,-4.22732706596802e-5,-4.067108127961648e-9,-3.5148116482799436e-4,-4.2443054420599876e-5,-4.103423630040207e-9,-3.5115656427665365e-4,-4.254990072284108e-5,-4.128602719456839e-9,-3.508422977149487e-4,-4.259571927212223e-5,-4.1426852963775e-9,-3.505584283820493e-4,-4.2591075740938084e-5,-4.1473814440995675e-9,-3.503196597354921e-4,-4.2553010117369735e-5,-4.145588069811775e-9,-3.5013425081355416e-4,-4.250315194947812e-5,-4.140977734111264e-9,-3.5000296732766683e-4,-4.246594915992028e-5,-4.1376949637137355e-9,-3.4991789475969336e-4,-4.2466442610266224e-5,-4.140069290235601e-9,-3.4986146693382345e-4,-4.252696515740907e-5,-4.152177172551735e-9,-3.498066307483597e-4,-4.266243723623054e-5,-4.177099698568324e-9,-3.497195305195477e-4,-4.287472041112924e-5,-4.215884841538455e-9,-3.495659175480646e-4,-4.31478811621325e-5,-4.266536865943841e-9,-3.4932096349046604e-4,-4.3447520413318964e-5,-4.323660910585198e-9,-3.4897946134101256e-4,-4.372699512012349e-5,-4.379354851830018e-9,-3.4856132871286715e-4,-4.394038767390347e-5,-4.425380590164783e-9,-3.481082489458901e-4,-4.4057719624662955e-5,-4.455829749739181e-9,-3.4767160295073125e-4,-4.407548988414973e-5,-4.469069235668393e-9,-3.4729671592580966e-4,-4.401761276765464e-5,-4.468122927844235e-9,-3.470101043459885e-4,-4.392694681445468e-5,-4.459514042827404e-9,-3.4681399513372885e-4,-4.3851866775344917e-5,-4.4512484058967996e-9,-3.466884675872167e-4,-4.383320048423082e-5,-4.450711814114548e-9,-3.465989335162038e-4,-4.3895141685846634e-5,-4.463003731704032e-9,-3.4650592936654275e-4,-4.404155435899953e-5,-4.4899789588464385e-9,-3.4637451628011674e-4,-4.425746261242522e-5,-4.53010146035591e-9,-3.46181278482088e-4,-4.451449326164072e-5,-4.579071229769213e-9,-3.459177599712526e-4,-4.477844122387709e-5,-4.631023039653653e-9,-3.4559013570456575e-4,-4.501691233562397e-5,-4.679952084717743e-9,-3.452158716119919e-4,-4.520525913805162e-5,-4.720973867124305e-9,-3.4481879495999203e-4,-4.532981541959789e-5,-4.7511223937350465e-9,-3.4442408015957925e-4,-4.538843813449534e-5,-4.769589480143558e-9,-3.440542089166945e-4,-4.5389084894805184e-5,-4.7774936884748956e-9,-3.437263070319252e-4,-4.534740102436488e-5,-4.77738576894948e-9,-3.4345067735983324e-4,-4.5284143124787143e-5,-4.772713716467364e-9,-3.4323003778487113e-4,-4.5222842054429787e-5,-4.76739691027074e-9,-3.4305901194424496e-4,-4.518761784714889e-5,-4.765524511352927e-9,-3.429236989818069e-4,-4.52007347246193e-5,-4.771068404277782e-9,-3.428015696217947e-4,-4.5279382227483e-5,-4.787430575127021e-9,-3.426625060919474e-4,-4.543136538951815e-5,-4.8166784633623644E-09,-3.424723163020663e-4,-4.565015092623224e-5,-4.858517932523486e-9,-3.4219991287895055e-4,-4.591113849483137e-5,-4.9093917591879784e-9,-3.418278103507178e-4,-4.6172490727433865e-5,-4.962406765475092e-9,-3.413624942079579e-4,-4.6383736833411844e-5,-5.008742784565768e-9,-3.408383536332906e-4,-4.650185695871724e-5,-5.040476506469633e-9,-3.4030994982600497e-4,-4.650853684917004e-5,-5.053640312983224e-9,-3.398339484712107e-4,-4.641889431496161e-5,-5.0498114969366615e-9,-3.394494690556336e-4,-4.627597601679743e-5,-5.03533340901495e-9,-3.3916682212753793e-4,-4.6134299214963423e-5,-5.018789578479401e-9,-3.389684970747851e-4,-4.60416761329767e-5,-5.0082068715226695e-9,-3.388189563580666e-4,-4.602714616208865e-5,-5.009119290870518e-9,-3.386770001401216e-4,-4.609734320211425e-5,-5.023773996416256e-9,-3.385060967047203e-4,-4.623938128036451e-5,-5.051224680335727e-9,-3.382808819877009e-4,-4.642712042057251e-5,-5.0879722483668916e-9,-3.3798991630609986e-4,-4.662831095629719e-5,-5.128915587919849e-9,-3.3763548039858775e-4,-4.6811176467318076e-5,-5.16845422831316e-9,-3.3723121913479214e-4,-4.694969103565298e-5,-5.201576989894772e-9,-3.367983998553216e-4,-4.7027084779648636e-5,-5.224733145745607e-9,-3.3636159656376993e-4,-4.703738149569362e-5,-5.236319126134027e-9,-3.359445418555763e-4,-4.698513068870385e-5,-5.236724866703748e-9,-3.3556670577894265e-4,-4.688372871358966e-5,-5.228009274195705e-9,-3.3524095168534554e-4,-4.675286146676685e-5,-5.213367901026198e-9,-3.3497229454820115e-4,-4.661567260074138e-5,-5.196589566113095e-9,-3.3475746495397114e-4,-4.6496053972731513e-5,-5.181629379466889e-9,-3.3458496403935856e-4,-4.6416067332450106e-5,-5.172290074158099e-9,-3.3443550989848553e-4,-4.639329367171046e-5,-5.171902756508261e-9,-3.3428303229029717e-4,-4.64378573046309e-5,-5.182859497219969e-9,-3.3409679136510515e-4,-4.654895942300463e-5,-5.205901867299847e-9,-3.3384565314112754e-4,-4.671137333713532e-5,-5.2392644177281354e-9,-3.3350538321036714e-4,-4.689360879171389e-5,-5.278078891925973e-9,-3.330683964243518e-4,-4.705068211910057e-5,-5.314688239576653e-9,-3.3255256023083976e-4,-4.713428191609814e-5,-5.340419822664278e-9,-3.320027438393118e-4,-4.71097541805525e-5,-5.3486420687704235e-9,-3.314797357602177e-4,-4.6972927801329136e-5,-5.337761831657595e-9,-3.3103860655846234e-4,-4.67558263411006e-5,-5.312260680512601e-9,-3.307076685003807e-4,-4.651535747158061e-5,-5.28090259224886e-9,-3.30480214378984e-4,-4.6310845214460665e-5,-5.2532057684234896e-9,-3.303220348953695e-4,-4.618357322333606e-5,-5.236272390095169e-9,-3.301874844254908e-4,-4.61477186883596e-5,-5.233313814606197e-9,-3.3003452239918076e-4,-4.619282888887948e-5,-5.243799607308075e-9,-3.2983367667361197e-4,-4.6292393090905275e-5,-5.264447531098321e-9,-3.2957087722242947e-4,-4.6413211027825386e-5,-5.2904004316313725e-9,-3.2924630863698787e-4,-4.652281087401979e-5,-5.316302669134748e-9,-3.288714144932077e-4,-4.659436358753661e-5,-5.337217434375077e-9,-3.284653025069503e-4,-4.6609576179093505e-5,-5.349376028202255e-9,-3.2805103471112654e-4,-4.656006986482792e-5,-5.35069069746132e-9,-3.2765205016821133e-4,-4.6447489372098676E-05,-5.340948027169847e-9,-3.2728894386480116e-4,-4.628254233746377e-5,-5.321669265696422e-9,-3.2697676918230653e-4,-4.608314579988514e-5,-5.295709141439522e-9,-3.2672307735294367e-4,-4.5871826451843845e-5,-5.266715731905392e-9,-3.265269163253492e-4,-4.567268490866273e-5,-5.238595811180517e-9,-3.263787833299249e-4,-4.5508326939279494e-5,-5.2150856928611045e-9,-3.262613612892449e-4,-4.5396953226487785e-5,-5.199410066665686e-9,-3.26150973687626e-4,-4.5349627530952965e-5,-5.193932690177878e-9,-3.2601983786595027e-4,-4.5367769831319596e-5,-5.1997081785981995e-9,-3.2583937029624085e-4,-4.544098475670977e-5,-5.215918457321146e-9,-3.2558503734766617e-4,-4.554569690961154e-5,-5.2393381578890325e-9,-3.252430307869566e-4,-4.5645933134909383e-5,-5.264196058241929e-9,-3.248178384294444e-4,-4.56983335628188e-5,-5.282923877448141e-9,-3.2433764411315686e-4,-4.566298738150629e-5,-5.288101154267343e-9,-3.238524934028116e-4,-4.55187894312056e-5,-5.275271384380036e-9,-3.2342122598822694e-4,-4.527677794176033e-5,-5.245365700942163e-9,-3.230898582700321e-4,-4.498163827286755e-5,-5.205044425823437e-9,-3.228725935037573e-4,-4.469651453348592e-5,-5.164266989512154e-9,-3.2274750094473347e-4,-4.4478159074842894e-5,-5.13235180184745e-9,-3.226689152698676e-4,-4.435700005748701e-5,-5.114830829337623e-9,-3.225871774071815e-4,-4.433186738587753e-5,-5.112508862693316e-9,-3.2246425807672813e-4,-4.437776497525427e-5,-5.1224162241922625e-9,-3.2228031504722966e-4,-4.445858657848031e-5,-5.139485592758135e-9,-3.2203286741891803e-4,-4.4538062588412724E-05,-5.1580709737048375e-9,-3.217324318411406e-4,-4.4586481028774453E-05,-5.173027330322962e-9,-3.213975733128406e-4,-4.458364652752997e-5,-5.180397855754135e-9,-3.210507152123642e-4,-4.451955192695055e-5,-5.177821168001773e-9,-3.20714821071863e-4,-4.43939735421001e-5,-5.164703758157465e-9,-3.2041064399458284e-4,-4.421548906702248e-5,-5.1421458139077516e-9,-3.2015437220027257e-4,-4.400000934734236e-5,-5.112638550353013e-9,-3.199556359923085e-4,-4.3768795235697604e-5,-5.079609309330488e-9,-3.1981598750983545e-4,-4.354585021416585e-5,-5.046904699548832e-9,-3.197281840014739e-4,-4.3354726543107915e-5,-5.018289250760496e-9,-3.196765829420705e-4,-4.321510531744181e-5,-4.997015044656991e-9,-3.1963870183165634e-4,-4.313959806056474e-5,-4.985452141399794e-9,-3.195878597550035e-4,-4.313112514042971e-5,-4.984725308729074e-9,-3.1949679113388595e-4,-4.318123126172128e-5,-4.994338339842217e-9,-3.1934206103072054e-4,-4.326970683766678e-5,-5.0118522340722995e-9,-3.191090769027233e-4,-4.336592775766331e-5,-5.032784985900198e-9,-3.1879727330728615e-4,-4.3432619842126424e-5,-5.0510003085641095e-9,-3.184242585414621e-4,-4.3432905625344e-5,-5.059844813029959e-9,-3.180265341602522e-4,-4.3340679734383175e-5,-5.054050804727019e-9,-3.1765375634226675e-4,-4.315212077889462e-5,-5.031931810784182e-9,-3.173550483018549e-4,-4.289299386726835e-5,-4.996837554368338e-9,-3.1716080997909414e-4,-4.261505262909454e-5,-4.9567039021442e-9,-3.170692069796597e-4,-4.237923706416617e-5,-4.921374850462595e-9,-3.170465026363197e-4,-4.223264659485568e-5,-4.898891858407981e-9,-3.170418960140496e-4,-4.21921256965402e-5,-4.892790866082162e-9,-3.1700761388347835e-4,-4.224278875220216e-5,-4.901672313350512e-9,-3.169131831034806e-4,-4.234911923149743e-5,-4.920678900423363e-9,-3.16749371627084e-4,-4.246978287171236e-5,-4.943593716023741e-9,-3.165243898644444e-4,-4.2568904032282556e-5,-4.964541739482594e-9,-3.1625720934575716e-4,-4.262161789567898e-5,-4.9789925323940574e-9,-3.159714090148497e-4,-4.2615163483100204e-5,-4.984192983307216e-9,-3.1569080936814757e-4,-4.254769010175503e-5,-4.979239205595006e-9,-3.154366980394452e-4,-4.242640923152246e-5,-4.964927408765917e-9,-3.1522594108550356e-4,-4.226576420878259e-5,-4.9434488536958256e-9,-3.150694594909588e-4,-4.2085617046374826e-5,-4.9179780034059015e-9,-3.1497088780468846e-4,-4.190919872197873e-5,-4.892216555795521e-9,-3.1492551795328115e-4,-4.1760510317359374e-5,-4.869937621819285e-9,-3.1491993926755705e-4,-4.166103135750512e-5,-4.85453930904946e-9,-3.1493292291119807e-4,-4.162602317937051e-5,-4.8486082924002386e-9,-3.149378852148921e-4,-4.166109759027768e-5,-4.853496717228234e-9,-3.149068763252208e-4,-4.1759869297922245e-5,-4.8689420569251265e-9,-3.1481563886056355e-4,-4.1903492821241635e-5,-4.892817724760096e-9,-3.146489018901334e-4,-4.206263788736928e-5,-4.921152563389806e-9,-3.1440486675449474e-4,-4.220199291018188e-5,-4.948556753677259e-9,-3.1409782736031844e-4,-4.2286972882281444e-5,-4.969141215356648e-9,-3.1375783301927705e-4,-4.229193221838251e-5,-4.9779020409811375e-9,-3.1342629281164673e-4,-4.2208473219180394e-5,-4.972322659694826e-9,-3.131469410284784e-4,-4.205134100763301e-5,-4.953675901336095e-9,-3.129532228356514e-4,-4.185850783786602e-5,-4.927339367737182e-9,-3.128559402293983e-4,-4.168268583803075e-5,-4.901590331357037e-9,-3.128372712174129e-4,-4.157504774094596e-5,-4.884996661975068e-9,-3.1285591758021213e-4,-4.1567376446027606e-5,-4.883435028626847e-9,-3.1286216261514294e-4,-4.166161325502891e-5,-4.898203035129861e-9,-3.128152510161355e-4,-4.1832011412133305e-5,-4.926093299613993e-9,-3.1269456478840265e-4,-4.2037319835952676e-5,-4.96108661782143e-9,-3.1250114325379443e-4,-4.2235381879465134e-5,-4.996540702951394e-9,-3.1225205877241923e-4,-4.239361488219513e-5,-5.026892948270938e-9,-3.119724750885652e-4,-4.249330688871886e-5,-5.048533140222312e-9,-3.116889276893549e-4,-4.252921835778996e-5,-5.059987008882629e-9,-3.1142503078342897e-4,-4.25069961860904e-5,-5.0616921955618265e-9,-3.111992283429283e-4,-4.244023805497469e-5,-5.055583300773006e-9,-3.1102368764590496e-4,-4.234797844643438e-5,-5.044617784933671e-9,-3.1090358734081304e-4,-4.22526006575234e-5,-5.032321067688745e-9,-3.108364399804756e-4,-4.217778740604939e-5,-5.022387283844178e-9,-3.108115257297438e-4,-4.214600986581236e-5,-5.018313830814128e-9,-3.1080993296466673e-4,-4.2175257475328325e-5,-5.023008475613783e-9,-3.1080593916080375e-4,-4.227521362395652e-5,-5.038322479284464e-9,-3.1077034837130563e-4,-4.244369565068855e-5,-5.06453984568056e-9,-3.1067585579162317e-4,-4.266468404943358e-5,-5.099969884051941e-9,-3.105035849258535e-4,-4.290936505875487e-5,-5.140877929168914e-9,-3.1024899896644803e-4,-4.314094465863473e-5,-5.181956628701638e-9,-3.0992505626402714e-4,-4.332264950955875e-5,-5.217361941575282e-9,-3.095610883380589e-4,-4.342700451466909e-5,-5.2421145403966415e-9,-3.091971222357173e-4,-4.3443817524911114e-5,-5.253502474396329e-9,-3.088746927985775e-4,-4.338445254519018e-5,-5.252067765269822e-9,-3.086262289687441e-4,-4.328075377912741e-5,-5.241813665026146e-9,-3.084657459880443e-4,-4.317815751980895e-5,-5.229427402694319e-9,-3.083838136062314e-4,-4.312402180818095e-5,-5.222569664693657e-9,-3.083492587428513e-4,-4.315408297432371e-5,-5.227650075739371e-9,-3.083181203766566e-4,-4.328165458806027e-5,-5.247856867561176e-9,-3.082471429138195e-4,-4.349411061585933e-5,-5.2822613795529054e-9,-3.081064848257633e-4,-4.375827146070421e-5,-5.3263709887758225e-9,-3.0788661043989416e-4,-4.403198008161343e-5,-5.373792020884821e-9,-3.0759759139367557e-4,-4.4276497491867025e-5,-5.418190385136207e-9,-3.072628362842785e-4,-4.4465056129220834e-5,-5.454790327401472e-9,-3.0691106900856074e-4,-4.458588788817899e-5,-5.481074258715986e-9,-3.0656967318466223e-4,-4.4640878311394534e-5,-5.496772186340735e-9,-3.0626062010192915e-4,-4.464213768265969e-5,-5.5034243148592386e-9,-3.0599865177202766e-4,-4.460833959835805e-5,-5.503787246380918e-9,-3.057908013060658e-4,-4.4561687503291136e-5,-5.501265100167681e-9,-3.0563641143263365e-4,-4.4525580714277986e-5,-5.4994619326435316e-9,-3.0552715792361276e-4,-4.4522582031122806e-5,-5.501861033144501e-9,-3.0544706109613843e-4,-4.457210286773981e-5,-5.511548919490009e-9,-0.00030537297561927964,-4.4687381552856436e-5,-5.5308628299553145e-9]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json new file mode 100644 index 0000000..2eec942 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":8000,"numberOfSamples":1000,"samples":[-3.0527640252829807e-4,-4.487182696660493e-5,-5.56088448082571e-9,-3.051274863200565e-4,-4.511556230951057e-5,-5.6008437940501195e-9,-3.049014822200931e-4,-4.5393887171247894e-5,-5.647698563779582e-9,-3.045865825423837e-4,-4.566978863347711e-5,-5.696284894052496e-9,-3.041902526794886e-4,-4.590165294193654e-5,-5.7403050551512475e-9,-3.0374053440293064e-4,-4.605480630272924e-5,-5.774008768966934e-9,-3.032803042778928e-4,-4.6112832816305496e-5,-5.793973590280497e-9,-3.028557483245855e-4,-4.608383761616052e-5,-5.800251345674449e-9,-3.025032355259023e-4,-4.599882516164128e-5,-5.796427523208801e-9,-3.022393949447573e-4,-4.5902896545994185e-5,-5.788631331365615e-9,-3.020574267495867e-4,-4.5842714571687194e-5,-5.7838921806700334e-9,-3.019300694661608e-4,-4.585434504667538e-5,-5.7883384069394884e-9,-3.0181769376023336e-4,-4.595468543172006e-5,-5.805682519418446e-9,-3.0167899235319e-4,-4.613834629665025e-5,-5.83635658405951e-9,-3.014813398322303e-4,-4.638044052124705e-5,-5.877534282545917e-9,-3.0120806044062887e-4,-4.664417952898078e-5,-5.924029708374941e-9,-3.008608032921932e-4,-4.689076983299546e-5,-5.969769115749644e-9,-3.004568895018775e-4,-4.70885065576558e-5,-6.009334760264992e-9,-3.000232042040917e-4,-4.7218579979817117e-5,-6.039104695872155e-9,-2.995891071912802e-4,-4.72766796425179e-5,-6.057736521969508e-9,-2.9918053358217385e-4,-4.7271135672653113e-5,-6.066024169441235e-9,-2.9881634126882297e-4,-4.721922325858296e-5,-6.066350982343671e-9,-2.9850682571005375e-4,-4.714317647578276e-5,-6.0620073426491385e-9,-2.982536857147729e-4,-4.706682514849363e-5,-6.056588919504954e-9,-2.9805063249734796e-4,-4.7013055973122464e-5,-6.053577596287479e-9,-2.978841024009395e-4,-4.700177778028711e-5,-6.0560846647952315e-9,-2.97733963612634e-4,-4.7047861809806975e-5,-6.066639640409404e-9,-2.975745746966664e-4,-4.715862391952254e-5,-6.086875521052076e-9,-2.9737697702912646e-4,-4.733079302488828e-5,-6.117026762619431e-9,-2.9711318240313096e-4,-4.754766231303244e-5,-6.1553289826818086e-9,-2.967630328757633e-4,-4.777820603997843e-5,-6.1976547684464505e-9,-2.963225516133362e-4,-4.7980702799556336e-5,-6.237878353608434e-9,-2.9581034269964766e-4,-4.8112531767448336e-5,-6.26929277722192e-9,-2.952671701271256e-4,-4.8144449769795835e-5,-6.286810452998715e-9,-2.9474584957997816e-4,-4.807330163392616e-5,-6.28897999422168e-9,-2.942942146728656e-4,-4.7925741507049555e-5,-6.278697823265868e-9,-2.939390776646052e-4,-4.774982986598883e-5,-6.2621933111198565e-9,-2.9367888471910724e-4,-4.759858957460034e-5,-6.246887112949443e-9,-2.9348722961036977e-4,-4.751366495959348e-5,-6.239195834786848e-9,-2.933236015115482e-4,-4.7515401306169104e-5,-6.243051945843658e-9,-2.9314581436119905e-4,-4.760093779409941e-5,-6.2593279168203955e-9,-2.9292007500896937e-4,-4.774844549298213e-5,-6.286013467788338e-9,-2.926269983387905e-4,-4.792463505513392e-5,-6.318926256564662e-9,-2.9226350769051096e-4,-4.80930810595307e-5,-6.352759512595941e-9,-2.918412941194005e-4,-4.822168516898902e-5,-6.382264012712696e-9,-2.9138274761924426e-4,-4.8288192173938596e-5,-6.4033284884177525e-9,-2.9091546827443674e-4,-4.828307144331461e-5,-6.4137142155758484e-9,-2.904666459630382e-4,-4.820960531850297e-5,-6.413290100567614e-9,-2.9005845372039675e-4,-4.808169188193544e-5,-6.403779607548024e-9,-2.897051121066428e-4,-4.7920298339887756e-5,-6.388175539851937e-9,-2.894117280467004e-4,-4.77495594070045e-5,-6.3700487926475646e-9,-2.891745460224369e-4,-4.7593309240161246e-5,-6.352958916462981e-9,-2.889819981834109e-4,-4.7472392700331755e-5,-6.340071065896678e-9,-2.8881605249833365e-4,-4.740260960082055e-5,-6.333942633116508e-9,-2.886536932128631e-4,-4.739292957383811e-5,-6.336355114475078e-9,-2.884687014832789e-4,-4.7443667570689896e-5,-6.348050662755428e-9,-2.8823427250380447e-4,-4.754452904089668e-5,-6.368308311532382e-9,-2.879272735231633e-4,-4.767303651414079e-5,-6.394467888137689e-9,-2.875345818250315e-4,-4.7794856179294424e-5,-6.4217381728864196e-9,-2.8706055734247936e-4,-4.786832012302628e-5,-6.443756519509059e-9,-2.865324198422822e-4,-4.785486234755549e-5,-6.4542037210419195e-9,-2.859983895327293e-4,-4.773390713864742e-5,-6.449179015088165e-9,-2.8551497623516194e-4,-4.7515537099475336e-5,-6.429222290163076e-9,-2.8512656698742036e-4,-4.724172825041583e-5,-6.399602792241161e-9,-2.8484791237568235e-4,-4.697228518879425e-5,-6.368414825098121e-9,-2.846599731981497e-4,-4.676227057336778e-5,-6.343524830079535e-9,-2.845204990113826e-4,-4.664360730421715e-5,-6.330077698450703e-9,-2.8438137789211793e-4,-4.661903031892221e-5,-6.32954910609419e-9,-2.842033332610527e-4,-4.666740117899054e-5,-6.340163616828402e-9,-2.8396352830062366e-4,-4.6754274987887116e-5,-6.357961127061933e-9,-2.836566692220362e-4,-4.684229725179311e-5,-6.377959739889069e-9,-2.8329216427076527e-4,-4.689886773239183e-5,-6.395189096969708e-9,-2.828896488527907e-4,-4.6900720390375284e-5,-6.405540596281919e-9,-2.824742018907562e-4,-4.6836037546351875e-5,-6.4064023526000905e-9,-2.8207178859335354e-4,-4.670471097933904e-5,-6.397002591025266e-9,-2.817052464373959e-4,-4.6517083949337426e-5,-6.378389721142845e-9,-2.8139115347079264e-4,-4.629149712487325e-5,-6.3530658178796655e-9,-2.811378256204399e-4,-4.605106192105769e-5,-6.324396845660935e-9,-2.8094456582733565e-4,-4.582011369839805e-5,-6.295969795469077e-9,-2.8080213121061873e-4,-4.562084808863251e-5,-6.271061910825657e-9,-2.806941282722342e-4,-4.547056083835451e-5,-6.252305778500468e-9,-2.805989529923734e-4,-4.537959014034061e-5,-6.241511789741509e-9,-2.80492067241958e-4,-4.5349843601162954e-5,-6.239532828776588e-9,-2.803485913613245e-4,-4.5373805665704785e-5,-6.246068068716576e-9,-2.8014639891832464e-4,-4.543399639996473e-5,-6.259380228216586e-9,-2.7987013346108646e-4,-4.550321157816095e-5,-6.276047783203556e-9,-2.795162996405821e-4,-4.5546626057891795e-5,-6.291045688354151e-9,-2.790984739623287e-4,-4.5527321372703615e-5,-6.298505516465384e-9,-2.7865004000894166e-4,-4.541620148794469e-5,-6.2933199008508685e-9,-2.7822043288384707e-4,-4.520484869900707e-5,-6.273276588202333e-9,-2.7786184532760936e-4,-4.4915535087074116e-5,-6.240723143326448e-9,-2.776091852793529e-4,-4.459975553570474e-5,-6.202458787212566e-9,-2.774638632702066e-4,-4.432123225548417e-5,-6.167368360824802e-9,-2.7739275622409024e-4,-4.41307893297388e-5,-6.142942429461774e-9,-2.7734363791847937e-4,-4.404793703195258e-5,-6.132712569902154e-9,-2.772666481119829e-4,-4.405873879426259e-5,-6.135803693451539e-9,-2.7712954630060494e-4,-4.41272344392883e-5,-6.148198003690473e-9,-2.769220926915838e-4,-4.421078330515423e-5,-6.164515668643785e-9,-2.7665243775120893e-4,-4.4271847046803456e-5,-6.179465722684056e-9,-2.7634044414996943e-4,-4.42840858576599e-5,-6.188763867311319e-9,-2.760112787880964e-4,-4.4233969441495255e-5,-6.1896325079837635e-9,-2.7569053678467995e-4,-4.4119908832911274e-5,-6.1810143630256235e-9,-2.7540081443001705e-4,-4.395037973603709e-5,-6.1635500652351195e-9,-2.7515925763830574e-4,-4.374163186724933e-5,-6.13931893200916e-9,-2.7497583229343773e-4,-4.351509382685275e-5,-6.1113765985356755e-9,-2.7485228599034487e-4,-4.3294504323835476e-5,-6.083191373407955e-9,-2.747818899337699e-4,-4.3102814240736015e-5,-6.0580978536060394e-9,-2.7475014030275356e-4,-4.2959058861573174e-5,-6.038863549547172e-9,-2.747364727847155e-4,-4.287561578709453e-5,-6.027414092691353e-9,-2.7471679197166814e-4,-4.2856211898555225e-5,-6.024680664675889e-9,-2.74666552518033e-4,-4.2894856634732136e-5,-6.0304870842090665e-9,-2.745641634544586e-4,-4.297583426922976e-5,-6.043429961128174e-9,-2.7439449831047824e-4,-4.307484329777695e-5,-6.060781782144661e-9,-2.7415239183585174e-4,-4.316139154284506e-5,-6.078538519547611e-9,-2.738458939963984e-4,-4.320289628151456e-5,-6.0918223659286445e-9,-2.7349833665268886e-4,-4.317111271140737e-5,-6.095829254040278e-9,-2.731473286401864e-4,-4.305077016877184e-5,-6.087300751131777e-9,-2.728384066406977e-4,-4.284850797286421e-5,-6.0661306830069746e-9,-2.726122464122091e-4,-4.2597682445614436e-5,-6.036317211131248e-9,-2.724883882208636e-4,-4.2353186226421395e-5,-6.005346149629137e-9,-2.724538993112942e-4,-4.21739660621937e-5,-5.981721324392774e-9,-2.7246601864680027e-4,-4.209994110375406e-5,-5.971667694606237e-9,-2.724694960632973e-4,-4.2136627145050584e-5,-5.976871636177898e-9,-2.724184831524113e-4,-4.225643997788255e-5,-5.9944559253544774e-9,-2.7229051896981396e-4,-4.241362759713718e-5,-6.018773549341146e-9,-2.720878961454436e-4,-4.2562043557314734e-5,-6.043635716054438e-9,-2.718303929497391e-4,-4.266714123706157e-5,-6.063913242192316e-9,-2.715458512132313e-4,-4.271024379125761e-5,-6.076285881259704e-9,-2.712626659453091e-4,-4.268748746246162e-5,-6.07938776767281e-9,-2.710052329722968e-4,-4.260653559518088e-5,-6.073631332430156e-9,-2.707916949070718e-4,-4.248307887576607e-5,-6.060863861100873e-9,-2.7063291676093104e-4,-4.233782096456377e-5,-6.043919283576518e-9,-2.70531999054325e-4,-4.2193858972839276e-5,-6.026112658845783e-9,-2.7048412159524855e-4,-4.207417276834723e-5,-6.010749252660998e-9,-2.704768085276078e-4,-4.199898085891688e-5,-6.0007083249929064e-9,-2.7049091718653486e-4,-4.198292846456885e-5,-5.998122765150181e-9,-2.705026716692996e-4,-4.203245930769175e-5,-6.0041500657964715e-9,-2.704867786001442e-4,-4.2143960157053555e-5,-6.018813110137525e-9,-2.7042033326989443e-4,-4.2303217237346e-5,-6.0408918160634616e-9,-2.702869966792254e-4,-4.248659500899885e-5,-6.067897441023674e-9,-2.7008072908028737e-4,-4.26641123975258e-5,-6.096212887106141e-9,-2.698083301299173e-4,-4.2804202514864496e-5,-6.121495193355481e-9,-2.6949017078992116e-4,-4.287971029548579e-5,-6.139410707238995e-9,-2.6915846953213103e-4,-4.287457712691834e-5,-6.146692366322419e-9,-2.688523188530164e-4,-4.2790136468926805e-5,-6.142330933965789e-9,-2.6860905054935876e-4,-4.2648942394378234e-5,-6.128480097984698e-9,-2.684529386021688e-4,-4.249325511328419e-5,-6.110525799006696e-9,-2.683846561272461e-4,-4.237577162193681e-5,-6.0958916495610374e-9,-2.6837713845480256e-4,-4.2343242447415576e-5,-6.091676533973367e-9,-2.6838259865424467e-4,-4.241897119821026e-5,-6.1020278393601044e-9,-2.6834954243159544e-4,-4.259356052706968e-5,-6.126618946744287e-9,-2.682414538672124e-4,-4.282968580925502e-5,-6.161071746178656e-9,-2.680473788683876e-4,-4.307777590451198e-5,-6.198928228542621e-9,-2.6778068952418554e-4,-4.329323584064263e-5,-6.233932842908828e-9,-2.6746984498891765e-4,-4.3447294758245534e-5,-6.261585257801009e-9,-2.6714767994234935e-4,-4.3529579126087075e-5,-6.279696539448954e-9,-2.6684354540698494e-4,-4.3545106782298875e-5,-6.288235271926127e-9,-2.6657927046700944e-4,-4.3509317188260445e-5,-6.288838671033637e-9,-2.6636794026195363e-4,-4.3443465401146905e-5,-6.284232359286678e-9,-2.662140688653375e-4,-4.33711394559145e-5,-6.277670357631493e-9,-2.661141777281877e-4,-4.331570058397092e-5,-6.272450417208355e-9,-2.660574130223562e-4,-4.329813146063895e-5,-6.271533343649169e-9,-2.6602631028516745e-4,-4.3334832510506525e-5,-6.277259574999488e-9,-2.6599810856047266e-4,-4.3435186752350394e-5,-6.291119283070944e-9,-2.6594709819864e-4,-4.35991710667151e-5,-6.313534449691571e-9,-2.6584826187483416e-4,-4.3815728146144786e-5,-6.3436577175095264e-9,-2.6568197080015167e-4,-4.406282185693006e-5,-6.379260979809167e-9,-2.654388737832523e-4,-4.4309976961368614e-5,-6.416844899921613e-9,-2.651235904796523e-4,-4.452352360454744e-5,-6.45208973946681e-9,-2.6475574490715504e-4,-4.467379291793127e-5,-6.480660100582804e-9,-2.643674413816663e-4,-4.474263772198858e-5,-6.499235785255884e-9,-2.639972203386808e-4,-4.472932230357101e-5,-6.506524425656316e-9,-2.636814333534693e-4,-4.4652981742684745e-5,-6.50394943475184e-9,-2.6344474410546685e-4,-4.455031096217054e-5,-6.4957052750673075e-9,-2.6329215242018296e-4,-4.446797824163044e-5,-6.487971527226249e-9,-2.6320539661309406e-4,-4.445066132419316e-5,-6.487318143828218e-9,-2.63146231141766e-4,-4.452761326611089e-5,-6.498693327228091e-9,-2.630670795117471e-4,-4.4702593314460794e-5,-6.523735117410233e-9,-2.629259962418986e-4,-4.495205403355389e-5,-6.560195481816707e-9,-2.626998326199566e-4,-4.523322969000845e-5,-6.6028055138425835e-9,-2.6238984542081514e-4,-4.5498615964264204e-5,-6.645151128486782e-9,-2.620181139265042e-4,-4.57101034480172e-5,-6.681643636040315e-9,-2.6161796896905014e-4,-4.584720776675456e-5,-6.7088001834994565e-9,-2.6122365300701173e-4,-4.590801043953323e-5,-6.725594759670876e-9,-2.608629732320002e-4,-4.590508421570969e-5,-6.733110680725014e-9,-2.605538971319134e-4,-4.585973386898697e-5,-6.733869753505527e-9,-2.6030410219870376e-4,-4.5796853823059685e-5,-6.731122265893311e-9,-2.601120119629486e-4,-4.574121346938611e-5,-6.728248726724007e-9,-2.5996821459528486e-4,-4.571499884470834e-5,-6.728333811525041e-9,-2.5985675252670267e-4,-4.573601546615178e-5,-6.733900781581118e-9,-2.597563470776258e-4,-4.581593891770877e-5,-6.7467347208660815e-9,-2.596420276961034e-4,-4.5958327928148174e-5,-6.76770494879153e-9,-2.594877524327709e-4,-4.6156630892450285e-5,-6.796534200413236e-9,-2.5927042693107434e-4,-4.6392942692009576e-5,-6.8315565589601714e-9,-2.589751849875842e-4,-4.663871238482509e-5,-6.86962752289666e-9,-2.586008062635789e-4,-4.685864046342157e-5,-6.906416881867135e-9,-2.5816311466290005e-4,-4.7018104873896896e-5,-6.937219567577798e-9,-2.5769402554871504e-4,-4.70926588010539e-5,-6.9581636155644655e-9,-2.5723517884218273e-4,-4.707644773329669e-5,-6.967428938305518e-9,-2.568273908815006e-4,-4.6986025040791123e-5,-6.966001210496018e-9,-2.564992393431867e-4,-4.685748280218821e-5,-6.957630999254399e-9,-2.5625871902160277e-4,-4.6737400412949545e-5,-6.947966529409689e-9,-2.5609074998136574e-4,-4.667043573132832e-5,-6.943105351110571e-9,-2.5596122517727485e-4,-4.6687347367702306e-5,-6.947967062704738e-9,-2.5582634783583117e-4,-4.6796866950713174e-5,-6.964938644351132e-9,-2.5564461158371896e-4,-4.698373076282578e-5,-6.993209196686726e-9,-2.553879109156633e-4,-4.7213518226825917E-05,-7.029044733220987e-9,-2.5504832832596024e-4,-4.744277599023395e-5,-7.066933407213379e-9,-2.5463858429774843e-4,-4.7630969964505535e-5,-7.1011838454172516e-9,-2.541865650862485e-4,-4.775023325017012e-5,-7.127396703046114e-9,-2.537265402404863e-4,-4.7790107831489385e-5,-7.143345909601783e-9,-2.532904918374822e-4,-4.775683549761495e-5,-7.1491178104008635e-9,-2.529021042786563e-4,-4.766889086299671e-5,-7.146663004807935e-9,-2.525741732148423e-4,-4.7551249353078e-5,-7.139062192878236e-9,-2.5230871169483677e-4,-4.743029000875771e-5,-7.129782907503167e-9,-2.5209851175530824e-4,-4.733012368995658e-5,-7.12209759254885e-9,-2.519291245187472e-4,-4.7270279788107355e-5,-7.1187265860613594e-9,-2.517806968882801e-4,-4.726422556842384e-5,-7.12166746585097e-9,-2.5162963986732293e-4,-4.731809415808857e-5,-7.132097650423624e-9,-2.514505510713131e-4,-4.742927313984141e-5,-7.1502341423829864e-9,-2.512190030433243e-4,-4.758501628393123e-5,-7.175103678264232e-9,-2.5091568236328035e-4,-4.7761815907209246e-5,-7.204305121348925e-9,-2.5053181294401e-4,-4.7926849500478765e-5,-7.233991717484305e-9,-2.500746237911642e-4,-4.804301276238442e-5,-7.259360514494356e-9,-2.495701519604955e-4,-4.8078046570921506e-5,-7.275783141609628e-9,-2.490601882212913e-4,-4.8015746621047336e-5,-7.280321967292176e-9,-2.4859206990471175e-4,-4.786450499113676e-5,-7.272987851368456e-9,-2.4820404096295365e-4,-4.7657974491023386e-5,-7.2570490683069305e-9,-2.479123719305355e-4,-4.744593983612639e-5,-7.238137844085153e-9,-2.477062542180496e-4,-4.7278801363755583e-5,-7.2225323219480234e-9,-2.475523859045091e-4,-4.719243023421515e-5,-7.2153509223338515e-9,-2.4740634073176207e-4,-4.7199163254914456e-5,-7.21928276128765e-9,-2.472256149075255e-4,-4.728689651818537e-5,-7.234113502680999e-9,-2.469800996566623e-4,-4.742481447800407e-5,-7.2570090226968695e-9,-2.4665781472638505e-4,-4.757279635380423e-5,-7.283374548153914e-9,-2.462655369996502e-4,-4.769151536169288e-5,-7.308038135183422e-9,-2.458251322065457e-4,-4.775085456159175e-5,-7.326465854721028e-9,-2.4536711100036463e-4,-4.77350886691006e-5,-7.3357152755733405e-9,-2.4492329122390537e-4,-4.764420066221715e-5,-7.334911212083219e-9,-2.4452039783219196e-4,-4.749169496663902e-5,-7.3251748443696005e-9,-2.441758732145271e-4,-4.7300134577938174e-5,-7.309112821670338e-9,-2.4389627170717684e-4,-4.7095968591426874e-5,-7.2900891206745445e-9,-2.4367780651202367e-4,-4.6904922721911e-5,-7.2715143086660904e-9,-2.4350820404063506e-4,-4.674862028056588e-5,-7.2563236900772534e-9,-2.4336901910568495e-4,-4.6642494199979074e-5,-7.246701350541432e-9,-2.4323787902715116e-4,-4.6594604978692496e-5,-7.243991435989502e-9,-2.4309057272598025e-4,-4.6604855006113405e-5,-7.248666445835073e-9,-2.4290326713360635e-4,-4.666429753503088e-5,-7.260234391154556e-9,-2.4265533867043101e-4,-4.67546250155109e-5,-7.2770527231963495e-9,-2.4233328045250883e-4,-4.684845105661854e-5,-7.29615811529741e-9,-2.4193563237893614e-4,-4.6911622727816726e-5,-7.313363425619466e-9,-2.4147769061437337e-4,-4.690904210391057e-5,-7.323911274472526e-9,-2.409931846698145e-4,-4.68145030450435e-5,-7.3237831866979765e-9,-2.405293638181594e-4,-4.6622304985804496e-5,-7.311327256640174e-9,-2.4013397134164407e-4,-4.6354911420302454e-5,-7.288398575368516e-9,-2.3983792521253927e-4,-4.606009583001144e-5,-7.260171753226957e-9,-2.396424964711392e-4,-4.579591722183568e-5,-7.233460507133913e-9,-2.3951876787466002e-4,-4.561007369104896e-5,-7.21434469153871e-9,-2.394196251219914e-4,-4.552433842374012e-5,-7.206304347525716e-9,-2.3929702425245816e-4,-4.553082614515197e-5,-7.209572961363757e-9,-2.3911604156302504e-4,-4.559902693265397e-5,-7.221607636814043e-9,-2.3886148969033618e-4,-4.56878141259867e-5,-7.238141334743658e-9,-2.385376124584638e-4,-4.57569458542221e-5,-7.25434375948497e-9,-2.381635151221613e-4,-4.5775227331894453e-5,-7.265844606590987e-9,-2.3776689984276165e-4,-4.57248113055291e-5,-7.26951760352044e-9,-2.3737775512568452e-4,-4.560224089873021e-5,-7.26396202658587e-9,-2.3702288262502963e-4,-4.541701560695537e-5,-7.249620171308552e-9,-2.3672182048234104e-4,-4.518837706556744e-5,-7.228512886555455e-9,-2.3648451210419064e-4,-4.494110071809932e-5,-7.203679129923876e-9,-2.3631073766417756e-4,-4.470112417759971e-5,-7.1784915077864556e-9,-2.3619104748406788e-4,-4.449166637344944e-5,-7.156032804897266e-9,-2.361087730659606e-4,-4.433028327220373e-5,-7.138674148007875e-9,-2.3604256281260482e-4,-4.422705852302139e-5,-7.1278965459513375e-9,-2.3596896071219697e-4,-4.41837594790764e-5,-7.124282211477298e-9,-2.358648734407393e-4,-4.419359846967748e-5,-7.127541904743606e-9,-2.3571005457793368e-4,-4.424139308519803e-5,-7.136477505700135e-9,-2.3548986076137152e-4,-4.4304182265018096e-5,-7.148875985336727e-9,-2.3519855436410849e-4,-4.435271161882365e-5,-7.16145714276836e-9,-2.348430390860336e-4,-4.4354724701945077e-5,-7.170110582162483e-9,-2.3444587375598763e-4,-4.428117792866847e-5,-7.170657306550671e-9,-2.3404509111068765e-4,-4.411557127942225e-5,-7.1601656476032516e-9,-2.3368771973065835e-4,-4.386412570504797e-5,-7.138447255205115e-9,-2.334157329157928e-4,-4.356117057573164e-5,-7.108920211252188e-9,-2.3324859251575434e-4,-4.326304457334257e-5,-7.077986722810363e-9,-2.3317225159038513e-4,-4.3029164658112595e-5,-7.0528241170588876e-9,-2.3314325821755143e-4,-4.289880884221161e-5,-7.038651316312173e-9,-2.3310674475310233e-4,-4.287707539508815e-5,-7.037006731343113e-9,-2.330173793949718e-4,-4.2937138101060195e-5,-7.045793591462278e-9,-2.3285221519255721e-4,-4.303448249497462e-5,-7.060613085178226e-9,-2.3261221161084732e-4,-4.312326355963217e-5,-7.076380098752534e-9,-2.3231616237874106e-4,-4.3167782922615494e-5,-7.0885642907420745e-9,-2.3199226213489643e-4,-4.3147504709399666e-5,-7.093925360427784e-9,-2.3167066135599025e-4,-4.305722178644823e-5,-7.090854405127532e-9,-2.3137815592412457e-4,-4.290464072813479e-5,-7.079431225173229e-9,-2.3113482317374794e-4,-4.2706990561187926e-5,-7.061239222047379e-9,-2.3095210624270325e-4,-4.248733394858226e-5,-7.0389514644621475e-9,-2.3083209319112942e-4,-4.22708356697799e-5,-7.0157556508521975e-9,-2.3076787058155768e-4,-4.208124244565444e-5,-6.994754152444318e-9,-2.3074481404720975e-4,-4.193779429781794e-5,-6.978475418029599e-9,-2.3074269629111773e-4,-4.185278131262165e-5,-6.9685812919441475e-9,-2.3073838954341724e-4,-4.183002690679065e-5,-6.9657828504140465e-9,-2.307087773182823e-4,-4.1864416184094224e-5,-6.969890191920407e-9,-2.3063358371772487e-4,-4.19423194920427e-5,-6.979881232260712e-9,-2.304980447362638e-4,-4.204276810737836e-5,-6.993919691136392e-9,-2.3029541532778425e-4,-4.2139396145542684e-5,-7.00935383163725e-9,-2.3002929420596648e-4,-4.220331442258605e-5,-7.022821179996584e-9,-2.297155277725766e-4,-4.220735882242904e-5,-7.0306406913778314e-9,-2.2938274641947577e-4,-4.2132214476566026e-5,-7.029632424365228e-9,-2.2906972807424893e-4,-4.197407643695822e-5,-7.018296801761733e-9,-2.2881761972917472e-4,-4.175160042946605e-5,-6.997961873684011e-9,-2.286567093282979e-4,-4.15075256296687e-5,-6.9732029722847966e-9,-2.2859182172845228e-4,-4.129977684881916e-5,-6.9508561159118375e-9,-2.2859518852719337e-4,-4.118158264999498e-5,-6.937623078004585e-9,-2.2861445669427582e-4,-4.1179317366699686e-5,-6.937368890191579e-9,-2.2859373178187907e-4,-4.128165726085842e-5,-6.949709434593278e-9,-2.2849535207625107e-4,-4.144683429672747e-5,-6.970641653126126e-9,-2.283102601143957e-4,-4.162180946726997e-5,-6.994513297007544e-9,-2.280546314648973e-4,-4.1760936140705576e-5,-7.015996457807604e-9,-2.2775905137933017e-4,-4.1836162324814815e-5,-7.0312662464705675e-9,-2.2745750303615093e-4,-4.183854159207291e-5,-7.038384862713035e-9,-2.2717978153226345e-4,-4.1774688473891304e-5,-7.037214328561364e-9,-2.269476550317656e-4,-4.166168283592476e-5,-7.029107904443636e-9,-2.2677360769187676e-4,-4.152239765949198e-5,-7.016489998134974e-9,-2.2666086428735168e-4,-4.13817553708349e-5,-7.002360297324509e-9,-2.2660400530891817e-4,-4.126365474609324e-5,-6.989766583218536e-9,-2.2659004542151717e-4,-4.1188304668478054e-5,-6.981333927974789e-9,-2.266000219235072e-4,-4.116989011754661e-5,-6.978931288333946e-9,-2.266111881676761e-4,-4.12146495166316e-5,-6.9835033237536505e-9,-2.2659985001449061e-4,-4.131967774449151e-5,-6.9950455254666655e-9,-2.2654460748588225e-4,-4.147283960401956e-5,-7.012666563520272e-9,-2.264295628693442e-4,-4.165394006870694e-5,-7.034672741319516e-9,-2.2624709886908756e-4,-4.183709352380845e-5,-7.058654437906543e-9,-2.259998866238783e-4,-4.1994173550205136e-5,-7.081632424729571e-9,-2.2570180047419192e-4,-4.20991362790095e-5,-7.100361989265034e-9,-2.2537742095192945e-4,-4.213298776272619e-5,-7.111886301353217e-9,-2.2505959382885995e-4,-4.208912506154797e-5,-7.114348718520941e-9,-2.2478421898691062e-4,-4.197821401236689e-5,-7.107904138739319e-9,-2.2458174592226204e-4,-4.1830607186345735e-5,-7.0953504217620375e-9,-2.244663606137209e-4,-4.169327376221295e-5,-7.081979987657558e-9,-2.2442665203386655e-4,-4.1618683723854355e-5,-7.074284006802257e-9,-2.2442408061700852e-4,-4.1646821969372816e-5,-7.077692877238242e-9,-2.2440397415766895e-4,-4.178786877968106e-5,-7.0943342038050634e-9,-2.2431615173148974e-4,-4.201628734466668e-5,-7.122132208245681e-9,-2.2413418489370047e-4,-4.2281316841771065e-5,-7.155838491573877e-9,-2.238625036955378e-4,-4.252762716447894e-5,-7.189267752364687e-9,-2.2352958981585374e-4,-4.271389191467571e-5,-7.217364886846549e-9,-2.231742512295794e-4,-4.2821232086966055e-5,-7.2372470959088515e-9,-2.2283320562756947e-4,-4.285179730744506e-5,-7.2482661351785805e-9,-2.2253387205703278e-4,-4.282232746248896e-5,-7.2515555960049095e-9,-2.2229206566917885e-4,-4.275713751688142e-5,-7.2494356512215224e-9,-2.2211260756237194e-4,-4.2682685880708425e-5,-7.244838453971768e-9,-2.2199099538278396e-4,-4.262399641811782e-5,-7.240796077498677e-9,-2.2191514949620428e-4,-4.260230497054901e-5,-7.240011891369483e-9,-2.2186707232957353e-4,-4.26332616889838e-5,-7.244543832697758e-9,-2.2182464125580366e-4,-4.2725338241283515e-5,-7.255615619695993e-9,-2.217638453501513e-4,-4.287842690194515e-5,-7.273534478793906e-9,-2.2166170729793913e-4,-4.308298693357485e-5,-7.2976765517466445e-9,-2.2149980429336165e-4,-4.332033803452491e-5,-7.326522432477613e-9,-2.2126785688274673e-4,-4.3564584276414805e-5,-7.357751075488498e-9,-2.20966584781167e-4,-4.3786290015324124e-5,-7.388436436288333e-9,-2.2060898292754956e-4,-4.395759483340187e-5,-7.415404439706891e-9,-2.202193504707468e-4,-4.405796910551689e-5,-7.435775583366592e-9,-2.1982983813928416e-4,-4.407947682940211e-5,-7.4476444040565705e-9,-2.1947474914701923e-4,-4.403040203489803e-5,-7.450766846569757e-9,-2.1918316392070605e-4,-4.393615767618415e-5,-7.447040423172644e-9,-2.1897091886597989e-4,-4.3836355658260945e-5,-7.440501159279104e-9,-2.188338255077648e-4,-4.3777167322247025e-5,-7.4366017543605706e-9,-2.187450180632313e-4,-4.379926707359548e-5,-7.440747299185002e-9,-2.1865951766138927e-4,-4.3924079338995526e-5,-7.456451577868975e-9,-2.1852701523895825e-4,-4.414394644131482e-5,-7.48388495394003e-9,-2.1830915181893224e-4,-4.442241000664643e-5,-7.51964660486929e-9,-2.1799327092026865e-4,-4.47064341649404e-5,-7.558021886353412e-9,-2.1759542948186208e-4,-4.4945093539923776e-5,-7.593080121112747e-9,-2.1715190572061313e-4,-4.510525927973701e-5,-7.62051102463403e-9,-2.1670511352975532e-4,-4.5177775919498044e-5,-7.63846614779529e-9,-2.1629130702600425e-4,-4.5174263035486545e-5,-7.647414111500688e-9,-2.1593400226015044e-4,-4.511913434864514e-5,-7.649461867526958e-9,-2.1564283671687278e-4,-4.504151932089862e-5,-7.647573809127245e-9,-2.1541555700511315e-4,-4.496945565191675e-5,-7.644907915657562e-9,-2.152409460728591e-4,-4.4926547873120016E-05,-7.644326527091175e-9,-2.1510150205944102e-4,-4.493027145003056e-5,-7.648080390942638e-9,-2.1497560662559327e-4,-4.499101379307958e-5,-7.65764086825275e-9,-2.1483945926710325e-4,-4.511125926355644e-5,-7.673632641449619e-9,-2.1466926637521481e-4,-4.528477274004901e-5,-7.695803268049495e-9,-2.144441173207301e-4,-4.549613641988964e-5,-7.722992976764426e-9,-2.1414962209211983e-4,-4.572138551931352e-5,-7.753133503949428e-9,-2.137817825713578e-4,-4.5930557875204e-5,-7.783365806364265e-9,-2.1334992695909555e-4,-4.609259275443571e-5,-7.810385927253544e-9,-2.1287718132165904e-4,-4.6182138061975344e-5,-7.831058043246478e-9,-2.123972901802133e-4,-4.618667111745394e-5,-7.843194529569795e-9,-2.1194776550871445e-4,-4.611156504767954e-5,-7.846275859882824e-9,-2.1156084382754122e-4,-4.598097245517623e-5,-7.841849026160612e-9,-2.1125475027746477e-4,-4.5833615902049135e-5,-7.833415837621815e-9,-2.1102786191385352e-4,-4.57141563789811e-5,-7.825754714870187e-9,-2.1085766176323766e-4,-4.5662121102797614e-5,-7.823773717687805e-9,-2.1070526783781765e-4,-4.570112440445812e-5,-7.831148800367581e-9,-2.1052503260910168e-4,-4.5831388471697066e-5,-7.84914193292144e-9,-2.1027715631769618e-4,-4.602835716858338e-5,-7.876058836978009e-9,-2.0993957436240816e-4,-4.6248926026246374e-5,-7.90766713758257e-9,-2.095146194759454e-4,-4.644402823389973e-5,-7.938509723459188e-9,-2.0902749841148404e-4,-4.6573103373786205e-5,-7.963593692431587e-9,-2.085173003005473e-4,-4.6614726939852604e-5,-7.979751223426029e-9,-2.080247685004384e-4,-4.656971988276465e-5,-7.986202202748241e-9,-2.0758195037667867e-4,-4.645702153575651e-5,-7.984303236040702e-9,-2.0720680107128868e-4,-4.630568678322192e-5,-7.976805592462343e-9,-2.069027746736158e-4,-4.6146864470554793E-05,-7.967006829227965e-9,-2.0666149949068237e-4,-4.6008053738656595e-5,-7.958051544835984e-9,-2.0646643337144435e-4,-4.591001322147901e-5,-7.952478950941206e-9,-2.0629619473845173e-4,-4.586558575032321e-5,-7.952010523962518e-9,-2.0612715730170046e-4,-4.587946155808738e-5,-7.957511462395227e-9,-2.0593551752786214e-4,-4.594814009737746e-5,-7.969025447952002e-9,-2.0569936999224403e-4,-4.6059814191126656e-5,-7.985789917193825e-9,-2.054013396767555e-4,-4.619444426954505e-5,-8.006201300389058e-9,-2.0503200586908336e-4,-4.632476440606799e-5,-8.027795774410303e-9,-2.0459370977526643e-4,-4.6419232557928356e-5,-8.04739911864323e-9,-2.0410341514187733e-4,-4.644771828424737e-5,-8.061606874456355e-9,-2.0359249297940358e-4,-4.6389591386022976e-5,-8.06761967917358e-9,-2.0310152417526018e-4,-4.6241943470151586e-5,-8.064208675557398e-9,-2.026701314330422e-4,-4.602412220191169e-5,-8.05238930586289e-9,-2.0232482212882342e-4,-4.5775201703916056e-5,-8.035415203185357e-9,-2.0206981769589567e-4,-4.5543952383211005e-5,-8.017995799141722e-9,-2.0188503857131567e-4,-4.5374719563007136e-5,-8.005002937932091e-9,-2.0173208974531864e-4,-4.5294685661682146e-5,-8.000132839061242e-9,-2.0156558865288865e-4,-4.530694102432007e-5,-8.004940251523124e-9,-2.0134563404935994e-4,-4.5390862347908655e-5,-8.018476540387911e-9,-2.010477628284383e-4,-4.5508700213428396e-5,-8.037583629336856e-9,-2.0066816008643582e-4,-4.56159424839469e-5,-8.05775420557668e-9,-2.002233040454102e-4,-4.5672547498502866e-5,-8.074324603901956e-9,-1.9974456130923202e-4,-4.5652156194690424e-5,-8.083656540042794e-9,-1.992695170896543e-4,-4.554701856445397e-5,-8.083957366931921e-9,-1.9883270591920156e-4,-4.5367698049175715e-5,-8.075522287619769e-9,-1.9845841745310465e-4,-4.513832170771045e-5,-8.060398815725766e-9,-1.981572124953109e-4,-4.488951139782889e-5,-8.041672208553757e-9,-1.9792619199168255e-4,-4.46514605035761e-5,-8.022654713173082e-9,-1.97751818665741e-4,-4.444885607769098e-5,-8.006221420156825e-9,-1.9761372928278598e-4,-4.429815409582809e-5,-7.994418534127477e-9,-1.9748834183331958e-4,-4.4206787770554826e-5,-7.988349103172298e-9,-1.9735172150645567e-4,-4.417347840913245e-5,-7.988243219864344e-9,-1.9718177685405577e-4,-4.4188897515318655e-5,-7.993577576316224e-9,-1.969602185929472e-4,-4.423633228093872e-5,-8.003137811219496e-9,-1.96674791367231e-4,-4.429249144944042e-5,-8.01500158984719e-9,-1.9632209229852586e-4,-4.43290434847933e-5,-8.026530943997656e-9,-1.9591072087203853e-4,-4.4315855466975366e-5,-8.03455558004738e-9,-1.9546352222861362e-4,-4.422685189198833e-5,-8.035926730100295e-9,-1.9501665604001342e-4,-4.404835137258371e-5,-8.028456381532183e-9,-1.9461311284592976e-4,-4.3787482447394696e-5,-8.011956426634773e-9,-1.9429036612252486e-4,-4.3475903590539156e-5,-7.988819905738023e-9,-1.9406609579109184e-4,-4.31641133352837e-5,-7.963631507898714e-9,-1.939293801808378e-4,-4.290607476846081e-5,-7.941776010191559e-9,-1.9384326424020214e-4,-4.274050836180446e-5,-7.927647618378034e-9,-1.9375801371840964e-4,-4.267820492195053e-5,-7.923311832665135e-9,-1.9362806935360174e-4,-4.270088509049269e-5,-7.928124868965717e-9,-1.934249241067107e-4,-4.277008015595093e-5,-7.93923136862352e-9,-1.931422172148227e-4,-4.284026359050476e-5,-7.952533831849908e-9,-1.9279378906395382e-4,-4.287086605432226e-5,-7.963753390058145e-9,-1.9240746774724533e-4,-4.283438753175265e-5,-7.96935681810304e-9,-1.9201729184363728e-4,-4.272004332166115e-5,-7.967224995384466e-9,-1.9165604145344355e-4,-4.253352928312996e-5,-7.956980058119363e-9,-1.9134921912310286e-4,-4.229384282667856e-5,-7.939923003820991e-9,-1.9111121492372828e-4,-4.202818834980984e-5,-7.91860535841166e-9,-1.9094402083634387e-4,-4.176615800307559e-5,-7.896162848299419e-9,-1.9083831639714896e-4,-4.1534410208336746e-5,-7.87561120850624e-9,-1.9077625422079947e-4,-4.1352743879738196e-5,-7.859295143438076e-9,-1.9073505303328413e-4,-4.123196142628293e-5,-7.848605195695082e-9,-1.9069054410135802e-4,-4.1173414159399545e-5,-7.843964753064974e-9,-1.906201224278099e-4,-4.116971136664543e-5,-7.844982280018888e-9,-1.905050256123524e-4,-4.1205978856558556e-5,-7.850625899117948e-9,-1.9033218543530693e-4,-4.126132493487268e-5,-7.859318656901609e-9,-1.9009597946679268e-4,-4.131052250053904e-5,-7.868951080561997e-9,-1.8980014139863044e-4,-4.1326260782891054e-5,-7.876912836277283e-9,-1.8945967012305145e-4,-4.128269700216912e-5,-7.880323549005257e-9,-1.8910169760086778e-4,-4.116102678475968e-5,-7.876614821307504e-9,-0.00018876338867391296,-4.0956863108143176e-5,-7.864445949430287e-9,-1.884847853602136e-4,-4.0687258733253435e-5,-7.844654109638144e-9,-1.8829616966925856e-4,-4.039278804799636e-5,-7.820672655457958e-9,-1.88203845813791e-4,-4.012954778719805e-5,-7.797856014628003e-9,-1.8818277508791647e-4,-3.995054240701812e-5,-7.781684520999545e-9,-1.881832875362198e-4,-3.988448188439229e-5,-7.77566376533795e-9,-1.8815018874959586e-4,-3.992443525486756e-5,-7.780096416824334e-9,-1.880434791354815e-4,-4.003285000490112e-5,-7.792321866458137e-9,-1.8784973035415947e-4,-4.015822215563545e-5,-7.808013539986401e-9,-1.8758115050261835e-4,-4.025292234742e-5,-7.822655543413694e-9,-1.872668184883031e-4,-4.02846843903453e-5,-7.832609350063291e-9,-1.869421745375567e-4,-4.024036343886389e-5,-7.835668960723405e-9,-1.866405011096358e-4,-4.012421563344865e-5,-7.831233109466725e-9,-1.8638746606769327e-4,-3.9953517066443375e-5,-7.820209997762073e-9,-1.8619833336478678e-4,-3.9753447846682424E-05,-7.804705559277455e-9,-1.8607713456172942e-4,-3.955211791223761e-5,-7.787528077260694e-9,-1.8601733956143633e-4,-3.937609305312275e-5,-7.771594675631029e-9,-1.8600372362801028e-4,-3.924671808006975e-5,-7.759377516311174e-9,-1.860151033940145e-4,-3.9177490549839045e-5,-7.752521038826082e-9,-1.86027579535179e-4,-3.917265795237302e-5,-7.751697825195558e-9,-1.8601784500762417e-4,-3.922712275877602e-5,-7.756683939980297e-9,-1.859660991240961e-4,-3.932748873083235e-5,-7.76655338904938e-9,-1.858583415306685e-4,-3.945386020008228e-5,-7.779863803220138e-9,-1.856880765199331e-4,-3.9582104032858643e-5,-7.794764745634513e-9,-1.8545751111847034e-4,-3.968648336286518e-5,-7.80905273811186e-9,-1.8517832726768282e-4,-3.974272194646584e-5,-7.820277095975539e-9,-1.8487191715710737e-4,-3.973182286832981e-5,-7.826043324454552e-9,-1.84568326062585e-4,-3.964498003485806e-5,-7.824607063924266e-9,-1.8430252736954805e-4,-3.948909619720772e-5,-7.81567723225054e-9,-1.841068015813026e-4,-3.9290916557531185e-5,-7.801120265142914e-9,-1.8399941650295114e-4,-3.9096168023688346e-5,-7.785080204503404e-9,-1.8397315757144196e-4,-3.8959732030985414e-5,-7.773061430941858e-9,-1.8399121969710352e-4,-3.892667494260442e-5,-7.769999153806498e-9,-1.8399720413110593e-4,-3.9012062532908605e-5,-7.778165646339316e-9,-1.8393709799280938e-4,-3.919247414624714e-5,-7.796192327999907e-9,-1.837809253347292e-4,-3.94159913142451e-5,-7.81983562463752e-9,-1.835314504140859e-4,-3.9624174692404916e-5,-7.843866044999501e-9,-1.832175926465497e-4,-3.9772376929694886e-5,-7.863852973816922e-9,-0.00018288007799367867,-3.983939802399363e-5,-7.877101234873762e-9,-1.825581525567214e-4,-3.9826609012344015e-5,-7.88278698428171e-9,-1.8228153953364634e-4,-3.975151493070294e-5,-7.881673076367993e-9,-1.8206747389102235e-4,-3.96403257759107e-5,-7.87567869457065e-9,-1.8192093438847728e-4,-3.952183195728649e-5,-7.867403264403688e-9,-1.818363144226791e-4,-3.94230088792691e-5,-7.859627774104685e-9,-1.8179960057993597e-4,-3.9365938879669173e-5,-7.854836651382487e-9,-1.817908037429815e-4,-3.9365650403408574e-5,-7.85483970570868e-9,-1.817866154295425e-4,-3.9428705477013426e-5,-7.860566324909944e-9,-1.81763290141203e-4,-3.955254076382139e-5,-7.872043997922005e-9,-1.8169966125836646e-4,-3.9725745338659054e-5,-7.888521312020506e-9,-1.8157997375724025e-4,-3.992943179925509e-5,-7.908654800013727e-9,-1.8139615201193202e-4,-4.01395859443014e-5,-7.930677800847704e-9,-1.8114926843234067e-4,-4.0330149429537525e-5,-7.952524911278175e-9,-1.808500494869329e-4,-4.047662276442048e-5,-7.971962158343955e-9,-1.8051827933978514e-4,-4.055992560857808e-5,-7.986810256067089e-9,-1.8018101316444614e-4,-4.0570277674346596e-5,-7.995336625795394e-9,-1.7986930754112723e-4,-4.0510916503467394e-5,-7.996822725172099e-9,-1.796128754203871e-4,-4.0400967753350356e-5,-7.992167447243349e-9,-1.7943243126465743e-4,-4.027577035424067e-5,-7.984224841668468e-9,-1.793308527151646e-4,-4.0182267013651894e-5,-7.97751603843064e-9,-1.7928650189256697e-4,-4.016762654034507e-5,-7.977085620844553e-9,-1.7925412028238575e-4,-4.026237728195528e-5,-7.986681974367066e-9,-1.791774416147169e-4,-4.046502137035069e-5,-8.007050548514257e-9,-1.79010578141659e-4,-4.07384889308924e-5,-8.03541534862946e-9,-1.7873692411944845e-4,-4.102346717380981e-5,-8.066621496285543e-9,-1.783741420058078e-4,-4.1261830836882335e-5,-8.095249938080533e-9,-1.7796361074475225e-4,-4.1416463164230464e-5,-8.117421582789139e-9,-1.7755290410782594e-4,-4.1478368578888085e-5,-8.131520449449486e-9,-1.7718135033389617e-4,-4.146198733197798e-5,-8.13797055610707e-9,-1.768730990346715e-4,-4.139529321745453e-5,-8.138602365296292e-9,-1.766365818208645e-4,-4.131042648440153e-5,-8.135996394797593e-9,-1.7646729539195152e-4,-4.123728457209718e-5,-8.132931548149722e-9,-1.7635140912427015e-4,-4.119998363428822e-5,-8.131940782911007e-9,-1.7626901592075078e-4,-4.1215139264067615e-5,-8.13497319552361e-9,-1.7619688175239353e-4,-4.129104627639256e-5,-8.143187102834443e-9,-1.7611095329391106e-4,-4.142731358893801e-5,-8.156888519239014e-9,-1.7598889716912629e-4,-4.1614887437690714e-5,-8.17558928584182e-9,-1.7581281192462515e-4,-4.183670829192403e-5,-8.198133122013413e-9,-1.7557194116890116e-4,-4.206939570725801e-5,-8.222846596370708e-9,-1.7526489185315834e-4,-4.2286145337228534e-5,-8.247693685378518e-9,-1.749007892130791e-4,-4.246067239676419e-5,-8.27045287578726e-9,-1.7449889291473196e-4,-4.257177890837406e-5,-8.288966601271894e-9,-1.7408636134491067e-4,-4.260785569445014e-5,-8.301502622549816e-9,-1.7369417612683185e-4,-4.257044116629862e-5,-8.307207425135431e-9,-1.733515749373912e-4,-4.247603925671317e-5,-8.306560538240727e-9,-1.7307951561946385e-4,-4.235546258407321e-5,-8.301660768772593e-9,-1.7288404300892215e-4,-4.224980670333177e-5,-8.296116391034056e-9,-1.7275126742316764e-4,-4.220232082429011e-5,-8.29435675977847e-9,-1.7264662508130276e-4,-4.2246603872407674e-5,-8.300377709365537e-9,-1.7252121501086634e-4,-4.239390927424923e-5,-8.316260399484159e-9,-1.723259194563172e-4,-4.262512746453453e-5,-8.341125038747223e-9,-1.7202921853819408e-4,-4.289359303196469e-5,-8.371205255110296e-9,-1.7163005621497463e-4,-4.314027956941037e-5,-8.401196120311941e-9,-1.7115808212438073e-4,-4.3314891182245837e-5,-8.426208336859534e-9,-1.706611339045414e-4,-4.3391899781138715e-5,-8.4432830383759e-9,-1.701876762651756e-4,-4.3374419715413495e-5,-8.4518562411058e-9,-1.6977323193821857e-4,-4.328714577136297e-5,-8.4533209117178e-9,-1.6943492968409378e-4,-4.316484300779904e-5,-8.450215049832509e-9,-1.691728141266524e-4,-4.304229490465962e-5,-8.445454567334958e-9,-1.689743734967421e-4,-4.294814563749508e-5,-8.441762371783732e-9,-1.6881942342299218e-4,-4.2902261156559144e-5,-8.441296223429344e-9,-1.6868404487941965e-4,-4.291519214458628e-5,-8.445444774098598e-9,-1.6854347563705814e-4,-4.2988495594045744e-5,-8.454766529152133e-9,-1.6837439851704656e-4,-4.3115257163194266e-5,-8.469036389597806e-9,-1.681571293442517e-4,-4.3280710287122344e-5,-8.487346444855007e-9,-1.6787800682957013e-4,-4.3463272785180736e-5,-8.508217625345404e-9,-1.675319055511752e-4,-4.363653952219832e-5,-8.529718093993882e-9,-1.6712433065999726e-4,-4.3772654109465174e-5,-8.549625270960761e-9,-1.6667221550076703e-4,-4.3847053130506195e-5,-8.565688893545171e-9,-1.6620251090174813e-4,-4.384394863589244e-5,-8.576022891083493e-9,-1.6574805161057994e-4,-4.3761243185843136e-5,-8.57958137502147e-9,-1.653410166729793e-4,-4.361321227414499e-5,-8.57659196538238e-9,-1.6500526069332353e-4,-4.3429595920686075e-5,-8.568780938240553e-9,-1.6474941938175833e-4,-4.325061380526027e-5,-8.559242374508827e-9,-1.6456278474184848e-4,-4.311845658282386e-5,-8.551872091484495e-9,-1.6441558827007797e-4,-4.306679435913246e-5,-8.55041163875152e-9,-1.6426459590353389e-4,-4.31107428021797e-5,-8.55731514316368e-9,-1.6406370565747632e-4,-4.324040567689213e-5,-8.572814975918328e-9,-1.6377738091422734e-4,-4.3421136814201817e-5,-8.594619277300757e-9,-1.6339259528422065e-4,-4.360218549923664e-5,-8.618509053213847e-9,-1.6292403742707357e-4,-4.3731933663244515e-5,-8.639692356752142e-9,-1.6240945516230828e-4,-4.3773994492029846e-5,-8.654343911008955e-9,-1.618968607756375e-4,-4.371721460881521e-5,-8.660647603934844e-9,-1.614295836691662e-4,-4.357579691594396e-5,-8.658990171403235e-9,-1.6103554540079272e-4,-4.338116258064244e-5,-8.65143750147207e-9,-1.6072371734170566e-4,-4.317072694826411e-5,-8.640899300411265e-9,-1.60486597377181e-4,-4.2978486922922624e-5,-8.630346264051817e-9,-1.6030553083480994e-4,-4.28295955015562e-5,-8.622255741822829e-9,-1.6015613527411944e-4,-4.2738546072660895e-5,-8.618310231123223e-9,-1.6001252941236853e-4,-4.270953342717434e-5,-8.619310983523769e-9,-1.5985023392522713e-4,-4.27376696865566e-5,-8.62524258194941e-9,-1.5964820616548375e-4,-4.281026269130828e-5,-8.635407427994393e-9,-1.5939063606626693e-4,-4.290797545834162e-5,-8.648555381100611e-9,-1.5906893911632526e-4,-4.300622619989431e-5,-8.662980381924239e-9,-1.586839320425307e-4,-4.307745905419132e-5,-8.6766176574788e-9,-1.5824763893893554e-4,-4.309485149551601e-5,-8.687224944489166e-9,-1.577836553301402e-4,-4.303761508032331e-5,-8.692728743322592e-9,-1.5732473003351639e-4,-4.2897150815443866e-5,-8.691735505534104e-9,-1.5690673041701025e-4,-4.2682099455994495e-5,-8.684069583127032e-9,-1.5655967783061677e-4,-4.241963218334136e-5,-8.671100768675983e-9,-1.5629842252569848e-4,-4.215106331379977e-5,-8.65564776892293e-9,-1.5611654367897435e-4,-4.1922027222526855e-5,-8.641393519477788e-9,-1.5598634365727104e-4,-4.1769990723229766e-5,-8.631943434242865e-9,-1.558655337576891e-4,-4.171332468953909e-5,-8.62980875112357e-9,-1.55708599326998e-4,-4.1745676230751626e-5,-8.635639653747643e-9,-1.5547926756793228e-4,-4.183738871643539e-5,-8.64796410233513e-9,-1.5516040876164026e-4,-4.194344529267842e-5,-8.663544317198107e-9,-1.5475857077794318e-4,-4.2015642345345564e-5,-8.678275332417251e-9,-1.5430178219828054e-4,-4.2015487508945786e-5,-8.688346657903147e-9,-1.538312653883322e-4,-4.1923888974596855e-5,-8.691272266061803e-9,-1.5338985144061818e-4,-4.174464729428951e-5,-8.686443715723425e-9,-1.5301108912570144e-4,-4.150107912857046e-5,-8.675074640975934e-9,-1.5271247020407983e-4,-4.1227745509928506e-5,-8.659650972450587e-9,-1.5249412865362623e-4,-4.096082102643691e-5,-8.643154944543995e-9,-1.5234202142190386e-4,-4.0730361657362306e-5,-8.628341074666747e-9,-1.522332666590427e-4,-4.0556036818412694e-5,-8.617240877586801e-9,-1.5214146355814283e-4,-4.044607832465574e-5,-8.610948820189256e-9,-1.5204082770238207e-4,-4.0398276306418136e-5,-8.609649713449356e-9,-1.5190894966737008e-4,-4.040182404940597e-5,-8.612791693953891e-9,-1.5172855998777816e-4,-4.04392073340307e-5,-8.619289651721801e-9,-1.5148890221367985e-4,-4.048788673301634e-5,-8.627671304566296e-9,-1.511871960678653e-4,-4.052207249406931e-5,-8.636154913727928e-9,-1.5083025434630082e-4,-4.051521495503619e-5,-8.642725787473477e-9,-1.5043574158394175e-4,-4.044383852156764e-5,-8.645327734018624e-9,-1.500319353466808e-4,-4.029297377626192e-5,-8.642261093560134e-9,-1.496544166579292e-4,-4.006242686937451e-5,-8.632759521112276e-9,-1.4933857066749907e-4,-3.9771500609913104e-5,-8.61753525645397e-9,-1.4910878327908136e-4,-3.9458613965874134e-5,-8.598961074703302e-9,-1.4896817540041468e-4,-3.9173255620837376e-5,-8.580634729706417e-9,-1.4889434793359147e-4,-3.896143953895252e-5,-8.566369717397555e-9,-1.488446779231985e-4,-3.885027635490195e-5,-8.558992598500318e-9,-1.4876971971684565e-4,-3.883878985692342e-5,-8.559461170923111e-9,-1.4862882605840358e-4,-3.889897430693147e-5,-8.566637964807312e-9,-1.484015496846831e-4,-3.8985699273179814e-5,-8.577719545041904e-9,-1.4809146958670756e-4,-3.9050500471712874e-5,-8.589075917670951e-9,-1.4772283139077166e-4,-3.90541832810773e-5,-8.597200861671296e-9,-1.4733252302452735e-4,-3.8975093804996464e-5,-8.599531021666814e-9,-1.46960319709348e-4,-3.8811988524448995e-5,-8.594969943036304e-9,-1.4663989849332713e-4,-3.8581911562734315e-5,-8.58402541962936e-9,-1.4639243737691714e-4,-3.831439622032589e-5,-8.568556760394407e-9,-1.4622381432699978e-4,-3.8043832331238845e-5,-8.551221326080342e-9,-1.4612546696149864e-4,-3.780203085357788e-5,-8.534793996272362e-9,-1.4607800835754142e-4,-3.761267871861787e-5,-8.521560570514165e-9,-1.46056126596556e-4,-3.748848840769632e-5,-8.512936995642796e-9,-1.4603336462438332e-4,-3.743087337648366e-5,-8.509368863912567e-9,-1.4598588657925202e-4,-3.743138625583485e-5,-8.510465027645555e-9,-1.4589496353338089e-4,-3.747399290628529e-5,-8.515247763091069e-9,-1.4574843347403674e-4,-3.753744263121957e-5,-8.522385868843517e-9,-1.4554162934537264e-4,-3.759745129656199e-5,-8.530332304446479e-9,-1.4527818133022795e-4,-3.7628889350479104e-5,-8.537375532161534e-9,-1.4497079464529807e-4,-3.76084521534279e-5,-8.541699439939246e-9,-1.446416124057033e-4,-3.751836753687077e-5,-8.541581339326527e-9,-1.4432111704455668e-4,-3.7351398285757994e-5,-8.535812444372269e-9,-1.4404404714688575e-4,-3.711638518574359e-5,-8.524282605408122e-9,-1.438412079624837e-4,-3.684187866182322e-5,-8.508477097627533e-9,-1.4372811461076546e-4,-3.657397293866363e-5,-8.491503673689153e-9,-1.436949746655447e-4,-3.636532952138359e-5,-8.477371791217123e-9,-1.437049148338037e-4,-3.625715011489158e-5,-8.469647157873269e-9,-1.4370460041685984e-4,-3.626225419817731e-5,-8.470096677118393e-9,-1.436435657655829e-4,-3.6359182629031623e-5,-8.478059693349249e-9,-1.4349217679652826e-4,-3.650097828056397e-5,-8.49083875172551e-9,-1.4324944734727836e-4,-3.663301747612782e-5,-8.50476357027434e-9,-1.4293924274250757e-4,-3.6710244446883646e-5,-8.516318183217591e-9,-1.42599606440927e-4,-3.670734481993864e-5,-8.522934387042323e-9,-1.4227107692698355e-4,-3.66208983276144e-5,-8.523380609554418e-9,-1.4198762087161575e-4,-3.646586091026803e-5,-8.517827359725516e-9,-1.4177127123896665e-4,-3.626931158012475e-5,-8.507668428407443e-9,-1.4163010445375599e-4,-3.606360234221836e-5,-8.495144285064709e-9,-1.4155881398565556e-4,-3.588006957388633e-5,-8.482821921176052e-9,-1.4154122929864088e-4,-3.574396664003745e-5,-8.473039059830415e-9,-1.4155410250967632e-4,-3.5671120527783085e-5,-8.467454781925923e-9,-1.4157137341078065e-4,-3.5666522461359366e-5,-8.46681890030178e-9,-1.4156819516112225e-4,-3.572468450852716e-5,-8.4709875707388e-9,-1.4152418460917606e-4,-3.58313730753767e-5,-8.47912807725831e-9,-1.4142558873947818e-4,-3.59661705458511e-5,-8.489992557926502e-9,-1.412664184643966e-4,-3.6105261696455e-5,-8.502137383045136e-9,-1.4104888166358994e-4,-3.6224110895191465e-5,-8.514032189748423e-9,-1.4078340386514088e-4,-3.630008132933925e-5,-8.524097794432883e-9,-1.4048831120426743e-4,-3.6315244359799485e-5,-8.530777751256682e-9,-1.4018893987105985e-4,-3.6259700669489686e-5,-8.532761075544734e-9,-1.399154045802046e-4,-3.613554770648095e-5,-8.529406358796928e-9,-1.396978493880879e-4,-3.5960758369385744e-5,-8.5212719609298e-9,-1.395584274220083e-4,-3.5770777754258144e-5,-8.510484614118273e-9,-1.395010799090941e-4,-3.5614419533547606e-5,-8.500584815712752e-9,-1.3950347955379841e-4,-3.554134224026499e-5,-8.495600252331792e-9,-1.395181326667312e-4,-3.5583057711782186e-5,-8.49852886633527e-9,-1.3948692048425989e-4,-3.573661667274257e-5,-8.509976577861838e-9,-1.3936409233349114e-4,-3.596248146847602e-5,-8.52783178092342e-9,-1.3913464178440764e-4,-3.6200002121230084e-5,-8.548219699136488e-9,-1.3881747770678196e-4,-3.6391341144876804e-5,-8.567072309384218e-9,-1.384540237025143e-4,-3.650005380239695e-5,-8.581375137160207e-9,-1.380914704582618e-4,-3.6517145395985524e-5,-8.589669620504838e-9,-1.3776939627770373e-4,-3.645667302158028e-5,-8.591982763540148e-9,-1.375129529417687e-4,-3.634680402050186e-5,-8.589508759325445e-9,-1.373315794560991e-4,-3.622095854655851e-5,-8.584220023840957e-9,-1.3722091216789167e-4,-3.61110737959683e-5,-8.578448656336925e-9,-1.3716598999432205e-4,-3.6043161150447865e-5,-8.574449379800085e-9,-1.37144819913883e-4,-3.6034601772228566e-5,-8.573995788120039e-9,-1.3713202193536196e-4,-3.60927847497726e-5,-8.578098184526851e-9,-1.3710237308793484e-4,-3.621495858814332e-5,-8.586914569799196e-9,-1.3703402980724396e-4,-3.6389181641333254e-5,-8.5998516774355e-9,-1.36911205202354e-4,-3.65962542961265e-5,-8.615789199981454e-9,-1.3672602214730465e-4,-3.68124573584491e-5,-8.633327431858329e-9,-1.36479349089764e-4,-3.701271677512592e-5,-8.650970819822634e-9,-1.3618068653054776e-4,-3.717379627140313e-5,-8.667222550115315e-9,-1.358472662707308e-4,-3.7277344343605105e-5,-8.680647089426607e-9,-1.3550242612119607e-4,-3.731274903926245e-5,-8.68999424871703e-9,-1.3517320152061808e-4,-3.727978006702851e-5,-8.694459140313209e-9,-1.3488680793789882e-4,-3.719092897384664e-5,-8.694073713436727e-9,-1.3466544021457864e-4,-3.707279073129639e-5,-8.69010051987593e-9,-1.3451925275556113e-4,-3.696481485133304e-5,-8.685177236944263e-9,-1.344388658671642e-4,-3.69131046298267e-5,-8.682934876706395e-9,-1.3439108416693466e-4,-3.695778715724225e-5,-8.68695839392729e-9,-1.3432331140892352e-4,-3.7116200157038535e-5,-8.699334814541392e-9,-1.3417981211901297e-4,-3.737010340084863e-5,-8.71951455375979e-9,-1.339246580951755e-4,-3.7667420214442775e-5,-8.744316749020727e-9,-1.3355816900488716e-4,-3.7941435370631326e-5,-8.769244026211392e-9,-1.3311593340372153e-4,-3.813725721253883e-5,-8.79029609068621e-9,-1.3265197371800877e-4,-3.8229929052285945e-5,-8.80518898519348e-9,-1.3221793913426716e-4,-3.822643977336777e-5,-8.813555366407018e-9,-1.318492290963614e-4,-3.8155740932226004e-5,-8.816480101901048e-9,-1.3156091565529496e-4,-3.8055615871408505e-5,-8.815891247203971e-9,-1.3135036452187486e-4,-3.796239043644523e-5,-8.814051427765528e-9,-1.31202438800492e-4,-3.7905049072083586e-5,-8.813160873514698e-9,-1.3109463784149872e-4,-3.79028210263575e-5,-8.81503385420893e-9,-1.3100122611687848e-4,-3.796469387651649e-5,-8.820852830416448e-9,-1.3089648863076503e-4,-3.80897908046812e-5,-8.83104051118581e-9,-1.3075748536931842e-4,-3.826825886682798e-5,-8.84527997381368e-9,-1.3056648321026467e-4,-3.848267424904795e-5,-8.862659526172724e-9,-1.3031305885508222e-4,-3.871009371470224e-5,-8.881878607082005e-9,-1.2999564462678402e-4,-3.8924886973358905e-5,-8.90144922639146e-9,-1.296221126551315e-4,-3.9102224081252054e-5,-8.919852317394064e-9,-1.292091137554164e-4,-3.9221787764163894e-5,-8.935653170963314e-9,-1.287801342980387e-4,-3.9271231345139034e-5,-8.947626178113364e-9,-1.2836237102655372e-4,-3.924893370147562e-5,-8.954946573809908e-9,-1.2798264289840097e-4,-3.916561004732102e-5,-8.957459750970044e-9,-1.2766262594780724e-4,-3.9044431207776e-5,-8.955969094344736e-9,-1.2741366297480022e-4,-3.891923161696911e-5,-8.952404162384802e-9,-1.2723168997357461e-4,-3.883000967390067e-5,-8.949679509496966e-9,-1.27093748029005e-4,-3.881487829910734e-5,-8.951097831921052e-9,-1.2695870357679422e-4,-3.8898685950468335e-5,-8.959323326278861e-9,-1.267751555869125e-4,-3.908106724078372e-5,-8.975233990146882e-9,-1.2649729890266872e-4,-3.933002315131596e-5,-8.997238422616873e-9,-1.2610380646318407e-4,-3.958793924368254e-5,-9.021623338742478e-9,-1.2560933231630603e-4,-3.979117636916569e-5,-9.043949542052622e-9,-1.250601064281325e-4,-3.989428803618717e-5,-9.060747657363913e-9,-1.2451535807132656e-4,-3.988519479442612e-5,-9.070550347589108e-9,-1.2402584828578883e-4,-3.978414776435241e-5,-9.073886011159246e-9,-1.236205981940215e-4,-3.963065544738354e-5,-9.07260038223968e-9,-1.2330492479386814e-4,-3.946804731107443e-5,-9.06907791995821e-9,-1.2306592379153069e-4,-3.9332584341514184e-5,-9.065663183276685e-9,-1.228800828847495e-4,-3.9248605036294036e-5,-9.064298093394783e-9,-1.2271974809462355e-4,-3.9227959023930204e-5,-9.066308761174449e-9,-1.2255751932836511e-4,-3.9271422800291845e-5,-9.07230522767062e-9,-1.2236902385258616e-4,-3.937056825807537e-5,-9.082190481665708e-9,-1.2213485314795255e-4,-3.950953825587356e-5,-9.0952670217167e-9,-1.2184219766310128e-4,-3.966680598205627e-5,-9.110401741288104e-9,-1.2148636162885278e-4,-3.981726696521993e-5,-9.12619905571748e-9,-1.2107197250418744e-4,-3.9935062083796264e-5,-9.141156188037495e-9,-1.2061333772280514e-4,-3.9997258003077964e-5,-9.153805898123638e-9,-1.2013331124746263e-4,-3.998800386203117e-5,-9.162873756252375e-9,-1.1966030668005657e-4,-3.990236796499482e-5,-9.167476141008514e-9,-1.1922355711720542e-4,-3.9748848224879454e-5,-9.16735668291749e-9,-1.1884727409519039e-4,-3.9549573910041856e-5,-9.163106709226148e-9,-1.1854484500946807e-4,-3.9337626281964046e-5,-9.156273357353645e-9,-1.1831435745928925e-4,-3.9151554868869843e-5,-9.149247534449742e-9,-1.1813661119487769e-4,-3.9027669333984225e-5,-9.144851147026704e-9,-1.1797667960421902e-4,-3.899110483450793e-5,-9.145628060950681e-9,-1.1778991790734548e-4,-3.904737063700308e-5,-9.15299150810211e-9,-1.175325624741728e-4,-3.9177091689939015e-5,-9.166537396277783e-9,-1.1717523308225653e-4,-3.933731131848976e-5,-9.183898816605155e-9,-1.1671489921126038e-4,-3.947171279421601e-5,-9.20137620436505e-9,-1.1617906373001206e-4,-3.952820645458404e-5,-9.215188158288917e-9,-1.1561807446250038e-4,-3.947694802803824e-5,-9.222771080593783e-9,-1.1508795403832579e-4,-3.931977427169145e-5,-9.223487247363517e-9,-1.1463218392673738e-4,-3.9086539305895255e-5,-9.21849929028679e-9,-1.142709592978943e-4,-3.8821745934336895e-5,-9.210076040428456e-9,-1.1400074179654687e-4,-3.856946273893001e-5,-9.20078618611514e-9,-1.1380094799943816e-4,-3.836294492571193e-5,-9.192886631995141e-9,-1.1364261812623197e-4,-3.822069459714716e-5,-9.1879765359956e-9,-1.1349551541127026e-4,-3.814719957123449e-5,-9.186871306246775e-9,-1.1333258761490281e-4,-3.8135736535814055e-5,-9.189633338269424e-9,-1.1313230069867286e-4,-3.817141008984336e-5,-9.195706259883106e-9,-1.1287982382393343e-4,-3.823369291997683e-5,-9.204097657482591e-9,-1.1256786310513337e-4,-3.829851605574717e-5,-9.213553802888529e-9,-1.1219751803139118e-4,-3.8340376762559447e-5,-9.22269414066259e-9,-1.1177904223869293e-4,-3.833503671167999e-5,-9.230116686601745e-9,-1.1133191698447232e-4,-3.826315103578705e-5,-9.234523255112086e-9,-1.1088335748373442e-4,-3.811461096830071e-5,-9.234910233392347e-9,-1.1046449079987319e-4,-3.789262697562118e-5,-9.230826308386785e-9,-1.1010413601670693e-4,-3.7615910350771354e-5,-9.222627139411862e-9,-1.0982130517158393e-4,-3.731722308065027e-5,-9.21160402770721e-9,-1.0961868889767661e-4,-3.703748088216355e-5,-9.199872312326249e-9,-1.0947969429209346e-4,-3.681630820680492e-5,-9.189976537874282e-9,-1.0937067838856088e-4,-3.668157414423921e-5,-9.184272074658242e-9,-1.0924829447019257e-4,-3.664109554625678e-5,-9.18424056176897e-9,-1.0907020550257687e-4,-3.667913877536005e-5,-9.189954915184103e-9,-1.0880642515705916e-4,-3.6759033088402764e-5,-9.199907267392656e-9,-1.0844824947981108e-4,-3.683171835853091e-5,-9.211326762762983e-9,-1.0801195079731945e-4,-3.684853152381634e-5,-9.220949393187014e-9,-1.0753533107081977e-4,-3.6774884340293415e-5,-9.225997564122934e-9,-1.0706735543311275e-4,-3.6600269285523224e-5,-9.22499909034669e-9,-1.0665405844386353e-4,-3.634060345263345e-5,-9.218128116932532e-9,-1.0632599695639417e-4,-3.6031911809698865e-5,-9.206981038369621e-9,-1.0609189824736788e-4,-3.5718319405997615e-5,-9.19395506438557e-9,-1.0593992002165717e-4,-3.543962353913638e-5,-9.181522987160879e-9,-1.0584432970216088e-4,-3.5222894444418944e-5,-9.171654265312317e-9,-1.0577377509585269e-4,-3.5079615353876484e-5,-9.165501882736301e-9,-1.0569811427307857e-4,-3.500714701067259e-5,-9.163352800650679e-9,-1.0559264518508524e-4,-3.499226206662488e-5,-9.164771801813917e-9,-1.0544004786505433e-4,-3.5014920510423576e-5,-9.16883982493074e-9,-1.0523095671395252e-4,-3.5051391464275926e-5,-9.174389778026609e-9,-1.0496405295401565e-4,-3.507665669286638e-5,-9.180172150801203e-9,-1.0464618835727268e-4,-3.506655725701059e-5,-9.184939032839345e-9,-1.0429252092118758e-4,-3.500030193581135e-5,-9.187495988674884e-9,-1.039261276946598e-4,-3.48637823947789e-5,-9.186800523449334e-9,-1.0357615793353864e-4,-3.46536541858101e-5,-9.182170455832e-9,-1.0327350441689744e-4,-3.4381246691956354e-5,-9.173580720955574e-9,-1.0304364939716516e-4,-3.4074253186413085e-5,-9.161923230549191e-9,-1.0289802766204464e-4,-3.3773697803369534e-5,-9.149039646343281e-9,-1.0282725778280255e-4,-3.3524929232600696e-5,-9.137394421723031e-9,-1.0280029662432293e-4,-3.336441855594974e-5,-9.129418606410994e-9,-1.0277162008556858e-4,-3.3307298589755e-5,-9.126750143428798e-9,-1.0269452672034878e-4,-3.334132380659976e-5,-9.129679824022376e-9,-1.0253530901109662e-4,-3.3430128766657056e-5,-9.137028969170211e-9,-1.0228281327026914e-4,-3.352418168582912e-5,-9.146483951023313e-9,-1.0195058478501845e-4,-3.357486167811767e-5,-9.155243273725392e-9,-1.0157200536431759e-4,-3.354696552794696e-5,-9.160762004820197e-9,-1.0119077576295845e-4,-3.3426523116505044e-5,-9.161389983981338e-9,-1.0084972538708518e-4,-3.322258471680729e-5,-9.1567428994038e-9,-1.0058085340582454e-4,-3.296319855077416e-5,-9.1477233287177e-9,-1.0039895151362752e-4,-3.268715204906611e-5,-9.13620386476633e-9,-1.0030009479870362e-4,-3.243403248359135e-5,-9.124482475916777e-9,-1.0026481761500761e-4,-3.2235448634192776e-5,-9.114685797381227e-9,-1.002643617789796e-4,-3.210959204158094e-5,-9.108299298278605e-9,-1.0026767382911762e-4,-3.205986487873324e-5,-9.105941746310106e-9,-1.0024717983614368e-4,-3.207681406252085e-5,-9.107401083971613e-9,-1.0018239318013028e-4,-3.214184576455504e-5,-9.111860642617299e-9,-1.0006142614792553e-4,-3.223125875718116e-5,-9.118191582072067e-9,-9.988108258667136e-5,-3.2319691729833556e-5,-9.1251948611398e-9,-9.964632646321523e-5,-3.238278403756544e-5,-9.131729422340635e-9,-9.936964829441685e-5,-3.239938756272473e-5,-9.136742201877834e-9,-9.907040628933112e-5,-3.2353857807257145e-5,-9.139278262243717e-9,-9.877374852922494e-5,-3.22388541842853e-5,-9.138569270716463e-9,-9.850827687016545e-5,-3.2058685656720396e-5,-9.13425646517205e-9,-9.830143939364078e-5,-3.1832365719454527e-5,-9.126703455871307e-9,-9.817223068137955e-5,-3.159432274657247e-5,-9.117234559865558e-9,-9.812252419680496e-5,-3.138997708142053e-5,-9.108071823699427e-9,-9.813089016549055e-5,-3.126452109365012e-5,-9.10182146027846e-9,-9.815412222958905e-5,-3.124710157480261e-5,-9.100604093125194e-9,-9.813914491830552e-5,-3.1337456387429606e-5,-9.105211374499513e-9,-9.804153498796248e-5,-3.150322611607172e-5,-9.11475449547984e-9,-9.784154686536156e-5,-3.1690737195221436e-5,-9.127000792101932e-9,-9.754967528636868e-5,-3.1843765894223964e-5,-9.139172281973027e-9,-9.720055366819144e-5,-3.192085559051927e-5,-9.148776150107598e-9,-9.684015327249356e-5,-3.1904655488520306e-5,-9.154172659673398e-9,-9.651257696551535e-5,-3.180236177111936e-5,-9.154822358487452e-9,-9.62504127431069e-5,-3.163996841124646e-5,-9.151274976782774e-9,-9.60698168291565e-5,-3.145374077091899e-5,-9.144961054288212e-9,-9.596984265486474e-5,-3.128151423757891e-5,-9.137828523893096e-9,-9.593497386265119e-5,-3.115537334164327e-5,-9.131885483864583e-9,-9.593976606922285e-5,-3.109656681303233e-5,-9.128751308860314e-9,-9.595447136657913e-5,-3.111310201829616e-5,-9.129337933414458e-9,-9.595049936624177e-5,-3.119999178987712e-5,-9.133745810921736e-9,-9.590477548725535e-5,-3.134160856925637e-5,-9.141380171958168e-9,-9.580246226255177e-5,-3.151529116825042e-5,-9.151211708597388e-9,-9.563797539391283e-5,-3.16952830703858e-5,-9.162060481302314e-9,-9.541467373049275e-5,-3.185625961327806e-5,-9.172796825714589e-9,-9.514380915860319e-5,-3.197615493895167e-5,-9.182419310694514e-9,-9.48431552537596e-5,-3.2038443093745316e-5,-9.190051974883061e-9,-9.453543133902659e-5,-3.2034182987011704e-5,-9.194952520053085e-9,-9.424633486772374e-5,-3.1964113362905855e-5,-9.19662086089252e-9,-9.400158823504068e-5,-3.18408340759899e-5,-9.195038235111904e-9,-9.382220633420554e-5,-3.169033305608827e-5,-9.19095818861579e-9,-9.371778135278529e-5,-3.155104568024974e-5,-9.186065400464665e-9,-9.367914980804929e-5,-3.1468046822899884e-5,-9.182785199579648e-9,-9.367412170350315e-5,-3.1480918711509026e-5,-9.183626205872267e-9,-9.365156347345576e-5,-3.160755715402989e-5,-9.19020294586336e-9,-9.355668865963729e-5,-3.183175941432533e-5,-9.202419571888166e-9,-9.335267713728581e-5,-3.210430056471749e-5,-9.218371347956345e-9,-9.303667906521569e-5,-3.236020861117679e-5,-9.235103819495216e-9,-9.264032211325917e-5,-3.2543385860012626e-5,-9.249755228307922e-9,-9.221548591093086e-5,-3.262483810785695e-5,-9.26041652356236e-9,-9.181507378196565e-5,-3.260698117914955e-5,-9.266413523353581e-9,-9.147845491400025e-5,-3.251632942914815e-5,-9.268166415699002e-9,-9.122520847559706e-5,-3.239154168921172e-5,-9.266889513425695e-9,-9.105564635912965e-5,-3.227244723700269e-5,-9.2642646836748e-9,-9.095498913811478e-5,-3.219240887699171e-5,-9.262101784399266e-9,-9.08987318910297e-5,-3.217406213098664e-5,-9.261994204243429e-9,-9.085793054099272e-5,-3.222762121230062e-5,-9.265019829464496e-9,-9.080392835417925e-5,-3.2351052738033134e-5,-9.271567916967034e-9,-9.071228168806134e-5,-3.253168391369461e-5,-9.28134185774094e-9,-9.056569168800201e-5,-3.2748874236925676e-5,-9.293522462109239e-9,-9.035578936575062e-5,-3.297739074658915e-5,-9.307015941925984e-9,-9.008365802729651e-5,-3.319108369388331e-5,-9.32068773621464e-9,-8.975916266917992e-5,-3.336636099032471e-5,-9.33350717957054e-9,-8.939940883763627e-5,-3.348509546284864e-5,-9.344592008056796e-9,-8.902663953210632e-5,-3.353691102753202e-5,-9.353211946825554e-9,-8.866569313938621e-5,-3.352090126483869e-5,-9.35883336145802e-9,-8.834103551839693e-5,-3.3446806313605515e-5,-9.361261938630803e-9,-8.807317448099914e-5,-3.333560303798455e-5,-9.360872293875294e-9,-8.787408489854848e-5,-3.321895898344246e-5,-9.35881896249169e-9,-8.774178162211213e-5,-3.313618048205553e-5,-9.357051719661311e-9,-8.765551941425548e-5,-3.312704407820512e-5,-9.357971217288903e-9,-8.75747733839315e-5,-3.3219976944643985e-5,-9.363691049098633e-9,-8.74461410016907e-5,-3.341812218722618e-5,-9.375114762347986e-9,-8.7220065678816e-5,-3.3690479945789706e-5,-9.391311854138805e-9,-8.687212463896635e-5,-3.397702246395055e-5,-9.409699673510456e-9,-8.641654285989432e-5,-3.420979174434094e-5,-9.427069578077248e-9,-8.590181922728967e-5,-3.433967242416912e-5,-9.440848661633535e-9,-8.539061620032401e-5,-3.435314501297649e-5,-9.44984340985916e-9,-8.493672097339013e-5,-3.4271269582614564e-5,-9.454233252297501e-9,-8.45709727893319e-5,-3.413584988272384e-5,-9.45513539359531e-9,-8.429907159057472e-5,-3.399315338192215e-5,-9.454135610822126e-9,-8.410710066635141e-5,-3.388222278476255e-5,-9.452932691116559e-9,-8.39694300761685e-5,-3.382927951155617e-5,-9.453065287658341e-9,-8.385576288840835e-5,-3.384661045247159e-5,-9.455682021020762e-9,-8.373632656338405e-5,-3.39337961074905e-5,-9.461372860972362e-9,-8.358545827544782e-5,-3.407987563331084e-5,-9.470111676055729e-9,-8.338408132706894e-5,-3.426590539557689e-5,-9.481331913003121e-9,-8.312136430352067e-5,-3.446778153328366e-5,-9.494105686910258e-9,-8.279564587432089e-5,-3.465932720987703e-5,-9.507355644814983e-9,-8.241450667287213e-5,-3.481564090403858e-5,-9.520030613693909e-9,-8.19937854235765e-5,-3.491646452503521e-5,-9.531207314372736e-9,-8.155553782746594e-5,-3.494912799250977e-5,-9.540129776878508e-9,-8.112514759519504e-5,-3.491073158250606e-5,-9.546243568285508e-9,-8.072780222779476e-5,-3.480934834136822e-5,-9.549283156140592e-9,-8.038456389393579e-5,-3.466401475530754e-5,-9.549426224657887e-9,-8.010831362600719e-5,-3.450333338545574e-5,-9.54746360191402e-9,-7.989980971585162e-5,-3.4362440274271346e-5,-9.544875278633311e-9,-7.974437782718713e-5,-3.427773727254322e-5,-9.543676237437192e-9,-7.961061805952735e-5,-3.427884237468908e-5,-9.545950110564333e-9,-7.945341861300056e-5,-3.437837958684637e-5,-9.553132576768602e-9,-7.922353858236074e-5,-3.456254513569184e-5,-9.56529984876067e-9,-7.888371631202135e-5,-3.478810345141471e-5,-9.580865713138687e-9,-7.842594949679023e-5,-3.499174125974583e-5,-9.597013547859506e-9,-7.787972052612896e-5,-3.5111823238104886e-5,-9.61077091176288e-9,-7.730339317992335e-5,-3.5112654366270275e-5,-9.620133730535203e-9,-7.676190727235558e-5,-3.4997103078953485e-5,-9.624598331243174e-9,-7.630368913524509e-5,-3.480106932702219e-5,-9.62496228087358e-9,-7.594864786183333e-5,-3.457584341541249e-5,-9.622755990773589e-9,-7.568955618661085e-5,-3.4369955647098174e-5,-9.619710536672963e-9,-7.550120699012476e-5,-3.4218070735318946e-5,-9.617407235355379e-9,-7.53506844299028e-5,-3.4137703834965904e-5,-9.617061902570326e-9,-7.520512620818642e-5,-3.4130887726558557e-5,-9.619389347609227e-9,-7.503635353608889e-5,-3.4187713250424024e-5,-9.624544759331411e-9,-7.482323554456231e-5,-3.4289930549698735e-5,-9.63216195796353e-9,-7.455284746952063e-5,-3.441408243113663e-5,-9.641484197830746e-9,-7.422104933606681e-5,-3.4534311144901265e-5,-9.651545196785234e-9,-7.383266982034839e-5,-3.4625139821498456e-5,-9.661340808730684e-9,-7.340115252227199e-5,-3.466447763315732e-5,-9.669951148188559e-9,-7.29472860281118e-5,-3.4636811794840895e-5,-9.676610258024069e-9,-7.249670181575391e-5,-3.453612755069931e-5,-9.680751536488109e-9,-7.207617225320659e-5,-3.436789907206864e-5,-9.682071150846721e-9,-7.170907254595313e-5,-3.414954611457939e-5,-9.680633872207702e-9,-7.141062395474628e-5,-3.39088790257861e-5,-9.676997430229804e-9,-7.118375946617258e-5,-3.3680346460547944e-5,-9.672282908069223e-9,-7.101650731517465e-5,-3.349931488623629e-5,-9.668098481187566e-9,-7.088172523947388e-5,-3.33948756399492e-5,-9.666247026220778e-9,-7.074007291564022e-5,-3.3381977619494795e-5,-9.668224096412342e-9,-7.054706001923604e-5,-3.345448175111133e-5,-9.674640120668145e-9,-7.026421186175586e-5,-3.358188659485631e-5,-9.68481262676929e-9,-6.987236648803186e-5,-3.371310919852034e-5,-9.69679586348801e-9,-6.938216497629712e-5,-3.3789366876241454e-5,-9.707962916374584e-9,-6.883511643281062e-5,-3.376368965928737e-5,-9.715940864866819e-9,-6.829161852117123e-5,-3.3618736578177726e-5,-9.719434092883315e-9,-6.781005922500603e-5,-3.337302815858778e-5,-9.718519685799377e-9,-6.742756648217968e-5,-3.307197650765509e-5,-9.714369050431293e-9,-6.715167109481134e-5,-3.276964162612763e-5,-9.70868572509175e-9,-6.696431540140377e-5,-3.251149483555875e-5,-9.703181489926008e-9,-6.683272014943683e-5,-3.23249804831107e-5,-9.699229967536756e-9,-6.672046595425307e-5,-3.221830593712131e-5,-9.69768646622021e-9,-6.659514882482948e-5,-3.218413792480631e-5,-9.69883261424372e-9,-6.643222102070501e-5,-3.2204715407059465e-5,-9.702422223220024e-9,-6.621623206383647e-5,-3.225639014403438e-5,-9.707811412099236e-9,-6.594084229704343e-5,-3.231307689206832e-5,-9.714134303646899e-9,-6.560847130759857e-5,-3.234892257240772e-5,-9.720473000120565e-9,-6.522984548096849e-5,-3.2340745725612146e-5,-9.725978398839142e-9,-6.482324202400488e-5,-3.227068092840828e-5,-9.72993539962299e-9,-6.441292964570893e-5,-3.212909927557402e-5,-9.731798587080863e-9,-6.402628163536215e-5,-3.1917364877182857e-5,-9.731239839313383e-9,-6.368937200887575e-5,-3.164953586182567e-5,-9.728232443086724e-9,-6.342148728367543e-5,-3.135192586641782e-5,-9.723155862069091e-9,-6.3229704409613e-5,-3.105968506127635e-5,-9.716864968224381e-9,-6.310518395759158e-5,-3.081035792541784e-5,-9.710646408580894e-9,-6.302274843342547e-5,-3.0635492967811876e-5,-9.706009068758345e-9,-6.294459210654977e-5,-3.055226083848084e-5,-9.704313675315504e-9,-6.282790628516361e-5,-3.0557342633427204e-5,-9.706329094269245e-9,-6.263513206345579e-5,-3.062513212686725e-5,-9.711875217337033e-9]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json new file mode 100644 index 0000000..76c3a68 --- /dev/null +++ b/public/static/Cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json @@ -0,0 +1 @@ +{"version":"1.0","updated":"2008 Dec 02 20:00:00 UTC","interpolationOrder":9,"xysAlgorithm":"SOFA_DEL_PSI_EPS","sampleZeroJulianEphemerisDate":2442396.5,"stepSizeDays":1,"startIndex":9000,"numberOfSamples":1000,"samples":[-6.23446137633139e-5,-3.071164556992463e-5,-9.719731332151204e-9,-6.19586809157847e-5,-3.076438157665265e-5,-9.727914890125598e-9,-6.150587794551883e-5,-3.073654937098242e-5,-9.734280833128142e-9,-6.1034943329782044e-5,-3.060168191808949e-5,-9.737216476929997e-9,-6.0601038606681665e-5,-3.036287029042388e-5,-9.736134809126074e-9,-6.024888746053323e-5,-3.0051869736974383e-5,-9.731565682588457e-9,-5.999994090928063e-5,-2.971789522758825e-5,-9.724862066857019e-9,-5.9848834314815545e-5,-2.9411354882677176e-5,-9.71770907732456e-9,-5.976923198886019e-5,-2.916989718887004e-5,-9.711648469978378e-9,-5.972462316432335e-5,-2.9011586735457638e-5,-9.707751149758674e-9,-5.967870819510338e-5,-2.8935387308633597e-5,-9.70647628370283e-9,-5.9602228253192676e-5,-2.89259970676844e-5,-9.707695687073557e-9,-5.947591112549622e-5,-2.8959747148304846e-5,-9.710838540242717e-9,-5.929077173354268e-5,-2.9009608654381066e-5,-9.715094525623705e-9,-5.904719567985657e-5,-2.9048773862964067e-5,-9.71960852884578e-9,-5.8753773367436014e-5,-2.9053136374370507e-5,-9.72361187781754e-9,-5.842624685184096e-5,-2.9003338061866847e-5,-9.726475623750488e-9,-5.8086360356536405e-5,-2.8886966009567993e-5,-9.727714468149827e-9,-5.776002754298137e-5,-2.870105742876016e-5,-9.726995392498005e-9,-5.74741651198525e-5,-2.845449366073143e-5,-9.72419549652686e-9,-5.725183467800746e-5,-2.8169256139263426e-5,-9.71951151762819e-9,-5.7106100541113594e-5,-2.7879041181757347e-5,-9.713564114276547e-9,-5.7034227249689176e-5,-2.7623923778951554e-5,-9.707405962417725e-9,-5.7014849044397024e-5,-2.744114170465607e-5,-9.702361282140308e-9,-5.701050918052841e-5,-2.735425399096375e-5,-9.699698830847758e-9,-5.697609718243167e-5,-2.7364576162975244e-5,-9.700232368303819e-9,-5.6871038817050416e-5,-2.7448633497066595e-5,-9.704002376450864e-9,-5.667116781282969e-5,-2.7563221973356075e-5,-9.710182005555758e-9,-5.637617678776307e-5,-2.765667320675218e-5,-9.717264987992663e-9,-5.601027591624169e-5,-2.7682736375781414e-5,-9.723480590272698e-9,-5.561600483675091e-5,-2.7612936285683867e-5,-9.727297528384073e-9,-5.524303937361784e-5,-2.7443956618506687e-5,-9.727850312943274e-9,-5.493513840003189e-5,-2.7197955922928915e-5,-9.725154651913568e-9,-5.471906725691787e-5,-2.6915691607899557e-5,-9.72005407261872e-9,-5.4598911019501836e-5,-2.6644703453075705e-5,-9.713934027115233e-9,-5.455730383150816e-5,-2.64266189741069e-5,-9.708311206523093e-9,-5.4562420129529145e-5,-2.6287768574123053e-5,-9.704433569738843e-9,-5.457752704343605e-5,-2.623553492658023e-5,-9.703008653848694e-9,-5.456957532646678e-5,-2.6260220049275858e-5,-9.704121931504624e-9,-5.451464446828428e-5,-2.6340246599419492e-5,-9.707335422027123e-9,-5.439995050230707e-5,-2.6448131932234545e-5,-9.711898924726039e-9,-5.422339633670513e-5,-2.6555532499365036e-5,-9.716981565914689e-9,-5.399194066121386e-5,-2.663678226094542e-5,-9.721842938139277e-9,-5.37197431734721e-5,-2.667116151947731e-5,-9.725902670942154e-9,-5.342650643560834e-5,-2.6644534881516494e-5,-9.728727486336505e-9,-5.313587618209729e-5,-2.655097739679037e-5,-9.729995225631237e-9,-5.287334596399925e-5,-2.639462790136861e-5,-9.72950469114869e-9,-5.266297173036476e-5,-2.619143036945524e-5,-9.727266597271218e-9,-5.252243553464907e-5,-2.596971389861331e-5,-9.723645863256587e-9,-5.245681707745194e-5,-2.5767877042401753e-5,-9.719459836489783e-9,-5.245295661436816e-5,-2.562748717562385e-5,-9.715914975816248e-9,-5.247784135201871e-5,-2.558182145120203e-5,-9.714321344765071e-9,-5.248433005910525e-5,-2.5643167778965002e-5,-9.71565414605581e-9,-5.242443255043768e-5,-2.5794981125069657e-5,-9.720157774265109e-9,-5.2265507859568556e-5,-2.599424952537427e-5,-9.727205074415084e-9,-5.200192042456586e-5,-2.6184413784918434e-5,-9.735490249337039e-9,-5.165673914621095e-5,-2.6313264574752945e-5,-9.743443035999223e-9,-5.127351919687404e-5,-2.6348054742647138e-5,-9.749667801257827e-9,-5.0902725125982576e-5,-2.6282713166082426e-5,-9.75326720347049e-9,-5.0588284184408174e-5,-2.6136491038281e-5,-9.754009356253531e-9,-5.0357993370069754e-5,-2.5946393683606597e-5,-9.752342082004198e-9,-5.0219232993974796e-5,-2.5756667981670227e-5,-9.749262933352734e-9,-5.015982106504244e-5,-2.5608303159542794e-5,-9.746061951023208e-9,-5.0152906269271166e-5,-2.5530759317958693e-5,-9.743991748123502e-9,-5.016424167598713e-5,-2.5537314473559887e-5,-9.743957229389409e-9,-5.015987799753719e-5,-2.5624510658344092e-5,-9.746324283706057e-9,-5.011244865581866e-5,-2.5775123374663638e-5,-9.750904754883811e-9,-5.000492623338741e-5,-2.596321755352963e-5,-9.757101352467545e-9,-4.9831698223674514e-5,-2.6159651038122543e-5,-9.764134932390347e-9,-4.959756293540752e-5,-2.6336794409959954e-5,-9.77125471218565e-9,-4.9315586018946434e-5,-2.6471880876366733e-5,-9.777857341227311e-9,-4.900467765247903e-5,-2.6549048296052148e-5,-9.78350042703132e-9,-4.868733505302663e-5,-2.6560573645593127e-5,-9.787854781108205e-9,-4.8387507995782974e-5,-2.6507830841147043e-5,-9.790671063781774e-9,-4.812820015775109e-5,-2.640221991296037e-5,-9.791823659827242e-9,-4.792822925558667e-5,-2.626586053182433e-5,-9.791440657019166e-9,-4.7797688235235664e-5,-2.6131146731513124e-5,-9.790058210807481e-9,-4.7732434736905576e-5,-2.603750245204811e-5,-9.788680030956192e-9,-4.770949127982192e-5,-2.602362103765612e-5,-9.788622629016349e-9,-4.768699088683465e-5,-2.6115132800391774e-5,-9.791115783371455e-9,-4.7612514838547504e-5,-2.6311416798164514e-5,-9.796791594098938e-9,-4.744004786748611e-5,-2.6579162837951064e-5,-9.805340798551625e-9,-4.714894275327642e-5,-2.68596183979786e-5,-9.81558384504337e-9,-4.675409408145582e-5,-2.7088789244523173e-5,-9.82593563524379e-9,-4.63007016373858e-5,-2.7220538865820394e-5,-9.834966162719081e-9,-4.584698755933853e-5,-2.7240537539346205e-5,-9.841756608580806e-9,-4.544489497457328e-5,-2.716612358051693e-5,-9.845989371386469e-9,-4.512720869220526e-5,-2.7035870592725035e-5,-9.847894204339548e-9,-4.490350340869352e-5,-2.6895966227287968e-5,-9.848150476851382e-9,-4.4762813526265216e-5,-2.6788619054627426e-5,-9.847749002642056e-9,-4.467974944751262e-5,-2.6744535726717833e-5,-9.847788854326644e-9,-4.4621551529998665e-5,-2.67793858092927e-5,-9.849227199555758e-9,-4.4554711427458415e-5,-2.6893402551401513e-5,-9.852654250504786e-9,-4.445048423814215e-5,-2.7073346152810357e-5,-9.858177344922723e-9,-4.428881976659844e-5,-2.7296183901073322e-5,-9.865455416384905e-9,-4.406041691263042e-5,-2.753370714423536e-5,-9.873857188997167e-9,-4.376691930956634e-5,-2.7757247847319554e-5,-9.882664459772306e-9,-4.3419538053046194e-5,-2.7941805347373132e-5,-9.891234414250543e-9,-4.303660454191013e-5,-2.8069095603610774e-5,-9.899069051818642e-9,-4.264069174434751e-5,-2.8129368229640377e-5,-9.90579879900749e-9,-4.2255769073996823e-5,-2.8122238695490774e-5,-9.911139409555858e-9,-4.1904486407320275e-5,-2.8056896725693683e-5,-9.914892497705433e-9,-4.160543814119917e-5,-2.7951878164291356e-5,-9.9170275201943e-9,-4.137010911506443e-5,-2.783431847991674e-5,-9.917825281106567e-9,-4.119921521788755e-5,-2.7738086497587085e-5,-9.917998408072091e-9,-4.107878264055179e-5,-2.769954625238172e-5,-9.91867215364473e-9,-4.097763615938715e-5,-2.7749689768273665e-5,-9.921139370467895e-9,-4.0849404904229084e-5,-2.7902797854934692e-5,-9.926407792259145e-9,-4.0642441010064514e-5,-2.8145057541786642e-5,-9.934713814169385e-9,-4.031787237599612e-5,-2.8430538779043658e-5,-9.945298702787681e-9,-3.9868810330146976e-5,-2.8691908882654146e-5,-9.9566665170196e-9,-3.932833565054289e-5,-2.8864961803409028e-5,-9.967212572062042e-9,-3.875854394725441e-5,-2.891437192128338e-5,-9.975808367109482e-9,-3.822616913640833e-5,-2.8845330760606945e-5,-9.98201180056612e-9,-3.777943806979286e-5,-2.869613572190929e-5,-9.98594693625295e-9,-3.743725664498184e-5,-2.8519754654329504e-5,-9.98810862349428e-9,-3.719134397363045e-5,-2.8366020937962917e-5,-9.989234069973608e-9,-3.701525587842487e-5,-2.8270836040562245e-5,-9.99020103086058e-9,-3.6874340673262915e-5,-2.8252557552493445E-05,-9.991881928374356e-9,-3.6733633947777075e-5,-2.831302992680173e-5,-9.994958846882884e-9,-3.656313374093195e-5,-2.844073037686516e-5,-9.999766501751608e-9,-3.634100881655143e-5,-2.8614561011922926e-5,-1.000623541918002e-8,-3.605533964519792e-5,-2.8807801587885512e-5,-1.0013957531492734e-8,-3.570465334841229e-5,-2.8992079074828512e-5,-1.0022338457116705e-8,-3.529734816247884e-5,-2.914116709250595e-5,-1.0030762046344616e-8,-3.485006993645185e-5,-2.92343805861204e-5,-1.0038702615702036e-8,-3.4385142229079815e-5,-2.9259238226273796e-5,-1.0045757091094494e-8,-3.3927359255493513e-5,-2.9213049460563632e-5,-1.0051621058011619e-8,-3.350058407226353e-5,-2.9103332940466208e-5,-1.0056066702504657e-8,-3.3124457063630464e-5,-2.8947189972084985e-5,-1.0058976990550987e-8,-3.2811366323358286e-5,-2.8769735723801098e-5,-1.0060445345746964e-8,-3.256375787328263e-5,-2.8601623226662544e-5,-1.0060897143616392e-8,-3.2371816097269846e-5,-2.8475488693954947e-5,-1.0061145174295647e-8,-3.221189052935458e-5,-2.842075314931494e-5,-1.0062287880142022e-8,-3.204694100578321e-5,-2.8456309260332803e-5,-1.0065415316236122e-8,-3.183109485034811e-5,-2.8581804503757855e-5,-1.007118993199182e-8,-3.152026648812525e-5,-2.877048997646703e-5,-1.0079484318373714e-8,-3.108835216793204e-5,-2.8969238348406404e-5,-1.0089312218910324e-8,-3.0542974461299724e-5,-2.911131486583659e-5,-1.0099182540644034e-8,-2.992994780628945e-5,-2.9140766616140142e-5,-1.0107715115987456e-8,-2.9319253695152042e-5,-2.9036541761832005e-5,-1.0114124886146775e-8,-2.877809393386789e-5,-2.8820960229194144e-5,-1.0118307228329601e-8,-2.8346852894650365e-5,-2.8547443251060635e-5,-1.0120625267983092e-8,-2.803055359693186e-5,-2.8277133796314353e-5,-1.0121677071264258e-8,-2.7805852942645365e-5,-2.8058810315545394e-5,-1.0122171969069935e-8,-2.7634885870697304e-5,-2.7919586021142028e-5,-1.0122851241518537e-8,-2.7477784344898564e-5,-2.7865136011979794e-5,-1.0124374041290903e-8,-2.73005681768325e-5,-2.788470342701019e-5,-1.0127178785398857e-8,-2.707876938176712e-5,-2.7957027015369363e-5,-1.0131386580299943e-8,-2.6798428484780897e-5,-2.8055381987984983e-5,-1.0136799525049531e-8,-2.6455880523470634e-5,-2.8151496961065997e-5,-1.0142993650083491e-8,-2.6056989964450905e-5,-2.8218751221123247e-5,-1.0149458252670142e-8,-2.5615936366383297e-5,-2.82350089513246e-5,-1.0155717100330529e-8,-2.5153423477268736e-5,-2.8185218808561722e-5,-1.0161389371918144e-8,-2.469410784372093e-5,-2.80636100261117e-5,-1.0166188348621973e-8,-2.426321414819864e-5,-2.787501653366006e-5,-1.0169893731105325e-8,-2.3882668480529245e-5,-2.763487038497263e-5,-1.01723489245492e-8,-2.3567286234310905e-5,-2.7367666919278267e-5,-1.017351616196784e-8,-2.332156842397692e-5,-2.7103905438103306e-5,-1.017357593949472e-8,-2.3137641969046203e-5,-2.6875705732266855e-5,-1.0173013410180529e-8,-2.299476051584912e-5,-2.6711500845227497E-05,-1.017261329344951e-8,-2.2860705750699917e-5,-2.663018704620786e-5,-1.0173308322342749e-8,-2.2695665047880168e-5,-2.663518611623227e-5,-1.017589092482202e-8,-2.2459337873909423e-5,-2.6709603552242226e-5,-1.0180685150351775e-8,-2.212140867809451e-5,-2.6814846177850375e-5,-1.0187337375833014e-8,-2.1673671732367735e-5,-2.6895869468464378e-5,-1.0194873028803975e-8,-2.1139047774474032e-5,-2.68952440266726e-5,-1.0202044877588625e-8,-2.0570501852735378e-5,-2.6773653165214853e-5,-1.0207808391111026e-8,-2.0035779945461135e-5,-2.6527596262472074e-5,-1.0211650200164242e-8,-1.95929968856085e-5,-2.6192859779762135e-5,-1.0213616507492086e-8,-1.9270119523824262e-5,-2.5830075681245798e-5,-1.021413380368983e-8,-1.905933904298975e-5,-2.5500927912146165e-5,-1.021381348729072e-8,-1.892657043021345e-5,-2.5248592103061754e-5,-1.0213321886218076e-8,-1.8827443033921196e-5,-2.5090146839981592e-5,-1.0213277816654462e-8,-1.8720869387209668e-5,-2.5019585350191788e-5,-1.0214142627298827e-8,-1.8576464284264876e-5,-2.5015668692887527e-5,-1.0216127260583814e-8,-1.8376611843414558e-5,-2.504980617624261e-5,-1.0219166169699748e-8,-1.8115567499788158e-5,-2.5091878000311348e-5,-1.022297593256864e-8,-1.77975879404375e-5,-2.511396168920078e-5,-1.0227169183059294e-8,-1.743505293856026e-5,-2.5092754555130803e-5,-1.0231368833090536e-8,-1.7046707371919865e-5,-2.5011456803880348e-5,-1.0235274298180084e-8,-1.6655740859370975e-5,-2.4861532084328557e-5,-1.023866489114029e-8,-1.6287282974612118e-5,-2.464432330060455e-5,-1.0241365206381334e-8,-1.596501252310151e-5,-2.4372025169081737e-5,-1.024321801882643e-8,-1.570702113141324e-5,-2.406725812436014e-5,-1.0244103967347291e-8,-1.552160951313559e-5,-2.376063009939192e-5,-1.0244017040254267e-8,-1.5404061827608693e-5,-2.3486101581026236e-5,-1.0243161489551215e-8,-1.5335535519959935e-5,-2.327460877469775e-5,-1.0242006517918706e-8,-1.5284891552236783e-5,-2.314712391361825e-5,-1.0241237021644048e-8,-1.5213603604440276e-5,-2.3108728191468194e-5,-1.0241580512137116e-8,-1.5083201808082548e-5,-2.3145172717351075e-5,-1.0243555303704379e-8,-1.4864218209902013e-5,-2.32231622645874e-5,-1.0247243960115732e-8,-1.4545036900022462e-5,-2.3295366098052616e-5,-1.0252208937023976e-8,-1.4138251105215157e-5,-2.3310524416851092e-5,-1.0257614027791928e-8,-1.368146422366092e-5,-2.322748601135849e-5,-1.0262512342819018e-8,-1.322989051622768e-5,-2.3029486169829173e-5,-1.0266164007946504e-8,-1.2840855736179594e-5,-2.2732545405069593e-5,-1.0268236392507776e-8,-1.2555169579427251e-5,-2.238231187733215e-5,-1.0268825150242116e-8,-1.2383914527037539e-5,-2.2038912589209548e-5,-1.0268347802691693e-8,-1.2307249887307113e-5,-2.1756613087809175e-5,-1.0267393640885903e-8,-1.2284812012886326e-5,-2.156813016555327e-5,-1.0266572608916944e-8,-1.2270971936084373e-5,-2.1479552451146128e-5,-1.0266376938115249e-8,-1.2227457536302338e-5,-2.1474911265539056e-5,-1.0267077590847187e-8,-1.2129749205895953e-5,-2.1525263563921737e-5,-1.0268689111523196e-8,-1.1967892292312714e-5,-2.1597450054922837e-5,-1.0271017429226725e-8,-1.174422548889918e-5,-2.166023896731968e-5,-1.0273764819876203e-8,-1.1470257655664928e-5,-2.1687790859828148e-5,-1.0276640831595281e-8,-1.1163872918540682e-5,-2.16613873970703e-5,-1.0279429528370393e-8,-1.0847087574647729e-5,-2.1570437594962387e-5,-1.0281991235380007e-8,-1.0544002989509588e-5,-2.141339145539365e-5,-1.0284216045362617e-8,-1.0278390240021108e-5,-2.1198652865103365e-5,-1.0285974464584003e-8,-1.0070447996162899e-5,-2.0945037086426453e-5,-1.028711043152021e-8,-9.932690801530476e-6,-2.068088652200719e-5,-1.028749799157689e-8,-9.86563644678306e-6,-2.0440844298465255e-5,-1.0287141168707594e-8,-9.854764583517574e-6,-2.0259766952748523e-5,-1.028626273479879e-8,-9.870619619233569e-6,-2.01644508838674e-5,-1.0285319481300823e-8,-9.8733786193769e-6,-2.0165339281957866e-5,-1.0284908068411034e-8,-9.821625784056985e-6,-2.0251252759600633e-5,-1.0285579389915266e-8,-9.683168074476673e-6,-2.0389683901633625e-5,-1.0287635145367275e-8,-9.444561568473699e-6,-2.053338593781372e-5,-1.0290997813059452e-8,-9.116224347150207e-6,-2.063177957102368e-5,-1.0295216467786993e-8,-8.731339354531077e-6,-2.0644132770129046e-5,-1.0299605534523448e-8,-8.338457137712565e-6,-2.055092931652111e-5,-1.030345694288755e-8,-7.98933323349338e-6,-2.0360097137701205e-5,-1.0306242488373733e-8,-7.72506620945875e-6,-2.0105711184980106e-5,-1.0307743277604975e-8,-7.564775484823967e-6,-1.983876173135379e-5,-1.0308080804889762e-8,-7.500921681843046e-6,-1.9612526930376168e-5,-1.0307656350511951e-8,-7.503139782780013e-6,-1.946768074753192e-5,-1.0307019062928134e-8,-7.528820005869814e-6,-1.9422601531502887e-5,-1.0306699910081859e-8,-7.535794278292598e-6,-1.947177763761887e-5,-1.0307063665786794e-8,-7.492269894596984e-6,-1.959128917115925e-5,-1.0308233957531626e-8,-7.381486721375345e-6,-1.974765598713154e-5,-1.0310113143840973e-8,-7.201498312177095e-6,-1.990624677978869e-5,-1.031247670749912e-8,-6.962107167616799e-6,-2.0037161470478344e-5,-1.031508699283958e-8,-6.680993863389137e-6,-2.011834907841151e-5,-1.0317770097194946e-8,-6.380273436048308e-6,-2.0136768138740442e-5,-1.032042648831648e-8,-6.0838277247680745e-6,-2.0088636779103125e-5,-1.0322983928965702e-8,-5.815108860030673e-6,-1.9979521669310532e-5,-1.0325335032912242e-8,-5.594817165694961e-6,-1.9824453315227466e-5,-1.0327309582072665e-8,-5.437930590768389e-6,-1.9647685779100526e-5,-1.0328712972235372e-8,-5.349939383493514e-6,-1.948122710398913e-5,-1.0329423078834094e-8,-5.3228826376455855e-6,-1.936095973346019e-5,-1.0329498903693821e-8,-5.332864110333339e-6,-1.9319532507723174e-5,-1.0329235310495402e-8,-5.341522628441661e-6,-1.9376734531154476e-5,-1.0329117209882681e-8,-5.303353476159965e-6,-1.953039383977173e-5,-1.0329676054612896e-8,-5.17823507516099e-6,-1.9752454282041895e-5,-1.0331308373795825e-8,-4.945019491343102e-6,-1.9993909540435985e-5,-1.0334140752283602e-8,-4.610138350751177e-6,-2.019829297048899e-5,-1.0337995748268947e-8,-4.206914461260477e-6,-2.0318725218684748e-5,-1.0342450652703292e-8,-3.7858145479968068e-6,-2.033162353691172e-5,-1.0346947057188743e-8,-3.3999204340748854e-6,-2.0242322080569558e-5,-1.0350921705190584e-8,-3.090978422107698e-6,-2.0081863583639396e-5,-1.035394277316305e-8,-2.879939472361453e-6,-1.9897267305424163e-5,-1.0355827001534681e-8,-2.7637461044958318e-6,-1.9738805558921248e-5,-1.035669501194934e-8,-2.7182918430026305e-6,-1.9647845328083208e-5,-1.0356930437472887e-8,-2.706078182001334e-6,-1.964815539595743e-5,-1.0357046501868146e-8,-2.6861280184476436e-6,-1.9742416449230415e-5,-1.035751449251452e-8,-2.623356484294166e-6,-1.9914165200530054e-5,-1.0358627867133187e-8,-2.495051690997066e-6,-2.0133848461016657e-5,-1.0360457505484327e-8,-2.2933525948354025e-6,-2.0366613404506264e-5,-1.0362901596694904e-8,-2.024101506874866e-6,-2.057945330065126e-5,-1.036578541391425e-8,-1.703438490176005e-6,-2.0746243231691587e-5,-1.0368950180661795e-8,-1.353670649395772e-6,-2.085034603832491e-5,-1.0372285844231933e-8,-9.995092065925437e-7,-2.0885306200609506e-5,-1.0375703780683756e-8,-6.650892091385618e-7,-2.085449651147433e-5,-1.0379079635308058e-8,-3.715968940342627e-7,-2.0770428531116953e-5,-1.0382217349452199e-8,-1.3503446063713592e-7,-2.065397945826239e-5,-1.0384871607393536e-8,3.635039213145238e-8,-2.053328258334241e-5,-1.0386834569506982e-8,1.451554926153161e-7,-2.0441523455916053e-5,-1.038805057918194e-8,2.0789280435282035e-7,-2.041250688557186e-5,-1.0388697272151172e-8,2.56355366977416e-7,-2.047315309918241e-5,-1.0389176849844525e-8,3.3464806040304173e-7,-2.0633626967615144e-5,-1.039000389350313e-8,4.896682666698106e-7,-2.0878520990299207e-5,-1.0391635630909641e-8,7.558554175414243e-7,-2.1164864508976094e-5,-1.0394332164603972e-8,1.1400137473200676e-6,-2.143168146622313e-5,-1.039811235383832e-8,1.6149011662753742e-6,-2.161972150492724e-5,-1.040278944838272e-8,2.1267889603254867e-6,-2.169252145724684e-5,-1.0408016370122865e-8,2.613791080986166e-6,-2.1648099623553002e-5,-1.0413314414030032e-8,3.0255611796536674e-6,-2.1516600834236966e-5,-1.0418136661790554e-8,3.335896657502066e-6,-2.1347475609993867e-5,-1.0422008383847894e-8,3.5455028334495375e-6,-2.1193595706788387e-5,-1.0424695027343131e-8,3.6771057866818085e-6,-2.1098205117584193e-5,-1.0426297045670991e-8,3.766730983759074e-6,-2.1087212163472165e-5,-1.0427207186394536e-8,3.8543118584060025e-6,-2.116678673670468e-5,-1.0427955059979016e-8,3.97556153049034e-6,-2.1325112935168602e-5,-1.0429021553114722e-8,4.156112148298531e-6,-2.1536968915716497e-5,-1.043071137120023e-8,4.4083884967787636e-6,-2.1769858276116903e-5,-1.0433124870667529e-8,4.731238299426264e-6,-2.199039967092715e-5,-1.0436213182297564e-8,5.111871251593329e-6,-2.216982148981789e-5,-1.0439862617282118e-8,5.5293180610449155e-6,-2.228781360239789e-5,-1.0443951826756803e-8,5.958483105439134e-6,-2.2334471279948907e-5,-1.0448355486385057e-8,6.3739591557127685e-6,-2.2310548005592115e-5,-1.0452908274701619e-8,6.753167656295747e-6,-2.2226596306971968e-5,-1.0457371227043073e-8,7.0788641774440105e-6,-2.2101555638768476e-5,-1.0461442256004719e-8,7.341270437022586e-6,-2.19610250197676e-5,-1.0464828194753588e-8,7.540107011405848e-6,-2.18351220744106e-5,-1.0467357564690674e-8,7.686656069240698e-6,-2.1755428418429816e-5,-1.0469080980364281e-8,7.805377469636384e-6,-2.175014455624397e-5,-1.047029980195859e-8,7.933563002743403e-6,-2.1836872868918745e-5,-1.0471493607166954e-8,8.116719413656968e-6,-2.2013889674084526e-5,-1.0473170238320335e-8,8.397782946960609e-6,-2.2253242470900754e-5,-1.0475713376965965e-8,8.801167458084262e-6,-2.2501424654771112e-5,-1.0479313312473675e-8,9.31809147430383e-6,-2.2692544610459407e-5,-1.0483994091602052e-8,9.903277804372193e-6,-2.2771894060168208e-5,-1.0489651043077342e-8,1.0488693236733184e-5,-2.2718401944810526e-5,-1.0496011071352977e-8,1.1008517592282977e-5,-2.2552507598399298e-5,-1.0502567400688094e-8,1.14214527653244e-5,-2.2325484053898436e-5,-1.0508639692043991e-8,1.1719729539192924e-5,-2.2098427892878435e-5,-1.051360321451119e-8,1.192434757606461e-5,-2.192293983959106e-5,-1.0517149141774825e-8,1.2073148493867486e-5,-2.1830348879371115e-5,-1.0519399549919799e-8,1.2208507379845121e-5,-2.1829582167914723e-5,-1.0520823108331641e-8,1.2368142087573956e-5,-2.1910517424363665e-5,-1.0522026852220468e-8,1.2579647860001937e-5,-2.204963465047748e-5,-1.0523548294514526e-8,1.2858046046948135e-5,-2.2216044306126058e-5,-1.052573427092128e-8,1.3205504635807662e-5,-2.2377097194277054e-5,-1.0528728383253077e-8,1.3612660353343853e-5,-2.2503232700248113e-5,-1.0532528837699294e-8,1.4061128311368573e-5,-2.257179941745656e-5,-1.053705767622001e-8,1.4526835423976653e-5,-2.2569659248670465e-5,-1.0542194374134102e-8,1.4983796312142356e-5,-2.2494425657141477e-5,-1.0547763574333112e-8,1.5407831934948618e-5,-2.2354282969079747e-5,-1.0553504640982075e-8,1.5779770461427512e-5,-2.2166624359187616e-5,-1.0559067684047334e-8,1.608797482690634e-5,-2.195590135189993e-5,-1.0564065337397685e-8,1.6330245854374478e-5,-2.1750905552668204e-5,-1.0568177866410433e-8,1.6515130621988764e-5,-2.1581513602797013e-5,-1.0571271898841906e-8,1.6662595891771928e-5,-2.1474755707688038e-5,-1.0573475716392125e-8,1.680367989659793e-5,-2.144982680559584e-5,-1.0575164031555221e-8,1.6977991855744892e-5,-2.15119081550659e-5,-1.0576851619497795e-8,1.7227451460833117e-5,-2.164590037929872e-5,-1.0579043607594197e-8,1.758528349482335e-5,-2.1813063305720084e-5,-1.0582122319913347e-8,1.8061786594786307e-5,-2.1955189701945334e-5,-1.058632473338257e-8,1.8632948981106676e-5,-2.200995658499017e-5,-1.0591773118012249e-8,1.9241195983456193e-5,-2.193466323120593e-5,-1.0598445172373046e-8,1.981317133003406e-5,-2.1726452282952587e-5,-1.0606040069575834e-8,2.0287448616256157e-5,-2.1425281858291863e-5,-1.061388459734303e-8,2.0636332778655594e-5,-2.109672690297479e-5,-1.0621077002227759e-8,2.087033260256244e-5,-2.0805852875933422e-5,-1.0626847060734854e-8,2.1026869693195923e-5,-2.0597119217422514e-5,-1.0630882019558624e-8,2.115329294074093e-5,-2.0487273010198692e-5,-1.0633405474768798e-8,2.129300028400665e-5,-2.0468775249628576e-5,-1.0635008899056331e-8,2.1477766769687902e-5,-2.0517857674518222e-5,-1.0636384654839218e-8,2.172530639983127e-5,-2.0602735888928814e-5,-1.0638109815842078e-8,2.203989369531137e-5,-2.0690072956350867e-5,-1.0640550610319622e-8,2.2414327228279076e-5,-2.0749586688981025e-5,-1.0643876480653403e-8,2.2832428864176618e-5,-2.075731437602081e-5,-1.0648123545462657e-8,2.327186373709147e-5,-2.06979052512023e-5,-1.065324691100052e-8,2.370725263408254e-5,-2.056607264478361e-5,-1.065912813728469e-8,2.4113571523498897e-5,-2.0367140342581537e-5,-1.0665546197757955e-8,2.4469666599175597e-5,-2.011644324456059e-5,-1.067215081453571e-8,2.4761457155718238e-5,-1.9837455761494462e-5,-1.0678483547801098e-8,2.4984396740016067e-5,-1.9558825643028435e-5,-1.0684064625935296e-8,2.5144939672969598e-5,-1.9310587473940774e-5,-1.0688525639022025e-8,2.5260818881569855e-5,-1.9119802585786575e-5,-1.06917361236997e-8,2.535994562171527e-5,-1.9005914717674657e-5,-1.069386581323808e-8,2.5477696466233576e-5,-1.897609088271257e-5,-1.0695349149176802e-8,2.5652094341733997e-5,-1.902096367210599e-5,-1.0696767956414568e-8,2.5916298087693046e-5,-1.9111975005796678e-5,-1.0698709732170148e-8,2.628859728374691e-5,-1.9202643001807574e-5,-1.0701666562329869e-8,2.6762094197675117e-5,-1.9236556751696734e-5,-1.0705996336353121e-8,2.729911355674748e-5,-1.9163344524585584e-5,-1.0711891767678148e-8,2.783684602254258e-5,-1.895885387153898e-5,-1.0719277613221644e-8,2.8306670586864564e-5,-1.8639334239086277e-5,-1.072766183557865e-8,2.8659855505782475e-5,-1.8258763113995928e-5,-1.073612159190717e-8,2.8885279659063856e-5,-1.7888184927921706e-5,-1.0743575505291491e-8,2.9009231738796605e-5,-1.7588764782654586e-5,-1.0749225136080199e-8,2.908000233439939e-5,-1.7393518711195572e-5,-1.0752864147570606e-8,2.914855079008243e-5,-1.7304111401313012e-5,-1.0754868997586099e-8,2.9254770735155143e-5,-1.7298721919266967e-5,-1.0755947029287413e-8,2.9421960148790195e-5,-1.73433769434448e-5,-1.0756840443938963e-8,2.9657262395368594e-5,-1.7401543433202763e-5,-1.075813349050785e-8,2.9954830790562838e-5,-1.7440335048629465e-5,-1.0760197584755174e-8,3.0299471035757358e-5,-1.7433879737981824e-5,-1.0763229561035464e-8,3.066988743140981e-5,-1.7365039408173015e-5,-1.0767308977273792e-8,3.104156445903691e-5,-1.7226340848682806e-5,-1.0772421289059723e-8,3.138958150404849e-5,-1.7020431608455362e-5,-1.0778433463519163e-8,3.169160978062888e-5,-1.67599800034654e-5,-1.0785050830896731e-8,3.193113385062856e-5,-1.6466649719056538e-5,-1.0791801522036606e-8,3.2100549457274216e-5,-1.6168735086317945e-5,-1.0798090040294278e-8,3.2203473041458363e-5,-1.5897357896149383e-5,-1.080332573716205e-8,3.225558795119785e-5,-1.568153341658853e-5,-1.0807089151843031e-8,3.2283527758016355e-5,-1.5542734995758057e-5,-1.0809272801144117e-8,3.232156973954858e-5,-1.548986537631878e-5,-1.0810136690642487e-8,3.24062788787755e-5,-1.551564386066977e-5,-1.0810253821627843E-08,3.256954672694955e-5,-1.5595319915829232e-5,-1.0810370807169095e-8,3.2830743045217534e-5,-1.5688646392023816e-5,-1.0811243374832355e-8,3.318930936264058e-5,-1.5746136030541182e-5,-1.0813499406816032e-8,3.362016828548337e-5,-1.572010074949781e-5,-1.0817540474292183e-8,3.4075238666891787e-5,-1.5579179787124913e-5,-1.0823450353064908e-8,3.449382518613816e-5,-1.532196370613026e-5,-1.0830892582439516e-8,3.482107455406541e-5,-1.498254328611866e-5,-1.0839063244369992e-8,3.502767239053273e-5,-1.4622079522363778e-5,-1.0846829814097262e-8,3.5120439857015004e-5,-1.4307820231652071e-5,-1.085309302508078e-8,3.51375862864246e-5,-1.4089687106817873e-5,-1.085719959088525e-8,3.513199200269295e-5,-1.3986345854532377e-5,-1.085914650566585e-8,3.51525500412995e-5,-1.3985560988209588e-5,-1.085947705163363e-8,3.523209339490654e-5,-1.4054646803086456e-5,-1.0858988747294016e-8,3.5384088933798624e-5,-1.4153334684894148e-5,-1.0858452300955869e-8,3.560538153213612e-5,-1.4243709791482467e-5,-1.0858457682387729e-8,3.5881218350812025e-5,-1.4295764431560704e-5,-1.0859389106431877e-8,3.619005612992247e-5,-1.4289538747822578e-5,-1.0861464399875234e-8,3.650727263331189e-5,-1.4215445163763979e-5,-1.0864770150441248e-8,3.680795793798622e-5,-1.4073968871802461e-5,-1.0869255064842456e-8,3.7069338849790505e-5,-1.3875233842953704e-5,-1.0874690311021376e-8,3.7273324238066565e-5,-1.3638322204225281e-5,-1.0880636211450608e-8,3.740935211446729e-5,-1.338984019635138e-5,-1.0886460859978193e-8,3.747723555199965e-5,-1.3161108246832657e-5,-1.0891439508632244e-8,3.748918890039127e-5,-1.2983612439641286e-5,-1.0894923864558378e-8,3.746992648426565e-5,-1.2882969889767162e-5,-1.0896531846094513e-8,3.745388166964016e-5,-1.2872486930655807e-5,-1.089628939077259e-8,3.7479301400060466e-5,-1.2948111531254483e-5,-1.089466332568615e-8,3.758006931596514e-5,-1.3086710784613064e-5,-1.0892467653005773e-8,3.7777099336497654e-5,-1.3248905734680901e-5,-1.0890674230236611e-8,3.807156828641263e-5,-1.3386503835473725e-5,-1.0890190192257392e-8,3.844207700891592e-5,-1.3453370708504295e-5,-1.0891659080748418e-8,3.8847217212184006e-5,-1.341755372714709e-5,-1.0895313751720727e-8,3.9234030267991595e-5,-1.3271607631699584e-5,-1.090089279363746e-8,3.955132226947631e-5,-1.3037539781839813e-5,-1.0907643242370493e-8,3.976462669241938e-5,-1.2763223288738137e-5,-1.0914452499003047e-8,3.9867493531828635e-5,-1.250952451713426e-5,-1.0920130006578416e-8,3.988372523989806e-5,-1.2331758085782543e-5,-1.0923768775661982e-8,3.9858740281902724e-5,-1.226291312067013e-5,-1.0925025267279314e-8,3.98438771345933e-5,-1.2305852412647015e-5,-1.0924174807119913e-8,3.988096864166715e-5,-1.2436775734862486e-5,-1.092193559817097e-8,3.9993234799773925e-5,-1.2616327199137168e-5,-1.0919186656117713e-8,4.0184029323987886e-5,-1.2802124998079611e-5,-1.0916728214422174e-8,4.0441034122307655e-5,-1.295806215039957e-5,-1.0915158387722742e-8,4.07423430323965e-5,-1.3059008181614689e-5,-1.0914851840032176e-8,4.106194258997215e-5,-1.309190696252388e-5,-1.0915982377055156e-8,4.137369026554492e-5,-1.305496471159586e-5,-1.0918538217819229e-8,4.165397699143815e-5,-1.295627528662622e-5,-1.0922312589289403e-8,4.188372567499801e-5,-1.281253335343146e-5,-1.0926886273075621e-8,4.205038798547874e-5,-1.2647779157268254e-5,-1.0931637253225023e-8,4.2150263329725885e-5,-1.2491600175957169e-5,-1.0935808929506866e-8,4.219089514943613e-5,-1.2376014975777942e-5,-1.0938645719799141e-8,4.219264556971658e-5,-1.2330443038611213e-5,-1.0939574041035733e-8,4.2187994684927e-5,-1.2374868917154073e-5,-1.0938381011529256e-8,4.221708942536862e-5,-1.251262722220375e-5,-1.0935330563847715e-8,4.2319148750577894e-5,-1.272563608677644e-5,-1.0931164753811414e-8,4.252146931834362e-5,-1.2975210570017808e-5,-1.0926967333923104e-8,4.282981205890698e-5,-1.3209939979367455e-5,-1.0923913734952636e-8,4.3224317253663856e-5,-1.3379021269503886e-5,-1.092296888156952e-8,4.3663191015489984e-5,-1.3446687017306154e-5,-1.0924616375420668e-8,4.40932553261884e-5,-1.3402692615521834e-5,-1.0928699864093918e-8,4.446391154055205e-5,-1.3265486287865059e-5,-1.0934436131087437e-8,4.4740262897078254e-5,-1.3077370375528966e-5,-1.0940609312170373e-8,4.491180449520049e-5,-1.2893262674070154e-5,-1.0945898968800855e-8,4.49944176700801e-5,-1.2766207079580588e-5,-1.0949239480507803e-8,4.502512200115446e-5,-1.273370298418019e-5,-1.0950092267772875e-8,4.505116850684658e-5,-1.2808910095088956e-5,-1.0948539845884595e-8,4.511705275984765e-5,-1.2979305349759284e-5,-1.0945188231944347e-8,4.5253768849291526e-5,-1.3212635289537497e-5,-1.0940942427650663e-8,4.547343858202198e-5,-1.3467274984818715e-5,-1.093675586758881e-8,4.576991139681106e-5,-1.370288962080165e-5,-1.0933437996680767e-8,4.6123562686564354e-5,-1.3888173614010929e-5,-1.0931552459312198e-8,4.6507586318521756e-5,-1.4004532581867268e-5,-1.0931388495325245e-8,4.689364295154041e-5,-1.404638935558007e-5,-1.0932970781736282e-8,4.725592017948633e-5,-1.401955872819049e-5,-1.0936077710211673e-8,4.7573669880768315e-5,-1.3939013934426217e-5,-1.0940262282537435e-8,4.783282623871706e-5,-1.3826794886489019e-5,-1.0944887017204275e-8,4.8027394648472436e-5,-1.3710116999369636e-5,-1.0949190756732851e-8,4.816102679731794e-5,-1.361918978051325e-5,-1.095239527820225e-8,4.824866180786038e-5,-1.3583965343721564e-5,-1.0953844774146032e-8,4.8317389669767263E-05,-1.3629077500997938e-5,-1.0953156144793383e-8,4.8404937665998705e-5,-1.3766894228811147e-5,-1.0950352515756894e-8,4.85539270343216e-5,-1.3990186698127629e-5,-1.094594628661613e-8,4.880120852726276e-5,-1.4267952993854126e-5,-1.0940929580088114e-8,4.9164604434804093e-5,-1.4548760923785778e-5,-1.0936627198037842e-8,4.963284107903462e-5,-1.4773613411439147e-5,-1.0934389782899522e-8,5.016508945338154e-5,-1.4894876338232566e-5,-1.0935178671721424e-8,5.070227547728938e-5,-1.4892932210451892e-5,-1.0939190020118924e-8,5.118560276541905e-5,-1.4782534477633037e-5,-1.0945713139716886e-8,5.157392379064546e-5,-1.4606625431828425e-5,-1.095332893238933e-8,5.185338963389235e-5,-1.4421810233716862e-5,-1.0960371481365232e-8,5.203770610741841e-5,-1.4282157086463557e-5,-1.0965440644733544e-8,5.216122418436789e-5,-1.422646572966351e-5,-1.0967760623641757e-8,5.226841451573015e-5,-1.4271353392898255e-5,-1.0967288706004566e-8,5.2402901302713924e-5,-1.4410350265664105e-5,-1.0964601820102489e-8,5.2598368352539667e-5,-1.4617978010402564e-5,-1.0960658830434025e-8,5.2872840342696726e-5,-1.4857176091440661e-5,-1.0956540629101209e-8,5.322704970841118e-5,-1.5088075305254894e-5,-1.0953236332976238e-8,5.364663492512684e-5,-1.5275993367745722e-5,-1.0951500603035131e-8,5.410696514106418e-5,-1.539698624027727e-5,-1.095178087382418e-8,5.457893133346143e-5,-1.5440298921740233e-5,-1.0954194761142424e-8,5.50342383558213e-5,-1.540806131983914e-5,-1.0958542424790509e-8,5.544932692850507e-5,-1.5313173657149106e-5,-1.096434545062792e-8,5.580777697902618e-5,-1.5176465955951547e-5,-1.0970910845978872e-8,5.610161114139606e-5,-1.502389729946295e-5,-1.0977420875607443e-8,5.633207828382777e-5,-1.4883981469539802e-5,-1.0983045974823884e-8,5.651030827952544e-5,-1.4785143953867945e-5,-1.0987069782932988e-8,5.6657843445042456E-05,-1.475241870537396e-5,-1.098900869828785e-8,5.68064043339674e-5,-1.480281230944594e-5,-1.0988713689162896e-8,5.6995445257911e-5,-1.493919710310919e-5,-1.0986451645489575e-8,5.726569833881333e-5,-1.5144085304198487e-5,-1.0982961665724738e-8,5.7647873217573626e-5,-1.537676462498628e-5,-1.097945336000276e-8,5.8148783022304093e-5,-1.5578618482013747e-5,-1.0977468969124607e-8,5.8741629395056166e-5,-1.5689303712884644e-5,-1.0978518978595156e-8,5.936880170599819e-5,-1.5669452550320848e-5,-1.0983516728908241e-8,5.995982222233368e-5,-1.5518212400740367e-5,-1.0992265385709335e-8,6.045655109961612e-5,-1.5274524989521094e-5,-1.100336461316192e-8,6.083213388443301e-5,-1.500128721893175e-5,-1.1014687824535179e-8,6.109517706905173e-5,-1.476232162248893e-5,-1.1024177858417426e-8,6.128078642644321e-5,-1.4603933293794295e-5,-1.1030515003487311e-8,6.14360565632286e-5,-1.4546623392676997e-5,-1.1033379525122147e-8,6.160676979381152e-5,-1.4585862441534919e-5,-1.1033325129027129e-8,6.182836446050053e-5,-1.4698115916188576e-5,-1.103144492460905e-8,6.212137962144658e-5,-1.4848716247797194e-5,-1.1029016395917635e-8,6.249043218855688e-5,-1.499957486442772e-5,-1.1027231651313366e-8,6.292575713367833e-5,-1.5115848315998846e-5,-1.1027035010884309e-8,6.340659244996193e-5,-1.5171078050374148e-5,-1.1029042575856415e-8,6.39057084276371e-5,-1.5150397168465046e-5,-1.1033511588368882e-8,6.439430170432664e-5,-1.5051632264841132e-5,-1.1040338007405747e-8,6.484651366485014e-5,-1.4884453987230887e-5,-1.1049078955669309e-8,6.524295871579131e-5,-1.4668006957840344e-5,-1.1059009733669053e-8,6.557293822920603e-5,-1.4427696477046931e-5,-1.106922243082436e-8,6.583546021894932e-5,-1.4191801641639522e-5,-1.1078757988711264e-8,6.603942429151922e-5,-1.3988227254888844e-5,-1.1086754263160646e-8,6.620324712438544e-5,-1.3841351539194972e-5,-1.1092584244638724e-8,6.635399675116738e-5,-1.376871069724712e-5,-1.1095960923446284e-8,6.652567539394843e-5,-1.377713360613599e-5,-1.1097002545640146e-8,6.675562941069513e-5,-1.3858317394900903e-5,-1.109626926494747e-8,6.707780774668518e-5,-1.3985038180359028e-5,-1.1094780789983727e-8,6.751241829499467e-5,-1.4110813964274978e-5,-1.1093985695546706e-8,6.805398404589733e-5,-1.4176969697956724e-5,-1.1095592658974113e-8,6.866384590550756e-5,-1.4129570457204582e-5,-1.1101140430408416e-8,6.927548828970987e-5,-1.3942193950697216e-5,-1.1111323602410547e-8,6.981586375490909e-5,-1.3632135932979031e-5,-1.1125409233657399e-8,7.023376113526364e-5,-1.3257268294156674e-5,-1.1141255562749935e-8,7.051856313032443e-5,-1.2893039413830864e-5,-1.1156102060587921e-8,7.06990864524921e-5,-1.2603544775620664e-5,-1.1167680283957444e-8,7.082667807448929e-5,-1.2422764469719474e-5,-1.1174960488599823e-8,7.095499623308146e-5,-1.2351727669469376e-5,-1.1178226969257668e-8,7.112590319904138e-5,-1.2366745927631601e-5,-1.1178667858819269e-8,7.136360199813396e-5,-1.2431038164156497e-5,-1.117783577309838e-8,7.167471562637514e-5,-1.2504825814492575e-5,-1.1177222677717251e-8,7.20513073116622e-5,-1.2552337068439892e-5,-1.1178022183958767e-8,7.247483939519828e-5,-1.2546082636510993e-5,-1.1181041603564716e-8,7.292025057925622e-5,-1.2469246626440453e-5,-1.1186692155499417e-8,7.335996924164086e-5,-1.2316707228409032e-5,-1.1195001134773114e-8,7.376777185043507e-5,-1.2094851223874839e-5,-1.1205627668886617e-8,7.41223204444516e-5,-1.1820215935622424e-5,-1.1217891224875756e-8,7.441008632046292e-5,-1.1516986111407657e-5,-1.1230839822596301e-8,7.462727595584035e-5,-1.121357421653002e-5,-1.1243374292470443e-8,7.478054238337684e-5,-1.0938760084437633e-5,-1.1254418929902535e-8,7.48865297826223e-5,-1.0717820966566956e-5,-1.1263107130437595e-8,7.497036903850236e-5,-1.0568904309436396e-5,-1.1268942299422062e-8,7.506321783824891e-5,-1.0499811842188604e-5,-1.1271900341615984e-8,7.519881869817697e-5,-1.0505257389349248e-5,-1.1272463646632064e-8,7.540869080999105e-5,-1.056479190521469e-5,-1.1271600290428743e-8,7.571546174872404e-5,-1.0642370424357846e-5,-1.1270700670162078e-8,7.61246291272292e-5,-1.0689513165947758e-5,-1.1271446895380041e-8,7.661678435223831e-5,-1.0654320433158899e-5,-1.1275546237460665e-8,7.71448147730922e-5,-1.0497201563490087e-5,-1.1284249952033519e-8,7.764205458950148e-5,-1.0209521680141907e-5,-1.1297711821998253e-8,7.804347387462571e-5,-9.824875614952504e-6,-1.1314530735816466e-8,7.831185681715099e-5,-9.411967862924406e-6,-1.133196933848187e-8,7.84533388443129e-5,-9.048847109690942e-6,-1.134696307423481e-8,7.851205357156255e-5,-8.792740654590127e-6,-1.1357361358067248e-8,7.854866512846068e-5,-8.662856311024963e-6,-1.1362623719687482e-8,7.861729582289454e-5,-8.642245361453145e-6,-1.1363680031735883e-8,7.875197622822127e-5,-8.691794929389404e-6,-1.1362277223349593e-8,7.896418283479847e-5,-8.765841602924702e-6,-1.1360297098831838e-8,7.924709191886245e-5,-8.823284793479496e-6,-1.1359315593534433e-8,7.95818503140842e-5,-8.833269852576455e-6,-1.1360426738010168e-8,7.994322616848324e-5,-8.777041367256928e-6,-1.1364233495034238e-8,8.030394161526125e-5,-8.647855079034407e-6,-1.1370898907447606e-8,8.063800618353983e-5,-8.450099063104403e-6,-1.13801913797548e-8,8.092351739561471e-5,-8.197986994855086e-6,-1.139151507594174e-8,8.114517708580553e-5,-7.913748681025796e-6,-1.1403947928868321e-8,8.129649091610874e-5,-7.625053643838189e-6,-1.1416325803923466e-8,8.13812925714093e-5,-7.361498470228608e-6,-1.1427396960663914e-8,8.141408671042445e-5,-7.150374877007221e-6,-1.143603391639288e-8,8.141887617018724e-5,-7.012246466696308e-6,-1.1441458496670813e-8,8.142639354204631e-5,-6.9569547070524565e-6,-1.1443423882852663e-8,8.146989071188947e-5,-6.980733178277085e-6,-1.1442305223764873e-8,8.157988588747373e-5,-7.0650386142183395e-6,-1.1439079612900346e-8,8.177834068751832e-5,-7.177494714956207e-6,-1.1435206339439226e-8,8.207274310460953e-5,-7.275416748518267e-6,-1.1432431508335396e-8,8.24510452990543e-5,-7.312655501458012e-6,-1.1432513684254343e-8,8.287939415777408e-5,-7.250137973215447e-6,-1.14368513607406e-8,8.330545375814392e-5,-7.068926237825051e-6,-1.1446018896562171e-8,8.366980628525399e-5,-6.781801504635946e-6,-1.1459328098698728e-8,8.392475651610919e-5,-6.436424280153653e-6,-1.147469615909485e-8,8.405365240588183e-5,-6.103856380286995e-6,-1.1489120917511639e-8,8.407948845031888e-5,-5.853970011362507e-6,-1.1499731792143241e-8,8.405583920133282e-5,-5.729599983451548e-6,-1.1504887252346792e-8,8.404479026302159e-5,-5.733734864168806e-6,-1.1504668019600196e-8,8.409487550610288e-5,-5.8348805222652595e-6,-1.1500567610929476e-8,8.422953279231353e-5,-5.983832090974439e-6,-1.1494726575699467e-8,8.44475135877195e-5,-6.130958240035688e-6,-1.1489203384318796e-8,8.473016954110671e-5,-6.237308506807428e-6,-1.1485549198160168e-8,8.504997460131159e-5,-6.278822698858891e-6,-1.1484684339034437e-8,8.537722202659041e-5,-6.24604350020151e-6,-1.1486947837148801e-8,8.56843216611937e-5,-6.141962433049987e-6,-1.149219497561945e-8,8.594839135529726e-5,-5.979584647913548e-6,-1.1499878642207251e-8,8.615303700245352e-5,-5.7797022876110846e-6,-1.1509108282661373e-8,8.628989016331793e-5,-5.568700527437504e-6,-1.1518717192858226e-8,8.636003840534361e-5,-5.3759285752394796e-6,-1.1527377565087991e-8,8.637502793286532e-5,-5.230188533993722e-6,-1.1533784620290696e-8,8.635675385529202e-5,-5.155286769746592e-6,-1.1536897415011626e-8,8.63355224875678e-5,-5.165182714998419e-6,-1.1536184302568082e-8,8.634591892159362e-5,-5.259775561616308e-6,-1.1531803962477889e-8,8.642073115040163e-5,-5.4226586174864975e-6,-1.152465872996433e-8,8.65839351077441e-5,-5.622046886179956e-6,-1.1516287597576716e-8,8.684430755827092e-5,-5.8153923203604484e-6,-1.1508609070013934e-8,8.719130249188195e-5,-5.95728092691672e-6,-1.1503558232602766e-8,8.759455242721197e-5,-6.009491974966764e-6,-1.150267039330855e-8,8.800800850055604e-5,-5.95147211987009e-6,-1.1506668360848453e-8,8.837913286366379e-5,-5.7886627769627485e-6,-1.1515138637633855e-8,8.866225574551908e-5,-5.555373933240397e-6,-1.1526431984484355e-8,8.883301404506053e-5,-5.309063543337344e-6,-1.1537937388838975e-8,8.889840023466499e-5,-5.115164449411993e-6,-1.1546777723907165e-8,8.889656623832367e-5,-5.026383401286591e-6,-1.1550737585091733e-8,8.888441107440784e-5,-5.065123260574208e-6,-1.154900893343037e-8,8.891787950494431e-5,-5.21765631045529e-6,-1.1542374452129857e-8,8.903443511633252e-5,-5.442337151279303e-6,-1.1532775965427147e-8,8.924516874443352e-5,-5.686194762207577e-6,-1.1522563607641413e-8,8.953744138069596e-5,-5.90108623252899e-6,-1.1513813593362013e-8,8.988360538093972e-5,-6.053558073616242e-6,-1.1507938669655695e-8,9.025045498071756e-5,-6.127657333921901e-6,-1.1505594789433005e-8,9.06062942791196e-5,-6.123105910016481e-6,-1.1506768232466762e-8,9.092503624012695e-5,-6.051676523403866e-6,-1.1510921388865986e-8,9.118813404710323e-5,-5.933591903961702e-6,-1.1517128603869335e-8,9.138545565664259e-5,-5.794575433039127e-6,-1.1524189430321015e-8,9.151591271894805e-5,-5.66334449111308e-6,-1.1530742462923101e-8,9.158811085003475e-5,-5.568946066028995e-6,-1.1535410442970295e-8,9.162072310193748e-5,-5.537335450390624e-6,-1.1536995250412474e-8,9.164182458652515e-5,-5.58694690455087e-6,-1.1534711584048976e-8,9.168620213239225e-5,-5.723696108466005e-6,-1.152841879943091e-8,9.178992959661302e-5,-5.936777568263604e-6,-1.1518779345972147e-8,9.198249027190544e-5,-6.197337314678204e-6,-1.1507263760530225e-8,9.227820821065515e-5,-6.461935833751877e-6,-1.1495944136778205e-8,9.266993147833276e-5,-6.6812950165578724e-6,-1.1487076652143873e-8,9.31278874804674e-5,-6.8125918600802576e-6,-1.1482550916430714e-8,9.360510332344588e-5,-6.831677883244499e-6,-1.1483350519634967e-8,9.404841563306238e-5,-6.741163582188049e-6,-1.1489195433374426e-8,9.441208477567966e-5,-6.57151688468949e-6,-1.1498505989231926e-8,9.467017588287623e-5,-6.374429642810231e-6,-1.1508741618074349e-8,9.482411049793587e-5,-6.20983930092064e-6,-1.1517053215341923e-8,9.490280063124226e-5,-6.12986333255191e-6,-1.1521069363394867e-8,9.49546446025167e-5,-6.164351503798526e-6,-1.1519561592846616e-8,9.503343971679581e-5,-6.312991752990002e-6,-1.1512751366586703e-8,9.518296893644879e-5,-6.546957614728857e-6,-1.1502154648514587e-8,9.54258618892581e-5,-6.819249442704191e-6,-1.1490053068776307e-8,9.576033063758811e-5,-7.079181183195936e-6,-1.147882172959562e-8,9.616458460450145e-5,-7.285251177458946e-6,-1.1470361003639736e-8,9.660557779129375e-5,-7.412533789784719e-6,-1.1465779950685564e-8,9.70480253349657e-5,-7.454061673847203e-6,-1.1465342600263835e-8,9.746107955264904e-5,-7.418094434670623e-6,-1.1468592015480105e-8,9.782204348641294e-5,-7.323724614127018e-6,-1.1474549309030842e-8,9.811778004559563e-5,-7.196576837891347e-6,-1.1481914889362466e-8,9.834488254743438e-5,-7.065336659585935e-6,-1.1489242896633806e-8,9.85094970832235e-5,-6.958985648334306e-6,-1.1495095179541215e-8,9.862717385640469e-5,-6.90413645241066e-6,-1.1498196338733799e-8,9.8722513616579e-5,-6.921815594705209e-6,-1.1497607920369037e-8,9.882784972662761e-5,-7.023345607949021e-6,-1.1492923262731212e-8,9.897986411696639e-5,-7.205665995436498e-6,-1.148446098537155e-8,9.921318771121227e-5,-7.447586546246423e-6,-1.1473395307025696e-8,9.955120060763667e-5,-7.709619295232465e-6,-1.146172404791077e-8,9.999642762624879e-5,-7.940035443749168e-6,-1.1451968869426325e-8,1.0052494732063333e-4,-8.087647613726074e-6,-1.1446579632065744e-8,1.0108913471724907e-4,-8.117933472199266e-6,-1.1447169892722494e-8,1.016297505105532e-4,-8.025879558080473e-6,-1.1453875399227287e-8,1.0209339869072522e-4,-7.839290063002508e-6,-1.1465163461608666e-8,1.0244827762320929e-4,-7.610760831100816e-6,-1.1478236898852096e-8,1.0269227243374284e-4,-7.4019405703705335e-6,-1.1489879553959839e-8,1.0285149371859283e-4,-7.266368505272329e-6,-1.1497391887392736e-8,1.0297118136782965e-4,-7.236336161787715e-6,-1.1499280042755185e-8,1.0310270675950262e-4,-7.316726316035047e-6,-1.1495523318503002e-8,1.0329056362595021e-4,-7.486349598341804e-6,-1.148742159707798e-8,1.0356255453322497e-4,-7.705430672579288e-6,-1.1477144225777614e-8,1.0392519544575366e-4,-7.926623660176716e-6,-1.1467147125266295e-8,1.0436481553339658e-4,-8.106347722194308e-6,-1.1459615835618466e-8,1.048532139215313e-4,-8.213492770649762e-6,-1.1456056721422704e-8,1.0535556460250918e-4,-8.23373787288498e-6,-1.1457100913129077e-8,1.0583805546501133e-4,-8.169439622731186e-6,-1.1462518463608636e-8,1.0627352735391126e-4,-8.036400609196678e-6,-1.1471385560392026e-8,1.066445607363988e-4,-7.859266130393587e-6,-1.1482325768957206e-8,1.0694441306334356e-4,-7.666977342055716e-6,-1.1493758257334187e-8,1.0717666268625118e-4,-7.489017281889044e-6,-1.1504111986789331e-8,1.0735435490295485e-4,-7.35244966639261e-6,-1.1511999323604564e-8,1.0749903983642938e-4,-7.2792806829164845e-6,-1.1516363131548234e-8,1.0763957831135115e-4,-7.283580274524651e-6,-1.151661702847303e-8,1.0781007680501017e-4,-7.368012685883945e-6,-1.1512793302970118e-8,1.0804590054700001e-4,-7.520061810504988e-6,-1.1505692043057436e-8,1.0837680611466255e-4,-7.709425069854278e-6,-1.1496977420176755e-8,1.0881740161785823e-4,-7.889347522041987e-6,-1.1489103221812277e-8,1.0935759791410143e-4,-8.004876957400208e-6,-1.1484917776821892e-8,1.099584343313986e-4,-8.008601428695032e-6,-1.1486882532745956e-8,1.1055881062444225e-4,-7.879155597116695e-6,-1.1496092004950944e-8,1.1109371258594231e-4,-7.633039843956237e-6,-1.1511581608136922E-08,1.1151663459051103e-4,-7.321605202687162e-6,-1.1530431309502565e-8,1.1181492903404441e-4,-7.013454241810893e-6,-1.1548741122352925e-8,1.1201106022014476e-4,-6.771340174468865e-6,-1.1562985724005811e-8,1.1215140197415839e-4,-6.634405209780007e-6,-1.1571068149846324e-8,1.1228984212495073e-4,-6.611278102413541e-6,-1.1572697123814852e-8,1.1247315925664164e-4,-6.6831267112462406e-6,-1.1569144942454731e-8,1.127316993096942e-4,-6.812598750203812e-6,-1.156266778319374e-8,1.1307579932787652e-4,-6.954602663343077e-6,-1.1555859496188551e-8,1.1349688400417341e-4,-7.066217820959545e-6,-1.1551101049908461e-8,1.139717903089487e-4,-7.114299397794903e-6,-1.1550167056351804e-8,1.1446891416054345e-4,-7.080077937874377e-6,-1.1554002562827165e-8,1.149548174283551e-4,-6.960537575809596e-6,-1.1562667346861427e-8,1.1540007923220339e-4,-6.766933444370123e-6,-1.1575426285469924e-8,1.1578354861211906e-4,-6.521295786051894e-6,-1.1590947546989276e-8,1.1609463410885247e-4,-6.2519478086589645e-6,-1.160756007562344e-8,1.1633376296363593e-4,-5.989012039941205e-6,-1.1623518348194946e-8,1.1651156393922294e-4,-5.760573051355079e-6,-1.1637234212047214e-8,1.1664740182339614e-4,-5.589622358594828e-6,-1.1647459659802337e-8,1.1676759334021895e-4,-5.4915067272458905e-6,-1.1653428976732367e-8,1.1690326783015823e-4,-5.471531648050538e-6,-1.1654974611229112e-8,1.1708746557034123e-4,-5.5225030012895636e-6,-1.1652632718742514e-8,1.1735068033667883e-4,-5.622479874781477e-6,-1.1647735276380047e-8,1.1771412944112854e-4,-5.734062550996382e-6,-1.1642435438662262e-8,1.1818113725851937e-4,-5.8076621481172495e-6,-1.163954187668793e-8,1.1872926880585935e-4,-5.791344442245663e-6,-1.1642004245374285e-8,1.1930855430309953e-4,-5.647553044674574e-6,-1.1651984086518556e-8,1.1985155215788543e-4,-5.371443175151925e-6,-1.1669760410394222e-8,1.2029547121095116e-4,-4.99995084485974e-6,-1.1693115291372944e-8,1.2060678781026997e-4,-4.6024408688642385e-6,-1.1717833613867049e-8,1.2079400904598451e-4,-4.255199093046226e-6,-1.173926368756903e-8,1.2090126966665237e-4,-4.0137842781003e-6,-1.1754062382778059e-8,1.2098843584166365e-4,-3.897678566972292e-6,-1.176115704922468e-8,1.2111008984554611e-4,-3.891400665164609e-6,-1.1761637208694449e-8,1.213022496940009e-4,-3.95630760713687e-6,-1.1757971241563372e-8,1.2157839399120963e-4,-4.044896229076136e-6,-1.1753097167220337e-8,1.2193195516922581e-4,-4.112420305157807e-6,-1.1749718015863004e-8,1.2234182152848596e-4,-4.124267718560327e-6,-1.174987984666976e-8,1.227785275255919e-4,-4.059624660286843e-6,-1.1754780294877045e-8,1.2321007408265877e-4,-3.9124489345179326e-6,-1.1764728817057517e-8,1.2360698042256985e-4,-3.6904598768444323e-6,-1.1779212189448352e-8,1.2394631226203136e-4,-3.4126109266878824e-6,-1.1797041115608418e-8,1.242144823774108e-4,-3.1055077065965403e-6,-1.1816559520484416e-8,1.2440867826661164e-4,-2.799226073876711e-6,-1.1835897138338729e-8,1.2453685337986063e-4,-2.523031477587932e-6,-1.1853238148010125e-8,1.2461646512564885e-4,-2.301547896694e-6,-1.186706784611472e-8,1.2467235994619418e-4,-2.1516861724259745e-6,-1.1876371614580685e-8,1.2473410454800834e-4,-2.0803083645591164e-6,-1.1880779589050701e-8,1.2483283115915695e-4,-2.0825349597226646e-6,-1.1880660082478308e-8,1.2499748069359724e-4,-2.14069314709482e-6,-1.1877165836353078e-8,1.2525010295091812e-4,-2.2241823656063393e-6,-1.1872226457607199e-8,1.2559995192754653e-4,-2.2912602137460035e-6,-1.1868437590207958e-8,1.2603705811992328e-4,-2.2945068883105327e-6,-1.1868742828901586e-8,1.2652772420829495e-4,-2.191539426597471e-6,-1.1875794007561012e-8,1.2701630641300356e-4,-1.9604423994929207e-6,-1.1890987874401511e-8,1.2743771444703272e-4,-1.6147035257241735e-6,-1.1913481241468902e-8,1.2774003479321577e-4,-1.2075860053489198e-6,-1.1939854087612531e-8,1.2790733523272295e-4,-8.17705683285339e-7,-1.1965019553764724e-8,1.279679628288094e-4,-5.194673008425952e-7,-1.1984174542305361e-8,1.279816584662349e-4,-3.5470155045429583e-7,-1.1994671485721905e-8,1.280138942373341e-4,-3.2155917529888203e-7,-1.1996712018024326e-8,1.2811314916667707e-4,-3.832848611376374e-7,-1.1992721904466058e-8,1.2830082617175774e-4,-4.869902782138533e-7,-1.198611016092719e-8,1.2857305116365837e-4,-5.810461096132203e-7,-1.1980164163535222E-08,1.289084172136336e-4,-6.257202090277428e-7,-1.197740043466469e-8,1.2927653296285668e-4,-5.972525154990381e-7,-1.1979329944634138e-8,1.2964491995966202e-4,-4.877474608997493e-7,-1.1986472365228349e-8,1.2998387075651414e-4,-3.031311612369654e-7,-1.1998477370081351e-8,1.3026979244258862e-4,-6.038288953220458e-8,-1.2014282732417834e-8,1.3048752957989842e-4,2.1562191863560383e-7,-1.2032296857404085e-8,1.3063183983413705e-4,4.956069602951913e-7,-1.2050612633462722e-8,1.3070798712429174e-4,7.49696777087375e-7,-1.2067254493324593e-8,1.3073127127371782e-4,9.513984761652111e-7,-1.2080450782354818e-8,1.3072533232997706e-4,1.0813761032640532e-6,-1.2088898078971734e-8,1.3071932425519906e-4,1.1305045965556356e-6,-1.2091976791290884e-8,1.3074424349902703e-4,1.1018477731859764e-6,-1.2089887050399828e-8,1.3082870101893535e-4,1.0113362985932872e-6,-1.2083690937629776e-8,1.3099441618179766e-4,8.869501908669666e-7,-1.2075251931326807e-8,1.3125168068481923e-4,7.662116754938402e-7,-1.2067066918911372e-8,1.3159510738595574e-4,6.915586905267705e-7,-1.2061965515433264e-8,1.3200056820097142e-4,7.028841658829567e-7,-1.2062624571151364e-8,1.3242528918228636e-4,8.270198550287169e-7,-1.2070869118686841e-8,1.3281385380364976e-4,1.0657937989025924e-6,-1.2086852795495238e-8,1.3311208615874337e-4,1.3873940278361398e-6,-1.2108442324416934e-8,1.3328674475046086e-4,1.728378788589479e-6,-1.2131335420364398e-8,1.333423026531807e-4,2.011359960326922e-6,-1.2150284217646462e-8,1.333230859574093e-4,2.173641367897251e-6,-1.2161076558038903e-8,1.3329628509418603e-4,2.1916886718834704e-6,-1.2162183678561086e-8,1.3332488742110422e-4,2.0869799011873835e-6,-1.2155091872515184e-8,1.3344631607287334e-4,1.9118834458728775e-6,-1.214330168860428e-8,1.3366614959370036e-4,1.7270017762180142e-6,-1.213081977253317e-8,1.339647660819936e-4,1.5827822630531564e-6,-1.2120978054806648e-8,1.3430900171919165e-4,1.5107505188582636e-6,-1.2115885232530696e-8,1.346625507586368e-4,1.5227555156633589e-6,-1.2116379839448163e-8,1.3499278908367805e-4,1.6143357752029857e-6,-1.2122232655650623e-8,1.352743630890875e-4,1.7691319425712106e-6,-1.2132411706736463e-8,1.3549082147805045e-4,1.9628976716705375e-6,-1.214532559179744e-8,1.3563536205606977e-4,2.1669414090184472e-6,-1.2159041601093816e-8,1.3571114539193986e-4,2.3513531864422336e-6,-1.2171504657912729e-8,1.3573115122892719e-4,2.488365757099318e-6,-1.218077928907646e-8,1.3571726302195615e-4,2.555989521491244e-6,-1.2185316078541546e-8,1.3569814446294577e-4,2.5416602671032738e-6,-1.2184217684665625e-8,1.3570568585111713e-4,2.4452206623935392e-6,-1.2177449976565543e-8,1.3577024230789847e-4,2.280427964073108e-6,-1.216594442676682e-8,1.3591527737192273e-4,2.0743135607314645e-6,-1.2151550454018783e-8,1.361522991152803e-4,1.8640121265254014e-6,-1.213681987513195e-8,1.3647708727637718e-4,1.6911483786144465e-6,-1.2124630980449703e-8,1.3686810998498884e-4,1.5943000966245994e-6,-1.211767957644585e-8,1.3728794824521178e-4,1.6002951590033876e-6,-1.2117875538135754e-8,1.376885995265603e-4,1.715563961241601e-6,-1.2125719871977474e-8,1.380212492054774e-4,1.9198116421548985e-6,-1.2139827416802713e-8,1.3824979653251647e-4,2.16545754172393e-6,-1.2156862702966804e-8,1.3836476748777283e-4,2.3863798766054845e-6,-1.2172165361997345e-8,1.3839118089512586e-4,2.516681597723158e-6,-1.2181109204786456e-8,1.383836958661086e-4,2.5139173425388923e-6,-1.2180756018019766e-8,1.3840809682379775e-4,2.3754960365028225e-6,-1.2170971847677191e-8,1.3851731397930713e-4,2.1385549249810985e-6,-1.2154358737266609e-8,1.387345180742526e-4,1.8635150257748393e-6,-1.2135089041809021e-8,0.00013905061657867654,1.6115027181214983e-6,-1.21173713319074e-8,1.3943376606727773e-4,1.4271981388203693e-6,-1.2104305360794658e-8,1.3984300364040437e-4,1.3321511005655048e-6,-1.2097427842395805e-8,1.4023941764179271e-4,1.3266107575433846e-6,-1.2096814698533307e-8,1.4059252722173118e-4,1.3952876797859035e-6,-1.2101447432625885e-8,1.4088264636512158e-4,1.5134604515907064e-6,-1.2109616882522158e-8,1.4110100645417162e-4,1.651840139911393e-6,-1.211925900245617e-8,1.4124909369002032e-4,1.780117071596497e-6,-1.212821380203447e-8,1.41337902381737e-4,1.8698047521882043e-6,-1.2134441476175163e-8,1.413871243968482e-4,1.897057213198281e-6,-1.2136236886680415e-8,1.4142383018431504e-4,1.845841427761066e-6,-1.2132461012287831e-8,1.4147997719204125e-4,1.7113175489430788e-6,-1.2122777537746821e-8,1.4158823504138685e-4,1.502646517645388e-6,-1.2107840476713205e-8,1.4177619737628733e-4,1.2439767012537168e-6,-1.2089354094720186e-8,1.420599003828967e-4,9.723315462248096e-7,-1.206992596215161e-8,1.4243837480090518e-4,7.317359454874271e-7,-1.205266945550483e-8,1.428912639706557e-4,5.641719353741576e-7,-1.2040586686537376e-8,1.4338097885540922e-4,4.993306811954009e-7,-1.2035847099509482e-8,1.4385960277296563e-4,5.458783176763343e-7,-1.2039139663143369e-8,1.4427940471458366e-4,6.868122641353136e-7,-1.2049291370737595e-8,1.4460478846783334e-4,8.807411239238364e-7,-1.2063317321420302e-8,1.4482281559751307e-4,1.069839105541091e-6,-1.2076991054963683e-8,0.00014494904837242869,1.1937309248725323e-6,-1.2085887289049307e-8,1.4502568900064648e-4,1.2064426101944527e-6,-1.208665562177113e-8,1.4511070047506638e-4,1.0911379333922037e-6,-1.2078100163221958e-8,1.4526028585175462e-4,8.663198283372468e-7,-1.2061600256805915e-8,1.4551122674497707e-4,5.797058648325919e-7,-1.204063541031233e-8,1.45870714182893e-4,2.919007977922922e-7,-1.2019605889673682e-8,1.4631756661427476e-4,5.7383281304037876e-8,-1.2002481688680475e-8,1.4681257082234934e-4,-8.908235910099019e-8,-1.199182771411262e-8,1.4731178048653533e-4,-1.3681974382092278e-7,-1.1988462719314775e-8,1.4777718123388823e-4,-9.589928020150776e-8,-1.1991666707489123e-8,1.4818241807458256e-4,9.827970495226143e-9,-1.1999669866292774e-8,1.4851424057603252e-4,1.4975826284681487e-7,-1.2010174857616424e-8,1.4877150780700368e-4,2.9190903564939884e-7,-1.2020776035974408e-8,1.4896338718739874e-4,4.064988238931833e-7,-1.2029249027716422e-8,1.491076446423247e-4,4.6841038637613003e-7,-1.2033745868534184e-8,1.4922916257107874e-4,4.5938546572257956e-7,-1.2032953779941988e-8,1.493582247095228e-4,3.705242197180493e-7,-1.2026262139108474e-8,1.4952777954767635e-4,2.051005400277564e-7,-1.2013946805018194e-8,1.4976894050346446e-4,-1.904479417246828e-8,-1.19973299130609e-8,1.5010454947427974e-4,-2.6906541765304796e-7,-1.1978814248321542e-8,1.5054183504320976e-4,-5.005400438808663e-7,-1.1961656886072548e-8,1.510667193509588e-4,-6.659267765992611e-7,-1.1949384554955782e-8,1.5164312623254563e-4,-7.269820831206918e-7,-1.1944897119523432e-8,1.5221953156980696e-4,-6.673181911368249e-7,-1.1949511382214759e-8,1.5274192731700445e-4,-4.998737686083151e-7,-1.1962335916114308e-8,1.5316902981055573e-4,-2.655106490847173e-7,-1.198030645635063e-8,1.5348421088217352e-4,-2.266891378647792e-8,-1.1998944827432675e-8,1.537000877768807e-4,1.6834438575237464e-7,-1.2013585861232607e-8,1.538547110431581e-4,2.613132906223005e-7,-1.2020649305678164e-8,1.5400096519828458e-4,2.3581112219275996e-7,-1.2018566303697278e-8,1.5419235863208593e-4,1.0173672189554832e-7,-1.2008120314198619e-8,1.5446908544374386e-4,-1.043344103221339e-7,-1.1992147545698048e-8,1.548482390991489e-4,-3.2985719788034745e-7,-1.1974709621771796e-8,1.5532098094650596e-4,-5.207662508907146e-7,-1.1959996690102956e-8,1.5585716932915963e-4,-6.350241871756243e-7,-1.1951293605787887e-8,1.5641522266013897e-4,-6.511187991959759e-7,-1.1950307300835039e-8,1.569532769257661e-4,-5.697016549164902e-7,-1.1957005001839564e-8,1.5743798528095797e-4,-4.09469379855435e-7,-1.1969906863521253e-8,1.5784917981561064e-4,-2.0015710169451744e-7,-1.1986632887038163e-8,1.5818066995231428e-4,2.4528128874972442e-8,-1.2004482272335572e-8,1.584385964221662e-4,2.3238212408654543e-7,-1.2020894960770384e-8,1.5863886107822444e-4,3.9624199560292434e-7,-1.2033748244121223e-8,1.588046247824748e-4,4.961257588820515e-7,-1.2041519855910776e-8,1.5896414577085214e-4,5.208075434900433e-7,-1.2043387212766305e-8,1.5914861628490783e-4,4.6946391491526275e-7,-1.2039325589190074e-8,1.5938926955830503e-4,3.53541008361074e-7,-1.2030232908600866e-8,1.5971294009466412e-4,1.982741610365036e-7,-1.2018050074089633e-8,1.601357000258253e-4,4.2346553631336995e-8,-1.2005764507559371e-8,1.6065547610377416e-4,-6.653262914643824e-8,-1.199711354071502e-8,1.6124655500583345e-4,-8.178371801242496e-8,-1.1995829366236498e-8,1.618604147678731e-4,2.7237558855628032e-8,-1.200446695222325e-8,1.624361983654284e-4,2.6113543526894443e-7,-1.2023214939678597e-8,1.6291924082183584e-4,5.850389636777833e-7,-1.2049358081100115e-8,1.6328002909722807e-4,9.37029053897171e-7,-1.2077889657121621e-8,1.6352419934365228e-4,1.2479123374621913e-6,-1.2103126439366304e-8,1.6368904604779273e-4,1.4631281062483648e-6,-1.2120552485357369e-8,1.6382956183236765e-4,1.557395384432055e-6,-1.2128060940280816e-8,1.6400122926582002e-4,1.5381144862877748e-6,-1.2126239058948575e-8,1.6424588726093894e-4,1.439208355081074e-6,-1.2117853915445577e-8,1.6458370748174056e-4,1.3096328102448778e-6,-1.2106913755361764e-8,1.6501154402339606e-4,1.200644338827852e-6,-1.2097641160415495e-8,1.6550648589063686e-4,1.1547586852730628e-6,-1.2093577694547275e-8,1.6603290776267415e-4,1.198176070928625e-6,-1.209694831318382e-8,1.665511035023388e-4,1.3375614745420673e-6,-1.2108362039271342e-8,1.6702550418416318e-4,1.5612138983333382e-6,-1.2126873437650308e-8,1.674307780932752e-4,1.8436692523999273e-6,-1.2150349328123835e-8,1.677549195800197e-4,2.152050182706575e-6,-1.2176009110305286e-8,1.6799940801179606e-4,2.4524165413076667e-6,-1.2200981766056503e-8,1.6817724583540448e-4,2.7148658232038214e-6,-1.2222754118217347e-8,1.683099873280913e-4,2.9168866968960664e-6,-1.2239454785978735e-8,1.6842467146592558e-4,3.0452180407235236e-6,-1.224999322944638e-8,1.6855102695086848e-4,3.0968539557096263e-6,-1.2254119042353992e-8,1.6871880126855085e-4,3.079744230574199e-6,-1.2252464324778996e-8,1.6895472067160068e-4,3.0133940896606534e-6,-1.2246598903420829e-8,1.6927840464195295e-4,2.9289893043908684e-6,-1.2239070910506032e-8,1.6969685867088022e-4,2.8677904600524987e-6,-1.2233319274918822e-8,1.7019831718506845e-4,2.875824828445984e-6,-1.2233272151029017e-8,1.7074810284391787e-4,2.993272269193482e-6,-1.224246480019927e-8,1.7129098425295404e-4,3.2394101336393448e-6,-1.2262719249205929e-8,1.7176398102373194e-4,3.5987654038797006e-6,-1.2292867630372567e-8,1.7211809981800891e-4,4.018086806079489e-6,-1.2328398800877828e-8,1.723391427347796e-4,4.420818917734477e-6,-1.2362681188303285e-8,1.7245473153053103e-4,4.734662467285292e-6,-1.2389396409868513e-8,1.7252252726735316e-4,4.917578549027333e-6,-1.2404843785782865e-8,1.726071540897258e-4,4.968749604148368e-6,-1.2408893192054333e-8,1.727589046978858e-4,4.9221724964740185e-6,-1.2404411962237101e-8,1.7300260344177033e-4,4.83048076677902e-6,-1.2395876284086118e-8,1.7333699122422784e-4,4.748210739532242e-6,-1.2387966354953343e-8,1.7374060169450008e-4,4.719717242328655e-6,-1.2384556320964524e-8,1.7417998643729247e-4,4.77276442662093e-6,-1.2388155529251713e-8,1.7461775716833916e-4,4.916710446013261e-6,-1.2399710045232228e-8,1.7501937203030822e-4,5.1438468128633355e-6,-1.24186647572412e-8,1.7535828951289732e-4,5.432860035887848e-6,-1.2443225854658522e-8,1.756192629618798e-4,5.753664444472852e-6,-1.247077258016822e-8,1.7579965373443565e-4,6.07283129609336e-6,-1.249834752183416e-8,1.7590884946030766e-4,6.358829228718526e-6,-1.2523139875377372e-8,1.759661130968674e-4,6.586381943570775e-6,-1.2542883039875933e-8,1.759974500115724e-4,6.739459298134962e-6,-1.2556116611078232e-8,1.760321637278397e-4,6.812845618154416e-6,-1.2562313354106072e-8,1.7609950601134763e-4,6.812603660833107e-6,-1.2561914546371991e-8,1.7622548831381987e-4,6.755770295736606e-6,-1.2556315384687489e-8,1.7642970412317874e-4,6.669448359319251e-6,-1.2547819558221092e-8,1.7672181959903853e-4,6.589129298634931e-6,-1.2539538164845853e-8,1.7709754531837021e-4,6.555409184978373e-6,-1.253513882005936e-8,1.7753484841258758e-4,6.6077367992058346e-6,-1.2538298544744623e-8,1.7799261074736457e-4,6.774298835042637e-6,-1.2551762208519981e-8,1.7841520147040621e-4,7.059131678797954e-6,-1.2576102085454612e-8,1.7874610453487877e-4,7.431432411420299e-6,-1.2608660039097732e-8,1.7894917443968755e-4,7.825953175386766e-6,-1.264353962001558e-8,1.7902774380033063e-4,8.161207083206408e-6,-1.2673296174765145e-8,1.790278108183074e-4,8.37057801926549e-6,-1.2691829535203863e-8,1.7902000252517539e-4,8.429111940731165e-6,-1.2696822098010562e-8,1.7907052731275117e-4,8.359865779353108e-6,-1.2690259514578959e-8,1.792184376056174e-4,8.218710920752939e-6,-1.2677033409507345e-8,1.7946899122588982e-4,8.070217272528202e-6,-1.2662824877992331e-8,1.798005516314884e-4,7.968098174834111e-6,-1.2652431102927129e-8,1.8017678902342154e-4,7.945639373964074e-6,-1.2648941656457344e-8,1.8055783018827178e-4,8.014489469180937e-6,-1.2653594995131369e-8,1.809079743025977e-4,8.167991049630246e-6,-1.2666002492302427e-8,1.8120015594670137e-4,8.386055770599257e-6,-1.2684515636010646e-8,1.81418169137406e-4,8.640136272423779e-6,-1.2706635648062213e-8,1.8155745362714864e-4,8.897929471115659e-6,-1.2729437938407207e-8,1.816247890930127e-4,9.127778918254038e-6,-1.2749994232411722e-8,1.8163698371062952e-4,9.302709168045539e-6,-1.2765766433492419e-8,1.8161856182727902e-4,9.403888438419948e-6,-1.2774938041748913e-8,1.815985642893323e-4,9.423138551089404e-6,-1.2776645313126941e-8,1.8160681506560852e-4,9.36415692920561e-6,-1.2771087603012172e-8,1.8167007529985502e-4,9.242389932513445e-6,-1.2759527269267482e-8,1.8180839374719023e-4,9.083630182385395e-6,-1.2744194260900506e-8,1.8203189191582484e-4,8.921407254932055e-6,-1.272809684680252e-8,1.8233811686921964e-4,8.793234923543979e-6,-1.271472568547752e-8,1.8271007573164471e-4,8.735513832696627e-6,-1.2707603433132443e-8,1.831156226205783e-4,8.776587215035303e-6,-1.2709611967731912e-8,1.835098044135818e-4,8.927979072561361e-6,-1.2722097762312471e-8,1.8384221630675696e-4,9.175500192615347e-6,-1.27439367278731e-8,1.840705475552472e-4,9.474371020128938e-6,-1.2771002906062082e-8,1.841780628060236e-4,9.754616948466088e-6,-1.279667951127827e-8,1.8418683651227492e-4,9.940934290960093e-6,-1.281380356682737e-8,1.8415563603335129e-4,9.98187460304554e-6,-1.281747050358581e-8,1.8415861263877017e-4,9.872544364405676e-6,-1.2807136409084753e-8,1.842552921475183e-4,9.65575714304891e-6,-1.278665574601449e-8,1.8446960989311107e-4,9.401323160175794e-6,-1.2762350921109002e-8,1.847878917819339e-4,9.177921705907351e-6,-1.274048999348862e-8,1.851716145817177e-4,9.033077144764868e-6,-1.2725517880425859e-8,1.8557404333119885e-4,8.98674862545095e-6,-1.2719465951244568e-8,1.8595285565285299e-4,9.03489153155634e-6,-1.2722206457539776e-8,1.8627673471227903e-4,9.156961441484826e-6,-1.2732052732514901e-8,1.8652737698281774e-4,9.323291635298407e-6,-1.2746379558568107e-8,1.8669908398996258e-4,9.500851281252383e-6,-1.276214259667023e-8,1.867974540649122e-4,9.657494220093313e-6,-1.2776296198795173e-8,1.868377674238962e-4,9.765290802188679e-6,-1.2786140679959678e-8,1.8684306967336814e-4,9.803397871508996e-6,-1.2789619363565743e-8,1.868417147083351e-4,9.760610094037025e-6,-1.2785567727151342e-8,1.8686412458466885e-4,9.637324414561794e-6,-1.2773894189412115e-8,1.8693880886411663e-4,9.44635537749392e-6,-1.2755655110877828e-8,1.8708806034181723e-4,9.212124471751703e-6,-1.2732996276901077e-8,1.873239407935784e-4,8.968006164774606e-6,-1.2708946706398693e-8,1.8764524855502274e-4,8.751851247504868e-6,-1.2687053344743047e-8,1.8803613506589658e-4,8.600047003777075e-6,-1.267086308882513e-8,1.884668350213392e-4,8.540750156571121e-6,-1.266327943929974e-8,1.8889688401037388e-4,8.586957156317759e-6,-1.2665841049346619e-8,1.892813662336039e-4,8.7303677532984365E-06,-1.2678028004774141e-8,1.8958055151708885e-4,8.937957777496288e-6,-1.269682650981506e-8,1.8977205698003573e-4,9.154221964303619e-6,-1.2716894887330907e-8,1.8986226816951858e-4,9.312023948278568e-6,-1.2731645634466873e-8,1.8989097282145473e-4,9.3523306591095e-6,-1.2735235873700964e-8,1.899229344963519e-4,9.246977657328054e-6,-1.2724818924541804e-8,1.9002600500419477e-4,9.012639158824845e-6,-1.2701873808086355e-8,1.90245267253111e-4,8.705899735453676e-6,-1.267169944090641e-8,1.9058743747324758e-4,8.400731767561984e-6,-1.2641284800066107e-8,1.9102317062649488e-4,8.161375525659737e-6,-1.261678823134974e-8,1.915028135995743e-4,8.024638131175617e-6,-1.2601877107848063e-8]} \ No newline at end of file diff --git a/public/static/Cesium/Assets/Images/bing_maps_credit.png b/public/static/Cesium/Assets/Images/bing_maps_credit.png new file mode 100644 index 0000000..15109db Binary files /dev/null and b/public/static/Cesium/Assets/Images/bing_maps_credit.png differ diff --git a/public/static/Cesium/Assets/Images/cesium_credit.png b/public/static/Cesium/Assets/Images/cesium_credit.png new file mode 100644 index 0000000..4d1722b Binary files /dev/null and b/public/static/Cesium/Assets/Images/cesium_credit.png differ diff --git a/public/static/Cesium/Assets/Images/google_earth_credit.png b/public/static/Cesium/Assets/Images/google_earth_credit.png new file mode 100644 index 0000000..a7622d8 Binary files /dev/null and b/public/static/Cesium/Assets/Images/google_earth_credit.png differ diff --git a/public/static/Cesium/Assets/Images/ion-credit.png b/public/static/Cesium/Assets/Images/ion-credit.png new file mode 100644 index 0000000..71b7bdf Binary files /dev/null and b/public/static/Cesium/Assets/Images/ion-credit.png differ diff --git a/public/static/Cesium/Assets/Textures/LensFlare/DirtMask.jpg b/public/static/Cesium/Assets/Textures/LensFlare/DirtMask.jpg new file mode 100644 index 0000000..5329902 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/LensFlare/DirtMask.jpg differ diff --git a/public/static/Cesium/Assets/Textures/LensFlare/StarBurst.jpg b/public/static/Cesium/Assets/Textures/LensFlare/StarBurst.jpg new file mode 100644 index 0000000..b54ac09 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/LensFlare/StarBurst.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg new file mode 100644 index 0000000..0cad646 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg new file mode 100644 index 0000000..7e63bd6 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg new file mode 100644 index 0000000..e65f1c7 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg new file mode 100644 index 0000000..605f63f Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg new file mode 100644 index 0000000..319458e Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg new file mode 100644 index 0000000..a6a3859 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg new file mode 100644 index 0000000..6913a2b Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg new file mode 100644 index 0000000..df89ed2 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg new file mode 100644 index 0000000..8f27415 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg new file mode 100644 index 0000000..ce2b06e Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg new file mode 100644 index 0000000..e3c0312 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg new file mode 100644 index 0000000..f3ec321 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg new file mode 100644 index 0000000..b59816c Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg new file mode 100644 index 0000000..795f212 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg new file mode 100644 index 0000000..822b065 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg new file mode 100644 index 0000000..4dd18ea Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg new file mode 100644 index 0000000..4540c7c Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg new file mode 100644 index 0000000..32c6e5a Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg new file mode 100644 index 0000000..7c39094 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg new file mode 100644 index 0000000..3e7abe7 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg new file mode 100644 index 0000000..0e0f1e9 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg new file mode 100644 index 0000000..732c32f Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg new file mode 100644 index 0000000..576ec70 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg new file mode 100644 index 0000000..6347041 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg new file mode 100644 index 0000000..300aa58 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg new file mode 100644 index 0000000..cd70fca Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg new file mode 100644 index 0000000..eabb83c Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg new file mode 100644 index 0000000..54e6b00 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg new file mode 100644 index 0000000..311241c Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg new file mode 100644 index 0000000..5ba398c Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg new file mode 100644 index 0000000..e03c0c0 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg new file mode 100644 index 0000000..01a1caf Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg new file mode 100644 index 0000000..372e3ef Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg new file mode 100644 index 0000000..fbcfa62 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg new file mode 100644 index 0000000..334ab25 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg new file mode 100644 index 0000000..ebbc3a0 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg new file mode 100644 index 0000000..c3a8e97 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg new file mode 100644 index 0000000..8f730f3 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg new file mode 100644 index 0000000..75235d6 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg new file mode 100644 index 0000000..036d682 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg new file mode 100644 index 0000000..dfd2144 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg new file mode 100644 index 0000000..82c2a34 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg differ diff --git a/public/static/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml b/public/static/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml new file mode 100644 index 0000000..d7734cc --- /dev/null +++ b/public/static/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml @@ -0,0 +1,14 @@ + + + NE2_HR_LC_SR_W_DR_recolored.tif + + EPSG:4326 + + + + + + + + + diff --git a/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg b/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg new file mode 100644 index 0000000..6719228 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg differ diff --git a/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg b/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg new file mode 100644 index 0000000..3dfe883 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg differ diff --git a/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg b/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg new file mode 100644 index 0000000..7ef2363 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg differ diff --git a/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg b/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg new file mode 100644 index 0000000..f5d0d8b Binary files /dev/null and b/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg differ diff --git a/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg b/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg new file mode 100644 index 0000000..a842111 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg differ diff --git a/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg b/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg new file mode 100644 index 0000000..5efcc76 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg differ diff --git a/public/static/Cesium/Assets/Textures/maki/airfield.png b/public/static/Cesium/Assets/Textures/maki/airfield.png new file mode 100644 index 0000000..b774684 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/airfield.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/airport.png b/public/static/Cesium/Assets/Textures/maki/airport.png new file mode 100644 index 0000000..44a8413 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/airport.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/alcohol-shop.png b/public/static/Cesium/Assets/Textures/maki/alcohol-shop.png new file mode 100644 index 0000000..b75a5d9 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/alcohol-shop.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/america-football.png b/public/static/Cesium/Assets/Textures/maki/america-football.png new file mode 100644 index 0000000..5a2c6ba Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/america-football.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/art-gallery.png b/public/static/Cesium/Assets/Textures/maki/art-gallery.png new file mode 100644 index 0000000..a663512 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/art-gallery.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/bakery.png b/public/static/Cesium/Assets/Textures/maki/bakery.png new file mode 100644 index 0000000..9735d5e Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/bakery.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/bank.png b/public/static/Cesium/Assets/Textures/maki/bank.png new file mode 100644 index 0000000..a67cee0 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/bank.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/bar.png b/public/static/Cesium/Assets/Textures/maki/bar.png new file mode 100644 index 0000000..8c2812f Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/bar.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/baseball.png b/public/static/Cesium/Assets/Textures/maki/baseball.png new file mode 100644 index 0000000..23f344b Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/baseball.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/basketball.png b/public/static/Cesium/Assets/Textures/maki/basketball.png new file mode 100644 index 0000000..7ed3bfc Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/basketball.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/beer.png b/public/static/Cesium/Assets/Textures/maki/beer.png new file mode 100644 index 0000000..a15cf99 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/beer.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/bicycle.png b/public/static/Cesium/Assets/Textures/maki/bicycle.png new file mode 100644 index 0000000..fb871be Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/bicycle.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/building.png b/public/static/Cesium/Assets/Textures/maki/building.png new file mode 100644 index 0000000..885f112 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/building.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/bus.png b/public/static/Cesium/Assets/Textures/maki/bus.png new file mode 100644 index 0000000..7830502 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/bus.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/cafe.png b/public/static/Cesium/Assets/Textures/maki/cafe.png new file mode 100644 index 0000000..2050cba Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/cafe.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/camera.png b/public/static/Cesium/Assets/Textures/maki/camera.png new file mode 100644 index 0000000..ec54e12 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/camera.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/campsite.png b/public/static/Cesium/Assets/Textures/maki/campsite.png new file mode 100644 index 0000000..36e0a92 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/campsite.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/car.png b/public/static/Cesium/Assets/Textures/maki/car.png new file mode 100644 index 0000000..2075afa Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/car.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/cemetery.png b/public/static/Cesium/Assets/Textures/maki/cemetery.png new file mode 100644 index 0000000..df244fd Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/cemetery.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/cesium.png b/public/static/Cesium/Assets/Textures/maki/cesium.png new file mode 100644 index 0000000..ce2755d Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/cesium.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/chemist.png b/public/static/Cesium/Assets/Textures/maki/chemist.png new file mode 100644 index 0000000..eb1ea35 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/chemist.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/cinema.png b/public/static/Cesium/Assets/Textures/maki/cinema.png new file mode 100644 index 0000000..56b6925 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/cinema.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/circle-stroked.png b/public/static/Cesium/Assets/Textures/maki/circle-stroked.png new file mode 100644 index 0000000..88689e4 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/circle-stroked.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/circle.png b/public/static/Cesium/Assets/Textures/maki/circle.png new file mode 100644 index 0000000..fbbd582 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/circle.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/city.png b/public/static/Cesium/Assets/Textures/maki/city.png new file mode 100644 index 0000000..37d8fad Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/city.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/clothing-store.png b/public/static/Cesium/Assets/Textures/maki/clothing-store.png new file mode 100644 index 0000000..ff5f8a2 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/clothing-store.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/college.png b/public/static/Cesium/Assets/Textures/maki/college.png new file mode 100644 index 0000000..1026387 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/college.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/commercial.png b/public/static/Cesium/Assets/Textures/maki/commercial.png new file mode 100644 index 0000000..fdf3b63 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/commercial.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/cricket.png b/public/static/Cesium/Assets/Textures/maki/cricket.png new file mode 100644 index 0000000..6642a3a Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/cricket.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/cross.png b/public/static/Cesium/Assets/Textures/maki/cross.png new file mode 100644 index 0000000..8945b3b Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/cross.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/dam.png b/public/static/Cesium/Assets/Textures/maki/dam.png new file mode 100644 index 0000000..aed88a8 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/dam.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/danger.png b/public/static/Cesium/Assets/Textures/maki/danger.png new file mode 100644 index 0000000..9479572 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/danger.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/disability.png b/public/static/Cesium/Assets/Textures/maki/disability.png new file mode 100644 index 0000000..1cc3550 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/disability.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/dog-park.png b/public/static/Cesium/Assets/Textures/maki/dog-park.png new file mode 100644 index 0000000..3483e35 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/dog-park.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/embassy.png b/public/static/Cesium/Assets/Textures/maki/embassy.png new file mode 100644 index 0000000..46b7e1e Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/embassy.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/emergency-telephone.png b/public/static/Cesium/Assets/Textures/maki/emergency-telephone.png new file mode 100644 index 0000000..fac6239 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/emergency-telephone.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/entrance.png b/public/static/Cesium/Assets/Textures/maki/entrance.png new file mode 100644 index 0000000..b0ba8c5 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/entrance.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/farm.png b/public/static/Cesium/Assets/Textures/maki/farm.png new file mode 100644 index 0000000..7b03e82 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/farm.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/fast-food.png b/public/static/Cesium/Assets/Textures/maki/fast-food.png new file mode 100644 index 0000000..9488c26 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/fast-food.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/ferry.png b/public/static/Cesium/Assets/Textures/maki/ferry.png new file mode 100644 index 0000000..58c2f27 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/ferry.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/fire-station.png b/public/static/Cesium/Assets/Textures/maki/fire-station.png new file mode 100644 index 0000000..427512f Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/fire-station.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/fuel.png b/public/static/Cesium/Assets/Textures/maki/fuel.png new file mode 100644 index 0000000..dc6059b Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/fuel.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/garden.png b/public/static/Cesium/Assets/Textures/maki/garden.png new file mode 100644 index 0000000..265edb8 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/garden.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/gift.png b/public/static/Cesium/Assets/Textures/maki/gift.png new file mode 100644 index 0000000..866263e Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/gift.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/golf.png b/public/static/Cesium/Assets/Textures/maki/golf.png new file mode 100644 index 0000000..2169d91 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/golf.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/grocery.png b/public/static/Cesium/Assets/Textures/maki/grocery.png new file mode 100644 index 0000000..05b09d4 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/grocery.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/hairdresser.png b/public/static/Cesium/Assets/Textures/maki/hairdresser.png new file mode 100644 index 0000000..68fbe1e Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/hairdresser.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/harbor.png b/public/static/Cesium/Assets/Textures/maki/harbor.png new file mode 100644 index 0000000..2814f3c Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/harbor.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/heart.png b/public/static/Cesium/Assets/Textures/maki/heart.png new file mode 100644 index 0000000..82e9808 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/heart.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/heliport.png b/public/static/Cesium/Assets/Textures/maki/heliport.png new file mode 100644 index 0000000..953828d Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/heliport.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/hospital.png b/public/static/Cesium/Assets/Textures/maki/hospital.png new file mode 100644 index 0000000..faf294e Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/hospital.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/ice-cream.png b/public/static/Cesium/Assets/Textures/maki/ice-cream.png new file mode 100644 index 0000000..323c964 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/ice-cream.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/industrial.png b/public/static/Cesium/Assets/Textures/maki/industrial.png new file mode 100644 index 0000000..9b3b525 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/industrial.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/land-use.png b/public/static/Cesium/Assets/Textures/maki/land-use.png new file mode 100644 index 0000000..f86b21b Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/land-use.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/laundry.png b/public/static/Cesium/Assets/Textures/maki/laundry.png new file mode 100644 index 0000000..53fd20d Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/laundry.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/library.png b/public/static/Cesium/Assets/Textures/maki/library.png new file mode 100644 index 0000000..8564e84 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/library.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/lighthouse.png b/public/static/Cesium/Assets/Textures/maki/lighthouse.png new file mode 100644 index 0000000..a78e21a Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/lighthouse.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/lodging.png b/public/static/Cesium/Assets/Textures/maki/lodging.png new file mode 100644 index 0000000..4e41ea6 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/lodging.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/logging.png b/public/static/Cesium/Assets/Textures/maki/logging.png new file mode 100644 index 0000000..4aeef0b Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/logging.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/london-underground.png b/public/static/Cesium/Assets/Textures/maki/london-underground.png new file mode 100644 index 0000000..94972f7 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/london-underground.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/marker-stroked.png b/public/static/Cesium/Assets/Textures/maki/marker-stroked.png new file mode 100644 index 0000000..f00d112 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/marker-stroked.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/marker.png b/public/static/Cesium/Assets/Textures/maki/marker.png new file mode 100644 index 0000000..825eeca Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/marker.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/minefield.png b/public/static/Cesium/Assets/Textures/maki/minefield.png new file mode 100644 index 0000000..60e174a Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/minefield.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/mobilephone.png b/public/static/Cesium/Assets/Textures/maki/mobilephone.png new file mode 100644 index 0000000..a40ef9c Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/mobilephone.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/monument.png b/public/static/Cesium/Assets/Textures/maki/monument.png new file mode 100644 index 0000000..5b8b7de Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/monument.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/museum.png b/public/static/Cesium/Assets/Textures/maki/museum.png new file mode 100644 index 0000000..23c1790 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/museum.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/music.png b/public/static/Cesium/Assets/Textures/maki/music.png new file mode 100644 index 0000000..dbef56f Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/music.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/oil-well.png b/public/static/Cesium/Assets/Textures/maki/oil-well.png new file mode 100644 index 0000000..a421f5a Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/oil-well.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/park.png b/public/static/Cesium/Assets/Textures/maki/park.png new file mode 100644 index 0000000..741110e Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/park.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/park2.png b/public/static/Cesium/Assets/Textures/maki/park2.png new file mode 100644 index 0000000..5f60dcc Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/park2.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/parking-garage.png b/public/static/Cesium/Assets/Textures/maki/parking-garage.png new file mode 100644 index 0000000..b91a811 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/parking-garage.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/parking.png b/public/static/Cesium/Assets/Textures/maki/parking.png new file mode 100644 index 0000000..6a843d9 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/parking.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/pharmacy.png b/public/static/Cesium/Assets/Textures/maki/pharmacy.png new file mode 100644 index 0000000..d82e471 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/pharmacy.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/pitch.png b/public/static/Cesium/Assets/Textures/maki/pitch.png new file mode 100644 index 0000000..a8205e8 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/pitch.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/place-of-worship.png b/public/static/Cesium/Assets/Textures/maki/place-of-worship.png new file mode 100644 index 0000000..29f7c31 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/place-of-worship.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/playground.png b/public/static/Cesium/Assets/Textures/maki/playground.png new file mode 100644 index 0000000..5270d3c Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/playground.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/police.png b/public/static/Cesium/Assets/Textures/maki/police.png new file mode 100644 index 0000000..9787a05 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/police.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/polling-place.png b/public/static/Cesium/Assets/Textures/maki/polling-place.png new file mode 100644 index 0000000..b2d02a9 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/polling-place.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/post.png b/public/static/Cesium/Assets/Textures/maki/post.png new file mode 100644 index 0000000..ee7aaca Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/post.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/prison.png b/public/static/Cesium/Assets/Textures/maki/prison.png new file mode 100644 index 0000000..355cba4 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/prison.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/rail-above.png b/public/static/Cesium/Assets/Textures/maki/rail-above.png new file mode 100644 index 0000000..e48d7ea Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/rail-above.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/rail-light.png b/public/static/Cesium/Assets/Textures/maki/rail-light.png new file mode 100644 index 0000000..895565e Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/rail-light.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/rail-metro.png b/public/static/Cesium/Assets/Textures/maki/rail-metro.png new file mode 100644 index 0000000..86078c9 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/rail-metro.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/rail-underground.png b/public/static/Cesium/Assets/Textures/maki/rail-underground.png new file mode 100644 index 0000000..42cfeb7 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/rail-underground.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/rail.png b/public/static/Cesium/Assets/Textures/maki/rail.png new file mode 100644 index 0000000..8af055d Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/rail.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/religious-christian.png b/public/static/Cesium/Assets/Textures/maki/religious-christian.png new file mode 100644 index 0000000..201bc81 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/religious-christian.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/religious-jewish.png b/public/static/Cesium/Assets/Textures/maki/religious-jewish.png new file mode 100644 index 0000000..e3c75f6 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/religious-jewish.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/religious-muslim.png b/public/static/Cesium/Assets/Textures/maki/religious-muslim.png new file mode 100644 index 0000000..25cbf08 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/religious-muslim.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/restaurant.png b/public/static/Cesium/Assets/Textures/maki/restaurant.png new file mode 100644 index 0000000..816282a Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/restaurant.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/roadblock.png b/public/static/Cesium/Assets/Textures/maki/roadblock.png new file mode 100644 index 0000000..539f0ed Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/roadblock.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/rocket.png b/public/static/Cesium/Assets/Textures/maki/rocket.png new file mode 100644 index 0000000..e6ed718 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/rocket.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/school.png b/public/static/Cesium/Assets/Textures/maki/school.png new file mode 100644 index 0000000..fb20bf4 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/school.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/scooter.png b/public/static/Cesium/Assets/Textures/maki/scooter.png new file mode 100644 index 0000000..41f7416 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/scooter.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/shop.png b/public/static/Cesium/Assets/Textures/maki/shop.png new file mode 100644 index 0000000..11a6b75 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/shop.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/skiing.png b/public/static/Cesium/Assets/Textures/maki/skiing.png new file mode 100644 index 0000000..4fc11e2 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/skiing.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/slaughterhouse.png b/public/static/Cesium/Assets/Textures/maki/slaughterhouse.png new file mode 100644 index 0000000..9b094ca Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/slaughterhouse.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/soccer.png b/public/static/Cesium/Assets/Textures/maki/soccer.png new file mode 100644 index 0000000..2385daf Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/soccer.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/square-stroked.png b/public/static/Cesium/Assets/Textures/maki/square-stroked.png new file mode 100644 index 0000000..fce75b0 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/square-stroked.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/square.png b/public/static/Cesium/Assets/Textures/maki/square.png new file mode 100644 index 0000000..babc9c5 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/square.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/star-stroked.png b/public/static/Cesium/Assets/Textures/maki/star-stroked.png new file mode 100644 index 0000000..242e42e Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/star-stroked.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/star.png b/public/static/Cesium/Assets/Textures/maki/star.png new file mode 100644 index 0000000..447dd38 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/star.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/suitcase.png b/public/static/Cesium/Assets/Textures/maki/suitcase.png new file mode 100644 index 0000000..a94f562 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/suitcase.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/swimming.png b/public/static/Cesium/Assets/Textures/maki/swimming.png new file mode 100644 index 0000000..b9fbdcc Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/swimming.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/telephone.png b/public/static/Cesium/Assets/Textures/maki/telephone.png new file mode 100644 index 0000000..6d57dc6 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/telephone.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/tennis.png b/public/static/Cesium/Assets/Textures/maki/tennis.png new file mode 100644 index 0000000..6cb6320 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/tennis.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/theatre.png b/public/static/Cesium/Assets/Textures/maki/theatre.png new file mode 100644 index 0000000..772c96e Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/theatre.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/toilets.png b/public/static/Cesium/Assets/Textures/maki/toilets.png new file mode 100644 index 0000000..e87cf19 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/toilets.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/town-hall.png b/public/static/Cesium/Assets/Textures/maki/town-hall.png new file mode 100644 index 0000000..1af5c7c Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/town-hall.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/town.png b/public/static/Cesium/Assets/Textures/maki/town.png new file mode 100644 index 0000000..4166169 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/town.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/triangle-stroked.png b/public/static/Cesium/Assets/Textures/maki/triangle-stroked.png new file mode 100644 index 0000000..131c7d9 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/triangle-stroked.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/triangle.png b/public/static/Cesium/Assets/Textures/maki/triangle.png new file mode 100644 index 0000000..d9c47f4 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/triangle.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/village.png b/public/static/Cesium/Assets/Textures/maki/village.png new file mode 100644 index 0000000..2650af5 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/village.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/warehouse.png b/public/static/Cesium/Assets/Textures/maki/warehouse.png new file mode 100644 index 0000000..910f1e4 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/warehouse.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/waste-basket.png b/public/static/Cesium/Assets/Textures/maki/waste-basket.png new file mode 100644 index 0000000..a71f9e4 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/waste-basket.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/water.png b/public/static/Cesium/Assets/Textures/maki/water.png new file mode 100644 index 0000000..159a557 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/water.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/wetland.png b/public/static/Cesium/Assets/Textures/maki/wetland.png new file mode 100644 index 0000000..1e8dec8 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/wetland.png differ diff --git a/public/static/Cesium/Assets/Textures/maki/zoo.png b/public/static/Cesium/Assets/Textures/maki/zoo.png new file mode 100644 index 0000000..4802299 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/maki/zoo.png differ diff --git a/public/static/Cesium/Assets/Textures/moonSmall.jpg b/public/static/Cesium/Assets/Textures/moonSmall.jpg new file mode 100644 index 0000000..47f5252 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/moonSmall.jpg differ diff --git a/public/static/Cesium/Assets/Textures/pin.svg b/public/static/Cesium/Assets/Textures/pin.svg new file mode 100644 index 0000000..7892c36 --- /dev/null +++ b/public/static/Cesium/Assets/Textures/pin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/static/Cesium/Assets/Textures/waterNormals.jpg b/public/static/Cesium/Assets/Textures/waterNormals.jpg new file mode 100644 index 0000000..eb1baa2 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/waterNormals.jpg differ diff --git a/public/static/Cesium/Assets/Textures/waterNormalsSmall.jpg b/public/static/Cesium/Assets/Textures/waterNormalsSmall.jpg new file mode 100644 index 0000000..57b19d8 Binary files /dev/null and b/public/static/Cesium/Assets/Textures/waterNormalsSmall.jpg differ diff --git a/public/static/Cesium/Assets/approximateTerrainHeights.json b/public/static/Cesium/Assets/approximateTerrainHeights.json new file mode 100644 index 0000000..92e52a3 --- /dev/null +++ b/public/static/Cesium/Assets/approximateTerrainHeights.json @@ -0,0 +1 @@ +{"6-0-0":[10.66,26.9],"6-0-1":[6.74,20.61],"6-0-2":[4.04,14.2],"6-0-3":[2.99,8.89],"6-0-4":[0.89,6.8],"6-0-5":[0.83,4.22],"6-0-6":[1.01,996.64],"6-0-7":[1.65,1473.8],"6-0-8":[4.23,1405.42],"6-0-9":[3.78,9.42],"6-0-10":[0.33,10.41],"6-0-11":[0.37,9.42],"6-0-12":[-1.21,10.72],"6-0-13":[-24.75,1797.13],"6-0-14":[-25.53,3.24],"6-0-15":[-12.72,0.06],"6-0-16":[-21.01,-5.62],"6-0-17":[-25.65,-10.79],"6-0-18":[-25.81,-11.56],"6-0-19":[-23.99,-9.29],"6-0-20":[-21.03,-8.01],"6-0-21":[-17.26,28.36],"6-0-22":[-10.44,-0.18],"6-0-23":[-6.09,1.27],"6-0-24":[0.2,8.96],"6-0-25":[4.5,13.87],"6-0-26":[6.42,18.94],"6-0-27":[9.26,23.03],"6-0-28":[10.92,27.13],"6-0-29":[12.68,32.43],"6-0-30":[15.67,36.44],"6-0-31":[17.17,41.7],"6-0-32":[18.65,43.91],"6-0-33":[19.85,48.69],"6-0-34":[21.11,56.5],"6-0-35":[26.26,79],"6-0-36":[33,95.12],"6-0-37":[17.36,1242.86],"6-0-38":[17.56,1197.83],"6-0-39":[46.88,149.88],"6-0-40":[49.39,105.09],"6-0-41":[41.61,101.97],"6-0-42":[20.68,550.11],"6-0-43":[17.2,92.57],"6-0-44":[16.92,77.99],"6-0-45":[18.56,46.63],"6-0-46":[12.38,43.07],"6-0-47":[3.4,29.35],"6-0-48":[-19.81,6.49],"6-0-49":[-39.19,-4.52],"6-0-50":[-57.57,-19.1],"6-0-51":[-76.36,-29.46],"6-0-52":[-88.35,-37.9],"6-0-53":[-97.62,-44.45],"6-0-54":[-101.65,-48.19],"6-0-55":[-119.7,-51.12],"6-0-56":[-126.97,-57.56],"6-0-57":[-126.3,-60.82],"6-0-58":[-126.26,-59.93],"6-0-59":[-119.1,-54.84],"6-0-60":[-110.88,-48.64],"6-0-61":[-96.62,258.8],"6-0-62":[-90.74,2997.38],"6-0-63":[-31.67,3098.17],"6-1-0":[10.71,26.95],"6-1-1":[7.14,20.8],"5-0-0":[6.74,26.95],"6-1-2":[3.89,15.04],"6-1-3":[3.37,8.36],"5-0-1":[2.99,15.04],"6-1-4":[-0.61,6.83],"6-1-5":[-0.55,4.83],"5-0-2":[-0.61,6.83],"6-1-6":[-0.38,343.9],"6-1-7":[0.43,308.3],"5-0-3":[-0.38,1473.8],"6-1-8":[1.88,906.96],"6-1-9":[4.01,286.65],"5-0-4":[1.88,1405.42],"6-1-10":[3.66,14],"6-1-11":[1.5,14.18],"5-0-5":[0.33,14.18],"6-1-12":[2.47,10.46],"6-1-13":[-22.06,1734.24],"5-0-6":[-24.75,1797.13],"6-1-14":[-20.71,6.52],"6-1-15":[-11.23,1.31],"5-0-7":[-25.53,6.52],"6-1-16":[-20.51,-4.75],"6-1-17":[-25.7,-10],"5-0-8":[-25.7,-4.75],"6-1-18":[-26.19,-12.15],"6-1-19":[-25.87,-9.22],"5-0-9":[-26.19,-9.22],"6-1-20":[-22.92,-7.87],"6-1-21":[-16.03,0.26],"5-0-10":[-22.92,28.36],"6-1-22":[-9.59,9.27],"6-1-23":[-2.9,6.54],"5-0-11":[-10.44,9.27],"6-1-24":[0.86,11.17],"6-1-25":[4.31,18.66],"5-0-12":[0.2,18.66],"6-1-26":[6.61,18.19],"6-1-27":[8.7,22.85],"5-0-13":[6.42,23.03],"6-1-28":[9.96,23.64],"6-1-29":[9.97,31.23],"5-0-14":[9.96,32.43],"6-1-30":[13.01,34.4],"6-1-31":[16.28,38.74],"5-0-15":[13.01,41.7],"6-1-32":[16.81,39.97],"6-1-33":[17.68,44.11],"5-0-16":[16.81,48.69],"6-1-34":[18.54,49.53],"6-1-35":[22.64,65.95],"5-0-17":[18.54,79],"6-1-36":[28.21,188.59],"6-1-37":[34.36,262.29],"5-0-18":[17.36,1242.86],"6-1-38":[45.21,1074.21],"6-1-39":[25.48,561.48],"5-0-19":[17.56,1197.83],"6-1-40":[23.5,105.17],"6-1-41":[23.63,99.7],"5-0-20":[23.5,105.17],"6-1-42":[19.32,82.54],"6-1-43":[18.61,61.85],"5-0-21":[17.2,550.11],"6-1-44":[20.07,55.81],"6-1-45":[18.77,46.46],"5-0-22":[16.92,77.99],"6-1-46":[8.68,36.12],"6-1-47":[-36.78,306.25],"5-0-23":[-36.78,306.25],"6-1-48":[-22.66,5.19],"6-1-49":[-42.82,-11.13],"5-0-24":[-42.82,6.49],"6-1-50":[-57.85,-19.1],"6-1-51":[-75.69,-29.65],"5-0-25":[-76.36,-19.1],"6-1-52":[-86.83,-37.51],"6-1-53":[-96.13,-43.07],"5-0-26":[-97.62,-37.51],"6-1-54":[-101.17,-47.18],"6-1-55":[-120.92,-50.74],"5-0-27":[-120.92,-47.18],"6-1-56":[-127.84,-59.08],"6-1-57":[-130.41,-62.14],"5-0-28":[-130.41,-57.56],"6-1-58":[-130.18,-59.59],"6-1-59":[-119.25,-55.12],"5-0-29":[-130.18,-54.84],"6-1-60":[-110.99,-49.4],"6-1-61":[-97.87,-11.15],"5-0-30":[-110.99,258.8],"6-1-62":[-91.52,3443.81],"6-1-63":[-29.54,3102.34],"5-0-31":[-91.52,3443.81],"6-2-0":[10.72,26.98],"6-2-1":[7.83,20.82],"6-2-2":[3.58,15.73],"6-2-3":[2.54,7.2],"6-2-4":[-0.61,5.79],"6-2-5":[-0.51,5.62],"6-2-6":[-0.51,2.52],"6-2-7":[0.49,3.57],"6-2-8":[1.45,1107.58],"6-2-9":[4.33,935.49],"6-2-10":[6.38,447.82],"6-2-11":[2.78,22.33],"6-2-12":[4.36,15.33],"6-2-13":[-21.97,1546.34],"6-2-14":[-15.6,10.11],"6-2-15":[-8.94,3.51],"6-2-16":[-19.28,-3.75],"6-2-17":[-25.1,-8.48],"6-2-18":[-26.22,-11.53],"6-2-19":[-26.62,-11.45],"6-2-20":[-24.22,-7.64],"6-2-21":[-15.31,-2.94],"6-2-22":[-9.58,22.84],"6-2-23":[0.06,13.16],"6-2-24":[3.65,16.58],"6-2-25":[5.95,18.75],"6-2-26":[7.56,18.27],"6-2-27":[8.72,22.69],"6-2-28":[9.83,22.16],"6-2-29":[9.86,26.06],"6-2-30":[12.2,32.28],"6-2-31":[13.89,34.73],"6-2-32":[14.45,36.73],"6-2-33":[14.44,38.35],"6-2-34":[17.75,45.33],"6-2-35":[20.66,56.51],"6-2-36":[14.56,1897.33],"6-2-37":[21.73,602.11],"6-2-38":[6.52,258.3],"6-2-39":[23.9,87.93],"6-2-40":[24.73,68.5],"6-2-41":[28.76,71.42],"6-2-42":[24.12,69.11],"6-2-43":[21.79,60.23],"6-2-44":[16.26,53.69],"6-2-45":[9.6,38.48],"6-2-46":[4.35,25.76],"6-2-47":[-8.34,16.06],"6-2-48":[-23.66,-1.78],"6-2-49":[-43.1,-12.47],"6-2-50":[-57.44,-20.26],"6-2-51":[-75.02,-28.99],"6-2-52":[-85.43,-36.15],"6-2-53":[-94.37,-42.32],"6-2-54":[-100.35,-45.74],"6-2-55":[-118.16,-50.3],"6-2-56":[-127.84,-57.37],"6-2-57":[-132.46,-63.72],"6-2-58":[-131.21,-59.33],"6-2-59":[-117.94,-55.1],"6-2-60":[-110.83,-49.58],"6-2-61":[-98.68,-43.95],"6-2-62":[-90.63,3904.3],"6-2-63":[-29.54,3104.92],"6-3-0":[10.72,27.03],"6-3-1":[7.91,20.82],"5-1-0":[7.83,27.03],"6-3-2":[3.44,16.58],"6-3-3":[2.11,6.48],"5-1-1":[2.11,16.58],"4-0-0":[2.11,27.03],"6-3-4":[-0.03,6.76],"6-3-5":[-0.56,6.63],"5-1-2":[-0.61,6.76],"6-3-6":[-1.04,3.03],"6-3-7":[0.58,2.79],"5-1-3":[-1.04,3.57],"4-0-1":[-1.04,1473.8],"6-3-8":[1.26,912.84],"6-3-9":[4.33,618.8],"5-1-4":[1.26,1107.58],"6-3-10":[6.38,21.82],"6-3-11":[-9.62,311.37],"5-1-5":[-9.62,447.82],"4-0-2":[-9.62,1405.42],"6-3-12":[5.53,24.46],"6-3-13":[-16.08,1745.85],"5-1-6":[-21.97,1745.85],"6-3-14":[-2.94,13.6],"6-3-15":[-7.31,5.28],"5-1-7":[-15.6,13.6],"4-0-3":[-25.53,1797.13],"6-3-16":[-15.66,-3.16],"6-3-17":[-22.96,-8.29],"5-1-8":[-25.1,-3.16],"6-3-18":[-26.21,-10.93],"6-3-19":[-27.23,-12.17],"5-1-9":[-27.23,-10.93],"4-0-4":[-27.23,-3.16],"6-3-20":[-24.81,-7.64],"6-3-21":[-14.34,0.47],"5-1-10":[-24.81,0.47],"6-3-22":[-3.34,23.06],"6-3-23":[2.58,22.37],"5-1-11":[-9.58,23.06],"4-0-5":[-24.81,28.36],"6-3-24":[6.28,19.36],"6-3-25":[8.08,21.32],"5-1-12":[3.65,21.32],"6-3-26":[1.66,34.68],"6-3-27":[8.88,23.51],"5-1-13":[1.66,34.68],"4-0-6":[0.2,34.68],"6-3-28":[10.27,25.7],"6-3-29":[10.85,24.86],"5-1-14":[9.83,26.06],"6-3-30":[11.93,28.27],"6-3-31":[13.63,30.64],"5-1-15":[11.93,34.73],"4-0-7":[9.83,41.7],"6-3-32":[14.74,33.87],"6-3-33":[11.58,35.79],"5-1-16":[11.58,38.35],"6-3-34":[16.56,41.34],"6-3-35":[18.05,51.07],"5-1-17":[16.56,56.51],"4-0-8":[11.58,79],"6-3-36":[19.63,771.39],"6-3-37":[21.73,997.06],"5-1-18":[14.56,1897.33],"6-3-38":[22.85,125.79],"6-3-39":[22.68,58.96],"5-1-19":[6.52,258.3],"4-0-9":[6.52,1897.33],"6-3-40":[21.12,59.21],"6-3-41":[21.12,57.29],"5-1-20":[21.12,71.42],"6-3-42":[19,55.57],"6-3-43":[19,45.14],"5-1-21":[19,69.11],"4-0-10":[17.2,550.11],"6-3-44":[12.68,42.37],"6-3-45":[7.26,30.69],"5-1-22":[7.26,53.69],"6-3-46":[1.07,18.1],"6-3-47":[-14.03,6.67],"5-1-23":[-14.03,25.76],"4-0-11":[-36.78,306.25],"6-3-48":[-25.52,-4.53],"6-3-49":[-40.76,-13.01],"5-1-24":[-43.1,-1.78],"6-3-50":[-55.85,-20.05],"6-3-51":[-71.88,-27.95],"5-1-25":[-75.02,-20.05],"4-0-12":[-76.36,6.49],"6-3-52":[-83.23,-35.08],"6-3-53":[-91.13,-41.07],"5-1-26":[-94.37,-35.08],"6-3-54":[-99.02,-44.5],"6-3-55":[-114.54,-49.53],"5-1-27":[-118.16,-44.5],"4-0-13":[-120.92,-35.08],"6-3-56":[-126.73,-56.74],"6-3-57":[-132.79,-63.72],"5-1-28":[-132.79,-56.74],"6-3-58":[-132.21,-59.46],"6-3-59":[-117.45,-55.06],"5-1-29":[-132.21,-55.06],"4-0-14":[-132.79,-54.84],"6-3-60":[-110.9,-50.05],"6-3-61":[-98.89,-43.58],"5-1-30":[-110.9,-43.58],"6-3-62":[-87.67,3970.41],"6-3-63":[-29.54,3106.07],"5-1-31":[-90.63,3970.41],"4-0-15":[-110.99,3970.41],"6-4-0":[10.72,27.07],"6-4-1":[8.58,20.88],"6-4-2":[3.21,17.11],"6-4-3":[2.1,7.09],"6-4-4":[1.19,8.01],"6-4-5":[-0.22,6.22],"6-4-6":[-1.08,2.41],"6-4-7":[0.39,611.05],"6-4-8":[1.07,1101.35],"6-4-9":[4.69,428.48],"6-4-10":[9.22,653.36],"6-4-11":[10.76,27.57],"6-4-12":[-14.99,1825.97],"6-4-13":[-15.6,2084.32],"6-4-14":[3.47,18.16],"6-4-15":[-5.56,6.15],"6-4-16":[-15.54,-2.51],"6-4-17":[-23.21,-7.81],"6-4-18":[-26.71,-10.93],"6-4-19":[-28,-11.62],"6-4-20":[-24.27,-7.94],"6-4-21":[-14.62,0.97],"6-4-22":[-0.2,17.55],"6-4-23":[2.53,28.15],"6-4-24":[7.62,19.59],"6-4-25":[8.14,21.94],"6-4-26":[9.01,22.24],"6-4-27":[10.38,25.71],"6-4-28":[11.65,27.19],"6-4-29":[12.01,27.84],"6-4-30":[12.52,28.27],"6-4-31":[13.6,29.58],"6-4-32":[14.29,32.89],"6-4-33":[15.45,34.86],"6-4-34":[16.24,35.6],"6-4-35":[15.79,39.9],"6-4-36":[15.18,43.72],"6-4-37":[15.33,45.71],"6-4-38":[15.37,48.56],"6-4-39":[15.29,45.88],"6-4-40":[15.09,44.41],"6-4-41":[14.97,42.29],"6-4-42":[13.73,42.26],"6-4-43":[12.06,37.32],"6-4-44":[10.39,32.28],"6-4-45":[5.84,25.33],"6-4-46":[-0.37,17.65],"6-4-47":[-16.61,1.08],"6-4-48":[-26.32,-7.42],"6-4-49":[-40.76,-13.57],"6-4-50":[-53.73,-20.05],"6-4-51":[-70.17,-26.95],"6-4-52":[-80.79,-33.29],"6-4-53":[-89,-39.39],"6-4-54":[-97.35,-43.1],"6-4-55":[-113.49,-49.01],"6-4-56":[-126.75,-56.1],"6-4-57":[-131.59,-62.78],"6-4-58":[-131.91,-58.9],"6-4-59":[-117.3,-55.06],"6-4-60":[-111.07,-49.97],"6-4-61":[-98.75,-43.61],"6-4-62":[-87.85,3807.76],"6-4-63":[-29.54,3106.13],"6-5-0":[10.78,27.12],"6-5-1":[8.58,21.1],"5-2-0":[8.58,27.12],"6-5-2":[3.17,17.66],"6-5-3":[0.92,7.26],"5-2-1":[0.92,17.66],"6-5-4":[-0.48,8],"6-5-5":[-2.17,1.64],"5-2-2":[-2.17,8.01],"6-5-6":[-0.74,0.57],"6-5-7":[-0.44,977.81],"5-2-3":[-1.08,977.81],"6-5-8":[1.07,1285.63],"6-5-9":[5.92,689.98],"5-2-4":[1.07,1285.63],"6-5-10":[9.22,574.41],"6-5-11":[12.46,29.76],"5-2-5":[9.22,653.36],"6-5-12":[-36.25,2863.96],"6-5-13":[-3.12,25.08],"5-2-6":[-36.25,2863.96],"6-5-14":[3.54,19.59],"6-5-15":[-6.33,5.94],"5-2-7":[-6.33,19.59],"6-5-16":[-17.4,-2.51],"6-5-17":[-24.54,-7.99],"5-2-8":[-24.54,-2.51],"6-5-18":[-27.22,-11.55],"6-5-19":[-27.57,-11.81],"5-2-9":[-28,-10.93],"6-5-20":[-24.98,-7.94],"6-5-21":[-15.88,-0.19],"5-2-10":[-24.98,0.97],"6-5-22":[-3.57,8.23],"6-5-23":[3.2,68.18],"5-2-11":[-3.57,68.18],"6-5-24":[7.47,18.67],"6-5-25":[7.19,18.1],"5-2-12":[7.19,21.94],"6-5-26":[7.38,20.47],"6-5-27":[8.56,27.76],"5-2-13":[7.38,27.76],"6-5-28":[11.8,30.78],"6-5-29":[12.82,30.66],"5-2-14":[11.65,30.78],"6-5-30":[13.61,32.3],"6-5-31":[13.86,32.65],"5-2-15":[12.52,32.65],"6-5-32":[14.35,32.3],"6-5-33":[15.09,34.31],"5-2-16":[14.29,34.86],"6-5-34":[14.43,33.96],"6-5-35":[14.39,37.54],"5-2-17":[14.39,39.9],"6-5-36":[12.64,37.44],"6-5-37":[11.66,31.1],"5-2-18":[11.66,45.71],"6-5-38":[11.75,38.62],"6-5-39":[12.15,31.7],"5-2-19":[11.75,48.56],"6-5-40":[10.41,30.13],"6-5-41":[10.41,29.27],"5-2-20":[10.41,44.41],"6-5-42":[10.26,28.59],"6-5-43":[8.59,25.16],"5-2-21":[8.59,42.26],"6-5-44":[6.7,23.39],"6-5-45":[4.27,19.09],"5-2-22":[4.27,32.28],"6-5-46":[-1.36,10.74],"6-5-47":[-17.27,-0.35],"5-2-23":[-17.27,17.65],"6-5-48":[-26.4,-8.28],"6-5-49":[-40.48,-13.41],"5-2-24":[-40.76,-7.42],"6-5-50":[-51.99,-19.83],"6-5-51":[-66.22,-25.93],"5-2-25":[-70.17,-19.83],"6-5-52":[-77.24,-31.84],"6-5-53":[-85.9,-37.71],"5-2-26":[-89,-31.84],"6-5-54":[-96.28,-42.09],"6-5-55":[-112.03,-48.58],"5-2-27":[-113.49,-42.09],"6-5-56":[-123.43,-55.02],"6-5-57":[-130.93,-62.4],"5-2-28":[-131.59,-55.02],"6-5-58":[-131.32,-59.02],"6-5-59":[-121.42,-54.72],"5-2-29":[-131.91,-54.72],"6-5-60":[-111.23,146.66],"6-5-61":[-98.4,-43.74],"5-2-30":[-111.23,146.66],"6-5-62":[-87.94,3579.75],"6-5-63":[-29.55,3100.28],"5-2-31":[-87.94,3807.76],"6-6-0":[10.89,27.18],"6-6-1":[8.99,21.34],"6-6-2":[3.2,17.98],"6-6-3":[0.5,6.62],"6-6-4":[-2.95,6.62],"6-6-5":[-3.68,0.42],"6-6-6":[-2.02,37.03],"6-6-7":[-1.02,1376.89],"6-6-8":[3.71,982.62],"6-6-9":[7.43,985.82],"6-6-10":[11.94,1234.98],"6-6-11":[13.11,705.14],"6-6-12":[-89.41,2536.32],"6-6-13":[3.4,22.83],"6-6-14":[2.65,19.52],"6-6-15":[-7.99,5.64],"6-6-16":[-18.67,-3.61],"6-6-17":[-26.52,-9.15],"6-6-18":[-29.62,-12.33],"6-6-19":[-29.54,-12.54],"6-6-20":[-27.32,-8.27],"6-6-21":[-18.45,-1.95],"6-6-22":[-6.48,7.14],"6-6-23":[3.01,190.01],"6-6-24":[6.51,138.47],"6-6-25":[5.69,15.96],"6-6-26":[5.4,16.51],"6-6-27":[6.05,22.74],"6-6-28":[9.02,28.21],"6-6-29":[-17.46,51.55],"6-6-30":[13.15,50.16],"6-6-31":[15.34,33.27],"6-6-32":[14.32,31.91],"6-6-33":[13.67,32.66],"6-6-34":[12.2,30.79],"6-6-35":[8.78,41.94],"6-6-36":[9.46,29.88],"6-6-37":[9.15,25.29],"6-6-38":[9.38,32.55],"6-6-39":[9.54,25.04],"6-6-40":[7.99,24.13],"6-6-41":[6.63,21.25],"6-6-42":[6.03,21.21],"6-6-43":[5.82,20.07],"6-6-44":[4.24,16.55],"6-6-45":[2.14,12.64],"6-6-46":[-4.05,7.66],"6-6-47":[-16.62,-0.23],"6-6-48":[-26.47,-8.01],"6-6-49":[-39.59,-13.39],"6-6-50":[-50.27,-19.08],"6-6-51":[-63.69,-24.71],"6-6-52":[-73.99,-30.15],"6-6-53":[-84.19,-35.56],"6-6-54":[-95.47,-40.93],"6-6-55":[-110.06,-48.04],"6-6-56":[-123.5,-54.77],"6-6-57":[-129.75,-61.69],"6-6-58":[-129.75,-62.06],"6-6-59":[-121.74,-53.84],"6-6-60":[-109.45,382.35],"6-6-61":[-98.13,-36.44],"6-6-62":[-87.49,3110.85],"6-6-63":[-29.55,3090.17],"6-7-0":[11.05,27.23],"6-7-1":[8.99,21.62],"5-3-0":[8.99,27.23],"6-7-2":[3.11,18.02],"6-7-3":[-1.88,4.75],"5-3-1":[-1.88,18.02],"4-1-0":[-1.88,27.23],"6-7-4":[-2.23,3.16],"6-7-5":[-10.48,-0.69],"5-3-2":[-10.48,6.62],"6-7-6":[-6.6,40.51],"6-7-7":[4.26,1489.28],"5-3-3":[-6.6,1489.28],"4-1-1":[-10.48,1489.28],"3-0-0":[-10.48,1489.28],"6-7-8":[5.88,1063.92],"6-7-9":[20.7,1104.57],"5-3-4":[3.71,1104.57],"6-7-10":[14.91,1599.96],"6-7-11":[-8.97,1740.57],"5-3-5":[-8.97,1740.57],"4-1-2":[-8.97,1740.57],"6-7-12":[-61.85,2512.65],"6-7-13":[5.57,22.76],"5-3-6":[-89.41,2536.32],"6-7-14":[0.64,18.21],"6-7-15":[-12.27,3.05],"5-3-7":[-12.27,19.52],"4-1-3":[-89.41,2863.96],"3-0-1":[-89.41,2863.96],"6-7-16":[-22.25,-4.09],"6-7-17":[-29.14,-10.07],"5-3-8":[-29.14,-3.61],"6-7-18":[-31.98,-13.47],"6-7-19":[-31.86,-13.83],"5-3-9":[-31.98,-12.33],"4-1-4":[-31.98,-2.51],"6-7-20":[-30.11,-10],"6-7-21":[-23.56,-3.54],"5-3-10":[-30.11,-1.95],"6-7-22":[-13.91,4.69],"6-7-23":[0.99,14.6],"5-3-11":[-13.91,190.01],"4-1-5":[-30.11,190.01],"3-0-2":[-31.98,190.01],"6-7-24":[3.42,1613.09],"6-7-25":[5.02,15.52],"5-3-12":[3.42,1613.09],"6-7-26":[3.25,11],"6-7-27":[3.44,17.46],"5-3-13":[3.25,22.74],"4-1-6":[3.25,1613.09],"6-7-28":[7.09,27.01],"6-7-29":[10.93,32.99],"5-3-14":[-17.46,51.55],"6-7-30":[11.96,44.95],"6-7-31":[15.14,36.64],"5-3-15":[11.96,50.16],"4-1-7":[-17.46,51.55],"3-0-3":[-17.46,1613.09],"6-7-32":[14.44,33.46],"6-7-33":[12.08,29.13],"5-3-16":[12.08,33.46],"6-7-34":[9.43,27.02],"6-7-35":[7.86,36.94],"5-3-17":[7.86,41.94],"4-1-8":[7.86,41.94],"6-7-36":[7.22,22.36],"6-7-37":[6.79,18.93],"5-3-18":[6.79,29.88],"6-7-38":[1.56,124.3],"6-7-39":[2.32,568.37],"5-3-19":[1.56,568.37],"4-1-9":[1.56,568.37],"3-0-4":[1.56,1897.33],"6-7-40":[4.25,19.09],"6-7-41":[3.01,14.77],"5-3-20":[3.01,24.13],"6-7-42":[2.34,12.33],"6-7-43":[2.29,11.63],"5-3-21":[2.29,21.21],"4-1-10":[2.29,44.41],"6-7-44":[1.26,10.73],"6-7-45":[0.76,8.15],"5-3-22":[0.76,16.55],"6-7-46":[-6.78,4.11],"6-7-47":[-16.16,-2.7],"5-3-23":[-16.62,7.66],"4-1-11":[-17.27,32.28],"3-0-5":[-36.78,550.11],"6-7-48":[-26.58,-6.48],"6-7-49":[-40.15,-13.72],"5-3-24":[-40.15,-6.48],"6-7-50":[-47.56,-19.18],"6-7-51":[-60.03,-23.45],"5-3-25":[-63.69,-19.08],"4-1-12":[-70.17,-6.48],"6-7-52":[-69.12,-28.3],"6-7-53":[-81.45,-33.85],"5-3-26":[-84.19,-28.3],"6-7-54":[-93.97,-39.48],"6-7-55":[-109.85,-47.07],"5-3-27":[-110.06,-39.48],"4-1-13":[-113.49,-28.3],"3-0-6":[-120.92,6.49],"6-7-56":[-122.72,-54.61],"6-7-57":[-128.44,-60.84],"5-3-28":[-129.75,-54.61],"6-7-58":[-128.99,-62.74],"6-7-59":[-122.71,340.29],"5-3-29":[-129.75,340.29],"4-1-14":[-131.91,340.29],"6-7-60":[-107.62,329.56],"6-7-61":[-97.3,5.39],"5-3-30":[-109.45,382.35],"6-7-62":[-86.37,3872.33],"6-7-63":[-29.55,3078.77],"5-3-31":[-87.49,3872.33],"4-1-15":[-111.23,3872.33],"3-0-7":[-132.79,3970.41],"6-8-0":[11.25,27.28],"6-8-1":[8.74,21.81],"6-8-2":[2.69,17.9],"6-8-3":[-2.96,4.36],"6-8-4":[-4.02,0.26],"6-8-5":[-11.5,-1.15],"6-8-6":[-10.53,46.22],"6-8-7":[12.55,2230.09],"6-8-8":[36.02,2322.75],"6-8-9":[40.43,1231.31],"6-8-10":[15.75,1286.11],"6-8-11":[-30.38,2365.52],"6-8-12":[7.93,340.69],"6-8-13":[5.51,23.37],"6-8-14":[-1.67,15.39],"6-8-15":[-16.52,0.65],"6-8-16":[-24.69,-6.49],"6-8-17":[-32.29,-11.47],"6-8-18":[-35.39,-14.68],"6-8-19":[-34.56,-15.15],"6-8-20":[-31.71,-12.28],"6-8-21":[-26.05,-7.16],"6-8-22":[-18.78,1],"6-8-23":[-3.52,7.31],"6-8-24":[-3.45,4224.76],"6-8-25":[1,4199.19],"6-8-26":[0.32,10.2],"6-8-27":[0.52,13.28],"6-8-28":[4.26,20.81],"6-8-29":[8.36,29.82],"6-8-30":[12.88,34],"6-8-31":[-1.72,39.3],"6-8-32":[14.17,33.54],"6-8-33":[6.64,33.65],"6-8-34":[6.42,29.43],"6-8-35":[5.61,18.21],"6-8-36":[5.17,15.57],"6-8-37":[5.39,18.43],"6-8-38":[3.83,14.4],"6-8-39":[3.25,45.92],"6-8-40":[1.53,11.5],"6-8-41":[0.06,8],"6-8-42":[-0.02,5.43],"6-8-43":[0.21,5.22],"6-8-44":[-2.28,4.54],"6-8-45":[-2.62,2.59],"6-8-46":[-8.98,1.16],"6-8-47":[-17.03,-3.98],"6-8-48":[-25.84,-6.48],"6-8-49":[-38.78,-13.07],"6-8-50":[-45.69,-18.94],"6-8-51":[-56.6,-22.56],"6-8-52":[-66.31,-26.79],"6-8-53":[-78.98,-32.27],"6-8-54":[-91.83,-38.18],"6-8-55":[-109.23,-46.25],"6-8-56":[-120.92,-53.72],"6-8-57":[-127.6,-60.42],"6-8-58":[-128.14,-62.51],"6-8-59":[-122.71,772.25],"6-8-60":[-106.38,254.93],"6-8-61":[-97.02,77.33],"6-8-62":[-84.41,3797.09],"6-8-63":[-29.55,3066.33],"6-9-0":[11.45,27.35],"6-9-1":[8.74,22.1],"5-4-0":[8.74,27.35],"6-9-2":[2.31,17.45],"6-9-3":[-4.87,3.84],"5-4-1":[-4.87,17.9],"6-9-4":[-6.12,-0.5],"6-9-5":[-15.2,-2.83],"5-4-2":[-15.2,0.26],"6-9-6":[-15.2,52.5],"6-9-7":[4.19,2249.45],"5-4-3":[-15.2,2249.45],"6-9-8":[56.64,1957.92],"6-9-9":[69.73,3549.52],"5-4-4":[36.02,3549.52],"6-9-10":[-8.73,3498.22],"6-9-11":[-44.9,2301.61],"5-4-5":[-44.9,3498.22],"6-9-12":[6.61,28.12],"6-9-13":[5.07,22.28],"5-4-6":[5.07,340.69],"6-9-14":[-6.22,10.49],"6-9-15":[-22.36,-1.66],"5-4-7":[-22.36,15.39],"6-9-16":[-30.48,-8.53],"6-9-17":[-38.55,-13.07],"5-4-8":[-38.55,-6.49],"6-9-18":[-40.53,-16.27],"6-9-19":[-40.96,-16.03],"5-4-9":[-40.96,-14.68],"6-9-20":[-37.32,-13.34],"6-9-21":[-28.36,-9.72],"5-4-10":[-37.32,-7.16],"6-9-22":[-23.57,-3.51],"6-9-23":[-16.83,1.38],"5-4-11":[-23.57,7.31],"6-9-24":[-11.52,8.24],"6-9-25":[-7.91,8.27],"5-4-12":[-11.52,4224.76],"6-9-26":[-7.04,2.76],"6-9-27":[-5.19,7.73],"5-4-13":[-7.04,13.28],"6-9-28":[1.39,14.78],"6-9-29":[5.73,25.09],"5-4-14":[1.39,29.82],"6-9-30":[10.36,28.45],"6-9-31":[12.39,30.86],"5-4-15":[-1.72,39.3],"6-9-32":[13.54,31.34],"6-9-33":[10.49,28.46],"5-4-16":[6.64,33.65],"6-9-34":[7.62,22.63],"6-9-35":[4.58,15.89],"5-4-17":[4.58,29.43],"6-9-36":[2.95,11.11],"6-9-37":[-14.06,364.92],"5-4-18":[-14.06,364.92],"6-9-38":[1.83,11.45],"6-9-39":[-0.79,7.86],"5-4-19":[-0.79,45.92],"6-9-40":[-2.81,87.14],"6-9-41":[-2.9,2.06],"5-4-20":[-2.9,87.14],"6-9-42":[-3.32,0.4],"6-9-43":[-4.29,0.66],"5-4-21":[-4.29,5.43],"6-9-44":[-7.14,0.22],"6-9-45":[-8.9,-1.28],"5-4-22":[-8.9,4.54],"6-9-46":[-12.57,-1.34],"6-9-47":[-20.7,-5.15],"5-4-23":[-20.7,1.16],"6-9-48":[-26.09,-8.73],"6-9-49":[-37.6,-13.13],"5-4-24":[-38.78,-6.48],"6-9-50":[-45.9,-17.8],"6-9-51":[-53.38,-22.53],"5-4-25":[-56.6,-17.8],"6-9-52":[-62.81,-25.9],"6-9-53":[-76.09,-30.77],"5-4-26":[-78.98,-25.9],"6-9-54":[-90.63,-37.36],"6-9-55":[-107.41,-45.63],"5-4-27":[-109.23,-37.36],"6-9-56":[-119.96,-53.04],"6-9-57":[-125.63,-58.67],"5-4-28":[-127.6,-53.04],"6-9-58":[-126.31,-58.13],"6-9-59":[-119.94,1007.23],"5-4-29":[-128.14,1007.23],"6-9-60":[-106.59,462.57],"6-9-61":[-96,462.57],"5-4-30":[-106.59,462.57],"6-9-62":[-84.94,2783.57],"6-9-63":[-29.55,3039.73],"5-4-31":[-84.94,3797.09],"6-10-0":[11.66,27.39],"6-10-1":[8.8,22.47],"6-10-2":[2.11,17.55],"6-10-3":[-5.07,2.92],"6-10-4":[-6.14,-2.32],"6-10-5":[-16.63,-2.83],"6-10-6":[-16.98,31.96],"6-10-7":[-2.48,2250.87],"6-10-8":[75.19,1714.22],"6-10-9":[30.42,6207.28],"6-10-10":[-317.19,2318.12],"6-10-11":[5.09,380.19],"6-10-12":[6.09,24.81],"6-10-13":[0.81,18.21],"6-10-14":[-11.19,6.41],"6-10-15":[-27.78,-4.11],"6-10-16":[-35.96,-11.54],"6-10-17":[-43.9,-15.64],"6-10-18":[-45.01,-19.38],"6-10-19":[-44.42,-18.81],"6-10-20":[-43.08,-14.67],"6-10-21":[-34.29,-11.93],"6-10-22":[-28.41,-8.91],"6-10-23":[-23.59,-5.93],"6-10-24":[-20.03,-3.95],"6-10-25":[-15.21,-3.18],"6-10-26":[-11.97,-2.83],"6-10-27":[-7.59,2.35],"6-10-28":[-2.35,10.55],"6-10-29":[2.75,19.96],"6-10-30":[6.93,24.2],"6-10-31":[9.9,28.1],"6-10-32":[11.26,27.88],"6-10-33":[8.09,27.31],"6-10-34":[4.97,20.7],"6-10-35":[0.28,29.22],"6-10-36":[0.02,34.33],"6-10-37":[-7.05,982.44],"6-10-38":[-47,1738.21],"6-10-39":[-8.61,368.88],"6-10-40":[-9.1,399.3],"6-10-41":[-6.13,-0.9],"6-10-42":[-5.03,-1.07],"6-10-43":[-7.02,-1.37],"6-10-44":[-10.1,-2.29],"6-10-45":[-14.95,-3.92],"6-10-46":[-16.66,-4.4],"6-10-47":[-23.64,-6.94],"6-10-48":[-27.68,-10.44],"6-10-49":[-35.5,-13.58],"6-10-50":[-42.84,-16.97],"6-10-51":[-51.64,-20.99],"6-10-52":[-60.08,-24.38],"6-10-53":[-74.73,-29.94],"6-10-54":[-88.65,-36.56],"6-10-55":[-106.09,-44.4],"6-10-56":[-116.67,-51.74],"6-10-57":[-123.8,-57.34],"6-10-58":[-124.5,-55.65],"6-10-59":[-112.82,883.88],"6-10-60":[-105.11,570.37],"6-10-61":[-5.84,549.47],"6-10-62":[-84.94,2425.34],"6-10-63":[-29.55,3008.67],"6-11-0":[11.74,27.45],"6-11-1":[8.8,23.16],"5-5-0":[8.8,27.45],"6-11-2":[1.89,18.15],"6-11-3":[-6.35,2.66],"5-5-1":[-6.35,18.15],"4-2-0":[-6.35,27.45],"6-11-4":[-8.07,-2.32],"6-11-5":[-16.52,-3.47],"5-5-2":[-16.63,-2.32],"6-11-6":[-17.37,5.59],"6-11-7":[-2.46,2337.17],"5-5-3":[-17.37,2337.17],"4-2-1":[-17.37,2337.17],"6-11-8":[96.66,1624.53],"6-11-9":[111.02,4180.16],"5-5-4":[30.42,6207.28],"6-11-10":[-100.65,4014.2],"6-11-11":[5.56,27.09],"5-5-5":[-317.19,4014.2],"4-2-2":[-317.19,6207.28],"6-11-12":[4.91,20.02],"6-11-13":[-4.06,12.89],"5-5-6":[-4.06,24.81],"6-11-14":[-18.2,1.04],"6-11-15":[-33.3,-7.02],"5-5-7":[-33.3,6.41],"4-2-3":[-33.3,340.69],"6-11-16":[-42.2,-14.25],"6-11-17":[-50.16,-18.62],"5-5-8":[-50.16,-11.54],"6-11-18":[-52.64,-21.88],"6-11-19":[-51.01,-21.95],"5-5-9":[-52.64,-18.81],"4-2-4":[-52.64,-6.49],"6-11-20":[-49.53,-17.94],"6-11-21":[-42.64,-14.48],"5-5-10":[-49.53,-11.93],"6-11-22":[-34.91,-12.52],"6-11-23":[-31.5,-10.6],"5-5-11":[-34.91,-5.93],"4-2-5":[-49.53,7.31],"6-11-24":[-29.55,-8.2],"6-11-25":[-23.86,-6.38],"5-5-12":[-29.55,-3.18],"6-11-26":[-19.87,-4.46],"6-11-27":[-13.37,-1.47],"5-5-13":[-19.87,2.35],"4-2-6":[-29.55,4224.76],"6-11-28":[-8.39,3.39],"6-11-29":[-0.38,13.1],"5-5-14":[-8.39,19.96],"6-11-30":[3.79,18.24],"6-11-31":[7.04,23.18],"5-5-15":[3.79,28.1],"4-2-7":[-8.39,39.3],"6-11-32":[8.41,23.23],"6-11-33":[6.61,21.8],"5-5-16":[6.61,27.88],"6-11-34":[1.94,15.53],"6-11-35":[-0.83,8.74],"5-5-17":[-0.83,29.22],"4-2-8":[-0.83,33.65],"6-11-36":[-5.27,4.25],"6-11-37":[-19.17,108.86],"5-5-18":[-19.17,982.44],"6-11-38":[-10.07,418.12],"6-11-39":[-13.37,-1.41],"5-5-19":[-47,1738.21],"4-2-9":[-47,1738.21],"6-11-40":[-14.02,394.12],"6-11-41":[-9.37,-2.74],"5-5-20":[-14.02,399.3],"6-11-42":[-11.22,-2.09],"6-11-43":[-11.68,-2.6],"5-5-21":[-11.68,-1.07],"4-2-10":[-14.02,399.3],"6-11-44":[-14.51,-3.6],"6-11-45":[-18.66,-5.6],"5-5-22":[-18.66,-2.29],"6-11-46":[-22.45,-7.76],"6-11-47":[-26.05,-8.93],"5-5-23":[-26.05,-4.4],"4-2-11":[-26.05,4.54],"6-11-48":[-29.53,-11.9],"6-11-49":[-34.85,-13.59],"5-5-24":[-35.5,-10.44],"6-11-50":[-40.97,-16.5],"6-11-51":[-48.53,-20.15],"5-5-25":[-51.64,-16.5],"4-2-12":[-56.6,-6.48],"6-11-52":[-58.21,-23.76],"6-11-53":[-72.99,-29.48],"5-5-26":[-74.73,-23.76],"6-11-54":[-86.21,-36.12],"6-11-55":[-103.18,-43.08],"5-5-27":[-106.09,-36.12],"4-2-13":[-109.23,-23.76],"6-11-56":[-113.79,-50.3],"6-11-57":[-120.63,-55.96],"5-5-28":[-123.8,-50.3],"6-11-58":[-122.11,-30.17],"6-11-59":[-109.73,896.34],"5-5-29":[-124.5,896.34],"4-2-14":[-128.14,1007.23],"6-11-60":[-50.89,667.99],"6-11-61":[119.31,564.8],"5-5-30":[-105.11,667.99],"6-11-62":[-24.93,3379.23],"6-11-63":[-29.55,2977.45],"5-5-31":[-84.94,3379.23],"4-2-15":[-106.59,3797.09],"6-12-0":[11.81,27.54],"6-12-1":[9.27,23.85],"6-12-2":[1.81,18.51],"6-12-3":[-7.36,2.56],"6-12-4":[-10.2,-3.36],"6-12-5":[-14.2,-3.64],"6-12-6":[-17.25,-1.46],"6-12-7":[-2.4,2626.58],"6-12-8":[127.44,1971.14],"6-12-9":[267.44,4964.36],"6-12-10":[-3.84,5003.13],"6-12-11":[5.53,17.77],"6-12-12":[1.22,17.44],"6-12-13":[-9.28,8.08],"6-12-14":[-24.33,-2.54],"6-12-15":[-38.37,-10.05],"6-12-16":[-46.59,-16.83],"6-12-17":[-57.08,-21.69],"6-12-18":[-58.76,-25],"6-12-19":[-58.51,-24.8],"6-12-20":[-55.3,-22.36],"6-12-21":[-47.72,-17.53],"6-12-22":[-42.01,-15.94],"6-12-23":[-37.95,-14.94],"6-12-24":[-36.96,-12.18],"6-12-25":[-32.38,-10.05],"6-12-26":[-27.79,-7.26],"6-12-27":[-19.35,-4.41],"6-12-28":[-13.92,-0.37],"6-12-29":[-6.27,6.6],"6-12-30":[-0.21,13.43],"6-12-31":[3.37,18.86],"6-12-32":[5.2,19.08],"6-12-33":[3.85,16.44],"6-12-34":[1,12.4],"6-12-35":[-5.91,3.06],"6-12-36":[-9.39,-0.47],"6-12-37":[-17.5,26.39],"6-12-38":[-14.85,15.85],"6-12-39":[-17.05,13.14],"6-12-40":[-17.31,-5.04],"6-12-41":[-154.99,367.1],"6-12-42":[-15.2,-4.66],"6-12-43":[-16.85,-5.49],"6-12-44":[-17.72,-5.68],"6-12-45":[-20.88,-7.48],"6-12-46":[-23.23,-9.37],"6-12-47":[-28.2,-11.32],"6-12-48":[-31.15,-13.01],"6-12-49":[-35.22,-15.16],"6-12-50":[-39.72,-16.79],"6-12-51":[-47.41,-19.15],"6-12-52":[-57.34,-23.29],"6-12-53":[-72.24,-28.77],"6-12-54":[-84.64,-35.59],"6-12-55":[-100.6,-41.81],"6-12-56":[-110.81,-48.6],"6-12-57":[-116.73,-54.27],"6-12-58":[-118.77,732.21],"6-12-59":[-106.63,1118.71],"6-12-60":[70.79,697.82],"6-12-61":[154.07,547.44],"6-12-62":[132.66,3177.52],"6-12-63":[-29.55,2958.4],"6-13-0":[11.89,27.69],"6-13-1":[9.27,24.72],"5-6-0":[9.27,27.69],"6-13-2":[1.77,18.69],"6-13-3":[-8.12,2.29],"5-6-1":[-8.12,18.69],"6-13-4":[-12.79,-3.7],"6-13-5":[-16.12,-5.11],"5-6-2":[-16.12,-3.36],"6-13-6":[-16.46,-1.51],"6-13-7":[-4.5,2443.65],"5-6-3":[-17.25,2626.58],"6-13-8":[159.96,1955.52],"6-13-9":[264.67,3305.19],"5-6-4":[127.44,4964.36],"6-13-10":[-0.63,5501.18],"6-13-11":[3.4,16.19],"5-6-5":[-3.84,5501.18],"6-13-12":[-4.33,12.53],"6-13-13":[-18.11,1.23],"5-6-6":[-18.11,17.44],"6-13-14":[-32.01,-5.03],"6-13-15":[-45.8,-13.68],"5-6-7":[-45.8,-2.54],"6-13-16":[-52.61,-19.6],"6-13-17":[-65.07,-24.29],"5-6-8":[-65.07,-16.83],"6-13-18":[-66.2,-29.09],"6-13-19":[-65.62,-28.05],"5-6-9":[-66.2,-24.8],"6-13-20":[-61.26,-25.11],"6-13-21":[-55.52,-21.57],"5-6-10":[-61.26,-17.53],"6-13-22":[-51.8,-19.25],"6-13-23":[-47.07,-19.08],"5-6-11":[-51.8,-14.94],"6-13-24":[-46.24,-17.09],"6-13-25":[-43.41,-14.52],"5-6-12":[-46.24,-10.05],"6-13-26":[-38.71,-10.51],"6-13-27":[-27.96,-7.34],"5-6-13":[-38.71,-4.41],"6-13-28":[-23.22,-4.17],"6-13-29":[-16.97,-0.2],"5-6-14":[-23.22,6.6],"6-13-30":[-9.11,5.15],"6-13-31":[-0.62,10.05],"5-6-15":[-9.11,18.86],"6-13-32":[1.62,10.97],"6-13-33":[1.64,9.15],"5-6-16":[1.62,19.08],"6-13-34":[-12.01,574],"6-13-35":[-8.4,3.2],"5-6-17":[-12.01,574],"6-13-36":[-12.41,-2.96],"6-13-37":[-12.61,18.94],"5-6-18":[-17.5,26.39],"6-13-38":[-17.05,15.14],"6-13-39":[-23.08,21.33],"5-6-19":[-23.08,21.33],"6-13-40":[-20.89,-7.97],"6-13-41":[-20.89,-4.36],"5-6-20":[-154.99,367.1],"6-13-42":[-17.41,-4.92],"6-13-43":[-19.71,-8.03],"5-6-21":[-19.71,-4.66],"6-13-44":[-19.71,-8.36],"6-13-45":[-23.09,-9.22],"5-6-22":[-23.09,-5.68],"6-13-46":[-26.22,-10.62],"6-13-47":[-29.93,-11.92],"5-6-23":[-29.93,-9.37],"6-13-48":[-33.2,-14.27],"6-13-49":[-36.69,-15.88],"5-6-24":[-36.69,-13.01],"6-13-50":[-37.72,-16.79],"6-13-51":[-46.58,-18.04],"5-6-25":[-47.41,-16.79],"6-13-52":[-56.13,-21.69],"6-13-53":[-71.1,-28.36],"5-6-26":[-72.24,-21.69],"6-13-54":[-82.17,-35.16],"6-13-55":[-96.84,-41.49],"5-6-27":[-100.6,-35.16],"6-13-56":[-107.17,-47.12],"6-13-57":[-113.4,-52.39],"5-6-28":[-116.73,-47.12],"6-13-58":[-113.8,799.79],"6-13-59":[542.77,1415.24],"5-6-29":[-118.77,1415.24],"6-13-60":[220.94,696.8],"6-13-61":[196.25,578.81],"5-6-30":[70.79,697.82],"6-13-62":[157.82,2807.42],"6-13-63":[-29.55,2933.27],"5-6-31":[-29.55,3177.52],"6-14-0":[11.98,27.81],"6-14-1":[9.31,25.28],"6-14-2":[1.78,18.69],"6-14-3":[-8.42,2.84],"6-14-4":[-14.71,-4.24],"6-14-5":[-17.71,-6.65],"6-14-6":[-16.95,-3.21],"6-14-7":[-6.95,1629.08],"6-14-8":[241.64,2195.84],"6-14-9":[291.07,2352.25],"6-14-10":[-17.81,5990.12],"6-14-11":[-1.23,1250.79],"6-14-12":[-8.91,5.47],"6-14-13":[-24.35,-2.9],"6-14-14":[-37.36,-9.51],"6-14-15":[-50.8,-17],"6-14-16":[-57.16,-23.13],"6-14-17":[-69.06,-26.79],"6-14-18":[-71.13,-32.26],"6-14-19":[-70.57,-30.63],"6-14-20":[-66.49,-28.02],"6-14-21":[-61.06,-25.99],"6-14-22":[-58.98,-23.49],"6-14-23":[-55.47,-22.95],"6-14-24":[-54.23,-21.9],"6-14-25":[-50.55,-19.65],"6-14-26":[-46.21,-14.46],"6-14-27":[-36.47,-11.82],"6-14-28":[-32.84,-8.88],"6-14-29":[-24.98,-4.86],"6-14-30":[-17.66,-0.54],"6-14-31":[-8.29,3.14],"6-14-32":[-4.33,4.38],"6-14-33":[-3.04,4.04],"6-14-34":[-30.12,444.87],"6-14-35":[-45.64,1253.85],"6-14-36":[-15.82,-4.2],"6-14-37":[-18.57,11.81],"6-14-38":[-20.38,12.56],"6-14-39":[-34.53,29.28],"6-14-40":[-23.61,-9.96],"6-14-41":[-23.65,-8.25],"6-14-42":[-22.26,-7.63],"6-14-43":[-21.36,-8.79],"6-14-44":[-21.36,-9.44],"6-14-45":[-23.95,-9.8],"6-14-46":[-26.93,-11.59],"6-14-47":[-30.83,-13.34],"6-14-48":[-34.25,-14.96],"6-14-49":[-36.46,-16.64],"6-14-50":[-38.97,-17.15],"6-14-51":[-43.17,-17.84],"6-14-52":[-55.2,-20.47],"6-14-53":[-70.32,-27.45],"6-14-54":[-81.47,-34.2],"6-14-55":[-94.24,-40.37],"6-14-56":[-103.99,-46.19],"6-14-57":[-110.48,-50.32],"6-14-58":[-111.11,1501.65],"6-14-59":[649.8,1730.64],"6-14-60":[290.61,752.21],"6-14-61":[298.29,587.99],"6-14-62":[230.04,3232.04],"6-14-63":[-29.54,2914.46],"6-15-0":[12.07,27.95],"6-15-1":[9.31,25.8],"5-7-0":[9.31,27.95],"6-15-2":[2,18.62],"6-15-3":[-9.36,3.57],"5-7-1":[-9.36,18.69],"4-3-0":[-9.36,27.95],"6-15-4":[-15.66,-4.24],"6-15-5":[-19.9,-7.76],"5-7-2":[-19.9,-4.24],"6-15-6":[-18.71,-3.02],"6-15-7":[-10.73,1677.33],"5-7-3":[-18.71,1677.33],"4-3-1":[-19.9,2626.58],"3-1-0":[-19.9,2626.58],"6-15-8":[6.28,2201.64],"6-15-9":[372.06,2244.89],"5-7-4":[6.28,2352.25],"6-15-10":[-3.5,3286.53],"6-15-11":[-24.01,4338.49],"5-7-5":[-24.01,5990.12],"4-3-2":[-24.01,5990.12],"6-15-12":[-16,0.26],"6-15-13":[-30.5,-5.77],"5-7-6":[-30.5,5.47],"6-15-14":[-41.91,-12.56],"6-15-15":[-54.89,-19.83],"5-7-7":[-54.89,-9.51],"4-3-3":[-54.89,17.44],"3-1-1":[-317.19,6207.28],"2-0-0":[-317.19,6207.28],"6-15-16":[-61.53,-25.72],"6-15-17":[-71.96,-29.35],"5-7-8":[-71.96,-23.13],"6-15-18":[-74.97,-34.5],"6-15-19":[-75.35,-33.7],"5-7-9":[-75.35,-30.63],"4-3-4":[-75.35,-16.83],"6-15-20":[-73.32,-31.19],"6-15-21":[-69.11,-29.89],"5-7-10":[-73.32,-25.99],"6-15-22":[-67.31,-28.48],"6-15-23":[-66.05,-27.68],"5-7-11":[-67.31,-22.95],"4-3-5":[-73.32,-14.94],"3-1-2":[-75.35,7.31],"6-15-24":[-64.91,-26.11],"6-15-25":[-62.05,-23.7],"5-7-12":[-64.91,-19.65],"6-15-26":[-58.25,-19.12],"6-15-27":[-49.51,-17.07],"5-7-13":[-58.25,-11.82],"4-3-6":[-64.91,-4.41],"6-15-28":[-44.78,-13.51],"6-15-29":[-35.93,-9.36],"5-7-14":[-44.78,-4.86],"6-15-30":[-28.32,-5.14],"6-15-31":[-19.14,-2.71],"5-7-15":[-28.32,3.14],"4-3-7":[-44.78,18.86],"3-1-3":[-64.91,4224.76],"2-0-1":[-75.35,4224.76],"6-15-32":[-13.73,-1.71],"6-15-33":[-10.63,-1.49],"5-7-16":[-13.73,4.38],"6-15-34":[-10.78,-2.12],"6-15-35":[-13.93,-2.93],"5-7-17":[-45.64,1253.85],"4-3-8":[-45.64,1253.85],"6-15-36":[-18.78,-4.46],"6-15-37":[-22.12,-7.9],"5-7-18":[-22.12,11.81],"6-15-38":[-22.48,7.98],"6-15-39":[-23.83,16.82],"5-7-19":[-34.53,29.28],"4-3-9":[-34.53,29.28],"3-1-4":[-47,1738.21],"6-15-40":[-25.6,210.54],"6-15-41":[-26.63,-11.38],"5-7-20":[-26.63,210.54],"6-15-42":[-26.15,-10.1],"6-15-43":[-23.47,-10.22],"5-7-21":[-26.15,-7.63],"4-3-10":[-154.99,367.1],"6-15-44":[-23.37,-10.28],"6-15-45":[-24.8,-10.38],"5-7-22":[-24.8,-9.44],"6-15-46":[-27.57,-12.05],"6-15-47":[-31.68,-13.68],"5-7-23":[-31.68,-11.59],"4-3-11":[-31.68,-5.68],"3-1-5":[-154.99,399.3],"2-0-2":[-154.99,1897.33],"6-15-48":[-33.83,-15.28],"6-15-49":[-36.24,-16.57],"5-7-24":[-36.46,-14.96],"6-15-50":[-40.85,-17.93],"6-15-51":[-40.81,-17.17],"5-7-25":[-43.17,-17.15],"4-3-12":[-47.41,-13.01],"6-15-52":[-53.46,-20.29],"6-15-53":[-68.22,-26.61],"5-7-26":[-70.32,-20.29],"6-15-54":[-79.48,-33.55],"6-15-55":[-91.99,-40.09],"5-7-27":[-94.24,-33.55],"4-3-13":[-100.6,-20.29],"3-1-6":[-109.23,-6.48],"6-15-56":[-99.15,-44.2],"6-15-57":[-105.53,-47.94],"5-7-28":[-110.48,-44.2],"6-15-58":[-105.53,1582.81],"6-15-59":[752.2,3280.76],"5-7-29":[-111.11,3280.76],"4-3-14":[-118.77,3280.76],"6-15-60":[370.12,1055.95],"6-15-61":[342.75,583.66],"5-7-30":[290.61,1055.95],"6-15-62":[359.13,3299.77],"6-15-63":[-29.54,2899.4],"5-7-31":[-29.54,3299.77],"4-3-15":[-29.55,3299.77],"3-1-7":[-128.14,3797.09],"2-0-3":[-132.79,3970.41],"6-16-0":[12.18,28.06],"6-16-1":[9.42,26.44],"6-16-2":[2.35,18.81],"6-16-3":[-9.47,3.62],"6-16-4":[-15.5,-4.65],"6-16-5":[-19.9,-6.14],"6-16-6":[-18.71,-2.92],"6-16-7":[-13.51,358.63],"6-16-8":[4.93,2700.74],"6-16-9":[524.03,2379.96],"6-16-10":[138.16,2349.52],"6-16-11":[-19.04,3089.83],"6-16-12":[-32.37,1191.79],"6-16-13":[-32.78,1099.24],"6-16-14":[-42.73,-15.25],"6-16-15":[-55.78,-21.82],"6-16-16":[-62.13,-27.45],"6-16-17":[-73.82,-31.05],"6-16-18":[-77.86,-35.86],"6-16-19":[-79.19,-36.66],"6-16-20":[-78.8,-34.53],"6-16-21":[-75.08,-33.65],"6-16-22":[-74.19,-33.08],"6-16-23":[-73.6,-32.44],"6-16-24":[-71.56,-31.17],"6-16-25":[-70.97,-29.12],"6-16-26":[-66.99,-25.12],"6-16-27":[-59.8,-22.61],"6-16-28":[-53.63,-18.47],"6-16-29":[-44.99,-14.42],"6-16-30":[-35.2,-9.88],"6-16-31":[-25.62,-7.01],"6-16-32":[-19.94,-5.38],"6-16-33":[-16.2,-5.07],"6-16-34":[-15.92,-4.9],"6-16-35":[-16.42,-5.38],"6-16-36":[-19.23,-6.96],"6-16-37":[-22.12,-9.38],"6-16-38":[-22.83,-10.64],"6-16-39":[-23.64,-10.88],"6-16-40":[-25.6,395.5],"6-16-41":[-27.18,-12.58],"6-16-42":[-27.19,-11.89],"6-16-43":[-25.25,-11.48],"6-16-44":[-23.89,-10.73],"6-16-45":[-25.51,-11.64],"6-16-46":[-27.55,-12.42],"6-16-47":[-30.38,-13.83],"6-16-48":[-32.72,-14.63],"6-16-49":[-36.23,-15.29],"6-16-50":[-40.57,-17.57],"6-16-51":[-40.62,-17.17],"6-16-52":[-52.6,-20.03],"6-16-53":[-67.1,-26.24],"6-16-54":[-78.95,-32.27],"6-16-55":[-88.41,-38.74],"6-16-56":[-94.87,-42.36],"6-16-57":[-102.31,-45.37],"6-16-58":[-102.31,2780.28],"6-16-59":[1055.94,3057.06],"6-16-60":[561.63,1251.61],"6-16-61":[360.22,729.54],"6-16-62":[569.39,3324.73],"6-16-63":[-29.54,2887.59],"6-17-0":[12.28,28.2],"6-17-1":[9.42,27.09],"5-8-0":[9.42,28.2],"6-17-2":[2.44,19.47],"6-17-3":[-9.26,3.4],"5-8-1":[-9.47,19.47],"6-17-4":[-12.46,-4.27],"6-17-5":[-17.6,-3.54],"5-8-2":[-19.9,-3.54],"6-17-6":[-16.97,-3.57],"6-17-7":[-17.03,450.81],"5-8-3":[-18.71,450.81],"6-17-8":[-1,2409.04],"6-17-9":[729.41,2941.77],"5-8-4":[-1,2941.77],"6-17-10":[639.5,2300.19],"6-17-11":[-7.73,3041.41],"5-8-5":[-19.04,3089.83],"6-17-12":[-40.41,2709.89],"6-17-13":[-36.12,1110.77],"5-8-6":[-40.41,2709.89],"6-17-14":[-44.38,-16.38],"6-17-15":[-55.37,-22.03],"5-8-7":[-55.78,-15.25],"6-17-16":[-62.03,-26.24],"6-17-17":[-74.43,-30.62],"5-8-8":[-74.43,-26.24],"6-17-18":[-79.53,-36.84],"6-17-19":[-81.78,-38.94],"5-8-9":[-81.78,-35.86],"6-17-20":[-81.39,-38.14],"6-17-21":[-82.89,-37.3],"5-8-10":[-82.89,-33.65],"6-17-22":[-83.1,-37.32],"6-17-23":[-82.35,-36.18],"5-8-11":[-83.1,-32.44],"6-17-24":[-81.19,-36.06],"6-17-25":[-80.32,-33.99],"5-8-12":[-81.19,-29.12],"6-17-26":[-77.62,-31.19],"6-17-27":[-70.94,-27.45],"5-8-13":[-77.62,-22.61],"6-17-28":[-64.31,-23.68],"6-17-29":[-54,-18.06],"5-8-14":[-64.31,-14.42],"6-17-30":[-43.73,-13.82],"6-17-31":[-34.31,-10.34],"5-8-15":[-43.73,-7.01],"6-17-32":[-28.04,-8.32],"6-17-33":[-22.53,-7.81],"5-8-16":[-28.04,-5.07],"6-17-34":[-20.71,-7.81],"6-17-35":[-20.22,-8],"5-8-17":[-20.71,-4.9],"6-17-36":[-18.91,-8.25],"6-17-37":[-21.69,-9.44],"5-8-18":[-22.12,-6.96],"6-17-38":[-22.79,-10.07],"6-17-39":[-23.64,-11.06],"5-8-19":[-23.64,-10.07],"6-17-40":[-25.6,315.4],"6-17-41":[-27.15,-11.32],"5-8-20":[-27.18,395.5],"6-17-42":[-27.2,-12.55],"6-17-43":[-25.3,-11.22],"5-8-21":[-27.2,-11.22],"6-17-44":[-23.39,-10.83],"6-17-45":[-25.69,-11.63],"5-8-22":[-25.69,-10.73],"6-17-46":[-27.32,-12.29],"6-17-47":[-29.02,-13.43],"5-8-23":[-30.38,-12.29],"6-17-48":[-30.31,-14],"6-17-49":[-34.83,-14.43],"5-8-24":[-36.23,-14],"6-17-50":[-36.28,-15.71],"6-17-51":[-39.91,-16.54],"5-8-25":[-40.62,-15.71],"6-17-52":[-49.95,-19.22],"6-17-53":[-64.39,-24.43],"5-8-26":[-67.1,-19.22],"6-17-54":[-75.83,-31.35],"6-17-55":[-84.15,-37.16],"5-8-27":[-88.41,-31.35],"6-17-56":[-89.73,-39.94],"6-17-57":[-97.13,-43.44],"5-8-28":[-102.31,-39.94],"6-17-58":[-96.35,2730.02],"6-17-59":[1251.6,2341.32],"5-8-29":[-102.31,3057.06],"6-17-60":[646.73,1350.33],"6-17-61":[434.89,803.49],"5-8-30":[360.22,1350.33],"6-17-62":[729.53,3573.17],"6-17-63":[-29.54,2879.05],"5-8-31":[-29.54,3573.17],"6-18-0":[12.4,28.31],"6-18-1":[10.07,27.6],"6-18-2":[2.4,20.08],"6-18-3":[-8.33,2.75],"6-18-4":[-10.4,-2.36],"6-18-5":[-18.83,-3.43],"6-18-6":[-22.53,142.08],"6-18-7":[-18.17,429.97],"6-18-8":[-0.16,2151.79],"6-18-9":[348.42,2614.23],"6-18-10":[9.51,2710.75],"6-18-11":[294.75,2698.9],"6-18-12":[-24.66,2746.59],"6-18-13":[-259.61,2747.57],"6-18-14":[-46.28,1843.49],"6-18-15":[-53.35,-22.18],"6-18-16":[-60.66,-26.44],"6-18-17":[-73.74,-29.66],"6-18-18":[-79.72,-35.92],"6-18-19":[-82.56,-39.87],"6-18-20":[-83.14,-40.29],"6-18-21":[-87.25,-40.68],"6-18-22":[-88.44,-41.38],"6-18-23":[-87.74,-40.45],"6-18-24":[-87.08,-40.24],"6-18-25":[-86.36,-38.8],"6-18-26":[-83.25,-35.89],"6-18-27":[-78.02,-32.16],"6-18-28":[-71.88,-27.65],"6-18-29":[-60.18,-22.1],"6-18-30":[-49.79,-17.75],"6-18-31":[-40.43,-14.23],"6-18-32":[-34.17,-11.43],"6-18-33":[-27.72,-10.12],"6-18-34":[-24.22,-9.98],"6-18-35":[-22.71,-9.16],"6-18-36":[-19.05,-9.09],"6-18-37":[-20.03,-8.96],"6-18-38":[-21.83,-9.07],"6-18-39":[-23.26,-10.05],"6-18-40":[-22.96,30.18],"6-18-41":[-25.64,-10.66],"6-18-42":[-26.07,-11.58],"6-18-43":[-24.63,-10.9],"6-18-44":[-23.29,-10.9],"6-18-45":[-24.95,-11.37],"6-18-46":[-26.58,-12.17],"6-18-47":[-27.96,-12.57],"6-18-48":[-28.66,-12.73],"6-18-49":[-31.29,-12.64],"6-18-50":[-33.1,-13.52],"6-18-51":[-38.3,-14.77],"6-18-52":[-46.75,-18.61],"6-18-53":[-62.71,-23.22],"6-18-54":[-73.11,-30.4],"6-18-55":[-79.89,-35.13],"6-18-56":[-85.72,-38.01],"6-18-57":[-91.81,-40.53],"6-18-58":[-89.38,2750.5],"6-18-59":[1350.32,2817.84],"6-18-60":[749.4,1490.05],"6-18-61":[552.13,901.46],"6-18-62":[803.48,3682.63],"6-18-63":[-29.54,2878.07],"6-19-0":[12.49,28.44],"6-19-1":[10.07,28.63],"5-9-0":[10.07,28.63],"6-19-2":[2.33,20.54],"6-19-3":[-8.14,2.42],"5-9-1":[-8.33,20.54],"4-4-0":[-9.47,28.63],"6-19-4":[-13.58,-2.05],"6-19-5":[-21.21,283.5],"5-9-2":[-21.21,283.5],"6-19-6":[-26.63,317.55],"6-19-7":[-24.44,581.34],"5-9-3":[-26.63,581.34],"4-4-1":[-26.63,581.34],"6-19-8":[-7.43,973.14],"6-19-9":[6.63,2480.85],"5-9-4":[-7.43,2614.23],"6-19-10":[-1.43,2228.73],"6-19-11":[399.03,2929.86],"5-9-5":[-1.43,2929.86],"4-4-2":[-19.04,3089.83],"6-19-12":[587.41,2399.44],"6-19-13":[-30.31,3974.94],"5-9-6":[-259.61,3974.94],"6-19-14":[-46.53,2829.29],"6-19-15":[-55.15,2131.34],"5-9-7":[-55.15,2829.29],"4-4-3":[-259.61,3974.94],"6-19-16":[-60.39,1592.47],"6-19-17":[-71.31,1595.59],"5-9-8":[-73.74,1595.59],"6-19-18":[-78.96,251.63],"6-19-19":[-83.12,-38.05],"5-9-9":[-83.12,251.63],"4-4-4":[-83.12,1595.59],"6-19-20":[-84.9,-41.29],"6-19-21":[-89.63,-42.03],"5-9-10":[-89.63,-40.29],"6-19-22":[-92.74,-43.78],"6-19-23":[-93.19,-43.92],"5-9-11":[-93.19,-40.45],"4-4-5":[-93.19,-32.44],"6-19-24":[-93.06,-43.61],"6-19-25":[-92.29,-42.14],"5-9-12":[-93.06,-38.8],"6-19-26":[-89.24,-39.76],"6-19-27":[-85.23,-36.36],"5-9-13":[-89.24,-32.16],"4-4-6":[-93.06,-22.61],"6-19-28":[-78.96,-31.27],"6-19-29":[-67.42,-25.3],"5-9-14":[-78.96,-22.1],"6-19-30":[-57.07,-21.14],"6-19-31":[-48.07,-17.54],"5-9-15":[-57.07,-14.23],"4-4-7":[-78.96,-7.01],"6-19-32":[-41.41,-14.6],"6-19-33":[-33.3,-12.43],"5-9-16":[-41.41,-10.12],"6-19-34":[-28.55,-11.75],"6-19-35":[-23.48,-9.55],"5-9-17":[-28.55,-9.16],"4-4-8":[-41.41,-4.9],"6-19-36":[-19.4,-8.58],"6-19-37":[-18.07,-7.73],"5-9-18":[-20.03,-7.73],"6-19-38":[-19.41,-7.69],"6-19-39":[-21.4,-8.18],"5-9-19":[-23.26,-7.69],"4-4-9":[-23.64,-6.96],"6-19-40":[-21.19,0.38],"6-19-41":[-23.26,-9.49],"5-9-20":[-25.64,30.18],"6-19-42":[-23.81,-10.86],"6-19-43":[-23.19,-10.71],"5-9-21":[-26.07,-10.71],"4-4-10":[-27.2,395.5],"6-19-44":[-23.63,-10.75],"6-19-45":[-24.65,-11.33],"5-9-22":[-24.95,-10.75],"6-19-46":[-24.92,-11.97],"6-19-47":[-25.67,-11.81],"5-9-23":[-27.96,-11.81],"4-4-11":[-30.38,-10.73],"6-19-48":[-25.62,-11.54],"6-19-49":[-26.6,-11.36],"5-9-24":[-31.29,-11.36],"6-19-50":[-29.05,-11.87],"6-19-51":[-37.03,-13.23],"5-9-25":[-38.3,-11.87],"4-4-12":[-40.62,-11.36],"6-19-52":[-44.46,-17.75],"6-19-53":[-60.61,-22.7],"5-9-26":[-62.71,-17.75],"6-19-54":[-69.03,-29.59],"6-19-55":[-75.62,-33.5],"5-9-27":[-79.89,-29.59],"4-4-13":[-88.41,-17.75],"6-19-56":[-80.8,-36.68],"6-19-57":[-87.74,-39.43],"5-9-28":[-91.81,-36.68],"6-19-58":[-80.06,2986.57],"6-19-59":[1490.04,3530.83],"5-9-29":[-89.38,3530.83],"4-4-14":[-102.31,3530.83],"6-19-60":[865.9,1514.1],"6-19-61":[606.22,956.54],"5-9-30":[552.13,1514.1],"6-19-62":[901.45,3114.64],"6-19-63":[-29.54,2878.57],"5-9-31":[-29.54,3682.63],"4-4-15":[-29.54,3682.63],"6-20-0":[12.6,28.55],"6-20-1":[10.43,29.48],"6-20-2":[2.27,20.82],"6-20-3":[-7.48,2.38],"6-20-4":[-13.58,105.36],"6-20-5":[-22.77,360.51],"6-20-6":[-29.85,693.54],"6-20-7":[-27.48,842.66],"6-20-8":[101.52,662.44],"6-20-9":[38.73,1501.83],"6-20-10":[-7.86,1335.36],"6-20-11":[265.12,2410.7],"6-20-12":[394.15,2580.47],"6-20-13":[176.29,3118.01],"6-20-14":[-26.42,3265.41],"6-20-15":[-24.65,4373.52],"6-20-16":[-14.17,3180.62],"6-20-17":[-27.55,4292.74],"6-20-18":[-76.12,2093.71],"6-20-19":[-82.77,1757.21],"6-20-20":[-84.77,-39.45],"6-20-21":[-90.02,-41.79],"6-20-22":[-93.63,-44.7],"6-20-23":[-95.18,-46.27],"6-20-24":[-95.41,-46.25],"6-20-25":[-94.65,-44.61],"6-20-26":[-91.54,-43],"6-20-27":[-87.87,-39.48],"6-20-28":[-81.88,-34.42],"6-20-29":[-70.45,-28.53],"6-20-30":[-61.33,-24.48],"6-20-31":[-52.2,-20.85],"6-20-32":[-45.21,-17.01],"6-20-33":[-35.82,-14.29],"6-20-34":[-30,-12.23],"6-20-35":[-24.98,-9.38],"6-20-36":[-19.21,-7.52],"6-20-37":[-16.88,-6.21],"6-20-38":[-16.13,-6.04],"6-20-39":[-17.89,-6.16],"6-20-40":[-18.62,-6.82],"6-20-41":[-21.61,-7.83],"6-20-42":[-22.22,-9.86],"6-20-43":[-23.83,-10.66],"6-20-44":[-24.73,-11.26],"6-20-45":[-25.79,-11.42],"6-20-46":[-25.8,-11.97],"6-20-47":[-24.13,-11.21],"6-20-48":[-23.48,-10.65],"6-20-49":[-23.65,-10.31],"6-20-50":[-26.04,-10.7],"6-20-51":[-35.46,-11.92],"6-20-52":[-44.23,-15.93],"6-20-53":[-59.19,-21.91],"6-20-54":[-66.26,-28.4],"6-20-55":[-73.37,-32.29],"6-20-56":[-79.03,-35.55],"6-20-57":[-84.12,-37.56],"6-20-58":[-79.02,1956.61],"6-20-59":[1514.09,2297.87],"6-20-60":[953.69,1535.12],"6-20-61":[812.01,1063],"6-20-62":[956.53,2865.19],"6-20-63":[-29.59,2878.57],"6-21-0":[12.69,28.95],"6-21-1":[10.43,30.37],"5-10-0":[10.43,30.37],"6-21-2":[2.27,21.72],"6-21-3":[-4.05,2.72],"5-10-1":[-7.48,21.72],"6-21-4":[-14.88,306.82],"6-21-5":[-25.82,454.87],"5-10-2":[-25.82,454.87],"6-21-6":[-33.35,413.74],"6-21-7":[-35.21,781.37],"5-10-3":[-35.21,842.66],"6-21-8":[126.37,696.58],"6-21-9":[137.72,880.39],"5-10-4":[38.73,1501.83],"6-21-10":[-10.46,833.93],"6-21-11":[299.05,1099.39],"5-10-5":[-10.46,2410.7],"6-21-12":[314.78,3253.8],"6-21-13":[300.79,3939.1],"5-10-6":[176.29,3939.1],"6-21-14":[196.37,2946.16],"6-21-15":[15.24,2851.96],"5-10-7":[-26.42,4373.52],"6-21-16":[351.22,2953.97],"6-21-17":[661.98,3100.13],"5-10-8":[-27.55,4292.74],"6-21-18":[-17.49,4387.58],"6-21-19":[-41.7,4242],"5-10-9":[-82.77,4387.58],"6-21-20":[-83.6,610.58],"6-21-21":[-89.13,1248.21],"5-10-10":[-90.02,1248.21],"6-21-22":[-93.13,-43.26],"6-21-23":[-95.04,-45.42],"5-10-11":[-95.18,-43.26],"6-21-24":[-95.32,-46.3],"6-21-25":[-94.74,-45.23],"5-10-12":[-95.41,-44.61],"6-21-26":[-91.98,-43.77],"6-21-27":[-87.81,-40.96],"5-10-13":[-91.98,-39.48],"6-21-28":[-82.67,-36.11],"6-21-29":[-71.2,-30.73],"5-10-14":[-82.67,-28.53],"6-21-30":[-63.31,-26.83],"6-21-31":[-54.81,-22.8],"5-10-15":[-63.31,-20.85],"6-21-32":[-47.82,-18.67],"6-21-33":[-38.41,-15.13],"5-10-16":[-47.82,-14.29],"6-21-34":[-32.21,-12.89],"6-21-35":[-25.63,-9.33],"5-10-17":[-32.21,-9.33],"6-21-36":[-19.3,-6.07],"6-21-37":[-14.54,-4.67],"5-10-18":[-19.3,-4.67],"6-21-38":[-12.06,-4.21],"6-21-39":[-13.18,-4.21],"5-10-19":[-17.89,-4.21],"6-21-40":[-15.05,-5.08],"6-21-41":[-19.58,-6.52],"5-10-20":[-21.61,-5.08],"6-21-42":[-21.17,-9.26],"6-21-43":[-22.89,-10.44],"5-10-21":[-23.83,-9.26],"6-21-44":[-24.5,-11.31],"6-21-45":[-26.05,-12.01],"5-10-22":[-26.05,-11.26],"6-21-46":[-26.03,-11.96],"6-21-47":[-24,-10.76],"5-10-23":[-26.03,-10.76],"6-21-48":[-22.24,-10.03],"6-21-49":[-21.6,-9.78],"5-10-24":[-23.65,-9.78],"6-21-50":[-23.2,-10.14],"6-21-51":[-31.43,-11.33],"5-10-25":[-35.46,-10.14],"6-21-52":[-42.02,-14.72],"6-21-53":[-56.28,-21.16],"5-10-26":[-59.19,-14.72],"6-21-54":[-63.59,-26.87],"6-21-55":[-71.43,-31.11],"5-10-27":[-73.37,-26.87],"6-21-56":[-74.31,-34.39],"6-21-57":[-79.17,-34.74],"5-10-28":[-84.12,-34.39],"6-21-58":[-75.47,1699.95],"6-21-59":[1495.5,2538.05],"5-10-29":[-79.02,2538.05],"6-21-60":[1062.99,1626.41],"6-21-61":[869.71,1241.73],"5-10-30":[812.01,1626.41],"6-21-62":[1025.91,2638.67],"6-21-63":[-29.63,2874.63],"5-10-31":[-29.63,2878.57],"6-22-0":[12.8,29.12],"6-22-1":[11.43,30.77],"6-22-2":[2.33,22.89],"6-22-3":[-2.3,5.53],"6-22-4":[-15.36,459.75],"6-22-5":[-28.86,707.55],"6-22-6":[-33.69,562.23],"6-22-7":[-36.83,561.11],"6-22-8":[106.74,731.19],"6-22-9":[124.49,633.28],"6-22-10":[-20.19,980.63],"6-22-11":[221.72,953.84],"6-22-12":[291.67,1945.45],"6-22-13":[407.7,3751.07],"6-22-14":[373.13,3467.23],"6-22-15":[143.66,2981.68],"6-22-16":[498.91,2953.81],"6-22-17":[1005.33,3455.03],"6-22-18":[-109.13,3616.13],"6-22-19":[-115.5,3677.07],"6-22-20":[-106.82,3055.54],"6-22-21":[-87.07,2579.5],"6-22-22":[-90.86,227.36],"6-22-23":[-93.31,-36.74],"6-22-24":[-93.47,-43.31],"6-22-25":[-92.56,-42.61],"6-22-26":[-90.46,-41.08],"6-22-27":[-87.11,-38.63],"6-22-28":[-81.94,-34.92],"6-22-29":[-71.11,-31.11],"6-22-30":[-63.37,-27.03],"6-22-31":[-54.82,-23.61],"6-22-32":[-48,-19.66],"6-22-33":[-38.67,-15.78],"6-22-34":[-32.33,-12.28],"6-22-35":[-25.13,-8],"6-22-36":[-18.53,-4.62],"6-22-37":[-11.89,-3.04],"6-22-38":[-9.24,-2.78],"6-22-39":[-10.03,-2.97],"6-22-40":[-12.55,-3.88],"6-22-41":[-18.46,-5.52],"6-22-42":[-20.42,-8.14],"6-22-43":[-22.66,-9.88],"6-22-44":[-24.44,-11.12],"6-22-45":[-25.51,-11.47],"6-22-46":[-25.48,-11.33],"6-22-47":[-23.5,-10.26],"6-22-48":[-21.38,-9.66],"6-22-49":[-20.27,-9.52],"6-22-50":[-22.59,-10.1],"6-22-51":[-29.7,-11.32],"6-22-52":[-41.54,-14.53],"6-22-53":[-53.67,-21.14],"6-22-54":[-61.27,-25.86],"6-22-55":[-68.78,-29.95],"6-22-56":[-72.33,-32.84],"6-22-57":[-76.5,-32.9],"6-22-58":[-76.53,3383.56],"6-22-59":[1286.48,3626.49],"6-22-60":[1241.72,1694.94],"6-22-61":[987.52,1432.98],"6-22-62":[1168.67,2576.08],"6-22-63":[-29.54,2863.29],"6-23-0":[12.92,29.14],"6-23-1":[11.53,30.89],"5-11-0":[11.43,30.89],"6-23-2":[2.57,24.53],"6-23-3":[-2.86,9.47],"5-11-1":[-2.86,24.53],"4-5-0":[-7.48,30.89],"6-23-4":[-17.92,409.2],"6-23-5":[-35.37,754.53],"5-11-2":[-35.37,754.53],"6-23-6":[-35.77,628.59],"6-23-7":[-51.79,437.77],"5-11-3":[-51.79,628.59],"4-5-1":[-51.79,842.66],"3-2-0":[-51.79,842.66],"6-23-8":[212,620.34],"6-23-9":[126.79,595],"5-11-4":[106.74,731.19],"6-23-10":[-25.96,952.89],"6-23-11":[181.68,969.04],"5-11-5":[-25.96,980.63],"4-5-2":[-25.96,2410.7],"6-23-12":[362.56,1217.71],"6-23-13":[599.34,3152.73],"5-11-6":[291.67,3751.07],"6-23-14":[584.02,3396.83],"6-23-15":[496.5,3385.15],"5-11-7":[143.66,3467.23],"4-5-3":[-26.42,4373.52],"3-2-1":[-259.61,4373.52],"6-23-16":[739.26,3846.98],"6-23-17":[1261.06,3659.45],"5-11-8":[498.91,3846.98],"6-23-18":[342.66,3960.27],"6-23-19":[53.25,2781.72],"5-11-9":[-115.5,3960.27],"4-5-4":[-115.5,4387.58],"6-23-20":[-43.42,2074.25],"6-23-21":[-53.91,2324.4],"5-11-10":[-106.82,3055.54],"6-23-22":[-86.07,1902.28],"6-23-23":[-86.2,-37.16],"5-11-11":[-93.31,1902.28],"4-5-5":[-106.82,3055.54],"3-2-2":[-115.5,4387.58],"6-23-24":[-86.54,-38.53],"6-23-25":[-85.65,238.06],"5-11-12":[-93.47,238.06],"6-23-26":[-84.32,-36.65],"6-23-27":[-80.64,-34.81],"5-11-13":[-90.46,-34.81],"4-5-6":[-95.41,238.06],"6-23-28":[-76.59,-32.08],"6-23-29":[-68.37,-29.04],"5-11-14":[-81.94,-29.04],"6-23-30":[-61.8,-25.29],"6-23-31":[-52.78,-21.98],"5-11-15":[-63.37,-21.98],"4-5-7":[-82.67,-20.85],"3-2-3":[-95.41,238.06],"6-23-32":[-46.8,-18.42],"6-23-33":[-38.04,-15],"5-11-16":[-48,-15],"6-23-34":[-31.41,-10.65],"6-23-35":[-23.03,-6.84],"5-11-17":[-32.33,-6.84],"4-5-8":[-48,-6.84],"6-23-36":[-15.57,-3.94],"6-23-37":[-8.42,-2.35],"5-11-18":[-18.53,-2.35],"6-23-38":[-5.83,-1.99],"6-23-39":[-7.6,-2.19],"5-11-19":[-10.03,-1.99],"4-5-9":[-19.3,-1.99],"3-2-4":[-48,-1.99],"6-23-40":[-10.38,-3.43],"6-23-41":[-16.03,-5],"5-11-20":[-18.46,-3.43],"6-23-42":[-19.19,-6.88],"6-23-43":[-22.06,-9.07],"5-11-21":[-22.66,-6.88],"4-5-10":[-23.83,-3.43],"6-23-44":[-22.86,-10.1],"6-23-45":[-23.63,-10.53],"5-11-22":[-25.51,-10.1],"6-23-46":[-23.44,-10.4],"6-23-47":[-22.17,-9.8],"5-11-23":[-25.48,-9.8],"4-5-11":[-26.05,-9.8],"3-2-5":[-30.38,395.5],"6-23-48":[-20.39,-9.35],"6-23-49":[-21.17,-9.35],"5-11-24":[-21.38,-9.35],"6-23-50":[-23.21,-10.18],"6-23-51":[-30.13,-11.53],"5-11-25":[-30.13,-10.1],"4-5-12":[-35.46,-9.35],"6-23-52":[-43.45,-14.72],"6-23-53":[-51.53,-21.48],"5-11-26":[-53.67,-14.53],"6-23-54":[-58.95,-25.37],"6-23-55":[-65.3,-28.82],"5-11-27":[-68.78,-25.37],"4-5-13":[-73.37,-14.53],"3-2-6":[-88.41,-9.35],"6-23-56":[-69.37,-31.18],"6-23-57":[-72.56,-32.31],"5-11-28":[-76.5,-31.18],"6-23-58":[-73.42,2010.01],"6-23-59":[1105.43,2194.6],"5-11-29":[-76.53,3626.49],"4-5-14":[-84.12,3626.49],"6-23-60":[1418.33,1763.02],"6-23-61":[1252.11,1638.58],"5-11-30":[987.52,1763.02],"6-23-62":[1432.97,2755.16],"6-23-63":[-29.54,2834.96],"5-11-31":[-29.54,2863.29],"4-5-15":[-29.63,2878.57],"3-2-7":[-102.31,3682.63],"6-24-0":[13.08,29.1],"6-24-1":[12.77,30.89],"6-24-2":[3.36,25.8],"6-24-3":[-3.5,11.12],"6-24-4":[-19.26,404.18],"6-24-5":[-38.9,404.18],"6-24-6":[-40.02,637.43],"6-24-7":[-57.55,369.52],"6-24-8":[70.59,618.66],"6-24-9":[123.35,643.83],"6-24-10":[-27.38,442.7],"6-24-11":[174.59,841.05],"6-24-12":[373.57,849.8],"6-24-13":[495.56,1071.09],"6-24-14":[572.57,2114.96],"6-24-15":[720.4,3889.28],"6-24-16":[1325.33,4191.26],"6-24-17":[1258.65,4109.88],"6-24-18":[857.52,3690.6],"6-24-19":[364.31,3824.21],"6-24-20":[-26.57,3235.29],"6-24-21":[-39.57,2589.58],"6-24-22":[-71.54,1702.94],"6-24-23":[-79.57,2045.21],"6-24-24":[-78.3,-33.29],"6-24-25":[-77.08,268.06],"6-24-26":[-75.28,-31.52],"6-24-27":[-72.83,-29.62],"6-24-28":[-69.63,-28.02],"6-24-29":[-63.34,-25.65],"6-24-30":[-58.09,-23.11],"6-24-31":[-49.64,-20.2],"6-24-32":[-43.76,-17.27],"6-24-33":[-35.9,-13.42],"6-24-34":[-29.87,-9.91],"6-24-35":[-20.23,-6.43],"6-24-36":[-13.61,-3.86],"6-24-37":[-7.43,-2.32],"6-24-38":[-4.95,-1.94],"6-24-39":[-7.06,-2.13],"6-24-40":[-9.67,-3.32],"6-24-41":[-13.81,-4.7],"6-24-42":[-17.75,-6.09],"6-24-43":[-20.18,-8.32],"6-24-44":[-21.4,-9.34],"6-24-45":[-21.96,-9.83],"6-24-46":[-21.96,-10],"6-24-47":[-20.69,-9.66],"6-24-48":[-19.53,-9.43],"6-24-49":[-21.86,-9.46],"6-24-50":[-23.63,-10.52],"6-24-51":[-30.13,-11.8],"6-24-52":[-42.54,-14.64],"6-24-53":[-50.73,-20.34],"6-24-54":[-56.68,-24.59],"6-24-55":[-62.37,-27.15],"6-24-56":[-67.75,-29.51],"6-24-57":[-69.33,-30.92],"6-24-58":[-67.75,2438.84],"6-24-59":[821.95,3441.15],"6-24-60":[1593.3,1871.81],"6-24-61":[1391.7,1816.7],"6-24-62":[1638.57,2575.14],"6-24-63":[-29.54,2813.19],"6-25-0":[13.28,29.06],"6-25-1":[12.99,30.67],"5-12-0":[12.77,30.89],"6-25-2":[4.33,27.3],"6-25-3":[-3.6,11.88],"5-12-1":[-3.6,27.3],"6-25-4":[-18.48,293.97],"6-25-5":[-39.75,334.46],"5-12-2":[-39.75,404.18],"6-25-6":[-44.82,387.52],"6-25-7":[-63.28,308.5],"5-12-3":[-63.28,637.43],"6-25-8":[-63.06,598.61],"6-25-9":[119.88,600.19],"5-12-4":[-63.06,643.83],"6-25-10":[-28.15,610.76],"6-25-11":[175.34,613.75],"5-12-5":[-28.15,841.05],"6-25-12":[357,741.32],"6-25-13":[154.24,852.58],"5-12-6":[154.24,1071.09],"6-25-14":[529.75,2093.28],"6-25-15":[667.15,3842.68],"5-12-7":[529.75,3889.28],"6-25-16":[1046.96,4204.45],"6-25-17":[1396.76,3751.43],"5-12-8":[1046.96,4204.45],"6-25-18":[1174.25,4348.39],"6-25-19":[1345.74,3458.34],"5-12-9":[364.31,4348.39],"6-25-20":[852.06,3295.69],"6-25-21":[84.61,3091.23],"5-12-10":[-39.57,3295.69],"6-25-22":[-38.22,3268.31],"6-25-23":[-66.41,2081.23],"5-12-11":[-79.57,3268.31],"6-25-24":[-67.95,-28.52],"6-25-25":[-66.59,-26.44],"5-12-12":[-78.3,268.06],"6-25-26":[-65.05,-25.22],"6-25-27":[-63.06,-24.16],"5-12-13":[-75.28,-24.16],"6-25-28":[-59.26,-15.52],"6-25-29":[-54.35,-22.31],"5-12-14":[-69.63,-15.52],"6-25-30":[-50.44,-20.5],"6-25-31":[-45,-18.74],"5-12-15":[-58.09,-18.74],"6-25-32":[-39.97,-16.22],"6-25-33":[-33.52,-12.95],"5-12-16":[-43.76,-12.95],"6-25-34":[-26.73,-9.78],"6-25-35":[-19.19,-6.51],"5-12-17":[-29.87,-6.43],"6-25-36":[-14.52,-4.01],"6-25-37":[-8.87,-2.5],"5-12-18":[-14.52,-2.32],"6-25-38":[-6.34,-2.18],"6-25-39":[-6.84,-2.3],"5-12-19":[-7.06,-1.94],"6-25-40":[-9.41,-3.32],"6-25-41":[-32.1,501.96],"5-12-20":[-32.1,501.96],"6-25-42":[-16.08,-5.36],"6-25-43":[-18.48,-7.5],"5-12-21":[-20.18,-5.36],"6-25-44":[-19.58,-8.5],"6-25-45":[-20.51,-9.34],"5-12-22":[-21.96,-8.5],"6-25-46":[-20.66,-9.34],"6-25-47":[-19.83,-8.98],"5-12-23":[-21.96,-8.98],"6-25-48":[-19.6,-9.09],"6-25-49":[-22.09,-9.67],"5-12-24":[-22.09,-9.09],"6-25-50":[-24.31,-10.8],"6-25-51":[-29.53,-11.99],"5-12-25":[-30.13,-10.52],"6-25-52":[-38.65,-14.61],"6-25-53":[-48.88,-19.4],"5-12-26":[-50.73,-14.61],"6-25-54":[-53.27,-23.18],"6-25-55":[-58.77,-25.88],"5-12-27":[-62.37,-23.18],"6-25-56":[-65.35,-28.74],"6-25-57":[-65.63,-29.51],"5-12-28":[-69.33,-28.74],"6-25-58":[-63.65,821.96],"6-25-59":[726.87,1676.69],"5-12-29":[-67.75,3441.15],"6-25-60":[1630.88,1996.28],"6-25-61":[1569.89,1996.28],"5-12-30":[1391.7,1996.28],"6-25-62":[1816.69,2606.34],"6-25-63":[-29.54,2795.26],"5-12-31":[-29.54,2813.19],"6-26-0":[13.54,29.14],"6-26-1":[13.94,30.48],"6-26-2":[5.28,27.87],"6-26-3":[-3.32,281.71],"6-26-4":[-18.48,308.77],"6-26-5":[-40.42,381.74],"6-26-6":[-46.86,317.75],"6-26-7":[-64.69,215.89],"6-26-8":[-2.27,571.32],"6-26-9":[116.78,565.77],"6-26-10":[-32.41,599.94],"6-26-11":[208.28,611.84],"6-26-12":[299.93,731.39],"6-26-13":[318.89,749.4],"6-26-14":[470.62,993.24],"6-26-15":[555.47,1446.2],"6-26-16":[932.52,3114.6],"6-26-17":[1209.86,4338.56],"6-26-18":[1296.53,4383.25],"6-26-19":[1070.65,3998.98],"6-26-20":[855.68,3617.02],"6-26-21":[658.3,2970.04],"6-26-22":[417.64,3258.01],"6-26-23":[-28.6,3307.88],"6-26-24":[-62.73,2734.41],"6-26-25":[-59.49,2861.69],"6-26-26":[-52.9,-18.54],"6-26-27":[-50.46,-18.19],"6-26-28":[-48.34,-18.13],"6-26-29":[-46.35,-18.06],"6-26-30":[-44.41,-17.73],"6-26-31":[-40.44,-17.02],"6-26-32":[-37.32,-15.49],"6-26-33":[-31.86,-12.9],"6-26-34":[-26.47,-10],"6-26-35":[-21.25,-7.31],"6-26-36":[-17.78,-4.66],"6-26-37":[-11.76,-3.18],"6-26-38":[-7.87,-2.8],"6-26-39":[-6.79,-2.9],"6-26-40":[-7.79,-2.88],"6-26-41":[-10.71,8.49],"6-26-42":[-14.63,-4.56],"6-26-43":[-16.88,-6.59],"6-26-44":[-18.57,-7.39],"6-26-45":[-19.41,-7.99],"6-26-46":[-19.51,-8.34],"6-26-47":[-18.58,-8.35],"6-26-48":[-19.11,-8.37],"6-26-49":[-22.08,-9.26],"6-26-50":[-24.14,-10.47],"6-26-51":[-29.38,-11.82],"6-26-52":[-38.33,-14.03],"6-26-53":[-46.19,-17.49],"6-26-54":[-51.2,-21.67],"6-26-55":[-57.5,-24.38],"6-26-56":[-63.64,-27.72],"6-26-57":[-62.82,189.45],"6-26-58":[-60.91,881.64],"6-26-59":[740.64,1748.55],"6-26-60":[1676.68,2076.65],"6-26-61":[1756.34,2181.07],"6-26-62":[1948.76,2606.49],"6-26-63":[-29.54,2777.84],"6-27-0":[13.6,29.49],"6-27-1":[13.94,31.09],"5-13-0":[13.54,31.09],"6-27-2":[6.45,27.9],"6-27-3":[-0.42,320.5],"5-13-1":[-3.32,320.5],"4-6-0":[-3.6,320.5],"6-27-4":[-16.49,372.69],"6-27-5":[-40.21,294.13],"5-13-2":[-40.42,381.74],"6-27-6":[-53.85,132.2],"6-27-7":[-71.25,117.7],"5-13-3":[-71.25,317.75],"4-6-1":[-71.25,637.43],"6-27-8":[-10.85,325.53],"6-27-9":[25.92,428.65],"5-13-4":[-10.85,571.32],"6-27-10":[-36.63,567.14],"6-27-11":[275.4,510.84],"5-13-5":[-36.63,611.84],"4-6-2":[-63.06,841.05],"6-27-12":[177.93,779.83],"6-27-13":[230.46,797.9],"5-13-6":[177.93,797.9],"6-27-14":[353.23,843.62],"6-27-15":[486.44,1208.11],"5-13-7":[353.23,1446.2],"4-6-3":[154.24,3889.28],"6-27-16":[469.53,2194.75],"6-27-17":[827.22,1798.51],"5-13-8":[469.53,4338.56],"6-27-18":[821.28,2635.83],"6-27-19":[656.62,2159.53],"5-13-9":[656.62,4383.25],"4-6-4":[364.31,4383.25],"6-27-20":[633.52,1925.95],"6-27-21":[300.28,2697.84],"5-13-10":[300.28,3617.02],"6-27-22":[335.31,2999.92],"6-27-23":[921.89,3424.3],"5-13-11":[-28.6,3424.3],"4-6-5":[-79.57,3617.02],"6-27-24":[401.21,3479.94],"6-27-25":[-46.8,4234.29],"5-13-12":[-62.73,4234.29],"6-27-26":[-39.05,-13],"6-27-27":[-35.28,-12.54],"5-13-13":[-52.9,-12.54],"4-6-6":[-78.3,4234.29],"6-27-28":[-35.2,-12.85],"6-27-29":[-35.34,-13.41],"5-13-14":[-48.34,-12.85],"6-27-30":[-35.17,-14.09],"6-27-31":[-34.89,-14.93],"5-13-15":[-44.41,-14.09],"4-6-7":[-69.63,-12.85],"6-27-32":[-33.67,-14.66],"6-27-33":[-30.24,-13.29],"5-13-16":[-37.32,-12.9],"6-27-34":[-28.13,-11.02],"6-27-35":[-24.66,-9.21],"5-13-17":[-28.13,-7.31],"4-6-8":[-43.76,-6.43],"6-27-36":[-20.45,-6.32],"6-27-37":[-14.71,-4.11],"5-13-18":[-20.45,-3.18],"6-27-38":[-10.7,-3.46],"6-27-39":[-7.82,-2.95],"5-13-19":[-10.7,-2.8],"4-6-9":[-20.45,-1.94],"6-27-40":[-6.36,-2.12],"6-27-41":[-8.91,-2.07],"5-13-20":[-10.71,8.49],"6-27-42":[-12.62,-3.64],"6-27-43":[-14.88,-5.64],"5-13-21":[-16.88,-3.64],"4-6-10":[-32.1,501.96],"6-27-44":[-15.67,-6.12],"6-27-45":[-17.16,-6.68],"5-13-22":[-19.41,-6.12],"6-27-46":[-17.14,-7.46],"6-27-47":[-16.64,-6.9],"5-13-23":[-19.51,-6.9],"4-6-11":[-21.96,-6.12],"6-27-48":[-18.13,-7.16],"6-27-49":[-20.76,-8.23],"5-13-24":[-22.08,-7.16],"6-27-50":[-23.03,-9.75],"6-27-51":[-27.57,-10.56],"5-13-25":[-29.38,-9.75],"4-6-12":[-30.13,-7.16],"6-27-52":[-33.04,-12.47],"6-27-53":[-43.05,-16],"5-13-26":[-46.19,-12.47],"6-27-54":[-47.85,-20.49],"6-27-55":[-55.33,-23.04],"5-13-27":[-57.5,-20.49],"4-6-13":[-62.37,-12.47],"6-27-56":[-59.57,-26.31],"6-27-57":[-57.3,647.09],"5-13-28":[-63.64,647.09],"6-27-58":[-55.25,899.06],"6-27-59":[799.61,1803.34],"5-13-29":[-60.91,1803.34],"4-6-14":[-69.33,3441.15],"6-27-60":[1748.54,2159.56],"6-27-61":[1868.06,2197.16],"5-13-30":[1676.68,2197.16],"6-27-62":[2095.95,2581.41],"6-27-63":[-29.54,2769.5],"5-13-31":[-29.54,2777.84],"4-6-15":[-29.54,2813.19],"6-28-0":[13.6,29.98],"6-28-1":[13.97,31.76],"6-28-2":[7.61,27.9],"6-28-3":[-0.98,311.23],"6-28-4":[-14.04,373.55],"6-28-5":[-35.5,302.69],"6-28-6":[-52.23,269.04],"6-28-7":[-71.46,37.53],"6-28-8":[-13.78,273.39],"6-28-9":[-36.74,404.25],"6-28-10":[-38.45,438.24],"6-28-11":[60.84,436.49],"6-28-12":[151.71,375.47],"6-28-13":[182.44,807.5],"6-28-14":[219.33,785.89],"6-28-15":[355.34,755.87],"6-28-16":[348.26,1090.39],"6-28-17":[415.18,1115.44],"6-28-18":[336.8,1003.31],"6-28-19":[247.09,1013.68],"6-28-20":[245.51,909.81],"6-28-21":[22.35,784.58],"6-28-22":[2.36,3697.19],"6-28-23":[-6.03,3685.36],"6-28-24":[-7.33,3903.97],"6-28-25":[-32.6,5379.65],"6-28-26":[-33.85,1685.03],"6-28-27":[-25.73,-8.02],"6-28-28":[-27.14,-9.26],"6-28-29":[-28.13,-9.53],"6-28-30":[-29.73,-10.39],"6-28-31":[-30.49,-11.78],"6-28-32":[-30.3,-13.08],"6-28-33":[-29.11,-13.91],"6-28-34":[-28.13,-12.68],"6-28-35":[-25.46,-10.25],"6-28-36":[-21.32,-7.52],"6-28-37":[-14.78,-5.33],"6-28-38":[-12.03,-4.05],"6-28-39":[-8.07,-2.41],"6-28-40":[-6.04,-1.06],"6-28-41":[-7.12,-1.06],"6-28-42":[-10.83,-2.79],"6-28-43":[-12.78,-4.7],"6-28-44":[-13.74,-5.3],"6-28-45":[-14.99,-5.28],"6-28-46":[-15.4,-5.56],"6-28-47":[-15.79,-5.29],"6-28-48":[-15.93,-5.65],"6-28-49":[-19.25,-6.88],"6-28-50":[-20.66,-7.71],"6-28-51":[-24.63,-9.26],"6-28-52":[-31.19,-11.53],"6-28-53":[-40.85,-14.84],"6-28-54":[-45.75,-18.97],"6-28-55":[-52.39,-21.7],"6-28-56":[-55.08,-24.38],"6-28-57":[-50.79,721.39],"6-28-58":[-51.45,799.62],"6-28-59":[687.23,1812.13],"6-28-60":[1803.33,2299.62],"6-28-61":[1923.59,2175.98],"6-28-62":[1878.69,2429.87],"6-28-63":[-29.54,2761.57],"6-29-0":[13.6,30.78],"6-29-1":[13.97,32.5],"5-14-0":[13.6,32.5],"6-29-2":[8.58,28.94],"6-29-3":[-0.22,604.78],"5-14-1":[-0.98,604.78],"6-29-4":[-10.79,424.86],"6-29-5":[-29.34,367.02],"5-14-2":[-35.5,424.86],"6-29-6":[-48.96,423.04],"6-29-7":[-71.03,188.06],"5-14-3":[-71.46,423.04],"6-29-8":[-71.03,258.97],"6-29-9":[-40.7,265.48],"5-14-4":[-71.03,404.25],"6-29-10":[-45.67,362.54],"6-29-11":[35.43,333.9],"5-14-5":[-45.67,438.24],"6-29-12":[69.29,353.36],"6-29-13":[176.64,297.08],"5-14-6":[69.29,807.5],"6-29-14":[185.4,507.51],"6-29-15":[216.94,624.77],"5-14-7":[185.4,785.89],"6-29-16":[248.19,602.11],"6-29-17":[227.87,668.28],"5-14-8":[227.87,1115.44],"6-29-18":[151.81,558.27],"6-29-19":[87.66,500.16],"5-14-9":[87.66,1013.68],"6-29-20":[11.41,489.46],"6-29-21":[-74.48,534.68],"5-14-10":[-74.48,909.81],"6-29-22":[-59.51,197.1],"6-29-23":[-60.32,1437.08],"5-14-11":[-60.32,3697.19],"6-29-24":[-52.89,3376.08],"6-29-25":[-16.39,5601.19],"5-14-12":[-52.89,5601.19],"6-29-26":[-23.21,3710.87],"6-29-27":[-17.72,-5.43],"5-14-13":[-33.85,3710.87],"6-29-28":[-18.29,-5.37],"6-29-29":[-20.02,-5.8],"5-14-14":[-28.13,-5.37],"6-29-30":[-22.85,-7.34],"6-29-31":[-25.68,-8.54],"5-14-15":[-30.49,-7.34],"6-29-32":[-27.33,-11.17],"6-29-33":[-28.21,-12.92],"5-14-16":[-30.3,-11.17],"6-29-34":[-27.93,-12.74],"6-29-35":[-25.57,-10.37],"5-14-17":[-28.13,-10.25],"6-29-36":[-21.38,-7.55],"6-29-37":[-14.75,-5.87],"5-14-18":[-21.38,-5.33],"6-29-38":[-12.1,-3.7],"6-29-39":[-7.93,-1.6],"5-14-19":[-12.1,-1.6],"6-29-40":[-4.73,-0.26],"6-29-41":[-5.16,-0.14],"5-14-20":[-7.12,-0.14],"6-29-42":[-8.49,-1.41],"6-29-43":[-11.27,-3.5],"5-14-21":[-12.78,-1.41],"6-29-44":[-11.15,-3.82],"6-29-45":[-11.69,-3.55],"5-14-22":[-14.99,-3.55],"6-29-46":[-12.81,-3.56],"6-29-47":[-11.24,-3.95],"5-14-23":[-15.79,-3.56],"6-29-48":[-12.87,-3.81],"6-29-49":[-15.22,-6.07],"5-14-24":[-19.25,-3.81],"6-29-50":[-18.28,-7.31],"6-29-51":[-22.81,-8.44],"5-14-25":[-24.63,-7.31],"6-29-52":[-28.28,-10.9],"6-29-53":[-37.41,-12.86],"5-14-26":[-40.85,-10.9],"6-29-54":[-42.1,-16.84],"6-29-55":[-48.36,-19.69],"5-14-27":[-52.39,-16.84],"6-29-56":[-54.2,-22.1],"6-29-57":[-47.44,695.16],"5-14-28":[-55.08,721.39],"6-29-58":[-44.62,1067.53],"6-29-59":[697.67,1825.18],"5-14-29":[-51.45,1825.18],"6-29-60":[1812.12,2484.31],"6-29-61":[1887.54,2200.25],"5-14-30":[1803.33,2484.31],"6-29-62":[1867.75,2364.99],"6-29-63":[-29.54,2744.46],"5-14-31":[-29.54,2761.57],"6-30-0":[13.6,31.47],"6-30-1":[14.83,32.77],"6-30-2":[9.25,30.01],"6-30-3":[1.4,1609.72],"6-30-4":[-8.83,717.95],"6-30-5":[-23.57,477.26],"6-30-6":[-38.7,559.29],"6-30-7":[-70.31,433.78],"6-30-8":[-70.31,458.53],"6-30-9":[-96.36,174.74],"6-30-10":[-99.28,106.11],"6-30-11":[-98.53,228.76],"6-30-12":[-14.62,294.27],"6-30-13":[195.65,456.57],"6-30-14":[57.99,564.92],"6-30-15":[181.53,584.49],"6-30-16":[173.46,471.28],"6-30-17":[26.59,446.09],"6-30-18":[123.08,490.81],"6-30-19":[2.26,806.41],"6-30-20":[-9.4,204.36],"6-30-21":[-55.44,125.4],"6-30-22":[-65.74,-25.61],"6-30-23":[-65.69,-25.42],"6-30-24":[-54.87,-14.04],"6-30-25":[-36.51,2490.71],"6-30-26":[-21.02,2540.82],"6-30-27":[-19.24,-2.77],"6-30-28":[-11.27,-1.84],"6-30-29":[-14.57,-2.28],"6-30-30":[-17.25,-4.28],"6-30-31":[-22.13,-5.31],"6-30-32":[-25.32,-8.63],"6-30-33":[-27.51,-11.24],"6-30-34":[-27.51,-12.14],"6-30-35":[-24.98,-9.83],"6-30-36":[-20.94,-7.4],"6-30-37":[-14.81,-5.53],"6-30-38":[-11.87,-2.8],"6-30-39":[-6.86,-0.38],"6-30-40":[-3,1.26],"6-30-41":[-2.62,1.53],"6-30-42":[-6.47,0.16],"6-30-43":[-9.48,-1.41],"6-30-44":[-9.48,-2.83],"6-30-45":[-7.66,-2.16],"6-30-46":[-9.07,-1.93],"6-30-47":[-9.84,-2.8],"6-30-48":[-11.72,-2.88],"6-30-49":[-14.44,-4.07],"6-30-50":[-16.72,-6.13],"6-30-51":[-22.37,-7.94],"6-30-52":[-24.41,-9.85],"6-30-53":[-33.43,-11.71],"6-30-54":[-38.58,-14.81],"6-30-55":[-43.96,-16.85],"6-30-56":[-52.81,-19.97],"6-30-57":[-46.56,310.04],"6-30-58":[-43.55,1562.01],"6-30-59":[790.59,1824.22],"6-30-60":[1816.77,2275.03],"6-30-61":[1789.45,2180.52],"6-30-62":[1867.26,2328.81],"6-30-63":[-29.54,2744.46],"6-31-0":[13.6,32.23],"6-31-1":[15.06,32.84],"5-15-0":[13.6,32.84],"6-31-2":[10.78,881.84],"6-31-3":[4.92,2250.64],"5-15-1":[1.4,2250.64],"4-7-0":[-0.98,2250.64],"6-31-4":[-5.46,1374.08],"6-31-5":[-22.85,583.45],"5-15-2":[-23.57,1374.08],"6-31-6":[-45.86,413.34],"6-31-7":[-57.79,429.71],"5-15-3":[-70.31,559.29],"4-7-1":[-71.46,1374.08],"3-3-0":[-71.46,2250.64],"6-31-8":[-36.15,577.62],"6-31-9":[-96.7,282.12],"5-15-4":[-96.7,577.62],"6-31-10":[-99.12,-46.98],"6-31-11":[-98.49,190.58],"5-15-5":[-99.28,228.76],"4-7-2":[-99.28,577.62],"6-31-12":[-15.94,324],"6-31-13":[204.84,447.15],"5-15-6":[-15.94,456.57],"6-31-14":[150.72,671.12],"6-31-15":[147.71,604.9],"5-15-7":[57.99,671.12],"4-7-3":[-15.94,807.5],"3-3-1":[-99.28,3889.28],"2-1-0":[-259.61,4373.52],"6-31-16":[142.69,422.75],"6-31-17":[82.02,300.32],"5-15-8":[26.59,471.28],"6-31-18":[37.49,509.53],"6-31-19":[3.75,590.45],"5-15-9":[2.26,806.41],"4-7-4":[2.26,1115.44],"6-31-20":[-28.13,146.09],"6-31-21":[-51.46,78.7],"5-15-10":[-55.44,204.36],"6-31-22":[-60.53,-24.95],"6-31-23":[-60.55,-17],"5-15-11":[-65.74,-17],"4-7-5":[-74.48,3697.19],"3-3-2":[-79.57,4383.25],"6-31-24":[-51.3,129.8],"6-31-25":[-28.09,2495.76],"5-15-12":[-54.87,2495.76],"6-31-26":[-31.81,4217.93],"6-31-27":[-39.22,1667.28],"5-15-13":[-39.22,4217.93],"4-7-6":[-54.87,5601.19],"6-31-28":[-3.69,3.56],"6-31-29":[-7.94,1.79],"5-15-14":[-14.57,3.56],"6-31-30":[-10.64,-0.95],"6-31-31":[-23.38,1700.45],"5-15-15":[-23.38,1700.45],"4-7-7":[-30.49,1700.45],"3-3-3":[-78.3,5601.19],"2-1-1":[-115.5,5601.19],"1-0-0":[-317.19,6207.28],"6-31-32":[-321.59,1684.42],"6-31-33":[-25.17,-8.12],"5-15-16":[-321.59,1684.42],"6-31-34":[-25.23,-10.22],"6-31-35":[-23.47,-8.63],"5-15-17":[-27.51,-8.63],"4-7-8":[-321.59,1684.42],"6-31-36":[-19.5,-5.98],"6-31-37":[-14.17,-4.58],"5-15-18":[-20.94,-4.58],"6-31-38":[-10.89,-1.76],"6-31-39":[-4.99,1.04],"5-15-19":[-11.87,1.04],"4-7-9":[-21.38,1.04],"3-3-4":[-321.59,1684.42],"6-31-40":[-0.46,3.59],"6-31-41":[0.15,3.57],"5-15-20":[-3,3.59],"6-31-42":[-1.87,3.33],"6-31-43":[-5.77,-0.19],"5-15-21":[-9.48,3.33],"4-7-10":[-12.78,3.59],"6-31-44":[-6.17,-2.1],"6-31-45":[-5.45,-1.19],"5-15-22":[-9.48,-1.19],"6-31-46":[-4.53,-0.73],"6-31-47":[-5.48,-0.93],"5-15-23":[-9.84,-0.73],"4-7-11":[-15.79,-0.73],"3-3-5":[-32.1,501.96],"2-1-2":[-321.59,1684.42],"6-31-48":[-7.3,-1.03],"6-31-49":[-11.96,-1.38],"5-15-24":[-14.44,-1.03],"6-31-50":[-15.08,-4.16],"6-31-51":[-19.15,-5.73],"5-15-25":[-22.37,-4.16],"4-7-12":[-24.63,-1.03],"6-31-52":[-21.76,-8.28],"6-31-53":[-29.28,-9.98],"5-15-26":[-33.43,-8.28],"6-31-54":[-34.04,-12.93],"6-31-55":[-39.77,-14.37],"5-15-27":[-43.96,-12.93],"4-7-13":[-52.39,-8.28],"3-3-6":[-62.37,-1.03],"6-31-56":[-43.43,1365.62],"6-31-57":[-44.81,282.19],"5-15-28":[-52.81,1365.62],"6-31-58":[-39.76,1267.01],"6-31-59":[957.9,1887.87],"5-15-29":[-43.55,1887.87],"4-7-14":[-55.08,1887.87],"6-31-60":[1730.62,2175.26],"6-31-61":[1639.46,1987.13],"5-15-30":[1639.46,2275.03],"6-31-62":[1752.65,2714.87],"6-31-63":[-29.54,2744.46],"5-15-31":[-29.54,2744.46],"4-7-15":[-29.54,2761.57],"3-3-7":[-69.33,3441.15],"2-1-3":[-102.31,3682.63],"1-0-1":[-321.59,3970.41],"6-32-0":[13.6,32.71],"6-32-1":[15.63,32.84],"6-32-2":[12.53,1148.73],"6-32-3":[3.54,1723.08],"6-32-4":[-3.48,1337.96],"6-32-5":[-22.64,684.11],"6-32-6":[-45.53,367.14],"6-32-7":[-63.11,395.57],"6-32-8":[-72.93,546.23],"6-32-9":[-93.99,248.1],"6-32-10":[-96.39,-44.47],"6-32-11":[-97.86,87.35],"6-32-12":[-57.46,240.44],"6-32-13":[116.07,415.1],"6-32-14":[116.17,599.34],"6-32-15":[138.68,568.7],"6-32-16":[-2.59,551.43],"6-32-17":[75.12,291.63],"6-32-18":[-24.24,294.32],"6-32-19":[4.68,321.49],"6-32-20":[-31.39,211.56],"6-32-21":[-63.34,90.38],"6-32-22":[-63.11,-25.22],"6-32-23":[-57.23,-7.65],"6-32-24":[-31.37,200.24],"6-32-25":[-33.45,1010.31],"6-32-26":[-35.51,3009.32],"6-32-27":[-28.36,2376.93],"6-32-28":[-3.22,10.91],"6-32-29":[-1.77,10.51],"6-32-30":[-4.68,6.74],"6-32-31":[-7.35,73.07],"6-32-32":[-18.67,716.38],"6-32-33":[-20.88,-4.49],"6-32-34":[-21.38,-6.53],"6-32-35":[-20.18,-6.02],"6-32-36":[-17.05,-4.75],"6-32-37":[-11.75,-2.76],"6-32-38":[-9,-0.28],"6-32-39":[-2.87,3.56],"6-32-40":[0.59,5.45],"6-32-41":[1.56,6.31],"6-32-42":[-0.2,5.55],"6-32-43":[-3.93,1.13],"6-32-44":[-5.26,-0.57],"6-32-45":[-4.78,-0.14],"6-32-46":[-2.44,1.43],"6-32-47":[-2.43,2.72],"6-32-48":[-2.64,1.56],"6-32-49":[-7.99,-0.1],"6-32-50":[-11.84,-1.81],"6-32-51":[-16.4,-4.23],"6-32-52":[-18.97,-6.57],"6-32-53":[-25.69,-8.31],"6-32-54":[-28.75,-11.31],"6-32-55":[-35.05,-12.68],"6-32-56":[-41.26,-14.17],"6-32-57":[-36.6,248.01],"6-32-58":[-36.6,1290.61],"6-32-59":[1072.47,2685.38],"6-32-60":[1460.89,2381.84],"6-32-61":[1444.34,1985.53],"6-32-62":[1435.21,2244.93],"6-32-63":[-29.54,2744.46],"6-33-0":[13.6,33.18],"6-33-1":[15.63,33.39],"5-16-0":[13.6,33.39],"6-33-2":[13.83,1617.96],"6-33-3":[3.54,1701.03],"5-16-1":[3.54,1723.08],"6-33-4":[-1.3,1540.67],"6-33-5":[-21.29,1009.47],"5-16-2":[-22.64,1540.67],"6-33-6":[-36.75,819.86],"6-33-7":[-62.77,557.56],"5-16-3":[-63.11,819.86],"6-33-8":[-72.83,444.35],"6-33-9":[-88.51,366.68],"5-16-4":[-93.99,546.23],"6-33-10":[-95.62,-42.25],"6-33-11":[-97.09,-45.96],"5-16-5":[-97.86,87.35],"6-33-12":[-96.12,205.42],"6-33-13":[26.23,323.91],"5-16-6":[-96.12,415.1],"6-33-14":[40.15,604.67],"6-33-15":[99.8,613.05],"5-16-7":[40.15,613.05],"6-33-16":[103.99,486.54],"6-33-17":[42.02,356.67],"5-16-8":[-2.59,551.43],"6-33-18":[73.98,611.43],"6-33-19":[-2.39,1256.4],"5-16-9":[-24.24,1256.4],"6-33-20":[-18.21,703.65],"6-33-21":[-62.86,133.72],"5-16-10":[-63.34,703.65],"6-33-22":[-63.05,-24.55],"6-33-23":[-54.77,-15.6],"5-16-11":[-63.11,-7.65],"6-33-24":[-55.01,38.89],"6-33-25":[-31.18,-5.73],"5-16-12":[-55.01,1010.31],"6-33-26":[-16.7,2458.87],"6-33-27":[-29.38,2108.97],"5-16-13":[-35.51,3009.32],"6-33-28":[-12.99,2165.37],"6-33-29":[3.88,21.34],"5-16-14":[-12.99,2165.37],"6-33-30":[-9.95,580.04],"6-33-31":[-3.66,9.28],"5-16-15":[-9.95,580.04],"6-33-32":[-8.84,4.83],"6-33-33":[-12.48,2.13],"5-16-16":[-20.88,716.38],"6-33-34":[-13.36,-2.74],"6-33-35":[-13.27,-2.88],"5-16-17":[-21.38,-2.74],"6-33-36":[-11.47,-2.69],"6-33-37":[-8.95,-0.74],"5-16-18":[-17.05,-0.74],"6-33-38":[-5.14,2.74],"6-33-39":[-0.29,8.08],"5-16-19":[-9,8.08],"6-33-40":[1.94,9.43],"6-33-41":[2.8,10.75],"5-16-20":[0.59,10.75],"6-33-42":[0.89,8.51],"6-33-43":[-0.58,5.53],"5-16-21":[-3.93,8.51],"6-33-44":[-2.13,3.55],"6-33-45":[-1.46,3.29],"5-16-22":[-5.26,3.55],"6-33-46":[-0.15,6.87],"6-33-47":[1.07,7.73],"5-16-23":[-2.44,7.73],"6-33-48":[-0.11,7.04],"6-33-49":[-2.91,4.01],"5-16-24":[-7.99,7.04],"6-33-50":[-7.73,0.65],"6-33-51":[-12.58,-2.01],"5-16-25":[-16.4,0.65],"6-33-52":[-14.99,-3.66],"6-33-53":[-21.95,-5.75],"5-16-26":[-25.69,-3.66],"6-33-54":[-24.52,-9.25],"6-33-55":[-29.3,-10.49],"5-16-27":[-35.05,-9.25],"6-33-56":[-30.53,-11.38],"6-33-57":[-34.54,-11.65],"5-16-28":[-41.26,248.01],"6-33-58":[-34.69,1304.63],"6-33-59":[163.09,4721.94],"5-16-29":[-36.6,4721.94],"6-33-60":[441.12,2555.4],"6-33-61":[1232.67,1732.44],"5-16-30":[441.12,2555.4],"6-33-62":[1251.83,2245.57],"6-33-63":[-29.54,2744.47],"5-16-31":[-29.54,2744.47],"6-34-0":[13.6,33.57],"6-34-1":[16.2,34.27],"6-34-2":[15.09,1823.83],"6-34-3":[5.88,1627.27],"6-34-4":[0.78,1272.1],"6-34-5":[-16.01,1913.68],"6-34-6":[-22.87,1056.55],"6-34-7":[-53.19,570.75],"6-34-8":[-67.08,613.97],"6-34-9":[-84.49,433.17],"6-34-10":[-91.94,-38.64],"6-34-11":[-96.06,-44.35],"6-34-12":[-95.88,171.79],"6-34-13":[-46,145.12],"6-34-14":[-3.04,594.92],"6-34-15":[117.38,614.36],"6-34-16":[124.05,432.14],"6-34-17":[17.53,436.84],"6-34-18":[94.64,1652.42],"6-34-19":[35.46,2004.7],"6-34-20":[-31.34,358.2],"6-34-21":[-56.91,76.45],"6-34-22":[-52.24,86.32],"6-34-23":[-53.41,678.56],"6-34-24":[-46.91,565.42],"6-34-25":[-34.3,19.57],"6-34-26":[-32.9,735.54],"6-34-27":[-24.67,729.46],"6-34-28":[-18.58,3818.31],"6-34-29":[-17.79,1199.76],"6-34-30":[0.98,213.98],"6-34-31":[2.04,21.13],"6-34-32":[2.12,20.08],"6-34-33":[-5.46,10.12],"6-34-34":[-5.77,0.8],"6-34-35":[-6.05,2.96],"6-34-36":[-5.94,2.96],"6-34-37":[-5.13,6.17],"6-34-38":[-1.3,9.8],"6-34-39":[1.64,14.13],"6-34-40":[4.23,15.17],"6-34-41":[4.47,14.04],"6-34-42":[3.4,12.02],"6-34-43":[3.4,11.01],"6-34-44":[1.55,10.91],"6-34-45":[1.48,9.3],"6-34-46":[1.54,11.81],"6-34-47":[3.72,12.77],"6-34-48":[2.17,11.75],"6-34-49":[0.41,7.88],"6-34-50":[-3.25,5.77],"6-34-51":[-6.93,1.5],"6-34-52":[-11.33,-1.44],"6-34-53":[-18.26,-3.74],"6-34-54":[-20.79,-6.34],"6-34-55":[-25.29,-7.54],"6-34-56":[-27.01,-9.25],"6-34-57":[-33.98,-10.94],"6-34-58":[-34.8,1241.13],"6-34-59":[-52.36,1732.84],"6-34-60":[-52.36,2250.43],"6-34-61":[873,1480.75],"6-34-62":[1247.41,2251.13],"6-34-63":[-29.54,2745.47],"6-35-0":[13.6,34.16],"6-35-1":[16.51,35.76],"5-17-0":[13.6,35.76],"6-35-2":[16.38,1923.59],"6-35-3":[9.49,2313.91],"5-17-1":[5.88,2313.91],"4-8-0":[3.54,2313.91],"6-35-4":[3.3,2252.73],"6-35-5":[-8.04,1712.44],"5-17-2":[-16.01,2252.73],"6-35-6":[-16.63,1559.44],"6-35-7":[-53.78,272.32],"5-17-3":[-53.78,1559.44],"4-8-1":[-63.11,2252.73],"6-35-8":[-65.49,185.61],"6-35-9":[-76.1,184.52],"5-17-4":[-84.49,613.97],"6-35-10":[-88.72,293.27],"6-35-11":[-92.71,81.87],"5-17-5":[-96.06,293.27],"4-8-2":[-97.86,613.97],"6-35-12":[-92.66,123.7],"6-35-13":[-45.82,181.36],"5-17-6":[-95.88,181.36],"6-35-14":[-26.92,536.17],"6-35-15":[122.02,651.7],"5-17-7":[-26.92,651.7],"4-8-3":[-96.12,651.7],"6-35-16":[27.96,701.76],"6-35-17":[-8.6,951.43],"5-17-8":[-8.6,951.43],"6-35-18":[-44.79,1713.99],"6-35-19":[-37.13,1476.72],"5-17-9":[-44.79,2004.7],"4-8-4":[-44.79,2004.7],"6-35-20":[-74.33,139.84],"6-35-21":[-74.18,28.94],"5-17-10":[-74.33,358.2],"6-35-22":[-68.27,63.37],"6-35-23":[-53.75,293.76],"5-17-11":[-68.27,678.56],"4-8-5":[-74.33,703.65],"6-35-24":[-62.66,1104.62],"6-35-25":[-46.42,14.26],"5-17-12":[-62.66,1104.62],"6-35-26":[-24.54,8.26],"6-35-27":[-12.35,357.63],"5-17-13":[-32.9,735.54],"4-8-6":[-62.66,3009.32],"6-35-28":[-9.05,1960.73],"6-35-29":[-38,1563.96],"5-17-14":[-38,3818.31],"6-35-30":[10.56,29.2],"6-35-31":[-34,2816.32],"5-17-15":[-34,2816.32],"4-8-7":[-38,3818.31],"6-35-32":[-39.36,6286.78],"6-35-33":[-56.73,4458.62],"5-17-16":[-56.73,6286.78],"6-35-34":[-63.32,4118.74],"6-35-35":[-8.38,458.91],"5-17-17":[-63.32,4118.74],"4-8-8":[-63.32,6286.78],"6-35-36":[-1.45,18],"6-35-37":[2.19,21.77],"5-17-18":[-5.94,21.77],"6-35-38":[3.78,22.14],"6-35-39":[5.81,20.12],"5-17-19":[-1.3,22.14],"4-8-9":[-17.05,22.14],"6-35-40":[6.54,19.83],"6-35-41":[-22.92,470.08],"5-17-20":[-22.92,470.08],"6-35-42":[5.5,19.63],"6-35-43":[-88.44,1091.31],"5-17-21":[-88.44,1091.31],"4-8-10":[-88.44,1091.31],"6-35-44":[-23.76,1289.29],"6-35-45":[4.72,16.91],"5-17-22":[-23.76,1289.29],"6-35-46":[4.86,18.8],"6-35-47":[6.11,18.78],"5-17-23":[1.54,18.8],"4-8-11":[-23.76,1289.29],"6-35-48":[4.51,19.18],"6-35-49":[3.21,14.36],"5-17-24":[0.41,19.18],"6-35-50":[1.45,11.01],"6-35-51":[-2.17,8.59],"5-17-25":[-6.93,11.01],"4-8-12":[-16.4,19.18],"6-35-52":[-5.6,3.45],"6-35-53":[-12,-1.41],"5-17-26":[-18.26,3.45],"6-35-54":[-13.82,-3.08],"6-35-55":[-20.59,-4.15],"5-17-27":[-25.29,-3.08],"4-8-13":[-35.05,3.45],"6-35-56":[-21.6,-7],"6-35-57":[-30.21,327.46],"5-17-28":[-33.98,327.46],"6-35-58":[-30.73,1088.67],"6-35-59":[-49.4,1067.5],"5-17-29":[-52.36,1732.84],"4-8-14":[-52.36,4721.94],"6-35-60":[-49.4,1223.59],"6-35-61":[548.47,1388.03],"5-17-30":[-52.36,2250.43],"6-35-62":[1139.79,2260.72],"6-35-63":[-29.54,2745.47],"5-17-31":[-29.54,2745.47],"4-8-15":[-52.36,2745.47],"6-36-0":[13.6,34.61],"6-36-1":[16.93,36.8],"6-36-2":[17.48,2230.75],"6-36-3":[8.2,2258.08],"6-36-4":[6.48,1817.36],"6-36-5":[1.34,2118.71],"6-36-6":[-14.9,1862.67],"6-36-7":[-49.69,611.89],"6-36-8":[-62.21,282.83],"6-36-9":[-68.81,575.77],"6-36-10":[-79.91,428.02],"6-36-11":[-45.31,430.05],"6-36-12":[-47.68,408.97],"6-36-13":[-44.52,406.33],"6-36-14":[126.58,610.85],"6-36-15":[16.43,575.3],"6-36-16":[12.09,700.02],"6-36-17":[-45.25,927.51],"6-36-18":[-64.5,1201.61],"6-36-19":[-85.54,191.41],"6-36-20":[-89.06,-36.24],"6-36-21":[-93.16,-34.13],"6-36-22":[-90.89,29.15],"6-36-23":[-82.17,55.76],"6-36-24":[-67.36,1947.58],"6-36-25":[-49.86,2231.33],"6-36-26":[-37.01,0.98],"6-36-27":[-29.93,-2.92],"6-36-28":[-18.96,1449.86],"6-36-29":[-29.88,4212.67],"6-36-30":[-37.47,5414.88],"6-36-31":[-328.06,5809.48],"6-36-32":[167.64,5906.18],"6-36-33":[112.46,4149.93],"6-36-34":[77.11,5607.45],"6-36-35":[-116.39,6754.44],"6-36-36":[-49.49,5914.69],"6-36-37":[-7.04,824.13],"6-36-38":[10.05,32.11],"6-36-39":[9.18,30.01],"6-36-40":[9.06,28.91],"6-36-41":[9.77,29.26],"6-36-42":[8.85,27.55],"6-36-43":[7.85,26.75],"6-36-44":[8.15,25.78],"6-36-45":[8.09,22.48],"6-36-46":[8.44,23.14],"6-36-47":[9.17,22.91],"6-36-48":[7.17,22.45],"6-36-49":[4.69,22.45],"6-36-50":[4.05,19.43],"6-36-51":[1.95,10.14],"6-36-52":[-2.07,8.34],"6-36-53":[-5.89,2.43],"6-36-54":[-7.67,1],"6-36-55":[-16.43,-0.39],"6-36-56":[-17.96,4.83],"6-36-57":[-24.97,322.6],"6-36-58":[-25.5,1069.77],"6-36-59":[-46.79,1055.47],"6-36-60":[-49.8,832.48],"6-36-61":[240.99,1288.62],"6-36-62":[1054.14,2281.25],"6-36-63":[-29.54,2745.47],"6-37-0":[13.6,35.4],"6-37-1":[17.14,38.45],"5-18-0":[13.6,38.45],"6-37-2":[18.24,2437.47],"6-37-3":[7.27,2148.92],"5-18-1":[7.27,2437.47],"6-37-4":[7.89,1260.24],"6-37-5":[4.77,32.77],"5-18-2":[1.34,2118.71],"6-37-6":[-1.92,1808.19],"6-37-7":[-40.5,1101.49],"5-18-3":[-49.69,1862.67],"6-37-8":[-50.59,282.61],"6-37-9":[-60.82,642.27],"5-18-4":[-68.81,642.27],"6-37-10":[-29.59,648.16],"6-37-11":[-23.76,410.19],"5-18-5":[-79.91,648.16],"6-37-12":[-40.73,516.43],"6-37-13":[163.41,654.15],"5-18-6":[-47.68,654.15],"6-37-14":[225.34,700.01],"6-37-15":[-96.6,889.43],"5-18-7":[-96.6,889.43],"6-37-16":[-33.29,1597.57],"6-37-17":[-113.29,1241.62],"5-18-8":[-113.29,1597.57],"6-37-18":[-86.48,7.41],"6-37-19":[-97.81,-12.11],"5-18-9":[-97.81,1201.61],"6-37-20":[-102.6,-42.73],"6-37-21":[-100.62,-43.8],"5-18-10":[-102.6,-34.13],"6-37-22":[-95.92,-41.08],"6-37-23":[-92.86,26.27],"5-18-11":[-95.92,55.76],"6-37-24":[-83.2,1217.95],"6-37-25":[-62.64,2330.69],"5-18-12":[-83.2,2330.69],"6-37-26":[-56.44,-14.96],"6-37-27":[-48.4,871.95],"5-18-13":[-56.44,871.95],"6-37-28":[-49.02,5700.22],"6-37-29":[-23.52,3844.52],"5-18-14":[-49.02,5700.22],"6-37-30":[169,5315.89],"6-37-31":[170.25,3836.77],"5-18-15":[-328.06,5809.48],"6-37-32":[117.06,443.38],"6-37-33":[81.67,324.59],"5-18-16":[81.67,5906.18],"6-37-34":[90.99,2362.22],"6-37-35":[136.3,5683.59],"5-18-17":[-116.39,6754.44],"6-37-36":[213.99,5564.58],"6-37-37":[-123.53,5547.75],"5-18-18":[-123.53,5914.69],"6-37-38":[11.41,41.12],"6-37-39":[13.52,40.44],"5-18-19":[9.18,41.12],"6-37-40":[13.77,39.3],"6-37-41":[13.66,37.5],"5-18-20":[9.06,39.3],"6-37-42":[12.71,34.42],"6-37-43":[9.07,32.14],"5-18-21":[7.85,34.42],"6-37-44":[8.29,34.46],"6-37-45":[-18.71,1376.54],"5-18-22":[-18.71,1376.54],"6-37-46":[-29.59,1061.25],"6-37-47":[-7.31,1414.25],"5-18-23":[-29.59,1414.25],"6-37-48":[-36.85,4026.29],"6-37-49":[-269.44,3587.09],"5-18-24":[-269.44,4026.29],"6-37-50":[-96.77,2789.91],"6-37-51":[-222.29,1172.63],"5-18-25":[-222.29,2789.91],"6-37-52":[1.79,13.51],"6-37-53":[0.72,11.28],"5-18-26":[-5.89,13.51],"6-37-54":[-0.4,8.59],"6-37-55":[-7.66,4.36],"5-18-27":[-16.43,8.59],"6-37-56":[-8.53,510.52],"6-37-57":[-19.03,669.28],"5-18-28":[-24.97,669.28],"6-37-58":[-21.41,1660.76],"6-37-59":[-46.84,796.88],"5-18-29":[-46.84,1660.76],"6-37-60":[-52.31,243.32],"6-37-61":[219.34,1153.83],"5-18-30":[-52.31,1288.62],"6-37-62":[921.3,2321.18],"6-37-63":[-29.54,2745.47],"5-18-31":[-29.54,2745.47],"6-38-0":[13.6,36.29],"6-38-1":[17.42,39.8],"6-38-2":[18.96,2116.63],"6-38-3":[6.6,2052.81],"6-38-4":[10,1115.32],"6-38-5":[12.54,35.55],"6-38-6":[0.83,1713.29],"6-38-7":[-34.12,1625.19],"6-38-8":[-39.93,332.82],"6-38-9":[-52.52,633.8],"6-38-10":[-48.57,658.27],"6-38-11":[-23.61,464.64],"6-38-12":[271.57,704.35],"6-38-13":[334.3,1114.61],"6-38-14":[-30.94,1053.24],"6-38-15":[-69.08,1266.55],"6-38-16":[-76.04,1888.88],"6-38-17":[-77.04,507.57],"6-38-18":[-86.89,-36.02],"6-38-19":[-98.41,-42.87],"6-38-20":[-103.24,-47.88],"6-38-21":[-104.42,-47.93],"6-38-22":[-104.14,-46.84],"6-38-23":[-103.56,-41.22],"6-38-24":[-101.46,1152.74],"6-38-25":[-85.84,3067.99],"6-38-26":[-70.73,-20.78],"6-38-27":[-65.4,833.1],"6-38-28":[-114.23,4925.73],"6-38-29":[10.54,5356.84],"6-38-30":[61.91,3882.23],"6-38-31":[106.5,839.2],"6-38-32":[68.16,474.29],"6-38-33":[63.39,249.13],"6-38-34":[103.34,384.58],"6-38-35":[184.94,644.83],"6-38-36":[252.99,6360.34],"6-38-37":[-22.39,6449.41],"6-38-38":[-1.33,5847.77],"6-38-39":[12.47,42.32],"6-38-40":[-9.89,2677.33],"6-38-41":[-3.78,2243.25],"6-38-42":[5.25,5156.32],"6-38-43":[2.3,5062.63],"6-38-44":[-10.81,5023.3],"6-38-45":[10.45,4724.4],"6-38-46":[-49.62,3766.16],"6-38-47":[-60.04,2585.5],"6-38-48":[-22.3,3553.09],"6-38-49":[7.67,3257.62],"6-38-50":[-72.84,2695.15],"6-38-51":[-106.71,1949.61],"6-38-52":[4.99,21.78],"6-38-53":[5.46,21.13],"6-38-54":[2.62,15.36],"6-38-55":[0.1,12.23],"6-38-56":[-3.35,2784.58],"6-38-57":[-15.5,1731.59],"6-38-58":[-15.5,1790.22],"6-38-59":[-44.23,1401.52],"6-38-60":[-50.33,332.2],"6-38-61":[241.75,1029.44],"6-38-62":[742.55,2346.02],"6-38-63":[-29.54,2745.47],"6-39-0":[13.6,37.58],"6-39-1":[17.68,41.29],"5-19-0":[13.6,41.29],"6-39-2":[16.51,1723.34],"6-39-3":[6.84,1651.25],"5-19-1":[6.6,2116.63],"4-9-0":[6.6,2437.47],"6-39-4":[11.11,1535.69],"6-39-5":[13.7,38.14],"5-19-2":[10,1535.69],"6-39-6":[2.98,1492.45],"6-39-7":[-1.86,1664.51],"5-19-3":[-34.12,1713.29],"4-9-1":[-49.69,2118.71],"3-4-0":[-63.11,2437.47],"6-39-8":[-16.42,932.96],"6-39-9":[-42.68,781.05],"5-19-4":[-52.52,932.96],"6-39-10":[-44.28,360.51],"6-39-11":[-41.88,596.29],"5-19-5":[-48.57,658.27],"4-9-2":[-79.91,932.96],"6-39-12":[51.44,869.29],"6-39-13":[188,1077.82],"5-19-6":[51.44,1114.61],"6-39-14":[-31.13,916.29],"6-39-15":[-25.79,1579.36],"5-19-7":[-69.08,1579.36],"4-9-3":[-96.6,1579.36],"3-4-1":[-97.86,1579.36],"6-39-16":[-56.2,1114.21],"6-39-17":[-75.76,23.87],"5-19-8":[-77.04,1888.88],"6-39-18":[-85.75,-37.02],"6-39-19":[-95.04,-41.17],"5-19-9":[-98.41,-36.02],"4-9-4":[-113.29,1888.88],"6-39-20":[-101.46,-44.35],"6-39-21":[-103.88,-46.85],"5-19-10":[-104.42,-44.35],"6-39-22":[-105.29,-49.02],"6-39-23":[-104.93,-50.05],"5-19-11":[-105.29,-41.22],"4-9-5":[-105.29,55.76],"3-4-2":[-113.29,2004.7],"6-39-24":[-129.9,-42.27],"6-39-25":[-132.42,1440.94],"5-19-12":[-132.42,3067.99],"6-39-26":[-85.88,-29.52],"6-39-27":[-89.53,1217.96],"5-19-13":[-89.53,1217.96],"4-9-6":[-132.42,3067.99],"6-39-28":[-34.01,3550.67],"6-39-29":[-4.7,404.14],"5-19-14":[-114.23,5356.84],"6-39-30":[19.1,759.95],"6-39-31":[49.74,984.95],"5-19-15":[19.1,3882.23],"4-9-7":[-328.06,5809.48],"3-4-3":[-328.06,5809.48],"6-39-32":[-0.58,880.62],"6-39-33":[34.67,244.67],"5-19-16":[-0.58,880.62],"6-39-34":[68,300.39],"6-39-35":[108.3,433.23],"5-19-17":[68,644.83],"4-9-8":[-116.39,6754.44],"6-39-36":[155.88,5347.83],"6-39-37":[202.17,6455.95],"5-19-18":[-22.39,6455.95],"6-39-38":[2.92,6600.28],"6-39-39":[3.78,6222.25],"5-19-19":[-1.33,6600.28],"4-9-9":[-123.53,6600.28],"3-4-4":[-123.53,6754.44],"6-39-40":[25.81,6775.96],"6-39-41":[366.3,6919.9],"5-19-20":[-9.89,6919.9],"6-39-42":[645.96,6300.89],"6-39-43":[493.64,6969.13],"5-19-21":[2.3,6969.13],"4-9-10":[-9.89,6969.13],"6-39-44":[407.92,5888.33],"6-39-45":[231.75,3998.13],"5-19-22":[-10.81,5888.33],"6-39-46":[248.58,2022.28],"6-39-47":[173.83,1957.39],"5-19-23":[-60.04,3766.16],"4-9-11":[-60.04,5888.33],"3-4-5":[-88.44,6969.13],"6-39-48":[-0.14,1353.11],"6-39-49":[-111.83,1097.15],"5-19-24":[-111.83,3553.09],"6-39-50":[-1.5,605.9],"6-39-51":[-63.31,2581.84],"5-19-25":[-106.71,2695.15],"4-9-12":[-269.44,4026.29],"6-39-52":[7.24,30.32],"6-39-53":[8.16,28.42],"5-19-26":[4.99,30.32],"6-39-54":[5.99,24.52],"6-39-55":[4.94,1701.66],"5-19-27":[0.1,1701.66],"4-9-13":[-16.43,1701.66],"3-4-6":[-269.44,4026.29],"6-39-56":[2.04,2876.77],"6-39-57":[-5.16,2323.88],"5-19-28":[-15.5,2876.77],"6-39-58":[-5.16,2011.29],"6-39-59":[-38.71,1401.52],"5-19-29":[-44.23,2011.29],"4-9-14":[-46.84,2876.77],"6-39-60":[-48.69,398.96],"6-39-61":[152.3,947.43],"5-19-30":[-50.33,1029.44],"6-39-62":[609.13,2348.16],"6-39-63":[-29.54,2745.47],"5-19-31":[-29.54,2745.47],"4-9-15":[-52.31,2745.47],"3-4-7":[-52.36,4721.94],"6-40-0":[13.58,38.54],"6-40-1":[18.42,42.48],"6-40-2":[14.03,1837.18],"6-40-3":[9.2,1301.31],"6-40-4":[16.61,1474.89],"6-40-5":[15.16,294.75],"6-40-6":[5.31,35.39],"6-40-7":[0.08,1690.53],"6-40-8":[-12.78,2057.19],"6-40-9":[-31.21,1148.56],"6-40-10":[-39,1032.11],"6-40-11":[-38.87,935.94],"6-40-12":[283.81,898.04],"6-40-13":[24.76,1031.68],"6-40-14":[-26.02,1255.33],"6-40-15":[-50.51,787.13],"6-40-16":[-51.94,269.07],"6-40-17":[-74.05,-24.93],"6-40-18":[-82.04,-34.93],"6-40-19":[-88.7,-36.77],"6-40-20":[-92.93,48.35],"6-40-21":[-98.06,-42.9],"6-40-22":[-101.84,-47.14],"6-40-23":[-104.68,-50.45],"6-40-24":[-138.65,-50.2],"6-40-25":[-141.12,1288.29],"6-40-26":[-90.28,-35.91],"6-40-27":[-82.71,92.4],"6-40-28":[-60.97,2718.19],"6-40-29":[-37.5,2385.74],"6-40-30":[52.53,2826.62],"6-40-31":[41.04,2785.87],"6-40-32":[-10.01,1058.3],"6-40-33":[7.09,158.16],"6-40-34":[23.99,203.5],"6-40-35":[68.74,470.48],"6-40-36":[117.6,267.64],"6-40-37":[126.79,5469.94],"6-40-38":[191.91,5778.21],"6-40-39":[986.52,6050.05],"6-40-40":[396.34,6388.87],"6-40-41":[262.61,6039.42],"6-40-42":[156.73,4549.07],"6-40-43":[232.7,2816.12],"6-40-44":[196.61,812.73],"6-40-45":[94.32,598.59],"6-40-46":[-102.43,1675.56],"6-40-47":[0.8,1125.83],"6-40-48":[-8.45,672.86],"6-40-49":[1.67,282.56],"6-40-50":[9.92,25.99],"6-40-51":[-12.01,1141.97],"6-40-52":[12.59,33.62],"6-40-53":[14.04,33.98],"6-40-54":[10.79,32.1],"6-40-55":[7.94,2110.84],"6-40-56":[7.14,2245.41],"6-40-57":[1.76,2040.57],"6-40-58":[-14.94,2090.43],"6-40-59":[-38.71,870.91],"6-40-60":[-48.69,230.81],"6-40-61":[-53.09,864.87],"6-40-62":[549.51,2344.27],"6-40-63":[-29.59,2745.47],"6-41-0":[13.58,39.48],"6-41-1":[19.11,44.26],"5-20-0":[13.58,44.26],"6-41-2":[13.19,951.78],"6-41-3":[11.37,1019.58],"5-20-1":[9.2,1837.18],"6-41-4":[17.37,1639.31],"6-41-5":[16.47,47.31],"5-20-2":[15.16,1639.31],"6-41-6":[12.24,47.31],"6-41-7":[6.36,1076.43],"5-20-3":[0.08,1690.53],"6-41-8":[-2.21,1785.63],"6-41-9":[-5.15,768.08],"5-20-4":[-31.21,2057.19],"6-41-10":[-18.25,1491.48],"6-41-11":[-32.03,1587.28],"5-20-5":[-39,1587.28],"6-41-12":[-13.09,864.36],"6-41-13":[25.94,1005.83],"5-20-6":[-13.09,1031.68],"6-41-14":[-40.09,588],"6-41-15":[-62.23,347.02],"5-20-7":[-62.23,1255.33],"6-41-16":[-51.62,265.73],"6-41-17":[-68.99,-25.54],"5-20-8":[-74.05,269.07],"6-41-18":[-71.61,-29.96],"6-41-19":[-78.01,-32.58],"5-20-9":[-88.7,-29.96],"6-41-20":[-85.81,18.12],"6-41-21":[-94.07,-39.59],"5-20-10":[-98.06,48.35],"6-41-22":[-102.75,-46.49],"6-41-23":[-105.57,-50.83],"5-20-11":[-105.57,-46.49],"6-41-24":[-129.54,-50.47],"6-41-25":[-129.48,1103.9],"5-20-12":[-141.12,1288.29],"6-41-26":[-90.4,869.54],"6-41-27":[-83.95,203.34],"5-20-13":[-90.4,869.54],"6-41-28":[-92.41,2565.59],"6-41-29":[-92.52,2449.21],"5-20-14":[-92.52,2718.19],"6-41-30":[126.29,2659.72],"6-41-31":[-0.89,2129.57],"5-20-15":[-0.89,2826.62],"6-41-32":[-35.4,103.23],"6-41-33":[-58.32,106.3],"5-20-16":[-58.32,1058.3],"6-41-34":[-8.15,187.29],"6-41-35":[3.69,1127.71],"5-20-17":[-8.15,1127.71],"6-41-36":[121.95,684.67],"6-41-37":[141.32,910.63],"5-20-18":[117.6,5469.94],"6-41-38":[214.18,4327.46],"6-41-39":[236.72,4098.61],"5-20-19":[191.91,6050.05],"6-41-40":[173.14,2622.25],"6-41-41":[94.42,1259.46],"5-20-20":[94.42,6388.87],"6-41-42":[68.09,1956.16],"6-41-43":[84.73,1847.62],"5-20-21":[68.09,4549.07],"6-41-44":[37.81,370.32],"6-41-45":[-42.53,1242.87],"5-20-22":[-42.53,1242.87],"6-41-46":[-22.19,172.48],"6-41-47":[-31.67,129.69],"5-20-23":[-102.43,1675.56],"6-41-48":[11.07,24.28],"6-41-49":[10.94,26.76],"5-20-24":[-8.45,672.86],"6-41-50":[10.24,27.93],"6-41-51":[-32.01,987.97],"5-20-25":[-32.01,1141.97],"6-41-52":[13.89,37.69],"6-41-53":[15.64,37.01],"5-20-26":[12.59,37.69],"6-41-54":[14.31,2255.29],"6-41-55":[8.72,2099.32],"5-20-27":[7.94,2255.29],"6-41-56":[6.99,2890.49],"6-41-57":[-1.96,2528.76],"5-20-28":[-1.96,2890.49],"6-41-58":[-28.3,1987.4],"6-41-59":[-36.07,-12.83],"5-20-29":[-38.71,2090.43],"6-41-60":[-47.6,-17.93],"6-41-61":[-51.95,806.53],"5-20-30":[-53.09,864.87],"6-41-62":[471.29,2332.43],"6-41-63":[-29.59,2745.47],"5-20-31":[-29.59,2745.47],"6-42-0":[13.6,39.87],"6-42-1":[20.07,45.77],"6-42-2":[13.39,636.09],"6-42-3":[13.39,1412.39],"6-42-4":[19.15,1850.85],"6-42-5":[16.99,99.21],"6-42-6":[19.11,50.32],"6-42-7":[14.3,47.47],"6-42-8":[7.19,1284.77],"6-42-9":[7.19,31.28],"6-42-10":[-1.45,19.12],"6-42-11":[-15.72,1027.48],"6-42-12":[-15.45,846.11],"6-42-13":[-12.9,704.1],"6-42-14":[-35.16,560.68],"6-42-15":[-28.74,626.18],"6-42-16":[-51.65,12.82],"6-42-17":[-59.93,-22.72],"6-42-18":[-63.96,-25.31],"6-42-19":[-70.71,-27.67],"6-42-20":[-79.19,-32.63],"6-42-21":[-92.99,-37.86],"6-42-22":[-102.26,-44.04],"6-42-23":[-104.51,-48.01],"6-42-24":[-109.89,-46.13],"6-42-25":[-127.72,350.69],"6-42-26":[-127.8,1415.28],"6-42-27":[-108.65,1174.77],"6-42-28":[-95.38,906.03],"6-42-29":[-54.23,2236.77],"6-42-30":[-7.39,2551.06],"6-42-31":[-5.06,1982.48],"6-42-32":[-47.66,394.84],"6-42-33":[-73.31,139.4],"6-42-34":[-32.27,379.21],"6-42-35":[37.28,586.16],"6-42-36":[152.35,742.16],"6-42-37":[128.07,1176.05],"6-42-38":[126.79,1325.79],"6-42-39":[110.1,644.34],"6-42-40":[97.77,249.8],"6-42-41":[34.67,233.97],"6-42-42":[2.15,142.11],"6-42-43":[-47.95,159.46],"6-42-44":[8.07,171.01],"6-42-45":[-24.24,773.01],"6-42-46":[11.51,27.54],"6-42-47":[5.16,24.63],"6-42-48":[5.16,23.27],"6-42-49":[8.2,25.72],"6-42-50":[-14.47,710.18],"6-42-51":[7.63,36.26],"6-42-52":[18.27,39.83],"6-42-53":[15.15,41.77],"6-42-54":[17.24,2109.78],"6-42-55":[9.82,2069.8],"6-42-56":[4.32,269.27],"6-42-57":[-10.08,1250.11],"6-42-58":[-23.74,1211.47],"6-42-59":[-36.14,-12.1],"6-42-60":[-49.12,-17.94],"6-42-61":[-51.95,889.65],"6-42-62":[706.64,2326.44],"6-42-63":[-29.54,2745.48],"6-43-0":[13.6,39.93],"6-43-1":[20.42,46.12],"5-21-0":[13.6,46.12],"6-43-2":[15.74,633.11],"6-43-3":[17.13,1941.41],"5-21-1":[13.39,1941.41],"4-10-0":[9.2,1941.41],"6-43-4":[99.2,2238.22],"6-43-5":[18.2,1021.33],"5-21-2":[16.99,2238.22],"6-43-6":[19.11,56.07],"6-43-7":[20.15,55.35],"5-21-3":[14.3,56.07],"4-10-1":[0.08,2238.22],"6-43-8":[17.02,49.44],"6-43-9":[9.89,42.39],"5-21-4":[7.19,1284.77],"6-43-10":[5.25,33.28],"6-43-11":[0.68,23.83],"5-21-5":[-15.72,1027.48],"4-10-2":[-39,2057.19],"6-43-12":[-8.86,1193.16],"6-43-13":[-13.28,895.93],"5-21-6":[-15.45,1193.16],"6-43-14":[-20.12,804.73],"6-43-15":[-48.44,566.65],"5-21-7":[-48.44,804.73],"4-10-3":[-62.23,1255.33],"6-43-16":[-45.14,-4.42],"6-43-17":[-49.88,-13.27],"5-21-8":[-59.93,12.82],"6-43-18":[-53.59,-19.77],"6-43-19":[-63.3,-23.07],"5-21-9":[-70.71,-19.77],"4-10-4":[-88.7,269.07],"6-43-20":[-73.49,-28.47],"6-43-21":[-87.06,-33.6],"5-21-10":[-92.99,-28.47],"6-43-22":[-94.59,-38.95],"6-43-23":[-97.23,-43.01],"5-21-11":[-104.51,-38.95],"4-10-5":[-105.57,48.35],"6-43-24":[-97.15,-43.83],"6-43-25":[-102.43,-45.56],"5-21-12":[-127.72,350.69],"6-43-26":[-113.66,-45.85],"6-43-27":[-108.06,-44.72],"5-21-13":[-127.8,1415.28],"4-10-6":[-141.12,1415.28],"6-43-28":[-95.84,-31.87],"6-43-29":[-77.21,502.55],"5-21-14":[-95.84,2236.77],"6-43-30":[-149.21,1207.52],"6-43-31":[87.42,1109.8],"5-21-15":[-149.21,2551.06],"4-10-7":[-149.21,2826.62],"6-43-32":[-59.96,483.8],"6-43-33":[-57.01,412.4],"5-21-16":[-73.31,483.8],"6-43-34":[2.73,657.03],"6-43-35":[87.58,621.44],"5-21-17":[-32.27,657.03],"4-10-8":[-73.31,1127.71],"6-43-36":[215.28,689.04],"6-43-37":[74.01,949.21],"5-21-18":[74.01,1176.05],"6-43-38":[58.91,1245.78],"6-43-39":[66.15,856.34],"5-21-19":[58.91,1325.79],"4-10-9":[58.91,6050.05],"6-43-40":[22.81,738.99],"6-43-41":[-2.88,703.38],"5-21-20":[-2.88,738.99],"6-43-42":[24.1,362.62],"6-43-43":[-5.9,395.29],"5-21-21":[-47.95,395.29],"4-10-10":[-47.95,6388.87],"6-43-44":[-44.85,228.24],"6-43-45":[-41.29,445.18],"5-21-22":[-44.85,773.01],"6-43-46":[2.65,26.5],"6-43-47":[0.53,19.67],"5-21-23":[0.53,27.54],"4-10-11":[-102.43,1675.56],"6-43-48":[0.24,14.06],"6-43-49":[3.69,25.65],"5-21-24":[0.24,25.72],"6-43-50":[3.62,714.59],"6-43-51":[5.69,38.8],"5-21-25":[-14.47,714.59],"4-10-12":[-32.01,1141.97],"6-43-52":[18.27,41.03],"6-43-53":[15.15,44.21],"5-21-26":[15.15,44.21],"6-43-54":[19.28,1728.16],"6-43-55":[9.82,37.01],"5-21-27":[9.82,2109.78],"4-10-13":[7.94,2255.29],"6-43-56":[1.8,22.37],"6-43-57":[-9.86,6.91],"5-21-28":[-10.08,1250.11],"6-43-58":[-23.43,-4.86],"6-43-59":[-35.85,-11.97],"5-21-29":[-36.14,1211.47],"4-10-14":[-38.71,2890.49],"6-43-60":[-50.63,-17.94],"6-43-61":[-51.01,1371.37],"5-21-30":[-51.95,1371.37],"6-43-62":[889.64,2317.26],"6-43-63":[-29.54,2745.48],"5-21-31":[-29.54,2745.48],"4-10-15":[-53.09,2745.48],"6-44-0":[13.6,39.84],"6-44-1":[20.3,45.86],"6-44-2":[17.47,772.13],"6-44-3":[19.23,2089.38],"6-44-4":[1020.94,2319.04],"6-44-5":[23.12,1708.39],"6-44-6":[23.37,1880.96],"6-44-7":[23.02,1854.07],"6-44-8":[21.54,1029.06],"6-44-9":[17.35,54.28],"6-44-10":[12.02,44.62],"6-44-11":[7.84,35.64],"6-44-12":[1.92,148.72],"6-44-13":[-20.3,486.61],"6-44-14":[-16.93,577.05],"6-44-15":[-12.05,408.54],"6-44-16":[-25.93,8.57],"6-44-17":[-39.16,-6.77],"6-44-18":[-44.89,-11.09],"6-44-19":[-56.94,-15.52],"6-44-20":[-66.17,-21.28],"6-44-21":[-77.89,-27.12],"6-44-22":[-85.04,-32.05],"6-44-23":[-89.27,-36.06],"6-44-24":[-91.01,-38.75],"6-44-25":[-96.71,-40.68],"6-44-26":[-98.96,-43.31],"6-44-27":[-95.93,-44.41],"6-44-28":[-95.18,-38.68],"6-44-29":[-81.6,14.37],"6-44-30":[-61.24,1030.82],"6-44-31":[94.48,889.3],"6-44-32":[-68.02,823.15],"6-44-33":[-38.49,487.97],"6-44-34":[67.74,694.41],"6-44-35":[161.68,753.33],"6-44-36":[228.41,612.29],"6-44-37":[103.13,914.71],"6-44-38":[86.09,880.42],"6-44-39":[114.58,752.75],"6-44-40":[106.53,799.57],"6-44-41":[70.48,899.62],"6-44-42":[35.31,584.15],"6-44-43":[1.97,482.27],"6-44-44":[-15.03,526.4],"6-44-45":[1.5,25.03],"6-44-46":[-0.35,22.2],"6-44-47":[-1.19,4.24],"6-44-48":[-2.11,6.22],"6-44-49":[-0.03,20.82],"6-44-50":[4.52,23.4],"6-44-51":[4.37,37.14],"6-44-52":[17.75,41.14],"6-44-53":[20.43,1523.88],"6-44-54":[16.01,578.59],"6-44-55":[7.53,38.03],"6-44-56":[-1.38,22.22],"6-44-57":[-9.33,2.32],"6-44-58":[-22.52,-3.02],"6-44-59":[-35.85,-11.88],"6-44-60":[-51.01,204.79],"6-44-61":[-50.72,1540.95],"6-44-62":[1083.33,2298.91],"6-44-63":[-29.54,2745.48],"6-45-0":[13.6,39.31],"6-45-1":[20,45.87],"5-22-0":[13.6,45.87],"6-45-2":[18.2,829.3],"6-45-3":[45.54,2185.38],"5-22-1":[17.47,2185.38],"6-45-4":[1552.61,2333.41],"6-45-5":[1247.03,2344.97],"5-22-2":[23.12,2344.97],"6-45-6":[26.83,2399.4],"6-45-7":[22.92,1842.92],"5-22-3":[22.92,2399.4],"6-45-8":[27.1,2229.6],"6-45-9":[22.31,1280.25],"5-22-4":[17.35,2229.6],"6-45-10":[19.37,59.8],"6-45-11":[16.17,52.29],"5-22-5":[7.84,59.8],"6-45-12":[14.52,48.25],"6-45-13":[12.67,43.66],"5-22-6":[-20.3,486.61],"6-45-14":[-9.6,301],"6-45-15":[-18.2,337.49],"5-22-7":[-18.2,577.05],"6-45-16":[-9.43,30.39],"6-45-17":[-20.11,6.02],"5-22-8":[-39.16,30.39],"6-45-18":[-27.17,-1.97],"6-45-19":[-40.58,-6.64],"5-22-9":[-56.94,-1.97],"6-45-20":[-50.81,-12.66],"6-45-21":[-62.29,-18.14],"5-22-10":[-77.89,-12.66],"6-45-22":[-68.68,-23.39],"6-45-23":[-75.93,-27.38],"5-22-11":[-89.27,-23.39],"6-45-24":[-80.15,-31.4],"6-45-25":[-85.3,-34.94],"5-22-12":[-96.71,-31.4],"6-45-26":[-89.68,-37.87],"6-45-27":[-90.85,-41.31],"5-22-13":[-98.96,-37.87],"6-45-28":[-90.85,-40.13],"6-45-29":[-87.64,-32.13],"5-22-14":[-95.18,14.37],"6-45-30":[-71.92,795.54],"6-45-31":[-78.81,615.02],"5-22-15":[-78.81,1030.82],"6-45-32":[-60.65,667.42],"6-45-33":[-29.07,524.34],"5-22-16":[-68.02,823.15],"6-45-34":[114.46,806.95],"6-45-35":[140.16,772.15],"5-22-17":[67.74,806.95],"6-45-36":[148.33,508.2],"6-45-37":[188.03,1020.26],"5-22-18":[103.13,1020.26],"6-45-38":[279.54,1043.99],"6-45-39":[226.83,630.24],"5-22-19":[86.09,1043.99],"6-45-40":[218.51,1344.63],"6-45-41":[192.34,1399.29],"5-22-20":[70.48,1399.29],"6-45-42":[-18.16,1093.19],"6-45-43":[-20.19,529.24],"5-22-21":[-20.19,1093.19],"6-45-44":[-0.71,38.77],"6-45-45":[-4.23,9.67],"5-22-22":[-15.03,526.4],"6-45-46":[-4.6,2.28],"6-45-47":[-5.77,-0.34],"5-22-23":[-5.77,22.2],"6-45-48":[-6.99,-0.02],"6-45-49":[-2.71,15],"5-22-24":[-6.99,20.82],"6-45-50":[5.01,17.57],"6-45-51":[6.24,35.37],"5-22-25":[4.37,37.14],"6-45-52":[17.75,40.41],"6-45-53":[20.22,47.29],"5-22-26":[17.75,1523.88],"6-45-54":[13.66,45.08],"6-45-55":[7.53,29.37],"5-22-27":[7.53,578.59],"6-45-56":[-1.7,15.36],"6-45-57":[-5.7,-0.8],"5-22-28":[-9.33,22.22],"6-45-58":[-21.59,-2.49],"6-45-59":[-34.95,-11.26],"5-22-29":[-35.85,-2.49],"6-45-60":[-51.02,354.31],"6-45-61":[-49.77,1979.94],"5-22-30":[-51.02,1979.94],"6-45-62":[1259.39,2275.47],"6-45-63":[-29.54,2745.48],"5-22-31":[-29.54,2745.48],"6-46-0":[13.6,38.72],"6-46-1":[19.71,46.42],"6-46-2":[19.83,660.34],"6-46-3":[405.24,2285.51],"6-46-4":[1894.84,2457.14],"6-46-5":[1860.54,2475.02],"6-46-6":[29.19,2542.84],"6-46-7":[26.42,1831.68],"6-46-8":[29.81,2027.72],"6-46-9":[29.48,2175.1],"6-46-10":[26.25,1494.43],"6-46-11":[24.84,68.28],"6-46-12":[21.59,63.25],"6-46-13":[21.59,55.81],"6-46-14":[17.39,52.22],"6-46-15":[15.17,53.92],"6-46-16":[5.41,41.06],"6-46-17":[-3.66,21.16],"6-46-18":[-11.78,10.12],"6-46-19":[-24.71,1.96],"6-46-20":[-35.15,-2.52],"6-46-21":[-46.25,-7.81],"6-46-22":[-53.6,-12.92],"6-46-23":[-62.78,-17.62],"6-46-24":[-68.86,-22.4],"6-46-25":[-75.75,-26.93],"6-46-26":[-82.25,-30.53],"6-46-27":[-86.6,-34.57],"6-46-28":[-87.21,-38.79],"6-46-29":[-85.59,-35.95],"6-46-30":[-76.08,-28.51],"6-46-31":[-60.98,35.72],"6-46-32":[-80.07,69.74],"6-46-33":[-95.49,521.39],"6-46-34":[51.02,882.74],"6-46-35":[105.36,737.91],"6-46-36":[127.52,1154.07],"6-46-37":[227.19,1475.44],"6-46-38":[312.64,1034.42],"6-46-39":[301.73,1075.16],"6-46-40":[-51.68,1855.39],"6-46-41":[-37.26,1825.17],"6-46-42":[-24.64,1827.75],"6-46-43":[-6.23,13.98],"6-46-44":[-9.69,10.93],"6-46-45":[-8.47,-0.7],"6-46-46":[-8.58,-1.87],"6-46-47":[-7.32,-2.14],"6-46-48":[-8.38,-2.22],"6-46-49":[-4.74,9.5],"6-46-50":[1.02,14.82],"6-46-51":[8.24,36.85],"6-46-52":[18.32,40.45],"6-46-53":[18.15,42.54],"6-46-54":[13.5,40.62],"6-46-55":[8,27.69],"6-46-56":[-0.82,15.99],"6-46-57":[-4.02,0.15],"6-46-58":[-20.54,-1.51],"6-46-59":[-34.25,437.71],"6-46-60":[-50.27,631.96],"6-46-61":[-48.16,1965.25],"6-46-62":[1373.28,2268.09],"6-46-63":[-29.54,2745.48],"6-47-0":[13.6,37.99],"6-47-1":[19.55,47.53],"5-23-0":[13.6,47.53],"6-47-2":[20.29,700.91],"6-47-3":[443.21,2373.94],"5-23-1":[19.83,2373.94],"4-11-0":[13.6,2373.94],"6-47-4":[2285.5,2625.24],"6-47-5":[2286.78,2882.05],"5-23-2":[1860.54,2882.05],"6-47-6":[1707.24,2840.8],"6-47-7":[1101.27,2476.32],"5-23-3":[26.42,2840.8],"4-11-1":[22.92,2882.05],"3-5-0":[0.08,2882.05],"6-47-8":[1301.32,2769.8],"6-47-9":[1356.57,2769.95],"5-23-4":[29.48,2769.95],"6-47-10":[33.06,2452.69],"6-47-11":[31.62,81.26],"5-23-5":[24.84,2452.69],"4-11-2":[7.84,2769.95],"6-47-12":[29.54,78.26],"6-47-13":[24.7,72.82],"5-23-6":[21.59,78.26],"6-47-14":[23.65,69.47],"6-47-15":[21.38,70.1],"5-23-7":[15.17,70.1],"4-11-3":[-20.3,577.05],"3-5-1":[-62.23,2769.95],"2-2-0":[-97.86,2882.05],"6-47-16":[13.6,55.71],"6-47-17":[5.96,40.64],"5-23-8":[-3.66,55.71],"6-47-18":[1.95,29.54],"6-47-19":[-2.64,22.06],"5-23-9":[-24.71,29.54],"4-11-4":[-56.94,55.71],"6-47-20":[-11.83,15.19],"6-47-21":[-23.15,4.78],"5-23-10":[-46.25,15.19],"6-47-22":[-31.32,-2.17],"6-47-23":[-42.51,-7.52],"5-23-11":[-62.78,-2.17],"4-11-5":[-89.27,15.19],"3-5-2":[-105.57,269.07],"6-47-24":[-50.68,-13.69],"6-47-25":[-59.08,-19.14],"5-23-12":[-75.75,-13.69],"6-47-26":[-65.46,-24.58],"6-47-27":[-76.9,-25.66],"5-23-13":[-86.6,-24.58],"4-11-6":[-98.96,-13.69],"6-47-28":[-76.9,-30.33],"6-47-29":[-77.77,-32.04],"5-23-14":[-87.21,-30.33],"6-47-30":[-72.57,-28.65],"6-47-31":[-64.4,-23.15],"5-23-15":[-76.08,35.72],"4-11-7":[-95.18,1030.82],"3-5-3":[-149.21,2826.62],"2-2-1":[-328.06,5809.48],"6-47-32":[-64.98,198.92],"6-47-33":[-52.12,442.32],"5-23-16":[-95.49,521.39],"6-47-34":[64.01,663.07],"6-47-35":[165.38,868.81],"5-23-17":[51.02,882.74],"4-11-8":[-95.49,882.74],"6-47-36":[242.55,1657.87],"6-47-37":[397.4,1576.13],"5-23-18":[127.52,1657.87],"6-47-38":[443.95,1269.93],"6-47-39":[482.05,2353.32],"5-23-19":[301.73,2353.32],"4-11-9":[86.09,2353.32],"3-5-4":[-95.49,6050.05],"6-47-40":[-47.11,2413.32],"6-47-41":[-19.83,2.39],"5-23-20":[-51.68,2413.32],"6-47-42":[-16.52,2.77],"6-47-43":[-15,-2.9],"5-23-21":[-24.64,1827.75],"4-11-10":[-51.68,2413.32],"6-47-44":[-12.7,-3.31],"6-47-45":[-12.43,-4],"5-23-22":[-12.7,10.93],"6-47-46":[-12.93,-3],"6-47-47":[-9.68,-2.76],"5-23-23":[-12.93,-1.87],"4-11-11":[-15.03,526.4],"3-5-5":[-102.43,6388.87],"2-2-2":[-123.53,6969.13],"6-47-48":[-7.97,-2.42],"6-47-49":[-5.09,12.36],"5-23-24":[-8.38,12.36],"6-47-50":[0.94,19.2],"6-47-51":[9.93,36.67],"5-23-25":[0.94,36.85],"4-11-12":[-8.38,37.14],"6-47-52":[18.32,42.39],"6-47-53":[18.15,853.58],"5-23-26":[18.15,853.58],"6-47-54":[14.52,46.03],"6-47-55":[8,29.24],"5-23-27":[8,46.03],"4-11-13":[7.53,1523.88],"3-5-6":[-32.01,2255.29],"6-47-56":[0.14,16.45],"6-47-57":[-4.25,0.82],"5-23-28":[-4.25,16.45],"6-47-58":[-18.57,-1.51],"6-47-59":[-29.56,457.63],"5-23-29":[-34.25,457.63],"4-11-14":[-35.85,457.63],"6-47-60":[-47.37,731.02],"6-47-61":[-47.53,1373.29],"5-23-30":[-50.27,1965.25],"6-47-62":[1353.9,2263.16],"6-47-63":[-29.54,2745.98],"5-23-31":[-29.54,2745.98],"4-11-15":[-51.02,2745.98],"3-5-7":[-53.09,2890.49],"2-2-3":[-269.44,4721.94],"6-48-0":[13.6,37.61],"6-48-1":[19.52,48.06],"6-48-2":[23.04,949.4],"6-48-3":[418.15,2469.75],"6-48-4":[2373.93,2812.59],"6-48-5":[2625.23,3024.06],"6-48-6":[2476.31,3047.68],"6-48-7":[2357.41,2826.07],"6-48-8":[1710.88,2785.17],"6-48-9":[45.47,2833.9],"6-48-10":[-226.59,2803.26],"6-48-11":[39.09,92.57],"6-48-12":[36.79,90.15],"6-48-13":[33.05,85.22],"6-48-14":[32.05,78.86],"6-48-15":[27.85,72.39],"6-48-16":[21.23,65.89],"6-48-17":[15.6,54.55],"6-48-18":[11.42,45.38],"6-48-19":[8.36,39.31],"6-48-20":[2.88,32.2],"6-48-21":[-3.8,23.36],"6-48-22":[-13.7,10.3],"6-48-23":[-26.69,-1.49],"6-48-24":[-36.66,-9.03],"6-48-25":[-48.75,-14.66],"6-48-26":[-52.31,-19.6],"6-48-27":[-60.66,-21.73],"6-48-28":[-65.09,-22.59],"6-48-29":[-65.14,-24.57],"6-48-30":[-64.07,-23.02],"6-48-31":[-58.56,-22.33],"6-48-32":[-70.5,80.25],"6-48-33":[-60.53,366.28],"6-48-34":[46.82,588.21],"6-48-35":[175.94,1298.57],"6-48-36":[374.95,1756.49],"6-48-37":[264.86,1788.77],"6-48-38":[158.3,2047.81],"6-48-39":[-0.94,2789.25],"6-48-40":[-170.49,2060.99],"6-48-41":[-22.35,-6.95],"6-48-42":[-21.25,-7.27],"6-48-43":[-16.43,-5.74],"6-48-44":[-15.08,-5.85],"6-48-45":[-14.74,-5.73],"6-48-46":[-15.44,-5.21],"6-48-47":[-14.07,-3.49],"6-48-48":[-9.34,-1.35],"6-48-49":[-3.65,16.97],"6-48-50":[3.91,17.53],"6-48-51":[9.5,35.69],"6-48-52":[17.4,41.28],"6-48-53":[19.29,277.84],"6-48-54":[14.49,46.03],"6-48-55":[8.34,28.56],"6-48-56":[0.81,16.97],"6-48-57":[-6.67,1.37],"6-48-58":[-16.22,-2.35],"6-48-59":[-31.72,213.73],"6-48-60":[-45.8,701.38],"6-48-61":[-47.53,1548.87],"6-48-62":[1362.57,2265.71],"6-48-63":[-29.54,2746.48],"6-49-0":[13.6,37.46],"6-49-1":[19.53,48.73],"5-24-0":[13.6,48.73],"6-49-2":[24.05,1459.96],"6-49-3":[919.34,2462.17],"5-24-1":[23.04,2469.75],"6-49-4":[2354.99,2812.59],"6-49-5":[2629.11,3141.21],"5-24-2":[2354.99,3141.21],"6-49-6":[2784.52,3182.09],"6-49-7":[2634.56,3042.62],"5-24-3":[2357.41,3182.09],"6-49-8":[44.4,2652.87],"6-49-9":[44.54,2012.55],"5-24-4":[44.4,2833.9],"6-49-10":[46.28,334.77],"6-49-11":[44.97,101.28],"5-24-5":[-226.59,2803.26],"6-49-12":[43.91,102],"6-49-13":[40.13,98.24],"5-24-6":[33.05,102],"6-49-14":[36.75,93.09],"6-49-15":[33.71,86.06],"5-24-7":[27.85,93.09],"6-49-16":[28.95,81.48],"6-49-17":[23.81,73.88],"5-24-8":[15.6,81.48],"6-49-18":[21.4,66.2],"6-49-19":[17.36,60.53],"5-24-9":[8.36,66.2],"6-49-20":[13.7,55.5],"6-49-21":[5.84,39.04],"5-24-10":[-3.8,55.5],"6-49-22":[-1.5,22.35],"6-49-23":[-16.89,4.59],"5-24-11":[-26.69,22.35],"6-49-24":[-26.78,-4.39],"6-49-25":[-37.71,-9.55],"5-24-12":[-48.75,-4.39],"6-49-26":[-42.33,-13.76],"6-49-27":[-43.85,-16.48],"5-24-13":[-60.66,-13.76],"6-49-28":[-45.31,-15.23],"6-49-29":[-49.21,-15.42],"5-24-14":[-65.14,-15.23],"6-49-30":[-47.15,-16.29],"6-49-31":[-46.81,-15.86],"5-24-15":[-64.07,-15.86],"6-49-32":[-46.81,79.72],"6-49-33":[-74.23,1125.05],"5-24-16":[-74.23,1125.05],"6-49-34":[53.15,966.21],"6-49-35":[149.22,1272.47],"5-24-17":[46.82,1298.57],"6-49-36":[99.05,2017.31],"6-49-37":[0.38,1423.16],"5-24-18":[0.38,2017.31],"6-49-38":[-51.4,1567.33],"6-49-39":[-41.56,2863.35],"5-24-19":[-51.4,2863.35],"6-49-40":[-24.02,694.74],"6-49-41":[-23.57,-9.82],"5-24-20":[-170.49,2060.99],"6-49-42":[-21.49,-7.66],"6-49-43":[-17.46,-7.18],"5-24-21":[-21.49,-5.74],"6-49-44":[-15.24,-6.72],"6-49-45":[-14.63,-6.41],"5-24-22":[-15.24,-5.73],"6-49-46":[-15.67,-6.33],"6-49-47":[-14.71,-4.79],"5-24-23":[-15.67,-3.49],"6-49-48":[-10.04,-0.71],"6-49-49":[-1.58,15],"5-24-24":[-10.04,16.97],"6-49-50":[3.4,15.14],"6-49-51":[6.24,37.34],"5-24-25":[3.4,37.34],"6-49-52":[17.4,40.03],"6-49-53":[19.24,44.9],"5-24-26":[17.4,277.84],"6-49-54":[14.63,42.23],"6-49-55":[8.34,28.46],"5-24-27":[8.34,46.03],"6-49-56":[1.36,16.69],"6-49-57":[-9.07,1.88],"5-24-28":[-9.07,16.97],"6-49-58":[-13.8,-3.51],"6-49-59":[-31.95,-7.78],"5-24-29":[-31.95,213.73],"6-49-60":[-42.5,467.1],"6-49-61":[-22.1,1679.35],"5-24-30":[-47.53,1679.35],"6-49-62":[1548.86,2265.71],"6-49-63":[-29.54,2746.48],"5-24-31":[-29.54,2746.48],"6-50-0":[13.6,37.63],"6-50-1":[19.61,49.96],"6-50-2":[24.84,1457.67],"6-50-3":[1097.61,2355],"6-50-4":[2249.23,2629.12],"6-50-5":[2558.1,3200.74],"6-50-6":[3042.61,3253.39],"6-50-7":[2639.66,3209.33],"6-50-8":[45.07,3108.37],"6-50-9":[45.74,106.81],"6-50-10":[49.27,105.78],"6-50-11":[49.5,111.91],"6-50-12":[49.85,112.69],"6-50-13":[46.54,108.32],"6-50-14":[43.24,103.27],"6-50-15":[40.73,96.8],"6-50-16":[37.48,93],"6-50-17":[33.1,87.83],"6-50-18":[30.85,80.4],"6-50-19":[27.75,76.44],"6-50-20":[20.59,68.85],"6-50-21":[12.03,47.85],"6-50-22":[3.31,31.01],"6-50-23":[-8.2,12.45],"6-50-24":[-17.97,2.19],"6-50-25":[-27.35,-2.98],"6-50-26":[-32.47,-5.75],"6-50-27":[-35.27,-10.36],"6-50-28":[-34.69,-9.18],"6-50-29":[-34.54,-8.11],"6-50-30":[-34.03,-8.32],"6-50-31":[-34.84,-8.32],"6-50-32":[-34.84,-10.92],"6-50-33":[-44.76,1106.52],"6-50-34":[4.53,1190.32],"6-50-35":[-49.15,1083.8],"6-50-36":[-42.94,626.82],"6-50-37":[-28.08,986.18],"6-50-38":[-23.73,124.34],"6-50-39":[-23.06,-5.86],"6-50-40":[-23.22,-8.26],"6-50-41":[-22.24,-6.03],"6-50-42":[-20.02,-1.95],"6-50-43":[-15.06,-2.36],"6-50-44":[-14.73,-4.64],"6-50-45":[-13.41,-4.06],"6-50-46":[-13.54,-3.83],"6-50-47":[-13.35,-3.1],"6-50-48":[-9.2,0.55],"6-50-49":[-0.72,12.98],"6-50-50":[2.9,23.35],"6-50-51":[-44.49,2738.7],"6-50-52":[19.49,41.64],"6-50-53":[20.4,44],"6-50-54":[14.13,41.06],"6-50-55":[7.93,28.3],"6-50-56":[1.73,16.49],"6-50-57":[-9.57,2.54],"6-50-58":[-12.44,-2.31],"6-50-59":[-30.93,-7.27],"6-50-60":[-38.74,776.2],"6-50-61":[467.09,1715.15],"6-50-62":[1679.34,2262.46],"6-50-63":[-29.54,2746.48],"6-51-0":[13.6,37.87],"6-51-1":[19.71,51.91],"5-25-0":[13.6,51.91],"6-51-2":[25.09,1225.55],"6-51-3":[563.18,2251.74],"5-25-1":[24.84,2355],"4-12-0":[13.6,2469.75],"6-51-4":[2064.18,2558.11],"6-51-5":[2479.15,3116.18],"5-25-2":[2064.18,3200.74],"6-51-6":[2863.3,3190.72],"6-51-7":[842.84,3318.44],"5-25-3":[842.84,3318.44],"4-12-1":[842.84,3318.44],"6-51-8":[51.79,2952.11],"6-51-9":[51.81,111.55],"5-25-4":[45.07,3108.37],"6-51-10":[52.28,118.01],"6-51-11":[54.03,122.71],"5-25-5":[49.27,122.71],"4-12-2":[-226.59,3108.37],"6-51-12":[56.06,122.31],"6-51-13":[52.06,118.71],"5-25-6":[46.54,122.31],"6-51-14":[49.47,113.3],"6-51-15":[47.29,108.7],"5-25-7":[40.73,113.3],"4-12-3":[27.85,122.31],"6-51-16":[45.13,107.59],"6-51-17":[41.29,102.26],"5-25-8":[33.1,107.59],"6-51-18":[39.59,98.78],"6-51-19":[34.86,94.27],"5-25-9":[27.75,98.78],"4-12-4":[8.36,107.59],"6-51-20":[25.6,77.17],"6-51-21":[16.22,56.25],"5-25-10":[12.03,77.17],"6-51-22":[7.85,41.92],"6-51-23":[2.04,22.97],"5-25-11":[-8.2,41.92],"4-12-5":[-26.69,77.17],"6-51-24":[-2.99,19.11],"6-51-25":[-9.54,11.37],"5-25-12":[-27.35,19.11],"6-51-26":[-18.24,4.22],"6-51-27":[-22.86,-3.86],"5-25-13":[-35.27,4.22],"4-12-6":[-60.66,19.11],"6-51-28":[-21.86,-3.45],"6-51-29":[-16.16,0.32],"5-25-14":[-34.69,0.32],"6-51-30":[-15.02,0.32],"6-51-31":[-23.52,-1.06],"5-25-15":[-34.84,0.32],"4-12-7":[-65.14,0.32],"6-51-32":[-24.99,-5.27],"6-51-33":[-25.2,315.67],"5-25-16":[-44.76,1106.52],"6-51-34":[-43.64,1194.05],"6-51-35":[-34.81,1027.17],"5-25-17":[-49.15,1194.05],"4-12-8":[-74.23,1298.57],"6-51-36":[-25.89,-9.5],"6-51-37":[-26.03,-8.12],"5-25-18":[-42.94,986.18],"6-51-38":[-21.09,-6.58],"6-51-39":[-20.12,-3.54],"5-25-19":[-23.73,124.34],"4-12-9":[-51.4,2863.35],"6-51-40":[-17.91,-6.14],"6-51-41":[-15.72,-2.7],"5-25-20":[-23.22,-2.7],"6-51-42":[-11.25,4.88],"6-51-43":[-8.51,4.82],"5-25-21":[-20.02,4.88],"4-12-10":[-170.49,2060.99],"6-51-44":[-8.8,-0.42],"6-51-45":[-8.93,-0.49],"5-25-22":[-14.73,-0.42],"6-51-46":[-7.5,-0.3],"6-51-47":[-7.21,0.52],"5-25-23":[-13.54,0.52],"4-12-11":[-15.67,0.52],"6-51-48":[-5.84,5.1],"6-51-49":[0.54,16.37],"5-25-24":[-9.2,16.37],"6-51-50":[6.57,28.17],"6-51-51":[0.07,2916.19],"5-25-25":[-44.49,2916.19],"4-12-12":[-44.49,2916.19],"6-51-52":[19.49,44.42],"6-51-53":[20.67,45.57],"5-25-26":[19.49,45.57],"6-51-54":[13.2,41.85],"6-51-55":[7.93,27.24],"5-25-27":[7.93,41.85],"4-12-13":[7.93,277.84],"6-51-56":[1.43,15.82],"6-51-57":[-8.96,2.59],"5-25-28":[-9.57,16.49],"6-51-58":[-10.69,-0.69],"6-51-59":[-26.21,682.83],"5-25-29":[-30.93,682.83],"4-12-14":[-31.95,682.83],"6-51-60":[-38.69,818.98],"6-51-61":[776.19,1785.3],"5-25-30":[-38.74,1785.3],"6-51-62":[1715.14,2257.85],"6-51-63":[-29.54,2746.48],"5-25-31":[-29.54,2746.48],"4-12-15":[-47.53,2746.48],"6-52-0":[13.6,38],"6-52-1":[19.75,52.83],"6-52-2":[26.3,1141.68],"6-52-3":[39.31,2076.74],"6-52-4":[1811.24,2521.51],"6-52-5":[2242.7,2887.36],"6-52-6":[2056.01,3023.83],"6-52-7":[55.87,3002.57],"6-52-8":[54.97,1206.68],"6-52-9":[54.3,120.01],"6-52-10":[55.78,125.87],"6-52-11":[59.31,126.28],"6-52-12":[59.58,122.56],"6-52-13":[56.65,121.98],"6-52-14":[54.49,120.69],"6-52-15":[53.73,118.59],"6-52-16":[51.45,117.92],"6-52-17":[49.39,956.08],"6-52-18":[47.13,292.1],"6-52-19":[38.59,98.45],"6-52-20":[29.29,80.32],"6-52-21":[22.35,62.32],"6-52-22":[12.18,49.65],"6-52-23":[9.78,32.21],"6-52-24":[6.18,30.74],"6-52-25":[2.46,27.03],"6-52-26":[-6.88,18.42],"6-52-27":[-11.61,3.79],"6-52-28":[-11.61,1.81],"6-52-29":[-6.04,9.77],"6-52-30":[-1.63,10.1],"6-52-31":[-11.81,9.72],"6-52-32":[-15.72,1.12],"6-52-33":[-24.61,236.48],"6-52-34":[-22.93,-6.99],"6-52-35":[-23.03,-9.64],"6-52-36":[-21.93,-7.29],"6-52-37":[-18.49,-6.71],"6-52-38":[-16.29,-5.18],"6-52-39":[-15.68,-4.33],"6-52-40":[-15.61,-5.17],"6-52-41":[-11.29,0.3],"6-52-42":[-4.72,5.27],"6-52-43":[-1.14,6.16],"6-52-44":[-1.59,8.81],"6-52-45":[-1.75,7.35],"6-52-46":[-1.79,8.03],"6-52-47":[-1.07,9.11],"6-52-48":[0.32,11.62],"6-52-49":[3.14,20.83],"6-52-50":[10.63,31.49],"6-52-51":[8.47,44.15],"6-52-52":[20.98,48.11],"6-52-53":[20.05,47.57],"6-52-54":[12.4,39.99],"6-52-55":[6.84,24.84],"6-52-56":[1.3,15.07],"6-52-57":[-6.52,2.36],"6-52-58":[-10.53,-0.06],"6-52-59":[-21.87,1124.55],"6-52-60":[-37.76,910.74],"6-52-61":[818.39,1887.29],"6-52-62":[1785.29,2271.2],"6-52-63":[-29.54,2746.48],"6-53-0":[13.6,38.04],"6-53-1":[19.67,53.58],"5-26-0":[13.6,53.58],"6-53-2":[26.45,988.3],"6-53-3":[357.17,1866.38],"5-26-1":[26.3,2076.74],"6-53-4":[1590.54,2511.91],"6-53-5":[1504.88,2633.93],"5-26-2":[1504.88,2887.36],"6-53-6":[50.54,2633.93],"6-53-7":[54.99,3982.86],"5-26-3":[50.54,3982.86],"6-53-8":[57.33,121.21],"6-53-9":[57.33,128.08],"5-26-4":[54.3,1206.68],"6-53-10":[60.52,129.5],"6-53-11":[60.77,127.45],"5-26-5":[55.78,129.5],"6-53-12":[59.99,122.28],"6-53-13":[59.83,127.23],"5-26-6":[56.65,127.23],"6-53-14":[60.04,129.8],"6-53-15":[59.64,129.69],"5-26-7":[53.73,129.8],"6-53-16":[58.28,129.28],"6-53-17":[56.51,123.07],"5-26-8":[49.39,956.08],"6-53-18":[49.22,2346.09],"6-53-19":[40.38,100.63],"5-26-9":[38.59,2346.09],"6-53-20":[31.82,83.95],"6-53-21":[25.24,69.72],"5-26-10":[22.35,83.95],"6-53-22":[17.36,52.25],"6-53-23":[15.16,40.62],"5-26-11":[9.78,52.25],"6-53-24":[15.01,37.08],"6-53-25":[10.17,36.9],"5-26-12":[2.46,37.08],"6-53-26":[3.36,31.78],"6-53-27":[0.38,19.03],"5-26-13":[-11.61,31.78],"6-53-28":[0.23,13.16],"6-53-29":[1.8,18.26],"5-26-14":[-11.61,18.26],"6-53-30":[5.2,18.06],"6-53-31":[0.58,16.65],"5-26-15":[-11.81,18.06],"6-53-32":[-9.18,11.61],"6-53-33":[-14,-1.77],"5-26-16":[-24.61,236.48],"6-53-34":[-21.18,-5.37],"6-53-35":[-21.12,-7.87],"5-26-17":[-23.03,-5.37],"6-53-36":[-19.03,-7.1],"6-53-37":[-14.64,-6.55],"5-26-18":[-21.93,-6.55],"6-53-38":[-14.32,-5.31],"6-53-39":[-22.84,584.18],"5-26-19":[-22.84,584.18],"6-53-40":[-12.77,-3.59],"6-53-41":[-8.93,2.46],"5-26-20":[-15.61,2.46],"6-53-42":[0.26,10.35],"6-53-43":[2.82,13.56],"5-26-21":[-4.72,13.56],"6-53-44":[2.99,18.1],"6-53-45":[3.74,19.28],"5-26-22":[-1.75,19.28],"6-53-46":[4.18,19.28],"6-53-47":[4.92,20.12],"5-26-23":[-1.79,20.12],"6-53-48":[4.93,21.48],"6-53-49":[6.89,25.29],"5-26-24":[0.32,25.29],"6-53-50":[10.63,32.32],"6-53-51":[8.47,44.34],"5-26-25":[8.47,44.34],"6-53-52":[22.07,48.37],"6-53-53":[20.05,48.14],"5-26-26":[20.05,48.37],"6-53-54":[11.81,40.04],"6-53-55":[6.84,22.99],"5-26-27":[6.84,40.04],"6-53-56":[1.22,13.57],"6-53-57":[-4.92,1.98],"5-26-28":[-6.52,15.07],"6-53-58":[-10.25,-0.09],"6-53-59":[-16.53,1294.14],"5-26-29":[-21.87,1294.14],"6-53-60":[-35.54,1634.18],"6-53-61":[910.73,1960.78],"5-26-30":[-37.76,1960.78],"6-53-62":[1887.28,2301.31],"6-53-63":[-29.54,2746.48],"5-26-31":[-29.54,2746.48],"6-54-0":[13.6,38.03],"6-54-1":[19.6,54.55],"6-54-2":[26.58,989.93],"6-54-3":[31.94,1631.63],"6-54-4":[1236.12,2416.2],"6-54-5":[47.32,2217.34],"6-54-6":[48.05,2458.39],"6-54-7":[54.4,2560.61],"6-54-8":[59.36,127.95],"6-54-9":[61.22,130.4],"6-54-10":[62.35,130.18],"6-54-11":[60.84,126.55],"6-54-12":[60.65,122.78],"6-54-13":[60.63,127.15],"6-54-14":[62.98,131.06],"6-54-15":[64.62,132.17],"6-54-16":[60.84,129.76],"6-54-17":[57.33,122.83],"6-54-18":[41.12,1086.32],"6-54-19":[38.34,100.89],"6-54-20":[31.04,82.99],"6-54-21":[26.81,66.49],"6-54-22":[21.12,53.95],"6-54-23":[17.1,42.86],"6-54-24":[18.44,45.39],"6-54-25":[15.88,1434.62],"6-54-26":[10.32,41.69],"6-54-27":[7.13,30.03],"6-54-28":[6.53,22.91],"6-54-29":[6.71,23.82],"6-54-30":[8.3,22.61],"6-54-31":[6.31,20.6],"6-54-32":[-2.33,18.27],"6-54-33":[-10.41,1.49],"6-54-34":[-15.53,-1.98],"6-54-35":[-16.6,-5.32],"6-54-36":[-16.29,-6.18],"6-54-37":[-15.52,-6.1],"6-54-38":[-15.32,-6.3],"6-54-39":[-13.65,-5.14],"6-54-40":[-12.51,-0.74],"6-54-41":[-6.03,5.66],"6-54-42":[1.39,12.5],"6-54-43":[4.87,19.2],"6-54-44":[7.12,24.93],"6-54-45":[8.92,26.98],"6-54-46":[9.52,27.23],"6-54-47":[9.52,28],"6-54-48":[10.95,28.86],"6-54-49":[10.95,32.39],"6-54-50":[15.14,35.56],"6-54-51":[2.7,43.39],"6-54-52":[3.95,1349.09],"6-54-53":[10.78,1035.34],"6-54-54":[10.99,38.39],"6-54-55":[6.04,21.85],"6-54-56":[1.32,12.69],"6-54-57":[-4.19,2.98],"6-54-58":[-8.55,102.38],"6-54-59":[-11.49,1507.45],"6-54-60":[282.95,1787.39],"6-54-61":[1151.7,2012.99],"6-54-62":[1960.77,2336.23],"6-54-63":[-29.54,2746.48],"6-55-0":[13.6,37.95],"6-55-1":[19.57,55.69],"5-27-0":[13.6,55.69],"6-55-2":[26.3,766.89],"6-55-3":[31.3,1410.95],"5-27-1":[26.3,1631.63],"4-13-0":[13.6,2076.74],"6-55-4":[33.45,2030.68],"6-55-5":[42.85,2071.97],"5-27-2":[33.45,2416.2],"6-55-6":[49.24,2327.64],"6-55-7":[55.03,1988.61],"5-27-3":[48.05,2560.61],"4-13-1":[33.45,3982.86],"3-6-0":[13.6,3982.86],"6-55-8":[59.61,1471.32],"6-55-9":[64.12,194.14],"5-27-4":[59.36,1471.32],"6-55-10":[60.83,129.91],"6-55-11":[60.83,126.1],"5-27-5":[60.83,130.18],"4-13-2":[54.3,1471.32],"6-55-12":[59.88,126.1],"6-55-13":[60,126.13],"5-27-6":[59.88,127.15],"6-55-14":[62.57,129.01],"6-55-15":[62.57,131.88],"5-27-7":[62.57,132.17],"4-13-3":[53.73,132.17],"3-6-1":[-226.59,3108.37],"6-55-16":[59.45,129.91],"6-55-17":[53.56,120.26],"5-27-8":[53.56,129.91],"6-55-18":[41.9,1131.62],"6-55-19":[36.6,100.95],"5-27-9":[36.6,1131.62],"4-13-4":[36.6,2346.09],"6-55-20":[30.32,76.17],"6-55-21":[26.98,63.94],"5-27-10":[26.81,82.99],"6-55-22":[22.3,55.85],"6-55-23":[20.15,50.59],"5-27-11":[17.1,55.85],"4-13-5":[9.78,83.95],"3-6-2":[-26.69,2346.09],"6-55-24":[19.98,51.75],"6-55-25":[2.58,2003.8],"5-27-12":[2.58,2003.8],"6-55-26":[-31.78,2815.55],"6-55-27":[12.13,37.39],"5-27-13":[-31.78,2815.55],"4-13-6":[-31.78,2815.55],"6-55-28":[11.03,31.14],"6-55-29":[11.25,32.89],"5-27-14":[6.53,32.89],"6-55-30":[10.59,30.93],"6-55-31":[9.61,23.87],"5-27-15":[6.31,30.93],"4-13-7":[-11.81,32.89],"3-6-3":[-65.14,2815.55],"6-55-32":[1.48,20.71],"6-55-33":[-3.02,8.19],"5-27-16":[-10.41,20.71],"6-55-34":[-9.54,4],"6-55-35":[-12.07,-1.23],"5-27-17":[-16.6,4],"4-13-8":[-24.61,236.48],"6-55-36":[-12.66,-2.77],"6-55-37":[-14.13,-3.24],"5-27-18":[-16.29,-2.77],"6-55-38":[-14.42,-3.25],"6-55-39":[-12.99,-2.51],"5-27-19":[-15.32,-2.51],"4-13-9":[-22.84,584.18],"3-6-4":[-74.23,2863.35],"6-55-40":[-10.22,3.34],"6-55-41":[-0.75,11.75],"5-27-20":[-12.51,11.75],"6-55-42":[3.17,18.07],"6-55-43":[7.05,25.53],"5-27-21":[1.39,25.53],"4-13-10":[-15.61,25.53],"6-55-44":[9.9,32.41],"6-55-45":[13.07,35.35],"5-27-22":[7.12,35.35],"6-55-46":[13.58,36.95],"6-55-47":[13.63,36.98],"5-27-23":[9.52,36.98],"4-13-11":[-1.79,36.98],"3-6-5":[-170.49,2060.99],"6-55-48":[14.16,36.96],"6-55-49":[14.19,37.24],"5-27-24":[10.95,37.24],"6-55-50":[16.34,39.76],"6-55-51":[3.61,42.27],"5-27-25":[2.7,43.39],"4-13-12":[0.32,44.34],"6-55-52":[3.95,37.89],"6-55-53":[9.63,38.97],"5-27-26":[3.95,1349.09],"6-55-54":[10.3,35.96],"6-55-55":[6.04,20.47],"5-27-27":[6.04,38.39],"4-13-13":[3.95,1349.09],"3-6-6":[-44.49,2916.19],"6-55-56":[1.74,12.02],"6-55-57":[-4.2,3.22],"5-27-28":[-4.2,12.69],"6-55-58":[-6.28,557.2],"6-55-59":[102.37,1604.48],"5-27-29":[-11.49,1604.48],"4-13-14":[-21.87,1604.48],"6-55-60":[378.53,1737.31],"6-55-61":[1187.19,2103.65],"5-27-30":[282.95,2103.65],"6-55-62":[2012.98,2360.08],"6-55-63":[-29.54,2746.48],"5-27-31":[-29.54,2746.48],"4-13-15":[-37.76,2746.48],"3-6-7":[-47.53,2746.48],"6-56-0":[13.6,37.87],"6-56-1":[19.57,55.73],"6-56-2":[25.75,654.04],"6-56-3":[28.03,1529.13],"6-56-4":[28.03,995.54],"6-56-5":[38.36,1653.87],"6-56-6":[49.95,1002],"6-56-7":[55.4,671.1],"6-56-8":[61.97,1784.7],"6-56-9":[62.67,1475.57],"6-56-10":[60.06,128.25],"6-56-11":[60.24,126.29],"6-56-12":[59.56,126.29],"6-56-13":[59.86,126.21],"6-56-14":[61.49,126.55],"6-56-15":[60.3,127.18],"6-56-16":[56.77,126.5],"6-56-17":[50.99,117.02],"6-56-18":[43.52,106.96],"6-56-19":[36.6,92.67],"6-56-20":[32.36,81.82],"6-56-21":[27.93,72.03],"6-56-22":[25.77,65.54],"6-56-23":[23.87,64.24],"6-56-24":[23.73,52.11],"6-56-25":[24.85,53.98],"6-56-26":[18.69,52.63],"6-56-27":[15.51,44.22],"6-56-28":[15.28,40.2],"6-56-29":[15.58,37.67],"6-56-30":[12.32,36.23],"6-56-31":[11.02,26.97],"6-56-32":[4.25,25.11],"6-56-33":[2.15,15.56],"6-56-34":[-2.11,11.93],"6-56-35":[-5.35,8.47],"6-56-36":[-7.16,4.11],"6-56-37":[-7.33,0.85],"6-56-38":[-8.48,0.68],"6-56-39":[-8.31,1.89],"6-56-40":[-4.64,8.4],"6-56-41":[2.15,16.04],"6-56-42":[6.23,22.14],"6-56-43":[9.62,30.63],"6-56-44":[15.59,36.65],"6-56-45":[16.37,40.5],"6-56-46":[18.42,43.37],"6-56-47":[18.42,44.13],"6-56-48":[18.16,43.98],"6-56-49":[18.16,41.79],"6-56-50":[20.3,41.65],"6-56-51":[20.3,42.33],"6-56-52":[17.44,40.96],"6-56-53":[15.9,41.96],"6-56-54":[9.77,33.92],"6-56-55":[6.16,19.63],"6-56-56":[1.72,12.29],"6-56-57":[-2.06,3.98],"6-56-58":[-5.82,819.33],"6-56-59":[421.04,1695.38],"6-56-60":[516.59,1629.01],"6-56-61":[1285.43,2172.84],"6-56-62":[2103.64,2379.92],"6-56-63":[-29.54,2746.48],"6-57-0":[13.6,37.8],"6-57-1":[19.62,55.09],"5-28-0":[13.6,55.73],"6-57-2":[25.6,59.23],"6-57-3":[28.3,1436.69],"5-28-1":[25.6,1529.13],"6-57-4":[28.3,681.94],"6-57-5":[38.01,949.92],"5-28-2":[28.03,1653.87],"6-57-6":[51.09,115.49],"6-57-7":[57.7,126.66],"5-28-3":[49.95,1002],"6-57-8":[62.46,1937.43],"6-57-9":[60.84,2123.62],"5-28-4":[60.84,2123.62],"6-57-10":[59.7,124.91],"6-57-11":[58.97,123.99],"5-28-5":[58.97,128.25],"6-57-12":[58.91,123.99],"6-57-13":[57.13,122.5],"5-28-6":[57.13,126.29],"6-57-14":[58.08,124.14],"6-57-15":[58.53,123],"5-28-7":[58.08,127.18],"6-57-16":[54.18,119.6],"6-57-17":[49.49,110.36],"5-28-8":[49.49,126.5],"6-57-18":[43.12,101.63],"6-57-19":[40.71,95.46],"5-28-9":[36.6,106.96],"6-57-20":[36.01,1880.85],"6-57-21":[32.18,2439.69],"5-28-10":[27.93,2439.69],"6-57-22":[30.53,1522.97],"6-57-23":[25.18,68.01],"5-28-11":[23.87,1522.97],"6-57-24":[-14.49,116.51],"6-57-25":[25.65,60.59],"5-28-12":[-14.49,116.51],"6-57-26":[1.56,171.48],"6-57-27":[18.28,57.96],"5-28-13":[1.56,171.48],"6-57-28":[17.32,53.31],"6-57-29":[17.61,43.04],"5-28-14":[15.28,53.31],"6-57-30":[14.23,37.19],"6-57-31":[11.87,33.41],"5-28-15":[11.02,37.19],"6-57-32":[8.76,34.41],"6-57-33":[6.71,26.59],"5-28-16":[2.15,34.41],"6-57-34":[4.93,24.73],"6-57-35":[2.81,19.54],"5-28-17":[-5.35,24.73],"6-57-36":[0.84,14.19],"6-57-37":[0.34,10.34],"5-28-18":[-7.33,14.19],"6-57-38":[-0.06,10.45],"6-57-39":[-0.17,10.33],"5-28-19":[-8.48,10.45],"6-57-40":[1.37,15.84],"6-57-41":[5.03,21.64],"5-28-20":[-4.64,21.64],"6-57-42":[8.34,26.94],"6-57-43":[11.9,34.46],"5-28-21":[6.23,34.46],"6-57-44":[15.59,40.42],"6-57-45":[18.81,45.89],"5-28-22":[15.59,45.89],"6-57-46":[20.61,49.37],"6-57-47":[22.02,50.19],"5-28-23":[18.42,50.19],"6-57-48":[21.38,50.16],"6-57-49":[20.47,48.13],"5-28-24":[18.16,50.16],"6-57-50":[20.4,45.48],"6-57-51":[20.34,44.16],"5-28-25":[20.3,45.48],"6-57-52":[19.71,42.18],"6-57-53":[15.9,42.48],"5-28-26":[15.9,42.48],"6-57-54":[9.16,31.18],"6-57-55":[6.21,18.19],"5-28-27":[6.16,33.92],"6-57-56":[2.3,13.36],"6-57-57":[0.42,11.7],"5-28-28":[-2.06,13.36],"6-57-58":[-1.9,1093.26],"6-57-59":[819.32,1811.71],"5-28-29":[-5.82,1811.71],"6-57-60":[814.02,1663.61],"6-57-61":[1522.35,2225.4],"5-28-30":[516.59,2225.4],"6-57-62":[2172.83,2420.8],"6-57-63":[-29.54,2746.48],"5-28-31":[-29.54,2746.48],"6-58-0":[13.6,37.78],"6-58-1":[19.71,53.62],"6-58-2":[25.56,61.94],"6-58-3":[29.9,345.15],"6-58-4":[30,79.45],"6-58-5":[38.66,105.36],"6-58-6":[50.37,116.37],"6-58-7":[58.46,124.92],"6-58-8":[60.43,1885.38],"6-58-9":[60.01,2140.58],"6-58-10":[58.42,121.69],"6-58-11":[57.73,123.87],"6-58-12":[56.63,123.87],"6-58-13":[57.04,123.14],"6-58-14":[55.87,119.28],"6-58-15":[55.11,118.34],"6-58-16":[50.41,118.05],"6-58-17":[47.21,106.08],"6-58-18":[45.73,104.94],"6-58-19":[42.88,99.37],"6-58-20":[28.43,1402.2],"6-58-21":[13.23,3730.85],"6-58-22":[29.84,1980.83],"6-58-23":[-10.67,745.87],"6-58-24":[-18.64,535.71],"6-58-25":[-14.6,356.34],"6-58-26":[-1.62,135.29],"6-58-27":[-20.7,301.55],"6-58-28":[0.18,458.6],"6-58-29":[18.93,63.46],"6-58-30":[15.77,41.91],"6-58-31":[13.35,38.21],"6-58-32":[13.47,38.21],"6-58-33":[12.71,33.98],"6-58-34":[-2.23,864.67],"6-58-35":[7.45,27.57],"6-58-36":[5.05,20.06],"6-58-37":[4.98,16.73],"6-58-38":[4.46,16.62],"6-58-39":[4.41,17.65],"6-58-40":[5.55,22.04],"6-58-41":[8.28,26.07],"6-58-42":[11.11,30.34],"6-58-43":[13.85,35.77],"6-58-44":[17.65,40.21],"6-58-45":[20.04,47.1],"6-58-46":[23.2,50.18],"6-58-47":[24.78,52.72],"6-58-48":[24.35,54.26],"6-58-49":[24.35,51.82],"6-58-50":[22.38,49.92],"6-58-51":[21.5,46.02],"6-58-52":[18.45,42.72],"6-58-53":[13.3,41.86],"6-58-54":[9.11,28.68],"6-58-55":[6.73,17.29],"6-58-56":[3.08,13.48],"6-58-57":[2.25,357.87],"6-58-58":[2.48,1674.63],"6-58-59":[1093.25,1949.57],"6-58-60":[1289.31,1790.34],"6-58-61":[1663.6,2289.94],"6-58-62":[2225.39,2460.86],"6-58-63":[-29.54,2746.48],"6-59-0":[13.6,37.79],"6-59-1":[19.8,52.18],"5-29-0":[13.6,53.62],"6-59-2":[25.75,63.75],"6-59-3":[30.49,64.24],"5-29-1":[25.56,345.15],"4-14-0":[13.6,1529.13],"6-59-4":[30.51,84.68],"6-59-5":[41.87,100.49],"5-29-2":[30,105.36],"6-59-6":[50.16,115.8],"6-59-7":[56.81,119.95],"5-29-3":[50.16,124.92],"4-14-1":[28.03,1653.87],"6-59-8":[57.71,1189.75],"6-59-9":[59.83,125.87],"5-29-4":[57.71,2140.58],"6-59-10":[55.41,120.74],"6-59-11":[54.59,121.48],"5-29-5":[54.59,123.87],"4-14-2":[54.59,2140.58],"6-59-12":[54.73,121.88],"6-59-13":[57.85,123],"5-29-6":[54.73,123.87],"6-59-14":[52.82,118.25],"6-59-15":[49.92,112.43],"5-29-7":[49.92,119.28],"4-14-3":[49.92,127.18],"6-59-16":[47.92,112.43],"6-59-17":[45.53,102.32],"5-29-8":[45.53,118.05],"6-59-18":[43.5,103.1],"6-59-19":[40.18,98.54],"5-29-9":[40.18,104.94],"4-14-4":[36.6,126.5],"6-59-20":[40.18,88.87],"6-59-21":[34.44,731.97],"5-29-10":[13.23,3730.85],"6-59-22":[-35.01,609.23],"6-59-23":[182.63,951.26],"5-29-11":[-35.01,1980.83],"4-14-5":[-35.01,3730.85],"6-59-24":[63.41,838.62],"6-59-25":[2.52,699.41],"5-29-12":[-18.64,838.62],"6-59-26":[4.84,480.98],"6-59-27":[22.18,1567.34],"5-29-13":[-20.7,1567.34],"4-14-6":[-20.7,1567.34],"6-59-28":[-24.77,1463.87],"6-59-29":[1.22,935.28],"5-29-14":[-24.77,1463.87],"6-59-30":[17.76,49.38],"6-59-31":[15.91,40.51],"5-29-15":[13.35,49.38],"4-14-7":[-24.77,1463.87],"6-59-32":[17.61,40.61],"6-59-33":[15.36,39.26],"5-29-16":[12.71,40.61],"6-59-34":[13.68,36.87],"6-59-35":[10.36,29.33],"5-29-17":[-2.23,864.67],"4-14-8":[-5.35,864.67],"6-59-36":[8.78,22.54],"6-59-37":[8.23,21.11],"5-29-18":[4.98,22.54],"6-59-38":[8.08,23.26],"6-59-39":[8.16,24.61],"5-29-19":[4.41,24.61],"4-14-9":[-8.48,24.61],"6-59-40":[9.22,25.8],"6-59-41":[11.68,28.54],"5-29-20":[5.55,28.54],"6-59-42":[13.34,31.4],"6-59-43":[15.33,35.12],"5-29-21":[11.11,35.77],"4-14-10":[-4.64,35.77],"6-59-44":[17.37,39.98],"6-59-45":[15,2060.11],"5-29-22":[15,2060.11],"6-59-46":[22.8,50.12],"6-59-47":[24.47,52.47],"5-29-23":[22.8,52.72],"4-14-11":[15,2060.11],"6-59-48":[25.92,55.19],"6-59-49":[25.17,55.91],"5-29-24":[24.35,55.91],"6-59-50":[23.47,53.48],"6-59-51":[21.5,49.06],"5-29-25":[21.5,53.48],"4-14-12":[18.16,55.91],"6-59-52":[18.45,44.55],"6-59-53":[13.3,39.12],"5-29-26":[13.3,44.55],"6-59-54":[8.95,26.98],"6-59-55":[6.73,17.28],"5-29-27":[6.73,28.68],"4-14-13":[6.16,44.55],"6-59-56":[4.68,14.62],"6-59-57":[4.84,608.1],"5-29-28":[2.25,608.1],"6-59-58":[10.52,2647.27],"6-59-59":[1580.6,2213.91],"5-29-29":[2.48,2647.27],"4-14-14":[-5.82,2647.27],"6-59-60":[1486.82,1899.59],"6-59-61":[1790.33,2337.34],"5-29-30":[1289.31,2337.34],"6-59-62":[2289.93,2494.91],"6-59-63":[-29.54,2746.48],"5-29-31":[-29.54,2746.48],"4-14-15":[-29.54,2746.48],"6-60-0":[13.6,37.78],"6-60-1":[19.82,52.11],"6-60-2":[26.07,63.8],"6-60-3":[31.53,68.91],"6-60-4":[32.12,88.61],"6-60-5":[43.35,100.59],"6-60-6":[50.16,660.73],"6-60-7":[54.73,115.86],"6-60-8":[55.53,123.35],"6-60-9":[56.93,123.85],"6-60-10":[54.77,119.67],"6-60-11":[36.3,467.08],"6-60-12":[54.66,847.15],"6-60-13":[31.72,1061.19],"6-60-14":[50.82,118.9],"6-60-15":[46.84,106.06],"6-60-16":[46.52,848.03],"6-60-17":[45.68,934.31],"6-60-18":[43.52,948.19],"6-60-19":[36.29,97.22],"6-60-20":[36.5,3428.78],"6-60-21":[36.12,3435.16],"6-60-22":[183.32,753.26],"6-60-23":[203.99,625.45],"6-60-24":[208.98,621.86],"6-60-25":[126.64,616.33],"6-60-26":[54.15,571.22],"6-60-27":[72.56,986.01],"6-60-28":[266.59,1965.58],"6-60-29":[-0.28,1465.14],"6-60-30":[10.1,448.45],"6-60-31":[17.88,41.59],"6-60-32":[19,40.1],"6-60-33":[17.4,38.62],"6-60-34":[14.28,36.87],"6-60-35":[11.08,29.16],"6-60-36":[9.95,23.09],"6-60-37":[10.09,23.78],"6-60-38":[10.53,25.27],"6-60-39":[11.82,25.49],"6-60-40":[12.34,27.11],"6-60-41":[13.01,29.48],"6-60-42":[14.24,30.5],"6-60-43":[15.07,32.66],"6-60-44":[15.81,38.1],"6-60-45":[18.29,45.5],"6-60-46":[6.47,931.45],"6-60-47":[23.42,51.85],"6-60-48":[24.91,56.45],"6-60-49":[26.78,56.31],"6-60-50":[24.85,54.12],"6-60-51":[23.88,51.29],"6-60-52":[18.84,47.16],"6-60-53":[13.07,37.45],"6-60-54":[8.97,27.21],"6-60-55":[7.29,18.18],"6-60-56":[6.69,18.97],"6-60-57":[8.72,1445.48],"6-60-58":[608.09,2647.27],"6-60-59":[1819.4,2378.63],"6-60-60":[1773.2,2084.27],"6-60-61":[1899.58,2371.33],"6-60-62":[2337.33,2524.96],"6-60-63":[-29.54,2746.49],"6-61-0":[13.6,37.76],"6-61-1":[19.78,52.5],"5-30-0":[13.6,52.5],"6-61-2":[26.07,61.81],"6-61-3":[29.91,75.45],"5-30-1":[26.07,75.45],"6-61-4":[34.23,88.45],"6-61-5":[43.49,100.68],"5-30-2":[32.12,100.68],"6-61-6":[49.89,2067.72],"6-61-7":[51.02,110.49],"5-30-3":[49.89,2067.72],"6-61-8":[51.94,113.62],"6-61-9":[52.94,792.85],"5-30-4":[51.94,792.85],"6-61-10":[54.18,472.86],"6-61-11":[40.34,998.82],"5-30-5":[36.3,998.82],"6-61-12":[47.75,911.33],"6-61-13":[45.76,978.67],"5-30-6":[31.72,1061.19],"6-61-14":[51.83,275.17],"6-61-15":[44.76,105.85],"5-30-7":[44.76,275.17],"6-61-16":[42.99,2441.8],"6-61-17":[63.03,2479.29],"5-30-8":[42.99,2479.29],"6-61-18":[21.6,1153.69],"6-61-19":[35.43,1045.54],"5-30-9":[21.6,1153.69],"6-61-20":[43.2,3969.25],"6-61-21":[321.36,3240.15],"5-30-10":[36.12,3969.25],"6-61-22":[327.42,538.03],"6-61-23":[228.84,581.24],"5-30-11":[183.32,753.26],"6-61-24":[207.9,518.07],"6-61-25":[135.48,456.49],"5-30-12":[126.64,621.86],"6-61-26":[189.7,487.98],"6-61-27":[282.45,725.34],"5-30-13":[54.15,986.01],"6-61-28":[245.42,1263.81],"6-61-29":[98.59,1793.46],"5-30-14":[-0.28,1965.58],"6-61-30":[9.64,563.59],"6-61-31":[17.84,40.64],"5-30-15":[9.64,563.59],"6-61-32":[18.11,39.27],"6-61-33":[16.27,37.52],"5-30-16":[16.27,40.1],"6-61-34":[14.28,34.25],"6-61-35":[11.71,28.84],"5-30-17":[11.08,36.87],"6-61-36":[11.3,28.82],"6-61-37":[-99.67,814.4],"5-30-18":[-99.67,814.4],"6-61-38":[11.9,26.07],"6-61-39":[12.45,26.9],"5-30-19":[10.53,26.9],"6-61-40":[12.64,30.04],"6-61-41":[13.85,32.62],"5-30-20":[12.34,32.62],"6-61-42":[14.87,32.51],"6-61-43":[15.14,33.46],"5-30-21":[14.24,33.46],"6-61-44":[15.81,36.25],"6-61-45":[17.74,44.2],"5-30-22":[15.81,45.5],"6-61-46":[21.26,47.29],"6-61-47":[22.24,50.55],"5-30-23":[6.47,931.45],"6-61-48":[24.62,53.23],"6-61-49":[25.06,55.27],"5-30-24":[24.62,56.45],"6-61-50":[26.01,56.2],"6-61-51":[23.88,54.1],"5-30-25":[23.88,56.2],"6-61-52":[17.85,50.82],"6-61-53":[13.07,35.17],"5-30-26":[13.07,50.82],"6-61-54":[9.42,26.81],"6-61-55":[7.57,20.65],"5-30-27":[7.29,27.21],"6-61-56":[7.48,20.76],"6-61-57":[10.04,2119.03],"5-30-28":[6.69,2119.03],"6-61-58":[1445.47,2720.05],"6-61-59":[2045.49,2519.15],"5-30-29":[608.09,2720.05],"6-61-60":[1905.59,2242.55],"6-61-61":[1958.12,2404.88],"5-30-30":[1773.2,2404.88],"6-61-62":[2371.32,2555.1],"6-61-63":[-29.54,2747.47],"5-30-31":[-29.54,2747.47],"6-62-0":[13.6,37.73],"6-62-1":[19.73,53.01],"6-62-2":[26.54,59.25],"6-62-3":[28.63,75.62],"6-62-4":[36.2,85.28],"6-62-5":[42.31,99.8],"6-62-6":[49.28,108.11],"6-62-7":[49.78,103.88],"6-62-8":[50.57,107.83],"6-62-9":[49.7,111.74],"6-62-10":[49.66,298.22],"6-62-11":[49.96,1388.09],"6-62-12":[41.71,1035.94],"6-62-13":[45.89,1109.06],"6-62-14":[20.27,639.9],"6-62-15":[44.39,219.03],"6-62-16":[32.45,2687.22],"6-62-17":[297.06,2577.79],"6-62-18":[44.23,3501.33],"6-62-19":[32.49,2419.81],"6-62-20":[632.45,3718.38],"6-62-21":[368.61,1721.06],"6-62-22":[218.45,696.4],"6-62-23":[131.07,471.46],"6-62-24":[138.86,407.06],"6-62-25":[256.95,487.53],"6-62-26":[239.52,1006.14],"6-62-27":[249.3,631.61],"6-62-28":[194.06,789.75],"6-62-29":[15.13,766.66],"6-62-30":[-46.15,332.62],"6-62-31":[17.31,38.68],"6-62-32":[17.52,38.48],"6-62-33":[15.74,36.14],"6-62-34":[14.55,33.16],"6-62-35":[12.03,28.93],"6-62-36":[12.1,28.82],"6-62-37":[12.83,26.82],"6-62-38":[12.65,28.5],"6-62-39":[13.05,31.28],"6-62-40":[13.65,34.28],"6-62-41":[15.43,36.13],"6-62-42":[16.17,36.67],"6-62-43":[16.17,37.77],"6-62-44":[16.2,37.77],"6-62-45":[16.2,40.32],"6-62-46":[17.78,44.64],"6-62-47":[19.75,49.26],"6-62-48":[22.32,50.13],"6-62-49":[23.73,54.94],"6-62-50":[26.51,56.37],"6-62-51":[24.74,55.65],"6-62-52":[17.74,50.79],"6-62-53":[13.06,33.87],"6-62-54":[10.42,25.96],"6-62-55":[9.91,22.36],"6-62-56":[8.78,20.96],"6-62-57":[10.28,2479.23],"6-62-58":[1813.36,2850.41],"6-62-59":[2242.54,2618.27],"6-62-60":[1991.4,2314.66],"6-62-61":[1993.14,2457.95],"6-62-62":[2404.87,2581.14],"6-62-63":[-29.54,2749.47],"6-63-0":[13.6,37.73],"6-63-1":[19.72,53.59],"5-31-0":[13.6,53.59],"6-63-2":[26.54,62.24],"6-63-3":[28.85,73.73],"5-31-1":[26.54,75.62],"4-15-0":[13.6,75.62],"6-63-4":[35.88,86.28],"6-63-5":[42.26,98.34],"5-31-2":[35.88,99.8],"6-63-6":[48.49,104.24],"6-63-7":[48.27,101.1],"5-31-3":[48.27,108.11],"4-15-1":[32.12,2067.72],"3-7-0":[13.6,2067.72],"6-63-8":[48.82,103.66],"6-63-9":[48.93,103.55],"5-31-4":[48.82,111.74],"6-63-10":[46.96,500.18],"6-63-11":[46.68,821.88],"5-31-5":[46.68,1388.09],"4-15-2":[36.3,1388.09],"6-63-12":[-1.23,942.82],"6-63-13":[5.01,686.85],"5-31-6":[-1.23,1109.06],"6-63-14":[29.66,466.81],"6-63-15":[17.32,332.21],"5-31-7":[17.32,639.9],"4-15-3":[-1.23,1109.06],"3-7-1":[-1.23,2140.58],"2-3-0":[-226.59,3982.86],"6-63-16":[16.62,3299.64],"6-63-17":[40.73,2357.66],"5-31-8":[16.62,3299.64],"6-63-18":[40.99,2423.37],"6-63-19":[45.96,1802.73],"5-31-9":[32.49,3501.33],"4-15-4":[16.62,3501.33],"6-63-20":[585.28,2177.76],"6-63-21":[198.79,856.94],"5-31-10":[198.79,3718.38],"6-63-22":[154.1,519.6],"6-63-23":[95.92,407.48],"5-31-11":[95.92,696.4],"4-15-5":[36.12,3969.25],"3-7-2":[-35.01,3969.25],"6-63-24":[189.24,556.84],"6-63-25":[243.53,577.03],"5-31-12":[138.86,577.03],"6-63-26":[242.09,1303.84],"6-63-27":[216.62,572.26],"5-31-13":[216.62,1303.84],"4-15-6":[54.15,1303.84],"6-63-28":[63.8,555.42],"6-63-29":[21.37,874.92],"5-31-14":[15.13,874.92],"6-63-30":[-6.39,370.77],"6-63-31":[16.48,36.2],"5-31-15":[-46.15,370.77],"4-15-7":[-46.15,1965.58],"3-7-3":[-46.15,1965.58],"2-3-1":[-65.14,3969.25],"1-1-0":[-328.06,5809.48],"6-63-32":[17.15,36.78],"6-63-33":[16.29,37.08],"5-31-16":[15.74,38.48],"6-63-34":[12.34,34.98],"6-63-35":[10.7,28.64],"5-31-17":[10.7,34.98],"4-15-8":[10.7,40.1],"6-63-36":[11.05,26.16],"6-63-37":[12.72,29.22],"5-31-18":[11.05,29.22],"6-63-38":[13.43,32.73],"6-63-39":[14.75,35.32],"5-31-19":[12.65,35.32],"4-15-9":[-99.67,814.4],"3-7-4":[-99.67,864.67],"6-63-40":[15.89,39.67],"6-63-41":[17.66,41.82],"5-31-20":[13.65,41.82],"6-63-42":[18.18,43.48],"6-63-43":[17.22,42.55],"5-31-21":[16.17,43.48],"4-15-10":[12.34,43.48],"6-63-44":[15.94,39.03],"6-63-45":[15.92,35.62],"5-31-22":[15.92,40.32],"6-63-46":[17.78,43.75],"6-63-47":[19.65,46.9],"5-31-23":[17.78,49.26],"4-15-11":[6.47,931.45],"3-7-5":[-4.64,2060.11],"2-3-2":[-170.49,2863.35],"6-63-48":[22.32,46.83],"6-63-49":[23.17,52.87],"5-31-24":[22.32,54.94],"6-63-50":[25.95,55.44],"6-63-51":[24.74,55.59],"5-31-25":[24.74,56.37],"4-15-12":[22.32,56.45],"6-63-52":[17.56,49.36],"6-63-53":[13.06,33.43],"5-31-26":[13.06,50.79],"6-63-54":[11.45,27.14],"6-63-55":[10.4,26.46],"5-31-27":[9.91,27.14],"4-15-13":[7.29,50.82],"3-7-6":[6.16,56.45],"6-63-56":[8.78,27.93],"6-63-57":[10.28,2064.74],"5-31-28":[8.78,2479.23],"6-63-58":[6.29,2924.47],"6-63-59":[-4.17,2804.3],"5-31-29":[-4.17,2924.47],"4-15-14":[-4.17,2924.47],"6-63-60":[-10.23,2430.85],"6-63-61":[-15.15,2498.87],"5-31-30":[-15.15,2498.87],"6-63-62":[-22.79,2597.05],"6-63-63":[-29.54,2749.47],"5-31-31":[-29.54,2749.47],"4-15-15":[-29.54,2749.47],"3-7-7":[-29.54,2924.47],"2-3-3":[-47.53,2924.47],"1-1-1":[-269.44,6969.13],"0-0-0":[-328.06,6969.13],"6-64-0":[13.6,37.78],"6-64-1":[19.72,53.59],"6-64-2":[26.6,62.89],"6-64-3":[31.41,76.27],"6-64-4":[36.86,86.28],"6-64-5":[42.7,96.99],"6-64-6":[47,101.29],"6-64-7":[46.73,97.64],"6-64-8":[45.83,101.59],"6-64-9":[45.04,100.52],"6-64-10":[45.18,100.56],"6-64-11":[44.21,95.58],"6-64-12":[41.57,93.35],"6-64-13":[34.37,320.14],"6-64-14":[39.88,478.36],"6-64-15":[62.72,1880.44],"6-64-16":[53.23,3439.27],"6-64-17":[36.39,2431.2],"6-64-18":[43.43,942.66],"6-64-19":[44.68,1847.74],"6-64-20":[490.98,1993.84],"6-64-21":[201.86,739.39],"6-64-22":[138.19,750.53],"6-64-23":[240.33,1166.19],"6-64-24":[334.09,962.42],"6-64-25":[276.69,863.32],"6-64-26":[184.15,556.46],"6-64-27":[168.62,439.96],"6-64-28":[61.71,880.1],"6-64-29":[-17.91,1022.44],"6-64-30":[14.82,41.3],"6-64-31":[15.22,34.38],"6-64-32":[16.21,36.77],"6-64-33":[11.49,36.62],"6-64-34":[9.51,33.23],"6-64-35":[9.43,23.73],"6-64-36":[10.62,24.95],"6-64-37":[12.53,29.78],"6-64-38":[14.73,33.26],"6-64-39":[16.29,40.92],"6-64-40":[19.97,44.49],"6-64-41":[19.97,48.03],"6-64-42":[20.9,49.27],"6-64-43":[20.23,48.27],"6-64-44":[16.76,40.95],"6-64-45":[16.76,37.18],"6-64-46":[18.63,43.85],"6-64-47":[20.07,44.45],"6-64-48":[21.17,45.85],"6-64-49":[22.33,51.91],"6-64-50":[24.99,54.93],"6-64-51":[23.66,55.36],"6-64-52":[17.25,48.1],"6-64-53":[13.73,33.44],"6-64-54":[13.39,34.01],"6-64-55":[11.02,33.97],"6-64-56":[10.25,28.87],"6-64-57":[11.81,2706.61],"6-64-58":[6.29,2970.03],"6-64-59":[-4.17,2947.12],"6-64-60":[-10.23,2543.75],"6-64-61":[-15.15,2526.16],"6-64-62":[-22.79,2618.03],"6-64-63":[-29.54,2752.45],"6-65-0":[13.6,37.81],"6-65-1":[19.76,53.09],"5-32-0":[13.6,53.59],"6-65-2":[26.31,62.46],"6-65-3":[31.01,77.1],"5-32-1":[26.31,77.1],"6-65-4":[38.18,84.8],"6-65-5":[42.64,95.66],"5-32-2":[36.86,96.99],"6-65-6":[44.99,96.88],"6-65-7":[43.49,94.7],"5-32-3":[43.49,101.29],"6-65-8":[42.8,94.18],"6-65-9":[35.63,935.72],"5-32-4":[35.63,935.72],"6-65-10":[20.82,1428.23],"6-65-11":[40.95,136.3],"5-32-5":[20.82,1428.23],"6-65-12":[36.37,88.77],"6-65-13":[-46.66,286.33],"5-32-6":[-46.66,320.14],"6-65-14":[-132.68,643.32],"6-65-15":[137.99,2274.24],"5-32-7":[-132.68,2274.24],"6-65-16":[38.05,2373.31],"6-65-17":[38.96,1377.73],"5-32-8":[36.39,3439.27],"6-65-18":[41.7,1623.57],"6-65-19":[89.48,2161.99],"5-32-9":[41.7,2161.99],"6-65-20":[100.21,941.46],"6-65-21":[185.69,739.39],"5-32-10":[100.21,1993.84],"6-65-22":[257.46,1758.12],"6-65-23":[380.48,2914.18],"5-32-11":[138.19,2914.18],"6-65-24":[426.07,1308.02],"6-65-25":[280.09,733.03],"5-32-12":[276.69,1308.02],"6-65-26":[222.19,683.02],"6-65-27":[143.28,527.99],"5-32-13":[143.28,683.02],"6-65-28":[62.64,650.86],"6-65-29":[-15.66,1095.61],"5-32-14":[-17.91,1095.61],"6-65-30":[-13.75,66.62],"6-65-31":[14.48,33.9],"5-32-15":[-13.75,66.62],"6-65-32":[-19.14,391.88],"6-65-33":[8.66,29.85],"5-32-16":[-19.14,391.88],"6-65-34":[8.35,21.97],"6-65-35":[8.94,22.61],"5-32-17":[8.35,33.23],"6-65-36":[10.62,25.98],"6-65-37":[12.58,30.79],"5-32-18":[10.62,30.79],"6-65-38":[14.93,37.7],"6-65-39":[17.15,49.91],"5-32-19":[14.73,49.91],"6-65-40":[20.87,54.91],"6-65-41":[22.64,56],"5-32-20":[19.97,56],"6-65-42":[22.51,51.03],"6-65-43":[20.23,46.2],"5-32-21":[20.23,51.03],"6-65-44":[17.99,42.51],"6-65-45":[17.84,41.99],"5-32-22":[16.76,42.51],"6-65-46":[18.63,42.48],"6-65-47":[19.73,46.07],"5-32-23":[18.63,46.07],"6-65-48":[21.17,46.4],"6-65-49":[22.33,50.98],"5-32-24":[21.17,51.91],"6-65-50":[24.64,53.8],"6-65-51":[11.85,778.86],"5-32-25":[11.85,778.86],"6-65-52":[17.24,47.71],"6-65-53":[14.74,34.75],"5-32-26":[13.73,48.1],"6-65-54":[14.81,35.37],"6-65-55":[11.99,34.42],"5-32-27":[11.02,35.37],"6-65-56":[10.65,29.79],"6-65-57":[13.9,3054.91],"5-32-28":[10.25,3054.91],"6-65-58":[2706.6,3100.96],"6-65-59":[2543.75,3103.71],"5-32-29":[-4.17,3103.71],"6-65-60":[2255.43,2692.57],"6-65-61":[2248.98,2548.45],"5-32-30":[-15.15,2692.57],"6-65-62":[2526.15,2639.22],"6-65-63":[-29.54,2753.44],"5-32-31":[-29.54,2753.44],"6-66-0":[13.6,37.83],"6-66-1":[19.78,52.14],"6-66-2":[25.64,63.1],"6-66-3":[31.05,77.42],"6-66-4":[38.55,84.66],"6-66-5":[41.57,92.58],"6-66-6":[43.18,93.1],"6-66-7":[40.62,90.09],"6-66-8":[40.54,87.08],"6-66-9":[20.94,2049.01],"6-66-10":[19.29,2462.53],"6-66-11":[4.23,1233.38],"6-66-12":[30.98,117],"6-66-13":[-180.54,876.36],"6-66-14":[90.73,1537.53],"6-66-15":[147.78,4840.9],"6-66-16":[39.23,4069.35],"6-66-17":[43.9,838.48],"6-66-18":[39.99,1553.78],"6-66-19":[-16.37,2250.36],"6-66-20":[30.28,336.76],"6-66-21":[186.56,611.03],"6-66-22":[377.14,1857.82],"6-66-23":[773.49,2746.4],"6-66-24":[408.81,1769.87],"6-66-25":[324.43,1672.93],"6-66-26":[317.13,774.79],"6-66-27":[281.36,874.43],"6-66-28":[46.87,1294.91],"6-66-29":[5.32,816.36],"6-66-30":[-26.99,431.08],"6-66-31":[-28.03,2007.45],"6-66-32":[7.57,607.86],"6-66-33":[6.06,24.36],"6-66-34":[7.09,17.3],"6-66-35":[8.79,26.37],"6-66-36":[11.61,28.98],"6-66-37":[13.1,31.91],"6-66-38":[15.69,39.68],"6-66-39":[19.55,50.83],"6-66-40":[22.63,56.5],"6-66-41":[24.02,57.13],"6-66-42":[22.8,49.96],"6-66-43":[22.8,49.11],"6-66-44":[20.77,46.17],"6-66-45":[20.77,46.35],"6-66-46":[21.39,48.2],"6-66-47":[21.39,49.68],"6-66-48":[23.35,51.88],"6-66-49":[23.35,52.26],"6-66-50":[25.43,54.25],"6-66-51":[21.38,55.21],"6-66-52":[17.56,44.14],"6-66-53":[17.56,39.22],"6-66-54":[17.07,39.22],"6-66-55":[14.68,33.84],"6-66-56":[12.76,30.48],"6-66-57":[13.3,3138.57],"6-66-58":[3003.04,3267.05],"6-66-59":[2692.56,3207.22],"6-66-60":[2381.28,2800.27],"6-66-61":[2355.2,2565.62],"6-66-62":[2548.44,2666.15],"6-66-63":[-29.54,2755.44],"6-67-0":[13.6,37.79],"6-67-1":[19.71,51.23],"5-33-0":[13.6,52.14],"6-67-2":[25.62,63.16],"6-67-3":[30.33,786.22],"5-33-1":[25.62,786.22],"4-16-0":[13.6,786.22],"6-67-4":[37.26,946.45],"6-67-5":[39.53,88.35],"5-33-2":[37.26,946.45],"6-67-6":[40.82,88.5],"6-67-7":[39.27,85.5],"5-33-3":[39.27,93.1],"4-16-1":[36.86,946.45],"6-67-8":[31.58,197.75],"6-67-9":[20.72,2315.19],"5-33-4":[20.72,2315.19],"6-67-10":[28.83,2472.36],"6-67-11":[32.5,847.8],"5-33-5":[4.23,2472.36],"4-16-2":[4.23,2472.36],"6-67-12":[-50.52,217.69],"6-67-13":[33.14,1186.21],"5-33-6":[-180.54,1186.21],"6-67-14":[128.81,1069.93],"6-67-15":[40.08,4029.26],"5-33-7":[40.08,4840.9],"4-16-3":[-180.54,4840.9],"6-67-16":[38.15,2694.01],"6-67-17":[43.45,2374.38],"5-33-8":[38.15,4069.35],"6-67-18":[34.1,1143.75],"6-67-19":[27.14,1413.3],"5-33-9":[-16.37,2250.36],"4-16-4":[-16.37,4069.35],"6-67-20":[23.52,728.47],"6-67-21":[219.62,762.97],"5-33-10":[23.52,762.97],"6-67-22":[420.92,1483.6],"6-67-23":[607.73,1924.9],"5-33-11":[377.14,2746.4],"4-16-5":[23.52,2914.18],"6-67-24":[396.41,1977.29],"6-67-25":[374.52,2023.83],"5-33-12":[324.43,2023.83],"6-67-26":[327.64,714.89],"6-67-27":[323.67,784.44],"5-33-13":[281.36,874.43],"4-16-6":[143.28,2023.83],"6-67-28":[100.15,1784.96],"6-67-29":[31.38,3028.39],"5-33-14":[5.32,3028.39],"6-67-30":[-10.88,4049.43],"6-67-31":[-22.22,1231.48],"5-33-15":[-28.03,4049.43],"4-16-7":[-28.03,4049.43],"6-67-32":[-63.62,953.44],"6-67-33":[-6.6,932.44],"5-33-16":[-63.62,953.44],"6-67-34":[7.15,22.92],"6-67-35":[9.03,31.46],"5-33-17":[7.09,31.46],"4-16-8":[-63.62,953.44],"6-67-36":[13.46,35.43],"6-67-37":[14.74,42.09],"5-33-18":[11.61,42.09],"6-67-38":[16.09,47],"6-67-39":[20.85,47.74],"5-33-19":[15.69,50.83],"4-16-9":[10.62,50.83],"6-67-40":[22.3,48.5],"6-67-41":[23.96,51.6],"5-33-20":[22.3,57.13],"6-67-42":[24.8,52.66],"6-67-43":[23.02,51.42],"5-33-21":[22.8,52.66],"4-16-10":[19.97,57.13],"6-67-44":[22.69,50.41],"6-67-45":[22.33,50.5],"5-33-22":[20.77,50.5],"6-67-46":[22.35,53.75],"6-67-47":[24.22,55.21],"5-33-23":[21.39,55.21],"4-16-11":[16.76,55.21],"6-67-48":[24.66,54.21],"6-67-49":[23.85,53.66],"5-33-24":[23.35,54.21],"6-67-50":[25.43,58.28],"6-67-51":[21.38,55.28],"5-33-25":[21.38,58.28],"4-16-12":[11.85,778.86],"6-67-52":[18.43,43.35],"6-67-53":[18.43,44.37],"5-33-26":[17.56,44.37],"6-67-54":[17.07,44.32],"6-67-55":[14.72,36.1],"5-33-27":[14.68,44.32],"4-16-13":[11.02,48.1],"6-67-56":[12.67,32.07],"6-67-57":[11.97,3175.51],"5-33-28":[11.97,3175.51],"6-67-58":[3138.56,3414.15],"6-67-59":[2800.26,3300.16],"5-33-29":[2692.56,3414.15],"4-16-14":[-4.17,3414.15],"6-67-60":[2458.67,2920.73],"6-67-61":[2439.79,2579.65],"5-33-30":[2355.2,2920.73],"6-67-62":[2565.61,2681.47],"6-67-63":[-29.54,2759.37],"5-33-31":[-29.54,2759.37],"4-16-15":[-29.54,2920.73],"6-68-0":[13.6,37.69],"6-68-1":[19.57,50.91],"6-68-2":[25.25,62.3],"6-68-3":[29.49,1385.65],"6-68-4":[33.18,1035.73],"6-68-5":[38.99,85.09],"6-68-6":[39.15,85.09],"6-68-7":[15.05,1058.54],"6-68-8":[9.73,1750.98],"6-68-9":[19.45,1810.17],"6-68-10":[36.63,1715.33],"6-68-11":[31.96,400.65],"6-68-12":[-23.11,248.2],"6-68-13":[-7.79,988.47],"6-68-14":[94.57,1845.84],"6-68-15":[33.77,3777.17],"6-68-16":[31.24,2893.68],"6-68-17":[26.5,2503.27],"6-68-18":[-23.32,2005.15],"6-68-19":[31.76,209.56],"6-68-20":[27.57,965.23],"6-68-21":[218.9,1068.73],"6-68-22":[308.04,1178.67],"6-68-23":[533.61,1310.69],"6-68-24":[378.5,1156.09],"6-68-25":[344.83,602.11],"6-68-26":[267.07,715.39],"6-68-27":[261.24,609.87],"6-68-28":[128.64,1857.59],"6-68-29":[216.86,2461.39],"6-68-30":[390.81,1585.63],"6-68-31":[140.91,1076.94],"6-68-32":[52.66,1044.68],"6-68-33":[-17.85,885.8],"6-68-34":[-25.08,923.81],"6-68-35":[-3.35,613.65],"6-68-36":[-2.05,2521.11],"6-68-37":[-19.61,2407.1],"6-68-38":[-21.61,2094.46],"6-68-39":[-59.49,1680.35],"6-68-40":[23.13,60.77],"6-68-41":[24.24,62.61],"6-68-42":[25.75,60.9],"6-68-43":[25.75,56.47],"6-68-44":[24.76,52.16],"6-68-45":[24.76,57.31],"6-68-46":[26.02,57.32],"6-68-47":[26.76,56.45],"6-68-48":[26.26,55.86],"6-68-49":[26.26,59.36],"6-68-50":[26.82,62.99],"6-68-51":[23.62,56.76],"6-68-52":[20.02,46.58],"6-68-53":[20.02,47.69],"6-68-54":[18.37,47.1],"6-68-55":[15.04,38.61],"6-68-56":[12.83,47.95],"6-68-57":[11.4,3169.81],"6-68-58":[3108.39,3460.36],"6-68-59":[2920.72,3384.4],"6-68-60":[2494.45,3077.24],"6-68-61":[2482.53,2588.56],"6-68-62":[2579.64,2693.73],"6-68-63":[-29.54,2763.36],"6-69-0":[13.6,37.44],"6-69-1":[19.4,50.44],"5-34-0":[13.6,50.91],"6-69-2":[25.03,60.03],"6-69-3":[29.14,1634.3],"5-34-1":[25.03,1634.3],"6-69-4":[31.42,1233.17],"6-69-5":[35.11,82.7],"5-34-2":[31.42,1233.17],"6-69-6":[35.26,81.82],"6-69-7":[6.63,1592.64],"5-34-3":[6.63,1592.64],"6-69-8":[4.87,1958.98],"6-69-9":[47.04,1310.43],"5-34-4":[4.87,1958.98],"6-69-10":[25.33,797.68],"6-69-11":[26.18,411.97],"5-34-5":[25.33,1715.33],"6-69-12":[19.39,280.51],"6-69-13":[17.14,1624.81],"5-34-6":[-23.11,1624.81],"6-69-14":[154.38,1918.97],"6-69-15":[39.77,2548.59],"5-34-7":[33.77,3777.17],"6-69-16":[16.47,1992.85],"6-69-17":[37.95,2820.36],"5-34-8":[16.47,2893.68],"6-69-18":[29.13,3340.97],"6-69-19":[28.62,288.67],"5-34-9":[-23.32,3340.97],"6-69-20":[9.01,392.95],"6-69-21":[69.58,877.11],"5-34-10":[9.01,1068.73],"6-69-22":[310.38,889.96],"6-69-23":[406.17,1202.42],"5-34-11":[308.04,1310.69],"6-69-24":[27.24,3331.17],"6-69-25":[184,850],"5-34-12":[27.24,3331.17],"6-69-26":[148.07,439.62],"6-69-27":[260.59,551.37],"5-34-13":[148.07,715.39],"6-69-28":[213.54,1124.79],"6-69-29":[275.12,1747.94],"5-34-14":[128.64,2461.39],"6-69-30":[354.28,1070.44],"6-69-31":[276.49,830.16],"5-34-15":[140.91,1585.63],"6-69-32":[252.96,879.81],"6-69-33":[167.87,929.4],"5-34-16":[-17.85,1044.68],"6-69-34":[256.14,1488.2],"6-69-35":[12.55,2127.16],"5-34-17":[-25.08,2127.16],"6-69-36":[166.21,2639.31],"6-69-37":[859.22,2023.5],"5-34-18":[-19.61,2639.31],"6-69-38":[730.14,1749.24],"6-69-39":[10.84,2585.59],"5-34-19":[-59.49,2585.59],"6-69-40":[-162.31,2386.26],"6-69-41":[-159.88,2015.68],"5-34-20":[-162.31,2386.26],"6-69-42":[18.98,704.83],"6-69-43":[26.09,62.3],"5-34-21":[18.98,704.83],"6-69-44":[25.43,58.48],"6-69-45":[25.82,55.17],"5-34-22":[24.76,58.48],"6-69-46":[26.02,58.49],"6-69-47":[27.55,60.1],"5-34-23":[26.02,60.1],"6-69-48":[27.02,60.61],"6-69-49":[27.99,64.2],"5-34-24":[26.26,64.2],"6-69-50":[29.22,67.45],"6-69-51":[23.62,62.15],"5-34-25":[23.62,67.45],"6-69-52":[21.62,53.1],"6-69-53":[22.44,49.65],"5-34-26":[20.02,53.1],"6-69-54":[19.27,47.76],"6-69-55":[15.24,39.44],"5-34-27":[15.04,47.76],"6-69-56":[14.46,300.15],"6-69-57":[14.89,3108.4],"5-34-28":[11.4,3169.81],"6-69-58":[3052.07,3514.26],"6-69-59":[3077.23,3446.22],"5-34-29":[2920.72,3514.26],"6-69-60":[2544.2,3147.37],"6-69-61":[2511.13,2608.3],"5-34-30":[2482.53,3147.37],"6-69-62":[2588.55,2704.02],"6-69-63":[-29.54,2767.34],"5-34-31":[-29.54,2767.34],"6-70-0":[13.6,37.16],"6-70-1":[19.22,49.87],"6-70-2":[24.52,56.84],"6-70-3":[28.6,1635.74],"6-70-4":[29.16,1193.37],"6-70-5":[30.17,441.82],"6-70-6":[29.72,72.1],"6-70-7":[12.72,2122.75],"6-70-8":[199.39,2096.53],"6-70-9":[20.3,735.36],"6-70-10":[18.93,350.95],"6-70-11":[-25.11,119.82],"6-70-12":[22.14,358.72],"6-70-13":[35.6,462.61],"6-70-14":[142.49,2057.45],"6-70-15":[100,1043.38],"6-70-16":[27.8,2489.77],"6-70-17":[24.67,2049.01],"6-70-18":[22.69,753.24],"6-70-19":[22.41,59.3],"6-70-20":[23.96,142.33],"6-70-21":[-25.04,490.94],"6-70-22":[198.02,1063.16],"6-70-23":[343.56,1540.59],"6-70-24":[27.16,3468.04],"6-70-25":[108.1,1729.27],"6-70-26":[121.91,428.48],"6-70-27":[274.16,1624.07],"6-70-28":[322.1,1063.08],"6-70-29":[354.64,767.3],"6-70-30":[305.29,833.8],"6-70-31":[254.18,533.95],"6-70-32":[223.98,448.91],"6-70-33":[192.31,886.28],"6-70-34":[403.12,1242.7],"6-70-35":[605.84,1757.04],"6-70-36":[1116.78,1831.76],"6-70-37":[1104.79,1687.18],"6-70-38":[1028.6,2162.84],"6-70-39":[1184.99,2171.43],"6-70-40":[1018.03,2505.72],"6-70-41":[47.81,2222.4],"6-70-42":[7.61,1720.53],"6-70-43":[18.25,2268.67],"6-70-44":[2.17,2017.39],"6-70-45":[26.72,58.31],"6-70-46":[27.58,59.46],"6-70-47":[29.09,64.51],"6-70-48":[29.91,64.57],"6-70-49":[29.84,67.11],"6-70-50":[31.81,70.73],"6-70-51":[27.49,66.41],"6-70-52":[24.04,57.39],"6-70-53":[24.04,50.76],"6-70-54":[19.07,48.88],"6-70-55":[15.38,38.05],"6-70-56":[14,268.92],"6-70-57":[15.56,3052.08],"6-70-58":[2944.42,3536.78],"6-70-59":[3147.36,3480.29],"6-70-60":[2608.29,3239.33],"6-70-61":[2539.62,2709.23],"6-70-62":[2602.1,2724.91],"6-70-63":[-29.54,2768.65],"6-71-0":[13.6,36.76],"6-71-1":[19.1,48.94],"5-35-0":[13.6,49.87],"6-71-2":[24.15,54.01],"6-71-3":[27.72,709.89],"5-35-1":[24.15,1635.74],"4-17-0":[13.6,1635.74],"6-71-4":[28.01,684.19],"6-71-5":[27.24,62.75],"5-35-2":[27.24,1193.37],"6-71-6":[19.67,948.29],"6-71-7":[4.84,1854.14],"5-35-3":[4.84,2122.75],"4-17-1":[4.84,2122.75],"3-8-0":[4.84,2122.75],"6-71-8":[19.05,851.76],"6-71-9":[17.77,511.56],"5-35-4":[17.77,2096.53],"6-71-10":[17.31,158.69],"6-71-11":[17.94,214.15],"5-35-5":[-25.11,350.95],"4-17-2":[-25.11,2096.53],"6-71-12":[11.89,342.67],"6-71-13":[80.4,644.43],"5-35-6":[11.89,644.43],"6-71-14":[118.41,2648.45],"6-71-15":[68.74,1842.42],"5-35-7":[68.74,2648.45],"4-17-3":[-23.11,3777.17],"3-8-1":[-180.54,4840.9],"6-71-16":[65.18,2700.03],"6-71-17":[23.06,2930.53],"5-35-8":[23.06,2930.53],"6-71-18":[13.5,2524.92],"6-71-19":[8.99,1090.39],"5-35-9":[8.99,2524.92],"4-17-4":[-23.32,3340.97],"6-71-20":[18.37,903.81],"6-71-21":[-31.98,311.99],"5-35-10":[-31.98,903.81],"6-71-22":[94.19,388.14],"6-71-23":[273.49,1038.12],"5-35-11":[94.19,1540.59],"4-17-5":[-31.98,1540.59],"3-8-2":[-31.98,4069.35],"6-71-24":[452.55,932.86],"6-71-25":[308.29,1368.77],"5-35-12":[27.16,3468.04],"6-71-26":[326.68,1327.69],"6-71-27":[373.83,1212.84],"5-35-13":[121.91,1624.07],"4-17-6":[27.16,3468.04],"6-71-28":[371.4,934.47],"6-71-29":[382.62,935.02],"5-35-14":[322.1,1063.08],"6-71-30":[291.34,761.73],"6-71-31":[282.28,549.06],"5-35-15":[254.18,833.8],"4-17-7":[128.64,2461.39],"3-8-3":[-28.03,4049.43],"6-71-32":[271.34,592.5],"6-71-33":[253.5,758.09],"5-35-16":[192.31,886.28],"6-71-34":[404.13,1099.25],"6-71-35":[753.17,1385.35],"5-35-17":[403.12,1757.04],"4-17-8":[-25.08,2127.16],"6-71-36":[1050.78,1507.74],"6-71-37":[1011.55,1380.25],"5-35-18":[1011.55,1831.76],"6-71-38":[960.55,1371.66],"6-71-39":[940.67,1497.56],"5-35-19":[940.67,2171.43],"4-17-9":[-59.49,2639.31],"3-8-4":[-63.62,2639.31],"6-71-40":[991.87,1399.38],"6-71-41":[722.23,1582.99],"5-35-20":[47.81,2505.72],"6-71-42":[427.66,1667.49],"6-71-43":[142.44,2341.81],"5-35-21":[7.61,2341.81],"4-17-10":[-162.31,2505.72],"6-71-44":[-5.94,1732.68],"6-71-45":[27.22,59.84],"5-35-22":[-5.94,2017.39],"6-71-46":[29.17,63.24],"6-71-47":[30.14,66.91],"5-35-23":[27.58,66.91],"4-17-11":[-5.94,2017.39],"3-8-5":[-162.31,2505.72],"6-71-48":[31.75,66.91],"6-71-49":[32.11,69.56],"5-35-24":[29.84,69.56],"6-71-50":[33.7,73.57],"6-71-51":[28.8,72.3],"5-35-25":[27.49,73.57],"4-17-12":[23.62,73.57],"6-71-52":[25.57,60.85],"6-71-53":[24.42,53.17],"5-35-26":[24.04,60.85],"6-71-54":[19.18,48.85],"6-71-55":[15.38,38.12],"5-35-27":[15.38,48.88],"4-17-13":[15.04,60.85],"3-8-6":[11.02,778.86],"6-71-56":[14.98,187.97],"6-71-57":[15.79,2944.43],"5-35-28":[14,3052.08],"6-71-58":[2840.08,3600.93],"6-71-59":[3239.32,3598.47],"5-35-29":[2840.08,3600.93],"4-17-14":[11.4,3600.93],"6-71-60":[2709.22,3295.33],"6-71-61":[2568.24,2810.96],"5-35-30":[2539.62,3295.33],"6-71-62":[2621.33,2751.92],"6-71-63":[-29.54,2771.32],"5-35-31":[-29.54,2771.32],"4-17-15":[-29.54,3295.33],"3-8-7":[-29.54,3600.93],"6-72-0":[13.6,36.49],"6-72-1":[19.01,48.14],"6-72-2":[23.6,52.85],"6-72-3":[25.14,753.17],"6-72-4":[25.05,528.08],"6-72-5":[22.7,56.98],"6-72-6":[22.55,1086.58],"6-72-7":[21.13,1167.12],"6-72-8":[17.66,435.24],"6-72-9":[17.52,286.65],"6-72-10":[15.17,241.92],"6-72-11":[12.2,275.13],"6-72-12":[29.06,318.56],"6-72-13":[28.38,382.74],"6-72-14":[135.43,1998.12],"6-72-15":[147.15,2540.92],"6-72-16":[49.82,2847.57],"6-72-17":[30.85,2950.99],"6-72-18":[21.06,2427.62],"6-72-19":[7.76,2464.23],"6-72-20":[7.73,425.6],"6-72-21":[-11.66,284.94],"6-72-22":[88.27,639.17],"6-72-23":[289.98,1107.43],"6-72-24":[470.56,1912.86],"6-72-25":[498.02,1340.77],"6-72-26":[593.56,1710.7],"6-72-27":[454.32,3017.52],"6-72-28":[444.14,1371.36],"6-72-29":[477.29,1047.83],"6-72-30":[352.38,768.89],"6-72-31":[319.72,630.52],"6-72-32":[322.07,733.63],"6-72-33":[332.54,807.65],"6-72-34":[430.54,1119.46],"6-72-35":[723.96,1534.31],"6-72-36":[1022.28,1643.41],"6-72-37":[961.73,1249.5],"6-72-38":[916.89,1116.92],"6-72-39":[892.54,1255.26],"6-72-40":[958.51,1498.79],"6-72-41":[975.82,1901.6],"6-72-42":[928.72,1783.15],"6-72-43":[77.74,2501.84],"6-72-44":[12.69,1649.02],"6-72-45":[28,66.27],"6-72-46":[29.82,70.25],"6-72-47":[32.16,68.24],"6-72-48":[32.45,66.93],"6-72-49":[32.5,71.41],"6-72-50":[34.78,76.35],"6-72-51":[30.32,73.61],"6-72-52":[26.6,61.36],"6-72-53":[24.54,54.43],"6-72-54":[19.54,49.25],"6-72-55":[15.45,38.72],"6-72-56":[15.31,41.8],"6-72-57":[21.91,3236.81],"6-72-58":[2872.27,3666.27],"6-72-59":[3295.32,3666.27],"6-72-60":[2810.95,3378.93],"6-72-61":[2625.94,2968.07],"6-72-62":[2649.64,2779.15],"6-72-63":[-29.54,2774.31],"6-73-0":[13.6,36.21],"6-73-1":[18.97,47.61],"5-36-0":[13.6,48.14],"6-73-2":[22.99,49.57],"6-73-3":[23.45,674.04],"5-36-1":[22.99,753.17],"6-73-4":[23.04,204.98],"6-73-5":[22,51.05],"5-36-2":[22,528.08],"6-73-6":[18.61,696.6],"6-73-7":[22.39,1083.56],"5-36-3":[18.61,1167.12],"6-73-8":[17.69,559.12],"6-73-9":[46.96,398.6],"5-36-4":[17.52,559.12],"6-73-10":[10.3,258.06],"6-73-11":[18.42,338.7],"5-36-5":[10.3,338.7],"6-73-12":[21.07,371.65],"6-73-13":[119.02,309.64],"5-36-6":[21.07,382.74],"6-73-14":[82.56,1369.76],"6-73-15":[13.61,2520.59],"5-36-7":[13.61,2540.92],"6-73-16":[28.54,1559.76],"6-73-17":[28.77,1798.35],"5-36-8":[28.54,2950.99],"6-73-18":[23.18,2185.74],"6-73-19":[-52.99,2137.5],"5-36-9":[-52.99,2464.23],"6-73-20":[1.3,266.06],"6-73-21":[-117.56,282.94],"5-36-10":[-117.56,425.6],"6-73-22":[27.75,574.35],"6-73-23":[275.3,1131.98],"5-36-11":[27.75,1131.98],"6-73-24":[280.09,1082.02],"6-73-25":[366.24,841.26],"5-36-12":[280.09,1912.86],"6-73-26":[428.45,2020.89],"6-73-27":[423.73,1156.65],"5-36-13":[423.73,3017.52],"6-73-28":[386.96,960.04],"6-73-29":[394.88,977.62],"5-36-14":[386.96,1371.36],"6-73-30":[497.33,946.04],"6-73-31":[366.87,1103.17],"5-36-15":[319.72,1103.17],"6-73-32":[379.78,1540.39],"6-73-33":[413.29,1685.26],"5-36-16":[322.07,1685.26],"6-73-34":[504.55,1701.66],"6-73-35":[515.18,1902.71],"5-36-17":[430.54,1902.71],"6-73-36":[935.23,1683.01],"6-73-37":[473.44,1546.43],"5-36-18":[473.44,1683.01],"6-73-38":[414.32,1440.16],"6-73-39":[758.78,1496.99],"5-36-19":[414.32,1496.99],"6-73-40":[770.57,2110.34],"6-73-41":[993.88,1898.28],"5-36-20":[770.57,2110.34],"6-73-42":[1210.08,3126.88],"6-73-43":[4.71,2790.11],"5-36-21":[4.71,3126.88],"6-73-44":[11.68,321.06],"6-73-45":[28.82,68.52],"5-36-22":[11.68,1649.02],"6-73-46":[33.04,71.86],"6-73-47":[33.1,68.84],"5-36-23":[29.82,71.86],"6-73-48":[32.88,69.45],"6-73-49":[33.33,74.64],"5-36-24":[32.45,74.64],"6-73-50":[35.38,76.55],"6-73-51":[30.59,74.13],"5-36-25":[30.32,76.55],"6-73-52":[27.68,63.59],"6-73-53":[24.54,58.28],"5-36-26":[24.54,63.59],"6-73-54":[20.07,51.54],"6-73-55":[15.99,40.58],"5-36-27":[15.45,51.54],"6-73-56":[15.99,41.88],"6-73-57":[19.59,3236.81],"5-36-28":[15.31,3236.81],"6-73-58":[2976.86,3671.29],"6-73-59":[3378.92,3685.99],"5-36-29":[2872.27,3685.99],"6-73-60":[2968.06,3441.2],"6-73-61":[2691.68,3024.01],"5-36-30":[2625.94,3441.2],"6-73-62":[2691.68,2818.12],"6-73-63":[-29.54,2780.49],"5-36-31":[-29.54,2818.12],"6-74-0":[13.6,36.07],"6-74-1":[18.96,46.86],"6-74-2":[22.03,47],"6-74-3":[20.96,289.51],"6-74-4":[19.84,46.66],"6-74-5":[17.55,45.75],"6-74-6":[11.97,739.68],"6-74-7":[14.65,736.85],"6-74-8":[-6.7,3219.23],"6-74-9":[-7.7,401.9],"6-74-10":[-74.06,523.35],"6-74-11":[30.86,314.28],"6-74-12":[121.32,307.64],"6-74-13":[94.68,347.09],"6-74-14":[53.31,387.19],"6-74-15":[16.89,488.72],"6-74-16":[26.92,429.54],"6-74-17":[0.6,2570.69],"6-74-18":[-38.2,3075.92],"6-74-19":[2.74,3021.97],"6-74-20":[2.74,110.17],"6-74-21":[-52.61,355.67],"6-74-22":[11.08,602.67],"6-74-23":[11.91,551.02],"6-74-24":[164.06,713.34],"6-74-25":[187.45,639.47],"6-74-26":[300.4,1130.48],"6-74-27":[439.11,1410.14],"6-74-28":[346.35,1323.82],"6-74-29":[356.78,738.69],"6-74-30":[452.9,1580.59],"6-74-31":[534,5024.49],"6-74-32":[645.87,4495.21],"6-74-33":[625.99,3461],"6-74-34":[590.29,2489.57],"6-74-35":[742.27,1708.52],"6-74-36":[432.19,1881.89],"6-74-37":[298.55,1739.34],"6-74-38":[466.8,1752.71],"6-74-39":[255.5,1623.82],"6-74-40":[350.82,2352.72],"6-74-41":[677.23,2369.87],"6-74-42":[12.4,3510.35],"6-74-43":[4.61,2075.35],"6-74-44":[25.51,57.03],"6-74-45":[28.71,66.1],"6-74-46":[31.87,69.33],"6-74-47":[32.66,69.51],"6-74-48":[33.21,80.25],"6-74-49":[35.21,80.16],"6-74-50":[35.5,79.81],"6-74-51":[31.79,73.11],"6-74-52":[29.44,68],"6-74-53":[26.69,59.41],"6-74-54":[20.92,53.21],"6-74-55":[18.14,42.59],"6-74-56":[17.26,359.2],"6-74-57":[18.72,2976.87],"6-74-58":[2510.84,3667.35],"6-74-59":[3441.19,3732.45],"6-74-60":[3024,3510.17],"6-74-61":[2783.25,3119.66],"6-74-62":[2780.48,2893.13],"6-74-63":[-29.54,2805.44],"6-75-0":[13.6,35.99],"6-75-1":[18.94,45.05],"5-37-0":[13.6,46.86],"6-75-2":[21.42,45.15],"6-75-3":[20.74,291.18],"5-37-1":[20.74,291.18],"4-18-0":[13.6,753.17],"6-75-4":[17.8,41.45],"6-75-5":[17.26,39.32],"5-37-2":[17.26,46.66],"6-75-6":[15.55,177.14],"6-75-7":[15.55,1181.22],"5-37-3":[11.97,1181.22],"4-18-1":[11.97,1181.22],"6-75-8":[16.77,712.47],"6-75-9":[-32.14,4110.39],"5-37-4":[-32.14,4110.39],"6-75-10":[-19.3,318.43],"6-75-11":[30.72,357.76],"5-37-5":[-74.06,523.35],"4-18-2":[-74.06,4110.39],"6-75-12":[140.07,313.84],"6-75-13":[123.47,252.12],"5-37-6":[94.68,347.09],"6-75-14":[-181.36,293.98],"6-75-15":[-133.08,195.69],"5-37-7":[-181.36,488.72],"4-18-3":[-181.36,2540.92],"6-75-16":[12.44,673.31],"6-75-17":[25.7,2438.12],"5-37-8":[0.6,2570.69],"6-75-18":[22.51,3012.55],"6-75-19":[6.7,2342.54],"5-37-9":[-38.2,3075.92],"4-18-4":[-52.99,3075.92],"6-75-20":[8.83,223.67],"6-75-21":[-4.5,1970.91],"5-37-10":[-52.61,1970.91],"6-75-22":[11.16,2002.31],"6-75-23":[78.71,726.15],"5-37-11":[11.08,2002.31],"4-18-5":[-117.56,2002.31],"6-75-24":[172.21,1207.85],"6-75-25":[212.55,942.11],"5-37-12":[164.06,1207.85],"6-75-26":[305.98,740.02],"6-75-27":[352.02,1457.61],"5-37-13":[300.4,1457.61],"4-18-6":[164.06,3017.52],"6-75-28":[354.16,988.64],"6-75-29":[356.57,725.3],"5-37-14":[346.35,1323.82],"6-75-30":[389.82,3166.22],"6-75-31":[594.3,2060.9],"5-37-15":[389.82,5024.49],"4-18-7":[319.72,5024.49],"6-75-32":[1072.57,1787.81],"6-75-33":[1016.16,1756.25],"5-37-16":[625.99,4495.21],"6-75-34":[735.53,2443.31],"6-75-35":[493.17,2943.5],"5-37-17":[493.17,2943.5],"4-18-8":[322.07,4495.21],"6-75-36":[446.63,1864.36],"6-75-37":[93.22,1716.39],"5-37-18":[93.22,1881.89],"6-75-38":[74.67,2583.3],"6-75-39":[57.48,2427.44],"5-37-19":[57.48,2583.3],"4-18-9":[57.48,2583.3],"6-75-40":[-242.83,1442.62],"6-75-41":[-31.19,1914.13],"5-37-20":[-242.83,2369.87],"6-75-42":[2.04,1636.59],"6-75-43":[21.63,58.03],"5-37-21":[2.04,3510.35],"4-18-10":[-242.83,3510.35],"6-75-44":[25.62,61.17],"6-75-45":[29.14,66.22],"5-37-22":[25.51,66.22],"6-75-46":[31.94,69.34],"6-75-47":[33.03,82.96],"5-37-23":[31.87,82.96],"4-18-11":[11.68,1649.02],"6-75-48":[35.18,89.62],"6-75-49":[39.2,86.77],"5-37-24":[33.21,89.62],"6-75-50":[36.6,80.48],"6-75-51":[34.25,78.22],"5-37-25":[31.79,80.48],"4-18-12":[30.32,89.62],"6-75-52":[30.27,72.13],"6-75-53":[26.69,63.45],"5-37-26":[26.69,72.13],"6-75-54":[20.79,54.64],"6-75-55":[18.14,45.98],"5-37-27":[18.14,54.64],"4-18-13":[15.45,72.13],"6-75-56":[18.66,861.26],"6-75-57":[359.19,2787.68],"5-37-28":[17.26,2976.87],"6-75-58":[2576.62,3670.33],"6-75-59":[3510.16,3745.57],"5-37-29":[2510.84,3745.57],"4-18-14":[15.31,3745.57],"6-75-60":[3119.65,3590.97],"6-75-61":[2882.5,3236.16],"5-37-30":[2783.25,3590.97],"6-75-62":[2805.43,2971.57],"6-75-63":[-29.54,2839.82],"5-37-31":[-29.54,2971.57],"4-18-15":[-29.54,3590.97],"6-76-0":[13.6,35.96],"6-76-1":[18.88,43.71],"6-76-2":[20.05,43.82],"6-76-3":[17.55,47.61],"6-76-4":[15.48,38.46],"6-76-5":[14.03,35.52],"6-76-6":[13.19,32.09],"6-76-7":[13.64,1139.05],"6-76-8":[15.76,538.64],"6-76-9":[14.86,306.08],"6-76-10":[21.95,316.75],"6-76-11":[80.98,357.69],"6-76-12":[126.53,332.1],"6-76-13":[34.69,291.25],"6-76-14":[4.45,251.97],"6-76-15":[11.09,721.64],"6-76-16":[16.18,1541.99],"6-76-17":[17.64,2603.85],"6-76-18":[19.98,3897.68],"6-76-19":[14.59,3093.99],"6-76-20":[-398.55,2689.12],"6-76-21":[-349.48,2516.84],"6-76-22":[7.34,2262.38],"6-76-23":[-21.6,1972.68],"6-76-24":[-6.69,2173.07],"6-76-25":[324.79,1591.14],"6-76-26":[356.19,1104.11],"6-76-27":[401.98,2729.65],"6-76-28":[392.01,3267.45],"6-76-29":[375.1,3342.07],"6-76-30":[309.01,2770.25],"6-76-31":[236.85,4305.91],"6-76-32":[545.42,3396.04],"6-76-33":[671.25,3634.02],"6-76-34":[206.1,2462.72],"6-76-35":[230.19,2952.42],"6-76-36":[-18.37,1938.4],"6-76-37":[7.99,2969.88],"6-76-38":[-27.14,1841.51],"6-76-39":[-30.93,319.69],"6-76-40":[-13.74,244.16],"6-76-41":[8.65,35.45],"6-76-42":[14.14,44.71],"6-76-43":[19.2,58.81],"6-76-44":[24.23,61.33],"6-76-45":[27.4,65.6],"6-76-46":[32.33,76.23],"6-76-47":[35.63,92.82],"6-76-48":[41.49,92.94],"6-76-49":[40.23,88.72],"6-76-50":[39.23,85.78],"6-76-51":[36.06,83.62],"6-76-52":[32.25,75.93],"6-76-53":[27.56,65.48],"6-76-54":[22.21,58.44],"6-76-55":[22.21,48.62],"6-76-56":[20.39,1400],"6-76-57":[861.25,2930.46],"6-76-58":[2787.67,3670.26],"6-76-59":[3590.96,3781.61],"6-76-60":[2776.72,3628.25],"6-76-61":[2954.99,3346.55],"6-76-62":[2839.81,3092.47],"6-76-63":[-29.54,2876.01],"6-77-0":[13.6,35.87],"6-77-1":[18.74,42.43],"5-38-0":[13.6,43.71],"6-77-2":[19.64,42.43],"6-77-3":[17.24,120.99],"5-38-1":[17.24,120.99],"6-77-4":[12.81,34.8],"6-77-5":[12.61,29.58],"5-38-2":[12.61,38.46],"6-77-6":[10.81,27.52],"6-77-7":[10.81,395.4],"5-38-3":[10.81,1139.05],"6-77-8":[13.48,352.95],"6-77-9":[13.48,366.87],"5-38-4":[13.48,538.64],"6-77-10":[35.39,327.96],"6-77-11":[93.37,306.61],"5-38-5":[21.95,357.69],"6-77-12":[105.39,311.33],"6-77-13":[-117.36,300.03],"5-38-6":[-117.36,332.1],"6-77-14":[44.47,375.52],"6-77-15":[2.57,323.22],"5-38-7":[2.57,721.64],"6-77-16":[12.38,1062.09],"6-77-17":[17.22,3382.16],"5-38-8":[12.38,3382.16],"6-77-18":[227.32,3297.16],"6-77-19":[120.11,2377.57],"5-38-9":[14.59,3897.68],"6-77-20":[501.73,1781.74],"6-77-21":[534.04,1378.43],"5-38-10":[-398.55,2689.12],"6-77-22":[6.85,2032.54],"6-77-23":[-26.43,2355.84],"5-38-11":[-26.43,2355.84],"6-77-24":[-82.73,2168.09],"6-77-25":[-31.31,2735.56],"5-38-12":[-82.73,2735.56],"6-77-26":[-27.84,3016.69],"6-77-27":[581.81,4526.44],"5-38-13":[-27.84,4526.44],"6-77-28":[713.31,4259.18],"6-77-29":[510.69,4177.49],"5-38-14":[375.1,4259.18],"6-77-30":[298.72,2764.05],"6-77-31":[167.98,3442.17],"5-38-15":[167.98,4305.91],"6-77-32":[136.09,5158.31],"6-77-33":[-45.68,5869.55],"5-38-16":[-45.68,5869.55],"6-77-34":[-49.58,2618.18],"6-77-35":[-48.06,1490.1],"5-38-17":[-49.58,2952.42],"6-77-36":[-18.95,1408.41],"6-77-37":[-43.82,2305.1],"5-38-18":[-43.82,2969.88],"6-77-38":[-55.16,506.56],"6-77-39":[-23.77,1.33],"5-38-19":[-55.16,1841.51],"6-77-40":[-2.89,15.32],"6-77-41":[4.2,25.41],"5-38-20":[-13.74,244.16],"6-77-42":[9.2,34.13],"6-77-43":[15.55,46.33],"5-38-21":[9.2,58.81],"6-77-44":[24.23,56.57],"6-77-45":[27.4,71.28],"5-38-22":[24.23,71.28],"6-77-46":[32.88,83.08],"6-77-47":[39.51,93.26],"5-38-23":[32.33,93.26],"6-77-48":[38.04,1277.56],"6-77-49":[42.15,90.89],"5-38-24":[38.04,1277.56],"6-77-50":[42.47,93.63],"6-77-51":[38.18,92.27],"5-38-25":[36.06,93.63],"6-77-52":[33.28,80.44],"6-77-53":[29.46,68.79],"5-38-26":[27.56,80.44],"6-77-54":[25.28,62.82],"6-77-55":[22.68,52.06],"5-38-27":[22.21,62.82],"6-77-56":[18.95,1400],"6-77-57":[751.85,3035.01],"5-38-28":[18.95,3035.01],"6-77-58":[2930.45,3670.15],"6-77-59":[3628.25,3814.29],"5-38-29":[2787.67,3814.29],"6-77-60":[3346.54,3652.21],"6-77-61":[3073.2,3460.18],"5-38-30":[2776.72,3652.21],"6-77-62":[2876,3182.27],"6-77-63":[-29.54,2907.97],"5-38-31":[-29.54,3182.27],"6-78-0":[13.6,35.71],"6-78-1":[18.5,41.37],"6-78-2":[18.62,41.37],"6-78-3":[14.08,41.71],"6-78-4":[10.33,32.25],"6-78-5":[8.69,25.05],"6-78-6":[8.19,22.55],"6-78-7":[9.2,327.91],"6-78-8":[11.6,314.82],"6-78-9":[12.9,268.49],"6-78-10":[44.72,286.2],"6-78-11":[79.76,279.53],"6-78-12":[76.55,258.22],"6-78-13":[77.59,248.68],"6-78-14":[14.28,340.26],"6-78-15":[2.68,680.41],"6-78-16":[13.14,3881.85],"6-78-17":[13.73,3918.41],"6-78-18":[321,3209.2],"6-78-19":[147.38,1446.37],"6-78-20":[267.19,949.71],"6-78-21":[374.43,1047.17],"6-78-22":[737.12,1974.55],"6-78-23":[99.43,2149.19],"6-78-24":[-38.59,2651.93],"6-78-25":[-18.11,2755.96],"6-78-26":[-202.91,3297.68],"6-78-27":[-172.94,3970.6],"6-78-28":[208.62,3839.48],"6-78-29":[250.57,4373.18],"6-78-30":[130.76,1692.99],"6-78-31":[-26.1,881.98],"6-78-32":[-77.85,278.94],"6-78-33":[-77.15,504.42],"6-78-34":[-74.93,56.49],"6-78-35":[-67.51,634.05],"6-78-36":[-58.21,1404.07],"6-78-37":[-82.52,980.89],"6-78-38":[-39.1,-9.7],"6-78-39":[-22.61,25.58],"6-78-40":[-3.87,7.79],"6-78-41":[3.4,20.43],"6-78-42":[8.86,32.47],"6-78-43":[15.8,49.23],"6-78-44":[24.72,59.67],"6-78-45":[29.26,78.45],"6-78-46":[35.64,87.67],"6-78-47":[42.4,92.7],"6-78-48":[42.73,92.7],"6-78-49":[43.34,91.97],"6-78-50":[45.44,100.71],"6-78-51":[40.21,95.44],"6-78-52":[34.91,81.61],"6-78-53":[31.4,70.9],"6-78-54":[26.8,64.39],"6-78-55":[25.07,54.85],"6-78-56":[20.74,1829.25],"6-78-57":[790.9,3049.46],"6-78-58":[3035,3654.4],"6-78-59":[3633.12,3814.29],"6-78-60":[3460.17,3676.48],"6-78-61":[3182.26,3515.55],"6-78-62":[2907.96,3278.24],"6-78-63":[-29.54,2956.72],"6-79-0":[13.6,35.35],"6-79-1":[18.17,40.15],"5-39-0":[13.6,41.37],"6-79-2":[18.31,40.92],"6-79-3":[14.08,38.78],"5-39-1":[14.08,41.71],"4-19-0":[13.6,120.99],"6-79-4":[8.85,27.87],"6-79-5":[7.69,19.46],"5-39-2":[7.69,32.25],"6-79-6":[6.77,17.55],"6-79-7":[7.34,252.89],"5-39-3":[6.77,327.91],"4-19-1":[6.77,1139.05],"3-9-0":[6.77,1181.22],"6-79-8":[10.65,224],"6-79-9":[12.58,273.71],"5-39-4":[10.65,314.82],"6-79-10":[36.18,309.09],"6-79-11":[67.88,297.07],"5-39-5":[36.18,309.09],"4-19-2":[10.65,538.64],"6-79-12":[65.82,294.44],"6-79-13":[86.91,291.7],"5-39-6":[65.82,294.44],"6-79-14":[-19.35,260.4],"6-79-15":[-9.6,476.12],"5-39-7":[-19.35,680.41],"4-19-3":[-117.36,721.64],"3-9-1":[-181.36,4110.39],"2-4-0":[-181.36,4840.9],"6-79-16":[37.86,5616.16],"6-79-17":[25.49,5133.37],"5-39-8":[13.14,5616.16],"6-79-18":[263.18,4058.15],"6-79-19":[31.48,3448.78],"5-39-9":[31.48,4058.15],"4-19-4":[12.38,5616.16],"6-79-20":[2.31,377.37],"6-79-21":[110.72,790.42],"5-39-10":[2.31,1047.17],"6-79-22":[400.54,1407.05],"6-79-23":[692.97,1499.62],"5-39-11":[99.43,2149.19],"4-19-5":[-398.55,2689.12],"3-9-2":[-398.55,5616.16],"6-79-24":[612.19,1721.97],"6-79-25":[-26.78,2990.34],"5-39-12":[-38.59,2990.34],"6-79-26":[-70.23,3647.39],"6-79-27":[-179.38,3223.81],"5-39-13":[-202.91,3970.6],"4-19-6":[-202.91,4526.44],"6-79-28":[-41.82,3002.22],"6-79-29":[152.09,1451.56],"5-39-14":[-41.82,4373.18],"6-79-30":[61.26,913.05],"6-79-31":[-86.74,587.03],"5-39-15":[-86.74,1692.99],"4-19-7":[-86.74,4373.18],"3-9-3":[-202.91,5024.49],"2-4-1":[-398.55,5616.16],"6-79-32":[-87.58,65.61],"6-79-33":[-86.64,-37.76],"5-39-16":[-87.58,504.42],"6-79-34":[-81.84,-34.75],"6-79-35":[-71.3,-26.58],"5-39-17":[-81.84,634.05],"4-19-8":[-87.58,5869.55],"6-79-36":[-59.05,2336.88],"6-79-37":[-52.97,605.98],"5-39-18":[-82.52,2336.88],"6-79-38":[-43.74,926.36],"6-79-39":[-68.11,1064.17],"5-39-19":[-68.11,1064.17],"4-19-9":[-82.52,2969.88],"3-9-4":[-87.58,5869.55],"6-79-40":[-18.99,1347.93],"6-79-41":[-12.01,199.04],"5-39-20":[-18.99,1347.93],"6-79-42":[8.42,42.61],"6-79-43":[17.67,65.21],"5-39-21":[8.42,65.21],"4-19-10":[-18.99,1347.93],"6-79-44":[24.72,70.25],"6-79-45":[31.3,83.27],"5-39-22":[24.72,83.27],"6-79-46":[39.48,87.78],"6-79-47":[43.03,91.28],"5-39-23":[35.64,92.7],"4-19-11":[24.23,93.26],"3-9-5":[-242.83,3510.35],"2-4-2":[-242.83,5869.55],"6-79-48":[42.49,94.03],"6-79-49":[43.22,91.87],"5-39-24":[42.49,94.03],"6-79-50":[45.58,101.84],"6-79-51":[40.61,94.5],"5-39-25":[40.21,101.84],"4-19-12":[36.06,1277.56],"6-79-52":[35.82,81.74],"6-79-53":[31.85,70.92],"5-39-26":[31.4,81.74],"6-79-54":[28.07,64.4],"6-79-55":[25.07,56.23],"5-39-27":[25.07,64.4],"4-19-13":[22.21,81.74],"3-9-6":[15.45,1277.56],"6-79-56":[24.51,2238.4],"6-79-57":[1829.24,3044.79],"5-39-28":[20.74,3049.46],"6-79-58":[3023.55,3633.13],"6-79-59":[3590.92,3703.54],"5-39-29":[3023.55,3814.29],"4-19-14":[18.95,3814.29],"6-79-60":[3515.54,3739.77],"6-79-61":[3278.23,3596.54],"5-39-30":[3182.26,3739.77],"6-79-62":[2956.71,3326.45],"6-79-63":[-29.54,2985.88],"5-39-31":[-29.54,3326.45],"4-19-15":[-29.54,3739.77],"3-9-7":[-29.54,3814.29],"2-4-3":[-29.54,3814.29],"6-80-0":[13.6,34.92],"6-80-1":[17.78,39.27],"6-80-2":[16.68,40.65],"6-80-3":[11.49,517.11],"6-80-4":[7.13,26.45],"6-80-5":[4.68,16.89],"6-80-6":[4.58,15.08],"6-80-7":[4.73,237.51],"6-80-8":[7.54,245.48],"6-80-9":[34.12,285.08],"6-80-10":[9.18,302.02],"6-80-11":[61.24,248.97],"6-80-12":[48.7,347.27],"6-80-13":[6.35,372.83],"6-80-14":[-41.25,355.61],"6-80-15":[-76.27,115.89],"6-80-16":[-56.46,4485.88],"6-80-17":[-15.96,4116.85],"6-80-18":[161.31,4577.24],"6-80-19":[32.18,3588.07],"6-80-20":[-43.59,2783.91],"6-80-21":[-86.23,444.94],"6-80-22":[151.78,925.69],"6-80-23":[340.2,1343.13],"6-80-24":[285.31,1028.07],"6-80-25":[400.89,1455.51],"6-80-26":[79.57,2444.71],"6-80-27":[-65.02,2493.24],"6-80-28":[-50.69,2422.23],"6-80-29":[62.25,1006.97],"6-80-30":[-93.25,501.55],"6-80-31":[-99.6,235.87],"6-80-32":[-97.89,-42.83],"6-80-33":[-90.45,-40.91],"6-80-34":[-87.49,-33.55],"6-80-35":[-79.14,8.71],"6-80-36":[-62.55,621.18],"6-80-37":[-52.79,1207.88],"6-80-38":[-3.35,2631.65],"6-80-39":[-45.58,2635.66],"6-80-40":[-13.4,1977.92],"6-80-41":[3.13,244.27],"6-80-42":[12.3,42.61],"6-80-43":[19.05,65.05],"6-80-44":[27.43,70.26],"6-80-45":[35.59,85.76],"6-80-46":[41.63,87.78],"6-80-47":[42.87,92.37],"6-80-48":[44.13,94.46],"6-80-49":[43.94,91.87],"6-80-50":[45.05,99.84],"6-80-51":[40.48,92.21],"6-80-52":[35.29,81.74],"6-80-53":[31.46,70.92],"6-80-54":[28.44,63.71],"6-80-55":[27.25,572.15],"6-80-56":[26.34,2427.48],"6-80-57":[2238.39,3127.78],"6-80-58":[3023.7,3590.93],"6-80-59":[3513.32,3615.32],"6-80-60":[3595.11,3741.77],"6-80-61":[3326.44,3655.25],"6-80-62":[2985.87,3360.65],"6-80-63":[-29.54,3013.02],"6-81-0":[13.6,34.28],"6-81-1":[17.42,38.06],"5-40-0":[13.6,39.27],"6-81-2":[16.06,37.38],"6-81-3":[11.14,453.1],"5-40-1":[11.14,517.11],"6-81-4":[5.36,22.49],"6-81-5":[2.51,12.86],"5-40-2":[2.51,26.45],"6-81-6":[2.24,9.59],"6-81-7":[2.54,195.71],"5-40-3":[2.24,237.51],"6-81-8":[7.96,467.27],"6-81-9":[65.32,477.07],"5-40-4":[7.54,477.07],"6-81-10":[7.84,275.89],"6-81-11":[59.53,298.46],"5-40-5":[7.84,302.02],"6-81-12":[19.86,367.95],"6-81-13":[0.32,377.5],"5-40-6":[0.32,377.5],"6-81-14":[-51.54,65.52],"6-81-15":[-57.25,5.04],"5-40-7":[-76.27,355.61],"6-81-16":[-43.48,748.23],"6-81-17":[-65.9,4455.71],"5-40-8":[-65.9,4485.88],"6-81-18":[-73,4802.09],"6-81-19":[473.29,3898.23],"5-40-9":[-73,4802.09],"6-81-20":[-93.21,4173.89],"6-81-21":[-121.55,2032.48],"5-40-10":[-121.55,4173.89],"6-81-22":[-85.21,483.61],"6-81-23":[-57.81,539.09],"5-40-11":[-85.21,1343.13],"6-81-24":[77.98,467.81],"6-81-25":[176.55,1015.61],"5-40-12":[77.98,1455.51],"6-81-26":[-51.14,2138.39],"6-81-27":[-58.49,2078.28],"5-40-13":[-65.02,2493.24],"6-81-28":[-83.94,1996.26],"6-81-29":[-102.99,846.67],"5-40-14":[-102.99,2422.23],"6-81-30":[-103.29,410.82],"6-81-31":[-103.34,-46.62],"5-40-15":[-103.34,501.55],"6-81-32":[-99.7,-45.29],"6-81-33":[-91.37,-41.35],"5-40-16":[-99.7,-40.91],"6-81-34":[-87.05,-35.59],"6-81-35":[-80.36,-28.86],"5-40-17":[-87.49,8.71],"6-81-36":[-95.35,2866.35],"6-81-37":[-44.05,2817.4],"5-40-18":[-95.35,2866.35],"6-81-38":[-37.94,1755.56],"6-81-39":[-49.87,1687.3],"5-40-19":[-49.87,2635.66],"6-81-40":[-10.79,75],"6-81-41":[1.07,25.08],"5-40-20":[-13.4,1977.92],"6-81-42":[8.34,34.81],"6-81-43":[16.88,54.43],"5-40-21":[8.34,65.05],"6-81-44":[27.43,70.86],"6-81-45":[35.92,83.88],"5-40-22":[27.43,85.76],"6-81-46":[39.83,85.23],"6-81-47":[42.1,89.88],"5-40-23":[39.83,92.37],"6-81-48":[10.5,895.68],"6-81-49":[44.14,90.78],"5-40-24":[10.5,895.68],"6-81-50":[42.93,94.4],"6-81-51":[38.91,91.87],"5-40-25":[38.91,99.84],"6-81-52":[33.96,80.53],"6-81-53":[30.7,68.94],"5-40-26":[30.7,81.74],"6-81-54":[28.32,62.75],"6-81-55":[29.72,1099.75],"5-40-27":[27.25,1099.75],"6-81-56":[30.45,2482.8],"6-81-57":[2427.47,3161.72],"5-40-28":[26.34,3161.72],"6-81-58":[3127.77,3513.33],"6-81-59":[3362.15,3613.49],"5-40-29":[3023.7,3615.32],"6-81-60":[3596.57,3745.47],"6-81-61":[3360.64,3699.75],"5-40-30":[3326.44,3745.47],"6-81-62":[3013.01,3382.27],"6-81-63":[-29.54,3034.71],"5-40-31":[-29.54,3382.27],"6-82-0":[13.6,33.76],"6-82-1":[17,37.12],"6-82-2":[15.53,35.52],"6-82-3":[8.15,574.46],"6-82-4":[4.35,19.3],"6-82-5":[1.27,79.61],"6-82-6":[0.56,585.93],"6-82-7":[0.54,166.68],"6-82-8":[5.53,263.89],"6-82-9":[23.58,441.34],"6-82-10":[5.37,321.16],"6-82-11":[52.24,337.16],"6-82-12":[32.72,384.64],"6-82-13":[-1.79,320.68],"6-82-14":[-63.46,173.57],"6-82-15":[-85.87,-10.01],"6-82-16":[-173.82,522.27],"6-82-17":[-63.16,294.16],"6-82-18":[-61.41,3417.02],"6-82-19":[-32.51,5595.76],"6-82-20":[768.45,4411.42],"6-82-21":[-91.09,4366.48],"6-82-22":[-64.72,1761.32],"6-82-23":[-110.57,170.47],"6-82-24":[-44.95,274.33],"6-82-25":[68.28,1114.62],"6-82-26":[-145.36,1466.69],"6-82-27":[-88.55,1380.57],"6-82-28":[-104.68,723.52],"6-82-29":[-111.56,-41.96],"6-82-30":[-110.83,-50.61],"6-82-31":[-104.52,-49.03],"6-82-32":[-100.44,-45.11],"6-82-33":[-93.4,-10.81],"6-82-34":[-83.72,5.08],"6-82-35":[-74.96,-0.2],"6-82-36":[-62.66,-19.8],"6-82-37":[-49.14,-15.48],"6-82-38":[-35.86,-11.67],"6-82-39":[-24.06,-4.21],"6-82-40":[-11.33,1.34],"6-82-41":[0.88,15.42],"6-82-42":[7.73,31.56],"6-82-43":[16.23,52.89],"6-82-44":[26.35,70.9],"6-82-45":[33.59,79.74],"6-82-46":[36.43,83.44],"6-82-47":[40.09,89.7],"6-82-48":[31.65,1115.13],"6-82-49":[43.67,90.18],"6-82-50":[42.26,91.9],"6-82-51":[37.84,90.05],"6-82-52":[33.96,77.84],"6-82-53":[30.52,67.42],"6-82-54":[28.32,61.42],"6-82-55":[29.72,1774.62],"6-82-56":[1099.74,2729.04],"6-82-57":[2482.79,3157.08],"6-82-58":[3040.04,3362.16],"6-82-59":[3161.66,3614.29],"6-82-60":[3541.01,3772.23],"6-82-61":[3382.26,3728.18],"6-82-62":[3034.7,3397.85],"6-82-63":[-29.54,3048.46],"6-83-0":[13.6,33.14],"6-83-1":[16.83,36.08],"5-41-0":[13.6,37.12],"6-83-2":[15.31,35.22],"6-83-3":[8.15,497.91],"5-41-1":[8.15,574.46],"4-20-0":[8.15,574.46],"6-83-4":[2.83,16.01],"6-83-5":[1.2,1212.81],"5-41-2":[1.2,1212.81],"6-83-6":[-2.49,1230.82],"6-83-7":[-3.49,212.13],"5-41-3":[-3.49,1230.82],"4-20-1":[-3.49,1230.82],"6-83-8":[21.02,244.39],"6-83-9":[32.38,331.03],"5-41-4":[5.53,441.34],"6-83-10":[0.65,350.47],"6-83-11":[53.02,469.81],"5-41-5":[0.65,469.81],"4-20-2":[0.65,477.07],"6-83-12":[50.86,476.59],"6-83-13":[40.69,627.4],"5-41-6":[-1.79,627.4],"6-83-14":[-46.59,323.7],"6-83-15":[-87.65,232.09],"5-41-7":[-87.65,323.7],"4-20-3":[-87.65,627.4],"6-83-16":[-161.11,321.64],"6-83-17":[-92.99,1858.17],"5-41-8":[-173.82,1858.17],"6-83-18":[-78.58,3878.24],"6-83-19":[299.23,3814.01],"5-41-9":[-78.58,5595.76],"4-20-4":[-173.82,5595.76],"6-83-20":[674.01,4034.31],"6-83-21":[627.23,3448.75],"5-41-10":[-91.09,4411.42],"6-83-22":[-84.08,2931.28],"6-83-23":[-93.5,1395.64],"5-41-11":[-110.57,2931.28],"4-20-5":[-121.55,4411.42],"6-83-24":[-29.8,300.19],"6-83-25":[-71.95,1727.17],"5-41-12":[-71.95,1727.17],"6-83-26":[-76.15,1060.42],"6-83-27":[-94.46,1466.16],"5-41-13":[-145.36,1466.69],"4-20-6":[-145.36,2493.24],"6-83-28":[-107.49,-44.27],"6-83-29":[-112.89,-51.27],"5-41-14":[-112.89,723.52],"6-83-30":[-112.22,-52.38],"6-83-31":[-111.92,-50.21],"5-41-15":[-112.22,-49.03],"4-20-7":[-112.89,2422.23],"6-83-32":[-107.44,-46.38],"6-83-33":[-100.55,862.8],"5-41-16":[-107.44,862.8],"6-83-34":[-86.9,-10.47],"6-83-35":[-74.63,-31.32],"5-41-17":[-86.9,5.08],"4-20-8":[-107.44,862.8],"6-83-36":[-65.81,-24.56],"6-83-37":[-50.21,-9.89],"5-41-18":[-65.81,-9.89],"6-83-38":[-36.27,-11.19],"6-83-39":[-27.02,3059.56],"5-41-19":[-36.27,3059.56],"4-20-9":[-95.35,3059.56],"6-83-40":[-8.14,2.28],"6-83-41":[0.88,16.25],"5-41-20":[-11.33,16.25],"6-83-42":[7.73,33.52],"6-83-43":[16.98,55.76],"5-41-21":[7.73,55.76],"4-20-10":[-13.4,1977.92],"6-83-44":[26.42,65.98],"6-83-45":[28.62,71.78],"5-41-22":[26.35,79.74],"6-83-46":[31.75,77.92],"6-83-47":[36.38,85.71],"5-41-23":[31.75,89.7],"4-20-11":[26.35,92.37],"6-83-48":[41.07,88.96],"6-83-49":[41.42,88.26],"5-41-24":[31.65,1115.13],"6-83-50":[40.86,86.86],"6-83-51":[37.02,83.45],"5-41-25":[37.02,91.9],"4-20-12":[10.5,1115.13],"6-83-52":[33.5,75.38],"6-83-53":[30.59,67.43],"5-41-26":[30.52,77.84],"6-83-54":[28.68,62.32],"6-83-55":[29.58,2242.91],"5-41-27":[28.32,2242.91],"4-20-13":[27.25,2242.91],"6-83-56":[568.49,2841.08],"6-83-57":[2729.03,3100.22],"5-41-28":[568.49,3157.08],"6-83-58":[2651.98,3161.67],"6-83-59":[2944.39,3541.02],"5-41-29":[2651.98,3614.29],"4-20-14":[26.34,3615.32],"6-83-60":[3405.03,3807.22],"6-83-61":[3397.84,3762.75],"5-41-30":[3382.26,3807.22],"6-83-62":[3048.45,3423.55],"6-83-63":[-29.54,3056.25],"5-41-31":[-29.54,3423.55],"4-20-15":[-29.54,3807.22],"6-84-0":[13.6,32.73],"6-84-1":[15.68,35.52],"6-84-2":[14.45,462.92],"6-84-3":[6.06,600.63],"6-84-4":[1.87,99.91],"6-84-5":[-4.13,1436.73],"6-84-6":[-6.38,243.89],"6-84-7":[-6.07,220.04],"6-84-8":[14.07,1250.98],"6-84-9":[44.8,1096.24],"6-84-10":[-0.2,1512.31],"6-84-11":[81.33,975.89],"6-84-12":[69.62,1624.4],"6-84-13":[-109.79,1020.66],"6-84-14":[69.5,630.85],"6-84-15":[-35.73,381.12],"6-84-16":[-25.96,265.27],"6-84-17":[-108.09,292.44],"6-84-18":[2.44,3050.69],"6-84-19":[657.64,3289.8],"6-84-20":[218.2,3513.08],"6-84-21":[84.19,4466.14],"6-84-22":[-257.75,3206.24],"6-84-23":[-71.96,2955.44],"6-84-24":[-79.76,1006.29],"6-84-25":[-89.61,187.1],"6-84-26":[-101.44,-35.61],"6-84-27":[-105.8,-39.16],"6-84-28":[-108.15,-47.23],"6-84-29":[-116.74,-51.27],"6-84-30":[-120.83,-54.73],"6-84-31":[-121.14,-53.64],"6-84-32":[-120.53,-50.27],"6-84-33":[-111.77,-41.47],"6-84-34":[-97.72,-15.91],"6-84-35":[-82.46,-11.7],"6-84-36":[-73.49,-25.08],"6-84-37":[-58.26,-16.99],"6-84-38":[-39.63,-4.4],"6-84-39":[-29.1,810.67],"6-84-40":[-9.76,2.28],"6-84-41":[0.83,15.41],"6-84-42":[7.34,34.61],"6-84-43":[17.48,52.91],"6-84-44":[21.66,56.56],"6-84-45":[24.5,63.5],"6-84-46":[28.48,71.79],"6-84-47":[33.69,82.14],"6-84-48":[37.05,84.5],"6-84-49":[39.19,84.88],"6-84-50":[37.64,82.95],"6-84-51":[36.03,81.01],"6-84-52":[33.47,74.05],"6-84-53":[30.96,66.44],"6-84-54":[28.91,62.37],"6-84-55":[28.43,1169.19],"6-84-56":[306.84,2834.46],"6-84-57":[2494.94,2971.6],"6-84-58":[2350.48,2944.4],"6-84-59":[2693.02,3405.04],"6-84-60":[3368.56,3828.34],"6-84-61":[3423.54,3798.94],"6-84-62":[3056.21,3451.5],"6-84-63":[-29.54,3061.98],"6-85-0":[13.6,32.27],"6-85-1":[15.62,35.54],"5-42-0":[13.6,35.54],"6-85-2":[13.83,255.88],"6-85-3":[6.06,601.05],"5-42-1":[6.06,601.05],"6-85-4":[1.27,851.35],"6-85-5":[-6.92,1078],"5-42-2":[-6.92,1436.73],"6-85-6":[-11.51,152.24],"6-85-7":[-9.86,400.74],"5-42-3":[-11.51,400.74],"6-85-8":[20.67,1773.8],"6-85-9":[-5.63,1487.95],"5-42-4":[-5.63,1773.8],"6-85-10":[-53.11,1559.37],"6-85-11":[-77.24,864.4],"5-42-5":[-77.24,1559.37],"6-85-12":[-233.11,1394.5],"6-85-13":[29.59,600.13],"5-42-6":[-233.11,1624.4],"6-85-14":[24.54,429.21],"6-85-15":[-30.91,315.69],"5-42-7":[-35.73,630.85],"6-85-16":[-30.47,243.14],"6-85-17":[32.63,430.08],"5-42-8":[-108.09,430.08],"6-85-18":[50.89,3092.4],"6-85-19":[225.19,3228.78],"5-42-9":[2.44,3289.8],"6-85-20":[429.56,2831.82],"6-85-21":[250.94,3905.23],"5-42-10":[84.19,4466.14],"6-85-22":[-102.11,3453.88],"6-85-23":[-86,2164.41],"5-42-11":[-257.75,3453.88],"6-85-24":[-99.8,1992.49],"6-85-25":[-110.95,-39.87],"5-42-12":[-110.95,1992.49],"6-85-26":[-117.41,-43.92],"6-85-27":[-127.52,-50.66],"5-42-13":[-127.52,-35.61],"6-85-28":[-132,-54.32],"6-85-29":[-131.84,-55.09],"5-42-14":[-132,-47.23],"6-85-30":[-135.58,-59.06],"6-85-31":[-136.23,-60.26],"5-42-15":[-136.23,-53.64],"6-85-32":[-135.19,-55.88],"6-85-33":[-126.29,-49.83],"5-42-16":[-135.19,-41.47],"6-85-34":[-114.17,-41.73],"6-85-35":[-93.31,-35.72],"5-42-17":[-114.17,-11.7],"6-85-36":[-76.7,-25.51],"6-85-37":[-60.92,12.57],"5-42-18":[-76.7,12.57],"6-85-38":[-42.13,-11.51],"6-85-39":[-26.51,-4.38],"5-42-19":[-42.13,810.67],"6-85-40":[-10.15,1.03],"6-85-41":[0.61,18.41],"5-42-20":[-10.15,18.41],"6-85-42":[7.34,33.4],"6-85-43":[14.16,42.27],"5-42-21":[7.34,52.91],"6-85-44":[20.8,47.97],"6-85-45":[23.87,56.43],"5-42-22":[20.8,63.5],"6-85-46":[27.26,65.1],"6-85-47":[30.36,73.18],"5-42-23":[27.26,82.14],"6-85-48":[33.17,77.75],"6-85-49":[36.61,78.57],"5-42-24":[33.17,84.88],"6-85-50":[36.35,77.83],"6-85-51":[34.92,75.64],"5-42-25":[34.92,82.95],"6-85-52":[32.62,71.77],"6-85-53":[30.3,66.45],"5-42-26":[30.3,74.05],"6-85-54":[27.35,61.96],"6-85-55":[26.88,470.02],"5-42-27":[26.88,1169.19],"6-85-56":[29.8,2724.67],"6-85-57":[1711.99,2726.3],"5-42-28":[29.8,2971.6],"6-85-58":[1711.99,2693.03],"6-85-59":[2435.24,3395.87],"5-42-29":[1711.99,3405.04],"6-85-60":[3366.59,3894.08],"6-85-61":[3451.49,3860.75],"5-42-30":[3366.59,3894.08],"6-85-62":[3061.9,3477.38],"6-85-63":[-29.54,3064.64],"5-42-31":[-29.54,3477.38],"6-86-0":[13.59,31.92],"6-86-1":[14.49,35.54],"6-86-2":[11.81,372.35],"6-86-3":[3.34,515.4],"6-86-4":[1.06,851.78],"6-86-5":[-8.29,891.68],"6-86-6":[-14.79,-3.6],"6-86-7":[-14.04,414.42],"6-86-8":[-7.9,1361.22],"6-86-9":[-6.91,250.25],"6-86-10":[-12.46,219.71],"6-86-11":[30.07,213.66],"6-86-12":[40.86,217.01],"6-86-13":[-251.81,281.46],"6-86-14":[1.35,248.91],"6-86-15":[3.27,244.16],"6-86-16":[-29.82,713.35],"6-86-17":[-65.15,925.05],"6-86-18":[118.27,769.1],"6-86-19":[259.05,3625.13],"6-86-20":[437.51,4120.59],"6-86-21":[417.86,2348.74],"6-86-22":[-70.2,2575.17],"6-86-23":[-95.29,426.39],"6-86-24":[-105.6,-40.84],"6-86-25":[-120.89,-49.19],"6-86-26":[-133.2,-54.84],"6-86-27":[-143.88,-59.25],"6-86-28":[-150.34,-63.76],"6-86-29":[-151.57,-65.77],"6-86-30":[-150.84,-65.78],"6-86-31":[-149.1,-67.58],"6-86-32":[-147.35,-64],"6-86-33":[-138.48,-57.09],"6-86-34":[-126.92,-47.83],"6-86-35":[-107,-36.76],"6-86-36":[-89.42,-30.07],"6-86-37":[-64.88,-21.06],"6-86-38":[-48.23,209.37],"6-86-39":[-26.28,376.48],"6-86-40":[-11.57,0.81],"6-86-41":[0.26,18.37],"6-86-42":[7.71,27.18],"6-86-43":[12.56,39.03],"6-86-44":[18.37,47.62],"6-86-45":[23.48,52.93],"6-86-46":[25.88,59.58],"6-86-47":[28.88,66.34],"6-86-48":[31.73,72.21],"6-86-49":[35.04,79.61],"6-86-50":[34.66,75.08],"6-86-51":[34.42,72.8],"6-86-52":[31.27,70.56],"6-86-53":[28.81,64.55],"6-86-54":[26.88,60.6],"6-86-55":[24.41,59.6],"6-86-56":[27.96,2407.49],"6-86-57":[1004.17,2407.49],"6-86-58":[953.72,2435.25],"6-86-59":[2297.21,3458.7],"6-86-60":[3395.86,3925.85],"6-86-61":[3477.37,3915.12],"6-86-62":[3064.43,3500.58],"6-86-63":[-29.54,3065.4],"6-87-0":[13.59,31.44],"6-87-1":[14.36,35.37],"5-43-0":[13.59,35.54],"6-87-2":[10.38,28.84],"6-87-3":[2.68,330.3],"5-43-1":[2.68,515.4],"4-21-0":[2.68,601.05],"6-87-4":[-2.16,1077],"6-87-5":[-10.36,397.96],"5-43-2":[-10.36,1077],"6-87-6":[-15.86,38],"6-87-7":[-16.5,1223.93],"5-43-3":[-16.5,1223.93],"4-21-1":[-16.5,1436.73],"3-10-0":[-16.5,1436.73],"6-87-8":[-9.11,1275.39],"6-87-9":[-9.42,200.27],"5-43-4":[-9.42,1361.22],"6-87-10":[-16.29,154.26],"6-87-11":[12.98,142.53],"5-43-5":[-16.29,219.71],"4-21-2":[-77.24,1773.8],"6-87-12":[33.77,210.72],"6-87-13":[8.93,447.9],"5-43-6":[-251.81,447.9],"6-87-14":[78.72,1084.54],"6-87-15":[-9.6,566.99],"5-43-7":[-9.6,1084.54],"4-21-3":[-251.81,1624.4],"3-10-1":[-251.81,1773.8],"6-87-16":[64.29,821.12],"6-87-17":[59.56,2139.17],"5-43-8":[-65.15,2139.17],"6-87-18":[168.8,4103.6],"6-87-19":[306.05,4599.84],"5-43-9":[118.27,4599.84],"4-21-4":[-108.09,4599.84],"6-87-20":[773.43,4772.12],"6-87-21":[-3.55,3524.89],"5-43-10":[-3.55,4772.12],"6-87-22":[-79.15,2437.68],"6-87-23":[-101.84,529.04],"5-43-11":[-101.84,2575.17],"4-21-5":[-257.75,4772.12],"3-10-2":[-257.75,5595.76],"6-87-24":[-118.44,-45.37],"6-87-25":[-141.93,-54.11],"5-43-12":[-141.93,-40.84],"6-87-26":[-150.7,-61.38],"6-87-27":[-163.78,-68.36],"5-43-13":[-163.78,-54.84],"4-21-6":[-163.78,1992.49],"6-87-28":[-170.56,-73.16],"6-87-29":[-174.45,-76.65],"5-43-14":[-174.45,-63.76],"6-87-30":[-173.2,-74.88],"6-87-31":[-167.31,-74.44],"5-43-15":[-173.2,-65.78],"4-21-7":[-174.45,-47.23],"3-10-3":[-174.45,2493.24],"6-87-32":[-162.11,-70.63],"6-87-33":[-151.07,-64.32],"5-43-16":[-162.11,-57.09],"6-87-34":[-139.14,-55.61],"6-87-35":[-119.37,-45.34],"5-43-17":[-139.14,-36.76],"4-21-8":[-162.11,-11.7],"6-87-36":[-99.82,-34.09],"6-87-37":[-73.91,-24.11],"5-43-18":[-99.82,-21.06],"6-87-38":[-54.69,-13.14],"6-87-39":[-30.91,-5.98],"5-43-19":[-54.69,376.48],"4-21-9":[-99.82,810.67],"3-10-4":[-162.11,3059.56],"6-87-40":[-16.87,0.27],"6-87-41":[-1.52,14.6],"5-43-20":[-16.87,18.37],"6-87-42":[5.69,23.57],"6-87-43":[10.55,36.11],"5-43-21":[5.69,39.03],"4-21-10":[-16.87,52.91],"6-87-44":[18.37,45.54],"6-87-45":[20.45,51.47],"5-43-22":[18.37,52.93],"6-87-46":[25.88,56.59],"6-87-47":[28.04,63.44],"5-43-23":[25.88,66.34],"4-21-11":[18.37,82.14],"3-10-5":[-16.87,1977.92],"6-87-48":[31.01,78.85],"6-87-49":[35.15,81.15],"5-43-24":[31.01,81.15],"6-87-50":[34.57,74.84],"6-87-51":[33.74,72.48],"5-43-25":[33.74,75.08],"4-21-12":[31.01,84.88],"6-87-52":[30.61,72.75],"6-87-53":[28.03,63.27],"5-43-26":[28.03,72.75],"6-87-54":[25.92,57.16],"6-87-55":[24.41,55.46],"5-43-27":[24.41,60.6],"4-21-13":[24.41,1169.19],"3-10-6":[10.5,2242.91],"6-87-56":[25.66,1925.54],"6-87-57":[136.32,1897.68],"5-43-28":[25.66,2407.49],"6-87-58":[355.79,2297.22],"6-87-59":[2244.47,3491.07],"5-43-29":[355.79,3491.07],"4-21-14":[25.66,3491.07],"6-87-60":[3458.69,3965.2],"6-87-61":[3500.57,3965.2],"5-43-30":[3395.86,3965.2],"6-87-62":[3065.04,3512.38],"6-87-63":[-29.54,3065.32],"5-43-31":[-29.54,3512.38],"4-21-15":[-29.54,3965.2],"3-10-7":[-29.54,3965.2],"6-88-0":[13.58,31.01],"6-88-1":[13.27,34.8],"6-88-2":[9.6,27.7],"6-88-3":[1.29,19.28],"6-88-4":[-5.14,793.47],"6-88-5":[-12.58,3.96],"6-88-6":[-14.53,64.34],"6-88-7":[-18.34,249.41],"6-88-8":[-13.24,223.3],"6-88-9":[3.21,226.52],"6-88-10":[-20.98,136.47],"6-88-11":[2.46,131.78],"6-88-12":[34.5,332.5],"6-88-13":[145.85,893.06],"6-88-14":[222.12,731.79],"6-88-15":[55.49,447.99],"6-88-16":[49.18,2106.12],"6-88-17":[156.79,5451.96],"6-88-18":[244.11,5411.27],"6-88-19":[361.44,5666.76],"6-88-20":[181.3,4714.77],"6-88-21":[-15.14,3432.07],"6-88-22":[-77.27,1024.24],"6-88-23":[-103.33,403.18],"6-88-24":[-126.49,569.02],"6-88-25":[-152.38,-59.6],"6-88-26":[-167.17,-70.97],"6-88-27":[-179.31,-76.12],"6-88-28":[-187.08,-81.89],"6-88-29":[-189.2,-85.59],"6-88-30":[-189.78,-83.95],"6-88-31":[-187.17,-81.05],"6-88-32":[-180.89,-76.23],"6-88-33":[-170.46,-69.57],"6-88-34":[-155.68,-60.53],"6-88-35":[-133.85,-49.91],"6-88-36":[-111.17,-38.44],"6-88-37":[-86,-27.34],"6-88-38":[-66.93,-16.67],"6-88-39":[-40.72,-8.66],"6-88-40":[-24.16,-1.51],"6-88-41":[-5.67,10.45],"6-88-42":[1.91,19.79],"6-88-43":[7.53,31.3],"6-88-44":[12.64,39.85],"6-88-45":[17.05,49.39],"6-88-46":[21.65,55.46],"6-88-47":[26.11,62.12],"6-88-48":[30.67,79.28],"6-88-49":[-55.82,1713.79],"6-88-50":[33.89,78.24],"6-88-51":[33.4,70.95],"6-88-52":[29.73,72.08],"6-88-53":[27.21,63.18],"6-88-54":[24.13,56.07],"6-88-55":[22.3,50.78],"6-88-56":[16.28,1116.82],"6-88-57":[13.9,1564.5],"6-88-58":[355.79,2295.88],"6-88-59":[2244.13,3490.99],"6-88-60":[3476.04,3997.79],"6-88-61":[3512.37,4001.34],"6-88-62":[3064.8,3523.63],"6-88-63":[-29.54,3065.05],"6-89-0":[13.6,30.41],"6-89-1":[13.24,33.54],"5-44-0":[13.24,34.8],"6-89-2":[9.34,26.43],"6-89-3":[1.06,16.79],"5-44-1":[1.06,27.7],"6-89-4":[-9.36,2.28],"6-89-5":[-14.35,7.89],"5-44-2":[-14.35,793.47],"6-89-6":[-19.83,60.3],"6-89-7":[-28.71,104.27],"5-44-3":[-28.71,249.41],"6-89-8":[-30.59,100.53],"6-89-9":[14.74,139.63],"5-44-4":[-30.59,226.52],"6-89-10":[-23.64,118.52],"6-89-11":[12.07,117.67],"5-44-5":[-23.64,136.47],"6-89-12":[-17.42,204.12],"6-89-13":[-52.7,749.66],"5-44-6":[-52.7,893.06],"6-89-14":[235.46,1122.49],"6-89-15":[163.09,1082.6],"5-44-7":[55.49,1122.49],"6-89-16":[148.14,4445.78],"6-89-17":[252.71,5979.55],"5-44-8":[49.18,5979.55],"6-89-18":[784.14,7425.22],"6-89-20":[59.84,2777.08],"6-89-19":[190.61,7670.17],"5-44-9":[190.61,7670.17],"6-89-21":[3.23,1028.73],"5-44-10":[-15.14,4714.77],"6-89-22":[-10.18,913.48],"6-89-23":[-89.16,1654.1],"5-44-11":[-103.33,1654.1],"6-89-24":[-133.04,1010.35],"6-89-25":[-155.77,598.43],"5-44-12":[-155.77,1010.35],"6-89-26":[-173.23,-75.99],"6-89-27":[-184.16,-67.66],"5-44-13":[-184.16,-67.66],"6-89-28":[-193.17,-72.32],"6-89-29":[-194.63,-67.67],"5-44-14":[-194.63,-67.67],"6-89-30":[-195.24,-67.2],"6-89-31":[-194.81,-43.56],"5-44-15":[-195.24,-43.56],"6-89-32":[-191.21,-78.05],"6-89-33":[-180.97,-40.52],"5-44-16":[-191.21,-40.52],"6-89-34":[-165.05,-37.6],"6-89-35":[-149.67,-56.07],"5-44-17":[-165.05,-37.6],"6-89-36":[-128.73,-45.3],"6-89-37":[-102.87,-34.29],"5-44-18":[-128.73,-27.34],"6-89-38":[-81.85,-22.52],"6-89-39":[-54.75,-12.77],"5-44-19":[-81.85,-8.66],"6-89-40":[-37.19,-4.34],"6-89-41":[-16.37,3.13],"5-44-20":[-37.19,10.45],"6-89-42":[-2.98,13.04],"6-89-43":[4.23,24.34],"5-44-21":[-2.98,31.3],"6-89-44":[9.98,32.16],"6-89-45":[13.89,42.42],"5-44-22":[9.98,49.39],"6-89-46":[21.65,50.58],"6-89-47":[23.2,61.35],"5-44-23":[21.65,62.12],"6-89-48":[28.47,76.1],"6-89-49":[32.48,302.78],"5-44-24":[-55.82,1713.79],"6-89-50":[6.34,315.35],"6-89-51":[32.78,72.05],"5-44-25":[6.34,315.35],"6-89-52":[28.91,68.61],"6-89-53":[26.94,58.88],"5-44-26":[26.94,72.08],"6-89-54":[21.2,53.9],"6-89-55":[21.2,49.06],"5-44-27":[21.2,56.07],"6-89-56":[16.07,392.26],"6-89-57":[13.9,1769.28],"5-44-28":[13.9,1769.28],"6-89-58":[1383.42,2436.17],"6-89-59":[2295.87,3484.93],"5-44-29":[355.79,3490.99],"6-89-60":[3476.04,4020.7],"6-89-61":[3523.62,4020.7],"5-44-30":[3476.04,4020.7],"6-89-62":[3063.59,3529.73],"6-89-63":[-29.54,3064.81],"5-44-31":[-29.54,3529.73],"6-90-0":[13.56,29.93],"6-90-1":[12.18,32.39],"6-90-2":[9.21,25.5],"6-90-3":[0.25,16.06],"6-90-4":[-11.93,1.31],"6-90-5":[-15.18,-4.47],"6-90-6":[-19.83,102.14],"6-90-7":[-28.89,97.21],"6-90-8":[-30.59,91.65],"6-90-9":[11.33,169.41],"6-90-10":[-26.48,102.52],"6-90-11":[16.21,130.71],"6-90-12":[-4.57,132.71],"6-90-13":[-44.99,965.27],"6-90-14":[341.61,1507.27],"6-90-15":[71.29,1151.88],"6-90-16":[241.76,4807.35],"6-90-17":[805.57,6513.21],"6-90-18":[1232.72,7543.41],"6-90-20":[101.67,5343.32],"6-90-21":[81.23,447.8],"6-90-22":[129.06,998],"6-90-19":[396.49,8087.96],"6-90-23":[-71.01,1264.93],"6-90-24":[-72.08,1499.22],"6-90-25":[-97.09,1527.78],"6-90-26":[-172.11,969.76],"6-90-27":[-189.5,1943.78],"6-90-28":[-199.61,132.05],"6-90-29":[-204.11,-76.78],"6-90-30":[-205.07,-73.55],"6-90-31":[-204.43,-69.28],"6-90-32":[-200.91,-74.1],"6-90-33":[-190.7,-82.52],"6-90-34":[-178.25,-74.83],"6-90-35":[-156.76,-64.37],"6-90-36":[-137.02,-52.73],"6-90-37":[-110.72,-40.93],"6-90-38":[-90.74,-28.8],"6-90-39":[-64.94,-19.04],"6-90-40":[-47.65,-9.27],"6-90-41":[-26.36,-1.84],"6-90-42":[-11.95,7.04],"6-90-43":[1.09,18.97],"6-90-44":[6.57,26.74],"6-90-45":[11.56,36.44],"6-90-46":[16.22,45.25],"6-90-47":[21.29,56.94],"6-90-48":[26.15,64.98],"6-90-49":[29.48,73.84],"6-90-50":[27.75,2779.41],"6-90-51":[30.57,74.05],"6-90-52":[29.34,65.8],"6-90-53":[23.63,58.34],"6-90-54":[20.44,50.44],"6-90-55":[17.32,44.95],"6-90-56":[15.75,1525.64],"6-90-57":[392.25,2210.25],"6-90-58":[1769.27,2619.19],"6-90-59":[2436.16,3487.6],"6-90-60":[3484.48,4037.87],"6-90-61":[3527.59,4030.9],"6-90-62":[3063.36,3530.31],"6-90-63":[-29.54,3064.82],"6-91-0":[13.58,29.33],"6-91-1":[12.18,31.01],"5-45-0":[12.18,32.39],"6-91-2":[8.56,24.24],"6-91-3":[-0.35,15.89],"5-45-1":[-0.35,25.5],"4-22-0":[-0.35,34.8],"6-91-4":[-13.02,0.37],"6-91-5":[-17.46,-5.58],"5-45-2":[-17.46,1.31],"6-91-6":[-20,102],"6-91-7":[-29.05,103.01],"5-45-3":[-29.05,103.01],"4-22-1":[-29.05,793.47],"6-91-8":[-29.05,81.75],"6-91-9":[-9.54,122.72],"5-45-4":[-30.59,169.41],"6-91-10":[-28.84,110.81],"6-91-11":[16.8,118.68],"5-45-5":[-28.84,130.71],"4-22-2":[-30.59,226.52],"6-91-12":[41.21,133.68],"6-91-13":[17.89,487.76],"5-45-6":[-44.99,965.27],"6-91-14":[131.95,1504.92],"6-91-15":[271.47,1384.81],"5-45-7":[71.29,1507.27],"4-22-3":[-52.7,1507.27],"6-91-16":[329.52,4930.95],"6-91-17":[1039.82,5827.63],"5-45-8":[241.76,6513.21],"6-91-18":[1051.98,6379.76],"6-91-19":[2249.39,8560.58],"5-45-9":[396.49,8560.58],"4-22-4":[49.18,8560.58],"6-91-20":[176.06,6725.08],"6-91-21":[96.74,4563.58],"5-45-10":[81.23,6725.08],"6-91-22":[31.65,732.76],"6-91-23":[133.09,994.23],"5-45-11":[-71.01,1264.93],"4-22-5":[-103.33,6725.08],"6-91-24":[88.59,1273.26],"6-91-25":[133.67,698.38],"5-45-12":[-97.09,1527.78],"6-91-26":[29.03,1069.77],"6-91-27":[-98.98,2543.22],"5-45-13":[-189.5,2543.22],"4-22-6":[-189.5,2543.22],"6-91-28":[-197.25,2590.24],"6-91-29":[-213.05,1544.94],"5-45-14":[-213.05,2590.24],"6-91-30":[-213.9,-102.05],"6-91-31":[-208.09,-100.58],"5-45-15":[-213.9,-69.28],"4-22-7":[-213.9,2590.24],"6-91-32":[-205.64,-96.41],"6-91-33":[-194.02,-89.47],"5-45-16":[-205.64,-74.1],"6-91-34":[-182.42,-79.86],"6-91-35":[-161.36,-69.08],"5-45-17":[-182.42,-64.37],"4-22-8":[-205.64,-37.6],"6-91-36":[-142.2,-57.49],"6-91-37":[-116.73,-45.58],"5-45-18":[-142.2,-40.93],"6-91-38":[-98.13,-34.54],"6-91-39":[-76.39,-24.5],"5-45-19":[-98.13,-19.04],"4-22-9":[-142.2,-8.66],"6-91-40":[-59.57,-14.97],"6-91-41":[-39.69,-6.64],"5-45-20":[-59.57,-1.84],"6-91-42":[-24.55,1.1],"6-91-43":[-6.24,12.33],"5-45-21":[-24.55,18.97],"4-22-10":[-59.57,31.3],"6-91-44":[3.69,23.13],"6-91-45":[-0.46,882.59],"5-45-22":[-0.46,882.59],"6-91-46":[14.12,40.84],"6-91-47":[18.73,51.83],"5-45-23":[14.12,56.94],"4-22-11":[-0.46,882.59],"6-91-48":[26.15,57.63],"6-91-49":[26.58,64.22],"5-45-24":[26.15,73.84],"6-91-50":[28.51,71.32],"6-91-51":[27.46,68.43],"5-45-25":[27.46,2779.41],"4-22-12":[-55.82,2779.41],"6-91-52":[27.54,61.22],"6-91-53":[23.63,57.26],"5-45-26":[23.63,65.8],"6-91-54":[18.37,46.65],"6-91-55":[17.3,38.66],"5-45-27":[17.3,50.44],"4-22-13":[17.3,72.08],"6-91-56":[15.75,1873.55],"6-91-57":[1472.92,2662.65],"5-45-28":[15.75,2662.65],"6-91-58":[2210.24,2841.83],"6-91-59":[2619.18,3506.71],"5-45-29":[1769.27,3506.71],"4-22-14":[13.9,3506.71],"6-91-60":[3487.59,4042.04],"6-91-61":[3516.4,4030.73],"5-45-30":[3484.48,4042.04],"6-91-62":[3063.05,3527.6],"6-91-63":[-29.54,3066.42],"5-45-31":[-29.54,3530.31],"4-22-15":[-29.54,4042.04],"6-92-0":[13.55,28.88],"6-92-1":[11.24,30.24],"6-92-2":[7.88,23.28],"6-92-3":[-1.45,283.89],"6-92-4":[-12.53,-0.34],"6-92-5":[-17.94,255.31],"6-92-6":[-21.31,243.75],"6-92-7":[-24.37,117.76],"6-92-8":[-24.37,64.43],"6-92-9":[-19.87,203.65],"6-92-10":[-30.16,114.52],"6-92-11":[9.32,125.15],"6-92-12":[63.09,235.48],"6-92-13":[48.15,478.3],"6-92-14":[109.62,1419.87],"6-92-15":[276.31,4532.62],"6-92-16":[432.35,6633.62],"6-92-17":[908.55,7087.4],"6-92-18":[1029.39,4976.93],"6-92-19":[1276.56,7022.3],"6-92-20":[2453.79,7194.47],"6-92-21":[35.37,7787.57],"6-92-22":[-15.2,295.99],"6-92-23":[-6.93,1069.67],"6-92-24":[29.9,1095.71],"6-92-25":[-88.56,1197.87],"6-92-26":[-182.75,1006.73],"6-92-27":[-197.07,1132.42],"6-92-28":[-198.18,434.8],"6-92-29":[-212.75,2430.45],"6-92-30":[-213.9,-101.01],"6-92-31":[-207.87,-100.16],"6-92-32":[-205.79,-94.42],"6-92-33":[-195,-88.59],"6-92-34":[-182.48,-79.41],"6-92-35":[-161.34,-70.63],"6-92-36":[-142.37,-59.67],"6-92-37":[-120.53,-49.07],"6-92-38":[-104.92,-39.42],"6-92-39":[-84.27,-29.78],"6-92-40":[-67.56,-20.85],"6-92-41":[-47.53,-12.67],"6-92-42":[-33.56,-4.07],"6-92-43":[-15.92,6.04],"6-92-44":[-3.11,19.27],"6-92-45":[3.14,28.24],"6-92-46":[9.41,36.29],"6-92-47":[15.61,46.42],"6-92-48":[19.59,52.39],"6-92-49":[23.34,58.26],"6-92-50":[24.55,61.51],"6-92-51":[20.83,56.57],"6-92-52":[20.97,56.29],"6-92-53":[20.93,53.7],"6-92-54":[15.67,43.92],"6-92-55":[14.25,36.25],"6-92-56":[15.39,2339.17],"6-92-57":[1873.54,2935.32],"6-92-58":[2662.64,3173.47],"6-92-59":[2841.82,3593.63],"6-92-60":[3506.7,4042.04],"6-92-61":[3499.19,4001.04],"6-92-62":[3062.85,3516.41],"6-92-63":[-29.54,3066.46],"6-93-0":[13.56,28.31],"6-93-1":[11.24,29.45],"5-46-0":[11.24,30.24],"6-93-2":[7.36,22.43],"6-93-3":[-1.93,13.28],"5-46-1":[-1.93,283.89],"6-93-4":[-12.52,9.42],"6-93-5":[-19.04,346.14],"5-46-2":[-19.04,346.14],"6-93-6":[-25.93,405.51],"6-93-7":[-28.7,174.16],"5-46-3":[-28.7,405.51],"6-93-8":[-19.06,149.97],"6-93-9":[-3.71,236.06],"5-46-4":[-24.37,236.06],"6-93-10":[-30.26,155.46],"6-93-11":[10.19,162.81],"5-46-5":[-30.26,162.81],"6-93-12":[-1.52,446.71],"6-93-13":[73.33,2380.4],"5-46-6":[-1.52,2380.4],"6-93-14":[23.35,2712],"6-93-15":[124.82,3961.77],"5-46-7":[23.35,4532.62],"6-93-16":[105.62,5107.74],"6-93-17":[837.93,3794.4],"5-46-8":[105.62,7087.4],"6-93-18":[954.9,6062.91],"6-93-19":[1693.3,6911.73],"5-46-9":[954.9,7022.3],"6-93-20":[4293.12,6600.18],"6-93-21":[81.18,8103.55],"5-46-10":[35.37,8103.55],"6-93-22":[-46.13,2512.35],"6-93-23":[-31.32,1178.46],"5-46-11":[-46.13,2512.35],"6-93-24":[-19.46,1262.43],"6-93-25":[-161.45,1608.79],"5-46-12":[-161.45,1608.79],"6-93-26":[-181.92,-37.98],"6-93-27":[-194.57,-86.28],"5-46-13":[-197.07,1132.42],"6-93-28":[-196.82,-88.67],"6-93-29":[-203.21,351.9],"5-46-14":[-212.75,2430.45],"6-93-30":[-206.92,-92.98],"6-93-31":[-203.79,-91.46],"5-46-15":[-213.9,-91.46],"6-93-32":[-197.97,-88.46],"6-93-33":[-185.94,-84.21],"5-46-16":[-205.79,-84.21],"6-93-34":[-175.59,-76.82],"6-93-35":[-155.42,-69.13],"5-46-17":[-182.48,-69.13],"6-93-36":[-142.66,-61.65],"6-93-37":[-126.46,-53.23],"5-46-18":[-142.66,-49.07],"6-93-38":[-113.57,-44.2],"6-93-39":[-92.35,-34.33],"5-46-19":[-113.57,-29.78],"6-93-40":[-75.45,-25.32],"6-93-41":[-57.43,-17.51],"5-46-20":[-75.45,-12.67],"6-93-42":[-43.87,-9.49],"6-93-43":[-26.53,-2.26],"5-46-21":[-43.87,6.04],"6-93-44":[-14.66,3.69],"6-93-45":[-1.24,17.7],"5-46-22":[-14.66,28.24],"6-93-46":[5.93,28.99],"6-93-47":[11.24,38.3],"5-46-23":[5.93,46.42],"6-93-48":[19.38,44.79],"6-93-49":[19.38,49.77],"5-46-24":[19.38,58.26],"6-93-50":[20.9,50.43],"6-93-51":[20.83,47.65],"5-46-25":[20.83,61.51],"6-93-52":[18.26,48.46],"6-93-53":[18.26,48.79],"5-46-26":[18.26,56.29],"6-93-54":[14.04,41],"6-93-55":[13.54,635.17],"5-46-27":[13.54,635.17],"6-93-56":[15.52,2519.02],"6-93-57":[2339.16,3197.54],"5-46-28":[15.39,3197.54],"6-93-58":[2935.31,3364.13],"6-93-59":[3109.51,3621.13],"5-46-29":[2662.64,3621.13],"6-93-60":[3593.62,4025.51],"6-93-61":[3480.01,3923.74],"5-46-30":[3480.01,4042.04],"6-93-62":[3063.46,3499.2],"6-93-63":[-29.54,3067.15],"5-46-31":[-29.54,3516.41],"6-94-0":[13.47,27.85],"6-94-1":[10.93,28.85],"6-94-2":[6.21,22.12],"6-94-3":[-2.74,11.48],"6-94-4":[-13.52,-1.43],"6-94-5":[-19.79,311.63],"6-94-6":[-11.52,248.42],"6-94-7":[-28.7,355.11],"6-94-8":[-17.9,176.8],"6-94-9":[-7.94,232.96],"6-94-10":[-30.83,204.28],"6-94-11":[21.88,252.1],"6-94-12":[-18.21,544.69],"6-94-13":[103.65,2652.03],"6-94-14":[329.84,4375.85],"6-94-15":[163.35,3786.97],"6-94-16":[217.97,5220.28],"6-94-17":[745.63,3644.02],"6-94-18":[804.64,6686.7],"6-94-19":[4212.17,6437.5],"6-94-20":[4352.91,6733.83],"6-94-21":[458.23,8019.76],"6-94-22":[-62.15,8777.15],"6-94-23":[-49.51,1317.62],"6-94-24":[-131.49,1124.07],"6-94-25":[-161,1331.06],"6-94-26":[-174.06,-73.06],"6-94-27":[-177.34,-76.23],"6-94-28":[-181.5,-77.26],"6-94-29":[-187.4,-77.29],"6-94-30":[-187.32,-78.62],"6-94-31":[-187.52,-78.17],"6-94-32":[-182.92,-76.46],"6-94-33":[-176.4,-74.65],"6-94-34":[-168.43,-71.13],"6-94-35":[-151.14,-67.72],"6-94-36":[-139.6,-60.57],"6-94-37":[-126.46,-54.12],"6-94-38":[-114.22,-45.3],"6-94-39":[-93.08,-37.72],"6-94-40":[-77.95,-29.61],"6-94-41":[-61.78,-22.17],"6-94-42":[-50.7,-14.14],"6-94-43":[-33.49,-7.53],"6-94-44":[-21.33,-1.23],"6-94-45":[-8.99,10.6],"6-94-46":[0.56,21.41],"6-94-47":[7.51,31.9],"6-94-48":[11.75,38.12],"6-94-49":[15.47,42.62],"6-94-50":[16.83,42.88],"6-94-51":[15.6,40.98],"6-94-52":[12.93,36.12],"6-94-53":[11.48,39.7],"6-94-54":[10.61,32.65],"6-94-55":[10.62,1029.1],"6-94-56":[635.16,2637.61],"6-94-57":[2519.01,3300.48],"6-94-58":[3197.53,3450.97],"6-94-59":[3321.28,3672.41],"6-94-60":[3621.12,3954.97],"6-94-61":[3420.25,3850.88],"6-94-62":[3064.94,3480.02],"6-94-63":[-29.54,3067.91],"6-95-0":[13.31,27.3],"6-95-1":[10.93,27.94],"5-47-0":[10.93,28.85],"6-95-2":[6.2,21.84],"6-95-3":[-3.28,10.22],"5-47-1":[-3.28,22.12],"4-23-0":[-3.28,283.89],"6-95-4":[-13.57,46.56],"6-95-5":[-14.69,348.59],"5-47-2":[-19.79,348.59],"6-95-6":[-9.39,401.33],"6-95-7":[-9.94,941.07],"5-47-3":[-28.7,941.07],"4-23-1":[-28.7,941.07],"3-11-0":[-29.05,941.07],"6-95-8":[-21.59,733.23],"6-95-9":[-13.86,628.73],"5-47-4":[-21.59,733.23],"6-95-10":[-32.57,242.85],"6-95-11":[53.1,262.78],"5-47-5":[-32.57,262.78],"4-23-2":[-32.57,733.23],"6-95-12":[74.14,2173.74],"6-95-13":[176.51,3529.7],"5-47-6":[-18.21,3529.7],"6-95-14":[474.07,4279.84],"6-95-15":[301.44,3328.41],"5-47-7":[163.35,4375.85],"4-23-3":[-18.21,4532.62],"3-11-1":[-52.7,4532.62],"2-5-0":[-251.81,4532.62],"6-95-16":[-260.5,4987.09],"6-95-17":[619.6,2654.79],"5-47-8":[-260.5,5220.28],"6-95-18":[731.86,6201.27],"6-95-19":[4444.41,6890.4],"5-47-9":[731.86,6890.4],"4-23-4":[-260.5,7087.4],"6-95-20":[4425.14,6254.63],"6-95-21":[988.33,7070.27],"5-47-10":[458.23,8019.76],"6-95-22":[-69.58,8478.4],"6-95-23":[-139.77,533.63],"5-47-11":[-139.77,8777.15],"4-23-5":[-139.77,8777.15],"3-11-2":[-260.5,8777.15],"6-95-24":[-131.42,26.16],"6-95-25":[-146.13,-61.4],"5-47-12":[-161,1331.06],"6-95-26":[-150.96,-63.4],"6-95-27":[-152.36,-64.19],"5-47-13":[-177.34,-63.4],"4-23-6":[-197.07,1608.79],"6-95-28":[-152.61,-62.12],"6-95-29":[-153.05,-59.77],"5-47-14":[-187.4,-59.77],"6-95-30":[-153.22,-59.81],"6-95-31":[-153.97,-60.33],"5-47-15":[-187.52,-59.81],"4-23-7":[-213.9,2430.45],"3-11-3":[-213.9,2590.24],"2-5-1":[-260.5,8777.15],"1-2-0":[-398.55,8777.15],"6-95-32":[-153.84,-61.96],"6-95-33":[-150.16,-62.76],"5-47-16":[-182.92,-61.96],"6-95-34":[-147.07,-63.18],"6-95-35":[-139.29,-62.21],"5-47-17":[-168.43,-62.21],"4-23-8":[-205.79,-61.96],"6-95-36":[-135.36,-58.3],"6-95-37":[-121.04,-51.25],"5-47-18":[-139.6,-51.25],"6-95-38":[-111.37,-44.8],"6-95-39":[-96.39,-38.31],"5-47-19":[-114.22,-37.72],"4-23-9":[-142.66,-29.78],"3-11-4":[-205.79,-8.66],"6-95-40":[-87.28,-30.97],"6-95-41":[-73.3,-25.9],"5-47-20":[-87.28,-22.17],"6-95-42":[-61.25,-17.39],"6-95-43":[-45.22,-11.38],"5-47-21":[-61.25,-7.53],"4-23-10":[-87.28,6.04],"6-95-44":[-34.87,-6.02],"6-95-45":[-20.9,0.57],"5-47-22":[-34.87,10.6],"6-95-46":[-8.31,12.66],"6-95-47":[2.81,22.59],"5-47-23":[-8.31,31.9],"4-23-11":[-34.87,46.42],"3-11-5":[-87.28,882.59],"2-5-2":[-205.79,3059.56],"6-95-48":[11.13,29.29],"6-95-49":[11.13,33.22],"5-47-24":[11.13,42.62],"6-95-50":[13.37,33.58],"6-95-51":[13.37,32.64],"5-47-25":[13.37,42.88],"4-23-12":[11.13,61.51],"6-95-52":[10.23,30.49],"6-95-53":[10.23,23.8],"5-47-26":[10.23,39.7],"6-95-54":[6.78,21.99],"6-95-55":[6.78,1290.06],"5-47-27":[6.78,1290.06],"4-23-13":[6.78,1290.06],"3-11-6":[-55.82,2779.41],"6-95-56":[1007.52,2688.65],"6-95-57":[2637.6,3479.02],"5-47-28":[635.16,3479.02],"6-95-58":[3300.47,3627.63],"6-95-59":[3450.96,3738.39],"5-47-29":[3197.53,3738.39],"4-23-14":[15.39,3738.39],"6-95-60":[3672.4,3883.62],"6-95-61":[3372.97,3781.94],"5-47-30":[3372.97,3954.97],"6-95-62":[3066.6,3420.26],"6-95-63":[-29.54,3069.78],"5-47-31":[-29.54,3480.02],"4-23-15":[-29.54,4042.04],"3-11-7":[-29.54,4042.04],"2-5-3":[-55.82,4042.04],"1-2-1":[-242.83,5869.55],"6-96-0":[13.05,27.12],"6-96-1":[10.66,27.25],"6-96-2":[6.32,21.6],"6-96-3":[-3.81,327.9],"6-96-4":[-13.97,41.97],"6-96-5":[-14.52,491.93],"6-96-6":[-12.84,766.61],"6-96-7":[15.52,1577.7],"6-96-8":[23.06,974.81],"6-96-9":[0.51,751.03],"6-96-10":[-32.17,917.02],"6-96-11":[22.51,457.27],"6-96-12":[87.23,1266.17],"6-96-13":[216.38,3266],"6-96-14":[707.82,4151.48],"6-96-15":[820.5,4116.23],"6-96-16":[-31.39,3824.31],"6-96-17":[290.2,2504.01],"6-96-18":[1263.81,5909.96],"6-96-19":[3248.18,6767.17],"6-96-20":[4109.93,6522.84],"6-96-21":[2989.51,7463.69],"6-96-22":[-83.69,7512.84],"6-96-23":[-109,1663.78],"6-96-24":[-122.52,1062.24],"6-96-25":[-126.56,-53.86],"6-96-26":[-128.85,-59.44],"6-96-27":[-129.38,407.51],"6-96-28":[-128.18,114.95],"6-96-29":[-123.94,-53.59],"6-96-30":[-121.58,-48.89],"6-96-31":[-126.69,-47.66],"6-96-32":[-127.67,-47.94],"6-96-33":[-128.62,-48.79],"6-96-34":[-129.46,-51.46],"6-96-35":[-129.43,-54.63],"6-96-36":[-128.76,-55.19],"6-96-37":[-118.48,-52.16],"6-96-38":[-109.45,-47.88],"6-96-39":[-96.5,-43.64],"6-96-40":[-90.53,-37.51],"6-96-41":[-79.29,-30.63],"6-96-42":[-69.21,-23.04],"6-96-43":[-55.83,-17.8],"6-96-44":[-44.21,-11.23],"6-96-45":[-29.81,-4.63],"6-96-46":[-17.32,4.18],"6-96-47":[-2.33,15.19],"6-96-48":[3,21.54],"6-96-49":[6.76,26.13],"6-96-50":[9.32,27.61],"6-96-51":[9.2,26.58],"6-96-52":[7.16,26.06],"6-96-53":[2.39,19.5],"6-96-54":[2.39,14.94],"6-96-55":[3.38,1584.77],"6-96-56":[1290.05,2802.12],"6-96-57":[2688.64,3518.93],"6-96-58":[3479.01,3704.38],"6-96-59":[3627.62,3756.39],"6-96-60":[3652.33,3799.9],"6-96-61":[3341.14,3696.84],"6-96-62":[3068.58,3372.98],"6-96-63":[-29.54,3073.17],"6-97-0":[12.85,27.04],"6-97-1":[10.66,26.67],"5-48-0":[10.66,27.25],"6-97-2":[5.88,21.3],"6-97-3":[-5.43,785.33],"5-48-1":[-5.43,785.33],"6-97-4":[-15.46,476.72],"6-97-5":[-7.89,604.4],"5-48-2":[-15.46,604.4],"6-97-6":[-13.92,806.23],"6-97-7":[44.76,1618.98],"5-48-3":[-13.92,1618.98],"6-97-8":[91.31,1177.41],"6-97-9":[10.89,764.98],"5-48-4":[0.51,1177.41],"6-97-10":[-24.59,1092.04],"6-97-11":[-3.1,823.06],"5-48-5":[-32.17,1092.04],"6-97-12":[74.37,2561.56],"6-97-13":[260.85,2677.49],"5-48-6":[74.37,3266],"6-97-14":[697.66,2882.06],"6-97-15":[906.92,4155.27],"5-48-7":[697.66,4155.27],"6-97-16":[219.52,4825.04],"6-97-17":[271.2,4733.64],"5-48-8":[-31.39,4825.04],"6-97-18":[2241.79,5772.12],"6-97-19":[2644.39,6131.65],"5-48-9":[1263.81,6767.17],"6-97-20":[3253.98,6237.58],"6-97-21":[107.58,7221.31],"5-48-10":[107.58,7463.69],"6-97-22":[-53.33,5335.5],"6-97-23":[-92.67,2777.96],"5-48-11":[-109,7512.84],"6-97-24":[-99.38,3021.9],"6-97-25":[-120.76,1489.97],"5-48-12":[-126.56,3021.9],"6-97-26":[-124.46,365.67],"6-97-27":[-120.57,671.16],"5-48-13":[-129.38,671.16],"6-97-28":[-127.91,253.16],"6-97-29":[-120.45,634.69],"5-48-14":[-128.18,634.69],"6-97-30":[-106.53,2140.29],"6-97-31":[-94.44,-30.37],"5-48-15":[-126.69,2140.29],"6-97-32":[-93.37,-30.41],"6-97-33":[-100.58,-33.35],"5-48-16":[-128.62,-30.41],"6-97-34":[-105.96,-38.16],"6-97-35":[-109.16,-42.72],"5-48-17":[-129.46,-38.16],"6-97-36":[-110.94,-44.59],"6-97-37":[-107.55,-47.06],"5-48-18":[-128.76,-44.59],"6-97-38":[-103.96,-48.28],"6-97-39":[-97.49,-45.28],"5-48-19":[-109.45,-43.64],"6-97-40":[-91.36,-40.59],"6-97-41":[-84.52,-34.82],"5-48-20":[-91.36,-30.63],"6-97-42":[-74.46,-27.37],"6-97-43":[-60.54,-22.77],"5-48-21":[-74.46,-17.8],"6-97-44":[-55.82,-16.33],"6-97-45":[-41.68,-9.34],"5-48-22":[-55.82,-4.63],"6-97-46":[-29.34,-2.32],"6-97-47":[-13.57,4.79],"5-48-23":[-29.34,15.19],"6-97-48":[-3.72,11.69],"6-97-49":[2.56,17.71],"5-48-24":[-3.72,26.13],"6-97-50":[5.93,18.3],"6-97-51":[6.01,18.13],"5-48-25":[5.93,27.61],"6-97-52":[3.78,17.87],"6-97-53":[-1.51,12.15],"5-48-26":[-1.51,26.06],"6-97-54":[-2.2,7.25],"6-97-55":[-0.05,1584.77],"5-48-27":[-2.2,1584.77],"6-97-56":[1497.42,2824.51],"6-97-57":[2802.11,3500.23],"5-48-28":[1290.05,3518.93],"6-97-58":[3409.99,3719.54],"6-97-59":[3704.37,3755.97],"5-48-29":[3409.99,3756.39],"6-97-60":[3612.81,3775.22],"6-97-61":[3317.34,3652.34],"5-48-30":[3317.34,3799.9],"6-97-62":[3069.22,3341.15],"6-97-63":[-29.54,3074.67],"5-48-31":[-29.54,3372.98],"6-98-0":[12.57,27.03],"6-98-1":[10.26,26.35],"6-98-2":[4.57,21],"6-98-3":[-6.42,915.41],"6-98-4":[-16.48,237.04],"6-98-5":[-7.98,810.48],"6-98-6":[-11.47,688.57],"6-98-7":[12.53,1569.96],"6-98-8":[124.42,1090.5],"6-98-9":[50.44,887.64],"6-98-10":[-27,775.1],"6-98-11":[69.08,615.55],"6-98-12":[151.22,2887.36],"6-98-13":[660.12,2999.01],"6-98-14":[1179.37,3482.56],"6-98-15":[1006.26,3928.85],"6-98-16":[422.97,2953.75],"6-98-17":[1074.68,5415.08],"6-98-18":[2272.72,5725.81],"6-98-19":[2617.61,5462.57],"6-98-20":[3023.42,5731.48],"6-98-21":[133.36,6535.05],"6-98-22":[23.08,5106.11],"6-98-23":[12.3,3346.34],"6-98-24":[-17.38,2464.8],"6-98-25":[-86.67,2574.03],"6-98-26":[-135.7,1748.97],"6-98-27":[-96.39,1498.37],"6-98-28":[-92.56,1085.71],"6-98-29":[-80.53,550.46],"6-98-30":[-71.73,3433.72],"6-98-31":[-71.07,1843.03],"6-98-32":[-66.71,243],"6-98-33":[-76.31,-20.39],"6-98-34":[-86.19,-23.44],"6-98-35":[-91.28,-29.19],"6-98-36":[-94.14,-13.36],"6-98-37":[-101.07,-41.41],"6-98-38":[-100.77,-44.67],"6-98-39":[-96.25,-45.32],"6-98-40":[-93.34,-42.41],"6-98-41":[-85,-35.94],"6-98-42":[-76.44,-31.6],"6-98-43":[-68.5,-27.91],"6-98-44":[-62.86,-21.68],"6-98-45":[-50.56,-14.99],"6-98-46":[-38.51,-7.65],"6-98-47":[-23.36,-2.19],"6-98-48":[-12.63,4.07],"6-98-49":[-1.83,10.05],"6-98-50":[0.77,11.74],"6-98-51":[1.97,12.17],"6-98-52":[-0.24,11.35],"6-98-53":[-6.56,6.36],"6-98-54":[-6.92,6.59],"6-98-55":[-6.32,1715.72],"6-98-56":[1527.57,2802.84],"6-98-57":[2705.17,3410],"6-98-58":[3387.34,3708.3],"6-98-59":[3611.48,3736.73],"6-98-60":[3543.29,3737.71],"6-98-61":[3284.66,3612.82],"6-98-62":[3070.76,3317.35],"6-98-63":[-29.54,3075.47],"6-99-0":[12.31,27.01],"6-99-1":[10.26,25.84],"5-49-0":[10.26,27.03],"6-99-2":[4.57,20.48],"6-99-3":[-6.18,969.4],"5-49-1":[-6.42,969.4],"4-24-0":[-6.42,969.4],"6-99-4":[-16.18,517.22],"6-99-5":[-8.15,590],"5-49-2":[-16.48,810.48],"6-99-6":[-11.65,855.64],"6-99-7":[102.24,1354.63],"5-49-3":[-11.65,1569.96],"4-24-1":[-16.48,1618.98],"6-99-8":[120.14,1086.98],"6-99-9":[86.63,868.73],"5-49-4":[50.44,1090.5],"6-99-10":[-31.02,599.89],"6-99-11":[80.02,729.83],"5-49-5":[-31.02,775.1],"4-24-2":[-32.17,1177.41],"6-99-12":[187.08,2274.47],"6-99-13":[527.52,3424.72],"5-49-6":[151.22,3424.72],"6-99-14":[1035.39,3181.14],"6-99-15":[1160.58,3821.64],"5-49-7":[1006.26,3928.85],"4-24-3":[74.37,4155.27],"6-99-16":[637.58,3902.64],"6-99-17":[836.31,3828.18],"5-49-8":[422.97,5415.08],"6-99-18":[1288.02,5499.12],"6-99-19":[2175.47,6216.6],"5-49-9":[1288.02,6216.6],"4-24-4":[-31.39,6767.17],"6-99-20":[2779.55,6063.79],"6-99-21":[1586.78,6434.65],"5-49-10":[133.36,6535.05],"6-99-22":[657.1,5432.09],"6-99-23":[300.67,3530.75],"5-49-11":[12.3,5432.09],"4-24-5":[-109,7512.84],"6-99-24":[129.64,2554.75],"6-99-25":[-17.17,2536.99],"5-49-12":[-86.67,2574.03],"6-99-26":[-78.1,2080.04],"6-99-27":[-90.57,2009.72],"5-49-13":[-135.7,2080.04],"4-24-6":[-135.7,3021.9],"6-99-28":[-65.06,1760.05],"6-99-29":[-72.95,1543.06],"5-49-14":[-92.56,1760.05],"6-99-30":[-57.01,2251.47],"6-99-31":[-38.89,2884.86],"5-49-15":[-71.73,3433.72],"4-24-7":[-128.18,3433.72],"6-99-32":[-81.91,3098.13],"6-99-33":[-45.75,302.5],"5-49-16":[-81.91,3098.13],"6-99-34":[-54.35,-15.47],"6-99-35":[-71.17,-18.5],"5-49-17":[-91.28,-15.47],"4-24-8":[-129.46,3098.13],"6-99-36":[-82.83,-25.9],"6-99-37":[-88.25,-33.31],"5-49-18":[-101.07,-13.36],"6-99-38":[-94.27,-41.22],"6-99-39":[-95.18,-42.76],"5-49-19":[-100.77,-41.22],"4-24-9":[-128.76,-13.36],"6-99-40":[-92.2,-40.17],"6-99-41":[-83.68,-35.94],"5-49-20":[-93.34,-35.94],"6-99-42":[-78.69,-34.93],"6-99-43":[-74.99,-31.99],"5-49-21":[-78.69,-27.91],"4-24-10":[-93.34,-17.8],"6-99-44":[-72.56,-26.45],"6-99-45":[-59.76,-19.83],"5-49-22":[-72.56,-14.99],"6-99-46":[-48.96,-13.12],"6-99-47":[-34.76,-6.95],"5-49-23":[-48.96,-2.19],"4-24-11":[-72.56,15.19],"6-99-48":[-22.48,-1.82],"6-99-49":[-11.77,0.78],"5-49-24":[-22.48,10.05],"6-99-50":[-6.68,3.52],"6-99-51":[-3.06,3.63],"5-49-25":[-6.68,12.17],"4-24-12":[-22.48,27.61],"6-99-52":[-6.11,2.94],"6-99-53":[-14.49,-0.23],"5-49-26":[-14.49,11.35],"6-99-54":[-16.12,2.4],"6-99-55":[-5.53,1741.17],"5-49-27":[-16.12,1741.17],"4-24-13":[-16.12,1741.17],"6-99-56":[1318.62,2705.18],"6-99-57":[2640.6,3387.35],"5-49-28":[1318.62,3410],"6-99-58":[3292.46,3611.49],"6-99-59":[3525.75,3694.95],"5-49-29":[3292.46,3736.73],"4-24-14":[1290.05,3756.39],"6-99-60":[3433.71,3696.05],"6-99-61":[3240.36,3543.3],"5-49-30":[3240.36,3737.71],"6-99-62":[3070.72,3284.67],"6-99-63":[-29.54,3075.96],"5-49-31":[-29.54,3317.35],"4-24-15":[-29.54,3799.9],"6-100-0":[12.14,26.99],"6-100-1":[10.27,25.24],"6-100-2":[3.43,20.53],"6-100-3":[-0.76,788.17],"6-100-4":[-13.05,864.96],"6-100-5":[-6.27,624.53],"6-100-6":[-13.4,737.36],"6-100-7":[45.51,676.85],"6-100-8":[147.98,958.88],"6-100-9":[114.45,855.83],"6-100-10":[-24.8,555.66],"6-100-11":[130.97,852.88],"6-100-12":[253.49,918],"6-100-13":[346.44,3194.59],"6-100-14":[732.53,2295.19],"6-100-15":[986.95,3379.04],"6-100-16":[844.64,3558.09],"6-100-17":[745.38,1902.58],"6-100-18":[1168.55,5176.87],"6-100-19":[1398.27,4952.19],"6-100-20":[475.77,6100.38],"6-100-21":[222.1,7111.28],"6-100-22":[347.18,4334.26],"6-100-23":[41.06,3117.27],"6-100-24":[36.19,3084.02],"6-100-25":[52.6,2792.64],"6-100-26":[-35.3,1323.34],"6-100-27":[-72.12,1726.89],"6-100-28":[-49.94,1062.2],"6-100-29":[-35.14,1503.56],"6-100-30":[-117.38,2181.1],"6-100-31":[-68.74,1252.6],"6-100-32":[-20.47,3783.24],"6-100-33":[-69.41,3170.1],"6-100-34":[-37.01,1.6],"6-100-35":[-51.44,-9.86],"6-100-36":[-64.35,-13.79],"6-100-37":[-82.44,-27.14],"6-100-38":[-86.64,-34.46],"6-100-39":[-87.84,-34.63],"6-100-40":[-85.52,-36.5],"6-100-41":[-80.19,-37.62],"6-100-42":[-78.68,-37.25],"6-100-43":[-81.4,-35.65],"6-100-44":[-80.06,-30.59],"6-100-45":[-66.32,-24.76],"6-100-46":[-55.39,-18.12],"6-100-47":[-41.05,-11.56],"6-100-48":[-30.56,-6.29],"6-100-49":[-19.26,-3.51],"6-100-50":[-13.29,-1.45],"6-100-51":[-9.52,-0.85],"6-100-52":[-12.52,-1.6],"6-100-53":[-17.41,-3.38],"6-100-54":[-19.91,-2],"6-100-55":[-15.87,1791.71],"6-100-56":[1558.66,2640.61],"6-100-57":[2600.88,3292.47],"6-100-58":[3117.94,3525.76],"6-100-59":[3441.92,3605.31],"6-100-60":[3363.73,3601.4],"6-100-61":[3196.66,3433.72],"6-100-62":[3070.69,3240.37],"6-100-63":[-29.54,3075.89],"6-101-0":[12.06,26.97],"6-101-1":[10.27,24.01],"5-50-0":[10.27,26.99],"6-101-2":[1.88,20.61],"6-101-3":[-0.04,776.54],"5-50-1":[-0.76,788.17],"6-101-4":[-9.34,841.94],"6-101-5":[-23.59,832.71],"5-50-2":[-23.59,864.96],"6-101-6":[-24.81,718.4],"6-101-7":[121.13,1011.68],"5-50-3":[-24.81,1011.68],"6-101-8":[224.5,929.44],"6-101-9":[162.57,836.04],"5-50-4":[114.45,958.88],"6-101-10":[-27.02,706.58],"6-101-11":[88.71,984.1],"5-50-5":[-27.02,984.1],"6-101-12":[253.55,1472.91],"6-101-13":[369.08,2280.07],"5-50-6":[253.49,3194.59],"6-101-14":[518.21,1985.15],"6-101-15":[932.38,2132.01],"5-50-7":[518.21,3379.04],"6-101-16":[778.87,2678.17],"6-101-17":[651.88,2311.12],"5-50-8":[651.88,3558.09],"6-101-18":[992.38,3502.2],"6-101-19":[629.17,4106.19],"5-50-9":[629.17,5176.87],"6-101-20":[194.36,4524.83],"6-101-21":[96.37,1942.57],"5-50-10":[96.37,7111.28],"6-101-22":[245.14,2858.21],"6-101-23":[21.03,2530.43],"5-50-11":[21.03,4334.26],"6-101-24":[-94.3,2937.63],"6-101-25":[-56.68,2686.47],"5-50-12":[-94.3,3084.02],"6-101-26":[-2.53,1984.96],"6-101-27":[-62.53,1793.02],"5-50-13":[-72.12,1984.96],"6-101-28":[-88.98,988.31],"6-101-29":[-13.69,296.81],"5-50-14":[-88.98,1503.56],"6-101-30":[-7.26,564.09],"6-101-31":[-34.24,1041.7],"5-50-15":[-117.38,2181.1],"6-101-32":[-50.63,1126.85],"6-101-33":[-55.36,2229.43],"5-50-16":[-69.41,3783.24],"6-101-34":[-36.88,2218.28],"6-101-35":[-23.97,362.89],"5-50-17":[-51.44,2218.28],"6-101-36":[-50.01,-8.05],"6-101-37":[-67.22,-17.95],"5-50-18":[-82.44,-8.05],"6-101-38":[-72.92,-27.95],"6-101-39":[-72.68,-32.21],"5-50-19":[-87.84,-27.95],"6-101-40":[-76.24,-33.32],"6-101-41":[-78.06,-36.98],"5-50-20":[-85.52,-33.32],"6-101-42":[-80.1,-38.14],"6-101-43":[-82.02,-39.33],"5-50-21":[-82.02,-35.65],"6-101-44":[-82.43,-34.06],"6-101-45":[-71.27,-28.18],"5-50-22":[-82.43,-24.76],"6-101-46":[-62.71,-21.81],"6-101-47":[-49.64,-15.77],"5-50-23":[-62.71,-11.56],"6-101-48":[-39.39,-10.57],"6-101-49":[-28.16,-7.19],"5-50-24":[-39.39,-3.51],"6-101-50":[-21.77,-4.94],"6-101-51":[-17.14,-4.86],"5-50-25":[-21.77,-0.85],"6-101-52":[-18.23,-5.13],"6-101-53":[-25.73,-6.91],"5-50-26":[-25.73,-1.6],"6-101-54":[-26.47,-8.94],"6-101-55":[-27.05,1793.86],"5-50-27":[-27.05,1793.86],"6-101-56":[1569.31,2600.89],"6-101-57":[2518.51,3117.95],"5-50-28":[1558.66,3292.47],"6-101-58":[2973.88,3441.93],"6-101-59":[3288.11,3528.69],"5-50-29":[2973.88,3605.31],"6-101-60":[3280.25,3498.6],"6-101-61":[3169.63,3363.74],"5-50-30":[3169.63,3601.4],"6-101-62":[3069.83,3196.67],"6-101-63":[-29.54,3075.29],"5-50-31":[-29.54,3240.37],"6-102-0":[12.03,26.96],"6-102-1":[10.02,23.17],"6-102-2":[1.63,20.52],"6-102-3":[-0.71,3.6],"6-102-4":[-9.34,927.44],"6-102-5":[-21.44,1119.08],"6-102-6":[-21.06,734.39],"6-102-7":[132.34,887.81],"6-102-8":[166.72,947.89],"6-102-9":[178.95,743.5],"6-102-10":[-23.46,607.14],"6-102-11":[188.2,1969.85],"6-102-12":[317.03,2509.72],"6-102-13":[401.97,1987.12],"6-102-14":[522.51,2758.43],"6-102-15":[862.62,2221.84],"6-102-16":[705.9,1397.18],"6-102-17":[902.24,2304.17],"6-102-18":[874.91,1918.57],"6-102-19":[285.5,3718.19],"6-102-20":[36.4,3019.64],"6-102-21":[48.41,2199.58],"6-102-22":[81.86,2506.96],"6-102-23":[-4.49,1720.45],"6-102-24":[-110.94,1495.1],"6-102-25":[-45.58,1791.56],"6-102-26":[-43.69,2581.3],"6-102-27":[-24.82,2426.49],"6-102-28":[-33.45,1298.21],"6-102-29":[2.64,41.22],"6-102-30":[-11.18,1014.85],"6-102-31":[-30.38,1601.85],"6-102-32":[-4.18,1034.19],"6-102-33":[5.39,373.32],"6-102-34":[-27.49,3442.9],"6-102-35":[-16.46,32.46],"6-102-36":[-35.92,-0.17],"6-102-37":[-55.89,-9.77],"6-102-38":[-63.68,-20.55],"6-102-39":[-67.07,-25.59],"6-102-40":[-74.45,-31.39],"6-102-41":[-78.87,-34.22],"6-102-42":[-80.62,-38.59],"6-102-43":[-81.5,-37.5],"6-102-44":[-81.55,-36.82],"6-102-45":[-75.32,-31.36],"6-102-46":[-66.17,-25.52],"6-102-47":[-55.15,-19.95],"6-102-48":[-45.84,-14.58],"6-102-49":[-34.14,-11.03],"6-102-50":[-27.4,-8.6],"6-102-51":[-22.98,-8.32],"6-102-52":[-24.4,-8.55],"6-102-53":[-30.23,-9.28],"6-102-54":[-36.54,-12.51],"6-102-55":[-33.13,1569.32],"6-102-56":[1087.42,2518.52],"6-102-57":[2491.99,2973.89],"6-102-58":[2898.38,3288.12],"6-102-59":[3218.55,3458.77],"6-102-60":[3217.24,3410.38],"6-102-61":[3122.29,3280.26],"6-102-62":[3068.02,3169.64],"6-102-63":[-29.54,3074.68],"6-103-0":[11.81,26.94],"6-103-1":[10.02,22.97],"5-51-0":[10.02,26.96],"6-103-2":[1.76,20.03],"6-103-3":[-4.68,2.37],"5-51-1":[-4.68,20.52],"4-25-0":[-4.68,788.17],"6-103-4":[-7.07,732.27],"6-103-5":[-18.39,1038.7],"5-51-2":[-21.44,1119.08],"6-103-6":[-8.22,689.79],"6-103-7":[42.21,820.66],"5-51-3":[-21.06,887.81],"4-25-1":[-24.81,1119.08],"3-12-0":[-24.81,1618.98],"6-103-8":[142.66,871.07],"6-103-9":[190.73,581.35],"5-51-4":[142.66,947.89],"6-103-10":[-22.83,599.15],"6-103-11":[157.28,2526.11],"5-51-5":[-23.46,2526.11],"4-25-2":[-27.02,2526.11],"6-103-12":[409.57,2781.93],"6-103-13":[538.79,2000.38],"5-51-6":[317.03,2781.93],"6-103-14":[796.86,2483.46],"6-103-15":[786,1631.54],"5-51-7":[522.51,2758.43],"4-25-3":[253.49,3379.04],"3-12-1":[-32.17,4155.27],"6-103-16":[657.03,1440.56],"6-103-17":[814.48,2312.81],"5-51-8":[657.03,2312.81],"6-103-18":[461.77,2785.32],"6-103-19":[90.97,2608.85],"5-51-9":[90.97,3718.19],"4-25-4":[90.97,5176.87],"6-103-20":[-14.6,3075.61],"6-103-21":[-41.04,2284.9],"5-51-10":[-41.04,3075.61],"6-103-22":[6.19,2090.39],"6-103-23":[-33.9,1930.57],"5-51-11":[-33.9,2506.96],"4-25-5":[-41.04,7111.28],"3-12-2":[-109,7512.84],"6-103-24":[-68.73,1683.1],"6-103-25":[-50.32,1775.49],"5-51-12":[-110.94,1791.56],"6-103-26":[-15.99,22.84],"6-103-27":[-1.31,35.12],"5-51-13":[-43.69,2581.3],"4-25-6":[-110.94,3084.02],"6-103-28":[7.05,50.12],"6-103-29":[13.68,63.16],"5-51-14":[-33.45,1298.21],"6-103-30":[17.55,93.68],"6-103-31":[-60.48,1707.53],"5-51-15":[-60.48,1707.53],"4-25-7":[-117.38,2181.1],"3-12-3":[-135.7,3433.72],"6-103-32":[-5.21,1767.47],"6-103-33":[16.48,98.63],"5-51-16":[-5.21,1767.47],"6-103-34":[-32.43,3363.43],"6-103-35":[-8.1,36.62],"5-51-17":[-32.43,3442.9],"4-25-8":[-69.41,3783.24],"6-103-36":[-20.48,14.72],"6-103-37":[-39.42,-2.58],"5-51-18":[-55.89,14.72],"6-103-38":[-48.07,-12.98],"6-103-39":[-62.92,-19.51],"5-51-19":[-67.07,-12.98],"4-25-9":[-87.84,14.72],"3-12-4":[-129.46,3783.24],"6-103-40":[-67.31,-22.53],"6-103-41":[-76.31,-23.36],"5-51-20":[-78.87,-22.53],"6-103-42":[-79.55,-31.81],"6-103-43":[-79.53,-36.31],"5-51-21":[-81.5,-31.81],"4-25-10":[-85.52,-22.53],"6-103-44":[-81.64,-36.17],"6-103-45":[-78.43,-33.2],"5-51-22":[-81.64,-31.36],"6-103-46":[-69.24,-28.58],"6-103-47":[-59.94,-23.25],"5-51-23":[-69.24,-19.95],"4-25-11":[-82.43,-11.56],"3-12-5":[-93.34,15.19],"6-103-48":[-51.3,-17.94],"6-103-49":[-40.42,-14.13],"5-51-24":[-51.3,-11.03],"6-103-50":[-34.48,-12.04],"6-103-51":[-30.95,-11.71],"5-51-25":[-34.48,-8.32],"4-25-12":[-51.3,-0.85],"6-103-52":[-31.64,-11.83],"6-103-53":[-39.3,-12.7],"5-51-26":[-39.3,-8.55],"6-103-54":[-43.14,-15.55],"6-103-55":[-38.79,1241.72],"5-51-27":[-43.14,1569.32],"4-25-13":[-43.14,1793.86],"3-12-6":[-51.3,1793.86],"6-103-56":[767.03,2536.98],"6-103-57":[2496.32,2925.63],"5-51-28":[767.03,2973.89],"6-103-58":[2895.28,3218.56],"6-103-59":[3190.5,3373.24],"5-51-29":[2895.28,3458.77],"4-25-14":[767.03,3605.31],"6-103-60":[3144.58,3368.42],"6-103-61":[3056.95,3217.25],"5-51-30":[3056.95,3410.38],"6-103-62":[3059.08,3122.3],"6-103-63":[-29.54,3072.12],"5-51-31":[-29.54,3169.64],"4-25-15":[-29.54,3601.4],"3-12-7":[-29.54,3799.9],"6-104-0":[11.39,26.93],"6-104-1":[9.9,23.02],"6-104-2":[2.36,20.31],"6-104-3":[-6,3.25],"6-104-4":[-6,82.84],"6-104-5":[-17.31,495.96],"6-104-6":[-8.77,399.1],"6-104-7":[13.61,491.06],"6-104-8":[115.43,750.89],"6-104-9":[116.1,561.53],"6-104-10":[-21.96,1677.59],"6-104-11":[150.22,2530.45],"6-104-12":[479.34,2992.37],"6-104-13":[504.85,1634.35],"6-104-14":[575.67,1654.73],"6-104-15":[617.47,1754.54],"6-104-16":[880.33,1742.15],"6-104-17":[128.34,2838.35],"6-104-18":[-3.88,3047.6],"6-104-19":[5.77,1847.96],"6-104-20":[-14.28,1280.51],"6-104-21":[-154.55,1772.77],"6-104-22":[-30.87,2103.76],"6-104-23":[-95.56,1877.29],"6-104-24":[-70.08,953.51],"6-104-25":[-6.17,27.99],"6-104-26":[3.36,44.5],"6-104-27":[10.3,55.83],"6-104-28":[17.56,73.24],"6-104-29":[25.67,79.68],"6-104-30":[10.65,2422.76],"6-104-31":[29.67,2305.23],"6-104-32":[6.49,2345.05],"6-104-33":[23.54,1325.52],"6-104-34":[-20.93,3699.18],"6-104-35":[4.34,1042.4],"6-104-36":[-2.59,22.64],"6-104-37":[-24.91,7.42],"6-104-38":[-38.06,-5.3],"6-104-39":[-58.73,307.87],"6-104-40":[-68.83,370.75],"6-104-41":[-63.64,291.1],"6-104-42":[-75.39,303.79],"6-104-43":[-77.46,189.43],"6-104-44":[-81.92,202.32],"6-104-45":[-78.44,-34.62],"6-104-46":[-69.89,-30.52],"6-104-47":[-61.52,-25.77],"6-104-48":[-54.23,-20.78],"6-104-49":[-44.26,-17.39],"6-104-50":[-39.25,-15.56],"6-104-51":[-36.43,-15.24],"6-104-52":[-37.17,-15.45],"6-104-53":[-45.54,-15.94],"6-104-54":[-46.98,-19.12],"6-104-55":[-44.18,1300.89],"6-104-56":[486.82,2508.46],"6-104-57":[2399.34,2971.73],"6-104-58":[2925.62,3190.51],"6-104-59":[3187.99,3320.02],"6-104-60":[3081.53,3317.03],"6-104-61":[2940.53,3144.59],"6-104-62":[3024.22,3080.43],"6-104-63":[-29.54,3069.68],"6-105-0":[11.09,26.9],"6-105-1":[9.45,22.95],"5-52-0":[9.45,26.93],"6-105-2":[2.76,20.29],"6-105-3":[-5.31,3.8],"5-52-1":[-6,20.31],"6-105-4":[-5.65,-0.65],"6-105-5":[-15.13,237.7],"5-52-2":[-17.31,495.96],"6-105-6":[-2.03,277.08],"6-105-7":[17.85,385.91],"5-52-3":[-8.77,491.06],"6-105-8":[110.65,448.35],"6-105-9":[56.9,380.42],"5-52-4":[56.9,750.89],"6-105-10":[-16.13,1615.07],"6-105-11":[217.51,2962.65],"5-52-5":[-21.96,2962.65],"6-105-12":[454.52,2450.24],"6-105-13":[406.43,1532.32],"5-52-6":[406.43,2992.37],"6-105-14":[432.23,1232.86],"6-105-15":[549.84,1464.19],"5-52-7":[432.23,1754.54],"6-105-16":[730.4,2060.03],"6-105-17":[-64.08,2407.63],"5-52-8":[-64.08,2838.35],"6-105-18":[-63.81,805.59],"6-105-19":[-16.17,1519.8],"5-52-9":[-63.81,3047.6],"6-105-20":[-33.57,1755.88],"6-105-21":[-69.59,1735.53],"5-52-10":[-154.55,1772.77],"6-105-22":[4.65,2160.72],"6-105-23":[-47.98,1800.52],"5-52-11":[-95.56,2160.72],"6-105-24":[1.5,35.14],"6-105-25":[6.58,52.59],"5-52-12":[-70.08,953.51],"6-105-26":[13.99,67.42],"6-105-27":[22.24,82.34],"5-52-13":[3.36,82.34],"6-105-28":[30.08,2125.15],"6-105-29":[13.27,4108.68],"5-52-14":[13.27,4108.68],"6-105-30":[17.77,2687.61],"6-105-31":[15.58,2267.3],"5-52-15":[10.65,2687.61],"6-105-32":[-40.37,1916.44],"6-105-33":[6.53,1738.04],"5-52-16":[-40.37,2345.05],"6-105-34":[14.43,3755.88],"6-105-35":[-28.54,2972.87],"5-52-17":[-28.54,3755.88],"6-105-36":[3.7,35.22],"6-105-37":[-12.09,21.02],"5-52-18":[-24.91,35.22],"6-105-38":[-24.32,2.72],"6-105-39":[-35.25,1205.98],"5-52-19":[-58.73,1205.98],"6-105-40":[29.13,1196.06],"6-105-41":[167.75,715.25],"5-52-20":[-68.83,1196.06],"6-105-42":[-14.21,662],"6-105-43":[-99.76,566.35],"5-52-21":[-99.76,662],"6-105-44":[-78.53,969.34],"6-105-45":[-78.21,-34.74],"5-52-22":[-81.92,969.34],"6-105-46":[-69.94,-30.98],"6-105-47":[-61.91,-27.2],"5-52-23":[-69.94,-25.77],"6-105-48":[-54.84,-22.89],"6-105-49":[-47.73,-19.91],"5-52-24":[-54.84,-17.39],"6-105-50":[-42.44,-18.56],"6-105-51":[-41.44,-18.27],"5-52-25":[-42.44,-15.24],"6-105-52":[-43.24,-18.39],"6-105-53":[-52.02,-19.12],"5-52-26":[-52.02,-15.45],"6-105-54":[-54.04,-21.06],"6-105-55":[-53.1,680.38],"5-52-27":[-54.04,1300.89],"6-105-56":[536.8,2408.3],"6-105-57":[2392.94,3030.32],"5-52-28":[486.82,3030.32],"6-105-58":[2971.72,3188.16],"6-105-59":[3108.98,3235.61],"5-52-29":[2925.62,3320.02],"6-105-60":[3012.27,3197.29],"6-105-61":[2926.36,3081.54],"5-52-30":[2926.36,3317.03],"6-105-62":[2976.46,3060.18],"6-105-63":[-29.54,3063.52],"5-52-31":[-29.54,3080.43],"6-106-0":[10.64,26.89],"6-106-1":[8.53,22.53],"6-106-2":[2.49,19.46],"6-106-3":[-5.7,3.75],"6-106-4":[-6.56,0.13],"6-106-5":[-15.63,39.75],"6-106-6":[-15.63,346.26],"6-106-7":[14.94,411.14],"6-106-8":[91.15,443.53],"6-106-9":[32.4,383.49],"6-106-10":[-14.77,717.41],"6-106-11":[169.48,2548.26],"6-106-12":[315.35,2226.52],"6-106-13":[309.69,1486.61],"6-106-14":[471.52,1598.44],"6-106-15":[383.84,1743.81],"6-106-16":[236.1,1936.12],"6-106-17":[-59.35,1887.25],"6-106-18":[-120.47,785.42],"6-106-19":[-39.04,1101.77],"6-106-20":[-105.16,584.53],"6-106-21":[-78.25,1795.67],"6-106-22":[-35.2,1934.56],"6-106-23":[-36.2,3691.21],"6-106-24":[-4.52,1951.28],"6-106-25":[17.56,2501.63],"6-106-26":[-6.79,2962.21],"6-106-27":[26.54,2343.09],"6-106-28":[24.22,1769.36],"6-106-29":[30.27,536.54],"6-106-30":[32.1,935.33],"6-106-31":[37.62,2935.4],"6-106-32":[39.93,3132.81],"6-106-33":[-11.89,3490.23],"6-106-34":[19.97,1959.49],"6-106-35":[5.42,2405.04],"6-106-36":[10.5,52.7],"6-106-37":[1.57,42.5],"6-106-38":[-1.29,35.06],"6-106-39":[-31.05,1152.3],"6-106-40":[340.66,1241.42],"6-106-41":[303.97,737.39],"6-106-42":[254.05,673.8],"6-106-43":[-1.49,507.31],"6-106-44":[-78.18,1063.1],"6-106-45":[-78.01,-33.81],"6-106-46":[-69.49,-30.79],"6-106-47":[-61.11,-27.35],"6-106-48":[-54.99,-24.24],"6-106-49":[-48.72,-21.27],"6-106-50":[-45.04,-20.59],"6-106-51":[-45.09,-20.39],"6-106-52":[-47.54,-20.76],"6-106-53":[-57.28,-21.9],"6-106-54":[-61.21,-25.94],"6-106-55":[-59.83,845.24],"6-106-56":[519.85,2462.74],"6-106-57":[2401.53,3046.36],"6-106-58":[3030.31,3177.4],"6-106-59":[2994.82,3172.35],"6-106-60":[2931.11,3109.06],"6-106-61":[2879.88,3012.28],"6-106-62":[2930.22,3048.31],"6-106-63":[-29.59,3060.25],"6-107-0":[10.15,26.87],"6-107-1":[8.13,21.47],"5-53-0":[8.13,26.89],"6-107-2":[2.41,16.79],"6-107-3":[-5.35,4.39],"5-53-1":[-5.7,19.46],"4-26-0":[-6,26.93],"6-107-4":[-5.79,0.24],"6-107-5":[-13.91,13.68],"5-53-2":[-15.63,39.75],"6-107-6":[-13.91,479.01],"6-107-7":[3.58,427.06],"5-53-3":[-15.63,479.01],"4-26-1":[-17.31,495.96],"6-107-8":[3.9,342.41],"6-107-9":[56.97,417.22],"5-53-4":[3.9,443.53],"6-107-10":[-10.31,1200.19],"6-107-11":[142.11,2000.95],"5-53-5":[-14.77,2548.26],"4-26-2":[-21.96,2962.65],"6-107-12":[249.54,1644.22],"6-107-13":[260.32,1523.39],"5-53-6":[249.54,2226.52],"6-107-14":[165.96,1600.44],"6-107-15":[117.12,1541.69],"5-53-7":[117.12,1743.81],"4-26-3":[117.12,2992.37],"6-107-16":[42.3,816.14],"6-107-17":[-150.51,1174.47],"5-53-8":[-150.51,1936.12],"6-107-18":[-29.13,918.27],"6-107-19":[3.79,96.9],"5-53-9":[-120.47,1101.77],"4-26-4":[-150.51,3047.6],"6-107-20":[-52.47,121.19],"6-107-21":[-35.84,1218.7],"5-53-10":[-105.16,1795.67],"6-107-22":[0.69,450.06],"6-107-23":[-53.71,3956.01],"5-53-11":[-53.71,3956.01],"4-26-5":[-154.55,3956.01],"6-107-24":[11.3,1042.66],"6-107-25":[-10.65,2731.61],"5-53-12":[-10.65,2731.61],"6-107-26":[-0.27,2712.33],"6-107-27":[-54.19,2627.63],"5-53-13":[-54.19,2962.21],"4-26-6":[-70.08,2962.21],"6-107-28":[-134.19,2528.23],"6-107-29":[21.9,2469.27],"5-53-14":[-134.19,2528.23],"6-107-30":[58.38,136.19],"6-107-31":[24.07,2286.44],"5-53-15":[24.07,2935.4],"4-26-7":[-134.19,4108.68],"6-107-32":[0.84,2955.49],"6-107-33":[28.66,2702.65],"5-53-16":[-11.89,3490.23],"6-107-34":[15.94,1676.82],"6-107-35":[5.35,2244.61],"5-53-17":[5.35,2405.04],"4-26-8":[-40.37,3755.88],"6-107-36":[21.36,72.31],"6-107-37":[-21.63,280.29],"5-53-18":[-21.63,280.29],"6-107-38":[-20.07,284.71],"6-107-39":[-14.22,553.65],"5-53-19":[-31.05,1152.3],"4-26-9":[-58.73,1205.98],"6-107-40":[235.6,710.82],"6-107-41":[292.36,692.66],"5-53-20":[235.6,1241.42],"6-107-42":[104.9,561.35],"6-107-43":[-30.26,610.87],"5-53-21":[-30.26,673.8],"4-26-10":[-99.76,1241.42],"6-107-44":[-76.09,322.34],"6-107-45":[-73.83,-32.37],"5-53-22":[-78.18,1063.1],"6-107-46":[-67.41,-29.79],"6-107-47":[-60.78,-27.09],"5-53-23":[-69.49,-27.09],"4-26-11":[-81.92,1063.1],"6-107-48":[-54.95,-24.93],"6-107-49":[-49.55,-22.67],"5-53-24":[-54.99,-21.27],"6-107-50":[-47.09,-22.05],"6-107-51":[-49,-22.03],"5-53-25":[-49,-20.39],"4-26-12":[-54.99,-15.24],"6-107-52":[-52.14,-22.78],"6-107-53":[-62.69,-24.36],"5-53-26":[-62.69,-20.76],"6-107-54":[-67.4,-28.92],"6-107-55":[-64.36,1172.91],"5-53-27":[-67.4,1172.91],"4-26-13":[-67.4,1300.89],"6-107-56":[845.23,2590.73],"6-107-57":[2462.73,3089.34],"5-53-28":[519.85,3089.34],"6-107-58":[3046.35,3196.31],"6-107-59":[2917.96,3163.37],"5-53-29":[2917.96,3196.31],"4-26-14":[486.82,3320.02],"6-107-60":[2826.82,2994.83],"6-107-61":[2826.82,2932.32],"5-53-30":[2826.82,3109.06],"6-107-62":[2871.64,3035.5],"6-107-63":[-29.58,3058.07],"5-53-31":[-29.59,3060.25],"4-26-15":[-29.59,3317.03],"6-108-0":[10.04,26.86],"6-108-1":[7.6,20.19],"6-108-2":[2.41,15.36],"6-108-3":[-5.02,4.8],"6-108-4":[-5,0.2],"6-108-5":[-10.53,23.3],"6-108-6":[-6.11,487.14],"6-108-7":[-1.85,1127.4],"6-108-8":[-14.61,1401.18],"6-108-9":[9.01,816.9],"6-108-10":[0.99,804.47],"6-108-11":[261.28,1845.92],"6-108-12":[224.24,1706.86],"6-108-13":[169.56,1269.14],"6-108-14":[159.24,878.23],"6-108-15":[100.27,339.07],"6-108-16":[60.86,1264.57],"6-108-17":[-268.7,1987.41],"6-108-18":[-101.36,1234.98],"6-108-19":[-7.79,581.2],"6-108-20":[16.92,1941.55],"6-108-21":[18.57,59.8],"6-108-22":[22.07,60.97],"6-108-23":[8,553.56],"6-108-24":[22.25,69.87],"6-108-25":[31.05,86.5],"6-108-26":[38.77,279.06],"6-108-27":[15.22,1607.31],"6-108-28":[-24.5,2547.07],"6-108-29":[21.53,3011.04],"6-108-30":[36.96,1410.92],"6-108-31":[-6.95,2053.63],"6-108-32":[33.67,1465.3],"6-108-33":[35.26,2752.59],"6-108-34":[-4.86,1869.57],"6-108-35":[7.81,2985.2],"6-108-36":[18.74,169.89],"6-108-37":[-47.89,844.91],"6-108-38":[-13.38,967.01],"6-108-39":[127.51,455.4],"6-108-40":[265.28,557.1],"6-108-41":[312.18,555.5],"6-108-42":[124.91,497.24],"6-108-43":[-59.03,276.5],"6-108-44":[-71.44,115.27],"6-108-45":[-69.83,-30.39],"6-108-46":[-64.74,-28.34],"6-108-47":[-58.68,-26.12],"6-108-48":[-54.09,-24.3],"6-108-49":[-49.45,-23.51],"6-108-50":[-48.53,-23.46],"6-108-51":[-51.56,-23.6],"6-108-52":[-55.45,-24.6],"6-108-53":[-65.39,-26.41],"6-108-54":[-71.76,-31.34],"6-108-55":[-65.99,1359.83],"6-108-56":[1164.44,2630.58],"6-108-57":[2590.72,3151.32],"6-108-58":[3089.33,3203.64],"6-108-59":[2882.88,3159.64],"6-108-60":[2697.34,2917.97],"6-108-61":[2697.34,2871.65],"6-108-62":[2844.51,3023.22],"6-108-63":[-29.54,3057.86],"6-109-0":[10.07,26.84],"6-109-1":[7.6,19.56],"5-54-0":[7.6,26.86],"6-109-2":[1.94,15.3],"6-109-3":[-4.59,4.34],"5-54-1":[-5.02,15.36],"6-109-4":[-4.59,1.33],"6-109-5":[-11.15,-0.27],"5-54-2":[-11.15,23.3],"6-109-6":[-13.23,1068.55],"6-109-7":[49.78,2201.02],"5-54-3":[-13.23,2201.02],"6-109-8":[105.58,2117.99],"6-109-9":[2.06,1848.18],"5-54-4":[-14.61,2117.99],"6-109-10":[2.81,676.85],"6-109-11":[199.21,2240.33],"5-54-5":[0.99,2240.33],"6-109-12":[203.07,2048.94],"6-109-13":[137.94,905.39],"5-54-6":[137.94,2048.94],"6-109-14":[100.62,1057.62],"6-109-15":[12.1,1445.43],"5-54-7":[12.1,1445.43],"6-109-16":[169.25,1718.97],"6-109-17":[-9.27,2763.77],"5-54-8":[-268.7,2763.77],"6-109-18":[-16.31,1727.04],"6-109-19":[-43.56,1925.58],"5-54-9":[-101.36,1925.58],"6-109-20":[-39.24,1453.61],"6-109-21":[16.04,722.76],"5-54-10":[-39.24,1941.55],"6-109-22":[13.17,672.79],"6-109-23":[24.41,69.74],"5-54-11":[8,672.79],"6-109-24":[29.92,74.99],"6-109-25":[35.9,87.33],"5-54-12":[22.25,87.33],"6-109-26":[42.78,100.04],"6-109-27":[47.35,114.52],"5-54-13":[15.22,1607.31],"6-109-28":[47.35,127.22],"6-109-29":[45.25,289.5],"5-54-14":[-24.5,3011.04],"6-109-30":[39.86,726.39],"6-109-31":[-77.81,1820.67],"5-54-15":[-77.81,2053.63],"6-109-32":[-16.98,2152.95],"6-109-33":[17.04,2555.71],"5-54-16":[-16.98,2752.59],"6-109-34":[33.44,1415.76],"6-109-35":[30.37,2395.35],"5-54-17":[-4.86,2985.2],"6-109-36":[4.41,198.32],"6-109-37":[-3.57,755.14],"5-54-18":[-47.89,844.91],"6-109-38":[123.22,1012.77],"6-109-39":[240.33,556.98],"5-54-19":[-13.38,1012.77],"6-109-40":[305.48,1049.45],"6-109-41":[288.49,1051.49],"5-54-20":[265.28,1051.49],"6-109-42":[117.95,457.28],"6-109-43":[-68.16,175.13],"5-54-21":[-68.16,497.24],"6-109-44":[-66.21,-23.79],"6-109-45":[-63.97,-28.21],"5-54-22":[-71.44,115.27],"6-109-46":[-60.3,-26.68],"6-109-47":[-55.65,-25.02],"5-54-23":[-64.74,-25.02],"6-109-48":[-52.05,-23.14],"6-109-49":[-47.99,-22.51],"5-54-24":[-54.09,-22.51],"6-109-50":[-47.82,-22.39],"6-109-51":[-52.39,-23.56],"5-54-25":[-52.39,-22.39],"6-109-52":[-58.59,-25.84],"6-109-53":[-69.44,-28.36],"5-54-26":[-69.44,-24.6],"6-109-54":[-76.93,-32.97],"6-109-55":[-75.43,1185.13],"5-54-27":[-76.93,1359.83],"6-109-56":[945.1,2622.61],"6-109-57":[2578.38,3171.09],"5-54-28":[945.1,3171.09],"6-109-58":[3008.62,3189.23],"6-109-59":[2819.28,3116.04],"5-54-29":[2819.28,3203.64],"6-109-60":[2623.1,2882.89],"6-109-61":[2629.61,2844.52],"5-54-30":[2623.1,2917.97],"6-109-62":[2805.68,3011.97],"6-109-63":[-29.54,3059.53],"5-54-31":[-29.54,3059.53],"6-110-0":[10.54,26.83],"6-110-1":[6.87,20.99],"6-110-2":[1.92,15.13],"6-110-3":[-4.55,2.92],"6-110-4":[-4.02,4.86],"6-110-5":[-10.86,-0.21],"6-110-6":[-13.9,856.13],"6-110-7":[47.14,1828.99],"6-110-8":[120.23,1922.66],"6-110-9":[31.37,2002.65],"6-110-10":[5.26,531.48],"6-110-11":[163.23,2290.58],"6-110-12":[207.26,2374.21],"6-110-13":[182.49,1509.02],"6-110-14":[66.2,1216.44],"6-110-15":[10.1,1386.01],"6-110-16":[4.32,1509.87],"6-110-17":[10.26,1774.19],"6-110-18":[-48.7,999.37],"6-110-19":[-18.69,1373.1],"6-110-20":[-17.54,1801.42],"6-110-21":[-19.03,1948.19],"6-110-22":[24,290.95],"6-110-23":[28.82,74.19],"6-110-24":[34.84,77.85],"6-110-25":[38.27,88.57],"6-110-26":[43.53,99.45],"6-110-27":[49.52,113.8],"6-110-28":[55.44,127.03],"6-110-29":[62.11,137.95],"6-110-30":[67.63,149.08],"6-110-31":[62.22,363.49],"6-110-32":[-56.46,1519.04],"6-110-33":[-10.59,3088.67],"6-110-34":[26.67,862.43],"6-110-35":[40.62,116.33],"6-110-36":[-0.62,359.52],"6-110-37":[-20.35,453.11],"6-110-38":[138.03,558.61],"6-110-39":[237.65,915.42],"6-110-40":[389.72,1429.68],"6-110-41":[289.78,1437.62],"6-110-42":[27.63,482.51],"6-110-43":[-47.6,188.18],"6-110-44":[-60.49,-16.06],"6-110-45":[-58.01,-25.18],"6-110-46":[-56.42,-23.9],"6-110-47":[-52.82,-22.85],"6-110-48":[-49.85,-21.48],"6-110-49":[-46.08,-21.12],"6-110-50":[-46.52,-21.31],"6-110-51":[-52.46,-23.05],"6-110-52":[-59.62,-26.04],"6-110-53":[-71.74,-29.78],"6-110-54":[-80.19,-34.71],"6-110-55":[-74.89,1382.72],"6-110-56":[948.42,2601.74],"6-110-57":[2573.54,3136.57],"6-110-58":[2893.92,3137.89],"6-110-59":[2675.26,3008.63],"6-110-60":[2578.01,2819.29],"6-110-61":[2594.09,2805.69],"6-110-62":[2759.42,2999.73],"6-110-63":[-29.54,3062.38],"6-111-0":[11.53,28.02],"6-111-1":[6.59,23.68],"5-55-0":[6.59,28.02],"6-111-2":[2.12,13.54],"6-111-3":[-4.24,2.58],"5-55-1":[-4.55,15.13],"4-27-0":[-5.02,28.02],"6-111-4":[-1.34,4.98],"6-111-5":[-6.9,-0.37],"5-55-2":[-10.86,4.98],"6-111-6":[-9.76,462.09],"6-111-7":[19.54,1221.31],"5-55-3":[-13.9,1828.99],"4-27-1":[-13.9,2201.02],"3-13-0":[-17.31,2201.02],"6-111-8":[105.45,1652.58],"6-111-9":[35.47,2070.51],"5-55-4":[31.37,2070.51],"6-111-10":[7.84,825.86],"6-111-11":[208.63,1856.83],"5-55-5":[5.26,2290.58],"4-27-2":[-14.61,2290.58],"6-111-12":[30.93,2358.55],"6-111-13":[242.51,2286.52],"5-55-6":[30.93,2374.21],"6-111-14":[42.21,2263.84],"6-111-15":[-27.41,1447.73],"5-55-7":[-27.41,2263.84],"4-27-3":[-27.41,2374.21],"3-13-1":[-27.41,2992.37],"2-6-0":[-32.17,4155.27],"6-111-16":[-79.7,1878.55],"6-111-17":[23.24,62.05],"5-55-8":[-79.7,1878.55],"6-111-18":[25.69,66.77],"6-111-19":[-16.84,1986.11],"5-55-9":[-48.7,1986.11],"4-27-4":[-268.7,2763.77],"6-111-20":[-0.37,1882.11],"6-111-21":[27.45,74.09],"5-55-10":[-19.03,1948.19],"6-111-22":[33.04,75.05],"6-111-23":[33.91,80.5],"5-55-11":[24,290.95],"4-27-5":[-39.24,1948.19],"3-13-2":[-268.7,3956.01],"6-111-24":[37.06,83.13],"6-111-25":[39.61,93.95],"5-55-12":[34.84,93.95],"6-111-26":[44.33,102.28],"6-111-27":[49.63,114.34],"5-55-13":[43.53,114.34],"4-27-6":[15.22,1607.31],"6-111-28":[55.18,125.8],"6-111-29":[59.47,301.73],"5-55-14":[55.18,301.73],"6-111-30":[66.39,148.84],"6-111-31":[69.38,149.75],"5-55-15":[62.22,363.49],"4-27-7":[-77.81,3011.04],"3-13-3":[-134.19,4108.68],"2-6-1":[-268.7,7512.84],"6-111-32":[15.14,3028.24],"6-111-33":[-92.74,2016.59],"5-55-16":[-92.74,3088.67],"6-111-34":[38.32,670.15],"6-111-35":[39.61,131.25],"5-55-17":[26.67,862.43],"4-27-8":[-92.74,3088.67],"6-111-36":[-50.67,610.22],"6-111-37":[37.9,457.36],"5-55-18":[-50.67,610.22],"6-111-38":[212.43,466.21],"6-111-39":[278.13,1152.22],"5-55-19":[138.03,1152.22],"4-27-9":[-50.67,1152.22],"3-13-4":[-92.74,3755.88],"6-111-40":[234.53,1528.53],"6-111-41":[101.81,1002.66],"5-55-20":[101.81,1528.53],"6-111-42":[72.04,400.15],"6-111-43":[-50.51,399.93],"5-55-21":[-50.51,482.51],"4-27-10":[-68.16,1528.53],"6-111-44":[-51.73,212.32],"6-111-45":[-50.87,-20.77],"5-55-22":[-60.49,212.32],"6-111-46":[-49.69,-20.97],"6-111-47":[-47.09,-20.45],"5-55-23":[-56.42,-20.45],"4-27-11":[-71.44,212.32],"3-13-5":[-99.76,1528.53],"2-6-2":[-129.46,3783.24],"6-111-48":[-45.23,-19.5],"6-111-49":[-42.63,-19.5],"5-55-24":[-49.85,-19.5],"6-111-50":[-45.55,-20.17],"6-111-51":[-51.95,-22.67],"5-55-25":[-52.46,-20.17],"4-27-12":[-54.09,-19.5],"6-111-52":[-60.12,-25.88],"6-111-53":[-74.09,-30.6],"5-55-26":[-74.09,-25.88],"6-111-54":[-82.21,-35.97],"6-111-55":[-78.66,1711.28],"5-55-27":[-82.21,1711.28],"4-27-13":[-82.21,1711.28],"3-13-6":[-82.21,1711.28],"6-111-56":[1382.71,2605.54],"6-111-57":[2513.78,2976.73],"5-55-28":[948.42,3136.57],"6-111-58":[2794.54,2992.85],"6-111-59":[2564.77,2893.93],"5-55-29":[2564.77,3137.89],"4-27-14":[945.1,3203.64],"6-111-60":[2500.69,2687.3],"6-111-61":[2526.81,2763.19],"5-55-30":[2500.69,2819.29],"6-111-62":[2709.28,2987.5],"6-111-63":[-29.54,3065.26],"5-55-31":[-29.54,3065.26],"4-27-15":[-29.54,3065.26],"3-13-7":[-29.59,3320.02],"2-6-3":[-82.21,3799.9],"6-112-0":[12.7,28.89],"6-112-1":[6.42,25.49],"6-112-2":[2.23,12.87],"6-112-3":[-4.13,4.1],"6-112-4":[-0.69,55.51],"6-112-5":[-5.99,225.27],"6-112-6":[-8.16,496.12],"6-112-7":[13.72,1767.28],"6-112-8":[107.91,1681.65],"6-112-9":[91.8,1766.67],"6-112-10":[12.16,1755.07],"6-112-11":[24.97,1915.02],"6-112-12":[3.84,2099.48],"6-112-13":[23.28,2155.76],"6-112-14":[6.54,1965.97],"6-112-15":[15.76,2024.26],"6-112-16":[12.72,1410.98],"6-112-17":[25.6,66.52],"6-112-18":[-24.3,3037.73],"6-112-19":[-29.59,3225.44],"6-112-20":[16.39,1148.96],"6-112-21":[35.65,80.83],"6-112-22":[36.81,83.26],"6-112-23":[36.79,87.96],"6-112-24":[39.76,92.17],"6-112-25":[41.96,97.91],"6-112-26":[46.97,104.85],"6-112-27":[51.71,114.88],"6-112-28":[56.92,128.34],"6-112-29":[57.72,134.69],"6-112-30":[65.91,141.57],"6-112-31":[67.63,143.17],"6-112-32":[6.63,1532.53],"6-112-33":[44.6,4900.75],"6-112-34":[45.11,141.56],"6-112-35":[56.19,138.86],"6-112-36":[28.28,417.68],"6-112-37":[-0.95,370.77],"6-112-38":[108.64,478.74],"6-112-39":[201.08,643.8],"6-112-40":[73.33,1103.75],"6-112-41":[-45.74,301.67],"6-112-42":[-38.95,426.73],"6-112-43":[-35.05,487.73],"6-112-44":[-41.29,417.28],"6-112-45":[-43.35,-6.75],"6-112-46":[-43.03,-16.66],"6-112-47":[-41.89,-17.81],"6-112-48":[-40.82,-17.53],"6-112-49":[-40.23,-17.58],"6-112-50":[-44.52,-18.84],"6-112-51":[-52.08,-21.66],"6-112-52":[-60.31,-25.8],"6-112-53":[-75.15,-30.77],"6-112-54":[-83.59,-37.04],"6-112-55":[-84.73,1701.91],"6-112-56":[1598.15,2525.84],"6-112-57":[2453.63,2840.96],"6-112-58":[2629.4,2867.37],"6-112-59":[2498.34,2794.55],"6-112-60":[2390.04,2564.78],"6-112-61":[2390.04,2709.29],"6-112-62":[2666.35,2977.76],"6-112-63":[-29.54,3068.14],"6-113-0":[13.21,29.53],"6-113-1":[6.55,26.2],"5-56-0":[6.42,29.53],"6-113-2":[2.65,15.62],"6-113-3":[-3.24,6.86],"5-56-1":[-4.13,15.62],"6-113-4":[0.26,195.82],"6-113-5":[-4.34,347.8],"5-56-2":[-5.99,347.8],"6-113-6":[-5.98,370.97],"6-113-7":[44.86,2177.91],"5-56-3":[-8.16,2177.91],"6-113-8":[234.82,2476.55],"6-113-9":[401.32,2650.27],"5-56-4":[91.8,2650.27],"6-113-10":[23.8,2153.15],"6-113-11":[-0.3,1760.98],"5-56-5":[-0.3,2153.15],"6-113-12":[-14.43,1103.01],"6-113-13":[1.7,1633.71],"5-56-6":[-14.43,2155.76],"6-113-14":[6.02,2108.2],"6-113-15":[5.38,1700.99],"5-56-7":[5.38,2108.2],"6-113-16":[25.39,1549.63],"6-113-17":[-8.62,1641.19],"5-56-8":[-8.62,1641.19],"6-113-18":[-22.8,2604.93],"6-113-19":[-48.47,3800.26],"5-56-9":[-48.47,3800.26],"6-113-20":[33.11,892.01],"6-113-21":[38.38,417.51],"5-56-10":[16.39,1148.96],"6-113-22":[40.6,91.39],"6-113-23":[42.43,95.06],"5-56-11":[36.79,95.06],"6-113-24":[44.58,97.8],"6-113-25":[46.59,101.92],"5-56-12":[39.76,101.92],"6-113-26":[49.34,105.97],"6-113-27":[48.14,115.83],"5-56-13":[46.97,115.83],"6-113-28":[47.63,237.05],"6-113-29":[57.2,131.84],"5-56-14":[47.63,237.05],"6-113-30":[64.56,137.12],"6-113-31":[68.18,144.76],"5-56-15":[64.56,144.76],"6-113-32":[42.04,2301.21],"6-113-33":[54.12,5227.39],"5-56-16":[6.63,5227.39],"6-113-34":[38.04,203.53],"6-113-35":[58.85,141.09],"5-56-17":[38.04,203.53],"6-113-36":[54.67,131.12],"6-113-37":[-15.46,223.46],"5-56-18":[-15.46,417.68],"6-113-38":[7.1,475.97],"6-113-39":[134.5,657.09],"5-56-19":[7.1,657.09],"6-113-40":[48.52,421.94],"6-113-41":[-34.6,242.02],"5-56-20":[-45.74,1103.75],"6-113-42":[-55.11,1079.1],"6-113-43":[-15.57,1164.85],"5-56-21":[-55.11,1164.85],"6-113-44":[-38.17,716.99],"6-113-45":[-33.33,267.94],"5-56-22":[-43.35,716.99],"6-113-46":[-34.86,-12.78],"6-113-47":[-35.43,-15.73],"5-56-23":[-43.03,-12.78],"6-113-48":[-35.41,-16.8],"6-113-49":[-37.65,-17.05],"5-56-24":[-40.82,-16.8],"6-113-50":[-42.35,-18.33],"6-113-51":[-51.23,-20.46],"5-56-25":[-52.08,-18.33],"6-113-52":[-59.96,-25.01],"6-113-53":[-76.66,-30.45],"5-56-26":[-76.66,-25.01],"6-113-54":[-85.09,-37.69],"6-113-55":[-88.87,1616.15],"5-56-27":[-88.87,1701.91],"6-113-56":[1284.64,2522.11],"6-113-57":[2297.97,2629.41],"5-56-28":[1284.64,2840.96],"6-113-58":[2577.31,2726.71],"6-113-59":[2407.17,2693.87],"5-56-29":[2407.17,2867.37],"6-113-60":[2235.7,2498.35],"6-113-61":[2303.19,2666.36],"5-56-30":[2235.7,2709.29],"6-113-62":[2636.28,2970.03],"6-113-63":[-29.54,3070.04],"5-56-31":[-29.54,3070.04],"6-114-0":[13.2,29.62],"6-114-1":[8.14,26.14],"6-114-2":[3.61,17.19],"6-114-3":[0.69,7.07],"6-114-4":[0.49,25.1],"6-114-5":[-2,264.4],"6-114-6":[-2.41,486.19],"6-114-7":[19.72,1696.85],"6-114-8":[77.22,2512.73],"6-114-9":[497.57,2822.43],"6-114-10":[9.71,2513.43],"6-114-11":[10.97,1227.42],"6-114-12":[11.66,627.07],"6-114-13":[3.09,1624.43],"6-114-14":[7.46,1440.11],"6-114-15":[-16.78,1737.87],"6-114-16":[-15.87,2312.97],"6-114-17":[-84.13,2061.69],"6-114-18":[-17.62,1666.14],"6-114-19":[-16.18,124.82],"6-114-20":[11.53,77.38],"6-114-21":[17.61,96.43],"6-114-22":[9.96,768.11],"6-114-23":[28.86,604.84],"6-114-24":[41.43,100.45],"6-114-25":[48.83,105.19],"6-114-26":[50.73,109.47],"6-114-27":[34.45,109.76],"6-114-28":[34.45,123],"6-114-29":[59.18,129.68],"6-114-30":[63.45,136.26],"6-114-31":[66.37,144.7],"6-114-32":[64.3,1467.8],"6-114-33":[33.02,4032.23],"6-114-34":[24.72,3694.06],"6-114-35":[31.23,439.48],"6-114-36":[-3.39,882.4],"6-114-37":[7.79,520.58],"6-114-38":[-0.72,739.41],"6-114-39":[40.06,660.81],"6-114-40":[66.17,435.75],"6-114-41":[40.88,374.96],"6-114-42":[42.73,458.66],"6-114-43":[12.46,485.33],"6-114-44":[-17.44,336.86],"6-114-45":[-41.04,1170.09],"6-114-46":[-31.63,-2.93],"6-114-47":[-33.62,-14.07],"6-114-48":[-34.78,-15.38],"6-114-49":[-37.5,-16.54],"6-114-50":[-40.37,-17.47],"6-114-51":[-49.64,-19.17],"6-114-52":[-59.34,-23.21],"6-114-53":[-75.38,-29.25],"6-114-54":[-88.58,-36.54],"6-114-55":[-89.56,1284.65],"6-114-56":[522.14,2298.07],"6-114-57":[2001.43,2577.32],"6-114-58":[2428.59,2638.08],"6-114-59":[2355.27,2612.99],"6-114-60":[2205.2,2407.18],"6-114-61":[2221.1,2636.29],"6-114-62":[2602.74,2964.79],"6-114-63":[-29.54,3070.97],"6-115-0":[12.07,29.55],"6-115-1":[8.62,24.47],"5-57-0":[8.14,29.62],"6-115-2":[2.39,17.3],"6-115-3":[1.82,6.24],"5-57-1":[0.69,17.3],"4-28-0":[-4.13,29.62],"6-115-4":[0.8,5.87],"6-115-5":[-0.82,73.43],"5-57-2":[-2,264.4],"6-115-6":[-0.82,115.08],"6-115-7":[1.77,672.76],"5-57-3":[-2.41,1696.85],"4-28-1":[-8.16,2177.91],"6-115-8":[49.51,2830.65],"6-115-9":[503.96,2291.47],"5-57-4":[49.51,2830.65],"6-115-10":[9.12,2265.18],"6-115-11":[12.44,34.94],"5-57-5":[9.12,2513.43],"4-28-2":[-0.3,2830.65],"6-115-12":[15.26,35.92],"6-115-13":[10.83,820.94],"5-57-6":[3.09,1624.43],"6-115-14":[14.24,1183.3],"6-115-15":[9.98,553.47],"5-57-7":[-16.78,1737.87],"4-28-3":[-16.78,2155.76],"6-115-16":[9.03,1740.56],"6-115-17":[8.77,43.6],"5-57-8":[-84.13,2312.97],"6-115-18":[14.8,45.02],"6-115-19":[16.45,54.08],"5-57-9":[-17.62,1666.14],"4-28-4":[-84.13,3800.26],"6-115-20":[24.53,58.31],"6-115-21":[25.92,65.71],"5-57-10":[11.53,96.43],"6-115-22":[27.14,79.03],"6-115-23":[25.23,82.85],"5-57-11":[9.96,768.11],"4-28-5":[9.96,1148.96],"6-115-24":[19.75,904.42],"6-115-25":[34.27,1005.01],"5-57-12":[19.75,1005.01],"6-115-26":[39.75,844.84],"6-115-27":[31.11,457.05],"5-57-13":[31.11,844.84],"4-28-6":[19.75,1005.01],"6-115-28":[39.7,118.49],"6-115-29":[57.52,126.91],"5-57-14":[34.45,129.68],"6-115-30":[61.37,131.2],"6-115-31":[64.24,143.3],"5-57-15":[61.37,144.7],"4-28-7":[34.45,237.05],"6-115-32":[67.54,296.18],"6-115-33":[36.6,3477.99],"5-57-16":[33.02,4032.23],"6-115-34":[32.51,4553.66],"6-115-35":[36.3,265.77],"5-57-17":[24.72,4553.66],"4-28-8":[6.63,5227.39],"6-115-36":[59.75,573.48],"6-115-37":[29.75,1449.42],"5-57-18":[-3.39,1449.42],"6-115-38":[28.52,1670.14],"6-115-39":[244.17,1064.78],"5-57-19":[-0.72,1670.14],"4-28-9":[-15.46,1670.14],"6-115-40":[176.38,727.4],"6-115-41":[119.67,517.69],"5-57-20":[40.88,727.4],"6-115-42":[67.33,518.96],"6-115-43":[59.37,560.11],"5-57-21":[12.46,560.11],"4-28-10":[-55.11,1164.85],"6-115-44":[34.38,521.33],"6-115-45":[-56.77,1522.55],"5-57-22":[-56.77,1522.55],"6-115-46":[-46.81,1610.49],"6-115-47":[-195.28,1424.55],"5-57-23":[-195.28,1610.49],"4-28-11":[-195.28,1610.49],"6-115-48":[-32.35,-13.51],"6-115-49":[-36.1,-15.23],"5-57-24":[-37.5,-13.51],"6-115-50":[-39.15,-17.16],"6-115-51":[-46.49,-18.91],"5-57-25":[-49.64,-17.16],"4-28-12":[-52.08,-13.51],"6-115-52":[-56.64,-22.55],"6-115-53":[-73,-28.38],"5-57-26":[-75.38,-22.55],"6-115-54":[-88.66,-36.23],"6-115-55":[-97.84,759.79],"5-57-27":[-97.84,1284.65],"4-28-13":[-97.84,1701.91],"6-115-56":[-97.84,2001.44],"6-115-57":[1792.1,2428.6],"5-57-28":[-97.84,2577.32],"6-115-58":[2305.92,2560],"6-115-59":[2344.15,2552.69],"5-57-29":[2305.92,2638.08],"4-28-14":[-97.84,2867.37],"6-115-60":[2100.93,2355.28],"6-115-61":[2117.14,2602.75],"5-57-30":[2100.93,2636.29],"6-115-62":[2569.81,2959.59],"6-115-63":[-29.54,3076],"5-57-31":[-29.54,3076],"4-28-15":[-29.54,3076],"6-116-0":[10.66,29.12],"6-116-1":[7.22,22.06],"6-116-2":[2.25,16.65],"6-116-3":[1.8,6.88],"6-116-4":[1.2,361.97],"6-116-5":[-0.57,89.29],"6-116-6":[-0.78,341.42],"6-116-7":[1.77,925.79],"6-116-8":[39.12,2260.37],"6-116-9":[440.9,2390.56],"6-116-10":[-3.36,1856.79],"6-116-11":[13.8,37.51],"6-116-12":[16.01,37.9],"6-116-13":[16.01,37.4],"6-116-14":[18.59,40.87],"6-116-15":[10.25,1590.34],"6-116-16":[-1.61,1786.57],"6-116-17":[8.34,43.6],"6-116-18":[15.48,44.53],"6-116-19":[15.73,47.62],"6-116-20":[16.81,51.48],"6-116-21":[19.43,63.16],"6-116-22":[23.95,70.37],"6-116-23":[29.01,74.37],"6-116-24":[26.61,82.69],"6-116-25":[30.18,93.33],"6-116-26":[30.98,99.51],"6-116-27":[30.96,99.08],"6-116-28":[45.57,117.31],"6-116-29":[55.18,122.74],"6-116-30":[58.42,127.66],"6-116-31":[60.62,135.09],"6-116-32":[62.05,783.66],"6-116-33":[65.85,1907.63],"6-116-34":[31.24,4188.78],"6-116-35":[53.93,4099.51],"6-116-36":[62.28,139.92],"6-116-37":[59.3,129.47],"6-116-38":[36.96,1285.71],"6-116-39":[26.9,1325.23],"6-116-40":[126.78,1296.76],"6-116-41":[189.96,988.43],"6-116-42":[97.05,430.67],"6-116-43":[131.13,1421.13],"6-116-44":[85.41,2241.03],"6-116-45":[-70.56,1999.21],"6-116-46":[-19.93,1568.36],"6-116-47":[-160.77,1420.87],"6-116-48":[-29.69,-12.33],"6-116-49":[-36.45,-13.09],"6-116-50":[-40.73,-17.24],"6-116-51":[-47.3,-19.53],"6-116-52":[-54.93,-22.38],"6-116-53":[-72.48,-27.53],"6-116-54":[-87.53,-35.51],"6-116-55":[-101.33,-44.71],"6-116-56":[-102.54,1792.11],"6-116-57":[1600.89,2338.91],"6-116-58":[2295.63,2481.09],"6-116-59":[2291.17,2481.96],"6-116-60":[1899.8,2344.16],"6-116-61":[1943.7,2569.82],"6-116-62":[2529.66,2955.42],"6-116-63":[-29.54,3081.95],"6-117-0":[9.48,28.14],"6-117-1":[6.76,18.88],"5-58-0":[6.76,29.12],"6-117-2":[2.28,14.99],"6-117-3":[1.62,7.39],"5-58-1":[1.62,16.65],"6-117-4":[1.48,155.99],"6-117-5":[0.48,58.1],"5-58-2":[-0.57,361.97],"6-117-6":[0.39,341.42],"6-117-7":[3.51,692.04],"5-58-3":[-0.78,925.79],"6-117-8":[22.34,2175.65],"6-117-9":[114.09,2203.44],"5-58-4":[22.34,2390.56],"6-117-10":[5.55,2094.72],"6-117-11":[-0.47,1541.51],"5-58-5":[-3.36,2094.72],"6-117-12":[17.95,39.7],"6-117-13":[17.96,40.77],"5-58-6":[16.01,40.77],"6-117-14":[18.87,43.2],"6-117-15":[-7.87,1533.21],"5-58-7":[-7.87,1590.34],"6-117-16":[-7.88,45.41],"6-117-17":[12.99,36.86],"5-58-8":[-7.88,1786.57],"6-117-18":[10.18,34.61],"6-117-19":[10.18,33.01],"5-58-9":[10.18,47.62],"6-117-20":[12.59,37.84],"6-117-21":[14.56,46.1],"5-58-10":[12.59,63.16],"6-117-22":[19.38,56.88],"6-117-23":[25.61,72.87],"5-58-11":[19.38,74.37],"6-117-24":[31.14,82.56],"6-117-25":[36.51,88.5],"5-58-12":[26.61,93.33],"6-117-26":[38.76,89.46],"6-117-27":[39.86,92.44],"5-58-13":[30.96,99.51],"6-117-28":[41.99,110.83],"6-117-29":[35.45,503.73],"5-58-14":[35.45,503.73],"6-117-30":[53.07,118.8],"6-117-31":[54.68,129.03],"5-58-15":[53.07,135.09],"6-117-32":[53.24,964.38],"6-117-33":[57.1,2427.64],"5-58-16":[53.24,2427.64],"6-117-34":[58.87,2022.98],"6-117-35":[-78.97,3071.93],"5-58-17":[-78.97,4188.78],"6-117-36":[62.08,143.56],"6-117-37":[61.21,128.82],"5-58-18":[59.3,143.56],"6-117-38":[57.56,126.23],"6-117-39":[30.2,869.8],"5-58-19":[26.9,1325.23],"6-117-40":[0.01,1008.41],"6-117-41":[75.28,1199.98],"5-58-20":[0.01,1296.76],"6-117-42":[145.68,1550.43],"6-117-43":[-25.52,1629.02],"5-58-21":[-25.52,1629.02],"6-117-44":[-80.43,1622.97],"6-117-45":[-23.03,1262.52],"5-58-22":[-80.43,2241.03],"6-117-46":[-14.62,1.67],"6-117-47":[-24.71,-5.89],"5-58-23":[-160.77,1568.36],"6-117-48":[-29.37,-11.35],"6-117-49":[-35.65,-13.2],"5-58-24":[-36.45,-11.35],"6-117-50":[-40.45,-17.24],"6-117-51":[-48.21,-20.04],"5-58-25":[-48.21,-17.24],"6-117-52":[-53.69,-23.2],"6-117-53":[-71.28,-27.26],"5-58-26":[-72.48,-22.38],"6-117-54":[-86.62,-34.15],"6-117-55":[-101.99,-43.8],"5-58-27":[-101.99,-34.15],"6-117-56":[-106.25,1600.9],"6-117-57":[1442.23,2342.57],"5-58-28":[-106.25,2342.57],"6-117-58":[2216.37,2456.95],"6-117-59":[2218.72,2466.51],"5-58-29":[2216.37,2481.96],"6-117-60":[1411.35,2291.18],"6-117-61":[1690.08,2529.67],"5-58-30":[1411.35,2569.82],"6-117-62":[2447.36,2953.28],"6-117-63":[-29.54,3084.91],"5-58-31":[-29.54,3084.91],"6-118-0":[8.81,27.71],"6-118-1":[6.64,17.18],"6-118-2":[1.82,14.17],"6-118-3":[1.29,7.13],"6-118-4":[1.8,112.12],"6-118-5":[0.82,6.14],"6-118-6":[0.71,75.94],"6-118-7":[3.53,559.13],"6-118-8":[15.46,1102.21],"6-118-9":[92.72,1636.07],"6-118-10":[2.35,1813.48],"6-118-11":[1.21,1062.27],"6-118-12":[17.21,43.51],"6-118-13":[19.63,45.98],"6-118-14":[0.73,1460.13],"6-118-15":[-7.91,1395.62],"6-118-16":[-7.92,30.44],"6-118-17":[6.23,30.2],"6-118-18":[4.7,24.25],"6-118-19":[4.92,23.71],"6-118-20":[6.29,28.34],"6-118-21":[10.46,37.16],"6-118-22":[12.98,50.32],"6-118-23":[19.09,62.28],"6-118-24":[25.96,72.19],"6-118-25":[29.55,81.26],"6-118-26":[33.77,84.41],"6-118-27":[35.3,83.99],"6-118-28":[39.24,102.12],"6-118-29":[44.51,337.7],"6-118-30":[50.71,111.44],"6-118-31":[54.6,118.9],"6-118-32":[58.04,435.72],"6-118-33":[2.74,2388.16],"6-118-34":[53.28,143.46],"6-118-35":[58.58,1094.58],"6-118-36":[60.49,866.24],"6-118-37":[60.7,127.95],"6-118-38":[55.23,126.07],"6-118-39":[48.72,114.91],"6-118-40":[16.01,468.23],"6-118-41":[-7.43,1263.13],"6-118-42":[3.55,1616.85],"6-118-43":[-3.46,1396.93],"6-118-44":[7.57,40.32],"6-118-45":[0.66,22.42],"6-118-46":[-11.28,6.94],"6-118-47":[-22.43,-3.98],"6-118-48":[-29.37,-9.38],"6-118-49":[-35.15,-14.48],"6-118-50":[-40.65,-17.23],"6-118-51":[-48.88,-20.43],"6-118-52":[-56.68,-24.15],"6-118-53":[-69.25,-27.35],"6-118-54":[-85.12,-33.76],"6-118-55":[-101.8,-42.74],"6-118-56":[-107,1522.76],"6-118-57":[1441.77,2294.89],"6-118-58":[1910.74,2319.46],"6-118-59":[1821.95,2399.61],"6-118-60":[803.63,2218.73],"6-118-61":[1627.45,2447.37],"6-118-62":[2363.53,2959.26],"6-118-63":[-29.54,3089.37],"6-119-0":[8.67,27.14],"6-119-1":[6.4,16.74],"5-59-0":[6.4,27.71],"6-119-2":[1.77,13.16],"6-119-3":[1.21,7.08],"5-59-1":[1.21,14.17],"4-29-0":[1.21,29.12],"6-119-4":[2.01,7.08],"6-119-5":[0.49,6.94],"5-59-2":[0.49,112.12],"6-119-6":[1.29,81.65],"6-119-7":[3.24,433.72],"5-59-3":[0.71,559.13],"4-29-1":[-0.78,925.79],"3-14-0":[-8.16,2177.91],"6-119-8":[15.62,1098.37],"6-119-9":[80.42,1766.68],"5-59-4":[15.46,1766.68],"6-119-10":[-12.75,1878.57],"6-119-11":[15.7,935.54],"5-59-5":[-12.75,1878.57],"4-29-2":[-12.75,2390.56],"6-119-12":[13.95,2005.12],"6-119-13":[17.08,2477.12],"5-59-6":[13.95,2477.12],"6-119-14":[1.03,1817.92],"6-119-15":[3.25,33.35],"5-59-7":[-7.91,1817.92],"4-29-3":[-7.91,2477.12],"3-14-1":[-16.78,2830.65],"6-119-16":[4.27,23.39],"6-119-17":[1.7,17.38],"5-59-8":[-7.92,30.44],"6-119-18":[0.23,11.21],"6-119-19":[1.53,11.2],"5-59-9":[0.23,24.25],"4-29-4":[-7.92,1786.57],"6-119-20":[4.13,19.59],"6-119-21":[6.49,25.03],"5-59-10":[4.13,37.16],"6-119-22":[9,34.94],"6-119-23":[13.7,51.55],"5-59-11":[9,62.28],"4-29-5":[4.13,74.37],"3-14-2":[-84.13,3800.26],"6-119-24":[20.27,58.63],"6-119-25":[26.32,64.62],"5-59-12":[20.27,81.26],"6-119-26":[29.21,76.13],"6-119-27":[31.51,78.92],"5-59-13":[29.21,84.41],"4-29-6":[20.27,99.51],"6-119-28":[34.89,91.62],"6-119-29":[42.31,102.14],"5-59-14":[34.89,337.7],"6-119-30":[49.88,110.56],"6-119-31":[51.58,118.67],"5-59-15":[49.88,118.9],"4-29-7":[34.89,503.73],"3-14-3":[19.75,1005.01],"6-119-32":[55.15,126.21],"6-119-33":[55.72,960.88],"5-59-16":[2.74,2388.16],"6-119-34":[6.18,2782.57],"6-119-35":[49.89,1115.42],"5-59-17":[6.18,2782.57],"4-29-8":[-78.97,4188.78],"6-119-36":[63.79,138.91],"6-119-37":[60.58,131.76],"5-59-18":[60.49,866.24],"6-119-38":[55.49,123.47],"6-119-39":[49.44,110.92],"5-59-19":[48.72,126.07],"4-29-9":[26.9,1325.23],"3-14-4":[-78.97,5227.39],"6-119-40":[40.76,99.59],"6-119-41":[33.8,84.71],"5-59-20":[-7.43,1263.13],"6-119-42":[26.01,74.04],"6-119-43":[18.31,59.16],"5-59-21":[-3.46,1616.85],"4-29-10":[-25.52,1629.02],"6-119-44":[11.24,40.96],"6-119-45":[3.47,25.39],"5-59-22":[0.66,40.96],"6-119-46":[-5.63,10.69],"6-119-47":[-18.52,-2.2],"5-59-23":[-22.43,10.69],"4-29-11":[-160.77,2241.03],"3-14-5":[-195.28,2241.03],"6-119-48":[-27.89,-8.1],"6-119-49":[-34.87,-13.33],"5-59-24":[-35.15,-8.1],"6-119-50":[-42.15,-16.71],"6-119-51":[-55.48,-20.53],"5-59-25":[-55.48,-16.71],"4-29-12":[-55.48,-8.1],"6-119-52":[-67.25,-24.47],"6-119-53":[-69.99,-28.77],"5-59-26":[-69.99,-24.15],"6-119-54":[-84.63,-34.47],"6-119-55":[-101.06,-42.64],"5-59-27":[-101.8,-33.76],"4-29-13":[-101.99,-22.38],"3-14-6":[-101.99,1701.91],"6-119-56":[-106.67,1594.21],"6-119-57":[1522.75,2260.16],"5-59-28":[-107,2294.89],"6-119-58":[1520.8,2260.16],"6-119-59":[1378.35,2352.82],"5-59-29":[1378.35,2399.61],"4-29-14":[-107,2481.96],"6-119-60":[115.06,3169.82],"6-119-61":[1392.87,2470.74],"5-59-30":[115.06,3169.82],"6-119-62":[2356.79,2967.24],"6-119-63":[-29.54,3091.37],"5-59-31":[-29.54,3091.37],"4-29-15":[-29.54,3169.82],"3-14-7":[-107,3169.82],"6-120-0":[8.69,26.75],"6-120-1":[5.52,17.4],"6-120-2":[1.82,12.04],"6-120-3":[0.59,7.08],"6-120-4":[2.09,7.08],"6-120-5":[0.74,5.17],"6-120-6":[1.05,56.9],"6-120-7":[2.85,903.95],"6-120-8":[56.39,1454.04],"6-120-9":[12.61,1757.61],"6-120-10":[12.59,947.68],"6-120-11":[15.29,2605.13],"6-120-12":[7.08,3631.59],"6-120-13":[-0.7,3468.03],"6-120-14":[1.4,40.12],"6-120-15":[4.12,24.95],"6-120-16":[-0.27,17.95],"6-120-17":[-4.97,7.43],"6-120-18":[-6.56,3],"6-120-19":[-3.98,7.47],"6-120-20":[-0.58,12.98],"6-120-21":[2.19,17.28],"6-120-22":[4.58,25.53],"6-120-23":[8.89,39.89],"6-120-24":[15.15,49.5],"6-120-25":[21.3,58.42],"6-120-26":[25.24,62.27],"6-120-27":[28.53,69.78],"6-120-28":[32.36,84.63],"6-120-29":[37.3,831.89],"6-120-30":[42.45,102.95],"6-120-31":[46.51,110.31],"6-120-32":[48.73,118.16],"6-120-33":[52.39,128.82],"6-120-34":[36.32,1251.14],"6-120-35":[16.84,2387.59],"6-120-36":[45.89,264.39],"6-120-37":[59.17,130.22],"6-120-38":[55.65,121.69],"6-120-39":[49.17,115.94],"6-120-40":[42.96,105.9],"6-120-41":[35.4,90.52],"6-120-42":[28.58,74.62],"6-120-43":[8.57,495.66],"6-120-44":[12.8,48.16],"6-120-45":[5.96,25.68],"6-120-46":[-2.48,12.37],"6-120-47":[-16.47,-0.49],"6-120-48":[-25.27,-6.4],"6-120-49":[-33.37,-10.64],"6-120-50":[-42.5,-14.52],"6-120-51":[-55.8,383.74],"6-120-52":[-67.98,-26.3],"6-120-53":[-72.63,-30.51],"6-120-54":[-84.73,-34.99],"6-120-55":[-104.1,-43.28],"6-120-56":[-112.02,1627.11],"6-120-57":[475.75,2656.26],"6-120-58":[867.53,2268.9],"6-120-59":[1045.7,2732.99],"6-120-60":[-105.78,3191.81],"6-120-61":[347.55,2726.57],"6-120-62":[2344.78,2977.2],"6-120-63":[-29.54,3090.38],"6-121-0":[8.97,26.75],"6-121-1":[5.52,18.2],"5-60-0":[5.52,26.75],"6-121-2":[1.99,11],"6-121-3":[0.42,4.82],"5-60-1":[0.42,12.04],"6-121-4":[2.25,7.43],"6-121-5":[0.71,4.93],"5-60-2":[0.71,7.43],"6-121-6":[1.29,271.44],"6-121-7":[2.85,1052.69],"5-60-3":[1.05,1052.69],"6-121-8":[37.86,1653.57],"6-121-9":[11.56,1415.31],"5-60-4":[11.56,1757.61],"6-121-10":[10.82,1872.79],"6-121-11":[9.11,3277.23],"5-60-5":[9.11,3277.23],"6-121-12":[-5.06,4774.23],"6-121-13":[-5.97,28.14],"5-60-6":[-5.97,4774.23],"6-121-14":[3.79,18.42],"6-121-15":[-1.09,16.76],"5-60-7":[-1.09,40.12],"6-121-16":[-7.93,7.27],"6-121-17":[-11.57,-0.26],"5-60-8":[-11.57,17.95],"6-121-18":[-11.9,-2.7],"6-121-19":[-13.5,-0.57],"5-60-9":[-13.5,7.47],"6-121-20":[-13.4,2.2],"6-121-21":[-4.89,8.56],"5-60-10":[-13.4,17.28],"6-121-22":[1.31,15.96],"6-121-23":[6.08,30.18],"5-60-11":[1.31,39.89],"6-121-24":[11.75,45.27],"6-121-25":[17.54,49.7],"5-60-12":[11.75,58.42],"6-121-26":[24.65,60.14],"6-121-27":[25.47,66.56],"5-60-13":[24.65,69.78],"6-121-28":[28.73,75.09],"6-121-29":[32.36,84.91],"5-60-14":[28.73,831.89],"6-121-30":[37.91,673.97],"6-121-31":[41.13,96.35],"5-60-15":[37.91,673.97],"6-121-32":[43.4,101.5],"6-121-33":[46.93,118.89],"5-60-16":[43.4,128.82],"6-121-34":[49.6,839.37],"6-121-35":[9.56,1980.07],"5-60-17":[9.56,2387.59],"6-121-36":[44.87,241.22],"6-121-37":[58.56,129.2],"5-60-18":[44.87,264.39],"6-121-38":[56.18,122.21],"6-121-39":[50.7,116.7],"5-60-19":[49.17,122.21],"6-121-40":[45.59,106.12],"6-121-41":[37.73,94.44],"5-60-20":[35.4,106.12],"6-121-42":[32.38,82.35],"6-121-43":[24.79,66.27],"5-60-21":[8.57,495.66],"6-121-44":[14.55,55.75],"6-121-45":[6.51,35.28],"5-60-22":[5.96,55.75],"6-121-46":[-0.5,21.22],"6-121-47":[-12.26,3.98],"5-60-23":[-16.47,21.22],"6-121-48":[-19.81,-3.49],"6-121-49":[-29.02,-8.06],"5-60-24":[-33.37,-3.49],"6-121-50":[-41.05,-10.84],"6-121-51":[-63.16,-19.98],"5-60-25":[-63.16,383.74],"6-121-52":[-72.98,-28.17],"6-121-53":[-77.22,-33.82],"5-60-26":[-77.22,-26.3],"6-121-54":[-88.46,-36.59],"6-121-55":[-106.46,1402.86],"5-60-27":[-106.46,1402.86],"6-121-56":[-114.63,475.76],"6-121-57":[-117.59,2620.78],"5-60-28":[-117.59,2656.26],"6-121-58":[-116.47,3433.82],"6-121-59":[-115.52,3317.92],"5-60-29":[-116.47,3433.82],"6-121-60":[-115.69,2320.2],"6-121-61":[-91.83,4077.78],"5-60-30":[-115.69,4077.78],"6-121-62":[1924.9,2984.14],"6-121-63":[-29.54,3088.17],"5-60-31":[-29.54,3090.38],"6-122-0":[9.42,26.76],"6-122-1":[5.65,18.59],"6-122-2":[2.49,11.4],"6-122-3":[0.26,4.81],"6-122-4":[1.95,7.47],"6-122-5":[0.77,4.8],"6-122-6":[1.14,7.62],"6-122-7":[3.84,1528.57],"6-122-8":[108.15,1757.51],"6-122-9":[10.94,1582.28],"6-122-10":[6.8,1233.67],"6-122-11":[7.89,932.54],"6-122-12":[-3.4,850.98],"6-122-13":[1.64,20.11],"6-122-14":[0.48,16.34],"6-122-15":[-7.21,6.88],"6-122-16":[-12.07,-0.71],"6-122-17":[-17.59,-4.25],"6-122-18":[-18.55,-5.37],"6-122-19":[-18.72,-6.19],"6-122-20":[-17.57,-2.87],"6-122-21":[-10.75,2.46],"6-122-22":[-3.63,10.62],"6-122-23":[1.49,22.49],"6-122-24":[7.72,36.85],"6-122-25":[14.12,46.47],"6-122-26":[19.28,54.72],"6-122-27":[23.59,60.99],"6-122-28":[26.75,65.91],"6-122-29":[28.53,72.29],"6-122-30":[31.65,81.32],"6-122-31":[36.02,86.88],"6-122-32":[39.15,92.44],"6-122-33":[41.65,106.03],"6-122-34":[46.65,119.42],"6-122-35":[48.07,866.32],"6-122-36":[45.55,126.93],"6-122-37":[53.7,127.16],"6-122-38":[52.98,340.77],"6-122-39":[35.29,1689.03],"6-122-40":[46.98,106.61],"6-122-41":[40,96.95],"6-122-42":[33.4,82.62],"6-122-43":[27.67,66.13],"6-122-44":[18.65,57.54],"6-122-45":[14.32,44.27],"6-122-46":[3,29.21],"6-122-47":[-11.15,13.47],"6-122-48":[-19.42,-2.93],"6-122-49":[-27.38,-6.28],"6-122-50":[-46.34,517.88],"6-122-51":[-65.39,-20.43],"6-122-52":[-77.62,-31.58],"6-122-53":[-81.78,-37.06],"6-122-54":[-91.49,-38.57],"6-122-55":[-105.7,-45.16],"6-122-56":[-117.38,-51.89],"6-122-57":[-60.46,3075.8],"6-122-58":[-117.89,3148.6],"6-122-59":[-115.52,2551.83],"6-122-60":[-111.82,209.78],"6-122-61":[-93.22,3800.64],"6-122-62":[1431.84,3358.99],"6-122-63":[-29.54,3084.48],"6-123-0":[9.85,26.78],"6-123-1":[5.73,18.86],"5-61-0":[5.65,26.78],"6-123-2":[2.93,12],"6-123-3":[0.14,5.41],"5-61-1":[0.14,12],"4-30-0":[0.14,26.78],"6-123-4":[0.92,8.02],"6-123-5":[1.11,5.42],"5-61-2":[0.77,8.02],"6-123-6":[1.15,7.19],"6-123-7":[3.59,1680.33],"5-61-3":[1.14,1680.33],"4-30-1":[0.71,1680.33],"6-123-8":[102.27,1646.59],"6-123-9":[12.03,1328.47],"5-61-4":[10.94,1757.51],"6-123-10":[4.75,1210.93],"6-123-11":[5.38,20.59],"5-61-5":[4.75,1233.67],"4-30-2":[4.75,3277.23],"6-123-12":[-6.75,744.81],"6-123-13":[-5.24,18.85],"5-61-6":[-6.75,850.98],"6-123-14":[-6.42,11.45],"6-123-15":[-19.48,0.49],"5-61-7":[-19.48,16.34],"4-30-3":[-19.48,4774.23],"6-123-16":[-20.74,-3.9],"6-123-17":[-25.13,-6.72],"5-61-8":[-25.13,-0.71],"6-123-18":[-25.13,-8.71],"6-123-19":[-20.44,-8.81],"5-61-9":[-25.13,-5.37],"4-30-4":[-25.13,17.95],"6-123-20":[-19,-6.48],"6-123-21":[-14.63,-2.18],"5-61-10":[-19,2.46],"6-123-22":[-8.94,1.5],"6-123-23":[-0.85,14.41],"5-61-11":[-8.94,22.49],"4-30-5":[-19,39.89],"6-123-24":[5.5,29.61],"6-123-25":[10.76,38.58],"5-61-12":[5.5,46.47],"6-123-26":[16.15,50.77],"6-123-27":[19.03,52.37],"5-61-13":[16.15,60.99],"4-30-6":[5.5,69.78],"6-123-28":[20.24,74.26],"6-123-29":[19.92,68.93],"5-61-14":[19.92,74.26],"6-123-30":[27.6,72.06],"6-123-31":[30.84,78.32],"5-61-15":[27.6,86.88],"4-30-7":[19.92,831.89],"6-123-32":[9.9,105.9],"6-123-33":[38.55,93.32],"5-61-16":[9.9,106.03],"6-123-34":[42.04,104.47],"6-123-35":[26.89,608.86],"5-61-17":[26.89,866.32],"4-30-8":[9.56,2387.59],"6-123-36":[44.53,1017.74],"6-123-37":[-166.26,1941.75],"5-61-18":[-166.26,1941.75],"6-123-38":[49.91,717.25],"6-123-39":[18.08,1664.47],"5-61-19":[18.08,1689.03],"4-30-9":[-166.26,1941.75],"6-123-40":[48.47,309.11],"6-123-41":[41.3,105.67],"5-61-20":[40,309.11],"6-123-42":[34.67,357.87],"6-123-43":[28.79,77.86],"5-61-21":[27.67,357.87],"4-30-10":[8.57,495.66],"6-123-44":[23.62,65.38],"6-123-45":[14.32,51.14],"5-61-22":[14.32,65.38],"6-123-46":[6.73,41.96],"6-123-47":[-345.62,2939.6],"5-61-23":[-345.62,2939.6],"4-30-11":[-345.62,2939.6],"6-123-48":[-74.06,2088.42],"6-123-49":[-22.42,566.58],"5-61-24":[-74.06,2088.42],"6-123-50":[-82.31,649.83],"6-123-51":[-70.1,-20.38],"5-61-25":[-82.31,649.83],"4-30-12":[-82.31,2088.42],"6-123-52":[-83.38,-32.37],"6-123-53":[-91.85,-39.81],"5-61-26":[-91.85,-31.58],"6-123-54":[-95.58,-41.02],"6-123-55":[-108.17,-46.75],"5-61-27":[-108.17,-38.57],"4-30-13":[-108.17,1402.86],"6-123-56":[-118.68,-52.76],"6-123-57":[-116.81,3530.38],"5-61-28":[-118.68,3530.38],"6-123-58":[-117.58,2686.35],"6-123-59":[-114.23,3368.3],"5-61-29":[-117.89,3368.3],"4-30-14":[-118.68,3530.38],"6-123-60":[-105.65,-47.93],"6-123-61":[-94.72,4324.92],"5-61-30":[-111.82,4324.92],"6-123-62":[1173.34,3260.29],"6-123-63":[-29.54,3084.24],"5-61-31":[-29.54,3358.99],"4-30-15":[-115.69,4324.92],"6-124-0":[10.16,26.79],"6-124-1":[6.14,19.04],"6-124-2":[3.03,12.26],"6-124-3":[0.14,5.75],"6-124-4":[0.89,8.06],"6-124-5":[1.26,5.67],"6-124-6":[1.39,7.36],"6-124-7":[3.52,1617.82],"6-124-8":[8.51,1409.69],"6-124-9":[10.13,2305.88],"6-124-10":[0.45,2164.88],"6-124-11":[2.56,14.63],"6-124-12":[-3.24,14.32],"6-124-13":[-10.59,10.54],"6-124-14":[-10.36,8.76],"6-124-15":[-21.04,0],"6-124-16":[-24.64,-2.76],"6-124-17":[-31.2,-3.85],"6-124-18":[-30.75,-6.47],"6-124-19":[-26.11,-2.49],"6-124-20":[-24.31,-7.51],"6-124-21":[-15.23,-4.76],"6-124-22":[-13.59,-0.84],"6-124-23":[-4.55,9.7],"6-124-24":[2.35,21.54],"6-124-25":[7.35,32.3],"6-124-26":[12.55,38.19],"6-124-27":[15.94,48.53],"6-124-28":[21.55,62.2],"6-124-29":[18.5,57.21],"6-124-30":[24.34,61.69],"6-124-31":[27.97,68.96],"6-124-32":[29.89,114.26],"6-124-33":[33.15,84.09],"6-124-34":[36.93,96.35],"6-124-35":[42.03,117.27],"6-124-36":[44.94,447.27],"6-124-37":[62.06,132.91],"6-124-38":[41.71,1137.87],"6-124-39":[34.07,895.97],"6-124-40":[47.96,131.97],"6-124-41":[46.43,105.92],"6-124-42":[39.86,96.09],"6-124-43":[32.69,85.75],"6-124-44":[26.31,75.44],"6-124-45":[20.78,56.69],"6-124-46":[8.98,1441.5],"6-124-47":[-4.07,3719.73],"6-124-48":[-31.98,2290.2],"6-124-49":[-23.42,-3.78],"6-124-50":[-84.41,535.73],"6-124-51":[-73.94,-20.62],"6-124-52":[-86.86,-35.05],"6-124-53":[-95.4,-42.17],"6-124-54":[-98.04,-43.58],"6-124-55":[-110.57,-48.45],"6-124-56":[-118.68,-54.08],"6-124-57":[-117.84,3544.4],"6-124-58":[-118.43,1962.19],"6-124-59":[-115.85,2252.06],"6-124-60":[-105.91,-48.57],"6-124-61":[-95.38,3812.59],"6-124-62":[594.22,3705.94],"6-124-63":[-29.54,3085.39],"6-125-0":[10.35,26.81],"6-125-1":[6.14,19.41],"5-62-0":[6.14,26.81],"6-125-2":[3.26,12.44],"6-125-3":[0.9,6.39],"5-62-1":[0.14,12.44],"6-125-4":[1.27,6.49],"6-125-5":[1.13,5.32],"5-62-2":[0.89,8.06],"6-125-6":[1.29,6.47],"6-125-7":[3.14,1111.24],"5-62-3":[1.29,1617.82],"6-125-8":[7.11,1048.77],"6-125-9":[6.89,1518.99],"5-62-4":[6.89,2305.88],"6-125-10":[-2.91,1665.46],"6-125-11":[0,6.86],"5-62-5":[-2.91,2164.88],"6-125-12":[-2.34,8.77],"6-125-13":[-14.46,953.56],"5-62-6":[-14.46,953.56],"6-125-14":[-5.06,5.28],"6-125-15":[-17.98,-2.39],"5-62-7":[-21.04,8.76],"6-125-16":[-24.4,-7.68],"6-125-17":[-28.6,-10.11],"5-62-8":[-31.2,-2.76],"6-125-18":[-28.6,-11],"6-125-19":[-25.62,-2.41],"5-62-9":[-30.75,-2.41],"6-125-20":[-22.75,-4.66],"6-125-21":[-15.81,-6.04],"5-62-10":[-24.31,-4.66],"6-125-22":[-14.02,-3.42],"6-125-23":[-6.77,4.64],"5-62-11":[-14.02,9.7],"6-125-24":[1.21,15.8],"6-125-25":[6.11,24.94],"5-62-12":[1.21,32.3],"6-125-26":[10.22,30.26],"6-125-27":[13.87,41.98],"5-62-13":[10.22,48.53],"6-125-28":[18.08,48.13],"6-125-29":[17.79,54.5],"5-62-14":[17.79,62.2],"6-125-30":[22.38,56.85],"6-125-31":[16.56,59.8],"5-62-15":[16.56,68.96],"6-125-32":[25.85,66.31],"6-125-33":[27.99,72.87],"5-62-16":[25.85,114.26],"6-125-34":[33,81.65],"6-125-35":[38.91,103.05],"5-62-17":[33,117.27],"6-125-36":[47.5,124.13],"6-125-37":[57.22,130.49],"5-62-18":[44.94,447.27],"6-125-38":[61.15,131.46],"6-125-39":[52.54,288.83],"5-62-19":[34.07,1137.87],"6-125-40":[48.88,107.87],"6-125-41":[48.01,104.69],"5-62-20":[46.43,131.97],"6-125-42":[42.87,97.22],"6-125-43":[37.6,89.45],"5-62-21":[32.69,97.22],"6-125-44":[6.97,816.34],"6-125-45":[-0.97,2517.08],"5-62-22":[-0.97,2517.08],"6-125-46":[-17.88,2863.4],"6-125-47":[-35.65,2605.15],"5-62-23":[-35.65,3719.73],"6-125-48":[-10.05,11.03],"6-125-49":[-27.68,-4.71],"5-62-24":[-31.98,2290.2],"6-125-50":[-48.98,-11.91],"6-125-51":[-75.78,-21.91],"5-62-25":[-84.41,535.73],"6-125-52":[-88.21,-37.16],"6-125-53":[-96.9,-44.36],"5-62-26":[-96.9,-35.05],"6-125-54":[-99.71,-46.22],"6-125-55":[-113.95,-50.03],"5-62-27":[-113.95,-43.58],"6-125-56":[-118.23,-55.58],"6-125-57":[-119.6,-57.02],"5-62-28":[-119.6,3544.4],"6-125-58":[-119.13,-57.36],"6-125-59":[-115.13,-52.66],"5-62-29":[-119.13,2252.06],"6-125-60":[-106.04,-48.63],"6-125-61":[-95.54,2586.73],"5-62-30":[-106.04,3812.59],"6-125-62":[617.47,3991.97],"6-125-63":[-29.54,3087.55],"5-62-31":[-29.54,3991.97],"6-126-0":[10.48,26.83],"6-126-1":[6.39,19.79],"6-126-2":[3.59,12.74],"6-126-3":[1.34,7.32],"6-126-4":[1.23,5.6],"6-126-5":[1.15,4.51],"6-126-6":[1.24,5.95],"6-126-7":[2.53,1644.02],"6-126-8":[4.57,1334.46],"6-126-9":[2.53,1348.08],"6-126-10":[-4.55,360.68],"6-126-11":[-0.22,3.75],"6-126-12":[-4.16,11.04],"6-126-13":[-20.67,663.5],"6-126-14":[-17.18,1.9],"6-126-15":[-17.03,-2.13],"6-126-16":[-23.5,-6.98],"6-126-17":[-25.32,-10.8],"6-126-18":[-24.77,-10.53],"6-126-19":[-22.17,-7.92],"6-126-20":[-19.02,-6.36],"6-126-21":[-15.67,-4.68],"6-126-22":[-13.71,-4.14],"6-126-23":[-8.08,4.18],"6-126-24":[0.43,12.94],"6-126-25":[5.52,20.01],"6-126-26":[9,27.01],"6-126-27":[12.09,34.89],"6-126-28":[14.82,40.97],"6-126-29":[17.43,44.78],"6-126-30":[17.98,49.65],"6-126-31":[20.75,52.08],"6-126-32":[19.19,56],"6-126-33":[25.26,66],"6-126-34":[28.98,76.55],"6-126-35":[34.87,95.02],"6-126-36":[41.34,297.72],"6-126-37":[52.33,122.31],"6-126-38":[55.22,587.24],"6-126-39":[52.13,124.15],"6-126-40":[49.8,107.99],"6-126-41":[47.34,102.99],"6-126-42":[43.4,96.7],"6-126-43":[39.32,87],"6-126-44":[-5.9,921.24],"6-126-45":[-23.78,2784.98],"6-126-46":[-12.29,1743.24],"6-126-47":[4.88,29.21],"6-126-48":[-9.96,11.4],"6-126-49":[-34.93,-4.57],"6-126-50":[-54.64,-14.05],"6-126-51":[-75.71,-26.38],"6-126-52":[-89.11,-37.37],"6-126-53":[-98.36,-44.98],"6-126-54":[-101.06,-48.44],"6-126-55":[-115.57,-50.65],"6-126-56":[-120.87,-56.97],"6-126-57":[-122.6,-57.42],"6-126-58":[-120.57,-57.41],"6-126-59":[-115.91,-52.64],"6-126-60":[-106.89,-48.23],"6-126-61":[-95.56,3164.9],"6-126-62":[1096.86,4009.42],"6-126-63":[-29.54,3089.77],"6-127-0":[10.58,26.87],"6-127-1":[6.39,20.25],"5-63-0":[6.39,26.87],"6-127-2":[3.82,13.4],"6-127-3":[2.41,8.63],"5-63-1":[1.34,13.4],"4-31-0":[0.14,26.87],"6-127-4":[1.13,6.79],"6-127-5":[1.13,4.39],"5-63-2":[1.13,6.79],"6-127-6":[1.24,612.64],"6-127-7":[2.31,1712.25],"5-63-3":[1.24,1712.25],"4-31-1":[0.89,1712.25],"3-15-0":[0.14,1712.25],"6-127-8":[4.5,1465.56],"6-127-9":[3.01,918.23],"5-63-4":[2.53,1465.56],"6-127-10":[-3.08,11.47],"6-127-11":[-0.12,3.44],"5-63-5":[-4.55,360.68],"4-31-2":[-4.55,2305.88],"6-127-12":[-1.99,11.61],"6-127-13":[-24.8,1210.91],"5-63-6":[-24.8,1210.91],"6-127-14":[-25.57,1.39],"6-127-15":[-13.94,-1.38],"5-63-7":[-25.57,1.9],"4-31-3":[-25.57,1210.91],"3-15-1":[-25.57,4774.23],"2-7-0":[-25.57,4774.23],"6-127-16":[-21,-6.43],"6-127-17":[-25.9,-10.68],"5-63-8":[-25.9,-6.43],"6-127-18":[-26.05,-10.54],"6-127-19":[-22.59,-7.92],"5-63-9":[-26.05,-7.92],"4-31-4":[-31.2,-2.41],"6-127-20":[-19,-7.92],"6-127-21":[-16.82,-4.7],"5-63-10":[-19.02,-4.68],"6-127-22":[-10.69,-3.04],"6-127-23":[-8.26,1.26],"5-63-11":[-13.71,4.18],"4-31-5":[-24.31,9.7],"3-15-2":[-31.2,39.89],"6-127-24":[0.43,9.72],"6-127-25":[4.5,17.61],"5-63-12":[0.43,20.01],"6-127-26":[6.9,22.78],"6-127-27":[8.89,29.21],"5-63-13":[6.9,34.89],"4-31-6":[0.43,48.53],"6-127-28":[12.01,35],"6-127-29":[14.22,37.73],"5-63-14":[12.01,44.78],"6-127-30":[15.67,40.09],"6-127-31":[19.02,46.55],"5-63-15":[15.67,52.08],"4-31-7":[12.01,68.96],"3-15-3":[0.43,831.89],"2-7-1":[-84.13,3800.26],"1-3-0":[-268.7,7512.84],"6-127-32":[20.92,50.53],"6-127-33":[22.89,57.98],"5-63-16":[19.19,66],"6-127-34":[25.27,69.75],"6-127-35":[27.53,86.05],"5-63-17":[25.27,95.02],"4-31-8":[19.19,117.27],"6-127-36":[39.54,104.68],"6-127-37":[22.06,1069.23],"5-63-18":[22.06,1069.23],"6-127-38":[20.15,1371.15],"6-127-39":[49.74,108.66],"5-63-19":[20.15,1371.15],"4-31-9":[20.15,1371.15],"3-15-4":[-166.26,2387.59],"6-127-40":[48.93,103.15],"6-127-41":[47.07,98.56],"5-63-20":[47.07,107.99],"6-127-42":[43.96,94.48],"6-127-43":[38.98,91.71],"5-63-21":[38.98,96.7],"4-31-10":[32.69,131.97],"6-127-44":[20.8,83.16],"6-127-45":[-12.67,1759.88],"5-63-22":[-23.78,2784.98],"6-127-46":[11.75,42.6],"6-127-47":[3.24,30.55],"5-63-23":[-12.29,1743.24],"4-31-11":[-35.65,3719.73],"3-15-5":[-345.62,3719.73],"2-7-2":[-345.62,5227.39],"6-127-48":[-9.45,37.42],"6-127-49":[-38.82,351.39],"5-63-24":[-38.82,351.39],"6-127-50":[-56.24,-17.74],"6-127-51":[-75.79,-28.67],"5-63-25":[-75.79,-14.05],"4-31-12":[-84.41,2290.2],"6-127-52":[-88.85,-37.45],"6-127-53":[-98.42,-44.71],"5-63-26":[-98.42,-37.37],"6-127-54":[-101.55,-48.81],"6-127-55":[-117.07,-50.94],"5-63-27":[-117.07,-48.44],"4-31-13":[-117.07,-35.05],"3-15-6":[-117.07,2290.2],"6-127-56":[-123.45,-57.63],"6-127-57":[-123.93,-60.36],"5-63-28":[-123.93,-56.97],"6-127-58":[-123.3,-58.62],"6-127-59":[-117.49,-53.65],"5-63-29":[-123.3,-52.64],"4-31-14":[-123.93,3544.4],"6-127-60":[-109.53,-48.22],"6-127-61":[-95.58,1201.67],"5-63-30":[-109.53,3164.9],"6-127-62":[-43.08,3227.47],"6-127-63":[-31.68,3092.98],"5-63-31":[-43.08,4009.42],"4-31-15":[-109.53,4009.42],"3-15-7":[-123.93,4324.92],"2-7-3":[-123.93,4324.92],"1-3-1":[-345.62,5227.39],"0-1-0":[-398.55,8777.15]} \ No newline at end of file diff --git a/public/static/Cesium/Cesium.js b/public/static/Cesium/Cesium.js new file mode 100644 index 0000000..49d05fe --- /dev/null +++ b/public/static/Cesium/Cesium.js @@ -0,0 +1,14506 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.105 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var Cesium=(()=>{var gxe=Object.create;var J2=Object.defineProperty;var yxe=Object.getOwnPropertyDescriptor;var Axe=Object.getOwnPropertyNames;var xxe=Object.getPrototypeOf,Cxe=Object.prototype.hasOwnProperty;var j_=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var Zc=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Txe=(e,t)=>{for(var n in t)J2(e,n,{get:t[n],enumerable:!0})},RK=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Axe(t))!Cxe.call(e,o)&&o!==n&&J2(e,o,{get:()=>t[o],enumerable:!(i=yxe(t,o))||i.enumerable});return e};var So=(e,t,n)=>(n=e!=null?gxe(xxe(e)):{},RK(t||!e||!e.__esModule?J2(n,"default",{value:e,enumerable:!0}):n,e)),Exe=e=>RK(J2({},"__esModule",{value:!0}),e);var Z2=Zc((i0t,LK)=>{var Vh=function(e){e==null&&(e=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,e.constructor==Array?this.init_by_array(e,e.length):this.init_seed(e)};Vh.prototype.init_seed=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti>>30;this.mt[this.mti]=(((e&4294901760)>>>16)*1812433253<<16)+(e&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};Vh.prototype.init_by_array=function(e,t){var n,i,o;for(this.init_seed(19650218),n=1,i=0,o=this.N>t?this.N:t;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1664525<<16)+(r&65535)*1664525)+e[i]+i,this.mt[n]>>>=0,n++,i++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1),i>=t&&(i=0)}for(o=this.N-1;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1566083941<<16)+(r&65535)*1566083941)-n,this.mt[n]>>>=0,n++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1)}this.mt[0]=2147483648};Vh.prototype.random_int=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_seed(5489),n=0;n>>1^t[e&1];for(;n>>1^t[e&1];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[e&1],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0};Vh.prototype.random_int31=function(){return this.random_int()>>>1};Vh.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};Vh.prototype.random=function(){return this.random_int()*(1/4294967296)};Vh.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};Vh.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)};LK.exports=Vh});var eZ=Zc((JC,ZC)=>{/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof JC=="object"&&JC&&!JC.nodeType&&JC,n=typeof ZC=="object"&&ZC&&!ZC.nodeType&&ZC,i=typeof global=="object"&&global;(i.global===i||i.window===i||i.self===i)&&(e=i);var o,r=2147483647,s=36,a=1,c=26,u=38,f=700,d=72,p=128,g="-",h=/^xn--/,A=/[^\x20-\x7E]/,x=/[\x2E\u3002\uFF0E\uFF61]/g,C={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},T=s-a,E=Math.floor,S=String.fromCharCode,v;function D(V){throw new RangeError(C[V])}function O(V,G){for(var U=V.length,q=[];U--;)q[U]=G(V[U]);return q}function M(V,G){var U=V.split("@"),q="";U.length>1&&(q=U[0]+"@",V=U[1]),V=V.replace(x,".");var Y=V.split("."),Q=O(Y,G).join(".");return q+Q}function L(V){for(var G=[],U=0,q=V.length,Y,Q;U=55296&&Y<=56319&&U65535&&(G-=65536,U+=S(G>>>10&1023|55296),G=56320|G&1023),U+=S(G),U}).join("")}function _(V){return V-48<10?V-22:V-65<26?V-65:V-97<26?V-97:s}function b(V,G){return V+22+75*(V<26)-((G!=0)<<5)}function w(V,G,U){var q=0;for(V=U?E(V/f):V>>1,V+=E(V/G);V>T*c>>1;q+=s)V=E(V/T);return E(q+(T+1)*V/(V+u))}function I(V){var G=[],U=V.length,q,Y=0,Q=p,W=d,K,J,_e,xe,se,Ae,me,Se,Ie;for(K=V.lastIndexOf(g),K<0&&(K=0),J=0;J=128&&D("not-basic"),G.push(V.charCodeAt(J));for(_e=K>0?K+1:0;_e=U&&D("invalid-input"),me=_(V.charCodeAt(_e++)),(me>=s||me>E((r-Y)/se))&&D("overflow"),Y+=me*se,Se=Ae<=W?a:Ae>=W+c?c:Ae-W,!(meE(r/Ie)&&D("overflow"),se*=Ie;q=G.length+1,W=w(Y-xe,q,xe==0),E(Y/q)>r-Q&&D("overflow"),Q+=E(Y/q),Y%=q,G.splice(Y++,0,Q)}return N(G)}function R(V){var G,U,q,Y,Q,W,K,J,_e,xe,se,Ae=[],me,Se,Ie,Ve;for(V=L(V),me=V.length,G=p,U=0,Q=d,W=0;W=G&&seE((r-U)/Se)&&D("overflow"),U+=(K-G)*Se,G=K,W=0;Wr&&D("overflow"),se==G){for(J=U,_e=s;xe=_e<=Q?a:_e>=Q+c?c:_e-Q,!(J{/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof b3=="object"&&b3.exports?b3.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(tZ,function(e){"use strict";var t=e&&e.IPv6;function n(o){var r=o.toLowerCase(),s=r.split(":"),a=s.length,c=8;s[0]===""&&s[1]===""&&s[2]===""?(s.shift(),s.shift()):s[0]===""&&s[1]===""?s.shift():s[a-1]===""&&s[a-2]===""&&s.pop(),a=s.length,s[a-1].indexOf(".")!==-1&&(c=7);var u;for(u=0;u1);p++)f.splice(0,1);s[d]=f.join("")}var g=-1,h=0,A=0,x=-1,C=!1;for(d=0;dh&&(g=x,h=A)):s[d]==="0"&&(C=!0,x=d,A=1);A>h&&(g=x,h=A),h>1&&s.splice(g,h,""),a=s.length;var T="";for(s[0]===""&&(T=":"),d=0;d{/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof S3=="object"&&S3.exports?S3.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(iZ,function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(r+1,o)+" ")>=0:!1},is:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r>=0)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(0,o)+" ")>=0:!1},get:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return null;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return null;var s=n.list[i.slice(o+1)];return!s||s.indexOf(" "+i.slice(r+1,o)+" ")<0?null:i.slice(r+1)},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n})});var Vl=Zc((rZ,w3)=>{/*! + * URI.js - Mutating URLs + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof w3=="object"&&w3.exports?w3.exports=t(eZ(),nZ(),oZ()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(rZ,function(e,t,n,i){"use strict";var o=i&&i.URI;function r(b,w){var I=arguments.length>=1,R=arguments.length>=2;if(!(this instanceof r))return I?R?new r(b,w):new r(b):new r;if(b===void 0){if(I)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?b=location.href+"":b=""}if(b===null&&I)throw new TypeError("null is not a valid argument for URI");return this.href(b),w!==void 0?this.absoluteTo(w):this}function s(b){return/^[0-9]+$/.test(b)}r.version="1.19.11";var a=r.prototype,c=Object.prototype.hasOwnProperty;function u(b){return b.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function f(b){return b===void 0?"Undefined":String(Object.prototype.toString.call(b)).slice(8,-1)}function d(b){return f(b)==="Array"}function p(b,w){var I={},R,F;if(f(w)==="RegExp")I=null;else if(d(w))for(R=0,F=w.length;R]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig,r.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},r.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,r.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},r.hostProtocols=["http","https"],r.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,r.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},r.getDomAttribute=function(b){if(!(!b||!b.nodeName)){var w=b.nodeName.toLowerCase();if(!(w==="input"&&b.type!=="image"))return r.domAttributes[w]}};function x(b){return escape(b)}function C(b){return encodeURIComponent(b).replace(/[!'()*]/g,x).replace(/\*/g,"%2A")}r.encode=C,r.decode=decodeURIComponent,r.iso8859=function(){r.encode=escape,r.decode=unescape},r.unicode=function(){r.encode=C,r.decode=decodeURIComponent},r.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},r.encodeQuery=function(b,w){var I=r.encode(b+"");return w===void 0&&(w=r.escapeQuerySpace),w?I.replace(/%20/g,"+"):I},r.decodeQuery=function(b,w){b+="",w===void 0&&(w=r.escapeQuerySpace);try{return r.decode(w?b.replace(/\+/g,"%20"):b)}catch{return b}};var T={encode:"encode",decode:"decode"},E,S=function(b,w){return function(I){try{return r[w](I+"").replace(r.characters[b][w].expression,function(R){return r.characters[b][w].map[R]})}catch{return I}}};for(E in T)r[E+"PathSegment"]=S("pathname",T[E]),r[E+"UrnPathSegment"]=S("urnpath",T[E]);var v=function(b,w,I){return function(R){var F;I?F=function(U){return r[w](r[I](U))}:F=r[w];for(var k=(R+"").split(b),V=0,G=k.length;V-1&&(w.fragment=b.substring(I+1)||null,b=b.substring(0,I)),I=b.indexOf("?"),I>-1&&(w.query=b.substring(I+1)||null,b=b.substring(0,I)),b=b.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),b=b.replace(/^[/\\]{2,}/i,"//"),b.substring(0,2)==="//"?(w.protocol=null,b=b.substring(2),b=r.parseAuthority(b,w)):(I=b.indexOf(":"),I>-1&&(w.protocol=b.substring(0,I)||null,w.protocol&&!w.protocol.match(r.protocol_expression)?w.protocol=void 0:b.substring(I+1,I+3).replace(/\\/g,"/")==="//"?(b=b.substring(I+3),b=r.parseAuthority(b,w)):(b=b.substring(I+1),w.urn=!0))),w.path=b,w},r.parseHost=function(b,w){b||(b=""),b=b.replace(/\\/g,"/");var I=b.indexOf("/"),R,F;if(I===-1&&(I=b.length),b.charAt(0)==="[")R=b.indexOf("]"),w.hostname=b.substring(1,R)||null,w.port=b.substring(R+2,I)||null,w.port==="/"&&(w.port=null);else{var k=b.indexOf(":"),V=b.indexOf("/"),G=b.indexOf(":",k+1);G!==-1&&(V===-1||G-1?F:b.length-1),V;return k>-1&&(F===-1||k-1?W=W.slice(0,K)+W.slice(K).replace(k,""):W=W.replace(k,""),!(W.length<=U[0].length)&&!(I.ignore&&I.ignore.test(W))){Q=q+W.length;var xe=w(W,q,Q,b);if(xe===void 0){R.lastIndex=Q;continue}xe=String(xe),b=b.slice(0,q)+xe+b.slice(Q),R.lastIndex=q+xe.length}}return R.lastIndex=0,b},r.ensureValidHostname=function(b,w){var I=!!b,R=!!w,F=!1;if(R&&(F=g(r.hostProtocols,w)),F&&!I)throw new TypeError("Hostname cannot be empty, if protocol is "+w);if(b&&b.match(r.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(b).match(r.invalid_hostname_characters))throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-:_]')}},r.ensureValidPort=function(b){if(b){var w=Number(b);if(!(s(w)&&w>0&&w<65536))throw new TypeError('Port "'+b+'" is not a valid port')}},r.noConflict=function(b){if(b){var w={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(w.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(w.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(w.SecondLevelDomains=i.SecondLevelDomains.noConflict()),w}else i.URI===this&&(i.URI=o);return this},a.build=function(b){return b===!0?this._deferred_build=!0:(b===void 0||this._deferred_build)&&(this._string=r.build(this._parts),this._deferred_build=!1),this},a.clone=function(){return new r(this)},a.valueOf=a.toString=function(){return this.build(!1)._string};function D(b){return function(w,I){return w===void 0?this._parts[b]||"":(this._parts[b]=w||null,this.build(!I),this)}}function O(b,w){return function(I,R){return I===void 0?this._parts[b]||"":(I!==null&&(I=I+"",I.charAt(0)===w&&(I=I.substring(1))),this._parts[b]=I,this.build(!R),this)}}a.protocol=D("protocol"),a.username=D("username"),a.password=D("password"),a.hostname=D("hostname"),a.port=D("port"),a.query=O("query","?"),a.fragment=O("fragment","#"),a.search=function(b,w){var I=this.query(b,w);return typeof I=="string"&&I.length?"?"+I:I},a.hash=function(b,w){var I=this.fragment(b,w);return typeof I=="string"&&I.length?"#"+I:I},a.pathname=function(b,w){if(b===void 0||b===!0){var I=this._parts.path||(this._parts.hostname?"/":"");return b?(this._parts.urn?r.decodeUrnPath:r.decodePath)(I):I}else return this._parts.urn?this._parts.path=b?r.recodeUrnPath(b):"":this._parts.path=b?r.recodePath(b):"/",this.build(!w),this},a.path=a.pathname,a.href=function(b,w){var I;if(b===void 0)return this.toString();this._string="",this._parts=r._parts();var R=b instanceof r,F=typeof b=="object"&&(b.hostname||b.path||b.pathname);if(b.nodeName){var k=r.getDomAttribute(b);b=b[k]||"",F=!1}if(!R&&F&&b.pathname!==void 0&&(b=b.toString()),typeof b=="string"||b instanceof String)this._parts=r.parse(String(b),this._parts);else if(R||F){var V=R?b._parts:b;for(I in V)I!=="query"&&c.call(this._parts,I)&&(this._parts[I]=V[I]);V.query&&this.query(V.query,!1)}else throw new TypeError("invalid input");return this.build(!w),this},a.is=function(b){var w=!1,I=!1,R=!1,F=!1,k=!1,V=!1,G=!1,U=!this._parts.urn;switch(this._parts.hostname&&(U=!1,I=r.ip4_expression.test(this._parts.hostname),R=r.ip6_expression.test(this._parts.hostname),w=I||R,F=!w,k=F&&n&&n.has(this._parts.hostname),V=F&&r.idn_expression.test(this._parts.hostname),G=F&&r.punycode_expression.test(this._parts.hostname)),b.toLowerCase()){case"relative":return U;case"absolute":return!U;case"domain":case"name":return F;case"sld":return k;case"ip":return w;case"ip4":case"ipv4":case"inet4":return I;case"ip6":case"ipv6":case"inet6":return R;case"idn":return V;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return G}return null};var M=a.protocol,L=a.port,N=a.hostname;a.protocol=function(b,w){if(b&&(b=b.replace(/:(\/\/)?$/,""),!b.match(r.protocol_expression)))throw new TypeError('Protocol "'+b+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return M.call(this,b,w)},a.scheme=a.protocol,a.port=function(b,w){return this._parts.urn?b===void 0?"":this:(b!==void 0&&(b===0&&(b=null),b&&(b+="",b.charAt(0)===":"&&(b=b.substring(1)),r.ensureValidPort(b))),L.call(this,b,w))},a.hostname=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b!==void 0){var I={preventInvalidHostname:this._parts.preventInvalidHostname},R=r.parseHost(b,I);if(R!=="/")throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-]');b=I.hostname,this._parts.preventInvalidHostname&&r.ensureValidHostname(b,this._parts.protocol)}return N.call(this,b,w)},a.origin=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0){var I=this.protocol(),R=this.authority();return R?(I?I+"://":"")+this.authority():""}else{var F=r(b);return this.protocol(F.protocol()).authority(F.authority()).build(!w),this}},a.host=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0)return this._parts.hostname?r.buildHost(this._parts):"";var I=r.parseHost(b,this._parts);if(I!=="/")throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.authority=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0)return this._parts.hostname?r.buildAuthority(this._parts):"";var I=r.parseAuthority(b,this._parts);if(I!=="/")throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.userinfo=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0){var I=r.buildUserinfo(this._parts);return I&&I.substring(0,I.length-1)}else return b[b.length-1]!=="@"&&(b+="@"),r.parseUserinfo(b,this._parts),this.build(!w),this},a.resource=function(b,w){var I;return b===void 0?this.path()+this.search()+this.hash():(I=r.parse(b),this._parts.path=I.path,this._parts.query=I.query,this._parts.fragment=I.fragment,this.build(!w),this)},a.subdomain=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,I)||""}else{var R=this._parts.hostname.length-this.domain().length,F=this._parts.hostname.substring(0,R),k=new RegExp("^"+u(F));if(b&&b.charAt(b.length-1)!=="."&&(b+="."),b.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return b&&r.ensureValidHostname(b,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(k,b),this.build(!w),this}},a.domain=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(typeof b=="boolean"&&(w=b,b=void 0),b===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.match(/\./g);if(I&&I.length<2)return this._parts.hostname;var R=this._parts.hostname.length-this.tld(w).length-1;return R=this._parts.hostname.lastIndexOf(".",R-1)+1,this._parts.hostname.substring(R)||""}else{if(!b)throw new TypeError("cannot set domain empty");if(b.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(r.ensureValidHostname(b,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=b;else{var F=new RegExp(u(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(F,b)}return this.build(!w),this}},a.tld=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(typeof b=="boolean"&&(w=b,b=void 0),b===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.lastIndexOf("."),R=this._parts.hostname.substring(I+1);return w!==!0&&n&&n.list[R.toLowerCase()]&&n.get(this._parts.hostname)||R}else{var F;if(b)if(b.match(/[^a-zA-Z0-9-]/))if(n&&n.is(b))F=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(F,b);else throw new TypeError('TLD "'+b+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");F=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(F,b)}else throw new TypeError("cannot set TLD empty");return this.build(!w),this}},a.directory=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0||b===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var I=this._parts.path.length-this.filename().length-1,R=this._parts.path.substring(0,I)||(this._parts.hostname?"/":"");return b?r.decodePath(R):R}else{var F=this._parts.path.length-this.filename().length,k=this._parts.path.substring(0,F),V=new RegExp("^"+u(k));return this.is("relative")||(b||(b="/"),b.charAt(0)!=="/"&&(b="/"+b)),b&&b.charAt(b.length-1)!=="/"&&(b+="/"),b=r.recodePath(b),this._parts.path=this._parts.path.replace(V,b),this.build(!w),this}},a.filename=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(typeof b!="string"){if(!this._parts.path||this._parts.path==="/")return"";var I=this._parts.path.lastIndexOf("/"),R=this._parts.path.substring(I+1);return b?r.decodePathSegment(R):R}else{var F=!1;b.charAt(0)==="/"&&(b=b.substring(1)),b.match(/\.?\//)&&(F=!0);var k=new RegExp(u(this.filename())+"$");return b=r.recodePath(b),this._parts.path=this._parts.path.replace(k,b),F?this.normalizePath(w):this.build(!w),this}},a.suffix=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0||b===!0){if(!this._parts.path||this._parts.path==="/")return"";var I=this.filename(),R=I.lastIndexOf("."),F,k;return R===-1?"":(F=I.substring(R+1),k=/^[a-z0-9%]+$/i.test(F)?F:"",b?r.decodePathSegment(k):k)}else{b.charAt(0)==="."&&(b=b.substring(1));var V=this.suffix(),G;if(V)b?G=new RegExp(u(V)+"$"):G=new RegExp(u("."+V)+"$");else{if(!b)return this;this._parts.path+="."+r.recodePath(b)}return G&&(b=r.recodePath(b),this._parts.path=this._parts.path.replace(G,b)),this.build(!w),this}},a.segment=function(b,w,I){var R=this._parts.urn?":":"/",F=this.path(),k=F.substring(0,1)==="/",V=F.split(R);if(b!==void 0&&typeof b!="number"&&(I=w,w=b,b=void 0),b!==void 0&&typeof b!="number")throw new Error('Bad segment "'+b+'", must be 0-based integer');if(k&&V.shift(),b<0&&(b=Math.max(V.length+b,0)),w===void 0)return b===void 0?V:V[b];if(b===null||V[b]===void 0)if(d(w)){V=[];for(var G=0,U=w.length;G{/*! @license DOMPurify 3.0.2 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.2/LICENSE */(function(e,t){typeof K8=="object"&&typeof J8<"u"?J8.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.DOMPurify=t())})(K8,function(){"use strict";let{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:i,getOwnPropertyDescriptor:o}=Object,{freeze:r,seal:s,create:a}=Object,{apply:c,construct:u}=typeof Reflect<"u"&&Reflect;c||(c=function(ke,dt,pt){return ke.apply(dt,pt)}),r||(r=function(ke){return ke}),s||(s=function(ke){return ke}),u||(u=function(ke,dt){return new ke(...dt)});let f=v(Array.prototype.forEach),d=v(Array.prototype.pop),p=v(Array.prototype.push),g=v(String.prototype.toLowerCase),h=v(String.prototype.toString),A=v(String.prototype.match),x=v(String.prototype.replace),C=v(String.prototype.indexOf),T=v(String.prototype.trim),E=v(RegExp.prototype.test),S=D(TypeError);function v(Re){return function(ke){for(var dt=arguments.length,pt=new Array(dt>1?dt-1:0),rt=1;rt/gm),Q=s(/\${[\w\W]*}/gm),W=s(/^data-[\-\w.\u00B7-\uFFFF]/),K=s(/^aria-[\-\w]+$/),J=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),_e=s(/^(?:\w+script|data):/i),xe=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),se=s(/^html$/i);var Ae=Object.freeze({__proto__:null,MUSTACHE_EXPR:q,ERB_EXPR:Y,TMPLIT_EXPR:Q,DATA_ATTR:W,ARIA_ATTR:K,IS_ALLOWED_URI:J,IS_SCRIPT_OR_DATA:_e,ATTR_WHITESPACE:xe,DOCTYPE_NAME:se});let me=()=>typeof window>"u"?null:window,Se=function(ke,dt){if(typeof ke!="object"||typeof ke.createPolicy!="function")return null;let pt=null,rt="data-tt-policy-suffix";dt.currentScript&&dt.currentScript.hasAttribute(rt)&&(pt=dt.currentScript.getAttribute(rt));let fn="dompurify"+(pt?"#"+pt:"");try{return ke.createPolicy(fn,{createHTML(Bn){return Bn},createScriptURL(Bn){return Bn}})}catch{return console.warn("TrustedTypes policy "+fn+" could not be created."),null}};function Ie(){let Re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:me(),ke=bn=>Ie(bn);if(ke.version="3.0.2",ke.removed=[],!Re||!Re.document||Re.document.nodeType!==9)return ke.isSupported=!1,ke;let dt=Re.document,{document:pt}=Re,{DocumentFragment:rt,HTMLTemplateElement:fn,Node:Bn,Element:jt,NodeFilter:Ze,NamedNodeMap:pe=Re.NamedNodeMap||Re.MozNamedAttrMap,HTMLFormElement:Ee,DOMParser:je,trustedTypes:fi}=Re,Ai=jt.prototype,er=L(Ai,"cloneNode"),Fs=L(Ai,"nextSibling"),Us=L(Ai,"childNodes"),Br=L(Ai,"parentNode");if(typeof fn=="function"){let bn=pt.createElement("template");bn.content&&bn.content.ownerDocument&&(pt=bn.content.ownerDocument)}let Mo=Se(fi,dt),Be=Mo?Mo.createHTML(""):"",{implementation:st,createNodeIterator:Qe,createDocumentFragment:$e,getElementsByTagName:yt}=pt,{importNode:zt}=dt,an={};ke.isSupported=typeof e=="function"&&typeof Br=="function"&&st&&typeof st.createHTMLDocument<"u";let{MUSTACHE_EXPR:Ji,ERB_EXPR:go,TMPLIT_EXPR:$r,DATA_ATTR:es,ARIA_ATTR:ar,IS_SCRIPT_OR_DATA:Wi,ATTR_WHITESPACE:Wr}=Ae,{IS_ALLOWED_URI:Un}=Ae,ln=null,Xn=O({},[...N,..._,...b,...I,...F]),gn=null,Ia=O({},[...k,...V,...G,...U]),Kn=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Lr=null,Xf=null,cr=!0,Pa=!0,Kf=!1,Nh=!0,jr=!1,pc=!1,h0=!1,Am=!1,ps=!1,W_=!1,UC=!1,IH=!0,yK=!1,cxe="user-content-",PH=!0,KS=!1,VC={},kC=null,AK=O({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),xK=null,CK=O({},["audio","video","img","source","image","track"]),OH=null,TK=O({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Y2="http://www.w3.org/1998/Math/MathML",q2="http://www.w3.org/2000/svg",Fh="http://www.w3.org/1999/xhtml",zC=Fh,MH=!1,RH=null,lxe=O({},[Y2,q2,Fh],h),p0,uxe=["application/xhtml+xml","text/html"],fxe="text/html",Vs,HC=null,dxe=pt.createElement("form"),EK=function(De){return De instanceof RegExp||De instanceof Function},BH=function(De){HC&&HC===De||((!De||typeof De!="object")&&(De={}),De=M(De),p0=uxe.indexOf(De.PARSER_MEDIA_TYPE)===-1?p0=fxe:p0=De.PARSER_MEDIA_TYPE,Vs=p0==="application/xhtml+xml"?h:g,ln="ALLOWED_TAGS"in De?O({},De.ALLOWED_TAGS,Vs):Xn,gn="ALLOWED_ATTR"in De?O({},De.ALLOWED_ATTR,Vs):Ia,RH="ALLOWED_NAMESPACES"in De?O({},De.ALLOWED_NAMESPACES,h):lxe,OH="ADD_URI_SAFE_ATTR"in De?O(M(TK),De.ADD_URI_SAFE_ATTR,Vs):TK,xK="ADD_DATA_URI_TAGS"in De?O(M(CK),De.ADD_DATA_URI_TAGS,Vs):CK,kC="FORBID_CONTENTS"in De?O({},De.FORBID_CONTENTS,Vs):AK,Lr="FORBID_TAGS"in De?O({},De.FORBID_TAGS,Vs):{},Xf="FORBID_ATTR"in De?O({},De.FORBID_ATTR,Vs):{},VC="USE_PROFILES"in De?De.USE_PROFILES:!1,cr=De.ALLOW_ARIA_ATTR!==!1,Pa=De.ALLOW_DATA_ATTR!==!1,Kf=De.ALLOW_UNKNOWN_PROTOCOLS||!1,Nh=De.ALLOW_SELF_CLOSE_IN_ATTR!==!1,jr=De.SAFE_FOR_TEMPLATES||!1,pc=De.WHOLE_DOCUMENT||!1,ps=De.RETURN_DOM||!1,W_=De.RETURN_DOM_FRAGMENT||!1,UC=De.RETURN_TRUSTED_TYPE||!1,Am=De.FORCE_BODY||!1,IH=De.SANITIZE_DOM!==!1,yK=De.SANITIZE_NAMED_PROPS||!1,PH=De.KEEP_CONTENT!==!1,KS=De.IN_PLACE||!1,Un=De.ALLOWED_URI_REGEXP||J,zC=De.NAMESPACE||Fh,Kn=De.CUSTOM_ELEMENT_HANDLING||{},De.CUSTOM_ELEMENT_HANDLING&&EK(De.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Kn.tagNameCheck=De.CUSTOM_ELEMENT_HANDLING.tagNameCheck),De.CUSTOM_ELEMENT_HANDLING&&EK(De.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Kn.attributeNameCheck=De.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),De.CUSTOM_ELEMENT_HANDLING&&typeof De.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Kn.allowCustomizedBuiltInElements=De.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),jr&&(Pa=!1),W_&&(ps=!0),VC&&(ln=O({},[...F]),gn=[],VC.html===!0&&(O(ln,N),O(gn,k)),VC.svg===!0&&(O(ln,_),O(gn,V),O(gn,U)),VC.svgFilters===!0&&(O(ln,b),O(gn,V),O(gn,U)),VC.mathMl===!0&&(O(ln,I),O(gn,G),O(gn,U))),De.ADD_TAGS&&(ln===Xn&&(ln=M(ln)),O(ln,De.ADD_TAGS,Vs)),De.ADD_ATTR&&(gn===Ia&&(gn=M(gn)),O(gn,De.ADD_ATTR,Vs)),De.ADD_URI_SAFE_ATTR&&O(OH,De.ADD_URI_SAFE_ATTR,Vs),De.FORBID_CONTENTS&&(kC===AK&&(kC=M(kC)),O(kC,De.FORBID_CONTENTS,Vs)),PH&&(ln["#text"]=!0),pc&&O(ln,["html","head","body"]),ln.table&&(O(ln,["tbody"]),delete Lr.tbody),r&&r(De),HC=De)},bK=O({},["mi","mo","mn","ms","mtext"]),SK=O({},["foreignobject","desc","title","annotation-xml"]),mxe=O({},["title","style","font","a","script"]),X2=O({},_);O(X2,b),O(X2,w);let LH=O({},I);O(LH,R);let hxe=function(De){let Ct=Br(De);(!Ct||!Ct.tagName)&&(Ct={namespaceURI:zC,tagName:"template"});let Xt=g(De.tagName),bo=g(Ct.tagName);return RH[De.namespaceURI]?De.namespaceURI===q2?Ct.namespaceURI===Fh?Xt==="svg":Ct.namespaceURI===Y2?Xt==="svg"&&(bo==="annotation-xml"||bK[bo]):!!X2[Xt]:De.namespaceURI===Y2?Ct.namespaceURI===Fh?Xt==="math":Ct.namespaceURI===q2?Xt==="math"&&SK[bo]:!!LH[Xt]:De.namespaceURI===Fh?Ct.namespaceURI===q2&&!SK[bo]||Ct.namespaceURI===Y2&&!bK[bo]?!1:!LH[Xt]&&(mxe[Xt]||!X2[Xt]):!!(p0==="application/xhtml+xml"&&RH[De.namespaceURI]):!1},_0=function(De){p(ke.removed,{element:De});try{De.parentNode.removeChild(De)}catch{De.remove()}},NH=function(De,Ct){try{p(ke.removed,{attribute:Ct.getAttributeNode(De),from:Ct})}catch{p(ke.removed,{attribute:null,from:Ct})}if(Ct.removeAttribute(De),De==="is"&&!gn[De])if(ps||W_)try{_0(Ct)}catch{}else try{Ct.setAttribute(De,"")}catch{}},wK=function(De){let Ct,Xt;if(Am)De=""+De;else{let Uu=A(De,/^[\r\n\t ]+/);Xt=Uu&&Uu[0]}p0==="application/xhtml+xml"&&zC===Fh&&(De=''+De+"");let bo=Mo?Mo.createHTML(De):De;if(zC===Fh)try{Ct=new je().parseFromString(bo,p0)}catch{}if(!Ct||!Ct.documentElement){Ct=st.createDocument(zC,"template",null);try{Ct.documentElement.innerHTML=MH?Be:bo}catch{}}let ks=Ct.body||Ct.documentElement;return De&&Xt&&ks.insertBefore(pt.createTextNode(Xt),ks.childNodes[0]||null),zC===Fh?yt.call(Ct,pc?"html":"body")[0]:pc?Ct.documentElement:ks},vK=function(De){return Qe.call(De.ownerDocument||De,De,Ze.SHOW_ELEMENT|Ze.SHOW_COMMENT|Ze.SHOW_TEXT,null,!1)},pxe=function(De){return De instanceof Ee&&(typeof De.nodeName!="string"||typeof De.textContent!="string"||typeof De.removeChild!="function"||!(De.attributes instanceof pe)||typeof De.removeAttribute!="function"||typeof De.setAttribute!="function"||typeof De.namespaceURI!="string"||typeof De.insertBefore!="function"||typeof De.hasChildNodes!="function")},K2=function(De){return typeof Bn=="object"?De instanceof Bn:De&&typeof De=="object"&&typeof De.nodeType=="number"&&typeof De.nodeName=="string"},Uh=function(De,Ct,Xt){an[De]&&f(an[De],bo=>{bo.call(ke,Ct,Xt,HC)})},DK=function(De){let Ct;if(Uh("beforeSanitizeElements",De,null),pxe(De))return _0(De),!0;let Xt=Vs(De.nodeName);if(Uh("uponSanitizeElement",De,{tagName:Xt,allowedTags:ln}),De.hasChildNodes()&&!K2(De.firstElementChild)&&(!K2(De.content)||!K2(De.content.firstElementChild))&&E(/<[/\w]/g,De.innerHTML)&&E(/<[/\w]/g,De.textContent))return _0(De),!0;if(!ln[Xt]||Lr[Xt]){if(!Lr[Xt]&&PK(Xt)&&(Kn.tagNameCheck instanceof RegExp&&E(Kn.tagNameCheck,Xt)||Kn.tagNameCheck instanceof Function&&Kn.tagNameCheck(Xt)))return!1;if(PH&&!kC[Xt]){let bo=Br(De)||De.parentNode,ks=Us(De)||De.childNodes;if(ks&&bo){let Uu=ks.length;for(let gr=Uu-1;gr>=0;--gr)bo.insertBefore(er(ks[gr],!0),Fs(De))}}return _0(De),!0}return De instanceof jt&&!hxe(De)||(Xt==="noscript"||Xt==="noembed")&&E(/<\/no(script|embed)/i,De.innerHTML)?(_0(De),!0):(jr&&De.nodeType===3&&(Ct=De.textContent,Ct=x(Ct,Ji," "),Ct=x(Ct,go," "),Ct=x(Ct,$r," "),De.textContent!==Ct&&(p(ke.removed,{element:De.cloneNode()}),De.textContent=Ct)),Uh("afterSanitizeElements",De,null),!1)},IK=function(De,Ct,Xt){if(IH&&(Ct==="id"||Ct==="name")&&(Xt in pt||Xt in dxe))return!1;if(!(Pa&&!Xf[Ct]&&E(es,Ct))){if(!(cr&&E(ar,Ct))){if(!gn[Ct]||Xf[Ct]){if(!(PK(De)&&(Kn.tagNameCheck instanceof RegExp&&E(Kn.tagNameCheck,De)||Kn.tagNameCheck instanceof Function&&Kn.tagNameCheck(De))&&(Kn.attributeNameCheck instanceof RegExp&&E(Kn.attributeNameCheck,Ct)||Kn.attributeNameCheck instanceof Function&&Kn.attributeNameCheck(Ct))||Ct==="is"&&Kn.allowCustomizedBuiltInElements&&(Kn.tagNameCheck instanceof RegExp&&E(Kn.tagNameCheck,Xt)||Kn.tagNameCheck instanceof Function&&Kn.tagNameCheck(Xt))))return!1}else if(!OH[Ct]){if(!E(Un,x(Xt,Wr,""))){if(!((Ct==="src"||Ct==="xlink:href"||Ct==="href")&&De!=="script"&&C(Xt,"data:")===0&&xK[De])){if(!(Kf&&!E(Wi,x(Xt,Wr,"")))){if(Xt)return!1}}}}}}return!0},PK=function(De){return De.indexOf("-")>0},OK=function(De){let Ct,Xt,bo,ks;Uh("beforeSanitizeAttributes",De,null);let{attributes:Uu}=De;if(!Uu)return;let gr={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:gn};for(ks=Uu.length;ks--;){Ct=Uu[ks];let{name:xm,namespaceURI:FH}=Ct;if(Xt=xm==="value"?Ct.value:T(Ct.value),bo=Vs(xm),gr.attrName=bo,gr.attrValue=Xt,gr.keepAttr=!0,gr.forceKeepAttr=void 0,Uh("uponSanitizeAttribute",De,gr),Xt=gr.attrValue,gr.forceKeepAttr||(NH(xm,De),!gr.keepAttr))continue;if(!Nh&&E(/\/>/i,Xt)){NH(xm,De);continue}jr&&(Xt=x(Xt,Ji," "),Xt=x(Xt,go," "),Xt=x(Xt,$r," "));let MK=Vs(De.nodeName);if(IK(MK,bo,Xt)){if(yK&&(bo==="id"||bo==="name")&&(NH(xm,De),Xt=cxe+Xt),Mo&&typeof fi=="object"&&typeof fi.getAttributeType=="function"&&!FH)switch(fi.getAttributeType(MK,bo)){case"TrustedHTML":Xt=Mo.createHTML(Xt);break;case"TrustedScriptURL":Xt=Mo.createScriptURL(Xt);break}try{FH?De.setAttributeNS(FH,xm,Xt):De.setAttribute(xm,Xt),d(ke.removed)}catch{}}}Uh("afterSanitizeAttributes",De,null)},_xe=function bn(De){let Ct,Xt=vK(De);for(Uh("beforeSanitizeShadowDOM",De,null);Ct=Xt.nextNode();)Uh("uponSanitizeShadowNode",Ct,null),!DK(Ct)&&(Ct.content instanceof rt&&bn(Ct.content),OK(Ct));Uh("afterSanitizeShadowDOM",De,null)};return ke.sanitize=function(bn){let De=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ct,Xt,bo,ks;if(MH=!bn,MH&&(bn=""),typeof bn!="string"&&!K2(bn)){if(typeof bn.toString!="function")throw S("toString is not a function");if(bn=bn.toString(),typeof bn!="string")throw S("dirty is not a string, aborting")}if(!ke.isSupported)return bn;if(h0||BH(De),ke.removed=[],typeof bn=="string"&&(KS=!1),KS){if(bn.nodeName){let xm=Vs(bn.nodeName);if(!ln[xm]||Lr[xm])throw S("root node is forbidden and cannot be sanitized in-place")}}else if(bn instanceof Bn)Ct=wK(""),Xt=Ct.ownerDocument.importNode(bn,!0),Xt.nodeType===1&&Xt.nodeName==="BODY"||Xt.nodeName==="HTML"?Ct=Xt:Ct.appendChild(Xt);else{if(!ps&&!jr&&!pc&&bn.indexOf("<")===-1)return Mo&&UC?Mo.createHTML(bn):bn;if(Ct=wK(bn),!Ct)return ps?null:UC?Be:""}Ct&&Am&&_0(Ct.firstChild);let Uu=vK(KS?bn:Ct);for(;bo=Uu.nextNode();)DK(bo)||(bo.content instanceof rt&&_xe(bo.content),OK(bo));if(KS)return bn;if(ps){if(W_)for(ks=$e.call(Ct.ownerDocument);Ct.firstChild;)ks.appendChild(Ct.firstChild);else ks=Ct;return(gn.shadowroot||gn.shadowrootmod)&&(ks=zt.call(dt,ks,!0)),ks}let gr=pc?Ct.outerHTML:Ct.innerHTML;return pc&&ln["!doctype"]&&Ct.ownerDocument&&Ct.ownerDocument.doctype&&Ct.ownerDocument.doctype.name&&E(se,Ct.ownerDocument.doctype.name)&&(gr=" +`+gr),jr&&(gr=x(gr,Ji," "),gr=x(gr,go," "),gr=x(gr,$r," ")),Mo&&UC?Mo.createHTML(gr):gr},ke.setConfig=function(bn){BH(bn),h0=!0},ke.clearConfig=function(){HC=null,h0=!1},ke.isValidAttribute=function(bn,De,Ct){HC||BH({});let Xt=Vs(bn),bo=Vs(De);return IK(Xt,bo,Ct)},ke.addHook=function(bn,De){typeof De=="function"&&(an[bn]=an[bn]||[],p(an[bn],De))},ke.removeHook=function(bn){if(an[bn])return d(an[bn])},ke.removeHooks=function(bn){an[bn]&&(an[bn]=[])},ke.removeAllHooks=function(){an={}},ke}var Ve=Ie();return Ve})});var pre=Zc((Uhn,hre)=>{"use strict";hre.exports=yHe;var tM=1e20;function yHe(e,t){t||(t={});var n=t.cutoff==null?.25:t.cutoff,i=t.radius==null?8:t.radius,o=t.channel||0,r,s,a,c,u,f,d,p,g,h,A;if(ArrayBuffer.isView(e)||Array.isArray(e)){if(!t.width||!t.height)throw Error("For raw data width and height should be provided by options");r=t.width,s=t.height,c=e,t.stride?f=t.stride:f=Math.floor(e.length/r/s)}else window.HTMLCanvasElement&&e instanceof window.HTMLCanvasElement?(p=e,d=p.getContext("2d"),r=p.width,s=p.height,g=d.getImageData(0,0,r,s),c=g.data,f=4):window.CanvasRenderingContext2D&&e instanceof window.CanvasRenderingContext2D?(p=e.canvas,d=e,r=p.width,s=p.height,g=d.getImageData(0,0,r,s),c=g.data,f=4):window.ImageData&&e instanceof window.ImageData&&(g=e,r=e.width,s=e.height,c=g.data,f=4);if(a=Math.max(r,s),window.Uint8ClampedArray&&c instanceof window.Uint8ClampedArray||window.Uint8Array&&c instanceof window.Uint8Array)for(u=c,c=Array(r*s),h=0,A=Math.floor(u.length/f);h{function IHe(){var e=0,t=1,n=2,i=3,o=4,r=5,s=6,a=7,c=8,u=9,f=10,d=11,p=12,g=13,h=14,A=15,x=16,C=17,T=0,E=1,S=2,v=3,D=4;function O(_,b){return 55296<=_.charCodeAt(b)&&_.charCodeAt(b)<=56319&&56320<=_.charCodeAt(b+1)&&_.charCodeAt(b+1)<=57343}function M(_,b){b===void 0&&(b=0);var w=_.charCodeAt(b);if(55296<=w&&w<=56319&&b<_.length-1){var I=w,R=_.charCodeAt(b+1);return 56320<=R&&R<=57343?(I-55296)*1024+(R-56320)+65536:I}if(56320<=w&&w<=57343&&b>=1){var I=_.charCodeAt(b-1),R=w;return 55296<=I&&I<=56319?(I-55296)*1024+(R-56320)+65536:R}return w}function L(_,b,w){var I=[_].concat(b).concat([w]),R=I[I.length-2],F=w,k=I.lastIndexOf(h);if(k>1&&I.slice(1,k).every(function(U){return U==i})&&[i,g,C].indexOf(_)==-1)return S;var V=I.lastIndexOf(o);if(V>0&&I.slice(1,V).every(function(U){return U==o})&&[p,o].indexOf(R)==-1)return I.filter(function(U){return U==o}).length%2==1?v:D;if(R==e&&F==t)return T;if(R==n||R==e||R==t)return F==h&&b.every(function(U){return U==i})?S:E;if(F==n||F==e||F==t)return E;if(R==s&&(F==s||F==a||F==u||F==f))return T;if((R==u||R==a)&&(F==a||F==c))return T;if((R==f||R==c)&&F==c)return T;if(F==i||F==A)return T;if(F==r)return T;if(R==p)return T;var G=I.indexOf(i)!=-1?I.lastIndexOf(i)-1:I.length-2;return[g,C].indexOf(I[G])!=-1&&I.slice(G+1,-1).every(function(U){return U==i})&&F==h||R==A&&[x,C].indexOf(F)!=-1?T:b.indexOf(o)!=-1?S:R==o&&F==o?T:E}this.nextBreak=function(_,b){if(b===void 0&&(b=0),b<0)return 0;if(b>=_.length-1)return _.length;for(var w=N(M(_,b)),I=[],R=b+1;R<_.length;R++)if(!O(_,R-1)){var F=N(M(_,R));if(L(w,I,F))return R;I.push(F)}return _.length},this.splitGraphemes=function(_){for(var b=[],w=0,I;(I=this.nextBreak(_,w))<_.length;)b.push(_.slice(w,I)),w=I;return w<_.length&&b.push(_.slice(w)),b},this.iterateGraphemes=function(_){var b=0,w={next:function(){var I,R;return(R=this.nextBreak(_,b))<_.length?(I=_.slice(b,R),b=R,{value:I,done:!1}):b<_.length?(I=_.slice(b),b=_.length,{value:I,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(w[Symbol.iterator]=function(){return w}),w},this.countGraphemes=function(_){for(var b=0,w=0,I;(I=this.nextBreak(_,w))<_.length;)w=I,b++;return w<_.length&&b++,b};function N(_){return 1536<=_&&_<=1541||_==1757||_==1807||_==2274||_==3406||_==69821||70082<=_&&_<=70083||_==72250||72326<=_&&_<=72329||_==73030?p:_==13?e:_==10?t:0<=_&&_<=9||11<=_&&_<=12||14<=_&&_<=31||127<=_&&_<=159||_==173||_==1564||_==6158||_==8203||8206<=_&&_<=8207||_==8232||_==8233||8234<=_&&_<=8238||8288<=_&&_<=8292||_==8293||8294<=_&&_<=8303||55296<=_&&_<=57343||_==65279||65520<=_&&_<=65528||65529<=_&&_<=65531||113824<=_&&_<=113827||119155<=_&&_<=119162||_==917504||_==917505||917506<=_&&_<=917535||917632<=_&&_<=917759||918e3<=_&&_<=921599?n:768<=_&&_<=879||1155<=_&&_<=1159||1160<=_&&_<=1161||1425<=_&&_<=1469||_==1471||1473<=_&&_<=1474||1476<=_&&_<=1477||_==1479||1552<=_&&_<=1562||1611<=_&&_<=1631||_==1648||1750<=_&&_<=1756||1759<=_&&_<=1764||1767<=_&&_<=1768||1770<=_&&_<=1773||_==1809||1840<=_&&_<=1866||1958<=_&&_<=1968||2027<=_&&_<=2035||2070<=_&&_<=2073||2075<=_&&_<=2083||2085<=_&&_<=2087||2089<=_&&_<=2093||2137<=_&&_<=2139||2260<=_&&_<=2273||2275<=_&&_<=2306||_==2362||_==2364||2369<=_&&_<=2376||_==2381||2385<=_&&_<=2391||2402<=_&&_<=2403||_==2433||_==2492||_==2494||2497<=_&&_<=2500||_==2509||_==2519||2530<=_&&_<=2531||2561<=_&&_<=2562||_==2620||2625<=_&&_<=2626||2631<=_&&_<=2632||2635<=_&&_<=2637||_==2641||2672<=_&&_<=2673||_==2677||2689<=_&&_<=2690||_==2748||2753<=_&&_<=2757||2759<=_&&_<=2760||_==2765||2786<=_&&_<=2787||2810<=_&&_<=2815||_==2817||_==2876||_==2878||_==2879||2881<=_&&_<=2884||_==2893||_==2902||_==2903||2914<=_&&_<=2915||_==2946||_==3006||_==3008||_==3021||_==3031||_==3072||3134<=_&&_<=3136||3142<=_&&_<=3144||3146<=_&&_<=3149||3157<=_&&_<=3158||3170<=_&&_<=3171||_==3201||_==3260||_==3263||_==3266||_==3270||3276<=_&&_<=3277||3285<=_&&_<=3286||3298<=_&&_<=3299||3328<=_&&_<=3329||3387<=_&&_<=3388||_==3390||3393<=_&&_<=3396||_==3405||_==3415||3426<=_&&_<=3427||_==3530||_==3535||3538<=_&&_<=3540||_==3542||_==3551||_==3633||3636<=_&&_<=3642||3655<=_&&_<=3662||_==3761||3764<=_&&_<=3769||3771<=_&&_<=3772||3784<=_&&_<=3789||3864<=_&&_<=3865||_==3893||_==3895||_==3897||3953<=_&&_<=3966||3968<=_&&_<=3972||3974<=_&&_<=3975||3981<=_&&_<=3991||3993<=_&&_<=4028||_==4038||4141<=_&&_<=4144||4146<=_&&_<=4151||4153<=_&&_<=4154||4157<=_&&_<=4158||4184<=_&&_<=4185||4190<=_&&_<=4192||4209<=_&&_<=4212||_==4226||4229<=_&&_<=4230||_==4237||_==4253||4957<=_&&_<=4959||5906<=_&&_<=5908||5938<=_&&_<=5940||5970<=_&&_<=5971||6002<=_&&_<=6003||6068<=_&&_<=6069||6071<=_&&_<=6077||_==6086||6089<=_&&_<=6099||_==6109||6155<=_&&_<=6157||6277<=_&&_<=6278||_==6313||6432<=_&&_<=6434||6439<=_&&_<=6440||_==6450||6457<=_&&_<=6459||6679<=_&&_<=6680||_==6683||_==6742||6744<=_&&_<=6750||_==6752||_==6754||6757<=_&&_<=6764||6771<=_&&_<=6780||_==6783||6832<=_&&_<=6845||_==6846||6912<=_&&_<=6915||_==6964||6966<=_&&_<=6970||_==6972||_==6978||7019<=_&&_<=7027||7040<=_&&_<=7041||7074<=_&&_<=7077||7080<=_&&_<=7081||7083<=_&&_<=7085||_==7142||7144<=_&&_<=7145||_==7149||7151<=_&&_<=7153||7212<=_&&_<=7219||7222<=_&&_<=7223||7376<=_&&_<=7378||7380<=_&&_<=7392||7394<=_&&_<=7400||_==7405||_==7412||7416<=_&&_<=7417||7616<=_&&_<=7673||7675<=_&&_<=7679||_==8204||8400<=_&&_<=8412||8413<=_&&_<=8416||_==8417||8418<=_&&_<=8420||8421<=_&&_<=8432||11503<=_&&_<=11505||_==11647||11744<=_&&_<=11775||12330<=_&&_<=12333||12334<=_&&_<=12335||12441<=_&&_<=12442||_==42607||42608<=_&&_<=42610||42612<=_&&_<=42621||42654<=_&&_<=42655||42736<=_&&_<=42737||_==43010||_==43014||_==43019||43045<=_&&_<=43046||43204<=_&&_<=43205||43232<=_&&_<=43249||43302<=_&&_<=43309||43335<=_&&_<=43345||43392<=_&&_<=43394||_==43443||43446<=_&&_<=43449||_==43452||_==43493||43561<=_&&_<=43566||43569<=_&&_<=43570||43573<=_&&_<=43574||_==43587||_==43596||_==43644||_==43696||43698<=_&&_<=43700||43703<=_&&_<=43704||43710<=_&&_<=43711||_==43713||43756<=_&&_<=43757||_==43766||_==44005||_==44008||_==44013||_==64286||65024<=_&&_<=65039||65056<=_&&_<=65071||65438<=_&&_<=65439||_==66045||_==66272||66422<=_&&_<=66426||68097<=_&&_<=68099||68101<=_&&_<=68102||68108<=_&&_<=68111||68152<=_&&_<=68154||_==68159||68325<=_&&_<=68326||_==69633||69688<=_&&_<=69702||69759<=_&&_<=69761||69811<=_&&_<=69814||69817<=_&&_<=69818||69888<=_&&_<=69890||69927<=_&&_<=69931||69933<=_&&_<=69940||_==70003||70016<=_&&_<=70017||70070<=_&&_<=70078||70090<=_&&_<=70092||70191<=_&&_<=70193||_==70196||70198<=_&&_<=70199||_==70206||_==70367||70371<=_&&_<=70378||70400<=_&&_<=70401||_==70460||_==70462||_==70464||_==70487||70502<=_&&_<=70508||70512<=_&&_<=70516||70712<=_&&_<=70719||70722<=_&&_<=70724||_==70726||_==70832||70835<=_&&_<=70840||_==70842||_==70845||70847<=_&&_<=70848||70850<=_&&_<=70851||_==71087||71090<=_&&_<=71093||71100<=_&&_<=71101||71103<=_&&_<=71104||71132<=_&&_<=71133||71219<=_&&_<=71226||_==71229||71231<=_&&_<=71232||_==71339||_==71341||71344<=_&&_<=71349||_==71351||71453<=_&&_<=71455||71458<=_&&_<=71461||71463<=_&&_<=71467||72193<=_&&_<=72198||72201<=_&&_<=72202||72243<=_&&_<=72248||72251<=_&&_<=72254||_==72263||72273<=_&&_<=72278||72281<=_&&_<=72283||72330<=_&&_<=72342||72344<=_&&_<=72345||72752<=_&&_<=72758||72760<=_&&_<=72765||_==72767||72850<=_&&_<=72871||72874<=_&&_<=72880||72882<=_&&_<=72883||72885<=_&&_<=72886||73009<=_&&_<=73014||_==73018||73020<=_&&_<=73021||73023<=_&&_<=73029||_==73031||92912<=_&&_<=92916||92976<=_&&_<=92982||94095<=_&&_<=94098||113821<=_&&_<=113822||_==119141||119143<=_&&_<=119145||119150<=_&&_<=119154||119163<=_&&_<=119170||119173<=_&&_<=119179||119210<=_&&_<=119213||119362<=_&&_<=119364||121344<=_&&_<=121398||121403<=_&&_<=121452||_==121461||_==121476||121499<=_&&_<=121503||121505<=_&&_<=121519||122880<=_&&_<=122886||122888<=_&&_<=122904||122907<=_&&_<=122913||122915<=_&&_<=122916||122918<=_&&_<=122922||125136<=_&&_<=125142||125252<=_&&_<=125258||917536<=_&&_<=917631||917760<=_&&_<=917999?i:127462<=_&&_<=127487?o:_==2307||_==2363||2366<=_&&_<=2368||2377<=_&&_<=2380||2382<=_&&_<=2383||2434<=_&&_<=2435||2495<=_&&_<=2496||2503<=_&&_<=2504||2507<=_&&_<=2508||_==2563||2622<=_&&_<=2624||_==2691||2750<=_&&_<=2752||_==2761||2763<=_&&_<=2764||2818<=_&&_<=2819||_==2880||2887<=_&&_<=2888||2891<=_&&_<=2892||_==3007||3009<=_&&_<=3010||3014<=_&&_<=3016||3018<=_&&_<=3020||3073<=_&&_<=3075||3137<=_&&_<=3140||3202<=_&&_<=3203||_==3262||3264<=_&&_<=3265||3267<=_&&_<=3268||3271<=_&&_<=3272||3274<=_&&_<=3275||3330<=_&&_<=3331||3391<=_&&_<=3392||3398<=_&&_<=3400||3402<=_&&_<=3404||3458<=_&&_<=3459||3536<=_&&_<=3537||3544<=_&&_<=3550||3570<=_&&_<=3571||_==3635||_==3763||3902<=_&&_<=3903||_==3967||_==4145||4155<=_&&_<=4156||4182<=_&&_<=4183||_==4228||_==6070||6078<=_&&_<=6085||6087<=_&&_<=6088||6435<=_&&_<=6438||6441<=_&&_<=6443||6448<=_&&_<=6449||6451<=_&&_<=6456||6681<=_&&_<=6682||_==6741||_==6743||6765<=_&&_<=6770||_==6916||_==6965||_==6971||6973<=_&&_<=6977||6979<=_&&_<=6980||_==7042||_==7073||7078<=_&&_<=7079||_==7082||_==7143||7146<=_&&_<=7148||_==7150||7154<=_&&_<=7155||7204<=_&&_<=7211||7220<=_&&_<=7221||_==7393||7410<=_&&_<=7411||_==7415||43043<=_&&_<=43044||_==43047||43136<=_&&_<=43137||43188<=_&&_<=43203||43346<=_&&_<=43347||_==43395||43444<=_&&_<=43445||43450<=_&&_<=43451||43453<=_&&_<=43456||43567<=_&&_<=43568||43571<=_&&_<=43572||_==43597||_==43755||43758<=_&&_<=43759||_==43765||44003<=_&&_<=44004||44006<=_&&_<=44007||44009<=_&&_<=44010||_==44012||_==69632||_==69634||_==69762||69808<=_&&_<=69810||69815<=_&&_<=69816||_==69932||_==70018||70067<=_&&_<=70069||70079<=_&&_<=70080||70188<=_&&_<=70190||70194<=_&&_<=70195||_==70197||70368<=_&&_<=70370||70402<=_&&_<=70403||_==70463||70465<=_&&_<=70468||70471<=_&&_<=70472||70475<=_&&_<=70477||70498<=_&&_<=70499||70709<=_&&_<=70711||70720<=_&&_<=70721||_==70725||70833<=_&&_<=70834||_==70841||70843<=_&&_<=70844||_==70846||_==70849||71088<=_&&_<=71089||71096<=_&&_<=71099||_==71102||71216<=_&&_<=71218||71227<=_&&_<=71228||_==71230||_==71340||71342<=_&&_<=71343||_==71350||71456<=_&&_<=71457||_==71462||72199<=_&&_<=72200||_==72249||72279<=_&&_<=72280||_==72343||_==72751||_==72766||_==72873||_==72881||_==72884||94033<=_&&_<=94078||_==119142||_==119149?r:4352<=_&&_<=4447||43360<=_&&_<=43388?s:4448<=_&&_<=4519||55216<=_&&_<=55238?a:4520<=_&&_<=4607||55243<=_&&_<=55291?c:_==44032||_==44060||_==44088||_==44116||_==44144||_==44172||_==44200||_==44228||_==44256||_==44284||_==44312||_==44340||_==44368||_==44396||_==44424||_==44452||_==44480||_==44508||_==44536||_==44564||_==44592||_==44620||_==44648||_==44676||_==44704||_==44732||_==44760||_==44788||_==44816||_==44844||_==44872||_==44900||_==44928||_==44956||_==44984||_==45012||_==45040||_==45068||_==45096||_==45124||_==45152||_==45180||_==45208||_==45236||_==45264||_==45292||_==45320||_==45348||_==45376||_==45404||_==45432||_==45460||_==45488||_==45516||_==45544||_==45572||_==45600||_==45628||_==45656||_==45684||_==45712||_==45740||_==45768||_==45796||_==45824||_==45852||_==45880||_==45908||_==45936||_==45964||_==45992||_==46020||_==46048||_==46076||_==46104||_==46132||_==46160||_==46188||_==46216||_==46244||_==46272||_==46300||_==46328||_==46356||_==46384||_==46412||_==46440||_==46468||_==46496||_==46524||_==46552||_==46580||_==46608||_==46636||_==46664||_==46692||_==46720||_==46748||_==46776||_==46804||_==46832||_==46860||_==46888||_==46916||_==46944||_==46972||_==47e3||_==47028||_==47056||_==47084||_==47112||_==47140||_==47168||_==47196||_==47224||_==47252||_==47280||_==47308||_==47336||_==47364||_==47392||_==47420||_==47448||_==47476||_==47504||_==47532||_==47560||_==47588||_==47616||_==47644||_==47672||_==47700||_==47728||_==47756||_==47784||_==47812||_==47840||_==47868||_==47896||_==47924||_==47952||_==47980||_==48008||_==48036||_==48064||_==48092||_==48120||_==48148||_==48176||_==48204||_==48232||_==48260||_==48288||_==48316||_==48344||_==48372||_==48400||_==48428||_==48456||_==48484||_==48512||_==48540||_==48568||_==48596||_==48624||_==48652||_==48680||_==48708||_==48736||_==48764||_==48792||_==48820||_==48848||_==48876||_==48904||_==48932||_==48960||_==48988||_==49016||_==49044||_==49072||_==49100||_==49128||_==49156||_==49184||_==49212||_==49240||_==49268||_==49296||_==49324||_==49352||_==49380||_==49408||_==49436||_==49464||_==49492||_==49520||_==49548||_==49576||_==49604||_==49632||_==49660||_==49688||_==49716||_==49744||_==49772||_==49800||_==49828||_==49856||_==49884||_==49912||_==49940||_==49968||_==49996||_==50024||_==50052||_==50080||_==50108||_==50136||_==50164||_==50192||_==50220||_==50248||_==50276||_==50304||_==50332||_==50360||_==50388||_==50416||_==50444||_==50472||_==50500||_==50528||_==50556||_==50584||_==50612||_==50640||_==50668||_==50696||_==50724||_==50752||_==50780||_==50808||_==50836||_==50864||_==50892||_==50920||_==50948||_==50976||_==51004||_==51032||_==51060||_==51088||_==51116||_==51144||_==51172||_==51200||_==51228||_==51256||_==51284||_==51312||_==51340||_==51368||_==51396||_==51424||_==51452||_==51480||_==51508||_==51536||_==51564||_==51592||_==51620||_==51648||_==51676||_==51704||_==51732||_==51760||_==51788||_==51816||_==51844||_==51872||_==51900||_==51928||_==51956||_==51984||_==52012||_==52040||_==52068||_==52096||_==52124||_==52152||_==52180||_==52208||_==52236||_==52264||_==52292||_==52320||_==52348||_==52376||_==52404||_==52432||_==52460||_==52488||_==52516||_==52544||_==52572||_==52600||_==52628||_==52656||_==52684||_==52712||_==52740||_==52768||_==52796||_==52824||_==52852||_==52880||_==52908||_==52936||_==52964||_==52992||_==53020||_==53048||_==53076||_==53104||_==53132||_==53160||_==53188||_==53216||_==53244||_==53272||_==53300||_==53328||_==53356||_==53384||_==53412||_==53440||_==53468||_==53496||_==53524||_==53552||_==53580||_==53608||_==53636||_==53664||_==53692||_==53720||_==53748||_==53776||_==53804||_==53832||_==53860||_==53888||_==53916||_==53944||_==53972||_==54e3||_==54028||_==54056||_==54084||_==54112||_==54140||_==54168||_==54196||_==54224||_==54252||_==54280||_==54308||_==54336||_==54364||_==54392||_==54420||_==54448||_==54476||_==54504||_==54532||_==54560||_==54588||_==54616||_==54644||_==54672||_==54700||_==54728||_==54756||_==54784||_==54812||_==54840||_==54868||_==54896||_==54924||_==54952||_==54980||_==55008||_==55036||_==55064||_==55092||_==55120||_==55148||_==55176?u:44033<=_&&_<=44059||44061<=_&&_<=44087||44089<=_&&_<=44115||44117<=_&&_<=44143||44145<=_&&_<=44171||44173<=_&&_<=44199||44201<=_&&_<=44227||44229<=_&&_<=44255||44257<=_&&_<=44283||44285<=_&&_<=44311||44313<=_&&_<=44339||44341<=_&&_<=44367||44369<=_&&_<=44395||44397<=_&&_<=44423||44425<=_&&_<=44451||44453<=_&&_<=44479||44481<=_&&_<=44507||44509<=_&&_<=44535||44537<=_&&_<=44563||44565<=_&&_<=44591||44593<=_&&_<=44619||44621<=_&&_<=44647||44649<=_&&_<=44675||44677<=_&&_<=44703||44705<=_&&_<=44731||44733<=_&&_<=44759||44761<=_&&_<=44787||44789<=_&&_<=44815||44817<=_&&_<=44843||44845<=_&&_<=44871||44873<=_&&_<=44899||44901<=_&&_<=44927||44929<=_&&_<=44955||44957<=_&&_<=44983||44985<=_&&_<=45011||45013<=_&&_<=45039||45041<=_&&_<=45067||45069<=_&&_<=45095||45097<=_&&_<=45123||45125<=_&&_<=45151||45153<=_&&_<=45179||45181<=_&&_<=45207||45209<=_&&_<=45235||45237<=_&&_<=45263||45265<=_&&_<=45291||45293<=_&&_<=45319||45321<=_&&_<=45347||45349<=_&&_<=45375||45377<=_&&_<=45403||45405<=_&&_<=45431||45433<=_&&_<=45459||45461<=_&&_<=45487||45489<=_&&_<=45515||45517<=_&&_<=45543||45545<=_&&_<=45571||45573<=_&&_<=45599||45601<=_&&_<=45627||45629<=_&&_<=45655||45657<=_&&_<=45683||45685<=_&&_<=45711||45713<=_&&_<=45739||45741<=_&&_<=45767||45769<=_&&_<=45795||45797<=_&&_<=45823||45825<=_&&_<=45851||45853<=_&&_<=45879||45881<=_&&_<=45907||45909<=_&&_<=45935||45937<=_&&_<=45963||45965<=_&&_<=45991||45993<=_&&_<=46019||46021<=_&&_<=46047||46049<=_&&_<=46075||46077<=_&&_<=46103||46105<=_&&_<=46131||46133<=_&&_<=46159||46161<=_&&_<=46187||46189<=_&&_<=46215||46217<=_&&_<=46243||46245<=_&&_<=46271||46273<=_&&_<=46299||46301<=_&&_<=46327||46329<=_&&_<=46355||46357<=_&&_<=46383||46385<=_&&_<=46411||46413<=_&&_<=46439||46441<=_&&_<=46467||46469<=_&&_<=46495||46497<=_&&_<=46523||46525<=_&&_<=46551||46553<=_&&_<=46579||46581<=_&&_<=46607||46609<=_&&_<=46635||46637<=_&&_<=46663||46665<=_&&_<=46691||46693<=_&&_<=46719||46721<=_&&_<=46747||46749<=_&&_<=46775||46777<=_&&_<=46803||46805<=_&&_<=46831||46833<=_&&_<=46859||46861<=_&&_<=46887||46889<=_&&_<=46915||46917<=_&&_<=46943||46945<=_&&_<=46971||46973<=_&&_<=46999||47001<=_&&_<=47027||47029<=_&&_<=47055||47057<=_&&_<=47083||47085<=_&&_<=47111||47113<=_&&_<=47139||47141<=_&&_<=47167||47169<=_&&_<=47195||47197<=_&&_<=47223||47225<=_&&_<=47251||47253<=_&&_<=47279||47281<=_&&_<=47307||47309<=_&&_<=47335||47337<=_&&_<=47363||47365<=_&&_<=47391||47393<=_&&_<=47419||47421<=_&&_<=47447||47449<=_&&_<=47475||47477<=_&&_<=47503||47505<=_&&_<=47531||47533<=_&&_<=47559||47561<=_&&_<=47587||47589<=_&&_<=47615||47617<=_&&_<=47643||47645<=_&&_<=47671||47673<=_&&_<=47699||47701<=_&&_<=47727||47729<=_&&_<=47755||47757<=_&&_<=47783||47785<=_&&_<=47811||47813<=_&&_<=47839||47841<=_&&_<=47867||47869<=_&&_<=47895||47897<=_&&_<=47923||47925<=_&&_<=47951||47953<=_&&_<=47979||47981<=_&&_<=48007||48009<=_&&_<=48035||48037<=_&&_<=48063||48065<=_&&_<=48091||48093<=_&&_<=48119||48121<=_&&_<=48147||48149<=_&&_<=48175||48177<=_&&_<=48203||48205<=_&&_<=48231||48233<=_&&_<=48259||48261<=_&&_<=48287||48289<=_&&_<=48315||48317<=_&&_<=48343||48345<=_&&_<=48371||48373<=_&&_<=48399||48401<=_&&_<=48427||48429<=_&&_<=48455||48457<=_&&_<=48483||48485<=_&&_<=48511||48513<=_&&_<=48539||48541<=_&&_<=48567||48569<=_&&_<=48595||48597<=_&&_<=48623||48625<=_&&_<=48651||48653<=_&&_<=48679||48681<=_&&_<=48707||48709<=_&&_<=48735||48737<=_&&_<=48763||48765<=_&&_<=48791||48793<=_&&_<=48819||48821<=_&&_<=48847||48849<=_&&_<=48875||48877<=_&&_<=48903||48905<=_&&_<=48931||48933<=_&&_<=48959||48961<=_&&_<=48987||48989<=_&&_<=49015||49017<=_&&_<=49043||49045<=_&&_<=49071||49073<=_&&_<=49099||49101<=_&&_<=49127||49129<=_&&_<=49155||49157<=_&&_<=49183||49185<=_&&_<=49211||49213<=_&&_<=49239||49241<=_&&_<=49267||49269<=_&&_<=49295||49297<=_&&_<=49323||49325<=_&&_<=49351||49353<=_&&_<=49379||49381<=_&&_<=49407||49409<=_&&_<=49435||49437<=_&&_<=49463||49465<=_&&_<=49491||49493<=_&&_<=49519||49521<=_&&_<=49547||49549<=_&&_<=49575||49577<=_&&_<=49603||49605<=_&&_<=49631||49633<=_&&_<=49659||49661<=_&&_<=49687||49689<=_&&_<=49715||49717<=_&&_<=49743||49745<=_&&_<=49771||49773<=_&&_<=49799||49801<=_&&_<=49827||49829<=_&&_<=49855||49857<=_&&_<=49883||49885<=_&&_<=49911||49913<=_&&_<=49939||49941<=_&&_<=49967||49969<=_&&_<=49995||49997<=_&&_<=50023||50025<=_&&_<=50051||50053<=_&&_<=50079||50081<=_&&_<=50107||50109<=_&&_<=50135||50137<=_&&_<=50163||50165<=_&&_<=50191||50193<=_&&_<=50219||50221<=_&&_<=50247||50249<=_&&_<=50275||50277<=_&&_<=50303||50305<=_&&_<=50331||50333<=_&&_<=50359||50361<=_&&_<=50387||50389<=_&&_<=50415||50417<=_&&_<=50443||50445<=_&&_<=50471||50473<=_&&_<=50499||50501<=_&&_<=50527||50529<=_&&_<=50555||50557<=_&&_<=50583||50585<=_&&_<=50611||50613<=_&&_<=50639||50641<=_&&_<=50667||50669<=_&&_<=50695||50697<=_&&_<=50723||50725<=_&&_<=50751||50753<=_&&_<=50779||50781<=_&&_<=50807||50809<=_&&_<=50835||50837<=_&&_<=50863||50865<=_&&_<=50891||50893<=_&&_<=50919||50921<=_&&_<=50947||50949<=_&&_<=50975||50977<=_&&_<=51003||51005<=_&&_<=51031||51033<=_&&_<=51059||51061<=_&&_<=51087||51089<=_&&_<=51115||51117<=_&&_<=51143||51145<=_&&_<=51171||51173<=_&&_<=51199||51201<=_&&_<=51227||51229<=_&&_<=51255||51257<=_&&_<=51283||51285<=_&&_<=51311||51313<=_&&_<=51339||51341<=_&&_<=51367||51369<=_&&_<=51395||51397<=_&&_<=51423||51425<=_&&_<=51451||51453<=_&&_<=51479||51481<=_&&_<=51507||51509<=_&&_<=51535||51537<=_&&_<=51563||51565<=_&&_<=51591||51593<=_&&_<=51619||51621<=_&&_<=51647||51649<=_&&_<=51675||51677<=_&&_<=51703||51705<=_&&_<=51731||51733<=_&&_<=51759||51761<=_&&_<=51787||51789<=_&&_<=51815||51817<=_&&_<=51843||51845<=_&&_<=51871||51873<=_&&_<=51899||51901<=_&&_<=51927||51929<=_&&_<=51955||51957<=_&&_<=51983||51985<=_&&_<=52011||52013<=_&&_<=52039||52041<=_&&_<=52067||52069<=_&&_<=52095||52097<=_&&_<=52123||52125<=_&&_<=52151||52153<=_&&_<=52179||52181<=_&&_<=52207||52209<=_&&_<=52235||52237<=_&&_<=52263||52265<=_&&_<=52291||52293<=_&&_<=52319||52321<=_&&_<=52347||52349<=_&&_<=52375||52377<=_&&_<=52403||52405<=_&&_<=52431||52433<=_&&_<=52459||52461<=_&&_<=52487||52489<=_&&_<=52515||52517<=_&&_<=52543||52545<=_&&_<=52571||52573<=_&&_<=52599||52601<=_&&_<=52627||52629<=_&&_<=52655||52657<=_&&_<=52683||52685<=_&&_<=52711||52713<=_&&_<=52739||52741<=_&&_<=52767||52769<=_&&_<=52795||52797<=_&&_<=52823||52825<=_&&_<=52851||52853<=_&&_<=52879||52881<=_&&_<=52907||52909<=_&&_<=52935||52937<=_&&_<=52963||52965<=_&&_<=52991||52993<=_&&_<=53019||53021<=_&&_<=53047||53049<=_&&_<=53075||53077<=_&&_<=53103||53105<=_&&_<=53131||53133<=_&&_<=53159||53161<=_&&_<=53187||53189<=_&&_<=53215||53217<=_&&_<=53243||53245<=_&&_<=53271||53273<=_&&_<=53299||53301<=_&&_<=53327||53329<=_&&_<=53355||53357<=_&&_<=53383||53385<=_&&_<=53411||53413<=_&&_<=53439||53441<=_&&_<=53467||53469<=_&&_<=53495||53497<=_&&_<=53523||53525<=_&&_<=53551||53553<=_&&_<=53579||53581<=_&&_<=53607||53609<=_&&_<=53635||53637<=_&&_<=53663||53665<=_&&_<=53691||53693<=_&&_<=53719||53721<=_&&_<=53747||53749<=_&&_<=53775||53777<=_&&_<=53803||53805<=_&&_<=53831||53833<=_&&_<=53859||53861<=_&&_<=53887||53889<=_&&_<=53915||53917<=_&&_<=53943||53945<=_&&_<=53971||53973<=_&&_<=53999||54001<=_&&_<=54027||54029<=_&&_<=54055||54057<=_&&_<=54083||54085<=_&&_<=54111||54113<=_&&_<=54139||54141<=_&&_<=54167||54169<=_&&_<=54195||54197<=_&&_<=54223||54225<=_&&_<=54251||54253<=_&&_<=54279||54281<=_&&_<=54307||54309<=_&&_<=54335||54337<=_&&_<=54363||54365<=_&&_<=54391||54393<=_&&_<=54419||54421<=_&&_<=54447||54449<=_&&_<=54475||54477<=_&&_<=54503||54505<=_&&_<=54531||54533<=_&&_<=54559||54561<=_&&_<=54587||54589<=_&&_<=54615||54617<=_&&_<=54643||54645<=_&&_<=54671||54673<=_&&_<=54699||54701<=_&&_<=54727||54729<=_&&_<=54755||54757<=_&&_<=54783||54785<=_&&_<=54811||54813<=_&&_<=54839||54841<=_&&_<=54867||54869<=_&&_<=54895||54897<=_&&_<=54923||54925<=_&&_<=54951||54953<=_&&_<=54979||54981<=_&&_<=55007||55009<=_&&_<=55035||55037<=_&&_<=55063||55065<=_&&_<=55091||55093<=_&&_<=55119||55121<=_&&_<=55147||55149<=_&&_<=55175||55177<=_&&_<=55203?f:_==9757||_==9977||9994<=_&&_<=9997||_==127877||127938<=_&&_<=127940||_==127943||127946<=_&&_<=127948||128066<=_&&_<=128067||128070<=_&&_<=128080||_==128110||128112<=_&&_<=128120||_==128124||128129<=_&&_<=128131||128133<=_&&_<=128135||_==128170||128372<=_&&_<=128373||_==128378||_==128400||128405<=_&&_<=128406||128581<=_&&_<=128583||128587<=_&&_<=128591||_==128675||128692<=_&&_<=128694||_==128704||_==128716||129304<=_&&_<=129308||129310<=_&&_<=129311||_==129318||129328<=_&&_<=129337||129341<=_&&_<=129342||129489<=_&&_<=129501?g:127995<=_&&_<=127999?h:_==8205?A:_==9792||_==9794||9877<=_&&_<=9878||_==9992||_==10084||_==127752||_==127806||_==127859||_==127891||_==127908||_==127912||_==127979||_==127981||_==128139||128187<=_&&_<=128188||_==128295||_==128300||_==128488||_==128640||_==128658?x:128102<=_&&_<=128105?C:d}return this}typeof tV<"u"&&tV.exports&&(tV.exports=IHe)});var nse=Zc((G0n,B6)=>{"use strict";B6.exports=cV;B6.exports.default=cV;function cV(e,t,n){n=n||2;var i=t&&t.length,o=i?t[0]*n:e.length,r=$re(e,0,o,n,!0),s=[];if(!r||r.next===r.prev)return s;var a,c,u,f,d,p,g;if(i&&(r=R8e(e,t,r,n)),e.length>80*n){a=u=e[0],c=f=e[1];for(var h=n;hu&&(u=d),p>f&&(f=p);g=Math.max(u-a,f-c),g=g!==0?32767/g:0}return SM(r,s,n,a,c,g,0),s}function $re(e,t,n,i,o){var r,s;if(o===R6(e,t,n,i)>0)for(r=t;r=t;r-=i)s=Qre(r,e[r],e[r+1],s);return s&&lV(s,s.next)&&(vM(s),s=s.next),s}function JA(e,t){if(!e)return e;t||(t=e);var n=e,i;do if(i=!1,!n.steiner&&(lV(n,n.next)||Er(n.prev,n,n.next)===0)){if(vM(n),n=t=n.prev,n===n.next)break;i=!0}else n=n.next;while(i||n!==t);return t}function SM(e,t,n,i,o,r,s){if(e){!s&&r&&U8e(e,i,o,r);for(var a=e,c,u;e.prev!==e.next;){if(c=e.prev,u=e.next,r?P8e(e,i,o,r):I8e(e)){t.push(c.i/n|0),t.push(e.i/n|0),t.push(u.i/n|0),vM(e),e=u.next,a=u.next;continue}if(e=u,e===a){s?s===1?(e=O8e(JA(e),t,n),SM(e,t,n,i,o,r,2)):s===2&&M8e(e,t,n,i,o,r):SM(JA(e),t,n,i,o,r,1);break}}}}function I8e(e){var t=e.prev,n=e,i=e.next;if(Er(t,n,i)>=0)return!1;for(var o=t.x,r=n.x,s=i.x,a=t.y,c=n.y,u=i.y,f=or?o>s?o:s:r>s?r:s,g=a>c?a>u?a:u:c>u?c:u,h=i.next;h!==t;){if(h.x>=f&&h.x<=p&&h.y>=d&&h.y<=g&&dE(o,a,r,c,s,u,h.x,h.y)&&Er(h.prev,h,h.next)>=0)return!1;h=h.next}return!0}function P8e(e,t,n,i){var o=e.prev,r=e,s=e.next;if(Er(o,r,s)>=0)return!1;for(var a=o.x,c=r.x,u=s.x,f=o.y,d=r.y,p=s.y,g=ac?a>u?a:u:c>u?c:u,x=f>d?f>p?f:p:d>p?d:p,C=O6(g,h,t,n,i),T=O6(A,x,t,n,i),E=e.prevZ,S=e.nextZ;E&&E.z>=C&&S&&S.z<=T;){if(E.x>=g&&E.x<=A&&E.y>=h&&E.y<=x&&E!==o&&E!==s&&dE(a,f,c,d,u,p,E.x,E.y)&&Er(E.prev,E,E.next)>=0||(E=E.prevZ,S.x>=g&&S.x<=A&&S.y>=h&&S.y<=x&&S!==o&&S!==s&&dE(a,f,c,d,u,p,S.x,S.y)&&Er(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;E&&E.z>=C;){if(E.x>=g&&E.x<=A&&E.y>=h&&E.y<=x&&E!==o&&E!==s&&dE(a,f,c,d,u,p,E.x,E.y)&&Er(E.prev,E,E.next)>=0)return!1;E=E.prevZ}for(;S&&S.z<=T;){if(S.x>=g&&S.x<=A&&S.y>=h&&S.y<=x&&S!==o&&S!==s&&dE(a,f,c,d,u,p,S.x,S.y)&&Er(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function O8e(e,t,n){var i=e;do{var o=i.prev,r=i.next.next;!lV(o,r)&&ese(o,i,i.next,r)&&wM(o,r)&&wM(r,o)&&(t.push(o.i/n|0),t.push(i.i/n|0),t.push(r.i/n|0),vM(i),vM(i.next),i=e=r),i=i.next}while(i!==e);return JA(i)}function M8e(e,t,n,i,o,r){var s=e;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&z8e(s,a)){var c=tse(s,a);s=JA(s,s.next),c=JA(c,c.next),SM(s,t,n,i,o,r,0),SM(c,t,n,i,o,r,0);return}a=a.next}s=s.next}while(s!==e)}function R8e(e,t,n,i){var o=[],r,s,a,c,u;for(r=0,s=t.length;r=n.next.y&&n.next.y!==n.y){var a=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=i&&a>r&&(r=a,s=n.x=n.x&&n.x>=u&&i!==n.x&&dE(os.x||n.x===s.x&&F8e(s,n)))&&(s=n,d=p)),n=n.next;while(n!==c);return s}function F8e(e,t){return Er(e.prev,e,t.prev)<0&&Er(t.next,e,e.next)<0}function U8e(e,t,n,i){var o=e;do o.z===0&&(o.z=O6(o.x,o.y,t,n,i)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,V8e(o)}function V8e(e){var t,n,i,o,r,s,a,c,u=1;do{for(n=e,e=null,r=null,s=0;n;){for(s++,i=n,a=0,t=0;t0||c>0&&i;)a!==0&&(c===0||!i||n.z<=i.z)?(o=n,n=n.nextZ,a--):(o=i,i=i.nextZ,c--),r?r.nextZ=o:e=o,o.prevZ=r,r=o;n=i}r.nextZ=null,u*=2}while(s>1);return e}function O6(e,t,n,i,o){return e=(e-n)*o|0,t=(t-i)*o|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function k8e(e){var t=e,n=e;do(t.x=(e-s)*(r-a)&&(e-s)*(i-a)>=(n-s)*(t-a)&&(n-s)*(r-a)>=(o-s)*(i-a)}function z8e(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!H8e(e,t)&&(wM(e,t)&&wM(t,e)&&G8e(e,t)&&(Er(e.prev,e,t.prev)||Er(e,t.prev,t))||lV(e,t)&&Er(e.prev,e,e.next)>0&&Er(t.prev,t,t.next)>0)}function Er(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function lV(e,t){return e.x===t.x&&e.y===t.y}function ese(e,t,n,i){var o=aV(Er(e,t,n)),r=aV(Er(e,t,i)),s=aV(Er(n,i,e)),a=aV(Er(n,i,t));return!!(o!==r&&s!==a||o===0&&sV(e,n,t)||r===0&&sV(e,i,t)||s===0&&sV(n,e,i)||a===0&&sV(n,t,i))}function sV(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function aV(e){return e>0?1:e<0?-1:0}function H8e(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&ese(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function wM(e,t){return Er(e.prev,e,e.next)<0?Er(e,t,e.next)>=0&&Er(e,e.prev,t)>=0:Er(e,t,e.prev)<0||Er(e,e.next,t)<0}function G8e(e,t){var n=e,i=!1,o=(e.x+t.x)/2,r=(e.y+t.y)/2;do n.y>r!=n.next.y>r&&n.next.y!==n.y&&o<(n.next.x-n.x)*(r-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e);return i}function tse(e,t){var n=new M6(e.i,e.x,e.y),i=new M6(t.i,t.x,t.y),o=e.next,r=t.prev;return e.next=t,t.prev=e,n.next=o,o.prev=n,i.next=n,n.prev=i,r.next=i,i.prev=r,i}function Qre(e,t,n,i){var o=new M6(e,t,n);return i?(o.next=i.next,o.prev=i,i.next.prev=o,i.next=o):(o.prev=o,o.next=o),o}function vM(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function M6(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}cV.deviation=function(e,t,n,i){var o=t&&t.length,r=o?t[0]*n:e.length,s=Math.abs(R6(e,0,r,n));if(o)for(var a=0,c=t.length;a0&&(i+=e[o-1].length,n.holes.push(i))}return n}});var Cue=Zc((uW,fW)=>{(function(e,t){typeof uW=="object"&&typeof fW<"u"?fW.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self).RBush=t()})(uW,function(){"use strict";function e(x,C,T,E,S){(function v(D,O,M,L,N){for(;L>M;){if(L-M>600){var _=L-M+1,b=O-M+1,w=Math.log(_),I=.5*Math.exp(2*w/3),R=.5*Math.sqrt(w*I*(_-I)/_)*(b-_/2<0?-1:1),F=Math.max(M,Math.floor(O-b*I/_+R)),k=Math.min(L,Math.floor(O+(_-b)*I/_+R));v(D,O,F,k,N)}var V=D[O],G=M,U=L;for(t(D,M,O),N(D[L],V)>0&&t(D,M,L);G0;)U--}N(D[M],V)===0?t(D,M,U):t(D,++U,L),U<=O&&(M=U+1),O<=U&&(L=U-1)}})(x,C,T||0,E||x.length-1,S||n)}function t(x,C,T){var E=x[C];x[C]=x[T],x[T]=E}function n(x,C){return xC?1:0}var i=function(x){x===void 0&&(x=9),this._maxEntries=Math.max(4,x),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function o(x,C,T){if(!T)return C.indexOf(x);for(var E=0;E=x.minX&&C.maxY>=x.minY}function h(x){return{children:x,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function A(x,C,T,E,S){for(var v=[C,T];v.length;)if(!((T=v.pop())-(C=v.pop())<=E)){var D=C+Math.ceil((T-C)/E/2)*E;e(x,D,C,T,S),v.push(C,D,D,T)}}return i.prototype.all=function(){return this._all(this.data,[])},i.prototype.search=function(x){var C=this.data,T=[];if(!g(x,C))return T;for(var E=this.toBBox,S=[];C;){for(var v=0;v=0&&S[C].children.length>this._maxEntries;)this._split(S,C),C--;this._adjustParentBBoxes(E,S,C)},i.prototype._split=function(x,C){var T=x[C],E=T.children.length,S=this._minEntries;this._chooseSplitAxis(T,S,E);var v=this._chooseSplitIndex(T,S,E),D=h(T.children.splice(v,T.children.length-v));D.height=T.height,D.leaf=T.leaf,r(T,this.toBBox),r(D,this.toBBox),C?x[C-1].children.push(D):this._splitRoot(T,D)},i.prototype._splitRoot=function(x,C){this.data=h([x,C]),this.data.height=x.height+1,this.data.leaf=!1,r(this.data,this.toBBox)},i.prototype._chooseSplitIndex=function(x,C,T){for(var E,S,v,D,O,M,L,N=1/0,_=1/0,b=C;b<=T-C;b++){var w=s(x,0,b,this.toBBox),I=s(x,b,T,this.toBBox),R=(S=w,v=I,D=void 0,O=void 0,M=void 0,L=void 0,D=Math.max(S.minX,v.minX),O=Math.max(S.minY,v.minY),M=Math.min(S.maxX,v.maxX),L=Math.min(S.maxY,v.maxY),Math.max(0,M-D)*Math.max(0,L-O)),F=f(w)+f(I);R=C;N--){var _=x.children[N];a(D,x.leaf?S(_):_),O+=d(D)}return O},i.prototype._adjustParentBBoxes=function(x,C,T){for(var E=T;E>=0;E--)a(C[E],x)},i.prototype._condense=function(x){for(var C=x.length-1,T=void 0;C>=0;C--)x[C].children.length===0?C>0?(T=x[C-1].children).splice(T.indexOf(x[C]),1):this.clear():r(x[C],this.toBBox)},i})});var fq=Zc((exports,module)=>{/*! + * protobuf.js v7.2.3 (c) 2016, daniel wirtz + * compiled mon, 27 mar 2023 18:08:22 utc + * licensed under the bsd-3-clause license + * see: https://github.com/dcodeio/protobuf.js for details + */(function(undefined){"use strict";(function(t,n,i){function o(s){var a=n[s];return a||t[s][0].call(a=n[s]={exports:{}},o,a,a.exports),a.exports}var r=o(i[0]);r.util.global.protobuf=r,typeof define=="function"&&define.amd&&define(["long"],function(s){return s&&s.isLong&&(r.util.Long=s,r.configure()),r}),typeof module=="object"&&module&&module.exports&&(module.exports=r)})({1:[function(e,t,n){"use strict";t.exports=i;function i(o,r){for(var s=new Array(arguments.length-1),a=0,c=2,u=!0;c1&&u.charAt(f)==="=";)++d;return Math.ceil(u.length*3)/4-d};for(var o=new Array(64),r=new Array(123),s=0;s<64;)r[o[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;i.encode=function(u,f,d){for(var p=null,g=[],h=0,A=0,x;f>2],x=(C&3)<<4,A=1;break;case 1:g[h++]=o[x|C>>4],x=(C&15)<<2,A=2;break;case 2:g[h++]=o[x|C>>6],g[h++]=o[C&63],A=0;break}h>8191&&((p||(p=[])).push(String.fromCharCode.apply(String,g)),h=0)}return A&&(g[h++]=o[x],g[h++]=61,A===1&&(g[h++]=61)),p?(h&&p.push(String.fromCharCode.apply(String,g.slice(0,h))),p.join("")):String.fromCharCode.apply(String,g.slice(0,h))};var a="invalid encoding";i.decode=function(u,f,d){for(var p=d,g=0,h,A=0;A1)break;if((x=r[x])===undefined)throw Error(a);switch(g){case 0:h=x,g=1;break;case 1:f[d++]=h<<2|(x&48)>>4,h=x,g=2;break;case 2:f[d++]=(h&15)<<4|(x&60)>>2,h=x,g=3;break;case 3:f[d++]=(h&3)<<6|x,g=0;break}}if(g===1)throw Error(a);return d-p},i.test=function(u){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(u)}},{}],3:[function(e,t,n){"use strict";t.exports=i;function i(){this._listeners={}}i.prototype.on=function(r,s,a){return(this._listeners[r]||(this._listeners[r]=[])).push({fn:s,ctx:a||this}),this},i.prototype.off=function(r,s){if(r===undefined)this._listeners={};else if(s===undefined)this._listeners[r]=[];else for(var a=this._listeners[r],c=0;c0?0:2147483648,g,h);else if(isNaN(p))d(2143289344,g,h);else if(p>34028234663852886e22)d((A<<31|2139095040)>>>0,g,h);else if(p<11754943508222875e-54)d((A<<31|Math.round(p/1401298464324817e-60))>>>0,g,h);else{var x=Math.floor(Math.log(p)/Math.LN2),C=Math.round(p*Math.pow(2,-x)*8388608)&8388607;d((A<<31|x+127<<23|C)>>>0,g,h)}}c.writeFloatLE=u.bind(null,o),c.writeFloatBE=u.bind(null,r);function f(d,p,g){var h=d(p,g),A=(h>>31)*2+1,x=h>>>23&255,C=h&8388607;return x===255?C?NaN:A*(1/0):x===0?A*1401298464324817e-60*C:A*Math.pow(2,x-150)*(C+8388608)}c.readFloatLE=f.bind(null,s),c.readFloatBE=f.bind(null,a)}(),typeof Float64Array<"u"?function(){var u=new Float64Array([-0]),f=new Uint8Array(u.buffer),d=f[7]===128;function p(x,C,T){u[0]=x,C[T]=f[0],C[T+1]=f[1],C[T+2]=f[2],C[T+3]=f[3],C[T+4]=f[4],C[T+5]=f[5],C[T+6]=f[6],C[T+7]=f[7]}function g(x,C,T){u[0]=x,C[T]=f[7],C[T+1]=f[6],C[T+2]=f[5],C[T+3]=f[4],C[T+4]=f[3],C[T+5]=f[2],C[T+6]=f[1],C[T+7]=f[0]}c.writeDoubleLE=d?p:g,c.writeDoubleBE=d?g:p;function h(x,C){return f[0]=x[C],f[1]=x[C+1],f[2]=x[C+2],f[3]=x[C+3],f[4]=x[C+4],f[5]=x[C+5],f[6]=x[C+6],f[7]=x[C+7],u[0]}function A(x,C){return f[7]=x[C],f[6]=x[C+1],f[5]=x[C+2],f[4]=x[C+3],f[3]=x[C+4],f[2]=x[C+5],f[1]=x[C+6],f[0]=x[C+7],u[0]}c.readDoubleLE=d?h:A,c.readDoubleBE=d?A:h}():function(){function u(d,p,g,h,A,x){var C=h<0?1:0;if(C&&(h=-h),h===0)d(0,A,x+p),d(1/h>0?0:2147483648,A,x+g);else if(isNaN(h))d(0,A,x+p),d(2146959360,A,x+g);else if(h>17976931348623157e292)d(0,A,x+p),d((C<<31|2146435072)>>>0,A,x+g);else{var T;if(h<22250738585072014e-324)T=h/5e-324,d(T>>>0,A,x+p),d((C<<31|T/4294967296)>>>0,A,x+g);else{var E=Math.floor(Math.log(h)/Math.LN2);E===1024&&(E=1023),T=h*Math.pow(2,-E),d(T*4503599627370496>>>0,A,x+p),d((C<<31|E+1023<<20|T*1048576&1048575)>>>0,A,x+g)}}}c.writeDoubleLE=u.bind(null,o,0,4),c.writeDoubleBE=u.bind(null,r,4,0);function f(d,p,g,h,A){var x=d(h,A+p),C=d(h,A+g),T=(C>>31)*2+1,E=C>>>20&2047,S=4294967296*(C&1048575)+x;return E===2047?S?NaN:T*(1/0):E===0?T*5e-324*S:T*Math.pow(2,E-1075)*(S+4503599627370496)}c.readDoubleLE=f.bind(null,s,0,4),c.readDoubleBE=f.bind(null,a,4,0)}(),c}function o(c,u,f){u[f]=c&255,u[f+1]=c>>>8&255,u[f+2]=c>>>16&255,u[f+3]=c>>>24}function r(c,u,f){u[f]=c>>>24,u[f+1]=c>>>16&255,u[f+2]=c>>>8&255,u[f+3]=c&255}function s(c,u){return(c[u]|c[u+1]<<8|c[u+2]<<16|c[u+3]<<24)>>>0}function a(c,u){return(c[u]<<24|c[u+1]<<16|c[u+2]<<8|c[u+3])>>>0}},{}],5:[function(require,module,exports){"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}},{}],6:[function(e,t,n){"use strict";t.exports=i;function i(o,r,s){var a=s||8192,c=a>>>1,u=null,f=a;return function(p){if(p<1||p>c)return o(p);f+p>a&&(u=o(a),f=0);var g=r.call(u,f,f+=p);return f&7&&(f=(f|7)+1),g}}},{}],7:[function(e,t,n){"use strict";var i=n;i.length=function(r){for(var s=0,a=0,c=0;c191&&p<224?f[d++]=(p&31)<<6|r[s++]&63:p>239&&p<365?(p=((p&7)<<18|(r[s++]&63)<<12|(r[s++]&63)<<6|r[s++]&63)-65536,f[d++]=55296+(p>>10),f[d++]=56320+(p&1023)):f[d++]=(p&15)<<12|(r[s++]&63)<<6|r[s++]&63,d>8191&&((u||(u=[])).push(String.fromCharCode.apply(String,f)),d=0);return u?(d&&u.push(String.fromCharCode.apply(String,f.slice(0,d))),u.join("")):String.fromCharCode.apply(String,f.slice(0,d))},i.write=function(r,s,a){for(var c=a,u,f,d=0;d>6|192,s[a++]=u&63|128):(u&64512)===55296&&((f=r.charCodeAt(d+1))&64512)===56320?(u=65536+((u&1023)<<10)+(f&1023),++d,s[a++]=u>>18|240,s[a++]=u>>12&63|128,s[a++]=u>>6&63|128,s[a++]=u&63|128):(s[a++]=u>>12|224,s[a++]=u>>6&63|128,s[a++]=u&63|128);return a-c}},{}],8:[function(e,t,n){"use strict";var i=n;i.build="minimal",i.Writer=e(16),i.BufferWriter=e(17),i.Reader=e(9),i.BufferReader=e(10),i.util=e(15),i.rpc=e(12),i.roots=e(11),i.configure=o;function o(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}o()},{10:10,11:11,12:12,15:15,16:16,17:17,9:9}],9:[function(e,t,n){"use strict";t.exports=c;var i=e(15),o,r=i.LongBits,s=i.utf8;function a(h,A){return RangeError("index out of range: "+h.pos+" + "+(A||1)+" > "+h.len)}function c(h){this.buf=h,this.pos=0,this.len=h.length}var u=typeof Uint8Array<"u"?function(A){if(A instanceof Uint8Array||Array.isArray(A))return new c(A);throw Error("illegal buffer")}:function(A){if(Array.isArray(A))return new c(A);throw Error("illegal buffer")},f=function(){return i.Buffer?function(x){return(c.create=function(T){return i.Buffer.isBuffer(T)?new o(T):u(T)})(x)}:u};c.create=f(),c.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,c.prototype.uint32=function(){var A=4294967295;return function(){if(A=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(A=(A|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(A=(A|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(A=(A|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(A=(A|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return A;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return A}}(),c.prototype.int32=function(){return this.uint32()|0},c.prototype.sint32=function(){var A=this.uint32();return A>>>1^-(A&1)|0};function d(){var h=new r(0,0),A=0;if(this.len-this.pos>4){for(;A<4;++A)if(h.lo=(h.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return h;if(h.lo=(h.lo|(this.buf[this.pos]&127)<<28)>>>0,h.hi=(h.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return h;A=0}else{for(;A<3;++A){if(this.pos>=this.len)throw a(this);if(h.lo=(h.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return h}return h.lo=(h.lo|(this.buf[this.pos++]&127)<>>0,h}if(this.len-this.pos>4){for(;A<5;++A)if(h.hi=(h.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return h}else for(;A<5;++A){if(this.pos>=this.len)throw a(this);if(h.hi=(h.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return h}throw Error("invalid varint encoding")}c.prototype.bool=function(){return this.uint32()!==0};function p(h,A){return(h[A-4]|h[A-3]<<8|h[A-2]<<16|h[A-1]<<24)>>>0}c.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)|0};function g(){if(this.pos+8>this.len)throw a(this,8);return new r(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}c.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var A=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,A},c.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var A=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,A},c.prototype.bytes=function(){var A=this.uint32(),x=this.pos,C=this.pos+A;if(C>this.len)throw a(this,A);return this.pos+=A,Array.isArray(this.buf)?this.buf.slice(x,C):x===C?new this.buf.constructor(0):this._slice.call(this.buf,x,C)},c.prototype.string=function(){var A=this.bytes();return s.read(A,0,A.length)},c.prototype.skip=function(A){if(typeof A=="number"){if(this.pos+A>this.len)throw a(this,A);this.pos+=A}else do if(this.pos>=this.len)throw a(this);while(this.buf[this.pos++]&128);return this},c.prototype.skipType=function(h){switch(h){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(h=this.uint32()&7)!==4;)this.skipType(h);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+h+" at offset "+this.pos)}return this},c._configure=function(h){o=h,c.create=f(),o._configure();var A=i.Long?"toLong":"toNumber";i.merge(c.prototype,{int64:function(){return d.call(this)[A](!1)},uint64:function(){return d.call(this)[A](!0)},sint64:function(){return d.call(this).zzDecode()[A](!1)},fixed64:function(){return g.call(this)[A](!0)},sfixed64:function(){return g.call(this)[A](!1)}})}},{15:15}],10:[function(e,t,n){"use strict";t.exports=r;var i=e(9);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(s){i.call(this,s)}r._configure=function(){o.Buffer&&(r.prototype._slice=o.Buffer.prototype.slice)},r.prototype.string=function(){var a=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+a,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+a,this.len))},r._configure()},{15:15,9:9}],11:[function(e,t,n){"use strict";t.exports={}},{}],12:[function(e,t,n){"use strict";var i=n;i.Service=e(13)},{13:13}],13:[function(e,t,n){"use strict";t.exports=o;var i=e(15);(o.prototype=Object.create(i.EventEmitter.prototype)).constructor=o;function o(r,s,a){if(typeof r!="function")throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=r,this.requestDelimited=!!s,this.responseDelimited=!!a}o.prototype.rpcCall=function r(s,a,c,u,f){if(!u)throw TypeError("request must be specified");var d=this;if(!f)return i.asPromise(r,d,s,a,c,u);if(!d.rpcImpl)return setTimeout(function(){f(Error("already ended"))},0),undefined;try{return d.rpcImpl(s,a[d.requestDelimited?"encodeDelimited":"encode"](u).finish(),function(g,h){if(g)return d.emit("error",g,s),f(g);if(h===null)return d.end(!0),undefined;if(!(h instanceof c))try{h=c[d.responseDelimited?"decodeDelimited":"decode"](h)}catch(A){return d.emit("error",A,s),f(A)}return d.emit("data",h,s),f(null,h)})}catch(p){return d.emit("error",p,s),setTimeout(function(){f(p)},0),undefined}},o.prototype.end=function(s){return this.rpcImpl&&(s||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{15:15}],14:[function(e,t,n){"use strict";t.exports=o;var i=e(15);function o(c,u){this.lo=c>>>0,this.hi=u>>>0}var r=o.zero=new o(0,0);r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1};var s=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(u){if(u===0)return r;var f=u<0;f&&(u=-u);var d=u>>>0,p=(u-d)/4294967296>>>0;return f&&(p=~p>>>0,d=~d>>>0,++d>4294967295&&(d=0,++p>4294967295&&(p=0))),new o(d,p)},o.from=function(u){if(typeof u=="number")return o.fromNumber(u);if(i.isString(u))if(i.Long)u=i.Long.fromString(u);else return o.fromNumber(parseInt(u,10));return u.low||u.high?new o(u.low>>>0,u.high>>>0):r},o.prototype.toNumber=function(u){if(!u&&this.hi>>>31){var f=~this.lo+1>>>0,d=~this.hi>>>0;return f||(d=d+1>>>0),-(f+d*4294967296)}return this.lo+this.hi*4294967296},o.prototype.toLong=function(u){return i.Long?new i.Long(this.lo|0,this.hi|0,!!u):{low:this.lo|0,high:this.hi|0,unsigned:!!u}};var a=String.prototype.charCodeAt;o.fromHash=function(u){return u===s?r:new o((a.call(u,0)|a.call(u,1)<<8|a.call(u,2)<<16|a.call(u,3)<<24)>>>0,(a.call(u,4)|a.call(u,5)<<8|a.call(u,6)<<16|a.call(u,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var u=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^u)>>>0,this.lo=(this.lo<<1^u)>>>0,this},o.prototype.zzDecode=function(){var u=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^u)>>>0,this.hi=(this.hi>>>1^u)>>>0,this},o.prototype.length=function(){var u=this.lo,f=(this.lo>>>28|this.hi<<4)>>>0,d=this.hi>>>24;return d===0?f===0?u<16384?u<128?1:2:u<2097152?3:4:f<16384?f<128?5:6:f<2097152?7:8:d<128?9:10}},{15:15}],15:[function(e,t,n){"use strict";var i=n;i.asPromise=e(1),i.base64=e(2),i.EventEmitter=e(3),i.float=e(4),i.inquire=e(5),i.utf8=e(7),i.pool=e(6),i.LongBits=e(14),i.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node),i.global=i.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(a){return typeof a=="number"&&isFinite(a)&&Math.floor(a)===a},i.isString=function(a){return typeof a=="string"||a instanceof String},i.isObject=function(a){return a&&typeof a=="object"},i.isset=i.isSet=function(a,c){var u=a[c];return u!=null&&a.hasOwnProperty(c)?typeof u!="object"||(Array.isArray(u)?u.length:Object.keys(u).length)>0:!1},i.Buffer=function(){try{var s=i.inquire("buffer").Buffer;return s.prototype.utf8Write?s:null}catch{return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(a){return typeof a=="number"?i.Buffer?i._Buffer_allocUnsafe(a):new i.Array(a):i.Buffer?i._Buffer_from(a):typeof Uint8Array>"u"?a:new Uint8Array(a)},i.Array=typeof Uint8Array<"u"?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(a){return a?i.LongBits.from(a).toHash():i.LongBits.zeroHash},i.longFromHash=function(a,c){var u=i.LongBits.fromHash(a);return i.Long?i.Long.fromBits(u.lo,u.hi,c):u.toNumber(!!c)};function o(s,a,c){for(var u=Object.keys(a),f=0;f-1;--d)if(c[f[d]]===1&&this[f[d]]!==undefined&&this[f[d]]!==null)return f[d]}},i.oneOfSetter=function(a){return function(c){for(var u=0;u127;)S[v++]=E&127|128,E>>>=7;S[v]=E}function A(E,S){this.len=E,this.next=undefined,this.val=S}A.prototype=Object.create(c.prototype),A.prototype.fn=h,d.prototype.uint32=function(S){return this.len+=(this.tail=this.tail.next=new A((S=S>>>0)<128?1:S<16384?2:S<2097152?3:S<268435456?4:5,S)).len,this},d.prototype.int32=function(S){return S<0?this._push(x,10,r.fromNumber(S)):this.uint32(S)},d.prototype.sint32=function(S){return this.uint32((S<<1^S>>31)>>>0)};function x(E,S,v){for(;E.hi;)S[v++]=E.lo&127|128,E.lo=(E.lo>>>7|E.hi<<25)>>>0,E.hi>>>=7;for(;E.lo>127;)S[v++]=E.lo&127|128,E.lo=E.lo>>>7;S[v++]=E.lo}d.prototype.uint64=function(S){var v=r.from(S);return this._push(x,v.length(),v)},d.prototype.int64=d.prototype.uint64,d.prototype.sint64=function(S){var v=r.from(S).zzEncode();return this._push(x,v.length(),v)},d.prototype.bool=function(S){return this._push(g,1,S?1:0)};function C(E,S,v){S[v]=E&255,S[v+1]=E>>>8&255,S[v+2]=E>>>16&255,S[v+3]=E>>>24}d.prototype.fixed32=function(S){return this._push(C,4,S>>>0)},d.prototype.sfixed32=d.prototype.fixed32,d.prototype.fixed64=function(S){var v=r.from(S);return this._push(C,4,v.lo)._push(C,4,v.hi)},d.prototype.sfixed64=d.prototype.fixed64,d.prototype.float=function(S){return this._push(i.float.writeFloatLE,4,S)},d.prototype.double=function(S){return this._push(i.float.writeDoubleLE,8,S)};var T=i.Array.prototype.set?function(S,v,D){v.set(S,D)}:function(S,v,D){for(var O=0;O>>0;if(!v)return this._push(g,1,0);if(i.isString(S)){var D=d.alloc(v=s.length(S));s.decode(S,D,0),S=D}return this.uint32(v)._push(T,v,S)},d.prototype.string=function(S){var v=a.length(S);return v?this.uint32(v)._push(a.write,v,S):this._push(g,1,0)},d.prototype.fork=function(){return this.states=new f(this),this.head=this.tail=new c(u,0,0),this.len=0,this},d.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(u,0,0),this.len=0),this},d.prototype.ldelim=function(){var S=this.head,v=this.tail,D=this.len;return this.reset().uint32(D),D&&(this.tail.next=S.next,this.tail=v,this.len+=D),this},d.prototype.finish=function(){for(var S=this.head.next,v=this.constructor.alloc(this.len),D=0;S;)S.fn(S.val,v,D),D+=S.len,S=S.next;return v},d._configure=function(E){o=E,d.create=p(),o._configure()}},{15:15}],17:[function(e,t,n){"use strict";t.exports=r;var i=e(16);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(){i.call(this)}r._configure=function(){r.alloc=o._Buffer_allocUnsafe,r.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&o.Buffer.prototype.set.name==="set"?function(c,u,f){u.set(c,f)}:function(c,u,f){if(c.copy)c.copy(u,f,0,c.length);else for(var d=0;d>>0;return this.uint32(u),u&&this._push(r.writeBytesBuffer,u,c),this};function s(a,c,u){a.length<40?o.utf8.write(a,c,u):c.utf8Write?c.utf8Write(a,u):c.write(a,u)}r.prototype.string=function(c){var u=o.Buffer.byteLength(c);return this.uint32(u),u&&this._push(s,u,c),this},r._configure()},{15:15,16:16}]},{},[8])})()});var b0e=Zc((Cxi,Bz)=>{/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var e=function(){var o={};o.defaultNoDataValue=-34027999387901484e22,o.decode=function(f,d){d=d||{};var p=d.encodedMaskData||d.encodedMaskData===null,g=c(f,d.inputOffset||0,p),h=d.noDataValue!==null?d.noDataValue:o.defaultNoDataValue,A=r(g,d.pixelType||Float32Array,d.encodedMaskData,h,d.returnMask),x={width:g.width,height:g.height,pixelData:A.resultPixels,minValue:A.minValue,maxValue:g.pixels.maxValue,noDataValue:h};return A.resultMask&&(x.maskData=A.resultMask),d.returnEncodedMask&&g.mask&&(x.encodedMaskData=g.mask.bitset?g.mask.bitset:null),d.returnFileInfo&&(x.fileInfo=s(g),d.computeUsedBitDepths&&(x.fileInfo.bitDepths=a(g))),x};var r=function(f,d,p,g,h){var A=0,x=f.pixels.numBlocksX,C=f.pixels.numBlocksY,T=Math.floor(f.width/x),E=Math.floor(f.height/C),S=2*f.maxZError,v=Number.MAX_VALUE,D;p=p||(f.mask?f.mask.bitset:null);var O,M;O=new d(f.width*f.height),h&&p&&(M=new Uint8Array(f.width*f.height));for(var L=new Float32Array(T*E),N,_,b=0;b<=C;b++){var w=b!==C?E:f.height%C;if(w!==0)for(var I=0;I<=x;I++){var R=I!==x?T:f.width%x;if(R!==0){var F=b*f.width*E+I*T,k=f.width-R,V=f.pixels.blocks[A],G,U,q;V.encoding<2?(V.encoding===0?G=V.rawData:(u(V.stuffedData,V.bitsPerPixel,V.numValidPixels,V.offset,S,L,f.pixels.maxValue),G=L),U=0):V.encoding===2?q=0:q=V.offset;var Y;if(p)for(_=0;_>3],Y<<=F&7),N=0;N>3]),Y&128?(M&&(M[F]=1),D=V.encoding<2?G[U++]:q,v=v>D?D:v,O[F++]=D):(M&&(M[F]=0),O[F++]=g),Y<<=1;F+=k}else if(V.encoding<2)for(_=0;_D?D:v,O[F++]=D;F+=k}else for(v=v>q?q:v,_=0;_0){var x=new Uint8Array(Math.ceil(g.width*g.height/8));A=new DataView(f,d,g.mask.numBytes);var C=A.getInt16(0,!0),T=2,E=0;do{if(C>0)for(;C--;)x[E++]=A.getUint8(T++);else{var S=A.getUint8(T++);for(C=-C;C--;)x[E++]=S}C=A.getInt16(T,!0),T+=2}while(T0?1:0),M=D+(g.height%D>0?1:0);g.pixels.blocks=new Array(O*M);for(var L=0,N=0;N3)throw"Invalid block encoding ("+I.encoding+")";if(I.encoding===2){d++;continue}if(R!==0&&R!==2){if(R>>=6,I.offsetType=R,R===2)I.offset=A.getInt8(1),b++;else if(R===1)I.offset=A.getInt16(1,!0),b+=2;else if(R===0)I.offset=A.getFloat32(1,!0),b+=4;else throw"Invalid block offset type";if(I.encoding===1)if(R=A.getUint8(b),b++,I.bitsPerPixel=R&63,R>>=6,I.numValidPixelsType=R,R===2)I.numValidPixels=A.getUint8(b),b++;else if(R===1)I.numValidPixels=A.getUint16(b,!0),b+=2;else if(R===0)I.numValidPixels=A.getUint32(b,!0),b+=4;else throw"Invalid valid pixel count type"}if(d+=b,I.encoding!==3){var F,k;if(I.encoding===0){var V=(g.pixels.numBytes-1)/4;if(V!==Math.floor(V))throw"uncompressed block has invalid length";F=new ArrayBuffer(V*4),k=new Uint8Array(F),k.set(new Uint8Array(f,d,V*4));var G=new Float32Array(F);I.rawData=G,d+=V*4}else if(I.encoding===1){var U=Math.ceil(I.numValidPixels*I.bitsPerPixel/8),q=Math.ceil(U/4);F=new ArrayBuffer(q*4),k=new Uint8Array(F),k.set(new Uint8Array(f,d,U)),I.stuffedData=new Uint32Array(F),d+=U}}}return g.eofOffset=d,g},u=function(f,d,p,g,h,A,x){var C=(1<=d)v=D>>>S-d&C,S-=d;else{var L=d-S;v=(D&C)<>>S}A[E]=v=f?(S=v>>>E-f&x,E-=f):(D=f-E,S=(v&x)<>>E),u[T]=p[S];else for(O=Math.ceil((A-g)/h),T=0;T=f?(S=v>>>E-f&x,E-=f):(D=f-E,S=(v&x)<>>E),u[T]=S=u?(E=S>>>T-u&h,T-=u):(C=u-T,E=(S&h)<>>T),v[x]=E=f?(v=D>>>S&x,E-=f,S+=f):(O=f-E,v=D>>>S&x,D=c[C++],E=32-O,v|=(D&(1<=f?(v=D>>>S&x,E-=f,S+=f):(O=f-E,v=D>>>S&x,D=c[C++],E=32-O,v|=(D&(1<=u?(E=v>>>S&h,T-=u,S+=u):(C=u-T,E=v>>>S&h,v=c[A++],T=32-C,E|=(v&(1<=f?(x=C>>>A-f&p,A-=f):(T=f-A,x=(C&p)<>>A),u[h]=x;return u},originalUnstuff2:function(c,u,f,d){var p=(1<=f?(C=T>>>x&p,A-=f,x+=f):(E=f-A,C=T>>>x&p,T=c[g++],A=32-E,C|=(T&(1<=359?359:p;p-=h;do u+=c[g++]<<8,f+=u+=c[g++];while(--h);u=(u&65535)+(u>>>16),f=(f&65535)+(f>>>16)}return d&1&&(f+=u+=c[g]<<8),u=(u&65535)+(u>>>16),f=(f&65535)+(f>>>16),(f<<16|u)>>>0},readHeaderInfo:function(c,u){var f=u.ptr,d=new Uint8Array(c,f,6),p={};if(p.fileIdentifierString=String.fromCharCode.apply(null,d),p.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+p.fileIdentifierString;f+=6;var g=new DataView(c,f,8),h=g.getInt32(0,!0);p.fileVersion=h,f+=4,h>=3&&(p.checksum=g.getUint32(4,!0),f+=4),g=new DataView(c,f,12),p.height=g.getUint32(0,!0),p.width=g.getUint32(4,!0),f+=8,h>=4?(p.numDims=g.getUint32(8,!0),f+=4):p.numDims=1,g=new DataView(c,f,40),p.numValidPixel=g.getUint32(0,!0),p.microBlockSize=g.getInt32(4,!0),p.blobSize=g.getInt32(8,!0),p.imageType=g.getInt32(12,!0),p.maxZError=g.getFloat64(16,!0),p.zMin=g.getFloat64(24,!0),p.zMax=g.getFloat64(32,!0),f+=40,u.headerInfo=p,u.ptr=f;var A,x;if(h>=3&&(x=h>=4?52:48,A=this.computeChecksumFletcher32(new Uint8Array(c,f-x,p.blobSize-14)),A!==p.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(c,u){var f=u.headerInfo,d=this.getDataTypeArray(f.imageType),p=f.numDims*this.getDataTypeSize(f.imageType),g=this.readSubArray(c,u.ptr,d,p),h=this.readSubArray(c,u.ptr+p,d,p);u.ptr+=2*p;var A,x=!0;for(A=0;A0){x=new Uint8Array(Math.ceil(p/8)),h=new DataView(c,f,A.numBytes);var T=h.getInt16(0,!0),E=2,S=0,v=0;do{if(T>0)for(;T--;)x[S++]=h.getUint8(E++);else for(v=h.getUint8(E++),T=-T;T--;)x[S++]=v;T=h.getInt16(E,!0),E+=2}while(E>3],D<<=O&7):D=x[O>>3],D&128&&(C[O]=1);u.pixels.resultMask=C,A.bitset=x,f+=A.numBytes}return u.ptr=f,u.mask=A,!0},readDataOneSweep:function(c,u,f){var d=u.ptr,p=u.headerInfo,g=p.numDims,h=p.width*p.height,A=p.imageType,x=p.numValidPixel*r.getDataTypeSize(A)*g,C,T=u.pixels.resultMask;if(f===Uint8Array)C=new Uint8Array(c,d,x);else{var E=new ArrayBuffer(x),S=new Uint8Array(E);S.set(new Uint8Array(c,d,x)),C=new f(E)}if(C.length===h*g)u.pixels.resultPixels=C;else{u.pixels.resultPixels=new f(h*g);var v=0,D=0,O=0,M=0;if(g>1)for(O=0;O=A)return!1;var x=new Uint32Array(A-h);r.decodeBits(c,u,x);var C=[],T,E,S,v;for(T=h;T0&&(C[E].second=b<<_>>>32-v,32-_>=v?(_+=v,_===32&&(_=0,w++,b=N[w])):(_+=v-32,w++,b=N[w],C[E].second|=b>>>32-_));var I=0,R=0,F=new s;for(T=0;T=f?R=f:R=I,I>=30&&console.log("WARning, large NUM LUT BITS IS "+I);var k=[],V,G,U,q,Y,Q;for(T=h;T0)if(V=[v,E],v<=R)for(G=C[E].second<=0;q--)Y=G>>>q&1,Y?(Q.right||(Q.right=new s),Q=Q.right):(Q.left||(Q.left=new s),Q=Q.left),q===0&&!Q.val&&(Q.val=V[1]);return{decodeLut:k,numBitsLUTQick:R,numBitsLUT:I,tree:F,stuffedData:N,srcPtr:w,bitPos:_}},readHuffman:function(c,u,f){var d=u.headerInfo,p=d.numDims,g=u.headerInfo.height,h=u.headerInfo.width,A=h*g,x=this.readHuffmanTree(c,u),C=x.decodeLut,T=x.tree,E=x.stuffedData,S=x.srcPtr,v=x.bitPos,D=x.numBitsLUTQick,O=x.numBitsLUT,M=u.headerInfo.imageType===0?128:0,L,N,_,b=u.pixels.resultMask,w,I,R,F,k,V,G,U=0;v>0&&(S++,v=0);var q=E[S],Y=u.encodeMode===1,Q=new f(A*p),W=Q,K;for(K=0;K1&&(W=new f(Q.buffer,A*K,A),U=0),u.headerInfo.numValidPixel===h*g)for(V=0,F=0;F>>32-D,I=w,32-v>>64-v-D,I=w),C[I])N=C[I][1],v+=C[I][0];else for(w=q<>>32-O,I=w,32-v>>64-v-O,I=w),L=T,G=0;G>>O-G-1&1,L=R?L.right:L.left,!(L.left||L.right)){N=L.val,v=v+G+1;break}v>=32&&(v-=32,S++,q=E[S]),_=N-M,Y?(k>0?_+=U:F>0?_+=W[V-h]:_+=U,_&=255,W[V]=_,U=_):W[V]=_}else for(V=0,F=0;F>>32-D,I=w,32-v>>64-v-D,I=w),C[I])N=C[I][1],v+=C[I][0];else for(w=q<>>32-O,I=w,32-v>>64-v-O,I=w),L=T,G=0;G>>O-G-1&1,L=R?L.right:L.left,!(L.left||L.right)){N=L.val,v=v+G+1;break}v>=32&&(v-=32,S++,q=E[S]),_=N-M,Y?(k>0&&b[V-1]?_+=U:F>0&&b[V-h]?_+=W[V-h]:_+=U,_&=255,W[V]=_,U=_):W[V]=_}u.ptr=u.ptr+(S+1)*4+(v>0?4:0)}u.pixels.resultPixels=Q},decodeBits:function(c,u,f,d,p){{var g=u.headerInfo,h=g.fileVersion,A=0,x=new DataView(c,u.ptr,5),C=x.getUint8(0);A++;var T=C>>6,E=T===0?4:3-T,S=(C&32)>0,v=C&31,D=0;if(E===1)D=x.getUint8(A),A++;else if(E===2)D=x.getUint16(A,!0),A+=2;else if(E===4)D=x.getUint32(A,!0),A+=4;else throw"Invalid valid pixel count type";var O=2*g.maxZError,M,L,N,_,b,w,I,R,F,k,V=g.numDims>1?g.maxValues[p]:g.zMax;if(S){for(u.counter.lut++,R=x.getUint8(A),F=v,A++,_=Math.ceil((R-1)*v/8),b=Math.ceil(_/4),L=new ArrayBuffer(b*4),N=new Uint8Array(L),u.ptr+=A,N.set(new Uint8Array(c,u.ptr,_)),I=new Uint32Array(L),u.ptr+=_,k=0;R-1>>>k;)k++;_=Math.ceil(D*k/8),b=Math.ceil(_/4),L=new ArrayBuffer(b*4),N=new Uint8Array(L),N.set(new Uint8Array(c,u.ptr,_)),M=new Uint32Array(L),u.ptr+=_,h>=3?w=o.unstuffLUT2(I,v,R-1,d,O,V):w=o.unstuffLUT(I,v,R-1,d,O,V),h>=3?o.unstuff2(M,f,k,D,w):o.unstuff(M,f,k,D,w)}else u.counter.bitstuffer++,k=v,u.ptr+=A,k>0&&(_=Math.ceil(D*k/8),b=Math.ceil(_/4),L=new ArrayBuffer(b*4),N=new Uint8Array(L),N.set(new Uint8Array(c,u.ptr,_)),M=new Uint32Array(L),u.ptr+=_,h>=3?d==null?o.originalUnstuff2(M,f,k,D):o.unstuff2(M,f,k,D,!1,d,O,V):d==null?o.originalUnstuff(M,f,k,D):o.unstuff(M,f,k,D,!1,d,O,V))}},readTiles:function(c,u,f){var d=u.headerInfo,p=d.width,g=d.height,h=d.microBlockSize,A=d.imageType,x=r.getDataTypeSize(A),C=Math.ceil(p/h),T=Math.ceil(g/h);u.pixels.numBlocksY=T,u.pixels.numBlocksX=C,u.pixels.ptr=0;var E=0,S=0,v=0,D=0,O=0,M=0,L=0,N=0,_=0,b=0,w=0,I=0,R=0,F=0,k=0,V=0,G,U,q,Y,Q,W,K=new f(h*h),J=g%h||h,_e=p%h||h,xe,se,Ae=d.numDims,me,Se=u.pixels.resultMask,Ie=u.pixels.resultPixels;for(v=0;v1&&(Ie=new f(u.pixels.resultPixels.buffer,p*g*me*x,p*g)),L=c.byteLength-u.ptr,G=new DataView(c,u.ptr,Math.min(10,L)),U={},V=0,N=G.getUint8(0),V++,_=N>>6&255,b=N>>2&15,b!==(D*h>>3&15))throw"integrity issue";if(W=N&3,W>3)throw u.ptr+=V,"Invalid block encoding ("+W+")";if(W===2){u.counter.constant++,u.ptr+=V;continue}else if(W===0){if(u.counter.uncompressed++,u.ptr+=V,R=O*M*x,F=c.byteLength-u.ptr,R=R1)for(g=0;g=-128&&u<=127;break;case 1:f=u>=0&&u<=255;break;case 2:f=u>=-32768&&u<=32767;break;case 3:f=u>=0&&u<=65536;break;case 4:f=u>=-2147483648&&u<=2147483647;break;case 5:f=u>=0&&u<=4294967296;break;case 6:f=u>=-34027999387901484e22&&u<=34027999387901484e22;break;case 7:f=u>=5e-324&&u<=17976931348623157e292;break;default:f=!1}return f},getDataTypeSize:function(c){var u=0;switch(c){case 0:case 1:u=1;break;case 2:case 3:u=2;break;case 4:case 5:case 6:u=4;break;case 7:u=8;break;default:u=c}return u},getDataTypeUsed:function(c,u){var f=c;switch(c){case 2:case 4:f=c-u;break;case 3:case 5:f=c-2*u;break;case 6:u===0?f=c:u===1?f=2:f=1;break;case 7:u===0?f=c:f=c-2*u+1;break;default:f=c;break}return f},getOnePixel:function(c,u,f,d){var p=0;switch(f){case 0:p=d.getInt8(u);break;case 1:p=d.getUint8(u);break;case 2:p=d.getInt16(u,!0);break;case 3:p=d.getUint16(u,!0);break;case 4:p=d.getInt32(u,!0);break;case 5:p=d.getUInt32(u,!0);break;case 6:p=d.getFloat32(u,!0);break;case 7:p=d.getFloat64(u,!0);break;default:throw"the decoder does not understand this pixel type"}return p}},s=function(c,u,f){this.val=c,this.left=u,this.right=f},a={decode:function(c,u){u=u||{};var f=u.noDataValue,d=0,p={};if(p.ptr=u.inputOffset||0,p.pixels={},!!r.readHeaderInfo(c,p)){var g=p.headerInfo,h=g.fileVersion,A=r.getDataTypeArray(g.imageType);r.readMask(c,p),g.numValidPixel!==g.width*g.height&&!p.pixels.resultMask&&(p.pixels.resultMask=u.maskData);var x=g.width*g.height;if(p.pixels.resultPixels=new A(x*g.numDims),p.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},g.numValidPixel!==0)if(g.zMax===g.zMin)r.constructConstantSurface(p);else if(h>=4&&r.checkMinMaxRanges(c,p))r.constructConstantSurface(p);else{var C=new DataView(c,p.ptr,2),T=C.getUint8(0);if(p.ptr++,T)r.readDataOneSweep(c,p,A);else if(h>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var E=C.getUint8(1);if(p.ptr++,p.encodeMode=E,E>2||h<4&&E>1)throw"Invalid Huffman flag "+E;E?r.readHuffman(c,p,A):r.readTiles(c,p,A)}else r.readTiles(c,p,A)}p.eofOffset=p.ptr;var S;u.inputOffset?(S=p.headerInfo.blobSize+u.inputOffset-p.ptr,Math.abs(S)>=1&&(p.eofOffset=u.inputOffset+p.headerInfo.blobSize)):(S=p.headerInfo.blobSize-p.ptr,Math.abs(S)>=1&&(p.eofOffset=p.headerInfo.blobSize));var v={width:g.width,height:g.height,pixelData:p.pixels.resultPixels,minValue:g.zMin,maxValue:g.zMax,validPixelCount:g.numValidPixel,dimCount:g.numDims,dimStats:{minValues:g.minValues,maxValues:g.maxValues},maskData:p.pixels.resultMask};if(p.pixels.resultMask&&r.isValidPixelValue(g.imageType,f)){var D=p.pixels.resultMask;for(d=0;d1&&T.fileInfo.mask&&T.fileInfo.mask.numBytes>0&&h.push(T.maskData),d++,C.pixels.push(T.pixelData),C.statistics.push({minValue:T.minValue,maxValue:T.maxValue,noDataValue:T.noDataValue,dimStats:T.dimStats})}var E,S,v;if(f>1&&h.length>1){for(v=C.width*C.height,C.bandMasks=h,x=new Uint8Array(v),x.set(h[0]),E=1;E{KAe.exports={webm:"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK",mp4:"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"}});var QAe=Zc((YYi,ZAe)=>{var{webm:Cyt,mp4:Tyt}=JAe(),cK=()=>typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,lK=()=>"wakeLock"in navigator,uK=class{constructor(){if(this.enabled=!1,lK()){this._wakeLock=null;let t=()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()};document.addEventListener("visibilitychange",t),document.addEventListener("fullscreenchange",t)}else cK()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",Cyt),this._addSourceToVideo(this.noSleepVideo,"mp4",Tyt),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())})}))}_addSourceToVideo(t,n,i){var o=document.createElement("source");o.src=i,o.type=`video/${n}`,t.appendChild(o)}get isEnabled(){return this.enabled}enable(){return lK()?navigator.wakeLock.request("screen").then(t=>{this._wakeLock=t,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",()=>{console.log("Wake Lock released.")})}).catch(t=>{throw this.enabled=!1,console.error(`${t.name}, ${t.message}`),t}):cK()?(this.disable(),console.warn(` + NoSleep enabled for older iOS devices. This can interrupt + active or long-running network requests from completing successfully. + See https://github.com/richtr/NoSleep.js/issues/15 for more details. + `),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(n=>(this.enabled=!0,n)).catch(n=>{throw this.enabled=!1,n})}disable(){lK()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):cK()?this.noSleepTimer&&(console.warn(` + NoSleep now disabled for older iOS devices. + `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}};ZAe.exports=uK});var qyt={};Txe(qyt,{AlphaMode:()=>km,AlphaPipelineStage:()=>Z1,Animation:()=>a2,AnimationViewModel:()=>c2,Appearance:()=>eo,ApproximateTerrainHeights:()=>ri,ArcGISTiledElevationTerrainProvider:()=>lX,ArcGisBaseMapType:()=>rm,ArcGisMapServerImageryProvider:()=>Ah,ArcGisMapService:()=>Tu,ArcType:()=>Jt,ArticulationStageType:()=>Ka,AssociativeArray:()=>Et,AttributeCompression:()=>jn,AttributeType:()=>sn,AutoExposure:()=>hN,AutomaticUniforms:()=>kh,Axis:()=>ao,AxisAlignedBoundingBox:()=>sg,B3dmLoader:()=>p1,B3dmParser:()=>d1,BaseLayerPicker:()=>u2,BaseLayerPickerViewModel:()=>l2,BatchTable:()=>z0,BatchTableHierarchy:()=>hA,BatchTexture:()=>Oc,BatchTexturePipelineStage:()=>Q1,Billboard:()=>uo,BillboardCollection:()=>eu,BillboardGraphics:()=>ka,BillboardVisualizer:()=>oI,BingMapsGeocoderService:()=>fX,BingMapsImageryProvider:()=>Gb,BingMapsStyle:()=>zb,BlendEquation:()=>ma,BlendFunction:()=>Co,BlendOption:()=>To,BlendingState:()=>mn,BoundingRectangle:()=>Ke,BoundingSphere:()=>ae,BoundingSphereState:()=>ut,BoxEmitter:()=>YY,BoxGeometry:()=>ol,BoxGeometryUpdater:()=>CP,BoxGraphics:()=>eA,BoxOutlineGeometry:()=>id,BrdfLutGenerator:()=>hL,Buffer:()=>mt,BufferLoader:()=>xA,BufferUsage:()=>Fe,CPUStylingPipelineStage:()=>nO,CallbackProperty:()=>fd,Camera:()=>so,CameraEventAggregator:()=>TN,CameraEventType:()=>Oi,CameraFlightPath:()=>_L,Cartesian2:()=>H,Cartesian3:()=>m,Cartesian4:()=>re,Cartographic:()=>he,CartographicGeocoderService:()=>qF,CatmullRomSpline:()=>mX,Cesium3DContentGroup:()=>mA,Cesium3DTile:()=>pf,Cesium3DTileBatchTable:()=>_p,Cesium3DTileColorBlendMode:()=>ul,Cesium3DTileContent:()=>qY,Cesium3DTileContentFactory:()=>qA,Cesium3DTileContentState:()=>Uo,Cesium3DTileContentType:()=>ss,Cesium3DTileFeature:()=>xs,Cesium3DTileFeatureTable:()=>Ed,Cesium3DTileOptimizationHint:()=>lf,Cesium3DTileOptimizations:()=>MM,Cesium3DTilePass:()=>Po,Cesium3DTilePassState:()=>Nf,Cesium3DTilePointFeature:()=>Vp,Cesium3DTileRefine:()=>Lo,Cesium3DTileStyle:()=>k_,Cesium3DTileStyleEngine:()=>UM,Cesium3DTilesInspector:()=>_2,Cesium3DTilesInspectorViewModel:()=>p2,Cesium3DTilesVoxelProvider:()=>QY,Cesium3DTileset:()=>Ca,Cesium3DTilesetBaseTraversal:()=>WM,Cesium3DTilesetCache:()=>LM,Cesium3DTilesetGraphics:()=>aA,Cesium3DTilesetHeatmap:()=>NM,Cesium3DTilesetMetadata:()=>ty,Cesium3DTilesetMostDetailedTraversal:()=>zM,Cesium3DTilesetSkipTraversal:()=>qM,Cesium3DTilesetStatistics:()=>t_,Cesium3DTilesetTraversal:()=>ws,Cesium3DTilesetVisualizer:()=>XM,CesiumInspector:()=>A2,CesiumInspectorViewModel:()=>y2,CesiumTerrainProvider:()=>e0,CesiumWidget:()=>jN,Check:()=>Qc,CheckerboardMaterialProperty:()=>wE,CircleEmitter:()=>iF,CircleGeometry:()=>hX,CircleOutlineGeometry:()=>pX,ClassificationModelDrawCommand:()=>O1,ClassificationPipelineStage:()=>$1,ClassificationPrimitive:()=>yT,ClassificationType:()=>zn,ClearCommand:()=>ii,ClippingPlane:()=>OA,ClippingPlaneCollection:()=>os,Clock:()=>Ud,ClockRange:()=>Pr,ClockStep:()=>fo,ClockViewModel:()=>i2,CloudCollection:()=>oq,CloudType:()=>xS,Color:()=>z,ColorBlendMode:()=>Xa,ColorGeometryInstanceAttribute:()=>Vt,ColorMaterialProperty:()=>Ut,Command:()=>KX,ComponentDatatype:()=>X,Composite3DTileContent:()=>DP,CompositeEntityCollection:()=>c9,CompositeMaterialProperty:()=>DE,CompositePositionProperty:()=>Qs,CompositeProperty:()=>ec,CompressedTextureBuffer:()=>gw,ComputeCommand:()=>zu,ComputeEngine:()=>iw,ConditionsExpression:()=>ZN,ConeEmitter:()=>sq,ConstantPositionProperty:()=>wc,ConstantProperty:()=>$n,ConstantSpline:()=>A1,ContentMetadata:()=>CM,Context:()=>ZD,ContextLimits:()=>kt,CoplanarPolygonGeometry:()=>OR,CoplanarPolygonGeometryLibrary:()=>Kp,CoplanarPolygonOutlineGeometry:()=>mf,CornerType:()=>Ii,CorridorGeometry:()=>lx,CorridorGeometryLibrary:()=>Ni,CorridorGeometryUpdater:()=>iR,CorridorGraphics:()=>nA,CorridorOutlineGeometry:()=>nR,Credit:()=>It,CreditDisplay:()=>xL,CubeMap:()=>Ua,CubeMapFace:()=>Dm,CubicRealPolynomial:()=>V0,CullFace:()=>_i,CullingVolume:()=>Kr,CumulusCloud:()=>Mu,CustomDataSource:()=>cR,CustomHeightmapTerrainProvider:()=>_X,CustomShader:()=>IC,CustomShaderMode:()=>Fp,CustomShaderPipelineStage:()=>lO,CustomShaderTranslucencyMode:()=>Vg,CylinderGeometry:()=>lR,CylinderGeometryLibrary:()=>fx,CylinderGeometryUpdater:()=>fR,CylinderGraphics:()=>iA,CylinderOutlineGeometry:()=>uR,CzmlDataSource:()=>CR,DataSource:()=>Dr,DataSourceClock:()=>Vd,DataSourceCollection:()=>TR,DataSourceDisplay:()=>cB,DebugAppearance:()=>aq,DebugCameraPrimitive:()=>Th,DebugInspector:()=>PN,DebugModelMatrixPrimitive:()=>rF,DefaultProxy:()=>gX,DepthFunction:()=>za,DepthPlane:()=>DL,DequantizationPipelineStage:()=>fO,DerivedCommand:()=>M_,DeveloperError:()=>fe,DeviceOrientationCameraController:()=>PL,DirectionalLight:()=>cq,DiscardEmptyTileImagePolicy:()=>Hb,DiscardMissingTileImagePolicy:()=>kB,DistanceDisplayCondition:()=>Dt,DistanceDisplayConditionGeometryInstanceAttribute:()=>kn,DoubleEndedPriorityQueue:()=>mC,DoublyLinkedList:()=>BM,DracoLoader:()=>bp,DrawCommand:()=>it,DynamicGeometryBatch:()=>Ax,DynamicGeometryUpdater:()=>si,EarthOrientationParameters:()=>pw,EarthOrientationParametersSample:()=>X_,EasingFunction:()=>Or,EllipseGeometry:()=>Vc,EllipseGeometryLibrary:()=>El,EllipseGeometryUpdater:()=>bR,EllipseGraphics:()=>oA,EllipseOutlineGeometry:()=>lu,Ellipsoid:()=>oe,EllipsoidGeodesic:()=>Ku,EllipsoidGeometry:()=>Is,EllipsoidGeometryUpdater:()=>wR,EllipsoidGraphics:()=>rA,EllipsoidOutlineGeometry:()=>nu,EllipsoidPrimitive:()=>cL,EllipsoidRhumbLine:()=>pa,EllipsoidSurfaceAppearance:()=>lq,EllipsoidTangentPlane:()=>ha,EllipsoidTerrainProvider:()=>S_,EllipsoidalOccluder:()=>a_,Empty3DTileContent:()=>fE,EncodedCartesian3:()=>Wn,Entity:()=>Yo,EntityCluster:()=>iu,EntityCollection:()=>vs,EntityView:()=>uB,Event:()=>ge,EventHelper:()=>Sr,Expression:()=>Zu,ExpressionNodeType:()=>gt,ExtrapolationType:()=>ru,FeatureDetection:()=>Ht,FeatureIdPipelineStage:()=>Ug,Fog:()=>OL,ForEach:()=>Oe,FrameRateMonitor:()=>cF,FrameState:()=>ML,Framebuffer:()=>Hs,FramebufferManager:()=>di,FrustumCommands:()=>NL,FrustumGeometry:()=>qx,FrustumOutlineGeometry:()=>EL,Fullscreen:()=>lr,FullscreenButton:()=>C2,FullscreenButtonViewModel:()=>x2,GeoJsonDataSource:()=>mB,GeoJsonLoader:()=>_1,GeocodeType:()=>o0,Geocoder:()=>S2,GeocoderService:()=>zS,GeocoderViewModel:()=>b2,GeographicProjection:()=>Si,GeographicTilingScheme:()=>zi,Geometry:()=>ft,Geometry3DTileContent:()=>PP,GeometryAttribute:()=>ve,GeometryAttributes:()=>hn,GeometryFactory:()=>yX,GeometryInstance:()=>Tt,GeometryInstanceAttribute:()=>Ha,GeometryOffsetAttribute:()=>on,GeometryPipeline:()=>Nn,GeometryPipelineStage:()=>pO,GeometryType:()=>Hu,GeometryUpdater:()=>ai,GeometryVisualizer:()=>KR,GetFeatureInfoFormat:()=>Gx,Globe:()=>oL,GlobeDepth:()=>FL,GlobeSurfaceShaderSet:()=>VB,GlobeSurfaceTile:()=>Rf,GlobeSurfaceTileProvider:()=>XB,GlobeTranslucency:()=>KB,GlobeTranslucencyFramebuffer:()=>UL,GlobeTranslucencyState:()=>RL,GltfBufferViewLoader:()=>OT,GltfDracoLoader:()=>MT,GltfImageLoader:()=>RT,GltfIndexBufferLoader:()=>BT,GltfJsonLoader:()=>NT,GltfLoader:()=>zm,GltfLoaderUtil:()=>ml,GltfStructuralMetadataLoader:()=>c1,GltfTextureLoader:()=>FT,GltfVertexBufferLoader:()=>UT,GoogleEarthEnterpriseImageryProvider:()=>gq,GoogleEarthEnterpriseMapsProvider:()=>qb,GoogleEarthEnterpriseMetadata:()=>_m,GoogleEarthEnterpriseTerrainData:()=>HS,GoogleEarthEnterpriseTerrainProvider:()=>TX,GoogleEarthEnterpriseTileInformation:()=>uF,GpxDataSource:()=>gB,GregorianDate:()=>jh,GridImageryProvider:()=>yq,GridMaterialProperty:()=>UE,GroundGeometryUpdater:()=>qn,GroundPolylineGeometry:()=>J0,GroundPolylinePrimitive:()=>ad,GroundPrimitive:()=>bc,GroupMetadata:()=>EE,HeadingPitchRange:()=>du,HeadingPitchRoll:()=>Fa,Heap:()=>fw,HeightReference:()=>qe,HeightmapEncoding:()=>Pf,HeightmapTerrainData:()=>ba,HeightmapTessellator:()=>Nb,HermitePolynomialApproximation:()=>dR,HermiteSpline:()=>Lg,HilbertOrder:()=>vT,HomeButton:()=>E2,HomeButtonViewModel:()=>T2,HorizontalOrigin:()=>pi,I3SDataProvider:()=>AC,I3SFeature:()=>fF,I3SField:()=>dF,I3SGeometry:()=>TS,I3SLayer:()=>Zy,I3SNode:()=>ES,I3dmLoader:()=>y1,I3dmParser:()=>g1,Iau2000Orientation:()=>sL,Iau2006XysData:()=>_w,Iau2006XysSample:()=>O0,IauOrientationAxes:()=>aL,IauOrientationParameters:()=>rL,ImageBasedLighting:()=>dA,ImageBasedLightingPipelineStage:()=>N1,ImageMaterialProperty:()=>fg,Imagery:()=>eS,ImageryLayer:()=>Ls,ImageryLayerCollection:()=>JB,ImageryLayerFeatureInfo:()=>om,ImageryProvider:()=>Gc,ImageryState:()=>ui,Implicit3DTileContent:()=>kT,ImplicitAvailabilityBitstream:()=>IT,ImplicitMetadataView:()=>PT,ImplicitSubdivisionScheme:()=>Vr,ImplicitSubtree:()=>IA,ImplicitSubtreeCache:()=>eF,ImplicitSubtreeMetadata:()=>OP,ImplicitTileCoordinates:()=>sx,ImplicitTileset:()=>ny,IndexDatatype:()=>Ue,InfoBox:()=>v2,InfoBoxViewModel:()=>w2,InspectorShared:()=>Da,InstanceAttributeSemantic:()=>kr,InstancingPipelineStage:()=>q1,InterpolationAlgorithm:()=>EX,InterpolationType:()=>Cd,Intersect:()=>$t,IntersectionTests:()=>qi,Intersections2D:()=>z_,Interval:()=>Ac,InvertClassification:()=>fS,Ion:()=>md,IonGeocoderService:()=>JF,IonImageryProvider:()=>Bf,IonResource:()=>qs,IonWorldImageryStyle:()=>am,Iso8601:()=>Ge,JobScheduler:()=>BL,JobType:()=>ga,JsonMetadataTable:()=>vp,JulianDate:()=>ee,KTX2Transcoder:()=>yw,KeyboardEventModifier:()=>aa,KeyframeNode:()=>Ki,KmlCamera:()=>yB,KmlDataSource:()=>LB,KmlLookAt:()=>vB,KmlTour:()=>DB,KmlTourFlyTo:()=>OB,KmlTourWait:()=>MB,Label:()=>jg,LabelCollection:()=>Xm,LabelGraphics:()=>cd,LabelStyle:()=>Fo,LabelVisualizer:()=>JR,LagrangePolynomialApproximation:()=>mR,LeapSecond:()=>Vi,Light:()=>Cq,LightingModel:()=>Gm,LightingPipelineStage:()=>gO,LinearApproximation:()=>mx,LinearSpline:()=>Bg,ManagedArray:()=>Pc,MapMode2D:()=>Ml,MapProjection:()=>wX,MapboxImageryProvider:()=>Kb,MapboxStyleImageryProvider:()=>Tq,Material:()=>ki,MaterialAppearance:()=>ro,MaterialPipelineStage:()=>AO,MaterialProperty:()=>jo,Math:()=>P,Matrix2:()=>Qi,Matrix3:()=>Z,Matrix4:()=>B,Megatexture:()=>SS,MetadataClass:()=>yd,MetadataClassProperty:()=>xg,MetadataComponentType:()=>nn,MetadataEntity:()=>Fn,MetadataEnum:()=>XP,MetadataEnumValue:()=>qP,MetadataPipelineStage:()=>ef,MetadataSchema:()=>Ad,MetadataSchemaLoader:()=>VT,MetadataSemantic:()=>PA,MetadataTable:()=>fl,MetadataTableProperty:()=>RP,MetadataType:()=>Wt,MipmapHint:()=>Im,Model:()=>wd,Model3DTileContent:()=>jm,ModelAlphaOptions:()=>LO,ModelAnimation:()=>E1,ModelAnimationChannel:()=>T1,ModelAnimationCollection:()=>b1,ModelAnimationLoop:()=>_l,ModelAnimationState:()=>bd,ModelArticulation:()=>U1,ModelArticulationStage:()=>F1,ModelClippingPlanesPipelineStage:()=>z1,ModelColorPipelineStage:()=>Fg,ModelComponents:()=>Nt,ModelDrawCommand:()=>M1,ModelFeature:()=>S1,ModelFeatureTable:()=>v1,ModelGraphics:()=>lp,ModelLightingOptions:()=>GO,ModelMatrixUpdateStage:()=>X1,ModelNode:()=>H1,ModelRenderResources:()=>NO,ModelRuntimeNode:()=>J1,ModelRuntimePrimitive:()=>RO,ModelSceneGraph:()=>jO,ModelSilhouettePipelineStage:()=>VO,ModelSkin:()=>BO,ModelSplitterPipelineStage:()=>zO,ModelStatistics:()=>YO,ModelType:()=>Bo,ModelUtility:()=>Zt,ModelVisualizer:()=>QR,Moon:()=>uL,MorphTargetsPipelineStage:()=>CO,MorphWeightSpline:()=>vX,MortonOrder:()=>iy,Multiple3DTileContent:()=>bM,MultisampleFramebuffer:()=>QD,NavigationHelpButton:()=>I2,NavigationHelpButtonViewModel:()=>D2,NearFarScalar:()=>Lt,NeverTileDiscardPolicy:()=>bq,NodeRenderResources:()=>HO,NodeStatisticsPipelineStage:()=>K1,NodeTransformationProperty:()=>sA,OIT:()=>kL,Occluder:()=>fL,OctahedralProjectedCubeMap:()=>dd,OffsetGeometryInstanceAttribute:()=>Yi,OpenCageGeocoderService:()=>IX,OpenStreetMapImageryProvider:()=>xC,OrderedGroundPrimitiveCollection:()=>ER,OrientedBoundingBox:()=>Mn,OrthographicFrustum:()=>tn,OrthographicOffCenterFrustum:()=>xr,Packable:()=>PX,PackableForInterpolation:()=>OX,Particle:()=>wS,ParticleBurst:()=>wq,ParticleEmitter:()=>vq,ParticleSystem:()=>Dq,Pass:()=>be,PassState:()=>Va,PathGraphics:()=>up,PathVisualizer:()=>eB,PeliasGeocoderService:()=>KF,PerInstanceColorAppearance:()=>rn,PerformanceDisplay:()=>R_,PerformanceWatchdog:()=>O2,PerformanceWatchdogViewModel:()=>P2,PerspectiveFrustum:()=>bi,PerspectiveOffCenterFrustum:()=>jc,PickDepth:()=>LL,PickDepthFramebuffer:()=>HL,PickFramebuffer:()=>jL,Picking:()=>KL,PickingPipelineStage:()=>TO,PinBuilder:()=>C_,PixelDatatype:()=>Je,PixelFormat:()=>ct,Plane:()=>un,PlaneGeometry:()=>vR,PlaneGeometryUpdater:()=>IR,PlaneGraphics:()=>hP,PlaneOutlineGeometry:()=>DR,PntsLoader:()=>rE,PntsParser:()=>zA,PointCloud:()=>gF,PointCloudEyeDomeLighting:()=>Ip,PointCloudShading:()=>Hm,PointCloudStylingPipelineStage:()=>bO,PointGraphics:()=>cA,PointPrimitive:()=>Ds,PointPrimitiveCollection:()=>RE,PointVisualizer:()=>nB,PolygonGeometry:()=>Ex,PolygonGeometryLibrary:()=>Yn,PolygonGeometryUpdater:()=>RR,PolygonGraphics:()=>ld,PolygonHierarchy:()=>vc,PolygonOutlineGeometry:()=>MR,PolygonPipeline:()=>li,Polyline:()=>sf,PolylineArrowMaterialProperty:()=>kE,PolylineCollection:()=>Id,PolylineColorAppearance:()=>Fr,PolylineDashMaterialProperty:()=>HE,PolylineGeometry:()=>x_,PolylineGeometryUpdater:()=>rB,PolylineGlowMaterialProperty:()=>WE,PolylineGraphics:()=>Ga,PolylineMaterialAppearance:()=>js,PolylineOutlineMaterialProperty:()=>fy,PolylinePipeline:()=>Di,PolylineVisualizer:()=>aB,PolylineVolumeGeometry:()=>NR,PolylineVolumeGeometryLibrary:()=>Bd,PolylineVolumeGeometryUpdater:()=>kR,PolylineVolumeGraphics:()=>lA,PolylineVolumeOutlineGeometry:()=>VR,PositionProperty:()=>ap,PositionPropertyArray:()=>f_,PostProcessStage:()=>_o,PostProcessStageCollection:()=>yN,PostProcessStageComposite:()=>Yc,PostProcessStageLibrary:()=>Uf,PostProcessStageSampleMode:()=>wu,PostProcessStageTextureCache:()=>rC,Primitive:()=>wn,PrimitiveCollection:()=>Tl,PrimitiveLoadPlan:()=>LA,PrimitiveOutlineGenerator:()=>BA,PrimitiveOutlinePipelineStage:()=>vO,PrimitivePipeline:()=>q0,PrimitiveRenderResources:()=>WO,PrimitiveState:()=>dr,PrimitiveStatisticsPipelineStage:()=>DO,PrimitiveType:()=>Le,ProjectionPicker:()=>R2,ProjectionPickerViewModel:()=>M2,Property:()=>j,PropertyArray:()=>YE,PropertyAttribute:()=>RA,PropertyAttributeProperty:()=>o1,PropertyBag:()=>cl,PropertyTable:()=>Mc,PropertyTexture:()=>MA,PropertyTextureProperty:()=>i1,ProviderViewModel:()=>hs,Proxy:()=>MX,QuadraticRealPolynomial:()=>Cc,QuadtreeOccluders:()=>ZB,QuadtreePrimitive:()=>iL,QuadtreeTile:()=>QB,QuadtreeTileLoadState:()=>Rs,QuadtreeTileProvider:()=>Bq,QuantizedMeshTerrainData:()=>TC,QuarticRealPolynomial:()=>UI,Quaternion:()=>Ne,QuaternionSpline:()=>C1,Queue:()=>Zg,Ray:()=>Dn,Rectangle:()=>le,RectangleCollisionChecker:()=>vx,RectangleGeometry:()=>Sx,RectangleGeometryLibrary:()=>as,RectangleGeometryUpdater:()=>zR,RectangleGraphics:()=>ud,RectangleOutlineGeometry:()=>ZA,ReferenceFrame:()=>no,ReferenceProperty:()=>d_,RenderState:()=>ze,Renderbuffer:()=>Gl,RenderbufferFormat:()=>gc,Request:()=>Ho,RequestErrorEvent:()=>Sm,RequestScheduler:()=>La,RequestState:()=>ei,RequestType:()=>Xr,Resource:()=>we,ResourceCache:()=>Bi,ResourceCacheKey:()=>hl,ResourceCacheStatistics:()=>QP,ResourceLoader:()=>io,ResourceLoaderState:()=>vt,Rotation:()=>xf,RuntimeError:()=>de,S2Cell:()=>xp,SDFSettings:()=>bs,SampledPositionProperty:()=>ea,SampledProperty:()=>au,Sampler:()=>dn,ScaledPositionProperty:()=>ah,Scene:()=>MN,SceneFramebuffer:()=>Qx,SceneMode:()=>ne,SceneMode2DPipelineStage:()=>IO,SceneModePicker:()=>L2,SceneModePickerViewModel:()=>B2,SceneTransforms:()=>Xi,SceneTransitioner:()=>CN,ScreenSpaceCameraController:()=>SN,ScreenSpaceEventHandler:()=>Du,ScreenSpaceEventType:()=>Cn,SelectedFeatureIdPipelineStage:()=>kg,SelectionIndicator:()=>U2,SelectionIndicatorViewModel:()=>F2,ShaderBuilder:()=>L0,ShaderCache:()=>jD,ShaderDestination:()=>Te,ShaderFunction:()=>tI,ShaderProgram:()=>Kt,ShaderSource:()=>He,ShaderStruct:()=>eI,ShadowMap:()=>N_,ShadowMapShader:()=>wh,ShadowMode:()=>xn,ShadowVolumeAppearance:()=>ql,ShowGeometryInstanceAttribute:()=>An,Simon1994PlanetaryPositions:()=>ng,SimplePolylineGeometry:()=>RX,SingleTileImageryProvider:()=>Jb,SkinningPipelineStage:()=>OO,SkyAtmosphere:()=>LN,SkyBox:()=>UN,SpatialNode:()=>AF,SphereEmitter:()=>Nq,SphereGeometry:()=>BX,SphereOutlineGeometry:()=>Zp,Spherical:()=>hR,Spline:()=>oo,SplitDirection:()=>Rc,Splitter:()=>vS,StaticGeometryColorBatch:()=>Ef,StaticGeometryPerMaterialBatch:()=>bf,StaticGroundGeometryColorBatch:()=>hb,StaticGroundGeometryPerMaterialBatch:()=>HR,StaticGroundPolylinePerMaterialBatch:()=>sB,StaticOutlineGeometryBatch:()=>gb,StencilConstants:()=>Ft,StencilFunction:()=>Hn,StencilOperation:()=>ht,SteppedSpline:()=>x1,StripeMaterialProperty:()=>XE,StripeOrientation:()=>zd,StructuralMetadata:()=>ya,StyleCommandsNeeded:()=>Sd,StyleExpression:()=>Fq,Sun:()=>WN,SunLight:()=>Qh,SunPostProcess:()=>DN,SupportedImageFormats:()=>l1,SvgPathBindingHandler:()=>t2,TaskProcessor:()=>hi,Terrain:()=>EF,TerrainData:()=>im,TerrainEncoding:()=>sc,TerrainExaggeration:()=>Tc,TerrainFillMesh:()=>oS,TerrainMesh:()=>Mf,TerrainOffsetProperty:()=>uA,TerrainProvider:()=>zr,TerrainQuantization:()=>Ms,TerrainState:()=>po,Texture:()=>Bt,TextureAtlas:()=>Wg,TextureCache:()=>YD,TextureMagnificationFilter:()=>xi,TextureManager:()=>GF,TextureMinificationFilter:()=>cn,TextureUniform:()=>WX,TextureWrap:()=>vn,TileAvailability:()=>gm,TileBoundingRegion:()=>df,TileBoundingS2Cell:()=>PM,TileBoundingSphere:()=>Qp,TileBoundingVolume:()=>Gq,TileCoordinatesImageryProvider:()=>SF,TileDiscardPolicy:()=>jq,TileEdge:()=>yn,TileImagery:()=>tS,TileMapServiceImageryProvider:()=>xh,TileMetadata:()=>TM,TileOrientedBoundingBox:()=>hf,TileProviderError:()=>yi,TileReplacementQueue:()=>$B,TileSelectionResult:()=>Qn,TileState:()=>Yq,Tileset3DTileContent:()=>KO,TilesetMetadata:()=>OM,TilesetPipelineStage:()=>B1,TilingScheme:()=>LX,TimeConstants:()=>Zn,TimeDynamicImagery:()=>Wx,TimeDynamicPointCloud:()=>RS,TimeInterval:()=>Tn,TimeIntervalCollection:()=>vr,TimeIntervalCollectionPositionProperty:()=>m_,TimeIntervalCollectionProperty:()=>h_,TimeStandard:()=>Jn,Timeline:()=>z2,TimelineHighlightRange:()=>V2,TimelineTrack:()=>k2,Tipsify:()=>GI,ToggleButtonViewModel:()=>l0,Tonemapper:()=>Yy,Transforms:()=>Rt,TranslationRotationScale:()=>dg,TranslucentTileClassification:()=>qL,TridiagonalSystemSolver:()=>XT,TrustedServers:()=>eT,TweenCollection:()=>lC,UniformState:()=>JD,UniformType:()=>LS,UrlTemplateImageryProvider:()=>Bs,VERSION:()=>Yyt,VRButton:()=>G2,VRButtonViewModel:()=>H2,VRTheWorldTerrainProvider:()=>FX,VaryingType:()=>jX,Vector3DTileBatch:()=>Fm,Vector3DTileClampedPolylines:()=>yM,Vector3DTileContent:()=>xM,Vector3DTileGeometry:()=>yp,Vector3DTilePoints:()=>fM,Vector3DTilePolygons:()=>dM,Vector3DTilePolylines:()=>YA,Vector3DTilePrimitive:()=>gA,VelocityOrientationProperty:()=>_R,VelocityVectorProperty:()=>gx,VertexArray:()=>oi,VertexArrayFacade:()=>ep,VertexAttributeSemantic:()=>bt,VertexFormat:()=>Pe,VerticalOrigin:()=>On,VideoSynchronizer:()=>UX,View:()=>tC,Viewer:()=>fK,ViewportQuad:()=>Kq,Visibility:()=>sr,Visualizer:()=>J7,VoxelBoxShape:()=>Oh,VoxelContent:()=>tF,VoxelCylinderShape:()=>Mh,VoxelEllipsoidShape:()=>hC,VoxelInspector:()=>j2,VoxelInspectorViewModel:()=>W2,VoxelPrimitive:()=>FS,VoxelProvider:()=>$q,VoxelRenderResources:()=>VF,VoxelShape:()=>eX,VoxelShapeType:()=>Gi,VoxelTraversal:()=>BS,VulkanConstants:()=>VX,WallGeometry:()=>WR,WallGeometryLibrary:()=>Dx,WallGeometryUpdater:()=>qR,WallGraphics:()=>fp,WallOutlineGeometry:()=>YR,WebGLConstants:()=>te,WebMapServiceImageryProvider:()=>Zb,WebMapTileServiceImageryProvider:()=>Qb,WebMercatorProjection:()=>vi,WebMercatorTilingScheme:()=>Mr,WindingOrder:()=>qr,WireframeIndexGenerator:()=>iE,WireframePipelineStage:()=>MO,_shadersAcesTonemappingStage:()=>JL,_shadersAdditiveBlend:()=>wN,_shadersAdjustTranslucentFS:()=>dS,_shadersAllMaterialAppearanceFS:()=>aI,_shadersAllMaterialAppearanceVS:()=>cI,_shadersAmbientOcclusionGenerate:()=>ZL,_shadersAmbientOcclusionModulate:()=>QL,_shadersAspectRampMaterial:()=>mI,_shadersAtmosphereCommon:()=>w_,_shadersBasicMaterialAppearanceFS:()=>lI,_shadersBasicMaterialAppearanceVS:()=>uI,_shadersBillboardCollectionFS:()=>JO,_shadersBillboardCollectionVS:()=>ZO,_shadersBlackAndWhite:()=>$L,_shadersBloomComposite:()=>eN,_shadersBrdfLutGeneratorFS:()=>dL,_shadersBrightPass:()=>vN,_shadersBrightness:()=>tN,_shadersBumpMapMaterial:()=>hI,_shadersCPUStylingStageFS:()=>tO,_shadersCPUStylingStageVS:()=>eO,_shadersCheckerboardMaterial:()=>pI,_shadersCloudCollectionFS:()=>YN,_shadersCloudCollectionVS:()=>qN,_shadersCloudNoiseFS:()=>XN,_shadersCloudNoiseVS:()=>KN,_shadersCompareAndPackTranslucentDepth:()=>YL,_shadersCompositeOITFS:()=>VL,_shadersCompositeTranslucentClassification:()=>eC,_shadersContrastBias:()=>nN,_shadersCustomShaderStageFS:()=>oO,_shadersCustomShaderStageVS:()=>iO,_shadersCzmBuiltins:()=>M0,_shadersDepthOfField:()=>iN,_shadersDepthPlaneFS:()=>bL,_shadersDepthPlaneVS:()=>SL,_shadersDepthView:()=>oN,_shadersDepthViewPacked:()=>GX,_shadersDotMaterial:()=>_I,_shadersEdgeDetection:()=>rN,_shadersElevationBandMaterial:()=>gI,_shadersElevationContourMaterial:()=>yI,_shadersElevationRampMaterial:()=>AI,_shadersEllipsoidFS:()=>sS,_shadersEllipsoidSurfaceAppearanceFS:()=>sF,_shadersEllipsoidSurfaceAppearanceVS:()=>aF,_shadersEllipsoidVS:()=>aS,_shadersFXAA:()=>aN,_shadersFXAA3_11:()=>mN,_shadersFadeMaterial:()=>xI,_shadersFeatureIdStageFS:()=>rO,_shadersFeatureIdStageVS:()=>sO,_shadersFilmicTonemapping:()=>sN,_shadersGaussianBlur1D:()=>jy,_shadersGeometryStageFS:()=>dO,_shadersGeometryStageVS:()=>mO,_shadersGlobeFS:()=>FB,_shadersGlobeVS:()=>UB,_shadersGridMaterial:()=>CI,_shadersGroundAtmosphere:()=>Ub,_shadersHSBToRGB:()=>hv,_shadersHSLToRGB:()=>pv,_shadersImageBasedLightingStageFS:()=>L1,_shadersInstancingStageCommon:()=>G1,_shadersInstancingStageVS:()=>W1,_shadersIntersectBox:()=>OF,_shadersIntersectClippingPlanes:()=>PF,_shadersIntersectCylinder:()=>MF,_shadersIntersectDepth:()=>IF,_shadersIntersectEllipsoid:()=>RF,_shadersIntersection:()=>vC,_shadersIntersectionUtils:()=>DF,_shadersLegacyInstancingStageVS:()=>j1,_shadersLensFlare:()=>cN,_shadersLightingStageFS:()=>_O,_shadersMaterialStageFS:()=>yO,_shadersMegatexture:()=>UF,_shadersMetadataStageFS:()=>aO,_shadersMetadataStageVS:()=>cO,_shadersModelClippingPlanesStageFS:()=>k1,_shadersModelColorStageFS:()=>V1,_shadersModelFS:()=>D1,_shadersModelSilhouetteStageFS:()=>FO,_shadersModelSilhouetteStageVS:()=>UO,_shadersModelSplitterStageFS:()=>kO,_shadersModelVS:()=>I1,_shadersModifiedReinhardTonemapping:()=>lN,_shadersMorphTargetsStageVS:()=>xO,_shadersNightVision:()=>uN,_shadersNormalMapMaterial:()=>TI,_shadersOctahedralProjectionAtlasFS:()=>TP,_shadersOctahedralProjectionFS:()=>EP,_shadersOctahedralProjectionVS:()=>bP,_shadersOctree:()=>FF,_shadersPassThrough:()=>Rl,_shadersPassThroughDepth:()=>Hy,_shadersPerInstanceColorAppearanceFS:()=>MI,_shadersPerInstanceColorAppearanceVS:()=>RI,_shadersPerInstanceFlatColorAppearanceFS:()=>U0,_shadersPerInstanceFlatColorAppearanceVS:()=>BI,_shadersPointCloudEyeDomeLighting:()=>u1,_shadersPointCloudStylingStageVS:()=>EO,_shadersPointPrimitiveCollectionFS:()=>uy,_shadersPointPrimitiveCollectionVS:()=>oR,_shadersPolylineArrowMaterial:()=>EI,_shadersPolylineColorAppearanceVS:()=>tP,_shadersPolylineCommon:()=>Xl,_shadersPolylineDashMaterial:()=>bI,_shadersPolylineFS:()=>Q0,_shadersPolylineGlowMaterial:()=>SI,_shadersPolylineMaterialAppearanceVS:()=>nP,_shadersPolylineOutlineMaterial:()=>wI,_shadersPolylineShadowVolumeFS:()=>ZI,_shadersPolylineShadowVolumeMorphFS:()=>QI,_shadersPolylineShadowVolumeMorphVS:()=>$I,_shadersPolylineShadowVolumeVS:()=>eP,_shadersPolylineVS:()=>rM,_shadersPrimitiveOutlineStageFS:()=>wO,_shadersPrimitiveOutlineStageVS:()=>SO,_shadersRGBToHSB:()=>_v,_shadersRGBToHSL:()=>gv,_shadersRGBToXYZ:()=>yv,_shadersReinhardTonemapping:()=>fN,_shadersReprojectWebMercatorFS:()=>jB,_shadersReprojectWebMercatorVS:()=>YB,_shadersRimLightingMaterial:()=>vI,_shadersSelectedFeatureIdStageCommon:()=>nE,_shadersShadowVolumeAppearanceFS:()=>_T,_shadersShadowVolumeAppearanceVS:()=>VI,_shadersShadowVolumeFS:()=>ag,_shadersSilhouette:()=>dN,_shadersSkinningStageVS:()=>PO,_shadersSkyAtmosphereCommon:()=>_S,_shadersSkyAtmosphereFS:()=>RN,_shadersSkyAtmosphereVS:()=>BN,_shadersSkyBoxFS:()=>NN,_shadersSkyBoxVS:()=>FN,_shadersSlopeRampMaterial:()=>DI,_shadersStripeMaterial:()=>II,_shadersSunFS:()=>VN,_shadersSunTextureFS:()=>kN,_shadersSunVS:()=>zN,_shadersTexturedMaterialAppearanceFS:()=>fI,_shadersTexturedMaterialAppearanceVS:()=>dI,_shadersVector3DTileClampedPolylinesFS:()=>_M,_shadersVector3DTileClampedPolylinesVS:()=>pM,_shadersVector3DTilePolylinesVS:()=>mM,_shadersVectorTileVS:()=>wT,_shadersViewportQuadFS:()=>JN,_shadersViewportQuadVS:()=>x0,_shadersVoxelFS:()=>wF,_shadersVoxelVS:()=>vF,_shadersWater:()=>PI,_shadersXYZToRGB:()=>Av,_shadersacesTonemapping:()=>xv,_shadersalphaWeight:()=>Cv,_shadersantialias:()=>Tv,_shadersapproximateSphericalCoordinates:()=>Ev,_shadersbackFacing:()=>bv,_shadersbranchFreeTernary:()=>Sv,_shaderscascadeColor:()=>wv,_shaderscascadeDistance:()=>vv,_shaderscascadeMatrix:()=>Dv,_shaderscascadeWeights:()=>Iv,_shaderscolumbusViewMorph:()=>Pv,_shaderscomputePosition:()=>Ov,_shadersconvertUvToBox:()=>BF,_shadersconvertUvToCylinder:()=>LF,_shadersconvertUvToEllipsoid:()=>NF,_shaderscosineAndSine:()=>Mv,_shadersdecompressTextureCoordinates:()=>Rv,_shadersdefaultPbrMaterial:()=>Bv,_shadersdegreesPerRadian:()=>Cw,_shadersdepthClamp:()=>Lv,_shadersdepthRange:()=>Tw,_shadersdepthRangeStruct:()=>rv,_shaderseastNorthUpToEyeCoordinates:()=>Nv,_shadersellipsoidContainsPoint:()=>Fv,_shadersellipsoidWgs84TextureCoordinates:()=>Uv,_shadersepsilon1:()=>Ew,_shadersepsilon2:()=>bw,_shadersepsilon3:()=>Sw,_shadersepsilon4:()=>ww,_shadersepsilon5:()=>vw,_shadersepsilon6:()=>Dw,_shadersepsilon7:()=>Iw,_shadersequalsEpsilon:()=>Vv,_shaderseyeOffset:()=>kv,_shaderseyeToWindowCoordinates:()=>zv,_shadersfastApproximateAtan:()=>Hv,_shadersfog:()=>Gv,_shadersgammaCorrect:()=>Wv,_shadersgeodeticSurfaceNormal:()=>jv,_shadersgetDefaultMaterial:()=>Yv,_shadersgetLambertDiffuse:()=>qv,_shadersgetSpecular:()=>Xv,_shadersgetWaterNoise:()=>Kv,_shadershue:()=>Jv,_shadersinfinity:()=>Pw,_shadersinverseGamma:()=>Zv,_shadersisEmpty:()=>Qv,_shadersisFull:()=>$v,_shaderslatitudeToWebMercatorFraction:()=>eD,_shaderslineDistance:()=>tD,_shaderslinearToSrgb:()=>nD,_shadersluminance:()=>iD,_shadersmaterial:()=>sv,_shadersmaterialInput:()=>av,_shadersmetersPerPixel:()=>oD,_shadersmodelMaterial:()=>cv,_shadersmodelToWindowCoordinates:()=>rD,_shadersmodelVertexOutput:()=>lv,_shadersmultiplyWithColorBalance:()=>sD,_shadersnearFarScalar:()=>aD,_shadersoctDecode:()=>cD,_shadersoneOverPi:()=>Ow,_shadersoneOverTwoPi:()=>Mw,_shaderspackDepth:()=>lD,_shaderspassCesium3DTile:()=>Rw,_shaderspassCesium3DTileClassification:()=>Bw,_shaderspassCesium3DTileClassificationIgnoreShow:()=>Lw,_shaderspassClassification:()=>Nw,_shaderspassCompute:()=>Fw,_shaderspassEnvironment:()=>Uw,_shaderspassGlobe:()=>Vw,_shaderspassOpaque:()=>kw,_shaderspassOverlay:()=>zw,_shaderspassTerrainClassification:()=>Hw,_shaderspassTranslucent:()=>Gw,_shaderspassVoxels:()=>Ww,_shaderspbrLighting:()=>uD,_shaderspbrMetallicRoughnessMaterial:()=>fD,_shaderspbrParameters:()=>uv,_shaderspbrSpecularGlossinessMaterial:()=>dD,_shadersphong:()=>mD,_shaderspi:()=>jw,_shaderspiOverFour:()=>Yw,_shaderspiOverSix:()=>qw,_shaderspiOverThree:()=>Xw,_shaderspiOverTwo:()=>Kw,_shadersplaneDistance:()=>hD,_shaderspointAlongRay:()=>pD,_shadersradiansPerDegree:()=>Jw,_shadersray:()=>fv,_shadersrayEllipsoidIntersectionInterval:()=>_D,_shadersraySegment:()=>dv,_shadersraySphereIntersectionInterval:()=>gD,_shadersreadDepth:()=>yD,_shadersreadNonPerspective:()=>AD,_shadersreverseLogDepth:()=>xD,_shadersround:()=>CD,_shaderssampleOctahedralProjection:()=>TD,_shaderssaturation:()=>ED,_shaderssceneMode2D:()=>Zw,_shaderssceneMode3D:()=>Qw,_shaderssceneModeColumbusView:()=>$w,_shaderssceneModeMorphing:()=>ev,_shadersshadowDepthCompare:()=>bD,_shadersshadowParameters:()=>mv,_shadersshadowVisibility:()=>SD,_shaderssignNotZero:()=>wD,_shaderssolarRadius:()=>tv,_shaderssphericalHarmonics:()=>vD,_shaderssrgbToLinear:()=>DD,_shaderstangentToEyeSpaceMatrix:()=>ID,_shaderstextureCube:()=>PD,_shadersthreePiOver2:()=>nv,_shaderstransformPlane:()=>OD,_shaderstranslateRelativeToEye:()=>MD,_shaderstranslucentPhong:()=>RD,_shaderstranspose:()=>BD,_shaderstwoPi:()=>iv,_shadersunpackDepth:()=>LD,_shadersunpackFloat:()=>ND,_shadersunpackUint:()=>FD,_shadersvalueTransform:()=>UD,_shadersvertexLogDepth:()=>VD,_shaderswebMercatorMaxLatitude:()=>ov,_shaderswindowToEyeCoordinates:()=>kD,_shaderswriteDepthClamp:()=>zD,_shaderswriteLogDepth:()=>HD,_shaderswriteNonPerspective:()=>GD,addBuffer:()=>HP,addDefaults:()=>BP,addExtensionsRequired:()=>VP,addExtensionsUsed:()=>Qu,addPipelineExtras:()=>bg,addToArray:()=>is,appendForwardSlash:()=>aw,arrayRemoveDuplicates:()=>Ao,barycentricCoordinates:()=>H0,binarySearch:()=>wo,buildDrawCommand:()=>R1,buildModuleUrl:()=>en,buildVoxelDrawCommands:()=>zF,clone:()=>Ye,combine:()=>_t,computeFlyToLocationForRectangle:()=>OC,createBillboardPointCallback:()=>HA,createCommand:()=>En,createDefaultImageryProviderViewModels:()=>f2,createDefaultTerrainProviderViewModels:()=>d2,createElevationBandMaterial:()=>nX,createGuid:()=>Gn,createMaterialPropertyDescriptor:()=>vo,createOsmBuildings:()=>iX,createOsmBuildingsAsync:()=>oX,createPropertyDescriptor:()=>ce,createRawPropertyDescriptor:()=>al,createTangentSpaceDebugPrimitive:()=>rX,createTaskProcessorWorker:()=>YX,createUniform:()=>ew,createUniformArray:()=>tw,createWorldImagery:()=>sX,createWorldImageryAsync:()=>I_,createWorldTerrain:()=>kX,createWorldTerrainAsync:()=>bC,decodeGoogleEarthEnterpriseData:()=>lF,decodeVectorPolylinePositions:()=>AM,defaultValue:()=>y,defer:()=>Gs,defined:()=>l,demodernizeShader:()=>WD,deprecationWarning:()=>$,destroyObject:()=>ue,exportKml:()=>tj,findAccessorMinMax:()=>SA,findContentMetadata:()=>XA,findGroupMetadata:()=>KA,findTileMetadata:()=>EM,forEachTextureInMaterial:()=>LT,formatError:()=>_h,freezeRenderState:()=>nG,getAbsoluteUri:()=>qh,getAccessorByteStride:()=>dl,getBaseUri:()=>cw,getBinaryAccessor:()=>Jl,getClipAndStyleCode:()=>pF,getClippingFunction:()=>v_,getComponentReader:()=>wp,getElement:()=>In,getExtensionFromUri:()=>T0,getFilenameFromUri:()=>l_,getImageFromTypedArray:()=>HF,getImagePixels:()=>$f,getJsonFromTypedArray:()=>Do,getMagic:()=>hd,getStringFromTypedArray:()=>ll,getTimestamp:()=>gi,hasExtension:()=>ti,heightReferenceOnEntityPropertyChanged:()=>dp,isBitSet:()=>dc,isBlobUri:()=>E0,isCrossOriginUrl:()=>b0,isDataUri:()=>Xh,isLeapYear:()=>Yh,knockout:()=>Ce,knockout_3_5_1:()=>BC,knockout_es5:()=>e2,loadAndExecuteScript:()=>S0,loadCubeMap:()=>nI,loadImageFromTypedArray:()=>TA,loadKTX2:()=>tl,mergeSort:()=>O_,moveTechniqueRenderStates:()=>UP,moveTechniquesToExtension:()=>kP,numberOfComponentsForType:()=>Ql,objectToQuery:()=>w0,oneTimeWarning:()=>Mt,parseBatchTable:()=>Mp,parseBoundingVolumeSemantics:()=>$P,parseFeatureMetadataLegacy:()=>a1,parseGlb:()=>NP,parseResponseHeaders:()=>lw,parseStructuralMetadata:()=>s1,pointInsideTriangle:()=>zX,preprocess3DTileContent:()=>Zm,processVoxelProperties:()=>kF,queryToObject:()=>kl,readAccessorPacked:()=>GP,removeExtension:()=>wA,removeExtensionsRequired:()=>LP,removeExtensionsUsed:()=>bA,removePipelineExtras:()=>FP,removeUnusedElements:()=>zP,resizeImageToNextPowerOfTwo:()=>vg,sampleTerrain:()=>ZR,sampleTerrainMostDetailed:()=>A_,scaleToGeodeticSurface:()=>A0,subdivideArray:()=>kI,subscribeAndEvaluate:()=>ca,updateAccessorComponentTypes:()=>WP,updateVersion:()=>jP,usesExtension:()=>hr,viewerCesium3DTilesInspectorMixin:()=>dK,viewerCesiumInspectorMixin:()=>mK,viewerDragDropMixin:()=>pK,viewerPerformanceWatchdogMixin:()=>_K,viewerVoxelInspectorMixin:()=>gK,webGLConstantToGlslType:()=>HX,wrapFunction:()=>QF,writeTextToCanvas:()=>WA});function bxe(e){return e!=null}var l=bxe;function g0(e){this.name="DeveloperError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(g0.prototype=Object.create(Error.prototype),g0.prototype.constructor=g0);g0.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` +${this.stack.toString()}`),e};g0.throwInstantiationError=function(){throw new g0("This function defines an interface and should not be called directly.")};var fe=g0;var ts={};ts.typeOf={};function Sxe(e){return`${e} is required, actual value was undefined`}function GC(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}ts.defined=function(e,t){if(!l(t))throw new fe(Sxe(e))};ts.typeOf.func=function(e,t){if(typeof t!="function")throw new fe(GC(typeof t,"function",e))};ts.typeOf.string=function(e,t){if(typeof t!="string")throw new fe(GC(typeof t,"string",e))};ts.typeOf.number=function(e,t){if(typeof t!="number")throw new fe(GC(typeof t,"number",e))};ts.typeOf.number.lessThan=function(e,t,n){if(ts.typeOf.number(e,t),t>=n)throw new fe(`Expected ${e} to be less than ${n}, actual value was ${t}`)};ts.typeOf.number.lessThanOrEquals=function(e,t,n){if(ts.typeOf.number(e,t),t>n)throw new fe(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)};ts.typeOf.number.greaterThan=function(e,t,n){if(ts.typeOf.number(e,t),t<=n)throw new fe(`Expected ${e} to be greater than ${n}, actual value was ${t}`)};ts.typeOf.number.greaterThanOrEquals=function(e,t,n){if(ts.typeOf.number(e,t),t0?1:-1});lt.signNotZero=function(e){return e<0?-1:1};lt.toSNorm=function(e,t){return t=y(t,255),Math.round((lt.clamp(e,-1,1)*.5+.5)*t)};lt.fromSNorm=function(e,t){return t=y(t,255),lt.clamp(e,0,t)/t*2-1};lt.normalize=function(e,t,n){return n=Math.max(n-t,0),n===0?0:lt.clamp((e-t)/n,0,1)};lt.sinh=y(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2});lt.cosh=y(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2});lt.lerp=function(e,t,n){return(1-n)*e+n*t};lt.PI=Math.PI;lt.ONE_OVER_PI=1/Math.PI;lt.PI_OVER_TWO=Math.PI/2;lt.PI_OVER_THREE=Math.PI/3;lt.PI_OVER_FOUR=Math.PI/4;lt.PI_OVER_SIX=Math.PI/6;lt.THREE_PI_OVER_TWO=3*Math.PI/2;lt.TWO_PI=2*Math.PI;lt.ONE_OVER_TWO_PI=1/(2*Math.PI);lt.RADIANS_PER_DEGREE=Math.PI/180;lt.DEGREES_PER_RADIAN=180/Math.PI;lt.RADIANS_PER_ARCSECOND=lt.RADIANS_PER_DEGREE/3600;lt.toRadians=function(e){return e*lt.RADIANS_PER_DEGREE};lt.toDegrees=function(e){return e*lt.DEGREES_PER_RADIAN};lt.convertLongitudeRange=function(e){let t=lt.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n};lt.clampToLatitudeRange=function(e){return lt.clamp(e,-1*lt.PI_OVER_TWO,lt.PI_OVER_TWO)};lt.negativePiToPi=function(e){return e>=-lt.PI&&e<=lt.PI?e:lt.zeroToTwoPi(e+lt.PI)-lt.PI};lt.zeroToTwoPi=function(e){if(e>=0&&e<=lt.TWO_PI)return e;let t=lt.mod(e,lt.TWO_PI);return Math.abs(t)lt.EPSILON14?lt.TWO_PI:t};lt.mod=function(e,t){return lt.sign(e)===lt.sign(t)&&Math.abs(e)n};lt.greaterThanOrEquals=function(e,t,n){return e-t>-n};var Q2=[1];lt.factorial=function(e){let t=Q2.length;if(e>=t){let n=Q2[t-1];for(let i=t;i<=e;i++){let o=n*i;Q2.push(o),n=o}}return Q2[e]};lt.incrementWrap=function(e,t,n){return n=y(n,0),++e,e>t&&(e=n),e};lt.isPowerOfTwo=function(e){return e!==0&&(e&e-1)===0};lt.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e,e};lt.previousPowerOfTwo=function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e|=e>>32,e=(e>>>0)-(e>>>1),e};lt.clamp=function(e,t,n){return en?n:e};var NK=new UH.default;lt.setRandomNumberSeed=function(e){NK=new UH.default(e)};lt.nextRandomNumber=function(){return NK.random()};lt.randomBetween=function(e,t){return lt.nextRandomNumber()*(t-e)+e};lt.acosClamped=function(e){return Math.acos(lt.clamp(e,-1,1))};lt.asinClamped=function(e){return Math.asin(lt.clamp(e,-1,1))};lt.chordLength=function(e,t){return 2*t*Math.sin(e*.5)};lt.logBase=function(e,t){return Math.log(e)/Math.log(t)};lt.cbrt=y(Math.cbrt,function(t){let n=Math.pow(Math.abs(t),.3333333333333333);return t<0?-n:n});lt.log2=y(Math.log2,function(t){return Math.log(t)*Math.LOG2E});lt.fog=function(e,t){let n=e*t;return 1-Math.exp(-(n*n))};lt.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)};lt.fastApproximateAtan2=function(e,t){let n,i=Math.abs(e);n=Math.abs(t);let o=Math.max(i,n);n=Math.min(i,n);let r=n/o;return i=lt.fastApproximateAtan(r),i=Math.abs(t)>Math.abs(e)?lt.PI_OVER_TWO-i:i,i=e<0?lt.PI-i:i,i=t<0?-i:i,i};var P=lt;function tt(e,t,n){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0)}tt.fromSpherical=function(e,t){l(t)||(t=new tt);let n=e.clock,i=e.cone,o=y(e.magnitude,1),r=o*Math.sin(i);return t.x=r*Math.cos(n),t.y=r*Math.sin(n),t.z=o*Math.cos(i),t};tt.fromElements=function(e,t,n,i){return l(i)?(i.x=e,i.y=t,i.z=n,i):new tt(e,t,n)};tt.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new tt(e.x,e.y,e.z)};tt.fromCartesian4=tt.clone;tt.packedLength=3;tt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t};tt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new tt),n.x=e[t++],n.y=e[t++],n.z=e[t],n};tt.packArray=function(e,t){let n=e.length,i=n*3;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;oi&&(o=u,i=f)}let r=1,s=0,a=HH[o],c=GH[o];if(Math.abs(e[nt.getElementIndex(c,a)])>n){let u=e[nt.getElementIndex(c,c)],f=e[nt.getElementIndex(a,a)],d=e[nt.getElementIndex(c,a)],p=(u-f)/2/d,g;p<0?g=-1/(-p+Math.sqrt(1+p*p)):g=1/(p+Math.sqrt(1+p*p)),r=1/Math.sqrt(1+g*g),s=g*r}return t=nt.clone(nt.IDENTITY,t),t[nt.getElementIndex(a,a)]=t[nt.getElementIndex(c,c)]=r,t[nt.getElementIndex(c,a)]=s,t[nt.getElementIndex(a,c)]=-s,t}var n3=new nt,zK=new nt;nt.computeEigenDecomposition=function(e,t){let n=P.EPSILON20,i=10,o=0,r=0;l(t)||(t={});let s=t.unitary=nt.clone(nt.IDENTITY,t.unitary),a=t.diagonal=nt.clone(e,t.diagonal),c=n*Lxe(a);for(;rc;)Fxe(a,n3),nt.transpose(n3,zK),nt.multiply(a,n3,a),nt.multiply(zK,a,a),nt.multiply(s,n3,s),++o>2&&(++r,o=0);return t};nt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t};nt.determinant=function(e){let t=e[0],n=e[3],i=e[6],o=e[1],r=e[4],s=e[7],a=e[2],c=e[5],u=e[8];return t*(r*u-c*s)+o*(c*i-n*u)+a*(n*s-r*i)};nt.inverse=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[3],s=e[4],a=e[5],c=e[6],u=e[7],f=e[8],d=nt.determinant(e);t[0]=s*f-u*a,t[1]=u*o-i*f,t[2]=i*a-s*o,t[3]=c*a-r*f,t[4]=n*f-c*o,t[5]=r*o-n*a,t[6]=r*u-c*s,t[7]=c*i-n*u,t[8]=n*s-r*i;let p=1/d;return nt.multiplyByScalar(t,p,t)};var Uxe=new nt;nt.inverseTranspose=function(e,t){return nt.inverse(nt.transpose(e,Uxe),t)};nt.equals=function(e,t){return e===t||l(e)&&l(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]};nt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n};nt.IDENTITY=Object.freeze(new nt(1,0,0,0,1,0,0,0,1));nt.ZERO=Object.freeze(new nt(0,0,0,0,0,0,0,0,0));nt.COLUMN0ROW0=0;nt.COLUMN0ROW1=1;nt.COLUMN0ROW2=2;nt.COLUMN1ROW0=3;nt.COLUMN1ROW1=4;nt.COLUMN1ROW2=5;nt.COLUMN2ROW0=6;nt.COLUMN2ROW1=7;nt.COLUMN2ROW2=8;Object.defineProperties(nt.prototype,{length:{get:function(){return nt.packedLength}}});nt.prototype.clone=function(e){return nt.clone(this,e)};nt.prototype.equals=function(e){return nt.equals(this,e)};nt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]};nt.prototype.equalsEpsilon=function(e,t){return nt.equalsEpsilon(this,e,t)};nt.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]}) +(${this[1]}, ${this[4]}, ${this[7]}) +(${this[2]}, ${this[5]}, ${this[8]})`};var Z=nt;function JS(e){this.name="RuntimeError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(JS.prototype=Object.create(Error.prototype),JS.prototype.constructor=JS);JS.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` +${this.stack.toString()}`),e};var de=JS;function et(e,t,n,i,o,r,s,a,c,u,f,d,p,g,h,A){this[0]=y(e,0),this[1]=y(o,0),this[2]=y(c,0),this[3]=y(p,0),this[4]=y(t,0),this[5]=y(r,0),this[6]=y(u,0),this[7]=y(g,0),this[8]=y(n,0),this[9]=y(s,0),this[10]=y(f,0),this[11]=y(h,0),this[12]=y(i,0),this[13]=y(a,0),this[14]=y(d,0),this[15]=y(A,0)}et.packedLength=16;et.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t};et.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new et),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n};et.packArray=function(e,t){let n=e.length,i=n*16;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)};_s.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)};_s.fromTypedArray=function(e){if(e instanceof Uint8Array)return _s.UNSIGNED_BYTE;if(e instanceof Uint16Array)return _s.UNSIGNED_SHORT;if(e instanceof Uint32Array)return _s.UNSIGNED_INT};var Ue=Object.freeze(_s);var i3={STREAM_DRAW:te.STREAM_DRAW,STATIC_DRAW:te.STATIC_DRAW,DYNAMIC_DRAW:te.DYNAMIC_DRAW,validate:function(e){return e===i3.STREAM_DRAW||e===i3.STATIC_DRAW||e===i3.DYNAMIC_DRAW}},Fe=Object.freeze(i3);function ku(e){e=y(e,y.EMPTY_OBJECT);let t=e.context._gl,n=e.bufferTarget,i=e.typedArray,o=e.sizeInBytes,r=e.usage,s=l(i);s&&(o=i.byteLength);let a=t.createBuffer();t.bindBuffer(n,a),t.bufferData(n,s?i:o,r),t.bindBuffer(n,null),this._id=Gn(),this._gl=t,this._webgl2=e.context._webgl2,this._bufferTarget=n,this._sizeInBytes=o,this._usage=r,this._buffer=a,this.vertexArrayDestroyable=!0}ku.createVertexBuffer=function(e){return new ku({context:e.context,bufferTarget:te.ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage})};ku.createIndexBuffer=function(e){let t=e.context,n=e.indexDatatype,i=Ue.getSizeInBytes(n),o=new ku({context:t,bufferTarget:te.ELEMENT_ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage}),r=o.sizeInBytes/i;return Object.defineProperties(o,{indexDatatype:{get:function(){return n}},bytesPerIndex:{get:function(){return i}},numberOfIndices:{get:function(){return r}}}),o};Object.defineProperties(ku.prototype,{sizeInBytes:{get:function(){return this._sizeInBytes}},usage:{get:function(){return this._usage}}});ku.prototype._getBuffer=function(){return this._buffer};ku.prototype.copyFromArrayView=function(e,t){t=y(t,0);let n=this._gl,i=this._bufferTarget;n.bindBuffer(i,this._buffer),n.bufferSubData(i,t,e),n.bindBuffer(i,null)};ku.prototype.copyFromBuffer=function(e,t,n,i){let o=te.COPY_READ_BUFFER,r=te.COPY_WRITE_BUFFER,s=this._gl;s.bindBuffer(r,this._buffer),s.bindBuffer(o,e._buffer),s.copyBufferSubData(o,r,t,n,i),s.bindBuffer(r,null),s.bindBuffer(o,null)};ku.prototype.getBufferData=function(e,t,n,i){t=y(t,0),n=y(n,0);let o=this._gl,r=te.COPY_READ_BUFFER;o.bindBuffer(r,this._buffer),o.getBufferSubData(r,t,e,n,i),o.bindBuffer(r,null)};ku.prototype.isDestroyed=function(){return!1};ku.prototype.destroy=function(){return this._gl.deleteBuffer(this._buffer),ue(this)};var mt=ku;var Y_,yr={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},$c={};Object.defineProperties($c,{element:{get:function(){if($c.supportsFullscreen())return document[yr.fullscreenElement]}},changeEventName:{get:function(){if($c.supportsFullscreen())return yr.fullscreenchange}},errorEventName:{get:function(){if($c.supportsFullscreen())return yr.fullscreenerror}},enabled:{get:function(){if($c.supportsFullscreen())return document[yr.fullscreenEnabled]}},fullscreen:{get:function(){if($c.supportsFullscreen())return $c.element!==null}}});$c.supportsFullscreen=function(){if(l(Y_))return Y_;Y_=!1;let e=document.body;if(typeof e.requestFullscreen=="function")return yr.requestFullscreen="requestFullscreen",yr.exitFullscreen="exitFullscreen",yr.fullscreenEnabled="fullscreenEnabled",yr.fullscreenElement="fullscreenElement",yr.fullscreenchange="fullscreenchange",yr.fullscreenerror="fullscreenerror",Y_=!0,Y_;let t=["webkit","moz","o","ms","khtml"],n;for(let i=0,o=t.length;i{let t=new Image;t.onload=function(){_c._result=t.width>0&&t.height>0,e(_c._result)},t.onerror=function(){_c._result=!1,e(_c._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),_c._promise};Object.defineProperties(_c,{initialized:{get:function(){return l(_c._result)}}});var qC=[];typeof ArrayBuffer<"u"&&(qC.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&qC.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&qC.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&qC.push(BigInt64Array),typeof BigUint64Array<"u"&&qC.push(BigUint64Array));var Jf={isChrome:JH,chromeVersion:eCe,isSafari:jK,safariVersion:tCe,isWebkit:YK,webkitVersion:nCe,isInternetExplorer:qK,internetExplorerVersion:iCe,isEdge:u3,edgeVersion:oCe,isFirefox:ZH,firefoxVersion:aCe,isWindows:rCe,isIPadOrIOS:sCe,hardwareConcurrency:y(Ma.hardwareConcurrency,3),supportsPointerEvents:cCe,supportsImageRenderingPixelated:ZK,supportsWebP:_c,imageRenderingValue:lCe,typedArrayTypes:qC};Jf.supportsBasis=function(e){return Jf.supportsWebAssembly()&&e.context.supportsBasis};Jf.supportsFullscreen=function(){return lr.supportsFullscreen()};Jf.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};Jf.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};Jf.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};Jf.supportsBigInt=function(){return typeof BigInt<"u"};Jf.supportsWebWorkers=function(){return typeof Worker<"u"};Jf.supportsWebAssembly=function(){return typeof WebAssembly<"u"};Jf.supportsWebgl2=function(e){return e.context.webgl2};var Ht=Jf;function QH(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function ie(e,t,n,i){this.red=y(e,1),this.green=y(t,1),this.blue=y(n,1),this.alpha=y(i,1)}ie.fromCartesian4=function(e,t){return l(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new ie(e.x,e.y,e.z,e.w)};ie.fromBytes=function(e,t,n,i,o){return e=ie.byteToFloat(y(e,255)),t=ie.byteToFloat(y(t,255)),n=ie.byteToFloat(y(n,255)),i=ie.byteToFloat(y(i,255)),l(o)?(o.red=e,o.green=t,o.blue=n,o.alpha=i,o):new ie(e,t,n,i)};ie.fromAlpha=function(e,t,n){return l(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new ie(e.red,e.green,e.blue,t)};var $H,eG,zh;Ht.supportsTypedArrays()&&($H=new ArrayBuffer(4),eG=new Uint32Array($H),zh=new Uint8Array($H));ie.fromRgba=function(e,t){return eG[0]=e,ie.fromBytes(zh[0],zh[1],zh[2],zh[3],t)};ie.fromHsl=function(e,t,n,i,o){e=y(e,0)%1,t=y(t,0),n=y(n,0),i=y(i,1);let r=n,s=n,a=n;if(t!==0){let c;n<.5?c=n*(1+t):c=n+t-n*t;let u=2*n-c;r=QH(u,c,e+1/3),s=QH(u,c,e),a=QH(u,c,e-1/3)}return l(o)?(o.red=r,o.green=s,o.blue=a,o.alpha=i,o):new ie(r,s,a,i)};ie.fromRandom=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.red;if(!l(n)){let s=y(e.minimumRed,0),a=y(e.maximumRed,1);n=s+P.nextRandomNumber()*(a-s)}let i=e.green;if(!l(i)){let s=y(e.minimumGreen,0),a=y(e.maximumGreen,1);i=s+P.nextRandomNumber()*(a-s)}let o=e.blue;if(!l(o)){let s=y(e.minimumBlue,0),a=y(e.maximumBlue,1);o=s+P.nextRandomNumber()*(a-s)}let r=e.alpha;if(!l(r)){let s=y(e.minimumAlpha,0),a=y(e.maximumAlpha,1);r=s+P.nextRandomNumber()*(a-s)}return l(t)?(t.red=n,t.green=i,t.blue=o,t.alpha=r,t):new ie(n,i,o,r)};var uCe=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,fCe=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,dCe=/^rgba?\(\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)(?:\s*,\s*([0-9.]+))?\s*\)$/i,mCe=/^hsla?\(\s*([0-9.]+)\s*,\s*([0-9.]+%)\s*,\s*([0-9.]+%)(?:\s*,\s*([0-9.]+))?\s*\)$/i;ie.fromCssColorString=function(e,t){l(t)||(t=new ie),e=e.replace(/\s/g,"");let n=ie[e.toUpperCase()];if(l(n))return ie.clone(n,t),t;let i=uCe.exec(e);return i!==null?(t.red=parseInt(i[1],16)/15,t.green=parseInt(i[2],16)/15,t.blue=parseInt(i[3],16)/15,t.alpha=parseInt(y(i[4],"f"),16)/15,t):(i=fCe.exec(e),i!==null?(t.red=parseInt(i[1],16)/255,t.green=parseInt(i[2],16)/255,t.blue=parseInt(i[3],16)/255,t.alpha=parseInt(y(i[4],"ff"),16)/255,t):(i=dCe.exec(e),i!==null?(t.red=parseFloat(i[1])/(i[1].substr(-1)==="%"?100:255),t.green=parseFloat(i[2])/(i[2].substr(-1)==="%"?100:255),t.blue=parseFloat(i[3])/(i[3].substr(-1)==="%"?100:255),t.alpha=parseFloat(y(i[4],"1.0")),t):(i=mCe.exec(e),i!==null?ie.fromHsl(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(y(i[4],"1.0")),t):(t=void 0,t))))};ie.packedLength=4;ie.pack=function(e,t,n){return n=y(n,0),t[n++]=e.red,t[n++]=e.green,t[n++]=e.blue,t[n]=e.alpha,t};ie.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ie),n.red=e[t++],n.green=e[t++],n.blue=e[t++],n.alpha=e[t],n};ie.byteToFloat=function(e){return e/255};ie.floatToByte=function(e){return e===1?255:e*256|0};ie.clone=function(e,t){if(l(e))return l(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new ie(e.red,e.green,e.blue,e.alpha)};ie.equals=function(e,t){return e===t||l(e)&&l(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha};ie.equalsArray=function(e,t,n){return e.red===t[n]&&e.green===t[n+1]&&e.blue===t[n+2]&&e.alpha===t[n+3]};ie.prototype.clone=function(e){return ie.clone(this,e)};ie.prototype.equals=function(e){return ie.equals(this,e)};ie.prototype.equalsEpsilon=function(e,t){return this===e||l(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t};ie.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};ie.prototype.toCssColorString=function(){let e=ie.floatToByte(this.red),t=ie.floatToByte(this.green),n=ie.floatToByte(this.blue);return this.alpha===1?`rgb(${e},${t},${n})`:`rgba(${e},${t},${n},${this.alpha})`};ie.prototype.toCssHexString=function(){let e=ie.floatToByte(this.red).toString(16);e.length<2&&(e=`0${e}`);let t=ie.floatToByte(this.green).toString(16);t.length<2&&(t=`0${t}`);let n=ie.floatToByte(this.blue).toString(16);if(n.length<2&&(n=`0${n}`),this.alpha<1){let i=ie.floatToByte(this.alpha).toString(16);return i.length<2&&(i=`0${i}`),`#${e}${t}${n}${i}`}return`#${e}${t}${n}`};ie.prototype.toBytes=function(e){let t=ie.floatToByte(this.red),n=ie.floatToByte(this.green),i=ie.floatToByte(this.blue),o=ie.floatToByte(this.alpha);return l(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=o,e):[t,n,i,o]};ie.prototype.toRgba=function(){return zh[0]=ie.floatToByte(this.red),zh[1]=ie.floatToByte(this.green),zh[2]=ie.floatToByte(this.blue),zh[3]=ie.floatToByte(this.alpha),eG[0]};ie.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t};ie.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t};ie.prototype.withAlpha=function(e,t){return ie.fromAlpha(this,e,t)};ie.add=function(e,t,n){return n.red=e.red+t.red,n.green=e.green+t.green,n.blue=e.blue+t.blue,n.alpha=e.alpha+t.alpha,n};ie.subtract=function(e,t,n){return n.red=e.red-t.red,n.green=e.green-t.green,n.blue=e.blue-t.blue,n.alpha=e.alpha-t.alpha,n};ie.multiply=function(e,t,n){return n.red=e.red*t.red,n.green=e.green*t.green,n.blue=e.blue*t.blue,n.alpha=e.alpha*t.alpha,n};ie.divide=function(e,t,n){return n.red=e.red/t.red,n.green=e.green/t.green,n.blue=e.blue/t.blue,n.alpha=e.alpha/t.alpha,n};ie.mod=function(e,t,n){return n.red=e.red%t.red,n.green=e.green%t.green,n.blue=e.blue%t.blue,n.alpha=e.alpha%t.alpha,n};ie.lerp=function(e,t,n,i){return i.red=P.lerp(e.red,t.red,n),i.green=P.lerp(e.green,t.green,n),i.blue=P.lerp(e.blue,t.blue,n),i.alpha=P.lerp(e.alpha,t.alpha,n),i};ie.multiplyByScalar=function(e,t,n){return n.red=e.red*t,n.green=e.green*t,n.blue=e.blue*t,n.alpha=e.alpha*t,n};ie.divideByScalar=function(e,t,n){return n.red=e.red/t,n.green=e.green/t,n.blue=e.blue/t,n.alpha=e.alpha/t,n};ie.ALICEBLUE=Object.freeze(ie.fromCssColorString("#F0F8FF"));ie.ANTIQUEWHITE=Object.freeze(ie.fromCssColorString("#FAEBD7"));ie.AQUA=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.AQUAMARINE=Object.freeze(ie.fromCssColorString("#7FFFD4"));ie.AZURE=Object.freeze(ie.fromCssColorString("#F0FFFF"));ie.BEIGE=Object.freeze(ie.fromCssColorString("#F5F5DC"));ie.BISQUE=Object.freeze(ie.fromCssColorString("#FFE4C4"));ie.BLACK=Object.freeze(ie.fromCssColorString("#000000"));ie.BLANCHEDALMOND=Object.freeze(ie.fromCssColorString("#FFEBCD"));ie.BLUE=Object.freeze(ie.fromCssColorString("#0000FF"));ie.BLUEVIOLET=Object.freeze(ie.fromCssColorString("#8A2BE2"));ie.BROWN=Object.freeze(ie.fromCssColorString("#A52A2A"));ie.BURLYWOOD=Object.freeze(ie.fromCssColorString("#DEB887"));ie.CADETBLUE=Object.freeze(ie.fromCssColorString("#5F9EA0"));ie.CHARTREUSE=Object.freeze(ie.fromCssColorString("#7FFF00"));ie.CHOCOLATE=Object.freeze(ie.fromCssColorString("#D2691E"));ie.CORAL=Object.freeze(ie.fromCssColorString("#FF7F50"));ie.CORNFLOWERBLUE=Object.freeze(ie.fromCssColorString("#6495ED"));ie.CORNSILK=Object.freeze(ie.fromCssColorString("#FFF8DC"));ie.CRIMSON=Object.freeze(ie.fromCssColorString("#DC143C"));ie.CYAN=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.DARKBLUE=Object.freeze(ie.fromCssColorString("#00008B"));ie.DARKCYAN=Object.freeze(ie.fromCssColorString("#008B8B"));ie.DARKGOLDENROD=Object.freeze(ie.fromCssColorString("#B8860B"));ie.DARKGRAY=Object.freeze(ie.fromCssColorString("#A9A9A9"));ie.DARKGREEN=Object.freeze(ie.fromCssColorString("#006400"));ie.DARKGREY=ie.DARKGRAY;ie.DARKKHAKI=Object.freeze(ie.fromCssColorString("#BDB76B"));ie.DARKMAGENTA=Object.freeze(ie.fromCssColorString("#8B008B"));ie.DARKOLIVEGREEN=Object.freeze(ie.fromCssColorString("#556B2F"));ie.DARKORANGE=Object.freeze(ie.fromCssColorString("#FF8C00"));ie.DARKORCHID=Object.freeze(ie.fromCssColorString("#9932CC"));ie.DARKRED=Object.freeze(ie.fromCssColorString("#8B0000"));ie.DARKSALMON=Object.freeze(ie.fromCssColorString("#E9967A"));ie.DARKSEAGREEN=Object.freeze(ie.fromCssColorString("#8FBC8F"));ie.DARKSLATEBLUE=Object.freeze(ie.fromCssColorString("#483D8B"));ie.DARKSLATEGRAY=Object.freeze(ie.fromCssColorString("#2F4F4F"));ie.DARKSLATEGREY=ie.DARKSLATEGRAY;ie.DARKTURQUOISE=Object.freeze(ie.fromCssColorString("#00CED1"));ie.DARKVIOLET=Object.freeze(ie.fromCssColorString("#9400D3"));ie.DEEPPINK=Object.freeze(ie.fromCssColorString("#FF1493"));ie.DEEPSKYBLUE=Object.freeze(ie.fromCssColorString("#00BFFF"));ie.DIMGRAY=Object.freeze(ie.fromCssColorString("#696969"));ie.DIMGREY=ie.DIMGRAY;ie.DODGERBLUE=Object.freeze(ie.fromCssColorString("#1E90FF"));ie.FIREBRICK=Object.freeze(ie.fromCssColorString("#B22222"));ie.FLORALWHITE=Object.freeze(ie.fromCssColorString("#FFFAF0"));ie.FORESTGREEN=Object.freeze(ie.fromCssColorString("#228B22"));ie.FUCHSIA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.GAINSBORO=Object.freeze(ie.fromCssColorString("#DCDCDC"));ie.GHOSTWHITE=Object.freeze(ie.fromCssColorString("#F8F8FF"));ie.GOLD=Object.freeze(ie.fromCssColorString("#FFD700"));ie.GOLDENROD=Object.freeze(ie.fromCssColorString("#DAA520"));ie.GRAY=Object.freeze(ie.fromCssColorString("#808080"));ie.GREEN=Object.freeze(ie.fromCssColorString("#008000"));ie.GREENYELLOW=Object.freeze(ie.fromCssColorString("#ADFF2F"));ie.GREY=ie.GRAY;ie.HONEYDEW=Object.freeze(ie.fromCssColorString("#F0FFF0"));ie.HOTPINK=Object.freeze(ie.fromCssColorString("#FF69B4"));ie.INDIANRED=Object.freeze(ie.fromCssColorString("#CD5C5C"));ie.INDIGO=Object.freeze(ie.fromCssColorString("#4B0082"));ie.IVORY=Object.freeze(ie.fromCssColorString("#FFFFF0"));ie.KHAKI=Object.freeze(ie.fromCssColorString("#F0E68C"));ie.LAVENDER=Object.freeze(ie.fromCssColorString("#E6E6FA"));ie.LAVENDAR_BLUSH=Object.freeze(ie.fromCssColorString("#FFF0F5"));ie.LAWNGREEN=Object.freeze(ie.fromCssColorString("#7CFC00"));ie.LEMONCHIFFON=Object.freeze(ie.fromCssColorString("#FFFACD"));ie.LIGHTBLUE=Object.freeze(ie.fromCssColorString("#ADD8E6"));ie.LIGHTCORAL=Object.freeze(ie.fromCssColorString("#F08080"));ie.LIGHTCYAN=Object.freeze(ie.fromCssColorString("#E0FFFF"));ie.LIGHTGOLDENRODYELLOW=Object.freeze(ie.fromCssColorString("#FAFAD2"));ie.LIGHTGRAY=Object.freeze(ie.fromCssColorString("#D3D3D3"));ie.LIGHTGREEN=Object.freeze(ie.fromCssColorString("#90EE90"));ie.LIGHTGREY=ie.LIGHTGRAY;ie.LIGHTPINK=Object.freeze(ie.fromCssColorString("#FFB6C1"));ie.LIGHTSEAGREEN=Object.freeze(ie.fromCssColorString("#20B2AA"));ie.LIGHTSKYBLUE=Object.freeze(ie.fromCssColorString("#87CEFA"));ie.LIGHTSLATEGRAY=Object.freeze(ie.fromCssColorString("#778899"));ie.LIGHTSLATEGREY=ie.LIGHTSLATEGRAY;ie.LIGHTSTEELBLUE=Object.freeze(ie.fromCssColorString("#B0C4DE"));ie.LIGHTYELLOW=Object.freeze(ie.fromCssColorString("#FFFFE0"));ie.LIME=Object.freeze(ie.fromCssColorString("#00FF00"));ie.LIMEGREEN=Object.freeze(ie.fromCssColorString("#32CD32"));ie.LINEN=Object.freeze(ie.fromCssColorString("#FAF0E6"));ie.MAGENTA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.MAROON=Object.freeze(ie.fromCssColorString("#800000"));ie.MEDIUMAQUAMARINE=Object.freeze(ie.fromCssColorString("#66CDAA"));ie.MEDIUMBLUE=Object.freeze(ie.fromCssColorString("#0000CD"));ie.MEDIUMORCHID=Object.freeze(ie.fromCssColorString("#BA55D3"));ie.MEDIUMPURPLE=Object.freeze(ie.fromCssColorString("#9370DB"));ie.MEDIUMSEAGREEN=Object.freeze(ie.fromCssColorString("#3CB371"));ie.MEDIUMSLATEBLUE=Object.freeze(ie.fromCssColorString("#7B68EE"));ie.MEDIUMSPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FA9A"));ie.MEDIUMTURQUOISE=Object.freeze(ie.fromCssColorString("#48D1CC"));ie.MEDIUMVIOLETRED=Object.freeze(ie.fromCssColorString("#C71585"));ie.MIDNIGHTBLUE=Object.freeze(ie.fromCssColorString("#191970"));ie.MINTCREAM=Object.freeze(ie.fromCssColorString("#F5FFFA"));ie.MISTYROSE=Object.freeze(ie.fromCssColorString("#FFE4E1"));ie.MOCCASIN=Object.freeze(ie.fromCssColorString("#FFE4B5"));ie.NAVAJOWHITE=Object.freeze(ie.fromCssColorString("#FFDEAD"));ie.NAVY=Object.freeze(ie.fromCssColorString("#000080"));ie.OLDLACE=Object.freeze(ie.fromCssColorString("#FDF5E6"));ie.OLIVE=Object.freeze(ie.fromCssColorString("#808000"));ie.OLIVEDRAB=Object.freeze(ie.fromCssColorString("#6B8E23"));ie.ORANGE=Object.freeze(ie.fromCssColorString("#FFA500"));ie.ORANGERED=Object.freeze(ie.fromCssColorString("#FF4500"));ie.ORCHID=Object.freeze(ie.fromCssColorString("#DA70D6"));ie.PALEGOLDENROD=Object.freeze(ie.fromCssColorString("#EEE8AA"));ie.PALEGREEN=Object.freeze(ie.fromCssColorString("#98FB98"));ie.PALETURQUOISE=Object.freeze(ie.fromCssColorString("#AFEEEE"));ie.PALEVIOLETRED=Object.freeze(ie.fromCssColorString("#DB7093"));ie.PAPAYAWHIP=Object.freeze(ie.fromCssColorString("#FFEFD5"));ie.PEACHPUFF=Object.freeze(ie.fromCssColorString("#FFDAB9"));ie.PERU=Object.freeze(ie.fromCssColorString("#CD853F"));ie.PINK=Object.freeze(ie.fromCssColorString("#FFC0CB"));ie.PLUM=Object.freeze(ie.fromCssColorString("#DDA0DD"));ie.POWDERBLUE=Object.freeze(ie.fromCssColorString("#B0E0E6"));ie.PURPLE=Object.freeze(ie.fromCssColorString("#800080"));ie.RED=Object.freeze(ie.fromCssColorString("#FF0000"));ie.ROSYBROWN=Object.freeze(ie.fromCssColorString("#BC8F8F"));ie.ROYALBLUE=Object.freeze(ie.fromCssColorString("#4169E1"));ie.SADDLEBROWN=Object.freeze(ie.fromCssColorString("#8B4513"));ie.SALMON=Object.freeze(ie.fromCssColorString("#FA8072"));ie.SANDYBROWN=Object.freeze(ie.fromCssColorString("#F4A460"));ie.SEAGREEN=Object.freeze(ie.fromCssColorString("#2E8B57"));ie.SEASHELL=Object.freeze(ie.fromCssColorString("#FFF5EE"));ie.SIENNA=Object.freeze(ie.fromCssColorString("#A0522D"));ie.SILVER=Object.freeze(ie.fromCssColorString("#C0C0C0"));ie.SKYBLUE=Object.freeze(ie.fromCssColorString("#87CEEB"));ie.SLATEBLUE=Object.freeze(ie.fromCssColorString("#6A5ACD"));ie.SLATEGRAY=Object.freeze(ie.fromCssColorString("#708090"));ie.SLATEGREY=ie.SLATEGRAY;ie.SNOW=Object.freeze(ie.fromCssColorString("#FFFAFA"));ie.SPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FF7F"));ie.STEELBLUE=Object.freeze(ie.fromCssColorString("#4682B4"));ie.TAN=Object.freeze(ie.fromCssColorString("#D2B48C"));ie.TEAL=Object.freeze(ie.fromCssColorString("#008080"));ie.THISTLE=Object.freeze(ie.fromCssColorString("#D8BFD8"));ie.TOMATO=Object.freeze(ie.fromCssColorString("#FF6347"));ie.TURQUOISE=Object.freeze(ie.fromCssColorString("#40E0D0"));ie.VIOLET=Object.freeze(ie.fromCssColorString("#EE82EE"));ie.WHEAT=Object.freeze(ie.fromCssColorString("#F5DEB3"));ie.WHITE=Object.freeze(ie.fromCssColorString("#FFFFFF"));ie.WHITESMOKE=Object.freeze(ie.fromCssColorString("#F5F5F5"));ie.YELLOW=Object.freeze(ie.fromCssColorString("#FFFF00"));ie.YELLOWGREEN=Object.freeze(ie.fromCssColorString("#9ACD32"));ie.TRANSPARENT=Object.freeze(new ie(0,0,0,0));var z=ie;function f3(e){e=y(e,y.EMPTY_OBJECT),this.color=e.color,this.depth=e.depth,this.stencil=e.stencil,this.renderState=e.renderState,this.framebuffer=e.framebuffer,this.owner=e.owner,this.pass=e.pass}f3.ALL=Object.freeze(new f3({color:new z(0,0,0,0),depth:1,stencil:0}));f3.prototype.execute=function(e,t){e.clear(this,t)};var ii=f3;var hCe={ENVIRONMENT:0,COMPUTE:1,GLOBE:2,TERRAIN_CLASSIFICATION:3,CESIUM_3D_TILE:4,CESIUM_3D_TILE_CLASSIFICATION:5,CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW:6,OPAQUE:7,TRANSLUCENT:8,VOXELS:9,OVERLAY:10,NUMBER_OF_PASSES:11},be=Object.freeze(hCe);function QK(e){e=y(e,y.EMPTY_OBJECT),this.vertexArray=e.vertexArray,this.fragmentShaderSource=e.fragmentShaderSource,this.shaderProgram=e.shaderProgram,this.uniformMap=e.uniformMap,this.outputTexture=e.outputTexture,this.preExecute=e.preExecute,this.postExecute=e.postExecute,this.canceled=e.canceled,this.persists=y(e.persists,!1),this.pass=be.COMPUTE,this.owner=e.owner}QK.prototype.execute=function(e){e.execute(this)};var zu=QK;function Ot(e,t){this.x=y(e,0),this.y=y(t,0)}Ot.fromElements=function(e,t,n){return l(n)?(n.x=e,n.y=t,n):new Ot(e,t)};Ot.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t):new Ot(e.x,e.y)};Ot.fromCartesian3=Ot.clone;Ot.fromCartesian4=Ot.clone;Ot.packedLength=2;Ot.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n]=e.y,t};Ot.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Ot),n.x=e[t++],n.y=e[t],n};Ot.packArray=function(e,t){let n=e.length,i=n*2;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;oP.EPSILON12);return l(o)?(o.x=r*L,o.y=s*N,o.z=a*_,o):new m(r*L,s*N,a*_)}var A0=yCe;function Yr(e,t,n){this.longitude=y(e,0),this.latitude=y(t,0),this.height=y(n,0)}Yr.fromRadians=function(e,t,n,i){return n=y(n,0),l(i)?(i.longitude=e,i.latitude=t,i.height=n,i):new Yr(e,t,n)};Yr.fromDegrees=function(e,t,n,i){return e=P.toRadians(e),t=P.toRadians(t),Yr.fromRadians(e,t,n,i)};var ACe=new m,xCe=new m,CCe=new m,TCe=new m(1/6378137,1/6378137,1/6356752314245179e-9),ECe=new m(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9)),bCe=P.EPSILON1;Yr.fromCartesian=function(e,t,n){let i=l(t)?t.oneOverRadii:TCe,o=l(t)?t.oneOverRadiiSquared:ECe,r=l(t)?t._centerToleranceSquared:bCe,s=A0(e,i,o,r,xCe);if(!l(s))return;let a=m.multiplyComponents(s,o,ACe);a=m.normalize(a,a);let c=m.subtract(e,s,CCe),u=Math.atan2(a.y,a.x),f=Math.asin(a.z),d=P.sign(m.dot(c,e))*m.magnitude(c);return l(n)?(n.longitude=u,n.latitude=f,n.height=d,n):new Yr(u,f,d)};Yr.toCartesian=function(e,t,n){return m.fromRadians(e.longitude,e.latitude,e.height,t,n)};Yr.clone=function(e,t){if(l(e))return l(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new Yr(e.longitude,e.latitude,e.height)};Yr.equals=function(e,t){return e===t||l(e)&&l(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height};Yr.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n};Yr.ZERO=Object.freeze(new Yr(0,0,0));Yr.prototype.clone=function(e){return Yr.clone(this,e)};Yr.prototype.equals=function(e){return Yr.equals(this,e)};Yr.prototype.equalsEpsilon=function(e,t){return Yr.equalsEpsilon(this,e,t)};Yr.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var he=Yr;function iJ(e,t,n,i){t=y(t,0),n=y(n,0),i=y(i,0),e._radii=new m(t,n,i),e._radiiSquared=new m(t*t,n*n,i*i),e._radiiToTheFourth=new m(t*t*t*t,n*n*n*n,i*i*i*i),e._oneOverRadii=new m(t===0?0:1/t,n===0?0:1/n,i===0?0:1/i),e._oneOverRadiiSquared=new m(t===0?0:1/(t*t),n===0?0:1/(n*n),i===0?0:1/(i*i)),e._minimumRadius=Math.min(t,n,i),e._maximumRadius=Math.max(t,n,i),e._centerToleranceSquared=P.EPSILON1,e._radiiSquared.z!==0&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function Zi(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,iJ(this,e,t,n)}Object.defineProperties(Zi.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}});Zi.clone=function(e,t){if(!l(e))return;let n=e._radii;return l(t)?(m.clone(n,t._radii),m.clone(e._radiiSquared,t._radiiSquared),m.clone(e._radiiToTheFourth,t._radiiToTheFourth),m.clone(e._oneOverRadii,t._oneOverRadii),m.clone(e._oneOverRadiiSquared,t._oneOverRadiiSquared),t._minimumRadius=e._minimumRadius,t._maximumRadius=e._maximumRadius,t._centerToleranceSquared=e._centerToleranceSquared,t):new Zi(n.x,n.y,n.z)};Zi.fromCartesian3=function(e,t){return l(t)||(t=new Zi),l(e)&&iJ(t,e.x,e.y,e.z),t};Zi.WGS84=Object.freeze(new Zi(6378137,6378137,6356752314245179e-9));Zi.UNIT_SPHERE=Object.freeze(new Zi(1,1,1));Zi.MOON=Object.freeze(new Zi(P.LUNAR_RADIUS,P.LUNAR_RADIUS,P.LUNAR_RADIUS));Zi.prototype.clone=function(e){return Zi.clone(this,e)};Zi.packedLength=m.packedLength;Zi.pack=function(e,t,n){return n=y(n,0),m.pack(e._radii,t,n),t};Zi.unpack=function(e,t,n){t=y(t,0);let i=m.unpack(e,t);return Zi.fromCartesian3(i,n)};Zi.prototype.geocentricSurfaceNormal=m.normalize;Zi.prototype.geodeticSurfaceNormalCartographic=function(e,t){let n=e.longitude,i=e.latitude,o=Math.cos(i),r=o*Math.cos(n),s=o*Math.sin(n),a=Math.sin(i);return l(t)||(t=new m),t.x=r,t.y=s,t.z=a,m.normalize(t,t)};Zi.prototype.geodeticSurfaceNormal=function(e,t){if(!m.equalsEpsilon(e,m.ZERO,P.EPSILON14))return l(t)||(t=new m),t=m.multiplyComponents(e,this._oneOverRadiiSquared,t),m.normalize(t,t)};var SCe=new m,wCe=new m;Zi.prototype.cartographicToCartesian=function(e,t){let n=SCe,i=wCe;this.geodeticSurfaceNormalCartographic(e,n),m.multiplyComponents(this._radiiSquared,n,i);let o=Math.sqrt(m.dot(n,i));return m.divideByScalar(i,o,i),m.multiplyByScalar(n,e.height,n),l(t)||(t=new m),m.add(i,n,t)};Zi.prototype.cartographicArrayToCartesianArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i=this._radii.z-t))return n};var PCe=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],OCe=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function nJ(e,t,n){let i=.5*(t+e),o=.5*(t-e),r=0;for(let s=0;s<5;s++){let a=o*PCe[s];r+=OCe[s]*(n(i+a)+n(i-a))}return r*=o,r}Zi.prototype.surfaceArea=function(e){let t=e.west,n=e.east,i=e.south,o=e.north;for(;n=0?f.longitude:f.longitude+P.TWO_PI;o=Math.min(o,d),r=Math.max(r,d)}return i-n>r-o&&(n=o,i=r,i>P.PI&&(i=i-P.TWO_PI),n>P.PI&&(n=n-P.TWO_PI)),l(t)?(t.west=n,t.south=s,t.east=i,t.north=a,t):new Vn(n,s,i,a)};Vn.fromCartesianArray=function(e,t,n){t=y(t,oe.WGS84);let i=Number.MAX_VALUE,o=-Number.MAX_VALUE,r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=Number.MAX_VALUE,c=-Number.MAX_VALUE;for(let u=0,f=e.length;u=0?d.longitude:d.longitude+P.TWO_PI;r=Math.min(r,p),s=Math.max(s,p)}return o-i>s-r&&(i=r,o=s,o>P.PI&&(o=o-P.TWO_PI),i>P.PI&&(i=i-P.TWO_PI)),l(n)?(n.west=i,n.south=a,n.east=o,n.north=c,n):new Vn(i,a,o,c)};Vn.clone=function(e,t){if(l(e))return l(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new Vn(e.west,e.south,e.east,e.north)};Vn.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n};Vn.prototype.clone=function(e){return Vn.clone(this,e)};Vn.prototype.equals=function(e){return Vn.equals(this,e)};Vn.equals=function(e,t){return e===t||l(e)&&l(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north};Vn.prototype.equalsEpsilon=function(e,t){return Vn.equalsEpsilon(this,e,t)};Vn.validate=function(e){};Vn.southwest=function(e,t){return l(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new he(e.west,e.south)};Vn.northwest=function(e,t){return l(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new he(e.west,e.north)};Vn.northeast=function(e,t){return l(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new he(e.east,e.north)};Vn.southeast=function(e,t){return l(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new he(e.east,e.south)};Vn.center=function(e,t){let n=e.east,i=e.west;n0?i+=P.TWO_PI:r0&&(r+=P.TWO_PI),i=f))return l(n)?(n.west=a,n.south=u,n.east=c,n.north=f,n):new Vn(a,u,c,f)};Vn.simpleIntersection=function(e,t,n){let i=Math.max(e.west,t.west),o=Math.max(e.south,t.south),r=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(o>=s||i>=r))return l(n)?(n.west=i,n.south=o,n.east=r,n.north=s,n):new Vn(i,o,r,s)};Vn.union=function(e,t,n){l(n)||(n=new Vn);let i=e.east,o=e.west,r=t.east,s=t.west;i0?i+=P.TWO_PI:r0&&(r+=P.TWO_PI),io||P.equalsEpsilon(n,o,P.EPSILON14))&&(n=e.south&&i<=e.north};var RCe=new he;Vn.subsample=function(e,t,n,i){t=y(t,oe.WGS84),n=y(n,0),l(i)||(i=[]);let o=0,r=e.north,s=e.south,a=e.east,c=e.west,u=RCe;u.height=n,u.longitude=c,u.latitude=r,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=a,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.latitude=s,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=c,i[o]=t.cartographicToCartesian(u,i[o]),o++,r<0?u.latitude=r:s>0?u.latitude=s:u.latitude=0;for(let f=1;f<8;++f)u.longitude=-Math.PI+f*P.PI_OVER_TWO,Vn.contains(e,u)&&(i[o]=t.cartographicToCartesian(u,i[o]),o++);return u.latitude===0&&(u.longitude=c,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=a,i[o]=t.cartographicToCartesian(u,i[o]),o++),i.length=o,i};Vn.subsection=function(e,t,n,i,o,r){if(l(r)||(r=new Vn),e.west<=e.east){let a=e.east-e.west;r.west=e.west+t*a,r.east=e.west+i*a}else{let a=P.TWO_PI+e.east-e.west;r.west=P.negativePiToPi(e.west+t*a),r.east=P.negativePiToPi(e.west+i*a)}let s=e.north-e.south;return r.south=e.south+n*s,r.north=e.south+o*s,t===1&&(r.west=e.east),i===1&&(r.east=e.east),n===1&&(r.south=e.north),o===1&&(r.north=e.north),r};Vn.MAX_VALUE=Object.freeze(new Vn(-Math.PI,-P.PI_OVER_TWO,Math.PI,P.PI_OVER_TWO));var le=Vn;function Ar(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.width=y(n,0),this.height=y(i,0)}Ar.packedLength=4;Ar.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.width,t[n]=e.height,t};Ar.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Ar),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n};Ar.fromPoints=function(e,t){if(l(t)||(t=new Ar),!l(e)||e.length===0)return t.x=0,t.y=0,t.width=0,t.height=0,t;let n=e.length,i=e[0].x,o=e[0].y,r=e[0].x,s=e[0].y;for(let a=1;an.width?n.width=i:i<0&&(n.width-=i,n.x=t.x),o>n.height?n.height=o:o<0&&(n.height-=o,n.y=t.y),n};Ar.intersect=function(e,t){let n=e.x,i=e.y,o=t.x,r=t.y;return n>o+t.width||n+e.widthr+t.height?$t.OUTSIDE:$t.INTERSECTING};Ar.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height};Ar.prototype.clone=function(e){return Ar.clone(this,e)};Ar.prototype.intersect=function(e){return Ar.intersect(this,e)};Ar.prototype.equals=function(e){return Ar.equals(this,e)};var Ke=Ar;var ua={POINTS:te.POINTS,LINES:te.LINES,LINE_LOOP:te.LINE_LOOP,LINE_STRIP:te.LINE_STRIP,TRIANGLES:te.TRIANGLES,TRIANGLE_STRIP:te.TRIANGLE_STRIP,TRIANGLE_FAN:te.TRIANGLE_FAN};ua.isLines=function(e){return e===ua.LINES||e===ua.LINE_LOOP||e===ua.LINE_STRIP};ua.isTriangles=function(e){return e===ua.TRIANGLES||e===ua.TRIANGLE_STRIP||e===ua.TRIANGLE_FAN};ua.validate=function(e){return e===ua.POINTS||e===ua.LINES||e===ua.LINE_LOOP||e===ua.LINE_STRIP||e===ua.TRIANGLES||e===ua.TRIANGLE_STRIP||e===ua.TRIANGLE_FAN};var Le=Object.freeze(ua);var x0=`in vec4 position; +in vec2 textureCoordinates; + +out vec2 v_textureCoordinates; + +void main() +{ + gl_Position = position; + v_textureCoordinates = textureCoordinates; +} +`;var ur={CULL:1,OCCLUDE:2,EXECUTE_IN_CLOSEST_FRUSTUM:4,DEBUG_SHOW_BOUNDING_VOLUME:8,CAST_SHADOWS:16,RECEIVE_SHADOWS:32,PICK_ONLY:64,DEPTH_FOR_TRANSLUCENT_CLASSIFICATION:128};function $S(e){e=y(e,y.EMPTY_OBJECT),this._boundingVolume=e.boundingVolume,this._orientedBoundingBox=e.orientedBoundingBox,this._modelMatrix=e.modelMatrix,this._primitiveType=y(e.primitiveType,Le.TRIANGLES),this._vertexArray=e.vertexArray,this._count=e.count,this._offset=y(e.offset,0),this._instanceCount=y(e.instanceCount,0),this._shaderProgram=e.shaderProgram,this._uniformMap=e.uniformMap,this._renderState=e.renderState,this._framebuffer=e.framebuffer,this._pass=e.pass,this._owner=e.owner,this._debugOverlappingFrustums=0,this._pickId=e.pickId,this._flags=0,this.cull=y(e.cull,!0),this.occlude=y(e.occlude,!0),this.executeInClosestFrustum=y(e.executeInClosestFrustum,!1),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.castShadows=y(e.castShadows,!1),this.receiveShadows=y(e.receiveShadows,!1),this.pickOnly=y(e.pickOnly,!1),this.depthForTranslucentClassification=y(e.depthForTranslucentClassification,!1),this.dirty=!0,this.lastDirtyTime=0,this.derivedCommands={}}function Ra(e,t){return(e._flags&t)===t}function q_(e,t,n){n?e._flags|=t:e._flags&=~t}Object.defineProperties($S.prototype,{boundingVolume:{get:function(){return this._boundingVolume},set:function(e){this._boundingVolume!==e&&(this._boundingVolume=e,this.dirty=!0)}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox},set:function(e){this._orientedBoundingBox!==e&&(this._orientedBoundingBox=e,this.dirty=!0)}},cull:{get:function(){return Ra(this,ur.CULL)},set:function(e){Ra(this,ur.CULL)!==e&&(q_(this,ur.CULL,e),this.dirty=!0)}},occlude:{get:function(){return Ra(this,ur.OCCLUDE)},set:function(e){Ra(this,ur.OCCLUDE)!==e&&(q_(this,ur.OCCLUDE,e),this.dirty=!0)}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix!==e&&(this._modelMatrix=e,this.dirty=!0)}},primitiveType:{get:function(){return this._primitiveType},set:function(e){this._primitiveType!==e&&(this._primitiveType=e,this.dirty=!0)}},vertexArray:{get:function(){return this._vertexArray},set:function(e){this._vertexArray!==e&&(this._vertexArray=e,this.dirty=!0)}},count:{get:function(){return this._count},set:function(e){this._count!==e&&(this._count=e,this.dirty=!0)}},offset:{get:function(){return this._offset},set:function(e){this._offset!==e&&(this._offset=e,this.dirty=!0)}},instanceCount:{get:function(){return this._instanceCount},set:function(e){this._instanceCount!==e&&(this._instanceCount=e,this.dirty=!0)}},shaderProgram:{get:function(){return this._shaderProgram},set:function(e){this._shaderProgram!==e&&(this._shaderProgram=e,this.dirty=!0)}},castShadows:{get:function(){return Ra(this,ur.CAST_SHADOWS)},set:function(e){Ra(this,ur.CAST_SHADOWS)!==e&&(q_(this,ur.CAST_SHADOWS,e),this.dirty=!0)}},receiveShadows:{get:function(){return Ra(this,ur.RECEIVE_SHADOWS)},set:function(e){Ra(this,ur.RECEIVE_SHADOWS)!==e&&(q_(this,ur.RECEIVE_SHADOWS,e),this.dirty=!0)}},uniformMap:{get:function(){return this._uniformMap},set:function(e){this._uniformMap!==e&&(this._uniformMap=e,this.dirty=!0)}},renderState:{get:function(){return this._renderState},set:function(e){this._renderState!==e&&(this._renderState=e,this.dirty=!0)}},framebuffer:{get:function(){return this._framebuffer},set:function(e){this._framebuffer!==e&&(this._framebuffer=e,this.dirty=!0)}},pass:{get:function(){return this._pass},set:function(e){this._pass!==e&&(this._pass=e,this.dirty=!0)}},executeInClosestFrustum:{get:function(){return Ra(this,ur.EXECUTE_IN_CLOSEST_FRUSTUM)},set:function(e){Ra(this,ur.EXECUTE_IN_CLOSEST_FRUSTUM)!==e&&(q_(this,ur.EXECUTE_IN_CLOSEST_FRUSTUM,e),this.dirty=!0)}},owner:{get:function(){return this._owner},set:function(e){this._owner!==e&&(this._owner=e,this.dirty=!0)}},debugShowBoundingVolume:{get:function(){return Ra(this,ur.DEBUG_SHOW_BOUNDING_VOLUME)},set:function(e){Ra(this,ur.DEBUG_SHOW_BOUNDING_VOLUME)!==e&&(q_(this,ur.DEBUG_SHOW_BOUNDING_VOLUME,e),this.dirty=!0)}},debugOverlappingFrustums:{get:function(){return this._debugOverlappingFrustums},set:function(e){this._debugOverlappingFrustums!==e&&(this._debugOverlappingFrustums=e,this.dirty=!0)}},pickId:{get:function(){return this._pickId},set:function(e){this._pickId!==e&&(this._pickId=e,this.dirty=!0)}},pickOnly:{get:function(){return Ra(this,ur.PICK_ONLY)},set:function(e){Ra(this,ur.PICK_ONLY)!==e&&(q_(this,ur.PICK_ONLY,e),this.dirty=!0)}},depthForTranslucentClassification:{get:function(){return Ra(this,ur.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)},set:function(e){Ra(this,ur.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)!==e&&(q_(this,ur.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION,e),this.dirty=!0)}}});$S.shallowClone=function(e,t){if(l(e))return l(t)||(t=new $S),t._boundingVolume=e._boundingVolume,t._orientedBoundingBox=e._orientedBoundingBox,t._modelMatrix=e._modelMatrix,t._primitiveType=e._primitiveType,t._vertexArray=e._vertexArray,t._count=e._count,t._offset=e._offset,t._instanceCount=e._instanceCount,t._shaderProgram=e._shaderProgram,t._uniformMap=e._uniformMap,t._renderState=e._renderState,t._framebuffer=e._framebuffer,t._pass=e._pass,t._owner=e._owner,t._debugOverlappingFrustums=e._debugOverlappingFrustums,t._pickId=e._pickId,t._flags=e._flags,t.dirty=!0,t.lastDirtyTime=0,t};$S.prototype.execute=function(e,t){e.draw(this,t)};var it=$S;var wi={UNSIGNED_BYTE:te.UNSIGNED_BYTE,UNSIGNED_SHORT:te.UNSIGNED_SHORT,UNSIGNED_INT:te.UNSIGNED_INT,FLOAT:te.FLOAT,HALF_FLOAT:te.HALF_FLOAT_OES,UNSIGNED_INT_24_8:te.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:te.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:te.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:te.UNSIGNED_SHORT_5_6_5};wi.toWebGLConstant=function(e,t){switch(e){case wi.UNSIGNED_BYTE:return te.UNSIGNED_BYTE;case wi.UNSIGNED_SHORT:return te.UNSIGNED_SHORT;case wi.UNSIGNED_INT:return te.UNSIGNED_INT;case wi.FLOAT:return te.FLOAT;case wi.HALF_FLOAT:return t.webgl2?te.HALF_FLOAT:te.HALF_FLOAT_OES;case wi.UNSIGNED_INT_24_8:return te.UNSIGNED_INT_24_8;case wi.UNSIGNED_SHORT_4_4_4_4:return te.UNSIGNED_SHORT_4_4_4_4;case wi.UNSIGNED_SHORT_5_5_5_1:return te.UNSIGNED_SHORT_5_5_5_1;case wi.UNSIGNED_SHORT_5_6_5:return wi.UNSIGNED_SHORT_5_6_5}};wi.isPacked=function(e){return e===wi.UNSIGNED_INT_24_8||e===wi.UNSIGNED_SHORT_4_4_4_4||e===wi.UNSIGNED_SHORT_5_5_5_1||e===wi.UNSIGNED_SHORT_5_6_5};wi.sizeInBytes=function(e){switch(e){case wi.UNSIGNED_BYTE:return 1;case wi.UNSIGNED_SHORT:case wi.UNSIGNED_SHORT_4_4_4_4:case wi.UNSIGNED_SHORT_5_5_5_1:case wi.UNSIGNED_SHORT_5_6_5:case wi.HALF_FLOAT:return 2;case wi.UNSIGNED_INT:case wi.FLOAT:case wi.UNSIGNED_INT_24_8:return 4}};wi.validate=function(e){return e===wi.UNSIGNED_BYTE||e===wi.UNSIGNED_SHORT||e===wi.UNSIGNED_INT||e===wi.FLOAT||e===wi.HALF_FLOAT||e===wi.UNSIGNED_INT_24_8||e===wi.UNSIGNED_SHORT_4_4_4_4||e===wi.UNSIGNED_SHORT_5_5_5_1||e===wi.UNSIGNED_SHORT_5_6_5};var Je=Object.freeze(wi);var at={DEPTH_COMPONENT:te.DEPTH_COMPONENT,DEPTH_STENCIL:te.DEPTH_STENCIL,ALPHA:te.ALPHA,RED:te.RED,RG:te.RG,RGB:te.RGB,RGBA:te.RGBA,LUMINANCE:te.LUMINANCE,LUMINANCE_ALPHA:te.LUMINANCE_ALPHA,RGB_DXT1:te.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:te.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:te.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:te.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:te.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:te.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:te.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:te.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:te.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:te.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:te.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:te.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:te.COMPRESSED_RGBA_BPTC_UNORM};at.componentsLength=function(e){switch(e){case at.RGB:return 3;case at.RGBA:return 4;case at.LUMINANCE_ALPHA:case at.RG:return 2;case at.ALPHA:case at.RED:case at.LUMINANCE:return 1;default:return 1}};at.validate=function(e){return e===at.DEPTH_COMPONENT||e===at.DEPTH_STENCIL||e===at.ALPHA||e===at.RED||e===at.RG||e===at.RGB||e===at.RGBA||e===at.LUMINANCE||e===at.LUMINANCE_ALPHA||e===at.RGB_DXT1||e===at.RGBA_DXT1||e===at.RGBA_DXT3||e===at.RGBA_DXT5||e===at.RGB_PVRTC_4BPPV1||e===at.RGB_PVRTC_2BPPV1||e===at.RGBA_PVRTC_4BPPV1||e===at.RGBA_PVRTC_2BPPV1||e===at.RGBA_ASTC||e===at.RGB_ETC1||e===at.RGB8_ETC2||e===at.RGBA8_ETC2_EAC||e===at.RGBA_BC7};at.isColorFormat=function(e){return e===at.ALPHA||e===at.RGB||e===at.RGBA||e===at.LUMINANCE||e===at.LUMINANCE_ALPHA};at.isDepthFormat=function(e){return e===at.DEPTH_COMPONENT||e===at.DEPTH_STENCIL};at.isCompressedFormat=function(e){return e===at.RGB_DXT1||e===at.RGBA_DXT1||e===at.RGBA_DXT3||e===at.RGBA_DXT5||e===at.RGB_PVRTC_4BPPV1||e===at.RGB_PVRTC_2BPPV1||e===at.RGBA_PVRTC_4BPPV1||e===at.RGBA_PVRTC_2BPPV1||e===at.RGBA_ASTC||e===at.RGB_ETC1||e===at.RGB8_ETC2||e===at.RGBA8_ETC2_EAC||e===at.RGBA_BC7};at.isDXTFormat=function(e){return e===at.RGB_DXT1||e===at.RGBA_DXT1||e===at.RGBA_DXT3||e===at.RGBA_DXT5};at.isPVRTCFormat=function(e){return e===at.RGB_PVRTC_4BPPV1||e===at.RGB_PVRTC_2BPPV1||e===at.RGBA_PVRTC_4BPPV1||e===at.RGBA_PVRTC_2BPPV1};at.isASTCFormat=function(e){return e===at.RGBA_ASTC};at.isETC1Format=function(e){return e===at.RGB_ETC1};at.isETC2Format=function(e){return e===at.RGB8_ETC2||e===at.RGBA8_ETC2_EAC};at.isBC7Format=function(e){return e===at.RGBA_BC7};at.compressedTextureSizeInBytes=function(e,t,n){switch(e){case at.RGB_DXT1:case at.RGBA_DXT1:case at.RGB_ETC1:case at.RGB8_ETC2:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*8;case at.RGBA_DXT3:case at.RGBA_DXT5:case at.RGBA_ASTC:case at.RGBA8_ETC2_EAC:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*16;case at.RGB_PVRTC_4BPPV1:case at.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(n,8)*4+7)/8);case at.RGB_PVRTC_2BPPV1:case at.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(n,8)*2+7)/8);case at.RGBA_BC7:return Math.ceil(t/4)*Math.ceil(n/4)*16;default:return 0}};at.textureSizeInBytes=function(e,t,n,i){let o=at.componentsLength(e);return Je.isPacked(t)&&(o=1),o*Je.sizeInBytes(t)*n*i};at.alignmentInBytes=function(e,t,n){let i=at.textureSizeInBytes(e,t,n,1)%4;return i===0?4:i===2?2:1};at.createTypedArray=function(e,t,n,i){let o,r=Je.sizeInBytes(t);r===Uint8Array.BYTES_PER_ELEMENT?o=Uint8Array:r===Uint16Array.BYTES_PER_ELEMENT?o=Uint16Array:r===Float32Array.BYTES_PER_ELEMENT&&t===Je.FLOAT?o=Float32Array:o=Uint32Array;let s=at.componentsLength(e)*n*i;return new o(s)};at.flipY=function(e,t,n,i,o){if(o===1)return e;let r=at.createTypedArray(t,n,i,o),s=at.componentsLength(t),a=i*s;for(let c=0;c0&&console.log(`${Em}Vertex shader compile log: ${c}`),c=e.getShaderInfoLog(r),l(c)&&c.length>0&&console.log(`${Em}Fragment shader compile log: ${c}`),c=e.getProgramInfoLog(s),l(c)&&c.length>0&&console.log(`${Em}Shader program link log: ${c}`)),e.deleteShader(o),e.deleteShader(r),s;let u,f=t._debugShaders;throw e.getShaderParameter(r,e.COMPILE_STATUS)?e.getShaderParameter(o,e.COMPILE_STATUS)?(c=e.getProgramInfoLog(s),console.error(`${Em}Shader program link log: ${c}`),d(o,"vertex"),d(r,"fragment"),u=`Program failed to link. Link log: ${c}`):(c=e.getShaderInfoLog(o),console.error(`${Em}Vertex shader compile log: ${c}`),console.error(`${Em} Vertex shader source: +${n}`),u=`Vertex shader failed to compile. Compile log: ${c}`):(c=e.getShaderInfoLog(r),console.error(`${Em}Fragment shader compile log: ${c}`),console.error(`${Em} Fragment shader source: +${i}`),u=`Fragment shader failed to compile. Compile log: ${c}`),e.deleteShader(o),e.deleteShader(r),e.deleteProgram(s),new de(u);function d(p,g){if(!l(f))return;let h=f.getTranslatedShaderSource(p);if(h===""){console.error(`${Em}${g} shader translation failed.`);return}console.error(`${Em}Translated ${g} shaderSource: +${h}`)}}function $Ce(e,t,n){let i={};for(let o=0;o=0){if(f=n[u.slice(0,h)],!l(f))continue;d=f._locations,d.length<=1&&(p=f.value,g=e.getUniformLocation(t,u),g!==null&&(d.push(g),p.push(e.getUniform(t,g))))}else{d=[];for(let A=0;A0)n=Math.sqrt(f+1),s=.5*n,n=.5/n,i=(e[Z.COLUMN1ROW2]-e[Z.COLUMN2ROW1])*n,o=(e[Z.COLUMN2ROW0]-e[Z.COLUMN0ROW2])*n,r=(e[Z.COLUMN0ROW1]-e[Z.COLUMN1ROW0])*n;else{let d=uTe,p=0;c>a&&(p=1),u>a&&u>c&&(p=2);let g=d[p],h=d[g];n=Math.sqrt(e[Z.getElementIndex(p,p)]-e[Z.getElementIndex(g,g)]-e[Z.getElementIndex(h,h)]+1);let A=fTe;A[p]=.5*n,n=.5/n,s=(e[Z.getElementIndex(h,g)]-e[Z.getElementIndex(g,h)])*n,A[g]=(e[Z.getElementIndex(g,p)]+e[Z.getElementIndex(p,g)])*n,A[h]=(e[Z.getElementIndex(h,p)]+e[Z.getElementIndex(p,h)])*n,i=-A[0],o=-A[1],r=-A[2]}return l(t)?(t.x=i,t.y=o,t.z=r,t.w=s,t):new ot(i,o,r,s)};var YJ=new ot,qJ=new ot,rG=new ot,XJ=new ot;ot.fromHeadingPitchRoll=function(e,t){return XJ=ot.fromAxisAngle(m.UNIT_X,e.roll,YJ),rG=ot.fromAxisAngle(m.UNIT_Y,-e.pitch,t),t=ot.multiply(rG,XJ,rG),qJ=ot.fromAxisAngle(m.UNIT_Z,-e.heading,YJ),ot.multiply(qJ,t,t)};var y3=new m,sG=new m,Qf=new ot,KJ=new ot,A3=new ot;ot.packedLength=4;ot.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};ot.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ot),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};ot.packedInterpolationLength=3;ot.convertPackedArrayForInterpolation=function(e,t,n,i){ot.unpack(e,n*4,A3),ot.conjugate(A3,A3);for(let o=0,r=n-t+1;o=0?r=1:(r=-1,o=-o);let s=o-1,a=1-n,c=n*n,u=a*a;for(let g=7;g>=0;--g)Gh[g]=(x3[g]*c-C3[g])*s,Wh[g]=(x3[g]*u-C3[g])*s;let f=r*n*(1+Gh[0]*(1+Gh[1]*(1+Gh[2]*(1+Gh[3]*(1+Gh[4]*(1+Gh[5]*(1+Gh[6]*(1+Gh[7])))))))),d=a*(1+Wh[0]*(1+Wh[1]*(1+Wh[2]*(1+Wh[3]*(1+Wh[4]*(1+Wh[5]*(1+Wh[6]*(1+Wh[7])))))))),p=ot.multiplyByScalar(e,d,hTe);return ot.multiplyByScalar(t,f,i),ot.add(p,i,i)};ot.fastSquad=function(e,t,n,i,o,r){let s=ot.fastSlerp(e,t,o,sw),a=ot.fastSlerp(n,i,o,XC);return ot.fastSlerp(s,a,2*o*(1-o),r)};ot.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};ot.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n};ot.ZERO=Object.freeze(new ot(0,0,0,0));ot.IDENTITY=Object.freeze(new ot(0,0,0,1));ot.prototype.clone=function(e){return ot.clone(this,e)};ot.prototype.equals=function(e){return ot.equals(this,e)};ot.prototype.equalsEpsilon=function(e,t){return ot.equalsEpsilon(this,e,t)};ot.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Ne=ot;function pTe(e,t,n){let i=0,o=e.length-1,r,s;for(;i<=o;){if(r=~~((i+o)/2),s=n(e[r],t),s<0){i=r+1;continue}if(s>0){o=r-1;continue}return r}return~(o+1)}var wo=pTe;function _Te(e,t,n,i,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=o}var X_=_Te;function gTe(e,t,n,i,o,r,s,a){this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=o,this.second=r,this.millisecond=s,this.isLeapSecond=a}var jh=gTe;function yTe(e){return e%4===0&&e%100!==0||e%400===0}var Yh=yTe;function ATe(e,t){this.julianDate=e,this.offset=t}var Vi=ATe;var xTe={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1},Zn=Object.freeze(xTe);var CTe={UTC:0,TAI:1},Jn=Object.freeze(CTe);var $J=new jh,uG=[31,28,31,30,31,30,31,31,30,31,30,31],fG=29;function dG(e,t){return wt.compare(e.julianDate,t.julianDate)}var KC=new Vi;function E3(e){KC.julianDate=e;let t=wt.leapSeconds,n=wo(t,KC,dG);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&wt.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),wt.addSeconds(e,i,e)}function QJ(e,t){KC.julianDate=e;let n=wt.leapSeconds,i=wo(n,KC,dG);if(i<0&&(i=~i),i===0)return wt.addSeconds(e,-n[0].offset,t);if(i>=n.length)return wt.addSeconds(e,-n[i-1].offset,t);let o=wt.secondsDifference(n[i].julianDate,e);if(o===0)return wt.addSeconds(e,-n[i].offset,t);if(!(o<=1))return wt.addSeconds(e,-n[--i].offset,t)}function K_(e,t,n){let i=t/Zn.SECONDS_PER_DAY|0;return e+=i,t-=Zn.SECONDS_PER_DAY*i,t<0&&(e--,t+=Zn.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function mG(e,t,n,i,o,r,s){let a=(t-14)/12|0,c=e+4800+a,u=(1461*c/4|0)+(367*(t-2-12*a)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;i=i-12,i<0&&(i+=24);let f=r+(i*Zn.SECONDS_PER_HOUR+o*Zn.SECONDS_PER_MINUTE+s*Zn.SECONDS_PER_MILLISECOND);return f>=43200&&(u-=1),[u,f]}var TTe=/^(\d{4})$/,ETe=/^(\d{4})-(\d{2})$/,bTe=/^(\d{4})-?(\d{3})$/,STe=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,wTe=/^(\d{4})-?(\d{2})-?(\d{2})$/,hG=/([Z+\-])?(\d{2})?:?(\d{2})?$/,vTe=/^(\d{2})(\.\d+)?/.source+hG.source,DTe=/^(\d{2}):?(\d{2})(\.\d+)?/.source+hG.source,ITe=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+hG.source;function wt(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=y(e,0),t=y(t,0),n=y(n,Jn.UTC);let i=e|0;t=t+(e-i)*Zn.SECONDS_PER_DAY,K_(i,t,this),n===Jn.UTC&&E3(this)}wt.fromGregorianDate=function(e,t){let n=mG(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return l(t)?(K_(n[0],n[1],t),E3(t),t):new wt(n[0],n[1],Jn.UTC)};wt.fromDate=function(e,t){let n=mG(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return l(t)?(K_(n[0],n[1],t),E3(t),t):new wt(n[0],n[1],Jn.UTC)};wt.fromIso8601=function(e,t){e=e.replace(",",".");let n=e.split("T"),i,o=1,r=1,s=0,a=0,c=0,u=0,f=n[0],d=n[1],p,g;if(n=f.match(wTe),n!==null)i=+n[1],o=+n[2],r=+n[3];else if(n=f.match(ETe),n!==null)i=+n[1],o=+n[2];else if(n=f.match(TTe),n!==null)i=+n[1];else{let C;if(n=f.match(bTe),n!==null)i=+n[1],C=+n[2],g=Yh(i);else if(n=f.match(STe),n!==null){i=+n[1];let T=+n[2],E=+n[3]||0,S=new Date(Date.UTC(i,0,4));C=T*7+E-S.getUTCDay()-3}p=new Date(Date.UTC(i,0,1)),p.setUTCDate(C),o=p.getUTCMonth()+1,r=p.getUTCDate()}g=Yh(i);let h;if(l(d)){n=d.match(ITe),n!==null?(s=+n[1],a=+n[2],c=+n[3],u=+(n[4]||0)*1e3,h=5):(n=d.match(DTe),n!==null?(s=+n[1],a=+n[2],c=+(n[3]||0)*60,h=4):(n=d.match(vTe),n!==null&&(s=+n[1],a=+(n[2]||0)*60,h=3)));let C=n[h],T=+n[h+1],E=+(n[h+2]||0);switch(C){case"+":s=s-T,a=a-E;break;case"-":s=s+T,a=a+E;break;case"Z":break;default:a=a+new Date(Date.UTC(i,o-1,r,s,a)).getTimezoneOffset();break}}let A=c===60;for(A&&c--;a>=60;)a-=60,s++;for(;s>=24;)s-=24,r++;for(p=g&&o===2?fG:uG[o-1];r>p;)r-=p,o++,o>12&&(o-=12,i++),p=g&&o===2?fG:uG[o-1];for(;a<0;)a+=60,s--;for(;s<0;)s+=24,r--;for(;r<1;)o--,o<1&&(o+=12,i--),p=g&&o===2?fG:uG[o-1],r+=p;let x=mG(i,o,r,s,a,c,u);return l(t)?(K_(x[0],x[1],t),E3(t)):t=new wt(x[0],x[1],Jn.UTC),A&&wt.addSeconds(t,1,t),t};wt.now=function(e){return wt.fromDate(new Date,e)};var T3=new wt(0,0,Jn.TAI);wt.toGregorianDate=function(e,t){let n=!1,i=QJ(e,T3);l(i)||(wt.addSeconds(e,-1,T3),i=QJ(T3,T3),n=!0);let o=i.dayNumber,r=i.secondsOfDay;r>=43200&&(o+=1);let s=o+68569|0,a=4*s/146097|0;s=s-((146097*a+3)/4|0)|0;let c=4e3*(s+1)/1461001|0;s=s-(1461*c/4|0)+31|0;let u=80*s/2447|0,f=s-(2447*u/80|0)|0;s=u/11|0;let d=u+2-12*s|0,p=100*(a-49)+c+s|0,g=r/Zn.SECONDS_PER_HOUR|0,h=r-g*Zn.SECONDS_PER_HOUR,A=h/Zn.SECONDS_PER_MINUTE|0;h=h-A*Zn.SECONDS_PER_MINUTE;let x=h|0,C=(h-x)/Zn.SECONDS_PER_MILLISECOND;return g+=12,g>23&&(g-=24),n&&(x+=1),l(t)?(t.year=p,t.month=d,t.day=f,t.hour=g,t.minute=A,t.second=x,t.millisecond=C,t.isLeapSecond=n,t):new jh(p,d,f,g,A,x,C,n)};wt.toDate=function(e){let t=wt.toGregorianDate(e,$J),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))};wt.toIso8601=function(e,t){let n=wt.toGregorianDate(e,$J),i=n.year,o=n.month,r=n.day,s=n.hour,a=n.minute,c=n.second,u=n.millisecond;i===1e4&&o===1&&r===1&&s===0&&a===0&&c===0&&u===0&&(i=9999,o=12,r=31,s=24);let f;return!l(t)&&u!==0?(f=(u*.01).toString().replace(".",""),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`):!l(t)||t===0?`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}Z`:(f=(u*.01).toFixed(t).replace(".","").slice(0,t),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`)};wt.clone=function(e,t){if(l(e))return l(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new wt(e.dayNumber,e.secondsOfDay,Jn.TAI)};wt.compare=function(e,t){let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};wt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};wt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(wt.secondsDifference(e,t))<=n};wt.totalDays=function(e){return e.dayNumber+e.secondsOfDay/Zn.SECONDS_PER_DAY};wt.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*Zn.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};wt.daysDifference=function(e,t){let n=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/Zn.SECONDS_PER_DAY;return n+i};wt.computeTaiMinusUtc=function(e){KC.julianDate=e;let t=wt.leapSeconds,n=wo(t,KC,dG);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};wt.addSeconds=function(e,t,n){return K_(e.dayNumber,e.secondsOfDay+t,n)};wt.addMinutes=function(e,t,n){let i=e.secondsOfDay+t*Zn.SECONDS_PER_MINUTE;return K_(e.dayNumber,i,n)};wt.addHours=function(e,t,n){let i=e.secondsOfDay+t*Zn.SECONDS_PER_HOUR;return K_(e.dayNumber,i,n)};wt.addDays=function(e,t,n){let i=e.dayNumber+t;return K_(i,e.secondsOfDay,n)};wt.lessThan=function(e,t){return wt.compare(e,t)<0};wt.lessThanOrEquals=function(e,t){return wt.compare(e,t)<=0};wt.greaterThan=function(e,t){return wt.compare(e,t)>0};wt.greaterThanOrEquals=function(e,t){return wt.compare(e,t)>=0};wt.prototype.clone=function(e){return wt.clone(this,e)};wt.prototype.equals=function(e){return wt.equals(this,e)};wt.prototype.equalsEpsilon=function(e,t){return wt.equalsEpsilon(this,e,t)};wt.prototype.toString=function(){return wt.toIso8601(this)};wt.leapSeconds=[new Vi(new wt(2441317,43210,Jn.TAI),10),new Vi(new wt(2441499,43211,Jn.TAI),11),new Vi(new wt(2441683,43212,Jn.TAI),12),new Vi(new wt(2442048,43213,Jn.TAI),13),new Vi(new wt(2442413,43214,Jn.TAI),14),new Vi(new wt(2442778,43215,Jn.TAI),15),new Vi(new wt(2443144,43216,Jn.TAI),16),new Vi(new wt(2443509,43217,Jn.TAI),17),new Vi(new wt(2443874,43218,Jn.TAI),18),new Vi(new wt(2444239,43219,Jn.TAI),19),new Vi(new wt(2444786,43220,Jn.TAI),20),new Vi(new wt(2445151,43221,Jn.TAI),21),new Vi(new wt(2445516,43222,Jn.TAI),22),new Vi(new wt(2446247,43223,Jn.TAI),23),new Vi(new wt(2447161,43224,Jn.TAI),24),new Vi(new wt(2447892,43225,Jn.TAI),25),new Vi(new wt(2448257,43226,Jn.TAI),26),new Vi(new wt(2448804,43227,Jn.TAI),27),new Vi(new wt(2449169,43228,Jn.TAI),28),new Vi(new wt(2449534,43229,Jn.TAI),29),new Vi(new wt(2450083,43230,Jn.TAI),30),new Vi(new wt(2450630,43231,Jn.TAI),31),new Vi(new wt(2451179,43232,Jn.TAI),32),new Vi(new wt(2453736,43233,Jn.TAI),33),new Vi(new wt(2454832,43234,Jn.TAI),34),new Vi(new wt(2456109,43235,Jn.TAI),35),new Vi(new wt(2457204,43236,Jn.TAI),36),new Vi(new wt(2457754,43237,Jn.TAI),37)];var ee=wt;var AZ=So(Vl(),1);function PTe(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var aw=PTe;function sZ(e,t){if(e===null||typeof e!="object")return e;t=y(t,!1);let n=new e.constructor;for(let i in e)if(e.hasOwnProperty(i)){let o=e[i];t&&(o=sZ(o,t)),n[i]=o}return n}var Ye=sZ;function aZ(e,t,n){n=y(n,!1);let i={},o=l(e),r=l(t),s,a,c;if(o)for(s in e)e.hasOwnProperty(s)&&(a=e[s],r&&n&&typeof a=="object"&&t.hasOwnProperty(s)?(c=t[s],typeof c=="object"?i[s]=aZ(a,c,n):i[s]=a):i[s]=a);if(r)for(s in t)t.hasOwnProperty(s)&&!i.hasOwnProperty(s)&&(c=t[s],i[s]=c);return i}var _t=aZ;function OTe(){let e,t,n=new Promise(function(i,o){e=i,t=o});return{resolve:e,reject:t,promise:n}}var Gs=OTe;var cZ=So(Vl(),1);function pG(e,t){let n;return typeof document<"u"&&(n=document),pG._implementation(e,t,n)}pG._implementation=function(e,t,n){if(!l(t)){if(typeof n>"u")return e;t=y(n.baseURI,n.location.href)}let i=new cZ.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var qh=pG;var lZ=So(Vl(),1);function MTe(e,t){let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new lZ.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var cw=MTe;var uZ=So(Vl(),1);function RTe(e){let t=new uZ.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),i=n.lastIndexOf("."),i===-1?n="":n=n.substr(i+1),n}var T0=RTe;var fZ={};function BTe(e,t,n){l(t)||(t=e.width),l(n)||(n=e.height);let i=fZ[t];l(i)||(i={},fZ[t]=i);let o=i[n];if(!l(o)){let r=document.createElement("canvas");r.width=t,r.height=n,o=r.getContext("2d",{willReadFrequently:!0}),o.globalCompositeOperation="copy",i[n]=o}return o.drawImage(e,0,0,t,n),o.getImageData(0,0,t,n).data}var $f=BTe;var LTe=/^blob:/i;function NTe(e){return LTe.test(e)}var E0=NTe;var bm;function FTe(e){l(bm)||(bm=document.createElement("a")),bm.href=window.location.href;let t=bm.host,n=bm.protocol;return bm.href=e,bm.href=bm.href,n!==bm.protocol||t!==bm.host}var b0=FTe;var UTe=/^data:/i;function VTe(e){return UTe.test(e)}var Xh=VTe;function kTe(e){let t=document.createElement("script");return t.async=!0,t.src=e,new Promise((n,i)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");let o=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,o.removeChild(t),n()},t.onerror=function(r){i(r)},o.appendChild(t)})}var S0=kTe;function zTe(e){let t="";for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=`${encodeURIComponent(n)}=`;if(Array.isArray(i))for(let r=0,s=i.length;r0){let s=o.substring(0,r),a=o.substring(r+2);t[s]=a}}return t}var lw=jTe;function dZ(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=lw(this.responseHeaders))}dZ.prototype.toString=function(){let e="Request has failed.";return l(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var Sm=dZ;var D3=So(Vl(),1);function uw(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties(uw.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});uw.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};uw.prototype.removeEventListener=function(e,t){let n=this._listeners,i=this._scopes,o=-1;for(let r=0;r0){for(o.sort(YTe),e=0;e=0;--t)this.heapify(t)};v0.prototype.insert=function(e){let t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(oi&&(r=t[i],this._length=i),r};v0.prototype.pop=function(e){if(e=y(e,0),this._length===0)return;let t=this._array,n=t[e];return _G(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var fw=v0;function qTe(e,t){return e.priority-t.priority}var $i={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},QC=20,Ba=new fw({comparator:qTe});Ba.maximumLength=QC;Ba.reserve(QC);var wm=[],Kh={},XTe=typeof document<"u"?new D3.default(document.location.href):new D3.default,I3=new ge;function Go(){}Go.maximumRequests=50;Go.maximumRequestsPerServer=6;Go.requestsByServer={"api.cesium.com:443":18,"assets.ion.cesium.com:443":18,"ibasemaps-api.arcgis.com:443":18};Go.throttleRequests=!0;Go.debugShowStatistics=!1;Go.requestCompletedEvent=I3;Object.defineProperties(Go,{statistics:{get:function(){return $i}},priorityHeapLength:{get:function(){return QC},set:function(e){if(ee;){let t=Ba.pop();D0(t)}QC=e,Ba.maximumLength=e,Ba.reserve(e)}}});function mZ(e){l(e.priorityFunction)&&(e.priority=e.priorityFunction())}Go.serverHasOpenSlots=function(e,t){t=y(t,1);let n=y(Go.requestsByServer[e],Go.maximumRequestsPerServer);return Kh[e]+t<=n};Go.heapHasOpenSlots=function(e){return Ba.length+e<=QC};function hZ(e){return e.state===ei.UNISSUED&&(e.state=ei.ISSUED,e.deferred=Gs()),e.deferred.promise}function KTe(e){return function(t){if(e.state===ei.CANCELLED)return;let n=e.deferred;--$i.numberOfActiveRequests,--Kh[e.serverKey],I3.raiseEvent(),e.state=ei.RECEIVED,e.deferred=void 0,n.resolve(t)}}function JTe(e){return function(t){e.state!==ei.CANCELLED&&(++$i.numberOfFailedRequests,--$i.numberOfActiveRequests,--Kh[e.serverKey],I3.raiseEvent(t),e.state=ei.FAILED,e.deferred.reject(t))}}function pZ(e){let t=hZ(e);return e.state=ei.ACTIVE,wm.push(e),++$i.numberOfActiveRequests,++$i.numberOfActiveRequestsEver,++Kh[e.serverKey],e.requestFunction().then(KTe(e)).catch(JTe(e)),t}function D0(e){let t=e.state===ei.ACTIVE;if(e.state=ei.CANCELLED,++$i.numberOfCancelledRequests,l(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--$i.numberOfActiveRequests,--Kh[e.serverKey],++$i.numberOfCancelledActiveRequests),l(e.cancelFunction)&&e.cancelFunction()}Go.update=function(){let e,t,n=0,i=wm.length;for(e=0;e0&&(wm[e-n]=t)}wm.length-=n;let o=Ba.internalArray,r=Ba.length;for(e=0;e0;){if(t=Ba.pop(),t.cancelled){D0(t);continue}if(t.throttleByServer&&!Go.serverHasOpenSlots(t.serverKey)){D0(t);continue}pZ(t),++a}ZTe()};Go.getServerKey=function(e){let t=new D3.default(e);t.scheme()===""&&(t=t.absoluteTo(XTe),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=Kh[n];return l(i)||(Kh[n]=0),n};Go.request=function(e){if(Xh(e.url)||E0(e.url))return I3.raiseEvent(),e.state=ei.RECEIVED,e.requestFunction();if(++$i.numberOfAttemptedRequests,l(e.serverKey)||(e.serverKey=Go.getServerKey(e.url)),Go.throttleRequests&&e.throttleByServer&&!Go.serverHasOpenSlots(e.serverKey))return;if(!Go.throttleRequests||!e.throttle)return pZ(e);if(wm.length>=Go.maximumRequests)return;mZ(e);let t=Ba.insert(e);if(l(t)){if(t===e)return;D0(t)}return hZ(e)};function ZTe(){Go.debugShowStatistics&&($i.numberOfActiveRequests===0&&$i.lastNumberOfActiveRequests>0&&($i.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${$i.numberOfAttemptedRequests}`),$i.numberOfAttemptedRequests=0),$i.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${$i.numberOfCancelledRequests}`),$i.numberOfCancelledRequests=0),$i.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${$i.numberOfCancelledActiveRequests}`),$i.numberOfCancelledActiveRequests=0),$i.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${$i.numberOfFailedRequests}`),$i.numberOfFailedRequests=0)),$i.lastNumberOfActiveRequests=$i.numberOfActiveRequests)}Go.clearForSpecs=function(){for(;Ba.length>0;){let t=Ba.pop();D0(t)}let e=wm.length;for(let t=0;t0}}});St.prototype.toString=function(){return this.getUrlComponent(!0,!0)};St.prototype.parseUrl=function(e,t,n,i){let o=new AZ.default(e),r=$Te(o.query());this._queryParameters=t?O3(r,this.queryParameters,n):r,o.search(""),o.fragment(""),l(i)&&o.scheme()===""&&(o=o.absoluteTo(qh(i))),this._url=o.toString()};function $Te(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:kl(e)}function O3(e,t,n){if(!n)return _t(e,t);let i=Ye(e,!0);for(let o in t)if(t.hasOwnProperty(o)){let r=i[o],s=t[o];l(r)?(Array.isArray(r)||(r=i[o]=[r]),i[o]=r.concat(s)):i[o]=Array.isArray(s)?s.slice():s}return i}St.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${eEe(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let i=this._templateValues;return Object.keys(i).length>0&&(n=n.replace(/{(.*?)}/g,function(o,r){let s=i[r];return l(s)?encodeURIComponent(s):o})),t&&l(this.proxy)&&(n=this.proxy.getURL(n)),n};function eEe(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!l(e[t[0]])?`?${t[0]}`:`?${w0(e)}`}St.prototype.setQueryParameters=function(e,t){t?this._queryParameters=O3(this._queryParameters,e,!1):this._queryParameters=O3(e,this._queryParameters,!1)};St.prototype.appendQueryParameters=function(e){this._queryParameters=O3(e,this._queryParameters,!0)};St.prototype.setTemplateValues=function(e,t){t?this._templateValues=_t(this._templateValues,e):this._templateValues=_t(e,this._templateValues)};St.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,l(e.url)){let n=y(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return l(e.queryParameters)&&(t._queryParameters=_t(e.queryParameters,t.queryParameters)),l(e.templateValues)&&(t._templateValues=_t(e.templateValues,t.templateValues)),l(e.headers)&&(t.headers=_t(e.headers,t.headers)),l(e.proxy)&&(t.proxy=e.proxy),l(e.request)&&(t.request=e.request),l(e.retryCallback)&&(t.retryCallback=e.retryCallback),l(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};St.prototype.retryOnError=function(e){let t=this.retryCallback;if(typeof t!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(t(this,e)).then(function(i){return++n._retryCount,i})};St.prototype.clone=function(e){return l(e)?(e._url=this._url,e._queryParameters=Ye(this._queryParameters),e._templateValues=Ye(this._templateValues),e.headers=Ye(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new St({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1})};St.prototype.getBaseUri=function(e){return cw(this.getUrlComponent(e),e)};St.prototype.appendForwardSlash=function(){this._url=aw(this._url)};St.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};St.fetchArrayBuffer=function(e){return new St(e).fetchArrayBuffer()};St.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};St.fetchBlob=function(e){return new St(e).fetchBlob()};St.prototype.fetchImage=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.preferImageBitmap,!1),n=y(e.preferBlob,!1),i=y(e.flipY,!1),o=y(e.skipColorSpaceConversion,!1);if(yG(this.request),!xZ||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return gG({resource:this,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:t});let r=this.fetchBlob();if(!l(r))return;let s,a,c,u;return St.supportsImageBitmapOptions().then(function(f){return s=f,a=s&&t,r}).then(function(f){if(!l(f))return;if(u=f,a)return St.createImageBitmapFromBlob(f,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o});let d=window.URL.createObjectURL(f);return c=new St({url:d}),gG({resource:c,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:!1})}).then(function(f){if(l(f))return f.blob=u,a||window.URL.revokeObjectURL(c.url),f}).catch(function(f){return l(c)&&window.URL.revokeObjectURL(c.url),f.blob=u,Promise.reject(f)})};function gG(e){let t=e.resource,n=e.flipY,i=e.skipColorSpaceConversion,o=e.preferImageBitmap,r=t.request;r.url=t.url,r.requestFunction=function(){let a=!1;!t.isDataUri&&!t.isBlobUri&&(a=t.isCrossOriginUrl);let c=Gs();return St._Implementations.createImage(r,a,c,n,i,o),c.promise};let s=La.request(r);if(l(s))return s.catch(function(a){return r.state!==ei.FAILED?Promise.reject(a):t.retryOnError(a).then(function(c){return c?(r.state=ei.UNISSUED,r.deferred=void 0,gG({resource:t,flipY:n,skipColorSpaceConversion:i,preferImageBitmap:o})):Promise.reject(a)})})}St.fetchImage=function(e){return new St(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};St.prototype.fetchText=function(){return this.fetch({responseType:"text"})};St.fetchText=function(e){return new St(e).fetchText()};St.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(l(e))return e.then(function(t){if(l(t))return JSON.parse(t)})};St.fetchJson=function(e){return new St(e).fetchJson()};St.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};St.fetchXML=function(e){return new St(e).fetchXML()};St.prototype.fetchJsonp=function(e){e=y(e,"callback"),yG(this.request);let t;do t=`loadJsonp${P.nextRandomNumber().toString().substring(2,8)}`;while(l(window[t]));return CZ(this,e,t)};function CZ(e,t,n){let i={};i[t]=n,e.setQueryParameters(i);let o=e.request,r=e.url;o.url=r,o.requestFunction=function(){let a=Gs();return window[n]=function(c){a.resolve(c);try{delete window[n]}catch{window[n]=void 0}},St._Implementations.loadAndExecuteScript(r,n,a),a.promise};let s=La.request(o);if(l(s))return s.catch(function(a){return o.state!==ei.FAILED?Promise.reject(a):e.retryOnError(a).then(function(c){return c?(o.state=ei.UNISSUED,o.deferred=void 0,CZ(e,t,n)):Promise.reject(a)})})}St.fetchJsonp=function(e){return new St(e).fetchJsonp(e.callbackParameterName)};St.prototype._makeRequest=function(e){let t=this;yG(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let r=e.responseType,s=_t(e.headers,t.headers),a=e.overrideMimeType,c=e.method,u=e.data,f=Gs(),d=St._Implementations.loadWithXhr(i,r,c,u,s,f,a);return l(d)&&l(d.abort)&&(n.cancelFunction=function(){d.abort()}),f.promise};let o=La.request(n);if(l(o))return o.then(function(r){return n.cancelFunction=void 0,r}).catch(function(r){return n.cancelFunction=void 0,n.state!==ei.FAILED?Promise.reject(r):t.retryOnError(r).then(function(s){return s?(n.state=ei.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)})})};function yG(e){if(e.state===ei.ISSUED||e.state===ei.ACTIVE)throw new de("The Resource is already being fetched.");e.state=ei.UNISSUED,e.deferred=void 0}var tEe=/^data:(.*?)(;base64)?,(.*)$/;function P3(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function gZ(e,t){let n=P3(e,t),i=new ArrayBuffer(n.length),o=new Uint8Array(i);for(let r=0;r(a=u.parse(e),c=f,a.protocol==="https:"?import("https"):import("http"))).then(u=>{let f={protocol:a.protocol,hostname:a.hostname,port:a.port,path:a.path,query:a.query,method:n,headers:o};u.request(f).on("response",function(d){if(d.statusCode<200||d.statusCode>=300){r.reject(new Sm(d.statusCode,d,d.headers));return}let p=[];d.on("data",function(g){p.push(g)}),d.on("end",function(){let g=Buffer.concat(p);d.headers["content-encoding"]==="gzip"?c.gunzip(g,function(h,A){h?r.reject(new de("Error decompressing response.")):r.resolve(yZ(A,t))}):r.resolve(yZ(g,t))})}).on("error",function(d){r.reject(new Sm)}).end()})}var oEe=typeof XMLHttpRequest>"u";St._Implementations.loadWithXhr=function(e,t,n,i,o,r,s){let a=tEe.exec(e);if(a!==null){r.resolve(nEe(a,t));return}if(oEe){iEe(e,t,n,i,o,r,s);return}let c=new XMLHttpRequest;if(eT.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),l(s)&&l(c.overrideMimeType)&&c.overrideMimeType(s),l(o))for(let f in o)o.hasOwnProperty(f)&&c.setRequestHeader(f,o[f]);l(t)&&(c.responseType=t);let u=!1;return typeof e=="string"&&(u=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),c.onload=function(){if((c.status<200||c.status>=300)&&!(u&&c.status===0)){r.reject(new Sm(c.status,c.response,c.getAllResponseHeaders()));return}let f=c.response,d=c.responseType;if(n==="HEAD"||n==="OPTIONS"){let g=c.getAllResponseHeaders().trim().split(/[\r\n]+/),h={};g.forEach(function(A){let x=A.split(": "),C=x.shift();h[C]=x.join(": ")}),r.resolve(h);return}if(c.status===204)r.resolve();else if(l(f)&&(!l(t)||d===t))r.resolve(f);else if(t==="json"&&typeof f=="string")try{r.resolve(JSON.parse(f))}catch(p){r.reject(p)}else(d===""||d==="document")&&l(c.responseXML)&&c.responseXML.hasChildNodes()?r.resolve(c.responseXML):(d===""||d==="text")&&l(c.responseText)?r.resolve(c.responseText):r.reject(new de("Invalid XMLHttpRequest response type."))},c.onerror=function(f){r.reject(new Sm)},c.send(i),c};St._Implementations.loadAndExecuteScript=function(e,t,n){return S0(e,t).catch(function(i){n.reject(i)})};St._DefaultImplementations={};St._DefaultImplementations.createImage=St._Implementations.createImage;St._DefaultImplementations.loadWithXhr=St._Implementations.loadWithXhr;St._DefaultImplementations.loadAndExecuteScript=St._Implementations.loadAndExecuteScript;St.DEFAULT=Object.freeze(new St({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var we=St;function hw(e){e=y(e,y.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=y(e.addNewLeapSeconds,!0),l(e.data)?TZ(this,e.data):TZ(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}hw.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new de(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new hw({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};hw.NONE=Object.freeze({compute:function(e,t){return l(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new X_(0,0,0,0,0),t}});hw.prototype.compute=function(e,t){if(!l(this._samples))return;if(l(t)||(t=new X_(0,0,0,0,0)),this._samples.length===0)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;let n=this._dates,i=this._lastIndex,o=0,r=0;if(l(i)){let a=n[i],c=n[i+1],u=ee.lessThanOrEquals(a,e),f=!l(c),d=f||ee.greaterThanOrEquals(c,e);if(u&&d)return o=i,!f&&c.equals(e)&&++o,r=o+1,bZ(this,n,this._samples,e,o,r,t),t}let s=wo(n,e,ee.compare,this._dateColumn);return s>=0?(st.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;let c=t[o],u=t[r];if(c.equals(u)||i.equals(c))return EZ(e,n,o,a,s),s;if(i.equals(u))return EZ(e,n,r,a,s),s;let f=ee.secondsDifference(i,c)/ee.secondsDifference(u,c),d=o*a,p=r*a,g=n[d+e._ut1MinusUtcSecondsColumn],h=n[p+e._ut1MinusUtcSecondsColumn],A=h-g;if(A>.5||A<-.5){let x=n[d+e._taiMinusUtcSecondsColumn],C=n[p+e._taiMinusUtcSecondsColumn];x!==C&&(u.equals(i)?g=h:h-=C-x)}return s.xPoleWander=mw(f,n[d+e._xPoleWanderRadiansColumn],n[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=mw(f,n[d+e._yPoleWanderRadiansColumn],n[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=mw(f,n[d+e._xCelestialPoleOffsetRadiansColumn],n[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=mw(f,n[d+e._yCelestialPoleOffsetRadiansColumn],n[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=mw(f,g,h),s}var pw=hw;function Na(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.roll=y(n,0)}Na.fromQuaternion=function(e,t){l(t)||(t=new Na);let n=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),o=2*(e.w*e.x+e.y*e.z),r=1-2*(e.y*e.y+e.z*e.z),s=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(s,r),t.roll=Math.atan2(o,i),t.pitch=-P.asinClamped(n),t};Na.fromDegrees=function(e,t,n,i){return l(i)||(i=new Na),i.heading=e*P.RADIANS_PER_DEGREE,i.pitch=t*P.RADIANS_PER_DEGREE,i.roll=n*P.RADIANS_PER_DEGREE,i};Na.clone=function(e,t){if(l(e))return l(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new Na(e.heading,e.pitch,e.roll)};Na.equals=function(e,t){return e===t||l(e)&&l(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};Na.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.heading,t.heading,n,i)&&P.equalsEpsilon(e.pitch,t.pitch,n,i)&&P.equalsEpsilon(e.roll,t.roll,n,i)};Na.prototype.clone=function(e){return Na.clone(this,e)};Na.prototype.equals=function(e){return Na.equals(this,e)};Na.prototype.equalsEpsilon=function(e,t,n){return Na.equalsEpsilon(this,e,t,n)};Na.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var Fa=Na;var SZ=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function sEe(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t"u"?e:(l(nT)||(nT=document.createElement("a")),nT.href=e,nT.href=nT.href,nT.href)}var I0;function vZ(){if(l(I0))return I0;let e;return typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(j_.toUrl)?e=qh("..",P0("Core/buildModuleUrl.js")):e=sEe(),I0=new we({url:wZ(e)}),I0.appendForwardSlash(),I0}function aEe(e){return wZ(j_.toUrl(`../${e}`))}function DZ(e){return vZ().getDerivedResource({url:e}).url}var M3;function P0(e){return l(M3)||(typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(j_.toUrl)?M3=aEe:M3=DZ),M3(e)}P0._cesiumScriptRegex=SZ;P0._buildModuleUrlFromBaseUrl=DZ;P0._clearBaseResource=function(){I0=void 0};P0.setBaseUrl=function(e){I0=we.DEFAULT.getDerivedResource({url:e})};P0.getCesiumBaseUrl=vZ;var en=P0;function cEe(e,t,n){this.x=e,this.y=t,this.s=n}var O0=cEe;function CG(e){e=y(e,y.EMPTY_OBJECT),this._xysFileUrlTemplate=we.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=y(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=y(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new ee(this._sampleZeroJulianEphemerisDate,0,Jn.TAI),this._stepSizeDays=y(e.stepSizeDays,1),this._samplesPerXysFile=y(e.samplesPerXysFile,1e3),this._totalSamples=y(e.totalSamples,27426),this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),o=Math.pow(this._stepSizeDays,t);for(let r=0;r<=t;++r){n[r]=o,i[r]=r*this._stepSizeDays;for(let s=0;s<=t;++s)s!==r&&(n[r]*=r-s);n[r]=1/n[r]}this._work=new Array(t+1),this._coef=new Array(t+1)}var lEe=new ee(0,0,Jn.TAI);function AG(e,t,n){let i=lEe;return i.dayNumber=t,i.secondsOfDay=n,ee.daysDifference(i,e._sampleZeroDateTT)}CG.prototype.preload=function(e,t,n,i){let o=AG(this,e,t),r=AG(this,n,i),s=o/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);let a=r/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;a>=this._totalSamples&&(a=this._totalSamples-1);let c=s/this._samplesPerXysFile|0,u=a/this._samplesPerXysFile|0,f=[];for(let d=c;d<=u;++d)f.push(xG(this,d));return Promise.all(f)};CG.prototype.computeXysRadians=function(e,t,n){let i=AG(this,e,t);if(i<0)return;let o=i/this._stepSizeDays|0;if(o>=this._totalSamples)return;let r=this._interpolationOrder,s=o-(r/2|0);s<0&&(s=0);let a=s+r;a>=this._totalSamples&&(a=this._totalSamples-1,s=a-r,s<0&&(s=0));let c=!1,u=this._samples;if(l(u[s*3])||(xG(this,s/this._samplesPerXysFile|0),c=!0),l(u[a*3])||(xG(this,a/this._samplesPerXysFile|0),c=!0),c)return;l(n)?(n.x=0,n.y=0,n.s=0):n=new O0(0,0,0);let f=i-s*this._stepSizeDays,d=this._work,p=this._denominators,g=this._coef,h=this._xTable,A,x;for(A=0;A<=r;++A)d[A]=f-h[A];for(A=0;A<=r;++A){for(g[A]=1,x=0;x<=r;++x)x!==A&&(g[A]*=d[x]);g[A]*=p[A];let C=(s+A)*3;n.x+=g[A]*u[C++],n.y+=g[A]*u[C++],n.s+=g[A]*u[C]}return n};function xG(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,i=e._xysFileUrlTemplate;l(i)?n=i.getDerivedResource({templateValues:{0:t}}):n=new we({url:en(`Assets/IAU2006_XYS/IAU2006_XYS_${t}.json`)});let o=n.fetchJson().then(function(r){e._chunkDownloadsInProgress[t]=!1;let s=e._samples,a=r.samples,c=t*e._samplesPerXysFile*3;for(let u=0,f=a.length;u=43200?o=(r+.5)/Zn.DAYS_PER_JULIAN_CENTURY:o=(r-.5)/Zn.DAYS_PER_JULIAN_CENTURY;let a=(xEe+o*(CEe+o*(TEe+o*EEe)))*wEe%P.TWO_PI,c=SEe+bEe*(n-24515455e-1),u=(i+Zn.SECONDS_PER_DAY*.5)%Zn.SECONDS_PER_DAY,f=a+c*u,d=Math.cos(f),p=Math.sin(f);return l(t)?(t[0]=d,t[1]=-p,t[2]=0,t[3]=p,t[4]=d,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new Z(d,p,0,-p,d,0,0,0,1)};ji.iau2006XysData=new _w;ji.earthOrientationParameters=pw.NONE;var wG=32.184,vEe=2451545;ji.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+wG,i=e.stop.dayNumber,o=e.stop.secondsOfDay+wG;return ji.iau2006XysData.preload(t,n,i,o)};ji.computeIcrfToFixedMatrix=function(e,t){l(t)||(t=new Z);let n=ji.computeFixedToIcrfMatrix(e,t);if(l(n))return Z.transpose(n,t)};var DEe=new O0(0,0,0),IEe=new X_(0,0,0,0,0,0),bG=new Z,SG=new Z;ji.computeFixedToIcrfMatrix=function(e,t){l(t)||(t=new Z);let n=ji.earthOrientationParameters.compute(e,IEe);if(!l(n))return;let i=e.dayNumber,o=e.secondsOfDay+wG,r=ji.iau2006XysData.computeXysRadians(i,o,DEe);if(!l(r))return;let s=r.x+n.xPoleOffset,a=r.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-s*s-a*a)),u=bG;u[0]=1-c*s*s,u[3]=-c*s*a,u[6]=s,u[1]=-c*s*a,u[4]=1-c*a*a,u[7]=a,u[2]=-s,u[5]=-a,u[8]=1-c*(s*s+a*a);let f=Z.fromRotationZ(-r.s,SG),d=Z.multiply(u,f,bG),p=e.dayNumber,g=e.secondsOfDay-ee.computeTaiMinusUtc(e)+n.ut1MinusUtc,h=p-2451545,A=g/Zn.SECONDS_PER_DAY,x=.779057273264+A+.00273781191135448*(h+A);x=x%1*P.TWO_PI;let C=Z.fromRotationZ(x,SG),T=Z.multiply(d,C,bG),E=Math.cos(n.xPoleWander),S=Math.cos(n.yPoleWander),v=Math.sin(n.xPoleWander),D=Math.sin(n.yPoleWander),O=i-vEe+o/Zn.SECONDS_PER_DAY;O/=36525;let M=-47e-6*O*P.RADIANS_PER_DEGREE/3600,L=Math.cos(M),N=Math.sin(M),_=SG;return _[0]=E*L,_[1]=E*N,_[2]=v,_[3]=-S*N+D*v*L,_[4]=S*L+D*v*N,_[5]=-D*E,_[6]=-D*N-S*v*L,_[7]=D*L-S*v*N,_[8]=S*E,Z.multiply(T,_,t)};var PEe=new re;ji.pointToWindowCoordinates=function(e,t,n,i){return i=ji.pointToGLWindowCoordinates(e,t,n,i),i.y=2*t[5]-i.y,i};ji.pointToGLWindowCoordinates=function(e,t,n,i){l(i)||(i=new H);let o=PEe;return B.multiplyByVector(e,re.fromElements(n.x,n.y,n.z,1,o),o),re.multiplyByScalar(o,1/o.w,o),B.multiplyByVector(t,o,o),H.fromCartesian4(o,i)};var OEe=new m,MEe=new m,REe=new m;ji.rotationMatrixFromPositionVelocity=function(e,t,n,i){let o=y(n,oe.WGS84).geodeticSurfaceNormal(e,OEe),r=m.cross(t,o,MEe);m.equalsEpsilon(r,m.ZERO,P.EPSILON6)&&(r=m.clone(m.UNIT_X,r));let s=m.cross(r,t,REe);return m.normalize(s,s),m.cross(t,s,r),m.negate(r,r),m.normalize(r,r),l(i)||(i=new Z),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=r.x,i[4]=r.y,i[5]=r.z,i[6]=s.x,i[7]=s.y,i[8]=s.z,i};var PZ=new B(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),OZ=new he,MZ=new m,BEe=new m,LEe=new Z,vG=new B,RZ=new B;ji.basisTo2D=function(e,t,n){let i=B.getTranslation(t,BEe),o=e.ellipsoid,r=o.cartesianToCartographic(i,OZ),s=e.project(r,MZ);m.fromElements(s.z,s.x,s.y,s);let a=ji.eastNorthUpToFixedFrame(i,o,vG),c=B.inverseTransformation(a,RZ),u=B.getMatrix3(t,LEe),f=B.multiplyByMatrix3(c,u,n);return B.multiply(PZ,f,n),B.setTranslation(n,s,n),n};ji.wgs84To2DModelMatrix=function(e,t,n){let i=e.ellipsoid,o=ji.eastNorthUpToFixedFrame(t,i,vG),r=B.inverseTransformation(o,RZ),s=i.cartesianToCartographic(t,OZ),a=e.project(s,MZ);m.fromElements(a.z,a.x,a.y,a);let c=B.fromTranslation(a,vG);return B.multiply(PZ,r,n),B.multiply(c,n,n),n};var Rt=ji;function DG(e){e=y(e,y.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=y(e.primitiveType,Le.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=y(e.geometryType,Hu.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}DG.computeNumberOfVertices=function(e){let t=-1;for(let n in e.attributes)if(e.attributes.hasOwnProperty(n)&&l(e.attributes[n])&&l(e.attributes[n].values)){let i=e.attributes[n];t=i.values.length/i.componentsPerAttribute}return t};var NEe=new he,FEe=new m,BZ=new B,UEe=[new he,new he,new he],VEe=[new H,new H,new H],kEe=[new H,new H,new H],zEe=new m,HEe=new Ne,GEe=new B,WEe=new Qi;DG._textureCoordinateRotationPoints=function(e,t,n,i){let o,r=le.center(i,NEe),s=he.toCartesian(r,n,FEe),a=Rt.eastNorthUpToFixedFrame(s,n,BZ),c=B.inverse(a,BZ),u=VEe,f=UEe;f[0].longitude=i.west,f[0].latitude=i.south,f[1].longitude=i.west,f[1].latitude=i.north,f[2].longitude=i.east,f[2].latitude=i.south;let d=zEe;for(o=0;o<3;o++)he.toCartesian(f[o],n,d),d=B.multiplyByPointAsVector(c,d,d),u[o].x=d.x,u[o].y=d.y;let p=Ne.fromAxisAngle(m.UNIT_Z,-t,HEe),g=Z.fromQuaternion(p,GEe),h=e.length,A=Number.POSITIVE_INFINITY,x=Number.POSITIVE_INFINITY,C=Number.NEGATIVE_INFINITY,T=Number.NEGATIVE_INFINITY;for(o=0;o=this._maximumActiveTasks)return;++this._activeTasks;let n=this;return Promise.resolve(NZ()).then(function(i){l(t)?i||(t.length=0):t=XEe;let o=n._nextID++,r=Gs();return n._deferreds[o]=r,n._worker.postMessage({id:o,parameters:e,canTransferArrayBuffer:i},t),r.promise})};fa.prototype.initWebAssemblyModule=function(e){l(this._worker)||(this._worker=VZ(this));let t=Gs(),n=this,i=this._worker;return qEe(this,e).then(function(o){return Promise.resolve(NZ()).then(function(r){let s,a=o.wasmBinary;l(a)&&r&&(s=[a]),i.onmessage=function(c){i.onmessage=function(u){FZ(n,u.data)},t.resolve(c.data)},i.postMessage({webAssemblyConfig:o},s)})}),t.promise};fa.prototype.isDestroyed=function(){return!1};fa.prototype.destroy=function(){return l(this._worker)&&this._worker.terminate(),ue(this)};fa.taskCompletedEvent=PG;fa._defaultWorkerModulePrefix="Workers/";fa._workerModulePrefix=fa._defaultWorkerModulePrefix;fa._canTransferArrayBuffer=void 0;var hi=fa;function Jh(){}Jh._transcodeTaskProcessor=new hi("transcodeKTX2",Number.POSITIVE_INFINITY);Jh._readyPromise=void 0;function KEe(){let e=Jh._transcodeTaskProcessor.initWebAssemblyModule({modulePath:"ThirdParty/Workers/basis_transcoder.js",wasmBinaryFile:"ThirdParty/basis_transcoder.wasm"}).then(function(){return Jh._transcodeTaskProcessor});Jh._readyPromise=e}Jh.transcode=function(e,t){return l(Jh._readyPromise)||KEe(),Jh._readyPromise.then(function(n){let i;if(e instanceof ArrayBuffer){let o=new Uint8Array(e);return i={supportedTargetFormats:t,ktx2Buffer:o},n.scheduleTask(i,[e])}return i={supportedTargetFormats:t,ktx2Buffer:e},n.scheduleTask(i,[e.buffer])}).then(function(n){let i=n.length,o=Object.keys(n[0]),r=o.length,s;for(s=0;s1/pi. + * + * @alias czm_oneOverPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverPi = ...; + * + * // Example + * float pi = 1.0 / czm_oneOverPi; + */ +const float czm_oneOverPi = 0.3183098861837907; +`;var Mw=`/** + * A built-in GLSL floating-point constant for 1/2pi. + * + * @alias czm_oneOverTwoPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_TWO_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverTwoPi = ...; + * + * // Example + * float pi = 2.0 * czm_oneOverTwoPi; + */ +const float czm_oneOverTwoPi = 0.15915494309189535; +`;var Rw=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE} + * + * @name czm_passCesium3DTile + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTile = 4.0; +`;var Bw=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION} + * + * @name czm_passCesium3DTileClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassification = 5.0; +`;var Lw=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW} + * + * @name czm_passCesium3DTileClassificationIgnoreShow + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassificationIgnoreShow = 6.0; +`;var Nw=`/** + * The automatic GLSL constant for {@link Pass#CLASSIFICATION} + * + * @name czm_passClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passClassification = 7.0; +`;var Fw=`/** + * The automatic GLSL constant for {@link Pass#COMPUTE} + * + * @name czm_passCompute + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCompute = 1.0; +`;var Uw=`/** + * The automatic GLSL constant for {@link Pass#ENVIRONMENT} + * + * @name czm_passEnvironment + * @glslConstant + * + * @see czm_pass + */ +const float czm_passEnvironment = 0.0; +`;var Vw=`/** + * The automatic GLSL constant for {@link Pass#GLOBE} + * + * @name czm_passGlobe + * @glslConstant + * + * @see czm_pass + */ +const float czm_passGlobe = 2.0; +`;var kw=`/** + * The automatic GLSL constant for {@link Pass#OPAQUE} + * + * @name czm_passOpaque + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOpaque = 7.0; +`;var zw=`/** + * The automatic GLSL constant for {@link Pass#OVERLAY} + * + * @name czm_passOverlay + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOverlay = 10.0; +`;var Hw=`/** + * The automatic GLSL constant for {@link Pass#TERRAIN_CLASSIFICATION} + * + * @name czm_passTerrainClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTerrainClassification = 3.0; +`;var Gw=`/** + * The automatic GLSL constant for {@link Pass#TRANSLUCENT} + * + * @name czm_passTranslucent + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTranslucent = 8.0; +`;var Ww=`/** + * The automatic GLSL constant for {@link Pass#VOXELS} + * + * @name czm_passVoxels + * @glslConstant + * + * @see czm_pass + */ +const float czm_passVoxels = 9.0; +`;var jw=`/** + * A built-in GLSL floating-point constant for Math.PI. + * + * @alias czm_pi + * @glslConstant + * + * @see CesiumMath.PI + * + * @example + * // GLSL declaration + * const float czm_pi = ...; + * + * // Example + * float twoPi = 2.0 * czm_pi; + */ +const float czm_pi = 3.141592653589793; +`;var Yw=`/** + * A built-in GLSL floating-point constant for pi/4. + * + * @alias czm_piOverFour + * @glslConstant + * + * @see CesiumMath.PI_OVER_FOUR + * + * @example + * // GLSL declaration + * const float czm_piOverFour = ...; + * + * // Example + * float pi = 4.0 * czm_piOverFour; + */ +const float czm_piOverFour = 0.7853981633974483; +`;var qw=`/** + * A built-in GLSL floating-point constant for pi/6. + * + * @alias czm_piOverSix + * @glslConstant + * + * @see CesiumMath.PI_OVER_SIX + * + * @example + * // GLSL declaration + * const float czm_piOverSix = ...; + * + * // Example + * float pi = 6.0 * czm_piOverSix; + */ +const float czm_piOverSix = 0.5235987755982988; +`;var Xw=`/** + * A built-in GLSL floating-point constant for pi/3. + * + * @alias czm_piOverThree + * @glslConstant + * + * @see CesiumMath.PI_OVER_THREE + * + * @example + * // GLSL declaration + * const float czm_piOverThree = ...; + * + * // Example + * float pi = 3.0 * czm_piOverThree; + */ +const float czm_piOverThree = 1.0471975511965976; +`;var Kw=`/** + * A built-in GLSL floating-point constant for pi/2. + * + * @alias czm_piOverTwo + * @glslConstant + * + * @see CesiumMath.PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_piOverTwo = ...; + * + * // Example + * float pi = 2.0 * czm_piOverTwo; + */ +const float czm_piOverTwo = 1.5707963267948966; +`;var Jw=`/** + * A built-in GLSL floating-point constant for converting degrees to radians. + * + * @alias czm_radiansPerDegree + * @glslConstant + * + * @see CesiumMath.RADIANS_PER_DEGREE + * + * @example + * // GLSL declaration + * const float czm_radiansPerDegree = ...; + * + * // Example + * float rad = czm_radiansPerDegree * deg; + */ +const float czm_radiansPerDegree = 0.017453292519943295; +`;var Zw=`/** + * The constant identifier for the 2D {@link SceneMode} + * + * @name czm_sceneMode2D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode2D = 2.0; +`;var Qw=`/** + * The constant identifier for the 3D {@link SceneMode} + * + * @name czm_sceneMode3D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode3D = 3.0; +`;var $w=`/** + * The constant identifier for the Columbus View {@link SceneMode} + * + * @name czm_sceneModeColumbusView + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneModeColumbusView = 1.0; +`;var ev=`/** + * The constant identifier for the Morphing {@link SceneMode} + * + * @name czm_sceneModeMorphing + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + */ +const float czm_sceneModeMorphing = 0.0; +`;var tv=`/** + * A built-in GLSL floating-point constant for one solar radius. + * + * @alias czm_solarRadius + * @glslConstant + * + * @see CesiumMath.SOLAR_RADIUS + * + * @example + * // GLSL declaration + * const float czm_solarRadius = ...; + */ +const float czm_solarRadius = 695500000.0; +`;var nv=`/** + * A built-in GLSL floating-point constant for 3pi/2. + * + * @alias czm_threePiOver2 + * @glslConstant + * + * @see CesiumMath.THREE_PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_threePiOver2 = ...; + * + * // Example + * float pi = (2.0 / 3.0) * czm_threePiOver2; + */ +const float czm_threePiOver2 = 4.71238898038469; +`;var iv=`/** + * A built-in GLSL floating-point constant for 2pi. + * + * @alias czm_twoPi + * @glslConstant + * + * @see CesiumMath.TWO_PI + * + * @example + * // GLSL declaration + * const float czm_twoPi = ...; + * + * // Example + * float pi = czm_twoPi / 2.0; + */ +const float czm_twoPi = 6.283185307179586; +`;var ov=`/** + * The maximum latitude, in radians, both North and South, supported by a Web Mercator + * (EPSG:3857) projection. Technically, the Mercator projection is defined + * for any latitude up to (but not including) 90 degrees, but it makes sense + * to cut it off sooner because it grows exponentially with increasing latitude. + * The logic behind this particular cutoff value, which is the one used by + * Google Maps, Bing Maps, and Esri, is that it makes the projection + * square. That is, the rectangle is equal in the X and Y directions. + * + * The constant value is computed as follows: + * czm_pi * 0.5 - (2.0 * atan(exp(-czm_pi))) + * + * @name czm_webMercatorMaxLatitude + * @glslConstant + */ +const float czm_webMercatorMaxLatitude = 1.4844222297453324; +`;var rv=`/** + * @name czm_depthRangeStruct + * @glslStruct + */ +struct czm_depthRangeStruct +{ + float near; + float far; +}; +`;var sv=`/** + * Holds material information that can be used for lighting. Returned by all czm_getMaterial functions. + * + * @name czm_material + * @glslStruct + * + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} specular Intensity of incoming light reflecting in a single direction. + * @property {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * @property {vec3} normal Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {vec3} emission Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + */ +struct czm_material +{ + vec3 diffuse; + float specular; + float shininess; + vec3 normal; + vec3 emission; + float alpha; +}; +`;var av=`/** + * Used as input to every material's czm_getMaterial function. + * + * @name czm_materialInput + * @glslStruct + * + * @property {float} s 1D texture coordinates. + * @property {vec2} st 2D texture coordinates. + * @property {vec3} str 3D texture coordinates. + * @property {vec3} normalEC Unperturbed surface normal in eye coordinates. + * @property {mat3} tangentToEyeMatrix Matrix for converting a tangent space normal to eye space. + * @property {vec3} positionToEyeEC Vector from the fragment to the eye in eye coordinates. The magnitude is the distance in meters from the fragment to the eye. + * @property {float} height The height of the terrain in meters above or below the WGS84 ellipsoid. Only available for globe materials. + * @property {float} slope The slope of the terrain in radians. 0 is flat; pi/2 is vertical. Only available for globe materials. + * @property {float} aspect The aspect of the terrain in radians. 0 is East, pi/2 is North, pi is West, 3pi/2 is South. Only available for globe materials. + */ +struct czm_materialInput +{ + float s; + vec2 st; + vec3 str; + vec3 normalEC; + mat3 tangentToEyeMatrix; + vec3 positionToEyeEC; + float height; + float slope; + float aspect; +}; +`;var cv=`/** + * Struct for representing a material for a {@link Model}. The model + * rendering pipeline will pass this struct between material, custom shaders, + * and lighting stages. This is not to be confused with {@link czm_material} + * which is used by the older Fabric materials system, although they are similar. + *

+ * All color values (diffuse, specular, emissive) are in linear color space. + *

+ * + * @name czm_modelMaterial + * @glslStruct + * + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + * @property {vec3} specular Color of reflected light at normal incidence in PBR materials. This is sometimes referred to as f0 in the literature. + * @property {float} roughness A number from 0.0 to 1.0 representing how rough the surface is. Values near 0.0 produce glossy surfaces, while values near 1.0 produce rough surfaces. + * @property {vec3} normalEC Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {float} occlusion Ambient occlusion recieved at this point on the material. 1.0 means fully lit, 0.0 means fully occluded. + * @property {vec3} emissive Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + */ +struct czm_modelMaterial { + vec3 diffuse; + float alpha; + vec3 specular; + float roughness; + vec3 normalEC; + float occlusion; + vec3 emissive; +}; +`;var lv=`/** + * Struct for representing the output of a custom vertex shader. + * + * @name czm_modelVertexOutput + * @glslStruct + * + * @see {@link CustomShader} + * @see {@link Model} + * + * @property {vec3} positionMC The position of the vertex in model coordinates + * @property {float} pointSize A custom value for gl_PointSize. This is only used for point primitives. + */ +struct czm_modelVertexOutput { + vec3 positionMC; + float pointSize; +}; +`;var uv=`/** + * Parameters for {@link czm_pbrLighting} + * + * @name czm_material + * @glslStruct + * + * @property {vec3} diffuseColor the diffuse color of the material for the lambert term of the rendering equation + * @property {float} roughness a value from 0.0 to 1.0 that indicates how rough the surface of the material is. + * @property {vec3} f0 The reflectance of the material at normal incidence + */ +struct czm_pbrParameters +{ + vec3 diffuseColor; + float roughness; + vec3 f0; +}; +`;var fv=`/** + * DOC_TBA + * + * @name czm_ray + * @glslStruct + */ +struct czm_ray +{ + vec3 origin; + vec3 direction; +}; +`;var dv=`/** + * DOC_TBA + * + * @name czm_raySegment + * @glslStruct + */ +struct czm_raySegment +{ + float start; + float stop; +}; + +/** + * DOC_TBA + * + * @name czm_emptyRaySegment + * @glslConstant + */ +const czm_raySegment czm_emptyRaySegment = czm_raySegment(-czm_infinity, -czm_infinity); + +/** + * DOC_TBA + * + * @name czm_fullRaySegment + * @glslConstant + */ +const czm_raySegment czm_fullRaySegment = czm_raySegment(0.0, czm_infinity); +`;var mv=`struct czm_shadowParameters +{ +#ifdef USE_CUBE_MAP_SHADOW + vec3 texCoords; +#else + vec2 texCoords; +#endif + + float depthBias; + float depth; + float nDotL; + vec2 texelStepSize; + float normalShadingSmooth; + float darkness; +}; +`;var hv=`/** + * Converts an HSB color (hue, saturation, brightness) to RGB + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_HSBToRGB + * @glslFunction + * + * @param {vec3} hsb The color in HSB. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_HSB2RGB = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + +vec3 czm_HSBToRGB(vec3 hsb) +{ + vec3 p = abs(fract(hsb.xxx + K_HSB2RGB.xyz) * 6.0 - K_HSB2RGB.www); + return hsb.z * mix(K_HSB2RGB.xxx, clamp(p - K_HSB2RGB.xxx, 0.0, 1.0), hsb.y); +} +`;var pv=`/** + * Converts an HSL color (hue, saturation, lightness) to RGB + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_HSLToRGB + * @glslFunction + * + * @param {vec3} rgb The color in HSL. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 hueToRGB(float hue) +{ + float r = abs(hue * 6.0 - 3.0) - 1.0; + float g = 2.0 - abs(hue * 6.0 - 2.0); + float b = 2.0 - abs(hue * 6.0 - 4.0); + return clamp(vec3(r, g, b), 0.0, 1.0); +} + +vec3 czm_HSLToRGB(vec3 hsl) +{ + vec3 rgb = hueToRGB(hsl.x); + float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y; + return (rgb - 0.5) * c + hsl.z; +} +`;var _v=`/** + * Converts an RGB color to HSB (hue, saturation, brightness) + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_RGBToHSB + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_RGB2HSB = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + +vec3 czm_RGBToHSB(vec3 rgb) +{ + vec4 p = mix(vec4(rgb.bg, K_RGB2HSB.wz), vec4(rgb.gb, K_RGB2HSB.xy), step(rgb.b, rgb.g)); + vec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r)); + + float d = q.x - min(q.w, q.y); + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + czm_epsilon7)), d / (q.x + czm_epsilon7), q.x); +} +`;var gv=`/** + * Converts an RGB color to HSL (hue, saturation, lightness) + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_RGBToHSL + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSL. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 RGBtoHCV(vec3 rgb) +{ + // Based on work by Sam Hocevar and Emil Persson + vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0) : vec4(rgb.gb, 0.0, -1.0 / 3.0); + vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx); + float c = q.x - min(q.w, q.y); + float h = abs((q.w - q.y) / (6.0 * c + czm_epsilon7) + q.z); + return vec3(h, c, q.x); +} + +vec3 czm_RGBToHSL(vec3 rgb) +{ + vec3 hcv = RGBtoHCV(rgb); + float l = hcv.z - hcv.y * 0.5; + float s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + czm_epsilon7); + return vec3(hcv.x, s, l); +} +`;var yv=`/** + * Converts an RGB color to CIE Yxy. + *

The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + *

+ * + * @name czm_RGBToXYZ + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in CIE Yxy. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_RGBToXYZ(vec3 rgb) +{ + const mat3 RGB2XYZ = mat3(0.4124, 0.2126, 0.0193, + 0.3576, 0.7152, 0.1192, + 0.1805, 0.0722, 0.9505); + vec3 xyz = RGB2XYZ * rgb; + vec3 Yxy; + Yxy.r = xyz.g; + float temp = dot(vec3(1.0), xyz); + Yxy.gb = xyz.rg / temp; + return Yxy; +} +`;var Av=`/** + * Converts a CIE Yxy color to RGB. + *

The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + *

+ * + * @name czm_XYZToRGB + * @glslFunction + * + * @param {vec3} Yxy The color in CIE Yxy. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_XYZToRGB(vec3 Yxy) +{ + const mat3 XYZ2RGB = mat3( 3.2405, -0.9693, 0.0556, + -1.5371, 1.8760, -0.2040, + -0.4985, 0.0416, 1.0572); + vec3 xyz; + xyz.r = Yxy.r * Yxy.g / Yxy.b; + xyz.g = Yxy.r; + xyz.b = Yxy.r * (1.0 - Yxy.g - Yxy.b) / Yxy.b; + + return XYZ2RGB * xyz; +} +`;var xv=`// See: +// https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/ + +vec3 czm_acesTonemapping(vec3 color) { + float g = 0.985; + float a = 0.065; + float b = 0.0001; + float c = 0.433; + float d = 0.238; + + color = (color * (color + a) - b) / (color * (g * color + c) + d); + + color = clamp(color, 0.0, 1.0); + + return color; +} +`;var Cv=`/** + * @private + */ +float czm_alphaWeight(float a) +{ + float z = (gl_FragCoord.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + + // See Weighted Blended Order-Independent Transparency for examples of different weighting functions: + // http://jcgt.org/published/0002/02/09/ + return pow(a + 0.01, 4.0) + max(1e-2, min(3.0 * 1e3, 0.003 / (1e-5 + pow(abs(z) / 200.0, 4.0)))); +} +`;var Tv=`/** + * Procedural anti-aliasing by blurring two colors that meet at a sharp edge. + * + * @name czm_antialias + * @glslFunction + * + * @param {vec4} color1 The color on one side of the edge. + * @param {vec4} color2 The color on the other side of the edge. + * @param {vec4} currentcolor The current color, either color1 or color2. + * @param {float} dist The distance to the edge in texture coordinates. + * @param {float} [fuzzFactor=0.1] Controls the blurriness between the two colors. + * @returns {vec4} The anti-aliased color. + * + * @example + * // GLSL declarations + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor); + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist); + * + * // get the color for a material that has a sharp edge at the line y = 0.5 in texture space + * float dist = abs(textureCoordinates.t - 0.5); + * vec4 currentColor = mix(bottomColor, topColor, step(0.5, textureCoordinates.t)); + * vec4 color = czm_antialias(bottomColor, topColor, currentColor, dist, 0.1); + */ +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor) +{ + float val1 = clamp(dist / fuzzFactor, 0.0, 1.0); + float val2 = clamp((dist - 0.5) / fuzzFactor, 0.0, 1.0); + val1 = val1 * (1.0 - val2); + val1 = val1 * val1 * (3.0 - (2.0 * val1)); + val1 = pow(val1, 0.5); //makes the transition nicer + + vec4 midColor = (color1 + color2) * 0.5; + return mix(midColor, currentColor, val1); +} + +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist) +{ + return czm_antialias(color1, color2, currentColor, dist, 0.1); +} +`;var Ev=`/** + * Approximately computes spherical coordinates given a normal. + * Uses approximate inverse trigonometry for speed and consistency, + * since inverse trigonometry can differ from vendor-to-vendor and when compared with the CPU. + * + * @name czm_approximateSphericalCoordinates + * @glslFunction + * + * @param {vec3} normal arbitrary-length normal. + * + * @returns {vec2} Approximate latitude and longitude spherical coordinates. + */ +vec2 czm_approximateSphericalCoordinates(vec3 normal) { + // Project into plane with vertical for latitude + float latitudeApproximation = czm_fastApproximateAtan(sqrt(normal.x * normal.x + normal.y * normal.y), normal.z); + float longitudeApproximation = czm_fastApproximateAtan(normal.x, normal.y); + return vec2(latitudeApproximation, longitudeApproximation); +} +`;var bv=`/** + * Determines if the fragment is back facing + * + * @name czm_backFacing + * @glslFunction + * + * @returns {bool} true if the fragment is back facing; otherwise, false. + */ +bool czm_backFacing() +{ + // !gl_FrontFacing doesn't work as expected on Mac/Intel so use the more verbose form instead. See https://github.com/CesiumGS/cesium/pull/8494. + return gl_FrontFacing == false; +} +`;var Sv=`/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a float expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {float} a Value to return if the comparison is true. + * @param {float} b Value to return if the comparison is false. + * + * @returns {float} equivalent of comparison ? a : b + */ +float czm_branchFreeTernary(bool comparison, float a, float b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec2 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec2} a Value to return if the comparison is true. + * @param {vec2} b Value to return if the comparison is false. + * + * @returns {vec2} equivalent of comparison ? a : b + */ +vec2 czm_branchFreeTernary(bool comparison, vec2 a, vec2 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec3 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec3 czm_branchFreeTernary(bool comparison, vec3 a, vec3 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec4 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec4 czm_branchFreeTernary(bool comparison, vec4 a, vec4 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} +`;var wv=` +vec4 czm_cascadeColor(vec4 weights) +{ + return vec4(1.0, 0.0, 0.0, 1.0) * weights.x + + vec4(0.0, 1.0, 0.0, 1.0) * weights.y + + vec4(0.0, 0.0, 1.0, 1.0) * weights.z + + vec4(1.0, 0.0, 1.0, 1.0) * weights.w; +} +`;var vv=` +uniform vec4 shadowMap_cascadeDistances; + +float czm_cascadeDistance(vec4 weights) +{ + return dot(shadowMap_cascadeDistances, weights); +} +`;var Dv=` +uniform mat4 shadowMap_cascadeMatrices[4]; + +mat4 czm_cascadeMatrix(vec4 weights) +{ + return shadowMap_cascadeMatrices[0] * weights.x + + shadowMap_cascadeMatrices[1] * weights.y + + shadowMap_cascadeMatrices[2] * weights.z + + shadowMap_cascadeMatrices[3] * weights.w; +} +`;var Iv=` +uniform vec4 shadowMap_cascadeSplits[2]; + +vec4 czm_cascadeWeights(float depthEye) +{ + // One component is set to 1.0 and all others set to 0.0. + vec4 near = step(shadowMap_cascadeSplits[0], vec4(depthEye)); + vec4 far = step(depthEye, shadowMap_cascadeSplits[1]); + return near * far; +} +`;var Pv=`/** + * DOC_TBA + * + * @name czm_columbusViewMorph + * @glslFunction + */ +vec4 czm_columbusViewMorph(vec4 position2D, vec4 position3D, float time) +{ + // Just linear for now. + vec3 p = mix(position2D.xyz, position3D.xyz, time); + return vec4(p, 1.0); +} +`;var Ov=`/** + * Returns a position in model coordinates relative to eye taking into + * account the current scene mode: 3D, 2D, or Columbus view. + *

+ * This uses standard position attributes, position3DHigh, + * position3DLow, position2DHigh, and position2DLow, + * and should be used when writing a vertex shader for an {@link Appearance}. + *

+ * + * @name czm_computePosition + * @glslFunction + * + * @returns {vec4} The position relative to eye. + * + * @example + * vec4 p = czm_computePosition(); + * v_positionEC = (czm_modelViewRelativeToEye * p).xyz; + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * + * @see czm_translateRelativeToEye + */ +vec4 czm_computePosition(); +`;var Mv=`/** + * @private + */ +vec2 cordic(float angle) +{ +// Scale the vector by the appropriate factor for the 24 iterations to follow. + vec2 vector = vec2(6.0725293500888267e-1, 0.0); +// Iteration 1 + float sense = (angle < 0.0) ? -1.0 : 1.0; + // float factor = sense * 1.0; // 2^-0 + mat2 rotation = mat2(1.0, sense, -sense, 1.0); + vector = rotation * vector; + angle -= sense * 7.8539816339744828e-1; // atan(2^-0) +// Iteration 2 + sense = (angle < 0.0) ? -1.0 : 1.0; + float factor = sense * 5.0e-1; // 2^-1 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.6364760900080609e-1; // atan(2^-1) +// Iteration 3 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.5e-1; // 2^-2 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4497866312686414e-1; // atan(2^-2) +// Iteration 4 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.25e-1; // 2^-3 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2435499454676144e-1; // atan(2^-3) +// Iteration 5 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.25e-2; // 2^-4 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.2418809995957350e-2; // atan(2^-4) +// Iteration 6 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.125e-2; // 2^-5 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.1239833430268277e-2; // atan(2^-5) +// Iteration 7 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.5625e-2; // 2^-6 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5623728620476831e-2; // atan(2^-6) +// Iteration 8 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.8125e-3; // 2^-7 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.8123410601011111e-3; // atan(2^-7) +// Iteration 9 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.90625e-3; // 2^-8 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.9062301319669718e-3; // atan(2^-8) +// Iteration 10 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.953125e-3; // 2^-9 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9531225164788188e-3; // atan(2^-9) +// Iteration 11 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.765625e-4; // 2^-10 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.7656218955931946e-4; // atan(2^-10) +// Iteration 12 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.8828125e-4; // 2^-11 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.8828121119489829e-4; // atan(2^-11) +// Iteration 13 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.44140625e-4; // 2^-12 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4414062014936177e-4; // atan(2^-12) +// Iteration 14 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.220703125e-4; // 2^-13 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2207031189367021e-4; // atan(2^-13) +// Iteration 15 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.103515625e-5; // 2^-14 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.1035156174208773e-5; // atan(2^-14) +// Iteration 16 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.0517578125e-5; // 2^-15 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.0517578115526096e-5; // atan(2^-15) +// Iteration 17 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.52587890625e-5; // 2^-16 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5258789061315762e-5; // atan(2^-16) +// Iteration 18 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.62939453125e-6; // 2^-17 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.6293945311019700e-6; // atan(2^-17) +// Iteration 19 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.814697265625e-6; // 2^-18 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.8146972656064961e-6; // atan(2^-18) +// Iteration 20 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.9073486328125e-6; // 2^-19 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9073486328101870e-6; // atan(2^-19) +// Iteration 21 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.5367431640625e-7; // 2^-20 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.5367431640596084e-7; // atan(2^-20) +// Iteration 22 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.76837158203125e-7; // 2^-21 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.7683715820308884e-7; // atan(2^-21) +// Iteration 23 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.384185791015625e-7; // 2^-22 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.3841857910155797e-7; // atan(2^-22) +// Iteration 24 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.1920928955078125e-7; // 2^-23 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; +// angle -= sense * 1.1920928955078068e-7; // atan(2^-23) + + return vector; +} + +/** + * Computes the cosine and sine of the provided angle using the CORDIC algorithm. + * + * @name czm_cosineAndSine + * @glslFunction + * + * @param {float} angle The angle in radians. + * + * @returns {vec2} The resulting cosine of the angle (as the x coordinate) and sine of the angle (as the y coordinate). + * + * @example + * vec2 v = czm_cosineAndSine(czm_piOverSix); + * float cosine = v.x; + * float sine = v.y; + */ +vec2 czm_cosineAndSine(float angle) +{ + if (angle < -czm_piOverTwo || angle > czm_piOverTwo) + { + if (angle < 0.0) + { + return -cordic(angle + czm_pi); + } + else + { + return -cordic(angle - czm_pi); + } + } + else + { + return cordic(angle); + } +} +`;var Rv=`/** + * Decompresses texture coordinates that were packed into a single float. + * + * @name czm_decompressTextureCoordinates + * @glslFunction + * + * @param {float} encoded The compressed texture coordinates. + * @returns {vec2} The decompressed texture coordinates. + */ + vec2 czm_decompressTextureCoordinates(float encoded) + { + float temp = encoded / 4096.0; + float xZeroTo4095 = floor(temp); + float stx = xZeroTo4095 / 4095.0; + float sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0; + return vec2(stx, sty); + } +`;var Bv=`/** + * Get default parameters for physically based rendering. These defaults + * describe a rough dielectric (non-metal) surface (e.g. rough plastic). + * + * @return {czm_pbrParameters} Default parameters for {@link czm_pbrLighting} + */ +czm_pbrParameters czm_defaultPbrMaterial() +{ + czm_pbrParameters results; + results.diffuseColor = vec3(1.0); + results.roughness = 1.0; + + const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04); + results.f0 = REFLECTANCE_DIELECTRIC; + return results; +} +`;var Lv=`// emulated noperspective +#if (__VERSION__ == 300 || defined(GL_EXT_frag_depth)) && !defined(LOG_DEPTH) +out float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP, which is not available in WebGL 1 or 2. + * GL_DEPTH_CLAMP clamps geometry that is outside the near and far planes, + * capping the shadow volume. More information here: + * https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_clamp.txt. + * + * When GL_EXT_frag_depth is available we emulate GL_DEPTH_CLAMP by ensuring + * no geometry gets clipped by setting the clip space z value to 0.0 and then + * sending the unaltered screen space z value (using emulated noperspective + * interpolation) to the frag shader where it is clamped to [0,1] and then + * written with gl_FragDepth (see czm_writeDepthClamp). This technique is based on: + * https://stackoverflow.com/questions/5960757/how-to-emulate-gl-depth-clamp-nv. + * + * When GL_EXT_frag_depth is not available, which is the case on some mobile + * devices, we must attempt to fix this only in the vertex shader. + * The approach is to clamp the z value to the far plane, which closes the + * shadow volume but also distorts the geometry, so there can still be artifacts + * on frustum seams. + * + * @name czm_depthClamp + * @glslFunction + * + * @param {vec4} coords The vertex in clip coordinates. + * @returns {vec4} The modified vertex. + * + * @example + * gl_Position = czm_depthClamp(czm_modelViewProjection * vec4(position, 1.0)); + * + * @see czm_writeDepthClamp + */ +vec4 czm_depthClamp(vec4 coords) +{ +#ifndef LOG_DEPTH +#if __VERSION__ == 300 || defined(GL_EXT_frag_depth) + v_WindowZ = (0.5 * (coords.z / coords.w) + 0.5) * coords.w; + coords.z = 0.0; +#else + coords.z = min(coords.z, coords.w); +#endif +#endif + return coords; +} +`;var Nv=`/** + * Computes a 3x3 rotation matrix that transforms vectors from an ellipsoid's east-north-up coordinate system + * to eye coordinates. In east-north-up coordinates, x points east, y points north, and z points along the + * surface normal. East-north-up can be used as an ellipsoid's tangent space for operations such as bump mapping. + *

+ * The ellipsoid is assumed to be centered at the model coordinate's origin. + * + * @name czm_eastNorthUpToEyeCoordinates + * @glslFunction + * + * @param {vec3} positionMC The position on the ellipsoid in model coordinates. + * @param {vec3} normalEC The normalized ellipsoid surface normal, at positionMC, in eye coordinates. + * + * @returns {mat3} A 3x3 rotation matrix that transforms vectors from the east-north-up coordinate system to eye coordinates. + * + * @example + * // Transform a vector defined in the east-north-up coordinate + * // system, (0, 0, 1) which is the surface normal, to eye + * // coordinates. + * mat3 m = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + * vec3 normalEC = m * vec3(0.0, 0.0, 1.0); + */ +mat3 czm_eastNorthUpToEyeCoordinates(vec3 positionMC, vec3 normalEC) +{ + vec3 tangentMC = normalize(vec3(-positionMC.y, positionMC.x, 0.0)); // normalized surface tangent in model coordinates + vec3 tangentEC = normalize(czm_normal3D * tangentMC); // normalized surface tangent in eye coordiantes + vec3 bitangentEC = normalize(cross(normalEC, tangentEC)); // normalized surface bitangent in eye coordinates + + return mat3( + tangentEC.x, tangentEC.y, tangentEC.z, + bitangentEC.x, bitangentEC.y, bitangentEC.z, + normalEC.x, normalEC.y, normalEC.z); +} +`;var Fv=`/** + * DOC_TBA + * + * @name czm_ellipsoidContainsPoint + * @glslFunction + * + */ +bool czm_ellipsoidContainsPoint(vec3 ellipsoid_inverseRadii, vec3 point) +{ + vec3 scaled = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(point, 1.0)).xyz; + return (dot(scaled, scaled) <= 1.0); +} +`;var Uv=`/** + * DOC_TBA + * + * @name czm_ellipsoidWgs84TextureCoordinates + * @glslFunction + */ +vec2 czm_ellipsoidWgs84TextureCoordinates(vec3 normal) +{ + return vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5); +} +`;var Vv=`/** + * Compares left and right componentwise. Returns true + * if they are within epsilon and false otherwise. The inputs + * left and right can be floats, vec2s, + * vec3s, or vec4s. + * + * @name czm_equalsEpsilon + * @glslFunction + * + * @param {} left The first vector. + * @param {} right The second vector. + * @param {float} epsilon The epsilon to use for equality testing. + * @returns {bool} true if the components are within epsilon and false otherwise. + * + * @example + * // GLSL declarations + * bool czm_equalsEpsilon(float left, float right, float epsilon); + * bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon); + * bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon); + * bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon); + */ +bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec4(epsilon))); +} + +bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec3(epsilon))); +} + +bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec2(epsilon))); +} + +bool czm_equalsEpsilon(float left, float right, float epsilon) { + return (abs(left - right) <= epsilon); +} +`;var kv=`/** + * DOC_TBA + * + * @name czm_eyeOffset + * @glslFunction + * + * @param {vec4} positionEC DOC_TBA. + * @param {vec3} eyeOffset DOC_TBA. + * + * @returns {vec4} DOC_TBA. + */ +vec4 czm_eyeOffset(vec4 positionEC, vec3 eyeOffset) +{ + // This equation is approximate in x and y. + vec4 p = positionEC; + vec4 zEyeOffset = normalize(p) * eyeOffset.z; + p.xy += eyeOffset.xy + zEyeOffset.xy; + p.z += zEyeOffset.z; + return p; +} +`;var zv=`/** + * Transforms a position from eye to window coordinates. The transformation + * from eye to clip coordinates is done using {@link czm_projection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of near = 0 and far = 1. + *

+ * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + * + * @name czm_eyeToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in eye coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_projection + * @see czm_viewportTransformation + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + */ +vec4 czm_eyeToWindowCoordinates(vec4 positionEC) +{ + vec4 q = czm_projection * positionEC; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var Hv=`/** + * Approxiamtes atan over the range [0, 1]. Safe to flip output for negative input. + * + * Based on Michal Drobot's approximation from ShaderFastLibs, which in turn is based on + * "Efficient approximations for the arctangent function," Rajan, S. Sichun Wang Inkol, R. Joyal, A., May 2006. + * Adapted from ShaderFastLibs under MIT License. + * + * Chosen for the following characteristics over range [0, 1]: + * - basically no error at 0 and 1, important for getting around range limit (naive atan2 via atan requires infinite range atan) + * - no visible artifacts from first-derivative discontinuities, unlike latitude via range-reduced sqrt asin approximations (at equator) + * + * The original code is x * (-0.1784 * abs(x) - 0.0663 * x * x + 1.0301); + * Removed the abs() in here because it isn't needed, the input range is guaranteed as [0, 1] by how we're approximating atan2. + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between 0 and 1 inclusive. + * + * @returns {float} Approximation of atan(x) + */ +float czm_fastApproximateAtan(float x) { + return x * (-0.1784 * x - 0.0663 * x * x + 1.0301); +} + +/** + * Approximation of atan2. + * + * Range reduction math based on nvidia's cg reference implementation for atan2: http://developer.download.nvidia.com/cg/atan2.html + * However, we replaced their atan curve with Michael Drobot's (see above). + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between -1 and 1 inclusive. + * @param {float} y Value between -1 and 1 inclusive. + * + * @returns {float} Approximation of atan2(x, y) + */ +float czm_fastApproximateAtan(float x, float y) { + // atan approximations are usually only reliable over [-1, 1], or, in our case, [0, 1] due to modifications. + // So range-reduce using abs and by flipping whether x or y is on top. + float t = abs(x); // t used as swap and atan result. + float opposite = abs(y); + float adjacent = max(t, opposite); + opposite = min(t, opposite); + + t = czm_fastApproximateAtan(opposite / adjacent); + + // Undo range reduction + t = czm_branchFreeTernary(abs(y) > abs(x), czm_piOverTwo - t, t); + t = czm_branchFreeTernary(x < 0.0, czm_pi - t, t); + t = czm_branchFreeTernary(y < 0.0, -t, t); + return t; +} +`;var Gv=`/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-(scalar * scalar)); + return mix(color, fogColor, fog); +} + +/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * @param {float} fogModifierConstant A constant to modify the appearance of fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor, float fogModifierConstant) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-((fogModifierConstant * scalar + fogModifierConstant) * (scalar * (1.0 + fogModifierConstant)))); + return mix(color, fogColor, fog); +} +`;var Wv=`/** + * Converts a color from RGB space to linear space. + * + * @name czm_gammaCorrect + * @glslFunction + * + * @param {vec3} color The color in RGB space. + * @returns {vec3} The color in linear space. + */ +vec3 czm_gammaCorrect(vec3 color) { +#ifdef HDR + color = pow(color, vec3(czm_gamma)); +#endif + return color; +} + +vec4 czm_gammaCorrect(vec4 color) { +#ifdef HDR + color.rgb = pow(color.rgb, vec3(czm_gamma)); +#endif + return color; +} +`;var jv=`/** + * DOC_TBA + * + * @name czm_geodeticSurfaceNormal + * @glslFunction + * + * @param {vec3} positionOnEllipsoid DOC_TBA + * @param {vec3} ellipsoidCenter DOC_TBA + * @param {vec3} oneOverEllipsoidRadiiSquared DOC_TBA + * + * @returns {vec3} DOC_TBA. + */ +vec3 czm_geodeticSurfaceNormal(vec3 positionOnEllipsoid, vec3 ellipsoidCenter, vec3 oneOverEllipsoidRadiiSquared) +{ + return normalize((positionOnEllipsoid - ellipsoidCenter) * oneOverEllipsoidRadiiSquared); +} +`;var Yv=`/** + * An czm_material with default values. Every material's czm_getMaterial + * should use this default material as a base for the material it returns. + * The default normal value is given by materialInput.normalEC. + * + * @name czm_getDefaultMaterial + * @glslFunction + * + * @param {czm_materialInput} input The input used to construct the default material. + * + * @returns {czm_material} The default material. + * + * @see czm_materialInput + * @see czm_material + * @see czm_getMaterial + */ +czm_material czm_getDefaultMaterial(czm_materialInput materialInput) +{ + czm_material material; + material.diffuse = vec3(0.0); + material.specular = 0.0; + material.shininess = 1.0; + material.normal = materialInput.normalEC; + material.emission = vec3(0.0); + material.alpha = 1.0; + return material; +} +`;var qv=`/** + * Calculates the intensity of diffusely reflected light. + * + * @name czm_getLambertDiffuse + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * + * @returns {float} The intensity of the diffuse reflection. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getLambertDiffuse(vec3 lightDirectionEC, vec3 normalEC) +{ + return max(dot(lightDirectionEC, normalEC), 0.0); +} +`;var Xv=`/** + * Calculates the specular intensity of reflected light. + * + * @name czm_getSpecular + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} toEyeEC Unit vector pointing to the eye position in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * @param {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * + * @returns {float} The intensity of the specular highlight. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getSpecular(vec3 lightDirectionEC, vec3 toEyeEC, vec3 normalEC, float shininess) +{ + vec3 toReflectedLight = reflect(-lightDirectionEC, normalEC); + float specular = max(dot(toReflectedLight, toEyeEC), 0.0); + + // pow has undefined behavior if both parameters <= 0. + // Prevent this by making sure shininess is at least czm_epsilon2. + return pow(specular, max(shininess, czm_epsilon2)); +} +`;var Kv=`/** + * @private + */ +vec4 czm_getWaterNoise(sampler2D normalMap, vec2 uv, float time, float angleInRadians) +{ + float cosAngle = cos(angleInRadians); + float sinAngle = sin(angleInRadians); + + // time dependent sampling directions + vec2 s0 = vec2(1.0/17.0, 0.0); + vec2 s1 = vec2(-1.0/29.0, 0.0); + vec2 s2 = vec2(1.0/101.0, 1.0/59.0); + vec2 s3 = vec2(-1.0/109.0, -1.0/57.0); + + // rotate sampling direction by specified angle + s0 = vec2((cosAngle * s0.x) - (sinAngle * s0.y), (sinAngle * s0.x) + (cosAngle * s0.y)); + s1 = vec2((cosAngle * s1.x) - (sinAngle * s1.y), (sinAngle * s1.x) + (cosAngle * s1.y)); + s2 = vec2((cosAngle * s2.x) - (sinAngle * s2.y), (sinAngle * s2.x) + (cosAngle * s2.y)); + s3 = vec2((cosAngle * s3.x) - (sinAngle * s3.y), (sinAngle * s3.x) + (cosAngle * s3.y)); + + vec2 uv0 = (uv/103.0) + (time * s0); + vec2 uv1 = uv/107.0 + (time * s1) + vec2(0.23); + vec2 uv2 = uv/vec2(897.0, 983.0) + (time * s2) + vec2(0.51); + vec2 uv3 = uv/vec2(991.0, 877.0) + (time * s3) + vec2(0.71); + + uv0 = fract(uv0); + uv1 = fract(uv1); + uv2 = fract(uv2); + uv3 = fract(uv3); + vec4 noise = (texture(normalMap, uv0)) + + (texture(normalMap, uv1)) + + (texture(normalMap, uv2)) + + (texture(normalMap, uv3)); + + // average and scale to between -1 and 1 + return ((noise / 4.0) - 0.5) * 2.0; +} +`;var Jv=`/** + * Adjusts the hue of a color. + * + * @name czm_hue + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the hue of the color in radians. + * + * @returns {float} The color with the hue adjusted. + * + * @example + * vec3 adjustHue = czm_hue(color, czm_pi); // The same as czm_hue(color, -czm_pi) + */ +vec3 czm_hue(vec3 rgb, float adjustment) +{ + const mat3 toYIQ = mat3(0.299, 0.587, 0.114, + 0.595716, -0.274453, -0.321263, + 0.211456, -0.522591, 0.311135); + const mat3 toRGB = mat3(1.0, 0.9563, 0.6210, + 1.0, -0.2721, -0.6474, + 1.0, -1.107, 1.7046); + + vec3 yiq = toYIQ * rgb; + float hue = atan(yiq.z, yiq.y) + adjustment; + float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y); + + vec3 color = vec3(yiq.x, chroma * cos(hue), chroma * sin(hue)); + return toRGB * color; +} +`;var Zv=`/** + * Converts a color in linear space to RGB space. + * + * @name czm_inverseGamma + * @glslFunction + * + * @param {vec3} color The color in linear space. + * @returns {vec3} The color in RGB space. + */ +vec3 czm_inverseGamma(vec3 color) { + return pow(color, vec3(1.0 / czm_gamma)); +} +`;var Qv=`/** + * Determines if a time interval is empty. + * + * @name czm_isEmpty + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} true if the time interval is empty; otherwise, false. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isEmpty(czm_raySegment interval) +{ + return (interval.stop < 0.0); +} +`;var $v=`/** + * Determines if a time interval is empty. + * + * @name czm_isFull + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} true if the time interval is empty; otherwise, false. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isFull(czm_raySegment interval) +{ + return (interval.start == 0.0 && interval.stop == czm_infinity); +} +`;var eD=`/** + * Computes the fraction of a Web Wercator rectangle at which a given geodetic latitude is located. + * + * @name czm_latitudeToWebMercatorFraction + * @glslFunction + * + * @param {float} latitude The geodetic latitude, in radians. + * @param {float} southMercatorY The Web Mercator coordinate of the southern boundary of the rectangle. + * @param {float} oneOverMercatorHeight The total height of the rectangle in Web Mercator coordinates. + * + * @returns {float} The fraction of the rectangle at which the latitude occurs. If the latitude is the southern + * boundary of the rectangle, the return value will be zero. If it is the northern boundary, the return + * value will be 1.0. Latitudes in between are mapped according to the Web Mercator projection. + */ +float czm_latitudeToWebMercatorFraction(float latitude, float southMercatorY, float oneOverMercatorHeight) +{ + float sinLatitude = sin(latitude); + float mercatorY = 0.5 * log((1.0 + sinLatitude) / (1.0 - sinLatitude)); + + return (mercatorY - southMercatorY) * oneOverMercatorHeight; +} +`;var tD=`/** + * Computes distance from an point in 2D to a line in 2D. + * + * @name czm_lineDistance + * @glslFunction + * + * param {vec2} point1 A point along the line. + * param {vec2} point2 A point along the line. + * param {vec2} point A point that may or may not be on the line. + * returns {float} The distance from the point to the line. + */ +float czm_lineDistance(vec2 point1, vec2 point2, vec2 point) { + return abs((point2.y - point1.y) * point.x - (point2.x - point1.x) * point.y + point2.x * point1.y - point2.y * point1.x) / distance(point2, point1); +} +`;var nD=`/** + * Converts a linear RGB color to an sRGB color. + * + * @param {vec3|vec4} linearIn The color in linear color space. + * @returns {vec3|vec4} The color in sRGB color space. The vector type matches the input. + */ +vec3 czm_linearToSrgb(vec3 linearIn) +{ + return pow(linearIn, vec3(1.0/2.2)); +} + +vec4 czm_linearToSrgb(vec4 linearIn) +{ + vec3 srgbOut = pow(linearIn.rgb, vec3(1.0/2.2)); + return vec4(srgbOut, linearIn.a); +} +`;var iD=`/** + * Computes the luminance of a color. + * + * @name czm_luminance + * @glslFunction + * + * @param {vec3} rgb The color. + * + * @returns {float} The luminance. + * + * @example + * float light = czm_luminance(vec3(0.0)); // 0.0 + * float dark = czm_luminance(vec3(1.0)); // ~1.0 + */ +float czm_luminance(vec3 rgb) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + return dot(rgb, W); +} +`;var oD=`/** + * Computes the size of a pixel in meters at a distance from the eye. + *

+ * Use this version when passing in a custom pixel ratio. For example, passing in 1.0 will return meters per native device pixel. + *

+ * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * @param {float} pixelRatio The scaling factor from pixel space to coordinate space + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC, float pixelRatio) +{ + float width = czm_viewport.z; + float height = czm_viewport.w; + float pixelWidth; + float pixelHeight; + + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + if (czm_sceneMode == czm_sceneMode2D || czm_orthographicIn3D == 1.0) + { + float frustumWidth = right - left; + float frustumHeight = top - bottom; + pixelWidth = frustumWidth / width; + pixelHeight = frustumHeight / height; + } + else + { + float distanceToPixel = -positionEC.z; + float inverseNear = 1.0 / czm_currentFrustum.x; + float tanTheta = top * inverseNear; + pixelHeight = 2.0 * distanceToPixel * tanTheta / height; + tanTheta = right * inverseNear; + pixelWidth = 2.0 * distanceToPixel * tanTheta / width; + } + + return max(pixelWidth, pixelHeight) * pixelRatio; +} + +/** + * Computes the size of a pixel in meters at a distance from the eye. + *

+ * Use this version when scaling by pixel ratio. + *

+ * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC) +{ + return czm_metersPerPixel(positionEC, czm_pixelRatio); +} +`;var rD=`/** + * Transforms a position from model to window coordinates. The transformation + * from model to clip coordinates is done using {@link czm_modelViewProjection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of near = 0 and far = 1. + *

+ * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + *

+ * This function should not be confused with {@link czm_viewportOrthographic}, + * which is an orthographic projection matrix that transforms from window + * coordinates to clip coordinates. + * + * @name czm_modelToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in model coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_eyeToWindowCoordinates + * @see czm_modelViewProjection + * @see czm_viewportTransformation + * @see czm_viewportOrthographic + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_modelToWindowCoordinates(positionMC); + */ +vec4 czm_modelToWindowCoordinates(vec4 position) +{ + vec4 q = czm_modelViewProjection * position; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var sD=`/** + * DOC_TBA + * + * @name czm_multiplyWithColorBalance + * @glslFunction + */ +vec3 czm_multiplyWithColorBalance(vec3 left, vec3 right) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + + vec3 target = left * right; + float leftLuminance = dot(left, W); + float rightLuminance = dot(right, W); + float targetLuminance = dot(target, W); + + return ((leftLuminance + rightLuminance) / (2.0 * targetLuminance)) * target; +} +`;var aD=`/** + * Computes a value that scales with distance. The scaling is clamped at the near and + * far distances, and does not extrapolate. This function works with the + * {@link NearFarScalar} JavaScript class. + * + * @name czm_nearFarScalar + * @glslFunction + * + * @param {vec4} nearFarScalar A vector with 4 components: Near distance (x), Near value (y), Far distance (z), Far value (w). + * @param {float} cameraDistSq The square of the current distance from the camera. + * + * @returns {float} The value at this distance. + */ +float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq) +{ + float valueAtMin = nearFarScalar.y; + float valueAtMax = nearFarScalar.w; + float nearDistanceSq = nearFarScalar.x * nearFarScalar.x; + float farDistanceSq = nearFarScalar.z * nearFarScalar.z; + + float t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq); + + t = pow(clamp(t, 0.0, 1.0), 0.2); + + return mix(valueAtMin, valueAtMax, t); +} +`;var cD=` /** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @param {float} range The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits. + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded, float range) + { + if (encoded.x == 0.0 && encoded.y == 0.0) { + return vec3(0.0, 0.0, 0.0); + } + + encoded = encoded / range * 2.0 - 1.0; + vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y)); + if (v.z < 0.0) + { + v.xy = (1.0 - abs(v.yx)) * czm_signNotZero(v.xy); + } + + return normalize(v); + } + +/** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded) + { + return czm_octDecode(encoded, 255.0); + } + + /** + * Decodes a unit-length vector in 'oct' encoding packed into a floating-point number to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {float} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(float encoded) + { + float temp = encoded / 256.0; + float x = floor(temp); + float y = (temp - x) * 256.0; + return czm_octDecode(vec2(x, y)); + } + +/** + * Decodes three unit-length vectors in 'oct' encoding packed into two floating-point numbers to normalized 3-component Cartesian vectors. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The packed oct-encoded, unit-length vectors. + * @param {vec3} vector1 One decoded and normalized vector. + * @param {vec3} vector2 One decoded and normalized vector. + * @param {vec3} vector3 One decoded and normalized vector. + */ + void czm_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3) + { + float temp = encoded.x / 65536.0; + float x = floor(temp); + float encodedFloat1 = (temp - x) * 65536.0; + + temp = encoded.y / 65536.0; + float y = floor(temp); + float encodedFloat2 = (temp - y) * 65536.0; + + vector1 = czm_octDecode(encodedFloat1); + vector2 = czm_octDecode(encodedFloat2); + vector3 = czm_octDecode(vec2(x, y)); + } + +`;var lD=`/** + * Packs a depth value into a vec3 that can be represented by unsigned bytes. + * + * @name czm_packDepth + * @glslFunction + * + * @param {float} depth The floating-point depth. + * @returns {vec3} The packed depth. + */ +vec4 czm_packDepth(float depth) +{ + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth; + enc = fract(enc); + enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0); + return enc; +} +`;var uD=`vec3 lambertianDiffuse(vec3 diffuseColor) +{ + return diffuseColor / czm_pi; +} + +vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH) +{ + return f0 + (f90 - f0) * pow(clamp(1.0 - VdotH, 0.0, 1.0), 5.0); +} + +float smithVisibilityG1(float NdotV, float roughness) +{ + // this is the k value for direct lighting. + // for image based lighting it will be roughness^2 / 2 + float k = (roughness + 1.0) * (roughness + 1.0) / 8.0; + return NdotV / (NdotV * (1.0 - k) + k); +} + +float smithVisibilityGGX(float roughness, float NdotL, float NdotV) +{ + return ( + smithVisibilityG1(NdotL, roughness) * + smithVisibilityG1(NdotV, roughness) + ); +} + +float GGX(float roughness, float NdotH) +{ + float roughnessSquared = roughness * roughness; + float f = (NdotH * roughnessSquared - NdotH) * NdotH + 1.0; + return roughnessSquared / (czm_pi * f * f); +} + +/** + * Compute the diffuse and specular contributions using physically based + * rendering. This function only handles direct lighting. + *

+ * This function only handles the lighting calculations. Metallic/roughness + * and specular/glossy must be handled separately. See {@czm_pbrMetallicRoughnessMaterial}, {@czm_pbrSpecularGlossinessMaterial} and {@czm_defaultPbrMaterial} + *

+ * + * @name czm_pbrlighting + * @glslFunction + * + * @param {vec3} positionEC The position of the fragment in eye coordinates + * @param {vec3} normalEC The surface normal in eye coordinates + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} lightColorHdr radiance of the light source. This is a HDR value. + * @param {czm_pbrParameters} The computed PBR parameters. + * @return {vec3} The computed HDR color + * + * @example + * czm_pbrParameters pbrParameters = czm_pbrMetallicRoughnessMaterial( + * baseColor, + * metallic, + * roughness + * ); + * vec3 color = czm_pbrlighting( + * positionEC, + * normalEC, + * lightDirectionEC, + * lightColorHdr, + * pbrParameters); + */ +vec3 czm_pbrLighting( + vec3 positionEC, + vec3 normalEC, + vec3 lightDirectionEC, + vec3 lightColorHdr, + czm_pbrParameters pbrParameters +) +{ + vec3 v = -normalize(positionEC); + vec3 l = normalize(lightDirectionEC); + vec3 h = normalize(v + l); + vec3 n = normalEC; + float NdotL = clamp(dot(n, l), 0.001, 1.0); + float NdotV = abs(dot(n, v)) + 0.001; + float NdotH = clamp(dot(n, h), 0.0, 1.0); + float LdotH = clamp(dot(l, h), 0.0, 1.0); + float VdotH = clamp(dot(v, h), 0.0, 1.0); + + vec3 f0 = pbrParameters.f0; + float reflectance = max(max(f0.r, f0.g), f0.b); + vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0)); + vec3 F = fresnelSchlick2(f0, f90, VdotH); + + float alpha = pbrParameters.roughness; + float G = smithVisibilityGGX(alpha, NdotL, NdotV); + float D = GGX(alpha, NdotH); + vec3 specularContribution = F * G * D / (4.0 * NdotL * NdotV); + + vec3 diffuseColor = pbrParameters.diffuseColor; + // F here represents the specular contribution + vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor); + + // Lo = (diffuse + specular) * Li * NdotL + return (diffuseContribution + specularContribution) * NdotL * lightColorHdr; +} +`;var fD=`/** + * Compute parameters for physically based rendering using the + * metallic/roughness workflow. All inputs are linear; sRGB texture values must + * be decoded beforehand + * + * @name czm_pbrMetallicRoughnessMaterial + * @glslFunction + * + * @param {vec3} baseColor For dielectrics, this is the base color. For metals, this is the f0 value (reflectance at normal incidence) + * @param {float} metallic 0.0 indicates dielectric. 1.0 indicates metal. Values in between are allowed (e.g. to model rust or dirt); + * @param {float} roughness A value between 0.0 and 1.0 + * @return {czm_pbrParameters} parameters to pass into {@link czm_pbrLighting} + */ +czm_pbrParameters czm_pbrMetallicRoughnessMaterial( + vec3 baseColor, + float metallic, + float roughness +) +{ + czm_pbrParameters results; + + // roughness is authored as perceptual roughness + // square it to get material roughness + roughness = clamp(roughness, 0.0, 1.0); + results.roughness = roughness * roughness; + + // dielectrics use f0 = 0.04, metals use albedo as f0 + metallic = clamp(metallic, 0.0, 1.0); + const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04); + vec3 f0 = mix(REFLECTANCE_DIELECTRIC, baseColor, metallic); + results.f0 = f0; + + // diffuse only applies to dielectrics. + results.diffuseColor = baseColor * (1.0 - f0) * (1.0 - metallic); + + return results; +} +`;var dD=`/** + * Compute parameters for physically based rendering using the + * specular/glossy workflow. All inputs are linear; sRGB texture values must + * be decoded beforehand + * + * @name czm_pbrSpecularGlossinessMaterial + * @glslFunction + * + * @param {vec3} diffuse The diffuse color for dielectrics (non-metals) + * @param {vec3} specular The reflectance at normal incidence (f0) + * @param {float} glossiness A number from 0.0 to 1.0 indicating how smooth the surface is. + * @return {czm_pbrParameters} parameters to pass into {@link czm_pbrLighting} + */ +czm_pbrParameters czm_pbrSpecularGlossinessMaterial( + vec3 diffuse, + vec3 specular, + float glossiness +) +{ + czm_pbrParameters results; + + // glossiness is the opposite of roughness, but easier for artists to use. + float roughness = 1.0 - glossiness; + results.roughness = roughness * roughness; + + results.diffuseColor = diffuse * (1.0 - max(max(specular.r, specular.g), specular.b)); + results.f0 = specular; + + return results; +} +`;var mD=`float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material) +{ + return czm_getLambertDiffuse(lightDirectionEC, material.normal); +} + +float czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material) +{ + return czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess); +} + +/** + * Computes a color using the Phong lighting model. + * + * @name czm_phong + * @glslFunction + * + * @param {vec3} toEye A normalized vector from the fragment to the eye in eye coordinates. + * @param {czm_material} material The fragment's material. + * + * @returns {vec4} The computed color. + * + * @example + * vec3 positionToEyeEC = // ... + * czm_material material = // ... + * vec3 lightDirectionEC = // ... + * out_FragColor = czm_phong(normalize(positionToEyeEC), material, lightDirectionEC); + * + * @see czm_getMaterial + */ +vec4 czm_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down) + float diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material); + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material); + } + + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} + +vec4 czm_private_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + float diffuse = czm_private_getLambertDiffuseOfMaterial(lightDirectionEC, material); + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + vec3 ambient = vec3(0.0); + vec3 color = ambient + material.emission; + color += material.diffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var hD=`/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec4} plane A Plane in Hessian Normal Form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec4 plane, vec3 point) { + return (dot(plane.xyz, point) + plane.w); +} + +/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec3} planeNormal Normal for a plane in Hessian Normal Form. See Plane.js + * param {float} planeDistance Distance for a plane in Hessian Normal form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec3 planeNormal, float planeDistance, vec3 point) { + return (dot(planeNormal, point) + planeDistance); +} +`;var pD=`/** + * Computes the point along a ray at the given time. time can be positive, negative, or zero. + * + * @name czm_pointAlongRay + * @glslFunction + * + * @param {czm_ray} ray The ray to compute the point along. + * @param {float} time The time along the ray. + * + * @returns {vec3} The point along the ray at the given time. + * + * @example + * czm_ray ray = czm_ray(vec3(0.0), vec3(1.0, 0.0, 0.0)); // origin, direction + * vec3 v = czm_pointAlongRay(ray, 2.0); // (2.0, 0.0, 0.0) + */ +vec3 czm_pointAlongRay(czm_ray ray, float time) +{ + return ray.origin + (time * ray.direction); +} +`;var _D=`/** + * DOC_TBA + * + * @name czm_rayEllipsoidIntersectionInterval + * @glslFunction + */ +czm_raySegment czm_rayEllipsoidIntersectionInterval(czm_ray ray, vec3 ellipsoid_center, vec3 ellipsoid_inverseRadii) +{ + // ray and ellipsoid center in eye coordinates. radii in model coordinates. + vec3 q = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.origin, 1.0)).xyz; + vec3 w = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.direction, 0.0)).xyz; + + q = q - ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ellipsoid_center, 1.0)).xyz; + + float q2 = dot(q, q); + float qw = dot(q, w); + + if (q2 > 1.0) // Outside ellipsoid. + { + if (qw >= 0.0) // Looking outward or tangent (0 intersections). + { + return czm_emptyRaySegment; + } + else // qw < 0.0. + { + float qw2 = qw * qw; + float difference = q2 - 1.0; // Positively valued. + float w2 = dot(w, w); + float product = w2 * difference; + + if (qw2 < product) // Imaginary roots (0 intersections). + { + return czm_emptyRaySegment; + } + else if (qw2 > product) // Distinct roots (2 intersections). + { + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Avoid cancellation. + float root0 = temp / w2; + float root1 = difference / temp; + if (root0 < root1) + { + czm_raySegment i = czm_raySegment(root0, root1); + return i; + } + else + { + czm_raySegment i = czm_raySegment(root1, root0); + return i; + } + } + else // qw2 == product. Repeated roots (2 intersections). + { + float root = sqrt(difference / w2); + czm_raySegment i = czm_raySegment(root, root); + return i; + } + } + } + else if (q2 < 1.0) // Inside ellipsoid (2 intersections). + { + float difference = q2 - 1.0; // Negatively valued. + float w2 = dot(w, w); + float product = w2 * difference; // Negatively valued. + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Positively valued. + czm_raySegment i = czm_raySegment(0.0, temp / w2); + return i; + } + else // q2 == 1.0. On ellipsoid. + { + if (qw < 0.0) // Looking inward. + { + float w2 = dot(w, w); + czm_raySegment i = czm_raySegment(0.0, -qw / w2); + return i; + } + else // qw >= 0.0. Looking outward or tangent. + { + return czm_emptyRaySegment; + } + } +} +`;var gD=`/** + * Compute the intersection interval of a ray with a sphere. + * + * @name czm_raySphereIntersectionInterval + * @glslFunction + * + * @param {czm_ray} ray The ray. + * @param {vec3} center The center of the sphere. + * @param {float} radius The radius of the sphere. + * @return {czm_raySegment} The intersection interval of the ray with the sphere. + */ +czm_raySegment czm_raySphereIntersectionInterval(czm_ray ray, vec3 center, float radius) +{ + vec3 o = ray.origin; + vec3 d = ray.direction; + + vec3 oc = o - center; + + float a = dot(d, d); + float b = 2.0 * dot(d, oc); + float c = dot(oc, oc) - (radius * radius); + + float det = (b * b) - (4.0 * a * c); + + if (det < 0.0) { + return czm_emptyRaySegment; + } + + float sqrtDet = sqrt(det); + + float t0 = (-b - sqrtDet) / (2.0 * a); + float t1 = (-b + sqrtDet) / (2.0 * a); + + czm_raySegment result = czm_raySegment(t0, t1); + return result; +} +`;var yD=`float czm_readDepth(sampler2D depthTexture, vec2 texCoords) +{ + return czm_reverseLogDepth(texture(depthTexture, texCoords).r); +} +`;var AD=`/** + * Reads a value previously transformed with {@link czm_writeNonPerspective} + * by dividing it by \`w\`, the value used in the perspective divide. + * This function is intended to be called in a fragment shader to access a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The value should have been + * previously written in the vertex shader with a call to + * {@link czm_writeNonPerspective}. + * + * @name czm_readNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The non-perspective value to be read. + * @param {float} oneOverW One over the perspective divide value, \`w\`. Usually this is simply \`gl_FragCoord.w\`. + * @returns {float|vec2|vec3|vec4} The usable value. + */ +float czm_readNonPerspective(float value, float oneOverW) { + return value * oneOverW; +} + +vec2 czm_readNonPerspective(vec2 value, float oneOverW) { + return value * oneOverW; +} + +vec3 czm_readNonPerspective(vec3 value, float oneOverW) { + return value * oneOverW; +} + +vec4 czm_readNonPerspective(vec4 value, float oneOverW) { + return value * oneOverW; +} +`;var xD=`float czm_reverseLogDepth(float logZ) +{ +#ifdef LOG_DEPTH + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = logZ * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = pow(2.0, log2Depth) - 1.0; + return far * (1.0 - near / (depthFromNear + near)) / (far - near); +#endif + return logZ; +} +`;var CD=`/** + * Round a floating point value. This function exists because round() doesn't + * exist in GLSL 1.00. + * + * @param {float|vec2|vec3|vec4} value The value to round + * @param {float|vec2|vec3|vec3} The rounded value. The type matches the input. + */ +float czm_round(float value) { + return floor(value + 0.5); +} + +vec2 czm_round(vec2 value) { + return floor(value + 0.5); +} + +vec3 czm_round(vec3 value) { + return floor(value + 0.5); +} + +vec4 czm_round(vec4 value) { + return floor(value + 0.5); +} +`;var TD=`/** + * Samples the 4 neighboring pixels and return the weighted average. + * + * @private + */ +vec3 czm_sampleOctahedralProjectionWithFiltering(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod) +{ + direction /= dot(vec3(1.0), abs(direction)); + vec2 rev = abs(direction.zx) - vec2(1.0); + vec2 neg = vec2(direction.x < 0.0 ? rev.x : -rev.x, + direction.z < 0.0 ? rev.y : -rev.y); + vec2 uv = direction.y < 0.0 ? neg : direction.xz; + vec2 coord = 0.5 * uv + vec2(0.5); + vec2 pixel = 1.0 / textureSize; + + if (lod > 0.0) + { + // Each subseqeuent mip level is half the size + float scale = 1.0 / pow(2.0, lod); + float offset = ((textureSize.y + 1.0) / textureSize.x); + + coord.x *= offset; + coord *= scale; + + coord.x += offset + pixel.x; + coord.y += (1.0 - (1.0 / pow(2.0, lod - 1.0))) + pixel.y * (lod - 1.0) * 2.0; + } + else + { + coord.x *= (textureSize.y / textureSize.x); + } + + // Do bilinear filtering + #ifndef OES_texture_float_linear + vec3 color1 = texture(projectedMap, coord + vec2(0.0, pixel.y)).rgb; + vec3 color2 = texture(projectedMap, coord + vec2(pixel.x, 0.0)).rgb; + vec3 color3 = texture(projectedMap, coord + pixel).rgb; + vec3 color4 = texture(projectedMap, coord).rgb; + + vec2 texturePosition = coord * textureSize; + + float fu = fract(texturePosition.x); + float fv = fract(texturePosition.y); + + vec3 average1 = mix(color4, color2, fu); + vec3 average2 = mix(color1, color3, fu); + + vec3 color = mix(average1, average2, fv); + #else + vec3 color = texture(projectedMap, coord).rgb; + #endif + + return color; +} + + +/** + * Samples from a cube map that has been projected using an octahedral projection from the given direction. + * + * @name czm_sampleOctahedralProjection + * @glslFunction + * + * @param {sampler2D} projectedMap The texture with the octahedral projected cube map. + * @param {vec2} textureSize The width and height dimensions in pixels of the projected map. + * @param {vec3} direction The normalized direction used to sample the cube map. + * @param {float} lod The level of detail to sample. + * @param {float} maxLod The maximum level of detail. + * @returns {vec3} The color of the cube map at the direction. + */ +vec3 czm_sampleOctahedralProjection(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod, float maxLod) { + float currentLod = floor(lod + 0.5); + float nextLod = min(currentLod + 1.0, maxLod); + + vec3 colorCurrentLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, currentLod); + vec3 colorNextLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, nextLod); + + return mix(colorNextLod, colorCurrentLod, nextLod - lod); +} +`;var ED=`/** + * Adjusts the saturation of a color. + * + * @name czm_saturation + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the saturation of the color. + * + * @returns {float} The color with the saturation adjusted. + * + * @example + * vec3 greyScale = czm_saturation(color, 0.0); + * vec3 doubleSaturation = czm_saturation(color, 2.0); + */ +vec3 czm_saturation(vec3 rgb, float adjustment) +{ + // Algorithm from Chapter 16 of OpenGL Shading Language + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + vec3 intensity = vec3(dot(rgb, W)); + return mix(intensity, rgb, adjustment); +} +`;var bD=` +float czm_sampleShadowMap(highp samplerCube shadowMap, vec3 d) +{ + return czm_unpackDepth(czm_textureCube(shadowMap, d)); +} + +float czm_sampleShadowMap(highp sampler2D shadowMap, vec2 uv) +{ +#ifdef USE_SHADOW_DEPTH_TEXTURE + return texture(shadowMap, uv).r; +#else + return czm_unpackDepth(texture(shadowMap, uv)); +#endif +} + +float czm_shadowDepthCompare(samplerCube shadowMap, vec3 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} + +float czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} +`;var SD=` +float czm_private_shadowVisibility(float visibility, float nDotL, float normalShadingSmooth, float darkness) +{ +#ifdef USE_NORMAL_SHADING +#ifdef USE_NORMAL_SHADING_SMOOTH + float strength = clamp(nDotL / normalShadingSmooth, 0.0, 1.0); +#else + float strength = step(0.0, nDotL); +#endif + visibility *= strength; +#endif + + visibility = max(visibility, darkness); + return visibility; +} + +#ifdef USE_CUBE_MAP_SHADOW +float czm_shadowVisibility(samplerCube shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec3 uvw = shadowParameters.texCoords; + + depth -= depthBias; + float visibility = czm_shadowDepthCompare(shadowMap, uvw, depth); + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#else +float czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec2 uv = shadowParameters.texCoords; + + depth -= depthBias; +#ifdef USE_SOFT_SHADOWS + vec2 texelStepSize = shadowParameters.texelStepSize; + float radius = 1.0; + float dx0 = -texelStepSize.x * radius; + float dy0 = -texelStepSize.y * radius; + float dx1 = texelStepSize.x * radius; + float dy1 = texelStepSize.y * radius; + float visibility = ( + czm_shadowDepthCompare(shadowMap, uv, depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth) + ) * (1.0 / 9.0); +#else + float visibility = czm_shadowDepthCompare(shadowMap, uv, depth); +#endif + + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#endif +`;var wD=`/** + * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative. This is similar to the GLSL + * built-in function sign except that returns 1.0 instead of 0.0 when the input value is 0.0. + * + * @name czm_signNotZero + * @glslFunction + * + * @param {} value The value for which to determine the sign. + * @returns {} 1.0 if the value is positive or zero, -1.0 if the value is negative. + */ +float czm_signNotZero(float value) +{ + return value >= 0.0 ? 1.0 : -1.0; +} + +vec2 czm_signNotZero(vec2 value) +{ + return vec2(czm_signNotZero(value.x), czm_signNotZero(value.y)); +} + +vec3 czm_signNotZero(vec3 value) +{ + return vec3(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z)); +} + +vec4 czm_signNotZero(vec4 value) +{ + return vec4(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z), czm_signNotZero(value.w)); +} +`;var vD=`/** + * Computes a color from the third order spherical harmonic coefficients and a normalized direction vector. + *

+ * The order of the coefficients is [L00, L1_1, L10, L11, L2_2, L2_1, L20, L21, L22]. + *

+ * + * @name czm_sphericalHarmonics + * @glslFunction + * + * @param {vec3} normal The normalized direction. + * @param {vec3[9]} coefficients The third order spherical harmonic coefficients. + * @returns {vec3} The color at the direction. + * + * @see https://graphics.stanford.edu/papers/envmap/envmap.pdf + */ +vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9]) +{ + vec3 L00 = coefficients[0]; + vec3 L1_1 = coefficients[1]; + vec3 L10 = coefficients[2]; + vec3 L11 = coefficients[3]; + vec3 L2_2 = coefficients[4]; + vec3 L2_1 = coefficients[5]; + vec3 L20 = coefficients[6]; + vec3 L21 = coefficients[7]; + vec3 L22 = coefficients[8]; + + float x = normal.x; + float y = normal.y; + float z = normal.z; + + return + L00 + + L1_1 * y + + L10 * z + + L11 * x + + L2_2 * (y * x) + + L2_1 * (y * z) + + L20 * (3.0 * z * z - 1.0) + + L21 * (z * x) + + L22 * (x * x - y * y); +} +`;var DD=`/** + * Converts an sRGB color to a linear RGB color. + * + * @param {vec3|vec4} srgbIn The color in sRGB space + * @returns {vec3|vec4} The color in linear color space. The vector type matches the input. + */ +vec3 czm_srgbToLinear(vec3 srgbIn) +{ + return pow(srgbIn, vec3(2.2)); +} + +vec4 czm_srgbToLinear(vec4 srgbIn) +{ + vec3 linearOut = pow(srgbIn.rgb, vec3(2.2)); + return vec4(linearOut, srgbIn.a); +} +`;var ID=`/** + * Creates a matrix that transforms vectors from tangent space to eye space. + * + * @name czm_tangentToEyeSpaceMatrix + * @glslFunction + * + * @param {vec3} normalEC The normal vector in eye coordinates. + * @param {vec3} tangentEC The tangent vector in eye coordinates. + * @param {vec3} bitangentEC The bitangent vector in eye coordinates. + * + * @returns {mat3} The matrix that transforms from tangent space to eye space. + * + * @example + * mat3 tangentToEye = czm_tangentToEyeSpaceMatrix(normalEC, tangentEC, bitangentEC); + * vec3 normal = tangentToEye * texture(normalMap, st).xyz; + */ +mat3 czm_tangentToEyeSpaceMatrix(vec3 normalEC, vec3 tangentEC, vec3 bitangentEC) +{ + vec3 normal = normalize(normalEC); + vec3 tangent = normalize(tangentEC); + vec3 bitangent = normalize(bitangentEC); + return mat3(tangent.x , tangent.y , tangent.z, + bitangent.x, bitangent.y, bitangent.z, + normal.x , normal.y , normal.z); +} +`;var PD=`/** + * A wrapper around the texture (WebGL2) / textureCube (WebGL1) + * function to allow for WebGL 1 support. + * + * @name czm_textureCube + * @glslFunction + * + * @param {samplerCube} sampler The sampler. + * @param {vec3} p The coordinates to sample the texture at. + */ +vec4 czm_textureCube(samplerCube sampler, vec3 p) { +#if __VERSION__ == 300 + return texture(sampler, p); +#else + return textureCube(sampler, p); +#endif +}`;var OD=`/** + * Transforms a plane. + * + * @name czm_transformPlane + * @glslFunction + * + * @param {vec4} plane The plane in Hessian Normal Form. + * @param {mat4} transform The inverse-transpose of a transformation matrix. + */ +vec4 czm_transformPlane(vec4 plane, mat4 transform) { + vec4 transformedPlane = transform * plane; + // Convert the transformed plane to Hessian Normal Form + float normalMagnitude = length(transformedPlane.xyz); + return transformedPlane / normalMagnitude; +} +`;var MD=`/** + * Translates a position (or any vec3) that was encoded with {@link EncodedCartesian3}, + * and then provided to the shader as separate high and low bits to + * be relative to the eye. As shown in the example, the position can then be transformed in eye + * or clip coordinates using {@link czm_modelViewRelativeToEye} or {@link czm_modelViewProjectionRelativeToEye}, + * respectively. + *

+ * This technique, called GPU RTE, eliminates jittering artifacts when using large coordinates as + * described in {@link http://help.agi.com/AGIComponents/html/BlogPrecisionsPrecisions.htm|Precisions, Precisions}. + *

+ * + * @name czm_translateRelativeToEye + * @glslFunction + * + * @param {vec3} high The position's high bits. + * @param {vec3} low The position's low bits. + * @returns {vec3} The position translated to be relative to the camera's position. + * + * @example + * in vec3 positionHigh; + * in vec3 positionLow; + * + * void main() + * { + * vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * } + * + * @see czm_modelViewRelativeToEye + * @see czm_modelViewProjectionRelativeToEye + * @see czm_computePosition + * @see EncodedCartesian3 + */ +vec4 czm_translateRelativeToEye(vec3 high, vec3 low) +{ + vec3 highDifference = high - czm_encodedCameraPositionMCHigh; + vec3 lowDifference = low - czm_encodedCameraPositionMCLow; + + return vec4(highDifference + lowDifference, 1.0); +} +`;var RD=`/** + * @private + */ +vec4 czm_translucentPhong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down and horizon views) + float diffuse = czm_getLambertDiffuse(vec3(0.0, 0.0, 1.0), material.normal); + + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_getLambertDiffuse(vec3(0.0, 1.0, 0.0), material.normal); + } + + diffuse = clamp(diffuse, 0.0, 1.0); + + float specular = czm_getSpecular(lightDirectionEC, toEye, material.normal, material.shininess); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var BD=`/** + * Returns the transpose of the matrix. The input matrix can be + * a mat2, mat3, or mat4. + * + * @name czm_transpose + * @glslFunction + * + * @param {} matrix The matrix to transpose. + * + * @returns {} The transposed matrix. + * + * @example + * // GLSL declarations + * mat2 czm_transpose(mat2 matrix); + * mat3 czm_transpose(mat3 matrix); + * mat4 czm_transpose(mat4 matrix); + * + * // Transpose a 3x3 rotation matrix to find its inverse. + * mat3 eastNorthUpToEye = czm_eastNorthUpToEyeCoordinates( + * positionMC, normalEC); + * mat3 eyeToEastNorthUp = czm_transpose(eastNorthUpToEye); + */ +mat2 czm_transpose(mat2 matrix) +{ + return mat2( + matrix[0][0], matrix[1][0], + matrix[0][1], matrix[1][1]); +} + +mat3 czm_transpose(mat3 matrix) +{ + return mat3( + matrix[0][0], matrix[1][0], matrix[2][0], + matrix[0][1], matrix[1][1], matrix[2][1], + matrix[0][2], matrix[1][2], matrix[2][2]); +} + +mat4 czm_transpose(mat4 matrix) +{ + return mat4( + matrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0], + matrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1], + matrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2], + matrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]); +} +`;var LD=`/** + * Unpacks a vec4 depth value to a float in [0, 1) range. + * + * @name czm_unpackDepth + * @glslFunction + * + * @param {vec4} packedDepth The packed depth. + * + * @returns {float} The floating-point depth in [0, 1) range. + */ + float czm_unpackDepth(vec4 packedDepth) + { + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)); + } +`;var ND=`/** + * Unpack an IEEE 754 single-precision float that is packed as a little-endian unsigned normalized vec4. + * + * @name czm_unpackFloat + * @glslFunction + * + * @param {vec4} packedFloat The packed float. + * + * @returns {float} The floating-point depth in arbitrary range. + */ +float czm_unpackFloat(vec4 packedFloat) +{ + // Convert to [0.0, 255.0] and round to integer + packedFloat = floor(packedFloat * 255.0 + 0.5); + float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0; + float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0; + if (exponent == -127.0) + { + return 0.0; + } + float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000); + float result = sign * exp2(exponent - 23.0) * mantissa; + return result; +} +`;var FD=`/** + * Unpack unsigned integers of 1-4 bytes. in WebGL 1, there is no uint type, + * so the return value is an int. + *

+ * There are also precision limitations in WebGL 1. highp int is still limited + * to 24 bits. Above the value of 2^24 = 16777216, precision loss may occur. + *

+ * + * @param {float|vec2|vec3|vec4} packed The packed value. For vectors, the components are listed in little-endian order. + * + * @return {int} The unpacked value. + */ + int czm_unpackUint(float packedValue) { + float rounded = czm_round(packedValue * 255.0); + return int(rounded); + } + + int czm_unpackUint(vec2 packedValue) { + vec2 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec2(1.0, 256.0))); + } + + int czm_unpackUint(vec3 packedValue) { + vec3 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec3(1.0, 256.0, 65536.0))); + } + + int czm_unpackUint(vec4 packedValue) { + vec4 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec4(1.0, 256.0, 65536.0, 16777216.0))); + } +`;var UD=`/** + * Transform metadata values following the EXT_structural_metadata spec + * by multiplying by scale and adding the offset. Operations are always + * performed component-wise, even for matrices. + * + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} offset The offset to add + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} scale The scale factor to multiply + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} value The original value. + * + * @return {float|vec2|vec3|vec4|mat2|mat3|mat4} The transformed value of the same scalar/vector/matrix type as the input. + */ +float czm_valueTransform(float offset, float scale, float value) { + return scale * value + offset; +} + +vec2 czm_valueTransform(vec2 offset, vec2 scale, vec2 value) { + return scale * value + offset; +} + +vec3 czm_valueTransform(vec3 offset, vec3 scale, vec3 value) { + return scale * value + offset; +} + +vec4 czm_valueTransform(vec4 offset, vec4 scale, vec4 value) { + return scale * value + offset; +} + +mat2 czm_valueTransform(mat2 offset, mat2 scale, mat2 value) { + return matrixCompMult(scale, value) + offset; +} + +mat3 czm_valueTransform(mat3 offset, mat3 scale, mat3 value) { + return matrixCompMult(scale, value) + offset; +} + +mat4 czm_valueTransform(mat4 offset, mat4 scale, mat4 value) { + return matrixCompMult(scale, value) + offset; +} +`;var VD=`#ifdef LOG_DEPTH +// 1.0 at the near plane, increasing linearly from there. +out float v_depthFromNearPlusOne; +#ifdef SHADOW_MAP +out vec3 v_logPositionEC; +#endif +#endif + +vec4 czm_updatePositionDepth(vec4 coords) { +#if defined(LOG_DEPTH) + +#ifdef SHADOW_MAP + vec3 logPositionEC = (czm_inverseProjection * coords).xyz; + v_logPositionEC = logPositionEC; +#endif + + // With the very high far/near ratios used with the logarithmic depth + // buffer, floating point rounding errors can cause linear depth values + // to end up on the wrong side of the far plane, even for vertices that + // are really nowhere near it. Since we always write a correct logarithmic + // depth value in the fragment shader anyway, we just need to make sure + // such errors don't cause the primitive to be clipped entirely before + // we even get to the fragment shader. + coords.z = clamp(coords.z / coords.w, -1.0, 1.0) * coords.w; +#endif + + return coords; +} + +/** + * Writes the logarithmic depth to gl_Position using the already computed gl_Position. + * + * @name czm_vertexLogDepth + * @glslFunction + */ +void czm_vertexLogDepth() +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (gl_Position.w - czm_currentFrustum.x) + 1.0; + gl_Position = czm_updatePositionDepth(gl_Position); +#endif +} + +/** + * Writes the logarithmic depth to gl_Position using the provided clip coordinates. + *

+ * An example use case for this function would be moving the vertex in window coordinates + * before converting back to clip coordinates. Use the original vertex clip coordinates. + *

+ * @name czm_vertexLogDepth + * @glslFunction + * + * @param {vec4} clipCoords The vertex in clip coordinates. + * + * @example + * czm_vertexLogDepth(czm_projection * vec4(positionEyeCoordinates, 1.0)); + */ +void czm_vertexLogDepth(vec4 clipCoords) +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (clipCoords.w - czm_currentFrustum.x) + 1.0; + czm_updatePositionDepth(clipCoords); +#endif +} +`;var kD=`vec4 czm_screenToEyeCoordinates(vec4 screenCoordinate) +{ + // Reconstruct NDC coordinates + float x = 2.0 * screenCoordinate.x - 1.0; + float y = 2.0 * screenCoordinate.y - 1.0; + float z = (screenCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + vec4 q = vec4(x, y, z, 1.0); + + // Reverse the perspective division to obtain clip coordinates. + q /= screenCoordinate.w; + + // Reverse the projection transformation to obtain eye coordinates. + if (!(czm_inverseProjection == mat4(0.0))) // IE and Edge sometimes do something weird with != between mat4s + { + q = czm_inverseProjection * q; + } + else + { + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + + q.x = (q.x * (right - left) + left + right) * 0.5; + q.y = (q.y * (top - bottom) + bottom + top) * 0.5; + q.z = (q.z * (near - far) - near - far) * 0.5; + q.w = 1.0; + } + + return q; +} + +/** + * Transforms a position from window to eye coordinates. + * The transform from window to normalized device coordinates is done using components + * of (@link czm_viewport} and {@link czm_viewportTransformation} instead of calculating + * the inverse of czm_viewportTransformation. The transformation from + * normalized device coordinates to clip coordinates is done using fragmentCoordinate.w, + * which is expected to be the scalar used in the perspective divide. The transformation + * from clip to eye coordinates is done using {@link czm_inverseProjection}. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec4} fragmentCoordinate The position in window coordinates to transform. + * + * @returns {vec4} The transformed position in eye coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @example + * vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord); + */ +vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate) +{ + vec2 screenCoordXY = (fragmentCoordinate.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(vec4(screenCoordXY, fragmentCoordinate.zw)); +} + +vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth) +{ + // See reverseLogDepth.glsl. This is separate to re-use the pow. +#if defined(LOG_DEPTH) || defined(LOG_DEPTH_READ_ONLY) + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = pow(2.0, log2Depth) - 1.0; + float depthFromCamera = depthFromNear + near; + vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); + eyeCoordinate.w = 1.0 / depthFromCamera; // Better precision + return eyeCoordinate; +#else + vec4 screenCoord = vec4(screenCoordinateXY, depthOrLogDepth, 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); +#endif + return eyeCoordinate; +} + +/** + * Transforms a position given as window x/y and a depth or a log depth from window to eye coordinates. + * This function produces more accurate results for window positions with log depth than + * conventionally unpacking the log depth using czm_reverseLogDepth and using the standard version + * of czm_windowToEyeCoordinates. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec2} fragmentCoordinateXY The XY position in window coordinates to transform. + * @param {float} depthOrLogDepth A depth or log depth for the fragment. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @returns {vec4} The transformed position in eye coordinates. + */ +vec4 czm_windowToEyeCoordinates(vec2 fragmentCoordinateXY, float depthOrLogDepth) +{ + vec2 screenCoordXY = (fragmentCoordinateXY.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(screenCoordXY, depthOrLogDepth); +} +`;var zD=`// emulated noperspective +#if !defined(LOG_DEPTH) +in float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP. Clamps a fragment to the near and far plane + * by writing the fragment's depth. See czm_depthClamp for more details. + * + * @name czm_writeDepthClamp + * @glslFunction + * + * @example + * out_FragColor = color; + * czm_writeDepthClamp(); + * + * @see czm_depthClamp + */ +void czm_writeDepthClamp() +{ +#if (!defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + gl_FragDepth = clamp(v_WindowZ * gl_FragCoord.w, 0.0, 1.0); +#endif +} +`;var HD=`#ifdef LOG_DEPTH +in float v_depthFromNearPlusOne; + +#ifdef POLYGON_OFFSET +uniform vec2 u_polygonOffset; +#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif +#endif + +#endif + +/** + * Writes the fragment depth to the logarithmic depth buffer. + *

+ * Use this when the vertex shader does not call {@link czm_vertexlogDepth}, for example, when + * ray-casting geometry using a full screen quad. + *

+ * @name czm_writeLogDepth + * @glslFunction + * + * @param {float} depth The depth coordinate, where 1.0 is on the near plane and + * depth increases in eye-space units from there + * + * @example + * czm_writeLogDepth((czm_projection * v_positionEyeCoordinates).w + 1.0); + */ +void czm_writeLogDepth(float depth) +{ +#if (defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + // Discard the vertex if it's not between the near and far planes. + // We allow a bit of epsilon on the near plane comparison because a 1.0 + // from the vertex shader (indicating the vertex should be _on_ the near + // plane) will not necessarily come here as exactly 1.0. + if (depth <= 0.9999999 || depth > czm_farDepthFromNearPlusOne) { + discard; + } + +#ifdef POLYGON_OFFSET + // Polygon offset: m * factor + r * units + float factor = u_polygonOffset[0]; + float units = u_polygonOffset[1]; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + // This factor doesn't work in IE 10 + if (factor != 0.0) { + // m = sqrt(dZdX^2 + dZdY^2); + float x = dFdx(depth); + float y = dFdy(depth); + float m = sqrt(x * x + y * y); + + // Apply the factor before computing the log depth. + depth += m * factor; + } +#endif + +#endif + + gl_FragDepth = log2(depth) * czm_oneOverLog2FarDepthFromNearPlusOne; + +#ifdef POLYGON_OFFSET + // Apply the units after the log depth. + gl_FragDepth += czm_epsilon7 * units; +#endif + +#endif +} + +/** + * Writes the fragment depth to the logarithmic depth buffer. + *

+ * Use this when the vertex shader calls {@link czm_vertexlogDepth}. + *

+ * + * @name czm_writeLogDepth + * @glslFunction + */ +void czm_writeLogDepth() { +#ifdef LOG_DEPTH + czm_writeLogDepth(v_depthFromNearPlusOne); +#endif +} +`;var GD=`/** + * Transforms a value for non-perspective interpolation by multiplying + * it by w, the value used in the perspective divide. This function is + * intended to be called in a vertex shader to compute the value of a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The fragment shader + * must call {@link czm_readNonPerspective} to retrieve the final + * non-perspective value. + * + * @name czm_writeNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The value to be interpolated without accounting for perspective. + * @param {float} w The perspective divide value. Usually this is the computed \`gl_Position.w\`. + * @returns {float|vec2|vec3|vec4} The transformed value, intended to be stored in a \`varying\` and read in the + * fragment shader with {@link czm_readNonPerspective}. + */ +float czm_writeNonPerspective(float value, float w) { + return value * w; +} + +vec2 czm_writeNonPerspective(vec2 value, float w) { + return value * w; +} + +vec3 czm_writeNonPerspective(vec3 value, float w) { + return value * w; +} + +vec4 czm_writeNonPerspective(vec4 value, float w) { + return value * w; +} +`;var M0={czm_degreesPerRadian:Cw,czm_depthRange:Tw,czm_epsilon1:Ew,czm_epsilon2:bw,czm_epsilon3:Sw,czm_epsilon4:ww,czm_epsilon5:vw,czm_epsilon6:Dw,czm_epsilon7:Iw,czm_infinity:Pw,czm_oneOverPi:Ow,czm_oneOverTwoPi:Mw,czm_passCesium3DTile:Rw,czm_passCesium3DTileClassification:Bw,czm_passCesium3DTileClassificationIgnoreShow:Lw,czm_passClassification:Nw,czm_passCompute:Fw,czm_passEnvironment:Uw,czm_passGlobe:Vw,czm_passOpaque:kw,czm_passOverlay:zw,czm_passTerrainClassification:Hw,czm_passTranslucent:Gw,czm_passVoxels:Ww,czm_pi:jw,czm_piOverFour:Yw,czm_piOverSix:qw,czm_piOverThree:Xw,czm_piOverTwo:Kw,czm_radiansPerDegree:Jw,czm_sceneMode2D:Zw,czm_sceneMode3D:Qw,czm_sceneModeColumbusView:$w,czm_sceneModeMorphing:ev,czm_solarRadius:tv,czm_threePiOver2:nv,czm_twoPi:iv,czm_webMercatorMaxLatitude:ov,czm_depthRangeStruct:rv,czm_material:sv,czm_materialInput:av,czm_modelMaterial:cv,czm_modelVertexOutput:lv,czm_pbrParameters:uv,czm_ray:fv,czm_raySegment:dv,czm_shadowParameters:mv,czm_HSBToRGB:hv,czm_HSLToRGB:pv,czm_RGBToHSB:_v,czm_RGBToHSL:gv,czm_RGBToXYZ:yv,czm_XYZToRGB:Av,czm_acesTonemapping:xv,czm_alphaWeight:Cv,czm_antialias:Tv,czm_approximateSphericalCoordinates:Ev,czm_backFacing:bv,czm_branchFreeTernary:Sv,czm_cascadeColor:wv,czm_cascadeDistance:vv,czm_cascadeMatrix:Dv,czm_cascadeWeights:Iv,czm_columbusViewMorph:Pv,czm_computePosition:Ov,czm_cosineAndSine:Mv,czm_decompressTextureCoordinates:Rv,czm_defaultPbrMaterial:Bv,czm_depthClamp:Lv,czm_eastNorthUpToEyeCoordinates:Nv,czm_ellipsoidContainsPoint:Fv,czm_ellipsoidWgs84TextureCoordinates:Uv,czm_equalsEpsilon:Vv,czm_eyeOffset:kv,czm_eyeToWindowCoordinates:zv,czm_fastApproximateAtan:Hv,czm_fog:Gv,czm_gammaCorrect:Wv,czm_geodeticSurfaceNormal:jv,czm_getDefaultMaterial:Yv,czm_getLambertDiffuse:qv,czm_getSpecular:Xv,czm_getWaterNoise:Kv,czm_hue:Jv,czm_inverseGamma:Zv,czm_isEmpty:Qv,czm_isFull:$v,czm_latitudeToWebMercatorFraction:eD,czm_lineDistance:tD,czm_linearToSrgb:nD,czm_luminance:iD,czm_metersPerPixel:oD,czm_modelToWindowCoordinates:rD,czm_multiplyWithColorBalance:sD,czm_nearFarScalar:aD,czm_octDecode:cD,czm_packDepth:lD,czm_pbrLighting:uD,czm_pbrMetallicRoughnessMaterial:fD,czm_pbrSpecularGlossinessMaterial:dD,czm_phong:mD,czm_planeDistance:hD,czm_pointAlongRay:pD,czm_rayEllipsoidIntersectionInterval:_D,czm_raySphereIntersectionInterval:gD,czm_readDepth:yD,czm_readNonPerspective:AD,czm_reverseLogDepth:xD,czm_round:CD,czm_sampleOctahedralProjection:TD,czm_saturation:ED,czm_shadowDepthCompare:bD,czm_shadowVisibility:SD,czm_signNotZero:wD,czm_sphericalHarmonics:vD,czm_srgbToLinear:DD,czm_tangentToEyeSpaceMatrix:ID,czm_textureCube:PD,czm_transformPlane:OD,czm_translateRelativeToEye:MD,czm_translucentPhong:RD,czm_transpose:BD,czm_unpackDepth:LD,czm_unpackFloat:ND,czm_unpackUint:FD,czm_valueTransform:UD,czm_vertexLogDepth:VD,czm_windowToEyeCoordinates:kD,czm_writeDepthClamp:zD,czm_writeLogDepth:HD,czm_writeNonPerspective:GD};function ZEe(e,t){let n=e;return n=n.replaceAll("version 300 es",""),n=n.replaceAll(/(texture\()/g,"texture2D("),t?(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"varying $2"),/out_FragData_(\d+)/.test(n)&&(n=`#extension GL_EXT_draw_buffers : enable +${n}`,n=n.replaceAll(/layout\s+\(location\s*=\s*\d+\)\s*out\s+vec4\s+out_FragData_\d+;/g,""),n=n.replaceAll(/out_FragData_(\d+)/g,"gl_FragData[$1]")),n=n.replaceAll(/layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,""),n=n.replaceAll(/out_FragColor/g,"gl_FragColor"),n=n.replaceAll(/out_FragColor\[(\d+)\]/g,"gl_FragColor[$1]"),/gl_FragDepth/.test(n)&&(n=`#extension GL_EXT_frag_depth : enable +${n}`,n=n.replaceAll(/gl_FragDepth/g,"gl_FragDepthEXT"))):(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"attribute $2"),n=n.replaceAll(/(out)\s+(vec\d|mat\d|float)\s+([\w]+);/g,"varying $2 $3;")),n=`#version 100 +${n}`,n}var WD=ZEe;function HZ(e){return e=e.replace(/\/\/.*/g,""),e.replace(/\/\*\*[\s\S]*?\*\//gm,function(t){let n=t.match(/\n/gm).length,i="";for(let o=0;o0;){let o=e.pop();n.push(o),o.requiredBy.length===0&&t.push(o)}for(;t.length>0;){let o=t.shift();e.push(o);for(let r=0;r=0;--o)i=`${i+t[o].glslSource} +`;return i.replace(n.glslSource,"")}function jZ(e,t,n){let i,o,r="",s=e.sources;if(l(s))for(i=0,o=s.length;i-1&&i.derivedKeywords.splice(s,1)}return this.createDerivedShaderProgram(e,t,n)};ed.prototype.getDerivedShaderProgram=function(e,t){let n=e._cachedShader,i=t+n.keyword,o=this._shaders[i];if(l(o))return o.shaderProgram};ed.prototype.createDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=n.vertexShaderSource,s=n.fragmentShaderSource,a=n.attributeLocations;typeof r=="string"&&(r=new He({sources:[r]})),typeof s=="string"&&(s=new He({sources:[s]}));let c=this._context,u=r.createCombinedVertexShader(c),f=s.createCombinedFragmentShader(c),d=new Kt({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:r,vertexShaderText:u,fragmentShaderSource:s,fragmentShaderText:f,attributeLocations:a}),p={cache:this,shaderProgram:d,keyword:o,derivedKeywords:[],count:0};return i.derivedKeywords.push(t),d._cachedShader=p,this._shaders[o]=p,d};function OG(e,t){let n=t.derivedKeywords,i=n.length;for(let o=0;o=0?(n=Math.floor(e/65536)*65536,t.high=n,t.low=e-n):(n=Math.floor(-e/65536)*65536,t.high=-n,t.low=e+n),t};var Zh={high:0,low:0};Pm.fromCartesian=function(e,t){l(t)||(t=new Pm);let n=t.high,i=t.low;return Pm.encode(e.x,Zh),n.x=Zh.high,i.x=Zh.low,Pm.encode(e.y,Zh),n.y=Zh.high,i.y=Zh.low,Pm.encode(e.z,Zh),n.z=Zh.high,i.z=Zh.low,t};var MG=new Pm;Pm.writeElements=function(e,t,n){Pm.fromCartesian(e,MG);let i=MG.high,o=MG.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=o.x,t[n+4]=o.y,t[n+5]=o.z};var Wn=Pm;function ys(e,t){this.normal=m.clone(e),this.distance=t}ys.fromPointNormal=function(e,t,n){let i=-m.dot(t,e);return l(n)?(m.clone(t,n.normal),n.distance=i,n):new ys(t,i)};var obe=new m;ys.fromCartesian4=function(e,t){let n=m.fromCartesian4(e,obe),i=e.w;return l(t)?(m.clone(n,t.normal),t.distance=i,t):new ys(n,i)};ys.getPointDistance=function(e,t){return m.dot(e.normal,t)+e.distance};var rbe=new m;ys.projectPointOntoPlane=function(e,t,n){l(n)||(n=new m);let i=ys.getPointDistance(e,t),o=m.multiplyByScalar(e.normal,i,rbe);return m.subtract(t,o,n)};var sbe=new B,abe=new re,cbe=new m;ys.transform=function(e,t,n){let i=e.normal,o=e.distance,r=B.inverseTranspose(t,sbe),s=re.fromElements(i.x,i.y,i.z,o,abe);s=B.multiplyByVector(r,s,s);let a=m.fromCartesian4(s,cbe);return s=re.divideByScalar(s,m.magnitude(a),s),ys.fromCartesian4(s,n)};ys.clone=function(e,t){return l(t)?(m.clone(e.normal,t.normal),t.distance=e.distance,t):new ys(e.normal,e.distance)};ys.equals=function(e,t){return e.distance===t.distance&&m.equals(e.normal,t.normal)};ys.ORIGIN_XY_PLANE=Object.freeze(new ys(m.UNIT_Z,0));ys.ORIGIN_YZ_PLANE=Object.freeze(new ys(m.UNIT_X,0));ys.ORIGIN_ZX_PLANE=Object.freeze(new ys(m.UNIT_Y,0));var un=ys;function Gu(e){this.planes=y(e,[])}var qD=[new m,new m,new m];m.clone(m.UNIT_X,qD[0]);m.clone(m.UNIT_Y,qD[1]);m.clone(m.UNIT_Z,qD[2]);var eg=new m,lbe=new m,XZ=new un(new m(1,0,0),0);Gu.fromBoundingSphere=function(e,t){l(t)||(t=new Gu);let n=qD.length,i=t.planes;i.length=2*n;let o=e.center,r=e.radius,s=0;for(let a=0;axbe;++r){o=i;let s=o-t*Math.sin(o)-e,a=1-t*Math.cos(o);i=o-s/a}return o=i+n*P.TWO_PI,o}function Tbe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.TWO_PI;let i=Math.cos(e)-t,o=Math.sin(e)*Math.sqrt(1-t*t),r=Math.atan2(o,i);return r=P.zeroToTwoPi(r),e<0&&(r-=P.TWO_PI),r+=n*P.TWO_PI,r}function Ebe(e,t,n,i){let o=Math.cos(e),r=Math.sin(e),s=Math.cos(t),a=Math.sin(t),c=Math.cos(n),u=Math.sin(n);return l(i)?(i[0]=c*o-u*r*s,i[1]=u*o+c*r*s,i[2]=r*a,i[3]=-c*r-u*o*s,i[4]=-u*r+c*o*s,i[5]=o*a,i[6]=u*a,i[7]=-c*a,i[8]=s):i=new Z(c*o-u*r*s,-c*r-u*o*s,u*a,u*o+c*r*s,-u*r+c*o*s,-c*a,r*a,o*a,s),i}var bbe=1.0000010178*da,Sbe=100.46645683*Wu,wbe=129597742283429e-5*zl,ZZ=16002,QZ=21863,$Z=32004,eQ=10931,tQ=14529,nQ=16368,iQ=15318,oQ=32794,vbe=64*1e-7*da,Dbe=-152*1e-7*da,Ibe=62*1e-7*da,Pbe=-8*1e-7*da,Obe=32*1e-7*da,Mbe=-41*1e-7*da,Rbe=19*1e-7*da,Bbe=-11*1e-7*da,Lbe=-150*1e-7*da,Nbe=-46*1e-7*da,Fbe=68*1e-7*da,Ube=54*1e-7*da,Vbe=14*1e-7*da,kbe=24*1e-7*da,zbe=-28*1e-7*da,Hbe=22*1e-7*da,rQ=10,sQ=16002,aQ=21863,cQ=10931,lQ=1473,uQ=32004,fQ=4387,dQ=73,Gbe=-325*1e-7,Wbe=-322*1e-7,jbe=-79*1e-7,Ybe=232*1e-7,qbe=-52*1e-7,Xbe=97*1e-7,Kbe=55*1e-7,Jbe=-41*1e-7,Zbe=-105*1e-7,Qbe=-137*1e-7,$be=258*1e-7,eSe=35*1e-7,tSe=-116*1e-7,nSe=-88*1e-7,iSe=-112*1e-7,oSe=-80*1e-7,rT=new ee(0,0,Jn.TAI);function rSe(e,t){hQ(e,rT);let i=(rT.dayNumber-U3.dayNumber+(rT.secondsOfDay-U3.secondsOfDay)/Zn.SECONDS_PER_DAY)/(Zn.DAYS_PER_JULIAN_CENTURY*10),o=.3595362*i,r=bbe+vbe*Math.cos(ZZ*o)+Lbe*Math.sin(ZZ*o)+Dbe*Math.cos(QZ*o)+Nbe*Math.sin(QZ*o)+Ibe*Math.cos($Z*o)+Fbe*Math.sin($Z*o)+Pbe*Math.cos(eQ*o)+Ube*Math.sin(eQ*o)+Obe*Math.cos(tQ*o)+Vbe*Math.sin(tQ*o)+Mbe*Math.cos(nQ*o)+kbe*Math.sin(nQ*o)+Rbe*Math.cos(iQ*o)+zbe*Math.sin(iQ*o)+Bbe*Math.cos(oQ*o)+Hbe*Math.sin(oQ*o),s=Sbe+wbe*i+Gbe*Math.cos(rQ*o)+Zbe*Math.sin(rQ*o)+Wbe*Math.cos(sQ*o)+Qbe*Math.sin(sQ*o)+jbe*Math.cos(aQ*o)+$be*Math.sin(aQ*o)+Ybe*Math.cos(cQ*o)+eSe*Math.sin(cQ*o)+qbe*Math.cos(lQ*o)+tSe*Math.sin(lQ*o)+Xbe*Math.cos(uQ*o)+nSe*Math.sin(uQ*o)+Kbe*Math.cos(fQ*o)+iSe*Math.sin(fQ*o)+Jbe*Math.cos(dQ*o)+oSe*Math.sin(dQ*o),a=.0167086342-.0004203654*i,c=102.93734808*Wu+11612.3529*zl*i,u=469.97289*zl*i,f=174.87317577*Wu-8679.27034*zl*i;return pQ(r,a,u,c,f,s,t)}function _Q(e,t){hQ(e,rT);let i=(rT.dayNumber-U3.dayNumber+(rT.secondsOfDay-U3.secondsOfDay)/Zn.SECONDS_PER_DAY)/Zn.DAYS_PER_JULIAN_CENTURY,o=i*i,r=o*i,s=r*i,a=383397.7725+.004*i,c=.055545526-16e-9*i,u=5.15668983*Wu,f=-8e-5*i+.02966*o-42e-6*r-13e-8*s,d=83.35324312*Wu,p=146434202669e-4*i-38.2702*o-.045047*r+21301e-8*s,g=125.04455501*Wu,h=-69679193631e-4*i+6.3602*o+.007625*r-3586e-8*s,A=218.31664563*Wu,x=17325593434847e-4*i-6.391*o+.006588*r-3169e-8*s,C=297.85019547*Wu+zl*(1602961601209e-3*i-6.3706*o+.006593*r-3169e-8*s),T=93.27209062*Wu+zl*(17395272628478e-4*i-12.7512*o-.001037*r+417e-8*s),E=134.96340251*Wu+zl*(17179159232178e-4*i+31.8792*o+.051635*r-2447e-7*s),S=357.52910918*Wu+zl*(1295965810481e-4*i-.5532*o+136e-6*r-1149e-8*s),v=310.17137918*Wu-zl*(6967051436e-3*i+6.2068*o+.007618*r-3219e-8*s),D=2*C,O=4*C,M=6*C,L=2*E,N=3*E,_=4*E,b=2*T;a+=3400.4*Math.cos(D)-635.6*Math.cos(D-E)-235.6*Math.cos(E)+218.1*Math.cos(D-S)+181*Math.cos(D+E),c+=.014216*Math.cos(D-E)+.008551*Math.cos(D-L)-.001383*Math.cos(E)+.001356*Math.cos(D+E)-.001147*Math.cos(O-N)-914e-6*Math.cos(O-L)+869e-6*Math.cos(D-S-E)-627e-6*Math.cos(D)-394e-6*Math.cos(O-_)+282e-6*Math.cos(D-S-L)-279e-6*Math.cos(C-E)-236e-6*Math.cos(L)+231e-6*Math.cos(O)+229e-6*Math.cos(M-_)-201e-6*Math.cos(L-b),f+=486.26*Math.cos(D-b)-40.13*Math.cos(D)+37.51*Math.cos(b)+25.73*Math.cos(L-b)+19.97*Math.cos(D-S-b),p+=-55609*Math.sin(D-E)-34711*Math.sin(D-L)-9792*Math.sin(E)+9385*Math.sin(O-N)+7505*Math.sin(O-L)+5318*Math.sin(D+E)+3484*Math.sin(O-_)-3417*Math.sin(D-S-E)-2530*Math.sin(M-_)-2376*Math.sin(D)-2075*Math.sin(D-N)-1883*Math.sin(L)-1736*Math.sin(M-5*E)+1626*Math.sin(S)-1370*Math.sin(M-N),h+=-5392*Math.sin(D-b)-540*Math.sin(S)-441*Math.sin(D)+423*Math.sin(b)-288*Math.sin(L-b),x+=-3332.9*Math.sin(D)+1197.4*Math.sin(D-E)-662.5*Math.sin(S)+396.3*Math.sin(E)-218*Math.sin(D-S);let w=2*v,I=3*v;f+=46.997*Math.cos(v)*i-.614*Math.cos(D-b+v)*i+.614*Math.cos(D-b-v)*i-.0297*Math.cos(w)*o-.0335*Math.cos(v)*o+.0012*Math.cos(D-b+w)*o-16e-5*Math.cos(v)*r+4e-5*Math.cos(I)*r+4e-5*Math.cos(w)*r;let R=2.116*Math.sin(v)*i-.111*Math.sin(D-b-v)*i-.0015*Math.sin(v)*o;p+=R,x+=R,h+=-520.77*Math.sin(v)*i+13.66*Math.sin(D-b+v)*i+1.12*Math.sin(D-v)*i-1.06*Math.sin(b-v)*i+.66*Math.sin(w)*o+.371*Math.sin(v)*o-.035*Math.sin(D-b+w)*o-.015*Math.sin(D-b+v)*o+.0014*Math.sin(v)*r-.0011*Math.sin(I)*r-9e-4*Math.sin(w)*r,a*=_be;let F=u+f*zl,k=d+p*zl,V=A+x*zl,G=g+h*zl;return pQ(a,c,F,k,G,V,t)}var mQ=.012300034,sSe=mQ/(mQ+1)*-1;function aSe(e,t){return t=_Q(e,t),m.multiplyByScalar(t,sSe,t)}var gQ=new Z(1.0000000000000002,5619723173785822e-31,4690511510146299e-34,-5154129427414611e-31,.9174820620691819,-.39777715593191376,-223970096136568e-30,.39777715593191376,.9174820620691819),XD=new m;BG.computeSunPositionInEarthInertialFrame=function(e,t){return l(e)||(e=ee.now()),l(t)||(t=new m),XD=rSe(e,XD),t=m.negate(XD,t),aSe(e,XD),m.subtract(t,XD,t),Z.multiplyByVector(gQ,t,t),t};BG.computeMoonPositionInEarthInertialFrame=function(e,t){return l(e)||(e=ee.now()),t=_Q(e,t),Z.multiplyByVector(gQ,t,t),t};var ng=BG;var V3={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};V3.getMorphTime=function(e){return e===V3.SCENE3D?1:e===V3.MORPHING?void 0:0};var ne=Object.freeze(V3);function cSe(e){e=y(e,y.EMPTY_OBJECT),this.color=z.clone(y(e.color,z.WHITE)),this.intensity=y(e.intensity,2)}var Qh=cSe;function sT(){this.globeDepthTexture=void 0,this.gamma=void 0,this._viewport=new Ke,this._viewportCartesian4=new re,this._viewportDirty=!1,this._viewportOrthographicMatrix=B.clone(B.IDENTITY),this._viewportTransformation=B.clone(B.IDENTITY),this._model=B.clone(B.IDENTITY),this._view=B.clone(B.IDENTITY),this._inverseView=B.clone(B.IDENTITY),this._projection=B.clone(B.IDENTITY),this._infiniteProjection=B.clone(B.IDENTITY),this._entireFrustum=new H,this._currentFrustum=new H,this._frustumPlanes=new re,this._farDepthFromNearPlusOne=void 0,this._log2FarDepthFromNearPlusOne=void 0,this._oneOverLog2FarDepthFromNearPlusOne=void 0,this._frameState=void 0,this._temeToPseudoFixed=Z.clone(B.IDENTITY),this._view3DDirty=!0,this._view3D=new B,this._inverseView3DDirty=!0,this._inverseView3D=new B,this._inverseModelDirty=!0,this._inverseModel=new B,this._inverseTransposeModelDirty=!0,this._inverseTransposeModel=new Z,this._viewRotation=new Z,this._inverseViewRotation=new Z,this._viewRotation3D=new Z,this._inverseViewRotation3D=new Z,this._inverseProjectionDirty=!0,this._inverseProjection=new B,this._modelViewDirty=!0,this._modelView=new B,this._modelView3DDirty=!0,this._modelView3D=new B,this._modelViewRelativeToEyeDirty=!0,this._modelViewRelativeToEye=new B,this._inverseModelViewDirty=!0,this._inverseModelView=new B,this._inverseModelView3DDirty=!0,this._inverseModelView3D=new B,this._viewProjectionDirty=!0,this._viewProjection=new B,this._inverseViewProjectionDirty=!0,this._inverseViewProjection=new B,this._modelViewProjectionDirty=!0,this._modelViewProjection=new B,this._inverseModelViewProjectionDirty=!0,this._inverseModelViewProjection=new B,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewProjectionRelativeToEye=new B,this._modelViewInfiniteProjectionDirty=!0,this._modelViewInfiniteProjection=new B,this._normalDirty=!0,this._normal=new Z,this._normal3DDirty=!0,this._normal3D=new Z,this._inverseNormalDirty=!0,this._inverseNormal=new Z,this._inverseNormal3DDirty=!0,this._inverseNormal3D=new Z,this._encodedCameraPositionMCDirty=!0,this._encodedCameraPositionMC=new Wn,this._cameraPosition=new m,this._sunPositionWC=new m,this._sunPositionColumbusView=new m,this._sunDirectionWC=new m,this._sunDirectionEC=new m,this._moonDirectionEC=new m,this._lightDirectionWC=new m,this._lightDirectionEC=new m,this._lightColor=new m,this._lightColorHdr=new m,this._pass=void 0,this._mode=void 0,this._mapProjection=void 0,this._ellipsoid=void 0,this._cameraDirection=new m,this._cameraRight=new m,this._cameraUp=new m,this._frustum2DWidth=0,this._eyeHeight=0,this._eyeHeight2D=new H,this._pixelRatio=1,this._orthographicIn3D=!1,this._backgroundColor=new z,this._brdfLut=void 0,this._environmentMap=void 0,this._sphericalHarmonicCoefficients=void 0,this._specularEnvironmentMaps=void 0,this._specularEnvironmentMapsDimensions=new H,this._specularEnvironmentMapsMaximumLOD=void 0,this._fogDensity=void 0,this._invertClassificationColor=void 0,this._splitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}Object.defineProperties(sT.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(e){if(!Ke.equals(e,this._viewport)){Ke.clone(e,this._viewport);let t=this._viewport,n=this._viewportCartesian4;n.x=t.x,n.y=t.y,n.z=t.width,n.w=t.height,this._viewportDirty=!0}}},viewportCartesian4:{get:function(){return this._viewportCartesian4}},viewportOrthographic:{get:function(){return yQ(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return yQ(this),this._viewportTransformation}},model:{get:function(){return this._model},set:function(e){B.clone(e,this._model),this._modelView3DDirty=!0,this._inverseModelView3DDirty=!0,this._inverseModelDirty=!0,this._inverseTransposeModelDirty=!0,this._modelViewDirty=!0,this._inverseModelViewDirty=!0,this._modelViewRelativeToEyeDirty=!0,this._inverseModelViewDirty=!0,this._modelViewProjectionDirty=!0,this._inverseModelViewProjectionDirty=!0,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewInfiniteProjectionDirty=!0,this._normalDirty=!0,this._inverseNormalDirty=!0,this._normal3DDirty=!0,this._inverseNormal3DDirty=!0,this._encodedCameraPositionMCDirty=!0}},inverseModel:{get:function(){return this._inverseModelDirty&&(this._inverseModelDirty=!1,B.inverse(this._model,this._inverseModel)),this._inverseModel}},inverseTransposeModel:{get:function(){let e=this._inverseTransposeModel;return this._inverseTransposeModelDirty&&(this._inverseTransposeModelDirty=!1,B.getMatrix3(this.inverseModel,e),Z.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return LG(this),this._view3D}},viewRotation:{get:function(){return LG(this),this._viewRotation}},viewRotation3D:{get:function(){return LG(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return CQ(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return CQ(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return ySe(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return ASe(this),this._modelView}},modelView3D:{get:function(){return xSe(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return wSe(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return CSe(this),this._inverseModelView}},inverseModelView3D:{get:function(){return TSe(this),this._inverseModelView3D}},viewProjection:{get:function(){return ESe(this),this._viewProjection}},inverseViewProjection:{get:function(){return bSe(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return SSe(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return vSe(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return DSe(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return ISe(this),this._modelViewInfiniteProjection}},normal:{get:function(){return PSe(this),this._normal}},normal3D:{get:function(){return OSe(this),this._normal3D}},inverseNormal:{get:function(){return MSe(this),this._inverseNormal}},inverseNormal3D:{get:function(){return RSe(this),this._inverseNormal3D}},entireFrustum:{get:function(){return this._entireFrustum}},currentFrustum:{get:function(){return this._currentFrustum}},frustumPlanes:{get:function(){return this._frustumPlanes}},farDepthFromNearPlusOne:{get:function(){return this._farDepthFromNearPlusOne}},log2FarDepthFromNearPlusOne:{get:function(){return this._log2FarDepthFromNearPlusOne}},oneOverLog2FarDepthFromNearPlusOne:{get:function(){return this._oneOverLog2FarDepthFromNearPlusOne}},eyeHeight:{get:function(){return this._eyeHeight}},eyeHeight2D:{get:function(){return this._eyeHeight2D}},sunPositionWC:{get:function(){return this._sunPositionWC}},sunPositionColumbusView:{get:function(){return this._sunPositionColumbusView}},sunDirectionWC:{get:function(){return this._sunDirectionWC}},sunDirectionEC:{get:function(){return this._sunDirectionEC}},moonDirectionEC:{get:function(){return this._moonDirectionEC}},lightDirectionWC:{get:function(){return this._lightDirectionWC}},lightDirectionEC:{get:function(){return this._lightDirectionEC}},lightColor:{get:function(){return this._lightColor}},lightColorHdr:{get:function(){return this._lightColorHdr}},encodedCameraPositionMCHigh:{get:function(){return xQ(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return xQ(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},pixelRatio:{get:function(){return this._pixelRatio}},fogDensity:{get:function(){return this._fogDensity}},geometricToleranceOverMeter:{get:function(){return this._geometricToleranceOverMeter}},pass:{get:function(){return this._pass}},backgroundColor:{get:function(){return this._backgroundColor}},brdfLut:{get:function(){return this._brdfLut}},environmentMap:{get:function(){return this._environmentMap}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps}},specularEnvironmentMapsDimensions:{get:function(){return this._specularEnvironmentMapsDimensions}},specularEnvironmentMapsMaximumLOD:{get:function(){return this._specularEnvironmentMapsMaximumLOD}},splitPosition:{get:function(){return this._splitPosition}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance}},invertClassificationColor:{get:function(){return this._invertClassificationColor}},orthographicIn3D:{get:function(){return this._orthographicIn3D}},ellipsoid:{get:function(){return y(this._ellipsoid,oe.WGS84)}}});function lSe(e,t){B.clone(t,e._view),B.getMatrix3(t,e._viewRotation),e._view3DDirty=!0,e._inverseView3DDirty=!0,e._modelViewDirty=!0,e._modelView3DDirty=!0,e._modelViewRelativeToEyeDirty=!0,e._inverseModelViewDirty=!0,e._inverseModelView3DDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0,e._modelViewInfiniteProjectionDirty=!0,e._normalDirty=!0,e._inverseNormalDirty=!0,e._normal3DDirty=!0,e._inverseNormal3DDirty=!0}function uSe(e,t){B.clone(t,e._inverseView),B.getMatrix3(t,e._inverseViewRotation)}function fSe(e,t){B.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function dSe(e,t){B.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}function mSe(e,t){m.clone(t.positionWC,e._cameraPosition),m.clone(t.directionWC,e._cameraDirection),m.clone(t.rightWC,e._cameraRight),m.clone(t.upWC,e._cameraUp);let n=t.positionCartographic;l(n)?e._eyeHeight=n.height:e._eyeHeight=-e._ellipsoid.maximumRadius,e._encodedCameraPositionMCDirty=!0}var KD=new Z,hSe=new he;function pSe(e,t){l(Rt.computeIcrfToFixedMatrix(t.time,KD))||(KD=Rt.computeTemeToPseudoFixedMatrix(t.time,KD));let n=ng.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);Z.multiplyByVector(KD,n,n),m.normalize(n,e._sunDirectionWC),n=Z.multiplyByVector(e.viewRotation3D,n,e._sunDirectionEC),m.normalize(n,n),n=ng.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),Z.multiplyByVector(KD,n,n),Z.multiplyByVector(e.viewRotation3D,n,n),m.normalize(n,n);let i=t.mapProjection,r=i.ellipsoid.cartesianToCartographic(e._sunPositionWC,hSe);i.project(r,e._sunPositionColumbusView)}sT.prototype.updateCamera=function(e){lSe(this,e.viewMatrix),uSe(this,e.inverseViewMatrix),mSe(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==ne.SCENE2D&&e.frustum instanceof tn};sT.prototype.updateFrustum=function(e){fSe(this,e.projectionMatrix),l(e.infiniteProjectionMatrix)&&dSe(this,e.infiniteProjectionMatrix),this._currentFrustum.x=e.near,this._currentFrustum.y=e.far,this._farDepthFromNearPlusOne=e.far-e.near+1,this._log2FarDepthFromNearPlusOne=P.log2(this._farDepthFromNearPlusOne),this._oneOverLog2FarDepthFromNearPlusOne=1/this._log2FarDepthFromNearPlusOne;let t=e.offCenterFrustum;l(t)&&(e=t),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right};sT.prototype.updatePass=function(e){this._pass=e};var _Se=[],gSe=new Qh;sT.prototype.update=function(e){this._mode=e.mode,this._mapProjection=e.mapProjection,this._ellipsoid=e.mapProjection.ellipsoid,this._pixelRatio=e.pixelRatio;let t=e.camera;this.updateCamera(t),e.mode===ne.SCENE2D?(this._frustum2DWidth=t.frustum.right-t.frustum.left,this._eyeHeight2D.x=this._frustum2DWidth*.5,this._eyeHeight2D.y=this._eyeHeight2D.x*this._eyeHeight2D.x):(this._frustum2DWidth=0,this._eyeHeight2D.x=0,this._eyeHeight2D.y=0),pSe(this,e);let n=y(e.light,gSe);n instanceof Qh?(this._lightDirectionWC=m.clone(this._sunDirectionWC,this._lightDirectionWC),this._lightDirectionEC=m.clone(this._sunDirectionEC,this._lightDirectionEC)):(this._lightDirectionWC=m.normalize(m.negate(n.direction,this._lightDirectionWC),this._lightDirectionWC),this._lightDirectionEC=Z.multiplyByVector(this.viewRotation3D,this._lightDirectionWC,this._lightDirectionEC));let i=n.color,o=m.fromElements(i.red,i.green,i.blue,this._lightColorHdr);o=m.multiplyByScalar(o,n.intensity,o);let r=m.maximumComponent(o);r>1?m.divideByScalar(o,r,this._lightColor):m.clone(o,this._lightColor);let s=e.brdfLutGenerator,a=l(s)?s.colorTexture:void 0;this._brdfLut=a,this._environmentMap=y(e.environmentMap,e.context.defaultCubeMap),this._sphericalHarmonicCoefficients=y(e.sphericalHarmonicCoefficients,_Se),this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,l(this._specularEnvironmentMaps)&&H.clone(this._specularEnvironmentMaps.dimensions,this._specularEnvironmentMapsDimensions),this._fogDensity=e.fog.density,this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=Rt.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._splitPosition=e.splitPosition*e.context.drawingBufferWidth;let c=t.frustum.fov,u=this._viewport,f;l(c)?u.height>u.width?f=Math.tan(.5*c)*2/u.height:f=Math.tan(.5*c)*2/u.width:f=1/Math.max(u.width,u.height),this._geometricToleranceOverMeter=f*e.maximumScreenSpaceError,z.clone(e.backgroundColor,this._backgroundColor),this._minimumDisableDepthTestDistance=e.minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance*=this._minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance===Number.POSITIVE_INFINITY&&(this._minimumDisableDepthTestDistance=-1)};function yQ(e){if(e._viewportDirty){let t=e._viewport;B.computeOrthographicOffCenter(t.x,t.x+t.width,t.y,t.y+t.height,0,1,e._viewportOrthographicMatrix),B.computeViewportTransformation(t,0,1,e._viewportTransformation),e._viewportDirty=!1}}function ySe(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode!==ne.SCENE2D&&e._mode!==ne.MORPHING&&!e._orthographicIn3D?B.inverse(e._projection,e._inverseProjection):B.clone(B.ZERO,e._inverseProjection))}function ASe(e){e._modelViewDirty&&(e._modelViewDirty=!1,B.multiplyTransformation(e._view,e._model,e._modelView))}function xSe(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,B.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function CSe(e){e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,B.inverse(e.modelView,e._inverseModelView))}function TSe(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,B.inverse(e.modelView3D,e._inverseModelView3D))}function ESe(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,B.multiply(e._projection,e._view,e._viewProjection))}function bSe(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,B.inverse(e.viewProjection,e._inverseViewProjection))}function SSe(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,B.multiply(e._projection,e.modelView,e._modelViewProjection))}function wSe(e){if(e._modelViewRelativeToEyeDirty){e._modelViewRelativeToEyeDirty=!1;let t=e.modelView,n=e._modelViewRelativeToEye;n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=0,n[13]=0,n[14]=0,n[15]=t[15]}}function vSe(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,B.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function DSe(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,B.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function ISe(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,B.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function PSe(e){if(e._normalDirty){e._normalDirty=!1;let t=e._normal;B.getMatrix3(e.inverseModelView,t),Z.getRotation(t,t),Z.transpose(t,t)}}function OSe(e){if(e._normal3DDirty){e._normal3DDirty=!1;let t=e._normal3D;B.getMatrix3(e.inverseModelView3D,t),Z.getRotation(t,t),Z.transpose(t,t)}}function MSe(e){e._inverseNormalDirty&&(e._inverseNormalDirty=!1,B.getMatrix3(e.inverseModelView,e._inverseNormal),Z.getRotation(e._inverseNormal,e._inverseNormal))}function RSe(e){e._inverseNormal3DDirty&&(e._inverseNormal3DDirty=!1,B.getMatrix3(e.inverseModelView3D,e._inverseNormal3D),Z.getRotation(e._inverseNormal3D,e._inverseNormal3D))}var AQ=new m;function xQ(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,B.multiplyByPoint(e.inverseModel,e._cameraPosition,AQ),Wn.fromCartesian(AQ,e._encodedCameraPositionMC))}var BSe=new m,LSe=new m,NSe=new m,FSe=new m,USe=new he,VSe=new m,kSe=new B;function zSe(e,t,n,i,o,r,s,a){let c=BSe;c.x=e.y,c.y=e.z,c.z=e.x;let u=LSe;u.x=n.y,u.y=n.z,u.z=n.x;let f=NSe;f.x=i.y,f.y=i.z,f.z=i.x;let d=FSe;d.x=t.y,d.y=t.z,d.z=t.x,r===ne.SCENE2D&&(c.z=o*.5);let p=s.unproject(c,USe);p.longitude=P.clamp(p.longitude,-Math.PI,Math.PI),p.latitude=P.clamp(p.latitude,-P.PI_OVER_TWO,P.PI_OVER_TWO);let g=s.ellipsoid,h=g.cartographicToCartesian(p,VSe),A=Rt.eastNorthUpToFixedFrame(h,g,kSe);return B.multiplyByPointAsVector(A,u,u),B.multiplyByPointAsVector(A,f,f),B.multiplyByPointAsVector(A,d,d),l(a)||(a=new B),a[0]=u.x,a[1]=f.x,a[2]=-d.x,a[3]=0,a[4]=u.y,a[5]=f.y,a[6]=-d.y,a[7]=0,a[8]=u.z,a[9]=f.z,a[10]=-d.z,a[11]=0,a[12]=-m.dot(u,h),a[13]=-m.dot(f,h),a[14]=m.dot(d,h),a[15]=1,a}function LG(e){e._view3DDirty&&(e._mode===ne.SCENE3D?B.clone(e._view,e._view3D):zSe(e._cameraPosition,e._cameraDirection,e._cameraRight,e._cameraUp,e._frustum2DWidth,e._mode,e._mapProjection,e._view3D),B.getMatrix3(e._view3D,e._viewRotation3D),e._view3DDirty=!1)}function CQ(e){e._inverseView3DDirty&&(B.inverseTransformation(e.view3D,e._inverseView3D),B.getMatrix3(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}var JD=sT;function HSe(e,t,n,i){let o=l(t.vertexBuffer),r=l(t.value),s=t.value?t.value.length:t.componentsPerAttribute,a={index:y(t.index,n),enabled:y(t.enabled,!0),vertexBuffer:t.vertexBuffer,value:r?t.value.slice(0):void 0,componentsPerAttribute:s,componentDatatype:y(t.componentDatatype,X.FLOAT),normalize:y(t.normalize,!1),offsetInBytes:y(t.offsetInBytes,0),strideInBytes:y(t.strideInBytes,0),instanceDivisor:y(t.instanceDivisor,0)};if(o)a.vertexAttrib=function(c){let u=this.index;c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer._getBuffer()),c.vertexAttribPointer(u,this.componentsPerAttribute,this.componentDatatype,this.normalize,this.strideInBytes,this.offsetInBytes),c.enableVertexAttribArray(u),this.instanceDivisor>0&&(i.glVertexAttribDivisor(u,this.instanceDivisor),i._vertexAttribDivisors[u]=this.instanceDivisor,i._previousDrawInstanced=!0)},a.disableVertexAttribArray=function(c){c.disableVertexAttribArray(this.index),this.instanceDivisor>0&&i.glVertexAttribDivisor(n,0)};else{switch(a.componentsPerAttribute){case 1:a.vertexAttrib=function(c){c.vertexAttrib1fv(this.index,this.value)};break;case 2:a.vertexAttrib=function(c){c.vertexAttrib2fv(this.index,this.value)};break;case 3:a.vertexAttrib=function(c){c.vertexAttrib3fv(this.index,this.value)};break;case 4:a.vertexAttrib=function(c){c.vertexAttrib4fv(this.index,this.value)};break}a.disableVertexAttribArray=function(c){}}e.push(a)}function EQ(e,t,n){for(let i=0;i0&&(c=!0),l(s[r].value)&&(u=!0);let d;t.vertexArrayObject&&(d=t.glCreateVertexArray(),t.glBindVertexArray(d),EQ(n,s,o),t.glBindVertexArray(null)),this._numberOfVertices=a,this._hasInstancedAttributes=c,this._hasConstantAttributes=u,this._context=t,this._gl=n,this._vao=d,this._attributes=s,this._indexBuffer=o}function TQ(e){return e.values.length/e.componentsPerAttribute}function GSe(e){return X.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function WSe(e){let t,n,i,o=[];for(n in e)e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)&&(o.push(n),e[n].componentDatatype===X.DOUBLE&&(e[n].componentDatatype=X.FLOAT,e[n].values=X.createTypedArray(X.FLOAT,e[n].values)));let r,s=o.length;if(s>0)for(r=TQ(e[o[0]]),t=1;t0){let u=X.getSizeInBytes(e[o[0]].componentDatatype),f=a%u;f!==0&&(a+=u-f);let d=r*a,p=new ArrayBuffer(d),g={};for(t=0;t=P.SIXTY_FOUR_KILOBYTES&&t.elementIndexUint?p=mt.createIndexBuffer({context:t,typedArray:new Uint32Array(g),usage:i,indexDatatype:Ue.UNSIGNED_INT}):p=mt.createIndexBuffer({context:t,typedArray:new Uint16Array(g),usage:i,indexDatatype:Ue.UNSIGNED_SHORT})),new $h({context:t,attributes:f,indexBuffer:p})};Object.defineProperties($h.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}});$h.prototype.getAttribute=function(e){return this._attributes[e]};function jSe(e){let t=e._context,n=e._hasInstancedAttributes;if(!n&&!t._previousDrawInstanced)return;t._previousDrawInstanced=n;let i=t._vertexAttribDivisors,o=e._attributes,r=kt.maximumVertexAttributes,s;if(n){let a=o.length;for(s=0;s0&&(t.glVertexAttribDivisor(s,0),i[s]=0)}function YSe(e,t){let n=e._attributes,i=n.length;for(let o=0;o"u")throw new de("The browser does not support WebGL. Visit http://get.webgl.org.");!n&&!(typeof WebGL2RenderingContext<"u")&&(n=!0);let o=n?"webgl":"webgl2",r=e.getContext(o,t);if(!l(r))throw new de("The browser supports WebGL, but initialization failed.");return r}function XSe(e,t){let n="WebGL Error: ";switch(t){case e.INVALID_ENUM:n+="INVALID_ENUM";break;case e.INVALID_VALUE:n+="INVALID_VALUE";break;case e.INVALID_OPERATION:n+="INVALID_OPERATION";break;case e.OUT_OF_MEMORY:n+="OUT_OF_MEMORY";break;case e.CONTEXT_LOST_WEBGL:n+="CONTEXT_LOST_WEBGL lost";break;default:n+=`Unknown (${t})`}return n}function KSe(e,t,n,i){let o=`${XSe(e,i)}: ${t.name}(`;for(let r=0;r=8}},antialias:{get:function(){return this._antialias}},msaa:{get:function(){return this._webgl2}},standardDerivatives:{get:function(){return this._standardDerivatives||this._webgl2}},floatBlend:{get:function(){return this._floatBlend}},blendMinmax:{get:function(){return this._blendMinmax||this._webgl2}},elementIndexUint:{get:function(){return this._elementIndexUint||this._webgl2}},depthTexture:{get:function(){return this._depthTexture||this._webgl2}},floatingPointTexture:{get:function(){return this._webgl2||this._textureFloat}},halfFloatingPointTexture:{get:function(){return this._webgl2||this._textureHalfFloat}},textureFloatLinear:{get:function(){return this._textureFloatLinear}},textureHalfFloatLinear:{get:function(){return this._webgl2&&this._textureFloatLinear||!this._webgl2&&this._textureHalfFloatLinear}},textureFilterAnisotropic:{get:function(){return!!this._textureFilterAnisotropic}},s3tc:{get:function(){return this._s3tc}},pvrtc:{get:function(){return this._pvrtc}},astc:{get:function(){return this._astc}},etc:{get:function(){return this._etc}},etc1:{get:function(){return this._etc1}},bc7:{get:function(){return this._bc7}},supportsBasis:{get:function(){return this._s3tc||this._pvrtc||this._astc||this._etc||this._etc1||this._bc7}},vertexArrayObject:{get:function(){return this._vertexArrayObject||this._webgl2}},fragmentDepth:{get:function(){return this._fragDepth||this._webgl2}},instancedArrays:{get:function(){return this._instancedArrays||this._webgl2}},colorBufferFloat:{get:function(){return this._colorBufferFloat}},colorBufferHalfFloat:{get:function(){return this._webgl2&&this._colorBufferFloat||!this._webgl2&&this._colorBufferHalfFloat}},drawBuffers:{get:function(){return this._drawBuffers||this._webgl2}},debugShaders:{get:function(){return this._debugShaders}},throwOnWebGLError:{get:function(){return this._throwOnWebGLError},set:function(e){this._throwOnWebGLError=e,this._gl=QSe(this._originalGLContext,e?JSe:void 0)}},defaultTexture:{get:function(){return this._defaultTexture===void 0&&(this._defaultTexture=new Bt({context:this,source:{width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])},flipY:!1})),this._defaultTexture}},defaultEmissiveTexture:{get:function(){return this._defaultEmissiveTexture===void 0&&(this._defaultEmissiveTexture=new Bt({context:this,pixelFormat:ct.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([0,0,0])},flipY:!1})),this._defaultEmissiveTexture}},defaultNormalTexture:{get:function(){return this._defaultNormalTexture===void 0&&(this._defaultNormalTexture=new Bt({context:this,pixelFormat:ct.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([128,128,255])},flipY:!1})),this._defaultNormalTexture}},defaultCubeMap:{get:function(){if(this._defaultCubeMap===void 0){let e={width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])};this._defaultCubeMap=new Ua({context:this,source:{positiveX:e,negativeX:e,positiveY:e,negativeY:e,positiveZ:e,negativeZ:e},flipY:!1})}return this._defaultCubeMap}},drawingBufferHeight:{get:function(){return this._gl.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._gl.drawingBufferWidth}},defaultFramebuffer:{get:function(){return $Se}}});function bQ(e,t,n,i){let o=e._currentRenderState,r=e._currentPassState;e._currentRenderState=t,e._currentPassState=n,ze.partialApply(e._gl,o,t,r,n,i)}var NG;typeof WebGLRenderingContext<"u"&&(NG=[te.BACK]);function FG(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;let n=NG;if(l(t))t._bind(),n=t._getActiveColorAttachments();else{let i=e._gl;i.bindFramebuffer(i.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(n)}}var ewe=new ii;Hl.prototype.clear=function(e,t){e=y(e,ewe),t=y(t,this._defaultPassState);let n=this._gl,i=0,o=e.color,r=e.depth,s=e.stencil;l(o)&&(z.equals(this._clearColor,o)||(z.clone(o,this._clearColor),n.clearColor(o.red,o.green,o.blue,o.alpha)),i|=n.COLOR_BUFFER_BIT),l(r)&&(r!==this._clearDepth&&(this._clearDepth=r,n.clearDepth(r)),i|=n.DEPTH_BUFFER_BIT),l(s)&&(s!==this._clearStencil&&(this._clearStencil=s,n.clearStencil(s)),i|=n.STENCIL_BUFFER_BIT);let a=y(e.renderState,this._defaultRenderState);bQ(this,a,t,!0);let c=y(e.framebuffer,t.framebuffer);FG(this,c),n.clear(i)};function twe(e,t,n,i,o){FG(e,t),bQ(e,o,n,!1),i._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,i.maximumTextureUnitIndex)}function nwe(e,t,n,i){let o=t._primitiveType,r=t._vertexArray,s=t._offset,a=t._count,c=t.instanceCount;e._us.model=y(t._modelMatrix,B.IDENTITY),n._setUniforms(i,e._us,e.validateShaderProgram),r._bind();let u=r.indexBuffer;l(u)?(s=s*u.bytesPerIndex,a=y(a,u.numberOfIndices),c===0?e._gl.drawElements(o,a,u.indexDatatype,s):e.glDrawElementsInstanced(o,a,u.indexDatatype,s,c)):(a=y(a,r.numberOfVertices),c===0?e._gl.drawArrays(o,s,a):e.glDrawArraysInstanced(o,s,a,c)),r._unBind()}Hl.prototype.draw=function(e,t,n,i){t=y(t,this._defaultPassState);let o=y(e._framebuffer,t.framebuffer),r=y(e._renderState,this._defaultRenderState);n=y(n,e._shaderProgram),i=y(i,e._uniformMap),twe(this,o,t,n,r),nwe(this,e,n,i)};Hl.prototype.endFrame=function(){let e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);let t=NG;this.drawBuffers&&this.glDrawBuffers(t);let n=this._maxFrameTextureUnitIndex;this._maxFrameTextureUnitIndex=0;for(let i=0;i0&&(a=s.getColorTexture(0).pixelDatatype);let c=ct.createTypedArray(ct.RGBA,a,o,r);return FG(this,s),t.readPixels(n,i,o,r,ct.RGBA,Je.toWebGLConstant(a,this),c),c};var SQ={position:0,textureCoordinates:1};Hl.prototype.getViewportQuadVertexArray=function(){let e=this.cache.viewportQuad_vertexArray;if(!l(e)){let t=new ft({attributes:{position:new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1]}),textureCoordinates:new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[0,0,1,0,1,1,0,1]})},indices:new Uint16Array([0,1,2,0,2,3]),primitiveType:Le.TRIANGLES});e=oi.fromGeometry({context:this,geometry:t,attributeLocations:SQ,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e};Hl.prototype.createViewportQuadCommand=function(e,t){return t=y(t,y.EMPTY_OBJECT),new it({vertexArray:this.getViewportQuadVertexArray(),primitiveType:Le.TRIANGLES,renderState:t.renderState,shaderProgram:Kt.fromCache({context:this,vertexShaderSource:x0,fragmentShaderSource:e,attributeLocations:SQ}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})};Hl.prototype.getObjectByPickColor=function(e){return this._pickObjects[e.toRgba()]};function UG(e,t,n){this._pickObjects=e,this.key=t,this.color=n}Object.defineProperties(UG.prototype,{object:{get:function(){return this._pickObjects[this.key]},set:function(e){this._pickObjects[this.key]=e}}});UG.prototype.destroy=function(){delete this._pickObjects[this.key]};Hl.prototype.createPickId=function(e){++this._nextPickColor[0];let t=this._nextPickColor[0];if(t===0)throw new de("Out of unique Pick IDs.");return this._pickObjects[t]=e,new UG(this._pickObjects,t,z.fromRgba(t))};Hl.prototype.isDestroyed=function(){return!1};Hl.prototype.destroy=function(){let e=this.cache;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];l(n.destroy)&&n.destroy()}return this._shaderCache=this._shaderCache.destroy(),this._textureCache=this._textureCache.destroy(),this._defaultTexture=this._defaultTexture&&this._defaultTexture.destroy(),this._defaultEmissiveTexture=this._defaultEmissiveTexture&&this._defaultEmissiveTexture.destroy(),this._defaultNormalTexture=this._defaultNormalTexture&&this._defaultNormalTexture.destroy(),this._defaultCubeMap=this._defaultCubeMap&&this._defaultCubeMap.destroy(),ue(this)};Hl._deprecationWarning=$;var ZD=Hl;function aT(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.width,i=e.height;this._width=n,this._height=i;let o=e.colorRenderbuffers,r=e.colorTextures;if(l(o)!==l(r))throw new fe("Both color renderbuffer and texture attachments must be provided.");let s=e.depthStencilRenderbuffer,a=e.depthStencilTexture;if(l(s)!==l(a))throw new fe("Both depth-stencil renderbuffer and texture attachments must be provided.");this._renderFramebuffer=new Hs({context:t,colorRenderbuffers:o,depthStencilRenderbuffer:s,destroyAttachments:e.destroyAttachments}),this._colorFramebuffer=new Hs({context:t,colorTextures:r,depthStencilTexture:a,destroyAttachments:e.destroyAttachments})}aT.prototype.getRenderFramebuffer=function(){return this._renderFramebuffer};aT.prototype.getColorFramebuffer=function(){return this._colorFramebuffer};aT.prototype.blitFramebuffers=function(e,t){this._renderFramebuffer.bindRead(),this._colorFramebuffer.bindDraw();let n=e._gl,i=0;this._colorFramebuffer._colorTextures.length>0&&(i|=n.COLOR_BUFFER_BIT),l(this._colorFramebuffer.depthStencilTexture)&&(i|=n.DEPTH_BUFFER_BIT|(t?n.STENCIL_BUFFER_BIT:0)),n.blitFramebuffer(0,0,this._width,this._height,0,0,this._width,this._height,i,n.NEAREST),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null)};aT.prototype.isDestroyed=function(){return!1};aT.prototype.destroy=function(){return this._renderFramebuffer.destroy(),this._colorFramebuffer.destroy(),ue(this)};var QD=aT;var il={RGBA4:te.RGBA4,RGBA8:te.RGBA8,RGBA16F:te.RGBA16F,RGBA32F:te.RGBA32F,RGB5_A1:te.RGB5_A1,RGB565:te.RGB565,DEPTH_COMPONENT16:te.DEPTH_COMPONENT16,STENCIL_INDEX8:te.STENCIL_INDEX8,DEPTH_STENCIL:te.DEPTH_STENCIL,DEPTH24_STENCIL8:te.DEPTH24_STENCIL8,validate:function(e){return e===il.RGBA4||e===il.RGBA8||e===il.RGBA16F||e===il.RGBA32F||e===il.RGB5_A1||e===il.RGB565||e===il.DEPTH_COMPONENT16||e===il.STENCIL_INDEX8||e===il.DEPTH_STENCIL||e===il.DEPTH24_STENCIL8},getColorFormat:function(e){return e===te.FLOAT?il.RGBA32F:e===te.HALF_FLOAT_OES?il.RGBA16F:il.RGBA8}},gc=Object.freeze(il);function $D(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=kt.maximumRenderbufferSize,o=y(e.format,gc.RGBA4),r=l(e.width)?e.width:n.drawingBufferWidth,s=l(e.height)?e.height:n.drawingBufferHeight,a=y(e.numSamples,1);this._gl=n,this._format=o,this._width=r,this._height=s,this._renderbuffer=this._gl.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,this._renderbuffer),a>1?n.renderbufferStorageMultisample(n.RENDERBUFFER,a,o,r,s):n.renderbufferStorage(n.RENDERBUFFER,o,r,s),n.bindRenderbuffer(n.RENDERBUFFER,null)}Object.defineProperties($D.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});$D.prototype._getRenderbuffer=function(){return this._renderbuffer};$D.prototype.isDestroyed=function(){return!1};$D.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),ue(this)};var Gl=$D;function ns(e){e=y(e,y.EMPTY_OBJECT),this._numSamples=y(e.numSamples,1),this._colorAttachmentsLength=y(e.colorAttachmentsLength,1),this._color=y(e.color,!0),this._depth=y(e.depth,!1),this._depthStencil=y(e.depthStencil,!1),this._supportsDepthTexture=y(e.supportsDepthTexture,!1),this._createColorAttachments=y(e.createColorAttachments,!0),this._createDepthAttachments=y(e.createDepthAttachments,!0),this._pixelDatatype=e.pixelDatatype,this._pixelFormat=e.pixelFormat,this._width=void 0,this._height=void 0,this._framebuffer=void 0,this._multisampleFramebuffer=void 0,this._colorTextures=void 0,this._color&&(this._colorTextures=new Array(this._colorAttachmentsLength),this._colorRenderbuffers=new Array(this._colorAttachmentsLength)),this._colorRenderbuffer=void 0,this._depthStencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthRenderbuffer=void 0,this._depthTexture=void 0,this._attachmentsDirty=!1}Object.defineProperties(ns.prototype,{framebuffer:{get:function(){return this._numSamples>1?this._multisampleFramebuffer.getRenderFramebuffer():this._framebuffer}},numSamples:{get:function(){return this._numSamples}},status:{get:function(){return this.framebuffer.status}}});ns.prototype.isDirty=function(e,t,n,i,o){n=y(n,1);let r=this._width!==e||this._height!==t,s=this._numSamples!==n,a=l(i)&&this._pixelDatatype!==i||l(o)&&this._pixelFormat!==o,c=n===1?l(this._framebuffer):l(this._multisampleFramebuffer);return this._attachmentsDirty||r||s||a||!c||this._color&&!l(this._colorTextures[0])};ns.prototype.update=function(e,t,n,i,o,r){if(i=e.msaa?y(i,1):1,o=y(o,this._color?y(this._pixelDatatype,Je.UNSIGNED_BYTE):void 0),r=y(r,this._color?y(this._pixelFormat,ct.RGBA):void 0),this.isDirty(t,n,i,o,r)){if(this.destroy(),this._width=t,this._height=n,this._numSamples=i,this._pixelDatatype=o,this._pixelFormat=r,this._attachmentsDirty=!1,this._color&&this._createColorAttachments){for(let s=0;s1){let a=gc.getColorFormat(o);this._colorRenderbuffers[s]=new Gl({context:e,width:t,height:n,format:a,numSamples:this._numSamples})}}this._depthStencil&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?(this._depthStencilTexture=new Bt({context:e,width:t,height:n,pixelFormat:ct.DEPTH_STENCIL,pixelDatatype:Je.UNSIGNED_INT_24_8,sampler:dn.NEAREST}),this._numSamples>1&&(this._depthStencilRenderbuffer=new Gl({context:e,width:t,height:n,format:gc.DEPTH24_STENCIL8,numSamples:this._numSamples}))):this._depthStencilRenderbuffer=new Gl({context:e,width:t,height:n,format:gc.DEPTH_STENCIL})),this._depth&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?this._depthTexture=new Bt({context:e,width:t,height:n,pixelFormat:ct.DEPTH_COMPONENT,pixelDatatype:Je.UNSIGNED_INT,sampler:dn.NEAREST}):this._depthRenderbuffer=new Gl({context:e,width:t,height:n,format:gc.DEPTH_COMPONENT16})),this._numSamples>1?this._multisampleFramebuffer=new QD({context:e,width:this._width,height:this._height,colorTextures:this._colorTextures,colorRenderbuffers:this._colorRenderbuffers,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1}):this._framebuffer=new Hs({context:e,colorTextures:this._colorTextures,depthTexture:this._depthTexture,depthRenderbuffer:this._depthRenderbuffer,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1})}};ns.prototype.getColorTexture=function(e){return e=y(e,0),this._colorTextures[e]};ns.prototype.setColorTexture=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorTextures[t],this._colorTextures[t]=e};ns.prototype.getColorRenderbuffer=function(e){return e=y(e,0),this._colorRenderbuffers[e]};ns.prototype.setColorRenderbuffer=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorRenderbuffers[t],this._colorRenderbuffers[t]=e};ns.prototype.getDepthRenderbuffer=function(){return this._depthRenderbuffer};ns.prototype.setDepthRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthRenderbuffer,this._depthRenderbuffer=e};ns.prototype.getDepthTexture=function(){return this._depthTexture};ns.prototype.setDepthTexture=function(e){this._attachmentsDirty=e!==this._depthTexture,this._depthTexture=e};ns.prototype.getDepthStencilRenderbuffer=function(){return this._depthStencilRenderbuffer};ns.prototype.setDepthStencilRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthStencilRenderbuffer,this._depthStencilRenderbuffer=e};ns.prototype.getDepthStencilTexture=function(){return this._depthStencilTexture};ns.prototype.setDepthStencilTexture=function(e){this._attachmentsDirty=e!==this._depthStencilTexture,this._depthStencilTexture=e};ns.prototype.prepareTextures=function(e,t){this._numSamples>1&&this._multisampleFramebuffer.blitFramebuffers(e,t)};ns.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this.framebuffer,t.execute(e,n),t.framebuffer=i};ns.prototype.destroyFramebuffer=function(){this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._multisampleFramebuffer=this._multisampleFramebuffer&&this._multisampleFramebuffer.destroy()};ns.prototype.destroy=function(){if(this._color){let e,t=this._colorTextures.length;for(e=0;e0?X.getSizeInBytes(e[0].componentDatatype):0,o=i>0?t%i:0,r=o===0?0:i-o;return t+=r,t};As._createArrayViews=function(e,t){let n=[],i=0,o=e.length;for(let r=0;r0){let n=new ArrayBuffer(t*e.vertexSizeInBytes);if(l(e.arrayBuffer)){let r=new Uint8Array(n),s=new Uint8Array(e.arrayBuffer),a=s.length;for(let c=0;c0){t.needsCommit=!1;let n=t.vertexBuffer,i=e._size*t.vertexSizeInBytes,o=l(n);if(!o||n.sizeInBytes0){let i=e.vertexSizeInBytes*t,o=e.vertexSizeInBytes*n;e.vertexBuffer.copyFromArrayView(new Uint8Array(e.arrayBuffer,i,o),i)}}As.prototype.endSubCommits=function(){let e=this._allBuffers;for(let t=0,n=e.length;t0&&(this._hash={},e.length=0)};var Et=N0;function Wl(e,t){e=y(e,0),this._near=e,t=y(t,Number.MAX_VALUE),this._far=t}Object.defineProperties(Wl.prototype,{near:{get:function(){return this._near},set:function(e){this._near=e}},far:{get:function(){return this._far},set:function(e){this._far=e}}});Wl.packedLength=2;Wl.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n]=e.far,t};Wl.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Wl),n.near=e[t++],n.far=e[t],n};Wl.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.far===t.far};Wl.clone=function(e,t){if(l(e))return l(t)||(t=new Wl),t.near=e.near,t.far=e.far,t};Wl.prototype.clone=function(e){return Wl.clone(this,e)};Wl.prototype.equals=function(e){return Wl.equals(this,e)};var Dt=Wl;function ju(e,t,n,i){this.near=y(e,0),this.nearValue=y(t,0),this.far=y(n,1),this.farValue=y(i,0)}ju.clone=function(e,t){if(l(e))return l(t)?(t.near=e.near,t.nearValue=e.nearValue,t.far=e.far,t.farValue=e.farValue,t):new ju(e.near,e.nearValue,e.far,e.farValue)};ju.packedLength=4;ju.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n++]=e.nearValue,t[n++]=e.far,t[n]=e.farValue,t};ju.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ju),n.near=e[t++],n.nearValue=e[t++],n.far=e[t++],n.farValue=e[t],n};ju.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.nearValue===t.nearValue&&e.far===t.far&&e.farValue===t.farValue};ju.prototype.clone=function(e){return ju.clone(this,e)};ju.prototype.equals=function(e){return ju.equals(this,e)};var Lt=ju;var mwe={NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2},qe=Object.freeze(mwe);var hwe={CENTER:0,LEFT:1,RIGHT:-1},pi=Object.freeze(hwe);var pwe={CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1},On=Object.freeze(pwe);var _we={DONE:0,PENDING:1,FAILED:2},ut=Object.freeze(_we);function nd(){fe.throwInstantiationError()}Object.defineProperties(nd.prototype,{isConstant:{get:fe.throwInstantiationError},definitionChanged:{get:fe.throwInstantiationError}});nd.prototype.getValue=fe.throwInstantiationError;nd.prototype.equals=fe.throwInstantiationError;nd.equals=function(e,t){return e===t||l(e)&&e.equals(t)};nd.arrayEquals=function(e,t){if(e===t)return!0;if(!l(e)||!l(t)||e.length!==t.length)return!1;let n=e.length;for(let i=0;i-1;o--)r=t[o],l(r._billboard)&&l(r._position)&&s.set(r.id,new wQ(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._billboard)&&l(r._position)?s.contains(r.id)||s.set(r.id,new wQ(r)):(HG(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],HG(s.get(r.id),r,a),s.remove(r.id)};function HG(e,t,n){l(e)&&(e.billboard=void 0,n.removeBillboard(t))}var oI=og;function Nwe(e,t){this.start=y(e,0),this.stop=y(t,0)}var Ac=Nwe;function _n(e,t){this.center=m.clone(y(e,m.ZERO)),this.radius=y(t,0)}var jG=new m,YG=new m,qG=new m,XG=new m,KG=new m,JG=new m,ZG=new m,Ws=new m,QG=new m,$G=new m,e8=new m,t8=new m,Fwe=4/3*P.PI;_n.fromPoints=function(e,t){if(l(t)||(t=new _n),!l(e)||e.length===0)return t.center=m.clone(m.ZERO,t.center),t.radius=0,t;let n=m.clone(e[0],ZG),i=m.clone(n,jG),o=m.clone(n,YG),r=m.clone(n,qG),s=m.clone(n,XG),a=m.clone(n,KG),c=m.clone(n,JG),u=e.length,f;for(f=1;fs.x&&m.clone(n,s),La.y&&m.clone(n,a),Nc.z&&m.clone(n,c)}let d=m.magnitudeSquared(m.subtract(s,i,Ws)),p=m.magnitudeSquared(m.subtract(a,o,Ws)),g=m.magnitudeSquared(m.subtract(c,r,Ws)),h=i,A=s,x=d;p>x&&(x=p,h=o,A=a),g>x&&(x=g,h=r,A=c);let C=QG;C.x=(h.x+A.x)*.5,C.y=(h.y+A.y)*.5,C.z=(h.z+A.z)*.5;let T=m.magnitudeSquared(m.subtract(A,C,Ws)),E=Math.sqrt(T),S=$G;S.x=i.x,S.y=o.y,S.z=r.z;let v=e8;v.x=s.x,v.y=a.y,v.z=c.z;let D=m.midpoint(S,v,t8),O=0;for(f=0;fO&&(O=M);let L=m.magnitudeSquared(m.subtract(n,C,Ws));if(L>T){let N=Math.sqrt(L);E=(E+N)*.5,T=E*E;let _=N-E;C.x=(E*C.x+_*n.x)/N,C.y=(E*C.y+_*n.y)/N,C.z=(E*C.z+_*n.z)/N}}return Ec.x&&m.clone(o,c),_u.y&&m.clone(o,u),bf.z&&m.clone(o,f)}let g=m.magnitudeSquared(m.subtract(c,r,Ws)),h=m.magnitudeSquared(m.subtract(u,s,Ws)),A=m.magnitudeSquared(m.subtract(f,a,Ws)),x=r,C=c,T=g;h>T&&(T=h,x=s,C=u),A>T&&(T=A,x=a,C=f);let E=QG;E.x=(x.x+C.x)*.5,E.y=(x.y+C.y)*.5,E.z=(x.z+C.z)*.5;let S=m.magnitudeSquared(m.subtract(C,E,Ws)),v=Math.sqrt(S),D=$G;D.x=r.x,D.y=s.y,D.z=a.z;let O=e8;O.x=c.x,O.y=u.y,O.z=f.z;let M=m.midpoint(D,O,t8),L=0;for(p=0;pL&&(L=N);let _=m.magnitudeSquared(m.subtract(o,E,Ws));if(_>S){let b=Math.sqrt(_);v=(v+b)*.5,S=v*v;let w=b-v;E.x=(v*E.x+w*o.x)/b,E.y=(v*E.y+w*o.y)/b,E.z=(v*E.z+w*o.z)/b}}return va.x&&m.clone(i,a),Nc.y&&m.clone(i,c),_u.z&&m.clone(i,u)}let p=m.magnitudeSquared(m.subtract(a,o,Ws)),g=m.magnitudeSquared(m.subtract(c,r,Ws)),h=m.magnitudeSquared(m.subtract(u,s,Ws)),A=o,x=a,C=p;g>C&&(C=g,A=r,x=c),h>C&&(C=h,A=s,x=u);let T=QG;T.x=(A.x+x.x)*.5,T.y=(A.y+x.y)*.5,T.z=(A.z+x.z)*.5;let E=m.magnitudeSquared(m.subtract(x,T,Ws)),S=Math.sqrt(E),v=$G;v.x=o.x,v.y=r.y,v.z=s.z;let D=e8;D.x=a.x,D.y=c.y,D.z=u.z;let O=m.midpoint(v,D,t8),M=0;for(d=0;dM&&(M=L);let N=m.magnitudeSquared(m.subtract(i,T,Ws));if(N>E){let _=Math.sqrt(N);S=(S+_)*.5,E=S*S;let b=_-S;T.x=(S*T.x+b*i.x)/_,T.y=(S*T.y+b*i.y)/_,T.z=(S*T.z+b*i.z)/_}}return S=c+s)return e.clone(n),n;if(s>=c+o)return t.clone(n),n;let u=(o+c+s)*.5,f=m.multiplyByScalar(a,(-o+u)/c,Kwe);return m.add(f,i,f),m.clone(f,n.center),n.radius=u,n};var Jwe=new m;_n.expand=function(e,t,n){n=_n.clone(e,n);let i=m.magnitude(m.subtract(t,n.center,Jwe));return i>n.radius&&(n.radius=i),n};_n.intersectPlane=function(e,t){let n=e.center,i=e.radius,o=t.normal,r=m.dot(o,n)+t.distance;return r<-i?$t.OUTSIDE:r maxHeight) { + material.diffuse = vec3(0.0); + material.alpha = 0.0; + return material; + } + + // Binary search to find heights above and below. + int idxBelow = 0; + int idxAbove = heightsDimensions.x; + float heightBelow = minHeight; + float heightAbove = maxHeight; + + // while loop not allowed, so use for loop with max iterations. + // maxIterations of 16 supports a texture size up to 65536 (2^16). + const int maxIterations = 16; + for (int i = 0; i < maxIterations; i++) { + if (idxBelow >= idxAbove - 1) { + break; + } + + int idxMid = (idxBelow + idxAbove) / 2; + float heightTex = getHeight(idxMid, invTexSize); + + if (height > heightTex) { + idxBelow = idxMid; + heightBelow = heightTex; + } else { + idxAbove = idxMid; + heightAbove = heightTex; + } + } + + float lerper = heightBelow == heightAbove ? 1.0 : (height - heightBelow) / (heightAbove - heightBelow); + vec2 colorUv = vec2(invTexSize * (float(idxBelow) + 0.5 + lerper), 0.5); + vec4 color = texture(colors, colorUv); + + // undo preumultiplied alpha + if (color.a > 0.0) + { + color.rgb /= color.a; + } + + color.rgb = czm_gammaCorrect(color.rgb); + + material.diffuse = color.rgb; + material.alpha = color.a; + return material; +} +`;var yI=`#ifdef GL_OES_standard_derivatives + #extension GL_OES_standard_derivatives : enable +#endif + +uniform vec4 color; +uniform float spacing; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float distanceToContour = mod(materialInput.height, spacing); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float dxc = abs(dFdx(materialInput.height)); + float dyc = abs(dFdy(materialInput.height)); + float dF = max(dxc, dyc) * czm_pixelRatio * width; + float alpha = (distanceToContour < dF) ? 1.0 : 0.0; +#else + // If no derivatives available (IE 10?), use pixel ratio + float alpha = (distanceToContour < (czm_pixelRatio * width)) ? 1.0 : 0.0; +#endif + + vec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha * color.a)); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var AI=`uniform sampler2D image; +uniform float minimumHeight; +uniform float maximumHeight; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + float scaledHeight = clamp((materialInput.height - minimumHeight) / (maximumHeight - minimumHeight), 0.0, 1.0); + vec4 rampColor = texture(image, vec2(scaledHeight, 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var xI=`uniform vec4 fadeInColor; +uniform vec4 fadeOutColor; +uniform float maximumDistance; +uniform bool repeat; +uniform vec2 fadeDirection; +uniform vec2 time; + +float getTime(float t, float coord) +{ + float scalar = 1.0 / maximumDistance; + float q = distance(t, coord) * scalar; + if (repeat) + { + float r = distance(t, coord + 1.0) * scalar; + float s = distance(t, coord - 1.0) * scalar; + q = min(min(r, s), q); + } + return clamp(q, 0.0, 1.0); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float s = getTime(time.x, st.s) * fadeDirection.s; + float t = getTime(time.y, st.t) * fadeDirection.t; + + float u = length(vec2(s, t)); + vec4 color = mix(fadeInColor, fadeOutColor, u); + + color = czm_gammaCorrect(color); + material.emission = color.rgb; + material.alpha = color.a; + + return material; +} +`;var CI=`#ifdef GL_OES_standard_derivatives + #extension GL_OES_standard_derivatives : enable +#endif + +uniform vec4 color; +uniform float cellAlpha; +uniform vec2 lineCount; +uniform vec2 lineThickness; +uniform vec2 lineOffset; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + float scaledWidth = fract(lineCount.s * st.s - lineOffset.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(lineCount.t * st.t - lineOffset.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + + float value; + + // Fuzz Factor - Controls blurriness of lines +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + const float fuzz = 1.2; + vec2 thickness = (lineThickness * czm_pixelRatio) - 1.0; + + // From "3D Engine Design for Virtual Globes" by Cozzi and Ring, Listing 4.13. + vec2 dx = abs(dFdx(st)); + vec2 dy = abs(dFdy(st)); + vec2 dF = vec2(max(dx.s, dy.s), max(dx.t, dy.t)) * lineCount; + value = min( + smoothstep(dF.s * thickness.s, dF.s * (fuzz + thickness.s), scaledWidth), + smoothstep(dF.t * thickness.t, dF.t * (fuzz + thickness.t), scaledHeight)); +#else + // If no derivatives available (IE 10?), revert to view-dependent fuzz + const float fuzz = 0.05; + + vec2 range = 0.5 - (lineThickness * 0.05); + value = min( + 1.0 - smoothstep(range.s, range.s + fuzz, scaledWidth), + 1.0 - smoothstep(range.t, range.t + fuzz, scaledHeight)); +#endif + + // Edges taken from RimLightingMaterial.glsl + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float dRim = 1.0 - abs(dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC))); + float sRim = smoothstep(0.8, 1.0, dRim); + value *= (1.0 - sRim); + + vec4 halfColor; + halfColor.rgb = color.rgb * 0.5; + halfColor.a = color.a * (1.0 - ((1.0 - cellAlpha) * value)); + halfColor = czm_gammaCorrect(halfColor); + material.diffuse = halfColor.rgb; + material.emission = halfColor.rgb; + material.alpha = halfColor.a; + + return material; +} +`;var TI=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec4 textureValue = texture(image, fract(repeat * materialInput.st)); + vec3 normalTangentSpace = textureValue.channels; + normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0; + normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0); + normalTangentSpace = normalize(normalTangentSpace); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + + return material; +} +`;var EI=`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif + +uniform vec4 color; + +float getPointOnLine(vec2 p0, vec2 p1, float x) +{ + float slope = (p0.y - p1.y) / (p0.x - p1.x); + return slope * (x - p0.x) + p0.y; +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float base = 1.0 - abs(fwidth(st.s)) * 10.0 * czm_pixelRatio; +#else + // If no derivatives available (IE 10?), 2.5% of the line will be the arrow head + float base = 0.975; +#endif + + vec2 center = vec2(1.0, 0.5); + float ptOnUpperLine = getPointOnLine(vec2(base, 1.0), center, st.s); + float ptOnLowerLine = getPointOnLine(vec2(base, 0.0), center, st.s); + + float halfWidth = 0.15; + float s = step(0.5 - halfWidth, st.t); + s *= 1.0 - step(0.5 + halfWidth, st.t); + s *= 1.0 - step(base, st.s); + + float t = step(base, materialInput.st.s); + t *= 1.0 - step(ptOnUpperLine, st.t); + t *= step(ptOnLowerLine, st.t); + + // Find the distance from the closest separator (region between two colors) + float dist; + if (st.s < base) + { + float d1 = abs(st.t - (0.5 - halfWidth)); + float d2 = abs(st.t - (0.5 + halfWidth)); + dist = min(d1, d2); + } + else + { + float d1 = czm_infinity; + if (st.t < 0.5 - halfWidth && st.t > 0.5 + halfWidth) + { + d1 = abs(st.s - base); + } + float d2 = abs(st.t - ptOnUpperLine); + float d3 = abs(st.t - ptOnLowerLine); + dist = min(min(d1, d2), d3); + } + + vec4 outsideColor = vec4(0.0); + vec4 currentColor = mix(outsideColor, color, clamp(s + t, 0.0, 1.0)); + vec4 outColor = czm_antialias(outsideColor, color, currentColor, dist); + + outColor = czm_gammaCorrect(outColor); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + return material; +} +`;var bI=`uniform vec4 color; +uniform vec4 gapColor; +uniform float dashLength; +uniform float dashPattern; +in float v_polylineAngle; + +const float maskLength = 16.0; + +mat2 rotate(float rad) { + float c = cos(rad); + float s = sin(rad); + return mat2( + c, s, + -s, c + ); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy; + + // Get the relative position within the dash from 0 to 1 + float dashPosition = fract(pos.x / (dashLength * czm_pixelRatio)); + // Figure out the mask index. + float maskIndex = floor(dashPosition * maskLength); + // Test the bit mask. + float maskTest = floor(dashPattern / pow(2.0, maskIndex)); + vec4 fragColor = (mod(maskTest, 2.0) < 1.0) ? gapColor : color; + if (fragColor.a < 0.005) { // matches 0/255 and 1/255 + discard; + } + + fragColor = czm_gammaCorrect(fragColor); + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + return material; +} +`;var SI=`uniform vec4 color; +uniform float glowPower; +uniform float taperPower; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5); + + if (taperPower <= 0.99999) { + glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5)); + } + + vec4 fragColor; + fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb); + fragColor.a = clamp(0.0, 1.0, glow) * color.a; + fragColor = czm_gammaCorrect(fragColor); + + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + + return material; +} +`;var wI=`uniform vec4 color; +uniform vec4 outlineColor; +uniform float outlineWidth; + +in float v_width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float halfInteriorWidth = 0.5 * (v_width - outlineWidth) / v_width; + float b = step(0.5 - halfInteriorWidth, st.t); + b *= 1.0 - step(0.5 + halfInteriorWidth, st.t); + + // Find the distance from the closest separator (region between two colors) + float d1 = abs(st.t - (0.5 - halfInteriorWidth)); + float d2 = abs(st.t - (0.5 + halfInteriorWidth)); + float dist = min(d1, d2); + + vec4 currentColor = mix(outlineColor, color, b); + vec4 outColor = czm_antialias(outlineColor, color, currentColor, dist); + outColor = czm_gammaCorrect(outColor); + + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var vI=`uniform vec4 color; +uniform vec4 rimColor; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC)); + float s = smoothstep(1.0 - width, 1.0, d); + + vec4 outColor = czm_gammaCorrect(color); + vec4 outRimColor = czm_gammaCorrect(rimColor); + + material.diffuse = outColor.rgb; + material.emission = outRimColor.rgb * s; + material.alpha = mix(outColor.a, outRimColor.a, s); + + return material; +} +`;var DI=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.slope / (czm_pi / 2.0), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var II=`uniform vec4 evenColor; +uniform vec4 oddColor; +uniform float offset; +uniform float repeat; +uniform bool horizontal; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // Based on the Stripes Fragment Shader in the Orange Book (11.1.2) + float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal)); + float value = fract((coord - offset) * (repeat * 0.5)); + float dist = min(value, min(abs(value - 0.5), 1.0 - value)); + + vec4 currentColor = mix(evenColor, oddColor, step(0.5, value)); + vec4 color = czm_antialias(evenColor, oddColor, currentColor, dist); + color = czm_gammaCorrect(color); + + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var PI=`// Thanks for the contribution Jonas +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +uniform sampler2D specularMap; +uniform sampler2D normalMap; +uniform vec4 baseWaterColor; +uniform vec4 blendColor; +uniform float frequency; +uniform float animationSpeed; +uniform float amplitude; +uniform float specularIntensity; +uniform float fadeFactor; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float time = czm_frameNumber * animationSpeed; + + // fade is a function of the distance from the fragment and the frequency of the waves + float fade = max(1.0, (length(materialInput.positionToEyeEC) / 10000000000.0) * frequency * fadeFactor); + + float specularMapValue = texture(specularMap, materialInput.st).r; + + // note: not using directional motion at this time, just set the angle to 0.0; + vec4 noise = czm_getWaterNoise(normalMap, materialInput.st * frequency, time, 0.0); + vec3 normalTangentSpace = noise.xyz * vec3(1.0, 1.0, (1.0 / amplitude)); + + // fade out the normal perturbation as we move further from the water surface + normalTangentSpace.xy /= fade; + + // attempt to fade out the normal perturbation as we approach non water areas (low specular map value) + normalTangentSpace = mix(vec3(0.0, 0.0, 50.0), normalTangentSpace, specularMapValue); + + normalTangentSpace = normalize(normalTangentSpace); + + // get ratios for alignment of the new normal vector with a vector perpendicular to the tangent plane + float tsPerturbationRatio = clamp(dot(normalTangentSpace, vec3(0.0, 0.0, 1.0)), 0.0, 1.0); + + // fade out water effect as specular map value decreases + material.alpha = mix(blendColor.a, baseWaterColor.a, specularMapValue) * specularMapValue; + + // base color is a blend of the water and non-water color based on the value from the specular map + // may need a uniform blend factor to better control this + material.diffuse = mix(blendColor.rgb, baseWaterColor.rgb, specularMapValue); + + // diffuse highlights are based on how perturbed the normal is + material.diffuse += (0.1 * tsPerturbationRatio); + + material.diffuse = material.diffuse; + + material.normal = normalize(materialInput.tangentToEyeMatrix * normalTangentSpace); + + material.specular = specularIntensity; + material.shininess = 10.0; + + return material; +} +`;function Xe(e){this.type=void 0,this.shaderSource=void 0,this.materials=void 0,this.uniforms=void 0,this._uniforms=void 0,this.translucent=void 0,this._minificationFilter=y(e.minificationFilter,cn.LINEAR),this._magnificationFilter=y(e.magnificationFilter,xi.LINEAR),this._strict=void 0,this._template=void 0,this._count=void 0,this._texturePaths={},this._loadedImages=[],this._loadedCubeMaps=[],this._textures={},this._updateFunctions=[],this._defaultTexture=void 0,_ve(e,this),Object.defineProperties(this,{type:{value:this.type,writable:!1}}),l(Xe._uniformList[this.type])||(Xe._uniformList[this.type]=Object.keys(this._uniforms))}Xe._uniformList={};Xe.fromType=function(e,t){let n=new Xe({fabric:{type:e}});if(l(t))for(let i in t)t.hasOwnProperty(i)&&(n.uniforms[i]=t[i]);return n};Xe.prototype.isTranslucent=function(){if(l(this.translucent))return typeof this.translucent=="function"?this.translucent():this.translucent;let e=!0,t=this._translucentFunctions,n=t.length;for(let i=0;i-1)return!0;return!1}function Tve(e){let t=e._template.components,n=e._template.source;if(l(n))e.shaderSource+=`${n} +`;else{if(e.shaderSource+=`czm_material czm_getMaterial(czm_materialInput materialInput) +{ +`,e.shaderSource+=`czm_material material = czm_getDefaultMaterial(materialInput); +`,l(t)){let i=Object.keys(e._template.materials).length>0;for(let o in t)if(t.hasOwnProperty(o))if(o==="diffuse"||o==="emission"){let s=i&&Cve(t[o],e)?t[o]:`czm_gammaCorrect(${t[o]})`;e.shaderSource+=`material.${o} = ${s}; +`}else o==="alpha"?e.shaderSource+=`material.alpha = ${t.alpha}; +`:e.shaderSource+=`material.${o} = ${t[o]}; +`}e.shaderSource+=`return material; +} +`}}var VQ={mat2:Qi,mat3:Z,mat4:B},Eve=/\.ktx2$/i;function bve(e){let t;return function(n,i){let o=n.uniforms,r=o[e],s=t!==r,a=!l(r)||r===Xe.DefaultImageId;t=r;let c=n._textures[e],u,f;if(r instanceof HTMLVideoElement){if(r.readyState>=2){if(s&&l(c)&&(c!==i.defaultTexture&&c.destroy(),c=void 0),!l(c)||c===i.defaultTexture){let p=new dn({minificationFilter:n._minificationFilter,magnificationFilter:n._magnificationFilter});c=new Bt({context:i,source:r,sampler:p}),n._textures[e]=c;return}c.copyFrom({source:r})}else l(c)||(n._textures[e]=i.defaultTexture);return}if(r instanceof Bt&&r!==c){n._texturePaths[e]=void 0;let p=n._textures[e];l(p)&&p!==n._defaultTexture&&p.destroy(),n._textures[e]=r,u=`${e}Dimensions`,o.hasOwnProperty(u)&&(f=o[u],f.x=r._width,f.y=r._height);return}if(s&&l(c)&&a&&(c!==n._defaultTexture&&c.destroy(),c=void 0),l(c)||(n._texturePaths[e]=void 0,c=n._textures[e]=n._defaultTexture,u=`${e}Dimensions`,o.hasOwnProperty(u)&&(f=o[u],f.x=c._width,f.y=c._height)),a)return;let d=r instanceof we;if(!l(n._texturePaths[e])||d&&r.url!==n._texturePaths[e].url||!d&&r!==n._texturePaths[e]){if(typeof r=="string"||d){let p=d?r:we.createIfNeeded(r),g;Eve.test(p.url)?g=tl(p.url):g=p.fetchImage(),Promise.resolve(g).then(function(h){n._loadedImages.push({id:e,image:h})}).catch(function(){l(c)&&c!==n._defaultTexture&&c.destroy(),n._textures[e]=n._defaultTexture})}else(r instanceof HTMLCanvasElement||r instanceof HTMLImageElement)&&n._loadedImages.push({id:e,image:r});n._texturePaths[e]=r}}}function Sve(e){return function(t,n){let i=t.uniforms[e];if(i instanceof Ua){let r=t._textures[e];r!==t._defaultTexture&&r.destroy(),t._texturePaths[e]=void 0,t._textures[e]=i;return}if(l(t._textures[e])||(t._texturePaths[e]=void 0,t._textures[e]=n.defaultCubeMap),i===Xe.DefaultCubeMapId)return;let o=i.positiveX+i.negativeX+i.positiveY+i.negativeY+i.positiveZ+i.negativeZ;if(o!==t._texturePaths[e]){let r=[we.createIfNeeded(i.positiveX).fetchImage(),we.createIfNeeded(i.negativeX).fetchImage(),we.createIfNeeded(i.positiveY).fetchImage(),we.createIfNeeded(i.negativeY).fetchImage(),we.createIfNeeded(i.positiveZ).fetchImage(),we.createIfNeeded(i.negativeZ).fetchImage()];Promise.all(r).then(function(s){t._loadedCubeMaps.push({id:e,images:s})}),t._texturePaths[e]=o}}}function wve(e){let t=e._template.uniforms;for(let n in t)t.hasOwnProperty(n)&&kQ(e,n)}function kQ(e,t){let n=e._strict,i=e._template.uniforms,o=i[t],r=vve(o),s;if(r==="channels")s=OI(e,t,o,!1);else{if(r==="sampler2D"){let u=`${t}Dimensions`;Ive(e,u)>0&&(i[u]={type:"ivec3",x:1,y:1},kQ(e,u))}if(!new RegExp(`uniform\\s+${r}\\s+${t}\\s*;`).test(e.shaderSource)){let u=`uniform ${r} ${t};`;e.shaderSource=u+e.shaderSource}let c=`${t}_${e._count++}`;if(s=OI(e,t,c),e.uniforms[t]=o,r==="sampler2D")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(bve(t));else if(r==="samplerCube")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(Sve(t));else if(r.indexOf("mat")!==-1){let u=new VQ[r];e._uniforms[c]=function(){return VQ[r].fromColumnMajorArray(e.uniforms[t],u)}}else e._uniforms[c]=function(){return e.uniforms[t]}}}function vve(e){let t=e.type;if(!l(t)){let n=typeof e;if(n==="number")t="float";else if(n==="boolean")t="bool";else if(n==="string"||e instanceof we||e instanceof HTMLCanvasElement||e instanceof HTMLImageElement)/^([rgba]){1,4}$/i.test(e)?t="channels":e===Xe.DefaultCubeMapId?t="samplerCube":t="sampler2D";else if(n==="object")if(Array.isArray(e))(e.length===4||e.length===9||e.length===16)&&(t=`mat${Math.sqrt(e.length)}`);else{let i=0;for(let o in e)e.hasOwnProperty(o)&&(i+=1);i>=2&&i<=4?t=`vec${i}`:i===6&&(t="samplerCube")}}return t}function Dve(e){let t=e._strict,n=e._template.materials;for(let i in n)if(n.hasOwnProperty(i)){let o=new Xe({strict:t,fabric:n[i],count:e._count});e._count=o._count,e._uniforms=_t(e._uniforms,o._uniforms,!0),e.materials[i]=o,e._translucentFunctions=e._translucentFunctions.concat(o._translucentFunctions);let r="czm_getMaterial",s=`${r}_${e._count++}`;OI(o,r,s),e.shaderSource=o.shaderSource+e.shaderSource;let a=`${s}(materialInput)`,c=OI(e,i,a)}}function OI(e,t,n,i){i=y(i,!0);let o=0,r="([\\w])?",s=`([\\w${i?".":""}])?`,a=new RegExp(s+t+r,"g");return e.shaderSource=e.shaderSource.replace(a,function(c,u,f){return u||f?c:(o+=1,n)}),o}function Ive(e,t,n){return OI(e,t,t,n)}Xe._materialCache={_materials:{},addMaterial:function(e,t){this._materials[e]=t},getMaterial:function(e){return this._materials[e]}};Xe.DefaultImageId="czm_defaultImage";Xe.DefaultCubeMapId="czm_defaultCubeMap";Xe.ColorType="Color";Xe._materialCache.addMaterial(Xe.ColorType,{fabric:{type:Xe.ColorType,uniforms:{color:new z(1,0,0,.5)},components:{diffuse:"color.rgb",alpha:"color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});Xe.ImageType="Image";Xe._materialCache.addMaterial(Xe.ImageType,{fabric:{type:Xe.ImageType,uniforms:{image:Xe.DefaultImageId,repeat:new H(1,1),color:new z(1,1,1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).rgb * color.rgb",alpha:"texture(image, fract(repeat * materialInput.st)).a * color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});Xe.DiffuseMapType="DiffuseMap";Xe._materialCache.addMaterial(Xe.DiffuseMapType,{fabric:{type:Xe.DiffuseMapType,uniforms:{image:Xe.DefaultImageId,channels:"rgb",repeat:new H(1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});Xe.AlphaMapType="AlphaMap";Xe._materialCache.addMaterial(Xe.AlphaMapType,{fabric:{type:Xe.AlphaMapType,uniforms:{image:Xe.DefaultImageId,channel:"a",repeat:new H(1,1)},components:{alpha:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!0});Xe.SpecularMapType="SpecularMap";Xe._materialCache.addMaterial(Xe.SpecularMapType,{fabric:{type:Xe.SpecularMapType,uniforms:{image:Xe.DefaultImageId,channel:"r",repeat:new H(1,1)},components:{specular:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!1});Xe.EmissionMapType="EmissionMap";Xe._materialCache.addMaterial(Xe.EmissionMapType,{fabric:{type:Xe.EmissionMapType,uniforms:{image:Xe.DefaultImageId,channels:"rgb",repeat:new H(1,1)},components:{emission:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});Xe.BumpMapType="BumpMap";Xe._materialCache.addMaterial(Xe.BumpMapType,{fabric:{type:Xe.BumpMapType,uniforms:{image:Xe.DefaultImageId,channel:"r",strength:.8,repeat:new H(1,1)},source:hI},translucent:!1});Xe.NormalMapType="NormalMap";Xe._materialCache.addMaterial(Xe.NormalMapType,{fabric:{type:Xe.NormalMapType,uniforms:{image:Xe.DefaultImageId,channels:"rgb",strength:.8,repeat:new H(1,1)},source:TI},translucent:!1});Xe.GridType="Grid";Xe._materialCache.addMaterial(Xe.GridType,{fabric:{type:Xe.GridType,uniforms:{color:new z(0,1,0,1),cellAlpha:.1,lineCount:new H(8,8),lineThickness:new H(1,1),lineOffset:new H(0,0)},source:CI},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.cellAlpha<1}});Xe.StripeType="Stripe";Xe._materialCache.addMaterial(Xe.StripeType,{fabric:{type:Xe.StripeType,uniforms:{horizontal:!0,evenColor:new z(1,1,1,.5),oddColor:new z(0,0,1,.5),offset:0,repeat:5},source:II},translucent:function(e){let t=e.uniforms;return t.evenColor.alpha<1||t.oddColor.alpha<1}});Xe.CheckerboardType="Checkerboard";Xe._materialCache.addMaterial(Xe.CheckerboardType,{fabric:{type:Xe.CheckerboardType,uniforms:{lightColor:new z(1,1,1,.5),darkColor:new z(0,0,0,.5),repeat:new H(5,5)},source:pI},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});Xe.DotType="Dot";Xe._materialCache.addMaterial(Xe.DotType,{fabric:{type:Xe.DotType,uniforms:{lightColor:new z(1,1,0,.75),darkColor:new z(0,1,1,.75),repeat:new H(5,5)},source:_I},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});Xe.WaterType="Water";Xe._materialCache.addMaterial(Xe.WaterType,{fabric:{type:Xe.WaterType,uniforms:{baseWaterColor:new z(.2,.3,.6,1),blendColor:new z(0,1,.699,1),specularMap:Xe.DefaultImageId,normalMap:Xe.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1},source:PI},translucent:function(e){let t=e.uniforms;return t.baseWaterColor.alpha<1||t.blendColor.alpha<1}});Xe.RimLightingType="RimLighting";Xe._materialCache.addMaterial(Xe.RimLightingType,{fabric:{type:Xe.RimLightingType,uniforms:{color:new z(1,0,0,.7),rimColor:new z(1,1,1,.4),width:.3},source:vI},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.rimColor.alpha<1}});Xe.FadeType="Fade";Xe._materialCache.addMaterial(Xe.FadeType,{fabric:{type:Xe.FadeType,uniforms:{fadeInColor:new z(1,0,0,1),fadeOutColor:new z(0,0,0,0),maximumDistance:.5,repeat:!0,fadeDirection:{x:!0,y:!0},time:new H(.5,.5)},source:xI},translucent:function(e){let t=e.uniforms;return t.fadeInColor.alpha<1||t.fadeOutColor.alpha<1}});Xe.PolylineArrowType="PolylineArrow";Xe._materialCache.addMaterial(Xe.PolylineArrowType,{fabric:{type:Xe.PolylineArrowType,uniforms:{color:new z(1,1,1,1)},source:EI},translucent:!0});Xe.PolylineDashType="PolylineDash";Xe._materialCache.addMaterial(Xe.PolylineDashType,{fabric:{type:Xe.PolylineDashType,uniforms:{color:new z(1,0,1,1),gapColor:new z(0,0,0,0),dashLength:16,dashPattern:255},source:bI},translucent:!0});Xe.PolylineGlowType="PolylineGlow";Xe._materialCache.addMaterial(Xe.PolylineGlowType,{fabric:{type:Xe.PolylineGlowType,uniforms:{color:new z(0,.5,1,1),glowPower:.25,taperPower:1},source:SI},translucent:!0});Xe.PolylineOutlineType="PolylineOutline";Xe._materialCache.addMaterial(Xe.PolylineOutlineType,{fabric:{type:Xe.PolylineOutlineType,uniforms:{color:new z(1,1,1,1),outlineColor:new z(1,0,0,1),outlineWidth:1},source:wI},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.outlineColor.alpha<1}});Xe.ElevationContourType="ElevationContour";Xe._materialCache.addMaterial(Xe.ElevationContourType,{fabric:{type:Xe.ElevationContourType,uniforms:{spacing:100,color:new z(1,0,0,1),width:1},source:yI},translucent:!1});Xe.ElevationRampType="ElevationRamp";Xe._materialCache.addMaterial(Xe.ElevationRampType,{fabric:{type:Xe.ElevationRampType,uniforms:{image:Xe.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:AI},translucent:!1});Xe.SlopeRampMaterialType="SlopeRamp";Xe._materialCache.addMaterial(Xe.SlopeRampMaterialType,{fabric:{type:Xe.SlopeRampMaterialType,uniforms:{image:Xe.DefaultImageId},source:DI},translucent:!1});Xe.AspectRampMaterialType="AspectRamp";Xe._materialCache.addMaterial(Xe.AspectRampMaterialType,{fabric:{type:Xe.AspectRampMaterialType,uniforms:{image:Xe.DefaultImageId},source:mI},translucent:!1});Xe.ElevationBandType="ElevationBand";Xe._materialCache.addMaterial(Xe.ElevationBandType,{fabric:{type:Xe.ElevationBandType,uniforms:{heights:Xe.DefaultImageId,colors:Xe.DefaultImageId},source:gI},translucent:!0});var ki=Xe;function F0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.materialSupport,F0.MaterialSupport.TEXTURED);this.material=l(e.material)?e.material:ki.fromType(ki.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,i.vertexShaderSource),this._fragmentShaderSource=y(e.fragmentShaderSource,i.fragmentShaderSource),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._materialSupport=i,this._vertexFormat=i.vertexFormat,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,!n)}Object.defineProperties(F0.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},materialSupport:{get:function(){return this._materialSupport}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});F0.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;F0.prototype.isTranslucent=eo.prototype.isTranslucent;F0.prototype.getRenderState=eo.prototype.getRenderState;F0.MaterialSupport={BASIC:Object.freeze({vertexFormat:Pe.POSITION_AND_NORMAL,vertexShaderSource:uI,fragmentShaderSource:lI}),TEXTURED:Object.freeze({vertexFormat:Pe.POSITION_NORMAL_AND_ST,vertexShaderSource:dI,fragmentShaderSource:fI}),ALL:Object.freeze({vertexFormat:Pe.ALL,vertexShaderSource:cI,fragmentShaderSource:aI})};var ro=F0;var MI=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec4 v_color; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + vec4 color = czm_gammaCorrect(v_color); + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +} +`;var RI=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec4 color; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var U0=`in vec4 v_color; + +void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +} +`;var BI=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function tp(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.flat,!1),o=i?BI:RI,r=i?U0:MI,s=i?tp.FLAT_VERTEX_FORMAT:tp.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,o),this._fragmentShaderSource=y(e.fragmentShaderSource,r),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=s,this._flat=i,this._faceForward=y(e.faceForward,!n)}Object.defineProperties(tp.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});tp.VERTEX_FORMAT=Pe.POSITION_AND_NORMAL;tp.FLAT_VERTEX_FORMAT=Pe.POSITION_ONLY;tp.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;tp.prototype.isTranslucent=eo.prototype.isTranslucent;tp.prototype.getRenderState=eo.prototype.getRenderState;var rn=tp;function fT(e){this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(fT.prototype,{isConstant:{get:function(){return j.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color")});fT.prototype.getType=function(e){return"Color"};fT.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,z.WHITE,t.color),t};fT.prototype.equals=function(e){return this===e||e instanceof fT&&j.equals(this._color,e._color)};var Ut=fT;function rg(e){e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,oe.WGS84),this._rectangle=y(e.rectangle,le.MAX_VALUE),this._projection=new Si(this._ellipsoid),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(rg.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});rg.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<=o&&(u=o-1);let f=(i.north-e.latitude)/a|0;return f>=r&&(f=r-1),l(n)?(n.x=u,n.y=f,n):new H(u,f)};var zi=rg;var zQ=new m,HQ=new m,GQ=new he,o8=new m,Pve=new m,WQ=new ae,Ove=new zi,LI=[new he,new he,new he,new he],NI=new H,Nr={};Nr.initialize=function(){let e=Nr._initPromise;return l(e)||(e=we.fetchJson(en("Assets/approximateTerrainHeights.json")).then(function(t){Nr._terrainHeights=t}),Nr._initPromise=e),e};Nr.getMinimumMaximumHeights=function(e,t){t=y(t,oe.WGS84);let n=jQ(e),i=Nr._defaultMinTerrainHeight,o=Nr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Nr._terrainHeights[r];l(s)&&(i=s[0],o=s[1]),t.cartographicToCartesian(le.northeast(e,GQ),zQ),t.cartographicToCartesian(le.southwest(e,GQ),HQ),m.midpoint(HQ,zQ,o8);let a=t.scaleToGeodeticSurface(o8,Pve);if(l(a)){let c=m.distance(o8,a);i=Math.min(i,-c)}else i=Nr._defaultMinTerrainHeight}return i=Math.max(Nr._defaultMinTerrainHeight,i),{minimumTerrainHeight:i,maximumTerrainHeight:o}};Nr.getBoundingSphere=function(e,t){t=y(t,oe.WGS84);let n=jQ(e),i=Nr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Nr._terrainHeights[r];l(s)&&(i=s[1])}let o=ae.fromRectangle3D(e,t,0);return ae.fromRectangle3D(e,t,i,WQ),ae.union(o,WQ,o)};function jQ(e){he.fromRadians(e.east,e.north,0,LI[0]),he.fromRadians(e.west,e.north,0,LI[1]),he.fromRadians(e.east,e.south,0,LI[2]),he.fromRadians(e.west,e.south,0,LI[3]);let t=0,n=0,i=0,o=0,r=Nr._terrainHeightsMaxLevel,s;for(s=0;s<=r;++s){let a=!1;for(let c=0;c<4;++c){let u=LI[c];if(Ove.positionToTileXY(u,s,NI),c===0)i=NI.x,o=NI.y;else if(i!==NI.x||o!==NI.y){a=!0;break}}if(a)break;t=i,n=o}if(s!==0)return{x:t,y:n,level:s>r?r:s-1}}Nr._terrainHeightsMaxLevel=6;Nr._defaultMaxTerrainHeight=9e3;Nr._defaultMinTerrainHeight=-1e5;Nr._terrainHeights=void 0;Nr._initPromise=void 0;Object.defineProperties(Nr,{initialized:{get:function(){return l(Nr._terrainHeights)}}});var ri=Nr;function xc(e,t,n){this.minimum=m.clone(y(e,m.ZERO)),this.maximum=m.clone(y(t,m.ZERO)),l(n)?n=m.clone(n):n=m.midpoint(this.minimum,this.maximum,new m),this.center=n}xc.fromCorners=function(e,t,n){return l(n)||(n=new xc),n.minimum=m.clone(e,n.minimum),n.maximum=m.clone(t,n.maximum),n.center=m.midpoint(e,t,n.center),n};xc.fromPoints=function(e,t){if(l(t)||(t=new xc),!l(e)||e.length===0)return t.minimum=m.clone(m.ZERO,t.minimum),t.maximum=m.clone(m.ZERO,t.maximum),t.center=m.clone(m.ZERO,t.center),t;let n=e[0].x,i=e[0].y,o=e[0].z,r=e[0].x,s=e[0].y,a=e[0].z,c=e.length;for(let d=1;d0?$t.INSIDE:r+o<0?$t.OUTSIDE:$t.INTERSECTING};xc.prototype.clone=function(e){return xc.clone(this,e)};xc.prototype.intersectPlane=function(e){return xc.intersectPlane(this,e)};xc.prototype.equals=function(e){return xc.equals(this,e)};var sg=xc;var r8={};r8.computeDiscriminant=function(e,t,n){return t*t-4*e*n};function YQ(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))u&&u/c0?[a/e,n/a]:[n/a,a/e]};var Cc=r8;var a8={};a8.computeDiscriminant=function(e,t,n,i){let o=e*e,r=t*t,s=n*n,a=i*i;return 18*e*t*n*i+r*s-27*o*a-4*(e*s*n+r*t*i)};function s8(e,t,n,i){let o=e,r=t/3,s=n/3,a=i,c=o*s,u=r*a,f=r*r,d=s*s,p=o*s-f,g=o*a-r*s,h=r*a-d,A=4*p*h-g*g,x,C;if(A<0){let q,Y,Q;f*u>=c*d?(q=o,Y=p,Q=-2*r*p+o*g):(q=a,Y=h,Q=-a*g+2*s*h);let K=-(Q<0?-1:1)*Math.abs(q)*Math.sqrt(-A);C=-Q+K;let J=C/2,_e=J<0?-Math.pow(-J,1/3):Math.pow(J,1/3),xe=C===K?-_e:-Y/_e;return x=Y<=0?_e+xe:-Q/(_e*_e+xe*xe+Y),f*u>=c*d?[(x-r)/o]:[-a/(x+s)]}let T=p,E=-2*r*p+o*g,S=h,v=-a*g+2*s*h,D=Math.sqrt(A),O=Math.sqrt(3)/2,M=Math.abs(Math.atan2(o*D,-E)/3);x=2*Math.sqrt(-T);let L=Math.cos(M);C=x*L;let N=x*(-L/2-O*Math.sin(M)),_=C+N>2*r?C-r:N-r,b=o,w=_/b;M=Math.abs(Math.atan2(a*D,-v)/3),x=2*Math.sqrt(-S),L=Math.cos(M),C=x*L,N=x*(-L/2-O*Math.sin(M));let I=-a,R=C+N<2*s?C+s:N+s,F=I/R,k=b*R,V=-_*R-b*I,G=_*I,U=(s*V-r*G)/(-r*V+s*k);return w<=U?w<=F?U<=F?[w,U,F]:[w,F,U]:[F,w,U]:w<=F?[U,w,F]:U<=F?[U,F,w]:[F,U,w]}a8.computeRealRoots=function(e,t,n,i){let o,r;if(e===0)return Cc.computeRealRoots(t,n,i);if(t===0){if(n===0){if(i===0)return[0,0,0];r=-i/e;let s=r<0?-Math.pow(-r,1/3):Math.pow(r,1/3);return[s,s,s]}else if(i===0)return o=Cc.computeRealRoots(e,0,n),o.Length===0?[0]:[o[0],0,o[1]];return s8(e,0,n,i)}else{if(n===0)return i===0?(r=-t/e,r<0?[r,0,0]:[0,0,r]):s8(e,t,0,i);if(i===0)return o=Cc.computeRealRoots(e,t,n),o.length===0?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]}return s8(e,t,n,i)};var V0=a8;var c8={};c8.computeDiscriminant=function(e,t,n,i,o){let r=e*e,s=r*e,a=t*t,c=a*t,u=n*n,f=u*n,d=i*i,p=d*i,g=o*o,h=g*o;return a*u*d-4*c*p-4*e*f*d+18*e*t*n*p-27*r*d*d+256*s*h+o*(18*c*n*i-4*a*f+16*e*u*u-80*e*t*u*i-6*e*a*d+144*r*n*d)+g*(144*e*a*n-27*a*a-128*r*u-192*r*t*i)};function od(e,t,n,i){let o=e*e,r=t-3*o/8,s=n-t*e/2+o*e/8,a=i-n*e/4+t*o/16-3*o*o/256,c=V0.computeRealRoots(1,2*r,r*r-4*a,-s*s);if(c.length>0){let u=-e/4,f=c[c.length-1];if(Math.abs(f)=0&&g>=0){let A=Math.sqrt(p),x=Math.sqrt(g);return[u-x,u-A,u+A,u+x]}else{if(p>=0&&g<0)return h=Math.sqrt(p),[u-h,u+h];if(p<0&&g>=0)return h=Math.sqrt(g),[u-h,u+h]}}return[]}else if(f>0){let d=Math.sqrt(f),p=(r+f-s/d)/2,g=(r+f+s/d)/2,h=Cc.computeRealRoots(1,d,p),A=Cc.computeRealRoots(1,-d,g);return h.length!==0?(h[0]+=u,h[1]+=u,A.length!==0?(A[0]+=u,A[1]+=u,h[1]<=A[0]?[h[0],h[1],A[0],A[1]]:A[1]<=h[0]?[A[0],A[1],h[0],h[1]]:h[0]>=A[0]&&h[1]<=A[1]?[A[0],h[0],h[1],A[1]]:A[0]>=h[0]&&A[1]<=h[1]?[h[0],A[0],A[1],h[1]]:h[0]>A[0]&&h[0]0){let d=f[0],p=t-d,g=p*p,h=e/2,A=p/2,x=g-4*i,C=g+4*Math.abs(i),T=s-4*d,E=s+4*Math.abs(d),S,v;if(d<0||x*E=_[0]&&N[1]<=_[1]?[_[0],N[0],N[1],_[1]]:_[0]>=N[0]&&_[1]<=N[1]?[N[0],_[0],_[1],N[1]]:N[0]>_[0]&&N[0]<_[1]?[_[0],N[0],_[1],N[1]]:[N[0],_[0],N[1],_[1]]:N;if(_.length!==0)return _}return[]}c8.computeRealRoots=function(e,t,n,i,o){if(Math.abs(e)f)||(p=m.cross(d,a,XQ),h=m.dot(s,p),h<0||g+h>f))return;A=m.dot(c,p)/f}else{if(Math.abs(f)1||(p=m.cross(d,a,XQ),h=m.dot(s,p)*x,h<0||g+h>1))return;A=m.dot(c,p)*x}return A};tr.rayTriangle=function(e,t,n,i,o,r){let s=tr.rayTriangleParametric(e,t,n,i,o);if(!(!l(s)||s<0))return l(r)||(r=new m),m.multiplyByScalar(e.direction,s,r),m.add(e.origin,r,r)};var Bve=new Dn;tr.lineSegmentTriangle=function(e,t,n,i,o,r,s){let a=Bve;m.clone(e,a.origin),m.subtract(t,e,a.direction),m.normalize(a.direction,a.direction);let c=tr.rayTriangleParametric(a,n,i,o,r);if(!(!l(c)||c<0||c>m.distance(e,t)))return l(s)||(s=new m),m.multiplyByScalar(a.direction,c,s),m.add(a.origin,s,s)};function Lve(e,t,n,i){let o=t*t-4*e*n;if(o<0)return;if(o>0){let s=1/(2*e),a=Math.sqrt(o),c=(-t+a)*s,u=(-t-a)*s;return cs))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,s),i};var Uve=new m,Vve=new m;tr.rayEllipsoid=function(e,t){let n=t.oneOverRadii,i=m.multiplyComponents(n,e.origin,Uve),o=m.multiplyComponents(n,e.direction,Vve),r=m.magnitudeSquared(i),s=m.dot(i,o),a,c,u,f,d;if(r>1){if(s>=0)return;let p=s*s;if(a=r-1,c=m.magnitudeSquared(o),u=c*a,pu){f=s*s-u,d=-s+Math.sqrt(f);let h=d/c,A=a/d;return h0?g.push(new m(i,o*L,o*-b)):b!==0?(g.push(new m(i,o*L,o*-b)),g.push(new m(i,o*L,o*b)),++M):g.push(new m(i,o*L,o*b))}return g}var l8=new m,KQ=new m,JQ=new m,G3=new m,zve=new m,Hve=new Z,Gve=new Z,Wve=new Z,jve=new Z,Yve=new Z,ZQ=new Z,QQ=new Z,$Q=new m,qve=new m,Xve=new he;tr.grazingAltitudeLocation=function(e,t){let n=e.origin,i=e.direction;if(!m.equals(n,m.ZERO)){let D=t.geodeticSurfaceNormal(n,l8);if(m.dot(i,D)>=0)return n}let o=l(this.rayEllipsoid(e,t)),r=t.transformPositionToScaledSpace(i,l8),s=m.normalize(r,r),a=m.mostOrthogonalAxis(r,G3),c=m.normalize(m.cross(a,s,KQ),KQ),u=m.normalize(m.cross(s,c,JQ),JQ),f=Hve;f[0]=s.x,f[1]=s.y,f[2]=s.z,f[3]=c.x,f[4]=c.y,f[5]=c.z,f[6]=u.x,f[7]=u.y,f[8]=u.z;let d=Z.transpose(f,Gve),p=Z.fromScale(t.radii,Wve),g=Z.fromScale(t.oneOverRadii,jve),h=Yve;h[0]=0,h[1]=-i.z,h[2]=i.y,h[3]=i.z,h[4]=0,h[5]=-i.x,h[6]=-i.y,h[7]=i.x,h[8]=0;let A=Z.multiply(Z.multiply(d,g,ZQ),h,ZQ),x=Z.multiply(Z.multiply(A,p,QQ),f,QQ),C=Z.multiplyByVector(A,n,zve),T=kve(x,m.negate(C,l8),0,0,1),E,S,v=T.length;if(v>0){let D=m.clone(m.ZERO,qve),O=Number.NEGATIVE_INFINITY;for(let L=0;LO&&(O=_,D=m.clone(E,D))}let M=t.cartesianToCartographic(D,Xve);return O=P.clamp(O,0,1),S=m.magnitude(m.subtract(D,n,G3))*Math.sqrt(1-O*O),S=o?-S:S,M.height=S,t.cartographicToCartesian(M,new m)}};var Kve=new m;tr.lineSegmentPlane=function(e,t,n,i){l(i)||(i=new m);let o=m.subtract(t,e,Kve),r=n.normal,s=m.dot(r,o);if(Math.abs(s)1))return m.multiplyByScalar(o,c,i),m.add(e,i,i),i};tr.trianglePlaneIntersection=function(e,t,n,i){let o=i.normal,r=i.distance,s=m.dot(o,e)+r<0,a=m.dot(o,t)+r<0,c=m.dot(o,n)+r<0,u=0;u+=s?1:0,u+=a?1:0,u+=c?1:0;let f,d;if((u===1||u===2)&&(f=new m,d=new m),u===1){if(s)return tr.lineSegmentPlane(e,t,i,f),tr.lineSegmentPlane(e,n,i,d),{positions:[e,t,n,f,d],indices:[0,3,4,1,2,4,1,4,3]};if(a)return tr.lineSegmentPlane(t,n,i,f),tr.lineSegmentPlane(t,e,i,d),{positions:[e,t,n,f,d],indices:[1,3,4,2,0,4,2,4,3]};if(c)return tr.lineSegmentPlane(n,e,i,f),tr.lineSegmentPlane(n,t,i,d),{positions:[e,t,n,f,d],indices:[2,3,4,0,1,4,0,4,3]}}else if(u===2)if(s)if(a){if(!c)return tr.lineSegmentPlane(e,n,i,f),tr.lineSegmentPlane(t,n,i,d),{positions:[e,t,n,f,d],indices:[0,1,4,0,4,3,2,3,4]}}else return tr.lineSegmentPlane(n,t,i,f),tr.lineSegmentPlane(e,t,i,d),{positions:[e,t,n,f,d],indices:[2,0,4,2,4,3,1,3,4]};else return tr.lineSegmentPlane(t,e,i,f),tr.lineSegmentPlane(n,e,i,d),{positions:[e,t,n,f,d],indices:[1,2,4,1,4,3,0,3,4]}};var qi=tr;var u8=new re;function Rm(e,t){t=y(t,oe.WGS84),e=t.scaleToGeodeticSurface(e);let n=Rt.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=m.fromCartesian4(B.getColumn(n,0,u8)),this._yAxis=m.fromCartesian4(B.getColumn(n,1,u8));let i=m.fromCartesian4(B.getColumn(n,2,u8));this._plane=un.fromPointNormal(e,i)}Object.defineProperties(Rm.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var Jve=new sg;Rm.fromPoints=function(e,t){let n=sg.fromPoints(e,Jve);return new Rm(n.center,t)};var n$=new Dn,W3=new m;Rm.prototype.projectPointOntoPlane=function(e,t){let n=n$;n.origin=e,m.normalize(e,n.direction);let i=qi.rayPlane(n,this._plane,W3);if(l(i)||(m.negate(n.direction,n.direction),i=qi.rayPlane(n,this._plane,W3)),l(i)){let o=m.subtract(i,this._origin,i),r=m.dot(this._xAxis,o),s=m.dot(this._yAxis,o);return l(t)?(t.x=r,t.y=s,t):new H(r,s)}};Rm.prototype.projectPointsOntoPlane=function(e,t){l(t)||(t=[]);let n=0,i=e.length;for(let o=0;o0?0:O.latitude,b=he.fromRadians(N,e.north,n,cDe),w=he.fromRadians(e.west,e.north,n,lDe),I=he.fromRadians(e.west,_,n,uDe),R=he.fromRadians(e.west,e.south,n,fDe),F=he.fromRadians(N,e.south,n,dDe),k=i.cartographicToCartesian(b,mDe),V=i.cartographicToCartesian(w,r$),G=i.cartographicToCartesian(I,hDe),U=i.cartographicToCartesian(R,s$),q=i.cartographicToCartesian(F,pDe),Y=L.projectPointToNearestOnPlane(k,_De),Q=L.projectPointToNearestOnPlane(V,gDe),W=L.projectPointToNearestOnPlane(G,yDe),K=L.projectPointToNearestOnPlane(U,ADe),J=L.projectPointToNearestOnPlane(q,xDe);return r=Math.min(Q.x,W.x,K.x),s=-r,c=Math.max(Q.y,Y.y),a=Math.min(K.y,J.y),w.height=R.height=t,V=i.cartographicToCartesian(w,r$),U=i.cartographicToCartesian(R,s$),u=Math.min(un.getPointDistance(d,V),un.getPointDistance(d,U)),f=n,i$(L.origin,L.xAxis,L.yAxis,L.zAxis,r,s,a,c,u,f,o)}let p=e.south>0,g=e.north<0,h=p?e.south:g?e.north:0,A=le.center(e,o$).longitude,x=m.fromRadians(A,h,n,i,CDe);x.z=0;let T=Math.abs(x.x)=c?$t.INSIDE:$t.INTERSECTING};var l$=new m,u$=new m,f$=new m,PDe=new m,a$=new m,ODe=new m;Ri.distanceSquaredTo=function(e,t){let n=m.subtract(t,e.center,c$),i=e.halfAxes,o=Z.getColumn(i,0,l$),r=Z.getColumn(i,1,u$),s=Z.getColumn(i,2,f$),a=m.magnitude(o),c=m.magnitude(r),u=m.magnitude(s),f=!0,d=!0,p=!0;a>0?m.divideByScalar(o,a,o):f=!1,c>0?m.divideByScalar(r,c,r):d=!1,u>0?m.divideByScalar(s,u,s):p=!1;let g=!f+!d+!p,h,A,x;if(g===1){let S=o;h=r,A=s,d?p||(S=s,A=o):(S=r,h=o),x=m.cross(h,A,a$),S===o?o=x:S===r?r=x:S===s&&(s=x)}else if(g===2){h=o,d?h=r:p&&(h=s);let S=m.UNIT_Y;S.equalsEpsilon(h,P.EPSILON3)&&(S=m.UNIT_X),A=m.cross(h,S,PDe),m.normalize(A,A),x=m.cross(h,A,a$),m.normalize(x,x),h===o?(r=A,s=x):h===r?(s=A,o=x):h===s&&(o=A,r=x)}else g===3&&(o=m.UNIT_X,r=m.UNIT_Y,s=m.UNIT_Z);let C=ODe;C.x=m.dot(n,o),C.y=m.dot(n,r),C.z=m.dot(n,s);let T=0,E;return C.x<-a?(E=C.x+a,T+=E*E):C.x>a&&(E=C.x-a,T+=E*E),C.y<-c?(E=C.y+c,T+=E*E):C.y>c&&(E=C.y-c,T+=E*E),C.z<-u?(E=C.z+u,T+=E*E):C.z>u&&(E=C.z-u,T+=E*E),T};var MDe=new m,RDe=new m;Ri.computePlaneDistances=function(e,t,n,i){l(i)||(i=new Ac);let o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=e.center,a=e.halfAxes,c=Z.getColumn(a,0,l$),u=Z.getColumn(a,1,u$),f=Z.getColumn(a,2,f$),d=m.add(c,u,MDe);m.add(d,f,d),m.add(d,s,d);let p=m.subtract(d,t,RDe),g=m.dot(n,p);return o=Math.min(g,o),r=Math.max(g,r),m.add(s,c,d),m.add(d,u,d),m.subtract(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),m.add(s,c,d),m.subtract(d,u,d),m.add(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),m.add(s,c,d),m.subtract(d,u,d),m.subtract(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),m.subtract(s,c,d),m.add(d,u,d),m.add(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),m.subtract(s,c,d),m.add(d,u,d),m.subtract(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),m.subtract(s,c,d),m.subtract(d,u,d),m.add(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),m.subtract(s,c,d),m.subtract(d,u,d),m.subtract(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),i.start=o,i.stop=r,i};var BDe=new m,LDe=new m,NDe=new m;Ri.computeCorners=function(e,t){l(t)||(t=[new m,new m,new m,new m,new m,new m,new m,new m]);let n=e.center,i=e.halfAxes,o=Z.getColumn(i,0,BDe),r=Z.getColumn(i,1,LDe),s=Z.getColumn(i,2,NDe);return m.clone(n,t[0]),m.subtract(t[0],o,t[0]),m.subtract(t[0],r,t[0]),m.subtract(t[0],s,t[0]),m.clone(n,t[1]),m.subtract(t[1],o,t[1]),m.subtract(t[1],r,t[1]),m.add(t[1],s,t[1]),m.clone(n,t[2]),m.subtract(t[2],o,t[2]),m.add(t[2],r,t[2]),m.subtract(t[2],s,t[2]),m.clone(n,t[3]),m.subtract(t[3],o,t[3]),m.add(t[3],r,t[3]),m.add(t[3],s,t[3]),m.clone(n,t[4]),m.add(t[4],o,t[4]),m.subtract(t[4],r,t[4]),m.subtract(t[4],s,t[4]),m.clone(n,t[5]),m.add(t[5],o,t[5]),m.subtract(t[5],r,t[5]),m.add(t[5],s,t[5]),m.clone(n,t[6]),m.add(t[6],o,t[6]),m.add(t[6],r,t[6]),m.subtract(t[6],s,t[6]),m.clone(n,t[7]),m.add(t[7],o,t[7]),m.add(t[7],r,t[7]),m.add(t[7],s,t[7]),t};var FDe=new Z;Ri.computeTransformation=function(e,t){l(t)||(t=new B);let n=e.center,i=Z.multiplyByUniformScale(e.halfAxes,2,FDe);return B.fromRotationTranslation(i,n,t)};var UDe=new ae;Ri.isOccluded=function(e,t){let n=ae.fromOrientedBoundingBox(e,UDe);return!t.isBoundingSphereVisible(n)};Ri.prototype.intersectPlane=function(e){return Ri.intersectPlane(this,e)};Ri.prototype.distanceSquaredTo=function(e){return Ri.distanceSquaredTo(this,e)};Ri.prototype.computePlaneDistances=function(e,t,n){return Ri.computePlaneDistances(this,e,t,n)};Ri.prototype.computeCorners=function(e){return Ri.computeCorners(this,e)};Ri.prototype.computeTransformation=function(e){return Ri.computeTransformation(this,e)};Ri.prototype.isOccluded=function(e){return Ri.isOccluded(this,e)};Ri.equals=function(e,t){return e===t||l(e)&&l(t)&&m.equals(e.center,t.center)&&Z.equals(e.halfAxes,t.halfAxes)};Ri.prototype.clone=function(e){return Ri.clone(this,e)};Ri.prototype.equals=function(e){return Ri.equals(this,e)};var Mn=Ri;var j3={};j3.getHeight=function(e,t,n){return(e-n)*t+n};var VDe=new m;j3.getPosition=function(e,t,n,i,o){let r=t.cartesianToCartographic(e,VDe),s=j3.getHeight(r.height,n,i);return m.fromRadians(r.longitude,r.latitude,s,t,o)};var Tc=j3;var VI=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; + +#ifdef EXTRUDED_GEOMETRY +in vec3 extrudeDirection; + +uniform float u_globeMinimumAltitude; +#endif // EXTRUDED_GEOMETRY + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif // PER_INSTANCE_COLOR + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL +out vec4 v_sphericalExtents; +#else // SPHERICAL +out vec2 v_inversePlaneExtents; +out vec4 v_westPlane; +out vec4 v_southPlane; +#endif // SPHERICAL +out vec3 v_uvMinAndSphericalLongitudeRotation; +out vec3 v_uMaxAndInverseDistance; +out vec3 v_vMaxAndInverseDistance; +#endif // TEXTURE_COORDINATES + +void main() +{ + vec4 position = czm_computePosition(); + +#ifdef EXTRUDED_GEOMETRY + float delta = min(u_globeMinimumAltitude, czm_geometricToleranceOverMeter * length(position.xyz)); + delta *= czm_sceneMode == czm_sceneMode3D ? 1.0 : 0.0; + + //extrudeDirection is zero for the top layer + position = position + vec4(extrudeDirection * delta, 0.0); +#endif + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL + v_sphericalExtents = czm_batchTable_sphericalExtents(batchId); + v_uvMinAndSphericalLongitudeRotation.z = czm_batchTable_longitudeRotation(batchId); +#else // SPHERICAL +#ifdef COLUMBUS_VIEW_2D + vec4 planes2D_high = czm_batchTable_planes2D_HIGH(batchId); + vec4 planes2D_low = czm_batchTable_planes2D_LOW(batchId); + + // If the primitive is split across the IDL (planes2D_high.x > planes2D_high.w): + // - If this vertex is on the east side of the IDL (position3DLow.y > 0.0, comparison with position3DHigh may produce artifacts) + // - existing "east" is on the wrong side of the world, far away (planes2D_high/low.w) + // - so set "east" as beyond the eastmost extent of the projection (idlSplitNewPlaneHiLow) + vec2 idlSplitNewPlaneHiLow = vec2(EAST_MOST_X_HIGH - (WEST_MOST_X_HIGH - planes2D_high.w), EAST_MOST_X_LOW - (WEST_MOST_X_LOW - planes2D_low.w)); + bool idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y > 0.0; + planes2D_high.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.w); + planes2D_low.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.w); + + // - else, if this vertex is on the west side of the IDL (position3DLow.y < 0.0) + // - existing "west" is on the wrong side of the world, far away (planes2D_high/low.x) + // - so set "west" as beyond the westmost extent of the projection (idlSplitNewPlaneHiLow) + idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y < 0.0; + idlSplitNewPlaneHiLow = vec2(WEST_MOST_X_HIGH - (EAST_MOST_X_HIGH - planes2D_high.x), WEST_MOST_X_LOW - (EAST_MOST_X_LOW - planes2D_low.x)); + planes2D_high.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.x); + planes2D_low.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.x); + + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.xy), vec3(0.0, planes2D_low.xy))).xyz; + vec3 northWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.x, planes2D_high.z), vec3(0.0, planes2D_low.x, planes2D_low.z))).xyz; + vec3 southEastCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.w, planes2D_high.y), vec3(0.0, planes2D_low.w, planes2D_low.y))).xyz; +#else // COLUMBUS_VIEW_2D + // 3D case has smaller "plane extents," so planes encoded as a 64 bit position and 2 vec3s for distances/direction + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(czm_batchTable_southWest_HIGH(batchId), czm_batchTable_southWest_LOW(batchId))).xyz; + vec3 northWestCorner = czm_normal * czm_batchTable_northward(batchId) + southWestCorner; + vec3 southEastCorner = czm_normal * czm_batchTable_eastward(batchId) + southWestCorner; +#endif // COLUMBUS_VIEW_2D + + vec3 eastWard = southEastCorner - southWestCorner; + float eastExtent = length(eastWard); + eastWard /= eastExtent; + + vec3 northWard = northWestCorner - southWestCorner; + float northExtent = length(northWard); + northWard /= northExtent; + + v_westPlane = vec4(eastWard, -dot(eastWard, southWestCorner)); + v_southPlane = vec4(northWard, -dot(northWard, southWestCorner)); + v_inversePlaneExtents = vec2(1.0 / eastExtent, 1.0 / northExtent); +#endif // SPHERICAL + vec4 uvMinAndExtents = czm_batchTable_uvMinAndExtents(batchId); + vec4 uMaxVmax = czm_batchTable_uMaxVmax(batchId); + + v_uMaxAndInverseDistance = vec3(uMaxVmax.xy, uvMinAndExtents.z); + v_vMaxAndInverseDistance = vec3(uMaxVmax.zw, uvMinAndExtents.w); + v_uvMinAndSphericalLongitudeRotation.xy = uvMinAndExtents.xy; +#endif // TEXTURE_COORDINATES + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif + + gl_Position = czm_depthClamp(czm_modelViewProjectionRelativeToEye * position); +} +`;var ag=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +void main(void) +{ +#ifdef VECTOR_TILE + out_FragColor = czm_gammaCorrect(u_highlightColor); +#else + out_FragColor = vec4(1.0); +#endif + czm_writeDepthClamp(); +} +`;var d$={TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2};d$.NUMBER_OF_CLASSIFICATION_TYPES=3;var zn=Object.freeze(d$);var kDe={NEVER:te.NEVER,LESS:te.LESS,EQUAL:te.EQUAL,LESS_OR_EQUAL:te.LEQUAL,GREATER:te.GREATER,NOT_EQUAL:te.NOTEQUAL,GREATER_OR_EQUAL:te.GEQUAL,ALWAYS:te.ALWAYS},za=Object.freeze(kDe);function zDe(e,t){let n=[],i=e.length,o=0;for(;o>1^-(e&1)}yo.zigZagDeltaDecode=function(e,t,n){let i=e.length,o=0,r=0,s=0;for(let a=0;a>11,f=c>>5&o,d=c&i,p=3*a;t[p]=u*r,t[p+1]=f*s,t[p+2]=d*r}return t};var jn=yo;var y$=new m,A$=new m,x$=new m;function tIe(e,t,n,i,o){l(o)||(o=new m);let r,s,a,c,u,f,d,p;if(l(t.z)){if(m.equalsEpsilon(e,t,P.EPSILON14))return m.clone(m.UNIT_X,o);if(m.equalsEpsilon(e,n,P.EPSILON14))return m.clone(m.UNIT_Y,o);if(m.equalsEpsilon(e,i,P.EPSILON14))return m.clone(m.UNIT_Z,o);r=m.subtract(n,t,y$),s=m.subtract(i,t,A$),a=m.subtract(e,t,x$),c=m.dot(r,r),u=m.dot(r,s),f=m.dot(r,a),d=m.dot(s,s),p=m.dot(s,a)}else{if(H.equalsEpsilon(e,t,P.EPSILON14))return m.clone(m.UNIT_X,o);if(H.equalsEpsilon(e,n,P.EPSILON14))return m.clone(m.UNIT_Y,o);if(H.equalsEpsilon(e,i,P.EPSILON14))return m.clone(m.UNIT_Z,o);r=H.subtract(n,t,y$),s=H.subtract(i,t,A$),a=H.subtract(e,t,x$),c=H.dot(r,r),u=H.dot(r,s),f=H.dot(r,a),d=H.dot(s,s),p=H.dot(s,a)}o.y=d*f-u*p,o.z=c*p-u*f;let g=c*d-u*u;if(g!==0)return o.y/=g,o.z/=g,o.x=1-o.y-o.z,o}var H0=tIe;var m8={};m8.calculateACMR=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o=t.length;if(!l(n)){n=0;let a=0,c=t[a];for(;an&&(n=c),++a,c=t[a]}let r=[];for(let a=0;ai&&(r[t[a]]=s,++s);return(s-i+1)/(o/3)};m8.tipsify=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o;function r(_,b,w,I){for(;b.length>=1;){let R=b[b.length-1];if(b.splice(b.length-1,1),_[R].numLiveTriangles>0)return R}for(;o0)return++o,o-1;++o}return-1}function s(_,b,w,I,R,F,k){let V=-1,G,U=-1,q=0;for(;qU||U===-1)&&(U=G,V=Y)),++q}return V===-1?r(I,F,_,k):V}let a=t.length,c=0,u=0,f=t[u],d=a;if(l(n))c=n+1;else{for(;uc&&(c=f),++u,f=t[u];if(c===-1)return 0;++c}let p=[],g;for(g=0;gi&&(E.timeStamp=x,++x),++u}A=s(t,i,C,p,x,T,c)}return D};var GI=m8;var Ec={};function $3(e,t,n,i,o){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=o,e[t++]=o,e[t]=n}function nIe(e){let t=e.length,n=t/3*6,i=Ue.createTypedArray(t,n),o=0;for(let r=0;r=3){let n=(t-2)*6,i=Ue.createTypedArray(t,n);$3(i,0,e[0],e[1],e[2]);let o=6;for(let r=3;r0){let t=e.length-1,n=(t-1)*6,i=Ue.createTypedArray(t,n),o=e[0],r=0;for(let s=1;so&&(o=n[r]);e.indices=GI.tipsify({indices:n,maximumIndex:o,cacheSize:t})}return e};function C$(e){let t={};for(let n in e)if(e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)){let i=e[n];t[n]=new ve({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function rIe(e,t,n){for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];for(let r=0;r=P.SIXTY_FOUR_KILOBYTES){let i=[],o=[],r=0,s=C$(e.attributes),a=e.indices,c=a.length,u;e.primitiveType===Le.TRIANGLES?u=3:e.primitiveType===Le.LINES?u=2:e.primitiveType===Le.POINTS&&(u=1);for(let f=0;f=P.SIXTY_FOUR_KILOBYTES&&(t.push(new ft({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],o=[],r=0,s=C$(e.attributes))}o.length!==0&&t.push(new ft({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var T$=new m,sIe=new he;Ec.projectTo2D=function(e,t,n,i,o){let r=e.attributes[t];o=l(o)?o:new Si;let s=o.ellipsoid,a=r.values,c=new Float64Array(a.length),u=0;for(let f=0;fx&&(x=T)}return new ft({attributes:f,indices:h,primitiveType:u,boundingSphere:l(A)?new ae(A,x):void 0})}Ec.combineInstances=function(e){let t=[],n=[],i=e.length;for(let r=0;r0&&o.push(g8(t,"geometry")),n.length>0&&(o.push(g8(n,"westHemisphereGeometry")),o.push(g8(n,"eastHemisphereGeometry"))),o};var Yu=new m,WI=new m,dT=new m,mT=new m;Ec.computeNormal=function(e){let t=e.indices,n=e.attributes,i=n.position.values,o=n.position.values.length/3,r=t.length,s=new Array(o),a=new Array(r/3),c=new Array(r),u;for(u=0;u0){for(f=0;f3&&(n[3]=0,n[4]=2,n[5]=3);let i=6;for(let o=3;oo?i>r?s=P.sign(e.y):s=P.sign(n.y):o>r?s=P.sign(t.y):s=P.sign(n.y);let a=s<0;cg(e,a),cg(t,a),cg(n,a)}var w$=new m;function qu(e,t,n,i){m.add(e,m.multiplyByScalar(m.subtract(t,e,w$),e.y/(e.y-t.y),w$),n),m.clone(n,i),cg(n,!0),cg(i,!1)}var G0=new m,W0=new m,j0=new m,Y0=new m,y8={positions:new Array(7),indices:new Array(3*3)};function AIe(e,t,n){if(e.x>=0||t.x>=0||n.x>=0)return;yIe(e,t,n);let i=e.y<0,o=t.y<0,r=n.y<0,s=0;s+=i?1:0,s+=o?1:0,s+=r?1:0;let a=y8.indices;s===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,i?(qu(e,t,G0,j0),qu(e,n,W0,Y0),a[0]=0,a[3]=1,a[4]=2,a[6]=1):o?(qu(t,n,G0,j0),qu(t,e,W0,Y0),a[0]=1,a[3]=2,a[4]=0,a[6]=2):r&&(qu(n,e,G0,j0),qu(n,t,W0,Y0),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):s===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,i?o?r||(qu(n,e,G0,j0),qu(n,t,W0,Y0),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(qu(t,n,G0,j0),qu(t,e,W0,Y0),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(qu(e,t,G0,j0),qu(e,n,W0,Y0),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let c=y8.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,(s===1||s===2)&&(c[3]=G0,c[4]=W0,c[5]=j0,c[6]=Y0,c.length=7),y8}function v$(e,t){let n=e.attributes;if(n.position.values.length===0)return;for(let o in n)if(n.hasOwnProperty(o)&&l(n[o])&&l(n[o].values)){let r=n[o];r.values=X.createTypedArray(r.componentDatatype,r.values)}let i=ft.computeNumberOfVertices(e);return e.indices=Ue.createTypedArray(i,e.indices),t&&(e.boundingSphere=ae.fromVertices(n.position.values)),e}function pT(e){let t=e.attributes,n={};for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];n[i]=new ve({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:[]})}return new ft({attributes:n,indices:[],primitiveType:e.primitiveType})}function T8(e,t,n){let i=l(e.geometry.boundingSphere);t=v$(t,i),n=v$(n,i),l(n)&&!l(t)?e.geometry=n:!l(n)&&l(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function E8(e,t){let n=new e,i=new e,o=new e;return function(r,s,a,c,u,f,d,p){let g=e.fromArray(u,r*t,n),h=e.fromArray(u,s*t,i),A=e.fromArray(u,a*t,o);e.multiplyByScalar(g,c.x,g),e.multiplyByScalar(h,c.y,h),e.multiplyByScalar(A,c.z,A);let x=e.add(g,h,g);e.add(x,A,x),p&&e.normalize(x,x),e.pack(x,f,d*t)}}var xIe=E8(re,4),Q3=E8(m,3),R$=E8(H,2),CIe=function(e,t,n,i,o,r,s){let a=o[e]*i.x,c=o[t]*i.y,u=o[n]*i.z;r[s]=a+c+u>P.EPSILON6?1:0},YI=new m,A8=new m,x8=new m,TIe=new m;function J3(e,t,n,i,o,r,s,a,c,u,f,d,p,g,h,A){if(!l(r)&&!l(s)&&!l(a)&&!l(c)&&!l(u)&&g===0)return;let x=m.fromArray(o,e*3,YI),C=m.fromArray(o,t*3,A8),T=m.fromArray(o,n*3,x8),E=H0(i,x,C,T,TIe);if(l(E)){if(l(r)&&Q3(e,t,n,E,r,d.normal.values,A,!0),l(u)){let S=m.fromArray(u,e*3,YI),v=m.fromArray(u,t*3,A8),D=m.fromArray(u,n*3,x8);m.multiplyByScalar(S,E.x,S),m.multiplyByScalar(v,E.y,v),m.multiplyByScalar(D,E.z,D);let O;!m.equals(S,m.ZERO)||!m.equals(v,m.ZERO)||!m.equals(D,m.ZERO)?(O=m.add(S,v,S),m.add(O,D,O),m.normalize(O,O)):(O=YI,O.x=0,O.y=0,O.z=0),m.pack(O,d.extrudeDirection.values,A*3)}if(l(f)&&CIe(e,t,n,E,f,d.applyOffset.values,A),l(s)&&Q3(e,t,n,E,s,d.tangent.values,A,!0),l(a)&&Q3(e,t,n,E,a,d.bitangent.values,A,!0),l(c)&&R$(e,t,n,E,c,d.st.values,A),g>0)for(let S=0;S3){let I=w.positions,R=w.indices,F=R.length;for(let k=0;k0)continue;let c=m.unpack(i,s,N$);(a.y<0&&c.y>0||a.y>0&&c.y<0)&&(s-3>0?(i[s]=n[s-3],i[s+1]=n[s-2],i[s+2]=n[s-1]):m.pack(a,i,s));let u=m.unpack(o,s,C8);(a.y<0&&u.y>0||a.y>0&&u.y<0)&&(s+30||ae.intersectPlane(n,un.ORIGIN_ZX_PLANE)!==$t.INTERSECTING))return e;if(t.geometryType!==Hu.NONE)switch(t.geometryType){case Hu.POLYLINES:MIe(e);break;case Hu.TRIANGLES:D$(e);break;case Hu.LINES:I$(e);break}else gIe(t),t.primitiveType===Le.TRIANGLES?D$(e):t.primitiveType===Le.LINES&&I$(e);return e};var Nn=Ec;function rl(e){this._ellipsoid=y(e,oe.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(rl.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});rl.mercatorAngleToGeodeticLatitude=function(e){return P.PI_OVER_TWO-2*Math.atan(Math.exp(-e))};rl.geodeticLatitudeToMercatorAngle=function(e){e>rl.MaximumLatitude?e=rl.MaximumLatitude:e<-rl.MaximumLatitude&&(e=-rl.MaximumLatitude);let t=Math.sin(e);return .5*Math.log((1+t)/(1-t))};rl.MaximumLatitude=rl.mercatorAngleToGeodeticLatitude(Math.PI);rl.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=rl.geodeticLatitudeToMercatorAngle(e.latitude)*n,r=e.height;return l(t)?(t.x=i,t.y=o,t.z=r,t):new m(i,o,r)};rl.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=rl.mercatorAngleToGeodeticLatitude(e.y*n),r=e.z;return l(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new he(i,o,r)};var vi=rl;function RIe(e,t,n){let i=!n,o=e.length,r;if(!i&&o>1){let s=e[0].modelMatrix;for(r=1;r=0){let u=i[a];o=u.offset+u.count,s=u.index,r=n[s].indices.length}else o=0,s=0,r=n[s].indices.length;let c=e.length;for(let u=0;ur&&(o=0,r=n[++s].indices.length),i.push({index:s,offset:o,count:p}),o+=p}}function NIe(e,t){let n=[];return S8(e,"geometry",t,n),S8(e,"westHemisphereGeometry",t,n),S8(e,"eastHemisphereGeometry",t,n),n}var ip={};ip.combineGeometry=function(e){let t,n,i=e.instances,o=i.length,r,s,a=!1;o>0&&(t=LIe(e),t.length>0&&(n=Nn.createAttributeLocations(t[0]),e.createPickOffsets&&(r=NIe(i,t))),l(i[0].attributes)&&l(i[0].attributes.offset)&&(s=new Array(o),a=!0));let c=new Array(o),u=new Array(o);for(let f=0;f0&&(n.set(c.indices,s),s+=h)}return t.push(n.buffer),{stringTable:i,packedData:n}};ip.unpackCreateGeometryResults=function(e){let t=e.stringTable,n=e.packedData,i,o=new Array(n[0]),r=0,s=1;for(;s0){let v=x.length/C;for(S=Ue.createTypedArray(v,A),i=0;i{t._completeLoad=(o,r,s)=>{this._error=s,this._state=r,o.afterRender.push(function(){if(t._ready=t._state===dr.COMPLETE||t._state===dr.FAILED,!l(s))return n(t),!0;i(s)})}}),this._batchTable=void 0,this._batchTableAttributeIndices=void 0,this._offsetInstanceExtend=void 0,this._batchTableOffsetAttribute2DIndex=void 0,this._batchTableOffsetsUpdated=!1,this._instanceBoundingSpheres=void 0,this._instanceBoundingSpheresCV=void 0,this._tempBoundingSpheres=void 0,this._recomputeBoundingSpheres=!1,this._batchTableBoundingSpheresUpdated=!1,this._batchTableBoundingSphereAttributeIndices=void 0}Object.defineProperties(mr.prototype,{vertexCacheOptimize:{get:function(){return this._vertexCacheOptimize}},interleave:{get:function(){return this._interleave}},releaseGeometryInstances:{get:function(){return this._releaseGeometryInstances}},allowPicking:{get:function(){return this._allowPicking}},asynchronous:{get:function(){return this._asynchronous}},compressVertices:{get:function(){return this._compressVertices}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Primitive.readyPromise","Primitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Primitive.ready to return true instead."),this._readyPromise}}});function GIe(e){let t=e.length,n=[],i=e[0].attributes,o;for(o in i)if(i.hasOwnProperty(o)&&l(i[o])){let r=i[o],s=!0;for(let a=1;a= nearSq && distanceSq <= farSq) ? 1.0 : 0.0; + gl_Position *= show; +}`,`${i} +${o}`};function z$(e,t){if(!e.compressVertices)return t;let n=t.search(/in\s+vec3\s+normal;/g)!==-1,i=t.search(/in\s+vec2\s+st;/g)!==-1;if(!n&&!i)return t;let o=t.search(/in\s+vec3\s+tangent;/g)!==-1,r=t.search(/in\s+vec3\s+bitangent;/g)!==-1,s=i&&n?2:1;s+=o||r?1:0;let a=s>1?`vec${s}`:"float",c="compressedAttributes",u=`in ${a} ${c};`,f="",d="";if(i){f+=`vec2 st; +`;let h=s>1?`${c}.x`:c;d+=` st = czm_decompressTextureCoordinates(${h}); +`}n&&o&&r?(f+=`vec3 normal; +vec3 tangent; +vec3 bitangent; +`,d+=` czm_octDecode(${c}.${i?"yz":"xy"}, normal, tangent, bitangent); +`):(n&&(f+=`vec3 normal; +`,d+=` normal = czm_octDecode(${c}${s>1?`.${i?"y":"x"}`:""}); +`),o&&(f+=`vec3 tangent; +`,d+=` tangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`),r&&(f+=`vec3 bitangent; +`,d+=` bitangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`));let p=t;p=p.replace(/in\s+vec3\s+normal;/g,""),p=p.replace(/in\s+vec2\s+st;/g,""),p=p.replace(/in\s+vec3\s+tangent;/g,""),p=p.replace(/in\s+vec3\s+bitangent;/g,""),p=He.replaceMain(p,"czm_non_compressed_main");let g=`void main() +{ +${d} czm_non_compressed_main(); +}`;return[u,f,p,g].join(` +`)}function ZIe(e){let t=He.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + gl_Position = czm_depthClamp(gl_Position);} +`,t}function QIe(e){let t=He.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + #if defined(LOG_DEPTH) + czm_writeLogDepth(); + #else + czm_writeDepthClamp(); + #endif +} +`,t}function H$(e,t){let n=e.vertexAttributes}function $Ie(e,t){return function(){return e[t]}}var w8=Math.max(Ht.hardwareConcurrency-1,1),eU,ePe=new hi("combineGeometry");function tPe(e,t){let n,i,o,r,s=e._instanceIds;if(e._state===dr.READY){n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let a=e._numberOfInstances=n.length,c=[],u=[];for(o=0;o0){let A=new Float64Array(d);for(h=[A.buffer],r=0;r0?(e._recomputeBoundingSpheres=!0,e._state=dr.COMBINED):XI(e,t,dr.FAILED,void 0)}).catch(function(d){XI(e,t,dr.FAILED,d)})}}function nPe(e,t){let n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances],i=e._numberOfInstances=n.length,o=new Array(i),r=e._instanceIds,s,a,c=0;for(a=0;a0?(e._recomputeBoundingSpheres=!0,e._state=dr.COMBINED):XI(e,t,dr.FAILED,void 0)}function iPe(e,t){let n=e._batchTableAttributeIndices.offset;if(!e._recomputeBoundingSpheres||!l(n)){e._recomputeBoundingSpheres=!1;return}let i,o=e._offsetInstanceExtend,r=e._instanceBoundingSpheres,s=r.length,a=e._tempBoundingSpheres;if(!l(a)){for(a=new Array(s),i=0;i0||ae.intersectPlane(A,un.ORIGIN_ZX_PLANE)!==$t.INTERSECTING?c.push(A):(u.push(A),f.push(A))}let d=c[0],p=f[0],g=u[0];for(i=1;i0){if(kt.maximumVertexTextureImageUnits===0)throw new de("Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero.");this._batchTable.update(e)}if(this._state!==dr.COMPLETE&&this._state!==dr.COMBINED&&(this.asynchronous?tPe(this,e):nPe(this,e)),this._state===dr.COMBINED&&(oPe(this,e),W$(this,e),sPe(this,e)),!this.show||this._state!==dr.COMPLETE)return;this._batchTableOffsetsUpdated||W$(this,e),this._recomputeBoundingSpheres&&iPe(this,e);let n=this.appearance,i=n.material,o=!1,r=!1;this._appearance!==n?(this._appearance=n,this._material=i,o=!0,r=!0):this._material!==i&&(this._material=i,r=!0);let s=this.depthFailAppearance,a=l(s)?s.material:void 0;this._depthFailAppearance!==s?(this._depthFailAppearance=s,this._depthFailMaterial=a,o=!0,r=!0):this._depthFailMaterial!==a&&(this._depthFailMaterial=a,r=!0);let c=this._appearance.isTranslucent();this._translucent!==c&&(this._translucent=c,o=!0),l(this._material)&&this._material.update(t);let u=n.closed&&c;o&&y(this._createRenderStatesFunction,aPe)(this,t,n,u),r&&y(this._createShaderProgramFunction,cPe)(this,e,n),(o||r)&&y(this._createCommandsFunction,lPe)(this,n,i,c,u,this._colorCommands,this._pickCommands,e),y(this._updateAndQueueCommandsFunction,uPe)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,u)};var fPe=new ae,dPe=new ae;function Q$(e,t,n){if(n===on.TOP){let i=ae.clone(e,fPe),o=ae.clone(e,dPe);o.center=m.add(o.center,t,o.center),e=ae.union(i,o,e)}else n===on.ALL&&(e.center=m.add(e.center,t,e.center));return e}function mPe(e,t,n){return function(){let i=e.getBatchedAttribute(t,n),o=e.attributes[n],r=o.componentsPerAttribute,s=X.createTypedArray(o.componentDatatype,r);return l(i.constructor.pack)?i.constructor.pack(i,s,0):s[0]=i,s}}function hPe(e,t,n,i,o){return function(r){let s=X$(r);e.setBatchedAttribute(t,n,s),o==="offset"&&(i._recomputeBoundingSpheres=!0,i._batchTableOffsetsUpdated=!1)}}var pPe=new m;function _Pe(e,t,n){t.boundingSphere={get:function(){let i=e._instanceBoundingSpheres[n];if(l(i)){i=i.clone();let o=e.modelMatrix,r=t.offset;l(r)&&Q$(i,m.fromArray(r.get(),0,pPe),e._offsetInstanceExtend[n]),l(o)&&(i=ae.transform(i,o))}return i}},t.boundingSphereCV={get:function(){return e._instanceBoundingSpheresCV[n]}}}function gPe(e,t,n){t.pickId={get:function(){return e._pickIds[n]}}}mr.prototype.getGeometryInstanceAttributes=function(e){let t=this._perInstanceAttributeCache.get(e);if(l(t))return t;let n=-1,i=this._lastPerInstanceAttributeIndex,o=this._instanceIds,r=o.length;for(let u=0;u 0.0 && upOrRightInBounds.x && upOrRightInBounds.y); + float useDownOrLeft = float(useUpOrRight == 0.0); + vec3 upOrRightEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY + positiveOffset, upOrRightLogDepth); + vec3 downOrLeftEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY - positiveOffset, downOrLeftLogDepth); + return (upOrRightEC - (eyeCoordinate.xyz / eyeCoordinate.w)) * useUpOrRight + ((eyeCoordinate.xyz / eyeCoordinate.w) - downOrLeftEC) * useDownOrLeft; +} +#endif // NORMAL_EC + +void main(void) +{ +#ifdef REQUIRES_EC + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)); + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); +#endif + +#ifdef REQUIRES_WC + vec4 worldCoordinate4 = czm_inverseView * eyeCoordinate; + vec3 worldCoordinate = worldCoordinate4.xyz / worldCoordinate4.w; +#endif + +#ifdef TEXTURE_COORDINATES + vec2 uv; +#ifdef SPHERICAL + // Treat world coords as a sphere normal for spherical coordinates + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(worldCoordinate); + sphericalLatLong.y += v_uvMinAndSphericalLongitudeRotation.z; + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + uv.x = (sphericalLatLong.y - v_sphericalExtents.y) * v_sphericalExtents.w; + uv.y = (sphericalLatLong.x - v_sphericalExtents.x) * v_sphericalExtents.z; +#else // SPHERICAL + // Unpack planes and transform to eye space + uv.x = czm_planeDistance(v_westPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.x; + uv.y = czm_planeDistance(v_southPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.y; +#endif // SPHERICAL +#endif // TEXTURE_COORDINATES + +#ifdef PICK +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + // Check for logDepthOrDepth != 0.0 to make sure this should be classified. + if (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0 || logDepthOrDepth != 0.0) { + out_FragColor.a = 1.0; // 0.0 alpha leads to discard from ShaderSource.createPickFragmentShaderSource + czm_writeDepthClamp(); + } +#else // CULL_FRAGMENTS + out_FragColor.a = 1.0; +#endif // CULL_FRAGMENTS +#else // PICK + +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || logDepthOrDepth == 0.0) { + discard; + } +#endif + +#ifdef NORMAL_EC + // Compute normal by sampling adjacent pixels in 2x2 block in screen space + vec3 downUp = vectorFromOffset(eyeCoordinate, vec2(0.0, 1.0)); + vec3 leftRight = vectorFromOffset(eyeCoordinate, vec2(1.0, 0.0)); + vec3 normalEC = normalize(cross(leftRight, downUp)); +#endif + + +#ifdef PER_INSTANCE_COLOR + + vec4 color = czm_gammaCorrect(v_color); +#ifdef FLAT + out_FragColor = color; +#else // FLAT + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = -eyeCoordinate.xyz; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#else // PER_INSTANCE_COLOR + + // Material support. + // USES_ is distinct from REQUIRES_, because some things are dependencies of each other or + // dependencies for culling but might not actually be used by the material. + + czm_materialInput materialInput; + +#ifdef USES_NORMAL_EC + materialInput.normalEC = normalEC; +#endif + +#ifdef USES_POSITION_TO_EYE_EC + materialInput.positionToEyeEC = -eyeCoordinate.xyz; +#endif + +#ifdef USES_TANGENT_TO_EYE + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(worldCoordinate, normalEC); +#endif + +#ifdef USES_ST + // Remap texture coordinates from computed (approximately aligned with cartographic space) to the desired + // texture coordinate system, which typically forms a tight oriented bounding box around the geometry. + // Shader is provided a set of reference points for remapping. + materialInput.st.x = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_uMaxAndInverseDistance.xy, uv) * v_uMaxAndInverseDistance.z; + materialInput.st.y = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_vMaxAndInverseDistance.xy, uv) * v_vMaxAndInverseDistance.z; +#endif + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else // FLAT + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#endif // PER_INSTANCE_COLOR + czm_writeDepthClamp(); +#endif // PICK +} +`;function Xu(e,t,n){this._projectionExtentDefines={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};let i=new D8;i.requiresTextureCoordinates=e,i.requiresEC=!n.flat;let o=new D8;if(o.requiresTextureCoordinates=e,n instanceof rn)i.requiresNormalEC=!n.flat;else{let r=`${n.material.shaderSource} +${n.fragmentShaderSource}`;i.normalEC=r.indexOf("materialInput.normalEC")!==-1||r.indexOf("czm_getDefaultMaterial")!==-1,i.positionToEyeEC=r.indexOf("materialInput.positionToEyeEC")!==-1,i.tangentToEyeMatrix=r.indexOf("materialInput.tangentToEyeMatrix")!==-1,i.st=r.indexOf("materialInput.st")!==-1}this._colorShaderDependencies=i,this._pickShaderDependencies=o,this._appearance=n,this._extentsCulling=e,this._planarExtents=t}Xu.prototype.createFragmentShader=function(e){let t=this._appearance,n=this._colorShaderDependencies,i=[];!e&&!this._planarExtents&&i.push("SPHERICAL"),n.requiresEC&&i.push("REQUIRES_EC"),n.requiresWC&&i.push("REQUIRES_WC"),n.requiresTextureCoordinates&&i.push("TEXTURE_COORDINATES"),this._extentsCulling&&i.push("CULL_FRAGMENTS"),n.requiresNormalEC&&i.push("NORMAL_EC"),t instanceof rn&&i.push("PER_INSTANCE_COLOR"),n.normalEC&&i.push("USES_NORMAL_EC"),n.positionToEyeEC&&i.push("USES_POSITION_TO_EYE_EC"),n.tangentToEyeMatrix&&i.push("USES_TANGENT_TO_EYE"),n.st&&i.push("USES_ST"),t.flat&&i.push("FLAT");let o="";return t instanceof rn||(o=t.material.shaderSource),new He({defines:i,sources:[o,_T]})};Xu.prototype.createPickFragmentShader=function(e){let t=this._pickShaderDependencies,n=["PICK"];return!e&&!this._planarExtents&&n.push("SPHERICAL"),t.requiresEC&&n.push("REQUIRES_EC"),t.requiresWC&&n.push("REQUIRES_WC"),t.requiresTextureCoordinates&&n.push("TEXTURE_COORDINATES"),this._extentsCulling&&n.push("CULL_FRAGMENTS"),new He({defines:n,sources:[_T],pickColorQualifier:"in"})};Xu.prototype.createVertexShader=function(e,t,n,i){return see(this._colorShaderDependencies,this._planarExtents,n,e,t,this._appearance,i,this._projectionExtentDefines)};Xu.prototype.createPickVertexShader=function(e,t,n,i){return see(this._pickShaderDependencies,this._planarExtents,n,e,t,void 0,i,this._projectionExtentDefines)};var $$=new m,eee=new he,tee={high:0,low:0};function see(e,t,n,i,o,r,s,a){let c=i.slice();if(a.eastMostYhighDefine===""){let u=eee;u.longitude=P.PI,u.latitude=0,u.height=0;let f=s.project(u,$$),d=Wn.encode(f.x,tee);a.eastMostYhighDefine=`EAST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.eastMostYlowDefine=`EAST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`;let p=eee;p.longitude=-P.PI,p.latitude=0,p.height=0;let g=s.project(p,$$);d=Wn.encode(g.x,tee),a.westMostYhighDefine=`WEST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.westMostYlowDefine=`WEST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`}return n&&(c.push(a.eastMostYhighDefine),c.push(a.eastMostYlowDefine),c.push(a.westMostYhighDefine),c.push(a.westMostYlowDefine)),l(r)&&r instanceof rn&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||n||c.push("SPHERICAL"),n&&c.push("COLUMBUS_VIEW_2D")),new He({defines:c,sources:[o]})}function D8(){this._requiresEC=!1,this._requiresWC=!1,this._requiresNormalEC=!1,this._requiresTextureCoordinates=!1,this._usesNormalEC=!1,this._usesPositionToEyeEC=!1,this._usesTangentToEyeMat=!1,this._usesSt=!1}Object.defineProperties(D8.prototype,{requiresEC:{get:function(){return this._requiresEC},set:function(e){this._requiresEC=e||this._requiresEC}},requiresWC:{get:function(){return this._requiresWC},set:function(e){this._requiresWC=e||this._requiresWC,this.requiresEC=this._requiresWC}},requiresNormalEC:{get:function(){return this._requiresNormalEC},set:function(e){this._requiresNormalEC=e||this._requiresNormalEC,this.requiresEC=this._requiresNormalEC}},requiresTextureCoordinates:{get:function(){return this._requiresTextureCoordinates},set:function(e){this._requiresTextureCoordinates=e||this._requiresTextureCoordinates,this.requiresWC=this._requiresTextureCoordinates}},normalEC:{set:function(e){this.requiresNormalEC=e,this._usesNormalEC=e},get:function(){return this._usesNormalEC}},tangentToEyeMatrix:{set:function(e){this.requiresWC=e,this.requiresNormalEC=e,this._usesTangentToEyeMat=e},get:function(){return this._usesTangentToEyeMat}},positionToEyeEC:{set:function(e){this.requiresEC=e,this._usesPositionToEyeEC=e},get:function(){return this._usesPositionToEyeEC}},st:{set:function(e){this.requiresTextureCoordinates=e,this._usesSt=e},get:function(){return this._usesSt}}});function nee(e,t,n){return Math.abs((t.y-e.y)*n.x-(t.x-e.x)*n.y+t.x*e.y-t.y*e.x)/H.distance(t,e)}var APe=[new H,new H,new H,new H];function aee(e,t){let n=APe,i=H.unpack(t,0,n[0]),o=H.unpack(t,2,n[1]),r=H.unpack(t,4,n[2]);e.uMaxVmax=new Ha({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[o.x,o.y,r.x,r.y]});let s=1/nee(i,o,r),a=1/nee(i,r,o);e.uvMinAndExtents=new Ha({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[i.x,i.y,s,a]})}var cee=new he,lee=new m,xPe=new m,CPe=new m,tU={high:0,low:0};function uee(e,t,n){let i=cee;i.height=0,i.longitude=e.west,i.latitude=e.south;let o=t.project(i,lee);i.latitude=e.north;let r=t.project(i,xPe);i.longitude=e.east,i.latitude=e.south;let s=t.project(i,CPe),a=[0,0,0,0],c=[0,0,0,0],u=Wn.encode(o.x,tU);a[0]=u.high,c[0]=u.low,u=Wn.encode(o.y,tU),a[1]=u.high,c[1]=u.low,u=Wn.encode(r.y,tU),a[2]=u.high,c[2]=u.low,u=Wn.encode(s.x,tU),a[3]=u.high,c[3]=u.low,n.planes2D_HIGH=new Ha({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:a}),n.planes2D_LOW=new Ha({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:c})}var TPe=new B,EPe=new B,iee=new m,bPe=new he,SPe=[new he,new he,new he,new he,new he,new he,new he,new he];function wPe(e,t,n,i,o,r){let s=le.center(e,bPe);s.height=n;let a=he.toCartesian(s,t,iee),c=Rt.eastNorthUpToFixedFrame(a,t,TPe),u=B.inverse(c,EPe),f=e.west,d=e.east,p=e.north,g=e.south,h=SPe;h[0].latitude=g,h[0].longitude=f,h[1].latitude=p,h[1].longitude=f,h[2].latitude=p,h[2].longitude=d,h[3].latitude=g,h[3].longitude=d;let A=(f+d)*.5,x=(p+g)*.5;h[4].latitude=g,h[4].longitude=A,h[5].latitude=p,h[5].longitude=A,h[6].latitude=x,h[6].longitude=f,h[7].latitude=x,h[7].longitude=d;let C=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY,E=Number.POSITIVE_INFINITY,S=Number.NEGATIVE_INFINITY;for(let M=0;M<8;M++){h[M].height=n;let L=he.toCartesian(h[M],t,iee);B.multiplyByPoint(u,L,L),L.z=0,C=Math.min(C,L.x),T=Math.max(T,L.x),E=Math.min(E,L.y),S=Math.max(S,L.y)}let v=i;v.x=C,v.y=E,v.z=0,B.multiplyByPoint(c,v,v);let D=o;D.x=T,D.y=E,D.z=0,B.multiplyByPoint(c,D,D),m.subtract(D,v,o);let O=r;O.x=C,O.y=S,O.z=0,B.multiplyByPoint(c,O,O),m.subtract(O,v,r)}var vPe=new m,DPe=new m,IPe=new Wn;Xu.getPlanarTextureCoordinateAttributes=function(e,t,n,i,o){let r=lee,s=vPe,a=DPe;wPe(e,n,y(o,0),r,s,a);let c={};aee(c,t);let u=Wn.fromCartesian(r,IPe);return c.southWest_HIGH=new Ha({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:m.pack(u.high,[0,0,0])}),c.southWest_LOW=new Ha({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:m.pack(u.low,[0,0,0])}),c.eastward=new Ha({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:m.pack(s,[0,0,0])}),c.northward=new Ha({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:m.pack(a,[0,0,0])}),uee(e,i,c),c};var PPe=new m;function oee(e,t,n,i){let o=cee;o.latitude=e,o.longitude=t,o.height=0;let r=he.toCartesian(o,n,PPe),s=Math.sqrt(r.x*r.x+r.y*r.y),a=P.fastApproximateAtan2(s,r.z),c=P.fastApproximateAtan2(r.x,r.y);return i.x=a,i.y=c,i}var ree=new H;Xu.getSphericalExtentGeometryInstanceAttributes=function(e,t,n,i){let o=oee(e.south,e.west,n,ree),r=o.x,s=o.y,a=oee(e.north,e.east,n,ree),c=a.x,u=a.y,f=0;s>u&&(f=P.PI-s,s=-P.PI,u+=f),r-=P.EPSILON5,s-=P.EPSILON5,c+=P.EPSILON5,u+=P.EPSILON5;let d=1/(u-s),p=1/(c-r),g={sphericalExtents:new Ha({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[r,s,p,d]}),longitudeRotation:new Ha({componentDatatype:X.FLOAT,componentsPerAttribute:1,normalize:!1,value:[f]})};return aee(g,t),uee(e,i,g),g};Xu.hasAttributesForTextureCoordinatePlanes=function(e){return l(e.southWest_HIGH)&&l(e.southWest_LOW)&&l(e.northward)&&l(e.eastward)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};Xu.hasAttributesForSphericalExtents=function(e){return l(e.sphericalExtents)&&l(e.longitudeRotation)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};function OPe(e){return Math.max(e.width,e.height)>Xu.MAX_WIDTH_FOR_PLANAR_EXTENTS}Xu.shouldUseSphericalCoordinates=function(e){return OPe(e)};Xu.MAX_WIDTH_FOR_PLANAR_EXTENTS=P.toRadians(1);var ql=Xu;var MPe={NEVER:te.NEVER,LESS:te.LESS,EQUAL:te.EQUAL,LESS_OR_EQUAL:te.LEQUAL,GREATER:te.GREATER,NOT_EQUAL:te.NOTEQUAL,GREATER_OR_EQUAL:te.GEQUAL,ALWAYS:te.ALWAYS},Hn=Object.freeze(MPe);var RPe={ZERO:te.ZERO,KEEP:te.KEEP,REPLACE:te.REPLACE,INCREMENT:te.INCR,DECREMENT:te.DECR,INVERT:te.INVERT,INCREMENT_WRAP:te.INCR_WRAP,DECREMENT_WRAP:te.DECR_WRAP},ht=Object.freeze(RPe);var nU={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};nU.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:Hn.ALWAYS,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.REPLACE},backFunction:Hn.ALWAYS,backOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.REPLACE},reference:nU.CESIUM_3D_TILE_MASK,mask:nU.CESIUM_3D_TILE_MASK}};var Ft=Object.freeze(nU);function X0(e){e=y(e,y.EMPTY_OBJECT);let t=e.geometryInstances;this.geometryInstances=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,zn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._debugShowShadowVolume=!1,this._extruded=y(e._extruded,!1),this._uniformMap=e._uniformMap,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._spColor=void 0,this._spPick2D=void 0,this._spColor2D=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._commandsIgnoreShow=[],this._ready=!1;let n=this;this._readyPromise=new Promise((i,o)=>{n._completeLoad=()=>{if(this._ready)return;this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0);let r=this._error;l(r)?o(r):i(this)}}),this._primitive=void 0,this._pickPrimitive=e._pickPrimitive,this._hasSphericalExtentsAttribute=!1,this._hasPlanarExtentsAttributes=!1,this._hasPerColorAttribute=!1,this.appearance=e.appearance,this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._usePickOffsets=!1,this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_createRenderStatesFunction:void 0,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0,_createPickOffsets:!0}}Object.defineProperties(X0.prototype,{vertexCacheOptimize:{get:function(){return this._primitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},compressVertices:{get:function(){return this._primitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("ClassificationPrimitive.readyPromise","ClassificationPrimitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for ClassificationPrimitive.ready to return true instead."),this._readyPromise}},_needs2DShader:{get:function(){return this._hasPlanarExtentsAttributes||this._hasSphericalExtentsAttribute}}});X0.isSupported=function(e){return e.context.stencilBuffer};function gT(e,t){let n=t?Hn.EQUAL:Hn.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:e,frontFunction:n,frontOperation:{fail:ht.KEEP,zFail:ht.DECREMENT_WRAP,zPass:ht.KEEP},backFunction:n,backOperation:{fail:ht.KEEP,zFail:ht.INCREMENT_WRAP,zPass:ht.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:za.LESS_OR_EQUAL},depthMask:!1}}function P8(e){return{stencilTest:{enabled:e,frontFunction:Hn.NOT_EQUAL,frontOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},backFunction:Hn.NOT_EQUAL,backOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:mn.PRE_MULTIPLIED_ALPHA_BLEND}}var BPe={stencilTest:{enabled:!0,frontFunction:Hn.NOT_EQUAL,frontOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},backFunction:Hn.NOT_EQUAL,backOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function LPe(e,t,n,i){if(l(e._rsStencilDepthPass))return;let o=!e.debugShowShadowVolume;e._rsStencilDepthPass=ze.fromCache(gT(o,!1)),e._rsStencilDepthPass3DTiles=ze.fromCache(gT(o,!0)),e._rsColorPass=ze.fromCache(P8(o,!1)),e._rsPickPass=ze.fromCache(BPe)}function NPe(e,t){if(!e.compressVertices)return t;if(t.search(/in\s+vec3\s+extrudeDirection;/g)!==-1){let n="compressedAttributes",i=`in vec2 ${n};`,o=`vec3 extrudeDirection; +`,r=` extrudeDirection = czm_octDecode(${n}, 65535.0); +`,s=t;s=s.replace(/in\s+vec3\s+extrudeDirection;/g,""),s=He.replaceMain(s,"czm_non_compressed_main");let a=`void main() +{ +${r} czm_non_compressed_main(); +}`;return[i,o,s,a].join(` +`)}}function FPe(e,t){let n=t.context,i=e._primitive,o=VI;o=e._primitive._batchTable.getVertexShaderCallback()(o),o=wn._appendDistanceDisplayConditionToShader(i,o),o=wn._modifyShaderPosition(e,o,t.scene3DOnly),o=wn._updateColorAttribute(i,o);let r=e._hasPlanarExtentsAttributes,s=r||e._hasSphericalExtentsAttribute;e._extruded&&(o=NPe(i,o));let a=e._extruded?"EXTRUDED_GEOMETRY":"",c=new He({defines:[a],sources:[o]}),u=new He({sources:[ag]}),f=e._primitive._attributeLocations,d=new ql(s,r,e.appearance);if(e._spStencil=Kt.replaceCache({context:n,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f}),e._primitive.allowPicking){let h=He.createPickVertexShaderSource(o);h=wn._appendShowToShader(i,h),h=wn._updatePickColorAttribute(h);let A=d.createPickFragmentShader(!1),x=d.createPickVertexShader([a],h,!1,t.mapProjection);if(e._spPick=Kt.replaceCache({context:n,shaderProgram:e._spPick,vertexShaderSource:x,fragmentShaderSource:A,attributeLocations:f}),s){let C=n.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!l(C)){let T=d.createPickFragmentShader(!0),E=d.createPickVertexShader([a],h,!0,t.mapProjection);C=n.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:E,fragmentShaderSource:T,attributeLocations:f})}e._spPick2D=C}}else e._spPick=Kt.fromCache({context:n,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f});o=wn._appendShowToShader(i,o),c=new He({defines:[a],sources:[o]}),e._sp=Kt.replaceCache({context:n,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f});let p=d.createFragmentShader(!1),g=d.createVertexShader([a],o,!1,t.mapProjection);if(e._spColor=Kt.replaceCache({context:n,shaderProgram:e._spColor,vertexShaderSource:g,fragmentShaderSource:p,attributeLocations:f}),s){let h=n.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!l(h)){let A=d.createFragmentShader(!0),x=d.createVertexShader([a],o,!0,t.mapProjection);h=n.shaderCache.createDerivedShaderProgram(e._spColor,"2dColor",{vertexShaderSource:x,fragmentShaderSource:A,attributeLocations:f})}e._spColor2D=h}}function UPe(e,t){let n=e._primitive,i=n._va.length*2;t.length=i;let o,r,s,a=0,c=n._batchTable.getUniformMapCallback()(e._uniformMap),u=e._needs2DShader;for(o=0;o0&&(c=o[0].attributes,p=ql.hasAttributesForSphericalExtents(c),g=ql.hasAttributesForTextureCoordinatePlanes(c),d=c.color),s=0;s{l(this._primitive)&&this._primitive.ready&&this._completeLoad()})};X0.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};X0.prototype.isDestroyed=function(){return!1};X0.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._spColor=this._spColor&&this._spColor.destroy(),this._spPick2D=void 0,this._spColor2D=void 0,ue(this)};var yT=X0;var HPe={u_globeMinimumAltitude:function(){return 55e3}};function sl(e){e=y(e,y.EMPTY_OBJECT);let t=e.appearance,n=e.geometryInstances;if(!l(t)&&l(n)){let r=Array.isArray(n)?n:[n],s=r.length;for(let a=0;a{i._completeLoad=()=>{if(this._ready)return;this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0);let a=this._error;l(a)?s(a):r(this)}}),this._primitive=void 0,this._maxHeight=void 0,this._minHeight=void 0,this._maxTerrainHeight=ri._defaultMaxTerrainHeight,this._minTerrainHeight=ri._defaultMinTerrainHeight,this._boundingSpheresKeys=[],this._boundingSpheres=[],this._useFragmentCulling=!1,this._zIndex=void 0;let o=this;this._classificationPrimitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_updateAndQueueCommandsFunction:void 0,_pickPrimitive:o,_extruded:!0,_uniformMap:HPe}}Object.defineProperties(sl.prototype,{vertexCacheOptimize:{get:function(){return this._classificationPrimitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._classificationPrimitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._classificationPrimitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._classificationPrimitiveOptions.allowPicking}},asynchronous:{get:function(){return this._classificationPrimitiveOptions.asynchronous}},compressVertices:{get:function(){return this._classificationPrimitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("GroundPrimitive.readyPromise","GroundPrimitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for GroundPrimitive.ready to return true instead."),this._readyPromise}}});sl.isSupported=yT.isSupported;function mee(e){return function(t,n){let i=n.maximumRadius,o=i/Math.cos(t*.5)-i;return e._maxHeight+o}}function hee(e){return function(t,n){return e._minHeight}}var GPe=new m,WPe=new m,jPe=new m,YPe=new he,qPe=new le;function iU(e,t){let n=e.mapProjection.ellipsoid;if(!l(t.attributes)||!l(t.attributes.position3DHigh))return l(t.rectangle)?t.rectangle:void 0;let i=t.attributes.position3DHigh.values,o=t.attributes.position3DLow.values,r=i.length,s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,u=Number.NEGATIVE_INFINITY;for(let d=0;d{!this._ready&&l(this._primitive)&&this._primitive.ready&&this._completeLoad()})};sl.prototype.getBoundingSphere=function(e){let t=this._boundingSpheresKeys.indexOf(e);if(t!==-1)return this._boundingSpheres[t]};sl.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};sl.prototype.isDestroyed=function(){return!1};sl.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};sl._supportsMaterials=function(e){return e.depthTexture};sl.supportsMaterials=function(e){return sl._supportsMaterials(e.frameState.context)};var bc=sl;function AT(){fe.throwInstantiationError()}Object.defineProperties(AT.prototype,{isConstant:{get:fe.throwInstantiationError},definitionChanged:{get:fe.throwInstantiationError}});AT.prototype.getType=fe.throwInstantiationError;AT.prototype.getValue=fe.throwInstantiationError;AT.prototype.equals=fe.throwInstantiationError;AT.getValue=function(e,t,n){let i;return l(t)&&(i=t.getType(e),l(i))?((!l(n)||n.type!==i)&&(n=ki.fromType(i)),t.getValue(e,n.uniforms),n):((!l(n)||n.type!==ki.ColorType)&&(n=ki.fromType(ki.ColorType)),z.clone(z.WHITE,n.uniforms.color),n)};var jo=AT;function K0(e,t,n){this._primitives=t,this._orderedGroundPrimitives=n,this._primitive=void 0,this._outlinePrimitive=void 0,this._geometryUpdater=e,this._options=e._options,this._entity=e._entity,this._material=void 0}K0.prototype._isHidden=function(e,t,n){return!e.isShowing||!e.isAvailable(n)||!j.getValueOrDefault(t.show,n,!0)};K0.prototype._setOptions=fe.throwInstantiationError;K0.prototype.update=function(e){let t=this._geometryUpdater,n=t._onTerrain,i=this._primitives,o=this._orderedGroundPrimitives;n?o.remove(this._primitive):(i.removeAndDestroy(this._primitive),i.removeAndDestroy(this._outlinePrimitive),this._outlinePrimitive=void 0),this._primitive=void 0;let r=this._entity,s=r[this._geometryUpdater._geometryPropertyName];if(this._setOptions(r,s,e),this._isHidden(r,s,e))return;let a=this._geometryUpdater.shadowsProperty.getValue(e),c=this._options;if(!l(s.fill)||s.fill.getValue(e)){let u=t.fillMaterialProperty,f=u instanceof Ut,d,p=t._getIsClosed(c);if(f)d=new rn({closed:p,flat:n&&!t._supportsMaterialsforEntitiesOnTerrain});else{let g=jo.getValue(e,u,this._material);this._material=g,d=new ro({material:g,translucent:g.isTranslucent(),closed:p})}if(n)c.vertexFormat=rn.VERTEX_FORMAT,this._primitive=o.add(new bc({geometryInstances:this._geometryUpdater.createFillGeometryInstance(e),appearance:d,asynchronous:!1,shadows:a,classificationType:this._geometryUpdater.classificationTypeProperty.getValue(e)}),j.getValueOrUndefined(this._geometryUpdater.zIndex,e));else{c.vertexFormat=d.vertexFormat;let g=this._geometryUpdater.createFillGeometryInstance(e);f&&(d.translucent=g.attributes.color.value[3]!==255),this._primitive=i.add(new wn({geometryInstances:g,appearance:d,asynchronous:!1,shadows:a}))}}if(!n&&l(s.outline)&&s.outline.getValue(e)){let u=this._geometryUpdater.createOutlineGeometryInstance(e),f=j.getValueOrDefault(s.outlineWidth,e,1);this._outlinePrimitive=i.add(new wn({geometryInstances:u,appearance:new rn({flat:!0,translucent:u.attributes.color.value[3]!==255,renderState:{lineWidth:t._scene.clampLineWidth(f)}}),asynchronous:!1,shadows:a}))}};K0.prototype.getBoundingSphere=function(e){let t=this._entity,n=this._primitive,i=this._outlinePrimitive,o;return l(n)&&n.show&&n.ready&&(o=n.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(ae.clone(o.boundingSphere,e),ut.DONE):l(i)&&i.show&&i.ready&&(o=i.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(ae.clone(o.boundingSphere,e),ut.DONE):l(n)&&!n.ready||l(i)&&!i.ready?ut.PENDING:ut.FAILED};K0.prototype.isDestroyed=function(){return!1};K0.prototype.destroy=function(){let e=this._primitives,t=this._orderedGroundPrimitives;this._geometryUpdater._onTerrain?t.remove(this._primitive):e.removeAndDestroy(this._primitive),e.removeAndDestroy(this._outlinePrimitive),ue(this)};var si=K0;var ZPe={NONE:0,GEODESIC:1,RHUMB:2},Jt=Object.freeze(ZPe);var _ee=P.EPSILON10;function QPe(e,t,n,i){if(!l(e))return;n=y(n,!1);let o=l(i),r=e.length;if(r<2)return e;let s,a=e[0],c,u,f=0,d=-1;for(s=1;sP.EPSILON12);let b=N*(t*t-n*n)/(n*n),w=1+b*(4096+b*(b*(320-175*b)-768))/16384,I=b*(256+b*(b*(74-47*b)-128))/1024,R=_*_,F=I*L*(_+I*(M*(2*R-1)-I*_*(4*L*L-3)*(4*R-3)/6)/4),k=n*w*(O-F),V=Math.atan2(g*D,x-T*v),G=Math.atan2(d*D,x*v-T);e._distance=k,e._startHeading=V,e._endHeading=G,e._uSquared=b}var n1e=new m,R8=new m;function yee(e,t,n,i){let o=m.normalize(i.cartographicToCartesian(t,R8),n1e),r=m.normalize(i.cartographicToCartesian(n,R8),R8);t1e(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude),e._start=he.clone(t,e._start),e._end=he.clone(n,e._end),e._start.height=0,e._end.height=0,$Pe(e)}function KI(e,t,n){let i=y(n,oe.WGS84);this._ellipsoid=i,this._start=new he,this._end=new he,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,l(e)&&l(t)&&yee(this,e,t,i)}Object.defineProperties(KI.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}});KI.prototype.setEndPoints=function(e,t){yee(this,e,t,this._ellipsoid)};KI.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)};KI.prototype.interpolateUsingSurfaceDistance=function(e,t){let n=this._constants,i=n.distanceRatio+e/n.b,o=Math.cos(2*i),r=Math.cos(4*i),s=Math.cos(6*i),a=Math.sin(2*i),c=Math.sin(4*i),u=Math.sin(6*i),f=Math.sin(8*i),d=i*i,p=i*d,g=n.u8Over256,h=n.u2Over4,A=n.u6Over64,x=n.u4Over16,C=2*p*g*o/3+i*(1-h+7*x/4-15*A/4+579*g/64-(x-15*A/4+187*g/16)*o-(5*A/4-115*g/16)*r-29*g*s/16)+(h/2-x+71*A/32-85*g/16)*a+(5*x/16-5*A/4+383*g/96)*c-d*((A-11*g/2)*a+5*g*c/2)+(29*A/96-29*g/16)*u+539*g*f/1536,T=Math.asin(Math.sin(C)*n.cosineAlpha),E=Math.atan(n.a/n.b*Math.tan(T));C=C-n.sigma;let S=Math.cos(2*n.sigma+C),v=Math.sin(C),D=Math.cos(C),O=n.cosineU*D,M=n.sineU*v,N=Math.atan2(v*n.sineHeading,O-M*n.cosineHeading)-gee(n.f,n.sineAlpha,n.cosineSquaredAlpha,C,v,D,S);return l(t)?(t.longitude=this._start.longitude+N,t.latitude=E,t.height=0,t):new he(this._start.longitude+N,E,0)};var Ku=KI;function L8(e,t,n){if(e===0)return t*n;let i=e*e,o=i*i,r=o*i,s=r*i,a=s*i,c=a*i,u=n,f=Math.sin(2*u),d=Math.sin(4*u),p=Math.sin(6*u),g=Math.sin(8*u),h=Math.sin(10*u),A=Math.sin(12*u);return t*((1-i/4-3*o/64-5*r/256-175*s/16384-441*a/65536-4851*c/1048576)*u-(3*i/8+3*o/32+45*r/1024+105*s/4096+2205*a/131072+6237*c/524288)*f+(15*o/256+45*r/1024+525*s/16384+1575*a/65536+155925*c/8388608)*d-(35*r/3072+175*s/12288+3675*a/262144+13475*c/1048576)*p+(315*s/131072+2205*a/524288+43659*c/8388608)*g-(693*a/1310720+6237*c/5242880)*h+1001*c/8388608*A)}function i1e(e,t,n){let i=e/n;if(t===0)return i;let o=i*i,r=o*i,s=r*i,a=t,c=a*a,u=c*c,f=u*c,d=f*c,p=d*c,g=p*c,h=Math.sin(2*i),A=Math.cos(2*i),x=Math.sin(4*i),C=Math.cos(4*i),T=Math.sin(6*i),E=Math.cos(6*i),S=Math.sin(8*i),v=Math.cos(8*i),D=Math.sin(10*i),O=Math.cos(10*i),M=Math.sin(12*i);return i+i*c/4+7*i*u/64+15*i*f/256+579*i*d/16384+1515*i*p/65536+16837*i*g/1048576+(3*i*u/16+45*i*f/256-i*(32*o-561)*d/4096-i*(232*o-1677)*p/16384+i*(399985-90560*o+512*s)*g/5242880)*A+(21*i*f/256+483*i*d/4096-i*(224*o-1969)*p/16384-i*(33152*o-112599)*g/1048576)*C+(151*i*d/4096+4681*i*p/65536+1479*i*g/16384-453*r*g/32768)*E+(1097*i*p/65536+42783*i*g/1048576)*v+8011*i*g/1048576*O+(3*c/8+3*u/16+213*f/2048-3*o*f/64+255*d/4096-33*o*d/512+20861*p/524288-33*o*p/512+s*p/1024+28273*g/1048576-471*o*g/8192+9*s*g/4096)*h+(21*u/256+21*f/256+533*d/8192-21*o*d/512+197*p/4096-315*o*p/4096+584039*g/16777216-12517*o*g/131072+7*s*g/2048)*x+(151*f/6144+151*d/4096+5019*p/131072-453*o*p/16384+26965*g/786432-8607*o*g/131072)*T+(1097*d/131072+1097*p/65536+225797*g/10485760-1097*o*g/65536)*S+(8011*p/2621440+8011*g/1048576)*D+293393*g/251658240*M}function xT(e,t){if(e===0)return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)));let n=e*Math.sin(t);return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function o1e(e,t,n,i,o){let r=xT(e._ellipticity,n),s=xT(e._ellipticity,o);return Math.atan2(P.negativePiToPi(i-t),s-r)}function r1e(e,t,n,i,o,r,s){let a=e._heading,c=r-i,u=0;if(P.equalsEpsilon(Math.abs(a),P.PI_OVER_TWO,P.EPSILON8))if(t===n)u=t*Math.cos(o)*P.negativePiToPi(c);else{let f=Math.sin(o);u=t*Math.cos(o)*P.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*f*f)}else{let f=L8(e._ellipticity,t,o);u=(L8(e._ellipticity,t,s)-f)/Math.cos(a)}return Math.abs(u)}var s1e=new m,B8=new m;function Aee(e,t,n,i){let o=m.normalize(i.cartographicToCartesian(t,B8),s1e),r=m.normalize(i.cartographicToCartesian(n,B8),B8),s=i.maximumRadius,a=i.minimumRadius,c=s*s,u=a*a;e._ellipticitySquared=(c-u)/c,e._ellipticity=Math.sqrt(e._ellipticitySquared),e._start=he.clone(t,e._start),e._start.height=0,e._end=he.clone(n,e._end),e._end.height=0,e._heading=o1e(e,t.longitude,t.latitude,n.longitude,n.latitude),e._distance=r1e(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude)}function xee(e,t,n,i,o,r){if(n===0)return he.clone(e,r);let s=o*o,a,c,u;if(Math.abs(P.PI_OVER_TWO-Math.abs(t))>P.EPSILON8){let f=L8(o,i,e.latitude),d=n*Math.cos(t),p=f+d;c=i1e(p,o,i);let g=xT(o,e.latitude),h=xT(o,c);u=Math.tan(t)*(h-g),a=P.negativePiToPi(e.longitude+u)}else{c=e.latitude;let f;if(o===0)f=i*Math.cos(e.latitude);else{let d=Math.sin(e.latitude);f=i*Math.cos(e.latitude)/Math.sqrt(1-s*d*d)}u=n/f,t>0?a=P.negativePiToPi(e.longitude+u):a=P.negativePiToPi(e.longitude-u)}return l(r)?(r.longitude=a,r.latitude=c,r.height=0,r):new he(a,c,0)}function op(e,t,n){let i=y(n,oe.WGS84);this._ellipsoid=i,this._start=new he,this._end=new he,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,l(e)&&l(t)&&Aee(this,e,t,i)}Object.defineProperties(op.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}});op.fromStartHeadingDistance=function(e,t,n,i,o){let r=y(i,oe.WGS84),s=r.maximumRadius,a=r.minimumRadius,c=s*s,u=a*a,f=Math.sqrt((c-u)/c);t=P.negativePiToPi(t);let d=xee(e,t,n,r.maximumRadius,f);return!l(o)||l(i)&&!i.equals(o.ellipsoid)?new op(e,d,r):(o.setEndPoints(e,d),o)};op.prototype.setEndPoints=function(e,t){Aee(this,e,t,this._ellipsoid)};op.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)};op.prototype.interpolateUsingSurfaceDistance=function(e,t){return xee(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)};op.prototype.findIntersectionWithLongitude=function(e,t){let n=this._ellipticity,i=this._heading,o=Math.abs(i),r=this._start;if(e=P.negativePiToPi(e),P.equalsEpsilon(Math.abs(e),Math.PI,P.EPSILON14)&&(e=P.sign(r.longitude)*Math.PI),l(t)||(t=new he),Math.abs(P.PI_OVER_TWO-o)<=P.EPSILON8)return t.longitude=e,t.latitude=r.latitude,t.height=0,t;if(P.equalsEpsilon(Math.abs(P.PI_OVER_TWO-o),P.PI_OVER_TWO,P.EPSILON8))return P.equalsEpsilon(e,r.longitude,P.EPSILON12)?void 0:(t.longitude=e,t.latitude=P.PI_OVER_TWO*P.sign(P.PI_OVER_TWO-i),t.height=0,t);let s=r.latitude,a=n*Math.sin(s),c=Math.tan(.5*(P.PI_OVER_TWO+s))*Math.exp((e-r.longitude)/Math.tan(i)),u=(1+a)/(1-a),f=r.latitude,d;do{d=f;let p=n*Math.sin(d),g=(1+p)/(1-p);f=2*Math.atan(c*Math.pow(g/u,n/2))-P.PI_OVER_TWO}while(!P.equalsEpsilon(f,d,P.EPSILON12));return t.longitude=e,t.latitude=f,t.height=0,t};op.prototype.findIntersectionWithLatitude=function(e,t){let n=this._ellipticity,i=this._heading,o=this._start;if(P.equalsEpsilon(Math.abs(i),P.PI_OVER_TWO,P.EPSILON8))return;let r=xT(n,o.latitude),s=xT(n,e),a=Math.tan(i)*(s-r),c=P.negativePiToPi(o.longitude+a);return l(t)?(t.longitude=c,t.latitude=e,t.height=0,t):new he(c,e,0)};var pa=op;var G8=[Si,vi],a1e=G8.length,kee=Math.cos(P.toRadians(30)),Cee=Math.cos(P.toRadians(150)),zee=0,Hee=1e3;function ug(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions;this.width=y(e.width,1),this._positions=t,this.granularity=y(e.granularity,9999),this.loop=y(e.loop,!1),this.arcType=y(e.arcType,Jt.GEODESIC),this._ellipsoid=oe.WGS84,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(ug.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+oe.packedLength+1+1}}});ug.setProjectionAndEllipsoid=function(e,t){let n=0;for(let i=0;ikee||rP.PI_OVER_TWO&&(a=!0,s=m.subtract(r,n,Iee),u=c.cartesianToCartographic(s,Dee)),u.height=0;let f=e.project(u,o);return o=m.subtract(f,i,o),o.z=0,o=m.normalize(o,o),a&&m.negate(o,o),o}var v1e=new m,Pee=new m;function Oee(e,t,n,i,o,r){let s=m.subtract(t,e,v1e);m.normalize(s,s);let a=n-zee,c=m.multiplyByScalar(s,a,Pee);m.add(e,c,o);let u=i-Hee;c=m.multiplyByScalar(s,u,Pee),m.add(t,c,r)}var D1e=new m;function sU(e,t){let n=un.getPointDistance(aU,e),i=un.getPointDistance(aU,t),o=D1e;P.equalsEpsilon(n,0,P.EPSILON2)?(o=rp(t,e,o),m.multiplyByScalar(o,P.EPSILON2,o),m.add(e,o,e)):P.equalsEpsilon(i,0,P.EPSILON2)&&(o=rp(e,t,o),m.multiplyByScalar(o,P.EPSILON2,o),m.add(t,o,t))}function I1e(e,t){let n=Math.abs(e.longitude),i=Math.abs(t.longitude);if(P.equalsEpsilon(n,P.PI,P.EPSILON11)){let o=P.sign(t.longitude);return e.longitude=o*(n-P.EPSILON11),1}else if(P.equalsEpsilon(i,P.PI,P.EPSILON11)){let o=P.sign(e.longitude);return t.longitude=o*(i-P.EPSILON11),2}return 0}var Wee=new he,jee=new he,Mee=new m,V8=new m,Ree=new m,Bee=new m,P1e=new m,Lee=new m,O1e=[Wee,jee],M1e=new le,R1e=new m,B1e=new m,L1e=new m,N1e=new m,F1e=new m,U1e=new m,k8=new m,z8=new m,V1e=new m,k1e=new m,z1e=new m,Nee=new m,H1e=new m,G1e=new m,W1e=new Wn,j1e=new Wn,Fee=new m,Y1e=new m,Uee=new m,q1e=[new ae,new ae],Yee=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],Vee=Yee.length;function X1e(e,t,n,i,o,r,s){let a,c,u=t._ellipsoid,f=n.length/3-1,d=f*8,p=d*4,g=f*36,h=d>65535?new Uint32Array(g):new Uint16Array(g),A=new Float64Array(d*3),x=new Float32Array(p),C=new Float32Array(p),T=new Float32Array(p),E=new Float32Array(p),S=new Float32Array(p),v,D,O,M;s&&(v=new Float32Array(p),D=new Float32Array(p),O=new Float32Array(p),M=new Float32Array(d*2));let L=r.length/2,N=0,_=Wee;_.height=0;let b=jee;b.height=0;let w=Mee,I=V8;if(s)for(c=0,a=1;akee?(pt=JI(t,_,Re,ke,k8),rt=JI(t,b,K,dt,z8)):Wi===1?(rt=JI(t,b,K,dt,z8),pt.x=0,pt.y=P.sign(_.longitude-Math.abs(b.longitude)),pt.z=0):(pt=JI(t,_,Re,ke,k8),rt.x=0,rt.y=P.sign(_.longitude-b.longitude),rt.z=0)}let fn=m.distance(Ve,W),Bn=Wn.fromCartesian(Ie,W1e),jt=m.subtract(Q,Ie,V1e),Ze=m.normalize(jt,Nee),pe=m.subtract(Ve,Ie,k1e);pe=m.normalize(pe,pe);let Ee=m.cross(Ze,pe,Nee);Ee=m.normalize(Ee,Ee);let je=m.cross(pe,Re,H1e);je=m.normalize(je,je);let fi=m.subtract(W,Q,z1e);fi=m.normalize(fi,fi);let Ai=m.cross(K,fi,G1e);Ai=m.normalize(Ai,Ai);let er=fn/F,Fs=J/F,Us=0,Br,Mo,Be,st=0,Qe=0;if(s){Us=m.distance(ke,dt),Br=Wn.fromCartesian(ke,j1e),Mo=m.subtract(dt,ke,Fee),Be=m.normalize(Mo,Y1e);let Wi=Be.x;Be.x=Be.y,Be.y=-Wi,st=Us/N,Qe=_e/N}for(k=0;k<8;k++){let Wi=q+k*4,Wr=G+k*2,Un=Wi+3,ln=k<4?1:-1,Xn=k===2||k===3||k===6||k===7?1:-1;m.pack(Bn.high,x,Wi),x[Un]=jt.x,m.pack(Bn.low,C,Wi),C[Un]=jt.y,m.pack(je,T,Wi),T[Un]=jt.z,m.pack(Ai,E,Wi),E[Un]=er*ln,m.pack(Ee,S,Wi);let gn=Fs*Xn;gn===0&&Xn<0&&(gn=9),S[Un]=gn,s&&(v[Wi]=Br.high.x,v[Wi+1]=Br.high.y,v[Wi+2]=Br.low.x,v[Wi+3]=Br.low.y,O[Wi]=-pt.y,O[Wi+1]=pt.x,O[Wi+2]=rt.y,O[Wi+3]=-rt.x,D[Wi]=Mo.x,D[Wi+1]=Mo.y,D[Wi+2]=Be.x,D[Wi+3]=Be.y,M[Wr]=st*ln,gn=Qe*Xn,gn===0&&Xn<0&&(gn=9),M[Wr+1]=gn)}let $e=L1e,yt=N1e,zt=R1e,an=B1e,Ji=le.fromCartographicArray(O1e,M1e),go=ri.getMinimumMaximumHeights(Ji,u),$r=go.minimumTerrainHeight,es=go.maximumTerrainHeight;xe+=$r,xe+=es,Oee(Ie,Ve,$r,es,$e,zt),Oee(Q,W,$r,es,yt,an);let ar=m.multiplyByScalar(Ee,P.EPSILON5,Uee);m.add($e,ar,$e),m.add(yt,ar,yt),m.add(zt,ar,zt),m.add(an,ar,an),sU($e,yt),sU(zt,an),m.pack($e,A,U),m.pack(yt,A,U+3),m.pack(an,A,U+6),m.pack(zt,A,U+9),ar=m.multiplyByScalar(Ee,-2*P.EPSILON5,Uee),m.add($e,ar,$e),m.add(yt,ar,yt),m.add(zt,ar,zt),m.add(an,ar,an),sU($e,yt),sU(zt,an),m.pack($e,A,U+12),m.pack(yt,A,U+15),m.pack(an,A,U+18),m.pack(zt,A,U+21),V+=2,c+=3,G+=16,U+=24,q+=32,J+=fn,_e+=Us}c=0;let se=0;for(a=0;a halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + // Check distance of the eye coordinate against start and end planes with normals in the right plane. + // For computing unskewed lengthwise texture coordinate. + // Can also be used for clipping extremely pointy miters, but in practice unnecessary because of miter breaking. + + // aligned plane: cross the right plane normal with miter plane normal, then cross the result with right again to point it more "forward" + vec3 alignedPlaneNormal; + + // start aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz); + + // end aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_endPlaneNormalEcAndBatchId.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromEnd = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, v_endEcAndStartEcX.xyz), eyeCoordinate.xyz); + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Clamp - distance to aligned planes may be negative due to mitering, + // so fragment texture coordinate might be out-of-bounds. + float s = clamp(distanceFromStart / (distanceFromStart + distanceFromEnd), 0.0, 1.0); + s = (s * v_texcoordNormalizationAndStartEcYZ.x) + v_texcoordNormalizationAndStartEcYZ.y; + float t = (widthwiseDistance + halfMaxWidth) / (2.0 * halfMaxWidth); + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, t); + materialInput.str = vec3(s, t, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + + czm_writeDepthClamp(); +} +`;var QI=`in vec3 v_forwardDirectionEC; +in vec3 v_texcoordNormalizationAndHalfWidth; +in float v_batchId; + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#else +in vec2 v_alignedPlaneDistances; +in float v_texcoordT; +#endif + +float rayPlaneDistanceUnsafe(vec3 origin, vec3 direction, vec3 planeNormal, float planeDistance) { + // We don't expect the ray to ever be parallel to the plane + return (-planeDistance - dot(planeNormal, origin)) / dot(planeNormal, direction); +} + +void main(void) +{ + vec4 eyeCoordinate = gl_FragCoord; + eyeCoordinate /= eyeCoordinate.w; + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Use distances for planes aligned with segment to prevent skew in dashing + float distanceFromStart = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, -v_forwardDirectionEC, v_forwardDirectionEC.xyz, v_alignedPlaneDistances.x); + float distanceFromEnd = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, v_forwardDirectionEC, -v_forwardDirectionEC.xyz, v_alignedPlaneDistances.y); + + // Clamp - distance to aligned planes may be negative due to mitering + distanceFromStart = max(0.0, distanceFromStart); + distanceFromEnd = max(0.0, distanceFromEnd); + + float s = distanceFromStart / (distanceFromStart + distanceFromEnd); + s = (s * v_texcoordNormalizationAndHalfWidth.x) + v_texcoordNormalizationAndHalfWidth.y; + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, v_texcoordT); + materialInput.str = vec3(s, v_texcoordT, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR +} +`;var $I=`in vec3 position3DHigh; +in vec3 position3DLow; + +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; + +in float batchId; + +out vec3 v_forwardDirectionEC; +out vec3 v_texcoordNormalizationAndHalfWidth; +out float v_batchId; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#else +out vec2 v_alignedPlaneDistances; +out float v_texcoordT; +#endif + +// Morphing planes using SLERP or NLERP doesn't seem to work, so instead draw the material directly on the shadow volume. +// Morph views are from very far away and aren't meant to be used precisely, so this should be sufficient. +void main() +{ + v_batchId = batchId; + + // Start position + vec4 posRelativeToEye2D = czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw)); + vec4 posRelativeToEye3D = czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz); + vec4 posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + vec3 posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + vec3 posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 startEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + + // Start plane + vec4 startPlane2D; + vec4 startPlane3D; + startPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlane3D.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlane2D.w = -dot(startPlane2D.xyz, posEc2D); + startPlane3D.w = -dot(startPlane3D.xyz, posEc3D); + + // Right plane + vec4 rightPlane2D; + vec4 rightPlane3D; + rightPlane2D.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + rightPlane3D.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + rightPlane2D.w = -dot(rightPlane2D.xyz, posEc2D); + rightPlane3D.w = -dot(rightPlane3D.xyz, posEc3D); + + // End position + posRelativeToEye2D = posRelativeToEye2D + vec4(0.0, offsetAndRight2D.xy, 0.0); + posRelativeToEye3D = posRelativeToEye3D + vec4(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w, 0.0); + posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 endEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + vec3 forwardEc3D = czm_normal * normalize(vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w)); + vec3 forwardEc2D = czm_normal * normalize(vec3(0.0, offsetAndRight2D.xy)); + + // End plane + vec4 endPlane2D; + vec4 endPlane3D; + endPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlane3D.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlane2D.w = -dot(endPlane2D.xyz, posEc2D); + endPlane3D.w = -dot(endPlane3D.xyz, posEc3D); + + // Forward direction + v_forwardDirectionEC = normalize(endEC - startEC); + + vec2 cleanTexcoordNormalization2D; + cleanTexcoordNormalization2D.x = abs(texcoordNormalization2D.x); + cleanTexcoordNormalization2D.y = czm_branchFreeTernary(texcoordNormalization2D.y > 1.0, 0.0, abs(texcoordNormalization2D.y)); + vec2 cleanTexcoordNormalization3D; + cleanTexcoordNormalization3D.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + cleanTexcoordNormalization3D.y = rightNormalAndTextureCoordinateNormalizationY.w; + cleanTexcoordNormalization3D.y = czm_branchFreeTernary(cleanTexcoordNormalization3D.y > 1.0, 0.0, abs(cleanTexcoordNormalization3D.y)); + + v_texcoordNormalizationAndHalfWidth.xy = mix(cleanTexcoordNormalization2D, cleanTexcoordNormalization3D, czm_morphTime); + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#else // PER_INSTANCE_COLOR + // For computing texture coordinates + + v_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC); + v_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC); +#endif // PER_INSTANCE_COLOR + +#ifdef WIDTH_VARYING + float width = czm_batchTable_width(batchId); + float halfWidth = width * 0.5; + v_width = width; + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#else + float halfWidth = 0.5 * czm_batchTable_width(batchId); + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#endif + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + // Since this is morphing, compute both 3D and 2D positions and then blend. + + // ****** 3D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow); // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlane3D, positionEc3D.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlane3D, positionEc3D.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane3D.xyz, endPlane3D.xyz); + vec3 upOrDown = normalize(cross(rightPlane3D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + vec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D)); + geodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc3D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // ****** 2D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); // w = 1.0, see czm_computePosition + absStartPlaneDistance = abs(czm_planeDistance(startPlane2D, positionEc2D.xyz)); + absEndPlaneDistance = abs(czm_planeDistance(endPlane2D, positionEc2D.xyz)); + planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane2D.xyz, endPlane2D.xyz); + upOrDown = normalize(cross(rightPlane2D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D)); + geodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc2D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(texcoordNormalization2D.x); +#ifndef PER_INSTANCE_COLOR + // Use vertex's sidedness to compute its texture coordinate. + v_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0); +#endif + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // Blend for actual position + gl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(v_forwardDirectionEC.x, -v_forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var eP=`in vec3 position3DHigh; +in vec3 position3DLow; + +// In 2D and in 3D, texture coordinate normalization component signs encodes: +// * X sign - sidedness relative to right plane +// * Y sign - is negative OR magnitude is greater than 1.0 if vertex is on bottom of volume +#ifndef COLUMBUS_VIEW_2D +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +#else +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; +#endif + +in float batchId; + +out vec4 v_startPlaneNormalEcAndHalfWidth; +out vec4 v_endPlaneNormalEcAndBatchId; +out vec4 v_rightPlaneEC; +out vec4 v_endEcAndStartEcX; +out vec4 v_texcoordNormalizationAndStartEcYZ; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif + +void main() +{ +#ifdef COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw))).xyz; + + vec3 forwardDirectionEC = czm_normal * vec3(0.0, offsetAndRight2D.xy); + vec3 ecEnd = forwardDirectionEC + ecStart; + forwardDirectionEC = normalize(forwardDirectionEC); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + v_texcoordNormalizationAndStartEcYZ.x = abs(texcoordNormalization2D.x); + v_texcoordNormalizationAndStartEcYZ.y = texcoordNormalization2D.y; + +#else // COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz)).xyz; + vec3 offset = czm_normal * vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w); + vec3 ecEnd = ecStart + offset; + + vec3 forwardDirectionEC = normalize(offset); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + v_texcoordNormalizationAndStartEcYZ.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + v_texcoordNormalizationAndStartEcYZ.y = rightNormalAndTextureCoordinateNormalizationY.w; + +#endif // COLUMBUS_VIEW_2D + + v_endEcAndStartEcX.xyz = ecEnd; + v_endEcAndStartEcX.w = ecStart.x; + v_texcoordNormalizationAndStartEcYZ.zw = ecStart.yz; + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif // PER_INSTANCE_COLOR + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + vec4 positionRelativeToEye = czm_computePosition(); + + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye; // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlaneEC, positionEC.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlaneEC, positionEC.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlaneEC.xyz, endPlaneEC.xyz); + vec3 upOrDown = normalize(cross(v_rightPlaneEC.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Extrude bottom vertices downward for far view distances, like for GroundPrimitives + upOrDown = cross(forwardDirectionEC, normalEC); + upOrDown = float(czm_sceneMode == czm_sceneMode3D) * upOrDown; + upOrDown = float(v_texcoordNormalizationAndStartEcYZ.y > 1.0 || v_texcoordNormalizationAndStartEcYZ.y < 0.0) * upOrDown; + upOrDown = min(GLOBE_MINIMUM_ALTITUDE, czm_geometricToleranceOverMeter * length(positionRelativeToEye.xyz)) * upOrDown; + positionEC.xyz += upOrDown; + + v_texcoordNormalizationAndStartEcYZ.y = czm_branchFreeTernary(v_texcoordNormalizationAndStartEcYZ.y > 1.0, 0.0, abs(v_texcoordNormalizationAndStartEcYZ.y)); + + // Determine distance along normalEC to push for a volume of appropriate width. + // Make volumes about double pixel width for a conservative fit - in practice the + // extra cost here is minimal compared to the loose volume heights. + // + // N = normalEC (guaranteed "right-facing") + // R = rightEC + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + float width = czm_batchTable_width(batchId); +#ifdef WIDTH_VARYING + v_width = width; +#endif + + v_startPlaneNormalEcAndHalfWidth.xyz = startPlaneEC.xyz; + v_startPlaneNormalEcAndHalfWidth.w = width * 0.5; + + v_endPlaneNormalEcAndBatchId.xyz = endPlaneEC.xyz; + v_endPlaneNormalEcAndBatchId.w = batchId; + + width = width * max(0.0, czm_metersPerPixel(positionEC)); // width = distance to push along R + width = width / dot(normalEC, v_rightPlaneEC.xyz); // width = distance to push along N + + // Determine if this vertex is on the "left" or "right" +#ifdef COLUMBUS_VIEW_2D + normalEC *= sign(texcoordNormalization2D.x); +#else + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); +#endif + + positionEC.xyz += width * normalEC; + gl_Position = czm_depthClamp(czm_projection * positionEC); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(forwardDirectionEC.x, -forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var tP=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_color = color; +} +`;var Xl=`void clipLineSegmentToNearPlane( + vec3 p0, + vec3 p1, + out vec4 positionWC, + out bool clipped, + out bool culledByNearPlane, + out vec4 clippedPositionEC) +{ + culledByNearPlane = false; + clipped = false; + + vec3 p0ToP1 = p1 - p0; + float magnitude = length(p0ToP1); + vec3 direction = normalize(p0ToP1); + + // Distance that p0 is behind the near plane. Negative means p0 is + // in front of the near plane. + float endPoint0Distance = czm_currentFrustum.x + p0.z; + + // Camera looks down -Z. + // When moving a point along +Z: LESS VISIBLE + // * Points in front of the camera move closer to the camera. + // * Points behind the camrea move farther away from the camera. + // When moving a point along -Z: MORE VISIBLE + // * Points in front of the camera move farther away from the camera. + // * Points behind the camera move closer to the camera. + + // Positive denominator: -Z, becoming more visible + // Negative denominator: +Z, becoming less visible + // Nearly zero: parallel to near plane + float denominator = -direction.z; + + if (endPoint0Distance > 0.0 && abs(denominator) < czm_epsilon7) + { + // p0 is behind the near plane and the line to p1 is nearly parallel to + // the near plane, so cull the segment completely. + culledByNearPlane = true; + } + else if (endPoint0Distance > 0.0) + { + // p0 is behind the near plane, and the line to p1 is moving distinctly + // toward or away from it. + + // t = (-plane distance - dot(plane normal, ray origin)) / dot(plane normal, ray direction) + float t = endPoint0Distance / denominator; + if (t < 0.0 || t > magnitude) + { + // Near plane intersection is not between the two points. + // We already confirmed p0 is behind the naer plane, so now + // we know the entire segment is behind it. + culledByNearPlane = true; + } + else + { + // Segment crosses the near plane, update p0 to lie exactly on it. + p0 = p0 + t * direction; + + // Numerical noise might put us a bit on the wrong side of the near plane. + // Don't let that happen. + p0.z = min(p0.z, -czm_currentFrustum.x); + + clipped = true; + } + } + + clippedPositionEC = vec4(p0, 1.0); + positionWC = czm_eyeToWindowCoordinates(clippedPositionEC); +} + +vec4 getPolylineWindowCoordinatesEC(vec4 positionEC, vec4 prevEC, vec4 nextEC, float expandDirection, float width, bool usePrevious, out float angle) +{ + // expandDirection +1 is to the _left_ when looking from positionEC toward nextEC. + +#ifdef POLYLINE_DASH + // Compute the window coordinates of the points. + vec4 positionWindow = czm_eyeToWindowCoordinates(positionEC); + vec4 previousWindow = czm_eyeToWindowCoordinates(prevEC); + vec4 nextWindow = czm_eyeToWindowCoordinates(nextEC); + + // Determine the relative screen space direction of the line. + vec2 lineDir; + if (usePrevious) { + lineDir = normalize(positionWindow.xy - previousWindow.xy); + } + else { + lineDir = normalize(nextWindow.xy - positionWindow.xy); + } + angle = atan(lineDir.x, lineDir.y) - 1.570796327; // precomputed atan(1,0) + + // Quantize the angle so it doesn't change rapidly between segments. + angle = floor(angle / czm_piOverFour + 0.5) * czm_piOverFour; +#endif + + vec4 clippedPrevWC, clippedPrevEC; + bool prevSegmentClipped, prevSegmentCulled; + clipLineSegmentToNearPlane(prevEC.xyz, positionEC.xyz, clippedPrevWC, prevSegmentClipped, prevSegmentCulled, clippedPrevEC); + + vec4 clippedNextWC, clippedNextEC; + bool nextSegmentClipped, nextSegmentCulled; + clipLineSegmentToNearPlane(nextEC.xyz, positionEC.xyz, clippedNextWC, nextSegmentClipped, nextSegmentCulled, clippedNextEC); + + bool segmentClipped, segmentCulled; + vec4 clippedPositionWC, clippedPositionEC; + clipLineSegmentToNearPlane(positionEC.xyz, usePrevious ? prevEC.xyz : nextEC.xyz, clippedPositionWC, segmentClipped, segmentCulled, clippedPositionEC); + + if (segmentCulled) + { + return vec4(0.0, 0.0, 0.0, 1.0); + } + + vec2 directionToPrevWC = normalize(clippedPrevWC.xy - clippedPositionWC.xy); + vec2 directionToNextWC = normalize(clippedNextWC.xy - clippedPositionWC.xy); + + // If a segment was culled, we can't use the corresponding direction + // computed above. We should never see both of these be true without + // \`segmentCulled\` above also being true. + if (prevSegmentCulled) + { + directionToPrevWC = -directionToNextWC; + } + else if (nextSegmentCulled) + { + directionToNextWC = -directionToPrevWC; + } + + vec2 thisSegmentForwardWC, otherSegmentForwardWC; + if (usePrevious) + { + thisSegmentForwardWC = -directionToPrevWC; + otherSegmentForwardWC = directionToNextWC; + } + else + { + thisSegmentForwardWC = directionToNextWC; + otherSegmentForwardWC = -directionToPrevWC; + } + + vec2 thisSegmentLeftWC = vec2(-thisSegmentForwardWC.y, thisSegmentForwardWC.x); + + vec2 leftWC = thisSegmentLeftWC; + float expandWidth = width * 0.5; + + // When lines are split at the anti-meridian, the position may be at the + // same location as the next or previous position, and we need to handle + // that to avoid producing NaNs. + if (!czm_equalsEpsilon(prevEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1) && !czm_equalsEpsilon(nextEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1)) + { + vec2 otherSegmentLeftWC = vec2(-otherSegmentForwardWC.y, otherSegmentForwardWC.x); + + vec2 leftSumWC = thisSegmentLeftWC + otherSegmentLeftWC; + float leftSumLength = length(leftSumWC); + leftWC = leftSumLength < czm_epsilon6 ? thisSegmentLeftWC : (leftSumWC / leftSumLength); + + // The sine of the angle between the two vectors is given by the formula + // |a x b| = |a||b|sin(theta) + // which is + // float sinAngle = length(cross(vec3(leftWC, 0.0), vec3(-thisSegmentForwardWC, 0.0))); + // Because the z components of both vectors are zero, the x and y coordinate will be zero. + // Therefore, the sine of the angle is just the z component of the cross product. + vec2 u = -thisSegmentForwardWC; + vec2 v = leftWC; + float sinAngle = abs(u.x * v.y - u.y * v.x); + expandWidth = clamp(expandWidth / sinAngle, 0.0, width * 2.0); + } + + vec2 offset = leftWC * expandDirection * expandWidth * czm_pixelRatio; + return vec4(clippedPositionWC.xy + offset, -clippedPositionWC.z, 1.0) * (czm_projection * clippedPositionEC).w; +} + +vec4 getPolylineWindowCoordinates(vec4 position, vec4 previous, vec4 next, float expandDirection, float width, bool usePrevious, out float angle) +{ + vec4 positionEC = czm_modelViewRelativeToEye * position; + vec4 prevEC = czm_modelViewRelativeToEye * previous; + vec4 nextEC = czm_modelViewRelativeToEye * next; + return getPolylineWindowCoordinatesEC(positionEC, prevEC, nextEC, expandDirection, width, usePrevious, angle); +} +`;var W8=`${Xl} +${tP}`,K1e=U0;Ht.isInternetExplorer()||(W8=`#define CLIP_POLYLINE +${W8}`);function Z0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=Z0.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,W8),this._fragmentShaderSource=y(e.fragmentShaderSource,K1e),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(Z0.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});Z0.VERTEX_FORMAT=Pe.POSITION_ONLY;Z0.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;Z0.prototype.isTranslucent=eo.prototype.isTranslucent;Z0.prototype.getRenderState=eo.prototype.getRenderState;var Fr=Z0;var nP=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec2 st; +in float batchId; + +out float v_width; +out vec2 v_st; +out float v_polylineAngle; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_width = width; + v_st.s = st.s; + v_st.t = czm_writeNonPerspective(st.t, gl_Position.w); + v_polylineAngle = angle; +} +`;var Q0=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec2 st = v_st; + st.t = czm_readNonPerspective(st.t, gl_FragCoord.w); + + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = vec3(st, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#ifdef VECTOR_TILE + out_FragColor *= u_highlightColor; +#endif + + czm_writeLogDepth(); +} +`;var j8=`${Xl} +${nP}`,J1e=Q0;Ht.isInternetExplorer()||(j8=`#define CLIP_POLYLINE +${j8}`);function $0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=$0.VERTEX_FORMAT;this.material=l(e.material)?e.material:ki.fromType(ki.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,j8),this._fragmentShaderSource=y(e.fragmentShaderSource,J1e),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties($0.prototype,{vertexShaderSource:{get:function(){let e=this._vertexShaderSource;return this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&(e=`#define POLYLINE_DASH +${e}`),e}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});$0.VERTEX_FORMAT=Pe.POSITION_AND_ST;$0.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;$0.prototype.isTranslucent=eo.prototype.isTranslucent;$0.prototype.getRenderState=eo.prototype.getRenderState;var js=$0;function sp(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;let t=e.appearance;l(t)||(t=new js),this.appearance=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,zn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:!1,interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:!1,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0},this._zIndex=void 0,this._ready=!1;let n=this;this._readyPromise=new Promise((i,o)=>{n._completeLoad=()=>{this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0);let r=this._error;l(r)?o(r):i(this)}}),this._primitive=void 0,this._sp=void 0,this._sp2D=void 0,this._spMorph=void 0,this._renderState=qee(!1),this._renderState3DTiles=qee(!0),this._renderStateMorph=ze.fromCache({cull:{enabled:!0,face:_i.FRONT},depthTest:{enabled:!0},blending:mn.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1})}Object.defineProperties(sp.prototype,{interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("GroundPolylinePrimitive.readyPromise","GroundPolylinePrimitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for GroundPolylinePrimitive.ready to return true instead."),this._readyPromise}},debugShowShadowVolume:{get:function(){return this._debugShowShadowVolume}}});sp.initializeTerrainHeights=function(){return ri.initialize()};function Z1e(e,t,n){let i=t.context,o=e._primitive,r=o._attributeLocations,s=o._batchTable.getVertexShaderCallback()(eP);s=wn._appendShowToShader(o,s),s=wn._appendDistanceDisplayConditionToShader(o,s),s=wn._modifyShaderPosition(e,s,t.scene3DOnly);let a=o._batchTable.getVertexShaderCallback()($I);a=wn._appendShowToShader(o,a),a=wn._appendDistanceDisplayConditionToShader(o,a),a=wn._modifyShaderPosition(e,a,t.scene3DOnly);let c=o._batchTable.getVertexShaderCallback()(ZI),u=[`GLOBE_MINIMUM_ALTITUDE ${t.mapProjection.ellipsoid.minimumRadius.toFixed(1)}`],f="",d="";l(n.material)?(d=l(n.material)?n.material.shaderSource:"",d.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&u.push("ANGLE_VARYING"),d.search(/in\s+float\s+v_width;/g)!==-1&&u.push("WIDTH_VARYING")):f="PER_INSTANCE_COLOR",u.push(f);let p=e.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",f]:[f],g=new He({defines:u,sources:[s]}),h=new He({defines:p,sources:[d,c]});e._sp=Kt.replaceCache({context:i,shaderProgram:o._sp,vertexShaderSource:g,fragmentShaderSource:h,attributeLocations:r});let A=i.shaderCache.getDerivedShaderProgram(e._sp,"2dColor");if(!l(A)){let C=new He({defines:u.concat(["COLUMBUS_VIEW_2D"]),sources:[s]});A=i.shaderCache.createDerivedShaderProgram(e._sp,"2dColor",{context:i,shaderProgram:e._sp2D,vertexShaderSource:C,fragmentShaderSource:h,attributeLocations:r})}e._sp2D=A;let x=i.shaderCache.getDerivedShaderProgram(e._sp,"MorphColor");if(!l(x)){let C=new He({defines:u.concat([`MAX_TERRAIN_HEIGHT ${ri._defaultMaxTerrainHeight.toFixed(1)}`]),sources:[a]});c=o._batchTable.getVertexShaderCallback()(QI);let T=new He({defines:p,sources:[d,c]});x=i.shaderCache.createDerivedShaderProgram(e._sp,"MorphColor",{context:i,shaderProgram:e._spMorph,vertexShaderSource:C,fragmentShaderSource:T,attributeLocations:r})}e._spMorph=x}function qee(e){return ze.fromCache({cull:{enabled:!0},blending:mn.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Hn.EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Hn.EQUAL,backOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK}})}function Q1e(e,t,n,i,o,r){let s=e._primitive,a=s._va.length;o.length=a,r.length=a;let u=t instanceof Fr?{}:n._uniforms,f=s._batchTable.getUniformMapCallback()(u);for(let d=0;d{!this._ready&&l(this._primitive)&&this._primitive.ready&&this._completeLoad()})};sp.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};sp.isSupported=function(e){return e.frameState.context.depthTexture};sp.prototype.isDestroyed=function(){return!1};sp.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._sp2D=void 0,this._spMorph=void 0,ue(this)};var ad=sp;var eOe=new H(1,1),tOe=!1,nOe=z.WHITE;function CT(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._image=void 0,this._imageSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._transparent=void 0,this._transparentSubscription=void 0,this.image=e.image,this.repeat=e.repeat,this.color=e.color,this.transparent=e.transparent}Object.defineProperties(CT.prototype,{isConstant:{get:function(){return j.isConstant(this._image)&&j.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:ce("image"),repeat:ce("repeat"),color:ce("color"),transparent:ce("transparent")});CT.prototype.getType=function(e){return"Image"};CT.prototype.getValue=function(e,t){return l(t)||(t={}),t.image=j.getValueOrUndefined(this._image,e),t.repeat=j.getValueOrClonedDefault(this._repeat,e,eOe,t.repeat),t.color=j.getValueOrClonedDefault(this._color,e,nOe,t.color),j.getValueOrDefault(this._transparent,e,tOe)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t};CT.prototype.equals=function(e){return this===e||e instanceof CT&&j.equals(this._image,e._image)&&j.equals(this._repeat,e._repeat)&&j.equals(this._color,e._color)&&j.equals(this._transparent,e._transparent)};var fg=CT;function iOe(e){if(e instanceof z)return new Ut(e);if(typeof e=="string"||e instanceof we||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement){let t=new fg;return t.image=e,t}}function oOe(e,t){return ce(e,t,iOe)}var vo=oOe;function iP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(iP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),dimensions:ce("dimensions"),heightReference:ce("heightReference"),fill:ce("fill"),material:vo("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});iP.prototype.clone=function(e){return l(e)?(e.show=this.show,e.dimensions=this.dimensions,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new iP(this)};iP.prototype.merge=function(e){this.show=y(this.show,e.show),this.dimensions=y(this.dimensions,e.dimensions),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var eA=iP;var rOe={FIXED:0,INERTIAL:1},no=Object.freeze(rOe);function TT(){fe.throwInstantiationError()}Object.defineProperties(TT.prototype,{isConstant:{get:fe.throwInstantiationError},definitionChanged:{get:fe.throwInstantiationError},referenceFrame:{get:fe.throwInstantiationError}});TT.prototype.getValue=fe.throwInstantiationError;TT.prototype.getValueInReferenceFrame=fe.throwInstantiationError;TT.prototype.equals=fe.throwInstantiationError;var Y8=new Z;TT.convertToReferenceFrame=function(e,t,n,i,o){if(!l(t))return t;if(l(o)||(o=new m),n===i)return m.clone(t,o);let r=Rt.computeIcrfToFixedMatrix(e,Y8);if(l(r)||(r=Rt.computeTemeToPseudoFixedMatrix(e,Y8)),n===no.INERTIAL)return Z.multiplyByVector(r,t,o);if(n===no.FIXED)return Z.multiplyByVector(Z.transpose(r,Y8),t,o)};var ap=TT;function tA(e,t){this._definitionChanged=new ge,this._value=m.clone(e),this._referenceFrame=y(t,no.FIXED)}Object.defineProperties(tA.prototype,{isConstant:{get:function(){return!l(this._value)||this._referenceFrame===no.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});tA.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};tA.prototype.setValue=function(e,t){let n=!1;m.equals(this._value,e)||(n=!0,this._value=m.clone(e)),l(t)&&this._referenceFrame!==t&&(n=!0,this._referenceFrame=t),n&&this._definitionChanged.raiseEvent(this)};tA.prototype.getValueInReferenceFrame=function(e,t,n){return ap.convertToReferenceFrame(e,this._value,this._referenceFrame,t,n)};tA.prototype.equals=function(e){return this===e||e instanceof tA&&m.equals(this._value,e._value)&&this._referenceFrame===e._referenceFrame};var wc=tA;function oP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(oP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),width:ce("width"),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),cornerType:ce("cornerType"),granularity:ce("granularity"),fill:ce("fill"),material:vo("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});oP.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new oP(this)};oP.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var nA=oP;function sOe(e){return e}function aOe(e,t){return ce(e,t,sOe)}var al=aOe;function rP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._length=void 0,this._lengthSubscription=void 0,this._topRadius=void 0,this._topRadiusSubscription=void 0,this._bottomRadius=void 0,this._bottomRadiusSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._slices=void 0,this._slicesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(rP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),length:ce("length"),topRadius:ce("topRadius"),bottomRadius:ce("bottomRadius"),heightReference:ce("heightReference"),fill:ce("fill"),material:vo("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),numberOfVerticalLines:ce("numberOfVerticalLines"),slices:ce("slices"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});rP.prototype.clone=function(e){return l(e)?(e.show=this.show,e.length=this.length,e.topRadius=this.topRadius,e.bottomRadius=this.bottomRadius,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.slices=this.slices,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new rP(this)};rP.prototype.merge=function(e){this.show=y(this.show,e.show),this.length=y(this.length,e.length),this.topRadius=y(this.topRadius,e.topRadius),this.bottomRadius=y(this.bottomRadius,e.bottomRadius),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.slices=y(this.slices,e.slices),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var iA=rP;function sP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._semiMajorAxis=void 0,this._semiMajorAxisSubscription=void 0,this._semiMinorAxis=void 0,this._semiMinorAxisSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(sP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),semiMajorAxis:ce("semiMajorAxis"),semiMinorAxis:ce("semiMinorAxis"),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),rotation:ce("rotation"),stRotation:ce("stRotation"),granularity:ce("granularity"),fill:ce("fill"),material:vo("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),numberOfVerticalLines:ce("numberOfVerticalLines"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});sP.prototype.clone=function(e){return l(e)?(e.show=this.show,e.semiMajorAxis=this.semiMajorAxis,e.semiMinorAxis=this.semiMinorAxis,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new sP(this)};sP.prototype.merge=function(e){this.show=y(this.show,e.show),this.semiMajorAxis=y(this.semiMajorAxis,e.semiMajorAxis),this.semiMinorAxis=y(this.semiMinorAxis,e.semiMinorAxis),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var oA=sP;function aP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._radii=void 0,this._radiiSubscription=void 0,this._innerRadii=void 0,this._innerRadiiSubscription=void 0,this._minimumClock=void 0,this._minimumClockSubscription=void 0,this._maximumClock=void 0,this._maximumClockSubscription=void 0,this._minimumCone=void 0,this._minimumConeSubscription=void 0,this._maximumCone=void 0,this._maximumConeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._stackPartitions=void 0,this._stackPartitionsSubscription=void 0,this._slicePartitions=void 0,this._slicePartitionsSubscription=void 0,this._subdivisions=void 0,this._subdivisionsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(aP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),radii:ce("radii"),innerRadii:ce("innerRadii"),minimumClock:ce("minimumClock"),maximumClock:ce("maximumClock"),minimumCone:ce("minimumCone"),maximumCone:ce("maximumCone"),heightReference:ce("heightReference"),fill:ce("fill"),material:vo("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),stackPartitions:ce("stackPartitions"),slicePartitions:ce("slicePartitions"),subdivisions:ce("subdivisions"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});aP.prototype.clone=function(e){return l(e)?(e.show=this.show,e.radii=this.radii,e.innerRadii=this.innerRadii,e.minimumClock=this.minimumClock,e.maximumClock=this.maximumClock,e.minimumCone=this.minimumCone,e.maximumCone=this.maximumCone,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.stackPartitions=this.stackPartitions,e.slicePartitions=this.slicePartitions,e.subdivisions=this.subdivisions,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new aP(this)};aP.prototype.merge=function(e){this.show=y(this.show,e.show),this.radii=y(this.radii,e.radii),this.innerRadii=y(this.innerRadii,e.innerRadii),this.minimumClock=y(this.minimumClock,e.minimumClock),this.maximumClock=y(this.maximumClock,e.maximumClock),this.minimumCone=y(this.minimumCone,e.minimumCone),this.maximumCone=y(this.maximumCone,e.maximumCone),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.stackPartitions=y(this.stackPartitions,e.stackPartitions),this.slicePartitions=y(this.slicePartitions,e.slicePartitions),this.subdivisions=y(this.subdivisions,e.subdivisions),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var rA=aP;function cP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._text=void 0,this._textSubscription=void 0,this._font=void 0,this._fontSubscription=void 0,this._style=void 0,this._styleSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._showBackground=void 0,this._showBackgroundSubscription=void 0,this._backgroundColor=void 0,this._backgroundColorSubscription=void 0,this._backgroundPadding=void 0,this._backgroundPaddingSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fillColor=void 0,this._fillColorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(cP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),text:ce("text"),font:ce("font"),style:ce("style"),scale:ce("scale"),showBackground:ce("showBackground"),backgroundColor:ce("backgroundColor"),backgroundPadding:ce("backgroundPadding"),pixelOffset:ce("pixelOffset"),eyeOffset:ce("eyeOffset"),horizontalOrigin:ce("horizontalOrigin"),verticalOrigin:ce("verticalOrigin"),heightReference:ce("heightReference"),fillColor:ce("fillColor"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),translucencyByDistance:ce("translucencyByDistance"),pixelOffsetScaleByDistance:ce("pixelOffsetScaleByDistance"),scaleByDistance:ce("scaleByDistance"),distanceDisplayCondition:ce("distanceDisplayCondition"),disableDepthTestDistance:ce("disableDepthTestDistance")});cP.prototype.clone=function(e){return l(e)?(e.show=this.show,e.text=this.text,e.font=this.font,e.style=this.style,e.scale=this.scale,e.showBackground=this.showBackground,e.backgroundColor=this.backgroundColor,e.backgroundPadding=this.backgroundPadding,e.pixelOffset=this.pixelOffset,e.eyeOffset=this.eyeOffset,e.horizontalOrigin=this.horizontalOrigin,e.verticalOrigin=this.verticalOrigin,e.heightReference=this.heightReference,e.fillColor=this.fillColor,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.translucencyByDistance=this.translucencyByDistance,e.pixelOffsetScaleByDistance=this.pixelOffsetScaleByDistance,e.scaleByDistance=this.scaleByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new cP(this)};cP.prototype.merge=function(e){this.show=y(this.show,e.show),this.text=y(this.text,e.text),this.font=y(this.font,e.font),this.style=y(this.style,e.style),this.scale=y(this.scale,e.scale),this.showBackground=y(this.showBackground,e.showBackground),this.backgroundColor=y(this.backgroundColor,e.backgroundColor),this.backgroundPadding=y(this.backgroundPadding,e.backgroundPadding),this.pixelOffset=y(this.pixelOffset,e.pixelOffset),this.eyeOffset=y(this.eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this.horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this.verticalOrigin,e.verticalOrigin),this.heightReference=y(this.heightReference,e.heightReference),this.fillColor=y(this.fillColor,e.fillColor),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.translucencyByDistance=y(this.translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this.pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance)};var cd=cP;var cOe=new m(1,1,1),lOe=m.ZERO,uOe=Ne.IDENTITY;function Kee(e,t,n){this.translation=m.clone(y(e,lOe)),this.rotation=Ne.clone(y(t,uOe)),this.scale=m.clone(y(n,cOe))}Kee.prototype.equals=function(e){return this===e||l(e)&&m.equals(this.translation,e.translation)&&Ne.equals(this.rotation,e.rotation)&&m.equals(this.scale,e.scale)};var dg=Kee;var q8=new dg;function lP(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._translation=void 0,this._translationSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this.translation=e.translation,this.rotation=e.rotation,this.scale=e.scale}Object.defineProperties(lP.prototype,{isConstant:{get:function(){return j.isConstant(this._translation)&&j.isConstant(this._rotation)&&j.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:ce("translation"),rotation:ce("rotation"),scale:ce("scale")});lP.prototype.getValue=function(e,t){return l(t)||(t=new dg),t.translation=j.getValueOrClonedDefault(this._translation,e,q8.translation,t.translation),t.rotation=j.getValueOrClonedDefault(this._rotation,e,q8.rotation,t.rotation),t.scale=j.getValueOrClonedDefault(this._scale,e,q8.scale,t.scale),t};lP.prototype.equals=function(e){return this===e||e instanceof lP&&j.equals(this._translation,e._translation)&&j.equals(this._rotation,e._rotation)&&j.equals(this._scale,e._scale)};var sA=lP;function cp(e,t){this._propertyNames=[],this._definitionChanged=new ge,l(e)&&this.merge(e,t)}Object.defineProperties(cp.prototype,{propertyNames:{get:function(){return this._propertyNames}},isConstant:{get:function(){let e=this._propertyNames;for(let t=0,n=e.length;t (textureSize.y / textureSize.x)) + { + mipLevel = 1.0; + if (uv.y - pixel.y > yMipLevel1) + { + mipLevel = 2.0; + if (uv.y - pixel.y * 3.0 > yMipLevel2) + { + mipLevel = 3.0; + if (uv.y - pixel.y * 5.0 > yMipLevel3) + { + mipLevel = 4.0; + if (uv.y - pixel.y * 7.0 > yMipLevel4) + { + mipLevel = 5.0; + } + } + } + } + } + + if (mipLevel > 0.0) + { + float scale = pow(2.0, mipLevel); + + uv.y -= (pixel.y * (mipLevel - 1.0) * 2.0); + uv.x *= ((textureSize.x - 2.0) / textureSize.y); + + uv.x -= 1.0 + pixel.x; + uv.y -= (1.0 - (1.0 / pow(2.0, mipLevel - 1.0))); + uv *= scale; + } + else + { + uv.x *= (textureSize.x / textureSize.y); + } + + if(mipLevel == 0.0) + { + out_FragColor = texture(texture0, uv); + } + else if(mipLevel == 1.0) + { + out_FragColor = texture(texture1, uv); + } + else if(mipLevel == 2.0) + { + out_FragColor = texture(texture2, uv); + } + else if(mipLevel == 3.0) + { + out_FragColor = texture(texture3, uv); + } + else if(mipLevel == 4.0) + { + out_FragColor = texture(texture4, uv); + } + else if(mipLevel == 5.0) + { + out_FragColor = texture(texture5, uv); + } + else + { + out_FragColor = vec4(0.0); + } +} +`;var EP=`in vec3 v_cubeMapCoordinates; +uniform samplerCube cubeMap; + +void main() +{ + vec4 rgba = czm_textureCube(cubeMap, v_cubeMapCoordinates); + #ifdef RGBA_NORMALIZED + out_FragColor = vec4(rgba.rgb, 1.0); + #else + float m = rgba.a * 16.0; + vec3 r = rgba.rgb * m; + out_FragColor = vec4(r * r, 1.0); + #endif +} +`;var bP=`in vec4 position; +in vec3 cubeMapCoordinates; + +out vec3 v_cubeMapCoordinates; + +void main() +{ + gl_Position = position; + v_cubeMapCoordinates = cubeMapCoordinates; +} +`;function fA(e){this._url=e,this._cubeMapBuffers=void 0,this._cubeMaps=void 0,this._texture=void 0,this._mipTextures=void 0,this._va=void 0,this._sp=void 0,this._maximumMipmapLevel=void 0,this._loading=!1,this._ready=!1,this._errorEvent=new ge}Object.defineProperties(fA.prototype,{url:{get:function(){return this._url}},errorEvent:{get:function(){return this._errorEvent}},texture:{get:function(){return this._texture}},maximumMipmapLevel:{get:function(){return this._maximumMipmapLevel}},ready:{get:function(){return this._ready}}});fA.isSupported=function(e){return e.colorBufferHalfFloat&&e.halfFloatingPointTexture||e.floatingPointTexture&&e.colorBufferFloat};var ROe=new m(1,0,0),BOe=new m(0,0,1),LOe=new m(-1,0,0),NOe=new m(0,0,-1),cU=new m(0,1,0),FOe=new m(0,-1,0),cte=[cU,LOe,BOe,FOe,ROe,cU,NOe,cU,cU],lte=cte.length,ute=new Float32Array(lte*3),ste=0;for(let e=0;e0||this._imageBasedLightingFactor.y>0}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},useDefaultSphericalHarmonics:{get:function(){return this._useDefaultSphericalHarmonics}},useSphericalHarmonicCoefficients:{get:function(){return l(this._sphericalHarmonicCoefficients)||this._useDefaultSphericalHarmonics}},specularEnvironmentMapAtlas:{get:function(){return this._specularEnvironmentMapAtlas}},useDefaultSpecularMaps:{get:function(){return this._useDefaultSpecularMaps}},useSpecularEnvironmentMaps:{get:function(){return l(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready||this._useDefaultSpecularMaps}}});function zOe(e,t){if(dd.isSupported(t)){if(e._specularEnvironmentMapAtlas=e._specularEnvironmentMapAtlas&&e._specularEnvironmentMapAtlas.destroy(),l(e._specularEnvironmentMaps)){let n=new dd(e._specularEnvironmentMaps);e._specularEnvironmentMapAtlas=n,e._removeErrorListener=n.errorEvent.addEventListener(i=>{console.error(`Error loading specularEnvironmentMaps: ${i}`)})}e._shouldRegenerateShaders=!0}}SP.prototype.update=function(e){if(e.frameNumber===this._previousFrameNumber)return;this._previousFrameNumber=e.frameNumber;let t=e.context;e.brdfLutGenerator.update(e),this._shouldRegenerateShaders=!1;let n=this._imageBasedLightingFactor,i=this._previousImageBasedLightingFactor;H.equals(n,i)||(this._shouldRegenerateShaders=n.x>0&&i.x===0||n.x===0&&i.x>0,this._shouldRegenerateShaders=this._shouldRegenerateShaders||n.y>0&&i.y===0||n.y===0&&i.y>0,this._previousImageBasedLightingFactor=H.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor)),this._luminanceAtZenith!==this._previousLuminanceAtZenith&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||l(this._luminanceAtZenith)!==l(this._previousLuminanceAtZenith),this._previousLuminanceAtZenith=this._luminanceAtZenith),this._previousSphericalHarmonicCoefficients!==this._sphericalHarmonicCoefficients&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||l(this._previousSphericalHarmonicCoefficients)!==l(this._sphericalHarmonicCoefficients),this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients),this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._previousSpecularEnvironmentMapLoaded!==this._specularEnvironmentMapLoaded,this._previousSpecularEnvironmentMapLoaded=this._specularEnvironmentMapLoaded,this._specularEnvironmentMapAtlasDirty&&(zOe(this,t),this._specularEnvironmentMapAtlasDirty=!1),l(this._specularEnvironmentMapAtlas)&&(this._specularEnvironmentMapAtlas.update(e),this._specularEnvironmentMapAtlas.ready&&(this._specularEnvironmentMapLoaded=!0));let o=!l(this._specularEnvironmentMapAtlas)&&l(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,r=!l(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,s=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,a=!l(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||o||r||s||a,this._useDefaultSpecularMaps=!l(this._specularEnvironmentMapAtlas)&&l(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)};SP.prototype.isDestroyed=function(){return!1};SP.prototype.destroy=function(){return this._specularEnvironmentMapAtlas=this._specularEnvironmentMapAtlas&&this._specularEnvironmentMapAtlas.destroy(),this._removeErrorListener=this._removeErrorListener&&this._removeErrorListener(),ue(this)};var dA=SP;var e5=So(Vl(),1);var $8,fte="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIwZWQ3OWFlZC1kOTg3LTRlZjctYTAyYy0xNjFmODE1MWE2NGUiLCJpZCI6MjU5LCJpYXQiOjE2ODI5NDYzODh9.DEH4GpqliH-xsDE7h-ZCICtHgnGu32wdSjt4hFqw7lU",lU={};lU.defaultAccessToken=fte;lU.defaultServer=new we({url:"https://api.cesium.com/"});lU.getDefaultTokenCredit=function(e){if(e===fte){if(!l($8)){let t=` This application is using Cesium's default ion access token. Please assign Cesium.Ion.defaultAccessToken with an access token from your ion account before making any Cesium API calls. You can sign up for a free ion account at https://cesium.com.`;$8=new It(t,!0)}return $8}};var md=lU;function Ic(e,t){let n,i=e.externalType,o=l(i);if(!o)n={url:e.url,retryAttempts:1,retryCallback:HOe};else if(i==="3DTILES"||i==="STK_TERRAIN_SERVER")n={url:e.options.url};else throw new de("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");we.call(this,n),this._ionEndpoint=e,this._ionEndpointDomain=o?void 0:new e5.default(e.url).authority(),this._ionEndpointResource=t,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=o}l(Object.create)&&(Ic.prototype=Object.create(we.prototype),Ic.prototype.constructor=Ic);Ic.fromAssetId=function(e,t){let n=Ic._createEndpointResource(e,t);return n.fetchJson().then(function(i){return new Ic(i,n)})};Object.defineProperties(Ic.prototype,{credits:{get:function(){return l(this._ionRoot)?this._ionRoot.credits:l(this._credits)?this._credits:(this._credits=Ic.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}});Ic.getCreditsFromEndpoint=function(e,t){let n=e.attributions.map(It.getIonCredit),i=md.getDefaultTokenCredit(t.queryParameters.access_token);return l(i)&&n.push(It.clone(i)),n};Ic.prototype.clone=function(e){let t=y(this._ionRoot,this);return l(e)||(e=new Ic(t._ionEndpoint,t._ionEndpointResource)),e=we.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e};Ic.prototype.fetchImage=function(e){if(!this._isExternal){let t=e;e={preferBlob:!0},l(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return we.prototype.fetchImage.call(this,e)};Ic.prototype._makeRequest=function(e){return this._isExternal||new e5.default(this.url).authority()!==this._ionEndpointDomain?we.prototype._makeRequest.call(this,e):(l(e.headers)||(e.headers={}),e.headers.Authorization=`Bearer ${this._ionEndpoint.accessToken}`,e.headers["X-Cesium-Client"]="CesiumJS",typeof CESIUM_VERSION<"u"&&(e.headers["X-Cesium-Client-Version"]=CESIUM_VERSION),we.prototype._makeRequest.call(this,e))};Ic._createEndpointResource=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.server,md.defaultServer),i=y(t.accessToken,md.defaultAccessToken);n=we.createIfNeeded(n);let o={url:`v1/assets/${e}/endpoint`};return l(i)&&(o.queryParameters={access_token:i}),n.getDerivedResource(o)};function HOe(e,t){let n=y(e._ionRoot,e),i=n._ionEndpointResource,o=typeof Image<"u";return!l(t)||t.statusCode!==401&&!(o&&t.target instanceof Image)?Promise.resolve(!1):(l(n._pendingPromise)||(n._pendingPromise=i.fetchJson().then(function(r){return n._ionEndpoint=r,r}).finally(function(r){return n._pendingPromise=void 0,r})),n._pendingPromise.then(function(r){return e._ionEndpoint=r,!0}))}var qs=Ic;function Nm(e){e=y(e,0),this._array=new Array(e),this._length=e}Object.defineProperties(Nm.prototype,{length:{get:function(){return this._length},set:function(e){let t=this._array,n=this._length;if(et.length&&(t.length=e);this._length=e}},values:{get:function(){return this._array}}});Nm.prototype.get=function(e){return this._array[e]};Nm.prototype.set=function(e,t){e>=this._length&&(this.length=e+1),this._array[e]=t};Nm.prototype.peek=function(){return this._array[this._length-1]};Nm.prototype.push=function(e){let t=this.length++;this._array[t]=e};Nm.prototype.pop=function(){if(this._length===0)return;let e=this._array[this._length-1];return--this.length,e};Nm.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)};Nm.prototype.resize=function(e){this.length=e};Nm.prototype.trim=function(e){e=y(e,this._length),this._array.length=e};var Pc=Nm;var hp={X:0,Y:1,Z:2};hp.Y_UP_TO_Z_UP=B.fromRotationTranslation(Z.fromRotationX(P.PI_OVER_TWO));hp.Z_UP_TO_Y_UP=B.fromRotationTranslation(Z.fromRotationX(-P.PI_OVER_TWO));hp.X_UP_TO_Z_UP=B.fromRotationTranslation(Z.fromRotationY(-P.PI_OVER_TWO));hp.Z_UP_TO_X_UP=B.fromRotationTranslation(Z.fromRotationY(P.PI_OVER_TWO));hp.X_UP_TO_Y_UP=B.fromRotationTranslation(Z.fromRotationZ(P.PI_OVER_TWO));hp.Y_UP_TO_X_UP=B.fromRotationTranslation(Z.fromRotationZ(-P.PI_OVER_TWO));hp.fromName=function(e){return hp[e]};var ao=Object.freeze(hp);function dte(e){e=y(e,y.EMPTY_OBJECT),this._metadata=e.metadata}Object.defineProperties(dte.prototype,{metadata:{get:function(){return this._metadata}}});var mA=dte;function mg(e,t,n){return t=y(t,0),n=y(n,e.byteLength-t),e=e.subarray(t,t+n),mg.decode(e)}mg.decodeWithTextDecoder=function(e){return new TextDecoder("utf-8").decode(e)};mg.decodeWithFromCharCode=function(e){let t="",n=GOe(e),i=n.length;for(let o=0;o>10)+55296,(r&1023)+56320))}return t};function wP(e,t,n){return t<=e&&e<=n}function GOe(e){let t=0,n=0,i=0,o=128,r=191,s=[],a=e.length;for(let c=0;c{this._resolveContent=o})}Object.defineProperties(pd.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n0){let o=Math.min(t,kt.maximumTextureSize),r=Math.ceil(t/kt.maximumTextureSize),s=1/o,a=s*.5,c=1/r,u=c*.5;n=new H(o,r),i=new re(s,a,c,u)}this._translucentFeaturesLength=0,this._featuresLength=t,this._textureDimensions=n,this._textureStep=i,this._owner=e.owner,this._statistics=e.statistics,this._colorChangedCallback=e.colorChangedCallback}Object.defineProperties(Wa.prototype,{translucentFeaturesLength:{get:function(){return this._translucentFeaturesLength}},byteLength:{get:function(){let e=0;return l(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),l(this._batchTexture)&&(e+=this._batchTexture.sizeInBytes),e}},textureDimensions:{get:function(){return this._textureDimensions}},textureStep:{get:function(){return this._textureStep}},batchTexture:{get:function(){return this._batchTexture}},defaultTexture:{get:function(){return this._defaultTexture}},pickTexture:{get:function(){return this._pickTexture}}});Wa.DEFAULT_COLOR_VALUE=z.WHITE;Wa.DEFAULT_SHOW_VALUE=!0;function mte(e){let t=e._textureDimensions;return t.x*t.y*4}function hte(e){if(!l(e._batchValues)){let t=mte(e),n=new Uint8Array(t).fill(255);e._batchValues=n}return e._batchValues}function pte(e){if(!l(e._showAlphaProperties)){let t=2*e._featuresLength,n=new Uint8Array(t).fill(255);e._showAlphaProperties=n}return e._showAlphaProperties}Wa.prototype.setShow=function(e,t){if(t&&!l(this._showAlphaProperties))return;let n=pte(this),i=e*2,o=t?255:0;if(n[i]!==o){n[i]=o;let r=hte(this),s=e*4+3;r[s]=t?n[i+1]:0,this._batchValuesDirty=!0}};Wa.prototype.setAllShow=function(e){let t=this._featuresLength;for(let n=0;n0){let i=e._pickIds,o=mte(e),r=new Uint8Array(o),s=e._owner,a=e._statistics;for(let c=0;c0;){if(t=f.pop(),c[t]===u)continue;c[t]=u;let d=n(e,t);if(l(d))return d;let p=o[t],g=s[t];for(let h=0;h0?(s="",e&&(s+=`uniform bool tile_translucentCommand; +`),s+=`uniform sampler2D tile_batchTexture; +out vec4 tile_featureColor; +out vec2 tile_featureSt; +void main() +{ + vec2 st = computeSt(${t}); + vec4 featureProperties = texture(tile_batchTexture, st); + tile_color(featureProperties); + float show = ceil(featureProperties.a); + gl_Position *= show; +`,e&&(s+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + gl_Position *= 0.0; + } + } + else + { + if (isStyleTranslucent) + { + gl_Position *= 0.0; + } + } +`),s+=` tile_featureColor = featureProperties; + tile_featureSt = st; +}`):s=`out vec2 tile_featureSt; +void main() +{ + tile_color(vec4(1.0)); + tile_featureSt = computeSt(${t}); +}`,`${r} +${pMe(i)}${s}`}};function gte(e,t){return e=He.replaceMain(e,"tile_main"),t?`${e}uniform float tile_colorBlend; +void tile_color(vec4 tile_featureColor) +{ + tile_main(); + tile_featureColor = czm_gammaCorrect(tile_featureColor); + out_FragColor.a *= tile_featureColor.a; + float highlight = ceil(tile_colorBlend); + out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); +} +`:`${e}void tile_color(vec4 tile_featureColor) +{ + tile_main(); +} +`}function _Me(e,t){let n=`texture(${t}`,i=0,o=e.indexOf(n,i),r;for(;o>-1;){let s=0;for(let u=o;u0?(i+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_color(tile_featureColor); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+="}"):(e&&(i+=`uniform bool tile_translucentCommand; +`),i+=`uniform sampler2D tile_pickTexture; +uniform sampler2D tile_batchTexture; +in vec2 tile_featureSt; +void main() +{ + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } +`,e&&(i+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + discard; + } + } + else + { + if (isStyleTranslucent) + { + discard; + } + } +`),i+=` tile_color(featureProperties); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+=`} +`),i}};co.prototype.getClassificationFragmentShaderCallback=function(){if(this.featuresLength!==0)return function(e){return e=He.replaceMain(e,"tile_main"),kt.maximumVertexTextureImageUnits>0?e+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_main(); + out_FragColor = tile_featureColor; + out_FragColor.rgb *= out_FragColor.a; +}`:e+=`uniform sampler2D tile_batchTexture; +uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +void main() +{ + tile_main(); + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } + out_FragColor = featureProperties; + out_FragColor.rgb *= out_FragColor.a; +} +`,e}};function gMe(e){let t=e._content.tileset,n=t.colorBlendMode,i=t.colorBlendAmount;if(n===ul.HIGHLIGHT)return 0;if(n===ul.REPLACE)return 1;if(n===ul.MIX)return P.clamp(i,P.EPSILON4,1)}co.prototype.getUniformMapCallback=function(){if(this.featuresLength===0)return;let e=this;return function(t){return _t(t,{tile_batchTexture:function(){return y(e._batchTexture.batchTexture,e._batchTexture.defaultTexture)},tile_textureDimensions:function(){return e._batchTexture.textureDimensions},tile_textureStep:function(){return e._batchTexture.textureStep},tile_colorBlend:function(){return gMe(e)},tile_pickTexture:function(){return e._batchTexture.pickTexture}})}};co.prototype.getPickId=function(){return"texture(tile_pickTexture, tile_featureSt)"};var hg={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};co.prototype.addDerivedCommands=function(e,t){let n=e.commandList,i=n.length,o=this._content._tile,r=o._finalResolution,s=o.tileset,a=s.isSkippingLevelOfDetail&&s.hasMixedContent&&e.context.stencilBuffer,c=yMe(this);for(let u=t;u>>Ft.SKIP_LOD_BIT_SHIFT}function wMe(e){let t=Ye(e,!0);return t.cull.enabled=!1,t.depthTest.enabled=!0,t.depthMask=!1,t.blending=mn.ALPHA_BLEND,t.stencilTest=Ft.setCesium3DTileBit(),t.stencilMask=Ft.CESIUM_3D_TILE_MASK,ze.fromCache(t)}function vMe(e){let t=Ye(e,!0);return t.stencilTest=Ft.setCesium3DTileBit(),t.stencilMask=Ft.CESIUM_3D_TILE_MASK,ze.fromCache(t)}co.prototype.update=function(e,t){this._batchTexture.update(e,t)};co.prototype.isDestroyed=function(){return!1};co.prototype.destroy=function(){return this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var _p=co;function DMe(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var Fm=DMe;var wT=`in vec3 position; +in float a_batchId; + +uniform mat4 u_modifiedModelViewProjection; + +void main() +{ + gl_Position = czm_depthClamp(u_modifiedModelViewProjection * vec4(position, 1.0)); +} +`;function Ju(e,t){this._content=e,this._batchId=t,this._color=void 0}Object.defineProperties(Ju.prototype,{show:{get:function(){return this._content.batchTable.getShow(this._batchId)},set:function(e){this._content.batchTable.setShow(this._batchId,e)}},color:{get:function(){return l(this._color)||(this._color=new z),this._content.batchTable.getColor(this._batchId,this._color)},set:function(e){this._content.batchTable.setColor(this._batchId,e)}},polylinePositions:{get:function(){if(l(this._content.getPolylinePositions))return this._content.getPolylinePositions(this._batchId)}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},featureId:{get:function(){return this._batchId}},pickId:{get:function(){return this._content.batchTable.getPickColor(this._batchId)}}});Ju.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};Ju.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};Ju.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};Ju.getPropertyInherited=function(e,t,n){let i=e.batchTable;if(l(i)){if(i.hasPropertyBySemantic(t,n))return i.getPropertyBySemantic(t,n);if(i.hasProperty(t,n))return i.getProperty(t,n)}let o=e.metadata;if(l(o)){if(o.hasPropertyBySemantic(n))return o.getPropertyBySemantic(n);if(o.hasProperty(n))return o.getProperty(n)}let r=e.tile,s=r.metadata;if(l(s)){if(s.hasPropertyBySemantic(n))return s.getPropertyBySemantic(n);if(s.hasProperty(n))return s.getProperty(n)}let a;if(l(r.implicitSubtree)&&(a=r.implicitSubtree.metadata),l(a)){if(a.hasPropertyBySemantic(n))return a.getPropertyBySemantic(n);if(a.hasProperty(n))return a.getProperty(n)}let c=l(e.group)?e.group.metadata:void 0;if(l(c)){if(c.hasPropertyBySemantic(n))return c.getPropertyBySemantic(n);if(c.hasProperty(n))return c.getProperty(n)}let u=e.tileset.metadata;if(l(u)){if(u.hasPropertyBySemantic(n))return u.getPropertyBySemantic(n);if(u.hasProperty(n))return u.getProperty(n)}};Ju.prototype.getPropertyInherited=function(e){return Ju.getPropertyInherited(this._content,this._batchId,e)};Ju.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};Ju.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};Ju.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};Ju.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var xs=Ju;var i5=class{add(t,n,i){if(typeof arguments[0]!="string")for(let o in arguments[0])this.add(o,arguments[0][o],arguments[1]);else(Array.isArray(t)?t:[t]).forEach(function(o){this[o]=this[o]||[],n&&this[o][i?"unshift":"push"](n)},this)}run(t,n){this[t]=this[t]||[],this[t].forEach(function(i){i.call(n&&n.context?n.context:n,n)})}},o5=class{constructor(t){this.jsep=t,this.registered={}}register(...t){t.forEach(n=>{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},We=class{static get version(){return"1.3.8"}static toString(){return"JavaScript Expression Parser (JSEP) v"+We.version}static addUnaryOp(t){return We.max_unop_len=Math.max(t.length,We.max_unop_len),We.unary_ops[t]=1,We}static addBinaryOp(t,n,i){return We.max_binop_len=Math.max(t.length,We.max_binop_len),We.binary_ops[t]=n,i?We.right_associative.add(t):We.right_associative.delete(t),We}static addIdentifierChar(t){return We.additional_identifier_chars.add(t),We}static addLiteral(t,n){return We.literals[t]=n,We}static removeUnaryOp(t){return delete We.unary_ops[t],t.length===We.max_unop_len&&(We.max_unop_len=We.getMaxKeyLen(We.unary_ops)),We}static removeAllUnaryOps(){return We.unary_ops={},We.max_unop_len=0,We}static removeIdentifierChar(t){return We.additional_identifier_chars.delete(t),We}static removeBinaryOp(t){return delete We.binary_ops[t],t.length===We.max_binop_len&&(We.max_binop_len=We.getMaxKeyLen(We.binary_ops)),We.right_associative.delete(t),We}static removeAllBinaryOps(){return We.binary_ops={},We.max_binop_len=0,We}static removeLiteral(t){return delete We.literals[t],We}static removeAllLiterals(){return We.literals={},We}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(t){this.expr=t,this.index=0}static parse(t){return new We(t).parse()}static getMaxKeyLen(t){return Math.max(0,...Object.keys(t).map(n=>n.length))}static isDecimalDigit(t){return t>=48&&t<=57}static binaryPrecedence(t){return We.binary_ops[t]||0}static isIdentifierStart(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!We.binary_ops[String.fromCharCode(t)]||We.additional_identifier_chars.has(String.fromCharCode(t))}static isIdentifierPart(t){return We.isIdentifierStart(t)||We.isDecimalDigit(t)}throwError(t){let n=new Error(t+" at character "+this.index);throw n.index=this.index,n.description=t,n}runHook(t,n){if(We.hooks[t]){let i={context:this,node:n};return We.hooks.run(t,i),i.node}return n}searchHook(t){if(We.hooks[t]){let n={context:this};return We.hooks[t].find(function(i){return i.call(n.context,n),n.node}),n.node}}gobbleSpaces(){let t=this.code;for(;t===We.SPACE_CODE||t===We.TAB_CODE||t===We.LF_CODE||t===We.CR_CODE;)t=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let t=this.gobbleExpressions(),n=t.length===1?t[0]:{type:We.COMPOUND,body:t};return this.runHook("after-all",n)}gobbleExpressions(t){let n=[],i,o;for(;this.index0;){if(We.binary_ops.hasOwnProperty(t)&&(!We.isIdentifierStart(this.code)||this.index+t.lengthr.right_a&&d.right_a?i>d.prec:i<=d.prec;for(;o.length>2&&f(o[o.length-2]);)a=o.pop(),n=o.pop().value,s=o.pop(),t={type:We.BINARY_EXP,operator:n,left:s,right:a},o.push(t);t=this.gobbleToken(),t||this.throwError("Expected expression after "+u),o.push(r,t)}for(c=o.length-1,t=o[c];c>1;)t={type:We.BINARY_EXP,operator:o[c-1].value,left:o[c-2],right:t},c-=2;return t}gobbleToken(){let t,n,i,o;if(this.gobbleSpaces(),o=this.searchHook("gobble-token"),o)return this.runHook("after-token",o);if(t=this.code,We.isDecimalDigit(t)||t===We.PERIOD_CODE)return this.gobbleNumericLiteral();if(t===We.SQUOTE_CODE||t===We.DQUOTE_CODE)o=this.gobbleStringLiteral();else if(t===We.OBRACK_CODE)o=this.gobbleArray();else{for(n=this.expr.substr(this.index,We.max_unop_len),i=n.length;i>0;){if(We.unary_ops.hasOwnProperty(n)&&(!We.isIdentifierStart(this.code)||this.index+n.length=n.length&&this.throwError("Unexpected token "+String.fromCharCode(t));break}else if(r===We.COMMA_CODE){if(this.index++,o++,o!==n.length){if(t===We.CPAREN_CODE)this.throwError("Unexpected token ,");else if(t===We.CBRACK_CODE)for(let s=n.length;s":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},right_associative:new Set,additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});We.max_unop_len=We.getMaxKeyLen(We.unary_ops);We.max_binop_len=We.getMaxKeyLen(We.binary_ops);var pg=e=>new We(e).parse(),PMe=Object.getOwnPropertyNames(We);PMe.forEach(e=>{pg[e]===void 0&&e!=="prototype"&&(pg[e]=We[e])});pg.Jsep=We;var OMe="ConditionalExpression",MMe={name:"ternary",init(e){e.hooks.add("after-expression",function(n){if(n.node&&this.code===e.QUMARK_CODE){this.index++;let i=n.node,o=this.gobbleExpression();if(o||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===e.COLON_CODE){this.index++;let r=this.gobbleExpression();if(r||this.throwError("Expected expression"),n.node={type:OMe,test:i,consequent:o,alternate:r},i.operator&&e.binary_ops[i.operator]<=.9){let s=i;for(;s.right.operator&&e.binary_ops[s.right.operator]<=.9;)s=s.right;n.node.test=s.right,s.right=n.node,n.node=i}}else this.throwError("Expected :")}})}};pg.plugins.register(MMe);var RMe={VARIABLE:0,UNARY:1,BINARY:2,TERNARY:3,CONDITIONAL:4,MEMBER:5,FUNCTION_CALL:6,ARRAY:7,REGEX:8,VARIABLE_IN_STRING:9,LITERAL_NULL:10,LITERAL_BOOLEAN:11,LITERAL_NUMBER:12,LITERAL_STRING:13,LITERAL_COLOR:14,LITERAL_VECTOR:15,LITERAL_REGEX:16,LITERAL_UNDEFINED:17,BUILTIN_VARIABLE:18},gt=Object.freeze(RMe);function _d(e,t){this._expression=e,e=YMe(e,t),e=XMe(qMe(e)),pg.addBinaryOp("=~",0),pg.addBinaryOp("!~",0);let n;try{n=pg(e)}catch(i){throw new de(i)}this._runtimeAst=Ci(this,n)}Object.defineProperties(_d.prototype,{expression:{get:function(){return this._expression}}});var Rn={arrayIndex:0,arrayArray:[[]],cartesian2Index:0,cartesian3Index:0,cartesian4Index:0,cartesian2Array:[new H],cartesian3Array:[new m],cartesian4Array:[new re],reset:function(){this.arrayIndex=0,this.cartesian2Index=0,this.cartesian3Index=0,this.cartesian4Index=0},getArray:function(){this.arrayIndex>=this.arrayArray.length&&this.arrayArray.push([]);let e=this.arrayArray[this.arrayIndex++];return e.length=0,e},getCartesian2:function(){return this.cartesian2Index>=this.cartesian2Array.length&&this.cartesian2Array.push(new H),this.cartesian2Array[this.cartesian2Index++]},getCartesian3:function(){return this.cartesian3Index>=this.cartesian3Array.length&&this.cartesian3Array.push(new m),this.cartesian3Array[this.cartesian3Index++]},getCartesian4:function(){return this.cartesian4Index>=this.cartesian4Array.length&&this.cartesian4Array.push(new re),this.cartesian4Array[this.cartesian4Index++]}};_d.prototype.evaluate=function(e,t){Rn.reset();let n=this._runtimeAst.evaluate(e);return t instanceof z&&n instanceof re?z.fromCartesian4(n,t):n instanceof H||n instanceof m||n instanceof re?n.clone(t):n};_d.prototype.evaluateColor=function(e,t){Rn.reset();let n=this._runtimeAst.evaluate(e);return z.fromCartesian4(n,t)};_d.prototype.getShaderFunction=function(e,t,n,i){let o=this.getShaderExpression(t,n);return o=`${i} ${e} +{ + return ${o}; +} +`,o};_d.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};_d.prototype.getVariables=function(){let e=[];return this._runtimeAst.getVariables(e),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var BMe=["!","-","+"],xte=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],dU=/\${(.*?)}/g,LMe=/\\/g,NMe="@#%",FMe=/@#%/g,mU=new z,hU={abs:Cs(Math.abs),sqrt:Cs(Math.sqrt),cos:Cs(Math.cos),sin:Cs(Math.sin),tan:Cs(Math.tan),acos:Cs(Math.acos),asin:Cs(Math.asin),atan:Cs(Math.atan),radians:Cs(P.toRadians),degrees:Cs(P.toDegrees),sign:Cs(P.sign),floor:Cs(Math.floor),ceil:Cs(Math.ceil),round:Cs(Math.round),exp:Cs(Math.exp),exp2:Cs(VMe),log:Cs(Math.log),log2:Cs(kMe),fract:Cs(UMe),length:zMe,normalize:HMe},pU={atan2:uU(Math.atan2,!1),pow:uU(Math.pow,!1),min:uU(Math.min,!0),max:uU(Math.max,!0),distance:GMe,dot:WMe,cross:jMe},a5={clamp:Cte(P.clamp,!0),mix:Cte(P.lerp,!0)};function UMe(e){return e-Math.floor(e)}function VMe(e){return Math.pow(2,e)}function kMe(e){return P.log2(e)}function Cs(e){return function(t,n){if(typeof n=="number")return e(n);if(n instanceof H)return H.fromElements(e(n.x),e(n.y),Rn.getCartesian2());if(n instanceof m)return m.fromElements(e(n.x),e(n.y),e(n.z),Rn.getCartesian3());if(n instanceof re)return re.fromElements(e(n.x),e(n.y),e(n.z),e(n.w),Rn.getCartesian4());throw new de(`Function "${t}" requires a vector or number argument. Argument is ${n}.`)}}function uU(e,t){return function(n,i,o){if(t&&typeof o=="number"){if(typeof i=="number")return e(i,o);if(i instanceof H)return H.fromElements(e(i.x,o),e(i.y,o),Rn.getCartesian2());if(i instanceof m)return m.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),Rn.getCartesian3());if(i instanceof re)return re.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),e(i.w,o),Rn.getCartesian4())}if(typeof i=="number"&&typeof o=="number")return e(i,o);if(i instanceof H&&o instanceof H)return H.fromElements(e(i.x,o.x),e(i.y,o.y),Rn.getCartesian2());if(i instanceof m&&o instanceof m)return m.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),Rn.getCartesian3());if(i instanceof re&&o instanceof re)return re.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),e(i.w,o.w),Rn.getCartesian4());throw new de(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i} and ${o}.`)}}function Cte(e,t){return function(n,i,o,r){if(t&&typeof r=="number"){if(typeof i=="number"&&typeof o=="number")return e(i,o,r);if(i instanceof H&&o instanceof H)return H.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),Rn.getCartesian2());if(i instanceof m&&o instanceof m)return m.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),Rn.getCartesian3());if(i instanceof re&&o instanceof re)return re.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),e(i.w,o.w,r),Rn.getCartesian4())}if(typeof i=="number"&&typeof o=="number"&&typeof r=="number")return e(i,o,r);if(i instanceof H&&o instanceof H&&r instanceof H)return H.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),Rn.getCartesian2());if(i instanceof m&&o instanceof m&&r instanceof m)return m.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),Rn.getCartesian3());if(i instanceof re&&o instanceof re&&r instanceof re)return re.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),e(i.w,o.w,r.w),Rn.getCartesian4());throw new de(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i}, ${o}, and ${r}.`)}}function zMe(e,t){if(typeof t=="number")return Math.abs(t);if(t instanceof H)return H.magnitude(t);if(t instanceof m)return m.magnitude(t);if(t instanceof re)return re.magnitude(t);throw new de(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function HMe(e,t){if(typeof t=="number")return 1;if(t instanceof H)return H.normalize(t,Rn.getCartesian2());if(t instanceof m)return m.normalize(t,Rn.getCartesian3());if(t instanceof re)return re.normalize(t,Rn.getCartesian4());throw new de(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function GMe(e,t,n){if(typeof t=="number"&&typeof n=="number")return Math.abs(t-n);if(t instanceof H&&n instanceof H)return H.distance(t,n);if(t instanceof m&&n instanceof m)return m.distance(t,n);if(t instanceof re&&n instanceof re)return re.distance(t,n);throw new de(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function WMe(e,t,n){if(typeof t=="number"&&typeof n=="number")return t*n;if(t instanceof H&&n instanceof H)return H.dot(t,n);if(t instanceof m&&n instanceof m)return m.dot(t,n);if(t instanceof re&&n instanceof re)return re.dot(t,n);throw new de(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function jMe(e,t,n){if(t instanceof m&&n instanceof m)return m.cross(t,n,Rn.getCartesian3());throw new de(`Function "${e}" requires vec3 arguments. Arguments are ${t} and ${n}.`)}function xt(e,t,n,i,o){this._type=e,this._value=t,this._left=n,this._right=i,this._test=o,this.evaluate=void 0,oRe(this)}function YMe(e,t){if(!l(t))return e;for(let n in t)if(t.hasOwnProperty(n)){let i=new RegExp(`\\$\\{${n}\\}`,"g"),o=`(${t[n]})`;l(o)&&(e=e.replace(i,o))}return e}function qMe(e){return e.replace(LMe,NMe)}function s5(e){return e.replace(FMe,"\\")}function XMe(e){let t=e,n="",i=t.indexOf("${");for(;i>=0;){let o=t.indexOf("'"),r=t.indexOf('"'),s;if(o>=0&&o=0&&r=0?new xt(gt.VARIABLE_IN_STRING,e.value):new xt(gt.LITERAL_STRING,s5(e.value))}function JMe(e,t){let n=t.arguments,i=n.length,o,r,s,a;if(t.callee.type==="MemberExpression"){o=t.callee.property.name;let c=t.callee.object;if(o==="test"||o==="exec"){if(!l(c.callee)||c.callee.name!=="regExp")throw new de(`${o} is not a function.`);return i===0?o==="test"?new xt(gt.LITERAL_BOOLEAN,!1):new xt(gt.LITERAL_NULL,null):(s=Ci(e,c),a=Ci(e,n[0]),new xt(gt.FUNCTION_CALL,o,s,a))}else if(o==="toString")return r=Ci(e,c),new xt(gt.FUNCTION_CALL,o,r);throw new de(`Unexpected function call "${o}".`)}if(o=t.callee.name,o==="color"){if(i===0)return new xt(gt.LITERAL_COLOR,o);if(r=Ci(e,n[0]),l(n[1])){let c=Ci(e,n[1]);return new xt(gt.LITERAL_COLOR,o,[r,c])}return new xt(gt.LITERAL_COLOR,o,[r])}else if(o==="rgb"||o==="hsl"){if(i<3)throw new de(`${o} requires three arguments.`);return r=[Ci(e,n[0]),Ci(e,n[1]),Ci(e,n[2])],new xt(gt.LITERAL_COLOR,o,r)}else if(o==="rgba"||o==="hsla"){if(i<4)throw new de(`${o} requires four arguments.`);return r=[Ci(e,n[0]),Ci(e,n[1]),Ci(e,n[2]),Ci(e,n[3])],new xt(gt.LITERAL_COLOR,o,r)}else if(o==="vec2"||o==="vec3"||o==="vec4"){r=new Array(i);for(let c=0;c1)throw new de(`${o} requires exactly one argument.`);return r=Ci(e,n[0]),new xt(gt.UNARY,o,r)}else if(o==="getExactClassName"){if(i>0)throw new de(`${o} does not take any argument.`);return new xt(gt.UNARY,o)}else if(l(hU[o])){if(i!==1)throw new de(`${o} requires exactly one argument.`);return r=Ci(e,n[0]),new xt(gt.UNARY,o,r)}else if(l(pU[o])){if(i!==2)throw new de(`${o} requires exactly two arguments.`);return s=Ci(e,n[0]),a=Ci(e,n[1]),new xt(gt.BINARY,o,s,a)}else if(l(a5[o])){if(i!==3)throw new de(`${o} requires exactly three arguments.`);s=Ci(e,n[0]),a=Ci(e,n[1]);let c=Ci(e,n[2]);return new xt(gt.TERNARY,o,s,a,c)}else{if(o==="Boolean")return i===0?new xt(gt.LITERAL_BOOLEAN,!1):(r=Ci(e,n[0]),new xt(gt.UNARY,o,r));if(o==="Number")return i===0?new xt(gt.LITERAL_NUMBER,0):(r=Ci(e,n[0]),new xt(gt.UNARY,o,r));if(o==="String")return i===0?new xt(gt.LITERAL_STRING,""):(r=Ci(e,n[0]),new xt(gt.UNARY,o,r));if(o==="regExp")return ZMe(e,t)}}throw new de(`Unexpected function call "${o}".`)}function ZMe(e,t){let n=t.arguments;if(n.length===0)return new xt(gt.LITERAL_REGEX,new RegExp);let i=Ci(e,n[0]),o;if(n.length>1){let r=Ci(e,n[1]);if(r5(i)&&r5(r)){try{o=new RegExp(s5(String(i._value)),r._value)}catch(s){throw new de(s)}return new xt(gt.LITERAL_REGEX,o)}return new xt(gt.REGEX,i,r)}if(r5(i)){try{o=new RegExp(s5(String(i._value)))}catch(r){throw new de(r)}return new xt(gt.LITERAL_REGEX,o)}return new xt(gt.REGEX,i)}function QMe(e){if(nRe(e.name)){let t=iRe(e.name);return t.substr(0,8)==="tiles3d_"?new xt(gt.BUILTIN_VARIABLE,t):new xt(gt.VARIABLE,t)}else{if(e.name==="NaN")return new xt(gt.LITERAL_NUMBER,NaN);if(e.name==="Infinity")return new xt(gt.LITERAL_NUMBER,1/0);if(e.name==="undefined")return new xt(gt.LITERAL_UNDEFINED,void 0)}throw new de(`${e.name} is not defined.`)}function $Me(e){let t=e.property.name;if(t==="PI")return new xt(gt.LITERAL_NUMBER,Math.PI);if(t==="E")return new xt(gt.LITERAL_NUMBER,Math.E)}function eRe(e){if(e.property.name==="POSITIVE_INFINITY")return new xt(gt.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function tRe(e,t){if(t.object.name==="Math")return $Me(t);if(t.object.name==="Number")return eRe(t);let n,i=Ci(e,t.object);return t.computed?(n=Ci(e,t.property),new xt(gt.MEMBER,"brackets",i,n)):(n=new xt(gt.LITERAL_STRING,t.property.name),new xt(gt.MEMBER,"dot",i,n))}function r5(e){return e._type>=gt.LITERAL_NULL}function nRe(e){return e.substr(0,4)==="czm_"}function iRe(e){return e.substr(4)}function Ci(e,t){let n,i,o,r;if(t.type==="Literal")n=KMe(t);else if(t.type==="CallExpression")n=JMe(e,t);else if(t.type==="Identifier")n=QMe(t);else if(t.type==="UnaryExpression"){i=t.operator;let s=Ci(e,t.argument);if(BMe.indexOf(i)>-1)n=new xt(gt.UNARY,i,s);else throw new de(`Unexpected operator "${i}".`)}else if(t.type==="BinaryExpression")if(i=t.operator,o=Ci(e,t.left),r=Ci(e,t.right),xte.indexOf(i)>-1)n=new xt(gt.BINARY,i,o,r);else throw new de(`Unexpected operator "${i}".`);else if(t.type==="LogicalExpression")i=t.operator,o=Ci(e,t.left),r=Ci(e,t.right),xte.indexOf(i)>-1&&(n=new xt(gt.BINARY,i,o,r));else if(t.type==="ConditionalExpression"){let s=Ci(e,t.test);o=Ci(e,t.consequent),r=Ci(e,t.alternate),n=new xt(gt.CONDITIONAL,"?",o,r,s)}else if(t.type==="MemberExpression")n=tRe(e,t);else if(t.type==="ArrayExpression"){let s=[];for(let a=0;a"?e.evaluate=e._evaluateGreaterThan:e._value===">="?e.evaluate=e._evaluateGreaterThanOrEquals:e._value==="&&"?e.evaluate=e._evaluateAnd:e._value==="||"?e.evaluate=e._evaluateOr:e._value==="=~"?e.evaluate=e._evaluateRegExpMatch:e._value==="!~"?e.evaluate=e._evaluateRegExpNotMatch:l(pU[e._value])&&(e.evaluate=aRe(e._value)):e._type===gt.TERNARY?e.evaluate=cRe(e._value):e._type===gt.MEMBER?e._value==="brackets"?e.evaluate=e._evaluateMemberBrackets:e.evaluate=e._evaluateMemberDot:e._type===gt.ARRAY?e.evaluate=e._evaluateArray:e._type===gt.VARIABLE?e.evaluate=e._evaluateVariable:e._type===gt.VARIABLE_IN_STRING?e.evaluate=e._evaluateVariableString:e._type===gt.LITERAL_COLOR?e.evaluate=e._evaluateLiteralColor:e._type===gt.LITERAL_VECTOR?e.evaluate=e._evaluateLiteralVector:e._type===gt.LITERAL_STRING?e.evaluate=e._evaluateLiteralString:e._type===gt.REGEX?e.evaluate=e._evaluateRegExp:e._type===gt.BUILTIN_VARIABLE?e._value==="tiles3d_tileset_time"&&(e.evaluate=rRe):e.evaluate=e._evaluateLiteral}function rRe(e){return l(e)?e.content.tileset.timeSinceLoad:0}function sRe(e){let t=hU[e];return function(n){let i=this._left.evaluate(n);return t(e,i)}}function aRe(e){let t=pU[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n);return t(e,i,o)}}function cRe(e){let t=a5[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n),r=this._test.evaluate(n);return t(e,i,o,r)}}function _U(e,t){if(l(e))return e.getPropertyInherited(t)}xt.prototype._evaluateLiteral=function(){return this._value};xt.prototype._evaluateLiteralColor=function(e){let t=mU,n=this._left;if(this._value==="color")l(n)?n.length>1?(z.fromCssColorString(n[0].evaluate(e),t),t.alpha=n[1].evaluate(e)):z.fromCssColorString(n[0].evaluate(e),t):z.fromBytes(255,255,255,255,t);else if(this._value==="rgb")z.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),255,t);else if(this._value==="rgba"){let i=n[3].evaluate(e)*255;z.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),i,t)}else this._value==="hsl"?z.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),1,t):this._value==="hsla"&&z.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),n[3].evaluate(e),t);return re.fromColor(t,Rn.getCartesian4())};xt.prototype._evaluateLiteralVector=function(e){let t=Rn.getArray(),n=this._value,i=this._left,o=i.length;for(let a=0;a1)throw new de(`Invalid ${n} constructor. Not enough arguments.`);if(r>s&&o>1)throw new de(`Invalid ${n} constructor. Too many arguments.`);if(r===1){let a=t[0];t.push(a,a,a)}if(n==="vec2")return H.fromArray(t,0,Rn.getCartesian2());if(n==="vec3")return m.fromArray(t,0,Rn.getCartesian3());if(n==="vec4")return re.fromArray(t,0,Rn.getCartesian4())};xt.prototype._evaluateLiteralString=function(){return this._value};xt.prototype._evaluateVariableString=function(e){let t=this._value,n=dU.exec(t);for(;n!==null;){let i=n[0],o=n[1],r=_U(e,o);l(r)||(r=""),t=t.replace(i,r),n=dU.exec(t)}return t};xt.prototype._evaluateVariable=function(e){return _U(e,this._value)};function pA(e){return e._value==="feature"}xt.prototype._evaluateMemberDot=function(e){if(pA(this._left))return _U(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof H||t instanceof m||t instanceof re){if(n==="r")return t.x;if(n==="g")return t.y;if(n==="b")return t.z;if(n==="a")return t.w}return t[n]};xt.prototype._evaluateMemberBrackets=function(e){if(pA(this._left))return _U(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof H||t instanceof m||t instanceof re){if(n===0||n==="r")return t.x;if(n===1||n==="g")return t.y;if(n===2||n==="b")return t.z;if(n===3||n==="a")return t.w}return t[n]};xt.prototype._evaluateArray=function(e){let t=[];for(let n=0;n" requires number arguments. Arguments are ${t} and ${n}.`);return t>n};xt.prototype._evaluateGreaterThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new de(`Operator ">=" requires number arguments. Arguments are ${t} and ${n}.`);return t>=n};xt.prototype._evaluateOr=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new de(`Operator "||" requires boolean arguments. First argument is ${t}.`);if(t)return!0;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new de(`Operator "||" requires boolean arguments. Second argument is ${n}.`);return t||n};xt.prototype._evaluateAnd=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new de(`Operator "&&" requires boolean arguments. First argument is ${t}.`);if(!t)return!1;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new de(`Operator "&&" requires boolean arguments. Second argument is ${n}.`);return t&&n};xt.prototype._evaluatePlus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.add(t,n,Rn.getCartesian2());if(n instanceof m&&t instanceof m)return m.add(t,n,Rn.getCartesian3());if(n instanceof re&&t instanceof re)return re.add(t,n,Rn.getCartesian4());if(typeof t=="string"||typeof n=="string")return t+n;if(typeof t=="number"&&typeof n=="number")return t+n;throw new de(`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateMinus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.subtract(t,n,Rn.getCartesian2());if(n instanceof m&&t instanceof m)return m.subtract(t,n,Rn.getCartesian3());if(n instanceof re&&t instanceof re)return re.subtract(t,n,Rn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t-n;throw new de(`Operator "-" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateTimes=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.multiplyComponents(t,n,Rn.getCartesian2());if(n instanceof H&&typeof t=="number")return H.multiplyByScalar(n,t,Rn.getCartesian2());if(t instanceof H&&typeof n=="number")return H.multiplyByScalar(t,n,Rn.getCartesian2());if(n instanceof m&&t instanceof m)return m.multiplyComponents(t,n,Rn.getCartesian3());if(n instanceof m&&typeof t=="number")return m.multiplyByScalar(n,t,Rn.getCartesian3());if(t instanceof m&&typeof n=="number")return m.multiplyByScalar(t,n,Rn.getCartesian3());if(n instanceof re&&t instanceof re)return re.multiplyComponents(t,n,Rn.getCartesian4());if(n instanceof re&&typeof t=="number")return re.multiplyByScalar(n,t,Rn.getCartesian4());if(t instanceof re&&typeof n=="number")return re.multiplyByScalar(t,n,Rn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t*n;throw new de(`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateDivide=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.divideComponents(t,n,Rn.getCartesian2());if(t instanceof H&&typeof n=="number")return H.divideByScalar(t,n,Rn.getCartesian2());if(n instanceof m&&t instanceof m)return m.divideComponents(t,n,Rn.getCartesian3());if(t instanceof m&&typeof n=="number")return m.divideByScalar(t,n,Rn.getCartesian3());if(n instanceof re&&t instanceof re)return re.divideComponents(t,n,Rn.getCartesian4());if(t instanceof re&&typeof n=="number")return re.divideByScalar(t,n,Rn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t/n;throw new de(`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateMod=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.fromElements(t.x%n.x,t.y%n.y,Rn.getCartesian2());if(n instanceof m&&t instanceof m)return m.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,Rn.getCartesian3());if(n instanceof re&&t instanceof re)return re.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,t.w%n.w,Rn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t%n;throw new de(`Operator "%" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof H&&t instanceof H||n instanceof m&&t instanceof m||n instanceof re&&t instanceof re?t.equals(n):t===n};xt.prototype._evaluateNotEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof H&&t instanceof H||n instanceof m&&t instanceof m||n instanceof re&&t instanceof re?!t.equals(n):t!==n};xt.prototype._evaluateConditional=function(e){let t=this._test.evaluate(e);if(typeof t!="boolean")throw new de(`Conditional argument of conditional expression must be a boolean. Argument is ${t}.`);return t?this._left.evaluate(e):this._right.evaluate(e)};xt.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))};xt.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))};xt.prototype._evaluateIsExactClass=function(e){return l(e)?e.isExactClass(this._left.evaluate(e)):!1};xt.prototype._evaluateIsClass=function(e){return l(e)?e.isClass(this._left.evaluate(e)):!1};xt.prototype._evaluateGetExactClassName=function(e){if(l(e))return e.getExactClassName()};xt.prototype._evaluateBooleanConversion=function(e){return!!this._left.evaluate(e)};xt.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))};xt.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))};xt.prototype._evaluateRegExp=function(e){let t=this._value.evaluate(e),n="";l(this._left)&&(n=this._left.evaluate(e));let i;try{i=new RegExp(t,n)}catch(o){throw new de(o)}return i};xt.prototype._evaluateRegExpTest=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new de(`RegExp.test requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);return t.test(n)};xt.prototype._evaluateRegExpMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return t.test(n);if(n instanceof RegExp&&typeof t=="string")return n.test(t);throw new de(`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateRegExpNotMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return!t.test(n);if(n instanceof RegExp&&typeof t=="string")return!n.test(t);throw new de(`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateRegExpExec=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new de(`RegExp.exec requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);let i=t.exec(n);return l(i)?i[1]:null};xt.prototype._evaluateToString=function(e){let t=this._left.evaluate(e);if(t instanceof RegExp||t instanceof H||t instanceof m||t instanceof re)return String(t);throw new de(`Unexpected function call "${this._value}".`)};function Tte(e){let t=e._left,n=t.length;for(let a=0;a1){let p=u[0],g=u[1];return g!=="1.0"&&(t.translucent=!0),`vec4(${p}, ${g})`}}else return"vec4(1.0)";return`vec4(${u[0]}, 1.0)`}else{if(c==="rgb")return i=Ete(this),l(i)?fU(i):`vec4(${u[0]} / 255.0, ${u[1]} / 255.0, ${u[2]} / 255.0, 1.0)`;if(c==="rgba")return u[3]!=="1.0"&&(t.translucent=!0),i=Ete(this),l(i)?fU(i):`vec4(${u[0]} / 255.0, ${u[1]} / 255.0, ${u[2]} / 255.0, ${u[3]})`;if(c==="hsl")return i=Tte(this),l(i)?fU(i):`vec4(czm_HSLToRGB(vec3(${u[0]}, ${u[1]}, ${u[2]})), 1.0)`;if(c==="hsla")return i=Tte(this),l(i)?(i.alpha!==1&&(t.translucent=!0),fU(i)):(u[3]!=="1.0"&&(t.translucent=!0),`vec4(czm_HSLToRGB(vec3(${u[0]}, ${u[1]}, ${u[2]})), ${u[3]})`)}break;case gt.LITERAL_VECTOR:f=o.length,d=`${c}(`;for(let p=0;p0;){let f=t.pop();if(z.equals(f.color,a.color))u=c5(n,s,u,i,o,f.batchIds,r),a.batchIds=a.batchIds.concat(f.batchIds),a.count=u-a.offset;else{let d=u;u=c5(n,s,u,i,o,f.batchIds,r),f.offset=d,f.count=u-d,c.push(f),a=f}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=c}function l5(e,t,n,i,o,r,s){let a=e.bytesPerIndex,c=r.length;for(let u=0;u0;){let d=t.pop();if(z.equals(d.color,r.color))u=l5(a,c,u,n,i,d.batchIds,o),r.batchIds=r.batchIds.concat(d.batchIds),r.count=u-r.offset;else{let p=u;u=l5(a,c,u,n,i,d.batchIds,o),d.offset=p,d.count=u-p,s.push(d),r=d}}let f=e._va;e._va=e._vaSwap,e._vaSwap=f,e._batchedIndices=s}function ARe(e,t){return t.color.toRgba()-e.color.toRgba()}function xRe(e,t){if(!e._batchDirty)return!1;let n=e._batchedIndices,i=n.length,o=!1,r={};for(let s=0;s=A&&s{e.isDestroyed()||(e._error=h)}):void 0}}function NRe(e){l(e._primitive)||(e._primitive=new gA({batchTable:e._batchTable,positions:e._positions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center,pickObject:y(e._pickObject,e)}),e._boxes=void 0,e._boxBatchIds=void 0,e._cylinders=void 0,e._cylinderBatchIds=void 0,e._ellipsoids=void 0,e._ellipsoidBatchIds=void 0,e._spheres=void 0,e._sphereBatchIds=void 0,e._center=void 0,e._modelMatrix=void 0,e._batchTable=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0,e._indices=void 0,e._indexOffsets=void 0,e._indexCounts=void 0,e._positions=void 0,e._vertexBatchIds=void 0,e._batchIds=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._verticesPromise=void 0)}Zl.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};Zl.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};Zl.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};Zl.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};Zl.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=LRe(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};Zl.prototype.isDestroyed=function(){return!1};Zl.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var yp=Zl;function Ap(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._geometries=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,this._resolveContent=void 0,this._readyPromise=new Promise(r=>{this._resolveContent=r}),VRe(this,i,o)}Object.defineProperties(Ap.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return l(this._geometries)?this._geometries.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._geometries)?this._geometries.geometryByteLength:0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Geometry3DTileContent.readyPromise","Geometry3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Geometry3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function FRe(e){return function(t,n){l(e._geometries)&&e._geometries.updateCommands(t,n)}}function URe(e,t){let n,i,o,r,s,a=y(e.BOXES_LENGTH,0),c=y(e.CYLINDERS_LENGTH,0),u=y(e.ELLIPSOIDS_LENGTH,0),f=y(e.SPHERES_LENGTH,0);if(a>0&&l(e.BOX_BATCH_IDS)){let h=t.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,h,a)}if(c>0&&l(e.CYLINDER_BATCH_IDS)){let h=t.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,h,c)}if(u>0&&l(e.ELLIPSOID_BATCH_IDS)){let h=t.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,h,u)}if(f>0&&l(e.SPHERE_BATCH_IDS)){let h=t.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,h,f)}let d=l(n)||l(i)||l(o)||l(r),p=a>0&&!l(n)||c>0&&!l(i)||u>0&&!l(o)||f>0&&!l(r);if(d&&p)throw new de("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)&&!l(r)){let h=0;if(!l(n)&&a>0)for(n=new Uint16Array(a),s=0;s0)for(i=new Uint16Array(c),s=0;s0)for(o=new Uint16Array(u),s=0;s0)for(r=new Uint16Array(f),s=0;s0&&(g=Do(i,n,u),n+=u,f>0&&(h=new Uint8Array(t,n,f),h=new Uint8Array(h)));let A=y(d.BOXES_LENGTH,0),x=y(d.CYLINDERS_LENGTH,0),C=y(d.ELLIPSOIDS_LENGTH,0),T=y(d.SPHERES_LENGTH,0),E=A+x+C+T,S=new _p(e,E,g,h,FRe(e));if(e._batchTable=S,E===0)return;let v=e.tile.computedTransform,D;l(d.RTC_CENTER)&&(D=m.unpack(d.RTC_CENTER),B.multiplyByPoint(v,D,D));let O=URe(d,p);if(A>0||x>0||C>0||T>0){let M,L,N,_;if(A>0){let b=p.byteOffset+d.BOXES.byteOffset;M=new Float32Array(p.buffer,b,yp.packedBoxLength*A)}if(x>0){let b=p.byteOffset+d.CYLINDERS.byteOffset;L=new Float32Array(p.buffer,b,yp.packedCylinderLength*x)}if(C>0){let b=p.byteOffset+d.ELLIPSOIDS.byteOffset;N=new Float32Array(p.buffer,b,yp.packedEllipsoidLength*C)}if(T>0){let b=p.byteOffset+d.SPHERES.byteOffset;_=new Float32Array(p.buffer,b,yp.packedSphereLength*T)}return e._geometries=new yp({boxes:M,boxBatchIds:O.boxes,cylinders:L,cylinderBatchIds:O.cylinders,ellipsoids:N,ellipsoidBatchIds:O.ellipsoids,spheres:_,sphereBatchIds:O.spheres,center:D,modelMatrix:v,batchTable:S,boundingVolume:e.tile.boundingVolume.boundingVolume}),e}return Promise.resolve(e)}function Ite(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._geometries)&&e._geometries.createFeatures(e,n),e._features=n}}Ap.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};Ap.prototype.getFeature=function(e){return Ite(this),this._features[e]};Ap.prototype.applyDebugSettings=function(e,t){l(this._geometries)&&this._geometries.applyDebugSettings(e,t)};Ap.prototype.applyStyle=function(e){Ite(this),l(this._geometries)&&this._geometries.applyStyle(e,this._features)};Ap.prototype.update=function(e,t){l(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(t)),l(this._batchTable)&&this._geometries.ready&&(this._batchTable.update(e,t),this._ready=!0,this._resolveContent(this))};Ap.prototype.isDestroyed=function(){return!1};Ap.prototype.destroy=function(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};var PP=Ap;var u5={};u5.encode2D=function(e,t,n){let i=Math.pow(2,e),o={x:t,y:n},r,s,a,c=BigInt(0);for(a=i/2;a>0;a/=2)r=(o.x&a)>0?1:0,s=(o.y&a)>0?1:0,c+=BigInt((3*r^s)*a*a),Pte(i,o,r,s);return c};u5.decode2D=function(e,t){let n=Math.pow(2,e),i={x:0,y:0},o,r,s,a;for(s=1,a=t;s>>0,f5=2*AA+1,gg=4,Rte=[],Bte=[],HRe=[[0,1,3,2],[0,2,3,1],[3,2,0,1],[3,1,0,2]],yg=1,DT=2,gU=[yg,0,0,yg|DT];function Ur(e){if(!Ht.supportsBigInt())throw new de("S2 required BigInt support");this._cellId=e,this._level=Ur.getLevel(e)}Ur.fromToken=function(e){return new Ur(Ur.getIdFromToken(e))};Ur.isValidId=function(e){return!(e<=0||e>>BigInt(f5)>5||!(e&~e+BigInt(1)&BigInt("0x1555555555555555")))};Ur.isValidToken=function(e){return/^[0-9a-fA-F]{1,16}$/.test(e)?Ur.isValidId(Ur.getIdFromToken(e)):!1};Ur.getIdFromToken=function(e){return BigInt("0x"+e+"0".repeat(16-e.length))};Ur.getTokenFromId=function(e){let t=Math.floor(QRe(e)/4),n=e.toString(16).replace(/0*$/,"");return Array(17-t-n.length).join("0")+n};Ur.getLevel=function(e){let t=0;for(;e!==BigInt(0)&&!(e&BigInt(1));)t++,e=e>>BigInt(1);return AA-(t>>1)};Ur.prototype.getChild=function(e){let t=Fte(this._cellId)>>BigInt(2),n=this._cellId+BigInt(2*e+1-4)*t;return new Ur(n)};Ur.prototype.getParent=function(){let e=Fte(this._cellId)<>1&1;return Nte(i[0],o[0][r^n&1],o[1][r])}function jRe(e,t){let n=Lte(e),i=n[0],o=n[1],r=n[2],s=t===30,a=!s&&(BigInt(o)^e>>BigInt(2))&BigInt(1),c=s?1:a?2:0,u=(o<<1)+c,f=(r<<1)+c;return[i,u,f]}function Lte(e){Rte.length===0&&KRe();let t=Number(e>>BigInt(f5)),n=t&yg,i=(1<=0;s--){let c=(1<<2*(s===7?AA-7*gg:gg))-1;n+=Number(e>>BigInt(s*2*gg+1)&BigInt(c))<<2,n=Bte[n];let u=s*gg;o+=n>>gg+2<>2&i)<=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function Ote(e){return 1/zRe*e}function qRe(e,t){let n=[[],[]],i=XRe(t);for(let o=0;o<2;++o){let r=e[o]&-i,s=r+i;n[o][0]=yU(Mte(r)),n[o][1]=yU(Mte(s))}return n}function XRe(e){return 1<>>0}function Mte(e){return 1/kRe*e}function Ag(e,t,n,i,o,r){if(e===gg){let s=(t<>1),n+(s[0]&1),i,o,r^gU[0]),Ag(e,t+(s[1]>>1),n+(s[1]&1),i,o+1,r^gU[1]),Ag(e,t+(s[2]>>1),n+(s[2]&1),i,o+2,r^gU[2]),Ag(e,t+(s[3]>>1),n+(s[3]&1),i,o+3,r^gU[3])}}function KRe(){Ag(0,0,0,0,0,0),Ag(0,0,0,yg,0,yg),Ag(0,0,0,DT,0,DT),Ag(0,0,0,yg|DT,0,yg|DT)}function Fte(e){return e&~e+BigInt(1)}function JRe(e){return BigInt(1)<>3,r=i%8;n+=e[o]>>r&1}return n}Object.defineProperties(d5.prototype,{lengthBits:{get:function(){return this._lengthBits}},availableCount:{get:function(){return this._availableCount}}});d5.prototype.getBit=function(e){if(l(this._constant))return this._constant;let t=e>>3,n=e%8;return(this._bitstream[t]>>n&1)===1};var IT=d5;function Cp(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataTable,n=e.class,i=e.entityId,o=e.propertyTableJson;this._class=n,this._metadataTable=t,this._entityId=i,this._extensions=o.extensions,this._extras=o.extras}Object.defineProperties(Cp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Cp.prototype.hasProperty=function(e){return this._metadataTable.hasProperty(e)};Cp.prototype.hasPropertyBySemantic=function(e){return this._metadataTable.hasPropertyBySemantic(e)};Cp.prototype.getPropertyIds=function(e){return this._metadataTable.getPropertyIds(e)};Cp.prototype.getProperty=function(e){return this._metadataTable.getProperty(this._entityId,e)};Cp.prototype.setProperty=function(e,t){return this._metadataTable.setProperty(this._entityId,e,t)};Cp.prototype.getPropertyBySemantic=function(e){return this._metadataTable.getPropertyBySemantic(this._entityId,e)};Cp.prototype.setPropertyBySemantic=function(e,t){return this._metadataTable.setPropertyBySemantic(this._entityId,e,t)};var PT=Cp;var AU={QUADTREE:"QUADTREE",OCTREE:"OCTREE"};AU.getBranchingFactor=function(e){switch(e){case AU.OCTREE:return 8;case AU.QUADTREE:return 4}};var Vr=Object.freeze(AU);function Xs(){}Object.defineProperties(Xs.prototype,{class:{get:function(){fe.throwInstantiationError()}}});Xs.prototype.hasProperty=function(e){fe.throwInstantiationError()};Xs.prototype.hasPropertyBySemantic=function(e){fe.throwInstantiationError()};Xs.prototype.getPropertyIds=function(e){fe.throwInstantiationError()};Xs.prototype.getProperty=function(e){fe.throwInstantiationError()};Xs.prototype.setProperty=function(e,t){fe.throwInstantiationError()};Xs.prototype.getPropertyBySemantic=function(e){fe.throwInstantiationError()};Xs.prototype.setPropertyBySemantic=function(e,t){fe.throwInstantiationError()};Xs.hasProperty=function(e,t,n){if(l(t[e]))return!0;let i=n.properties;if(!l(i))return!1;let o=i[e];return!!(l(o)&&l(o.default))};Xs.hasPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return!1;let o=i[e];return l(o)};Xs.getPropertyIds=function(e,t,n){n=l(n)?n:[],n.length=0;for(let o in e)e.hasOwnProperty(o)&&l(e[o])&&n.push(o);let i=t.properties;if(l(i))for(let o in i)i.hasOwnProperty(o)&&!l(e[o])&&l(i[o].default)&&n.push(o);return n};Xs.getProperty=function(e,t,n){let i=n.properties[e],o=t[e];Array.isArray(o)&&(o=o.slice());let r=!0;if(o=i.handleNoData(o),!l(o)&&l(i.default))return o=Ye(i.default,!0),i.unpackVectorAndMatrixTypes(o,r);if(l(o))return o=i.normalize(o),o=i.applyValueTransform(o),i.unpackVectorAndMatrixTypes(o,r)};Xs.setProperty=function(e,t,n,i){if(!l(n[e]))return!1;Array.isArray(t)&&(t=t.slice());let o,r=i.properties;l(r)&&(o=r[e]);let s=!0;return l(o)&&(t=o.packVectorAndMatrixTypes(t,s),t=o.unapplyValueTransform(t),t=o.unnormalize(t)),n[e]=t,!0};Xs.getPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return;let o=i[e];if(l(o))return Xs.getProperty(o.id,t,n)};Xs.setPropertyBySemantic=function(e,t,n,i){let o=i.propertiesBySemantic;if(!l(o))return!1;let r=i.propertiesBySemantic[e];return l(r)?Xs.setProperty(r.id,t,n,i):!1};var Fn=Xs;function Tp(e){e=y(e,y.EMPTY_OBJECT);let t=e.subtreeMetadata,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Tp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Tp.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};Tp.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};Tp.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};Tp.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};Tp.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};Tp.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};Tp.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var OP=Tp;var Pt={INT8:"INT8",UINT8:"UINT8",INT16:"INT16",UINT16:"UINT16",INT32:"INT32",UINT32:"UINT32",INT64:"INT64",UINT64:"UINT64",FLOAT32:"FLOAT32",FLOAT64:"FLOAT64"};Pt.getMinimum=function(e){switch(e){case Pt.INT8:return-128;case Pt.UINT8:return 0;case Pt.INT16:return-32768;case Pt.UINT16:return 0;case Pt.INT32:return-2147483648;case Pt.UINT32:return 0;case Pt.INT64:return Ht.supportsBigInt()?BigInt("-9223372036854775808"):-Math.pow(2,63);case Pt.UINT64:return Ht.supportsBigInt()?BigInt(0):0;case Pt.FLOAT32:return-34028234663852886e22;case Pt.FLOAT64:return-Number.MAX_VALUE}};Pt.getMaximum=function(e){switch(e){case Pt.INT8:return 127;case Pt.UINT8:return 255;case Pt.INT16:return 32767;case Pt.UINT16:return 65535;case Pt.INT32:return 2147483647;case Pt.UINT32:return 4294967295;case Pt.INT64:return Ht.supportsBigInt()?BigInt("9223372036854775807"):Math.pow(2,63)-1;case Pt.UINT64:return Ht.supportsBigInt()?BigInt("18446744073709551615"):Math.pow(2,64)-1;case Pt.FLOAT32:return 34028234663852886e22;case Pt.FLOAT64:return Number.MAX_VALUE}};Pt.isIntegerType=function(e){switch(e){case Pt.INT8:case Pt.UINT8:case Pt.INT16:case Pt.UINT16:case Pt.INT32:case Pt.UINT32:case Pt.INT64:case Pt.UINT64:return!0;default:return!1}};Pt.isUnsignedIntegerType=function(e){switch(e){case Pt.UINT8:case Pt.UINT16:case Pt.UINT32:case Pt.UINT64:return!0;default:return!1}};Pt.isVectorCompatible=function(e){switch(e){case Pt.INT8:case Pt.UINT8:case Pt.INT16:case Pt.UINT16:case Pt.INT32:case Pt.UINT32:case Pt.FLOAT32:case Pt.FLOAT64:return!0;default:return!1}};Pt.normalize=function(e,t){return Math.max(Number(e)/Number(Pt.getMaximum(t)),-1)};Pt.unnormalize=function(e,t){let n=Pt.getMaximum(t),i=Pt.isUnsignedIntegerType(t)?0:-n;return e=P.sign(e)*Math.round(Math.abs(e)*Number(n)),(t===Pt.INT64||t===Pt.UINT64)&&Ht.supportsBigInt()&&(e=BigInt(e)),e>n?n:e1;if(!n&&o===1)return e;if(!n)return new Array(o).fill(e);if(!r)return new Array(i).fill(e);if(!t)return new Array(this._arrayLength*o).fill(e);let s=new Array(o).fill(e);return new Array(this._arrayLength).fill(s)};_a.prototype.handleNoData=function(e){let t=this._noData;if(!l(t))return e;if(!zte(e,t))return e};function zte(e,t){if(!Array.isArray(e))return e===t;if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n1;return l(n)?t&&r?e.map(function(s){return n.unpack(s)}):i?n.unpackArray(e):n.unpack(e):e};_a.prototype.packVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=Wt.getMathType(this._type),i=this._isArray,o=Wt.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.pack(s,[])}):i?n.packArray(e,[]):n.pack(e,[]):e};_a.prototype.validate=function(e){if(!(!l(e)&&l(this._default)))return this._required&&!l(e)?"required property must have a value":this._isArray?iBe(this,e):Hte(this,e)};function iBe(e,t){if(!Array.isArray(t))return`value ${t} must be an array`;let n=t.length;if(!e._isVariableLengthArray&&n!==e._arrayLength)return"Array length does not match property.arrayLength";for(let i=0;io?Ute(e,t,n):void 0}if(enn.getMaximum(t))return Ute(e,t,n)}function kte(e,t){return`value ${e} of type ${t} must be finite`}function m5(e,t,n){if(!Array.isArray(e))return n(e,t);for(let i=0;i>3,i=e%8;return(t.typedArray[n]>>i&1)===1}function hBe(e,t,n){let i=e>>3,o=e%8;n?t.typedArray[i]|=1<0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=c*Math.pow(256,a)}return r&&(o=-o),o}function _Be(e,t){let n=t.dataView,i=e*8,o=BigInt(0),r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=BigInt(c)*(BigInt(1)<96?A-71:A>64?A-65:A>47?A+4:A>46?63:62}for(var x=0,h=0;h0&&h<=256),r(h%4==0);var A=n.exports.meshopt_encodeVertexBufferBound(g,h);return c(n.exports.meshopt_encodeVertexBuffer,A,p,g,h)},encodeIndexBuffer:function(p,g,h){r(h==2||h==4),r(g%3==0);var A=f(p,h),x=n.exports.meshopt_encodeIndexBufferBound(g,u(A)+1);return c(n.exports.meshopt_encodeIndexBuffer,x,A,g,4)},encodeIndexSequence:function(p,g,h){r(h==2||h==4);var A=f(p,h),x=n.exports.meshopt_encodeIndexSequenceBound(g,u(A)+1);return c(n.exports.meshopt_encodeIndexSequence,x,A,g,4)},encodeGltfBuffer:function(p,g,h,A){var x={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return r(x[A]),x[A](p,g,h)},encodeFilterOct:function(p,g,h,A){return r(h==4||h==8),r(A>=1&&A<=16),d(n.exports.meshopt_encodeFilterOct,p,g,h,A,16)},encodeFilterQuat:function(p,g,h,A){return r(h==8),r(A>=4&&A<=16),d(n.exports.meshopt_encodeFilterQuat,p,g,h,A,16)},encodeFilterExp:function(p,g,h,A){return r(h>0&&h%4==0),r(A>=1&&A<=24),d(n.exports.meshopt_encodeFilterExp,p,g,h,A,h)}}}();var qte=function(){"use strict";var e="B9h79tEBBBE8fV9gBB9gVUUUUUEU9gIUUUB9gEUEU9gIUUUEUIKQBEEEDDDILLVIEBEOWEUEC+Q/IEKR/LEdO9tw9t9vv95DBh9f9f939h79t9f9j9h229f9jT9vv7BB8a9tw79o9v9wT9f9kw9j9v9kw9WwvTw949C919m9mwvBEy9tw79o9v9wT9f9kw9j9v9kw69u9kw949C919m9mwvBDe9tw79o9v9wT9f9kw9j9v9kw69u9kw949Twg91w9u9jwBIl9tw79o9v9wT9f9kw9j9v9kws9p2Twv9P9jTBLk9tw79o9v9wT9f9kw9j9v9kws9p2Twv9R919hTBVl9tw79o9v9wT9f9kw9j9v9kws9p2Twvt949wBOL79iv9rBRQ+p8yQDBK/3SEZU8jJJJJBCJ/EB9rGV8kJJJJBC9+HODNADCEFAL0MBCUHOAIrBBC+gE9HMBAVAIALFGRAD9rADZ1JJJBHWCJ/ABAD9uHOAICEFHLDNADtMBAOC/wfBgGOCJDAOCJD6eHdCBHQINAQAE9PMEAdAEAQ9rAQAdFAE6eGKCSFGOCL4CIFCD4HXDNDNDNDNAOC9wgGMtMBCBHpCEHSAWCJDFHZALHhINARAh9rAX6MIDNARAhAXFGL9rCk6MBCZHOINAWCJ/CBFAOGIFGOC9wFHoDNDNDNDNDNAhAIC9wFGaCO4FrBBAaCI4COg4CIgpLBEDIBKAo9CB83IBAoCWF9CB83IBXIKAoALrBLALrBBGaCO4GcAcCIsGce86BBAOCgFALCLFAcFGorBBAaCL4CIgGcAcCIsGce86BBAOCvFAoAcFGorBBAaCD4CIgGcAcCIsGce86BBAOC7FAoAcFGorBBAaCIgGaAaCIsGae86BBAOCTFAoAaFGarBBALrBEGoCO4GcAcCIsGce86BBAOC91FAaAcFGarBBAoCL4CIgGcAcCIsGce86BBAOC4FAaAcFGarBBAoCD4CIgGcAcCIsGce86BBAOC93FAaAcFGarBBAoCIgGoAoCIsGoe86BBAOC94FAaAoFGarBBALrBDGoCO4GcAcCIsGce86BBAOC95FAaAcFGarBBAoCL4CIgGcAcCIsGce86BBAOC96FAaAcFGarBBAoCD4CIgGcAcCIsGce86BBAOC97FAaAcFGarBBAoCIgGoAoCIsGoe86BBAOC98FAaAoFGorBBALrBIGLCO4GaAaCIsGae86BBAOC99FAoAaFGorBBALCL4CIgGaAaCIsGae86BBAOC9+FAoAaFGorBBALCD4CIgGaAaCIsGae86BBAOCUFAoAaFGOrBBALCIgGLALCIsGLe86BBAOALFHLXDKAoALrBWALrBBGaCL4GcAcCSsGce86BBAOCgFALCWFAcFGorBBAaCSgGaAaCSsGae86BBAOCvFAoAaFGorBBALrBEGaCL4GcAcCSsGce86BBAOC7FAoAcFGorBBAaCSgGaAaCSsGae86BBAOCTFAoAaFGorBBALrBDGaCL4GcAcCSsGce86BBAOC91FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC4FAoAaFGorBBALrBIGaCL4GcAcCSsGce86BBAOC93FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC94FAoAaFGorBBALrBLGaCL4GcAcCSsGce86BBAOC95FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC96FAoAaFGorBBALrBVGaCL4GcAcCSsGce86BBAOC97FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC98FAoAaFGorBBALrBOGaCL4GcAcCSsGce86BBAOC99FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC9+FAoAaFGorBBALrBRGLCL4GaAaCSsGae86BBAOCUFAoAaFGOrBBALCSgGLALCSsGLe86BBAOALFHLXEKAoAL8pBB83BBAoCWFALCWF8pBB83BBALCZFHLKDNAIAM9PMBAICZFHOARAL9rCl0MEKKAIAM6MIALtMIDNAKtMBAWApFrBBHoCBHOAZHIINAIAWCJ/CBFAOFrBBGaCE4CBAaCEg9r7AoFGo86BBAIADFHIAOCEFGOAK9HMBKKAZCEFHZApCEFGpAD6HSALHhApAD9HMEXVKKCBHLASCEgMDXIKALAXAD2FHcDNAKtMBCBHhCEHSAWCJDFHMINARAL9rAX6MIALtMDALAXFHLAWAhFrBBHoCBHOAMHIINAIAWCJ/CBFAOFrBBGaCE4CBAaCEg9r7AoFGo86BBAIADFHIAOCEFGOAK9HMBKAMCEFHMAhCEFGhAD6HSAhAD9HMBKAcHLXIKCBHOCEHSINARAL9rAX6MDALtMEALAXFHLAOCEFGOAD6HSADAO9HMBKAcHLXDKCBHLASCEgtMEKC9+HOXIKABAQAD2FAWCJDFAKAD2Z1JJJB8aAWAWCJDFAKCUFAD2FADZ1JJJB8aAKAQFHQALMBKC9+HOXEKCBC99ARAL9rADCAADCA0eseHOKAVCJ/EBF8kJJJJBAOK/YZEhU8jJJJJBC/AE9rGV8kJJJJBC9+HODNAECI9uGRChFAL0MBCUHOAIrBBGWC/wEgC/gE9HMBAWCSgGdCE0MBAVC/ABFCfECJEZ+JJJJB8aAVCuF9CU83IBAVC8wF9CU83IBAVCYF9CU83IBAVCAF9CU83IBAVCkF9CU83IBAVCZF9CU83IBAV9CU83IWAV9CU83IBAIALFC9wFHQAICEFGWARFHODNAEtMBCMCSAdCEseHKCBHXCBHMCBHdCBHICBHLINDNAOAQ9NMBC9+HOXIKDNDNAWrBBGRC/vE0MBAVC/ABFALARCL4CU7FCSgCITFGpYDLHSApYDBHZDNARCSgGpAK9PMBAVAIARCU7FCSgCDTFYDBAXApeHRAptHpDNDNADCD9HMBABAdCETFGhAZ87EBAhCDFAS87EBAhCLFAR87EBXEKABAdCDTFGhAZbDBAhCLFASbDBAhCWFARbDBKAXApFHXAVC/ABFALCITFGhARbDBAhASbDLAVAICDTFARbDBAVC/ABFALCEFCSgGLCITFGhAZbDBAhARbDLAIApFHIALCEFHLXDKDNDNApCSsMBAMApFApC987FCEFHMXEKAOCEFHRAO8sBBGpCfEgHhDNDNApCU9MMBARHOXEKAOCVFHOAhCfBgHhCRHpDNINAR8sBBGoCfBgApTAhvHhAoCU9KMEARCEFHRApCRFGpC8j9HMBXDKKARCEFHOKAhCE4CBAhCEg9r7AMFHMKDNDNADCD9HMBABAdCETFGRAZ87EBARCDFAS87EBARCLFAM87EBXEKABAdCDTFGRAZbDBARCLFASbDBARCWFAMbDBKAVC/ABFALCITFGRAMbDBARASbDLAVAICDTFAMbDBAVC/ABFALCEFCSgGLCITFGRAZbDBARAMbDLAICEFHIALCEFHLXEKDNARCPE0MBAXCEFGoAVAIAQARCSgFrBBGpCL49rCSgCDTFYDBApCZ6GheHRAVAIAp9rCSgCDTFYDBAoAhFGSApCSgGoeHpAotHoDNDNADCD9HMBABAdCETFGZAX87EBAZCDFAR87EBAZCLFAp87EBXEKABAdCDTFGZAXbDBAZCLFARbDBAZCWFApbDBKAVAICDTFAXbDBAVC/ABFALCITFGZARbDBAZAXbDLAVAICEFGICSgCDTFARbDBAVC/ABFALCEFCSgCITFGZApbDBAZARbDLAVAIAhFCSgGICDTFApbDBAVC/ABFALCDFCSgGLCITFGRAXbDBARApbDLALCEFHLAIAoFHIASAoFHXXEKAXCBAOrBBGZeGaARC/+EsGRFHSAZCSgHcAZCL4HxDNDNAZCS0MBASCEFHoXEKASHoAVAIAx9rCSgCDTFYDBHSKDNDNAcMBAoCEFHXXEKAoHXAVAIAZ9rCSgCDTFYDBHoKDNDNARtMBAOCEFHRXEKAOCDFHRAO8sBEGhCfEgHpDNAhCU9KMBAOCOFHaApCfBgHpCRHODNINAR8sBBGhCfBgAOTApvHpAhCU9KMEARCEFHRAOCRFGOC8j9HMBKAaHRXEKARCEFHRKApCE4CBApCEg9r7AMFGMHaKDNDNAxCSsMBARHpXEKARCEFHpAR8sBBGOCfEgHhDNAOCU9KMBARCVFHSAhCfBgHhCRHODNINAp8sBBGRCfBgAOTAhvHhARCU9KMEApCEFHpAOCRFGOC8j9HMBKASHpXEKApCEFHpKAhCE4CBAhCEg9r7AMFGMHSKDNDNAcCSsMBApHOXEKApCEFHOAp8sBBGRCfEgHhDNARCU9KMBApCVFHoAhCfBgHhCRHRDNINAO8sBBGpCfBgARTAhvHhApCU9KMEAOCEFHOARCRFGRC8j9HMBKAoHOXEKAOCEFHOKAhCE4CBAhCEg9r7AMFGMHoKDNDNADCD9HMBABAdCETFGRAa87EBARCDFAS87EBARCLFAo87EBXEKABAdCDTFGRAabDBARCLFASbDBARCWFAobDBKAVC/ABFALCITFGRASbDBARAabDLAVAICDTFAabDBAVC/ABFALCEFCSgCITFGRAobDBARASbDLAVAICEFGICSgCDTFASbDBAVC/ABFALCDFCSgCITFGRAabDBARAobDLAVAIAZCZ6AxCSsvFGICSgCDTFAobDBAIActAcCSsvFHIALCIFHLKAWCEFHWALCSgHLAICSgHIAdCIFGdAE6MBKKCBC99AOAQseHOKAVC/AEF8kJJJJBAOK+LLEVU8jJJJJBCZ9rHVC9+HODNAECVFAL0MBCUHOAIrBBC/+EgC/QE9HMBAV9CB83IWAICEFHRAIALFC98FHWDNAEtMBDNADCDsMBCBHdINDNARAW6MBC9+SKARCEFHOAR8sBBGLCfEgHIDNDNALCU9MMBAOHRXEKARCVFHRAICfBgHICRHLDNINAO8sBBGDCfBgALTAIvHIADCU9KMEAOCEFHOALCRFGLC8j9HMBXDKKAOCEFHRKABAdCDTFAICD4CBAICE4CEg9r7AVCWFAICEgCDTvGOYDBFGLbDBAOALbDBAdCEFGdAE9HMBXDKKCBHdINDNARAW6MBC9+SKARCEFHOAR8sBBGLCfEgHIDNDNALCU9MMBAOHRXEKARCVFHRAICfBgHICRHLDNINAO8sBBGDCfBgALTAIvHIADCU9KMEAOCEFHOALCRFGLC8j9HMBXDKKAOCEFHRKABAdCETFAICD4CBAICE4CEg9r7AVCWFAICEgCDTvGOYDBFGL87EBAOALbDBAdCEFGdAE9HMBKKCBC99ARAWseHOKAOK+lVOEUE99DUD99EUD99DNDNADCL9HMBAEtMEINDNDNABCDFGD8sBB+yAB8sBBGI+yGL+L+TABCEFGV8sBBGO+yGR+L+TGWjBB/+9CAWAWnjBBBBAWAWjBBBB9gGdeGQ+MGKAQAICB9IeALmGWAWnAKAQAOCB9IeARmGQAQnmm+R+VGLnjBBBzjBBB+/AdemGR+LjBBB9P9dtMBAR+oHIXEKCJJJJ94HIKADAI86BBDNDNAQALnjBBBzjBBB+/AQjBBBB9gemGQ+LjBBB9P9dtMBAQ+oHDXEKCJJJJ94HDKAVAD86BBDNDNAWALnjBBBzjBBB+/AWjBBBB9gemGW+LjBBB9P9dtMBAW+oHDXEKCJJJJ94HDKABAD86BBABCLFHBAECUFGEMBXDKKAEtMBINDNDNABCLFGD8uEB+yAB8uEBGI+yGL+L+TABCDFGV8uEBGO+yGR+L+TGWjB/+fsAWAWnjBBBBAWAWjBBBB9gGdeGQ+MGKAQAICB9IeALmGWAWnAKAQAOCB9IeARmGQAQnmm+R+VGLnjBBBzjBBB+/AdemGR+LjBBB9P9dtMBAR+oHIXEKCJJJJ94HIKADAI87EBDNDNAQALnjBBBzjBBB+/AQjBBBB9gemGQ+LjBBB9P9dtMBAQ+oHDXEKCJJJJ94HDKAVAD87EBDNDNAWALnjBBBzjBBB+/AWjBBBB9gemGW+LjBBB9P9dtMBAW+oHDXEKCJJJJ94HDKABAD87EBABCWFHBAECUFGEMBKKK/SILIUI99IUE99DNAEtMBCBHIABHLINDNDNj/zL81zALCOF8uEBGVCIv+y+VGOAL8uEB+ynGRjB/+fsnjBBBzjBBB+/ARjBBBB9gemGW+LjBBB9P9dtMBAW+oHdXEKCJJJJ94HdKALCLF8uEBHQALCDF8uEBHKABAVCEFCIgAIvCETFAd87EBDNDNAOAK+ynGWjB/+fsnjBBBzjBBB+/AWjBBBB9gemGX+LjBBB9P9dtMBAX+oHKXEKCJJJJ94HKKABAVCDFCIgAIvCETFAK87EBDNDNAOAQ+ynGOjB/+fsnjBBBzjBBB+/AOjBBBB9gemGX+LjBBB9P9dtMBAX+oHQXEKCJJJJ94HQKABAVCUFCIgAIvCETFAQ87EBDNDNjBBJzARARn+TAWAWn+TAOAOn+TGRjBBBBARjBBBB9ge+RjB/+fsnjBBBzmGR+LjBBB9P9dtMBAR+oHQXEKCJJJJ94HQKABAVCIgAIvCETFAQ87EBALCWFHLAICLFHIAECUFGEMBKKK9MBDNADCD4AE2GEtMBINABABYDBGDCWTCW91+yADCE91CJJJ/8IFCJJJ98g++nuDBABCLFHBAECUFGEMBKKK9TEIUCBCBYDJ1JJBGEABCIFC98gFGBbDJ1JJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK/lEEEUDNDNAEABvCIgtMBABHIXEKDNDNADCZ9PMBABHIXEKABHIINAIAEYDBbDBAICLFAECLFYDBbDBAICWFAECWFYDBbDBAICXFAECXFYDBbDBAICZFHIAECZFHEADC9wFGDCS0MBKKADCL6MBINAIAEYDBbDBAECLFHEAICLFHIADC98FGDCI0MBKKDNADtMBINAIAErBB86BBAICEFHIAECEFHEADCUFGDMBKKABK/AEEDUDNDNABCIgtMBABHIXEKAECfEgC+B+C+EW2HLDNDNADCZ9PMBABHIXEKABHIINAIALbDBAICXFALbDBAICWFALbDBAICLFALbDBAICZFHIADC9wFGDCS0MBKKADCL6MBINAIALbDBAICLFHIADC98FGDCI0MBKKDNADtMBINAIAE86BBAICEFHIADCUFGDMBKKABKKKEBCJWKLZ9kBB",t="B9h79tEBBBEkL9gBB9gVUUUUUEU9gIUUUB9gEUEUIKQBBEBEEDDDILVE9wEEEVIEBEOWEUEC+Q/aEKR/LEdO9tw9t9vv95DBh9f9f939h79t9f9j9h229f9jT9vv7BB8a9tw79o9v9wT9f9kw9j9v9kw9WwvTw949C919m9mwvBDy9tw79o9v9wT9f9kw9j9v9kw69u9kw949C919m9mwvBLe9tw79o9v9wT9f9kw9j9v9kw69u9kw949Twg91w9u9jwBVl9tw79o9v9wT9f9kw9j9v9kws9p2Twv9P9jTBOk9tw79o9v9wT9f9kw9j9v9kws9p2Twv9R919hTBRl9tw79o9v9wT9f9kw9j9v9kws9p2Twvt949wBWL79iv9rBdQ/T9TQLBZIK9+EVU8jJJJJBCZ9rHBCBHEINCBHDCBHIINABCWFADFAICJUAEAD4CEgGLe86BBAIALFHIADCEFGDCW9HMBKAEC+Q+YJJBFAI86BBAECITC+Q1JJBFAB8pIW83IBAECEFGECJD9HMBKK/H8jLhUD97EUO978jJJJJBCJ/KB9rGV8kJJJJBC9+HODNADCEFAL0MBCUHOAIrBBC+gE9HMBAVAIALFGRAD9rAD/8QBBCJ/ABAD9uHOAICEFHLDNADtMBAOC/wfBgGOCJDAOCJD6eHWCBHdINAdAE9PMEAWAEAd9rAdAWFAE6eGQCSFGOC9wgGKCI2HXAKCETHMAOCL4CIFCD4HpABAdAD2FHSCBHZDNINCEHhALHoCBHaDNINARAo9rAp6MIAVCJ/CBFAaAK2FHcAoApFHLCBHIDNAKC/AB6MBARAL9rC/gB6MBCBHOINAcAOFHIDNDNDNDNDNAoAOCO4FrBBGxCIgpLBEDIBKAIPXBBBBBBBBBBBBBBBBPKLBXIKAIALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLBALCLFAyPqBFAkC+Q+YJJBFrBBFHLXDKAIALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLBALCWFAyPqBFAkC+Q+YJJBFrBBFHLXEKAIALPBBBPKLBALCZFHLKDNDNDNDNDNAxCD4CIgpLBEDIBKAIPXBBBBBBBBBBBBBBBBPKLZXIKAIALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLZALCLFAyPqBFAkC+Q+YJJBFrBBFHLXDKAIALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLZALCWFAyPqBFAkC+Q+YJJBFrBBFHLXEKAIALPBBBPKLZALCZFHLKDNDNDNDNDNAxCL4CIgpLBEDIBKAIPXBBBBBBBBBBBBBBBBPKLAXIKAIALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLAALCLFAyPqBFAkC+Q+YJJBFrBBFHLXDKAIALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLAALCWFAyPqBFAkC+Q+YJJBFrBBFHLXEKAIALPBBBPKLAALCZFHLKDNDNDNDNDNAxCO4pLBEDIBKAIPXBBBBBBBBBBBBBBBBPKL8wXIKAIALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGxCITC+Q1JJBFPBIBAxC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGxCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKL8wALCLFAyPqBFAxC+Q+YJJBFrBBFHLXDKAIALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGxCITC+Q1JJBFPBIBAxC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGxCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKL8wALCWFAyPqBFAxC+Q+YJJBFrBBFHLXEKAIALPBBBPKL8wALCZFHLKAOC/ABFHIAOCJEFAK0MEAIHOARAL9rC/fB0MBKKDNDNAIAK9PMBAICI4HOINARAL9rCk6MDAcAIFHxDNDNDNDNDNAoAICO4FrBBAOCOg4CIgpLBEDIBKAxPXBBBBBBBBBBBBBBBBPKLBXIKAxALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLBALCLFAyPqBFAkC+Q+YJJBFrBBFHLXDKAxALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLBALCWFAyPqBFAkC+Q+YJJBFrBBFHLXEKAxALPBBBPKLBALCZFHLKAOCDFHOAICZFGIAK6MBKKALtMBAaCI6HhALHoAaCEFGOHaAOCLsMDXEKKCBHLAhCEgMDKDNAKtMBAVCJDFAZFHIAVAZFPBDBHyCBHxINAIAVCJ/CBFAxFGOPBLBGlCEP9tAlPXEEEEEEEEEEEEEEEEGqP9OP9hP9RGlAOAKFPBLBG8aCEP9tA8aAqP9OP9hP9RG8aPMBZEhDoIaLcVxOqRlGeAOAMFPBLBG3CEP9tA3AqP9OP9hP9RG3AOAXFPBLBG5CEP9tA5AqP9OP9hP9RG5PMBZEhDoIaLcVxOqRlG8ePMBEZhDIoaLVcxORqlGqAqPMBEDIBEDIBEDIBEDIAyP9uGyP9aDBBAIADFGOAyAqAqPMLVORLVORLVORLVORP9uGyP9aDBBAOADFGOAyAqAqPMWdQKWdQKWdQKWdQKP9uGyP9aDBBAOADFGOAyAqAqPMXMpSXMpSXMpSXMpSP9uGyP9aDBBAOADFGOAyAeA8ePMWdkyQK8aeXM35pS8e8fGqAqPMBEDIBEDIBEDIBEDIP9uGyP9aDBBAOADFGOAyAqAqPMLVORLVORLVORLVORP9uGyP9aDBBAOADFGOAyAqAqPMWdQKWdQKWdQKWdQKP9uGyP9aDBBAOADFGOAyAqAqPMXMpSXMpSXMpSXMpSP9uGyP9aDBBAOADFGOAyAlA8aPMWkdyQ8aKeX3M5p8eS8fGlA3A5PMWkdyQ8aKeX3M5p8eS8fG8aPMBEZhDIoaLVcxORqlGqAqPMBEDIBEDIBEDIBEDIP9uGyP9aDBBAOADFGOAyAqAqPMLVORLVORLVORLVORP9uGyP9aDBBAOADFGOAyAqAqPMWdQKWdQKWdQKWdQKP9uGyP9aDBBAOADFGOAyAqAqPMXMpSXMpSXMpSXMpSP9uGyP9aDBBAOADFGOAyAlA8aPMWdkyQK8aeXM35pS8e8fGqAqPMBEDIBEDIBEDIBEDIP9uGyP9aDBBAOADFGOAyAqAqPMLVORLVORLVORLVORP9uGyP9aDBBAOADFGOAyAqAqPMWdQKWdQKWdQKWdQKP9uGyP9aDBBAOADFGOAyAqAqPMXMpSXMpSXMpSXMpSP9uGyP9aDBBAOADFHIAxCZFGxAK6MBKKAZCLFGZAD6MBKASAVCJDFAQAD2/8QBBAVAVCJDFAQCUFAD2FAD/8QBBAQAdFHdC9+HOALMEXIKKC9+HOXEKCBC99ARAL9rADCAADCA0eseHOKAVCJ/KBF8kJJJJBAOKWBZ+BJJJBK/UZEhU8jJJJJBC/AE9rGV8kJJJJBC9+HODNAECI9uGRChFAL0MBCUHOAIrBBGWC/wEgC/gE9HMBAWCSgGdCE0MBAVC/ABFCfECJE/8KBAVCuF9CU83IBAVC8wF9CU83IBAVCYF9CU83IBAVCAF9CU83IBAVCkF9CU83IBAVCZF9CU83IBAV9CU83IWAV9CU83IBAIALFC9wFHQAICEFGWARFHODNAEtMBCMCSAdCEseHKCBHXCBHMCBHdCBHICBHLINDNAOAQ9NMBC9+HOXIKDNDNAWrBBGRC/vE0MBAVC/ABFALARCL4CU7FCSgCITFGpYDLHSApYDBHZDNARCSgGpAK9PMBAVAIARCU7FCSgCDTFYDBAXApeHRAptHpDNDNADCD9HMBABAdCETFGhAZ87EBAhCDFAS87EBAhCLFAR87EBXEKABAdCDTFGhAZbDBAhCLFASbDBAhCWFARbDBKAXApFHXAVC/ABFALCITFGhARbDBAhASbDLAVAICDTFARbDBAVC/ABFALCEFCSgGLCITFGhAZbDBAhARbDLAIApFHIALCEFHLXDKDNDNApCSsMBAMApFApC987FCEFHMXEKAOCEFHRAO8sBBGpCfEgHhDNDNApCU9MMBARHOXEKAOCVFHOAhCfBgHhCRHpDNINAR8sBBGoCfBgApTAhvHhAoCU9KMEARCEFHRApCRFGpC8j9HMBXDKKARCEFHOKAhCE4CBAhCEg9r7AMFHMKDNDNADCD9HMBABAdCETFGRAZ87EBARCDFAS87EBARCLFAM87EBXEKABAdCDTFGRAZbDBARCLFASbDBARCWFAMbDBKAVC/ABFALCITFGRAMbDBARASbDLAVAICDTFAMbDBAVC/ABFALCEFCSgGLCITFGRAZbDBARAMbDLAICEFHIALCEFHLXEKDNARCPE0MBAXCEFGoAVAIAQARCSgFrBBGpCL49rCSgCDTFYDBApCZ6GheHRAVAIAp9rCSgCDTFYDBAoAhFGSApCSgGoeHpAotHoDNDNADCD9HMBABAdCETFGZAX87EBAZCDFAR87EBAZCLFAp87EBXEKABAdCDTFGZAXbDBAZCLFARbDBAZCWFApbDBKAVAICDTFAXbDBAVC/ABFALCITFGZARbDBAZAXbDLAVAICEFGICSgCDTFARbDBAVC/ABFALCEFCSgCITFGZApbDBAZARbDLAVAIAhFCSgGICDTFApbDBAVC/ABFALCDFCSgGLCITFGRAXbDBARApbDLALCEFHLAIAoFHIASAoFHXXEKAXCBAOrBBGZeGaARC/+EsGRFHSAZCSgHcAZCL4HxDNDNAZCS0MBASCEFHoXEKASHoAVAIAx9rCSgCDTFYDBHSKDNDNAcMBAoCEFHXXEKAoHXAVAIAZ9rCSgCDTFYDBHoKDNDNARtMBAOCEFHRXEKAOCDFHRAO8sBEGhCfEgHpDNAhCU9KMBAOCOFHaApCfBgHpCRHODNINAR8sBBGhCfBgAOTApvHpAhCU9KMEARCEFHRAOCRFGOC8j9HMBKAaHRXEKARCEFHRKApCE4CBApCEg9r7AMFGMHaKDNDNAxCSsMBARHpXEKARCEFHpAR8sBBGOCfEgHhDNAOCU9KMBARCVFHSAhCfBgHhCRHODNINAp8sBBGRCfBgAOTAhvHhARCU9KMEApCEFHpAOCRFGOC8j9HMBKASHpXEKApCEFHpKAhCE4CBAhCEg9r7AMFGMHSKDNDNAcCSsMBApHOXEKApCEFHOAp8sBBGRCfEgHhDNARCU9KMBApCVFHoAhCfBgHhCRHRDNINAO8sBBGpCfBgARTAhvHhApCU9KMEAOCEFHOARCRFGRC8j9HMBKAoHOXEKAOCEFHOKAhCE4CBAhCEg9r7AMFGMHoKDNDNADCD9HMBABAdCETFGRAa87EBARCDFAS87EBARCLFAo87EBXEKABAdCDTFGRAabDBARCLFASbDBARCWFAobDBKAVC/ABFALCITFGRASbDBARAabDLAVAICDTFAabDBAVC/ABFALCEFCSgCITFGRAobDBARASbDLAVAICEFGICSgCDTFASbDBAVC/ABFALCDFCSgCITFGRAabDBARAobDLAVAIAZCZ6AxCSsvFGICSgCDTFAobDBAIActAcCSsvFHIALCIFHLKAWCEFHWALCSgHLAICSgHIAdCIFGdAE6MBKKCBC99AOAQseHOKAVC/AEF8kJJJJBAOK+LLEVU8jJJJJBCZ9rHVC9+HODNAECVFAL0MBCUHOAIrBBC/+EgC/QE9HMBAV9CB83IWAICEFHRAIALFC98FHWDNAEtMBDNADCDsMBCBHdINDNARAW6MBC9+SKARCEFHOAR8sBBGLCfEgHIDNDNALCU9MMBAOHRXEKARCVFHRAICfBgHICRHLDNINAO8sBBGDCfBgALTAIvHIADCU9KMEAOCEFHOALCRFGLC8j9HMBXDKKAOCEFHRKABAdCDTFAICD4CBAICE4CEg9r7AVCWFAICEgCDTvGOYDBFGLbDBAOALbDBAdCEFGdAE9HMBXDKKCBHdINDNARAW6MBC9+SKARCEFHOAR8sBBGLCfEgHIDNDNALCU9MMBAOHRXEKARCVFHRAICfBgHICRHLDNINAO8sBBGDCfBgALTAIvHIADCU9KMEAOCEFHOALCRFGLC8j9HMBXDKKAOCEFHRKABAdCETFAICD4CBAICE4CEg9r7AVCWFAICEgCDTvGOYDBFGL87EBAOALbDBAdCEFGdAE9HMBKKCBC99ARAWseHOKAOK+epLIUO97EUE978jJJJJBCA9rHIDNDNADCL9HMBDNAEC98gGLtMBCBHVABHDINADADPBBBGOCkP+rECkP+sEP/6EGRAOCWP+rECkP+sEP/6EARP/gEAOCZP+rECkP+sEP/6EGWP/gEP/kEP/lEGdPXBBBBBBBBBBBBBBBBP+2EGQARPXBBBJBBBJBBBJBBBJGKP9OP9RP/kEGRPXBB/+9CBB/+9CBB/+9CBB/+9CARARP/mEAdAdP/mEAWAQAWAKP9OP9RP/kEGRARP/mEP/kEP/kEP/jEP/nEGWP/mEPXBBN0BBN0BBN0BBN0GQP/kEPXfBBBfBBBfBBBfBBBP9OAOPXBBBfBBBfBBBfBBBfP9OP9QARAWP/mEAQP/kECWP+rEPXBfBBBfBBBfBBBfBBP9OP9QAdAWP/mEAQP/kECZP+rEPXBBfBBBfBBBfBBBfBP9OP9QPKBBADCZFHDAVCLFGVAL6MBKKALAE9PMEAIAECIgGVCDTGDvCBCZAD9r/8KBAIABALCDTFGLAD/8QBBDNAVtMBAIAIPBLBGOCkP+rECkP+sEP/6EGRAOCWP+rECkP+sEP/6EARP/gEAOCZP+rECkP+sEP/6EGWP/gEP/kEP/lEGdPXBBBBBBBBBBBBBBBBP+2EGQARPXBBBJBBBJBBBJBBBJGKP9OP9RP/kEGRPXBB/+9CBB/+9CBB/+9CBB/+9CARARP/mEAdAdP/mEAWAQAWAKP9OP9RP/kEGRARP/mEP/kEP/kEP/jEP/nEGWP/mEPXBBN0BBN0BBN0BBN0GQP/kEPXfBBBfBBBfBBBfBBBP9OAOPXBBBfBBBfBBBfBBBfP9OP9QARAWP/mEAQP/kECWP+rEPXBfBBBfBBBfBBBfBBP9OP9QAdAWP/mEAQP/kECZP+rEPXBBfBBBfBBBfBBBfBP9OP9QPKLBKALAIAD/8QBBSKDNAEC98gGXtMBCBHVABHDINADCZFGLALPBBBGOPXBBBBBBffBBBBBBffGKP9OADPBBBGdAOPMLVORXMpScxql358e8fPXfUBBfUBBfUBBfUBBP9OP/6EAdAOPMBEDIWdQKZhoaky8aeGOCZP+sEP/6EGRP/gEAOCZP+rECZP+sEP/6EGWP/gEP/kEP/lEGOPXB/+fsB/+fsB/+fsB/+fsAWAOPXBBBBBBBBBBBBBBBBP+2EGQAWPXBBBJBBBJBBBJBBBJGMP9OP9RP/kEGWAWP/mEAOAOP/mEARAQARAMP9OP9RP/kEGOAOP/mEP/kEP/kEP/jEP/nEGRP/mEPXBBN0BBN0BBN0BBN0GQP/kECZP+rEAWARP/mEAQP/kEPXffBBffBBffBBffBBP9OP9QGWAOARP/mEAQP/kEPXffBBffBBffBBffBBP9OGOPMWdkyQK8aeXM35pS8e8fP9QPKBBADAdAKP9OAWAOPMBEZhDIoaLVcxORqlP9QPKBBADCAFHDAVCLFGVAX6MBKKAXAE9PMBAIAECIgGVCITGDFCBCAAD9r/8KBAIABAXCITFGLAD/8QBBDNAVtMBAIAIPBLZGOPXBBBBBBffBBBBBBffGKP9OAIPBLBGdAOPMLVORXMpScxql358e8fPXfUBBfUBBfUBBfUBBP9OP/6EAdAOPMBEDIWdQKZhoaky8aeGOCZP+sEP/6EGRP/gEAOCZP+rECZP+sEP/6EGWP/gEP/kEP/lEGOPXB/+fsB/+fsB/+fsB/+fsAWAOPXBBBBBBBBBBBBBBBBP+2EGQAWPXBBBJBBBJBBBJBBBJGMP9OP9RP/kEGWAWP/mEAOAOP/mEARAQARAMP9OP9RP/kEGOAOP/mEP/kEP/kEP/jEP/nEGRP/mEPXBBN0BBN0BBN0BBN0GQP/kECZP+rEAWARP/mEAQP/kEPXffBBffBBffBBffBBP9OP9QGWAOARP/mEAQP/kEPXffBBffBBffBBffBBP9OGOPMWdkyQK8aeXM35pS8e8fP9QPKLZAIAdAKP9OAWAOPMBEZhDIoaLVcxORqlP9QPKLBKALAIAD/8QBBKK/4WLLUE97EUV978jJJJJBC8w9rHIDNAEC98gGLtMBCBHVABHOINAIAOPBBBGRAOCZFGWPBBBGdPMLVORXMpScxql358e8fGQCZP+sEGKCLP+rEPKLBAOPXBBJzBBJzBBJzBBJzPX/zL81z/zL81z/zL81z/zL81zAKPXIBBBIBBBIBBBIBBBP9QP/6EP/nEGKARAdPMBEDIWdQKZhoaky8aeGRCZP+rECZP+sEP/6EP/mEGdAdP/mEAKARCZP+sEP/6EP/mEGXAXP/mEAKAQCZP+rECZP+sEP/6EP/mEGQAQP/mEP/kEP/kEP/lEPXBBBBBBBBBBBBBBBBP+4EP/jEPXB/+fsB/+fsB/+fsB/+fsGKP/mEPXBBN0BBN0BBN0BBN0GRP/kEPXffBBffBBffBBffBBGMP9OAXAKP/mEARP/kECZP+rEP9QGXAQAKP/mEARP/kECZP+rEAdAKP/mEARP/kEAMP9OP9QGKPMBEZhDIoaLVcxORqlGRP5BAIPBLBPeB+t+J83IBAOCWFARP5EAIPBLBPeE+t+J83IBAWAXAKPMWdkyQK8aeXM35pS8e8fGKP5BAIPBLBPeD+t+J83IBAOCkFAKP5EAIPBLBPeI+t+J83IBAOCAFHOAVCLFGVAL6MBKKDNALAE9PMBAIAECIgGVCITGOFCBCAAO9r/8KBAIABALCITFGWAO/8QBBDNAVtMBAIAIPBLBGRAIPBLZGdPMLVORXMpScxql358e8fGQCZP+sEGKCLP+rEPKLAAIPXBBJzBBJzBBJzBBJzPX/zL81z/zL81z/zL81z/zL81zAKPXIBBBIBBBIBBBIBBBP9QP/6EP/nEGKARAdPMBEDIWdQKZhoaky8aeGRCZP+rECZP+sEP/6EP/mEGdAdP/mEAKARCZP+sEP/6EP/mEGXAXP/mEAKAQCZP+rECZP+sEP/6EP/mEGQAQP/mEP/kEP/kEP/lEPXBBBBBBBBBBBBBBBBP+4EP/jEPXB/+fsB/+fsB/+fsB/+fsGKP/mEPXBBN0BBN0BBN0BBN0GRP/kEPXffBBffBBffBBffBBGMP9OAXAKP/mEARP/kECZP+rEP9QGXAQAKP/mEARP/kECZP+rEAdAKP/mEARP/kEAMP9OP9QGKPMBEZhDIoaLVcxORqlGRP5BAIPBLAPeB+t+J83IBAIARP5EAIPBLAPeE+t+J83IWAIAXAKPMWdkyQK8aeXM35pS8e8fGKP5BAIPBLAPeD+t+J83IZAIAKP5EAIPBLAPeI+t+J83IkKAWAIAO/8QBBKK+pDDIUE978jJJJJBC/AB9rHIDNADCD4AE2GLC98gGVtMBCBHDABHEINAEAEPBBBGOCWP+rECWP+sEP/6EAOCEP+sEPXBBJzBBJzBBJzBBJzP+uEPXBBJfBBJfBBJfBBJfP9OP/mEPKBBAECZFHEADCLFGDAV6MBKKDNAVAL9PMBAIALCIgGDCDTGEvCBC/ABAE9r/8KBAIABAVCDTFGVAE/8QBBDNADtMBAIAIPBLBGOCWP+rECWP+sEP/6EAOCEP+sEPXBBJzBBJzBBJzBBJzP+uEPXBBJfBBJfBBJfBBJfP9OP/mEPKLBKAVAIAE/8QBBKK9TEIUCBCBYDJ1JJBGEABCIFC98gFGBbDJ1JJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIKKKEBCJWKLZ9tBB",n=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=e;WebAssembly.validate(n)&&(o=t);var r,s=WebAssembly.instantiate(a(o),{}).then(function(d){r=d.instance,r.exports.__wasm_call_ctors()});function a(d){for(var p=new Uint8Array(d.length),g=0;g96?h-71:h>64?h-65:h>47?h+4:h>46?63:62}for(var A=0,g=0;g96?A-71:A>64?A-65:A>47?A+4:A>46?63:62}for(var x=0,h=0;h=3),r(A%3==0);for(var T=0,E=0;E<(C?C.length:0);++E)T|=d[C[E]];var S=p.BYTES_PER_ELEMENT==4?p:new Uint32Array(p),v=u(n.exports.meshopt_simplify,S,p.length,g,g.length,h*4,A,x,T);return v[0]=p instanceof Uint32Array?v[0]:new p.constructor(v[0]),v},getScale:function(p,g){return r(p instanceof Float32Array),r(p.length%g==0),f(n.exports.meshopt_simplifyScale,p,p.length,g*4)}}}();function CA(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.bufferViewId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.bufferViews[i],c=a.buffer,u=a.byteOffset,f=a.byteLength,d=!1,p,g,h,A;if(ti(a,"EXT_meshopt_compression")){let C=a.extensions.EXT_meshopt_compression;c=C.buffer,u=y(C.byteOffset,0),f=C.byteLength,d=!0,p=C.byteStride,g=C.count,h=C.mode,A=y(C.filter,"NONE")}let x=n.buffers[c];this._hasMeshopt=d,this._meshoptByteStride=p,this._meshoptCount=g,this._meshoptMode=h,this._meshoptFilter=A,this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._buffer=x,this._bufferId=c,this._byteOffset=u,this._byteLength=f,this._cacheKey=s,this._bufferLoader=void 0,this._typedArray=void 0,this._state=vt.UNLOADED,this._promise=void 0}l(Object.create)&&(CA.prototype=Object.create(io.prototype),CA.prototype.constructor=CA);Object.defineProperties(CA.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});async function vBe(e){try{let t=DBe(e);if(e._bufferLoader=t,await t.load(),e.isDestroyed())return;let n=t.typedArray,i=new Uint8Array(n.buffer,n.byteOffset+e._byteOffset,e._byteLength);if(e.unload(),e._typedArray=i,e._hasMeshopt){let o=e._meshoptCount,r=e._meshoptByteStride,s=new Uint8Array(o*r);qte.decodeGltfBuffer(s,o,r,e._typedArray,e._meshoptMode,e._meshoptFilter),e._typedArray=s}return e._state=vt.READY,e}catch(t){if(e.isDestroyed())return;e.unload(),e._state=vt.FAILED;let n="Failed to load buffer view";throw e.getError(n,t)}}CA.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=vt.LOADING,this._promise=vBe(this),this._promise)};function DBe(e){let t=e._resourceCache,n=e._buffer;if(l(n.uri)){let o=e._baseResource.getDerivedResource({url:n.uri});return t.getExternalBufferLoader({resource:o})}return t.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:e._bufferId})}CA.prototype.unload=function(){l(this._bufferLoader)&&!this._bufferLoader.isDestroyed()&&this._resourceCache.unload(this._bufferLoader),this._bufferLoader=void 0,this._typedArray=void 0};var OT=CA;function ja(){}ja._maxDecodingConcurrency=Math.max(Ht.hardwareConcurrency-1,1);ja._decoderTaskProcessor=void 0;ja._taskProcessorReady=!1;ja._getDecoderTaskProcessor=function(){if(!l(ja._decoderTaskProcessor)){let e=new hi("decodeDraco",ja._maxDecodingConcurrency);e.initWebAssemblyModule({modulePath:"ThirdParty/Workers/draco_decoder_nodejs.js",wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(function(){ja._taskProcessorReady=!0}),ja._decoderTaskProcessor=e}return ja._decoderTaskProcessor};ja.decodePointCloud=function(e){let t=ja._getDecoderTaskProcessor();if(ja._taskProcessorReady)return t.scheduleTask(e,[e.buffer.buffer])};ja.decodeBufferView=function(e){let t=ja._getDecoderTaskProcessor();if(ja._taskProcessorReady)return t.scheduleTask(e,[e.array.buffer])};var bp=ja;function Tg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.draco,o=e.gltfResource,r=e.baseResource,s=e.cacheKey;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._draco=i,this._cacheKey=s,this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodePromise=void 0,this._decodedData=void 0,this._state=vt.UNLOADED,this._promise=void 0,this._dracoError=void 0}l(Object.create)&&(Tg.prototype=Object.create(io.prototype),Tg.prototype.constructor=Tg);Object.defineProperties(Tg.prototype,{cacheKey:{get:function(){return this._cacheKey}},decodedData:{get:function(){return this._decodedData}}});async function IBe(e){let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._draco.bufferView,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._bufferViewTypedArray=n.typedArray,e._state=vt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;Xte(e,n)}}Tg.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=vt.LOADING,this._promise=IBe(this),this._promise)};function Xte(e,t){e.unload(),e._state=vt.FAILED;let n="Failed to load Draco";throw e.getError(n,t)}async function PBe(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={indices:n.indexArray,vertexAttributes:n.attributeData},e._state=vt.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._dracoError=n}}Tg.prototype.process=function(e){if(this._state===vt.READY)return!0;if(this._state!==vt.PROCESSING||(l(this._dracoError)&&Xte(this,this._dracoError),!l(this._bufferViewTypedArray))||l(this._decodePromise))return!1;let t=this._draco,i=this._gltf.bufferViews,o=t.bufferView,r=i[o],s=t.attributes,a={array:new Uint8Array(this._bufferViewTypedArray),bufferView:r,compressedAttributes:s,dequantizeInShader:!0},c=bp.decodeBufferView(a);if(!l(c))return!1;this._decodePromise=PBe(this,c)};Tg.prototype.unload=function(){l(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0};var MT=Tg;function OBe(e){let t=e.uint8Array,n=e.format,i=e.request,o=y(e.flipY,!1),r=y(e.skipColorSpaceConversion,!1),s=new Blob([t],{type:n}),a;return we.supportsImageBitmapOptions().then(function(c){return c?Promise.resolve(we.createImageBitmapFromBlob(s,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:r})):(a=window.URL.createObjectURL(s),new we({url:a,request:i}).fetchImage({flipY:o,skipColorSpaceConversion:r}))}).then(function(c){return l(a)&&window.URL.revokeObjectURL(a),c}).catch(function(c){return l(a)&&window.URL.revokeObjectURL(a),Promise.reject(c)})}var TA=OBe;function Sp(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.imageId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.images[i],c=a.bufferView,u=a.uri;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._bufferViewId=c,this._uri=u,this._cacheKey=s,this._bufferViewLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._state=vt.UNLOADED,this._promise=void 0}l(Object.create)&&(Sp.prototype=Object.create(io.prototype),Sp.prototype.constructor=Sp);Object.defineProperties(Sp.prototype,{cacheKey:{get:function(){return this._cacheKey}},image:{get:function(){return this._image}},mipLevels:{get:function(){return this._mipLevels}}});Sp.prototype.load=function(){return l(this._promise)?this._promise:l(this._bufferViewId)?(this._promise=MBe(this),this._promise):(this._promise=RBe(this),this._promise)};function Kte(e){let t;return Array.isArray(e)&&(t=e.slice(1,e.length).map(function(n){return n.bufferView}),e=e[0]),{image:e,mipLevels:t}}async function MBe(e){e._state=vt.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=n,await n.load(),e.isDestroyed())return;let i=n.typedArray,o=await LBe(i);if(e.isDestroyed())return;let r=Kte(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=vt.READY,e}catch(n){return e.isDestroyed()?void 0:Jte(e,n,"Failed to load embedded image")}}async function RBe(e){e._state=vt.LOADING;let t=e._baseResource,n=e._uri,i=t.getDerivedResource({url:n});try{let o=await FBe(i);if(e.isDestroyed())return;let r=Kte(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=vt.READY,e}catch(o){return e.isDestroyed()?void 0:Jte(e,o,`Failed to load image: ${n}`)}}function Jte(e,t,n){return e.unload(),e._state=vt.FAILED,Promise.reject(e.getError(n,t))}function BBe(e){let t=e.subarray(0,2),n=e.subarray(0,4),i=e.subarray(8,12);if(t[0]===255&&t[1]===216)return"image/jpeg";if(t[0]===137&&t[1]===80)return"image/png";if(t[0]===171&&t[1]===75)return"image/ktx2";if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&i[0]===87&&i[1]===69&&i[2]===66&&i[3]===80)return"image/webp";throw new de("Image format is not recognized")}async function LBe(e){let t=BBe(e);if(t==="image/ktx2"){let n=new Uint8Array(e);return tl(n)}return Sp._loadImageFromTypedArray({uint8Array:e,format:t,flipY:!1,skipColorSpaceConversion:!0})}var NBe=/(^data:image\/ktx2)|(\.ktx2$)/i;function FBe(e){let t=e.getUrlComponent(!1,!0);return NBe.test(t)?tl(e):e.fetchImage({skipColorSpaceConversion:!0,preferImageBitmap:!0})}Sp.prototype.unload=function(){l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._uri=void 0,this._image=void 0,this._mipLevels=void 0,this._gltf=void 0};Sp._loadImageFromTypedArray=TA;var RT=Sp;var UBe={TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3},ga=Object.freeze(UBe);function Eg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.accessorId,o=e.gltfResource,r=e.baseResource,s=e.draco,a=e.cacheKey,c=y(e.asynchronous,!0),u=y(e.loadBuffer,!1),f=y(e.loadTypedArray,!1),d=n.accessors[i].componentType;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._accessorId=i,this._indexDatatype=d,this._draco=s,this._cacheKey=a,this._asynchronous=c,this._loadBuffer=u,this._loadTypedArray=f,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=vt.UNLOADED,this._promise=void 0}l(Object.create)&&(Eg.prototype=Object.create(io.prototype),Eg.prototype.constructor=Eg);Object.defineProperties(Eg.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},indexDatatype:{get:function(){return this._indexDatatype}}});var VBe=new _5;Eg.prototype.load=async function(){return l(this._promise)?this._promise:l(this._draco)?(this._promise=kBe(this),this._promise):(this._promise=zBe(this),this._promise)};async function kBe(e){e._state=vt.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=vt.LOADED,e)}catch(n){if(e.isDestroyed())return;p5(e,n)}}async function zBe(e){let t=e._gltf,n=e._accessorId,o=t.accessors[n].bufferView;e._state=vt.LOADING;let r=e._resourceCache;try{let s=r.getBufferViewLoader({gltf:t,bufferViewId:o,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=s,await s.load(),e.isDestroyed())return;let a=s.typedArray;return e._typedArray=HBe(e,a),e._state=vt.PROCESSING,e}catch(s){if(e.isDestroyed())return;p5(e,s)}}function HBe(e,t){let n=e._gltf,i=e._accessorId,o=n.accessors[i],r=o.count,s=o.componentType,a=Ue.getSizeInBytes(s),c=t.buffer,u=t.byteOffset+o.byteOffset;if(u%a!==0){let d=r*a,p=new Uint8Array(c,u,d);c=new Uint8Array(p).buffer,u=0,$("index-buffer-unaligned",`The index array is not aligned to a ${a}-byte boundary.`)}let f;return s===Ue.UNSIGNED_BYTE?f=new Uint8Array(c,u,r):s===Ue.UNSIGNED_SHORT?f=new Uint16Array(c,u,r):s===Ue.UNSIGNED_INT&&(f=new Uint32Array(c,u,r)),f}function p5(e,t){e.unload(),e._state=vt.FAILED;let n="Failed to load index buffer";throw e.getError(n,t)}function _5(){this.typedArray=void 0,this.indexDatatype=void 0,this.context=void 0,this.buffer=void 0}_5.prototype.set=function(e,t,n){this.typedArray=e,this.indexDatatype=t,this.context=n};_5.prototype.execute=function(){this.buffer=Zte(this.typedArray,this.indexDatatype,this.context)};function Zte(e,t,n){let i=mt.createIndexBuffer({typedArray:e,context:n,usage:Fe.STATIC_DRAW,indexDatatype:t});return i.vertexArrayDestroyable=!1,i}Eg.prototype.process=function(e){if(this._state===vt.READY)return!0;if(this._state!==vt.LOADED&&this._state!==vt.PROCESSING)return!1;let t=this._typedArray,n=this._indexDatatype;if(l(this._dracoLoader))try{this._dracoLoader.process(e)&&(t=this._dracoLoader.decodedData.indices.typedArray,this._typedArray=t,n=X.fromTypedArray(t),this._indexDatatype=n)}catch(o){p5(this,o)}if(!l(t))return!1;let i;if(this._loadBuffer&&this._asynchronous){let o=VBe;if(o.set(t,n,e.context),!e.jobScheduler.execute(o,ga.BUFFER))return!1;i=o.buffer}else this._loadBuffer&&(i=Zte(t,n,e.context));return this.unload(),this._buffer=i,this._typedArray=this._loadTypedArray?t:void 0,this._state=vt.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};Eg.prototype.unload=function(){l(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),l(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var BT=Eg;function GBe(e,t,n){if(n=y(n,!1),n){let i=e.indexOf(t);if(i>-1)return i}return e.push(t),e.length-1}var is=GBe;function WBe(e,t){return l(e.extensionsUsed)&&e.extensionsUsed.indexOf(t)>=0}var hr=WBe;function Yt(){}Yt.objectLegacy=function(e,t){if(l(e)){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(l(o))return o}}};Yt.object=function(e,t){if(l(e)){let n=e.length;for(let i=0;i0)return i.byteStride}return X.getSizeInBytes(t.componentType)*Ql(t.type)}var dl=YBe;function qBe(e){Oe.accessor(e,function(n){l(n.bufferView)&&(n.byteOffset=y(n.byteOffset,0))}),Oe.bufferView(e,function(n){l(n.buffer)&&(n.byteOffset=y(n.byteOffset,0))}),Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){if(i.mode=y(i.mode,te.TRIANGLES),!l(i.material)){l(e.materials)||(e.materials=[]);let o={name:"default"};i.material=is(e.materials,o)}})}),Oe.accessorContainingVertexAttributeData(e,function(n){let i=e.accessors[n],o=i.bufferView;if(i.normalized=y(i.normalized,!1),l(o)){let r=e.bufferViews[o];r.byteStride=dl(e,i),r.target=te.ARRAY_BUFFER}}),Oe.accessorContainingIndexData(e,function(n){let o=e.accessors[n].bufferView;if(l(o)){let r=e.bufferViews[o];r.target=te.ELEMENT_ARRAY_BUFFER}}),Oe.material(e,function(n){let i=y(n.extensions,y.EMPTY_OBJECT),o=i.KHR_materials_common;if(l(o)){let c=o.technique,u=l(o.values)?o.values:{};o.values=u,u.ambient=l(u.ambient)?u.ambient:[0,0,0,1],u.emission=l(u.emission)?u.emission:[0,0,0,1],u.transparency=y(u.transparency,1),c!=="CONSTANT"&&(u.diffuse=l(u.diffuse)?u.diffuse:[0,0,0,1],c!=="LAMBERT"&&(u.specular=l(u.specular)?u.specular:[0,0,0,1],u.shininess=y(u.shininess,0))),o.transparent=y(o.transparent,!1),o.doubleSided=y(o.doubleSided,!1);return}n.emissiveFactor=y(n.emissiveFactor,[0,0,0]),n.alphaMode=y(n.alphaMode,"OPAQUE"),n.doubleSided=y(n.doubleSided,!1),n.alphaMode==="MASK"&&(n.alphaCutoff=y(n.alphaCutoff,.5));let r=i.KHR_techniques_webgl;l(r)&&Oe.materialValue(n,function(c){l(c.index)&&EA(c)}),EA(n.emissiveTexture),EA(n.normalTexture),EA(n.occlusionTexture);let s=n.pbrMetallicRoughness;l(s)&&(s.baseColorFactor=y(s.baseColorFactor,[1,1,1,1]),s.metallicFactor=y(s.metallicFactor,1),s.roughnessFactor=y(s.roughnessFactor,1),EA(s.baseColorTexture),EA(s.metallicRoughnessTexture));let a=i.KHR_materials_pbrSpecularGlossiness;l(a)&&(a.diffuseFactor=y(a.diffuseFactor,[1,1,1,1]),a.specularFactor=y(a.specularFactor,[1,1,1]),a.glossinessFactor=y(a.glossinessFactor,1),EA(a.specularGlossinessTexture))}),Oe.animation(e,function(n){Oe.animationSampler(n,function(i){i.interpolation=y(i.interpolation,"LINEAR")})});let t=XBe(e);return Oe.node(e,function(n,i){l(t[i])||l(n.translation)||l(n.rotation)||l(n.scale)?(n.translation=y(n.translation,[0,0,0]),n.rotation=y(n.rotation,[0,0,0,1]),n.scale=y(n.scale,[1,1,1])):n.matrix=y(n.matrix,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}),Oe.sampler(e,function(n){n.wrapS=y(n.wrapS,te.REPEAT),n.wrapT=y(n.wrapT,te.REPEAT)}),l(e.scenes)&&!l(e.scene)&&(e.scene=0),e}function XBe(e){let t={};return Oe.animation(e,function(n){Oe.animationChannel(n,function(i){let o=i.target,r=o.node,s=o.path;(s==="translation"||s==="rotation"||s==="scale")&&(t[r]=!0)})}),t}function EA(e){l(e)&&(e.texCoord=y(e.texCoord,0))}var BP=qBe;function KBe(e){return Oe.shader(e,function(t){CU(t)}),Oe.buffer(e,function(t){CU(t)}),Oe.image(e,function(t){CU(t)}),CU(e),e}function CU(e){e.extras=l(e.extras)?e.extras:{},e.extras._pipeline=l(e.extras._pipeline)?e.extras._pipeline:{}}var bg=KBe;function JBe(e,t){let n=e.extensionsRequired;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),n.length===0&&delete e.extensionsRequired}}var LP=JBe;function ZBe(e,t){let n=e.extensionsUsed;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),LP(e,t),n.length===0&&delete e.extensionsUsed}}var bA=ZBe;var QBe=4;function $Be(e){if(hd(e)!=="glTF")throw new de("File is not valid binary glTF");let n=Qte(e,0,5),i=n[1];if(i!==1&&i!==2)throw new de("Binary glTF version is not 1 or 2");return i===1?eLe(e,n):tLe(e,n)}function Qte(e,t,n){let i=new DataView(e.buffer),o=new Array(n);for(let r=0;r0){let d=y(f.binary_glTF,f.KHR_binary_glTF);l(d)&&(d.extras._pipeline.source=u,delete d.uri)}return bA(c,"KHR_binary_glTF"),c}function tLe(e,t){let n=t[2],i=12,o,r;for(;i0){let a=s[0];a.extras._pipeline.source=r}}return o}var NP=$Be;function nLe(e){return Oe.shader(e,function(t){TU(t)}),Oe.buffer(e,function(t){TU(t)}),Oe.image(e,function(t){TU(t)}),TU(e),e}function TU(e){l(e.extras)&&(l(e.extras._pipeline)&&delete e.extras._pipeline,Object.keys(e.extras).length===0&&delete e.extras)}var FP=nLe;function iLe(e,t){let n=e.extensionsUsed;l(n)||(n=[],e.extensionsUsed=n),is(n,t,!0)}var Qu=iLe;function oLe(e){switch(e){case X.BYTE:return function(t,n,i,o,r){for(let s=0;s-1:!1}var cLe=[te.ZERO,te.ONE,te.SRC_COLOR,te.ONE_MINUS_SRC_COLOR,te.SRC_ALPHA,te.ONE_MINUS_SRC_ALPHA,te.DST_ALPHA,te.ONE_MINUS_DST_ALPHA,te.DST_COLOR,te.ONE_MINUS_DST_COLOR];function lLe(e,t){if(!l(e))return t;for(let n=0;n<4;n++)if(cLe.indexOf(e[n])===-1)return t;return e}function uLe(e){let t={},n={},i=e.techniques;return l(i)&&(Oe.technique(e,function(o,r){let s=o.states;if(l(s)){let a=n[r]={};if($te(s,te.BLEND)){a.alphaMode="BLEND";let c=s.functions;l(c)&&(l(c.blendEquationSeparate)||l(c.blendFuncSeparate))&&(t[r]={blendEquation:y(c.blendEquationSeparate,sLe),blendFactors:lLe(c.blendFuncSeparate,aLe)})}$te(s,te.CULL_FACE)||(a.doubleSided=!0),delete o.states}}),Object.keys(t).length>0&&(l(e.extensions)||(e.extensions={}),Qu(e,"KHR_blend")),Oe.material(e,function(o){if(l(o.technique)){let r=n[o.technique];Oe.objectLegacy(r,function(a,c){o[c]=a});let s=t[o.technique];l(s)&&(l(o.extensions)||(o.extensions={}),o.extensions.KHR_blend=s)}})),e}var UP=uLe;function fLe(e,t){let n=e.extensionsRequired;l(n)||(n=[],e.extensionsRequired=n),is(n,t,!0),Qu(e,t)}var VP=fLe;function dLe(e){let t=e.techniques,n={},i={},o={};if(l(t)){let r={programs:[],shaders:[],techniques:[]},s=e.glExtensionsUsed;delete e.glExtensionsUsed,Oe.technique(e,function(a,c){let u={name:a.name,program:void 0,attributes:{},uniforms:{}},f;if(Oe.techniqueAttribute(a,function(d,p){f=a.parameters[d],u.attributes[p]={semantic:f.semantic}}),Oe.techniqueUniform(a,function(d,p){f=a.parameters[d],u.uniforms[p]={count:f.count,node:f.node,type:f.type,semantic:f.semantic,value:f.value},l(n[c])||(n[c]={}),n[c][d]=p}),l(o[a.program]))u.program=o[a.program];else{let d=e.programs[a.program],p={name:d.name,fragmentShader:void 0,vertexShader:void 0,glExtensions:s},g=e.shaders[d.fragmentShader];p.fragmentShader=is(r.shaders,g,!0);let h=e.shaders[d.vertexShader];p.vertexShader=is(r.shaders,h,!0),u.program=is(r.programs,p),o[a.program]=u.program}i[c]=is(r.techniques,u)}),r.techniques.length>0&&(l(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=r,Qu(e,"KHR_techniques_webgl"),VP(e,"KHR_techniques_webgl"))}return Oe.material(e,function(r){if(l(r.technique)){let s={technique:i[r.technique]};Oe.objectLegacy(r.values,function(a,c){l(s.values)||(s.values={});let u=n[r.technique][c];l(u)&&(s.values[u]=a)}),l(r.extensions)||(r.extensions={}),r.extensions.KHR_techniques_webgl=s}delete r.technique,delete r.values}),delete e.techniques,delete e.programs,delete e.shaders,e}var kP=dLe;function mLe(e,t){Qc.typeOf.object("material",e),Qc.defined("handler",t);let n=e.pbrMetallicRoughness;if(l(n)){if(l(n.baseColorTexture)){let o=n.baseColorTexture,r=t(o.index,o);if(l(r))return r}if(l(n.metallicRoughnessTexture)){let o=n.metallicRoughnessTexture,r=t(o.index,o);if(l(r))return r}}if(l(e.extensions)){let o=e.extensions.KHR_materials_pbrSpecularGlossiness;if(l(o)){if(l(o.diffuseTexture)){let s=o.diffuseTexture,a=t(s.index,s);if(l(a))return a}if(l(o.specularGlossinessTexture)){let s=o.specularGlossinessTexture,a=t(s.index,s);if(l(a))return a}}let r=e.extensions.KHR_materials_common;if(l(r)&&l(r.values)){let s=r.values.diffuse,a=r.values.ambient,c=r.values.emission,u=r.values.specular;if(l(s)&&l(s.index)){let f=t(s.index,s);if(l(f))return f}if(l(a)&&l(a.index)){let f=t(a.index,a);if(l(f))return f}if(l(c)&&l(c.index)){let f=t(c.index,c);if(l(f))return f}if(l(u)&&l(u.index)){let f=t(u.index,u);if(l(f))return f}}}let i=Oe.materialValue(e,function(o){if(l(o.index)){let r=t(o.index,o);if(l(r))return r}});if(l(i))return i;if(l(e.emissiveTexture)){let o=e.emissiveTexture,r=t(o.index,o);if(l(r))return r}if(l(e.normalTexture)){let o=e.normalTexture,r=t(o.index,o);if(l(r))return r}if(l(e.occlusionTexture)){let o=e.occlusionTexture,r=t(o.index,o);if(l(r))return r}}var LT=mLe;var ene=["mesh","node","material","accessor","bufferView","buffer","texture","sampler","image"];function hLe(e,t){return t=y(t,ene),ene.forEach(function(n){t.indexOf(n)>-1&&_Le(e,n)}),e}var pLe={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews",image:"images",node:"nodes",material:"materials",mesh:"meshes",sampler:"samplers",texture:"textures"};function _Le(e,t){let n=pLe[t],i=e[n];if(l(i)){let o=0,r=Vm[t](e),s=i.length;for(let a=0;at&&o.attributes[a]--}),Oe.meshPrimitiveTarget(o,function(s){Oe.meshPrimitiveTargetAttribute(s,function(a,c){a>t&&s[c]--})});let r=o.indices;l(r)&&r>t&&o.indices--})}),Oe.skin(e,function(i){l(i.inverseBindMatrices)&&i.inverseBindMatrices>t&&i.inverseBindMatrices--}),Oe.animation(e,function(i){Oe.animationSampler(i,function(o){l(o.input)&&o.input>t&&o.input--,l(o.output)&&o.output>t&&o.output--})})};Um.buffer=function(e,t){e.buffers.splice(t,1),Oe.bufferView(e,function(i){l(i.buffer)&&i.buffer>t&&i.buffer--,l(i.extensions)&&l(i.extensions.EXT_meshopt_compression)&&i.extensions.EXT_meshopt_compression.buffer--})};Um.bufferView=function(e,t){if(e.bufferViews.splice(t,1),Oe.accessor(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Oe.shader(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Oe.image(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),hr(e,"KHR_draco_mesh_compression")&&Oe.mesh(e,function(i){Oe.meshPrimitive(i,function(o){l(o.extensions)&&l(o.extensions.KHR_draco_mesh_compression)&&o.extensions.KHR_draco_mesh_compression.bufferView>t&&o.extensions.KHR_draco_mesh_compression.bufferView--})}),hr(e,"EXT_feature_metadata")){let o=e.extensions.EXT_feature_metadata.featureTables;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];l(u.bufferView)&&u.bufferView>t&&u.bufferView--,l(u.arrayOffsetBufferView)&&u.arrayOffsetBufferView>t&&u.arrayOffsetBufferView--,l(u.stringOffsetBufferView)&&u.stringOffsetBufferView>t&&u.stringOffsetBufferView--}}}}if(hr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTables;if(l(o)){let r=o.length;for(let s=0;st&&f.values--,l(f.arrayOffsets)&&f.arrayOffsets>t&&f.arrayOffsets--,l(f.stringOffsets)&&f.stringOffsets>t&&f.stringOffsets--}}}}};Um.image=function(e,t){e.images.splice(t,1),Oe.texture(e,function(i){l(i.source)&&i.source>t&&--i.source;let o=i.extensions;l(o)&&l(o.EXT_texture_webp)&&o.EXT_texture_webp.source>t?--i.extensions.EXT_texture_webp.source:l(o)&&l(o.KHR_texture_basisu)&&o.KHR_texture_basisu.source>t&&--i.extensions.KHR_texture_basisu.source})};Um.mesh=function(e,t){e.meshes.splice(t,1),Oe.node(e,function(i){l(i.mesh)&&(i.mesh>t?i.mesh--:i.mesh===t&&delete i.mesh)})};Um.node=function(e,t){e.nodes.splice(t,1),Oe.skin(e,function(i){l(i.skeleton)&&i.skeleton>t&&i.skeleton--,i.joints=i.joints.map(function(o){return o>t?o-1:o})}),Oe.animation(e,function(i){Oe.animationChannel(i,function(o){l(o.target)&&l(o.target.node)&&o.target.node>t&&o.target.node--})}),Oe.technique(e,function(i){Oe.techniqueUniform(i,function(o){l(o.node)&&o.node>t&&o.node--})}),Oe.node(e,function(i){l(i.children)&&(i.children=i.children.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o}))}),Oe.scene(e,function(i){i.nodes=i.nodes.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o})})};Um.material=function(e,t){e.materials.splice(t,1),Oe.mesh(e,function(i){Oe.meshPrimitive(i,function(o){l(o.material)&&o.material>t&&o.material--})})};Um.sampler=function(e,t){e.samplers.splice(t,1),Oe.texture(e,function(i){l(i.sampler)&&i.sampler>t&&--i.sampler})};Um.texture=function(e,t){if(e.textures.splice(t,1),Oe.material(e,function(i){LT(i,function(o,r){r.index>t&&--r.index})}),hr(e,"EXT_feature_metadata")){Oe.mesh(e,function(r){Oe.meshPrimitive(r,function(s){let a=s.extensions;if(l(a)&&l(a.EXT_feature_metadata)){let u=a.EXT_feature_metadata.featureIdTextures;if(l(u)){let f=u.length;for(let d=0;dt&&--g.index}}}})});let o=e.extensions.EXT_feature_metadata.featureTextures;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let f=a[c].texture;f.index>t&&--f.index}}}}if(hr(e,"EXT_mesh_features")&&Oe.mesh(e,function(i){Oe.meshPrimitive(i,function(o){let r=o.extensions;if(l(r)&&l(r.EXT_mesh_features)){let a=r.EXT_mesh_features.featureIds;if(l(a)){let c=a.length;for(let u=0;ut&&--f.texture.index}}}})}),hr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTextures;if(l(o)){let r=o.length;for(let s=0;st&&--f.index}}}}};function Vm(){}Vm.accessor=function(e){let t={};return Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){Oe.meshPrimitiveAttribute(i,function(r){t[r]=!0}),Oe.meshPrimitiveTarget(i,function(r){Oe.meshPrimitiveTargetAttribute(r,function(s){t[s]=!0})});let o=i.indices;l(o)&&(t[o]=!0)})}),Oe.skin(e,function(n){l(n.inverseBindMatrices)&&(t[n.inverseBindMatrices]=!0)}),Oe.animation(e,function(n){Oe.animationSampler(n,function(i){l(i.input)&&(t[i.input]=!0),l(i.output)&&(t[i.output]=!0)})}),hr(e,"EXT_mesh_gpu_instancing")&&Oe.node(e,function(n){l(n.extensions)&&l(n.extensions.EXT_mesh_gpu_instancing)&&Object.keys(n.extensions.EXT_mesh_gpu_instancing.attributes).forEach(function(i){let o=n.extensions.EXT_mesh_gpu_instancing.attributes[i];t[o]=!0})}),t};Vm.buffer=function(e){let t={};return Oe.bufferView(e,function(n){l(n.buffer)&&(t[n.buffer]=!0),l(n.extensions)&&l(n.extensions.EXT_meshopt_compression)&&(t[n.extensions.EXT_meshopt_compression.buffer]=!0)}),t};Vm.bufferView=function(e){let t={};if(Oe.accessor(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Oe.shader(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Oe.image(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),hr(e,"KHR_draco_mesh_compression")&&Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){l(i.extensions)&&l(i.extensions.KHR_draco_mesh_compression)&&(t[i.extensions.KHR_draco_mesh_compression.bufferView]=!0)})}),hr(e,"EXT_feature_metadata")){let i=e.extensions.EXT_feature_metadata.featureTables;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let c=s[a];l(c.bufferView)&&(t[c.bufferView]=!0),l(c.arrayOffsetBufferView)&&(t[c.arrayOffsetBufferView]=!0),l(c.stringOffsetBufferView)&&(t[c.stringOffsetBufferView]=!0)}}}}if(hr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTables;if(l(i)){let o=i.length;for(let r=0;r0&&(t[n.mesh]=!0)}}),t};function tne(e,t,n){let i=e.nodes[t];return l(i.mesh)||l(i.camera)||l(i.skin)||l(i.weights)||l(i.extras)||l(i.extensions)&&Object.keys(i.extensions).length!==0||l(n[t])?!1:!l(i.children)||i.children.filter(function(o){return!tne(e,o,n)}).length===0}Vm.node=function(e){let t={};return Oe.skin(e,function(n){l(n.skeleton)&&(t[n.skeleton]=!0),Oe.skinJoint(n,function(i){t[i]=!0})}),Oe.animation(e,function(n){Oe.animationChannel(n,function(i){l(i.target)&&l(i.target.node)&&(t[i.target.node]=!0)})}),Oe.technique(e,function(n){Oe.techniqueUniform(n,function(i){l(i.node)&&(t[i.node]=!0)})}),Oe.node(e,function(n,i){tne(e,i,t)||(t[i]=!0)}),t};Vm.material=function(e){let t={};return Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){l(i.material)&&(t[i.material]=!0)})}),t};Vm.texture=function(e){let t={};if(Oe.material(e,function(n){LT(n,function(i){t[i]=!0})}),hr(e,"EXT_feature_metadata")){Oe.mesh(e,function(o){Oe.meshPrimitive(o,function(r){let s=r.extensions;if(l(s)&&l(s.EXT_feature_metadata)){let c=s.EXT_feature_metadata.featureIdTextures;if(l(c)){let u=c.length;for(let f=0;f0)for(s.mesh=n.meshes[c[0]],t=1;t0&&l(s.skin)){let f=e.skins[s.skin];f.skeleton=n.nodes[c[0]]}delete s.skeletons}l(s.jointName)&&delete s.jointName}),Oe.skin(e,function(s){l(s.inverseBindMatrices)&&(s.inverseBindMatrices=n.accessors[s.inverseBindMatrices]);let a=s.jointNames;if(l(a)){let c=[],u=a.length;for(t=0;t=0&&(a=r.substring(0,s),c=r.substring(s));let u,f=VLe[a];l(f)?(u=f+c,t[r]=u):l(ULe[a])||(u=`_${r}`,t[r]=u)}});for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o],s=i.attributes[o];l(s)&&(delete i.attributes[o],i.attributes[r]=s)}})}),Oe.technique(e,function(n){Oe.techniqueParameter(n,function(i){let o=t[i.semantic];l(o)&&(i.semantic=o)})})}function zLe(e){Oe.camera(e,function(t){let n=t.perspective;if(l(n)){let i=n.aspectRatio;l(i)&&i===0&&delete n.aspectRatio;let o=n.yfov;l(o)&&o===0&&(n.yfov=1)}})}function y5(e,t){return l(t.byteStride)&&t.byteStride!==0?t.byteStride:dl(e,t)}function HLe(e){Oe.buffer(e,function(t){l(t.byteLength)||(t.byteLength=t.extras._pipeline.source.length)}),Oe.accessor(e,function(t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n],o=y5(e,t),r=t.byteOffset+t.count*o;i.byteLength=Math.max(y(i.byteLength,0),r)}})}function GLe(e){let t,n,i,o=e.bufferViews,r={};Oe.accessorContainingVertexAttributeData(e,function(a){let c=e.accessors[a];l(c.bufferView)&&(r[c.bufferView]=!0)});let s={};Oe.accessor(e,function(a){l(a.bufferView)&&(s[a.bufferView]=y(s[a.bufferView],[]),s[a.bufferView].push(a))});for(let a in s)if(Object.prototype.hasOwnProperty.call(s,a)){i=o[a];let c=s[a];c.sort(function(p,g){return p.byteOffset-g.byteOffset});let u=0,f=0,d=c.length;for(t=0;t=0;--r)if(i[r]===t){i.splice(r,1);return}}}),Oe.node(e,function(n,i){if(l(n.children)){let o=n.children.indexOf(t);o>-1&&(n.children.splice(o,1),one(n)&&rne(e,i))}}),delete e.nodes[t]}function jLe(e){return Oe.node(e,function(t,n){one(t)&&rne(e,n)}),e}function YLe(e){Oe.animation(e,function(t){Oe.animationSampler(t,function(n){let i=e.accessors[n.input];if(!l(i.min)||!l(i.max)){let o=SA(e,i);i.min=o.min,i.max=o.max}})})}function qLe(e){Oe.accessor(e,function(t){if(l(t.min)||l(t.max)){let n=SA(e,t);l(t.min)&&(t.min=n.min),l(t.max)&&(t.max=n.max)}})}function XLe(e){e.asset=y(e.asset,{}),e.asset.version="2.0",ine(e),DLe(e),jLe(e),ILe(e),PLe(e),MLe(e),BLe(e),HLe(e),GLe(e),WLe(e),YLe(e),qLe(e),LLe(e),NLe(e),FLe(e),kLe(e),WP(e),zLe(e),UP(e),kP(e),OLe(e)}var KLe=["u_tex","u_diffuse","u_emission"],JLe=["u_diffuse"];function A5(e){e.pbrMetallicRoughness=l(e.pbrMetallicRoughness)?e.pbrMetallicRoughness:{},e.pbrMetallicRoughness.roughnessFactor=1,e.pbrMetallicRoughness.metallicFactor=0}function SU(e){return l(e.index)}function wU(e){return Array.isArray(e)&&e.length===4}function sne(e){let t=new Array(4);t[3]=e[3];for(let n=0;n<3;n++){let i=e[n];i<=.04045?t[n]=e[n]*.07739938080495357:t[n]=Math.pow((i+.055)*.9478672985781991,2.4)}return t}function ZLe(e){Oe.material(e,function(t){Oe.materialValue(t,function(n,i){KLe.indexOf(i)!==-1&&SU(n)?(A5(t),t.pbrMetallicRoughness.baseColorTexture=n):JLe.indexOf(i)!==-1&&wU(n)&&(A5(t),t.pbrMetallicRoughness.baseColorFactor=sne(n))})}),wA(e,"KHR_techniques_webgl"),wA(e,"KHR_blend")}function QLe(e){Oe.material(e,function(t){let n=y(t.extensions,y.EMPTY_OBJECT).KHR_materials_common;if(l(n)){n.technique==="CONSTANT"&&(Qu(e,"KHR_materials_unlit"),t.extensions=l(t.extensions)?t.extensions:{},t.extensions.KHR_materials_unlit={});let o=l(n.values)?n.values:{},r=o.ambient,s=o.diffuse,a=o.emission,c=o.transparency,u=n.doubleSided,f=n.transparent;A5(t),l(r)&&(wU(r)?t.emissiveFactor=r.slice(0,3):SU(r)&&(t.emissiveTexture=r)),l(s)&&(wU(s)?t.pbrMetallicRoughness.baseColorFactor=sne(s):SU(s)&&(t.pbrMetallicRoughness.baseColorTexture=s)),l(u)&&(t.doubleSided=u),l(a)&&(wU(a)?t.emissiveFactor=a.slice(0,3):SU(a)&&(t.emissiveTexture=a)),l(c)&&(l(t.pbrMetallicRoughness.baseColorFactor)?t.pbrMetallicRoughness.baseColorFactor[3]*=c:t.pbrMetallicRoughness.baseColorFactor=[1,1,1,c]),l(f)&&(t.alphaMode=f?"BLEND":"OPAQUE")}}),wA(e,"KHR_materials_common")}var jP=TLe;var ci={POSITION:"POSITION",NORMAL:"NORMAL",TANGENT:"TANGENT",TEXCOORD:"TEXCOORD",COLOR:"COLOR",JOINTS:"JOINTS",WEIGHTS:"WEIGHTS",FEATURE_ID:"_FEATURE_ID"};function $Le(e){switch(e){case ci.POSITION:return"positionMC";case ci.NORMAL:return"normalMC";case ci.TANGENT:return"tangentMC";case ci.TEXCOORD:return"texCoord";case ci.COLOR:return"color";case ci.JOINTS:return"joints";case ci.WEIGHTS:return"weights";case ci.FEATURE_ID:return"featureId"}}ci.hasSetIndex=function(e){switch(e){case ci.POSITION:case ci.NORMAL:case ci.TANGENT:return!1;case ci.TEXCOORD:case ci.COLOR:case ci.JOINTS:case ci.WEIGHTS:case ci.FEATURE_ID:return!0}};ci.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"POSITION":return ci.POSITION;case"NORMAL":return ci.NORMAL;case"TANGENT":return ci.TANGENT;case"TEXCOORD":return ci.TEXCOORD;case"COLOR":return ci.COLOR;case"JOINTS":return ci.JOINTS;case"WEIGHTS":return ci.WEIGHTS;case"_FEATURE_ID":return ci.FEATURE_ID}};ci.fromPntsSemantic=function(e){switch(e){case"POSITION":case"POSITION_QUANTIZED":return ci.POSITION;case"RGBA":case"RGB":case"RGB565":return ci.COLOR;case"NORMAL":case"NORMAL_OCT16P":return ci.NORMAL;case"BATCH_ID":return ci.FEATURE_ID}};ci.getGlslType=function(e){switch(e){case ci.POSITION:case ci.NORMAL:case ci.TANGENT:return"vec3";case ci.TEXCOORD:return"vec2";case ci.COLOR:return"vec4";case ci.JOINTS:return"ivec4";case ci.WEIGHTS:return"vec4";case ci.FEATURE_ID:return"int"}};ci.getVariableName=function(e,t){let n=$Le(e);return l(t)&&(n+=`_${t}`),n};var bt=Object.freeze(ci);function Ya(){}Ya.getError=function(e,t,n){let i=`Failed to load ${e}: ${t}`;l(n)&&l(n.message)&&(i+=` +${n.message}`);let o=new de(i);return l(n)&&(o.stack=`Original stack: +${n.stack} +Handler stack: +${o.stack}`),o};Ya.getNodeTransform=function(e){return l(e.matrix)?e.matrix:B.fromTranslationQuaternionRotationScale(l(e.translation)?e.translation:m.ZERO,l(e.rotation)?e.rotation:Ne.IDENTITY,l(e.scale)?e.scale:m.ONE)};Ya.getAttributeBySemantic=function(e,t,n){let i=e.attributes,o=i.length;for(let r=0;r>t};Ks.fromSubtreeJson=async function(e,t,n,i,o){let r=new Ks(e,i,o),s;l(t)?s={json:t,binary:void 0}:s=GNe(n);let a=s.json;r._subtreeJson=a;let c;if(ti(a,"3DTILES_metadata"))c=a.extensions["3DTILES_metadata"];else if(l(a.tileMetadata)){let T=a.tileMetadata;c=a.propertyTables[T]}let u=[];if(l(a.contentMetadata)){let T=a.contentMetadata.length;for(let E=0;E0;f=f||d;for(let p=0;p>BigInt(61)),u=c%2===0?vT.encode2D(i,o,r):vT.encode2D(i,r,o),f=xp.fromFacePositionLevel(c,BigInt(u),i),d,p;if(l(s)){let g=(a.maximumHeight+a.minimumHeight)/2;d=n<4?a.minimumHeight:g,p=n<4?g:a.maximumHeight}else d=a.minimumHeight,p=a.maximumHeight;return{extensions:{"3DTILES_bounding_volume_S2":{token:xp.getTokenFromId(f._cellId),minimumHeight:d,maximumHeight:p}}}}var dFe=new m,mFe=new m,v5=new m,hFe=new Z;function bne(e,t,n,i,o){if(t===0)return e;let r=m.unpack(e,0,mFe),s=Z.unpack(e,3,hFe),a=Math.pow(2,-t),c=-1+(2*n+1)*a,u=-1+(2*i+1)*a,f=0,d=m.fromElements(a,a,1,dFe);l(o)&&(f=-1+(2*o+1)*a,d.z=a);let p=m.fromElements(c,u,f,v5);p=Z.multiplyByVector(s,p,v5),p=m.add(p,r,v5);let g=Z.clone(s);g=Z.multiplyByScale(g,d,g);let h=new Array(12);return m.pack(p,h),Z.pack(g,h,3),h}var pFe=new le;function Sne(e,t,n,i,o){if(t===0)return e.slice();let r=le.unpack(e,0,pFe),s=e[4],a=e[5],c=Math.pow(2,-t),u=c*r.width,f=P.negativePiToPi(r.west+n*u),d=P.negativePiToPi(f+u),p=c*r.height,g=P.negativePiToPi(r.south+i*p),h=P.negativePiToPi(g+p),A=s,x=a;if(l(o)){let C=c*(a-s);A+=o*C,x=A+C}return[f,g,d,h,A,x]}function _Fe(e,t,n){let i=e._implicitTileset,o=t.implicitCoordinates.getChildCoordinates(n),r=Tne(i,o,n,!1,t),s=Cne(void 0,i,o),a=i.subtreeUriTemplate.getDerivedResource({templateValues:o.getTemplateValues()}).url,c={boundingVolume:r,geometricError:s,refine:i.refine,contents:[{uri:a}]},u=wne(e,i.baseResource,c,t);return u.implicitTileset=i,u.implicitCoordinates=o,u}function wne(e,t,n,i){let o=e._tile.constructor;return new o(e._tileset,t,n,i)}pl.prototype.hasProperty=function(e,t){return!1};pl.prototype.getFeature=function(e){};pl.prototype.applyDebugSettings=function(e,t){};pl.prototype.applyStyle=function(e){};pl.prototype.update=function(e,t){};pl.prototype.isDestroyed=function(){return!1};pl.prototype.destroy=function(){return this._implicitSubtree=this._implicitSubtree&&this._implicitSubtree.destroy(),ue(this)};pl._deriveBoundingBox=bne;pl._deriveBoundingRegion=Sne;pl._deriveBoundingVolumeS2=Ene;var kT=pl;var gFe={NONE:0,REPEAT:1,MIRRORED_REPEAT:2},_l=Object.freeze(gFe);function zT(e,t){this._distance=t,this._normal=new vne(e,this),this.onChangeCallback=void 0,this.index=-1}Object.defineProperties(zT.prototype,{distance:{get:function(){return this._distance},set:function(e){l(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(e){l(this.onChangeCallback)&&!m.equals(this._normal._cartesian3,e)&&this.onChangeCallback(this.index),m.clone(e,this._normal._cartesian3)}}});zT.fromPlane=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance):t=new zT(e.normal,e.distance),t};zT.clone=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance,t):new zT(e.normal,e.distance)};function vne(e,t){this._clippingPlane=t,this._cartesian3=m.clone(e)}Object.defineProperties(vne.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.x&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.x=e}},y:{get:function(){return this._cartesian3.y},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.y&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.y=e}},z:{get:function(){return this._cartesian3.z},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}});var OA=zT;function qa(e){e=y(e,y.EMPTY_OBJECT),this._planes=[],this._dirtyIndex=-1,this._multipleDirtyPlanes=!1,this._enabled=y(e.enabled,!0),this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this.edgeColor=z.clone(y(e.edgeColor,z.WHITE)),this.edgeWidth=y(e.edgeWidth,0),this.planeAdded=new ge,this.planeRemoved=new ge,this._owner=void 0;let t=y(e.unionClippingRegions,!1);this._unionClippingRegions=t,this._testIntersection=t?Mne:Rne,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;let n=e.planes;if(l(n)){let i=n.length;for(let o=0;o0&&(r=$t.OUTSIDE);for(let s=0;s=r;)C=o[C-r];o.push(C),s[A]=x}x>WFe&&(t instanceof Uint16Array||t instanceof Uint8Array)?t=new Uint32Array(t):x>jFe&&t instanceof Uint8Array&&(t=new Uint16Array(t)),A===c?(c=x,t[a]=x):A===u?(u=x,t[a+1]=x):(f=x,t[a+2]=x),A=Vne(i,c,u,f,p,g,h)}}e._triangleIndices=t,e._outlineCoordinatesTypedArray=new Float32Array(i)}function Vne(e,t,n,i,o,r,s){let a=s?1:0,c=o?1:0,u=0,f=M5(e,t,a,c,u);if(f===0)return t;let d=0,p=o?1:0,g=r?1:0,h=M5(e,n,d,p,g);if(h===0)return n;let A=s?1:0,x=0,C=r?1:0,T=M5(e,i,A,x,C);if(T===0)return i;let E=f&h&T,S,v,D;if(E&1<<0)S=0,v=1,D=2;else if(E&1<<1)S=0,D=1,v=2;else if(E&1<<2)v=0,S=1,D=2;else if(E&1<<3)v=0,D=1,S=2;else if(E&1<<4)D=0,S=1,v=2;else if(E&1<<5)D=0,v=1,S=2;else{let N=R5(f),_=R5(h),b=R5(T);return N<_&&N>1&1)+(e>>2&1)+(e>>3&1)+(e>>4&1)+(e>>5&1)}RU.prototype.updateAttribute=function(e){let t=this._extraVertices,n=e.length,i=n/this._originalVertexCount,o=t.length,r=e.constructor,s=new r(e.length+o*i);s.set(e);for(let a=0;a1;)i>>=1,r.push(kne(i));let s=new Bt({context:e,source:{arrayBufferView:o,mipLevels:r},width:n,height:1,pixelFormat:ct.LUMINANCE,sampler:new dn({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:cn.LINEAR_MIPMAP_LINEAR,magnificationFilter:xi.LINEAR})});return t.outlineTexture=s,s};function kne(e){let t=new Uint8Array(e);return t[e-1]=192,e===8?t[e-1]=96:e===4?t[e-1]=48:e===2?t[e-1]=24:e===1&&(t[e-1]=12),t}function zne(e,t){this._originalVertexCount=t,this._edges=new Set;for(let n=0;n{this._resourcesLoaded=!0}).catch(o=>{this._processError=o})),l(this._processError)){this._state=Io.FAILED;let o=this._processError;this._processError=void 0,LU(this,o)}let t=this._textureErrors.pop();if(l(t)){let o=this.getError("Failed to load glTF texture",t);throw o.name="TextureError",o}if(this._state===Io.FAILED)return!1;let n=!1;try{n=this._process(e)}catch(o){this._state=Io.FAILED,LU(this,o)}let i=!1;try{i=this._processTextures(e)}catch(o){this._textureState=Io.FAILED,LU(this,o)}return this._incrementallyLoadTextures?n:n&&i};function S2e(e,t,n,i,o,r,s,a){let u=t.accessors[n].bufferView;return Bi.getVertexBufferLoader({gltf:t,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:a,bufferViewId:u,draco:o,attributeSemantic:i,accessorId:n,asynchronous:e._asynchronous,loadBuffer:r,loadTypedArray:s})}function w2e(e,t,n,i,o,r,s){return Bi.getIndexBufferLoader({gltf:t,accessorId:n,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:s,draco:i,asynchronous:e._asynchronous,loadBuffer:o,loadTypedArray:r})}function v2e(e,t,n){let i=Bi.getBufferViewLoader({gltf:t,bufferViewId:n,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoaders.push(i),i}function Yne(e,t,n){let i=t.byteOffset,o=dl(e,t),r=t.count,s=Ql(t.type),a=t.componentType,c=X.getSizeInBytes(a),u=c*s,f=r*s;if(o===u)return n=new Uint8Array(n),X.createArrayBufferView(a,n.buffer,n.byteOffset+i,f);let d=X.createTypedArray(a,f),p=new DataView(n.buffer),g=new Array(s),h=wp(t.componentType);i=n.byteOffset+i;for(let A=0;A{l(o)&&l(o.attributes)&&l(o.attributes[f])?V2e(A,x,r,s):k2e(t,c,A,x,r,s)},A}function Kne(e,t,n,i,o,r,s,a){let c=i.modelSemantic,u=c===bt.POSITION,f=c===bt.FEATURE_ID,d=u&&!r&&e._loadAttributesFor2D&&!a.scene3DOnly,p=e._loadForClassification&&f,g=e._loadAttributesAsTypedArray,h=!g,A=g||d||p,T=Xne(e,t,n,i,o,s?!1:h,s?!0:A,a),E=new LA.AttributeLoadPlan(T);return E.loadBuffer=h,E.loadTypedArray=A,E}function z2e(e,t,n,i,o,r){let s=l(i.ROTATION),a=l(i.TRANSLATION)&&l(t.accessors[i.TRANSLATION].min)&&l(t.accessors[i.TRANSLATION].max),c=B5(e,kr,o),u=c.modelSemantic,f=u===kr.TRANSLATION||u===kr.ROTATION||u===kr.SCALE,d=u===kr.TRANSLATION,p=e._loadAttributesAsTypedArray||s&&f||!r.context.instancedArrays,g=!p,h=e._loadAttributesFor2D&&!r.scene3DOnly;return Xne(e,t,n,c,void 0,g,p||d&&(!a||h),r)}function H2e(e,t,n,i,o,r,s){let a=t.accessors[n],c=a.bufferView;if(!l(i)&&!l(c))return;let u=new t2e;u.count=a.count;let f=e._loadAttributesAsTypedArray,d=e._loadIndicesForWireframe&&!s.context.webgl2,p=e._loadForClassification&&o,h=!f,A=f||d||p,T=w2e(e,t,n,i,r?!1:h,r?!0:A,s),E=e._geometryLoaders.length;e._geometryLoaders.push(T);let S=T.load();e._loaderPromises.push(S),e._geometryCallbacks[E]=()=>{u.indexDatatype=T.indexDatatype,u.buffer=T.buffer,u.typedArray=T.typedArray};let v=new LA.IndicesLoadPlan(u);return v.loadBuffer=h,v.loadTypedArray=A,v}function Dp(e,t,n,i,o,r){let s=ml.getImageIdFromTexture({gltf:t,textureId:n.index,supportedImageFormats:i});if(!l(s))return;let a=Bi.getTextureLoader({gltf:t,textureInfo:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:i,frameState:o,asynchronous:e._asynchronous}),c=ml.createModelTextureReader({textureInfo:n}),u=e._textureLoaders.length;e._textureLoaders.push(a);let f=a.load().catch(d=>{if(!e.isDestroyed()){if(!e._incrementallyLoadTextures)throw d;e._textureState=Io.FAILED,e._textureErrors.push(d)}});return e._texturesPromises.push(f),e._textureCallbacks[u]=()=>{c.texture=a.texture,l(r)&&(c.texture.sampler=r)},c}function G2e(e,t,n,i,o){let r=new A2e,s=y(n.extensions,y.EMPTY_OBJECT),a=s.KHR_materials_pbrSpecularGlossiness,c=n.pbrMetallicRoughness;if(r.unlit=l(s.KHR_materials_unlit),l(a)){let u=new y2e;r.specularGlossiness=u,l(a.diffuseTexture)&&(u.diffuseTexture=Dp(e,t,a.diffuseTexture,i,o)),l(a.specularGlossinessTexture)&&l(a.specularGlossinessTexture)&&(u.specularGlossinessTexture=Dp(e,t,a.specularGlossinessTexture,i,o)),u.diffuseFactor=$u(re,a.diffuseFactor),u.specularFactor=$u(m,a.specularFactor),u.glossinessFactor=a.glossinessFactor,r.pbrSpecularGlossiness=a}else if(l(c)){let u=new g2e;l(c.baseColorTexture)&&(u.baseColorTexture=Dp(e,t,c.baseColorTexture,i,o)),l(c.metallicRoughnessTexture)&&(u.metallicRoughnessTexture=Dp(e,t,c.metallicRoughnessTexture,i,o)),u.baseColorFactor=$u(re,c.baseColorFactor),u.metallicFactor=c.metallicFactor,u.roughnessFactor=c.roughnessFactor,r.metallicRoughness=u}return l(n.emissiveTexture)&&(r.emissiveTexture=Dp(e,t,n.emissiveTexture,i,o)),l(n.normalTexture)&&!e._loadForClassification&&(r.normalTexture=Dp(e,t,n.normalTexture,i,o)),l(n.occlusionTexture)&&(r.occlusionTexture=Dp(e,t,n.occlusionTexture,i,o)),r.emissiveFactor=$u(m,n.emissiveFactor),r.alphaMode=n.alphaMode,r.alphaCutoff=n.alphaCutoff,r.doubleSided=n.doubleSided,r}function Jne(e,t){let n=new Gne;return n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.propertyTableId=e.propertyTable,n.setIndex=e.attribute,n.label=e.label,n.positionalLabel=t,n}function Zne(e,t,n,i){let o=new Gne,r=e.featureIds;return o.featureCount=n,o.propertyTableId=t,o.setIndex=qne(r.attribute),o.positionalLabel=i,o}function Qne(e,t){let n=new jne;return n.propertyTableId=e.propertyTable,n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.label=e.label,n.positionalLabel=t,n.offset=0,n.repeat=1,n}function $ne(e,t,n,i){let o=new jne,r=e.featureIds;o.propertyTableId=t,o.featureCount=n,o.offset=y(r.constant,0);let s=y(r.divisor,0);return o.repeat=s===0?void 0:s,o.positionalLabel=i,o}function W2e(e,t,n,i,o,r){let s=new Wne;s.featureCount=n.featureCount,s.nullFeatureId=n.nullFeatureId,s.propertyTableId=n.propertyTable,s.label=n.label,s.positionalLabel=r;let a=n.texture;s.textureReader=Dp(e,t,a,i,o,dn.NEAREST);let u=(l(a.channels)?a.channels:[0]).map(function(f){return"rgba".charAt(f)}).join("");return s.textureReader.channels=u,s}function j2e(e,t,n,i,o,r,s,a){let c=new Wne,u=n.featureIds,f=u.texture;return c.featureCount=s,c.propertyTableId=i,c.textureReader=Dp(e,t,f,o,r,dn.NEAREST),c.textureReader.channels=u.channels,c.positionalLabel=a,c}function Y2e(e,t,n,i,o,r){let s=new n2e,a=void 0,c=!1;for(let u in n)if(n.hasOwnProperty(u)){let f=n[u],d=B5(e,bt,u),p=Kne(e,t,f,d,a,c,i,r);s.attributes.push(p.attribute),o.attributePlans.push(p)}return s}function q2e(e,t,n,i,o,r){let s=new i2e,a=new LA(s);e._primitiveLoadPlans.push(a);let c=n.material;l(c)&&(s.material=G2e(e,t,t.materials[c],o,r));let u=y(n.extensions,y.EMPTY_OBJECT),f=!1,d=u.CESIUM_primitive_outline;e._loadPrimitiveOutline&&l(d)&&(f=!0,a.needsOutlines=!0,a.outlineIndices=X2e(e,t,d,a));let p=e._loadForClassification,g=u.KHR_draco_mesh_compression,h=!1,A=n.attributes;if(l(A)){for(let O in A)if(A.hasOwnProperty(O)){let M=A[O],L=B5(e,bt,O),N=L.modelSemantic;if(p&&!U2e(N))continue;N===bt.FEATURE_ID&&(h=!0);let _=Kne(e,t,M,L,g,i,f,r);a.attributePlans.push(_),s.attributes.push(_.attribute)}}let x=n.targets;if(l(x)&&!p){let O=x.length;for(let M=0;M=s.clientWidth)u=!0;else{if(E.x>s.clientWidth*.5){a.width=E.x,c.frustum.right=p.x-C,Za=f1(r,n,c,Za),Aa.clipToGLWindowCoordinates(a,Za,N5),a.x+=E.x,c.position.x=-c.position.x;let S=c.frustum.right;c.frustum.right=-c.frustum.left,c.frustum.left=-S,Za=f1(r,n,c,Za),Aa.clipToGLWindowCoordinates(a,Za,F5)}else{a.x+=E.x,a.width-=E.x,c.frustum.left=-p.x-C,Za=f1(r,n,c,Za),Aa.clipToGLWindowCoordinates(a,Za,N5),a.x=a.x-a.width,c.position.x=-c.position.x;let S=c.frustum.left;c.frustum.left=-c.frustum.right,c.frustum.right=-S,Za=f1(r,n,c,Za),Aa.clipToGLWindowCoordinates(a,Za,F5)}m.clone(g,c.position),c.frustum=h.clone(),i=H.clone(N5,i),(i.x<0||i.x>s.clientWidth)&&(i.x=F5.x)}}if(o.mode!==ne.SCENE2D||u){if(Za=f1(r,n,c,Za),Za.z<0&&!(c.frustum instanceof tn)&&!(c.frustum instanceof xr))return;i=Aa.clipToGLWindowCoordinates(a,Za,i)}return i.y=s.clientHeight-i.y,i};Aa.wgs84ToDrawingBufferCoordinates=function(e,t,n){if(n=Aa.wgs84ToWindowCoordinates(e,t,n),!!l(n))return Aa.transformWindowToDrawingBuffer(e,n,n)};var Pp=new m,M3e=new he;Aa.computeActualWgs84Position=function(e,t,n){let i=e.mode;if(i===ne.SCENE3D)return m.clone(t,n);let o=e.mapProjection,r=o.ellipsoid.cartesianToCartographic(t,M3e);if(!l(r))return;if(o.project(r,Pp),i===ne.COLUMBUS_VIEW)return m.fromElements(Pp.z,Pp.x,Pp.y,n);if(i===ne.SCENE2D)return m.fromElements(0,Pp.x,Pp.y,n);let s=e.morphTime;return m.fromElements(P.lerp(Pp.z,t.x,s),P.lerp(Pp.x,t.y,s),P.lerp(Pp.y,t.z,s),n)};var rie=new m,sie=new m,aie=new B;Aa.clipToGLWindowCoordinates=function(e,t,n){return m.divideByScalar(t,t.w,rie),B.computeViewportTransformation(e,0,1,aie),B.multiplyByPoint(aie,rie,sie),H.fromCartesian3(sie,n)};Aa.transformWindowToDrawingBuffer=function(e,t,n){let i=e.canvas,o=e.drawingBufferWidth/i.clientWidth,r=e.drawingBufferHeight/i.clientHeight;return H.fromElements(t.x*o,t.y*r,n)};var R3e=new re,cie=new re;Aa.drawingBufferToWgs84Coordinates=function(e,t,n,i){let r=e.context.uniformState,s=r.currentFrustum,a=s.x,c=s.y;if(e.frameState.useLogDepth){let g=n*r.log2FarDepthFromNearPlusOne,h=Math.pow(2,g)-1;n=c*(1-a/(h+a))/(c-a)}let u=e.view.passState.viewport,f=re.clone(re.UNIT_W,R3e);f.x=(t.x-u.x)/u.width*2-1,f.y=(t.y-u.y)/u.height*2-1,f.z=n*2-1,f.w=1;let d,p=e.camera.frustum;if(l(p.fovy)){d=B.multiplyByVector(r.inverseViewProjection,f,cie);let g=1/d.w;m.multiplyByScalar(d,g,d)}else{let g=p.offCenterFrustum;l(g)&&(p=g),d=cie,d.x=(f.x*(p.right-p.left)+p.left+p.right)*.5,d.y=(f.y*(p.top-p.bottom)+p.bottom+p.top)*.5,d.z=(f.z*(a-c)-a-c)*.5,d.w=1,d=B.multiplyByVector(r.inverseView,d,d)}return m.fromCartesian4(d,i)};var Xi=Aa;var B3e={LEFT:-1,NONE:0,RIGHT:1},Rc=Object.freeze(B3e);var WT={};WT._deprecationWarning=$;var Op=Uint32Array.BYTES_PER_ELEMENT;WT.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=Op;let r=o.getUint32(t,!0);if(r!==1)throw new de(`Only Batched 3D Model version 1 is supported. Version ${r} is not.`);t+=Op;let s=o.getUint32(t,!0);t+=Op;let a=o.getUint32(t,!0);t+=Op;let c=o.getUint32(t,!0);t+=Op;let u=o.getUint32(t,!0);t+=Op;let f=o.getUint32(t,!0);t+=Op;let d;u>=570425344?(t-=Op*2,d=a,u=c,f=0,a=0,c=0,WT._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchLength] [batchTableByteLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel.")):f>=570425344&&(t-=Op,d=u,u=a,f=c,a=0,c=0,WT._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel."));let p;a===0?p={BATCH_LENGTH:y(d,0)}:(p=Do(i,t,a),t+=a);let g=new Uint8Array(e,t,c);t+=c;let h,A;u>0&&(h=Do(i,t,u),t+=u,f>0&&(A=new Uint8Array(e,t,f),A=new Uint8Array(A),t+=f));let x=n+s-t;if(x===0)throw new de("glTF byte length must be greater than 0.");let C;return t%4===0?C=new Uint8Array(e,t,x):(WT._deprecationWarning("b3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),C=new Uint8Array(i.subarray(t,t+x))),{batchLength:d,featureTableJson:p,featureTableBinary:g,batchTableJson:h,batchTableBinary:A,gltf:C}};var d1=WT;function m1(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function lie(e,t,n,i,o,r){let s=e._cachedTypedArrays,a=s[t];return l(a)||(a=X.createArrayBufferView(n,e.buffer.buffer,e.buffer.byteOffset+r,o*i),s[t]=a),a}function L3e(e,t,n,i){let o=e._cachedTypedArrays,r=o[t];return l(r)||(r=X.createTypedArray(n,i),o[t]=r),r}m1.prototype.getGlobalProperty=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(t=y(t,X.UNSIGNED_INT),n=y(n,1),lie(this,e,t,n,1,i.byteOffset)):i};m1.prototype.hasProperty=function(e){return l(this.json[e])};m1.prototype.getPropertyArray=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(l(i.componentType)&&(t=X.fromName(i.componentType)),lie(this,e,t,n,this.featuresLength,i.byteOffset)):L3e(this,e,t,i)};m1.prototype.getProperty=function(e,t,n,i,o){let r=this.json[e];if(!l(r))return;let s=this.getPropertyArray(e,t,n);if(n===1)return s[i];for(let a=0;a0&&(h=Do(i,t,u),t+=u,f>0&&(A=new Uint8Array(e,t,f),A=new Uint8Array(A),t+=f));let x=n+s-t;if(x===0)throw new de("glTF byte length must be greater than 0.");let C;return t%4===0?C=new Uint8Array(e,t,x):(UU._deprecationWarning("i3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),C=new Uint8Array(i.subarray(t,t+x))),{gltfFormat:d,featureTableJson:p,featureTableBinary:g,batchTableJson:h,batchTableBinary:A,gltf:C}};var g1=UU;var Rp={NOT_LOADED:0,LOADING:1,PROCESSING:2,POST_PROCESSING:3,READY:4,FAILED:5,UNLOADED:6},VU=Nt.Attribute,nUe=Nt.FeatureIdAttribute,pie=Nt.Instances;function Bp(e){e=y(e,y.EMPTY_OBJECT);let t=e.i3dmResource,n=e.arrayBuffer,i=e.baseResource,o=y(e.byteOffset,0),r=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,ao.Y),u=y(e.forwardAxis,ao.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0);i=l(i)?i:t.clone(),this._i3dmResource=t,this._baseResource=i,this._arrayBuffer=n,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=u,this._loadAttributesAsTypedArray=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._state=Rp.NOT_LOADED,this._promise=void 0,this._gltfLoader=void 0,this._buffers=[],this._components=void 0,this._transform=B.IDENTITY,this._batchTable=void 0,this._featureTable=void 0,this._instancesLength=0}l(Object.create)&&(Bp.prototype=Object.create(io.prototype),Bp.prototype.constructor=Bp);Object.defineProperties(Bp.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});Bp.prototype.load=function(){if(l(this._promise))return this._promise;let e=g1.parse(this._arrayBuffer,this._byteOffset),t=e.featureTableJson,n=e.featureTableBinary,i=e.batchTableJson,o=e.batchTableBinary,r=e.gltfFormat,s=new Ed(t,n);this._featureTable=s;let a=s.getGlobalProperty("INSTANCES_LENGTH");if(s.featuresLength=a,!l(a))throw new de("Feature table global property: INSTANCES_LENGTH must be defined");this._instancesLength=a;let c=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(c)&&(this._transform=B.fromTranslation(m.fromArray(c))),this._batchTable={json:i,binary:o};let u={upAxis:this._upAxis,forwardAxis:this._forwardAxis,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline};if(r===0){let d=ll(e.gltf);d=d.replace(/[\s\0]+$/,"");let p=this._baseResource.getDerivedResource({url:d});u.gltfResource=p,u.baseResource=p}else u.gltfResource=this._i3dmResource,u.typedArray=e.gltf;let f=new zm(u);return this._gltfLoader=f,this._state=Rp.LOADING,this._promise=f.load().then(()=>{if(!this.isDestroyed())return this._state=Rp.PROCESSING,this}).catch(d=>{if(!this.isDestroyed())throw iUe(this,d)}),this._promise};function iUe(e,t){e.unload(),e._state=Rp.FAILED;let n="Failed to load i3dm";return e.getError(n,t)}Bp.prototype.process=function(e){if(this._state===Rp.READY)return!0;let t=this._gltfLoader,n=!1;if(this._state===Rp.PROCESSING&&(n=t.process(e)),!n)return!1;let i=t.components;return i.transform=B.multiplyTransformation(this._transform,i.transform,i.transform),sUe(this,i,e),oUe(this,i),this._components=i,this._arrayBuffer=void 0,this._state=Rp.READY,!0};function oUe(e,t){let n=e._batchTable,i=e._instancesLength;if(i===0)return;let o;if(l(n.json))o=Mp({count:i,batchTable:n.json,binaryBody:n.binary});else{let r=new Mc({name:yd.BATCH_TABLE_CLASS_NAME,count:i});o=new ya({schema:{},propertyTables:[r]})}t.structuralMetadata=o}var kU=new m,k5=new Array(4),rUe=new B;function sUe(e,t,n){let i,o=e._featureTable,r=e._instancesLength;if(r===0)return;let s=o.getGlobalProperty("RTC_CENTER",X.FLOAT,3),a=o.getGlobalProperty("EAST_NORTH_UP"),c=o.hasProperty("NORMAL_UP")||o.hasProperty("NORMAL_UP_OCT32P")||a,u=o.hasProperty("SCALE")||o.hasProperty("SCALE_NON_UNIFORM"),f=cUe(o,r),d;c&&(d=new Float32Array(4*r));let p;u&&(p=new Float32Array(3*r));let g=new Float32Array(r),h=m.unpackArray(f),A=new m,x=new m,C=new m,T=new m,E=new Z,S=new Ne,v=new Array(4),D=new m,O=new Array(3),M=new B;if(!l(s)){let V=ae.fromPoints(h);for(i=0;i0&&(V.instances=k?aUe(L):L,k=!0)}}function aUe(e){let t=new pie;t.transformInWorldSpace=e.transformInWorldSpace;let n=e.attributes,i=n.length;for(let o=0;o=n[t]){if(t+1=0&&e>=n[t-1])return t-1;let o;if(e>n[t])for(o=t;o=n[o]&&e=0&&!(e>=n[o]&&en&&(r=Math.floor((e-n)/o)+1,e-=r*o),e};jT.prototype.clampTime=function(e){let t=this.times;return P.clamp(e,t[0],t[t.length-1])};var oo=jT;function YT(e){this._value=e,this._valueType=oo.getPointType(e)}Object.defineProperties(YT.prototype,{value:{get:function(){return this._value}}});YT.prototype.findTimeInterval=function(e){};YT.prototype.wrapTime=function(e){return 0};YT.prototype.clampTime=function(e){return 0};YT.prototype.evaluate=function(e,t){let n=this._value,i=this._valueType;return i===Number?n:i.clone(n,t)};var A1=YT;function qT(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=oo.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(qT.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});qT.prototype.findTimeInterval=oo.prototype.findTimeInterval;qT.prototype.wrapTime=oo.prototype.wrapTime;qT.prototype.clampTime=oo.prototype.clampTime;qT.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);return this._pointType===Number?(1-r)*n[o]+r*n[o+1]:(l(t)||(t=new m),m.lerp(n[o],n[o+1],r,t))};var Bg=qT;var _ie={};_ie.solve=function(e,t,n,i){let o=new Array(n.length),r=new Array(i.length),s=new Array(i.length),a;for(a=0;a=0;--a)s[a]=m.subtract(r[a],m.multiplyByScalar(s[a+1],o[a],s[a]),s[a]);return s};var XT=_ie;var gie=[],yie=[],Aie=[],xie=[];function mUe(e,t,n){let i=gie,o=Aie,r=yie,s=xie;i.length=o.length=e.length-1,r.length=s.length=e.length;let a;i[0]=r[0]=1,o[0]=0;let c=s[0];for(l(c)||(c=s[0]=new m),m.clone(t,c),a=1;a0&&e.afterRender.push(a._raiseStartEvent)),a.loop===_l.REPEAT)g=g-Math.floor(g);else if(a.loop===_l.MIRRORED_REPEAT){let C=Math.floor(g),T=g-C;g=C%2===1?1-T:T}a.reverse&&(g=1-g);let x=g*u*a.multiplier;x=P.clamp(x,a.localStartTime,a.localStopTime),a.animate(x),a.update.numberOfListeners>0&&(a._updateEventTime=x,e.afterRender.push(a._raiseUpdateEvent)),i=!0,A||(a._state=bd.STOPPED,a.stop.numberOfListeners>0&&e.afterRender.push(a._raiseStopEvent),a.removeOnStop&&zU.push(a))}}n=zU.length;for(let s=0;ss||o<-s&&r>-s}function QT(e,t){if(!l(t))return;let n=Np.clone(t),i=it.shallowClone(t.command);return i.modelMatrix=e._modelMatrix2D,i.boundingVolume=e._boundingVolume2D,n.command=i,n.updateShadows=!1,n.is2D=!0,t.derivedCommand2D=n,e._derivedCommands.push(n),n}function LUe(e){QT(e,e._originalCommand),QT(e,e._translucentCommand),QT(e,e._skipLodBackfaceCommand),QT(e,e._skipLodStencilCommand),QT(e,e._silhouetteModelCommand),QT(e,e._silhouetteColorCommand)}function NUe(e){let t=it.shallowClone(e);t.pass=be.TRANSLUCENT;let n=Ye(e.renderState,!0);return n.cull.enabled=!1,n.depthMask=!1,n.blending=mn.ALPHA_BLEND,t.renderState=ze.fromCache(n),t}function FUe(e,t){let n=t._silhouetteId%255,i=it.shallowClone(e),o=Ye(e.renderState,!0);return o.stencilTest={enabled:!0,frontFunction:te.ALWAYS,backFunction:te.ALWAYS,reference:n,mask:-1,frontOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.REPLACE},backOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.REPLACE}},t.isInvisible()&&(o.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),i.renderState=ze.fromCache(o),i}function UUe(e,t){let n=t._silhouetteId%255,i=it.shallowClone(e),o=Ye(e.renderState,!0);o.cull.enabled=!1,(e.pass===be.TRANSLUCENT||t.silhouetteColor.alpha<1)&&(i.pass=be.TRANSLUCENT,o.depthMask=!1,o.blending=mn.ALPHA_BLEND),o.stencilTest={enabled:!0,frontFunction:te.NOTEQUAL,backFunction:te.NOTEQUAL,reference:n,mask:-1,frontOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.KEEP},backOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.KEEP}};let s=Ye(e.uniformMap);return s.model_silhouettePass=function(){return!0},i.renderState=ze.fromCache(o),i.uniformMap=s,i.castShadows=!1,i.receiveShadows=!1,i}function VUe(e,t,n){let i=e._skipLodStencilCommand,o=i.command,r=t._selectionDepth,s=kUe(o);if(r!==s){let a=zUe(r),c=Ye(o.renderState,!0);c.stencilTest.reference=a,o.renderState=ze.fromCache(c),n&&(i.derivedCommand2D.renderState=c)}}function kUe(e){return(e.renderState.stencilTest.reference&Ft.SKIP_LOD_MASK)>>>Ft.SKIP_LOD_BIT_SHIFT}function zUe(e){return Ft.CESIUM_3D_TILE_MASK|e< 0.0 && clipDistance < clippingPlanesEdgeWidth) { + color = clippingPlanesEdgeColor; + } +} +`;var Die={name:"ModelClippingPlanesPipelineStage"},ZUe=new H;Die.process=function(e,t,n){let i=t.clippingPlanes,o=n.context,r=e.shaderBuilder;r.addDefine("HAS_CLIPPING_PLANES",void 0,Te.FRAGMENT),r.addDefine("CLIPPING_PLANES_LENGTH",i.length,Te.FRAGMENT),i.unionClippingRegions&&r.addDefine("UNION_CLIPPING_REGIONS",void 0,Te.FRAGMENT),os.useFloatTexture(o)&&r.addDefine("USE_CLIPPING_PLANES_FLOAT_TEXTURE",void 0,Te.FRAGMENT);let s=os.getTextureResolution(i,o,ZUe);r.addDefine("CLIPPING_PLANES_TEXTURE_WIDTH",s.x,Te.FRAGMENT),r.addDefine("CLIPPING_PLANES_TEXTURE_HEIGHT",s.y,Te.FRAGMENT),r.addUniform("sampler2D","model_clippingPlanes",Te.FRAGMENT),r.addUniform("vec4","model_clippingPlanesEdgeStyle",Te.FRAGMENT),r.addUniform("mat4","model_clippingPlanesMatrix",Te.FRAGMENT),r.addFragmentLines(k1);let a={model_clippingPlanes:function(){return i.texture},model_clippingPlanesEdgeStyle:function(){let c=z.clone(i.edgeColor);return c.alpha=i.edgeWidth,c},model_clippingPlanesMatrix:function(){return t._clippingPlanesMatrix}};e.uniformMap=_t(a,e.uniformMap)};var z1=Die;function Iie(e,t){this._model=e,this._runtimeNode=t}Object.defineProperties(Iie.prototype,{name:{get:function(){return this._runtimeNode._name}},id:{get:function(){return this._runtimeNode._id}},show:{get:function(){return this._runtimeNode.show},set:function(e){this._runtimeNode.show=e}},matrix:{get:function(){return this._runtimeNode.transform},set:function(e){l(e)?(this._runtimeNode.transform=e,this._runtimeNode.userAnimated=!0,this._model._userAnimationDirty=!0):(this._runtimeNode.transform=this.originalMatrix,this._runtimeNode.userAnimated=!1)}},originalMatrix:{get:function(){return this._runtimeNode.originalTransform}}});var H1=Iie;var G1=`mat4 getInstancingTransform() +{ + mat4 instancingTransform; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform = mat4( + a_instancingTransformRow0.x, a_instancingTransformRow1.x, a_instancingTransformRow2.x, 0.0, // Column 1 + a_instancingTransformRow0.y, a_instancingTransformRow1.y, a_instancingTransformRow2.y, 0.0, // Column 2 + a_instancingTransformRow0.z, a_instancingTransformRow1.z, a_instancingTransformRow2.z, 0.0, // Column 3 + a_instancingTransformRow0.w, a_instancingTransformRow1.w, a_instancingTransformRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation = a_instanceTranslation; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation.x, translation.y, translation.z, 1.0 + ); + #endif + + return instancingTransform; +} + +#ifdef USE_2D_INSTANCING +mat4 getInstancingTransform2D() +{ + mat4 instancingTransform2D; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform2D = mat4( + a_instancingTransform2DRow0.x, a_instancingTransform2DRow1.x, a_instancingTransform2DRow2.x, 0.0, // Column 1 + a_instancingTransform2DRow0.y, a_instancingTransform2DRow1.y, a_instancingTransform2DRow2.y, 0.0, // Column 2 + a_instancingTransform2DRow0.z, a_instancingTransform2DRow1.z, a_instancingTransform2DRow2.z, 0.0, // Column 3 + a_instancingTransform2DRow0.w, a_instancingTransform2DRow1.w, a_instancingTransform2DRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation2D = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation2D = a_instanceTranslation2D; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform2D = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation2D.x, translation2D.y, translation2D.z, 1.0 + ); + #endif + + return instancingTransform2D; +} +#endif +`;var W1=`void instancingStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + attributes.positionMC = (instancingTransform * vec4(positionMC, 1.0)).xyz; + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = (instancingTransform * vec4(normalMC, 0.0)).xyz; + #endif + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var j1=`void legacyInstancingStage( + inout ProcessedAttributes attributes, + out mat4 instanceModelView, + out mat3 instanceModelViewInverseTranspose) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + mat4 instanceModel = instancingTransform * u_instance_nodeTransform; + instanceModelView = u_instance_modifiedModelView; + instanceModelViewInverseTranspose = mat3(u_instance_modifiedModelView * instanceModel); + + attributes.positionMC = (instanceModel * vec4(positionMC, 1.0)).xyz; + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var WU=new B,QUe=new B,$Ue=new B,Oie={name:"InstancingPipelineStage",_getInstanceTransformsAsMatrices:Nie,_transformsToTypedArray:J5};Oie.process=function(e,t,n){let i=t.instances,o=i.attributes[0].count,r=e.shaderBuilder;r.addDefine("HAS_INSTANCING"),r.addVertexLines(G1);let s=e.model,a=s.sceneGraph,c=e.runtimeNode,u=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&s._projectTo2D,f=[];hVe(e,n,i,f,u),gVe(e,n,i,f);let d={};if(i.transformInWorldSpace?(r.addDefine("USE_LEGACY_INSTANCING",void 0,Te.VERTEX),r.addUniform("mat4","u_instance_modifiedModelView",Te.VERTEX),r.addUniform("mat4","u_instance_nodeTransform",Te.VERTEX),d.u_instance_modifiedModelView=function(){let p=B.multiplyTransformation(s.modelMatrix,a.components.transform,WU);return u?B.multiplyTransformation(n.context.uniformState.view3D,p,WU):(n.mode!==ne.SCENE3D&&(p=Rt.basisTo2D(n.mapProjection,p,WU)),B.multiplyTransformation(n.context.uniformState.view,p,WU))},d.u_instance_nodeTransform=function(){return B.multiplyTransformation(a.axisCorrectionMatrix,c.computedTransform,QUe)},r.addVertexLines(j1)):r.addVertexLines(W1),u){r.addDefine("USE_2D_INSTANCING",void 0,Te.VERTEX),r.addUniform("mat4","u_modelView2D",Te.VERTEX);let p=n.context,g=B.fromTranslation(c.instancingReferencePoint2D,new B);d.u_modelView2D=function(){return B.multiplyTransformation(p.uniformState.view,g,$Ue)}}e.uniformMap=_t(d,e.uniformMap),e.instanceCount=o,e.attributes.push.apply(e.attributes,f)};var Y1=new B,eVe=new m;function tVe(e,t,n,i,o){let r=B.multiplyTransformation(t,e,Y1);return r=B.multiplyTransformation(r,n,Y1),o=Rt.basisTo2D(i.mapProjection,r,o),o}function nVe(e,t,n,i,o){let r=B.fromTranslation(e,Y1),s=B.multiplyTransformation(t,r,Y1);s=B.multiplyTransformation(s,n,Y1);let a=B.getTranslation(s,eVe);return o=Xi.computeActualWgs84Position(i,a,o),o}function Mie(e,t,n){let i=e.model,o=i.sceneGraph;e.runtimeNode.node.instances.transformInWorldSpace?(t=B.multiplyTransformation(i.modelMatrix,o.components.transform,t),n=B.multiplyTransformation(o.axisCorrectionMatrix,e.runtimeNode.computedTransform,n)):(t=B.clone(o.computedModelMatrix,t),t=B.multiplyTransformation(t,e.runtimeNode.computedTransform,t),n=B.clone(B.IDENTITY,n))}var Rie=new B,Bie=new B,iVe=new B,oVe=new m;function rVe(e,t,n,i){let o=Rie,r=Bie;Mie(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let u=0;u=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=a.setIndex+1),i.push({index:e.attributeIndex++,vertexBuffer:a.buffer,componentsPerAttribute:sn.getNumberOfComponents(a.type),componentDatatype:a.componentDatatype,normalize:!1,offsetInBytes:a.byteOffset,strideInBytes:a.byteStride,instanceDivisor:1}),r.addAttribute("float",`a_instanceFeatureId_${a.setIndex}`))}}var q1=Oie;var Q5={};Q5.name="ModelMatrixUpdateStage";Q5.update=function(e,t,n){let i=n.mode!==ne.SCENE3D;if(!(i&&t._model._projectTo2D)&&e._transformDirty){let o=i?t._computedModelMatrix2D:t._computedModelMatrix;Fie(e,t,o,e.transformToRoot),e._transformDirty=!1}};function Fie(e,t,n,i){let o;i=B.multiplyTransformation(i,e.transform,new B),e.updateComputedTransform();let r=e.runtimePrimitives.length;for(o=0;o1&&(i.addDefine("MULTILINE_BATCH_TEXTURE"),i.addUniform("vec2","model_textureDimensions"),o.model_textureDimensions=function(){return c.textureDimensions}),e.uniformMap=_t(o,e.uniformMap)};var Q1=Hie;var Gie={name:"ClassificationPipelineStage"};Gie.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_CLASSIFICATION",void 0,Te.BOTH);let o=e.runtimePrimitive;l(o.batchLengths)||AVe(t,o)};function AVe(e,t){let n=Zt.getAttributeBySemantic(e,bt.POSITION);if(!l(n))throw new de("Primitives must have a position attribute to be used for classification.");let i,o=e.indices,r=l(o);r&&(i=o.typedArray,o.typedArray=void 0);let s=r?o.count:n.count,a=Zt.getAttributeBySemantic(e,bt.FEATURE_ID,0);if(!l(a)){t.batchLengths=[s],t.batchOffsets=[0];return}let c=a.typedArray;a.typedArray=void 0;let u=[],f=[0],d=r?i[0]:0,p=c[d],g=0;for(let A=1;AIVe(i,t,n)):[]}function IVe(e,t,n){let{getAttributeByName:i,getAttributeInfo:o,sanitizeGlslIdentifier:r}=Zt,s=e.class.id,a=n?.classes[s],c=Object.entries(e.properties),u=new Array(c.length);for(let f=0;fOVe(n,t)):[]}function OVe(e,t){let{sanitizeGlslIdentifier:n}=Zt,i=e.class.id,o=t?.classes[i],r=Object.entries(e.properties).filter(([a,c])=>c.isGpuCompatible()),s=new Array(r.length);for(let a=0;af),n.addStructField(Ti.STRUCT_ID_METADATA_FS,r,o);let p=`attributes.texCoord_${a}`,g=`texture(${d}, ${p}).${c}`,h=s.unpackInShader(g),A=Zie({valueExpression:h,renderResources:e,glslType:r,metadataVariable:o,shaderDestination:Te.FRAGMENT,property:s}),x=`metadata.${o} = ${A};`;n.addFunctionLines(Ti.FUNCTION_ID_INITIALIZE_METADATA_FS,[x])}function Xie(e,t){let{classProperty:n}=t.property,{metadataVariable:i,glslType:o,shaderDestination:r}=t,s=Jie(Ti.METADATA_CLASS_FIELDS,n,`metadataClass.${i}`,o),a=`${o}MetadataClass`;e.addStructField(Ti.STRUCT_ID_METADATA_CLASS_FS,a,i),e.addFunctionLines(Ti.FUNCTION_ID_INITIALIZE_METADATA_FS,s),Te.includesVertexShader(r)&&(e.addStructField(Ti.STRUCT_ID_METADATA_CLASS_VS,a,i),e.addFunctionLines(Ti.FUNCTION_ID_INITIALIZE_METADATA_VS,s))}function Kie(e,t){let{propertyStatistics:n}=t;if(!l(n))return;let{metadataVariable:i,type:o,glslType:r}=t;if(o===Wt.ENUM)return;let s=Ti.METADATA_STATISTICS_FIELDS,a=`metadataStatistics.${i}`,c=Jie(s,n,a,r),u=`${r}MetadataStatistics`;e.addStructField(Ti.STRUCT_ID_METADATA_STATISTICS_FS,u,i),e.addFunctionLines(Ti.FUNCTION_ID_INITIALIZE_METADATA_FS,c),Te.includesVertexShader(t.shaderDestination)&&(e.addStructField(Ti.STRUCT_ID_METADATA_STATISTICS_VS,u,i),e.addFunctionLines(Ti.FUNCTION_ID_INITIALIZE_METADATA_VS,c))}function Jie(e,t,n,i){function o(r){let s=t[r.specName];if(l(s))return`${n}.${r.shaderName} = ${i}(${s});`}return l(t)?e.map(o).filter(l):[]}function Zie(e){let{valueExpression:t,property:n}=e;if(!n.hasValueTransform)return t;let i=e.metadataVariable,o=`u_${i}_offset`,r=`u_${i}_scale`,{shaderBuilder:s,uniformMap:a}=e.renderResources,{glslType:c,shaderDestination:u}=e;s.addUniform(c,o,u),s.addUniform(c,r,u);let{offset:f,scale:d}=n;return a[o]=()=>f,a[r]=()=>d,`czm_valueTransform(${o}, ${r}, ${t})`}var ef=Ti;var kVe={INHERIT:0,OPAQUE:1,TRANSLUCENT:2},Vg=Object.freeze(kVe);var Js={name:"CustomShaderPipelineStage",STRUCT_ID_ATTRIBUTES_VS:"AttributesVS",STRUCT_ID_ATTRIBUTES_FS:"AttributesFS",STRUCT_NAME_ATTRIBUTES:"Attributes",STRUCT_ID_VERTEX_INPUT:"VertexInput",STRUCT_NAME_VERTEX_INPUT:"VertexInput",STRUCT_ID_FRAGMENT_INPUT:"FragmentInput",STRUCT_NAME_FRAGMENT_INPUT:"FragmentInput",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS:"initializeInputStructVS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS:"void initializeInputStruct(out VertexInput vsInput, ProcessedAttributes attributes)",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS:"initializeInputStructFS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS:"void initializeInputStruct(out FragmentInput fsInput, ProcessedAttributes attributes)",_oneTimeWarning:Mt};Js.process=function(e,t,n){let i=e.shaderBuilder,o=e.model.customShader;l(o.lightingModel)&&(e.lightingOptions.lightingModel=o.lightingModel);let r=e.alphaOptions;o.translucencyMode===Vg.TRANSLUCENT?r.pass=be.TRANSLUCENT:o.translucencyMode===Vg.OPAQUE&&(r.pass=void 0);let s=XVe(o,t);if(!s.customShaderEnabled)return;if(QVe(i,o,s),s.shouldComputePositionWC&&i.addDefine("COMPUTE_POSITION_WC_CUSTOM_SHADER",void 0,Te.BOTH),l(o.vertexShaderText)&&i.addDefine("HAS_CUSTOM_VERTEX_SHADER",void 0,Te.VERTEX),l(o.fragmentShaderText)){i.addDefine("HAS_CUSTOM_FRAGMENT_SHADER",void 0,Te.FRAGMENT);let u=Fp.getDefineName(o.mode);i.addDefine(u,void 0,Te.FRAGMENT)}let a=o.uniforms;for(let u in a)if(a.hasOwnProperty(u)){let f=a[u];i.addUniform(f.type,u)}let c=o.varyings;for(let u in c)if(c.hasOwnProperty(u)){let f=c[u];i.addVarying(f,u)}e.uniformMap=_t(e.uniformMap,o.uniformMap)};function zVe(e){let t={};for(let n=0;n1?(h=e.attributeIndex,e.attributeIndex+=p):g&&!c?h=0:h=e.attributeIndex++,rke(e,d,h,p,s,a)}hke(i,t.attributes),t.primitiveType===Le.POINTS&&i.addDefine("PRIMITIVE_TYPE_POINTS"),i.addVertexLines(mO),i.addFragmentLines(dO)};function rke(e,t,n,i,o,r){let s=e.shaderBuilder,a=Zt.getAttributeInfo(t),c=o&&!r;i>1?cke(e,t,n,i):ake(e,t,n,c),uke(s,a,c),lke(s,a),l(t.semantic)&&ske(s,t),fke(s,a,o),dke(s,a,c),mke(s,a)}function ske(e,t){let n=t.semantic,i=t.setIndex;switch(n){case bt.NORMAL:e.addDefine("HAS_NORMALS");break;case bt.TANGENT:e.addDefine("HAS_TANGENTS");break;case bt.FEATURE_ID:e.addDefine(`HAS${n}_${i}`);break;case bt.TEXCOORD:case bt.COLOR:e.addDefine(`HAS_${n}_${i}`)}}function ake(e,t,n,i){let o=t.quantization,r,s;l(o)?(r=o.type,s=o.componentDatatype):(r=t.type,s=t.componentDatatype);let a=t.semantic,c=t.setIndex;a===bt.FEATURE_ID&&c>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=c+1);let u=a===bt.POSITION,f=u?0:n,d=sn.getNumberOfComponents(r),p={index:f,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:d,componentDatatype:s,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};if(e.attributes.push(p),!u||!i)return;let g=e.runtimePrimitive.positionBuffer2D,h={index:n,vertexBuffer:g,count:t.count,componentsPerAttribute:d,componentDatatype:X.FLOAT,offsetInBytes:0,strideInBytes:void 0,normalize:t.normalized};e.attributes.push(h)}function cke(e,t,n,i){let o=t.quantization,r,s;l(o)?(r=o.type,s=o.componentDatatype):(r=t.type,s=t.componentDatatype);let a=t.normalized,u=sn.getNumberOfComponents(r)/i,f=X.getSizeInBytes(s),d=u*f,p=t.byteStride;for(let g=0;g0,u=!l(a)&&c;if(l(r)&&!u){let A=Bke(a),x=Lke(r,A);Nke(i,x);let T=Fke(x).indexOf("normalMC")>=0,E=Zt.getAttributeBySemantic(t,bt.NORMAL);if(T&&!E)throw new de("Style references the NORMAL semantic but the point cloud does not have normals");i.addDefine("COMPUTE_POSITION_WC_STYLE",void 0,Te.VERTEX),x.styleTranslucent&&(e.alphaOptions.pass=be.TRANSLUCENT)}let f=o.pointCloudShading;f.attenuation&&i.addDefine("HAS_POINT_CLOUD_ATTENUATION",void 0,Te.VERTEX),f.backFaceCulling&&i.addDefine("HAS_POINT_CLOUD_BACK_FACE_CULLING",void 0,Te.VERTEX);let d,p,g;Bo.is3DTiles(o.type)&&(p=!0,d=o.content,g=d.tile.refine===Lo.ADD),i.addUniform("vec4","model_pointCloudParameters",Te.VERTEX),i.addVertexLines(EO);let h=e.uniformMap;h.model_pointCloudParameters=function(){let A=Pke,x=1;p&&(x=g?5:d.tileset.maximumScreenSpaceError),A.x=y(f.maximumAttenuation,x),A.x*=n.pixelRatio;let C=Oke(e,t,f,d);A.y=C*f.geometricErrorScale;let T=n.context,E=n.camera.frustum,S;return n.mode===ne.SCENE2D||E instanceof tn?S=Number.POSITIVE_INFINITY:S=T.drawingBufferHeight/n.camera.frustum.sseDenominator,A.z=S,p&&(A.w=d.tileset.timeSinceLoad),A}};var coe=new m;function Oke(e,t,n,i){if(l(i)){let f=i.tile.geometricError;if(f>0)return f}if(l(n.baseResolution))return n.baseResolution;let o=Zt.getAttributeBySemantic(t,bt.POSITION),r=o.count,s=e.runtimeNode.transform,a=m.subtract(o.max,o.min,coe);a=B.multiplyByPointAsVector(s,a,coe);let c=a.x*a.y*a.z;return P.cbrt(c/r)}var Mke={colorStyleFunction:void 0,showStyleFunction:void 0,pointSizeStyleFunction:void 0,styleTranslucent:!1},Rke={POSITION:"attributes.positionMC",POSITION_ABSOLUTE:"v_positionWC",COLOR:"attributes.color_0",NORMAL:"attributes.normalMC"};function Bke(e){let t=Ye(Rke);if(!l(e))return t;for(let n=0;n0,d=l(i.skin),p=l(r),h=!(p&&l(r.fragmentShaderText))||r.mode!==Fp.REPLACE_MATERIAL,A=Zt.hasQuantizedAttributes(n.attributes),x=o.debugWireframe&&Le.isTriangles(n.primitiveType)&&(o._enableDebugWireframe||a),C=o.pointCloudShading,T=l(C)&&C.attenuation,E=l(C)&&C.backFaceCulling,S=n.primitiveType===Le.POINTS&&(l(s)||T||E),v=o._enableShowOutline&&l(n.outlineCoordinates),D=o4e(o,i,n),O=l(o.classificationType);u&&t.push(IO),t.push(pO),x&&t.push(MO),O&&t.push($1),f&&t.push(CO),d&&t.push(OO),S&&t.push(bO),A&&t.push(fO),h&&t.push(AO),t.push(Ug),t.push(ef),D.hasPropertyTable&&(t.push(kg),t.push(Q1),t.push(nO)),p&&t.push(lO),t.push(gO),o.allowPicking&&t.push(TO),v&&t.push(vO),t.push(Z1),t.push(DO)};function o4e(e,t,n){let i;return l(t.instances)&&(i=Zt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(i))?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:(i=Zt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),l(i)?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:{hasFeatureIds:!1,hasPropertyTable:!1})}var RO=Coe;function r6(e){e=y(e,y.EMPTY_OBJECT),this._sceneGraph=e.sceneGraph;let t=e.skin;this._skin=t,this._inverseBindMatrices=void 0,this._joints=[],this._jointMatrices=[],r4e(this)}Object.defineProperties(r6.prototype,{skin:{get:function(){return this._skin}},sceneGraph:{get:function(){return this._sceneGraph}},inverseBindMatrices:{get:function(){return this._inverseBindMatrices}},joints:{get:function(){return this._joints}},jointMatrices:{get:function(){return this._jointMatrices}}});function r4e(e){let t=e.skin,n=t.inverseBindMatrices;e._inverseBindMatrices=n;let i=t.joints,o=i.length,r=e.sceneGraph._runtimeNodes,s=e.joints,a=e._jointMatrices;for(let c=0;c czm_splitPosition) discard; + if (model_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif +} +`;var YU={name:"ModelSplitterPipelineStage",SPLIT_DIRECTION_UNIFORM_NAME:"model_splitDirection"};YU.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_SPLITTER",void 0,Te.FRAGMENT),i.addFragmentLines(kO);let o={};i.addUniform("float",YU.SPLIT_DIRECTION_UNIFORM_NAME,Te.FRAGMENT),o[YU.SPLIT_DIRECTION_UNIFORM_NAME]=function(){return t.splitDirection},e.uniformMap=_t(o,e.uniformMap)};var zO=YU;function c4e(e,t){this.model=e.model,this.shaderBuilder=e.shaderBuilder.clone(),this.uniformMap=Ye(e.uniformMap),this.alphaOptions=Ye(e.alphaOptions),this.renderStateOptions=Ye(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.runtimeNode=t,this.attributes=[],this.attributeIndex=1,this.featureIdVertexAttributeSetIndex=0,this.instanceCount=0}var HO=c4e;function l4e(e){e=y(e,y.EMPTY_OBJECT),this.lightingModel=y(e.lightingModel,Gm.UNLIT)}var GO=l4e;function u4e(e,t){this.model=e.model,this.runtimeNode=e.runtimeNode,this.attributes=e.attributes.slice(),this.attributeIndex=e.attributeIndex,this.featureIdVertexAttributeSetIndex=e.featureIdVertexAttributeSetIndex,this.uniformMap=Ye(e.uniformMap),this.alphaOptions=Ye(e.alphaOptions),this.renderStateOptions=Ye(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.shaderBuilder=e.shaderBuilder.clone(),this.instanceCount=e.instanceCount,this.runtimePrimitive=t;let n=t.primitive;this.count=l(n.indices)?n.indices.count:Zt.getAttributeBySemantic(n,"POSITION").count,this.hasPropertyTable=!1,this.indices=n.indices,this.wireframeIndexBuffer=void 0,this.primitiveType=n.primitiveType;let i=Zt.getPositionMinMax(n,this.runtimeNode.instancingTranslationMin,this.runtimeNode.instancingTranslationMax);this.positionMin=m.clone(i.min,new m),this.positionMax=m.clone(i.max,new m),this.boundingSphere=ae.fromCornerPoints(this.positionMin,this.positionMax,new ae),this.lightingOptions=new GO,this.pickId=void 0}var WO=u4e;function $l(e){e=y(e,y.EMPTY_OBJECT);let t=e.modelComponents;this._model=e.model,this._components=t,this._pipelineStages=[],this._updateStages=[],this._runtimeNodes=[],this._rootNodes=[],this._skinnedNodes=[],this._runtimeSkins=[],this.modelPipelineStages=[],this._boundingSphere=void 0,this._boundingSphere2D=void 0,this._computedModelMatrix=B.clone(B.IDENTITY),this._computedModelMatrix2D=B.clone(B.IDENTITY),this._axisCorrectionMatrix=Zt.getAxisCorrectionMatrix(t.upAxis,t.forwardAxis,new B),this._runtimeArticulations={},f4e(this)}Object.defineProperties($l.prototype,{components:{get:function(){return this._components}},computedModelMatrix:{get:function(){return this._computedModelMatrix}},axisCorrectionMatrix:{get:function(){return this._axisCorrectionMatrix}},boundingSphere:{get:function(){return this._boundingSphere}}});function f4e(e){let t=e._components,n=t.scene,o=e._model.modelMatrix;Eoe(e,o);let r=t.articulations,s=r.length,a=e._runtimeArticulations;for(let T=0;T0&&(d=Do(n,t,a),t+=a,c>0&&(p=new Uint8Array(e,t,c),t+=c));let g=new Ed(u,f),h=g.getGlobalProperty("POINTS_LENGTH");if(g.featuresLength=h,!l(h))throw new de("Feature table global property: POINTS_LENGTH must be defined");let A=g.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(A)&&(A=m.unpack(A));let x=w4e(g,d);if(x.rtcCenter=A,x.pointsLength=h,!x.hasPositions){let C=v4e(g);x.positions=C,x.hasPositions=x.hasPositions||l(C)}if(!x.hasPositions)throw new de("Either POSITION or POSITION_QUANTIZED must be defined.");if(!x.hasNormals){let C=I4e(g);x.normals=C,x.hasNormals=x.hasNormals||l(C)}if(!x.hasColors){let C=D4e(g);x.colors=C,x.hasColors=x.hasColors||l(C),x.hasConstantColor=l(x.constantColor),x.isTranslucent=l(C)&&C.isTranslucent}if(!x.hasBatchIds){let C=P4e(g);x.batchIds=C,x.hasBatchIds=x.hasBatchIds||l(C)}if(x.hasBatchIds){let C=g.getGlobalProperty("BATCH_LENGTH");if(!l(C))throw new de("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");x.batchLength=C}return l(p)&&(p=new Uint8Array(p),x.batchTableJson=d,x.batchTableBinary=p),x};function w4e(e,t){let n=e.json,i,o,r,s=l(n.extensions)?n.extensions["3DTILES_draco_point_compression"]:void 0,a=l(t)&&l(t.extensions)?t.extensions["3DTILES_draco_point_compression"]:void 0;l(a)&&(r=a.properties);let c,u,f,d,p;if(l(s)){o=s.properties;let h=s.byteOffset,A=s.byteLength;if(!l(o)||!l(h)||!l(A))throw new de("Draco properties, byteOffset, and byteLength must be defined");i=e.buffer.slice(h,h+A),c=l(o.POSITION),u=l(o.RGB)||l(o.RGBA),f=l(o.NORMAL),d=l(o.BATCH_ID),p=l(o.RGBA)}let g;return l(i)&&(g={buffer:i,featureTableProperties:o,batchTableProperties:r,properties:_t(o,r),dequantizeInShader:!0}),{draco:g,hasPositions:c,hasColors:u,isTranslucent:p,hasNormals:f,hasBatchIds:d}}function v4e(e){let t=e.json,n;if(l(t.POSITION))return n=e.getPropertyArray("POSITION",X.FLOAT,3),{name:bt.POSITION,semantic:bt.POSITION,typedArray:n,isQuantized:!1,componentDatatype:X.FLOAT,type:sn.VEC3};if(l(t.POSITION_QUANTIZED)){n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3);let i=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!l(i))throw new de("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let o=(1<<16)-1,r=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!l(r))throw new de("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");return{name:bt.POSITION,semantic:bt.POSITION,typedArray:n,isQuantized:!0,componentDatatype:X.FLOAT,type:sn.VEC3,quantizedRange:o,quantizedVolumeOffset:m.unpack(r),quantizedVolumeScale:m.unpack(i),quantizedComponentDatatype:X.UNSIGNED_SHORT,quantizedType:sn.VEC3}}}function D4e(e){let t=e.json,n;if(l(t.RGBA))return n=e.getPropertyArray("RGBA",X.UNSIGNED_BYTE,4),{name:bt.COLOR,semantic:bt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:sn.VEC4,normalized:!0,isRGB565:!1,isTranslucent:!0};if(l(t.RGB))return n=e.getPropertyArray("RGB",X.UNSIGNED_BYTE,3),{name:"COLOR",semantic:bt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:sn.VEC3,normalized:!0,isRGB565:!1,isTranslucent:!1};if(l(t.RGB565))return n=e.getPropertyArray("RGB565",X.UNSIGNED_SHORT,1),{name:"COLOR",semantic:bt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.FLOAT,type:sn.VEC3,normalized:!1,isRGB565:!0,isTranslucent:!1};if(l(t.CONSTANT_RGBA)){let i=e.getGlobalProperty("CONSTANT_RGBA",X.UNSIGNED_BYTE,4),o=i[3],r=z.fromBytes(i[0],i[1],i[2],o),s=o<255;return{name:bt.COLOR,semantic:bt.COLOR,setIndex:0,constantColor:r,componentDatatype:X.FLOAT,type:sn.VEC4,isQuantized:!1,isTranslucent:s}}}function I4e(e){let t=e.json,n;if(l(t.NORMAL))return n=e.getPropertyArray("NORMAL",X.FLOAT,3),{name:bt.NORMAL,semantic:bt.NORMAL,typedArray:n,octEncoded:!1,octEncodedZXY:!1,componentDatatype:X.FLOAT,type:sn.VEC3};if(l(t.NORMAL_OCT16P)){n=e.getPropertyArray("NORMAL_OCT16P",X.UNSIGNED_BYTE,2);let i=8;return{name:bt.NORMAL,semantic:bt.NORMAL,typedArray:n,octEncoded:!0,octEncodedZXY:!1,quantizedRange:(1<0&&Q4e(e,a,d,t),l(n.rtcCenter)&&(f.transform=B.multiplyByTranslation(f.transform,n.rtcCenter,f.transform));let p=n.positions;l(p)&&p.isQuantized&&(f.transform=B.multiplyByTranslation(f.transform,p.quantizedVolumeOffset,f.transform)),e._components=f,e._parsedContent=void 0,e._arrayBuffer=void 0}function Q4e(e,t,n,i){let o=t.attributes,r=n.length;for(let s=0;s{this._completeLoad=()=>(c(this),!1),this._rejectLoad=f=>(u(f),!1)}),this._loader instanceof rE?this._texturesLoadedPromise=Promise.resolve(this):this._texturesLoadedPromise=new Promise((c,u)=>{this._completeTexturesLoad=()=>(c(this),!1),this._rejectTexturesLoad=f=>(u(f),!1)}),this._loader.load().catch(c=>{this.isDestroyed()||!l(this._loader)||this._loader.isDestroyed()||(this._rejectLoad=this._rejectLoad(Zt.getError("model",this._resource,c)))})),this._errorEvent=new ge,this._readyEvent=new ge,this._texturesReadyEvent=new ge,this._sceneGraph=void 0,this._nodesByName={},this.pickObject=e.pickObject}function KU(e,t){if(e._errorEvent.numberOfListeners>0){e._errorEvent.raiseEvent(t);return}console.log(t)}function $4e(e,t){let n=e._featureTables,i=t.propertyTables,o=i.length;for(let r=0;r0&&t===0||e===0&&t>0;this._silhouetteDirty=this._silhouetteDirty||n,this._backFaceCullingDirty=this._backFaceCullingDirty||n}this._silhouetteSize=e}},boundingSphere:{get:function(){let e=l(this._clampedModelMatrix)?this._clampedModelMatrix:this.modelMatrix;return Roe(this,e),this._boundingSphere}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolumeDirty=!0),this._debugShowBoundingVolume=e}},debugWireframe:{get:function(){return this._debugWireframe},set:function(e){this._debugWireframe!==e&&this.resetDrawCommands(),this._debugWireframe=e,this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===Bo.GLTF&&Mt("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltfAsync, otherwise debugWireframe will be ignored.")}},show:{get:function(){return this._show},set:function(e){this._show=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),e!==this._featureIdLabel&&(this._featureTableIdDirty=!0),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),e!==this._instanceFeatureIdLabel&&(this._featureTableIdDirty=!0),this._instanceFeatureIdLabel=e}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){e!==this._clippingPlanes&&(os.setOwner(e,this,"_clippingPlanes"),this.resetDrawCommands())}},lightColor:{get:function(){return this._lightColor},set:function(e){l(e)!==l(this._lightColor)&&this.resetDrawCommands(),this._lightColor=m.clone(e,this._lightColor)}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1,this.resetDrawCommands())}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){e!==this._backFaceCulling&&(this._backFaceCullingDirty=!0),this._backFaceCulling=e}},scale:{get:function(){return this._scale},set:function(e){e!==this._scale&&(this._updateModelMatrix=!0),this._scale=e}},computedScale:{get:function(){return this._computedScale}},minimumPixelSize:{get:function(){return this._minimumPixelSize},set:function(e){e!==this._minimumPixelSize&&(this._updateModelMatrix=!0),this._minimumPixelSize=e}},maximumScale:{get:function(){return this._maximumScale},set:function(e){e!==this._maximumScale&&(this._updateModelMatrix=!0),this._maximumScale=e}},shadows:{get:function(){return this._shadows},set:function(e){e!==this._shadows&&(this._shadowsDirty=!0),this._shadows=e}},credit:{get:function(){return this._credit}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen!==e&&(this._showCreditsOnScreenDirty=!0),this._showCreditsOnScreen=e}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&this.resetDrawCommands(),this._splitDirection=e}},classificationType:{get:function(){return this._classificationType}},pickIds:{get:function(){return this._pickIds}},styleCommandsNeeded:{get:function(){return this._styleCommandsNeeded}}});lo.prototype.getNode=function(e){return this._nodesByName[e]};lo.prototype.setArticulationStage=function(e,t){this._sceneGraph.setArticulationStage(e,t)};lo.prototype.applyArticulations=function(){this._sceneGraph.applyArticulations()};lo.prototype.makeStyleDirty=function(){this._styleDirty=!0};lo.prototype.resetDrawCommands=function(){this._drawCommandsBuilt=!1};var tze=new B,nze=new Z,ize=new B;lo.prototype.update=function(e){let t=!1;try{t=oze(this,e)}catch(n){if(this._loader.incrementallyLoadTextures)if(n.name==="TextureError")KU(this,n),this._rejectTexturesLoad=this._rejectTexturesLoad&&this._rejectTexturesLoad(n);else{let i=Zt.getError("model",this._resource,n);KU(this,i),this._rejectLoad=this._rejectLoad&&this._rejectLoad(i)}else{let i=Zt.getError("model",this._resource,n);KU(this,i),this._rejectLoad=this._rejectLoad&&this._rejectLoad(i),this._rejectTexturesLoad=this._rejectTexturesLoad&&this._rejectTexturesLoad(i)}}if(rze(this,e),sze(this,e),!this._resourcesLoaded&&t){this._resourcesLoaded=!0;let n=this._loader.components;if(!l(n)){if(this._loader.isUnloaded())return;let r=Zt.getError("model",this._resource,new de("Failed to load model."));KU(r),this._rejectLoad=this._rejectLoad&&this._rejectLoad(r)}let i=n.structuralMetadata;l(i)&&i.propertyTableCount>0&&$4e(this,i);let o=new jO({model:this,modelComponents:n});this._sceneGraph=o,this._gltfCredits=o.components.asset.credits}if(!(!this._resourcesLoaded||e.mode===ne.MORPHING)){if(aze(this),cze(this),lze(this,e),uze(this),fze(this,e),dze(this,e),mze(this,e),hze(this,e),this._defaultTexture=e.context.defaultTexture,pze(this,e),_ze(this,e),gze(this),yze(this,e),Cze(this,e),!this._ready){e.afterRender.push(()=>{this._ready=!0,this._readyEvent.raiseEvent(this),this._completeLoad=this._completeLoad&&this._completeLoad(),this._loader.incrementallyLoadTextures||(this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this),this._completeTexturesLoad=this._completeTexturesLoad&&this._completeTexturesLoad())});return}this._loader.incrementallyLoadTextures&&!this._texturesLoaded&&this._loader.texturesLoaded&&(this.resetDrawCommands(),this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this),this._completeTexturesLoad=this._completeTexturesLoad&&this._completeTexturesLoad()),xze(this),Tze(this,e),Eze(this),bze(this,e)}};function oze(e,t){return!e._resourcesLoaded||!e._texturesLoaded?(t.afterRender.push(()=>!0),e._loader.process(t)):!0}function rze(e,t){l(e._customShader)&&e._customShader.update(t)}function sze(e,t){e._imageBasedLighting.update(t),e._imageBasedLighting.shouldRegenerateShaders&&e.resetDrawCommands()}function aze(e){if(!e._featureTableIdDirty)return;e._featureTableIdDirty=!1;let t=e._sceneGraph.components,n=t.structuralMetadata;l(n)&&n.propertyTableCount>0&&(e.featureTableId=eze(t,e),e._styleDirty=!0,e.resetDrawCommands())}function cze(e){e._styleDirty&&(e.applyStyle(e._style),e._styleDirty=!1)}function lze(e,t){let n=e._featureTables,i=n.length,o=!1;for(let r=0;r=i&&r<=o}function Dze(e,t){let n=t.creditDisplay,i=e._credit;l(i)&&n.addCreditToNextFrame(i);let o=e._resourceCredits,r=o.length;for(let c=0;c0&&e.alpha<1};lo.prototype.isInvisible=function(){let e=this.color;return l(e)&&e.alpha===0};function Boe(e){return e.context.stencilBuffer}lo.prototype.hasSilhouette=function(e){return Boe(e)&&this._silhouetteSize>0&&this._silhouetteColor.alpha>0&&!l(this._classificationType)};lo.prototype.hasSkipLevelOfDetail=function(e){if(!Bo.is3DTiles(this.type))return!1;let t=e.context.stencilBuffer,n=this._content.tileset;return t&&n.isSkippingLevelOfDetail};lo.prototype.isClippingEnabled=function(){let e=this._clippingPlanes;return l(e)&&e.enabled&&e.length!==0};lo.prototype.isDestroyed=function(){return!1};lo.prototype.destroy=function(){let e=this._loader;l(e)&&e.destroy();let t=this._featureTables;if(l(t)){let i=t.length;for(let o=0;o0,i=l(this.structuralMetadata)?this.structuralMetadata.propertyAttributes:void 0,o=l(i)&&l(i[0]);if(t&&(!n||o)){this.resetDrawCommands();return}n?(this.featureTables[this.featureTableId].applyStyle(e),Moe(this,e)):(this.applyColorAndShow(e),this._styleCommandsNeeded=void 0)};function sE(e,t,n){return{loader:e,type:t,resource:n.resource,show:n.show,modelMatrix:n.modelMatrix,scale:n.scale,minimumPixelSize:n.minimumPixelSize,maximumScale:n.maximumScale,id:n.id,allowPicking:n.allowPicking,clampAnimations:n.clampAnimations,shadows:n.shadows,debugShowBoundingVolume:n.debugShowBoundingVolume,enableDebugWireframe:n.enableDebugWireframe,debugWireframe:n.debugWireframe,cull:n.cull,opaquePass:n.opaquePass,customShader:n.customShader,content:n.content,heightReference:n.heightReference,scene:n.scene,distanceDisplayCondition:n.distanceDisplayCondition,color:n.color,colorBlendAmount:n.colorBlendAmount,colorBlendMode:n.colorBlendMode,silhouetteColor:n.silhouetteColor,silhouetteSize:n.silhouetteSize,enableShowOutline:n.enableShowOutline,showOutline:n.showOutline,outlineColor:n.outlineColor,clippingPlanes:n.clippingPlanes,lightColor:n.lightColor,imageBasedLighting:n.imageBasedLighting,backFaceCulling:n.backFaceCulling,credit:n.credit,showCreditsOnScreen:n.showCreditsOnScreen,splitDirection:n.splitDirection,projectTo2D:n.projectTo2D,featureIdLabel:n.featureIdLabel,instanceFeatureIdLabel:n.instanceFeatureIdLabel,pointCloudShading:n.pointCloudShading,classificationType:n.classificationType,pickObject:n.pickObject}}var wd=lo;function Es(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this._model=void 0,this._metadata=void 0,this._group=void 0,this._ready=!1,this._resolveContent=void 0,this._readyPromise=void 0}Object.defineProperties(Es.prototype,{featuresLength:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;return l(t)&&l(t[n])?t[n].featuresLength:0}},pointsLength:{get:function(){return this._model.statistics.pointsLength}},trianglesLength:{get:function(){return this._model.statistics.trianglesLength}},geometryByteLength:{get:function(){return this._model.statistics.geometryByteLength}},texturesByteLength:{get:function(){return this._model.statistics.texturesByteLength}},batchTableByteLength:{get:function(){let e=this._model.statistics;return e.propertyTablesByteLength+e.batchTexturesByteLength}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Model3DTileContent.readyPromise","Model3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Model3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;if(l(t)&&l(t[n]))return t[n]}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Es.prototype.getFeature=function(e){let t=this._model,n=t.featureTableId;return t.featureTables[n].getFeature(e)};Es.prototype.hasProperty=function(e,t){let n=this._model,i=n.featureTableId;return l(i)?n.featureTables[i].hasProperty(e,t):!1};Es.prototype.applyDebugSettings=function(e,t){t=e?t:z.WHITE,this.featuresLength===0?this._model.color=t:l(this.batchTable)&&this.batchTable.setAllColor(t)};Es.prototype.applyStyle=function(e){this._model.style=e};Es.prototype.update=function(e,t){let n=this._model,i=this._tile;n.colorBlendAmount=e.colorBlendAmount,n.colorBlendMode=e.colorBlendMode,n.modelMatrix=i.computedTransform,n.customShader=e.customShader,n.featureIdLabel=e.featureIdLabel,n.instanceFeatureIdLabel=e.instanceFeatureIdLabel,n.lightColor=e.lightColor,n.imageBasedLighting=e.imageBasedLighting,n.backFaceCulling=e.backFaceCulling,n.shadows=e.shadows,n.showCreditsOnScreen=e.showCreditsOnScreen,n.splitDirection=e.splitDirection,n.debugWireframe=e.debugWireframe,n.showOutline=e.showOutline,n.outlineColor=e.outlineColor,n.pointCloudShading=e.pointCloudShading;let o=e.clippingPlanes;n.referenceMatrix=e.clippingPlanesOriginMatrix,l(o)&&i.clippingPlanesDirty&&(n._clippingPlanes=o.enabled&&i._isClipped?o:void 0),l(o)&&l(n._clippingPlanes)&&n._clippingPlanes!==o&&(n._clippingPlanes=o,n._clippingPlanesState=0),n.update(t),!this._ready&&n.ready&&(n.activeAnimations.addAll({loop:_l.REPEAT}),this._ready=!0,this._resolveContent=this._resolveContent&&this._resolveContent(this))};Es.prototype.isDestroyed=function(){return!1};Es.prototype.destroy=function(){return this._model=this._model&&this._model.destroy(),ue(this)};Es.fromGltf=async function(e,t,n,i){let o=new Es(e,t,n),s=XO(e,t,o,{gltf:i,basePath:n}),a=e.vectorClassificationOnly?void 0:e.classificationType;s.classificationType=a;let c=await wd.fromGltfAsync(s);return o._model=c,o._readyPromise=new Promise(u=>{o._resolveContent=u}),o};Es.fromB3dm=async function(e,t,n,i,o){let r=new Es(e,t,n),a=XO(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=e.vectorClassificationOnly?void 0:e.classificationType;a.classificationType=c;let u=await wd.fromB3dm(a);return r._model=u,r._readyPromise=new Promise(f=>{r._resolveContent=f}),r};Es.fromI3dm=async function(e,t,n,i,o){let r=new Es(e,t,n),a=XO(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await wd.fromI3dm(a);return r._model=c,r._readyPromise=new Promise(u=>{r._resolveContent=u}),r};Es.fromPnts=async function(e,t,n,i,o){let r=new Es(e,t,n),a=XO(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await wd.fromPnts(a);return r._model=c,r._readyPromise=new Promise(u=>{r._resolveContent=u}),r};Es.fromGeoJson=async function(e,t,n,i){let o=new Es(e,t,n),s=XO(e,t,o,{geoJson:i,resource:n}),a=await wd.fromGeoJson(s);return o._model=a,o._readyPromise=new Promise(c=>{o._resolveContent=c}),o};function XO(e,t,n,i){let o={cull:!1,releaseGltfJson:!0,opaquePass:be.CESIUM_3D_TILE,modelMatrix:t.computedTransform,upAxis:e._modelUpAxis,forwardAxis:e._modelForwardAxis,incrementallyLoadTextures:!1,customShader:e.customShader,content:n,colorBlendMode:e.colorBlendMode,colorBlendAmount:e.colorBlendAmount,lightColor:e.lightColor,imageBasedLighting:e.imageBasedLighting,featureIdLabel:e.featureIdLabel,instanceFeatureIdLabel:e.instanceFeatureIdLabel,pointCloudShading:e.pointCloudShading,clippingPlanes:e.clippingPlanes,backFaceCulling:e.backFaceCulling,shadows:e.shadows,showCreditsOnScreen:e.showCreditsOnScreen,splitDirection:e.splitDirection,enableDebugWireframe:e._enableDebugWireframe,debugWireframe:e.debugWireframe,projectTo2D:e._projectTo2D,enableShowOutline:e._enableShowOutline,showOutline:e.showOutline,outlineColor:e.outlineColor};return _t(i,o)}var jm=Es;function vd(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this.featurePropertiesDirty=!1,this._metadata=void 0,this._group=void 0,this._ready=!1,this._readyPromise=Promise.resolve(this)}Object.defineProperties(vd.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Tileset3DTileContent.readyPromise","Tileset3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Tileset3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});vd.fromJson=function(e,t,n,i){let o=new vd(e,t,n);return o._tileset.loadTileset(o._resource,i,o._tile),o._ready=!0,o};vd.prototype.hasProperty=function(e,t){return!1};vd.prototype.getFeature=function(e){};vd.prototype.applyDebugSettings=function(e,t){};vd.prototype.applyStyle=function(e){};vd.prototype.update=function(e,t){};vd.prototype.isDestroyed=function(){return!1};vd.prototype.destroy=function(){return ue(this)};var KO=vd;var JO=`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif + +uniform sampler2D u_atlas; + +#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_textureCoordinates; +in vec4 v_pickColor; +in vec4 v_color; + +#ifdef SDF +in vec4 v_outlineColor; +in float v_outlineWidth; +#endif + +#ifdef FRAGMENT_DEPTH_CHECK +in vec4 v_textureCoordinateBounds; // the min and max x and y values for the texture coordinates +in vec4 v_originTextureCoordinateAndTranslate; // texture coordinate at the origin, billboard translate (used for label glyphs) +in vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +in mat2 v_rotationMatrix; + +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +float getGlobeDepth(vec2 adjustedST, vec2 depthLookupST, bool applyTranslate, vec2 dimensions, vec2 imageSize) +{ + vec2 lookupVector = imageSize * (depthLookupST - adjustedST); + lookupVector = v_rotationMatrix * lookupVector; + vec2 labelOffset = (dimensions - imageSize) * (depthLookupST - vec2(0.0, v_originTextureCoordinateAndTranslate.y)); // aligns label glyph with bounding rectangle. Will be zero for billboards because dimensions and imageSize will be equal + + vec2 translation = v_originTextureCoordinateAndTranslate.zw; + + if (applyTranslate) + { + // this is only needed for labels where the horizontal origin is not LEFT + // it moves the label back to where the "origin" should be since all label glyphs are set to HorizontalOrigin.LEFT + translation += (dimensions * v_originTextureCoordinateAndTranslate.xy * vec2(1.0, 0.0)); + } + + vec2 st = ((lookupVector - translation + labelOffset) + gl_FragCoord.xy) / czm_viewport.zw; + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + + if (logDepthOrDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif + + +#ifdef SDF + +// Get the distance from the edge of a glyph at a given position sampling an SDF texture. +float getDistance(vec2 position) +{ + return texture(u_atlas, position).r; +} + +// Samples the sdf texture at the given position and produces a color based on the fill color and the outline. +vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smoothing) +{ + float distance = getDistance(position); + + if (outlineWidth > 0.0) + { + // Don't get the outline edge exceed the SDF_EDGE + float outlineEdge = clamp(SDF_EDGE - outlineWidth, 0.0, SDF_EDGE); + float outlineFactor = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + vec4 sdfColor = mix(outlineColor, v_color, outlineFactor); + float alpha = smoothstep(outlineEdge - smoothing, outlineEdge + smoothing, distance); + return vec4(sdfColor.rgb, sdfColor.a * alpha); + } + else + { + float alpha = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + return vec4(v_color.rgb, v_color.a * alpha); + } +} +#endif + +void main() +{ + vec4 color = texture(u_atlas, v_textureCoordinates); + +#ifdef SDF + float outlineWidth = v_outlineWidth; + vec4 outlineColor = v_outlineColor; + + // Get the current distance + float distance = getDistance(v_textureCoordinates); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float smoothing = fwidth(distance); + // Get an offset that is approximately half the distance to the neighbor pixels + // 0.354 is approximately half of 1/sqrt(2) + vec2 sampleOffset = 0.354 * vec2(dFdx(v_textureCoordinates) + dFdy(v_textureCoordinates)); + + // Sample the center point + vec4 center = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); + + // Sample the 4 neighbors + vec4 color1 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color2 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color3 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color4 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + + // Equally weight the center sample and the 4 neighboring samples + color = (center + color1 + color2 + color3 + color4)/5.0; +#else + // If no derivatives available (IE 10?), just do a single sample + float smoothing = 1.0/32.0; + color = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); +#endif + + color = czm_gammaCorrect(color); +#else + color = czm_gammaCorrect(color); + color *= czm_gammaCorrect(v_color); +#endif + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + +#ifdef VECTOR_TILE + color *= u_highlightColor; +#endif + out_FragColor = color; + +#ifdef LOG_DEPTH + czm_writeLogDepth(); +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + float temp = v_compressed.y; + + temp = temp * SHIFT_RIGHT1; + + float temp2 = (temp - floor(temp)) * SHIFT_LEFT1; + bool enableDepthTest = temp2 != 0.0; + bool applyTranslate = floor(temp) != 0.0; + + if (enableDepthTest) { + temp = v_compressed.z; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); + + temp = v_compressed.w; + temp = temp * SHIFT_RIGHT12; + + vec2 imageSize; + imageSize.y = (temp - floor(temp)) * SHIFT_LEFT12; + imageSize.x = floor(temp); + + vec2 adjustedST = v_textureCoordinates - v_textureCoordinateBounds.xy; + adjustedST = adjustedST / vec2(v_textureCoordinateBounds.z - v_textureCoordinateBounds.x, v_textureCoordinateBounds.w - v_textureCoordinateBounds.y); + + float epsilonEyeDepth = v_compressed.x + czm_epsilon1; + float globeDepth1 = getGlobeDepth(adjustedST, v_originTextureCoordinateAndTranslate.xy, applyTranslate, dimensions, imageSize); + + // negative values go into the screen + if (globeDepth1 != 0.0 && globeDepth1 > epsilonEyeDepth) + { + float globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize); // top left corner + if (globeDepth2 != 0.0 && globeDepth2 > epsilonEyeDepth) + { + float globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize); // top right corner + if (globeDepth3 != 0.0 && globeDepth3 > epsilonEyeDepth) + { + discard; + } + } + } + } +#endif + +} +`;var ZO=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScale; +in vec4 positionLowAndRotation; +in vec4 compressedAttribute0; // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset) +in vec4 compressedAttribute1; // aligned axis, translucency by distance, image width +in vec4 compressedAttribute2; // label horizontal origin, image height, color, pick color, size in meters, valid aligned axis, 13 bits free +in vec4 eyeOffset; // eye offset in meters, 4 bytes free (texture range) +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec4 pixelOffsetScaleByDistance; // near, nearScale, far, farScale +in vec4 compressedAttribute3; // distance display condition near, far, disableDepthTestDistance, dimensions +in vec2 sdf; // sdf outline color (rgb) and width (w) +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) +in vec4 textureCoordinateBoundsOrLabelTranslate; // the min and max x and y values for the texture coordinates +#endif +#ifdef VECTOR_TILE +in float a_batchId; +#endif + +out vec2 v_textureCoordinates; +#ifdef FRAGMENT_DEPTH_CHECK +out vec4 v_textureCoordinateBounds; +out vec4 v_originTextureCoordinateAndTranslate; +out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +out mat2 v_rotationMatrix; +#endif + +out vec4 v_pickColor; +out vec4 v_color; +#ifdef SDF +out vec4 v_outlineColor; +out float v_outlineWidth; +#endif + +const float UPPER_BOUND = 32768.0; + +const float SHIFT_LEFT16 = 65536.0; +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_LEFT7 = 128.0; +const float SHIFT_LEFT5 = 32.0; +const float SHIFT_LEFT3 = 8.0; +const float SHIFT_LEFT2 = 4.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; +const float SHIFT_RIGHT7 = 1.0 / 128.0; +const float SHIFT_RIGHT5 = 1.0 / 32.0; +const float SHIFT_RIGHT3 = 1.0 / 8.0; +const float SHIFT_RIGHT2 = 1.0 / 4.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +vec4 addScreenSpaceOffset(vec4 positionEC, vec2 imageSize, float scale, vec2 direction, vec2 origin, vec2 translate, vec2 pixelOffset, vec3 alignedAxis, bool validAlignedAxis, float rotation, bool sizeInMeters, out mat2 rotationMatrix, out float mpp) +{ + // Note the halfSize cannot be computed in JavaScript because it is sent via + // compressed vertex attributes that coerce it to an integer. + vec2 halfSize = imageSize * scale * 0.5; + halfSize *= ((direction * 2.0) - 1.0); + + vec2 originTranslate = origin * abs(halfSize); + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + if (validAlignedAxis || rotation != 0.0) + { + float angle = rotation; + if (validAlignedAxis) + { + vec4 projectedAlignedAxis = czm_modelView3D * vec4(alignedAxis, 0.0); + angle += sign(-projectedAlignedAxis.x) * acos(sign(projectedAlignedAxis.y) * (projectedAlignedAxis.y * projectedAlignedAxis.y) / + (projectedAlignedAxis.x * projectedAlignedAxis.x + projectedAlignedAxis.y * projectedAlignedAxis.y)); + } + + float cosTheta = cos(angle); + float sinTheta = sin(angle); + rotationMatrix = mat2(cosTheta, sinTheta, -sinTheta, cosTheta); + halfSize = rotationMatrix * halfSize; + } + else + { + rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); + } +#endif + + mpp = czm_metersPerPixel(positionEC); + positionEC.xy += (originTranslate + halfSize) * czm_branchFreeTernary(sizeInMeters, 1.0, mpp); + positionEC.xy += (translate + pixelOffset) * mpp; + + return positionEC; +} + +#ifdef VERTEX_DEPTH_CHECK +float getGlobeDepth(vec4 positionEC) +{ + vec4 posWC = czm_eyeToWindowCoordinates(positionEC); + + float globeDepth = czm_unpackDepth(texture(czm_globeDepthTexture, posWC.xy / czm_viewport.zw)); + + if (globeDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif +void main() +{ + // Modifying this shader may also require modifications to Billboard._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndScale.xyz; + vec3 positionLow = positionLowAndRotation.xyz; + float scale = positionHighAndScale.w; + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + float rotation = positionLowAndRotation.w; +#else + float rotation = 0.0; +#endif + + float compressed = compressedAttribute0.x; + + vec2 pixelOffset; + pixelOffset.x = floor(compressed * SHIFT_RIGHT7); + compressed -= pixelOffset.x * SHIFT_LEFT7; + pixelOffset.x -= UPPER_BOUND; + + vec2 origin; + origin.x = floor(compressed * SHIFT_RIGHT5); + compressed -= origin.x * SHIFT_LEFT5; + + origin.y = floor(compressed * SHIFT_RIGHT3); + compressed -= origin.y * SHIFT_LEFT3; + +#ifdef FRAGMENT_DEPTH_CHECK + vec2 depthOrigin = origin.xy; +#endif + origin -= vec2(1.0); + + float show = floor(compressed * SHIFT_RIGHT2); + compressed -= show * SHIFT_LEFT2; + +#ifdef INSTANCED + vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w); + vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w); + vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange; +#else + vec2 direction; + direction.x = floor(compressed * SHIFT_RIGHT1); + direction.y = compressed - direction.x * SHIFT_LEFT1; + + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w); +#endif + + float temp = compressedAttribute0.y * SHIFT_RIGHT8; + pixelOffset.y = -(floor(temp) - UPPER_BOUND); + + vec2 translate; + translate.y = (temp - floor(temp)) * SHIFT_LEFT16; + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + translate.x = floor(temp) - UPPER_BOUND; + + translate.y += (temp - floor(temp)) * SHIFT_LEFT8; + translate.y -= UPPER_BOUND; + + temp = compressedAttribute1.x * SHIFT_RIGHT8; + float temp2 = floor(compressedAttribute2.w * SHIFT_RIGHT2); + + vec2 imageSize = vec2(floor(temp), temp2); + +#ifdef FRAGMENT_DEPTH_CHECK + float labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2)); + float applyTranslate = 0.0; + if (labelHorizontalOrigin != 0.0) // is a billboard, so set apply translate to false + { + applyTranslate = 1.0; + labelHorizontalOrigin -= 2.0; + depthOrigin.x = labelHorizontalOrigin + 1.0; + } + + depthOrigin = vec2(1.0) - (depthOrigin * 0.5); +#endif + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) + temp = compressedAttribute3.w; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); +#endif + +#ifdef ALIGNED_AXIS + vec3 alignedAxis = czm_octDecode(floor(compressedAttribute1.y * SHIFT_RIGHT8)); + temp = compressedAttribute2.z * SHIFT_RIGHT5; + bool validAlignedAxis = (temp - floor(temp)) * SHIFT_LEFT1 > 0.0; +#else + vec3 alignedAxis = vec3(0.0); + bool validAlignedAxis = false; +#endif + + vec4 pickColor; + vec4 color; + + temp = compressedAttribute2.y; + temp = temp * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + temp = compressedAttribute2.x; + temp = temp * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + temp = compressedAttribute2.z * SHIFT_RIGHT8; + bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0; + temp = floor(temp) * SHIFT_RIGHT8; + + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor /= 255.0; + + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + +#if defined(FRAGMENT_DEPTH_CHECK) || defined(VERTEX_DEPTH_CHECK) + float eyeDepth = positionEC.z; +#endif + + positionEC = czm_eyeOffset(positionEC, eyeOffset.xyz); + positionEC.xyz *= show; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(EYE_DISTANCE_PIXEL_OFFSET) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + float distanceScale = czm_nearFarScalar(scaleByDistance, lengthSq); + scale *= distanceScale; + translate *= distanceScale; + // push vertex behind near plane for clipping + if (scale == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef EYE_DISTANCE_PIXEL_OFFSET + float pixelOffsetScale = czm_nearFarScalar(pixelOffsetScaleByDistance, lengthSq); + pixelOffset *= pixelOffsetScale; +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = compressedAttribute3.x; + float farSq = compressedAttribute3.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + positionEC.xyz = vec3(0.0); + } +#endif + + mat2 rotationMatrix; + float mpp; + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = compressedAttribute3.z; +#endif + +#ifdef VERTEX_DEPTH_CHECK +if (lengthSq < disableDepthTestDistance) { + float depthsilon = 10.0; + + vec2 labelTranslate = textureCoordinateBoundsOrLabelTranslate.xy; + vec4 pEC1 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth1 = getGlobeDepth(pEC1); + + if (globeDepth1 != 0.0 && pEC1.z + depthsilon < globeDepth1) + { + vec4 pEC2 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0, 1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth2 = getGlobeDepth(pEC2); + + if (globeDepth2 != 0.0 && pEC2.z + depthsilon < globeDepth2) + { + vec4 pEC3 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth3 = getGlobeDepth(pEC3); + if (globeDepth3 != 0.0 && pEC3.z + depthsilon < globeDepth3) + { + positionEC.xyz = vec3(0.0); + } + } + } +} +#endif + + positionEC = addScreenSpaceOffset(positionEC, imageSize, scale, direction, origin, translate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + gl_Position = czm_projection * positionEC; + v_textureCoordinates = textureCoordinates; + +#ifdef LOG_DEPTH + czm_vertexLogDepth(); +#endif + +#ifdef DISABLE_DEPTH_DISTANCE + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = 1.0; +#endif + } + } +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + if (sizeInMeters) { + translate /= mpp; + dimensions /= mpp; + imageSize /= mpp; + } + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + v_rotationMatrix = rotationMatrix; +#else + v_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); +#endif + + float enableDepthCheck = 0.0; + if (lengthSq < disableDepthTestDistance) + { + enableDepthCheck = 1.0; + } + + float dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12)); + float dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12)); + + float iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12)); + float ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12)); + + v_compressed.x = eyeDepth; + v_compressed.y = applyTranslate * SHIFT_LEFT1 + enableDepthCheck; + v_compressed.z = dw * SHIFT_LEFT12 + dh; + v_compressed.w = iw * SHIFT_LEFT12 + ih; + v_originTextureCoordinateAndTranslate.xy = depthOrigin; + v_originTextureCoordinateAndTranslate.zw = translate; + v_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate; + +#endif + +#ifdef SDF + vec4 outlineColor; + float outlineWidth; + + temp = sdf.x; + temp = temp * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + temp = sdf.y; + temp = temp * SHIFT_RIGHT8; + float temp3 = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.a = floor(temp); + outlineColor /= 255.0; + + v_outlineWidth = outlineWidth / 255.0; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency; +#endif + + v_pickColor = pickColor; + + v_color = color; + v_color.a *= translucency; + +} +`;function Ei(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Lt.clone(n)),l(i)&&(i=Lt.clone(i)),l(o)&&(o=Lt.clone(o)),l(r)&&(r=Dt.clone(r)),this._show=y(e.show,!0),this._position=m.clone(y(e.position,m.ZERO)),this._actualPosition=m.clone(this._position),this._pixelOffset=H.clone(y(e.pixelOffset,H.ZERO)),this._translate=new H(0,0),this._eyeOffset=m.clone(y(e.eyeOffset,m.ZERO)),this._heightReference=y(e.heightReference,qe.NONE),this._verticalOrigin=y(e.verticalOrigin,On.CENTER),this._horizontalOrigin=y(e.horizontalOrigin,pi.CENTER),this._scale=y(e.scale,1),this._color=z.clone(y(e.color,z.WHITE)),this._rotation=y(e.rotation,0),this._alignedAxis=m.clone(y(e.alignedAxis,m.ZERO)),this._width=e.width,this._height=e.height,this._scaleByDistance=o,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._sizeInMeters=y(e.sizeInMeters,!1),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._id=e.id,this._collection=y(e.collection,t),this._pickId=void 0,this._pickPrimitive=y(e._pickPrimitive,this),this._billboardCollection=t,this._dirty=!1,this._index=-1,this._batchIndex=void 0,this._imageIndex=-1,this._imageIndexPromise=void 0,this._imageId=void 0,this._image=void 0,this._imageSubRegion=void 0,this._imageWidth=void 0,this._imageHeight=void 0,this._labelDimensions=void 0,this._labelHorizontalOrigin=void 0,this._labelTranslate=void 0;let s=e.image,a=e.imageId;l(s)&&(l(a)||(typeof s=="string"?a=s:l(s.src)?a=s.src:a=Gn()),this._imageId=a,this._image=s),l(e.imageSubRegion)&&(this._imageId=a,this._imageSubRegion=e.imageSubRegion),l(this._billboardCollection._textureAtlas)&&this._loadImage(),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=ne.SCENE3D,this._clusterShow=!0,this._outlineColor=z.clone(y(e.outlineColor,z.BLACK)),this._outlineWidth=y(e.outlineWidth,0),this._updateClamping()}var Loe=Ei.SHOW_INDEX=0,QU=Ei.POSITION_INDEX=1,koe=Ei.PIXEL_OFFSET_INDEX=2,Ize=Ei.EYE_OFFSET_INDEX=3,Pze=Ei.HORIZONTAL_ORIGIN_INDEX=4,Oze=Ei.VERTICAL_ORIGIN_INDEX=5,Mze=Ei.SCALE_INDEX=6,$U=Ei.IMAGE_INDEX_INDEX=7,Noe=Ei.COLOR_INDEX=8,Rze=Ei.ROTATION_INDEX=9,Bze=Ei.ALIGNED_AXIS_INDEX=10,Lze=Ei.SCALE_BY_DISTANCE_INDEX=11,Nze=Ei.TRANSLUCENCY_BY_DISTANCE_INDEX=12,Fze=Ei.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,Uze=Ei.DISTANCE_DISPLAY_CONDITION=14,Vze=Ei.DISABLE_DEPTH_DISTANCE=15;Ei.TEXTURE_COORDINATE_BOUNDS=16;var Foe=Ei.SDF_INDEX=17;Ei.NUMBER_OF_PROPERTIES=18;function No(e,t){let n=e._billboardCollection;l(n)&&(n._updateBillboard(e,t),e._dirty=!0)}Object.defineProperties(Ei.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,No(this,Loe))}},position:{get:function(){return this._position},set:function(e){let t=this._position;m.equals(t,e)||(m.clone(e,t),m.clone(e,this._actualPosition),this._updateClamping(),No(this,QU))}},heightReference:{get:function(){return this._heightReference},set:function(e){let t=this._heightReference;e!==t&&(this._heightReference=e,this._updateClamping(),No(this,QU))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;H.equals(t,e)||(H.clone(e,t),No(this,koe))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Lt.equals(t,e)||(this._scaleByDistance=Lt.clone(e,t),No(this,Lze))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Lt.equals(t,e)||(this._translucencyByDistance=Lt.clone(e,t),No(this,Nze))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;Lt.equals(t,e)||(this._pixelOffsetScaleByDistance=Lt.clone(e,t),No(this,Fze))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;m.equals(t,e)||(m.clone(e,t),No(this,Ize))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,No(this,Pze))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,No(this,Oze))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,No(this,Mze))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),No(this,Noe))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,No(this,Rze))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){let t=this._alignedAxis;m.equals(t,e)||(m.clone(e,t),No(this,Bze))}},width:{get:function(){return y(this._width,this._imageWidth)},set:function(e){this._width!==e&&(this._width=e,No(this,$U))}},height:{get:function(){return y(this._height,this._imageHeight)},set:function(e){this._height!==e&&(this._height=e,No(this,$U))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,No(this,Noe))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Dt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Dt.clone(e,this._distanceDisplayCondition),No(this,Uze))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,No(this,Vze))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,l(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageId},set:function(e){l(e)?typeof e=="string"?this.setImage(e,e):e instanceof we?this.setImage(e.url,e):l(e.src)?this.setImage(e.src,e):this.setImage(Gn(),e):(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=void 0,this._image=void 0,this._imageIndexPromise=void 0,No(this,$U))}},ready:{get:function(){return this._imageIndex!==-1}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=m.clone(e,this._actualClampedPosition),No(this,QU)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,No(this,Loe))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),No(this,Foe))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,No(this,Foe))}}});Ei.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId};Ei.prototype._updateClamping=function(){Ei._updateClamping(this._billboardCollection,this)};var QO=new he,Uoe=new m;Ei._updateClamping=function(e,t){let n=e._scene;if(!l(n)||!l(n.globe))return;let i=n.globe,o=i.ellipsoid,r=i._surface,s=n.frameState.mode,a=s!==t._mode;if(t._mode=s,(t._heightReference===qe.NONE||a)&&l(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference===qe.NONE||!l(t._position))return;let c=o.cartesianToCartographic(t._position);if(!l(c)){t._actualClampedPosition=void 0;return}l(t._removeCallbackFunc)&&t._removeCallbackFunc();function u(d){if(t._heightReference===qe.RELATIVE_TO_GROUND)if(t._mode===ne.SCENE3D){let p=o.cartesianToCartographic(d,QO);p.height+=c.height,o.cartographicToCartesian(p,d)}else d.x+=c.height;t._clampedPosition=m.clone(d,t._clampedPosition)}t._removeCallbackFunc=r.updateHeight(c,u),he.clone(c,QO);let f=i.getHeight(c);l(f)&&(QO.height=f),o.cartographicToCartesian(QO,Uoe),u(Uoe)};Ei.prototype._loadImage=function(){let e=this._billboardCollection._textureAtlas,t=this._imageId,n=this._image,i=this._imageSubRegion,o,r=this;function s(a){if(r._imageId!==t||r._image!==n||!Ke.equals(r._imageSubRegion,i))return;let c=e.textureCoordinates[a];r._imageWidth=e.texture.width*c.width,r._imageHeight=e.texture.height*c.height,r._imageIndex=a,r._ready=!0,r._image=void 0,r._imageIndexPromise=void 0,No(r,$U)}if(l(n)){let a=e.getImageIndex(t);if(l(a)){s(a);return}o=e.addImage(t,n)}l(i)&&(o=e.addSubRegion(t,i)),this._imageIndexPromise=o,l(o)&&o.then(s).catch(function(a){console.error(`Error loading image for billboard: ${a}`),r._imageIndexPromise=void 0})};Ei.prototype.setImage=function(e,t){this._imageId!==e&&(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=e,this._image=t,l(this._billboardCollection._textureAtlas)&&this._loadImage())};Ei.prototype.setImageSubRegion=function(e,t){this._imageId===e&&Ke.equals(this._imageSubRegion,t)||(this._imageIndex=-1,this._imageId=e,this._imageSubRegion=Ke.clone(t),l(this._billboardCollection._textureAtlas)&&this._loadImage())};Ei.prototype._setTranslate=function(e){let t=this._translate;H.equals(t,e)||(H.clone(e,t),No(this,koe))};Ei.prototype._getActualPosition=function(){return l(this._clampedPosition)?this._clampedPosition:this._actualPosition};Ei.prototype._setActualPosition=function(e){l(this._clampedPosition)||m.clone(e,this._actualPosition),No(this,QU)};var Voe=new re;Ei._computeActualPosition=function(e,t,n,i){return l(e._clampedPosition)?(n.mode!==e._mode&&e._updateClamping(),e._clampedPosition):n.mode===ne.SCENE3D?t:(B.multiplyByPoint(i,t,Voe),Xi.computeActualWgs84Position(n,Voe))};var zoe=new m;Ei._computeScreenSpacePosition=function(e,t,n,i,o,r){let s=B.multiplyByPoint(e,t,zoe),a=Xi.wgs84WithEyeOffsetToWindowCoordinates(o,s,n,r);if(l(a))return H.add(a,i,a),a};var ZU=new H(0,0);Ei.prototype.computeScreenSpacePosition=function(e,t){let n=this._billboardCollection;l(t)||(t=new H),H.clone(this._pixelOffset,ZU),H.add(ZU,this._translate,ZU);let i=n.modelMatrix,o=this._position;if(l(this._clampedPosition)&&(o=this._clampedPosition,e.mode!==ne.SCENE3D)){let s=e.mapProjection,a=s.ellipsoid,c=s.unproject(o,QO);o=a.cartographicToCartesian(c,zoe),i=B.IDENTITY}return Ei._computeScreenSpacePosition(i,o,this._eyeOffset,ZU,e,t)};Ei.getScreenSpaceBoundingBox=function(e,t,n){let i=e.width,o=e.height,r=e.scale;i*=r,o*=r;let s=t.x;e.horizontalOrigin===pi.RIGHT?s-=i:e.horizontalOrigin===pi.CENTER&&(s-=i*.5);let a=t.y;return e.verticalOrigin===On.BOTTOM||e.verticalOrigin===On.BASELINE?a-=o:e.verticalOrigin===On.CENTER&&(a-=o*.5),l(n)||(n=new Ke),n.x=s,n.y=a,n.width=i,n.height=o,n};Ei.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&m.equals(this._position,e._position)&&this._imageId===e._imageId&&this._show===e._show&&this._scale===e._scale&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&Ke.equals(this._imageSubRegion,e._imageSubRegion)&&z.equals(this._color,e._color)&&H.equals(this._pixelOffset,e._pixelOffset)&&H.equals(this._translate,e._translate)&&m.equals(this._eyeOffset,e._eyeOffset)&&Lt.equals(this._scaleByDistance,e._scaleByDistance)&&Lt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Lt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Dt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};Ei.prototype._destroy=function(){l(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0};var uo=Ei;var kze={OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2},To=Object.freeze(kze);var zze={FONT_SIZE:48,PADDING:10,RADIUS:8,CUTOFF:.25},bs=Object.freeze(zze);function Up(e,t,n,i,o){this.bottomLeft=y(e,H.ZERO),this.topRight=y(t,H.ZERO),this.childNode1=n,this.childNode2=i,this.imageIndex=o}var Hze=new H(16,16);function Gg(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.borderWidthInPixels,1),n=y(e.initialSize,Hze);this._context=e.context,this._pixelFormat=y(e.pixelFormat,ct.RGBA),this._borderWidthInPixels=t,this._textureCoordinates=[],this._guid=Gn(),this._idHash={},this._indexHash={},this._initialSize=n,this._root=void 0}Object.defineProperties(Gg.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},textureCoordinates:{get:function(){return this._textureCoordinates}},texture:{get:function(){return l(this._texture)||(this._texture=new Bt({context:this._context,width:this._initialSize.x,height:this._initialSize.y,pixelFormat:this._pixelFormat})),this._texture}},numberOfImages:{get:function(){return this._textureCoordinates.length}},guid:{get:function(){return this._guid}}});function Gze(e,t){let n=e._context,i=e.numberOfImages,o=2,r=e._borderWidthInPixels;if(i>0){let s=e._texture.width,a=e._texture.height,c=o*(s+t.width+r),u=o*(a+t.height+r),f=s/c,d=a/u,p=new Up(new H(s+r,r),new H(c,a)),g=new Up(new H,new H(c,a),e._root,p),h=new Up(new H(r,a+r),new H(c,u)),A=new Up(new H,new H(c,u),g,h);for(let T=0;Ts){t.childNode1=new Up(new H(t.bottomLeft.x,t.bottomLeft.y),new H(t.bottomLeft.x+n.width,t.topRight.y));let a=t.bottomLeft.x+n.width+e._borderWidthInPixels;a0)&&(e._shaderDisableDepthDistance=!0,f===Number.POSITIVE_INFINITY&&(f=-1));let p,g;if(l(o._labelDimensions))g=o._labelDimensions.x,p=o._labelDimensions.y;else{let C=0,T=0,E=o._imageIndex;if(E!==-1){let v=n[E];C=v.height,T=v.width}p=Math.round(y(o.height,e._textureAtlas.texture.dimensions.y*C));let S=e._textureAtlas.texture.width;g=Math.round(y(o.width,S*T))}let h=Math.floor(P.clamp(g,0,u6)),A=Math.floor(P.clamp(p,0,u6)),x=h*u6+A;e._instanced?(r=o._index,s(r,a,c,f,x)):(r=o._index*4,s(r+0,a,c,f,x),s(r+1,a,c,f,x),s(r+2,a,c,f,x),s(r+3,a,c,f,x))}function ure(e,t,n,i,o){if(o.heightReference===qe.CLAMP_TO_GROUND){let h=e._scene,A=t.context,x=t.globeTranslucencyState.translucent,C=l(h.globe)&&h.globe.depthTestAgainstTerrain;e._shaderClampToGround=A.depthTexture&&!x&&C}let r,s=i[xo.textureCoordinateBoundsOrLabelTranslate];if(kt.maximumVertexTextureImageUnits>0){let h=0,A=0;l(o._labelTranslate)&&(h=o._labelTranslate.x,A=o._labelTranslate.y),e._instanced?(r=o._index,s(r,h,A,0,0)):(r=o._index*4,s(r+0,h,A,0,0),s(r+1,h,A,0,0),s(r+2,h,A,0,0),s(r+3,h,A,0,0));return}let a=0,c=0,u=0,f=0,d=o._imageIndex;if(d!==-1){let h=n[d];a=h.x,c=h.y,u=h.width,f=h.height}let p=a+u,g=c+f;e._instanced?(r=o._index,s(r,a,c,p,g)):(r=o._index*4,s(r+0,a,c,p,g),s(r+1,a,c,p,g),s(r+2,a,c,p,g),s(r+3,a,c,p,g))}function cHe(e,t,n,i,o){if(!l(e._batchTable))return;let r=i[xo.a_batchId],s=o._batchIndex,a;e._instanced?(a=o._index,r(a,s)):(a=o._index*4,r(a+0,s),r(a+1,s),r(a+2,s),r(a+3,s))}function fre(e,t,n,i,o){if(!e._sdf)return;let r,s=i[xo.sdf],a=o.outlineColor,c=o.outlineWidth,u=z.floatToByte(a.red),f=z.floatToByte(a.green),d=z.floatToByte(a.blue),p=u*aE+f*Ym+d,g=c/bs.RADIUS,h=z.floatToByte(a.alpha)*aE+z.floatToByte(g)*Ym;e._instanced?(r=o._index,s(r,p,h)):(r=o._index*4,s(r+0,p+tre,h),s(r+1,p+nre,h),s(r+2,p+ire,h),s(r+3,p+ore,h))}function lHe(e,t,n,i,o){$oe(e,t,n,i,o),rre(e,t,n,i,o),sre(e,t,n,i,o),d6(e,t,n,i,o),m6(e,t,n,i,o),are(e,t,n,i,o),cre(e,t,n,i,o),lre(e,t,n,i,o),ure(e,t,n,i,o),cHe(e,t,n,i,o),fre(e,t,n,i,o)}function f6(e,t,n,i,o,r){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c0){this._vaf=iHe(i,n,this._buffersUsage,this._instanced,this._batchTable,this._sdf),d=this._vaf.writers;for(let M=0;M0){let M=mHe;M.length=0,(c[eM]||c[Xze]||c[qze])&&M.push($oe),(c[$O]||c[Woe]||c[jze]||c[Yze]||c[Wze])&&(M.push(rre),this._instanced&&M.push(m6)),(c[$O]||c[Kze]||c[Xoe])&&(M.push(sre),M.push(d6)),(c[$O]||c[Yoe])&&M.push(d6),c[joe]&&M.push(m6),c[qoe]&&M.push(are),c[Koe]&&M.push(cre),(c[Joe]||c[Jze]||c[$O]||c[eM])&&M.push(lre),(c[$O]||c[eM])&&M.push(ure),c[Zoe]&&M.push(fre);let L=M.length;if(d=this._vaf.writers,a/n>.1){for(let N=0;Nn*1.5&&(s.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ae.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let h,A=B.IDENTITY;e.mode===ne.SCENE3D?(A=this.modelMatrix,h=ae.clone(this._baseVolumeWC,this._boundingVolume)):h=ae.clone(this._baseVolume2D,this._boundingVolume),fHe(this,e,h);let x=this._blendOption!==this.blendOption;if(this._blendOption=this.blendOption,x){this._blendOption===To.OPAQUE||this._blendOption===To.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=ze.fromCache({depthTest:{enabled:!0,func:te.LESS},depthMask:!0}):this._rsOpaque=void 0;let M=this._blendOption===To.TRANSLUCENT;this._blendOption===To.TRANSLUCENT||this._blendOption===To.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=ze.fromCache({depthTest:{enabled:!0,func:M?te.LEQUAL:te.LESS},depthMask:M,blending:mn.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let C,T,E,S,v,D=kt.maximumVertexTextureImageUnits>0;if(x||this._shaderRotation!==this._compiledShaderRotation||this._shaderAlignedAxis!==this._compiledShaderAlignedAxis||this._shaderScaleByDistance!==this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance!==this._compiledShaderTranslucencyByDistance||this._shaderPixelOffsetScaleByDistance!==this._compiledShaderPixelOffsetScaleByDistance||this._shaderDistanceDisplayCondition!==this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance||this._shaderClampToGround!==this._compiledShaderClampToGround||this._sdf!==this._compiledSDF){C=ZO,T=JO,v=[],l(this._batchTable)&&(v.push("VECTOR_TILE"),C=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(C),T=this._batchTable.getFragmentShaderCallback(!1,void 0)(T)),E=new He({defines:v,sources:[C]}),this._instanced&&E.defines.push("INSTANCED"),this._shaderRotation&&E.defines.push("ROTATION"),this._shaderAlignedAxis&&E.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&E.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&E.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&E.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&E.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&E.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK"));let M=1-bs.CUTOFF;this._sdf&&E.defines.push("SDF");let L=l(this._batchTable)?"VECTOR_TILE":"";this._blendOption===To.OPAQUE_AND_TRANSLUCENT&&(S=new He({defines:["OPAQUE",L],sources:[T]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${M}`)),this._sp=Kt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:xo}),S=new He({defines:["TRANSLUCENT",L],sources:[T]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${M}`)),this._spTranslucent=Kt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:xo})),this._blendOption===To.OPAQUE&&(S=new He({defines:[L],sources:[T]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${M}`)),this._sp=Kt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:xo})),this._blendOption===To.TRANSLUCENT&&(S=new He({defines:[L],sources:[T]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${M}`)),this._spTranslucent=Kt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:xo})),this._compiledShaderRotation=this._shaderRotation,this._compiledShaderAlignedAxis=this._shaderAlignedAxis,this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderPixelOffsetScaleByDistance=this._shaderPixelOffsetScaleByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance,this._compiledShaderClampToGround=this._shaderClampToGround,this._compiledSDF=this._sdf}let O=e.commandList;if(p.render||p.pick){let M=this._colorCommands,L=this._blendOption===To.OPAQUE,N=this._blendOption===To.OPAQUE_AND_TRANSLUCENT,_=this._vaf.va,b=_.length,w=this._uniforms,I;l(this._batchTable)?(w=this._batchTable.getUniformMapCallback()(w),I=this._batchTable.getPickId()):I="v_pickColor",M.length=b;let R=N?b*2:b;for(let F=0;F0}},labelOutlineColor:{get:function(){return this._label.outlineColor},set:function(e){this._label.outlineColor=e}},labelOutlineWidth:{get:function(){return this._label.outlineWidth},set:function(e){this._label.outlineWidth=e}},font:{get:function(){return this._label.font},set:function(e){this._label.font=e}},labelStyle:{get:function(){return this._label.style},set:function(e){this._label.style=e}},labelText:{get:function(){return this._label.text},set:function(e){l(e)||(e=""),this._label.text=e}},backgroundColor:{get:function(){return this._label.backgroundColor},set:function(e){this._label.backgroundColor=e}},backgroundPadding:{get:function(){return this._label.backgroundPadding},set:function(e){this._label.backgroundPadding=e}},backgroundEnabled:{get:function(){return this._label.showBackground},set:function(e){this._label.showBackground=e}},scaleByDistance:{get:function(){return this._label.scaleByDistance},set:function(e){this._label.scaleByDistance=e,this._billboard.scaleByDistance=e}},translucencyByDistance:{get:function(){return this._label.translucencyByDistance},set:function(e){this._label.translucencyByDistance=e,this._billboard.translucencyByDistance=e}},distanceDisplayCondition:{get:function(){return this._label.distanceDisplayCondition},set:function(e){this._label.distanceDisplayCondition=e,this._polyline.distanceDisplayCondition=e,this._billboard.distanceDisplayCondition=e}},heightOffset:{get:function(){return this._heightOffset},set:function(e){let t=y(this._heightOffset,0),n=this._content.tileset.ellipsoid,i=n.cartesianToCartographic(this._billboard.position,pHe);i.height=i.height-t+e;let o=n.cartographicToCartesian(i);this._billboard.position=o,this._label.position=this._billboard.position,this._polyline.positions=[this._polyline.positions[0],o],this._heightOffset=e}},anchorLineEnabled:{get:function(){return this._polyline.show},set:function(e){this._polyline.show=e}},anchorLineColor:{get:function(){return this._polyline.material.uniforms.color},set:function(e){this._polyline.material.uniforms.color=z.clone(e,this._polyline.material.uniforms.color)}},image:{get:function(){return this._billboardImage},set:function(e){let t=this._billboardImage!==e;this._billboardImage=e,t&&cE(this)}},disableDepthTestDistance:{get:function(){return this._label.disableDepthTestDistance},set:function(e){this._label.disableDepthTestDistance=e,this._billboard.disableDepthTestDistance=e}},horizontalOrigin:{get:function(){return this._billboard.horizontalOrigin},set:function(e){this._billboard.horizontalOrigin=e}},verticalOrigin:{get:function(){return this._billboard.verticalOrigin},set:function(e){this._billboard.verticalOrigin=e}},labelHorizontalOrigin:{get:function(){return this._label.horizontalOrigin},set:function(e){this._label.horizontalOrigin=e}},labelVerticalOrigin:{get:function(){return this._label.verticalOrigin},set:function(e){this._label.verticalOrigin=e}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},pickIds:{get:function(){let e=this._pickIds;return e[0]=this._billboard.pickId,e[1]=this._label.pickId,e[2]=this._polyline.pickId,e}}});Zs.defaultColor=z.WHITE;Zs.defaultPointOutlineColor=z.BLACK;Zs.defaultPointOutlineWidth=0;Zs.defaultPointSize=8;function cE(e){let t=e._billboard;if(l(e._billboardImage)&&e._billboardImage!==t.image){t.image=e._billboardImage;return}if(l(e._billboardImage))return;let n=y(e._color,Zs.defaultColor),i=y(e._pointOutlineColor,Zs.defaultPointOutlineColor),o=y(e._pointOutlineWidth,Zs.defaultPointOutlineWidth),r=y(e._pointSize,Zs.defaultPointSize),s=e._billboardColor,a=e._billboardOutlineColor,c=e._billboardOutlineWidth,u=e._billboardSize;if(z.equals(n,s)&&z.equals(i,a)&&o===c&&r===u)return;e._billboardColor=z.clone(n,e._billboardColor),e._billboardOutlineColor=z.clone(i,e._billboardOutlineColor),e._billboardOutlineWidth=o,e._billboardSize=r;let f=n.alpha,d=n.toCssColorString(),p=i.toCssColorString(),g=JSON.stringify([d,r,p,o]);t.setImage(g,HA(f,d,p,o,r))}Zs.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};Zs.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};Zs.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};Zs.prototype.getPropertyInherited=function(e){return xs.getPropertyInherited(this._content,this._batchId,e)};Zs.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};Zs.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};Zs.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};Zs.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var Vp=Zs;function _He(e,t,n,i,o){let r=e.measureText(t);if(!!/\S/.test(t)){let a=document.defaultView.getComputedStyle(e.canvas).getPropertyValue("font-size").replace("px",""),c=document.createElement("canvas"),u=100,f=r.width+u|0,d=3*a,p=d/2;c.width=f,c.height=d;let g=c.getContext("2d");g.font=n,g.fillStyle="white",g.fillRect(0,0,c.width+1,c.height+1),i&&(g.strokeStyle="black",g.lineWidth=e.lineWidth,g.strokeText(t,u/2,p)),o&&(g.fillStyle="black",g.fillText(t,u/2,p));let h=g.getImageData(0,0,f,d).data,A=h.length,x=f*4,C,T,E,S;for(C=0;C=0;--C)if(h[C]!==255){S=C/x|0;break}let v=-1;for(C=0;C]/,o=[],r="",s=Zr.LTR,a="",c=e.length;for(let u=0;u";case">":return"<"}}var wHe="\u05D0-\u05EA",vHe="\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF",yre=new RegExp(`[${wHe}${vHe}]`);function DHe(e){let t=e.split(` +`),n="";for(let i=0;iu+1?s[u+1].Type===Zr.RTL?(c=d+c,a=0):(c=oM(c,a,f.Word),a+=f.Word.length):c=oM(c,0,d)):f.Type===Zr.RTL?c=oM(c,a,d):f.Type===Zr.LTR?(c+=f.Word,a=c.length):(f.Type===Zr.WEAK||f.Type===Zr.BRACKETS)&&(u>0&&s[u-1].Type===Zr.RTL?s.length>u+1?s[u+1].Type===Zr.RTL?c=oM(c,a,d):(c+=f.Word,a=c.length):c+=f.Word:(c+=f.Word,a=c.length))}n+=c,i0,d=t._backgroundBillboard,p=e._backgroundBillboardCollection;f?(l(d)||(d=p.add({collection:e,image:bre,imageSubRegion:RHe}),t._backgroundBillboard=d),d.color=t._backgroundColor,d.show=t._show,d.position=t._position,d.eyeOffset=t._eyeOffset,d.pixelOffset=t._pixelOffset,d.horizontalOrigin=pi.LEFT,d.verticalOrigin=t._verticalOrigin,d.heightReference=t._heightReference,d.scale=t.totalScale,d.pickPrimitive=t,d.id=t._id,d.translucencyByDistance=t._translucencyByDistance,d.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,d.scaleByDistance=t._scaleByDistance,d.distanceDisplayCondition=t._distanceDisplayCondition,d.disableDepthTestDistance=t._disableDepthTestDistance):l(d)&&(p.remove(d),t._backgroundBillboard=d=void 0);let g=e._glyphTextureCache;for(u=0;u0&&E.height>0){let S=(0,Tre.default)(E,{cutoff:bs.CUTOFF,radius:bs.RADIUS}),v=E.getContext("2d"),D=E.width,O=E.height,M=v.getImageData(0,0,D,O);for(let L=0;L0?T=E.pop():(T=e._billboardCollection.add({collection:e}),T._labelDimensions=new H,T._labelTranslate=new H),a.billboard=T),T.show=t._show,T.position=t._position,T.eyeOffset=t._eyeOffset,T.pixelOffset=t._pixelOffset,T.horizontalOrigin=pi.LEFT,T.verticalOrigin=t._verticalOrigin,T.heightReference=t._heightReference,T.scale=t.totalScale,T.pickPrimitive=t,T.id=t._id,T.image=x,T.translucencyByDistance=t._translucencyByDistance,T.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,T.scaleByDistance=t._scaleByDistance,T.distanceDisplayCondition=t._distanceDisplayCondition,T.disableDepthTestDistance=t._disableDepthTestDistance,T._batchIndex=t._batchIndex,T.outlineColor=t.outlineColor,t.style===Fo.FILL_AND_OUTLINE?(T.color=t._fillColor,T.outlineWidth=t.outlineWidth):t.style===Fo.FILL?(T.color=t._fillColor,T.outlineWidth=0):t.style===Fo.OUTLINE&&(T.color=z.TRANSPARENT,T.outlineWidth=t.outlineWidth)}}t._repositionAllGlyphs=!0}function Cre(e,t,n){return t===pi.CENTER?-e/2:t===pi.RIGHT?-(e+n.x):n.x}var nr=new H,VHe=new H;function kHe(e){let t=e._glyphs,n=e._renderedText,i,o,r=0,s=0,a=[],c=Number.NEGATIVE_INFINITY,u=0,f=1,d,p=t.length,g=e._backgroundBillboard,h=H.clone(l(g)?e._backgroundPadding:H.ZERO,VHe);for(h.x/=e._relativeSize,h.y/=e._relativeSize,d=0;d0&&(C===pi.CENTER?v=-s/2-h.x:C===pi.RIGHT?v=-(s+h.x*2):v=0,nr.x=v*x,T===On.TOP?nr.y=A-u-c:T===On.CENTER?nr.y=(A-u)/2-c:T===On.BASELINE?nr.y=-h.y-c:nr.y=0,nr.y=nr.y*x,g.width=M,g.height=L,g._setTranslate(nr),g._labelTranslate=H.clone(nr,g._labelTranslate)),e.heightReference===qe.CLAMP_TO_GROUND)for(d=0;d0?To.TRANSLUCENT:this.blendOption;t.blendOption=r,n.blendOption=r,t._highlightColor=this._highlightColor,n._highlightColor=this._highlightColor,this._labelsToUpdate.length=0,n.update(e),t.update(e)};qm.prototype.isDestroyed=function(){return!1};qm.prototype.destroy=function(){return this.removeAll(),this._billboardCollection=this._billboardCollection.destroy(),this._textureAtlas=this._textureAtlas&&this._textureAtlas.destroy(),this._backgroundBillboardCollection=this._backgroundBillboardCollection.destroy(),this._backgroundTextureAtlas=this._backgroundTextureAtlas&&this._backgroundTextureAtlas.destroy(),ue(this)};var Xm=qm;var rM=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 position2DHigh; +in vec3 position2DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 prevPosition2DHigh; +in vec3 prevPosition2DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec3 nextPosition2DHigh; +in vec3 nextPosition2DLow; +in vec4 texCoordExpandAndBatchIndex; + +out vec2 v_st; +out float v_width; +out vec4 v_pickColor; +out float v_polylineAngle; + +void main() +{ + float texCoord = texCoordExpandAndBatchIndex.x; + float expandDir = texCoordExpandAndBatchIndex.y; + bool usePrev = texCoordExpandAndBatchIndex.z < 0.0; + float batchTableIndex = texCoordExpandAndBatchIndex.w; + + vec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex); + float width = widthAndShow.x + 0.5; + float show = widthAndShow.y; + + if (width < 1.0) + { + show = 0.0; + } + + vec4 pickColor = batchTable_getPickColor(batchTableIndex); + + vec4 p, prev, next; + if (czm_morphTime == 1.0) + { + p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz); + prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz); + next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz); + } + else if (czm_morphTime == 0.0) + { + p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); + prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy); + next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy); + } + else + { + p = czm_columbusViewMorph( + czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy), + czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz), + czm_morphTime); + prev = czm_columbusViewMorph( + czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy), + czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz), + czm_morphTime); + next = czm_columbusViewMorph( + czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy), + czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz), + czm_morphTime); + } + + #ifdef DISTANCE_DISPLAY_CONDITION + vec3 centerHigh = batchTable_getCenterHigh(batchTableIndex); + vec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex); + vec3 centerLow = centerLowAndRadius.xyz; + float radius = centerLowAndRadius.w; + vec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex); + + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + lengthSq = czm_eyeHeight2D.y; + } + else + { + vec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz); + lengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius); + } + + float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; + float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + show = 0.0; + } + #endif + + float polylineAngle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, polylineAngle); + gl_Position = czm_viewportOrthographic * positionWC * show; + + v_st.s = texCoord; + v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w); + + v_width = width; + v_pickColor = pickColor; + v_polylineAngle = polylineAngle; +} +`;var Bc={};Bc.numberOfPoints=function(e,t,n){let i=m.distance(e,t);return Math.ceil(i/n)};Bc.numberOfPointsRhumbLine=function(e,t,n){let i=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(i/(n*n))))};var zHe=new he;Bc.extractHeights=function(e,t){let n=e.length,i=new Array(n);for(let o=0;o0){t=y(t,B.IDENTITY);let o=B.inverseTransformation(t,HHe),r=B.multiplyByPoint(o,m.ZERO,GHe),s=m.normalize(B.multiplyByPointAsVector(o,m.UNIT_Y,wre),wre),a=un.fromPointNormal(r,s,WHe),c=m.normalize(B.multiplyByPointAsVector(o,m.UNIT_X,vre),vre),u=un.fromPointNormal(r,c,jHe),f=1;n.push(m.clone(e[0]));let d=n[0],p=e.length;for(let g=1;g2&&(this._actualPositions===this._positions&&(this._actualPositions=n.slice()),this._actualPositions.push(m.clone(this._actualPositions[0]))),this._length=this._actualPositions.length,this._id=e.id;let i;l(t)&&(i=B.clone(t.modelMatrix)),this._modelMatrix=i,this._segments=Di.wrapLongitude(this._actualPositions,i),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(Ore),this._polylineCollection=t,this._dirty=!1,this._pickId=void 0,this._boundingVolume=ae.fromPoints(this._actualPositions),this._boundingVolumeWC=ae.transform(this._boundingVolume,this._modelMatrix),this._boundingVolume2D=new ae}var Pre=tu.POSITION_INDEX=0,QHe=tu.SHOW_INDEX=1,$He=tu.WIDTH_INDEX=2,eGe=tu.MATERIAL_INDEX=3,aM=tu.POSITION_SIZE_INDEX=4,tGe=tu.DISTANCE_DISPLAY_CONDITION=5,Ore=tu.NUMBER_OF_PROPERTIES=6;function zp(e,t){++e._propertiesChanged[t];let n=e._polylineCollection;l(n)&&(n._updatePolyline(e,t),e._dirty=!0)}Object.defineProperties(tu.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,zp(this,QHe))}},positions:{get:function(){return this._positions},set:function(e){let t=Ao(e,m.equalsEpsilon);this._loop&&t.length>2&&(t===e&&(t=e.slice()),t.push(m.clone(t[0]))),(this._actualPositions.length!==t.length||this._actualPositions.length!==this._length)&&zp(this,aM),this._positions=e,this._actualPositions=t,this._length=t.length,this._boundingVolume=ae.fromPoints(this._actualPositions,this._boundingVolume),this._boundingVolumeWC=ae.transform(this._boundingVolume,this._modelMatrix,this._boundingVolumeWC),zp(this,Pre),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,zp(this,eGe))}},width:{get:function(){return this._width},set:function(e){let t=this._width;e!==t&&(this._width=e,zp(this,$He))}},loop:{get:function(){return this._loop},set:function(e){if(e!==this._loop){let t=this._actualPositions;e?t.length>2&&!m.equals(t[0],t[t.length-1])&&(t.length===this._positions.length&&(this._actualPositions=t=this._positions.slice()),t.push(m.clone(t[0]))):t.length>2&&m.equals(t[0],t[t.length-1])&&(t.length-1===this._positions.length?this._actualPositions=this._positions:t.pop()),this._loop=e,zp(this,aM)}}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},isDestroyed:{get:function(){return!l(this._polylineCollection)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Dt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Dt.clone(e,this._distanceDisplayCondition),zp(this,tGe))}}});tu.prototype.update=function(){let e=B.IDENTITY;l(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);let t=this._segments.positions.length,n=this._segments.lengths,i=this._propertiesChanged[Pre]>0||this._propertiesChanged[aM]>0;if((!B.equals(e,this._modelMatrix)||i)&&(this._segments=Di.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=ae.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=B.clone(e,this._modelMatrix),this._segments.positions.length!==t)zp(this,aM);else{let o=n.length;for(let r=0;r2){if(o[T6]||o[Mre]){let h=e.mode===ne.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,A=Wn.fromCartesian(h.center,kre),x=re.fromElements(A.low.x,A.low.y,A.low.z,h.radius,zre);this._batchTable.setBatchedAttribute(i._index,2,A.high),this._batchTable.setBatchedAttribute(i._index,3,x)}if(o[rGe]){let h=Hre;h.x=0,h.y=Number.MAX_VALUE;let A=i.distanceDisplayCondition;l(A)&&(h.x=A.near,h.y=A.far),this._batchTable.setBatchedAttribute(i._index,4,h)}}i._clean()}}c.length=0,this._polylinesUpdated=!1}o=this._propertiesChanged;for(let c=0;c0){let G=L.isTranslucent();a>=s?(_=new it({owner:e}),n.push(_)):_=n[a],++a,b=_t(p(L._uniforms),e._uniformMap),_.boundingVolume=ae.clone(cM,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=A.va,_.renderState=G?e._translucentRS:e._opaqueRS,_.pass=G?be.TRANSLUCENT:be.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=b,_.count=N,_.offset=S,S+=N,N=0,c=!0,r.push(_)}L=I._material,L.update(o),M=R}let F=I._locatorBuckets,k=F.length;for(let G=0;G0&&(a>=s?(_=new it({owner:e}),n.push(_)):_=n[a],++a,b=_t(p(L._uniforms),e._uniformMap),_.boundingVolume=ae.clone(cM,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=A.va,_.renderState=L.isTranslucent()?e._translucentRS:e._opaqueRS,_.pass=L.isTranslucent()?be.TRANSLUCENT:be.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=b,_.count=N,_.offset=S,c=!0,r.push(_)),M=void 0}}n.length=a}Dd.prototype.isDestroyed=function(){return!1};Dd.prototype.destroy=function(){return Gre(this),b6(this),Wre(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function cGe(e){let t=!1,n=e._propertiesChanged,i=e._positionBufferUsage;return n[T6]?(i.bufferUsage!==Fe.STREAM_DRAW&&(t=!0,i.bufferUsage=Fe.STREAM_DRAW),i.frameCount=100):i.bufferUsage!==Fe.STATIC_DRAW&&(i.frameCount===0?(t=!0,i.bufferUsage=Fe.STATIC_DRAW):i.frameCount--),t}var Bre=[0,0,0];function Lre(e,t,n){e._createVertexArray=!1,b6(e),Gre(e),fGe(e);let i=[[]],o=i[0],r=e._batchTable,s=e._useHighlightColor,a=[0],c=0,u=[[]],f=0,d=e._polylineBuckets,p,g;for(p in d)d.hasOwnProperty(p)&&(g=d[p],g.updateShader(t,r,s),f+=g.lengthOfPositions);if(f>0){let h=e._mode,A=new Float32Array(6*f*3),x=new Float32Array(f*4),C,T=0,E=0,S=0;for(p in d)if(d.hasOwnProperty(p)){g=d[p],g.write(A,x,T,E,S,r,t,n),h===ne.MORPHING&&(l(C)||(C=new Float32Array(6*f*3)),g.writeForMorph(C,T));let b=g.lengthOfPositions;T+=6*b*3,E+=b*4,S+=b*4,c=g.updateIndices(i,a,u,c)}let v=e._positionBufferUsage.bufferUsage,D=Fe.STATIC_DRAW;e._positionBuffer=mt.createVertexBuffer({context:t,typedArray:A,usage:v});let O;l(C)&&(O=mt.createVertexBuffer({context:t,typedArray:C,usage:v})),e._texCoordExpandAndBatchIndexBuffer=mt.createVertexBuffer({context:t,typedArray:x,usage:D});let M=3*Float32Array.BYTES_PER_ELEMENT,L=4*Float32Array.BYTES_PER_ELEMENT,N=0,_=i.length;for(let b=0;b<_;++b)if(o=i[b],o.length>0){let w=new Uint16Array(o),I=mt.createIndexBuffer({context:t,typedArray:w,usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT});N+=a[b];let R=6*(b*(M*P.SIXTY_FOUR_KILOBYTES)-N*M),F=M+R,k=M+F,V=M+k,G=M+V,U=M+G,q=b*(L*P.SIXTY_FOUR_KILOBYTES)-N*L,Y=[{index:yl.position3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:R,strideInBytes:6*M},{index:yl.position3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:F,strideInBytes:6*M},{index:yl.position2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:R,strideInBytes:6*M},{index:yl.position2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:F,strideInBytes:6*M},{index:yl.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*M},{index:yl.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*M},{index:yl.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*M},{index:yl.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*M},{index:yl.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*M},{index:yl.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*M},{index:yl.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*M},{index:yl.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*M},{index:yl.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:X.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:q}],Q,W,K,J;h===ne.SCENE3D?(W=e._positionBuffer,Q="vertexBuffer",K=Bre,J="value"):h===ne.SCENE2D||h===ne.COLUMBUS_VIEW?(W=Bre,Q="value",K=e._positionBuffer,J="vertexBuffer"):(W=O,Q="vertexBuffer",K=e._positionBuffer,J="vertexBuffer"),Y[0][Q]=W,Y[1][Q]=W,Y[2][J]=K,Y[3][J]=K,Y[4][Q]=W,Y[5][Q]=W,Y[6][J]=K,Y[7][J]=K,Y[8][Q]=W,Y[9][Q]=W,Y[10][J]=K,Y[11][J]=K;let _e=new oi({context:t,attributes:Y,indexBuffer:I});e._vertexArrays.push({va:_e,buckets:u[b]})}}}function lGe(e,t){return t instanceof Bt?t.id:t}var oV=[];function uGe(e){let t=ki._uniformList[e.type],n=t.length;oV.length=2*n;let i=0;for(let o=0;o1){a.update();let c=a.material,u=i[c.type];l(u)||(u=i[c.type]=new Km(c,t,n)),u.addPolyline(a)}}}function dGe(e,t){let n=t.mode;(e._mode!==n||!B.equals(e._modelMatrix,e.modelMatrix))&&(e._mode=n,e._modelMatrix=B.clone(e.modelMatrix),e._createVertexArray=!0)}function E6(e){if(e._polylinesRemoved){e._polylinesRemoved=!1;let t=[],n=[],i=0,o,r=e._polylines.length;for(let s=0;s0,x=g._index,C=this.getSegments(g,a),T=C.positions,E=C.lengths,S=T.length,v=g.getPickId(s).color,D=0,O=0,M;for(let k=0;k0||rs.x>0&&af.x<0)&&m.clone(rs,af),(rs.x<0&&cf.x>0||rs.x>0&&cf.x<0)&&m.clone(rs,cf));let q=G?2:0,Y=U?2:4;for(let Q=q;Q2&&(r.setBatchedAttribute(x,2,w),r.setBatchedAttribute(x,3,I),r.setBatchedAttribute(x,4,R))}};var pGe=new m,_Ge=new m,gGe=new m,Nre=new m;Km.prototype.writeForMorph=function(e,t){let n=this.modelMatrix,i=this.polylines,o=i.length;for(let r=0;r0&&(c=a[a.length-1]+1);let u=this.polylines,f=u.length;for(let d=0;d0)g[0]=A;else continue}else g=p._segments.lengths;let h=g.length;if(h>0){let A=0;for(let x=0;xP.SIXTY_FOUR_KILOBYTES&&(p._locatorBuckets.push({locator:r,count:A}),A=0,t.push(4),a=[],e.push(a),c=0,r.count=s,s=0,i=0,r=new C6(0,0,this),n[++o]=[r]),a.push(c,c+2,c+1),a.push(c+1,c+2,c+3),A+=6,s+=6,i+=6,c+=4}p._locatorBuckets.push({locator:r,count:A}),c+4>P.SIXTY_FOUR_KILOBYTES&&(t.push(0),a=[],e.push(a),c=0,r.count=s,i=0,s=0,r=new C6(0,0,this),n[++o]=[r])}p._clean()}return r.count=s,i};Km.prototype.getPolylineStartIndex=function(e){let t=this.polylines,n=0,i=t.length;for(let o=0;o0){e._boundingVolume2D=ae.fromPoints(o,e._boundingVolume2D);let u=e._boundingVolume2D.center;e._boundingVolume2D.center=new m(u.z,u.x,u.y)}return lE.positions=o,lE.lengths=e._segments.lengths,lE};var Ure;Km.prototype.writeUpdate=function(e,t,n,i){let o=this.mode,r=i.ellipsoid.maximumRadius*P.PI,s=t._actualLength;if(s){e+=this.getPolylineStartIndex(t);let a=Ure,c=6*s*3;!l(a)||a.lengthc&&(a=new Float32Array(a.buffer,0,c));let u=this.getSegments(t,i),f=u.positions,d=u.lengths,p=0,g=0,h=0,A;s=f.length;for(let x=0;x0||rs.x>0&&af.x<0)&&m.clone(rs,af),(rs.x<0&&cf.x>0||rs.x>0&&cf.x<0)&&m.clone(rs,cf));let S=T?2:0,v=E?2:4;for(let D=S;D{if(e.isDestroyed())return;e._positions=new Float64Array(a.positions);let c=e._billboardCollection,u=e._labelCollection,f=e._polylineCollection;n=e._positions;let d=e._batchIds,p=n.length/3;for(let g=0;g{e.isDestroyed()||(e._error=a)})}qg.prototype.createFeatures=function(e,t){let n=this._billboardCollection,i=this._labelCollection,o=this._polylineCollection,r=this._batchIds,s=r.length;for(let a=0;a{if(e.isDestroyed())return;e._positions=void 0,e._counts=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0;let h=new Float64Array(g.packedBuffer),A=h[0];RGe(e,h),e._indices=Ue.getSizeInBytes(A)===2?new Uint16Array(g.indices):new Uint32Array(g.indices),e._indexOffsets=new Uint32Array(g.indexOffsets),e._indexCounts=new Uint32Array(g.indexCounts),e._batchedPositions=new Float32Array(g.positions),e._vertexBatchIds=new Uint16Array(g.batchIds),FGe(e),e._ready=!0}).catch(g=>{e.isDestroyed()||(e._error=g)})}function FGe(e){l(e._primitive)||(e._primitive=new gA({batchTable:e._batchTable,positions:e._batchedPositions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center}),e._batchTable=void 0,e._batchIds=void 0,e._positions=void 0,e._counts=void 0,e._indices=void 0,e._indexCounts=void 0,e._indexOffsets=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0,e._center=void 0,e._rectangle=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0)}Hp.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};Hp.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};Hp.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};Hp.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};Hp.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=NGe(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};Hp.prototype.isDestroyed=function(){return!1};Hp.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var dM=Hp;var mM=`in vec4 currentPosition; +in vec4 previousPosition; +in vec4 nextPosition; +in vec2 expandAndWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = u_modifiedModelView * currentPosition; + vec4 prev = u_modifiedModelView * previousPosition; + vec4 next = u_modifiedModelView * nextPosition; + + float angle; + vec4 positionWC = getPolylineWindowCoordinatesEC(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; +} +`;function Pd(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,oe.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._boundingVolume=e.boundingVolume,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._currentPositions=void 0,this._previousPositions=void 0,this._nextPositions=void 0,this._expandAndWidth=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Pd.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function UGe(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+le.packedLength+oe.packedLength+m.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,le.pack(t,a,c),c+=le.packedLength,oe.pack(o,a,c),c+=oe.packedLength,m.pack(r,a,c),a}var VGe=new hi("createVectorTilePolylines",5),uE={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4};function kGe(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=UGe(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},u=VGe.scheduleTask(c,a);if(l(u))return u.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._currentPositions=new Float32Array(f.currentPositions),e._previousPositions=new Float32Array(f.previousPositions),e._nextPositions=new Float32Array(f.nextPositions),e._expandAndWidth=new Float32Array(f.expandAndWidth),e._vertexBatchIds=new Uint16Array(f.batchIds);let d=f.indexDatatype;e._indices=d===Ue.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),zGe(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function zGe(e,t){if(!l(e._va)){let n=e._currentPositions,i=e._previousPositions,o=e._nextPositions,r=e._expandAndWidth,s=e._vertexBatchIds,a=e._indices,c=i.byteLength+n.byteLength+o.byteLength;c+=r.byteLength+s.byteLength+a.byteLength,e._trianglesLength=a.length/3,e._geometryByteLength=c;let u=mt.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),f=mt.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),d=mt.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),p=mt.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),g=mt.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),h=mt.createIndexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:a.BYTES_PER_ELEMENT===2?Ue.UNSIGNED_SHORT:Ue.UNSIGNED_INT}),A=[{index:uE.previousPosition,vertexBuffer:u,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:uE.currentPosition,vertexBuffer:f,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:uE.nextPosition,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:uE.expandAndWidth,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:2},{index:uE.a_batchId,vertexBuffer:g,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new oi({context:t,attributes:A,indexBuffer:h}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._currentPositions=void 0,e._previousPositions=void 0,e._nextPositions=void 0,e._expandAndWidth=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var hM=new B,Yre=new m;function HGe(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return B.clone(n,hM),B.multiplyByPoint(hM,e._center,Yre),B.setTranslation(hM,Yre,hM),hM},u_highlightColor:function(){return e._highlightColor}})}function GGe(e){if(l(e._rs))return;let t={enabled:!0,factor:-5,units:-5};e._rs=ze.fromCache({blending:mn.ALPHA_BLEND,depthMask:!1,depthTest:{enabled:!0},polygonOffset:t})}var WGe=`uniform vec4 u_highlightColor; +void main() +{ + out_FragColor = u_highlightColor; +} +`;function jGe(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(mM),o=n.getFragmentShaderCallback(!1,void 0,!1)(WGe),r=new He({defines:["VECTOR_TILE",Ht.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[Xl,i]}),s=new He({defines:["VECTOR_TILE"],sources:[o]});e._sp=Kt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:uE})}function YGe(e,t){if(!l(e._command)){let n=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new it({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:n,boundingVolume:e._boundingVolume,pass:be.TRANSLUCENT,pickId:e._batchTable.getPickId()})}t.commandList.push(e._command)}Pd.getPolylinePositions=function(e,t){let n=e._batchIds,i=e._decodedPositions,o=e._decodedPositionOffsets;if(!l(n)||!l(i))return;let r,s,a=n.length,c=0,u=0;for(r=0;r + // + vec3 scratchNormal = mix(-startFaceNormalAndVertexCorner.xyz, endFaceNormalAndHalfWidth.xyz, isEnd); + scratchNormal = cross(scratchNormal, mix(startEllipsoidNormal, endEllipsoidNormal, isEnd)); + vec3 miterPushNormal = czm_normal * normalize(scratchNormal); + + offset = 2.0 * endFaceNormalAndHalfWidth.w * max(0.0, czm_metersPerPixel(position)); // offset = widthEC + offset = offset / dot(miterPushNormal, right); + position.xyz += miterPushNormal * (offset * sign(0.5 - mod(startFaceNormalAndVertexCorner.w, 2.0))); + + gl_Position = czm_depthClamp(czm_projection * position); + + position = u_modifiedModelView * vec4(startPositionAndHeight.xyz, 1.0); + vec3 startNormalEC = czm_normal * startFaceNormalAndVertexCorner.xyz; + v_startPlaneEC = vec4(startNormalEC, -dot(startNormalEC, position.xyz)); + v_rightPlaneEC = vec4(right, -dot(right, position.xyz)); + + position = u_modifiedModelView * vec4(endPositionAndHeight.xyz, 1.0); + vec3 endNormalEC = czm_normal * endFaceNormalAndHalfWidth.xyz; + v_endPlaneEC = vec4(endNormalEC, -dot(endNormalEC, position.xyz)); + v_halfWidth = endFaceNormalAndHalfWidth.w; +} +`;var _M=`in vec4 v_startPlaneEC; +in vec4 v_endPlaneEC; +in vec4 v_rightPlaneEC; +in float v_halfWidth; +in vec3 v_volumeUpEC; + +uniform vec4 u_highlightColor; +void main() +{ + float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); + + // Discard for sky + if (logDepthOrDepth == 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(0.0, 0.0, 1.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + eyeCoordinate /= eyeCoordinate.w; + + float halfMaxWidth = v_halfWidth * czm_metersPerPixel(eyeCoordinate); + + // Expand halfMaxWidth if direction to camera is almost perpendicular with the volume's up direction + halfMaxWidth += halfMaxWidth * (1.0 - dot(-normalize(eyeCoordinate.xyz), v_volumeUpEC)); + + // Check distance of the eye coordinate against the right-facing plane + float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); + + // Check eye coordinate against the mitering planes + float distanceFromStart = czm_planeDistance(v_startPlaneEC, eyeCoordinate.xyz); + float distanceFromEnd = czm_planeDistance(v_endPlaneEC, eyeCoordinate.xyz); + + if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(logDepthOrDepth, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + out_FragColor = u_highlightColor; + + czm_writeDepthClamp(); +} +`;function Gp(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,oe.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._minimumMaximumVectorHeights=new H(ri._defaultMinTerrainHeight,ri._defaultMaxTerrainHeight),this._boundingVolume=Mn.fromRectangle(e.rectangle,ri._defaultMinTerrainHeight,ri._defaultMaxTerrainHeight,this._ellipsoid),this._classificationType=e.classificationType,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._startEllipsoidNormals=void 0,this._endEllipsoidNormals=void 0,this._startPositionAndHeights=void 0,this._startFaceNormalAndVertexCornerIds=void 0,this._endPositionAndHeights=void 0,this._endFaceNormalAndHalfWidths=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Gp.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function ZGe(e,t,n){let i=ri.getMinimumMaximumHeights(t,n),o=i.minimumTerrainHeight,r=i.maximumTerrainHeight,s=e._minimumMaximumVectorHeights;s.x=o,s.y=r;let a=e._boundingVolume,c=e._rectangle;Mn.fromRectangle(c,o,r,n,a)}function QGe(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+le.packedLength+oe.packedLength+m.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,le.pack(t,a,c),c+=le.packedLength,oe.pack(o,a,c),c+=oe.packedLength,m.pack(r,a,c),a}var $Ge=new hi("createVectorTileClampedPolylines"),Xg={startEllipsoidNormal:0,endEllipsoidNormal:1,startPositionAndHeight:2,endPositionAndHeight:3,startFaceNormalAndVertexCorner:4,endFaceNormalAndHalfWidth:5,a_batchId:6};function e8e(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=QGe(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},u=$Ge.scheduleTask(c,a);if(l(u))return u.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._startEllipsoidNormals=new Float32Array(f.startEllipsoidNormals),e._endEllipsoidNormals=new Float32Array(f.endEllipsoidNormals),e._startPositionAndHeights=new Float32Array(f.startPositionAndHeights),e._startFaceNormalAndVertexCornerIds=new Float32Array(f.startFaceNormalAndVertexCornerIds),e._endPositionAndHeights=new Float32Array(f.endPositionAndHeights),e._endFaceNormalAndHalfWidths=new Float32Array(f.endFaceNormalAndHalfWidths),e._vertexBatchIds=new Uint16Array(f.vertexBatchIds);let d=f.indexDatatype;e._indices=d===Ue.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),t8e(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function t8e(e,t){if(!l(e._va)){let n=e._startEllipsoidNormals,i=e._endEllipsoidNormals,o=e._startPositionAndHeights,r=e._endPositionAndHeights,s=e._startFaceNormalAndVertexCornerIds,a=e._endFaceNormalAndHalfWidths,c=e._vertexBatchIds,u=e._indices,f=n.byteLength+i.byteLength;f+=o.byteLength+r.byteLength,f+=s.byteLength+a.byteLength,f+=c.byteLength+u.byteLength,e._trianglesLength=u.length/3,e._geometryByteLength=f;let d=mt.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),p=mt.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),g=mt.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),h=mt.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),A=mt.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),x=mt.createVertexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW}),C=mt.createVertexBuffer({context:t,typedArray:c,usage:Fe.STATIC_DRAW}),T=mt.createIndexBuffer({context:t,typedArray:u,usage:Fe.STATIC_DRAW,indexDatatype:u.BYTES_PER_ELEMENT===2?Ue.UNSIGNED_SHORT:Ue.UNSIGNED_INT}),E=[{index:Xg.startEllipsoidNormal,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:Xg.endEllipsoidNormal,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:Xg.startPositionAndHeight,vertexBuffer:g,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Xg.endPositionAndHeight,vertexBuffer:h,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Xg.startFaceNormalAndVertexCorner,vertexBuffer:A,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Xg.endFaceNormalAndHalfWidth,vertexBuffer:x,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Xg.a_batchId,vertexBuffer:C,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new oi({context:t,attributes:E,indexBuffer:T}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._startEllipsoidNormals=void 0,e._endEllipsoidNormals=void 0,e._startPositionAndHeights=void 0,e._startFaceNormalAndVertexCornerIds=void 0,e._endPositionAndHeights=void 0,e._endFaceNormalAndHalfWidths=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var gM=new B,qre=new m;function n8e(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return B.clone(n,gM),B.multiplyByPoint(gM,e._center,qre),B.setTranslation(gM,qre,gM),gM},u_highlightColor:function(){return e._highlightColor},u_minimumMaximumVectorHeights:function(){return e._minimumMaximumVectorHeights}})}function Xre(e){return ze.fromCache({cull:{enabled:!0,face:_i.FRONT},blending:mn.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Hn.EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Hn.EQUAL,backOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK}})}function i8e(e){l(e._rs)||(e._rs=Xre(!1),e._rs3DTiles=Xre(!0))}function o8e(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(pM),o=n.getFragmentShaderCallback(!1,void 0,!0)(_M),r=new He({defines:["VECTOR_TILE",Ht.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[Xl,i]}),s=new He({defines:["VECTOR_TILE"],sources:[o]});e._sp=Kt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:Xg})}function r8e(e,t){let n=e._command;if(!l(e._command)){let o=e._batchTable.getUniformMapCallback()(e._uniformMap);n=e._command=new it({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:o,boundingVolume:e._boundingVolume,pass:be.TERRAIN_CLASSIFICATION,pickId:e._batchTable.getPickId()});let r=it.shallowClone(n,n.derivedCommands.tileset);r.renderState=e._rs3DTiles,r.pass=be.CESIUM_3D_TILE_CLASSIFICATION,n.derivedCommands.tileset=r}let i=e._classificationType;(i===zn.TERRAIN||i===zn.BOTH)&&t.commandList.push(n),(i===zn.CESIUM_3D_TILE||i===zn.BOTH)&&t.commandList.push(n.derivedCommands.tileset)}Gp.prototype.getPositions=function(e){return YA.getPolylinePositions(this,e)};Gp.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o{e.isDestroyed()||(e._error=t)})}Gp.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=u8e(this).then(e8e(this,t))),l(this._error)){let i=this._error;throw this._error=void 0,i}return}n8e(this,t),o8e(this,t),i8e(this);let n=e.passes;(n.render||n.pick)&&r8e(this,e)};Gp.prototype.isDestroyed=function(){return!1};Gp.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var yM=Gp;var w6=32767,f8e=new he,d8e=new m;function m8e(e,t,n,i,o){let r=e.length/3,s=e.subarray(0,r),a=e.subarray(r,2*r),c=e.subarray(2*r,3*r);jn.zigZagDeltaDecode(s,a,c);let u=new Float64Array(e.length);for(let f=0;f{this._resolveContent=r}),y8e(this,i,o)}Object.defineProperties(Jm.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return l(this._points)?this._points.pointsLength:0}},trianglesLength:{get:function(){let e=0;return l(this._polygons)&&(e+=this._polygons.trianglesLength),l(this._polylines)&&(e+=this._polylines.trianglesLength),e}},geometryByteLength:{get:function(){let e=0;return l(this._polygons)&&(e+=this._polygons.geometryByteLength),l(this._polylines)&&(e+=this._polylines.geometryByteLength),e}},texturesByteLength:{get:function(){return l(this._points)?this._points.texturesByteLength:0}},batchTableByteLength:{get:function(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Vector3DTileContent.readyPromise","Vector3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Vector3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function h8e(e){return function(t,n){l(e._polygons)&&e._polygons.updateCommands(t,n)}}function p8e(e,t){let n,i,o,r,s=y(e.POLYGONS_LENGTH,0),a=y(e.POLYLINES_LENGTH,0),c=y(e.POINTS_LENGTH,0);if(s>0&&l(e.POLYGON_BATCH_IDS)){let p=t.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,p,s)}if(a>0&&l(e.POLYLINE_BATCH_IDS)){let p=t.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,p,a)}if(c>0&&l(e.POINT_BATCH_IDS)){let p=t.byteOffset+e.POINT_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,p,c)}let u=l(n)||l(i)||l(o),f=s>0&&!l(n)||a>0&&!l(i)||c>0&&!l(o);if(u&&f)throw new de("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)){let p=0;if(!l(n)&&s>0)for(n=new Uint16Array(s),r=0;r0)for(i=new Uint16Array(a),r=0;r0)for(o=new Uint16Array(c),r=0;r0&&(C=Do(i,n,u),n+=u,f>0&&(T=new Uint8Array(t,n,f),T=new Uint8Array(T),n+=f));let E=y(A.POLYGONS_LENGTH,0),S=y(A.POLYLINES_LENGTH,0),v=y(A.POINTS_LENGTH,0),D=E+S+v,O=new _p(e,D,C,T,h8e(e));if(e._batchTable=O,D===0)return;let M=new Ed(A,x),L=M.getGlobalProperty("REGION");if(!l(L))throw new de("Feature table global property: REGION must be defined");let N=le.unpack(L),_=L[4],b=L[5],w=e._tile.computedTransform,I=M.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(I)?(I=m.unpack(I),B.multiplyByPoint(w,I,I)):(I=le.center(N),I.height=P.lerp(_,b,.5),I=oe.WGS84.cartographicToCartesian(I));let R=p8e(A,x);if(n+=(4-n%4)%4,E>0){M.featuresLength=E;let F=y(M.getPropertyArray("POLYGON_COUNTS",X.UNSIGNED_INT,1),M.getPropertyArray("POLYGON_COUNT",X.UNSIGNED_INT,1));if(!l(F))throw new de("Feature table property: POLYGON_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let k=y(M.getPropertyArray("POLYGON_INDEX_COUNTS",X.UNSIGNED_INT,1),M.getPropertyArray("POLYGON_INDEX_COUNT",X.UNSIGNED_INT,1));if(!l(k))throw new de("Feature table property: POLYGON_INDEX_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let V=F.reduce(function(W,K){return W+K*2},0),G=k.reduce(function(W,K){return W+K},0),U=new Uint32Array(t,n,G);n+=d;let q=new Uint16Array(t,n,V);n+=p;let Y,Q;l(A.POLYGON_MINIMUM_HEIGHTS)&&l(A.POLYGON_MAXIMUM_HEIGHTS)&&(Y=M.getPropertyArray("POLYGON_MINIMUM_HEIGHTS",X.FLOAT,1),Q=M.getPropertyArray("POLYGON_MAXIMUM_HEIGHTS",X.FLOAT,1)),e._polygons=new dM({positions:q,counts:F,indexCounts:k,indices:U,minimumHeight:_,maximumHeight:b,polygonMinimumHeights:Y,polygonMaximumHeights:Q,center:I,rectangle:N,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,batchIds:R.polygons,modelMatrix:w})}if(S>0){M.featuresLength=S;let F=y(M.getPropertyArray("POLYLINE_COUNTS",X.UNSIGNED_INT,1),M.getPropertyArray("POLYLINE_COUNT",X.UNSIGNED_INT,1));if(!l(F))throw new de("Feature table property: POLYLINE_COUNTS must be defined when POLYLINES_LENGTH is greater than 0");let k=M.getPropertyArray("POLYLINE_WIDTHS",X.UNSIGNED_SHORT,1);if(!l(k)){k=new Uint16Array(S);for(let Q=0;Q0){let F=new Uint16Array(t,n,v*3);n+=h,e._points=new fM({positions:F,batchIds:R.points,minimumHeight:_,maximumHeight:b,rectangle:N,batchTable:O})}}function v6(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._polygons)&&e._polygons.createFeatures(e,n),l(e._polylines)&&e._polylines.createFeatures(e,n),l(e._points)&&e._points.createFeatures(e,n),e._features=n}}Jm.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};Jm.prototype.getFeature=function(e){return l(this._features)||v6(this),this._features[e]};Jm.prototype.applyDebugSettings=function(e,t){l(this._polygons)&&this._polygons.applyDebugSettings(e,t),l(this._polylines)&&this._polylines.applyDebugSettings(e,t),l(this._points)&&this._points.applyDebugSettings(e,t)};Jm.prototype.applyStyle=function(e){l(this._features)||v6(this),l(this._polygons)&&this._polygons.applyStyle(e,this._features),l(this._polylines)&&this._polylines.applyStyle(e,this._features),l(this._points)&&this._points.applyStyle(e,this._features)};Jm.prototype.update=function(e,t){let n=!0;l(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(t),n=n&&this._polygons.ready),l(this._polylines)&&(this._polylines.update(t),n=n&&this._polylines.ready),l(this._points)&&(this._points.update(t),n=n&&this._points.ready),l(this._batchTable)&&n&&(l(this._features)||v6(this),this._batchTable.update(e,t),this._ready=!0,this._resolveContent(this))};Jm.prototype.getPolylinePositions=function(e){let t=this._polylines;if(l(t))return t.getPositions(e)};Jm.prototype.isDestroyed=function(){return!1};Jm.prototype.destroy=function(){return this._polygons=this._polygons&&this._polygons.destroy(),this._polylines=this._polylines&&this._polylines.destroy(),this._points=this._points&&this._points.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function A8e(e,t,n,i,o,r){let s=t.length,a=0;for(let c=0;c=0?i[r]:void 0}var KA=T8e;function qp(e){e=y(e,y.EMPTY_OBJECT);let t=e.tile,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(qp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});qp.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};qp.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};qp.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};qp.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};qp.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};qp.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};qp.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var TM=qp;function I6(e,t){let n=ti(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){I6._oneTimeWarning("findTileMetadata-missing-root-schema","Could not find a metadata schema for tile metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(l(n.class)){let o=i[n.class];return new TM({tile:n,class:o})}}I6._oneTimeWarning=Mt;var EM=I6;function E8e(e){let t=new Uint8Array(e),n=hd(t);if(n==="glTF"&&(n="glb"),ss.isBinaryFormat(n))return{contentType:n,binaryPayload:t};let i=b8e(t);if(l(i.root))return{contentType:ss.EXTERNAL_TILESET,jsonPayload:i};if(l(i.asset))return{contentType:ss.GLTF,jsonPayload:i};if(l(i.tileAvailability))return{contentType:ss.IMPLICIT_SUBTREE_JSON,jsonPayload:i};if(l(i.type))return{contentType:ss.GEOJSON,jsonPayload:i};if(l(i.voxelTable))return{contentType:ss.VOXEL_JSON,jsonPayload:i};throw new de("Invalid tile content.")}function b8e(e){let t;try{t=Do(e)}catch{throw new de("Invalid tile content.")}return t}var Zm=E8e;function Rd(e,t,n,i){this._tileset=e,this._tile=t,this._tilesetResource=n,this._contents=[],this._contentsCreated=!1;let o=l(i.contents)?i.contents:i.content;this._innerContentHeaders=o,this._requestsInFlight=0,this._cancelCount=0;let r=this._innerContentHeaders.length;this._arrayFetchPromises=new Array(r),this._requests=new Array(r),this._ready=!1,this._resolveContent=void 0,this._readyPromise=new Promise(s=>{this._resolveContent=s}),this._innerContentResources=new Array(r),this._serverKeys=new Array(r);for(let s=0;sD8e(e,r,s)),o=await Promise.all(i);return e._contentsCreated=!0,e._contents=o.filter(l),o}async function D8e(e,t,n){if(l(t))try{let i=Zm(t);if(i.contentType===ss.EXTERNAL_TILESET)throw new de("External tilesets are disallowed inside multiple contents");e._disableSkipLevelOfDetail=e._disableSkipLevelOfDetail||i.contentType===ss.GEOMETRY||i.contentType===ss.VECTOR;let o=e._tileset,r=e._innerContentResources[n],s=e._tile,a,c=qA[i.contentType];l(i.binaryPayload)?a=await Promise.resolve(c(o,s,r,i.binaryPayload.buffer,0)):a=await Promise.resolve(c(o,s,r,i.jsonPayload));let u=e._innerContentHeaders[n];if(s.hasImplicitContentMetadata){let d=s.implicitSubtree,p=s.implicitCoordinates;a.metadata=d.getContentMetadataView(p,n)}else s.hasImplicitContent||(a.metadata=XA(o,u));let f=KA(o,u);return l(f)&&(a.group=new mA({metadata:f})),a}catch(i){Zre(e,n,i)}}function Zre(e,t,n){let i=e._tileset,o=e._innerContentResources[t].url,r=l(n.message)?n.message:n.toString();i.tileFailed.numberOfListeners>0?i.tileFailed.raiseEvent({url:o,message:r}):(console.log(`A content failed to load: ${o}`),console.log(`Error: ${r}`))}Rd.prototype.cancelRequests=function(){for(let e=0;e0?qr.COUNTER_CLOCKWISE:qr.CLOCKWISE};Kg.triangulate=function(e,t){let n=H.packArray(e);return(0,sse.default)(n,t,2)};var ase=new m,cse=new m,lse=new m,ise=new m,ose=new m,rse=new m,Xp=new m,use=new H,fse=new H,dse=new H,mE=new H;Kg.computeSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,u=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a0;){let E=s.pop(),S=s.pop(),v=s.pop(),D=m.fromArray(u,v*3,ase),O=m.fromArray(u,S*3,cse),M=m.fromArray(u,E*3,lse),L,N,_;r&&(L=H.fromArray(f,v*2,use),N=H.fromArray(f,S*2,fse),_=H.fromArray(f,E*2,dse));let b=m.multiplyByScalar(m.normalize(D,ise),A,ise),w=m.multiplyByScalar(m.normalize(O,ose),A,ose),I=m.multiplyByScalar(m.normalize(M,rse),A,rse),R=m.magnitudeSquared(m.subtract(b,w,Xp)),F=m.magnitudeSquared(m.subtract(w,I,Xp)),k=m.magnitudeSquared(m.subtract(I,b,Xp)),V=Math.max(R,F,k),G,U,q;V>C?R===V?(G=`${Math.min(v,S)} ${Math.max(v,S)}`,a=h[G],l(a)||(U=m.add(D,O,Xp),m.multiplyByScalar(U,.5,U),u.push(U.x,U.y,U.z),a=u.length/3-1,h[G]=a,r&&(q=H.add(L,N,mE),H.multiplyByScalar(q,.5,q),f.push(q.x,q.y))),s.push(v,a,E),s.push(a,S,E)):F===V?(G=`${Math.min(S,E)} ${Math.max(S,E)}`,a=h[G],l(a)||(U=m.add(O,M,Xp),m.multiplyByScalar(U,.5,U),u.push(U.x,U.y,U.z),a=u.length/3-1,h[G]=a,r&&(q=H.add(N,_,mE),H.multiplyByScalar(q,.5,q),f.push(q.x,q.y))),s.push(S,a,v),s.push(a,E,v)):k===V&&(G=`${Math.min(E,v)} ${Math.max(E,v)}`,a=h[G],l(a)||(U=m.add(M,D,Xp),m.multiplyByScalar(U,.5,U),u.push(U.x,U.y,U.z),a=u.length/3-1,h[G]=a,r&&(q=H.add(_,L,mE),H.multiplyByScalar(q,.5,q),f.push(q.x,q.y))),s.push(E,a,S),s.push(a,v,S)):(g.push(v),g.push(S),g.push(E))}let T={attributes:{position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})},indices:g,primitiveType:Le.TRIANGLES};return r&&(T.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new ft(T)};var Y8e=new he,q8e=new he,X8e=new he,L6=new he;Kg.computeRhumbLineSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,u=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a0;){let v=s.pop(),D=s.pop(),O=s.pop(),M=m.fromArray(u,O*3,ase),L=m.fromArray(u,D*3,cse),N=m.fromArray(u,v*3,lse),_,b,w;r&&(_=H.fromArray(f,O*2,use),b=H.fromArray(f,D*2,fse),w=H.fromArray(f,v*2,dse));let I=e.cartesianToCartographic(M,Y8e),R=e.cartesianToCartographic(L,q8e),F=e.cartesianToCartographic(N,X8e);C.setEndPoints(I,R);let k=C.surfaceDistance;T.setEndPoints(R,F);let V=T.surfaceDistance;E.setEndPoints(F,I);let G=E.surfaceDistance,U=Math.max(k,V,G),q,Y,Q,W,K;U>x?k===U?(q=`${Math.min(O,D)} ${Math.max(O,D)}`,a=h[q],l(a)||(Y=C.interpolateUsingFraction(.5,L6),Q=(I.height+R.height)*.5,W=m.fromRadians(Y.longitude,Y.latitude,Q,e,Xp),u.push(W.x,W.y,W.z),a=u.length/3-1,h[q]=a,r&&(K=H.add(_,b,mE),H.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(O,a,v),s.push(a,D,v)):V===U?(q=`${Math.min(D,v)} ${Math.max(D,v)}`,a=h[q],l(a)||(Y=T.interpolateUsingFraction(.5,L6),Q=(R.height+F.height)*.5,W=m.fromRadians(Y.longitude,Y.latitude,Q,e,Xp),u.push(W.x,W.y,W.z),a=u.length/3-1,h[q]=a,r&&(K=H.add(b,w,mE),H.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(D,a,O),s.push(a,v,O)):G===U&&(q=`${Math.min(v,O)} ${Math.max(v,O)}`,a=h[q],l(a)||(Y=E.interpolateUsingFraction(.5,L6),Q=(F.height+I.height)*.5,W=m.fromRadians(Y.longitude,Y.latitude,Q,e,Xp),u.push(W.x,W.y,W.z),a=u.length/3-1,h[q]=a,r&&(K=H.add(w,_,mE),H.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(v,a,D),s.push(a,O,D)):(g.push(O),g.push(D),g.push(v))}let S={attributes:{position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})},indices:g,primitiveType:Le.TRIANGLES};return r&&(S.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new ft(S)};Kg.scaleToGeodeticHeight=function(e,t,n,i){n=y(n,oe.WGS84);let o=W8e,r=j8e;if(t=y(t,0),i=y(i,!0),l(e)){let s=e.length;for(let a=0;aa?g=P.TWO_PI-c+a:g=a-c;let A=Math.ceil(g/t)+1,x=Math.ceil(h/t)+1,C=g/(A-1),T=h/(x-1),E=le.northwest(e,r),S=le.center(e,Z8e);(n!==0||i!==0)&&(S.longitude=0;h--)as.computePosition(t,n,!1,g,h,A),d[p++]=A.x,d[p++]=A.y,d[p++]=A.z;for(h=0,g=i-2;g>0;g--)as.computePosition(t,n,!1,g,h,A),d[p++]=A.x,d[p++]=A.y,d[p++]=A.z;let x=d.length/3*2,C=Ue.createTypedArray(d.length/3,x),T=0;for(let S=0;S0){ff.longitude=(t.west+t.east)*.5,ff.latitude=u;let A=n.cartographicToCartesian(ff,_E.origin);m.clone(c,_E.direction);let x=un.fromPointNormal(e.southwestCornerCartesian,e.westNormal,Cse);qi.rayPlane(_E,x,e.southwestCornerCartesian),f=n.geodeticSurfaceNormal(A,fV)}else f=n.geodeticSurfaceNormalCartographic(le.southeast(t),fV);let d=m.cross(f,a,xse);m.normalize(d,e.southNormal);let p=t.north,g;if(p<0){ff.longitude=(t.west+t.east)*.5,ff.latitude=p;let A=n.cartographicToCartesian(ff,_E.origin);m.negate(c,_E.direction);let x=un.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,Cse);qi.rayPlane(_E,x,e.northeastCornerCartesian),g=n.geodeticSurfaceNormal(A,fV)}else g=n.geodeticSurfaceNormalCartographic(le.northwest(t),fV);let h=m.cross(a,g,xse);m.normalize(h,e.northNormal)}var l5e=new m,u5e=new m,f5e=new m(0,-1,0),d5e=new m(0,0,-1),Tse=new m;function m5e(e,t){let n=t.camera,i=n.positionWC,o=n.positionCartographic,r=0;if(!le.contains(e.rectangle,o)){let u=e.southwestCornerCartesian,f=e.northeastCornerCartesian,d=e.westNormal,p=e.southNormal,g=e.eastNormal,h=e.northNormal;t.mode!==ne.SCENE3D&&(u=t.mapProjection.project(le.southwest(e.rectangle),l5e),u.z=u.y,u.y=u.x,u.x=0,f=t.mapProjection.project(le.northeast(e.rectangle),u5e),f.z=f.y,f.y=f.x,f.x=0,d=f5e,g=m.UNIT_Y,p=d5e,h=m.UNIT_Z);let A=m.subtract(i,u,Tse),x=m.dot(A,d),C=m.dot(A,p),T=m.subtract(i,f,Tse),E=m.dot(T,g),S=m.dot(T,h);x>0?r+=x*x:E>0&&(r+=E*E),C>0?r+=C*C:S>0&&(r+=S*S)}let s,a,c;if(t.mode===ne.SCENE3D?(s=o.height,a=e.minimumHeight,c=e.maximumHeight):(s=i.x,a=0,c=0),s>c){let u=s-c;r+=u*u}else if(s10&&t*2>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,n};Jg.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};Jg.prototype.contains=function(e){return this._array.indexOf(e)!==-1};Jg.prototype.clear=function(){this._array.length=this._offset=this._length=0};Jg.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var Zg=Jg;var ir={};ir.computeHierarchyPackedLength=function(e,t){let n=0,i=[e];for(;i.length>0;){let o=i.pop();if(!l(o))continue;n+=2;let r=o.positions,s=o.holes;if(l(r)&&r.length>0&&(n+=r.length*t.packedLength),l(s)){let a=s.length;for(let c=0;c0;){let r=o.pop();if(!l(r))continue;let s=r.positions,a=r.holes;if(t[n++]=l(s)?s.length:0,t[n++]=l(a)?a.length:0,l(s)){let c=s.length;for(let u=0;u0?new Array(o):void 0;for(let a=0;a0?(n.push(0),i.push(this._planeVertices[0]),o=this._edgeNormals[0]):un.getPointDistance(this._boundingPlanes[1],t)>0&&(n.push(1),i.push(this._planeVertices[1]),o=this._edgeNormals[1]);let r,s;for(r=0;r<4;r++)s=2+r,un.getPointDistance(this._boundingPlanes[s],t)>0&&(n.push(s),i.push(this._planeVertices[s]),o=this._edgeNormals[s]);if(n.length===0)return 0;let a,c;if(n.length===1)return c=this._boundingPlanes[n[0]],a=K6(un.projectPointOntoPlane(c,t,X6),i[0],c,o),m.distance(a,t);if(n.length===2){if(n[0]===0){let p=[this._vertices[4*n[0]+(n[1]-2)],this._vertices[4*n[0]+(n[1]-2+1)%4]];return a=Rse(t,p[0],p[1]),m.distance(a,t)}let f=Number.MAX_VALUE,d;for(r=0;r<2;r++)c=this._boundingPlanes[n[r]],a=K6(un.projectPointOntoPlane(c,t,X6),i[r],c,this._edgeNormals[n[r]]),d=m.distanceSquared(a,t),d3)return a=K6(un.projectPointOntoPlane(this._boundingPlanes[1],t,X6),this._planeVertices[1],this._boundingPlanes[1],this._edgeNormals[1]),m.distance(a,t);let u=n[1]===2&&n[2]===5?0:1;return n[0]===0?m.distance(t,this._vertices[(n[1]-2+u)%4]):m.distance(t,this._vertices[4+(n[1]-2+u)%4])};var G5e=new m,W5e=new m;function Rse(e,t,n){let i=m.subtract(n,t,G5e),o=m.subtract(e,t,W5e),r=m.dot(i,o);if(r<=0)return t;let s=m.dot(i,i);return r>=s?n:(r=r/s,new m((1-r)*t.x+r*n.x,(1-r)*t.y+r*n.y,(1-r)*t.z+r*n.z))}var j5e=new un(m.UNIT_X,0);function K6(e,t,n,i){let o=Number.MAX_VALUE,r,s,a;for(let c=0;c0&&(h=!0,d+=u),s1||ti(n,"3DTILES_multiple_contents"),s=o&&!r?n.contents[0]:n.content;this._contentHeader=s,this.transform=l(n.transform)?B.unpack(n.transform):B.clone(B.IDENTITY);let a=l(i)?i.computedTransform:e.modelMatrix,c=B.multiply(a,this.transform,new B),u=l(i)?i._initialTransform:B.IDENTITY;this._initialTransform=B.multiply(u,this.transform,new B),this.computedTransform=c,this._boundingVolume=this.createBoundingVolume(n.boundingVolume,c),this._boundingVolume2D=void 0;let f;l(s)&&l(s.boundingVolume)&&(f=this.createBoundingVolume(s.boundingVolume,c)),this._contentBoundingVolume=f,this._contentBoundingVolume2D=void 0;let d;l(n.viewerRequestVolume)&&(d=this.createBoundingVolume(n.viewerRequestVolume,c)),this._viewerRequestVolume=d,this.geometricError=n.geometricError,this._geometricError=n.geometricError,l(this._geometricError)||(this._geometricError=l(i)?i._geometricError:e._geometricError,Xo._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead.")),this.updateGeometricErrorScale();let p;l(n.refine)?((n.refine==="replace"||n.refine==="add")&&Xo._deprecationWarning("lowercase-refine",`This tile uses a lowercase refine "${n.refine}". Instead use "${n.refine.toUpperCase()}".`),p=n.refine.toUpperCase()==="REPLACE"?Lo.REPLACE:Lo.ADD):l(i)?p=i.refine:p=Lo.REPLACE,this.refine=p,this.children=[],this.parent=i;let g,h=!1,A,x,C;if(t=we.createIfNeeded(t),r)A=Uo.UNLOADED,x=t.clone();else if(l(s)){let v=s.uri;l(s.url)&&(Xo._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),v=s.url),v===""?(Xo._deprecationWarning("contentUriEmpty","content.uri property is an empty string, which creates a circular dependency, making this tileset invalid. Omit the content property instead"),g=new fE(e,this),h=!0,A=Uo.READY):(A=Uo.UNLOADED,x=t.getDerivedResource({url:v}),C=La.getServerKey(x.getUrlComponent()))}else g=new fE(e,this),h=!0,A=Uo.READY;this._content=g,this._contentResource=x,this._contentState=A,this._expiredContent=void 0,this._serverKey=C,this.hasEmptyContent=h,this.hasTilesetContent=!1,this.hasImplicitContent=!1,this.hasImplicitContentMetadata=!1,this.hasMultipleContents=r,this.metadata=EM(e,n),this.cacheNode=void 0;let T=n.expire,E,S;l(T)&&(E=T.duration,l(T.date)&&(S=ee.fromIso8601(T.date))),this.expireDuration=E,this.expireDate=S,this.lastStyleTime=0,this._optimChildrenWithinParent=lf.NOT_COMPUTED,this.clippingPlanesDirty=!1,this.priorityDeferred=!1,this.implicitTileset=void 0,this.implicitCoordinates=void 0,this.implicitSubtree=void 0,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._screenSpaceErrorProgressiveResolution=0,this._visibilityPlaneMask=0,this._visible=!1,this._inRequestVolume=!1,this._finalResolution=!0,this._depth=0,this._stackLength=0,this._selectionDepth=0,this._updatedVisibilityFrame=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._clippingPlanesState=0,this._debugBoundingVolume=void 0,this._debugContentBoundingVolume=void 0,this._debugViewerRequestVolume=void 0,this._debugColor=z.fromRandom({alpha:1}),this._debugColorizeTiles=!1,this._priority=0,this._priorityHolder=this,this._priorityProgressiveResolution=!1,this._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1,this._priorityReverseScreenSpaceError=0,this._foveatedFactor=0,this._wasMinPriorityChild=!1,this._loadTimestamp=new ee,this._commandsLength=0,this._color=void 0,this._colorDirty=!1,this._request=void 0}Xo._deprecationWarning=$;Object.defineProperties(Xo.prototype,{tileset:{get:function(){return this._tileset}},content:{get:function(){return this._content}},boundingVolume:{get:function(){return this._boundingVolume}},contentBoundingVolume:{get:function(){return y(this._contentBoundingVolume,this._boundingVolume)}},boundingSphere:{get:function(){return this._boundingVolume.boundingSphere}},isVisible:{get:function(){return this._visible&&this._inRequestVolume}},extras:{get:function(){return this._header.extras}},color:{get:function(){return l(this._color)||(this._color=new z),z.clone(this._color)},set:function(e){this._color=z.clone(e,this._color),this._colorDirty=!0}},hasRenderableContent:{get:function(){return!this.hasEmptyContent&&!this.hasTilesetContent&&!this.hasImplicitContent}},contentAvailable:{get:function(){return this.contentReady&&this.hasRenderableContent||l(this._expiredContent)&&!this.contentFailed}},contentReady:{get:function(){return this._contentState===Uo.READY}},contentUnloaded:{get:function(){return this._contentState===Uo.UNLOADED}},hasUnloadedRenderableContent:{get:function(){return this.hasRenderableContent&&this.contentUnloaded}},contentExpired:{get:function(){return this._contentState===Uo.EXPIRED}},contentFailed:{get:function(){return this._contentState===Uo.FAILED}},commandsLength:{get:function(){return this._commandsLength}}});var ey=new m;function Q5e(e,t){let{tileset:n,boundingSphere:i}=e,{radius:o,center:r}=i,{camera:s}=t,a=m.multiplyByScalar(s.directionWC,e._centerZDepth,ey),c=m.add(s.positionWC,a,ey),u=m.subtract(c,r,ey);if(m.magnitude(u)>o){let S=m.normalize(u,ey),v=m.multiplyByScalar(S,o,ey),D=m.add(r,v,ey),O=m.subtract(D,s.positionWC,ey),M=m.normalize(O,ey);e._foveatedFactor=1-Math.abs(m.dot(s.directionWC,M))}else e._foveatedFactor=0;let p=e.refine===Lo.REPLACE,g=n.isSkippingLevelOfDetail;if(p&&!g||!n.foveatedScreenSpaceError||n.foveatedConeSize===1||e._priorityProgressiveResolution&&p&&g||n._pass===Po.PRELOAD_FLIGHT||n._pass===Po.PRELOAD)return!1;let h=1-Math.cos(s.frustum.fov*.5),A=n.foveatedConeSize*h;if(e._foveatedFactor<=A)return!1;let x=h-A,C=P.clamp((e._foveatedFactor-A)/x,0,1),T=n.foveatedInterpolationCallback(n.foveatedMinimumScreenSpaceErrorRelaxation,n.maximumScreenSpaceError,C),E=e._screenSpaceError===0&&l(e.parent)?e.parent._screenSpaceError*.5:e._screenSpaceError;return n.maximumScreenSpaceError-T<=E}var Vse=new ee;Xo.prototype.getScreenSpaceError=function(e,t,n){let i=this._tileset,o=y(n,1),r=l(this.parent)?this.parent.geometricError:i._scaledGeometricError,s=t?r:this.geometricError;if(s===0)return 0;let{camera:a,context:c}=e,u=a.frustum,f=c.drawingBufferWidth,d=c.drawingBufferHeight*o,p;if(e.mode===ne.SCENE2D||u instanceof tn){let g=u.offCenterFrustum;l(g)&&(u=g);let h=Math.max(u.top-u.bottom,u.right-u.left)/Math.max(f,d);p=s/h}else{let g=Math.max(this._distanceToCamera,P.EPSILON7),h=u.sseDenominator;if(p=s*d/(g*h),i.dynamicScreenSpaceError){let A=i._dynamicScreenSpaceErrorComputedDensity,x=i.dynamicScreenSpaceErrorFactor,C=P.fog(g,A)*x;p-=C}}return p/=e.pixelRatio,p};function $5e(e,t){if(e.progressiveResolutionHeightFraction<=0||e.progressiveResolutionHeightFraction>.5)return!1;let n=t._screenSpaceErrorProgressiveResolution>e._maximumScreenSpaceError;t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1;let i=t.parent,o=e._maximumScreenSpaceError,r=t._screenSpaceErrorProgressiveResolution<=o,s=l(i)&&i._screenSpaceErrorProgressiveResolution>o;return r&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,n=!0),n}function e6e(e,t){let n=t.parent,o=l(n)&&(!e.isSkippingLevelOfDetail||t._screenSpaceError===0||n.hasTilesetContent||n.hasImplicitContent)?n._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-o}Xo.prototype.updateVisibility=function(e){let{parent:t,tileset:n}=this;if(this._updatedVisibilityFrame===n._updatedVisibilityFrame)return;let i=l(t)?t.computedTransform:n.modelMatrix,o=l(t)?t._visibilityPlaneMask:Kr.MASK_INDETERMINATE;this.updateTransform(i),this._distanceToCamera=this.distanceToTile(e),this._centerZDepth=this.distanceToTileCenter(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._screenSpaceErrorProgressiveResolution=this.getScreenSpaceError(e,!1,n.progressiveResolutionHeightFraction),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==Kr.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=e6e(n,this),this._priorityProgressiveResolution=$5e(n,this),this.priorityDeferred=Q5e(this,e),this._updatedVisibilityFrame=n._updatedVisibilityFrame};Xo.prototype.updateExpiration=function(){if(l(this.expireDate)&&this.contentReady&&!this.hasEmptyContent&&!this.hasMultipleContents){let e=ee.now(Vse);ee.lessThan(this.expireDate,e)&&(this._contentState=Uo.EXPIRED,this._expiredContent=this._content)}};function t6e(e){if(!l(e.expireDuration))return;let t=ee.now(Vse);ee.addSeconds(t,e.expireDuration,t),l(e.expireDate)?ee.lessThan(e.expireDate,t)&&ee.clone(t,e.expireDate):e.expireDate=ee.clone(t)}function n6e(e){return function(){return e._priority}}Xo.prototype.requestContent=function(){if(!this.hasEmptyContent)return this.hasMultipleContents?i6e(this):r6e(this)};function i6e(e){let t=e._content,n=e._tileset;if(!l(t)){let o=ti(e._header,"3DTILES_multiple_contents")?e._header.extensions["3DTILES_multiple_contents"]:e._header;t=new bM(n,e,e._contentResource.clone(),o),e._content=t}let i=t.requestInnerContents();if(l(i))return e._contentState=Uo.LOADING,i.then(o=>{if(!e.isDestroyed()&&l(o))return e._contentState=Uo.PROCESSING,t}).catch(o=>{if(!e.isDestroyed())throw e._contentState=Uo.FAILED,o})}async function o6e(e,t,n,i,o){let r=e._contentState;e._contentState=Uo.LOADING,++t.statistics.numberOfPendingRequests;let s;try{s=await o}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;if(n.cancelled||n.state===ei.CANCELLED){e._contentState=r,++t.statistics.numberOfAttemptedRequests;return}throw e._contentState=Uo.FAILED,a}if(e.isDestroyed()){--t.statistics.numberOfPendingRequests;return}if(n.cancelled||n.state===ei.CANCELLED){e._contentState=r,--t.statistics.numberOfPendingRequests,++t.statistics.numberOfAttemptedRequests;return}try{let a=await s6e(e,s);return--t.statistics.numberOfPendingRequests,e.isDestroyed()?void 0:(i&&(e.expireDate=void 0),e._content=a,e._contentState=Uo.PROCESSING,a)}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;throw e._contentState=Uo.FAILED,a}}function r6e(e){let t=e._contentResource.clone(),n=e.contentExpired;n&&t.setQueryParameters({expired:e.expireDate.toString()});let i=new Ho({throttle:!0,throttleByServer:!0,type:Xr.TILES3D,priorityFunction:n6e(e),serverKey:e._serverKey});e._request=i,t.request=i;let o=e._tileset,r=t.fetchArrayBuffer();if(!l(r)){++o.statistics.numberOfAttemptedRequests;return}return o6e(e,o,i,n,r)}async function s6e(e,t){let n=Zm(t),i=e._tileset;i._disableSkipLevelOfDetail=i._disableSkipLevelOfDetail||n.contentType===ss.GEOMETRY||n.contentType===ss.VECTOR,(n.contentType===ss.IMPLICIT_SUBTREE||n.contentType===ss.IMPLICIT_SUBTREE_JSON)&&(e.hasImplicitContent=!0),n.contentType===ss.EXTERNAL_TILESET&&(e.hasTilesetContent=!0);let o,r=qA[n.contentType];if(e.isDestroyed())return;l(n.binaryPayload)?o=await Promise.resolve(r(i,e,e._contentResource,n.binaryPayload.buffer,0)):o=await Promise.resolve(r(i,e,e._contentResource,n.jsonPayload));let s=e._contentHeader;if(e.hasImplicitContentMetadata){let c=e.implicitSubtree,u=e.implicitCoordinates;o.metadata=c.getContentMetadataView(u,0)}else e.hasImplicitContent||(o.metadata=XA(i,s));let a=KA(i,s);return l(a)&&(o.group=new mA({metadata:a})),o}Xo.prototype.cancelRequests=function(){this.hasMultipleContents?this._content.cancelRequests():this._request.cancel()};Xo.prototype.unloadContent=function(){this.hasRenderableContent&&(this._content=this._content&&this._content.destroy(),this._contentState=Uo.UNLOADED,this.lastStyleTime=0,this.clippingPlanesDirty=this._clippingPlanesState===0,this._clippingPlanesState=0,this._debugColorizeTiles=!1,this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy())};var kse=new ae;function Q6(e,t){if(t.mode!==ne.SCENE3D&&!l(e._boundingVolume2D)){let n=e._boundingVolume.boundingSphere,i=ae.projectTo2D(n,t.mapProjection,kse);e._boundingVolume2D=new Qp(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._boundingVolume2D:e._boundingVolume}function a6e(e,t){if(t.mode!==ne.SCENE3D&&!l(e._contentBoundingVolume2D)){let n=e._contentBoundingVolume.boundingSphere,i=ae.projectTo2D(n,t.mapProjection,kse);e._contentBoundingVolume2D=new Qp(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._contentBoundingVolume2D:e._contentBoundingVolume}Xo.prototype.visibility=function(e,t){let n=e.cullingVolume,i=Q6(this,e),o=this._tileset,r=o.clippingPlanes;if(l(r)&&r.enabled){let s=r.computeIntersectionWithBoundingVolume(i,o.clippingPlanesOriginMatrix);if(this._isClipped=s!==$t.INSIDE,s===$t.OUTSIDE)return Kr.MASK_OUTSIDE}return n.computeVisibilityWithPlaneMask(i,t)};Xo.prototype.contentVisibility=function(e){if(!l(this._contentBoundingVolume))return $t.INSIDE;if(this._visibilityPlaneMask===Kr.MASK_INSIDE)return $t.INSIDE;let t=e.cullingVolume,n=a6e(this,e),i=this._tileset,o=i.clippingPlanes;if(l(o)&&o.enabled){let r=o.computeIntersectionWithBoundingVolume(n,i.clippingPlanesOriginMatrix);if(this._isClipped=r!==$t.INSIDE,r===$t.OUTSIDE)return $t.OUTSIDE}return t.computeVisibility(n)};Xo.prototype.distanceToTile=function(e){return Q6(this,e).distanceToCamera(e)};var c6e=new m;Xo.prototype.distanceToTileCenter=function(e){let n=Q6(this,e).boundingVolume,i=m.subtract(n.center,e.camera.positionWC,c6e);return m.dot(e.camera.directionWC,i)};Xo.prototype.insideViewerRequestVolume=function(e){let t=this._viewerRequestVolume;return!l(t)||t.distanceToCamera(e)===0};var zse=new Z,Hse=new m,l6e=new Z,Gse=new m,Wse=new le,u6e=new Mn,Z6=new B;function f6e(e,t,n){let i=m.fromElements(e[0],e[1],e[2],Gse),o=Z.fromArray(e,3,l6e);i=B.multiplyByPoint(t,i,i);let r=B.getMatrix3(t,zse);return o=Z.multiply(r,o,o),l(n)?(n.update(i,o),n):new hf(i,o)}function d6e(e,t,n,i){let o=le.unpack(e,0,Wse),r=e[4],s=e[5],a=Mn.fromRectangle(o,r,s,oe.WGS84,u6e),c=a.center,u=a.halfAxes;t=B.multiplyTransformation(t,B.inverseTransformation(n,Z6),Z6),c=B.multiplyByPoint(t,c,c);let f=B.getMatrix3(t,zse);return u=Z.multiply(f,u,u),l(i)&&i instanceof hf?(i.update(c,u),i):new hf(c,u)}function m6e(e,t,n,i){if(!B.equalsEpsilon(t,n,P.EPSILON8))return d6e(e,t,n,i);if(l(i))return i;let o=le.unpack(e,0,Wse);return new df({rectangle:o,minimumHeight:e[4],maximumHeight:e[5]})}function h6e(e,t,n){let i=m.fromElements(e[0],e[1],e[2],Gse),o=e[3];i=B.multiplyByPoint(t,i,i);let r=B.getScale(t,Hse),s=m.maximumComponent(r);return o*=s,l(n)?(n.update(i,o),n):new Qp(i,o)}Xo.prototype.createBoundingVolume=function(e,t,n){if(!l(e))throw new de("boundingVolume must be defined");if(ti(e,"3DTILES_bounding_volume_S2"))return new PM(e.extensions["3DTILES_bounding_volume_S2"]);let{box:i,region:o,sphere:r}=e;if(l(i))return f6e(i,t,n);if(l(o))return m6e(o,t,this._initialTransform,n);if(l(r))return h6e(r,t,n);throw new de("boundingVolume must contain a sphere, region, or box")};Xo.prototype.updateTransform=function(e){e=y(e,B.IDENTITY);let t=B.multiplyTransformation(e,this.transform,Z6);if(!!B.equals(t,this.computedTransform))return;B.clone(t,this.computedTransform);let i=this._header,o=this._contentHeader;this._boundingVolume=this.createBoundingVolume(i.boundingVolume,this.computedTransform,this._boundingVolume),l(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(o.boundingVolume,this.computedTransform,this._contentBoundingVolume)),l(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(i.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()};Xo.prototype.updateGeometricErrorScale=function(){let e=B.getScale(this.computedTransform,Hse),t=m.maximumComponent(e);if(this.geometricError=this._geometricError*t,!l(this.parent)){let n=this._tileset;n._scaledGeometricError=n._geometricError*t}};function p6e(e,t,n,i){if(!i.isRender)return;let o=l(e._contentHeader)&&l(e._contentHeader.boundingVolume),r=t.debugShowBoundingVolume||t.debugShowContentBoundingVolume&&!o;if(r){let c;e._finalResolution?e.hasRenderableContent?c=z.WHITE:c=z.DARKGRAY:c=z.YELLOW,l(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(c)),e._debugBoundingVolume.update(n);let u=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");u.color=Vt.toValue(c,u.color)}else!r&&l(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&o?(l(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(z.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&l(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&l(e._viewerRequestVolume)?(l(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(z.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&l(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());let s=t.debugColorizeTiles&&!e._debugColorizeTiles||l(t._heatmap.tilePropertyName),a=!t.debugColorizeTiles&&e._debugColorizeTiles;s?(t._heatmap.colorize(e,n),e._debugColorizeTiles=!0,e.color=e._debugColor):a&&(e._debugColorizeTiles=!1,e.color=z.WHITE),e._colorDirty&&(e._colorDirty=!1,e._content.applyDebugSettings(!0,e._color)),a&&t.makeStyleDirty()}function _6e(e,t,n){let i=e._expiredContent;if(!e.hasMultipleContents&&l(i)){if(!e.contentReady){try{i.update(t,n)}catch{}return}e._expiredContent.destroy(),e._expiredContent=void 0}if(l(e.content))try{e.content.update(t,n)}catch(o){throw e._contentState=Uo.FAILED,o}}function g6e(e,t){let n=t.clippingPlanes,i=0;l(n)&&e._isClipped&&n.enabled&&(i=n.clippingPlanesState),i!==e._clippingPlanesState&&(e._clippingPlanesState=i,e.clippingPlanesDirty=!0)}Xo.prototype.update=function(e,t,n){let{commandList:i}=t,o=i.length;g6e(this,e),p6e(this,e,t,n),_6e(this,e,t);let r=i.length;this._commandsLength=r-o;for(let s=o;so||n);){let a=s.item;s=s.next,this.unloadTile(e,a,t)}};rx.prototype.trim=function(){this._trimTiles=!0};var LM=rx;function _V(e){this.tilePropertyName=e,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE,this._previousMinimum=Number.MAX_VALUE,this._previousMaximum=-Number.MAX_VALUE,this._referenceMinimum={},this._referenceMaximum={}}function e9(e,t){let n;return t==="_loadTimestamp"?n=ee.toDate(e).getTime():n=e,n}_V.prototype.setReferenceMinimumMaximum=function(e,t,n){this._referenceMinimum[n]=e9(e,n),this._referenceMaximum[n]=e9(t,n)};function x6e(e,t){let n=e.tilePropertyName;if(l(n)){let i=e9(t[n],n);return l(i)?(e._maximum=Math.max(i,e._maximum),e._minimum=Math.min(i,e._minimum),i):(e.tilePropertyName=void 0,i)}}var $6=[new z(.1,.1,.1,1),new z(.153,.278,.878,1),new z(.827,.231,.49,1),new z(.827,.188,.22,1),new z(1,.592,.259,1),new z(1,.843,0,1)];_V.prototype.colorize=function(e,t){let n=this.tilePropertyName;if(!l(n)||!e.contentAvailable||e._selectedFrame!==t.frameNumber)return;let i=x6e(this,e),o=this._previousMinimum,r=this._previousMaximum;if(o===Number.MAX_VALUE||r===-Number.MAX_VALUE)return;let s=r-o+P.EPSILON7,c=P.clamp(i-o,0,s)/s,u=$6.length-1,f=c*u,d=Math.floor(f),p=Math.ceil(f),g=f-d,h=$6[d],A=$6[p],x=z.clone(z.WHITE);x.red=P.lerp(h.red,A.red,g),x.green=P.lerp(h.green,A.green,g),x.blue=P.lerp(h.blue,A.blue,g),e._debugColor=x};_V.prototype.resetMinimumMaximum=function(){let e=this.tilePropertyName;if(l(e)){let t=this._referenceMinimum[e],n=this._referenceMaximum[e],i=l(t)&&l(n);this._previousMinimum=i?t:this._minimum,this._previousMaximum=i?n:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}};var NM=_V;function bE(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfPendingRequests=0,this.numberOfTilesProcessing=0,this.numberOfTilesWithContentReady=0,this.numberOfTilesTotal=0,this.numberOfLoadedTilesTotal=0,this.numberOfFeaturesSelected=0,this.numberOfFeaturesLoaded=0,this.numberOfPointsSelected=0,this.numberOfPointsLoaded=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0,this.geometryByteLength=0,this.texturesByteLength=0,this.batchTableByteLength=0}bE.prototype.clear=function(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfFeaturesSelected=0,this.numberOfPointsSelected=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0};function gV(e,t,n,i){let o=t.innerContents,r=t.pointsLength,s=t.trianglesLength,a=t.featuresLength,c=t.geometryByteLength,u=t.texturesByteLength,f=t.batchTableByteLength;if(i?(e.numberOfFeaturesLoaded+=n?-a:a,e.numberOfPointsLoaded+=n?-r:r,e.geometryByteLength+=n?-c:c,e.texturesByteLength+=n?-u:u,e.batchTableByteLength+=n?-f:f):(e.numberOfFeaturesSelected+=n?-a:a,e.numberOfPointsSelected+=n?-r:r,e.numberOfTrianglesSelected+=n?-s:s),l(o)){let d=o.length;for(let p=0;p>1)&858993459,e=(e^e>>2)&252645135,e=(e^e>>4)&16711935,e=(e^e>>8)&65535,e}function n9(e){return e&=153391689,e=(e^e>>2)&51130563,e=(e^e>>4)&50393103,e=(e^e>>8)&4278190335,e=(e^e>>16)&1023,e}VM.encode2D=function(e,t){return(Xse(e)|Xse(t)<<1)>>>0};VM.decode2D=function(e,t){return l(t)||(t=new Array(2)),t[0]=Kse(e),t[1]=Kse(e>>1),t};VM.encode3D=function(e,t,n){return t9(e)|t9(t)<<1|t9(n)<<2};VM.decode3D=function(e,t){return l(t)||(t=new Array(3)),t[0]=n9(e),t[1]=n9(e>>1),t[2]=n9(e>>2),t};var iy=VM;function Vo(e){this.subdivisionScheme=e.subdivisionScheme,this.subtreeLevels=e.subtreeLevels,this.level=e.level,this.x=e.x,this.y=e.y,this.z=void 0,e.subdivisionScheme===Vr.OCTREE&&(this.z=e.z)}Object.defineProperties(Vo.prototype,{childIndex:{get:function(){let e=0;return e|=this.x&1,e|=(this.y&1)<<1,this.subdivisionScheme===Vr.OCTREE&&(e|=(this.z&1)<<2),e}},mortonIndex:{get:function(){return this.subdivisionScheme===Vr.OCTREE?iy.encode3D(this.x,this.y,this.z):iy.encode2D(this.x,this.y)}},tileIndex:{get:function(){let e=this.subdivisionScheme===Vr.OCTREE?((1<<3*this.level)-1)/7:((1<<2*this.level)-1)/3,t=this.mortonIndex;return e+t}}});Vo.prototype.getDescendantCoordinates=function(e){let t=this.level+e.level,n=(this.x<>t,i=e.y>>t,o=this.x===n,r=this.y===i;if(this.subdivisionScheme===Vr.OCTREE){let s=e.z>>t,a=this.z===s;return o&&r&&a}return o&&r};Vo.prototype.isEqual=function(e){return this.subdivisionScheme===e.subdivisionScheme&&this.subtreeLevels===e.subtreeLevels&&this.level===e.level&&this.x===e.x&&this.y===e.y&&(this.subdivisionScheme===Vr.OCTREE?this.z===e.z:!0)};Vo.prototype.isImplicitTilesetRoot=function(){return this.level===0};Vo.prototype.isSubtreeRoot=function(){return this.level%this.subtreeLevels===0};Vo.prototype.isBottomOfSubtree=function(){return this.level%this.subtreeLevels===this.subtreeLevels-1};Vo.prototype.getTemplateValues=function(){let e={level:this.level,x:this.x,y:this.y};return this.subdivisionScheme===Vr.OCTREE&&(e.z=this.z),e};var Jse=[0,0,0];Vo.fromMortonIndex=function(e,t,n,i){let o;return e===Vr.OCTREE?(o=iy.decode3D(i,Jse),new Vo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1],z:o[2]})):(o=iy.decode2D(i,Jse),new Vo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1]}))};Vo.fromTileIndex=function(e,t,n){let i,o,r;return e===Vr.OCTREE?(i=Math.floor(P.log2(7*n+1)/3),o=((1<<3*i)-1)/7,r=n-o):(i=Math.floor(P.log2(3*n+1)/2),o=((1<<2*i)-1)/3,r=n-o),Vo.fromMortonIndex(e,t,i,r)};var sx=Vo;function n_(){}n_.selectTiles=function(e,t){fe.throwInstantiationError()};n_.sortChildrenByDistanceToCamera=function(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera};n_.canTraverse=function(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:e._screenSpaceError>e.tileset._maximumScreenSpaceError};n_.selectTile=function(e,t){if(e.contentVisibility(t)===$t.OUTSIDE)return;let{content:n,tileset:i}=e;n.featurePropertiesDirty?(n.featurePropertiesDirty=!1,e.lastStyleTime=0,i._selectedTilesToStyle.push(e)):e._selectedFrame0;if((e.hasTilesetContent||e.hasImplicitContent)&&n){let r=e.children[0];Zse(r,t),e._visible=r._visible;return}if(S6e(e,t)){e._visible=!1;return}let i=e.refine===Lo.REPLACE,o=e._optimChildrenWithinParent===lf.USE_OPTIMIZATION;if(i&&o&&n&&!w6e(e,t)){++e.tileset._statistics.numberOfTilesCulledWithChildrenUnion,e._visible=!1;return}}function S6e(e,t){let{parent:n,tileset:i}=e;return!l(n)||n.hasTilesetContent||n.hasImplicitContent||n.refine!==Lo.ADD?!1:e.getScreenSpaceError(t,!0)<=i._maximumScreenSpaceError}function w6e(e,t){let n=!1,i=e.children;for(let o=0;o0;){kM.stackMaximumLength=Math.max(kM.stackMaximumLength,s.length);let a=s.pop(),c=a.refine===Lo.ADD,u=a.refine===Lo.REPLACE,f=D6e(a);f&&I6e(a,s,t),(c||u&&!f)&&(P6e(e,a),o(a,t),O6e(a,t),a.hasRenderableContent&&!a.contentAvailable&&(n=!1)),r(a,t)}return kM.stack.trim(kM.stackMaximumLength),n};function D6e(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:(e.hasEmptyContent,!0)}function I6e(e,t,n){let{children:i}=e;for(let o=0;o0;){HM.stackMaximumLength=Math.max(HM.stackMaximumLength,a.length);let c=a.pop(),u=c.parent,f=!l(u)||u._refines;c._refines=i(c)?M6e(c,a,t)&&f:!1;let d=!c._refines&&f;c.hasRenderableContent?c.refine===Lo.ADD?(i9(c,t),o(c,t)):c.refine===Lo.REPLACE&&(o(c,t),d&&i9(c,t)):(n._emptyTiles.push(c),o(c,t),d&&i9(c,t)),r(c,t),s(c,t)}}function B6e(e,t){let{canTraverse:n,updateTile:i,loadTile:o,touchTile:r}=ws,s=!0,a=GM.stack;for(a.push(e);a.length>0;){GM.stackMaximumLength=Math.max(GM.stackMaximumLength,a.length);let c=a.pop(),u=c.children,f=u.length,d=!c.hasRenderableContent&&n(c),p=!c.hasRenderableContent&&c.children.length===0;if(!d&&!c.contentAvailable&&!p&&(s=!1),i(c,t),c.isVisible||(o(c,t),r(c,t)),d)for(let g=0;g0;){YM.stackMaximumLength=Math.max(YM.stackMaximumLength,r.length);let a=r.pop().children;for(let c=0;cn._depth+e.skipLevels)}function V6e(e,t,n){let{tileset:i,children:o}=e,{updateTile:r,loadTile:s,touchTile:a}=ws;for(let u=0;ut:e._screenSpaceError>t:!0}function z6e(e,t){let{tileset:n}=e,i=n.immediatelyLoadDesiredLevelOfDetail?Number.MAX_VALUE:Math.max(n.baseScreenSpaceError,n.maximumScreenSpaceError),{canTraverse:o,loadTile:r,visitTile:s,touchTile:a}=ws,c=jM.stack;for(c.push(e);c.length>0;){jM.stackMaximumLength=Math.max(jM.stackMaximumLength,c.length);let u=c.pop();F6e(u,t);let f=u.parent,d=!l(f)||f._refines;u._refines=o(u)?V6e(u,c,t)&&d:!1;let p=!u._refines&&d;u.hasRenderableContent?u.refine===Lo.ADD?(yV(u,t),r(u,t)):u.refine===Lo.REPLACE&&(k6e(u,i)?(r(u,t),p&&yV(u,t)):p?(yV(u,t),r(u,t)):U6e(n,u)&&r(u,t)):(n._emptyTiles.push(u),r(u,t),p&&yV(u,t)),s(u,t),a(u,t)}}function H6e(e,t){let{selectTile:n,canTraverse:i}=ws,{stack:o,ancestorStack:r}=i_,s;for(o.push(e);o.length>0||r.length>0;){if(i_.stackMaximumLength=Math.max(i_.stackMaximumLength,o.length),i_.ancestorStackMaximumLength=Math.max(i_.ancestorStackMaximumLength,r.length),r.length>0){let u=r.peek();if(u._stackLength===o.length){r.pop(),u!==s&&(u._finalResolution=!1),n(u,t);continue}}let a=o.pop();if(!l(a))continue;let c=i(a);if(a._shouldSelect)if(a.refine===Lo.ADD)n(a,t);else{if(a._selectionDepth=r.length,a._selectionDepth>0&&(a.tileset.hasMixedContent=!0),s=a,!c){n(a,t);continue}r.push(a),a._stackLength=o.length}if(c){let u=a.children;for(let f=0;f(i._metadataExtension=s,r))}).then(function(r){if(i.isDestroyed())return;i._geometricError=r.geometricError,i._scaledGeometricError=r.geometricError,i._root=i.loadTileset(o,r);let s=l(r.asset.gltfUpAxis)?ao.fromName(r.asset.gltfUpAxis):ao.Y,a=y(e.modelUpAxis,s),c=y(e.modelForwardAxis,ao.X),u=r.asset;i._asset=u,i._properties=r.properties,i._extensionsUsed=r.extensionsUsed,i._extensions=r.extensions,i._modelUpAxis=a,i._modelForwardAxis=c,i._extras=r.extras;let f=u.extras;if(l(f)&&l(f.cesium)&&l(f.cesium.credits)){let h=f.cesium.credits,A=i._credits;l(A)||(A=[],i._credits=A);for(let x=0;xri._defaultMinTerrainHeight&&(i._initialClippingPlanesOriginMatrix=Rt.eastNorthUpToFixedFrame(p)),i._clippingPlanesOriginMatrix=B.clone(i._initialClippingPlanesOriginMatrix),i})}}Object.defineProperties(pr.prototype,{isCesium3DTileset:{get:function(){return!0}},asset:{get:function(){return this._asset}},extensions:{get:function(){return this._extensions}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){os.setOwner(e,this,"_clippingPlanes")}},properties:{get:function(){return this._properties}},ready:{get:function(){return $("Cesium3DTileset.ready","Cesium3DTileset.ready was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTileset.fromUrl instead."),l(this._root)}},readyPromise:{get:function(){return $("Cesium3DTileset.readyPromise","Cesium3DTileset.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTileset.fromUrl instead."),this._readyPromise}},tilesLoaded:{get:function(){return this._tilesLoaded}},resource:{get:function(){return this._resource}},basePath:{get:function(){return $("Cesium3DTileset.basePath","Cesium3DTileset.basePath has been deprecated. All tiles are relative to the url of the tileset JSON file that contains them. Use the url property instead."),this._basePath}},style:{get:function(){return this._styleEngine.style},set:function(e){this._styleEngine.style=e}},customShader:{get:function(){return this._customShader},set:function(e){this._customShader=e}},hasMixedContent:{get:function(){return this._hasMixedContent},set:function(e){this._hasMixedContent=e}},isSkippingLevelOfDetail:{get:function(){return this.skipLevelOfDetail&&!l(this._classificationType)&&!this._disableSkipLevelOfDetail&&!this._allTilesAdditive}},metadataExtension:{get:function(){return this._metadataExtension}},metadata:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.tileset}},schema:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.schema}},maximumScreenSpaceError:{get:function(){return this._maximumScreenSpaceError},set:function(e){this._maximumScreenSpaceError=e}},maximumMemoryUsage:{get:function(){return this._maximumMemoryUsage},set:function(e){this._maximumMemoryUsage=e}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){this._pointCloudShading=e}},root:{get:function(){return this._root}},boundingSphere:{get:function(){return this._root.updateTransform(this._modelMatrix),this._root.boundingSphere}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=B.clone(e,this._modelMatrix)}},timeSinceLoad:{get:function(){return this._timeSinceLoad}},totalMemoryUsageInBytes:{get:function(){let e=this._statistics;return e.texturesByteLength+e.geometryByteLength+e.batchTableByteLength}},clippingPlanesOriginMatrix:{get:function(){return l(this._clippingPlanesOriginMatrix)?(this._clippingPlanesOriginMatrixDirty&&(B.multiply(this.root.computedTransform,this._initialClippingPlanesOriginMatrix,this._clippingPlanesOriginMatrix),this._clippingPlanesOriginMatrixDirty=!1),this._clippingPlanesOriginMatrix):B.IDENTITY}},styleEngine:{get:function(){return this._styleEngine}},statistics:{get:function(){return this._statistics}},classificationType:{get:function(){return this._classificationType}},ellipsoid:{get:function(){return this._ellipsoid}},foveatedConeSize:{get:function(){return this._foveatedConeSize},set:function(e){this._foveatedConeSize=e}},foveatedMinimumScreenSpaceErrorRelaxation:{get:function(){return this._foveatedMinimumScreenSpaceErrorRelaxation},set:function(e){this._foveatedMinimumScreenSpaceErrorRelaxation=e}},extras:{get:function(){return this._extras}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1)}},vectorClassificationOnly:{get:function(){return this._vectorClassificationOnly}},vectorKeepDecodedPositions:{get:function(){return this._vectorKeepDecodedPositions}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),this._instanceFeatureIdLabel=e}}});pr.fromIonAssetId=async function(e,t){let n=await qs.fromAssetId(e);return pr.fromUrl(n,t)};pr.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e),i;n.extension==="json"?i=n.getBaseUri(!0):n.isDataUri&&(i="");let o=await pr.loadJson(n),r=await oae(n,o),s=new pr(t);s._resource=n,s._url=n.url,s._basePath=i,s._metadataExtension=r,s._geometricError=o.geometricError,s._scaledGeometricError=o.geometricError;let a=o.asset;s._asset=a,s._extras=o.extras;let c=n.credits;l(c)||(c=[]);let u=a.extras;if(l(u)&&l(u.cesium)&&l(u.cesium.credits)){let x=u.cesium.credits;for(let C=0;Cri._defaultMinTerrainHeight&&(s._initialClippingPlanesOriginMatrix=Rt.eastNorthUpToFixedFrame(h)),s._clippingPlanesOriginMatrix=B.clone(s._initialClippingPlanesOriginMatrix),s._readyPromise=Promise.resolve(s),s._ready=!0,s};pr.loadJson=function(e){return we.createIfNeeded(e).fetchJson()};pr.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()};pr.prototype.loadTileset=function(e,t,n){let i=t.asset;if(!l(i))throw new de("Tileset must have an asset property.");if(i.version!=="0.0"&&i.version!=="1.0"&&i.version!=="1.1")throw new de("The tileset must be 3D Tiles version 0.0, 1.0, or 1.1");l(t.extensionsRequired)&&pr.checkSupportedExtensions(t.extensionsRequired);let o=this._statistics,r=i.tilesetVersion;l(r)&&(this._basePath+=`?v=${r}`,e=e.clone(),e.setQueryParameters({v:r}));let s=tae(this,e,t.root,n);l(n)&&(n.children.push(s),s._depth=n._depth+1);let a=[];for(a.push(s);a.length>0;){let c=a.pop();++o.numberOfTilesTotal,this._allTilesAdditive=this._allTilesAdditive&&c.refine===Lo.ADD;let u=c._header.children;if(l(u))for(let f=0;fx.minimumRadius){let E=he.fromCartesian(T,x,G6e);n=m.normalize(a.positionWC,nae),i=a.directionWC,o=a.positionCartographic.height,r=0,s=E.height*2}else{let E=B.multiplyByPoint(A,a.positionWC,Y6e);if(n=m.UNIT_Z,i=B.multiplyByPointAsVector(A,a.directionWC,q6e),i=m.normalize(i,i),o=E.z,u instanceof hf){let S=c._header.boundingVolume.box[11];r=T.z-S,s=T.z+S}else if(u instanceof Qp){let S=C.radius;r=T.z-S,s=T.z+S}}}let f=e.dynamicScreenSpaceErrorHeightFalloff,d=r+(s-r)*f,p=s,g=P.clamp((o-d)/(p-d),0,1),h=1-Math.abs(m.dot(i,n));h=h*(1-g),e._dynamicScreenSpaceErrorComputedDensity=e.dynamicScreenSpaceErrorDensity*h}function K6e(e,t){if(t.hasEmptyContent)return;let{statistics:n}=e,i=t.contentExpired,o=t.requestContent();l(o)&&(o.then(r=>{!l(r)||t.isDestroyed()||e.isDestroyed()||(e._processingQueue.push(t),++n.numberOfTilesProcessing)}).catch(r=>{rae(r,e,t)}),i&&(t.hasTilesetContent||t.hasImplicitContent?o9e(e,t):(n.decrementLoadCounts(t.content),--n.numberOfTilesWithContentReady)),e._requestedTilesInFlight.push(t))}function J6e(e,t){return e._priority-t._priority}pr.prototype.postPassesUpdate=function(e){l(this._root)&&(Z6e(this,e),s9e(this,e),this._cache.unloadTiles(this,aae),this._styleApplied&&this._styleEngine.resetDirty(),this._styleApplied=!1)};pr.prototype.prePassesUpdate=function(e){if(!l(this._root))return;e9e(this,e);let t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,l(t)&&t.enabled&&t.update(e),l(this._loadTimestamp)||(this._loadTimestamp=ee.clone(e.time)),this._timeSinceLoad=Math.max(ee.secondsDifference(e.time,this._loadTimestamp)*1e3,0),this.dynamicScreenSpaceError&&X6e(this,e),e.newFrame&&this._cache.reset()};function Z6e(e,t){let n=e._requestedTilesInFlight,i=0;for(let o=0;o=1;if(r._contentState!==Uo.LOADING){++i;continue}else if(s){r.cancelRequests(),++i;continue}i>0&&(n[o-i]=r)}n.length-=i}function Q6e(e){let t=e._requestedTiles;t.sort(J6e);for(let n=0;n0?t.tileFailed.raiseEvent({url:i,message:o}):(console.log(`A 3D tile failed to load: ${i}`),console.log(`Error: ${o}`))}function $6e(e){let t=e._processingQueue,n=0;for(let i=0;i0&&(t[i-n]=o)}t.length-=n}function e9e(e,t){$6e(e);let n=e._processingQueue,i=e._statistics,o;for(let r=0;r0&&(i+=` +Points: ${e.content.pointsLength}`,o++),e.content.trianglesLength>0&&(i+=` +Triangles: ${e.content.trianglesLength}`,o++),i+=` +Features: ${e.content.featuresLength}`,o++),t.debugShowMemoryUsage&&(i+=` +Texture Memory: ${iae(e.content.texturesByteLength)}`,i+=` +Geometry Memory: ${iae(e.content.geometryByteLength)}`,o+=2),t.debugShowUrl)if(e.hasMultipleContents){i+=` +Urls:`;let s=e.content.innerContentUrls;for(let a=0;a0;e._backfaceCommands.length=0,a&&(l(e._stencilClearCommand)||(e._stencilClearCommand=new ii({stencil:0,pass:be.CESIUM_3D_TILE,renderState:ze.fromCache({stencilMask:Ft.SKIP_LOD_MASK})})),i.push(e._stencilClearCommand));let{statistics:c,tileVisible:u}=e,f=n.isRender,d=i.length;for(let h=0;h=0;--x)i[d+A+x]=i[d+x];for(let x=0;x0&&e._pointCloudEyeDomeLighting.update(t,r,e.pointCloudShading,e.boundingSphere),e.debugShowGeometricError||e.debugShowRenderingStatistics||e.debugShowMemoryUsage||e.debugShowUrl?(l(e._tileDebugLabels)||(e._tileDebugLabels=new Xm),n9e(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}var sae=[];function o9e(e,t){let n=t,i=sae;for(i.push(t);i.length>0;){t=i.pop();let o=t.children;for(let r=0;r-1:!1};pr.prototype.isDestroyed=function(){return!1};pr.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),l(this._root)){let e=sae;for(e.push(this._root);e.length>0;){let t=e.pop();t.destroy();let n=t.children;for(let i=0;i-1;i--)s9(this,e[i],t,n);return ue(this)};oy.prototype.getBoundingSphere=function(e,t){let n=this._tilesetHash[e.id];if(!l(n)||n.loadFail)return ut.FAILED;let i=n.tilesetPrimitive;return l(i)?i.show?(ae.clone(i.boundingSphere,t),ut.DONE):ut.FAILED:ut.PENDING};oy.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._tilesetHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._tileset)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._tileset)?s.set(r.id,r):(s9(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],s9(this,r,a,c),s.remove(r.id)};function s9(e,t,n,i){let o=n[t.id];l(o)&&(l(o.tilesetPrimitive)&&i.removeAndDestroy(o.tilesetPrimitive),delete n[t.id])}async function f9e(e,t,n,i){t[n.id]={url:e.url,loadFail:!1};try{let o=await Ca.fromUrl(e);if(o.id=n,i.add(o),!l(t[n.id]))return;t[n.id].tilesetPrimitive=o}catch(o){console.error(o),t[n.id].loadFail=!0}}var XM=oy;var d9e=z.WHITE,m9e=z.BLACK,h9e=new H(2,2);function SE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.repeat=e.repeat}Object.defineProperties(SE.prototype,{isConstant:{get:function(){return j.isConstant(this._evenColor)&&j.isConstant(this._oddColor)&&j.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:ce("evenColor"),oddColor:ce("oddColor"),repeat:ce("repeat")});SE.prototype.getType=function(e){return"Checkerboard"};SE.prototype.getValue=function(e,t){return l(t)||(t={}),t.lightColor=j.getValueOrClonedDefault(this._evenColor,e,d9e,t.lightColor),t.darkColor=j.getValueOrClonedDefault(this._oddColor,e,m9e,t.darkColor),t.repeat=j.getValueOrDefault(this._repeat,e,h9e),t};SE.prototype.equals=function(e){return this===e||e instanceof SE&&j.equals(this._evenColor,e._evenColor)&&j.equals(this._oddColor,e._oddColor)&&j.equals(this._repeat,e._repeat)};var wE=SE;var cae={id:void 0};function KM(e){if(e._firing){e._refire=!0;return}if(e._suspendCount===0){let t=e._addedEntities,n=e._removedEntities,i=e._changedEntities;if(i.length!==0||t.length!==0||n.length!==0){e._firing=!0;do{e._refire=!1;let o=t.values.slice(0),r=n.values.slice(0),s=i.values.slice(0);t.removeAll(),n.removeAll(),i.removeAll(),e._collectionChanged.raiseEvent(e,o,r,s)}while(e._refire);e._firing=!1}}}function Qa(e){this._owner=e,this._entities=new Et,this._addedEntities=new Et,this._removedEntities=new Et,this._changedEntities=new Et,this._suspendCount=0,this._collectionChanged=new ge,this._id=Gn(),this._show=!0,this._firing=!1,this._refire=!1}Qa.prototype.suspendEvents=function(){this._suspendCount++};Qa.prototype.resumeEvents=function(){this._suspendCount--,KM(this)};Object.defineProperties(Qa.prototype,{collectionChanged:{get:function(){return this._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._entities.values}},show:{get:function(){return this._show},set:function(e){if(e===this._show)return;this.suspendEvents();let t,n=[],i=this._entities.values,o=i.length;for(t=0;t-1;c--)s=a[c],uae(e,p,g,s);for(r=n-1;r>=0;r--)for(u=t[r],u.collectionChanged.addEventListener(br.prototype._onCollectionChanged,e),a=u.values,g=u.id,c=a.length-1;c>-1;c--){s=a[c],lae(e,p,g,s);let A=d.getById(s.id);l(A)||(A=f.getById(s.id),l(A)?a9(A):(xV.id=s.id,A=new Yo(xV)),d.add(A)),A.merge(s)}e._collectionsCopy=t.slice(0),f.suspendEvents(),f.removeAll();let h=d.values;for(r=0;r=0;a--)c=i[a].getById(A),l(c)&&(l(u)||(u=r.getById(A),a9(u)),u.merge(c));l(u)||r.removeById(A),u=void 0}let g=t.length;for(s=0;s=0;a--)c=i[a].getById(A),l(c)&&(l(u)||(u=r.getById(A),l(u)?a9(u):(xV.id=A,u=new Yo(xV),r.add(u))),u.merge(c));u=void 0}r.resumeEvents()};br.prototype._onDefinitionChanged=function(e,t,n,i){let o=this._collections,r=this._composite,s=o.length,a=e.id,c=r.getById(a),u=c[t],f=!l(u),d=!0;for(let p=s-1;p>=0;p--){let g=o[p].getById(e.id);if(l(g)){let h=g[t];if(l(h)){if(d)if(d=!1,l(h.merge)&&l(h.clone))u=h.clone(u);else{u=h;break}u.merge(h)}}}f&&c.propertyNames.indexOf(t)===-1&&c.addProperty(t),c[t]=u};var c9=br;function l9(){this._removalFunctions=[]}l9.prototype.add=function(e,t,n){let i=e.addEventListener(t,n);this._removalFunctions.push(i);let o=this;return function(){i();let r=o._removalFunctions;r.splice(r.indexOf(i),1)}};l9.prototype.removeAll=function(){let e=this._removalFunctions;for(let t=0,n=e.length;t0&&(this._intervals.length=0,this._changedEvent.raiseEvent(this))};wr.prototype.findIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t]:void 0};wr.prototype.findDataForIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t].data:void 0};wr.prototype.contains=function(e){return this.indexOf(e)>=0};var u9=new Tn;wr.prototype.indexOf=function(e){let t=this._intervals;u9.start=e,u9.stop=e;let n=wo(t,u9,d9);return n>=0?t[n].isStartIncluded?n:n>0&&t[n-1].stop.equals(e)&&t[n-1].isStopIncluded?n-1:~n:(n=~n,n>0&&n-10&&e.isStartIncluded&&n[i-1].isStartIncluded&&n[i-1].start.equals(e.start)?--i:i0&&(o=ee.compare(n[i-1].stop,e.start),(o>0||o===0&&(n[i-1].isStopIncluded||e.isStartIncluded))&&((l(t)?t(n[i-1].data,e.data):n[i-1].data===e.data)?(ee.greaterThan(e.stop,n[i-1].stop)?e=new Tn({start:n[i-1].start,stop:e.stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:e.isStopIncluded,data:e.data}):e=new Tn({start:n[i-1].start,stop:n[i-1].stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:n[i-1].isStopIncluded||e.stop.equals(n[i-1].stop)&&e.isStopIncluded,data:e.data}),n.splice(i-1,1),--i):(o=ee.compare(n[i-1].stop,e.stop),(o>0||o===0&&n[i-1].isStopIncluded&&!e.isStopIncluded)&&n.splice(i,0,new Tn({start:e.stop,stop:n[i-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i-1].isStopIncluded,data:n[i-1].data})),n[i-1]=new Tn({start:n[i-1].start,stop:e.start,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:n[i-1].data}))));i0||o===0&&(e.isStopIncluded||n[i].isStartIncluded));)if(l(t)?t(n[i].data,e.data):n[i].data===e.data)e=new Tn({start:e.start,stop:ee.greaterThan(n[i].stop,e.stop)?n[i].stop:e.stop,isStartIncluded:e.isStartIncluded,isStopIncluded:ee.greaterThan(n[i].stop,e.stop)?n[i].isStopIncluded:e.isStopIncluded,data:e.data}),n.splice(i,1);else if(n[i]=new Tn({start:e.stop,stop:n[i].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i].isStopIncluded,data:n[i].data}),n[i].isEmpty)n.splice(i,1);else break;n.splice(i,0,e),this._changedEvent.raiseEvent(this)};wr.prototype.removeInterval=function(e){if(e.isEmpty)return!1;let t=this._intervals,n=wo(t,e,d9);n<0&&(n=~n);let i=!1;for(n>0&&(ee.greaterThan(t[n-1].stop,e.start)||t[n-1].stop.equals(e.start)&&t[n-1].isStopIncluded&&e.isStartIncluded)&&(i=!0,(ee.greaterThan(t[n-1].stop,e.stop)||t[n-1].isStopIncluded&&!e.isStopIncluded&&t[n-1].stop.equals(e.stop))&&t.splice(n,0,new Tn({start:e.stop,stop:t[n-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n-1].isStopIncluded,data:t[n-1].data})),t[n-1]=new Tn({start:t[n-1].start,stop:e.start,isStartIncluded:t[n-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:t[n-1].data})),n=1e3&&(o+=Math.floor(i/1e3),i=i%1e3),o>=60&&(r+=Math.floor(o/60),o=o%60),r>=60&&(s+=Math.floor(r/60),r=r%60),s>=24&&(a+=Math.floor(s/24),s=s%24),JM[2]=Yh(u)?29:28;a>JM[c]||c>=13;)a>JM[c]&&(a-=JM[c],++c),c>=13&&(--c,u+=Math.floor(c/12),c=c%12,++c),JM[2]=Yh(u)?29:28;return $a.millisecond=i,$a.second=o,$a.minute=r,$a.hour=s,$a.day=a,$a.month=c,$a.year=u,ee.fromGregorianDate($a,n)}var p9e=new ee,_9e=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/;function dae(e,t){if(!l(e)||e.length===0)return!1;if(t.year=0,t.month=0,t.day=0,t.hour=0,t.minute=0,t.second=0,t.millisecond=0,e[0]==="P"){let n=e.match(_9e);if(!l(n))return!1;if(l(n[1])&&(t.year=Number(n[1].replace(",","."))),l(n[2])&&(t.month=Number(n[2].replace(",","."))),l(n[3])&&(t.day=Number(n[3].replace(",","."))*7),l(n[4])&&(t.day+=Number(n[4].replace(",","."))),l(n[5])&&(t.hour=Number(n[5].replace(",","."))),l(n[6])&&(t.minute=Number(n[6].replace(",","."))),l(n[7])){let i=Number(n[7].replace(",","."));t.second=Math.floor(i),t.millisecond=i%1*1e3}}else e[e.length-1]!=="Z"&&(e+="Z"),ee.toGregorianDate(ee.fromIso8601(e,p9e),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}var ZM=new jh;wr.fromIso8601=function(e,t){let n=e.iso8601.split("/"),i=ee.fromIso8601(n[0]),o=ee.fromIso8601(n[1]),r=[];if(!dae(n[2],ZM))r.push(i,o);else{let s=ee.clone(i);for(r.push(s);ee.compare(s,o)<0;)s=f9(s,ZM),ee.compare(o,s)<=0&&ee.clone(o,s),r.push(s)}return wr.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};wr.fromIso8601DateArray=function(e,t){return wr.fromJulianDateArray({julianDates:e.iso8601Dates.map(function(n){return ee.fromIso8601(n)}),isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};wr.fromIso8601DurationArray=function(e,t){let n=e.epoch,i=e.iso8601Durations,o=y(e.relativeToPrevious,!1),r=[],s,a,c=i.length;for(let u=0;u=0?-a:a}var P9e=new m(-1,0,0),cx=new B,O9e=new B,p9=new Z,M9e=Z.IDENTITY.clone(),R9e=new m,B9e=new re,mae=new m;function o_(e,t,n,i,o,r,s,a){let c=R9e,u=B9e;cx=Rt.eastNorthUpToFixedFrame(e,o,cx),c=B.multiplyByPointAsVector(cx,P9e,c),c=m.normalize(c,c);let f=I9e(c,t,e,o);p9=Z.fromRotationZ(f,p9),mae.z=r,cx=B.multiplyTransformation(cx,B.fromRotationTranslation(p9,mae,O9e),cx);let d=M9e;d[0]=s;for(let p=0;p0){let A=u?2:1;for(let x=0;x=0};var F9e=new m,U9e=new m;QM.computePositions=function(e,t,n,i,o){let r=i._ellipsoid,s=D9e(e,r),a=i._granularity,c=i._cornerType,u=o?N9e(t,n):hae(t,n),f=o?hae(t,n):void 0,d=n.height/2,p=n.width/2,g=e.length,h=[],A=o?[]:void 0,x=A9e,C=x9e,T=C9e,E=T9e,S=E9e,v=b9e,D=S9e,O=w9e,M=v9e,L=e[0],N=e[1];E=r.geodeticSurfaceNormal(L,E),x=m.subtract(N,L,x),x=m.normalize(x,x),O=m.cross(E,x,O),O=m.normalize(O,O);let _=s[0],b=s[1];o&&(A=o_(L,O,f,A,r,_+d,1,1)),M=m.clone(L,M),L=N,C=m.negate(x,C);let w,I;for(let k=1;kSe;p--)me=P.PI_OVER_TWO-p*Ae,J[se++]=1-_e*(1+Math.cos(me)),J[se++]=.5*(1+Math.sin(me));for(p=Se;p>0;p--)me=P.PI_OVER_TWO-Ae*p,J[se++]=1-xe*(1+Math.cos(me)),J[se++]=.5*(1+Math.sin(me));for(p=f-x;p>0;p--)J[se++]=p*xe,J[se++]=1;for(p=1;p0;p--)J[se++]=(p-1)*xe,J[se++]=1}c.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:J})}return t.normal&&(c.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.normals})),t.tangent&&(c.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.tangents})),t.bitangent&&(c.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.bitangents})),{attributes:c,indices:V}}function Z9e(e,t){if(!t.normal&&!t.tangent&&!t.bitangent&&!t.st)return e;let n=e.position.values,i,o;(t.normal||t.bitangent)&&(i=e.normal.values,o=e.bitangent.values);let r=e.position.values.length/18,s=r*3,a=r*2,c=s*2,u;if(t.normal||t.bitangent||t.tangent){let f=t.normal?new Float32Array(s*6):void 0,d=t.tangent?new Float32Array(s*6):void 0,p=t.bitangent?new Float32Array(s*6):void 0,g=Iae,h=Pae,A=wV,x=vV,C=J9e,T=Oae,E=c;for(u=0;u-t?(o=oWe,o.x=this._cameraPosition.x/(n.radii.x+t),o.y=this._cameraPosition.y/(n.radii.y+t),o.z=this._cameraPosition.z/(n.radii.z+t),i=o.x*o.x+o.y*o.y+o.z*o.z-1):(o=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),C9(e,o,i)};$m.prototype.computeHorizonCullingPoint=function(e,t,n){return Xae(this._ellipsoid,e,t,n)};var Yae=oe.clone(oe.UNIT_SPHERE);$m.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,n,i){let o=qae(this._ellipsoid,n,Yae);return Xae(o,e,t,i)};$m.prototype.computeHorizonCullingPointFromVertices=function(e,t,n,i,o){return Kae(this._ellipsoid,e,t,n,i,o)};$m.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,n,i,o,r){let s=qae(this._ellipsoid,o,Yae);return Kae(s,e,t,n,i,r)};var rWe=[];$m.prototype.computeHorizonCullingPointFromRectangle=function(e,t,n){let i=le.subsample(e,t,0,rWe),o=ae.fromPoints(i);if(!(m.magnitude(o.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(o.center,i,n)};var sWe=new m;function qae(e,t,n){if(l(t)&&t<0&&e.minimumRadius>-t){let i=m.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,sWe);e=oe.fromCartesian3(i,n)}return e}function Xae(e,t,n,i){l(i)||(i=new m);let o=Qae(e,t),r=0;for(let s=0,a=n.length;s0:s>o&&s*s/m.magnitudeSquared(r)>o)}var aWe=new m,cWe=new m;function Jae(e,t,n){let i=e.transformPositionToScaledSpace(t,aWe),o=m.magnitudeSquared(i),r=Math.sqrt(o),s=m.divideByScalar(i,r,cWe);o=Math.max(1,o),r=Math.max(1,r);let a=m.dot(s,n),c=m.magnitude(m.cross(s,n,s)),u=1/r,f=Math.sqrt(o-1)*u;return 1/(a*u-c*f)}function Zae(e,t,n){if(!(t<=0||t===1/0||t!==t))return m.multiplyByScalar(e,t,n)}var x9=new m;function Qae(e,t){return m.equals(t,m.ZERO)?t:(e.transformPositionToScaledSpace(t,x9),m.normalize(x9,x9))}var a_=$m;function Ir(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.scaleByDistance,o=e.distanceDisplayCondition;l(n)&&(n=Lt.clone(n)),l(i)&&(i=Lt.clone(i)),l(o)&&(o=Dt.clone(o)),this._show=y(e.show,!0),this._position=m.clone(y(e.position,m.ZERO)),this._actualPosition=m.clone(this._position),this._color=z.clone(y(e.color,z.WHITE)),this._outlineColor=z.clone(y(e.outlineColor,z.TRANSPARENT)),this._outlineWidth=y(e.outlineWidth,0),this._pixelSize=y(e.pixelSize,10),this._scaleByDistance=i,this._translucencyByDistance=n,this._distanceDisplayCondition=o,this._disableDepthTestDistance=y(e.disableDepthTestDistance,0),this._id=e.id,this._collection=y(e.collection,t),this._clusterShow=!0,this._pickId=void 0,this._pointPrimitiveCollection=t,this._dirty=!1,this._index=-1}var $ae=Ir.SHOW_INDEX=0,nce=Ir.POSITION_INDEX=1,lWe=Ir.COLOR_INDEX=2,uWe=Ir.OUTLINE_COLOR_INDEX=3,fWe=Ir.OUTLINE_WIDTH_INDEX=4,dWe=Ir.PIXEL_SIZE_INDEX=5,mWe=Ir.SCALE_BY_DISTANCE_INDEX=6,hWe=Ir.TRANSLUCENCY_BY_DISTANCE_INDEX=7,pWe=Ir.DISTANCE_DISPLAY_CONDITION_INDEX=8,_We=Ir.DISABLE_DEPTH_DISTANCE_INDEX=9;Ir.NUMBER_OF_PROPERTIES=10;function yf(e,t){let n=e._pointPrimitiveCollection;l(n)&&(n._updatePointPrimitive(e,t),e._dirty=!0)}Object.defineProperties(Ir.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,yf(this,$ae))}},position:{get:function(){return this._position},set:function(e){let t=this._position;m.equals(t,e)||(m.clone(e,t),m.clone(e,this._actualPosition),yf(this,nce))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Lt.equals(t,e)||(this._scaleByDistance=Lt.clone(e,t),yf(this,mWe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Lt.equals(t,e)||(this._translucencyByDistance=Lt.clone(e,t),yf(this,hWe))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,yf(this,dWe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),yf(this,lWe))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),yf(this,uWe))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,yf(this,fWe))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Dt.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=Dt.clone(e,this._distanceDisplayCondition),yf(this,pWe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,yf(this,_We))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,yf(this,$ae))}}});Ir.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId};Ir.prototype._getActualPosition=function(){return this._actualPosition};Ir.prototype._setActualPosition=function(e){m.clone(e,this._actualPosition),yf(this,nce)};var ece=new re;Ir._computeActualPosition=function(e,t,n){return t.mode===ne.SCENE3D?e:(B.multiplyByPoint(n,e,ece),Xi.computeActualWgs84Position(t,ece))};var tce=new re;Ir._computeScreenSpacePosition=function(e,t,n,i){let o=B.multiplyByVector(e,re.fromElements(t.x,t.y,t.z,1,tce),tce);return Xi.wgs84ToWindowCoordinates(n,o,i)};Ir.prototype.computeScreenSpacePosition=function(e,t){let n=this._pointPrimitiveCollection;l(t)||(t=new H);let i=n.modelMatrix,o=Ir._computeScreenSpacePosition(i,this._actualPosition,e,t);if(l(o))return o.y=e.canvas.clientHeight-o.y,o};Ir.getScreenSpaceBoundingBox=function(e,t,n){let i=e.pixelSize,o=i*.5,r=t.x-o,s=t.y-o,a=i,c=i;return l(n)||(n=new Ke),n.x=r,n.y=s,n.width=a,n.height=c,n};Ir.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&m.equals(this._position,e._position)&&z.equals(this._color,e._color)&&this._pixelSize===e._pixelSize&&this._outlineWidth===e._outlineWidth&&this._show===e._show&&z.equals(this._outlineColor,e._outlineColor)&&Lt.equals(this._scaleByDistance,e._scaleByDistance)&&Lt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Dt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};Ir.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0};var Ds=Ir;var uy=`in vec4 v_color; +in vec4 v_outlineColor; +in float v_innerPercent; +in float v_pixelDistance; +in vec4 v_pickColor; + +void main() +{ + // The distance in UV space from this fragment to the center of the point, at most 0.5. + float distanceToCenter = length(gl_PointCoord - vec2(0.5)); + // The max distance stops one pixel shy of the edge to leave space for anti-aliasing. + float maxDistance = max(0.0, 0.5 - v_pixelDistance); + float wholeAlpha = 1.0 - smoothstep(maxDistance, 0.5, distanceToCenter); + float innerAlpha = 1.0 - smoothstep(maxDistance * v_innerPercent, 0.5 * v_innerPercent, distanceToCenter); + + vec4 color = mix(v_outlineColor, v_color, innerAlpha); + color.a *= wholeAlpha; + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + + out_FragColor = czm_gammaCorrect(color); + czm_writeLogDepth(); +} +`;var oR=`uniform float u_maxTotalPointSize; + +in vec4 positionHighAndSize; +in vec4 positionLowAndOutline; +in vec4 compressedAttribute0; // color, outlineColor, pick color +in vec4 compressedAttribute1; // show, translucency by distance, some free space +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec3 distanceDisplayConditionAndDisableDepth; // near, far, disableDepthTestDistance + +out vec4 v_color; +out vec4 v_outlineColor; +out float v_innerPercent; +out float v_pixelDistance; +out vec4 v_pickColor; + +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; + +void main() +{ + // Modifying this shader may also require modifications to PointPrimitive._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndSize.xyz; + vec3 positionLow = positionLowAndOutline.xyz; + float outlineWidthBothSides = 2.0 * positionLowAndOutline.w; + float totalSize = positionHighAndSize.w + outlineWidthBothSides; + float outlinePercent = outlineWidthBothSides / totalSize; + // Scale in response to browser-zoom. + totalSize *= czm_pixelRatio; + + float temp = compressedAttribute1.x * SHIFT_RIGHT8; + float show = floor(temp); + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + + /////////////////////////////////////////////////////////////////////////// + + vec4 color; + vec4 outlineColor; + vec4 pickColor; + + // compressedAttribute0.z => pickColor.rgb + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + // compressedAttribute0.x => color.rgb + + temp = compressedAttribute0.x * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + // compressedAttribute0.y => outlineColor.rgb + + temp = compressedAttribute0.y * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + // compressedAttribute0.w => color.a, outlineColor.a, pickColor.a + + temp = compressedAttribute0.w * SHIFT_RIGHT8; + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor = pickColor / 255.0; + + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor /= 255.0; + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + totalSize *= czm_nearFarScalar(scaleByDistance, lengthSq); +#endif + if (totalSize > 0.0) { + // Add padding for anti-aliasing on both sides. + totalSize += 3.0; + } + + // Clamp to max point size. + totalSize = min(totalSize, u_maxTotalPointSize); + // If size is too small, push vertex behind near plane for clipping. + // Note that context.minimumAliasedPointSize "will be at most 1.0". + if (totalSize < 1.0) + { + positionEC.xyz = vec3(0.0); + totalSize = 1.0; + } + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency < 0.004) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = distanceDisplayConditionAndDisableDepth.x; + float farSq = distanceDisplayConditionAndDisableDepth.y; + if (lengthSq < nearSq || lengthSq > farSq) { + // push vertex behind camera to force it to be clipped + positionEC.xyz = vec3(0.0, 0.0, 1.0); + } +#endif + + gl_Position = czm_projection * positionEC; + czm_vertexLogDepth(); + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = distanceDisplayConditionAndDisableDepth.z; + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + czm_vertexLogDepth(vec4(czm_currentFrustum.x)); +#endif + } + } +#endif + + v_color = color; + v_color.a *= translucency * show; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency * show; + + v_innerPercent = 1.0 - outlinePercent; + v_pixelDistance = 2.0 / totalSize; + gl_PointSize = totalSize * show; + gl_Position *= show; + + v_pickColor = pickColor; +} +`;var gWe=Ds.SHOW_INDEX,b9=Ds.POSITION_INDEX,ice=Ds.COLOR_INDEX,yWe=Ds.OUTLINE_COLOR_INDEX,AWe=Ds.OUTLINE_WIDTH_INDEX,xWe=Ds.PIXEL_SIZE_INDEX,oce=Ds.SCALE_BY_DISTANCE_INDEX,rce=Ds.TRANSLUCENCY_BY_DISTANCE_INDEX,sce=Ds.DISTANCE_DISPLAY_CONDITION_INDEX,CWe=Ds.DISABLE_DEPTH_DISTANCE_INDEX,S9=Ds.NUMBER_OF_PROPERTIES,tc={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepth:5};function Af(e){e=y(e,y.EMPTY_OBJECT),this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._propertiesChanged=new Uint32Array(S9),this._maxPixelSize=1,this._baseVolume=new ae,this._baseVolumeWC=new ae,this._baseVolume2D=new ae,this._boundingVolume=new ae,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._modelMatrix=B.clone(B.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,To.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW];let t=this;this._uniforms={u_maxTotalPointSize:function(){return t._maxTotalPointSize}}}Object.defineProperties(Af.prototype,{length:{get:function(){return w9(this),this._pointPrimitives.length}}});function ace(e){let t=e.length;for(let n=0;n0&&(e._shaderDisableDepthDistance=!0,u===Number.POSITIVE_INFINITY&&(u=-1)),r(o,s,a,u)}function EWe(e,t,n,i){cce(e,t,n,i),lce(e,t,n,i),uce(e,t,n,i),fce(e,t,n,i),dce(e,t,n,i)}function E9(e,t,n,i,o,r){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c0){this._vaf=TWe(c,n,this._buffersUsage),a=this._vaf.writers;for(let v=0;v0){let v=wWe;v.length=0,(r[b9]||r[AWe]||r[xWe])&&v.push(cce),(r[ice]||r[yWe])&&v.push(lce),(r[gWe]||r[rce])&&v.push(uce),r[oce]&&v.push(fce),(r[sce]||r[CWe])&&v.push(dce);let D=v.length;if(a=this._vaf.writers,o/n>.1){for(let O=0;On*1.5&&(i.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ae.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let d,p=B.IDENTITY;e.mode===ne.SCENE3D?(p=this.modelMatrix,d=ae.clone(this._baseVolumeWC,this._boundingVolume)):d=ae.clone(this._baseVolume2D,this._boundingVolume),SWe(this,e,d);let g=this._blendOption!==this.blendOption;this._blendOption=this.blendOption,g&&(this._blendOption===To.OPAQUE||this._blendOption===To.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=ze.fromCache({depthTest:{enabled:!0,func:te.LEQUAL},depthMask:!0}):this._rsOpaque=void 0,this._blendOption===To.TRANSLUCENT||this._blendOption===To.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=ze.fromCache({depthTest:{enabled:!0,func:te.LEQUAL},depthMask:!1,blending:mn.ALPHA_BLEND}):this._rsTranslucent=void 0),this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let h,A;(g||this._shaderScaleByDistance&&!this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance&&!this._compiledShaderTranslucencyByDistance||this._shaderDistanceDisplayCondition&&!this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance)&&(h=new He({sources:[oR]}),this._shaderScaleByDistance&&h.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&h.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderDistanceDisplayCondition&&h.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&h.defines.push("DISABLE_DEPTH_DISTANCE"),this._blendOption===To.OPAQUE_AND_TRANSLUCENT&&(A=new He({defines:["OPAQUE"],sources:[uy]}),this._sp=Kt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:h,fragmentShaderSource:A,attributeLocations:tc}),A=new He({defines:["TRANSLUCENT"],sources:[uy]}),this._spTranslucent=Kt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:h,fragmentShaderSource:A,attributeLocations:tc})),this._blendOption===To.OPAQUE&&(A=new He({sources:[uy]}),this._sp=Kt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:h,fragmentShaderSource:A,attributeLocations:tc})),this._blendOption===To.TRANSLUCENT&&(A=new He({sources:[uy]}),this._spTranslucent=Kt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:h,fragmentShaderSource:A,attributeLocations:tc})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);let x,C,T,E,S=e.commandList;if(u.render||f){let v=this._colorCommands,D=this._blendOption===To.OPAQUE,O=this._blendOption===To.OPAQUE_AND_TRANSLUCENT;x=this._vaf.va,C=x.length,v.length=C;let M=O?C*2:C;for(E=0;E>4;if(o!==v9)throw new Error(`Got v${o} data when expected v${v9}.`);let r=mce[i&15];if(!r)throw new Error("Unrecognized array type.");let[s]=new Uint16Array(t,2,1),[a]=new Uint32Array(t,4,1);return new ux(a,s,r,t)}constructor(t,n=64,i=Float64Array,o){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+n,2),65535),this.ArrayType=i,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;let r=mce.indexOf(this.ArrayType),s=t*2*this.ArrayType.BYTES_PER_ELEMENT,a=t*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-a%8)%8;if(r<0)throw new Error(`Unexpected typed array class: ${i}.`);o&&o instanceof ArrayBuffer?(this.data=o,this.ids=new this.IndexArrayType(this.data,sR,t),this.coords=new this.ArrayType(this.data,sR+a+c,t*2),this._pos=t*2,this._finished=!0):(this.data=new ArrayBuffer(sR+s+a+c),this.ids=new this.IndexArrayType(this.data,sR,t),this.coords=new this.ArrayType(this.data,sR+a+c,t*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(v9<<4)+r]),new Uint16Array(this.data,2,1)[0]=n,new Uint32Array(this.data,4,1)[0]=t)}add(t,n){let i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=t,this.coords[this._pos++]=n,i}finish(){let t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return I9(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,n,i,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:r,coords:s,nodeSize:a}=this,c=[0,r.length-1,0],u=[];for(;c.length;){let f=c.pop()||0,d=c.pop()||0,p=c.pop()||0;if(d-p<=a){for(let x=p;x<=d;x++){let C=s[2*x],T=s[2*x+1];C>=t&&C<=i&&T>=n&&T<=o&&u.push(r[x])}continue}let g=p+d>>1,h=s[2*g],A=s[2*g+1];h>=t&&h<=i&&A>=n&&A<=o&&u.push(r[g]),(f===0?t<=h:n<=A)&&(c.push(p),c.push(g-1),c.push(1-f)),(f===0?i>=h:o>=A)&&(c.push(g+1),c.push(d),c.push(1-f))}return u}within(t,n,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:o,coords:r,nodeSize:s}=this,a=[0,o.length-1,0],c=[],u=i*i;for(;a.length;){let f=a.pop()||0,d=a.pop()||0,p=a.pop()||0;if(d-p<=s){for(let x=p;x<=d;x++)hce(r[2*x],r[2*x+1],t,n)<=u&&c.push(o[x]);continue}let g=p+d>>1,h=r[2*g],A=r[2*g+1];hce(h,A,t,n)<=u&&c.push(o[g]),(f===0?t-i<=h:n-i<=A)&&(a.push(p),a.push(g-1),a.push(1-f)),(f===0?t+i>=h:n+i>=A)&&(a.push(g+1),a.push(d),a.push(1-f))}return c}};function I9(e,t,n,i,o,r){if(o-i<=n)return;let s=i+o>>1;pce(e,t,s,i,o,r),I9(e,t,n,i,s-1,1-r),I9(e,t,n,s+1,o,1-r)}function pce(e,t,n,i,o,r){for(;o>i;){if(o-i>600){let u=o-i+1,f=n-i+1,d=Math.log(u),p=.5*Math.exp(2*d/3),g=.5*Math.sqrt(d*p*(u-p)/u)*(f-u/2<0?-1:1),h=Math.max(i,Math.floor(n-f*p/u+g)),A=Math.min(o,Math.floor(n+(u-f)*p/u+g));pce(e,t,n,h,A,r)}let s=t[2*n+r],a=i,c=o;for(aR(e,t,i,n),t[2*o+r]>s&&aR(e,t,i,o);as;)c--}t[2*i+r]===s?aR(e,t,i,c):(c++,aR(e,t,c,o)),c<=n&&(i=c+1),n<=c&&(o=c-1)}}function aR(e,t,n,i){D9(e,n,i),D9(t,2*n,2*i),D9(t,2*n+1,2*i+1)}function D9(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function hce(e,t,n,i){let o=e-n,r=t-i;return o*o+r*r}function Fd(e){e=y(e,y.EMPTY_OBJECT),this._enabled=y(e.enabled,!1),this._pixelRange=y(e.pixelRange,80),this._minimumClusterSize=y(e.minimumClusterSize,2),this._clusterBillboards=y(e.clusterBillboards,!0),this._clusterLabels=y(e.clusterLabels,!0),this._clusterPoints=y(e.clusterPoints,!0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity={},this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._clusterDirty=!1,this._cluster=void 0,this._removeEventListener=void 0,this._clusterEvent=new ge,this.show=y(e.show,!0)}function _ce(e,t){e.x-=t,e.y-=t,e.width+=t*2,e.height+=t*2}var vWe=new Ke;function gce(e,t,n,i,o){if(l(e._labelCollection)&&i._clusterLabels?o=jg.getScreenSpaceBoundingBox(e,t,o):l(e._billboardCollection)&&i._clusterBillboards?o=uo.getScreenSpaceBoundingBox(e,t,o):l(e._pointPrimitiveCollection)&&i._clusterPoints&&(o=Ds.getScreenSpaceBoundingBox(e,t,o)),_ce(o,n),i._clusterLabels&&!l(e._labelCollection)&&l(e.id)&&Ace(i,e.id.id)&&l(e.id._label)){let r=i._collectionIndicesByEntity[e.id.id].labelIndex,s=i._labelCollection.get(r),a=jg.getScreenSpaceBoundingBox(s,t,vWe);_ce(a,n),o=Ke.union(o,a,o)}return o}function DWe(e,t){if(e.clusterShow=!0,!l(e._labelCollection)&&l(e.id)&&Ace(t,e.id.id)&&l(e.id._label)){let n=t._collectionIndicesByEntity[e.id.id].labelIndex,i=t._labelCollection.get(n);i.clusterShow=!0}}function yce(e,t,n,i){let o={billboard:i._clusterBillboardCollection.add(),label:i._clusterLabelCollection.add(),point:i._clusterPointCollection.add()};o.billboard.show=!1,o.point.show=!1,o.label.show=!0,o.label.text=t.toLocaleString(),o.label.id=n,o.billboard.position=o.label.position=o.point.position=e,i._clusterEvent.raiseEvent(n,o)}function Ace(e,t){return l(e)&&l(e._collectionIndicesByEntity[t])&&l(e._collectionIndicesByEntity[t].labelIndex)}function P9(e,t,n,i,o){if(!l(e))return;let r=e.length;for(let s=0;s0){let R=new ux(T.length,64,Uint32Array);for(let F=0;F=f)for(yce(F.position,b,_,e),p.push(F),S=0;S=f){let U=m.multiplyByScalar(G,1/b,G);for(yce(U,b,_,e),p.push({position:U,width:V.width,height:V.height,minimumWidth:D.width,minimumHeight:D.height}),S=0;S0?(a=u.pop(),c=r.get(a)):(c=r.add(),a=r.length-1),s[i]=a;let f=this;return Promise.resolve().then(function(){f._clusterDirty=!0}),c}}function R9(e,t){let n=e._collectionIndicesByEntity[t];!l(n.billboardIndex)&&!l(n.labelIndex)&&!l(n.pointIndex)&&delete e._collectionIndicesByEntity[t]}Fd.prototype.getLabel=M9("_labelCollection",Xm,"_unusedLabelIndices","labelIndex");Fd.prototype.removeLabel=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._labelCollection)||!l(t)||!l(t.labelIndex))return;let n=t.labelIndex;t.labelIndex=void 0,R9(this,e.id);let i=this._labelCollection.get(n);i.show=!1,i.text="",i.id=void 0,this._unusedLabelIndices.push(n),this._clusterDirty=!0};Fd.prototype.getBillboard=M9("_billboardCollection",eu,"_unusedBillboardIndices","billboardIndex");Fd.prototype.removeBillboard=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._billboardCollection)||!l(t)||!l(t.billboardIndex))return;let n=t.billboardIndex;t.billboardIndex=void 0,R9(this,e.id);let i=this._billboardCollection.get(n);i.id=void 0,i.show=!1,i.image=void 0,this._unusedBillboardIndices.push(n),this._clusterDirty=!0};Fd.prototype.getPoint=M9("_pointCollection",RE,"_unusedPointIndices","pointIndex");Fd.prototype.removePoint=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._pointCollection)||!l(t)||!l(t.pointIndex))return;let n=t.pointIndex;t.pointIndex=void 0,R9(this,e.id);let i=this._pointCollection.get(n);i.show=!1,i.id=void 0,this._unusedPointIndices.push(n),this._clusterDirty=!0};function O9(e){if(!l(e))return;let t=e.length;for(let n=0;n0&&this._labelCollection.get(0)._glyphs.length===0&&(t=e.commandList,e.commandList=[],this._labelCollection.update(e),e.commandList=t),l(this._billboardCollection)&&this._billboardCollection.length>0&&!l(this._billboardCollection.get(0).width)&&(t=e.commandList,e.commandList=[],this._billboardCollection.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,RWe(this),this._clusterDirty=!0),this._clusterDirty&&(this._clusterDirty=!1,this._cluster()),l(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),l(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),l(this._clusterPointCollection)&&this._clusterPointCollection.update(e),l(this._labelCollection)&&this._labelCollection.update(e),l(this._billboardCollection)&&this._billboardCollection.update(e),l(this._pointCollection)&&this._pointCollection.update(e)};Fd.prototype.destroy=function(){this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._pointCollection=this._pointCollection&&this._pointCollection.destroy(),this._clusterLabelCollection=this._clusterLabelCollection&&this._clusterLabelCollection.destroy(),this._clusterBillboardCollection=this._clusterBillboardCollection&&this._clusterBillboardCollection.destroy(),this._clusterPointCollection=this._clusterPointCollection&&this._clusterPointCollection.destroy(),l(this._removeEventListener)&&(this._removeEventListener(),this._removeEventListener=void 0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity=void 0,this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._pixelRangeDirty=!1,this._minimumClusterSizeDirty=!1};var iu=Fd;function B9(e){this._name=e,this._clock=void 0,this._changed=new ge,this._error=new ge,this._isLoading=!1,this._loading=new ge,this._entityCollection=new vs(this),this._entityCluster=new iu}Object.defineProperties(B9.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._changed.raiseEvent(this))}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading},set:function(e){Dr.setLoading(this,e)}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});B9.prototype.update=function(e){return!0};var cR=B9;var xce={};xce.computePositions=function(e,t,n,i,o){let r=e*.5,s=-r,a=i+i,c=o?2*a:a,u=new Float64Array(c*3),f,d=0,p=0,g=o?a*3:0,h=o?(a+i)*3:i*3;for(f=0;f0){let A=Math.min(r,o);u=Math.round(o/A),c+=A}let f=Ue.createTypedArray(s,c*2),d=0,p;for(p=0;p0)for(p=0;p0){for(c=0;c=t;i--)e[i]=e[a--]}for(i=0;i=0||l(d)&&ee.compare(f,d)>=0));){for(G9[p++]=f,r=r+1,s=0;s0&&(W9.length=g,vce(n,u,W9),G9.length=p,vce(t,c,G9))}else{for(s=0;so)return;if(this._backwardExtrapolationType===ru.HOLD)return r.unpack(s,0,t)}if(a>=i){a=i-1;let S=n[a];if(o=this._forwardExtrapolationDuration,this._forwardExtrapolationType===ru.NONE||o!==0&&ee.secondsDifference(e,S)>o)return;if(this._forwardExtrapolationType===ru.HOLD)return a=i-1,r.unpack(s,a*r.packedLength,t)}let c=this._xTable,u=this._yTable,f=this._interpolationAlgorithm,d=this._packedInterpolationLength,p=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;let S=Math.min(f.getRequiredDataPoints(this._interpolationDegree,p),i);S!==this._numberOfPoints&&(this._numberOfPoints=S,c.length=S,u.length=S*d)}let g=this._numberOfPoints-1;if(g<1)return;let h=0,A=i-1;if(A-h+1>=g+1){let S=a-(g/2|0)-1;SA&&(v=A,S=v-g,S0){n=new Array(t);for(let i=0;ic&&e!==Object}let h=typeof e.unpack=="function"&&e!==xf;if(!g&&!p){d?t[n]=new $n(h?e.unpack(u,0):u):t[n]=Bce(e,s,i);return}let A=t[n],x,C=i.epoch;if(l(C)&&(x=ee.fromIso8601(C)),g&&!p){A instanceof au||(t[n]=A=new au(e)),A.addSamplesPackedArray(u,x),BV(i,A);return}let T;if(!g&&p){a=a.clone(),d?a.data=h?e.unpack(u,0):u:a.data=Bce(e,s,i),l(A)||(t[n]=A=d?new h_:new ec),d&&A instanceof h_?A.intervals.addInterval(a):A instanceof ec?(d&&(a.data=new $n(a.data)),A.intervals.addInterval(a)):(t[n]=A=kce(A),d&&(a.data=new $n(a.data)),A.intervals.addInterval(a));return}l(A)||(t[n]=A=new ec),A instanceof ec||(t[n]=A=kce(A));let E=A.intervals;T=E.findInterval(a),(!l(T)||!(T.data instanceof au))&&(T=a.clone(),T.data=new au(e),E.addInterval(T)),T.data.addSamplesPackedArray(u,x),BV(i,T.data)}function Qce(e,t){if(e instanceof au){e.removeSamples(t);return}else if(e instanceof h_){e.intervals.removeInterval(t);return}else if(e instanceof ec){let n=e.intervals;for(let i=0;ic),!h&&!p){d?e[t]=new wc(m.unpack(u),g):e[t]=gR(r,n.reference);return}let A=e[t],x,C=n.epoch;if(l(C)&&(x=ee.fromIso8601(C)),h&&!p){(!(A instanceof ea)||l(g)&&A.referenceFrame!==g)&&(e[t]=A=new ea(g,a)),A.addSamplesPackedArray(u,x),BV(n,A);return}let T;if(!h&&p){s=s.clone(),d?s.data=m.unpack(u):s.data=gR(r,n.reference),l(A)||(d?A=new m_(g):A=new Qs(g),e[t]=A),d&&A instanceof m_&&l(g)&&A.referenceFrame===g?A.intervals.addInterval(s):A instanceof Qs?(d&&(s.data=new wc(s.data,g)),A.intervals.addInterval(s)):(e[t]=A=zce(A),d&&(s.data=new wc(s.data,g)),A.intervals.addInterval(s));return}l(A)?A instanceof Qs||(e[t]=A=zce(A)):e[t]=A=new Qs(g);let E=A.intervals;T=E.findInterval(s),(!l(T)||!(T.data instanceof ea)||l(g)&&T.data.referenceFrame!==g)&&(T=s.clone(),T.data=new ea(g,a),E.addInterval(T)),T.data.addSamplesPackedArray(u,x),BV(n,T.data)}function $ce(e,t){if(e instanceof ea){e.removeSamples(t);return}else if(e instanceof m_){e.intervals.removeInterval(t);return}else if(e instanceof Qs){let n=e.intervals;for(let i=0;i. version format.");let i=t._documentPacket;l(e.name)&&(i.name=e.name);let o=e.clock;if(l(o)){let r=i.clock;l(r)?(r.interval=y(o.interval,r.interval),r.currentTime=y(o.currentTime,r.currentTime),r.range=y(o.range,r.range),r.step=y(o.step,r.step),r.multiplier=y(o.multiplier,r.multiplier)):i.clock={interval:o.interval,currentTime:o.currentTime,range:o.range,step:o.step,multiplier:o.multiplier}}}function Y7e(e,t,n,i){let o=t.ellipse;if(!l(o))return;let r=or(o.interval),s=e.ellipse;l(s)||(e.ellipse=s=new oA),ye(Boolean,s,"show",o.show,r,i,n),ye(Number,s,"semiMajorAxis",o.semiMajorAxis,r,i,n),ye(Number,s,"semiMinorAxis",o.semiMinorAxis,r,i,n),ye(Number,s,"height",o.height,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ye(qe,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ye(xf,s,"rotation",o.rotation,r,i,n),ye(xf,s,"stRotation",o.stRotation,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),cu(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(zn,s,"classificationType",o.classificationType,r,i,n),ye(Number,s,"zIndex",o.zIndex,r,i,n)}function q7e(e,t,n,i){let o=t.ellipsoid;if(!l(o))return;let r=or(o.interval),s=e.ellipsoid;l(s)||(e.ellipsoid=s=new rA),ye(Boolean,s,"show",o.show,r,i,n),ye(m,s,"radii",o.radii,r,i,n),ye(m,s,"innerRadii",o.innerRadii,r,i,n),ye(Number,s,"minimumClock",o.minimumClock,r,i,n),ye(Number,s,"maximumClock",o.maximumClock,r,i,n),ye(Number,s,"minimumCone",o.minimumCone,r,i,n),ye(Number,s,"maximumCone",o.maximumCone,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),cu(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Number,s,"stackPartitions",o.stackPartitions,r,i,n),ye(Number,s,"slicePartitions",o.slicePartitions,r,i,n),ye(Number,s,"subdivisions",o.subdivisions,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function X7e(e,t,n,i){let o=t.label;if(!l(o))return;let r=or(o.interval),s=e.label;l(s)||(e.label=s=new cd),ye(Boolean,s,"show",o.show,r,i,n),ye(String,s,"text",o.text,r,i,n),ye(String,s,"font",o.font,r,i,n),ye(Fo,s,"style",o.style,r,i,n),ye(Number,s,"scale",o.scale,r,i,n),ye(Boolean,s,"showBackground",o.showBackground,r,i,n),ye(z,s,"backgroundColor",o.backgroundColor,r,i,n),ye(H,s,"backgroundPadding",o.backgroundPadding,r,i,n),ye(H,s,"pixelOffset",o.pixelOffset,r,i,n),ye(m,s,"eyeOffset",o.eyeOffset,r,i,n),ye(pi,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),ye(On,s,"verticalOrigin",o.verticalOrigin,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(z,s,"fillColor",o.fillColor,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Lt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ye(Lt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),ye(Lt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function K7e(e,t,n,i){let o=t.model;if(!l(o))return;let r=or(o.interval),s=e.model;l(s)||(e.model=s=new lp),ye(Boolean,s,"show",o.show,r,i,n),ye(AR.default,s,"uri",o.gltf,r,i,n),ye(Number,s,"scale",o.scale,r,i,n),ye(Number,s,"minimumPixelSize",o.minimumPixelSize,r,i,n),ye(Number,s,"maximumScale",o.maximumScale,r,i,n),ye(Boolean,s,"incrementallyLoadTextures",o.incrementallyLoadTextures,r,i,n),ye(Boolean,s,"runAnimations",o.runAnimations,r,i,n),ye(Boolean,s,"clampAnimations",o.clampAnimations,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(z,s,"silhouetteColor",o.silhouetteColor,r,i,n),ye(Number,s,"silhouetteSize",o.silhouetteSize,r,i,n),ye(z,s,"color",o.color,r,i,n),ye(Xa,s,"colorBlendMode",o.colorBlendMode,r,i,n),ye(Number,s,"colorBlendAmount",o.colorBlendAmount,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n);let a,c,u=o.nodeTransformations;if(l(u))if(Array.isArray(u))for(a=0,c=u.length;a-1;c--)n[c](s,e,t,i)}Y9=void 0}function rje(e){let t,n=e._documentPacket.clock;if(!l(n)){if(!l(e._clock)){let o=e._entityCollection.computeAvailability();if(!o.start.equals(Ge.MINIMUM_VALUE)){let r=o.start,s=o.stop,a=ee.secondsDifference(s,r),c=Math.round(a/120);return t=new Vd,t.startTime=ee.clone(r),t.stopTime=ee.clone(s),t.clockRange=Pr.LOOP_STOP,t.multiplier=c,t.currentTime=ee.clone(r),t.clockStep=fo.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}l(e._clock)?t=e._clock.clone():(t=new Vd,t.startTime=Ge.MINIMUM_VALUE.clone(),t.stopTime=Ge.MAXIMUM_VALUE.clone(),t.currentTime=Ge.MINIMUM_VALUE.clone(),t.clockRange=Pr.LOOP_STOP,t.clockStep=fo.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1);let i=or(n.interval);return l(i)&&(t.startTime=i.start,t.stopTime=i.stop),l(n.currentTime)&&(t.currentTime=ee.fromIso8601(n.currentTime)),l(n.range)&&(t.clockRange=y(Pr[n.range],Pr.LOOP_STOP)),l(n.step)&&(t.clockStep=y(fo[n.step],fo.SYSTEM_CLOCK_MULTIPLIER)),l(n.multiplier)&&(t.multiplier=n.multiplier),t.equals(e._clock)?!1:(e._clock=t.clone(e._clock),!0)}function tle(e,t,n,i){n=y(n,y.EMPTY_OBJECT);let o=t,r=n.sourceUri,s=n.credit;if(typeof s=="string"&&(s=new It(s)),e._credit=s,typeof t=="string"||t instanceof we){t=we.createIfNeeded(t),o=t.fetchJson(),r=y(r,t.clone());let a=e._resourceCredits,c=t.credits;if(l(c)){let u=c.length;for(let f=0;f1;--_){if(C=P.PI_OVER_TWO-(_-1)*x,v=ZE(-C,r,h,g,c,f,u,d,p,v),D=ZE(C+Math.PI,r,h,g,c,f,u,d,p,D),t){for(E[S++]=v.x,E[S++]=v.y,E[S++]=v.z,w=2*(_-1)+2,b=1;b1;--s){for(t[n++]=i++,t[n++]=i,t[n++]=r,o=2*s,a=0;aP.PI&&(d.north=d.north>0?P.PI_OVER_TWO-P.EPSILON7:d.north,d.south=d.south<0?P.EPSILON7-P.PI_OVER_TWO:d.south,d.east=P.PI,d.west=-P.PI),d}function nh(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,oe.WGS84),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.vertexFormat,Pe.DEFAULT),a=y(e.height,0),c=y(e.extrudedHeight,a);this._center=m.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=oe.clone(n),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._height=Math.max(c,a),this._granularity=r,this._vertexFormat=Pe.clone(s),this._extrudedHeight=Math.min(c,a),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}nh.packedLength=m.packedLength+oe.packedLength+Pe.packedLength+9;nh.pack=function(e,t,n){return n=y(n,0),m.pack(e._center,t,n),n+=m.packedLength,oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var xle=new m,Cle=new oe,Tle=new Pe,th={center:xle,ellipsoid:Cle,vertexFormat:Tle,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};nh.unpack=function(e,t,n){t=y(t,0);let i=m.unpack(e,t,xle);t+=m.packedLength;let o=oe.unpack(e,t,Cle);t+=oe.packedLength;let r=Pe.unpack(e,t,Tle);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t++],g=e[t++]===1,h=e[t];return l(n)?(n._center=m.clone(i,n._center),n._ellipsoid=oe.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._semiMajorAxis=s,n._semiMinorAxis=a,n._rotation=c,n._stRotation=u,n._height=f,n._granularity=d,n._extrudedHeight=p,n._shadowVolume=g,n._offsetAttribute=h===-1?void 0:h,n):(th.height=f,th.extrudedHeight=p,th.granularity=d,th.stRotation=u,th.rotation=c,th.semiMajorAxis=s,th.semiMinorAxis=a,th.shadowVolume=g,th.offsetAttribute=h===-1?void 0:h,new nh(th))};nh.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.center,i=y(e.ellipsoid,oe.WGS84),o=e.semiMajorAxis,r=e.semiMinorAxis,s=y(e.granularity,P.RADIANS_PER_DEGREE),a=y(e.rotation,0);return Ale(n,o,r,a,s,i,t)};nh.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,vertexFormat:e._vertexFormat,stRotation:e._stRotation},r;if(i)o.extrudedHeight=n,o.shadowVolume=e._shadowVolume,o.offsetAttribute=e._offsetAttribute,r=pje(o);else if(r=dje(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===on.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new ft({attributes:r.attributes,indices:r.indices,primitiveType:Le.TRIANGLES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};nh.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new nh({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:o,rotation:e._rotation,stRotation:e._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};function _je(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let i=El.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0).outerPositions,o=i.length/3,r=new Array(o);for(let c=0;c0){let h=Math.min(u,c);g=Math.round(c/h);let A=Math.min(g*u,c);for(p=0;p0&&(S=!0,C+=c-1),s0&&f!==A-1&&d!==0&&d!==x-1&&(N[Y]=!0),Y++;p=0;let Q,W;for(f=1;f=rt&&fgy.eastOverIDL-gy.westOverIDL&&(o.west=gy.westOverIDL,o.east=gy.eastOverIDL,o.east>P.PI&&(o.east=o.east-P.TWO_PI),o.west>P.PI&&(o.west=o.west-P.TWO_PI)),o}var AYe=new he;function kle(e,t,n,i){let o=e.surfaceDistance,r=Math.ceil(o*t),s=r>0?o/(r-1):Number.POSITIVE_INFINITY,a=0;for(let c=0;c=0?f:f+P.TWO_PI;i.westOverIDL=Math.min(i.westOverIDL,p),i.eastOverIDL=Math.max(i.eastOverIDL,p)}}var zle=[];function xYe(e,t,n,i,o,r,s,a,c,u){let f={walls:[]},d;if(s||a){let T=Yn.createGeometryFromPositions(e,t,n,i,r,c,u),E=T.attributes.position.values,S=T.indices,v,D;if(s&&a){let O=E.concat(E);v=O.length/3,D=Ue.createTypedArray(v,S.length*2),D.set(S);let M=S.length,L=v/2;for(d=0;d1||v>1))for(let b=0;b0;f-=u)me=f*3,q=cb(q,J,me,p,x),J+=6,o.st&&(W=lb(W,_e,f*2,v),_e+=4),n&&(xe+=3,Y[xe++]=D[me],Y[xe++]=D[me+1],Y[xe++]=D[me+2]),K&&(Q[se++]=1,se+=1);if(w){let rt=Ae;for(me=rt*3,f=0;f<2;f++)q=cb(q,J,me,p,x),J+=6,o.st&&(W=lb(W,_e,rt*2,v),_e+=4),n&&(xe+=3,Y[xe++]=D[me],Y[xe++]=D[me+1],Y[xe++]=D[me+2]),K&&(Q[se++]=1,se+=1)}else for(f=u-1;f>=0;f--)me=f*3,q=cb(q,J,me,p,x),J+=6,o.st&&(W=lb(W,_e,f*2,v),_e+=4),n&&(xe+=3,Y[xe++]=D[me],Y[xe++]=D[me+1],Y[xe++]=D[me+2]),K&&(Q[se++]=1,se+=1);let Se=zYe(q,o,a);o.st&&(Se.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:W})),n&&(Se.attributes.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:Y})),M&&(Se.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:Q}));let Ie=Ue.createTypedArray(U,k*6),Ve,Re,ke,dt;g=q.length/3;let pt=0;for(f=0;f0){l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i);let c;l(this.depthFailAppearanceType)&&(l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=jo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial)),c=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})),i=new wn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new this.appearanceType({translucent:this.translucent,closed:this.closed}),depthFailAppearance:c,shadows:this.shadows}),o.add(i),t=!1}else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0),l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Ut)&&(this.depthFailMaterial=jo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r=0;i--){let o=e[i];if(o.remove(t))return o.updaters.length===0&&(e.splice(i,1),o.destroy()),!0}return!1}fb.prototype.remove=function(e){gue(this._solidItems,e)||gue(this._translucentItems,e)};function yue(e,t,n){let i=!1,o=t.length;for(let r=0;r0)for(r=0;r=0;r--){let s=t[r];if(s.invalidated){t.splice(r,1);let a=s.updaters.values,c=a.length;for(let u=0;u0){l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=jo.getValue(e,this.materialProperty,this.material);let a;l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=jo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),a=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})),n=new wn({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material,translucent:this.material.isTranslucent(),closed:this.closed}),depthFailAppearance:a,shadows:this.shadows}),i.add(n),t=!1}else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=jo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Ut)&&(this.depthFailMaterial=jo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};db.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new bc({show:!1,asynchronous:!0,geometryInstances:s.slice(),classificationType:this.classificationType}),o.add(i,this.zIndex),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r=0;--t){let s=o[t];s.isDirty&&(i=o[t].update(e)&&i,s.isDirty=!1),s.geometry.length===0&&o.splice(t,1)}return i};mb.prototype.getBoundingSphere=function(e,t){let n=this._batches,i=n.length;for(let o=0;o0)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=jo.getValue(e,this.materialProperty,this.material),n=new bc({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material}),classificationType:this.classificationType}),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=jo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material;let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};pb.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new wn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new rn({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),o.add(i),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r0)for(d=!0,t=0;t0)for(d=!0,t=0;t0)for(s=new Array(o),i=0;i0)for(a=new Array(o),i=0;i0)for(s=new Array(o),i=0;i0)for(a=new Array(o),i=0;i-1;a--)c=s[a],u=c.id,f=this._updaterSets.get(u),f.entity===c?f.forEach(function(A){d._removeUpdater(A),d._insertUpdaterIntoBatch(e,A)}):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],u=c.id,f=this._updaterSets.get(u),f.forEach(this._removeUpdater.bind(this)),f.destroy(),this._updaterSets.remove(u),this._subscriptions.get(u)(),this._subscriptions.remove(u);for(a=n.length-1;a>-1;a--)c=n[a],u=c.id,f=new XR(c,this._scene),this._updaterSets.set(u,f),f.forEach(function(A){d._insertUpdaterIntoBatch(e,A)}),this._subscriptions.set(u,f.geometryChanged.addEventListener(wf._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let p=!0,g=this._batches,h=g.length;for(a=0;a-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var KR=wf;var Fqe=1,Uqe="30px sans-serif",Vqe=Fo.FILL,kqe=z.WHITE,zqe=z.BLACK,Hqe=1,Gqe=!1,Wqe=new z(.165,.165,.165,.8),jqe=new H(7,5),Yqe=H.ZERO,qqe=m.ZERO,Xqe=qe.NONE,Kqe=pi.CENTER,Jqe=On.CENTER,Zqe=new m,Qqe=new z,$qe=new z,eXe=new z,tXe=new H,nXe=new m,iXe=new H,oXe=new Lt,rXe=new Lt,sXe=new Lt,aXe=new Dt;function Mue(e){this.entity=e,this.label=void 0,this.index=void 0}function Ay(e,t){t.collectionChanged.addEventListener(Ay.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}Ay.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i-1;o--)r=t[o],l(r._label)&&l(r._position)&&s.set(r.id,new Mue(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._label)&&l(r._position)?s.contains(r.id)||s.set(r.id,new Mue(r)):(mW(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],mW(s.get(r.id),r,a),s.remove(r.id)};function mW(e,t,n){l(e)&&(e.label=void 0,n.removeLabel(t))}var JR=Ay;async function cXe(e,t,n){return await e._readyPromise,fXe(e,t,n)}function lXe(e,t){let n=e[0],i=n.terrainProvider.requestTileGeometry(n.x,n.y,n.level);if(!i)return!1;let o=i.then(dXe(n)).catch(mXe(n));return e.shift(),t.push(o),!0}function uXe(e){return new Promise(function(t){setTimeout(t,e)})}function hW(e,t){return e.length?lXe(e,t)?hW(e,t):uXe(100).then(()=>hW(e,t)):Promise.resolve()}function fXe(e,t,n){let i=e.tilingScheme,o,r=[],s={};for(o=0;o0&&await Bue(e,s),t}var A_=Bue;var hXe=1,pXe=0,_Xe=!0,gXe=!0,yXe=xn.ENABLED,AXe=qe.NONE,xXe=z.RED,CXe=0,TXe=z.WHITE,EXe=Xa.HIGHLIGHT,bXe=.5,SXe=new H(1,1),wXe=new B,vXe=new B,Lue=new z,Nue=new Array(4),DXe=new m;function sh(e,t){t.collectionChanged.addEventListener(sh.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._modelHash={},this._entitiesToVisualize=new Et,this._onCollectionChanged(t,t.values,[],[])}async function IXe(e,t,n,i){let o=e._primitives,r=e._modelHash;try{let s=await wd.fromGltfAsync({url:n,incrementallyLoadTextures:i,scene:e._scene});if(e.isDestroyed()||!l(r[t.id]))return;s.id=t,o.add(s),r[t.id].modelPrimitive=s,s.errorEvent.addEventListener(a=>{l(r[t.id])&&(console.log(a),a.name!=="TextureError"&&s.incrementallyLoadTextures&&(r[t.id].loadFailed=!0))})}catch(s){if(e.isDestroyed()||!l(r[t.id]))return;console.log(s),r[t.id].loadFailed=!0}}sh.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._modelHash,i=this._primitives;for(let o=0,r=t.length;o-1;i--)_W(this,e[i],t,n);return ue(this)};sh._sampleTerrainMostDetailed=A_;var Ab=new m,Fue=new he;sh.prototype.getBoundingSphere=function(e,t){let n=this._modelHash[e.id];if(!l(n))return ut.FAILED;if(n.loadFailed)return ut.FAILED;let i=n.modelPrimitive;if(!l(i)||!i.show)return ut.PENDING;if(!i.ready||!n.modelUpdated)return ut.PENDING;let r=this._scene.globe,s=l(r)?r.terrainProvider:void 0,a=i.heightReference!==qe.NONE;if(l(r)&&a){let c=r.ellipsoid;if(!s._ready)return ut.PENDING;let u=i.modelMatrix;Ab.x=u[12],Ab.y=u[13],Ab.z=u[14];let f=c.cartesianToCartographic(Ab);if(!l(s.availability)){i.heightReference===qe.CLAMP_TO_GROUND&&(f.height=0);let g=c.cartographicToCartesian(f);return ae.clone(i.boundingSphere,t),t.center=g,ut.DONE}let d=this._modelHash[e.id].clampedBoundingSphere;return this._modelHash[e.id].sampleTerrainFailed?(this._modelHash[e.id].sampleTerrainFailed=!1,ut.FAILED):l(d)?(ae.clone(d,t),this._modelHash[e.id].clampedBoundingSphere=void 0,ut.DONE):(d=new ae,this._modelHash[e.id].awaitingSampleTerrain||(he.clone(f,Fue),this._modelHash[e.id].awaitingSampleTerrain=!0,sh._sampleTerrainMostDetailed(s,[Fue]).then(h=>{if(this.isDestroyed())return;this._modelHash[e.id].awaitingSampleTerrain=!1;let A=h[0];i.heightReference===qe.RELATIVE_TO_GROUND&&(A.height+=f.height),c.cartographicToCartesian(A,Ab),ae.clone(i.boundingSphere,d),d.center=Ab,this._modelHash[e.id].clampedBoundingSphere=ae.clone(d)}).catch(h=>{this.isDestroyed()||(this._modelHash[e.id].sampleTerrainFailed=!0,this._modelHash[e.id].awaitingSampleTerrain=!1)})),ut.PENDING)}return ae.clone(i.boundingSphere,t),ut.DONE};sh.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._modelHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._model)&&l(r._position)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._model)&&l(r._position)?(PXe(r,a),s.set(r.id,r)):(_W(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],_W(this,r,a,c),s.remove(r.id)};function _W(e,t,n,i){let o=n[t.id];l(o)&&(i.removeAndDestroy(o.modelPrimitive),delete n[t.id])}function PXe(e,t){let n=t[e.id];l(n)&&(n.nodeTransformationsScratch={},n.articulationsScratch={})}var QR=sh;function xy(e){this._definitionChanged=new ge,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}Object.defineProperties(xy.prototype,{isConstant:{get:function(){return j.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return l(this._value)?this._value.referenceFrame:no.FIXED}}});xy.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};xy.prototype.setValue=function(e){this._value!==e&&(this._value=e,l(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),l(e)&&(this._removeSubscription=e.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))};xy.prototype.getValueInReferenceFrame=function(e,t,n){if(l(this._value))return n=this._value.getValueInReferenceFrame(e,t,n),l(n)?oe.WGS84.scaleToGeodeticSurface(n,n):void 0};xy.prototype.equals=function(e){return this===e||e instanceof xy&&this._value===e._value};xy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var ah=xy;var OXe=60,MXe=1,kue=new Tn,gW=new Tn,yW=new Tn;function Uue(e){this.entity=e,this.polyline=void 0,this.index=void 0,this.updater=void 0}function RXe(e,t,n,i,o,r,s,a,c){let u=a,f;f=e.getValueInReferenceFrame(t,r,c[u]),l(f)&&(c[u++]=f);let d=!l(o)||ee.lessThanOrEquals(o,t)||ee.greaterThanOrEquals(o,n),p=0,g=i.length,h=i[p],A=n,x=!1,C,T,E;for(;p0&&!x){let S=i[p+1],v=ee.secondsDifference(S,h);x=v>s,x&&(C=Math.ceil(v/s),T=0,E=v/Math.max(C,2),C=Math.max(C-1,1))}if(x&&T0){let g=d.pop();c=this._polylineCollection.get(g),t.index=g}else t.index=this._polylineCollection.length,c=this._polylineCollection.add();c.id=n,t.polyline=c}let f=j.getValueOrDefault(i._resolution,e,OXe);c.show=!0,c.positions=Hue(o,r,s,e,this._referenceFrame,f,c.positions.slice()),c.material=jo.getValue(e,i._material,c.material),c.width=j.getValueOrDefault(i._width,e,MXe),c.distanceDisplayCondition=j.getValueOrUndefined(i._distanceDisplayCondition,e,c.distanceDisplayCondition)};$R.prototype.removeObject=function(e){let t=e.polyline;l(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0)};$R.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),ue(this)};function Cy(e,t){t.collectionChanged.addEventListener(Cy.prototype._onCollectionChanged,this),this._scene=e,this._updaters={},this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}Cy.prototype.update=function(e){let t=this._updaters;for(let i in t)t.hasOwnProperty(i)&&t[i].update(e);let n=this._items.values;if(n.length===0&&l(this._updaters)&&Object.keys(this._updaters).length>0){for(let i in t)t.hasOwnProperty(i)&&t[i].destroy();this._updaters={}}for(let i=0,o=n.length;i-1;o--)r=t[o],l(r._path)&&l(r._position)&&a.set(r.id,new Uue(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._path)&&l(r._position)?a.contains(r.id)||a.set(r.id,new Uue(r)):(s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id)));for(o=n.length-1;o>-1;o--)r=n[o],s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id))};Cy._subSample=Hue;var eB=Cy;var Gue=z.WHITE,Wue=z.BLACK,jue=0,Yue=1,que=0,Xue=new z,UXe=new m,Kue=new z,Jue=new Lt,Zue=new Lt,Que=new Dt;function $ue(e){this.entity=e,this.pointPrimitive=void 0,this.billboard=void 0,this.color=void 0,this.outlineColor=void 0,this.pixelSize=void 0,this.outlineWidth=void 0}function Ty(e,t){t.collectionChanged.addEventListener(Ty.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}Ty.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i0?(u.scale=1,g=g||C!==r.outlineWidth||T!==r.pixelSize||!z.equals(A,r.color)||!z.equals(x,r.outlineColor)):(u.scale=T/50,T=50,g=g||C!==r.outlineWidth||!z.equals(A,r.color)||!z.equals(x,r.outlineColor)),g){r.color=z.clone(A,r.color),r.outlineColor=z.clone(x,r.outlineColor),r.pixelSize=T,r.outlineWidth=C;let E=A.alpha,S=A.toCssColorString(),v=x.toCssColorString(),D=JSON.stringify([S,T,v,C]);u.setImage(D,HA(E,S,v,C,T))}h&&u._updateClamping()}}return!0};Ty.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!(l(n.pointPrimitive)||l(n.billboard)))return ut.FAILED;if(l(n.pointPrimitive))t.center=m.clone(n.pointPrimitive.position,t.center);else{let i=n.billboard;if(!l(i._clampedPosition))return ut.PENDING;t.center=m.clone(i._clampedPosition,t.center)}return t.radius=0,ut.DONE};Ty.prototype.isDestroyed=function(){return!1};Ty.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Ty.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t-1;o--)r=t[o],l(r._point)&&l(r._position)&&s.set(r.id,new $ue(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._point)&&l(r._position)?s.contains(r.id)||s.set(r.id,new $ue(r)):(tB(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],tB(s.get(r.id),r,a),s.remove(r.id)};function tB(e,t,n){if(l(e)){let i=e.pointPrimitive;if(l(i)){e.pointPrimitive=void 0,n.removePoint(t);return}let o=e.billboard;l(o)&&(e.billboard=void 0,n.removeBillboard(t))}}var nB=Ty;var ofe=[];function VXe(e,t,n,i,o){let r=ofe;r.length=o;let s,a=n.red,c=n.green,u=n.blue,f=n.alpha,d=i.red,p=i.green,g=i.blue,h=i.alpha;if(z.equals(n,i)){for(s=0;s0?new Array(o):void 0;for(i=0;i0){let R=0,F=d[0];i=i.filter(function(k,V){let G=!1;return o?G=V===F||V===0&&F===1:G=V+1===F,G?(R++,F=d[R],!1):!0})}let g=p.length;if(g<2||t<=0)return;if(r===Jt.GEODESIC||r===Jt.RHUMB){let R,F;r===Jt.GEODESIC?(R=P.chordLength(s,a.maximumRadius),F=Di.numberOfPoints):(R=s,F=Di.numberOfPointsRhumbLine);let k=Di.extractHeights(p,a);if(l(i)){let V=1;for(c=0;c0)return ae.fromPoints(t.positions,e),ut.DONE}return ut.FAILED};oB.prototype.isDestroyed=function(){return!1};oB.prototype.destroy=function(){let t=this._geometryUpdater._scene.id,n=$V[t];l(n)&&(n.remove(this._line),n.length===0&&(this._primitives.removeAndDestroy(n),delete $V[t])),l(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),ue(this)};var rB=Xd;var XXe=new z,KXe=new Dt,JXe=new Dt;function Kd(e,t,n,i,o){let r;n instanceof Ut?r=Fr:r=js,this.orderedGroundPrimitives=e,this.classificationType=t,this.appearanceType=r,this.materialProperty=n,this.updaters=new Et,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.material=void 0,this.updatersWithAttributes=new Et,this.attributes=new Et,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(Kd.prototype.onMaterialChanged,this),this.subscriptions=new Et,this.showsUpdated=new Et,this.zIndex=i,this._asynchronous=o}Kd.prototype.onMaterialChanged=function(){this.invalidated=!0};Kd.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Ut&&t instanceof Ut?!0:l(t)&&t.equals(n)};Kd.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!j.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};Kd.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t)),!0}return!1};Kd.prototype.update=function(e){let t=!0,n=this.primitive,i=this.orderedGroundPrimitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),n=new ad({show:!1,asynchronous:this._asynchronous,geometryInstances:o.slice(),appearance:new this.appearanceType,classificationType:this.classificationType}),this.appearanceType===js&&(this.material=jo.getValue(e,this.materialProperty,this.material),n.appearance.material=this.material),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===js&&(this.material=jo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};Cb.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c-1;a--)c=s[a],u=c.id,f=this._updaters.get(u),f.entity===c?(lfe(this,f),ufe(this,e,f)):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],u=c.id,f=this._updaters.get(u),lfe(this,f),f.destroy(),this._updaters.remove(u),this._subscriptions.get(u)(),this._subscriptions.remove(u);for(a=n.length-1;a>-1;a--)c=n[a],u=c.id,f=new rB(c,this._scene),this._updaters.set(u,f),ufe(this,e,f),this._subscriptions.set(u,f.geometryChanged.addEventListener(ch._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let d=!0,p=this._batches,g=p.length;for(a=0;a-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var aB=ch;function vf(e){bc.initializeTerrainHeights(),ad.initializeTerrainHeights();let t=e.scene,n=e.dataSourceCollection;this._eventHelper=new Sr,this._eventHelper.add(n.dataSourceAdded,this._onDataSourceAdded,this),this._eventHelper.add(n.dataSourceRemoved,this._onDataSourceRemoved,this),this._eventHelper.add(n.dataSourceMoved,this._onDataSourceMoved,this),this._eventHelper.add(t.postRender,this._postRender,this),this._dataSourceCollection=n,this._scene=t,this._visualizersCallback=y(e.visualizersCallback,vf.defaultVisualizersCallback);let i=!1,o=new Tl,r=new Tl;n.length>0&&(t.primitives.add(o),t.groundPrimitives.add(r),i=!0),this._primitives=o,this._groundPrimitives=r;for(let u=0,f=n.length;uiKe*s.maximumRadius?(d=hfe,m.normalize(c,d),m.negate(d,d),g=m.clone(m.UNIT_Z,xW),p=m.cross(g,d,ek),m.magnitude(p)>P.EPSILON7&&(m.normalize(d,d),m.normalize(p,p),g=m.cross(d,p,xW),m.normalize(g,g),u=!0)):m.equalsEpsilon(c,T,P.EPSILON7)||(g=hfe,m.normalize(D,g),m.normalize(O,O),p=m.cross(g,O,xW),f&&(p=m.multiplyByScalar(p,-1,p)),m.equalsEpsilon(p,m.ZERO,P.EPSILON7)||(d=m.cross(p,g,ek),Z.multiplyByVector(v,d,d),Z.multiplyByVector(v,p,p),Z.multiplyByVector(v,g,g),m.normalize(d,d),m.normalize(p,p),m.normalize(g,g),u=!0))}}l(e.boundingSphere)&&(c=e.boundingSphere.center);let h,A,x;i&&(h=m.clone(t.position,CW),A=m.clone(t.direction,pfe),x=m.clone(t.up,_fe));let C=nKe;u?(C[0]=d.x,C[1]=d.y,C[2]=d.z,C[3]=0,C[4]=p.x,C[5]=p.y,C[6]=p.z,C[7]=0,C[8]=g.x,C[9]=g.y,C[10]=g.z,C[11]=0,C[12]=c.x,C[13]=c.y,C[14]=c.z,C[15]=0):Rt.eastNorthUpToFixedFrame(c,s,C),t._setTransform(C),i&&(m.clone(h,t.position),m.clone(A,t.direction),m.clone(x,t.up),m.cross(A,x,t.right))}if(n){let u=a===ne.SCENE2D||m.equals(e._offset3D,m.ZERO)?void 0:e._offset3D;t.lookAtTransform(t.transform,u)}}function lB(e,t,n){this.entity=e,this.scene=t,this.ellipsoid=y(n,oe.WGS84),this.boundingSphere=void 0,this._lastEntity=void 0,this._mode=void 0,this._lastCartesian=new m,this._defaultOffset3D=void 0,this._offset3D=new m}Object.defineProperties(lB,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(e){this._defaultOffset3D=m.clone(e,new m)}}});lB.defaultOffset3D=new m(-14e3,3500,3500);var tk=new du,rKe=new m;lB.prototype.update=function(e,t){let n=this.scene,i=this.ellipsoid,o=n.mode;if(o===ne.MORPHING)return;let r=this.entity,s=r.position;if(!l(s))return;let a=r!==this._lastEntity,c=o!==this._mode,u=n.camera,f=a||c,d=!0;if(a){let p=r.viewFrom,g=l(p);if(!g&&l(t)){tk.pitch=-P.PI_OVER_FOUR,tk.range=0;let h=s.getValue(e,rKe);if(l(h)){let A=2-1/Math.max(1,m.magnitude(h)/i.maximumRadius);tk.pitch*=A}u.viewBoundingSphere(t,tk),this.boundingSphere=t,f=!1,d=!1}else(!g||!l(p.getValue(e,this._offset3D)))&&m.clone(lB._defaultOffset3D,this._offset3D)}else!c&&this._mode!==ne.SCENE2D&&m.clone(u.position,this._offset3D);this._lastEntity=r,this._mode=o,oKe(this,u,f,d,s,e,i)};var uB=lB;function dB(){this._cache={}}dB.prototype.fromColor=function(e,t){return nk(void 0,void 0,e,t,this._cache)};dB.prototype.fromUrl=function(e,t,n){return nk(e,void 0,t,n,this._cache)};dB.prototype.fromMakiIconId=function(e,t,n){return nk(en(`Assets/Textures/maki/${encodeURIComponent(e)}.png`),void 0,t,n,this._cache)};dB.prototype.fromText=function(e,t,n){return nk(void 0,e,t,n,this._cache)};var sKe=new z;function aKe(e,t,n){e.save(),e.scale(n/24,n/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,sKe).toCssColorString(),e.lineWidth=.846,e.beginPath(),e.moveTo(6.72,.422),e.lineTo(17.28,.422),e.bezierCurveTo(18.553,.422,19.577,1.758,19.577,3.415),e.lineTo(19.577,10.973),e.bezierCurveTo(19.577,12.63,18.553,13.966,17.282,13.966),e.lineTo(14.386,14.008),e.lineTo(11.826,23.578),e.lineTo(9.614,14.008),e.lineTo(6.719,13.965),e.bezierCurveTo(5.446,13.983,4.422,12.629,4.422,10.972),e.lineTo(4.422,3.416),e.bezierCurveTo(4.423,1.76,5.447,.423,6.718,.423),e.closePath(),e.fill(),e.stroke(),e.restore()}function gfe(e,t,n){let i=n/2.5,o=i,r=i;t.width>t.height?r=i*(t.height/t.width):t.width${i}${Tfe(o)}`:n+=`${i}${o}`)}return n.length>0&&(n=`${n}
`),n}function hKe(e,t,n){let i;return function(o,r){return l(i)||(i=e(t,n)),i}}function pKe(e,t){return new fd(hKe(Tfe,e,t),!0)}function rk(e,t,n){let i=e.id;if(!l(i)||e.type!=="Feature")i=Gn();else{let s=2,a=i;for(;l(t.getById(a));)a=`${i}_${s}`,s++;i=a}let o=t.getOrCreateEntity(i),r=e.properties;if(l(r)){o.properties=r;let s,a=r.title;if(l(a))o.name=a,s="title";else{let u=Number.MAX_VALUE;for(let f in r)if(r.hasOwnProperty(f)&&r[f]){let d=f.toLowerCase();if(u>1&&d==="title"){u=1,s=f;break}else u>2&&d==="name"?(u=2,s=f):u>3&&/title/i.test(f)?(u=3,s=f):u>4&&/name/i.test(f)&&(u=4,s=f)}l(s)&&(o.name=r[s])}let c=r.description;c!==null&&(o.description=l(c)?new $n(c):n(r,s))}return o}function RW(e,t){let n=new Array(e.length);for(let i=0;i2?u.perPositionHeight=new $n(!0):o.clampToGround||(u.height=0);let p=rk(t,e._entityCollection,o.describe);p.polygon=u}function Bfe(e,t,n,i,o){Rfe(e,t,i,n.coordinates,o)}function Lfe(e,t,n,i,o){let r=n.coordinates;for(let s=0;st&&(n==null?(n="…",i=3):i=n.length,e=e.substring(0,t-i)+n),e}function zo(e,t){for(var n=e.length-1;n>=0;n--)e[n]===t&&e.splice(n,1)}function by(e,t){for(var n=e.length-1;n>=0;n--)t(e[n])===!0&&e.splice(n,1)}function Sy(e){throw new Error("Unhandled case for value: '".concat(e,"'"))}var wy=/[A-Za-z]/,Ps=/[\d]/;var hu=/\s/,sk=/['"]/,zfe=/[\x00-\x1F\x7F]/,Hfe=/A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source,AKe=/\u2700-\u27bf\udde6-\uddff\ud800-\udbff\udc00-\udfff\ufe0e\ufe0f\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0\ud83c\udffb-\udfff\u200d\u3299\u3297\u303d\u3030\u24c2\ud83c\udd70-\udd71\udd7e-\udd7f\udd8e\udd91-\udd9a\udde6-\uddff\ude01-\ude02\ude1a\ude2f\ude32-\ude3a\ude50-\ude51\u203c\u2049\u25aa-\u25ab\u25b6\u25c0\u25fb-\u25fe\u00a9\u00ae\u2122\u2139\udc04\u2600-\u26FF\u2b05\u2b06\u2b07\u2b1b\u2b1c\u2b50\u2b55\u231a\u231b\u2328\u23cf\u23e9-\u23f3\u23f8-\u23fa\udccf\u2935\u2934\u2190-\u21ff/.source,xKe=/\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F/.source,CKe=Hfe+AKe+xKe,Gfe=/0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19/.source,x5n=new RegExp("[".concat(Hfe+Gfe,"]")),BW=CKe+Gfe,Jd=new RegExp("[".concat(BW,"]"));var ak=function(){function e(t){t===void 0&&(t={}),this.tagName="",this.attrs={},this.innerHTML="",this.tagName=t.tagName||"",this.attrs=t.attrs||{},this.innerHTML=t.innerHtml||t.innerHTML||""}return e.prototype.setTagName=function(t){return this.tagName=t,this},e.prototype.getTagName=function(){return this.tagName||""},e.prototype.setAttr=function(t,n){var i=this.getAttrs();return i[t]=n,this},e.prototype.getAttr=function(t){return this.getAttrs()[t]},e.prototype.setAttrs=function(t){return Object.assign(this.getAttrs(),t),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(t){return this.setAttr("class",t)},e.prototype.addClass=function(t){for(var n=this.getClass(),i=n?n.split(hu):[],o=t.split(hu),r;r=o.shift();)i.indexOf(r)===-1&&i.push(r);return this.getAttrs().class=i.join(" "),this},e.prototype.removeClass=function(t){for(var n=this.getClass(),i=n?n.split(hu):[],o=t.split(hu),r;i.length&&(r=o.shift());){var s=i.indexOf(r);s!==-1&&i.splice(s,1)}return this.getAttrs().class=i.join(" "),this},e.prototype.getClass=function(){return this.getAttrs().class||""},e.prototype.hasClass=function(t){return(" "+this.getClass()+" ").indexOf(" "+t+" ")!==-1},e.prototype.setInnerHTML=function(t){return this.innerHTML=t,this},e.prototype.setInnerHtml=function(t){return this.setInnerHTML(t)},e.prototype.getInnerHTML=function(){return this.innerHTML||""},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var t=this.getTagName(),n=this.buildAttrsStr();return n=n?" "+n:"",["<",t,n,">",this.getInnerHtml(),""].join("")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return"";var t=this.getAttrs(),n=[];for(var i in t)t.hasOwnProperty(i)&&n.push(i+'="'+t[i]+'"');return n.join(" ")},e}();function Wfe(e,t,n){var i,o;n==null?(n="…",o=3,i=8):(o=n.length,i=n.length);var r=function(T){var E={},S=T,v=S.match(/^([a-z]+):\/\//i);return v&&(E.scheme=v[1],S=S.substr(v[0].length)),v=S.match(/^(.*?)(?=(\?|#|\/|$))/i),v&&(E.host=v[1],S=S.substr(v[0].length)),v=S.match(/^\/(.*?)(?=(\?|#|$))/i),v&&(E.path=v[1],S=S.substr(v[0].length)),v=S.match(/^\?(.*?)(?=(#|$))/i),v&&(E.query=v[1],S=S.substr(v[0].length)),v=S.match(/^#(.*?)$/i),v&&(E.fragment=v[1]),E},s=function(T){var E="";return T.scheme&&T.host&&(E+=T.scheme+"://"),T.host&&(E+=T.host),T.path&&(E+="/"+T.path),T.query&&(E+="?"+T.query),T.fragment&&(E+="#"+T.fragment),E},a=function(T,E){var S=E/2,v=Math.ceil(S),D=-1*Math.floor(S),O="";return D<0&&(O=T.substr(D)),T.substr(0,v)+n+O};if(e.length<=t)return e;var c=t-o,u=r(e);if(u.query){var f=u.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);f&&(u.query=u.query.substr(0,f[1].length),e=s(u))}if(e.length<=t||(u.host&&(u.host=u.host.replace(/^www\./,""),e=s(u)),e.length<=t))return e;var d="";if(u.host&&(d+=u.host),d.length>=c)return u.host.length==t?(u.host.substr(0,t-o)+n).substr(0,c+i):a(d,c).substr(0,c+i);var p="";if(u.path&&(p+="/"+u.path),u.query&&(p+="?"+u.query),p)if((d+p).length>=c){if((d+p).length==t)return(d+p).substr(0,t);var g=c-d.length;return(d+a(p,g)).substr(0,c+i)}else d+=p;if(u.fragment){var h="#"+u.fragment;if((d+h).length>=c){if((d+h).length==t)return(d+h).substr(0,t);var A=c-d.length;return(d+a(h,A)).substr(0,c+i)}else d+=h}if(u.scheme&&u.host){var x=u.scheme+"://";if((d+x).length0&&(C=d.substr(-1*Math.floor(c/2))),(d.substr(0,Math.ceil(c/2))+n+C).substr(0,c+i)}function jfe(e,t,n){if(e.length<=t)return e;var i,o;n==null?(n="…",i=8,o=3):(i=n.length,o=n.length);var r=t-o,s="";return r>0&&(s=e.substr(-1*Math.floor(r/2))),(e.substr(0,Math.ceil(r/2))+n+s).substr(0,r+i)}function Yfe(e,t,n){return kfe(e,t,n)}var qfe=function(){function e(t){t===void 0&&(t={}),this.newWindow=!1,this.truncate={},this.className="",this.newWindow=t.newWindow||!1,this.truncate=t.truncate||{},this.className=t.className||""}return e.prototype.build=function(t){return new ak({tagName:"a",attrs:this.createAttrs(t),innerHtml:this.processAnchorText(t.getAnchorText())})},e.prototype.createAttrs=function(t){var n={href:t.getAnchorHref()},i=this.createCssClass(t);return i&&(n.class=i),this.newWindow&&(n.target="_blank",n.rel="noopener noreferrer"),this.truncate&&this.truncate.length&&this.truncate.length=0;g--){var h=f[g];switch(h.state){case 11:D(h,p);break;case 12:O(h,p);break;case 0:C(h,p);break;case 1:T(h,p);break;case 2:E(h,p);break;case 3:S(h,p);break;case 4:v(h,p);break;case 5:M(h,p);break;case 6:L(h,p);break;case 7:N(h,p);break;case 13:_(h,p);break;case 14:b(h,p);break;case 8:w(h,p);break;case 9:I(h,p);break;case 10:R(h,p);break;case 15:F(h,p);break;case 16:k(h,p);break;case 17:V(h,p);break;case 18:G(h,p);break;case 19:U(h,p);break;case 20:q(h,p);break;case 21:Y(h,p);break;case 22:Q(h,p);break;case 23:W(h,p);break;case 24:K(h,p);break;case 25:J(h,p);break;case 26:_e(h,p);break;case 27:xe(h,p);break;case 28:se(h,p);break;case 29:Ae(h,p);break;case 30:me(h,p);break;case 31:Se(h,p);break;case 32:Ve(h,p);break;case 33:Re(h,p);break;case 34:ke(h,p);break;case 35:dt(h,p);break;case 36:pt(h,p);break;case 37:Ie(h,p);break;case 38:rt(h,p);break;case 39:fn(h,p);break;case 40:Bn(h,p);break;case 41:jt(h,p);break;default:Sy(h.state)}}}for(var A=f.length-1;A>=0;A--)f.forEach(function(pe){return Ze(pe)});return c;function x(pe){if(pe==="#")f.push(JKe(d,28));else if(pe==="@")f.push(ZKe(d,30));else if(pe==="/")f.push(WW(d,11));else if(pe==="+")f.push(jW(d,37));else if(pe==="(")f.push(jW(d,32));else{if(Ps.test(pe)&&(f.push(jW(d,38)),f.push(XKe(d,13))),ide(pe)){var Ee=pe.toLowerCase()==="m"?15:22;f.push(KKe(d,Ee))}ck(pe)&&f.push(GW(d,0)),Jd.test(pe)&&f.push(WW(d,5))}}function C(pe,Ee){Ee===":"?pe.state=2:Ee==="-"?pe.state=1:FW(Ee)||zo(f,pe)}function T(pe,Ee){Ee==="-"||(Ee==="/"?(zo(f,pe),f.push(WW(d,11))):FW(Ee)?pe.state=0:zo(f,pe))}function E(pe,Ee){Ee==="/"?pe.state=3:Ee==="."?zo(f,pe):T_(Ee)?(pe.state=5,ck(Ee)&&f.push(GW(d,0))):zo(f,pe)}function S(pe,Ee){Ee==="/"?pe.state=4:UW(Ee)?(pe.state=10,pe.acceptStateReached=!0):Ze(pe)}function v(pe,Ee){Ee==="/"?pe.state=10:T_(Ee)?(pe.state=5,pe.acceptStateReached=!0):zo(f,pe)}function D(pe,Ee){Ee==="/"?pe.state=12:zo(f,pe)}function O(pe,Ee){T_(Ee)?pe.state=5:zo(f,pe)}function M(pe,Ee){Ee==="."?pe.state=7:Ee==="-"?pe.state=6:Ee===":"?pe.state=8:uk(Ee)?pe.state=10:lk(Ee)||Ze(pe)}function L(pe,Ee){Ee==="-"||(Ee==="."?Ze(pe):T_(Ee)?pe.state=5:Ze(pe))}function N(pe,Ee){Ee==="."?Ze(pe):T_(Ee)?(pe.state=5,pe.acceptStateReached=!0):Ze(pe)}function _(pe,Ee){Ee==="."?pe.state=14:Ee===":"?pe.state=8:Ps.test(Ee)||(uk(Ee)?pe.state=10:Jd.test(Ee)?zo(f,pe):Ze(pe))}function b(pe,Ee){Ps.test(Ee)?(pe.octetsEncountered++,pe.octetsEncountered===4&&(pe.acceptStateReached=!0),pe.state=13):Ze(pe)}function w(pe,Ee){Ps.test(Ee)?pe.state=9:Ze(pe)}function I(pe,Ee){Ps.test(Ee)||(uk(Ee)?pe.state=10:Ze(pe))}function R(pe,Ee){UW(Ee)||Ze(pe)}function F(pe,Ee){Ee.toLowerCase()==="a"?pe.state=16:Q(pe,Ee)}function k(pe,Ee){Ee.toLowerCase()==="i"?pe.state=17:Q(pe,Ee)}function V(pe,Ee){Ee.toLowerCase()==="l"?pe.state=18:Q(pe,Ee)}function G(pe,Ee){Ee.toLowerCase()==="t"?pe.state=19:Q(pe,Ee)}function U(pe,Ee){Ee.toLowerCase()==="o"?pe.state=20:Q(pe,Ee)}function q(pe,Ee){Ee.toLowerCase()===":"?pe.state=21:Q(pe,Ee)}function Y(pe,Ee){fk(Ee)?pe.state=22:zo(f,pe)}function Q(pe,Ee){Ee==="."?pe.state=23:Ee==="@"?pe.state=24:fk(Ee)?pe.state=22:zo(f,pe)}function W(pe,Ee){Ee==="."?zo(f,pe):Ee==="@"?zo(f,pe):fk(Ee)?pe.state=22:zo(f,pe)}function K(pe,Ee){T_(Ee)?pe.state=25:zo(f,pe)}function J(pe,Ee){Ee==="."?pe.state=27:Ee==="-"?pe.state=26:lk(Ee)||Ze(pe)}function _e(pe,Ee){Ee==="-"||Ee==="."?Ze(pe):lk(Ee)?pe.state=25:Ze(pe)}function xe(pe,Ee){Ee==="."||Ee==="-"?Ze(pe):T_(Ee)?(pe.state=25,pe.acceptStateReached=!0):Ze(pe)}function se(pe,Ee){kW(Ee)?(pe.state=29,pe.acceptStateReached=!0):zo(f,pe)}function Ae(pe,Ee){kW(Ee)||Ze(pe)}function me(pe,Ee){zW(Ee)?(pe.state=31,pe.acceptStateReached=!0):zo(f,pe)}function Se(pe,Ee){zW(Ee)||(Jd.test(Ee)?zo(f,pe):Ze(pe))}function Ie(pe,Ee){Ps.test(Ee)?pe.state=38:(zo(f,pe),x(Ee))}function Ve(pe,Ee){Ps.test(Ee)?pe.state=33:zo(f,pe),x(Ee)}function Re(pe,Ee){Ps.test(Ee)?pe.state=34:zo(f,pe)}function ke(pe,Ee){Ps.test(Ee)?pe.state=35:zo(f,pe)}function dt(pe,Ee){Ee===")"?pe.state=36:zo(f,pe)}function pt(pe,Ee){Ps.test(Ee)?pe.state=38:HW(Ee)?pe.state=39:zo(f,pe)}function rt(pe,Ee){pe.acceptStateReached=!0,dk(Ee)?pe.state=40:Ee==="#"?pe.state=41:Ps.test(Ee)||(Ee==="("?pe.state=32:HW(Ee)?pe.state=39:(Ze(pe),ck(Ee)&&f.push(GW(d,0))))}function fn(pe,Ee){Ps.test(Ee)?pe.state=38:Ee==="("?pe.state=32:(Ze(pe),x(Ee))}function Bn(pe,Ee){dk(Ee)||(Ee==="#"?pe.state=41:Ps.test(Ee)?pe.state=38:Ze(pe))}function jt(pe,Ee){dk(Ee)?pe.state=40:Ps.test(Ee)?zo(f,pe):Ze(pe)}function Ze(pe){if(zo(f,pe),!!pe.acceptStateReached){var Ee=pe.startIdx,je=e.slice(pe.startIdx,d);if(je=qKe(je),pe.type==="url"){var fi=e.charAt(pe.startIdx-1);if(fi==="@")return;var Ai=pe.matchType;if(Ai==="scheme"){var er=NW.exec(je);if(er&&(Ee=Ee+er.index,je=je.slice(er.index)),!Qfe(je))return}else if(Ai==="tld"){if(!$fe(je))return}else if(Ai==="ipV4"){if(!ede(je))return}else Sy(Ai);c.push(new tde({tagBuilder:n,matchedText:je,offset:Ee,urlMatchType:Ai,url:je,protocolRelativeMatch:je.slice(0,2)==="//",stripPrefix:i,stripTrailingSlash:o,decodePercentEncoding:r}))}else if(pe.type==="email")ode(je)&&c.push(new rde({tagBuilder:n,matchedText:je,offset:Ee,email:je.replace(nde,"")}));else if(pe.type==="hashtag")sde(je)&&c.push(new cde({tagBuilder:n,matchedText:je,offset:Ee,serviceName:s,hashtag:je.slice(1)}));else if(pe.type==="mention")lde(je,a)&&c.push(new fde({tagBuilder:n,matchedText:je,offset:Ee,serviceName:a,mention:je.slice(1)}));else if(pe.type==="phone"){if(je=je.replace(/ +$/g,""),dde(je)){var Fs=je.replace(/[^0-9,;#]/g,"");c.push(new mde({tagBuilder:n,matchedText:je,offset:Ee,number:Fs,plusSign:je.charAt(0)==="+"}))}}else Sy(pe)}}}var YKe=/[\(\{\[]/,hde=/[\)\}\]]/,pde={")":"(","}":"{","]":"["};function qKe(e){for(var t={"(":0,"{":0,"[":0},n=0;n=0;)if(r=e.charAt(o),hde.test(r)){var s=pde[r];if(t[s]<0)t[s]++,o--;else break}else if(Zfe.test(r))o--;else break;return e.slice(0,o+1)}function GW(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"scheme"}}function WW(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"tld"}}function XKe(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"ipV4",octetsEncountered:1}}function KKe(e,t){return{type:"email",startIdx:e,state:t,acceptStateReached:!1}}function JKe(e,t){return{type:"hashtag",startIdx:e,state:t,acceptStateReached:!1}}function ZKe(e,t){return{type:"mention",startIdx:e,state:t,acceptStateReached:!1}}function jW(e,t){return{type:"phone",startIdx:e,state:t,acceptStateReached:!1}}function gde(e,t){for(var n=t.onOpenTag,i=t.onCloseTag,o=t.onText,r=t.onComment,s=t.onDoctype,a=new fh,c=0,u=e.length,f=0,d=0,p=a;c"?(p=new fh(Os(Os({},p),{name:Q()})),q()):!wy.test(K)&&!Ps.test(K)&&K!==":"&&G()}function C(K){K===">"?G():wy.test(K)?f=3:G()}function T(K){hu.test(K)||(K==="/"?f=12:K===">"?q():K==="<"?U():K==="="||sk.test(K)||zfe.test(K)?G():f=5)}function E(K){hu.test(K)?f=6:K==="/"?f=12:K==="="?f=7:K===">"?q():K==="<"?U():sk.test(K)&&G()}function S(K){hu.test(K)||(K==="/"?f=12:K==="="?f=7:K===">"?q():K==="<"?U():sk.test(K)?G():f=5)}function v(K){hu.test(K)||(K==='"'?f=8:K==="'"?f=9:/[>=`]/.test(K)?G():K==="<"?U():f=10)}function D(K){K==='"'&&(f=11)}function O(K){K==="'"&&(f=11)}function M(K){hu.test(K)?f=4:K===">"?q():K==="<"&&U()}function L(K){hu.test(K)?f=4:K==="/"?f=12:K===">"?q():K==="<"?U():(f=4,W())}function N(K){K===">"?(p=new fh(Os(Os({},p),{isClosing:!0})),q()):f=4}function _(K){e.substr(c,2)==="--"?(c+=2,p=new fh(Os(Os({},p),{type:"comment"})),f=14):e.substr(c,7).toUpperCase()==="DOCTYPE"?(c+=7,p=new fh(Os(Os({},p),{type:"doctype"})),f=20):G()}function b(K){K==="-"?f=15:K===">"?G():f=16}function w(K){K==="-"?f=18:K===">"?G():f=16}function I(K){K==="-"&&(f=17)}function R(K){K==="-"?f=18:f=16}function F(K){K===">"?q():K==="!"?f=19:K==="-"||(f=16)}function k(K){K==="-"?f=17:K===">"?q():f=16}function V(K){K===">"?q():K==="<"&&U()}function G(){f=0,p=a}function U(){f=1,p=new fh({idx:c})}function q(){var K=e.slice(d,p.idx);K&&o(K,d),p.type==="comment"?r(p.idx):p.type==="doctype"?s(p.idx):(p.isOpening&&n(p.name,p.idx),p.isClosing&&i(p.name,p.idx)),G(),d=c+1}function Y(){var K=e.slice(d,c);o(K,d),d=c+1}function Q(){var K=p.idx+(p.isClosing?2:1);return e.slice(K,c).toLowerCase()}function W(){c--}}var fh=function(){function e(t){t===void 0&&(t={}),this.idx=t.idx!==void 0?t.idx:-1,this.type=t.type||"tag",this.name=t.name||"",this.isOpening=!!t.isOpening,this.isClosing=!!t.isClosing}return e}();var QKe=function(){function e(t){t===void 0&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:"end"},this.className="",this.replaceFn=null,this.context=void 0,this.sanitizeHtml=!1,this.tagBuilder=null,this.urls=$Ke(t.urls),this.email=mu(t.email)?t.email:this.email,this.phone=mu(t.phone)?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=mu(t.newWindow)?t.newWindow:this.newWindow,this.stripPrefix=eJe(t.stripPrefix),this.stripTrailingSlash=mu(t.stripTrailingSlash)?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=mu(t.decodePercentEncoding)?t.decodePercentEncoding:this.decodePercentEncoding,this.sanitizeHtml=t.sanitizeHtml||!1;var n=this.mention;if(n!==!1&&ude.indexOf(n)===-1)throw new Error("invalid `mention` cfg '".concat(n,"' - see docs"));var i=this.hashtag;if(i!==!1&&ade.indexOf(i)===-1)throw new Error("invalid `hashtag` cfg '".concat(i,"' - see docs"));this.truncate=tJe(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,n){var i=new e(n);return i.link(t)},e.parse=function(t,n){var i=new e(n);return i.parse(t)},e.prototype.parse=function(t){var n=this,i=["a","style","script"],o=0,r=[];return gde(t,{onOpenTag:function(s){i.indexOf(s)>=0&&o++},onText:function(s,a){if(o===0){var c=/( | |<|<|>|>|"|"|')/gi,u=s.split(c),f=a;u.forEach(function(d,p){if(p%2===0){var g=n.parseText(d,f);r.push.apply(r,g)}f+=d.length})}},onCloseTag:function(s){i.indexOf(s)>=0&&(o=Math.max(o-1,0))},onComment:function(s){},onDoctype:function(s){}}),r=this.compactMatches(r),r=this.removeUnwantedMatches(r),r},e.prototype.compactMatches=function(t){t.sort(function(c,u){return c.getOffset()-u.getOffset()});for(var n=0;nr?n:n+1;t.splice(a,1);continue}if(t[n+1].getOffset()/g,">"));for(var n=this.parse(t),i=[],o=0,r=0,s=n.length;r{let i=new FileReader;i.addEventListener("load",function(){t(i.result)}),i.addEventListener("error",function(){n(i.error)}),i.readAsText(e)})}function YW(e,t){let n=_B(e,"id");return n=l(n)?n:Gn(),t.getOrCreateEntity(n)}function qW(e){let t=Ede(e,"lon"),n=Ede(e,"lat"),i=hB(e,"ele",Eo.gpx);return m.fromDegrees(t,n,i)}function Ede(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function _B(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function vy(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r${d.text}: ${d.value}

`)}if(!l(i)||i==="")return;i=nJe.link(i),pB.innerHTML=i;let s=pB.querySelectorAll("a");for(n=0;n',u+=`${pB.innerHTML}`,pB.innerHTML="",u}function Pde(e,t,n,i){let o=qW(t),r=YW(t,n);r.position=o;let s=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",z.RED,hk);r.billboard=Dde(s);let a=bl(t,"name",Eo.gpx);r.name=a,r.label=rJe(),r.label.text=a,r.description=KW(t,r),i.clampToGround&&(r.billboard.heightReference=qe.CLAMP_TO_GROUND,r.label.heightReference=qe.CLAMP_TO_GROUND)}function sJe(e,t,n,i){let o=YW(t,n);o.description=KW(t,o);let r=XW(t,"rtept",Eo.gpx),s=new Array(r.length);for(let a=0;a0?(a=a.concat(c.times),f.addSamples(a,s),u=u&&!0):u=!1;if(u){let d=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",z.RED,hk);o.billboard=Dde(d),o.position=f,i.clampToGround&&(o.billboard.heightReference=qe.CLAMP_TO_GROUND),o.availability=new vr,o.availability.addInterval(new Tn({start:a[0],stop:a[a.length-1]}))}o.polyline=Ide(i.trackColor),o.polyline.positions=s,i.clampToGround&&(o.polyline.clampToGround=!0)}function cJe(e){let t={positions:[],times:[]},n=XW(e,"trkpt",Eo.gpx),i;for(let o=0;onew Array(t).fill(n,0,t)))}function Tk(e){return e.reduce((t,n)=>t.concat(Array.isArray(n)?Tk(n):n),[])}var Mde=[0,1,2,3].concat(...Ck([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function rr(){let e=this;function t(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,u=e.stat_desc.max_length,f,d,p,g,h,A,x=0;for(g=0;g<=15;g++)o.bl_count[g]=0;for(r[o.heap[o.heap_max]*2+1]=0,f=o.heap_max+1;f<573;f++)d=o.heap[f],g=r[r[d*2+1]*2+1]+1,g>u&&(g=u,x++),r[d*2+1]=g,!(d>e.max_code)&&(o.bl_count[g]++,h=0,d>=c&&(h=a[d-c]),A=r[d*2],o.opt_len+=A*(g+h),s&&(o.static_len+=A*(s[d*2+1]+h)));if(x!==0){do{for(g=u-1;o.bl_count[g]===0;)g--;o.bl_count[g]--,o.bl_count[g+1]+=2,o.bl_count[u]--,x-=2}while(x>0);for(g=u;g!==0;g--)for(d=o.bl_count[g];d!==0;)p=o.heap[--f],!(p>e.max_code)&&(r[p*2+1]!=g&&(o.opt_len+=(g-r[p*2+1])*r[p*2],r[p*2+1]=g),d--)}}function n(o,r){let s=0;do s|=o&1,o>>>=1,s<<=1;while(--r>0);return s>>>1}function i(o,r,s){let a=[],c=0,u,f,d;for(u=1;u<=15;u++)a[u]=c=c+s[u-1]<<1;for(f=0;f<=r;f++)d=o[f*2+1],d!==0&&(o[f*2]=n(a[d]++,d))}e.build_tree=function(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.elems,c,u,f=-1,d;for(o.heap_len=0,o.heap_max=573,c=0;c=1;c--)o.pqdownheap(r,c);d=a;do c=o.heap[1],o.heap[1]=o.heap[o.heap_len--],o.pqdownheap(r,1),u=o.heap[1],o.heap[--o.heap_max]=c,o.heap[--o.heap_max]=u,r[d*2]=r[c*2]+r[u*2],o.depth[d]=Math.max(o.depth[c],o.depth[u])+1,r[c*2+1]=r[u*2+1]=d,o.heap[1]=d++,o.pqdownheap(r,1);while(o.heap_len>=2);o.heap[--o.heap_max]=o.heap[1],t(o),i(r,e.max_code,o.bl_count)}}rr._length_code=[0,1,2,3,4,5,6,7].concat(...Ck([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]));rr.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0];rr.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576];rr.d_code=function(e){return e<256?Mde[e]:Mde[256+(e>>>7)]};rr.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];rr.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];rr.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];rr.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Ta(e,t,n,i,o){let r=this;r.static_tree=e,r.extra_bits=t,r.extra_base=n,r.elems=i,r.max_length=o}var yJe=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],AJe=Ck([[144,8],[112,9],[24,7],[8,8]]);Ta.static_ltree=Tk(yJe.map((e,t)=>[e,AJe[t]]));var xJe=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],CJe=Ck([[30,5]]);Ta.static_dtree=Tk(xJe.map((e,t)=>[e,CJe[t]]));Ta.static_l_desc=new Ta(Ta.static_ltree,rr.extra_lbits,256+1,286,15);Ta.static_d_desc=new Ta(Ta.static_dtree,rr.extra_dbits,0,30,15);Ta.static_bl_desc=new Ta(null,rr.extra_blbits,0,19,7);var TJe=9,EJe=8;function dh(e,t,n,i,o){let r=this;r.good_length=e,r.max_lazy=t,r.nice_length=n,r.max_chain=i,r.func=o}var Bde=0,Ak=1,Mx=2,Zd=[new dh(0,0,0,0,Bde),new dh(4,4,8,4,Ak),new dh(4,5,16,8,Ak),new dh(4,6,32,32,Ak),new dh(4,4,16,16,Mx),new dh(8,16,32,32,Mx),new dh(8,16,128,128,Mx),new dh(8,32,128,256,Mx),new dh(32,128,258,1024,Mx),new dh(32,258,258,4096,Mx)],pk=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Df=0,_k=1,AB=2,gk=3,bJe=32,JW=42,yk=113,xB=666,ZW=8,SJe=0,QW=1,wJe=2,_r=3,xk=258,pu=xk+_r+1;function Rde(e,t,n,i){let o=e[t*2],r=e[n*2];return o=3&&k[rr.bl_order[Be]*2+1]===0;Be--);return e.opt_len+=3*(Be+1)+5+5+4,Be}function Se(Be){e.pending_buf[e.pending++]=Be}function Ie(Be){Se(Be&255),Se(Be>>>8&255)}function Ve(Be){Se(Be>>8&255),Se(Be&255&255)}function Re(Be,st){let Qe,$e=st;J>16-$e?(Qe=Be,K|=Qe<>>16-J,J+=$e-16):(K|=Be<=8&&(Se(K&255),K>>>=8,J-=8)}function fn(){Re(QW<<1,3),ke(256,Ta.static_ltree),rt(),1+W+10-J<9&&(Re(QW<<1,3),ke(256,Ta.static_ltree),rt()),W=7}function Bn(Be,st){let Qe,$e,yt;if(e.dist_buf[Y]=Be,e.lc_buf[Y]=st&255,Y++,Be===0?R[st*2]++:(Q++,Be--,R[(rr._length_code[st]+256+1)*2]++,F[rr.d_code(Be)*2]++),!(Y&8191)&&_>2){for(Qe=Y*8,$e=v-C,yt=0;yt<30;yt++)Qe+=F[yt*2]*(5+rr.extra_dbits[yt]);if(Qe>>>=3,Q8?Ie(K):J>0&&Se(K&255),K=0,J=0}function pe(Be,st,Qe){Ze(),W=8,Qe&&(Ie(st),Ie(~st)),e.pending_buf.set(c.subarray(Be,Be+st),e.pending),e.pending+=st}function Ee(Be,st,Qe){Re((SJe<<1)+(Qe?1:0),3),pe(Be,st,!0)}function je(Be,st,Qe){let $e,yt,zt=0;_>0?(V.build_tree(e),G.build_tree(e),zt=me(),$e=e.opt_len+3+7>>>3,yt=e.static_len+3+7>>>3,yt<=$e&&($e=yt)):$e=yt=st+5,st+4<=$e&&Be!=-1?Ee(Be,st,Qe):yt==$e?(Re((QW<<1)+(Qe?1:0),3),jt(Ta.static_ltree,Ta.static_dtree)):(Re((wJe<<1)+(Qe?1:0),3),pt(V.max_code+1,G.max_code+1,zt+1),jt(R,F)),xe(),Qe&&Ze()}function fi(Be){je(C>=0?C:-1,v-C,Be),C=v,t.flush_pending()}function Ai(){let Be,st,Qe,$e;do{if($e=u-O-v,$e===0&&v===0&&O===0)$e=r;else if($e==-1)$e--;else if(v>=r+r-pu){c.set(c.subarray(r,r+r),0),D-=r,v-=r,C-=r,Be=g,Qe=Be;do st=d[--Qe]&65535,d[Qe]=st>=r?st-r:0;while(--Be!==0);Be=r,Qe=Be;do st=f[--Qe]&65535,f[Qe]=st>=r?st-r:0;while(--Be!==0);$e+=r}if(t.avail_in===0)return;Be=t.read_buf(c,v+O,$e),O+=Be,O>=_r&&(p=c[v]&255,p=(p<i-5&&(st=i-5);;){if(O<=1){if(Ai(),O===0&&Be==0)return Df;if(O===0)break}if(v+=O,O=0,Qe=C+st,(v===0||v>=Qe)&&(O=v-Qe,v=Qe,fi(!1),t.avail_out===0)||v-C>=r-pu&&(fi(!1),t.avail_out===0))return Df}return fi(Be==4),t.avail_out===0?Be==4?AB:Df:Be==4?gk:_k}function Fs(Be){let st=L,Qe=v,$e,yt,zt=M,an=v>r-pu?v-(r-pu):0,Ji=I,go=a,$r=v+xk,es=c[Qe+zt-1],ar=c[Qe+zt];M>=w&&(st>>=2),Ji>O&&(Ji=O);do if($e=Be,!(c[$e+zt]!=ar||c[$e+zt-1]!=es||c[$e]!=c[Qe]||c[++$e]!=c[Qe+1])){Qe+=2,$e++;do;while(c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&Qe<$r);if(yt=xk-($r-Qe),Qe=$r-xk,yt>zt){if(D=Be,zt=yt,yt>=Ji)break;es=c[Qe+zt-1],ar=c[Qe+zt]}}while((Be=f[Be&go]&65535)>an&&--st!==0);return zt<=O?zt:O}function Us(Be){let st=0,Qe;for(;;){if(O=_r&&(p=(p<=_r)if(Qe=Bn(v-D,T-_r),O-=T,T<=N&&O>=_r){T--;do v++,p=(p<=_r&&(p=(p<4096)&&(T=_r-1)),M>=_r&&T<=M){$e=v+O-_r,Qe=Bn(v-1-E,M-_r),O-=M-1,M-=2;do++v<=$e&&(p=(p<TJe||$e!=ZW||Qe<9||Qe>15||st<0||st>9||zt<0||zt>2?-2:(Be.dstate=e,s=Qe,r=1<9||Qe<0||Qe>2?-2:(Zd[_].func!=Zd[st].func&&Be.total_in!==0&&($e=Be.deflate(1)),_!=st&&(_=st,N=Zd[_].max_lazy,w=Zd[_].good_length,I=Zd[_].nice_length,L=Zd[_].max_chain),b=Qe,$e)},e.deflateSetDictionary=function(Be,st,Qe){let $e=Qe,yt,zt=0;if(!st||n!=JW)return-2;if($e<_r)return 0;for($e>r-pu&&($e=r-pu,zt=Qe-$e),c.set(st.subarray(zt,zt+$e),0),v=$e,C=$e,p=c[0]&255,p=(p<4||st<0)return-2;if(!Be.next_out||!Be.next_in&&Be.avail_in!==0||n==xB&&st!=4)return Be.msg=pk[2- -2],-2;if(Be.avail_out===0)return Be.msg=pk[2- -5],-5;if(t=Be,zt=o,o=st,n==JW&&($e=ZW+(s-8<<4)<<8,yt=(_-1&255)>>1,yt>3&&(yt=3),$e|=yt<<6,v!==0&&($e|=bJe),$e+=31-$e%31,n=yk,Ve($e)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return o=-1,0}else if(t.avail_in===0&&st<=zt&&st!=4)return t.msg=pk[2- -5],-5;if(n==xB&&t.avail_in!==0)return Be.msg=pk[2- -5],-5;if(t.avail_in!==0||O!==0||st!=0&&n!=xB){switch(an=-1,Zd[_].func){case Bde:an=er(st);break;case Ak:an=Us(st);break;case Mx:an=Br(st);break;default:}if((an==AB||an==gk)&&(n=xB),an==Df||an==AB)return t.avail_out===0&&(o=-1),0;if(an==_k){if(st==1)fn();else if(Ee(0,0,!1),st==3)for(Qe=0;Qen&&(o=n),o===0?0:(i.avail_in-=o,e.set(i.next_in.subarray(i.next_in_index,i.next_in_index+o),t),i.next_in_index+=o,i.total_in+=o,o)},flush_pending:function(){let e=this,t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,e.dstate.pending===0&&(e.dstate.pending_out=0))}};function DJe(e){let t=this,n=new Lde,i=IJe(e&&e.chunkSize?e.chunkSize:64*1024),o=0,r=new Uint8Array(i),s=e?e.level:-1;typeof s>"u"&&(s=-1),n.deflateInit(s),n.next_out=r,t.append=function(a,c){let u,f,d=0,p=0,g=0,h=[];if(a.length){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,u=n.deflate(o),u!=0)throw new Error("deflating: "+n.msg);n.next_out_index&&(n.next_out_index==i?h.push(new Uint8Array(r)):h.push(r.slice(0,n.next_out_index))),g+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=d&&(c(n.next_in_index),d=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return h.length>1?(f=new Uint8Array(g),h.forEach(function(A){f.set(A,p),p+=A.length})):f=h[0]||new Uint8Array(0),f}},t.flush=function(){let a,c,u=0,f=0,d=[];do{if(n.next_out_index=0,n.avail_out=i,a=n.deflate(4),a!=1&&a!=0)throw new Error("deflating: "+n.msg);i-n.avail_out>0&&d.push(r.slice(0,n.next_out_index)),f+=n.next_out_index}while(n.avail_in>0||n.avail_out===0);return n.deflateEnd(),c=new Uint8Array(f),d.forEach(function(p){c.set(p,u),u+=p.length}),c}}function IJe(e){return e+5*(Math.floor(e/16383)+1)}var Nde=DJe;var _u=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],nme=1440,PJe=0,OJe=4,MJe=9,RJe=5,BJe=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],LJe=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],NJe=[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],FJe=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],UJe=[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],VJe=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Dy=15;function n7(){let e=this,t,n,i,o,r,s;function a(u,f,d,p,g,h,A,x,C,T,E){let S,v,D,O,M,L,N,_,b,w,I,R,F,k,V;w=0,M=d;do i[u[f+w]]++,w++,M--;while(M!==0);if(i[0]==d)return A[0]=-1,x[0]=0,0;for(_=x[0],L=1;L<=Dy&&i[L]===0;L++);for(N=L,_M&&(_=M),x[0]=_,k=1<R+_;){if(O++,R+=_,V=D-R,V=V>_?_:V,(v=1<<(L=N-R))>S+1&&(v-=S+1,F=N,Lnme)return-3;r[O]=I=T[0],T[0]+=V,O!==0?(s[O]=M,o[0]=L,o[1]=_,L=M>>>R-_,o[2]=I-r[O-1]-L,C.set(o,(r[O-1]+L)*3)):A[0]=I}for(o[1]=N-R,w>=d?o[0]=128+64:E[w]>>R;L>>=1)M^=L;for(M^=L,b=(1<257?(T==-3?C.msg="oversubscribed distance tree":T==-5?(C.msg="incomplete distance tree",T=-3):T!=-4&&(C.msg="empty distance tree with lengths",T=-3),T):0)}}n7.inflate_trees_fixed=function(e,t,n,i){return e[0]=MJe,t[0]=RJe,n[0]=BJe,i[0]=LJe,0};var Ek=0,Fde=1,Ude=2,Vde=3,kde=4,zde=5,Hde=6,$W=7,Gde=8,bk=9;function kJe(){let e=this,t,n=0,i,o=0,r=0,s=0,a=0,c=0,u=0,f=0,d,p=0,g,h=0;function A(x,C,T,E,S,v,D,O){let M,L,N,_,b,w,I,R,F,k,V,G,U,q,Y,Q;I=O.next_in_index,R=O.avail_in,b=D.bitb,w=D.bitk,F=D.write,k=F>=L[Q+1],w-=L[Q+1],D.win[F++]=L[Q+2],k--;continue}do{if(b>>=L[Q+1],w-=L[Q+1],_&16){for(_&=15,U=L[Q+2]+(b&_u[_]),b>>=_,w-=_;w<15;)R--,b|=(O.read_byte(I++)&255)<>=L[Q+1],w-=L[Q+1],_&16){for(_&=15;w<_;)R--,b|=(O.read_byte(I++)&255)<>=_,w-=_,k-=U,F>=q)Y=F-q,F-Y>0&&2>F-Y?(D.win[F++]=D.win[Y++],D.win[F++]=D.win[Y++],U-=2):(D.win.set(D.win.subarray(Y,Y+2),F),F+=2,Y+=2,U-=2);else{Y=F-q;do Y+=D.end;while(Y<0);if(_=D.end-Y,U>_){if(U-=_,F-Y>0&&_>F-Y)do D.win[F++]=D.win[Y++];while(--_!==0);else D.win.set(D.win.subarray(Y,Y+_),F),F+=_,Y+=_,_=0;Y=0}}if(F-Y>0&&U>F-Y)do D.win[F++]=D.win[Y++];while(--U!==0);else D.win.set(D.win.subarray(Y,Y+U),F),F+=U,Y+=U,U=0;break}else if(!(_&64))M+=L[Q+2],M+=b&_u[_],Q=(N+M)*3,_=L[Q];else return O.msg="invalid distance code",U=O.avail_in-R,U=w>>3>3:U,R+=U,I-=U,w-=U<<3,D.bitb=b,D.bitk=w,O.avail_in=R,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=F,-3;while(!0);break}if(_&64)return _&32?(U=O.avail_in-R,U=w>>3>3:U,R+=U,I-=U,w-=U<<3,D.bitb=b,D.bitk=w,O.avail_in=R,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=F,1):(O.msg="invalid literal/length code",U=O.avail_in-R,U=w>>3>3:U,R+=U,I-=U,w-=U<<3,D.bitb=b,D.bitk=w,O.avail_in=R,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=F,-3);if(M+=L[Q+2],M+=b&_u[_],Q=(N+M)*3,(_=L[Q])===0){b>>=L[Q+1],w-=L[Q+1],D.win[F++]=L[Q+2],k--;break}}while(!0)}while(k>=258&&R>=10);return U=O.avail_in-R,U=w>>3>3:U,R+=U,I-=U,w-=U<<3,D.bitb=b,D.bitk=w,O.avail_in=R,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=F,0}e.init=function(x,C,T,E,S,v){t=Ek,u=x,f=C,d=T,p=E,g=S,h=v,i=null},e.proc=function(x,C,T){let E,S,v,D=0,O=0,M=0,L,N,_,b;for(M=C.next_in_index,L=C.avail_in,D=x.bitb,O=x.bitk,N=x.write,_=N=258&&L>=10&&(x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,T=A(u,f,d,p,g,h,x,C),M=C.next_in_index,L=C.avail_in,D=x.bitb,O=x.bitk,N=x.write,_=N>>=i[S+1],O-=i[S+1],v=i[S],v===0){s=i[S+2],t=Hde;break}if(v&16){a=v&15,n=i[S+2],t=Ude;break}if(!(v&64)){r=v,o=S/3+i[S+2];break}if(v&32){t=$W;break}return t=bk,C.msg="invalid literal/length code",T=-3,x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);case Ude:for(E=a;O>=E,O-=E,r=f,i=g,o=h,t=Vde;case Vde:for(E=r;O>=i[S+1],O-=i[S+1],v=i[S],v&16){a=v&15,c=i[S+2],t=kde;break}if(!(v&64)){r=v,o=S/3+i[S+2];break}return t=bk,C.msg="invalid distance code",T=-3,x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);case kde:for(E=a;O>=E,O-=E,t=zde;case zde:for(b=N-c;b<0;)b+=x.end;for(;n!==0;){if(_===0&&(N==x.end&&x.read!==0&&(N=0,_=N7&&(O-=8,L++,M--),x.write=N,T=x.inflate_flush(C,T),N=x.write,_=NA.avail_out&&(C=A.avail_out),C!==0&&x==-5&&(x=0),A.avail_out-=C,A.total_out+=C,A.next_out.set(n.win.subarray(E,E+C),T),T+=C,E+=C,E==n.end&&(E=0,n.write==n.end&&(n.write=0),C=n.write-E,C>A.avail_out&&(C=A.avail_out),C!==0&&x==-5&&(x=0),A.avail_out-=C,A.total_out+=C,A.next_out.set(n.win.subarray(E,E+C),T),T+=C,E+=C),A.next_out_index=T,n.read=E,x},n.proc=function(A,x){let C,T,E,S,v,D,O,M;for(S=A.next_in_index,v=A.avail_in,T=n.bitb,E=n.bitk,D=n.write,O=D>>1){case 0:T>>>=3,E-=3,C=E&7,T>>>=C,E-=C,i=e7;break;case 1:L=[],N=[],_=[[]],b=[[]],n7.inflate_trees_fixed(L,N,_,b),f.init(L[0],N[0],_[0],0,b[0],0),T>>>=3,E-=3,i=Sk;break;case 2:T>>>=3,E-=3,i=Yde;break;case 3:return T>>>=3,E-=3,i=Rx,A.msg="invalid block type",x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x)}break;case e7:for(;E<32;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<>>16&65535)!=(T&65535))return i=Rx,A.msg="invalid stored block lengths",x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);o=T&65535,T=E=0,i=o!==0?jde:d!==0?wk:bb;break;case jde:if(v===0||O===0&&(D==n.end&&n.read!==0&&(D=0,O=Dv&&(C=v),C>O&&(C=O),n.win.set(A.read_buf(S,C),D),S+=C,v-=C,D+=C,O-=C,(o-=C)!==0)break;i=d!==0?wk:bb;break;case Yde:for(;E<14;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<29||(C>>5&31)>29)return i=Rx,A.msg="too many length or distance symbols",x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);if(C=258+(C&31)+(C>>5&31),!a||a.length>>=14,E-=14,s=0,i=qde;case qde:for(;s<4+(r>>>10);){for(;E<3;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<>>=3,E-=3}for(;s<19;)a[Wde[s++]]=0;if(c[0]=7,C=h.inflate_trees_bits(a,c,u,p,A),C!=0)return x=C,x==-3&&(a=null,i=Rx),n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);s=0,i=Xde;case Xde:for(;C=r,!(s>=258+(C&31)+(C>>5&31));){let k,V;for(C=c[0];E>>=C,E-=C,a[s++]=V;else{for(M=V==18?7:V-14,k=V==18?11:3;E>>=C,E-=C,k+=T&_u[M],T>>>=M,E-=M,M=s,C=r,M+k>258+(C&31)+(C>>5&31)||V==16&&M<1)return a=null,i=Rx,A.msg="invalid bit length repeat",x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);V=V==16?a[M-1]:0;do a[M++]=V;while(--k!==0);s=M}}if(u[0]=-1,w=[],I=[],R=[],F=[],w[0]=9,I[0]=6,C=r,C=h.inflate_trees_dynamic(257+(C&31),1+(C>>5&31),a,w,I,R,F,p,A),C!=0)return C==-3&&(a=null,i=Rx),x=C,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);f.init(w[0],I[0],p,R[0],p,F[0]),i=Sk;case Sk:if(n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,(x=f.proc(n,A,x))!=1)return n.inflate_flush(A,x);if(x=0,f.free(A),S=A.next_in_index,v=A.avail_in,T=n.bitb,E=n.bitk,D=n.write,O=D15?(e.inflateEnd(n),-2):(e.wbits=i,n.istate.blocks=new zJe(n,1<>4)+8>s.wbits){s.mode=Iy,n.msg="invalid win size",s.marker=5;break}s.mode=Jde;case Jde:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,r=n.read_byte(n.next_in_index++)&255,((s.method<<8)+r)%31!==0){s.mode=Iy,n.msg="incorrect header check",s.marker=5;break}if(!(r&HJe)){s.mode=CB;break}s.mode=Zde;case Zde:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need=(n.read_byte(n.next_in_index++)&255)<<24&4278190080,s.mode=Qde;case Qde:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<16&16711680,s.mode=$de;case $de:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<8&65280,s.mode=eme;case eme:return n.avail_in===0?o:(o=i,n.avail_in--,n.total_in++,s.need+=n.read_byte(n.next_in_index++)&255,s.mode=t7,2);case t7:return s.mode=Iy,n.msg="need dictionary",s.marker=0,-2;case CB:if(o=s.blocks.proc(n,o),o==-3){s.mode=Iy,s.marker=0;break}if(o==0&&(o=i),o!=1)return o;o=i,s.blocks.reset(n,s.was),s.mode=tme;case tme:return n.avail_in=0,1;case Iy:return-3;default:return-2}},e.inflateSetDictionary=function(n,i,o){let r=0,s=o;if(!n||!n.istate||n.istate.mode!=t7)return-2;let a=n.istate;return s>=1<0&&n.next_in_index!=p&&(c(n.next_in_index),p=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return u.length>1?(d=new Uint8Array(h),u.forEach(function(A){d.set(A,g),g+=A.length})):d=u[0]||new Uint8Array(0),d}},t.flush=function(){n.inflateEnd()}}var ome=qJe;var XJe={chunkSize:524288,maxWorkers:typeof navigator<"u"&&navigator.hardwareConcurrency||2,terminateWorkerTimeout:5e3,useWebWorkers:!0,workerScripts:void 0},Sl=Object.assign({},XJe);function vk(){return Sl}function Sb(e){if(e.baseURL!==void 0&&(Sl.baseURL=e.baseURL),e.chunkSize!==void 0&&(Sl.chunkSize=e.chunkSize),e.maxWorkers!==void 0&&(Sl.maxWorkers=e.maxWorkers),e.terminateWorkerTimeout!==void 0&&(Sl.terminateWorkerTimeout=e.terminateWorkerTimeout),e.useWebWorkers!==void 0&&(Sl.useWebWorkers=e.useWebWorkers),e.Deflate!==void 0&&(Sl.Deflate=e.Deflate),e.Inflate!==void 0&&(Sl.Inflate=e.Inflate),e.workerScripts!==void 0){if(e.workerScripts.deflate){if(!Array.isArray(e.workerScripts.deflate))throw new Error("workerScripts.deflate must be an array");Sl.workerScripts||(Sl.workerScripts={}),Sl.workerScripts.deflate=e.workerScripts.deflate}if(e.workerScripts.inflate){if(!Array.isArray(e.workerScripts.inflate))throw new Error("workerScripts.inflate must be an array");Sl.workerScripts||(Sl.workerScripts={}),Sl.workerScripts.inflate=e.workerScripts.inflate}}}var rme=[];for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t&1?t=t>>>1^3988292384:t=t>>>1;rme[e]=t}var i7=class{constructor(t){this.crc=t||-1}append(t){let n=this.crc|0;for(let i=0,o=t.length|0;i>>8^rme[(n^t[i])&255];this.crc=n}get(){return~this.crc}},Py=i7;var TB=KJe;function KJe(e){if(typeof TextEncoder>"u"){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n0&&t&&(e[n-1]=kc.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return e===32?t:(n?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,i){for(i===void 0&&(i=[]);t>=32;t-=32)i.push(n),n=0;if(t===0)return i.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;let o=e.length?e[e.length-1]:0,r=kc.getPartial(o);return i.push(kc.partial(t+r&31,t+r>32?n:i.pop(),1)),i}},EB={bytes:{fromBits(e){let n=kc.bitLength(e)/8,i=new Uint8Array(n),o;for(let r=0;r>>24,o<<=8;return i},toBits(e){let t=[],n,i=0;for(n=0;n9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");let r=new Uint32Array(n),s=0;for(let a=t.blockSize+i-(t.blockSize+i&t.blockSize-1);a<=o;a+=t.blockSize)t._block(r.subarray(16*s,16*(s+1))),s+=1;return n.splice(0,16*s),t},finalize:function(){let e=this,t=e._buffer,n=e._h;t=kc.concat(t,[kc.partial(1,1)]);for(let i=t.length+2;i&15;i++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),n},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:function(e,t,n,i){if(e<=19)return t&n|~t&i;if(e<=39)return t^n^i;if(e<=59)return t&n|t&i|n&i;if(e<=79)return t^n^i},_S:function(e,t){return t<>>32-e},_block:function(e){let t=this,n=t._h,i=Array(80);for(let u=0;u<16;u++)i[u]=e[u];let o=n[0],r=n[1],s=n[2],a=n[3],c=n[4];for(let u=0;u<=79;u++){u>=16&&(i[u]=t._S(1,i[u-3]^i[u-8]^i[u-14]^i[u-16]));let f=t._S(5,o)+t._f(u,r,s,a)+c+i[u]+t._key[Math.floor(u/20)]|0;c=a,a=s,s=t._S(30,r),r=o,o=f}n[0]=n[0]+o|0,n[1]=n[1]+r|0,n[2]=n[2]+s|0,n[3]=n[3]+a|0,n[4]=n[4]+c|0}};var r7={};r7.aes=class{constructor(e){let t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();let n=t._tables[0][4],i=t._tables[1],o=e.length,r,s,a,c=1;if(o!==4&&o!==6&&o!==8)throw new Error("invalid aes key size");for(t._key=[s=e.slice(0),a=[]],r=o;r<4*o+28;r++){let u=s[r-1];(r%o===0||o===8&&r%o===4)&&(u=n[u>>>24]<<24^n[u>>16&255]<<16^n[u>>8&255]<<8^n[u&255],r%o===0&&(u=u<<8^u>>>24^c<<24,c=c<<1^(c>>7)*283)),s[r]=s[r-o]^u}for(let u=0;r;u++,r--){let f=s[u&3?r:r-4];r<=4||u<4?a[u]=f:a[u]=i[0][n[f>>>24]]^i[1][n[f>>16&255]]^i[2][n[f>>8&255]]^i[3][n[f&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){let e=this._tables[0],t=this._tables[1],n=e[4],i=t[4],o=[],r=[],s,a,c,u;for(let f=0;f<256;f++)r[(o[f]=f<<1^(f>>7)*283)^f]=f;for(let f=s=0;!n[f];f^=a||1,s=r[s]||1){let d=s^s<<1^s<<2^s<<3^s<<4;d=d>>8^d&255^99,n[f]=d,i[d]=f,u=o[c=o[a=o[f]]];let p=u*16843009^c*65537^a*257^f*16843008,g=o[d]*257^d*16843008;for(let h=0;h<4;h++)e[h][f]=g=g<<24^g>>>8,t[h][d]=p=p<<24^p>>>8}for(let f=0;f<5;f++)e[f]=e[f].slice(0),t[f]=t[f].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");let n=this._key[t],i=n.length/4-2,o=[0,0,0,0],r=this._tables[t],s=r[0],a=r[1],c=r[2],u=r[3],f=r[4],d=e[0]^n[0],p=e[t?3:1]^n[1],g=e[2]^n[2],h=e[t?1:3]^n[3],A=4,x,C,T;for(let E=0;E>>24]^a[p>>16&255]^c[g>>8&255]^u[h&255]^n[A],C=s[p>>>24]^a[g>>16&255]^c[h>>8&255]^u[d&255]^n[A+1],T=s[g>>>24]^a[h>>16&255]^c[d>>8&255]^u[p&255]^n[A+2],h=s[h>>>24]^a[d>>16&255]^c[p>>8&255]^u[g&255]^n[A+3],A+=4,d=x,p=C,g=T;for(let E=0;E<4;E++)o[t?3&-E:E]=f[d>>>24]<<24^f[p>>16&255]<<16^f[g>>8&255]<<8^f[h&255]^n[A++],x=d,d=p,p=g,g=h,h=x;return o}};var sme={getRandomValues(e){let t=new Uint32Array(e.buffer),n=i=>{let o=987654321,r=4294967295;return function(){return o=36969*(o&65535)+(o>>16)&r,i=18e3*(i&65535)+(i>>16)&r,(((o<<16)+i&r)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let i=0,o;i>24&255)===255){let t=e>>16&255,n=e>>8&255,i=e&255;t===255?(t=0,n===255?(n=0,i===255?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let i;if(!(i=t.length))return[];let o=kc.bitLength(t);for(let r=0;r>5)+1<<2,r,s,a,c,u,f=new ArrayBuffer(o),d=new DataView(f),p=0,g=kc;for(t=EB.bytes.toBits(t),u=1;p<(o||1);u++){for(r=s=e.encrypt(g.concat(t,[u])),a=1;ao&&(e=n.hash(e));for(let r=0;re.length){let n=e;e=new Uint8Array(t),e.set(n,0)}return e}function gu(e,t,n){return e.subarray(t,n)}var Ib=12,Ok=class{constructor(t,n){let i=this;Object.assign(i,{password:t,passwordVerification:n}),Ame(i,t)}append(t){let n=this;if(n.password){let i=_me(n,t.subarray(0,Ib));if(n.password=null,i[Ib-1]!=n.passwordVerification)throw new Error(Db);t=t.subarray(Ib)}return _me(n,t)}flush(){return{valid:!0,data:new Uint8Array(0)}}},Mk=class{constructor(t,n){let i=this;Object.assign(i,{password:t,passwordVerification:n}),Ame(i,t)}append(t){let n=this,i,o;if(n.password){n.password=null;let r=crypto.getRandomValues(new Uint8Array(Ib));r[Ib-1]=n.passwordVerification,i=new Uint8Array(t.length+r.length),i.set(gme(n,r),0),o=Ib}else i=new Uint8Array(t.length),o=0;return i.set(gme(n,t),o),i}flush(){return{data:new Uint8Array(0)}}};function _me(e,t){let n=new Uint8Array(t.length);for(let i=0;i>>24]),e.keys[2]=~e.crcKey2.get()}function xme(e){let t=e.keys[2]|2;return Cme(Math.imul(t,t^1)>>>8)}function Cme(e){return e&255}function yme(e){return e&4294967295}var Bk="deflate",Lk="inflate",Rk="Invalid signature",l7=class{constructor(t,{signature:n,password:i,signed:o,compressed:r,zipCrypto:s,passwordVerification:a,encryptionStrength:c},{chunkSize:u}){let f=!!i;Object.assign(this,{signature:n,encrypted:f,signed:o,compressed:r,inflate:r&&new t({chunkSize:u}),crc32:o&&new Py,zipCrypto:s,decrypt:f&&s?new Ok(i,a):new Dk(i,o,c)})}async append(t){let n=this;return n.encrypted&&t.length&&(t=await n.decrypt.append(t)),n.compressed&&t.length&&(t=await n.inflate.append(t)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),t}async flush(){let t=this,n,i=new Uint8Array(0);if(t.encrypted){let o=t.decrypt.flush();if(!o.valid)throw new Error(Rk);i=o.data}if((!t.encrypted||t.zipCrypto)&&t.signed){let o=new DataView(new Uint8Array(4).buffer);if(n=t.crc32.get(),o.setUint32(0,n),t.signature!=o.getUint32(0,!1))throw new Error(Rk)}return t.compressed&&(i=await t.inflate.append(i)||new Uint8Array(0),await t.inflate.flush()),{data:i,signature:n}}},u7=class{constructor(t,{encrypted:n,signed:i,compressed:o,level:r,zipCrypto:s,password:a,passwordVerification:c,encryptionStrength:u},{chunkSize:f}){Object.assign(this,{encrypted:n,signed:i,compressed:o,deflate:o&&new t({level:r||5,chunkSize:f}),crc32:i&&new Py,zipCrypto:s,encrypt:n&&s?new Mk(a,c):new Ik(a,u)})}async append(t){let n=this,i=t;return n.compressed&&t.length&&(i=await n.deflate.append(t)),n.encrypted&&i.length&&(i=await n.encrypt.append(i)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),i}async flush(){let t=this,n,i=new Uint8Array(0);if(t.compressed&&(i=await t.deflate.flush()||new Uint8Array(0)),t.encrypted){i=await t.encrypt.append(i);let o=t.encrypt.flush();n=o.signature;let r=new Uint8Array(i.length+o.data.length);r.set(i,0),r.set(o.data,i.length),i=r}return(!t.encrypted||t.zipCrypto)&&t.signed&&(n=t.crc32.get()),{data:i,signature:n}}};function Tme(e,t,n){if(t.codecType.startsWith(Bk))return new u7(e,t,n);if(t.codecType.startsWith(Lk))return new l7(e,t,n)}var Eme="init",bme="append",f7="flush",aZe="message",Sme=!0,Nk=(e,t,n,i,o,r,s)=>(Object.assign(e,{busy:!0,codecConstructor:t,options:Object.assign({},n),scripts:s,terminate(){e.worker&&!e.busy&&(e.worker.terminate(),e.interface=null)},onTaskFinished(){e.busy=!1,o(e)}}),r?lZe(e,i):cZe(e,i));function cZe(e,t){let n=Tme(e.codecConstructor,e.options,t);return{async append(i){try{return await n.append(i)}catch(o){throw e.onTaskFinished(),o}},async flush(){try{return await n.flush()}finally{e.onTaskFinished()}},abort(){e.onTaskFinished()}}}function lZe(e,t){let n,i={type:"module"};if(!e.interface){if(!Sme)e.worker=o(i,t.baseURL);else try{e.worker=o({},t.baseURL)}catch{Sme=!1,e.worker=o(i,t.baseURL)}e.worker.addEventListener(aZe,a,!1),e.interface={append(c){return r({type:bme,data:c})},flush(){return r({type:f7})},abort(){e.onTaskFinished()}}}return e.interface;function o(c,u){let f,d;f=e.scripts[0],typeof f=="function"&&(f=f());try{d=new URL(f,u)}catch{d=f}return new Worker(d,c)}async function r(c){if(!n){let u=e.options,f=e.scripts.slice(1);await s({scripts:f,type:Eme,options:u,config:{chunkSize:t.chunkSize}})}return s(c)}function s(c){let u=e.worker,f=new Promise((d,p)=>n={resolve:d,reject:p});try{if(c.data)try{c.data=c.data.buffer,u.postMessage(c,[c.data])}catch{u.postMessage(c)}else u.postMessage(c)}catch(d){n.reject(d),n=null,e.onTaskFinished()}return f}function a(c){let u=c.data;if(n){let f=u.error,d=u.type;if(f){let p=new Error(f.message);p.stack=f.stack,n.reject(p),n=null,e.onTaskFinished()}else if(d==Eme||d==f7||d==bme){let p=u.data;d==f7?(n.resolve({data:new Uint8Array(p),signature:u.signature}),n=null,e.onTaskFinished()):n.resolve(p&&new Uint8Array(p))}}}}var Bx=[],d7=[];function Fk(e,t,n){let o=!(!t.compressed&&!t.signed&&!t.encrypted)&&(t.useWebWorkers||t.useWebWorkers===void 0&&n.useWebWorkers),r=o&&n.workerScripts?n.workerScripts[t.codecType]:[];if(Bx.length!c.busy);return a?(wme(a),Nk(a,e,t,n,s,o,r)):new Promise(c=>d7.push({resolve:c,codecConstructor:e,options:t,webWorker:o,scripts:r}))}function s(a){if(d7.length){let[{resolve:c,codecConstructor:u,options:f,webWorker:d,scripts:p}]=d7.splice(0,1);c(Nk(a,u,f,n,s,d,p))}else a.worker?(wme(a),Number.isFinite(n.terminateWorkerTimeout)&&n.terminateWorkerTimeout>=0&&(a.terminateTimeout=setTimeout(()=>{Bx=Bx.filter(c=>c!=a),a.terminate()},n.terminateWorkerTimeout))):Bx=Bx.filter(c=>c!=a)}}function wme(e){e.terminateTimeout&&(clearTimeout(e.terminateTimeout),e.terminateTimeout=null)}var Dme="Abort error";async function Uk(e,t,n,i,o,r,s){let a=Math.max(r.chunkSize,64);return c();async function c(u=0,f=0){let d=s.signal,p=o();if(u{t.onload=o=>n(o.target.result),t.onerror=()=>i(t.error),t.readAsText(this.blob,this.encoding)})}}};var Gk=class extends wB{constructor(t){super(),this.data="data:"+(t||"")+";base64,",this.pending=[]}writeUint8Array(t){super.writeUint8Array(t);let n=0,i=this.pending,o=this.pending.length;for(this.pending="",n=0;n2?this.data+=btoa(i):this.pending=i}getData(){return this.data+btoa(this.pending)}},Lx=class extends kk{constructor(t){super(),this.blob=t,this.size=t.size}async readUint8Array(t,n){if(this.blob.arrayBuffer)return new Uint8Array(await this.blob.slice(t,t+n).arrayBuffer());{let i=new FileReader;return new Promise((o,r)=>{i.onload=s=>o(new Uint8Array(s.target.result)),i.onerror=()=>r(i.error),i.readAsArrayBuffer(this.blob.slice(t,t+n))})}}},Pb=class extends wB{constructor(t){super(),this.contentType=t,this.arrayBuffersMaxlength=8,Ime(this)}writeUint8Array(t){super.writeUint8Array(t),this.arrayBuffers.length==this.arrayBuffersMaxlength&&Pme(this),this.arrayBuffers.push(t.buffer)}getData(){return this.blob||(this.arrayBuffers.length&&Pme(this),this.blob=this.pendingBlob,Ime(this)),this.blob}};function Ime(e){e.pendingBlob=new Blob([],{type:e.contentType}),e.arrayBuffers=[]}function Pme(e){e.pendingBlob=new Blob([e.pendingBlob,...e.arrayBuffers],{type:e.contentType}),e.arrayBuffers=[]}var Ob="/",p7=new Date(2107,11,31),_7=new Date(1980,0,1);var uZe="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),Ome=e=>{let t="";for(let n=0;n"u"){let n=new FileReader;return new Promise((i,o)=>{n.onload=r=>i(r.target.result),n.onerror=()=>o(n.error),n.readAsText(new Blob([e]))})}else return new TextDecoder(t).decode(e)}var dZe=["filename","rawFilename","directory","encrypted","compressedSize","uncompressedSize","lastModDate","rawLastModDate","comment","rawComment","signature","extraField","rawExtraField","bitFlag","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","filenameUTF8","commentUTF8","offset","zip64","compressionMethod","extraFieldNTFS","lastAccessDate","creationDate","extraFieldExtendedTimestamp","version","versionMadeBy","msDosCompatible","internalFileAttribute","externalFileAttribute"],E_=class{constructor(t){dZe.forEach(n=>this[n]=t[n])}};var A7="File format is not recognized",_Ze="End of central directory not found",gZe="End of Zip64 central directory not found",yZe="End of Zip64 central directory locator not found",AZe="Central directory header not found",xZe="Local file header not found",CZe="Zip64 extra field not found",TZe="File contains encrypted entry",EZe="Encryption method not supported",Mme="Compression method not supported",Rme="utf-8",Bme="cp437",Lme=["uncompressedSize","compressedSize","offset"],$k=class{constructor(t,n={}){Object.assign(this,{reader:t,options:n,config:vk()})}async*getEntriesGenerator(t={}){let n=this,i=n.reader;if(i.initialized||await i.init(),i.size<22)throw new Error(A7);let o=await DZe(i,101010256,i.size,22,65535*16);if(!o)throw new Error(_Ze);let r=oc(o),s=na(r,12),a=na(r,16),c=yu(r,8),u=0;if(a==4294967295||s==4294967295||c==65535){let g=await My(i,o.offset-20,20),h=oc(g);if(na(h,0)!=117853008)throw new Error(gZe);a=jk(h,8);let A=await My(i,a,56),x=oc(A),C=o.offset-20-56;if(na(x,0)!=101075792&&a!=C){let T=a;a=C,u=a-T,A=await My(i,a,56),x=oc(A)}if(na(x,0)!=101075792)throw new Error(yZe);c=jk(x,32),s=jk(x,40),a-=s}if(a<0||a>=i.size)throw new Error(A7);let f=0,d=await My(i,a,s),p=oc(d);if(s){let g=o.offset-s;if(na(p,f)!=33639248&&a!=g){let h=a;a=g,u=a-h,d=await My(i,a,s),p=oc(d)}}if(a<0||a>=i.size)throw new Error(A7);for(let g=0;gh.getData(_,N,b),f=v,t.onprogress)try{t.onprogress(g+1,c,new E_(h))}catch{}yield N}return!0}async getEntries(t={}){let n=[],i=this.getEntriesGenerator(t),o=i.next();for(;!(await o).done;)n.push((await o).value),o=i.next();return n}async close(){}};var C7=class{constructor(t,n,i){Object.assign(this,{reader:t,config:n,options:i})}async getData(t,n,i={}){let o=this,{reader:r,offset:s,extraFieldAES:a,compressionMethod:c,config:u,bitFlag:f,signature:d,rawLastModDate:p,compressedSize:g}=o,h=o.localDirectory={};r.initialized||await r.init();let A=await My(r,s,30),x=oc(A),C=Mb(o,i,"password");if(C=C&&C.length&&C,a&&a.originalCompressionMethod!=99)throw new Error(Mme);if(c!=0&&c!=8)throw new Error(Mme);if(na(x,0)!=67324752)throw new Error(xZe);Fme(h,x,4),A=await My(r,s,30+h.filenameLength+h.extraFieldLength),h.rawExtraField=A.subarray(30+h.filenameLength),await Ume(o,h,x,4),n.lastAccessDate=h.lastAccessDate,n.creationDate=h.creationDate;let T=o.encrypted&&h.encrypted,E=T&&!a;if(T){if(!E&&a.strength===void 0)throw new Error(EZe);if(!C)throw new Error(TZe)}let S=await Fk(u.Inflate,{codecType:Lk,password:C,zipCrypto:E,encryptionStrength:a&&a.strength,signed:Mb(o,i,"checkSignature"),passwordVerification:E&&(f.dataDescriptor?p>>>8&255:d>>>24&255),signature:d,compressed:c!=0,encrypted:T,useWebWorkers:Mb(o,i,"useWebWorkers")},u);t.initialized||await t.init();let v=Mb(o,i,"signal"),D=s+30+h.filenameLength+h.extraFieldLength;return await Uk(S,r,t,D,()=>g,u,{onprogress:i.onprogress,signal:v}),t.getData()}};function Fme(e,t,n){let i=e.rawBitFlag=yu(t,n+2),o=(i&1)==1,r=na(t,n+6);Object.assign(e,{encrypted:o,version:yu(t,n),bitFlag:{level:(i&6)>>1,dataDescriptor:(i&8)==8,languageEncodingFlag:(i&2048)==2048},rawLastModDate:r,lastModDate:IZe(r),filenameLength:yu(t,n+22),extraFieldLength:yu(t,n+24)})}async function Ume(e,t,n,i){let o=t.rawExtraField,r=t.extraField=new Map,s=oc(new Uint8Array(o)),a=0;try{for(;at[o]==4294967295);for(let o=0;o{if(t[o]==4294967295)if(e[o]!==void 0)t[o]=e[o];else throw new Error(CZe)})}async function Nme(e,t,n,i,o){let r=oc(e.data);e.version=Rb(r,0),e.signature=na(r,1);let s=new Py;s.append(o[n]);let a=oc(new Uint8Array(4));a.setUint32(0,s.get(),!0),e[t]=await Wk(e.data.subarray(5)),e.valid=!o.bitFlag.languageEncodingFlag&&e.signature==na(a,0),e.valid&&(i[t]=e[t],i[t+"UTF8"]=!0)}function SZe(e,t,n){let i=oc(e.data);e.vendorVersion=Rb(i,0),e.vendorId=Rb(i,2);let o=Rb(i,4);e.strength=o,e.originalCompressionMethod=n,t.compressionMethod=e.compressionMethod=yu(i,5)}function wZe(e,t){let n=oc(e.data),i=4,o;try{for(;i{if(e.data.length>=s+4){let u=na(n,s);t[a]=e[a]=new Date(u*1e3);let f=r[c];e[f]=u}s+=4})}async function DZe(e,t,n,i,o){let r=new Uint8Array(4),s=oc(r);PZe(s,0,t);let a=i+o;return await c(i)||await c(Math.min(a,n));async function c(u){let f=n-u,d=await My(e,f,u);for(let p=d.length-i;p>=0;p--)if(d[p]==r[0]&&d[p+1]==r[1]&&d[p+2]==r[2]&&d[p+3]==r[3])return{offset:f+p,buffer:d.slice(p,p+i).buffer}}}function Mb(e,t,n){return t[n]===void 0?e.options[n]:t[n]}function IZe(e){let t=(e&4294901760)>>16,n=e&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(n&63488)>>11,(n&2016)>>5,(n&31)*2,0)}catch{}}function x7(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function Rb(e,t){return e.getUint8(t)}function yu(e,t){return e.getUint16(t,!0)}function na(e,t){return e.getUint32(t,!0)}function jk(e,t){return Number(e.getBigUint64(t,!0))}function PZe(e,t,n){e.setUint32(t,n,!0)}function oc(e){return new DataView(e.buffer)}function My(e,t,n){return e.readUint8Array(t,n)}var LZe="File already exists",NZe="Zip file comment exceeds 64KB",FZe="File entry comment exceeds 64KB",UZe="File entry name exceeds 64KB",zme="Version exceeds 65535",VZe="The strength must equal 1, 2, or 3",kZe="Extra field type exceeds 65535",zZe="Extra field data exceeds 64KB",R7="Zip64 is not supported",Hme=new Uint8Array([7,0,2,0,65,69,3,0,0]),Gme=24,O7=0,n4=class{constructor(t,n={}){Object.assign(this,{writer:t,options:n,config:vk(),files:new Map,offset:t.size,pendingCompressedSize:0,pendingEntries:[],pendingAddFileCalls:new Set})}async add(t="",n,i={}){let o=this;if(O7o.pendingEntries.push({name:t,reader:n,options:i,resolve:r,reject:s}))}async close(t=new Uint8Array(0),n={}){for(;this.pendingAddFileCalls.size;)await Promise.all(Array.from(this.pendingAddFileCalls));return await jZe(this,t,n),this.writer.getData()}};async function HZe(e,t,n,i){if(t=t.trim(),i.directory&&!t.endsWith(Ob)?t+=Ob:i.directory=t.endsWith(Ob),e.files.has(t))throw new Error(LZe);let o=TB(t);if(o.length>65535)throw new Error(UZe);let r=i.comment||"",s=TB(r);if(s.length>65535)throw new Error(FZe);let a=e.options.version||i.version||0;if(a>65535)throw new Error(zme);let c=e.options.versionMadeBy||i.versionMadeBy||20;if(c>65535)throw new Error(zme);let u=Ea(e,i,"lastModDate")||new Date,f=Ea(e,i,"lastAccessDate"),d=Ea(e,i,"creationDate"),p=Ea(e,i,"password"),g=Ea(e,i,"encryptionStrength")||3,h=Ea(e,i,"zipCrypto");if(p!==void 0&&g!==void 0&&(g<1||g>3))throw new Error(VZe);let A=new Uint8Array(0),x=i.extraField;if(x){let F=0,k=0;x.forEach(V=>F+=4+V.length),A=new Uint8Array(F),x.forEach((V,G)=>{if(G>65535)throw new Error(kZe);if(V.length>65535)throw new Error(zZe);oa(A,new Uint16Array([G]),k),oa(A,new Uint16Array([V.length]),k+2),oa(A,V,k+4),k+=4+V.length})}let C=Ea(e,i,"extendedTimestamp");C===void 0&&(C=!0);let T=0,E=Ea(e,i,"keepOrder");E===void 0&&(E=!0);let S=0,v=Ea(e,i,"msDosCompatible");v===void 0&&(v=!0);let D=Ea(e,i,"internalFileAttribute")||0,O=Ea(e,i,"externalFileAttribute")||0;n&&(n.initialized||await n.init(),S=n.size,T=qZe(S));let M=i.zip64||e.options.zip64||!1;if(e.offset+e.pendingCompressedSize>=4294967295||S>=4294967295||T>=4294967295){if(i.zip64===!1||e.options.zip64===!1||!E)throw new Error(R7);M=!0}e.pendingCompressedSize+=T,await Promise.resolve();let L=Ea(e,i,"level"),N=Ea(e,i,"useWebWorkers"),_=Ea(e,i,"bufferedWrite"),b=Ea(e,i,"dataDescriptor"),w=Ea(e,i,"dataDescriptorSignature"),I=Ea(e,i,"signal");b===void 0&&(b=!0),b&&w===void 0&&(w=!1);let R=await GZe(e,t,n,Object.assign({},i,{rawFilename:o,rawComment:s,version:a,versionMadeBy:c,lastModDate:u,lastAccessDate:f,creationDate:d,rawExtraField:A,zip64:M,password:p,level:L,useWebWorkers:N,encryptionStrength:g,extendedTimestamp:C,zipCrypto:h,bufferedWrite:_,keepOrder:E,dataDescriptor:b,dataDescriptorSignature:w,signal:I,msDosCompatible:v,internalFileAttribute:D,externalFileAttribute:O}));return T&&(e.pendingCompressedSize-=T),Object.assign(R,{name:t,comment:r,extraField:x}),new E_(R)}async function GZe(e,t,n,i){let o=e.files,r=e.writer,s=Array.from(o.values()).pop(),a={},c,u,f;o.set(t,a);try{let d,p,g;if(i.keepOrder&&(d=s&&s.lock),a.lock=g=new Promise(h=>f=h),i.bufferedWrite||e.lockWrite||!i.dataDescriptor?(p=new Pb,p.init(),c=!0):(e.lockWrite=new Promise(h=>u=h),r.initialized||await r.init(),p=r),a=await WZe(n,p,e.config,i),a.lock=g,o.set(t,a),a.filename=t,c){let h=0,A=p.getData();await Promise.all([e.lockWrite,d]);let x;do x=Array.from(o.values()).find(C=>C.writingBufferedData),x&&await x.lock;while(x&&x.lock);if(a.writingBufferedData=!0,!i.dataDescriptor){let T=await Wme(A,0,26),E=new DataView(T);(!a.encrypted||i.zipCrypto)&&mo(E,14,a.signature),a.zip64?(mo(E,18,4294967295),mo(E,22,4294967295)):(mo(E,18,a.compressedSize),mo(E,22,a.uncompressedSize)),await r.writeUint8Array(new Uint8Array(T)),h=26}await YZe(r,A,h),delete a.writingBufferedData}if(a.offset=e.offset,a.zip64){let h=Qd(a.rawExtraFieldZip64);wl(h,20,BigInt(a.offset))}else if(a.offset>=4294967295)throw new Error(R7);return e.offset+=a.length,a}catch(d){throw(c&&a.writingBufferedData||!c&&a.dataWritten)&&(d.corruptedEntry=e.hasCorruptedEntries=!0,a.uncompressedSize&&(e.offset+=a.uncompressedSize)),o.delete(t),d}finally{f(),u&&u()}}async function WZe(e,t,n,i){let{rawFilename:o,lastAccessDate:r,creationDate:s,password:a,level:c,zip64:u,zipCrypto:f,dataDescriptor:d,dataDescriptorSignature:p,directory:g,version:h,versionMadeBy:A,rawComment:x,rawExtraField:C,useWebWorkers:T,onprogress:E,signal:S,encryptionStrength:v,extendedTimestamp:D,msDosCompatible:O,internalFileAttribute:M,externalFileAttribute:L}=i,N=!!(a&&a.length),_=c!==0&&!g,b;if(N&&!f){b=new Uint8Array(Hme.length+2);let Ve=Qd(b);Ko(Ve,0,39169),oa(b,Hme,2),i4(Ve,8,v)}else b=new Uint8Array(0);let w,I;if(D){I=new Uint8Array(9+(r?4:0)+(s?4:0));let Ve=Qd(I);Ko(Ve,0,21589),Ko(Ve,2,I.length-4);let Re=1+(r?2:0)+(s?4:0);i4(Ve,4,Re),mo(Ve,5,Math.floor(i.lastModDate.getTime()/1e3)),r&&mo(Ve,9,Math.floor(r.getTime()/1e3)),s&&mo(Ve,13,Math.floor(s.getTime()/1e3));try{w=new Uint8Array(36);let ke=Qd(w),dt=M7(i.lastModDate);Ko(ke,0,10),Ko(ke,2,32),Ko(ke,8,1),Ko(ke,10,24),wl(ke,12,dt),wl(ke,20,M7(r)||dt),wl(ke,28,M7(s)||dt)}catch{w=new Uint8Array(0)}}else w=I=new Uint8Array(0);let R={version:h||20,versionMadeBy:A,zip64:u,directory:!!g,filenameUTF8:!0,rawFilename:o,commentUTF8:!0,rawComment:x,rawExtraFieldZip64:u?new Uint8Array(Gme+4):new Uint8Array(0),rawExtraFieldExtendedTimestamp:I,rawExtraFieldNTFS:w,rawExtraFieldAES:b,rawExtraField:C,extendedTimestamp:D,msDosCompatible:O,internalFileAttribute:M,externalFileAttribute:L},F=R.uncompressedSize=0,k=2048;d&&(k=k|8);let V=0;_&&(V=8),u&&(R.version=R.version>45?R.version:45),N&&(k=k|1,f||(R.version=R.version>51?R.version:51,V=99,_&&(R.rawExtraFieldAES[9]=8))),R.compressionMethod=V;let G=R.headerArray=new Uint8Array(26),U=Qd(G);Ko(U,0,R.version),Ko(U,2,k),Ko(U,4,V);let q=new Uint32Array(1),Y=Qd(q),Q;i.lastModDate<_7?Q=_7:i.lastModDate>p7?Q=p7:Q=i.lastModDate,Ko(Y,0,(Q.getHours()<<6|Q.getMinutes())<<5|Q.getSeconds()/2),Ko(Y,2,(Q.getFullYear()-1980<<4|Q.getMonth()+1)<<5|Q.getDate());let W=q[0];mo(U,6,W),Ko(U,22,o.length);let K=b.length+I.length+w.length+R.rawExtraField.length;Ko(U,24,K);let J=new Uint8Array(30+o.length+K),_e=Qd(J);mo(_e,0,67324752),oa(J,G,4),oa(J,o,30),oa(J,b,30+o.length),oa(J,I,30+o.length+b.length),oa(J,w,30+o.length+b.length+I.length),oa(J,R.rawExtraField,30+o.length+b.length+I.length+w.length);let xe,se=0;if(e){let Ve=await Fk(n.Deflate,{codecType:Bk,level:c,password:a,encryptionStrength:v,zipCrypto:N&&f,passwordVerification:N&&f&&W>>8&255,signed:!0,compressed:_,encrypted:N,useWebWorkers:T},n);await t.writeUint8Array(J),R.dataWritten=!0,xe=await Uk(Ve,e,t,0,()=>e.size,n,{onprogress:E,signal:S}),F=R.uncompressedSize=e.size,se=xe.length}else await t.writeUint8Array(J),R.dataWritten=!0;let Ae=new Uint8Array(0),me,Se=0;if(d&&(Ae=new Uint8Array(u?p?24:20:p?16:12),me=Qd(Ae),p&&(Se=4,mo(me,0,134695760))),e){let Ve=xe.signature;if((!N||f)&&Ve!==void 0&&(mo(U,10,Ve),R.signature=Ve,d&&mo(me,Se,Ve)),u){let Re=Qd(R.rawExtraFieldZip64);Ko(Re,0,1),Ko(Re,2,Gme),mo(U,14,4294967295),wl(Re,12,BigInt(se)),mo(U,18,4294967295),wl(Re,4,BigInt(F)),d&&(wl(me,Se+4,BigInt(se)),wl(me,Se+12,BigInt(F)))}else mo(U,14,se),mo(U,18,F),d&&(mo(me,Se+4,se),mo(me,Se+8,F))}d&&await t.writeUint8Array(Ae);let Ie=J.length+se+Ae.length;return Object.assign(R,{compressedSize:se,lastModDate:Q,rawLastModDate:W,creationDate:s,lastAccessDate:r,encrypted:N,length:Ie}),R}async function jZe(e,t,n){let i=e.writer,o=e.files,r=0,s=0,a=e.offset,c=o.size;for(let[,p]of o)s+=46+p.rawFilename.length+p.rawComment.length+p.rawExtraFieldZip64.length+p.rawExtraFieldAES.length+p.rawExtraFieldExtendedTimestamp.length+p.rawExtraFieldNTFS.length+p.rawExtraField.length;let u=n.zip64||e.options.zip64||!1;if(a>=4294967295||s>=4294967295||c>=65535){if(n.zip64===!1||e.options.zip64===!1)throw new Error(R7);u=!0}let f=new Uint8Array(s+(u?98:22)),d=Qd(f);if(t&&t.length)if(t.length<=65535)Ko(d,r+20,t.length);else throw new Error(NZe);for(let[p,g]of Array.from(o.values()).entries()){let{rawFilename:h,rawExtraFieldZip64:A,rawExtraFieldAES:x,rawExtraField:C,rawComment:T,versionMadeBy:E,headerArray:S,directory:v,zip64:D,msDosCompatible:O,internalFileAttribute:M,externalFileAttribute:L}=g,N,_;if(g.extendedTimestamp){_=g.rawExtraFieldNTFS,N=new Uint8Array(9);let w=Qd(N);Ko(w,0,21589),Ko(w,2,N.length-4),i4(w,4,1),mo(w,5,Math.floor(g.lastModDate.getTime()/1e3))}else _=N=new Uint8Array(0);let b=A.length+x.length+N.length+_.length+C.length;if(mo(d,r,33639248),Ko(d,r+4,E),oa(f,S,r+6),Ko(d,r+30,b),Ko(d,r+32,T.length),mo(d,r+34,M),L?mo(d,r+38,L):v&&O&&i4(d,r+38,16),D?mo(d,r+42,4294967295):mo(d,r+42,g.offset),oa(f,h,r+46),oa(f,A,r+46+h.length),oa(f,x,r+46+h.length+A.length),oa(f,N,r+46+h.length+A.length+x.length),oa(f,_,r+46+h.length+A.length+x.length+N.length),oa(f,C,r+46+h.length+A.length+x.length+N.length+_.length),oa(f,T,r+46+h.length+b),r+=46+h.length+b+T.length,n.onprogress)try{n.onprogress(p+1,o.size,new E_(g))}catch{}}u&&(mo(d,r,101075792),wl(d,r+4,BigInt(44)),Ko(d,r+12,45),Ko(d,r+14,45),wl(d,r+24,BigInt(c)),wl(d,r+32,BigInt(c)),wl(d,r+40,BigInt(s)),wl(d,r+48,BigInt(a)),mo(d,r+56,117853008),wl(d,r+64,BigInt(a)+BigInt(s)),mo(d,r+72,1),c=65535,a=4294967295,s=4294967295,r+=76),mo(d,r,101010256),Ko(d,r+8,c),Ko(d,r+10,c),mo(d,r+12,s),mo(d,r+16,a),await i.writeUint8Array(f),t&&t.length&&await i.writeUint8Array(t)}function Wme(e,t,n){if(e.arrayBuffer)return t||n?e.slice(t,n).arrayBuffer():e.arrayBuffer();{let i=new FileReader;return new Promise((o,r)=>{i.onload=s=>o(s.target.result),i.onerror=()=>r(i.error),i.readAsArrayBuffer(t||n?e.slice(t,n):e)})}}async function YZe(e,t,n=0){await o();async function o(){if(n=0&&r._activeEntries.splice(s,1)}),o(e,t,n)}}else l(n)&&n(!1)}function JZe(e,t,n,i){let o=this.playlist[this.playlistIndex];if(this.entryEnd.raiseEvent(o,i),i)n(i);else{let r=this._activeEntries.indexOf(o);r>=0&&this._activeEntries.splice(r,1),this.playlistIndex++,qme.call(this,e,t,n)}}var DB=o4;var Ui={Linear:{None:function(e){return e}},Quadratic:{In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}},Cubic:{In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}},Quartic:{In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}},Quintic:{In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}},Sinusoidal:{In:function(e){return 1-Math.cos(e*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.cos(Math.PI*e))}},Exponential:{In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}},Circular:{In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}},Elastic:{In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}},Back:{In:function(e){var t=1.70158;return e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)}},Bounce:{In:function(e){return 1-Ui.Bounce.Out(1-e)},Out:function(e){return e<.36363636363636365?7.5625*e*e:e<.7272727272727273?7.5625*(e-=.5454545454545454)*e+.75:e<.9090909090909091?7.5625*(e-=.8181818181818182)*e+.9375:7.5625*(e-=.9545454545454546)*e+.984375},InOut:function(e){return e<.5?Ui.Bounce.In(e*2)*.5:Ui.Bounce.Out(e*2-1)*.5+.5}}},IB;typeof self>"u"&&typeof process<"u"&&process.hrtime?IB=function(){var e=process.hrtime();return e[0]*1e3+e[1]/1e6}:typeof self<"u"&&self.performance!==void 0&&self.performance.now!==void 0?IB=self.performance.now.bind(self.performance):Date.now!==void 0?IB=Date.now:IB=function(){return new Date().getTime()};var Bb=IB,ZZe=function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(n){return t._tweens[n]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(t){this._tweens[t.getId()]=t,this._tweensAddedDuringUpdate[t.getId()]=t},e.prototype.remove=function(t){delete this._tweens[t.getId()],delete this._tweensAddedDuringUpdate[t.getId()]},e.prototype.update=function(t,n){t===void 0&&(t=Bb()),n===void 0&&(n=!1);var i=Object.keys(this._tweens);if(i.length===0)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o1?r(e[n],e[n-1],n-i):r(e[o],e[o+1>n?n:o+1],i-o)},Bezier:function(e,t){for(var n=0,i=e.length-1,o=Math.pow,r=PB.Utils.Bernstein,s=0;s<=i;s++)n+=o(1-t,i-s)*o(t,s)*e[s]*r(i,s);return n},CatmullRom:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=PB.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(o=Math.floor(i=n*(1+t))),r(e[(o-1+n)%n],e[o],e[(o+1)%n],e[(o+2)%n],i-o)):t<0?e[0]-(r(e[0],e[0],e[1],e[1],-i)-e[0]):t>1?e[n]-(r(e[n],e[n],e[n-1],e[n-1],i-n)-e[n]):r(e[o?o-1:0],e[o],e[n1;i--)n*=i;return e[t]=n,n}}(),CatmullRom:function(e,t,n,i,o){var r=(n-e)*.5,s=(i-t)*.5,a=o*o,c=o*a;return(2*t-2*n+r+s)*c+(-3*t+3*n-2*r-s)*a+r*o+t}}},Xme=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),Kme=new ZZe,Jme=function(){function e(t,n){n===void 0&&(n=Kme),this._object=t,this._group=n,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Ui.Linear.None,this._interpolationFunction=PB.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._id=Xme.nextId(),this._isChainStopped=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.to=function(t,n){return this._valuesEnd=Object.create(t),n!==void 0&&(this._duration=n),this},e.prototype.duration=function(t){return this._duration=t,this},e.prototype.start=function(t){if(this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var n in this._valuesStartRepeat)this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n]}return this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t!==void 0?typeof t=="string"?Bb()+parseFloat(t):t:Bb(),this._startTime+=this._delayTime,this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat),this},e.prototype._setupProperties=function(t,n,i,o){for(var r in i){var s=t[r],a=Array.isArray(s),c=a?"array":typeof s,u=!a&&Array.isArray(i[r]);if(!(c==="undefined"||c==="function")){if(u){var f=i[r];if(f.length===0)continue;f=f.map(this._handleRelativeValue.bind(this,s)),i[r]=[s].concat(f)}if((c==="object"||a)&&s&&!u){n[r]=a?[]:{};for(var d in s)n[r][d]=s[d];o[r]=a?[]:{},this._setupProperties(s,n[r],i[r],o[r])}else typeof n[r]>"u"&&(n[r]=s),a||(n[r]*=1),u?o[r]=i[r].slice().reverse():o[r]=n[r]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(t){return t===void 0&&(t=Bb()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=t,this._group&&this._group.remove(this),this)},e.prototype.resume=function(t){return t===void 0&&(t=Bb()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},e.prototype.stopChainedTweens=function(){for(var t=0,n=this._chainedTweens.length;tr)return!1;n&&this.start(t)}if(this._goToEnd=!1,t1?1:o;var s=this._easingFunction(o);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,s),this._onUpdateCallback&&this._onUpdateCallback(this._object,o),o===1)if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(i in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[i]=="string"&&(this._valuesStartRepeat[i]=this._valuesStartRepeat[i]+parseFloat(this._valuesEnd[i])),this._yoyo&&this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i];return this._yoyo&&(this._reversed=!this._reversed),this._repeatDelayTime!==void 0?this._startTime=t+this._repeatDelayTime:this._startTime=t+this._delayTime,this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var a=0,c=this._chainedTweens.length;athis._started+this._timeThreshold)){this._giveUpTime();return}i=this._nextNode()}this._pop()&&e&&this._process(!0)};function tQe(e){let t=e.slice(0,Math.min(4,e.size)),n=Gs(),i=new FileReader;return i.addEventListener("load",function(){n.resolve(new DataView(i.result).getUint32(0,!1)===1347093252)}),i.addEventListener("error",function(){n.reject(i.error)}),i.readAsArrayBuffer(t),n.promise}function nQe(e){let t=Gs(),n=new FileReader;return n.addEventListener("load",function(){t.resolve(n.result)}),n.addEventListener("error",function(){t.reject(n.error)}),n.readAsText(e),t.promise}function ahe(e){let t={xsi:"http://www.w3.org/2001/XMLSchema-instance"},n,i,o,r;for(let s in t)t.hasOwnProperty(s)&&(o=RegExp(`[< ]${s}:`),r=`xmlns:${s}=`,o.test(e)&&e.indexOf(r)===-1&&(l(n)||(n=e.substr(0,e.indexOf("",t),i,o,r;for(;t!==-1&&t0?(vl.maximumRed=r,vl.red=void 0):(vl.maximumRed=void 0,vl.red=0),o>0?(vl.maximumGreen=o,vl.green=void 0):(vl.maximumGreen=void 0,vl.green=0),i>0?(vl.maximumBlue=i,vl.blue=void 0):(vl.maximumBlue=void 0,vl.blue=0),vl.alpha=n,z.fromRandom(vl)):new z(r,o,i,n)}function Nx(e,t,n){let i=Pn(e,t,n);if(l(i))return V7(i,Pn(e,"colorMode",n)==="random")}function oQe(e){let t=Pi(e,"TimeStamp",Me.kmlgx),n=Pn(t,"when",Me.kmlgx);if(!l(t)||!l(n)||n.length===0)return;let i=ee.fromIso8601(n),o=new vr;return o.addInterval(new Tn({start:i,stop:Ge.MAXIMUM_VALUE})),o}function rQe(e){let t=Pi(e,"TimeSpan",Me.kmlgx);if(!l(t))return;let n,i=Pi(t,"begin",Me.kmlgx),o=l(i)?ee.fromIso8601(i.textContent):void 0,r=Pi(t,"end",Me.kmlgx),s=l(r)?ee.fromIso8601(r.textContent):void 0;if(l(o)&&l(s)){if(ee.lessThan(s,o)){let a=o;o=s,s=a}n=new vr,n.addInterval(new Tn({start:o,stop:s}))}else l(o)?(n=new vr,n.addInterval(new Tn({start:o,stop:Ge.MAXIMUM_VALUE}))):l(s)&&(n=new vr,n.addInterval(new Tn({start:Ge.MINIMUM_VALUE,stop:s})));return n}function uhe(){let e=new ka;return e.width=Ry,e.height=Ry,e.scaleByDistance=new Lt(Zme,Qme,$me,ehe),e.pixelOffsetScaleByDistance=new Lt(Zme,Qme,$me,ehe),e}function W7(){let e=new ld;return e.outline=!0,e.outlineColor=z.WHITE,e}function fhe(){let e=new cd;return e.translucencyByDistance=new Lt(3e6,1,5e6,0),e.pixelOffset=new H(17,0),e.horizontalOrigin=pi.LEFT,e.font="16px sans-serif",e.style=Fo.FILL_AND_OUTLINE,e}function j7(e,t,n,i,o){let r=Pn(e,"href",Me.kml);if(!l(r)||r.length===0)return;if(r.indexOf("root://icons/palette-")===0){let a=r.charAt(21),c=y(ni(e,"x",Me.gx),0),u=y(ni(e,"y",Me.gx),0);c=Math.min(c/32,7),u=7-Math.min(u/32,7);let f=8*u+c;r=`https://maps.google.com/mapfiles/kml/pal${a}/icon${f}.png`}let s=G7(r,n,i);if(o){let a=Pn(e,"refreshMode",Me.kml),c=Pn(e,"viewRefreshMode",Me.kml);a==="onInterval"||a==="onExpire"?Mt(`kml-refreshMode-${a}`,`KML - Unsupported Icon refreshMode: ${a}`):(c==="onStop"||c==="onRegion")&&Mt(`kml-refreshMode-${c}`,`KML - Unsupported Icon viewRefreshMode: ${c}`);let u=y(Pn(e,"viewBoundScale",Me.kml),1),f=c==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",d=y(Pn(e,"viewFormat",Me.kml),f),p=Pn(e,"httpQuery",Me.kml);l(d)&&s.setQueryParameters(kl(c4(d))),l(p)&&s.setQueryParameters(kl(c4(p)));let g=t._ellipsoid;return q7(s,t.camera,t.canvas,u,t._lastCameraView.bbox,g),s}return s}function sQe(e,t,n,i,o){let r=ni(t,"scale",Me.kml),s=ni(t,"heading",Me.kml),a=Nx(t,"color",Me.kml),c=Pi(t,"Icon",Me.kml),u=j7(c,e,i,o,!1);l(c)&&!l(u)&&(u=!1);let f=ni(c,"x",Me.gx),d=ni(c,"y",Me.gx),p=ni(c,"w",Me.gx),g=ni(c,"h",Me.gx),h=Pi(t,"hotSpot",Me.kml),A=By(h,"x"),x=By(h,"y"),C=ls(h,"xunits"),T=ls(h,"yunits"),E=n.billboard;l(E)||(E=uhe(),n.billboard=E),E.image=u,E.scale=r,E.color=a,(l(f)||l(d)||l(p)||l(g))&&(E.imageSubRegion=new Ke(f,d,p,g)),l(s)&&s!==0&&(E.rotation=P.toRadians(-s),E.alignedAxis=m.UNIT_Z),r=y(r,1);let S,v;l(A)&&(C==="pixels"?S=-A*r:C==="insetPixels"?S=(A-Ry)*r:C==="fraction"&&(S=-A*Ry*r),S+=Ry*.5*r),l(x)&&(T==="pixels"?v=x*r:T==="insetPixels"?v=(-x+Ry)*r:T==="fraction"&&(v=x*Ry*r),v-=Ry*.5*r),(l(S)||l(v))&&(E.pixelOffset=new H(S,v))}function a4(e,t,n,i,o){for(let r=0,s=t.childNodes.length;r:clampToSeaFloor is currently not supported, using :clampToGround."),qe.CLAMP_TO_GROUND):t==="relativeToSeaFloor"?(Mt("kml-gx:altitudeMode-relativeToSeaFloor","KML - :relativeToSeaFloor is currently not supported, using :relativeToGround."),qe.RELATIVE_TO_GROUND):(l(e)?Mt("kml-altitudeMode-unknown",`KML - Unknown :${e}, using :CLAMP_TO_GROUND.`):Mt("kml-gx:altitudeMode-unknown",`KML - Unknown :${t}, using :CLAMP_TO_GROUND.`),qe.CLAMP_TO_GROUND)}function lQe(e,t,n){return n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround"?e:((l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&Mt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`),new ah(e))}function uQe(e,t,n,i){if(!l(e))return;if(n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround")return e;(l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&Mt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`);let o=e.length;for(let r=0;r0&&Mt("kml-gx:angles","KML - gx:angles are not supported in gx:Tracks");let g=Math.min(a.length,u.length),h=[],A=[];for(let C=0;C0&&i.availability.addInterval(new Tn({start:A[0],stop:A[A.length-1]})),d&&f&&Y7(t,i,o),!0}function rhe(e,t,n,i,o,r,s,a,c){let u=e[0],f=e[e.length-1],d=new ea;d.addSamples(e,t),n.intervals.addInterval(new Tn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c,data:lQe(d,s,a)})),i.addInterval(new Tn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c})),o.intervals.addInterval(new Tn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c,data:r}))}function hQe(e,t,n,i,o){let r=em(n,"interpolate",Me.gx),s=$d(n,"Track",Me.gx),a,c,u,f=!1,d=new h_,p=new vr,g=new Qs,h=e._ellipsoid;for(let A=0,x=s.length;A0)){for(h='',r=0;r`;h+="
${y(A.displayName,s)}${y(A.value,"")}
"}if(!l(h))return;h=$Ze.link(h),ho.innerHTML=h;let x=ho.querySelectorAll("a");for(r=0;r1&&(Au(ho,"a","href",i),Au(ho,"link","href",i),Au(ho,"area","href",i),Au(ho,"img","src",i),Au(ho,"iframe","src",i),Au(ho,"video","src",i),Au(ho,"audio","src",i),Au(ho,"source","src",i),Au(ho,"track","src",i),Au(ho,"input","src",i),Au(ho,"embed","src",i),Au(ho,"script","src",i),Au(ho,"video","poster",i)),xu(ho,"a","href",o),xu(ho,"link","href",o),xu(ho,"area","href",o),xu(ho,"img","src",o),xu(ho,"iframe","src",o),xu(ho,"video","src",o),xu(ho,"audio","src",o),xu(ho,"source","src",o),xu(ho,"track","src",o),xu(ho,"input","src",o),xu(ho,"embed","src",o),xu(ho,"script","src",o),xu(ho,"video","poster",o);let C='
',C+=`${ho.innerHTML}
`,ho.innerHTML="",t.description=C}function f4(e,t,n){let i=n.entityCollection,o=n.parentEntity,r=n.sourceResource,s=n.uriResolver,a=lhe(t,i,n.context),c=a.kml,u=aQe(e,t,n.styleCollection,r,s),f=Pn(t,"name",Me.kml);a.name=f,a.parent=o;let d=rQe(t);l(d)||(d=oQe(t)),a.availability=d,K7(a);function p(E){return E?E.show&&p(E.parent):!0}let g=em(t,"visibility",Me.kml);a.show=p(o)&&y(g,!0);let h=Pi(t,"author",Me.atom),A=c.author;A.name=Pn(h,"name",Me.atom),A.uri=Pn(h,"uri",Me.atom),A.email=Pn(h,"email",Me.atom);let x=Pi(t,"link",Me.atom),C=c.link;C.href=ls(x,"href"),C.hreflang=ls(x,"hreflang"),C.rel=ls(x,"rel"),C.type=ls(x,"type"),C.title=ls(x,"title"),C.length=ls(x,"length"),c.address=Pn(t,"address",Me.kml),c.phoneNumber=Pn(t,"phoneNumber",Me.kml),c.snippet=Pn(t,"Snippet",Me.kml),gQe(t,a),yQe(t,a,u,s,r);let T=e._ellipsoid;return yhe(t,a,T),ghe(t,a,T),l(Pi(t,"Region",Me.kml))&&Mt("kml-region","KML - Placemark Regions are unsupported"),{entity:a,styleEntity:u}}function _he(e,t,n,i){i.addNodes(t.childNodes,n),i.process()}function AQe(e,t,n,i){let o=f4(e,t,n),r=Ye(n);r.parentEntity=o.entity,_he(e,t,r,i)}function xQe(e,t,n,i){let o=f4(e,t,n),r=o.entity,s=o.styleEntity,a=!1,c=t.childNodes;for(let u=0,f=c.length;uP.PI_OVER_TWO?P.PI_OVER_TWO:u}function a(u){return u>P.PI?u-P.TWO_PI:u<-P.PI?u+P.TWO_PI:u}let c=w0(e.queryParameters);if(c=c.replace(/%5B/g,"[").replace(/%5D/g,"]"),l(t)&&t._mode!==ne.MORPHING){let u,f;if(o=y(o,vQe),l(n)&&(F7.x=n.clientWidth*.5,F7.y=n.clientHeight*.5,u=t.pickEllipsoid(F7,r,DQe)),l(u)?f=r.cartesianToCartographic(u,Lb):(f=le.center(o,Lb),u=r.cartographicToCartesian(f)),l(i)&&!P.equalsEpsilon(i,1,P.EPSILON9)){let C=o.width*i*.5,T=o.height*i*.5;o=new le(a(f.longitude-C),s(f.latitude-T),a(f.longitude+C),s(f.latitude+T))}c=c.replace("[bboxWest]",P.toDegrees(o.west).toString()),c=c.replace("[bboxSouth]",P.toDegrees(o.south).toString()),c=c.replace("[bboxEast]",P.toDegrees(o.east).toString()),c=c.replace("[bboxNorth]",P.toDegrees(o.north).toString());let d=P.toDegrees(f.longitude).toString(),p=P.toDegrees(f.latitude).toString();c=c.replace("[lookatLon]",d),c=c.replace("[lookatLat]",p),c=c.replace("[lookatTilt]",P.toDegrees(t.pitch).toString()),c=c.replace("[lookatHeading]",P.toDegrees(t.heading).toString()),c=c.replace("[lookatRange]",m.distance(t.positionWC,u)),c=c.replace("[lookatTerrainLon]",d),c=c.replace("[lookatTerrainLat]",p),c=c.replace("[lookatTerrainAlt]",f.height.toString()),r.cartesianToCartographic(t.positionWC,Lb),c=c.replace("[cameraLon]",P.toDegrees(Lb.longitude).toString()),c=c.replace("[cameraLat]",P.toDegrees(Lb.latitude).toString()),c=c.replace("[cameraAlt]",P.toDegrees(Lb.height).toString());let g=t.frustum,h=g.aspectRatio,A="",x="";if(l(h)){let C=P.toDegrees(g.fov);h>1?(A=C,x=C/h):(x=C,A=C*h)}c=c.replace("[horizFov]",A.toString()),c=c.replace("[vertFov]",x.toString())}else c=c.replace("[bboxWest]","-180"),c=c.replace("[bboxSouth]","-90"),c=c.replace("[bboxEast]","180"),c=c.replace("[bboxNorth]","90"),c=c.replace("[lookatLon]",""),c=c.replace("[lookatLat]",""),c=c.replace("[lookatRange]",""),c=c.replace("[lookatTilt]",""),c=c.replace("[lookatHeading]",""),c=c.replace("[lookatTerrainLon]",""),c=c.replace("[lookatTerrainLat]",""),c=c.replace("[lookatTerrainAlt]",""),c=c.replace("[cameraLon]",""),c=c.replace("[cameraLat]",""),c=c.replace("[cameraAlt]",""),c=c.replace("[horizFov]",""),c=c.replace("[vertFov]","");l(n)?(c=c.replace("[horizPixels]",n.clientWidth),c=c.replace("[vertPixels]",n.clientHeight)):(c=c.replace("[horizPixels]",""),c=c.replace("[vertPixels]","")),c=c.replace("[terrainEnabled]","1"),c=c.replace("[clientVersion]","1"),c=c.replace("[kmlVersion]","2.2"),c=c.replace("[clientName]","Cesium"),c=c.replace("[language]","English"),e.setQueryParameters(kl(c))}function IQe(e,t,n,i){let r=f4(e,t,n).entity,s=n.sourceResource,a=n.uriResolver,c=Pi(t,"Link",Me.kml);if(l(c)||(c=Pi(t,"Url",Me.kml)),l(c)){let u=Pn(c,"href",Me.kml),f,d;if(l(u)){let p=u;if(u=G7(u,s,n.uriResolver),/^data:/.test(u.getUrlComponent()))/\.kmz/i.test(s.getUrlComponent())||(p=s.getDerivedResource({url:p}));else{if(p=u.clone(),f=Pn(c,"viewRefreshMode",Me.kml),f==="onRegion"){Mt("kml-refrehMode-onRegion","KML - Unsupported viewRefreshMode: onRegion");return}d=y(Pn(c,"viewBoundScale",Me.kml),1);let x=f==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",C=y(Pn(c,"viewFormat",Me.kml),x),T=Pn(c,"httpQuery",Me.kml);l(C)&&u.setQueryParameters(kl(c4(C))),l(T)&&u.setQueryParameters(kl(c4(T)));let E=e._ellipsoid;q7(u,e.camera,e.canvas,d,e._lastCameraView.bbox,E)}let g={sourceUri:p,uriResolver:a,context:r.id,screenOverlayContainer:n.screenOverlayContainer},h=new vs,A=X7(e,h,u,g).then(function(x){let C=e._entityCollection,T=h.values;C.suspendEvents();for(let v=0;v0||E==="onExpire"||f==="onStop"){let v=Pi(x,"NetworkLinkControl",Me.kml),D=l(v),O=ee.now(),M={id:Gn(),href:u,cookie:{},lastUpdated:O,updating:!1,entity:r,viewBoundScale:d,needsUpdate:!1,cameraUpdateTime:O},L=0;if(D&&(M.cookie=kl(y(Pn(v,"cookie",Me.kml),"")),L=y(ni(v,"minRefreshPeriod",Me.kml),0)),E==="onInterval")D&&(S=Math.max(L,S)),M.refreshMode=Ly.INTERVAL,M.time=S;else if(E==="onExpire"){let N;if(D&&(N=Pn(v,"expires",Me.kml)),l(N))try{let _=ee.fromIso8601(N),b=ee.secondsDifference(_,O);b>0&&b0;)this._screenOverlays.pop().remove()};function K7(e){let t=e.parent;if(l(t)){let n=t.availability;if(l(n)){let i=e.availability;l(i)?i.intersect(n):e.availability=n}}}function MQe(e,t,n,i,o){return function(r){if(!i.contains(t.id))return;let s=!1,a=Pi(r,"NetworkLinkControl",Me.kml),c=l(a),u=0;if(c){if(l(Pi(a,"Update",Me.kml))){Mt("kml-networkLinkControl-update","KML - NetworkLinkControl updates aren't supported."),t.updating=!1,i.remove(t.id);return}t.cookie=kl(y(Pn(a,"cookie",Me.kml),"")),u=y(ni(a,"minRefreshPeriod",Me.kml),0)}let f=ee.now(),d=t.refreshMode;if(d===Ly.INTERVAL)l(a)&&(t.time=Math.max(u,t.time));else if(d===Ly.EXPIRE){let O;if(l(a)&&(O=Pn(a,"expires",Me.kml)),l(O))try{let M=ee.fromIso8601(O),L=ee.secondsDifference(M,f);L>0&&Lf.time&&(p=!0):f.refreshMode===Ly.EXPIRE?ee.greaterThan(n,f.time)&&(p=!0):f.refreshMode===Ly.STOP&&(r&&(f.needsUpdate=!0,f.cameraUpdateTime=n),f.needsUpdate&&ee.secondsDifference(n,f.cameraUpdateTime)>=f.time&&(p=!0)),p){o(d),f.updating=!0;let g=new vs,h=f.href.clone();h.setQueryParameters(f.cookie);let A=y(i._ellipsoid,oe.WGS84);q7(h,i.camera,i.canvas,f.viewBoundScale,s.bbox,A),X7(i,g,h,{context:d.id}).then(MQe(i,f,g,c,h)).catch(function(x){let C=`NetworkLink ${f.href} refresh failed: ${x}`;console.log(C),i._error.raiseEvent(i,C)}),u=!0}}c.set(f.id,f)}}),u&&(this._networkLinks=c,this._changed.raiseEvent(this)),!0};function RQe(){this.author={name:void 0,uri:void 0,email:void 0},this.link={href:void 0,hreflang:void 0,rel:void 0,type:void 0,title:void 0,length:void 0},this.address=void 0,this.phoneNumber=void 0,this.snippet=void 0,this.extendedData=void 0}Cu._DeferredLoading=ph;Cu._getTimestamp=gi;var LB=Cu;function NB(){fe.throwInstantiationError()}NB.prototype.update=fe.throwInstantiationError;NB.prototype.getBoundingSphere=fe.throwInstantiationError;NB.prototype.isDestroyed=fe.throwInstantiationError;NB.prototype.destroy=fe.throwInstantiationError;var J7=NB;var Z7=32,BQe="http://www.opengis.net/kml/2.2",nm="http://www.google.com/kml/ext/2.2",LQe="http://www.w3.org/2000/xmlns/";function d4(e){this._files={},this._promises=[],this._count=0,this._modelCallback=e}var NQe=/^data:image\/([^,;]+)/;d4.prototype.texture=function(e){let t=this,n;if(typeof e=="string"||e instanceof we){if(e=we.createIfNeeded(e),!e.isDataUri)return e.url;let i=e.url.match(NQe);n=`texture_${++this._count}`,l(i)&&(n+=`.${i[1]}`);let o=e.fetchBlob().then(function(r){t._files[n]=r});return this._promises.push(o),n}if(e instanceof HTMLCanvasElement){n=`texture_${++this._count}.png`;let i=new Promise(o=>{e.toBlob(function(r){t._files[n]=r,o()})});return this._promises.push(i),n}return""};function FQe(e,t){return function(n){e._files[t]=n}}d4.prototype.model=function(e,t){let n=this._modelCallback;if(!l(n))throw new de("Encountered a model entity while exporting to KML, but no model callback was supplied.");let i={},o=n(e,t,i);for(let r in i)if(i.hasOwnProperty(r)){let s=Promise.resolve(i[r]);this._promises.push(s),s.then(FQe(this,r))}return o};Object.defineProperties(d4.prototype,{promise:{get:function(){return Promise.all(this._promises)}},files:{get:function(){return this._files}}});function m4(e){this._time=e}m4.prototype.get=function(e,t,n){let i;return l(e)&&(i=l(e.getValue)?e.getValue(this._time,n):e),y(i,t)};m4.prototype.getColor=function(e,t){let n=this.get(e,t);if(l(n))return Ux(n)};m4.prototype.getMaterialType=function(e){if(l(e))return e.getType(this._time)};function Q7(){this._ids={},this._styles={},this._count=0}Q7.prototype.get=function(e){let t=this._ids,n=e.innerHTML;if(l(t[n]))return t[n];let i=`style-${++this._count}`;return e.setAttribute("id",i),i=`#${i}`,t[n]=i,this._styles[n]=e,i};Q7.prototype.save=function(e){let t=this._styles,n=e.childNodes[0];for(let i in t)t.hasOwnProperty(i)&&e.insertBefore(t[i],n)};function The(){this._ids={}}The.prototype.get=function(e){if(!l(e))return this.get(Gn());let t=this._ids;return l(t[e])?`${e.toString()}-${++t[e]}`:(t[e]=0,e)};function $7(e){e=y(e,y.EMPTY_OBJECT);let t=e.entities,n=y(e.kmz,!1),i=$7._createState(e),o=t.values.filter(function(u){return!l(u.parent)}),r=i.kmlDoc,s=r.documentElement;s.setAttributeNS(LQe,"xmlns:gx",nm);let a=r.createElement("Document");s.appendChild(a),bhe(i,a,o),i.styleCache.save(a);let c=i.externalFileHandler;return c.promise.then(function(){let f=new XMLSerializer().serializeToString(i.kmlDoc);return n?UQe(f,c.files):{kml:f,externalFiles:c.files}})}function UQe(e,t){let n=en("ThirdParty/Workers/z-worker-pako.js");Sb({workerScripts:{deflate:[n,"./pako_deflate.min.js"],inflate:[n,"./pako_inflate.min.js"]}});let i=new Pb,o=new n4(i);return o.add("doc.kml",new zk(e)).then(function(){let r=Object.keys(t);return Ehe(o,r,t,0)}).then(function(){return o.close()}).then(function(r){return{kmz:r}})}function Ehe(e,t,n,i){if(t.length===i)return;let o=t[i];return e.add(o,new Lx(n[o])).then(function(){return Ehe(e,t,n,i+1)})}$7._createState=function(e){let t=e.entities,n=new Q7,i=t.computeAvailability(),o=l(e.time)?e.time:i.start,r=y(e.defaultAvailability,i),s=y(e.sampleDuration,60);r.start===Ge.MINIMUM_VALUE?r.stop===Ge.MAXIMUM_VALUE?r=new Tn:ee.addSeconds(r.stop,-10*s,r.start):r.stop===Ge.MAXIMUM_VALUE&&ee.addSeconds(r.start,10*s,r.stop);let a=new d4(e.modelCallback);return{kmlDoc:document.implementation.createDocument(BQe,"kml"),ellipsoid:y(e.ellipsoid,oe.WGS84),idManager:new The,styleCache:n,externalFileHandler:a,time:o,valueGetter:new m4(o),sampleDuration:s,defaultAvailability:new vr([r])}};function bhe(e,t,n){let i=e.kmlDoc,o=e.styleCache,r=e.valueGetter,s=e.idManager,a=n.length,c,u,f;for(let d=0;d0){let C=i.createElement("Placemark");C.setAttribute("id",s.get(p.id));let T=p.name,E=p.label;if(l(E)){let v=i.createElement("LabelStyle"),D=r.get(E.text);T=l(D)&&D.length>0?D:T;let O=r.getColor(E.fillColor);l(O)&&(v.appendChild(pn(i,"color",O)),v.appendChild(pn(i,"colorMode","normal")));let M=r.get(E.scale);l(M)&&v.appendChild(pn(i,"scale",M)),f.push(v)}C.appendChild(pn(i,"name",T)),C.appendChild(pn(i,"visibility",p.show)),C.appendChild(pn(i,"description",p.description)),l(g)&&C.appendChild(g),t.appendChild(C);let S=f.length;if(S>0){let v=i.createElement("Style");for(let D=0;D1){let v=i.createElement("MultiGeometry");for(let D=0;D0){let C=i.createElement("Folder");C.setAttribute("id",s.get(p.id)),C.appendChild(pn(i,"name",p.name)),C.appendChild(pn(i,"visibility",p.show)),C.appendChild(pn(i,"description",p.description)),t.appendChild(C),bhe(e,C,x)}}}var Dl=new m,zc=new he,tm=new ee;function VQe(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter,a=y(t.billboard,t.point);if(!l(a)&&!l(t.path))return;let c=t.position;if(!c.isConstant){She(e,t,a,n,i);return}s.get(c,void 0,Dl);let u=pn(o,"coordinates",Fx(Dl,r)),f=o.createElement("Point"),d=o.createElement("altitudeMode");d.appendChild(Vx(e,a.heightReference)),f.appendChild(d),f.appendChild(u),n.push(f);let p=a instanceof ka?vhe(e,a):whe(e,a);i.push(p)}function She(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter,c,u=t.position,f=!0;u instanceof Qs?(c=u.intervals,f=!1):c=y(t.availability,e.defaultAvailability);let d=n instanceof lp,p,g,h,A=[];for(p=0;p1){let C=r.createElementNS(nm,"MultiTrack");for(p=0;p0&&(r=n);let s=t.coordinates,a=o.get(s),c=[],u=[le.northeast,le.southeast,le.southwest,le.northwest];for(let g=0;g<4;++g)u[g](a,zc),c.push(`${P.toDegrees(zc.longitude)},${P.toDegrees(zc.latitude)},${r}`);let f=pn(i,"coordinates",c.join(" ")),d=i.createElement("outerBoundaryIs"),p=i.createElement("LinearRing");return p.appendChild(f),d.appendChild(p),[d]}function xhe(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=[],a=t.length;for(let f=0;f0&&(r=n);let a=[],c=t.hierarchy,u=o.get(c),f=Array.isArray(u)?u:u.positions,d=i.createElement("outerBoundaryIs");d.appendChild(xhe(e,f,r,s)),a.push(d);let p=u.holes;if(l(p)){let g=p.length;for(let h=0;h0&&c.appendChild(pn(r,"extrude",!0));let f=a?zQe(e,t,u):HQe(e,t,u),d=f.length;for(let x=0;x=0;--i)t+=n[i]<16?`0${n[i].toString(16)}`:n[i].toString(16);return t}var tj=$7;function jQe(e){let t,n=e.name,i=e.message;l(n)&&l(i)?t=`${n}: ${i}`:t=e.toString();let o=e.stack;return l(o)&&(t+=` +${o}`),t}var _h=jQe;var YQe={NONE:0,LERC:1},Pf=Object.freeze(YQe);var qQe={NONE:0,BITS12:1},Ms=Object.freeze(qQe);var kx=new m,XQe=new m,Of=new H,h4=new B,KQe=new B,JQe=Math.pow(2,12);function rc(e,t,n,i,o,r,s,a,c,u){let f=Ms.NONE,d,p;if(l(t)&&l(n)&&l(i)&&l(o)){let g=t.minimum,h=t.maximum,A=m.subtract(h,g,XQe),x=i-n;Math.max(m.maximumComponent(A),x)0,g=y(e.isGeographic,!0),h=y(e.ellipsoid,oe.WGS84),A=1/h.maximumRadius,x=le.clone(e.nativeRectangle),C=le.clone(e.rectangle),T,E,S,v;l(C)?(T=C.west,E=C.south,S=C.east,v=C.north):g?(T=a(x.west),E=a(x.south),S=a(x.east),v=a(x.north)):(T=x.west*A,E=s-2*o(r(-x.south*A)),S=x.east*A,v=s-2*o(r(-x.north*A)));let D=e.relativeToCenter,O=l(D);D=O?D:m.ZERO;let M=y(e.includeWebMercatorT,!1),L=y(e.exaggeration,1),N=y(e.exaggerationRelativeHeight,0),b=L!==1,w=y(e.structure,gh.DEFAULT_STRUCTURE),I=y(w.heightScale,gh.DEFAULT_STRUCTURE.heightScale),R=y(w.heightOffset,gh.DEFAULT_STRUCTURE.heightOffset),F=y(w.elementsPerHeight,gh.DEFAULT_STRUCTURE.elementsPerHeight),k=y(w.stride,gh.DEFAULT_STRUCTURE.stride),V=y(w.elementMultiplier,gh.DEFAULT_STRUCTURE.elementMultiplier),G=y(w.isBigEndian,gh.DEFAULT_STRUCTURE.isBigEndian),U=le.computeWidth(x),q=le.computeHeight(x),Y=U/(u-1),Q=q/(f-1);g||(U*=A,q*=A);let W=h.radiiSquared,K=W.x,J=W.y,_e=W.z,xe=65536,se=-65536,Ae=Rt.eastNorthUpToFixedFrame(D,h),me=B.inverseTransformation(Ae,QQe),Se,Ie;M&&(Se=vi.geodeticLatitudeToMercatorAngle(E),Ie=1/(vi.geodeticLatitudeToMercatorAngle(v)-Se));let Ve=$Qe;Ve.x=Number.POSITIVE_INFINITY,Ve.y=Number.POSITIVE_INFINITY,Ve.z=Number.POSITIVE_INFINITY;let Re=e$e;Re.x=Number.NEGATIVE_INFINITY,Re.y=Number.NEGATIVE_INFINITY,Re.z=Number.NEGATIVE_INFINITY;let ke=Number.POSITIVE_INFINITY,dt=u*f,pt=d>0?u*2+f*2:0,rt=dt+pt,fn=new Array(rt),Bn=new Array(rt),jt=new Array(rt),Ze=M?new Array(rt):[],pe=b?new Array(rt):[],Ee=0,je=f,fi=0,Ai=u;p&&(--Ee,++je,--fi,++Ai);let er=1e-5;for(let $e=Ee;$e=f&&(yt=f-1);let zt=x.north-Q*yt;g?zt=a(zt):zt=s-2*o(r(-zt*A));let an=(zt-E)/(v-E);an=P.clamp(an,0,1);let Ji=$e===Ee,go=$e===je-1;d>0&&(Ji?zt+=er*q:go&&(zt-=er*q));let $r=t(zt),es=n(zt),ar=_e*es,Wi;M&&(Wi=(vi.geodeticLatitudeToMercatorAngle(zt)-Se)*Ie);for(let Wr=fi;Wr=u&&(Un=u-1);let ln=yt*(u*k)+Un*k,Xn;if(F===1)Xn=c[ln];else{Xn=0;let ps;if(G)for(ps=0;ps=0;--ps)Xn=Xn*V+c[ln+ps]}Xn=Xn*I+R,se=Math.max(se,Xn),xe=Math.min(xe,Xn);let gn=x.west+Y*Un;g?gn=a(gn):gn=gn*A;let Ia=(gn-T)/(S-T);Ia=P.clamp(Ia,0,1);let Kn=yt*u+Un;if(d>0){let ps=Wr===fi,W_=Wr===Ai-1,UC=Ji||go||ps||W_;if((Ji||go)&&(ps||W_))continue;UC&&(Xn-=d,ps?(Kn=dt+(f-yt-1),gn-=er*U):go?Kn=dt+f+(u-Un-1):W_?(Kn=dt+f+u+yt,gn+=er*U):Ji&&(Kn=dt+f+u+f+Un))}let Lr=$r*t(gn),Xf=$r*n(gn),cr=K*Lr,Pa=J*Xf,Nh=1/i(cr*Lr+Pa*Xf+ar*es),jr=cr*Nh,pc=Pa*Nh,h0=ar*Nh,Am=new m;Am.x=jr+Lr*Xn,Am.y=pc+Xf*Xn,Am.z=h0+es*Xn,B.multiplyByPoint(me,Am,nj),m.minimumByComponent(nj,Ve,Ve),m.maximumByComponent(nj,Re,Re),ke=Math.min(ke,Xn),fn[Kn]=Am,jt[Kn]=new H(Ia,an),Bn[Kn]=Xn,M&&(Ze[Kn]=Wi),b&&(pe[Kn]=h.geodeticSurfaceNormal(Am))}}let Fs=ae.fromPoints(fn),Us;l(C)&&(Us=Mn.fromRectangle(C,xe,se,h));let Br;O&&(Br=new a_(h).computeHorizonCullingPointPossiblyUnderEllipsoid(D,fn,xe));let Mo=new sg(Ve,Re,D),Be=new sc(D,Mo,ke,se,Ae,!1,M,b,L,N),st=new Float32Array(rt*Be.stride),Qe=0;for(let $e=0;$e0?E=zr.getRegularGridAndSkirtIndicesAndEdgeIndices(T.gridWidth,T.gridHeight):E=zr.getRegularGridIndicesAndEdgeIndices(T.gridWidth,T.gridHeight);let S=T.gridWidth*T.gridHeight;return C._mesh=new Mf(d,new Float32Array(T.vertices),E.indices,E.indexCountWithoutSkirts,S,T.minimumHeight,T.maximumHeight,ae.clone(T.boundingSphere3D),m.clone(T.occludeePointInScaledSpace),T.numberOfAttributes,Mn.clone(T.orientedBoundingBox),sc.clone(T.encoding),E.westIndicesSouthToNorth,E.southIndicesEastToWest,E.eastIndicesNorthToSouth,E.northIndicesWestToEast),C._buffer=void 0,C._mesh})};b_.prototype._createMeshSync=function(e){let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=t.ellipsoid,c=t.tileXYToNativeRectangle(n,i,o),u=t.tileXYToRectangle(n,i,o),f=a.cartographicToCartesian(le.center(u)),d=this._structure,g=zr.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,t.getNumberOfXTilesAtLevel(0))/(1<0?A=zr.getRegularGridAndSkirtIndicesAndEdgeIndices(this._width,this._height):A=zr.getRegularGridIndicesAndEdgeIndices(this._width,this._height);let x=h.gridWidth*h.gridHeight;return this._mesh=new Mf(f,h.vertices,A.indices,A.indexCountWithoutSkirts,x,h.minimumHeight,h.maximumHeight,h.boundingSphere3D,h.occludeePointInScaledSpace,h.encoding.stride,h.orientedBoundingBox,h.encoding,A.westIndicesSouthToNorth,A.southIndicesEastToWest,A.eastIndicesNorthToSouth,A.northIndicesWestToEast),this._mesh};b_.prototype.interpolateHeight=function(e,t,n){let i=this._width,o=this._height,r=this._structure,s=r.stride,a=r.elementsPerHeight,c=r.elementMultiplier,u=r.isBigEndian,f=r.heightOffset,d=r.heightScale,p=l(this._mesh),g=this._encoding===Pf.LERC;if(!p&&g)return;let A;if(p){let x=this._mesh.vertices,C=this._mesh.encoding;A=Nhe(x,C,f,d,e,i,o,t,n)}else A=o$e(this._buffer,a,c,s,u,e,i,o,t,n),A=A*d+f;return A};b_.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(a))return;let c=this._width,u=this._height,f=this._structure,d=f.stride,p=new this._bufferType(c*u*d),g=a.vertices,h=a.encoding,A=e.tileXYToRectangle(t,n,i),x=e.tileXYToRectangle(o,r,s),C=f.heightOffset,T=f.heightScale,E=f.elementsPerHeight,S=f.elementMultiplier,v=f.isBigEndian,D=Math.pow(S,E-1);for(let O=0;Of.highestEncodedHeight?f.highestEncodedHeight:_,r$e(p,E,S,D,d,v,O*c+L,_)}}return Promise.resolve(new b_({buffer:p,width:c,height:u,childTileMask:0,structure:this._structure,createdByUpsampling:!0}))};b_.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<=s&&(g=s-1,p=s-2);let h=d|0,A=h+1;A>=a&&(A=a-1,h=a-2);let x=f-p,C=d-h;h=a-1-h,A=a-1-A;let T=y4(e,t,n,i,o,h*s+p),E=y4(e,t,n,i,o,h*s+g),S=y4(e,t,n,i,o,A*s+p),v=y4(e,t,n,i,o,A*s+g);return Fhe(x,C,T,E,S,v)}function Nhe(e,t,n,i,o,r,s,a,c){let u=(a-o.west)*(r-1)/(o.east-o.west),f=(c-o.south)*(s-1)/(o.north-o.south),d=u|0,p=d+1;p>=r&&(p=r-1,d=r-2);let g=f|0,h=g+1;h>=s&&(h=s-1,g=s-2);let A=u-d,x=f-g;g=s-1-g,h=s-1-h;let C=(t.decodeHeight(e,g*r+d)-n)/i,T=(t.decodeHeight(e,g*r+p)-n)/i,E=(t.decodeHeight(e,h*r+d)-n)/i,S=(t.decodeHeight(e,h*r+p)-n)/i;return Fhe(A,x,C,T,E,S)}function Fhe(e,t,n,i,o,r){return t=0;--a)s=s*n+e[r+a];return s}function r$e(e,t,n,i,o,r,s,a){s*=o;let c;if(r)for(c=0;c0;--c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;e[s+c]=a}var ba=b_;function Fb(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new zi({ellipsoid:y(e.ellipsoid,oe.WGS84)})),this._levelZeroMaximumGeometricError=zr.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new ge,this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(Fb.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("EllipsoidTerrainProvider.ready","EllipsoidTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("EllipsoidTerrainProvider.readyPromise","EllipsoidTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});Fb.prototype.requestTileGeometry=function(e,t,n,i){return Promise.resolve(new ba({buffer:new Uint8Array(16*16),width:16,height:16}))};Fb.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1< 0 +uniform sampler2D u_dayTextures[TEXTURE_UNITS]; +uniform vec4 u_dayTextureTranslationAndScale[TEXTURE_UNITS]; +uniform bool u_dayTextureUseWebMercatorT[TEXTURE_UNITS]; + +#ifdef APPLY_ALPHA +uniform float u_dayTextureAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_DAY_NIGHT_ALPHA +uniform float u_dayTextureNightAlpha[TEXTURE_UNITS]; +uniform float u_dayTextureDayAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SPLIT +uniform float u_dayTextureSplit[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_BRIGHTNESS +uniform float u_dayTextureBrightness[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_CONTRAST +uniform float u_dayTextureContrast[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_HUE +uniform float u_dayTextureHue[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SATURATION +uniform float u_dayTextureSaturation[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_GAMMA +uniform float u_dayTextureOneOverGamma[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_IMAGERY_CUTOUT +uniform vec4 u_dayTextureCutoutRectangles[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_COLOR_TO_ALPHA +uniform vec4 u_colorsToAlpha[TEXTURE_UNITS]; +#endif + +uniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS]; +#endif + +#ifdef SHOW_REFLECTIVE_OCEAN +uniform sampler2D u_waterMask; +uniform vec4 u_waterMaskTranslationAndScale; +uniform float u_zoomedOutOceanSpecularIntensity; +#endif + +#ifdef SHOW_OCEAN_WAVES +uniform sampler2D u_oceanNormalMap; +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) +uniform vec2 u_lightingFadeDistance; +#endif + +#ifdef TILE_LIMIT_RECTANGLE +uniform vec4 u_cartographicLimitRectangle; +#endif + +#ifdef GROUND_ATMOSPHERE +uniform vec2 u_nightFadeDistance; +#endif + +#ifdef ENABLE_CLIPPING_PLANES +uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) && defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) +uniform float u_minimumBrightness; +#endif + +#ifdef COLOR_CORRECT +uniform vec3 u_hsbShift; // Hue, saturation, brightness +#endif + +#ifdef HIGHLIGHT_FILL_TILE +uniform vec4 u_fillHighlightColor; +#endif + +#ifdef TRANSLUCENT +uniform vec4 u_frontFaceAlphaByDistance; +uniform vec4 u_backFaceAlphaByDistance; +uniform vec4 u_translucencyRectangle; +#endif + +#ifdef UNDERGROUND_COLOR +uniform vec4 u_undergroundColor; +uniform vec4 u_undergroundColorAlphaByDistance; +#endif + +#ifdef ENABLE_VERTEX_LIGHTING +uniform float u_lambertDiffuseMultiplier; +uniform float u_vertexShadowDarkness; +#endif + +in vec3 v_positionMC; +in vec3 v_positionEC; +in vec3 v_textureCoordinates; +in vec3 v_normalMC; +in vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +in float v_height; +in float v_slope; +in float v_aspect; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +in float v_distance; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) +in vec3 v_atmosphereRayleighColor; +in vec3 v_atmosphereMieColor; +in float v_atmosphereOpacity; +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) || defined(APPLY_MATERIAL) +vec4 alphaBlend(vec4 sourceColor, vec4 destinationColor) +{ + return sourceColor * vec4(sourceColor.aaa, 1.0) + destinationColor * (1.0 - sourceColor.a); +} +#endif + +#ifdef TRANSLUCENT +bool inTranslucencyRectangle() +{ + return + v_textureCoordinates.x > u_translucencyRectangle.x && + v_textureCoordinates.x < u_translucencyRectangle.z && + v_textureCoordinates.y > u_translucencyRectangle.y && + v_textureCoordinates.y < u_translucencyRectangle.w; +} +#endif + +vec4 sampleAndBlend( + vec4 previousColor, + sampler2D textureToSample, + vec2 tileTextureCoordinates, + vec4 textureCoordinateRectangle, + vec4 textureCoordinateTranslationAndScale, + float textureAlpha, + float textureNightAlpha, + float textureDayAlpha, + float textureBrightness, + float textureContrast, + float textureHue, + float textureSaturation, + float textureOneOverGamma, + float split, + vec4 colorToAlpha, + float nightBlend) +{ + // This crazy step stuff sets the alpha to 0.0 if this following condition is true: + // tileTextureCoordinates.s < textureCoordinateRectangle.s || + // tileTextureCoordinates.s > textureCoordinateRectangle.p || + // tileTextureCoordinates.t < textureCoordinateRectangle.t || + // tileTextureCoordinates.t > textureCoordinateRectangle.q + // In other words, the alpha is zero if the fragment is outside the rectangle + // covered by this texture. Would an actual 'if' yield better performance? + vec2 alphaMultiplier = step(textureCoordinateRectangle.st, tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + + alphaMultiplier = step(vec2(0.0), textureCoordinateRectangle.pq - tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + textureAlpha *= mix(textureDayAlpha, textureNightAlpha, nightBlend); +#endif + + vec2 translation = textureCoordinateTranslationAndScale.xy; + vec2 scale = textureCoordinateTranslationAndScale.zw; + vec2 textureCoordinates = tileTextureCoordinates * scale + translation; + vec4 value = texture(textureToSample, textureCoordinates); + vec3 color = value.rgb; + float alpha = value.a; + +#ifdef APPLY_COLOR_TO_ALPHA + vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb); + colorDiff.r = max(max(colorDiff.r, colorDiff.g), colorDiff.b); + alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha); +#endif + +#if !defined(APPLY_GAMMA) + vec4 tempColor = czm_gammaCorrect(vec4(color, alpha)); + color = tempColor.rgb; + alpha = tempColor.a; +#else + color = pow(color, vec3(textureOneOverGamma)); +#endif + +#ifdef APPLY_SPLIT + float splitPosition = czm_splitPosition; + // Split to the left + if (split < 0.0 && gl_FragCoord.x > splitPosition) { + alpha = 0.0; + } + // Split to the right + else if (split > 0.0 && gl_FragCoord.x < splitPosition) { + alpha = 0.0; + } +#endif + +#ifdef APPLY_BRIGHTNESS + color = mix(vec3(0.0), color, textureBrightness); +#endif + +#ifdef APPLY_CONTRAST + color = mix(vec3(0.5), color, textureContrast); +#endif + +#ifdef APPLY_HUE + color = czm_hue(color, textureHue); +#endif + +#ifdef APPLY_SATURATION + color = czm_saturation(color, textureSaturation); +#endif + + float sourceAlpha = alpha * textureAlpha; + float outAlpha = mix(previousColor.a, 1.0, sourceAlpha); + outAlpha += sign(outAlpha) - 1.0; + + vec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha; + + // When rendering imagery for a tile in multiple passes, + // some GPU/WebGL implementation combinations will not blend fragments in + // additional passes correctly if their computation includes an unmasked + // divide-by-zero operation, + // even if it's not in the output or if the output has alpha zero. + // + // For example, without sanitization for outAlpha, + // this renders without artifacts: + // if (outAlpha == 0.0) { outColor = vec3(0.0); } + // + // but using czm_branchFreeTernary will cause portions of the tile that are + // alpha-zero in the additional pass to render as black instead of blending + // with the previous pass: + // outColor = czm_branchFreeTernary(outAlpha == 0.0, vec3(0.0), outColor); + // + // So instead, sanitize against divide-by-zero, + // store this state on the sign of outAlpha, and correct on return. + + return vec4(outColor, max(outAlpha, 0.0)); +} + +vec3 colorCorrect(vec3 rgb) { +#ifdef COLOR_CORRECT + // Convert rgb color to hsb + vec3 hsb = czm_RGBToHSB(rgb); + // Perform hsb shift + hsb.x += u_hsbShift.x; // hue + hsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0); // saturation + hsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0; // brightness + // Convert shifted hsb back to rgb + rgb = czm_HSBToRGB(hsb); +#endif + return rgb; +} + +vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend); +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float specularMapValue, float fade); + +const float fExposure = 2.0; + +vec3 computeEllipsoidPosition() +{ + float mpp = czm_metersPerPixel(vec4(0.0, 0.0, -czm_currentFrustum.x, 1.0), 1.0); + vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0); + xy *= czm_viewport.zw * mpp * 0.5; + + vec3 direction = normalize(vec3(xy, -czm_currentFrustum.x)); + czm_ray ray = czm_ray(vec3(0.0), direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + + vec3 ellipsoidPosition = czm_pointAlongRay(ray, intersection.start); + return (czm_inverseView * vec4(ellipsoidPosition, 1.0)).xyz; +} + +void main() +{ +#ifdef TILE_LIMIT_RECTANGLE + if (v_textureCoordinates.x < u_cartographicLimitRectangle.x || u_cartographicLimitRectangle.z < v_textureCoordinates.x || + v_textureCoordinates.y < u_cartographicLimitRectangle.y || u_cartographicLimitRectangle.w < v_textureCoordinates.y) + { + discard; + } +#endif + +#ifdef ENABLE_CLIPPING_PLANES + float clipDistance = clip(gl_FragCoord, u_clippingPlanes, u_clippingPlanesMatrix); +#endif + +#if defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(HDR) + vec3 normalMC = czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)); // normalized surface normal in model coordinates + vec3 normalEC = czm_normal3D * normalMC; // normalized surface normal in eye coordiantes +#endif + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + float nightBlend = 1.0 - clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0, 0.0, 1.0); +#else + float nightBlend = 0.0; +#endif + + // The clamp below works around an apparent bug in Chrome Canary v23.0.1241.0 + // where the fragment shader sees textures coordinates < 0.0 and > 1.0 for the + // fragments on the edges of tiles even though the vertex shader is outputting + // coordinates strictly in the 0-1 range. + vec4 color = computeDayColor(u_initialColor, clamp(v_textureCoordinates, 0.0, 1.0), nightBlend); + +#ifdef SHOW_TILE_BOUNDARIES + if (v_textureCoordinates.x < (1.0/256.0) || v_textureCoordinates.x > (255.0/256.0) || + v_textureCoordinates.y < (1.0/256.0) || v_textureCoordinates.y > (255.0/256.0)) + { + color = vec4(1.0, 0.0, 0.0, 1.0); + } +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) + float cameraDist; + if (czm_sceneMode == czm_sceneMode2D) + { + cameraDist = max(czm_frustumPlanes.x - czm_frustumPlanes.y, czm_frustumPlanes.w - czm_frustumPlanes.z) * 0.5; + } + else if (czm_sceneMode == czm_sceneModeColumbusView) + { + cameraDist = -czm_view[3].z; + } + else + { + cameraDist = length(czm_view[3]); + } + float fadeOutDist = u_lightingFadeDistance.x; + float fadeInDist = u_lightingFadeDistance.y; + if (czm_sceneMode != czm_sceneMode3D) { + vec3 radii = czm_ellipsoidRadii; + float maxRadii = max(radii.x, max(radii.y, radii.z)); + fadeOutDist -= maxRadii; + fadeInDist -= maxRadii; + } + float fade = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0); +#else + float fade = 0.0; +#endif + +#ifdef SHOW_REFLECTIVE_OCEAN + vec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy; + vec2 waterMaskScale = u_waterMaskTranslationAndScale.zw; + vec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation; + waterMaskTextureCoordinates.y = 1.0 - waterMaskTextureCoordinates.y; + + float mask = texture(u_waterMask, waterMaskTextureCoordinates).r; + + if (mask > 0.0) + { + mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC); + + vec2 ellipsoidTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC); + vec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC.zyx); + + vec2 textureCoordinates = mix(ellipsoidTextureCoordinates, ellipsoidFlippedTextureCoordinates, czm_morphTime * smoothstep(0.9, 0.95, normalMC.z)); + + color = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade); + } +#endif + +#ifdef APPLY_MATERIAL + czm_materialInput materialInput; + materialInput.st = v_textureCoordinates.st; + materialInput.normalEC = normalize(v_normalEC); + materialInput.positionToEyeEC = -v_positionEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalize(v_normalEC)); + materialInput.slope = v_slope; + materialInput.height = v_height; + materialInput.aspect = v_aspect; + czm_material material = czm_getMaterial(materialInput); + vec4 materialColor = vec4(material.diffuse, material.alpha); + color = alphaBlend(materialColor, color); +#endif + +#ifdef ENABLE_VERTEX_LIGHTING + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalize(v_normalEC)) * u_lambertDiffuseMultiplier + u_vertexShadowDarkness, 0.0, 1.0); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#elif defined(ENABLE_DAYNIGHT_SHADING) + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0 + 0.3, 0.0, 1.0); + diffuseIntensity = mix(1.0, diffuseIntensity, fade); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#else + vec4 finalColor = color; +#endif + +#ifdef ENABLE_CLIPPING_PLANES + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = u_clippingPlanesEdgeStyle.rgb; + float clippingPlanesEdgeWidth = u_clippingPlanesEdgeStyle.a; + + if (clipDistance < clippingPlanesEdgeWidth) + { + finalColor = clippingPlanesEdgeColor; + } +#endif + +#ifdef HIGHLIGHT_FILL_TILE + finalColor = vec4(mix(finalColor.rgb, u_fillHighlightColor.rgb, u_fillHighlightColor.a), finalColor.a); +#endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) + if (!czm_backFacing()) + { + bool dynamicLighting = false; + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + + vec3 rayleighColor; + vec3 mieColor; + float opacity; + + vec3 positionWC; + vec3 lightDirection; + + // When the camera is far away (camera distance > nightFadeOutDistance), the scattering is computed in the fragment shader. + // Otherwise, the scattering is computed in the vertex shader. + #ifdef PER_FRAGMENT_GROUND_ATMOSPHERE + positionWC = computeEllipsoidPosition(); + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + computeAtmosphereScattering( + positionWC, + lightDirection, + rayleighColor, + mieColor, + opacity + ); + #else + positionWC = v_positionMC; + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + rayleighColor = v_atmosphereRayleighColor; + mieColor = v_atmosphereMieColor; + opacity = v_atmosphereOpacity; + #endif + + rayleighColor = colorCorrect(rayleighColor); + mieColor = colorCorrect(mieColor); + + vec4 groundAtmosphereColor = computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity); + + // Fog is applied to tiles selected for fog, close to the Earth. + #ifdef FOG + vec3 fogColor = groundAtmosphereColor.rgb; + + // If there is lighting, apply that to the fog. + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float darken = clamp(dot(normalize(czm_viewerPositionWC), atmosphereLightDirection), u_minimumBrightness, 1.0); + fogColor *= darken; + #endif + + #ifndef HDR + fogColor.rgb = czm_acesTonemapping(fogColor.rgb); + fogColor.rgb = czm_inverseGamma(fogColor.rgb); + #endif + + const float modifier = 0.15; + finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, modifier), finalColor.a); + + #else + // The transmittance is based on optical depth i.e. the length of segment of the ray inside the atmosphere. + // This value is larger near the "circumference", as it is further away from the camera. We use it to + // brighten up that area of the ground atmosphere. + const float transmittanceModifier = 0.5; + float transmittance = transmittanceModifier + clamp(1.0 - groundAtmosphereColor.a, 0.0, 1.0); + + vec3 finalAtmosphereColor = finalColor.rgb + groundAtmosphereColor.rgb * transmittance; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float fadeInDist = u_nightFadeDistance.x; + float fadeOutDist = u_nightFadeDistance.y; + + float sunlitAtmosphereIntensity = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.05, 1.0); + float darken = clamp(dot(normalize(positionWC), atmosphereLightDirection), 0.0, 1.0); + vec3 darkenendGroundAtmosphereColor = mix(groundAtmosphereColor.rgb, finalAtmosphereColor.rgb, darken); + + finalAtmosphereColor = mix(darkenendGroundAtmosphereColor, finalAtmosphereColor, sunlitAtmosphereIntensity); + #endif + + #ifndef HDR + finalAtmosphereColor.rgb = vec3(1.0) - exp(-fExposure * finalAtmosphereColor.rgb); + #else + finalAtmosphereColor.rgb = czm_saturation(finalAtmosphereColor.rgb, 1.6); + #endif + + finalColor.rgb = mix(finalColor.rgb, finalAtmosphereColor.rgb, fade); + #endif + } +#endif + +#ifdef UNDERGROUND_COLOR + if (czm_backFacing()) + { + float distanceFromEllipsoid = max(czm_eyeHeight, 0.0); + float distance = max(v_distance - distanceFromEllipsoid, 0.0); + float blendAmount = interpolateByDistance(u_undergroundColorAlphaByDistance, distance); + vec4 undergroundColor = vec4(u_undergroundColor.rgb, u_undergroundColor.a * blendAmount); + finalColor = alphaBlend(undergroundColor, finalColor); + } +#endif + +#ifdef TRANSLUCENT + if (inTranslucencyRectangle()) + { + vec4 alphaByDistance = gl_FrontFacing ? u_frontFaceAlphaByDistance : u_backFaceAlphaByDistance; + finalColor.a *= interpolateByDistance(alphaByDistance, v_distance); + } +#endif + + out_FragColor = finalColor; +} + + +#ifdef SHOW_REFLECTIVE_OCEAN + +float waveFade(float edge0, float edge1, float x) +{ + float y = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); + return pow(1.0 - y, 5.0); +} + +float linearFade(float edge0, float edge1, float x) +{ + return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); +} + +// Based on water rendering by Jonas Wagner: +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +// low altitude wave settings +const float oceanFrequencyLowAltitude = 825000.0; +const float oceanAnimationSpeedLowAltitude = 0.004; +const float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0; +const float oceanSpecularIntensity = 0.5; + +// high altitude wave settings +const float oceanFrequencyHighAltitude = 125000.0; +const float oceanAnimationSpeedHighAltitude = 0.008; +const float oceanOneOverAmplitudeHighAltitude = 1.0 / 2.0; + +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float maskValue, float fade) +{ + vec3 positionToEyeEC = -positionEyeCoordinates; + float positionToEyeECLength = length(positionToEyeEC); + + // The double normalize below works around a bug in Firefox on Android devices. + vec3 normalizedPositionToEyeEC = normalize(normalize(positionToEyeEC)); + + // Fade out the waves as the camera moves far from the surface. + float waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength); + +#ifdef SHOW_OCEAN_WAVES + // high altitude waves + float time = czm_frameNumber * oceanAnimationSpeedHighAltitude; + vec4 noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyHighAltitude, time, 0.0); + vec3 normalTangentSpaceHighAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeHighAltitude); + + // low altitude waves + time = czm_frameNumber * oceanAnimationSpeedLowAltitude; + noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0); + vec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude); + + // blend the 2 wave layers based on distance to surface + float highAltitudeFade = linearFade(0.0, 60000.0, positionToEyeECLength); + float lowAltitudeFade = 1.0 - linearFade(20000.0, 60000.0, positionToEyeECLength); + vec3 normalTangentSpace = + (highAltitudeFade * normalTangentSpaceHighAltitude) + + (lowAltitudeFade * normalTangentSpaceLowAltitude); + normalTangentSpace = normalize(normalTangentSpace); + + // fade out the normal perturbation as we move farther from the water surface + normalTangentSpace.xy *= waveIntensity; + normalTangentSpace = normalize(normalTangentSpace); +#else + vec3 normalTangentSpace = vec3(0.0, 0.0, 1.0); +#endif + + vec3 normalEC = enuToEye * normalTangentSpace; + + const vec3 waveHighlightColor = vec3(0.3, 0.45, 0.6); + + // Use diffuse light to highlight the waves + float diffuseIntensity = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * maskValue; + vec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade); + +#ifdef SHOW_OCEAN_WAVES + // Where diffuse light is low or non-existent, use wave highlights based solely on + // the wave bumpiness and no particular light direction. + float tsPerturbationRatio = normalTangentSpace.z; + vec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity); +#else + vec3 nonDiffuseHighlight = vec3(0.0); +#endif + + // Add specular highlights in 3D, and in all modes when zoomed in. + float specularIntensity = czm_getSpecular(czm_lightDirectionEC, normalizedPositionToEyeEC, normalEC, 10.0); + float surfaceReflectance = mix(0.0, mix(u_zoomedOutOceanSpecularIntensity, oceanSpecularIntensity, waveIntensity), maskValue); + float specular = specularIntensity * surfaceReflectance; + +#ifdef HDR + specular *= 1.4; + + float e = 0.2; + float d = 3.3; + float c = 1.7; + + vec3 color = imageryColor.rgb + (c * (vec3(e) + imageryColor.rgb * d) * (diffuseHighlight + nonDiffuseHighlight + specular)); +#else + vec3 color = imageryColor.rgb + diffuseHighlight + nonDiffuseHighlight + specular; +#endif + + return vec4(color, imageryColor.a); +} + +#endif // #ifdef SHOW_REFLECTIVE_OCEAN +`;var UB=`#ifdef QUANTIZATION_BITS12 +in vec4 compressed0; +in float compressed1; +#else +in vec4 position3DAndHeight; +in vec4 textureCoordAndEncodedNormals; +#endif + +#ifdef GEODETIC_SURFACE_NORMALS +in vec3 geodeticSurfaceNormal; +#endif + +#ifdef EXAGGERATION +uniform vec2 u_terrainExaggerationAndRelativeHeight; +#endif + +uniform vec3 u_center3D; +uniform mat4 u_modifiedModelView; +uniform mat4 u_modifiedModelViewProjection; +uniform vec4 u_tileRectangle; + +// Uniforms for 2D Mercator projection +uniform vec2 u_southAndNorthLatitude; +uniform vec2 u_southMercatorYAndOneOverHeight; + +out vec3 v_positionMC; +out vec3 v_positionEC; + +out vec3 v_textureCoordinates; +out vec3 v_normalMC; +out vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +out float v_slope; +out float v_aspect; +out float v_height; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +out float v_distance; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) +out vec3 v_atmosphereRayleighColor; +out vec3 v_atmosphereMieColor; +out float v_atmosphereOpacity; +#endif + +// These functions are generated at runtime. +vec4 getPosition(vec3 position, float height, vec2 textureCoordinates); +float get2DYPositionFraction(vec2 textureCoordinates); + +vec4 getPosition3DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return u_modifiedModelViewProjection * vec4(position, 1.0); +} + +float get2DMercatorYPositionFraction(vec2 textureCoordinates) +{ + // The width of a tile at level 11, in radians and assuming a single root tile, is + // 2.0 * czm_pi / pow(2.0, 11.0) + // We want to just linearly interpolate the 2D position from the texture coordinates + // when we're at this level or higher. The constant below is the expression + // above evaluated and then rounded up at the 4th significant digit. + const float maxTileWidth = 0.003068; + float positionFraction = textureCoordinates.y; + float southLatitude = u_southAndNorthLatitude.x; + float northLatitude = u_southAndNorthLatitude.y; + if (northLatitude - southLatitude > maxTileWidth) + { + float southMercatorY = u_southMercatorYAndOneOverHeight.x; + float oneOverMercatorHeight = u_southMercatorYAndOneOverHeight.y; + + float currentLatitude = mix(southLatitude, northLatitude, textureCoordinates.y); + currentLatitude = clamp(currentLatitude, -czm_webMercatorMaxLatitude, czm_webMercatorMaxLatitude); + positionFraction = czm_latitudeToWebMercatorFraction(currentLatitude, southMercatorY, oneOverMercatorHeight); + } + return positionFraction; +} + +float get2DGeographicYPositionFraction(vec2 textureCoordinates) +{ + return textureCoordinates.y; +} + +vec4 getPositionPlanarEarth(vec3 position, float height, vec2 textureCoordinates) +{ + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 rtcPosition2D = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + return u_modifiedModelViewProjection * rtcPosition2D; +} + +vec4 getPosition2DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, 0.0, textureCoordinates); +} + +vec4 getPositionColumbusViewMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, height, textureCoordinates); +} + +vec4 getPositionMorphingMode(vec3 position, float height, vec2 textureCoordinates) +{ + // We do not do RTC while morphing, so there is potential for jitter. + // This is unlikely to be noticeable, though. + vec3 position3DWC = position + u_center3D; + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 position2DWC = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + vec4 morphPosition = czm_columbusViewMorph(position2DWC, vec4(position3DWC, 1.0), czm_morphTime); + return czm_modelViewProjection * morphPosition; +} + +#ifdef QUANTIZATION_BITS12 +uniform vec2 u_minMaxHeight; +uniform mat4 u_scaleAndBias; +#endif + +void main() +{ +#ifdef QUANTIZATION_BITS12 + vec2 xy = czm_decompressTextureCoordinates(compressed0.x); + vec2 zh = czm_decompressTextureCoordinates(compressed0.y); + vec3 position = vec3(xy, zh.x); + float height = zh.y; + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressed0.z); + + height = height * (u_minMaxHeight.y - u_minMaxHeight.x) + u_minMaxHeight.x; + position = (u_scaleAndBias * vec4(position, 1.0)).xyz; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)) && defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = compressed1; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = 0.0; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = compressed0.w; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#else + // A single float per element + vec3 position = position3DAndHeight.xyz; + float height = position3DAndHeight.w; + vec2 textureCoordinates = textureCoordAndEncodedNormals.xy; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)) && defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = textureCoordAndEncodedNormals.w; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = textureCoordAndEncodedNormals.z; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = 0.0; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#endif + + vec3 position3DWC = position + u_center3D; + +#ifdef GEODETIC_SURFACE_NORMALS + vec3 ellipsoidNormal = geodeticSurfaceNormal; +#else + vec3 ellipsoidNormal = normalize(position3DWC); +#endif + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + float exaggeration = u_terrainExaggerationAndRelativeHeight.x; + float relativeHeight = u_terrainExaggerationAndRelativeHeight.y; + float newHeight = (height - relativeHeight) * exaggeration + relativeHeight; + + // stop from going through center of earth + float minRadius = min(min(czm_ellipsoidRadii.x, czm_ellipsoidRadii.y), czm_ellipsoidRadii.z); + newHeight = max(newHeight, -minRadius); + + vec3 offset = ellipsoidNormal * (newHeight - height); + position += offset; + position3DWC += offset; + height = newHeight; +#endif + + gl_Position = getPosition(position, height, textureCoordinates); + + v_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz; + v_positionMC = position3DWC; // position in model coordinates + + v_textureCoordinates = vec3(textureCoordinates, webMercatorT); + +#if defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + vec3 normalMC = czm_octDecode(encodedNormal); + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + vec3 projection = dot(normalMC, ellipsoidNormal) * ellipsoidNormal; + vec3 rejection = normalMC - projection; + normalMC = normalize(projection + rejection * exaggeration); +#endif + + v_normalMC = normalMC; + v_normalEC = czm_normal3D * v_normalMC; +#endif + +#if defined(FOG) || (defined(GROUND_ATMOSPHERE) && !defined(PER_FRAGMENT_GROUND_ATMOSPHERE)) + + bool dynamicLighting = false; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + + vec3 lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(position3DWC)); + + computeAtmosphereScattering( + position3DWC, + lightDirection, + v_atmosphereRayleighColor, + v_atmosphereMieColor, + v_atmosphereOpacity + ); +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) + v_distance = length((czm_modelView3D * vec4(position3DWC, 1.0)).xyz); +#endif + +#ifdef APPLY_MATERIAL + float northPoleZ = czm_ellipsoidRadii.z; + vec3 northPolePositionMC = vec3(0.0, 0.0, northPoleZ); + vec3 vectorEastMC = normalize(cross(northPolePositionMC - v_positionMC, ellipsoidNormal)); + float dotProd = abs(dot(ellipsoidNormal, v_normalMC)); + v_slope = acos(dotProd); + vec3 normalRejected = ellipsoidNormal * dotProd; + vec3 normalProjected = v_normalMC - normalRejected; + vec3 aspectVector = normalize(normalProjected); + v_aspect = acos(dot(aspectVector, vectorEastMC)); + float determ = dot(cross(vectorEastMC, aspectVector), ellipsoidNormal); + v_aspect = czm_branchFreeTernary(determ < 0.0, 2.0 * czm_pi - v_aspect, v_aspect); + v_height = height; +#endif +} +`;var w_=`uniform vec3 u_radiiAndDynamicAtmosphereColor; + +uniform float u_atmosphereLightIntensity; +uniform float u_atmosphereRayleighScaleHeight; +uniform float u_atmosphereMieScaleHeight; +uniform float u_atmosphereMieAnisotropy; +uniform vec3 u_atmosphereRayleighCoefficient; +uniform vec3 u_atmosphereMieCoefficient; + +const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters. +const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled. +const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + +/** + * Rational approximation to tanh(x) +*/ +float approximateTanh(float x) { + float x2 = x * x; + return max(-1.0, min(+1.0, x * (27.0 + x2) / (27.0 + 9.0 * x2))); +} + +/** + * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as + * the transmittance value for the ray. + * + * @param {czm_ray} primaryRay The ray from the camera to the position. + * @param {float} primaryRayLength The length of the primary ray. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + * @glslFunction + */ +void computeScattering( + czm_ray primaryRay, + float primaryRayLength, + vec3 lightDirection, + float atmosphereInnerRadius, + out vec3 rayleighColor, + out vec3 mieColor, + out float opacity +) { + + // Initialize the default scattering amounts to 0. + rayleighColor = vec3(0.0); + mieColor = vec3(0.0); + opacity = 0.0; + + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + + vec3 origin = vec3(0.0); + + // Calculate intersection from the camera to the outer ring of the atmosphere. + czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius); + + // Return empty colors if no intersection with the atmosphere geometry. + if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) { + return; + } + + // To deal with smaller values of PRIMARY_STEPS (e.g. 4) + // we implement a split strategy: sky or horizon. + // For performance reasons, instead of a if/else branch + // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0 + float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength); + // Value close to 0.0: close to the horizon + // Value close to 1.0: above in the sky + float w_stop_gt_lprl = 0.5 * (1.0 + approximateTanh(x)); + + // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere. + float start_0 = primaryRayAtmosphereIntersect.start; + primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0); + // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller. + primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength)); + + // For the number of ray steps, distinguish inside or outside atmosphere (outer space) + // (1) from outer space we have to use more ray steps to get a realistic rendering + // (2) within atmosphere we need fewer steps for faster rendering + float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters + float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + approximateTanh(x_o_a)); + int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled. + int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere. + float rayPositionLength = primaryRayAtmosphereIntersect.start; + // (1) Outside the atmosphere: constant rayStepLength + // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps + float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength; + float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0)); + float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS)); + + vec3 rayleighAccumulation = vec3(0.0); + vec3 mieAccumulation = vec3(0.0); + vec2 opticalDepth = vec2(0.0); + vec2 heightScale = vec2(u_atmosphereRayleighScaleHeight, u_atmosphereMieScaleHeight); + + // Sample positions on the primary ray. + for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) { + + // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= PRIMARY_STEPS) { + break; + } + + // Calculate sample position along viewpoint ray. + vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); + + // Calculate height of sample position above ellipsoid. + float sampleHeight = length(samplePosition) - atmosphereInnerRadius; + + // Calculate and accumulate density of particles at the sample position. + vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; + opticalDepth += sampleDensity; + + // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. + czm_ray lightRay = czm_ray(samplePosition, lightDirection); + czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); + + float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); + float lightPositionLength = 0.0; + + vec2 lightOpticalDepth = vec2(0.0); + + // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. + for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { + + // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (j >= LIGHT_STEPS) { + break; + } + + // Calculate sample position along light ray. + vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); + + // Calculate height of the light sample position above ellipsoid. + float lightHeight = length(lightPosition) - atmosphereInnerRadius; + + // Calculate density of photons at the light sample position. + lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; + + // Increment distance on light ray. + lightPositionLength += lightStepLength; + } + + // Compute attenuation via the primary ray and the light ray. + vec3 attenuation = exp(-((u_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (u_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); + + // Accumulate the scattering. + rayleighAccumulation += sampleDensity.x * attenuation; + mieAccumulation += sampleDensity.y * attenuation; + + // Increment distance on primary ray. + rayPositionLength += (rayStepLength += rayStepLengthIncrease); + } + + // Compute the scattering amount. + rayleighColor = u_atmosphereRayleighCoefficient * rayleighAccumulation; + mieColor = u_atmosphereMieCoefficient * mieAccumulation; + + // Compute the transmittance i.e. how much light is passing through the atmosphere. + opacity = length(exp(-((u_atmosphereMieCoefficient * opticalDepth.y) + (u_atmosphereRayleighCoefficient * opticalDepth.x)))); +} + +vec4 computeAtmosphereColor( + vec3 positionWC, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + + float cosAngle = dot(cameraToPositionWCDirection, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = u_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * u_atmosphereLightIntensity; + + return vec4(color, opacity); +} +`;var Ub=`void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { + + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + float atmosphereInnerRadius = length(positionWC); + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); +} +`;var s$e=new H;function a$e(e,t){let n=e.unionClippingRegions,i=e.length,o=os.useFloatTexture(t),r=os.getTextureResolution(e,t,s$e),s=r.x,a=r.y,c=o?u$e(s,a):f$e(s,a);return c+=` +`,c+=n?c$e(i):l$e(i),c}function c$e(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount; + float pixelWidth = czm_metersPerPixel(position); + bool breakAndDiscard = false; + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); + if (amount <= 0.0) + { + breakAndDiscard = true; + break; + } + } + if (breakAndDiscard) { + discard; + } + return clipAmount; +} +`}function l$e(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + bool clipped = true; + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount = 0.0; + float pixelWidth = czm_metersPerPixel(position); + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = max(amount, clipAmount); + clipped = clipped && (amount <= 0.0); + } + if (clipped) + { + discard; + } + return clipAmount; +} +`}function u$e(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int pixY = clippingPlaneNumber / ${e}; + int pixX = clippingPlaneNumber - (pixY * ${e}); + float u = (float(pixX) + 0.5) * ${o}; + float v = (float(pixY) + 0.5) * ${r}; + vec4 plane = texture(packedClippingPlanes, vec2(u, v)); + return czm_transformPlane(plane, transform); +} +`}function f$e(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int clippingPlaneStartIndex = clippingPlaneNumber * 2; + int pixY = clippingPlaneStartIndex / ${e}; + int pixX = clippingPlaneStartIndex - (pixY * ${e}); + float u = (float(pixX) + 0.5) * ${o}; + float v = (float(pixY) + 0.5) * ${r}; + vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; + vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); + vec4 plane; + plane.xyz = czm_octDecode(oct, 65535.0); + plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + ${o}, v))); + return czm_transformPlane(plane, transform); +} +`}var v_=a$e;function d$e(e,t,n,i,o){this.numberOfDayTextures=e,this.flags=t,this.material=n,this.shaderProgram=i,this.clippingShaderState=o}function ij(){this.baseVertexShaderSource=void 0,this.baseFragmentShaderSource=void 0,this._shadersByTexturesFlags=[],this.material=void 0}function m$e(e){let t="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPosition3DMode(position, height, textureCoordinates); }",n="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionColumbusViewMode(position, height, textureCoordinates); }",i="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionMorphingMode(position, height, textureCoordinates); }",o;switch(e){case ne.SCENE3D:o=t;break;case ne.SCENE2D:case ne.COLUMBUS_VIEW:o=n;break;case ne.MORPHING:o=i;break}return o}function h$e(e){return e?"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DMercatorYPositionFraction(textureCoordinates); }":"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DGeographicYPositionFraction(textureCoordinates); }"}ij.prototype.getShaderProgram=function(e){let t=e.frameState,n=e.surfaceTile,i=e.numberOfDayTextures,o=e.applyBrightness,r=e.applyContrast,s=e.applyHue,a=e.applySaturation,c=e.applyGamma,u=e.applyAlpha,f=e.applyDayNightAlpha,d=e.applySplit,p=e.showReflectiveOcean,g=e.showOceanWaves,h=e.enableLighting,A=e.dynamicAtmosphereLighting,x=e.dynamicAtmosphereLightingFromSun,C=e.showGroundAtmosphere,T=e.perFragmentGroundAtmosphere,E=e.hasVertexNormals,S=e.useWebMercatorProjection,v=e.enableFog,D=e.enableClippingPlanes,O=e.clippingPlanes,M=e.clippedByBoundaries,L=e.hasImageryLayerCutout,N=e.colorCorrect,_=e.highlightFillTile,b=e.colorToAlpha,w=e.hasGeodeticSurfaceNormals,I=e.hasExaggeration,R=e.showUndergroundColor,F=e.translucent,k=0,V="",U=n.renderedMesh.encoding;U.quantization===Ms.BITS12&&(k=1,V="QUANTIZATION_BITS12");let Y=0,Q="";M&&(Y=1,Q="TILE_LIMIT_RECTANGLE");let W=0,K="";L&&(W=1,K="APPLY_IMAGERY_CUTOUT");let J=t.mode,_e=J|o<<2|r<<3|s<<4|a<<5|c<<6|u<<7|p<<8|g<<9|h<<10|A<<11|x<<12|C<<13|T<<14|E<<15|S<<16|v<<17|k<<18|d<<19|D<<20|Y<<21|W<<22|N<<23|_<<24|b<<25|w<<26|I<<27|R<<28|F<<29|f<<30,xe=0;l(O)&&O.length>0&&(xe=D?O.clippingPlanesState:0);let se=n.surfaceShader;if(l(se)&&se.numberOfDayTextures===i&&se.flags===_e&&se.material===this.material&&se.clippingShaderState===xe)return se.shaderProgram;let Ae=this._shadersByTexturesFlags[i];if(l(Ae)||(Ae=this._shadersByTexturesFlags[i]=[]),se=Ae[_e],!l(se)||se.material!==this.material||se.clippingShaderState!==xe){let me=this.baseVertexShaderSource.clone(),Se=this.baseFragmentShaderSource.clone();xe!==0&&Se.sources.unshift(v_(O,t.context)),me.defines.push(V),Se.defines.push(`TEXTURE_UNITS ${i}`,Q,K),o&&Se.defines.push("APPLY_BRIGHTNESS"),r&&Se.defines.push("APPLY_CONTRAST"),s&&Se.defines.push("APPLY_HUE"),a&&Se.defines.push("APPLY_SATURATION"),c&&Se.defines.push("APPLY_GAMMA"),u&&Se.defines.push("APPLY_ALPHA"),f&&Se.defines.push("APPLY_DAY_NIGHT_ALPHA"),p&&(Se.defines.push("SHOW_REFLECTIVE_OCEAN"),me.defines.push("SHOW_REFLECTIVE_OCEAN")),g&&Se.defines.push("SHOW_OCEAN_WAVES"),b&&Se.defines.push("APPLY_COLOR_TO_ALPHA"),R&&(me.defines.push("UNDERGROUND_COLOR"),Se.defines.push("UNDERGROUND_COLOR")),F&&(me.defines.push("TRANSLUCENT"),Se.defines.push("TRANSLUCENT")),h&&(E?(me.defines.push("ENABLE_VERTEX_LIGHTING"),Se.defines.push("ENABLE_VERTEX_LIGHTING")):(me.defines.push("ENABLE_DAYNIGHT_SHADING"),Se.defines.push("ENABLE_DAYNIGHT_SHADING"))),A&&(me.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),Se.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),x&&(me.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"),Se.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"))),C&&(me.defines.push("GROUND_ATMOSPHERE"),Se.defines.push("GROUND_ATMOSPHERE"),T&&(me.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"),Se.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"))),me.defines.push("INCLUDE_WEB_MERCATOR_Y"),Se.defines.push("INCLUDE_WEB_MERCATOR_Y"),v&&(me.defines.push("FOG"),Se.defines.push("FOG")),d&&Se.defines.push("APPLY_SPLIT"),D&&Se.defines.push("ENABLE_CLIPPING_PLANES"),N&&Se.defines.push("COLOR_CORRECT"),_&&Se.defines.push("HIGHLIGHT_FILL_TILE"),w&&me.defines.push("GEODETIC_SURFACE_NORMALS"),I&&me.defines.push("EXAGGERATION");let Ie=` vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend) + { + vec4 color = initialColor; +`;L&&(Ie+=` vec4 cutoutAndColorResult; + bool texelUnclipped; +`);for(let Re=0;Re0?n.raiseEvent(c):l(t)&&console.log(`An error occurred in "${t.constructor.name}": ${_h(i)}`),c};A4.reportSuccess=function(e){l(e)&&(e.timesRetried=-1)};var yi=A4;var _$e={UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7},ui=Object.freeze(_$e);var g$e={START:0,LOADING:1,DONE:2,FAILED:3},Rs=Object.freeze(g$e);var y$e={FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6},po=Object.freeze(y$e);function Jo(){this.imagery=[],this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new re(0,0,1,1),this.terrainData=void 0,this.vertexArray=void 0,this.tileBoundingRegion=void 0,this.occludeePointInScaledSpace=new m,this.boundingVolumeSourceTile=void 0,this.boundingVolumeIsFromMesh=!1,this.terrainState=po.UNLOADED,this.mesh=void 0,this.fill=void 0,this.pickBoundingSphere=new ae,this.surfaceShader=void 0,this.isClipped=!0,this.clippedByBoundaries=!1}Object.defineProperties(Jo.prototype,{eligibleForUnloading:{get:function(){let e=this.terrainState,n=!(e===po.RECEIVING||e===po.TRANSFORMING),i=this.imagery;for(let o=0,r=i.length;n&&o=0&&(f=T)}return f!==Number.MAX_VALUE?Dn.getPoint(e,f,o):void 0};Jo.prototype.freeResources=function(){l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=po.UNLOADED,this.mesh=void 0,this.fill=this.fill&&this.fill.destroy();let e=this.imagery;for(let t=0,n=e.length;t=po.RECEIVED&&s.waterMaskTexture===void 0&&n.hasWaterMask)if(s.terrainData.waterMask!==void 0)O$e(t.context,s);else{let u=s._findAncestorTileWithTerrainData(e);l(u)&&l(u.data.waterMaskTexture)&&(s.waterMaskTexture=u.data.waterMaskTexture,++s.waterMaskTexture.referenceCount,s._computeWaterMaskTranslationAndScale(e,u,s.waterMaskTranslationAndScale))}}function S$e(e,t,n,i,o,r,s){let a=t.parent;if(!a){t.state=Rs.FAILED;return}let c=a.data.terrainData,u=a.x,f=a.y,d=a.level;if(!l(c))return;let p=c.upsample(i.tilingScheme,u,f,d,o,r,s);l(p)&&(e.terrainState=po.RECEIVING,Promise.resolve(p).then(function(g){e.terrainData=g,e.terrainState=po.RECEIVED}).catch(function(){e.terrainState=po.FAILED}))}function w$e(e,t,n,i,o){function r(c){e.terrainData=c,e.terrainState=po.RECEIVED,e.request=void 0}function s(c){if(e.request.state===ei.CANCELLED){e.terrainData=void 0,e.terrainState=po.UNLOADED,e.request=void 0;return}e.terrainState=po.FAILED,e.request=void 0;let u=`Failed to obtain terrain tile X: ${n} Y: ${i} Level: ${o}. Error message: "${c}"`;t._requestError=yi.reportError(t._requestError,t,t.errorEvent,u,n,i,o),t._requestError.retry&&a()}function a(){let c=new Ho({throttle:!1,throttleByServer:!0,type:Xr.TERRAIN});e.request=c;let u=t.requestTileGeometry(n,i,o,c);l(u)?(e.terrainState=po.RECEIVING,Promise.resolve(u).then(function(f){r(f)}).catch(function(f){s(f)})):(e.terrainState=po.UNLOADED,e.request=void 0)}a()}var v$e={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0,throttle:!0};function D$e(e,t,n,i,o,r){let s=n.tilingScheme,a=v$e;a.tilingScheme=s,a.x=i,a.y=o,a.level=r,a.exaggeration=t.terrainExaggeration,a.exaggerationRelativeHeight=t.terrainExaggerationRelativeHeight,a.throttle=!0;let u=e.terrainData.createMesh(a);l(u)&&(e.terrainState=po.TRANSFORMING,Promise.resolve(u).then(function(f){e.mesh=f,e.terrainState=po.TRANSFORMED}).catch(function(){e.terrainState=po.FAILED}))}Jo._createVertexArrayForMesh=function(e,t){let n=t.vertices,i=mt.createVertexBuffer({context:e,typedArray:n,usage:Fe.STATIC_DRAW}),o=t.encoding.getAttributes(i),r=t.indices.indexBuffers||{},s=r[e.id];if(!l(s)||s.isDestroyed()){let a=t.indices;s=mt.createIndexBuffer({context:e,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:Ue.fromSizeInBytes(a.BYTES_PER_ELEMENT)}),s.vertexArrayDestroyable=!1,s.referenceCount=1,r[e.id]=s,t.indices.indexBuffers=r}else++s.referenceCount;return new oi({context:e,attributes:o,indexBuffer:s})};Jo._freeVertexArray=function(e){if(l(e)){let t=e.indexBuffer;e.isDestroyed()||e.destroy(),l(t)&&!t.isDestroyed()&&l(t.referenceCount)&&(--t.referenceCount,t.referenceCount===0&&t.destroy())}};function I$e(e,t,n,i,o,r,s){e.vertexArray=Jo._createVertexArrayForMesh(t,e.mesh),e.terrainState=po.READY,e.fill=e.fill&&e.fill.destroy(s)}function P$e(e){let t=e.cache.tile_waterMaskData;if(!l(t)){let n=Bt.create({context:e,pixelFormat:ct.LUMINANCE,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});n.referenceCount=1;let i=new dn({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:cn.LINEAR,magnificationFilter:xi.LINEAR});t={allWaterTexture:n,sampler:i,destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function O$e(e,t){let n=t.terrainData.waterMask,i=P$e(e),o,r=n.length;if(r===1)if(n[0]!==0)o=i.allWaterTexture;else return;else{let s=Math.sqrt(r);o=Bt.create({context:e,pixelFormat:ct.LUMINANCE,pixelDatatype:Je.UNSIGNED_BYTE,source:{width:s,height:s,arrayBufferView:n},sampler:i.sampler,flipY:!1}),o.referenceCount=0}++o.referenceCount,t.waterMaskTexture=o,re.fromElements(0,0,1,1,t.waterMaskTranslationAndScale)}Jo.prototype._findAncestorTileWithTerrainData=function(e){let t=e.parent;for(;l(t)&&(!l(t.data)||!l(t.data.terrainData)||t.data.terrainData.wasCreatedByUpsampling());)t=t.parent;return t};Jo.prototype._computeWaterMaskTranslationAndScale=function(e,t,n){let i=t.rectangle,o=e.rectangle,r=o.width,s=o.height,a=r/i.width,c=s/i.height;return n.x=a*(o.west-i.west)/r,n.y=c*(o.south-i.south)/s,n.z=a,n.w=c,n};var Rf=Jo;function Fy(e){if(e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,oe.WGS84),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,1),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1),this._projection=new vi(this._ellipsoid),l(e.rectangleSouthwestInMeters)&&l(e.rectangleNortheastInMeters))this._rectangleSouthwestInMeters=e.rectangleSouthwestInMeters,this._rectangleNortheastInMeters=e.rectangleNortheastInMeters;else{let i=this._ellipsoid.maximumRadius*Math.PI;this._rectangleSouthwestInMeters=new H(-i,-i),this._rectangleNortheastInMeters=new H(i,i)}let t=this._projection.unproject(this._rectangleSouthwestInMeters),n=this._projection.unproject(this._rectangleNortheastInMeters);this._rectangle=new le(t.longitude,t.latitude,n.longitude,n.latitude)}Object.defineProperties(Fy.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});Fy.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<=o&&(h=o-1);let A=g/u|0;return A>=r&&(A=r-1),l(n)?(n.x=h,n.y=A,n):new H(h,A)};var Mr=Fy;var rj,Vhe="AAPKd815e334cb774973b7245e23a67f4d08Js7A8e8xvfBpgnZIzp1jbL3FWJTmx7AKG8wa87OwDcWEu4CxQCNiydpPbGpALiTf",Vb={};Vb.defaultAccessToken=Vhe;Vb.defaultWorldImageryServer=new we({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"});Vb.defaultWorldHillshadeServer=new we({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer"});Vb.defaultWorldOceanServer=new we({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer"});Vb.getDefaultTokenCredit=function(e){if(e===Vhe){if(!l(rj)){let t=' This application is using a default ArcGIS access token. Please assign Cesium.ArcGisMapService.defaultAccessToken with an API key from your ArcGIS Developer account before using the ArcGIS tile services. You can sign up for a free ArcGIS Developer account at https://developers.arcgis.com/.';rj=new It(t,!0)}return rj}};var Tu=Vb;function sj(e){e=y(e,y.EMPTY_OBJECT),this._pixelsToCheck=e.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;let t=we.createIfNeeded(e.missingImageUrl),n=this;function i(r){l(r.blob)&&(n._missingImageByteLength=r.blob.size);let s=$f(r);if(e.disableCheckIfAllPixelsAreTransparent){let a=!0,c=r.width,u=e.pixelsToCheck;for(let f=0,d=u.length;a&&f0&&(a=!1)}a&&(s=void 0)}n._missingImagePixels=s,n._isReady=!0}function o(){n._missingImagePixels=void 0,n._isReady=!0}t.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}).then(i).catch(o)}sj.prototype.isReady=function(){return this._isReady};sj.prototype.shouldDiscardImage=function(e){let t=this._pixelsToCheck,n=this._missingImagePixels;if(!l(n)||l(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;let i=$f(e),o=e.width;for(let r=0,s=t.length;r1&&o==="name"?(t=1,n=i):t>2&&o==="title"?(t=2,n=i):t>3&&/name/i.test(i)?(t=3,n=i):t>4&&/title/i.test(i)&&(t=4,n=i)}l(n)&&(this.name=e[n])};aj.prototype.configureDescriptionFromProperties=function(e){function t(n){let i='';for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];l(r)&&(typeof r=="object"?i+=``:i+=``)}return i+="
${o}${t(r)}
${o}${r}
",i}this.description=t(e)};var om=aj;function kb(){fe.throwInstantiationError()}Object.defineProperties(kb.prototype,{ready:{get:fe.throwInstantiationError},readyPromise:{get:fe.throwInstantiationError},rectangle:{get:fe.throwInstantiationError},tileWidth:{get:fe.throwInstantiationError},tileHeight:{get:fe.throwInstantiationError},maximumLevel:{get:fe.throwInstantiationError},minimumLevel:{get:fe.throwInstantiationError},tilingScheme:{get:fe.throwInstantiationError},tileDiscardPolicy:{get:fe.throwInstantiationError},errorEvent:{get:fe.throwInstantiationError},credit:{get:fe.throwInstantiationError},proxy:{get:fe.throwInstantiationError},hasAlphaChannel:{get:fe.throwInstantiationError},defaultAlpha:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultNightAlpha:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultDayAlpha:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultBrightness:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultContrast:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultHue:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultSaturation:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultGamma:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultMinificationFilter:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultMagnificationFilter:{get:fe.throwInstantiationError,set:fe.throwInstantiationError}});kb.prototype.getTileCredits=function(e,t,n){fe.throwInstantiationError()};kb.prototype.requestImage=function(e,t,n,i){fe.throwInstantiationError()};kb.prototype.pickFeatures=function(e,t,n,i,o){fe.throwInstantiationError()};var M$e=/\.ktx2$/i;kb.loadImage=function(e,t){let n=we.createIfNeeded(t);return M$e.test(n.url)?tl(n):l(e)&&l(e.tileDiscardPolicy)?n.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):n.fetchImage({preferImageBitmap:!0,flipY:!0})};var Gc=kb;var R$e={SATELLITE:1,OCEANS:2,HILLSHADE:3},rm=Object.freeze(R$e);function cj(e){this.useTiles=y(e.usePreCachedTilesIfAvailable,!0);let t=e.ellipsoid;this.tilingScheme=y(e.tilingScheme,new zi({ellipsoid:t})),this.rectangle=y(e.rectangle,this.tilingScheme.rectangle),this.ellipsoid=t;let n=e.credit;typeof n=="string"&&(n=new It(n)),this.credit=n,this.tileCredits=void 0,this.tileDiscardPolicy=e.tileDiscardPolicy,this.tileWidth=y(e.tileWidth,256),this.tileHeight=y(e.tileHeight,256),this.maximumLevel=e.maximumLevel}cj.prototype.build=function(e){e._useTiles=this.useTiles,e._tilingScheme=this.tilingScheme,e._rectangle=this.rectangle,e._credit=this.credit,e._tileCredits=this.tileCredits,e._tileDiscardPolicy=this.tileDiscardPolicy,e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,this.useTiles&&!l(this.tileDiscardPolicy)&&(e._tileDiscardPolicy=new kB({missingImageUrl:zhe(e,0,0,this.maximumLevel).url,pixelsToCheck:[new H(0,0),new H(200,20),new H(20,200),new H(80,110),new H(160,130)],disableCheckIfAllPixelsAreTransparent:!0})),e._ready=!0};function B$e(e,t){let n=e.tileInfo;if(!l(n))t.useTiles=!1;else{if(t.tileWidth=n.rows,t.tileHeight=n.cols,n.spatialReference.wkid===102100||n.spatialReference.wkid===102113)t.tilingScheme=new Mr({ellipsoid:t.ellipsoid});else if(e.tileInfo.spatialReference.wkid===4326)t.tilingScheme=new zi({ellipsoid:t.ellipsoid});else{let i=`Tile spatial reference WKID ${e.tileInfo.spatialReference.wkid} is not supported.`;throw new de(i)}if(t.maximumLevel=e.tileInfo.lods.length-1,l(e.fullExtent)){if(l(e.fullExtent.spatialReference)&&l(e.fullExtent.spatialReference.wkid))if(e.fullExtent.spatialReference.wkid===102100||e.fullExtent.spatialReference.wkid===102113){let i=new vi,o=e.fullExtent,r=i.unproject(new m(Math.max(o.xmin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.max(o.ymin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0)),s=i.unproject(new m(Math.min(o.xmax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.min(o.ymax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0));t.rectangle=new le(r.longitude,r.latitude,s.longitude,s.latitude)}else if(e.fullExtent.spatialReference.wkid===4326)t.rectangle=le.fromDegrees(e.fullExtent.xmin,e.fullExtent.ymin,e.fullExtent.xmax,e.fullExtent.ymax);else{let i=`fullExtent.spatialReference WKID ${e.fullExtent.spatialReference.wkid} is not supported.`;throw new de(i)}}else t.rectangle=t.tilingScheme.rectangle;t.useTiles=!0}l(e.copyrightText)&&e.copyrightText.length>0&&(l(t.credit)?t.tileCredits=[new It(e.copyrightText)]:t.credit=new It(e.copyrightText))}function L$e(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i+=`: ${t.message}`),yi.reportError(void 0,n,l(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new de(i)}async function khe(e,t,n){let i=e.getDerivedResource({queryParameters:{f:"json"}});try{let o=await i.fetchJson();B$e(o,t)}catch(o){L$e(e,o,n)}}function yh(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new zi({ellipsoid:e.ellipsoid})),this._useTiles=y(e.usePreCachedTilesIfAvailable,!0),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._layers=e.layers,this._credit=e.credit,this._tileCredits=void 0;let t=e.credit;if(typeof t=="string"&&(t=new It(t)),this.enablePickFeatures=y(e.enablePickFeatures,!0),this._errorEvent=new ge,this._ready=!1,l(e.url)){$("ArcGisMapServerImageryProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGisMapServerImageryProvider.fromUrl instead.");let n=we.createIfNeeded(e.url);n.appendForwardSlash(),this._tileDiscardPolicy=e.tileDiscardPolicy,l(e.token)&&n.setQueryParameters({token:e.token}),this._resource=n;let i=new cj(e);i.useTiles?this._readyPromise=khe(n,i,this).then(()=>(i.build(this),!0)):(i.build(this),this._readyPromise=Promise.resolve(!0))}}yh.fromBasemapType=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n,i,o;switch(e){case rm.SATELLITE:{n=y(t.token,Tu.defaultAccessToken),i=we.createIfNeeded(y(t.url,Tu.defaultWorldImageryServer)),i.appendForwardSlash();let r=Tu.getDefaultTokenCredit(n);l(r)&&(o=It.clone(r))}break;case rm.OCEANS:{n=y(t.token,Tu.defaultAccessToken),i=we.createIfNeeded(y(t.url,Tu.defaultWorldOceanServer)),i.appendForwardSlash();let r=Tu.getDefaultTokenCredit(n);l(r)&&(o=It.clone(r))}break;case rm.HILLSHADE:{n=y(t.token,Tu.defaultAccessToken),i=we.createIfNeeded(y(t.url,Tu.defaultWorldHillshadeServer)),i.appendForwardSlash();let r=Tu.getDefaultTokenCredit(n);l(r)&&(o=It.clone(r))}break;default:}return yh.fromUrl(i,{...t,token:n,credit:o,usePreCachedTilesIfAvailable:!0})};function zhe(e,t,n,i,o){let r;if(e._useTiles)r=e._resource.getDerivedResource({url:`tile/${i}/${n}/${t}`,request:o});else{let s=e._tilingScheme.tileXYToNativeRectangle(t,n,i),c={bbox:`${s.west},${s.south},${s.east},${s.north}`,size:`${e._tileWidth},${e._tileHeight}`,format:"png32",transparent:!0,f:"image"};e._tilingScheme.projection instanceof Si?(c.bboxSR=4326,c.imageSR=4326):(c.bboxSR=3857,c.imageSR=3857),e.layers&&(c.layers=`show:${e.layers}`),r=e._resource.getDerivedResource({url:"export",request:o,queryParameters:c})}return r}Object.defineProperties(yh.prototype,{url:{get:function(){return this._resource._url}},token:{get:function(){return this._resource.queryParameters.token}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("ArcGisMapServerImageryProvider.ready","ArcGisMapServerImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGisMapServerImageryProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("ArcGisMapServerImageryProvider.readyPromise","ArcGisMapServerImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGisMapServerImageryProvider.fromUrl instead."),this._readyPromise}},credit:{get:function(){return this._credit}},usingPrecachedTiles:{get:function(){return this._useTiles}},hasAlphaChannel:{get:function(){return!0}},layers:{get:function(){return this._layers}},defaultAlpha:{get:function(){return $("ArcGisMapServerImageryProvider.defaultAlpha","ArcGisMapServerImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("ArcGisMapServerImageryProvider.defaultAlpha","ArcGisMapServerImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("ArcGisMapServerImageryProvider.defaultNightAlpha","ArcGisMapServerImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("ArcGisMapServerImageryProvider.defaultNightAlpha","ArcGisMapServerImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("ArcGisMapServerImageryProvider.defaultDayAlpha","ArcGisMapServerImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("ArcGisMapServerImageryProvider.defaultDayAlpha","ArcGisMapServerImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("ArcGisMapServerImageryProvider.defaultBrightness","ArcGisMapServerImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("ArcGisMapServerImageryProvider.defaultBrightness","ArcGisMapServerImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("ArcGisMapServerImageryProvider.defaultContrast","ArcGisMapServerImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("ArcGisMapServerImageryProvider.defaultContrast","ArcGisMapServerImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("ArcGisMapServerImageryProvider.defaultHue","ArcGisMapServerImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("ArcGisMapServerImageryProvider.defaultHue","ArcGisMapServerImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("ArcGisMapServerImageryProvider.defaultSaturation","ArcGisMapServerImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("ArcGisMapServerImageryProvider.defaultSaturation","ArcGisMapServerImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("ArcGisMapServerImageryProvider.defaultGamma","ArcGisMapServerImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("ArcGisMapServerImageryProvider.defaultGamma","ArcGisMapServerImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("ArcGisMapServerImageryProvider.defaultMinificationFilter","ArcGisMapServerImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("ArcGisMapServerImageryProvider.defaultMinificationFilter","ArcGisMapServerImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("ArcGisMapServerImageryProvider.defaultMagnificationFilter","ArcGisMapServerImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("ArcGisMapServerImageryProvider.defaultMagnificationFilter","ArcGisMapServerImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});yh.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&n.setQueryParameters({token:t.token});let i=new yh(t);i._resource=n;let o=new cj(t);return y(t.usePreCachedTilesIfAvailable,!0)&&await khe(n,o),o.build(i),i._readyPromise=Promise.resolve(!0),i};yh.prototype.getTileCredits=function(e,t,n){return this._tileCredits};yh.prototype.requestImage=function(e,t,n,i){return Gc.loadImage(this,zhe(this,e,t,n,i))};yh.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures)return;let r=this._tilingScheme.tileXYToNativeRectangle(e,t,n),s,a,c;if(this._tilingScheme.projection instanceof Si)s=P.toDegrees(i),a=P.toDegrees(o),c="4326";else{let p=this._tilingScheme.projection.project(new he(i,o,0));s=p.x,a=p.y,c="3857"}let u="visible";l(this._layers)&&(u+=`:${this._layers}`);let f={f:"json",tolerance:2,geometryType:"esriGeometryPoint",geometry:`${s},${a}`,mapExtent:`${r.west},${r.south},${r.east},${r.north}`,imageDisplay:`${this._tileWidth},${this._tileHeight},96`,sr:c,layers:u};return this._resource.getDerivedResource({url:"identify",queryParameters:f}).fetchJson().then(function(p){let g=[],h=p.results;if(!l(h))return g;for(let A=0;A`),this._tilingScheme=new Mr({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:e.ellipsoid}),this._tileWidth=void 0,this._tileHeight=void 0,this._maximumLevel=void 0,this._imageUrlTemplate=void 0,this._imageUrlSubdomains=void 0,this._attributionList=void 0,this._errorEvent=new ge,this._ready=!1,l(e.url)){$("BingMapsImageryProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use BingMapsImageryProvider.fromUrl instead.");let t=e.tileProtocol;l(t)?t.length>0&&t[t.length-1]===":"&&(t=t.substr(0,t.length-1)):t=document.location.protocol==="http:"?"http":"https";let n=we.createIfNeeded(e.url);this._resource=n,n.appendForwardSlash();let i=n.getDerivedResource({url:`REST/v1/Imagery/Metadata/${this._mapStyle}`,queryParameters:{incl:"ImageryProviders",key:e.key,uriScheme:t}}),o=new lj(e);this._readyPromise=Hhe(i,o,this).then(()=>(o.build(this),!0))}}Object.defineProperties(us.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},key:{get:function(){return this._key}},mapStyle:{get:function(){return this._mapStyle}},culture:{get:function(){return this._culture}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("BingMapsImageryProvider.ready","BingMapsImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use BingMapsImageryProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("BingMapsImageryProvider.readyPromise","BingMapsImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use BingMapsImageryProvider.fromUrl instead."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}},defaultAlpha:{get:function(){return $("BingMapsImageryProvider.defaultAlpha","BingMapsImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("BingMapsImageryProvider.defaultAlpha","BingMapsImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("BingMapsImageryProvider.defaultNightAlpha","BingMapsImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("BingMapsImageryProvider.defaultNightAlpha","BingMapsImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("BingMapsImageryProvider.defaultDayAlpha","BingMapsImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("BingMapsImageryProvider.defaultDayAlpha","BingMapsImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("BingMapsImageryProvider.defaultBrightness","BingMapsImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("BingMapsImageryProvider.defaultBrightness","BingMapsImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("BingMapsImageryProvider.defaultContrast","BingMapsImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("BingMapsImageryProvider.defaultContrast","BingMapsImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("BingMapsImageryProvider.defaultHue","BingMapsImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("BingMapsImageryProvider.defaultHue","BingMapsImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("BingMapsImageryProvider.defaultSaturation","BingMapsImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("BingMapsImageryProvider.defaultSaturation","BingMapsImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("BingMapsImageryProvider.defaultGamma","BingMapsImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("BingMapsImageryProvider.defaultGamma","BingMapsImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("BingMapsImageryProvider.defaultMinificationFilter","BingMapsImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("BingMapsImageryProvider.defaultMinificationFilter","BingMapsImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("BingMapsImageryProvider.defaultMagnificationFilter","BingMapsImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("BingMapsImageryProvider.defaultMagnificationFilter","BingMapsImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});us.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.tileProtocol;l(n)?n.length>0&&n[n.length-1]===":"&&(n=n.substr(0,n.length-1)):n=document.location.protocol==="http:"?"http":"https";let i=y(t.mapStyle,zb.AERIAL),o=we.createIfNeeded(e);o.appendForwardSlash();let r=o.getDerivedResource({url:`REST/v1/Imagery/Metadata/${i}`,queryParameters:{incl:"ImageryProviders",key:t.key,uriScheme:n}}),s=new us(t);s._resource=o;let a=new lj(t);return await Hhe(r,a),a.build(s),s._readyPromise=Promise.resolve(!0),s};var V$e=new le;us.prototype.getTileCredits=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(e,t,n,V$e);return H$e(this._attributionList,n,i)};us.prototype.requestImage=function(e,t,n,i){let o=Gc.loadImage(this,k$e(this,e,t,n,i));if(l(o))return o.catch(function(r){return l(r.blob)&&r.blob.size===0?Hb.EMPTY_IMAGE:Promise.reject(r)})};us.prototype.pickFeatures=function(e,t,n,i,o){};us.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<=0;--o){let r=1<=d.zoomMin&&t<=d.zoomMax){let p=le.intersection(n,d.bbox,z$e);l(p)&&(c=!0)}}c&&i.push(s.credit)}return i}us._metadataCache={};var Gb=us;var Ghe=/{[^}]+}/g,dj={x:j$e,y:q$e,z:J$e,s:Z$e,reverseX:Y$e,reverseY:X$e,reverseZ:K$e,westDegrees:Q$e,southDegrees:$$e,eastDegrees:eet,northDegrees:tet,westProjected:net,southProjected:iet,eastProjected:oet,northProjected:ret,width:set,height:aet},Whe=_t(dj,{i:cet,j:uet,reverseI:fet,reverseJ:det,longitudeDegrees:het,latitudeDegrees:pet,longitudeProjected:_et,latitudeProjected:get,format:Aet});function zx(e){if(e=y(e,y.EMPTY_OBJECT),this._errorEvent=new ge,l(e.then)){this._reinitialize(e);return}let t=we.createIfNeeded(e.url),n=we.createIfNeeded(e.pickFeaturesUrl);this._resource=t,this._urlSchemeZeroPadding=e.urlSchemeZeroPadding,this._getFeatureInfoFormats=e.getFeatureInfoFormats,this._pickFeaturesResource=n;let i=e.subdomains;Array.isArray(i)?i=i.slice():l(i)&&i.length>0?i=i.split(""):i=["a","b","c"],this._subdomains=i,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new Mr({ellipsoid:e.ellipsoid})),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._rectangle=le.intersection(this._rectangle,this._tilingScheme.rectangle),this._tileDiscardPolicy=e.tileDiscardPolicy;let o=e.credit;typeof o=="string"&&(o=new It(o)),this._credit=o,this._hasAlphaChannel=y(e.hasAlphaChannel,!0);let r=e.customTags,s=_t(dj,r),a=_t(Whe,r);this._tags=s,this._pickFeaturesTags=a,this._readyPromise=Promise.resolve(!0),this._ready=!0,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this.enablePickFeatures=y(e.enablePickFeatures,!0)}Object.defineProperties(zx.prototype,{url:{get:function(){return this._resource.url}},urlSchemeZeroPadding:{get:function(){return this._urlSchemeZeroPadding}},pickFeaturesUrl:{get:function(){return this._pickFeaturesResource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("UrlTemplateImageryProvider.ready","UrlTemplateImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._ready&&l(this._resource)}},readyPromise:{get:function(){return $("UrlTemplateImageryProvider.readyPromise","UrlTemplateImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return this._hasAlphaChannel}},defaultAlpha:{get:function(){return $("UrlTemplateImageryProvider.defaultAlpha","UrlTemplateImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("UrlTemplateImageryProvider.defaultAlpha","UrlTemplateImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("UrlTemplateImageryProvider.defaultNightAlpha","UrlTemplateImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("UrlTemplateImageryProvider.defaultNightAlpha","UrlTemplateImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("UrlTemplateImageryProvider.defaultDayAlpha","UrlTemplateImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("UrlTemplateImageryProvider.defaultDayAlpha","UrlTemplateImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("UrlTemplateImageryProvider.defaultBrightness","UrlTemplateImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("UrlTemplateImageryProvider.defaultBrightness","UrlTemplateImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("UrlTemplateImageryProvider.defaultContrast","UrlTemplateImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("UrlTemplateImageryProvider.defaultContrast","UrlTemplateImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("UrlTemplateImageryProvider.defaultHue","UrlTemplateImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("UrlTemplateImageryProvider.defaultHue","UrlTemplateImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("UrlTemplateImageryProvider.defaultSaturation","UrlTemplateImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("UrlTemplateImageryProvider.defaultSaturation","UrlTemplateImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("UrlTemplateImageryProvider.defaultGamma","UrlTemplateImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("UrlTemplateImageryProvider.defaultGamma","UrlTemplateImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("UrlTemplateImageryProvider.defaultMinificationFilter","UrlTemplateImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("UrlTemplateImageryProvider.defaultMinificationFilter","UrlTemplateImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("UrlTemplateImageryProvider.defaultMagnificationFilter","UrlTemplateImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("UrlTemplateImageryProvider.defaultMagnificationFilter","UrlTemplateImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});zx.prototype.reinitialize=function(e){return $("UrlTemplateImageryProvider.reinitialize","UrlTemplateImageryProvider.reinitialize was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._reinitialize(e)};zx.prototype._reinitialize=function(e){let t=this;t._readyPromise=Promise.resolve(e).then(function(n){let i=n.customTags,o=_t(dj,i),r=_t(Whe,i),s=we.createIfNeeded(n.url),a=we.createIfNeeded(n.pickFeaturesUrl);t.enablePickFeatures=y(n.enablePickFeatures,t.enablePickFeatures),t._urlSchemeZeroPadding=y(n.urlSchemeZeroPadding,t.urlSchemeZeroPadding),t._tileDiscardPolicy=n.tileDiscardPolicy,t._getFeatureInfoFormats=n.getFeatureInfoFormats,t._subdomains=n.subdomains,Array.isArray(t._subdomains)?t._subdomains=t._subdomains.slice():l(t._subdomains)&&t._subdomains.length>0?t._subdomains=t._subdomains.split(""):t._subdomains=["a","b","c"],t._tileWidth=y(n.tileWidth,256),t._tileHeight=y(n.tileHeight,256),t._minimumLevel=y(n.minimumLevel,0),t._maximumLevel=n.maximumLevel,t._tilingScheme=y(n.tilingScheme,new Mr({ellipsoid:n.ellipsoid})),t._rectangle=y(n.rectangle,t._tilingScheme.rectangle),t._rectangle=le.intersection(t._rectangle,t._tilingScheme.rectangle),t._hasAlphaChannel=y(n.hasAlphaChannel,!0);let c=n.credit;return typeof c=="string"&&(c=new It(c)),t._credit=c,t._resource=s,t._tags=o,t._pickFeaturesResource=a,t._pickFeaturesTags=r,t._ready=!0,!0})};zx.prototype.getTileCredits=function(e,t,n){};zx.prototype.requestImage=function(e,t,n,i){return Gc.loadImage(this,G$e(this,e,t,n,i))};zx.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures||!l(this._pickFeaturesResource)||this._getFeatureInfoFormats.length===0)return;let r=0,s=this;function a(u,f){return u.callback(f)}function c(){if(r>=s._getFeatureInfoFormats.length)return Promise.resolve([]);let u=s._getFeatureInfoFormats[r],f=W$e(s,e,t,n,i,o,u.format);return++r,u.type==="json"?f.fetchJson().then(u.callback).catch(c):u.type==="xml"?f.fetchXML().then(u.callback).catch(c):u.type==="text"||u.type==="html"?f.fetchText().then(u.callback).catch(c):f.fetch({responseType:u.format}).then(a.bind(void 0,u)).catch(c)}return c()};var C4=!1,Eu=new le,T4=!1,HB=new le;function G$e(e,t,n,i,o){C4=!1,T4=!1;let r=e._resource,s=r.getUrlComponent(!0),a=e._tags,c={},u=s.match(Ghe);return l(u)&&u.forEach(function(f){let d=f.substring(1,f.length-1);l(a[d])&&(c[d]=a[d](e,t,n,i))}),r.getDerivedResource({request:o,templateValues:c})}var uj=!1,jb=new H,fj=!1;function W$e(e,t,n,i,o,r,s){C4=!1,T4=!1,uj=!1,fj=!1;let a=e._pickFeaturesResource,c=a.getUrlComponent(!0),u=e._pickFeaturesTags,f={},d=c.match(Ghe);return l(d)&&d.forEach(function(p){let g=p.substring(1,p.length-1);l(u[g])&&(f[g]=u[g](e,t,n,i,o,r,s))}),a.getDerivedResource({templateValues:f})}function Yb(e,t,n){if(e&&e.urlSchemeZeroPadding&&e.urlSchemeZeroPadding.hasOwnProperty(t)){let i=e.urlSchemeZeroPadding[t];if(typeof i=="string"){let o=i.length;o>1&&(n=n.length>=o?n:new Array(o-n.toString().length+1).join("0")+n)}}return n}function j$e(e,t,n,i){return Yb(e,"{x}",t)}function Y$e(e,t,n,i){let o=e.tilingScheme.getNumberOfXTilesAtLevel(i)-t-1;return Yb(e,"{reverseX}",o)}function q$e(e,t,n,i){return Yb(e,"{y}",n)}function X$e(e,t,n,i){let o=e.tilingScheme.getNumberOfYTilesAtLevel(i)-n-1;return Yb(e,"{reverseY}",o)}function K$e(e,t,n,i){let o=e.maximumLevel,r=l(o)&&iPromise.reject(o));Bs.call(this,i),this._promise=i}}bu._requestMetadata=async function(e,t,n,i){try{let o=await n.fetchXML();return bu._metadataSuccess(o,e,t,n,i)}catch(o){if(o instanceof Sm)return bu._metadataFailure(e,t);throw o}};bu.fromUrl=async function(e,t){let n=we.createIfNeeded(e);n.appendForwardSlash();let i=n,o=n.getDerivedResource({url:"tilemapresource.xml"});t=y(t,y.EMPTY_OBJECT);let r=await bu._requestMetadata(t,i,o),s=new bu;return Bs.call(s,r),s};l(Object.create)&&(bu.prototype=Object.create(Bs.prototype),bu.prototype.constructor=bu);function jhe(e,t){return e.westt.rectangle.east&&(e.east=t.rectangle.east),e.southt.rectangle.north&&(e.north=t.rectangle.north),e}function Yhe(e,t,n){let i=e.positionToTileXY(le.southwest(t),n),o=e.positionToTileXY(le.northeast(t),n);return(Math.abs(o.x-i.x)+1)*(Math.abs(o.y-i.y)+1)>4?0:n}bu._metadataSuccess=function(e,t,n,i,o){let r=/tileformat/i,s=/tileset/i,a=/tilesets/i,c=/boundingbox/i,u,f,d,p=[],g=e.childNodes[0].childNodes;for(let M=0;M`),this._tilingScheme=void 0,this._version=void 0,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=e.maximumLevel,this._errorEvent=new ge,l(e.url)||l(e.channel)){$("GoogleEarthEnterpriseMapsProvider.url","GoogleEarthEnterpriseMapsProvider.url and GoogleEarthEnterpriseMapsProvider.channel were deprecated in CesiumJS 1.104. They will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMapsProvider.fromUrl instead.");let t=e.url,n=y(e.path,"/default_map"),i=we.createIfNeeded(t).getDerivedResource({url:n[0]==="/"?n.substring(1):n});i.appendForwardSlash(),this._resource=i,this._url=t,this._path=n,this._ready=!1;let o=i.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),r=new hj(e);this._readyPromise=qhe(o,r,this).then(()=>(r.build(this),this._ready=!0,!0))}}Object.defineProperties(Il.prototype,{url:{get:function(){return this._url}},path:{get:function(){return this._path}},proxy:{get:function(){return this._resource.proxy}},channel:{get:function(){return this._channel}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},version:{get:function(){return this._version}},requestType:{get:function(){return this._requestType}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.ready","GoogleEarthEnterpriseMapsProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMapsProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.readyPromise","GoogleEarthEnterpriseMapsProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMapsProvider.fromUrl instead."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},defaultAlpha:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultAlpha","GoogleEarthEnterpriseMapsProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultAlpha","GoogleEarthEnterpriseMapsProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultNightAlpha","GoogleEarthEnterpriseMapsProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultNightAlpha","GoogleEarthEnterpriseMapsProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultDayAlpha","GoogleEarthEnterpriseMapsProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultDayAlpha","GoogleEarthEnterpriseMapsProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultBrightness","GoogleEarthEnterpriseMapsProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultBrightness","GoogleEarthEnterpriseMapsProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultContrast","GoogleEarthEnterpriseMapsProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultContrast","GoogleEarthEnterpriseMapsProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultHue","GoogleEarthEnterpriseMapsProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultHue","GoogleEarthEnterpriseMapsProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultSaturation","GoogleEarthEnterpriseMapsProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultSaturation","GoogleEarthEnterpriseMapsProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultGamma","GoogleEarthEnterpriseMapsProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultGamma","GoogleEarthEnterpriseMapsProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultMinificationFilter","GoogleEarthEnterpriseMapsProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultMinificationFilter","GoogleEarthEnterpriseMapsProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultMagnificationFilter","GoogleEarthEnterpriseMapsProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultMagnificationFilter","GoogleEarthEnterpriseMapsProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});Il.fromUrl=async function(e,t,n){n=y(n,{});let i=y(n.path,"/default_map"),o=we.createIfNeeded(e).getDerivedResource({url:i[0]==="/"?i.substring(1):i});o.appendForwardSlash();let r=o.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),s=new hj(n);s.channel=t,await qhe(r,s);let a=new Il(n);return s.build(a),a._readyPromise=Promise.resolve(!0),a._ready=!0,a._resource=o,a._url=e,a._path=i,a};Il.prototype.getTileCredits=function(e,t,n){};Il.prototype.requestImage=function(e,t,n,i){let o=this._resource.getDerivedResource({url:"query",request:i,queryParameters:{request:this._requestType,channel:this._channel,version:this._version,x:e,y:t,z:n+1}});return Gc.loadImage(this,o)};Il.prototype.pickFeatures=function(e,t,n,i,o){};Il._logoUrl=void 0;Object.defineProperties(Il,{logoUrl:{get:function(){return l(Il._logoUrl)||(Il._logoUrl=en("Assets/Images/google_earth_credit.png")),Il._logoUrl},set:function(e){Il._logoUrl=e}}});var qb=Il;var Tet=/\/$/,Xhe=new It('© Mapbox © OpenStreetMap Improve this map');function Xb(e){e=y(e,y.EMPTY_OBJECT);let t=e.mapId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=we.createIfNeeded(y(e.url,"https://{s}.tiles.mapbox.com/v4/"));this._mapId=t,this._accessToken=n;let o=y(e.format,"png");/\./.test(o)||(o=`.${o}`),this._format=o;let r=i.getUrlComponent();Tet.test(r)||(r+="/"),r+=`${t}/{z}/{x}/{y}${this._format}`,i.url=r,i.setQueryParameters({access_token:n});let s;l(e.credit)?(s=e.credit,typeof s=="string"&&(s=new It(s))):s=Xhe,this._resource=i,this._imageryProvider=new Bs({url:i,credit:s,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle}),this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(Xb.prototype,{url:{get:function(){return this._imageryProvider.url}},ready:{get:function(){return $("MapboxImageryProvider.ready","MapboxImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._imageryProvider.ready}},readyPromise:{get:function(){return $("MapboxImageryProvider.readyPromise","MapboxImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._imageryProvider._readyPromise}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},defaultAlpha:{get:function(){return $("MapboxImageryProvider.defaultAlpha","MapboxImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("MapboxImageryProvider.defaultAlpha","MapboxImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("MapboxImageryProvider.defaultNightAlpha","MapboxImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("MapboxImageryProvider.defaultNightAlpha","MapboxImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("MapboxImageryProvider.defaultDayAlpha","MapboxImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("MapboxImageryProvider.defaultDayAlpha","MapboxImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("MapboxImageryProvider.defaultBrightness","MapboxImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("MapboxImageryProvider.defaultBrightness","MapboxImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("MapboxImageryProvider.defaultContrast","MapboxImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("MapboxImageryProvider.defaultContrast","MapboxImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("MapboxImageryProvider.defaultHue","MapboxImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("MapboxImageryProvider.defaultHue","MapboxImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("MapboxImageryProvider.defaultSaturation","MapboxImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("MapboxImageryProvider.defaultSaturation","MapboxImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("MapboxImageryProvider.defaultGamma","MapboxImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("MapboxImageryProvider.defaultGamma","MapboxImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("MapboxImageryProvider.defaultMinificationFilter","MapboxImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("MapboxImageryProvider.defaultMinificationFilter","MapboxImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("MapboxImageryProvider.defaultMagnificationFilter","MapboxImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("MapboxImageryProvider.defaultMagnificationFilter","MapboxImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});Xb.prototype.getTileCredits=function(e,t,n){};Xb.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};Xb.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};Xb._defaultCredit=Xhe;var Kb=Xb;function Hx(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=y(e.rectangle,le.MAX_VALUE),n=new zi({rectangle:t,numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});this._tilingScheme=n,this._image=void 0,this._texture=void 0,this._hasError=!1,this._errorEvent=new ge,this._ready=!1;let i=e.credit;typeof i=="string"&&(i=new It(i)),this._credit=i;let o=we.createIfNeeded(e.url);if(this._resource=o,l(e.tileWidth)||l(e.tileHeight)){this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight,this._ready=!0,this._readyPromise=Promise.resolve(!0);return}$("SingleTileImageryProvider options","options.tileHeight and options.tileWidth became required in CesiumJS 1.104. Omitting these properties will result in an error in 1.107. Provide options.tileHeight and options.tileWidth, or use SingleTileImageryProvider.fromUrl instead."),this._tileWidth=0,this._tileHeight=0,this._readyPromise=w4(o,this).then(r=>(yi.reportSuccess(this._errorEvent),this._image=r,this._tileWidth=r.width,this._tileHeight=r.height,this._ready=!0,!0))}Object.defineProperties(Hx.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return 0}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("SingleTileImageryProvider.ready","SingleTileImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use SingleTileImageryProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("SingleTileImageryProvider.readyPromise","SingleTileImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use SingleTileImageryProvider.fromUrl instead."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},defaultAlpha:{get:function(){return $("SingleTileImageryProvider.defaultAlpha","SingleTileImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("SingleTileImageryProvider.defaultAlpha","SingleTileImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("SingleTileImageryProvider.defaultNightAlpha","SingleTileImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("SingleTileImageryProvider.defaultNightAlpha","SingleTileImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("SingleTileImageryProvider.defaultDayAlpha","SingleTileImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("SingleTileImageryProvider.defaultDayAlpha","SingleTileImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("SingleTileImageryProvider.defaultBrightness","SingleTileImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("SingleTileImageryProvider.defaultBrightness","SingleTileImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("SingleTileImageryProvider.defaultContrast","SingleTileImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("SingleTileImageryProvider.defaultContrast","SingleTileImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("SingleTileImageryProvider.defaultHue","SingleTileImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("SingleTileImageryProvider.defaultHue","SingleTileImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("SingleTileImageryProvider.defaultSaturation","SingleTileImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("SingleTileImageryProvider.defaultSaturation","SingleTileImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("SingleTileImageryProvider.defaultGamma","SingleTileImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("SingleTileImageryProvider.defaultGamma","SingleTileImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("SingleTileImageryProvider.defaultMinificationFilter","SingleTileImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("SingleTileImageryProvider.defaultMinificationFilter","SingleTileImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("SingleTileImageryProvider.defaultMagnificationFilter","SingleTileImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("SingleTileImageryProvider.defaultMagnificationFilter","SingleTileImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});function Eet(e,t,n,i){let o=`Failed to load image ${e.url}`;l(t)&&l(t.message)&&(o+=`: ${t.message}`);let r=yi.reportError(i,n,l(n)?n._errorEvent:void 0,o,0,0,0,t);if(r.retry)return w4(e,n,r);throw l(n)&&(n._hasError=!0),new de(o)}async function w4(e,t,n){try{return await Gc.loadImage(null,e)}catch(i){return Eet(e,i,t,n)}}Hx.fromUrl=async function(e,t){let n=we.createIfNeeded(e),i=await w4(n);t=y(t,y.EMPTY_OBJECT);let o=new Hx({...t,url:e,tileWidth:i.width,tileHeight:i.height});return o._image=i,o};Hx.prototype.getTileCredits=function(e,t,n){};Hx.prototype.requestImage=async function(e,t,n,i){if(!this._hasError&&!l(this._image)){let o=await w4(this._resource,this);return this._image=o,yi.reportSuccess(this._errorEvent),o}return this._image};Hx.prototype.pickFeatures=function(e,t,n,i,o){};var Jb=Hx;function bet(e,t,n){this.type=e,l(t)||(e==="json"?t="application/json":e==="xml"?t="text/xml":e==="html"?t="text/html":e==="text"&&(t="text/plain")),this.format=t,l(n)||(e==="json"?n=wet:e==="xml"?n=Pet:(e==="html"||e==="text")&&(n=Khe)),this.callback=n}function wet(e){let t=[],n=e.features;for(let i=0;i0)for(let r=0;r\s*<\/body>/im,Fet=//im,Uet=/([\s\S]*)<\/title>/im;function Khe(e){if(Net.test(e)||Fet.test(e))return;let t,n=Uet.exec(e);n&&n.length>1&&(t=n[1]);let i=new om;return i.name=t,i.description=e,i.data=e,[i]}var Gx=bet;function GB(e){e=y(e,y.EMPTY_OBJECT),this._tileCache={},this._tilesRequestedForInterval=[];let t=this._clock=e.clock;this._times=e.times,this._requestImageFunction=e.requestImageFunction,this._reloadFunction=e.reloadFunction,this._currentIntervalIndex=-1,t.onTick.addEventListener(this._clockOnTick,this),this._clockOnTick(t)}Object.defineProperties(GB.prototype,{clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._clockOnTick(e),this._reloadFunction())}},times:{get:function(){return this._times},set:function(e){this._times!==e&&(this._times=e,this._clockOnTick(this._clock),this._reloadFunction())}},currentInterval:{get:function(){return this._times.get(this._currentIntervalIndex)}}});GB.prototype.getFromCache=function(e,t,n,i){let o=Jhe(e,t,n),r,s=this._tileCache[this._currentIntervalIndex];if(l(s)&&l(s[o])){let a=s[o];r=a.promise.catch(function(c){throw i.state=a.request.state,c}),delete s[o]}return r};GB.prototype.checkApproachingInterval=function(e,t,n,i){let o=Jhe(e,t,n),r=this._tilesRequestedForInterval,s=Zhe(this),a={key:o,priorityFunction:i.priorityFunction};(!l(s)||!Qhe(this,a,s))&&r.push(a),r.length>=512&&r.splice(0,256)};GB.prototype._clockOnTick=function(e){let t=e.currentTime,i=this._times.indexOf(t),o=this._currentIntervalIndex;if(i!==o){let s=this._tileCache[o];for(let a in s)s.hasOwnProperty(a)&&s[a].request.cancel();delete this._tileCache[o],this._tilesRequestedForInterval=[],this._currentIntervalIndex=i,this._reloadFunction();return}let r=Zhe(this);if(l(r)){let s=this._tilesRequestedForInterval,a=!0;for(;a&&s.length!==0;){let c=s.pop();a=Qhe(this,c,r),a||s.push(c)}}};function Jhe(e,t,n){return`${e}-${t}-${n}`}function Vet(e){let t=e.split("-");if(t.length===3)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function Zhe(e){let t=e._times;if(!l(t))return;let n=e._clock,i=n.currentTime,o=n.canAnimate&&n.shouldAnimate,r=n.multiplier;if(!o&&r!==0)return;let s,a=t.indexOf(i);if(a<0)return;let c=t.get(a);return r>0?(s=ee.secondsDifference(c.stop,i),++a):(s=ee.secondsDifference(c.start,i),--a),s/=r,a>=0&&s<=5?t.get(a):void 0}function Qhe(e,t,n){let i=e._times.indexOf(n.start),o=e._tileCache,r=o[i];l(r)||(r=o[i]={});let s=t.key;if(l(r[s]))return!0;let a=Vet(s),c=new Ho({throttle:!1,throttleByServer:!0,type:Xr.IMAGERY,priorityFunction:t.priorityFunction}),u=e._requestImageFunction(a.x,a.y,a.level,c,n);return l(u)?(r[s]={promise:u,request:c},!0):!1}var Wx=GB;var ket=[3034,3035,3042,3043,3044],zet=[4471,4559];function sm(e){if(e=y(e,y.EMPTY_OBJECT),l(e.times)&&!l(e.clock))throw new fe("options.times was specified, so options.clock is required.");this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._getFeatureInfoUrl=y(e.getFeatureInfoUrl,e.url);let t=we.createIfNeeded(e.url),n=we.createIfNeeded(this._getFeatureInfoUrl);t.setQueryParameters(sm.DefaultParameters,!0),n.setQueryParameters(sm.GetFeatureInfoDefaultParameters,!0),l(e.parameters)&&t.setQueryParameters($he(e.parameters)),l(e.getFeatureInfoParameters)&&n.setQueryParameters($he(e.getFeatureInfoParameters));let i=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new Wx({clock:e.clock,times:e.times,requestImageFunction:function(s,a,c,u,f){return epe(i,s,a,c,u,f)},reloadFunction:function(){l(i._reload)&&i._reload()}}));let o={};if(o.layers=e.layers,o.bbox="{westProjected},{southProjected},{eastProjected},{northProjected}",o.width="{width}",o.height="{height}",parseFloat(t.queryParameters.version)>=1.3){o.crs=y(e.crs,e.tilingScheme&&e.tilingScheme.projection instanceof vi?"EPSG:3857":"CRS:84");let s=o.crs.split(":");if(s[0]==="EPSG"&&s.length===2){let a=Number(s[1]);(a>=4e3&&a<5e3&&!zet.includes(a)||ket.includes(a))&&(o.bbox="{southProjected},{westProjected},{northProjected},{eastProjected}")}}else o.srs=y(e.srs,e.tilingScheme&&e.tilingScheme.projection instanceof vi?"EPSG:3857":"EPSG:4326");t.setQueryParameters(o,!0),n.setQueryParameters(o,!0);let r={query_layers:e.layers,info_format:"{format}"};parseFloat(n.queryParameters.version)>=1.3?(r.i="{i}",r.j="{j}"):(r.x="{i}",r.y="{j}"),n.setQueryParameters(r,!0),this._resource=t,this._pickFeaturesResource=n,this._layers=e.layers,this._tileProvider=new Bs({url:t,pickFeaturesUrl:n,tilingScheme:y(e.tilingScheme,new zi({ellipsoid:e.ellipsoid})),rectangle:e.rectangle,tileWidth:e.tileWidth,tileHeight:e.tileHeight,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,subdomains:e.subdomains,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit,getFeatureInfoFormats:y(e.getFeatureInfoFormats,sm.DefaultGetFeatureInfoFormats),enablePickFeatures:e.enablePickFeatures}),this._ready=!0,this._readyPromise=Promise.resolve(!0)}function epe(e,t,n,i,o,r){let s=l(r)?r.data:void 0,a=e._tileProvider;return l(s)&&a._resource.setQueryParameters(s),a.requestImage(t,n,i,o)}function Het(e,t,n,i,o,r,s){let a=l(s)?s.data:void 0,c=e._tileProvider;return l(a)&&c._pickFeaturesResource.setQueryParameters(a),c.pickFeatures(t,n,i,o,r)}Object.defineProperties(sm.prototype,{url:{get:function(){return this._resource._url}},proxy:{get:function(){return this._resource.proxy}},layers:{get:function(){return this._layers}},tileWidth:{get:function(){return this._tileProvider.tileWidth}},tileHeight:{get:function(){return this._tileProvider.tileHeight}},maximumLevel:{get:function(){return this._tileProvider.maximumLevel}},minimumLevel:{get:function(){return this._tileProvider.minimumLevel}},tilingScheme:{get:function(){return this._tileProvider.tilingScheme}},rectangle:{get:function(){return this._tileProvider.rectangle}},tileDiscardPolicy:{get:function(){return this._tileProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._tileProvider.errorEvent}},ready:{get:function(){return $("WebMapServiceImageryProvider.ready","WebMapServiceImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._tileProvider.ready}},readyPromise:{get:function(){return $("WebMapServiceImageryProvider.readyPromise","WebMapServiceImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._tileProvider.readyPromise}},credit:{get:function(){return this._tileProvider.credit}},hasAlphaChannel:{get:function(){return this._tileProvider.hasAlphaChannel}},enablePickFeatures:{get:function(){return this._tileProvider.enablePickFeatures},set:function(e){this._tileProvider.enablePickFeatures=e}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},getFeatureInfoUrl:{get:function(){return this._getFeatureInfoUrl}},defaultAlpha:{get:function(){return $("WebMapServiceImageryProvider.defaultAlpha","WebMapServiceImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("WebMapServiceImageryProvider.defaultAlpha","WebMapServiceImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("WebMapServiceImageryProvider.defaultNightAlpha","WebMapServiceImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("WebMapServiceImageryProvider.defaultNightAlpha","WebMapServiceImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("WebMapServiceImageryProvider.defaultDayAlpha","WebMapServiceImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("WebMapServiceImageryProvider.defaultDayAlpha","WebMapServiceImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("WebMapServiceImageryProvider.defaultBrightness","WebMapServiceImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("WebMapServiceImageryProvider.defaultBrightness","WebMapServiceImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("WebMapServiceImageryProvider.defaultContrast","WebMapServiceImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("WebMapServiceImageryProvider.defaultContrast","WebMapServiceImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("WebMapServiceImageryProvider.defaultHue","WebMapServiceImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("WebMapServiceImageryProvider.defaultHue","WebMapServiceImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("WebMapServiceImageryProvider.defaultSaturation","WebMapServiceImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("WebMapServiceImageryProvider.defaultSaturation","WebMapServiceImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("WebMapServiceImageryProvider.defaultGamma","WebMapServiceImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("WebMapServiceImageryProvider.defaultGamma","WebMapServiceImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("WebMapServiceImageryProvider.defaultMinificationFilter","WebMapServiceImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("WebMapServiceImageryProvider.defaultMinificationFilter","WebMapServiceImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("WebMapServiceImageryProvider.defaultMagnificationFilter","WebMapServiceImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("WebMapServiceImageryProvider.defaultMagnificationFilter","WebMapServiceImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});sm.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};sm.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=epe(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};sm.prototype.pickFeatures=function(e,t,n,i,o){let r=this._timeDynamicImagery,s=l(r)?r.currentInterval:void 0;return Het(this,e,t,n,i,o,s)};sm.DefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"});sm.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"});sm.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new Gx("json","application/json")),Object.freeze(new Gx("xml","text/xml")),Object.freeze(new Gx("text","text/html"))]);function $he(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var Zb=sm;var Get=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetTile"});function WB(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=we.createIfNeeded(e.url),n=e.style,i=e.tileMatrixSetID,o=t.url,r=o.match(/{/g);if(!l(r)||r.length===1&&/{s}/.test(o))t.setQueryParameters(Get),this._useKvp=!0;else{let d={style:n,Style:n,TileMatrixSet:i};t.setTemplateValues(d),this._useKvp=!1}this._resource=t,this._layer=e.layer,this._style=n,this._tileMatrixSetID=i,this._tileMatrixLabels=e.tileMatrixLabels,this._format=y(e.format,"image/jpeg"),this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Mr({ellipsoid:e.ellipsoid}),this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._dimensions=e.dimensions;let s=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new Wx({clock:e.clock,times:e.times,requestImageFunction:function(d,p,g,h,A){return tpe(s,d,p,g,h,A)},reloadFunction:function(){l(s._reload)&&s._reload()}})),this._readyPromise=Promise.resolve(!0),this._ready=!0;let a=this._tilingScheme.positionToTileXY(le.southwest(this._rectangle),this._minimumLevel),c=this._tilingScheme.positionToTileXY(le.northeast(this._rectangle),this._minimumLevel),u=(Math.abs(c.x-a.x)+1)*(Math.abs(c.y-a.y)+1);this._errorEvent=new ge;let f=e.credit;this._credit=typeof f=="string"?new It(f):f,this._subdomains=e.subdomains,Array.isArray(this._subdomains)?this._subdomains=this._subdomains.slice():l(this._subdomains)&&this._subdomains.length>0?this._subdomains=this._subdomains.split(""):this._subdomains=["a","b","c"]}function tpe(e,t,n,i,o,r){let s=e._tileMatrixLabels,a=l(s)?s[i]:i.toString(),c=e._subdomains,u=e._dimensions,f=l(r)?r.data:void 0,d,p;if(!e._useKvp)p={TileMatrix:a,TileRow:n.toString(),TileCol:t.toString(),s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({request:o}),d.setTemplateValues(p),l(u)&&d.setTemplateValues(u),l(f)&&d.setTemplateValues(f);else{let g={};g.tilematrix=a,g.layer=e._layer,g.style=e._style,g.tilerow=n,g.tilecol=t,g.tilematrixset=e._tileMatrixSetID,g.format=e._format,l(u)&&(g=_t(g,u)),l(f)&&(g=_t(g,f)),p={s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({queryParameters:g,request:o}),d.setTemplateValues(p)}return Gc.loadImage(e,d)}Object.defineProperties(WB.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},format:{get:function(){return this._format}},ready:{get:function(){return $("WebMapTileServiceImageryProvider.ready","WebMapTileServiceImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("WebMapTileServiceImageryProvider.readyPromise","WebMapTileServiceImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},dimensions:{get:function(){return this._dimensions},set:function(e){this._dimensions!==e&&(this._dimensions=e,l(this._reload)&&this._reload())}},defaultAlpha:{get:function(){return $("WebMapTileServiceImageryProvider.defaultAlpha","WebMapTileServiceImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("WebMapTileServiceImageryProvider.defaultAlpha","WebMapTileServiceImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("WebMapTileServiceImageryProvider.defaultNightAlpha","WebMapTileServiceImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("WebMapTileServiceImageryProvider.defaultNightAlpha","WebMapTileServiceImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("WebMapTileServiceImageryProvider.defaultDayAlpha","WebMapTileServiceImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("WebMapTileServiceImageryProvider.defaultDayAlpha","WebMapTileServiceImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("WebMapTileServiceImageryProvider.defaultBrightness","WebMapTileServiceImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("WebMapTileServiceImageryProvider.defaultBrightness","WebMapTileServiceImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("WebMapTileServiceImageryProvider.defaultContrast","WebMapTileServiceImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("WebMapTileServiceImageryProvider.defaultContrast","WebMapTileServiceImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("WebMapTileServiceImageryProvider.defaultHue","WebMapTileServiceImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("WebMapTileServiceImageryProvider.defaultHue","WebMapTileServiceImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("WebMapTileServiceImageryProvider.defaultSaturation","WebMapTileServiceImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("WebMapTileServiceImageryProvider.defaultSaturation","WebMapTileServiceImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("WebMapTileServiceImageryProvider.defaultGamma","WebMapTileServiceImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("WebMapTileServiceImageryProvider.defaultGamma","WebMapTileServiceImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("WebMapTileServiceImageryProvider.defaultMinificationFilter","WebMapTileServiceImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("WebMapTileServiceImageryProvider.defaultMinificationFilter","WebMapTileServiceImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("WebMapTileServiceImageryProvider.defaultMagnificationFilter","WebMapTileServiceImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("WebMapTileServiceImageryProvider.defaultMagnificationFilter","WebMapTileServiceImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});WB.prototype.getTileCredits=function(e,t,n){};WB.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=tpe(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};WB.prototype.pickFeatures=function(e,t,n,i,o){};var Qb=WB;function D_(e){return function(t){return new e(t)}}var Wet={ARCGIS_MAPSERVER:D_(Ah),BING:D_(Gb),GOOGLE_EARTH:D_(qb),MAPBOX:D_(Kb),SINGLE_TILE:D_(Jb),TMS:D_(xh),URL_TEMPLATE:D_(Bs),WMS:D_(Zb),WMTS:D_(Qb)},jet={ARCGIS_MAPSERVER:Ah.fromUrl,BING:async(e,t)=>Gb.fromUrl(e,t),GOOGLE_EARTH:async(e,t)=>{let n=t.channel;return delete t.channel,qb.fromUrl(e,n,t)},MAPBOX:(e,t)=>new Kb({url:e,...t}),SINGLE_TILE:Jb.fromUrl,TMS:xh.fromUrl,URL_TEMPLATE:(e,t)=>new Bs({url:e,...t}),WMS:(e,t)=>new Zb({url:e,...t}),WMTS:(e,t)=>new Qb({url:e,...t})};function Pl(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._ready=!1,this._tileCredits=void 0,this._errorEvent=new ge;let t=e.assetId;l(t)&&($("IonImageryProvider options.assetId","options.assetId was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use IonImageryProvider.fromAssetId instead."),Pl._initialize(this,t,e))}Object.defineProperties(Pl.prototype,{ready:{get:function(){return $("IonImageryProvider.ready","IonImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use IonImageryProvider.fromAssetId instead."),this._ready}},readyPromise:{get:function(){return $("IonImageryProvider.readyPromise","IonImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use IonImageryProvider.fromAssetId instead."),this._readyPromise}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},proxy:{get:function(){}},defaultAlpha:{get:function(){return $("IonImageryProvider.defaultAlpha","IonImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("IonImageryProvider.defaultAlpha","IonImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("IonImageryProvider.defaultNightAlpha","IonImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("IonImageryProvider.defaultNightAlpha","IonImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("IonImageryProvider.defaultDayAlpha","IonImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("IonImageryProvider.defaultDayAlpha","IonImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("IonImageryProvider.defaultBrightness","IonImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("IonImageryProvider.defaultBrightness","IonImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("IonImageryProvider.defaultContrast","IonImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("IonImageryProvider.defaultContrast","IonImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("IonImageryProvider.defaultHue","IonImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("IonImageryProvider.defaultHue","IonImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("IonImageryProvider.defaultSaturation","IonImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("IonImageryProvider.defaultSaturation","IonImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("IonImageryProvider.defaultGamma","IonImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("IonImageryProvider.defaultGamma","IonImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("IonImageryProvider.defaultMinificationFilter","IonImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("IonImageryProvider.defaultMinificationFilter","IonImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("IonImageryProvider.defaultMagnificationFilter","IonImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("IonImageryProvider.defaultMagnificationFilter","IonImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});Pl._initialize=function(e,t,n){let i=qs._createEndpointResource(t,n),o=t.toString()+n.accessToken+n.server,r=Pl._endpointCache[o];l(r)||(r=i.fetchJson(),Pl._endpointCache[o]=r),e._readyPromise=r.then(function(s){if(s.type!=="IMAGERY")return Promise.reject(new de(`Cesium ion asset ${t} is not an imagery asset.`));let a,c=s.externalType;if(!l(c))a=new xh({url:new qs(s,i)});else{let u=Wet[c];if(!l(u))return Promise.reject(new de(`Unrecognized Cesium ion imagery type: ${c}`));a=u(s.options)}return e._tileCredits=qs.getCreditsFromEndpoint(s,i),a.errorEvent.addEventListener(function(u){u.provider=e,e._errorEvent.raiseEvent(u)}),e._imageryProvider=a,Promise.resolve(a._readyPromise).then(function(){return e._ready=!0,!0})})};Pl.fromAssetId=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=qs._createEndpointResource(e,t),i=e.toString()+t.accessToken+t.server,o=Pl._endpointCache[i];l(o)||(o=n.fetchJson(),Pl._endpointCache[i]=o);let r=await o;if(r.type!=="IMAGERY")throw new de(`Cesium ion asset ${e} is not an imagery asset.`);let s,a=r.externalType;if(!l(a))s=await xh.fromUrl(new qs(r,n));else{let u=jet[a];if(!l(u))throw new de(`Unrecognized Cesium ion imagery type: ${a}`);let f={...r.options},d=f.url;delete f.url,s=await u(d,f)}let c=new Pl(t);return s.errorEvent.addEventListener(function(u){u.provider=c,c._errorEvent.raiseEvent(u)}),c._tileCredits=qs.getCreditsFromEndpoint(r,n),c._imageryProvider=s,c._ready=!0,c._readyPromise=Promise.resolve(!0),c};Pl.prototype.getTileCredits=function(e,t,n){let i=this._imageryProvider.getTileCredits(e,t,n);return l(i)?this._tileCredits.concat(i):this._tileCredits};Pl.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};Pl.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};Pl._endpointCache={};var Bf=Pl;var Yet={AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4},am=Object.freeze(Yet);function qet(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.style,am.AERIAL);return Bf.fromAssetId(t)}var I_=qet;var jB=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(u_texture, v_textureCoordinates); +} +`;var YB=`in vec4 position; +in float webMercatorT; + +uniform vec2 u_textureDimensions; + +out vec2 v_textureCoordinates; + +void main() +{ + v_textureCoordinates = vec2(position.x, webMercatorT); + gl_Position = czm_viewportOrthographic * (position * vec4(u_textureDimensions, 1.0, 1.0)); +} +`;function $b(e,t,n,i,o){if(this.imageryLayer=e,this.x=t,this.y=n,this.level=i,this.request=void 0,i!==0){let r=t/2|0,s=n/2|0,a=i-1;this.parent=e.getImageryFromCache(r,s,a)}this.state=ui.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!l(o)&&e.ready&&e.imageryProvider._ready&&(o=e.imageryProvider.tilingScheme.tileXYToRectangle(t,n,i)),this.rectangle=o}$b.createPlaceholder=function(e){let t=new $b(e,0,0,0);return t.addReference(),t.state=ui.PLACEHOLDER,t};$b.prototype.addReference=function(){++this.referenceCount};$b.prototype.releaseReference=function(){return--this.referenceCount,this.referenceCount===0?(this.imageryLayer.removeImageryFromCache(this),l(this.parent)&&this.parent.releaseReference(),l(this.image)&&l(this.image.destroy)&&this.image.destroy(),l(this.texture)&&this.texture.destroy(),l(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),ue(this),0):this.referenceCount};$b.prototype.processStateMachine=function(e,t,n){this.state===ui.UNLOADED&&!n&&(this.state=ui.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===ui.RECEIVED&&(this.state=ui.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));let i=this.state===ui.READY&&t&&!this.texture;(this.state===ui.TEXTURE_LOADED||i)&&(this.state=ui.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))};var eS=$b;function gj(e,t,n){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=n}gj.prototype.freeResources=function(){l(this.readyImagery)&&this.readyImagery.releaseReference(),l(this.loadingImagery)&&this.loadingImagery.releaseReference()};gj.prototype.processStateMachine=function(e,t,n){let i=this.loadingImagery,o=i.imageryLayer;if(i.processStateMachine(t,!this.useWebMercatorT,n),i.state===ui.READY)return l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=this.loadingImagery,this.loadingImagery=void 0,this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this),!0;let r=i.parent,s;for(;l(r)&&(r.state!==ui.READY||!this.useWebMercatorT&&!l(r.texture));)r.state!==ui.FAILED&&r.state!==ui.INVALID&&(s=s||r),r=r.parent;return this.readyImagery!==r&&(l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=r,l(r)&&(r.addReference(),this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this))),i.state===ui.FAILED||i.state===ui.INVALID?l(s)?(s.processStateMachine(t,!this.useWebMercatorT,n),!1):!0:!1};var tS=gj;function mi(e,t){this._imageryProvider=e,this._readyEvent=new ge,this._errorEvent=new ge,t=y(t,y.EMPTY_OBJECT),e=y(e,y.EMPTY_OBJECT),this.alpha=y(t.alpha,y(e._defaultAlpha,1)),this.nightAlpha=y(t.nightAlpha,y(e._defaultNightAlpha,1)),this.dayAlpha=y(t.dayAlpha,y(e._defaultDayAlpha,1)),this.brightness=y(t.brightness,y(e._defaultBrightness,mi.DEFAULT_BRIGHTNESS)),this.contrast=y(t.contrast,y(e._defaultContrast,mi.DEFAULT_CONTRAST)),this.hue=y(t.hue,y(e._defaultHue,mi.DEFAULT_HUE)),this.saturation=y(t.saturation,y(e._defaultSaturation,mi.DEFAULT_SATURATION)),this.gamma=y(t.gamma,y(e._defaultGamma,mi.DEFAULT_GAMMA)),this.splitDirection=y(t.splitDirection,mi.DEFAULT_SPLIT),this.minificationFilter=y(t.minificationFilter,y(e._defaultMinificationFilter,mi.DEFAULT_MINIFICATION_FILTER)),this.magnificationFilter=y(t.magnificationFilter,y(e._defaultMagnificationFilter,mi.DEFAULT_MAGNIFICATION_FILTER)),this.show=y(t.show,!0),this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=y(t.rectangle,le.MAX_VALUE),this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new tS(eS.createPlaceholder(this)),this._show=!0,this._layerIndex=-1,this._isBaseLayer=!1,this._requestImageError=void 0,this._reprojectComputeCommands=[],this.cutoutRectangle=t.cutoutRectangle,this.colorToAlpha=t.colorToAlpha,this.colorToAlphaThreshold=y(t.colorToAlphaThreshold,mi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD)}Object.defineProperties(mi.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},ready:{get:function(){return l(this._imageryProvider)}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},rectangle:{get:function(){return this._rectangle}}});mi.DEFAULT_BRIGHTNESS=1;mi.DEFAULT_CONTRAST=1;mi.DEFAULT_HUE=0;mi.DEFAULT_SATURATION=1;mi.DEFAULT_GAMMA=1;mi.DEFAULT_SPLIT=Rc.NONE;mi.DEFAULT_MINIFICATION_FILTER=cn.LINEAR;mi.DEFAULT_MAGNIFICATION_FILTER=xi.LINEAR;mi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004;mi.fromProviderAsync=function(e,t){let n=new mi(void 0,t);return Qet(n,Promise.resolve(e)),n};mi.fromWorldImagery=function(e){return e=y(e,y.EMPTY_OBJECT),mi.fromProviderAsync(I_({style:e.style}),e)};mi.prototype.isBaseLayer=function(){return this._isBaseLayer};mi.prototype.isDestroyed=function(){return!1};mi.prototype.destroy=function(){return ue(this)};var ope=new le,npe=new le,yj=new le,rpe=new le;mi.prototype.getViewableRectangle=async function(){$("ImageryLayer.getViewableRectangle","ImageryLayer.getViewableRectangle was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use ImageryLayer.getImageryRectangle instead.");let e=this._imageryProvider,t=this._rectangle;return await e._readyPromise,le.intersection(e.rectangle,t)};mi.prototype.getImageryRectangle=function(){let e=this._imageryProvider,t=this._rectangle;return le.intersection(e.rectangle,t)};mi.prototype._createTileImagerySkeletons=function(e,t,n){let i=e.data;if(!l(t)||l(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel||l(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;l(n)||(n=i.imagery.length);let o=this._imageryProvider;if(!this.ready||!o._ready)return this._skeletonPlaceholder.loadingImagery.addReference(),i.imagery.splice(n,0,this._skeletonPlaceholder),!0;let r=o.tilingScheme.projection instanceof vi&&e.rectangle.north<vi.MaximumLatitude&&e.rectangle.south>-vi.MaximumLatitude,s=le.intersection(o.rectangle,this._rectangle,ope),a=le.intersection(e.rectangle,s,npe);if(!l(a)){if(!this.isBaseLayer())return!1;let w=s,I=e.rectangle;a=npe,I.south>=w.north?a.north=a.south=w.north:I.north<=w.south?a.north=a.south=w.south:(a.south=Math.max(I.south,w.south),a.north=Math.min(I.north,w.north)),I.west>=w.east?a.west=a.east=w.east:I.east<=w.west?a.west=a.east=w.west:(a.west=Math.max(I.west,w.west),a.east=Math.min(I.east,w.east))}let c=0;a.south>0?c=a.south:a.north<0&&(c=a.north);let f=1*t.getLevelMaximumGeometricError(e.level),d=Jet(this,f,c);d=Math.max(0,d);let p=o.maximumLevel;if(d>p&&(d=p),l(o.minimumLevel)){let w=o.minimumLevel;d<w&&(d=w)}let g=o.tilingScheme,h=g.positionToTileXY(le.northwest(a),d),A=g.positionToTileXY(le.southeast(a),d),x=e.rectangle.width/512,C=e.rectangle.height/512,T=g.tileXYToRectangle(h.x,h.y,d);Math.abs(T.south-e.rectangle.north)<C&&h.y<A.y&&++h.y,Math.abs(T.east-e.rectangle.west)<x&&h.x<A.x&&++h.x;let E=g.tileXYToRectangle(A.x,A.y,d);Math.abs(E.north-e.rectangle.south)<C&&A.y>h.y&&--A.y,Math.abs(E.west-e.rectangle.east)<x&&A.x>h.x&&--A.x;let S=le.clone(e.rectangle,rpe),v=g.tileXYToRectangle(h.x,h.y,d),D=le.intersection(v,s,yj),O;r?(g.rectangleToNativeRectangle(S,S),g.rectangleToNativeRectangle(v,v),g.rectangleToNativeRectangle(D,D),g.rectangleToNativeRectangle(s,s),O=g.tileXYToNativeRectangle.bind(g),x=S.width/512,C=S.height/512):O=g.tileXYToRectangle.bind(g);let M,L=0,N=1,_;!this.isBaseLayer()&&Math.abs(D.west-S.west)>=x&&(L=Math.min(1,(D.west-S.west)/S.width)),!this.isBaseLayer()&&Math.abs(D.north-S.north)>=C&&(N=Math.max(0,(D.north-S.south)/S.height));let b=N;for(let w=h.x;w<=A.x;w++)if(M=L,v=O(w,h.y,d),D=le.simpleIntersection(v,s,yj),!!l(D)){L=Math.min(1,(D.east-S.west)/S.width),w===A.x&&(this.isBaseLayer()||Math.abs(D.east-S.east)<x)&&(L=1),N=b;for(let I=h.y;I<=A.y;I++){if(_=N,v=O(w,I,d),D=le.simpleIntersection(v,s,yj),!l(D))continue;N=Math.max(0,(D.south-S.south)/S.height),I===A.y&&(this.isBaseLayer()||Math.abs(D.south-S.south)<C)&&(N=0);let R=new re(M,N,L,_),F=this.getImageryFromCache(w,I,d);i.imagery.splice(n,0,new tS(F,R,r)),++n}}return!0};mi.prototype._calculateTextureTranslationAndScale=function(e,t){let n=t.readyImagery.rectangle,i=e.rectangle;if(t.useWebMercatorT){let c=t.readyImagery.imageryLayer.imageryProvider.tilingScheme;n=c.rectangleToNativeRectangle(n,ope),i=c.rectangleToNativeRectangle(i,rpe)}let o=i.width,r=i.height,s=o/n.width,a=r/n.height;return new re(s*(i.west-n.west)/o,a*(i.south-n.south)/r,s,a)};mi.prototype._requestImagery=function(e){let t=this._imageryProvider,n=this;function i(s){if(!l(s))return o();e.image=s,e.state=ui.RECEIVED,e.request=void 0,yi.reportSuccess(n._requestImageError)}function o(s){if(e.request.state===ei.CANCELLED){e.state=ui.UNLOADED,e.request=void 0;return}e.state=ui.FAILED,e.request=void 0;let a=`Failed to obtain image tile X: ${e.x} Y: ${e.y} Level: ${e.level}.`;n._requestImageError=yi.reportError(n._requestImageError,t,t.errorEvent,a,e.x,e.y,e.level,s),n._requestImageError.retry&&r()}function r(){let s=new Ho({throttle:!1,throttleByServer:!0,type:Xr.IMAGERY});e.request=s,e.state=ui.TRANSITIONING;let a=t.requestImage(e.x,e.y,e.level,s);if(!l(a)){e.state=ui.UNLOADED,e.request=void 0;return}l(t.getTileCredits)&&(e.credits=t.getTileCredits(e.x,e.y,e.level)),a.then(function(c){i(c)}).catch(function(c){o(c)})}r()};mi.prototype._createTextureWebGL=function(e,t){let n=new dn({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),i=t.image;return l(i.internalFormat)?new Bt({context:e,pixelFormat:i.internalFormat,width:i.width,height:i.height,source:{arrayBufferView:i.bufferView},sampler:n}):new Bt({context:e,source:i,pixelFormat:this._imageryProvider.hasAlphaChannel?ct.RGBA:ct.RGB,sampler:n})};mi.prototype._createTexture=function(e,t){let n=this._imageryProvider,i=t.image;if(l(n.tileDiscardPolicy)){let r=n.tileDiscardPolicy;if(l(r)){if(!r.isReady()){t.state=ui.RECEIVED;return}if(r.shouldDiscardImage(i)){t.state=ui.INVALID;return}}}let o=this._createTextureWebGL(e,t);n.tilingScheme.projection instanceof vi?t.textureWebMercator=o:t.texture=o,t.image=void 0,t.state=ui.TEXTURE_LOADED};function ipe(e,t,n){return`${e}:${t}:${n}`}mi.prototype._finalizeReprojectTexture=function(e,t){let n=this.minificationFilter,i=this.magnificationFilter;if(n===cn.LINEAR&&i===xi.LINEAR&&!ct.isCompressedFormat(t.pixelFormat)&&P.isPowerOfTwo(t.width)&&P.isPowerOfTwo(t.height)){n=cn.LINEAR_MIPMAP_LINEAR;let r=kt.maximumTextureFilterAnisotropy,s=Math.min(r,y(this._maximumAnisotropy,r)),a=ipe(n,i,s),c=e.cache.imageryLayerMipmapSamplers;l(c)||(c={},e.cache.imageryLayerMipmapSamplers=c);let u=c[a];l(u)||(u=c[a]=new dn({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i,maximumAnisotropy:s})),t.generateMipmap(Im.NICEST),t.sampler=u}else{let r=ipe(n,i,0),s=e.cache.imageryLayerNonMipmapSamplers;l(s)||(s={},e.cache.imageryLayerNonMipmapSamplers=s);let a=s[r];l(a)||(a=s[r]=new dn({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i})),t.sampler=a}};mi.prototype._reprojectTexture=function(e,t,n){let i=t.textureWebMercator||t.texture,o=t.rectangle,r=e.context;if(n=y(n,!0),n&&!(this._imageryProvider.tilingScheme.projection instanceof Si)&&o.width/i.width>1e-5){let s=this;t.addReference();let a=new zu({persists:!0,owner:this,preExecute:function(c){Ket(c,r,i,t.rectangle)},postExecute:function(c){t.texture=c,s._finalizeReprojectTexture(r,c),t.state=ui.READY,t.releaseReference()},canceled:function(){t.state=ui.TEXTURE_LOADED,t.releaseReference()}});this._reprojectComputeCommands.push(a)}else n&&(t.texture=i),this._finalizeReprojectTexture(r,i),t.state=ui.READY};mi.prototype.queueReprojectionCommands=function(e){let t=this._reprojectComputeCommands,n=t.length;for(let i=0;i<n;++i)e.commandList.push(t[i]);t.length=0};mi.prototype.cancelReprojections=function(){this._reprojectComputeCommands.forEach(function(e){l(e.canceled)&&e.canceled()}),this._reprojectComputeCommands.length=0};mi.prototype.getImageryFromCache=function(e,t,n,i){let o=spe(e,t,n),r=this._imageryCache[o];return l(r)||(r=new eS(this,e,t,n,i),this._imageryCache[o]=r),r.addReference(),r};mi.prototype.removeImageryFromCache=function(e){let t=spe(e.x,e.y,e.level);delete this._imageryCache[t]};function spe(e,t,n){return JSON.stringify([e,t,n])}var D4={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new H,texture:void 0},Xet=Ht.supportsTypedArrays()?new Float32Array(2*64):void 0;function Ket(e,t,n,i){let o=t.cache.imageryLayer_reproject;if(!l(o)){o=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){l(this.framebuffer)&&this.framebuffer.destroy(),l(this.vertexArray)&&this.vertexArray.destroy(),l(this.shaderProgram)&&this.shaderProgram.destroy()}};let x=new Float32Array(2*64*2),C=0;for(let D=0;D<64;++D){let O=D/63;x[C++]=0,x[C++]=O,x[C++]=1,x[C++]=O}let T={position:0,webMercatorT:1},E=zr.getRegularGridIndices(2,64),S=mt.createIndexBuffer({context:t,typedArray:E,usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT});o.vertexArray=new oi({context:t,attributes:[{index:T.position,vertexBuffer:mt.createVertexBuffer({context:t,typedArray:x,usage:Fe.STATIC_DRAW}),componentsPerAttribute:2},{index:T.webMercatorT,vertexBuffer:mt.createVertexBuffer({context:t,sizeInBytes:64*2*4,usage:Fe.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:S});let v=new He({sources:[YB]});o.shaderProgram=Kt.fromCache({context:t,vertexShaderSource:v,fragmentShaderSource:jB,attributeLocations:T}),o.sampler=new dn({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:cn.LINEAR,magnificationFilter:xi.LINEAR})}n.sampler=o.sampler;let r=n.width,s=n.height;D4.textureDimensions.x=r,D4.textureDimensions.y=s,D4.texture=n;let a=Math.sin(i.south),c=.5*Math.log((1+a)/(1-a));a=Math.sin(i.north);let f=1/(.5*Math.log((1+a)/(1-a))-c),d=new Bt({context:t,width:r,height:s,pixelFormat:n.pixelFormat,pixelDatatype:n.pixelDatatype,preMultiplyAlpha:n.preMultiplyAlpha});P.isPowerOfTwo(r)&&P.isPowerOfTwo(s)&&d.generateMipmap(Im.NICEST);let p=i.south,g=i.north,h=Xet,A=0;for(let x=0;x<64;++x){let C=x/63,T=P.lerp(p,g,C);a=Math.sin(T);let S=(.5*Math.log((1+a)/(1-a))-c)*f;h[A++]=S,h[A++]=S}o.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(h),e.shaderProgram=o.shaderProgram,e.outputTexture=d,e.uniformMap=D4,e.vertexArray=o.vertexArray}function Jet(e,t,n){let i=e._imageryProvider,o=i.tilingScheme,r=o.ellipsoid,s=e._imageryProvider.tilingScheme.projection instanceof Si?1:Math.cos(n),a=o.rectangle,u=r.maximumRadius*a.width*s/(i.tileWidth*o.getNumberOfXTilesAtLevel(0))/t,f=Math.log(u)/Math.log(2);return Math.round(f)|0}function Zet(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function Qet(e,t){let n;try{if(n=await Promise.resolve(t),e.isDestroyed())return;e._imageryProvider=n,e._readyEvent.raiseEvent(n)}catch(i){Zet(e._errorEvent,i)}}var Ls=mi;var $et={WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7},yn=$et;var ape={NONE:0,CULLED:1,RENDERED:2,REFINED:3,RENDERED_AND_KICKED:6,REFINED_AND_KICKED:7,CULLED_BUT_NEEDED:9,wasKicked:function(e){return e>=ape.RENDERED_AND_KICKED},originalResult:function(e){return e&3},kick:function(e){return e|4}},Qn=ape;function iS(e){this.tile=e,this.frameLastUpdated=void 0,this.westMeshes=[],this.westTiles=[],this.southMeshes=[],this.southTiles=[],this.eastMeshes=[],this.eastTiles=[],this.northMeshes=[],this.northTiles=[],this.southwestMesh=void 0,this.southwestTile=void 0,this.southeastMesh=void 0,this.southeastTile=void 0,this.northwestMesh=void 0,this.northwestTile=void 0,this.northeastMesh=void 0,this.northeastTile=void 0,this.changedThisFrame=!0,this.visitedFrame=void 0,this.enqueuedFrame=void 0,this.mesh=void 0,this.vertexArray=void 0,this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new re}iS.prototype.update=function(e,t,n){this.changedThisFrame&&(hpe(e,t,this.tile,n),this.changedThisFrame=!1)};iS.prototype.destroy=function(e){this._destroyVertexArray(e),l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};iS.prototype._destroyVertexArray=function(e){l(this.vertexArray)&&(l(e)?e.push(this.vertexArray):Rf._freeVertexArray(this.vertexArray),this.vertexArray=void 0)};var ett=new Zg;iS.updateFillTiles=function(e,t,n,i){let o=e._quadtree,r=o._levelZeroTiles,s=o._lastSelectionFrameNumber,a=ett;a.clear();for(let u=0;u<t.length;++u){let f=t[u];l(f.data.vertexArray)&&a.enqueue(t[u])}let c=a.dequeue();for(;c!==void 0;){let u=c.findTileToWest(r),f=c.findTileToSouth(r),d=c.findTileToEast(r),p=c.findTileToNorth(r);fs(e,n,c,u,s,yn.EAST,!1,a,i),fs(e,n,c,f,s,yn.NORTH,!1,a,i),fs(e,n,c,d,s,yn.WEST,!1,a,i),fs(e,n,c,p,s,yn.SOUTH,!1,a,i);let g=u.findTileToNorth(r),h=u.findTileToSouth(r),A=d.findTileToNorth(r),x=d.findTileToSouth(r);fs(e,n,c,g,s,yn.SOUTHEAST,!1,a,i),fs(e,n,c,A,s,yn.SOUTHWEST,!1,a,i),fs(e,n,c,h,s,yn.NORTHEAST,!1,a,i),fs(e,n,c,x,s,yn.NORTHWEST,!1,a,i),c=a.dequeue()}};function fs(e,t,n,i,o,r,s,a,c){if(i===void 0)return;let u=i;for(;u&&(u._lastSelectionResultFrame!==o||Qn.wasKicked(u._lastSelectionResult)||Qn.originalResult(u._lastSelectionResult)===Qn.CULLED);){if(s)return;let f=u.parent;if(r>=yn.NORTHWEST&&f!==void 0)switch(r){case yn.NORTHWEST:u=u===f.northwestChild?f:void 0;break;case yn.NORTHEAST:u=u===f.northeastChild?f:void 0;break;case yn.SOUTHWEST:u=u===f.southwestChild?f:void 0;break;case yn.SOUTHEAST:u=u===f.southeastChild?f:void 0;break}else u=f}if(u!==void 0){if(u._lastSelectionResult===Qn.RENDERED){if(l(u.data.vertexArray))return;ttt(e,t,n,u,r,o,a,c);return}if(Qn.originalResult(i._lastSelectionResult)!==Qn.CULLED)switch(r){case yn.WEST:fs(e,t,n,i.northwestChild,o,r,!0,a,c),fs(e,t,n,i.southwestChild,o,r,!0,a,c);break;case yn.EAST:fs(e,t,n,i.southeastChild,o,r,!0,a,c),fs(e,t,n,i.northeastChild,o,r,!0,a,c);break;case yn.SOUTH:fs(e,t,n,i.southwestChild,o,r,!0,a,c),fs(e,t,n,i.southeastChild,o,r,!0,a,c);break;case yn.NORTH:fs(e,t,n,i.northeastChild,o,r,!0,a,c),fs(e,t,n,i.northwestChild,o,r,!0,a,c);break;case yn.NORTHWEST:fs(e,t,n,i.northwestChild,o,r,!0,a,c);break;case yn.NORTHEAST:fs(e,t,n,i.northeastChild,o,r,!0,a,c);break;case yn.SOUTHWEST:fs(e,t,n,i.southwestChild,o,r,!0,a,c);break;case yn.SOUTHEAST:fs(e,t,n,i.southeastChild,o,r,!0,a,c);break;default:throw new fe("Invalid edge")}}}function ttt(e,t,n,i,o,r,s,a){let c=i.data;if(c.fill===void 0)c.fill=new iS(i);else if(c.fill.visitedFrame===r)return;c.fill.enqueuedFrame!==r&&(c.fill.enqueuedFrame=r,c.fill.changedThisFrame=!1,s.enqueue(i)),ntt(e,t,n,i,o,a)}function ntt(e,t,n,i,o,r){let s=i.data.fill,a,c=n.data.fill;l(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(hpe(e,t,n,r),c.changedThisFrame=!1),a=n.data.fill.mesh):a=n.data.mesh;let u,f;switch(o){case yn.WEST:u=s.westMeshes,f=s.westTiles;break;case yn.SOUTH:u=s.southMeshes,f=s.southTiles;break;case yn.EAST:u=s.eastMeshes,f=s.eastTiles;break;case yn.NORTH:u=s.northMeshes,f=s.northTiles;break;case yn.NORTHWEST:s.changedThisFrame=s.changedThisFrame||s.northwestMesh!==a,s.northwestMesh=a,s.northwestTile=n;return;case yn.NORTHEAST:s.changedThisFrame=s.changedThisFrame||s.northeastMesh!==a,s.northeastMesh=a,s.northeastTile=n;return;case yn.SOUTHWEST:s.changedThisFrame=s.changedThisFrame||s.southwestMesh!==a,s.southwestMesh=a,s.southwestTile=n;return;case yn.SOUTHEAST:s.changedThisFrame=s.changedThisFrame||s.southeastMesh!==a,s.southeastMesh=a,s.southeastTile=n;return}if(n.level<=i.level){s.changedThisFrame=s.changedThisFrame||u[0]!==a||u.length!==1,u[0]=a,f[0]=n,u.length=1,f.length=1;return}let d,p,g,h,A=n.rectangle,x,C=i.rectangle;switch(o){case yn.WEST:for(x=(C.north-C.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],h=g.rectangle,!P.greaterThan(A.north,h.south,x));++d);for(p=d;p<f.length&&(g=f[p],h=g.rectangle,!P.greaterThanOrEquals(A.south,h.north,x));++p);break;case yn.SOUTH:for(x=(C.east-C.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],h=g.rectangle,!P.lessThan(A.west,h.east,x));++d);for(p=d;p<f.length&&(g=f[p],h=g.rectangle,!P.lessThanOrEquals(A.east,h.west,x));++p);break;case yn.EAST:for(x=(C.north-C.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],h=g.rectangle,!P.lessThan(A.south,h.north,x));++d);for(p=d;p<f.length&&(g=f[p],h=g.rectangle,!P.lessThanOrEquals(A.north,h.south,x));++p);break;case yn.NORTH:for(x=(C.east-C.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],h=g.rectangle,!P.greaterThan(A.east,h.west,x));++d);for(p=d;p<f.length&&(g=f[p],h=g.rectangle,!P.greaterThanOrEquals(A.west,h.east,x));++p);break}p-d===1?(s.changedThisFrame=s.changedThisFrame||u[d]!==a,u[d]=a,f[d]=n):(s.changedThisFrame=!0,u.splice(d,p-d,a),f.splice(d,p-d,n))}var jx=new he,itt=new he,nS=new m,Tj=new m,Aj=new H,xj=new H,Su=new H;function L4(){this.height=0,this.encodedNormal=new H}function I4(e,t,n,i,o,r,s,a,c){if(l(o))return o;let u;if(l(r)&&l(s))u=(r.height+s.height)*.5;else if(l(r))u=r.height;else if(l(s))u=s.height;else if(l(a))u=a.height;else{let d=e.tile.data.tileBoundingRegion,p=0,g=0;l(d)&&(p=d.minimumHeight,g=d.maximumHeight),u=(p+g)*.5}return ppe(e,t,n,i,u,c),c}var ott={minimumHeight:0,maximumHeight:0},rtt=new m,cpe=new L4,lpe=new L4,upe=new L4,fpe=new L4,stt=typeof Uint8Array<"u"?new Uint8Array(9*9):void 0,att={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0};function hpe(e,t,n,i){Rf.initialize(n,e.terrainProvider,e._imageryLayers);let o=n.data,r=o.fill,s=n.rectangle,a=t.terrainExaggeration,c=t.terrainExaggerationRelativeHeight,u=a!==1,f=n.tilingScheme.ellipsoid,d=O4(r,f,0,1,r.northwestTile,r.northwestMesh,r.northTiles,r.northMeshes,r.westTiles,r.westMeshes,upe),p=O4(r,f,0,0,r.southwestTile,r.southwestMesh,r.westTiles,r.westMeshes,r.southTiles,r.southMeshes,cpe),g=O4(r,f,1,0,r.southeastTile,r.southeastMesh,r.southTiles,r.southMeshes,r.eastTiles,r.eastMeshes,lpe),h=O4(r,f,1,1,r.northeastTile,r.northeastMesh,r.eastTiles,r.eastMeshes,r.northTiles,r.northMeshes,fpe);d=I4(r,f,0,1,d,p,h,g,upe),p=I4(r,f,0,0,p,d,g,h,cpe),g=I4(r,f,1,1,g,p,h,d,lpe),h=I4(r,f,1,1,h,g,d,p,fpe);let A=p.height,x=g.height,C=d.height,T=h.height,E=Math.min(A,x,C,T),S=Math.max(A,x,C,T),v=(E+S)*.5,D,O,M=e.getLevelMaximumGeometricError(n.level),L=f.maximumRadius-M,N=Math.acos(L/f.maximumRadius)*4;if(N*=1.5,s.width>N&&S-E<=M){let w=new ba({width:9,height:9,buffer:stt,structure:{heightOffset:S}}),I=att;I.tilingScheme=n.tilingScheme,I.x=n.x,I.y=n.y,I.level=n.level,I.exaggeration=a,I.exaggerationRelativeHeight=c,r.mesh=w._createMeshSync(I)}else{let w=u,I=le.center(s,itt);I.height=v;let R=f.cartographicToCartesian(I,rtt),F=new sc(R,void 0,void 0,void 0,void 0,!0,!0,w,a,c),k=5,V;for(V=r.westMeshes,D=0,O=V.length;D<O;++D)k+=V[D].eastIndicesNorthToSouth.length;for(V=r.southMeshes,D=0,O=V.length;D<O;++D)k+=V[D].northIndicesWestToEast.length;for(V=r.eastMeshes,D=0,O=V.length;D<O;++D)k+=V[D].westIndicesSouthToNorth.length;for(V=r.northMeshes,D=0,O=V.length;D<O;++D)k+=V[D].southIndicesEastToWest.length;let G=ott;G.minimumHeight=E,G.maximumHeight=S;let U=F.stride,q=new Float32Array(k*U),Y=0,Q=Y;Y=P4(f,s,F,q,Y,0,1,d.height,d.encodedNormal,1,G),Y=R4(r,f,F,q,Y,r.westTiles,r.westMeshes,yn.EAST,G);let W=Y;Y=P4(f,s,F,q,Y,0,0,p.height,p.encodedNormal,0,G),Y=R4(r,f,F,q,Y,r.southTiles,r.southMeshes,yn.NORTH,G);let K=Y;Y=P4(f,s,F,q,Y,1,0,g.height,g.encodedNormal,0,G),Y=R4(r,f,F,q,Y,r.eastTiles,r.eastMeshes,yn.WEST,G);let J=Y;Y=P4(f,s,F,q,Y,1,1,h.height,h.encodedNormal,1,G),Y=R4(r,f,F,q,Y,r.northTiles,r.northMeshes,yn.SOUTH,G),E=G.minimumHeight,S=G.maximumHeight;let _e=Mn.fromRectangle(s,E,S,n.tilingScheme.ellipsoid),xe=vi.geodeticLatitudeToMercatorAngle(s.south),se=1/(vi.geodeticLatitudeToMercatorAngle(s.north)-xe),Ae=(vi.geodeticLatitudeToMercatorAngle(I.latitude)-xe)*se,me=f.geodeticSurfaceNormalCartographic(jx,Tj),Se=jn.octEncode(me,Aj),Ie=Y;F.encode(q,Y*U,_e.center,H.fromElements(.5,.5,Su),v,Se,Ae,me),++Y;let Ve=Y,Re=Ve<256?1:2,ke=(Ve-1)*3,dt=ke*Re,pt=(q.length-Ve*U)*Float32Array.BYTES_PER_ELEMENT,rt;if(pt>=dt){let Ee=Ve*U*Float32Array.BYTES_PER_ELEMENT;rt=Ve<256?new Uint8Array(q.buffer,Ee,ke):new Uint16Array(q.buffer,Ee,ke)}else rt=Ve<256?new Uint8Array(ke):new Uint16Array(ke);q=new Float32Array(q.buffer,0,Ve*U);let fn=0;for(D=0;D<Ve-2;++D)rt[fn++]=Ie,rt[fn++]=D,rt[fn++]=D+1;rt[fn++]=Ie,rt[fn++]=D,rt[fn++]=0;let Bn=[];for(D=W;D>=Q;--D)Bn.push(D);let jt=[];for(D=K;D>=W;--D)jt.push(D);let Ze=[];for(D=J;D>=K;--D)Ze.push(D);let pe=[];for(pe.push(0),D=Ie-1;D>=J;--D)pe.push(D);r.mesh=new Mf(F.center,q,rt,ke,Ve,E,S,ae.fromOrientedBoundingBox(_e),htt(e,_e.center,s,E,S),F.stride,_e,F,Bn,jt,Ze,pe)}let _=t.context;r._destroyVertexArray(i),r.vertexArray=Rf._createVertexArrayForMesh(_,r.mesh),o.processImagery(n,e.terrainProvider,t,!0);let b=r.waterMaskTexture;if(r.waterMaskTexture=void 0,e.terrainProvider.hasWaterMask){let w=o._findAncestorTileWithTerrainData(n);l(w)&&l(w.data.waterMaskTexture)&&(r.waterMaskTexture=w.data.waterMaskTexture,++r.waterMaskTexture.referenceCount,o._computeWaterMaskTranslationAndScale(n,w,r.waterMaskTranslationAndScale))}l(b)&&(--b.referenceCount,b.referenceCount===0&&b.destroy())}function P4(e,t,n,i,o,r,s,a,c,u,f){let d=jx;d.longitude=P.lerp(t.west,t.east,r),d.latitude=P.lerp(t.south,t.north,s),d.height=a;let p=e.cartographicToCartesian(d,nS),g;n.hasGeodeticSurfaceNormals&&(g=e.geodeticSurfaceNormal(p,Tj));let h=xj;return h.x=r,h.y=s,n.encode(i,o*n.stride,p,h,a,c,u,g),f.minimumHeight=Math.min(f.minimumHeight,a),f.maximumHeight=Math.max(f.maximumHeight,a),o+1}var B4=new le;function qB(e,t,n,i){let o=e.rectangle,r=t.rectangle;t.x===0&&n.x===1&&e.x===e.tilingScheme.getNumberOfXTilesAtLevel(e.level)-1?(o=le.clone(e.rectangle,B4),o.west-=P.TWO_PI,o.east-=P.TWO_PI):e.x===0&&n.x===0&&t.x===t.tilingScheme.getNumberOfXTilesAtLevel(t.level)-1&&(o=le.clone(e.rectangle,B4),o.west+=P.TWO_PI,o.east+=P.TWO_PI);let s=o.east-o.west,a=(r.west-o.west)/s,c=(r.east-o.west)/s,u=o.north-o.south,f=(r.south-o.south)/u,d=(r.north-o.south)/u,p=(n.x-a)/(c-a),g=(n.y-f)/(d-f);return Math.abs(p)<Math.EPSILON5?p=0:Math.abs(p-1)<Math.EPSILON5&&(p=1),Math.abs(g)<Math.EPSILON5?g=0:Math.abs(g-1)<Math.EPSILON5&&(g=1),i.x=p,i.y=g,i}var ctt=new H;function Cj(e,t,n,i,o){let r=e.encoding,s=e.vertices;if(o.height=r.decodeHeight(s,t),r.hasVertexNormals)r.getOctEncodedNormal(s,t,o.encodedNormal);else{let a=o.encodedNormal;a.x=0,a.y=0}}var ltt=new H,utt=new m;function ftt(e,t,n,i,o,r,s,a,c,u){let f=i.encoding,d=i.vertices,p=qB(t,n,f.decodeTextureCoordinates(d,o,Su),Su),g=qB(t,n,f.decodeTextureCoordinates(d,r,xj),xj),h;c?h=(s-p.x)/(g.x-p.x):h=(a-p.y)/(g.y-p.y);let A=f.decodeHeight(d,o),x=f.decodeHeight(d,r),C=n.rectangle;jx.longitude=P.lerp(C.west,C.east,s),jx.latitude=P.lerp(C.south,C.north,a),u.height=jx.height=P.lerp(A,x,h);let T;if(f.hasVertexNormals){let E=f.getOctEncodedNormal(d,o,ctt),S=f.getOctEncodedNormal(d,r,ltt),v=jn.octDecode(E.x,E.y,nS),D=jn.octDecode(S.x,S.y,utt);T=m.lerp(v,D,h,nS),m.normalize(T,T),jn.octEncode(T,u.encodedNormal)}else T=e.geodeticSurfaceNormalCartographic(jx,nS),jn.octEncode(T,u.encodedNormal)}function ppe(e,t,n,i,o,r){r.height=o;let s=t.geodeticSurfaceNormalCartographic(jx,nS);jn.octEncode(s,r.encodedNormal)}function O4(e,t,n,i,o,r,s,a,c,u,f){if(mpe(e,t,a,s,!1,n,i,f)||mpe(e,t,u,c,!0,n,i,f))return f;let p;if(Ej(o,r))return n===0?i===0?p=r.eastIndicesNorthToSouth[0]:p=r.southIndicesEastToWest[0]:i===0?p=r.northIndicesWestToEast[0]:p=r.westIndicesSouthToNorth[0],Cj(r,p,n,i,f),f;let g;if(n===0?i===0?g=M4(e.westMeshes,e.westTiles,yn.EAST,e.southMeshes,e.southTiles,yn.NORTH,n,i):g=M4(e.northMeshes,e.northTiles,yn.SOUTH,e.westMeshes,e.westTiles,yn.EAST,n,i):i===0?g=M4(e.southMeshes,e.southTiles,yn.NORTH,e.eastMeshes,e.eastTiles,yn.WEST,n,i):g=M4(e.eastMeshes,e.eastTiles,yn.WEST,e.northMeshes,e.northTiles,yn.SOUTH,n,i),l(g))return ppe(e,t,n,i,g,f),f}function M4(e,t,n,i,o,r,s,a){let c=dpe(e,t,!1,n,s,a),u=dpe(i,o,!0,r,s,a);return l(c)&&l(u)?(c+u)*.5:l(c)?c:u}function R4(e,t,n,i,o,r,s,a,c){for(let u=0;u<r.length;++u)o=dtt(e,t,n,i,o,r[u],s[u],a,c);return o}function dtt(e,t,n,i,o,r,s,a,c){let u=r.rectangle;a===yn.EAST&&e.tile.x===0?(u=le.clone(r.rectangle,B4),u.west-=P.TWO_PI,u.east-=P.TWO_PI):a===yn.WEST&&r.x===0&&(u=le.clone(r.rectangle,B4),u.west+=P.TWO_PI,u.east+=P.TWO_PI);let f=e.tile.rectangle,d,p;o>0&&(n.decodeTextureCoordinates(i,o-1,Su),d=Su.x,p=Su.y);let g,h;switch(a){case yn.WEST:g=s.westIndicesSouthToNorth,h=!1;break;case yn.NORTH:g=s.northIndicesWestToEast,h=!0;break;case yn.EAST:g=s.eastIndicesNorthToSouth,h=!1;break;case yn.SOUTH:g=s.southIndicesEastToWest,h=!0;break}let A=r,x=e.tile,C=s.encoding,T=s.vertices,E=n.stride,S,v;C.hasWebMercatorT&&(S=vi.geodeticLatitudeToMercatorAngle(f.south),v=1/(vi.geodeticLatitudeToMercatorAngle(f.north)-S));for(let D=0;D<g.length;++D){let O=g[D],M=C.decodeTextureCoordinates(T,O,Su);qB(A,x,M,M);let L=M.x,N=M.y,_=h?L:N;if(_<0||_>1||Math.abs(L-d)<P.EPSILON5&&Math.abs(N-p)<P.EPSILON5)continue;let b=Math.abs(L)<P.EPSILON5||Math.abs(L-1)<P.EPSILON5,w=Math.abs(N)<P.EPSILON5||Math.abs(N-1)<P.EPSILON5;if(b&&w)continue;let I=C.decodePosition(T,O,nS),R=C.decodeHeight(T,O),F;C.hasVertexNormals?F=C.getOctEncodedNormal(T,O,Aj):(F=Aj,F.x=0,F.y=0);let k=N;if(C.hasWebMercatorT){let G=P.lerp(f.south,f.north,N);k=(vi.geodeticLatitudeToMercatorAngle(G)-S)*v}let V;n.hasGeodeticSurfaceNormals&&(V=t.geodeticSurfaceNormal(I,Tj)),n.encode(i,o*E,I,M,R,F,k,V),c.minimumHeight=Math.min(c.minimumHeight,R),c.maximumHeight=Math.max(c.maximumHeight,R),++o}return o}function dpe(e,t,n,i,o,r){let s,a,c;n?(s=0,a=e.length,c=1):(s=e.length-1,a=-1,c=-1);for(let u=s;u!==a;u+=c){let f=e[u],d=t[u];if(!Ej(d,f))continue;let p;switch(i){case yn.WEST:p=f.westIndicesSouthToNorth;break;case yn.SOUTH:p=f.southIndicesEastToWest;break;case yn.EAST:p=f.eastIndicesNorthToSouth;break;case yn.NORTH:p=f.northIndicesWestToEast;break}let g=p[n?0:p.length-1];if(l(g))return f.encoding.decodeHeight(f.vertices,g)}}function Ej(e,t){return l(t)&&(!l(e.data.fill)||!e.data.fill.changedThisFrame)}function mpe(e,t,n,i,o,r,s,a){let c,u,f,d,p,g=i[o?0:n.length-1],h=n[o?0:n.length-1];if(Ej(g,h)&&(r===0?s===0?(c=o?h.northIndicesWestToEast:h.eastIndicesNorthToSouth,u=o,f=o):(c=o?h.eastIndicesNorthToSouth:h.southIndicesEastToWest,u=!o,f=!1):s===0?(c=o?h.westIndicesSouthToNorth:h.northIndicesWestToEast,u=!o,f=!0):(c=o?h.southIndicesEastToWest:h.westIndicesSouthToNorth,u=o,f=!o),c.length>0)){d=o?0:c.length-1,p=c[d],h.encoding.decodeTextureCoordinates(h.vertices,p,Su);let A=qB(g,e.tile,Su,Su);if(A.x===r&&A.y===s)return Cj(h,p,r,s,a),!0;if(d=wo(c,u?r:s,function(x,C){h.encoding.decodeTextureCoordinates(h.vertices,x,Su);let T=qB(g,e.tile,Su,Su);return f?u?T.x-r:T.y-s:u?r-T.x:s-T.y}),d<0){if(d=~d,d>0&&d<c.length)return ftt(t,g,e.tile,h,c[d-1],c[d],r,s,u,a),!0}else return Cj(h,c[d],r,s,a),!0}return!1}var mtt=[new m,new m,new m,new m];function htt(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=mtt;return m.fromRadians(n.west,n.south,o,a,c[0]),m.fromRadians(n.east,n.south,o,a,c[1]),m.fromRadians(n.west,n.north,o,a,c[2]),m.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}var oS=iS;function Zo(e){this.lightingFadeOutDistance=65e5,this.lightingFadeInDistance=9e6,this.hasWaterMask=!1,this.oceanNormalMap=void 0,this.zoomedOutOceanSpecularIntensity=.5,this.enableLighting=!1,this.dynamicAtmosphereLighting=!1,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!1,this.shadows=xn.RECEIVE_ONLY,this.vertexShadowDarkness=.3,this.fillHighlightColor=void 0,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this.undergroundColor=void 0,this.undergroundColorAlphaByDistance=void 0,this.lambertDiffuseMultiplier=0,this.materialUniformMap=void 0,this._materialUniformMap=void 0,this._quadtree=void 0,this._terrainProvider=e.terrainProvider,this._imageryLayers=e.imageryLayers,this._surfaceShaderSet=e.surfaceShaderSet,this._renderState=void 0,this._blendRenderState=void 0,this._disableCullingRenderState=void 0,this._disableCullingBlendRenderState=void 0,this._errorEvent=new ge,this._removeLayerAddedListener=this._imageryLayers.layerAdded.addEventListener(Zo.prototype._onLayerAdded,this),this._removeLayerRemovedListener=this._imageryLayers.layerRemoved.addEventListener(Zo.prototype._onLayerRemoved,this),this._removeLayerMovedListener=this._imageryLayers.layerMoved.addEventListener(Zo.prototype._onLayerMoved,this),this._removeLayerShownListener=this._imageryLayers.layerShownOrHidden.addEventListener(Zo.prototype._onLayerShownOrHidden,this),this._imageryLayersUpdatedEvent=new ge,this._layerOrderChanged=!1,this._tilesToRenderByTextureCount=[],this._drawCommands=[],this._uniformMaps=[],this._usedDrawCommands=0,this._vertexArraysToDestroy=[],this._debug={wireframe:!1,boundingSphereTile:void 0},this._baseColor=void 0,this._firstPassInitialColor=void 0,this.baseColor=new z(0,0,.5,1),this._clippingPlanes=void 0,this.cartographicLimitRectangle=le.clone(le.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1,this._oldTerrainExaggeration=void 0,this._oldTerrainExaggerationRelativeHeight=void 0}Object.defineProperties(Zo.prototype,{baseColor:{get:function(){return this._baseColor},set:function(e){this._baseColor=e,this._firstPassInitialColor=re.fromColor(e,this._firstPassInitialColor)}},quadtree:{get:function(){return this._quadtree},set:function(e){this._quadtree=e}},ready:{get:function(){return l(this._terrainProvider)&&this._terrainProvider._ready&&(this._imageryLayers.length===0||this._imageryLayers.get(0).ready&&this._imageryLayers.get(0).imageryProvider._ready)}},tilingScheme:{get:function(){return this._terrainProvider.tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},imageryLayersUpdatedEvent:{get:function(){return this._imageryLayersUpdatedEvent}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){this._terrainProvider!==e&&(this._terrainProvider=e,l(this._quadtree)&&this._quadtree.invalidateAllTiles())}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){os.setOwner(e,this,"_clippingPlanes")}}});function ptt(e,t){let n=e.loadingImagery;l(n)||(n=e.readyImagery);let i=t.loadingImagery;return l(i)||(i=t.readyImagery),n.imageryLayer._layerIndex-i.imageryLayer._layerIndex}Zo.prototype.update=function(e){this._imageryLayers._update()};function _tt(e,t){let n=t.creditDisplay;l(e._terrainProvider)&&e._terrainProvider._ready&&l(e._terrainProvider.credit)&&n.addCreditToNextFrame(e._terrainProvider.credit);let i=e._imageryLayers;for(let o=0,r=i.length;o<r;++o){let s=i.get(o);s.ready&&s.imageryProvider._ready&&l(s.imageryProvider.credit)&&n.addCreditToNextFrame(s.imageryProvider.credit)}}Zo.prototype.initialize=function(e){this._imageryLayers.queueReprojectionCommands(e),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(i){i.data.imagery.sort(ptt)})),_tt(this,e);let t=this._vertexArraysToDestroy,n=t.length;for(let i=0;i<n;++i)Rf._freeVertexArray(t[i]);t.length=0};Zo.prototype.beginUpdate=function(e){let t=this._tilesToRenderByTextureCount;for(let i=0,o=t.length;i<o;++i){let r=t[i];l(r)&&(r.length=0)}let n=this._clippingPlanes;l(n)&&n.enabled&&n.update(e),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1};Zo.prototype.endUpdate=function(e){if(!l(this._renderState)){this._renderState=ze.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:za.LESS}}),this._blendRenderState=ze.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:za.LESS_OR_EQUAL},blending:mn.ALPHA_BLEND});let s=Ye(this._renderState,!0);s.cull.enabled=!1,this._disableCullingRenderState=ze.fromCache(s),s=Ye(this._blendRenderState,!0),s.cull.enabled=!1,this._disableCullingBlendRenderState=ze.fromCache(s)}this._hasFillTilesThisFrame&&this._hasLoadedTilesThisFrame&&oS.updateFillTiles(this,this._quadtree._tilesToRender,e,this._vertexArraysToDestroy);let t=this.quadtree,n=e.terrainExaggeration,i=e.terrainExaggerationRelativeHeight,o=this._oldTerrainExaggeration!==n||this._oldTerrainExaggerationRelativeHeight!==i;this._oldTerrainExaggeration=n,this._oldTerrainExaggerationRelativeHeight=i,o&&t.forEachLoadedTile(function(s){s.data.updateExaggeration(s,e,t)});let r=this._tilesToRenderByTextureCount;for(let s=0,a=r.length;s<a;++s){let c=r[s];if(l(c))for(let u=0,f=c.length;u<f;++u){let d=c[u],p=d.data.tileBoundingRegion;ktt(this,d,e),e.minimumTerrainHeight=Math.min(e.minimumTerrainHeight,p.minimumHeight)}}};function xpe(e,t){let n=t.globeTranslucencyState;if(n.translucent){let i=e.renderState.blending.enabled;n.pushDerivedCommands(e,i,t)}else t.commandList.push(e)}Zo.prototype.updateForPick=function(e){let t=this._drawCommands;for(let n=0,i=this._usedDrawCommands;n<i;++n)xpe(t[n],e)};Zo.prototype.cancelReprojections=function(){this._imageryLayers.cancelReprojections()};Zo.prototype.getLevelMaximumGeometricError=function(e){return l(this._terrainProvider)?this._terrainProvider.getLevelMaximumGeometricError(e):0};Zo.prototype.loadTile=function(e,t){let n=t.data,i=!0,o;l(n)&&(i=n.boundingVolumeSourceTile!==t||t._lastSelectionResult===Qn.CULLED_BUT_NEEDED,o=n.terrainState),Rf.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i),n=t.data,i&&o!==t.data.terrainState&&this.computeTileVisibility(t,e,this.quadtree.occluders)!==sr.NONE&&n.boundingVolumeSourceTile===t&&(i=!1,Rf.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i))};var gtt=new ae,Cpe=new le,ytt=new le,Att=new he;function F4(e,t){if(t.west<t.east)return t;let n=le.clone(t,ytt);return le.center(e,Att).longitude>0?n.east=P.PI:n.west=-P.PI,n}function Tpe(e,t){if(t.cameraUnderground||t.globeTranslucencyState.translucent)return!0;if(e.backFaceCulling)return!1;let n=e._clippingPlanes;return!!(l(n)&&n.enabled||!le.equals(e.cartographicLimitRectangle,le.MAX_VALUE))}Zo.prototype.computeTileVisibility=function(e,t,n){let i=this.computeDistanceToTile(e,t);e._distance=i;let o=Tpe(this,t);if(t.fog.enabled&&!o&&P.fog(i,t.fog.density)>=1)return sr.NONE;let r=e.data,s=r.tileBoundingRegion;if(r.boundingVolumeSourceTile===void 0)return sr.PARTIAL;let a=t.cullingVolume,c=s.boundingVolume;l(c)||(c=s.boundingSphere),r.clippedByBoundaries=!1;let u=F4(e.rectangle,this.cartographicLimitRectangle),f=le.simpleIntersection(u,e.rectangle,Cpe);if(!l(f))return sr.NONE;if(le.equals(f,e.rectangle)||(r.clippedByBoundaries=!0),t.mode!==ne.SCENE3D&&(c=gtt,ae.fromRectangleWithHeights2D(e.rectangle,t.mapProjection,s.minimumHeight,s.maximumHeight,c),m.fromElements(c.center.z,c.center.x,c.center.y,c.center),t.mode===ne.MORPHING&&l(r.renderedMesh)&&(c=ae.union(s.boundingSphere,c,c))),!l(c))return sr.PARTIAL;let d=this._clippingPlanes;if(l(d)&&d.enabled){let A=d.computeIntersectionWithBoundingVolume(c);if(e.isClipped=A!==$t.INSIDE,A===$t.OUTSIDE)return sr.NONE}let p,g=a.computeVisibility(c);if(g===$t.OUTSIDE?p=sr.NONE:g===$t.INTERSECTING?p=sr.PARTIAL:g===$t.INSIDE&&(p=sr.FULL),p===sr.NONE)return p;let h=t.mode===ne.SCENE3D&&t.camera.frustum instanceof tn;if(t.mode===ne.SCENE3D&&!h&&l(n)&&!o){let A=r.occludeePointInScaledSpace;return!l(A)||n.ellipsoid.isScaledSpacePointVisiblePossiblyUnderEllipsoid(A,s.minimumHeight)?p:sr.NONE}return p};Zo.prototype.canRefine=function(e){return l(e.data.terrainData)?!0:this.terrainProvider.getTileDataAvailable(e.x*2,e.y*2,e.level+1)!==void 0};var xtt=[],Ctt=[];Zo.prototype.canRenderWithoutLosingDetail=function(e,t){let n=e.data,i=xtt;i.length=this._imageryLayers.length;let o=!1,r=!1,s;l(n)&&(o=n.terrainState===po.READY,r=!0,s=n.imagery);let a,c;for(a=0,c=i.length;a<c;++a)i[a]=r;if(l(s))for(a=0,c=s.length;a<c;++a){let d=s[a],p=d.loadingImagery,g=!l(p)||p.state===ui.FAILED||p.state===ui.INVALID,h=(d.loadingImagery||d.readyImagery).imageryLayer._layerIndex;i[h]=g&&i[h]}let u=this.quadtree._lastSelectionFrameNumber,f=Ctt;for(f.length=0,f.push(e.southwestChild,e.southeastChild,e.northwestChild,e.northeastChild);f.length>0;){let d=f.pop(),p=d._lastSelectionResultFrame===u?d._lastSelectionResult:Qn.NONE;if(p===Qn.RENDERED){let g=d.data;if(!l(g))continue;if(!o&&d.data.terrainState===po.READY)return!1;let h=d.data.imagery;for(a=0,c=h.length;a<c;++a){let A=h[a],x=A.loadingImagery,C=!l(x)||x.state===ui.FAILED||x.state===ui.INVALID,T=(A.loadingImagery||A.readyImagery).imageryLayer._layerIndex;if(C&&!i[T])return!1}}else p===Qn.REFINED&&f.push(d.southwestChild,d.southeastChild,d.northwestChild,d.northeastChild)}return!0};var Ttt=new m;Zo.prototype.computeTileLoadPriority=function(e,t){let n=e.data;if(n===void 0)return 0;let i=n.tileBoundingRegion.boundingVolume;if(i===void 0)return 0;let o=t.camera.positionWC,r=t.camera.directionWC,s=m.subtract(i.center,o,Ttt),a=m.magnitude(s);return a<P.EPSILON5?0:(m.divideByScalar(s,a,s),(1-m.dot(s,r))*e._distance)};var _pe=new B,N4=new B,Ett=new re,btt=new re,Stt=new re,wtt=new m,gpe=new m,vtt=new m,Dtt=new m;Zo.prototype.showTileThisFrame=function(e,t){let n=0,i=e.data.imagery;for(let a=0,c=i.length;a<c;++a){let u=i[a];l(u.readyImagery)&&u.readyImagery.imageryLayer.alpha!==0&&++n}let o=this._tilesToRenderByTextureCount[n];l(o)||(o=[],this._tilesToRenderByTextureCount[n]=o),o.push(e);let r=e.data;l(r.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;let s=this._debug;++s.tilesRendered,s.texturesRendered+=n};var Itt=[new m,new m,new m,new m];function ype(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=Itt;return m.fromRadians(n.west,n.south,o,a,c[0]),m.fromRadians(n.east,n.south,o,a,c[1]),m.fromRadians(n.west,n.north,o,a,c[2]),m.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}Zo.prototype.computeDistanceToTile=function(e,t){Ptt(e,this,t);let n=e.data;if(n.boundingVolumeSourceTile===void 0)return 9999999999;let o=n.tileBoundingRegion,r=o.minimumHeight,s=o.maximumHeight;if(n.boundingVolumeSourceTile!==e){let c=t.camera.positionCartographic.height,u=Math.abs(c-r),f=Math.abs(c-s);u>f?(o.minimumHeight=r,o.maximumHeight=r):(o.minimumHeight=s,o.maximumHeight=s)}let a=o.distanceToCamera(t);return o.minimumHeight=r,o.maximumHeight=s,a};function Ptt(e,t,n){let i=e.data;i===void 0&&(i=e.data=new Rf);let o=e.tilingScheme.ellipsoid;i.tileBoundingRegion===void 0&&(i.tileBoundingRegion=new df({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:o,minimumHeight:0,maximumHeight:0}));let r=i.tileBoundingRegion,s=r.minimumHeight,a=r.maximumHeight,c=!1,u=e,f=i.mesh,d=i.terrainData;if(f!==void 0&&f.minimumHeight!==void 0&&f.maximumHeight!==void 0)r.minimumHeight=f.minimumHeight,r.maximumHeight=f.maximumHeight,c=!0;else if(d!==void 0&&d._minimumHeight!==void 0&&d._maximumHeight!==void 0)r.minimumHeight=d._minimumHeight,r.maximumHeight=d._maximumHeight;else{r.minimumHeight=Number.NaN,r.maximumHeight=Number.NaN;let p=e.parent;for(;p!==void 0;){let g=p.data;if(g!==void 0){let h=g.mesh,A=g.terrainData;if(h!==void 0&&h.minimumHeight!==void 0&&h.maximumHeight!==void 0){r.minimumHeight=h.minimumHeight,r.maximumHeight=h.maximumHeight;break}else if(A!==void 0&&A._minimumHeight!==void 0&&A._maximumHeight!==void 0){r.minimumHeight=A._minimumHeight,r.maximumHeight=A._maximumHeight;break}}p=p.parent}u=p}if(u!==void 0){let p=n.terrainExaggeration,g=n.terrainExaggerationRelativeHeight;if(p!==1&&(c=!1,r.minimumHeight=Tc.getHeight(r.minimumHeight,p,g),r.maximumHeight=Tc.getHeight(r.maximumHeight,p,g)),c)i.boundingVolumeIsFromMesh||(r._orientedBoundingBox=Mn.clone(f.orientedBoundingBox,r._orientedBoundingBox),r._boundingSphere=ae.clone(f.boundingSphere3D,r._boundingSphere),i.occludeePointInScaledSpace=m.clone(f.occludeePointInScaledSpace,i.occludeePointInScaledSpace),l(i.occludeePointInScaledSpace)||(i.occludeePointInScaledSpace=ype(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace)));else{let A=r._orientedBoundingBox===void 0||r._boundingSphere===void 0;(r.minimumHeight!==s||r.maximumHeight!==a||A)&&(r.computeBoundingVolumes(o),i.occludeePointInScaledSpace=ype(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace))}i.boundingVolumeSourceTile=u,i.boundingVolumeIsFromMesh=c}else i.boundingVolumeSourceTile=void 0,i.boundingVolumeIsFromMesh=!1}Zo.prototype.isDestroyed=function(){return!1};Zo.prototype.destroy=function(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._removeLayerAddedListener=this._removeLayerAddedListener&&this._removeLayerAddedListener(),this._removeLayerRemovedListener=this._removeLayerRemovedListener&&this._removeLayerRemovedListener(),this._removeLayerMovedListener=this._removeLayerMovedListener&&this._removeLayerMovedListener(),this._removeLayerShownListener=this._removeLayerShownListener&&this._removeLayerShownListener(),ue(this)};function Ott(e,t,n){return function(i){let o,r,s=-1,a=i.data.imagery,c=a.length,u;for(u=0;u<c;++u)if(o=a[u],r=y(o.readyImagery,o.loadingImagery),r.imageryLayer===t){s=u;break}if(s!==-1){let f=s+e;if(o=a[f],r=l(o)?y(o.readyImagery,o.loadingImagery):void 0,!l(r)||r.imageryLayer!==t)return!t._createTileImagerySkeletons(i,n,f);for(u=s;u<f;++u)a[u].freeResources();a.splice(s,e)}return!0}}Zo.prototype._onLayerAdded=function(e,t){if(!this.isDestroyed()&&e.show){let n=this._terrainProvider,i=this,o=this._imageryLayersUpdatedEvent,r=function(){e._imageryCache={},i._quadtree.forEachLoadedTile(function(s){if(l(s._loadedCallbacks[e._layerIndex]))return;let a,c=s.data.imagery,u=c.length,f=-1,d=0;for(a=0;a<u;++a){let g=c[a];if(y(g.readyImagery,g.loadingImagery).imageryLayer===e)f===-1&&(f=a),++d;else if(f!==-1)break}if(f===-1)return;let p=f+d;e._createTileImagerySkeletons(s,n,p)&&(s._loadedCallbacks[e._layerIndex]=Ott(d,e,n),s.state=Rs.LOADING)})};if(e.ready){let s=e.imageryProvider;s._reload=r}this._quadtree.forEachLoadedTile(function(s){e._createTileImagerySkeletons(s,n)&&(s.state=Rs.LOADING,s.level!==0&&(s._lastSelectionResultFrame!==i.quadtree._lastSelectionFrameNumber||s._lastSelectionResult!==Qn.RENDERED)&&(s.renderable=!1))}),this._layerOrderChanged=!0,o.raiseEvent()}};Zo.prototype._onLayerRemoved=function(e,t){this._quadtree.forEachLoadedTile(function(n){let i=n.data.imagery,o=-1,r=0;for(let s=0,a=i.length;s<a;++s){let c=i[s],u=c.loadingImagery;if(l(u)||(u=c.readyImagery),u.imageryLayer===e)o===-1&&(o=s),c.freeResources(),++r;else if(o!==-1)break}o!==-1&&i.splice(o,r)}),l(e.imageryProvider)&&(e.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()};Zo.prototype._onLayerMoved=function(e,t,n){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()};Zo.prototype._onLayerShownOrHidden=function(e,t,n){n?this._onLayerAdded(e,t):this._onLayerRemoved(e,t)};var Mtt=new B,Rtt=new B;function Ape(e,t){let n={u_initialColor:function(){return this.properties.initialColor},u_fillHighlightColor:function(){return this.properties.fillHighlightColor},u_zoomedOutOceanSpecularIntensity:function(){return this.properties.zoomedOutOceanSpecularIntensity},u_oceanNormalMap:function(){return this.properties.oceanNormalMap},u_atmosphereLightIntensity:function(){return this.properties.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return this.properties.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return this.properties.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return this.properties.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return this.properties.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return this.properties.atmosphereMieAnisotropy},u_lightingFadeDistance:function(){return this.properties.lightingFadeDistance},u_nightFadeDistance:function(){return this.properties.nightFadeDistance},u_center3D:function(){return this.properties.center3D},u_terrainExaggerationAndRelativeHeight:function(){return this.properties.terrainExaggerationAndRelativeHeight},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){let i=e.context.uniformState.view,o=B.multiplyByPoint(i,this.properties.rtc,gpe);return B.setTranslation(i,o,_pe),_pe},u_modifiedModelViewProjection:function(){let i=e.context.uniformState.view,o=e.context.uniformState.projection,r=B.multiplyByPoint(i,this.properties.rtc,gpe);return B.setTranslation(i,r,N4),B.multiply(o,N4,N4),N4},u_dayTextures:function(){return this.properties.dayTextures},u_dayTextureTranslationAndScale:function(){return this.properties.dayTextureTranslationAndScale},u_dayTextureTexCoordsRectangle:function(){return this.properties.dayTextureTexCoordsRectangle},u_dayTextureUseWebMercatorT:function(){return this.properties.dayTextureUseWebMercatorT},u_dayTextureAlpha:function(){return this.properties.dayTextureAlpha},u_dayTextureNightAlpha:function(){return this.properties.dayTextureNightAlpha},u_dayTextureDayAlpha:function(){return this.properties.dayTextureDayAlpha},u_dayTextureBrightness:function(){return this.properties.dayTextureBrightness},u_dayTextureContrast:function(){return this.properties.dayTextureContrast},u_dayTextureHue:function(){return this.properties.dayTextureHue},u_dayTextureSaturation:function(){return this.properties.dayTextureSaturation},u_dayTextureOneOverGamma:function(){return this.properties.dayTextureOneOverGamma},u_dayIntensity:function(){return this.properties.dayIntensity},u_southAndNorthLatitude:function(){return this.properties.southAndNorthLatitude},u_southMercatorYAndOneOverHeight:function(){return this.properties.southMercatorYAndOneOverHeight},u_waterMask:function(){return this.properties.waterMask},u_waterMaskTranslationAndScale:function(){return this.properties.waterMaskTranslationAndScale},u_minMaxHeight:function(){return this.properties.minMaxHeight},u_scaleAndBias:function(){return this.properties.scaleAndBias},u_dayTextureSplit:function(){return this.properties.dayTextureSplit},u_dayTextureCutoutRectangles:function(){return this.properties.dayTextureCutoutRectangles},u_clippingPlanes:function(){let i=t._clippingPlanes;return l(i)&&l(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){let i=t._clippingPlanes,o=l(i)?B.multiply(e.context.uniformState.view,i.modelMatrix,Mtt):B.IDENTITY;return B.inverseTranspose(o,Rtt)},u_clippingPlanesEdgeStyle:function(){let i=this.properties.clippingPlanesEdgeColor;return i.alpha=this.properties.clippingPlanesEdgeWidth,i},u_minimumBrightness:function(){return e.fog.minimumBrightness},u_hsbShift:function(){return this.properties.hsbShift},u_colorsToAlpha:function(){return this.properties.colorsToAlpha},u_frontFaceAlphaByDistance:function(){return this.properties.frontFaceAlphaByDistance},u_backFaceAlphaByDistance:function(){return this.properties.backFaceAlphaByDistance},u_translucencyRectangle:function(){return this.properties.localizedTranslucencyRectangle},u_undergroundColor:function(){return this.properties.undergroundColor},u_undergroundColorAlphaByDistance:function(){return this.properties.undergroundColorAlphaByDistance},u_lambertDiffuseMultiplier:function(){return this.properties.lambertDiffuseMultiplier},u_vertexShadowDarkness:function(){return this.properties.vertexShadowDarkness},properties:{initialColor:new re(0,0,.5,1),fillHighlightColor:new z(0,0,0,0),zoomedOutOceanSpecularIntensity:.5,oceanNormalMap:void 0,lightingFadeDistance:new H(65e5,9e6),nightFadeDistance:new H(1e7,4e7),atmosphereLightIntensity:10,atmosphereRayleighCoefficient:new m(55e-7,13e-6,284e-7),atmosphereMieCoefficient:new m(21e-6,21e-6,21e-6),atmosphereRayleighScaleHeight:1e4,atmosphereMieScaleHeight:3200,atmosphereMieAnisotropy:.9,hsbShift:new m,center3D:void 0,rtc:new m,modifiedModelView:new B,tileRectangle:new re,terrainExaggerationAndRelativeHeight:new H(1,0),dayTextures:[],dayTextureTranslationAndScale:[],dayTextureTexCoordsRectangle:[],dayTextureUseWebMercatorT:[],dayTextureAlpha:[],dayTextureNightAlpha:[],dayTextureDayAlpha:[],dayTextureBrightness:[],dayTextureContrast:[],dayTextureHue:[],dayTextureSaturation:[],dayTextureOneOverGamma:[],dayTextureSplit:[],dayTextureCutoutRectangles:[],dayIntensity:0,colorsToAlpha:[],southAndNorthLatitude:new H,southMercatorYAndOneOverHeight:new H,waterMask:void 0,waterMaskTranslationAndScale:new re,minMaxHeight:new H,scaleAndBias:new B,clippingPlanesEdgeColor:z.clone(z.WHITE),clippingPlanesEdgeWidth:0,localizedCartographicLimitRectangle:new re,frontFaceAlphaByDistance:new re,backFaceAlphaByDistance:new re,localizedTranslucencyRectangle:new re,undergroundColor:z.clone(z.TRANSPARENT),undergroundColorAlphaByDistance:new re,lambertDiffuseMultiplier:0,vertexShadowDarkness:0}};return l(t.materialUniformMap)?_t(n,t.materialUniformMap):n}function Btt(e,t,n){let i=n.data,o,r;if(l(i.vertexArray)?(o=i.mesh,r=i.vertexArray):l(i.fill)&&l(i.fill.vertexArray)&&(o=i.fill.mesh,r=i.fill.vertexArray),!(!l(o)||!l(r))){if(l(i.wireframeVertexArray)){if(i.wireframeVertexArray.mesh===o)return;i.wireframeVertexArray.destroy(),i.wireframeVertexArray=void 0}i.wireframeVertexArray=Ltt(e,r,o),i.wireframeVertexArray.mesh=o}}function Ltt(e,t,n){let o={indices:n.indices,primitiveType:Le.TRIANGLES};Nn.toWireframe(o);let r=o.indices,s=mt.createIndexBuffer({context:e,typedArray:r,usage:Fe.STATIC_DRAW,indexDatatype:Ue.fromSizeInBytes(r.BYTES_PER_ELEMENT)});return new oi({context:e,attributes:t._attributes,indexBuffer:s})}var Epe,bpe,U4;(function(){let e=new Tt({geometry:id.fromDimensions({dimensions:new m(2,2,2)})}),t=new Tt({geometry:new Zp({radius:1})}),n=new B,i,o;function r(s){return new wn({geometryInstances:s,appearance:new rn({translucent:!1,flat:!0}),asynchronous:!1})}Epe=function(s,a){return s===i||(U4(),i=s,n=B.fromRotationTranslation(s.halfAxes,s.center,n),e.modelMatrix=n,e.attributes.color=Vt.fromColor(a),o=r(e)),o},bpe=function(s,a){return s===i||(U4(),i=s,n=B.fromTranslation(s.center,n),n=B.multiplyByUniformScale(n,s.radius,n),t.modelMatrix=n,t.attributes.color=Vt.fromColor(a),o=r(t)),o},U4=function(){l(o)&&(o.destroy(),o=void 0,i=void 0)}})();var Ntt=new re(0,0,0,0),Ftt={frameState:void 0,surfaceTile:void 0,numberOfDayTextures:void 0,applyBrightness:void 0,applyContrast:void 0,applyHue:void 0,applySaturation:void 0,applyGamma:void 0,applyAlpha:void 0,applyDayNightAlpha:void 0,applySplit:void 0,showReflectiveOcean:void 0,showOceanWaves:void 0,enableLighting:void 0,dynamicAtmosphereLighting:void 0,dynamicAtmosphereLightingFromSun:void 0,showGroundAtmosphere:void 0,perFragmentGroundAtmosphere:void 0,hasVertexNormals:void 0,useWebMercatorProjection:void 0,enableFog:void 0,enableClippingPlanes:void 0,clippingPlanes:void 0,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0,hasGeodeticSurfaceNormals:void 0,hasExaggeration:void 0},Utt=z.TRANSPARENT,Vtt=new Lt;function ktt(e,t,n){let i=t.data;l(i.vertexArray)||(i.fill===void 0&&(i.fill=new oS(t)),i.fill.update(e,n));let o=n.creditDisplay,r=i.terrainData;if(l(r)&&l(r.credits)){let Ze=r.credits;for(let pe=0,Ee=Ze.length;pe<Ee;++pe)o.addCreditToNextFrame(Ze[pe])}let s=kt.maximumTextureImageUnits,a=i.waterMaskTexture,c=i.waterMaskTranslationAndScale;!l(a)&&l(i.fill)&&(a=i.fill.waterMaskTexture,c=i.fill.waterMaskTranslationAndScale);let u=n.cameraUnderground,f=n.globeTranslucencyState,d=f.translucent,p=f.frontFaceAlphaByDistance,g=f.backFaceAlphaByDistance,h=f.rectangle,A=y(e.undergroundColor,Utt),x=y(e.undergroundColorAlphaByDistance,Vtt),C=Tpe(e,n)&&n.mode===ne.SCENE3D&&A.alpha>0&&(x.nearValue>0||x.farValue>0),T=e.lambertDiffuseMultiplier,E=e.vertexShadowDarkness,S=e.hasWaterMask&&l(a),v=e.oceanNormalMap,D=S&&l(v),O=l(e.terrainProvider)&&e.terrainProvider._ready&&e.terrainProvider.hasVertexNormals,M=n.fog.enabled&&n.fog.renderable&&!u,L=e.showGroundAtmosphere&&n.mode===ne.SCENE3D,N=xn.castShadows(e.shadows)&&!d,_=xn.receiveShadows(e.shadows)&&!d,b=e.hueShift,w=e.saturationShift,I=e.brightnessShift,R=!(P.equalsEpsilon(b,0,P.EPSILON7)&&P.equalsEpsilon(w,0,P.EPSILON7)&&P.equalsEpsilon(I,0,P.EPSILON7)),F=!1;if(L){let Ze=m.magnitude(n.camera.positionWC),pe=e.nightFadeOutDistance;F=Ze>pe}S&&--s,D&&--s,l(n.shadowState)&&n.shadowState.shadowsEnabled&&--s,l(e.clippingPlanes)&&e.clippingPlanes.enabled&&--s,s-=f.numberOfTextureUniforms;let k=i.renderedMesh,V=k.center,G=k.encoding,U=i.tileBoundingRegion,q=n.terrainExaggeration,Y=n.terrainExaggerationRelativeHeight,Q=q!==1,W=G.hasGeodeticSurfaceNormals,K=Ett,J=0,_e=0,xe=0,se=0,Ae=!1;if(n.mode!==ne.SCENE3D){let Ze=n.mapProjection,pe=Ze.project(le.southwest(t.rectangle),vtt),Ee=Ze.project(le.northeast(t.rectangle),Dtt);if(K.x=pe.x,K.y=pe.y,K.z=Ee.x,K.w=Ee.y,n.mode!==ne.MORPHING&&(V=wtt,V.x=0,V.y=(K.z+K.x)*.5,V.z=(K.w+K.y)*.5,K.x-=V.y,K.y-=V.z,K.z-=V.y,K.w-=V.z),n.mode===ne.SCENE2D&&G.quantization===Ms.BITS12){let je=1/(Math.pow(2,12)-1)*.5,fi=(K.z-K.x)*je,Ai=(K.w-K.y)*je;K.x-=fi,K.y-=Ai,K.z+=fi,K.w+=Ai}Ze instanceof vi&&(J=t.rectangle.south,_e=t.rectangle.north,xe=vi.geodeticLatitudeToMercatorAngle(J),se=1/(vi.geodeticLatitudeToMercatorAngle(_e)-xe),Ae=!0)}let me=Ftt;me.frameState=n,me.surfaceTile=i,me.showReflectiveOcean=S,me.showOceanWaves=D,me.enableLighting=e.enableLighting,me.dynamicAtmosphereLighting=e.dynamicAtmosphereLighting,me.dynamicAtmosphereLightingFromSun=e.dynamicAtmosphereLightingFromSun,me.showGroundAtmosphere=L,me.atmosphereLightIntensity=e.atmosphereLightIntensity,me.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,me.atmosphereMieCoefficient=e.atmosphereMieCoefficient,me.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,me.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,me.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,me.perFragmentGroundAtmosphere=F,me.hasVertexNormals=O,me.useWebMercatorProjection=Ae,me.clippedByBoundaries=i.clippedByBoundaries,me.hasGeodeticSurfaceNormals=W,me.hasExaggeration=Q;let Se=i.imagery,Ie=0,Ve=Se.length,Re=e.showSkirts&&!u&&!d,ke=e.backFaceCulling&&!u&&!d,dt=ke?e._renderState:e._disableCullingRenderState,pt=ke?e._blendRenderState:e._disableCullingBlendRenderState,rt=dt,fn=e._firstPassInitialColor,Bn=n.context;if(l(e._debug.boundingSphereTile)||U4(),e._materialUniformMap!==e.materialUniformMap){e._materialUniformMap=e.materialUniformMap;let Ze=e._drawCommands.length;for(let pe=0;pe<Ze;++pe)e._uniformMaps[pe]=Ape(n,e)}do{let Ze=0,pe,Ee;if(e._drawCommands.length<=e._usedDrawCommands?(pe=new it,pe.owner=t,pe.cull=!1,pe.boundingVolume=new ae,pe.orientedBoundingBox=void 0,Ee=Ape(n,e),e._drawCommands.push(pe),e._uniformMaps.push(Ee)):(pe=e._drawCommands[e._usedDrawCommands],Ee=e._uniformMaps[e._usedDrawCommands]),pe.owner=t,++e._usedDrawCommands,t===e._debug.boundingSphereTile){let Kn=U.boundingVolume,Lr=U.boundingSphere;l(Kn)?Epe(Kn,z.RED).update(n):l(Lr)&&bpe(Lr,z.RED).update(n)}let je=Ee.properties;re.clone(fn,je.initialColor),je.oceanNormalMap=v,je.lightingFadeDistance.x=e.lightingFadeOutDistance,je.lightingFadeDistance.y=e.lightingFadeInDistance,je.nightFadeDistance.x=e.nightFadeOutDistance,je.nightFadeDistance.y=e.nightFadeInDistance,je.atmosphereLightIntensity=e.atmosphereLightIntensity,je.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,je.atmosphereMieCoefficient=e.atmosphereMieCoefficient,je.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,je.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,je.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,je.zoomedOutOceanSpecularIntensity=e.zoomedOutOceanSpecularIntensity;let fi=u?g:p,Ai=u?p:g;l(fi)&&(re.fromElements(fi.near,fi.nearValue,fi.far,fi.farValue,je.frontFaceAlphaByDistance),re.fromElements(Ai.near,Ai.nearValue,Ai.far,Ai.farValue,je.backFaceAlphaByDistance)),re.fromElements(x.near,x.nearValue,x.far,x.farValue,je.undergroundColorAlphaByDistance),z.clone(A,je.undergroundColor),je.lambertDiffuseMultiplier=T,je.vertexShadowDarkness=E;let er=!l(i.vertexArray)&&l(e.fillHighlightColor)&&e.fillHighlightColor.alpha>0;er&&z.clone(e.fillHighlightColor,je.fillHighlightColor),je.terrainExaggerationAndRelativeHeight.x=q,je.terrainExaggerationAndRelativeHeight.y=Y,je.center3D=k.center,m.clone(V,je.rtc),re.clone(K,je.tileRectangle),je.southAndNorthLatitude.x=J,je.southAndNorthLatitude.y=_e,je.southMercatorYAndOneOverHeight.x=xe,je.southMercatorYAndOneOverHeight.y=se;let Fs=btt,Us=F4(t.rectangle,e.cartographicLimitRectangle),Br=Stt,Mo=F4(t.rectangle,h);m.fromElements(b,w,I,je.hsbShift);let Be=t.rectangle,st=1/Be.width,Qe=1/Be.height;Fs.x=(Us.west-Be.west)*st,Fs.y=(Us.south-Be.south)*Qe,Fs.z=(Us.east-Be.west)*st,Fs.w=(Us.north-Be.south)*Qe,re.clone(Fs,je.localizedCartographicLimitRectangle),Br.x=(Mo.west-Be.west)*st,Br.y=(Mo.south-Be.south)*Qe,Br.z=(Mo.east-Be.west)*st,Br.w=(Mo.north-Be.south)*Qe,re.clone(Br,je.localizedTranslucencyRectangle);let $e=M&&P.fog(t._distance,n.fog.density)>P.EPSILON3;R=R&&($e||L);let yt=!1,zt=!1,an=!1,Ji=!1,go=!1,$r=!1,es=!1,ar=!1,Wi=!1,Wr=!1;for(;Ze<s&&Ie<Ve;){let Kn=Se[Ie],Lr=Kn.readyImagery;if(++Ie,!l(Lr)||Lr.imageryLayer.alpha===0)continue;let Xf=Kn.useWebMercatorT?Lr.textureWebMercator:Lr.texture,cr=Lr.imageryLayer;l(Kn.textureTranslationAndScale)||(Kn.textureTranslationAndScale=cr._calculateTextureTranslationAndScale(t,Kn)),je.dayTextures[Ze]=Xf,je.dayTextureTranslationAndScale[Ze]=Kn.textureTranslationAndScale,je.dayTextureTexCoordsRectangle[Ze]=Kn.textureCoordinateRectangle,je.dayTextureUseWebMercatorT[Ze]=Kn.useWebMercatorT,je.dayTextureAlpha[Ze]=cr.alpha,$r=$r||je.dayTextureAlpha[Ze]!==1,je.dayTextureNightAlpha[Ze]=cr.nightAlpha,es=es||je.dayTextureNightAlpha[Ze]!==1,je.dayTextureDayAlpha[Ze]=cr.dayAlpha,es=es||je.dayTextureDayAlpha[Ze]!==1,je.dayTextureBrightness[Ze]=cr.brightness,yt=yt||je.dayTextureBrightness[Ze]!==Ls.DEFAULT_BRIGHTNESS,je.dayTextureContrast[Ze]=cr.contrast,zt=zt||je.dayTextureContrast[Ze]!==Ls.DEFAULT_CONTRAST,je.dayTextureHue[Ze]=cr.hue,an=an||je.dayTextureHue[Ze]!==Ls.DEFAULT_HUE,je.dayTextureSaturation[Ze]=cr.saturation,Ji=Ji||je.dayTextureSaturation[Ze]!==Ls.DEFAULT_SATURATION,je.dayTextureOneOverGamma[Ze]=1/cr.gamma,go=go||je.dayTextureOneOverGamma[Ze]!==1/Ls.DEFAULT_GAMMA,je.dayTextureSplit[Ze]=cr.splitDirection,ar=ar||je.dayTextureSplit[Ze]!==0;let Pa=je.dayTextureCutoutRectangles[Ze];if(l(Pa)||(Pa=je.dayTextureCutoutRectangles[Ze]=new re),re.clone(re.ZERO,Pa),l(cr.cutoutRectangle)){let jr=F4(Be,cr.cutoutRectangle),pc=le.simpleIntersection(jr,Be,Cpe);Wi=l(pc)||Wi,Pa.x=(jr.west-Be.west)*st,Pa.y=(jr.south-Be.south)*Qe,Pa.z=(jr.east-Be.west)*st,Pa.w=(jr.north-Be.south)*Qe}let Kf=je.colorsToAlpha[Ze];l(Kf)||(Kf=je.colorsToAlpha[Ze]=new re);let Nh=l(cr.colorToAlpha)&&cr.colorToAlphaThreshold>0;if(Wr=Wr||Nh,Nh){let jr=cr.colorToAlpha;Kf.x=jr.red,Kf.y=jr.green,Kf.z=jr.blue,Kf.w=cr.colorToAlphaThreshold}else Kf.w=-1;if(l(Lr.credits)){let jr=Lr.credits;for(let pc=0,h0=jr.length;pc<h0;++pc)o.addCreditToNextFrame(jr[pc])}++Ze}je.dayTextures.length=Ze,je.waterMask=a,re.clone(c,je.waterMaskTranslationAndScale),je.minMaxHeight.x=G.minimumHeight,je.minMaxHeight.y=G.maximumHeight,B.clone(G.matrix,je.scaleAndBias);let Un=e._clippingPlanes,ln=l(Un)&&Un.enabled&&t.isClipped;ln&&(je.clippingPlanesEdgeColor=z.clone(Un.edgeColor,je.clippingPlanesEdgeColor),je.clippingPlanesEdgeWidth=Un.edgeWidth),me.numberOfDayTextures=Ze,me.applyBrightness=yt,me.applyContrast=zt,me.applyHue=an,me.applySaturation=Ji,me.applyGamma=go,me.applyAlpha=$r,me.applyDayNightAlpha=es,me.applySplit=ar,me.enableFog=$e,me.enableClippingPlanes=ln,me.clippingPlanes=Un,me.hasImageryLayerCutout=Wi,me.colorCorrect=R,me.highlightFillTile=er,me.colorToAlpha=Wr,me.showUndergroundColor=C,me.translucent=d;let Xn=i.renderedMesh.indices.length;Re||(Xn=i.renderedMesh.indexCountWithoutSkirts),pe.shaderProgram=e._surfaceShaderSet.getShaderProgram(me),pe.castShadows=N,pe.receiveShadows=_,pe.renderState=rt,pe.primitiveType=Le.TRIANGLES,pe.vertexArray=i.vertexArray||i.fill.vertexArray,pe.count=Xn,pe.uniformMap=Ee,pe.pass=be.GLOBE,e._debug.wireframe&&(Btt(Bn,e,t),l(i.wireframeVertexArray)&&(pe.vertexArray=i.wireframeVertexArray,pe.primitiveType=Le.LINES,pe.count=Xn*2));let gn=pe.boundingVolume,Ia=pe.orientedBoundingBox;n.mode!==ne.SCENE3D?(ae.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,U.minimumHeight,U.maximumHeight,gn),m.fromElements(gn.center.z,gn.center.x,gn.center.y,gn.center),n.mode===ne.MORPHING&&(gn=ae.union(U.boundingSphere,gn,gn))):(pe.boundingVolume=ae.clone(U.boundingSphere,gn),pe.orientedBoundingBox=Mn.clone(U.boundingVolume,Ia)),pe.dirty=!0,d&&f.updateDerivedCommands(pe,n),xpe(pe,n),rt=pt,fn=Ntt}while(Ie<Ve)}var XB=Zo;function Spe(){this._enabled=!1,this._frontFaceAlpha=1,this._frontFaceAlphaByDistance=void 0,this._backFaceAlpha=1,this._backFaceAlphaByDistance=void 0,this._rectangle=le.clone(le.MAX_VALUE)}Object.defineProperties(Spe.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabled=e}},frontFaceAlpha:{get:function(){return this._frontFaceAlpha},set:function(e){this._frontFaceAlpha=e}},frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance},set:function(e){this._frontFaceAlphaByDistance=Lt.clone(e,this._frontFaceAlphaByDistance)}},backFaceAlpha:{get:function(){return this._backFaceAlpha},set:function(e){this._backFaceAlpha=e}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance},set:function(e){this._backFaceAlphaByDistance=Lt.clone(e,this._backFaceAlphaByDistance)}},rectangle:{get:function(){return this._rectangle},set:function(e){l(e)||(e=le.clone(le.MAX_VALUE)),le.clone(e,this._rectangle)}}});var KB=Spe;function ds(){this._layers=[],this.layerAdded=new ge,this.layerRemoved=new ge,this.layerMoved=new ge,this.layerShownOrHidden=new ge}Object.defineProperties(ds.prototype,{length:{get:function(){return this._layers.length}}});ds.prototype.add=function(e,t){l(t)?this._layers.splice(t,0,e):(t=this._layers.length,this._layers.push(e)),this._update(),this.layerAdded.raiseEvent(e,t);let i=e.readyEvent.addEventListener(()=>{this.layerShownOrHidden.raiseEvent(e,e._layerIndex,e.show),i()})};ds.prototype.addImageryProvider=function(e,t){let n=new Ls(e);return this.add(n,t),n};ds.prototype.remove=function(e,t){t=y(t,!0);let n=this._layers.indexOf(e);return n!==-1?(this._layers.splice(n,1),this._update(),this.layerRemoved.raiseEvent(e,n),t&&e.destroy(),!0):!1};ds.prototype.removeAll=function(e){e=y(e,!0);let t=this._layers;for(let n=0,i=t.length;n<i;n++){let o=t[n];this.layerRemoved.raiseEvent(o,n),e&&o.destroy()}this._layers=[]};ds.prototype.contains=function(e){return this.indexOf(e)!==-1};ds.prototype.indexOf=function(e){return this._layers.indexOf(e)};ds.prototype.get=function(e){return this._layers[e]};function V4(e,t){return e.indexOf(t)}function wpe(e,t,n){let i=e._layers;if(t=P.clamp(t,0,i.length-1),n=P.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,e._update(),e.layerMoved.raiseEvent(o,n,t)}ds.prototype.raise=function(e){let t=V4(this._layers,e);wpe(this,t,t+1)};ds.prototype.lower=function(e){let t=V4(this._layers,e);wpe(this,t,t-1)};ds.prototype.raiseToTop=function(e){let t=V4(this._layers,e);t!==this._layers.length-1&&(this._layers.splice(t,1),this._layers.push(e),this._update(),this.layerMoved.raiseEvent(e,this._layers.length-1,t))};ds.prototype.lowerToBottom=function(e){let t=V4(this._layers,e);t!==0&&(this._layers.splice(t,1),this._layers.splice(0,0,e),this._update(),this.layerMoved.raiseEvent(e,0,t))};var ztt=new le;function vpe(e,t,n,i){let o=e.globe._surface._tilesToRender,r;for(let a=0;!l(r)&&a<o.length;++a){let c=o[a];le.contains(c.rectangle,t)&&(r=c)}if(!l(r))return;let s=r.data.imagery;for(let a=s.length-1;a>=0;--a){let c=s[a],u=c.readyImagery;if(!l(u)||!u.imageryLayer.ready)continue;let f=u.imageryLayer.imageryProvider;if(n&&!l(f.pickFeatures)||!le.contains(u.rectangle,t))continue;let d=ztt,p=1/1024;d.west=P.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.x-p),d.east=P.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.z+p),d.south=P.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.y-p),d.north=P.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.w+p),le.contains(d,t)&&i(u)}}ds.prototype.pickImageryLayers=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),o=[];if(vpe(t,i,!1,function(r){o.push(r.imageryLayer)}),o.length!==0)return o};ds.prototype.pickImageryLayerFeatures=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),o=[],r=[];if(vpe(t,i,!0,function(s){if(!s.imageryLayer.ready)return;let c=s.imageryLayer.imageryProvider.pickFeatures(s.x,s.y,s.level,i.longitude,i.latitude);l(c)&&(o.push(c),r.push(s.imageryLayer))}),o.length!==0)return Promise.all(o).then(function(s){let a=[];for(let c=0;c<s.length;++c){let u=s[c],f=r[c];if(l(u)&&u.length>0)for(let d=0;d<u.length;++d){let p=u[d];p.imageryLayer=f,l(p.position)||(p.position=i),a.push(p)}}return a})};ds.prototype.queueReprojectionCommands=function(e){let t=this._layers;for(let n=0,i=t.length;n<i;++n)t[n].queueReprojectionCommands(e)};ds.prototype.cancelReprojections=function(){let e=this._layers;for(let t=0,n=e.length;t<n;++t)e[t].cancelReprojections()};ds.prototype.isDestroyed=function(){return!1};ds.prototype.destroy=function(){return this.removeAll(!0),ue(this)};ds.prototype._update=function(){let e=!0,t=this._layers,n,i,o,r;for(o=0,r=t.length;o<r;++o)i=t[o],i._layerIndex=o,i.show?(i._isBaseLayer=e,e=!1):i._isBaseLayer=!1,i.show!==i._show&&(l(i._show)&&(l(n)||(n=[]),n.push(i)),i._show=i.show);if(l(n))for(o=0,r=n.length;o<r;++o)i=n[o],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)};var JB=ds;function Dpe(e){this._ellipsoid=new a_(e.ellipsoid,m.ZERO)}Object.defineProperties(Dpe.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var ZB=Dpe;function Wc(e){this._tilingScheme=e.tilingScheme,this._x=e.x,this._y=e.y,this._level=e.level,this._parent=e.parent,this._rectangle=this._tilingScheme.tileXYToRectangle(this._x,this._y,this._level),this._southwestChild=void 0,this._southeastChild=void 0,this._northwestChild=void 0,this._northeastChild=void 0,this.replacementPrevious=void 0,this.replacementNext=void 0,this._distance=0,this._loadPriority=0,this._customData=[],this._frameUpdated=void 0,this._lastSelectionResult=Qn.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this.state=Rs.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}Wc.createLevelZeroTiles=function(e){let t=e.getNumberOfXTilesAtLevel(0),n=e.getNumberOfYTilesAtLevel(0),i=new Array(t*n),o=0;for(let r=0;r<n;++r)for(let s=0;s<t;++s)i[o++]=new Wc({tilingScheme:e,x:s,y:r,level:0});return i};Wc.prototype._updateCustomData=function(e,t,n){let i=this.customData,o,r,s;if(l(t)&&l(n)){for(i=i.filter(function(a){return n.indexOf(a)===-1}),this._customData=i,s=this._rectangle,o=0;o<t.length;++o)r=t[o],le.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=e}else{let a=this._parent;if(l(a)&&this._frameUpdated!==a._frameUpdated){i.length=0,s=this._rectangle;let c=a.customData;for(o=0;o<c.length;++o)r=c[o],le.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=a._frameUpdated}}};Object.defineProperties(Wc.prototype,{tilingScheme:{get:function(){return this._tilingScheme}},x:{get:function(){return this._x}},y:{get:function(){return this._y}},level:{get:function(){return this._level}},parent:{get:function(){return this._parent}},rectangle:{get:function(){return this._rectangle}},children:{get:function(){return[this.northwestChild,this.northeastChild,this.southwestChild,this.southeastChild]}},southwestChild:{get:function(){return l(this._southwestChild)||(this._southwestChild=new Wc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2+1,level:this.level+1,parent:this})),this._southwestChild}},southeastChild:{get:function(){return l(this._southeastChild)||(this._southeastChild=new Wc({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2+1,level:this.level+1,parent:this})),this._southeastChild}},northwestChild:{get:function(){return l(this._northwestChild)||(this._northwestChild=new Wc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2,level:this.level+1,parent:this})),this._northwestChild}},northeastChild:{get:function(){return l(this._northeastChild)||(this._northeastChild=new Wc({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2,level:this.level+1,parent:this})),this._northeastChild}},customData:{get:function(){return this._customData}},needsLoading:{get:function(){return this.state<Rs.DONE}},eligibleForUnloading:{get:function(){let e=!0;return l(this.data)&&(e=this.data.eligibleForUnloading,l(e)||(e=!0)),e}}});Wc.prototype.findLevelZeroTile=function(e,t,n){let i=this.tilingScheme.getNumberOfXTilesAtLevel(0);if(t<0?t+=i:t>=i&&(t-=i),!(n<0||n>=this.tilingScheme.getNumberOfYTilesAtLevel(0)))return e.filter(function(o){return o.x===t&&o.y===n})[0]};Wc.prototype.findTileToWest=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x-1,this.y);if(t.southeastChild===this)return t.southwestChild;if(t.northeastChild===this)return t.northwestChild;let n=t.findTileToWest(e);if(n!==void 0)return t.southwestChild===this?n.southeastChild:n.northeastChild};Wc.prototype.findTileToEast=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x+1,this.y);if(t.southwestChild===this)return t.southeastChild;if(t.northwestChild===this)return t.northeastChild;let n=t.findTileToEast(e);if(n!==void 0)return t.southeastChild===this?n.southwestChild:n.northwestChild};Wc.prototype.findTileToSouth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y+1);if(t.northwestChild===this)return t.southwestChild;if(t.northeastChild===this)return t.southeastChild;let n=t.findTileToSouth(e);if(n!==void 0)return t.southwestChild===this?n.northwestChild:n.northeastChild};Wc.prototype.findTileToNorth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y-1);if(t.southwestChild===this)return t.northwestChild;if(t.southeastChild===this)return t.northeastChild;let n=t.findTileToNorth(e);if(n!==void 0)return t.northwestChild===this?n.southwestChild:n.southeastChild};Wc.prototype.freeResources=function(){this.state=Rs.START,this.renderable=!1,this.upsampledFromParent=!1,l(this.data)&&l(this.data.freeResources)&&this.data.freeResources(),k4(this._southwestChild),this._southwestChild=void 0,k4(this._southeastChild),this._southeastChild=void 0,k4(this._northwestChild),this._northwestChild=void 0,k4(this._northeastChild),this._northeastChild=void 0};function k4(e){l(e)&&e.freeResources()}var QB=Wc;function z4(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}z4.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head};z4.prototype.trimTiles=function(e){let t=this.tail,n=!0;for(;n&&l(this._lastBeforeStartOfFrame)&&this.count>e&&l(t);){n=t!==this._lastBeforeStartOfFrame;let i=t.replacementPrevious;t.eligibleForUnloading&&(t.freeResources(),Ipe(this,t)),t=i}};function Ipe(e,t){let n=t.replacementPrevious,i=t.replacementNext;t===e._lastBeforeStartOfFrame&&(e._lastBeforeStartOfFrame=i),t===e.head?e.head=i:n.replacementNext=i,t===e.tail?e.tail=n:i.replacementPrevious=n,t.replacementPrevious=void 0,t.replacementNext=void 0,--e.count}z4.prototype.markTileRendered=function(e){let t=this.head;if(t===e){e===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=e.replacementNext);return}if(++this.count,!l(t)){e.replacementPrevious=void 0,e.replacementNext=void 0,this.head=e,this.tail=e;return}(l(e.replacementPrevious)||l(e.replacementNext))&&Ipe(this,e),e.replacementPrevious=void 0,e.replacementNext=t,t.replacementPrevious=e,this.head=e};var $B=z4;function Lf(e){this._tileProvider=e.tileProvider,this._tileProvider.quadtree=this,this._debug={enableDebugOutput:!1,maxDepth:0,maxDepthVisited:0,tilesVisited:0,tilesCulled:0,tilesRendered:0,tilesWaitingForChildren:0,lastMaxDepth:-1,lastMaxDepthVisited:-1,lastTilesVisited:-1,lastTilesCulled:-1,lastTilesRendered:-1,lastTilesWaitingForChildren:-1,suspendLodUpdate:!1};let n=this._tileProvider.tilingScheme.ellipsoid;this._tilesToRender=[],this._tileLoadQueueHigh=[],this._tileLoadQueueMedium=[],this._tileLoadQueueLow=[],this._tileReplacementQueue=new $B,this._levelZeroTiles=void 0,this._loadQueueTimeSlice=5,this._tilesInvalidated=!1,this._addHeightCallbacks=[],this._removeHeightCallbacks=[],this._tileToUpdateHeights=[],this._lastTileIndex=0,this._updateHeightsTimeSlice=2,this._cameraPositionCartographic=void 0,this._cameraReferenceFrameOriginCartographic=void 0,this.maximumScreenSpaceError=y(e.maximumScreenSpaceError,2),this.tileCacheSize=y(e.tileCacheSize,100),this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this._occluders=new ZB({ellipsoid:n}),this._tileLoadProgressEvent=new ge,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}Object.defineProperties(Lf.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}});Lf.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0};function Htt(e){let t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,Ope(e);let n=e._levelZeroTiles;if(l(n))for(let i=0;i<n.length;++i){let r=n[i].customData,s=r.length;for(let a=0;a<s;++a){let c=r[a];c.level=0,e._addHeightCallbacks.push(c)}n[i].freeResources()}e._levelZeroTiles=void 0,e._tileProvider.cancelReprojections()}Lf.prototype.forEachLoadedTile=function(e){let t=this._tileReplacementQueue.head;for(;l(t);)t.state!==Rs.START&&e(t),t=t.replacementNext};Lf.prototype.forEachRenderedTile=function(e){let t=this._tilesToRender;for(let n=0,i=t.length;n<i;++n)e(t[n])};Lf.prototype.updateHeight=function(e,t){let n=this,i={positionOnEllipsoidSurface:void 0,positionCartographic:e,level:-1,callback:t};return i.removeFunc=function(){let o=n._addHeightCallbacks,r=o.length;for(let s=0;s<r;++s)if(o[s]===i){o.splice(s,1);break}n._removeHeightCallbacks.push(i),i.callback&&(i.callback=void 0)},n._addHeightCallbacks.push(i),i.removeFunc};Lf.prototype.update=function(e){l(this._tileProvider.update)&&this._tileProvider.update(e)};function Ope(e){let t=e._debug;t.maxDepth=0,t.maxDepthVisited=0,t.tilesVisited=0,t.tilesCulled=0,t.tilesRendered=0,t.tilesWaitingForChildren=0,e._tileLoadQueueHigh.length=0,e._tileLoadQueueMedium.length=0,e._tileLoadQueueLow.length=0}Lf.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(Htt(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),Ope(this),!this._debug.suspendLodUpdate&&this._tileReplacementQueue.markStartOfRenderFrame())};Lf.prototype.render=function(e){let t=e.passes,n=this._tileProvider;t.render&&(n.beginUpdate(e),Ytt(this,e),nnt(this,e),n.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&n.updateForPick(e)};function Gtt(e,t){let n=e._tileLoadQueueHigh.length+e._tileLoadQueueMedium.length+e._tileLoadQueueLow.length;if(n!==e._lastTileLoadQueueLength||e._tilesInvalidated){let o=ge.prototype.raiseEvent.bind(e._tileLoadProgressEvent,n);t.afterRender.push(()=>(o(),!0)),e._lastTileLoadQueueLength=n}let i=e._debug;i.enableDebugOutput&&!i.suspendLodUpdate&&(i.maxDepth=e._tilesToRender.reduce(function(o,r){return Math.max(o,r.level)},-1),i.tilesRendered=e._tilesToRender.length,(i.tilesVisited!==i.lastTilesVisited||i.tilesRendered!==i.lastTilesRendered||i.tilesCulled!==i.lastTilesCulled||i.maxDepth!==i.lastMaxDepth||i.tilesWaitingForChildren!==i.lastTilesWaitingForChildren||i.maxDepthVisited!==i.lastMaxDepthVisited)&&(console.log(`Visited ${i.tilesVisited}, Rendered: ${i.tilesRendered}, Culled: ${i.tilesCulled}, Max Depth Rendered: ${i.maxDepth}, Max Depth Visited: ${i.maxDepthVisited}, Waiting for children: ${i.tilesWaitingForChildren}`),i.lastTilesVisited=i.tilesVisited,i.lastTilesRendered=i.tilesRendered,i.lastTilesCulled=i.tilesCulled,i.lastMaxDepth=i.maxDepth,i.lastTilesWaitingForChildren=i.tilesWaitingForChildren,i.lastMaxDepthVisited=i.maxDepthVisited))}Lf.prototype.endFrame=function(e){!e.passes.render||e.mode===ne.MORPHING||(Qtt(this,e),tnt(this,e),Gtt(this,e))};Lf.prototype.isDestroyed=function(){return!1};Lf.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var tL,Ppe=new he;function Wtt(e,t){let n=le.center(e.rectangle,Ppe),i=n.longitude-tL.longitude,o=n.latitude-tL.latitude;n=le.center(t.rectangle,Ppe);let r=n.longitude-tL.longitude,s=n.latitude-tL.latitude;return i*i+o*o-(r*r+s*s)}var jtt=new m,eL=[];function Ytt(e,t){let n=e._debug;if(n.suspendLodUpdate)return;let i=e._tilesToRender;i.length=0;let o,r=e._tileProvider;if(!l(e._levelZeroTiles))if(r.ready){let A=r.tilingScheme;e._levelZeroTiles=QB.createLevelZeroTiles(A);let x=e._levelZeroTiles.length;if(eL.length<x)for(eL=new Array(x),o=0;o<x;++o)eL[o]===void 0&&(eL[o]=new nL)}else return;e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;let s,a=e._levelZeroTiles,c=a.length>1?e._occluders:void 0;tL=t.camera.positionCartographic,a.sort(Wtt);let u=e._addHeightCallbacks,f=e._removeHeightCallbacks,d=t.frameNumber,p;if(u.length>0||f.length>0){for(o=0,p=a.length;o<p;++o)s=a[o],s._updateCustomData(d,u,f);u.length=0,f.length=0}let g=t.camera;e._cameraPositionCartographic=g.positionCartographic;let h=B.getTranslation(g.transform,jtt);for(e._cameraReferenceFrameOriginCartographic=e.tileProvider.tilingScheme.ellipsoid.cartesianToCartographic(h,e._cameraReferenceFrameOriginCartographic),o=0,p=a.length;o<p;++o)s=a[o],e._tileReplacementQueue.markTileRendered(s),s.renderable?Sa(e,s,r,t,c,!1,eL[o]):(P_(e,e._tileLoadQueueHigh,s,t),++n.tilesWaitingForChildren);e._lastSelectionFrameNumber=d}function P_(e,t,n,i){n.needsLoading&&(e.tileProvider.computeTileLoadPriority!==void 0&&(n._loadPriority=e.tileProvider.computeTileLoadPriority(n,i)),t.push(n))}function nL(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function Mpe(){this.southwest=new nL,this.southeast=new nL,this.northwest=new nL,this.northeast=new nL}Mpe.prototype.combine=function(e){let t=this.southwest,n=this.southeast,i=this.northwest,o=this.northeast;e.allAreRenderable=t.allAreRenderable&&n.allAreRenderable&&i.allAreRenderable&&o.allAreRenderable,e.anyWereRenderedLastFrame=t.anyWereRenderedLastFrame||n.anyWereRenderedLastFrame||i.anyWereRenderedLastFrame||o.anyWereRenderedLastFrame,e.notYetRenderableCount=t.notYetRenderableCount+n.notYetRenderableCount+i.notYetRenderableCount+o.notYetRenderableCount};var wj=new Array(31);for(let e=0;e<wj.length;++e)wj[e]=new Mpe;function qtt(e,t,n,i,o){let r=e._debug;++r.tilesVisited,e._tileReplacementQueue.markTileRendered(n),n._updateCustomData(t.frameNumber),n.level>r.maxDepthVisited&&(r.maxDepthVisited=n.level);let s=Jtt(e,t,n)<e.maximumScreenSpaceError,a=n.southwestChild,c=n.southeastChild,u=n.northwestChild,f=n.northeastChild,d=e._lastSelectionFrameNumber,p=n._lastSelectionResultFrame===d?n._lastSelectionResult:Qn.NONE,g=e.tileProvider;if(s||i){let h=Qn.originalResult(p)===Qn.RENDERED,A=Qn.originalResult(p)===Qn.CULLED||p===Qn.NONE,x=n.state===Rs.DONE,C=h||A||x;if(C||l(g.canRenderWithoutLosingDetail)&&(C=g.canRenderWithoutLosingDetail(n)),C){s&&P_(e,e._tileLoadQueueMedium,n,t),H4(e,n),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Qn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Qn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}i=!0,s&&P_(e,e._tileLoadQueueHigh,n,t)}if(g.canRefine(n)){if(a.upsampledFromParent&&c.upsampledFromParent&&u.upsampledFromParent&&f.upsampledFromParent){H4(e,n),P_(e,e._tileLoadQueueMedium,n,t),e._tileReplacementQueue.markTileRendered(a),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(u),e._tileReplacementQueue.markTileRendered(f),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Qn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Qn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Qn.REFINED;let A=e._tilesToRender.length,x=e._tileLoadQueueLow.length,C=e._tileLoadQueueMedium.length,T=e._tileLoadQueueHigh.length,E=e._tileToUpdateHeights.length;if(Xtt(e,a,c,u,f,t,i,o),A!==e._tilesToRender.length){let S=o.allAreRenderable,v=o.anyWereRenderedLastFrame,D=o.notYetRenderableCount,O=!1;if(!S&&!v){let M=e._tilesToRender;for(let N=A;N<M.length;++N){let _=M[N];for(;_!==void 0&&_._lastSelectionResult!==Qn.KICKED&&_!==n;)_._lastSelectionResult=Qn.kick(_._lastSelectionResult),_=_.parent}e._tilesToRender.length=A,e._tileToUpdateHeights.length=E,H4(e,n),n._lastSelectionResult=Qn.RENDERED;let L=p===Qn.RENDERED;!L&&D>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=x,e._tileLoadQueueMedium.length=C,e._tileLoadQueueHigh.length=T,P_(e,e._tileLoadQueueMedium,n,t),o.notYetRenderableCount=n.renderable?0:1,O=!0),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=L,L||e._tileToUpdateHeights.push(n),++r.tilesWaitingForChildren}e.preloadAncestors&&!O&&P_(e,e._tileLoadQueueLow,n,t)}return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Qn.RENDERED,H4(e,n),P_(e,e._tileLoadQueueHigh,n,t),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Qn.RENDERED,o.notYetRenderableCount=n.renderable?0:1}function Xtt(e,t,n,i,o,r,s,a){let c=r.camera.positionCartographic,u=e._tileProvider,f=e._occluders,d=wj[t.level],p=d.southwest,g=d.southeast,h=d.northwest,A=d.northeast;c.longitude<t.rectangle.east?c.latitude<t.rectangle.north?(Sa(e,t,u,r,f,s,p),Sa(e,n,u,r,f,s,g),Sa(e,i,u,r,f,s,h),Sa(e,o,u,r,f,s,A)):(Sa(e,i,u,r,f,s,h),Sa(e,t,u,r,f,s,p),Sa(e,o,u,r,f,s,A),Sa(e,n,u,r,f,s,g)):c.latitude<t.rectangle.north?(Sa(e,n,u,r,f,s,g),Sa(e,t,u,r,f,s,p),Sa(e,o,u,r,f,s,A),Sa(e,i,u,r,f,s,h)):(Sa(e,o,u,r,f,s,A),Sa(e,i,u,r,f,s,h),Sa(e,n,u,r,f,s,g),Sa(e,t,u,r,f,s,p)),d.combine(a)}function Ktt(e,t){let n=t.rectangle;return l(e._cameraPositionCartographic)&&le.contains(n,e._cameraPositionCartographic)||l(e._cameraReferenceFrameOriginCartographic)&&le.contains(n,e._cameraReferenceFrameOriginCartographic)}function Sa(e,t,n,i,o,r,s){if(n.computeTileVisibility(t,i,o)!==sr.NONE)return qtt(e,i,t,r,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,Ktt(e,t)){(!l(t.data)||!l(t.data.vertexArray))&&P_(e,e._tileLoadQueueMedium,t,i);let a=e._lastSelectionFrameNumber,c=t._lastSelectionResultFrame===a?t._lastSelectionResult:Qn.NONE;c!==Qn.CULLED_BUT_NEEDED&&c!==Qn.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=Qn.CULLED_BUT_NEEDED}else e.preloadSiblings||t.level===0?(P_(e,e._tileLoadQueueLow,t,i),t._lastSelectionResult=Qn.CULLED):t._lastSelectionResult=Qn.CULLED;t._lastSelectionResultFrame=i.frameNumber}function Jtt(e,t,n){if(t.mode===ne.SCENE2D||t.camera.frustum instanceof tn||t.camera.frustum instanceof xr)return Ztt(e,t,n);let i=e._tileProvider.getLevelMaximumGeometricError(n.level),o=n._distance,r=t.context.drawingBufferHeight,s=t.camera.frustum.sseDenominator,a=i*r/(o*s);return t.fog.enabled&&(a-=P.fog(o,t.fog.density)*t.fog.sse),a/=t.pixelRatio,a}function Ztt(e,t,n){let o=t.camera.frustum,r=o.offCenterFrustum;l(r)&&(o=r);let s=t.context,a=s.drawingBufferWidth,c=s.drawingBufferHeight,u=e._tileProvider.getLevelMaximumGeometricError(n.level),f=Math.max(o.top-o.bottom,o.right-o.left)/Math.max(a,c),d=u/f;return t.fog.enabled&&t.mode!==ne.SCENE2D&&(d-=P.fog(n._distance,t.fog.density)*t.fog.sse),d/=t.pixelRatio,d}function H4(e,t){e._tilesToRender.push(t)}function Qtt(e,t){let n=e._tileLoadQueueHigh,i=e._tileLoadQueueMedium,o=e._tileLoadQueueLow;if(n.length===0&&i.length===0&&o.length===0)return;e._tileReplacementQueue.trimTiles(e.tileCacheSize);let r=gi()+e._loadQueueTimeSlice,s=e._tileProvider,a=bj(e,t,s,r,n,!1);a=bj(e,t,s,r,i,a),bj(e,t,s,r,o,a)}function $tt(e,t){return e._loadPriority-t._loadPriority}function bj(e,t,n,i,o,r){n.computeTileLoadPriority!==void 0&&o.sort($tt);for(let s=0,a=o.length;s<a&&(gi()<i||!r);++s){let c=o[s];e._tileReplacementQueue.markTileRendered(c),n.loadTile(t,c),r=!0}return r}var rS=new Dn,Sj=new he,Uy=new m,ent=[];function tnt(e,t){if(!e.tileProvider.ready)return;let n=ent;n.length=0;let i=e._tileToUpdateHeights,o=gi(),r=e._updateHeightsTimeSlice,s=o+r,a=t.mode,c=t.mapProjection,u=e.tileProvider.tilingScheme.ellipsoid,f;for(;i.length>0;){let d=i[0];if(!l(d.data)||!l(d.data.mesh)){let A=d._lastSelectionResultFrame===e._lastSelectionFrameNumber?d._lastSelectionResult:Qn.NONE;(A===Qn.RENDERED||A===Qn.CULLED_BUT_NEEDED)&&n.push(d),i.shift(),e._lastTileIndex=0;continue}let p=d.customData,g=p.length,h=!1;for(f=e._lastTileIndex;f<g;++f){let A=p[f],x=d.data.terrainData,C=l(x)&&x.wasCreatedByUpsampling();if(d.level>A.level&&!C){if(l(A.positionOnEllipsoidSurface)||(A.positionOnEllipsoidSurface=m.fromRadians(A.positionCartographic.longitude,A.positionCartographic.latitude,0,u)),a===ne.SCENE3D){let E=u.geodeticSurfaceNormal(A.positionOnEllipsoidSurface,rS.direction),S=u.getSurfaceNormalIntersectionWithZAxis(A.positionOnEllipsoidSurface,11500,rS.origin);if(!l(S)){let v=0;l(d.data.tileBoundingRegion)&&(v=d.data.tileBoundingRegion.minimumHeight);let D=Math.min(v,-11500),O=m.multiplyByScalar(E,Math.abs(D)+1,Uy);m.subtract(A.positionOnEllipsoidSurface,O,rS.origin)}}else he.clone(A.positionCartographic,Sj),Sj.height=-11500,c.project(Sj,Uy),m.fromElements(Uy.z,Uy.x,Uy.y,Uy),m.clone(Uy,rS.origin),m.clone(m.UNIT_X,rS.direction);let T=d.data.pick(rS,a,c,!1,Uy);l(T)&&(l(A.callback)&&A.callback(T),A.level=d.level)}if(gi()>=s){h=!0;break}}if(h){e._lastTileIndex=f;break}else e._lastTileIndex=0,i.shift()}for(f=0;f<n.length;f++)i.push(n[f])}function nnt(e,t){let n=e._tileProvider,i=e._tilesToRender;for(let o=0,r=i.length;o<r;++o){let s=i[o];n.showTileThisFrame(s,t)}}var iL=Lf;function cm(e){e=y(e,oe.WGS84);let t=new S_({ellipsoid:e}),n=new JB;this._ellipsoid=e,this._imageryLayerCollection=n,this._surfaceShaderSet=new VB,this._material=void 0,this._surface=new iL({tileProvider:new XB({terrainProvider:t,imageryLayers:n,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=t,this._terrainProviderChanged=new ge,this._undergroundColor=z.clone(z.BLACK),this._undergroundColorAlphaByDistance=new Lt(e.maximumRadius/1e3,0,e.maximumRadius/5,1),this._translucency=new KB,Dj(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new we({url:en("Assets/Textures/waterNormalsSmall.jpg")}),this.maximumScreenSpaceError=2,this.tileCacheSize=100,this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this.fillHighlightColor=void 0,this.enableLighting=!1,this.lambertDiffuseMultiplier=.9,this.dynamicAtmosphereLighting=!0,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!0,this.atmosphereLightIntensity=10,this.atmosphereRayleighCoefficient=new m(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new m(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.lightingFadeOutDistance=1e7,this.lightingFadeInDistance=2e7,this.nightFadeOutDistance=1e7,this.nightFadeInDistance=5e7,this.showWaterEffect=!0,this.depthTestAgainstTerrain=!1,this.shadows=xn.RECEIVE_ONLY,this.atmosphereHueShift=0,this.atmosphereSaturationShift=0,this.atmosphereBrightnessShift=0,this.terrainExaggeration=1,this.terrainExaggerationRelativeHeight=0,this.showSkirts=!0,this.backFaceCulling=!0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0,this.vertexShadowDarkness=.3}Object.defineProperties(cm.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},imageryLayers:{get:function(){return this._imageryLayerCollection}},imageryLayersUpdatedEvent:{get:function(){return this._surface.tileProvider.imageryLayersUpdatedEvent}},tilesLoaded:{get:function(){return l(this._surface)?this._surface.tileProvider.ready&&this._surface._tileLoadQueueHigh.length===0&&this._surface._tileLoadQueueMedium.length===0&&this._surface._tileLoadQueueLow.length===0:!0}},baseColor:{get:function(){return this._surface.tileProvider.baseColor},set:function(e){this._surface.tileProvider.baseColor=e}},clippingPlanes:{get:function(){return this._surface.tileProvider.clippingPlanes},set:function(e){this._surface.tileProvider.clippingPlanes=e}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){l(e)||(e=le.clone(le.MAX_VALUE)),this._surface.tileProvider.cartographicLimitRectangle=e}},oceanNormalMapUrl:{get:function(){return this._oceanNormalMapResource.url},set:function(e){this._oceanNormalMapResource.url=e,this._oceanNormalMapResourceDirty=!0}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){e!==this._terrainProvider&&(this._terrainProvider=e,this._terrainProviderChanged.raiseEvent(e),l(this._material)&&Dj(this))}},terrainProviderChanged:{get:function(){return this._terrainProviderChanged}},tileLoadProgressEvent:{get:function(){return this._surface.tileLoadProgressEvent}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,Dj(this))}},undergroundColor:{get:function(){return this._undergroundColor},set:function(e){this._undergroundColor=z.clone(e,this._undergroundColor)}},undergroundColorAlphaByDistance:{get:function(){return this._undergroundColorAlphaByDistance},set:function(e){this._undergroundColorAlphaByDistance=Lt.clone(e,this._undergroundColorAlphaByDistance)}},translucency:{get:function(){return this._translucency}}});function Dj(e){let t=[],n=l(e._material)&&(e._material.shaderSource.match(/slope/)||e._material.shaderSource.match("normalEC")),i=[w_,Ub];l(e._material)&&(!n||e._terrainProvider.requestVertexNormals)?(i.push(e._material.shaderSource),t.push("APPLY_MATERIAL"),e._surface._tileProvider.materialUniformMap=e._material._uniforms):e._surface._tileProvider.materialUniformMap=void 0,i.push(FB),e._surfaceShaderSet.baseVertexShaderSource=new He({sources:[w_,Ub,UB],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new He({sources:i,defines:t}),e._surfaceShaderSet.material=e._material}function int(e){return function(t,n){let i=ae.distanceSquaredTo(t.pickBoundingSphere,e),o=ae.distanceSquaredTo(n.pickBoundingSphere,e);return i-o}}var ont=[],rnt={start:0,stop:0};cm.prototype.pickWorldCoordinates=function(e,t,n,i){n=y(n,!0);let o=t.mode,r=t.mapProjection,s=ont;s.length=0;let a=this._surface._tilesToRender,c=a.length,u,f;for(f=0;f<c;++f){u=a[f];let p=u.data;if(!l(p))continue;let g=p.pickBoundingSphere;if(o!==ne.SCENE3D)p.pickBoundingSphere=g=ae.fromRectangleWithHeights2D(u.rectangle,r,p.tileBoundingRegion.minimumHeight,p.tileBoundingRegion.maximumHeight,g),m.fromElements(g.center.z,g.center.x,g.center.y,g.center);else if(l(p.renderedMesh))ae.clone(p.tileBoundingRegion.boundingSphere,g);else continue;let h=qi.raySphere(e,g,rnt);l(h)&&s.push(p)}s.sort(int(e.origin));let d;for(c=s.length,f=0;f<c&&(d=s[f].pick(e,t.mode,t.mapProjection,n,i),!l(d));++f);return d};var snt=new he;cm.prototype.pick=function(e,t,n){if(n=this.pickWorldCoordinates(e,t,!0,n),l(n)&&t.mode!==ne.SCENE3D){n=m.fromElements(n.y,n.z,n.x,n);let i=t.mapProjection.unproject(n,snt);n=t.globe.ellipsoid.cartographicToCartesian(i,n)}return n};var ant=new m,Rpe=new m,cnt=new he,lnt=new Dn;function vj(e,t){return l(e)&&le.contains(e.rectangle,t)?e:void 0}cm.prototype.getHeight=function(e){let t=this._surface._levelZeroTiles;if(!l(t))return;let n,i,o=t.length;for(i=0;i<o&&(n=t[i],!le.contains(n.rectangle,e));++i);if(i>=o)return;let r=n;for(;l(n);)n=vj(n._southwestChild,e)||vj(n._southeastChild,e)||vj(n._northwestChild,e)||n._northeastChild,l(n)&&l(n.data)&&l(n.data.renderedMesh)&&(r=n);if(n=r,!l(n)||!l(n.data)||!l(n.data.renderedMesh))return;let s=this._surface._tileProvider.tilingScheme.projection,a=this._surface._tileProvider.tilingScheme.ellipsoid,c=m.fromRadians(e.longitude,e.latitude,0,a,ant),u=lnt,f=a.geodeticSurfaceNormal(c,u.direction),d=a.getSurfaceNormalIntersectionWithZAxis(c,11500,u.origin);if(!l(d)){let g;l(n.data.tileBoundingRegion)&&(g=n.data.tileBoundingRegion.minimumHeight);let h=Math.min(y(g,0),-11500),A=m.multiplyByScalar(f,Math.abs(h)+1,Rpe);m.subtract(c,A,u.origin)}let p=n.data.pick(u,void 0,s,!1,Rpe);if(l(p))return a.cartesianToCartographic(p,cnt).height};cm.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)};cm.prototype.beginFrame=function(e){let t=this._surface,n=t.tileProvider,i=this.terrainProvider,o=this.showWaterEffect&&l(i)&&i.hasWaterMask&&i._ready&&i.hasWaterMask;if(o&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;let a=this._oceanNormalMapResource,c=a.url;if(l(c)){let u=this;a.fetchImage().then(function(f){c===u._oceanNormalMapResource.url&&(u._oceanNormalMap=u._oceanNormalMap&&u._oceanNormalMap.destroy(),u._oceanNormalMap=new Bt({context:e.context,source:f}))})}else this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy()}let r=e.passes,s=e.mode;r.render&&(this.showGroundAtmosphere?this._zoomedOutOceanSpecularIntensity=.4:this._zoomedOutOceanSpecularIntensity=.5,t.maximumScreenSpaceError=this.maximumScreenSpaceError,t.tileCacheSize=this.tileCacheSize,t.loadingDescendantLimit=this.loadingDescendantLimit,t.preloadAncestors=this.preloadAncestors,t.preloadSiblings=this.preloadSiblings,n.terrainProvider=this.terrainProvider,n.lightingFadeOutDistance=this.lightingFadeOutDistance,n.lightingFadeInDistance=this.lightingFadeInDistance,n.nightFadeOutDistance=this.nightFadeOutDistance,n.nightFadeInDistance=this.nightFadeInDistance,n.zoomedOutOceanSpecularIntensity=s===ne.SCENE3D?this._zoomedOutOceanSpecularIntensity:0,n.hasWaterMask=o,n.oceanNormalMap=this._oceanNormalMap,n.enableLighting=this.enableLighting,n.dynamicAtmosphereLighting=this.dynamicAtmosphereLighting,n.dynamicAtmosphereLightingFromSun=this.dynamicAtmosphereLightingFromSun,n.showGroundAtmosphere=this.showGroundAtmosphere,n.atmosphereLightIntensity=this.atmosphereLightIntensity,n.atmosphereRayleighCoefficient=this.atmosphereRayleighCoefficient,n.atmosphereMieCoefficient=this.atmosphereMieCoefficient,n.atmosphereRayleighScaleHeight=this.atmosphereRayleighScaleHeight,n.atmosphereMieScaleHeight=this.atmosphereMieScaleHeight,n.atmosphereMieAnisotropy=this.atmosphereMieAnisotropy,n.shadows=this.shadows,n.hueShift=this.atmosphereHueShift,n.saturationShift=this.atmosphereSaturationShift,n.brightnessShift=this.atmosphereBrightnessShift,n.fillHighlightColor=this.fillHighlightColor,n.showSkirts=this.showSkirts,n.backFaceCulling=this.backFaceCulling,n.vertexShadowDarkness=this.vertexShadowDarkness,n.undergroundColor=this._undergroundColor,n.undergroundColorAlphaByDistance=this._undergroundColorAlphaByDistance,n.lambertDiffuseMultiplier=this.lambertDiffuseMultiplier,t.beginFrame(e))};cm.prototype.render=function(e){this.show&&(l(this._material)&&this._material.update(e.context),this._surface.render(e))};cm.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)};cm.prototype.isDestroyed=function(){return!1};cm.prototype.destroy=function(){return this._surfaceShaderSet=this._surfaceShaderSet&&this._surfaceShaderSet.destroy(),this._surface=this._surface&&this._surface.destroy(),this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy(),ue(this)};var oL=cm;function unt(e,t,n,i){this.rightAscension=e,this.declination=t,this.rotation=n,this.rotationRate=i}var rL=unt;var qpe={},fnt=32.184,dnt=2451545,Bpe=-.0529921,Lpe=-.1059842,Npe=13.0120009,Fpe=13.3407154,Upe=.9856003,Vpe=26.4057084,kpe=13.064993,zpe=.3287146,Hpe=1.7484877,Gpe=-.1589763,Wpe=.0036096,jpe=.1643573,Ype=12.9590088,Ij=new ee;qpe.ComputeMoon=function(e,t){l(e)||(e=ee.now()),Ij=ee.addSeconds(e,fnt,Ij);let n=ee.totalDays(Ij)-dnt,i=n/Zn.DAYS_PER_JULIAN_CENTURY,o=(125.045+Bpe*n)*P.RADIANS_PER_DEGREE,r=(250.089+Lpe*n)*P.RADIANS_PER_DEGREE,s=(260.008+Npe*n)*P.RADIANS_PER_DEGREE,a=(176.625+Fpe*n)*P.RADIANS_PER_DEGREE,c=(357.529+Upe*n)*P.RADIANS_PER_DEGREE,u=(311.589+Vpe*n)*P.RADIANS_PER_DEGREE,f=(134.963+kpe*n)*P.RADIANS_PER_DEGREE,d=(276.617+zpe*n)*P.RADIANS_PER_DEGREE,p=(34.226+Hpe*n)*P.RADIANS_PER_DEGREE,g=(15.134+Gpe*n)*P.RADIANS_PER_DEGREE,h=(119.743+Wpe*n)*P.RADIANS_PER_DEGREE,A=(239.961+jpe*n)*P.RADIANS_PER_DEGREE,x=(25.053+Ype*n)*P.RADIANS_PER_DEGREE,C=Math.sin(o),T=Math.sin(r),E=Math.sin(s),S=Math.sin(a),v=Math.sin(c),D=Math.sin(u),O=Math.sin(f),M=Math.sin(d),L=Math.sin(p),N=Math.sin(g),_=Math.sin(h),b=Math.sin(A),w=Math.sin(x),I=Math.cos(o),R=Math.cos(r),F=Math.cos(s),k=Math.cos(a),V=Math.cos(c),G=Math.cos(u),U=Math.cos(f),q=Math.cos(d),Y=Math.cos(p),Q=Math.cos(g),W=Math.cos(h),K=Math.cos(A),J=Math.cos(x),_e=(269.9949+.0031*i-3.8787*C-.1204*T+.07*E-.0172*S+.0072*D-.0052*N+.0043*w)*P.RADIANS_PER_DEGREE,xe=(66.5392+.013*i+1.5419*I+.0239*R-.0278*F+.0068*k-.0029*G+9e-4*U+8e-4*Q-9e-4*J)*P.RADIANS_PER_DEGREE,se=(38.3213+13.17635815*n-14e-13*n*n+3.561*C+.1208*T-.0642*E+.0158*S+.0252*v-.0066*D-.0047*O-.0046*M+.0028*L+.0052*N+.004*_+.0019*b-.0044*w)*P.RADIANS_PER_DEGREE,Ae=(13.17635815-14e-13*(2*n)+3.561*I*Bpe+.1208*R*Lpe-.0642*F*Npe+.0158*k*Fpe+.0252*V*Upe-.0066*G*Vpe-.0047*U*kpe-.0046*q*zpe+.0028*Y*Hpe+.0052*Q*Gpe+.004*W*Wpe+.0019*K*jpe-.0044*J*Ype)/86400*P.RADIANS_PER_DEGREE;return l(t)||(t=new rL),t.rightAscension=_e,t.declination=xe,t.rotation=se,t.rotationRate=Ae,t};var sL=qpe;function Xpe(e){(!l(e)||typeof e!="function")&&(e=sL.ComputeMoon),this._computeFunction=e}var mnt=new m,hnt=new m,pnt=new m;function _nt(e,t,n){let i=mnt;i.x=Math.cos(e+P.PI_OVER_TWO),i.y=Math.sin(e+P.PI_OVER_TWO),i.z=0;let o=Math.cos(t),r=pnt;r.x=o*Math.cos(e),r.y=o*Math.sin(e),r.z=Math.sin(t);let s=m.cross(r,i,hnt);return l(n)||(n=new Z),n[0]=i.x,n[1]=s.x,n[2]=r.x,n[3]=i.y,n[4]=s.y,n[5]=r.y,n[6]=i.z,n[7]=s.z,n[8]=r.z,n}var gnt=new Z,ynt=new Ne;Xpe.prototype.evaluate=function(e,t){l(e)||(e=ee.now());let n=this._computeFunction(e),i=_nt(n.rightAscension,n.declination,t),o=P.zeroToTwoPi(n.rotation),r=Ne.fromAxisAngle(m.UNIT_Z,o,ynt),s=Z.fromQuaternion(Ne.conjugate(r,r),gnt);return Z.multiply(s,i,i)};var aL=Xpe;var sS=`uniform vec3 u_radii; +uniform vec3 u_oneOverEllipsoidRadiiSquared; + +in vec3 v_positionEC; + +vec4 computeEllipsoidColor(czm_ray ray, float intersection, float side) +{ + vec3 positionEC = czm_pointAlongRay(ray, intersection); + vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz; + vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared)); + vec3 sphericalNormal = normalize(positionMC / u_radii); + vec3 normalMC = geodeticNormal * side; // normalized surface normal (always facing the viewer) in model coordinates + vec3 normalEC = normalize(czm_normal * normalMC); // normalized surface normal in eye coordiantes + + vec2 st = czm_ellipsoidWgs84TextureCoordinates(sphericalNormal); + vec3 positionToEyeEC = -positionEC; + + czm_materialInput materialInput; + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = (positionMC + u_radii) / u_radii; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef ONLY_SUN_LIGHTING + return czm_private_phong(normalize(positionToEyeEC), material, czm_sunDirectionEC); +#else + return czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} + +void main() +{ + // PERFORMANCE_TODO: When dynamic branching is available, compute ratio of maximum and minimum radii + // in the vertex shader. Only when it is larger than some constant, march along the ray. + // Otherwise perform one intersection test which will be the common case. + + // Test if the ray intersects a sphere with the ellipsoid's maximum radius. + // For very oblate ellipsoids, using the ellipsoid's radii for an intersection test + // may cause false negatives. This will discard fragments before marching the ray forward. + float maxRadius = max(u_radii.x, max(u_radii.y, u_radii.z)) * 1.5; + vec3 direction = normalize(v_positionEC); + vec3 ellipsoidCenter = czm_modelView[3].xyz; + + float t1 = -1.0; + float t2 = -1.0; + + float b = -2.0 * dot(direction, ellipsoidCenter); + float c = dot(ellipsoidCenter, ellipsoidCenter) - maxRadius * maxRadius; + + float discriminant = b * b - 4.0 * c; + if (discriminant >= 0.0) { + t1 = (-b - sqrt(discriminant)) * 0.5; + t2 = (-b + sqrt(discriminant)) * 0.5; + } + + if (t1 < 0.0 && t2 < 0.0) { + discard; + } + + float t = min(t1, t2); + if (t < 0.0) { + t = 0.0; + } + + // March ray forward to intersection with larger sphere and find + czm_ray ray = czm_ray(t * direction, direction); + + vec3 ellipsoid_inverseRadii = vec3(1.0 / u_radii.x, 1.0 / u_radii.y, 1.0 / u_radii.z); + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii); + + if (czm_isEmpty(intersection)) + { + discard; + } + + // If the viewer is outside, compute outsideFaceColor, with normals facing outward. + vec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0); + + // If the viewer either is inside or can see inside, compute insideFaceColor, with normals facing inward. + vec4 insideFaceColor = (outsideFaceColor.a < 1.0) ? computeEllipsoidColor(ray, intersection.stop, -1.0) : vec4(0.0); + + out_FragColor = mix(insideFaceColor, outsideFaceColor, outsideFaceColor.a); + out_FragColor.a = 1.0 - (1.0 - insideFaceColor.a) * (1.0 - outsideFaceColor.a); + +#if (defined(WRITE_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + t = (intersection.start != 0.0) ? intersection.start : intersection.stop; + vec3 positionEC = czm_pointAlongRay(ray, t); + vec4 positionCC = czm_projection * vec4(positionEC, 1.0); +#ifdef LOG_DEPTH + czm_writeLogDepth(1.0 + positionCC.w); +#else + float z = positionCC.z / positionCC.w; + + float n = czm_depthRange.near; + float f = czm_depthRange.far; + + gl_FragDepth = (z * (f - n) + f + n) * 0.5; +#endif +#endif +} +`;var aS=`in vec3 position; + +uniform vec3 u_radii; + +out vec3 v_positionEC; + +void main() +{ + // In the vertex data, the cube goes from (-1.0, -1.0, -1.0) to (1.0, 1.0, 1.0) in model coordinates. + // Scale to consider the radii. We could also do this once on the CPU when using the BoxGeometry, + // but doing it here allows us to change the radii without rewriting the vertex data, and + // allows all ellipsoids to reuse the same vertex data. + vec4 p = vec4(u_radii * position, 1.0); + + v_positionEC = (czm_modelView * p).xyz; // position in eye coordinates + gl_Position = czm_modelViewProjection * p; // position in clip coordinates + + // With multi-frustum, when the ellipsoid primitive is positioned on the intersection of two frustums + // and close to terrain, the terrain (writes depth) in the closest frustum can overwrite part of the + // ellipsoid (does not write depth) that was rendered in the farther frustum. + // + // Here, we clamp the depth in the vertex shader to avoid being overwritten; however, this creates + // artifacts since some fragments can be alpha blended twice. This is solved by only rendering + // the ellipsoid in the closest frustum to the viewer. + gl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far); + + czm_vertexLogDepth(); +} +`;var Pj={position:0};function G4(e){e=y(e,y.EMPTY_OBJECT),this.center=m.clone(y(e.center,m.ZERO)),this._center=new m,this.radii=m.clone(e.radii),this._radii=new m,this._oneOverEllipsoidRadiiSquared=new m,this._boundingSphere=new ae,this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._modelMatrix=new B,this._computedModelMatrix=new B,this.show=y(e.show,!0),this.material=y(e.material,ki.fromType(ki.ColorType)),this._material=void 0,this._translucent=void 0,this.id=e.id,this._id=void 0,this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.onlySunLighting=y(e.onlySunLighting,!1),this._onlySunLighting=!1,this._depthTestEnabled=y(e.depthTestEnabled,!0),this._useLogDepth=!1,this._sp=void 0,this._rs=void 0,this._va=void 0,this._pickSP=void 0,this._pickId=void 0,this._colorCommand=new it({owner:y(e._owner,this)}),this._pickCommand=new it({owner:y(e._owner,this),pickOnly:!0});let t=this;this._uniforms={u_radii:function(){return t.radii},u_oneOverEllipsoidRadiiSquared:function(){return t._oneOverEllipsoidRadiiSquared}},this._pickUniforms={czm_pickColor:function(){return t._pickId.color}}}function Ant(e){let t=e.cache.ellipsoidPrimitive_vertexArray;if(l(t))return t;let n=ol.createGeometry(ol.fromDimensions({dimensions:new m(2,2,2),vertexFormat:Pe.POSITION_ONLY}));return t=oi.fromGeometry({context:e,geometry:n,attributeLocations:Pj,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=t,t}G4.prototype.update=function(e){if(!this.show||e.mode!==ne.SCENE3D||!l(this.center)||!l(this.radii))return;let t=e.context,n=this.material.isTranslucent(),i=this._translucent!==n;(!l(this._rs)||i)&&(this._translucent=n,this._rs=ze.fromCache({cull:{enabled:!0,face:_i.FRONT},depthTest:{enabled:this._depthTestEnabled},depthMask:!n&&t.fragmentDepth,blending:n?mn.ALPHA_BLEND:void 0})),l(this._va)||(this._va=Ant(t));let o=!1,r=this.radii;if(!m.equals(this._radii,r)){m.clone(r,this._radii);let A=this._oneOverEllipsoidRadiiSquared;A.x=1/(r.x*r.x),A.y=1/(r.y*r.y),A.z=1/(r.z*r.z),o=!0}(!B.equals(this.modelMatrix,this._modelMatrix)||!m.equals(this.center,this._center))&&(B.clone(this.modelMatrix,this._modelMatrix),m.clone(this.center,this._center),B.multiplyByTranslation(this.modelMatrix,this.center,this._computedModelMatrix),o=!0),o&&(m.clone(m.ZERO,this._boundingSphere.center),this._boundingSphere.radius=m.maximumComponent(r),ae.transform(this._boundingSphere,this._computedModelMatrix,this._boundingSphere));let s=this._material!==this.material;this._material=this.material,this._material.update(t);let a=this.onlySunLighting!==this._onlySunLighting;this._onlySunLighting=this.onlySunLighting;let c=e.useLogDepth,u=this._useLogDepth!==c;this._useLogDepth=c;let f=this._colorCommand,d,p;(s||a||i||u)&&(d=new He({sources:[aS]}),p=new He({sources:[this.material.shaderSource,sS]}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._sp=Kt.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:Pj}),f.vertexArray=this._va,f.renderState=this._rs,f.shaderProgram=this._sp,f.uniformMap=_t(this._uniforms,this.material._uniforms),f.executeInClosestFrustum=n);let g=e.commandList,h=e.passes;if(h.render&&(f.boundingVolume=this._boundingSphere,f.debugShowBoundingVolume=this.debugShowBoundingVolume,f.modelMatrix=this._computedModelMatrix,f.pass=n?be.TRANSLUCENT:be.OPAQUE,g.push(f)),h.pick){let A=this._pickCommand;(!l(this._pickId)||this._id!==this.id)&&(this._id=this.id,this._pickId=this._pickId&&this._pickId.destroy(),this._pickId=t.createPickId({primitive:this,id:this.id})),(s||a||!l(this._pickSP)||u)&&(d=new He({sources:[aS]}),p=new He({sources:[this.material.shaderSource,sS],pickColorQualifier:"uniform"}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._pickSP=Kt.replaceCache({context:t,shaderProgram:this._pickSP,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:Pj}),A.vertexArray=this._va,A.renderState=this._rs,A.shaderProgram=this._pickSP,A.uniformMap=_t(_t(this._uniforms,this._pickUniforms),this.material._uniforms),A.executeInClosestFrustum=n),A.boundingVolume=this._boundingSphere,A.modelMatrix=this._computedModelMatrix,A.pass=n?be.TRANSLUCENT:be.OPAQUE,g.push(A)}};G4.prototype.isDestroyed=function(){return!1};G4.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._pickSP=this._pickSP&&this._pickSP.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var cL=G4;function lL(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureUrl;l(t)||(t=en("Assets/Textures/moonSmall.jpg")),this.show=y(e.show,!0),this.textureUrl=t,this._ellipsoid=y(e.ellipsoid,oe.MOON),this.onlySunLighting=y(e.onlySunLighting,!0),this._ellipsoidPrimitive=new cL({radii:this.ellipsoid.radii,material:ki.fromType(ki.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new aL}Object.defineProperties(lL.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var W4=new Z,xnt=new Z,Cnt=new m,j4=[];lL.prototype.update=function(e){if(!this.show)return;let t=this._ellipsoidPrimitive;t.material.uniforms.image=this.textureUrl,t.onlySunLighting=this.onlySunLighting;let n=e.time;l(Rt.computeIcrfToFixedMatrix(n,W4))||Rt.computeTemeToPseudoFixedMatrix(n,W4);let i=this._axes.evaluate(n,xnt);Z.transpose(i,i),Z.multiply(W4,i,i);let o=ng.computeMoonPositionInEarthInertialFrame(n,Cnt);Z.multiplyByVector(W4,o,o),B.fromRotationTranslation(i,o,t.modelMatrix);let r=e.commandList;return e.commandList=j4,j4.length=0,t.update(e),e.commandList=r,j4.length===1?j4[0]:void 0};lL.prototype.isDestroyed=function(){return!1};lL.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),ue(this)};var uL=lL;var Oj=[],Mj=[];function Tnt(e,t,n,i,o,r){let s=o-i+1,a=r-o,c=Oj,u=Mj,f,d;for(f=0;f<s;++f)c[f]=e[i+f];for(d=0;d<a;++d)u[d]=e[o+d+1];f=0,d=0;for(let p=i;p<=r;++p){let g=c[f],h=u[d];f<s&&(d>=a||t(g,h,n)<=0)?(e[p]=g,++f):d<a&&(e[p]=h,++d)}}function Rj(e,t,n,i,o){if(i>=o)return;let r=Math.floor((i+o)*.5);Rj(e,t,n,i,r),Rj(e,t,n,r+1,o),Tnt(e,t,n,i,r,o)}function Ent(e,t,n){let i=e.length,o=Math.ceil(i*.5);Oj.length=o,Mj.length=o,Rj(e,t,n,0,i-1),Oj.length=0,Mj.length=0}var O_=Ent;function ac(e,t){this._occluderPosition=m.clone(e.center),this._occluderRadius=e.radius,this._horizonDistance=0,this._horizonPlaneNormal=void 0,this._horizonPlanePosition=void 0,this._cameraPosition=void 0,this.cameraPosition=t}var Y4=new m;Object.defineProperties(ac.prototype,{position:{get:function(){return this._occluderPosition}},radius:{get:function(){return this._occluderRadius}},cameraPosition:{set:function(e){e=m.clone(e,this._cameraPosition);let t=m.subtract(this._occluderPosition,e,Y4),n=m.magnitudeSquared(t),i=this._occluderRadius*this._occluderRadius,o,r,s;if(n>i){o=Math.sqrt(n-i),n=1/Math.sqrt(n),r=m.multiplyByScalar(t,n,Y4);let a=o*o*n;s=m.add(e,m.multiplyByScalar(r,a,Y4),Y4)}else o=Number.MAX_VALUE;this._horizonDistance=o,this._horizonPlaneNormal=r,this._horizonPlanePosition=s,this._cameraPosition=e}}});ac.fromBoundingSphere=function(e,t,n){return l(n)?(m.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=t,n):new ac(e,t)};var Jpe=new m;ac.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){let t=m.subtract(e,this._occluderPosition,Jpe),n=this._occluderRadius;if(n=m.magnitudeSquared(t)-n*n,n>0)return n=Math.sqrt(n)+this._horizonDistance,t=m.subtract(e,this._cameraPosition,t),n*n>m.magnitudeSquared(t)}return!1};var bnt=new m;ac.prototype.isBoundingSphereVisible=function(e){let t=m.clone(e.center,bnt),n=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){let i=m.subtract(t,this._occluderPosition,Jpe),o=this._occluderRadius-n;if(o=m.magnitudeSquared(i)-o*o,n<this._occluderRadius)return o>0?(o=Math.sqrt(o)+this._horizonDistance,i=m.subtract(t,this._cameraPosition,i),o*o+n*n>m.magnitudeSquared(i)):!1;if(o>0){i=m.subtract(t,this._cameraPosition,i);let r=m.magnitudeSquared(i),s=this._occluderRadius*this._occluderRadius,a=n*n;return(this._horizonDistance*this._horizonDistance+s)*a>r*s?!0:(o=Math.sqrt(o)+this._horizonDistance,o*o+a>r)}return!0}return!1};var Snt=new m;ac.prototype.computeVisibility=function(e){let t=m.clone(e.center),n=e.radius;if(n>this._occluderRadius)return sr.FULL;if(this._horizonDistance!==Number.MAX_VALUE){let i=m.subtract(t,this._occluderPosition,Snt),o=this._occluderRadius-n,r=m.magnitudeSquared(i);if(o=r-o*o,o>0){o=Math.sqrt(o)+this._horizonDistance,i=m.subtract(t,this._cameraPosition,i);let s=m.magnitudeSquared(i);return o*o+n*n<s?sr.NONE:(o=this._occluderRadius+n,o=r-o*o,o>0?(o=Math.sqrt(o)+this._horizonDistance,s<o*o+n*n?sr.FULL:sr.PARTIAL):(i=m.subtract(t,this._horizonPlanePosition,i),m.dot(i,this._horizonPlaneNormal)>-n?sr.PARTIAL:sr.FULL))}}return sr.NONE};var q4=new m;ac.computeOccludeePoint=function(e,t,n){let i=m.clone(t),o=m.clone(e.center),r=e.radius,s=n.length,a=m.normalize(m.subtract(i,o,q4),q4),c=-m.dot(a,o),u=ac._anyRotationVector(o,a,c),f=ac._horizonToPlaneNormalDotProduct(e,a,c,u,n[0]);if(!f)return;let d;for(let g=1;g<s;++g){if(d=ac._horizonToPlaneNormalDotProduct(e,a,c,u,n[g]),!d)return;d<f&&(f=d)}if(f<.0017453283658983088)return;let p=r/f;return m.add(o,m.multiplyByScalar(a,p,q4),q4)};var wnt=[];ac.computeOccludeePointFromRectangle=function(e,t){t=y(t,oe.WGS84);let n=le.subsample(e,t,0,wnt),i=ae.fromPoints(n),o=m.ZERO;if(!m.equals(o,i.center))return ac.computeOccludeePoint(new ae(o,t.minimumRadius),i.center,n)};var vnt=new m;ac._anyRotationVector=function(e,t,n){let i=m.abs(t,vnt),o=i.x>i.y?0:1;(o===0&&i.z>i.x||o===1&&i.z>i.y)&&(o=2);let r=new m,s;o===0?(i.x=e.x,i.y=e.y+1,i.z=e.z+1,s=m.UNIT_X):o===1?(i.x=e.x+1,i.y=e.y,i.z=e.z+1,s=m.UNIT_Y):(i.x=e.x+1,i.y=e.y+1,i.z=e.z,s=m.UNIT_Z);let a=(m.dot(t,i)+n)/-m.dot(t,s);return m.normalize(m.subtract(m.add(i,m.multiplyByScalar(s,a,r),i),e,i),i)};var Dnt=new m;ac._rotationVector=function(e,t,n,i,o){let r=m.subtract(i,e,Dnt);if(r=m.normalize(r,r),m.dot(t,r)<.9999999847691291){let s=m.cross(t,r,r);if(m.magnitude(s)>P.EPSILON13)return m.normalize(s,new m)}return o};var Bj=new m,Int=new m,X4=new m,Kpe=new m;ac._horizonToPlaneNormalDotProduct=function(e,t,n,i,o){let r=m.clone(o,Bj),s=m.clone(e.center,Int),a=e.radius,c=m.subtract(s,r,X4),u=m.magnitudeSquared(c),f=a*a;if(u<f)return!1;let d=u-f,p=Math.sqrt(d),h=1/Math.sqrt(u),x=p*h*p;c=m.normalize(c,c);let C=m.add(r,m.multiplyByScalar(c,x,Kpe),Kpe),T=Math.sqrt(d-x*x),E=this._rotationVector(s,t,n,r,i),S=m.fromElements(E.x*E.x*c.x+(E.x*E.y-E.z)*c.y+(E.x*E.z+E.y)*c.z,(E.x*E.y+E.z)*c.x+E.y*E.y*c.y+(E.y*E.z-E.x)*c.z,(E.x*E.z-E.y)*c.x+(E.y*E.z+E.x)*c.y+E.z*E.z*c.z,Bj);S=m.normalize(S,S);let v=m.multiplyByScalar(S,T,Bj);E=m.normalize(m.subtract(m.add(C,v,X4),s,X4),X4);let D=m.dot(t,E);E=m.normalize(m.subtract(m.subtract(C,v,E),s,E),E);let O=m.dot(t,E);return D<O?D:O};var fL=ac;function Ch(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new Kr,this._perspectiveMatrix=new B,this._infinitePerspective=new B}function Lj(e){let t=e.top,n=e.bottom,i=e.right,o=e.left,r=e.near,s=e.far;(t!==e._top||n!==e._bottom||o!==e._left||i!==e._right||r!==e._near||s!==e._far)&&(e._left=o,e._right=i,e._top=t,e._bottom=n,e._near=r,e._far=s,e._perspectiveMatrix=B.computePerspectiveOffCenter(o,i,n,t,r,s,e._perspectiveMatrix),e._infinitePerspective=B.computeInfinitePerspectiveOffCenter(o,i,n,t,r,e._infinitePerspective))}Object.defineProperties(Ch.prototype,{projectionMatrix:{get:function(){return Lj(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return Lj(this),this._infinitePerspective}}});var Pnt=new m,Ont=new m,Mnt=new m,Rnt=new m;Ch.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,u=this.far,f=m.cross(t,n,Pnt),d=Ont;m.multiplyByScalar(t,c,d),m.add(e,d,d);let p=Mnt;m.multiplyByScalar(t,u,p),m.add(e,p,p);let g=Rnt;m.multiplyByScalar(f,a,g),m.add(d,g,g),m.subtract(g,e,g),m.normalize(g,g),m.cross(g,n,g),m.normalize(g,g);let h=i[0];return l(h)||(h=i[0]=new re),h.x=g.x,h.y=g.y,h.z=g.z,h.w=-m.dot(g,e),m.multiplyByScalar(f,s,g),m.add(d,g,g),m.subtract(g,e,g),m.cross(n,g,g),m.normalize(g,g),h=i[1],l(h)||(h=i[1]=new re),h.x=g.x,h.y=g.y,h.z=g.z,h.w=-m.dot(g,e),m.multiplyByScalar(n,r,g),m.add(d,g,g),m.subtract(g,e,g),m.cross(f,g,g),m.normalize(g,g),h=i[2],l(h)||(h=i[2]=new re),h.x=g.x,h.y=g.y,h.z=g.z,h.w=-m.dot(g,e),m.multiplyByScalar(n,o,g),m.add(d,g,g),m.subtract(g,e,g),m.cross(g,f,g),m.normalize(g,g),h=i[3],l(h)||(h=i[3]=new re),h.x=g.x,h.y=g.y,h.z=g.z,h.w=-m.dot(g,e),h=i[4],l(h)||(h=i[4]=new re),h.x=t.x,h.y=t.y,h.z=t.z,h.w=-m.dot(t,d),m.negate(t,g),h=i[5],l(h)||(h=i[5]=new re),h.x=g.x,h.y=g.y,h.z=g.z,h.w=-m.dot(g,p),this._cullingVolume};Ch.prototype.getPixelDimensions=function(e,t,n,i,o){Lj(this);let r=1/this.near,s=this.top*r,a=2*i*n*s/t;s=this.right*r;let c=2*i*n*s/e;return o.x=c,o.y=a,o};Ch.prototype.clone=function(e){return l(e)||(e=new Ch),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};Ch.prototype.equals=function(e){return l(e)&&e instanceof Ch&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};Ch.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof Ch&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var jc=Ch;function Ol(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new jc,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this.xOffset=y(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=y(e.yOffset,0),this._yOffset=this.yOffset}Ol.packedLength=6;Ol.pack=function(e,t,n){return n=y(n,0),t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};Ol.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Ol),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function lm(e){let t=e._offCenterFrustum;(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset)&&(e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset,t.top=e.near*Math.tan(.5*e._fovy),t.bottom=-t.top,t.right=e.aspectRatio*t.top,t.left=-t.right,t.near=e.near,t.far=e.far,t.right+=e.xOffset,t.left+=e.xOffset,t.top+=e.yOffset,t.bottom+=e.yOffset)}Object.defineProperties(Ol.prototype,{projectionMatrix:{get:function(){return lm(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return lm(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return lm(this),this._fovy}},sseDenominator:{get:function(){return lm(this),this._sseDenominator}},offCenterFrustum:{get:function(){return lm(this),this._offCenterFrustum}}});Ol.prototype.computeCullingVolume=function(e,t,n){return lm(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};Ol.prototype.getPixelDimensions=function(e,t,n,i,o){return lm(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};Ol.prototype.clone=function(e){return l(e)||(e=new Ol),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};Ol.prototype.equals=function(e){return!l(e)||!(e instanceof Ol)?!1:(lm(this),lm(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};Ol.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof Ol)?!1:(lm(this),lm(e),P.equalsEpsilon(this.fov,e.fov,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var bi=Ol;var dL=`in vec2 v_textureCoordinates; +const float M_PI = 3.141592653589793; + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +vec3 importanceSampleGGX(vec2 xi, float roughness, vec3 N) +{ + float a = roughness * roughness; + float phi = 2.0 * M_PI * xi.x; + float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (a * a - 1.0) * xi.y)); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangentX = normalize(cross(upVector, N)); + vec3 tangentY = cross(N, tangentX); + return tangentX * H.x + tangentY * H.y + N * H.z; +} + +float G1_Smith(float NdotV, float k) +{ + return NdotV / (NdotV * (1.0 - k) + k); +} + +float G_Smith(float roughness, float NdotV, float NdotL) +{ + float k = roughness * roughness / 2.0; + return G1_Smith(NdotV, k) * G1_Smith(NdotL, k); +} + +vec2 integrateBrdf(float roughness, float NdotV) +{ + vec3 V = vec3(sqrt(1.0 - NdotV * NdotV), 0.0, NdotV); + float A = 0.0; + float B = 0.0; + const int NumSamples = 1024; + for (int i = 0; i < NumSamples; i++) + { + vec2 xi = hammersley2D(i, NumSamples); + vec3 H = importanceSampleGGX(xi, roughness, vec3(0.0, 0.0, 1.0)); + vec3 L = 2.0 * dot(V, H) * H - V; + float NdotL = clamp(L.z, 0.0, 1.0); + float NdotH = clamp(H.z, 0.0, 1.0); + float VdotH = clamp(dot(V, H), 0.0, 1.0); + if (NdotL > 0.0) + { + float G = G_Smith(roughness, NdotV, NdotL); + float G_Vis = G * VdotH / (NdotH * NdotV); + float Fc = pow(1.0 - VdotH, 5.0); + A += (1.0 - Fc) * G_Vis; + B += Fc * G_Vis; + } + } + return vec2(A, B) / float(NumSamples); +} + +void main() +{ + out_FragColor = vec4(integrateBrdf(v_textureCoordinates.y, v_textureCoordinates.x), 0.0, 1.0); +} +`;function mL(){this._colorTexture=void 0,this._drawCommand=void 0}Object.defineProperties(mL.prototype,{colorTexture:{get:function(){return this._colorTexture}}});function Bnt(e,t,n){let i=t.createViewportQuadCommand(dL,{framebuffer:n,renderState:ze.fromCache({viewport:new Ke(0,0,256,256)})});e._drawCommand=i}mL.prototype.update=function(e){if(!l(this._colorTexture)){let t=e.context,n=new Bt({context:t,width:256,height:256,pixelFormat:ct.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,sampler:dn.NEAREST});this._colorTexture=n;let i=new Hs({context:t,colorTextures:[n],destroyAttachments:!1});Bnt(this,t,i),this._drawCommand.execute(t),i.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}};mL.prototype.isDestroyed=function(){return!1};mL.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),ue(this)};var hL=mL;var e_e={};function Lnt(e,t,n){let i,o,r;if(e instanceof bi){let s=Math.tan(.5*e.fovy);return i=e.near,o=e.near*s,r=e.aspectRatio*o,Math.max(t*i/r,n*i/o)}else if(e instanceof jc)return i=e.near,o=e.top,r=e.right,Math.max(t*i/r,n*i/o);return Math.max(t,n)}var Nnt=new m,Zpe=new m;function t_e(e,t,n,i){if(l(i)&&n(.5)>i){let o=n(0),r=n(1),s=n(.5),a=s-o,c=s-r;return function(u){let f=n(u);if(u<=.5){let p=(f-o)/a;return P.lerp(e,-P.PI_OVER_TWO,p)}let d=(f-r)/c;return P.lerp(-P.PI_OVER_TWO,t,1-d)}}return function(o){return P.lerp(e,t,o)}}function Fj(e,t,n,i,o){let r=o,s=Math.max(n,i);if(!l(r)){let a=e.position,c=t,u=e.up,f=e.right,d=e.frustum,p=m.subtract(a,c,Nnt),g=m.magnitude(m.multiplyByScalar(u,m.dot(p,u),Zpe)),h=m.magnitude(m.multiplyByScalar(f,m.dot(p,f),Zpe));r=Math.min(Lnt(d,g,h)*.2,1e9)}if(s<r){let u=-Math.pow((r-n)*1e6,.125),f=Math.pow((r-i)*1e6,1/8);return function(d){let p=d*(f-u)+u;return-Math.pow(p,8)/1e6+r}}return function(a){return P.lerp(n,i,a)}}function pL(e,t){return P.equalsEpsilon(e,P.TWO_PI,P.EPSILON11)&&(e=0),t>e+Math.PI?e+=P.TWO_PI:t<e-Math.PI&&(e-=P.TWO_PI),e}var n_e=new m;function Fnt(e,t,n,i,o,r,s,a){let c=e.camera,u=m.clone(c.position,n_e),f=c.pitch,d=pL(c.heading,i),p=pL(c.roll,r),g=Fj(c,n,u.z,n.z,s),h=t_e(f,o,g,a);function A(x){let C=x.time/t;c.setView({orientation:{heading:P.lerp(d,i,C),pitch:h(C),roll:P.lerp(p,r,C)}}),H.lerp(u,n,C,c.position),c.position.z=g(C)}return A}function Unt(e,t){e.longitude<t.longitude?e.longitude+=P.TWO_PI:t.longitude+=P.TWO_PI}function Vnt(e,t){let n=e.longitude-t.longitude;n<-P.PI?e.longitude+=P.TWO_PI:n>P.PI&&(t.longitude+=P.TWO_PI)}var knt=new he,znt=new he;function Hnt(e,t,n,i,o,r,s,a,c,u){let f=e.camera,p=e.mapProjection.ellipsoid,g=he.clone(f.positionCartographic,knt),h=f.pitch,A=pL(f.heading,i),x=pL(f.roll,r),C=p.cartesianToCartographic(n,znt);g.longitude=P.zeroToTwoPi(g.longitude),C.longitude=P.zeroToTwoPi(C.longitude);let T=!1;if(l(a)){let D=P.zeroToTwoPi(a),O=Math.min(g.longitude,C.longitude),M=Math.max(g.longitude,C.longitude),L=D>=O&&D<=M;if(l(c)){let N=Math.abs(g.longitude-C.longitude),_=P.TWO_PI-N;(L?N:_)<(L?_:N)*c&&!L&&(T=!0)}else L||(T=!0)}T?Unt(g,C):Vnt(g,C);let E=Fj(f,n,g.height,C.height,s),S=t_e(h,o,E,u);function v(){let D=g.longitude,O=C.longitude,M=g.latitude,L=C.latitude;return function(_){let b=_.time/t,w=m.fromRadians(P.lerp(D,O,b),P.lerp(M,L,b),E(b),p);f.setView({destination:w,orientation:{heading:P.lerp(A,i,b),pitch:S(b),roll:P.lerp(x,r,b)}})}}return v()}function Gnt(e,t,n,i,o,r,s){let a=e.camera,c=m.clone(a.position,n_e),u=pL(a.heading,i),f=a.frustum.right-a.frustum.left,d=Fj(a,n,f,n.z,s);function p(g){let h=g.time/t;a.setView({orientation:{heading:P.lerp(u,i,h)}}),H.lerp(c,n,h,a.position);let A=d(h),x=a.frustum,C=x.top/x.right,T=(A-(x.right-x.left))*.5;x.right+=T,x.left-=T,x.top=C*x.right,x.bottom=-x.top}return p}var Qpe=new he,Wnt=new m;function Nj(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function $pe(e,t){function n(){typeof t=="function"&&t(),e.enableInputs=!0}return n}e_e.createTween=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.destination,i=e.mode;if(i===ne.MORPHING)return Nj();let o=y(t.convert,!0),r=e.mapProjection,s=r.ellipsoid,a=t.maximumHeight,c=t.flyOverLongitude,u=t.flyOverLongitudeWeight,f=t.pitchAdjustHeight,d=t.easingFunction;o&&i!==ne.SCENE3D&&(s.cartesianToCartographic(n,Qpe),n=r.project(Qpe,Wnt));let p=e.camera,g=t.endTransform;l(g)&&p._setTransform(g);let h=t.duration;l(h)||(h=Math.ceil(m.distance(p.position,n)/1e6)+2,h=Math.min(h,3));let A=y(t.heading,0),x=y(t.pitch,-P.PI_OVER_TWO),C=y(t.roll,0),T=e.screenSpaceCameraController;T.enableInputs=!1;let E=$pe(T,t.complete),S=$pe(T,t.cancel),v=p.frustum,D=e.mode===ne.SCENE2D;if(D=D&&H.equalsEpsilon(p.position,n,P.EPSILON6),D=D&&P.equalsEpsilon(Math.max(v.right-v.left,v.top-v.bottom),n.z,P.EPSILON6),D=D||e.mode!==ne.SCENE2D&&m.equalsEpsilon(n,p.position,P.EPSILON10),D=D&&P.equalsEpsilon(P.negativePiToPi(A),P.negativePiToPi(p.heading),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(x),P.negativePiToPi(p.pitch),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(C),P.negativePiToPi(p.roll),P.EPSILON10),D)return Nj(E,S);let O=new Array(4);if(O[ne.SCENE2D]=Gnt,O[ne.SCENE3D]=Hnt,O[ne.COLUMBUS_VIEW]=Fnt,h<=0)return Nj(function(){O[i](e,1,n,A,x,C,a,c,u,f)({time:1}),typeof E=="function"&&E()},S);let M=O[i](e,h,n,A,x,C,a,c,u,f);if(!l(d)){let L=p.positionCartographic.height,N=i===ne.SCENE3D?s.cartesianToCartographic(n).height:n.z;L>N&&L>11500?d=Or.CUBIC_OUT:d=Or.QUINTIC_IN_OUT}return{duration:h,easingFunction:d,startObject:{time:0},stopObject:{time:h},update:M,complete:E,cancel:S}};var _L=e_e;var jnt={ROTATE:0,INFINITE_SCROLL:1},Ml=Object.freeze(jnt);function Qt(e){this._scene=e,this._transform=B.clone(B.IDENTITY),this._invTransform=B.clone(B.IDENTITY),this._actualTransform=B.clone(B.IDENTITY),this._actualInvTransform=B.clone(B.IDENTITY),this._transformChanged=!1,this.position=new m,this._position=new m,this._positionWC=new m,this._positionCartographic=new he,this._oldPositionWC=void 0,this.positionWCDeltaMagnitude=0,this.positionWCDeltaMagnitudeLastFrame=0,this.timeSinceMoved=0,this._lastMovedTimestamp=0,this.direction=new m,this._direction=new m,this._directionWC=new m,this.up=new m,this._up=new m,this._upWC=new m,this.right=new m,this._right=new m,this._rightWC=new m,this.frustum=new bi,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60),this.defaultMoveAmount=1e5,this.defaultLookAmount=Math.PI/60,this.defaultRotateAmount=Math.PI/3600,this.defaultZoomAmount=1e5,this.constrainedAxis=void 0,this.maximumZoomFactor=1.5,this._moveStart=new ge,this._moveEnd=new ge,this._changed=new ge,this._changedPosition=void 0,this._changedDirection=void 0,this._changedFrustum=void 0,this._changedHeading=void 0,this.percentageChanged=.5,this._viewMatrix=new B,this._invViewMatrix=new B,u_e(this),this._mode=ne.SCENE3D,this._modeChanged=!0;let t=e.mapProjection;this._projection=t,this._maxCoord=t.project(new he(Math.PI,P.PI_OVER_TWO)),this._max2Dfrustum=void 0,T_e(this,Qt.DEFAULT_VIEW_RECTANGLE,this.position,!0);let n=m.magnitude(this.position);n+=n*Qt.DEFAULT_VIEW_FACTOR,m.normalize(this.position,this.position),m.multiplyByScalar(this.position,n,this.position)}Qt.TRANSFORM_2D=new B(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);Qt.TRANSFORM_2D_INVERSE=B.inverseTransformation(Qt.TRANSFORM_2D,new B);Qt.DEFAULT_VIEW_RECTANGLE=le.fromDegrees(-95,-20,-70,90);Qt.DEFAULT_VIEW_FACTOR=.5;Qt.DEFAULT_OFFSET=new du(0,-P.PI_OVER_FOUR,0);function u_e(e){B.computeView(e._position,e._direction,e._up,e._right,e._viewMatrix),B.multiply(e._viewMatrix,e._actualInvTransform,e._viewMatrix),B.inverseTransformation(e._viewMatrix,e._invViewMatrix)}function Ynt(e){if(!l(e._oldPositionWC))e._oldPositionWC=m.clone(e.positionWC,e._oldPositionWC);else{e.positionWCDeltaMagnitudeLastFrame=e.positionWCDeltaMagnitude;let t=m.subtract(e.positionWC,e._oldPositionWC,e._oldPositionWC);e.positionWCDeltaMagnitude=m.magnitude(t),e._oldPositionWC=m.clone(e.positionWC,e._oldPositionWC),e.positionWCDeltaMagnitude>0?(e.timeSinceMoved=0,e._lastMovedTimestamp=gi()):e.timeSinceMoved=Math.max(gi()-e._lastMovedTimestamp,0)/1e3}}Qt.prototype.canPreloadFlight=function(){return l(this._currentFlight)&&this._mode!==ne.SCENE2D};Qt.prototype._updateCameraChanged=function(){let e=this;if(Ynt(e),e._changed.numberOfListeners===0)return;let t=e.percentageChanged,n=e.heading;l(e._changedHeading)||(e._changedHeading=n);let i=Math.abs(e._changedHeading-n)%P.TWO_PI;i=i>P.PI?P.TWO_PI-i:i;let o=i/Math.PI;if(o>t&&(e._changed.raiseEvent(o),e._changedHeading=n),e._mode===ne.SCENE2D){if(!l(e._changedFrustum)){e._changedPosition=m.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone();return}let u=e.position,f=e._changedPosition,d=e.frustum,p=e._changedFrustum,g=u.x+d.left,h=u.x+d.right,A=f.x+p.left,x=f.x+p.right,C=u.y+d.bottom,T=u.y+d.top,E=f.y+p.bottom,S=f.y+p.top,v=Math.max(g,A),D=Math.min(h,x),O=Math.max(C,E),M=Math.min(T,S),L;if(v>=D||O>=T)L=1;else{let N=p;g<A&&h>x&&C<E&&T>S&&(N=d),L=1-(D-v)*(M-O)/((N.right-N.left)*(N.top-N.bottom))}L>t&&(e._changed.raiseEvent(L),e._changedPosition=m.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum));return}if(!l(e._changedDirection)){e._changedPosition=m.clone(e.positionWC,e._changedPosition),e._changedDirection=m.clone(e.directionWC,e._changedDirection);return}let r=P.acosClamped(m.dot(e.directionWC,e._changedDirection)),s;l(e.frustum.fovy)?s=r/(e.frustum.fovy*.5):s=r;let c=m.distance(e.positionWC,e._changedPosition)/e.positionCartographic.height;(s>t||c>t)&&(e._changed.raiseEvent(Math.max(s,c)),e._changedPosition=m.clone(e.positionWC,e._changedPosition),e._changedDirection=m.clone(e.directionWC,e._changedDirection))};function qnt(e){Rt.basisTo2D(e._projection,e._transform,e._actualTransform)}var Xnt=new he,Knt=new m,K4=new m,Jnt=new re,Znt=new re,Qnt=new re,$nt=new re,eit=new re;function tit(e){let t=e._projection,n=t.ellipsoid,i=B.getColumn(e._transform,3,Jnt),o=n.cartesianToCartographic(i,Xnt),r=t.project(o,Knt),s=Znt;s.x=r.z,s.y=r.x,s.z=r.y,s.w=1;let a=re.clone(re.UNIT_X,eit),c=re.add(B.getColumn(e._transform,0,K4),i,K4);n.cartesianToCartographic(c,o),t.project(o,r);let u=Qnt;u.x=r.z,u.y=r.x,u.z=r.y,u.w=0,m.subtract(u,s,u),u.x=0;let f=$nt;if(m.magnitudeSquared(u)>P.EPSILON10)m.cross(a,u,f);else{let d=re.add(B.getColumn(e._transform,1,K4),i,K4);n.cartesianToCartographic(d,o),t.project(o,r),f.x=r.z,f.y=r.x,f.z=r.y,f.w=0,m.subtract(f,s,f),f.x=0,m.magnitudeSquared(f)<P.EPSILON10&&(re.clone(re.UNIT_Y,u),re.clone(re.UNIT_Z,f))}m.cross(f,a,u),m.normalize(u,u),m.cross(a,u,f),m.normalize(f,f),B.setColumn(e._actualTransform,0,u,e._actualTransform),B.setColumn(e._actualTransform,1,f,e._actualTransform),B.setColumn(e._actualTransform,2,a,e._actualTransform),B.setColumn(e._actualTransform,3,s,e._actualTransform)}var Uj=new m;function lc(e){let t=e._mode,n=!1,i=0;t===ne.SCENE2D&&(i=e.frustum.right-e.frustum.left,n=i!==e._positionCartographic.height);let o=e._position,r=!m.equals(o,e.position)||n;r&&(o=m.clone(e.position,e._position));let s=e._direction,a=!m.equals(s,e.direction);a&&(m.normalize(e.direction,e.direction),s=m.clone(e.direction,e._direction));let c=e._up,u=!m.equals(c,e.up);u&&(m.normalize(e.up,e.up),c=m.clone(e.up,e._up));let f=e._right,d=!m.equals(f,e.right);d&&(m.normalize(e.right,e.right),f=m.clone(e.right,e._right));let p=e._transformChanged||e._modeChanged;e._transformChanged=!1,p&&(B.inverseTransformation(e._transform,e._invTransform),e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D?B.equals(B.IDENTITY,e._transform)?B.clone(Qt.TRANSFORM_2D,e._actualTransform):e._mode===ne.COLUMBUS_VIEW?qnt(e):tit(e):B.clone(e._transform,e._actualTransform),B.inverseTransformation(e._actualTransform,e._actualInvTransform),e._modeChanged=!1);let g=e._actualTransform;if(r||p)if(e._positionWC=B.multiplyByPoint(g,o,e._positionWC),t===ne.SCENE3D||t===ne.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{let h=Uj;h.x=e._positionWC.y,h.y=e._positionWC.z,h.z=e._positionWC.x,t===ne.SCENE2D&&(h.z=i),e._projection.unproject(h,e._positionCartographic)}if(a||u||d){let h=m.dot(s,m.cross(c,f,Uj));if(Math.abs(1-h)>P.EPSILON2){let A=1/m.magnitudeSquared(c),x=m.dot(c,s)*A,C=m.multiplyByScalar(s,x,Uj);c=m.normalize(m.subtract(c,C,e._up),e._up),m.clone(c,e.up),f=m.cross(s,c,e._right),m.clone(f,e.right)}}(a||p)&&(e._directionWC=B.multiplyByPointAsVector(g,s,e._directionWC),m.normalize(e._directionWC,e._directionWC)),(u||p)&&(e._upWC=B.multiplyByPointAsVector(g,c,e._upWC),m.normalize(e._upWC,e._upWC)),(d||p)&&(e._rightWC=B.multiplyByPointAsVector(g,f,e._rightWC),m.normalize(e._rightWC,e._rightWC)),(r||a||u||d||p)&&u_e(e)}function f_e(e,t){let n;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)?n=Math.atan2(t.y,t.x)-P.PI_OVER_TWO:n=Math.atan2(e.y,e.x)-P.PI_OVER_TWO,P.TWO_PI-P.zeroToTwoPi(n)}function d_e(e){return P.PI_OVER_TWO-P.acosClamped(e.z)}function m_e(e,t,n){let i=0;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)||(i=Math.atan2(-n.z,t.z),i=P.zeroToTwoPi(i+P.TWO_PI)),i}var Q4=new B,$4=new B;Object.defineProperties(Qt.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return lc(this),this._invTransform}},viewMatrix:{get:function(){return lc(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return lc(this),this._invViewMatrix}},positionCartographic:{get:function(){return lc(this),this._positionCartographic}},positionWC:{get:function(){return lc(this),this._positionWC}},directionWC:{get:function(){return lc(this),this._directionWC}},upWC:{get:function(){return lc(this),this._upWC}},rightWC:{get:function(){return lc(this),this._rightWC}},heading:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=B.clone(this._transform,Q4),n=Rt.eastNorthUpToFixedFrame(this.positionWC,e,$4);this._setTransform(n);let i=f_e(this.direction,this.up);return this._setTransform(t),i}}},pitch:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=B.clone(this._transform,Q4),n=Rt.eastNorthUpToFixedFrame(this.positionWC,e,$4);this._setTransform(n);let i=d_e(this.direction);return this._setTransform(t),i}}},roll:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=B.clone(this._transform,Q4),n=Rt.eastNorthUpToFixedFrame(this.positionWC,e,$4);this._setTransform(n);let i=m_e(this.direction,this.up,this.right);return this._setTransform(t),i}}},moveStart:{get:function(){return this._moveStart}},moveEnd:{get:function(){return this._moveEnd}},changed:{get:function(){return this._changed}}});Qt.prototype.update=function(e){let t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==ne.MORPHING,t=this._mode===ne.SCENE2D),t){let n=this._max2Dfrustum=this.frustum.clone(),i=2,o=n.top/n.right;n.right=this._maxCoord.x*i,n.left=-n.right,n.top=o*n.right,n.bottom=-n.top}this._mode===ne.SCENE2D&&g_e(this,this.position)};var nit=new m,iit=new m,oit=new m;Qt.prototype._setTransform=function(e){let t=m.clone(this.positionWC,nit),n=m.clone(this.upWC,iit),i=m.clone(this.directionWC,oit);B.clone(e,this._transform),this._transformChanged=!0,lc(this);let o=this._actualInvTransform;B.multiplyByPoint(o,t,this.position),B.multiplyByPointAsVector(o,i,this.direction),B.multiplyByPointAsVector(o,n,this.up),m.cross(this.direction,this.up,this.right),lc(this)};var rit=new H,sit=new Dn,ait=new m,cit=new m;function h_e(e){if(!B.equals(B.IDENTITY,e.transform))return m.magnitude(e.position);let t=e._scene,n=t.globe,i=rit;i.x=t.drawingBufferWidth/2,i.y=t.drawingBufferHeight/2;let o;if(l(n)){let a=e.getPickRay(i,sit);o=n.pickWorldCoordinates(a,t,!0,ait)}let r;t.pickPositionSupported&&(r=t.pickPositionWorldCoordinates(i,cit));let s;if(l(o)||l(r)){let a=l(r)?m.distance(r,e.positionWC):Number.POSITIVE_INFINITY,c=l(o)?m.distance(o,e.positionWC):Number.POSITIVE_INFINITY;s=Math.min(a,c)}else s=Math.max(e.positionCartographic.height,0);return s}Qt.prototype._adjustOrthographicFrustum=function(e){this.frustum instanceof tn&&(!e&&this._positionCartographic.height<15e4||(this.frustum.width=h_e(this)))};var ez=new m,Gj=new B,lit=new B,Wj=new Ne,jj=new Z,p_e=new he;function uit(e,t,n){let i=B.clone(e.transform,Gj),o=Rt.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,lit);e._setTransform(o),m.clone(m.ZERO,e.position),n.heading=n.heading-P.PI_OVER_TWO;let r=Ne.fromHeadingPitchRoll(n,Wj),s=Z.fromQuaternion(r,jj);Z.getColumn(s,0,e.direction),Z.getColumn(s,2,e.up),m.cross(e.direction,e.up,e.right),e._setTransform(i),e._adjustOrthographicFrustum(!0)}function fit(e,t,n,i){let o=B.clone(e.transform,Gj);if(e._setTransform(B.IDENTITY),!m.equals(t,e.positionWC)){if(i){let a=e._projection,c=a.ellipsoid.cartesianToCartographic(t,p_e);t=a.project(c,ez)}m.clone(t,e.position)}n.heading=n.heading-P.PI_OVER_TWO;let r=Ne.fromHeadingPitchRoll(n,Wj),s=Z.fromQuaternion(r,jj);Z.getColumn(s,0,e.direction),Z.getColumn(s,2,e.up),m.cross(e.direction,e.up,e.right),e._setTransform(o),e._adjustOrthographicFrustum(!0)}function dit(e,t,n,i){let o=B.clone(e.transform,Gj);if(e._setTransform(B.IDENTITY),!m.equals(t,e.positionWC)){if(i){let c=e._projection,u=c.ellipsoid.cartesianToCartographic(t,p_e);t=c.project(u,ez)}H.clone(t,e.position);let r=-t.z*.5,s=-r,a=e.frustum;if(s>r){let c=a.top/a.right;a.right=s,a.left=r,a.top=a.right*c,a.bottom=-a.top}}if(e._scene.mapMode2D===Ml.ROTATE){n.heading=n.heading-P.PI_OVER_TWO,n.pitch=-P.PI_OVER_TWO,n.roll=0;let r=Ne.fromHeadingPitchRoll(n,Wj),s=Z.fromQuaternion(r,jj);Z.getColumn(s,2,e.up),m.cross(e.direction,e.up,e.right)}e._setTransform(o)}var mit=new m,hit=new m,pit=new m;function __e(e,t,n,i){let o=m.clone(n.direction,mit),r=m.clone(n.up,hit);if(e._scene.mode===ne.SCENE3D){let a=e._projection.ellipsoid,c=Rt.eastNorthUpToFixedFrame(t,a,Q4),u=B.inverseTransformation(c,$4);B.multiplyByPointAsVector(u,o,o),B.multiplyByPointAsVector(u,r,r)}let s=m.cross(o,r,pit);return i.heading=f_e(o,r),i.pitch=d_e(o),i.roll=m_e(o,r,s),i}var Hj={destination:void 0,orientation:{direction:void 0,up:void 0,heading:void 0,pitch:void 0,roll:void 0},convert:void 0,endTransform:void 0},cS=new Fa;Qt.prototype.setView=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.orientation,y.EMPTY_OBJECT),n=this._mode;if(n===ne.MORPHING)return;l(e.endTransform)&&this._setTransform(e.endTransform);let i=y(e.convert,!0),o=y(e.destination,m.clone(this.positionWC,ez));l(o)&&l(o.west)&&(o=this.getRectangleCameraCoordinates(o,ez),i=!1),l(t.direction)&&(t=__e(this,o,t,Hj.orientation)),cS.heading=y(t.heading,0),cS.pitch=y(t.pitch,-P.PI_OVER_TWO),cS.roll=y(t.roll,0),n===ne.SCENE3D?uit(this,o,cS):n===ne.SCENE2D?dit(this,o,cS,i):fit(this,o,cS,i)};var _it=new m;Qt.prototype.flyHome=function(e){let t=this._mode;if(t===ne.MORPHING&&this._scene.completeMorph(),t===ne.SCENE2D)this.flyTo({destination:Qt.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:B.IDENTITY});else if(t===ne.SCENE3D){let n=this.getRectangleCameraCoordinates(Qt.DEFAULT_VIEW_RECTANGLE),i=m.magnitude(n);i+=i*Qt.DEFAULT_VIEW_FACTOR,m.normalize(n,n),m.multiplyByScalar(n,i,n),this.flyTo({destination:n,duration:e,endTransform:B.IDENTITY})}else if(t===ne.COLUMBUS_VIEW){let n=this._projection.ellipsoid.maximumRadius,i=new m(0,-1,1);i=m.multiplyByScalar(m.normalize(i,i),5*n,i),this.flyTo({destination:i,duration:e,orientation:{heading:0,pitch:-Math.acos(m.normalize(i,_it).z),roll:0},endTransform:B.IDENTITY,convert:!1})}};Qt.prototype.worldToCameraCoordinates=function(e,t){return l(t)||(t=new re),lc(this),B.multiplyByVector(this._actualInvTransform,e,t)};Qt.prototype.worldToCameraCoordinatesPoint=function(e,t){return l(t)||(t=new m),lc(this),B.multiplyByPoint(this._actualInvTransform,e,t)};Qt.prototype.worldToCameraCoordinatesVector=function(e,t){return l(t)||(t=new m),lc(this),B.multiplyByPointAsVector(this._actualInvTransform,e,t)};Qt.prototype.cameraToWorldCoordinates=function(e,t){return l(t)||(t=new re),lc(this),B.multiplyByVector(this._actualTransform,e,t)};Qt.prototype.cameraToWorldCoordinatesPoint=function(e,t){return l(t)||(t=new m),lc(this),B.multiplyByPoint(this._actualTransform,e,t)};Qt.prototype.cameraToWorldCoordinatesVector=function(e,t){return l(t)||(t=new m),lc(this),B.multiplyByPointAsVector(this._actualTransform,e,t)};function g_e(e,t){let n=e._scene.mapMode2D===Ml.ROTATE,i=e._maxCoord.x,o=e._maxCoord.y,r,s;n?(s=i,r=-s):(s=t.x-i*2,r=t.x+i*2),t.x>i&&(t.x=s),t.x<-i&&(t.x=r),t.y>o&&(t.y=o),t.y<-o&&(t.y=-o)}var i_e=new m;Qt.prototype.move=function(e,t){let n=this.position;m.multiplyByScalar(e,t,i_e),m.add(n,i_e,n),this._mode===ne.SCENE2D&&g_e(this,n),this._adjustOrthographicFrustum(!0)};Qt.prototype.moveForward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?tz(this,e):this.move(this.direction,e)};Qt.prototype.moveBackward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?tz(this,-e):this.move(this.direction,-e)};Qt.prototype.moveUp=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,e)};Qt.prototype.moveDown=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,-e)};Qt.prototype.moveRight=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,e)};Qt.prototype.moveLeft=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,-e)};Qt.prototype.lookLeft=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,-e)};Qt.prototype.lookRight=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,e)};Qt.prototype.lookUp=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,-e)};Qt.prototype.lookDown=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,e)};var git=new Ne,yit=new Z;Qt.prototype.look=function(e,t){let n=y(t,this.defaultLookAmount),i=Ne.fromAxisAngle(e,-n,git),o=Z.fromQuaternion(i,yit),r=this.direction,s=this.up,a=this.right;Z.multiplyByVector(o,r,r),Z.multiplyByVector(o,s,s),Z.multiplyByVector(o,a,a)};Qt.prototype.twistLeft=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,e)};Qt.prototype.twistRight=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,-e)};var Ait=new Ne,xit=new Z;Qt.prototype.rotate=function(e,t){let n=y(t,this.defaultRotateAmount),i=Ne.fromAxisAngle(e,-n,Ait),o=Z.fromQuaternion(i,xit);Z.multiplyByVector(o,this.position,this.position),Z.multiplyByVector(o,this.direction,this.direction),Z.multiplyByVector(o,this.up,this.up),m.cross(this.direction,this.up,this.right),m.cross(this.right,this.direction,this.up),this._adjustOrthographicFrustum(!1)};Qt.prototype.rotateDown=function(e){e=y(e,this.defaultRotateAmount),y_e(this,e)};Qt.prototype.rotateUp=function(e){e=y(e,this.defaultRotateAmount),y_e(this,-e)};var Cit=new m,Tit=new m,Eit=new m,o_e=new m;function y_e(e,t){let n=e.position;if(l(e.constrainedAxis)&&!m.equalsEpsilon(e.position,m.ZERO,P.EPSILON2)){let i=m.normalize(n,Cit),o=m.equalsEpsilon(i,e.constrainedAxis,P.EPSILON2),r=m.equalsEpsilon(i,m.negate(e.constrainedAxis,o_e),P.EPSILON2);if(!o&&!r){let s=m.normalize(e.constrainedAxis,Tit),a=m.dot(i,s),c=P.acosClamped(a);t>0&&t>c&&(t=c-P.EPSILON4),a=m.dot(i,m.negate(s,o_e)),c=P.acosClamped(a),t<0&&-t>c&&(t=-c+P.EPSILON4);let u=m.cross(s,i,Eit);e.rotate(u,t)}else(o&&t<0||r&&t>0)&&e.rotate(e.right,t)}else e.rotate(e.right,t)}Qt.prototype.rotateRight=function(e){e=y(e,this.defaultRotateAmount),A_e(this,-e)};Qt.prototype.rotateLeft=function(e){e=y(e,this.defaultRotateAmount),A_e(this,e)};function A_e(e,t){l(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function tz(e,t){let n=e.frustum,i;if(t=t*.5,Math.abs(n.top)+Math.abs(n.bottom)>Math.abs(n.left)+Math.abs(n.right)){let o=n.top-t,r=n.bottom+t,s=e._maxCoord.y;e._scene.mapMode2D===Ml.ROTATE&&(s*=e.maximumZoomFactor),r>s&&(r=s,o=-s),o<=r&&(o=1,r=-1),i=n.right/n.top,n.top=o,n.bottom=r,n.right=n.top*i,n.left=-n.right}else{let o=n.right-t,r=n.left+t,s=e._maxCoord.x;e._scene.mapMode2D===Ml.ROTATE&&(s*=e.maximumZoomFactor),o>s&&(o=s,r=-s),o<=r&&(o=1,r=-1),i=n.top/n.right,n.right=o,n.left=r,n.top=n.right*i,n.bottom=-n.top}}function x_e(e,t){e.move(e.direction,t)}Qt.prototype.zoomIn=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?tz(this,e):x_e(this,e)};Qt.prototype.zoomOut=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?tz(this,-e):x_e(this,-e)};Qt.prototype.getMagnitude=function(){if(this._mode===ne.SCENE3D)return m.magnitude(this.position);if(this._mode===ne.COLUMBUS_VIEW)return Math.abs(this.position.z);if(this._mode===ne.SCENE2D)return Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom)};var bit=new B;Qt.prototype.lookAt=function(e,t){let n=Rt.eastNorthUpToFixedFrame(e,oe.WGS84,bit);this.lookAtTransform(n,t)};var Sit=new m,wit=new Ne,vit=new Ne,Dit=new Z;function C_e(e,t,n){t=P.clamp(t,-P.PI_OVER_TWO,P.PI_OVER_TWO),e=P.zeroToTwoPi(e)-P.PI_OVER_TWO;let i=Ne.fromAxisAngle(m.UNIT_Y,-t,wit),o=Ne.fromAxisAngle(m.UNIT_Z,-e,vit),r=Ne.multiply(o,i,o),s=Z.fromQuaternion(r,Dit),a=m.clone(m.UNIT_X,Sit);return Z.multiplyByVector(s,a,a),m.negate(a,a),m.multiplyByScalar(a,n,a),a}Qt.prototype.lookAtTransform=function(e,t){if(this._setTransform(e),!l(t))return;let n;if(l(t.heading)?n=C_e(t.heading,t.pitch,t.range):n=t,this._mode===ne.SCENE2D){H.clone(H.ZERO,this.position),m.negate(n,this.up),this.up.z=0,m.magnitudeSquared(this.up)<P.EPSILON10&&m.clone(m.UNIT_Y,this.up),m.normalize(this.up,this.up),this._setTransform(B.IDENTITY),m.negate(m.UNIT_Z,this.direction),m.cross(this.direction,this.up,this.right),m.normalize(this.right,this.right);let i=this.frustum,o=i.top/i.right;i.right=m.magnitude(n)*.5,i.left=-i.right,i.top=o*i.right,i.bottom=-i.top,this._setTransform(e);return}m.clone(n,this.position),m.negate(this.position,this.direction),m.normalize(this.direction,this.direction),m.cross(this.direction,m.UNIT_Z,this.right),m.magnitudeSquared(this.right)<P.EPSILON10&&m.clone(m.UNIT_X,this.right),m.normalize(this.right,this.right),m.cross(this.right,this.direction,this.up),m.normalize(this.up,this.up),this._adjustOrthographicFrustum(!0)};var gL=new he,Iit=new he,Pit=new m,Oit=new m,Mit=new m,Rit=new m,Bit=new m,Lit=new m,Nit=new m,Vj=new m,Fit={direction:new m,right:new m,up:new m},r_e;function cc(e,t,n,i){return Math.abs(m.dot(t,n))/i-m.dot(e,n)}function T_e(e,t,n,i){let o=e._projection.ellipsoid,r=i?e:Fit,s=t.north,a=t.south,c=t.east,u=t.west;u>c&&(c+=P.TWO_PI);let f=(u+c)*.5,d;if(a<-P.PI_OVER_TWO+P.RADIANS_PER_DEGREE&&s>P.PI_OVER_TWO-P.RADIANS_PER_DEGREE)d=0;else{let L=gL;L.longitude=f,L.latitude=s,L.height=0;let N=Iit;N.longitude=f,N.latitude=a,N.height=0;let _=r_e;(!l(_)||_.ellipsoid!==o)&&(r_e=_=new Ku(void 0,void 0,o)),_.setEndPoints(L,N),d=_.interpolateUsingFraction(.5,gL).latitude}let p=gL;p.longitude=f,p.latitude=d,p.height=0;let g=o.cartographicToCartesian(p,Nit),h=gL;h.longitude=c,h.latitude=s;let A=o.cartographicToCartesian(h,Pit);h.longitude=u;let x=o.cartographicToCartesian(h,Mit);h.longitude=f;let C=o.cartographicToCartesian(h,Bit);h.latitude=a;let T=o.cartographicToCartesian(h,Lit);h.longitude=c;let E=o.cartographicToCartesian(h,Rit);h.longitude=u;let S=o.cartographicToCartesian(h,Oit);m.subtract(x,g,x),m.subtract(E,g,E),m.subtract(A,g,A),m.subtract(S,g,S),m.subtract(C,g,C),m.subtract(T,g,T);let v=o.geodeticSurfaceNormal(g,r.direction);m.negate(v,v);let D=m.cross(v,m.UNIT_Z,r.right);m.normalize(D,D);let O=m.cross(D,v,r.up),M;if(e.frustum instanceof tn){let L=Math.max(m.distance(A,x),m.distance(E,S)),N=Math.max(m.distance(A,E),m.distance(x,S)),_,b,w=e.frustum._offCenterFrustum,I=w.right/w.top,R=N*I;L>R?(_=L,b=_/I):(b=N,_=R),M=Math.max(_,b)}else{let L=Math.tan(e.frustum.fovy*.5),N=e.frustum.aspectRatio*L;if(M=Math.max(cc(v,O,x,L),cc(v,O,E,L),cc(v,O,A,L),cc(v,O,S,L),cc(v,O,C,L),cc(v,O,T,L),cc(v,D,x,N),cc(v,D,E,N),cc(v,D,A,N),cc(v,D,S,N),cc(v,D,C,N),cc(v,D,T,N)),a<0&&s>0){let _=gL;_.longitude=u,_.latitude=0,_.height=0;let b=o.cartographicToCartesian(_,Vj);m.subtract(b,g,b),M=Math.max(M,cc(v,O,b,L),cc(v,D,b,N)),_.longitude=c,b=o.cartographicToCartesian(_,Vj),m.subtract(b,g,b),M=Math.max(M,cc(v,O,b,L),cc(v,D,b,N))}}return m.add(g,m.multiplyByScalar(v,-M,Vj),n)}var Uit=new he,Vit=new m,kit=new m;function zit(e,t,n){let i=e._projection;t.west>t.east&&(t=le.MAX_VALUE);let o=e._actualTransform,r=e._actualInvTransform,s=Uit;s.longitude=t.east,s.latitude=t.north;let a=i.project(s,Vit);B.multiplyByPoint(o,a,a),B.multiplyByPoint(r,a,a),s.longitude=t.west,s.latitude=t.south;let c=i.project(s,kit);if(B.multiplyByPoint(o,c,c),B.multiplyByPoint(r,c,c),n.x=(a.x-c.x)*.5+c.x,n.y=(a.y-c.y)*.5+c.y,l(e.frustum.fovy)){let u=Math.tan(e.frustum.fovy*.5),f=e.frustum.aspectRatio*u;n.z=Math.max((a.x-c.x)/f,(a.y-c.y)/u)*.5}else{let u=a.x-c.x,f=a.y-c.y;n.z=Math.max(u,f)}return n}var Hit=new he,Git=new m,Wit=new m;function jit(e,t,n){let i=e._projection,o=t.east;t.west>t.east&&(e._scene.mapMode2D===Ml.INFINITE_SCROLL?o+=P.TWO_PI:(t=le.MAX_VALUE,o=t.east));let r=Hit;r.longitude=o,r.latitude=t.north;let s=i.project(r,Git);r.longitude=t.west,r.latitude=t.south;let a=i.project(r,Wit),c=Math.abs(s.x-a.x)*.5,u=Math.abs(s.y-a.y)*.5,f,d,p=e.frustum.right/e.frustum.top,g=u*p;return c>g?(f=c,d=f/p):(d=u,f=g),u=Math.max(2*f,2*d),n.x=(s.x-a.x)*.5+a.x,n.y=(s.y-a.y)*.5+a.y,r=i.unproject(n,r),r.height=u,n=i.project(r,n),n}Qt.prototype.getRectangleCameraCoordinates=function(e,t){let n=this._mode;if(l(t)||(t=new m),n===ne.SCENE3D)return T_e(this,e,t);if(n===ne.COLUMBUS_VIEW)return zit(this,e,t);if(n===ne.SCENE2D)return jit(this,e,t)};var Yit=new Dn;function qit(e,t,n,i){n=y(n,oe.WGS84);let o=e.getPickRay(t,Yit),r=qi.rayEllipsoid(o,n);if(!r)return;let s=r.start>0?r.start:r.stop;return Dn.getPoint(o,s,i)}var Xit=new Dn;function Kit(e,t,n,i){let r=e.getPickRay(t,Xit).origin;r=m.fromElements(r.y,r.z,0,r);let s=n.unproject(r);if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO))return n.ellipsoid.cartographicToCartesian(s,i)}var Jit=new Dn;function Zit(e,t,n,i){let o=e.getPickRay(t,Jit),r=-o.origin.x/o.direction.x;Dn.getPoint(o,r,i);let s=n.unproject(new m(i.y,i.z,0));if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO||s.longitude<-Math.PI||s.longitude>Math.PI))return n.ellipsoid.cartographicToCartesian(s,i)}Qt.prototype.pickEllipsoid=function(e,t,n){let i=this._scene.canvas;if(!(i.clientWidth===0||i.clientHeight===0)){if(l(n)||(n=new m),t=y(t,oe.WGS84),this._mode===ne.SCENE3D)n=qit(this,e,t,n);else if(this._mode===ne.SCENE2D)n=Kit(this,e,this._projection,n);else if(this._mode===ne.COLUMBUS_VIEW)n=Zit(this,e,this._projection,n);else return;return n}};var Qit=new m,$it=new m,eot=new m;function tot(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=Math.tan(e.frustum.fovy*.5),a=e.frustum.aspectRatio*s,c=e.frustum.near,u=2/o*t.x-1,f=2/r*(r-t.y)-1,d=e.positionWC;m.clone(d,n.origin);let p=m.multiplyByScalar(e.directionWC,c,Qit);m.add(d,p,p);let g=m.multiplyByScalar(e.rightWC,u*c*a,$it),h=m.multiplyByScalar(e.upWC,f*c*s,eot),A=m.add(p,g,n.direction);return m.add(A,h,A),m.subtract(A,d,A),m.normalize(A,A),n}var J4=new m;function not(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=e.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2/o*t.x-1;c*=(s.right-s.left)*.5;let u=2/r*(r-t.y)-1;u*=(s.top-s.bottom)*.5;let f=n.origin;return m.clone(e.position,f),m.multiplyByScalar(e.right,c,J4),m.add(J4,f,f),m.multiplyByScalar(e.up,u,J4),m.add(J4,f,f),m.clone(e.directionWC,n.direction),(e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D)&&m.fromElements(n.origin.z,n.origin.x,n.origin.y,n.origin),n}Qt.prototype.getPickRay=function(e,t){l(t)||(t=new Dn);let n=this._scene.canvas;if(n.clientWidth<=0||n.clientHeight<=0)return;let i=this.frustum;return l(i.aspectRatio)&&l(i.fov)&&l(i.near)?tot(this,e,t):not(this,e,t)};var iot=new m,oot=new m;Qt.prototype.distanceToBoundingSphere=function(e){let t=m.subtract(this.positionWC,e.center,iot),n=m.multiplyByScalar(this.directionWC,m.dot(t,this.directionWC),oot);return Math.max(0,m.magnitude(n)-e.radius)};var rot=new H;Qt.prototype.getPixelSize=function(e,t,n){let i=this.distanceToBoundingSphere(e),o=this.frustum.getPixelDimensions(t,n,i,this._scene.pixelRatio,rot);return Math.max(o.x,o.y)};function sot(e,t,n,i,o,r){let s=m.clone(t);n.y>i?s.y-=n.y-i:n.y<-i&&(s.y+=-i-n.y),n.z>o?s.z-=n.z-o:n.z<-o&&(s.z+=-o-n.z);function a(c){let u=m.lerp(t,s,c.time,new m);e.worldToCameraCoordinatesPoint(u,e.position)}return{easingFunction:Or.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:r,update:a}}var aot=new m,s_e=new m,cot=new m,lot=new m;function uot(e,t){let n=e.position,i=e.direction,o=e.worldToCameraCoordinatesVector(m.UNIT_X,aot),r=-m.dot(o,n)/m.dot(o,i),s=m.add(n,m.multiplyByScalar(i,r,s_e),s_e);e.cameraToWorldCoordinatesPoint(s,s),n=e.cameraToWorldCoordinatesPoint(e.position,cot);let a=Math.tan(e.frustum.fovy*.5),c=e.frustum.aspectRatio*a,u=m.magnitude(m.subtract(n,s,lot)),f=c*u,d=a*u,p=e._maxCoord.x,g=e._maxCoord.y,h=Math.max(f-p,p),A=Math.max(d-g,g);if(n.z<-h||n.z>h||n.y<-A||n.y>A){let x=s.y<-h||s.y>h,C=s.z<-A||s.z>A;if(x||C)return sot(e,n,s,h,A,t)}}Qt.prototype.createCorrectPositionTween=function(e){if(this._mode===ne.COLUMBUS_VIEW)return uot(this,e)};var fot=new m,Ns={destination:void 0,heading:void 0,pitch:void 0,roll:void 0,duration:void 0,complete:void 0,cancel:void 0,endTransform:void 0,maximumHeight:void 0,easingFunction:void 0};Qt.prototype.cancelFlight=function(){l(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)};Qt.prototype.completeFlight=function(){if(l(this._currentFlight)){this._currentFlight.cancelTween();let e={destination:void 0,orientation:{heading:void 0,pitch:void 0,roll:void 0}};e.destination=Ns.destination,e.orientation.heading=Ns.heading,e.orientation.pitch=Ns.pitch,e.orientation.roll=Ns.roll,this.setView(e),l(this._currentFlight.complete)&&this._currentFlight.complete(),this._currentFlight=void 0}};Qt.prototype.flyTo=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.destination;if(this._mode===ne.MORPHING)return;this.cancelFlight();let i=t instanceof le;i&&(t=this.getRectangleCameraCoordinates(t,fot));let o=y(e.orientation,y.EMPTY_OBJECT);if(l(o.direction)&&(o=__e(this,t,o,Hj.orientation)),l(e.duration)&&e.duration<=0){let f=Hj;f.destination=e.destination,f.orientation.heading=o.heading,f.orientation.pitch=o.pitch,f.orientation.roll=o.roll,f.convert=e.convert,f.endTransform=e.endTransform,this.setView(f),typeof e.complete=="function"&&e.complete();return}let r=this,s;Ns.destination=t,Ns.heading=o.heading,Ns.pitch=o.pitch,Ns.roll=o.roll,Ns.duration=e.duration,Ns.complete=function(){s===r._currentFlight&&(r._currentFlight=void 0),l(e.complete)&&e.complete()},Ns.cancel=e.cancel,Ns.endTransform=e.endTransform,Ns.convert=i?!1:e.convert,Ns.maximumHeight=e.maximumHeight,Ns.pitchAdjustHeight=e.pitchAdjustHeight,Ns.flyOverLongitude=e.flyOverLongitude,Ns.flyOverLongitudeWeight=e.flyOverLongitudeWeight,Ns.easingFunction=e.easingFunction;let a=this._scene,c=_L.createTween(a,Ns);if(c.duration===0){typeof c.complete=="function"&&c.complete();return}s=a.tweens.add(c),this._currentFlight=s;let u=this._scene.preloadFlightCamera;this._mode!==ne.SCENE2D&&(l(u)||(u=Qt.clone(this)),u.setView({destination:t,orientation:o}),this._scene.preloadFlightCullingVolume=u.frustum.computeCullingVolume(u.positionWC,u.directionWC,u.upWC))};function dot(e,t){let n=e.frustum,i=Math.tan(n.fovy*.5),o=n.aspectRatio*i;return Math.max(t/o,t/i)}function mot(e,t){let n=e.frustum,i=n.offCenterFrustum;l(i)&&(n=i);let o,r,s=n.right/n.top,a=t*s;return t>a?(o=t,r=o/s):(r=t,o=a),Math.max(o,r)*1.5}var hot=100;function E_e(e,t,n){n=du.clone(l(n)?n:Qt.DEFAULT_OFFSET);let i=e._scene.screenSpaceCameraController.minimumZoomDistance,o=e._scene.screenSpaceCameraController.maximumZoomDistance,r=n.range;if(!l(r)||r===0){let s=t.radius;s===0?n.range=hot:e.frustum instanceof tn||e._mode===ne.SCENE2D?n.range=mot(e,s):n.range=dot(e,s),n.range=P.clamp(n.range,i,o)}return n}Qt.prototype.viewBoundingSphere=function(e,t){t=E_e(this,e,t),this.lookAt(e.center,t)};var pot=new B,_ot=new m,got=new m,yot=new m,Aot=new m,xot=new re,Cot=new Ne,Tot=new Z;Qt.prototype.flyToBoundingSphere=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=this._mode===ne.SCENE2D||this._mode===ne.COLUMBUS_VIEW;this._setTransform(B.IDENTITY);let i=E_e(this,e,t.offset),o;n?o=m.multiplyByScalar(m.UNIT_Z,i.range,_ot):o=C_e(i.heading,i.pitch,i.range);let r=Rt.eastNorthUpToFixedFrame(e.center,oe.WGS84,pot);B.multiplyByPoint(r,o,o);let s,a;if(!n){if(s=m.subtract(e.center,o,got),m.normalize(s,s),a=B.multiplyByPointAsVector(r,m.UNIT_Z,yot),1-Math.abs(m.dot(s,a))<P.EPSILON6){let u=Ne.fromAxisAngle(s,i.heading,Cot),f=Z.fromQuaternion(u,Tot);m.fromCartesian4(B.getColumn(r,1,xot),a),Z.multiplyByVector(f,a,a)}let c=m.cross(s,a,Aot);m.cross(c,s,a),m.normalize(a,a)}this.flyTo({destination:o,orientation:{direction:s,up:a},duration:t.duration,complete:t.complete,cancel:t.cancel,endTransform:t.endTransform,maximumHeight:t.maximumHeight,easingFunction:t.easingFunction,flyOverLongitude:t.flyOverLongitude,flyOverLongitudeWeight:t.flyOverLongitudeWeight,pitchAdjustHeight:t.pitchAdjustHeight})};var a_e=new m,c_e=new m,kj=new m,l_e=new m,yL=[new m,new m,new m,new m];function Eot(e,t){let n=t.radii,i=e.positionWC,o=m.multiplyComponents(t.oneOverRadii,i,a_e),r=m.magnitude(o),s=m.normalize(o,c_e),a,c;m.equalsEpsilon(s,m.UNIT_Z,P.EPSILON10)?(a=new m(0,1,0),c=new m(0,0,1)):(a=m.normalize(m.cross(m.UNIT_Z,s,kj),kj),c=m.normalize(m.cross(s,a,l_e),l_e));let u=Math.sqrt(m.magnitudeSquared(o)-1),f=m.multiplyByScalar(s,1/r,a_e),d=u/r,p=m.multiplyByScalar(a,d,c_e),g=m.multiplyByScalar(c,d,kj),h=m.add(f,g,yL[0]);m.subtract(h,p,h),m.multiplyComponents(n,h,h);let A=m.subtract(f,g,yL[1]);m.subtract(A,p,A),m.multiplyComponents(n,A,A);let x=m.subtract(f,g,yL[2]);m.add(x,p,x),m.multiplyComponents(n,x,x);let C=m.add(f,g,yL[3]);return m.add(C,p,C),m.multiplyComponents(n,C,C),yL}var zj=new H,bot=new m,Vy=[new he,new he,new he,new he];function Z4(e,t,n,i,o,r){zj.x=e,zj.y=t;let s=i.pickEllipsoid(zj,o,bot);return l(s)?(Vy[n]=o.cartesianToCartographic(s,Vy[n]),1):(Vy[n]=o.cartesianToCartographic(r[n],Vy[n]),0)}Qt.prototype.computeViewRectangle=function(e,t){e=y(e,oe.WGS84);let n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),i=new ae(m.ZERO,e.maximumRadius);if(n.computeVisibility(i)===$t.OUTSIDE)return;let r=this._scene.canvas,s=r.clientWidth,a=r.clientHeight,c=0,u=Eot(this,e);if(c+=Z4(0,0,0,this,e,u),c+=Z4(0,a,1,this,e,u),c+=Z4(s,a,2,this,e,u),c+=Z4(s,0,3,this,e,u),c<2)return le.MAX_VALUE;t=le.fromCartographicArray(Vy,t);let f=0,d=Vy[3].longitude;for(let p=0;p<4;++p){let g=Vy[p].longitude,h=Math.abs(g-d);h>P.PI?f+=P.TWO_PI-h:f+=h,d=g}return P.equalsEpsilon(Math.abs(f),P.TWO_PI,P.EPSILON9)&&(t.west=-P.PI,t.east=P.PI,Vy[0].latitude>=0?t.north=P.PI_OVER_TWO:t.south=-P.PI_OVER_TWO),t};Qt.prototype.switchToPerspectiveFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof bi)return;let e=this._scene;this.frustum=new bi,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60)};Qt.prototype.switchToOrthographicFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof tn)return;let e=h_e(this),t=this._scene;this.frustum=new tn,this.frustum.aspectRatio=t.drawingBufferWidth/t.drawingBufferHeight,this.frustum.width=e};Qt.clone=function(e,t){return l(t)||(t=new Qt(e._scene)),m.clone(e.position,t.position),m.clone(e.direction,t.direction),m.clone(e.up,t.up),m.clone(e.right,t.right),B.clone(e._transform,t.transform),t._transformChanged=!0,t.frustum=e.frustum.clone(),t};var so=Qt;function Sot(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}var Nf=Sot;var D_e=So(Vl(),1),b_e=576,wot=100,AL="#ffffff",Yj="#48b";function I_e(e,t){this.credit=e,this.count=y(t,1)}function P_e(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i];if(It.equals(o,t))return!0}return!1}function vot(e){let t=e._previousCesiumCredit,n=e._currentCesiumCredit;It.equals(n,t)||(l(t)&&e._cesiumCreditContainer.removeChild(t.element),l(n)&&e._cesiumCreditContainer.appendChild(n.element),e._previousCesiumCredit=n)}var O_e="cesium-credit-delimiter";function S_e(e){let t=document.createElement("span");return t.textContent=e,t.className=O_e,t}function w_e(e,t){if(l(t)){let n=document.createElement(t);n._creditId=e._creditId,n.appendChild(e),e=n}return e}function v_e(e,t,n,i){let o=e.childNodes,r=-1;t.sort(function(s,a){return a.count-s.count});for(let s=0;s<t.length;++s){let a=t[s].credit;if(l(a)){if(r=s,l(n)&&(r*=2,s>0)){let u=r-1;if(o.length<=u)e.appendChild(S_e(n));else{let f=o[u];f.className!==O_e&&e.replaceChild(S_e(n),f)}}let c=a.element;if(o.length<=r)e.appendChild(w_e(c,i));else{let u=o[r];u._creditId!==a._id&&e.replaceChild(w_e(c,i),u)}}}for(++r;r<o.length;)e.removeChild(o[r])}function Dot(e){let t=e._lightboxCredits,n=e.viewport.clientWidth,i=e.viewport.clientHeight;n!==e._lastViewportWidth&&(n<b_e?(t.className="cesium-credit-lightbox cesium-credit-lightbox-mobile",t.style.marginTop="0"):(t.className="cesium-credit-lightbox cesium-credit-lightbox-expanded",t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`),e._lastViewportWidth=n),n>=b_e&&i!==e._lastViewportHeight&&(t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`,e._lastViewportHeight=i)}function uc(e,t){let n=`${e} {`;for(let i in t)t.hasOwnProperty(i)&&(n+=`${i}: ${t[i]}; `);return n+=` } +`,n}function Iot(e){let t="";t+=uc(".cesium-credit-lightbox-overlay",{display:"none","z-index":"1",position:"absolute",top:"0",left:"0",width:"100%",height:"100%","background-color":"rgba(80, 80, 80, 0.8)"}),t+=uc(".cesium-credit-lightbox",{"background-color":"#303336",color:AL,position:"relative","min-height":`${wot}px`,margin:"auto"}),t+=uc(".cesium-credit-lightbox > ul > li a, .cesium-credit-lightbox > ul > li a:visited",{color:AL}),t+=uc(".cesium-credit-lightbox > ul > li a:hover",{color:Yj}),t+=uc(".cesium-credit-lightbox.cesium-credit-lightbox-expanded",{border:"1px solid #444","border-radius":"5px","max-width":"370px"}),t+=uc(".cesium-credit-lightbox.cesium-credit-lightbox-mobile",{height:"100%",width:"100%"}),t+=uc(".cesium-credit-lightbox-title",{padding:"20px 20px 0 20px"}),t+=uc(".cesium-credit-lightbox-close",{"font-size":"18pt",cursor:"pointer",position:"absolute",top:"0",right:"6px",color:AL}),t+=uc(".cesium-credit-lightbox-close:hover",{color:Yj}),t+=uc(".cesium-credit-lightbox > ul",{margin:"0",padding:"12px 20px 12px 40px","font-size":"13px"}),t+=uc(".cesium-credit-lightbox > ul > li",{"padding-bottom":"6px"}),t+=uc(".cesium-credit-lightbox > ul > li *",{padding:"0",margin:"0"}),t+=uc(".cesium-credit-expand-link",{"padding-left":"5px",cursor:"pointer","text-decoration":"underline",color:AL}),t+=uc(".cesium-credit-expand-link:hover",{color:Yj}),t+=uc(".cesium-credit-text",{color:AL}),t+=uc(".cesium-credit-textContainer *, .cesium-credit-logoContainer *",{display:"inline"});function n(r){if(r.shadowRoot)return r.shadowRoot;if(r.getRootNode){let s=r.getRootNode();if(s instanceof ShadowRoot)return s}}let i=y(n(e),document.head),o=document.createElement("style");o.innerHTML=t,i.appendChild(o)}function Oo(e,t,n){let i=this;n=y(n,document.body);let o=document.createElement("div");o.className="cesium-credit-lightbox-overlay",n.appendChild(o);let r=document.createElement("div");r.className="cesium-credit-lightbox",o.appendChild(r);function s(h){r.contains(h.target)||i.hideLightbox()}o.addEventListener("click",s,!1);let a=document.createElement("div");a.className="cesium-credit-lightbox-title",a.textContent="Data provided by:",r.appendChild(a);let c=document.createElement("a");c.onclick=this.hideLightbox.bind(this),c.innerHTML="×",c.className="cesium-credit-lightbox-close",r.appendChild(c);let u=document.createElement("ul");r.appendChild(u);let f=document.createElement("div");f.className="cesium-credit-logoContainer",f.style.display="inline",e.appendChild(f);let d=document.createElement("div");d.className="cesium-credit-textContainer",d.style.display="inline",e.appendChild(d);let p=document.createElement("a");p.className="cesium-credit-expand-link",p.onclick=this.showLightbox.bind(this),p.textContent="Data attribution",e.appendChild(p),Iot(e);let g=It.clone(Oo.cesiumCredit);this._delimiter=y(t," \u2022 "),this._screenContainer=d,this._cesiumCreditContainer=f,this._lastViewportHeight=void 0,this._lastViewportWidth=void 0,this._lightboxCredits=r,this._creditList=u,this._lightbox=o,this._hideLightbox=s,this._expandLink=p,this._expanded=!1,this._staticCredits=[],this._cesiumCredit=g,this._previousCesiumCredit=void 0,this._currentCesiumCredit=g,this._creditDisplayElementPool=[],this._creditDisplayElementIndex=0,this._currentFrameCredits={screenCredits:new Et,lightboxCredits:new Et},this._defaultCredit=void 0,this.viewport=n,this.container=e}function M_e(e,t,n,i){i=y(i,1);let o=t.get(n.id);if(l(o))o.count<Number.MAX_VALUE&&(o.count+=i);else{let r=e._creditDisplayElementPool,s=e._creditDisplayElementPoolIndex;s<r.length?(o=r[s],o.credit=n,o.count=i):(o=new I_e(n,i),r.push(o)),++e._creditDisplayElementPoolIndex,t.set(n.id,o)}}Oo.prototype.addCredit=function(e){$("CreditDisplay.addCredit","CreditDisplay.addCredit was deprecated in CesiumJS 1.105. It will be removed in CesiumJS 1.107. Use CreditDisplay.addCreditToNextFrame instead."),this.addCreditToNextFrame(e)};Oo.prototype.addCreditToNextFrame=function(e){if(e._isIon){l(this._defaultCredit)||(this._defaultCredit=It.clone(R_e())),this._currentCesiumCredit=this._defaultCredit;return}let t;e.showOnScreen?t=this._currentFrameCredits.screenCredits:t=this._currentFrameCredits.lightboxCredits,M_e(this,t,e)};Oo.prototype.addDefaultCredit=function(e){$("CreditDisplay.addDefaultCredit","CreditDisplay.addDefaultCredit was deprecated in CesiumJS 1.105. It will be removed in CesiumJS 1.107. Use CreditDisplay.addStaticCredit instead.");let t=this._staticCredits;P_e(t,e)||(e.showOnScreen=!0,t.push(e))};Oo.prototype.addStaticCredit=function(e){let t=this._staticCredits;P_e(t,e)||t.push(e)};Oo.prototype.removeStaticCredit=function(e){let t=this._staticCredits,n=t.indexOf(e);n!==-1&&t.splice(n,1)};Oo.prototype.removeDefaultCredit=function(e){$("CreditDisplay.removeDefaultCredit","CreditDisplay.removeDefaultCredit was deprecated in CesiumJS 1.105. It will be removed in CesiumJS 1.107. Use CreditDisplay.addStaticCredit instead."),this.removeStaticCredit(e)};Oo.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0};Oo.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1};Oo.prototype.update=function(){this._expanded&&Dot(this)};Oo.prototype.beginFrame=function(){let e=this._currentFrameCredits;this._creditDisplayElementPoolIndex=0;let t=e.screenCredits,n=e.lightboxCredits;t.removeAll(),n.removeAll();let i=this._staticCredits;for(let o=0;o<i.length;++o){let r=i[o],s=r.showOnScreen?t:n;r._isIon&&It.equals(Oo.cesiumCredit,this._cesiumCredit)||M_e(this,s,r,Number.MAX_VALUE)}It.equals(Oo.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=It.clone(Oo.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit};Oo.prototype.endFrame=function(){let e=this._currentFrameCredits.screenCredits.values;v_e(this._screenContainer,e,this._delimiter,void 0);let t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",v_e(this._creditList,t,void 0,"li"),vot(this)};Oo.prototype.destroy=function(){return this._lightbox.removeEventListener("click",this._hideLightbox,!1),this.container.removeChild(this._cesiumCreditContainer),this.container.removeChild(this._screenContainer),this.container.removeChild(this._expandLink),this.viewport.removeChild(this._lightbox),ue(this)};Oo.prototype.isDestroyed=function(){return!1};Oo._cesiumCredit=void 0;Oo._cesiumCreditInitialized=!1;var nz;function R_e(){if(!l(nz)){let e=en("Assets/Images/ion-credit.png");e.indexOf("http://")!==0&&e.indexOf("https://")!==0&&e.indexOf("data:")!==0&&(e=new D_e.default(e).path()),nz=new It(`<a href="https://cesium.com/" target="_blank"><img src="${e}" title="Cesium ion"/></a>`,!0)}return Oo._cesiumCreditInitialized||(Oo._cesiumCredit=nz,Oo._cesiumCreditInitialized=!0),nz}Object.defineProperties(Oo,{cesiumCredit:{get:function(){return R_e(),Oo._cesiumCredit},set:function(e){Oo._cesiumCredit=e,Oo._cesiumCreditInitialized=!0}}});Oo.CreditDisplayElement=I_e;var xL=Oo;var iz=0,Pot=1;function Yx(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e._drawNearPlane,!0),s,a;t instanceof bi?(s=iz,a=bi.packedLength):t instanceof tn&&(s=Pot,a=tn.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=m.clone(i),this._orientation=Ne.clone(n),this._drawNearPlane=r,this._vertexFormat=o,this._workerName="createFrustumGeometry",this.packedLength=2+a+m.packedLength+Ne.packedLength+Pe.packedLength}Yx.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===iz?(bi.pack(o,t,n),n+=bi.packedLength):(tn.pack(o,t,n),n+=tn.packedLength),m.pack(e._origin,t,n),n+=m.packedLength,Ne.pack(e._orientation,t,n),n+=Ne.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n]=e._drawNearPlane?1:0,t};var Oot=new bi,Mot=new tn,Rot=new Ne,Bot=new m,Lot=new Pe;Yx.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===iz?(o=bi.unpack(e,t,Oot),t+=bi.packedLength):(o=tn.unpack(e,t,Mot),t+=tn.packedLength);let r=m.unpack(e,t,Bot);t+=m.packedLength;let s=Ne.unpack(e,t,Rot);t+=Ne.packedLength;let a=Pe.unpack(e,t,Lot);t+=Pe.packedLength;let c=e[t]===1;if(!l(n))return new Yx({frustum:o,origin:r,orientation:s,vertexFormat:a,_drawNearPlane:c});let u=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(u),n._frustumType=i,n._origin=m.clone(r,n._origin),n._orientation=Ne.clone(s,n._orientation),n._vertexFormat=Pe.clone(a,n._vertexFormat),n._drawNearPlane=c,n};function lS(e,t,n,i,o,r,s,a){let c=e/3*2;for(let u=0;u<4;++u)l(t)&&(t[e]=r.x,t[e+1]=r.y,t[e+2]=r.z),l(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),l(i)&&(i[e]=a.x,i[e+1]=a.y,i[e+2]=a.z),e+=3;o[c]=0,o[c+1]=0,o[c+2]=1,o[c+3]=0,o[c+4]=1,o[c+5]=1,o[c+6]=0,o[c+7]=1}var Not=new Z,Fot=new B,qj=new B,B_e=new m,L_e=new m,N_e=new m,Uot=new m,Vot=new m,kot=new m,ky=new Array(3),CL=new Array(4);CL[0]=new re(-1,-1,1,1);CL[1]=new re(1,-1,1,1);CL[2]=new re(1,1,1,1);CL[3]=new re(-1,1,1,1);var F_e=new Array(4);for(let e=0;e<4;++e)F_e[e]=new re;Yx._computeNearFarPlanes=function(e,t,n,i,o,r,s,a){let c=Z.fromQuaternion(t,Not),u=y(r,B_e),f=y(s,L_e),d=y(a,N_e);u=Z.getColumn(c,0,u),f=Z.getColumn(c,1,f),d=Z.getColumn(c,2,d),m.normalize(u,u),m.normalize(f,f),m.normalize(d,d),m.negate(u,u);let p=B.computeView(e,d,f,u,Fot),g,h,A=i.projectionMatrix;if(n===iz){let x=B.multiply(A,p,qj);h=B.inverse(x,qj)}else g=B.inverseTransformation(p,qj);l(h)?(ky[0]=i.near,ky[1]=i.far):(ky[0]=0,ky[1]=i.near,ky[2]=i.far);for(let x=0;x<2;++x)for(let C=0;C<4;++C){let T=re.clone(CL[C],F_e[C]);if(l(h)){T=B.multiplyByVector(h,T,T);let E=1/T.w;m.multiplyByScalar(T,E,T),m.subtract(T,e,T),m.normalize(T,T);let S=m.dot(d,T);m.multiplyByScalar(T,ky[x]/S,T),m.add(T,e,T)}else{let E=i.offCenterFrustum;l(E)&&(i=E);let S=ky[x],v=ky[x+1];T.x=(T.x*(i.right-i.left)+i.left+i.right)*.5,T.y=(T.y*(i.top-i.bottom)+i.bottom+i.top)*.5,T.z=(T.z*(S-v)-S-v)*.5,T.w=1,B.multiplyByVector(g,T,T)}o[12*x+C*3]=T.x,o[12*x+C*3+1]=T.y,o[12*x+C*3+2]=T.z}};Yx.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=e._vertexFormat,a=r?6:5,c=new Float64Array(3*4*6);Yx._computeNearFarPlanes(i,o,t,n,c);let u=3*4*2;c[u]=c[3*4],c[u+1]=c[3*4+1],c[u+2]=c[3*4+2],c[u+3]=c[0],c[u+4]=c[1],c[u+5]=c[2],c[u+6]=c[3*3],c[u+7]=c[3*3+1],c[u+8]=c[3*3+2],c[u+9]=c[3*7],c[u+10]=c[3*7+1],c[u+11]=c[3*7+2],u+=3*4,c[u]=c[3*5],c[u+1]=c[3*5+1],c[u+2]=c[3*5+2],c[u+3]=c[3],c[u+4]=c[3+1],c[u+5]=c[3+2],c[u+6]=c[0],c[u+7]=c[1],c[u+8]=c[2],c[u+9]=c[3*4],c[u+10]=c[3*4+1],c[u+11]=c[3*4+2],u+=3*4,c[u]=c[3],c[u+1]=c[3+1],c[u+2]=c[3+2],c[u+3]=c[3*5],c[u+4]=c[3*5+1],c[u+5]=c[3*5+2],c[u+6]=c[3*6],c[u+7]=c[3*6+1],c[u+8]=c[3*6+2],c[u+9]=c[3*2],c[u+10]=c[3*2+1],c[u+11]=c[3*2+2],u+=3*4,c[u]=c[3*2],c[u+1]=c[3*2+1],c[u+2]=c[3*2+2],c[u+3]=c[3*6],c[u+4]=c[3*6+1],c[u+5]=c[3*6+2],c[u+6]=c[3*7],c[u+7]=c[3*7+1],c[u+8]=c[3*7+2],c[u+9]=c[3*3],c[u+10]=c[3*3+1],c[u+11]=c[3*3+2],r||(c=c.subarray(3*4));let f=new hn({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})});if(l(s.normal)||l(s.tangent)||l(s.bitangent)||l(s.st)){let p=l(s.normal)?new Float32Array(12*a):void 0,g=l(s.tangent)?new Float32Array(3*4*a):void 0,h=l(s.bitangent)?new Float32Array(3*4*a):void 0,A=l(s.st)?new Float32Array(2*4*a):void 0,x=B_e,C=L_e,T=N_e,E=m.negate(x,Uot),S=m.negate(C,Vot),v=m.negate(T,kot);u=0,r&&(lS(u,p,g,h,A,v,x,C),u+=3*4),lS(u,p,g,h,A,T,E,C),u+=3*4,lS(u,p,g,h,A,E,v,C),u+=3*4,lS(u,p,g,h,A,S,v,E),u+=3*4,lS(u,p,g,h,A,x,T,C),u+=3*4,lS(u,p,g,h,A,C,T,E),l(p)&&(f.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),l(g)&&(f.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),l(h)&&(f.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:h})),l(A)&&(f.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:A}))}let d=new Uint16Array(6*a);for(let p=0;p<a;++p){let g=p*6,h=p*4;d[g]=h,d[g+1]=h+1,d[g+2]=h+2,d[g+3]=h,d[g+4]=h+2,d[g+5]=h+3}return new ft({attributes:f,indices:d,primitiveType:Le.TRIANGLES,boundingSphere:ae.fromVertices(c)})};var qx=Yx;var Xj=0,zot=1;function TL(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e._drawNearPlane,!0),r,s;t instanceof bi?(r=Xj,s=bi.packedLength):t instanceof tn&&(r=zot,s=tn.packedLength),this._frustumType=r,this._frustum=t.clone(),this._origin=m.clone(i),this._orientation=Ne.clone(n),this._drawNearPlane=o,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+s+m.packedLength+Ne.packedLength}TL.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===Xj?(bi.pack(o,t,n),n+=bi.packedLength):(tn.pack(o,t,n),n+=tn.packedLength),m.pack(e._origin,t,n),n+=m.packedLength,Ne.pack(e._orientation,t,n),n+=Ne.packedLength,t[n]=e._drawNearPlane?1:0,t};var Hot=new bi,Got=new tn,Wot=new Ne,jot=new m;TL.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===Xj?(o=bi.unpack(e,t,Hot),t+=bi.packedLength):(o=tn.unpack(e,t,Got),t+=tn.packedLength);let r=m.unpack(e,t,jot);t+=m.packedLength;let s=Ne.unpack(e,t,Wot);t+=Ne.packedLength;let a=e[t]===1;if(!l(n))return new TL({frustum:o,origin:r,orientation:s,_drawNearPlane:a});let c=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(c),n._frustumType=i,n._origin=m.clone(r,n._origin),n._orientation=Ne.clone(s,n._orientation),n._drawNearPlane=a,n};TL.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=new Float64Array(3*4*2);qx._computeNearFarPlanes(i,o,t,n,s);let a=new hn({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),c,u,f=r?2:1,d=new Uint16Array(8*(f+1)),p=r?0:1;for(;p<2;++p)c=r?p*8:0,u=p*4,d[c]=u,d[c+1]=u+1,d[c+2]=u+1,d[c+3]=u+2,d[c+4]=u+2,d[c+5]=u+3,d[c+6]=u+3,d[c+7]=u;for(p=0;p<2;++p)c=(f+p)*8,u=p*4,d[c]=u,d[c+1]=u+4,d[c+2]=u+1,d[c+3]=u+5,d[c+4]=u+2,d[c+5]=u+6,d[c+6]=u+3,d[c+7]=u+7;return new ft({attributes:a,indices:d,primitiveType:Le.LINES,boundingSphere:ae.fromVertices(s)})};var EL=TL;function oz(e){e=y(e,y.EMPTY_OBJECT),this._camera=e.camera,this._frustumSplits=e.frustumSplits,this._color=y(e.color,z.CYAN),this._updateOnChange=y(e.updateOnChange,!0),this.show=y(e.show,!0),this.id=e.id,this._id=void 0,this._outlinePrimitives=[],this._planesPrimitives=[]}var Yot=new m,qot=new Z,Xot=new Ne,Kot=new bi,Jot=new jc,Zot=new tn,Qot=new xr,$ot=new z,ert=[1,1e5];oz.prototype.update=function(e){if(!this.show)return;let t=this._planesPrimitives,n=this._outlinePrimitives,i,o;if(this._updateOnChange){for(o=t.length,i=0;i<o;++i)n[i]=n[i]&&n[i].destroy(),t[i]=t[i]&&t[i].destroy();t.length=0,n.length=0}if(t.length===0){let r=this._camera,s=r.frustum,a;s instanceof bi?a=Kot:s instanceof jc?a=Jot:s instanceof tn?a=Zot:a=Qot,a=s.clone(a);let c,u=this._frustumSplits;!l(u)||u.length<=1?(u=ert,u[0]=this._camera.frustum.near,u[1]=this._camera.frustum.far,c=1):c=u.length-1;let f=r.positionWC,d=r.directionWC,p=r.upWC,g=r.rightWC;g=m.negate(g,Yot);let h=qot;Z.setColumn(h,0,g,h),Z.setColumn(h,1,p,h),Z.setColumn(h,2,d,h);let A=Ne.fromRotationMatrix(h,Xot);for(t.length=n.length=c,i=0;i<c;++i)a.near=u[i],a.far=u[i+1],t[i]=new wn({geometryInstances:new Tt({geometry:new qx({origin:f,orientation:A,frustum:a,_drawNearPlane:i===0}),attributes:{color:Vt.fromColor(z.fromAlpha(this._color,.1,$ot))},id:this.id,pickPrimitive:this}),appearance:new rn({translucent:!0,flat:!0}),asynchronous:!1}),n[i]=new wn({geometryInstances:new Tt({geometry:new EL({origin:f,orientation:A,frustum:a,_drawNearPlane:i===0}),attributes:{color:Vt.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new rn({translucent:!1,flat:!0}),asynchronous:!1})}for(o=t.length,i=0;i<o;++i)n[i].update(e),t[i].update(e)};oz.prototype.isDestroyed=function(){return!1};oz.prototype.destroy=function(){let e=this._planesPrimitives.length;for(let t=0;t<e;++t)this._outlinePrimitives[t]=this._outlinePrimitives[t]&&this._outlinePrimitives[t].destroy(),this._planesPrimitives[t]=this._planesPrimitives[t]&&this._planesPrimitives[t].destroy();return ue(this)};var Th=oz;var bL=`in vec4 positionEC; + +void main() +{ + vec3 position; + vec3 direction; + if (czm_orthographicIn3D == 1.0) + { + vec2 uv = (gl_FragCoord.xy - czm_viewport.xy) / czm_viewport.zw; + vec2 minPlane = vec2(czm_frustumPlanes.z, czm_frustumPlanes.y); // left, bottom + vec2 maxPlane = vec2(czm_frustumPlanes.w, czm_frustumPlanes.x); // right, top + position = vec3(mix(minPlane, maxPlane, uv), 0.0); + direction = vec3(0.0, 0.0, -1.0); + } + else + { + position = vec3(0.0); + direction = normalize(positionEC.xyz); + } + + czm_ray ray = czm_ray(position, direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + if (!czm_isEmpty(intersection)) + { + out_FragColor = vec4(1.0, 1.0, 0.0, 1.0); + } + else + { + discard; + } + + czm_writeLogDepth(); +} +`;var SL=`in vec4 position; + +out vec4 positionEC; + +void main() +{ + positionEC = czm_modelView * position; + gl_Position = czm_projection * positionEC; + + czm_vertexLogDepth(); +} +`;function vL(e){this._rs=void 0,this._sp=void 0,this._va=void 0,this._command=void 0,this._mode=void 0,this._useLogDepth=!1,this._ellipsoidOffset=y(e,0)}var wL=Ht.supportsTypedArrays()?new Float32Array(12):[],U_e=new m,V_e=new m,Kj=new m,k_e=new m,rz=new m;function trt(e,t){let n=e.radii,i=t.camera,o,r,s;if(i.frustum instanceof tn)o=m.ZERO,r=i.rightWC,s=i.upWC;else{let d=i.positionWC,p=m.multiplyComponents(e.oneOverRadii,d,U_e),g=m.normalize(p,V_e),h=m.normalize(m.cross(m.UNIT_Z,p,Kj),Kj),A=m.normalize(m.cross(g,h,k_e),k_e),x=m.magnitude(p),C=Math.sqrt(x*x-1);o=m.multiplyByScalar(g,1/x,U_e);let T=C/x;r=m.multiplyByScalar(h,T,V_e),s=m.multiplyByScalar(A,T,Kj)}let a=m.add(o,s,rz);m.subtract(a,r,a),m.multiplyComponents(n,a,a),m.pack(a,wL,0);let c=m.subtract(o,s,rz);m.subtract(c,r,c),m.multiplyComponents(n,c,c),m.pack(c,wL,3);let u=m.add(o,s,rz);m.add(u,r,u),m.multiplyComponents(n,u,u),m.pack(u,wL,6);let f=m.subtract(o,s,rz);return m.add(f,r,f),m.multiplyComponents(n,f,f),m.pack(f,wL,9),wL}vL.prototype.update=function(e){if(this._mode=e.mode,e.mode!==ne.SCENE3D)return;let t=e.context,n=e.mapProjection.ellipsoid.radii,i=new oe(n.x+this._ellipsoidOffset,n.y+this._ellipsoidOffset,n.z+this._ellipsoidOffset),o=e.useLogDepth;if(l(this._command)||(this._rs=ze.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new it({renderState:this._rs,boundingVolume:new ae(m.ZERO,i.maximumRadius),pass:be.OPAQUE,owner:this})),!l(this._sp)||this._useLogDepth!==o){this._useLogDepth=o;let s=new He({sources:[SL]}),a=new He({sources:[bL]});o&&(a.defines.push("LOG_DEPTH"),s.defines.push("LOG_DEPTH")),this._sp=Kt.replaceCache({shaderProgram:this._sp,context:t,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}let r=trt(i,e);if(l(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(r);else{let s=new ft({attributes:{position:new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})},indices:[0,1,2,2,1,3],primitiveType:Le.TRIANGLES});this._va=oi.fromGeometry({context:t,geometry:s,attributeLocations:{position:0},bufferUsage:Fe.DYNAMIC_DRAW}),this._command.vertexArray=this._va}};vL.prototype.execute=function(e,t){this._mode===ne.SCENE3D&&this._command.execute(e,t)};vL.prototype.isDestroyed=function(){return!1};vL.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()};var DL=vL;function IL(){}var nrt=/\bgl_FragDepth\b/,irt=/\bdiscard\b/;function ort(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"depthOnly");if(!l(n)){let i=t._attributeLocations,o=t.fragmentShaderSource,r,s=!1,a=o.sources,c=a.length;for(r=0;r<c;++r)if(nrt.test(a[r])||irt.test(a[r])){s=!0;break}let u=!1,f=o.defines;for(c=f.length,r=0;r<c;++r)if(f[r]==="LOG_DEPTH"){u=!0;break}let d;!s&&!u?(d=`void main() +{ + out_FragColor = vec4(1.0); +} +`,o=new He({sources:[d]})):!s&&u&&(d=`void main() +{ + out_FragColor = vec4(1.0); + czm_writeLogDepth(); +} +`,o=new He({defines:["LOG_DEPTH"],sources:[d]})),n=e.shaderCache.createDerivedShaderProgram(t,"depthOnly",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:i})}return n}function rrt(e,t){let n=e._depthOnlyRenderStateCache,i=n[t.id];if(!l(i)){let o=ze.getState(t);o.depthMask=!0,o.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i=ze.fromCache(o),n[t.id]=i}return i}IL.createDepthOnlyDerivedCommand=function(e,t,n,i){l(i)||(i={});let o,r;return l(i.depthOnlyCommand)&&(o=i.depthOnlyCommand.shaderProgram,r=i.depthOnlyCommand.renderState),i.depthOnlyCommand=it.shallowClone(t,i.depthOnlyCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.depthOnlyCommand.shaderProgram=ort(n,t.shaderProgram),i.depthOnlyCommand.renderState=rrt(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.depthOnlyCommand.shaderProgram=o,i.depthOnlyCommand.renderState=r),i};var srt=/\s+czm_writeLogDepth\(/,art=/\s+czm_vertexLogDepth\(/;function crt(e,t){if(t.fragmentShaderSource.defines.indexOf("LOG_DEPTH_READ_ONLY")>=0)return t;let i=e.shaderCache.getDerivedShaderProgram(t,"logDepth");if(!l(i)){let o=t._attributeLocations,r=t.vertexShaderSource.clone(),s=t.fragmentShaderSource.clone();r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("LOG_DEPTH"),s.defines=l(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");let a,c,u=!1,f=r.sources,d=f.length;for(a=0;a<d;++a)if(art.test(f[a])){u=!0;break}if(!u){for(a=0;a<d;++a)f[a]=He.replaceMain(f[a],"czm_log_depth_main");c=` + +void main() +{ + czm_log_depth_main(); + czm_vertexLogDepth(); +} +`,f.push(c)}for(f=s.sources,d=f.length,u=!1,a=0;a<d;++a)srt.test(f[a])&&(u=!0);s.defines.indexOf("LOG_DEPTH_WRITE")!==-1&&(u=!0);let p="";if(!u){for(a=0;a<d;a++)f[a]=He.replaceMain(f[a],"czm_log_depth_main");p+=` +void main() +{ + czm_log_depth_main(); + czm_writeLogDepth(); +} +`}f.push(p),i=e.shaderCache.createDerivedShaderProgram(t,"logDepth",{vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o})}return i}IL.createLogDepthCommand=function(e,t,n){l(n)||(n={});let i;return l(n.command)&&(i=n.command.shaderProgram),n.command=it.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=crt(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};function lrt(e,t,n){let i=e.shaderCache.getDerivedShaderProgram(t,"pick");if(!l(i)){let o=t._attributeLocations,r=t.fragmentShaderSource,s=r.sources,a=s.length,c=`void main() +{ + czm_non_pick_main(); + if (out_FragColor.a == 0.0) { + discard; + } + out_FragColor = ${n}; +} +`,u=new Array(a+1);for(let f=0;f<a;++f)u[f]=He.replaceMain(s[f],"czm_non_pick_main");u[a]=c,r=new He({sources:u,defines:r.defines}),i=e.shaderCache.createDerivedShaderProgram(t,"pick",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:r,attributeLocations:o})}return i}function urt(e,t){let n=e.picking.pickRenderStateCache,i=n[t.id];if(!l(i)){let o=ze.getState(t);o.blending.enabled=!1,o.depthMask=!0,i=ze.fromCache(o),n[t.id]=i}return i}IL.createPickDerivedCommand=function(e,t,n,i){l(i)||(i={});let o,r;return l(i.pickCommand)&&(o=i.pickCommand.shaderProgram,r=i.pickCommand.renderState),i.pickCommand=it.shallowClone(t,i.pickCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.pickCommand.shaderProgram=lrt(n,t.shaderProgram,t.pickId),i.pickCommand.renderState=urt(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.pickCommand.shaderProgram=o,i.pickCommand.renderState=r),i};function frt(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"HDR");if(!l(n)){let i=t._attributeLocations,o=t.vertexShaderSource.clone(),r=t.fragmentShaderSource.clone();o.defines=l(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("HDR"),n=e.shaderCache.createDerivedShaderProgram(t,"HDR",{vertexShaderSource:o,fragmentShaderSource:r,attributeLocations:i})}return n}IL.createHdrCommand=function(e,t,n){l(n)||(n={});let i;return l(n.command)&&(i=n.command.shaderProgram),n.command=it.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=frt(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};var M_=IL;function sz(e){this._scene=e,this._lastAlpha=void 0,this._lastBeta=void 0,this._lastGamma=void 0,this._alpha=void 0,this._beta=void 0,this._gamma=void 0;let t=this;function n(i){let o=i.alpha;if(!l(o)){t._alpha=void 0,t._beta=void 0,t._gamma=void 0;return}t._alpha=P.toRadians(o),t._beta=P.toRadians(i.beta),t._gamma=P.toRadians(i.gamma)}window.addEventListener("deviceorientation",n,!1),this._removeListener=function(){window.removeEventListener("deviceorientation",n,!1)}}var drt=new Ne,z_e=new Ne,mrt=new Z;function hrt(e,t,n,i){let o=e.direction,r=e.right,s=e.up,a=Ne.fromAxisAngle(o,n,z_e),c=Ne.fromAxisAngle(r,i,drt),u=Ne.multiply(c,a,c),f=Ne.fromAxisAngle(s,t,z_e);Ne.multiply(f,u,u);let d=Z.fromQuaternion(u,mrt);Z.multiplyByVector(d,r,r),Z.multiplyByVector(d,s,s),Z.multiplyByVector(d,o,o)}sz.prototype.update=function(){if(!l(this._alpha))return;l(this._lastAlpha)||(this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma);let e=this._lastAlpha-this._alpha,t=this._lastBeta-this._beta,n=this._lastGamma-this._gamma;hrt(this._scene.camera,-e,t,n),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma};sz.prototype.isDestroyed=function(){return!1};sz.prototype.destroy=function(){return this._removeListener(),ue(this)};var PL=sz;function H_e(){this.enabled=!0,this.renderable=!0,this.density=2e-4,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}var az=[359.393,800.749,1275.6501,2151.1192,3141.7763,4777.5198,6281.2493,12364.307,15900.765,49889.0549,78026.8259,99260.7344,120036.3873,151011.0158,156091.1953,203849.3112,274866.9803,319916.3149,493552.0528,628733.5874],Eh=[2e-5,2e-4,1e-4,7e-5,5e-5,4e-5,3e-5,19e-6,1e-5,85e-7,62e-7,58e-7,53e-7,52e-7,51e-7,42e-7,4e-6,34e-7,26e-7,22e-7];for(let e=0;e<Eh.length;++e)Eh[e]*=1e6;var G_e=Eh[1],Jj=Eh[Eh.length-1];for(let e=0;e<Eh.length;++e)Eh[e]=(Eh[e]-Jj)/(G_e-Jj);var ra=0;function prt(e){let t=az,n=t.length;if(e<t[0])return ra=0,ra;if(e>t[n-1])return ra=n-2,ra;if(e>=t[ra]){if(ra+1<n&&e<t[ra+1])return ra;if(ra+2<n&&e<t[ra+2])return++ra,ra}else if(ra-1>=0&&e>=t[ra-1])return--ra,ra;let i;for(i=0;i<n-2&&!(e>=t[i]&&e<t[i+1]);++i);return ra=i,ra}var _rt=new m;H_e.prototype.update=function(e){if(!(e.fog.enabled=this.enabled))return;e.fog.renderable=this.renderable;let n=e.camera,i=n.positionCartographic;if(!l(i)||i.height>8e5||e.mode!==ne.SCENE3D){e.fog.enabled=!1;return}let o=i.height,r=prt(o),s=P.clamp((o-az[r])/(az[r+1]-az[r]),0,1),a=P.lerp(Eh[r],Eh[r+1],s),c=this.density*1e6,u=c/G_e*Jj;a=a*(c-u)*1e-6;let f=m.normalize(n.positionWC,_rt),d=Math.abs(m.dot(n.directionWC,f));a*=1-d,e.fog.density=a,e.fog.sse=this.screenSpaceErrorFactor,e.fog.minimumBrightness=this.minimumBrightness};var OL=H_e;function grt(e,t,n){this.context=e,this.commandList=[],this.shadowMaps=[],this.brdfLutGenerator=void 0,this.environmentMap=void 0,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this.specularEnvironmentMapsMaximumLOD=void 0,this.mode=ne.SCENE3D,this.morphTime=ne.getMorphTime(ne.SCENE3D),this.frameNumber=0,this.newFrame=!1,this.time=void 0,this.jobScheduler=n,this.mapProjection=void 0,this.camera=void 0,this.cameraUnderground=!1,this.globeTranslucencyState=void 0,this.cullingVolume=void 0,this.occluder=void 0,this.maximumScreenSpaceError=void 0,this.pixelRatio=1,this.passes={render:!1,pick:!1,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=t,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,density:void 0,sse:void 0,minimumBrightness:void 0},this.terrainExaggeration=1,this.terrainExaggerationRelativeHeight=0,this.shadowState={shadowsEnabled:!0,shadowMaps:[],lightShadowMaps:[],nearPlane:1,farPlane:5e3,closestObjectSize:1e3,lastDirtyTime:0,outOfView:!0},this.splitPosition=0,this.frustumSplits=[],this.backgroundColor=void 0,this.light=void 0,this.minimumDisableDepthTestDistance=void 0,this.invertClassification=!1,this.invertClassificationColor=void 0,this.useLogDepth=!1,this.tilesetPassState=void 0,this.minimumTerrainHeight=0}var ML=grt;var sa={OPAQUE_FRONT_FACE:0,OPAQUE_BACK_FACE:1,DEPTH_ONLY_FRONT_FACE:2,DEPTH_ONLY_BACK_FACE:3,DEPTH_ONLY_FRONT_AND_BACK_FACE:4,TRANSLUCENT_FRONT_FACE:5,TRANSLUCENT_BACK_FACE:6,TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:7,TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:8,PICK_FRONT_FACE:9,PICK_BACK_FACE:10,DERIVED_COMMANDS_MAXIMUM_LENGTH:11},Xx=sa.DERIVED_COMMANDS_MAXIMUM_LENGTH,$_e=["opaqueFrontFaceCommand","opaqueBackFaceCommand","depthOnlyFrontFaceCommand","depthOnlyBackFaceCommand","depthOnlyFrontAndBackFaceCommand","translucentFrontFaceCommand","translucentBackFaceCommand","translucentFrontFaceManualDepthTestCommand","translucentBackFaceManualDepthTestCommand","pickFrontFaceCommand","pickBackFaceCommand"];function Kx(){this._frontFaceAlphaByDistance=new Lt(0,1,0,1),this._backFaceAlphaByDistance=new Lt(0,1,0,1),this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._requiresManualDepthTest=!1,this._sunVisibleThroughGlobe=!1,this._environmentVisible=!1,this._useDepthPlane=!1,this._numberOfTextureUniforms=0,this._globeTranslucencyFramebuffer=void 0,this._rectangle=le.clone(le.MAX_VALUE),this._derivedCommandKey=0,this._derivedCommandsDirty=!1,this._derivedCommandPacks=void 0,this._derivedCommandTypes=new Array(Xx),this._derivedBlendCommandTypes=new Array(Xx),this._derivedPickCommandTypes=new Array(Xx),this._derivedCommandTypesToUpdate=new Array(Xx),this._derivedCommandsLength=0,this._derivedBlendCommandsLength=0,this._derivedPickCommandsLength=0,this._derivedCommandsToUpdateLength=0}Object.defineProperties(Kx.prototype,{frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance}},translucent:{get:function(){return this._frontFaceTranslucent}},sunVisibleThroughGlobe:{get:function(){return this._sunVisibleThroughGlobe}},environmentVisible:{get:function(){return this._environmentVisible}},useDepthPlane:{get:function(){return this._useDepthPlane}},numberOfTextureUniforms:{get:function(){return this._numberOfTextureUniforms}},rectangle:{get:function(){return this._rectangle}}});Kx.prototype.update=function(e){let t=e.globe;if(!l(t)||!t.show){this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._sunVisibleThroughGlobe=!0,this._environmentVisible=!0,this._useDepthPlane=!1;return}this._frontFaceAlphaByDistance=W_e(t.translucency.enabled,t.translucency.frontFaceAlpha,t.translucency.frontFaceAlphaByDistance,this._frontFaceAlphaByDistance),this._backFaceAlphaByDistance=W_e(t.translucency.enabled,t.translucency.backFaceAlpha,t.translucency.backFaceAlphaByDistance,this._backFaceAlphaByDistance),this._frontFaceTranslucent=j_e(t.translucency.enabled,this._frontFaceAlphaByDistance,t),this._backFaceTranslucent=j_e(t.translucency.enabled,this._backFaceAlphaByDistance,t),this._requiresManualDepthTest=Crt(this,e,t),this._sunVisibleThroughGlobe=yrt(this,e),this._environmentVisible=Art(this,e),this._useDepthPlane=xrt(this,e),this._numberOfTextureUniforms=Trt(this),this._rectangle=le.clone(t.translucency.rectangle,this._rectangle),Ert(this,e)};function W_e(e,t,n,i){return e?l(n)?(Lt.clone(n,i),i.nearValue*=t,i.farValue*=t,i):(i.nearValue=t,i.farValue=t,i):(i.nearValue=1,i.farValue=1,i)}function j_e(e,t,n){return e&&(n.baseColor.alpha<1||t.nearValue<1||t.farValue<1)}function yrt(e,t){let n=e._frontFaceTranslucent,i=e._backFaceTranslucent;return n&&(t.cameraUnderground||i)}function Art(e,t){return!t.cameraUnderground||e._frontFaceTranslucent}function xrt(e,t){return!t.cameraUnderground&&!e._frontFaceTranslucent}function Crt(e,t,n){return e._frontFaceTranslucent&&!e._backFaceTranslucent&&!n.depthTestAgainstTerrain&&t.mode!==ne.SCENE2D&&t.context.depthTexture}function Trt(e){let t=0;return e._frontFaceTranslucent&&++t,e._requiresManualDepthTest&&++t,t}function Ert(e,t){e._derivedCommandsLength=Zj(e,t,!1,!1,e._derivedCommandTypes),e._derivedBlendCommandsLength=Zj(e,t,!0,!1,e._derivedBlendCommandTypes),e._derivedPickCommandsLength=Zj(e,t,!1,!0,e._derivedPickCommandTypes);let n,i=0;for(n=0;n<e._derivedCommandsLength;++n)i|=1<<e._derivedCommandTypes[n];for(n=0;n<e._derivedBlendCommandsLength;++n)i|=1<<e._derivedBlendCommandTypes[n];for(n=0;n<e._derivedPickCommandsLength;++n)i|=1<<e._derivedPickCommandTypes[n];let o=0;for(n=0;n<Xx;++n)(i&1<<n)>0&&(e._derivedCommandTypesToUpdate[o++]=n);e._derivedCommandsToUpdateLength=o;let r=i!==e._derivedCommandKey;e._derivedCommandKey=i,e._derivedCommandsDirty=r,!l(e._derivedCommandPacks)&&e._frontFaceTranslucent&&(e._derivedCommandPacks=Urt())}function Zj(e,t,n,i,o){let r=0,s=e._frontFaceTranslucent,a=e._backFaceTranslucent;if(!s)return r;let c=t.cameraUnderground,u=e._requiresManualDepthTest,f=i?sa.PICK_FRONT_FACE:u?sa.TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:sa.TRANSLUCENT_FRONT_FACE,d=i?sa.PICK_BACK_FACE:u?sa.TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:sa.TRANSLUCENT_BACK_FACE;return t.mode===ne.SCENE2D?(o[r++]=sa.DEPTH_ONLY_FRONT_FACE,o[r++]=f,r):(a?(n||(o[r++]=sa.DEPTH_ONLY_FRONT_AND_BACK_FACE),c?(o[r++]=f,o[r++]=d):(o[r++]=d,o[r++]=f)):c?(n||(o[r++]=sa.DEPTH_ONLY_BACK_FACE),o[r++]=sa.OPAQUE_FRONT_FACE,o[r++]=d):(n||(o[r++]=sa.DEPTH_ONLY_FRONT_FACE),o[r++]=sa.OPAQUE_BACK_FACE,o[r++]=f),r)}function Ff(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function Y_e(e,t){return e.indexOf(t)>-1}function brt(e,t){Ff(e.defines,"TRANSLUCENT"),Ff(t.defines,"TRANSLUCENT")}function Srt(e,t){Ff(e.defines,"GROUND_ATMOSPHERE"),Ff(t.defines,"GROUND_ATMOSPHERE"),Ff(e.defines,"FOG"),Ff(t.defines,"FOG"),Ff(e.defines,"TRANSLUCENT"),Ff(t.defines,"TRANSLUCENT")}function Qj(e,t){if(Y_e(t.defines,"TILE_LIMIT_RECTANGLE")||Y_e(t.defines,"ENABLE_CLIPPING_PLANES"))return;let n=`void main() +{ + out_FragColor = vec4(1.0); +} +`;t.sources=[n]}function $j(e,t){let n=t.sources,i=n.length;for(let r=0;r<i;++r)n[r]=He.replaceMain(n[r],"czm_globe_translucency_main");let o=` + +uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; +#ifdef MANUAL_DEPTH_TEST + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + if (logDepthOrDepth != 0.0) + { + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + float depthEC = eyeCoordinate.z / eyeCoordinate.w; + if (v_positionEC.z < depthEC) + { + discard; + } + } +#endif + czm_globe_translucency_main(); + vec4 classificationColor = texture(u_classificationTexture, st); + if (classificationColor.a > 0.0) + { + // Reverse premultiplication process to get the correct composited result of the classification primitives + classificationColor.rgb /= classificationColor.a; + } + out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a); +} +`;n.push(o)}function ege(e,t){$j(e,t),Ff(e.defines,"GROUND_ATMOSPHERE"),Ff(t.defines,"GROUND_ATMOSPHERE"),Ff(e.defines,"FOG"),Ff(t.defines,"FOG")}function wrt(e,t){$j(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function vrt(e,t){ege(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function q_e(e,t){let n=`uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; + vec4 pickColor = texture(u_classificationTexture, st); + if (pickColor == vec4(0.0)) + { + discard; + } + out_FragColor = pickColor; +} +`;t.sources=[n]}function Drt(e,t,n,i,o,r){if(!l(o))return t;if(!i&&l(n))return n;let s=e.shaderCache.getDerivedShaderProgram(t,r);if(!l(s)){let a=t._attributeLocations,c=t.vertexShaderSource.clone(),u=t.fragmentShaderSource.clone();c.defines=l(c.defines)?c.defines.slice(0):[],u.defines=l(u.defines)?u.defines.slice(0):[],o(c,u),s=e.shaderCache.createDerivedShaderProgram(t,r,{vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:a})}return s}function Irt(e){e.cull.face=_i.BACK,e.cull.enabled=!0}function Prt(e){e.cull.face=_i.FRONT,e.cull.enabled=!0}function Ort(e){e.cull.face=_i.BACK,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Mrt(e){e.cull.face=_i.FRONT,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Rrt(e){e.cull.enabled=!1,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function X_e(e){e.cull.face=_i.BACK,e.cull.enabled=!0,e.depthMask=!1,e.blending=mn.ALPHA_BLEND}function K_e(e){e.cull.face=_i.FRONT,e.cull.enabled=!0,e.depthMask=!1,e.blending=mn.ALPHA_BLEND}function Brt(e){e.cull.face=_i.BACK,e.cull.enabled=!0,e.blending.enabled=!1}function Lrt(e){e.cull.face=_i.FRONT,e.cull.enabled=!0,e.blending.enabled=!1}function Nrt(e,t,n,i,o){if(!l(i))return e;if(!n&&l(t))return t;let r=o[e.id];if(!l(r)){let s=ze.getState(e);i(s),r=ze.fromCache(s),o[e.id]=r}return r}function uS(e){return{u_classificationTexture:function(){return e._globeTranslucencyFramebuffer.classificationTexture}}}function Frt(e,t,n,i,o){return l(o)?!i&&l(n)?n:_t(t,o(e),!1):t}function um(e){this.pass=e.pass,this.pickOnly=e.pickOnly,this.getShaderProgramFunction=e.getShaderProgramFunction,this.getRenderStateFunction=e.getRenderStateFunction,this.getUniformMapFunction=e.getUniformMapFunction,this.renderStateCache={}}function Urt(){return[new um({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:brt,getRenderStateFunction:Irt,getUniformMapFunction:void 0}),new um({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:Srt,getRenderStateFunction:Prt,getUniformMapFunction:void 0}),new um({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:Qj,getRenderStateFunction:Ort,getUniformMapFunction:void 0}),new um({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:Qj,getRenderStateFunction:Mrt,getUniformMapFunction:void 0}),new um({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:Qj,getRenderStateFunction:Rrt,getUniformMapFunction:void 0}),new um({pass:be.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:$j,getRenderStateFunction:X_e,getUniformMapFunction:uS}),new um({pass:be.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:ege,getRenderStateFunction:K_e,getUniformMapFunction:uS}),new um({pass:be.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:wrt,getRenderStateFunction:X_e,getUniformMapFunction:uS}),new um({pass:be.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:vrt,getRenderStateFunction:K_e,getUniformMapFunction:uS}),new um({pass:be.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:q_e,getRenderStateFunction:Brt,getUniformMapFunction:uS}),new um({pass:be.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:q_e,getRenderStateFunction:Lrt,getUniformMapFunction:uS})]}var J_e=new Array(Xx),Z_e=new Array(Xx);Kx.prototype.updateDerivedCommands=function(e,t){let n=this._derivedCommandTypesToUpdate,i=this._derivedCommandsToUpdateLength;if(i!==0){for(let o=0;o<i;++o)Z_e[o]=this._derivedCommandPacks[n[o]],J_e[o]=$_e[n[o]];Vrt(this,e,i,n,J_e,Z_e,t)}};function Vrt(e,t,n,i,o,r,s){let a=t.derivedCommands.globeTranslucency,c=e._derivedCommandsDirty;if(t.dirty||!l(a)||c){t.dirty=!1,l(a)||(a={},t.derivedCommands.globeTranslucency=a);let u=s.frameNumber,f=y(a.uniformMapDirtyFrame,0),d=y(a.shaderProgramDirtyFrame,0),p=y(a.renderStateDirtyFrame,0),g=a.uniformMap!==t.uniformMap,h=a.shaderProgramId!==t.shaderProgram.id,A=a.renderStateId!==t.renderState.id;g&&(a.uniformMapDirtyFrame=u),h&&(a.shaderProgramDirtyFrame=u),A&&(a.renderStateDirtyFrame=u),a.uniformMap=t.uniformMap,a.shaderProgramId=t.shaderProgram.id,a.renderStateId=t.renderState.id;for(let x=0;x<n;++x){let C=r[x],T=i[x],E=o[x],S=a[E],v,D,O;l(S)?(v=S.uniformMap,D=S.shaderProgram,O=S.renderState):(v=void 0,D=void 0,O=void 0),S=it.shallowClone(t,S),a[E]=S;let M=y(S.derivedCommands.uniformMapDirtyFrame,0),L=y(S.derivedCommands.shaderProgramDirtyFrame,0),N=y(S.derivedCommands.renderStateDirtyFrame,0),_=g||M<f,b=h||L<d,w=A||N<p;_&&(S.derivedCommands.uniformMapDirtyFrame=u),b&&(S.derivedCommands.shaderProgramDirtyFrame=u),w&&(S.derivedCommands.renderStateDirtyFrame=u),S.derivedCommands.type=T,S.pass=C.pass,S.pickOnly=C.pickOnly,S.uniformMap=Frt(e,t.uniformMap,v,_,C.getUniformMapFunction),S.shaderProgram=Drt(s.context,t.shaderProgram,D,b,C.getShaderProgramFunction,E),S.renderState=Nrt(t.renderState,O,w,C.getRenderStateFunction,C.renderStateCache)}}}Kx.prototype.pushDerivedCommands=function(e,t,n){let i=n.passes.pick;if(i&&t)return;let o=this._derivedCommandTypes,r=this._derivedCommandsLength;if(i?(o=this._derivedPickCommandTypes,r=this._derivedPickCommandsLength):t&&(o=this._derivedBlendCommandTypes,r=this._derivedBlendCommandsLength),r===0){n.commandList.push(e);return}let s=e.derivedCommands.globeTranslucency;for(let a=0;a<r;++a){let c=$_e[o[a]];n.commandList.push(s[c])}};function tge(e,t,n,i,o,r,s){for(let a=0;a<t;++a){let c=e[a],u=c.derivedCommands.type;(!l(s)||s.indexOf(u)>-1)&&n(c,i,o,r)}}function Q_e(e,t,n,i,o,r){for(let s=0;s<t;++s)n(e[s],i,o,r)}var krt=[sa.OPAQUE_FRONT_FACE,sa.OPAQUE_BACK_FACE],zrt=[sa.DEPTH_ONLY_FRONT_FACE,sa.DEPTH_ONLY_BACK_FACE,sa.DEPTH_ONLY_FRONT_AND_BACK_FACE];Kx.prototype.executeGlobeCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[be.GLOBE],a=e.indices[be.GLOBE];a!==0&&(this._globeTranslucencyFramebuffer=n,n.clearClassification(r,o),tge(s,a,t,i,r,o,krt))};Kx.prototype.executeGlobeClassificationCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[be.GLOBE],a=e.indices[be.GLOBE],c=e.commands[be.TERRAIN_CLASSIFICATION],u=e.indices[be.TERRAIN_CLASSIFICATION];if(a===0||u===0)return;let f=this._frontFaceTranslucent,d=this._backFaceTranslucent;if((!f||!d)&&Q_e(c,u,t,i,r,o),!f&&!d)return;this._globeTranslucencyFramebuffer=n;let p=r.uniformState.globeDepthTexture,g=o.framebuffer;if(o.framebuffer=n.classificationFramebuffer,tge(s,a,t,i,r,o,zrt),r.depthTexture){let h=n.packDepth(r,o);r.uniformState.globeDepthTexture=h}Q_e(c,u,t,i,r,o),r.uniformState.globeDepthTexture=p,o.framebuffer=g};var RL=Kx;var Rl=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(colorTexture, v_textureCoordinates); +} +`;function bh(){this._numSamples=1,this.previousFramebuffer=void 0,this._previousFramebuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this._fbo=new di({depthStencil:!0,createDepthAttachments:!1}),this._fboClassified=new di({depthStencil:!0,createDepthAttachments:!1}),this._rsUnclassified=void 0,this._rsClassified=void 0,this._unclassifiedCommand=void 0,this._classifiedCommand=void 0,this._translucentCommand=void 0,this._clearColorCommand=new ii({color:new z(0,0,0,0),owner:this}),this._clearCommand=new ii({color:new z(0,0,0,0),depth:1,stencil:0});let e=this;this._uniformMap={colorTexture:function(){return e._fbo.getColorTexture()},depthTexture:function(){return e._depthStencilTexture},classifiedTexture:function(){return e._fboClassified.getColorTexture()}}}Object.defineProperties(bh.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}});bh.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var Hrt={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Hn.EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Hn.NEVER,reference:0,mask:Ft.CLASSIFICATION_MASK},blending:mn.ALPHA_BLEND},Grt={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Hn.NOT_EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Hn.NEVER,reference:0,mask:Ft.CLASSIFICATION_MASK},blending:mn.ALPHA_BLEND},Wrt={depthMask:!0,depthTest:{enabled:!0},stencilTest:Ft.setCesium3DTileBit(),stencilMask:Ft.CESIUM_3D_TILE_MASK,blending:mn.ALPHA_BLEND},jrt=`uniform sampler2D colorTexture; +uniform sampler2D depthTexture; +uniform sampler2D classifiedTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } + bool isClassified = all(equal(texture(classifiedTexture, v_textureCoordinates), vec4(0.0))); +#ifdef UNCLASSIFIED + vec4 highlightColor = czm_invertClassificationColor; + if (isClassified) + { + discard; + } +#else + vec4 highlightColor = vec4(1.0); + if (!isClassified) + { + discard; + } +#endif + out_FragColor = color * highlightColor; + gl_FragDepth = texture(depthTexture, v_textureCoordinates).r; +} +`,Yrt=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } +#ifdef UNCLASSIFIED + out_FragColor = color * czm_invertClassificationColor; +#else + out_FragColor = color; +#endif +} +`;bh.prototype.update=function(e,t,n){let i=this._fbo.getColorTexture(),o=this.previousFramebuffer!==this._previousFramebuffer;this._previousFramebuffer=this.previousFramebuffer;let r=this._numSamples!==t,s=e.drawingBufferWidth,a=e.drawingBufferHeight,c=!l(i)||i.width!==s||i.height!==a;if((c||o||r)&&(this._numSamples=t,this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._previousFramebuffer)||(this._depthStencilTexture=new Bt({context:e,width:s,height:a,pixelFormat:ct.DEPTH_STENCIL,pixelDatatype:Je.UNSIGNED_INT_24_8}),t>1&&(this._depthStencilRenderbuffer=new Gl({context:e,width:s,height:a,format:gc.DEPTH24_STENCIL8,numSamples:t})))),!l(this._fbo.framebuffer)||c||o||r){this._fbo.destroy(),this._fboClassified.destroy();let u,f;l(this._previousFramebuffer)?(u=n.getDepthStencilTexture(),f=n.getDepthStencilRenderbuffer()):(u=this._depthStencilTexture,f=this._depthStencilRenderbuffer),this._fbo.setDepthStencilTexture(u),l(f)&&this._fbo.setDepthStencilRenderbuffer(f),this._fbo.update(e,s,a,t),l(this._previousFramebuffer)||(this._fboClassified.setDepthStencilTexture(u),this._fboClassified.update(e,s,a))}if(l(this._rsUnclassified)||(this._rsUnclassified=ze.fromCache(Hrt),this._rsClassified=ze.fromCache(Grt),this._rsDefault=ze.fromCache(Wrt)),!l(this._unclassifiedCommand)||o||r){l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());let u=l(this._previousFramebuffer)?Yrt:jrt,f=new He({defines:["UNCLASSIFIED"],sources:[u]}),d=new He({sources:[u]});this._unclassifiedCommand=e.createViewportQuadCommand(f,{renderState:l(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(d,{renderState:l(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),l(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),l(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(Rl,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}};bh.prototype.prepareTextures=function(e,t){this._fbo._numSamples>1&&this._fbo.prepareTextures(e,t)};bh.prototype.clear=function(e,t){l(this._previousFramebuffer)?this._fbo.clear(e,this._clearColorCommand,t):(this._fbo.clear(e,this._clearCommand,t),this._fboClassified.clear(e,this._clearCommand,t))};bh.prototype.executeClassified=function(e,t){if(!l(this._previousFramebuffer)){let n=t.framebuffer;this.prepareTextures(e,!0),t.framebuffer=this._fboClassified.framebuffer,this._translucentCommand.execute(e,t),t.framebuffer=n}this._classifiedCommand.execute(e,t)};bh.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)};bh.prototype.isDestroyed=function(){return!1};bh.prototype.destroy=function(){return this._fbo.destroy(),this._fboClassified.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),ue(this)};var fS=bh;function cz(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}Object.defineProperties(cz.prototype,{total:{get:function(){return this._total}}});function zy(e){let t=new Array(ga.NUMBER_OF_JOB_TYPES);t[ga.TEXTURE]=new cz(l(e)?e[ga.TEXTURE]:10),t[ga.PROGRAM]=new cz(l(e)?e[ga.PROGRAM]:10),t[ga.BUFFER]=new cz(l(e)?e[ga.BUFFER]:30);let n=t.length,i,o=0;for(i=0;i<n;++i)o+=t[i].total;let r=new Array(n);for(i=0;i<n;++i)r[i]=!1;this._totalBudget=o,this._totalUsedThisFrame=0,this._budgets=t,this._executedThisFrame=r}zy.getTimestamp=gi;Object.defineProperties(zy.prototype,{totalBudget:{get:function(){return this._totalBudget}}});zy.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget};zy.prototype.resetBudgets=function(){let e=this._budgets,t=e.length;for(let n=0;n<t;++n){let i=e[n];i.starvedLastFrame=i.starvedThisFrame,i.starvedThisFrame=!1,i.usedThisFrame=0,i.stolenFromMeThisFrame=0}this._totalUsedThisFrame=0};zy.prototype.execute=function(e,t){let n=this._budgets,i=n[t],o=this._executedThisFrame[t];if(this._totalUsedThisFrame>=this._totalBudget&&o)return i.starvedThisFrame=!0,!1;let r;if(i.usedThisFrame+i.stolenFromMeThisFrame>=i.total){let c=n.length,u;for(u=0;u<c&&(r=n[u],!(r.usedThisFrame+r.stolenFromMeThisFrame<r.total&&!r.starvedLastFrame));++u);if(u===c&&o)return!1;o&&(i.starvedThisFrame=!0)}let s=zy.getTimestamp();e.execute();let a=zy.getTimestamp()-s;return this._totalUsedThisFrame+=a,r?r.stolenFromMeThisFrame+=a:i.usedThisFrame+=a,this._executedThisFrame[t]=!0,!0};var BL=zy;function lz(e){e=y(e,y.EMPTY_OBJECT);let t=In(e.container);this._container=t;let n=document.createElement("div");n.className="cesium-performanceDisplay";let i=document.createElement("div");i.className="cesium-performanceDisplay-fps",this._fpsText=document.createTextNode(""),i.appendChild(this._fpsText);let o=document.createElement("div");o.className="cesium-performanceDisplay-ms",this._msText=document.createTextNode(""),o.appendChild(this._msText),n.appendChild(o),n.appendChild(i),this._container.appendChild(n),this._lastFpsSampleTime=gi(),this._lastMsSampleTime=gi(),this._fpsFrameCount=0,this._msFrameCount=0,this._throttled=!1;let r=document.createElement("div");r.className="cesium-performanceDisplay-throttled",this._throttledText=document.createTextNode(""),r.appendChild(this._throttledText),n.appendChild(r)}Object.defineProperties(lz.prototype,{throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(e?this._throttledText.nodeValue="(throttled)":this._throttledText.nodeValue="",this._throttled=e)}}});lz.prototype.update=function(e){let t=gi(),n=y(e,!0);this._fpsFrameCount++;let i=t-this._lastFpsSampleTime;if(i>1e3){let r="N/A";n&&(r=this._fpsFrameCount*1e3/i|0),this._fpsText.nodeValue=`${r} FPS`,this._lastFpsSampleTime=t,this._fpsFrameCount=0}this._msFrameCount++;let o=t-this._lastMsSampleTime;if(o>200){let r="N/A";n&&(r=(o/this._msFrameCount).toFixed(2)),this._msText.nodeValue=`${r} MS`,this._lastMsSampleTime=t,this._msFrameCount=0}};lz.prototype.destroy=function(){return ue(this)};var R_=lz;function Jx(){this._framebuffer=new di,this._textureToCopy=void 0,this._copyDepthCommand=void 0}Object.defineProperties(Jx.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function qrt(e,t,n){let i=n.width,o=n.height;e._framebuffer.update(t,i,o)}function Xrt(e,t,n){if(!l(e._copyDepthCommand)){let i=`uniform highp sampler2D u_texture; +in vec2 v_textureCoordinates; +void main() +{ + out_FragColor = czm_packDepth(texture(u_texture, v_textureCoordinates).r); +} +`;e._copyDepthCommand=t.createViewportQuadCommand(i,{renderState:ze.fromCache(),uniformMap:{u_texture:function(){return e._textureToCopy}},owner:e})}e._textureToCopy=n,e._copyDepthCommand.framebuffer=e.framebuffer}Jx.prototype.update=function(e,t){qrt(this,e,t),Xrt(this,e,t)};var Krt=new re,Jrt=new re(1,1/255,1/65025,1/16581375);Jx.prototype.getDepth=function(e,t,n){if(!l(this.framebuffer))return;let i=e.readPixels({x:t,y:n,width:1,height:1,framebuffer:this.framebuffer}),o=re.unpack(i,0,Krt);return re.divideByScalar(o,255,o),re.dot(o,Jrt)};Jx.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)};Jx.prototype.isDestroyed=function(){return!1};Jx.prototype.destroy=function(){return this._framebuffer.destroy(),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=l(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy()),ue(this)};var LL=Jx;function Zrt(e,t){this.near=y(e,0),this.far=y(t,0);let n=be.NUMBER_OF_PASSES,i=new Array(n),o=new Array(n);for(let r=0;r<n;++r)i[r]=[],o[r]=0;this.commands=i,this.indices=o}var NL=Zrt;var Hy=`uniform highp sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = czm_packDepth(texture(u_depthTexture, v_textureCoordinates).r); +} +`;function Sh(){this._picking=!1,this._numSamples=1,this._tempCopyDepthTexture=void 0,this._pickColorFramebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._outputFramebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._copyDepthFramebuffer=new di,this._tempCopyDepthFramebuffer=new di,this._updateDepthFramebuffer=new di({createColorAttachments:!1,createDepthAttachments:!1,depthStencil:!0}),this._clearGlobeColorCommand=void 0,this._copyColorCommand=void 0,this._copyDepthCommand=void 0,this._tempCopyDepthCommand=void 0,this._updateDepthCommand=void 0,this._viewport=new Ke,this._rs=void 0,this._rsBlend=void 0,this._rsUpdate=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0,this._clearGlobeDepth=void 0}Object.defineProperties(Sh.prototype,{colorFramebufferManager:{get:function(){return this._picking?this._pickColorFramebuffer:this._outputFramebuffer}},framebuffer:{get:function(){return this.colorFramebufferManager.framebuffer}},depthStencilTexture:{get:function(){return this.colorFramebufferManager.getDepthStencilTexture()}},picking:{get:function(){return this._picking},set:function(e){this._picking=e}}});function Qrt(e){e._pickColorFramebuffer.destroy(),e._outputFramebuffer.destroy(),e._copyDepthFramebuffer.destroy(),e._tempCopyDepthFramebuffer.destroy(),e._updateDepthFramebuffer.destroy()}function nge(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!Ke.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,Ke.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=Ke.clone(o.viewport,e._scissorRectangle),s=!0),(!l(e._rs)||!Ke.equals(e._viewport,e._rs.viewport)||s)&&(e._rs=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}}),e._rsBlend=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:mn.ALPHA_BLEND}),e._rsUpdate=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Hn.EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Hn.NEVER,reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK}})),l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(Hy,{uniformMap:{u_depthTexture:function(){return e.colorFramebufferManager.getDepthStencilTexture()}},owner:e})),e._copyDepthCommand.framebuffer=e._copyDepthFramebuffer.framebuffer,e._copyDepthCommand.renderState=e._rs,l(e._copyColorCommand)||(e._copyColorCommand=t.createViewportQuadCommand(Rl,{uniformMap:{colorTexture:function(){return e.colorFramebufferManager.getColorTexture()}},owner:e})),e._copyColorCommand.renderState=e._rs,l(e._tempCopyDepthCommand)||(e._tempCopyDepthCommand=t.createViewportQuadCommand(Hy,{uniformMap:{u_depthTexture:function(){return e._tempCopyDepthTexture}},owner:e})),e._tempCopyDepthCommand.framebuffer=e._tempCopyDepthFramebuffer.framebuffer,e._tempCopyDepthCommand.renderState=e._rs,l(e._updateDepthCommand)||(e._updateDepthCommand=t.createViewportQuadCommand(Rl,{uniformMap:{colorTexture:function(){return e._tempCopyDepthFramebuffer.getColorTexture()}},owner:e})),e._updateDepthCommand.framebuffer=e._updateDepthFramebuffer.framebuffer,e._updateDepthCommand.renderState=e._rsUpdate,l(e._clearGlobeColorCommand)||(e._clearGlobeColorCommand=new ii({color:new z(0,0,0,0),stencil:0,owner:e})),e._clearGlobeColorCommand.framebuffer=e.framebuffer}Sh.prototype.update=function(e,t,n,i,o,r){let s=n.width,a=n.height,c=o?e.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT:Je.UNSIGNED_BYTE;this._numSamples=i,this.picking?this._pickColorFramebuffer.update(e,s,a):this._outputFramebuffer.update(e,s,a,i,c),this._copyDepthFramebuffer.update(e,s,a),nge(this,e,s,a,t),e.uniformState.globeDepthTexture=void 0,this._useHdr=o,this._clearGlobeDepth=r};Sh.prototype.prepareColorTextures=function(e,t){!this.picking&&this._numSamples>1&&this._outputFramebuffer.prepareTextures(e,t)};Sh.prototype.executeCopyDepth=function(e,t){l(this._copyDepthCommand)&&(this.prepareColorTextures(e),this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._copyDepthFramebuffer.getColorTexture())};Sh.prototype.executeUpdateDepth=function(e,t,n,i){let o=l(i)?i:t.framebuffer.depthStencilTexture;if(n||o!==this.colorFramebufferManager.getDepthStencilTexture()){if(l(this._updateDepthCommand)){if(!l(this._updateDepthFramebuffer.framebuffer)||this._updateDepthFramebuffer.getDepthStencilTexture()!==o||this._updateDepthFramebuffer.getColorTexture()!==this._copyDepthFramebuffer.getColorTexture()){let r=this._copyDepthFramebuffer.getColorTexture().width,s=this._copyDepthFramebuffer.getColorTexture().height;this._tempCopyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.update(e,r,s);let a=this._copyDepthFramebuffer.getColorTexture();this._updateDepthFramebuffer.setColorTexture(a,0),this._updateDepthFramebuffer.setDepthStencilTexture(o),this._updateDepthFramebuffer.update(e,r,s),nge(this,e,r,s,t)}this._tempCopyDepthTexture=o,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)}return}l(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t)};Sh.prototype.executeCopyColor=function(e,t){l(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)};Sh.prototype.clear=function(e,t,n){let i=this._clearGlobeColorCommand;l(i)&&(z.clone(n,i.color),this.colorFramebufferManager.clear(e,i,t))};Sh.prototype.isDestroyed=function(){return!1};Sh.prototype.destroy=function(){return Qrt(this),l(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy()),l(this._tempCopyDepthCommand)&&(this._tempCopyDepthCommand.shaderProgram=this._tempCopyDepthCommand.shaderProgram.destroy()),l(this._updateDepthCommand)&&(this._updateDepthCommand.shaderProgram=this._updateDepthCommand.shaderProgram.destroy()),ue(this)};var FL=Sh;function Zx(){this._framebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._packedDepthFramebuffer=new di,this._renderState=void 0,this._packedDepthCommand=void 0,this._clearCommand=void 0,this._viewport=new Ke,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0}Object.defineProperties(Zx.prototype,{classificationTexture:{get:function(){return this._framebuffer.getColorTexture()}},classificationFramebuffer:{get:function(){return this._framebuffer.framebuffer}},packedDepthFramebuffer:{get:function(){return this._packedDepthFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._framebuffer.getDepthStencilTexture()}},depthStencilRenderbuffer:{get:function(){return this._framebuffer.getDepthStencilRenderbuffer()}},packedDepthTexture:{get:function(){return this._packedDepthFramebuffer.getColorTexture()}}});function $rt(e){e._framebuffer.destroy(),e._packedDepthFramebuffer.destroy()}function est(e,t,n,i,o){let r=o?t.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT:Je.UNSIGNED_BYTE;e._framebuffer.update(t,n,i,1,r),e._packedDepthFramebuffer.update(t,n,i)}function tst(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!Ke.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,Ke.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=Ke.clone(o.viewport,e._scissorRectangle),s=!0),(!l(e._renderState)||!Ke.equals(e._viewport,e._renderState.viewport)||s)&&(e._renderState=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packedDepthCommand)||(e._packedDepthCommand=t.createViewportQuadCommand(Hy,{uniformMap:{u_depthTexture:function(){return e.depthStencilTexture}},owner:e})),l(e._clearCommand)||(e._clearCommand=new ii({color:new z(0,0,0,0),depth:1,stencil:0,owner:e})),e._packedDepthCommand.framebuffer=e._packedDepthFramebuffer.framebuffer,e._packedDepthCommand.renderState=e._renderState,e._clearCommand.framebuffer=e.classificationFramebuffer,e._clearCommand.renderState=e._renderState}Zx.prototype.updateAndClear=function(e,t,n,i){let o=t.width,r=t.height;est(this,n,o,r,e),tst(this,n,o,r,i),this._useHdr=e};Zx.prototype.clearClassification=function(e,t){this._clearCommand.execute(e,t)};Zx.prototype.packDepth=function(e,t){return this._packedDepthCommand.execute(e,t),this.packedDepthTexture};Zx.prototype.isDestroyed=function(){return!1};Zx.prototype.destroy=function(){return $rt(this),ue(this)};var UL=Zx;var dS=`#ifdef MRT +layout (location = 0) out vec4 out_FragData_0; +layout (location = 1) out vec4 out_FragData_1; +#else +layout (location = 0) out vec4 out_FragColor; +#endif + +uniform vec4 u_bgColor; +uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + if (texture(u_depthTexture, v_textureCoordinates).r < 1.0) + { +#ifdef MRT + out_FragData_0 = u_bgColor; + out_FragData_1 = vec4(u_bgColor.a); +#else + out_FragColor = u_bgColor; +#endif + return; + } + + discard; +} +`;var VL=`/** + * Compositing for Weighted Blended Order-Independent Transparency. See: + * - http://jcgt.org/published/0002/02/09/ + * - http://casual-effects.blogspot.com/2014/03/weighted-blended-order-independent.html + */ + +uniform sampler2D u_opaque; +uniform sampler2D u_accumulation; +uniform sampler2D u_revealage; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 opaque = texture(u_opaque, v_textureCoordinates); + vec4 accum = texture(u_accumulation, v_textureCoordinates); + float r = texture(u_revealage, v_textureCoordinates).r; + +#ifdef MRT + vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a); +#else + vec4 transparent = vec4(accum.rgb / clamp(accum.a, 1e-4, 5e4), r); +#endif + + out_FragColor = (1.0 - transparent.a) * transparent + transparent.a * opaque; + + if (opaque != czm_backgroundColor) + { + out_FragColor.a = 1.0; + } +} +`;function B_(e){this._numSamples=1,this._translucentMultipassSupport=!1,this._translucentMRTSupport=!1;let t=e.colorBufferFloat&&e.depthTexture&&e.floatBlend;this._translucentMRTSupport=e.drawBuffers&&t,this._translucentMultipassSupport=!this._translucentMRTSupport&&t,this._opaqueFBO=void 0,this._opaqueTexture=void 0,this._depthStencilTexture=void 0,this._accumulationTexture=void 0,this._translucentFBO=new di({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._alphaFBO=new di({createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._adjustTranslucentFBO=new di({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1}),this._adjustAlphaFBO=new di({createColorAttachments:!1}),this._opaqueClearCommand=new ii({color:new z(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new ii({color:new z(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new ii({color:new z(0,0,0,0),owner:this}),this._alphaClearCommand=new ii({color:new z(1,1,1,1),owner:this}),this._translucentRenderStateCache={},this._alphaRenderStateCache={},this._compositeCommand=void 0,this._adjustTranslucentCommand=void 0,this._adjustAlphaCommand=void 0,this._viewport=new Ke,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function ige(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function eY(e){e._translucentFBO.destroy(),e._alphaFBO.destroy(),e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO.destroy()}function oge(e){ige(e),eY(e)}function nst(e,t,n,i){ige(e),e._accumulationTexture=new Bt({context:t,width:n,height:i,pixelFormat:ct.RGBA,pixelDatatype:Je.FLOAT});let o=new Float32Array(n*i*4);e._revealageTexture=new Bt({context:t,pixelFormat:ct.RGBA,pixelDatatype:Je.FLOAT,source:{arrayBufferView:o,width:n,height:i},flipY:!1})}function ist(e,t){eY(e);let n=te.FRAMEBUFFER_COMPLETE,i=!0,{width:o,height:r}=e._accumulationTexture;if(e._translucentMRTSupport&&(e._translucentFBO.setColorTexture(e._accumulationTexture,0),e._translucentFBO.setColorTexture(e._revealageTexture,1),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture,0),e._adjustTranslucentFBO.setColorTexture(e._revealageTexture,1),e._adjustTranslucentFBO.update(t,o,r),(e._translucentFBO.status!==n||e._adjustTranslucentFBO.status!==n)&&(eY(e),e._translucentMRTSupport=!1)),!e._translucentMRTSupport){e._translucentFBO.setColorTexture(e._accumulationTexture),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._alphaFBO.setColorTexture(e._revealageTexture),e._alphaFBO.setDepthStencilTexture(e._depthStencilTexture),e._alphaFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture),e._adjustTranslucentFBO.update(t,o,r),e._adjustAlphaFBO.setColorTexture(e._revealageTexture),e._adjustAlphaFBO.update(t,o,r);let s=e._translucentFBO.status===n,a=e._alphaFBO.status===n,c=e._adjustTranslucentFBO.status===n,u=e._adjustAlphaFBO.status===n;(!s||!a||!c||!u)&&(oge(e),e._translucentMultipassSupport=!1,i=!1)}return i}B_.prototype.update=function(e,t,n,i,o){if(!this.isSupported())return;this._opaqueFBO=n,this._opaqueTexture=n.getColorTexture(0),this._depthStencilTexture=n.getDepthStencilTexture();let{width:r,height:s}=this._opaqueTexture,a=this._accumulationTexture,c=!l(a)||a.width!==r||a.height!==s||i!==this._useHDR,u=this._numSamples!==o;if((c||u)&&(this._numSamples=o,nst(this,e,r,s)),(!l(this._translucentFBO.framebuffer)||c||u)&&!ist(this,e))return;this._useHDR=i;let f=this,d,p;l(this._compositeCommand)||(d=new He({sources:[VL]}),this._translucentMRTSupport&&d.defines.push("MRT"),p={u_opaque:function(){return f._opaqueTexture},u_accumulation:function(){return f._accumulationTexture},u_revealage:function(){return f._revealageTexture}},this._compositeCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})),l(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(d=new He({defines:["MRT"],sources:[dS]}),p={u_bgColor:function(){return f._translucentMRTClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})):this._translucentMultipassSupport&&(d=new He({sources:[dS]}),p={u_bgColor:function(){return f._translucentMultipassClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}),p={u_bgColor:function(){return f._alphaClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustAlphaCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}))),this._viewport.width=r,this._viewport.height=s;let g=!Ke.equals(this._viewport,t.viewport),h=g!==this._useScissorTest;this._useScissorTest=g,Ke.equals(this._scissorRectangle,t.viewport)||(this._scissorRectangle=Ke.clone(t.viewport,this._scissorRectangle),h=!0),(!l(this._rs)||!Ke.equals(this._viewport,this._rs.viewport)||h)&&(this._rs=ze.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),l(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)};var ost={enabled:!0,color:new z(0,0,0,0),equationRgb:ma.ADD,equationAlpha:ma.ADD,functionSourceRgb:Co.ONE,functionDestinationRgb:Co.ONE,functionSourceAlpha:Co.ZERO,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA},rst={enabled:!0,color:new z(0,0,0,0),equationRgb:ma.ADD,equationAlpha:ma.ADD,functionSourceRgb:Co.ONE,functionDestinationRgb:Co.ONE,functionSourceAlpha:Co.ONE,functionDestinationAlpha:Co.ONE},sst={enabled:!0,color:new z(0,0,0,0),equationRgb:ma.ADD,equationAlpha:ma.ADD,functionSourceRgb:Co.ZERO,functionDestinationRgb:Co.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:Co.ZERO,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA};function tY(e,t,n,i){let o=n[i.id];if(!l(o)){let r=ze.getState(i);r.depthMask=!1,r.blending=t,o=ze.fromCache(r),n[i.id]=o}return o}function ast(e,t,n){return tY(t,ost,e._translucentRenderStateCache,n)}function cst(e,t,n){return tY(t,rst,e._translucentRenderStateCache,n)}function lst(e,t,n){return tY(t,sst,e._alphaRenderStateCache,n)}var ust=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragData_0 = vec4(Ci * wzi, ai); + out_FragData_1 = vec4(ai * wzi); +`,fst=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragColor = vec4(Ci, ai) * wzi; +`,dst=` float ai = czm_out_FragColor.a; + out_FragColor = vec4(ai); +`;function nY(e,t,n,i){let{shaderCache:o}=e,r=o.getDerivedShaderProgram(t,n);if(l(r))return r;let s=t._attributeLocations,a=t.fragmentShaderSource.clone();a.sources=a.sources.map(function(f){return He.replaceMain(f,"czm_translucent_main").replace(/out_FragColor/g,"czm_out_FragColor").replace(/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,"").replace(/\bdiscard\b/g,"czm_discard = true").replace(/czm_phong/g,"czm_translucentPhong")}),a.sources.splice(0,0,`vec4 czm_out_FragColor; +bool czm_discard = false; +`);let c=[...i.matchAll(/out_FragData_(\d+)/g)],u="";for(let f=0;f<c.length;f++){let d=c[f];u=`layout (location = ${d[1]}) out vec4 ${d[0]}; +${u}`}return a.sources.push(u),a.sources.push(`void main() +{ + czm_translucent_main(); + if (czm_discard) + { + discard; + } +${i}} +`),o.createDerivedShaderProgram(t,n,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:a,attributeLocations:s})}function mst(e,t){return nY(e,t,"translucentMRT",ust)}function hst(e,t){return nY(e,t,"translucentMultipass",fst)}function pst(e,t){return nY(e,t,"alphaMultipass",dst)}B_.prototype.createDerivedCommands=function(e,t,n){if(l(n)||(n={}),this._translucentMRTSupport){let a,c;return l(n.translucentCommand)&&(a=n.translucentCommand.shaderProgram,c=n.translucentCommand.renderState),n.translucentCommand=it.shallowClone(e,n.translucentCommand),!l(a)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=mst(t,e.shaderProgram),n.translucentCommand.renderState=ast(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=a,n.translucentCommand.renderState=c),n}let i,o,r,s;return l(n.translucentCommand)&&(i=n.translucentCommand.shaderProgram,o=n.translucentCommand.renderState,r=n.alphaCommand.shaderProgram,s=n.alphaCommand.renderState),n.translucentCommand=it.shallowClone(e,n.translucentCommand),n.alphaCommand=it.shallowClone(e,n.alphaCommand),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=hst(t,e.shaderProgram),n.translucentCommand.renderState=cst(this,t,e.renderState),n.alphaCommand.shaderProgram=pst(t,e.shaderProgram),n.alphaCommand.renderState=lst(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=i,n.translucentCommand.renderState=o,n.alphaCommand.shaderProgram=r,n.alphaCommand.renderState=s),n};function _st(e,t,n,i,o,r){let s,a,c,{context:u,frameState:f}=t,{useLogDepth:d,shadowState:p}=f,g=t._hdr,h=i.framebuffer,A=p.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(u,i),i.framebuffer=e._adjustAlphaFBO.framebuffer,e._adjustAlphaCommand.execute(u,i);let x=e._opaqueFBO.framebuffer;for(i.framebuffer=e._translucentFBO.framebuffer,c=0;c<o.length;++c)s=o[c],s=d?s.derivedCommands.logDepth.command:s,s=g?s.derivedCommands.hdr.command:s,a=A&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,u,i,x);for(l(r)&&(s=r.unclassifiedCommand,a=A&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,u,i,x)),i.framebuffer=e._alphaFBO.framebuffer,c=0;c<o.length;++c)s=o[c],s=d?s.derivedCommands.logDepth.command:s,s=g?s.derivedCommands.hdr.command:s,a=A&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,u,i,x);l(r)&&(s=r.unclassifiedCommand,a=A&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,u,i,x)),i.framebuffer=h}function gst(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:u}=a,f=t._hdr,d=i.framebuffer,p=u.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;let h,A;for(let x=0;x<o.length;++x)h=o[x],h=c?h.derivedCommands.logDepth.command:h,h=f?h.derivedCommands.hdr.command:h,A=p&&h.receiveShadows?h.derivedCommands.oit.shadows.translucentCommand:h.derivedCommands.oit.translucentCommand,n(A,t,s,i,g);l(r)&&(h=r.unclassifiedCommand,A=p&&h.receiveShadows?h.derivedCommands.oit.shadows.translucentCommand:h.derivedCommands.oit.translucentCommand,n(A,t,s,i,g)),i.framebuffer=d}B_.prototype.executeCommands=function(e,t,n,i,o){if(this._translucentMRTSupport){gst(this,e,t,n,i,o);return}_st(this,e,t,n,i,o)};B_.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)};B_.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this._opaqueFBO.framebuffer,z.clone(n,this._opaqueClearCommand.color),this._opaqueClearCommand.execute(e,t),t.framebuffer=this._translucentFBO.framebuffer,(this._translucentMRTSupport?this._translucentMRTClearCommand:this._translucentMultipassClearCommand).execute(e,t),this._translucentMultipassSupport&&(t.framebuffer=this._alphaFBO.framebuffer,this._alphaClearCommand.execute(e,t)),t.framebuffer=i};B_.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport};B_.prototype.isDestroyed=function(){return!1};B_.prototype.destroy=function(){return oge(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),ue(this)};var kL=B_;function zL(){this._framebuffer=new di({color:!1,depthStencil:!0,supportsDepthTexture:!0}),this._passState=void 0}Object.defineProperties(zL.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function yst(e){e._framebuffer.destroy()}function Ast(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i);let o=new Va(t);o.blendingEnabled=!1,o.scissorTest={enabled:!0,rectangle:new Ke},o.viewport=new Ke,e._passState=o}zL.prototype.update=function(e,t,n){let i=n.width,o=n.height;this._framebuffer.isDirty(i,o)&&Ast(this,e);let r=this.framebuffer,s=this._passState;return s.framebuffer=r,s.viewport.width=i,s.viewport.height=o,s.scissorTest.rectangle.x=t.x,s.scissorTest.rectangle.y=o-t.y,s.scissorTest.rectangle.width=1,s.scissorTest.rectangle.height=1,s};zL.prototype.isDestroyed=function(){return!1};zL.prototype.destroy=function(){return yst(this),ue(this)};var HL=zL;function WL(e){let t=new Va(e);t.blendingEnabled=!1,t.scissorTest={enabled:!0,rectangle:new Ke},t.viewport=new Ke,this._context=e,this._fb=new di({depthStencil:!0}),this._passState=t,this._width=0,this._height=0}WL.prototype.begin=function(e,t){let n=this._context,i=t.width,o=t.height;return Ke.clone(e,this._passState.scissorTest.rectangle),this._width=i,this._height=o,this._fb.update(n,i,o),this._passState.framebuffer=this._fb.framebuffer,this._passState.viewport.width=i,this._passState.viewport.height=o,this._passState};var GL=new z;WL.prototype.end=function(e){let t=y(e.width,1),n=y(e.height,1),i=this._context,o=i.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.max(t,n),s=r*r,a=Math.floor(t*.5),c=Math.floor(n*.5),u=0,f=0,d=0,p=-1;for(let g=0;g<s;++g){if(-a<=u&&u<=a&&-c<=f&&f<=c){let h=4*((c-f)*t+u+a);GL.red=z.byteToFloat(o[h]),GL.green=z.byteToFloat(o[h+1]),GL.blue=z.byteToFloat(o[h+2]),GL.alpha=z.byteToFloat(o[h+3]);let A=i.getObjectByPickColor(GL);if(l(A))return A}if(u===f||u<0&&-u===f||u>0&&u===1-f){let h=d;d=-p,p=h}u+=d,f+=p}};WL.prototype.isDestroyed=function(){return!1};WL.prototype.destroy=function(){return this._fb.destroy(),ue(this)};var jL=WL;function L_(){this._numSamples=1,this._colorFramebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._idFramebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._idClearColor=new z(0,0,0,0),this._clearCommand=new ii({color:new z(0,0,0,0),depth:1,owner:this})}function xst(e){e._colorFramebuffer.destroy(),e._idFramebuffer.destroy()}Object.defineProperties(L_.prototype,{framebuffer:{get:function(){return this._colorFramebuffer.framebuffer}},idFramebuffer:{get:function(){return this._idFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._colorFramebuffer.getDepthStencilTexture()}}});L_.prototype.update=function(e,t,n,i){let o=t.width,r=t.height,s=n?e.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT:Je.UNSIGNED_BYTE;this._numSamples=i,this._colorFramebuffer.update(e,o,r,i,s),this._idFramebuffer.update(e,o,r)};L_.prototype.clear=function(e,t,n){z.clone(n,this._clearCommand.color),z.clone(this._idClearColor,this._clearCommand.color),this._colorFramebuffer.clear(e,this._clearCommand,t),this._idFramebuffer.clear(e,this._clearCommand,t)};L_.prototype.getFramebuffer=function(){return this._colorFramebuffer.framebuffer};L_.prototype.getIdFramebuffer=function(){return this._idFramebuffer.framebuffer};L_.prototype.prepareColorTextures=function(e){this._numSamples>1&&this._colorFramebuffer.prepareTextures(e)};L_.prototype.isDestroyed=function(){return!1};L_.prototype.destroy=function(){return xst(this),ue(this)};var Qx=L_;function $x(){}$x.getShadowCastShaderKeyword=function(e,t,n,i){return`castShadow ${e} ${t} ${n} ${i}`};$x.createShadowCastVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);i.push("SHADOW_MAP"),n&&i.push("GENERATE_POSITION");let r=He.findPositionVarying(e),s=l(r);if(t&&!s){let a=o.length;for(let u=0;u<a;++u)o[u]=He.replaceMain(o[u],"czm_shadow_cast_main");let c=`out vec3 v_positionEC; +void main() +{ + czm_shadow_cast_main(); + v_positionEC = (czm_inverseProjection * gl_Position).xyz; +}`;o.push(c)}return new He({defines:i,sources:o})};$x.createShadowCastFragmentShader=function(e,t,n,i){let o=e.defines.slice(0),r=e.sources.slice(0);o.push("SHADOW_MAP");let s=He.findPositionVarying(e),a=l(s);a||(s="v_positionEC");let c=r.length;for(let f=0;f<c;++f)r[f]=He.replaceMain(r[f],"czm_shadow_cast_main");let u="";return t&&(a||(u+=`in vec3 v_positionEC; +`),u+=`uniform vec4 shadowMap_lightPositionEC; +`),i?u+=`void main() +{ +`:u+=`void main() +{ + czm_shadow_cast_main(); + if (out_FragColor.a == 0.0) + { + discard; + } +`,t?u+=` float distance = length(${s}); + if (distance >= shadowMap_lightPositionEC.w) + { + discard; + } + distance /= shadowMap_lightPositionEC.w; // radius + out_FragColor = czm_packDepth(distance); +`:n?u+=` out_FragColor = vec4(1.0); +`:u+=` out_FragColor = czm_packDepth(gl_FragCoord.z); +`,u+=`} +`,r.push(u),new He({defines:o,sources:r})};$x.getShadowReceiveShaderKeyword=function(e,t,n,i){let o=e._usesDepthTexture,r=e._polygonOffsetSupported,s=e._isPointLight,a=e._isSpotLight,c=e._numberOfCascades>1,u=e.debugCascadeColors,f=e.softShadows;return`receiveShadow ${o}${r}${s}${a}${c}${u}${f}${t}${n}${i}`};$x.createShadowReceiveVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);return i.push("SHADOW_MAP"),t&&(n?i.push("GENERATE_POSITION_AND_NORMAL"):i.push("GENERATE_POSITION")),new He({defines:i,sources:o})};$x.createShadowReceiveFragmentShader=function(e,t,n,i,o){let r=He.findNormalVarying(e),s=!i&&l(r)||i&&o,a=He.findPositionVarying(e),c=l(a),u=t._usesDepthTexture,f=t._polygonOffsetSupported,d=t._isPointLight,p=t._isSpotLight,g=t._numberOfCascades>1,h=t.debugCascadeColors,A=t.softShadows,x=d?t._pointBias:i?t._terrainBias:t._primitiveBias,C=e.defines.slice(0),T=e.sources.slice(0),E=T.length;for(let D=0;D<E;++D)T[D]=He.replaceMain(T[D],"czm_shadow_receive_main");d?C.push("USE_CUBE_MAP_SHADOW"):u&&C.push("USE_SHADOW_DEPTH_TEXTURE"),A&&!d&&C.push("USE_SOFT_SHADOWS"),g&&n&&i&&(s?C.push("ENABLE_VERTEX_LIGHTING"):C.push("ENABLE_DAYNIGHT_SHADING")),n&&x.normalShading&&s&&(C.push("USE_NORMAL_SHADING"),x.normalShadingSmooth>0&&C.push("USE_NORMAL_SHADING_SMOOTH"));let S="";d?S+=`uniform samplerCube shadowMap_textureCube; +`:S+=`uniform sampler2D shadowMap_texture; +`;let v;return c?v=` return vec4(${a}, 1.0); +`:v=`#ifndef LOG_DEPTH + return czm_windowToEyeCoordinates(gl_FragCoord); +#else + return vec4(v_logPositionEC, 1.0); +#endif +`,S+=`uniform mat4 shadowMap_matrix; +uniform vec3 shadowMap_lightDirectionEC; +uniform vec4 shadowMap_lightPositionEC; +uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness; +uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth; +#ifdef LOG_DEPTH +in vec3 v_logPositionEC; +#endif +vec4 getPositionEC() +{ +${v}} +vec3 getNormalEC() +{ +${s?` return normalize(${r}); +`:` return vec3(1.0); +`}} +void applyNormalOffset(inout vec4 positionEC, vec3 normalEC, float nDotL) +{ +${x.normalOffset&&s?` float normalOffset = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.x; + float normalOffsetScale = 1.0 - nDotL; + vec3 offset = normalOffset * normalOffsetScale * normalEC; + positionEC.xyz += offset; +`:""}} +`,S+=`void main() +{ + czm_shadow_receive_main(); + vec4 positionEC = getPositionEC(); + vec3 normalEC = getNormalEC(); + float depth = -positionEC.z; +`,S+=` czm_shadowParameters shadowParameters; + shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy; + shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z; + shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w; + shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w; +`,i?S+=` shadowParameters.depthBias *= max(depth * 0.01, 1.0); +`:f||(S+=` shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015); +`),d?S+=` vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz; + float distance = length(directionEC); + directionEC = normalize(directionEC); + float radius = shadowMap_lightPositionEC.w; + // Stop early if the fragment is beyond the point light radius + if (distance > radius) + { + return; + } + vec3 directionWC = czm_inverseViewRotation * directionEC; + shadowParameters.depth = distance / radius; + shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + shadowParameters.texCoords = directionWC; + float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters); +`:p?S+=` vec3 directionEC = normalize(positionEC.xyz - shadowMap_lightPositionEC.xyz); + float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Spot light uses a perspective projection, so perform the perspective divide + shadowPosition /= shadowPosition.w; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`:g?S+=` float maxDepth = shadowMap_cascadeSplits[1].w; + // Stop early if the eye depth exceeds the last cascade + if (depth > maxDepth) + { + return; + } + // Get the cascade based on the eye-space depth + vec4 weights = czm_cascadeWeights(depth); + // Apply normal offset + float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + // Transform position into the cascade + vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC; + // Get visibility + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); + // Fade out shadows that are far away + float shadowMapMaximumDistance = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.z; + float fade = max((depth - shadowMapMaximumDistance * 0.8) / (shadowMapMaximumDistance * 0.2), 0.0); + visibility = mix(visibility, 1.0, fade); +${h?` // Draw cascade colors for debugging + out_FragColor *= czm_cascadeColor(weights); +`:""}`:S+=` float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`,S+=` out_FragColor.rgb *= visibility; +} +`,T.push(S),new He({defines:C,sources:T})};var wh=$x;function vh(e){e=y(e,y.EMPTY_OBJECT);let t=e.context;this._enabled=y(e.enabled,!0),this._softShadows=y(e.softShadows,!1),this._normalOffset=y(e.normalOffset,!0),this.dirty=!0,this.fromLightSource=y(e.fromLightSource,!0),this.darkness=y(e.darkness,.3),this._darkness=this.darkness,this.fadingEnabled=y(e.fadingEnabled,!0),this.maximumDistance=y(e.maximumDistance,5e3),this._outOfView=!1,this._outOfViewPrevious=!1,this._needsUpdate=!0;let n=!0;(Ht.isInternetExplorer()||Ht.isEdge()||(Ht.isChrome()||Ht.isFirefox())&&Ht.isWindows()&&!t.depthTexture)&&(n=!1),this._polygonOffsetSupported=n,this._terrainBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.5,normalShading:!0,normalShadingSmooth:.3,depthBias:1e-4},this._primitiveBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.1,normalShading:!0,normalShadingSmooth:.05,depthBias:2e-5},this._pointBias={polygonOffset:!1,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:0,normalShading:!0,normalShadingSmooth:.1,depthBias:5e-4},this._depthAttachment=void 0,this._colorAttachment=void 0,this._shadowMapMatrix=new B,this._shadowMapTexture=void 0,this._lightDirectionEC=new m,this._lightPositionEC=new re,this._distance=0,this._lightCamera=e.lightCamera,this._shadowMapCamera=new uz,this._shadowMapCullingVolume=void 0,this._sceneCamera=void 0,this._boundingSphere=new ae,this._isPointLight=y(e.isPointLight,!1),this._pointLightRadius=y(e.pointLightRadius,100),this._cascadesEnabled=this._isPointLight?!1:y(e.cascadesEnabled,!0),this._numberOfCascades=this._cascadesEnabled?y(e.numberOfCascades,4):0,this._fitNearFar=!0,this._maximumCascadeDistances=[25,150,700,Number.MAX_VALUE],this._textureSize=new H,this._isSpotLight=!1,this._cascadesEnabled?this._shadowMapCamera.frustum=new xr:l(this._lightCamera.frustum.fov)&&(this._isSpotLight=!0),this._cascadeSplits=[new re,new re],this._cascadeMatrices=[new B,new B,new B,new B],this._cascadeDistances=new re;let i;this._isPointLight?i=6:this._cascadesEnabled?i=this._numberOfCascades:i=1,this._passes=new Array(i);for(let o=0;o<i;++o)this._passes[o]=new Cst(t);this.debugShow=!1,this.debugFreezeFrame=!1,this._debugFreezeFrame=!1,this._debugCascadeColors=!1,this._debugLightFrustum=void 0,this._debugCameraFrustum=void 0,this._debugCascadeFrustums=new Array(this._numberOfCascades),this._debugShadowViewCommand=void 0,this._usesDepthTexture=t.depthTexture,this._isPointLight&&(this._usesDepthTexture=!1),this._primitiveRenderState=void 0,this._terrainRenderState=void 0,this._pointRenderState=void 0,oY(this),this._clearCommand=new ii({depth:1,color:new z}),this._clearPassState=new Va(t),this._size=y(e.size,2048),this.size=this._size}vh.MAXIMUM_DISTANCE=2e4;function Cst(e){this.camera=new uz,this.passState=new Va(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function iY(e,t){return ze.fromCache({cull:{enabled:!0,face:_i.BACK},depthTest:{enabled:!0},colorMask:{red:e,green:e,blue:e,alpha:e},depthMask:!0,polygonOffset:{enabled:t.polygonOffset,factor:t.polygonOffsetFactor,units:t.polygonOffsetUnits}})}function oY(e){let t=!e._usesDepthTexture;e._primitiveRenderState=iY(t,e._primitiveBias),e._terrainRenderState=iY(t,e._terrainBias),e._pointRenderState=iY(t,e._pointBias)}vh.prototype.debugCreateRenderStates=function(){oY(this)};Object.defineProperties(vh.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this.dirty=this._enabled!==e,this._enabled=e}},normalOffset:{get:function(){return this._normalOffset},set:function(e){this.dirty=this._normalOffset!==e,this._normalOffset=e,this._terrainBias.normalOffset=e,this._primitiveBias.normalOffset=e,this._pointBias.normalOffset=e}},softShadows:{get:function(){return this._softShadows},set:function(e){this.dirty=this._softShadows!==e,this._softShadows=e}},size:{get:function(){return this._size},set:function(e){vst(this,e)}},outOfView:{get:function(){return this._outOfView}},shadowMapCullingVolume:{get:function(){return this._shadowMapCullingVolume}},passes:{get:function(){return this._passes}},isPointLight:{get:function(){return this._isPointLight}},debugCascadeColors:{get:function(){return this._debugCascadeColors},set:function(e){this.dirty=this._debugCascadeColors!==e,this._debugCascadeColors=e}}});function rY(e){let t=e._passes.length;for(let n=0;n<t;++n){let i=e._passes[n],o=i.framebuffer;l(o)&&!o.isDestroyed()&&o.destroy(),i.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function Tst(e,t){let n=new Gl({context:t,width:e._textureSize.x,height:e._textureSize.y,format:gc.DEPTH_COMPONENT16}),i=new Bt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:ct.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,sampler:dn.NEAREST}),o=new Hs({context:t,depthRenderbuffer:n,colorTextures:[i],destroyAttachments:!1}),r=e._passes.length;for(let s=0;s<r;++s){let a=e._passes[s];a.framebuffer=o,a.passState.framebuffer=o}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function Est(e,t){let n=new Bt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:ct.DEPTH_STENCIL,pixelDatatype:Je.UNSIGNED_INT_24_8,sampler:dn.NEAREST}),i=new Hs({context:t,depthStencilTexture:n,destroyAttachments:!1}),o=e._passes.length;for(let r=0;r<o;++r){let s=e._passes[r];s.framebuffer=i,s.passState.framebuffer=i}e._shadowMapTexture=n,e._depthAttachment=n}function bst(e,t){let n=new Gl({context:t,width:e._textureSize.x,height:e._textureSize.y,format:gc.DEPTH_COMPONENT16}),i=new Ua({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:ct.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,sampler:dn.NEAREST}),o=[i.negativeX,i.negativeY,i.negativeZ,i.positiveX,i.positiveY,i.positiveZ];for(let r=0;r<6;++r){let s=new Hs({context:t,depthRenderbuffer:n,colorTextures:[o[r]],destroyAttachments:!1}),a=e._passes[r];a.framebuffer=s,a.passState.framebuffer=s}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function age(e,t){e._isPointLight?bst(e,t):e._usesDepthTexture?Est(e,t):Tst(e,t)}function Sst(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==te.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,oY(e),rY(e),age(e,t))}function wst(e,t){(!l(e._passes[0].framebuffer)||e._shadowMapTexture.width!==e._textureSize.x)&&(rY(e),age(e,t),Sst(e,t),cge(e,t))}function cge(e,t,n){n=y(n,0),(e._isPointLight||n===0)&&(e._clearCommand.framebuffer=e._passes[n].framebuffer,e._clearCommand.execute(t,e._clearPassState))}function vst(e,t){e._size=t;let n=e._passes,i=n.length,o=e._textureSize;if(e._isPointLight){t=kt.maximumCubeMapSize>=t?t:kt.maximumCubeMapSize,o.x=t,o.y=t;let r=new Ke(0,0,t,t);n[0].passState.viewport=r,n[1].passState.viewport=r,n[2].passState.viewport=r,n[3].passState.viewport=r,n[4].passState.viewport=r,n[5].passState.viewport=r}else i===1?(t=kt.maximumTextureSize>=t?t:kt.maximumTextureSize,o.x=t,o.y=t,n[0].passState.viewport=new Ke(0,0,t,t)):i===4&&(t=kt.maximumTextureSize>=t*2?t:kt.maximumTextureSize/2,o.x=t*2,o.y=t*2,n[0].passState.viewport=new Ke(0,0,t,t),n[1].passState.viewport=new Ke(t,0,t,t),n[2].passState.viewport=new Ke(0,t,t,t),n[3].passState.viewport=new Ke(t,t,t,t));e._clearPassState.viewport=new Ke(0,0,o.x,o.y);for(let r=0;r<i;++r){let s=n[r],a=s.passState.viewport,c=a.x/o.x,u=a.y/o.y,f=a.width/o.x,d=a.height/o.y;s.textureOffsets=new B(f,0,0,c,0,d,0,u,0,0,1,0,0,0,0,1)}}var Dst=new Ke;function Ist(e,t){let n;e._isPointLight?n=`uniform samplerCube shadowMap_textureCube; +in vec2 v_textureCoordinates; +void main() +{ + vec2 uv = v_textureCoordinates; + vec3 dir; + + if (uv.y < 0.5) + { + if (uv.x < 0.333) + { + dir.x = -1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 1.0; + } + else if (uv.x < 0.666) + { + dir.y = -1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 1.0; + } + else + { + dir.z = -1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 1.0; + } + } + else + { + if (uv.x < 0.333) + { + dir.x = 1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 3.0; + } + else if (uv.x < 0.666) + { + dir.y = 1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 3.0; + } + else + { + dir.z = 1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 3.0; + } + } + + float shadow = czm_unpackDepth(czm_textureCube(shadowMap_textureCube, dir)); + out_FragColor = vec4(vec3(shadow), 1.0); +} +`:n=`uniform sampler2D shadowMap_texture; +in vec2 v_textureCoordinates; +void main() +{ +${e._usesDepthTexture?` float shadow = texture(shadowMap_texture, v_textureCoordinates).r; +`:` float shadow = czm_unpackDepth(texture(shadowMap_texture, v_textureCoordinates)); +`} out_FragColor = vec4(vec3(shadow), 1.0); +} +`;let i=t.createViewportQuadCommand(n,{uniformMap:{shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture}}});return i.pass=be.OVERLAY,i}function Pst(e,t){let n=t.context,i=t.context.drawingBufferWidth,o=t.context.drawingBufferHeight,r=Math.min(i,o)*.3,s=Dst;s.x=i-r,s.y=0,s.width=r,s.height=r;let a=e._debugShadowViewCommand;l(a)||(a=Ist(e,n),e._debugShadowViewCommand=a),(!l(a.renderState)||!Ke.equals(a.renderState.viewport,s))&&(a.renderState=ze.fromCache({viewport:Ke.clone(s)})),t.commandList.push(e._debugShadowViewCommand)}var Dh=new Array(8);Dh[0]=new re(-1,-1,-1,1);Dh[1]=new re(1,-1,-1,1);Dh[2]=new re(1,1,-1,1);Dh[3]=new re(-1,1,-1,1);Dh[4]=new re(-1,-1,1,1);Dh[5]=new re(1,-1,1,1);Dh[6]=new re(1,1,1,1);Dh[7]=new re(-1,1,1,1);var Gy=new B,sY=new Array(8);for(let e=0;e<8;++e)sY[e]=new re;function Ost(e,t){let n=new Tt({geometry:new id({minimum:new m(-.5,-.5,-.5),maximum:new m(.5,.5,.5)}),attributes:{color:Vt.fromColor(t)}}),i=new Tt({geometry:new Zp({radius:.5}),attributes:{color:Vt.fromColor(t)}});return new wn({geometryInstances:[n,i],appearance:new rn({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}var Mst=[z.RED,z.GREEN,z.BLUE,z.MAGENTA],Rst=new m;function Bst(e,t){Pst(e,t);let n=e.debugFreezeFrame&&!e._debugFreezeFrame;if(e._debugFreezeFrame=e.debugFreezeFrame,e.debugFreezeFrame&&(n&&(e._debugCameraFrustum=e._debugCameraFrustum&&e._debugCameraFrustum.destroy(),e._debugCameraFrustum=new Th({camera:e._sceneCamera,color:z.CYAN,updateOnChange:!1})),e._debugCameraFrustum.update(t)),e._cascadesEnabled){if(e.debugFreezeFrame){n&&(e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=new Th({camera:e._shadowMapCamera,color:z.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t);for(let i=0;i<e._numberOfCascades;++i)n&&(e._debugCascadeFrustums[i]=e._debugCascadeFrustums[i]&&e._debugCascadeFrustums[i].destroy(),e._debugCascadeFrustums[i]=new Th({camera:e._passes[i].camera,color:Mst[i],updateOnChange:!1})),e._debugCascadeFrustums[i].update(t)}}else if(e._isPointLight){if(!l(e._debugLightFrustum)||e._needsUpdate){let i=e._shadowMapCamera.positionWC,o=Ne.IDENTITY,r=e._pointLightRadius*2,s=m.fromElements(r,r,r,Rst),a=B.fromTranslationQuaternionRotationScale(i,o,s,Gy);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=Ost(a,z.YELLOW)}e._debugLightFrustum.update(t)}else(!l(e._debugLightFrustum)||e._needsUpdate)&&(e._debugLightFrustum=new Th({camera:e._shadowMapCamera,color:z.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function uz(){this.viewMatrix=new B,this.inverseViewMatrix=new B,this.frustum=void 0,this.positionCartographic=new he,this.positionWC=new m,this.directionWC=m.clone(m.UNIT_Z),this.upWC=m.clone(m.UNIT_Y),this.rightWC=m.clone(m.UNIT_X),this.viewProjectionMatrix=new B}uz.prototype.clone=function(e){B.clone(e.viewMatrix,this.viewMatrix),B.clone(e.inverseViewMatrix,this.inverseViewMatrix),this.frustum=e.frustum.clone(this.frustum),he.clone(e.positionCartographic,this.positionCartographic),m.clone(e.positionWC,this.positionWC),m.clone(e.directionWC,this.directionWC),m.clone(e.upWC,this.upWC),m.clone(e.rightWC,this.rightWC)};var Lst=new B(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);uz.prototype.getViewProjection=function(){let e=this.viewMatrix,t=this.frustum.projectionMatrix;return B.multiply(t,e,this.viewProjectionMatrix),B.multiply(Lst,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var Nst=new Array(5),Fst=new bi,Ust=new Array(4),lge=new m,uge=new m;function Vst(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=i.frustum.near,r=i.frustum.far,s=e._numberOfCascades,a,c=r-o,u=r/o,f=.9,d=!1;t.shadowState.closestObjectSize<200&&(d=!0,f=.9);let p=Ust,g=Nst;for(g[0]=o,g[s]=r,a=0;a<s;++a){let N=(a+1)/s,_=o*Math.pow(u,N),b=o+c*N,w=P.lerp(b,_,f);g[a+1]=w,p[a]=w-g[a]}if(d){for(a=0;a<s;++a)p[a]=Math.min(p[a],e._maximumCascadeDistances[a]);let N=g[0];for(a=0;a<s-1;++a)N+=p[a],g[a+1]=N}re.unpack(g,0,e._cascadeSplits[0]),re.unpack(g,1,e._cascadeSplits[1]),re.unpack(p,0,e._cascadeDistances);let h=n.frustum,A=h.left,x=h.right,C=h.bottom,T=h.top,E=h.near,S=h.far,v=n.positionWC,D=n.directionWC,O=n.upWC,M=i.frustum.clone(Fst),L=n.getViewProjection();for(a=0;a<s;++a){M.near=g[a],M.far=g[a+1];let N=B.multiply(M.projectionMatrix,i.viewMatrix,Gy),_=B.inverse(N,Gy),b=B.multiply(L,_,Gy),w=m.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,lge),I=m.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,uge);for(let G=0;G<8;++G){let U=re.clone(Dh[G],sY[G]);B.multiplyByVector(b,U,U),m.divideByScalar(U,U.w,U),m.minimumByComponent(U,w,w),m.maximumByComponent(U,I,I)}w.x=Math.max(w.x,0),w.y=Math.max(w.y,0),w.z=0,I.x=Math.min(I.x,1),I.y=Math.min(I.y,1),I.z=Math.min(I.z,1);let R=e._passes[a],F=R.camera;F.clone(n);let k=F.frustum;k.left=A+w.x*(x-A),k.right=A+I.x*(x-A),k.bottom=C+w.y*(T-C),k.top=C+I.y*(T-C),k.near=E+w.z*(S-E),k.far=E+I.z*(S-E),R.cullingVolume=F.frustum.computeCullingVolume(v,D,O);let V=e._cascadeMatrices[a];B.multiply(F.getViewProjection(),i.inverseViewMatrix,V),B.multiply(R.textureOffsets,V,V)}}var kst=new B,zst=new m,Hst=new m,rge=new m;function Gst(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=B.multiply(i.frustum.projectionMatrix,i.viewMatrix,Gy),r=B.inverse(o,Gy),s=n.directionWC,a=i.directionWC;m.equalsEpsilon(s,a,P.EPSILON10)&&(a=i.upWC);let c=m.cross(s,a,zst);a=m.cross(c,s,Hst),m.normalize(a,a),m.normalize(c,c);let u=m.fromElements(0,0,0,rge),f=B.computeView(u,s,a,c,kst),d=B.multiply(f,r,Gy),p=m.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,lge),g=m.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,uge);for(let S=0;S<8;++S){let v=re.clone(Dh[S],sY[S]);B.multiplyByVector(d,v,v),m.divideByScalar(v,v.w,v),m.minimumByComponent(v,p,p),m.maximumByComponent(v,g,g)}g.z+=1e3,p.z-=10;let h=rge;h.x=-(.5*(p.x+g.x)),h.y=-(.5*(p.y+g.y)),h.z=-g.z;let A=B.fromTranslation(h,Gy);f=B.multiply(A,f,f);let x=.5*(g.x-p.x),C=.5*(g.y-p.y),T=g.z-p.z,E=n.frustum;E.left=-x,E.right=x,E.bottom=-C,E.top=C,E.near=.01,E.far=T,B.clone(f,n.viewMatrix),B.inverse(f,n.inverseViewMatrix),B.getTranslation(n.inverseViewMatrix,n.positionWC),t.mapProjection.ellipsoid.cartesianToCartographic(n.positionWC,n.positionCartographic),m.clone(s,n.directionWC),m.clone(a,n.upWC),m.clone(c,n.rightWC)}var Wst=[new m(-1,0,0),new m(0,-1,0),new m(0,0,-1),new m(1,0,0),new m(0,1,0),new m(0,0,1)],jst=[new m(0,-1,0),new m(0,0,-1),new m(0,-1,0),new m(0,-1,0),new m(0,0,1),new m(0,-1,0)],Yst=[new m(0,0,1),new m(1,0,0),new m(-1,0,0),new m(0,0,-1),new m(1,0,0),new m(1,0,0)];function qst(e,t){let n=new bi;n.fov=P.PI_OVER_TWO,n.near=1,n.far=e._pointLightRadius,n.aspectRatio=1;for(let i=0;i<6;++i){let o=e._passes[i].camera;o.positionWC=e._shadowMapCamera.positionWC,o.positionCartographic=t.mapProjection.ellipsoid.cartesianToCartographic(o.positionWC,o.positionCartographic),o.directionWC=Wst[i],o.upWC=jst[i],o.rightWC=Yst[i],B.computeView(o.positionWC,o.directionWC,o.upWC,o.rightWC,o.viewMatrix),B.inverse(o.viewMatrix,o.inverseViewMatrix),o.frustum=n}}var Xst=new m,Kst=new m,fge=new ae,sge=fge.center;function Jst(e,t){let n=e._sceneCamera,i=e._shadowMapCamera,o=fge;if(e._cascadesEnabled){if(n.frustum.near>=e.maximumDistance){e._outOfView=!0,e._needsUpdate=!1;return}let r=t.mapProjection.ellipsoid.geodeticSurfaceNormal(n.positionWC,Xst),s=m.negate(i.directionWC,Kst),a=m.dot(r,s);if(e.fadingEnabled){let c=P.clamp(a/.1,0,1);e._darkness=P.lerp(1,e.darkness,c)}else e._darkness=e.darkness;if(a<0){e._outOfView=!0,e._needsUpdate=!1;return}e._needsUpdate=!0,e._outOfView=!1}else if(e._isPointLight)o.center=i.positionWC,o.radius=e._pointLightRadius,e._outOfView=t.cullingVolume.computeVisibility(o)===$t.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),ae.clone(o,e._boundingSphere);else{let r=i.frustum.far/2,s=m.add(i.positionWC,m.multiplyByScalar(i.directionWC,r,sge),sge);o.center=s,o.radius=r,e._outOfView=t.cullingVolume.computeVisibility(o)===$t.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),ae.clone(o,e._boundingSphere)}}function Zst(e,t){let n=t.camera,i=e._lightCamera,o=e._sceneCamera,r=e._shadowMapCamera;e._cascadesEnabled?m.clone(i.directionWC,r.directionWC):e._isPointLight?m.clone(i.positionWC,r.positionWC):r.clone(i);let s=e._lightDirectionEC;B.multiplyByPointAsVector(n.viewMatrix,r.directionWC,s),m.normalize(s,s),m.negate(s,s),B.multiplyByPoint(n.viewMatrix,r.positionWC,e._lightPositionEC),e._lightPositionEC.w=e._pointLightRadius;let a,c;e._fitNearFar?(a=Math.min(t.shadowState.nearPlane,e.maximumDistance),c=Math.min(t.shadowState.farPlane,e.maximumDistance),c=Math.max(c,a+1)):(a=n.frustum.near,c=e.maximumDistance),e._sceneCamera=so.clone(n,o),n.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=a,e._sceneCamera.frustum.far=c,e._distance=c-a,Jst(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}vh.prototype.update=function(e){if(Zst(this,e),this._needsUpdate)if(wst(this,e.context),this._isPointLight&&qst(this,e),this._cascadesEnabled&&(Gst(this,e),this._numberOfCascades>1&&Vst(this,e)),this._isPointLight)this._shadowMapCullingVolume=Kr.fromBoundingSphere(this._boundingSphere);else{let t=this._shadowMapCamera,n=t.positionWC,i=t.directionWC,o=t.upWC;this._shadowMapCullingVolume=t.frustum.computeCullingVolume(n,i,o),this._passes.length===1&&this._passes[0].camera.clone(t)}if(this._passes.length===1){let t=this._sceneCamera.inverseViewMatrix;B.multiply(this._shadowMapCamera.getViewProjection(),t,this._shadowMapMatrix)}this.debugShow&&Bst(this,e)};vh.prototype.updatePass=function(e,t){cge(this,e,t)};var Qst=new H;function dge(e,t,n){let i=e._isPointLight?e._pointBias:n?e._terrainBias:e._primitiveBias,o={shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture},shadowMap_matrix:function(){return e._shadowMapMatrix},shadowMap_cascadeSplits:function(){return e._cascadeSplits},shadowMap_cascadeMatrices:function(){return e._cascadeMatrices},shadowMap_lightDirectionEC:function(){return e._lightDirectionEC},shadowMap_lightPositionEC:function(){return e._lightPositionEC},shadowMap_cascadeDistances:function(){return e._cascadeDistances},shadowMap_texelSizeDepthBiasAndNormalShadingSmooth:function(){let r=Qst;return r.x=1/e._textureSize.x,r.y=1/e._textureSize.y,re.fromElements(r.x,r.y,i.depthBias,i.normalShadingSmooth,this.combinedUniforms1)},shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness:function(){return re.fromElements(i.normalOffsetScale,e._distance,e.maximumDistance,e._darkness,this.combinedUniforms2)},combinedUniforms1:new re,combinedUniforms2:new re};return _t(t,o,!1)}function $st(e,t,n,i,o,r){let s,a,c;if(l(r)&&(s=r.shaderProgram,a=r.renderState,c=r.uniformMap),r=it.shallowClone(n,r),r.castShadows=!0,r.receiveShadows=!1,!l(s)||o!==n.shaderProgram.id||t){let u=n.shaderProgram,f=n.pass===be.GLOBE,d=n.pass!==be.TRANSLUCENT,p=e._isPointLight,g=e._usesDepthTexture,h=wh.getShadowCastShaderKeyword(p,f,g,d);if(s=i.shaderCache.getDerivedShaderProgram(u,h),!l(s)){let x=u.vertexShaderSource,C=u.fragmentShaderSource,T=wh.createShadowCastVertexShader(x,p,f),E=wh.createShadowCastFragmentShader(C,p,g,d);s=i.shaderCache.createDerivedShaderProgram(u,h,{vertexShaderSource:T,fragmentShaderSource:E,attributeLocations:u._attributeLocations})}a=e._primitiveRenderState,p?a=e._pointRenderState:f&&(a=e._terrainRenderState),n.renderState.cull.enabled||(a=Ye(a,!1),a.cull=Ye(a.cull,!1),a.cull.enabled=!1,a=ze.fromCache(a)),c=dge(e,n.uniformMap,f)}return r.shaderProgram=s,r.renderState=a,r.uniformMap=c,r}vh.createReceiveDerivedCommand=function(e,t,n,i,o){l(o)||(o={});let r=e.length>0,s=t.shaderProgram,a=s.vertexShaderSource,c=s.fragmentShaderSource,u=t.pass===be.GLOBE,f=!1;if(u&&(f=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&r){let d,p;l(o.receiveCommand)&&(d=o.receiveCommand.shaderProgram,p=o.receiveCommand.uniformMap),o.receiveCommand=it.shallowClone(t,o.receiveCommand),o.castShadows=!1,o.receiveShadows=!0;let g=o.receiveShaderCastShadows!==t.castShadows,h=o.receiveShaderProgramId!==t.shaderProgram.id;if(!l(d)||h||n||g){let A=wh.getShadowReceiveShaderKeyword(e[0],t.castShadows,u,f);if(d=i.shaderCache.getDerivedShaderProgram(s,A),!l(d)){let x=wh.createShadowReceiveVertexShader(a,u,f),C=wh.createShadowReceiveFragmentShader(c,e[0],t.castShadows,u,f);d=i.shaderCache.createDerivedShaderProgram(s,A,{vertexShaderSource:x,fragmentShaderSource:C,attributeLocations:s._attributeLocations})}p=dge(e[0],t.uniformMap,u)}o.receiveCommand.shaderProgram=d,o.receiveCommand.uniformMap=p,o.receiveShaderProgramId=t.shaderProgram.id,o.receiveShaderCastShadows=t.castShadows}return o};vh.createCastDerivedCommand=function(e,t,n,i,o){if(l(o)||(o={}),t.castShadows){let r=o.castCommands;l(r)||(r=o.castCommands=[]);let s=o.castShaderProgramId,a=e.length;r.length=a;for(let c=0;c<a;++c)r[c]=$st(e[c],n,t,i,s,r[c]);o.castShaderProgramId=t.shaderProgram.id}return o};vh.prototype.isDestroyed=function(){return!1};vh.prototype.destroy=function(){rY(this),this._debugLightFrustum=this._debugLightFrustum&&this._debugLightFrustum.destroy(),this._debugCameraFrustum=this._debugCameraFrustum&&this._debugCameraFrustum.destroy(),this._debugShadowViewCommand=this._debugShadowViewCommand&&this._debugShadowViewCommand.shaderProgram&&this._debugShadowViewCommand.shaderProgram.destroy();for(let e=0;e<this._numberOfCascades;++e)this._debugCascadeFrustums[e]=this._debugCascadeFrustums[e]&&this._debugCascadeFrustums[e].destroy();return ue(this)};var N_=vh;var YL=`uniform sampler2D u_opaqueDepthTexture; +uniform sampler2D u_translucentDepthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float opaqueDepth = texture(u_opaqueDepthTexture, v_textureCoordinates).r; + float translucentDepth = texture(u_translucentDepthTexture, v_textureCoordinates).r; + translucentDepth = czm_branchFreeTernary(translucentDepth > opaqueDepth, 1.0, translucentDepth); + out_FragColor = czm_packDepth(translucentDepth); +} +`;var eC=`uniform sampler2D colorTexture; + +#ifdef DEBUG_SHOW_DEPTH +uniform sampler2D u_packedTranslucentDepth; +#endif + +in vec2 v_textureCoordinates; + +void main() +{ +#ifdef DEBUG_SHOW_DEPTH + if (v_textureCoordinates.x < 0.5) + { + out_FragColor.rgb = vec3(czm_unpackDepth(texture(u_packedTranslucentDepth, v_textureCoordinates))); + out_FragColor.a = 1.0; + } +#else + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef PICK + if (color == vec4(0.0)) + { + discard; + } +#else + // Reverse premultiplication process to get the correct composited result of the classification primitives + color.rgb /= color.a; +#endif + out_FragColor = color; +#endif +} +`;var eat=!1;function Wy(e){this._drawClassificationFBO=new di({createDepthAttachments:!1}),this._accumulationFBO=new di({createDepthAttachments:!1}),this._packFBO=new di,this._opaqueDepthStencilTexture=void 0,this._textureToComposite=void 0,this._translucentDepthStencilTexture=void 0,this._packDepthCommand=void 0,this._accumulateCommand=void 0,this._compositeCommand=void 0,this._copyCommand=void 0,this._clearColorCommand=new ii({color:new z(0,0,0,0),owner:this}),this._clearDepthStencilCommand=new ii({depth:1,stencil:0,owner:this}),this._supported=e.depthTexture,this._viewport=new Ke,this._rsDepth=void 0,this._rsAccumulate=void 0,this._rsComp=void 0,this._useScissorTest=void 0,this._scissorRectangle=void 0,this._hasTranslucentDepth=!1,this._frustumsDrawn=0}Object.defineProperties(Wy.prototype,{hasTranslucentDepth:{get:function(){return this._hasTranslucentDepth}}});function mge(e){e._textureToComposite=void 0,e._translucentDepthStencilTexture=e._translucentDepthStencilTexture&&!e._translucentDepthStencilTexture.isDestroyed()&&e._translucentDepthStencilTexture.destroy()}function hge(e){e._drawClassificationFBO.destroy(),e._accumulationFBO.destroy(),e._packFBO.destroy()}function tat(e,t,n,i){mge(e),e._translucentDepthStencilTexture=new Bt({context:t,width:n,height:i,pixelFormat:ct.DEPTH_STENCIL,pixelDatatype:Je.UNSIGNED_INT_24_8,sampler:dn.NEAREST})}function nat(e,t,n,i){hge(e),e._drawClassificationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._drawClassificationFBO.update(t,n,i),e._accumulationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._accumulationFBO.update(t,n,i),e._packFBO.update(t,n,i)}function iat(e,t,n,i){if(!e.isSupported())return;e._opaqueDepthStencilTexture=i;let o=e._opaqueDepthStencilTexture.width,r=e._opaqueDepthStencilTexture.height;e._drawClassificationFBO.isDirty(o,r)&&(tat(e,t,o,r),nat(e,t,o,r));let s,a;if(l(e._packDepthCommand)||(s=new He({sources:[YL]}),a={u_opaqueDepthTexture:function(){return e._opaqueDepthStencilTexture},u_translucentDepthTexture:function(){return e._translucentDepthStencilTexture}},e._packDepthCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),!l(e._compositeCommand)){s=new He({sources:[eC]}),a={colorTexture:function(){return e._textureToComposite}},eat&&(s.defines=["DEBUG_SHOW_DEPTH"],a.u_packedTranslucentDepth=function(){return e._packFBO.getColorTexture()}),e._compositeCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e});let f=e._compositeCommand,d=f.shaderProgram,p=t.shaderCache.createDerivedShaderProgram(d,"pick",{vertexShaderSource:d.vertexShaderSource,fragmentShaderSource:new He({sources:s.sources,defines:["PICK"]}),attributeLocations:d._attributeLocations}),g=it.shallowClone(f);g.shaderProgram=p,f.derivedCommands.pick=g}l(e._copyCommand)||(s=new He({sources:[eC]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._copyCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),l(e._accumulateCommand)||(s=new He({sources:[eC]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._accumulateCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),e._viewport.width=o,e._viewport.height=r;let c=!Ke.equals(e._viewport,n.viewport),u=c!==e._useScissorTest;e._useScissorTest=c,Ke.equals(e._scissorRectangle,n.viewport)||(e._scissorRectangle=Ke.clone(n.viewport,e._scissorRectangle),u=!0),(!l(e._rsDepth)||!Ke.equals(e._viewport,e._rsDepth.viewport)||u)&&(e._rsDepth=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packDepthCommand)&&(e._packDepthCommand.renderState=e._rsDepth),(!l(e._rsAccumulate)||!Ke.equals(e._viewport,e._rsAccumulate.viewport)||u)&&(e._rsAccumulate=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Hn.EQUAL,reference:Ft.CESIUM_3D_TILE_MASK}})),l(e._accumulateCommand)&&(e._accumulateCommand.renderState=e._rsAccumulate),(!l(e._rsComp)||!Ke.equals(e._viewport,e._rsComp.viewport)||u)&&(e._rsComp=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:mn.ALPHA_BLEND})),l(e._compositeCommand)&&(e._compositeCommand.renderState=e._rsComp,e._compositeCommand.derivedCommands.pick.renderState=e._rsComp)}Wy.prototype.executeTranslucentCommands=function(e,t,n,i,o){let r=i.length,s,a,c=e.frameState.useLogDepth,u=e.context,f=n.framebuffer;for(a=0;a<r;++a)if(s=i[a],s=c?s.derivedCommands.logDepth.command:s,s.depthForTranslucentClassification){this._hasTranslucentDepth=!0;break}if(this._hasTranslucentDepth){for(iat(this,u,n,o),n.framebuffer=this._drawClassificationFBO.framebuffer,this._clearDepthStencilCommand.execute(u,n),a=0;a<r;++a){if(s=i[a],s=c?s.derivedCommands.logDepth.command:s,!s.depthForTranslucentClassification)continue;let d=s.derivedCommands.depth.depthOnlyCommand;t(d,e,u,n)}this._frustumsDrawn+=this._hasTranslucentDepth?1:0,this._hasTranslucentDepth&&(n.framebuffer=this._packFBO.framebuffer,this._packDepthCommand.execute(u,n)),n.framebuffer=f}};Wy.prototype.executeClassificationCommands=function(e,t,n,i){if(!this._hasTranslucentDepth)return;let o=e.context,r=o.uniformState,s=n.framebuffer;this._frustumsDrawn===2&&(n.framebuffer=this._accumulationFBO.framebuffer,this._copyCommand.execute(o,n)),n.framebuffer=this._drawClassificationFBO.framebuffer,this._frustumsDrawn>1&&this._clearColorCommand.execute(o,n),r.updatePass(be.CESIUM_3D_TILE_CLASSIFICATION);let a=r.globeDepthTexture;r.globeDepthTexture=this._packFBO.getColorTexture();let c=i.commands[be.CESIUM_3D_TILE_CLASSIFICATION],u=i.indices[be.CESIUM_3D_TILE_CLASSIFICATION];for(let f=0;f<u;++f)t(c[f],e,o,n);r.globeDepthTexture=a,n.framebuffer=s,this._frustumsDrawn!==1&&(n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=s)};Wy.prototype.execute=function(e,t){if(!this._hasTranslucentDepth)return;this._frustumsDrawn===1?this._textureToComposite=this._drawClassificationFBO.getColorTexture():this._textureToComposite=this._accumulationFBO.getColorTexture(),(e.frameState.passes.pick?this._compositeCommand.derivedCommands.pick:this._compositeCommand).execute(e.context,t),oat(this,e,t)};function oat(e,t,n){if(!e._hasTranslucentDepth)return;let i=n.framebuffer;n.framebuffer=e._drawClassificationFBO.framebuffer,e._clearColorCommand.execute(t._context,n),n.framebuffer=i,e._frustumsDrawn>1&&(n.framebuffer=e._accumulationFBO.framebuffer,e._clearColorCommand.execute(t._context,n)),e._hasTranslucentDepth=!1,e._frustumsDrawn=0}Wy.prototype.isSupported=function(){return this._supported};Wy.prototype.isDestroyed=function(){return!1};Wy.prototype.destroy=function(){return mge(this),hge(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._packDepthCommand)&&(this._packDepthCommand.shaderProgram=this._packDepthCommand.shaderProgram&&this._packDepthCommand.shaderProgram.destroy()),ue(this)};var qL=Wy;function rat(){this.command=void 0,this.near=void 0,this.far=void 0}function fz(e,t,n){let i=e.context,o;i.depthTexture&&(o=new FL);let r;e._useOIT&&i.depthTexture&&(r=new kL(i));let s=new Va(i);s.viewport=Ke.clone(n),this.camera=t,this._cameraClone=so.clone(t),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=n,this.passState=s,this.pickFramebuffer=new jL(i),this.pickDepthFramebuffer=new HL,this.sceneFramebuffer=new Qx,this.globeDepth=o,this.globeTranslucencyFramebuffer=new UL,this.oit=r,this.translucentTileClassification=new qL(i),this.pickDepths=[],this.frustumCommandsList=[],this.debugFrustumStatistics=void 0,this._commandExtents=[]}var pge=new m,_ge=new m;function sat(e,t){let n=Math.max(Math.abs(e.x),Math.abs(t.x)),i=Math.max(Math.abs(e.y),Math.abs(t.y)),o=Math.max(Math.abs(e.z),Math.abs(t.z));return Math.max(Math.max(n,i),o)}function aat(e,t,n){let i=1/Math.max(1,sat(e.position,t.position));return m.multiplyByScalar(e.position,i,pge),m.multiplyByScalar(t.position,i,_ge),m.equalsEpsilon(pge,_ge,n)&&m.equalsEpsilon(e.direction,t.direction,n)&&m.equalsEpsilon(e.up,t.up,n)&&m.equalsEpsilon(e.right,t.right,n)&&B.equalsEpsilon(e.transform,t.transform,n)&&e.frustum.equalsEpsilon(t.frustum,n)}fz.prototype.checkForCameraUpdates=function(e){let t=this.camera,n=this._cameraClone;return aat(t,n,P.EPSILON15)?(this._cameraStartFired&&gi()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=gi(),so.clone(t,n),!0)};function cat(e,t,n,i){let o=t.frameState,r=o.camera,s=o.useLogDepth?t.logarithmicDepthFarToNearRatio:t.farToNearRatio,a=t.mode===ne.SCENE2D,c=t.nearToFarDistance2D;i*=1+P.EPSILON2,n=Math.min(Math.max(n,r.frustum.near),r.frustum.far),i=Math.max(Math.min(i,r.frustum.far),n);let u;a?(i=Math.min(i,r.position.z+t.nearToFarDistance2D),n=Math.min(n,i),u=Math.ceil(Math.max(1,i-n)/t.nearToFarDistance2D)):u=Math.ceil(Math.log(i/n)/Math.log(s));let f=e.frustumCommandsList;f.length=u;for(let d=0;d<u;++d){let p,g;a?(p=Math.min(i-c,n+d*c),g=Math.min(i,p+c)):(p=Math.max(n,Math.pow(s,d)*n),g=Math.min(i,s*p));let h=f[d];l(h)?(h.near=p,h.far=g):h=f[d]=new NL(p,g)}}function lat(e,t,n,i,o){t.debugShowFrustums&&(n.debugOverlappingFrustums=0);let r=e.frustumCommandsList,s=r.length;for(let a=0;a<s;++a){let c=r[a],u=c.near,f=c.far;if(i>f)continue;if(o<u)break;let d=n.pass,p=c.indices[d]++;if(c.commands[d][p]=n,t.debugShowFrustums&&(n.debugOverlappingFrustums|=1<<a),n.executeInClosestFrustum)break}if(t.debugShowFrustums){let a=e.debugFrustumStatistics.commandsInFrustums;a[n.debugOverlappingFrustums]=l(a[n.debugOverlappingFrustums])?a[n.debugOverlappingFrustums]+1:1,++e.debugFrustumStatistics.totalCommands}t.updateDerivedCommands(n)}var gge=new Kr,uat=new Ac;fz.prototype.createPotentiallyVisibleSet=function(e){let t=e.frameState,n=t.camera,i=n.directionWC,o=n.positionWC,r=e._computeCommandList,s=e._overlayCommandList,a=t.commandList;e.debugShowFrustums&&(this.debugFrustumStatistics={totalCommands:0,commandsInFrustums:{}});let c=this.frustumCommandsList,u=c.length,f=be.NUMBER_OF_PASSES;for(let b=0;b<u;++b)for(let w=0;w<f;++w)c[b].indices[w]=0;r.length=0,s.length=0;let d=this._commandExtents,p=d.length,g=0,h=+Number.MAX_VALUE,A=-Number.MAX_VALUE,x=t.shadowState.shadowsEnabled,C=+Number.MAX_VALUE,T=-Number.MAX_VALUE,E=Number.MAX_VALUE,S=t.mode===ne.SCENE3D?t.occluder:void 0,v=t.cullingVolume,D=gge.planes;for(let b=0;b<5;++b)D[b]=v.planes[b];v=gge;let O=a.length;for(let b=0;b<O;++b){let w=a[b],I=w.pass;if(I===be.COMPUTE)r.push(w);else if(I===be.OVERLAY)s.push(w);else{let R,F,k=w.boundingVolume;if(l(k)){if(!e.isVisible(w,v,S))continue;let G=k.computePlaneDistances(o,i,uat);if(R=G.start,F=G.stop,h=Math.min(h,R),A=Math.max(A,F),x&&w.receiveShadows&&R<N_.MAXIMUM_DISTANCE&&!(I===be.GLOBE&&R<-100&&F>100)){let U=F-R;I!==be.GLOBE&&R<100&&(E=Math.min(E,U)),C=Math.min(C,R),T=Math.max(T,F)}}else w instanceof ii?(R=n.frustum.near,F=n.frustum.far):(R=n.frustum.near,F=n.frustum.far,h=Math.min(h,R),A=Math.max(A,F));let V=d[g];l(V)||(V=d[g]=new rat),V.command=w,V.near=R,V.far=F,g++}}x&&(C=Math.min(Math.max(C,n.frustum.near),n.frustum.far),T=Math.max(Math.min(T,n.frustum.far),C)),x&&(t.shadowState.nearPlane=C,t.shadowState.farPlane=T,t.shadowState.closestObjectSize=E),cat(this,e,h,A);let M,L;for(M=0;M<g;M++)L=d[M],lat(this,e,L.command,L.near,L.far);if(g<p)for(M=g;M<p&&(L=d[M],!!l(L.command));M++)L.command=void 0;let N=c.length,_=t.frustumSplits;_.length=N+1;for(let b=0;b<N;++b)_[b]=c[b].near,b===N-1&&(_[b+1]=c[b].far)};fz.prototype.destroy=function(){this.pickFramebuffer=this.pickFramebuffer&&this.pickFramebuffer.destroy(),this.pickDepthFramebuffer=this.pickDepthFramebuffer&&this.pickDepthFramebuffer.destroy(),this.sceneFramebuffer=this.sceneFramebuffer&&this.sceneFramebuffer.destroy(),this.globeDepth=this.globeDepth&&this.globeDepth.destroy(),this.oit=this.oit&&this.oit.destroy(),this.translucentTileClassification=this.translucentTileClassification&&this.translucentTileClassification.destroy(),this.globeTranslucencyFramebuffer=this.globeTranslucencyFramebuffer&&this.globeTranslucencyFramebuffer.destroy();let e,t=this.pickDepths,n=t.length;for(e=0;e<n;++e)t[e].destroy()};var tC=fz;var Age=.1,fat=new Nf({pass:Po.MOST_DETAILED_PRELOAD}),dat=new Nf({pass:Po.MOST_DETAILED_PICK}),aY=new Nf({pass:Po.PICK});function wa(e){this._mostDetailedRayPicks=[],this.pickRenderStateCache={},this._pickPositionCache={},this._pickPositionCacheDirty=!1;let t=new Ke(0,0,1,1),n=new so(e);n.frustum=new tn({width:Age,aspectRatio:1,near:.1}),this._pickOffscreenView=new tC(e,n,t)}wa.prototype.update=function(){this._pickPositionCacheDirty=!0};wa.prototype.getPickDepth=function(e,t){let n=e.view.pickDepths,i=n[t];return l(i)||(i=new LL,n[t]=i),i};var mat=new xr,hat=new m,dz=new m,pat=new H,_at=new B;function gat(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2*(t.x-o.x)/o.width-1;c*=(s.right-s.left)*.5;let u=2*(o.height-t.y-o.y)/o.height-1;u*=(s.top-s.bottom)*.5;let f=B.clone(r.transform,_at);r._setTransform(B.IDENTITY);let d=m.clone(r.position,hat);m.multiplyByScalar(r.right,c,dz),m.add(dz,d,d),m.multiplyByScalar(r.up,u,dz),m.add(dz,d,d),r._setTransform(f),e.mode===ne.SCENE2D&&m.fromElements(d.z,d.x,d.y,d);let p=s.getPixelDimensions(o.width,o.height,1,1,pat),g=mat;return g.right=p.x*.5,g.left=-g.right,g.top=p.y*.5,g.bottom=-g.top,g.near=s.near,g.far=s.far,g.computeCullingVolume(d,r.directionWC,r.upWC)}var yat=new jc,Aat=new H;function xat(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.near,c=Math.tan(s.fovy*.5),u=s.aspectRatio*c,f=2*(t.x-o.x)/o.width-1,d=2*(o.height-t.y-o.y)/o.height-1,p=f*a*u,g=d*a*c,h=s.getPixelDimensions(o.width,o.height,1,1,Aat),A=h.x*n*.5,x=h.y*i*.5,C=yat;return C.top=g+x,C.bottom=g-x,C.right=p+A,C.left=p-A,C.near=a,C.far=s.far,C.computeCullingVolume(r.positionWC,r.directionWC,r.upWC)}function xge(e,t,n,i,o){let r=e.camera.frustum;return r instanceof tn||r instanceof xr?gat(e,t,n,i,o):xat(e,t,n,i,o)}var mS=3,XL=3,Ih=new Ke(0,0,mS,XL),Cge=new H,cY=new z(0,0,0,0);wa.prototype.pick=function(e,t,n,i){mS=y(n,3),XL=y(i,mS);let o=e.context,r=o.uniformState,s=e.frameState,a=e.defaultView;e.view=a;let c=a.viewport;c.x=0,c.y=0,c.width=o.drawingBufferWidth,c.height=o.drawingBufferHeight;let u=a.passState;u.viewport=Ke.clone(c,u.viewport);let f=Xi.transformWindowToDrawingBuffer(e,t,Cge);e.jobScheduler.disableThisFrame(),e.updateFrameState(),s.cullingVolume=xge(e,f,mS,XL,c),s.invertClassification=!1,s.passes.pick=!0,s.tilesetPassState=aY,r.update(s),e.updateEnvironment(),Ih.x=f.x-(mS-1)*.5,Ih.y=e.drawingBufferHeight-f.y-(XL-1)*.5,Ih.width=mS,Ih.height=XL,u=a.pickFramebuffer.begin(Ih,a.viewport),e.updateAndExecuteCommands(u,cY),e.resolveFramebuffers(u);let d=a.pickFramebuffer.end(Ih);return o.endFrame(),d};function Cat(e,t){let n=e.context,i=e.frameState,o=e.environmentState,r=e.defaultView;e.view=r;let s=r.viewport;s.x=0,s.y=0,s.width=n.drawingBufferWidth,s.height=n.drawingBufferHeight;let a=r.passState;a.viewport=Ke.clone(s,a.viewport),e.clearPasses(i.passes),i.passes.pick=!0,i.passes.depth=!0,i.cullingVolume=xge(e,t,1,1,s),i.tilesetPassState=aY,e.updateEnvironment(),o.renderTranslucentDepthForPick=!0,a=r.pickDepthFramebuffer.update(n,t,s),e.updateAndExecuteCommands(a,cY),e.resolveFramebuffers(a),n.endFrame()}var Tat=new bi,Eat=new jc,bat=new tn,Sat=new xr;wa.prototype.pickPositionWorldCoordinates=function(e,t,n){if(!e.useDepthPicking)return;let i=t.toString();if(this._pickPositionCacheDirty)this._pickPositionCache={},this._pickPositionCacheDirty=!1;else if(this._pickPositionCache.hasOwnProperty(i))return m.clone(this._pickPositionCache[i],n);let o=e.frameState,r=e.context,s=r.uniformState,a=e.defaultView;e.view=a;let c=Xi.transformWindowToDrawingBuffer(e,t,Cge);e.pickTranslucentDepth?Cat(e,c):(e.updateFrameState(),s.update(o),e.updateEnvironment()),c.y=e.drawingBufferHeight-c.y;let u=e.camera,f;l(u.frustum.fov)?f=u.frustum.clone(Tat):l(u.frustum.infiniteProjectionMatrix)?f=u.frustum.clone(Eat):l(u.frustum.width)?f=u.frustum.clone(bat):f=u.frustum.clone(Sat);let d=a.frustumCommandsList,p=d.length;for(let g=0;g<p;++g){let A=this.getPickDepth(e,g).getDepth(r,c.x,c.y);if(l(A)&&A>0&&A<1){let x=d[g],C;return e.mode===ne.SCENE2D?(C=u.position.z,u.position.z=C-x.near+1,f.far=Math.max(1,x.far-x.near),f.near=1,s.update(o),s.updateFrustum(f)):(f.near=x.near*(g!==0?e.opaqueFrustumNearOffset:1),f.far=x.far,s.updateFrustum(f)),n=Xi.drawingBufferToWgs84Coordinates(e,c,A,n),e.mode===ne.SCENE2D&&(u.position.z=C,s.update(o)),this._pickPositionCache[i]=m.clone(n),n}}this._pickPositionCache[i]=void 0};var wat=new he;wa.prototype.pickPosition=function(e,t,n){if(n=this.pickPositionWorldCoordinates(e,t,n),l(n)&&e.mode!==ne.SCENE3D){m.fromElements(n.y,n.z,n.x,n);let i=e.mapProjection,o=i.ellipsoid,r=i.unproject(n,wat);o.cartographicToCartesian(r,n)}return n};function Tge(e,t){let n,i,o=[],r=[],s=[],a=[];l(e)||(e=Number.MAX_VALUE);let c=t();for(;l(c);){let u=c.object,f=c.position,d=c.exclude;if(l(f)&&!l(u)){o.push(c);break}if(!l(u)||!l(u.primitive)||!d&&(o.push(c),0>=--e))break;let p=u.primitive,g=!1;typeof p.getGeometryInstanceAttributes=="function"&&l(u.id)&&(i=p.getGeometryInstanceAttributes(u.id),l(i)&&l(i.show)&&(g=!0,i.show=An.toValue(!1,i.show),s.push(i))),u instanceof xs&&(g=!0,u.show=!1,a.push(u)),g||(p.show=!1,r.push(p)),c=t()}for(n=0;n<r.length;++n)r[n].show=!0;for(n=0;n<s.length;++n)i=s[n],i.show=An.toValue(!0,i.show);for(n=0;n<a.length;++n)a[n].show=!0;return o}wa.prototype.drillPick=function(e,t,n,i,o){let r=this;return Tge(n,function(){let c=r.pick(e,t,i,o);if(l(c))return{object:c,position:void 0,exclude:!1}}).map(function(c){return c.object})};var yge=new m,vat=new m;function Dat(e,t,n){this.ray=e,this.width=t,this.tilesets=n,this.ready=!1;let i=this;this.promise=new Promise(o=>{i._completePick=()=>{o()}})}function Ege(e,t,n,i){let o=t.direction,r=m.mostOrthogonalAxis(o,yge),s=m.cross(o,r,yge),a=m.cross(o,s,vat);return i.position=t.origin,i.direction=o,i.up=a,i.right=s,i.frustum.width=y(n,Age),i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC)}function Iat(e,t,n){let i=t.frameState,o=n.ray,r=n.width,s=n.tilesets,a=e._pickOffscreenView.camera,c=Ege(e,o,r,a),u=fat;u.camera=a,u.cullingVolume=c;let f=!0,d=s.length;for(let p=0;p<d;++p){let g=s[p];g.show&&t.primitives.contains(g)&&(g.updateForPass(i,u),f=f&&u.ready)}return f&&n._completePick(),f}wa.prototype.updateMostDetailedRayPicks=function(e){let t=this._mostDetailedRayPicks;for(let n=0;n<t.length;++n)Iat(this,e,t[n])&&t.splice(n--,1)};function bge(e,t,n){let i=e.length;for(let o=0;o<i;++o){let r=e.get(o);r.show&&(l(r.isCesium3DTileset)?(!l(t)||t.indexOf(r)===-1)&&n.push(r):r instanceof Tl&&bge(r,t,n))}}function mz(e,t,n,i,o,r){let s=[];if(bge(t.primitives,i,s),s.length===0)return Promise.resolve(r());let a=new Dat(n,o,s);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return r()})}function Pat(e,t){return!l(e)||!l(t)||t.length===0?!1:t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1}function Oat(e,t,n,i,o,r,s){let a=t.context,c=a.uniformState,u=t.frameState,f=e._pickOffscreenView;t.view=f,Ege(e,n,o,f.camera),Ih=Ke.clone(f.viewport,Ih);let d=f.pickFramebuffer.begin(Ih,f.viewport);t.jobScheduler.disableThisFrame(),t.updateFrameState(),u.invertClassification=!1,u.passes.pick=!0,u.passes.offscreen=!0,s?u.tilesetPassState=dat:u.tilesetPassState=aY,c.update(u),t.updateEnvironment(),t.updateAndExecuteCommands(d,cY),t.resolveFramebuffers(d);let p,g=f.pickFramebuffer.end(Ih);if(t.context.depthTexture){let h=f.frustumCommandsList.length;for(let A=0;A<h;++A){let C=e.getPickDepth(t,A).getDepth(a,0,0);if(l(C)&&C>0&&C<1){let T=f.frustumCommandsList[A],E=T.near*(A!==0?t.opaqueFrustumNearOffset:1),S=T.far,v=E+C*(S-E);p=Dn.getPoint(n,v);break}}}if(t.view=t.defaultView,a.endFrame(),l(g)||l(p))return{object:g,position:p,exclude:!l(p)&&r||Pat(g,i)}}function Sge(e,t,n,i,o,r,s,a){return Tge(i,function(){return Oat(e,t,n,o,r,s,a)})}function hS(e,t,n,i,o,r,s){let a=Sge(e,t,n,1,i,o,r,s);if(a.length>0)return a[0]}function wge(e,t,n,i,o,r,s,a){return Sge(e,t,n,i,o,r,s,a)}function hz(e,t){return new Promise((n,i)=>{t.then(function(o){let r=e.postRender.addEventListener(function(){r(),n(o)});e.requestRender()}).catch(function(o){i(o)})})}wa.prototype.pickFromRay=function(e,t,n,i){return hS(this,e,t,n,i,!1,!1)};wa.prototype.drillPickFromRay=function(e,t,n,i,o){return wge(this,e,t,n,i,o,!1,!1)};wa.prototype.pickFromRayMostDetailed=function(e,t,n,i){let o=this;return t=Dn.clone(t),n=l(n)?n.slice():n,hz(e,mz(o,e,t,n,i,function(){return hS(o,e,t,n,i,!1,!0)}))};wa.prototype.drillPickFromRayMostDetailed=function(e,t,n,i,o){let r=this;return t=Dn.clone(t),i=l(i)?i.slice():i,hz(e,mz(r,e,t,i,o,function(){return wge(r,e,t,n,i,o,!1,!0)}))};var Mat=new m,Rat=new m,Bat=new Dn,vge=new he;function lY(e,t){let n=e.globe,i=l(n)?n.ellipsoid:e.mapProjection.ellipsoid,o=ri._defaultMaxTerrainHeight,r=i.geodeticSurfaceNormalCartographic(t,Rat),s=he.toCartesian(t,i,Mat),a=Bat;a.origin=s,a.direction=r;let c=new Dn;return Dn.getPoint(a,o,c.origin),m.negate(r,c.direction),c}function Dge(e,t){let n=e.globe,i=l(n)?n.ellipsoid:e.mapProjection.ellipsoid,o=he.fromCartesian(t,i,vge);return lY(e,o)}function Ige(e,t){let n=e.globe,i=l(n)?n.ellipsoid:e.mapProjection.ellipsoid;return he.fromCartesian(t,i,vge).height}function Lat(e,t,n,i,o){let r=lY(t,n);return mz(e,t,r,i,o,function(){let s=hS(e,t,r,i,o,!0,!0);if(l(s))return Ige(t,s.position)})}function Nat(e,t,n,i,o,r){let s=Dge(t,n);return mz(e,t,s,i,o,function(){let a=hS(e,t,s,i,o,!0,!0);if(l(a))return m.clone(a.position,r)})}wa.prototype.sampleHeight=function(e,t,n,i){let o=lY(e,t),r=hS(this,e,o,n,i,!0,!1);if(l(r))return Ige(e,r.position)};wa.prototype.clampToHeight=function(e,t,n,i,o){let r=Dge(e,t),s=hS(this,e,r,n,i,!0,!1);if(l(s))return m.clone(s.position,o)};wa.prototype.sampleHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Lat(this,e,t[s],n,i);return hz(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c].height=s[c];return t}))};wa.prototype.clampToHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Nat(this,e,t[s],n,i,t[s]);return hz(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c]=s[c];return t}))};wa.prototype.destroy=function(){this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy()};var KL=wa;var JL=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + color /= texture(autoExposure, vec2(0.5)).r; +#endif + color = czm_acesTonemapping(color); + color = czm_inverseGamma(color); + + out_FragColor = vec4(color, fragmentColor.a); +} +`;var ZL=`uniform sampler2D randomTexture; +uniform sampler2D depthTexture; +uniform float intensity; +uniform float bias; +uniform float lengthCap; +uniform float stepSize; +uniform float frustumLength; + +in vec2 v_textureCoordinates; + +vec4 clipToEye(vec2 uv, float depth) +{ + vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); + vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0); + posEC = posEC / posEC.w; + return posEC; +} + +//Reconstruct Normal Without Edge Removation +vec3 getNormalXEdge(vec3 posInCamera, float depthU, float depthD, float depthL, float depthR, vec2 pixelSize) +{ + vec4 posInCameraUp = clipToEye(v_textureCoordinates - vec2(0.0, pixelSize.y), depthU); + vec4 posInCameraDown = clipToEye(v_textureCoordinates + vec2(0.0, pixelSize.y), depthD); + vec4 posInCameraLeft = clipToEye(v_textureCoordinates - vec2(pixelSize.x, 0.0), depthL); + vec4 posInCameraRight = clipToEye(v_textureCoordinates + vec2(pixelSize.x, 0.0), depthR); + + vec3 up = posInCamera.xyz - posInCameraUp.xyz; + vec3 down = posInCameraDown.xyz - posInCamera.xyz; + vec3 left = posInCamera.xyz - posInCameraLeft.xyz; + vec3 right = posInCameraRight.xyz - posInCamera.xyz; + + vec3 DX = length(left) < length(right) ? left : right; + vec3 DY = length(up) < length(down) ? up : down; + + return normalize(cross(DY, DX)); +} + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + vec4 posInCamera = clipToEye(v_textureCoordinates, depth); + + if (posInCamera.z > frustumLength) + { + out_FragColor = vec4(1.0); + return; + } + + vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; + float depthU = czm_readDepth(depthTexture, v_textureCoordinates - vec2(0.0, pixelSize.y)); + float depthD = czm_readDepth(depthTexture, v_textureCoordinates + vec2(0.0, pixelSize.y)); + float depthL = czm_readDepth(depthTexture, v_textureCoordinates - vec2(pixelSize.x, 0.0)); + float depthR = czm_readDepth(depthTexture, v_textureCoordinates + vec2(pixelSize.x, 0.0)); + vec3 normalInCamera = getNormalXEdge(posInCamera.xyz, depthU, depthD, depthL, depthR, pixelSize); + + float ao = 0.0; + vec2 sampleDirection = vec2(1.0, 0.0); + float gapAngle = 90.0 * czm_radiansPerDegree; + + // RandomNoise + float randomVal = texture(randomTexture, v_textureCoordinates / pixelSize / 255.0).x; + + //Loop for each direction + for (int i = 0; i < 4; i++) + { + float newGapAngle = gapAngle * (float(i) + randomVal); + float cosVal = cos(newGapAngle); + float sinVal = sin(newGapAngle); + + //Rotate Sampling Direction + vec2 rotatedSampleDirection = vec2(cosVal * sampleDirection.x - sinVal * sampleDirection.y, sinVal * sampleDirection.x + cosVal * sampleDirection.y); + float localAO = 0.0; + float localStepSize = stepSize; + + //Loop for each step + for (int j = 0; j < 6; j++) + { + vec2 newCoords = v_textureCoordinates + rotatedSampleDirection * localStepSize * pixelSize; + + //Exception Handling + if(newCoords.x > 1.0 || newCoords.y > 1.0 || newCoords.x < 0.0 || newCoords.y < 0.0) + { + break; + } + + float stepDepthInfo = czm_readDepth(depthTexture, newCoords); + vec4 stepPosInCamera = clipToEye(newCoords, stepDepthInfo); + vec3 diffVec = stepPosInCamera.xyz - posInCamera.xyz; + float len = length(diffVec); + + if (len > lengthCap) + { + break; + } + + float dotVal = clamp(dot(normalInCamera, normalize(diffVec)), 0.0, 1.0 ); + float weight = len / lengthCap; + weight = 1.0 - weight * weight; + + if (dotVal < bias) + { + dotVal = 0.0; + } + + localAO = max(localAO, dotVal * weight); + localStepSize += stepSize; + } + ao += localAO; + } + + ao /= 4.0; + ao = 1.0 - clamp(ao, 0.0, 1.0); + ao = pow(ao, intensity); + out_FragColor = vec4(vec3(ao), 1.0); +} +`;var QL=`uniform sampler2D colorTexture; +uniform sampler2D ambientOcclusionTexture; +uniform bool ambientOcclusionOnly; +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec4 ao = texture(ambientOcclusionTexture, v_textureCoordinates); + out_FragColor = ambientOcclusionOnly ? ao : ao * color; +} +`;var $L=`uniform sampler2D colorTexture; +uniform float gradations; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = vec4(rgb, 1.0); + return; + } +#endif + float luminance = czm_luminance(rgb); + float darkness = luminance * gradations; + darkness = (darkness - fract(darkness)) / gradations; + out_FragColor = vec4(vec3(darkness), 1.0); +} +`;var eN=`uniform sampler2D colorTexture; +uniform sampler2D bloomTexture; +uniform bool glowOnly; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = color; + return; + } +#endif + + vec4 bloom = texture(bloomTexture, v_textureCoordinates); + out_FragColor = glowOnly ? bloom : bloom + color; +} +`;var tN=`uniform sampler2D colorTexture; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 target = vec3(0.0); + out_FragColor = vec4(mix(target, rgb, brightness), 1.0); +} +`;var nN=`uniform sampler2D colorTexture; +uniform float contrast; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 sceneColor = texture(colorTexture, v_textureCoordinates).xyz; + sceneColor = czm_RGBToHSB(sceneColor); + sceneColor.z += brightness; + sceneColor = czm_HSBToRGB(sceneColor); + + float factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast)); + sceneColor = factor * (sceneColor - vec3(0.5)) + vec3(0.5); + out_FragColor = vec4(sceneColor, 1.0); +} +`;var iN=`uniform sampler2D colorTexture; +uniform sampler2D blurTexture; +uniform sampler2D depthTexture; +uniform float focalDistance; + +in vec2 v_textureCoordinates; + +vec4 toEye(vec2 uv, float depth) +{ + vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); + vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0); + posInCamera = posInCamera / posInCamera.w; + return posInCamera; +} + +float computeDepthBlur(float depth) +{ + float f; + if (depth < focalDistance) + { + f = (focalDistance - depth) / (focalDistance - czm_currentFrustum.x); + } + else + { + f = (depth - focalDistance) / (czm_currentFrustum.y - focalDistance); + f = pow(f, 0.1); + } + f *= f; + f = clamp(f, 0.0, 1.0); + return pow(f, 0.5); +} + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + vec4 posInCamera = toEye(v_textureCoordinates, depth); + float d = computeDepthBlur(-posInCamera.z); + out_FragColor = mix(texture(colorTexture, v_textureCoordinates), texture(blurTexture, v_textureCoordinates), d); +} +`;var oN=`uniform sampler2D depthTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + out_FragColor = vec4(vec3(depth), 1.0); +} +`;var rN=`uniform sampler2D depthTexture; +uniform float length; +uniform vec4 color; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float directions[3]; + directions[0] = -1.0; + directions[1] = 0.0; + directions[2] = 1.0; + + float scalars[3]; + scalars[0] = 3.0; + scalars[1] = 10.0; + scalars[2] = 3.0; + + float padx = czm_pixelRatio / czm_viewport.z; + float pady = czm_pixelRatio / czm_viewport.w; + +#ifdef CZM_SELECTED_FEATURE + bool selected = false; + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + selected = selected || czm_selected(vec2(-padx, dir * pady)); + selected = selected || czm_selected(vec2(padx, dir * pady)); + selected = selected || czm_selected(vec2(dir * padx, -pady)); + selected = selected || czm_selected(vec2(dir * padx, pady)); + if (selected) + { + break; + } + } + if (!selected) + { + out_FragColor = vec4(color.rgb, 0.0); + return; + } +#endif + + float horizEdge = 0.0; + float vertEdge = 0.0; + + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + float scale = scalars[i]; + + horizEdge -= texture(depthTexture, v_textureCoordinates + vec2(-padx, dir * pady)).x * scale; + horizEdge += texture(depthTexture, v_textureCoordinates + vec2(padx, dir * pady)).x * scale; + + vertEdge -= texture(depthTexture, v_textureCoordinates + vec2(dir * padx, -pady)).x * scale; + vertEdge += texture(depthTexture, v_textureCoordinates + vec2(dir * padx, pady)).x * scale; + } + + float len = sqrt(horizEdge * horizEdge + vertEdge * vertEdge); + out_FragColor = vec4(color.rgb, len > length ? color.a : 0.0); +} +`;var sN=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +// See slides 142 and 143: +// http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#endif + + const float A = 0.22; // shoulder strength + const float B = 0.30; // linear strength + const float C = 0.10; // linear angle + const float D = 0.20; // toe strength + const float E = 0.01; // toe numerator + const float F = 0.30; // toe denominator + + const float white = 11.2; // linear white point value + + vec3 c = ((color * (A * color + C * B) + D * E) / (color * ( A * color + B) + D * F)) - E / F; + float w = ((white * (A * white + C * B) + D * E) / (white * ( A * white + B) + D * F)) - E / F; + + c = czm_inverseGamma(c / w); + out_FragColor = vec4(c, fragmentColor.a); +} +`;var aN=`in vec2 v_textureCoordinates; + +uniform sampler2D colorTexture; + +const float fxaaQualitySubpix = 0.5; +const float fxaaQualityEdgeThreshold = 0.125; +const float fxaaQualityEdgeThresholdMin = 0.0833; + +void main() +{ + vec2 fxaaQualityRcpFrame = vec2(1.0) / czm_viewport.zw; + vec4 color = FxaaPixelShader( + v_textureCoordinates, + colorTexture, + fxaaQualityRcpFrame, + fxaaQualitySubpix, + fxaaQualityEdgeThreshold, + fxaaQualityEdgeThresholdMin); + float alpha = texture(colorTexture, v_textureCoordinates).a; + out_FragColor = vec4(color.rgb, alpha); +} +`;var jy=`#define SAMPLES 8 + +uniform float delta; +uniform float sigma; +uniform float direction; // 0.0 for x direction, 1.0 for y direction + +uniform sampler2D colorTexture; + +#ifdef USE_STEP_SIZE +uniform float stepSize; +#else +uniform vec2 step; +#endif + +in vec2 v_textureCoordinates; + +// Incremental Computation of the Gaussian: +// https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch40.html + +void main() +{ + vec2 st = v_textureCoordinates; + vec2 dir = vec2(1.0 - direction, direction); + +#ifdef USE_STEP_SIZE + vec2 step = vec2(stepSize * (czm_pixelRatio / czm_viewport.zw)); +#else + vec2 step = step; +#endif + + vec3 g; + g.x = 1.0 / (sqrt(czm_twoPi) * sigma); + g.y = exp((-0.5 * delta * delta) / (sigma * sigma)); + g.z = g.y * g.y; + + vec4 result = texture(colorTexture, st) * g.x; + for (int i = 1; i < SAMPLES; ++i) + { + g.xy *= g.yz; + + vec2 offset = float(i) * dir * step; + result += texture(colorTexture, st - offset) * g.x; + result += texture(colorTexture, st + offset) * g.x; + } + + out_FragColor = result; +} +`;var cN=`uniform sampler2D colorTexture; +uniform sampler2D dirtTexture; +uniform sampler2D starTexture; +uniform vec2 dirtTextureDimensions; +uniform float distortion; +uniform float ghostDispersal; +uniform float haloWidth; +uniform float dirtAmount; +uniform float earthRadius; +uniform float intensity; + +in vec2 v_textureCoordinates; + +// whether it is in space or not +// 6500000.0 is empirical value +#define DISTANCE_TO_SPACE 6500000.0 + +// return ndc from world coordinate biased earthRadius +vec4 getNDCFromWC(vec3 WC, float earthRadius) +{ + vec4 positionEC = czm_view * vec4(WC, 1.0); + positionEC = vec4(positionEC.x + earthRadius, positionEC.y, positionEC.z, 1.0); + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + return czm_viewportOrthographic * vec4(positionWC.xy, -positionWC.z, 1.0); +} + +// Check if current pixel is included Earth +// if then mask it gradually +float isInEarth(vec2 texcoord, vec2 sceneSize) +{ + vec2 NDC = texcoord * 2.0 - 1.0; + vec4 earthPosSC = getNDCFromWC(vec3(0.0), 0.0); + vec4 earthPosSCEdge = getNDCFromWC(vec3(0.0), earthRadius * 1.5); + NDC.xy -= earthPosSC.xy; + + float X = abs(NDC.x) * sceneSize.x; + float Y = abs(NDC.y) * sceneSize.y; + + return clamp(0.0, 1.0, max(sqrt(X * X + Y * Y) / max(abs(earthPosSCEdge.x * sceneSize.x), 1.0) - 0.8 , 0.0)); +} + +// For Chromatic effect +vec4 textureDistorted(sampler2D tex, vec2 texcoord, vec2 direction, vec3 distortion, bool isSpace) +{ + vec2 sceneSize = czm_viewport.zw; + vec3 color; + if(isSpace) + { + color.r = isInEarth(texcoord + direction * distortion.r, sceneSize) * texture(tex, texcoord + direction * distortion.r).r; + color.g = isInEarth(texcoord + direction * distortion.g, sceneSize) * texture(tex, texcoord + direction * distortion.g).g; + color.b = isInEarth(texcoord + direction * distortion.b, sceneSize) * texture(tex, texcoord + direction * distortion.b).b; + } + else + { + color.r = texture(tex, texcoord + direction * distortion.r).r; + color.g = texture(tex, texcoord + direction * distortion.g).g; + color.b = texture(tex, texcoord + direction * distortion.b).b; + } + return vec4(clamp(color, 0.0, 1.0), 0.0); +} + +void main(void) +{ + vec4 originalColor = texture(colorTexture, v_textureCoordinates); + vec3 rgb = originalColor.rgb; + bool isSpace = length(czm_viewerPositionWC.xyz) > DISTANCE_TO_SPACE; + + // Sun position + vec4 sunPos = czm_morphTime == 1.0 ? vec4(czm_sunPositionWC, 1.0) : vec4(czm_sunPositionColumbusView.zxy, 1.0); + vec4 sunPositionEC = czm_view * sunPos; + vec4 sunPositionWC = czm_eyeToWindowCoordinates(sunPositionEC); + sunPos = czm_viewportOrthographic * vec4(sunPositionWC.xy, -sunPositionWC.z, 1.0); + + // If sun is not in the screen space, use original color. + if(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1))) + { + // Lens flare is disabled when not in space until #5932 is fixed. + // https://github.com/CesiumGS/cesium/issues/5932 + out_FragColor = originalColor; + return; + } + + vec2 texcoord = vec2(1.0) - v_textureCoordinates; + vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; + vec2 invPixelSize = 1.0 / pixelSize; + vec3 distortionVec = pixelSize.x * vec3(-distortion, 0.0, distortion); + + // ghost vector to image centre: + vec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal; + vec3 direction = normalize(vec3(ghostVec, 0.0)); + + // sample ghosts: + vec4 result = vec4(0.0); + vec4 ghost = vec4(0.0); + for (int i = 0; i < 4; ++i) + { + vec2 offset = fract(texcoord + ghostVec * float(i)); + // Only bright spots from the centre of the source image + ghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace); + } + result += ghost; + + // sample halo + vec2 haloVec = normalize(ghostVec) * haloWidth; + float weightForHalo = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5)); + weightForHalo = pow(1.0 - weightForHalo, 5.0); + + result += textureDistorted(colorTexture, texcoord + haloVec, direction.xy, distortionVec, isSpace) * weightForHalo * 1.5; + + // dirt on lens + vec2 dirtTexCoords = (v_textureCoordinates * invPixelSize) / dirtTextureDimensions; + if (dirtTexCoords.x > 1.0) + { + dirtTexCoords.x = mod(floor(dirtTexCoords.x), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.x) : fract(dirtTexCoords.x); + } + if (dirtTexCoords.y > 1.0) + { + dirtTexCoords.y = mod(floor(dirtTexCoords.y), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.y) : fract(dirtTexCoords.y); + } + result += dirtAmount * texture(dirtTexture, dirtTexCoords); + + // Rotating starburst texture's coordinate + // dot(czm_view[0].xyz, vec3(0.0, 0.0, 1.0)) + dot(czm_view[1].xyz, vec3(0.0, 1.0, 0.0)) + float camrot = czm_view[0].z + czm_view[1].y; + float cosValue = cos(camrot); + float sinValue = sin(camrot); + mat3 rotation = mat3( + cosValue, -sinValue, 0.0, + sinValue, cosValue, 0.0, + 0.0, 0.0, 1.0 + ); + + vec3 st1 = vec3(v_textureCoordinates * 2.0 - vec2(1.0), 1.0); + vec3 st2 = vec3((rotation * st1).xy, 1.0); + vec3 st3 = st2 * 0.5 + vec3(0.5); + vec2 lensStarTexcoord = st3.xy; + float weightForLensFlare = length(vec3(sunPos.xy, 0.0)); + float oneMinusWeightForLensFlare = max(1.0 - weightForLensFlare, 0.0); + + if (!isSpace) + { + result *= oneMinusWeightForLensFlare * intensity * 0.2; + } + else + { + result *= oneMinusWeightForLensFlare * intensity; + result *= texture(starTexture, lensStarTexcoord) * pow(weightForLensFlare, 1.0) * max((1.0 - length(vec3(st1.xy, 0.0))), 0.0) * 2.0; + } + + result += texture(colorTexture, v_textureCoordinates); + + out_FragColor = result; +} +`;var lN=`uniform sampler2D colorTexture; +uniform vec3 white; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +// See equation 4: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#endif + color = (color * (1.0 + color / white)) / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var uN=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +float rand(vec2 co) +{ + return fract(sin(dot(co.xy ,vec2(12.9898, 78.233))) * 43758.5453); +} + +void main(void) +{ + float noiseValue = rand(v_textureCoordinates + sin(czm_frameNumber)) * 0.1; + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 green = vec3(0.0, 1.0, 0.0); + out_FragColor = vec4((noiseValue + rgb) * green, 1.0); +} +`;var fN=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +// See equation 3: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#endif + color = color / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var dN=`uniform sampler2D colorTexture; +uniform sampler2D silhouetteTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 silhouetteColor = texture(silhouetteTexture, v_textureCoordinates); + vec4 color = texture(colorTexture, v_textureCoordinates); + out_FragColor = mix(color, silhouetteColor, silhouetteColor.a); +} +`;/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */var mN=`/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS \`\`AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// NVIDIA GameWorks Graphics Samples GitHub link: https://github.com/NVIDIAGameWorks/GraphicsSamples +// Original FXAA 3.11 shader link: https://github.com/NVIDIAGameWorks/GraphicsSamples/blob/master/samples/es3-kepler/FXAA/FXAA3_11.h + +// Steps used to integrate into Cesium: +// * The following defines are set: +// #define FXAA_PC 1 +// #define FXAA_WEBGL_1 1 +// #define FXAA_GREEN_AS_LUMA 1 +// #define FXAA_EARLY_EXIT 1 +// #define FXAA_GLSL_120 1 +// * All other preprocessor directives besides the FXAA_QUALITY__P* directives were removed. +// * Double underscores are invalid for preprocessor directives so replace them with a single underscore. Replace +// /FXAA_QUALITY__P(.*)/g with /FXAA_QUALITY__P$1/. +// * There are no implicit conversions from ivec* to vec* so replace: +// #define FxaaInt2 ivec2 +// with +// #define FxaaInt2 vec2 +// * The texture2DLod function is only available in vertex shaders so replace: +// #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) +// #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) +// with +// #define FxaaTexTop(t, p) texture(t, p) +// #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) +// * FXAA_QUALITY_PRESET is prepended in the javascript code. We may want to expose that setting in the future. +// * The following parameters to FxaaPixelShader are unused and can be removed: +// fxaaConsolePosPos +// fxaaConsoleRcpFrameOpt +// fxaaConsoleRcpFrameOpt2 +// fxaaConsole360RcpFrameOpt2 +// fxaaConsoleEdgeSharpness +// fxaaConsoleEdgeThreshold +// fxaaConsoleEdgeThresholdMi +// fxaaConsole360ConstDir + +// +// Choose the quality preset. +// This needs to be compiled into the shader as it effects code. +// Best option to include multiple presets is to +// in each shader define the preset, then include this file. +// +// OPTIONS +// ----------------------------------------------------------------------- +// 10 to 15 - default medium dither (10=fastest, 15=highest quality) +// 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) +// 39 - no dither, very expensive +// +// NOTES +// ----------------------------------------------------------------------- +// 12 = slightly faster then FXAA 3.9 and higher edge quality (default) +// 13 = about same speed as FXAA 3.9 and better than 12 +// 23 = closest to FXAA 3.9 visually and performance wise +// _ = the lowest digit is directly related to performance +// _ = the highest digit is directly related to style +// +//#define FXAA_QUALITY_PRESET 12 + + +#if (FXAA_QUALITY_PRESET == 10) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 3.0 + #define FXAA_QUALITY_P2 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 11) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 3.0 + #define FXAA_QUALITY_P3 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 12) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 4.0 + #define FXAA_QUALITY_P4 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 13) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 4.0 + #define FXAA_QUALITY_P5 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 14) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 4.0 + #define FXAA_QUALITY_P6 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 15) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 20) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 2.0 + #define FXAA_QUALITY_P2 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 21) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 22) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 23) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 24) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 3.0 + #define FXAA_QUALITY_P6 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 25) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 26) + #define FXAA_QUALITY_PS 9 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 4.0 + #define FXAA_QUALITY_P8 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 27) + #define FXAA_QUALITY_PS 10 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 4.0 + #define FXAA_QUALITY_P9 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 28) + #define FXAA_QUALITY_PS 11 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 4.0 + #define FXAA_QUALITY_P10 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 29) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 39) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.0 + #define FXAA_QUALITY_P2 1.0 + #define FXAA_QUALITY_P3 1.0 + #define FXAA_QUALITY_P4 1.0 + #define FXAA_QUALITY_P5 1.5 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif + +#define FxaaBool bool +#define FxaaFloat float +#define FxaaFloat2 vec2 +#define FxaaFloat3 vec3 +#define FxaaFloat4 vec4 +#define FxaaHalf float +#define FxaaHalf2 vec2 +#define FxaaHalf3 vec3 +#define FxaaHalf4 vec4 +#define FxaaInt2 vec2 +#define FxaaTex sampler2D + +#define FxaaSat(x) clamp(x, 0.0, 1.0) +#define FxaaTexTop(t, p) texture(t, p) +#define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) + +FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; } + +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin +) { +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #define lumaM rgbyM.y + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; +/*--------------------------------------------------------------------------*/ + if(earlyExit) + return rgbyM; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0/range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; +/*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; +/*--------------------------------------------------------------------------*/ + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + if(horzSpan) lengthSign = fxaaQualityRcpFrame.y; + FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM; +/*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if(pairN) lengthSign = -lengthSign; + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if(!horzSpan) posB.x += lengthSign * 0.5; + if( horzSpan) posB.y += lengthSign * 0.5; +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY_P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY_P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY_P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY_P0; + FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); +/*--------------------------------------------------------------------------*/ + if(!pairN) lumaNN = lumaSS; + FxaaFloat gradientScaled = gradient * 1.0/4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; +/*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1; + FxaaBool doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1; +/*--------------------------------------------------------------------------*/ + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 3) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 4) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 5) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 6) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 7) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 8) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 9) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 10) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 11) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 12) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12; +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } +/*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if(!horzSpan) dstN = posM.y - posN.y; + if(!horzSpan) dstP = posP.y - posM.y; +/*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0/spanLength; +/*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; +/*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign; + if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign; + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); +} +`;function nC(){this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._ready=!1,this._name="czm_autoexposure",this._logDepthChanged=void 0,this._useLogDepth=void 0,this._framebuffers=void 0,this._previousLuminance=new di,this._commands=void 0,this._clearCommand=void 0,this._minMaxLuminance=new H,this.enabled=!0,this._enabled=!0,this.minimumLuminance=.1,this.maximumLuminance=10}Object.defineProperties(nC.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){let e=this._framebuffers;if(l(e))return e[e.length-1].getColorTexture(0)}}});function Pge(e){let t=e._framebuffers;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].destroy();e._framebuffers=void 0,e._previousLuminance.destroy(),e._previousLuminance=void 0}function Fat(e,t){Pge(e);let n=e._width,i=e._height,o=t.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT,r=Math.ceil(Math.log(Math.max(n,i))/Math.log(3)),s=new Array(r);for(let c=0;c<r;++c)n=Math.max(Math.ceil(n/3),1),i=Math.max(Math.ceil(i/3),1),s[c]=new di,s[c].update(t,n,i,1,o);let a=s[r-1].getColorTexture(0);e._previousLuminance.update(t,a.width,a.height,1,o),e._framebuffers=s}function Oge(e){let t=e._commands;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].shaderProgram.destroy();e._commands=void 0}function Uat(e,t){let n;if(t===0)n={colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions}};else{let i=e._framebuffers[t-1].getColorTexture(0);n={colorTexture:function(){return i},colorTextureDimensions:function(){return i.dimensions}}}return n.minMaxLuminance=function(){return e._minMaxLuminance},n.previousLuminance=function(){return e._previousLuminance.getColorTexture(0)},n}function Vat(e,t){let n=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +float sampleTexture(vec2 offset) { +`;return e===0?n+=` vec4 color = texture(colorTexture, v_textureCoordinates + offset); + return czm_luminance(color.rgb); +`:n+=` return texture(colorTexture, v_textureCoordinates + offset).r; +`,n+=`} + +`,n+=`uniform vec2 colorTextureDimensions; +uniform vec2 minMaxLuminance; +uniform sampler2D previousLuminance; +void main() { + float color = 0.0; + float xStep = 1.0 / colorTextureDimensions.x; + float yStep = 1.0 / colorTextureDimensions.y; + int count = 0; + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + vec2 offset; + offset.x = -xStep + float(i) * xStep; + offset.y = -yStep + float(j) * yStep; + if (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) { + continue; + } + color += sampleTexture(offset); + ++count; + } + } + if (count > 0) { + color /= float(count); + } +`,e===t-1&&(n+=` float previous = texture(previousLuminance, vec2(0.5)).r; + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); + color = previous + (color - previous) / (60.0 * 1.5); + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); +`),n+=` out_FragColor = vec4(color); +} +`,n}function kat(e,t){Oge(e);let n=e._framebuffers,i=n.length,o=new Array(i);for(let r=0;r<i;++r)o[r]=t.createViewportQuadCommand(Vat(r,i),{framebuffer:n[r].framebuffer,uniformMap:Uat(e,r)});e._commands=o}nC.prototype.clear=function(e){let t=this._framebuffers;if(!l(t))return;let n=this._clearCommand;l(n)||(n=this._clearCommand=new ii({color:new z(0,0,0,0),framebuffer:void 0}));let i=t.length;for(let o=0;o<i;++o)t[o].clear(e,n)};nC.prototype.update=function(e){let t=e.drawingBufferWidth,n=e.drawingBufferHeight;(t!==this._width||n!==this._height)&&(this._width=t,this._height=n,Fat(this,e),kat(this,e),this._ready||(this._ready=!0)),this._minMaxLuminance.x=this.minimumLuminance,this._minMaxLuminance.y=this.maximumLuminance;let i=this._framebuffers,o=i[i.length-1];i[i.length-1]=this._previousLuminance,this._commands[this._commands.length-1].framebuffer=this._previousLuminance.framebuffer,this._previousLuminance=o};nC.prototype.execute=function(e,t){this._colorTexture=t;let n=this._commands;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o)n[o].execute(e)};nC.prototype.isDestroyed=function(){return!1};nC.prototype.destroy=function(){return Pge(this),Oge(this),ue(this)};var hN=nC;var zat={NEAREST:0,LINEAR:1},wu=zat;function iC(e){e=y(e,y.EMPTY_OBJECT);let t=e.fragmentShader,n=y(e.textureScale,1),i=y(e.pixelFormat,ct.RGBA);this._fragmentShader=t,this._uniforms=e.uniforms,this._textureScale=n,this._forcePowerOfTwo=y(e.forcePowerOfTwo,!1),this._sampleMode=y(e.sampleMode,wu.NEAREST),this._pixelFormat=i,this._pixelDatatype=y(e.pixelDatatype,Je.UNSIGNED_BYTE),this._clearColor=y(e.clearColor,z.BLACK),this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._idTexture=void 0,this._actualUniforms={},this._dirtyUniforms=[],this._texturesToRelease=[],this._texturesToCreate=[],this._texturePromise=void 0;let o=new Va;o.scissorTest={enabled:!0,rectangle:l(e.scissorRectangle)?Ke.clone(e.scissorRectangle):new Ke},this._passState=o,this._ready=!1;let r=e.name;l(r)||(r=Gn()),this._name=r,this._logDepthChanged=void 0,this._useLogDepth=void 0,this._selectedIdTexture=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0,this._textureCache=void 0,this._index=void 0,this.enabled=!0,this._enabled=!0}Object.defineProperties(iC.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},fragmentShader:{get:function(){return this._fragmentShader}},uniforms:{get:function(){return this._uniforms}},textureScale:{get:function(){return this._textureScale}},forcePowerOfTwo:{get:function(){return this._forcePowerOfTwo}},sampleMode:{get:function(){return this._sampleMode}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},clearColor:{get:function(){return this._clearColor}},scissorRectangle:{get:function(){return this._passState.scissorTest.rectangle}},outputTexture:{get:function(){if(l(this._textureCache)){let e=this._textureCache.getFramebuffer(this._name);if(l(e))return e.getColorTexture(0)}}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});var Hat=/uniform\s+sampler2D\s+depthTexture/g;iC.prototype._isSupported=function(e){return!Hat.test(this._fragmentShader)||e.depthTexture};function Gat(e,t,n){let i=t[n];return(typeof i=="string"||i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement||i instanceof ImageData)&&e._dirtyUniforms.push(n),{get:function(){return t[n]},set:function(o){let r=t[n];t[n]=o;let s=e._actualUniforms,a=s[n];l(a)&&a!==r&&a instanceof Bt&&!l(e._textureCache.getStageByName(n))&&(e._texturesToRelease.push(a),delete s[n],delete s[`${n}Dimensions`]),r instanceof Bt&&e._texturesToRelease.push(r),typeof o=="string"||o instanceof HTMLCanvasElement||o instanceof HTMLImageElement||o instanceof HTMLVideoElement||o instanceof ImageData?e._dirtyUniforms.push(n):s[n]=o}}}function Wat(e,t){return function(){let n=e._actualUniforms[t];return typeof n=="function"?n():n}}function jat(e,t){return function(){let n=e[t]();if(l(n))return n.dimensions}}function Yat(e){if(l(e._uniformMap))return;let t={},n={},i=e._uniforms,o=e._actualUniforms;for(let r in i)if(i.hasOwnProperty(r)){typeof i[r]!="function"?(t[r]=Wat(e,r),n[r]=Gat(e,i,r)):(t[r]=i[r],n[r]=i[r]),o[r]=i[r];let s=t[r]();(typeof s=="string"||s instanceof Bt||s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement)&&(t[`${r}Dimensions`]=jat(t,r))}e._uniforms={},Object.defineProperties(e._uniforms,n),e._uniformMap=_t(t,{colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions},depthTexture:function(){return e._depthTexture},depthTextureDimensions:function(){return e._depthTexture.dimensions},czm_idTexture:function(){return e._idTexture},czm_selectedIdTexture:function(){return e._selectedIdTexture},czm_selectedIdTextureStep:function(){return 1/e._selectedIdTexture.width}})}function qat(e,t){if(l(e._command)&&!e._logDepthChanged&&!e._selectedDirty)return;let n=e._fragmentShader;if(l(e._selectedIdTexture)){let o=e._selectedIdTexture.width;n=n.replace(/in\s+vec2\s+v_textureCoordinates;/g,""),n=`#define CZM_SELECTED_FEATURE +uniform sampler2D czm_idTexture; +uniform sampler2D czm_selectedIdTexture; +uniform float czm_selectedIdTextureStep; +in vec2 v_textureCoordinates; +bool czm_selected(vec2 offset) +{ + bool selected = false; + vec4 id = texture(czm_idTexture, v_textureCoordinates + offset); + for (int i = 0; i < ${o}; ++i) + { + vec4 selectedId = texture(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5)); + if (all(equal(id, selectedId))) + { + return true; + } + } + return false; +} + +bool czm_selected() +{ + return czm_selected(vec2(0.0)); +} + +${n}`}let i=new He({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[n]});e._command=t.createViewportQuadCommand(i,{uniformMap:e._uniformMap,owner:e})}function Xat(e){let t=e._sampleMode,n,i;t===wu.LINEAR?(n=cn.LINEAR,i=xi.LINEAR):(n=cn.NEAREST,i=xi.NEAREST);let o=e._sampler;(!l(o)||o.minificationFilter!==n||o.magnificationFilter!==i)&&(e._sampler=new dn({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i}))}function Kat(e,t){return function(n){e._texturesToCreate.push({name:t,source:n})}}function Jat(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function Zat(e,t){let n,i,o,r=e._texturesToRelease,s=r.length;for(n=0;n<s;++n)i=r[n],i=i&&i.destroy();r.length=0;let a=e._texturesToCreate;for(s=a.length,n=0;n<s;++n){let d=a[n];o=d.name;let p=d.source;e._actualUniforms[o]=new Bt({context:t,source:p})}a.length=0;let c=e._dirtyUniforms;if(c.length===0&&!l(e._texturePromise)){e._ready=!0;return}if(c.length===0||l(e._texturePromise))return;s=c.length;let u=e._uniforms,f=[];for(n=0;n<s;++n){o=c[n];let d=u[o],p=e._textureCache.getStageByName(d);if(l(p))e._actualUniforms[o]=Jat(e,d);else if(typeof d=="string"){let g=new we({url:d});f.push(g.fetchImage().then(Kat(e,o)))}else e._texturesToCreate.push({name:o,source:d})}c.length=0,f.length>0?(e._ready=!1,e._texturePromise=Promise.all(f).then(function(){e._ready=!0,e._texturePromise=void 0})):e._ready=!0}function Mge(e){l(e._command)&&(e._command.shaderProgram=e._command.shaderProgram&&e._command.shaderProgram.destroy(),e._command=void 0),e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy();let t=e._textureCache;if(!l(t))return;let n=e._uniforms,i=e._actualUniforms;for(let o in i)i.hasOwnProperty(o)&&i[o]instanceof Bt&&(l(t.getStageByName(n[o]))||i[o].destroy(),e._dirtyUniforms.push(o))}function Qat(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}function $at(e,t){if(!e._selectedDirty)return;e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;let n=e._combinedSelected;if(!l(n))return;let i,o,r=0,s=n.length;for(i=0;i<s;++i)o=n[i],l(o.pickIds)?r+=o.pickIds.length:l(o.pickId)&&++r;if(s===0||r===0){let f=new Uint8Array(4);f[0]=255,f[1]=255,f[2]=255,f[3]=255,e._selectedIdTexture=new Bt({context:t,pixelFormat:ct.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:f,width:1,height:1},sampler:dn.NEAREST});return}let a,c=0,u=new Uint8Array(r*4);for(i=0;i<s;++i)if(o=n[i],l(o.pickIds)){let f=o.pickIds,d=f.length;for(let p=0;p<d;++p)a=f[p].color,u[c]=z.floatToByte(a.red),u[c+1]=z.floatToByte(a.green),u[c+2]=z.floatToByte(a.blue),u[c+3]=z.floatToByte(a.alpha),c+=4}else l(o.pickId)&&(a=o.pickId.color,u[c]=z.floatToByte(a.red),u[c+1]=z.floatToByte(a.green),u[c+2]=z.floatToByte(a.blue),u[c+3]=z.floatToByte(a.alpha),c+=4);e._selectedIdTexture=new Bt({context:t,pixelFormat:ct.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:u,width:r,height:1},sampler:dn.NEAREST})}iC.prototype.update=function(e,t){if(this.enabled!==this._enabled&&!this.enabled&&Mge(this),this._enabled=this.enabled,!this._enabled||(this._logDepthChanged=t!==this._useLogDepth,this._useLogDepth=t,this._selectedDirty=Qat(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0,$at(this,e),Yat(this),Zat(this,e),qat(this,e),Xat(this),this._selectedDirty=!1,!this._ready))return;let n=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=n,!l(n))return;let i=n.getColorTexture(0),o;(i.width!==e.drawingBufferWidth||i.height!==e.drawingBufferHeight)&&(o=this._renderState,(!l(o)||i.width!==o.viewport.width||i.height!==o.viewport.height)&&(this._renderState=ze.fromCache({viewport:new Ke(0,0,i.width,i.height)}))),this._command.renderState=o};iC.prototype.execute=function(e,t,n,i){if(!l(this._command)||!l(this._command.framebuffer)||!this._ready||!this._enabled)return;this._colorTexture=t,this._depthTexture=n,this._idTexture=i,dn.equals(this._colorTexture.sampler,this._sampler)||(this._colorTexture.sampler=this._sampler);let o=this.scissorRectangle.width>0&&this.scissorRectangle.height>0?this._passState:void 0;l(o)&&(o.context=e),this._command.execute(e,o)};iC.prototype.isDestroyed=function(){return!1};iC.prototype.destroy=function(){return Mge(this),ue(this)};var _o=iC;function oC(e){e=y(e,y.EMPTY_OBJECT),this._stages=e.stages,this._inputPreviousStageTexture=y(e.inputPreviousStageTexture,!0);let t=e.name;l(t)||(t=Gn()),this._name=t,this._uniforms=e.uniforms,this._textureCache=void 0,this._index=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0}Object.defineProperties(oC.prototype,{ready:{get:function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)if(!e[n].ready)return!1;return!0}},name:{get:function(){return this._name}},enabled:{get:function(){return this._stages[0].enabled},set:function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)t[i].enabled=e}},uniforms:{get:function(){return this._uniforms}},inputPreviousStageTexture:{get:function(){return this._inputPreviousStageTexture}},length:{get:function(){return this._stages.length}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});oC.prototype._isSupported=function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)if(!t[i]._isSupported(e))return!1;return!0};oC.prototype.get=function(e){return this._stages[e]};function ect(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}oC.prototype.update=function(e,t){this._selectedDirty=ect(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0;let n=this._stages,i=n.length;for(let o=0;o<i;++o){let r=n[o];this._selectedDirty&&(r.parentSelected=this._combinedSelected),r.update(e,t)}};oC.prototype.isDestroyed=function(){return!1};oC.prototype.destroy=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var Yc=oC;var Rr={};function pz(e){let o=`#define USE_STEP_SIZE +${jy}`,r=new _o({name:`${e}_x_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:wu.LINEAR}),s=new _o({name:`${e}_y_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:wu.LINEAR}),a={};return Object.defineProperties(a,{delta:{get:function(){return r.uniforms.delta},set:function(c){let u=r.uniforms,f=s.uniforms;u.delta=f.delta=c}},sigma:{get:function(){return r.uniforms.sigma},set:function(c){let u=r.uniforms,f=s.uniforms;u.sigma=f.sigma=c}},stepSize:{get:function(){return r.uniforms.stepSize},set:function(c){let u=r.uniforms,f=s.uniforms;u.stepSize=f.stepSize=c}}}),new Yc({name:e,stages:[r,s],uniforms:a})}Rr.createBlurStage=function(){return pz("czm_blur")};Rr.createDepthOfFieldStage=function(){let e=pz("czm_depth_of_field_blur"),t=new _o({name:"czm_depth_of_field_composite",fragmentShader:iN,uniforms:{focalDistance:5,blurTexture:e.name}}),n={};return Object.defineProperties(n,{focalDistance:{get:function(){return t.uniforms.focalDistance},set:function(i){t.uniforms.focalDistance=i}},delta:{get:function(){return e.uniforms.delta},set:function(i){e.uniforms.delta=i}},sigma:{get:function(){return e.uniforms.sigma},set:function(i){e.uniforms.sigma=i}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(i){e.uniforms.stepSize=i}}}),new Yc({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};Rr.isDepthOfFieldSupported=function(e){return e.context.depthTexture};Rr.createEdgeDetectionStage=function(){let e=Gn();return new _o({name:`czm_edge_detection_${e}`,fragmentShader:rN,uniforms:{length:.25,color:z.clone(z.BLACK)}})};Rr.isEdgeDetectionSupported=function(e){return e.context.depthTexture};function tct(e){if(!l(e))return Rr.createEdgeDetectionStage();let t=new Yc({name:"czm_edge_detection_multiple",stages:e,inputPreviousStageTexture:!1}),n={},i="",o="";for(let a=0;a<e.length;++a)i+=`uniform sampler2D edgeTexture${a}; +`,o+=` vec4 edge${a} = texture(edgeTexture${a}, v_textureCoordinates); + if (edge${a}.a > 0.0) + { + color = edge${a}; + break; + } +`,n[`edgeTexture${a}`]=e[a].name;let r=`${i}in vec2 v_textureCoordinates; +void main() { + vec4 color = vec4(0.0); + for (int i = 0; i < ${e.length}; i++) + { +${o} } + out_FragColor = color; +} +`,s=new _o({name:"czm_edge_detection_combine",fragmentShader:r,uniforms:n});return new Yc({name:"czm_edge_detection_composite",stages:[t,s]})}Rr.createSilhouetteStage=function(e){let t=tct(e),n=new _o({name:"czm_silhouette_color_edges",fragmentShader:dN,uniforms:{silhouetteTexture:t.name}});return new Yc({name:"czm_silhouette",stages:[t,n],inputPreviousStageTexture:!1,uniforms:t.uniforms})};Rr.isSilhouetteSupported=function(e){return e.context.depthTexture};Rr.createBloomStage=function(){let e=new _o({name:"czm_bloom_contrast_bias",fragmentShader:nN,uniforms:{contrast:128,brightness:-.3}}),t=pz("czm_bloom_blur"),n=new Yc({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),i=new _o({name:"czm_bloom_generate_composite",fragmentShader:eN,uniforms:{glowOnly:!1,bloomTexture:n.name}}),o={};return Object.defineProperties(o,{glowOnly:{get:function(){return i.uniforms.glowOnly},set:function(r){i.uniforms.glowOnly=r}},contrast:{get:function(){return e.uniforms.contrast},set:function(r){e.uniforms.contrast=r}},brightness:{get:function(){return e.uniforms.brightness},set:function(r){e.uniforms.brightness=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},stepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}}}),new Yc({name:"czm_bloom",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Rr.createAmbientOcclusionStage=function(){let e=new _o({name:"czm_ambient_occlusion_generate",fragmentShader:ZL,uniforms:{intensity:3,bias:.1,lengthCap:.26,stepSize:1.95,frustumLength:1e3,randomTexture:void 0}}),t=pz("czm_ambient_occlusion_blur");t.uniforms.stepSize=.86;let n=new Yc({name:"czm_ambient_occlusion_generate_blur",stages:[e,t]}),i=new _o({name:"czm_ambient_occlusion_composite",fragmentShader:QL,uniforms:{ambientOcclusionOnly:!1,ambientOcclusionTexture:n.name}}),o={};return Object.defineProperties(o,{intensity:{get:function(){return e.uniforms.intensity},set:function(r){e.uniforms.intensity=r}},bias:{get:function(){return e.uniforms.bias},set:function(r){e.uniforms.bias=r}},lengthCap:{get:function(){return e.uniforms.lengthCap},set:function(r){e.uniforms.lengthCap=r}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(r){e.uniforms.stepSize=r}},frustumLength:{get:function(){return e.uniforms.frustumLength},set:function(r){e.uniforms.frustumLength=r}},randomTexture:{get:function(){return e.uniforms.randomTexture},set:function(r){e.uniforms.randomTexture=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},blurStepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}},ambientOcclusionOnly:{get:function(){return i.uniforms.ambientOcclusionOnly},set:function(r){i.uniforms.ambientOcclusionOnly=r}}}),new Yc({name:"czm_ambient_occlusion",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Rr.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var nct=`#define FXAA_QUALITY_PRESET 39 +${mN} +${aN}`;Rr.createFXAAStage=function(){return new _o({name:"czm_FXAA",fragmentShader:nct,sampleMode:wu.LINEAR})};Rr.createAcesTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=JL,new _o({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0}})};Rr.createFilmicTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=sN,new _o({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0}})};Rr.createReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=fN,new _o({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0}})};Rr.createModifiedReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=lN,new _o({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:z.WHITE,autoExposure:void 0}})};Rr.createAutoExposureStage=function(){return new hN};Rr.createBlackAndWhiteStage=function(){return new _o({name:"czm_black_and_white",fragmentShader:$L,uniforms:{gradations:5}})};Rr.createBrightnessStage=function(){return new _o({name:"czm_brightness",fragmentShader:tN,uniforms:{brightness:.5}})};Rr.createNightVisionStage=function(){return new _o({name:"czm_night_vision",fragmentShader:uN})};Rr.createDepthViewStage=function(){return new _o({name:"czm_depth_view",fragmentShader:oN})};Rr.createLensFlareStage=function(){return new _o({name:"czm_lens_flare",fragmentShader:cN,uniforms:{dirtTexture:en("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:en("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,dirtAmount:.4,earthRadius:oe.WGS84.maximumRadius}})};var Uf=Rr;function F_(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function _N(e){for(;l(e.length);)e=e.get(e.length-1);return e.name}function uY(e,t,n,i,o){if(!i.enabled||!i._isSupported(t))return o;let r=n[i.name]={};if(l(o)){let a=e.getStageByName(o);r[_N(a)]=!0}let s=i.uniforms;if(l(s)){let a=Object.getOwnPropertyNames(s),c=a.length;for(let u=0;u<c;++u){let f=s[a[u]];if(typeof f=="string"){let d=e.getStageByName(f);l(d)&&(r[_N(d)]=!0)}}}return i.name}function pN(e,t,n,i,o){if(l(i.enabled)&&!i.enabled||l(i._isSupported)&&!i._isSupported(t))return o;let r=o,s=!l(i.inputPreviousStageTexture)||i.inputPreviousStageTexture,a=o,c=i.length;for(let d=0;d<c;++d){let p=i.get(d);l(p.length)?a=pN(e,t,n,p,o):a=uY(e,t,n,p,o),s&&(o=a)}let u,f;if(s)for(u=1;u<c;++u)f=_N(i.get(u)),l(n[f])||(n[f]={}),n[f][r]=!0;else for(u=1;u<c;++u){f=_N(i.get(u));let d=n[f];for(let p=0;p<u;++p)d[_N(i.get(p))]=!0}return a}function ict(e,t){let n={};if(l(e.ambientOcclusion)){let i=e.ambientOcclusion,o=e.bloom,r=e._tonemapping,s=e.fxaa,a=pN(e,t,n,i,void 0);a=pN(e,t,n,o,a),a=uY(e,t,n,r,a),a=pN(e,t,n,e,a),uY(e,t,n,s,a)}else pN(e,t,n,e,void 0);return n}function oct(e,t,n){let o=e._collection.getStageByName(t),r=o._textureScale,s=o._forcePowerOfTwo,a=o._pixelFormat,c=o._pixelDatatype,u=o._clearColor,f,d,p=e._framebuffers,g=p.length;for(f=0;f<g;++f){if(d=p[f],r!==d.textureScale||s!==d.forcePowerOfTwo||a!==d.pixelFormat||c!==d.pixelDatatype||!z.equals(u,d.clearColor))continue;let h=d.stages,A=h.length,x=!1;for(let C=0;C<A;++C)if(n[h[C]]){x=!0;break}if(!x)break}return l(d)&&f<g?(d.stages.push(t),d):(d={textureScale:r,forcePowerOfTwo:s,pixelFormat:a,pixelDatatype:c,clearColor:u,stages:[t],buffer:new di({pixelFormat:a,pixelDatatype:c}),clear:void 0},p.push(d),d)}function rct(e,t){let n=ict(e._collection,t);for(let i in n)n.hasOwnProperty(i)&&(e._stageNameToFramebuffer[i]=oct(e,i,n[i]))}function fY(e){let t=e._framebuffers,n=t.length;for(let i=0;i<n;++i)t[i].buffer.destroy()}function sct(e,t){let n=e._width,i=e._height,o=e._framebuffers,r=o.length;for(let s=0;s<r;++s){let a=o[s],c=a.textureScale,u=Math.ceil(n*c),f=Math.ceil(i*c),d=Math.min(u,f);a.forcePowerOfTwo&&(P.isPowerOfTwo(d)||(d=P.nextPowerOfTwo(d)),u=d,f=d),a.buffer.update(t,u,f),a.clear=new ii({color:a.clearColor,framebuffer:a.buffer.framebuffer})}}F_.prototype.updateDependencies=function(){this._updateDependencies=!0};F_.prototype.update=function(e){let t=this._collection,n=this._updateDependencies,i=l(t.ambientOcclusion)&&t.ambientOcclusion.enabled&&t.ambientOcclusion._isSupported(e),o=l(t.bloom)&&t.bloom.enabled&&t.bloom._isSupported(e),r=l(t._tonemapping)&&t._tonemapping.enabled&&t._tonemapping._isSupported(e),s=l(t.fxaa)&&t.fxaa.enabled&&t.fxaa._isSupported(e),a=!l(t._activeStages)||t._activeStages.length>0||i||o||r||s;if((n||!a&&this._framebuffers.length>0)&&(fY(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),!n&&!a)return;this._framebuffers.length===0&&rct(this,e);let c=e.drawingBufferWidth,u=e.drawingBufferHeight,f=this._width!==c||this._height!==u;!n&&!f||(this._width=c,this._height=u,this._updateDependencies=!1,fY(this),sct(this,e))};F_.prototype.clear=function(e){let t=this._framebuffers;for(let n=0;n<t.length;++n)t[n].clear.execute(e)};F_.prototype.getStageByName=function(e){return this._collection.getStageByName(e)};F_.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)};F_.prototype.getFramebuffer=function(e){let t=this._stageNameToFramebuffer[e];if(l(t))return t.buffer.framebuffer};F_.prototype.isDestroyed=function(){return!1};F_.prototype.destroy=function(){return fY(this),ue(this)};var rC=F_;var gN={REINHARD:0,MODIFIED_REINHARD:1,FILMIC:2,ACES:3,validate:function(e){return e===gN.REINHARD||e===gN.MODIFIED_REINHARD||e===gN.FILMIC||e===gN.ACES}},Yy=Object.freeze(gN);var dY=[];function qc(){let e=Uf.createFXAAStage(),t=Uf.createAmbientOcclusionStage(),n=Uf.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=Uf.createAutoExposureStage(),this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=Yy.ACES;let i=this._tonemapping;e.enabled=!1,t.enabled=!1,n.enabled=!1,i.enabled=!1;let o=new rC(this),r={},s=dY;for(s.push(e,t,n,i);s.length>0;){let c=s.pop();r[c.name]=c,c._textureCache=o;let u=c.length;if(l(u))for(let f=0;f<u;++f)s.push(c.get(f))}this._stages=[],this._activeStages=[],this._previousActiveStages=[],this._randomTexture=void 0;let a=this;t.uniforms.randomTexture=function(){return a._randomTexture},this._ao=t,this._bloom=n,this._fxaa=e,this._aoEnabled=void 0,this._bloomEnabled=void 0,this._tonemappingEnabled=void 0,this._fxaaEnabled=void 0,this._activeStagesChanged=!1,this._stagesRemoved=!1,this._textureCacheDirty=!1,this._stageNames=r,this._textureCache=o}Object.defineProperties(qc.prototype,{ready:{get:function(){let e=!1,t=this._stages,n=t.length;for(let a=n-1;a>=0;--a){let c=t[a];e=e||c.ready&&c.enabled}let i=this._fxaa,o=this._ao,r=this._bloom,s=this._tonemapping;return e=e||i.ready&&i.enabled,e=e||o.ready&&o.enabled,e=e||r.ready&&r.enabled,e=e||s.ready&&s.enabled,e}},fxaa:{get:function(){return this._fxaa}},ambientOcclusion:{get:function(){return this._ao}},bloom:{get:function(){return this._bloom}},length:{get:function(){return mY(this),this._stages.length}},outputTexture:{get:function(){let e=this._fxaa;if(e.enabled&&e.ready)return this.getOutputTexture(e.name);let t=this._stages,n=t.length;for(let s=n-1;s>=0;--s){let a=t[s];if(l(a)&&a.ready&&a.enabled)return this.getOutputTexture(a.name)}let i=this._tonemapping;if(i.enabled&&i.ready)return this.getOutputTexture(i.name);let o=this._bloom;if(o.enabled&&o.ready)return this.getOutputTexture(o.name);let r=this._ao;if(r.enabled&&r.ready)return this.getOutputTexture(r.name)}},hasSelected:{get:function(){let e=this._stages.slice();for(;e.length>0;){let t=e.pop();if(!l(t))continue;if(l(t.selected))return!0;let n=t.length;if(l(n))for(let i=0;i<n;++i)e.push(t.get(i))}return!1}},tonemapper:{get:function(){return this._tonemapper},set:function(e){if(this._tonemapper===e)return;l(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());let t=this._autoExposureEnabled,n;switch(e){case Yy.REINHARD:n=Uf.createReinhardTonemappingStage(t);break;case Yy.MODIFIED_REINHARD:n=Uf.createModifiedReinhardTonemappingStage(t);break;case Yy.FILMIC:n=Uf.createFilmicTonemappingStage(t);break;default:n=Uf.createAcesTonemappingStage(t);break}if(t){let i=this._autoExposure;n.uniforms.autoExposure=function(){return i.outputTexture}}this._tonemapper=e,this._tonemapping=n,l(this._stageNames)&&(this._stageNames[n.name]=n,n._textureCache=this._textureCache),this._textureCacheDirty=!0}}});function mY(e){if(!e._stagesRemoved)return;e._stagesRemoved=!1;let t=[],n=e._stages,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];s&&(s._index=r++,t.push(s))}e._stages=t}qc.prototype.add=function(e){let t=this._stageNames,n=dY;for(n.push(e);n.length>0;){let o=n.pop();t[o.name]=o,o._textureCache=this._textureCache;let r=o.length;if(l(r))for(let s=0;s<r;++s)n.push(o.get(s))}let i=this._stages;return e._index=i.length,i.push(e),this._textureCacheDirty=!0,e};qc.prototype.remove=function(e){if(!this.contains(e))return!1;let t=this._stageNames,n=dY;for(n.push(e);n.length>0;){let i=n.pop();delete t[i.name];let o=i.length;if(l(o))for(let r=0;r<o;++r)n.push(i.get(r))}return this._stages[e._index]=void 0,this._stagesRemoved=!0,this._textureCacheDirty=!0,e._index=void 0,e._textureCache=void 0,e.destroy(),!0};qc.prototype.contains=function(e){return l(e)&&l(e._index)&&e._textureCache===this._textureCache};qc.prototype.get=function(e){return mY(this),this._stages[e]};qc.prototype.removeAll=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)this.remove(e[n]);e.length=0};qc.prototype.getStageByName=function(e){return this._stageNames[e]};qc.prototype.update=function(e,t,n){mY(this);let i=this._activeStages,o=this._activeStages=this._previousActiveStages;this._previousActiveStages=i;let r=this._stages,s=o.length=r.length,a,c,u=0;for(a=0;a<s;++a)c=r[a],c.ready&&c.enabled&&c._isSupported(e)&&(o[u++]=c);o.length=u;let f=u!==i.length;if(!f){for(a=0;a<u;++a)if(o[a]!==i[a]){f=!0;break}}let d=this._ao,p=this._bloom,g=this._autoExposure,h=this._tonemapping,A=this._fxaa;h.enabled=n;let x=d.enabled&&d._isSupported(e),C=p.enabled&&p._isSupported(e),T=h.enabled&&h._isSupported(e),E=A.enabled&&A._isSupported(e);if((f||this._textureCacheDirty||x!==this._aoEnabled||C!==this._bloomEnabled||T!==this._tonemappingEnabled||E!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._aoEnabled=x,this._bloomEnabled=C,this._tonemappingEnabled=T,this._fxaaEnabled=E,this._textureCacheDirty=!1),l(this._randomTexture)&&!x&&(this._randomTexture.destroy(),this._randomTexture=void 0),!l(this._randomTexture)&&x){s=256*256*3;let S=new Uint8Array(s);for(a=0;a<s;a+=3)S[a]=Math.floor(Math.random()*255);this._randomTexture=new Bt({context:e,pixelFormat:ct.RGB,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:S,width:256,height:256},sampler:new dn({wrapS:vn.REPEAT,wrapT:vn.REPEAT,minificationFilter:cn.NEAREST,magnificationFilter:xi.NEAREST})})}for(this._textureCache.update(e),A.update(e,t),d.update(e,t),p.update(e,t),h.update(e,t),this._autoExposureEnabled&&g.update(e,t),s=r.length,a=0;a<s;++a)r[a].update(e,t);for(u=0,a=0;a<s;++a)c=r[a],c.ready&&c.enabled&&c._isSupported(e)&&u++;f=u!==o.length,f&&this.update(e,t,n)};qc.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)};function sC(e){for(;l(e.length);)e=e.get(e.length-1);return e.outputTexture}qc.prototype.getOutputTexture=function(e){let t=this.getStageByName(e);if(l(t))return sC(t)};function Ph(e,t,n,i,o){if(l(e.execute)){e.execute(t,n,i,o);return}let r=e.length,s;if(e.inputPreviousStageTexture)for(Ph(e.get(0),t,n,i,o),s=1;s<r;++s)Ph(e.get(s),t,sC(e.get(s-1)),i,o);else for(s=0;s<r;++s)Ph(e.get(s),t,n,i,o)}qc.prototype.execute=function(e,t,n,i){let o=this._activeStages,r=o.length,s=this._fxaa,a=this._ao,c=this._bloom,u=this._autoExposure,f=this._tonemapping,d=a.enabled&&a._isSupported(e),p=c.enabled&&c._isSupported(e),g=this._autoExposureEnabled,h=f.enabled&&f._isSupported(e),A=s.enabled&&s._isSupported(e);if(!A&&!d&&!p&&!h&&r===0)return;let x=t;d&&a.ready&&(Ph(a,e,x,n,i),x=sC(a)),p&&c.ready&&(Ph(c,e,x,n,i),x=sC(c)),g&&u.ready&&Ph(u,e,x,n,i),h&&f.ready&&(Ph(f,e,x,n,i),x=sC(f));let C=x;if(r>0){Ph(o[0],e,x,n,i);for(let T=1;T<r;++T)Ph(o[T],e,sC(o[T-1]),n,i);C=sC(o[r-1])}A&&s.ready&&Ph(s,e,C,n,i)};qc.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(Rl,{uniformMap:{colorTexture:function(){return n.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};qc.prototype.isDestroyed=function(){return!1};qc.prototype.destroy=function(){return this._fxaa.destroy(),this._ao.destroy(),this._bloom.destroy(),this._autoExposure.destroy(),this._tonemapping.destroy(),this.removeAll(),this._textureCache=this._textureCache&&this._textureCache.destroy(),ue(this)};var yN=qc;var act={SHIFT:0,CTRL:1,ALT:2},aa=Object.freeze(act);var cct={LEFT_DOWN:0,LEFT_UP:1,LEFT_CLICK:2,LEFT_DOUBLE_CLICK:3,RIGHT_DOWN:5,RIGHT_UP:6,RIGHT_CLICK:7,MIDDLE_DOWN:10,MIDDLE_UP:11,MIDDLE_CLICK:12,MOUSE_MOVE:15,WHEEL:16,PINCH_START:17,PINCH_END:18,PINCH_MOVE:19},Cn=Object.freeze(cct);function qy(e,t,n){let i=e._element;if(i===document)return n.x=t.clientX,n.y=t.clientY,n;let o=i.getBoundingClientRect();return n.x=t.clientX-o.left,n.y=t.clientY-o.top,n}function AY(e,t){let n=e;return l(t)&&(n+=`+${t}`),n}function aC(e){if(e.shiftKey)return aa.SHIFT;if(e.ctrlKey)return aa.CTRL;if(e.altKey)return aa.ALT}var ms={LEFT:0,MIDDLE:1,RIGHT:2};function vu(e,t,n,i){function o(r){i(e,r)}Ht.isInternetExplorer()?n.addEventListener(t,o,!1):n.addEventListener(t,o,{capture:!1,passive:!1}),e._removalFunctions.push(function(){n.removeEventListener(t,o,!1)})}function lct(e){let t=e._element,n=l(t.disableRootEvents)?t:document;Ht.supportsPointerEvents()?(vu(e,"pointerdown",t,pct),vu(e,"pointerup",t,Hge),vu(e,"pointermove",t,_ct),vu(e,"pointercancel",t,Hge)):(vu(e,"mousedown",t,Gge),vu(e,"mouseup",n,Wge),vu(e,"mousemove",n,jge),vu(e,"touchstart",t,mct),vu(e,"touchend",n,Fge),vu(e,"touchmove",n,hct),vu(e,"touchcancel",n,Fge)),vu(e,"dblclick",t,fct);let i;"onwheel"in t?i="wheel":document.onmousewheel!==void 0?i="mousewheel":i="DOMMouseScroll",vu(e,i,t,dct)}function uct(e){let t=e._removalFunctions;for(let n=0;n<t.length;++n)t[n]()}var Rge={position:new H};function xY(e){e._lastSeenTouchEvent=gi()}function CY(e){return gi()-e._lastSeenTouchEvent>fm.mouseEmulationIgnoreMilliseconds}function yY(e,t,n){let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)<n}function Gge(e,t){if(!CY(e))return;let n=t.button;e._buttonDown[n]=!0;let i;if(n===ms.LEFT)i=Cn.LEFT_DOWN;else if(n===ms.MIDDLE)i=Cn.MIDDLE_DOWN;else if(n===ms.RIGHT)i=Cn.RIGHT_DOWN;else return;let o=qy(e,t,e._primaryPosition);H.clone(o,e._primaryStartPosition),H.clone(o,e._primaryPreviousPosition);let r=aC(t),s=e.getInputAction(i,r);l(s)&&(H.clone(o,Rge.position),s(Rge),t.preventDefault())}var Bge={position:new H},Lge={position:new H};function hY(e,t,n,i){let o=aC(i),r=e.getInputAction(t,o),s=e.getInputAction(n,o);if(l(r)||l(s)){let a=qy(e,i,e._primaryPosition);if(l(r)&&(H.clone(a,Bge.position),r(Bge)),l(s)){let c=e._primaryStartPosition;yY(c,a,e._clickPixelTolerance)&&(H.clone(a,Lge.position),s(Lge))}}}function Wge(e,t){if(!CY(e))return;let n=t.button;n!==ms.LEFT&&n!==ms.MIDDLE&&n!==ms.RIGHT||(e._buttonDown[ms.LEFT]&&(hY(e,Cn.LEFT_UP,Cn.LEFT_CLICK,t),e._buttonDown[ms.LEFT]=!1),e._buttonDown[ms.MIDDLE]&&(hY(e,Cn.MIDDLE_UP,Cn.MIDDLE_CLICK,t),e._buttonDown[ms.MIDDLE]=!1),e._buttonDown[ms.RIGHT]&&(hY(e,Cn.RIGHT_UP,Cn.RIGHT_CLICK,t),e._buttonDown[ms.RIGHT]=!1))}var pY={startPosition:new H,endPosition:new H};function jge(e,t){if(!CY(e))return;let n=aC(t),i=qy(e,t,e._primaryPosition),o=e._primaryPreviousPosition,r=e.getInputAction(Cn.MOUSE_MOVE,n);l(r)&&(H.clone(o,pY.startPosition),H.clone(i,pY.endPosition),r(pY)),H.clone(i,o),(e._buttonDown[ms.LEFT]||e._buttonDown[ms.MIDDLE]||e._buttonDown[ms.RIGHT])&&t.preventDefault()}var Nge={position:new H};function fct(e,t){let n=t.button,i;if(n===ms.LEFT)i=Cn.LEFT_DOUBLE_CLICK;else return;let o=aC(t),r=e.getInputAction(i,o);l(r)&&(qy(e,t,Nge.position),r(Nge))}function dct(e,t){let n;if(l(t.deltaY)){let r=t.deltaMode;r===t.DOM_DELTA_PIXEL?n=-t.deltaY:r===t.DOM_DELTA_LINE?n=-t.deltaY*40:n=-t.deltaY*120}else t.detail>0?n=t.detail*-120:n=t.wheelDelta;if(!l(n))return;let i=aC(t),o=e.getInputAction(Cn.WHEEL,i);l(o)&&(o(n),t.preventDefault())}function mct(e,t){xY(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.set(s,qy(e,r,new H));_z(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.set(s,H.clone(a.get(s)))}function Fge(e,t){xY(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.remove(s);_z(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.remove(s)}var Uge={position:new H},_Y={position1:new H,position2:new H},Vge={position:new H},kge={position:new H},zge={position:new H};function _z(e,t){let n=aC(t),i=e._positions,o=i.length,r,s,a=e._isPinching;if(o!==1&&e._buttonDown[ms.LEFT]){if(e._buttonDown[ms.LEFT]=!1,l(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),r=e.getInputAction(Cn.LEFT_UP,n),l(r)&&(H.clone(e._primaryPosition,Vge.position),r(Vge)),o===0&&!e._isTouchHolding&&(s=e.getInputAction(Cn.LEFT_CLICK,n),l(s))){let c=e._primaryStartPosition,u=e._previousPositions.values[0];yY(c,u,e._clickPixelTolerance)&&(H.clone(e._primaryPosition,kge.position),s(kge))}e._isTouchHolding=!1}if(o===0&&a&&(e._isPinching=!1,r=e.getInputAction(Cn.PINCH_END,n),l(r)&&r()),o===1&&!a){let c=i.values[0];H.clone(c,e._primaryPosition),H.clone(c,e._primaryStartPosition),H.clone(c,e._primaryPreviousPosition),e._buttonDown[ms.LEFT]=!0,r=e.getInputAction(Cn.LEFT_DOWN,n),l(r)&&(H.clone(c,Uge.position),r(Uge)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,s=e.getInputAction(Cn.RIGHT_CLICK,n),l(s))){let u=e._primaryStartPosition,f=e._previousPositions.values[0];yY(u,f,e._holdPixelTolerance)&&(H.clone(e._primaryPosition,zge.position),s(zge))}},fm.touchHoldDelayMilliseconds),t.preventDefault()}o===2&&!a&&(e._isPinching=!0,r=e.getInputAction(Cn.PINCH_START,n),l(r)&&(H.clone(i.values[0],_Y.position1),H.clone(i.values[1],_Y.position2),r(_Y),t.preventDefault()))}function hct(e,t){xY(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i){r=n[i],s=r.identifier;let u=a.get(s);l(u)&&qy(e,r,u)}Yge(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,H.clone(a.get(s),c.get(s))}var gY={startPosition:new H,endPosition:new H},AN={distance:{startPosition:new H,endPosition:new H},angleAndHeight:{startPosition:new H,endPosition:new H}};function Yge(e,t){let n=aC(t),i=e._positions,o=e._previousPositions,r=i.length,s;if(r===1&&e._buttonDown[ms.LEFT]){let a=i.values[0];H.clone(a,e._primaryPosition);let c=e._primaryPreviousPosition;s=e.getInputAction(Cn.MOUSE_MOVE,n),l(s)&&(H.clone(c,gY.startPosition),H.clone(a,gY.endPosition),s(gY)),H.clone(a,c),t.preventDefault()}else if(r===2&&e._isPinching&&(s=e.getInputAction(Cn.PINCH_MOVE,n),l(s))){let a=i.values[0],c=i.values[1],u=o.values[0],f=o.values[1],d=c.x-a.x,p=c.y-a.y,g=Math.sqrt(d*d+p*p)*.25,h=f.x-u.x,A=f.y-u.y,x=Math.sqrt(h*h+A*A)*.25,C=(c.y+a.y)*.125,T=(f.y+u.y)*.125,E=Math.atan2(p,d),S=Math.atan2(A,h);H.fromElements(0,x,AN.distance.startPosition),H.fromElements(0,g,AN.distance.endPosition),H.fromElements(S,T,AN.angleAndHeight.startPosition),H.fromElements(E,C,AN.angleAndHeight.endPosition),s(AN)}}function pct(e,t){if(t.target.setPointerCapture(t.pointerId),t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.set(i,qy(e,t,new H)),_z(e,t),e._previousPositions.set(i,H.clone(n.get(i)))}else Gge(e,t)}function Hge(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.remove(i),_z(e,t),e._previousPositions.remove(i)}else Wge(e,t)}function _ct(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId,o=n.get(i);if(!l(o))return;qy(e,t,o),Yge(e,t);let r=e._previousPositions;H.clone(n.get(i),r.get(i))}else jge(e,t)}function fm(e){this._inputEvents={},this._buttonDown={LEFT:!1,MIDDLE:!1,RIGHT:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-fm.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new H,this._primaryPosition=new H,this._primaryPreviousPosition=new H,this._positions=new Et,this._previousPositions=new Et,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=y(e,document),lct(this)}fm.prototype.setInputAction=function(e,t,n){let i=AY(t,n);this._inputEvents[i]=e};fm.prototype.getInputAction=function(e,t){let n=AY(e,t);return this._inputEvents[n]};fm.prototype.removeInputAction=function(e,t){let n=AY(e,t);delete this._inputEvents[n]};fm.prototype.isDestroyed=function(){return!1};fm.prototype.destroy=function(){return uct(this),ue(this)};fm.mouseEmulationIgnoreMilliseconds=800;fm.touchHoldDelayMilliseconds=1500;var Du=fm;function cC(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}cC.prototype.completeMorph=function(){l(this._completeMorph)&&this._completeMorph()};cC.prototype.morphTo2D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;this._previousMode=n.mode,this._morphToOrthographic=n.camera.frustum instanceof tn,!(this._previousMode===ne.SCENE2D||this._previousMode===ne.MORPHING)&&(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE2D,!0),n._mode=ne.MORPHING,n.camera._setTransform(B.IDENTITY),this._previousMode===ne.COLUMBUS_VIEW?Kct(this,e):nlt(this,e,t),e===0&&l(this._completeMorph)&&this._completeMorph())};var gct=new m,yct=new m,Act=new m,xct=new m,Cct=new m,Tct=new m,Ect=new m,bct=new he,Sct=new B,wct=new bi,vct=new tn,Dct={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};cC.prototype.morphToColumbusView=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,this._previousMode===ne.COLUMBUS_VIEW||this._previousMode===ne.MORPHING)return;this._scene.morphStart.raiseEvent(this,this._previousMode,ne.COLUMBUS_VIEW,!0),n.camera._setTransform(B.IDENTITY);let i=gct,o=yct,r=Act;if(e>0)i.x=0,i.y=-1,i.z=1,i=m.multiplyByScalar(m.normalize(i,i),5*t.maximumRadius,i),m.negate(m.normalize(i,o),o),m.cross(m.UNIT_X,o,r);else{let u=n.camera;if(this._previousMode===ne.SCENE2D)m.clone(u.position,i),i.z=u.frustum.right-u.frustum.left,m.negate(m.UNIT_Z,o),m.clone(m.UNIT_Y,r);else{m.clone(u.positionWC,i),m.clone(u.directionWC,o),m.clone(u.upWC,r);let f=t.scaleToGeodeticSurface(i,Ect),d=Rt.eastNorthUpToFixedFrame(f,t,Sct);B.inverseTransformation(d,d),n.mapProjection.project(t.cartesianToCartographic(i,bct),i),B.multiplyByPointAsVector(d,o,o),B.multiplyByPointAsVector(d,r,r)}}let s;this._morphToOrthographic?(s=vct,s.width=n.camera.frustum.right-n.camera.frustum.left,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(s=wct,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,s.fov=P.toRadians(60));let a=Dct;a.position=i,a.direction=o,a.up=r,a.frustum=s;let c=olt(a);xN(this,c),this._previousMode===ne.SCENE2D?ilt(this,e,a,c):(a.position2D=B.multiplyByPoint(so.TRANSFORM_2D,i,xct),a.direction2D=B.multiplyByPointAsVector(so.TRANSFORM_2D,o,Cct),a.up2D=B.multiplyByPointAsVector(so.TRANSFORM_2D,r,Tct),n._mode=ne.MORPHING,iye(this,e,a,c)),e===0&&l(this._completeMorph)&&this._completeMorph()};var bY={position:new m,direction:new m,up:new m,frustum:void 0},Xge=new bi;cC.prototype.morphTo3D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,!(this._previousMode===ne.SCENE3D||this._previousMode===ne.MORPHING)){if(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE3D,!0),n._mode=ne.MORPHING,n.camera._setTransform(B.IDENTITY),this._previousMode===ne.SCENE2D)Vct(this,e,t);else{let i;e>0?(i=bY,m.fromDegrees(0,0,5*t.maximumRadius,t,i.position),m.negate(i.position,i.direction),m.normalize(i.direction,i.direction),m.clone(m.UNIT_Z,i.up)):i=Kge(this,t);let o,r=n.camera;r.frustum instanceof tn?o=r.frustum.clone():(o=Xge,o.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,o.fov=P.toRadians(60)),i.frustum=o;let s=rye(i);xN(this,s),EY(this,e,i,s)}e===0&&l(this._completeMorph)&&this._completeMorph()}};cC.prototype.isDestroyed=function(){return!1};cC.prototype.destroy=function(){return gz(this),ue(this)};function xN(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new Du(e._scene.canvas);let n=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=n,e._morphHandler.setInputAction(n,Cn.LEFT_DOWN),e._morphHandler.setInputAction(n,Cn.MIDDLE_DOWN),e._morphHandler.setInputAction(n,Cn.RIGHT_DOWN),e._morphHandler.setInputAction(n,Cn.WHEEL)}}function gz(e){let t=e._currentTweens;for(let n=0;n<t.length;++n)t[n].cancelTween();e._currentTweens.length=0,e._morphHandler=e._morphHandler&&e._morphHandler.destroy()}var Ict=new he,Pct=new m,Oct=new B;function Kge(e,t){let n=e._scene,i=n.camera,o=bY,r=o.position,s=o.direction,a=o.up,c=n.mapProjection.unproject(i.position,Ict);t.cartographicToCartesian(c,r);let u=t.scaleToGeodeticSurface(r,Pct),f=Rt.eastNorthUpToFixedFrame(u,t,Oct);return B.multiplyByPointAsVector(f,i.direction,s),B.multiplyByPointAsVector(f,i.up,a),o}var Mct=new m,Rct=new m,Bct=new m,Lct=new m,Nct=new m,Fct=new m;function EY(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=m.clone(r.position,Mct),a=m.clone(r.direction,Rct),c=m.clone(r.up,Bct),u=B.multiplyByPoint(so.TRANSFORM_2D_INVERSE,n.position,Lct),f=B.multiplyByPointAsVector(so.TRANSFORM_2D_INVERSE,n.direction,Nct),d=B.multiplyByPointAsVector(so.TRANSFORM_2D_INVERSE,n.up,Fct);function p(h){Vf(s,u,h.time,r.position),Vf(a,f,h.time,r.direction),Vf(c,d,h.time,r.up),m.cross(r.direction,r.up,r.right),m.normalize(r.right,r.right)}let g=o.tweens.add({duration:t,easingFunction:Or.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){oye(e,o,0,1,t,i)}});e._currentTweens.push(g)}var Uct=new tn,Jge=new m,Zge=new m,Qge=new m,SY=new m,$ge=new m,eye=new m;function Vct(e,t,n){t/=3;let i=e._scene,o=i.camera,r;t>0?(r=bY,m.fromDegrees(0,0,5*n.maximumRadius,n,r.position),m.negate(r.position,r.direction),m.normalize(r.direction,r.direction),m.clone(m.UNIT_Z,r.up)):(o.position.z=o.frustum.right-o.frustum.left,r=Kge(e,n));let s;e._morphToOrthographic?(s=Uct,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.width=o.frustum.right-o.frustum.left):(s=Xge,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.fov=P.toRadians(60)),r.frustum=s;let a=rye(r);xN(e,a);let c;e._morphToOrthographic?c=function(){EY(e,t,r,a)}:c=function(){nye(e,t,r,function(){EY(e,t,r,a)})},t>0?(i._mode=ne.SCENE2D,o.flyTo({duration:t,destination:m.fromDegrees(0,0,5*n.maximumRadius,n,SY),complete:function(){i._mode=ne.MORPHING,c()}})):c()}function Vf(e,t,n,i){return m.lerp(e,t,n,i)}function tye(e,t,n,i,o){let r=e._scene,s=r.camera;if(s.frustum instanceof tn)return;let a=s.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,u=n.position.z*Math.tan(a*.5);s.frustum.far=u/Math.tan(c*.5)+1e7;function f(p){s.frustum.fov=P.lerp(a,c,p.time);let g=u/Math.tan(s.frustum.fov*.5);i(s,g)}let d=r.tweens.add({duration:t,easingFunction:Or.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){s.frustum=n.frustum.clone(),o(e)}});e._currentTweens.push(d)}var kct=new m,zct=new m,Hct=new m,TY=new m,Gct=new m,Wct=new m,jct=new xr,Yct=new Dn,qct=new m,Xct={position:void 0,direction:void 0,up:void 0,frustum:void 0};function Kct(e,t){t*=.5;let n=e._scene,i=n.camera,o=m.clone(i.position,kct),r=m.clone(i.direction,zct),s=m.clone(i.up,Hct),a=m.negate(m.UNIT_Z,Gct),c=m.clone(m.UNIT_Y,Wct),u=TY;if(t>0)m.clone(m.ZERO,TY),u.z=5*n.mapProjection.ellipsoid.maximumRadius;else{m.clone(o,TY);let x=Yct;B.multiplyByPoint(so.TRANSFORM_2D,o,x.origin),B.multiplyByPointAsVector(so.TRANSFORM_2D,r,x.direction);let C=n.globe;if(l(C)){let T=C.pickWorldCoordinates(x,n,!0,qct);l(T)&&(B.multiplyByPoint(so.TRANSFORM_2D_INVERSE,T,u),u.z+=m.distance(o,u))}}let f=jct;f.right=u.z*.5,f.left=-f.right,f.top=f.right*(n.drawingBufferHeight/n.drawingBufferWidth),f.bottom=-f.top;let d=Xct;d.position=u,d.direction=a,d.up=c,d.frustum=f;let p=sye(d);xN(e,p);function g(x){Vf(o,u,x.time,i.position),Vf(r,a,x.time,i.direction),Vf(s,c,x.time,i.up),m.cross(i.direction,i.up,i.right),m.normalize(i.right,i.right),i._adjustOrthographicFrustum(!0)}function h(x,C){x.position.z=C}let A=n.tweens.add({duration:t,easingFunction:Or.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){tye(e,t,d,h,p)}});e._currentTweens.push(A)}var qge=new he,Jct={position:new m,direction:new m,up:new m,position2D:new m,direction2D:new m,up2D:new m,frustum:new xr},Zct={position:new m,direction:new m,up:new m,frustum:void 0},Qct=new m,$ct=new Dn,elt=new B,tlt=new m;function nlt(e,t,n){t*=.5;let i=e._scene,o=i.camera,r=Jct;if(t>0)m.clone(m.ZERO,r.position),r.position.z=5*n.maximumRadius,m.negate(m.UNIT_Z,r.direction),m.clone(m.UNIT_Y,r.up);else{n.cartesianToCartographic(o.positionWC,qge),i.mapProjection.project(qge,r.position),m.negate(m.UNIT_Z,r.direction),m.clone(m.UNIT_Y,r.up);let d=$ct;m.clone(r.position2D,d.origin);let p=m.clone(o.directionWC,d.direction),g=n.scaleToGeodeticSurface(o.positionWC,tlt),h=Rt.eastNorthUpToFixedFrame(g,n,elt);B.inverseTransformation(h,h),B.multiplyByPointAsVector(h,p,p),B.multiplyByPointAsVector(so.TRANSFORM_2D,p,p);let A=i.globe;if(l(A)){let x=A.pickWorldCoordinates(d,i,!0,Qct);if(l(x)){let C=m.distance(r.position2D,x);x.x+=C,m.clone(x,r.position2D)}}}function s(d,p){d.position.x=p}B.multiplyByPoint(so.TRANSFORM_2D,r.position,r.position2D),B.multiplyByPointAsVector(so.TRANSFORM_2D,r.direction,r.direction2D),B.multiplyByPointAsVector(so.TRANSFORM_2D,r.up,r.up2D);let a=r.frustum;a.right=r.position.z*.5,a.left=-a.right,a.top=a.right*(i.drawingBufferHeight/i.drawingBufferWidth),a.bottom=-a.top;let c=Zct;B.multiplyByPoint(so.TRANSFORM_2D_INVERSE,r.position2D,c.position),m.clone(r.direction,c.direction),m.clone(r.up,c.up),c.frustum=a;let u=sye(c);xN(e,u);function f(){tye(e,t,r,s,u)}iye(e,t,r,f)}function nye(e,t,n,i){let o=e._scene,r=o.camera,s=r.frustum.right-r.frustum.left;r.frustum=n.frustum.clone();let a=r.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,u=s*Math.tan(a*.5);r.frustum.far=u/Math.tan(c*.5)+1e7,r.frustum.fov=c;function f(p){r.frustum.fov=P.lerp(c,a,p.time),r.position.z=u/Math.tan(r.frustum.fov*.5)}let d=o.tweens.add({duration:t,easingFunction:Or.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){i(e)}});e._currentTweens.push(d)}function ilt(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=m.clone(n.position,SY),a=m.clone(n.direction,$ge),c=m.clone(n.up,eye);o._mode=ne.MORPHING;function u(){r.frustum=n.frustum.clone();let f=m.clone(r.position,Jge),d=m.clone(r.direction,Zge),p=m.clone(r.up,Qge);f.z=s.z;function g(A){Vf(f,s,A.time,r.position),Vf(d,a,A.time,r.direction),Vf(p,c,A.time,r.up),m.cross(r.direction,r.up,r.right),m.normalize(r.right,r.right)}let h=o.tweens.add({duration:t,easingFunction:Or.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){i(e)}});e._currentTweens.push(h)}e._morphToOrthographic?u():nye(e,0,n,u)}function iye(e,t,n,i){let o=e._scene,r=o.camera,s=m.clone(r.position,Jge),a=m.clone(r.direction,Zge),c=m.clone(r.up,Qge),u=m.clone(n.position2D,SY),f=m.clone(n.direction2D,$ge),d=m.clone(n.up2D,eye);function p(h){Vf(s,u,h.time,r.position),Vf(a,f,h.time,r.direction),Vf(c,d,h.time,r.up),m.cross(r.direction,r.up,r.right),m.normalize(r.right,r.right),r._adjustOrthographicFrustum(!0)}let g=o.tweens.add({duration:t,easingFunction:Or.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){oye(e,o,1,0,t,i)}});e._currentTweens.push(g)}function oye(e,t,n,i,o,r){let s={object:t,property:"morphTime",startValue:n,stopValue:i,duration:o,easingFunction:Or.QUARTIC_OUT};l(r)&&(s.complete=function(){r(e)});let a=t.tweens.addProperty(s);e._currentTweens.push(a)}function rye(e){return function(t){let n=t._scene;n._mode=ne.SCENE3D,n.morphTime=ne.getMorphTime(ne.SCENE3D),gz(t);let i=n.camera;(t._previousMode!==ne.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,m.clone(e.position,i.position),m.clone(e.direction,i.direction),m.clone(e.up,i.up),m.cross(i.direction,i.up,i.right),m.normalize(i.right,i.right),i.frustum=e.frustum.clone());let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE3D,r)}}function sye(e){return function(t){let n=t._scene;n._mode=ne.SCENE2D,n.morphTime=ne.getMorphTime(ne.SCENE2D),gz(t);let i=n.camera;m.clone(e.position,i.position),i.position.z=n.mapProjection.ellipsoid.maximumRadius*2,m.clone(e.direction,i.direction),m.clone(e.up,i.up),m.cross(i.direction,i.up,i.right),m.normalize(i.right,i.right),i.frustum=e.frustum.clone();let o=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE2D,o)}}function olt(e){return function(t){let n=t._scene;n._mode=ne.COLUMBUS_VIEW,n.morphTime=ne.getMorphTime(ne.COLUMBUS_VIEW),gz(t);let i=n.camera;(t._previousModeMode!==ne.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,m.clone(e.position,i.position),m.clone(e.direction,i.direction),m.clone(e.up,i.up),m.cross(i.direction,i.up,i.right),m.normalize(i.right,i.right));let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.COLUMBUS_VIEW,r)}}var CN=cC;var rlt={LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4},Oi=Object.freeze(rlt);function fc(e,t){let n=e;return l(t)&&(n+=`+${t}`),n}function slt(e,t){H.clone(e.distance.startPosition,t.distance.startPosition),H.clone(e.distance.endPosition,t.distance.endPosition),H.clone(e.angleAndHeight.startPosition,t.angleAndHeight.startPosition),H.clone(e.angleAndHeight.endPosition,t.angleAndHeight.endPosition)}function aye(e,t,n){let i=fc(Oi.PINCH,t),o=e._update,r=e._isDown,s=e._eventStartPosition,a=e._pressTime,c=e._releaseTime;o[i]=!0,r[i]=!1,s[i]=new H;let u=e._movement[i];l(u)||(u=e._movement[i]={}),u.distance={startPosition:new H,endPosition:new H},u.angleAndHeight={startPosition:new H,endPosition:new H},u.prevAngle=0,e._eventHandler.setInputAction(function(f){e._buttonsDown++,r[i]=!0,a[i]=new Date,H.lerp(f.position1,f.position2,.5,s[i])},Cn.PINCH_START,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),r[i]=!1,c[i]=new Date},Cn.PINCH_END,t),e._eventHandler.setInputAction(function(f){if(r[i]){o[i]?(slt(f,u),o[i]=!1,u.prevAngle=u.angleAndHeight.startPosition.x):(H.clone(f.distance.endPosition,u.distance.endPosition),H.clone(f.angleAndHeight.endPosition,u.angleAndHeight.endPosition));let d=u.angleAndHeight.endPosition.x,p=u.prevAngle,g=Math.PI*2;for(;d>=p+Math.PI;)d-=g;for(;d<p-Math.PI;)d+=g;u.angleAndHeight.endPosition.x=-d*n.clientWidth/12,u.angleAndHeight.startPosition.x=-p*n.clientWidth/12}},Cn.PINCH_MOVE,t)}function cye(e,t){let n=fc(Oi.WHEEL,t),i=e._pressTime,o=e._releaseTime,r=e._update;r[n]=!0;let s=e._movement[n];l(s)||(s=e._movement[n]={});let a=e._lastMovement[n];l(a)||(a=e._lastMovement[n]={startPosition:new H,endPosition:new H,valid:!1}),s.startPosition=new H,H.clone(H.ZERO,s.startPosition),s.endPosition=new H,e._eventHandler.setInputAction(function(c){let u=7.5*P.toRadians(c);i[n]=o[n]=new Date,s.endPosition.x=0,s.endPosition.y=u,H.clone(s.endPosition,a.endPosition),a.valid=!0,r[n]=!1},Cn.WHEEL,t)}function pS(e,t,n){let i=fc(n,t),o=e._isDown,r=e._eventStartPosition,s=e._pressTime,a=e._releaseTime;o[i]=!1,r[i]=new H;let c=e._lastMovement[i];l(c)||(c=e._lastMovement[i]={startPosition:new H,endPosition:new H,valid:!1});let u,f;n===Oi.LEFT_DRAG?(u=Cn.LEFT_DOWN,f=Cn.LEFT_UP):n===Oi.RIGHT_DRAG?(u=Cn.RIGHT_DOWN,f=Cn.RIGHT_UP):n===Oi.MIDDLE_DRAG&&(u=Cn.MIDDLE_DOWN,f=Cn.MIDDLE_UP),e._eventHandler.setInputAction(function(d){e._buttonsDown++,c.valid=!1,o[i]=!0,s[i]=new Date,H.clone(d.position,r[i])},u,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),o[i]=!1,a[i]=new Date},f,t)}function lye(e,t){H.clone(e.startPosition,t.startPosition),H.clone(e.endPosition,t.endPosition)}function uye(e,t){let n=e._update,i=e._movement,o=e._lastMovement,r=e._isDown;for(let s in Oi)if(Oi.hasOwnProperty(s)){let a=Oi[s];if(l(a)){let c=fc(a,t);n[c]=!0,l(e._lastMovement[c])||(e._lastMovement[c]={startPosition:new H,endPosition:new H,valid:!1}),l(e._movement[c])||(e._movement[c]={startPosition:new H,endPosition:new H})}}e._eventHandler.setInputAction(function(s){for(let a in Oi)if(Oi.hasOwnProperty(a)){let c=Oi[a];if(l(c)){let u=fc(c,t);r[u]&&(n[u]?(lye(i[u],o[u]),o[u].valid=!0,lye(s,i[u]),n[u]=!1):H.clone(s.endPosition,i[u].endPosition))}}H.clone(s.endPosition,e._currentMousePosition)},Cn.MOUSE_MOVE,t)}function kf(e){this._eventHandler=new Du(e),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new H,cye(this,void 0),aye(this,void 0,e),pS(this,void 0,Oi.LEFT_DRAG),pS(this,void 0,Oi.RIGHT_DRAG),pS(this,void 0,Oi.MIDDLE_DRAG),uye(this,void 0);for(let t in aa)if(aa.hasOwnProperty(t)){let n=aa[t];l(n)&&(cye(this,n),aye(this,n,e),pS(this,n,Oi.LEFT_DRAG),pS(this,n,Oi.RIGHT_DRAG),pS(this,n,Oi.MIDDLE_DRAG),uye(this,n))}}Object.defineProperties(kf.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){let e=!this._update[fc(Oi.WHEEL)]||!this._update[fc(Oi.WHEEL,aa.SHIFT)]||!this._update[fc(Oi.WHEEL,aa.CTRL)]||!this._update[fc(Oi.WHEEL,aa.ALT)];return this._buttonsDown>0||e}}});kf.prototype.isMoving=function(e,t){let n=fc(e,t);return!this._update[n]};kf.prototype.getMovement=function(e,t){let n=fc(e,t);return this._movement[n]};kf.prototype.getLastMovement=function(e,t){let n=fc(e,t),i=this._lastMovement[n];if(i.valid)return i};kf.prototype.isButtonDown=function(e,t){let n=fc(e,t);return this._isDown[n]};kf.prototype.getStartMousePosition=function(e,t){if(e===Oi.WHEEL)return this._currentMousePosition;let n=fc(e,t);return this._eventStartPosition[n]};kf.prototype.getButtonPressTime=function(e,t){let n=fc(e,t);return this._pressTime[n]};kf.prototype.getButtonReleaseTime=function(e,t){let n=fc(e,t);return this._releaseTime[n]};kf.prototype.reset=function(){for(let e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)};kf.prototype.isDestroyed=function(){return!1};kf.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),ue(this)};var TN=kf;function yz(e,t,n,i,o,r,s,a,c,u){this._tweens=e,this._tweenjs=t,this._startObject=Ye(n),this._stopObject=Ye(i),this._duration=o,this._delay=r,this._easingFunction=s,this._update=a,this._complete=c,this.cancel=u,this.needsStart=!0}Object.defineProperties(yz.prototype,{startObject:{get:function(){return this._startObject}},stopObject:{get:function(){return this._stopObject}},duration:{get:function(){return this._duration}},delay:{get:function(){return this._delay}},easingFunction:{get:function(){return this._easingFunction}},update:{get:function(){return this._update}},complete:{get:function(){return this._complete}},tweenjs:{get:function(){return this._tweenjs}}});yz.prototype.cancelTween=function(){this._tweens.remove(this)};function dm(){this._tweens=[]}Object.defineProperties(dm.prototype,{length:{get:function(){return this._tweens.length}}});dm.prototype.add=function(e){if(e=y(e,y.EMPTY_OBJECT),e.duration===0)return l(e.complete)&&e.complete(),new yz(this);let t=e.duration/Zn.SECONDS_PER_MILLISECOND,n=y(e.delay,0),i=n/Zn.SECONDS_PER_MILLISECOND,o=y(e.easingFunction,Or.LINEAR_NONE),r=e.startObject,s=new Jme(r);s.to(Ye(e.stopObject),t),s.delay(i),s.easing(o),l(e.update)&&s.onUpdate(function(){e.update(r)}),s.onComplete(y(e.complete,null)),s.repeat(y(e._repeat,0));let a=new yz(this,s,e.startObject,e.stopObject,e.duration,n,o,e.update,e.complete,e.cancel);return this._tweens.push(a),a};dm.prototype.addProperty=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.object,n=e.property,i=e.startValue,o=e.stopValue;function r(s){t[n]=s.value}return this.add({startObject:{value:i},stopObject:{value:o},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:r,complete:e.complete,cancel:e.cancel,_repeat:e._repeat})};dm.prototype.addAlpha=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.material,n=[];for(let o in t.uniforms)t.uniforms.hasOwnProperty(o)&&l(t.uniforms[o])&&l(t.uniforms[o].alpha)&&n.push(o);function i(o){let r=n.length;for(let s=0;s<r;++s)t.uniforms[n[s]].alpha=o.alpha}return this.add({startObject:{alpha:y(e.startValue,0)},stopObject:{alpha:y(e.stopValue,1)},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:i,complete:e.complete,cancel:e.cancel})};dm.prototype.addOffsetIncrement=function(e){e=y(e,y.EMPTY_OBJECT);let n=e.material.uniforms;return this.addProperty({object:n,property:"offset",startValue:n.offset,stopValue:n.offset+1,duration:e.duration,delay:e.delay,easingFunction:e.easingFunction,update:e.update,cancel:e.cancel,_repeat:1/0})};dm.prototype.remove=function(e){if(!l(e))return!1;let t=this._tweens.indexOf(e);return t!==-1?(e.tweenjs.stop(),l(e.cancel)&&e.cancel(),this._tweens.splice(t,1),!0):!1};dm.prototype.removeAll=function(){let e=this._tweens;for(let t=0;t<e.length;++t){let n=e[t];n.tweenjs.stop(),l(n.cancel)&&n.cancel()}e.length=0};dm.prototype.contains=function(e){return l(e)&&this._tweens.indexOf(e)!==-1};dm.prototype.get=function(e){return this._tweens[e]};dm.prototype.update=function(e){let t=this._tweens,n=0;for(e=l(e)?e/Zn.SECONDS_PER_MILLISECOND:gi();n<t.length;){let i=t[n],o=i.tweenjs;i.needsStart?(i.needsStart=!1,o.start(e)):o.update(e)?n++:(o.stop(),t.splice(n,1))}};var lC=dm;function bN(e){this.enableInputs=!0,this.enableTranslate=!0,this.enableZoom=!0,this.enableRotate=!0,this.enableTilt=!0,this.enableLook=!0,this.inertiaSpin=.9,this.inertiaTranslate=.9,this.inertiaZoom=.8,this.maximumMovementRatio=.1,this.bounceAnimationTime=3,this.minimumZoomDistance=1,this.maximumZoomDistance=Number.POSITIVE_INFINITY,this.translateEventTypes=Oi.LEFT_DRAG,this.zoomEventTypes=[Oi.RIGHT_DRAG,Oi.WHEEL,Oi.PINCH],this.rotateEventTypes=Oi.LEFT_DRAG,this.tiltEventTypes=[Oi.MIDDLE_DRAG,Oi.PINCH,{eventType:Oi.LEFT_DRAG,modifier:aa.CTRL},{eventType:Oi.RIGHT_DRAG,modifier:aa.CTRL}],this.lookEventTypes={eventType:Oi.LEFT_DRAG,modifier:aa.SHIFT},this.minimumPickingTerrainHeight=15e4,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight,this.minimumPickingTerrainDistanceWithInertia=4e3,this.minimumCollisionTerrainHeight=15e3,this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight,this.minimumTrackBallHeight=75e5,this._minimumTrackBallHeight=this.minimumTrackBallHeight,this.enableCollisionDetection=!0,this._scene=e,this._globe=void 0,this._ellipsoid=void 0,this._aggregator=new TN(e.canvas),this._lastInertiaSpinMovement=void 0,this._lastInertiaZoomMovement=void 0,this._lastInertiaTranslateMovement=void 0,this._lastInertiaTiltMovement=void 0,this._inertiaDisablers={_lastInertiaZoomMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement","_lastInertiaTiltMovement"],_lastInertiaTiltMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement"]},this._tweens=new lC,this._tween=void 0,this._horizontalRotationAxis=void 0,this._tiltCenterMousePosition=new H(-1,-1),this._tiltCenter=new m,this._rotateMousePosition=new H(-1,-1),this._rotateStartPosition=new m,this._strafeStartPosition=new m,this._strafeMousePosition=new H,this._strafeEndMousePosition=new H,this._zoomMouseStart=new H(-1,-1),this._zoomWorldPosition=new m,this._useZoomWorldPosition=!1,this._tiltCVOffMap=!1,this._looking=!1,this._rotating=!1,this._strafing=!1,this._zoomingOnVector=!1,this._zoomingUnderground=!1,this._rotatingZoom=!1,this._adjustedHeightForTerrain=!1,this._cameraUnderground=!1;let t=e.mapProjection;this._maxCoord=t.project(new he(Math.PI,P.PI_OVER_TWO)),this._zoomFactor=5,this._rotateFactor=void 0,this._rotateRateRangeAdjustment=void 0,this._maximumRotateRate=1.77,this._minimumRotateRate=1/5e3,this._minimumZoomRate=20,this._maximumZoomRate=5906376272e3,this._minimumUndergroundPickDistance=2e3,this._maximumUndergroundPickDistance=1e4}function alt(e,t){if(e<0)return 0;let n=(1-t)*25;return Math.exp(-n*e)}function clt(e){return H.equalsEpsilon(e.startPosition,e.endPosition,P.EPSILON14)}var llt=.4;function ult(e,t,n,i,o,r,s){let a=r[s];l(a)||(a=r[s]={startPosition:new H,endPosition:new H,motion:new H,inertiaEnabled:!0});let c=e.getButtonPressTime(t,n),u=e.getButtonReleaseTime(t,n),f=c&&u&&(u.getTime()-c.getTime())/1e3,p=u&&(new Date().getTime()-u.getTime())/1e3;if(c&&u&&f<llt){let g=alt(p,i),h=e.getLastMovement(t,n);if(!l(h)||clt(h)||!a.inertiaEnabled||(a.motion.x=(h.endPosition.x-h.startPosition.x)*.5,a.motion.y=(h.endPosition.y-h.startPosition.y)*.5,a.startPosition=H.clone(h.startPosition,a.startPosition),a.endPosition=H.multiplyByScalar(a.motion,g,a.endPosition),a.endPosition=H.add(a.startPosition,a.endPosition,a.endPosition),isNaN(a.endPosition.x)||isNaN(a.endPosition.y)||H.distance(a.startPosition,a.endPosition)<.5))return;if(!e.isButtonDown(t,n)){let A=e.getStartMousePosition(t,n);o(r,A,a)}}}function flt(e,t){if(l(t)){let n=e[t];l(n)&&(n.inertiaEnabled=!0);let i=e._inertiaDisablers[t];if(l(i)){let o=i.length;for(let r=0;r<o;++r)n=e[i[r]],l(n)&&(n.inertiaEnabled=!1)}}}var fye=[];function Xc(e,t,n,i,o,r){if(!l(n))return;let s=e._aggregator;Array.isArray(n)||(fye[0]=n,n=fye);let a=n.length;for(let c=0;c<a;++c){let u=n[c],f=l(u.eventType)?u.eventType:u,d=u.modifier,p=s.isMoving(f,d)&&s.getMovement(f,d),g=s.getStartMousePosition(f,d);e.enableInputs&&t&&(p?(i(e,g,p),flt(e,r)):o<1&&ult(s,f,d,o,i,e,r))}}var Az=new Dn,dlt=new m,mlt=new H,hlt=new m,plt=new H,_lt=new m,glt=new m,ylt=new m,Alt=new m,xlt=new m,Clt=new m,Tlt=new m,Elt=new m,blt=new m,Slt=new m,wlt=new m,vlt=new m,Dlt=new m,Ilt=new m,Plt=new m,uC=new m,dye=new m,mye=new m,wY={orientation:new Fa};function BY(e,t,n,i,o,r){let s=1;l(r)&&(s=P.clamp(Math.abs(r),.25,1));let a=n.endPosition.y-n.startPosition.y,u=a>0?e.minimumZoomDistance*s:0,f=e.maximumZoomDistance,d=o-u,p=i*d;p=P.clamp(p,e._minimumZoomRate,e._maximumZoomRate);let g=a/e._scene.canvas.clientHeight;g=Math.min(g,e.maximumMovementRatio);let h=p*g;if(e.enableCollisionDetection||e.minimumZoomDistance===0||!l(e._globe)){if(h>0&&Math.abs(o-u)<1||h<0&&Math.abs(o-f)<1)return;o-h<u?h=o-u-1:o-h>f&&(h=o-f)}let A=e._scene,x=A.camera,C=A.mode,T=wY.orientation;if(T.heading=x.heading,T.pitch=x.pitch,T.roll=x.roll,x.frustum instanceof tn){Math.abs(h)>0&&(x.zoomIn(h),x._adjustOrthographicFrustum(!0));return}let E=y(n.inertiaEnabled,H.equals(t,e._zoomMouseStart)),S=e._zoomingOnVector,v=e._rotatingZoom,D;if(E||(e._zoomMouseStart=H.clone(t,e._zoomMouseStart),l(e._globe)&&(C===ne.SCENE2D?(D=x.getPickRay(t,Az).origin,D=m.fromElements(D.y,D.z,D.x)):D=Xy(e,t,dlt)),l(D)?(e._useZoomWorldPosition=!0,e._zoomWorldPosition=m.clone(D,e._zoomWorldPosition)):e._useZoomWorldPosition=!1,S=e._zoomingOnVector=!1,v=e._rotatingZoom=!1,e._zoomingUnderground=e._cameraUnderground),!e._useZoomWorldPosition){x.zoomIn(h);return}let O=C===ne.COLUMBUS_VIEW;if(x.positionCartographic.height<2e6&&(v=!0),!E||v){if(C===ne.SCENE2D){let M=e._zoomWorldPosition,L=x.position;if(!m.equals(M,L)&&x.positionCartographic.height<e._maxCoord.x*2){let N=x.position.x,_=m.subtract(M,L,hlt);m.normalize(_,_);let b=m.distance(M,L)*h/(x.getMagnitude()*.5);x.move(_,b*.5),(x.position.x<0&&N>0||x.position.x>0&&N<0)&&(D=x.getPickRay(t,Az).origin,D=m.fromElements(D.y,D.z,D.x),e._zoomWorldPosition=m.clone(D,e._zoomWorldPosition))}}else if(C===ne.SCENE3D){let M=m.normalize(x.position,xlt);if(e._cameraUnderground||e._zoomingUnderground||x.positionCartographic.height<3e3&&Math.abs(m.dot(x.direction,M))<.6)O=!0;else{let L=A.canvas,N=plt;N.x=L.clientWidth/2,N.y=L.clientHeight/2;let _=Xy(e,N,_lt);if(!l(_))O=!0;else if(x.positionCartographic.height<1e6)if(m.dot(x.direction,M)>=-.5)O=!0;else{let b=Tlt;m.clone(x.position,b);let w=e._zoomWorldPosition,I=Clt;if(I=m.normalize(w,I),m.dot(I,M)<0)return;let R=Plt,F=Slt;m.clone(x.direction,F),m.add(b,m.multiplyByScalar(F,1e3,uC),R);let k=wlt,V=vlt;m.subtract(w,b,k),m.normalize(k,V);let G=m.dot(M,V);if(G>=0){e._zoomMouseStart.x=-1;return}let U=Math.acos(-G),q=m.magnitude(b),Y=m.magnitude(w),Q=q-h,W=m.magnitude(k),K=Math.asin(P.clamp(W/Y*Math.sin(U),-1,1)),J=Math.asin(P.clamp(Q/Y*Math.sin(U),-1,1)),_e=K-J+U,xe=Elt;m.normalize(b,xe);let se=blt;se=m.cross(V,xe,se),se=m.normalize(se,se),m.normalize(m.cross(xe,se,uC),F),m.multiplyByScalar(m.normalize(R,uC),m.magnitude(R)-h,R),m.normalize(b,b),m.multiplyByScalar(b,Q,b);let Ae=Dlt;m.multiplyByScalar(m.add(m.multiplyByScalar(xe,Math.cos(_e)-1,dye),m.multiplyByScalar(F,Math.sin(_e),mye),uC),Q,Ae),m.add(b,Ae,b),m.normalize(R,xe),m.normalize(m.cross(xe,se,uC),F);let me=Ilt;m.multiplyByScalar(m.add(m.multiplyByScalar(xe,Math.cos(_e)-1,dye),m.multiplyByScalar(F,Math.sin(_e),mye),uC),m.magnitude(R),me),m.add(R,me,R),m.clone(b,x.position),m.normalize(m.subtract(R,b,uC),x.direction),m.clone(x.direction,x.direction),m.cross(x.direction,x.up,x.right),m.cross(x.right,x.direction,x.up),x.setView(wY);return}else{let b=m.normalize(_,glt),w=m.normalize(e._zoomWorldPosition,ylt),I=m.dot(w,b);if(I>0&&I<1){let R=P.acosClamped(I),F=m.cross(w,b,Alt),k=Math.abs(R)>P.toRadians(20)?x.positionCartographic.height*.75:x.positionCartographic.height-h,V=h/k;x.rotate(F,R*V)}}}}e._rotatingZoom=!O}if(!E&&O||S){let M,L=Xi.wgs84ToWindowCoordinates(A,e._zoomWorldPosition,mlt);C!==ne.COLUMBUS_VIEW&&H.equals(t,e._zoomMouseStart)&&l(L)?M=x.getPickRay(L,Az):M=x.getPickRay(t,Az);let N=M.direction;(C===ne.COLUMBUS_VIEW||C===ne.SCENE2D)&&m.fromElements(N.y,N.z,N.x,N),x.move(N,h),e._zoomingOnVector=!0}else x.zoomIn(h);e._cameraUnderground||x.setView(wY)}var Olt=new Dn,Mlt=new Dn,Rlt=new m;function Blt(e,t,n){let o=e._scene.camera,r=o.getPickRay(n.startPosition,Olt).origin,s=o.getPickRay(n.endPosition,Mlt).origin;r=m.fromElements(r.y,r.z,r.x,r),s=m.fromElements(s.y,s.z,s.x,s);let a=m.subtract(r,s,Rlt),c=m.magnitude(a);c>0&&(m.normalize(a,a),o.move(a,c))}function hye(e,t,n){l(n.distance)&&(n=n.distance);let o=e._scene.camera;BY(e,t,n,e._zoomFactor,o.getMagnitude())}var Llt=new H,Nlt=new H;function pye(e,t,n){if(l(n.angleAndHeight)){Flt(e,t,n.angleAndHeight);return}let i=e._scene,o=i.camera,r=i.canvas,s=r.clientWidth,a=r.clientHeight,c=Llt;c.x=2/s*n.startPosition.x-1,c.y=2/a*(a-n.startPosition.y)-1,c=H.normalize(c,c);let u=Nlt;u.x=2/s*n.endPosition.x-1,u.y=2/a*(a-n.endPosition.y)-1,u=H.normalize(u,u);let f=P.acosClamped(c.x);c.y<0&&(f=P.TWO_PI-f);let d=P.acosClamped(u.x);u.y<0&&(d=P.TWO_PI-d);let p=d-f;o.twistRight(p)}function Flt(e,t,n){let i=e._rotateFactor*e._rotateRateRangeAdjustment;i>e._maximumRotateRate&&(i=e._maximumRotateRate),i<e._minimumRotateRate&&(i=e._minimumRotateRate);let o=e._scene,r=o.camera,s=o.canvas,a=(n.endPosition.x-n.startPosition.x)/s.clientWidth;a=Math.min(a,e.maximumMovementRatio);let c=i*a*Math.PI*4;r.twistRight(c)}function Ult(e){let t=e._scene.mapMode2D===Ml.ROTATE;B.equals(B.IDENTITY,e._scene.camera.transform)?(Xc(e,e.enableTranslate,e.translateEventTypes,Blt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),Xc(e,e.enableZoom,e.zoomEventTypes,hye,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&Xc(e,e.enableRotate,e.tiltEventTypes,pye,e.inertiaSpin,"_lastInertiaTiltMovement")):(Xc(e,e.enableZoom,e.zoomEventTypes,hye,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&Xc(e,e.enableRotate,e.translateEventTypes,pye,e.inertiaSpin,"_lastInertiaSpinMovement"))}var Cye=new Dn,Vlt=new m,klt=new m;function Xy(e,t,n){let i=e._scene,o=e._globe,r=i.camera;if(!l(o))return;let s=!e._cameraUnderground,a;i.pickPositionSupported&&(a=i.pickPositionWorldCoordinates(t,Vlt));let c=r.getPickRay(t,Cye),u=o.pickWorldCoordinates(c,i,s,klt),f=l(a)?m.distance(a,r.positionWC):Number.POSITIVE_INFINITY,d=l(u)?m.distance(u,r.positionWC):Number.POSITIVE_INFINITY;return f<d?m.clone(a,n):m.clone(u,n)}var zlt=new he;function Sz(e){let t=e._ellipsoid,n=e._scene,i=n.camera,o=n.mode,r=0;if(o===ne.SCENE3D){let c=t.cartesianToCartographic(i.position,zlt);l(c)&&(r=c.height)}else r=i.position.z;let s=y(e._scene.globeHeight,0);return Math.abs(s-r)}var Hlt=new m;function Tye(e,t){let n=t.origin,i=t.direction,o=Sz(e),r=m.normalize(n,Hlt),s=Math.abs(m.dot(r,i));return s=Math.max(s,.5)*2,o*s}function Eye(e,t,n,i){let o=m.distance(t.origin,n),r=Sz(e),s=P.clamp(r*5,e._minimumUndergroundPickDistance,e._maximumUndergroundPickDistance);return o>s&&(o=Math.min(o,r/5),o=Math.max(o,100)),Dn.getPoint(t,o,i)}function bye(e,t,n,i){let o;return l(n)?(o=m.distance(t.origin,n),o>e._maximumUndergroundPickDistance&&(o=Sz(e))):o=Sz(e),Dn.getPoint(t,o,i)}var Glt=new H;function Sye(e,t){let n=t.endPosition,i=H.subtract(t.endPosition,t.startPosition,Glt),o=e._strafeEndMousePosition;H.add(o,i,o),t.endPosition=o,LY(e,t,e._strafeStartPosition),t.endPosition=n}var _ye=new Dn,Wlt=new Dn,vY=new m,jlt=new m,Ylt=new m,qlt=new m,Xlt=new un(m.UNIT_X,0),Klt=new H,Jlt=new H;function Zlt(e,t,n){if(m.equals(t,e._translateMousePosition)||(e._looking=!1),m.equals(t,e._strafeMousePosition)||(e._strafing=!1),e._looking){Pu(e,t,n);return}if(e._strafing){Sye(e,n);return}let o=e._scene.camera,r=e._cameraUnderground,s=H.clone(n.startPosition,Klt),a=H.clone(n.endPosition,Jlt),c=o.getPickRay(s,_ye),u=m.clone(m.ZERO,qlt),f=m.UNIT_X,d;if(o.position.z<e._minimumPickingTerrainHeight&&(d=Xy(e,s,vY),l(d)&&(u.x=d.x)),r||u.x>o.position.z&&l(d)){let E=d;r&&(E=bye(e,c,d,vY)),H.clone(t,e._strafeMousePosition),H.clone(t,e._strafeEndMousePosition),m.clone(E,e._strafeStartPosition),e._strafing=!0,LY(e,n,e._strafeStartPosition);return}let p=un.fromPointNormal(u,f,Xlt);c=o.getPickRay(s,_ye);let g=qi.rayPlane(c,p,vY),h=o.getPickRay(a,Wlt),A=qi.rayPlane(h,p,jlt);if(!l(g)||!l(A)){e._looking=!0,Pu(e,t,n),H.clone(t,e._translateMousePosition);return}let x=m.subtract(g,A,Ylt),C=x.x;x.x=x.y,x.y=x.z,x.z=C;let T=m.magnitude(x);T>P.EPSILON6&&(m.normalize(x,x),o.move(x,T))}var wye=new H,Cz=new Dn,Tz=new m,Qlt=new m,vye=new B,$lt=new B,eut=new m,tut=new un(m.UNIT_X,0),DY=new m,OY=new he,Dye=new B,nut=new Ne,iut=new Z,Ez=new m;function out(e,t,n){if(l(n.angleAndHeight)&&(n=n.angleAndHeight),H.equals(t,e._tiltCenterMousePosition)||(e._tiltCVOffMap=!1,e._looking=!1),e._looking){Pu(e,t,n);return}let o=e._scene.camera;e._tiltCVOffMap||!e.onMap()||Math.abs(o.position.z)>e._minimumPickingTerrainHeight?(e._tiltCVOffMap=!0,rut(e,t,n)):sut(e,t,n)}function rut(e,t,n){let i=e._scene,o=i.camera,r=i.canvas,s=wye;s.x=r.clientWidth/2,s.y=r.clientHeight/2;let a=o.getPickRay(s,Cz),c=m.UNIT_X,u=a.origin,f=a.direction,d,p=m.dot(c,f);if(Math.abs(p)>P.EPSILON6&&(d=-m.dot(c,u)/p),!l(d)||d<=0){e._looking=!0,Pu(e,t,n),H.clone(t,e._tiltCenterMousePosition);return}let g=m.multiplyByScalar(f,d,Tz);m.add(u,g,g);let h=i.mapProjection,A=h.ellipsoid;m.fromElements(g.y,g.z,g.x,g);let x=h.unproject(g,OY);A.cartographicToCartesian(x,g);let C=Rt.eastNorthUpToFixedFrame(g,A,vye),T=e._globe,E=e._ellipsoid;e._globe=void 0,e._ellipsoid=oe.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let S=B.clone(o.transform,Dye);o._setTransform(C),Iu(e,t,n,m.UNIT_Z),o._setTransform(S),e._globe=T,e._ellipsoid=E;let v=E.maximumRadius;e._rotateFactor=1/v,e._rotateRateRangeAdjustment=v}function sut(e,t,n){let i=e._scene,o=i.camera,r=e._cameraUnderground,s,a,c=m.UNIT_X;if(H.equals(t,e._tiltCenterMousePosition))s=m.clone(e._tiltCenter,Tz);else{if(o.position.z<e._minimumPickingTerrainHeight&&(s=Xy(e,t,Tz)),!l(s)){a=o.getPickRay(t,Cz);let _=a.origin,b=a.direction,w,I=m.dot(c,b);if(Math.abs(I)>P.EPSILON6&&(w=-m.dot(c,_)/I),!l(w)||w<=0){e._looking=!0,Pu(e,t,n),H.clone(t,e._tiltCenterMousePosition);return}s=m.multiplyByScalar(b,w,Tz),m.add(_,s,s)}r&&(l(a)||(a=o.getPickRay(t,Cz)),Eye(e,a,s,s)),H.clone(t,e._tiltCenterMousePosition),m.clone(s,e._tiltCenter)}let u=i.canvas,f=wye;f.x=u.clientWidth/2,f.y=e._tiltCenterMousePosition.y,a=o.getPickRay(f,Cz);let d=m.clone(m.ZERO,eut);d.x=s.x;let p=un.fromPointNormal(d,c,tut),g=qi.rayPlane(a,p,Qlt),h=o._projection,A=h.ellipsoid;m.fromElements(s.y,s.z,s.x,s);let x=h.unproject(s,OY);A.cartographicToCartesian(x,s);let C=Rt.eastNorthUpToFixedFrame(s,A,vye),T;l(g)?(m.fromElements(g.y,g.z,g.x,g),x=h.unproject(g,OY),A.cartographicToCartesian(x,g),T=Rt.eastNorthUpToFixedFrame(g,A,$lt)):T=C;let E=e._globe,S=e._ellipsoid;e._globe=void 0,e._ellipsoid=oe.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=m.UNIT_Z,D=B.clone(o.transform,Dye);o._setTransform(C);let O=m.cross(m.UNIT_Z,m.normalize(o.position,DY),DY),M=m.dot(o.right,O);if(Iu(e,t,n,v,!1,!0),o._setTransform(T),M<0){let _=n.startPosition.y-n.endPosition.y;(r&&_<0||!r&&_>0)&&(v=void 0);let b=o.constrainedAxis;o.constrainedAxis=void 0,Iu(e,t,n,v,!0,!1),o.constrainedAxis=b}else Iu(e,t,n,v,!0,!1);if(l(o.constrainedAxis)){let _=m.cross(o.direction,o.constrainedAxis,Ez);m.equalsEpsilon(_,m.ZERO,P.EPSILON6)||(m.dot(_,o.right)<0&&m.negate(_,_),m.cross(_,o.direction,o.up),m.cross(o.direction,o.up,o.right),m.normalize(o.up,o.up),m.normalize(o.right,o.right))}o._setTransform(D),e._globe=E,e._ellipsoid=S;let L=S.maximumRadius;e._rotateFactor=1/L,e._rotateRateRangeAdjustment=L;let N=m.clone(o.positionWC,DY);if(e.enableCollisionDetection&&UY(e),!m.equals(o.positionWC,N)){o._setTransform(T),o.worldToCameraCoordinatesPoint(N,N);let _=m.magnitudeSquared(N);m.magnitudeSquared(o.position)>_&&(m.normalize(o.position,o.position),m.multiplyByScalar(o.position,Math.sqrt(_),o.position));let b=m.angleBetween(N,o.position),w=m.cross(N,o.position,N);m.normalize(w,w);let I=Ne.fromAxisAngle(w,b,nut),R=Z.fromQuaternion(I,iut);Z.multiplyByVector(R,o.direction,o.direction),Z.multiplyByVector(R,o.up,o.up),m.cross(o.direction,o.up,o.right),m.cross(o.right,o.direction,o.up),o._setTransform(D)}}var Iye=new H,Pye=new Dn,Oye=new m;function aut(e,t,n){l(n.distance)&&(n=n.distance);let i=e._scene,o=i.camera,r=i.canvas,s=e._cameraUnderground,a;s?a=t:(a=Iye,a.x=r.clientWidth/2,a.y=r.clientHeight/2);let c=o.getPickRay(a,Pye),u=c.origin,f=c.direction,d=o.position.z,p;d<e._minimumPickingTerrainHeight&&(p=Xy(e,a,Oye));let g;if(l(p)&&(g=m.distance(u,p)),s){let h=Tye(e,c,d);l(g)?g=Math.min(g,h):g=h}if(!l(g)){let h=m.UNIT_X;g=-m.dot(h,u)/m.dot(h,f)}BY(e,t,n,e._zoomFactor,g)}function cut(e){let n=e._scene.camera;if(!B.equals(B.IDENTITY,n.transform))Xc(e,e.enableRotate,e.rotateEventTypes,Iu,e.inertiaSpin,"_lastInertiaSpinMovement"),Xc(e,e.enableZoom,e.zoomEventTypes,Mye,e.inertiaZoom,"_lastInertiaZoomMovement");else{let i=e._tweens;if(e._aggregator.anyButtonDown&&i.removeAll(),Xc(e,e.enableTilt,e.tiltEventTypes,out,e.inertiaSpin,"_lastInertiaTiltMovement"),Xc(e,e.enableTranslate,e.translateEventTypes,Zlt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),Xc(e,e.enableZoom,e.zoomEventTypes,aut,e.inertiaZoom,"_lastInertiaZoomMovement"),Xc(e,e.enableLook,e.lookEventTypes,Pu),!e._aggregator.anyButtonDown&&!i.contains(e._tween)){let o=n.createCorrectPositionTween(e.bounceAnimationTime);l(o)&&(e._tween=i.add(o))}i.update()}}var lut=new Dn,uut=new un(m.UNIT_X,0),fut=new m,dut=new m,mut=new m;function LY(e,t,n){let i=e._scene,o=i.camera,r=o.getPickRay(t.endPosition,lut),s=m.clone(o.direction,dut);i.mode===ne.COLUMBUS_VIEW&&m.fromElements(s.z,s.x,s.y,s);let a=un.fromPointNormal(n,s,uut),c=qi.rayPlane(r,a,fut);l(c)&&(s=m.subtract(n,c,s),i.mode===ne.COLUMBUS_VIEW&&m.fromElements(s.y,s.z,s.x,s),m.add(o.position,s,o.position))}var gye=new m,hut=new he,MY=new m,RY=new oe,put=new m,_ut=new m;function gut(e,t,n){let o=e._scene.camera,r=e._cameraUnderground,s=e._ellipsoid;if(!B.equals(o.transform,B.IDENTITY)){Iu(e,t,n);return}let a,c,u=s.geodeticSurfaceNormal(o.position,put);if(H.equals(t,e._rotateMousePosition)){if(e._looking)Pu(e,t,n,u);else if(e._rotating)Iu(e,t,n);else if(e._strafing)Sye(e,n);else{if(m.magnitude(o.position)<m.magnitude(e._rotateStartPosition))return;a=m.magnitude(e._rotateStartPosition),c=MY,c.x=c.y=c.z=a,s=oe.fromCartesian3(c,RY),PY(e,t,n,s)}return}e._looking=!1,e._rotating=!1,e._strafing=!1;let f=s.cartesianToCartographic(o.positionWC,hut).height,d=e._globe;if(l(d)&&f<e._minimumPickingTerrainHeight){let p=Xy(e,n.startPosition,mut);if(l(p)){let g=!1,h=o.getPickRay(n.startPosition,Cye);if(r)g=!0,bye(e,h,p,p);else{let A=s.geodeticSurfaceNormal(p,_ut);Math.abs(m.dot(h.direction,A))<.05?g=!0:g=m.magnitude(o.position)<m.magnitude(p)}g?(H.clone(t,e._strafeEndMousePosition),m.clone(p,e._strafeStartPosition),e._strafing=!0,LY(e,n,e._strafeStartPosition)):(a=m.magnitude(p),c=MY,c.x=c.y=c.z=a,s=oe.fromCartesian3(c,RY),PY(e,t,n,s),m.clone(p,e._rotateStartPosition))}else e._looking=!0,Pu(e,t,n,u)}else l(o.pickEllipsoid(n.startPosition,e._ellipsoid,gye))?(PY(e,t,n,e._ellipsoid),m.clone(gye,e._rotateStartPosition)):f>e._minimumTrackBallHeight?(e._rotating=!0,Iu(e,t,n)):(e._looking=!0,Pu(e,t,n,u));H.clone(t,e._rotateMousePosition)}function Iu(e,t,n,i,o,r){o=y(o,!1),r=y(r,!1);let s=e._scene,a=s.camera,c=s.canvas,u=a.constrainedAxis;l(i)&&(a.constrainedAxis=i);let f=m.magnitude(a.position),d=e._rotateFactor*(f-e._rotateRateRangeAdjustment);d>e._maximumRotateRate&&(d=e._maximumRotateRate),d<e._minimumRotateRate&&(d=e._minimumRotateRate);let p=(n.startPosition.x-n.endPosition.x)/c.clientWidth,g=(n.startPosition.y-n.endPosition.y)/c.clientHeight;p=Math.min(p,e.maximumMovementRatio),g=Math.min(g,e.maximumMovementRatio);let h=d*p*Math.PI*2,A=d*g*Math.PI;o||a.rotateRight(h),r||a.rotateUp(A),a.constrainedAxis=u}var yut=re.clone(re.UNIT_W),Aut=re.clone(re.UNIT_W),xz=new m,IY=new m,xut=new m,Cut=new m,Tut=new H,Eut=new H;function PY(e,t,n,i){let r=e._scene.camera,s=H.clone(n.startPosition,Tut),a=H.clone(n.endPosition,Eut),c=r.pickEllipsoid(s,i,yut),u=r.pickEllipsoid(a,i,Aut);if(!l(c)||!l(u)){e._rotating=!0,Iu(e,t,n);return}if(c=r.worldToCameraCoordinates(c,c),u=r.worldToCameraCoordinates(u,u),l(r.constrainedAxis)){let f=r.constrainedAxis,d=m.mostOrthogonalAxis(f,xz);m.cross(d,f,d),m.normalize(d,d);let p=m.cross(f,d,IY),g=m.magnitude(c),h=m.dot(f,c),A=Math.acos(h/g),x=m.multiplyByScalar(f,h,xut);m.subtract(c,x,x),m.normalize(x,x);let C=m.magnitude(u),T=m.dot(f,u),E=Math.acos(T/C),S=m.multiplyByScalar(f,T,Cut);m.subtract(u,S,S),m.normalize(S,S);let v=Math.acos(m.dot(x,d));m.dot(x,p)<0&&(v=P.TWO_PI-v);let D=Math.acos(m.dot(S,d));m.dot(S,p)<0&&(D=P.TWO_PI-D);let O=v-D,M;m.equalsEpsilon(f,r.position,P.EPSILON2)?M=r.right:M=m.cross(f,r.position,xz);let L=m.cross(f,M,xz),N=m.dot(L,m.subtract(c,f,IY)),_=m.dot(L,m.subtract(u,f,IY)),b;N>0&&_>0?b=E-A:N>0&&_<=0?m.dot(r.position,f)>0?b=-A-E:b=A+E:b=A-E,r.rotateRight(O),r.rotateUp(b)}else{m.normalize(c,c),m.normalize(u,u);let f=m.dot(c,u),d=m.cross(c,u,xz);if(f<1&&!m.equalsEpsilon(d,m.ZERO,P.EPSILON14)){let p=Math.acos(f);r.rotate(d,p)}}}var but=new m,Sut=new he,yye=0;function Mye(e,t,n){l(n.distance)&&(n=n.distance);let i=n.inertiaEnabled,o=e._ellipsoid,r=e._scene,s=r.camera,a=r.canvas,c=e._cameraUnderground,u;c?u=t:(u=Iye,u.x=a.clientWidth/2,u.y=a.clientHeight/2);let f=s.getPickRay(u,Pye),d,p=o.cartesianToCartographic(s.position,Sut).height,g=Math.abs(yye)<e.minimumPickingTerrainDistanceWithInertia;(i?g:p<e._minimumPickingTerrainHeight)&&(d=Xy(e,u,Oye));let A;if(l(d)&&(A=m.distance(f.origin,d),yye=A),c){let C=Tye(e,f,p);l(A)?A=Math.min(A,C):A=C}l(A)||(A=p);let x=m.normalize(s.position,but);BY(e,t,n,e._zoomFactor,A,m.dot(x,s.direction))}var Rye=new H,bz=new Dn,EN=new m,wut=new m,Bye=new B,vut=new B,Lye=new B,Dut=new Ne,Iut=new Z,NY=new he,FY=new m;function Put(e,t,n){let o=e._scene.camera;if(!B.equals(o.transform,B.IDENTITY))return;if(l(n.angleAndHeight)&&(n=n.angleAndHeight),H.equals(t,e._tiltCenterMousePosition)||(e._tiltOnEllipsoid=!1,e._looking=!1),e._looking){let a=e._ellipsoid.geodeticSurfaceNormal(o.position,FY);Pu(e,t,n,a);return}let s=e._ellipsoid.cartesianToCartographic(o.position,NY);e._tiltOnEllipsoid||s.height>e._minimumCollisionTerrainHeight?(e._tiltOnEllipsoid=!0,Mut(e,t,n)):Rut(e,t,n)}var Out=new he;function Mut(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e.minimumZoomDistance*.25,a=i.cartesianToCartographic(r.positionWC,Out).height;if(a-s-1<P.EPSILON3&&n.endPosition.y-n.startPosition.y<0)return;let c=o.canvas,u=Rye;u.x=c.clientWidth/2,u.y=c.clientHeight/2;let f=r.getPickRay(u,bz),d,p=qi.rayEllipsoid(f,i);if(l(p))d=Dn.getPoint(f,p.start,EN);else if(a>e._minimumTrackBallHeight){let T=qi.grazingAltitudeLocation(f,i);if(!l(T))return;let E=i.cartesianToCartographic(T,NY);E.height=0,d=i.cartographicToCartesian(E,EN)}else{e._looking=!0;let T=e._ellipsoid.geodeticSurfaceNormal(r.position,FY);Pu(e,t,n,T),H.clone(t,e._tiltCenterMousePosition);return}let g=Rt.eastNorthUpToFixedFrame(d,i,Bye),h=e._globe,A=e._ellipsoid;e._globe=void 0,e._ellipsoid=oe.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let x=B.clone(r.transform,Lye);r._setTransform(g),Iu(e,t,n,m.UNIT_Z),r._setTransform(x),e._globe=h,e._ellipsoid=A;let C=A.maximumRadius;e._rotateFactor=1/C,e._rotateRateRangeAdjustment=C}function Rut(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e._cameraUnderground,a,c,u;if(H.equals(t,e._tiltCenterMousePosition))a=m.clone(e._tiltCenter,EN);else{if(a=Xy(e,t,EN),!l(a)){if(c=r.getPickRay(t,bz),u=qi.rayEllipsoid(c,i),!l(u)){if(i.cartesianToCartographic(r.position,NY).height<=e._minimumTrackBallHeight){e._looking=!0;let b=e._ellipsoid.geodeticSurfaceNormal(r.position,FY);Pu(e,t,n,b),H.clone(t,e._tiltCenterMousePosition)}return}a=Dn.getPoint(c,u.start,EN)}s&&(l(c)||(c=r.getPickRay(t,bz)),Eye(e,c,a,a)),H.clone(t,e._tiltCenterMousePosition),m.clone(a,e._tiltCenter)}let f=o.canvas,d=Rye;d.x=f.clientWidth/2,d.y=e._tiltCenterMousePosition.y,c=r.getPickRay(d,bz);let p=m.magnitude(a),g=m.fromElements(p,p,p,MY),h=oe.fromCartesian3(g,RY);if(u=qi.rayEllipsoid(c,h),!l(u))return;let A=m.magnitude(c.origin)>p?u.start:u.stop,x=Dn.getPoint(c,A,wut),C=Rt.eastNorthUpToFixedFrame(a,i,Bye),T=Rt.eastNorthUpToFixedFrame(x,h,vut),E=e._globe,S=e._ellipsoid;e._globe=void 0,e._ellipsoid=oe.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=m.UNIT_Z,D=B.clone(r.transform,Lye);r._setTransform(T);let O=m.cross(x,r.positionWC,Ez);if(m.dot(r.rightWC,O)<0){let _=n.startPosition.y-n.endPosition.y;(s&&_<0||!s&&_>0)&&(v=void 0);let b=r.constrainedAxis;r.constrainedAxis=void 0,Iu(e,t,n,v,!0,!1),r.constrainedAxis=b}else Iu(e,t,n,v,!0,!1);if(r._setTransform(C),Iu(e,t,n,v,!1,!0),l(r.constrainedAxis)){let _=m.cross(r.direction,r.constrainedAxis,Ez);m.equalsEpsilon(_,m.ZERO,P.EPSILON6)||(m.dot(_,r.right)<0&&m.negate(_,_),m.cross(_,r.direction,r.up),m.cross(r.direction,r.up,r.right),m.normalize(r.up,r.up),m.normalize(r.right,r.right))}r._setTransform(D),e._globe=E,e._ellipsoid=S;let L=S.maximumRadius;e._rotateFactor=1/L,e._rotateRateRangeAdjustment=L;let N=m.clone(r.positionWC,Ez);if(e.enableCollisionDetection&&UY(e),!m.equals(r.positionWC,N)){r._setTransform(T),r.worldToCameraCoordinatesPoint(N,N);let _=m.magnitudeSquared(N);m.magnitudeSquared(r.position)>_&&(m.normalize(r.position,r.position),m.multiplyByScalar(r.position,Math.sqrt(_),r.position));let b=m.angleBetween(N,r.position),w=m.cross(N,r.position,N);m.normalize(w,w);let I=Ne.fromAxisAngle(w,b,Dut),R=Z.fromQuaternion(I,Iut);Z.multiplyByVector(R,r.direction,r.direction),Z.multiplyByVector(R,r.up,r.up),m.cross(r.direction,r.up,r.right),m.cross(r.right,r.direction,r.up),r._setTransform(D)}}var But=new H,Lut=new H,Aye=new Dn,xye=new Dn,Nut=new m,Fut=new m;function Pu(e,t,n,i){let r=e._scene.camera,s=But;s.x=n.startPosition.x,s.y=0;let a=Lut;a.x=n.endPosition.x,a.y=0;let c=r.getPickRay(s,Aye),u=r.getPickRay(a,xye),f=0,d,p;r.frustum instanceof tn?(d=c.origin,p=u.origin,m.add(r.direction,d,d),m.add(r.direction,p,p),m.subtract(d,r.position,d),m.subtract(p,r.position,p),m.normalize(d,d),m.normalize(p,p)):(d=c.direction,p=u.direction);let g=m.dot(d,p);g<1&&(f=Math.acos(g)),f=n.startPosition.x>n.endPosition.x?-f:f;let h=e._horizontalRotationAxis;if(l(i)?r.look(i,-f):l(h)?r.look(h,-f):r.lookLeft(f),s.x=0,s.y=n.startPosition.y,a.x=0,a.y=n.endPosition.y,c=r.getPickRay(s,Aye),u=r.getPickRay(a,xye),f=0,r.frustum instanceof tn?(d=c.origin,p=u.origin,m.add(r.direction,d,d),m.add(r.direction,p,p),m.subtract(d,r.position,d),m.subtract(p,r.position,p),m.normalize(d,d),m.normalize(p,p)):(d=c.direction,p=u.direction),g=m.dot(d,p),g<1&&(f=Math.acos(g)),f=n.startPosition.y>n.endPosition.y?-f:f,i=y(i,h),l(i)){let A=r.direction,x=m.negate(i,Nut),C=m.equalsEpsilon(A,i,P.EPSILON2),T=m.equalsEpsilon(A,x,P.EPSILON2);if(!C&&!T){g=m.dot(A,i);let E=P.acosClamped(g);f>0&&f>E&&(f=E-P.EPSILON4),g=m.dot(A,x),E=P.acosClamped(g),f<0&&-f>E&&(f=-E+P.EPSILON4);let S=m.cross(i,A,Fut);r.look(S,f)}else(C&&f<0||T&&f>0)&&r.look(r.right,-f)}else r.lookUp(f)}function Uut(e){Xc(e,e.enableRotate,e.rotateEventTypes,gut,e.inertiaSpin,"_lastInertiaSpinMovement"),Xc(e,e.enableZoom,e.zoomEventTypes,Mye,e.inertiaZoom,"_lastInertiaZoomMovement"),Xc(e,e.enableTilt,e.tiltEventTypes,Put,e.inertiaSpin,"_lastInertiaTiltMovement"),Xc(e,e.enableLook,e.lookEventTypes,Pu)}var Vut=new B,kut=new he;function UY(e){e._adjustedHeightForTerrain=!0;let t=e._scene,n=t.mode,i=t.globe;if(!l(i)||n===ne.SCENE2D||n===ne.MORPHING)return;let o=t.camera,r=i.ellipsoid,s=t.mapProjection,a,c;B.equals(o.transform,B.IDENTITY)||(a=B.clone(o.transform,Vut),c=m.magnitude(o.position),o._setTransform(B.IDENTITY));let u=kut;n===ne.SCENE3D?r.cartesianToCartographic(o.position,u):s.unproject(o.position,u);let f=!1;if(u.height<e._minimumCollisionTerrainHeight){let d=e._scene.globeHeight;if(l(d)){let p=d+e.minimumZoomDistance;u.height<p&&(u.height=p,n===ne.SCENE3D?r.cartographicToCartesian(u,o.position):s.project(u,o.position),f=!0)}}l(a)&&(o._setTransform(a),f&&(m.normalize(o.position,o.position),m.negate(o.position,o.direction),m.multiplyByScalar(o.position,Math.max(c,e.minimumZoomDistance),o.position),m.normalize(o.direction,o.direction),m.cross(o.direction,o.up,o.right),m.cross(o.right,o.direction,o.up)))}bN.prototype.onMap=function(){let e=this._scene,t=e.mode,n=e.camera;return t===ne.COLUMBUS_VIEW?Math.abs(n.position.x)-this._maxCoord.x<0&&Math.abs(n.position.y)-this._maxCoord.y<0:!0};var zut=new m,Hut=new m;bN.prototype.update=function(){let e=this._scene,t=e.camera,n=e.globe,i=e.mode;B.equals(t.transform,B.IDENTITY)?(this._globe=n,this._ellipsoid=l(this._globe)?this._globe.ellipsoid:e.mapProjection.ellipsoid):(this._globe=void 0,this._ellipsoid=oe.UNIT_SPHERE);let o=l(this._globe)?this._globe.terrainExaggeration:1,r=l(this._globe)?this._globe.terrainExaggerationRelativeHeight:0;this._minimumCollisionTerrainHeight=Tc.getHeight(this.minimumCollisionTerrainHeight,o,r),this._minimumPickingTerrainHeight=Tc.getHeight(this.minimumPickingTerrainHeight,o,r),this._minimumTrackBallHeight=Tc.getHeight(this.minimumTrackBallHeight,o,r),this._cameraUnderground=e.cameraUnderground&&l(this._globe);let s=this._ellipsoid.maximumRadius;this._rotateFactor=1/s,this._rotateRateRangeAdjustment=s,this._adjustedHeightForTerrain=!1;let a=m.clone(t.positionWC,zut),c=m.clone(t.directionWC,Hut);i===ne.SCENE2D?Ult(this):i===ne.COLUMBUS_VIEW?(this._horizontalRotationAxis=m.UNIT_Z,cut(this)):i===ne.SCENE3D&&(this._horizontalRotationAxis=void 0,Uut(this)),this.enableCollisionDetection&&!this._adjustedHeightForTerrain&&(!m.equals(a,t.positionWC)||!m.equals(c,t.directionWC))&&UY(this),this._aggregator.reset()};bN.prototype.isDestroyed=function(){return!1};bN.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),ue(this)};var SN=bN;var wN=`uniform sampler2D colorTexture; +uniform sampler2D colorTexture2; + +uniform vec2 center; +uniform float radius; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color0 = texture(colorTexture, v_textureCoordinates); + vec4 color1 = texture(colorTexture2, v_textureCoordinates); + + float x = length(gl_FragCoord.xy - center) / radius; + float t = smoothstep(0.5, 0.8, x); + out_FragColor = mix(color0 + color1, color1, t); +} +`;var vN=`uniform sampler2D colorTexture; + +uniform float avgLuminance; +uniform float threshold; +uniform float offset; + +in vec2 v_textureCoordinates; + +float key(float avg) +{ + float guess = 1.5 - (1.5 / (avg * 0.1 + 1.0)); + return max(0.0, guess) + 0.1; +} + +// See section 9. "The bright-pass filter" of Realtime HDR Rendering +// http://www.cg.tuwien.ac.at/research/publications/2007/Luksch_2007_RHR/Luksch_2007_RHR-RealtimeHDR%20.pdf + +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec3 xyz = czm_RGBToXYZ(color.rgb); + float luminance = xyz.r; + + float scaledLum = key(avgLuminance) * luminance / avgLuminance; + float brightLum = max(scaledLum - threshold, 0.0); + float brightness = brightLum / (offset + brightLum); + + xyz.r = brightness; + out_FragColor = vec4(czm_XYZToRGB(xyz), 1.0); +} +`;function U_(){this._sceneFramebuffer=new Qx;let e=.125,t=new Array(6);t[0]=new _o({fragmentShader:Rl,textureScale:e,forcePowerOfTwo:!0,sampleMode:wu.LINEAR});let n=t[1]=new _o({fragmentShader:vN,uniforms:{avgLuminance:.5,threshold:.25,offset:.1},textureScale:e,forcePowerOfTwo:!0}),i=this;this._delta=1,this._sigma=2,this._blurStep=new H,t[2]=new _o({fragmentShader:jy,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:0},textureScale:e,forcePowerOfTwo:!0}),t[3]=new _o({fragmentShader:jy,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:1},textureScale:e,forcePowerOfTwo:!0}),t[4]=new _o({fragmentShader:Rl,sampleMode:wu.LINEAR}),this._uCenter=new H,this._uRadius=void 0,t[5]=new _o({fragmentShader:wN,uniforms:{center:function(){return i._uCenter},radius:function(){return i._uRadius},colorTexture2:function(){return i._sceneFramebuffer.framebuffer.getColorTexture(0)}}}),this._stages=new Yc({stages:t});let o=new rC(this),r=t.length;for(let s=0;s<r;++s)t[s]._textureCache=o;this._textureCache=o,this.length=t.length}U_.prototype.get=function(e){return this._stages.get(e)};U_.prototype.getStageByName=function(e){let t=this._stages.length;for(let n=0;n<t;++n){let i=this._stages.get(n);if(i.name===e)return i}};var Gut=new re,Nye=new H,Wut=new H,Fye=new B;function jut(e,t,n){let i=t.uniformState,o=i.sunPositionWC,r=i.view,s=i.viewProjection,a=i.projection,c=B.computeViewportTransformation(n,0,1,Fye),u=B.multiplyByPoint(r,o,Gut),f=Rt.pointToGLWindowCoordinates(s,c,o,Nye);u.x+=P.SOLAR_RADIUS;let d=Rt.pointToGLWindowCoordinates(a,c,u,u),p=H.magnitude(H.subtract(d,f,d))*30*2,g=Wut;g.x=p,g.y=p,e._uCenter=H.clone(f,e._uCenter),e._uRadius=Math.max(g.x,g.y)*.15;let h=t.drawingBufferWidth,A=t.drawingBufferHeight,x=e._stages,C=x.get(0),T=C.outputTexture.width,E=C.outputTexture.height,S=new Ke;S.width=T,S.height=E,c=B.computeViewportTransformation(S,0,1,Fye),f=Rt.pointToGLWindowCoordinates(s,c,o,Nye),g.x*=T/h,g.y*=E/A;let v=C.scissorRectangle;v.x=Math.max(f.x-g.x*.5,0),v.y=Math.max(f.y-g.y*.5,0),v.width=Math.min(g.x,h),v.height=Math.min(g.y,A);for(let D=1;D<4;++D)Ke.clone(v,x.get(D).scissorRectangle)}U_.prototype.clear=function(e,t,n){this._sceneFramebuffer.clear(e,t,n),this._textureCache.clear(e)};U_.prototype.update=function(e){let t=e.context,n=e.viewport,i=this._sceneFramebuffer;i.update(t,n);let o=i.framebuffer;return this._textureCache.update(t),this._stages.update(t,!1),jut(this,t,n),o};U_.prototype.execute=function(e){let t=this._sceneFramebuffer.framebuffer.getColorTexture(0),n=this._stages,i=n.length;n.get(0).execute(e,t);for(let o=1;o<i;++o)n.get(o).execute(e,n.get(o-1).outputTexture)};U_.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(Rl,{uniformMap:{colorTexture:function(){return n._stages.get(n._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};U_.prototype.isDestroyed=function(){return!1};U_.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),ue(this)};var DN=U_;function Uye(){this._cachedShowFrustumsShaders={}}function Yut(e){let t={},n=e.vertexAttributes;for(let i in n)n.hasOwnProperty(i)&&(t[i]=n[i].index);return t}function qut(e,t){let n=e.context,i=t,o=i.fragmentShaderSource.clone(),r=[];o.sources=o.sources.map(function(f){f=He.replaceMain(f,"czm_Debug_main");let d=/out_FragData_(\d+)/g,p;for(;(p=d.exec(f))!==null;)r.indexOf(p[1])===-1&&r.push(p[1]);return f});let s=r.length,a="";a+=`uniform vec3 debugShowCommandsColor; +`,a+=`uniform vec3 debugShowFrustumsColor; +`,a+=`void main() +{ + czm_Debug_main(); +`;let c;if(s>0)for(c=0;c<s;++c)a+=` out_FragData_${r[c]}.rgb *= debugShowCommandsColor; +`,a+=` out_FragData_${r[c]}.rgb *= debugShowFrustumsColor; +`;else a+=` out_FragColor.rgb *= debugShowCommandsColor; +`,a+=` out_FragColor.rgb *= debugShowFrustumsColor; +`;a+="}",o.sources.push(a);let u=Yut(i);return Kt.fromCache({context:n,vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:o,attributeLocations:u})}var IN=new z;function Xut(e,t){let n;return l(t.uniformMap)?n=t.uniformMap:n={},l(n.debugShowCommandsColor)||l(n.debugShowFrustumsColor)||(n.debugShowCommandsColor=function(){return e.debugShowCommands?(l(t._debugColor)||(t._debugColor=z.fromRandom()),t._debugColor):z.WHITE},n.debugShowFrustumsColor=function(){return e.debugShowFrustums?(IN.red=t.debugOverlappingFrustums&1<<0?1:0,IN.green=t.debugOverlappingFrustums&1<<1?1:0,IN.blue=t.debugOverlappingFrustums&1<<2?1:0,IN.alpha=1,IN):z.WHITE}),n}var Kut=new it;Uye.prototype.executeDebugShowFrustumsCommand=function(e,t,n){let i=t.shaderProgram.id,o=this._cachedShowFrustumsShaders[i];l(o)||(o=qut(e,t.shaderProgram),this._cachedShowFrustumsShaders[i]=o);let r=it.shallowClone(t,Kut);r.shaderProgram=o,r.uniformMap=Xut(e,t),r.execute(e.context,n)};var PN=Uye;var vz=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};function Hi(e){e=y(e,y.EMPTY_OBJECT);let t=e.canvas,n=e.creditContainer,i=e.creditViewport,o=Ye(e.contextOptions),r=l(n),s=new ZD(t,o);r||(n=document.createElement("div"),n.style.position="absolute",n.style.bottom="0",n.style["text-shadow"]="0 0 2px #000000",n.style.color="#ffffff",n.style["font-size"]="10px",n.style["padding-right"]="5px",t.parentNode.appendChild(n)),l(i)||(i=t.parentNode),this._id=Gn(),this._jobScheduler=new BL,this._frameState=new ML(s,new xL(n," \u2022 ",i),this._jobScheduler),this._frameState.scene3DOnly=y(e.scene3DOnly,!1),this._removeCreditContainer=!r,this._creditContainer=n,this._canvas=t,this._context=s,this._computeEngine=new iw(s),this._globe=void 0,this._globeTranslucencyState=new RL,this._primitives=new Tl,this._groundPrimitives=new Tl,this._globeHeight=void 0,this._cameraUnderground=!1,this._logDepthBuffer=s.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new lC,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=y(e.orderIndependentTranslucency,!0),this._executeOITFunction=void 0,this._depthPlane=new DL(e.depthPlaneEllipsoidOffset),this._clearColorCommand=new ii({color:new z,stencil:0,owner:this}),this._depthClearCommand=new ii({depth:1,owner:this}),this._stencilClearCommand=new ii({stencil:0}),this._classificationStencilClearCommand=new ii({stencil:0,renderState:ze.fromCache({stencilMask:Ft.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._transitioner=new CN(this),this._preUpdate=new ge,this._postUpdate=new ge,this._renderError=new ge,this._preRender=new ge,this._postRender=new ge,this._minimumDisableDepthTestDistance=0,this._debugInspector=new PN,this._msaaSamples=y(e.msaaSamples,1),this.rethrowRenderErrors=!1,this.completeMorphOnUserInput=!0,this.morphStart=new ge,this.morphComplete=new ge,this.skyBox=void 0,this.skyAtmosphere=void 0,this.sun=void 0,this.sunBloom=!0,this._sunBloom=void 0,this.moon=void 0,this.backgroundColor=z.clone(z.BLACK),this._mode=ne.SCENE3D,this._mapProjection=l(e.mapProjection)?e.mapProjection:new Si,this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,this.debugCommandFilter=void 0,this.debugShowCommands=!1,this.debugShowFrustums=!1,this.debugShowFramesPerSecond=!1,this.debugShowDepthFrustum=1,this.debugShowFrustumPlanes=!1,this._debugShowFrustumPlanes=!1,this._debugFrustumPlanes=void 0,this.useDepthPicking=!0,this.pickTranslucentDepth=!1,this.cameraEventWaitTime=500,this.fog=new OL,this._shadowMapCamera=new so(this),this.shadowMap=new N_({context:s,lightCamera:this._shadowMapCamera,enabled:y(e.shadows,!1)}),this.invertClassification=!1,this.invertClassificationColor=z.clone(z.WHITE),this._actualInvertClassificationColor=z.clone(this._invertClassificationColor),this._invertClassification=new fS,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new yN,this._brdfLutGenerator=new hL,this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new SN(this),this._cameraUnderground=!1,this._mapMode2D=y(e.mapMode2D,Ml.INFINITE_SCROLL),this._environmentState={skyBoxCommand:void 0,skyAtmosphereCommand:void 0,sunDrawCommand:void 0,sunComputeCommand:void 0,moonCommand:void 0,isSunVisible:!1,isMoonVisible:!1,isReadyForAtmosphere:!1,isSkyAtmosphereVisible:!1,clearGlobeDepth:!1,useDepthPlane:!1,renderTranslucentDepthForPick:!1,originalFramebuffer:void 0,useGlobeDepthFramebuffer:!1,useOIT:!1,useInvertClassification:!1,usePostProcess:!1,usePostProcessSelected:!1,useWebVR:!1},this._useWebVR=!1,this._cameraVR=void 0,this._aspectRatioVR=void 0,this.requestRenderMode=y(e.requestRenderMode,!1),this._renderRequested=!0,this.maximumRenderTimeChange=y(e.maximumRenderTimeChange,0),this._lastRenderTime=void 0,this._frameRateMonitor=void 0,this._removeRequestListenerCallback=La.requestCompletedEvent.addEventListener(vz(this)),this._removeTaskProcessorListenerCallback=hi.taskCompletedEvent.addEventListener(vz(this)),this._removeGlobeCallbacks=[],this._removeTerrainProviderReadyListener=void 0;let a=new Ke(0,0,s.drawingBufferWidth,s.drawingBufferHeight),c=new so(this);this._logDepthBuffer&&(c.frustum.near=.1,c.frustum.far=1e10),this.preloadFlightCamera=new so(this),this.preloadFlightCullingVolume=void 0,this._picking=new KL(this),this._defaultView=new tC(this,c,a),this._view=this._defaultView,this._hdr=void 0,this._hdrDirty=void 0,this.highDynamicRange=!1,this.gamma=2.2,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this._specularEnvironmentMapAtlas=void 0,this.light=new Qh,Hye(this,0,ee.now()),this.updateFrameState(),this.initializeFrame()}function Jut(e,t){for(let i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;let n=[];l(t)&&(n.push(t.imageryLayersUpdatedEvent.addEventListener(vz(e))),n.push(t.terrainProviderChanged.addEventListener(vz(e)))),e._removeGlobeCallbacks=n}Object.defineProperties(Hi.prototype,{canvas:{get:function(){return this._canvas}},drawingBufferHeight:{get:function(){return this._context.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._context.drawingBufferWidth}},maximumAliasedLineWidth:{get:function(){return kt.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return kt.maximumCubeMapSize}},pickPositionSupported:{get:function(){return this._context.depthTexture}},sampleHeightSupported:{get:function(){return this._context.depthTexture}},clampToHeightSupported:{get:function(){return this._context.depthTexture}},invertClassificationSupported:{get:function(){return this._context.depthTexture}},specularEnvironmentMapsSupported:{get:function(){return dd.isSupported(this._context)}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,Jut(this,e)}},primitives:{get:function(){return this._primitives}},groundPrimitives:{get:function(){return this._groundPrimitives}},camera:{get:function(){return this._view.camera},set:function(e){this._view.camera=e}},view:{get:function(){return this._view},set:function(e){this._view=e}},defaultView:{get:function(){return this._defaultView}},picking:{get:function(){return this._picking}},screenSpaceCameraController:{get:function(){return this._screenSpaceCameraController}},mapProjection:{get:function(){return this._mapProjection}},jobScheduler:{get:function(){return this._jobScheduler}},frameState:{get:function(){return this._frameState}},environmentState:{get:function(){return this._environmentState}},tweens:{get:function(){return this._tweens}},imageryLayers:{get:function(){if(l(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(l(this.globe))return this.globe.terrainProvider},set:function(e){this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),l(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(l(this.globe))return this.globe.terrainProviderChanged}},preUpdate:{get:function(){return this._preUpdate}},postUpdate:{get:function(){return this._postUpdate}},renderError:{get:function(){return this._renderError}},preRender:{get:function(){return this._preRender}},postRender:{get:function(){return this._postRender}},lastRenderTime:{get:function(){return this._lastRenderTime}},context:{get:function(){return this._context}},debugFrustumStatistics:{get:function(){return this._view.debugFrustumStatistics}},scene3DOnly:{get:function(){return this._frameState.scene3DOnly}},orderIndependentTranslucency:{get:function(){return this._useOIT}},id:{get:function(){return this._id}},mode:{get:function(){return this._mode},set:function(e){e===ne.SCENE2D?this.morphTo2D(0):e===ne.SCENE3D?this.morphTo3D(0):e===ne.COLUMBUS_VIEW&&this.morphToColumbusView(0),this._mode=e}},frustumCommandsList:{get:function(){return this._view.frustumCommandsList}},numberOfFrustums:{get:function(){return this._view.frustumCommandsList.length}},useWebVR:{get:function(){return this._useWebVR},set:function(e){this._useWebVR=e,this._useWebVR?(this._frameState.creditDisplay.container.style.visibility="hidden",this._cameraVR=new so(this),l(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new PL(this)),this._aspectRatioVR=this.camera.frustum.aspectRatio):(this._frameState.creditDisplay.container.style.visibility="visible",this._cameraVR=void 0,this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this.camera.frustum.aspectRatio=this._aspectRatioVR,this.camera.frustum.xOffset=0)}},mapMode2D:{get:function(){return this._mapMode2D}},splitPosition:{get:function(){return this._frameState.splitPosition},set:function(e){this._frameState.splitPosition=e}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance},set:function(e){this._minimumDisableDepthTestDistance=e}},logarithmicDepthBuffer:{get:function(){return this._logDepthBuffer},set:function(e){e=this._context.fragmentDepth&&e,this._logDepthBuffer!==e&&(this._logDepthBuffer=e,this._logDepthBufferDirty=!0)}},gamma:{get:function(){return this._context.uniformState.gamma},set:function(e){this._context.uniformState.gamma=e}},highDynamicRange:{get:function(){return this._hdr},set:function(e){let t=this._context,n=e&&t.depthTexture&&(t.colorBufferFloat||t.colorBufferHalfFloat);this._hdrDirty=n!==this._hdr,this._hdr=n}},highDynamicRangeSupported:{get:function(){let e=this._context;return e.depthTexture&&(e.colorBufferFloat||e.colorBufferHalfFloat)}},cameraUnderground:{get:function(){return this._cameraUnderground}},msaaSamples:{get:function(){return this._msaaSamples},set:function(e){e=Math.min(e,kt.maximumSamples),this._msaaSamples=e}},msaaSupported:{get:function(){return this._context.msaa}},pixelRatio:{get:function(){return this._frameState.pixelRatio},set:function(e){this._frameState.pixelRatio=e}},opaqueFrustumNearOffset:{get:function(){return .9999}},globeHeight:{get:function(){return this._globeHeight}}});Hi.prototype.getCompressedTextureFormatSupported=function(e){let t=this.context;return(e==="WEBGL_compressed_texture_s3tc"||e==="s3tc")&&t.s3tc||(e==="WEBGL_compressed_texture_pvrtc"||e==="pvrtc")&&t.pvrtc||(e==="WEBGL_compressed_texture_etc"||e==="etc")&&t.etc||(e==="WEBGL_compressed_texture_etc1"||e==="etc1")&&t.etc1||(e==="WEBGL_compressed_texture_astc"||e==="astc")&&t.astc||(e==="EXT_texture_compression_bptc"||e==="bc7")&&t.bc7};function Vye(e,t,n){let i=e._frameState,o=e._context,r=e._view.oit,s=i.shadowState.lightShadowMaps,a=i.shadowState.lightShadowsEnabled,c=t.derivedCommands;l(t.pickId)&&(c.picking=M_.createPickDerivedCommand(e,t,o,c.picking)),t.pickOnly||(c.depth=M_.createDepthOnlyDerivedCommand(e,t,o,c.depth)),c.originalCommand=t,e._hdr&&(c.hdr=M_.createHdrCommand(t,o,c.hdr),t=c.hdr.command,c=t.derivedCommands),a&&t.receiveShadows&&(c.shadows=N_.createReceiveDerivedCommand(s,t,n,o,c.shadows)),t.pass===be.TRANSLUCENT&&l(r)&&r.isSupported()&&(a&&t.receiveShadows?(c.oit=l(c.oit)?c.oit:{},c.oit.shadows=r.createDerivedCommands(c.shadows.receiveCommand,o,c.oit.shadows)):c.oit=r.createDerivedCommands(t,o,c.oit))}Hi.prototype.updateDerivedCommands=function(e){if(!l(e.derivedCommands))return;let t=this._frameState,n=this._context,i=!1,o=t.shadowState.lastDirtyTime;e.lastDirtyTime!==o&&(e.lastDirtyTime=o,e.dirty=!0,i=!0);let r=t.useLogDepth,s=this._hdr,a=e.derivedCommands,c=l(a.logDepth),u=l(a.hdr),f=l(a.originalCommand),d=r&&!c,p=s&&!u,g=(!r||!s)&&!f;if(e.dirty=e.dirty||d||p||g,e.dirty){e.dirty=!1;let h=t.shadowState.shadowMaps;t.shadowState.shadowsEnabled&&e.castShadows&&(a.shadows=N_.createCastDerivedCommand(h,e,i,n,a.shadows)),(c||d)&&(a.logDepth=M_.createLogDepthCommand(e,n,a.logDepth),Vye(this,a.logDepth.command,i)),(f||g)&&Vye(this,e,i)}};var Zut=new Nf({pass:Po.RENDER}),VY=new Nf({pass:Po.PRELOAD}),kY=new Nf({pass:Po.PRELOAD_FLIGHT}),Qut=new Nf({pass:Po.REQUEST_RENDER_MODE_DEFER_CHECK}),kye=new ae,zY;function $ut(e){let t=e.globe;if(e._mode===ne.SCENE3D&&l(t)&&t.show&&!e._cameraUnderground&&!e._globeTranslucencyState.translucent){let n=t.ellipsoid,i=e.frameState.minimumTerrainHeight;return kye.radius=n.minimumRadius+i,zY=fL.fromBoundingSphere(kye,e.camera.positionWC,zY),zY}}Hi.prototype.clearPasses=function(e){e.render=!1,e.pick=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1};function Hye(e,t,n){let i=e._frameState;i.frameNumber=t,i.time=ee.clone(n,i.time)}Hi.prototype.updateFrameState=function(){let e=this.camera,t=this._frameState;t.commandList.length=0,t.shadowMaps.length=0,t.brdfLutGenerator=this._brdfLutGenerator,t.environmentMap=this.skyBox&&this.skyBox._cubeMap,t.mode=this._mode,t.morphTime=this.morphTime,t.mapProjection=this.mapProjection,t.camera=e,t.cullingVolume=e.frustum.computeCullingVolume(e.positionWC,e.directionWC,e.upWC),t.occluder=$ut(this),t.minimumTerrainHeight=0,t.minimumDisableDepthTestDistance=this._minimumDisableDepthTestDistance,t.invertClassification=this.invertClassification,t.useLogDepth=this._logDepthBuffer&&!(this.camera.frustum instanceof tn||this.camera.frustum instanceof xr),t.light=this.light,t.cameraUnderground=this._cameraUnderground,t.globeTranslucencyState=this._globeTranslucencyState,l(this.globe)&&(t.terrainExaggeration=this.globe.terrainExaggeration,t.terrainExaggerationRelativeHeight=this.globe.terrainExaggerationRelativeHeight),l(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready?(t.specularEnvironmentMaps=this._specularEnvironmentMapAtlas.texture,t.specularEnvironmentMapsMaximumLOD=this._specularEnvironmentMapAtlas.maximumMipmapLevel):(t.specularEnvironmentMaps=void 0,t.specularEnvironmentMapsMaximumLOD=void 0),t.sphericalHarmonicCoefficients=this.sphericalHarmonicCoefficients,this._actualInvertClassificationColor=z.clone(this.invertClassificationColor,this._actualInvertClassificationColor),fS.isTranslucencySupported(this._context)||(this._actualInvertClassificationColor.alpha=1),t.invertClassificationColor=this._actualInvertClassificationColor,l(this.globe)?t.maximumScreenSpaceError=this.globe.maximumScreenSpaceError:t.maximumScreenSpaceError=2,this.clearPasses(t.passes),t.tilesetPassState=void 0};Hi.prototype.isVisible=function(e,t,n){return l(e)&&(!l(e.boundingVolume)||!e.cull||t.computeVisibility(e.boundingVolume)!==$t.OUTSIDE&&(!l(n)||!e.occlude||!e.boundingVolume.isOccluded(n)))};var wz=new B(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);wz=B.inverseTransformation(wz,wz);function eft(e,t,n,i){let o=t._frameState,r=o.context,s=e.boundingVolume;l(t._debugVolume)&&t._debugVolume.destroy();let a,c=m.clone(s.center);if(o.mode!==ne.SCENE3D){c=B.multiplyByPoint(wz,c,c);let p=o.mapProjection,g=p.unproject(c);c=p.ellipsoid.cartographicToCartesian(g)}if(l(s.radius)){let p=s.radius;a=Nn.toWireframe(Is.createGeometry(new Is({radii:new m(p,p,p),vertexFormat:rn.FLAT_VERTEX_FORMAT}))),t._debugVolume=new wn({geometryInstances:new Tt({geometry:a,modelMatrix:B.fromTranslation(c),attributes:{color:new Vt(1,0,0,1)}}),appearance:new rn({flat:!0,translucent:!1}),asynchronous:!1})}else{let p=s.halfAxes;a=Nn.toWireframe(ol.createGeometry(ol.fromDimensions({dimensions:new m(2,2,2),vertexFormat:rn.FLAT_VERTEX_FORMAT}))),t._debugVolume=new wn({geometryInstances:new Tt({geometry:a,modelMatrix:B.fromRotationTranslation(p,c,new B),attributes:{color:new Vt(1,0,0,1)}}),appearance:new rn({flat:!0,translucent:!1}),asynchronous:!1})}let u=o.commandList,f=o.commandList=[];t._debugVolume.update(o),e=f[0],o.useLogDepth&&(e=M_.createLogDepthCommand(e,r).command);let d;l(i)&&(d=n.framebuffer,n.framebuffer=i),e.execute(r,n),l(d)&&(n.framebuffer=d),o.commandList=u}function va(e,t,n,i,o){let r=t._frameState;if(l(t.debugCommandFilter)&&!t.debugCommandFilter(e))return;if(e instanceof ii){e.execute(n,i);return}e.debugShowBoundingVolume&&l(e.boundingVolume)&&eft(e,t,i,o),r.useLogDepth&&l(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);let s=r.passes;if(!s.pick&&!s.depth&&t._hdr&&l(e.derivedCommands)&&l(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),s.pick||s.depth){if(s.pick&&!s.depth&&l(e.derivedCommands.picking)){e=e.derivedCommands.picking.pickCommand,e.execute(n,i);return}else if(l(e.derivedCommands.depth)){e=e.derivedCommands.depth.depthOnlyCommand,e.execute(n,i);return}}if(t.debugShowCommands||t.debugShowFrustums){t._debugInspector.executeDebugShowFrustumsCommand(t,e,i);return}r.shadowState.lightShadowsEnabled&&e.receiveShadows&&l(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(n,i):e.execute(n,i)}function ON(e,t,n,i){let o=t._frameState,r=e.derivedCommands;l(r)&&(o.useLogDepth&&l(r.logDepth)&&(e=r.logDepth.command),r=e.derivedCommands,l(r.picking)?(e=r.picking.pickCommand,e.execute(n,i)):l(r.depth)&&(e=r.depth.depthOnlyCommand,e.execute(n,i)))}function Gye(e,t,n){return t.boundingVolume.distanceSquaredTo(n)-e.boundingVolume.distanceSquaredTo(n)}function tft(e,t,n){return e.boundingVolume.distanceSquaredTo(n)-t.boundingVolume.distanceSquaredTo(n)+P.EPSILON12}function nft(e,t,n,i,o){let r=e.context;O_(i,Gye,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,r,n);let s=i.length;for(let a=0;a<s;++a)t(i[a],e,r,n)}function ift(e,t,n,i,o){let r=e.context;O_(i,tft,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,r,n);let s=i.length;for(let a=0;a<s;++a)t(i[a],e,r,n)}function oft(e,t,n,i){let o=e.context;O_(i,Gye,e.camera.positionWC);let r=i.length;for(let s=0;s<r;++s)t(i[s],e,o,n)}var rft=new bi,sft=new jc,aft=new tn,cft=new xr;function HY(e,t){let n=e.camera,i=e.context,o=e.frameState,r=i.uniformState;r.updateCamera(n);let s;l(n.frustum.fov)?s=n.frustum.clone(rft):l(n.frustum.infiniteProjectionMatrix)?s=n.frustum.clone(sft):l(n.frustum.width)?s=n.frustum.clone(aft):s=n.frustum.clone(cft),s.near=n.frustum.near,s.far=n.frustum.far,r.updateFrustum(s),r.updatePass(be.ENVIRONMENT);let a=o.passes,c=a.pick,u=e._environmentState,f=e._view,d=u.renderTranslucentDepthForPick,p=u.useWebVR;if(!c){let b=u.skyBoxCommand;if(l(b)&&va(b,e,i,t),u.isSkyAtmosphereVisible&&va(u.skyAtmosphereCommand,e,i,t),u.isSunVisible&&(u.sunDrawCommand.execute(i,t),e.sunBloom&&!p)){let w;u.useGlobeDepthFramebuffer?w=f.globeDepth.framebuffer:u.usePostProcess?w=f.sceneFramebuffer.framebuffer:w=u.originalFramebuffer,e._sunPostProcess.execute(i),e._sunPostProcess.copy(i,w),t.framebuffer=w}u.isMoonVisible&&u.moonCommand.execute(i,t)}let g;u.useOIT?(l(e._executeOITFunction)||(e._executeOITFunction=function(b,w,I,R,F){f.globeDepth.prepareColorTextures(i),f.oit.executeCommands(b,w,I,R,F)}),g=e._executeOITFunction):a.render?g=nft:g=ift;let h=f.frustumCommandsList,A=h.length,x=u.clearGlobeDepth,C=u.useDepthPlane,T=e._globeTranslucencyState,E=T.translucent,S=e._view.globeTranslucencyFramebuffer,v=e._depthClearCommand,D=e._stencilClearCommand,O=e._classificationStencilClearCommand,M=e._depthPlane,L=u.usePostProcessSelected,N=n.position.z,_;for(let b=0;b<A;++b){let w=A-b-1,I=h[w];e.mode===ne.SCENE2D?(n.position.z=N-I.near+1,s.far=Math.max(1,I.far-I.near),s.near=1,r.update(o),r.updateFrustum(s)):(s.near=w!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s)),v.execute(i,t),i.stencilBuffer&&D.execute(i,t),r.updatePass(be.GLOBE);let R=I.commands[be.GLOBE],F=I.indices[be.GLOBE];if(E)T.executeGlobeCommands(I,va,S,e,t);else for(_=0;_<F;++_)va(R[_],e,i,t);let k=f.globeDepth;if(l(k)&&u.useGlobeDepthFramebuffer&&k.executeCopyDepth(i,t),!u.renderTranslucentDepthForPick)if(r.updatePass(be.TERRAIN_CLASSIFICATION),R=I.commands[be.TERRAIN_CLASSIFICATION],F=I.indices[be.TERRAIN_CLASSIFICATION],E)T.executeGlobeClassificationCommands(I,va,S,e,t);else for(_=0;_<F;++_)va(R[_],e,i,t);if(x&&(v.execute(i,t),C&&M.execute(i,t)),!u.useInvertClassification||c||u.renderTranslucentDepthForPick){for(r.updatePass(be.CESIUM_3D_TILE),R=I.commands[be.CESIUM_3D_TILE],F=I.indices[be.CESIUM_3D_TILE],_=0;_<F;++_)va(R[_],e,i,t);if(F>0&&(l(k)&&u.useGlobeDepthFramebuffer&&(k.prepareColorTextures(i,x),k.executeUpdateDepth(i,t,x,k.depthStencilTexture)),!u.renderTranslucentDepthForPick))for(r.updatePass(be.CESIUM_3D_TILE_CLASSIFICATION),R=I.commands[be.CESIUM_3D_TILE_CLASSIFICATION],F=I.indices[be.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<F;++_)va(R[_],e,i,t)}else{e._invertClassification.clear(i,t);let q=t.framebuffer;for(t.framebuffer=e._invertClassification._fbo.framebuffer,r.updatePass(be.CESIUM_3D_TILE),R=I.commands[be.CESIUM_3D_TILE],F=I.indices[be.CESIUM_3D_TILE],_=0;_<F;++_)va(R[_],e,i,t);for(l(k)&&u.useGlobeDepthFramebuffer&&(e._invertClassification.prepareTextures(i),k.executeUpdateDepth(i,t,x,e._invertClassification._fbo.getDepthStencilTexture())),r.updatePass(be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),R=I.commands[be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],F=I.indices[be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],_=0;_<F;++_)va(R[_],e,i,t);for(t.framebuffer=q,e._invertClassification.executeClassified(i,t),o.invertClassificationColor.alpha===1&&e._invertClassification.executeUnclassified(i,t),F>0&&i.stencilBuffer&&O.execute(i,t),r.updatePass(be.CESIUM_3D_TILE_CLASSIFICATION),R=I.commands[be.CESIUM_3D_TILE_CLASSIFICATION],F=I.indices[be.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<F;++_)va(R[_],e,i,t)}for(F>0&&i.stencilBuffer&&D.execute(i,t),r.updatePass(be.VOXELS),R=I.commands[be.VOXELS],F=I.indices[be.VOXELS],R.length=F,oft(e,va,t,R),r.updatePass(be.OPAQUE),R=I.commands[be.OPAQUE],F=I.indices[be.OPAQUE],_=0;_<F;++_)va(R[_],e,i,t);w!==0&&e.mode!==ne.SCENE2D&&(s.near=I.near,r.updateFrustum(s));let V;if(!c&&u.useInvertClassification&&o.invertClassificationColor.alpha<1&&(V=e._invertClassification),r.updatePass(be.TRANSLUCENT),R=I.commands[be.TRANSLUCENT],R.length=I.indices[be.TRANSLUCENT],g(e,va,t,R,V),I.indices[be.CESIUM_3D_TILE_CLASSIFICATION]>0&&f.translucentTileClassification.isSupported()&&(f.translucentTileClassification.executeTranslucentCommands(e,va,t,R,k.depthStencilTexture),f.translucentTileClassification.executeClassificationCommands(e,va,t,I)),i.depthTexture&&e.useDepthPicking&&(u.useGlobeDepthFramebuffer||d)){let q=k.depthStencilTexture,Y=e._picking.getPickDepth(e,w);Y.update(i,q),Y.executeCopyDepth(i,t)}if(c||!L)continue;let U=t.framebuffer;if(t.framebuffer=f.sceneFramebuffer.getIdFramebuffer(),s.near=w!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s),r.updatePass(be.GLOBE),R=I.commands[be.GLOBE],F=I.indices[be.GLOBE],E)T.executeGlobeCommands(I,ON,S,e,t);else for(_=0;_<F;++_)ON(R[_],e,i,t);for(x&&(v.framebuffer=t.framebuffer,v.execute(i,t),v.framebuffer=void 0),x&&C&&M.execute(i,t),r.updatePass(be.CESIUM_3D_TILE),R=I.commands[be.CESIUM_3D_TILE],F=I.indices[be.CESIUM_3D_TILE],_=0;_<F;++_)ON(R[_],e,i,t);for(r.updatePass(be.OPAQUE),R=I.commands[be.OPAQUE],F=I.indices[be.OPAQUE],_=0;_<F;++_)ON(R[_],e,i,t);for(r.updatePass(be.TRANSLUCENT),R=I.commands[be.TRANSLUCENT],F=I.indices[be.TRANSLUCENT],_=0;_<F;++_)ON(R[_],e,i,t);t.framebuffer=U}}function Wye(e){e.context.uniformState.updatePass(be.COMPUTE);let n=e._environmentState.sunComputeCommand;l(n)&&n.execute(e._computeEngine);let i=e._computeCommandList,o=i.length;for(let r=0;r<o;++r)i[r].execute(e._computeEngine)}function lft(e,t){e.context.uniformState.updatePass(be.OVERLAY);let i=e.context,o=e._overlayCommandList,r=o.length;for(let s=0;s<r;++s)o[s].execute(i,t)}function uft(e,t,n){let i=n.shadowMapCullingVolume,o=n.isPointLight,r=n.passes,s=r.length,a=t.length;for(let c=0;c<a;++c){let u=t[c];if(e.updateDerivedCommands(u),u.castShadows&&(u.pass===be.GLOBE||u.pass===be.CESIUM_3D_TILE||u.pass===be.OPAQUE||u.pass===be.TRANSLUCENT)&&e.isVisible(u,i))if(o)for(let f=0;f<s;++f)r[f].commandList.push(u);else if(s===1)r[0].commandList.push(u);else{let f=!1;for(let d=s-1;d>=0;--d){let p=r[d].cullingVolume;if(e.isVisible(u,p))r[d].commandList.push(u),f=!0;else if(f)break}}}}function jye(e){let t=e.frameState,n=t.shadowState.shadowMaps,i=n.length;if(!t.shadowState.shadowsEnabled)return;let o=e.context,r=o.uniformState;for(let s=0;s<i;++s){let a=n[s];if(a.outOfView)continue;let c=a.passes,u=c.length;for(let d=0;d<u;++d)c[d].commandList.length=0;let f=e.frameState.commandList;uft(e,f,a);for(let d=0;d<u;++d){let p=a.passes[d];r.updateCamera(p.camera),a.updatePass(o,d);let g=p.commandList.length;for(let h=0;h<g;++h){let A=p.commandList[h];r.updatePass(A.pass),va(A.derivedCommands.shadows.castCommands[s],e,o,p.passState)}}}}var fft=new m;Hi.prototype.updateAndExecuteCommands=function(e,t){let i=this._frameState.mode;this._environmentState.useWebVR?dft(this,e,t):i!==ne.SCENE2D||this._mapMode2D===Ml.ROTATE?Ky(!0,this,e,t):(GY(this,e,t),Cft(this,e))};function dft(e,t,n){let i=e._view,o=i.camera,s=e._environmentState.renderTranslucentDepthForPick;GY(e,t,n),Yye(e),i.createPotentiallyVisibleSet(e),Wye(e),s||jye(e);let a=t.viewport;a.x=0,a.y=0,a.width=a.width*.5;let c=so.clone(o,e._cameraVR);c.frustum=o.frustum;let u=o.frustum.near,f=u*y(e.focalLength,5),d=y(e.eyeSeparation,f/30),p=m.multiplyByScalar(c.right,d*.5,fft);o.frustum.aspectRatio=a.width/a.height;let g=.5*d*u/f;m.add(c.position,p,o.position),o.frustum.xOffset=g,HY(e,t),a.x=a.width,m.subtract(c.position,p,o.position),o.frustum.xOffset=-g,HY(e,t),so.clone(c,o)}var mft=new he(Math.PI,P.PI_OVER_TWO),hft=new m,pft=new m,_ft=new B,gft=new B,yft=new m,Aft=new m,xft=new Ke;function Cft(e,t){let n=e.context,i=e.frameState,o=e.camera,r=t.viewport,s=Ke.clone(r,xft);t.viewport=s;let a=mft,c=hft;e.mapProjection.project(a,c);let f=m.clone(o.position,pft),d=B.clone(o.transform,gft),p=o.frustum.clone();o._setTransform(B.IDENTITY);let g=B.computeViewportTransformation(s,0,1,_ft),h=o.frustum.projectionMatrix,A=o.positionWC.y,x=m.fromElements(P.sign(A)*c.x-A,0,-o.positionWC.x,yft),C=Rt.pointToGLWindowCoordinates(h,g,x,Aft);C.x=Math.floor(C.x);let T=s.x,E=s.width;if(A===0||C.x<=T||C.x>=T+E)Ky(!0,e,t);else if(Math.abs(T+E*.5-C.x)<1)s.width=C.x-s.x,o.position.x*=P.sign(o.position.x),o.frustum.right=0,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),Ky(!0,e,t),s.x=C.x,o.position.x=-o.position.x,o.frustum.right=-o.frustum.left,o.frustum.left=0,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),Ky(!1,e,t);else if(C.x>T+E*.5){s.width=C.x-T;let S=o.frustum.right;o.frustum.right=c.x-A,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),Ky(!0,e,t),s.x=C.x,s.width=T+E-C.x,o.position.x=-o.position.x,o.frustum.left=-o.frustum.right,o.frustum.right=S-o.frustum.right*2,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),Ky(!1,e,t)}else{s.x=C.x,s.width=T+E-C.x;let S=o.frustum.left;o.frustum.left=-c.x-A,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),Ky(!0,e,t),s.x=T,s.width=C.x-T,o.position.x=-o.position.x,o.frustum.right=-o.frustum.left,o.frustum.left=S-o.frustum.left*2,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),Ky(!1,e,t)}o._setTransform(d),m.clone(f,o.position),o.frustum=p.clone(),t.viewport=r}function Ky(e,t,n,i){let o=t._environmentState,r=t._view,s=o.renderTranslucentDepthForPick;e||(t.frameState.commandList.length=0),Yye(t),r.createPotentiallyVisibleSet(t),e&&(l(i)&&GY(t,n,i),Wye(t),s||jye(t)),HY(t,n)}var zye=new Kr;Hi.prototype.updateEnvironment=function(){let e=this._frameState,t=this._view,n=this._environmentState,i=e.passes.render,o=e.passes.offscreen,r=this.skyAtmosphere,s=this.globe,a=this._globeTranslucencyState;if(!i||this._mode!==ne.SCENE2D&&t.camera.frustum instanceof tn||!a.environmentVisible)n.skyAtmosphereCommand=void 0,n.skyBoxCommand=void 0,n.sunDrawCommand=void 0,n.sunComputeCommand=void 0,n.moonCommand=void 0;else{l(r)?(l(s)&&(r.setDynamicAtmosphereColor(s.enableLighting&&s.dynamicAtmosphereLighting,s.dynamicAtmosphereLightingFromSun),n.isReadyForAtmosphere=n.isReadyForAtmosphere||s._surface._tilesToRender.length>0),n.skyAtmosphereCommand=r.update(e,s),l(n.skyAtmosphereCommand)&&this.updateDerivedCommands(n.skyAtmosphereCommand)):n.skyAtmosphereCommand=void 0,n.skyBoxCommand=l(this.skyBox)?this.skyBox.update(e,this._hdr):void 0;let A=l(this.sun)?this.sun.update(e,t.passState,this._hdr):void 0;n.sunDrawCommand=l(A)?A.drawCommand:void 0,n.sunComputeCommand=l(A)?A.computeCommand:void 0,n.moonCommand=l(this.moon)?this.moon.update(e):void 0}let c=n.clearGlobeDepth=l(s)&&s.show&&(!s.depthTestAgainstTerrain||this.mode===ne.SCENE2D);(n.useDepthPlane=c&&this.mode===ne.SCENE3D&&a.useDepthPlane)&&this._depthPlane.update(e),n.renderTranslucentDepthForPick=!1,n.useWebVR=this._useWebVR&&this.mode!==ne.SCENE2D&&!o;let f=e.mode===ne.SCENE3D&&!a.sunVisibleThroughGlobe?e.occluder:void 0,d=e.cullingVolume,p=zye.planes;for(let A=0;A<5;++A)p[A]=d.planes[A];d=zye,n.isSkyAtmosphereVisible=l(n.skyAtmosphereCommand)&&n.isReadyForAtmosphere,n.isSunVisible=this.isVisible(n.sunDrawCommand,d,f),n.isMoonVisible=this.isVisible(n.moonCommand,d,f);let g=this.specularEnvironmentMaps,h=this._specularEnvironmentMapAtlas;l(g)&&(!l(h)||h.url!==g)?(h=h&&h.destroy(),this._specularEnvironmentMapAtlas=new dd(g)):!l(g)&&l(h)&&(h.destroy(),this._specularEnvironmentMapAtlas=void 0),l(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.update(e)};function Tft(e){let t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new Th({camera:e.camera,updateOnChange:!1,frustumSplits:t.frustumSplits}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),l(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function Eft(e){let t=e._frameState,n=t.shadowMaps,i=n.length,o=i>0&&!t.passes.pick&&e.mode===ne.SCENE3D;if(o!==t.shadowState.shadowsEnabled&&(++t.shadowState.lastDirtyTime,t.shadowState.shadowsEnabled=o),t.shadowState.lightShadowsEnabled=!1,!!o){for(let r=0;r<i;++r)if(n[r]!==t.shadowState.shadowMaps[r]){++t.shadowState.lastDirtyTime;break}t.shadowState.shadowMaps.length=0,t.shadowState.lightShadowMaps.length=0;for(let r=0;r<i;++r){let s=n[r];s.update(t),t.shadowState.shadowMaps.push(s),s.fromLightSource&&(t.shadowState.lightShadowMaps.push(s),t.shadowState.lightShadowsEnabled=!0),s.dirty&&(++t.shadowState.lastDirtyTime,s.dirty=!1)}}}function Yye(e){let t=e._frameState;e._groundPrimitives.update(t),e._primitives.update(t),Tft(e),Eft(e),e._globe&&e._globe.render(t)}function GY(e,t,n){let i=e._context,o=e._frameState,r=e._environmentState,s=e._view,c=e._frameState.passes.pick;l(s.globeDepth)&&(s.globeDepth.picking=c);let u=r.useWebVR;r.originalFramebuffer=t.framebuffer,l(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!u?e._sunPostProcess=new DN:l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!l(e.sun)&&l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy(),e._sunBloom=!1);let f=e._clearColorCommand;z.clone(n,f.color),f.execute(i,t);let d=r.useGlobeDepthFramebuffer=l(s.globeDepth);d&&(s.globeDepth.update(i,t,s.viewport,e.msaaSamples,e._hdr,r.clearGlobeDepth),s.globeDepth.clear(i,t,n));let p=s.oit,g=r.useOIT=!c&&l(p)&&p.isSupported();g&&(p.update(i,t,s.globeDepth.colorFramebufferManager,e._hdr,e.msaaSamples),p.clear(i,t,n),r.useOIT=p.isSupported());let h=e.postProcessStages,A=r.usePostProcess=!c&&(e._hdr||h.length>0||h.ambientOcclusion.enabled||h.fxaa.enabled||h.bloom.enabled);if(r.usePostProcessSelected=!1,A&&(s.sceneFramebuffer.update(i,s.viewport,e._hdr,e.msaaSamples),s.sceneFramebuffer.clear(i,t,n),h.update(i,o.useLogDepth,e._hdr),h.clear(i),A=r.usePostProcess=h.ready,r.usePostProcessSelected=A&&h.hasSelected),r.isSunVisible&&e.sunBloom&&!u?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(i,t,n)):d?t.framebuffer=s.globeDepth.framebuffer:A&&(t.framebuffer=s.sceneFramebuffer.framebuffer),l(t.framebuffer)&&f.execute(i,t),r.useInvertClassification=!c&&l(t.framebuffer)&&e.invertClassification){let C;if(e.frameState.invertClassificationColor.alpha===1&&r.useGlobeDepthFramebuffer&&(C=s.globeDepth.framebuffer),l(C)||i.depthTexture){if(e._invertClassification.previousFramebuffer=C,e._invertClassification.update(i,e.msaaSamples,s.globeDepth.colorFramebufferManager),e._invertClassification.clear(i,t),e.frameState.invertClassificationColor.alpha<1&&g){let T=e._invertClassification.unclassifiedCommand,E=T.derivedCommands;E.oit=p.createDerivedCommands(T,i,E.oit)}}else r.useInvertClassification=!1}e._globeTranslucencyState.translucent&&s.globeTranslucencyFramebuffer.updateAndClear(e._hdr,s.viewport,i,t)}Hi.prototype.resolveFramebuffers=function(e){let t=this._context,n=this._environmentState,i=this._view,o=i.globeDepth;l(o)&&o.prepareColorTextures(t);let r=n.useOIT,s=n.useGlobeDepthFramebuffer,a=n.usePostProcess,c=n.originalFramebuffer,u=s?o.colorFramebufferManager:void 0,f=i.sceneFramebuffer._colorFramebuffer,d=i.sceneFramebuffer.idFramebuffer;r&&(e.framebuffer=a?f.framebuffer:c,i.oit.execute(t,e));let p=i.translucentTileClassification;if(p.hasTranslucentDepth&&p.isSupported()&&p.execute(this,e),a){i.sceneFramebuffer.prepareColorTextures(t);let g=f;s&&!r&&(g=u);let h=this.postProcessStages,A=g.getColorTexture(0),x=d.getColorTexture(0),C=y(u,f).getDepthStencilTexture();h.execute(t,A,C,x),h.copy(t,c)}!r&&!a&&s&&(e.framebuffer=c,o.executeCopyColor(t,e))};function bft(e){let t=e._frameState.afterRender;for(let n=0,i=t.length;n<i;++n)t[n]()&&e.requestRender();t.length=0}function Sft(e){let t=e._globe,i=e.camera.positionCartographic;if(l(t)&&t.show&&l(i))return t.getHeight(i)}function wft(e){let t=e.camera,n=e._mode,i=e.globe,o=e._screenSpaceCameraController,r=t.positionCartographic;if(!l(r))return!1;if(!o.onMap()&&r.height<0)return!0;if(!l(i)||!i.show||n===ne.SCENE2D||n===ne.MORPHING)return!1;let s=e._globeHeight;return l(s)&&r.height<s}Hi.prototype.initializeFrame=function(){this._shaderFrameCount++===120&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._globeHeight=Sft(this),this._cameraUnderground=wft(this),this._globeTranslucencyState.update(this),this._screenSpaceCameraController.update(),l(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};function vft(e,t){if(e.debugShowFramesPerSecond){if(!l(e._performanceDisplay)){let n=document.createElement("div");n.className="cesium-performanceDisplay-defaultContainer",e._canvas.parentNode.appendChild(n);let o=new R_({container:n});e._performanceDisplay=o,e._performanceContainer=n}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else l(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function Dft(e){e._jobScheduler.resetBudgets();let t=e._frameState;e.primitives.prePassesUpdate(t),l(e.globe)&&e.globe.update(t),e._picking.update(),t.creditDisplay.update()}function Ift(e){let t=e._frameState;e.primitives.postPassesUpdate(t),La.update()}var Pft=new z;function Oft(e){let t=e._frameState,n=e.context,i=n.uniformState,o=e._defaultView;e._view=o,e.updateFrameState(),t.passes.render=!0,t.passes.postProcess=e.postProcessStages.hasSelected,t.tilesetPassState=Zut;let r=y(e.backgroundColor,z.BLACK);e._hdr&&(r=z.clone(r,Pft),r.red=Math.pow(r.red,e.gamma),r.green=Math.pow(r.green,e.gamma),r.blue=Math.pow(r.blue,e.gamma)),t.backgroundColor=r,e.fog.update(t),i.update(t);let s=e.shadowMap;l(s)&&s.enabled&&(!l(e.light)||e.light instanceof Qh?m.negate(i.sunDirectionWC,e._shadowMapCamera.direction):m.clone(e.light.direction,e._shadowMapCamera.direction),t.shadowMaps.push(s)),e._computeCommandList.length=0,e._overlayCommandList.length=0;let a=o.viewport;a.x=0,a.y=0,a.width=n.drawingBufferWidth,a.height=n.drawingBufferHeight;let c=o.passState;c.framebuffer=void 0,c.blendingEnabled=void 0,c.scissorTest=void 0,c.viewport=Ke.clone(a,c.viewport),l(e.globe)&&e.globe.beginFrame(t),e.updateEnvironment(),e.updateAndExecuteCommands(c,r),e.resolveFramebuffers(c),c.framebuffer=void 0,lft(e,c),l(e.globe)&&(e.globe.endFrame(t),e.globe.tilesLoaded||(e._renderRequested=!0)),n.endFrame()}function fC(e,t){try{t(e)}catch(n){if(e._renderError.raiseEvent(e,n),e.rethrowRenderErrors)throw n}}function Mft(e){return e._picking.updateMostDetailedRayPicks(e)}Hi.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);let t=this._frameState;t.newFrame=!1,l(e)||(e=ee.now());let n=this._view.checkForCameraUpdates(this),i=!this.requestRenderMode||this._renderRequested||n||this._logDepthBufferDirty||this._hdrDirty||this.mode===ne.MORPHING;if(!i&&l(this.maximumRenderTimeChange)&&l(this._lastRenderTime)){let o=Math.abs(ee.secondsDifference(this._lastRenderTime,e));i=i||o>this.maximumRenderTimeChange}if(i){this._lastRenderTime=ee.clone(e,this._lastRenderTime),this._renderRequested=!1,this._logDepthBufferDirty=!1,this._hdrDirty=!1;let o=P.incrementWrap(t.frameNumber,15e6,1);Hye(this,o,e),t.newFrame=!0}fC(this,Dft),this.primitives.show&&(fC(this,Mft),fC(this,Rft),fC(this,Bft),i||fC(this,Lft)),this._postUpdate.raiseEvent(this,e),i&&(this._preRender.raiseEvent(this,e),t.creditDisplay.beginFrame(),fC(this,Oft)),vft(this,i),fC(this,Ift),bft(this),i&&(this._postRender.raiseEvent(this,e),t.creditDisplay.endFrame())};Hi.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)};Hi.prototype.requestRender=function(){this._renderRequested=!0};Hi.prototype.clampLineWidth=function(e){return Math.max(kt.minimumAliasedLineWidth,Math.min(e,kt.maximumAliasedLineWidth))};Hi.prototype.pick=function(e,t,n){return this._picking.pick(this,e,t,n)};Hi.prototype.pickPositionWorldCoordinates=function(e,t){return this._picking.pickPositionWorldCoordinates(this,e,t)};Hi.prototype.pickPosition=function(e,t){return this._picking.pickPosition(this,e,t)};Hi.prototype.drillPick=function(e,t,n,i){return this._picking.drillPick(this,e,t,n,i)};function Rft(e){let t=e._frameState;VY.camera=t.camera,VY.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,VY)}function Bft(e){let t=e._frameState;if(!t.camera.canPreloadFlight())return;kY.camera=e.preloadFlightCamera,kY.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,kY)}function Lft(e){e.primitives.updateForPass(e._frameState,Qut)}Hi.prototype.pickFromRay=function(e,t,n){return this._picking.pickFromRay(this,e,t,n)};Hi.prototype.drillPickFromRay=function(e,t,n,i){return this._picking.drillPickFromRay(this,e,t,n,i)};Hi.prototype.pickFromRayMostDetailed=function(e,t,n){return this._picking.pickFromRayMostDetailed(this,e,t,n)};Hi.prototype.drillPickFromRayMostDetailed=function(e,t,n,i){return this._picking.drillPickFromRayMostDetailed(this,e,t,n,i)};Hi.prototype.sampleHeight=function(e,t,n){return this._picking.sampleHeight(this,e,t,n)};Hi.prototype.clampToHeight=function(e,t,n,i){return this._picking.clampToHeight(this,e,t,n,i)};Hi.prototype.sampleHeightMostDetailed=function(e,t,n){return this._picking.sampleHeightMostDetailed(this,e,t,n)};Hi.prototype.clampToHeightMostDetailed=function(e,t,n){return this._picking.clampToHeightMostDetailed(this,e,t,n)};Hi.prototype.cartesianToCanvasCoordinates=function(e,t){return Xi.wgs84ToWindowCoordinates(this,e,t)};Hi.prototype.completeMorph=function(){this._transitioner.completeMorph()};Hi.prototype.morphTo2D=function(e){let t,n=this.globe;l(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphTo2D(e,t)};Hi.prototype.morphToColumbusView=function(e){let t,n=this.globe;l(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphToColumbusView(e,t)};Hi.prototype.morphTo3D=function(e){let t,n=this.globe;l(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphTo3D(e,t)};function Nft(e,t){if(e._removeTerrainProviderReadyListener=e._removeTerrainProviderReadyListener&&e._removeTerrainProviderReadyListener(),t.ready){l(e.globe)&&(e.globe.terrainProvider=t.provider);return}e.globe.terrainProvider=void 0,e._removeTerrainProviderReadyListener=t.readyEvent.addEventListener(n=>{l(e)&&l(e.globe)&&(e.globe.terrainProvider=n),e._removeTerrainProviderReadyListener()})}Hi.prototype.setTerrain=function(e){return Nft(this,e),e};Hi.prototype.isDestroyed=function(){return!1};Hi.prototype.destroy=function(){this._tweens.removeAll(),this._computeEngine=this._computeEngine&&this._computeEngine.destroy(),this._screenSpaceCameraController=this._screenSpaceCameraController&&this._screenSpaceCameraController.destroy(),this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this._primitives=this._primitives&&this._primitives.destroy(),this._groundPrimitives=this._groundPrimitives&&this._groundPrimitives.destroy(),this._globe=this._globe&&this._globe.destroy(),this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),this.skyBox=this.skyBox&&this.skyBox.destroy(),this.skyAtmosphere=this.skyAtmosphere&&this.skyAtmosphere.destroy(),this._debugSphere=this._debugSphere&&this._debugSphere.destroy(),this.sun=this.sun&&this.sun.destroy(),this._sunPostProcess=this._sunPostProcess&&this._sunPostProcess.destroy(),this._depthPlane=this._depthPlane&&this._depthPlane.destroy(),this._transitioner=this._transitioner&&this._transitioner.destroy(),this._debugFrustumPlanes=this._debugFrustumPlanes&&this._debugFrustumPlanes.destroy(),this._brdfLutGenerator=this._brdfLutGenerator&&this._brdfLutGenerator.destroy(),this._picking=this._picking&&this._picking.destroy(),this._defaultView=this._defaultView&&this._defaultView.destroy(),this._view=void 0,this._removeCreditContainer&&this._canvas.parentNode.removeChild(this._creditContainer),this.postProcessStages=this.postProcessStages&&this.postProcessStages.destroy(),this._context=this._context&&this._context.destroy(),this._frameState.creditDisplay=this._frameState.creditDisplay&&this._frameState.creditDisplay.destroy(),l(this._performanceDisplay)&&(this._performanceDisplay=this._performanceDisplay&&this._performanceDisplay.destroy(),this._performanceContainer.parentNode.removeChild(this._performanceContainer)),this._removeRequestListenerCallback(),this._removeTaskProcessorListenerCallback();for(let e=0;e<this._removeGlobeCallbacks.length;++e)this._removeGlobeCallbacks[e]();return this._removeGlobeCallbacks.length=0,ue(this)};var MN=Hi;var _S=`float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} + +vec3 getLightDirection(vec3 positionWC) +{ + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirection = + positionWC * float(lightEnum == 0.0) + + czm_lightDirectionWC * float(lightEnum == 1.0) + + czm_sunDirectionWC * float(lightEnum == 2.0); + return normalize(lightDirection); +} + +void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity, out float underTranslucentGlobe) +{ + float ellipsoidRadiiDifference = czm_ellipsoidRadii.x - czm_ellipsoidRadii.z; + + // Adjustment to the atmosphere radius applied based on the camera height. + float distanceAdjustMin = czm_ellipsoidRadii.x / 4.0; + float distanceAdjustMax = czm_ellipsoidRadii.x; + float distanceAdjustModifier = ellipsoidRadiiDifference / 2.0; + float distanceAdjust = distanceAdjustModifier * clamp((czm_eyeHeight - distanceAdjustMin) / (distanceAdjustMax - distanceAdjustMin), 0.0, 1.0); + + // Since atmosphere scattering assumes the atmosphere is a spherical shell, we compute an inner radius of the atmosphere best fit + // for the position on the ellipsoid. + float radiusAdjust = (ellipsoidRadiiDifference / 4.0) + distanceAdjust; + float atmosphereInnerRadius = (length(czm_viewerPositionWC) - czm_eyeHeight) - radiusAdjust; + + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + underTranslucentGlobe = 0.0; + + // Brighten the sky atmosphere under the Earth's atmosphere when translucency is enabled. + #if defined(GLOBE_TRANSLUCENT) + + // Check for intersection with the inner radius of the atmopshere. + czm_raySegment primaryRayEarthIntersect = czm_raySphereIntersectionInterval(primaryRay, vec3(0.0), atmosphereInnerRadius + radiusAdjust); + if (primaryRayEarthIntersect.start > 0.0 && primaryRayEarthIntersect.stop > 0.0) { + + // Compute position on globe. + vec3 direction = normalize(positionWC); + czm_ray ellipsoidRay = czm_ray(positionWC, -direction); + czm_raySegment ellipsoidIntersection = czm_rayEllipsoidIntersectionInterval(ellipsoidRay, vec3(0.0), czm_ellipsoidInverseRadii); + vec3 onEarth = positionWC - (direction * ellipsoidIntersection.start); + + // Control the color using the camera angle. + float angle = dot(normalize(czm_viewerPositionWC), normalize(onEarth)); + + // Control the opacity using the distance from Earth. + opacity = interpolateByDistance(vec4(0.0, 1.0, czm_ellipsoidRadii.x, 0.0), length(czm_viewerPositionWC - onEarth)); + vec3 horizonColor = vec3(0.1, 0.2, 0.3); + vec3 nearColor = vec3(0.0); + + rayleighColor = mix(nearColor, horizonColor, exp(-angle) * opacity); + + // Set the traslucent flag to avoid alpha adjustment in computeFinalColor funciton. + underTranslucentGlobe = 1.0; + return; + } + #endif + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); + + // Alter the opacity based on how close the viewer is to the ground. + // (0.0 = At edge of atmosphere, 1.0 = On ground) + float cameraHeight = czm_eyeHeight + atmosphereInnerRadius; + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + opacity = clamp((atmosphereOuterRadius - cameraHeight) / (atmosphereOuterRadius - atmosphereInnerRadius), 0.0, 1.0); + + // Alter alpha based on time of day (0.0 = night , 1.0 = day) + float nightAlpha = (u_radiiAndDynamicAtmosphereColor.z != 0.0) ? clamp(dot(normalize(positionWC), lightDirection), 0.0, 1.0) : 1.0; + opacity *= pow(nightAlpha, 0.5); +} +`;var RN=`in vec3 v_outerPositionWC; + +uniform vec3 u_hsbShift; + +#ifndef PER_FRAGMENT_ATMOSPHERE +in vec3 v_mieColor; +in vec3 v_rayleighColor; +in float v_opacity; +in float v_translucent; +#endif + +void main (void) +{ + vec3 lightDirection = getLightDirection(v_outerPositionWC); + + vec3 mieColor; + vec3 rayleighColor; + float opacity; + float translucent; + + #ifdef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + v_outerPositionWC, + lightDirection, + rayleighColor, + mieColor, + opacity, + translucent + ); + #else + mieColor = v_mieColor; + rayleighColor = v_rayleighColor; + opacity = v_opacity; + translucent = v_translucent; + #endif + + vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity); + + #ifndef HDR + color.rgb = czm_acesTonemapping(color.rgb); + color.rgb = czm_inverseGamma(color.rgb); + #endif + + #ifdef COLOR_CORRECT + // Convert rgb color to hsb + vec3 hsb = czm_RGBToHSB(color.rgb); + // Perform hsb shift + hsb.x += u_hsbShift.x; // hue + hsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0); // saturation + hsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0; // brightness + // Convert shifted hsb back to rgb + color.rgb = czm_HSBToRGB(hsb); + #endif + + // For the parts of the sky atmosphere that are not behind a translucent globe, + // we mix in the default opacity so that the sky atmosphere still appears at distance. + // This is needed because the opacity in the sky atmosphere is initially adjusted based + // on the camera height. + if (translucent == 0.0) { + color.a = mix(color.b, 1.0, color.a) * smoothstep(0.0, 1.0, czm_morphTime); + } + + out_FragColor = color; +} +`;var BN=`in vec4 position; + +out vec3 v_outerPositionWC; + +#ifndef PER_FRAGMENT_ATMOSPHERE +out vec3 v_mieColor; +out vec3 v_rayleighColor; +out float v_opacity; +out float v_translucent; +#endif + +void main(void) +{ + vec4 positionWC = czm_model * position; + vec3 lightDirection = getLightDirection(positionWC.xyz); + + #ifndef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + positionWC.xyz, + lightDirection, + v_rayleighColor, + v_mieColor, + v_opacity, + v_translucent + ); + #endif + + v_outerPositionWC = positionWC.xyz; + gl_Position = czm_modelViewProjection * position; +} +`;function gS(e){e=y(e,oe.WGS84),this.show=!0,this.perFragmentAtmosphere=!1,this._ellipsoid=e;let t=1.025,n=m.multiplyByScalar(e.radii,t,new m);this._scaleMatrix=B.fromScale(n),this._modelMatrix=new B,this._command=new it({owner:this,modelMatrix:this._modelMatrix}),this._spSkyFromSpace=void 0,this._spSkyFromAtmosphere=void 0,this._flags=void 0,this.atmosphereLightIntensity=50,this.atmosphereRayleighCoefficient=new m(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new m(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this._hueSaturationBrightness=new m;let i=new m;i.x=e.maximumRadius*t,i.y=e.maximumRadius,i.z=0,this._radiiAndDynamicAtmosphereColor=i;let o=this;this._command.uniformMap={u_radiiAndDynamicAtmosphereColor:function(){return o._radiiAndDynamicAtmosphereColor},u_hsbShift:function(){return o._hueSaturationBrightness.x=o.hueShift,o._hueSaturationBrightness.y=o.saturationShift,o._hueSaturationBrightness.z=o.brightnessShift,o._hueSaturationBrightness},u_atmosphereLightIntensity:function(){return o.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return o.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return o.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return o.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return o.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return o.atmosphereMieAnisotropy}}}Object.defineProperties(gS.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});gS.prototype.setDynamicAtmosphereColor=function(e,t){let n=e?t?2:1:0;this._radiiAndDynamicAtmosphereColor.z=n};var WY=new B;gS.prototype.update=function(e,t){if(!this.show)return;let n=e.mode;if(n!==ne.SCENE3D&&n!==ne.MORPHING||!e.passes.render)return;let i=B.fromRotationTranslation(e.context.uniformState.inverseViewRotation,m.ZERO,WY),o=B.multiplyTransformation(i,ao.Y_UP_TO_Z_UP,WY),r=B.multiply(this._scaleMatrix,o,WY);B.clone(r,this._modelMatrix);let s=e.context,a=Fft(this),c=e.globeTranslucencyState.translucent,u=this.perFragmentAtmosphere||c||!l(t)||!t.show,f=this._command;if(!l(f.vertexArray)){let p=Is.createGeometry(new Is({radii:new m(1,1,1),slicePartitions:256,stackPartitions:256,vertexFormat:Pe.POSITION_ONLY}));f.vertexArray=oi.fromGeometry({context:s,geometry:p,attributeLocations:Nn.createAttributeLocations(p),bufferUsage:Fe.STATIC_DRAW}),f.renderState=ze.fromCache({cull:{enabled:!0,face:_i.FRONT},blending:mn.ALPHA_BLEND,depthMask:!1})}let d=a|u<<2|c<<3;if(d!==this._flags){this._flags=d;let p=[];a&&p.push("COLOR_CORRECT"),u&&p.push("PER_FRAGMENT_ATMOSPHERE"),c&&p.push("GLOBE_TRANSLUCENT");let g=new He({defines:p,sources:[w_,_S,BN]}),h=new He({defines:p,sources:[w_,_S,RN]});this._spSkyAtmosphere=Kt.fromCache({context:s,vertexShaderSource:g,fragmentShaderSource:h}),f.shaderProgram=this._spSkyAtmosphere}return f};function Fft(e){return!(P.equalsEpsilon(e.hueShift,0,P.EPSILON7)&&P.equalsEpsilon(e.saturationShift,0,P.EPSILON7)&&P.equalsEpsilon(e.brightnessShift,0,P.EPSILON7))}gS.prototype.isDestroyed=function(){return!1};gS.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyAtmosphere=this._spSkyAtmosphere&&this._spSkyAtmosphere.destroy(),ue(this)};var LN=gS;var NN=`uniform samplerCube u_cubeMap; + +in vec3 v_texCoord; + +void main() +{ + vec4 color = czm_textureCube(u_cubeMap, normalize(v_texCoord)); + out_FragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime); +} +`;var FN=`in vec3 position; + +out vec3 v_texCoord; + +void main() +{ + vec3 p = czm_viewRotation * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position)); + gl_Position = czm_projection * vec4(p, 1.0); + v_texCoord = position.xyz; +} +`;function Dz(e){this.sources=e.sources,this._sources=void 0,this.show=y(e.show,!0),this._command=new it({modelMatrix:B.clone(B.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}Dz.prototype.update=function(e,t){let n=this;if(!this.show||e.mode!==ne.SCENE3D&&e.mode!==ne.MORPHING||!e.passes.render)return;let i=e.context;if(this._sources!==this.sources){this._sources=this.sources;let r=this.sources;typeof r.positiveX=="string"?nI(i,this._sources).then(function(s){n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=s}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new Ua({context:i,source:r}))}let o=this._command;if(!l(o.vertexArray)){o.uniformMap={u_cubeMap:function(){return n._cubeMap}};let r=ol.createGeometry(ol.fromDimensions({dimensions:new m(2,2,2),vertexFormat:Pe.POSITION_ONLY})),s=this._attributeLocations=Nn.createAttributeLocations(r);o.vertexArray=oi.fromGeometry({context:i,geometry:r,attributeLocations:s,bufferUsage:Fe.STATIC_DRAW}),o.renderState=ze.fromCache({blending:mn.ALPHA_BLEND})}if(!l(o.shaderProgram)||this._useHdr!==t){let r=new He({defines:[t?"HDR":""],sources:[NN]});o.shaderProgram=Kt.fromCache({context:i,vertexShaderSource:FN,fragmentShaderSource:r,attributeLocations:this._attributeLocations}),this._useHdr=t}if(l(this._cubeMap))return o};Dz.prototype.isDestroyed=function(){return!1};Dz.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),ue(this)};var UN=Dz;var VN=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color = texture(u_texture, v_textureCoordinates); + out_FragColor = czm_gammaCorrect(color); +} +`;var kN=`uniform float u_radiusTS; + +in vec2 v_textureCoordinates; + +vec2 rotate(vec2 p, vec2 direction) +{ + return vec2(p.x * direction.x - p.y * direction.y, p.x * direction.y + p.y * direction.x); +} + +vec4 addBurst(vec2 position, vec2 direction, float lengthScalar) +{ + vec2 rotatedPosition = rotate(position, direction) * vec2(25.0, 0.75); + float radius = length(rotatedPosition) * lengthScalar; + float burst = 1.0 - smoothstep(0.0, 0.55, radius); + return vec4(burst); +} + +void main() +{ + float lengthScalar = 2.0 / sqrt(2.0); + vec2 position = v_textureCoordinates - vec2(0.5); + float radius = length(position) * lengthScalar; + float surface = step(radius, u_radiusTS); + vec4 color = vec4(vec2(1.0), surface + 0.2, surface); + + float glow = 1.0 - smoothstep(0.0, 0.55, radius); + color.ba += mix(vec2(0.0), vec2(1.0), glow) * 0.75; + + vec4 burst = vec4(0.0); + + // The following loop has been manually unrolled for speed, to + // avoid sin() and cos(). + // + //for (float i = 0.4; i < 3.2; i += 1.047) { + // vec2 direction = vec2(sin(i), cos(i)); + // burst += 0.4 * addBurst(position, direction, lengthScalar); + // + // direction = vec2(sin(i - 0.08), cos(i - 0.08)); + // burst += 0.3 * addBurst(position, direction, lengthScalar); + //} + + burst += 0.4 * addBurst(position, vec2(0.38942, 0.92106), lengthScalar); // angle == 0.4 + burst += 0.4 * addBurst(position, vec2(0.99235, 0.12348), lengthScalar); // angle == 0.4 + 1.047 + burst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar); // angle == 0.4 + 1.047 * 2.0 + + burst += 0.3 * addBurst(position, vec2(0.31457, 0.94924), lengthScalar); // angle == 0.4 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.97931, 0.20239), lengthScalar); // angle == 0.4 + 1.047 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar); // angle == 0.4 + 1.047 * 2.0 - 0.08 + + // End of manual loop unrolling. + + color += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15; + + out_FragColor = clamp(color, vec4(0.0), vec4(1.0)); +} +`;var zN=`in vec2 direction; + +uniform float u_size; + +out vec2 v_textureCoordinates; + +void main() +{ + vec4 position; + if (czm_morphTime == 1.0) + { + position = vec4(czm_sunPositionWC, 1.0); + } + else + { + position = vec4(czm_sunPositionColumbusView.zxy, 1.0); + } + + vec4 positionEC = czm_view * position; + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + + vec2 halfSize = vec2(u_size * 0.5); + halfSize *= ((direction * 2.0) - 1.0); + + gl_Position = czm_viewportOrthographic * vec4(positionWC.xy + halfSize, -positionWC.z, 1.0); + + v_textureCoordinates = direction; +} +`;function GN(){this.show=!0,this._drawCommand=new it({primitiveType:Le.TRIANGLES,boundingVolume:new ae,owner:this}),this._commands={drawCommand:this._drawCommand,computeCommand:void 0},this._boundingVolume=new ae,this._boundingVolume2D=new ae,this._texture=void 0,this._drawingBufferWidth=void 0,this._drawingBufferHeight=void 0,this._radiusTS=void 0,this._size=void 0,this.glowFactor=1,this._glowFactorDirty=!1,this._useHdr=void 0;let e=this;this._uniformMap={u_texture:function(){return e._texture},u_size:function(){return e._size}}}Object.defineProperties(GN.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var Uft=new H,Vft=new H,kft=new re,HN=new re;GN.prototype.update=function(e,t,n){if(!this.show)return;let i=e.mode;if(i===ne.SCENE2D||i===ne.MORPHING||!e.passes.render)return;let o=e.context,r=t.viewport.width,s=t.viewport.height;if(!l(this._texture)||r!==this._drawingBufferWidth||s!==this._drawingBufferHeight||this._glowFactorDirty||n!==this._useHdr){this._texture=this._texture&&this._texture.destroy(),this._drawingBufferWidth=r,this._drawingBufferHeight=s,this._glowFactorDirty=!1,this._useHdr=n;let S=Math.max(r,s);S=Math.pow(2,Math.ceil(Math.log(S)/Math.log(2))-2),S=Math.max(1,S);let v=n?o.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT:Je.UNSIGNED_BYTE;this._texture=new Bt({context:o,width:S,height:S,pixelFormat:ct.RGBA,pixelDatatype:v}),this._glowLengthTS=this._glowFactor*5,this._radiusTS=1/(1+2*this._glowLengthTS)*.5;let D=this,O={u_radiusTS:function(){return D._radiusTS}};this._commands.computeCommand=new zu({fragmentShaderSource:kN,outputTexture:this._texture,uniformMap:O,persists:!1,owner:this,postExecute:function(){D._commands.computeCommand=void 0}})}let a=this._drawCommand;if(!l(a.vertexArray)){let S={direction:0},v=new Uint8Array(4*2);v[0]=0,v[1]=0,v[2]=255,v[3]=0,v[4]=255,v[5]=255,v[6]=0,v[7]=255;let D=mt.createVertexBuffer({context:o,typedArray:v,usage:Fe.STATIC_DRAW}),O=[{index:S.direction,vertexBuffer:D,componentsPerAttribute:2,normalize:!0,componentDatatype:X.UNSIGNED_BYTE}],M=mt.createIndexBuffer({context:o,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT});a.vertexArray=new oi({context:o,attributes:O,indexBuffer:M}),a.shaderProgram=Kt.fromCache({context:o,vertexShaderSource:zN,fragmentShaderSource:VN,attributeLocations:S}),a.renderState=ze.fromCache({blending:mn.ALPHA_BLEND}),a.uniformMap=this._uniformMap}let c=o.uniformState.sunPositionWC,u=o.uniformState.sunPositionColumbusView,f=this._boundingVolume,d=this._boundingVolume2D;m.clone(c,f.center),d.center.x=u.z,d.center.y=u.x,d.center.z=u.y,f.radius=P.SOLAR_RADIUS+P.SOLAR_RADIUS*this._glowLengthTS,d.radius=f.radius,i===ne.SCENE3D?ae.clone(f,a.boundingVolume):i===ne.COLUMBUS_VIEW&&ae.clone(d,a.boundingVolume);let p=Xi.computeActualWgs84Position(e,c,HN),g=m.magnitude(m.subtract(p,e.camera.position,HN)),h=o.uniformState.projection,A=kft;A.x=0,A.y=0,A.z=-g,A.w=1;let x=B.multiplyByVector(h,A,HN),C=Xi.clipToGLWindowCoordinates(t.viewport,x,Uft);A.x=P.SOLAR_RADIUS;let T=B.multiplyByVector(h,A,HN),E=Xi.clipToGLWindowCoordinates(t.viewport,T,Vft);return this._size=H.magnitude(H.subtract(E,C,HN)),this._size=2*this._size*(1+2*this._glowLengthTS),this._size=Math.ceil(this._size),this._commands};GN.prototype.isDestroyed=function(){return!1};GN.prototype.destroy=function(){let e=this._drawCommand;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._texture=this._texture&&this._texture.destroy(),ue(this)};var WN=GN;function yS(e){return en(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}function zft(e){e._renderLoopRunning=!0;let t=0;function n(i){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{let o=e._targetFrameRate;if(!l(o))e.resize(),e.render(),requestAnimationFrame(n);else{let r=1e3/o,s=i-t;s>r&&(e.resize(),e.render(),t=i-s%r),requestAnimationFrame(n)}}catch(o){if(e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors){let r="An error occurred while rendering. Rendering has stopped.";e.showErrorPanel(r,void 0,o)}}else e._renderLoopRunning=!1}requestAnimationFrame(n)}function qye(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,l(e._scene)&&(e._scene.pixelRatio=t),t}function Xye(e){let t=e._canvas,n=t.clientWidth,i=t.clientHeight,o=qye(e);e._canvasClientWidth=n,e._canvasClientHeight=i,n*=o,i*=o,t.width=n,t.height=i,e._canRender=n!==0&&i!==0,e._lastDevicePixelRatio=window.devicePixelRatio}function Kye(e){let t=e._canvas,n=t.width,i=t.height;if(n!==0&&i!==0){let o=e._scene.camera.frustum;l(o.aspectRatio)?o.aspectRatio=n/i:(o.top=o.right*(i/n),o.bottom=-o.top)}}function dC(e,t){e=In(e),t=y(t,y.EMPTY_OBJECT);let n=document.createElement("div");n.className="cesium-widget",e.appendChild(n);let i=document.createElement("canvas"),o=Ht.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=o,o&&(i.style.imageRendering=Ht.imageRenderingValue()),i.oncontextmenu=function(){return!1},i.onselectstart=function(){return!1};function r(){i!==i.ownerDocument.activeElement&&i.ownerDocument.activeElement.blur()}y(t.blurActiveElementOnCanvasFocus,!0)&&(i.addEventListener("mousedown",r),i.addEventListener("pointerdown",r)),n.appendChild(i);let a=document.createElement("div");a.className="cesium-widget-credits";let c=l(t.creditContainer)?In(t.creditContainer):n;c.appendChild(a);let u=l(t.creditViewport)?In(t.creditViewport):n,f=y(t.showRenderLoopErrors,!0),d=y(t.useBrowserRecommendedResolution,!0);this._element=n,this._container=e,this._canvas=i,this._canvasClientWidth=0,this._canvasClientHeight=0,this._lastDevicePixelRatio=0,this._creditViewport=u,this._creditContainer=c,this._innerCreditContainer=a,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=f,this._resolutionScale=1,this._useBrowserRecommendedResolution=d,this._forceResize=!1,this._clock=l(t.clock)?t.clock:new Ud,Xye(this);try{let p=new MN({canvas:i,contextOptions:t.contextOptions,creditContainer:a,creditViewport:u,mapProjection:t.mapProjection,orderIndependentTranslucency:t.orderIndependentTranslucency,scene3DOnly:y(t.scene3DOnly,!1),shadows:t.shadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples});this._scene=p,p.camera.constrainedAxis=m.UNIT_Z,qye(this),Kye(this);let g=y(p.mapProjection.ellipsoid,oe.WGS84),h=t.globe;l(h)||(h=new oL(g)),h!==!1&&(p.globe=h,p.globe.shadows=y(t.terrainShadows,xn.RECEIVE_ONLY));let A=t.skyBox;l(A)||(A=new UN({sources:{positiveX:yS("px"),negativeX:yS("mx"),positiveY:yS("py"),negativeY:yS("my"),positiveZ:yS("pz"),negativeZ:yS("mz")}})),A!==!1&&(p.skyBox=A,p.sun=new WN,p.moon=new uL);let x=t.skyAtmosphere;l(x)||(x=new LN(g)),x!==!1&&(p.skyAtmosphere=x),l(t.imageryProvider)&&$("CesiumWidget options.imageryProvider","options.imageryProvider was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use options.baseLayer instead.");let C=t.baseLayer;t.globe!==!1&&C!==!1&&t.imageryProvider!==!1&&(l(t.imageryProvider)&&!l(C)&&(C=new Ls(t.imageryProvider)),l(C)||(C=Ls.fromWorldImagery()),p.imageryLayers.add(C)),l(t.terrainProvider)&&t.globe!==!1&&(p.terrainProvider=t.terrainProvider),l(t.terrain)&&t.globe!==!1&&p.setTerrain(t.terrain),this._screenSpaceEventHandler=new Du(i),l(t.sceneMode)&&(t.sceneMode===ne.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===ne.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void 0,this.useDefaultRenderLoop=y(t.useDefaultRenderLoop,!0),this._targetFrameRate=void 0,this.targetFrameRate=t.targetFrameRate;let T=this;this._onRenderError=function(E,S){if(T._useDefaultRenderLoop=!1,T._renderLoopRunning=!1,T._showRenderLoopErrors){let v="An error occurred while rendering. Rendering has stopped.";T.showErrorPanel(v,void 0,S)}},p.renderError.addEventListener(this._onRenderError)}catch(p){if(f){let g="Error constructing CesiumWidget.",h='Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:';this.showErrorPanel(g,h,p)}throw p}}Object.defineProperties(dC.prototype,{container:{get:function(){return this._container}},canvas:{get:function(){return this._canvas}},creditContainer:{get:function(){return this._creditContainer}},creditViewport:{get:function(){return this._creditViewport}},scene:{get:function(){return this._scene}},imageryLayers:{get:function(){return this._scene.imageryLayers}},terrainProvider:{get:function(){return this._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},creditDisplay:{get:function(){return this._scene.frameState.creditDisplay}},camera:{get:function(){return this._scene.camera}},clock:{get:function(){return this._clock}},screenSpaceEventHandler:{get:function(){return this._screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._targetFrameRate},set:function(e){this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&zft(this))}},resolutionScale:{get:function(){return this._resolutionScale},set:function(e){this._resolutionScale!==e&&(this._resolutionScale=e,this._forceResize=!0)}},useBrowserRecommendedResolution:{get:function(){return this._useBrowserRecommendedResolution},set:function(e){this._useBrowserRecommendedResolution!==e&&(this._useBrowserRecommendedResolution=e,this._forceResize=!0)}}});dC.prototype.showErrorPanel=function(e,t,n){let i=this._element,o=document.createElement("div");o.className="cesium-widget-errorPanel";let r=document.createElement("div");r.className="cesium-widget-errorPanel-content",o.appendChild(r);let s=document.createElement("div");s.className="cesium-widget-errorPanel-header",s.appendChild(document.createTextNode(e)),r.appendChild(s);let a=document.createElement("div");a.className="cesium-widget-errorPanel-scroll",r.appendChild(a);function c(){a.style.maxHeight=`${Math.max(Math.round(i.clientHeight*.9-100),30)}px`}c(),l(window.addEventListener)&&window.addEventListener("resize",c,!1);let u=l(t),f=l(n);if(u||f){let g=document.createElement("div");if(g.className="cesium-widget-errorPanel-message",a.appendChild(g),f){let h=_h(n);u||(typeof n=="string"&&(n=new Error(n)),t=_h({name:n.name,message:n.message}),h=n.stack),typeof console<"u"&&console.error(`${e} +${t} +${h}`);let A=document.createElement("div");A.className="cesium-widget-errorPanel-message-details collapsed";let x=document.createElement("span");x.className="cesium-widget-errorPanel-more-details",x.appendChild(document.createTextNode("See more...")),A.appendChild(x),A.onclick=function(C){A.removeChild(x),A.appendChild(document.createTextNode(h)),A.className="cesium-widget-errorPanel-message-details",r.className="cesium-widget-errorPanel-content expanded",A.onclick=void 0},a.appendChild(A)}g.innerHTML=`<p>${t}</p>`}let d=document.createElement("div");d.className="cesium-widget-errorPanel-buttonPanel",r.appendChild(d);let p=document.createElement("button");p.setAttribute("type","button"),p.className="cesium-button",p.appendChild(document.createTextNode("OK")),p.onclick=function(){l(c)&&l(window.removeEventListener)&&window.removeEventListener("resize",c,!1),i.removeChild(o)},d.appendChild(p),i.appendChild(o)};dC.prototype.isDestroyed=function(){return!1};dC.prototype.destroy=function(){l(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),ue(this)};dC.prototype.resize=function(){let e=this._canvas;!this._forceResize&&this._canvasClientWidth===e.clientWidth&&this._canvasClientHeight===e.clientHeight&&this._lastDevicePixelRatio===window.devicePixelRatio||(this._forceResize=!1,Xye(this),Kye(this),this._scene.requestRender())};dC.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();let e=this._clock.tick();this._scene.render(e)}else this._clock.tick()};var jN=dC;var YN=`uniform sampler2D u_noiseTexture; +uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +in vec2 v_offset; +in vec3 v_maximumSize; +in vec4 v_color; +in float v_slice; +in float v_brightness; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec2 voxelToUV(vec3 voxelIndex) { + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + + float textureSliceWidthSquared = textureSliceWidth * textureSliceWidth; + vec2 inverseNoiseTextureDimensions = vec2(noiseTextureRows / textureSliceWidthSquared, + inverseNoiseTextureRows / textureSliceWidth); + vec3 wrappedIndex = wrapVec(voxelIndex, textureSliceWidth); + float column = mod(wrappedIndex.z, textureSliceWidth * inverseNoiseTextureRows); + float row = floor(wrappedIndex.z / textureSliceWidth * noiseTextureRows); + + float xPixelCoord = wrappedIndex.x + column * textureSliceWidth; + float yPixelCoord = wrappedIndex.y + row * textureSliceWidth; + return vec2(xPixelCoord, yPixelCoord) * inverseNoiseTextureDimensions; +} + +// Interpolate a voxel with its neighbor (along the positive X-axis) +vec4 lerpSamplesX(vec3 voxelIndex, float x) { + vec2 uv0 = voxelToUV(voxelIndex); + vec2 uv1 = voxelToUV(voxelIndex + vec3(1.0, 0.0, 0.0)); + vec4 sample0 = texture(u_noiseTexture, uv0); + vec4 sample1 = texture(u_noiseTexture, uv1); + return mix(sample0, sample1, x); +} + +vec4 sampleNoiseTexture(vec3 position) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 recenteredPos = position + vec3(textureSliceWidth / 2.0); + vec3 lerpValue = fract(recenteredPos); + vec3 voxelIndex = floor(recenteredPos); + + vec4 xLerp00 = lerpSamplesX(voxelIndex, lerpValue.x); + vec4 xLerp01 = lerpSamplesX(voxelIndex + vec3(0.0, 0.0, 1.0), lerpValue.x); + vec4 xLerp10 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 0.0), lerpValue.x); + vec4 xLerp11 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 1.0), lerpValue.x); + + vec4 yLerp0 = mix(xLerp00, xLerp10, lerpValue.y); + vec4 yLerp1 = mix(xLerp01, xLerp11, lerpValue.y); + return mix(yLerp0, yLerp1, lerpValue.z); +} + +// Intersection with a unit sphere with radius 0.5 at center (0, 0, 0). +bool intersectSphere(vec3 origin, vec3 dir, float slice, + out vec3 point, out vec3 normal) { + float A = dot(dir, dir); + float B = dot(origin, dir); + float C = dot(origin, origin) - 0.25; + float discriminant = (B * B) - (A * C); + if(discriminant < 0.0) { + return false; + } + float root = sqrt(discriminant); + float t = (-B - root) / A; + if(t < 0.0) { + t = (-B + root) / A; + } + point = origin + t * dir; + + if(slice >= 0.0) { + point.z = (slice / 2.0) - 0.5; + if(length(point) > 0.5) { + return false; + } + } + + normal = normalize(point); + point -= czm_epsilon2 * normal; + return true; +} + +// Transforms the ray origin and direction into unit sphere space, +// then transforms the result back into the ellipsoid's space. +bool intersectEllipsoid(vec3 origin, vec3 dir, vec3 center, vec3 scale, float slice, + out vec3 point, out vec3 normal) { + if(scale.x <= 0.01 || scale.y < 0.01 || scale.z < 0.01) { + return false; + } + + vec3 o = (origin - center) / scale; + vec3 d = dir / scale; + vec3 p, n; + bool intersected = intersectSphere(o, d, slice, p, n); + if(intersected) { + point = (p * scale) + center; + normal = n; + } + return intersected; +} + +// Assume that if phase shift is being called for octave i, +// the frequency is of i - 1. This saves us from doing extra +// division / multiplication operations. +vec2 phaseShift2D(vec2 p, vec2 freq) { + return (czm_pi / 2.0) * sin(freq.yx * p.yx); +} + +vec2 phaseShift3D(vec3 p, vec2 freq) { + return phaseShift2D(p.xy, freq) + czm_pi * vec2(sin(freq.x * p.z)); +} + +// The cloud texture function derived from Gardner's 1985 paper, +// "Visual Simulation of Clouds." +// https://www.cs.drexel.edu/~david/Classes/Papers/p297-gardner.pdf +const float T0 = 0.6; // contrast of the texture pattern +const float k = 0.1; // computed to produce a maximum value of 1 +const float C0 = 0.8; // coefficient +const float FX0 = 0.6; // frequency X +const float FY0 = 0.6; // frequency Y +const int octaves = 5; + +float T(vec3 point) { + vec2 sum = vec2(0.0); + float Ci = C0; + vec2 FXY = vec2(FX0, FY0); + vec2 PXY = vec2(0.0); + for(int i = 1; i <= octaves; i++) { + PXY = phaseShift3D(point, FXY); + Ci *= 0.707; + FXY *= 2.0; + vec2 sinTerm = sin(FXY * point.xy + PXY); + sum += Ci * sinTerm + vec2(T0); + } + return k * sum.x * sum.y; +} + +const float a = 0.5; // fraction of surface reflection due to ambient or scattered light, +const float t = 0.4; // fraction of texture shading +const float s = 0.25; // fraction of specular reflection + +float I(float Id, float Is, float It) { + return (1.0 - a) * ((1.0 - t) * ((1.0 - s) * Id + s * Is) + t * It) + a; +} + +const vec3 lightDir = normalize(vec3(0.2, -1.0, 0.7)); + +vec4 drawCloud(vec3 rayOrigin, vec3 rayDir, vec3 cloudCenter, vec3 cloudScale, float cloudSlice, + float brightness) { + vec3 cloudPoint, cloudNormal; + if(!intersectEllipsoid(rayOrigin, rayDir, cloudCenter, cloudScale, cloudSlice, + cloudPoint, cloudNormal)) { + return vec4(0.0); + } + + float Id = clamp(dot(cloudNormal, -lightDir), 0.0, 1.0); // diffuse reflection + float Is = max(pow(dot(-lightDir, -rayDir), 2.0), 0.0); // specular reflection + float It = T(cloudPoint); // texture function + float intensity = I(Id, Is, It); + vec3 color = vec3(intensity * clamp(brightness, 0.1, 1.0)); + + vec4 noise = sampleNoiseTexture(u_noiseDetail * cloudPoint); + float W = noise.x; + float W2 = noise.y; + float W3 = noise.z; + + // The dot product between the cloud's normal and the ray's direction is greatest + // in the center of the ellipsoid's surface. It decreases towards the edge. + // Thus, it is used to blur the areas leading to the edges of the ellipsoid, + // so that no harsh lines appear. + + // The first (and biggest) layer of worley noise is then subtracted from this. + // The final result is scaled up so that the base cloud is not too translucent. + float ndDot = clamp(dot(cloudNormal, -rayDir), 0.0, 1.0); + float TR = pow(ndDot, 3.0) - W; // translucency + TR *= 1.3; + + // Subtracting the second and third layers of worley noise is more complicated. + // If these layers of noise were simply subtracted from the current translucency, + // the shape derived from the first layer of noise would be completely deleted. + // The erosion of this noise should thus be constricted to the edges of the cloud. + // However, because the edges of the ellipsoid were already blurred away, mapping + // the noise to (1.0 - ndDot) will have no impact on most of the cloud's appearance. + // The value of (0.5 - ndDot) provides the best compromise. + float minusDot = 0.5 - ndDot; + + // Even with the previous calculation, subtracting the second layer of wnoise + // erode too much of the cloud. The addition of it, however, will detailed + // volume to the cloud. As long as the noise is only added and not subtracted, + // the results are aesthetically pleasing. + + // The minusDot product is mapped in a way that it is larger at the edges of + // the ellipsoid, so a subtraction and min operation are used instead of + // an addition and max one. + TR -= min(minusDot * W2, 0.0); + + // The third level of worley noise is subtracted from the result, with some + // modifications. First, a scalar is added to minusDot so that the noise + // starts affecting the shape farther away from the center of the ellipsoid's + // surface. Then, it is scaled down so its impact is not too intense. + TR -= 0.8 * (minusDot + 0.25) * W3; + + // The texture function's shading does not correlate with the shape of the cloud + // produced by the layers of noise, so an extra shading scalar is calculated. + // The darkest areas of the cloud are assigned to be where the noise erodes + // the cloud the most. This is then interpolated based on the translucency + // and the diffuse shading term of that point in the cloud. + float shading = mix(1.0 - 0.8 * W * W, 1.0, Id * TR); + + // To avoid values that are too dark, this scalar is increased by a small amount + // and clamped so it never goes to zero. + shading = clamp(shading + 0.2, 0.3, 1.0); + + // Finally, the contrast of the cloud's color is increased. + vec3 finalColor = mix(vec3(0.5), shading * color, 1.15); + return vec4(finalColor, clamp(TR, 0.0, 1.0)) * v_color; +} + +void main() { +#ifdef DEBUG_BILLBOARDS + out_FragColor = vec4(0.0, 0.5, 0.5, 1.0); +#endif + // To avoid calculations with high values, + // we raycast from an arbitrarily smaller space. + vec2 coordinate = v_maximumSize.xy * v_offset; + + vec3 ellipsoidScale = 0.82 * v_maximumSize; + vec3 ellipsoidCenter = vec3(0.0); + + float zOffset = max(ellipsoidScale.z - 10.0, 0.0); + vec3 eye = vec3(0, 0, -10.0 - zOffset); + vec3 rayDir = normalize(vec3(coordinate, 1.0) - eye); + vec3 rayOrigin = eye; +#ifdef DEBUG_ELLIPSOIDS + vec3 point, normal; + if(intersectEllipsoid(rayOrigin, rayDir, ellipsoidCenter, ellipsoidScale, v_slice, + point, normal)) { + out_FragColor = v_brightness * v_color; + } +#else +#ifndef DEBUG_BILLBOARDS + vec4 cloud = drawCloud(rayOrigin, rayDir, + ellipsoidCenter, ellipsoidScale, v_slice, v_brightness); + if(cloud.w < 0.01) { + discard; + } + out_FragColor = cloud; +#endif +#endif +} +`;var qN=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScaleX; +in vec4 positionLowAndScaleY; +in vec4 packedAttribute0; +in vec4 packedAttribute1; +in vec4 color; + +out vec2 v_offset; +out vec3 v_maximumSize; +out vec4 v_color; +out float v_slice; +out float v_brightness; + +void main() { + // Unpack attributes. + vec3 positionHigh = positionHighAndScaleX.xyz; + vec3 positionLow = positionLowAndScaleY.xyz; + vec2 scale = vec2(positionHighAndScaleX.w, positionLowAndScaleY.w); + + float show = packedAttribute0.x; + float brightness = packedAttribute0.y; + vec2 coordinates = packedAttribute0.wz; + vec3 maximumSize = packedAttribute1.xyz; + float slice = packedAttribute1.w; + +#ifdef INSTANCED + vec2 dir = direction; +#else + vec2 dir = coordinates; +#endif + + vec2 offset = dir - vec2(0.5, 0.5); + vec2 scaledOffset = scale * offset; + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + positionEC.xy += scaledOffset; + + positionEC.xyz *= show; + gl_Position = czm_projection * positionEC; + + v_offset = offset; + v_maximumSize = maximumSize; + v_color = color; + v_slice = slice; + v_brightness = brightness; +} +`;var XN=`uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +uniform vec3 u_noiseOffset; +in vec2 v_position; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec3 random3(vec3 p) { + float dot1 = dot(p, vec3(127.1, 311.7, 932.8)); + float dot2 = dot(p, vec3(269.5, 183.3, 421.4)); + return fract(vec3(sin(dot1 - dot2), cos(dot1 * dot2), dot1 * dot2)); +} + +// Frequency corresponds to cell size. +// The higher the frequency, the smaller the cell size. +vec3 getWorleyCellPoint(vec3 centerCell, vec3 offset, float freq) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 cell = centerCell + offset; + cell = wrapVec(cell, textureSliceWidth / u_noiseDetail); + cell += floor(u_noiseOffset / u_noiseDetail); + vec3 p = offset + random3(cell); + return p; +} + +float worleyNoise(vec3 p, float freq) { + vec3 centerCell = floor(p * freq); + vec3 pointInCell = fract(p * freq); + float shortestDistance = 1000.0; + + for(float z = -1.0; z <= 1.0; z++) { + for(float y = -1.0; y <= 1.0; y++) { + for(float x = -1.0; x <= 1.0; x++) { + vec3 offset = vec3(x, y, z); + vec3 point = getWorleyCellPoint(centerCell, offset, freq); + + float distance = length(pointInCell - point); + if(distance < shortestDistance) { + shortestDistance = distance; + } + } + } + } + + return shortestDistance; +} + +const float MAX_FBM_ITERATIONS = 10.0; + +float worleyFBMNoise(vec3 p, float octaves, float scale) { + float noise = 0.0; + float freq = 1.0; + float persistence = 0.625; + for(float i = 0.0; i < MAX_FBM_ITERATIONS; i++) { + if(i >= octaves) { + break; + } + + noise += worleyNoise(p * scale, freq * scale) * persistence; + persistence *= 0.5; + freq *= 2.0; + } + return noise; +} + +void main() { + float textureSliceWidth = u_noiseTextureDimensions.x; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + float x = mod(v_position.x, textureSliceWidth); + float y = mod(v_position.y, textureSliceWidth); + float sliceRow = floor(v_position.y / textureSliceWidth); + float z = floor(v_position.x / textureSliceWidth) + sliceRow * inverseNoiseTextureRows * textureSliceWidth; + + vec3 position = vec3(x, y, z); + position /= u_noiseDetail; + float worley0 = clamp(worleyFBMNoise(position, 3.0, 1.0), 0.0, 1.0); + float worley1 = clamp(worleyFBMNoise(position, 3.0, 2.0), 0.0, 1.0); + float worley2 = clamp(worleyFBMNoise(position, 3.0, 3.0), 0.0, 1.0); + out_FragColor = vec4(worley0, worley1, worley2, 1.0); +} +`;var KN=`uniform vec3 u_noiseTextureDimensions; +in vec2 position; + +out vec2 v_position; + +void main() +{ + gl_Position = vec4(position, 0.1, 1.0); + + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + vec2 transformedPos = (position * 0.5) + vec2(0.5); + transformedPos *= textureSliceWidth; + transformedPos.x *= textureSliceWidth * inverseNoiseTextureRows; + transformedPos.y *= noiseTextureRows; + v_position = transformedPos; +} +`;var JN=` +in vec2 v_textureCoordinates; + +void main() +{ + czm_materialInput materialInput; + + materialInput.s = v_textureCoordinates.s; + materialInput.st = v_textureCoordinates; + materialInput.str = vec3(v_textureCoordinates, 0.0); + materialInput.normalEC = vec3(0.0, 0.0, -1.0); + + czm_material material = czm_getMaterial(materialInput); + + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +} +`;var Hft=new m(1,1,1);function jY(e){e=y(e,Hft),this._dimensions=m.clone(e)}Object.defineProperties(jY.prototype,{dimensions:{get:function(){return this._dimensions},set:function(e){m.clone(e,this._dimensions)}}});var Gft=new m;jY.prototype.emit=function(e){let t=this._dimensions,n=m.multiplyByScalar(t,.5,Gft),i=P.randomBetween(-n.x,n.x),o=P.randomBetween(-n.y,n.y),r=P.randomBetween(-n.z,n.z);e.position=m.fromElements(i,o,r,e.position),e.velocity=m.normalize(e.position,e.velocity)};var YY=jY;function V_(){this.featurePropertiesDirty=!1}Object.defineProperties(V_.prototype,{featuresLength:{get:function(){fe.throwInstantiationError()}},pointsLength:{get:function(){fe.throwInstantiationError()}},trianglesLength:{get:function(){fe.throwInstantiationError()}},geometryByteLength:{get:function(){fe.throwInstantiationError()}},texturesByteLength:{get:function(){fe.throwInstantiationError()}},batchTableByteLength:{get:function(){fe.throwInstantiationError()}},innerContents:{get:function(){fe.throwInstantiationError()}},ready:{get:function(){fe.throwInstantiationError()}},readyPromise:{get:function(){fe.throwInstantiationError()}},tileset:{get:function(){fe.throwInstantiationError()}},tile:{get:function(){fe.throwInstantiationError()}},url:{get:function(){fe.throwInstantiationError()}},batchTable:{get:function(){fe.throwInstantiationError()}},metadata:{get:function(){fe.throwInstantiationError()},set:function(e){fe.throwInstantiationError()}},group:{get:function(){fe.throwInstantiationError()},set:function(e){fe.throwInstantiationError()}}});V_.prototype.hasProperty=function(e,t){fe.throwInstantiationError()};V_.prototype.getFeature=function(e){fe.throwInstantiationError()};V_.prototype.applyDebugSettings=function(e,t){fe.throwInstantiationError()};V_.prototype.applyStyle=function(e){fe.throwInstantiationError()};V_.prototype.update=function(e,t){fe.throwInstantiationError()};V_.prototype.isDestroyed=function(){fe.throwInstantiationError()};V_.prototype.destroy=function(){fe.throwInstantiationError()};var qY=V_;function AS(e,t){this._conditionsExpression=Ye(e,!0),this._conditions=e.conditions,this._runtimeConditions=void 0,jft(this,t)}Object.defineProperties(AS.prototype,{conditionsExpression:{get:function(){return this._conditionsExpression}}});function Wft(e,t){this.condition=e,this.expression=t}function jft(e,t){let n=[],i=e._conditions;if(!l(i))return;let o=i.length;for(let r=0;r<o;++r){let s=i[r],a=String(s[0]),c=String(s[1]);n.push(new Wft(new Zu(a,t),new Zu(c,t)))}e._runtimeConditions=n}AS.prototype.evaluate=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluate(e,t)}};AS.prototype.evaluateColor=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluateColor(e,t)}};AS.prototype.getShaderFunction=function(e,t,n,i){let o=this._runtimeConditions;if(!l(o)||o.length===0)return;let r="",s=o.length;for(let a=0;a<s;++a){let c=o[a],u=c.condition.getShaderExpression(t,n),f=c.expression.getShaderExpression(t,n);r+=` ${a===0?"if":"else if"} (${u}) + { + return ${f}; + } +`}return r=`${i} ${e} +{ +${r} return ${i}(1.0); +} +`,r};AS.prototype.getVariables=function(){let e=[],t=this._runtimeConditions;if(!l(t)||t.length===0)return e;let n=t.length;for(let i=0;i<n;++i){let o=t[i];e.push.apply(e,o.condition.getVariables()),e.push.apply(e,o.expression.getVariables())}return e=e.filter(function(i,o,r){return r.indexOf(i)===o}),e};var ZN=AS;function Jy(e){this._style={},this._ready=!1,this._show=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._labelColor=void 0,this._labelOutlineColor=void 0,this._labelOutlineWidth=void 0,this._font=void 0,this._labelStyle=void 0,this._labelText=void 0,this._backgroundColor=void 0,this._backgroundPadding=void 0,this._backgroundEnabled=void 0,this._scaleByDistance=void 0,this._translucencyByDistance=void 0,this._distanceDisplayCondition=void 0,this._heightOffset=void 0,this._anchorLineEnabled=void 0,this._anchorLineColor=void 0,this._image=void 0,this._disableDepthTestDistance=void 0,this._horizontalOrigin=void 0,this._verticalOrigin=void 0,this._labelHorizontalOrigin=void 0,this._labelVerticalOrigin=void 0,this._meta=void 0,this._colorShaderFunction=void 0,this._showShaderFunction=void 0,this._pointSizeShaderFunction=void 0,this._colorShaderFunctionReady=!1,this._showShaderFunctionReady=!1,this._pointSizeShaderFunctionReady=!1,this._colorShaderTranslucent=!1,Yft(this,e)}function Yft(e,t){t=y(Ye(t,!0),e._style),e._style=t,e.show=t.show,e.color=t.color,e.pointSize=t.pointSize,e.pointOutlineColor=t.pointOutlineColor,e.pointOutlineWidth=t.pointOutlineWidth,e.labelColor=t.labelColor,e.labelOutlineColor=t.labelOutlineColor,e.labelOutlineWidth=t.labelOutlineWidth,e.labelStyle=t.labelStyle,e.font=t.font,e.labelText=t.labelText,e.backgroundColor=t.backgroundColor,e.backgroundPadding=t.backgroundPadding,e.backgroundEnabled=t.backgroundEnabled,e.scaleByDistance=t.scaleByDistance,e.translucencyByDistance=t.translucencyByDistance,e.distanceDisplayCondition=t.distanceDisplayCondition,e.heightOffset=t.heightOffset,e.anchorLineEnabled=t.anchorLineEnabled,e.anchorLineColor=t.anchorLineColor,e.image=t.image,e.disableDepthTestDistance=t.disableDepthTestDistance,e.horizontalOrigin=t.horizontalOrigin,e.verticalOrigin=t.verticalOrigin,e.labelHorizontalOrigin=t.labelHorizontalOrigin,e.labelVerticalOrigin=t.labelVerticalOrigin;let n={};if(l(t.meta)){let i=t.defines,o=y(t.meta,y.EMPTY_OBJECT);for(let r in o)o.hasOwnProperty(r)&&(n[r]=new Zu(o[r],i))}e._meta=n,e._ready=!0}function Qo(e,t){let n=y(e._style,y.EMPTY_OBJECT).defines;if(l(t)){if(typeof t=="boolean"||typeof t=="number")return new Zu(String(t));if(typeof t=="string")return new Zu(t,n);if(l(t.conditions))return new ZN(t,n)}else return;return t}function $o(e){if(l(e)){if(l(e.expression))return e.expression;if(l(e.conditionsExpression))return Ye(e.conditionsExpression,!0)}else return;return e}Object.defineProperties(Jy.prototype,{style:{get:function(){return this._style}},show:{get:function(){return this._show},set:function(e){this._show=Qo(this,e),this._style.show=$o(this._show),this._showShaderFunctionReady=!1}},color:{get:function(){return this._color},set:function(e){this._color=Qo(this,e),this._style.color=$o(this._color),this._colorShaderFunctionReady=!1}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=Qo(this,e),this._style.pointSize=$o(this._pointSize),this._pointSizeShaderFunctionReady=!1}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=Qo(this,e),this._style.pointOutlineColor=$o(this._pointOutlineColor)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=Qo(this,e),this._style.pointOutlineWidth=$o(this._pointOutlineWidth)}},labelColor:{get:function(){return this._labelColor},set:function(e){this._labelColor=Qo(this,e),this._style.labelColor=$o(this._labelColor)}},labelOutlineColor:{get:function(){return this._labelOutlineColor},set:function(e){this._labelOutlineColor=Qo(this,e),this._style.labelOutlineColor=$o(this._labelOutlineColor)}},labelOutlineWidth:{get:function(){return this._labelOutlineWidth},set:function(e){this._labelOutlineWidth=Qo(this,e),this._style.labelOutlineWidth=$o(this._labelOutlineWidth)}},font:{get:function(){return this._font},set:function(e){this._font=Qo(this,e),this._style.font=$o(this._font)}},labelStyle:{get:function(){return this._labelStyle},set:function(e){this._labelStyle=Qo(this,e),this._style.labelStyle=$o(this._labelStyle)}},labelText:{get:function(){return this._labelText},set:function(e){this._labelText=Qo(this,e),this._style.labelText=$o(this._labelText)}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=Qo(this,e),this._style.backgroundColor=$o(this._backgroundColor)}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){this._backgroundPadding=Qo(this,e),this._style.backgroundPadding=$o(this._backgroundPadding)}},backgroundEnabled:{get:function(){return this._backgroundEnabled},set:function(e){this._backgroundEnabled=Qo(this,e),this._style.backgroundEnabled=$o(this._backgroundEnabled)}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){this._scaleByDistance=Qo(this,e),this._style.scaleByDistance=$o(this._scaleByDistance)}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){this._translucencyByDistance=Qo(this,e),this._style.translucencyByDistance=$o(this._translucencyByDistance)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=Qo(this,e),this._style.distanceDisplayCondition=$o(this._distanceDisplayCondition)}},heightOffset:{get:function(){return this._heightOffset},set:function(e){this._heightOffset=Qo(this,e),this._style.heightOffset=$o(this._heightOffset)}},anchorLineEnabled:{get:function(){return this._anchorLineEnabled},set:function(e){this._anchorLineEnabled=Qo(this,e),this._style.anchorLineEnabled=$o(this._anchorLineEnabled)}},anchorLineColor:{get:function(){return this._anchorLineColor},set:function(e){this._anchorLineColor=Qo(this,e),this._style.anchorLineColor=$o(this._anchorLineColor)}},image:{get:function(){return this._image},set:function(e){this._image=Qo(this,e),this._style.image=$o(this._image)}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance=Qo(this,e),this._style.disableDepthTestDistance=$o(this._disableDepthTestDistance)}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin=Qo(this,e),this._style.horizontalOrigin=$o(this._horizontalOrigin)}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin=Qo(this,e),this._style.verticalOrigin=$o(this._verticalOrigin)}},labelHorizontalOrigin:{get:function(){return this._labelHorizontalOrigin},set:function(e){this._labelHorizontalOrigin=Qo(this,e),this._style.labelHorizontalOrigin=$o(this._labelHorizontalOrigin)}},labelVerticalOrigin:{get:function(){return this._labelVerticalOrigin},set:function(e){this._labelVerticalOrigin=Qo(this,e),this._style.labelVerticalOrigin=$o(this._labelVerticalOrigin)}},meta:{get:function(){return this._meta},set:function(e){this._meta=e}}});Jy.fromUrl=function(e){return we.createIfNeeded(e).fetchJson(e).then(function(n){return new Jy(n)})};Jy.prototype.getColorShaderFunction=function(e,t,n){return this._colorShaderFunctionReady?(n.translucent=this._colorShaderTranslucent,this._colorShaderFunction):(this._colorShaderFunctionReady=!0,l(this.color)&&l(this.color.getShaderFunction)?this._colorShaderFunction=this.color.getShaderFunction(e,t,n,"vec4"):this._colorShaderFunction=void 0,this._colorShaderTranslucent=n.translucent,this._colorShaderFunction)};Jy.prototype.getShowShaderFunction=function(e,t,n){return this._showShaderFunctionReady?this._showShaderFunction:(this._showShaderFunctionReady=!0,l(this.show)&&l(this.show.getShaderFunction)?this._showShaderFunction=this.show.getShaderFunction(e,t,n,"bool"):this._showShaderFunction=void 0,this._showShaderFunction)};Jy.prototype.getPointSizeShaderFunction=function(e,t,n){return this._pointSizeShaderFunctionReady?this._pointSizeShaderFunction:(this._pointSizeShaderFunctionReady=!0,l(this.pointSize)&&l(this.pointSize.getShaderFunction)?this._pointSizeShaderFunction=this.pointSize.getShaderFunction(e,t,n,"float"):this._pointSizeShaderFunction=void 0,this._pointSizeShaderFunction)};Jy.prototype.getVariables=function(){let e=[];return l(this.color)&&l(this.color.getVariables)&&e.push.apply(e,this.color.getVariables()),l(this.show)&&l(this.show.getVariables)&&e.push.apply(e,this.show.getVariables()),l(this.pointSize)&&l(this.pointSize.getVariables)&&e.push.apply(e,this.pointSize.getVariables()),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var k_=Jy;function mm(e){this._comparator=e.comparator,this._maximumLength=e.maximumLength,this._array=l(e.maximumLength)?new Array(e.maximumLength):[],this._length=0}Object.defineProperties(mm.prototype,{length:{get:function(){return this._length}},maximumLength:{get:function(){return this._maximumLength},set:function(e){if(l(e)){for(;this._length>e;)this.removeMinimum();this._array.length=e}this._maximumLength=e}},internalArray:{get:function(){return this._array}},comparator:{get:function(){return this._comparator}}});mm.prototype.clone=function(){let e=this._maximumLength,t=this._comparator,n=this._array,i=this._length,o=new mm({comparator:t,maximumLength:e});o._length=i;for(let r=0;r<i;r++)o._array[r]=n[r];return o};mm.prototype.reset=function(){this._length=0;let e=this._maximumLength;if(l(e))for(let t=0;t<e;t++)this._array[t]=void 0;else this._array.length=0};mm.prototype.resort=function(){let e=this._length;for(let t=0;t<e;t++)Jye(this,t)};mm.prototype.insert=function(e){let t,n=this._maximumLength;if(l(n)){if(n===0)return;if(this._length===n){let o=this._array[0];if(this._comparator(e,o)<=0)return e;t=this.removeMinimum()}}let i=this._length;return this._array[i]=e,this._length++,Jye(this,i),t};mm.prototype.removeMinimum=function(){let e=this._length;if(e===0)return;this._length--;let t=this._array[0];return e>=2&&(this._array[0]=this._array[e-1],Zye(this,0)),this._array[e-1]=void 0,t};mm.prototype.removeMaximum=function(){let e=this._length;if(e===0)return;this._length--;let t;if(e<=2)t=this._array[e-1];else{let n=XY(this,1,2)?1:2;t=this._array[n],this._array[n]=this._array[e-1],e>=4&&Zye(this,n)}return this._array[e-1]=void 0,t};mm.prototype.getMinimum=function(){if(this._length!==0)return this._array[0]};mm.prototype.getMaximum=function(){let e=this._length;if(e!==0)return e<=2?this._array[e-1]:this._array[XY(this,1,2)?1:2]};function Iz(e,t,n){let i=e._array,o=i[t];i[t]=i[n],i[n]=o}function QN(e,t,n){return e._comparator(e._array[t],e._array[n])<0}function XY(e,t,n){return e._comparator(e._array[t],e._array[n])>0}function Jye(e,t){if(t===0)return;let n=Math.floor(P.log2(t+1))%2===0,i=Math.floor((t-1)/2),o=QN(e,t,i);for(o!==n&&(Iz(e,t,i),t=i);t>=3;){let r=Math.floor((t-3)/4);if(QN(e,t,r)!==o)break;Iz(e,t,r),t=r}}function Zye(e,t){let n=e._length,i=Math.floor(P.log2(t+1))%2===0,o;for(;(o=2*t+1)<n;){let r=o,s=o+1;if(s<n){QN(e,s,r)===i&&(r=s);let a=2*o+1,c=Math.max(Math.min(n-a,4),0);for(let u=0;u<c;u++){let f=a+u;QN(e,f,r)===i&&(r=f)}}if(QN(e,r,t)===i&&(Iz(e,r,t),r!==o&&r!==s)){let a=Math.floor((r-1)/2);XY(e,r,a)===i&&Iz(e,r,a)}t=r}}var mC=mm;function $N(e){e=y(e,y.EMPTY_OBJECT),this._maximumSubtreeCount=y(e.maximumSubtreeCount,0),this._subtreeRequestCounter=0,this._queue=new mC({comparator:$N.comparator})}$N.prototype.addSubtree=function(e){let t=new qft(e,this._subtreeRequestCounter);this._subtreeRequestCounter++,this._queue.insert(t);let n=e.implicitCoordinates;if(n.level>0){let i=n.getParentSubtreeCoordinates(),o=this.find(i)}if(this._maximumSubtreeCount>0)for(;this._queue.length>this._maximumSubtreeCount&&this._queue.getMinimum()!==t;)this._queue.removeMinimum()};$N.prototype.find=function(e){let t=this._queue,n=t.internalArray,i=t.length;for(let o=0;o<i;o++){let r=n[o],a=r.subtree.implicitCoordinates;if(e.isEqual(a))return r.subtree}};$N.comparator=function(e,t){let n=e.subtree.implicitCoordinates,i=t.subtree.implicitCoordinates;return n.isAncestor(i)?1:i.isAncestor(n)?-1:e.stamp-t.stamp};function qft(e,t){this.subtree=e,this.stamp=t}var eF=$N;function Bl(){this.orientedBoundingBox=new Mn,this.boundingSphere=new ae,this.boundTransform=new B,this.shapeTransform=new B,this._minBounds=m.clone(Bl.DefaultMinBounds,new m),this._maxBounds=m.clone(Bl.DefaultMaxBounds,new m),this.shaderUniforms={renderMinBounds:new m,renderMaxBounds:new m,boxUvToShapeUvScale:new m,boxUvToShapeUvTranslate:new m},this.shaderDefines={BOX_INTERSECTION_INDEX:void 0,BOX_HAS_SHAPE_BOUNDS:void 0},this.shaderMaximumIntersectionsLength=0}var Xft=new m,KY=new m,Kft=new Z,Jft=new m,Zft=new m,Qft=new m,$ft=new m,Qye=B.fromRotationTranslation(Z.fromUniformScale(.5,new Z),new m(.5,.5,.5),new B);Bl.prototype.update=function(e,t,n,i,o){i=y(i,Bl.DefaultMinBounds),o=y(o,Bl.DefaultMaxBounds);let r=Bl.DefaultMinBounds,s=Bl.DefaultMaxBounds;t=this._minBounds=m.clamp(t,r,s,this._minBounds),n=this._maxBounds=m.clamp(n,r,s,this._maxBounds),i=m.clamp(i,r,s,Jft),o=m.clamp(o,r,s,Zft);let a=m.clamp(t,i,o,Qft),c=m.clamp(n,i,o,$ft),u=B.getScale(e,KY);if(a.x>c.x||a.y>c.y||a.z>c.z||(a.x===c.x)+(a.y===c.y)+(a.z===c.z)>=2||i.x>o.x||i.y>o.y||i.z>o.z||u.x===0||u.y===0||u.z===0)return!1;this.shapeTransform=B.clone(e,this.shapeTransform),this.orientedBoundingBox=$ye(a,c,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=B.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ae.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let{shaderUniforms:f,shaderDefines:d}=this;for(let h in d)d.hasOwnProperty(h)&&(d[h]=void 0);let p=!m.equals(t,r)||!m.equals(n,s),g=0;if(d.BOX_INTERSECTION_INDEX=g,g+=1,f.renderMinBounds=B.multiplyByPoint(Qye,a,f.renderMinBounds),f.renderMaxBounds=B.multiplyByPoint(Qye,c,f.renderMaxBounds),p){d.BOX_HAS_SHAPE_BOUNDS=!0;let h=t,A=n;f.boxUvToShapeUvScale=m.fromElements(2/(h.x===A.x?1:A.x-h.x),2/(h.y===A.y?1:A.y-h.y),2/(h.z===A.z?1:A.z-h.z),f.boxUvToShapeUvScale),f.boxUvToShapeUvTranslate=m.fromElements(-f.boxUvToShapeUvScale.x*(h.x*.5+.5),-f.boxUvToShapeUvScale.y*(h.y*.5+.5),-f.boxUvToShapeUvScale.z*(h.z*.5+.5),f.boxUvToShapeUvTranslate)}return this.shaderMaximumIntersectionsLength=g,!0};var edt=new m,tdt=new m;Bl.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minBounds,s=this._maxBounds,a=1/Math.pow(2,e),c=m.fromElements(P.lerp(r.x,s.x,a*t),P.lerp(r.y,s.y,a*n),P.lerp(r.z,s.z,a*i),edt),u=m.fromElements(P.lerp(r.x,s.x,a*(t+1)),P.lerp(r.y,s.y,a*(n+1)),P.lerp(r.z,s.z,a*(i+1)),tdt);return $ye(c,u,this.shapeTransform,o)};Bl.prototype.computeApproximateStepSize=function(e){return 1/m.maximumComponent(e)};Bl.DefaultMinBounds=Object.freeze(new m(-1,-1,-1));Bl.DefaultMaxBounds=Object.freeze(new m(1,1,1));function $ye(e,t,n,i){let o=Bl.DefaultMinBounds,r=Bl.DefaultMaxBounds;if(m.equals(e,o)&&m.equals(t,r))i.center=B.getTranslation(n,i.center),i.halfAxes=B.getMatrix3(n,i.halfAxes);else{let a=B.getScale(n,KY),c=m.midpoint(e,t,Xft);i.center=B.multiplyByPoint(n,c,i.center),a=m.fromElements(a.x*.5*(t.x-e.x),a.y*.5*(t.y-e.y),a.z*.5*(t.z-e.z),KY);let u=B.getRotation(n,Kft);i.halfAxes=Z.setScale(u,a,i.halfAxes)}return i}var Oh=Bl;function Pz(e){this._resource=e,this._metadataTable=void 0}Object.defineProperties(Pz.prototype,{metadataTable:{get:function(){return this._metadataTable}}});Pz.fromJson=async function(e,t,n,i){let o;l(t)?o={json:t,binary:void 0}:o=idt(n);let r=await ndt(e,o.json,o.binary),s={},a=o.json.bufferViews.length;for(let d=0;d<a;++d){let p=o.json.bufferViews[d],g=p.byteOffset,h=g+p.byteLength,x=r[p.buffer].subarray(g,h);s[d]=x}let c=o.json.voxelTable,u=o.json.propertyTables[c],f=new Pz(e);return f._metadataTable=new fl({count:u.count,properties:u.properties,class:i.classes[u.class],bufferViews:s}),f};function ndt(e,t,n){let i=t.buffers.length,o=new Array(i);for(let r=0;r<i;r++){let s=t.buffers[r];if(l(s.uri)){let c=e.getDerivedResource({url:s.uri});o[r]=c.fetchArrayBuffer().then(function(u){return new Uint8Array(u)})}else o[r]=Promise.resolve(n)}return Promise.all(o)}function idt(e){let n=new DataView(e.buffer,e.byteOffset),i=8,o=n.getUint32(i,!0);i+=8;let r=n.getUint32(i,!0);i+=8;let s=Do(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}var tF=Pz;function Hr(){this.orientedBoundingBox=new Mn,this.boundingSphere=new ae,this.boundTransform=new B,this.shapeTransform=new B,this._minimumRadius=Hr.DefaultMinBounds.x,this._maximumRadius=Hr.DefaultMaxBounds.x,this._minimumHeight=Hr.DefaultMinBounds.y,this._maximumHeight=Hr.DefaultMaxBounds.y,this._minimumAngle=Hr.DefaultMinBounds.z,this._maximumAngle=Hr.DefaultMaxBounds.z,this.shaderUniforms={cylinderUvToRenderBoundsScale:new m,cylinderUvToRenderBoundsTranslate:new m,cylinderUvToRenderRadiusMin:0,cylinderRenderAngleMinMax:new H,cylinderUvToShapeUvRadius:new H,cylinderUvToShapeUvHeight:new H,cylinderUvToShapeUvAngle:new H,cylinderShapeUvAngleMinMax:new H,cylinderShapeUvAngleRangeZeroMid:0},this.shaderDefines={CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MAX:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MIN:void 0,CYLINDER_INTERSECTION_INDEX_ANGLE:void 0},this.shaderMaximumIntersectionsLength=0}var t0e=new m,odt=new m,rdt=new m,sdt=new Z,adt=new B,cdt=new B,ldt=B.fromRotationTranslation(Z.fromUniformScale(2,new Z),new m(-1,-1,-1),new B);Hr.prototype.update=function(e,t,n,i,o){i=y(i,Hr.DefaultMinBounds),o=y(o,Hr.DefaultMaxBounds);let r=Hr.DefaultMinBounds.x,s=Hr.DefaultMaxBounds.x,a=Hr.DefaultMinBounds.y,c=Hr.DefaultMaxBounds.y,u=Hr.DefaultMinBounds.z,f=Hr.DefaultMaxBounds.z,d=f-u,p=.5*d,g=P.EPSILON10,h=P.EPSILON3,A=P.EPSILON10,x=P.clamp(t.x,r,s),C=P.clamp(n.x,r,s),T=P.clamp(i.x,r,s),E=P.clamp(o.x,r,s),S=Math.max(x,T),v=Math.min(C,E),D=P.clamp(t.y,a,c),O=P.clamp(n.y,a,c),M=P.clamp(i.y,a,c),L=P.clamp(o.y,a,c),N=Math.max(D,M),_=Math.min(O,L),b=P.negativePiToPi(t.z),w=P.negativePiToPi(n.z),I=P.negativePiToPi(i.z),R=P.negativePiToPi(o.z),F=Math.max(b,I),k=Math.min(w,R),V=B.getScale(e,t0e);if(v===0||S>v||N>_||P.equalsEpsilon(V.x,0,void 0,g)||P.equalsEpsilon(V.y,0,void 0,g)||P.equalsEpsilon(V.z,0,void 0,g))return!1;this._minimumRadius=x,this._maximumRadius=C,this._minimumHeight=D,this._maximumHeight=O,this._minimumAngle=b,this._maximumAngle=w,this.shapeTransform=B.clone(e,this.shapeTransform),this.orientedBoundingBox=ZY(S,v,N,_,F,k,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=B.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ae.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let q=x===r&&C===s,Y=D===a&&O===c,Q=w<b,W=w-b+Q*d,K=W>p+A&&W<d-A,J=W>A&&W<p-A,_e=W>=p-A&&W<=p+A,xe=W<=A,se=K||J||_e||xe,Ae=P.equalsEpsilon(b,u,void 0,h),me=P.equalsEpsilon(w,f,void 0,h),Se=v===s,Ie=S===r,Ve=N===a&&_===c,Re=k<F,ke=k-F+Re*d,dt=ke>p+A&&ke<d-A,pt=ke>A&&ke<p-A,rt=ke>=p-A&&ke<=p+A,fn=ke<=A,Bn=dt||pt||rt||fn,jt=this.shaderUniforms,Ze=this.shaderDefines;for(let Ee in Ze)Ze.hasOwnProperty(Ee)&&(Ze[Ee]=void 0);let pe=0;if(Ze.CYLINDER_INTERSECTION_INDEX_RADIUS_MAX=pe,pe+=1,Ie||(Ze.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN=!0,Ze.CYLINDER_INTERSECTION_INDEX_RADIUS_MIN=pe,pe+=1,jt.cylinderUvToRenderRadiusMin=v/S),Se||(Ze.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX=!0),S===v&&(Ze.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT=!0),Ve||(Ze.CYLINDER_HAS_RENDER_BOUNDS_HEIGHT=!0),N===_&&(Ze.CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT=!0),D===O&&(Ze.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT=!0),x===C&&(Ze.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT=!0),!q){Ze.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS=!0;let Ee=1/(C-x),je=x/(x-C);jt.cylinderUvToShapeUvRadius=H.fromElements(Ee,je,jt.cylinderUvToShapeUvRadius)}if(!Y){Ze.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT=!0;let Ee=2/(O-D),je=(D+1)/(D-O);jt.cylinderUvToShapeUvHeight=H.fromElements(Ee,je,jt.cylinderUvToShapeUvHeight)}if(!Se||!Ve){let Ee=.5*(_-N),je=m.fromElements(1/v,1/v,1/(Ee===0?1:Ee),rdt),fi=m.fromElements(0,0,-je.z*.5*(N+_),odt),Ai=B.fromRotationTranslation(Z.fromScale(je,sdt),fi,adt),er=B.multiplyTransformation(Ai,ldt,cdt);jt.cylinderUvToRenderBoundsScale=B.getScale(er,jt.cylinderUvToRenderBoundsScale),jt.cylinderUvToRenderBoundsTranslate=B.getTranslation(er,jt.cylinderUvToRenderBoundsTranslate)}if(Q&&(Ze.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED=!0),Bn&&(Ze.CYLINDER_HAS_RENDER_BOUNDS_ANGLE=!0,Ze.CYLINDER_INTERSECTION_INDEX_ANGLE=pe,dt?(Ze.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF=!0,pe+=1):pt?(Ze.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF=!0,pe+=2):rt?(Ze.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF=!0,pe+=1):fn&&(Ze.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0,pe+=2),jt.cylinderRenderAngleMinMax=H.fromElements(F,k,jt.cylinderAngleMinMax)),se){Ze.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE=!0,xe&&(Ze.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0),Ae&&(Ze.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY=!0),me&&(Ze.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY=!0);let Ee=(b-u)/d,je=(w-u)/d,fi=1-W/d;jt.cylinderShapeUvAngleMinMax=H.fromElements(Ee,je,jt.cylinderShapeUvAngleMinMax),jt.cylinderShapeUvAngleRangeZeroMid=(je+.5*fi)%1;let Ai=d/W,er=-(b-u)/W;jt.cylinderUvToShapeUvAngle=H.fromElements(Ai,er,jt.cylinderUvToShapeUvAngle)}return this.shaderMaximumIntersectionsLength=pe,!0};Hr.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minimumRadius,s=this._maximumRadius,a=this._minimumHeight,c=this._maximumHeight,u=this._minimumAngle,f=this._maximumAngle,d=1/Math.pow(2,e),p=P.lerp(r,s,t*d),g=P.lerp(r,s,(t+1)*d),h=P.lerp(a,c,n*d),A=P.lerp(a,c,(n+1)*d),x=P.lerp(u,f,i*d),C=P.lerp(u,f,(i+1)*d);return ZY(p,g,h,A,x,C,this.shapeTransform,o)};var udt=new Mn,fdt=new m,ddt=new m,mdt=new m;Hr.prototype.computeApproximateStepSize=function(e){let t=this.shapeTransform,n=this._minimumRadius,i=this._maximumRadius,o=this._minimumHeight,r=this._maximumHeight,s=this._minimumAngle,a=this._maximumAngle,c=1-1/e.x,u=1-1/e.y,f=1-1/e.z,d=P.lerp(n,i,c),p=P.lerp(o,r,u),g=P.lerp(s,a,f),C=ZY(d,i,p,r,g,a,t,udt),T=Z.getScale(C.halfAxes,fdt),E=B.getScale(t,ddt),S=m.divideComponents(T,E,mdt);return m.minimumComponent(S)};Hr.DefaultMinBounds=Object.freeze(new m(0,-1,-P.PI));Hr.DefaultMaxBounds=Object.freeze(new m(1,1,+P.PI));var hdt=5,pdt=new Array(hdt),_dt=new m,gdt=new Z,ydt=new B,Adt=new B,xdt=new B,JY=new B,Cdt=new m,Tdt=new m,Edt=new m,n0e=new Array(8);for(let e=0;e<8;e++)n0e[e]=new m;function e0e(e,t,n){return Math.abs(re.dot(e,t))<n}function bdt(e){let t=B.getColumn(e,0,Cdt),n=B.getColumn(e,1,Tdt),i=B.getColumn(e,2,Edt),o=P.EPSILON4;return e0e(t,n,o)&&e0e(n,i,o)}function Sdt(e,t){let n=n0e;m.fromElements(-.5,-.5,-.5,n[0]),m.fromElements(-.5,-.5,.5,n[1]),m.fromElements(-.5,.5,-.5,n[2]),m.fromElements(-.5,.5,.5,n[3]),m.fromElements(.5,-.5,-.5,n[4]),m.fromElements(.5,-.5,.5,n[5]),m.fromElements(.5,.5,-.5,n[6]),m.fromElements(.5,.5,.5,n[7]);for(let i=0;i<8;++i)B.multiplyByPoint(e,n[i],n[i]);return Mn.fromPoints(n,t)}function ZY(e,t,n,i,o,r,s,a){let c=Hr.DefaultMinBounds,u=Hr.DefaultMaxBounds,f=c.x,d=u.x,p=c.y,g=u.y,h=c.z,A=u.z;if(e===f&&t===d&&n===p&&i===g&&o===h&&r===A)return a.center=B.getTranslation(s,a.center),a.halfAxes=B.getMatrix3(s,a.halfAxes),a;r<o&&(r+=P.TWO_PI);let C=r-o,T=o+C*.5,E=pdt,S=0;E[S++]=o,E[S++]=r,E[S++]=T,C>P.PI&&(E[S++]=T-P.PI_OVER_TWO,E[S++]=T+P.PI_OVER_TWO);let v=1,D=1,O=-1,M=-1;for(let Q=0;Q<S;++Q){let W=E[Q]-T,K=Math.cos(W),J=Math.sin(W),_e=K*e,xe=J*e,se=K*t,Ae=J*t;v=Math.min(v,_e),D=Math.min(D,xe),v=Math.min(v,se),D=Math.min(D,Ae),O=Math.max(O,_e),M=Math.max(M,xe),O=Math.max(O,se),M=Math.max(M,Ae)}let L=O-v,N=M-D,_=i-n,b=(v+O)*.5,w=(D+M)*.5,I=(n+i)*.5,R=m.fromElements(b,w,I,_dt),F=Z.fromRotationZ(T,gdt),k=m.fromElements(L,N,_,t0e),V=B.fromScale(k,xdt),G=B.fromRotation(F,Adt),U=B.fromTranslation(R,ydt),q=B.multiplyTransformation(G,B.multiplyTransformation(U,V,JY),JY),Y=B.multiplyTransformation(s,q,JY);return bdt(Y)?Mn.fromTransformation(Y,a):Sdt(Y,a)}var Mh=Hr;function Ll(){this.orientedBoundingBox=new Mn,this.boundingSphere=new ae,this.boundTransform=new B,this.shapeTransform=new B,this._rectangle=new le,this._minimumHeight=Ll.DefaultMinBounds.z,this._maximumHeight=Ll.DefaultMaxBounds.z,this._ellipsoid=new oe,this._translation=new m,this._rotation=new Z,this.shaderUniforms={ellipsoidRadiiUv:new m,ellipsoidInverseRadiiSquaredUv:new m,ellipsoidRenderLongitudeMinMax:new H,ellipsoidShapeUvLongitudeMinMaxMid:new m,ellipsoidUvToShapeUvLongitude:new H,ellipsoidUvToShapeUvLatitude:new H,ellipsoidRenderLatitudeCosSqrHalfMinMax:new H,ellipsoidInverseHeightDifferenceUv:0,ellipseInnerRadiiUv:new H,ellipsoidInverseInnerScaleUv:0,ellipsoidInverseOuterScaleUv:0},this.shaderDefines={ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT:void 0,ELLIPSOID_IS_SPHERE:void 0,ELLIPSOID_INTERSECTION_INDEX_LONGITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN:void 0},this.shaderMaximumIntersectionsLength=0}var wdt=new m,vdt=new Z,i0e=new m,o0e=new m,r0e=new m,s0e=new m,Ddt=new le;Ll.prototype.update=function(e,t,n,i,o){i=y(i,Ll.DefaultMinBounds),o=y(o,Ll.DefaultMaxBounds);let r=Ll.DefaultMinBounds.x,s=Ll.DefaultMaxBounds.x,a=s-r,c=.5*a,u=Ll.DefaultMinBounds.y,f=Ll.DefaultMaxBounds.y,d=f-u,p=P.EPSILON10,g=P.EPSILON3,h=P.EPSILON10,A=P.EPSILON10,x=P.EPSILON3,C=P.clamp(t.x,r,s),T=P.clamp(n.x,r,s),E=P.clamp(i.x,r,s),S=P.clamp(o.x,r,s),v=Math.max(C,E),D=Math.min(T,S),O=P.clamp(t.y,u,f),M=P.clamp(n.y,u,f),L=P.clamp(i.y,u,f),N=P.clamp(o.y,u,f),_=Math.max(O,L),b=Math.min(M,N),w=B.getScale(e,wdt),I=w.x===w.y&&w.y===w.z,R=m.minimumComponent(w),F=Math.max(t.z,-R),k=Math.max(n.z,-R),V=Math.max(i.z,-R),G=Math.max(o.z,-R),U=Math.max(F,V),q=Math.min(k,G),Y=m.add(w,m.fromElements(F,F,F,o0e),o0e),Q=m.add(w,m.fromElements(k,k,k,i0e),i0e),W=m.maximumComponent(Q),K=m.add(w,m.fromElements(U,U,U,s0e),s0e),J=m.add(w,m.fromElements(q,q,q,r0e),r0e);if(_>b||_===f||b===u||U>q||P.equalsEpsilon(J,m.ZERO,void 0,p))return!1;this._rectangle=le.fromRadians(C,O,T,M),this._translation=B.getTranslation(e,this._translation),this._rotation=B.getRotation(e,this._rotation),this._ellipsoid=oe.fromCartesian3(w,this._ellipsoid),this._minimumHeight=F,this._maximumHeight=k;let _e=le.fromRadians(v,_,D,b,Ddt);this.orientedBoundingBox=a0e(_e,U,q,this._ellipsoid,this._translation,this._rotation,this.orientedBoundingBox),this.shapeTransform=B.fromRotationTranslation(Z.setScale(this._rotation,Q,vdt),this._translation,this.shapeTransform),this.boundTransform=B.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ae.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let xe=D<v,se=D-v+xe*a,Ae=se<=h,me=se>c+h&&se<a-h,Se=se>=c-h&&se<=c+h,Ie=se>h&&se<c-h,Ve=Ae||me||Se||Ie,Re=T<C,ke=T-C+Re*a,dt=ke<=h,pt=ke>c+h&&ke<a-h,rt=ke>=c-h&&ke<=c+h,fn=ke>h&&ke<c-h,Bn=dt||pt||rt||fn,jt=b<-x,Ze=b>=-x&&b<=+x,pe=b>+x&&b<f-A,Ee=jt||Ze||pe,je=_>u+A&&_<-x,fi=_>=-x&&_<=+x,Ai=_>+x,er=je||fi||Ai,Fs=Ee||er,Us=M-O,Br=M<-x,Mo=M>=-x&&M<=+x,Be=M>+x&&M<f-A,st=Br||Mo||Be,Qe=O>u+A&&O<-x,$e=O>=-x&&O<=+x,yt=O>+x,an=st||(Qe||$e||yt),Ji=!m.equals(K,m.ZERO),go=!m.equals(J,m.ZERO),$r=Ji||go,es=q-U,ar=!m.equals(Y,m.ZERO),Wi=!m.equals(Q,m.ZERO),Wr=ar||Wi,Un=this.shaderUniforms,ln=this.shaderDefines;for(let gn in ln)ln.hasOwnProperty(gn)&&(ln[gn]=void 0);Un.ellipsoidRadiiUv=m.divideByScalar(Q,W,Un.ellipsoidRadiiUv),Un.ellipsoidInverseRadiiSquaredUv=m.divideComponents(m.ONE,m.multiplyComponents(Un.ellipsoidRadiiUv,Un.ellipsoidRadiiUv,Un.ellipsoidInverseRadiiSquaredUv),Un.ellipsoidInverseRadiiSquaredUv);let Xn=0;if(ln.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX=Xn,Xn+=1,$r&&(es===0&&(ln.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT=!0),Ji&&(ln.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN=!0,ln.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN=Xn,Xn+=1,Un.ellipsoidInverseInnerScaleUv=W/(W-(k-U))),go&&(ln.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX=!0,Un.ellipsoidInverseOuterScaleUv=W/(W-(k-q)))),Wr){if(ar){ln.ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN=!0;let gn=(k-F)/W;Un.ellipsoidInverseHeightDifferenceUv=1/gn,Un.ellipseInnerRadiiUv=H.fromElements(Un.ellipsoidRadiiUv.x*(1-gn),Un.ellipsoidRadiiUv.z*(1-gn),Un.ellipseInnerRadiiUv)}F===k&&(ln.ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT=!0)}if(Ve&&(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE=!0,ln.ELLIPSOID_INTERSECTION_INDEX_LONGITUDE=Xn,me?(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF=!0,Xn+=1):Ie?(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF=!0,Xn+=2):Se?(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF=!0,Xn+=1):Ae&&(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO=!0,Xn+=2),Un.ellipsoidRenderLongitudeMinMax=H.fromElements(v,D,Un.ellipsoidRenderLongitudeMinMax)),Bn){ln.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE=!0,T<C&&(ln.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED=!0);let Ia=a/ke,Kn=-(C-r)/ke;Un.ellipsoidUvToShapeUvLongitude=H.fromElements(Ia,Kn,Un.ellipsoidUvToShapeUvLongitude)}if(Ve){let gn=P.equalsEpsilon(v,r,void 0,g),Ia=P.equalsEpsilon(D,s,void 0,g);gn&&(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY=!0),Ia&&(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY=!0);let Kn=(C-r)/a,Lr=(T-r)/a,Xf=(D-r)/a,cr=1-se/a,Pa=(Xf+.5*cr)%1;Un.ellipsoidShapeUvLongitudeMinMaxMid=m.fromElements(Kn,Lr,Pa,Un.ellipsoidShapeUvLongitudeMinMaxMid)}if(Fs){ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE=!0,er&&(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN=!0,ln.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN=Xn,je?(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF=!0,Xn+=1):fi?(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF=!0,Xn+=1):Ai&&(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF=!0,Xn+=2)),Ee&&(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX=!0,ln.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX=Xn,jt?(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF=!0,Xn+=2):Ze?(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF=!0,Xn+=1):pe&&(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF=!0,Xn+=1)),_===b&&(ln.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO=!0);let gn=Math.pow(Math.cos(P.PI_OVER_TWO-Math.abs(_)),2),Ia=Math.pow(Math.cos(P.PI_OVER_TWO-Math.abs(b)),2);Un.ellipsoidRenderLatitudeCosSqrHalfMinMax=H.fromElements(gn,Ia,Un.ellipsoidRenderLatitudeCosSqrHalfMinMax)}if(an){ln.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE=!0,O===M&&(ln.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO=!0);let gn=d/Us,Ia=(u-O)/Us;Un.ellipsoidUvToShapeUvLatitude=H.fromElements(gn,Ia,Un.ellipsoidUvToShapeUvLatitude)}return I&&(ln.ELLIPSOID_IS_SPHERE=!0),this.shaderMaximumIntersectionsLength=Xn,!0};var Idt=new le;Ll.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=1/Math.pow(2,e),s=t*r,a=(t+1)*r,c=n*r,u=(n+1)*r,f=i*r,d=(i+1)*r,p=le.subsection(this._rectangle,s,c,a,u,Idt),g=P.lerp(this._minimumHeight,this._maximumHeight,f),h=P.lerp(this._minimumHeight,this._maximumHeight,d);return a0e(p,g,h,this._ellipsoid,this._translation,this._rotation,o)};Ll.prototype.computeApproximateStepSize=function(e){let n=this._ellipsoid.maximumRadius,i=this._minimumHeight,o=this._maximumHeight;return .5*((o-i)/(n+o))/e.z};function a0e(e,t,n,i,o,r,s){return s=Mn.fromRectangle(e,t,n,i,s),s.center=m.add(s.center,o,s.center),s.halfAxes=Z.multiply(s.halfAxes,r,s.halfAxes),s}Ll.DefaultMinBounds=Object.freeze(new m(-P.PI,-P.PI_OVER_TWO,-Number.MAX_VALUE));Ll.DefaultMaxBounds=Object.freeze(new m(+P.PI,+P.PI_OVER_TWO,+Number.MAX_VALUE));var hC=Ll;var Ou={BOX:"BOX",ELLIPSOID:"ELLIPSOID",CYLINDER:"CYLINDER"};Ou.getMinBounds=function(e){switch(e){case Ou.BOX:return Oh.DefaultMinBounds;case Ou.ELLIPSOID:return hC.DefaultMinBounds;case Ou.CYLINDER:return Mh.DefaultMinBounds}};Ou.getMaxBounds=function(e){switch(e){case Ou.BOX:return Oh.DefaultMaxBounds;case Ou.ELLIPSOID:return hC.DefaultMaxBounds;case Ou.CYLINDER:return Mh.DefaultMaxBounds}};Ou.getShapeConstructor=function(e){switch(e){case Ou.BOX:return Oh;case Ou.ELLIPSOID:return hC;case Ou.CYLINDER:return Mh}};var Gi=Object.freeze(Ou);function nF(e){e=y(e,y.EMPTY_OBJECT),this._ready=!1,this.shapeTransform=void 0,this.globalTransform=void 0,this.shape=void 0,this.minBounds=void 0,this.maxBounds=void 0,this.dimensions=void 0,this.paddingBefore=void 0,this.paddingAfter=void 0,this.names=void 0,this.types=void 0,this.componentTypes=void 0,this.minimumValues=void 0,this.maximumValues=void 0,this.maximumTileCount=void 0,this._implicitTileset=void 0,this._subtreeCache=new eF;let t=this,n;l(e.url)&&($("Cesium3DTilesVoxelProvider options.url","Cesium3DTilesVoxelProvider constructor parameter options.url was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead."),this._readyPromise=Promise.resolve(e.url).then(function(i){let o=we.createIfNeeded(i);return o.fetchJson().then(function(r){return n=r,u0e(n),d0e(n,o).load()}).then(function(r){let s=n.root,a=s.content.extensions["3DTILES_content_voxels"],c=a.class,u=ti(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,f=r.schema,d=new ty({metadataJson:u,schema:f});m0e(t,d,c);let p=new ny(o,s,f),{shape:g,minBounds:h,maxBounds:A,shapeTransform:x,globalTransform:C}=f0e(s);t.shape=g,t.minBounds=h,t.maxBounds=A,t.dimensions=m.unpack(a.dimensions),t.shapeTransform=x,t.globalTransform=C,t.maximumTileCount=l0e(d);let T,E;return l(a.padding)&&(T=m.unpack(a.padding.before),E=m.unpack(a.padding.after)),t.paddingBefore=T,t.paddingAfter=E,t._implicitTileset=p,Bi.unload(r),t._ready=!0,t})}))}Object.defineProperties(nF.prototype,{readyPromise:{get:function(){return $("Cesium3DTilesVoxelProvider.readyPromise","Cesium3DTilesVoxelProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead."),this._readyPromise}},ready:{get:function(){return $("Cesium3DTilesVoxelProvider.ready","Cesium3DTilesVoxelProvider.ready was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead."),this._ready}}});nF.fromUrl=async function(e){let t=we.createIfNeeded(e),n=await t.fetchJson();u0e(n);let i=d0e(n,t);await i.load();let o=n.root,r=o.content.extensions["3DTILES_content_voxels"],s=r.class,a=ti(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,c=i.schema,u=new ty({metadataJson:a,schema:c}),f=new nF;m0e(f,u,s);let d=new ny(t,o,c),{shape:p,minBounds:g,maxBounds:h,shapeTransform:A,globalTransform:x}=f0e(o);f.shape=p,f.minBounds=g,f.maxBounds=h,f.dimensions=m.unpack(r.dimensions),f.shapeTransform=A,f.globalTransform=x,f.maximumTileCount=l0e(u);let C,T;return l(r.padding)&&(C=m.unpack(r.padding.before),T=m.unpack(r.padding.after)),f.paddingBefore=C,f.paddingAfter=T,f._implicitTileset=d,Bi.unload(i),f._ready=!0,f._readyPromise=Promise.resolve(f),f};function l0e(e){if(l(e.tileset))return e.tileset.getPropertyBySemantic(PA.TILESET_TILE_COUNT)}function u0e(e){let t=e.root;if(!l(t.content))throw new de("Root must have content");if(!ti(t.content,"3DTILES_content_voxels"))throw new de("Root tile content must have 3DTILES_content_voxels extension");if(!ti(t,"3DTILES_implicit_tiling")&&!l(t.implicitTiling))throw new de("Root tile must have implicit tiling");if(!l(e.schema)&&!l(e.schemaUri)&&!ti(e,"3DTILES_metadata"))throw new de("Tileset must have a metadata schema")}function f0e(e){let t=e.boundingVolume,n;if(l(e.transform)?n=B.unpack(e.transform):n=B.clone(B.IDENTITY),l(t.box))return Odt(t.box,n);if(l(t.region))return Pdt(t.region);if(ti(t,"3DTILES_bounding_volume_cylinder"))return Mdt(t.extensions["3DTILES_bounding_volume_cylinder"].cylinder,n);throw new de("Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider")}function Pdt(e){let t=e[0],n=e[1],i=e[2],o=e[3],r=e[4],s=e[5],a=B.fromScale(oe.WGS84.radii),c=t,u=i,f=n,d=o,p=r,g=s,h=new m(c,f,p),A=new m(u,d,g);return{shape:Gi.ELLIPSOID,minBounds:h,maxBounds:A,shapeTransform:a,globalTransform:B.clone(B.IDENTITY)}}function Odt(e,t){let n=Mn.unpack(e),i=B.fromRotationTranslation(n.halfAxes,n.center);return{shape:Gi.BOX,minBounds:m.clone(Oh.DefaultMinBounds),maxBounds:m.clone(Oh.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function Mdt(e,t){let n=Mn.unpack(e),i=B.fromRotationTranslation(n.halfAxes,n.center);return{shape:Gi.CYLINDER,minBounds:m.clone(Mh.DefaultMinBounds),maxBounds:m.clone(Mh.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function d0e(e,t){let{schemaUri:n,schema:i}=e;return l(n)?Bi.getSchemaLoader({resource:t.getDerivedResource({url:n})}):Bi.getSchemaLoader({schema:i})}function m0e(e,t,n){let{schema:i,statistics:o}=t,r=o?.classes[n],s=i.classes[n].properties,a=Object.entries(s).map(([d,p])=>{let{type:g,componentType:h}=p,A=r?.properties[d].min,x=r?.properties[d].max,C=Wt.getComponentCount(g),T=c0e(A,C),E=c0e(x,C);return{id:d,type:g,componentType:h,minValue:T,maxValue:E}});e.names=a.map(d=>d.id),e.types=a.map(d=>d.type),e.componentTypes=a.map(d=>d.componentType);let c=a.map(d=>d.minValue),u=a.map(d=>d.maxValue),f=c.some(l);e.minimumValues=f?c:void 0,e.maximumValues=f?u:void 0}function c0e(e,t){if(!l(e))return;let n=Array.isArray(e)?e:[e];return Array.from({length:t},(i,o)=>n[o])}async function Rdt(e,t){let n=e.contentUriTemplates[0].getDerivedResource({templateValues:t.getTemplateValues()}),i=e.baseResource.getDerivedResource({url:n.url}),o=await i.fetchArrayBuffer(),r=Zm(o);return await tF.fromJson(i,r.jsonPayload,r.binaryPayload,e.metadataSchema)}async function Bdt(e,t){let n=e._implicitTileset,i=e._subtreeCache,o=i.find(t);if(l(o))return o;let r=n.subtreeUriTemplate.getDerivedResource({templateValues:t.getTemplateValues()}),s=n.baseResource.getDerivedResource({url:r.url}),a=await s.fetchArrayBuffer();if(o=i.find(t),l(o))return o;let c=Zm(a);return o=await IA.fromSubtreeJson(s,c.jsonPayload,c.binaryPayload,n,t),i.addSubtree(o),o}nF.prototype.requestData=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.tileLevel,0),n=y(e.tileX,0),i=y(e.tileY,0),o=y(e.tileZ,0);if(y(e.keyframe,0)!==0)return;let s=this._implicitTileset,a=this.names,c=new sx({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:t,x:n,y:i,z:o}),u=c.isSubtreeRoot()&&c.level>0,f=u?c.getParentSubtreeCoordinates():c.getSubtreeCoordinates();return Bdt(this,f).then(function(p){return(u?p.childSubtreeIsAvailableAtCoordinates(c):p.tileIsAvailableAtCoordinates(c))?Rdt(s,c):Promise.reject("Tile is not available")}).then(function(p){return a.map(function(g){return p.metadataTable.getPropertyTypedArray(g)})})};var QY=nF;function $Y(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties($Y.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});$Y.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,this._radius),i=n*Math.cos(t),o=n*Math.sin(t),r=0;e.position=m.fromElements(i,o,r,e.position),e.velocity=m.clone(m.UNIT_Z,e.velocity)};var iF=$Y;var eq={CUMULUS:0};eq.validate=function(e){return e===eq.CUMULUS};var xS=Object.freeze(eq);function hm(e,t){if(e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._position=m.clone(y(e.position,m.ZERO)),!l(e.scale)&&l(e.maximumSize))this._maximumSize=m.clone(e.maximumSize),this._scale=new H(this._maximumSize.x,this._maximumSize.y);else{this._scale=H.clone(y(e.scale,new H(20,12)));let n=new m(this._scale.x,this._scale.y,Math.min(this._scale.x,this._scale.y)/1.5);this._maximumSize=m.clone(y(e.maximumSize,n))}this._slice=y(e.slice,-1),this._color=z.clone(y(e.color,z.WHITE)),this._brightness=y(e.brightness,1),this._cloudCollection=t,this._index=-1}var Ldt=hm.SHOW_INDEX=0,Ndt=hm.POSITION_INDEX=1,Fdt=hm.SCALE_INDEX=2,Udt=hm.MAXIMUM_SIZE_INDEX=3,Vdt=hm.SLICE_INDEX=4,kdt=hm.BRIGHTNESS_INDEX=5,zdt=hm.COLOR_INDEX=6;hm.NUMBER_OF_PROPERTIES=7;function pC(e,t){let n=e._cloudCollection;l(n)&&(n._updateCloud(e,t),e._dirty=!0)}Object.defineProperties(hm.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,pC(this,Ldt))}},position:{get:function(){return this._position},set:function(e){let t=this._position;m.equals(t,e)||(m.clone(e,t),pC(this,Ndt))}},scale:{get:function(){return this._scale},set:function(e){let t=this._scale;H.equals(t,e)||(H.clone(e,t),pC(this,Fdt))}},maximumSize:{get:function(){return this._maximumSize},set:function(e){let t=this._maximumSize;m.equals(t,e)||(m.clone(e,t),pC(this,Udt))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),pC(this,zdt))}},slice:{get:function(){return this._slice},set:function(e){this._slice!==e&&(this._slice=e,pC(this,Vdt))}},brightness:{get:function(){return this._brightness},set:function(e){this._brightness!==e&&(this._brightness=e,pC(this,kdt))}}});hm.prototype._destroy=function(){this._cloudCollection=void 0};var Mu=hm;var Ru,Oz=new m,Hdt={positionHighAndScaleX:0,positionLowAndScaleY:1,packedAttribute0:2,packedAttribute1:3,color:4},Gdt={direction:0,positionHighAndScaleX:1,positionLowAndScaleY:2,packedAttribute0:3,packedAttribute1:4,color:5},Wdt=Mu.SHOW_INDEX,jdt=Mu.POSITION_INDEX,Ydt=Mu.SCALE_INDEX,qdt=Mu.MAXIMUM_SIZE_INDEX,Xdt=Mu.SLICE_INDEX,Kdt=Mu.BRIGHTNESS_INDEX,Jdt=Mu.NUMBER_OF_PROPERTIES,Zdt=Mu.COLOR_INDEX;function pm(e){e=y(e,y.EMPTY_OBJECT),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(Jdt),this._noiseTexture=void 0,this._textureSliceWidth=128,this._noiseTextureRows=4,this.noiseDetail=y(e.noiseDetail,16),this.noiseOffset=m.clone(y(e.noiseOffset,m.ZERO)),this._loading=!1,this._ready=!1;let t=this;this._uniforms={u_noiseTexture:function(){return t._noiseTexture},u_noiseTextureDimensions:h0e(t),u_noiseDetail:function(){return t.noiseDetail}},this._vaNoise=void 0,this._spNoise=void 0,this._spCreated=!1,this._sp=void 0,this._rs=void 0,this.show=y(e.show,!0),this._colorCommands=[],this.debugBillboards=y(e.debugBillboards,!1),this._compiledDebugBillboards=!1,this.debugEllipsoids=y(e.debugEllipsoids,!1),this._compiledDebugEllipsoids=!1}function h0e(e){return function(){return Oz.x=e._textureSliceWidth,Oz.y=e._noiseTextureRows,Oz.z=1/e._noiseTextureRows,Oz}}Object.defineProperties(pm.prototype,{length:{get:function(){return nq(this),this._clouds.length}}});function p0e(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}pm.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.cloudType,xS.CUMULUS),n;return t===xS.CUMULUS&&(n=new Mu(e,this),n._index=this._clouds.length,this._clouds.push(n),this._createVertexArray=!0),n};pm.prototype.remove=function(e){return this.contains(e)?(this._clouds[e._index]=void 0,this._cloudsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};pm.prototype.removeAll=function(){p0e(this._clouds),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!0};function nq(e){if(e._cloudsRemoved){e._cloudsRemoved=!1;let t=[],n=e._clouds,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(n._index=r++,t.push(s))}e._clouds=t}}pm.prototype._updateCloud=function(e,t){e._dirty||(this._cloudsToUpdate[this._cloudsToUpdateIndex++]=e),++this._propertiesChanged[t]};pm.prototype.contains=function(e){return l(e)&&e._cloudCollection===this};pm.prototype.get=function(e){return nq(this),this._clouds[e]};var Qdt=new Float32Array([-1,-1,1,-1,1,1,-1,1]),$dt=new Uint16Array([0,1,2,0,2,3]);function emt(e){let t=mt.createVertexBuffer({context:e,typedArray:Qdt,usage:Fe.STATIC_DRAW}),n=mt.createIndexBuffer({context:e,typedArray:$dt,usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT}),i=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT}];return new oi({context:e,attributes:i,indexBuffer:n})}var iq;function tmt(e){let n=e.cache.cloudCollection_indexBufferBatched;if(l(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s,o[r+4]=s+2,o[r+5]=s+3;return n=mt.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferBatched=n,n}function nmt(e){let t=e.cache.cloudCollection_indexBufferInstanced;return l(t)||(t=mt.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferInstanced=t),t}function imt(e){let t=e.cache.cloudCollection_vertexBufferInstanced;return l(t)||(t=mt.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_vertexBufferInstanced=t),t}function omt(e,t,n){let i=[{index:Ru.positionHighAndScaleX,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:Ru.positionLowAndScaleY,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:Ru.packedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:Ru.packedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:Ru.color,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,usage:Fe.STATIC_DRAW}];n&&i.push({index:Ru.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:imt(e)});let o=n?t:4*t;return new ep(e,i,o,n)}var tq=new Wn;function _0e(e,t,n,i){let o,r=n[Ru.positionHighAndScaleX],s=n[Ru.positionLowAndScaleY],a=i.position;Wn.fromCartesian(a,tq);let c=i.scale,u=tq.high,f=tq.low;e._instanced?(o=i._index,r(o,u.x,u.y,u.z,c.x),s(o,f.x,f.y,f.z,c.y)):(o=i._index*4,r(o+0,u.x,u.y,u.z,c.x),r(o+1,u.x,u.y,u.z,c.x),r(o+2,u.x,u.y,u.z,c.x),r(o+3,u.x,u.y,u.z,c.x),s(o+0,f.x,f.y,f.z,c.y),s(o+1,f.x,f.y,f.z,c.y),s(o+2,f.x,f.y,f.z,c.y),s(o+3,f.x,f.y,f.z,c.y))}function g0e(e,t,n,i){let o,r=n[Ru.packedAttribute0],s=i.show,a=i.brightness;e._instanced?(o=i._index,r(o,s,a,0,0)):(o=i._index*4,r(o+0,s,a,0,0),r(o+1,s,a,1,0),r(o+2,s,a,1,1),r(o+3,s,a,0,1))}function y0e(e,t,n,i){let o,r=n[Ru.packedAttribute1],s=i.maximumSize,a=i.slice;e._instanced?(o=i._index,r(o,s.x,s.y,s.z,a)):(o=i._index*4,r(o+0,s.x,s.y,s.z,a),r(o+1,s.x,s.y,s.z,a),r(o+2,s.x,s.y,s.z,a),r(o+3,s.x,s.y,s.z,a))}function A0e(e,t,n,i){let o,r=n[Ru.color],s=i.color,a=z.floatToByte(s.red),c=z.floatToByte(s.green),u=z.floatToByte(s.blue),f=z.floatToByte(s.alpha);e._instanced?(o=i._index,r(o,a,c,u,f)):(o=i._index*4,r(o+0,a,c,u,f),r(o+1,a,c,u,f),r(o+2,a,c,u,f),r(o+3,a,c,u,f))}function rmt(e,t,n,i){_0e(e,t,n,i),g0e(e,t,n,i),y0e(e,t,n,i),A0e(e,t,n,i)}function smt(e,t,n,i){let o=e,r=o._textureSliceWidth,s=o._noiseTextureRows,a=t.context;o._vaNoise=emt(a),o._spNoise=Kt.fromCache({context:a,vertexShaderSource:n,fragmentShaderSource:i,attributeLocations:{position:0}});let c=o.noiseDetail,u=o.noiseOffset;o._noiseTexture=new Bt({context:a,width:r*r/s,height:r*s,pixelDatatype:Je.UNSIGNED_BYTE,pixelFormat:ct.RGBA,sampler:new dn({wrapS:vn.REPEAT,wrapT:vn.REPEAT,minificationFilter:cn.NEAREST,magnificationFilter:xi.NEAREST})});let f=new zu({vertexArray:o._vaNoise,shaderProgram:o._spNoise,outputTexture:o._noiseTexture,uniformMap:{u_noiseTextureDimensions:h0e(o),u_noiseDetail:function(){return c},u_noiseOffset:function(){return u}},persists:!1,owner:e,postExecute:function(d){o._ready=!0,o._loading=!1}});t.commandList.push(f),o._loading=!0}function amt(e,t){let n=e,i=t.context;n._createVertexArray=!1,n._vaf=n._vaf&&n._vaf.destroy();let o=e._clouds,r=o.length;if(r>0){n._vaf=omt(i,r,n._instanced);let s=n._vaf.writers,a;for(a=0;a<r;++a){let c=o[a];rmt(e,t,s,c)}n._vaf.commit(iq(i))}}var cmt=[];function lmt(e,t){let n=t.context,i=e,r=i._clouds.length,s=i._cloudsToUpdate,a=i._cloudsToUpdateIndex,c=i._propertiesChanged,u=cmt;u.length=0,(c[jdt]||c[Ydt])&&u.push(_0e),(c[Wdt]||c[Kdt])&&u.push(g0e),(c[qdt]||c[Xdt])&&u.push(y0e),c[Zdt]&&u.push(A0e);let f=u.length,d=i._vaf.writers,p,g,h;if(a/r>.1){for(p=0;p<a;++p)for(g=s[p],g._dirty=!1,h=0;h<f;++h)u[h](e,t,d,g);i._vaf.commit(iq(n))}else{for(p=0;p<a;++p){for(g=s[p],g._dirty=!1,h=0;h<f;++h)u[h](e,t,d,g);i._instanced?i._vaf.subCommit(g._index,1):i._vaf.subCommit(g._index*4,4)}i._vaf.endSubCommits()}i._cloudsToUpdateIndex=0}function umt(e,t,n,i){let o=t.context,r=e,s=new He({defines:[],sources:[n]});r._instanced&&s.defines.push("INSTANCED");let a=new He({defines:[],sources:[i]});r.debugBillboards&&a.defines.push("DEBUG_BILLBOARDS"),r.debugEllipsoids&&a.defines.push("DEBUG_ELLIPSOIDS"),r._sp=Kt.replaceCache({context:o,shaderProgram:r._sp,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:Ru}),r._rs=ze.fromCache({depthTest:{enabled:!0,func:te.LESS},depthMask:!1,blending:mn.ALPHA_BLEND}),r._spCreated=!0,r._compiledDebugBillboards=r.debugBillboards,r._compiledDebugEllipsoids=r.debugEllipsoids}function fmt(e,t){let n=e,i=t.passes,o=n._uniforms,r=t.commandList;if(i.render){let s=n._colorCommands,a=n._vaf.va,c=a.length;s.length=c;for(let u=0;u<c;u++){let f=s[u];l(f)||(f=s[u]=new it),f.pass=be.TRANSLUCENT,f.owner=e,f.uniformMap=o,f.count=a[u].indicesCount,f.vertexArray=a[u].va,f.shaderProgram=n._sp,f.renderState=n._rs,n._instanced&&(f.count=6,f.instanceCount=n._clouds.length),r.push(f)}}}pm.prototype.update=function(e){if(nq(this),!this.show)return;let t=this.debugBillboards||this.debugEllipsoids;this._ready=t?!0:l(this._noiseTexture),!this._ready&&!this._loading&&!t&&smt(this,e,KN,XN),this._instanced=e.context.instancedArrays,Ru=this._instanced?Gdt:Hdt,iq=this._instanced?nmt:tmt;let i=this._clouds.length,o=this._cloudsToUpdate,r=this._cloudsToUpdateIndex;this._createVertexArray?amt(this,e):r>0&&lmt(this,e),r>i*1.5&&(o.length=i),!(!l(this._vaf)||!l(this._vaf.va)||!this._ready&!t)&&((!this._spCreated||this.debugBillboards!==this._compiledDebugBillboards||this.debugEllipsoids!==this._compiledDebugEllipsoids)&&umt(this,e,qN,YN),fmt(this,e))};pm.prototype.isDestroyed=function(){return!1};pm.prototype.destroy=function(){return this._noiseTexture=this._noiseTexture&&this._noiseTexture.destroy(),this._sp=this._sp&&this._sp.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),p0e(this._clouds),ue(this)};var oq=pm;var dmt=P.toRadians(30);function rq(e){this._angle=y(e,dmt)}Object.defineProperties(rq.prototype,{angle:{get:function(){return this._angle},set:function(e){this._angle=e}}});rq.prototype.emit=function(e){let t=Math.tan(this._angle),n=P.randomBetween(0,P.TWO_PI),i=P.randomBetween(0,t),o=i*Math.cos(n),r=i*Math.sin(n),s=1;e.velocity=m.fromElements(o,r,s,e.velocity),m.normalize(e.velocity,e.velocity),e.position=m.clone(m.ZERO,e.position)};var sq=rq;function oF(e){e=y(e,y.EMPTY_OBJECT);let t=e.attributeName,n=e.perInstanceAttribute;l(n)||(n=!1);let i=y(e.glslDatatype,"vec3"),o=`v_${t}`,r;if(t==="normal"||t==="tangent"||t==="bitangent")r=`vec4 getColor() { return vec4((${o} + vec3(1.0)) * 0.5, 1.0); } +`;else switch(t==="st"&&(i="vec2"),i){case"float":r=`vec4 getColor() { return vec4(vec3(${o}), 1.0); } +`;break;case"vec2":r=`vec4 getColor() { return vec4(${o}, 0.0, 1.0); } +`;break;case"vec3":r=`vec4 getColor() { return vec4(${o}, 1.0); } +`;break;case"vec4":r=`vec4 getColor() { return ${o}; } +`;break}let s=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; +${n?"":`in ${i} ${t}; +`}out ${i} ${o}; +void main() +{ +vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow); +${n?`${o} = czm_batchTable_${t}(batchId); +`:`${o} = ${t}; +`}gl_Position = czm_modelViewProjectionRelativeToEye * p; +}`,a=`in ${i} ${o}; +${r} +void main() +{ +out_FragColor = getColor(); +}`;this.material=void 0,this.translucent=y(e.translucent,!1),this._vertexShaderSource=y(e.vertexShaderSource,s),this._fragmentShaderSource=y(e.fragmentShaderSource,a),this._renderState=eo.getDefaultRenderState(!1,!1,e.renderState),this._closed=y(e.closed,!1),this._attributeName=t,this._glslDatatype=i}Object.defineProperties(oF.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},attributeName:{get:function(){return this._attributeName}},glslDatatype:{get:function(){return this._glslDatatype}}});oF.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;oF.prototype.isTranslucent=eo.prototype.isTranslucent;oF.prototype.getRenderState=eo.prototype.getRenderState;var aq=oF;function Mz(e){e=y(e,y.EMPTY_OBJECT),this.length=y(e.length,1e7),this._length=void 0,this.width=y(e.width,2),this._width=void 0,this.show=y(e.show,!0),this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._modelMatrix=new B,this.id=e.id,this._id=void 0,this._primitive=void 0}Mz.prototype.update=function(e){if(this.show){if(!l(this._primitive)||!B.equals(this._modelMatrix,this.modelMatrix)||this._length!==this.length||this._width!==this.width||this._id!==this.id){this._modelMatrix=B.clone(this.modelMatrix,this._modelMatrix),this._length=this.length,this._width=this.width,this._id=this.id,l(this._primitive)&&this._primitive.destroy(),this.modelMatrix[12]===0&&this.modelMatrix[13]===0&&this.modelMatrix[14]===0&&(this.modelMatrix[14]=.01);let t=new Tt({geometry:new x_({positions:[m.ZERO,m.UNIT_X],width:this.width,vertexFormat:Fr.VERTEX_FORMAT,colors:[z.RED,z.RED],arcType:Jt.NONE}),modelMatrix:B.multiplyByUniformScale(this.modelMatrix,this.length,new B),id:this.id,pickPrimitive:this}),n=new Tt({geometry:new x_({positions:[m.ZERO,m.UNIT_Y],width:this.width,vertexFormat:Fr.VERTEX_FORMAT,colors:[z.GREEN,z.GREEN],arcType:Jt.NONE}),modelMatrix:B.multiplyByUniformScale(this.modelMatrix,this.length,new B),id:this.id,pickPrimitive:this}),i=new Tt({geometry:new x_({positions:[m.ZERO,m.UNIT_Z],width:this.width,vertexFormat:Fr.VERTEX_FORMAT,colors:[z.BLUE,z.BLUE],arcType:Jt.NONE}),modelMatrix:B.multiplyByUniformScale(this.modelMatrix,this.length,new B),id:this.id,pickPrimitive:this});this._primitive=new wn({geometryInstances:[t,n,i],appearance:new Fr,asynchronous:!1})}this._primitive.update(e)}};Mz.prototype.isDestroyed=function(){return!1};Mz.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var rF=Mz;function mmt(e){this.direction=m.clone(e.direction),this.color=z.clone(y(e.color,z.WHITE)),this.intensity=y(e.intensity,1)}var cq=mmt;var sF=`in vec3 v_positionMC; +in vec3 v_positionEC; +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0))); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + materialInput.s = v_st.s; + materialInput.st = v_st; + materialInput.str = vec3(v_st, 0.0); + + // Convert tangent space material normal to eye space + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC); + + // Convert view vector to world space + vec3 positionToEyeEC = -v_positionEC; + materialInput.positionToEyeEC = positionToEyeEC; + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var aF=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec2 st; +in float batchId; + +out vec3 v_positionMC; +out vec3 v_positionEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionMC = position3DHigh + position3DLow; // position in model coordinates + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function _C(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.aboveGround,!1);this.material=l(e.material)?e.material:ki.fromType(ki.ColorType),this.translucent=y(e.translucent,!0),this._vertexShaderSource=y(e.vertexShaderSource,aF),this._fragmentShaderSource=y(e.fragmentShaderSource,sF),this._renderState=eo.getDefaultRenderState(t,!n,e.renderState),this._closed=!1,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,n),this._aboveGround=n}Object.defineProperties(_C.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return _C.VERTEX_FORMAT}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}},aboveGround:{get:function(){return this._aboveGround}}});_C.VERTEX_FORMAT=Pe.POSITION_AND_ST;_C.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;_C.prototype.isTranslucent=eo.prototype.isTranslucent;_C.prototype.getRenderState=eo.prototype.getRenderState;var lq=_C;function Nl(e){this._scene=e.scene,this.samplingWindow=y(e.samplingWindow,Nl.defaultSettings.samplingWindow),this.quietPeriod=y(e.quietPeriod,Nl.defaultSettings.quietPeriod),this.warmupPeriod=y(e.warmupPeriod,Nl.defaultSettings.warmupPeriod),this.minimumFrameRateDuringWarmup=y(e.minimumFrameRateDuringWarmup,Nl.defaultSettings.minimumFrameRateDuringWarmup),this.minimumFrameRateAfterWarmup=y(e.minimumFrameRateAfterWarmup,Nl.defaultSettings.minimumFrameRateAfterWarmup),this._lowFrameRate=new ge,this._nominalFrameRate=new ge,this._frameTimes=[],this._needsQuietPeriod=!0,this._quietPeriodEndTime=0,this._warmupPeriodEndTime=0,this._frameRateIsLow=!1,this._lastFramesPerSecond=void 0,this._pauseCount=0;let t=this;this._preUpdateRemoveListener=this._scene.preUpdate.addEventListener(function(o,r){hmt(t,r)}),this._hiddenPropertyName=document.hidden!==void 0?"hidden":document.mozHidden!==void 0?"mozHidden":document.msHidden!==void 0?"msHidden":document.webkitHidden!==void 0?"webkitHidden":void 0;let n=document.hidden!==void 0?"visibilitychange":document.mozHidden!==void 0?"mozvisibilitychange":document.msHidden!==void 0?"msvisibilitychange":document.webkitHidden!==void 0?"webkitvisibilitychange":void 0;function i(){pmt(t)}this._visibilityChangeRemoveListener=void 0,l(n)&&(document.addEventListener(n,i,!1),this._visibilityChangeRemoveListener=function(){document.removeEventListener(n,i,!1)})}Nl.defaultSettings={samplingWindow:5,quietPeriod:2,warmupPeriod:5,minimumFrameRateDuringWarmup:4,minimumFrameRateAfterWarmup:8};Nl.fromScene=function(e){return(!l(e._frameRateMonitor)||e._frameRateMonitor.isDestroyed())&&(e._frameRateMonitor=new Nl({scene:e})),e._frameRateMonitor};Object.defineProperties(Nl.prototype,{scene:{get:function(){return this._scene}},lowFrameRate:{get:function(){return this._lowFrameRate}},nominalFrameRate:{get:function(){return this._nominalFrameRate}},lastFramesPerSecond:{get:function(){return this._lastFramesPerSecond}}});Nl.prototype.pause=function(){++this._pauseCount,this._pauseCount===1&&(this._frameTimes.length=0,this._lastFramesPerSecond=void 0)};Nl.prototype.unpause=function(){--this._pauseCount,this._pauseCount<=0&&(this._pauseCount=0,this._needsQuietPeriod=!0)};Nl.prototype.isDestroyed=function(){return!1};Nl.prototype.destroy=function(){return this._preUpdateRemoveListener(),l(this._visibilityChangeRemoveListener)&&this._visibilityChangeRemoveListener(),ue(this)};function hmt(e,t){if(e._pauseCount>0)return;let n=gi();if(e._needsQuietPeriod)e._needsQuietPeriod=!1,e._frameTimes.length=0,e._quietPeriodEndTime=n+e.quietPeriod/Zn.SECONDS_PER_MILLISECOND,e._warmupPeriodEndTime=e._quietPeriodEndTime+(e.warmupPeriod+e.samplingWindow)/Zn.SECONDS_PER_MILLISECOND;else if(n>=e._quietPeriodEndTime){e._frameTimes.push(n);let i=n-e.samplingWindow/Zn.SECONDS_PER_MILLISECOND;if(e._frameTimes.length>=2&&e._frameTimes[0]<=i){for(;e._frameTimes.length>=2&&e._frameTimes[1]<i;)e._frameTimes.shift();let o=(n-e._frameTimes[0])/(e._frameTimes.length-1);e._lastFramesPerSecond=1e3/o;let r=1e3/(n>e._warmupPeriodEndTime?e.minimumFrameRateAfterWarmup:e.minimumFrameRateDuringWarmup);o>r?e._frameRateIsLow||(e._frameRateIsLow=!0,e._needsQuietPeriod=!0,e.lowFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond)):e._frameRateIsLow&&(e._frameRateIsLow=!1,e._needsQuietPeriod=!0,e.nominalFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond))}}}function pmt(e){document[e._hiddenPropertyName]?e.pause():e.unpause()}var cF=Nl;var _mt=1953029805,gmt=2917034100;function uq(e,t){if(uq.passThroughDataForTesting)return t;let n=e.byteLength;if(n===0||n%4!==0)throw new de("The length of key must be greater than 0 and a multiple of 4.");let i=new DataView(t),o=i.getUint32(0,!0);if(o===_mt||o===gmt)return t;let r=new DataView(e),s=0,a=t.byteLength,c=a-a%8,u=n,f,d=8;for(;s<c;)for(d=(d+8)%24,f=d;s<c&&f<u;)i.setUint32(s,i.getUint32(s,!0)^r.getUint32(f,!0),!0),i.setUint32(s+4,i.getUint32(s+4,!0)^r.getUint32(f+4,!0),!0),s+=8,f+=24;if(s<a)for(f>=u&&(d=(d+8)%24,f=d);s<a;)i.setUint8(s,i.getUint8(s)^r.getUint8(f)),s++,f++}uq.passThroughDataForTesting=!1;var lF=uq;var Emt=So(fq(),1);function ymt(e,t){return(e&t)!==0}var dc=ymt;var Amt=[1,2,4,8],x0e=15,xmt=16,Cmt=64,Tmt=128;function Rh(e,t,n,i,o,r){this._bits=e,this.cnodeVersion=t,this.imageryVersion=n,this.terrainVersion=i,this.imageryProvider=o,this.terrainProvider=r,this.ancestorHasTerrain=!1,this.terrainState=void 0}Rh.clone=function(e,t){return l(t)?(t._bits=e._bits,t.cnodeVersion=e.cnodeVersion,t.imageryVersion=e.imageryVersion,t.terrainVersion=e.terrainVersion,t.imageryProvider=e.imageryProvider,t.terrainProvider=e.terrainProvider):t=new Rh(e._bits,e.cnodeVersion,e.imageryVersion,e.terrainVersion,e.imageryProvider,e.terrainProvider),t.ancestorHasTerrain=e.ancestorHasTerrain,t.terrainState=e.terrainState,t};Rh.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()};Rh.prototype.hasSubtree=function(){return dc(this._bits,xmt)};Rh.prototype.hasImagery=function(){return dc(this._bits,Cmt)};Rh.prototype.hasTerrain=function(){return dc(this._bits,Tmt)};Rh.prototype.hasChildren=function(){return dc(this._bits,x0e)};Rh.prototype.hasChild=function(e){return dc(this._bits,Amt[e])};Rh.prototype.getChildBitmask=function(){return this._bits&x0e};var uF=Rh;function bmt(e){let t=e.length,n=new ArrayBuffer(t),i=new Uint8Array(n);for(let o=0;o<t;++o)i[o]=e.charCodeAt(o);return n}var Smt=bmt(`E\xF4\xBD\vy\xE2jE"\x92,\xCDq\xF8IFgQ\0B%\xC6\xE8a,f)\b\xC64\xDCjb%y +wmi\xD6\xF0\x9Ck\x93\xA1\xBDNu\xE0A[\xDF@V\f\xD9\xBBr\x9B\x81|3S\xEEOl\xD4q\xB0{\xC0\x7FEVZ\xADwUe\v3\x92*\xACl5\xC50s\xF83>mF8J\xB4\xDD\xF0.\xDDu\xDA\x8CDt"\xFAa"\f3"So\xAF9D\v\x8C9\xD99L\xB9\xBF\x7F\xAB\\\x8CP_\x9F"ux\xE9\x07q\x91h;\xC1\xC4\x9B\x7F\xF0<VqH\x82'UfYNe\x98u\xA3aF}a?A\0\x9F\xD7\xB44M\xCE\x87F\xB0\xD5\xB8\x8A'{\x8B\xDC+\xBBMg0\xC8\xD1\xF6\\\x8FP\xFA[/F\x9Bn5/'C.\xEB +\f^\xA5s\x1Be4\xE5l.jC'c#U\xA9?q{gC}:\xAF\xCD\xE2TU\x9C\xFDK\xC6\xE2\x9F/(\xED\xCB\\\xC6-f\x07\x88\xA7;/*"N\xB0k.\xDD\r\x95}}G\xBAC\xB2\xB2+>M\xAA>}\xE6\xCEI\x89\xC6\xE6x\fa1-\xA4O\xA5~q \x88\xEC\r1\xE8N\v\0nPh}=\b\r\x95\xA6n\xA3h\x97$[k\xF3#\xF3\xB6s\xB3\r\v@\xC0\x9F\xD8Q]\xFA".j\xDFI\0\xB9\xA0wU\xC6\xEFj\xBF{GL\x7F\x83\xEE\xDC\xDCF\x85\xA9\xADS\x07+S4\x07\xFF\x94Y\xE48\xE81\x83N\xB9XFk\xCB-#\x86\x92p\x005\x88"\xCF1\xB2&/\xE7\xC3u-6,rt\xB0#G\xB7\xD3\xD1&\x857r\xE2\0\x8CD\xCF\xDA3-\xDE\`\x86i#i*|\xCDKQ\r\x95T9w.)\xEA\x1B\xA6P\xA2j\x8FoP\x99\\>T\xFB\xEFP[\v\x07E\x89m(w7\xDB\x8EJfJo\x99 \xE5p\xE2\xB9q~\fmI-z\xFEr\xC7\xF2Y0\x8F\xBB]s\xE5\xC9 \xEAx\xEC \x90\xF0\x8A\x7FB|G\`\xB0\xBD&\xB7q\xB6\xC7\x9F\xD13\x82=\xD3\xAB\xEEc\x99\xC8+S\xA0D\\q\xC6\xCCD2O<\xCA\xC0)=R\xD3aX\xA9}e\xB4\xDC\xCF\r\xF4=\xF1\b\xA9B\xDA# \xD8\xBF^PI\xF8M\xC0\xCBGLO\xF7{+\xD8\xC51\x92;\xB5o\xDCl\r\x92\x88\xD1\x9E\xDB?\xE2\xE9\xDA_\xD4\x84\xE2FaZ\xDEU\xCF\xA4\0\xBE\xFD\xCEg\xF1Ji\x97\xE6 H\xD8]\x7F~\xAEq N\xAE\xC0V\xA9\x91<\x82r\xE7v\xEC)I\xD6]-\x83\xE3\xDB6\xA9;f\x97\x87j\xD5\xB6=P^R\xB9K\xC7sWx\xC9\xF4.Y\x07\x95\x93o\xD0KW>''\xC7\`\xDB;\xED\x9ASD>?\x8D\x92mw\xA2 +\xEB?R\xA8\xC6U^1I7\x85\xF4\xC5&-\xA9\xBF\x8B'T\xDA\xC3j \xE5*x\xB0\xD6\x90pr\xAA\x8Bh\xBD\x88\xF7_H\xB1~\xC0XL?f\xF9>\xE1e\xC0p\xA7\xCF8i\xAF\xF0VldI\x9C'\xADxtO\xC2\x87\xDEV9\0\xDAw\v\xCB-\x1B\x89\xFB5O\xF5\bQ\`\xC1 +ZGM&30x\xDA\xC0\x9CFG\xE2[y\`In7gS +>\xE9\xECF9\xB2\xF14\r\xC6\x84Sun\xE1\fY\xD9\xDE)\x85{II\xA5wy\xBEIV.6\xE7\v:\xBBOb{\xD2M1\x95/\xBD8{\xA8O!\xE1\xECFpv\x95})"x\x88 +\x90\xDD\x9D\\\xDA\xDEQ\xCF\xF0\xFCYRe|3\xDF\xF3H\xDA\xBB*u\xDB\`\xB2\xD4\xFC\xED\x1B\xEC\x7F5\xA8\xFF(1\x07-\xC8\xDC\x88F|\x8A["`);function Bu(e){if(this.imageryPresent=!0,this.protoImagery=void 0,this.terrainPresent=!0,this.negativeAltitudeExponentBias=32,this.negativeAltitudeThreshold=P.EPSILON12,this.providers={},this.key=void 0,this._resource=void 0,this._quadPacketVersion=1,this._tileInfo={},this._subtreePromises={},this._readyPromise=Promise.resolve(!0),l(e)){$("GoogleEarthEnterpriseMetadata options.url","GoogleEarthEnterpriseMetadata constructor parmeter resourceOrUrl was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMetadata.fromUrl instead.");let t=e;typeof t!="string"&&!(t instanceof we)&&(t=e.url);let n=we.createIfNeeded(t);n.appendForwardSlash(),this._resource=n;let i=this;this._readyPromise=T0e(this).then(function(){return i.getQuadTreePacket("",i._quadPacketVersion)}).then(function(){return!0}).catch(function(o){let r=`An error occurred while accessing ${pq(i,"",1).url}.`;return Promise.reject(new de(r))})}}Object.defineProperties(Bu.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},resource:{get:function(){return this._resource}},readyPromise:{get:function(){return $("GoogleEarthEnterpriseMetadata.readyPromise","GoogleEarthEnterpriseMetadata.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMetadata.fromUrl instead."),this._readyPromise}}});Bu.fromUrl=async function(e){let t=e;typeof t!="string"&&!(t instanceof we)&&(t=e.url);let n=we.createIfNeeded(t);n.appendForwardSlash();let i=new Bu;i._resource=n;try{await T0e(i),await i.getQuadTreePacket("",i._quadPacketVersion)}catch(o){let r=`An error occurred while accessing ${pq(i,"",1).url}: ${o}`;throw new de(r)}return i};Bu.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;dc(t,r)?dc(e,r)&&(s|=1):(s|=2,dc(e,r)||(s|=1)),i+=s}return i};Bu.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];dc(s,2)?dc(s,1)||(t|=r):(n|=r,dc(s,1)&&(t|=r))}return{x:t,y:n,level:i}};Bu.prototype.isValid=function(e){let t=this.getTileInformationFromQuadKey(e);if(l(t))return t!==null;let n=!0,i=e,o;for(;i.length>1;)if(o=i.substring(i.length-1),i=i.substring(0,i.length-1),t=this.getTileInformationFromQuadKey(i),l(t)){!t.hasSubtree()&&!t.hasChild(parseInt(o))&&(n=!1);break}else if(t===null){n=!1;break}return n};var C0e=new hi("decodeGoogleEarthEnterprisePacket");Bu.prototype.getQuadTreePacket=function(e,t,n){t=y(t,1),e=y(e,"");let o=pq(this,e,t,n).fetchArrayBuffer();if(!l(o))return;let r=this._tileInfo,s=this.key;return o.then(function(a){return C0e.scheduleTask({buffer:a,quadKey:e,type:"Metadata",key:s},[a]).then(function(u){let f,d=-1;if(e!==""){d=e.length+1;let h=u[e];f=r[e],f._bits|=h._bits,delete u[e]}let p=Object.keys(u);p.sort(function(h,A){return h.length-A.length});let g=p.length;for(let h=0;h<g;++h){let A=p[h];if(u[A]!==null){let C=uF.clone(u[A]),T=A.length;if(T===d)C.setParent(f);else if(T>1){let E=r[A.substring(0,A.length-1)];C.setParent(E)}r[A]=C}else r[A]=null}})})};Bu.prototype.populateSubtree=function(e,t,n,i){let o=Bu.tileXYToQuadKey(e,t,n);return hq(this,o,i)};function hq(e,t,n){let i=e._tileInfo,o=t,r=i[o];if(l(r)&&(!r.hasSubtree()||r.hasChildren()))return r;for(;r===void 0&&o.length>1;)o=o.substring(0,o.length-1),r=i[o];let s,a=e._subtreePromises,c=a[o];if(l(c))return c.then(function(){return s=new Ho({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),hq(e,t,s)});if(!l(r)||!r.hasSubtree())return Promise.reject(new de(`Couldn't load metadata for tile ${t}`));if(c=e.getQuadTreePacket(o,r.cnodeVersion,n),!!l(c))return a[o]=c,c.then(function(){return s=new Ho({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),hq(e,t,s)}).finally(function(){delete a[o]})}Bu.prototype.getTileInformation=function(e,t,n){let i=Bu.tileXYToQuadKey(e,t,n);return this._tileInfo[i]};Bu.prototype.getTileInformationFromQuadKey=function(e){return this._tileInfo[e]};function pq(e,t,n,i){return e._resource.getDerivedResource({url:`flatfile?q2-0${t}-q.${n.toString()}`,request:i})}var dq,mq;function T0e(e){let t=e._resource.getDerivedResource({url:"dbRoot.v5",queryParameters:{output:"proto"}});if(!l(mq)){let n=en("ThirdParty/google-earth-dbroot-parser.js"),i=window.cesiumGoogleEarthDbRootParser;mq=S0(n).then(function(){dq=window.cesiumGoogleEarthDbRootParser(Emt),l(i)?window.cesiumGoogleEarthDbRootParser=i:delete window.cesiumGoogleEarthDbRootParser})}return mq.then(function(){return t.fetchArrayBuffer()}).then(function(n){let i=dq.EncryptedDbRootProto.decode(new Uint8Array(n)),o=i.encryptionData,r=o.byteOffset,s=r+o.byteLength,a=e.key=o.buffer.slice(r,s);o=i.dbrootData,r=o.byteOffset,s=r+o.byteLength;let c=o.buffer.slice(r,s);return C0e.scheduleTask({buffer:c,type:"DbRoot",key:a},[c])}).then(function(n){let i=dq.DbRootProto.decode(new Uint8Array(n.buffer));if(e.imageryPresent=y(i.imageryPresent,e.imageryPresent),e.protoImagery=i.protoImagery,e.terrainPresent=y(i.terrainPresent,e.terrainPresent),l(i.endSnippet)&&l(i.endSnippet.model)){let a=i.endSnippet.model;e.negativeAltitudeExponentBias=y(a.negativeAltitudeExponentBias,e.negativeAltitudeExponentBias),e.negativeAltitudeThreshold=y(a.compressedNegativeAltitudeThreshold,e.negativeAltitudeThreshold)}l(i.databaseVersion)&&(e._quadPacketVersion=y(i.databaseVersion.quadtreeVersion,e._quadPacketVersion));let o=e.providers,r=y(i.providerInfo,[]),s=r.length;for(let a=0;a<s;++a){let c=r[a],u=c.copyrightString;l(u)&&(o[c.providerId]=new It(u.value))}}).catch(function(){console.log(`Failed to retrieve ${t.url}. Using defaults.`),e.key=Smt})}var _m=Bu;var E0e=So(fq(),1);function _q(){this._image=new Image}_q.prototype.isReady=function(){return!0};_q.prototype.shouldDiscardImage=function(e){return e===this._image};function gC(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=new zi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new le(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new It(t)),this._credit=t,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=23,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new _q),this._errorEvent=new ge,this._ready=!1;let n=this,i,o;if(l(e.url)){$("GoogleEarthEnterpriseImageryProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead.");let r=we.createIfNeeded(e.url);o=new _m(r)}l(e.metadata)&&($("GoogleEarthEnterpriseImageryProvider options.metadata","options.metadata was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead."),o=e.metadata),this._metadata=o,l(o)&&(this._readyPromise=o.readyPromise.then(function(r){if(!o.imageryPresent){let s=new de(`The server ${o.url} doesn't have imagery`);return i=yi.reportError(i,n,n._errorEvent,s.message,void 0,void 0,void 0,s),Promise.reject(s)}return yi.reportSuccess(i),n._ready=r,r}).catch(function(r){return i=yi.reportError(i,n,n._errorEvent,r.message,void 0,void 0,void 0,r),Promise.reject(r)}))}Object.defineProperties(gC.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.ready","GoogleEarthEnterpriseImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead."),this._ready}},readyPromise:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.readyPromise","GoogleEarthEnterpriseImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}},defaultAlpha:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultAlpha","GoogleEarthEnterpriseImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultAlpha","GoogleEarthEnterpriseImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultNightAlpha","GoogleEarthEnterpriseImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultNightAlpha","GoogleEarthEnterpriseImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultDayAlpha","GoogleEarthEnterpriseImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultDayAlpha","GoogleEarthEnterpriseImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultBrightness","GoogleEarthEnterpriseImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultBrightness","GoogleEarthEnterpriseImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultContrast","GoogleEarthEnterpriseImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultContrast","GoogleEarthEnterpriseImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultHue","GoogleEarthEnterpriseImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultHue","GoogleEarthEnterpriseImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultSaturation","GoogleEarthEnterpriseImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultSaturation","GoogleEarthEnterpriseImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultGamma","GoogleEarthEnterpriseImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultGamma","GoogleEarthEnterpriseImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultMinificationFilter","GoogleEarthEnterpriseImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultMinificationFilter","GoogleEarthEnterpriseImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultMagnificationFilter","GoogleEarthEnterpriseImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultMagnificationFilter","GoogleEarthEnterpriseImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});gC.fromMetadata=function(e,t){if(!e.imageryPresent)throw new de(`The server ${e.url} doesn't have imagery`);let n=new gC(t);return n._metadata=e,n._ready=!0,n._readyPromise=Promise.resolve(!0),n};gC.prototype.getTileCredits=function(e,t,n){let i=this._metadata,o=i.getTileInformation(e,t,n);if(l(o)){let r=i.providers[o.imageryProvider];if(l(r))return[r]}};gC.prototype.requestImage=function(e,t,n,i){let o=this._tileDiscardPolicy._image,r=this._metadata,s=_m.tileXYToQuadKey(e,t,n),a=r.getTileInformation(e,t,n);if(!l(a)){if(r.isValid(s)){let u=new Ho({throttle:i.throttle,throttleByServer:i.throttleByServer,type:i.type,priorityFunction:i.priorityFunction});r.populateSubtree(e,t,n,u);return}return Promise.resolve(o)}if(!a.hasImagery())return Promise.resolve(o);let c=wmt(this,a,e,t,n,i).fetchArrayBuffer();if(l(c))return c.then(function(u){lF(r.key,u);let f=new Uint8Array(u),d,p=r.protoImagery;if((!l(p)||!p)&&(d=vmt(f)),!l(d)&&(!l(p)||p)){let g=Dmt(f);d=g.imageType,f=g.imageData}return!l(d)||!l(f)?o:TA({uint8Array:f,format:d,flipY:!0})})};gC.prototype.pickFeatures=function(e,t,n,i,o){};function wmt(e,t,n,i,o,r){let s=_m.tileXYToQuadKey(n,i,o),a=t.imageryVersion;return a=l(a)&&a>0?a:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1-0${s}-i.${a.toString()}`,request:r})}function vmt(e){let t="JFIF";if(e[6]===t.charCodeAt(0)&&e[7]===t.charCodeAt(1)&&e[8]===t.charCodeAt(2)&&e[9]===t.charCodeAt(3))return"image/jpeg";let n="PNG";if(e[1]===n.charCodeAt(0)&&e[2]===n.charCodeAt(1)&&e[3]===n.charCodeAt(2))return"image/png"}function Dmt(e){let t=E0e.Reader.create(e),n=t.len,i={};for(;t.pos<n;){let s=t.uint32(),a;switch(s>>>3){case 1:i.imageType=t.uint32();break;case 2:i.imageData=t.bytes();break;case 3:i.alphaType=t.uint32();break;case 4:i.imageAlpha=t.bytes();break;case 5:if(a=i.copyrightIds,l(a)||(a=i.copyrightIds=[]),(s&7)===2){let c=t.uint32()+t.pos;for(;t.pos<c;)a.push(t.uint32())}else a.push(t.uint32());break;default:t.skipType(s&7);break}}let o=i.imageType;if(l(o))switch(o){case 0:i.imageType="image/jpeg";break;case 4:i.imageType="image/png";break;default:throw new de("GoogleEarthEnterpriseImageryProvider: Unsupported image type.")}let r=i.alphaType;return l(r)&&r!==0&&(console.log("GoogleEarthEnterpriseImageryProvider: External alpha not supported."),delete i.alphaType,delete i.imageAlpha),i}var gq=gC;var Imt=new z(1,1,1,.4),Pmt=new z(0,1,0,.05),Omt=new z(0,.5,0,.2);function yC(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new zi({ellipsoid:e.ellipsoid}),this._cells=y(e.cells,8),this._color=y(e.color,Imt),this._glowColor=y(e.glowColor,Pmt),this._glowWidth=y(e.glowWidth,6),this._backgroundColor=y(e.backgroundColor,Omt),this._errorEvent=new ge,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._canvasSize=y(e.canvasSize,256),this._canvas=this._createGridCanvas(),this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(yC.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("GridImageryProvider.ready","GridImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("GridImageryProvider.readyPromise","GridImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}},defaultAlpha:{get:function(){return $("GridImageryProvider.defaultAlpha","GridImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("GridImageryProvider.defaultAlpha","GridImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("GridImageryProvider.defaultNightAlpha","GridImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("GridImageryProvider.defaultNightAlpha","GridImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("GridImageryProvider.defaultDayAlpha","GridImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("GridImageryProvider.defaultDayAlpha","GridImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("GridImageryProvider.defaultBrightness","GridImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("GridImageryProvider.defaultBrightness","GridImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("GridImageryProvider.defaultContrast","GridImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("GridImageryProvider.defaultContrast","GridImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("GridImageryProvider.defaultHue","GridImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("GridImageryProvider.defaultHue","GridImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("GridImageryProvider.defaultSaturation","GridImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("GridImageryProvider.defaultSaturation","GridImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("GridImageryProvider.defaultGamma","GridImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("GridImageryProvider.defaultGamma","GridImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("GridImageryProvider.defaultMinificationFilter","GridImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("GridImageryProvider.defaultMinificationFilter","GridImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("GridImageryProvider.defaultMagnificationFilter","GridImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("GridImageryProvider.defaultMagnificationFilter","GridImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});yC.prototype._drawGrid=function(e){let n=this._canvasSize;for(let i=0;i<=this._cells;++i){let r=1+i/this._cells*(n-1);e.moveTo(r,0),e.lineTo(r,n),e.moveTo(0,r),e.lineTo(n,r)}e.stroke()};yC.prototype._createGridCanvas=function(){let e=document.createElement("canvas");e.width=this._canvasSize,e.height=this._canvasSize;let t=0,n=this._canvasSize,i=e.getContext("2d"),o=this._backgroundColor.toCssColorString();i.fillStyle=o,i.fillRect(t,t,n,n);let r=this._glowColor.toCssColorString();i.strokeStyle=r,i.lineWidth=this._glowWidth,i.strokeRect(t,t,n,n),this._drawGrid(i),i.lineWidth=this._glowWidth*.5,i.strokeRect(t,t,n,n),this._drawGrid(i);let s=this._color.toCssColorString();return i.strokeStyle=s,i.lineWidth=2,i.strokeRect(t,t,n,n),i.lineWidth=1,this._drawGrid(i),e};yC.prototype.getTileCredits=function(e,t,n){};yC.prototype.requestImage=function(e,t,n,i){return Promise.resolve(this._canvas)};yC.prototype.pickFeatures=function(e,t,n,i,o){};var yq=yC;function Aq(e,t){this._parent=e,this._dataProvider=e._dataProvider,this._layer=e._layer,l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${t}`}):this._resource=this._parent.resource.getDerivedResource({url:t})}Object.defineProperties(Aq.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}}});Aq.prototype.load=async function(){return this._data=await AC.loadJson(this._resource,this._dataProvider._traceFetches),this._data};var fF=Aq;function CS(e,t){this._storageInfo=t,this._parent=e,this._dataProvider=e._dataProvider;let n=`attributes/${t.key}/0`;l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${n}`}):this._resource=this._parent.resource.getDerivedResource({url:n})}Object.defineProperties(CS.prototype,{resource:{get:function(){return this._resource}},header:{get:function(){return this._header}},values:{get:function(){return l(this._values)&&l(this._values.attributeValues)?this._values.attributeValues:[]}},name:{get:function(){return this._storageInfo.name}}});function Mmt(e){return e==="UInt8"||e==="Int8"?1:e==="UInt16"||e==="Int16"?2:e==="UInt32"||e==="Int32"||e==="Oid32"||e==="Float32"?4:e==="UInt64"||e==="Int64"||e==="Float64"?8:0}CS.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){let n=new DataView(t),i=!0;if(n.getUint8(0)==="{".charCodeAt(0)&&new TextDecoder().decode(t).includes("404")&&(i=!1,console.error(`Failed to load: ${e.resource.url}`)),i){e._data=t;let o=e._parseHeader(n),r=Mmt(e._storageInfo.attributeValues.valueType);r>0&&(o=Math.ceil(o/r)*r),e._parseBody(n,o)}})};CS.prototype._parseValue=function(e,t,n){let i;if(t==="UInt8")i=e.getUint8(n),n+=1;else if(t==="Int8")i=e.getInt8(n),n+=1;else if(t==="UInt16")i=e.getUint16(n,!0),n+=2;else if(t==="Int16")i=e.getInt16(n,!0),n+=2;else if(t==="UInt32")i=e.getUint32(n,!0),n+=4;else if(t==="Oid32")i=e.getUint32(n,!0),n+=4;else if(t==="Int32")i=e.getInt32(n,!0),n+=4;else if(t==="UInt64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);i=o+Math.pow(2,32)*r,n+=8}else if(t==="Int64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);r<Math.pow(2,31)?i=o+Math.pow(2,32)*r:i=o+Math.pow(2,32)*(r-Math.pow(2,32)),n+=8}else t==="Float32"?(i=e.getFloat32(n,!0),n+=4):t==="Float64"?(i=e.getFloat64(n,!0),n+=8):t==="String"&&(i=String.fromCharCode(e.getUint8(n)),n+=1);return{value:i,offset:n}};CS.prototype._parseHeader=function(e){let t=0;this._header={};for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n],o=this._parseValue(e,i.valueType,t);this._header[i.property]=o.value,t=o.offset}return t};CS.prototype._parseBody=function(e,t){this._values={};for(let n=0;n<this._storageInfo.ordering.length;n++){let i=this._storageInfo.ordering[n],o=this._storageInfo[i];if(l(o)){this._values[i]=[];for(let r=0;r<this._header.count;++r)if(o.valueType!=="String"){let s=this._parseValue(e,o.valueType,t);this._values[i].push(s.value),t=s.offset}else{let s=this._values.attributeByteCounts[r],a="";for(let c=0;c<s;++c){let u=this._parseValue(e,o.valueType,t);u.value.charCodeAt(0)!==0&&(a+=u.value),t=u.offset}this._values[i].push(a)}}}};var dF=CS;function mF(e,t){let n=e._dataProvider,i=e._layer,o;l(e._nodeIndex)?o=i.resource.getDerivedResource({url:`nodes/${e._data.mesh.geometry.resource}/${t}`}):o=e.resource.getDerivedResource({url:t}),this._parent=e,this._dataProvider=n,this._layer=i,this._resource=o,this._customAttributes=void 0}Object.defineProperties(mF.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},customAttributes:{get:function(){return this._customAttributes}}});mF.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){return e._data=t,t})};var Rmt=new m,Bmt=new m,Lmt=new m,Nmt=new m,Fmt=new m;function xq(e,t,n,i){let o=m.subtract(i,n,Rmt),r=m.cross(o,m.subtract(e,n,Bmt),Nmt),s=m.cross(o,m.subtract(t,n,Lmt),Fmt);return m.dot(r,s)>=0}var Umt=new m,Vmt=new m,kmt=new m,zmt=new m,Hmt=new m,Gmt=new m,Wmt=new m,jmt=new m,Ymt=new m,qmt=new m;mF.prototype.getClosestPointIndexOnTriangle=function(e,t,n){if(l(this._customAttributes)&&l(this._customAttributes.positions)){let i=new m(e,t,n);i.x-=this._customAttributes.cartesianCenter.x,i.y-=this._customAttributes.cartesianCenter.y,i.z-=this._customAttributes.cartesianCenter.z,Z.multiplyByVector(this._customAttributes.parentRotation,i,i);let o=Number.MAX_VALUE,r,s,a,c,u=this._customAttributes.positions,f=this._customAttributes.indices,d;l(f)?d=f.length:d=u.length/3;for(let p=0;p<d;p++){let g,h,A;l(f)?(g=f[p],h=f[p+1],A=f[p+2]):(g=p*3,h=p*3+1,A=p*3+2);let x=m.fromElements(u[g*3],u[g*3+1],u[g*3+2],Umt),C=m.fromElements(u[h*3],u[h*3+1],u[h*3+2],Vmt),T=new m(u[A*3],u[A*3+1],u[A*3+2],kmt);if(!xq(i,x,C,T)||!xq(i,C,x,T)||!xq(i,T,x,C))continue;let E=m.subtract(C,x,zmt),S=m.subtract(T,x,Hmt),v=m.cross(E,S,Gmt);if(m.magnitude(v)===0)continue;let D=m.normalize(v,Wmt),O=m.subtract(i,x,jmt),M=Math.abs(m.dot(O,D));if(M<o){o=M,r=p;let L=m.magnitudeSquared(m.subtract(i,x,O)),N=m.magnitudeSquared(m.subtract(i,C,Ymt)),_=m.magnitudeSquared(m.subtract(i,T,qmt));L<N&&L<_?(a=g,c=x,s=L):N<_?(a=h,c=C,s=N):(a=A,c=T,s=_)}}if(l(r))return{index:a,distanceSquared:s,distance:Math.sqrt(s),queriedPosition:i,closestPosition:m.clone(c)}}return{index:-1,distanceSquared:Number.Infinity,distance:Number.Infinity}};mF.prototype._generateGltf=function(e,t,n,i,o,r){let s={pbrMetallicRoughness:{metallicFactor:0},doubleSided:!0,name:"Material"},a=!1,c,u="";if(l(this._parent._data.mesh)&&l(this._layer._data.materialDefinitions)){let A=this._parent._data.mesh.material.definition;if(A>=0&&A<this._layer._data.materialDefinitions.length&&(c=this._layer._data.materialDefinitions[A],s=c,l(s.pbrMetallicRoughness)&&l(s.pbrMetallicRoughness.baseColorTexture))){a=!0,s.pbrMetallicRoughness.baseColorTexture.index=0;let x="0";if(l(this._layer._data.textureSetDefinitions))for(let C=0;C<this._layer._data.textureSetDefinitions.length;C++){let T=this._layer._data.textureSetDefinitions[C];for(let E=0;E<T.formats.length;E++){let S=T.formats[E];if(S.format==="jpg"){x=S.name;break}}}l(this._parent._data.mesh)&&this._parent._data.mesh.material.resource>=0&&(u=this._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.material.resource}/textures/${x}`}).url)}}else l(this._parent._data.textureData)&&(a=!0,u=this._parent.resource.getDerivedResource({url:`${this._parent._data.textureData[0].href}`}).url,s.pbrMetallicRoughness.baseColorTexture={index:0});let f=[],d=[],p=[];return a&&(f=[{sampler:0,source:0}],d=[{uri:u}],p=[{magFilter:9729,minFilter:9986,wrapS:10497,wrapT:10497}]),{scene:0,scenes:[{nodes:e}],nodes:t,meshes:n,buffers:i,bufferViews:o,accessors:r,materials:[s],textures:f,images:d,samplers:p,asset:{version:"2.0"}}};var TS=mF;function Fl(e,t,n){let i,o,r,s;n?(i=0,o=e):(i=e._level+1,o=e._layer),typeof t=="number"?r=t:s=e.resource.getDerivedResource({url:`${t}/`}),this._parent=e,this._dataProvider=e._dataProvider,this._isRoot=n,this._level=i,this._layer=o,this._nodeIndex=r,this._resource=s,this._isLoading=!1,this._tile=void 0,this._data=void 0,this._geometryData=[],this._featureData=[],this._fields={},this._children=[],this._childrenReadyPromise=void 0,this._globalTransform=void 0,this._inverseGlobalTransform=void 0,this._inverseRotationMatrix=void 0}Object.defineProperties(Fl.prototype,{resource:{get:function(){return this._resource}},layer:{get:function(){return this._layer}},parent:{get:function(){return this._parent}},children:{get:function(){return this._children}},geometryData:{get:function(){return this._geometryData}},featureData:{get:function(){return this._featureData}},fields:{get:function(){return this._fields}},tile:{get:function(){return this._tile}},data:{get:function(){return this._data}}});Fl.prototype.load=async function(){let e=this;function t(){if(!e._isRoot){let o=e._create3DTileDefinition();e._tile=new pf(e._layer._tileset,e._dataProvider.resource,o,e._parent._tile),e._tile._i3sNode=e}}if(!l(this._nodeIndex)){let o=await AC.loadJson(this._resource,this._dataProvider._traceFetches);e._data=o,t();return}let n=await this._layer._getNodeInNodePages(this._nodeIndex);e._data=n;let i;e._isRoot?i="nodes/root/":l(n.mesh)&&(i=`../${n.mesh.geometry.resource}/`),l(i)&&(e._resource=e._parent.resource.getDerivedResource({url:i})),t()};Fl.prototype.loadFields=function(){let e=this._layer._data.attributeStorageInfo,t=this;function n(o,r){let s=new dF(t,o[r]);return t._fields[s._storageInfo.name]=s,s.load()}let i=[];if(l(e))for(let o=0;o<e.length;o++)i.push(n(e,o));return Promise.all(i)};Fl.prototype.getFieldsForPickedPosition=function(e){let t=this.geometryData[0];if(!l(t.customAttributes.featureIndex))return{};let n=t.getClosestPointIndexOnTriangle(e.x,e.y,e.z);if(n.index===-1||n.index>t.customAttributes.featureIndex.length)return{};let i=t.customAttributes.featureIndex[n.index];return this.getFieldsForFeature(i)};Fl.prototype.getFieldsForFeature=function(e){let t={};for(let n in this.fields)if(this.fields.hasOwnProperty(n)){let i=this.fields[n];e>=0&&e<i.values.length&&(t[i.name]=i.values[e])}return t};Fl.prototype._loadChildren=function(){let e=this;if(l(this._childrenReadyPromise))return this._childrenReadyPromise;let t=[];if(l(e._data.children))for(let n=0;n<e._data.children.length;n++){let i=e._data.children[n],o=new Fl(e,y(i.href,i),!1);e._children.push(o),t.push(o.load())}return this._childrenReadyPromise=Promise.all(t).then(function(){for(let n=0;n<e._children.length;n++)e._tile.children.push(e._children[n]._tile)}),this._childrenReadyPromise};Fl.prototype._loadGeometryData=function(){let e=[];if(l(this._data.geometryData))for(let t=0;t<this._data.geometryData.length;t++){let n=new TS(this,this._data.geometryData[t].href);this._geometryData.push(n),e.push(n.load())}else if(l(this._data.mesh)){let t=this._layer._findBestGeometryBuffers(this._data.mesh.geometry.definition,["position","uv0"]),n=`./geometries/${t.bufferIndex}/`,i=new TS(this,n);i._geometryDefinitions=t.definition,i._geometryBufferInfo=t.geometryBufferInfo,this._geometryData.push(i),e.push(i.load())}return Promise.all(e)};Fl.prototype._loadFeatureData=function(){let e=[];if(l(this._data.featureData))for(let t=0;t<this._data.featureData.length;t++){let n=new fF(this,this._data.featureData[t].href);this._featureData.push(n),e.push(n.load())}return Promise.all(e)};Fl.prototype._clearGeometryData=function(){this._geometryData=[]};Fl.prototype._create3DTileDefinition=function(){let e=this._data.obb,t=this._data.mbs;if(!l(e)&&!l(t)){console.error("Failed to load I3S node. Bounding volume is required.");return}let n;if(l(e)?n=he.fromDegrees(e.center[0],e.center[1],e.center[2]):n=he.fromDegrees(t[0],t[1],t[2]),l(this._dataProvider._geoidDataList)&&l(n))for(let C=0;C<this._dataProvider._geoidDataList.length;C++){let T=this._dataProvider._geoidDataList[C],E=T.projection.project(n);if(E.x>T.nativeExtent.west&&E.x<T.nativeExtent.east&&E.y>T.nativeExtent.south&&E.y<T.nativeExtent.north){n.height+=Kmt(E.x,E.y,T);break}}let i={},o,r=0;l(e)?(i={box:[0,0,0,e.halfSize[0],0,0,0,e.halfSize[1],0,0,0,e.halfSize[2]]},r=Math.max(Math.max(this._data.obb.halfSize[0],this._data.obb.halfSize[1]),this._data.obb.halfSize[2]),o=oe.WGS84.cartographicToCartesian(n)):(i={sphere:[0,0,0,t[3]]},o=oe.WGS84.cartographicToCartesian(n),r=this._data.mbs[3]),r*=2;let s=1/0;if(l(this._data.lodThreshold))if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThresholdSQ"){let C=Math.sqrt(this._data.lodThreshold/(Math.PI*.25));s=r/C}else if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThreshold"){let C=this._data.lodThreshold;s=r/C}else console.error("Invalid lodSelectionMetricType in Layer");else if(l(this._data.lodSelection))for(let C=0;C<this._data.lodSelection.length;C++)this._data.lodSelection[C].metricType==="maxScreenThreshold"&&(s=r/this._data.lodSelection[C].maxError);s===1/0&&(s=1e5);let a=s*16,c=new Fa(0,0,0),u=Rt.headingPitchRollQuaternion(o,c);l(this._data.obb)&&(u=new Ne(this._data.obb.quaternion[0],this._data.obb.quaternion[1],this._data.obb.quaternion[2],this._data.obb.quaternion[3]));let f=Z.fromQuaternion(u),d=Z.inverse(f,new Z),p=new B(f[0],f[1],f[2],0,f[3],f[4],f[5],0,f[6],f[7],f[8],0,o.x,o.y,o.z,1),g=B.inverse(p,new B),h=B.clone(p);l(this._parent._globalTransform)&&B.multiply(p,this._parent._inverseGlobalTransform,h),this._globalTransform=p,this._inverseGlobalTransform=g,this._inverseRotationMatrix=d;let A=[];for(let C=0;C<this._children.length;C++)A.push(this._children[C]._create3DTileDefinition());return{children:A,refine:"REPLACE",boundingVolume:i,transform:[h[0],h[4],h[8],h[12],h[1],h[5],h[9],h[13],h[2],h[6],h[10],h[14],h[3],h[7],h[11],h[15]],content:{uri:l(this._resource)?this._resource.url:void 0},geometricError:a}};Fl.prototype._createI3SDecoderTask=async function(e,t){let n=t.geometryData._parent._data,i=t.geometryData._parent._inverseRotationMatrix,o=0,r=0,s=0;l(n.obb)?(o=n.obb.center[0],r=n.obb.center[1],s=n.obb.center[2]):l(n.mbs)&&(o=n.mbs[0],r=n.mbs[1],s=n.mbs[2]);let a=Z.fromRotationX(-P.PI_OVER_TWO),c=new Z;Z.multiply(a,i,c);let u=he.fromDegrees(o,r,s),f=oe.WGS84.cartographicToCartesian(u),d={binaryData:t.geometryData._data,featureData:l(t.featureData)&&l(t.featureData[0])?t.featureData[0].data:void 0,schema:t.defaultGeometrySchema,bufferInfo:t.geometryData._geometryBufferInfo,ellipsoidRadiiSquare:oe.WGS84.radiiSquared,url:t.url,geoidDataList:t.geometryData._dataProvider._geoidDataList,cartographicCenter:u,cartesianCenter:f,parentRotation:c},p=[];return e.scheduleTask(d,p)};Fl.prototype._createContentURL=async function(){let e={scene:0,scenes:[{nodes:[0]}],nodes:[{name:"singleNode"}],meshes:[],buffers:[],bufferViews:[],accessors:[],materials:[],textures:[],images:[],samplers:[],asset:{version:"2.0"}},t=await this._dataProvider.getDecoderTaskProcessor(),n=[this._loadGeometryData()];this._dataProvider.legacyVersion16&&n.push(this._loadFeatureData());let i=this;return Promise.all(n).then(function(){let o=Promise.resolve();if(l(i._geometryData)&&i._geometryData.length>0){let r={geometryData:i._geometryData[0],featureData:i._featureData,defaultGeometrySchema:i._layer._data.store.defaultGeometrySchema,url:i._geometryData[0].resource.url,tile:i._tile},s=i._createI3SDecoderTask(t,r);if(!l(s))return;o=s.then(function(a){e=r.geometryData._generateGltf(a.meshData.nodesInScene,a.meshData.nodes,a.meshData.meshes,a.meshData.buffers,a.meshData.bufferViews,a.meshData.accessors),i._geometryData[0]._customAttributes=a.meshData._customAttributes})}return o.then(function(){let r=i._dataProvider._binarizeGltf(e),s=new Blob([r],{type:"application/binary"});return URL.createObjectURL(s)})})};pf.prototype._hookedRequestContent=pf.prototype.requestContent;pf.prototype.requestContent=function(){if(!this.tileset._isI3STileSet)return this._hookedRequestContent();if(!this._isLoading)return this._isLoading=!0,this._i3sNode._createContentURL().then(e=>{if(!l(e)){this._isLoading=!1;return}return this._contentResource=new we({url:e}),this._hookedRequestContent()}).then(e=>(this._isLoading=!1,e))};function Xmt(e,t,n,i,o,r){let s=n*(1-e)+i*e,a=o*(1-e)+r*e;return s*(1-t)+a*t}function Rz(e,t,n,i){let o=e+t*n;return i[o]}function Kmt(e,t,n){let i=n.nativeExtent,o=(e-i.west)/(i.east-i.west)*(n.width-1),r=(t-i.south)/(i.north-i.south)*(n.height-1),s=Math.floor(o),a=Math.floor(r);o-=s,r-=a;let c=s<n.width?s+1:s,u=a<n.height?a+1:a;a=n.height-1-a,u=n.height-1-u;let f=Rz(s,a,n.width,n.buffer),d=Rz(c,a,n.width,n.buffer),p=Rz(s,u,n.width,n.buffer),g=Rz(c,u,n.width,n.buffer),h=Xmt(o,r,f,d,p,g);return h=h*n.scale+n.offset,h}Object.defineProperties(pf.prototype,{i3sNode:{get:function(){return this._i3sNode}}});var ES=Fl;function zf(e,t,n){this._dataProvider=e,l(t.href)||(t.href=`./layers/${n}`);let i=this._dataProvider.resource.getUrlComponent(),o="";i.match(/layers\/\d/)?o=`${i}`.replace(/\/+$/,""):o=`${i}`.replace(/\/?$/,"/").concat(`${t.href}`),this._version=t.store.version;let r=this._version.split(".");this._majorVersion=parseInt(r[0]),this._minorVersion=r.length>1?parseInt(r[1]):0,this._resource=new we({url:o}),this._resource.setQueryParameters(this._dataProvider.resource.queryParameters),this._resource.appendForwardSlash(),this._data=t,this._rootNode=void 0,this._nodePages={},this._nodePageFetches={},this._extent=void 0,this._tileset=void 0,this._geometryDefinitions=void 0,this._computeGeometryDefinitions(!0),this._computeExtent()}Object.defineProperties(zf.prototype,{resource:{get:function(){return this._resource}},rootNode:{get:function(){return this._rootNode}},tileset:{get:function(){return this._tileset}},data:{get:function(){return this._data}},version:{get:function(){return this._version}},majorVersion:{get:function(){return this._majorVersion}},minorVersion:{get:function(){return this._minorVersion}},legacyVersion16:{get:function(){if(l(this.version))return this.majorVersion<1||this.majorVersion===1&&this.minorVersion<=6}}});zf.prototype.load=async function(){if(this._data.spatialReference.wkid!==4326)throw new de(`Unsupported spatial reference: ${this._data.spatialReference.wkid}`);if(await this._dataProvider.loadGeoidData(),await this._loadRootNode(),await this._create3DTileset(),this._rootNode._tile=this._tileset._root,this._tileset._root._i3sNode=this._rootNode,this.legacyVersion16)return this._rootNode._loadChildren()};zf.prototype._computeGeometryDefinitions=function(e){if(this._geometryDefinitions=[],l(this._data.geometryDefinitions))for(let t=0;t<this._data.geometryDefinitions.length;t++){let n=[],i=this._data.geometryDefinitions[t].geometryBuffers;for(let o=0;o<i.length;o++){let r=i[o],s=[],a=!1;if(l(r.compressedAttributes)&&e){a=!0;let c=r.compressedAttributes.attributes;for(let u=0;u<c.length;u++)s.push(c[u])}else for(let c in r)c!=="offset"&&s.push(c);n.push({compressed:a,attributes:s,index:i.indexOf(r)})}n.sort(function(o,r){return o.compressed&&!r.compressed?-1:!o.compressed&&r.compressed?1:o.attributes.length-r.attributes.length}),this._geometryDefinitions.push(n)}};zf.prototype._findBestGeometryBuffers=function(e,t){let n=this._geometryDefinitions[e];if(l(n))for(let i=0;i<n.length;++i){let o=n[i],r=!1,s=o.attributes;for(let a=0;a<t.length;a++)if(!s.includes(t[a])){r=!0;break}if(!r)return{bufferIndex:o.index,definition:n,geometryBufferInfo:o}}return 0};zf.prototype._loadRootNode=function(){if(l(this._data.nodePages)){let e=0;l(this._data.nodePages.rootIndex)&&(e=this._data.nodePages.rootIndex),this._rootNode=new ES(this,e,!0)}else this._rootNode=new ES(this,this._data.store.rootNode,!0);return this._rootNode.load()};zf.prototype._getNodeInNodePages=function(e){let t=Math.floor(e/this._data.nodePages.nodesPerPage),n=e%this._data.nodePages.nodesPerPage,i=this;return this._loadNodePage(t).then(function(){return i._nodePages[t][n]})};zf._fetchJson=function(e){return e.fetchJson()};zf.prototype._loadNodePage=function(e){let t=this;if(!l(this._nodePageFetches[e])){let n=this.resource.getDerivedResource({url:`nodepages/${e}/`}),i=zf._fetchJson(n).then(function(o){return l(o.error)&&o.error.code!==200?Promise.reject(o.error):(t._nodePages[e]=o.nodes,o)});this._nodePageFetches[e]=i}return this._nodePageFetches[e]};zf.prototype._computeExtent=function(){l(this._data.fullExtent)?this._extent=le.fromDegrees(this._data.fullExtent.xmin,this._data.fullExtent.ymin,this._data.fullExtent.xmax,this._data.fullExtent.ymax):l(this._data.store.extent)&&(this._extent=le.fromDegrees(this._data.store.extent[0],this._data.store.extent[1],this._data.store.extent[2],this._data.store.extent[3]))};zf.prototype._create3DTileset=async function(){let e={asset:{version:"1.0"},geometricError:Number.MAX_VALUE,root:this._rootNode._create3DTileDefinition()},t=new Blob([JSON.stringify(e)],{type:"application/json"}),n=URL.createObjectURL(t),i={};if(l(this._dataProvider._cesium3dTilesetOptions))for(let o in this._dataProvider._cesium3dTilesetOptions)this._dataProvider._cesium3dTilesetOptions.hasOwnProperty(o)&&(i[o]=this._dataProvider._cesium3dTilesetOptions[o]);this._tileset=await Ca.fromUrl(n,i),this._tileset.show=this._dataProvider.show,this._tileset._isI3STileSet=!0,this._tileset.tileUnload.addEventListener(function(o){o._i3sNode._clearGeometryData(),URL.revokeObjectURL(o._contentResource._url),o._contentResource=o._i3sNode.resource}),this._tileset.tileVisible.addEventListener(function(o){l(o._i3sNode)&&o._i3sNode._loadChildren()})};var Zy=zf;var S0e=So(b0e(),1);function Qr(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._show=y(e.show,!0),this._geoidTiledTerrainProvider=e.geoidTiledTerrainProvider,this._traceFetches=y(e.traceFetches,!1),this._cesium3dTilesetOptions=y(e.cesium3dTilesetOptions,y.EMPTY_OBJECT),this._layers=[],this._data=void 0,this._extent=void 0,this._geoidDataPromise=void 0,this._geoidDataList=void 0,this._decoderTaskProcessor=void 0,this._taskProcessorReadyPromise=void 0,l(e.url)&&($("I3SDataProvider options.url","I3SDataProvider constructor parameter options.url was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use I3SDataProvider.fromUrl instead."),this._readyPromise=void 0,this._ready=!1,this._resource=we.createIfNeeded(e.url),this._load())}Object.defineProperties(Qr.prototype,{name:{get:function(){return this._name}},show:{get:function(){return this._show},set:function(e){this._show=e;for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&(this._layers[t]._tileset.show=this._show)}},traceFetches:{get:function(){return this._traceFetches},set:function(e){this._traceFetches=e}},geoidTiledTerrainProvider:{get:function(){return this._geoidTiledTerrainProvider}},layers:{get:function(){return this._layers}},data:{get:function(){return this._data}},extent:{get:function(){return this._extent}},readyPromise:{get:function(){return $("I3SDataProvider.readyPromise","I3SDataProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use I3SDataProvider.fromUrl instead."),this._readyPromise}},ready:{get:function(){return $("I3SDataProvider.ready","I3SDataProvider.ready was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use I3SDataProvider.fromUrl instead."),this._ready}},resource:{get:function(){return this._resource}}});Qr.prototype.destroy=function(){for(let e=0;e<this._layers.length;e++)l(this._layers[e]._tileset)&&this._layers[e]._tileset.destroy();return ue(this)};Qr.prototype.isDestroyed=function(){return!1};Qr.prototype.update=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.update(e)};Qr.prototype.prePassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.prePassesUpdate(e)};Qr.prototype.postPassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.postPassesUpdate(e)};Qr.prototype.updateForPass=function(e,t){for(let n=0;n<this._layers.length;n++)l(this._layers[n]._tileset)&&this._layers[n]._tileset.updateForPass(e,t)};Qr.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e),i=await Qr.loadJson(n),o=new Qr(t);if(o._resource=n,o._data=i,l(i.layers))for(let s=0;s<i.layers.length;s++){let a=new Zy(o,i.layers[s],s);o._layers.push(a)}else{let s=new Zy(o,i,i.id);o._layers.push(s)}o._computeExtent();let r=[];for(let s=0;s<o._layers.length;s++)r.push(o._layers[s].load());return await Promise.all(r),o._ready=!0,o._readyPromise=Promise.resolve(o),o};Qr.prototype._load=function(){let e=this;return this._readyPromise=Qr.loadJson(this._resource,this._traceFetches).then(function(t){if(e._data=t,l(t.layers))for(let i=0;i<t.layers.length;i++){let o=new Zy(e,t.layers[i],i);e._layers.push(o)}else{let i=new Zy(e,t,t.id);e._layers.push(i)}e._computeExtent();let n=[];for(let i=0;i<e._layers.length;i++)n.push(e._layers[i].load());return Promise.all(n).then(function(){return e._ready=!0,e})}),this._readyPromise};Qr._fetchJson=function(e){return e.fetchJson()};Qr.loadJson=async function(e,t){t&&console.log("I3S FETCH:",e.url);let n=await Qr._fetchJson(e);if(l(n.error)){if(console.error("Failed to fetch I3S ",e.url),l(n.error.message)&&console.error(n.error.message),l(n.error.details))for(let i=0;i<n.error.details.length;i++)console.log(n.error.details[i]);throw new de(n.error)}return n};Qr.prototype._loadBinary=function(e){return this._traceFetches&&console.log("I3S FETCH:",e.url),e.fetchArrayBuffer()};Qr.prototype._binarizeGltf=function(e){let n=new TextEncoder().encode(JSON.stringify(e)),i=new Uint8Array(n.byteLength+20),o={magic:new Uint8Array(i.buffer,0,4),version:new Uint32Array(i.buffer,4,1),length:new Uint32Array(i.buffer,8,1),chunkLength:new Uint32Array(i.buffer,12,1),chunkType:new Uint32Array(i.buffer,16,1),chunkData:new Uint8Array(i.buffer,20,n.byteLength)};return o.magic[0]="g".charCodeAt(),o.magic[1]="l".charCodeAt(),o.magic[2]="T".charCodeAt(),o.magic[3]="F".charCodeAt(),o.version[0]=2,o.length[0]=i.byteLength,o.chunkLength[0]=n.byteLength,o.chunkType[0]=1313821514,o.chunkData.set(n),i};Qr.prototype.getDecoderTaskProcessor=function(){if(l(this._taskProcessorReadyPromise))return this._taskProcessorReadyPromise;if(!l(this._decoderTaskProcessor)){let e=new hi("decodeI3S");this._taskProcessorReadyPromise=e.initWebAssemblyModule({modulePath:"ThirdParty/Workers/draco_decoder_nodejs.js",wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(()=>e),this._decoderTaskProcessor=e}return this._taskProcessorReadyPromise};function Jmt(e,t){return Qmt(e,t)}var Zmt=new H;function Qmt(e,t){let n=e.tilingScheme,i=[],o={},r=e._lodCount,s=he.fromRadians(t.west,t.north),a=he.fromRadians(t.east,t.south),c=n.positionToTileXY(s,r),u=n.positionToTileXY(a,r);for(let d=c.x;d<=u.x;d++)for(let p=c.y;p<=u.y;p++){let g=H.fromElements(d,p,Zmt),h=g.toString();if(!o.hasOwnProperty(h)){let A={x:g.x,y:g.y,level:r,tilingScheme:n,terrainProvider:e,positions:[]};o[h]=A,i.push(A)}}let f=[];for(let d=0;d<i.length;++d){let p=i[d],g=p.terrainProvider.requestTileGeometry(p.x,p.y,p.level);f.push(g)}return Promise.all(f).then(function(d){let p=[];for(let g=0;g<d.length;g++){let h={tilingScheme:n,x:i[g].x,y:i[g].y,level:i[g].level},A=d[g],x="Geographic";n._projection instanceof vi&&(x="WebMercator");let C={projectionType:x,projection:n._projection,nativeExtent:n.tileXYToNativeRectangle(h.x,h.y,h.level),height:A._height,width:A._width,scale:A._structure.heightScale,offset:A._structure.heightOffset};if(A._encoding===Pf.LERC){let T=S0e.default.decode(A._buffer);C.buffer=T.pixels[0]}else C.buffer=A._buffer;p.push(C)}return p})}async function $mt(e){let t=e._geoidTiledTerrainProvider;if(!l(t)){console.log("No Geoid Terrain service provided - no geoid conversion will be performed.");return}try{let n=await Jmt(t,e._extent);e._geoidDataList=n}catch{console.log("Error retrieving Geoid Terrain tiles - no geoid conversion will be performed.")}}Qr.prototype.loadGeoidData=async function(){return l(this._geoidDataPromise)?this._geoidDataPromise:(this._geoidDataPromise=$mt(this),this._geoidDataPromise)};Qr.prototype._computeExtent=function(){let e;for(let t=0;t<this._layers.length;t++)if(l(this._layers[t]._extent)){let n=this._layers[t]._extent;l(e)?le.union(e,n,e):e=le.clone(n)}this._extent=e};var AC=Qr;var w0e=Object.freeze({UNLOADED:0,RECEIVING:1,RECEIVED:2,LOADED:3,FAILED:4,UNAVAILABLE:5});function Lz(e,t){this.spatialNode=e,this.keyframe=t,this.state=w0e.UNLOADED,this.metadatas=[],this.megatextureIndex=-1,this.priority=-Number.MAX_VALUE,this.highPriorityFrameNumber=-1}Lz.priorityComparator=function(e,t){return e.priority-t.priority};Lz.searchComparator=function(e,t){return e.keyframe-t.keyframe};Lz.LoadState=w0e;var Ki=Lz;function v0e(){}Object.defineProperties(v0e.prototype,{color:{get:fe.throwInstantiationError},intensity:{get:fe.throwInstantiationError}});var Cq=v0e;var eht=/\/$/,D0e=new It('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function bS(e){e=y(e,y.EMPTY_OBJECT);let t=e.styleId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=we.createIfNeeded(y(e.url,"https://api.mapbox.com/styles/v1/"));this._styleId=t,this._accessToken=n;let o=y(e.tilesize,512);this._tilesize=o;let r=y(e.username,"mapbox");this._username=r;let s=l(e.scaleFactor)?"@2x":"",a=i.getUrlComponent();eht.test(a)||(a+="/"),a+=`${this._username}/${t}/tiles/${this._tilesize}/{z}/{x}/{y}${s}`,i.url=a,i.setQueryParameters({access_token:n});let c;l(e.credit)?(c=e.credit,typeof c=="string"&&(c=new It(c))):c=D0e,this._resource=i,this._imageryProvider=new Bs({url:i,credit:c,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle}),this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(bS.prototype,{url:{get:function(){return this._imageryProvider.url}},ready:{get:function(){return $("MapboxStyleImageryProvider.ready","MapboxStyleImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._imageryProvider.ready}},readyPromise:{get:function(){return $("MapboxStyleImageryProvider.readyPromise","MapboxStyleImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._imageryProvider.readyPromise}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},defaultAlpha:{get:function(){return $("MapboxStyleImageryProvider.defaultAlpha","MapboxStyleImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("MapboxStyleImageryProvider.defaultAlpha","MapboxStyleImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("MapboxStyleImageryProvider.defaultNightAlpha","MapboxStyleImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("MapboxStyleImageryProvider.defaultNightAlpha","MapboxStyleImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("MapboxStyleImageryProvider.defaultDayAlpha","MapboxStyleImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("MapboxStyleImageryProvider.defaultDayAlpha","MapboxStyleImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("MapboxStyleImageryProvider.defaultBrightness","MapboxStyleImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("MapboxStyleImageryProvider.defaultBrightness","MapboxStyleImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("MapboxStyleImageryProvider.defaultContrast","MapboxStyleImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("MapboxStyleImageryProvider.defaultContrast","MapboxStyleImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("MapboxStyleImageryProvider.defaultHue","MapboxStyleImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("MapboxStyleImageryProvider.defaultHue","MapboxStyleImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("MapboxStyleImageryProvider.defaultSaturation","MapboxStyleImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("MapboxStyleImageryProvider.defaultSaturation","MapboxStyleImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("MapboxStyleImageryProvider.defaultGamma","MapboxStyleImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("MapboxStyleImageryProvider.defaultGamma","MapboxStyleImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("MapboxStyleImageryProvider.defaultMinificationFilter","MapboxStyleImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("MapboxStyleImageryProvider.defaultMinificationFilter","MapboxStyleImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("MapboxStyleImageryProvider.defaultMagnificationFilter","MapboxStyleImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("MapboxStyleImageryProvider.defaultMagnificationFilter","MapboxStyleImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});bS.prototype.getTileCredits=function(e,t,n){};bS.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};bS.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};bS._defaultCredit=D0e;var Tq=bS;function Qy(e,t,n,i,o){i===nn.UNSIGNED_SHORT&&(i=nn.FLOAT32);let r=e.floatingPointTexture;if(i===nn.FLOAT32&&!r)throw new de("Floating point texture not supported");let s;i===nn.FLOAT32||i===nn.FLOAT64?s=Je.FLOAT:i===nn.UINT8&&(s=Je.UNSIGNED_BYTE);let a;n===1?a=e.webgl2?ct.RED:ct.LUMINANCE:n===2?a=e.webgl2?ct.RG:ct.LUMINANCE_ALPHA:n===3?a=ct.RGB:n===4&&(a=ct.RGBA);let c=512*1024*1024,u=128*1024*1024;o=Math.min(y(o,u),c);let f=kt.maximumTextureSize,d=nn.getSizeInBytes(i),p=Math.floor(o/(n*d)),g=Math.min(f,P.previousPowerOfTwo(Math.floor(Math.sqrt(p)))),h=Math.ceil(Math.sqrt(t.x)),A=Math.ceil(t.z/h),x=h*t.x,C=A*t.y,T=Math.floor(g/x),E=Math.floor(g/C);if(T===0||E===0)throw new de("Tileset is too large to fit into megatexture");this.channelCount=n,this.componentType=i,this.voxelCountPerTile=m.clone(t,new m),this.maximumTileCount=T*E,this.regionCountPerMegatexture=new H(T,E),this.voxelCountPerRegion=new H(x,C),this.sliceCountPerRegion=new H(h,A),this.voxelSizeUv=new H(1/g,1/g),this.sliceSizeUv=new H(t.x/g,t.y/g),this.regionSizeUv=new H(x/g,C/g),this.texture=new Bt({context:e,pixelFormat:a,pixelDatatype:s,flipY:!1,width:g,height:g,sampler:new dn({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:cn.LINEAR,magnificationFilter:xi.LINEAR})});let S=nn.toComponentDatatype(i);this.tileVoxelDataTemp=X.createTypedArray(S,x*C*n),this.nodes=new Array(this.maximumTileCount);for(let v=0;v<this.maximumTileCount;v++)this.nodes[v]=new tht(v);for(let v=0;v<this.maximumTileCount;v++){let D=this.nodes[v];D.previousNode=v>0?this.nodes[v-1]:void 0,D.nextNode=v<this.maximumTileCount-1?this.nodes[v+1]:void 0}this.occupiedList=void 0,this.emptyList=this.nodes[0],this.occupiedCount=0}function tht(e){this.index=e,this.nextNode=void 0,this.previousNode=void 0}Qy.prototype.add=function(e){if(this.isFull())throw new fe("Trying to add when there are no empty spots");let t=this.emptyList;this.emptyList=this.emptyList.nextNode,l(this.emptyList)&&(this.emptyList.previousNode=void 0),t.nextNode=this.occupiedList,l(t.nextNode)&&(t.nextNode.previousNode=t),this.occupiedList=t;let n=t.index;return this.writeDataToTexture(n,e),this.occupiedCount++,n};Qy.prototype.remove=function(e){if(e<0||e>=this.maximumTileCount)throw new fe("Megatexture index out of bounds");let t=this.nodes[e];l(t.previousNode)&&(t.previousNode.nextNode=t.nextNode),l(t.nextNode)&&(t.nextNode.previousNode=t.previousNode),t.nextNode=this.emptyList,l(t.nextNode)&&(t.nextNode.previousNode=t),t.previousNode=void 0,this.emptyList=t,this.occupiedCount--};Qy.prototype.isFull=function(){return this.emptyList===void 0};Qy.getApproximateTextureMemoryByteLength=function(e,t,n,i){i===nn.UNSIGNED_SHORT&&(i=nn.FLOAT32);let o=nn.getSizeInBytes(i),r=e*t.x*t.y*t.z,s=Math.ceil(Math.sqrt(t.z)),a=Math.ceil(t.z/s),c=s*t.x,u=a*t.y,f=P.previousPowerOfTwo(Math.floor(Math.sqrt(r)));for(;;){let p=Math.floor(f/c),g=Math.floor(f/u);if(p*g>=e)break;f*=2}return f*f*n*o};Qy.prototype.writeDataToTexture=function(e,t){let n=t.constructor===Uint16Array?new Float32Array(t):t,i=this.voxelCountPerTile,o=this.sliceCountPerRegion,r=this.voxelCountPerRegion,s=this.channelCount,a=this.tileVoxelDataTemp;for(let A=0;A<i.z;A++){let x=A%o.x*i.x,C=Math.floor(A/o.x)*i.y;for(let T=0;T<i.y;T++)for(let E=0;E<i.x;E++){let S=A*i.y*i.x+T*i.x+E,v=(C+T)*r.x+(x+E);for(let D=0;D<s;D++)a[v*s+D]=n[S*s+D]}}let c=this.regionCountPerMegatexture,u=r.x,f=r.y,d=e%c.x*r.x,p=Math.floor(e/c.x)*r.y,h={source:{arrayBufferView:a,width:u,height:f},xOffset:d,yOffset:p};this.texture.copyFrom(h)};Qy.prototype.isDestroyed=function(){return!1};Qy.prototype.destroy=function(){return this.texture=this.texture&&this.texture.destroy(),ue(this)};var SS=Qy;function Eq(e){}Eq.prototype.isReady=function(){return!0};Eq.prototype.shouldDiscardImage=function(e){return!1};var bq=Eq;var nht=new It("MapQuest, Open Street Map and contributors, CC-BY-SA");function Nz(e){e=y(e,y.EMPTY_OBJECT);let t=we.createIfNeeded(y(e.url,"https://a.tile.openstreetmap.org/"));t.appendForwardSlash(),t.url+=`{z}/{x}/{y}.${y(e.fileExtension,"png")}`;let n=new Mr({ellipsoid:e.ellipsoid}),i=256,o=256,r=y(e.minimumLevel,0),s=e.maximumLevel,a=y(e.rectangle,n.rectangle),c=n.positionToTileXY(le.southwest(a),r),u=n.positionToTileXY(le.northeast(a),r),f=(Math.abs(u.x-c.x)+1)*(Math.abs(u.y-c.y)+1),d=y(e.credit,nht);typeof d=="string"&&(d=new It(d)),Bs.call(this,{url:t,credit:d,tilingScheme:n,tileWidth:i,tileHeight:o,minimumLevel:r,maximumLevel:s,rectangle:a})}l(Object.create)&&(Nz.prototype=Object.create(Bs.prototype),Nz.prototype.constructor=Nz);var xC=Nz;var iht=new H(1,1);function Sq(e){e=y(e,y.EMPTY_OBJECT),this.mass=y(e.mass,1),this.position=m.clone(y(e.position,m.ZERO)),this.velocity=m.clone(y(e.velocity,m.ZERO)),this.life=y(e.life,Number.MAX_VALUE),this.image=e.image,this.startColor=z.clone(y(e.startColor,z.WHITE)),this.endColor=z.clone(y(e.endColor,z.WHITE)),this.startScale=y(e.startScale,1),this.endScale=y(e.endScale,1),this.imageSize=H.clone(y(e.imageSize,iht)),this._age=0,this._normalizedAge=0,this._billboard=void 0}Object.defineProperties(Sq.prototype,{age:{get:function(){return this._age}},normalizedAge:{get:function(){return this._normalizedAge}}});var I0e=new m;Sq.prototype.update=function(e,t){return m.multiplyByScalar(this.velocity,e,I0e),m.add(this.position,I0e,this.position),l(t)&&t(this,e),this._age+=e,this.life===Number.MAX_VALUE?this._normalizedAge=0:this._normalizedAge=this._age/this.life,this._age<=this.life};var wS=Sq;function P0e(e){e=y(e,y.EMPTY_OBJECT),this.time=y(e.time,0),this.minimum=y(e.minimum,0),this.maximum=y(e.maximum,50),this._complete=!1}Object.defineProperties(P0e.prototype,{complete:{get:function(){return this._complete}}});var wq=P0e;function O0e(e){}O0e.prototype.emit=function(e){fe.throwInstantiationError()};var vq=O0e;var M0e=new H(1,1);function hF(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.updateCallback=e.updateCallback,this.loop=y(e.loop,!0),this.image=y(e.image,void 0);let t=e.emitter;l(t)||(t=new iF(.5)),this._emitter=t,this._bursts=e.bursts,this._modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._emitterModelMatrix=B.clone(y(e.emitterModelMatrix,B.IDENTITY)),this._matrixDirty=!0,this._combinedMatrix=new B,this._startColor=z.clone(y(e.color,y(e.startColor,z.WHITE))),this._endColor=z.clone(y(e.color,y(e.endColor,z.WHITE))),this._startScale=y(e.scale,y(e.startScale,1)),this._endScale=y(e.scale,y(e.endScale,1)),this._emissionRate=y(e.emissionRate,5),this._minimumSpeed=y(e.speed,y(e.minimumSpeed,1)),this._maximumSpeed=y(e.speed,y(e.maximumSpeed,1)),this._minimumParticleLife=y(e.particleLife,y(e.minimumParticleLife,5)),this._maximumParticleLife=y(e.particleLife,y(e.maximumParticleLife,5)),this._minimumMass=y(e.mass,y(e.minimumMass,1)),this._maximumMass=y(e.mass,y(e.maximumMass,1)),this._minimumImageSize=H.clone(y(e.imageSize,y(e.minimumImageSize,M0e))),this._maximumImageSize=H.clone(y(e.imageSize,y(e.maximumImageSize,M0e))),this._sizeInMeters=y(e.sizeInMeters,!1),this._lifetime=y(e.lifetime,Number.MAX_VALUE),this._billboardCollection=void 0,this._particles=[],this._particlePool=[],this._previousTime=void 0,this._currentTime=0,this._carryOver=0,this._complete=new ge,this._isComplete=!1,this._updateParticlePool=!0,this._particleEstimate=0}Object.defineProperties(hF.prototype,{emitter:{get:function(){return this._emitter},set:function(e){this._emitter=e}},bursts:{get:function(){return this._bursts},set:function(e){this._bursts=e,this._updateParticlePool=!0}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!B.equals(this._modelMatrix,e),B.clone(e,this._modelMatrix)}},emitterModelMatrix:{get:function(){return this._emitterModelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!B.equals(this._emitterModelMatrix,e),B.clone(e,this._emitterModelMatrix)}},startColor:{get:function(){return this._startColor},set:function(e){z.clone(e,this._startColor)}},endColor:{get:function(){return this._endColor},set:function(e){z.clone(e,this._endColor)}},startScale:{get:function(){return this._startScale},set:function(e){this._startScale=e}},endScale:{get:function(){return this._endScale},set:function(e){this._endScale=e}},emissionRate:{get:function(){return this._emissionRate},set:function(e){this._emissionRate=e,this._updateParticlePool=!0}},minimumSpeed:{get:function(){return this._minimumSpeed},set:function(e){this._minimumSpeed=e}},maximumSpeed:{get:function(){return this._maximumSpeed},set:function(e){this._maximumSpeed=e}},minimumParticleLife:{get:function(){return this._minimumParticleLife},set:function(e){this._minimumParticleLife=e}},maximumParticleLife:{get:function(){return this._maximumParticleLife},set:function(e){this._maximumParticleLife=e,this._updateParticlePool=!0}},minimumMass:{get:function(){return this._minimumMass},set:function(e){this._minimumMass=e}},maximumMass:{get:function(){return this._maximumMass},set:function(e){this._maximumMass=e}},minimumImageSize:{get:function(){return this._minimumImageSize},set:function(e){this._minimumImageSize=e}},maximumImageSize:{get:function(){return this._maximumImageSize},set:function(e){this._maximumImageSize=e}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters=e}},lifetime:{get:function(){return this._lifetime},set:function(e){this._lifetime=e}},complete:{get:function(){return this._complete}},isComplete:{get:function(){return this._isComplete}}});function oht(e){let t=e._emissionRate,n=e._maximumParticleLife,i=0,o=e._bursts;if(l(o)){let d=o.length;for(let p=0;p<d;++p)i+=o[p].maximum}let r=e._billboardCollection,s=e.image,a=Math.ceil(t*n+i),c=e._particles,u=e._particlePool,f=Math.max(a-c.length-u.length,0);for(let d=0;d<f;++d){let p=new wS;p._billboard=r.add({image:s,show:!1}),u.push(p)}e._particleEstimate=a}function rht(e){let t=e._particlePool.pop();return l(t)||(t=new wS),t}function sht(e,t){e._particlePool.push(t)}function aht(e){let t=e._particles,n=e._particlePool,i=e._billboardCollection,o=t.length,r=n.length,s=e._particleEstimate,a=r-Math.max(s-o-r,0);for(let c=a;c<r;++c){let u=n[c];i.remove(u._billboard)}n.length=a}function cht(e){l(e._billboard)&&(e._billboard.show=!1)}function R0e(e,t){let n=t._billboard;l(n)||(n=t._billboard=e._billboardCollection.add({image:t.image})),n.width=t.imageSize.x,n.height=t.imageSize.y,n.position=t.position,n.sizeInMeters=e.sizeInMeters,n.show=!0;let i=P.lerp(t.startColor.red,t.endColor.red,t.normalizedAge),o=P.lerp(t.startColor.green,t.endColor.green,t.normalizedAge),r=P.lerp(t.startColor.blue,t.endColor.blue,t.normalizedAge),s=P.lerp(t.startColor.alpha,t.endColor.alpha,t.normalizedAge);n.color=new z(i,o,r,s),n.scale=P.lerp(t.startScale,t.endScale,t.normalizedAge)}function lht(e,t){t.startColor=z.clone(e._startColor,t.startColor),t.endColor=z.clone(e._endColor,t.endColor),t.startScale=e._startScale,t.endScale=e._endScale,t.image=e.image,t.life=P.randomBetween(e._minimumParticleLife,e._maximumParticleLife),t.mass=P.randomBetween(e._minimumMass,e._maximumMass),t.imageSize.x=P.randomBetween(e._minimumImageSize.x,e._maximumImageSize.x),t.imageSize.y=P.randomBetween(e._minimumImageSize.y,e._maximumImageSize.y),t._normalizedAge=0,t._age=0;let n=P.randomBetween(e._minimumSpeed,e._maximumSpeed);m.multiplyByScalar(t.velocity,n,t.velocity),e._particles.push(t)}function uht(e,t){if(e._isComplete)return 0;t=P.mod(t,e._lifetime);let n=t*e._emissionRate,i=Math.floor(n);if(e._carryOver+=n-i,e._carryOver>1&&(i++,e._carryOver-=1),l(e.bursts)){let o=e.bursts.length;for(let r=0;r<o;r++){let s=e.bursts[r],a=e._currentTime;l(s)&&!s._complete&&a>s.time&&(i+=P.randomBetween(s.minimum,s.maximum),s._complete=!0)}}return i}var Fz=new m;hF.prototype.update=function(e){if(!this.show)return;l(this._billboardCollection)||(this._billboardCollection=new eu),this._updateParticlePool&&(oht(this),this._updateParticlePool=!1);let t=0;this._previousTime&&(t=ee.secondsDifference(e.time,this._previousTime)),t<0&&(t=0);let n=this._particles,i=this._emitter,o=this.updateCallback,r,s,a=n.length;for(r=0;r<a;++r)s=n[r],s.update(t,o)?R0e(this,s):(cht(s),sht(this,s),n[r]=n[a-1],--r,--a);n.length=a;let c=uht(this,t);if(c>0&&l(i)){this._matrixDirty&&(this._combinedMatrix=B.multiply(this.modelMatrix,this.emitterModelMatrix,this._combinedMatrix),this._matrixDirty=!1);let u=this._combinedMatrix;for(r=0;r<c;r++)s=rht(this),this._emitter.emit(s),m.add(s.position,s.velocity,Fz),B.multiplyByPoint(u,Fz,Fz),s.position=B.multiplyByPoint(u,s.position,s.position),m.subtract(Fz,s.position,s.velocity),m.normalize(s.velocity,s.velocity),lht(this,s),R0e(this,s)}if(this._billboardCollection.update(e),this._previousTime=ee.clone(e.time,this._previousTime),this._currentTime+=t,this._lifetime!==Number.MAX_VALUE&&this._currentTime>this._lifetime)if(this.loop){if(this._currentTime=P.mod(this._currentTime,this._lifetime),this.bursts){let u=this.bursts.length;for(r=0;r<u;r++)this.bursts[r]._complete=!1}}else this._isComplete=!0,this._complete.raiseEvent(this);e.frameNumber%120===0&&aht(this)};hF.prototype.isDestroyed=function(){return!1};hF.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),ue(this)};var Dq=hF;var N0e=So(Z2(),1);function fht(e,t,n){return` float clipDistance = clip(gl_FragCoord, ${e}, ${t}); + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = ${n}.rgb; + float clippingPlanesEdgeWidth = ${n}.a; + if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) + { + out_FragColor = clippingPlanesEdgeColor; + } +`}var pF=fht;var dht={modifyFragmentShader:function(t){return t=He.replaceMain(t,"czm_splitter_main"),t+=`uniform float czm_splitDirection; +void main() +{ +#ifndef SHADOW_MAP + if (czm_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (czm_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif + czm_splitter_main(); +} +`,t},addUniforms:function(t,n){n.czm_splitDirection=function(){return t.splitDirection}}},vS=dht;var CC={NEEDS_DECODE:0,DECODING:1,READY:2,FAILED:3};function _F(e){this._parsedContent=void 0,this._drawCommand=void 0,this._isTranslucent=!1,this._styleTranslucent=!1,this._constantColor=z.clone(z.DARKGRAY),this._highlightColor=z.clone(z.WHITE),this._pointSize=1,this._rtcCenter=void 0,this._quantizedVolumeScale=void 0,this._quantizedVolumeOffset=void 0,this._styleableShaderAttributes=void 0,this._isQuantized=!1,this._isOctEncoded16P=!1,this._isRGB565=!1,this._hasColors=!1,this._hasNormals=!1,this._hasBatchIds=!1,this._decodingState=CC.READY,this._dequantizeInShader=!0,this._isQuantizedDraco=!1,this._isOctEncodedDraco=!1,this._quantizedRange=0,this._octEncodedRange=0,this.backFaceCulling=!1,this._backFaceCulling=!1,this.normalShading=!0,this._normalShading=!0,this._opaqueRenderState=void 0,this._translucentRenderState=void 0,this._mode=void 0,this._ready=!1,this._pointsLength=0,this._geometryByteLength=0,this._vertexShaderLoaded=e.vertexShaderLoaded,this._fragmentShaderLoaded=e.fragmentShaderLoaded,this._uniformMapLoaded=e.uniformMapLoaded,this._batchTableLoaded=e.batchTableLoaded,this._pickIdLoaded=e.pickIdLoaded,this._opaquePass=y(e.opaquePass,be.OPAQUE),this._cull=y(e.cull,!0),this.style=void 0,this._style=void 0,this.styleDirty=!1,this.modelMatrix=B.clone(B.IDENTITY),this._modelMatrix=B.clone(B.IDENTITY),this.time=0,this.shadows=xn.ENABLED,this._boundingSphere=void 0,this.clippingPlanes=void 0,this.isClipped=!1,this.clippingPlanesDirty=!1,this.clippingPlanesOriginMatrix=void 0,this.attenuation=!1,this._attenuation=!1,this.geometricError=0,this.geometricErrorScale=1,this.maximumAttenuation=this._pointSize,this.splitDirection=y(e.splitDirection,Rc.NONE),this._splittingEnabled=!1,this._error=void 0,mht(this,e)}Object.defineProperties(_F.prototype,{pointsLength:{get:function(){return this._pointsLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}},color:{get:function(){return z.clone(this._highlightColor)},set:function(e){this._highlightColor=z.clone(e,this._highlightColor)}},boundingSphere:{get:function(){if(l(this._drawCommand))return this._drawCommand.boundingVolume},set:function(e){this._boundingSphere=ae.clone(e,this._boundingSphere)}}});function mht(e,t){let n=zA.parse(t.arrayBuffer,t.byteOffset);if(e._parsedContent=n,e._rtcCenter=n.rtcCenter,e._hasNormals=n.hasNormals,e._hasColors=n.hasColors,e._hasBatchIds=n.hasBatchIds,e._isTranslucent=n.isTranslucent,!n.hasBatchIds&&l(n.batchTableBinary)&&(n.styleableProperties=_p.getBinaryProperties(n.pointsLength,n.batchTableJson,n.batchTableBinary)),l(n.draco)){let a=n.draco;e._decodingState=CC.NEEDS_DECODE,a.dequantizeInShader=e._dequantizeInShader}let i=n.positions;l(i)&&(e._isQuantized=i.isQuantized,e._quantizedVolumeScale=i.quantizedVolumeScale,e._quantizedVolumeOffset=i.quantizedVolumeOffset,e._quantizedRange=i.quantizedRange);let o=n.normals;l(o)&&(e._isOctEncoded16P=o.octEncoded);let r=n.colors;l(r)&&(l(r.constantColor)&&(e._constantColor=z.clone(r.constantColor,e._constantColor),e._hasColors=!1),e._isRGB565=r.isRGB565);let s=n.batchIds;l(n.batchIds)&&(s.name="BATCH_ID",s.semantic="BATCH_ID",s.setIndex=void 0),n.hasBatchIds&&e._batchTableLoaded(n.batchLength,n.batchTableJson,n.batchTableBinary),e._pointsLength=n.pointsLength}var hht=new m,pht=new m,_ht=new m,B0e,Uz;function ght(e){if(!l(Uz)){B0e=new N0e.default(0),Uz=new Array(e);for(let t=0;t<e;++t)Uz[t]=B0e.random()}return Uz}function yht(e){let n=e.length/3,i=Math.min(n,20),o=ght(20),r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=m.fromElements(r,r,r,hht),c=m.fromElements(s,s,s,pht);for(let f=0;f<i;++f){let d=Math.floor(o[f]*n),p=m.unpack(e,d*3,_ht);m.minimumByComponent(a,p,a),m.maximumByComponent(c,p,c)}let u=ae.fromCornerPoints(a,c);return u.radius+=P.EPSILON2,u}function L0e(e,t){let n=X.fromTypedArray(e);return n===X.INT||n===X.UNSIGNED_INT||n===X.DOUBLE?(Mt("Cast pnts property to floats",`Point cloud property "${t}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),new Float32Array(e)):e}var Aht=new re,xht=new re,Cht=new z,F0e=0,Vz=1,Rq=2,U0e=3,Tht=4,Iq=new B,Eht=new B;function bht(e,t){let n=t.context,i=e._parsedContent,o=e._pointsLength,r=i.positions,s=i.colors,a=i.normals,c=i.batchIds,u=i.styleableProperties,f=l(u),d=e._isQuantized,p=e._isQuantizedDraco,g=e._isOctEncoded16P,h=e._isOctEncodedDraco,A=e._quantizedRange,x=e._octEncodedRange,C=e._isRGB565,T=e._isTranslucent,E=e._hasColors,S=e._hasNormals,v=e._hasBatchIds,D,O,M=[],L={};if(e._styleableShaderAttributes=L,f){let V=Tht;for(let G in u)if(u.hasOwnProperty(G)){let U=u[G],q=L0e(U.typedArray,G);D=U.componentCount,O=X.fromTypedArray(q);let Y=mt.createVertexBuffer({context:n,typedArray:q,usage:Fe.STATIC_DRAW});e._geometryByteLength+=Y.sizeInBytes;let Q={index:V,vertexBuffer:Y,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0};M.push(Q),L[G]={location:V,componentCount:D},++V}}let N=mt.createVertexBuffer({context:n,typedArray:r.typedArray,usage:Fe.STATIC_DRAW});e._geometryByteLength+=N.sizeInBytes;let _;E&&(_=mt.createVertexBuffer({context:n,typedArray:s.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=_.sizeInBytes);let b;S&&(b=mt.createVertexBuffer({context:n,typedArray:a.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=b.sizeInBytes);let w;v&&(c.typedArray=L0e(c.typedArray,"batchIds"),w=mt.createVertexBuffer({context:n,typedArray:c.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=w.sizeInBytes);let I=[];if(d?O=X.UNSIGNED_SHORT:p?O=A<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT:O=X.FLOAT,I.push({index:F0e,vertexBuffer:N,componentsPerAttribute:3,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0}),e._cull&&(d||p?e._boundingSphere=ae.fromCornerPoints(m.ZERO,e._quantizedVolumeScale):e._boundingSphere=yht(r.typedArray)),E)if(C)I.push({index:Vz,vertexBuffer:_,componentsPerAttribute:1,componentDatatype:X.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0});else{let V=T?4:3;I.push({index:Vz,vertexBuffer:_,componentsPerAttribute:V,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0})}S&&(g?(D=2,O=X.UNSIGNED_BYTE):h?(D=2,O=x<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT):(D=3,O=X.FLOAT),I.push({index:Rq,vertexBuffer:b,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0})),v&&I.push({index:U0e,vertexBuffer:w,componentsPerAttribute:1,componentDatatype:X.fromTypedArray(c.typedArray),normalize:!1,offsetInBytes:0,strideInBytes:0}),f&&(I=I.concat(M));let R=new oi({context:n,attributes:I}),F={depthTest:{enabled:!0}},k={depthTest:{enabled:!0},depthMask:!1,blending:mn.ALPHA_BLEND};e._opaquePass===be.CESIUM_3D_TILE&&(F.stencilTest=Ft.setCesium3DTileBit(),F.stencilMask=Ft.CESIUM_3D_TILE_MASK,k.stencilTest=Ft.setCesium3DTileBit(),k.stencilMask=Ft.CESIUM_3D_TILE_MASK),e._opaqueRenderState=ze.fromCache(F),e._translucentRenderState=ze.fromCache(k),e._drawCommand=new it({boundingVolume:new ae,cull:e._cull,modelMatrix:new B,primitiveType:Le.POINTS,vertexArray:R,count:o,shaderProgram:void 0,uniformMap:void 0,renderState:T?e._translucentRenderState:e._opaqueRenderState,pass:T?be.TRANSLUCENT:e._opaquePass,owner:e,castShadows:!1,receiveShadows:!1,pickId:e._pickIdLoaded()})}function Sht(e,t){let n=t.context,i=e._isQuantized,o=e._isQuantizedDraco,r=e._isOctEncodedDraco,s={u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier:function(){let a=Aht;if(a.x=e._attenuation?e.maximumAttenuation:e._pointSize,a.x*=t.pixelRatio,a.y=e.time,e._attenuation){let c=t.camera.frustum,u;t.mode===ne.SCENE2D||c instanceof tn?u=Number.POSITIVE_INFINITY:u=n.drawingBufferHeight/t.camera.frustum.sseDenominator,a.z=e.geometricError*e.geometricErrorScale,a.w=u}return a},u_highlightColor:function(){return e._highlightColor},u_constantColor:function(){return e._constantColor},u_clippingPlanes:function(){let a=e.clippingPlanes;return e.isClipped?a.texture:n.defaultTexture},u_clippingPlanesEdgeStyle:function(){let a=e.clippingPlanes;if(!l(a))return z.TRANSPARENT;let c=z.clone(a.edgeColor,Cht);return c.alpha=a.edgeWidth,c},u_clippingPlanesMatrix:function(){let a=e.clippingPlanes;if(!l(a))return B.IDENTITY;let c=y(e.clippingPlanesOriginMatrix,e._modelMatrix);B.multiply(n.uniformState.view3D,c,Iq);let u=B.multiply(Iq,a.modelMatrix,Iq);return B.inverseTranspose(u,Eht)}};vS.addUniforms(e,s),(i||o||r)&&(s=_t(s,{u_quantizedVolumeScaleAndOctEncodedRange:function(){let a=xht;if(l(e._quantizedVolumeScale)){let c=m.clone(e._quantizedVolumeScale,a);m.divideByScalar(c,e._quantizedRange,a)}return a.w=e._octEncodedRange,a}})),l(e._uniformMapLoaded)&&(s=e._uniformMapLoaded(s)),e._drawCommand.uniformMap=s}function Pq(e,t){let n=/czm_3dtiles_property_(\d+)/g,i=n.exec(e);for(;i!==null;){let o=parseInt(i[1]);t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function Oq(e,t){e=e.slice(e.indexOf(` +`));let n=/czm_3dtiles_builtin_property_(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function Mq(e,t){let n=e.numberOfAttributes;for(let i=0;i<n;++i){let o=e.getAttribute(i);if(o.index===t)return o}}var wht={POSITION:"czm_3dtiles_builtin_property_POSITION",POSITION_ABSOLUTE:"czm_3dtiles_builtin_property_POSITION_ABSOLUTE",COLOR:"czm_3dtiles_builtin_property_COLOR",NORMAL:"czm_3dtiles_builtin_property_NORMAL"};function vht(e,t,n){let i,o,r,s=t.context,a=l(n),c=e._isQuantized,u=e._isQuantizedDraco,f=e._isOctEncoded16P,d=e._isOctEncodedDraco,p=e._isRGB565,g=e._isTranslucent,h=e._hasColors,A=e._hasNormals,x=e._hasBatchIds,C=e._backFaceCulling,T=e._normalShading,E=e._drawCommand.vertexArray,S=e.clippingPlanes,v=e._attenuation,D,O,M,L=g,N=Ye(wht),_={},b=e._styleableShaderAttributes;for(o in b)b.hasOwnProperty(o)&&(r=b[o],N[o]=`czm_3dtiles_property_${r.location}`,_[r.location]=r);if(a){let se={translucent:!1},Ae="(vec3 czm_3dtiles_builtin_property_POSITION, vec3 czm_3dtiles_builtin_property_POSITION_ABSOLUTE, vec4 czm_3dtiles_builtin_property_COLOR, vec3 czm_3dtiles_builtin_property_NORMAL)";D=n.getColorShaderFunction(`getColorFromStyle${Ae}`,N,se),O=n.getShowShaderFunction(`getShowFromStyle${Ae}`,N,se),M=n.getPointSizeShaderFunction(`getPointSizeFromStyle${Ae}`,N,se),l(D)&&se.translucent&&(L=!0)}e._styleTranslucent=L;let w=l(D),I=l(O),R=l(M),F=e.isClipped,k=[],V=[];w&&(Pq(D,k),Oq(D,V)),I&&(Pq(O,k),Oq(O,V)),R&&(Pq(M,k),Oq(M,V));let G=V.indexOf("COLOR")>=0,U=V.indexOf("NORMAL")>=0;if(U&&!A)throw new de("Style references the NORMAL semantic but the point cloud does not have normals");for(o in b)if(b.hasOwnProperty(o)){r=b[o];let se=k.indexOf(r.location)>=0,Ae=Mq(E,r.location);Ae.enabled=se}let q=h&&(!w||G);if(h){let se=Mq(E,Vz);se.enabled=q}let Y=A&&(T||C||U);if(A){let se=Mq(E,Rq);se.enabled=Y}let Q={a_position:F0e};q&&(Q.a_color=Vz),Y&&(Q.a_normal=Rq),x&&(Q.a_batchId=U0e);let W="",K=k.length;for(i=0;i<K;++i){let se=k[i];r=_[se];let Ae=r.componentCount,me=`czm_3dtiles_property_${se}`,Se;Ae===1?Se="float":Se=`vec${Ae}`,W+=`in ${Se} ${me}; +`,Q[me]=r.location}Sht(e,t);let J=`in vec3 a_position; +out vec4 v_color; +uniform vec4 u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier; +uniform vec4 u_constantColor; +uniform vec4 u_highlightColor; +`;J+=`float u_pointSize; +float tiles3d_tileset_time; +`,v&&(J+=`float u_geometricError; +float u_depthMultiplier; +`),J+=W,q&&(g?J+=`in vec4 a_color; +`:p?J+=`in float a_color; +const float SHIFT_RIGHT_11 = 1.0 / 2048.0; +const float SHIFT_RIGHT_5 = 1.0 / 32.0; +const float SHIFT_LEFT_11 = 2048.0; +const float SHIFT_LEFT_5 = 32.0; +const float NORMALIZE_6 = 1.0 / 64.0; +const float NORMALIZE_5 = 1.0 / 32.0; +`:J+=`in vec3 a_color; +`),Y&&(f||d?J+=`in vec2 a_normal; +`:J+=`in vec3 a_normal; +`),x&&(J+=`in float a_batchId; +`),(c||u||d)&&(J+=`uniform vec4 u_quantizedVolumeScaleAndOctEncodedRange; +`),w&&(J+=D),I&&(J+=O),R&&(J+=M),J+=`void main() +{ + u_pointSize = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.x; + tiles3d_tileset_time = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.y; +`,v&&(J+=` u_geometricError = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.z; + u_depthMultiplier = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.w; +`),q?g?J+=` vec4 color = a_color; +`:p?J+=` float compressed = a_color; + float r = floor(compressed * SHIFT_RIGHT_11); + compressed -= r * SHIFT_LEFT_11; + float g = floor(compressed * SHIFT_RIGHT_5); + compressed -= g * SHIFT_LEFT_5; + float b = compressed; + vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5); + vec4 color = vec4(rgb, 1.0); +`:J+=` vec4 color = vec4(a_color, 1.0); +`:J+=` vec4 color = u_constantColor; +`,c||u?J+=` vec3 position = a_position * u_quantizedVolumeScaleAndOctEncodedRange.xyz; +`:J+=` vec3 position = a_position; +`,J+=` vec3 position_absolute = vec3(czm_model * vec4(position, 1.0)); +`,Y?(f?J+=` vec3 normal = czm_octDecode(a_normal); +`:d?J+=` vec3 normal = czm_octDecode(a_normal, u_quantizedVolumeScaleAndOctEncodedRange.w).zxy; +`:J+=` vec3 normal = a_normal; +`,J+=` vec3 normalEC = czm_normal * normal; +`):J+=` vec3 normal = vec3(1.0); +`,w&&(J+=` color = getColorFromStyle(position, position_absolute, color, normal); +`),I&&(J+=` float show = float(getShowFromStyle(position, position_absolute, color, normal)); +`),R?J+=` gl_PointSize = getPointSizeFromStyle(position, position_absolute, color, normal) * czm_pixelRatio; +`:v?J+=` vec4 positionEC = czm_modelView * vec4(position, 1.0); + float depth = -positionEC.z; + gl_PointSize = min((u_geometricError / depth) * u_depthMultiplier, u_pointSize); +`:J+=` gl_PointSize = u_pointSize; +`,J+=` color = color * u_highlightColor; +`,Y&&T&&(J+=` float diffuseStrength = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC); + diffuseStrength = max(diffuseStrength, 0.4); + color.xyz *= diffuseStrength * czm_lightColor; +`),J+=` v_color = color; + gl_Position = czm_modelViewProjection * vec4(position, 1.0); +`,Y&&C&&(J+=` float visible = step(-normalEC.z, 0.0); + gl_Position *= visible; + gl_PointSize *= visible; +`),I&&(J+=` gl_Position.w *= float(show); + gl_PointSize *= float(show); +`),J+=`} +`;let _e=`in vec4 v_color; +`;F&&(_e+=`uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +`,_e+=` +`,_e+=v_(S,s),_e+=` +`),_e+=`void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +`,F&&(_e+=pF("u_clippingPlanes","u_clippingPlanesMatrix","u_clippingPlanesEdgeStyle")),_e+=`} +`,e.splitDirection!==Rc.NONE&&(_e=vS.modifyFragmentShader(_e)),l(e._vertexShaderLoaded)&&(J=e._vertexShaderLoaded(J)),l(e._fragmentShaderLoaded)&&(_e=e._fragmentShaderLoaded(_e));let xe=e._drawCommand;l(xe.shaderProgram)&&xe.shaderProgram.destroy(),xe.shaderProgram=Kt.fromCache({context:s,vertexShaderSource:J,fragmentShaderSource:_e,attributeLocations:Q});try{xe.shaderProgram._bind()}catch{throw new de("Error generating style shader: this may be caused by a type mismatch, index out-of-bounds, or other syntax error.")}}function Dht(e,t){if(e._decodingState===CC.READY)return!1;if(e._decodingState===CC.NEEDS_DECODE){let n=e._parsedContent,i=n.draco,o=bp.decodePointCloud(i,t);l(o)&&(e._decodingState=CC.DECODING,o.then(function(r){e._decodingState=CC.READY;let s=l(r.POSITION)?r.POSITION.array:void 0,a=l(r.RGB)?r.RGB.array:void 0,c=l(r.RGBA)?r.RGBA.array:void 0,u=l(r.NORMAL)?r.NORMAL.array:void 0,f=l(r.BATCH_ID)?r.BATCH_ID.array:void 0,d=l(s)&&l(r.POSITION.data.quantization),p=l(u)&&l(r.NORMAL.data.quantization);if(d){let x=r.POSITION.data.quantization,C=x.range;e._quantizedVolumeScale=m.fromElements(C,C,C),e._quantizedVolumeOffset=m.unpack(x.minValues),e._quantizedRange=(1<<x.quantizationBits)-1,e._isQuantizedDraco=!0}p&&(e._octEncodedRange=(1<<r.NORMAL.data.quantization.quantizationBits)-1,e._isOctEncodedDraco=!0);let g=n.styleableProperties,h=i.batchTableProperties;for(let x in h)if(h.hasOwnProperty(x)){let C=r[x];l(g)||(g={}),g[x]={typedArray:C.array,componentCount:C.data.componentsPerAttribute}}l(s)&&(n.positions={typedArray:s});let A=y(c,a);l(A)&&(n.colors={typedArray:A}),l(u)&&(n.normals={typedArray:u}),l(f)&&(n.batchIds={typedArray:f}),n.styleableProperties=g}).catch(function(r){e._decodingState=CC.FAILED,e._error=r}))}return!0}var Iht=new re,Pht=new m;_F.prototype.update=function(e){let t=e.context;if(l(this._error)){let u=this._error;throw this._error=void 0,u}if(Dht(this,t))return;let i=!1,o=!B.equals(this._modelMatrix,this.modelMatrix);if(this._mode!==e.mode&&(this._mode=e.mode,o=!0),l(this._drawCommand)||(bht(this,e),o=!0,i=!0,this._ready=!0,this._parsedContent=void 0),o){B.clone(this.modelMatrix,this._modelMatrix);let u=this._drawCommand.modelMatrix;if(B.clone(this._modelMatrix,u),l(this._rtcCenter)&&B.multiplyByTranslation(u,this._rtcCenter,u),l(this._quantizedVolumeOffset)&&B.multiplyByTranslation(u,this._quantizedVolumeOffset,u),e.mode!==ne.SCENE3D){let d=e.mapProjection,p=B.getColumn(u,3,Iht);re.equals(p,re.UNIT_W)||Rt.basisTo2D(d,u,u)}let f=this._drawCommand.boundingVolume;if(ae.clone(this._boundingSphere,f),this._cull){let d=f.center;B.multiplyByPoint(u,d,d);let p=B.getScale(u,Pht);f.radius*=m.maximumComponent(p)}}this.clippingPlanesDirty&&(this.clippingPlanesDirty=!1,i=!0),this._attenuation!==this.attenuation&&(this._attenuation=this.attenuation,i=!0),this.backFaceCulling!==this._backFaceCulling&&(this._backFaceCulling=this.backFaceCulling,i=!0),this.normalShading!==this._normalShading&&(this._normalShading=this.normalShading,i=!0),(this._style!==this.style||this.styleDirty)&&(this._style=this.style,this.styleDirty=!1,i=!0);let r=this.splitDirection!==Rc.NONE;this._splittingEnabled!==r&&(this._splittingEnabled=r,i=!0),i&&vht(this,e,this._style),this._drawCommand.castShadows=xn.castShadows(this.shadows),this._drawCommand.receiveShadows=xn.receiveShadows(this.shadows);let s=this._highlightColor.alpha<1||this._constantColor.alpha<1||this._styleTranslucent;this._drawCommand.renderState=s?this._translucentRenderState:this._opaqueRenderState,this._drawCommand.pass=s?be.TRANSLUCENT:this._opaquePass;let a=e.commandList,c=e.passes;(c.render||c.pick)&&a.push(this._drawCommand)};_F.prototype.isDestroyed=function(){return!1};_F.prototype.destroy=function(){let e=this._drawCommand;return l(e)&&(e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),ue(this)};var gF=_F;function Lu(){fe.throwInstantiationError()}Lu.computeDefaultLevelZeroMaximumGeometricError=function(e){return e.ellipsoid.maximumRadius*2*Math.PI*.25/(65*e.getNumberOfXTilesAtLevel(0))};Object.defineProperties(Lu.prototype,{quadtree:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},ready:{get:fe.throwInstantiationError},tilingScheme:{get:fe.throwInstantiationError},errorEvent:{get:fe.throwInstantiationError}});Lu.prototype.update=fe.throwInstantiationError;Lu.prototype.beginUpdate=fe.throwInstantiationError;Lu.prototype.endUpdate=fe.throwInstantiationError;Lu.prototype.getLevelMaximumGeometricError=fe.throwInstantiationError;Lu.prototype.loadTile=fe.throwInstantiationError;Lu.prototype.computeTileVisibility=fe.throwInstantiationError;Lu.prototype.showTileThisFrame=fe.throwInstantiationError;Lu.prototype.computeDistanceToTile=fe.throwInstantiationError;Lu.prototype.isDestroyed=fe.throwInstantiationError;Lu.prototype.destroy=fe.throwInstantiationError;var Bq=Lu;function Hf(e,t,n,i,o,r,s){this.children=void 0,this.parent=o,this.level=e,this.x=t,this.y=n,this.z=i,this.keyframeNodes=[],this.renderableKeyframeNodes=[],this.renderableKeyframeNodeLerp=0,this.renderableKeyframeNodePrevious=void 0,this.renderableKeyframeNodeNext=void 0,this.orientedBoundingBox=new Mn,this.approximateVoxelSize=0,this.screenSpaceError=0,this.visitedFrameNumber=-1,this.computeBoundingVolumes(r,s)}var Oht=new m;Hf.prototype.computeBoundingVolumes=function(e,t){this.orientedBoundingBox=e.computeOrientedBoundingBoxForTile(this.level,this.x,this.y,this.z,this.orientedBoundingBox);let n=Z.getScale(this.orientedBoundingBox.halfAxes,Oht),i=2*m.maximumComponent(n);this.approximateVoxelSize=i/m.minimumComponent(t)};Hf.prototype.constructChildNodes=function(e,t){let{level:n,x:i,y:o,z:r}=this,s=i*2,a=o*2,c=r*2,u=a+1,f=s+1,d=c+1,p=n+1,g=[[p,s,a,c],[p,f,a,c],[p,s,u,c],[p,f,u,c],[p,s,a,d],[p,f,a,d],[p,s,u,d],[p,f,u,d]];this.children=g.map(([h,A,x,C])=>new Hf(h,A,x,C,this,e,t))};Hf.prototype.visibility=function(e,t){let n=this.orientedBoundingBox;return e.cullingVolume.computeVisibilityWithPlaneMask(n,t)};Hf.prototype.computeScreenSpaceError=function(e,t){let n=this.orientedBoundingBox,i=Math.sqrt(n.distanceSquaredTo(e));i=Math.max(i,P.EPSILON7);let o=this.approximateVoxelSize,r=t*(o/i);this.screenSpaceError=r};var V0e={keyframe:0};function yF(e,t){return V0e.keyframe=e,wo(t,V0e,Ki.searchComparator)}Hf.prototype.computeSurroundingRenderableKeyframeNodes=function(e){let t=this,n=t.level,i=Math.floor(e),o=Math.ceil(e),r,s,a=+Number.MAX_VALUE,c=+Number.MAX_VALUE;for(;l(t);){let{renderableKeyframeNodes:d}=t;if(d.length>=1){let p=Mht(i,d),g=d[p],h=o===i||i<g.keyframe?p:Math.min(p+1,d.length-1),A=d[h],x=i-g.keyframe,C=k0e(n-t.level,x);C<a&&(a=C,r=g);let T=A.keyframe-o,E=k0e(n-t.level,T);if(E<c&&(c=E,s=A),x===0&&T===0)break}t=t.parent}if(this.renderableKeyframeNodePrevious=r,this.renderableKeyframeNodeNext=s,!l(r)||!l(s))return;let u=r.keyframe,f=s.keyframe;this.renderableKeyframeNodeLerp=u===f?0:P.clamp((e-u)/(f-u),0,1)};function Mht(e,t){let n=yF(e,t);return n<0?P.clamp(~n-1,0,t.length-1):n}function k0e(e,t){let n=Math.exp(e*4),i=t>=0?1:-200;return e*n+t*i}Hf.prototype.isVisited=function(e){return this.visitedFrameNumber===e};Hf.prototype.createKeyframeNode=function(e){let t=yF(e,this.keyframeNodes);if(t<0){t=~t;let n=new Ki(this,e);this.keyframeNodes.splice(t,0,n)}};Hf.prototype.destroyKeyframeNode=function(e,t){let n=e.keyframe,i=yF(n,this.keyframeNodes);if(i<0)throw new fe("Keyframe node does not exist.");if(this.keyframeNodes.splice(i,1),e.megatextureIndex!==-1){for(let r=0;r<t.length;r++)t[r].remove(e.megatextureIndex);let o=yF(n,this.renderableKeyframeNodes);if(o<0)throw new fe("Renderable keyframe node does not exist.");this.renderableKeyframeNodes.splice(o,1)}e.spatialNode=void 0,e.state=Ki.LoadState.UNLOADED,e.metadatas={},e.megatextureIndex=-1,e.priority=-Number.MAX_VALUE,e.highPriorityFrameNumber=-1};Hf.prototype.addKeyframeNodeToMegatextures=function(e,t){if(e.state!==Ki.LoadState.RECEIVED||e.megatextureIndex!==-1||e.metadatas.length!==t.length)throw new fe("Keyframe node cannot be added to megatexture");for(let o=0;o<t.length;o++){let r=t[o];e.megatextureIndex=r.add(e.metadatas[o]),e.metadatas[o]=void 0}e.state=Ki.LoadState.LOADED;let n=this.renderableKeyframeNodes,i=yF(e.keyframe,n);if(i>=0)throw new fe("Keyframe already renderable");i=~i,n.splice(i,0,e)};Hf.prototype.isRenderable=function(e){let t=this.renderableKeyframeNodePrevious,n=this.renderableKeyframeNodeNext,i=this.level;return l(t)&&l(n)&&(t.spatialNode.level===i||n.spatialNode.level===i)&&this.visitedFrameNumber===e};var AF=Hf;function Lq(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(Lq.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});Lq.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,P.PI),i=P.randomBetween(0,this._radius),o=i*Math.cos(t)*Math.sin(n),r=i*Math.sin(t)*Math.sin(n),s=i*Math.cos(n);e.position=m.fromElements(o,r,s,e.position),e.velocity=m.normalize(e.position,e.velocity)};var Nq=Lq;function xF(){}xF.prototype.evaluate=function(e,t){fe.throwInstantiationError()};xF.prototype.evaluateColor=function(e,t){fe.throwInstantiationError()};xF.prototype.getShaderFunction=function(e,t,n,i){fe.throwInstantiationError()};xF.prototype.getVariables=function(){fe.throwInstantiationError()};var Fq=xF;var kz={};kz.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,o,r){l(r)?r.length=0:r=[];let s,a,c;t?(s=n<e,a=i<e,c=o<e):(s=n>e,a=i>e,c=o>e);let u=s+a+c,f,d,p,g,h,A;return u===1?s?(f=(e-n)/(i-n),d=(e-n)/(o-n),r.push(1),r.push(2),d!==1&&(r.push(-1),r.push(0),r.push(2),r.push(d)),f!==1&&(r.push(-1),r.push(0),r.push(1),r.push(f))):a?(p=(e-i)/(o-i),g=(e-i)/(n-i),r.push(2),r.push(0),g!==1&&(r.push(-1),r.push(1),r.push(0),r.push(g)),p!==1&&(r.push(-1),r.push(1),r.push(2),r.push(p))):c&&(h=(e-o)/(n-o),A=(e-o)/(i-o),r.push(0),r.push(1),A!==1&&(r.push(-1),r.push(2),r.push(1),r.push(A)),h!==1&&(r.push(-1),r.push(2),r.push(0),r.push(h))):u===2?!s&&n!==e?(g=(e-i)/(n-i),h=(e-o)/(n-o),r.push(0),r.push(-1),r.push(1),r.push(0),r.push(g),r.push(-1),r.push(2),r.push(0),r.push(h)):!a&&i!==e?(A=(e-o)/(i-o),f=(e-n)/(i-n),r.push(1),r.push(-1),r.push(2),r.push(1),r.push(A),r.push(-1),r.push(0),r.push(1),r.push(f)):!c&&o!==e&&(d=(e-n)/(o-n),p=(e-i)/(o-i),r.push(2),r.push(-1),r.push(0),r.push(2),r.push(d),r.push(-1),r.push(1),r.push(2),r.push(p)):u!==3&&(r.push(0),r.push(1),r.push(2)),r};kz.computeBarycentricCoordinates=function(e,t,n,i,o,r,s,a,c){let u=n-s,f=s-o,d=r-a,p=i-a,g=1/(d*u+f*p),h=t-a,A=e-s,x=(d*A+f*h)*g,C=(-p*A+u*h)*g,T=1-x-C;return l(c)?(c.x=x,c.y=C,c.z=T,c):new m(x,C,T)};kz.computeLineSegmentLineSegmentIntersection=function(e,t,n,i,o,r,s,a,c){let u=(s-o)*(t-r)-(a-r)*(e-o),f=(n-e)*(t-r)-(i-t)*(e-o),d=(a-r)*(n-e)-(s-o)*(i-t);if(d===0)return;let p=u/d,g=f/d;if(p>=0&&p<=1&&g>=0&&g<=1)return l(c)||(c=new H),c.x=e+p*(n-e),c.y=t+p*(i-t),c};var z_=kz;function $y(e){this._quantizedVertices=e.quantizedVertices,this._encodedNormals=e.encodedNormals,this._indices=e.indices,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._boundingSphere=e.boundingSphere,this._orientedBoundingBox=e.orientedBoundingBox,this._horizonOcclusionPoint=e.horizonOcclusionPoint,this._credits=e.credits;let t=this._quantizedVertices.length/3,n=this._uValues=this._quantizedVertices.subarray(0,t),i=this._vValues=this._quantizedVertices.subarray(t,2*t);this._heightValues=this._quantizedVertices.subarray(2*t,3*t);function o(s,a){return i[s]-i[a]}function r(s,a){return n[s]-n[a]}this._westIndices=Hz(e.westIndices,o,t),this._southIndices=Hz(e.southIndices,r,t),this._eastIndices=Hz(e.eastIndices,o,t),this._northIndices=Hz(e.northIndices,r,t),this._westSkirtHeight=e.westSkirtHeight,this._southSkirtHeight=e.southSkirtHeight,this._eastSkirtHeight=e.eastSkirtHeight,this._northSkirtHeight=e.northSkirtHeight,this._childTileMask=y(e.childTileMask,15),this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._mesh=void 0}Object.defineProperties($y.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return l(this._mesh)}}});var zz=[];function Hz(e,t,n){zz.length=e.length;let i=!1;for(let o=0,r=e.length;o<r;++o)zz[o]=e[o],i=i||o>0&&t(e[o-1],e[o])>0;return i?(zz.sort(t),Ue.createTypedArray(n,zz)):e}var z0e="createVerticesFromQuantizedTerrainMesh",Rht=new hi(z0e),Bht=new hi(z0e,im.maximumAsynchronousTasks);$y.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,u=t.tileXYToRectangle(n,i,o),d=(a?Bht:Rht).scheduleTask({minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,quantizedVertices:this._quantizedVertices,octEncodedNormals:this._encodedNormals,includeWebMercatorT:!0,indices:this._indices,westIndices:this._westIndices,southIndices:this._southIndices,eastIndices:this._eastIndices,northIndices:this._northIndices,westSkirtHeight:this._westSkirtHeight,southSkirtHeight:this._southSkirtHeight,eastSkirtHeight:this._eastSkirtHeight,northSkirtHeight:this._northSkirtHeight,rectangle:u,relativeToCenter:this._boundingSphere.center,ellipsoid:c,exaggeration:r,exaggerationRelativeHeight:s});if(!l(d))return;let p=this;return Promise.resolve(d).then(function(g){let h=p._quantizedVertices.length/3,A=h+p._westIndices.length+p._southIndices.length+p._eastIndices.length+p._northIndices.length,x=Ue.createTypedArray(A,g.indices),C=new Float32Array(g.vertices),T=g.center,E=g.minimumHeight,S=g.maximumHeight,v=p._boundingSphere,D=p._orientedBoundingBox,O=y(m.clone(g.occludeePointInScaledSpace),p._horizonOcclusionPoint),M=g.vertexStride,L=sc.clone(g.encoding);return p._mesh=new Mf(T,C,x,g.indexCountWithoutSkirts,h,E,S,v,O,M,D,L,g.westIndicesSouthToNorth,g.southIndicesEastToWest,g.eastIndicesNorthToSouth,g.northIndicesWestToEast),p._quantizedVertices=void 0,p._encodedNormals=void 0,p._indices=void 0,p._uValues=void 0,p._vValues=void 0,p._heightValues=void 0,p._westIndices=void 0,p._southIndices=void 0,p._eastIndices=void 0,p._northIndices=void 0,p._mesh})};var Lht=new hi("upsampleQuantizedTerrainMesh",im.maximumAsynchronousTasks);$y.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,u=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=Lht.scheduleTask({vertices:a.vertices,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:u,childRectangle:d,ellipsoid:f});if(!l(p))return;let g=Math.min(this._westSkirtHeight,this._eastSkirtHeight);g=Math.min(g,this._southSkirtHeight),g=Math.min(g,this._northSkirtHeight);let h=c?g*.5:this._westSkirtHeight,A=u?g*.5:this._southSkirtHeight,x=c?this._eastSkirtHeight:g*.5,C=u?this._northSkirtHeight:g*.5,T=this._credits;return Promise.resolve(p).then(function(E){let S=new Uint16Array(E.vertices),v=Ue.createTypedArray(S.length/3,E.indices),D;return l(E.encodedNormals)&&(D=new Uint8Array(E.encodedNormals)),new $y({quantizedVertices:S,indices:v,encodedNormals:D,minimumHeight:E.minimumHeight,maximumHeight:E.maximumHeight,boundingSphere:ae.clone(E.boundingSphere),orientedBoundingBox:Mn.clone(E.orientedBoundingBox),horizonOcclusionPoint:m.clone(E.horizonOcclusionPoint),westIndices:E.westIndices,southIndices:E.southIndices,eastIndices:E.eastIndices,northIndices:E.northIndices,westSkirtHeight:h,southSkirtHeight:A,eastSkirtHeight:x,northSkirtHeight:C,childTileMask:0,credits:T,createdByUpsampling:!0})})};var Uq=32767,H0e=new m;$y.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1);i*=Uq;let o=P.clamp((n-e.south)/e.height,0,1);return o*=Uq,l(this._mesh)?Vht(this,i,o):kht(this,i,o)};function G0e(e,t,n,i,o,r,s,a){let c=Math.min(n,o,s),u=Math.max(n,o,s),f=Math.min(i,r,a),d=Math.max(i,r,a);return e>=c&&e<=u&&t>=f&&t<=d}var Nht=new H,Fht=new H,Uht=new H;function Vht(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,u,Nht),g=r.decodeTextureCoordinates(o,f,Fht),h=r.decodeTextureCoordinates(o,d,Uht);if(G0e(t,n,p.x,p.y,g.x,g.y,h.x,h.y)){let A=z_.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,h.x,h.y,H0e);if(A.x>=-1e-15&&A.y>=-1e-15&&A.z>=-1e-15){let x=r.decodeHeight(o,u),C=r.decodeHeight(o,f),T=r.decodeHeight(o,d);return A.x*x+A.y*C+A.z*T}}}}function kht(e,t,n){let i=e._uValues,o=e._vValues,r=e._heightValues,s=e._indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=i[u],g=i[f],h=i[d],A=o[u],x=o[f],C=o[d];if(G0e(t,n,p,A,g,x,h,C)){let T=z_.computeBarycentricCoordinates(t,n,p,A,g,x,h,C,H0e);if(T.x>=-1e-15&&T.y>=-1e-15&&T.z>=-1e-15){let E=T.x*r[u]+T.y*r[f]+T.z*r[d];return P.lerp(e._minimumHeight,e._maximumHeight,E/Uq)}}}}$y.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};$y.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var TC=$y;function PS(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}var EC=new le;function zht(e,t,n,i){let o=i.length;for(let r=0;r<o;++r){let s=i[r];if(s.x===t&&s.y===n&&s.level===e)return!0}return!1}PS.prototype.addAvailableTileRange=function(e,t,n,i,o){let r=this._tilingScheme,s=this._rootNodes;if(e===0)for(let p=n;p<=o;++p)for(let g=t;g<=i;++g)zht(e,g,p,s)||s.push(new DS(r,void 0,0,g,p));r.tileXYToRectangle(t,n,e,EC);let a=EC.west,c=EC.north;r.tileXYToRectangle(i,o,e,EC);let u=EC.east,f=EC.south,d=new Yht(e,a,f,u,c);for(let p=0;p<s.length;++p){let g=s[p];Vq(g.extent,d)&&qht(this._maximumLevel,g,d)}};PS.prototype.computeMaximumLevelAtPosition=function(e){let t;for(let n=0;n<this._rootNodes.length;++n){let i=this._rootNodes[n];if(IS(i.extent,e)){t=i;break}}return l(t)?CF(void 0,t,e):-1};var Hht=[],Ght=[],Wht=new le,jht=new le;PS.prototype.computeBestAvailableLevelOverRectangle=function(e){let t=Hht;t.length=0,e.east<e.west?(t.push(le.fromRadians(-Math.PI,e.south,e.east,e.north,Wht)),t.push(le.fromRadians(e.west,e.south,Math.PI,e.north,jht))):t.push(e);let n=Ght;n.length=0;let i;for(i=0;i<this._rootNodes.length;++i)TF(n,this._rootNodes[i],t);for(i=n.length-1;i>=0;--i)if(l(n[i])&&n[i].length===0)return i;return 0};var W0e=new he;PS.prototype.isTileAvailable=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(t,n,e,EC);return le.center(i,W0e),this.computeMaximumLevelAtPosition(W0e)>=e};PS.prototype.computeChildMaskForTile=function(e,t,n){let i=e+1;if(i>=this._maximumLevel)return 0;let o=0;return o|=this.isTileAvailable(i,2*t,2*n+1)?1:0,o|=this.isTileAvailable(i,2*t+1,2*n+1)?2:0,o|=this.isTileAvailable(i,2*t,2*n)?4:0,o|=this.isTileAvailable(i,2*t+1,2*n)?8:0,o};function DS(e,t,n,i,o){this.tilingScheme=e,this.parent=t,this.level=n,this.x=i,this.y=o,this.extent=e.tileXYToRectangle(i,o,n),this.rectangles=[],this._sw=void 0,this._se=void 0,this._nw=void 0,this._ne=void 0}Object.defineProperties(DS.prototype,{nw:{get:function(){return this._nw||(this._nw=new DS(this.tilingScheme,this,this.level+1,this.x*2,this.y*2)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new DS(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new DS(this.tilingScheme,this,this.level+1,this.x*2,this.y*2+1)),this._sw}},se:{get:function(){return this._se||(this._se=new DS(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2+1)),this._se}}});function Yht(e,t,n,i,o){this.level=e,this.west=t,this.south=n,this.east=i,this.north=o}function Vq(e,t){let n=Math.max(e.west,t.west),i=Math.max(e.south,t.south),o=Math.min(e.east,t.east),r=Math.min(e.north,t.north);return i<r&&n<o}function qht(e,t,n){for(;t.level<e;)if(Gz(t.nw.extent,n))t=t.nw;else if(Gz(t.ne.extent,n))t=t.ne;else if(Gz(t.sw.extent,n))t=t.sw;else if(Gz(t.se.extent,n))t=t.se;else break;if(t.rectangles.length===0||t.rectangles[t.rectangles.length-1].level<=n.level)t.rectangles.push(n);else{let i=wo(t.rectangles,n.level,Xht);i<0&&(i=~i),t.rectangles.splice(i,0,n)}}function Xht(e,t){return e.level-t}function Gz(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function IS(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function CF(e,t,n){let i=0,o=!1;for(;!o;){let r=t._nw&&IS(t._nw.extent,n),s=t._ne&&IS(t._ne.extent,n),a=t._sw&&IS(t._sw.extent,n),c=t._se&&IS(t._se.extent,n);if(r+s+a+c>1){r&&(i=Math.max(i,CF(t,t._nw,n))),s&&(i=Math.max(i,CF(t,t._ne,n))),a&&(i=Math.max(i,CF(t,t._sw,n))),c&&(i=Math.max(i,CF(t,t._se,n)));break}else r?t=t._nw:s?t=t._ne:a?t=t._sw:c?t=t._se:o=!0}for(;t!==e;){let r=t.rectangles;for(let s=r.length-1;s>=0&&r[s].level>i;--s){let a=r[s];IS(a,n)&&(i=a.level)}t=t.parent}return i}function TF(e,t,n){if(!t)return;let i,o=!1;for(i=0;i<n.length;++i)o=o||Vq(t.extent,n[i]);if(!o)return;let r=t.rectangles;for(i=0;i<r.length;++i){let s=r[i];e[s.level]||(e[s.level]=n),e[s.level]=Kht(e[s.level],s)}TF(e,t._nw,n),TF(e,t._ne,n),TF(e,t._sw,n),TF(e,t._se,n)}function Kht(e,t){let n=[];for(let i=0;i<e.length;++i){let o=e[i];Vq(o,t)?(o.west<t.west&&n.push(new le(o.west,o.south,t.west,o.north)),o.east>t.east&&n.push(new le(t.east,o.south,o.east,o.north)),o.south<t.south&&n.push(new le(Math.max(t.west,o.west),o.south,Math.min(t.east,o.east),t.south)),o.north>t.north&&n.push(new le(Math.max(t.west,o.west),t.north,Math.min(t.east,o.east),o.north))):n.push(o)}return n}var gm=PS;function Jht(e){this.resource=e.resource,this.version=e.version,this.isHeightmap=e.isHeightmap,this.tileUrlTemplates=e.tileUrlTemplates,this.availability=e.availability,this.hasVertexNormals=e.hasVertexNormals,this.hasWaterMask=e.hasWaterMask,this.hasMetadata=e.hasMetadata,this.availabilityLevels=e.availabilityLevels,this.availabilityTilesLoaded=e.availabilityTilesLoaded,this.littleEndianExtensionSize=e.littleEndianExtensionSize,this.availabilityPromiseCache={}}function Hq(e){this.requestVertexNormals=y(e.requestVertexNormals,!1),this.requestWaterMask=y(e.requestWaterMask,!1),this.requestMetadata=y(e.requestMetadata,!0),this.ellipsoid=e.ellipsoid,this.heightmapWidth=65,this.heightmapStructure=void 0,this.hasWaterMask=!1,this.hasMetadata=!1,this.hasVertexNormals=!1,this.scheme=void 0,this.lastResource=void 0,this.layerJsonResource=void 0,this.previousError=void 0,this.availability=void 0,this.tilingScheme=void 0,this.levelZeroMaximumGeometricError=void 0,this.heightmapStructure=void 0,this.layers=[],this.attribution="",this.overallAvailability=[],this.overallMaxZoom=0,this.tileCredits=[]}Hq.prototype.build=function(e){e._heightmapWidth=this.heightmapWidth,e._scheme=this.scheme;let t=l(this.lastResource.credits)?this.lastResource.credits:[];e._tileCredits=t.concat(this.tileCredits),e._availability=this.availability,e._tilingScheme=this.tilingScheme,e._requestWaterMask=this.requestWaterMask,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._heightmapStructure=this.heightmapStructure,e._layers=this.layers,e._hasWaterMask=this.hasWaterMask,e._hasVertexNormals=this.hasVertexNormals,e._hasMetadata=this.hasMetadata,e._ready=!0};async function Y0e(e,t,n){if(!t.format){let A="The tile format is not specified in the layer.json file.";throw e.previousError=yi.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,A),new de(A)}if(!t.tiles||t.tiles.length===0){let A="The layer.json file does not specify any tile URL templates.";throw e.previousError=yi.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,A),new de(A)}let i=!1,o=!1,r=!1,s=!0,a=!1;if(t.format==="heightmap-1.0")a=!0,l(e.heightmapStructure)||(e.heightmapStructure={heightScale:1/5,heightOffset:-1e3,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1,lowestEncodedHeight:0,highestEncodedHeight:256*256-1}),o=!0,e.requestWaterMask=!0;else if(t.format.indexOf("quantized-mesh-1.")!==0){let A=`The tile format "${t.format}" is invalid or not supported.`;throw e.previousError=yi.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,A),new de(A)}let c=t.tiles,u=t.maxzoom;if(e.overallMaxZoom=Math.max(e.overallMaxZoom,u),!t.projection||t.projection==="EPSG:4326")e.tilingScheme=new zi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else if(t.projection==="EPSG:3857")e.tilingScheme=new Mr({numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else{let A=`The projection "${t.projection}" is invalid or not supported.`;throw e.previousError=yi.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,A),new de(A)}if(e.levelZeroMaximumGeometricError=zr.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.heightmapWidth,e.tilingScheme.getNumberOfXTilesAtLevel(0)),!t.scheme||t.scheme==="tms"||t.scheme==="slippyMap")e.scheme=t.scheme;else{let A=`The scheme "${t.scheme}" is invalid or not supported.`;throw e.previousError=yi.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,A),new de(A)}let f;l(t.extensions)&&t.extensions.indexOf("octvertexnormals")!==-1?i=!0:l(t.extensions)&&t.extensions.indexOf("vertexnormals")!==-1&&(i=!0,s=!1),l(t.extensions)&&t.extensions.indexOf("watermask")!==-1&&(o=!0),l(t.extensions)&&t.extensions.indexOf("metadata")!==-1&&(r=!0);let d=t.metadataAvailability,p=t.available,g;if(l(p)&&!l(d)){g=new gm(e.tilingScheme,p.length);for(let A=0;A<p.length;++A){let x=p[A],C=e.tilingScheme.getNumberOfYTilesAtLevel(A);l(e.overallAvailability[A])||(e.overallAvailability[A]=[]);for(let T=0;T<x.length;++T){let E=x[T],S=C-E.endY-1,v=C-E.startY-1;e.overallAvailability[A].push([E.startX,S,E.endX,v]),g.addAvailableTileRange(A,E.startX,S,E.endX,v)}}}else l(d)&&(f=new gm(e.tilingScheme,u),g=new gm(e.tilingScheme,u),e.overallAvailability[0]=[[0,0,1,0]],g.addAvailableTileRange(0,0,0,1,0));e.hasWaterMask=e.hasWaterMask||o,e.hasVertexNormals=e.hasVertexNormals||i,e.hasMetadata=e.hasMetadata||r,l(t.attribution)&&(e.attribution.length>0&&(e.attribution+=" "),e.attribution+=t.attribution),e.layers.push(new Jht({resource:e.lastResource,version:t.version,isHeightmap:a,tileUrlTemplates:c,availability:g,hasVertexNormals:i,hasWaterMask:o,hasMetadata:r,availabilityLevels:d,availabilityTilesLoaded:f,littleEndianExtensionSize:s}));let h=t.parentUrl;return l(h)?l(g)?(e.lastResource=e.lastResource.getDerivedResource({url:h}),e.lastResource.appendForwardSlash(),e.layerJsonResource=e.lastResource.getDerivedResource({url:"layer.json"}),await Wz(e),!0):(console.log("A layer.json can't have a parentUrl if it does't have an available array."),!0):!0}function Zht(e,t,n){let i=`An error occurred while accessing ${e.layerJsonResource.url}.`;if(l(t)&&(i+=` +${t.message}`),e.previousError=yi.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,i),e.previousError.retry)return Wz(e,n);throw new de(i)}async function Qht(e,t,n){await Y0e(e,t,n);let i=e.overallAvailability.length;if(i>0){let o=e.availability=new gm(e.tilingScheme,e.overallMaxZoom);for(let r=0;r<i;++r){let s=e.overallAvailability[r];for(let a=0;a<s.length;++a){let c=s[a];o.addAvailableTileRange(r,c[0],c[1],c[2],c[3])}}}if(e.attribution.length>0){let o=new It(e.attribution);e.tileCredits.push(o)}return!0}async function Wz(e,t){try{let n=await e.layerJsonResource.fetchJson();return Qht(e,n,t)}catch(n){return l(n)&&n.statusCode===404?(await Y0e(e,{tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]},t),!0):Zht(e,n,t)}}function Nu(e){e=y(e,y.EMPTY_OBJECT),this._heightmapWidth=void 0,this._heightmapStructure=void 0,this._hasWaterMask=!1,this._hasVertexNormals=!1,this._hasMetadata=!1,this._scheme=void 0,this._ellipsoid=e.ellipsoid,this._requestVertexNormals=y(e.requestVertexNormals,!1),this._requestWaterMask=y(e.requestWaterMask,!1),this._requestMetadata=y(e.requestMetadata,!0),this._errorEvent=new ge;let t=e.credit;typeof t=="string"&&(t=new It(t)),this._credit=t,this._availability=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._layers=void 0,this._ready=!1,this._tileCredits=void 0,this._readyPromise=Promise.resolve(!0),l(e.url)&&($("CesiumTerrainProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."),this._readyPromise=Nu._initializeReadyPromise(e,this))}Nu._initializeReadyPromise=async function(e,t){let n=await Promise.resolve(e.url),i=new Hq(e),o=we.createIfNeeded(n);return o.appendForwardSlash(),i.lastResource=o,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await Wz(i,t),i.build(t),!0};var kq={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};function j0e(e){return!l(e)||e.length===0?{Accept:"application/vnd.quantized-mesh,application/octet-stream;q=0.9,*/*;q=0.01"}:{Accept:`application/vnd.quantized-mesh;extensions=${e.join("-")},application/octet-stream;q=0.9,*/*;q=0.01`}}function $ht(e,t,n,i,o){let r=new Uint16Array(t,0,e._heightmapWidth*e._heightmapWidth);return new ba({buffer:r,childTileMask:new Uint8Array(t,r.byteLength,1)[0],waterMask:new Uint8Array(t,r.byteLength+1,t.byteLength-r.byteLength-1),width:e._heightmapWidth,height:e._heightmapWidth,structure:e._heightmapStructure,credits:e._tileCredits})}function ept(e,t,n,i,o,r){let s=r.littleEndianExtensionSize,a=0,c=3,u=c+1,f=Float64Array.BYTES_PER_ELEMENT*c,d=Float64Array.BYTES_PER_ELEMENT*u,p=3,g=Uint16Array.BYTES_PER_ELEMENT*p,h=3,A=Uint16Array.BYTES_PER_ELEMENT,x=A*h,C=new DataView(t),T=new m(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0));a+=f;let E=C.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let S=C.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let v=new ae(new m(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0)),C.getFloat64(a+f,!0));a+=d;let D=new m(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0));a+=f;let O=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let M=new Uint16Array(t,a,O*3);a+=O*g,O>64*1024&&(A=Uint32Array.BYTES_PER_ELEMENT,x=A*h);let L=M.subarray(0,O),N=M.subarray(O,2*O),_=M.subarray(O*2,3*O);jn.zigZagDeltaDecode(L,N,_),a%A!==0&&(a+=A-a%A);let b=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let w=Ue.createTypedArrayFromArrayBuffer(O,t,a,b*h);a+=b*x;let I=0,R=w.length;for(let se=0;se<R;++se){let Ae=w[se];w[se]=I-Ae,Ae===0&&++I}let F=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let k=Ue.createTypedArrayFromArrayBuffer(O,t,a,F);a+=F*A;let V=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let G=Ue.createTypedArrayFromArrayBuffer(O,t,a,V);a+=V*A;let U=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let q=Ue.createTypedArrayFromArrayBuffer(O,t,a,U);a+=U*A;let Y=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let Q=Ue.createTypedArrayFromArrayBuffer(O,t,a,Y);a+=Y*A;let W,K;for(;a<C.byteLength;){let se=C.getUint8(a,!0);a+=Uint8Array.BYTES_PER_ELEMENT;let Ae=C.getUint32(a,s);if(a+=Uint32Array.BYTES_PER_ELEMENT,se===kq.OCT_VERTEX_NORMALS&&e._requestVertexNormals)W=new Uint8Array(t,a,O*2);else if(se===kq.WATER_MASK&&e._requestWaterMask)K=new Uint8Array(t,a,Ae);else if(se===kq.METADATA&&e._requestMetadata){let me=C.getUint32(a,!0);if(me>0){let Ie=Do(new Uint8Array(t),a+Uint32Array.BYTES_PER_ELEMENT,me).available;if(l(Ie))for(let Ve=0;Ve<Ie.length;++Ve){let Re=n+Ve+1,ke=Ie[Ve],dt=e._tilingScheme.getNumberOfYTilesAtLevel(Re);for(let pt=0;pt<ke.length;++pt){let rt=ke[pt],fn=dt-rt.endY-1,Bn=dt-rt.startY-1;e.availability.addAvailableTileRange(Re,rt.startX,fn,rt.endX,Bn),r.availability.addAvailableTileRange(Re,rt.startX,fn,rt.endX,Bn)}}}r.availabilityTilesLoaded.addAvailableTileRange(n,i,o,i,o)}a+=Ae}let J=e.getLevelMaximumGeometricError(n)*5,_e=e._tilingScheme.tileXYToRectangle(i,o,n),xe=Mn.fromRectangle(_e,E,S,e._tilingScheme.ellipsoid);return new TC({center:T,minimumHeight:E,maximumHeight:S,boundingSphere:v,orientedBoundingBox:xe,horizonOcclusionPoint:D,quantizedVertices:M,encodedNormals:W,indices:w,westIndices:k,southIndices:G,eastIndices:q,northIndices:Q,westSkirtHeight:J,southSkirtHeight:J,eastSkirtHeight:J,northSkirtHeight:J,childTileMask:e.availability.computeChildMaskForTile(n,i,o),waterMask:K,credits:e._tileCredits})}Nu.prototype.requestTileGeometry=function(e,t,n,i){let o=this._layers,r,s=o.length;if(s===1)r=o[0];else for(let a=0;a<s;++a){let c=o[a];if(!l(c.availability)||c.availability.isTileAvailable(n,e,t)){r=c;break}}return q0e(this,e,t,n,r,i)};function q0e(e,t,n,i,o,r){if(!l(o))return Promise.reject(new de("Terrain tile doesn't exist"));let s=o.tileUrlTemplates;if(s.length===0)return;let a;!e._scheme||e._scheme==="tms"?a=e._tilingScheme.getNumberOfYTilesAtLevel(i)-n-1:a=n;let c=[];e._requestVertexNormals&&o.hasVertexNormals&&c.push(o.littleEndianExtensionSize?"octvertexnormals":"vertexnormals"),e._requestWaterMask&&o.hasWaterMask&&c.push("watermask"),e._requestMetadata&&o.hasMetadata&&c.push("metadata");let u,f,d=s[(t+a+i)%s.length],p=o.resource;l(p._ionEndpoint)&&!l(p._ionEndpoint.externalType)?(c.length!==0&&(f={extensions:c.join("-")}),u=j0e(void 0)):u=j0e(c);let g=p.getDerivedResource({url:d,templateValues:{version:o.version,z:i,x:t,y:a},queryParameters:f,headers:u,request:r}).fetchArrayBuffer();if(l(g))return g.then(function(h){return l(h)?l(e._heightmapStructure)?$ht(e,h,i,t,n):ept(e,h,i,t,n,o):Promise.reject(new de("Mesh buffer doesn't exist."))})}Object.defineProperties(Nu.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("CesiumTerrainProvider.ready","CesiumTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("CesiumTerrainProvider.readyPromise","CesiumTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."),this._readyPromise}},hasWaterMask:{get:function(){return this._hasWaterMask&&this._requestWaterMask}},hasVertexNormals:{get:function(){return this._hasVertexNormals&&this._requestVertexNormals}},hasMetadata:{get:function(){return this._hasMetadata&&this._requestMetadata}},requestVertexNormals:{get:function(){return this._requestVertexNormals}},requestWaterMask:{get:function(){return this._requestWaterMask}},requestMetadata:{get:function(){return this._requestMetadata}},availability:{get:function(){return this._availability}}});Nu.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Nu.fromIonAssetId=async function(e,t){let n=await qs.fromAssetId(e);return Nu.fromUrl(n,t)};Nu.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=we.createIfNeeded(e);n.appendForwardSlash();let i=new Hq(t);i.lastResource=n,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await Wz(i);let o=new Nu(t);return i.build(o),o};Nu.prototype.getTileDataAvailable=function(e,t,n){if(!l(this._availability))return;if(n>this._availability._maximumLevel)return!1;if(this._availability.isTileAvailable(n,e,t))return!0;if(!this._hasMetadata)return!1;let i=this._layers,o=i.length;for(let r=0;r<o;++r)if(X0e(this,e,t,n,i[r],r===0).result)return;return!1};Nu.prototype.loadTileDataAvailability=function(e,t,n){if(!l(this._availability)||n>this._availability._maximumLevel||this._availability.isTileAvailable(n,e,t)||!this._hasMetadata)return;let i=this._layers,o=i.length;for(let r=0;r<o;++r){let s=X0e(this,e,t,n,i[r],r===0);if(l(s.promise))return s.promise}};function zq(e,t,n,i){if(i===0)return;let o=e.availabilityLevels,r=i%o===0?i-o:(i/o|0)*o,s=1<<i-r,a=t/s|0,c=n/s|0;return{level:r,x:a,y:c}}function X0e(e,t,n,i,o,r){if(!l(o.availabilityLevels))return{result:!1};let s,a=function(){delete o.availabilityPromiseCache[s]},c=o.availabilityTilesLoaded,u=o.availability,f=zq(o,t,n,i);for(;l(f);){if(u.isTileAvailable(f.level,f.x,f.y)&&!c.isTileAvailable(f.level,f.x,f.y)){let d;if(!r&&(s=`${f.level}-${f.x}-${f.y}`,d=o.availabilityPromiseCache[s],!l(d))){let p=new Ho({throttle:!1,throttleByServer:!0,type:Xr.TERRAIN});d=q0e(e,f.x,f.y,f.level,o,p),l(d)&&(o.availabilityPromiseCache[s]=d,d.then(a))}return{result:!0,promise:d}}f=zq(o,f.x,f.y,f.level)}return{result:!1}}Nu._getAvailabilityTile=zq;var e0=Nu;function tpt(e){return e=y(e,y.EMPTY_OBJECT),e0.fromIonAssetId(1,{requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1)})}var bC=tpt;function jz(e){this._ready=!1,this._provider=void 0,this._errorEvent=new ge,this._readyEvent=new ge,ipt(this,e)}Object.defineProperties(jz.prototype,{errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}}});jz.fromWorldTerrain=function(e){return new jz(bC(e))};function npt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function ipt(e,t){let n;try{n=await Promise.resolve(t),e._provider=n,e._ready=!0,e._readyEvent.raiseEvent(n)}catch(i){npt(e._errorEvent,i)}}var EF=jz;function OS(){}OS.prototype.boundingVolume=void 0;OS.prototype.boundingSphere=void 0;OS.prototype.distanceToCamera=function(e){fe.throwInstantiationError()};OS.prototype.intersectPlane=function(e){fe.throwInstantiationError()};OS.prototype.createDebugVolume=function(e){fe.throwInstantiationError()};var Gq=OS;function bF(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new zi({ellipsoid:e.ellipsoid}),this._color=y(e.color,z.YELLOW),this._errorEvent=new ge,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._ready=!0,this._readyPromise=Promise.resolve(!0),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0}Object.defineProperties(bF.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("TileCoordinatesImageryProvider.ready","TileCoordinatesImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("TileCoordinatesImageryProvider.readyPromise","TileCoordinatesImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}},defaultAlpha:{get:function(){return $("TileCoordinatesImageryProvider.defaultAlpha","TileCoordinatesImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("TileCoordinatesImageryProvider.defaultAlpha","TileCoordinatesImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("TileCoordinatesImageryProvider.defaultNightAlpha","TileCoordinatesImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("TileCoordinatesImageryProvider.defaultNightAlpha","TileCoordinatesImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("TileCoordinatesImageryProvider.defaultDayAlpha","TileCoordinatesImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("TileCoordinatesImageryProvider.defaultDayAlpha","TileCoordinatesImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("TileCoordinatesImageryProvider.defaultBrightness","TileCoordinatesImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("TileCoordinatesImageryProvider.defaultBrightness","TileCoordinatesImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("TileCoordinatesImageryProvider.defaultContrast","TileCoordinatesImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("TileCoordinatesImageryProvider.defaultContrast","TileCoordinatesImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("TileCoordinatesImageryProvider.defaultHue","TileCoordinatesImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("TileCoordinatesImageryProvider.defaultHue","TileCoordinatesImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("TileCoordinatesImageryProvider.defaultSaturation","TileCoordinatesImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("TileCoordinatesImageryProvider.defaultSaturation","TileCoordinatesImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("TileCoordinatesImageryProvider.defaultGamma","TileCoordinatesImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("TileCoordinatesImageryProvider.defaultGamma","TileCoordinatesImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("TileCoordinatesImageryProvider.defaultMinificationFilter","TileCoordinatesImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("TileCoordinatesImageryProvider.defaultMinificationFilter","TileCoordinatesImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("TileCoordinatesImageryProvider.defaultMagnificationFilter","TileCoordinatesImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("TileCoordinatesImageryProvider.defaultMagnificationFilter","TileCoordinatesImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});bF.prototype.getTileCredits=function(e,t,n){};bF.prototype.requestImage=function(e,t,n,i){let o=document.createElement("canvas");o.width=256,o.height=256;let r=o.getContext("2d"),s=this._color.toCssColorString();return r.strokeStyle=s,r.lineWidth=2,r.strokeRect(1,1,255,255),r.font="bold 25px Arial",r.textAlign="center",r.fillStyle=s,r.fillText(`L: ${n}`,124,86),r.fillText(`X: ${e}`,124,136),r.fillText(`Y: ${t}`,124,186),Promise.resolve(o)};bF.prototype.pickFeatures=function(e,t,n,i,o){};var SF=bF;function Wq(e){fe.throwInstantiationError()}Wq.prototype.isReady=fe.throwInstantiationError;Wq.prototype.shouldDiscardImage=fe.throwInstantiationError;var jq=Wq;var opt={START:0,LOADING:1,READY:2,UPSAMPLED_ONLY:3},Yq=Object.freeze(opt);function wC(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this.shadows=y(e.shadows,xn.ENABLED),this.maximumMemoryUsage=y(e.maximumMemoryUsage,256),this.shading=new Hm(e.shading),this.style=e.style,this.frameFailed=new ge,this.frameChanged=new ge,this._clock=e.clock,this._intervals=e.intervals,this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,this._pointCloudEyeDomeLighting=new Ip,this._loadTimestamp=void 0,this._clippingPlanesState=0,this._styleDirty=!1,this._pickId=void 0,this._totalMemoryUsageInBytes=0,this._frames=[],this._previousInterval=void 0,this._nextInterval=void 0,this._lastRenderedFrame=void 0,this._clockMultiplier=0,this._resolveReadyPromise=void 0;let t=this;this._readyPromise=new Promise(function(n){t._resolveReadyPromise=n}),this._runningSum=0,this._runningLength=0,this._runningIndex=0,this._runningSamples=new Array(5).fill(0),this._runningAverage=0}Object.defineProperties(wC.prototype,{clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){os.setOwner(e,this,"_clippingPlanes")}},totalMemoryUsageInBytes:{get:function(){return this._totalMemoryUsageInBytes}},boundingSphere:{get:function(){if(l(this._lastRenderedFrame))return this._lastRenderedFrame.pointCloud.boundingSphere}},readyPromise:{get:function(){return $("TimeDynamicPointCloud.readyPromise","TimeDynamicPointCloud.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use TimeDynamicPointCloud.frameFailed instead."),this._readyPromise}}});function rpt(e){return`uniform vec4 czm_pickColor; +${e}`}function spt(e){return function(t){return _t(t,{czm_pickColor:function(){return e._pickId.color}})}}function apt(){return"czm_pickColor"}wC.prototype.makeStyleDirty=function(){this._styleDirty=!0};wC.prototype._getAverageLoadTime=function(){return this._runningLength===0?.05:this._runningAverage};var cpt=new ee;function Xq(e){let t=e._clock,n=t.canAnimate&&t.shouldAnimate,i=t.multiplier;return n?i:0}function SC(e,t){return e._intervals.indexOf(t.start)}function lpt(e,t){let n=e._intervals,i=e._clock,o=Xq(e);if(o===0)return;let r=e._getAverageLoadTime(),s=ee.addSeconds(i.currentTime,r*o,cpt),a=n.indexOf(s),c=SC(e,t);return a===c&&(o>=0?++a:--a),n.get(a)}function upt(e){let t=e._intervals,i=e._clock.currentTime,o=t.indexOf(i);return t.get(o)}function fpt(e,t,n){let i=Xq(e),o=SC(e,t),r=SC(e,n);return i>=0?o>=r:o<=r}function J0e(e,t){return function(n){let i=l(n.message)?n.message:n.toString();e.frameFailed.numberOfListeners>0?e.frameFailed.raiseEvent({uri:t,message:i}):(console.log(`A frame failed to load: ${t}`),console.log(`Error: ${i}`))}}function dpt(e,t,n){let i=SC(e,t),o=e._frames,r=o[i];if(!l(r)){let s=t.data.transform,a=l(s)?B.fromArray(s):void 0,c=t.data.uri;r={pointCloud:void 0,transform:a,timestamp:gi(),sequential:!0,ready:!1,touchedFrameNumber:n.frameNumber,uri:c},o[i]=r,we.fetchArrayBuffer({url:c}).then(function(u){r.pointCloud=new gF({arrayBuffer:u,cull:!0,fragmentShaderLoaded:rpt,uniformMapLoaded:spt(e),pickIdLoaded:apt})}).catch(J0e(e,c))}return r}function mpt(e,t){e._runningSum+=t,e._runningSum-=e._runningSamples[e._runningIndex],e._runningSamples[e._runningIndex]=t,e._runningLength=Math.min(e._runningLength+1,e._runningSamples.length),e._runningIndex=(e._runningIndex+1)%e._runningSamples.length,e._runningAverage=e._runningSum/e._runningLength}function hpt(e,t,n,i){t.touchedFrameNumber<i.frameNumber-1&&(t.sequential=!1);let o=t.pointCloud;if(l(o)&&!t.ready){let r=i.commandList,s=r.length;if(Z0e(e,t,n,i),o.ready&&(t.ready=!0,e._totalMemoryUsageInBytes+=o.geometryByteLength,r.length=s,t.sequential)){let a=(gi()-t.timestamp)/1e3;mpt(e,a)}}t.touchedFrameNumber=i.frameNumber}var ppt=new B;function _pt(e,t){let n=e.shading;return l(n)&&l(n.baseResolution)?n.baseResolution:l(t.boundingSphere)?P.cbrt(t.boundingSphere.volume()/t.pointsLength):0}function gpt(e){let t=e.shading;return l(t)&&l(t.maximumAttenuation)?t.maximumAttenuation:10}var ypt=new Hm;function Z0e(e,t,n,i){let o=y(e.shading,ypt),r=t.pointCloud,s=y(t.transform,B.IDENTITY);r.modelMatrix=B.multiplyTransformation(e.modelMatrix,s,ppt),r.style=e.style,r.time=n.timeSinceLoad,r.shadows=e.shadows,r.clippingPlanes=e._clippingPlanes,r.isClipped=n.isClipped,r.attenuation=o.attenuation,r.backFaceCulling=o.backFaceCulling,r.normalShading=o.normalShading,r.geometricError=_pt(e,r),r.geometricErrorScale=o.geometricErrorScale,r.maximumAttenuation=gpt(e);try{r.update(i)}catch(a){J0e(e,t.uri)(a)}t.touchedFrameNumber=i.frameNumber}function qq(e,t,n,i){let o=dpt(e,t,i);hpt(e,o,n,i)}function Apt(e){return function(t){return t.touchedFrameNumber<e.frameNumber}}function Q0e(e,t){let n=e._frames,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(l(r)&&(!l(t)||t(r))){let s=r.pointCloud;r.ready&&(e._totalMemoryUsageInBytes-=s.geometryByteLength),l(s)&&s.destroy(),r===e._lastRenderedFrame&&(e._lastRenderedFrame=void 0),n[o]=void 0}}}function xpt(e,t){let n=SC(e,t),i=e._frames[n];if(l(i)&&i.ready)return i}function K0e(e,t,n,i,o){return l(n)?n.ready?!0:(qq(e,t,i,o),n.ready):!1}function Cpt(e,t,n,i,o){let r,s,a,c=e._intervals,u=e._frames,f=SC(e,n),d=SC(e,t);if(f>=d){for(r=f;r>=d;--r)if(s=c.get(r),a=u[r],K0e(e,s,a,i,o))return s}else for(r=f;r<=d;++r)if(s=c.get(r),a=u[r],K0e(e,s,a,i,o))return s;return t}function Tpt(e,t,n){let i=e._frames,o=i.length;for(let r=0;r<o;++r){let s=i[r];l(s)&&l(s.pointCloud)&&(s.pointCloud.clippingPlanesDirty=t,s.pointCloud.styleDirty=n)}}var MS={timeSinceLoad:0,isClipped:!1,clippingPlanesDirty:!1};wC.prototype.update=function(e){if(e.mode===ne.MORPHING||!this.show)return;l(this._pickId)||(this._pickId=e.context.createPickId({primitive:this})),l(this._loadTimestamp)||(this._loadTimestamp=ee.clone(e.time));let t=Math.max(ee.secondsDifference(e.time,this._loadTimestamp)*1e3,0),n=this._clippingPlanes,i=0,o=!1,r=l(n)&&n.enabled;r&&(n.update(e),i=n.clippingPlanesState),this._clippingPlanesState!==i&&(this._clippingPlanesState=i,o=!0);let s=this._styleDirty;this._styleDirty=!1,(o||s)&&Tpt(this,o,s),MS.timeSinceLoad=t,MS.isClipped=r;let a=this.shading,c=this._pointCloudEyeDomeLighting,u=e.commandList,f=u.length,d=this._previousInterval,p=this._nextInterval,g=upt(this);if(!l(g))return;let h=!1,A=Xq(this),x=A===0;A!==this._clockMultiplier&&(h=!0,this._clockMultiplier=A),(!l(d)||x)&&(d=g),(!l(p)||h||fpt(this,g,p))&&(p=lpt(this,g)),d=Cpt(this,d,g,MS,e);let C=xpt(this,d);l(C)||(qq(this,d,MS,e),C=this._lastRenderedFrame),l(C)&&Z0e(this,C,MS,e),l(p)&&qq(this,p,MS,e);let T=this;l(C)&&!l(this._lastRenderedFrame)&&e.afterRender.push(function(){return T._resolveReadyPromise(T),!0}),l(C)&&C!==this._lastRenderedFrame&&T.frameChanged.numberOfListeners>0&&e.afterRender.push(function(){return T.frameChanged.raiseEvent(T),!0}),this._previousInterval=d,this._nextInterval=p,this._lastRenderedFrame=C;let E=this._totalMemoryUsageInBytes,S=this.maximumMemoryUsage*1024*1024;E>S&&Q0e(this,Apt(e));let D=u.length-f;l(a)&&a.attenuation&&a.eyeDomeLighting&&D>0&&c.update(e,f,a,this.boundingSphere)};wC.prototype.isDestroyed=function(){return!1};wC.prototype.destroy=function(){return Q0e(this),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var RS=wC;function Yz(e,t){this.show=!0,l(e)||(e=new Ke),this.rectangle=Ke.clone(e),l(t)||(t=ki.fromType(ki.ColorType,{color:new z(1,1,1,1)})),this.material=t,this._material=void 0,this._overlayCommand=void 0,this._rs=void 0}Yz.prototype.update=function(e){if(!this.show)return;let t=this._rs;if((!l(t)||!Ke.equals(t.viewport,this.rectangle))&&(this._rs=ze.fromCache({blending:mn.ALPHA_BLEND,viewport:this.rectangle})),e.passes.render){let i=e.context;if(this._material!==this.material||!l(this._overlayCommand)){this._material=this.material,l(this._overlayCommand)&&this._overlayCommand.shaderProgram.destroy();let o=new He({sources:[this._material.shaderSource,JN]});this._overlayCommand=i.createViewportQuadCommand(o,{renderState:this._rs,uniformMap:this._material._uniforms,owner:this}),this._overlayCommand.pass=be.OVERLAY}this._material.update(i),this._overlayCommand.renderState=this._rs,this._overlayCommand.uniformMap=this._material._uniforms,e.commandList.push(this._overlayCommand)}};Yz.prototype.isDestroyed=function(){return!1};Yz.prototype.destroy=function(){return l(this._overlayCommand)&&(this._overlayCommand.shaderProgram=this._overlayCommand.shaderProgram&&this._overlayCommand.shaderProgram.destroy()),ue(this)};var Kq=Yz;var wF=`// See Intersection.glsl for the definition of intersectScene +// See IntersectionUtils.glsl for the definition of nextIntersection +// See convertUvToBox.glsl, convertUvToCylinder.glsl, or convertUvToEllipsoid.glsl +// for the definition of convertUvToShapeUvSpace. The appropriate function is +// selected based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See Octree.glsl for the definitions of TraversalData, SampleData, +// traverseOctreeFromBeginning, and traverseOctreeFromExisting +// See Megatexture.glsl for the definition of accumulatePropertiesFromMegatexture + +#define STEP_COUNT_MAX 1000 // Harcoded value because GLSL doesn't like variable length loops +#define ALPHA_ACCUM_MAX 0.98 // Must be > 0.0 and <= 1.0 + +uniform mat3 u_transformDirectionViewToLocal; +uniform vec3 u_cameraPositionUv; +uniform float u_stepSize; + +#if defined(PICKING) + uniform vec4 u_pickColor; +#endif + +#if defined(JITTER) +float hash(vec2 p) +{ + vec3 p3 = fract(vec3(p.xyx) * 50.0); // magic number = hashscale + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); +} +#endif + +vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection) { +#if defined(SHAPE_BOX) + Box voxelBox = constructVoxelBox(sampleData.tileCoords, sampleData.tileUv); + RayShapeIntersection voxelIntersection = intersectBox(viewRay, voxelBox); + vec4 entry = shapeIntersection.entry.w >= voxelIntersection.entry.w ? shapeIntersection.entry : voxelIntersection.entry; + float exit = min(voxelIntersection.exit.w, shapeIntersection.exit.w); + float dt = (exit - entry.w) * RAY_SCALE; + return vec4(normalize(entry.xyz), dt); +#else + float dimAtLevel = pow(2.0, float(sampleData.tileCoords.w)); + return vec4(viewRay.dir, u_stepSize / dimAtLevel); +#endif +} + +void main() +{ + vec4 fragCoord = gl_FragCoord; + vec2 screenCoord = (fragCoord.xy - czm_viewport.xy) / czm_viewport.zw; // [0,1] + vec3 eyeDirection = normalize(czm_windowToEyeCoordinates(fragCoord).xyz); + vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case + vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case + vec3 viewPosUv = u_cameraPositionUv; + #if defined(SHAPE_BOX) + vec3 dInv = 1.0 / viewDirUv; + Ray viewRayUv = Ray(viewPosUv, viewDirUv, dInv); + #else + Ray viewRayUv = Ray(viewPosUv, viewDirUv); + #endif + + Intersections ix; + RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix); + + // Exit early if the scene was completely missed. + if (shapeIntersection.entry.w == NO_HIT) { + discard; + } + + float currT = shapeIntersection.entry.w * RAY_SCALE; + float endT = shapeIntersection.exit.w; + vec3 positionUv = viewPosUv + currT * viewDirUv; + vec3 positionUvShapeSpace = convertUvToShapeUvSpace(positionUv); + + // Traverse the tree from the start position + TraversalData traversalData; + SampleData sampleDatas[SAMPLE_COUNT]; + traverseOctreeFromBeginning(positionUvShapeSpace, traversalData, sampleDatas); + vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection); + + #if defined(JITTER) + float noise = hash(screenCoord); // [0,1] + currT += noise * step.w; + positionUv += noise * step.w * viewDirUv; + #endif + + FragmentInput fragmentInput; + #if defined(STATISTICS) + setStatistics(fragmentInput.metadata.statistics); + #endif + + vec4 colorAccum =vec4(0.0); + + for (int stepCount = 0; stepCount < STEP_COUNT_MAX; ++stepCount) { + // Read properties from the megatexture based on the traversal state + Properties properties = accumulatePropertiesFromMegatexture(sampleDatas); + + // Prepare the custom shader inputs + copyPropertiesToMetadata(properties, fragmentInput.metadata); + fragmentInput.voxel.positionUv = positionUv; + fragmentInput.voxel.positionShapeUv = positionUvShapeSpace; + fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv; + fragmentInput.voxel.viewDirUv = viewDirUv; + fragmentInput.voxel.viewDirWorld = viewDirWorld; + fragmentInput.voxel.surfaceNormal = step.xyz; + fragmentInput.voxel.travelDistance = step.w; + + // Run the custom shader + czm_modelMaterial materialOutput; + fragmentMain(fragmentInput, materialOutput); + + // Sanitize the custom shader output + vec4 color = vec4(materialOutput.diffuse, materialOutput.alpha); + color.rgb = max(color.rgb, vec3(0.0)); + color.a = clamp(color.a, 0.0, 1.0); + + // Pre-multiplied alpha blend + colorAccum += (1.0 - colorAccum.a) * vec4(color.rgb * color.a, color.a); + + // Stop traversing if the alpha has been fully saturated + if (colorAccum.a > ALPHA_ACCUM_MAX) { + colorAccum.a = ALPHA_ACCUM_MAX; + break; + } + + if (step.w == 0.0) { + // Shape is infinitely thin. The ray may have hit the edge of a + // foreground voxel. Step ahead slightly to check for more voxels + step.w == 0.00001; + } + + // Keep raymarching + currT += step.w; + positionUv += step.w * viewDirUv; + + // Check if there's more intersections. + if (currT > endT) { + #if (INTERSECTION_COUNT == 1) + break; + #else + shapeIntersection = nextIntersection(ix); + if (shapeIntersection.entry.w == NO_HIT) { + break; + } else { + // Found another intersection. Resume raymarching there + currT = shapeIntersection.entry.w * RAY_SCALE; + endT = shapeIntersection.exit.w; + positionUv = viewPosUv + currT * viewDirUv; + } + #endif + } + + // Traverse the tree from the current ray position. + // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step. + positionUvShapeSpace = convertUvToShapeUvSpace(positionUv); + traverseOctreeFromExisting(positionUvShapeSpace, traversalData, sampleDatas); + step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection); + } + + // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1] + colorAccum.a /= ALPHA_ACCUM_MAX; + + #if defined(PICKING) + // If alpha is 0.0 there is nothing to pick + if (colorAccum.a == 0.0) { + discard; + } + out_FragColor = u_pickColor; + #else + out_FragColor = colorAccum; + #endif +} +`;var vF=`in vec2 position; + +uniform vec4 u_ndcSpaceAxisAlignedBoundingBox; + +void main() { + vec2 aabbMin = u_ndcSpaceAxisAlignedBoundingBox.xy; + vec2 aabbMax = u_ndcSpaceAxisAlignedBoundingBox.zw; + vec2 translation = 0.5 * (aabbMax + aabbMin); + vec2 scale = 0.5 * (aabbMax - aabbMin); + gl_Position = vec4(position * scale + translation, 0.0, 1.0); +} +`;var DF=`/* Intersection defines +#define INTERSECTION_COUNT ### +*/ + +#define NO_HIT (-czm_infinity) +#define INF_HIT (czm_infinity * 0.5) +#define RAY_SHIFT (0.000003163) +#define RAY_SCALE (1.003163) + +struct Ray { + vec3 pos; + vec3 dir; +#if defined(SHAPE_BOX) + vec3 dInv; +#endif +}; + +struct RayShapeIntersection { + vec4 entry; + vec4 exit; +}; + +struct Intersections { + // Don't access these member variables directly - call the functions instead. + + // Store an array of ray-surface intersections. Each intersection is composed of: + // .xyz for the surface normal at the intersection point + // .w for the T value + // The scale of the normal encodes the shape intersection type: + // length(intersection.xyz) = 1: positive shape entry + // length(intersection.xyz) = 2: positive shape exit + // length(intersection.xyz) = 3: negative shape entry + // length(intersection.xyz) = 4: negative shape exit + // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections, + // so we need twice as many to track ray-*surface* intersections + vec4 intersections[INTERSECTION_COUNT * 2]; + + #if (INTERSECTION_COUNT > 1) + // Maintain state for future nextIntersection calls + int index; + int surroundCount; + bool surroundIsPositive; + #endif +}; + +RayShapeIntersection getFirstIntersection(in Intersections ix) +{ + return RayShapeIntersection(ix.intersections[0], ix.intersections[1]); +} + +vec4 encodeIntersectionType(vec4 intersection, int index, bool entry) +{ + float scale = float(index > 0) * 2.0 + float(!entry) + 1.0; + return vec4(intersection.xyz * scale, intersection.w); +} + +// Use defines instead of real functions because WebGL1 cannot access array with non-constant index. +#define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t)) +#define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y) +#define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection) (ix).intersections[(index)] = intersection; +#define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false) + +#if (INTERSECTION_COUNT > 1) +void initializeIntersections(inout Intersections ix) { + // Sort the intersections from min T to max T with bubble sort. + // Note: If this sorting function changes, some of the intersection test may + // need to be updated. Search for "bubble sort" to find those areas. + const int sortPasses = INTERSECTION_COUNT * 2 - 1; + for (int n = sortPasses; n > 0; --n) { + for (int i = 0; i < sortPasses; ++i) { + // The loop should be: for (i = 0; i < n; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= n) { break; } + + vec4 intersect0 = ix.intersections[i + 0]; + vec4 intersect1 = ix.intersections[i + 1]; + + bool inOrder = intersect0.w <= intersect1.w; + + ix.intersections[i + 0] = inOrder ? intersect0 : intersect1; + ix.intersections[i + 1] = inOrder ? intersect1 : intersect0; + } + } + + // Prepare initial state for nextIntersection + ix.index = 0; + ix.surroundCount = 0; + ix.surroundIsPositive = false; +} +#endif + +#if (INTERSECTION_COUNT > 1) +RayShapeIntersection nextIntersection(inout Intersections ix) { + vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT); + RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection); + + const int passCount = INTERSECTION_COUNT * 2; + + if (ix.index == passCount) { + return shapeIntersection; + } + + for (int i = 0; i < passCount; ++i) { + // The loop should be: for (i = ix.index; i < passCount; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to continue instead. + if (i < ix.index) { + continue; + } + + ix.index = i + 1; + + surfaceIntersection = ix.intersections[i]; + int intersectionType = int(length(surfaceIntersection.xyz) - 0.5); + bool currShapeIsPositive = intersectionType < 2; + bool enter = intMod(intersectionType, 2) == 0; + + ix.surroundCount += enter ? +1 : -1; + ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive; + + // entering positive or exiting negative + if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) { + shapeIntersection.entry = surfaceIntersection; + } + + // exiting positive or entering negative after being inside positive + bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0; + bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive; + if (exitPositive || enterNegativeFromPositive) { + shapeIntersection.exit = surfaceIntersection; + + // entry and exit have been found, so the loop can stop + if (exitPositive) { + // After exiting positive shape there is nothing left to intersect, so jump to the end index. + ix.index = passCount; + } + break; + } + } + + return shapeIntersection; +} +#endif + +// NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1 +`;var IF=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, +// setIntersectionPair, INF_HIT, NO_HIT + +/* intersectDepth defines (set in Scene/VoxelRenderResources.js) +#define DEPTH_INTERSECTION_INDEX ### +*/ + +uniform mat4 u_transformPositionViewToUv; + +void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) { + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord)); + if (logDepthOrDepth != 0.0) { + // Calculate how far the ray must travel before it hits the depth buffer. + vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth); + eyeCoordinateDepth /= eyeCoordinateDepth.w; + vec3 depthPositionUv = vec3(u_transformPositionViewToUv * eyeCoordinateDepth); + float t = dot(depthPositionUv - ray.pos, ray.dir); + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(t, +INF_HIT)); + } else { + // There's no depth at this location. + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(NO_HIT)); + } +} +`;var PF=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, INF_HIT, +// NO_HIT, setIntersectionPair + +/* Clipping plane defines (set in Scene/VoxelRenderResources.js) +#define CLIPPING_PLANES_UNION +#define CLIPPING_PLANES_COUNT +#define CLIPPING_PLANES_INTERSECTION_INDEX +*/ + +uniform sampler2D u_clippingPlanesTexture; +uniform mat4 u_clippingPlanesMatrix; + +// Plane is in Hessian Normal Form +vec4 intersectPlane(in Ray ray, in vec4 plane) { + vec3 n = plane.xyz; // normal + float w = plane.w; // -dot(pointOnPlane, normal) + + float a = dot(ray.pos, n); + float b = dot(ray.dir, n); + float t = -(w + a) / b; + + return vec4(n, t); +} + +void intersectClippingPlanes(in Ray ray, inout Intersections ix) { + vec4 backSide = vec4(-ray.dir, -INF_HIT); + vec4 farSide = vec4(ray.dir, +INF_HIT); + RayShapeIntersection clippingVolume; + + #if (CLIPPING_PLANES_COUNT == 1) + // Union and intersection are the same when there's one clipping plane, and the code + // is more simplified. + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + bool reflects = dot(ray.dir, intersection.xyz) < 0.0; + clippingVolume.entry = reflects ? backSide : intersection; + clippingVolume.exit = reflects ? intersection : farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #elif defined(CLIPPING_PLANES_UNION) + vec4 firstTransmission = vec4(ray.dir, +INF_HIT); + vec4 lastReflection = vec4(-ray.dir, -INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission; + } else { + lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection; + } + } + clippingVolume.entry = backSide; + clippingVolume.exit = lastReflection; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume); + clippingVolume.entry = firstTransmission; + clippingVolume.exit = farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume); + #else // intersection + vec4 lastTransmission = vec4(ray.dir, -INF_HIT); + vec4 firstReflection = vec4(-ray.dir, +INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission; + } else { + firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection; + } + } + if (lastTransmission.w < firstReflection.w) { + clippingVolume.entry = lastTransmission; + clippingVolume.exit = firstReflection; + } else { + clippingVolume.entry = vec4(-ray.dir, NO_HIT); + clippingVolume.exit = vec4(ray.dir, NO_HIT); + } + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #endif +} +`;var OF=`// See IntersectionUtils.glsl for the definitions of Ray and NO_HIT +// See convertUvToBox.glsl for the definition of convertShapeUvToUvSpace + +/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_INTERSECTION_INDEX ### // always 0 +*/ + +uniform vec3 u_renderMinBounds; +uniform vec3 u_renderMaxBounds; + +struct Box { + vec3 p0; + vec3 p1; +}; + +Box constructVoxelBox(in ivec4 octreeCoords, in vec3 tileUv) +{ + // Find the min/max cornerpoints of the voxel in tile coordinates + vec3 tileOrigin = vec3(octreeCoords.xyz); + vec3 numSamples = vec3(u_dimensions); + vec3 voxelSize = 1.0 / numSamples; + vec3 coordP0 = floor(tileUv * numSamples) * voxelSize + tileOrigin; + vec3 coordP1 = coordP0 + voxelSize; + + // Transform to the UV coordinates of the scaled tileset + float tileSize = 1.0 / pow(2.0, float(octreeCoords.w)); + vec3 p0 = convertShapeUvToUvSpace(coordP0 * tileSize); + vec3 p1 = convertShapeUvToUvSpace(coordP1 * tileSize); + + return Box(p0, p1); +} + +vec3 getBoxNormal(in Box box, in Ray ray, in float t) +{ + vec3 hitPoint = ray.pos + t * ray.dir; + vec3 lower = step(hitPoint, box.p0); + vec3 upper = step(box.p1, hitPoint); + return normalize(upper - lower); +} + +// Find the distances along a ray at which the ray intersects an axis-aligned box +// See https://tavianator.com/2011/ray_box.html +RayShapeIntersection intersectBox(in Ray ray, in Box box) +{ + // Consider the box as the intersection of the space between 3 pairs of parallel planes + // Compute the distance along the ray to each plane + vec3 t0 = (box.p0 - ray.pos) * ray.dInv; + vec3 t1 = (box.p1 - ray.pos) * ray.dInv; + + // Identify candidate entries/exits based on distance from ray.pos + vec3 entries = min(t0, t1); + vec3 exits = max(t0, t1); + + // The actual box intersection points are the furthest entry and the closest exit + float entryT = max(max(entries.x, entries.y), entries.z); + float exitT = min(min(exits.x, exits.y), exits.z); + + vec3 entryNormal = getBoxNormal(box, ray, entryT - RAY_SHIFT); + vec3 exitNormal = getBoxNormal(box, ray, exitT + RAY_SHIFT); + + if (entryT > exitT) { + entryT = NO_HIT; + exitT = NO_HIT; + } + + return RayShapeIntersection(vec4(entryNormal, entryT), vec4(exitNormal, exitT)); +} + +void intersectShape(in Ray ray, inout Intersections ix) +{ + RayShapeIntersection intersection = intersectBox(ray, Box(u_renderMinBounds, u_renderMaxBounds)); + setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection); +} +`;var MF=`// See IntersectionUtils.glsl for the definitions of Ray, setIntersection, +// setIntersectionPair + +/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_RENDER_BOUNDS_HEIGHT +#define CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO + +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED + +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MAX +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MIN +#define CYLINDER_INTERSECTION_INDEX_ANGLE +*/ + +// Cylinder uniforms +#if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX) || defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT) + uniform vec3 u_cylinderUvToRenderBoundsScale; + uniform vec3 u_cylinderUvToRenderBoundsTranslate; +#endif +#if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) && !defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) + uniform float u_cylinderUvToRenderRadiusMin; +#endif +#if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE) + uniform vec2 u_cylinderRenderAngleMinMax; +#endif + +vec4 intersectHalfPlane(Ray ray, float angle) { + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 planeDirection = vec2(cos(angle), sin(angle)); + vec2 planeNormal = vec2(planeDirection.y, -planeDirection.x); + + float a = dot(o, planeNormal); + float b = dot(d, planeNormal); + float t = -a / b; + + vec2 p = o + t * d; + bool outside = dot(p, planeDirection) < 0.0; + if (outside) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + + return vec4(-INF_HIT, t, t, +INF_HIT); +} + +#define POSITIVE_HIT vec2(t, +INF_HIT); +#define NEGATIVE_HIT vec2(-INF_HIT, t); + +vec2 intersectHalfSpace(Ray ray, float angle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n = vec2(sin(angle), -cos(angle)); + + float a = dot(o, n); + float b = dot(d, n); + float t = -a / b; + float s = sign(a); + + // Half space cuts right through the camera, pick the side to intersect + if (a == 0.0) { + if (b >= 0.0) { + return POSITIVE_HIT; + } else { + return NEGATIVE_HIT; + } + } + + if (t >= 0.0 != s >= 0.0) { + return POSITIVE_HIT; + } else { + return NEGATIVE_HIT; + } +} + +vec2 intersectRegularWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n1 = vec2(sin(minAngle), -cos(minAngle)); + vec2 n2 = vec2(-sin(maxAngle), cos(maxAngle)); + + float a1 = dot(o, n1); + float a2 = dot(o, n2); + float b1 = dot(d, n1); + float b2 = dot(d, n2); + + float t1 = -a1 / b1; + float t2 = -a2 / b2; + float s1 = sign(a1); + float s2 = sign(a2); + + float tmin = min(t1, t2); + float tmax = max(t1, t2); + float smin = tmin == t1 ? s1 : s2; + float smax = tmin == t1 ? s2 : s1; + + bool e = tmin >= 0.0; + bool f = tmax >= 0.0; + bool g = smin >= 0.0; + bool h = smax >= 0.0; + + if (e != g && f == h) return vec2(tmin, tmax); + else if (e == g && f == h) return vec2(-INF_HIT, tmin); + else if (e != g && f != h) return vec2(tmax, +INF_HIT); + else return vec2(NO_HIT); +} + +vec4 intersectFlippedWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 planeIntersectMin = intersectHalfSpace(ray, minAngle); + vec2 planeIntersectMax = intersectHalfSpace(ray, maxAngle + czm_pi); + return vec4(planeIntersectMin, planeIntersectMax); +} + +vec2 intersectUnitCylinder(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float a = dot(d.xy, d.xy); + float b = dot(o.xy, d.xy); + float c = dot(o.xy, o.xy) - 1.0; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float ta = (-b - det) / a; + float tb = (-b + det) / a; + float t1 = min(ta, tb); + float t2 = max(ta, tb); + + float z1 = o.z + t1 * d.z; + float z2 = o.z + t2 * d.z; + + if (abs(z1) >= 1.0) + { + float tCap = (sign(z1) - o.z) / d.z; + t1 = abs(b + a * tCap) < det ? tCap : NO_HIT; + } + + if (abs(z2) >= 1.0) + { + float tCap = (sign(z2) - o.z) / d.z; + t2 = abs(b + a * tCap) < det ? tCap : NO_HIT; + } + + return vec2(t1, t2); +} + +vec2 intersectUnitCircle(Ray ray) { + vec3 o = ray.pos; + vec3 d = ray.dir; + + float t = -o.z / d.z; + vec2 zPlanePos = o.xy + d.xy * t; + float distSqr = dot(zPlanePos, zPlanePos); + + if (distSqr > 1.0) { + return vec2(NO_HIT); + } + + return vec2(t, t); +} + +vec2 intersectInfiniteUnitCylinder(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float a = dot(d.xy, d.xy); + float b = dot(o.xy, d.xy); + float c = dot(o.xy, o.xy) - 1.0; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = (-b - det) / a; + float t2 = (-b + det) / a; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + return vec2(tmin, tmax); +} + +void intersectShape(Ray ray, inout Intersections ix) +{ + #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX) || defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT) + ray.pos = ray.pos * u_cylinderUvToRenderBoundsScale + u_cylinderUvToRenderBoundsTranslate; + ray.dir *= u_cylinderUvToRenderBoundsScale; + #else + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + #endif + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT) + vec2 outerIntersect = intersectUnitCircle(ray); + #else + vec2 outerIntersect = intersectUnitCylinder(ray); + #endif + + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MAX, outerIntersect); + + if (outerIntersect.x == NO_HIT) { + return; + } + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) + // When the cylinder is perfectly thin it's necessary to sandwich the + // inner cylinder intersection inside the outer cylinder intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the cylinder to be invisible because it will think the ray + // is still inside the inner (negative) cylinder after exiting the + // outer (positive) cylinder. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + vec2 innerIntersect = intersectInfiniteUnitCylinder(ray); + setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter + setIntersection(ix, 1, innerIntersect.x, false, true); // negative, enter + setIntersection(ix, 2, innerIntersect.y, false, false); // negative, exit + setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) + Ray innerRay = Ray(ray.pos * u_cylinderUvToRenderRadiusMin, ray.dir * u_cylinderUvToRenderRadiusMin); + vec2 innerIntersect = intersectInfiniteUnitCylinder(innerRay); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MIN, innerIntersect); + #endif + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF) + vec2 wedgeIntersect = intersectRegularWedge(ray, u_cylinderRenderAngleMinMax.x, u_cylinderRenderAngleMinMax.y); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF) + vec4 wedgeIntersect = intersectFlippedWedge(ray, u_cylinderRenderAngleMinMax.x, u_cylinderRenderAngleMinMax.y); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersect.zw); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF) + vec2 wedgeIntersect = intersectHalfSpace(ray, u_cylinderRenderAngleMinMax.x); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) + vec4 wedgeIntersect = intersectHalfPlane(ray, u_cylinderRenderAngleMinMax.x); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersect.zw); + #endif +} +`;var RF=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, +// setIntersection, setIntersectionPair, INF_HIT, NO_HIT + +/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX +#define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN +#define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT +#define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN +*/ + +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidRenderLongitudeMinMax; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) + uniform vec2 u_ellipsoidRenderLatitudeCosSqrHalfMinMax; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX) + uniform float u_ellipsoidInverseOuterScaleUv; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN) + uniform float u_ellipsoidInverseInnerScaleUv; +#endif + +vec2 intersectZPlane(Ray ray) +{ + float o = ray.pos.z; + float d = ray.dir.z; + float t = -o / d; + float s = sign(o); + + if (t >= 0.0 != s >= 0.0) return vec2(t, +INF_HIT); + else return vec2(-INF_HIT, t); +} + +vec4 intersectHalfPlane(Ray ray, float angle) { + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 planeDirection = vec2(cos(angle), sin(angle)); + vec2 planeNormal = vec2(planeDirection.y, -planeDirection.x); + + float a = dot(o, planeNormal); + float b = dot(d, planeNormal); + float t = -a / b; + + vec2 p = o + t * d; + bool outside = dot(p, planeDirection) < 0.0; + if (outside) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + + return vec4(-INF_HIT, t, t, +INF_HIT); +} + +vec2 intersectHalfSpace(Ray ray, float angle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n = vec2(sin(angle), -cos(angle)); + + float a = dot(o, n); + float b = dot(d, n); + float t = -a / b; + float s = sign(a); + + if (t >= 0.0 != s >= 0.0) return vec2(t, +INF_HIT); + else return vec2(-INF_HIT, t); +} + +vec2 intersectRegularWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n1 = vec2(sin(minAngle), -cos(minAngle)); + vec2 n2 = vec2(-sin(maxAngle), cos(maxAngle)); + + float a1 = dot(o, n1); + float a2 = dot(o, n2); + float b1 = dot(d, n1); + float b2 = dot(d, n2); + + float t1 = -a1 / b1; + float t2 = -a2 / b2; + float s1 = sign(a1); + float s2 = sign(a2); + + float tmin = min(t1, t2); + float tmax = max(t1, t2); + float smin = tmin == t1 ? s1 : s2; + float smax = tmin == t1 ? s2 : s1; + + bool e = tmin >= 0.0; + bool f = tmax >= 0.0; + bool g = smin >= 0.0; + bool h = smax >= 0.0; + + if (e != g && f == h) return vec2(tmin, tmax); + else if (e == g && f == h) return vec2(-INF_HIT, tmin); + else if (e != g && f != h) return vec2(tmax, +INF_HIT); + else return vec2(NO_HIT); +} + +vec4 intersectFlippedWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 planeIntersectMin = intersectHalfSpace(ray, minAngle); + vec2 planeIntersectMax = intersectHalfSpace(ray, maxAngle + czm_pi); + return vec4(planeIntersectMin, planeIntersectMax); +} + +vec2 intersectUnitSphere(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float b = dot(d, o); + float c = dot(o, o) - 1.0; + float det = b * b - c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = -b - det; + float t2 = -b + det; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + return vec2(tmin, tmax); +} + +vec2 intersectUnitSphereUnnormalizedDirection(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float a = dot(d, d); + float b = dot(d, o); + float c = dot(o, o) - 1.0; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = (-b - det) / a; + float t2 = (-b + det) / a; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + return vec2(tmin, tmax); +} + +vec2 intersectDoubleEndedCone(Ray ray, float cosSqrHalfAngle) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + float a = d.z * d.z - dot(d, d) * cosSqrHalfAngle; + float b = d.z * o.z - dot(o, d) * cosSqrHalfAngle; + float c = o.z * o.z - dot(o, o) * cosSqrHalfAngle; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = (-b - det) / a; + float t2 = (-b + det) / a; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + return vec2(tmin, tmax); +} + +vec4 intersectFlippedCone(Ray ray, float cosSqrHalfAngle) { + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + if (intersect.x == NO_HIT) { + return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + } + + vec3 o = ray.pos; + vec3 d = ray.dir; + float tmin = intersect.x; + float tmax = intersect.y; + float zmin = o.z + tmin * d.z; + float zmax = o.z + tmax * d.z; + + // One interval + if (zmin < 0.0 && zmax < 0.0) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + else if (zmin < 0.0) return vec4(-INF_HIT, tmax, NO_HIT, NO_HIT); + else if (zmax < 0.0) return vec4(tmin, +INF_HIT, NO_HIT, NO_HIT); + // Two intervals + else return vec4(-INF_HIT, tmin, tmax, +INF_HIT); +} + +vec2 intersectRegularCone(Ray ray, float cosSqrHalfAngle) { + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + if (intersect.x == NO_HIT) { + return vec2(NO_HIT); + } + + vec3 o = ray.pos; + vec3 d = ray.dir; + float tmin = intersect.x; + float tmax = intersect.y; + float zmin = o.z + tmin * d.z; + float zmax = o.z + tmax * d.z; + + if (zmin < 0.0 && zmax < 0.0) return vec2(NO_HIT); + else if (zmin < 0.0) return vec2(tmax, +INF_HIT); + else if (zmax < 0.0) return vec2(-INF_HIT, tmin); + else return vec2(tmin, tmax); +} + +void intersectShape(in Ray ray, inout Intersections ix) { + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX) + Ray outerRay = Ray(ray.pos * u_ellipsoidInverseOuterScaleUv, ray.dir * u_ellipsoidInverseOuterScaleUv); + #else + Ray outerRay = ray; + #endif + + // Outer ellipsoid + vec2 outerIntersect = intersectUnitSphereUnnormalizedDirection(outerRay); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect); + + // Exit early if the outer ellipsoid was missed. + if (outerIntersect.x == NO_HIT) { + return; + } + + // Inner ellipsoid + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT) + // When the ellipsoid is perfectly thin it's necessary to sandwich the + // inner ellipsoid intersection inside the outer ellipsoid intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the ellipsoid to be invisible because it will think the ray + // is still inside the inner (negative) ellipsoid after exiting the + // outer (positive) ellipsoid. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter + setIntersection(ix, 1, outerIntersect.x, false, true); // negative, enter + setIntersection(ix, 2, outerIntersect.y, false, false); // negative, exit + setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN) + Ray innerRay = Ray(ray.pos * u_ellipsoidInverseInnerScaleUv, ray.dir * u_ellipsoidInverseInnerScaleUv); + vec2 innerIntersect = intersectUnitSphereUnnormalizedDirection(innerRay); + + if (innerIntersect == vec2(NO_HIT)) { + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN, innerIntersect); + } else { + // When the ellipsoid is very large and thin it's possible for floating + // point math to cause the ray to intersect the inner ellipsoid before + // the outer ellipsoid. To prevent this from happening, clamp innerIntersect + // to outerIntersect and sandwhich the intersections like described above. + // + // In theory a similar fix is needed for cylinders, however it's more + // complicated to implement because the inner shape is allowed to be + // intersected first. + innerIntersect.x = max(innerIntersect.x, outerIntersect.x); + innerIntersect.y = min(innerIntersect.y, outerIntersect.y); + setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter + setIntersection(ix, 1, innerIntersect.x, false, true); // negative, enter + setIntersection(ix, 2, innerIntersect.y, false, false); // negative, exit + setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit + } + #endif + + // Flip the ray because the intersection function expects a cone growing towards +Z. + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) + Ray flippedRay = outerRay; + flippedRay.dir.z *= -1.0; + flippedRay.pos.z *= -1.0; + #endif + + // Bottom cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) + vec2 bottomConeIntersection = intersectRegularCone(flippedRay, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) + vec2 bottomConeIntersection = intersectZPlane(flippedRay); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) + vec4 bottomConeIntersection = intersectFlippedCone(ray, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 0, bottomConeIntersection.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 1, bottomConeIntersection.zw); + #endif + + // Top cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) + vec4 topConeIntersection = intersectFlippedCone(flippedRay, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 0, topConeIntersection.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 1, topConeIntersection.zw); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF) + vec2 topConeIntersection = intersectZPlane(ray); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) + vec2 topConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #endif + + // Wedge + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) + vec4 wedgeIntersect = intersectHalfPlane(ray, u_ellipsoidRenderLongitudeMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersect.zw); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF) + vec2 wedgeIntersect = intersectRegularWedge(ray, u_ellipsoidRenderLongitudeMinMax.x, u_ellipsoidRenderLongitudeMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF) + vec2 wedgeIntersect = intersectHalfSpace(ray, u_ellipsoidRenderLongitudeMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF) + vec4 wedgeIntersect = intersectFlippedWedge(ray, u_ellipsoidRenderLongitudeMinMax.x, u_ellipsoidRenderLongitudeMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersect.zw); + #endif +} +`;var vC=`// Main intersection function for Voxel scenes. +// See IntersectBox.glsl, IntersectCylinder.glsl, or IntersectEllipsoid.glsl +// for the definition of intersectShape. The appropriate function is selected +// based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See also IntersectClippingPlane.glsl and IntersectDepth.glsl. +// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, +// getFirstIntersection, initializeIntersections, nextIntersection. + +/* Intersection defines (set in Scene/VoxelRenderResources.js) +#define INTERSECTION_COUNT ### +*/ + +RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, out Intersections ix) { + // Do a ray-shape intersection to find the exact starting and ending points. + intersectShape(ray, ix); + + // Exit early if the positive shape was completely missed or behind the ray. + RayShapeIntersection intersection = getFirstIntersection(ix); + if (intersection.entry.w == NO_HIT) { + // Positive shape was completely missed - so exit early. + return intersection; + } + + // Clipping planes + #if defined(CLIPPING_PLANES) + intersectClippingPlanes(ray, ix); + #endif + + // Depth + #if defined(DEPTH_TEST) + intersectDepth(screenCoord, ray, ix); + #endif + + // Find the first intersection that's in front of the ray + #if (INTERSECTION_COUNT > 1) + initializeIntersections(ix); + for (int i = 0; i < INTERSECTION_COUNT; ++i) { + intersection = nextIntersection(ix); + if (intersection.exit.w > 0.0) { + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + break; + } + } + #else + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + #endif + + return intersection; +} +`;var BF=`/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_HAS_SHAPE_BOUNDS +*/ + +#if defined(BOX_HAS_SHAPE_BOUNDS) + uniform vec3 u_boxUvToShapeUvScale; + uniform vec3 u_boxUvToShapeUvTranslate; +#endif + +vec3 convertUvToShapeUvSpace(in vec3 positionUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return positionUv * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate; +#else + return positionUv; +#endif +} + +vec3 convertShapeUvToUvSpace(in vec3 shapeUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return (shapeUv - u_boxUvToShapeUvTranslate) / u_boxUvToShapeUvScale; +#else + return shapeUv; +#endif +} +`;var LF=`/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED +*/ + +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + uniform vec2 u_cylinderUvToShapeUvRadius; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + uniform vec2 u_cylinderUvToShapeUvHeight; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + uniform vec2 u_cylinderUvToShapeUvAngle; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + uniform vec2 u_cylinderShapeUvAngleMinMax; +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + uniform float u_cylinderShapeUvAngleRangeZeroMid; +#endif + +vec3 convertUvToShapeUvSpace(in vec3 positionUv) { + vec3 positionLocal = positionUv * 2.0 - 1.0; // [-1,+1] + + // Compute radius + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT) + float radius = 1.0; + #else + float radius = length(positionLocal.xy); // [0,1] + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + radius = radius * u_cylinderUvToShapeUvRadius.x + u_cylinderUvToShapeUvRadius.y; // x = scale, y = offset + #endif + #endif + + // Compute height + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT) + float height = 1.0; + #else + float height = positionUv.z; // [0,1] + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + height = height * u_cylinderUvToShapeUvHeight.x + u_cylinderUvToShapeUvHeight.y; // x = scale, y = offset + #endif + #endif + + // Compute angle + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) + float angle = 1.0; + #else + float angle = (atan(positionLocal.y, positionLocal.x) + czm_pi) / czm_twoPi; // [0,1] + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + // Comparing against u_cylinderShapeUvAngleMinMax has precision problems. u_cylinderShapeUvAngleRangeZeroMid is more conservative. + angle += float(angle < u_cylinderShapeUvAngleRangeZeroMid); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) + angle = angle > u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.x : angle; + #elif defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + angle = angle < u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.y : angle; + #endif + + angle = angle * u_cylinderUvToShapeUvAngle.x + u_cylinderUvToShapeUvAngle.y; // x = scale, y = offset + #endif + #endif + + return vec3(radius, height, angle); +} +`;var NF=`/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN +#define ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT +#define ELLIPSOID_IS_SPHERE +*/ + +uniform vec3 u_ellipsoidRadiiUv; // [0,1] +#if !defined(ELLIPSOID_IS_SPHERE) + uniform vec3 u_ellipsoidInverseRadiiSquaredUv; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) || defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + uniform vec3 u_ellipsoidShapeUvLongitudeMinMaxMid; +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLongitude; // x = scale, y = offset +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLatitude; // x = scale, y = offset +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) && !defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT) + uniform float u_ellipsoidInverseHeightDifferenceUv; + uniform vec2 u_ellipseInnerRadiiUv; // [0,1] +#endif + +// robust iterative solution without trig functions +// https://github.com/0xfaded/ellipse_demo/issues/1 +// https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse +// Pro: Good when radii.x ~= radii.y +// Con: Breaks at pos.x ~= 0.0, especially inside the ellipse +// Con: Inaccurate with exterior points and thin ellipses +float ellipseDistanceIterative (vec2 pos, vec2 radii) { + vec2 p = abs(pos); + vec2 invRadii = 1.0 / radii; + vec2 a = vec2(1.0, -1.0) * (radii.x * radii.x - radii.y * radii.y) * invRadii; + vec2 t = vec2(0.70710678118); // sqrt(2) / 2 + vec2 v = radii * t; + + const int iterations = 3; + for (int i = 0; i < iterations; ++i) { + vec2 e = a * pow(t, vec2(3.0)); + vec2 q = normalize(p - e) * length(v - e); + t = normalize((q + e) * invRadii); + v = radii * t; + } + return length(v * sign(pos) - pos) * sign(p.y - v.y); +} + +vec3 convertUvToShapeUvSpace(in vec3 positionUv) { + // Compute position and normal. + // Convert positionUv [0,1] to local space [-1,+1] to "normalized" cartesian space [-a,+a] where a = (radii + height) / (max(radii) + height). + // A point on the largest ellipsoid axis would be [-1,+1] and everything else would be smaller. + vec3 positionLocal = positionUv * 2.0 - 1.0; + #if defined(ELLIPSOID_IS_SPHERE) + vec3 posEllipsoid = positionLocal * u_ellipsoidRadiiUv.x; + vec3 normal = normalize(posEllipsoid); + #else + vec3 posEllipsoid = positionLocal * u_ellipsoidRadiiUv; + vec3 normal = normalize(posEllipsoid * u_ellipsoidInverseRadiiSquaredUv); // geodetic surface normal + #endif + + // Compute longitude + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) + float longitude = 1.0; + #else + float longitude = (atan(normal.y, normal.x) + czm_pi) / czm_twoPi; + + // Correct the angle when max < min + // Technically this should compare against min longitude - but it has precision problems so compare against the middle of empty space. + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + longitude += float(longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) + longitude = longitude > u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.x : longitude; + #endif + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) + longitude = longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.y : longitude; + #endif + + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + longitude = longitude * u_ellipsoidUvToShapeUvLongitude.x + u_ellipsoidUvToShapeUvLongitude.y; + #endif + #endif + + // Compute latitude + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO) + float latitude = 1.0; + #else + float latitude = (asin(normal.z) + czm_piOverTwo) / czm_pi; + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + latitude = latitude * u_ellipsoidUvToShapeUvLatitude.x + u_ellipsoidUvToShapeUvLatitude.y; + #endif + #endif + + // Compute height + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT) + // TODO: This breaks down when minBounds == maxBounds. To fix it, this + // function would have to know if ray is intersecting the front or back of the shape + // and set the shape space position to 1 (front) or 0 (back) accordingly. + float height = 1.0; + #else + #if defined(ELLIPSOID_IS_SPHERE) + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) + float height = (length(posEllipsoid) - u_ellipseInnerRadiiUv.x) * u_ellipsoidInverseHeightDifferenceUv; + #else + float height = length(posEllipsoid); + #endif + #else + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) + // Convert the 3D position to a 2D position relative to the ellipse (radii.x, radii.z) (assuming radii.x == radii.y which is true for WGS84). + // This is an optimization so that math can be done with ellipses instead of ellipsoids. + vec2 posEllipse = vec2(length(posEllipsoid.xy), posEllipsoid.z); + float height = ellipseDistanceIterative(posEllipse, u_ellipseInnerRadiiUv) * u_ellipsoidInverseHeightDifferenceUv; + #else + // TODO: this is probably not correct + float height = length(posEllipsoid); + #endif + #endif + #endif + + return vec3(longitude, latitude, height); +} +`;var FF=`// These octree flags must be in sync with GpuOctreeFlag in VoxelTraversal.js +#define OCTREE_FLAG_INTERNAL 0 +#define OCTREE_FLAG_LEAF 1 +#define OCTREE_FLAG_PACKED_LEAF_FROM_PARENT 2 + +#define OCTREE_MAX_LEVELS 32 // Harcoded value because GLSL doesn't like variable length loops + +uniform sampler2D u_octreeInternalNodeTexture; +uniform vec2 u_octreeInternalNodeTexelSizeUv; +uniform int u_octreeInternalNodeTilesPerRow; +#if (SAMPLE_COUNT > 1) +uniform sampler2D u_octreeLeafNodeTexture; +uniform vec2 u_octreeLeafNodeTexelSizeUv; +uniform int u_octreeLeafNodeTilesPerRow; +#endif + +struct OctreeNodeData { + int data; + int flag; +}; + +struct TraversalData { + ivec4 octreeCoords; + int parentOctreeIndex; +}; + +struct SampleData { + int megatextureIndex; + ivec4 tileCoords; + vec3 tileUv; + #if (SAMPLE_COUNT > 1) + float weight; + #endif +}; + +// Integer mod: For WebGL1 only +int intMod(in int a, in int b) { + return a - (b * (a / b)); +} +int normU8_toInt(in float value) { + return int(value * 255.0); +} +int normU8x2_toInt(in vec2 value) { + return int(value.x * 255.0) + 256 * int(value.y * 255.0); +} +float normU8x2_toFloat(in vec2 value) { + return float(normU8x2_toInt(value)) / 65535.0; +} + +OctreeNodeData getOctreeNodeData(in vec2 octreeUv) { + vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv); + + OctreeNodeData data; + data.data = normU8x2_toInt(texData.xy); + data.flag = normU8x2_toInt(texData.zw); + return data; +} + +OctreeNodeData getOctreeChildData(in int parentOctreeIndex, in ivec3 childCoord) { + int childIndex = childCoord.z * 4 + childCoord.y * 2 + childCoord.x; + int octreeCoordX = intMod(parentOctreeIndex, u_octreeInternalNodeTilesPerRow) * 9 + 1 + childIndex; + int octreeCoordY = parentOctreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + return getOctreeNodeData(octreeUv); +} + +int getOctreeParentIndex(in int octreeIndex) { + int octreeCoordX = intMod(octreeIndex, u_octreeInternalNodeTilesPerRow) * 9; + int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv); + int parentOctreeIndex = normU8x2_toInt(parentData.xy); + return parentOctreeIndex; +} + +/** +* Convert a position in the uv-space of the tileset bounding shape +* into the uv-space of a tile within the tileset +*/ +vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) { + // PERFORMANCE_IDEA: use bit-shifting (only in WebGL2) + float dimAtLevel = pow(2.0, float(octreeCoords.w)); + return shapePosition * dimAtLevel - vec3(octreeCoords.xyz); +} + +void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) { + sampleData.megatextureIndex = data.data; + sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; +} + +#if (SAMPLE_COUNT > 1) +void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) { + int leafIndex = data.data; + int leafNodeTexelCount = 2; + // Adding 0.5 moves to the center of the texel + float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5; + float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5; + + // Get an interpolation weight and a flag to determine whether to read the parent texture + vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY); + vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0); + float lerp = normU8x2_toFloat(leafData0.xy); + sampleDatas[0].weight = 1.0 - lerp; + sampleDatas[1].weight = lerp; + // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT + sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + + // Get megatexture indices for both samples + vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY); + vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1); + sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy); + sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw); +} +#endif + +OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) { + float sizeAtLevel = 1.0 / pow(2.0, float(traversalData.octreeCoords.w)); + vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel; + vec3 end = start + vec3(sizeAtLevel); + OctreeNodeData childData; + + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + // Find out which octree child contains the position + // 0 if before center, 1 if after + vec3 center = 0.5 * (start + end); + vec3 childCoord = step(center, shapePosition); + + // Get octree coords for the next level down + ivec4 octreeCoords = traversalData.octreeCoords; + traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1); + + childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord)); + + if (childData.flag != OCTREE_FLAG_INTERNAL) { + // leaf tile - stop traversing + break; + } + + // interior tile - keep going deeper + start = mix(start, center, childCoord); + end = mix(center, end, childCoord); + traversalData.parentOctreeIndex = childData.data; + } + + return childData; +} + +/** +* Transform a given position to an octree tile coordinate and a position within that tile, +* and find the corresponding megatexture index and texture coordinates +*/ +void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) { + traversalData.octreeCoords = ivec4(0); + traversalData.parentOctreeIndex = 0; + + OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0)); + if (nodeData.flag != OCTREE_FLAG_LEAF) { + nodeData = traverseOctreeDownwards(shapePosition, traversalData); + } + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} + +bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) { + return clamp(v, minVal, maxVal) == v; +} + +bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) { + vec3 tileUv = getTileUv(shapePosition, octreeCoords); + bool inside = inRange(tileUv, vec3(0.0), vec3(1.0)); + // Assume (!) the position is always inside the root tile. + return inside || octreeCoords.w == 0; +} + +void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) { + if (insideTile(shapePosition, traversalData.octreeCoords)) { + for (int i = 0; i < SAMPLE_COUNT; i++) { + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + } + return; + } + + // Go up tree until we find a parent tile containing shapePosition + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + traversalData.octreeCoords.xyz /= 2; + traversalData.octreeCoords.w -= 1; + + if (insideTile(shapePosition, traversalData.octreeCoords)) { + break; + } + + traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex); + } + + // Go down tree + OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData); + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} +`;var UF=`// See Octree.glsl for the definitions of SampleData and intMod + +/* Megatexture defines (set in Scene/VoxelRenderResources.js) +#define SAMPLE_COUNT ### +#define NEAREST_SAMPLING +#define PADDING +*/ + +uniform ivec2 u_megatextureSliceDimensions; // number of slices per tile, in two dimensions +uniform ivec2 u_megatextureTileDimensions; // number of tiles per megatexture, in two dimensions +uniform vec2 u_megatextureVoxelSizeUv; +uniform vec2 u_megatextureSliceSizeUv; +uniform vec2 u_megatextureTileSizeUv; + +uniform ivec3 u_dimensions; // does not include padding +#if defined(PADDING) + uniform ivec3 u_paddingBefore; + uniform ivec3 u_paddingAfter; +#endif + +// Integer min, max, clamp: For WebGL1 only +int intMin(int a, int b) { + return a <= b ? a : b; +} +int intMax(int a, int b) { + return a >= b ? a : b; +} +int intClamp(int v, int minVal, int maxVal) { + return intMin(intMax(v, minVal), maxVal); +} + +vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale) +{ + int indexX = intMod(index, dimensions.x); + int indexY = index / dimensions.x; + return vec2(indexX, indexY) * uvScale; +} + +/* + How is 3D data stored in a 2D megatexture? + + In this example there is only one loaded tile and it has 2x2x2 voxels (8 voxels total). + The data is sliced by Z. The data at Z = 0 is placed in texels (0,0), (0,1), (1,0), (1,1) and + the data at Z = 1 is placed in texels (2,0), (2,1), (3,0), (3,1). + Note that there could be empty space in the megatexture because it's a power of two. + + 0 1 2 3 + +---+---+---+---+ + | | | | | 3 + +---+---+---+---+ + | | | | | 2 + +-------+-------+ + |010|110|011|111| 1 + |--- ---|--- ---| + |000|100|001|101| 0 + +-------+-------+ + + When doing linear interpolation the megatexture needs to be sampled twice: once for + the Z slice above the voxel coordinate and once for the slice below. The two slices + are interpolated with fract(coord.z - 0.5). For example, a Z coordinate of 1.0 is + halfway between two Z slices so the interpolation factor is 0.5. Below is a side view + of the 3D voxel grid with voxel coordinates on the left side. + + 2 +---+ + |001| + 1 +-z-+ + |000| + 0 +---+ + + When doing nearest neighbor the megatexture only needs to be sampled once at the closest Z slice. +*/ + +Properties getPropertiesFromMegatexture(in SampleData sampleData) { + vec3 tileUv = clamp(sampleData.tileUv, vec3(0.0), vec3(1.0)); // TODO is the clamp necessary? + int tileIndex = sampleData.megatextureIndex; + vec3 voxelCoord = tileUv * vec3(u_dimensions); + ivec3 voxelDimensions = u_dimensions; + + #if defined(PADDING) + voxelDimensions += u_paddingBefore + u_paddingAfter; + voxelCoord += vec3(u_paddingBefore); + #endif + + #if defined(NEAREST_SAMPLING) + // Round to the center of the nearest voxel + voxelCoord = floor(voxelCoord) + vec3(0.5); + #endif + + // Tile location + vec2 tileUvOffset = index1DTo2DTexcoord(tileIndex, u_megatextureTileDimensions, u_megatextureTileSizeUv); + + // Slice location + float slice = voxelCoord.z - 0.5; + int sliceIndex = int(floor(slice)); + int sliceIndex0 = intClamp(sliceIndex, 0, voxelDimensions.z - 1); + vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + + // Voxel location + vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(voxelDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv; + + // Final location in the megatexture + vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset; + + #if defined(NEAREST_SAMPLING) + return getPropertiesFromMegatextureAtUv(uv0); + #else + float sliceLerp = fract(slice); + int sliceIndex1 = intMin(sliceIndex + 1, voxelDimensions.z - 1); + vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset; + Properties properties0 = getPropertiesFromMegatextureAtUv(uv0); + Properties properties1 = getPropertiesFromMegatextureAtUv(uv1); + return mixProperties(properties0, properties1, sliceLerp); + #endif +} + +// Convert an array of sample datas to a final weighted properties. +Properties accumulatePropertiesFromMegatexture(in SampleData sampleDatas[SAMPLE_COUNT]) { + #if (SAMPLE_COUNT == 1) + return getPropertiesFromMegatexture(sampleDatas[0]); + #else + // When more than one sample is taken the accumulator needs to start at 0 + Properties properties = clearProperties(); + for (int i = 0; i < SAMPLE_COUNT; ++i) { + float weight = sampleDatas[i].weight; + + // Avoid reading the megatexture when the weight is 0 as it can be costly. + if (weight > 0.0) { + Properties tempProperties = getPropertiesFromMegatexture(sampleDatas[i]); + tempProperties = scaleProperties(tempProperties, weight); + properties = sumProperties(properties, tempProperties); + } + } + return properties; + #endif +} +`;function Ept(e){let t=new L0;this.shaderBuilder=t;let n=e._customShader,i=_t(e._uniformMap,n.uniformMap);e._uniformMap=i;let o=n.uniforms;for(let p in o)if(o.hasOwnProperty(p)){let g=o[p];t.addUniform(g.type,p,Te.FRAGMENT)}t.addUniform("sampler2D","u_megatextureTextures[METADATA_COUNT]",Te.FRAGMENT),this.uniformMap=i;let r=e._clippingPlanes,s=l(r)&&r.enabled?r.length:0;this.clippingPlanes=r,this.clippingPlanesLength=s,t.addVertexLines([vF]),t.addFragmentLines([n.fragmentShaderText,"#line 0",FF,DF,UF]),s>0&&(t.addDefine("CLIPPING_PLANES",void 0,Te.FRAGMENT),t.addDefine("CLIPPING_PLANES_COUNT",s,Te.FRAGMENT),r.unionClippingRegions&&t.addDefine("CLIPPING_PLANES_UNION",void 0,Te.FRAGMENT),t.addFragmentLines([PF])),e._depthTest&&(t.addDefine("DEPTH_TEST",void 0,Te.FRAGMENT),t.addFragmentLines([IF]));let a=e._provider.shape;a==="BOX"?(t.addDefine("SHAPE_BOX",void 0,Te.FRAGMENT),t.addFragmentLines([BF,OF,vC])):a==="CYLINDER"?t.addFragmentLines([MF,vC,LF]):a==="ELLIPSOID"&&t.addFragmentLines([RF,vC,NF]),t.addFragmentLines([wF]);let c=e._shape,u=c.shaderDefines;for(let p in u)if(u.hasOwnProperty(p)){let g=u[p];l(g)&&(g=g===!0?void 0:g,t.addDefine(p,g,Te.FRAGMENT))}let f=c.shaderMaximumIntersectionsLength;s>0&&(t.addDefine("CLIPPING_PLANES_INTERSECTION_INDEX",f,Te.FRAGMENT),s===1?f+=1:r.unionClippingRegions?f+=2:f+=1),e._depthTest&&(t.addDefine("DEPTH_INTERSECTION_INDEX",f,Te.FRAGMENT),f+=1),t.addDefine("INTERSECTION_COUNT",f,Te.FRAGMENT),(!m.equals(e.paddingBefore,m.ZERO)||!m.equals(e.paddingAfter,m.ZERO))&&t.addDefine("PADDING",void 0,Te.FRAGMENT),e._useLogDepth&&t.addDefine("LOG_DEPTH_READ_ONLY",void 0,Te.FRAGMENT),e._jitter&&t.addDefine("JITTER",void 0,Te.FRAGMENT),e._nearestSampling&&t.addDefine("NEAREST_SAMPLING",void 0,Te.FRAGMENT);let d=e._traversal;t.addDefine("SAMPLE_COUNT",`${d._sampleCount}`,Te.FRAGMENT)}var VF=Ept;function bpt(e,t){let{shaderBuilder:n}=e,{names:i,types:o,componentTypes:r,minimumValues:s,maximumValues:a}=t._provider,c=o.length,u=l(s)&&l(a);n.addDefine("METADATA_COUNT",c,Te.FRAGMENT),u&&n.addDefine("STATISTICS",void 0,Te.FRAGMENT);for(let M=0;M<c;M++){let L=i[M],N=o[M],_=`PropertyStatistics_${L}`,b=`PropertyStatistics_${L}`;n.addStruct(_,b,Te.FRAGMENT);let w=qz(N);n.addStructField(_,w,"min"),n.addStructField(_,w,"max")}let f="Statistics",d="Statistics",p="statistics";n.addStruct(f,d,Te.FRAGMENT);for(let M=0;M<c;M++){let L=i[M],N=`PropertyStatistics_${L}`,_=L;n.addStructField(f,N,_)}let g="Metadata",h="Metadata",A="metadata";n.addStruct(g,h,Te.FRAGMENT),n.addStructField(g,d,p);for(let M=0;M<c;M++){let L=i[M],N=o[M],_=qz(N);n.addStructField(g,_,L)}for(let M=0;M<c;M++){let L=i[M],N=o[M],_=wpt(N),b=`VoxelProperty_${L}`,w=`VoxelProperty_${L}`;n.addStruct(b,w,Te.FRAGMENT),n.addStructField(b,_,"partialDerivativeLocal"),n.addStructField(b,_,"partialDerivativeWorld"),n.addStructField(b,_,"partialDerivativeView"),n.addStructField(b,_,"partialDerivativeValid")}let x="Voxel",C="Voxel",T="voxel";n.addStruct(x,C,Te.FRAGMENT);for(let M=0;M<c;M++){let L=i[M],N=`VoxelProperty_${L}`;n.addStructField(x,N,L)}n.addStructField(x,"vec3","positionEC"),n.addStructField(x,"vec3","positionUv"),n.addStructField(x,"vec3","positionShapeUv"),n.addStructField(x,"vec3","positionUvLocal"),n.addStructField(x,"vec3","viewDirUv"),n.addStructField(x,"vec3","viewDirWorld"),n.addStructField(x,"vec3","surfaceNormal"),n.addStructField(x,"float","travelDistance");let E="FragmentInput",S="FragmentInput";n.addStruct(E,S,Te.FRAGMENT),n.addStructField(E,h,A),n.addStructField(E,C,T);let v="Properties",D="Properties",O="properties";n.addStruct(v,D,Te.FRAGMENT);for(let M=0;M<c;M++){let L=i[M],N=o[M],_=qz(N);n.addStructField(v,_,L)}{let M="clearProperties";n.addFunction(M,`${D} clearProperties()`,Te.FRAGMENT),n.addFunctionLines(M,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L],_=o[L],b=r[L],w=qz(_,b);n.addFunctionLines(M,[`${O}.${N} = ${w}(0.0);`])}n.addFunctionLines(M,[`return ${O};`])}{let M="sumProperties";n.addFunction(M,`${D} sumProperties(${D} propertiesA, ${D} propertiesB)`,Te.FRAGMENT),n.addFunctionLines(M,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(M,[`${O}.${N} = propertiesA.${N} + propertiesB.${N};`])}n.addFunctionLines(M,[`return ${O};`])}{let M="scaleProperties";n.addFunction(M,`${D} scaleProperties(${D} ${O}, float scale)`,Te.FRAGMENT),n.addFunctionLines(M,[`${D} scaledProperties = ${O};`]);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(M,[`scaledProperties.${N} *= scale;`])}n.addFunctionLines(M,["return scaledProperties;"])}{let M="mixProperties";n.addFunction(M,`${D} mixProperties(${D} propertiesA, ${D} propertiesB, float mixFactor)`,Te.FRAGMENT),n.addFunctionLines(M,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(M,[`${O}.${N} = mix(propertiesA.${N}, propertiesB.${N}, mixFactor);`])}n.addFunctionLines(M,[`return ${O};`])}{let M="copyPropertiesToMetadata";n.addFunction(M,`void copyPropertiesToMetadata(in ${D} ${O}, inout ${h} ${A})`,Te.FRAGMENT);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(M,[`${A}.${N} = ${O}.${N};`])}}if(u){let M="setStatistics";n.addFunction(M,`void setStatistics(inout ${d} ${p})`,Te.FRAGMENT);for(let L=0;L<c;L++){let N=i[L],_=o[L],b=Wt.getComponentCount(_);for(let w=0;w<b;w++){let I=vpt(_,w),R=s[L][w],F=a[L][w];n.addFunctionLines(M,[`${p}.${N}.min${I} = ${$0e(R)};`,`${p}.${N}.max${I} = ${$0e(F)};`])}}}{let M="getPropertiesFromMegatextureAtUv";n.addFunction(M,`${D} getPropertiesFromMegatextureAtUv(vec2 texcoord)`,Te.FRAGMENT),n.addFunctionLines(M,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L],_=o[L],b=r[L],w=Spt(_,b);n.addFunctionLines(M,[`properties.${N} = texture(u_megatextureTextures[${L}], texcoord)${w};`])}n.addFunctionLines(M,[`return ${O};`])}}function qz(e){if(e===Wt.SCALAR)return"float";if(e===Wt.VEC2)return"vec2";if(e===Wt.VEC3)return"vec3";if(e===Wt.VEC4)return"vec4"}function Spt(e){if(e===Wt.SCALAR)return".r";if(e===Wt.VEC2)return".ra";if(e===Wt.VEC3)return".rgb";if(e===Wt.VEC4)return""}function wpt(e){if(e===Wt.SCALAR)return"vec3";if(e===Wt.VEC2)return"mat2";if(e===Wt.VEC3)return"mat3";if(e===Wt.VEC4)return"mat4"}function $0e(e){let t=e.toString();return t.indexOf(".")===-1&&(t=`${e}.0`),t}function vpt(e,t){return e===Wt.SCALAR?"":`[${t}]`}var kF=bpt;function Dpt(e,t){let n=new VF(e);kF(n,e);let{shaderBuilder:i,clippingPlanes:o,clippingPlanesLength:r}=n;if(r>0){let h="getClippingPlane",A=v_(o,t),x=0,C=A.indexOf(")")+1,T=A.indexOf("{",C)+1,E=A.indexOf("}",T),S=A.slice(x,C),v=A.slice(T,E);i.addFunction(h,S,Te.FRAGMENT),i.addFunctionLines(h,[v])}let s=i.clone();s.addDefine("PICKING",void 0,Te.FRAGMENT);let a=i.buildShaderProgram(t),c=s.buildShaderProgram(t),u=ze.fromCache({cull:{enabled:!0,face:_i.BACK},depthTest:{enabled:!1},depthMask:!1,blending:mn.PRE_MULTIPLIED_ALPHA_BLEND}),f=t.getViewportQuadVertexArray(),d=e._depthTest,p=new it({vertexArray:f,primitiveType:Le.TRIANGLES,renderState:u,shaderProgram:a,uniformMap:n.uniformMap,modelMatrix:e._compoundModelMatrix,pass:be.VOXELS,executeInClosestFrustum:!0,owner:this,cull:d,occlude:d}),g=it.shallowClone(p,new it);if(g.shaderProgram=c,g.pickOnly=!0,l(e._drawCommand)){let h=e._drawCommand;h.shaderProgram=h.shaderProgram&&h.shaderProgram.destroy()}if(l(e._drawCommandPick)){let h=e._drawCommandPick;h.shaderProgram=h.shaderProgram&&h.shaderProgram.destroy()}e._drawCommand=p,e._drawCommandPick=g}var zF=Dpt;function t0(e,t,n,i,o,r,s){this._primitive=e;let a=i.length;this.megatextures=new Array(a);for(let A=0;A<a;A++){let x=i[A],C=Wt.getComponentCount(x),T=o[A];this.megatextures[A]=new SS(t,n,C,T,s)}let c=this.megatextures[0].maximumTileCount;this._simultaneousRequestCount=0,this._debugPrint=!1,this._frameNumber=0;let u=e._shape;this.rootNode=new AF(0,0,0,0,void 0,u,n),this._priorityQueue=new mC({maximumLength:c,comparator:Ki.priorityComparator}),this._highPriorityKeyframeNodes=new Array(c),this._keyframeNodesInMegatexture=new Array(c),this._keyframeCount=r,this._sampleCount=void 0,this._keyframeLocation=0,this._binaryTreeKeyframeWeighting=new Array(r);let f=this._binaryTreeKeyframeWeighting;f[0]=0,f[r-1]=0,Jq(f,1,r-2,0);let d=9,p=2048,g=Math.floor(p/d),h=Math.ceil(c/g);this.internalNodeTexture=new Bt({context:t,pixelFormat:ct.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,flipY:!1,width:p,height:h,sampler:new dn({minificationFilter:cn.NEAREST,magnificationFilter:xi.NEAREST})}),this.internalNodeTilesPerRow=g,this.internalNodeTexelSizeUv=new H(1/p,1/h),this.leafNodeTexture=void 0,this.leafNodeTilesPerRow=void 0,this.leafNodeTexelSizeUv=new H}function Jq(e,t,n,i){if(t>n)return;let o=Math.floor((t+n)/2);e[o]=i,Jq(e,t,o-1,i+1),Jq(e,o+1,n,i+1)}t0.simultaneousRequestCountMaximum=50;t0.prototype.update=function(e,t,n,i){let o=this._primitive,r=e.context,s=this.megatextures[0].maximumTileCount,a=this._keyframeCount,c=o._levelBlendFactor,u=c>0,f=a>1,d=(u?2:1)*(f?2:1);this._sampleCount=d;let p=d>=2;if(p&&!l(this.leafNodeTexture)){let T=Math.floor(512),E=Math.ceil(s/T);this.leafNodeTexture=new Bt({context:r,pixelFormat:ct.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,flipY:!1,width:1024,height:E,sampler:new dn({minificationFilter:cn.NEAREST,magnificationFilter:xi.NEAREST})}),this.leafNodeTexelSizeUv=H.fromElements(1/1024,1/E,this.leafNodeTexelSizeUv),this.leafNodeTilesPerRow=T}else!p&&l(this.leafNodeTexture)&&(this.leafNodeTexture=this.leafNodeTexture.destroy());if(this._keyframeLocation=P.clamp(t,0,a-1),n&&eAe(this,this.rootNode),i)return;this._frameNumber=e.frameNumber;let g=gi();Opt(this,e);let h=gi();Rpt(this,d,c);let A=gi();if(this._debugPrint){let x=h-g,C=A-h,T=A-g;Mpt(this,x,C,T)}};t0.prototype.isRenderable=function(e){return e.isRenderable(this._frameNumber)};t0.prototype.isDestroyed=function(){return!1};t0.prototype.destroy=function(){let e=this.megatextures,t=e.length;for(let n=0;n<t;n++)e[n]=e[n]&&e[n].destroy();return this.internalNodeTexture=this.internalNodeTexture&&this.internalNodeTexture.destroy(),this.leafNodeTexture=this.leafNodeTexture&&this.leafNodeTexture.destroy(),ue(this)};function eAe(e,t){let n=e._primitive,i=n._shape,o=n._provider.dimensions;if(t.computeBoundingVolumes(i,o),l(t.children))for(let r=0;r<8;r++){let s=t.children[r];eAe(e,s)}}function Ipt(e,t){if(e._simultaneousRequestCount>=t0.simultaneousRequestCountMaximum)return;let n=e._primitive,i=n._provider;function o(u){e._simultaneousRequestCount--;let f=n._provider.types.length;if(!l(u))t.state=Ki.LoadState.UNAVAILABLE;else if(u===Ki.LoadState.FAILED)t.state=Ki.LoadState.FAILED;else if(!Array.isArray(u)||u.length!==f)t.state=Ki.LoadState.FAILED;else{let d=e.megatextures;for(let p=0;p<f;p++){let{voxelCountPerTile:g,channelCount:h}=d[p],{x:A,y:x,z:C}=g,T=A*x*C,E=u[p],S=T*h;if(E.length===S)t.metadatas[p]=E,t.state=Ki.LoadState.RECEIVED;else{t.state=Ki.LoadState.FAILED;break}}}}function r(){e._simultaneousRequestCount--,t.state=Ki.LoadState.FAILED}let{keyframe:s,spatialNode:a}=t,c=i.requestData({tileLevel:a.level,tileX:a.x,tileY:a.y,tileZ:a.z,keyframe:s});l(c)?(e._simultaneousRequestCount++,t.state=Ki.LoadState.RECEIVING,c.then(o).catch(r)):t.state=Ki.LoadState.FAILED}function Ppt(e){return e/(1+e)}function Opt(e,t){let n=e._frameNumber,i=e._primitive,o=i._shape,{dimensions:r}=i,s=i.screenSpaceError,a=e._priorityQueue,c=e._keyframeLocation,u=e._keyframeCount,f=e.rootNode,{camera:d,context:p,pixelRatio:g}=t,{positionWC:h,frustum:A}=d,C=p.drawingBufferHeight/g/A.sseDenominator;function T(b,w,I){let R=Math.min(Math.abs(w-b),Math.abs(w-I)),F=Math.max(b,u-I-1,1),k=Math.pow(1-R/F,4),V=Math.exp(-e._binaryTreeKeyframeWeighting[w]);return P.lerp(V,k,.15+.85*k)}function E(b,w){if(b.computeScreenSpaceError(h,C),w=b.visibility(t,w),w===Kr.MASK_OUTSIDE)return;b.visitedFrameNumber=n;let I=P.clamp(Math.floor(c),0,u-2),R=I+1;if(u===1)b.createKeyframeNode(0);else if(b.keyframeNodes.length!==u)for(let U=0;U<u;U++)b.createKeyframeNode(U);let F=Ppt(b.screenSpaceError),k=!1,V=b.keyframeNodes;for(let U=0;U<V.length;U++){let q=V[U];q.priority=10*F+T(I,q.keyframe,R),q.state!==Ki.LoadState.UNAVAILABLE&&q.state!==Ki.LoadState.FAILED&&q.priority!==-Number.MAX_VALUE&&a.insert(q),q.state===Ki.LoadState.LOADED&&(k=!0)}if(b.screenSpaceError<s||!k){b.children=void 0;return}l(b.children)||b.constructChildNodes(o,r);for(let U=0;U<8;U++){let q=b.children[U];E(q,w)}}a.reset(),E(f,Kr.MASK_INDETERMINATE);let S=e._highPriorityKeyframeNodes,v=0,D;for(;a.length>0;)D=a.removeMaximum(),D.highPriorityFrameNumber=n,S[v]=D,v++;let O=e._keyframeNodesInMegatexture,M=e.megatextures[0],L=M.occupiedCount;O.length=L,O.sort(function(b,w){return b.highPriorityFrameNumber===w.highPriorityFrameNumber?w.priority-b.priority:w.highPriorityFrameNumber-b.highPriorityFrameNumber});let N=0,_=0;for(let b=0;b<v;b++)if(D=S[b],!(D.state===Ki.LoadState.LOADED||D.spatialNode===void 0)&&(D.state===Ki.LoadState.UNLOADED&&Ipt(e,D),D.state===Ki.LoadState.RECEIVED)){let w=0;if(M.isFull()){w=L-1-N,N++;let I=O[w];I.spatialNode.destroyKeyframeNode(I,e.megatextures)}else w=L+_,_++;D.spatialNode.addKeyframeNodeToMegatextures(D,e.megatextures),O[w]=D}}function Mpt(e,t,n,i){let o=e._keyframeCount,r=e.rootNode,s=Object.keys(Ki.LoadState).length,a=new Array(s),c=new Array(s),u=0;for(let C=0;C<s;C++){let T=new Array(o);a[C]=T;for(let E=0;E<o;E++)T[E]=0;c[C]=0}function f(C){let T=C.keyframeNodes;for(let E=0;E<T.length;E++){let S=T[E],v=S.keyframe,D=S.state;a[D][v]+=1,c[D]+=1,u++}if(l(C.children))for(let E=0;E<8;E++){let S=C.children[E];f(S)}}f(r);let d=`KEYFRAMES: ${a[Ki.LoadState.LOADED]}`,p=`UNLOADED: ${c[Ki.LoadState.UNLOADED]} | RECEIVING: ${c[Ki.LoadState.RECEIVING]} | RECEIVED: ${c[Ki.LoadState.RECEIVED]} | LOADED: ${c[Ki.LoadState.LOADED]} | FAILED: ${c[Ki.LoadState.FAILED]} | UNAVAILABLE: ${c[Ki.LoadState.UNAVAILABLE]} | TOTAL: ${u}`,g=Math.round(t*100)/100,h=Math.round(n*100)/100,A=Math.round(i*100)/100,x=`LOAD: ${g} | OCT: ${h} | ALL: ${A}`;console.log(`${d} || ${p} || ${x}`)}var Xz={INTERNAL:0,LEAF:1,PACKED_LEAF_FROM_PARENT:2};function Rpt(e,t,n){let i=e._primitive._screenSpaceError,o=e._keyframeLocation,r=e._frameNumber,s=t>=2,a=0,c=0,u=[],f=[];function d(g,h,A,x,C){let T=!1;if(l(g.children))for(let E=0;E<8;E++){let S=g.children[E];S.computeSurroundingRenderableKeyframeNodes(o),S.isRenderable(r)&&(T=!0)}if(T){u[C]=Xz.INTERNAL<<16|h,u[A]=x,a++,x=h,C=x*9+1;for(let E=0;E<8;E++){let S=g.children[E];h=a,A=h*9+0,d(S,h,A,x,C+E)}}else{if(s){let E=c*5,S=g.renderableKeyframeNodePrevious,v=g.level-S.spatialNode.level,D=S.spatialNode.parent,O=l(D)?D.renderableKeyframeNodePrevious:S,M=Bpt(g,i,n),L=v,N=1,_=S.megatextureIndex,b=O.megatextureIndex;f[E+0]=M,f[E+1]=L,f[E+2]=N,f[E+3]=_,f[E+4]=b,u[C]=Xz.LEAF<<16|c}else{let E=g.renderableKeyframeNodePrevious,v=g.level-E.spatialNode.level===0?Xz.LEAF:Xz.PACKED_LEAF_FROM_PARENT;u[C]=v<<16|E.megatextureIndex}c++}}let p=e.rootNode;p.computeSurroundingRenderableKeyframeNodes(o),p.isRenderable(r)&&d(p,0,0,0,0),Lpt(u,9,e.internalNodeTilesPerRow,e.internalNodeTexture),s&&Npt(f,2,e.leafNodeTilesPerRow,e.leafNodeTexture)}function Bpt(e,t,n){if(e.parent===void 0)return 0;let i=e.screenSpaceError,o=e.parent.screenSpaceError,s=((t-i)/(o-i)+n-1)/n;return P.clamp(s,0,1)}function Lpt(e,t,n,i){let o=ct.componentsLength(i.pixelFormat),r=Math.ceil(e.length/t),s=Math.max(1,t*Math.min(r,n)),a=Math.max(1,Math.ceil(r/n)),c=new Uint8Array(s*a*o);for(let d=0;d<e.length;d++){let p=e[d],g=d*o;for(let h=0;h<o;h++)c[g+h]=p>>>h*8&255}let f={source:{arrayBufferView:c,width:s,height:a},xOffset:0,yOffset:0};i.copyFrom(f)}function Npt(e,t,n,i){let o=ct.componentsLength(i.pixelFormat),r=5,s=Math.ceil(e.length/r),a=Math.max(1,t*Math.min(s,n)),c=Math.max(1,Math.ceil(s/n)),u=new Uint8Array(a*c*o);for(let p=0;p<s;p++){let g=e[p*r+0],h=e[p*r+1],A=e[p*r+2],x=e[p*r+3],C=e[p*r+4],T=P.clamp(Math.floor(65536*g),0,65535);u[p*8+0]=T>>>0&255,u[p*8+1]=T>>>8&255,u[p*8+2]=h&255,u[p*8+3]=A&255,u[p*8+4]=x>>>0&255,u[p*8+5]=x>>>8&255,u[p*8+6]=C>>>0&255,u[p*8+7]=C>>>8&255}let d={source:{arrayBufferView:u,width:a,height:c},xOffset:0,yOffset:0};i.copyFrom(d)}t0.getApproximateTextureMemoryByteLength=function(e,t,n,i){let o=0,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=i[s],u=Wt.getComponentCount(a);o+=SS.getApproximateTextureMemoryByteLength(e,t,u,c)}return o};var BS=t0;var Fpt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",MAT2:"mat2",MAT3:"mat3",MAT4:"mat4",SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube"},LS=Object.freeze(Fpt);function Upt(e,t,n){let i=new Uint8ClampedArray(e.buffer),o=new ImageData(i,t,n),r=document.createElement("canvas");return r.width=t,r.height=n,r.getContext("2d").putImageData(o,0,0),r}var HF=Upt;function NS(){this._defaultTexture=void 0,this._textures={},this._loadedImages=[],this._lastUpdatedFrame=-1}NS.prototype.getTexture=function(e){return this._textures[e]};function Vpt(e,t,n){n.resource.fetchImage().then(function(i){e._loadedImages.push({id:t,image:i,textureUniform:n})}).catch(function(){let i=e._textures[t];l(i)&&i!==e._defaultTexture&&i.destroy(),e._textures[t]=e._defaultTexture})}NS.prototype.loadTexture2D=function(e,t){l(t.typedArray)?this._loadedImages.push({id:e,textureUniform:t}):Vpt(this,e,t)};function kpt(e,t,n){let{id:i,textureUniform:o,image:r}=t,s=n.webgl2?Kz(o,r,n):zpt(o,r,n),a=e._textures[i];l(a)&&a!==n.defaultTexture&&a.destroy(),e._textures[i]=s}function Kz(e,t,n){let{typedArray:i,sampler:o}=e,r=l(i)?nAe(e,n):new Bt({context:n,source:t,sampler:o});return tAe(o)&&r.generateMipmap(),r}function zpt(e,t,n){let{typedArray:i,sampler:o}=e,r=tAe(o),s=o.wrapS===vn.REPEAT||o.wrapS===vn.MIRRORED_REPEAT||o.wrapT===vn.REPEAT||o.wrapT===vn.MIRRORED_REPEAT,{width:a,height:c}=l(i)?e:t,u=[a,c].every(P.isPowerOfTwo);if((r||s)&&!u)if(l(i)){if(e.pixelDatatype===Je.UNSIGNED_BYTE){let d=HF(i,a,c),p=vg(d);return Kz({sampler:o},p,n)}}else{let d=vg(t);return Kz(e,d,n)}else return Kz(e,t,n);return r?console.warn("Texture requires resizing for mipmaps but pixelDataType cannot be resized. The texture may be rendered incorrectly."):s&&console.warn("Texture requires resizing for wrapping but pixelDataType cannot be resized. The texture may be rendered incorrectly."),nAe(e,n)}function tAe(e){return[cn.NEAREST_MIPMAP_NEAREST,cn.NEAREST_MIPMAP_LINEAR,cn.LINEAR_MIPMAP_NEAREST,cn.LINEAR_MIPMAP_LINEAR].includes(e.minificationFilter)}function nAe(e,t){let{pixelFormat:n,pixelDatatype:i,width:o,height:r,typedArray:s,sampler:a}=e;return new Bt({context:t,pixelFormat:n,pixelDatatype:i,source:{arrayBufferView:s,width:o,height:r},sampler:a,flipY:!1})}NS.prototype.update=function(e){if(e.frameNumber===this._lastUpdatedFrame)return;this._lastUpdatedFrame=e.frameNumber;let t=e.context;this._defaultTexture=t.defaultTexture;let n=this._loadedImages;for(let i=0;i<n.length;i++){let o=n[i];kpt(this,o,t)}n.length=0};NS.prototype.isDestroyed=function(){return!1};NS.prototype.destroy=function(){let e=this._textures;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];n!==this._defaultTexture&&n.destroy()}return ue(this)};var GF=NS;function WF(e){e=y(e,y.EMPTY_OBJECT),this.mode=y(e.mode,Fp.MODIFY_MATERIAL),this.lightingModel=e.lightingModel,this.uniforms=y(e.uniforms,y.EMPTY_OBJECT),this.varyings=y(e.varyings,y.EMPTY_OBJECT),this.vertexShaderText=e.vertexShaderText,this.fragmentShaderText=e.fragmentShaderText,this.translucencyMode=y(e.translucencyMode,Vg.INHERIT),this._textureManager=new GF,this._defaultTexture=void 0,this.uniformMap=Hpt(this),this.usedVariablesVertex={attributeSet:{},featureIdSet:{},metadataSet:{}},this.usedVariablesFragment={attributeSet:{},featureIdSet:{},metadataSet:{},materialSet:{}},jpt(this),Ypt(this)}function Hpt(e){let t=e.uniforms,n={};for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];o.type===LS.SAMPLER_2D?(e._textureManager.loadTexture2D(i,o.value),n[i]=Gpt(e,i)):n[i]=Wpt(e,i)}return n}function Gpt(e,t){return function(){return y(e._textureManager.getTexture(t),e._defaultTexture)}}function Wpt(e,t){return function(){return e.uniforms[t].value}}function DC(e,t,n){let i;for(;(i=t.exec(e))!==null;){let o=i[1];n[o]=!0}}function jpt(e){let t=/[vf]sInput\.attributes\.(\w+)/g,n=/[vf]sInput\.featureIds\.(\w+)/g,i=/[vf]sInput\.metadata.(\w+)/g,o,r=e.vertexShaderText;l(r)&&(o=e.usedVariablesVertex.attributeSet,DC(r,t,o),o=e.usedVariablesVertex.featureIdSet,DC(r,n,o),o=e.usedVariablesVertex.metadataSet,DC(r,i,o));let s=e.fragmentShaderText;if(l(s)){o=e.usedVariablesFragment.attributeSet,DC(s,t,o),o=e.usedVariablesFragment.featureIdSet,DC(s,n,o),o=e.usedVariablesFragment.metadataSet,DC(s,i,o);let a=/material\.(\w+)/g,c=e.usedVariablesFragment.materialSet;DC(s,a,c)}}function iAe(e){let t=/^.*MC$/,n=/^.*WC$/,i=/^.*EC$/;return t.test(e)?`${e} (model coordinates)`:n.test(e)?`${e} (Cartesian world coordinates)`:i.test(e)?`${e} (eye coordinates)`:e}function mc(e,t,n,i){if(e.hasOwnProperty(t)){let o=`${iAe(t)} is not available in the ${i} shader. Did you mean ${iAe(n)} instead?`;throw new fe(o)}}function Ypt(e){let t=e.usedVariablesVertex.attributeSet;mc(t,"position","positionMC","vertex"),mc(t,"normal","normalMC","vertex"),mc(t,"tangent","tangentMC","vertex"),mc(t,"bitangent","bitangentMC","vertex"),mc(t,"positionWC","positionMC","vertex"),mc(t,"positionEC","positionMC","vertex"),mc(t,"normalEC","normalMC","vertex"),mc(t,"tangentEC","tangentMC","vertex"),mc(t,"bitangentEC","bitangentMC","vertex");let n=e.usedVariablesFragment.attributeSet;mc(n,"position","positionEC","fragment"),mc(n,"normal","normalEC","fragment"),mc(n,"tangent","tangentEC","fragment"),mc(n,"bitangent","bitangentEC","fragment"),mc(n,"normalMC","normalEC","fragment"),mc(n,"tangentMC","tangentEC","fragment"),mc(n,"bitangentMC","bitangentEC","fragment")}WF.prototype.setUniform=function(e,t){let n=this.uniforms[e];n.type===LS.SAMPLER_2D?this._textureManager.loadTexture2D(e,t):l(t.clone)?n.value=t.clone(n.value):n.value=t};WF.prototype.update=function(e){this._defaultTexture=e.context.defaultTexture,this._textureManager.update(e)};WF.prototype.isDestroyed=function(){return!1};WF.prototype.destroy=function(){this._textureManager=this._textureManager&&this._textureManager.destroy(),ue(this)};var IC=WF;function Bh(e){e=y(e,y.EMPTY_OBJECT),this._ready=!1,this._provider=y(e.provider,Bh.DefaultProvider),this._traversal=void 0,this._shape=void 0,this._shapeVisible=!1,this._paddingBefore=new m,this._paddingAfter=new m,this._minBounds=new m,this._minBoundsOld=new m,this._maxBounds=new m,this._maxBoundsOld=new m,this._minClippingBounds=new m,this._minClippingBoundsOld=new m,this._maxClippingBounds=new m,this._maxClippingBoundsOld=new m,this._clippingPlanes=void 0,this._clippingPlanesState=0,this._clippingPlanesEnabled=!1,this._modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._compoundModelMatrix=new B,this._compoundModelMatrixOld=new B,this._customShader=y(e.customShader,Bh.DefaultCustomShader),this._customShaderCompilationEvent=new ge,this._shaderDirty=!0,this._drawCommand=void 0,this._drawCommandPick=void 0,this._pickId=void 0,this._clock=e.clock,this._transformPositionWorldToUv=new B,this._transformPositionUvToWorld=new B,this._transformDirectionWorldToLocal=new Z,this._transformNormalLocalToWorld=new Z,this._stepSizeUv=1,this._jitter=!0,this._nearestSampling=!1,this._levelBlendFactor=0,this._stepSizeMultiplier=1,this._depthTest=!0,this._useLogDepth=void 0,this._screenSpaceError=4,this._debugPolylines=new Id,this._debugDraw=!1,this._disableRender=!1,this._disableUpdate=!1,this._uniforms={octreeInternalNodeTexture:void 0,octreeInternalNodeTilesPerRow:0,octreeInternalNodeTexelSizeUv:new H,octreeLeafNodeTexture:void 0,octreeLeafNodeTilesPerRow:0,octreeLeafNodeTexelSizeUv:new H,megatextureTextures:[],megatextureSliceDimensions:new H,megatextureTileDimensions:new H,megatextureVoxelSizeUv:new H,megatextureSliceSizeUv:new H,megatextureTileSizeUv:new H,dimensions:new m,paddingBefore:new m,paddingAfter:new m,transformPositionViewToUv:new B,transformPositionUvToView:new B,transformDirectionViewToLocal:new Z,transformNormalLocalToWorld:new Z,cameraPositionUv:new m,ndcSpaceAxisAlignedBoundingBox:new re,clippingPlanesTexture:void 0,clippingPlanesMatrix:new B,stepSize:0,pickColor:new z},this._shapeDefinesOld={},this._uniformMap={};let t=this._uniforms,n=this._uniformMap;for(let o in t)if(t.hasOwnProperty(o)){let r=`u_${o}`;n[r]=function(){return t[o]}}let i=this._provider;this._completeLoad=function(o,r){},this._readyPromise=qpt(this,i)}async function qpt(e,t){let n=new Promise(function(a){e._completeLoad=function(c,u){u.afterRender.push(function(){return c._ready=!0,a(c),!0})}});l(t._readyPromise)&&!t._ready&&await t._readyPromise;let{shape:i,minBounds:o=Gi.getMinBounds(i),maxBounds:r=Gi.getMaxBounds(i)}=t;e.minBounds=o,e.maxBounds=r,e.minClippingBounds=Gi.getMinBounds(i),e.maxClippingBounds=Gi.getMaxBounds(i),rAe(e,t);let s=Gi.getShapeConstructor(i);return e._shape=new s,e._shapeVisible=sAe(e,e._shape,t),n}Object.defineProperties(Bh.prototype,{ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("VoxelPrimitive.readyPromise","VoxelPrimitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for VoxelPrimitive.ready to return true instead."),this._readyPromise}},provider:{get:function(){return this._provider}},boundingSphere:{get:function(){return this._shape.boundingSphere}},orientedBoundingBox:{get:function(){return this.shape.orientedBoundingBox}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=B.clone(e,this._modelMatrix)}},shape:{get:function(){return this._provider.shape}},dimensions:{get:function(){return this._provider.dimensions}},minimumValues:{get:function(){return this._provider.minimumValues}},maximumValues:{get:function(){return this._provider.maximumValues}},show:{get:function(){return!this._disableRender},set:function(e){this._disableRender=!e}},disableUpdate:{get:function(){return this._disableUpdate},set:function(e){this._disableUpdate=e}},debugDraw:{get:function(){return this._debugDraw},set:function(e){this._debugDraw=e}},depthTest:{get:function(){return this._depthTest},set:function(e){this._depthTest!==e&&(this._depthTest=e,this._shaderDirty=!0)}},jitter:{get:function(){return this._jitter},set:function(e){this._jitter!==e&&(this._jitter=e,this._shaderDirty=!0)}},nearestSampling:{get:function(){return this._nearestSampling},set:function(e){this._nearestSampling!==e&&(this._nearestSampling=e,this._shaderDirty=!0)}},levelBlendFactor:{get:function(){return this._levelBlendFactor},set:function(e){this._levelBlendFactor=P.clamp(e,0,1)}},screenSpaceError:{get:function(){return this._screenSpaceError},set:function(e){this._screenSpaceError=e}},stepSize:{get:function(){return this._stepSizeMultiplier},set:function(e){this._stepSizeMultiplier=e}},minBounds:{get:function(){return this._minBounds},set:function(e){this._minBounds=m.clone(e,this._minBounds)}},maxBounds:{get:function(){return this._maxBounds},set:function(e){this._maxBounds=m.clone(e,this._maxBounds)}},minClippingBounds:{get:function(){return this._minClippingBounds},set:function(e){this._minClippingBounds=m.clone(e,this._minClippingBounds)}},maxClippingBounds:{get:function(){return this._maxClippingBounds},set:function(e){this._maxClippingBounds=m.clone(e,this._maxClippingBounds)}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){os.setOwner(e,this,"_clippingPlanes")}},customShader:{get:function(){return this._customShader},set:function(e){if(this._customShader!==e){let t=this._uniformMap,i=this._customShader.uniformMap;for(let o in i)i.hasOwnProperty(o)&&delete t[o];l(e)?this._customShader=e:this._customShader=Bh.DefaultCustomShader,this._shaderDirty=!0}}},customShaderCompilationEvent:{get:function(){return this._customShaderCompilationEvent}}});var Xpt=new m,Kpt=new re,Jpt=new re,Zpt=new m,Qpt=new m,$pt=new Z,e_t=new Z,t_t=new B,n_t=new B,i_t=new B,o_t=B.fromRotationTranslation(Z.fromUniformScale(.5,new Z),new m(.5,.5,.5),new B),r_t=B.fromRotationTranslation(Z.fromUniformScale(2,new Z),new m(-1,-1,-1),new B);Bh.prototype.update=function(e){let t=this._provider;if(this._customShader.update(e),l(t._ready)&&!t._ready||!l(this._shape))return;let n=e.context;if(!this._ready){s_t(this,t,n),this._completeLoad(this,e);return}let i=rAe(this,t),o=this._shape;if(i&&(this._shapeVisible=sAe(this,o,t),l_t(this,o)&&(this._shaderDirty=!0)),!this._shapeVisible)return;let r=u_t(t.timeIntervalCollection,this._clock),s=this._traversal,a=s._sampleCount;if(s.update(e,r,i,this._disableUpdate),a!==s._sampleCount&&(this._shaderDirty=!0),!s.isRenderable(s.rootNode)||(this._debugDraw&&y_t(this,e),this._disableRender))return;this._useLogDepth!==e.useLogDepth&&(this._useLogDepth=e.useLogDepth,this._shaderDirty=!0),f_t(this,e)&&(this._shaderDirty=!0);let u=s.leafNodeTexture,f=this._uniforms;l(u)&&(f.octreeLeafNodeTexture=s.leafNodeTexture,f.octreeLeafNodeTexelSizeUv=H.clone(s.leafNodeTexelSizeUv,f.octreeLeafNodeTexelSizeUv),f.octreeLeafNodeTilesPerRow=s.leafNodeTilesPerRow),this._shaderDirty&&(zF(this,n),this._shaderDirty=!1);let d=n.uniformState.viewProjection,p=o.orientedBoundingBox,g=h_t(p,d,Jpt);if(g.x===1||g.y===1||g.z===-1||g.w===-1)return;f.ndcSpaceAxisAlignedBoundingBox=re.clone(g,f.ndcSpaceAxisAlignedBoundingBox);let A=n.uniformState.inverseView;f.transformPositionViewToUv=B.multiplyTransformation(this._transformPositionWorldToUv,A,f.transformPositionViewToUv);let x=n.uniformState.view;f.transformPositionUvToView=B.multiplyTransformation(x,this._transformPositionUvToWorld,f.transformPositionUvToView);let C=n.uniformState.inverseViewRotation;f.transformDirectionViewToLocal=Z.multiply(this._transformDirectionWorldToLocal,C,f.transformDirectionViewToLocal),f.transformNormalLocalToWorld=Z.clone(this._transformNormalLocalToWorld,f.transformNormalLocalToWorld);let T=e.camera.positionWC;f.cameraPositionUv=B.multiplyByPoint(this._transformPositionWorldToUv,T,f.cameraPositionUv),f.stepSize=this._stepSizeUv*this._stepSizeMultiplier;let E=e.passes.pick?this._drawCommandPick:this._drawCommand;E.boundingVolume=o.boundingSphere,e.commandList.push(E)};function s_t(e,t,n){let i=e._uniforms;e._pickId=n.createPickId({primitive:e}),i.pickColor=z.clone(e._pickId.color,i.pickColor);let{shaderDefines:o,shaderUniforms:r}=e._shape;e._shapeDefinesOld=Ye(o,!0);let s=e._uniformMap;for(let a in r)if(r.hasOwnProperty(a)){let c=`u_${a}`;s[c]=function(){return r[a]}}i.dimensions=m.clone(t.dimensions,i.dimensions),e._paddingBefore=m.clone(y(t.paddingBefore,m.ZERO),e._paddingBefore),i.paddingBefore=m.clone(e._paddingBefore,i.paddingBefore),e._paddingAfter=m.clone(y(t.paddingAfter,m.ZERO),e._paddingBefore),i.paddingAfter=m.clone(e._paddingAfter,i.paddingAfter),e._traversal=a_t(e,t,n),c_t(e._traversal,i)}function rAe(e,t){let n=y(t.shapeTransform,B.IDENTITY),i=y(t.globalTransform,B.IDENTITY);return B.multiplyTransformation(i,e._modelMatrix,e._compoundModelMatrix),B.multiplyTransformation(e._compoundModelMatrix,n,e._compoundModelMatrix),jF(e,"_compoundModelMatrix","_compoundModelMatrixOld")+jF(e,"_minBounds","_minBoundsOld")+jF(e,"_maxBounds","_maxBoundsOld")+jF(e,"_minClippingBounds","_minClippingBoundsOld")+jF(e,"_maxClippingBounds","_maxClippingBoundsOld")>0}function jF(e,t,n){let i=e[t],o=e[n],r=!i.equals(o);return r&&i.clone(o),r?1:0}function sAe(e,t,n){if(!t.update(e._compoundModelMatrix,e.minBounds,e.maxBounds,e.minClippingBounds,e.maxClippingBounds))return!1;let o=t.shapeTransform,r=B.inverse(o,t_t),s=B.getRotation(o,$pt),a=B.getScale(o,Zpt),c=m.maximumComponent(a),u=m.divideByScalar(a,c,Qpt),f=Z.multiplyByScale(s,u,e_t),d=n.dimensions;return e._stepSizeUv=t.computeApproximateStepSize(d),e._transformPositionWorldToUv=B.multiplyTransformation(o_t,r,e._transformPositionWorldToUv),e._transformPositionUvToWorld=B.multiplyTransformation(o,r_t,e._transformPositionUvToWorld),e._transformDirectionWorldToLocal=B.getMatrix3(r,e._transformDirectionWorldToLocal),e._transformNormalLocalToWorld=Z.inverseTranspose(f,e._transformNormalLocalToWorld),!0}function a_t(e,t,n){let i=m.clone(t.dimensions,Xpt);m.add(i,e._paddingBefore,i),m.add(i,e._paddingAfter,i);let o=t.maximumTileCount,r=l(o)?BS.getApproximateTextureMemoryByteLength(o,i,t.types,t.componentTypes):void 0,s=y(t.keyframeCount,1);return new BS(e,n,i,t.types,t.componentTypes,s,r)}function c_t(e,t){t.octreeInternalNodeTexture=e.internalNodeTexture,t.octreeInternalNodeTexelSizeUv=H.clone(e.internalNodeTexelSizeUv,t.octreeInternalNodeTexelSizeUv),t.octreeInternalNodeTilesPerRow=e.internalNodeTilesPerRow;let n=e.megatextures,i=n[0],o=n.length;t.megatextureTextures=new Array(o);for(let r=0;r<o;r++)t.megatextureTextures[r]=n[r].texture;t.megatextureSliceDimensions=H.clone(i.sliceCountPerRegion,t.megatextureSliceDimensions),t.megatextureTileDimensions=H.clone(i.regionCountPerMegatexture,t.megatextureTileDimensions),t.megatextureVoxelSizeUv=H.clone(i.voxelSizeUv,t.megatextureVoxelSizeUv),t.megatextureSliceSizeUv=H.clone(i.sliceSizeUv,t.megatextureSliceSizeUv),t.megatextureTileSizeUv=H.clone(i.regionSizeUv,t.megatextureTileSizeUv)}function l_t(e,t){let n=t.shaderDefines,i=Object.keys(n).some(o=>n[o]!==e._shapeDefinesOld[o]);return i&&(e._shapeDefinesOld=Ye(n,!0)),i}function u_t(e,t){if(!l(e)||!l(t))return 0;let n=t.currentTime,i,o=e.indexOf(n);o>=0?i=e.get(o):(o=~o,o===e.length?(o=e.length-1,i=e.get(o),n=i.stop):(i=e.get(o),n=i.start));let r=ee.secondsDifference(i.stop,i.start),a=ee.secondsDifference(n,i.start)/r;return o+a}function f_t(e,t){let n=e.clippingPlanes;if(!l(n))return!1;n.update(t);let{clippingPlanesState:i,enabled:o}=n;if(o){let r=e._uniforms;r.clippingPlanesTexture=n.texture,r.clippingPlanesMatrix=B.transpose(B.multiplyTransformation(B.inverse(n.modelMatrix,r.clippingPlanesMatrix),e._transformPositionUvToWorld,r.clippingPlanesMatrix),r.clippingPlanesMatrix)}return e._clippingPlanesState===i&&e._clippingPlanesEnabled===o?!1:(e._clippingPlanesState=i,e._clippingPlanesEnabled=o,!0)}Bh.prototype.isDestroyed=function(){return!1};Bh.prototype.destroy=function(){let e=this._drawCommand;l(e)&&(e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy());let t=this._drawCommandPick;return l(t)&&(t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()),this._pickId=this._pickId&&this._pickId.destroy(),this._traversal=this._traversal&&this._traversal.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),ue(this)};var oAe=new Array(new re(-1,-1,-1,1),new re(1,-1,-1,1),new re(-1,1,-1,1),new re(1,1,-1,1),new re(-1,-1,1,1),new re(1,-1,1,1),new re(-1,1,1,1),new re(1,1,1,1)),d_t=new Array(1,2,4,0,3,5,0,3,6,1,2,7,0,5,6,1,4,7,2,4,7,3,5,6),m_t=new Array(new re,new re,new re,new re,new re,new re,new re,new re);function h_t(e,t,n){let i=B.fromRotationTranslation(e.halfAxes,e.center,n_t),o=B.multiply(t,i,i_t),r=+Number.MAX_VALUE,s=-Number.MAX_VALUE,a=+Number.MAX_VALUE,c=-Number.MAX_VALUE,u,f=m_t,d=oAe.length;for(u=0;u<d;u++)B.multiplyByVector(o,oAe[u],f[u]);for(u=0;u<d;u++){let p=f[u];if(p.z>=-p.w){let g=p.x/p.w,h=p.y/p.w;r=Math.min(r,g),s=Math.max(s,g),a=Math.min(a,h),c=Math.max(c,h)}else for(let g=0;g<3;g++){let h=d_t[u*3+g],A=f[h];if(A.z>=-A.w){let x=p.z+p.w,C=A.z+A.w,T=x/(x-C),E=re.lerp(p,A,T,Kpt),S=E.x/E.w,v=E.y/E.w;r=Math.min(r,S),s=Math.max(s,S),a=Math.min(a,v),c=Math.max(c,v)}}}return r=P.clamp(r,-1,1),a=P.clamp(a,-1,1),s=P.clamp(s,-1,1),c=P.clamp(c,-1,1),n=re.fromElements(r,a,s,c,n),n}var Zq=3e7,p_t=new m(Zq,0,0),__t=new m(0,Zq,0),g_t=new m(0,0,Zq);function y_t(e,t){let n=e._traversal,i=e._debugPolylines;i.removeAll();function o(c,u,f,d){i.add({positions:[c,u],width:d,material:ki.fromType("Color",{color:f})})}function r(c,u,f){let d=c.computeCorners();o(d[0],d[1],u,f),o(d[2],d[3],u,f),o(d[4],d[5],u,f),o(d[6],d[7],u,f),o(d[0],d[2],u,f),o(d[4],d[6],u,f),o(d[1],d[3],u,f),o(d[5],d[7],u,f),o(d[0],d[4],u,f),o(d[2],d[6],u,f),o(d[1],d[5],u,f),o(d[3],d[7],u,f)}function s(c){if(!n.isRenderable(c))return;let u=c.level,d=Math.max(1,5/Math.pow(2,u)),g=[z.RED,z.LIME,z.BLUE][u%3];if(r(c.orientedBoundingBox,g,d),l(c.children))for(let h=0;h<8;h++)s(c.children[h])}r(e._shape.orientedBoundingBox,z.WHITE,5),s(n.rootNode);let a=10;o(m.ZERO,p_t,z.RED,a),o(m.ZERO,__t,z.LIME,a),o(m.ZERO,g_t,z.BLUE,a),i.update(t)}Bh.DefaultCustomShader=new IC({fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) +{ + material.diffuse = vec3(1.0); + material.alpha = 1.0; +}`});function aAe(){this.ready=!0,this.shape=Gi.BOX,this.dimensions=new m(1,1,1),this.names=["data"],this.types=[Wt.SCALAR],this.componentTypes=[nn.FLOAT32],this.maximumTileCount=1}aAe.prototype.requestData=function(e){if(!((l(e)?y(e.tileLevel,0):0)>=1))return Promise.resolve([new Float32Array(1)])};Bh.DefaultProvider=new aAe;var FS=Bh;function Qq(){fe.throwInstantiationError()}Object.defineProperties(Qq.prototype,{ready:{get:fe.throwInstantiationError},readyPromise:{get:fe.throwInstantiationError},globalTransform:{get:fe.throwInstantiationError},shapeTransform:{get:fe.throwInstantiationError},shape:{get:fe.throwInstantiationError},minBounds:{get:fe.throwInstantiationError},maxBounds:{get:fe.throwInstantiationError},dimensions:{get:fe.throwInstantiationError},paddingBefore:{get:fe.throwInstantiationError},paddingAfter:{get:fe.throwInstantiationError},names:{get:fe.throwInstantiationError},types:{get:fe.throwInstantiationError},componentTypes:{get:fe.throwInstantiationError},minimumValues:{get:fe.throwInstantiationError},maximumValues:{get:fe.throwInstantiationError},maximumTileCount:{get:fe.throwInstantiationError},keyframeCount:{get:fe.throwInstantiationError},timeIntervalCollection:{get:fe.throwInstantiationError}});Qq.prototype.requestData=fe.throwInstantiationError;var $q=Qq;function PC(){fe.throwInstantiationError()}Object.defineProperties(PC.prototype,{orientedBoundingBox:{get:fe.throwInstantiationError},boundingSphere:{get:fe.throwInstantiationError},boundTransform:{get:fe.throwInstantiationError},shapeTransform:{get:fe.throwInstantiationError},shaderUniforms:{get:fe.throwInstantiationError},shaderDefines:{get:fe.throwInstantiationError},shaderMaximumIntersectionsLength:{get:fe.throwInstantiationError}});PC.prototype.update=fe.throwInstantiationError;PC.prototype.computeOrientedBoundingBoxForTile=fe.throwInstantiationError;PC.prototype.computeApproximateStepSize=fe.throwInstantiationError;PC.DefaultMinBounds=fe.throwInstantiationError;PC.DefaultMaxBounds=fe.throwInstantiationError;var eX=PC;async function tX(e,t){let n=t.terrainProvider,i=t.mapProjection,o=i.ellipsoid,r,s=t.camera.getRectangleCameraCoordinates(e);if(t.mode===ne.SCENE3D?r=o.cartesianToCartographic(s):r=i.unproject(s),!l(n))return r;await n._readyPromise;let a=n.availability;if(!l(a)||t.mode===ne.SCENE2D)return r;let c=[le.center(e),le.southeast(e),le.southwest(e),le.northeast(e),le.northwest(e)],u=await tX._sampleTerrainMostDetailed(n,c),f=!1,d=u.reduce(function(g,h){return l(h.height)?(f=!0,Math.max(h.height,g)):g},-Number.MAX_VALUE),p=r;return f&&(p.height+=d),p}tX._sampleTerrainMostDetailed=A_;var OC=tX;var A_t=new z,x_t=new z,C_t=new z,T_t=new z,cAe=new re,YF=new Uint8Array(4);function lAe(e,t,n,i){let o=t.height===n.height?0:(e-t.height)/(n.height-t.height);return z.lerp(t.color,n.color,o,i)}function Jz(e,t){return{height:e,color:z.clone(t)}}function uAe(e){return e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?t.height===i[n-1].height:!0,a=r?t.height===i[n+1].height:!0;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?z.equals(t.color,i[n-1].color):!1,a=r?z.equals(t.color,i[n+1].color):!1;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=o?z.equals(t.color,i[n-1].color):!1,s=o?t.height===i[n-1].height:!0;return!r||!s}),e}function E_t(e){let t,n,i=[],o=e.length;for(t=0;t<o;t++){let r=e[t],s=r.entries,a=s.length,c=[];for(n=0;n<a;n++){let g=s[n],h=P.clamp(g.height,Ul._minimumHeight,Ul._maximumHeight),A=z.clone(g.color,A_t);A.red*=A.alpha,A.green*=A.alpha,A.blue*=A.alpha,c.push(Jz(h,A))}let u=!0,f=!0;for(n=0;n<a-1;n++){let g=c[n+0],h=c[n+1];u=u&&g.height<=h.height,f=f&&g.height>=h.height}f?c=c.reverse():u||O_(c,function(g,h){return P.sign(g.height-h.height)});let d=y(r.extendDownwards,!1),p=y(r.extendUpwards,!1);c.length===1&&!d&&!p&&(d=!0,p=!0),d&&c.splice(0,0,Jz(Ul._minimumHeight,c[0].color)),p&&c.splice(c.length,0,Jz(Ul._maximumHeight,c[c.length-1].color)),c=uAe(c),i.push(c)}return i}function b_t(e){let t=E_t(e),n=[],i=[],o;function r(u,f){n.push(Jz(u,f))}function s(u,f,d){let p=z.multiplyByScalar(d,1-f.alpha,T_t);p=z.add(p,f,p),r(u,p)}let a=t.length;for(o=0;o<a;o++){let u=t[o],f=0,d=0;i=n,n=[];let p=u.length,g=i.length;for(;f<p||d<g;){let h=f<p?u[f]:void 0,A=f>0?u[f-1]:void 0,x=f<p-1?u[f+1]:void 0,C=d<g?i[d]:void 0,T=d>0?i[d-1]:void 0,E=d<g-1?i[d+1]:void 0;if(l(h)&&l(C)&&h.height===C.height){let S=l(E)&&C.height===E.height,v=!l(T),D=!l(E),O=l(x)&&h.height===x.height,M=!l(A),L=!l(x);S?O?(s(h.height,h.color,C.color),s(h.height,x.color,E.color)):M?(r(h.height,C.color),s(h.height,h.color,E.color)):L?(s(h.height,h.color,C.color),r(h.height,E.color)):(s(h.height,h.color,C.color),s(h.height,h.color,E.color)):v?O?(r(h.height,h.color),s(h.height,x.color,C.color)):L?(r(h.height,h.color),r(h.height,C.color)):(M||r(h.height,h.color),s(h.height,h.color,C.color)):D?O?(s(h.height,h.color,C.color),r(h.height,x.color)):M?(r(h.height,C.color),r(h.height,h.color)):L?s(h.height,h.color,C.color):(s(h.height,h.color,C.color),r(h.height,h.color)):O?(s(h.height,h.color,C.color),s(h.height,x.color,C.color)):M?(r(h.height,C.color),s(h.height,h.color,C.color)):L?(s(h.height,h.color,C.color),r(h.height,C.color)):s(h.height,h.color,C.color),f+=O?2:1,d+=S?2:1}else if(l(h)&&l(C)&&l(T)&&h.height<C.height){let S=lAe(h.height,T,C,C_t);l(A)?l(x)?s(h.height,h.color,S):(s(h.height,h.color,S),r(h.height,S)):(r(h.height,S),s(h.height,h.color,S)),f++}else if(l(C)&&l(h)&&l(A)&&C.height<h.height){let S=lAe(C.height,A,h,x_t);l(T)?l(E)?s(C.height,S,C.color):(s(C.height,S,C.color),r(C.height,S)):(r(C.height,S),s(C.height,S,C.color)),d++}else l(h)&&(!l(C)||h.height<C.height)?(l(C)&&!l(T)&&!l(x)?(r(h.height,h.color),r(h.height,Ul._emptyColor),r(C.height,Ul._emptyColor)):(!l(C)&&l(T)&&!l(A)&&(r(T.height,Ul._emptyColor),r(h.height,Ul._emptyColor)),r(h.height,h.color)),f++):l(C)&&(!l(h)||C.height<h.height)&&(r(C.height,C.color),d++)}}return uAe(n)}function Ul(e){let{scene:t,layers:n}=y(e,y.EMPTY_OBJECT),{context:i}=t,o=b_t(n),r=o.length,s,a,c;if(!Ul._useFloatTexture(i)){a=Je.UNSIGNED_BYTE,c=ct.RGBA,s=new Uint8Array(r*4);for(let g=0;g<r;g++)re.packFloat(o[g].height,cAe),re.pack(cAe,s,g*4)}else{a=Je.FLOAT,c=i.webgl2?ct.RED:ct.LUMINANCE,s=new Float32Array(r);for(let g=0;g<r;g++)s[g]=o[g].height}let f=Bt.create({context:i,pixelFormat:c,pixelDatatype:a,source:{arrayBufferView:s,width:r,height:1},sampler:new dn({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:cn.NEAREST,magnificationFilter:xi.NEAREST})}),d=new Uint8Array(r*4);for(let g=0;g<r;g++)o[g].color.toBytes(YF),d[g*4+0]=YF[0],d[g*4+1]=YF[1],d[g*4+2]=YF[2],d[g*4+3]=YF[3];let p=Bt.create({context:i,pixelFormat:ct.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:d,width:r,height:1},sampler:new dn({wrapS:vn.CLAMP_TO_EDGE,wrapT:vn.CLAMP_TO_EDGE,minificationFilter:cn.LINEAR,magnificationFilter:xi.LINEAR})});return ki.fromType("ElevationBand",{heights:f,colors:p})}Ul._useFloatTexture=function(e){return e.floatingPointTexture};Ul._maximumHeight=5906376425472;Ul._minimumHeight=-5906376425472;Ul._emptyColor=new z(0,0,0,0);var nX=Ul;function S_t(e){$("createOsmBuildings","createOsmBuildings was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use createOsmBuildingsAsync instead."),e=_t(e,{url:qs.fromAssetId(96188)});let t=new Ca(e),n=e.style;if(!l(n)){let i=y(e.defaultColor,z.WHITE).toCssColorString();n=new k_({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var iX=S_t;async function w_t(e){let t=await Ca.fromIonAssetId(96188,e);e=y(e,y.EMPTY_OBJECT);let n=e.style;if(!l(n)){let i=y(e.defaultColor,z.WHITE).toCssColorString();n=new k_({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var oX=w_t;function v_t(e){e=y(e,y.EMPTY_OBJECT);let t=[],n=e.geometry;(!l(n.attributes)||!l(n.primitiveType))&&(n=n.constructor.createGeometry(n));let i=n.attributes,o=B.clone(y(e.modelMatrix,B.IDENTITY)),r=y(e.length,1e4);if(l(i.normal)&&t.push(new Tt({geometry:Nn.createLineSegmentsForVectors(n,"normal",r),attributes:{color:new Vt(1,0,0,1)},modelMatrix:o})),l(i.tangent)&&t.push(new Tt({geometry:Nn.createLineSegmentsForVectors(n,"tangent",r),attributes:{color:new Vt(0,1,0,1)},modelMatrix:o})),l(i.bitangent)&&t.push(new Tt({geometry:Nn.createLineSegmentsForVectors(n,"bitangent",r),attributes:{color:new Vt(0,0,1,1)},modelMatrix:o})),t.length>0)return new wn({asynchronous:!1,geometryInstances:t,appearance:new rn({flat:!0,translucent:!1})})}var rX=v_t;function D_t(e){$("createWorldImagery","createWorldImagery was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use createWorldImageryAsync instead."),e=y(e,y.EMPTY_OBJECT);let t=y(e.style,am.AERIAL),n=new Bf;return Bf._initialize(n,t,e),n}var sX=D_t;var I_t=15;function aX(e){this.ellipsoid=y(e.ellipsoid,oe.WGS84),this.credit=void 0,this.tilingScheme=void 0,this.height=void 0,this.width=void 0,this.encoding=void 0,this.lodCount=void 0,this.hasAvailability=!1,this.tilesAvailable=void 0,this.tilesAvailabilityLoaded=void 0,this.levelZeroMaximumGeometricError=void 0,this.terrainDataStructure=void 0}aX.prototype.build=function(e){e._credit=this.credit,e._tilingScheme=this.tilingScheme,e._height=this.height,e._width=this.width,e._encoding=this.encoding,e._lodCount=this.lodCount,e._hasAvailability=this.hasAvailability,e._tilesAvailable=this.tilesAvailable,e._tilesAvailabilityLoaded=this.tilesAvailabilityLoaded,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._terrainDataStructure=this.terrainDataStructure,e._ready=!0};function P_t(e,t){let n=t.copyrightText;l(n)&&(e.credit=new It(n));let i=t.spatialReference,o=y(i.latestWkid,i.wkid),r=t.extent,s={ellipsoid:e.ellipsoid};if(o===4326)s.rectangle=le.fromDegrees(r.xmin,r.ymin,r.xmax,r.ymax),e.tilingScheme=new zi(s);else if(o===3857){let u=Math.PI*e.ellipsoid.maximumRadius;t.extent.xmax>u&&(t.extent.xmax=u),t.extent.ymax>u&&(t.extent.ymax=u),t.extent.xmin<-u&&(t.extent.xmin=-u),t.extent.ymin<-u&&(t.extent.ymin=-u),s.rectangleSouthwestInMeters=new H(r.xmin,r.ymin),s.rectangleNortheastInMeters=new H(r.xmax,r.ymax),e.tilingScheme=new Mr(s)}else throw new de("Invalid spatial reference");let a=t.tileInfo;if(!l(a))throw new de("tileInfo is required");e.width=a.rows+1,e.height=a.cols+1,e.encoding=a.format==="LERC"?Pf.LERC:Pf.NONE,e.lodCount=a.lods.length-1,(e.hasAvailability=t.capabilities.indexOf("Tilemap")!==-1)&&(e.tilesAvailable=new gm(e.tilingScheme,e.lodCount),e.tilesAvailable.addAvailableTileRange(0,0,0,e.tilingScheme.getNumberOfXTilesAtLevel(0),e.tilingScheme.getNumberOfYTilesAtLevel(0)),e.tilesAvailabilityLoaded=new gm(e.tilingScheme,e.lodCount)),e.levelZeroMaximumGeometricError=zr.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.width,e.tilingScheme.getNumberOfXTilesAtLevel(0)),t.bandCount>1&&console.log("ArcGISTiledElevationTerrainProvider: Terrain data has more than 1 band. Using the first one."),l(t.minValues)&&l(t.maxValues)?e.terrainDataStructure={elementMultiplier:1,lowestEncodedHeight:t.minValues[0],highestEncodedHeight:t.maxValues[0]}:e.terrainDataStructure={elementMultiplier:1}}async function fAe(e,t,n){try{let i=await t.fetchJson();P_t(e,i)}catch(i){let o=`An error occurred while accessing ${t}.`;throw yi.reportError(void 0,n,l(n)?n._errorEvent:void 0,o),i}}function n0(e){e=y(e,y.EMPTY_OBJECT),this._resource=void 0,this._credit=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._maxLevel=void 0,this._terrainDataStructure=void 0,this._width=void 0,this._height=void 0,this._encoding=void 0,this._lodCount=void 0;let t=e.token;if(this._hasAvailability=!1,this._tilesAvailable=void 0,this._tilesAvailabilityLoaded=void 0,this._availableCache={},this._ready=!1,this._errorEvent=new ge,l(e.url)){$("ArcGISTiledElevationTerrainProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead.");let n=this,i=new aX(e);this._readyPromise=Promise.resolve(e.url).then(async function(o){let r=we.createIfNeeded(o);r.appendForwardSlash(),l(t)&&(r=r.getDerivedResource({queryParameters:{token:t}})),n._resource=r;let s=r.getDerivedResource({queryParameters:{f:"pjson"}});return await fAe(i,s,n),i.build(n),!0})}}Object.defineProperties(n0.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("ArcGISTiledElevationTerrainProvider.ready","ArcGISTiledElevationTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("ArcGISTiledElevationTerrainProvider.readyPromise","ArcGISTiledElevationTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead."),this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){return this._tilesAvailable}}});n0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=we.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&(n=n.getDerivedResource({queryParameters:{token:t.token}}));let i=n.getDerivedResource({queryParameters:{f:"pjson"}}),o=new aX(t);await fAe(o,i);let r=new n0(t);return o.build(r),r._resource=n,r};n0.prototype.requestTileGeometry=function(e,t,n,i){let o=this._resource.getDerivedResource({url:`tile/${n}/${t}/${e}`,request:i}),r=this._hasAvailability,s=Promise.resolve(!0),a;if(r&&!l(cX(this,n+1,e*2,t*2))){let d=dAe(this,n+1,e*2,t*2);s=d.promise,a=d.request}let c=o.fetchArrayBuffer();if(!l(c)||!l(s))return;let u=this,f=this._tilesAvailable;return Promise.all([c,s]).then(function(d){return new ba({buffer:d[0],width:u._width,height:u._height,childTileMask:r?f.computeChildMaskForTile(n,e,t):I_t,structure:u._terrainDataStructure,encoding:u._encoding})}).catch(function(d){return l(a)&&a.state===ei.CANCELLED?(i.cancel(),i.deferred.promise.finally(function(){return i.state=ei.CANCELLED,Promise.reject(d)})):Promise.reject(d)})};function cX(e,t,n,i){if(!e._hasAvailability)return;let o=e._tilesAvailabilityLoaded,r=e._tilesAvailable;if(t>e._lodCount)return!1;if(r.isTileAvailable(t,n,i))return!0;if(o.isTileAvailable(t,n,i))return!1}n0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};n0.prototype.getTileDataAvailable=function(e,t,n){if(!this._hasAvailability)return;let i=cX(this,n,e,t);if(l(i))return i;dAe(this,n,e,t)};n0.prototype.loadTileDataAvailability=function(e,t,n){};function O_t(e,t,n,i){let o=t-1,r=n-1,s=i[e.y*t+e.x],a=[],c={startX:e.x,startY:e.y,endX:0,endY:0},u=new H(e.x+1,e.y+1),f=!1,d=!1;for(;!(f&&d);){let p=u.x,g=d?u.y+1:u.y;if(!f){for(let h=e.y;h<g;++h)if(i[h*t+u.x]!==s){f=!0;break}f?(a.push(new H(u.x,e.y)),--u.x,--p,c.endX=u.x):u.x===o?(c.endX=u.x,f=!0):++u.x}if(!d){let h=u.y*t;for(let A=e.x;A<=p;++A)if(i[h+A]!==s){d=!0;break}d?(a.push(new H(e.x,u.y)),--u.y,c.endY=u.y):u.y===r?(c.endY=u.y,d=!0):++u.y}}return{endingIndices:a,range:c,value:s}}function M_t(e,t,n,i,o){let r=[];if(o.every(function(c){return c===o[0]}))return o[0]===1&&r.push({startX:e,startY:t,endX:e+n-1,endY:t+i-1}),r;let a=[new H(0,0)];for(;a.length>0;){let c=a.pop(),u=O_t(c,n,i,o);if(u.value===1){let d=u.range;d.startX+=e,d.endX+=e,d.startY+=t,d.endY+=t,r.push(d)}let f=u.endingIndices;f.length>0&&(a=a.concat(f))}return r}function dAe(e,t,n,i){if(!e._hasAvailability)return{};let o=Math.floor(n/128)*128,r=Math.floor(i/128)*128,s=Math.min(1<<t,128),a=`tilemap/${t}/${r}/${o}/${s}/${s}`,c=e._availableCache;if(l(c[a]))return c[a];let u=new Ho({throttle:!1,throttleByServer:!0,type:Xr.TERRAIN}),d=e._resource.getDerivedResource({url:a,request:u}).fetchJson();return l(d)?(d=d.then(function(p){let g=M_t(o,r,s,s,p.data);e._tilesAvailabilityLoaded.addAvailableTileRange(t,o,r,o+s,r+s);let h=e._tilesAvailable;for(let A=0;A<g.length;++A){let x=g[A];h.addAvailableTileRange(t,x.startX,x.startY,x.endX,x.endY)}return cX(e,t,n,i)}),c[a]={promise:d,request:u},d=d.finally(function(p){return delete c[a],p}),{promise:d,request:u}):{}}var lX=n0;var mAe="https://dev.virtualearth.net/REST/v1/Locations";function uX(e){e=y(e,y.EMPTY_OBJECT);let t=e.key;this._key=t;let n={key:t};l(e.culture)&&(n.culture=e.culture),this._resource=new we({url:mAe,queryParameters:n}),this._credit=new It('<img src="http://dev.virtualearth.net/Branding/logo_powered_by.png"/>',!1)}Object.defineProperties(uX.prototype,{url:{get:function(){return mAe}},key:{get:function(){return this._key}},credit:{get:function(){return this._credit}}});uX.prototype.geocode=async function(e){return this._resource.getDerivedResource({queryParameters:{query:e}}).fetchJsonp("jsonp").then(function(n){return n.resourceSets.length===0?[]:n.resourceSets[0].resources.map(function(o){let r=o.bbox,s=r[0],a=r[1],c=r[2],u=r[3];return{displayName:o.name,destination:le.fromDegrees(a,s,u,c)}})})};var fX=uX;function dX(){}Object.defineProperties(dX.prototype,{credit:{get:function(){}}});dX.prototype.geocode=function(e){let t=e.match(/[^\s,\n]+/g);if(t.length===2||t.length===3){let n=+t[0],i=+t[1],o=t.length===3?+t[2]:300;if(isNaN(n)&&isNaN(i)){let r=/^(\d+.?\d*)([nsew])/i;for(let s=0;s<t.length;++s){let a=t[s].match(r);r.test(t[s])&&a.length===3&&(/^[ns]/i.test(a[2])?i=/^[n]/i.test(a[2])?+a[1]:-a[1]:/^[ew]/i.test(a[2])&&(n=/^[e]/i.test(a[2])?+a[1]:-a[1]))}}if(!isNaN(n)&&!isNaN(i)&&!isNaN(o)){let r={displayName:e,destination:m.fromDegrees(n,i,o)};return Promise.resolve([r])}}return Promise.resolve([])};var qF=dX;var R_t=new re,hAe=new m,US=new m;function B_t(e){let t=e.points,n=e.times;if(t.length<3){let i=n[0],o=1/(n[1]-i),r=t[0],s=t[1];return function(a,c){l(c)||(c=new m);let u=(a-i)*o;return m.lerp(r,s,u,c)}}return function(i,o){l(o)||(o=new m);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=R_t;a.z=s,a.y=s*s,a.x=a.y*s,a.w=1;let c,u,f,d,p;return r===0?(c=t[0],u=t[1],f=e.firstTangent,d=m.subtract(t[2],c,hAe),m.multiplyByScalar(d,.5,d),p=B.multiplyByVector(Lg.hermiteCoefficientMatrix,a,a)):r===t.length-2?(c=t[r],u=t[r+1],d=e.lastTangent,f=m.subtract(u,t[r-1],hAe),m.multiplyByScalar(f,.5,f),p=B.multiplyByVector(Lg.hermiteCoefficientMatrix,a,a)):(c=t[r-1],u=t[r],f=t[r+1],d=t[r+2],p=B.multiplyByVector(i0.catmullRomCoefficientMatrix,a,a)),o=m.multiplyByScalar(c,p.x,o),m.multiplyByScalar(u,p.y,US),m.add(o,US,o),m.multiplyByScalar(f,p.z,US),m.add(o,US,o),m.multiplyByScalar(d,p.w,US),m.add(o,US,o)}}var L_t=new m,N_t=new m;function i0(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.firstTangent,o=e.lastTangent;if(t.length>2&&(l(i)||(i=L_t,m.multiplyByScalar(t[1],2,i),m.subtract(i,t[2],i),m.subtract(i,t[0],i),m.multiplyByScalar(i,.5,i)),!l(o))){let r=t.length-1;o=N_t,m.multiplyByScalar(t[r-1],2,o),m.subtract(t[r],o,o),m.add(o,t[r-2],o),m.multiplyByScalar(o,.5,o)}this._times=n,this._points=t,this._firstTangent=m.clone(i),this._lastTangent=m.clone(o),this._evaluateFunction=B_t(this),this._lastTimeIndex=0}Object.defineProperties(i0.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},firstTangent:{get:function(){return this._firstTangent}},lastTangent:{get:function(){return this._lastTangent}}});i0.catmullRomCoefficientMatrix=new B(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0);i0.prototype.findTimeInterval=oo.prototype.findTimeInterval;i0.prototype.wrapTime=oo.prototype.wrapTime;i0.prototype.clampTime=oo.prototype.clampTime;i0.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var mX=i0;function H_(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new Vc(n),this._workerName="createCircleGeometry"}H_.packedLength=Vc.packedLength;H_.pack=function(e,t,n){return Vc.pack(e._ellipseGeometry,t,n)};var F_t=new Vc({center:new m,semiMajorAxis:1,semiMinorAxis:1}),hc={center:new m,radius:void 0,ellipsoid:oe.clone(oe.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new Pe,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};H_.unpack=function(e,t,n){let i=Vc.unpack(e,t,F_t);return hc.center=m.clone(i._center,hc.center),hc.ellipsoid=oe.clone(i._ellipsoid,hc.ellipsoid),hc.height=i._height,hc.extrudedHeight=i._extrudedHeight,hc.granularity=i._granularity,hc.vertexFormat=Pe.clone(i._vertexFormat,hc.vertexFormat),hc.stRotation=i._stRotation,hc.shadowVolume=i._shadowVolume,l(n)?(hc.semiMajorAxis=i._semiMajorAxis,hc.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new Vc(hc),n):(hc.radius=i._semiMajorAxis,new H_(hc))};H_.createGeometry=function(e){return Vc.createGeometry(e._ellipseGeometry)};H_.createShadowVolume=function(e,t,n){let i=e._ellipseGeometry._granularity,o=e._ellipseGeometry._ellipsoid,r=t(i,o),s=n(i,o);return new H_({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:o,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(H_.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var hX=H_;function VS(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new lu(n),this._workerName="createCircleOutlineGeometry"}VS.packedLength=lu.packedLength;VS.pack=function(e,t,n){return lu.pack(e._ellipseGeometry,t,n)};var U_t=new lu({center:new m,semiMajorAxis:1,semiMinorAxis:1}),Fu={center:new m,radius:void 0,ellipsoid:oe.clone(oe.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};VS.unpack=function(e,t,n){let i=lu.unpack(e,t,U_t);return Fu.center=m.clone(i._center,Fu.center),Fu.ellipsoid=oe.clone(i._ellipsoid,Fu.ellipsoid),Fu.height=i._height,Fu.extrudedHeight=i._extrudedHeight,Fu.granularity=i._granularity,Fu.numberOfVerticalLines=i._numberOfVerticalLines,l(n)?(Fu.semiMajorAxis=i._semiMajorAxis,Fu.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new lu(Fu),n):(Fu.radius=i._semiMajorAxis,new VS(Fu))};VS.createGeometry=function(e){return lu.createGeometry(e._ellipseGeometry)};var pX=VS;function kS(e){e=y(e,y.EMPTY_OBJECT),this._callback=e.callback,this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new zi({ellipsoid:y(e.ellipsoid,oe.WGS84)})),this._width=e.width,this._height=e.height;let t=Math.max(this._width,this._height);this._levelZeroMaximumGeometricError=zr.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,t,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new ge;let n=e.credit;typeof n=="string"&&(n=new It(n)),this._credit=n,this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(kS.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("CustomHeightmapTerrainProvider.ready","CustomHeightmapTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("CustomHeightmapTerrainProvider.readyPromise","CustomHeightmapTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});kS.prototype.requestTileGeometry=function(e,t,n,i){let o=this._callback(e,t,n);if(!l(o))return;let r=this._width,s=this._height;return Promise.resolve(o).then(function(a){let c=a;return Array.isArray(c)&&(c=new Float64Array(c)),new ba({buffer:c,width:r,height:s})})};kS.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};kS.prototype.getTileDataAvailable=function(e,t,n){};kS.prototype.loadTileDataAvailability=function(e,t,n){};var _X=kS;function pAe(e){this.proxy=e}pAe.prototype.getURL=function(e){let t=this.proxy.indexOf("?")===-1?"?":"";return this.proxy+t+encodeURIComponent(e)};var gX=pAe;var V_t={SEARCH:0,AUTOCOMPLETE:1},o0=Object.freeze(V_t);function Zz(){fe.throwInstantiationError()}Object.defineProperties(Zz.prototype,{credit:{get:fe.throwInstantiationError}});Zz.getCreditsFromResult=function(e){if(l(e.attributions))return e.attributions.map(It.getIonCredit)};Zz.prototype.geocode=fe.throwInstantiationError;var zS=Zz;function _Ae(){fe.throwInstantiationError()}_Ae.createGeometry=function(e){fe.throwInstantiationError()};var yX=_Ae;function MC(e){e=y(e,y.EMPTY_OBJECT),this._buffer=e.buffer,this._credits=e.credits,this._negativeAltitudeExponentBias=e.negativeAltitudeExponentBias,this._negativeElevationThreshold=e.negativeElevationThreshold;let t=y(e.childTileMask,15),n=t&3;n|=t&4?8:0,n|=t&8?4:0,this._childTileMask=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._skirtHeight=void 0,this._bufferType=this._buffer.constructor,this._mesh=void 0,this._minimumHeight=void 0,this._maximumHeight=void 0}Object.defineProperties(MC.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var AAe="createVerticesFromGoogleEarthEnterpriseBuffer",k_t=new hi(AAe),z_t=new hi(AAe,im.maximumAsynchronousTasks),gAe=new le,AX=new le;MC.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid;t.tileXYToNativeRectangle(n,i,o,gAe),t.tileXYToRectangle(n,i,o,AX);let u=c.cartographicToCartesian(le.center(AX)),d=40075.16/(1<<o);this._skirtHeight=Math.min(d*8,1e3);let g=(a?z_t:k_t).scheduleTask({buffer:this._buffer,nativeRectangle:gAe,rectangle:AX,relativeToCenter:u,ellipsoid:c,skirtHeight:this._skirtHeight,exaggeration:r,exaggerationRelativeHeight:s,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!l(g))return;let h=this;return g.then(function(A){return h._mesh=new Mf(u,new Float32Array(A.vertices),new Uint16Array(A.indices),A.indexCountWithoutSkirts,A.vertexCountWithoutSkirts,A.minimumHeight,A.maximumHeight,ae.clone(A.boundingSphere3D),m.clone(A.occludeePointInScaledSpace),A.numberOfAttributes,Mn.clone(A.orientedBoundingBox),sc.clone(A.encoding),A.westIndicesSouthToNorth,A.southIndicesEastToWest,A.eastIndicesNorthToSouth,A.northIndicesWestToEast),h._minimumHeight=A.minimumHeight,h._maximumHeight=A.maximumHeight,h._buffer=void 0,h._mesh})};MC.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1),o=P.clamp((n-e.south)/e.height,0,1);return l(this._mesh)?Y_t(this,i,o):K_t(this,i,o,e)};var H_t=new hi("upsampleQuantizedTerrainMesh",im.maximumAsynchronousTasks);MC.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,u=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=H_t.scheduleTask({vertices:a.vertices,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:u,childRectangle:d,ellipsoid:f});if(!l(p))return;let g=this;return p.then(function(h){let A=new Uint16Array(h.vertices),x=Ue.createTypedArray(A.length/3,h.indices),C=g._skirtHeight;return new TC({quantizedVertices:A,indices:x,minimumHeight:h.minimumHeight,maximumHeight:h.maximumHeight,boundingSphere:ae.clone(h.boundingSphere),orientedBoundingBox:Mn.clone(h.orientedBoundingBox),horizonOcclusionPoint:m.clone(h.horizonOcclusionPoint),westIndices:h.westIndices,southIndices:h.southIndices,eastIndices:h.eastIndices,northIndices:h.northIndices,westSkirtHeight:C,southSkirtHeight:C,eastSkirtHeight:C,northSkirtHeight:C,childTileMask:0,createdByUpsampling:!0,credits:g._credits})})};MC.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};MC.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var G_t=new H,W_t=new H,j_t=new H,xAe=new m;function Y_t(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,u,G_t),g=r.decodeTextureCoordinates(o,f,W_t),h=r.decodeTextureCoordinates(o,d,j_t),A=z_.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,h.x,h.y,xAe);if(A.x>=-1e-15&&A.y>=-1e-15&&A.z>=-1e-15){let x=r.decodeHeight(o,u),C=r.decodeHeight(o,f),T=r.decodeHeight(o,d);return A.x*x+A.y*C+A.z*T}}}var q_t=Uint16Array.BYTES_PER_ELEMENT,yAe=Uint32Array.BYTES_PER_ELEMENT,xX=Int32Array.BYTES_PER_ELEMENT,X_t=Float32Array.BYTES_PER_ELEMENT,CX=Float64Array.BYTES_PER_ELEMENT;function K_t(e,t,n,i){let o=e._buffer,r=0,s=0,a=0;n>.5?(t>.5?(r=2,s=.5):r=3,a=.5):t>.5&&(r=1,s=.5);let c=new DataView(o),u=0;for(let v=0;v<r;++v)u+=c.getUint32(u,!0),u+=yAe;u+=yAe,u+=2*CX;let f=P.toRadians(c.getFloat64(u,!0)*180);u+=CX;let d=P.toRadians(c.getFloat64(u,!0)*180);u+=CX;let p=i.width/f/2,g=i.height/d/2,h=c.getInt32(u,!0);u+=xX;let A=c.getInt32(u,!0)*3;u+=xX,u+=xX;let x=new Array(h),C=new Array(h),T=new Array(h),E;for(E=0;E<h;++E)x[E]=s+c.getUint8(u++)*p,C[E]=a+c.getUint8(u++)*g,T[E]=c.getFloat32(u,!0)*6371010,u+=X_t;let S=new Array(A);for(E=0;E<A;++E)S[E]=c.getUint16(u,!0),u+=q_t;for(E=0;E<A;E+=3){let v=S[E],D=S[E+1],O=S[E+2],M=x[v],L=x[D],N=x[O],_=C[v],b=C[D],w=C[O],I=z_.computeBarycentricCoordinates(t,n,M,_,L,b,N,w,xAe);if(I.x>=-1e-15&&I.y>=-1e-15&&I.z>=-1e-15)return I.x*T[v]+I.y*T[D]+I.z*T[O]}}var HS=MC;var Gf={UNKNOWN:0,NONE:1,SELF:2,PARENT:3},Qz=new ee;function $z(){this._terrainCache={},this._lastTidy=ee.now()}$z.prototype.add=function(e,t){this._terrainCache[e]={buffer:t,timestamp:ee.now()}};$z.prototype.get=function(e){let n=this._terrainCache[e];if(l(n))return delete this._terrainCache[e],n.buffer};$z.prototype.tidy=function(){if(ee.now(Qz),ee.secondsDifference(Qz,this._lastTidy)>10){let e=this._terrainCache,t=Object.keys(e),n=t.length;for(let i=0;i<n;++i){let o=t[i],r=e[o];ee.secondsDifference(Qz,r.timestamp)>10&&delete e[o]}ee.clone(Qz,this._lastTidy)}};function r0(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=new zi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new le(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;if(typeof t=="string"&&(t=new It(t)),this._credit=t,this._levelZeroMaximumGeometricError=40075.16,this._terrainCache=new $z,this._terrainPromises={},this._terrainRequests={},this._errorEvent=new ge,this._ready=!1,l(e.url)){$("GoogleEarthEnterpriseTerrainProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseTerrainProvider.fromMetadata instead.");let n=we.createIfNeeded(e.url),i=this,o;this._readyPromise=_m.fromUrl(n).then(r=>{if(!r.terrainPresent){let s=new de(`The server ${r.url} doesn't have terrain`);return Promise.reject(s)}return yi.reportSuccess(o),i._metadata=r,i._ready=!0,!0}).catch(r=>{throw o=yi.reportError(o,i,i._errorEvent,r.message,void 0,void 0,void 0,r),r})}else if(l(e.metadata)){$("GoogleEarthEnterpriseTerrainProvider options.metadata","options.metadata was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseTerrainProvider.fromMetadata instead.");let n=e.metadata;this._metadata=n;let i=this;this._readyPromise=Promise.resolve(this._metadata._readyPromise).then(()=>{if(!n.terrainPresent)throw new de(`The server ${n.url} doesn't have terrain`);i._ready=!0})}}Object.defineProperties(r0.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tilingScheme:{get:function(){return this._tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("GoogleEarthEnterpriseTerrainProvider.ready","GoogleEarthEnterpriseTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._ready}},readyPromise:{get:function(){return $("GoogleEarthEnterpriseTerrainProvider.readyPromise","GoogleEarthEnterpriseTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){return this._credit}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});r0.fromMetadata=function(e,t){if(!e.terrainPresent)throw new de(`The server ${e.url} doesn't have terrain`);let n=new r0(t);return n._metadata=e,n._readyPromise=Promise.resolve(!0),n._ready=!0,n};var J_t=new hi("decodeGoogleEarthEnterprisePacket");function CAe(e,t,n){let i=t.getChildBitmask();if(t.terrainState===Gf.PARENT){i=0;for(let o=0;o<4;++o){let r=n.getTileInformationFromQuadKey(e+o.toString());l(r)&&r.hasTerrain()&&(i|=1<<o)}}return i}r0.prototype.requestTileGeometry=function(e,t,n,i){let o=_m.tileXYToQuadKey(e,t,n),r=this._terrainCache,s=this._metadata,a=s.getTileInformationFromQuadKey(o);if(!l(a))return Promise.reject(new de("Terrain tile doesn't exist"));let c=a.terrainState;l(c)||(c=a.terrainState=Gf.UNKNOWN);let u=r.get(o);if(l(u)){let C=s.providers[a.terrainProvider];return Promise.resolve(new HS({buffer:u,childTileMask:CAe(o,a,s),credits:l(C)?[C]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold}))}if(r.tidy(),a.ancestorHasTerrain){if(c===Gf.NONE)return Promise.reject(new de("Terrain tile doesn't exist"))}else return Promise.resolve(new ba({buffer:new Uint8Array(16*16),width:16,height:16}));let f,d=o,p=-1;switch(c){case Gf.SELF:p=a.terrainVersion;break;case Gf.PARENT:d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),p=f.terrainVersion;break;case Gf.UNKNOWN:a.hasTerrain()?p=a.terrainVersion:(d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),l(f)&&f.hasTerrain()&&(p=f.terrainVersion));break}if(p<0)return Promise.reject(new de("Terrain tile doesn't exist"));let g=this._terrainPromises,h=this._terrainRequests,A,x;if(l(g[d]))A=g[d],x=h[d];else{x=i;let C=Z_t(this,d,p,x).fetchArrayBuffer();if(!l(C))return;A=C.then(function(T){return l(T)?J_t.scheduleTask({buffer:T,type:"Terrain",key:s.key},[T]).then(function(E){let S=s.getTileInformationFromQuadKey(d);S.terrainState=Gf.SELF,r.add(d,E[0]);let v=S.terrainProvider,D=E.length-1;for(let O=0;O<D;++O){let M=d+O.toString(),L=s.getTileInformationFromQuadKey(M);l(L)&&(r.add(M,E[O+1]),L.terrainState=Gf.PARENT,L.terrainProvider===0&&(L.terrainProvider=v))}}):Promise.reject(new de("Failed to load terrain."))}),g[d]=A,h[d]=x,A=A.finally(function(){delete g[d],delete h[d]})}return A.then(function(){let C=r.get(o);if(l(C)){let T=s.providers[a.terrainProvider];return new HS({buffer:C,childTileMask:CAe(o,a,s),credits:l(T)?[T]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold})}return Promise.reject(new de("Failed to load terrain."))}).catch(function(C){return x.state===ei.CANCELLED?(i.state=x.state,Promise.reject(C)):(a.terrainState=Gf.NONE,Promise.reject(C))})};r0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};r0.prototype.getTileDataAvailable=function(e,t,n){let i=this._metadata,o=_m.tileXYToQuadKey(e,t,n),r=i.getTileInformation(e,t,n);if(r===null)return!1;if(l(r)){if(!r.ancestorHasTerrain)return!0;let s=r.terrainState;if(s===Gf.NONE)return!1;if((!l(s)||s===Gf.UNKNOWN)&&(r.terrainState=Gf.UNKNOWN,!r.hasTerrain())){o=o.substring(0,o.length-1);let a=i.getTileInformationFromQuadKey(o);if(!l(a)||!a.hasTerrain())return!1}return!0}if(i.isValid(o)){let s=new Ho({throttle:!1,throttleByServer:!0,type:Xr.TERRAIN});i.populateSubtree(e,t,n,s)}return!1};r0.prototype.loadTileDataAvailability=function(e,t,n){};function Z_t(e,t,n,i){return n=l(n)&&n>0?n:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1c-0${t}-t.${n.toString()}`,request:i})}var TX=r0;var XF={};XF.type=void 0;XF.getRequiredDataPoints=fe.throwInstantiationError;XF.interpolateOrderZero=fe.throwInstantiationError;XF.interpolate=fe.throwInstantiationError;var EX=XF;function bX(e){this._url=we.createIfNeeded(e),this._url.appendForwardSlash()}Object.defineProperties(bX.prototype,{url:{get:function(){return this._url}},credit:{get:function(){}}});bX.prototype.geocode=async function(e,t){return this._url.getDerivedResource({url:t===o0.AUTOCOMPLETE?"autocomplete":"search",queryParameters:{text:e}}).fetchJson().then(function(i){return i.features.map(function(o){let r,s=o.bbox;if(l(s))r=le.fromDegrees(s[0],s[1],s[2],s[3]);else{let a=o.geometry.coordinates[0],c=o.geometry.coordinates[1];r=m.fromDegrees(a,c)}return{displayName:o.properties.label,destination:r,attributions:i.attributions}})})};var KF=bX;function SX(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.accessToken,md.defaultAccessToken),n=we.createIfNeeded(y(e.server,md.defaultServer));n.appendForwardSlash();let i=md.getDefaultTokenCredit(t);l(i)&&e.scene.frameState.creditDisplay.addStaticCredit(It.clone(i));let o=n.getDerivedResource({url:"v1/geocode"});l(t)&&o.appendQueryParameters({access_token:t}),this._accessToken=t,this._server=n,this._pelias=new KF(o)}Object.defineProperties(SX.prototype,{credit:{get:function(){}}});SX.prototype.geocode=async function(e,t){return this._pelias.geocode(e,t)};var JF=SX;function eH(){fe.throwInstantiationError()}Object.defineProperties(eH.prototype,{ellipsoid:{get:fe.throwInstantiationError}});eH.prototype.project=fe.throwInstantiationError;eH.prototype.unproject=fe.throwInstantiationError;var wX=eH;function GS(e){e=y(e,y.EMPTY_OBJECT);let t=e.weights,n=e.times;this._times=n,this._weights=t,this._count=t.length/n.length,this._lastTimeIndex=0}Object.defineProperties(GS.prototype,{times:{get:function(){return this._times}},weights:{get:function(){return this._weights}}});GS.prototype.findTimeInterval=oo.prototype.findTimeInterval;GS.prototype.wrapTime=oo.prototype.wrapTime;GS.prototype.clampTime=oo.prototype.clampTime;GS.prototype.evaluate=function(e,t){let n=this.weights,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);l(t)||(t=new Array(this._count));for(let s=0;s<this._count;s++){let a=o*this._count+s;t[s]=n[a]*(1-r)+n[a+this._count]*r}return t};var vX=GS;function DX(e,t,n){e=we.createIfNeeded(e),e.appendForwardSlash(),e.setQueryParameters({key:t}),this._url=e,this._params=y(n,{}),this._credit=new It('Geodata copyright <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',!1)}Object.defineProperties(DX.prototype,{url:{get:function(){return this._url}},params:{get:function(){return this._params}},credit:{get:function(){return this._credit}}});DX.prototype.geocode=async function(e){return this._url.getDerivedResource({url:"json",queryParameters:_t(this._params,{q:e})}).fetchJson().then(function(n){return n.results.map(function(i){let o,r=i.bounds;if(l(r))o=le.fromDegrees(r.southwest.lng,r.southwest.lat,r.northeast.lng,r.northeast.lat);else{let s=i.geometry.lat,a=i.geometry.lng;o=m.fromDegrees(s,a)}return{displayName:i.formatted,destination:o}})})};var IX=DX;var Q_t={packedLength:void 0,pack:fe.throwInstantiationError,unpack:fe.throwInstantiationError},PX=Q_t;var $_t={packedInterpolationLength:void 0,convertPackedArrayForInterpolation:fe.throwInstantiationError,unpackInterpolationResult:fe.throwInstantiationError},OX=$_t;function TAe(){fe.throwInstantiationError()}TAe.prototype.getURL=fe.throwInstantiationError;var MX=TAe;function egt(e,t,n,i,o,r,s){let a=Di.numberOfPoints(e,t,o),c,u=n.red,f=n.green,d=n.blue,p=n.alpha,g=i.red,h=i.green,A=i.blue,x=i.alpha;if(z.equals(n,i)){for(c=0;c<a;c++)r[s++]=z.floatToByte(u),r[s++]=z.floatToByte(f),r[s++]=z.floatToByte(d),r[s++]=z.floatToByte(p);return s}let C=(g-u)/a,T=(h-f)/a,E=(A-d)/a,S=(x-p)/a,v=s;for(c=0;c<a;c++)r[v++]=z.floatToByte(u+c*C),r[v++]=z.floatToByte(f+c*T),r[v++]=z.floatToByte(d+c*E),r[v++]=z.floatToByte(p+c*S);return v}function ZF(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._colorsPerVertex=i,this._arcType=y(e.arcType,Jt.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=y(e.ellipsoid,oe.WGS84),this._workerName="createSimplePolylineGeometry";let o=1+t.length*m.packedLength;o+=l(n)?1+n.length*z.packedLength:1,this.packedLength=o+oe.packedLength+3}ZF.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=m.packedLength)m.pack(o[i],t,n);let s=e._colors;for(r=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=z.packedLength)z.pack(s[i],t,n);return oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};ZF.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=m.packedLength)r[i]=m.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=z.packedLength)s[i]=z.unpack(e,t);let a=oe.unpack(e,t);t+=oe.packedLength;let c=e[t++]===1,u=e[t++],f=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=a,n._colorsPerVertex=c,n._arcType=u,n._granularity=f,n):new ZF({positions:r,colors:s,ellipsoid:a,colorsPerVertex:c,arcType:u,granularity:f})};var tH=new Array(2),nH=new Array(2),tgt={positions:tH,height:nH,ellipsoid:void 0,minDistance:void 0,granularity:void 0};ZF.createGeometry=function(e){let t=e._positions,n=e._colors,i=e._colorsPerVertex,o=e._arcType,r=e._granularity,s=e._ellipsoid,a=P.chordLength(r,s.maximumRadius),c=l(n)&&!i,u,f=t.length,d,p,g,h,A=0;if(o===Jt.GEODESIC||o===Jt.RHUMB){let S,v,D;o===Jt.GEODESIC?(S=P.chordLength(r,s.maximumRadius),v=Di.numberOfPoints,D=Di.generateArc):(S=r,v=Di.numberOfPointsRhumbLine,D=Di.generateRhumbArc);let O=Di.extractHeights(t,s),M=tgt;if(o===Jt.GEODESIC?M.minDistance=a:M.granularity=r,M.ellipsoid=s,c){let L=0;for(u=0;u<f-1;u++)L+=v(t[u],t[u+1],S)+1;d=new Float64Array(L*3),g=new Uint8Array(L*4),M.positions=tH,M.height=nH;let N=0;for(u=0;u<f-1;++u){tH[0]=t[u],tH[1]=t[u+1],nH[0]=O[u],nH[1]=O[u+1];let _=D(M);if(l(n)){let b=_.length/3;h=n[u];for(let w=0;w<b;++w)g[N++]=z.floatToByte(h.red),g[N++]=z.floatToByte(h.green),g[N++]=z.floatToByte(h.blue),g[N++]=z.floatToByte(h.alpha)}d.set(_,A),A+=_.length}}else if(M.positions=t,M.height=O,d=new Float64Array(D(M)),l(n)){for(g=new Uint8Array(d.length/3*4),u=0;u<f-1;++u){let N=t[u],_=t[u+1],b=n[u],w=n[u+1];A=egt(N,_,b,w,a,g,A)}let L=n[f-1];g[A++]=z.floatToByte(L.red),g[A++]=z.floatToByte(L.green),g[A++]=z.floatToByte(L.blue),g[A++]=z.floatToByte(L.alpha)}}else{p=c?f*2-2:f,d=new Float64Array(p*3),g=l(n)?new Uint8Array(p*4):void 0;let S=0,v=0;for(u=0;u<f;++u){let D=t[u];if(c&&u>0&&(m.pack(D,d,S),S+=3,h=n[u-1],g[v++]=z.floatToByte(h.red),g[v++]=z.floatToByte(h.green),g[v++]=z.floatToByte(h.blue),g[v++]=z.floatToByte(h.alpha)),c&&u===f-1)break;m.pack(D,d,S),S+=3,l(n)&&(h=n[u],g[v++]=z.floatToByte(h.red),g[v++]=z.floatToByte(h.green),g[v++]=z.floatToByte(h.blue),g[v++]=z.floatToByte(h.alpha))}}let x=new hn;x.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),l(n)&&(x.color=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:g,normalize:!0})),p=d.length/3;let C=(p-1)*2,T=Ue.createTypedArray(p,C),E=0;for(u=0;u<p-1;++u)T[E++]=u,T[E++]=u+1;return new ft({attributes:x,indices:T,primitiveType:Le.LINES,boundingSphere:ae.fromPoints(t)})};var RX=ZF;function WS(e){let t=y(e.radius,1),i={radii:new m(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new Is(i),this._workerName="createSphereGeometry"}WS.packedLength=Is.packedLength;WS.pack=function(e,t,n){return Is.pack(e._ellipsoidGeometry,t,n)};var ngt=new Is,s0={radius:void 0,radii:new m,vertexFormat:new Pe,stackPartitions:void 0,slicePartitions:void 0};WS.unpack=function(e,t,n){let i=Is.unpack(e,t,ngt);return s0.vertexFormat=Pe.clone(i._vertexFormat,s0.vertexFormat),s0.stackPartitions=i._stackPartitions,s0.slicePartitions=i._slicePartitions,l(n)?(m.clone(i._radii,s0.radii),n._ellipsoidGeometry=new Is(s0),n):(s0.radius=i._radii.x,new WS(s0))};WS.createGeometry=function(e){return Is.createGeometry(e._ellipsoidGeometry)};var BX=WS;function a0(e){}Object.defineProperties(a0.prototype,{ellipsoid:{get:fe.throwInstantiationError},rectangle:{get:fe.throwInstantiationError},projection:{get:fe.throwInstantiationError}});a0.prototype.getNumberOfXTilesAtLevel=fe.throwInstantiationError;a0.prototype.getNumberOfYTilesAtLevel=fe.throwInstantiationError;a0.prototype.rectangleToNativeRectangle=fe.throwInstantiationError;a0.prototype.tileXYToNativeRectangle=fe.throwInstantiationError;a0.prototype.tileXYToRectangle=fe.throwInstantiationError;a0.prototype.positionToTileXY=fe.throwInstantiationError;var LX=a0;function igt(e,t){this.rectangle=e,this.maxLevel=t}function NX(e){this.ellipsoid=y(e.ellipsoid,oe.WGS84),this.tilingScheme=void 0,this.heightmapWidth=void 0,this.heightmapHeight=void 0,this.levelZeroMaximumGeometricError=void 0,this.rectangles=[]}NX.prototype.build=function(e){e._tilingScheme=this.tilingScheme,e._heightmapWidth=this.heightmapWidth,e._heightmapHeight=this.heightmapHeight,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._rectangles=this.rectangles,e._ready=!0};function ogt(e,t){let n=t.getElementsByTagName("SRS")[0].textContent;if(n==="EPSG:4326")e.tilingScheme=new zi({ellipsoid:e.ellipsoid});else throw new de(`SRS ${n} is not supported`);let i=t.getElementsByTagName("TileFormat")[0];e.heightmapWidth=parseInt(i.getAttribute("width"),10),e.heightmapHeight=parseInt(i.getAttribute("height"),10),e.levelZeroMaximumGeometricError=zr.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.ellipsoid,Math.min(e.heightmapWidth,e.heightmapHeight),e.tilingScheme.getNumberOfXTilesAtLevel(0));let o=t.getElementsByTagName("DataExtent");for(let r=0;r<o.length;++r){let s=o[r],a=P.toRadians(parseFloat(s.getAttribute("minx"))),c=P.toRadians(parseFloat(s.getAttribute("miny"))),u=P.toRadians(parseFloat(s.getAttribute("maxx"))),f=P.toRadians(parseFloat(s.getAttribute("maxy"))),d=parseInt(s.getAttribute("maxlevel"),10);e.rectangles.push(new igt(new le(a,c,u,f),d))}}function rgt(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i=`${i}: ${t.message}`),yi.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new de(i)}async function EAe(e,t,n){try{let i=await t.fetchXML();ogt(e,i)}catch(i){rgt(t,i,n)}}function c0(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new ge,this._ready=!1,this._terrainDataStructure={heightScale:1/1e3,heightOffset:-1e3,elementsPerHeight:3,stride:4,elementMultiplier:256,isBigEndian:!0,lowestEncodedHeight:0,highestEncodedHeight:256*256*256-1};let t=e.credit;if(typeof t=="string"&&(t=new It(t)),this._credit=t,this._tilingScheme=void 0,this._rectangles=[],l(e.url)){$("VRTheWorldTerrainProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. VRTheWorldTerrainProvider.fromUrl instead.");let n=this,i=new NX(e),o=we.createIfNeeded(e.url);this._resource=o,this._readyPromise=EAe(i,o,n).then(()=>(i.build(n),!0))}}Object.defineProperties(c0.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("VRTheWorldTerrainProvider.ready","VRTheWorldTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use VRTheWorldTerrainProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("VRTheWorldTerrainProvider.readyPromise","VRTheWorldTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use VRTheWorldTerrainProvider.fromUrl instead."),this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});c0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=new NX(t),i=we.createIfNeeded(e);await EAe(n,i);let o=new c0(t);return n.build(o),o._resource=i,o};c0.prototype.requestTileGeometry=function(e,t,n,i){let o=this._tilingScheme.getNumberOfYTilesAtLevel(n),s=this._resource.getDerivedResource({url:`${n}/${e}/${o-t-1}.tif`,queryParameters:{cesium:!0},request:i}).fetchImage({preferImageBitmap:!0});if(!l(s))return;let a=this;return Promise.resolve(s).then(function(c){return new ba({buffer:$f(c),width:a._heightmapWidth,height:a._heightmapHeight,childTileMask:sgt(a,e,t,n),structure:a._terrainDataStructure})})};c0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};var bAe=new le;function sgt(e,t,n,i){let o=e._tilingScheme,r=e._rectangles,s=o.tileXYToRectangle(t,n,i),a=0;for(let c=0;c<r.length&&a!==15;++c){let u=r[c];if(u.maxLevel<=i)continue;let f=u.rectangle,d=le.intersection(f,s,bAe);l(d)&&(iH(o,f,t*2,n*2,i+1)&&(a|=4),iH(o,f,t*2+1,n*2,i+1)&&(a|=8),iH(o,f,t*2,n*2+1,i+1)&&(a|=1),iH(o,f,t*2+1,n*2+1,i+1)&&(a|=2))}return a}function iH(e,t,n,i,o){let r=e.tileXYToRectangle(n,i,o);return l(le.intersection(r,t,bAe))}c0.prototype.getTileDataAvailable=function(e,t,n){};c0.prototype.loadTileDataAvailability=function(e,t,n){};var FX=c0;function RC(e){e=y(e,y.EMPTY_OBJECT),this._clock=void 0,this._element=void 0,this._clockSubscription=void 0,this._seekFunction=void 0,this._lastPlaybackRate=void 0,this.clock=e.clock,this.element=e.element,this.epoch=y(e.epoch,Ge.MINIMUM_VALUE),this.tolerance=y(e.tolerance,1),this._seeking=!1,this._seekFunction=void 0,this._firstTickAfterSeek=!1}Object.defineProperties(RC.prototype,{clock:{get:function(){return this._clock},set:function(e){let t=this._clock;t!==e&&(l(t)&&(this._clockSubscription(),this._clockSubscription=void 0),l(e)&&(this._clockSubscription=e.onTick.addEventListener(RC.prototype._onTick,this)),this._clock=e)}},element:{get:function(){return this._element},set:function(e){let t=this._element;t!==e&&(l(t)&&t.removeEventListener("seeked",this._seekFunction,!1),l(e)&&(this._seeking=!1,this._seekFunction=agt(this),e.addEventListener("seeked",this._seekFunction,!1)),this._element=e,this._seeking=!1,this._firstTickAfterSeek=!1)}}});RC.prototype.destroy=function(){return this.element=void 0,this.clock=void 0,ue(this)};RC.prototype.isDestroyed=function(){return!1};RC.prototype._trySetPlaybackRate=function(e){if(this._lastPlaybackRate===e.multiplier)return;let t=this._element;try{t.playbackRate=e.multiplier}catch{t.playbackRate=0}this._lastPlaybackRate=e.multiplier};RC.prototype._onTick=function(e){let t=this._element;if(!l(t)||t.readyState<2)return;let n=t.paused,i=e.shouldAnimate;if(i===n&&(i?t.play():t.pause()),this._seeking||this._firstTickAfterSeek){this._firstTickAfterSeek=!1;return}this._trySetPlaybackRate(e);let o=e.currentTime,r=y(this.epoch,Ge.MINIMUM_VALUE),s=ee.secondsDifference(o,r),a=t.duration,c,u=t.currentTime;t.loop?(s=s%a,s<0&&(s=a-s),c=s):s>a?c=a:s<0?c=0:c=s;let f=i?y(this.tolerance,1):.001;Math.abs(c-u)>f&&(this._seeking=!0,t.currentTime=c)};function agt(e){return function(){e._seeking=!1,e._firstTickAfterSeek=!0}}var UX=RC;var cgt={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033},VX=Object.freeze(cgt);function lgt(e){$("createWorldTerrain","createWorldTerrain was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use createWorldTerrainAsync instead."),e=y(e,y.EMPTY_OBJECT);let t=new e0({requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1)});return t._readyPromise=e0._initializeReadyPromise({url:qs.fromAssetId(1),requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1)},t),t}var kX=lgt;var ugt=new m;function fgt(e,t,n,i){let o=H0(e,t,n,i,ugt);return l(o)?o.x>0&&o.y>0&&o.z>0:!1}var zX=fgt;function dgt(e){switch(e){case te.FLOAT:return"float";case te.FLOAT_VEC2:return"vec2";case te.FLOAT_VEC3:return"vec3";case te.FLOAT_VEC4:return"vec4";case te.FLOAT_MAT2:return"mat2";case te.FLOAT_MAT3:return"mat3";case te.FLOAT_MAT4:return"mat4";case te.SAMPLER_2D:return"sampler2D";case te.BOOL:return"bool"}}var HX=dgt;function mgt(e,t,n){return function(){n.apply(e,arguments),t.apply(e,arguments)}}var QF=mgt;var GX=`uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float z_window = czm_unpackDepth(texture(u_depthTexture, v_textureCoordinates)); + z_window = czm_reverseLogDepth(z_window); + float n_range = czm_depthRange.near; + float f_range = czm_depthRange.far; + float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range); + float scale = pow(z_ndc * 0.5 + 0.5, 8.0); + out_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0); +} +`;function hgt(e){e=y(e,y.EMPTY_OBJECT),this.typedArray=e.typedArray,this.width=e.width,this.height=e.height,this.pixelFormat=y(e.pixelFormat,ct.RGBA),this.pixelDatatype=y(e.pixelDatatype,Je.UNSIGNED_BYTE);let t=e.url;typeof t=="string"&&(t=we.createIfNeeded(t)),this.resource=t;let i=y(e.repeat,!0)?vn.REPEAT:vn.CLAMP_TO_EDGE;this.sampler=new dn({wrapS:i,wrapT:i,minificationFilter:e.minificationFilter,magnificationFilter:e.magnificationFilter,maximumAnisotropy:e.maximumAnisotropy})}var WX=hgt;var pgt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",MAT2:"mat2",MAT3:"mat2",MAT4:"mat4"},jX=Object.freeze(pgt);function _gt(e,t,n){let i;try{return i=e(t,n),i}catch(o){return Promise.reject(o)}}function ggt(e){let t;return function(n){let i=n.data,o=[],r={id:i.id,result:void 0,error:void 0};return Promise.resolve(_gt(e,i.parameters,o)).then(function(s){r.result=s}).catch(function(s){s instanceof Error?r.error={name:s.name,message:s.message,stack:s.stack}:r.error=s}).finally(function(){l(t)||(t=y(self.webkitPostMessage,self.postMessage)),i.canTransferArrayBuffer||(o.length=0);try{t(r,o)}catch(s){r.result=void 0,r.error=`postMessage failed with error: ${_h(s)} + with responseMessage: ${JSON.stringify(r)}`,t(r)}})}}var YX=ggt;globalThis.CESIUM_VERSION="1.105";var $F;typeof ko<"u"&&($F=ko);(function(){/*! + * Knockout JavaScript library v3.5.1 + * (c) The Knockout.js team - http://knockoutjs.com/ + * License: MIT (http://www.opensource.org/licenses/mit-license.php) + */(function(){(function(e){var t=this||(0,eval)("this"),n=t.document,i=t.navigator,o=t.jQuery,r=t.JSON;o||typeof jQuery>"u"||(o=jQuery),function(s){s(t.ko={})}(function(s,a){function c(_,b){return _===null||typeof _ in A?_===b:!1}function u(_,b){var w;return function(){w||(w=h.a.setTimeout(function(){w=e,_()},b))}}function f(_,b){var w;return function(){clearTimeout(w),w=h.a.setTimeout(_,b)}}function d(_,b){b&&b!=="change"?b==="beforeChange"?this.pc(_):this.gb(_,b):this.qc(_)}function p(_,b){b!==null&&b.s&&b.s()}function g(_,b){var w=this.qd,I=w[S];I.ra||(this.Qb&&this.mb[b]?(w.uc(b,_,this.mb[b]),this.mb[b]=null,--this.Qb):I.I[b]||w.uc(b,_,I.J?{da:_}:w.$c(_)),_.Ja&&_.gd())}var h=typeof s<"u"?s:{};h.b=function(_,b){for(var w=_.split("."),I=h,R=0;R<w.length-1;R++)I=I[w[R]];I[w[w.length-1]]=b},h.L=function(_,b,w){_[b]=w},h.version="3.5.1",h.b("version",h.version),h.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1},h.a=function(){function _(W,K){for(var J in W)R.call(W,J)&&K(J,W[J])}function b(W,K){if(K)for(var J in K)R.call(K,J)&&(W[J]=K[J]);return W}function w(W,K){return W.__proto__=K,W}function I(W,K,J,_e){var xe=W[K].match(Y)||[];h.a.D(J.match(Y),function(se){h.a.Na(xe,se,_e)}),W[K]=xe.join(" ")}var R=Object.prototype.hasOwnProperty,F={__proto__:[]}instanceof Array,k=typeof Symbol=="function",V={},G={};V[i&&/Firefox\/2/i.test(i.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],V.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),_(V,function(W,K){if(K.length)for(var J=0,_e=K.length;J<_e;J++)G[K[J]]=W});var U={propertychange:!0},q=n&&function(){for(var W=3,K=n.createElement("div"),J=K.getElementsByTagName("i");K.innerHTML="<!--[if gt IE "+ ++W+"]><i></i><![endif]-->",J[0];);return 4<W?W:e}(),Y=/\S+/g,Q;return{Jc:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],D:function(W,K,J){for(var _e=0,xe=W.length;_e<xe;_e++)K.call(J,W[_e],_e,W)},A:typeof Array.prototype.indexOf=="function"?function(W,K){return Array.prototype.indexOf.call(W,K)}:function(W,K){for(var J=0,_e=W.length;J<_e;J++)if(W[J]===K)return J;return-1},Lb:function(W,K,J){for(var _e=0,xe=W.length;_e<xe;_e++)if(K.call(J,W[_e],_e,W))return W[_e];return e},Pa:function(W,K){var J=h.a.A(W,K);0<J?W.splice(J,1):J===0&&W.shift()},wc:function(W){var K=[];return W&&h.a.D(W,function(J){0>h.a.A(K,J)&&K.push(J)}),K},Mb:function(W,K,J){var _e=[];if(W)for(var xe=0,se=W.length;xe<se;xe++)_e.push(K.call(J,W[xe],xe));return _e},jb:function(W,K,J){var _e=[];if(W)for(var xe=0,se=W.length;xe<se;xe++)K.call(J,W[xe],xe)&&_e.push(W[xe]);return _e},Nb:function(W,K){if(K instanceof Array)W.push.apply(W,K);else for(var J=0,_e=K.length;J<_e;J++)W.push(K[J]);return W},Na:function(W,K,J){var _e=h.a.A(h.a.bc(W),K);0>_e?J&&W.push(K):J||W.splice(_e,1)},Ba:F,extend:b,setPrototypeOf:w,Ab:F?w:b,P:_,Ga:function(W,K,J){if(!W)return W;var _e={},xe;for(xe in W)R.call(W,xe)&&(_e[xe]=K.call(J,W[xe],xe,W));return _e},Tb:function(W){for(;W.firstChild;)h.removeNode(W.firstChild)},Yb:function(W){W=h.a.la(W);for(var K=(W[0]&&W[0].ownerDocument||n).createElement("div"),J=0,_e=W.length;J<_e;J++)K.appendChild(h.oa(W[J]));return K},Ca:function(W,K){for(var J=0,_e=W.length,xe=[];J<_e;J++){var se=W[J].cloneNode(!0);xe.push(K?h.oa(se):se)}return xe},va:function(W,K){if(h.a.Tb(W),K)for(var J=0,_e=K.length;J<_e;J++)W.appendChild(K[J])},Xc:function(W,K){var J=W.nodeType?[W]:W;if(0<J.length){for(var _e=J[0],xe=_e.parentNode,se=0,Ae=K.length;se<Ae;se++)xe.insertBefore(K[se],_e);for(se=0,Ae=J.length;se<Ae;se++)h.removeNode(J[se])}},Ua:function(W,K){if(W.length){for(K=K.nodeType===8&&K.parentNode||K;W.length&&W[0].parentNode!==K;)W.splice(0,1);for(;1<W.length&&W[W.length-1].parentNode!==K;)W.length--;if(1<W.length){var J=W[0],_e=W[W.length-1];for(W.length=0;J!==_e;)W.push(J),J=J.nextSibling;W.push(_e)}}return W},Zc:function(W,K){7>q?W.setAttribute("selected",K):W.selected=K},Db:function(W){return W===null||W===e?"":W.trim?W.trim():W.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Ud:function(W,K){return W=W||"",K.length>W.length?!1:W.substring(0,K.length)===K},vd:function(W,K){if(W===K)return!0;if(W.nodeType===11)return!1;if(K.contains)return K.contains(W.nodeType!==1?W.parentNode:W);if(K.compareDocumentPosition)return(K.compareDocumentPosition(W)&16)==16;for(;W&&W!=K;)W=W.parentNode;return!!W},Sb:function(W){return h.a.vd(W,W.ownerDocument.documentElement)},kd:function(W){return!!h.a.Lb(W,h.a.Sb)},R:function(W){return W&&W.tagName&&W.tagName.toLowerCase()},Ac:function(W){return h.onError?function(){try{return W.apply(this,arguments)}catch(K){throw h.onError&&h.onError(K),K}}:W},setTimeout:function(W,K){return setTimeout(h.a.Ac(W),K)},Gc:function(W){setTimeout(function(){throw h.onError&&h.onError(W),W},0)},B:function(W,K,J){var _e=h.a.Ac(J);if(J=U[K],h.options.useOnlyNativeEvents||J||!o)if(J||typeof W.addEventListener!="function")if(typeof W.attachEvent<"u"){var xe=function(Ae){_e.call(W,Ae)},se="on"+K;W.attachEvent(se,xe),h.a.K.za(W,function(){W.detachEvent(se,xe)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else W.addEventListener(K,_e,!1);else Q||(Q=typeof o(W).on=="function"?"on":"bind"),o(W)[Q](K,_e)},Fb:function(W,K){if(!W||!W.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var J;if(h.a.R(W)==="input"&&W.type&&K.toLowerCase()=="click"?(J=W.type,J=J=="checkbox"||J=="radio"):J=!1,h.options.useOnlyNativeEvents||!o||J)if(typeof n.createEvent=="function")if(typeof W.dispatchEvent=="function")J=n.createEvent(G[K]||"HTMLEvents"),J.initEvent(K,!0,!0,t,0,0,0,0,0,!1,!1,!1,!1,0,W),W.dispatchEvent(J);else throw Error("The supplied element doesn't support dispatchEvent");else if(J&&W.click)W.click();else if(typeof W.fireEvent<"u")W.fireEvent("on"+K);else throw Error("Browser doesn't support triggering events");else o(W).trigger(K)},f:function(W){return h.O(W)?W():W},bc:function(W){return h.O(W)?W.v():W},Eb:function(W,K,J){var _e;K&&(typeof W.classList=="object"?(_e=W.classList[J?"add":"remove"],h.a.D(K.match(Y),function(xe){_e.call(W.classList,xe)})):typeof W.className.baseVal=="string"?I(W.className,"baseVal",K,J):I(W,"className",K,J))},Bb:function(W,K){var J=h.a.f(K);(J===null||J===e)&&(J="");var _e=h.h.firstChild(W);!_e||_e.nodeType!=3||h.h.nextSibling(_e)?h.h.va(W,[W.ownerDocument.createTextNode(J)]):_e.data=J,h.a.Ad(W)},Yc:function(W,K){if(W.name=K,7>=q)try{var J=W.name.replace(/[&<>'"]/g,function(_e){return"&#"+_e.charCodeAt(0)+";"});W.mergeAttributes(n.createElement("<input name='"+J+"'/>"),!1)}catch{}},Ad:function(W){9<=q&&(W=W.nodeType==1?W:W.parentNode,W.style&&(W.style.zoom=W.style.zoom))},wd:function(W){if(q){var K=W.style.width;W.style.width=0,W.style.width=K}},Pd:function(W,K){W=h.a.f(W),K=h.a.f(K);for(var J=[],_e=W;_e<=K;_e++)J.push(_e);return J},la:function(W){for(var K=[],J=0,_e=W.length;J<_e;J++)K.push(W[J]);return K},Da:function(W){return k?Symbol(W):W},Zd:q===6,$d:q===7,W:q,Lc:function(W,K){for(var J=h.a.la(W.getElementsByTagName("input")).concat(h.a.la(W.getElementsByTagName("textarea"))),_e=typeof K=="string"?function(Ae){return Ae.name===K}:function(Ae){return K.test(Ae.name)},xe=[],se=J.length-1;0<=se;se--)_e(J[se])&&xe.push(J[se]);return xe},Nd:function(W){return typeof W=="string"&&(W=h.a.Db(W))?r&&r.parse?r.parse(W):new Function("return "+W)():null},hc:function(W,K,J){if(!r||!r.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return r.stringify(h.a.f(W),K,J)},Od:function(W,K,J){J=J||{};var _e=J.params||{},xe=J.includeFields||this.Jc,se=W;if(typeof W=="object"&&h.a.R(W)==="form")for(var se=W.action,Ae=xe.length-1;0<=Ae;Ae--)for(var me=h.a.Lc(W,xe[Ae]),Se=me.length-1;0<=Se;Se--)_e[me[Se].name]=me[Se].value;K=h.a.f(K);var Ie=n.createElement("form");Ie.style.display="none",Ie.action=se,Ie.method="post";for(var Ve in K)W=n.createElement("input"),W.type="hidden",W.name=Ve,W.value=h.a.hc(h.a.f(K[Ve])),Ie.appendChild(W);_(_e,function(Re,ke){var dt=n.createElement("input");dt.type="hidden",dt.name=Re,dt.value=ke,Ie.appendChild(dt)}),n.body.appendChild(Ie),J.submitter?J.submitter(Ie):Ie.submit(),setTimeout(function(){Ie.parentNode.removeChild(Ie)},0)}}}(),h.b("utils",h.a),h.b("utils.arrayForEach",h.a.D),h.b("utils.arrayFirst",h.a.Lb),h.b("utils.arrayFilter",h.a.jb),h.b("utils.arrayGetDistinctValues",h.a.wc),h.b("utils.arrayIndexOf",h.a.A),h.b("utils.arrayMap",h.a.Mb),h.b("utils.arrayPushAll",h.a.Nb),h.b("utils.arrayRemoveItem",h.a.Pa),h.b("utils.cloneNodes",h.a.Ca),h.b("utils.createSymbolOrString",h.a.Da),h.b("utils.extend",h.a.extend),h.b("utils.fieldsIncludedWithJsonPost",h.a.Jc),h.b("utils.getFormFields",h.a.Lc),h.b("utils.objectMap",h.a.Ga),h.b("utils.peekObservable",h.a.bc),h.b("utils.postJson",h.a.Od),h.b("utils.parseJson",h.a.Nd),h.b("utils.registerEventHandler",h.a.B),h.b("utils.stringifyJson",h.a.hc),h.b("utils.range",h.a.Pd),h.b("utils.toggleDomNodeCssClass",h.a.Eb),h.b("utils.triggerEvent",h.a.Fb),h.b("utils.unwrapObservable",h.a.f),h.b("utils.objectForEach",h.a.P),h.b("utils.addOrRemoveItem",h.a.Na),h.b("utils.setTextContent",h.a.Bb),h.b("unwrap",h.a.f),Function.prototype.bind||(Function.prototype.bind=function(_){var b=this;if(arguments.length===1)return function(){return b.apply(_,arguments)};var w=Array.prototype.slice.call(arguments,1);return function(){var I=w.slice(0);return I.push.apply(I,arguments),b.apply(_,I)}}),h.a.g=new function(){var _=0,b="__ko__"+new Date().getTime(),w={},I,R;return h.a.W?(I=function(F,k){var V=F[b];if(!V||V==="null"||!w[V]){if(!k)return e;V=F[b]="ko"+_++,w[V]={}}return w[V]},R=function(F){var k=F[b];return k?(delete w[k],F[b]=null,!0):!1}):(I=function(F,k){var V=F[b];return!V&&k&&(V=F[b]={}),V},R=function(F){return F[b]?(delete F[b],!0):!1}),{get:function(F,k){var V=I(F,!1);return V&&V[k]},set:function(F,k,V){(F=I(F,V!==e))&&(F[k]=V)},Ub:function(F,k,V){return F=I(F,!0),F[k]||(F[k]=V)},clear:R,Z:function(){return _+++b}}},h.b("utils.domData",h.a.g),h.b("utils.domData.clear",h.a.g.clear),h.a.K=new function(){function _(k,V){var G=h.a.g.get(k,I);return G===e&&V&&(G=[],h.a.g.set(k,I,G)),G}function b(k){var V=_(k,!1);if(V)for(var V=V.slice(0),G=0;G<V.length;G++)V[G](k);h.a.g.clear(k),h.a.K.cleanExternalData(k),F[k.nodeType]&&w(k.childNodes,!0)}function w(k,V){for(var G=[],U,q=0;q<k.length;q++)if((!V||k[q].nodeType===8)&&(b(G[G.length]=U=k[q]),k[q]!==U))for(;q--&&h.a.A(G,k[q])==-1;);}var I=h.a.g.Z(),R={1:!0,8:!0,9:!0},F={1:!0,9:!0};return{za:function(k,V){if(typeof V!="function")throw Error("Callback must be a function");_(k,!0).push(V)},yb:function(k,V){var G=_(k,!1);G&&(h.a.Pa(G,V),G.length==0&&h.a.g.set(k,I,e))},oa:function(k){return h.u.G(function(){R[k.nodeType]&&(b(k),F[k.nodeType]&&w(k.getElementsByTagName("*")))}),k},removeNode:function(k){h.oa(k),k.parentNode&&k.parentNode.removeChild(k)},cleanExternalData:function(k){o&&typeof o.cleanData=="function"&&o.cleanData([k])}}},h.oa=h.a.K.oa,h.removeNode=h.a.K.removeNode,h.b("cleanNode",h.oa),h.b("removeNode",h.removeNode),h.b("utils.domNodeDisposal",h.a.K),h.b("utils.domNodeDisposal.addDisposeCallback",h.a.K.za),h.b("utils.domNodeDisposal.removeDisposeCallback",h.a.K.yb),function(){var _=[0,"",""],b=[1,"<table>","</table>"],w=[3,"<table><tbody><tr>","</tr></tbody></table>"],I=[1,"<select multiple='multiple'>","</select>"],R={thead:b,tbody:b,tfoot:b,tr:[2,"<table><tbody>","</tbody></table>"],td:w,th:w,option:I,optgroup:I},F=8>=h.a.W;h.a.ua=function(k,V){var G;if(o){if(o.parseHTML)G=o.parseHTML(k,V)||[];else if((G=o.clean([k],V))&&G[0]){for(var U=G[0];U.parentNode&&U.parentNode.nodeType!==11;)U=U.parentNode;U.parentNode&&U.parentNode.removeChild(U)}}else{(G=V)||(G=n);var U=G.parentWindow||G.defaultView||t,q=h.a.Db(k).toLowerCase(),Y=G.createElement("div"),Q;for(Q=(q=q.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&R[q[1]]||_,q=Q[0],Q="ignored<div>"+Q[1]+k+Q[2]+"</div>",typeof U.innerShiv=="function"?Y.appendChild(U.innerShiv(Q)):(F&&G.body.appendChild(Y),Y.innerHTML=Q,F&&Y.parentNode.removeChild(Y));q--;)Y=Y.lastChild;G=h.a.la(Y.lastChild.childNodes)}return G},h.a.Md=function(k,V){var G=h.a.ua(k,V);return G.length&&G[0].parentElement||h.a.Yb(G)},h.a.fc=function(k,V){if(h.a.Tb(k),V=h.a.f(V),V!==null&&V!==e)if(typeof V!="string"&&(V=V.toString()),o)o(k).html(V);else for(var G=h.a.ua(V,k.ownerDocument),U=0;U<G.length;U++)k.appendChild(G[U])}}(),h.b("utils.parseHtmlFragment",h.a.ua),h.b("utils.setHtml",h.a.fc),h.aa=function(){function _(w,I){if(w){if(w.nodeType==8){var R=h.aa.Uc(w.nodeValue);R!=null&&I.push({ud:w,Kd:R})}else if(w.nodeType==1)for(var R=0,F=w.childNodes,k=F.length;R<k;R++)_(F[R],I)}}var b={};return{Xb:function(w){if(typeof w!="function")throw Error("You can only pass a function to ko.memoization.memoize()");var I=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return b[I]=w,"<!--[ko_memo:"+I+"]-->"},bd:function(w,I){var R=b[w];if(R===e)throw Error("Couldn't find any memo with ID "+w+". Perhaps it's already been unmemoized.");try{return R.apply(null,I||[]),!0}finally{delete b[w]}},cd:function(w,I){var R=[];_(w,R);for(var F=0,k=R.length;F<k;F++){var V=R[F].ud,G=[V];I&&h.a.Nb(G,I),h.aa.bd(R[F].Kd,G),V.nodeValue="",V.parentNode&&V.parentNode.removeChild(V)}},Uc:function(w){return(w=w.match(/^\[ko_memo\:(.*?)\]$/))?w[1]:null}}}(),h.b("memoization",h.aa),h.b("memoization.memoize",h.aa.Xb),h.b("memoization.unmemoize",h.aa.bd),h.b("memoization.parseMemoText",h.aa.Uc),h.b("memoization.unmemoizeDomNodeAndDescendants",h.aa.cd),h.na=function(){function _(){if(R){for(var V=R,G=0,U;k<R;)if(U=I[k++]){if(k>V){if(5e3<=++G){k=R,h.a.Gc(Error("'Too much recursion' after processing "+G+" task groups."));break}V=R}try{U()}catch(q){h.a.Gc(q)}}}}function b(){_(),k=R=I.length=0}var w,I=[],R=0,F=1,k=0;return t.MutationObserver?w=function(V){var G=n.createElement("div");return new MutationObserver(V).observe(G,{attributes:!0}),function(){G.classList.toggle("foo")}}(b):w=n&&"onreadystatechange"in n.createElement("script")?function(V){var G=n.createElement("script");G.onreadystatechange=function(){G.onreadystatechange=null,n.documentElement.removeChild(G),G=null,V()},n.documentElement.appendChild(G)}:function(V){setTimeout(V,0)},{scheduler:w,zb:function(V){return R||h.na.scheduler(b),I[R++]=V,F++},cancel:function(V){V=V-(F-R),V>=k&&V<R&&(I[V]=null)},resetForTesting:function(){var V=R-k;return k=R=I.length=0,V},Sd:_}}(),h.b("tasks",h.na),h.b("tasks.schedule",h.na.zb),h.b("tasks.runEarly",h.na.Sd),h.Ta={throttle:function(_,b){_.throttleEvaluation=b;var w=null;return h.$({read:_,write:function(I){clearTimeout(w),w=h.a.setTimeout(function(){_(I)},b)}})},rateLimit:function(_,b){var w,I,R;typeof b=="number"?w=b:(w=b.timeout,I=b.method),_.Hb=!1,R=typeof I=="function"?I:I=="notifyWhenChangesStop"?f:u,_.ub(function(F){return R(F,w,b)})},deferred:function(_,b){if(b!==!0)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");_.Hb||(_.Hb=!0,_.ub(function(w){var I,R=!1;return function(){if(!R){h.na.cancel(I),I=h.na.zb(w);try{R=!0,_.notifySubscribers(e,"dirty")}finally{R=!1}}}}))},notify:function(_,b){_.equalityComparer=b=="always"?null:c}};var A={undefined:1,boolean:1,number:1,string:1};h.b("extenders",h.Ta),h.ic=function(_,b,w){this.da=_,this.lc=b,this.mc=w,this.Ib=!1,this.fb=this.Jb=null,h.L(this,"dispose",this.s),h.L(this,"disposeWhenNodeIsRemoved",this.l)},h.ic.prototype.s=function(){this.Ib||(this.fb&&h.a.K.yb(this.Jb,this.fb),this.Ib=!0,this.mc(),this.da=this.lc=this.mc=this.Jb=this.fb=null)},h.ic.prototype.l=function(_){this.Jb=_,h.a.K.za(_,this.fb=this.s.bind(this))},h.T=function(){h.a.Ab(this,x),x.qb(this)};var x={qb:function(_){_.U={change:[]},_.sc=1},subscribe:function(_,b,w){var I=this;w=w||"change";var R=new h.ic(I,b?_.bind(b):_,function(){h.a.Pa(I.U[w],R),I.hb&&I.hb(w)});return I.Qa&&I.Qa(w),I.U[w]||(I.U[w]=[]),I.U[w].push(R),R},notifySubscribers:function(_,b){if(b=b||"change",b==="change"&&this.Gb(),this.Wa(b)){var w=b==="change"&&this.ed||this.U[b].slice(0);try{h.u.xc();for(var I=0,R;R=w[I];++I)R.Ib||R.lc(_)}finally{h.u.end()}}},ob:function(){return this.sc},Dd:function(_){return this.ob()!==_},Gb:function(){++this.sc},ub:function(_){var b=this,w=h.O(b),I,R,F,k,V;b.gb||(b.gb=b.notifySubscribers,b.notifySubscribers=d);var G=_(function(){b.Ja=!1,w&&k===b&&(k=b.nc?b.nc():b());var U=R||V&&b.sb(F,k);V=R=I=!1,U&&b.gb(F=k)});b.qc=function(U,q){q&&b.Ja||(V=!q),b.ed=b.U.change.slice(0),b.Ja=I=!0,k=U,G()},b.pc=function(U){I||(F=U,b.gb(U,"beforeChange"))},b.rc=function(){V=!0},b.gd=function(){b.sb(F,b.v(!0))&&(R=!0)}},Wa:function(_){return this.U[_]&&this.U[_].length},Bd:function(_){if(_)return this.U[_]&&this.U[_].length||0;var b=0;return h.a.P(this.U,function(w,I){w!=="dirty"&&(b+=I.length)}),b},sb:function(_,b){return!this.equalityComparer||!this.equalityComparer(_,b)},toString:function(){return"[object Object]"},extend:function(_){var b=this;return _&&h.a.P(_,function(w,I){var R=h.Ta[w];typeof R=="function"&&(b=R(b,I)||b)}),b}};h.L(x,"init",x.qb),h.L(x,"subscribe",x.subscribe),h.L(x,"extend",x.extend),h.L(x,"getSubscriptionsCount",x.Bd),h.a.Ba&&h.a.setPrototypeOf(x,Function.prototype),h.T.fn=x,h.Qc=function(_){return _!=null&&typeof _.subscribe=="function"&&typeof _.notifySubscribers=="function"},h.b("subscribable",h.T),h.b("isSubscribable",h.Qc),h.S=h.u=function(){function _(F){w.push(I),I=F}function b(){I=w.pop()}var w=[],I,R=0;return{xc:_,end:b,cc:function(F){if(I){if(!h.Qc(F))throw Error("Only subscribable things can act as dependencies");I.od.call(I.pd,F,F.fd||(F.fd=++R))}},G:function(F,k,V){try{return _(),F.apply(k,V||[])}finally{b()}},qa:function(){if(I)return I.o.qa()},Va:function(){if(I)return I.o.Va()},Ya:function(){if(I)return I.Ya},o:function(){if(I)return I.o}}}(),h.b("computedContext",h.S),h.b("computedContext.getDependenciesCount",h.S.qa),h.b("computedContext.getDependencies",h.S.Va),h.b("computedContext.isInitial",h.S.Ya),h.b("computedContext.registerDependency",h.S.cc),h.b("ignoreDependencies",h.Yd=h.u.G);var C=h.a.Da("_latestValue");h.ta=function(_){function b(){return 0<arguments.length?(b.sb(b[C],arguments[0])&&(b.ya(),b[C]=arguments[0],b.xa()),this):(h.u.cc(b),b[C])}return b[C]=_,h.a.Ba||h.a.extend(b,h.T.fn),h.T.fn.qb(b),h.a.Ab(b,T),h.options.deferUpdates&&h.Ta.deferred(b,!0),b};var T={equalityComparer:c,v:function(){return this[C]},xa:function(){this.notifySubscribers(this[C],"spectate"),this.notifySubscribers(this[C])},ya:function(){this.notifySubscribers(this[C],"beforeChange")}};h.a.Ba&&h.a.setPrototypeOf(T,h.T.fn);var E=h.ta.Ma="__ko_proto__";T[E]=h.ta,h.O=function(_){if((_=typeof _=="function"&&_[E])&&_!==T[E]&&_!==h.o.fn[E])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!_},h.Za=function(_){return typeof _=="function"&&(_[E]===T[E]||_[E]===h.o.fn[E]&&_.Nc)},h.b("observable",h.ta),h.b("isObservable",h.O),h.b("isWriteableObservable",h.Za),h.b("isWritableObservable",h.Za),h.b("observable.fn",T),h.L(T,"peek",T.v),h.L(T,"valueHasMutated",T.xa),h.L(T,"valueWillMutate",T.ya),h.Ha=function(_){if(_=_||[],typeof _!="object"||!("length"in _))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");return _=h.ta(_),h.a.Ab(_,h.Ha.fn),_.extend({trackArrayChanges:!0})},h.Ha.fn={remove:function(_){for(var b=this.v(),w=[],I=typeof _!="function"||h.O(_)?function(k){return k===_}:_,R=0;R<b.length;R++){var F=b[R];if(I(F)){if(w.length===0&&this.ya(),b[R]!==F)throw Error("Array modified during remove; cannot remove item");w.push(F),b.splice(R,1),R--}}return w.length&&this.xa(),w},removeAll:function(_){if(_===e){var b=this.v(),w=b.slice(0);return this.ya(),b.splice(0,b.length),this.xa(),w}return _?this.remove(function(I){return 0<=h.a.A(_,I)}):[]},destroy:function(_){var b=this.v(),w=typeof _!="function"||h.O(_)?function(F){return F===_}:_;this.ya();for(var I=b.length-1;0<=I;I--){var R=b[I];w(R)&&(R._destroy=!0)}this.xa()},destroyAll:function(_){return _===e?this.destroy(function(){return!0}):_?this.destroy(function(b){return 0<=h.a.A(_,b)}):[]},indexOf:function(_){var b=this();return h.a.A(b,_)},replace:function(_,b){var w=this.indexOf(_);0<=w&&(this.ya(),this.v()[w]=b,this.xa())},sorted:function(_){var b=this().slice(0);return _?b.sort(_):b.sort()},reversed:function(){return this().slice(0).reverse()}},h.a.Ba&&h.a.setPrototypeOf(h.Ha.fn,h.ta.fn),h.a.D("pop push reverse shift sort splice unshift".split(" "),function(_){h.Ha.fn[_]=function(){var b=this.v();this.ya(),this.zc(b,_,arguments);var w=b[_].apply(b,arguments);return this.xa(),w===b?this:w}}),h.a.D(["slice"],function(_){h.Ha.fn[_]=function(){var b=this();return b[_].apply(b,arguments)}}),h.Pc=function(_){return h.O(_)&&typeof _.remove=="function"&&typeof _.push=="function"},h.b("observableArray",h.Ha),h.b("isObservableArray",h.Pc),h.Ta.trackArrayChanges=function(_,b){function w(){function Y(){if(V){var Q=[].concat(_.v()||[]),W;_.Wa("arrayChange")&&((!R||1<V)&&(R=h.a.Pb(G,Q,_.Ob)),W=R),G=Q,R=null,V=0,W&&W.length&&_.notifySubscribers(W,"arrayChange")}}I?Y():(I=!0,k=_.subscribe(function(){++V},null,"spectate"),G=[].concat(_.v()||[]),R=null,F=_.subscribe(Y))}if(_.Ob={},b&&typeof b=="object"&&h.a.extend(_.Ob,b),_.Ob.sparse=!0,!_.zc){var I=!1,R=null,F,k,V=0,G,U=_.Qa,q=_.hb;_.Qa=function(Y){U&&U.call(_,Y),Y==="arrayChange"&&w()},_.hb=function(Y){q&&q.call(_,Y),Y!=="arrayChange"||_.Wa("arrayChange")||(F&&F.s(),k&&k.s(),k=F=null,I=!1,G=e)},_.zc=function(Y,Q,W){function K(Ie,Ve,Re){return J[J.length]={status:Ie,value:Ve,index:Re}}if(I&&!V){var J=[],_e=Y.length,xe=W.length,se=0;switch(Q){case"push":se=_e;case"unshift":for(Q=0;Q<xe;Q++)K("added",W[Q],se+Q);break;case"pop":se=_e-1;case"shift":_e&&K("deleted",Y[se],se);break;case"splice":Q=Math.min(Math.max(0,0>W[0]?_e+W[0]:W[0]),_e);for(var _e=xe===1?_e:Math.min(Q+(W[1]||0),_e),xe=Q+xe-2,se=Math.max(_e,xe),Ae=[],me=[],Se=2;Q<se;++Q,++Se)Q<_e&&me.push(K("deleted",Y[Q],Q)),Q<xe&&Ae.push(K("added",W[Se],Q));h.a.Kc(me,Ae);break;default:return}R=J}}}};var S=h.a.Da("_state");h.o=h.$=function(_,b,w){function I(){if(0<arguments.length){if(typeof R=="function")R.apply(F.nb,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return F.ra||h.u.cc(I),(F.ka||F.J&&I.Xa())&&I.ha(),F.X}if(typeof _=="object"?w=_:(w=w||{},_&&(w.read=_)),typeof w.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var R=w.write,F={X:e,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:w.read,nb:b||w.owner,l:w.disposeWhenNodeIsRemoved||w.l||null,Sa:w.disposeWhen||w.Sa,Rb:null,I:{},V:0,Ic:null};return I[S]=F,I.Nc=typeof R=="function",h.a.Ba||h.a.extend(I,h.T.fn),h.T.fn.qb(I),h.a.Ab(I,v),w.pure?(F.wb=!0,F.J=!0,h.a.extend(I,D)):w.deferEvaluation&&h.a.extend(I,O),h.options.deferUpdates&&h.Ta.deferred(I,!0),F.l&&(F.jc=!0,F.l.nodeType||(F.l=null)),F.J||w.deferEvaluation||I.ha(),F.l&&I.ja()&&h.a.K.za(F.l,F.Rb=function(){I.s()}),I};var v={equalityComparer:c,qa:function(){return this[S].V},Va:function(){var _=[];return h.a.P(this[S].I,function(b,w){_[w.Ka]=w.da}),_},Vb:function(_){if(!this[S].V)return!1;var b=this.Va();return h.a.A(b,_)!==-1?!0:!!h.a.Lb(b,function(w){return w.Vb&&w.Vb(_)})},uc:function(_,b,w){if(this[S].wb&&b===this)throw Error("A 'pure' computed must not be called recursively");this[S].I[_]=w,w.Ka=this[S].V++,w.La=b.ob()},Xa:function(){var _,b,w=this[S].I;for(_ in w)if(Object.prototype.hasOwnProperty.call(w,_)&&(b=w[_],this.Ia&&b.da.Ja||b.da.Dd(b.La)))return!0},Jd:function(){this.Ia&&!this[S].rb&&this.Ia(!1)},ja:function(){var _=this[S];return _.ka||0<_.V},Rd:function(){this.Ja?this[S].ka&&(this[S].sa=!0):this.Hc()},$c:function(_){if(_.Hb){var b=_.subscribe(this.Jd,this,"dirty"),w=_.subscribe(this.Rd,this);return{da:_,s:function(){b.s(),w.s()}}}return _.subscribe(this.Hc,this)},Hc:function(){var _=this,b=_.throttleEvaluation;b&&0<=b?(clearTimeout(this[S].Ic),this[S].Ic=h.a.setTimeout(function(){_.ha(!0)},b)):_.Ia?_.Ia(!0):_.ha(!0)},ha:function(_){var b=this[S],w=b.Sa,I=!1;if(!b.rb&&!b.ra){if(b.l&&!h.a.Sb(b.l)||w&&w()){if(!b.jc){this.s();return}}else b.jc=!1;b.rb=!0;try{I=this.zd(_)}finally{b.rb=!1}return I}},zd:function(_){var b=this[S],I=!1,w=b.wb?e:!b.V,I={qd:this,mb:b.I,Qb:b.V};h.u.xc({pd:I,od:g,o:this,Ya:w}),b.I={},b.V=0;var R=this.yd(b,I);return b.V?I=this.sb(b.X,R):(this.s(),I=!0),I&&(b.J?this.Gb():this.notifySubscribers(b.X,"beforeChange"),b.X=R,this.notifySubscribers(b.X,"spectate"),!b.J&&_&&this.notifySubscribers(b.X),this.rc&&this.rc()),w&&this.notifySubscribers(b.X,"awake"),I},yd:function(_,b){try{var w=_.Wc;return _.nb?w.call(_.nb):w()}finally{h.u.end(),b.Qb&&!_.J&&h.a.P(b.mb,p),_.sa=_.ka=!1}},v:function(_){var b=this[S];return(b.ka&&(_||!b.V)||b.J&&this.Xa())&&this.ha(),b.X},ub:function(_){h.T.fn.ub.call(this,_),this.nc=function(){return this[S].J||(this[S].sa?this.ha():this[S].ka=!1),this[S].X},this.Ia=function(b){this.pc(this[S].X),this[S].ka=!0,b&&(this[S].sa=!0),this.qc(this,!b)}},s:function(){var _=this[S];!_.J&&_.I&&h.a.P(_.I,function(b,w){w.s&&w.s()}),_.l&&_.Rb&&h.a.K.yb(_.l,_.Rb),_.I=e,_.V=0,_.ra=!0,_.sa=!1,_.ka=!1,_.J=!1,_.l=e,_.Sa=e,_.Wc=e,this.Nc||(_.nb=e)}},D={Qa:function(_){var b=this,w=b[S];if(!w.ra&&w.J&&_=="change"){if(w.J=!1,w.sa||b.Xa())w.I=null,w.V=0,b.ha()&&b.Gb();else{var I=[];h.a.P(w.I,function(R,F){I[F.Ka]=R}),h.a.D(I,function(R,F){var k=w.I[R],V=b.$c(k.da);V.Ka=F,V.La=k.La,w.I[R]=V}),b.Xa()&&b.ha()&&b.Gb()}w.ra||b.notifySubscribers(w.X,"awake")}},hb:function(_){var b=this[S];b.ra||_!="change"||this.Wa("change")||(h.a.P(b.I,function(w,I){I.s&&(b.I[w]={da:I.da,Ka:I.Ka,La:I.La},I.s())}),b.J=!0,this.notifySubscribers(e,"asleep"))},ob:function(){var _=this[S];return _.J&&(_.sa||this.Xa())&&this.ha(),h.T.fn.ob.call(this)}},O={Qa:function(_){_!="change"&&_!="beforeChange"||this.v()}};h.a.Ba&&h.a.setPrototypeOf(v,h.T.fn);var M=h.ta.Ma;v[M]=h.o,h.Oc=function(_){return typeof _=="function"&&_[M]===v[M]},h.Fd=function(_){return h.Oc(_)&&_[S]&&_[S].wb},h.b("computed",h.o),h.b("dependentObservable",h.o),h.b("isComputed",h.Oc),h.b("isPureComputed",h.Fd),h.b("computed.fn",v),h.L(v,"peek",v.v),h.L(v,"dispose",v.s),h.L(v,"isActive",v.ja),h.L(v,"getDependenciesCount",v.qa),h.L(v,"getDependencies",v.Va),h.xb=function(_,b){return typeof _=="function"?h.o(_,b,{pure:!0}):(_=h.a.extend({},_),_.pure=!0,h.o(_,b))},h.b("pureComputed",h.xb),function(){function _(I,R,F){if(F=F||new w,I=R(I),typeof I!="object"||I===null||I===e||I instanceof RegExp||I instanceof Date||I instanceof String||I instanceof Number||I instanceof Boolean)return I;var k=I instanceof Array?[]:{};return F.save(I,k),b(I,function(V){var G=R(I[V]);switch(typeof G){case"boolean":case"number":case"string":case"function":k[V]=G;break;case"object":case"undefined":var U=F.get(G);k[V]=U!==e?U:_(G,R,F)}}),k}function b(I,R){if(I instanceof Array){for(var F=0;F<I.length;F++)R(F);typeof I.toJSON=="function"&&R("toJSON")}else for(F in I)R(F)}function w(){this.keys=[],this.values=[]}h.ad=function(I){if(arguments.length==0)throw Error("When calling ko.toJS, pass the object you want to convert.");return _(I,function(R){for(var F=0;h.O(R)&&10>F;F++)R=R();return R})},h.toJSON=function(I,R,F){return I=h.ad(I),h.a.hc(I,R,F)},w.prototype={constructor:w,save:function(I,R){var F=h.a.A(this.keys,I);0<=F?this.values[F]=R:(this.keys.push(I),this.values.push(R))},get:function(I){return I=h.a.A(this.keys,I),0<=I?this.values[I]:e}}}(),h.b("toJS",h.ad),h.b("toJSON",h.toJSON),h.Wd=function(_,b,w){function I(R){var F=h.xb(_,w).extend({ma:"always"}),k=F.subscribe(function(V){V&&(k.s(),R(V))});return F.notifySubscribers(F.v()),k}return typeof Promise!="function"||b?I(b.bind(w)):new Promise(I)},h.b("when",h.Wd),function(){h.w={M:function(_){switch(h.a.R(_)){case"option":return _.__ko__hasDomDataOptionValue__===!0?h.a.g.get(_,h.c.options.$b):7>=h.a.W?_.getAttributeNode("value")&&_.getAttributeNode("value").specified?_.value:_.text:_.value;case"select":return 0<=_.selectedIndex?h.w.M(_.options[_.selectedIndex]):e;default:return _.value}},cb:function(_,b,w){switch(h.a.R(_)){case"option":typeof b=="string"?(h.a.g.set(_,h.c.options.$b,e),"__ko__hasDomDataOptionValue__"in _&&delete _.__ko__hasDomDataOptionValue__,_.value=b):(h.a.g.set(_,h.c.options.$b,b),_.__ko__hasDomDataOptionValue__=!0,_.value=typeof b=="number"?b:"");break;case"select":(b===""||b===null)&&(b=e);for(var I=-1,R=0,F=_.options.length,k;R<F;++R)if(k=h.w.M(_.options[R]),k==b||k===""&&b===e){I=R;break}(w||0<=I||b===e&&1<_.size)&&(_.selectedIndex=I,h.a.W===6&&h.a.setTimeout(function(){_.selectedIndex=I},0));break;default:(b===null||b===e)&&(b=""),_.value=b}}}}(),h.b("selectExtensions",h.w),h.b("selectExtensions.readValue",h.w.M),h.b("selectExtensions.writeValue",h.w.cb),h.m=function(){function _(V){V=h.a.Db(V),V.charCodeAt(0)===123&&(V=V.slice(1,-1)),V+=` +,`;var G=[],U=V.match(I),q,Y=[],Q=0;if(1<U.length){for(var W=0,K;K=U[W];++W){var J=K.charCodeAt(0);if(J===44){if(0>=Q){G.push(q&&Y.length?{key:q,value:Y.join("")}:{unknown:q||Y.join("")}),q=Q=0,Y=[];continue}}else if(J===58){if(!Q&&!q&&Y.length===1){q=Y.pop();continue}}else{if(J===47&&1<K.length&&(K.charCodeAt(1)===47||K.charCodeAt(1)===42))continue;J===47&&W&&1<K.length?(J=U[W-1].match(R))&&!F[J[0]]&&(V=V.substr(V.indexOf(K)+1),U=V.match(I),W=-1,K="/"):J===40||J===123||J===91?++Q:J===41||J===125||J===93?--Q:q||Y.length||J!==34&&J!==39||(K=K.slice(1,-1))}Y.push(K)}if(0<Q)throw Error("Unbalanced parentheses, braces, or brackets")}return G}var b=["true","false","null","undefined"],w=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,I=RegExp(`"(?:\\\\.|[^"])*"|'(?:\\\\.|[^'])*'|\`(?:\\\\.|[^\`])*\`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.* +|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,"'\`{}()/:[\\]]*[^\\s,"'\`{}()/:[\\]]|[^\\s]`,"g"),R=/[\])"'A-Za-z0-9_$]+$/,F={in:1,return:1,typeof:1},k={};return{Ra:[],wa:k,ac:_,vb:function(V,G){function U(J,_e){var xe;if(!W){var se=h.getBindingHandler(J);if(se&&se.preprocess&&!(_e=se.preprocess(_e,J,U)))return;(se=k[J])&&(xe=_e,0<=h.a.A(b,xe)?xe=!1:(se=xe.match(w),xe=se===null?!1:se[1]?"Object("+se[1]+")"+se[2]:xe),se=xe),se&&Y.push("'"+(typeof k[J]=="string"?k[J]:J)+"':function(_z){"+xe+"=_z}")}Q&&(_e="function(){return "+_e+" }"),q.push("'"+J+"':"+_e)}G=G||{};var q=[],Y=[],Q=G.valueAccessors,W=G.bindingParams,K=typeof V=="string"?_(V):V;return h.a.D(K,function(J){U(J.key||J.unknown,J.value)}),Y.length&&U("_ko_property_writers","{"+Y.join(",")+" }"),q.join(",")},Id:function(V,G){for(var U=0;U<V.length;U++)if(V[U].key==G)return!0;return!1},eb:function(V,G,U,q,Y){V&&h.O(V)?!h.Za(V)||Y&&V.v()===q||V(q):(V=G.get("_ko_property_writers"))&&V[U]&&V[U](q)}}}(),h.b("expressionRewriting",h.m),h.b("expressionRewriting.bindingRewriteValidators",h.m.Ra),h.b("expressionRewriting.parseObjectLiteral",h.m.ac),h.b("expressionRewriting.preProcessBindings",h.m.vb),h.b("expressionRewriting._twoWayBindings",h.m.wa),h.b("jsonExpressionRewriting",h.m),h.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",h.m.vb),function(){function _(U){return U.nodeType==8&&F.test(R?U.text:U.nodeValue)}function b(U){return U.nodeType==8&&k.test(R?U.text:U.nodeValue)}function w(U,q){for(var Y=U,Q=1,W=[];Y=Y.nextSibling;){if(b(Y)&&(h.a.g.set(Y,G,!0),Q--,Q===0))return W;W.push(Y),_(Y)&&Q++}if(!q)throw Error("Cannot find closing comment tag to match: "+U.nodeValue);return null}function I(U,q){var Y=w(U,q);return Y?0<Y.length?Y[Y.length-1].nextSibling:U.nextSibling:null}var R=n&&n.createComment("test").text==="<!--test-->",F=R?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,k=R?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,V={ul:!0,ol:!0},G="__ko_matchedEndComment__";h.h={ea:{},childNodes:function(U){return _(U)?w(U):U.childNodes},Ea:function(U){if(_(U)){U=h.h.childNodes(U);for(var q=0,Y=U.length;q<Y;q++)h.removeNode(U[q])}else h.a.Tb(U)},va:function(U,q){if(_(U)){h.h.Ea(U);for(var Y=U.nextSibling,Q=0,W=q.length;Q<W;Q++)Y.parentNode.insertBefore(q[Q],Y)}else h.a.va(U,q)},Vc:function(U,q){var Y;_(U)?(Y=U.nextSibling,U=U.parentNode):Y=U.firstChild,Y?q!==Y&&U.insertBefore(q,Y):U.appendChild(q)},Wb:function(U,q,Y){Y?(Y=Y.nextSibling,_(U)&&(U=U.parentNode),Y?q!==Y&&U.insertBefore(q,Y):U.appendChild(q)):h.h.Vc(U,q)},firstChild:function(U){if(_(U))return!U.nextSibling||b(U.nextSibling)?null:U.nextSibling;if(U.firstChild&&b(U.firstChild))throw Error("Found invalid end comment, as the first child of "+U);return U.firstChild},nextSibling:function(U){if(_(U)&&(U=I(U)),U.nextSibling&&b(U.nextSibling)){var q=U.nextSibling;if(b(q)&&!h.a.g.get(q,G))throw Error("Found end comment without a matching opening comment, as child of "+U);return null}return U.nextSibling},Cd:_,Vd:function(U){return(U=(R?U.text:U.nodeValue).match(F))?U[1]:null},Sc:function(U){if(V[h.a.R(U)]){var q=U.firstChild;if(q)do if(q.nodeType===1){var Y;Y=q.firstChild;var Q=null;if(Y)do if(Q)Q.push(Y);else if(_(Y)){var W=I(Y,!0);W?Y=W:Q=[Y]}else b(Y)&&(Q=[Y]);while(Y=Y.nextSibling);if(Y=Q)for(Q=q.nextSibling,W=0;W<Y.length;W++)Q?U.insertBefore(Y[W],Q):U.appendChild(Y[W])}while(q=q.nextSibling)}}}}(),h.b("virtualElements",h.h),h.b("virtualElements.allowedBindings",h.h.ea),h.b("virtualElements.emptyNode",h.h.Ea),h.b("virtualElements.insertAfter",h.h.Wb),h.b("virtualElements.prepend",h.h.Vc),h.b("virtualElements.setDomNodeChildren",h.h.va),function(){h.ga=function(){this.nd={}},h.a.extend(h.ga.prototype,{nodeHasBindings:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind")!=null||h.j.getComponentNameForNode(_);case 8:return h.h.Cd(_);default:return!1}},getBindings:function(_,b){var w=this.getBindingsString(_,b),w=w?this.parseBindingsString(w,b,_):null;return h.j.tc(w,_,b,!1)},getBindingAccessors:function(_,b){var w=this.getBindingsString(_,b),w=w?this.parseBindingsString(w,b,_,{valueAccessors:!0}):null;return h.j.tc(w,_,b,!0)},getBindingsString:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind");case 8:return h.h.Vd(_);default:return null}},parseBindingsString:function(_,b,w,I){try{var R=this.nd,F=_+(I&&I.valueAccessors||""),k;if(!(k=R[F])){var V,G="with($context){with($data||{}){return{"+h.m.vb(_,I)+"}}}";V=new Function("$context","$element",G),k=R[F]=V}return k(b,w)}catch(U){throw U.message=`Unable to parse bindings. +Bindings value: `+_+` +Message: `+U.message,U}}}),h.ga.instance=new h.ga}(),h.b("bindingProvider",h.ga),function(){function _(se){var Ae=(se=h.a.g.get(se,xe))&&se.N;Ae&&(se.N=null,Ae.Tc())}function b(se,Ae,me){this.node=se,this.yc=Ae,this.kb=[],this.H=!1,Ae.N||h.a.K.za(se,_),me&&me.N&&(me.N.kb.push(se),this.Kb=me)}function w(se){return function(){return se}}function I(se){return se()}function R(se){return h.a.Ga(h.u.G(se),function(Ae,me){return function(){return se()[me]}})}function F(se,Ae,me){return typeof se=="function"?R(se.bind(null,Ae,me)):h.a.Ga(se,w)}function k(se,Ae){return R(this.getBindings.bind(this,se,Ae))}function V(se,Ae){var me=h.h.firstChild(Ae);if(me){var Se,Ie=h.ga.instance,Ve=Ie.preprocessNode;if(Ve){for(;Se=me;)me=h.h.nextSibling(Se),Ve.call(Ie,Se);me=h.h.firstChild(Ae)}for(;Se=me;)me=h.h.nextSibling(Se),G(se,Se)}h.i.ma(Ae,h.i.H)}function G(se,Ae){var me=se,Se=Ae.nodeType===1;Se&&h.h.Sc(Ae),(Se||h.ga.instance.nodeHasBindings(Ae))&&(me=q(Ae,null,se).bindingContextForDescendants),me&&!J[h.a.R(Ae)]&&V(me,Ae)}function U(se){var Ae=[],me={},Se=[];return h.a.P(se,function Ie(Ve){if(!me[Ve]){var Re=h.getBindingHandler(Ve);Re&&(Re.after&&(Se.push(Ve),h.a.D(Re.after,function(ke){if(se[ke]){if(h.a.A(Se,ke)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+Se.join(", "));Ie(ke)}}),Se.length--),Ae.push({key:Ve,Mc:Re})),me[Ve]=!0}}),Ae}function q(se,Ae,me){var Se=h.a.g.Ub(se,xe,{}),Ie=Se.hd;if(!Ae){if(Ie)throw Error("You cannot apply bindings multiple times to the same element.");Se.hd=!0}Ie||(Se.context=me),Se.Zb||(Se.Zb={});var Ve;if(Ae&&typeof Ae!="function")Ve=Ae;else{var Re=h.ga.instance,ke=Re.getBindingAccessors||k,dt=h.$(function(){return(Ve=Ae?Ae(me,se):ke.call(Re,se,me))&&(me[Q]&&me[Q](),me[K]&&me[K]()),Ve},null,{l:se});Ve&&dt.ja()||(dt=null)}var pt=me,rt;if(Ve){var fn=function(){return h.a.Ga(dt?dt():Ve,I)},Bn=dt?function(jt){return function(){return I(dt()[jt])}}:function(jt){return Ve[jt]};fn.get=function(jt){return Ve[jt]&&I(Bn(jt))},fn.has=function(jt){return jt in Ve},h.i.H in Ve&&h.i.subscribe(se,h.i.H,function(){var jt=(0,Ve[h.i.H])();if(jt){var Ze=h.h.childNodes(se);Ze.length&&jt(Ze,h.Ec(Ze[0]))}}),h.i.pa in Ve&&(pt=h.i.Cb(se,me),h.i.subscribe(se,h.i.pa,function(){var jt=(0,Ve[h.i.pa])();jt&&h.h.firstChild(se)&&jt(se)})),Se=U(Ve),h.a.D(Se,function(jt){var Ze=jt.Mc.init,pe=jt.Mc.update,Ee=jt.key;if(se.nodeType===8&&!h.h.ea[Ee])throw Error("The binding '"+Ee+"' cannot be used with virtual elements");try{typeof Ze=="function"&&h.u.G(function(){var je=Ze(se,Bn(Ee),fn,pt.$data,pt);if(je&&je.controlsDescendantBindings){if(rt!==e)throw Error("Multiple bindings ("+rt+" and "+Ee+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");rt=Ee}}),typeof pe=="function"&&h.$(function(){pe(se,Bn(Ee),fn,pt.$data,pt)},null,{l:se})}catch(je){throw je.message='Unable to process binding "'+Ee+": "+Ve[Ee]+`" +Message: `+je.message,je}})}return Se=rt===e,{shouldBindDescendants:Se,bindingContextForDescendants:Se&&pt}}function Y(se,Ae){return se&&se instanceof h.fa?se:new h.fa(se,e,e,Ae)}var Q=h.a.Da("_subscribable"),W=h.a.Da("_ancestorBindingInfo"),K=h.a.Da("_dataDependency");h.c={};var J={script:!0,textarea:!0,template:!0};h.getBindingHandler=function(se){return h.c[se]};var _e={};h.fa=function(se,Ae,me,Se,Ie){function Ve(){var Bn=pt?dt():dt,jt=h.a.f(Bn);return Ae?(h.a.extend(Re,Ae),W in Ae&&(Re[W]=Ae[W])):(Re.$parents=[],Re.$root=jt,Re.ko=h),Re[Q]=rt,ke?jt=Re.$data:(Re.$rawData=Bn,Re.$data=jt),me&&(Re[me]=jt),Se&&Se(Re,Ae,jt),Ae&&Ae[Q]&&!h.S.o().Vb(Ae[Q])&&Ae[Q](),fn&&(Re[K]=fn),Re.$data}var Re=this,ke=se===_e,dt=ke?e:se,pt=typeof dt=="function"&&!h.O(dt),rt,fn=Ie&&Ie.dataDependency;Ie&&Ie.exportDependencies?Ve():(rt=h.xb(Ve),rt.v(),rt.ja()?rt.equalityComparer=null:Re[Q]=e)},h.fa.prototype.createChildContext=function(se,Ae,me,Se){if(!Se&&Ae&&typeof Ae=="object"&&(Se=Ae,Ae=Se.as,me=Se.extend),Ae&&Se&&Se.noChildContext){var Ie=typeof se=="function"&&!h.O(se);return new h.fa(_e,this,null,function(Ve){me&&me(Ve),Ve[Ae]=Ie?se():se},Se)}return new h.fa(se,this,Ae,function(Ve,Re){Ve.$parentContext=Re,Ve.$parent=Re.$data,Ve.$parents=(Re.$parents||[]).slice(0),Ve.$parents.unshift(Ve.$parent),me&&me(Ve)},Se)},h.fa.prototype.extend=function(se,Ae){return new h.fa(_e,this,null,function(me){h.a.extend(me,typeof se=="function"?se(me):se)},Ae)};var xe=h.a.g.Z();b.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)},b.prototype.sd=function(se){h.a.Pa(this.kb,se),!this.kb.length&&this.H&&this.Cc()},b.prototype.Cc=function(){this.H=!0,this.yc.N&&!this.kb.length&&(this.yc.N=null,h.a.K.yb(this.node,_),h.i.ma(this.node,h.i.pa),this.Tc())},h.i={H:"childrenComplete",pa:"descendantsComplete",subscribe:function(se,Ae,me,Se,Ie){var Ve=h.a.g.Ub(se,xe,{});return Ve.Fa||(Ve.Fa=new h.T),Ie&&Ie.notifyImmediately&&Ve.Zb[Ae]&&h.u.G(me,Se,[se]),Ve.Fa.subscribe(me,Se,Ae)},ma:function(se,Ae){var me=h.a.g.get(se,xe);if(me&&(me.Zb[Ae]=!0,me.Fa&&me.Fa.notifySubscribers(se,Ae),Ae==h.i.H)){if(me.N)me.N.Cc();else if(me.N===e&&me.Fa&&me.Fa.Wa(h.i.pa))throw Error("descendantsComplete event not supported for bindings on this node")}},Cb:function(se,Ae){var me=h.a.g.Ub(se,xe,{});return me.N||(me.N=new b(se,me,Ae[W])),Ae[W]==me?Ae:Ae.extend(function(Se){Se[W]=me})}},h.Td=function(se){return(se=h.a.g.get(se,xe))&&se.context},h.ib=function(se,Ae,me){return se.nodeType===1&&h.h.Sc(se),q(se,Ae,Y(me))},h.ld=function(se,Ae,me){return me=Y(me),h.ib(se,F(Ae,me,se),me)},h.Oa=function(se,Ae){Ae.nodeType!==1&&Ae.nodeType!==8||V(Y(se),Ae)},h.vc=function(se,Ae,me){if(!o&&t.jQuery&&(o=t.jQuery),2>arguments.length){if(Ae=n.body,!Ae)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!Ae||Ae.nodeType!==1&&Ae.nodeType!==8)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");G(Y(se,me),Ae)},h.Dc=function(se){return!se||se.nodeType!==1&&se.nodeType!==8?e:h.Td(se)},h.Ec=function(se){return(se=h.Dc(se))?se.$data:e},h.b("bindingHandlers",h.c),h.b("bindingEvent",h.i),h.b("bindingEvent.subscribe",h.i.subscribe),h.b("bindingEvent.startPossiblyAsyncContentBinding",h.i.Cb),h.b("applyBindings",h.vc),h.b("applyBindingsToDescendants",h.Oa),h.b("applyBindingAccessorsToNode",h.ib),h.b("applyBindingsToNode",h.ld),h.b("contextFor",h.Dc),h.b("dataFor",h.Ec)}(),function(_){function b(k,V){var G=Object.prototype.hasOwnProperty.call(R,k)?R[k]:_,U;G?G.subscribe(V):(G=R[k]=new h.T,G.subscribe(V),w(k,function(q,Y){var Q=!(!Y||!Y.synchronous);F[k]={definition:q,Gd:Q},delete R[k],U||Q?G.notifySubscribers(q):h.na.zb(function(){G.notifySubscribers(q)})}),U=!0)}function w(k,V){I("getConfig",[k],function(G){G?I("loadComponent",[k,G],function(U){V(U,G)}):V(null,null)})}function I(k,V,G,U){U||(U=h.j.loaders.slice(0));var q=U.shift();if(q){var Y=q[k];if(Y){var Q=!1;if(Y.apply(q,V.concat(function(W){Q?G(null):W!==null?G(W):I(k,V,G,U)}))!==_&&(Q=!0,!q.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else I(k,V,G,U)}else G(null)}var R={},F={};h.j={get:function(k,V){var G=Object.prototype.hasOwnProperty.call(F,k)?F[k]:_;G?G.Gd?h.u.G(function(){V(G.definition)}):h.na.zb(function(){V(G.definition)}):b(k,V)},Bc:function(k){delete F[k]},oc:I},h.j.loaders=[],h.b("components",h.j),h.b("components.get",h.j.get),h.b("components.clearCachedDefinition",h.j.Bc)}(),function(){function _(G,U,q,Y){function Q(){--K===0&&Y(W)}var W={},K=2,J=q.template;q=q.viewModel,J?R(U,J,function(_e){h.j.oc("loadTemplate",[G,_e],function(xe){W.template=xe,Q()})}):Q(),q?R(U,q,function(_e){h.j.oc("loadViewModel",[G,_e],function(xe){W[V]=xe,Q()})}):Q()}function b(G,U,q){if(typeof U=="function")q(function(Q){return new U(Q)});else if(typeof U[V]=="function")q(U[V]);else if("instance"in U){var Y=U.instance;q(function(){return Y})}else"viewModel"in U?b(G,U.viewModel,q):G("Unknown viewModel value: "+U)}function w(G){switch(h.a.R(G)){case"script":return h.a.ua(G.text);case"textarea":return h.a.ua(G.value);case"template":if(I(G.content))return h.a.Ca(G.content.childNodes)}return h.a.Ca(G.childNodes)}function I(G){return t.DocumentFragment?G instanceof DocumentFragment:G&&G.nodeType===11}function R(G,U,q){typeof U.require=="string"?a||t.require?(a||t.require)([U.require],function(Y){Y&&typeof Y=="object"&&Y.Xd&&Y.default&&(Y=Y.default),q(Y)}):G("Uses require, but no AMD loader is present"):q(U)}function F(G){return function(U){throw Error("Component '"+G+"': "+U)}}var k={};h.j.register=function(G,U){if(!U)throw Error("Invalid configuration for "+G);if(h.j.tb(G))throw Error("Component "+G+" is already registered");k[G]=U},h.j.tb=function(G){return Object.prototype.hasOwnProperty.call(k,G)},h.j.unregister=function(G){delete k[G],h.j.Bc(G)},h.j.Fc={getConfig:function(G,U){U(h.j.tb(G)?k[G]:null)},loadComponent:function(G,U,q){var Y=F(G);R(Y,U,function(Q){_(G,Y,Q,q)})},loadTemplate:function(G,U,q){if(G=F(G),typeof U=="string")q(h.a.ua(U));else if(U instanceof Array)q(U);else if(I(U))q(h.a.la(U.childNodes));else if(U.element)if(U=U.element,t.HTMLElement?U instanceof HTMLElement:U&&U.tagName&&U.nodeType===1)q(w(U));else if(typeof U=="string"){var Y=n.getElementById(U);Y?q(w(Y)):G("Cannot find element with ID "+U)}else G("Unknown element type: "+U);else G("Unknown template value: "+U)},loadViewModel:function(G,U,q){b(F(G),U,q)}};var V="createViewModel";h.b("components.register",h.j.register),h.b("components.isRegistered",h.j.tb),h.b("components.unregister",h.j.unregister),h.b("components.defaultLoader",h.j.Fc),h.j.loaders.push(h.j.Fc),h.j.dd=k}(),function(){function _(w,I){var R=w.getAttribute("params");if(R){var R=b.parseBindingsString(R,I,w,{valueAccessors:!0,bindingParams:!0}),R=h.a.Ga(R,function(V){return h.o(V,null,{l:w})}),F=h.a.Ga(R,function(V){var G=V.v();return V.ja()?h.o({read:function(){return h.a.f(V())},write:h.Za(G)&&function(U){V()(U)},l:w}):G});return Object.prototype.hasOwnProperty.call(F,"$raw")||(F.$raw=R),F}return{$raw:{}}}h.j.getComponentNameForNode=function(w){var I=h.a.R(w);if(h.j.tb(I)&&(I.indexOf("-")!=-1||""+w=="[object HTMLUnknownElement]"||8>=h.a.W&&w.tagName===I))return I},h.j.tc=function(w,I,R,F){if(I.nodeType===1){var k=h.j.getComponentNameForNode(I);if(k){if(w=w||{},w.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var V={name:k,params:_(I,R)};w.component=F?function(){return V}:V}}return w};var b=new h.ga;9>h.a.W&&(h.j.register=function(w){return function(I){return w.apply(this,arguments)}}(h.j.register),n.createDocumentFragment=function(w){return function(){var I=w(),R=h.j.dd,F;for(F in R);return I}}(n.createDocumentFragment))}(),function(){function _(I,R,F){if(R=R.template,!R)throw Error("Component '"+I+"' has no template");I=h.a.Ca(R),h.h.va(F,I)}function b(I,R,F){var k=I.createViewModel;return k?k.call(I,R,F):R}var w=0;h.c.component={init:function(I,R,F,k,V){function G(){var W=U&&U.dispose;typeof W=="function"&&W.call(U),Y&&Y.s(),q=U=Y=null}var U,q,Y,Q=h.a.la(h.h.childNodes(I));return h.h.Ea(I),h.a.K.za(I,G),h.o(function(){var W=h.a.f(R()),K,J;if(typeof W=="string"?K=W:(K=h.a.f(W.name),J=h.a.f(W.params)),!K)throw Error("No component name specified");var _e=h.i.Cb(I,V),xe=q=++w;h.j.get(K,function(se){if(q===xe){if(G(),!se)throw Error("Unknown component '"+K+"'");_(K,se,I);var Ae=b(se,J,{element:I,templateNodes:Q});se=_e.createChildContext(Ae,{extend:function(me){me.$component=Ae,me.$componentTemplateNodes=Q}}),Ae&&Ae.koDescendantsComplete&&(Y=h.i.subscribe(I,h.i.pa,Ae.koDescendantsComplete,Ae)),U=Ae,h.Oa(se,I)}})},null,{l:I}),{controlsDescendantBindings:!0}}},h.h.ea.component=!0}();var L={class:"className",for:"htmlFor"};h.c.attr={update:function(_,b){var w=h.a.f(b())||{};h.a.P(w,function(I,R){R=h.a.f(R);var F=I.indexOf(":"),F="lookupNamespaceURI"in _&&0<F&&_.lookupNamespaceURI(I.substr(0,F)),k=R===!1||R===null||R===e;k?F?_.removeAttributeNS(F,I):_.removeAttribute(I):R=R.toString(),8>=h.a.W&&I in L?(I=L[I],k?_.removeAttribute(I):_[I]=R):k||(F?_.setAttributeNS(F,I,R):_.setAttribute(I,R)),I==="name"&&h.a.Yc(_,k?"":R)})}},function(){h.c.checked={after:["value","attr"],init:function(_,b,w){function I(){var W=_.checked,K=F();if(!h.S.Ya()&&(W||!V&&!h.S.qa())){var J=h.u.G(b);if(U){var _e=q?J.v():J,xe=Q;Q=K,xe!==K?W&&(h.a.Na(_e,K,!0),h.a.Na(_e,xe,!1)):h.a.Na(_e,K,W),q&&h.Za(J)&&J(_e)}else k&&(K===e?K=W:W||(K=e)),h.m.eb(J,w,"checked",K,!0)}}function R(){var W=h.a.f(b()),K=F();U?(_.checked=0<=h.a.A(W,K),Q=K):_.checked=k&&K===e?!!W:F()===W}var F=h.xb(function(){if(w.has("checkedValue"))return h.a.f(w.get("checkedValue"));if(Y)return w.has("value")?h.a.f(w.get("value")):_.value}),k=_.type=="checkbox",V=_.type=="radio";if(k||V){var G=b(),U=k&&h.a.f(G)instanceof Array,q=!(U&&G.push&&G.splice),Y=V||U,Q=U?F():e;V&&!_.name&&h.c.uniqueName.init(_,function(){return!0}),h.o(I,null,{l:_}),h.a.B(_,"click",I),h.o(R,null,{l:_}),G=e}}},h.m.wa.checked=!0,h.c.checkedValue={update:function(_,b){_.value=h.a.f(b())}}}(),h.c.class={update:function(_,b){var w=h.a.Db(h.a.f(b()));h.a.Eb(_,_.__ko__cssValue,!1),_.__ko__cssValue=w,h.a.Eb(_,w,!0)}},h.c.css={update:function(_,b){var w=h.a.f(b());w!==null&&typeof w=="object"?h.a.P(w,function(I,R){R=h.a.f(R),h.a.Eb(_,I,R)}):h.c.class.update(_,b)}},h.c.enable={update:function(_,b){var w=h.a.f(b());w&&_.disabled?_.removeAttribute("disabled"):w||_.disabled||(_.disabled=!0)}},h.c.disable={update:function(_,b){h.c.enable.update(_,function(){return!h.a.f(b())})}},h.c.event={init:function(_,b,w,I,R){var F=b()||{};h.a.P(F,function(k){typeof k=="string"&&h.a.B(_,k,function(V){var G,U=b()[k];if(U){try{var q=h.a.la(arguments);I=R.$data,q.unshift(I),G=U.apply(I,q)}finally{G!==!0&&(V.preventDefault?V.preventDefault():V.returnValue=!1)}w.get(k+"Bubble")===!1&&(V.cancelBubble=!0,V.stopPropagation&&V.stopPropagation())}})})}},h.c.foreach={Rc:function(_){return function(){var b=_(),w=h.a.bc(b);return!w||typeof w.length=="number"?{foreach:b,templateEngine:h.ba.Ma}:(h.a.f(b),{foreach:w.data,as:w.as,noChildContext:w.noChildContext,includeDestroyed:w.includeDestroyed,afterAdd:w.afterAdd,beforeRemove:w.beforeRemove,afterRender:w.afterRender,beforeMove:w.beforeMove,afterMove:w.afterMove,templateEngine:h.ba.Ma})}},init:function(_,b){return h.c.template.init(_,h.c.foreach.Rc(b))},update:function(_,b,w,I,R){return h.c.template.update(_,h.c.foreach.Rc(b),w,I,R)}},h.m.Ra.foreach=!1,h.h.ea.foreach=!0,h.c.hasfocus={init:function(_,b,w){function I(k){_.__ko_hasfocusUpdating=!0;var V=_.ownerDocument;if("activeElement"in V){var G;try{G=V.activeElement}catch{G=V.body}k=G===_}V=b(),h.m.eb(V,w,"hasfocus",k,!0),_.__ko_hasfocusLastValue=k,_.__ko_hasfocusUpdating=!1}var R=I.bind(null,!0),F=I.bind(null,!1);h.a.B(_,"focus",R),h.a.B(_,"focusin",R),h.a.B(_,"blur",F),h.a.B(_,"focusout",F),_.__ko_hasfocusLastValue=!1},update:function(_,b){var w=!!h.a.f(b());_.__ko_hasfocusUpdating||_.__ko_hasfocusLastValue===w||(w?_.focus():_.blur(),!w&&_.__ko_hasfocusLastValue&&_.ownerDocument.body.focus(),h.u.G(h.a.Fb,null,[_,w?"focusin":"focusout"]))}},h.m.wa.hasfocus=!0,h.c.hasFocus=h.c.hasfocus,h.m.wa.hasFocus="hasfocus",h.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(_,b){h.a.fc(_,b())}},function(){function _(b,w,I){h.c[b]={init:function(R,F,k,V,G){var U,q,Y={},Q,W,K;if(w){V=k.get("as");var J=k.get("noChildContext");K=!(V&&J),Y={as:V,noChildContext:J,exportDependencies:K}}return W=(Q=k.get("completeOn")=="render")||k.has(h.i.pa),h.o(function(){var _e=h.a.f(F()),xe=!I!=!_e,se=!q,Ae;(K||xe!==U)&&(W&&(G=h.i.Cb(R,G)),xe&&((!w||K)&&(Y.dataDependency=h.S.o()),Ae=w?G.createChildContext(typeof _e=="function"?_e:F,Y):h.S.qa()?G.extend(null,Y):G),se&&h.S.qa()&&(q=h.a.Ca(h.h.childNodes(R),!0)),xe?(se||h.h.va(R,h.a.Ca(q)),h.Oa(Ae,R)):(h.h.Ea(R),Q||h.i.ma(R,h.i.H)),U=xe)},null,{l:R}),{controlsDescendantBindings:!0}}},h.m.Ra[b]=!1,h.h.ea[b]=!0}_("if"),_("ifnot",!1,!0),_("with",!0)}(),h.c.let={init:function(_,b,w,I,R){return b=R.extend(b),h.Oa(b,_),{controlsDescendantBindings:!0}}},h.h.ea.let=!0;var N={};h.c.options={init:function(_){if(h.a.R(_)!=="select")throw Error("options binding applies only to SELECT elements");for(;0<_.length;)_.remove(0);return{controlsDescendantBindings:!0}},update:function(_,b,w){function I(){return h.a.jb(_.options,function(J){return J.selected})}function R(J,_e,xe){var se=typeof _e;return se=="function"?_e(J):se=="string"?J[_e]:xe}function F(J,_e){if(W&&U)h.i.ma(_,h.i.H);else if(Q.length){var xe=0<=h.a.A(Q,h.w.M(_e[0]));h.a.Zc(_e[0],xe),W&&!xe&&h.u.G(h.a.Fb,null,[_,"change"])}}var k=_.multiple,V=_.length!=0&&k?_.scrollTop:null,G=h.a.f(b()),U=w.get("valueAllowUnset")&&w.has("value"),q=w.get("optionsIncludeDestroyed");b={};var Y,Q=[];U||(k?Q=h.a.Mb(I(),h.w.M):0<=_.selectedIndex&&Q.push(h.w.M(_.options[_.selectedIndex]))),G&&(typeof G.length>"u"&&(G=[G]),Y=h.a.jb(G,function(J){return q||J===e||J===null||!h.a.f(J._destroy)}),w.has("optionsCaption")&&(G=h.a.f(w.get("optionsCaption")),G!==null&&G!==e&&Y.unshift(N)));var W=!1;if(b.beforeRemove=function(J){_.removeChild(J)},G=F,w.has("optionsAfterRender")&&typeof w.get("optionsAfterRender")=="function"&&(G=function(J,_e){F(0,_e),h.u.G(w.get("optionsAfterRender"),null,[_e[0],J!==N?J:e])}),h.a.ec(_,Y,function(J,_e,xe){return xe.length&&(Q=!U&&xe[0].selected?[h.w.M(xe[0])]:[],W=!0),_e=_.ownerDocument.createElement("option"),J===N?(h.a.Bb(_e,w.get("optionsCaption")),h.w.cb(_e,e)):(xe=R(J,w.get("optionsValue"),J),h.w.cb(_e,h.a.f(xe)),J=R(J,w.get("optionsText"),xe),h.a.Bb(_e,J)),[_e]},b,G),!U){var K;k?K=Q.length&&I().length<Q.length:K=Q.length&&0<=_.selectedIndex?h.w.M(_.options[_.selectedIndex])!==Q[0]:Q.length||0<=_.selectedIndex,K&&h.u.G(h.a.Fb,null,[_,"change"])}(U||h.S.Ya())&&h.i.ma(_,h.i.H),h.a.wd(_),V&&20<Math.abs(V-_.scrollTop)&&(_.scrollTop=V)}},h.c.options.$b=h.a.g.Z(),h.c.selectedOptions={init:function(_,b,w){function I(){var k=b(),V=[];h.a.D(_.getElementsByTagName("option"),function(G){G.selected&&V.push(h.w.M(G))}),h.m.eb(k,w,"selectedOptions",V)}function R(){var k=h.a.f(b()),V=_.scrollTop;k&&typeof k.length=="number"&&h.a.D(_.getElementsByTagName("option"),function(G){var U=0<=h.a.A(k,h.w.M(G));G.selected!=U&&h.a.Zc(G,U)}),_.scrollTop=V}if(h.a.R(_)!="select")throw Error("selectedOptions binding applies only to SELECT elements");var F;h.i.subscribe(_,h.i.H,function(){F?I():(h.a.B(_,"change",I),F=h.o(R,null,{l:_}))},null,{notifyImmediately:!0})},update:function(){}},h.m.wa.selectedOptions=!0,h.c.style={update:function(_,b){var w=h.a.f(b()||{});h.a.P(w,function(I,R){if(R=h.a.f(R),(R===null||R===e||R===!1)&&(R=""),o)o(_).css(I,R);else if(/^--/.test(I))_.style.setProperty(I,R);else{I=I.replace(/-(\w)/g,function(k,V){return V.toUpperCase()});var F=_.style[I];_.style[I]=R,R===F||_.style[I]!=F||isNaN(R)||(_.style[I]=R+"px")}})}},h.c.submit={init:function(_,b,w,I,R){if(typeof b()!="function")throw Error("The value for a submit binding must be a function");h.a.B(_,"submit",function(F){var k,V=b();try{k=V.call(R.$data,_)}finally{k!==!0&&(F.preventDefault?F.preventDefault():F.returnValue=!1)}})}},h.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(_,b){h.a.Bb(_,b())}},h.h.ea.text=!0,function(){if(t&&t.navigator){var _=function(Y){if(Y)return parseFloat(Y[1])},b=t.navigator.userAgent,w,I,R,F,k;(w=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(k=_(b.match(/Edge\/([^ ]+)$/)))||_(b.match(/Chrome\/([^ ]+)/))||(I=_(b.match(/Version\/([^ ]+) Safari/)))||(R=_(b.match(/Firefox\/([^ ]+)/)))||(F=h.a.W||_(b.match(/MSIE ([^ ]+)/)))||(F=_(b.match(/rv:([^ )]+)/)))}if(8<=F&&10>F)var V=h.a.g.Z(),G=h.a.g.Z(),U=function(Y){var Q=this.activeElement;(Q=Q&&h.a.g.get(Q,G))&&Q(Y)},q=function(Y,Q){var W=Y.ownerDocument;h.a.g.get(W,V)||(h.a.g.set(W,V,!0),h.a.B(W,"selectionchange",U)),h.a.g.set(Y,G,Q)};h.c.textInput={init:function(Y,Q,W){function K(Ve,Re){h.a.B(Y,Ve,Re)}function J(){var Ve=h.a.f(Q());(Ve===null||Ve===e)&&(Ve=""),me!==e&&Ve===me?h.a.setTimeout(J,4):Y.value!==Ve&&(Ie=!0,Y.value=Ve,Ie=!1,se=Y.value)}function _e(){Ae||(me=Y.value,Ae=h.a.setTimeout(xe,4))}function xe(){clearTimeout(Ae),me=Ae=e;var Ve=Y.value;se!==Ve&&(se=Ve,h.m.eb(Q(),W,"textInput",Ve))}var se=Y.value,Ae,me,Se=h.a.W==9?_e:xe,Ie=!1;F&&K("keypress",xe),11>F&&K("propertychange",function(Ve){Ie||Ve.propertyName!=="value"||Se(Ve)}),F==8&&(K("keyup",xe),K("keydown",xe)),q&&(q(Y,Se),K("dragend",_e)),(!F||9<=F)&&K("input",Se),5>I&&h.a.R(Y)==="textarea"?(K("keydown",_e),K("paste",_e),K("cut",_e)):11>w?K("keydown",_e):4>R?(K("DOMAutoComplete",xe),K("dragdrop",xe),K("drop",xe)):k&&Y.type==="number"&&K("keydown",_e),K("change",xe),K("blur",xe),h.o(J,null,{l:Y})}},h.m.wa.textInput=!0,h.c.textinput={preprocess:function(Y,Q,W){W("textInput",Y)}}}(),h.c.uniqueName={init:function(_,b){if(b()){var w="ko_unique_"+ ++h.c.uniqueName.rd;h.a.Yc(_,w)}}},h.c.uniqueName.rd=0,h.c.using={init:function(_,b,w,I,R){var F;return w.has("as")&&(F={as:w.get("as"),noChildContext:w.get("noChildContext")}),b=R.createChildContext(b,F),h.Oa(b,_),{controlsDescendantBindings:!0}}},h.h.ea.using=!0,h.c.value={init:function(_,b,w){var I=h.a.R(_),R=I=="input";if(!R||_.type!="checkbox"&&_.type!="radio"){var F=[],k=w.get("valueUpdate"),V=!1,G=null;k&&(typeof k=="string"?F=[k]:F=h.a.wc(k),h.a.Pa(F,"change"));var U=function(){G=null,V=!1;var Q=b(),W=h.w.M(_);h.m.eb(Q,w,"value",W)};!h.a.W||!R||_.type!="text"||_.autocomplete=="off"||_.form&&_.form.autocomplete=="off"||h.a.A(F,"propertychange")!=-1||(h.a.B(_,"propertychange",function(){V=!0}),h.a.B(_,"focus",function(){V=!1}),h.a.B(_,"blur",function(){V&&U()})),h.a.D(F,function(Q){var W=U;h.a.Ud(Q,"after")&&(W=function(){G=h.w.M(_),h.a.setTimeout(U,0)},Q=Q.substring(5)),h.a.B(_,Q,W)});var q;if(q=R&&_.type=="file"?function(){var Q=h.a.f(b());Q===null||Q===e||Q===""?_.value="":h.u.G(U)}:function(){var Q=h.a.f(b()),W=h.w.M(_);G!==null&&Q===G?h.a.setTimeout(q,0):(Q!==W||W===e)&&(I==="select"?(W=w.get("valueAllowUnset"),h.w.cb(_,Q,W),W||Q===h.w.M(_)||h.u.G(U)):h.w.cb(_,Q))},I==="select"){var Y;h.i.subscribe(_,h.i.H,function(){Y?w.get("valueAllowUnset")?q():U():(h.a.B(_,"change",U),Y=h.o(q,null,{l:_}))},null,{notifyImmediately:!0})}else h.a.B(_,"change",U),h.o(q,null,{l:_})}else h.ib(_,{checkedValue:b})},update:function(){}},h.m.wa.value=!0,h.c.visible={update:function(_,b){var w=h.a.f(b()),I=_.style.display!="none";w&&!I?_.style.display="":!w&&I&&(_.style.display="none")}},h.c.hidden={update:function(_,b){h.c.visible.update(_,function(){return!h.a.f(b())})}},function(_){h.c[_]={init:function(b,w,I,R,F){return h.c.event.init.call(this,b,function(){var k={};return k[_]=w(),k},I,R,F)}}}("click"),h.ca=function(){},h.ca.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource")},h.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock")},h.ca.prototype.makeTemplateSource=function(_,b){if(typeof _=="string"){b=b||n;var w=b.getElementById(_);if(!w)throw Error("Cannot find template with ID "+_);return new h.C.F(w)}if(_.nodeType==1||_.nodeType==8)return new h.C.ia(_);throw Error("Unknown template type: "+_)},h.ca.prototype.renderTemplate=function(_,b,w,I){return _=this.makeTemplateSource(_,I),this.renderTemplateSource(_,b,w,I)},h.ca.prototype.isTemplateRewritten=function(_,b){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(_,b).data("isRewritten")},h.ca.prototype.rewriteTemplate=function(_,b,w){_=this.makeTemplateSource(_,w),b=b(_.text()),_.text(b),_.data("isRewritten",!0)},h.b("templateEngine",h.ca),h.kc=function(){function _(I,R,F,k){I=h.m.ac(I);for(var V=h.m.Ra,G=0;G<I.length;G++){var U=I[G].key;if(Object.prototype.hasOwnProperty.call(V,U)){var q=V[U];if(typeof q=="function"){if(U=q(I[G].value))throw Error(U)}else if(!q)throw Error("This template engine does not support the '"+U+"' binding within its templates")}}return F="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+h.m.vb(I,{valueAccessors:!0})+" } })()},'"+F.toLowerCase()+"')",k.createJavaScriptEvaluatorBlock(F)+R}var b=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,w=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(I,R,F){R.isTemplateRewritten(I,F)||R.rewriteTemplate(I,function(k){return h.kc.Ld(k,R)},F)},Ld:function(I,R){return I.replace(b,function(F,k,V,G,U){return _(U,k,V,R)}).replace(w,function(F,k){return _(k,"<!-- ko -->","#comment",R)})},md:function(I,R){return h.aa.Xb(function(F,k){var V=F.nextSibling;V&&V.nodeName.toLowerCase()===R&&h.ib(V,I,k)})}}}(),h.b("__tr_ambtns",h.kc.md),function(){h.C={},h.C.F=function(w){if(this.F=w){var I=h.a.R(w);this.ab=I==="script"?1:I==="textarea"?2:I=="template"&&w.content&&w.content.nodeType===11?3:4}},h.C.F.prototype.text=function(){var w=this.ab===1?"text":this.ab===2?"value":"innerHTML";if(arguments.length==0)return this.F[w];var I=arguments[0];w==="innerHTML"?h.a.fc(this.F,I):this.F[w]=I};var _=h.a.g.Z()+"_";h.C.F.prototype.data=function(w){if(arguments.length===1)return h.a.g.get(this.F,_+w);h.a.g.set(this.F,_+w,arguments[1])};var b=h.a.g.Z();h.C.F.prototype.nodes=function(){var w=this.F;if(arguments.length==0){var I=h.a.g.get(w,b)||{},R=I.lb||(this.ab===3?w.content:this.ab===4?w:e);if(!R||I.jd){var F=this.text();F&&F!==I.bb&&(R=h.a.Md(F,w.ownerDocument),h.a.g.set(w,b,{lb:R,bb:F,jd:!0}))}return R}I=arguments[0],this.ab!==e&&this.text(""),h.a.g.set(w,b,{lb:I})},h.C.ia=function(w){this.F=w},h.C.ia.prototype=new h.C.F,h.C.ia.prototype.constructor=h.C.ia,h.C.ia.prototype.text=function(){if(arguments.length==0){var w=h.a.g.get(this.F,b)||{};return w.bb===e&&w.lb&&(w.bb=w.lb.innerHTML),w.bb}h.a.g.set(this.F,b,{bb:arguments[0]})},h.b("templateSources",h.C),h.b("templateSources.domElement",h.C.F),h.b("templateSources.anonymousTemplate",h.C.ia)}(),function(){function _(G,U,q){var Y;for(U=h.h.nextSibling(U);G&&(Y=G)!==U;)G=h.h.nextSibling(Y),q(Y,G)}function b(G,U){if(G.length){var q=G[0],Y=G[G.length-1],Q=q.parentNode,W=h.ga.instance,K=W.preprocessNode;if(K){if(_(q,Y,function(J,_e){var xe=J.previousSibling,se=K.call(W,J);se&&(J===q&&(q=se[0]||_e),J===Y&&(Y=se[se.length-1]||xe))}),G.length=0,!q)return;q===Y?G.push(q):(G.push(q,Y),h.a.Ua(G,Q))}_(q,Y,function(J){J.nodeType!==1&&J.nodeType!==8||h.vc(U,J)}),_(q,Y,function(J){J.nodeType!==1&&J.nodeType!==8||h.aa.cd(J,[U])}),h.a.Ua(G,Q)}}function w(G){return G.nodeType?G:0<G.length?G[0]:null}function I(G,U,q,Y,Q){Q=Q||{};var W=(G&&w(G)||q||{}).ownerDocument,K=Q.templateEngine||F;if(h.kc.xd(q,K,W),q=K.renderTemplate(q,Y,Q,W),typeof q.length!="number"||0<q.length&&typeof q[0].nodeType!="number")throw Error("Template engine must return an array of DOM nodes");switch(W=!1,U){case"replaceChildren":h.h.va(G,q),W=!0;break;case"replaceNode":h.a.Xc(G,q),W=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+U)}return W&&(b(q,Y),Q.afterRender&&h.u.G(Q.afterRender,null,[q,Y[Q.as||"$data"]]),U=="replaceChildren"&&h.i.ma(G,h.i.H)),q}function R(G,U,q){return h.O(G)?G():typeof G=="function"?G(U,q):G}var F;h.gc=function(G){if(G!=e&&!(G instanceof h.ca))throw Error("templateEngine must inherit from ko.templateEngine");F=G},h.dc=function(G,U,q,Y,Q){if(q=q||{},(q.templateEngine||F)==e)throw Error("Set a template engine before calling renderTemplate");if(Q=Q||"replaceChildren",Y){var W=w(Y);return h.$(function(){var J=U&&U instanceof h.fa?U:new h.fa(U,null,null,null,{exportDependencies:!0}),K=R(G,J.$data,J),J=I(Y,Q,K,J,q);Q=="replaceNode"&&(Y=J,W=w(Y))},null,{Sa:function(){return!W||!h.a.Sb(W)},l:W&&Q=="replaceNode"?W.parentNode:W})}return h.aa.Xb(function(K){h.dc(G,U,q,K,"replaceNode")})},h.Qd=function(G,U,q,Y,Q){function W(me,Se){h.u.G(h.a.ec,null,[Y,me,J,q,K,Se]),h.i.ma(Y,h.i.H)}function K(me,Se){b(Se,_e),q.afterRender&&q.afterRender(Se,me),_e=null}function J(me,Se){_e=Q.createChildContext(me,{as:xe,noChildContext:q.noChildContext,extend:function(Ve){Ve.$index=Se,xe&&(Ve[xe+"Index"]=Se)}});var Ie=R(G,me,_e);return I(Y,"ignoreTargetNode",Ie,_e,q)}var _e,xe=q.as,se=q.includeDestroyed===!1||h.options.foreachHidesDestroyed&&!q.includeDestroyed;if(se||q.beforeRemove||!h.Pc(U))return h.$(function(){var me=h.a.f(U)||[];typeof me.length>"u"&&(me=[me]),se&&(me=h.a.jb(me,function(Se){return Se===e||Se===null||!h.a.f(Se._destroy)})),W(me)},null,{l:Y});W(U.v());var Ae=U.subscribe(function(me){W(U(),me)},null,"arrayChange");return Ae.l(Y),Ae};var k=h.a.g.Z(),V=h.a.g.Z();h.c.template={init:function(G,U){var q=h.a.f(U());if(typeof q=="string"||"name"in q)h.h.Ea(G);else if("nodes"in q){if(q=q.nodes||[],h.O(q))throw Error('The "nodes" option must be a plain, non-observable array.');var Y=q[0]&&q[0].parentNode;Y&&h.a.g.get(Y,V)||(Y=h.a.Yb(q),h.a.g.set(Y,V,!0)),new h.C.ia(G).nodes(Y)}else if(q=h.h.childNodes(G),0<q.length)Y=h.a.Yb(q),new h.C.ia(G).nodes(Y);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:function(G,U,q,Y,Q){var W=U();U=h.a.f(W),q=!0,Y=null,typeof U=="string"?U={}:(W="name"in U?U.name:G,"if"in U&&(q=h.a.f(U.if)),q&&"ifnot"in U&&(q=!h.a.f(U.ifnot)),q&&!W&&(q=!1)),"foreach"in U?Y=h.Qd(W,q&&U.foreach||[],U,G,Q):q?(q=Q,"data"in U&&(q=Q.createChildContext(U.data,{as:U.as,noChildContext:U.noChildContext,exportDependencies:!0})),Y=h.dc(W,q,U,G)):h.h.Ea(G),Q=Y,(U=h.a.g.get(G,k))&&typeof U.s=="function"&&U.s(),h.a.g.set(G,k,!Q||Q.ja&&!Q.ja()?e:Q)}},h.m.Ra.template=function(G){return G=h.m.ac(G),G.length==1&&G[0].unknown||h.m.Id(G,"name")?null:"This template engine does not support anonymous templates nested within its templates"},h.h.ea.template=!0}(),h.b("setTemplateEngine",h.gc),h.b("renderTemplate",h.dc),h.a.Kc=function(_,b,w){if(_.length&&b.length){var I,R,F,k,V;for(I=R=0;(!w||I<w)&&(k=_[R]);++R){for(F=0;V=b[F];++F)if(k.value===V.value){k.moved=V.index,V.moved=k.index,b.splice(F,1),I=F=0;break}I+=F}}},h.a.Pb=function(){function _(b,w,I,R,F){var k=Math.min,V=Math.max,G=[],U,q=b.length,Y,Q=w.length,W=Q-q||1,K=q+Q+1,J,_e,xe;for(U=0;U<=q;U++)for(_e=J,G.push(J=[]),xe=k(Q,U+W),Y=V(0,U-1);Y<=xe;Y++)J[Y]=Y?U?b[U-1]===w[Y-1]?_e[Y-1]:k(_e[Y]||K,J[Y-1]||K)+1:Y+1:U+1;for(k=[],V=[],W=[],U=q,Y=Q;U||Y;)Q=G[U][Y]-1,Y&&Q===G[U][Y-1]?V.push(k[k.length]={status:I,value:w[--Y],index:Y}):U&&Q===G[U-1][Y]?W.push(k[k.length]={status:R,value:b[--U],index:U}):(--Y,--U,F.sparse||k.push({status:"retained",value:w[Y]}));return h.a.Kc(W,V,!F.dontLimitMoves&&10*q),k.reverse()}return function(b,w,I){return I=typeof I=="boolean"?{dontLimitMoves:I}:I||{},b=b||[],w=w||[],b.length<w.length?_(b,w,"added","deleted",I):_(w,b,"deleted","added",I)}}(),h.b("utils.compareArrays",h.a.Pb),function(){function _(I,R,F,k,V){var G=[],U=h.$(function(){var q=R(F,V,h.a.Ua(G,I))||[];0<G.length&&(h.a.Xc(G,q),k&&h.u.G(k,null,[F,q,V])),G.length=0,h.a.Nb(G,q)},null,{l:I,Sa:function(){return!h.a.kd(G)}});return{Y:G,$:U.ja()?U:e}}var b=h.a.g.Z(),w=h.a.g.Z();h.a.ec=function(I,R,F,k,V,G){function U(jt){Ie={Aa:jt,pb:h.ta(_e++)},K.push(Ie),W||Se.push(Ie)}function q(jt){Ie=Q[jt],_e!==Ie.pb.v()&&me.push(Ie),Ie.pb(_e++),h.a.Ua(Ie.Y,I),K.push(Ie)}function Y(jt,Ze){if(jt)for(var pe=0,Ee=Ze.length;pe<Ee;pe++)h.a.D(Ze[pe].Y,function(je){jt(je,pe,Ze[pe].Aa)})}R=R||[],typeof R.length>"u"&&(R=[R]),k=k||{};var Q=h.a.g.get(I,b),W=!Q,K=[],J=0,_e=0,xe=[],se=[],Ae=[],me=[],Se=[],Ie,Ve=0;if(W)h.a.D(R,U);else{if(!G||Q&&Q._countWaitingForRemove){var Re=h.a.Mb(Q,function(jt){return jt.Aa});G=h.a.Pb(Re,R,{dontLimitMoves:k.dontLimitMoves,sparse:!0})}for(var Re=0,ke,dt,pt;ke=G[Re];Re++)switch(dt=ke.moved,pt=ke.index,ke.status){case"deleted":for(;J<pt;)q(J++);dt===e&&(Ie=Q[J],Ie.$&&(Ie.$.s(),Ie.$=e),h.a.Ua(Ie.Y,I).length&&(k.beforeRemove&&(K.push(Ie),Ve++,Ie.Aa===w?Ie=null:Ae.push(Ie)),Ie&&xe.push.apply(xe,Ie.Y))),J++;break;case"added":for(;_e<pt;)q(J++);dt!==e?(se.push(K.length),q(dt)):U(ke.value)}for(;_e<R.length;)q(J++);K._countWaitingForRemove=Ve}h.a.g.set(I,b,K),Y(k.beforeMove,me),h.a.D(xe,k.beforeRemove?h.oa:h.removeNode);var rt,fn,Bn;try{Bn=I.ownerDocument.activeElement}catch{}if(se.length)for(;(Re=se.shift())!=e;){for(Ie=K[Re],rt=e;Re;)if((fn=K[--Re].Y)&&fn.length){rt=fn[fn.length-1];break}for(R=0;J=Ie.Y[R];rt=J,R++)h.h.Wb(I,J,rt)}for(Re=0;Ie=K[Re];Re++){for(Ie.Y||h.a.extend(Ie,_(I,F,Ie.Aa,V,Ie.pb)),R=0;J=Ie.Y[R];rt=J,R++)h.h.Wb(I,J,rt);!Ie.Ed&&V&&(V(Ie.Aa,Ie.Y,Ie.pb),Ie.Ed=!0,rt=Ie.Y[Ie.Y.length-1])}for(Bn&&I.ownerDocument.activeElement!=Bn&&Bn.focus(),Y(k.beforeRemove,Ae),Re=0;Re<Ae.length;++Re)Ae[Re].Aa=w;Y(k.afterMove,me),Y(k.afterAdd,Se)}}(),h.b("utils.setDomNodeChildrenFromArrayMapping",h.a.ec),h.ba=function(){this.allowTemplateRewriting=!1},h.ba.prototype=new h.ca,h.ba.prototype.constructor=h.ba,h.ba.prototype.renderTemplateSource=function(_,b,w,I){return(b=!(9>h.a.W)&&_.nodes?_.nodes():null)?h.a.la(b.cloneNode(!0).childNodes):(_=_.text(),h.a.ua(_,I))},h.ba.Ma=new h.ba,h.gc(h.ba.Ma),h.b("nativeTemplateEngine",h.ba),function(){h.$a=function(){var b=this.Hd=function(){if(!o||!o.tmpl)return 0;try{if(0<=o.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch{}return 1}();this.renderTemplateSource=function(w,I,R,F){if(F=F||n,R=R||{},2>b)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var k=w.data("precompiled");return k||(k=w.text()||"",k=o.template(null,"{{ko_with $item.koBindingContext}}"+k+"{{/ko_with}}"),w.data("precompiled",k)),w=[I.$data],I=o.extend({koBindingContext:I},R.templateOptions),I=o.tmpl(k,w,I),I.appendTo(F.createElement("div")),o.fragments={},I},this.createJavaScriptEvaluatorBlock=function(w){return"{{ko_code ((function() { return "+w+" })()) }}"},this.addTemplate=function(w,I){n.write("<script type='text/html' id='"+w+"'>"+I+"<\/script>")},0<b&&(o.tmpl.tag.ko_code={open:"__.push($1 || '');"},o.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},h.$a.prototype=new h.ca,h.$a.prototype.constructor=h.$a;var _=new h.$a;0<_.Hd&&h.gc(_),h.b("jqueryTmplTemplateEngine",h.$a)}()})})()})()})();var ygt=ko;typeof window<"u"?(ko=window.ko,typeof $F<"u"?window.ko=$F:delete window.ko):(ko=global.ko,typeof $F<"u"?global.ko=$F:delete global.ko);var BC=ygt;/** + * @license + * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5 + * Copyright (c) Steve Sanderson + * MIT license + */var qX="__knockoutObservables",XX="__knockoutSubscribable";function SAe(e,t){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,i=wAe(e,!0);return t=t||Object.getOwnPropertyNames(e),t.forEach(function(o){if(!(o===qX||o===XX)&&!(o in i)){var r=e[o],s=r instanceof Array,a=n.isObservable(r)?r:s?n.observableArray(r):n.observable(r);Object.defineProperty(e,o,{configurable:!0,enumerable:!0,get:a,set:n.isWriteableObservable(a)?a:void 0}),i[o]=a,s&&xgt(n,a)}}),e}function wAe(e,t){var n=e[qX];return!n&&t&&(n={},Object.defineProperty(e,qX,{value:n})),n}function Agt(e,t,n){var i=this,o={owner:e,deferEvaluation:!0};if(typeof n=="function")o.read=n;else{if("value"in n)throw new Error('For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.');if(typeof n.get!="function")throw new Error('For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".');o.read=n.get,o.write=n.set}return e[t]=i.computed(o),SAe.call(i,e,[t]),e}function xgt(e,t){var n=null;e.computed(function(){n&&(n.dispose(),n=null);var i=t();i instanceof Array&&(n=Cgt(e,t,i))})}function Cgt(e,t,n){var i=Tgt(e,n);return i.subscribe(t)}function Tgt(e,t){var n=t[XX];if(!n){n=new e.subscribable,Object.defineProperty(t,XX,{value:n});var i={};Egt(t,n,i),bgt(e,t,n,i)}return n}function Egt(e,t,n){["pop","push","reverse","shift","sort","splice","unshift"].forEach(function(i){var o=e[i];e[i]=function(){var r=o.apply(this,arguments);return n.pause!==!0&&t.notifySubscribers(this),r}})}function bgt(e,t,n,i){["remove","removeAll","destroy","destroyAll","replace"].forEach(function(o){Object.defineProperty(t,o,{enumerable:!1,value:function(){var r;i.pause=!0;try{r=e.observableArray.fn[o].apply(e.observableArray(t),arguments)}finally{i.pause=!1}return n.notifySubscribers(t),r}})})}function vAe(e,t){if(!e)return null;var n=wAe(e,!1);return n&&n[t]||null}function Sgt(e,t){var n=vAe(e,t);n&&n.valueHasMutated()}function wgt(e){e.track=SAe,e.getObservable=vAe,e.valueHasMutated=Sgt,e.defineProperty=Agt}var e2={attachToKo:wgt};var DAe="http://www.w3.org/2000/svg",IAe="cesium-svgPath-svg",vgt={register:function(e){e.bindingHandlers.cesiumSvgPath={init:function(t,n){let i=document.createElementNS(DAe,"svg:svg");i.setAttribute("class",IAe);let o=document.createElementNS(DAe,"path");return i.appendChild(o),e.virtualElements.setDomNodeChildren(t,[i]),e.computed({read:function(){let r=e.unwrap(n());o.setAttribute("d",e.unwrap(r.path));let s=e.unwrap(r.width),a=e.unwrap(r.height);i.setAttribute("width",s),i.setAttribute("height",a),i.setAttribute("viewBox",`0 0 ${s} ${a}`),r.css&&i.setAttribute("class",`${IAe} ${e.unwrap(r.css)}`)},disposeWhenNodeIsRemoved:t}),{controlsDescendantBindings:!0}}},e.virtualElements.allowedBindings.cesiumSvgPath=!0}},t2=vgt;e2.attachToKo(BC);t2.register(BC);var Ce=BC;function n2(e){l(e)||(e=new Ud),this._clock=e,this._eventHelper=new Sr,this._eventHelper.add(e.onTick,this.synchronize,this),this.systemTime=Ce.observable(ee.now()),this.systemTime.equalityComparer=ee.equals,this.startTime=Ce.observable(e.startTime),this.startTime.equalityComparer=ee.equals,this.startTime.subscribe(function(t){e.startTime=t,this.synchronize()},this),this.stopTime=Ce.observable(e.stopTime),this.stopTime.equalityComparer=ee.equals,this.stopTime.subscribe(function(t){e.stopTime=t,this.synchronize()},this),this.currentTime=Ce.observable(e.currentTime),this.currentTime.equalityComparer=ee.equals,this.currentTime.subscribe(function(t){e.currentTime=t,this.synchronize()},this),this.multiplier=Ce.observable(e.multiplier),this.multiplier.subscribe(function(t){e.multiplier=t,this.synchronize()},this),this.clockStep=Ce.observable(e.clockStep),this.clockStep.subscribe(function(t){e.clockStep=t,this.synchronize()},this),this.clockRange=Ce.observable(e.clockRange),this.clockRange.subscribe(function(t){e.clockRange=t,this.synchronize()},this),this.canAnimate=Ce.observable(e.canAnimate),this.canAnimate.subscribe(function(t){e.canAnimate=t,this.synchronize()},this),this.shouldAnimate=Ce.observable(e.shouldAnimate),this.shouldAnimate.subscribe(function(t){e.shouldAnimate=t,this.synchronize()},this),Ce.track(this,["systemTime","startTime","stopTime","currentTime","multiplier","clockStep","clockRange","canAnimate","shouldAnimate"])}Object.defineProperties(n2.prototype,{clock:{get:function(){return this._clock}}});n2.prototype.synchronize=function(){let e=this._clock;this.systemTime=ee.now(),this.startTime=e.startTime,this.stopTime=e.stopTime,this.currentTime=e.currentTime,this.multiplier=e.multiplier,this.clockStep=e.clockStep,this.clockRange=e.clockRange,this.canAnimate=e.canAnimate,this.shouldAnimate=e.shouldAnimate};n2.prototype.isDestroyed=function(){return!1};n2.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var i2=n2;function Dgt(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,fe.throwInstantiationError()}var KX=Dgt;var o2={};o2.createCheckbox=function(e,t,n){let i=document.createElement("div"),o=document.createElement("label"),r=document.createElement("input");r.type="checkbox";let s=`checked: ${t}`;return l(n)&&(s+=`, enable: ${n}`),r.setAttribute("data-bind",s),o.appendChild(r),o.appendChild(document.createTextNode(e)),i.appendChild(o),i};o2.createSection=function(e,t,n,i){let o=document.createElement("div");o.className="cesium-cesiumInspector-section",o.setAttribute("data-bind",`css: { "cesium-cesiumInspector-section-collapsed": !${n} }`),e.appendChild(o);let r=document.createElement("h3");r.className="cesium-cesiumInspector-sectionHeader",r.appendChild(document.createTextNode(t)),r.setAttribute("data-bind",`click: ${i}`),o.appendChild(r);let s=document.createElement("div");return s.className="cesium-cesiumInspector-sectionContent",o.appendChild(s),s};o2.createRangeInput=function(e,t,n,i,o,r){r=y(r,t);let s=document.createElement("input");s.setAttribute("data-bind",`value: ${r}`),s.type="number";let a=document.createElement("input");a.type="range",a.min=n,a.max=i,a.step=y(o,"any"),a.setAttribute("data-bind",`valueUpdate: "input", value: ${t}`);let c=document.createElement("div");c.appendChild(a);let u=document.createElement("div");return u.className="cesium-cesiumInspector-slider",u.appendChild(document.createTextNode(e)),u.appendChild(s),u.appendChild(c),u};o2.createButton=function(e,t,n){let i=document.createElement("button");i.type="button",i.textContent=e,i.className="cesium-cesiumInspector-pickButton";let o=`click: ${t}`;return l(n)&&(o+=`, css: {"cesium-cesiumInspector-pickButtonHighlight" : ${n}}`),i.setAttribute("data-bind",o),i};var Da=o2;function PAe(e,t){this._command=e,t=y(t,y.EMPTY_OBJECT),this.toggled=y(t.toggled,!1),this.tooltip=y(t.tooltip,""),Ce.track(this,["toggled","tooltip"])}Object.defineProperties(PAe.prototype,{command:{get:function(){return this._command}}});var l0=PAe;function Igt(e,t){t=y(t,!0);let n=new ge,i=new ge;function o(){let r={args:arguments,cancel:!1},s;return n.raiseEvent(r),r.cancel||(s=e.apply(null,arguments),i.raiseEvent(s)),s}return o.canExecute=t,Ce.track(o,["canExecute"]),Object.defineProperties(o,{beforeExecute:{value:n},afterExecute:{value:i}}),o}var En=Igt;function Pgt(e,t,n,i,o){return n.call(i,e[t]),Ce.getObservable(e,t).subscribe(n,i,o)}var ca=Pgt;var LC="http://www.w3.org/2000/svg",RAe="http://www.w3.org/1999/xlink",oH,r2=z.fromCssColorString("rgba(247,250,255,0.384)"),rH=z.fromCssColorString("rgba(143,191,255,0.216)"),JX=z.fromCssColorString("rgba(153,197,255,0.098)"),sH=z.fromCssColorString("rgba(255,255,255,0.086)"),Ogt=z.fromCssColorString("rgba(255,255,255,0.267)"),Mgt=z.fromCssColorString("rgba(255,255,255,0)"),OAe=z.fromCssColorString("rgba(66,67,68,0.3)"),MAe=z.fromCssColorString("rgba(0,0,0,0.5)");function u0(e){return z.fromCssColorString(window.getComputedStyle(e).getPropertyValue("color"))}var s2={animation_pathReset:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z"},animation_pathPause:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M13,5.5,7.5,5.5,7.5,25.5,13,25.5zM24.5,5.5,19,5.5,19,25.5,24.5,25.5z"},animation_pathPlay:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathPlayReverse:{tagName:"path",transform:"translate(16,16) scale(-0.85,0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathLoop:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z"},animation_pathClock:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-15.5)",d:"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z"},animation_pathWingButton:{tagName:"path",d:"m 4.5,0.5 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 13.71875,0 C 22.478584,27.272785 27.273681,22.511272 32.5,18.25 l 0,-13.75 c 0,-2.216 -1.784,-4 -4,-4 l -24,0 z"},animation_pathPointer:{tagName:"path",d:"M-15,-65,-15,-55,15,-55,15,-65,0,-95z"},animation_pathSwooshFX:{tagName:"path",d:"m 85,0 c 0,16.617 -4.813944,35.356 -13.131081,48.4508 h 6.099803 c 8.317138,-13.0948 13.13322,-28.5955 13.13322,-45.2124 0,-46.94483 -38.402714,-85.00262 -85.7743869,-85.00262 -1.0218522,0 -2.0373001,0.0241 -3.0506131,0.0589 45.958443,1.59437 82.723058,35.77285 82.723058,81.70532 z"}};function ym(e){let t=document.createElementNS(LC,e.tagName);for(let n in e)if(e.hasOwnProperty(n)&&n!=="tagName")if(n==="children"){let i=e.children.length;for(let o=0;o<i;++o)t.appendChild(ym(e.children[o]))}else n.indexOf("xlink:")===0?t.setAttributeNS(RAe,n.substring(6),e[n]):n==="textContent"?t.textContent=e[n]:t.setAttribute(n,e[n]);return t}function ZX(e,t,n){let i=document.createElementNS(LC,"text");i.setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("class","cesium-animation-svgText");let o=document.createElementNS(LC,"tspan");return o.textContent=n,i.appendChild(o),i}function Rgt(e,t,n){e.setAttribute("transform",`translate(100,100) rotate(${n})`),t.setAttribute("transform",`rotate(${n})`)}var aH=new z;function Gr(e,t){let n=t.alpha,i=1-n;return aH.red=e.red*i+t.red*n,aH.green=e.green*i+t.green*n,aH.blue=e.blue*i+t.blue*n,aH.toCssColorString()}function QX(e,t,n){let i=s2[n],o={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{tagName:"rect",class:"cesium-animation-buttonGlow",width:32,height:32,rx:2,ry:2},{tagName:"rect",class:"cesium-animation-buttonMain",width:32,height:32,rx:4,ry:4},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return ym(o)}function Bgt(e,t,n){let i=s2[n],o=s2.animation_pathWingButton,r={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{class:"cesium-animation-buttonGlow",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonMain",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return ym(r)}function Lgt(e,t){let n=e._viewModel,i=n.shuttleRingDragging;if(!(i&&oH!==e))if(t.type==="mousedown"||i&&t.type==="mousemove"||t.type==="touchstart"&&t.touches.length===1||i&&t.type==="touchmove"&&t.touches.length===1){let o=e._centerX,r=e._centerY,a=e._svgNode.getBoundingClientRect(),c,u;if(t.type==="touchstart"||t.type==="touchmove"?(c=t.touches[0].clientX,u=t.touches[0].clientY):(c=t.clientX,u=t.clientY),!i&&(c>a.right||c<a.left||u<a.top||u>a.bottom))return;let f=e._shuttleRingPointer.getBoundingClientRect(),d=c-o-a.left,p=u-r-a.top,g=Math.atan2(p,d)*180/Math.PI+90;g>180&&(g-=360);let h=n.shuttleRingAngle;i||c<f.right&&c>f.left&&u>f.top&&u<f.bottom?(oH=e,n.shuttleRingDragging=!0,n.shuttleRingAngle=g):g<h?n.slower():g>h&&n.faster(),t.preventDefault()}else e===oH&&(oH=void 0),n.shuttleRingDragging=!1}function G_(e,t){this._viewModel=t,this.svgElement=e,this._enabled=void 0,this._toggled=void 0;let n=this;this._clickFunction=function(){let i=n._viewModel.command;i.canExecute&&i()},e.addEventListener("click",this._clickFunction,!0),this._subscriptions=[ca(t,"toggled",this.setToggled,this),ca(t,"tooltip",this.setTooltip,this),ca(t.command,"canExecute",this.setEnabled,this)]}G_.prototype.destroy=function(){this.svgElement.removeEventListener("click",this._clickFunction,!0);let e=this._subscriptions;for(let t=0,n=e.length;t<n;t++)e[t].dispose();ue(this)};G_.prototype.isDestroyed=function(){return!1};G_.prototype.setEnabled=function(e){if(this._enabled!==e){if(this._enabled=e,!e){this.svgElement.setAttribute("class","cesium-animation-buttonDisabled");return}if(this._toggled){this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled");return}this.svgElement.setAttribute("class","cesium-animation-rectButton")}};G_.prototype.setToggled=function(e){this._toggled!==e&&(this._toggled=e,this._enabled&&(e?this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled"):this.svgElement.setAttribute("class","cesium-animation-rectButton")))};G_.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e};function jS(e,t){e=In(e),this._viewModel=t,this._container=e,this._centerX=0,this._centerY=0,this._defsElement=void 0,this._svgNode=void 0,this._topG=void 0,this._lastHeight=void 0,this._lastWidth=void 0;let n=e.ownerDocument,i=document.createElement("style");i.textContent=".cesium-animation-rectButton .cesium-animation-buttonGlow { filter: url(#animation_blurred); }.cesium-animation-rectButton .cesium-animation-buttonMain { fill: url(#animation_buttonNormal); }.cesium-animation-buttonToggled .cesium-animation-buttonMain { fill: url(#animation_buttonToggled); }.cesium-animation-rectButton:hover .cesium-animation-buttonMain { fill: url(#animation_buttonHovered); }.cesium-animation-buttonDisabled .cesium-animation-buttonMain { fill: url(#animation_buttonDisabled); }.cesium-animation-shuttleRingG .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshGradient); }.cesium-animation-shuttleRingG:hover .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshHovered); }.cesium-animation-shuttleRingPointer { fill: url(#animation_shuttleRingPointerGradient); }.cesium-animation-shuttleRingPausePointer { fill: url(#animation_shuttleRingPointerPaused); }.cesium-animation-knobOuter { fill: url(#animation_knobOuter); }.cesium-animation-knobInner { fill: url(#animation_knobInner); }",n.head.insertBefore(i,n.head.childNodes[0]);let o=document.createElement("div");o.className="cesium-animation-theme",o.innerHTML='<div class="cesium-animation-themeNormal"></div><div class="cesium-animation-themeHover"></div><div class="cesium-animation-themeSelect"></div><div class="cesium-animation-themeDisabled"></div><div class="cesium-animation-themeKnob"></div><div class="cesium-animation-themePointer"></div><div class="cesium-animation-themeSwoosh"></div><div class="cesium-animation-themeSwooshHover"></div>',this._theme=o,this._themeNormal=o.childNodes[0],this._themeHover=o.childNodes[1],this._themeSelect=o.childNodes[2],this._themeDisabled=o.childNodes[3],this._themeKnob=o.childNodes[4],this._themePointer=o.childNodes[5],this._themeSwoosh=o.childNodes[6],this._themeSwooshHover=o.childNodes[7];let r=document.createElementNS(LC,"svg:svg");this._svgNode=r,r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",RAe);let s=document.createElementNS(LC,"g");this._topG=s,this._realtimeSVG=new G_(Bgt(3,4,"animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new G_(QX(44,99,"animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new G_(QX(124,99,"animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new G_(QX(84,99,"animation_pathPause"),t.pauseViewModel);let a=document.createElementNS(LC,"g");a.appendChild(this._realtimeSVG.svgElement),a.appendChild(this._playReverseSVG.svgElement),a.appendChild(this._playForwardSVG.svgElement),a.appendChild(this._pauseSVG.svgElement);let c=ym({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=c;let u=s2.animation_pathSwooshFX,f=s2.animation_pathPointer,d=ym({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:u.tagName,transform:"translate(100,97) scale(-1,1)",id:"animation_pathSwooshFX",d:u.d},{tagName:u.tagName,transform:"translate(100,97)",id:"animation_pathSwooshFX",d:u.d},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=d,this._shuttleRingPointer=ym({class:"cesium-animation-shuttleRingPointer",id:"animation_pathPointer",tagName:f.tagName,d:f.d});let p=ym({tagName:"g",transform:"translate(100,100)"});this._knobOuter=ym({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});let g=61,h=ym({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:g});this._knobDate=ZX(0,-24,""),this._knobTime=ZX(0,-7,""),this._knobStatus=ZX(0,-41,"");let A=ym({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:g}),x=document.createElementNS(LC,"g");x.setAttribute("class","cesium-animation-shuttleRingG"),e.appendChild(o),s.appendChild(x),s.appendChild(p),s.appendChild(a),x.appendChild(c),x.appendChild(d),x.appendChild(this._shuttleRingPointer),p.appendChild(this._knobOuter),p.appendChild(h),p.appendChild(this._knobDate),p.appendChild(this._knobTime),p.appendChild(this._knobStatus),p.appendChild(A),r.appendChild(s),e.appendChild(r);let C=this;function T(O){Lgt(C,O)}this._mouseCallback=T,c.addEventListener("mousedown",T,!0),c.addEventListener("touchstart",T,!0),d.addEventListener("mousedown",T,!0),d.addEventListener("touchstart",T,!0),n.addEventListener("mousemove",T,!0),n.addEventListener("touchmove",T,!0),n.addEventListener("mouseup",T,!0),n.addEventListener("touchend",T,!0),n.addEventListener("touchcancel",T,!0),this._shuttleRingPointer.addEventListener("mousedown",T,!0),this._shuttleRingPointer.addEventListener("touchstart",T,!0),this._knobOuter.addEventListener("mousedown",T,!0),this._knobOuter.addEventListener("touchstart",T,!0);let E=this._knobTime.childNodes[0],S=this._knobDate.childNodes[0],v=this._knobStatus.childNodes[0],D;this._subscriptions=[ca(t.pauseViewModel,"toggled",function(O){D!==O&&(D=O,D?C._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):C._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),ca(t,"shuttleRingAngle",function(O){Rgt(C._shuttleRingPointer,C._knobOuter,O)}),ca(t,"dateLabel",function(O){S.textContent!==O&&(S.textContent=O)}),ca(t,"timeLabel",function(O){E.textContent!==O&&(E.textContent=O)}),ca(t,"multiplierLabel",function(O){v.textContent!==O&&(v.textContent=O)})],this.applyThemeChanges(),this.resize()}Object.defineProperties(jS.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});jS.prototype.isDestroyed=function(){return!1};jS.prototype.destroy=function(){l(this._observer)&&(this._observer.disconnect(),this._observer=void 0);let e=this._container.ownerDocument,t=this._mouseCallback;this._shuttleRingBackPanel.removeEventListener("mousedown",t,!0),this._shuttleRingBackPanel.removeEventListener("touchstart",t,!0),this._shuttleRingSwooshG.removeEventListener("mousedown",t,!0),this._shuttleRingSwooshG.removeEventListener("touchstart",t,!0),e.removeEventListener("mousemove",t,!0),e.removeEventListener("touchmove",t,!0),e.removeEventListener("mouseup",t,!0),e.removeEventListener("touchend",t,!0),e.removeEventListener("touchcancel",t,!0),this._shuttleRingPointer.removeEventListener("mousedown",t,!0),this._shuttleRingPointer.removeEventListener("touchstart",t,!0),this._knobOuter.removeEventListener("mousedown",t,!0),this._knobOuter.removeEventListener("touchstart",t,!0),this._container.removeChild(this._svgNode),this._container.removeChild(this._theme),this._realtimeSVG.destroy(),this._playReverseSVG.destroy(),this._playForwardSVG.destroy(),this._pauseSVG.destroy();let n=this._subscriptions;for(let i=0,o=n.length;i<o;i++)n[i].dispose();return ue(this)};jS.prototype.resize=function(){let e=this._container.clientWidth,t=this._container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;let n=this._svgNode,i=200,o=132,r=e,s=t;e===0&&t===0?(r=i,s=o):e===0?(s=t,r=i*(t/o)):t===0&&(r=e,s=o*(e/i));let a=r/i,c=s/o;n.style.cssText=`width: ${r}px; height: ${s}px; position: absolute; bottom: 0; left: 0; overflow: hidden;`,n.setAttribute("width",r),n.setAttribute("height",s),n.setAttribute("viewBox",`0 0 ${r} ${s}`),this._topG.setAttribute("transform",`scale(${a},${c})`),this._centerX=Math.max(1,100*a),this._centerY=Math.max(1,100*c),this._lastHeight=e,this._lastWidth=t};jS.prototype.applyThemeChanges=function(){let e=this._container.ownerDocument;if(!e.body.contains(this._container)){if(l(this._observer))return;let f=this;f._observer=new MutationObserver(function(){e.body.contains(f._container)&&(f._observer.disconnect(),f._observer=void 0,f.applyThemeChanges())}),f._observer.observe(e,{childList:!0,subtree:!0});return}let t=u0(this._themeNormal),n=u0(this._themeHover),i=u0(this._themeSelect),o=u0(this._themeDisabled),r=u0(this._themeKnob),s=u0(this._themePointer),a=u0(this._themeSwoosh),c=u0(this._themeSwooshHover),u=ym({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Gr(t,r2)},{tagName:"stop",offset:"12%","stop-color":Gr(t,rH)},{tagName:"stop",offset:"46%","stop-color":Gr(t,JX)},{tagName:"stop",offset:"81%","stop-color":Gr(t,sH)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Gr(n,r2)},{tagName:"stop",offset:"12%","stop-color":Gr(n,rH)},{tagName:"stop",offset:"46%","stop-color":Gr(n,JX)},{tagName:"stop",offset:"81%","stop-color":Gr(n,sH)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Gr(i,r2)},{tagName:"stop",offset:"12%","stop-color":Gr(i,rH)},{tagName:"stop",offset:"46%","stop-color":Gr(i,JX)},{tagName:"stop",offset:"81%","stop-color":Gr(i,sH)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Gr(o,Ogt)},{tagName:"stop",offset:"75%","stop-color":Gr(o,Mgt)}]},{id:"animation_blurred",tagName:"filter",width:"200%",height:"200%",x:"-50%",y:"-50%",children:[{tagName:"feGaussianBlur",stdDeviation:4,in:"SourceGraphic"}]},{id:"animation_shuttleRingSwooshGradient",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":a.toCssColorString()}]},{id:"animation_shuttleRingSwooshHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":c.toCssColorString()}]},{id:"animation_shuttleRingPointerGradient",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"40%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"60%","stop-color":Gr(s,MAe)},{tagName:"stop",offset:"100%","stop-color":Gr(s,MAe)}]},{id:"animation_shuttleRingPointerPaused",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":"#CCC"},{tagName:"stop",offset:"40%","stop-color":"#CCC"},{tagName:"stop",offset:"60%","stop-color":"#555"},{tagName:"stop",offset:"100%","stop-color":"#555"}]},{id:"animation_knobOuter",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Gr(r,r2)},{tagName:"stop",offset:"60%","stop-color":Gr(r,OAe)},{tagName:"stop",offset:"85%","stop-color":Gr(r,rH)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Gr(r,OAe)},{tagName:"stop",offset:"60%","stop-color":Gr(r,r2)},{tagName:"stop",offset:"85%","stop-color":Gr(r,sH)}]}]});l(this._defsElement)?this._svgNode.replaceChild(u,this._defsElement):this._svgNode.appendChild(u),this._defsElement=u};var a2=jS;var Ngt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],f0=15,YS=105;function BAe(e,t){return e-t}function $X(e,t){let n=wo(t,e,BAe);return n<0?~n:n}function Fgt(e,t){if(Math.abs(e)<=f0)return e/f0;let n=f0,i=YS,o,r=0,s;return e>0?(o=Math.log(t[t.length-1]),s=(o-r)/(i-n),Math.exp(r+s*(e-n))):(o=Math.log(-t[0]),s=(o-r)/(i-n),-Math.exp(r+s*(Math.abs(e)-n)))}function Ugt(e,t,n){if(n.clockStep===fo.SYSTEM_CLOCK)return f0;if(Math.abs(e)<=1)return e*f0;let i=t[t.length-1];e>i?e=i:e<-i&&(e=-i);let o=f0,r=YS,s,a=0,c;return e>0?(s=Math.log(i),c=(s-a)/(r-o),(Math.log(e)-a)/c+o):(s=Math.log(-t[0]),c=(s-a)/(r-o),-((Math.log(Math.abs(e))-a)/c+o))}function Wf(e){let t=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=Wf.defaultDateFormatter,this._timeFormatter=Wf.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,Ce.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(Wf.defaultTicks),this.timeLabel=void 0,Ce.defineProperty(this,"timeLabel",function(){return t._timeFormatter(t._clockViewModel.currentTime,t)}),this.dateLabel=void 0,Ce.defineProperty(this,"dateLabel",function(){return t._dateFormatter(t._clockViewModel.currentTime,t)}),this.multiplierLabel=void 0,Ce.defineProperty(this,"multiplierLabel",function(){let s=t._clockViewModel;if(s.clockStep===fo.SYSTEM_CLOCK)return"Today";let a=s.multiplier;return a%1===0?`${a.toFixed(0)}x`:`${a.toFixed(3).replace(/0{0,3}$/,"")}x`}),this.shuttleRingAngle=void 0,Ce.defineProperty(this,"shuttleRingAngle",{get:function(){return Ugt(e.multiplier,t._allShuttleRingTicks,e)},set:function(s){s=Math.max(Math.min(s,YS),-YS);let a=t._allShuttleRingTicks,c=t._clockViewModel;if(c.clockStep=fo.SYSTEM_CLOCK_MULTIPLIER,Math.abs(s)===YS){c.multiplier=s>0?a[a.length-1]:a[0];return}let u=Fgt(s,a);if(t.snapToTicks)u=a[$X(u,a)];else if(u!==0){let f=Math.abs(u);if(f>100){let d=f.toFixed(0).length-2,p=Math.pow(10,d);u=Math.round(u/p)*p|0}else f>f0?u=Math.round(u):f>1?u=+u.toFixed(1):f>0&&(u=+u.toFixed(2))}c.multiplier=u}}),this._canAnimate=void 0,Ce.defineProperty(this,"_canAnimate",function(){let s=t._clockViewModel,a=s.clockRange;if(t.shuttleRingDragging||a===Pr.UNBOUNDED)return!0;let c=s.multiplier,u=s.currentTime,f=s.startTime,d=!1;if(a===Pr.LOOP_STOP)d=ee.greaterThan(u,f)||u.equals(f)&&c>0;else{let p=s.stopTime;d=ee.greaterThan(u,f)&&ee.lessThan(u,p)||u.equals(f)&&c>0||u.equals(p)&&c<0}return d||(s.shouldAnimate=!1),d}),this._isSystemTimeAvailable=void 0,Ce.defineProperty(this,"_isSystemTimeAvailable",function(){let s=t._clockViewModel;if(s.clockRange===Pr.UNBOUNDED)return!0;let c=s.systemTime;return ee.greaterThanOrEquals(c,s.startTime)&&ee.lessThanOrEquals(c,s.stopTime)}),this._isAnimating=void 0,Ce.defineProperty(this,"_isAnimating",function(){return t._clockViewModel.shouldAnimate&&(t._canAnimate||t.shuttleRingDragging)});let n=En(function(){let s=t._clockViewModel;s.shouldAnimate?s.shouldAnimate=!1:t._canAnimate&&(s.shouldAnimate=!0)});this._pauseViewModel=new l0(n,{toggled:Ce.computed(function(){return!t._isAnimating}),tooltip:"Pause"});let i=En(function(){let s=t._clockViewModel,a=s.multiplier;a>0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playReverseViewModel=new l0(i,{toggled:Ce.computed(function(){return t._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});let o=En(function(){let s=t._clockViewModel,a=s.multiplier;a<0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playForwardViewModel=new l0(o,{toggled:Ce.computed(function(){return t._isAnimating&&e.multiplier>0&&e.clockStep!==fo.SYSTEM_CLOCK}),tooltip:"Play Forward"});let r=En(function(){t._clockViewModel.clockStep=fo.SYSTEM_CLOCK},Ce.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new l0(r,{toggled:Ce.computed(function(){return e.clockStep===fo.SYSTEM_CLOCK}),tooltip:Ce.computed(function(){return t._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=En(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,u=$X(c,a)-1;u>=0&&(s.multiplier=a[u])}),this._faster=En(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,u=$X(c,a)+1;u<a.length&&(s.multiplier=a[u])})}Wf.defaultDateFormatter=function(e,t){let n=ee.toGregorianDate(e);return`${Ngt[n.month-1]} ${n.day} ${n.year}`};Wf.defaultTicks=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800];Wf.defaultTimeFormatter=function(e,t){let n=ee.toGregorianDate(e),i=Math.round(n.millisecond);return Math.abs(t._clockViewModel.multiplier)<1?`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")}.${i.toString().padStart(3,"0")}`:`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")} UTC`};Wf.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)};Wf.prototype.setShuttleRingTicks=function(e){let t,n,i,o={},r=this._sortedFilteredPositiveTicks;for(r.length=0,t=0,n=e.length;t<n;++t)i=e[t],o.hasOwnProperty(i)||(o[i]=!0,r.push(i));r.sort(BAe);let s=[];for(n=r.length,t=n-1;t>=0;--t)i=r[t],i!==0&&s.push(-i);Array.prototype.push.apply(s,r),this._allShuttleRingTicks=s};Object.defineProperties(Wf.prototype,{slower:{get:function(){return this._slower}},faster:{get:function(){return this._faster}},clockViewModel:{get:function(){return this._clockViewModel}},pauseViewModel:{get:function(){return this._pauseViewModel}},playReverseViewModel:{get:function(){return this._playReverseViewModel}},playForwardViewModel:{get:function(){return this._playForwardViewModel}},playRealtimeViewModel:{get:function(){return this._playRealtimeViewModel}},dateFormatter:{get:function(){return this._dateFormatter},set:function(e){this._dateFormatter=e}},timeFormatter:{get:function(){return this._timeFormatter},set:function(e){this._timeFormatter=e}}});Wf._maxShuttleRingAngle=YS;Wf._realtimeShuttleRingAngle=f0;var c2=Wf;function LAe(e){e=y(e,y.EMPTY_OBJECT);let t=e.globe,n=y(e.imageryProviderViewModels,[]),i=y(e.terrainProviderViewModels,[]);this._globe=t,this.imageryProviderViewModels=n.slice(0),this.terrainProviderViewModels=i.slice(0),this.dropDownVisible=!1,Ce.track(this,["imageryProviderViewModels","terrainProviderViewModels","dropDownVisible"]);let o=Ce.getObservable(this,"imageryProviderViewModels"),r=Ce.pureComputed(function(){let d=o(),p={},g;for(g=0;g<d.length;g++){let x=d[g],C=x.category;l(p[C])?p[C].push(x):p[C]=[x]}let h=Object.keys(p),A=[];for(g=0;g<h.length;g++){let x=h[g];A.push({name:x,providers:p[x]})}return A});this._imageryProviders=r;let s=Ce.getObservable(this,"terrainProviderViewModels"),a=Ce.pureComputed(function(){let d=s(),p={},g;for(g=0;g<d.length;g++){let x=d[g],C=x.category;l(p[C])?p[C].push(x):p[C]=[x]}let h=Object.keys(p),A=[];for(g=0;g<h.length;g++){let x=h[g];A.push({name:x,providers:p[x]})}return A});this._terrainProviders=a,this.buttonTooltip=void 0,Ce.defineProperty(this,"buttonTooltip",function(){let d=this.selectedImagery,p=this.selectedTerrain,g=l(d)?d.name:void 0,h=l(p)?p.name:void 0;return l(g)&&l(h)?`${g} +${h}`:l(g)?g:h}),this.buttonImageUrl=void 0,Ce.defineProperty(this,"buttonImageUrl",function(){let d=this.selectedImagery;if(l(d))return d.iconUrl}),this.selectedImagery=void 0;let c=Ce.observable();this._currentImageryLayers=[],Ce.defineProperty(this,"selectedImagery",{get:function(){return c()},set:function(d){if(c()===d){this.dropDownVisible=!1;return}let p,g=this._currentImageryLayers,h=g.length,A=this._globe.imageryLayers,x=!1;for(p=0;p<h;p++){let C=A.length;for(let T=0;T<C;T++){let E=A.get(T);if(E===g[p]){A.remove(E),x=!0;break}}}if(l(d)){let C=d.creationCommand();if(Array.isArray(C)){let T=C.length;for(this._currentImageryLayers=[],p=T-1;p>=0;p--){let E=Ls.fromProviderAsync(C[p]);A.add(E,0),this._currentImageryLayers.push(E)}}else{this._currentImageryLayers=[];let T=Ls.fromProviderAsync(C);if(T.name=d.name,x)A.add(T,0);else{let E=A.get(0);l(E)&&A.remove(E),A.add(T,0)}this._currentImageryLayers.push(T)}}c(d),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;let u=Ce.observable();Ce.defineProperty(this,"selectedTerrain",{get:function(){return u()},set:function(d){if(u()===d){this.dropDownVisible=!1;return}let p;l(d)&&(p=d.creationCommand());let g=!1,h=this._globe.terrainProviderChanged.addEventListener(()=>{g=!0,h()}),x=new EF(Promise.resolve(p)).readyEvent.addEventListener(C=>{g||(this._globe.depthTestAgainstTerrain=!(C instanceof S_),this._globe.terrainProvider=C,x())});u(d),this.dropDownVisible=!1}});let f=this;this._toggleDropDown=En(function(){f.dropDownVisible=!f.dropDownVisible}),this.selectedImagery=y(e.selectedImageryProviderViewModel,n[0]),this.selectedTerrain=y(e.selectedTerrainProviderViewModel,i[0])}Object.defineProperties(LAe.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}});var l2=LAe;function cH(e,t){e=In(e);let n=new l2(t),i=document.createElement("button");i.type="button",i.className="cesium-button cesium-toolbar-button",i.setAttribute("data-bind","attr: { title: buttonTooltip },click: toggleDropDown"),e.appendChild(i);let o=document.createElement("img");o.setAttribute("draggable","false"),o.className="cesium-baseLayerPicker-selected",o.setAttribute("data-bind","attr: { src: buttonImageUrl }, visible: !!buttonImageUrl"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-baseLayerPicker-dropDown",r.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-dropDown-visible" : dropDownVisible }'),e.appendChild(r);let s=document.createElement("div");s.className="cesium-baseLayerPicker-sectionTitle",s.setAttribute("data-bind","visible: imageryProviderViewModels.length > 0"),s.innerHTML="Imagery",r.appendChild(s);let a=document.createElement("div");a.className="cesium-baseLayerPicker-section",a.setAttribute("data-bind","foreach: _imageryProviders"),r.appendChild(a);let c=document.createElement("div");c.className="cesium-baseLayerPicker-category",a.appendChild(c);let u=document.createElement("div");u.className="cesium-baseLayerPicker-categoryTitle",u.setAttribute("data-bind","text: name"),c.appendChild(u);let f=document.createElement("div");f.className="cesium-baseLayerPicker-choices",f.setAttribute("data-bind","foreach: providers"),c.appendChild(f);let d=document.createElement("div");d.className="cesium-baseLayerPicker-item",d.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedImagery },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedImagery = $data; }'),f.appendChild(d);let p=document.createElement("img");p.className="cesium-baseLayerPicker-itemIcon",p.setAttribute("data-bind","attr: { src: iconUrl }"),p.setAttribute("draggable","false"),d.appendChild(p);let g=document.createElement("div");g.className="cesium-baseLayerPicker-itemLabel",g.setAttribute("data-bind","text: name"),d.appendChild(g);let h=document.createElement("div");h.className="cesium-baseLayerPicker-sectionTitle",h.setAttribute("data-bind","visible: terrainProviderViewModels.length > 0"),h.innerHTML="Terrain",r.appendChild(h);let A=document.createElement("div");A.className="cesium-baseLayerPicker-section",A.setAttribute("data-bind","foreach: _terrainProviders"),r.appendChild(A);let x=document.createElement("div");x.className="cesium-baseLayerPicker-category",A.appendChild(x);let C=document.createElement("div");C.className="cesium-baseLayerPicker-categoryTitle",C.setAttribute("data-bind","text: name"),x.appendChild(C);let T=document.createElement("div");T.className="cesium-baseLayerPicker-choices",T.setAttribute("data-bind","foreach: providers"),x.appendChild(T);let E=document.createElement("div");E.className="cesium-baseLayerPicker-item",E.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),T.appendChild(E);let S=document.createElement("img");S.className="cesium-baseLayerPicker-itemIcon",S.setAttribute("data-bind","attr: { src: iconUrl }"),S.setAttribute("draggable","false"),E.appendChild(S);let v=document.createElement("div");v.className="cesium-baseLayerPicker-itemLabel",v.setAttribute("data-bind","text: name"),E.appendChild(v),Ce.applyBindings(n,i),Ce.applyBindings(n,r),this._viewModel=n,this._container=e,this._element=i,this._dropPanel=r,this._closeDropDown=function(D){i.contains(D.target)||r.contains(D.target)||(n.dropDownVisible=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(cH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});cH.prototype.isDestroyed=function(){return!1};cH.prototype.destroy=function(){return Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Ce.cleanNode(this._element),Ce.cleanNode(this._dropPanel),this._container.removeChild(this._element),this._container.removeChild(this._dropPanel),ue(this)};var u2=cH;function NAe(e){let t=e.creationFunction;l(t.canExecute)||(t=En(t)),this._creationCommand=t,this.name=e.name,this.tooltip=e.tooltip,this.iconUrl=e.iconUrl,this._category=y(e.category,""),Ce.track(this,["name","tooltip","iconUrl"])}Object.defineProperties(NAe.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}});var hs=NAe;function Vgt(){let e=[];return e.push(new hs({name:"Bing Maps Aerial",iconUrl:en("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return I_({style:am.AERIAL})}})),e.push(new hs({name:"Bing Maps Aerial with Labels",iconUrl:en("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return I_({style:am.AERIAL_WITH_LABELS})}})),e.push(new hs({name:"Bing Maps Roads",iconUrl:en("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return I_({style:am.ROAD})}})),e.push(new hs({name:"ArcGIS World Imagery",iconUrl:en("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png"),tooltip:`ArcGIS World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 nin select communities). For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9`,category:"Other",creationFunction:function(){return Ah.fromBasemapType(rm.SATELLITE,{enablePickFeatures:!1})}})),e.push(new hs({name:"ArcGIS World Hillshade",iconUrl:en("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png"),tooltip:`ArcGIS World Hillshade map portrays elevation as an artistic hillshade. This map is designed to be used as a backdrop for topographical, soil, hydro, landcover or other outdoor recreational maps. The map was compiled from a variety of sources from several data providers. The basemap has global coverage down to a scale of ~1:72k. In select areas of the United States and Europe, coverage is available down to ~1:9k. For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1b243539f4514b6ba35e7d995890db1d`,category:"Other",creationFunction:function(){return Ah.fromBasemapType(rm.HILLSHADE,{enablePickFeatures:!1})}})),e.push(new hs({name:"Esri World Ocean",iconUrl:en("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png"),tooltip:`ArcGIS World Ocean map is designed to be used as a base map by marine GIS professionals and as a reference map by anyone interested in ocean data. The base map features marine bathymetry. Land features include inland waters and roads overlaid on land cover and shaded relief imagery. The map was compiled from a variety of best available sources from several data providers, including General Bathymetric Chart of the Oceans GEBCO_08 Grid, National Oceanic and Atmospheric Administration (NOAA), and National Geographic, Garmin, HERE, Geonames.org, and Esri, and various other contributors. The base map currently provides coverage for the world down to a scale of ~1:577k, and coverage down to 1:72k in US coastal areas, and various other areas. Coverage down to ~ 1:9k is available limited areas based on regional hydrographic survey data. The base map was designed and developed by Esri. For more information on this map, including our terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1e126e7520f9466c9ca28b8f28b5e500`,category:"Other",creationFunction:function(){return Ah.fromBasemapType(rm.OCEANS,{enablePickFeatures:!1})}})),e.push(new hs({name:"Open\xADStreet\xADMap",iconUrl:en("Widgets/Images/ImageryProviders/openStreetMap.png"),tooltip:`OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world. +http://www.openstreetmap.org`,category:"Other",creationFunction:function(){return new xC({url:"https://a.tile.openstreetmap.org/"})}})),e.push(new hs({name:"Stamen Watercolor",iconUrl:en("Widgets/Images/ImageryProviders/stamenWatercolor.png"),tooltip:`Reminiscent of hand drawn maps, Stamen watercolor maps apply raster effect area washes and organic edges over a paper texture to add warm pop to any map. +http://maps.stamen.com`,category:"Other",creationFunction:function(){return new xC({url:"https://stamen-tiles.a.ssl.fastly.net/watercolor/",credit:"Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA."})}})),e.push(new hs({name:"Stamen Toner",iconUrl:en("Widgets/Images/ImageryProviders/stamenToner.png"),tooltip:`A high contrast black and white map. +http://maps.stamen.com`,category:"Other",creationFunction:function(){return new xC({url:"https://stamen-tiles.a.ssl.fastly.net/toner/",credit:"Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA."})}})),e.push(new hs({name:"Sentinel-2",iconUrl:en("Widgets/Images/ImageryProviders/sentinel-2.png"),tooltip:"Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).",category:"Cesium ion",creationFunction:function(){return Bf.fromAssetId(3954)}})),e.push(new hs({name:"Blue Marble",iconUrl:en("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return Bf.fromAssetId(3845)}})),e.push(new hs({name:"Earth at night",iconUrl:en("Widgets/Images/ImageryProviders/earthAtNight.png"),tooltip:"The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.",category:"Cesium ion",creationFunction:function(){return Bf.fromAssetId(3812)}})),e.push(new hs({name:"Natural Earth\xA0II",iconUrl:en("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:`Natural Earth II, darkened for contrast. +http://www.naturalearthdata.com/`,category:"Cesium ion",creationFunction:function(){return xh.fromUrl(en("Assets/Textures/NaturalEarthII"))}})),e}var f2=Vgt;function kgt(){let e=[];return e.push(new hs({name:"WGS84 Ellipsoid",iconUrl:en("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new S_}})),e.push(new hs({name:"Cesium World Terrain",iconUrl:en("Widgets/Images/TerrainProviders/CesiumWorldTerrain.png"),tooltip:"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion",category:"Cesium ion",creationFunction:function(){return bC({requestWaterMask:!0,requestVertexNormals:!0})}})),e}var d2=kgt;function zgt(e){return function(t){let n=e._scene.pick(t.position);l(n)&&n.primitive instanceof Ca&&(e.tileset=n.primitive),e.pickActive=!1}}function UAe(e,t){t?e._eventHandler.setInputAction(function(n){let i=e._scene.pick(n.endPosition);l(i)&&i.primitive instanceof Ca&&(e.tileset=i.primitive)},Cn.MOUSE_MOVE):(e._eventHandler.removeInputAction(Cn.MOUSE_MOVE),e.picking=e.picking)}var Hgt={maximumFractionDigits:3};function m2(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,Hgt):Math.round(t).toLocaleString()}function h2(e,t){if(!l(e))return"";let n=t?e._statisticsPerPass[Po.PICK]:e._statisticsPerPass[Po.RENDER],i='<ul class="cesium-cesiumInspector-statistics">';return i+=`<li><strong>Visited: </strong>${n.visited.toLocaleString()}</li><li><strong>Selected: </strong>${n.selected.toLocaleString()}</li><li><strong>Commands: </strong>${n.numberOfCommands.toLocaleString()}</li>`,i+="</ul>",t||(i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Requests: </strong>${n.numberOfPendingRequests.toLocaleString()}</li><li><strong>Attempted: </strong>${n.numberOfAttemptedRequests.toLocaleString()}</li><li><strong>Processing: </strong>${n.numberOfTilesProcessing.toLocaleString()}</li><li><strong>Content Ready: </strong>${n.numberOfTilesWithContentReady.toLocaleString()}</li><li><strong>Total: </strong>${n.numberOfTilesTotal.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Features Selected: </strong>${n.numberOfFeaturesSelected.toLocaleString()}</li><li><strong>Features Loaded: </strong>${n.numberOfFeaturesLoaded.toLocaleString()}</li><li><strong>Points Selected: </strong>${n.numberOfPointsSelected.toLocaleString()}</li><li><strong>Points Loaded: </strong>${n.numberOfPointsLoaded.toLocaleString()}</li><li><strong>Triangles Selected: </strong>${n.numberOfTrianglesSelected.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Tiles styled: </strong>${n.numberOfTilesStyled.toLocaleString()}</li><li><strong>Features styled: </strong>${n.numberOfFeaturesStyled.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Children Union Culled: </strong>${n.numberOfTilesCulledWithChildrenUnion.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Geometry Memory (MB): </strong>${m2(n.geometryByteLength)}</li><li><strong>Texture Memory (MB): </strong>${m2(n.texturesByteLength)}</li><li><strong>Batch Table Memory (MB): </strong>${m2(n.batchTableByteLength)}</li>`,i+="</ul>"),i}function VAe(){let e=Bi.statistics;return` + <ul class="cesium-cesiumInspector-statistics"> + <li><strong>Geometry Memory (MB): </strong>${m2(e.geometryByteLength)}</li> + <li><strong>Texture Memory (MB): </strong>${m2(e.texturesByteLength)}</li> + </ul> + `}var Ggt=[{text:"Highlight",value:ul.HIGHLIGHT},{text:"Replace",value:ul.REPLACE},{text:"Mix",value:ul.MIX}],FAe=new z(1,1,0,.4),Wgt=new z,lH=new z;function la(e,t){let n=this,i=e.canvas;this._eventHandler=new Du(i),this._scene=e,this._performanceContainer=t,this._canvas=i,this._performanceDisplay=new R_({container:t}),this._statisticsText="",this._pickStatisticsText="",this._resourceCacheStatisticsText="",this._editorError="",this.performance=!1,this.showStatistics=!0,this.showPickStatistics=!0,this.showResourceCacheStatistics=!1,this.inspectorVisible=!0,this.tilesetVisible=!1,this.displayVisible=!1,this.updateVisible=!1,this.loggingVisible=!1,this.styleVisible=!1,this.tileDebugLabelsVisible=!1,this.optimizationVisible=!1,this.styleString="{}",this.hasEnabledWireframe=!1,this._tileset=void 0,this._feature=void 0,this._tile=void 0,Ce.track(this,["performance","inspectorVisible","_statisticsText","_pickStatisticsText","_resourceCacheStatisticsText","_editorError","showPickStatistics","showStatistics","showResourceCacheStatistics","tilesetVisible","displayVisible","updateVisible","loggingVisible","styleVisible","optimizationVisible","tileDebugLabelsVisible","styleString","_feature","_tile","_tileset","hasEnabledWireframe"]),this._properties=Ce.observable({}),this.properties=[],Ce.defineProperty(this,"properties",function(){let U=[],q=n._properties();for(let Y in q)q.hasOwnProperty(Y)&&U.push(Y);return U});let o=Ce.observable();Ce.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return o()},set:function(U){o(U),l(n._tileset)&&(n._tileset.dynamicScreenSpaceError=U)}}),this.dynamicScreenSpaceError=!1;let r=Ce.observable();Ce.defineProperty(this,"colorBlendMode",{get:function(){return r()},set:function(U){r(U),l(n._tileset)&&(n._tileset.colorBlendMode=U,n._scene.requestRender())}}),this.colorBlendMode=ul.HIGHLIGHT;let s=Ce.observable(),a=Ce.observable();Ce.defineProperty(this,"picking",{get:function(){return a()},set:function(U){a(U),U?n._eventHandler.setInputAction(function(q){let Y=e.pick(q.endPosition);if(Y instanceof xs?(n.feature=Y,n.tile=Y.content.tile):l(Y)&&l(Y.content)?(n.feature=void 0,n.tile=Y.content.tile):(n.feature=void 0,n.tile=void 0),!!l(n._tileset)){if(s&&l(Y)&&l(Y.content)){let Q;e.pickPositionSupported&&(Q=e.pickPosition(q.endPosition),l(Q)&&(n._tileset.debugPickPosition=Q)),n._tileset.debugPickedTile=Y.content.tile}else n._tileset.debugPickedTile=void 0;n._scene.requestRender()}},Cn.MOUSE_MOVE):(n.feature=void 0,n.tile=void 0,n._eventHandler.removeInputAction(Cn.MOUSE_MOVE))}}),this.picking=!0;let c=Ce.observable();Ce.defineProperty(this,"colorize",{get:function(){return c()},set:function(U){c(U),l(n._tileset)&&(n._tileset.debugColorizeTiles=U,n._scene.requestRender())}}),this.colorize=!1;let u=Ce.observable();Ce.defineProperty(this,"wireframe",{get:function(){return u()},set:function(U){u(U),l(n._tileset)&&(n._tileset.debugWireframe=U,n._scene.requestRender())}}),this.wireframe=!1;let f=Ce.observable();Ce.defineProperty(this,"showBoundingVolumes",{get:function(){return f()},set:function(U){f(U),l(n._tileset)&&(n._tileset.debugShowBoundingVolume=U,n._scene.requestRender())}}),this.showBoundingVolumes=!1;let d=Ce.observable();Ce.defineProperty(this,"showContentBoundingVolumes",{get:function(){return d()},set:function(U){d(U),l(n._tileset)&&(n._tileset.debugShowContentBoundingVolume=U,n._scene.requestRender())}}),this.showContentBoundingVolumes=!1;let p=Ce.observable();Ce.defineProperty(this,"showRequestVolumes",{get:function(){return p()},set:function(U){p(U),l(n._tileset)&&(n._tileset.debugShowViewerRequestVolume=U,n._scene.requestRender())}}),this.showRequestVolumes=!1;let g=Ce.observable();Ce.defineProperty(this,"freezeFrame",{get:function(){return g()},set:function(U){g(U),l(n._tileset)&&(n._tileset.debugFreezeFrame=U,n._scene.debugShowFrustumPlanes=U,n._scene.requestRender())}}),this.freezeFrame=!1,Ce.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return s()},set:function(U){s(U),l(n._tileset)&&(n._tileset.debugPickedTileLabelOnly=U,n._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;let h=Ce.observable();Ce.defineProperty(this,"showGeometricError",{get:function(){return h()},set:function(U){h(U),l(n._tileset)&&(n._tileset.debugShowGeometricError=U,n._scene.requestRender())}}),this.showGeometricError=!1;let A=Ce.observable();Ce.defineProperty(this,"showRenderingStatistics",{get:function(){return A()},set:function(U){A(U),l(n._tileset)&&(n._tileset.debugShowRenderingStatistics=U,n._scene.requestRender())}}),this.showRenderingStatistics=!1;let x=Ce.observable();Ce.defineProperty(this,"showMemoryUsage",{get:function(){return x()},set:function(U){x(U),l(n._tileset)&&(n._tileset.debugShowMemoryUsage=U,n._scene.requestRender())}}),this.showMemoryUsage=!1;let C=Ce.observable();Ce.defineProperty(this,"showUrl",{get:function(){return C()},set:function(U){C(U),l(n._tileset)&&(n._tileset.debugShowUrl=U,n._scene.requestRender())}}),this.showUrl=!1;let T=Ce.observable();Ce.defineProperty(this,"maximumScreenSpaceError",{get:function(){return T()},set:function(U){U=Number(U),isNaN(U)||(T(U),l(n._tileset)&&(n._tileset.maximumScreenSpaceError=U))}}),this.maximumScreenSpaceError=16;let E=Ce.observable();Ce.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return E()},set:function(U){U=Number(U),isNaN(U)||(E(U),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=U))}}),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,Ce.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(E(),1/6)},set:function(U){E(Math.pow(U,6))}});let S=Ce.observable();Ce.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return S()},set:function(U){U=Number(U),isNaN(U)||(S(U),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorFactor=U))}}),this.dynamicScreenSpaceErrorFactor=4;let v=zgt(this),D=Ce.observable();Ce.defineProperty(this,"pickActive",{get:function(){return D()},set:function(U){D(U),U?n._eventHandler.setInputAction(v,Cn.LEFT_CLICK):n._eventHandler.removeInputAction(Cn.LEFT_CLICK)}});let O=Ce.observable();Ce.defineProperty(this,"pointCloudShading",{get:function(){return O()},set:function(U){O(U),l(n._tileset)&&(n._tileset.pointCloudShading.attenuation=U)}}),this.pointCloudShading=!1;let M=Ce.observable();Ce.defineProperty(this,"geometricErrorScale",{get:function(){return M()},set:function(U){U=Number(U),isNaN(U)||(M(U),l(n._tileset)&&(n._tileset.pointCloudShading.geometricErrorScale=U))}}),this.geometricErrorScale=1;let L=Ce.observable();Ce.defineProperty(this,"maximumAttenuation",{get:function(){return L()},set:function(U){U=Number(U),isNaN(U)||(L(U),l(n._tileset)&&(n._tileset.pointCloudShading.maximumAttenuation=U===0?void 0:U))}}),this.maximumAttenuation=0;let N=Ce.observable();Ce.defineProperty(this,"baseResolution",{get:function(){return N()},set:function(U){U=Number(U),isNaN(U)||(N(U),l(n._tileset)&&(n._tileset.pointCloudShading.baseResolution=U===0?void 0:U))}}),this.baseResolution=0;let _=Ce.observable();Ce.defineProperty(this,"eyeDomeLighting",{get:function(){return _()},set:function(U){_(U),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLighting=U)}}),this.eyeDomeLighting=!1;let b=Ce.observable();Ce.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return b()},set:function(U){U=Number(U),isNaN(U)||(b(U),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingStrength=U))}}),this.eyeDomeLightingStrength=1;let w=Ce.observable();Ce.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return w()},set:function(U){U=Number(U),isNaN(U)||(w(U),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingRadius=U))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;let I=Ce.observable();Ce.defineProperty(this,"skipLevelOfDetail",{get:function(){return I()},set:function(U){I(U),l(n._tileset)&&(n._tileset.skipLevelOfDetail=U)}}),this.skipLevelOfDetail=!0;let R=Ce.observable();Ce.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return R()},set:function(U){U=Number(U),isNaN(U)||(R(U),l(n._tileset)&&(n._tileset.skipScreenSpaceErrorFactor=U))}}),this.skipScreenSpaceErrorFactor=16;let F=Ce.observable();Ce.defineProperty(this,"baseScreenSpaceError",{get:function(){return F()},set:function(U){U=Number(U),isNaN(U)||(F(U),l(n._tileset)&&(n._tileset.baseScreenSpaceError=U))}}),this.baseScreenSpaceError=1024;let k=Ce.observable();Ce.defineProperty(this,"skipLevels",{get:function(){return k()},set:function(U){U=Number(U),isNaN(U)||(k(U),l(n._tileset)&&(n._tileset.skipLevels=U))}}),this.skipLevels=1;let V=Ce.observable();Ce.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return V()},set:function(U){V(U),l(n._tileset)&&(n._tileset.immediatelyLoadDesiredLevelOfDetail=U)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;let G=Ce.observable();Ce.defineProperty(this,"loadSiblings",{get:function(){return G()},set:function(U){G(U),l(n._tileset)&&(n._tileset.loadSiblings=U)}}),this.loadSiblings=!1,this._style=void 0,this._shouldStyle=!1,this._definedProperties=["properties","dynamicScreenSpaceError","colorBlendMode","picking","colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","maximumScreenSpaceError","dynamicScreenSpaceErrorDensity","baseScreenSpaceError","skipScreenSpaceErrorFactor","skipLevelOfDetail","skipLevels","immediatelyLoadDesiredLevelOfDetail","loadSiblings","dynamicScreenSpaceErrorDensitySliderValue","dynamicScreenSpaceErrorFactor","pickActive","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl","pointCloudShading","geometricErrorScale","maximumAttenuation","baseResolution","eyeDomeLighting","eyeDomeLightingStrength","eyeDomeLightingRadius"],this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()}),l(this._tileset)||UAe(this,!0)}Object.defineProperties(la.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},statisticsText:{get:function(){return this._statisticsText}},pickStatisticsText:{get:function(){return this._pickStatisticsText}},resourceCacheStatisticsText:{get:function(){return this._resourceCacheStatisticsText}},colorBlendModes:{get:function(){return Ggt}},editorError:{get:function(){return this._editorError}},tileset:{get:function(){return this._tileset},set:function(e){if(this._tileset=e,this._style=void 0,this.styleString="{}",this.feature=void 0,this.tile=void 0,l(e)){let t=this;e._readyPromise.then(function(r){t.isDestroyed()||t._properties(r.properties)});let n=["colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl"],i=n.length;for(let r=0;r<i;++r){let s=n[r];this[s]=this[s]}this.maximumScreenSpaceError=e.maximumScreenSpaceError,this.dynamicScreenSpaceError=e.dynamicScreenSpaceError,this.dynamicScreenSpaceErrorDensity=e.dynamicScreenSpaceErrorDensity,this.dynamicScreenSpaceErrorFactor=e.dynamicScreenSpaceErrorFactor,this.colorBlendMode=e.colorBlendMode,this.skipLevelOfDetail=e.skipLevelOfDetail,this.skipScreenSpaceErrorFactor=e.skipScreenSpaceErrorFactor,this.baseScreenSpaceError=e.baseScreenSpaceError,this.skipLevels=e.skipLevels,this.immediatelyLoadDesiredLevelOfDetail=e.immediatelyLoadDesiredLevelOfDetail,this.loadSiblings=e.loadSiblings,this.hasEnabledWireframe=e._enableDebugWireframe;let o=e.pointCloudShading;this.pointCloudShading=o.attenuation,this.geometricErrorScale=o.geometricErrorScale,this.maximumAttenuation=o.maximumAttenuation?o.maximumAttenuation:0,this.baseResolution=o.baseResolution?o.baseResolution:0,this.eyeDomeLighting=o.eyeDomeLighting,this.eyeDomeLightingStrength=o.eyeDomeLightingStrength,this.eyeDomeLightingRadius=o.eyeDomeLightingRadius,this._scene.requestRender()}else this._properties({});this._statisticsText=h2(e,!1),this._pickStatisticsText=h2(e,!0),this._resourceCacheStatisticsText=VAe(),UAe(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature===e)return;let t=this._feature;l(t)&&!t.content.isDestroyed()&&(!this.colorize&&l(this._style)?t.color=l(this._style.color)?this._style.color.evaluateColor(t,Wgt):z.WHITE:t.color=lH,this._scene.requestRender()),l(e)&&(z.clone(e.color,lH),e.color=FAe,this._scene.requestRender()),this._feature=e}},tile:{get:function(){return this._tile},set:function(e){if(this._tile===e)return;let t=this._tile;l(t)&&!t.isDestroyed()&&!eK(t.content)&&(t.color=lH,this._scene.requestRender()),l(e)&&!eK(e.content)&&(z.clone(e.color,lH),e.color=FAe,this._scene.requestRender()),this._tile=e}}});function eK(e){if(!l(e))return!1;if(e.featuresLength>0)return!0;let t=e.innerContents;if(l(t)){let n=t.length;for(let i=0;i<n;++i)if(!eK(t[i]))return!1;return!0}return!1}la.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive};la.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};la.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible};la.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};la.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible};la.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible};la.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible};la.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible};la.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible};la.prototype.trimTilesCache=function(){l(this._tileset)&&this._tileset.trimLoadedTiles()};la.prototype.compileStyle=function(){let e=this._tileset;if(!(!l(e)||this.styleString===JSON.stringify(e.style))){this._editorError="";try{this.styleString.length===0&&(this.styleString="{}"),this._style=new k_(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(t){this._editorError=t.toString()}this.feature=this._feature,this.tile=this._tile}};la.prototype.styleEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,u;if(t.shiftKey)for(u=0;u<c;++u)a[u][0]===" "&&(a[u][1]===" "?(a[u]=a[u].substr(2),r-=2):(a[u]=a[u].substr(1),r-=1));else for(u=0;u<c;++u)a[u]=` ${a[u]}`,r+=2;let f=a.join(` +`);n.value=n.value.slice(0,i)+f+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileStyle();return!0};la.prototype._update=function(){let e=this._tileset;if(this.performance&&this._performanceDisplay.update(),l(e)){if(e.isDestroyed()){this.tile=void 0,this.feature=void 0,this.tileset=void 0;return}let t=e.style;this._style!==e.style&&(this._shouldStyle?(e.style=this._style,this._shouldStyle=!1):(this._style=t,this.styleString=JSON.stringify(t.style,null," ")))}this.showStatistics&&(this._statisticsText=h2(e,!1),this._pickStatisticsText=h2(e,!0),this._resourceCacheStatisticsText=VAe())};la.prototype.isDestroyed=function(){return!1};la.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();let e=this;return this._definedProperties.forEach(function(t){Ce.getObservable(e,t).dispose()}),ue(this)};la.getStatistics=h2;var p2=la;function uH(e,t){e=In(e);let n=document.createElement("div"),i=document.createElement("div");i.setAttribute("data-bind","visible: performance");let o=new p2(t,i);this._viewModel=o,this._container=e,this._element=n;let r=document.createElement("div");r.textContent="3D Tiles Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleInspector"),n.appendChild(r),n.className="cesium-cesiumInspector cesium-3DTilesInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",n.appendChild(s);let a=Da.createSection,c=Da.createCheckbox,u=Da.createRangeInput,f=Da.createButton,d=a(s,"Tileset","tilesetVisible","toggleTileset"),p=a(s,"Display","displayVisible","toggleDisplay"),g=a(s,"Update","updateVisible","toggleUpdate"),h=a(s,"Logging","loggingVisible","toggleLogging"),A=a(s,"Tile Debug Labels","tileDebugLabelsVisible","toggleTileDebugLabels"),x=a(s,"Style","styleVisible","toggleStyle"),C=a(s,"Optimization","optimizationVisible","toggleOptimization"),T=document.createElement("div");T.className="field-group";let E=document.createElement("label");E.className="field-label",E.appendChild(document.createTextNode("Properties: "));let S=document.createElement("div");S.setAttribute("data-bind","text: properties"),T.appendChild(E),T.appendChild(S),d.appendChild(T),d.appendChild(f("Pick Tileset","togglePickTileset","pickActive")),d.appendChild(f("Trim Tiles Cache","trimTilesCache")),d.appendChild(c("Enable Picking","picking")),p.appendChild(c("Colorize","colorize"));let v=p.appendChild(c("Wireframe","wireframe","_tileset === undefined || hasEnabledWireframe")),D=document.createElement("p");D.setAttribute("data-bind","visible: _tileset !== undefined && !hasEnabledWireframe"),D.setAttribute("class","cesium-3DTilesInspector-disabledElementsInfo"),D.innerText="Set enableDebugWireframe to true in the tileset constructor to enable this option.",v.appendChild(D),p.appendChild(c("Bounding Volumes","showBoundingVolumes")),p.appendChild(c("Content Volumes","showContentBoundingVolumes")),p.appendChild(c("Request Volumes","showRequestVolumes")),p.appendChild(c("Point Cloud Shading","pointCloudShading"));let O=document.createElement("div");O.setAttribute("data-bind","visible: pointCloudShading"),O.appendChild(u("Geometric Error Scale","geometricErrorScale",0,2,.01)),O.appendChild(u("Maximum Attenuation","maximumAttenuation",0,32,1)),O.appendChild(u("Base Resolution","baseResolution",0,1,.01)),O.appendChild(c("Eye Dome Lighting (EDL)","eyeDomeLighting")),p.appendChild(O);let M=document.createElement("div");M.setAttribute("data-bind","visible: eyeDomeLighting"),M.appendChild(u("EDL Strength","eyeDomeLightingStrength",0,2,.1)),M.appendChild(u("EDL Radius","eyeDomeLightingRadius",0,4,.1)),O.appendChild(M),g.appendChild(c("Freeze Frame","freezeFrame")),g.appendChild(c("Dynamic Screen Space Error","dynamicScreenSpaceError"));let L=document.createElement("div");L.appendChild(u("Maximum Screen Space Error","maximumScreenSpaceError",0,128,1)),g.appendChild(L);let N=document.createElement("div");N.setAttribute("data-bind","visible: dynamicScreenSpaceError"),N.appendChild(u("Screen Space Error Density","dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"dynamicScreenSpaceErrorDensity")),N.appendChild(u("Screen Space Error Factor","dynamicScreenSpaceErrorFactor",1,10,.1)),g.appendChild(N),h.appendChild(c("Performance","performance")),h.appendChild(i),h.appendChild(c("Statistics","showStatistics"));let _=document.createElement("div");_.className="cesium-3dTilesInspector-statistics",_.setAttribute("data-bind","html: statisticsText, visible: showStatistics"),h.appendChild(_),h.appendChild(c("Pick Statistics","showPickStatistics"));let b=document.createElement("div");b.className="cesium-3dTilesInspector-statistics",b.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),h.appendChild(b),h.appendChild(c("Resource Cache Statistics","showResourceCacheStatistics"));let w=document.createElement("div");w.className="cesium-3dTilesInspector-statistics",w.setAttribute("data-bind","html: resourceCacheStatisticsText, visible: showResourceCacheStatistics"),h.appendChild(w);let I=document.createElement("div");x.appendChild(I),I.appendChild(document.createTextNode("Color Blend Mode: "));let R=document.createElement("select");R.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),I.appendChild(R);let F=document.createElement("textarea");F.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),I.className="cesium-cesiumInspector-styleEditor",I.appendChild(F);let k=f("Compile (Ctrl+Enter)","compileStyle");I.appendChild(k);let V=document.createElement("div");V.className="cesium-cesiumInspector-error",V.setAttribute("data-bind","text: editorError"),I.appendChild(V),A.appendChild(c("Show Picked Only","showOnlyPickedTileDebugLabel")),A.appendChild(c("Geometric Error","showGeometricError")),A.appendChild(c("Rendering Statistics","showRenderingStatistics")),A.appendChild(c("Memory Usage (MB)","showMemoryUsage")),A.appendChild(c("Url","showUrl")),C.appendChild(c("Skip Tile LODs","skipLevelOfDetail"));let G=document.createElement("div");G.appendChild(u("Skip SSE Factor","skipScreenSpaceErrorFactor",1,50,1)),C.appendChild(G);let U=document.createElement("div");U.appendChild(u("SSE before skipping LOD","baseScreenSpaceError",0,4096,1)),C.appendChild(U);let q=document.createElement("div");q.appendChild(u("Min. levels to skip","skipLevels",0,10,1)),C.appendChild(q),C.appendChild(c("Load only tiles that meet the max SSE.","immediatelyLoadDesiredLevelOfDetail")),C.appendChild(c("Load siblings of visible tiles","loadSiblings")),Ce.applyBindings(o,n)}Object.defineProperties(uH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});uH.prototype.isDestroyed=function(){return!1};uH.prototype.destroy=function(){return Ce.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var _2=uH;function jgt(e){let t;if(l(e)){t="Command Statistics";let n=e.commandsInFrustums;for(let i in n)if(n.hasOwnProperty(i)){let o=parseInt(i,10),r;if(o===7)r="1, 2 and 3";else{let s=[];for(let a=2;a>=0;a--){let c=Math.pow(2,a);o>=c&&(s.push(a+1),o-=c)}r=s.reverse().join(" and ")}t+=`<br>    ${n[i]} in frustum ${r}`}t+=`<br>Total: ${e.totalCommands}`}return t}function tK(e,t,n){let i=Math.min(n,t);return i=Math.max(i,e),i}var Ygt=new Dn,qgt=new m;function g2(e,t){let n=this,i=e.canvas,o=new Du(i);this._eventHandler=o,this._scene=e,this._canvas=i,this._primitive=void 0,this._tile=void 0,this._modelMatrixPrimitive=void 0,this._performanceDisplay=void 0,this._performanceContainer=t;let r=this._scene.globe;r.depthTestAgainstTerrain=!0,this.frustums=!1,this.frustumPlanes=!1,this.performance=!1,this.shaderCacheText="",this.primitiveBoundingSphere=!1,this.primitiveReferenceFrame=!1,this.filterPrimitive=!1,this.tileBoundingSphere=!1,this.filterTile=!1,this.wireframe=!1,this.depthFrustum=1,this._numberOfFrustums=1,this.suspendUpdates=!1,this.tileCoordinates=!1,this.frustumStatisticText=!1,this.tileText="",this.hasPickedPrimitive=!1,this.hasPickedTile=!1,this.pickPrimitiveActive=!1,this.pickTileActive=!1,this.dropDownVisible=!0,this.generalVisible=!0,this.primitivesVisible=!1,this.terrainVisible=!1,this.depthFrustumText="",Ce.track(this,["frustums","frustumPlanes","performance","shaderCacheText","primitiveBoundingSphere","primitiveReferenceFrame","filterPrimitive","tileBoundingSphere","filterTile","wireframe","depthFrustum","suspendUpdates","tileCoordinates","frustumStatisticText","tileText","hasPickedPrimitive","hasPickedTile","pickPrimitiveActive","pickTileActive","dropDownVisible","generalVisible","primitivesVisible","terrainVisible","depthFrustumText"]),this._toggleDropDown=En(function(){n.dropDownVisible=!n.dropDownVisible}),this._toggleGeneral=En(function(){n.generalVisible=!n.generalVisible}),this._togglePrimitives=En(function(){n.primitivesVisible=!n.primitivesVisible}),this._toggleTerrain=En(function(){n.terrainVisible=!n.terrainVisible}),this._frustumsSubscription=Ce.getObservable(this,"frustums").subscribe(function(u){n._scene.debugShowFrustums=u,n._scene.requestRender()}),this._frustumPlanesSubscription=Ce.getObservable(this,"frustumPlanes").subscribe(function(u){n._scene.debugShowFrustumPlanes=u,n._scene.requestRender()}),this._performanceSubscription=Ce.getObservable(this,"performance").subscribe(function(u){u?n._performanceDisplay=new R_({container:n._performanceContainer}):n._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=En(function(){return n._primitive.debugShowBoundingVolume=n.primitiveBoundingSphere,n._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=Ce.getObservable(this,"primitiveBoundingSphere").subscribe(function(){n._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=En(function(){if(n.primitiveReferenceFrame){let u=n._primitive.modelMatrix;n._modelMatrixPrimitive=new rF({modelMatrix:u}),n._scene.primitives.add(n._modelMatrixPrimitive)}else l(n._modelMatrixPrimitive)&&(n._scene.primitives.remove(n._modelMatrixPrimitive),n._modelMatrixPrimitive=void 0);return n._scene.requestRender(),!0}),this._primitiveReferenceFrameSubscription=Ce.getObservable(this,"primitiveReferenceFrame").subscribe(function(){n._showPrimitiveReferenceFrame()}),this._doFilterPrimitive=En(function(){return n.filterPrimitive?n._scene.debugCommandFilter=function(u){return l(n._modelMatrixPrimitive)&&u.owner===n._modelMatrixPrimitive._primitive?!0:l(n._primitive)?u.owner===n._primitive||u.owner===n._primitive._billboardCollection||u.owner.primitive===n._primitive:!1}:n._scene.debugCommandFilter=void 0,!0}),this._filterPrimitiveSubscription=Ce.getObservable(this,"filterPrimitive").subscribe(function(){n._doFilterPrimitive(),n._scene.requestRender()}),this._wireframeSubscription=Ce.getObservable(this,"wireframe").subscribe(function(u){r._surface.tileProvider._debug.wireframe=u,n._scene.requestRender()}),this._depthFrustumSubscription=Ce.getObservable(this,"depthFrustum").subscribe(function(u){n._scene.debugShowDepthFrustum=u,n._scene.requestRender()}),this._incrementDepthFrustum=En(function(){let u=n.depthFrustum+1;return n.depthFrustum=tK(1,n._numberOfFrustums,u),n._scene.requestRender(),!0}),this._decrementDepthFrustum=En(function(){let u=n.depthFrustum-1;return n.depthFrustum=tK(1,n._numberOfFrustums,u),n._scene.requestRender(),!0}),this._suspendUpdatesSubscription=Ce.getObservable(this,"suspendUpdates").subscribe(function(u){r._surface._debug.suspendLodUpdate=u,u||(n.filterTile=!1)});let s;this._showTileCoordinates=En(function(){return n.tileCoordinates&&!l(s)?s=e.imageryLayers.addImageryProvider(new SF({tilingScheme:e.terrainProvider.tilingScheme})):!n.tileCoordinates&&l(s)&&(e.imageryLayers.remove(s),s=void 0),!0}),this._tileCoordinatesSubscription=Ce.getObservable(this,"tileCoordinates").subscribe(function(){n._showTileCoordinates(),n._scene.requestRender()}),this._tileBoundingSphereSubscription=Ce.getObservable(this,"tileBoundingSphere").subscribe(function(){n._showTileBoundingSphere(),n._scene.requestRender()}),this._showTileBoundingSphere=En(function(){return n.tileBoundingSphere?r._surface.tileProvider._debug.boundingSphereTile=n._tile:r._surface.tileProvider._debug.boundingSphereTile=void 0,n._scene.requestRender(),!0}),this._doFilterTile=En(function(){return n.filterTile?(n.suspendUpdates=!0,r._surface._tilesToRender=[],l(n._tile)&&n._tile.renderable&&r._surface._tilesToRender.push(n._tile)):n.suspendUpdates=!1,!0}),this._filterTileSubscription=Ce.getObservable(this,"filterTile").subscribe(function(){n.doFilterTile(),n._scene.requestRender()});function a(u){let f=n._scene.pick({x:u.position.x,y:u.position.y});l(f)&&(n.primitive=l(f.collection)?f.collection:f.primitive),n._scene.requestRender(),n.pickPrimitiveActive=!1}this._pickPrimitive=En(function(){n.pickPrimitiveActive=!n.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=Ce.getObservable(this,"pickPrimitiveActive").subscribe(function(u){u?o.setInputAction(a,Cn.LEFT_CLICK):o.removeInputAction(Cn.LEFT_CLICK)});function c(u){let f,d=r.ellipsoid,p=n._scene.camera.getPickRay(u.position,Ygt),g=r.pick(p,n._scene,qgt);if(l(g)){let h=d.cartesianToCartographic(g),A=r._surface.tileProvider._tilesToRenderByTextureCount;for(let x=0;!f&&x<A.length;++x){let C=A[x];if(l(C))for(let T=0;!f&&T<C.length;++T){let E=C[T];le.contains(E.rectangle,h)&&(f=E)}}}n.tile=f,n.pickTileActive=!1}this._pickTile=En(function(){n.pickTileActive=!n.pickTileActive}),this._pickTileActiveSubscription=Ce.getObservable(this,"pickTileActive").subscribe(function(u){u?o.setInputAction(c,Cn.LEFT_CLICK):o.removeInputAction(Cn.LEFT_CLICK)}),this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()})}Object.defineProperties(g2.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},toggleDropDown:{get:function(){return this._toggleDropDown}},showPrimitiveBoundingSphere:{get:function(){return this._showPrimitiveBoundingSphere}},showPrimitiveReferenceFrame:{get:function(){return this._showPrimitiveReferenceFrame}},doFilterPrimitive:{get:function(){return this._doFilterPrimitive}},incrementDepthFrustum:{get:function(){return this._incrementDepthFrustum}},decrementDepthFrustum:{get:function(){return this._decrementDepthFrustum}},showTileCoordinates:{get:function(){return this._showTileCoordinates}},showTileBoundingSphere:{get:function(){return this._showTileBoundingSphere}},doFilterTile:{get:function(){return this._doFilterTile}},toggleGeneral:{get:function(){return this._toggleGeneral}},togglePrimitives:{get:function(){return this._togglePrimitives}},toggleTerrain:{get:function(){return this._toggleTerrain}},pickPrimitive:{get:function(){return this._pickPrimitive}},pickTile:{get:function(){return this._pickTile}},selectParent:{get:function(){let e=this;return En(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){let e=this;return En(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){let e=this;return En(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){let e=this;return En(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){let e=this;return En(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(e){let t=this._primitive;e!==t&&(this.hasPickedPrimitive=!0,l(t)&&(t.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,l(this._modelMatrixPrimitive)&&(this._scene.primitives.remove(this._modelMatrixPrimitive),this._modelMatrixPrimitive=void 0),this._primitive=e,e.show=!1,setTimeout(function(){e.show=!0},50),this.showPrimitiveBoundingSphere(),this.showPrimitiveReferenceFrame(),this.doFilterPrimitive())}},tile:{get:function(){return this._tile},set:function(e){if(l(e)){this.hasPickedTile=!0;let t=this._tile;if(e!==t){this.tileText=`L: ${e.level} X: ${e.x} Y: ${e.y}`,this.tileText+=`<br>SW corner: ${e.rectangle.west}, ${e.rectangle.south}`,this.tileText+=`<br>NE corner: ${e.rectangle.east}, ${e.rectangle.north}`;let n=e.data;l(n)&&l(n.tileBoundingRegion)?this.tileText+=`<br>Min: ${n.tileBoundingRegion.minimumHeight} Max: ${n.tileBoundingRegion.maximumHeight}`:this.tileText+="<br>(Tile is not loaded)"}this._tile=e,this.showTileBoundingSphere(),this.doFilterTile()}else this.hasPickedTile=!1,this._tile=void 0}}});g2.prototype._update=function(){this.frustums&&(this.frustumStatisticText=jgt(this._scene.debugFrustumStatistics));let e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=tK(1,e,this.depthFrustum),this.depthFrustumText=`${this.depthFrustum} of ${e}`,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText=`Cached shaders: ${this._scene.context.shaderCache.numberOfShaders}`};g2.prototype.isDestroyed=function(){return!1};g2.prototype.destroy=function(){return this._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),ue(this)};var y2=g2;function fH(e,t){e=In(e);let n=document.createElement("div"),i=new y2(t,n);this._viewModel=i,this._container=e;let o=document.createElement("div");this._element=o;let r=document.createElement("div");r.textContent="Cesium Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleDropDown"),o.appendChild(r),o.className="cesium-cesiumInspector",o.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : dropDownVisible, "cesium-cesiumInspector-hidden" : !dropDownVisible }'),e.appendChild(this._element);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",o.appendChild(s);let a=Da.createSection,c=Da.createCheckbox,u=a(s,"General","generalVisible","toggleGeneral"),f=c("Show Frustums","frustums"),d=document.createElement("div");d.className="cesium-cesiumInspector-frustumStatistics",d.setAttribute("data-bind","visible: frustums, html: frustumStatisticText"),f.appendChild(d),u.appendChild(f),u.appendChild(c("Show Frustum Planes","frustumPlanes")),u.appendChild(c("Performance Display","performance")),n.className="cesium-cesiumInspector-performanceDisplay",u.appendChild(n);let p=document.createElement("div");p.className="cesium-cesiumInspector-shaderCache",p.setAttribute("data-bind","html: shaderCacheText"),u.appendChild(p);let g=document.createElement("div");u.appendChild(g);let h=document.createElement("span");h.setAttribute("data-bind",'html: "     Frustum:"'),g.appendChild(h);let A=document.createElement("span");A.setAttribute("data-bind","text: depthFrustumText"),g.appendChild(A);let x=document.createElement("input");x.type="button",x.value="-",x.className="cesium-cesiumInspector-pickButton",x.setAttribute("data-bind","click: decrementDepthFrustum"),g.appendChild(x);let C=document.createElement("input");C.type="button",C.value="+",C.className="cesium-cesiumInspector-pickButton",C.setAttribute("data-bind","click: incrementDepthFrustum"),g.appendChild(C);let T=a(s,"Primitives","primitivesVisible","togglePrimitives"),E=document.createElement("div");E.className="cesium-cesiumInspector-pickSection",T.appendChild(E);let S=document.createElement("input");S.type="button",S.value="Pick a primitive",S.className="cesium-cesiumInspector-pickButton",S.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');let v=document.createElement("div");v.className="cesium-cesiumInspector-center",v.appendChild(S),E.appendChild(v),E.appendChild(c("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),E.appendChild(c("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=c("Show only selected","filterPrimitive","hasPickedPrimitive"),E.appendChild(this._primitiveOnly);let D=a(s,"Terrain","terrainVisible","toggleTerrain"),O=document.createElement("div");O.className="cesium-cesiumInspector-pickSection",D.appendChild(O);let M=document.createElement("input");M.type="button",M.value="Pick a tile",M.className="cesium-cesiumInspector-pickButton",M.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickTileActive}, click: pickTile'),v=document.createElement("div"),v.appendChild(M),v.className="cesium-cesiumInspector-center",O.appendChild(v);let L=document.createElement("div");O.appendChild(L);let N=document.createElement("input");N.type="button",N.value="Parent",N.className="cesium-cesiumInspector-pickButton",N.setAttribute("data-bind","click: selectParent");let _=document.createElement("input");_.type="button",_.value="NW",_.className="cesium-cesiumInspector-pickButton",_.setAttribute("data-bind","click: selectNW");let b=document.createElement("input");b.type="button",b.value="NE",b.className="cesium-cesiumInspector-pickButton",b.setAttribute("data-bind","click: selectNE");let w=document.createElement("input");w.type="button",w.value="SW",w.className="cesium-cesiumInspector-pickButton",w.setAttribute("data-bind","click: selectSW");let I=document.createElement("input");I.type="button",I.value="SE",I.className="cesium-cesiumInspector-pickButton",I.setAttribute("data-bind","click: selectSE");let R=document.createElement("div");R.className="cesium-cesiumInspector-tileText",L.className="cesium-cesiumInspector-frustumStatistics",L.appendChild(R),L.setAttribute("data-bind","visible: hasPickedTile"),R.setAttribute("data-bind","html: tileText");let F=document.createElement("div");F.className="cesium-cesiumInspector-relativeText",F.textContent="Select relative:",L.appendChild(F);let k=document.createElement("table"),V=document.createElement("tr"),G=document.createElement("tr"),U=document.createElement("td");U.appendChild(N);let q=document.createElement("td");q.appendChild(_);let Y=document.createElement("td");Y.appendChild(b),V.appendChild(U),V.appendChild(q),V.appendChild(Y);let Q=document.createElement("td"),W=document.createElement("td");W.appendChild(w);let K=document.createElement("td");K.appendChild(I),G.appendChild(Q),G.appendChild(W),G.appendChild(K),k.appendChild(V),k.appendChild(G),L.appendChild(k),O.appendChild(c("Show bounding volume","tileBoundingSphere","hasPickedTile")),O.appendChild(c("Show only selected","filterTile","hasPickedTile")),D.appendChild(c("Wireframe","wireframe")),D.appendChild(c("Suspend LOD update","suspendUpdates")),D.appendChild(c("Show tile coordinates","tileCoordinates")),Ce.applyBindings(i,this._element)}Object.defineProperties(fH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});fH.prototype.isDestroyed=function(){return!1};fH.prototype.destroy=function(){return Ce.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var A2=fH;function dH(e,t){l(t)||(t=document.body),t=In(t);let n=this,i=Ce.observable(lr.fullscreen),o=Ce.observable(lr.enabled),r=t.ownerDocument;this.isFullscreen=void 0,Ce.defineProperty(this,"isFullscreen",{get:function(){return i()}}),this.isFullscreenEnabled=void 0,Ce.defineProperty(this,"isFullscreenEnabled",{get:function(){return o()},set:function(s){o(s&&lr.enabled)}}),this.tooltip=void 0,Ce.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?i()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=En(function(){lr.fullscreen?lr.exitFullscreen():lr.requestFullscreen(n._fullscreenElement)},Ce.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=y(In(e),r.body),this._callback=function(){i(lr.fullscreen)},r.addEventListener(lr.changeEventName,this._callback)}Object.defineProperties(dH.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}});dH.prototype.isDestroyed=function(){return!1};dH.prototype.destroy=function(){document.removeEventListener(lr.changeEventName,this._callback),ue(this)};var x2=dH;var Xgt="M 83.96875 17.5625 L 83.96875 17.59375 L 76.65625 24.875 L 97.09375 24.96875 L 76.09375 45.96875 L 81.9375 51.8125 L 102.78125 30.9375 L 102.875 51.15625 L 110.15625 43.875 L 110.1875 17.59375 L 83.96875 17.5625 z M 44.125 17.59375 L 17.90625 17.625 L 17.9375 43.90625 L 25.21875 51.1875 L 25.3125 30.96875 L 46.15625 51.8125 L 52 45.96875 L 31 25 L 51.4375 24.90625 L 44.125 17.59375 z M 46.0625 76.03125 L 25.1875 96.875 L 25.09375 76.65625 L 17.8125 83.9375 L 17.8125 110.21875 L 44 110.25 L 51.3125 102.9375 L 30.90625 102.84375 L 51.875 81.875 L 46.0625 76.03125 z M 82 76.15625 L 76.15625 82 L 97.15625 103 L 76.71875 103.0625 L 84.03125 110.375 L 110.25 110.34375 L 110.21875 84.0625 L 102.9375 76.8125 L 102.84375 97 L 82 76.15625 z",Kgt="M 104.34375 17.5625 L 83.5 38.4375 L 83.40625 18.21875 L 76.125 25.5 L 76.09375 51.78125 L 102.3125 51.8125 L 102.3125 51.78125 L 109.625 44.5 L 89.1875 44.40625 L 110.1875 23.40625 L 104.34375 17.5625 z M 23.75 17.59375 L 17.90625 23.4375 L 38.90625 44.4375 L 18.5 44.53125 L 25.78125 51.8125 L 52 51.78125 L 51.96875 25.53125 L 44.6875 18.25 L 44.625 38.46875 L 23.75 17.59375 z M 25.6875 76.03125 L 18.375 83.3125 L 38.78125 83.40625 L 17.8125 104.40625 L 23.625 110.25 L 44.5 89.375 L 44.59375 109.59375 L 51.875 102.3125 L 51.875 76.0625 L 25.6875 76.03125 z M 102.375 76.15625 L 76.15625 76.1875 L 76.1875 102.4375 L 83.46875 109.71875 L 83.5625 89.53125 L 104.40625 110.375 L 110.25 104.53125 L 89.25 83.53125 L 109.6875 83.46875 L 102.375 76.15625 z";function mH(e,t){e=In(e);let n=new x2(t,e);n._exitFullScreenPath=Kgt,n._enterFullScreenPath=Xgt;let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-fullscreenButton",i.setAttribute("data-bind","attr: { title: tooltip },click: command,enable: isFullscreenEnabled,cesiumSvgPath: { path: isFullscreen ? _exitFullScreenPath : _enterFullScreenPath, width: 128, height: 128 }"),e.appendChild(i),Ce.applyBindings(n,i),this._container=e,this._viewModel=n,this._element=i}Object.defineProperties(mH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});mH.prototype.isDestroyed=function(){return!1};mH.prototype.destroy=function(){return this._viewModel.destroy(),Ce.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var C2=mH;function kAe(e,t){this._scene=e,this._duration=t;let n=this;this._command=En(function(){n._scene.camera.flyHome(n._duration)}),this.tooltip="View Home",Ce.track(this,["tooltip"])}Object.defineProperties(kAe.prototype,{scene:{get:function(){return this._scene}},command:{get:function(){return this._command}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}}});var T2=kAe;function hH(e,t,n){e=In(e);let i=new T2(t,n);i._svgPath="M14,4l-10,8.75h20l-4.25-3.7188v-4.6562h-2.812v2.1875l-2.938-2.5625zm-7.0938,9.906v10.094h14.094v-10.094h-14.094zm2.1876,2.313h3.3122v4.25h-3.3122v-4.25zm5.8442,1.281h3.406v6.438h-3.406v-6.438z";let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button cesium-home-button",o.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 28, height: 28 }"),e.appendChild(o),Ce.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(hH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});hH.prototype.isDestroyed=function(){return!1};hH.prototype.destroy=function(){return Ce.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var E2=hH;var zAe=1e3;function jf(e){l(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[new qF,new JF({scene:e.scene})],this._viewContainer=e.container,this._scene=e.scene,this._flightDuration=e.flightDuration,this._searchText="",this._isSearchInProgress=!1,this._wasGeocodeCancelled=!1,this._previousCredits=[],this._complete=new ge,this._suggestions=[],this._selectedSuggestion=void 0,this._showSuggestions=!0,this._handleArrowDown=GAe,this._handleArrowUp=HAe;let t=this;this._suggestionsVisible=Ce.pureComputed(function(){let o=Ce.getObservable(t,"_suggestions")().length>0,r=Ce.getObservable(t,"_showSuggestions")();return o&&r}),this._searchCommand=En(function(i){if(i=y(i,o0.SEARCH),t._focusTextbox=!1,l(t._selectedSuggestion))return t.activateSuggestion(t._selectedSuggestion),!1;if(t.hideSuggestions(),t.isSearchInProgress)tyt(t);else return $gt(t,t._geocoderServices,i)}),this.deselectSuggestion=function(){t._selectedSuggestion=void 0},this.handleKeyDown=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38;return(r||s)&&o.preventDefault(),!0},this.handleKeyUp=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38,a=o.key==="Enter"||o.keyCode===13;return s?HAe(t):r?GAe(t):a&&t._searchCommand(),!0},this.activateSuggestion=function(i){t.hideSuggestions(),t._searchText=i.displayName;let o=i.destination;YAe(t),t.destinationFound(t,o)},this.hideSuggestions=function(){t._showSuggestions=!1,t._selectedSuggestion=void 0},this.showSuggestions=function(){t._showSuggestions=!0},this.handleMouseover=function(i,o){i!==t._selectedSuggestion&&(t._selectedSuggestion=i)},this.keepExpanded=!1,this.autoComplete=y(e.autocomplete,!0),this.destinationFound=y(e.destinationFound,jf.flyToDestination),this._focusTextbox=!1,Ce.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);let n=Ce.getObservable(this,"_searchText");n.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=n.subscribe(function(){jf._updateSearchSuggestions(t)}),this.isSearchInProgress=void 0,Ce.defineProperty(this,"isSearchInProgress",{get:function(){return this._isSearchInProgress}}),this.searchText=void 0,Ce.defineProperty(this,"searchText",{get:function(){return this.isSearchInProgress?"Searching...":this._searchText},set:function(i){this._searchText=i}}),this.flightDuration=void 0,Ce.defineProperty(this,"flightDuration",{get:function(){return this._flightDuration},set:function(i){this._flightDuration=i}})}Object.defineProperties(jf.prototype,{complete:{get:function(){return this._complete}},scene:{get:function(){return this._scene}},search:{get:function(){return this._searchCommand}},selectedSuggestion:{get:function(){return this._selectedSuggestion}},suggestions:{get:function(){return this._suggestions}}});jf.prototype.destroy=function(){this._suggestionSubscription.dispose()};function HAe(e){if(e._suggestions.length===0)return;let t=e._suggestions.indexOf(e._selectedSuggestion);if(t===-1||t===0){e._selectedSuggestion=void 0;return}let n=t-1;e._selectedSuggestion=e._suggestions[n],jf._adjustSuggestionsScroll(e,n)}function GAe(e){if(e._suggestions.length===0)return;let t=e._suggestions.length,i=(e._suggestions.indexOf(e._selectedSuggestion)+1)%t;e._selectedSuggestion=e._suggestions[i],jf._adjustSuggestionsScroll(e,i)}function Jgt(e,t){let n=l(t)?t.availability:void 0;return l(n)?A_(t,[e]).then(function(i){return e=i[0],e.height+=zAe,e}):(e.height+=zAe,Promise.resolve(e))}function Zgt(e,t){let n=e._scene,o=n.mapProjection.ellipsoid,r=n.camera,s=n.terrainProvider,a=t,c;return t instanceof le?P.equalsEpsilon(t.south,t.north,P.EPSILON7)&&P.equalsEpsilon(t.east,t.west,P.EPSILON7)?t=le.center(t):c=OC(t,n):t=o.cartesianToCartographic(t),l(c)||(c=Jgt(t,s)),c.then(function(u){a=o.cartographicToCartesian(u)}).finally(function(){r.flyTo({destination:a,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:B.IDENTITY})})}async function Qgt(e,t,n){try{return{state:"fulfilled",value:await e.geocode(t,n),credits:e.credit}}catch(i){return{state:"rejected",reason:i}}}async function $gt(e,t,n){let i=e._searchText;if(jAe(i)){e.showSuggestions();return}e._isSearchInProgress=!0,e._wasGeocodeCancelled=!1;let o,r;for(o=0;o<t.length;o++){if(e._wasGeocodeCancelled)return;if(r=await Qgt(t[o],i,n),l(r)&&r.state==="fulfilled"&&r.value.length>0)break}if(e._wasGeocodeCancelled)return;e._isSearchInProgress=!1,iK(e);let s=r.value;if(r.state==="fulfilled"&&l(s)&&s.length>0){e._searchText=s[0].displayName,e.destinationFound(e,s[0].destination);let a=WAe(e,zS.getCreditsFromResult(s[0]));l(a)||nK(e,t[o].credit);return}e._searchText=`${i} (not found)`}function nK(e,t){l(t)&&!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&(e._scene.frameState.creditDisplay.addStaticCredit(t),e._previousCredits.push(t))}function WAe(e,t){return l(t)&&t.forEach(n=>nK(e,n)),t}function iK(e){!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&e._previousCredits.forEach(t=>{e._scene.frameState.creditDisplay.removeStaticCredit(t)}),e._previousCredits.length=0}function eyt(e,t){let n=In(e._viewContainer),i=n.getElementsByClassName("search-results")[0],r=n.getElementsByTagName("li")[t];if(t===0){i.scrollTop=0;return}let s=r.offsetTop;s+r.clientHeight>i.clientHeight?i.scrollTop=s+r.clientHeight:s<i.scrollTop&&(i.scrollTop=s)}function tyt(e){e._isSearchInProgress&&(e._isSearchInProgress=!1,e._wasGeocodeCancelled=!0)}function jAe(e){return/^\s*$/.test(e)}function YAe(e){Ce.getObservable(e,"_suggestions").removeAll()}async function nyt(e){if(!e.autoComplete)return;let t=e._searchText;if(YAe(e),iK(e),!jAe(t))for(let n of e._geocoderServices){let i=await n.geocode(t,o0.AUTOCOMPLETE);if(e._suggestions=e._suggestions.concat(i),i.length>0){let o=!0;i.forEach(r=>{let s=zS.getCreditsFromResult(r);o=o&&!l(s),WAe(e,s)}),o&&nK(e,n.credit)}if(e._suggestions.length>=5)return}}jf.flyToDestination=Zgt;jf._updateSearchSuggestions=nyt;jf._adjustSuggestionsScroll=eyt;jf.prototype.isDestroyed=function(){return!1};jf.prototype.destroy=function(){return iK(this),ue(this)};var b2=jf;var iyt="M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",oyt="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z";function pH(e){let t=In(e.container),n=new b2(e);n._startSearchPath=iyt,n._stopSearchPath=oyt;let i=document.createElement("form");i.setAttribute("data-bind","submit: search");let o=document.createElement("input");o.type="search",o.className="cesium-geocoder-input",o.setAttribute("placeholder","Enter an address or landmark..."),o.setAttribute("data-bind",'textInput: searchText,disable: isSearchInProgress,event: { keyup: handleKeyUp, keydown: handleKeyDown, mouseover: deselectSuggestion },css: { "cesium-geocoder-input-wide" : keepExpanded || searchText.length > 0 },hasFocus: _focusTextbox'),this._onTextBoxFocus=function(){setTimeout(function(){o.select()},0)},o.addEventListener("focus",this._onTextBoxFocus,!1),i.appendChild(o),this._textBox=o;let r=document.createElement("span");r.className="cesium-geocoder-searchButton",r.setAttribute("data-bind","click: search,cesiumSvgPath: { path: isSearchInProgress ? _stopSearchPath : _startSearchPath, width: 32, height: 32 }"),i.appendChild(r),t.appendChild(i);let s=document.createElement("div");s.className="search-results",s.setAttribute("data-bind","visible: _suggestionsVisible");let a=document.createElement("ul");a.setAttribute("data-bind","foreach: _suggestions");let c=document.createElement("li");a.appendChild(c),c.setAttribute("data-bind","text: $data.displayName, click: $parent.activateSuggestion, event: { mouseover: $parent.handleMouseover}, css: { active: $data === $parent._selectedSuggestion }"),s.appendChild(a),t.appendChild(s),Ce.applyBindings(n,i),Ce.applyBindings(n,s),this._container=t,this._searchSuggestionsContainer=s,this._viewModel=n,this._form=i,this._onInputBegin=function(u){let f=u.target;typeof u.composedPath=="function"&&(f=u.composedPath()[0]),t.contains(f)||(n._focusTextbox=!1,n.hideSuggestions())},this._onInputEnd=function(u){n._focusTextbox=!0,n.showSuggestions()},Ht.supportsPointerEvents()?(document.addEventListener("pointerdown",this._onInputBegin,!0),t.addEventListener("pointerup",this._onInputEnd,!0),t.addEventListener("pointercancel",this._onInputEnd,!0)):(document.addEventListener("mousedown",this._onInputBegin,!0),t.addEventListener("mouseup",this._onInputEnd,!0),document.addEventListener("touchstart",this._onInputBegin,!0),t.addEventListener("touchend",this._onInputEnd,!0),t.addEventListener("touchcancel",this._onInputEnd,!0))}Object.defineProperties(pH.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}});pH.prototype.isDestroyed=function(){return!1};pH.prototype.destroy=function(){let e=this._container;return Ht.supportsPointerEvents()?(document.removeEventListener("pointerdown",this._onInputBegin,!0),e.removeEventListener("pointerup",this._onInputEnd,!0)):(document.removeEventListener("mousedown",this._onInputBegin,!0),e.removeEventListener("mouseup",this._onInputEnd,!0),document.removeEventListener("touchstart",this._onInputBegin,!0),e.removeEventListener("touchend",this._onInputEnd,!0)),this._viewModel.destroy(),Ce.cleanNode(this._form),Ce.cleanNode(this._searchSuggestionsContainer),e.removeChild(this._form),e.removeChild(this._searchSuggestionsContainer),this._textBox.removeEventListener("focus",this._onTextBoxFocus,!1),ue(this)};var S2=pH;var ryt="M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4853444 22.104033 11.423165 24.0625 13.84375 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 8.975298 28.305952 7.03125 25.875 7.03125 L 13.84375 7.03125 z",syt="M 27.34375 1.65625 L 5.28125 27.9375 L 8.09375 30.3125 L 30.15625 4.03125 L 27.34375 1.65625 z M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4724893 20.232036 9.5676108 20.7379 9.75 21.21875 L 21.65625 7.03125 L 13.84375 7.03125 z M 28.21875 7.71875 L 14.53125 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 9.8371439 29.456025 8.4902779 28.21875 7.71875 z";function oK(){this._cameraClicked=new ge,this._closeClicked=new ge,this.maxHeight=500,this.enableCamera=!1,this.isCameraTracking=!1,this.showInfo=!1,this.titleText="",this.description="",Ce.track(this,["showInfo","titleText","description","maxHeight","enableCamera","isCameraTracking"]),this._loadingIndicatorHtml='<div class="cesium-infoBox-loadingContainer"><span class="cesium-infoBox-loading"></span></div>',this.cameraIconPath=void 0,Ce.defineProperty(this,"cameraIconPath",{get:function(){return!this.enableCamera||this.isCameraTracking?syt:ryt}}),Ce.defineProperty(this,"_bodyless",{get:function(){return!l(this.description)||this.description.length===0}})}oK.prototype.maxHeightOffset=function(e){return`${this.maxHeight-e}px`};Object.defineProperties(oK.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}});var w2=oK;function _H(e){e=In(e);let t=document.createElement("div");t.className="cesium-infoBox",t.setAttribute("data-bind",'css: { "cesium-infoBox-visible" : showInfo, "cesium-infoBox-bodyless" : _bodyless }'),e.appendChild(t);let n=document.createElement("div");n.className="cesium-infoBox-title",n.setAttribute("data-bind","text: titleText"),t.appendChild(n);let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-infoBox-camera",i.setAttribute("data-bind",'attr: { title: "Focus camera on object" },click: function () { cameraClicked.raiseEvent(this); },enable: enableCamera,cesiumSvgPath: { path: cameraIconPath, width: 32, height: 32 }'),t.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-infoBox-close",o.setAttribute("data-bind","click: function () { closeClicked.raiseEvent(this); }"),o.innerHTML="×",t.appendChild(o);let r=document.createElement("iframe");r.className="cesium-infoBox-iframe",r.setAttribute("sandbox","allow-same-origin allow-popups allow-forms"),r.setAttribute("data-bind","style : { maxHeight : maxHeightOffset(40) }"),r.setAttribute("allowfullscreen",!0),t.appendChild(r);let s=new w2;Ce.applyBindings(s,t),this._container=e,this._element=t,this._frame=r,this._viewModel=s,this._descriptionSubscription=void 0;let a=this;r.addEventListener("load",function(){let c=r.contentDocument,u=c.createElement("link");u.href=en("Widgets/InfoBox/InfoBoxDescription.css"),u.rel="stylesheet",u.type="text/css";let f=c.createElement("div");f.className="cesium-infoBox-description",c.head.appendChild(u),c.body.appendChild(f),a._descriptionSubscription=ca(s,"description",function(d){r.style.height="5px",f.innerHTML=d;let p=null,g=f.firstElementChild;if(g!==null&&f.childNodes.length===1){let A=window.getComputedStyle(g);if(A!==null){let x=A["background-color"],C=z.fromCssColorString(x);l(C)&&C.alpha!==0&&(p=A["background-color"])}}t.style["background-color"]=p;let h=f.getBoundingClientRect().height;r.style.height=`${h}px`})}),r.setAttribute("src","about:blank")}Object.defineProperties(_H.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}});_H.prototype.isDestroyed=function(){return!1};_H.prototype.destroy=function(){let e=this._container;return Ce.cleanNode(this._element),e.removeChild(this._element),l(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),ue(this)};var v2=_H;function qAe(){this.showInstructions=!1;let e=this;this._command=En(function(){e.showInstructions=!e.showInstructions}),this._showClick=En(function(){e._touch=!1}),this._showTouch=En(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",Ce.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties(qAe.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});var D2=qAe;function gH(e){let t=In(e.container),n=new D2,i=y(e.instructionsInitiallyVisible,!1);n.showInstructions=i,n._svgPath="M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z";let o=document.createElement("span");o.className="cesium-navigationHelpButton-wrapper",t.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-navigation-help-button",r.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 32, height: 32 }"),o.appendChild(r);let s=document.createElement("div");s.className="cesium-navigation-help",s.setAttribute("data-bind",'css: { "cesium-navigation-help-visible" : showInstructions}'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-navigation-button cesium-navigation-button-left",a.setAttribute("data-bind",'click: showClick, css: {"cesium-navigation-button-selected": !_touch, "cesium-navigation-button-unselected": _touch}');let c=document.createElement("img");c.src=en("Widgets/Images/NavigationHelp/Mouse.svg"),c.className="cesium-navigation-button-icon",c.style.width="25px",c.style.height="25px",a.appendChild(c),a.appendChild(document.createTextNode("Mouse"));let u=document.createElement("button");u.type="button",u.className="cesium-navigation-button cesium-navigation-button-right",u.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');let f=document.createElement("img");f.src=en("Widgets/Images/NavigationHelp/Touch.svg"),f.className="cesium-navigation-button-icon",f.style.width="25px",f.style.height="25px",u.appendChild(f),u.appendChild(document.createTextNode("Touch")),s.appendChild(a),s.appendChild(u);let d=document.createElement("div");d.className="cesium-click-navigation-help cesium-navigation-help-instructions",d.setAttribute("data-bind",'css: { "cesium-click-navigation-help-visible" : !_touch}'),d.innerHTML=` <table> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/MouseLeft.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">Left click + drag</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/MouseRight.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Right click + drag, or</div> <div class="cesium-navigation-help-details">Mouse wheel scroll</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/MouseMiddle.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Rotate view</div> <div class="cesium-navigation-help-details">Middle click + drag, or</div> <div class="cesium-navigation-help-details">CTRL + Left/Right click + drag</div> </td> </tr> </table>`,s.appendChild(d);let p=document.createElement("div");p.className="cesium-touch-navigation-help cesium-navigation-help-instructions",p.setAttribute("data-bind",'css: { "cesium-touch-navigation-help-visible" : _touch}'),p.innerHTML=` <table> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/TouchDrag.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">One finger drag</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/TouchZoom.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Two finger pinch</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/TouchTilt.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Tilt view</div> <div class="cesium-navigation-help-details">Two finger drag, same direction</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/TouchRotate.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-tilt">Rotate view</div> <div class="cesium-navigation-help-details">Two finger drag, opposite direction</div> </td> </tr> </table>`,s.appendChild(p),Ce.applyBindings(n,o),this._container=t,this._viewModel=n,this._wrapper=o,this._closeInstructions=function(g){o.contains(g.target)||(n.showInstructions=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(gH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});gH.prototype.isDestroyed=function(){return!1};gH.prototype.destroy=function(){return Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),Ce.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var I2=gH;function rK(e){this._scene=e.scene,this.lowFrameRateMessage=y(e.lowFrameRateMessage,"This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers."),this.lowFrameRateMessageDismissed=!1,this.showingLowFrameRateMessage=!1,Ce.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);let t=this;this._dismissMessage=En(function(){t.showingLowFrameRateMessage=!1,t.lowFrameRateMessageDismissed=!0});let n=cF.fromScene(e.scene);this._unsubscribeLowFrameRate=n.lowFrameRate.addEventListener(function(){t.lowFrameRateMessageDismissed||(t.showingLowFrameRateMessage=!0)}),this._unsubscribeNominalFrameRate=n.nominalFrameRate.addEventListener(function(){t.showingLowFrameRateMessage=!1})}Object.defineProperties(rK.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}});rK.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),ue(this)};var P2=rK;function yH(e){let t=In(e.container),n=new P2(e),i=document.createElement("div");i.className="cesium-performance-watchdog-message-area",i.setAttribute("data-bind","visible: showingLowFrameRateMessage");let o=document.createElement("button");o.setAttribute("type","button"),o.className="cesium-performance-watchdog-message-dismiss",o.innerHTML="×",o.setAttribute("data-bind","click: dismissMessage"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-performance-watchdog-message",r.setAttribute("data-bind","html: lowFrameRateMessage"),i.appendChild(r),t.appendChild(i),Ce.applyBindings(n,i),this._container=t,this._viewModel=n,this._element=i}Object.defineProperties(yH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});yH.prototype.isDestroyed=function(){return!1};yH.prototype.destroy=function(){return this._viewModel.destroy(),Ce.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var O2=yH;function AH(e){this._scene=e,this._orthographic=e.camera.frustum instanceof tn,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=e.mode,Ce.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);let t=this;Ce.defineProperty(this,"selectedTooltip",function(){return t._orthographic?t.tooltipOrthographic:t.tooltipPerspective}),this._toggleDropDown=En(function(){t.sceneMode===ne.SCENE2D||t._flightInProgress||(t.dropDownVisible=!t.dropDownVisible)}),this._eventHelper=new Sr,this._eventHelper.add(e.morphComplete,function(n,i,o,r){t.sceneMode=o,t._orthographic=o===ne.SCENE2D||t._scene.camera.frustum instanceof tn}),this._eventHelper.add(e.preRender,function(){t._flightInProgress=l(e.camera._currentFlight)}),this._switchToPerspective=En(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToPerspectiveFrustum(),t._orthographic=!1,t.dropDownVisible=!1)}),this._switchToOrthographic=En(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToOrthographicFrustum(),t._orthographic=!0,t.dropDownVisible=!1)}),this._sceneMode=ne}Object.defineProperties(AH.prototype,{scene:{get:function(){return this._scene}},toggleDropDown:{get:function(){return this._toggleDropDown}},switchToPerspective:{get:function(){return this._switchToPerspective}},switchToOrthographic:{get:function(){return this._switchToOrthographic}},isOrthographicProjection:{get:function(){return this._orthographic}}});AH.prototype.isDestroyed=function(){return!1};AH.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var M2=AH;var ayt="M 28.15625,10.4375 9.125,13.21875 13.75,43.25 41.75,55.09375 50.8125,37 54.5,11.9375 z m 0.125,3 19.976451,0.394265 L 43.03125,16.875 22.6875,14.28125 z M 50.971746,15.705477 47.90625,36.03125 42.53125,46 44.84375,19.3125 z M 12.625,16.03125 l 29.15625,3.6875 -2.65625,31 L 16.4375,41.125 z",cyt="m 31.560594,6.5254438 -20.75,12.4687502 0.1875,24.5625 22.28125,11.8125 19.5,-12 0.65625,-0.375 0,-0.75 0.0312,-23.21875 z m 0.0625,3.125 16.65625,9.5000002 -16.125,10.28125 -17.34375,-9.71875 z m 18.96875,11.1875002 0.15625,20.65625 -17.46875,10.59375 0.15625,-20.28125 z m -37.0625,1.25 17.21875,9.625 -0.15625,19.21875 -16.9375,-9 z";function xH(e,t){e=In(e);let n=new M2(t);n._perspectivePath=ayt,n._orthographicPath=cyt;let i=document.createElement("span");i.className="cesium-projectionPicker-wrapper cesium-toolbar-button",e.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button",o.setAttribute("data-bind",'css: { "cesium-projectionPicker-buttonPerspective": !_orthographic, "cesium-projectionPicker-buttonOrthographic": _orthographic, "cesium-button-disabled" : sceneMode === _sceneMode.SCENE2D || _flightInProgress, "cesium-projectionPicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),o.innerHTML='<!-- ko cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64, css: "cesium-projectionPicker-iconPerspective" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64, css: "cesium-projectionPicker-iconOrthographic" } --><!-- /ko -->',i.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",r.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && _orthographic), "cesium-projectionPicker-none" : !_orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible },attr: { title: tooltipPerspective },click: switchToPerspective,cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64 }'),i.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && !_orthographic), "cesium-projectionPicker-none" : _orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible},attr: { title: tooltipOrthographic },click: switchToOrthographic,cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64 }'),i.appendChild(s),Ce.applyBindings(n,i),this._viewModel=n,this._container=e,this._wrapper=i,this._closeDropDown=function(a){i.contains(a.target)||(n.dropDownVisible=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(xH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});xH.prototype.isDestroyed=function(){return!1};xH.prototype.destroy=function(){return this._viewModel.destroy(),Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Ce.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var R2=xH;function CH(e,t){this._scene=e;let n=this,i=function(o,r,s,a){n.sceneMode=s,n.dropDownVisible=!1};this._eventHelper=new Sr,this._eventHelper.add(e.morphStart,i),this._duration=y(t,2),this.sceneMode=e.mode,this.dropDownVisible=!1,this.tooltip2D="2D",this.tooltip3D="3D",this.tooltipColumbusView="Columbus View",Ce.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,Ce.defineProperty(this,"selectedTooltip",function(){let o=n.sceneMode;return o===ne.SCENE2D?n.tooltip2D:o===ne.SCENE3D?n.tooltip3D:n.tooltipColumbusView}),this._toggleDropDown=En(function(){n.dropDownVisible=!n.dropDownVisible}),this._morphTo2D=En(function(){e.morphTo2D(n._duration)}),this._morphTo3D=En(function(){e.morphTo3D(n._duration)}),this._morphToColumbusView=En(function(){e.morphToColumbusView(n._duration)}),this._sceneMode=ne}Object.defineProperties(CH.prototype,{scene:{get:function(){return this._scene}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}},toggleDropDown:{get:function(){return this._toggleDropDown}},morphTo2D:{get:function(){return this._morphTo2D}},morphTo3D:{get:function(){return this._morphTo3D}},morphToColumbusView:{get:function(){return this._morphToColumbusView}}});CH.prototype.isDestroyed=function(){return!1};CH.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var B2=CH;var lyt="m 32.401392,4.9330437 c -7.087603,0 -14.096095,2.884602 -19.10793,7.8946843 -5.0118352,5.010083 -7.9296167,11.987468 -7.9296167,19.072999 0,7.085531 2.9177815,14.097848 7.9296167,19.107931 4.837653,4.835961 11.541408,7.631372 18.374354,7.82482 0.05712,0.01231 0.454119,0.139729 0.454119,0.139729 l 0.03493,-0.104797 c 0.08246,7.84e-4 0.162033,0.03493 0.244525,0.03493 0.08304,0 0.161515,-0.03414 0.244526,-0.03493 l 0.03493,0.104797 c 0,0 0.309474,-0.129487 0.349323,-0.139729 6.867765,-0.168094 13.582903,-2.965206 18.444218,-7.82482 2.558195,-2.5573 4.551081,-5.638134 5.903547,-8.977584 1.297191,-3.202966 2.02607,-6.661489 2.02607,-10.130347 0,-6.237309 -2.366261,-12.31219 -6.322734,-17.116794 -0.0034,-0.02316 0.0049,-0.04488 0,-0.06986 -0.01733,-0.08745 -0.104529,-0.278855 -0.104797,-0.279458 -5.31e-4,-0.0012 -0.522988,-0.628147 -0.523984,-0.62878 -3.47e-4,-2.2e-4 -0.133444,-0.03532 -0.244525,-0.06987 C 51.944299,13.447603 51.751076,13.104317 51.474391,12.827728 46.462556,7.8176457 39.488996,4.9330437 32.401392,4.9330437 z m -2.130866,3.5281554 0.104797,9.6762289 c -4.111695,-0.08361 -7.109829,-0.423664 -9.257041,-0.943171 1.198093,-2.269271 2.524531,-4.124404 3.91241,-5.414496 2.167498,-2.0147811 3.950145,-2.8540169 5.239834,-3.3185619 z m 2.794579,0 c 1.280302,0.4754953 3.022186,1.3285948 5.065173,3.2486979 1.424667,1.338973 2.788862,3.303645 3.982275,5.728886 -2.29082,0.403367 -5.381258,0.621049 -8.942651,0.698645 L 33.065105,8.4611991 z m 5.728886,0.2445256 c 4.004072,1.1230822 7.793098,3.1481363 10.724195,6.0782083 0.03468,0.03466 0.07033,0.06991 0.104797,0.104797 -0.45375,0.313891 -0.923054,0.663002 -1.956205,1.082899 -0.647388,0.263114 -1.906242,0.477396 -2.829511,0.733577 -1.382296,-2.988132 -3.027146,-5.368585 -4.785716,-7.0213781 -0.422866,-0.397432 -0.835818,-0.6453247 -1.25756,-0.9781032 z m -15.33525,0.7685092 c -0.106753,0.09503 -0.207753,0.145402 -0.31439,0.244526 -1.684973,1.5662541 -3.298068,3.8232211 -4.680919,6.5672591 -0.343797,-0.14942 -1.035052,-0.273198 -1.292493,-0.419186 -0.956528,-0.542427 -1.362964,-1.022024 -1.537018,-1.292493 -0.0241,-0.03745 -0.01868,-0.0401 -0.03493,-0.06986 2.250095,-2.163342 4.948824,-3.869984 7.859752,-5.0302421 z m -9.641296,7.0912431 c 0.464973,0.571618 0.937729,1.169056 1.956205,1.746612 0.349907,0.198425 1.107143,0.335404 1.537018,0.523983 -1.20166,3.172984 -1.998037,7.051901 -2.165798,11.772162 C 14.256557,30.361384 12.934823,30.161483 12.280427,29.90959 10.644437,29.279855 9.6888882,28.674891 9.1714586,28.267775 8.6540289,27.860658 8.6474751,27.778724 8.6474751,27.778724 l -0.069864,0.03493 C 9.3100294,23.691285 11.163248,19.798527 13.817445,16.565477 z m 37.552149,0.523984 c 2.548924,3.289983 4.265057,7.202594 4.890513,11.318043 -0.650428,0.410896 -1.756876,1.001936 -3.563088,1.606882 -1.171552,0.392383 -3.163859,0.759153 -4.960377,1.117832 -0.04367,-4.752703 -0.784809,-8.591423 -1.88634,-11.807094 0.917574,-0.263678 2.170552,-0.486495 2.864443,-0.76851 1.274693,-0.518066 2.003942,-1.001558 2.654849,-1.467153 z m -31.439008,2.619917 c 2.487341,0.672766 5.775813,1.137775 10.479669,1.222628 l 0.104797,10.689263 0,0.03493 0,0.733577 c -5.435005,-0.09059 -9.512219,-0.519044 -12.610536,-1.117831 0.106127,-4.776683 0.879334,-8.55791 2.02607,-11.562569 z m 23.264866,0.31439 c 1.073459,3.067541 1.833795,6.821314 1.816476,11.702298 -3.054474,0.423245 -7.062018,0.648559 -11.702298,0.698644 l 0,-0.838373 -0.104796,-10.654331 c 4.082416,-0.0864 7.404468,-0.403886 9.990618,-0.908238 z M 8.2632205,30.922625 c 0.7558676,0.510548 1.5529563,1.013339 3.0041715,1.57195 0.937518,0.360875 2.612202,0.647642 3.91241,0.978102 0.112814,3.85566 0.703989,7.107756 1.606883,9.920754 -1.147172,-0.324262 -2.644553,-0.640648 -3.423359,-0.978102 -1.516688,-0.657177 -2.386627,-1.287332 -2.864443,-1.71168 -0.477816,-0.424347 -0.489051,-0.489051 -0.489051,-0.489051 L 9.8002387,40.319395 C 8.791691,37.621767 8.1584238,34.769583 8.1584238,31.900727 c 0,-0.330153 0.090589,-0.648169 0.1047967,-0.978102 z m 48.2763445,0.419186 c 0.0047,0.188973 0.06986,0.36991 0.06986,0.558916 0,2.938869 -0.620228,5.873558 -1.676747,8.628261 -0.07435,0.07583 -0.06552,0.07411 -0.454119,0.349323 -0.606965,0.429857 -1.631665,1.042044 -3.318562,1.676747 -1.208528,0.454713 -3.204964,0.850894 -5.135038,1.25756 0.84593,-2.765726 1.41808,-6.005357 1.606883,-9.815957 2.232369,-0.413371 4.483758,-0.840201 5.938479,-1.327425 1.410632,-0.472457 2.153108,-0.89469 2.96924,-1.327425 z m -38.530252,2.864443 c 3.208141,0.56697 7.372279,0.898588 12.575603,0.978103 l 0.174662,9.885821 c -4.392517,-0.06139 -8.106722,-0.320566 -10.863925,-0.803441 -1.051954,-2.664695 -1.692909,-6.043794 -1.88634,-10.060483 z m 26.793022,0.31439 c -0.246298,3.923551 -0.877762,7.263679 -1.816476,9.885822 -2.561957,0.361954 -5.766249,0.560708 -9.431703,0.62878 l -0.174661,-9.815957 c 4.491734,-0.04969 8.334769,-0.293032 11.42284,-0.698645 z M 12.035901,44.860585 c 0.09977,0.04523 0.105535,0.09465 0.209594,0.139729 1.337656,0.579602 3.441099,1.058072 5.589157,1.537018 1.545042,3.399208 3.548524,5.969402 5.589157,7.789888 -3.034411,-1.215537 -5.871615,-3.007978 -8.174142,-5.309699 -1.245911,-1.245475 -2.271794,-2.662961 -3.213766,-4.156936 z m 40.69605,0 c -0.941972,1.493975 -1.967855,2.911461 -3.213765,4.156936 -2.74253,2.741571 -6.244106,4.696717 -9.955686,5.868615 0.261347,-0.241079 0.507495,-0.394491 0.768509,-0.663713 1.674841,-1.727516 3.320792,-4.181056 4.645987,-7.265904 2.962447,-0.503021 5.408965,-1.122293 7.161107,-1.781544 0.284034,-0.106865 0.337297,-0.207323 0.593848,-0.31439 z m -31.404076,2.305527 c 2.645807,0.376448 5.701178,0.649995 9.466635,0.698645 l 0.139729,7.789888 c -1.38739,-0.480844 -3.316218,-1.29837 -5.659022,-3.388427 -1.388822,-1.238993 -2.743668,-3.0113 -3.947342,-5.100106 z m 20.365491,0.104797 c -1.04872,2.041937 -2.174337,3.779068 -3.353494,4.995309 -1.853177,1.911459 -3.425515,2.82679 -4.611055,3.353494 l -0.139729,-7.789887 c 3.13091,-0.05714 5.728238,-0.278725 8.104278,-0.558916 z",uyt="m 2.9825053,17.550598 0,1.368113 0,26.267766 0,1.368113 1.36811,0 54.9981397,0 1.36811,0 0,-1.368113 0,-26.267766 0,-1.368113 -1.36811,0 -54.9981397,0 -1.36811,0 z m 2.73623,2.736226 10.3292497,0 0,10.466063 -10.3292497,0 0,-10.466063 z m 13.0654697,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 10.32926,0 0,10.466063 -10.32926,0 0,-10.466063 z m -41.9326497,13.202288 10.3292497,0 0,10.329252 -10.3292497,0 0,-10.329252 z m 13.0654697,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 10.32926,0 0,10.329252 -10.32926,0 0,-10.329252 z",fyt="m 14.723969,17.675598 -0.340489,0.817175 -11.1680536,26.183638 -0.817175,1.872692 2.076986,0 54.7506996,0 2.07698,0 -0.81717,-1.872692 -11.16805,-26.183638 -0.34049,-0.817175 -0.91933,0 -32.414586,0 -0.919322,0 z m 1.838643,2.723916 6.196908,0 -2.928209,10.418977 -7.729111,0 4.460412,-10.418977 z m 9.02297,0 4.903049,0 0,10.418977 -7.831258,0 2.928209,-10.418977 z m 7.626964,0 5.584031,0 2.62176,10.418977 -8.205791,0 0,-10.418977 z m 8.410081,0 5.51593,0 4.46042,10.418977 -7.38863,0 -2.58772,-10.418977 z m -30.678091,13.142892 8.103649,0 -2.89416,10.282782 -9.6018026,0 4.3923136,-10.282782 z m 10.929711,0 8.614384,0 0,10.282782 -11.508544,0 2.89416,-10.282782 z m 11.338299,0 8.852721,0 2.58772,10.282782 -11.440441,0 0,-10.282782 z m 11.678781,0 7.86531,0 4.39231,10.282782 -9.6699,0 -2.58772,-10.282782 z";function TH(e,t,n){e=In(e);let i=new B2(t,n);i._globePath=lyt,i._flatMapPath=uyt,i._columbusViewPath=fyt;let o=document.createElement("span");o.className="cesium-sceneModePicker-wrapper cesium-toolbar-button",e.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button",r.setAttribute("data-bind",'css: { "cesium-sceneModePicker-button2D": sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-button3D": sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-buttonColumbusView": sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),r.innerHTML='<!-- ko cesiumSvgPath: { path: _globePath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon3D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon2D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-iconColumbusView" } --><!-- /ko -->',o.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE3D)) || (!dropDownVisible && (sceneMode === _sceneMode.SCENE3D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip3D },click: morphTo3D,cesiumSvgPath: { path: _globePath, width: 64, height: 64 }'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",a.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE2D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip2D },click: morphTo2D,cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64 }'),o.appendChild(a);let c=document.createElement("button");c.type="button",c.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",c.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.COLUMBUS_VIEW)) || (!dropDownVisible && (sceneMode === _sceneMode.COLUMBUS_VIEW)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-hidden" : !dropDownVisible},attr: { title: tooltipColumbusView },click: morphToColumbusView,cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64 }'),o.appendChild(c),Ce.applyBindings(i,o),this._viewModel=i,this._container=e,this._wrapper=o,this._closeDropDown=function(u){o.contains(u.target)||(i.dropDownVisible=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(TH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});TH.prototype.isDestroyed=function(){return!1};TH.prototype.destroy=function(){return this._viewModel.destroy(),Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Ce.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var L2=TH;var dyt=new H,EH="-1000px";function N2(e,t,n){this._scene=e,this._screenPositionX=EH,this._screenPositionY=EH,this._tweens=e.tweens,this._container=y(n,document.body),this._selectionIndicatorElement=t,this._scale=1,this.position=void 0,this.showSelection=!1,Ce.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,Ce.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&l(this.position)}}),Ce.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(i,o){return Xi.wgs84ToWindowCoordinates(e,i,o)}}N2.prototype.update=function(){if(this.showSelection&&l(this.position)){let e=this.computeScreenSpacePosition(this.position,dyt);if(!l(e))this._screenPositionX=EH,this._screenPositionY=EH;else{let t=this._container,n=t.parentNode.clientWidth,i=t.parentNode.clientHeight,o=this._selectionIndicatorElement.clientWidth,r=o*.5;e.x=Math.min(Math.max(e.x,-o),n+o)-r,e.y=Math.min(Math.max(e.y,-o),i+o)-r,this._screenPositionX=`${Math.floor(e.x+.25)}px`,this._screenPositionY=`${Math.floor(e.y+.25)}px`}}};N2.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:Or.EXPONENTIAL_OUT})};N2.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:Or.EXPONENTIAL_OUT})};Object.defineProperties(N2.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});var F2=N2;function bH(e,t){e=In(e),this._container=e;let n=document.createElement("div");n.className="cesium-selection-wrapper",n.setAttribute("data-bind",'style: { "top" : _screenPositionY, "left" : _screenPositionX },css: { "cesium-selection-wrapper-visible" : isVisible }'),e.appendChild(n),this._element=n;let i="http://www.w3.org/2000/svg",o="M -34 -34 L -34 -11.25 L -30 -15.25 L -30 -30 L -15.25 -30 L -11.25 -34 L -34 -34 z M 11.25 -34 L 15.25 -30 L 30 -30 L 30 -15.25 L 34 -11.25 L 34 -34 L 11.25 -34 z M -34 11.25 L -34 34 L -11.25 34 L -15.25 30 L -30 30 L -30 15.25 L -34 11.25 z M 34 11.25 L 30 15.25 L 30 30 L 15.25 30 L 11.25 34 L 34 34 L 34 11.25 z",r=document.createElementNS(i,"svg:svg");r.setAttribute("width",160),r.setAttribute("height",160),r.setAttribute("viewBox","0 0 160 160");let s=document.createElementNS(i,"g");s.setAttribute("transform","translate(80,80)"),r.appendChild(s);let a=document.createElementNS(i,"path");a.setAttribute("data-bind","attr: { transform: _transform }"),a.setAttribute("d",o),s.appendChild(a),n.appendChild(r);let c=new F2(t,this._element,this._container);this._viewModel=c,Ce.applyBindings(this._viewModel,this._element)}Object.defineProperties(bH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});bH.prototype.isDestroyed=function(){return!1};bH.prototype.destroy=function(){let e=this._container;return Ce.cleanNode(this._element),e.removeChild(this._element),ue(this)};var U2=bH;function NC(e,t,n){this._color=e,this._height=t,this._base=y(n,0)}NC.prototype.getHeight=function(){return this._height};NC.prototype.getBase=function(){return this._base};NC.prototype.getStartTime=function(){return this._start};NC.prototype.getStopTime=function(){return this._stop};NC.prototype.setRange=function(e,t){this._start=e,this._stop=t};NC.prototype.render=function(e){let t="";if(this._start&&this._stop&&this._color){let n=ee.secondsDifference(this._start,e.epochJulian),i=Math.round(e.timeBarWidth*e.getAlpha(n)),o=ee.secondsDifference(this._stop,e.epochJulian),r=Math.round(e.timeBarWidth*e.getAlpha(o))-i;i<0&&(r+=i,i=0),i+r>e.timeBarWidth&&(r=e.timeBarWidth-i),r>0&&(t=`<span class="cesium-timeline-highlight" style="left: ${i.toString()}px; width: ${r.toString()}px; bottom: ${this._base.toString()}px; height: ${this._height}px; background-color: ${this._color};"></span>`)}return t};var V2=NC;function XAe(e,t,n,i){this.interval=e,this.height=t,this.color=n||new z(.5,.5,.5,1),this.backgroundColor=i||new z(0,0,0,0)}XAe.prototype.render=function(e,t){let n=this.interval.start,i=this.interval.stop,o=t.startJulian,r=ee.addSeconds(t.startJulian,t.duration,new ee);if(ee.lessThan(n,o)&&ee.greaterThan(i,r))e.fillStyle=this.color.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height);else if(ee.lessThanOrEquals(n,r)&&ee.greaterThanOrEquals(i,o)){let s,a,c;for(s=0;s<t.timeBarWidth;++s){let u=ee.addSeconds(t.startJulian,s/t.timeBarWidth*t.duration,new ee);!l(a)&&ee.greaterThanOrEquals(u,n)?a=s:!l(c)&&ee.greaterThanOrEquals(u,i)&&(c=s)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height),l(a)&&(l(c)||(c=t.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(a,t.y,Math.max(c-a,1),this.height))}};var k2=XAe;var sK=1e12,Yf={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},Kc={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},d0=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800,1296e3,2592e3,5184e3,7776e3,15552e3,31536e3,63072e3,126144e3,15768e4,31536e4,63072e4,126144e4,15768e5,31536e5,63072e5,126144e5,15768e6,31536e6],myt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Jc(e,t){e=In(e);let n=e.ownerDocument;this.container=e;let i=n.createElement("div");i.className="cesium-timeline-main",e.appendChild(i),this._topDiv=i,this._endJulian=void 0,this._epochJulian=void 0,this._lastXPos=void 0,this._scrubElement=void 0,this._startJulian=void 0,this._timeBarSecondsSpan=void 0,this._clock=t,this._scrubJulian=t.currentTime,this._mainTicSpan=-1,this._mouseMode=Yf.none,this._touchMode=Kc.none,this._touchState={centerX:0,spanX:0},this._mouseX=0,this._timelineDrag=0,this._timelineDragLocation=void 0,this._lastHeight=void 0,this._lastWidth=void 0,this._topDiv.innerHTML='<div class="cesium-timeline-bar"></div><div class="cesium-timeline-trackContainer"><canvas class="cesium-timeline-tracks" width="10" height="1"></canvas></div><div class="cesium-timeline-needle"></div><span class="cesium-timeline-ruler"></span>',this._timeBarEle=this._topDiv.childNodes[0],this._trackContainer=this._topDiv.childNodes[1],this._trackListEle=this._topDiv.childNodes[1].childNodes[0],this._needleEle=this._topDiv.childNodes[2],this._rulerEle=this._topDiv.childNodes[3],this._context=this._trackListEle.getContext("2d"),this._trackList=[],this._highlightRanges=[],this.zoomTo(t.startTime,t.stopTime),this._onMouseDown=hyt(this),this._onMouseUp=pyt(this),this._onMouseMove=_yt(this),this._onMouseWheel=gyt(this),this._onTouchStart=yyt(this),this._onTouchMove=xyt(this),this._onTouchEnd=Ayt(this);let o=this._timeBarEle;n.addEventListener("mouseup",this._onMouseUp,!1),n.addEventListener("mousemove",this._onMouseMove,!1),o.addEventListener("mousedown",this._onMouseDown,!1),o.addEventListener("DOMMouseScroll",this._onMouseWheel,!1),o.addEventListener("mousewheel",this._onMouseWheel,!1),o.addEventListener("touchstart",this._onTouchStart,!1),o.addEventListener("touchmove",this._onTouchMove,!1),o.addEventListener("touchend",this._onTouchEnd,!1),o.addEventListener("touchcancel",this._onTouchEnd,!1),this._topDiv.oncontextmenu=function(){return!1},t.onTick.addEventListener(this.updateFromClock,this),this.updateFromClock()}Jc.prototype.addEventListener=function(e,t,n){this._topDiv.addEventListener(e,t,n)};Jc.prototype.removeEventListener=function(e,t,n){this._topDiv.removeEventListener(e,t,n)};Jc.prototype.isDestroyed=function(){return!1};Jc.prototype.destroy=function(){this._clock.onTick.removeEventListener(this.updateFromClock,this);let e=this.container.ownerDocument;e.removeEventListener("mouseup",this._onMouseUp,!1),e.removeEventListener("mousemove",this._onMouseMove,!1);let t=this._timeBarEle;t.removeEventListener("mousedown",this._onMouseDown,!1),t.removeEventListener("DOMMouseScroll",this._onMouseWheel,!1),t.removeEventListener("mousewheel",this._onMouseWheel,!1),t.removeEventListener("touchstart",this._onTouchStart,!1),t.removeEventListener("touchmove",this._onTouchMove,!1),t.removeEventListener("touchend",this._onTouchEnd,!1),t.removeEventListener("touchcancel",this._onTouchEnd,!1),this.container.removeChild(this._topDiv),ue(this)};Jc.prototype.addHighlightRange=function(e,t,n){let i=new V2(e,t,n);return this._highlightRanges.push(i),this.resize(),i};Jc.prototype.addTrack=function(e,t,n,i){let o=new k2(e,t,n,i);return this._trackList.push(o),this._lastHeight=void 0,this.resize(),o};Jc.prototype.zoomTo=function(e,t){if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=ee.secondsDifference(t,e),this._clock&&this._clock.clockRange!==Pr.UNBOUNDED){let i=this._clock.startTime,o=this._clock.stopTime,r=ee.secondsDifference(o,i),s=ee.secondsDifference(i,this._startJulian),a=ee.secondsDifference(o,this._endJulian);this._timeBarSecondsSpan>=r?(this._timeBarSecondsSpan=r,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):s>0?(this._endJulian=ee.addSeconds(this._endJulian,s,new ee),this._startJulian=i,this._timeBarSecondsSpan=ee.secondsDifference(this._endJulian,this._startJulian)):a<0&&(this._startJulian=ee.addSeconds(this._startJulian,a,new ee),this._endJulian=o,this._timeBarSecondsSpan=ee.secondsDifference(this._endJulian,this._startJulian))}this._makeTics();let n=document.createEvent("Event");n.initEvent("setzoom",!0,!0),n.startJulian=this._startJulian,n.endJulian=this._endJulian,n.epochJulian=this._epochJulian,n.totalSpan=this._timeBarSecondsSpan,n.mainTicSpan=this._mainTicSpan,this._topDiv.dispatchEvent(n)};Jc.prototype.zoomFrom=function(e){let t=ee.secondsDifference(this._scrubJulian,this._startJulian);e>1||t<0||t>this._timeBarSecondsSpan?t=this._timeBarSecondsSpan*.5:t+=t-this._timeBarSecondsSpan*.5;let n=this._timeBarSecondsSpan-t;this.zoomTo(ee.addSeconds(this._startJulian,t-t*e,new ee),ee.addSeconds(this._endJulian,n*e-n,new ee))};function aK(e){return e<10?`0${e.toString()}`:e.toString()}Jc.prototype.makeLabel=function(e){let t=ee.toGregorianDate(e),n=t.millisecond,i=" UTC";if(n>0&&this._timeBarSecondsSpan<3600){for(i=Math.floor(n).toString();i.length<3;)i=`0${i}`;i=`.${i}`}return`${myt[t.month-1]} ${t.day} ${t.year} ${aK(t.hour)}:${aK(t.minute)}:${aK(t.second)}${i}`};Jc.prototype.smallestTicInPixels=7;Jc.prototype._makeTics=function(){let e=this._timeBarEle,t=ee.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan),i=n-8,o,r=this;this._needleEle.style.left=`${n.toString()}px`;let s="",a=.01,c=31536e6,u=1e-10,f=0,d=this._timeBarSecondsSpan;d<a?(d=a,this._timeBarSecondsSpan=a,this._endJulian=ee.addSeconds(this._startJulian,a,new ee)):d>c&&(d=c,this._timeBarSecondsSpan=c,this._endJulian=ee.addSeconds(this._startJulian,c,new ee));let p=this._timeBarEle.clientWidth;p<10&&(p=10);let g=this._startJulian,h=Math.min(d/p*1e-5,.4),A,x=ee.toGregorianDate(g);d>31536e4?A=ee.fromDate(new Date(Date.UTC(Math.floor(x.year/100)*100,0))):d>31536e3?A=ee.fromDate(new Date(Date.UTC(Math.floor(x.year/10)*10,0))):d>86400?A=ee.fromDate(new Date(Date.UTC(x.year,0))):A=ee.fromDate(new Date(Date.UTC(x.year,x.month,x.day)));let C=ee.secondsDifference(this._startJulian,ee.addSeconds(A,h,new ee)),T=C+d;this._epochJulian=A;function E(U){return Math.floor(C/U)*U}function S(U,q){return Math.ceil(U/q+.5)*q}function v(U){return(U-C)/d}function D(U,q){return U-q*Math.round(U/q)}this._rulerEle.innerHTML=this.makeLabel(ee.addSeconds(this._endJulian,-a,new ee));let O=this._rulerEle.offsetWidth+20;O<30&&(O=180);let M=f;f-=u;let L={startTime:C,startJulian:g,epochJulian:A,duration:d,timeBarWidth:p,getAlpha:v};this._highlightRanges.forEach(function(U){s+=U.render(L)});let N=0,_=0,b=0,w=O/p;w>1&&(w=1),w*=this._timeBarSecondsSpan;let I=-1,R=-1,F=d0.length,k;for(k=0;k<F;++k){let U=d0[k];if(++I,N=U,U>w&&U>f)break;R<0&&p*(U/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(R=I)}if(I>0){for(;I>0;)if(--I,Math.abs(D(N,d0[I]))<1e-5){d0[I]>=f&&(_=d0[I]);break}if(R>=0)for(;R<I;){if(Math.abs(D(_,d0[R]))<1e-5&&d0[R]>=f){b=d0[R];break}++R}}f=M,f>u&&b<1e-5&&Math.abs(f-N)>u&&(b=f,f<=N+u&&(_=0));let V=-999999,G;if(p*(b/this._timeBarSecondsSpan)>=3)for(o=E(b);o<=T;o=S(o,b))s+=`<span class="cesium-timeline-ticTiny" style="left: ${Math.round(p*v(o)).toString()}px;"></span>`;if(p*(_/this._timeBarSecondsSpan)>=3)for(o=E(_);o<=T;o=S(o,_))s+=`<span class="cesium-timeline-ticSub" style="left: ${Math.round(p*v(o)).toString()}px;"></span>`;if(p*(N/this._timeBarSecondsSpan)>=2){this._mainTicSpan=N,T+=N,o=E(N);let U=ee.computeTaiMinusUtc(A);for(;o<=T;){let q=ee.addSeconds(g,o-C,new ee);if(N>2.1){let K=ee.computeTaiMinusUtc(q);Math.abs(K-U)>.1&&(o+=K-U,q=ee.addSeconds(g,o-C,new ee))}let Y=Math.round(p*v(o)),Q=this.makeLabel(q);this._rulerEle.innerHTML=Q,G=this._rulerEle.offsetWidth,G<10&&(G=O);let W=Y-(G/2-1);W>V?(V=W+G+5,s+=`<span class="cesium-timeline-ticMain" style="left: ${Y.toString()}px;"></span><span class="cesium-timeline-ticLabel" style="left: ${W.toString()}px;">${Q}</span>`):s+=`<span class="cesium-timeline-ticSub" style="left: ${Y.toString()}px;"></span>`,o=S(o,N)}}else this._mainTicSpan=-1;s+=`<span class="cesium-timeline-icon16" style="left:${i}px;bottom:0;background-position: 0 0;"></span>`,e.innerHTML=s,this._scrubElement=e.lastChild,this._context.clearRect(0,0,this._trackListEle.width,this._trackListEle.height),L.y=0,this._trackList.forEach(function(U){U.render(r._context,L),L.y+=U.height})};Jc.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;let e=this._scrubElement;if(l(this._scrubElement)){let t=ee.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan);this._lastXPos!==n&&(this._lastXPos=n,e.style.left=`${n-8}px`,this._needleEle.style.left=`${n}px`)}l(this._timelineDragLocation)&&(this._setTimeBarTime(this._timelineDragLocation,this._timelineDragLocation*this._timeBarSecondsSpan/this._topDiv.clientWidth),this.zoomTo(ee.addSeconds(this._startJulian,this._timelineDrag,new ee),ee.addSeconds(this._endJulian,this._timelineDrag,new ee)))};Jc.prototype._setTimeBarTime=function(e,t){if(e=Math.round(e),this._scrubJulian=ee.addSeconds(this._startJulian,t,new ee),this._scrubElement){let i=e-8;this._scrubElement.style.left=`${i.toString()}px`,this._needleEle.style.left=`${e.toString()}px`}let n=document.createEvent("Event");n.initEvent("settime",!0,!0),n.clientX=e,n.timeSeconds=t,n.timeJulian=this._scrubJulian,n.clock=this._clock,this._topDiv.dispatchEvent(n)};function hyt(e){return function(t){e._mouseMode!==Yf.touchOnly&&(t.button===0?(e._mouseMode=Yf.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,t.button===2?e._mouseMode=Yf.zoom:e._mouseMode=Yf.slide)),t.preventDefault()}}function pyt(e){return function(t){e._mouseMode=Yf.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function _yt(e){return function(t){let n;if(e._mouseMode===Yf.scrub){t.preventDefault();let i=t.clientX-e._topDiv.getBoundingClientRect().left;i<0?(e._timelineDragLocation=0,e._timelineDrag=-.01*e._timeBarSecondsSpan):i>e._topDiv.clientWidth?(e._timelineDragLocation=e._topDiv.clientWidth,e._timelineDrag=.01*e._timeBarSecondsSpan):(e._timelineDragLocation=void 0,e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))}else if(e._mouseMode===Yf.slide){if(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0){let i=n*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(ee.addSeconds(e._startJulian,i,new ee),ee.addSeconds(e._endJulian,i,new ee))}}else e._mouseMode===Yf.zoom&&(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0&&e.zoomFrom(Math.pow(1.01,n)))}}function gyt(e){return function(t){let n=t.wheelDeltaY||t.wheelDelta||-t.detail;sK=Math.max(Math.min(Math.abs(n),sK),1),n/=sK,e.zoomFrom(Math.pow(1.05,-n))}}function yyt(e){return function(t){let n=t.touches.length,i,o,r=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=Yf.touchOnly,n===1?(i=ee.secondsDifference(e._scrubJulian,e._startJulian),o=Math.round(i*e._topDiv.clientWidth/e._timeBarSecondsSpan+r),Math.abs(t.touches[0].clientX-o)<50?(e._touchMode=Kc.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=n===1?"-16px 0":"0 0")):(e._touchMode=Kc.singleTap,e._touchState.centerX=t.touches[0].clientX-r)):n===2?(e._touchMode=Kc.slideZoom,e._touchState.centerX=(t.touches[0].clientX+t.touches[1].clientX)*.5-r,e._touchState.spanX=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):e._touchMode=Kc.ignore}}function Ayt(e){return function(t){let n=t.touches.length,i=e._topDiv.getBoundingClientRect().left;e._touchMode===Kc.singleTap?(e._touchMode=Kc.scrub,e._onTouchMove(t)):e._touchMode===Kc.scrub&&e._onTouchMove(t),e._mouseMode=Yf.touchOnly,n!==1?e._touchMode=n>0?Kc.ignore:Kc.none:e._touchMode===Kc.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-i),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function xyt(e){return function(t){let n,i,o,r,s,a,c=1,u=e._topDiv.getBoundingClientRect().left;e._touchMode===Kc.singleTap&&(e._touchMode=Kc.slideZoom),e._mouseMode=Yf.touchOnly,e._touchMode===Kc.scrub?(t.preventDefault(),t.changedTouches.length===1&&(i=t.changedTouches[0].clientX-u,i>=0&&i<=e._topDiv.clientWidth&&e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===Kc.slideZoom&&(o=t.touches.length,o===2?(r=(t.touches[0].clientX+t.touches[1].clientX)*.5-u,s=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):o===1&&(r=t.touches[0].clientX-u,s=0),l(r)&&(s>0&&e._touchState.spanX>0?(c=e._touchState.spanX/s,a=ee.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-r*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new ee)):(n=e._touchState.centerX-r,a=ee.addSeconds(e._startJulian,n*e._timeBarSecondsSpan/e._topDiv.clientWidth,new ee)),e.zoomTo(a,ee.addSeconds(a,e._timeBarSecondsSpan*c,new ee)),e._touchState.centerX=r,e._touchState.spanX=s))}}Jc.prototype.resize=function(){let e=this.container.clientWidth,t=this.container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;this._trackContainer.style.height=`${t}px`;let n=1;this._trackList.forEach(function(i){n+=i.height}),this._trackListEle.style.height=`${n.toString()}px`,this._trackListEle.width=this._trackListEle.clientWidth,this._trackListEle.height=n,this._makeTics(),this._lastXPos=void 0,this._lastWidth=e,this._lastHeight=t};var z2=Jc;var $Ae=So(QAe(),1);function Eyt(e){let t=!1,n=window.screen;return l(n)&&(l(n.lockOrientation)?t=n.lockOrientation(e):l(n.mozLockOrientation)?t=n.mozLockOrientation(e):l(n.msLockOrientation)?t=n.msLockOrientation(e):l(n.orientation&&n.orientation.lock)&&(t=n.orientation.lock(e))),t}function exe(){let e=window.screen;l(e)&&(l(e.unlockOrientation)?e.unlockOrientation():l(e.mozUnlockOrientation)?e.mozUnlockOrientation():l(e.msUnlockOrientation)?e.msUnlockOrientation():l(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function byt(e,t,n,i){i()||(n()?(t.useWebVR=!1,e._locked&&(exe(),e._locked=!1),e._noSleep.disable(),lr.exitFullscreen(),n(!1)):(lr.fullscreen||lr.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=Eyt("landscape")),t.useWebVR=!0,n(!0)))}function SH(e,t){let n=this,i=Ce.observable(lr.enabled),o=Ce.observable(!1);this.isVRMode=void 0,Ce.defineProperty(this,"isVRMode",{get:function(){return o()}}),this.isVREnabled=void 0,Ce.defineProperty(this,"isVREnabled",{get:function(){return i()},set:function(s){i(s&&lr.enabled)}}),this.tooltip=void 0,Ce.defineProperty(this,"tooltip",function(){return i()?o()?"Exit VR mode":"Enter VR mode":"VR mode is unavailable"});let r=Ce.observable(!1);this._isOrthographic=void 0,Ce.defineProperty(this,"_isOrthographic",{get:function(){return r()}}),this._eventHelper=new Sr,this._eventHelper.add(e.preRender,function(){r(e.camera.frustum instanceof tn)}),this._locked=!1,this._noSleep=new $Ae.default,this._command=En(function(){byt(n,e,o,r)},Ce.getObservable(this,"isVREnabled")),this._vrElement=y(In(t),document.body),this._callback=function(){!lr.fullscreen&&o()&&(e.useWebVR=!1,n._locked&&(exe(),n._locked=!1),n._noSleep.disable(),o(!1))},document.addEventListener(lr.changeEventName,this._callback)}Object.defineProperties(SH.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}});SH.prototype.isDestroyed=function(){return!1};SH.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(lr.changeEventName,this._callback),ue(this)};var H2=SH;var Syt="M 5.3125 6.375 C 4.008126 6.375 2.96875 7.4141499 2.96875 8.71875 L 2.96875 19.5 C 2.96875 20.8043 4.008126 21.875 5.3125 21.875 L 13.65625 21.875 C 13.71832 20.0547 14.845166 18.59375 16.21875 18.59375 C 17.592088 18.59375 18.71881 20.0552 18.78125 21.875 L 27.09375 21.875 C 28.398125 21.875 29.4375 20.8043 29.4375 19.5 L 29.4375 8.71875 C 29.4375 7.4141499 28.398125 6.375 27.09375 6.375 L 5.3125 6.375 z M 9.625 10.4375 C 11.55989 10.4375 13.125 12.03385 13.125 13.96875 C 13.125 15.90365 11.55989 17.46875 9.625 17.46875 C 7.69011 17.46875 6.125 15.90365 6.125 13.96875 C 6.125 12.03385 7.69011 10.4375 9.625 10.4375 z M 22.46875 10.4375 C 24.40364 10.4375 25.96875 12.03385 25.96875 13.96875 C 25.96875 15.90365 24.40364 17.46875 22.46875 17.46875 C 20.53386 17.46875 18.96875 15.90365 18.96875 13.96875 C 18.96875 12.03385 20.53386 10.4375 22.46875 10.4375 z",wyt="M 25.770585,2.4552065 C 15.72282,13.962707 10.699956,19.704407 8.1768352,22.580207 c -1.261561,1.4379 -1.902282,2.1427 -2.21875,2.5 -0.141624,0.1599 -0.208984,0.2355 -0.25,0.2813 l 0.6875,0.75 c 10e-5,-10e-5 0.679191,0.727 0.6875,0.7187 0.01662,-0.016 0.02451,-0.024 0.03125,-0.031 0.01348,-0.014 0.04013,-0.038 0.0625,-0.062 0.04474,-0.05 0.120921,-0.1315 0.28125,-0.3126 0.320657,-0.3619 0.956139,-1.0921 2.2187499,-2.5312 2.5252219,-2.8781 7.5454589,-8.6169 17.5937499,-20.1250005 l -1.5,-1.3125 z m -20.5624998,3.9063 c -1.304375,0 -2.34375,1.0391 -2.34375,2.3437 l 0,10.8125005 c 0,1.3043 1.039375,2.375 2.34375,2.375 l 2.25,0 c 1.9518039,-2.2246 7.4710958,-8.5584 13.5624998,-15.5312005 l -15.8124998,0 z m 21.1249998,0 c -1.855467,2.1245 -2.114296,2.4005 -3.59375,4.0936995 1.767282,0.1815 3.15625,1.685301 3.15625,3.500001 0,1.9349 -1.56511,3.5 -3.5,3.5 -1.658043,0 -3.043426,-1.1411 -3.40625,-2.6875 -1.089617,1.2461 -2.647139,2.9988 -3.46875,3.9375 0.191501,-0.062 0.388502,-0.094 0.59375,-0.094 1.373338,0 2.50006,1.4614 2.5625,3.2812 l 8.3125,0 c 1.304375,0 2.34375,-1.0707 2.34375,-2.375 l 0,-10.8125005 c 0,-1.3046 -1.039375,-2.3437 -2.34375,-2.3437 l -0.65625,0 z M 9.5518351,10.423906 c 1.9348899,0 3.4999999,1.596401 3.4999999,3.531301 0,1.9349 -1.56511,3.5 -3.4999999,3.5 -1.9348899,0 -3.4999999,-1.5651 -3.4999999,-3.5 0,-1.9349 1.56511,-3.531301 3.4999999,-3.531301 z m 4.2187499,10.312601 c -0.206517,0.2356 -0.844218,0.9428 -1.03125,1.1562 l 0.8125,0 c 0.01392,-0.4081 0.107026,-0.7968 0.21875,-1.1562 z";function wH(e,t,n){e=In(e);let i=new H2(t,n);i._exitVRPath=wyt,i._enterVRPath=Syt;let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-vrButton",o.setAttribute("data-bind",'css: { "cesium-button-disabled" : _isOrthographic }, attr: { title: tooltip },click: command,enable: isVREnabled,cesiumSvgPath: { path: isVRMode ? _exitVRPath : _enterVRPath, width: 32, height: 32 }'),e.appendChild(o),Ce.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(wH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});wH.prototype.isDestroyed=function(){return!1};wH.prototype.destroy=function(){return this._viewModel.destroy(),Ce.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var G2=wH;var m0=new ae;function ixe(e){let t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function vyt(e){let t=e.getPropertyIds(),n="";return t.forEach(function(i){let o=e.getProperty(i);l(o)&&(n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}),n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function Dyt(e){let t,n=[],i=e.getPropertyIds();for(t=0;t<i.length;t++){let r=i[t];/^name$/i.test(r)?n[0]=e.getProperty(r):/name/i.test(r)?n[1]=e.getProperty(r):/^title$/i.test(r)?n[2]=e.getProperty(r):/^(id|identifier)$/i.test(r)?n[3]=e.getProperty(r):/element/i.test(r)?n[4]=e.getProperty(r):/(id|identifier)$/i.test(r)&&(n[5]=e.getProperty(r))}let o=n.length;for(t=0;t<o;t++){let r=n[t];if(l(r)&&r!=="")return r}return"Unnamed Feature"}function txe(e,t){let n=e.scene.pick(t.position);if(l(n)){let i=y(n.id,n.primitive.id);if(i instanceof Yo)return i;if(n instanceof xs)return new Yo({name:Dyt(n),description:vyt(n),feature:n})}if(l(e.scene.globe))return Oyt(e,t.position)}var Iyt=new ee;function oxe(e,t,n){if(l(n)){let i=n.clock;if(l(i)&&(i.getValue(t),l(e))){let o=i.startTime,r=i.stopTime;ee.equals(o,r)&&(r=ee.addSeconds(o,P.EPSILON2,Iyt)),e.updateFromClock(),e.zoomTo(o,r)}}}var Pyt=new m;function Oyt(e,t){let n=e.scene,i=n.camera.getPickRay(t),o=n.imageryLayers.pickImageryLayerFeatures(i,n);if(!l(o))return;let r=new Yo({id:"Loading...",description:"Loading feature information..."});return o.then(function(s){if(e.selectedEntity!==r)return;if(!l(s)||s.length===0){e.selectedEntity=nxe();return}let a=s[0],c=new Yo({id:a.name,description:a.description});if(l(a.position)){let u=e.scene.globe.ellipsoid.cartographicToCartesian(a.position,Pyt);c.position=new wc(u)}e.selectedEntity=c},function(){e.selectedEntity===r&&(e.selectedEntity=nxe())}),r}function nxe(){return new Yo({id:"None",description:"No features found."})}function Myt(e,t){let n=e._geocoder,i=e._homeButton,o=e._sceneModePicker,r=e._projectionPicker,s=e._baseLayerPicker,a=e._animation,c=e._timeline,u=e._fullscreenButton,f=e._infoBox,d=e._selectionIndicator,p=t?"hidden":"visible";if(l(n)&&(n.container.style.visibility=p),l(i)&&(i.container.style.visibility=p),l(o)&&(o.container.style.visibility=p),l(r)&&(r.container.style.visibility=p),l(s)&&(s.container.style.visibility=p),l(a)&&(a.container.style.visibility=p),l(c)&&(c.container.style.visibility=p),l(u)&&u.viewModel.isFullscreenEnabled&&(u.container.style.visibility=p),l(f)&&(f.container.style.visibility=p),l(d)&&(d.container.style.visibility=p),e._container){let g=t||!l(u)?0:u.container.clientWidth;e._vrButton.container.style.right=`${g}px`,e.forceResize()}}function Mi(e,t){e=In(e),t=y(t,y.EMPTY_OBJECT);let n=(!l(t.globe)||t.globe!==!1)&&(!l(t.baseLayerPicker)||t.baseLayerPicker!==!1),i=this,o=document.createElement("div");o.className="cesium-viewer",e.appendChild(o);let r=document.createElement("div");r.className="cesium-viewer-cesiumWidgetContainer",o.appendChild(r);let s=document.createElement("div");s.className="cesium-viewer-bottom",o.appendChild(s);let a=y(t.scene3DOnly,!1),c,u,f=!1;l(t.clockViewModel)?(u=t.clockViewModel,c=u.clock):(c=new Ud,u=new i2(c),f=!0),l(t.shouldAnimate)&&(c.shouldAnimate=t.shouldAnimate);let d=new jN(r,{baseLayer:n||l(t.baseLayer)||l(t.imageryProvider)?!1:void 0,clock:c,skyBox:t.skyBox,skyAtmosphere:t.skyAtmosphere,sceneMode:t.sceneMode,mapProjection:t.mapProjection,globe:t.globe,orderIndependentTranslucency:t.orderIndependentTranslucency,contextOptions:t.contextOptions,useDefaultRenderLoop:t.useDefaultRenderLoop,targetFrameRate:t.targetFrameRate,showRenderLoopErrors:t.showRenderLoopErrors,useBrowserRecommendedResolution:t.useBrowserRecommendedResolution,creditContainer:l(t.creditContainer)?t.creditContainer:s,creditViewport:t.creditViewport,scene3DOnly:a,shadows:t.shadows,terrainShadows:t.terrainShadows,mapMode2D:t.mapMode2D,blurActiveElementOnCanvasFocus:t.blurActiveElementOnCanvasFocus,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples}),p=t.dataSources,g=!1;l(p)||(p=new TR,g=!0);let h=d.scene,A=new cB({scene:h,dataSourceCollection:p}),x=new Sr;x.add(c.onTick,Mi.prototype._onTick,this),x.add(h.morphStart,Mi.prototype._clearTrackedObject,this);let C;if(!l(t.selectionIndicator)||t.selectionIndicator!==!1){let Y=document.createElement("div");Y.className="cesium-viewer-selectionIndicatorContainer",o.appendChild(Y),C=new U2(Y,h)}let T;if(!l(t.infoBox)||t.infoBox!==!1){let Y=document.createElement("div");Y.className="cesium-viewer-infoBoxContainer",o.appendChild(Y),T=new v2(Y);let Q=T.viewModel;x.add(Q.cameraClicked,Mi.prototype._onInfoBoxCameraClicked,this),x.add(Q.closeClicked,Mi.prototype._onInfoBoxClockClicked,this)}let E=document.createElement("div");E.className="cesium-viewer-toolbar",o.appendChild(E);let S;if(!l(t.geocoder)||t.geocoder!==!1){let Y=document.createElement("div");Y.className="cesium-viewer-geocoderContainer",E.appendChild(Y);let Q;l(t.geocoder)&&typeof t.geocoder!="boolean"&&(Q=Array.isArray(t.geocoder)?t.geocoder:[t.geocoder]),S=new S2({container:Y,geocoderServices:Q,scene:h}),x.add(S.viewModel.search.beforeExecute,Mi.prototype._clearObjects,this)}let v;(!l(t.homeButton)||t.homeButton!==!1)&&(v=new E2(E,h),l(S)&&x.add(v.viewModel.command.afterExecute,function(){let Y=S.viewModel;Y.searchText="",Y.isSearchInProgress&&Y.search()}),x.add(v.viewModel.command.beforeExecute,Mi.prototype._clearTrackedObject,this));let D;!a&&(!l(t.sceneModePicker)||t.sceneModePicker!==!1)&&(D=new L2(E,h));let O;t.projectionPicker&&(O=new R2(E,h));let M,L;if(n){let Y=y(t.imageryProviderViewModels,f2()),Q=y(t.terrainProviderViewModels,d2());M=new u2(E,{globe:h.globe,imageryProviderViewModels:Y,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:Q,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel}),L=E.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}l(t.imageryProvider)&&t.imageryProvider!==!1&&($("Viewer options.imageryProvider","options.imageryProvider was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use options.baseLayer instead."),n&&(M.viewModel.selectedImagery=void 0),h.imageryLayers.removeAll(),h.imageryLayers.addImageryProvider(t.imageryProvider)),l(t.baseLayer)&&t.baseLayer!==!1&&(n&&(M.viewModel.selectedImagery=void 0),h.imageryLayers.removeAll(),h.imageryLayers.add(t.baseLayer)),l(t.terrainProvider)&&(n&&(M.viewModel.selectedTerrain=void 0),h.terrainProvider=t.terrainProvider),l(t.terrain)&&(n&&(M.viewModel.selectedTerrain=void 0,h.globe.depthTestAgainstTerrain=!0),h.setTerrain(t.terrain));let N;if(!l(t.navigationHelpButton)||t.navigationHelpButton!==!1){let Y=!0;try{if(l(window.localStorage)){let Q=window.localStorage.getItem("cesium-hasSeenNavHelp");l(Q)&&Q?Y=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch{}N=new I2({container:E,instructionsInitiallyVisible:y(t.navigationInstructionsInitiallyVisible,Y)})}let _;if(!l(t.animation)||t.animation!==!1){let Y=document.createElement("div");Y.className="cesium-viewer-animationContainer",o.appendChild(Y),_=new a2(Y,new c2(u))}let b;if(!l(t.timeline)||t.timeline!==!1){let Y=document.createElement("div");Y.className="cesium-viewer-timelineContainer",o.appendChild(Y),b=new z2(Y,c),b.addEventListener("settime",ixe,!1),b.zoomTo(c.startTime,c.stopTime)}let w,I,R;(!l(t.fullscreenButton)||t.fullscreenButton!==!1)&&(R=document.createElement("div"),R.className="cesium-viewer-fullscreenContainer",o.appendChild(R),w=new C2(R,t.fullscreenElement),I=ca(w.viewModel,"isFullscreenEnabled",function(Y){R.style.display=Y?"block":"none",l(b)&&(b.container.style.right=`${R.clientWidth}px`,b.resize())}));let F,k,V;if(t.vrButton){let Y=document.createElement("div");Y.className="cesium-viewer-vrContainer",o.appendChild(Y),F=new G2(Y,h,t.fullScreenElement),k=ca(F.viewModel,"isVREnabled",function(Q){Y.style.display=Q?"block":"none",l(w)&&(Y.style.right=`${R.clientWidth}px`),l(b)&&(b.container.style.right=`${Y.clientWidth}px`,b.resize())}),V=ca(F.viewModel,"isVRMode",function(Q){Myt(i,Q)})}this._baseLayerPickerDropDown=L,this._fullscreenSubscription=I,this._vrSubscription=k,this._vrModeSubscription=V,this._dataSourceChangedListeners={},this._automaticallyTrackDataSourceClocks=y(t.automaticallyTrackDataSourceClocks,!0),this._container=e,this._bottomContainer=s,this._element=o,this._cesiumWidget=d,this._selectionIndicator=C,this._infoBox=T,this._dataSourceCollection=p,this._destroyDataSourceCollection=g,this._dataSourceDisplay=A,this._clockViewModel=u,this._destroyClockViewModel=f,this._toolbar=E,this._homeButton=v,this._sceneModePicker=D,this._projectionPicker=O,this._baseLayerPicker=M,this._navigationHelpButton=N,this._animation=_,this._timeline=b,this._fullscreenButton=w,this._vrButton=F,this._geocoder=S,this._eventHelper=x,this._lastWidth=0,this._lastHeight=0,this._allowDataSourcesToSuspendAnimation=!0,this._entityView=void 0,this._enableInfoOrSelection=l(T)||l(C),this._clockTrackedDataSource=void 0,this._trackedEntity=void 0,this._needTrackedEntityUpdate=!1,this._selectedEntity=void 0,this._zoomIsFlight=!1,this._zoomTarget=void 0,this._zoomPromise=void 0,this._zoomOptions=void 0,this._selectedEntityChanged=new ge,this._trackedEntityChanged=new ge,Ce.track(this,["_trackedEntity","_selectedEntity","_clockTrackedDataSource"]),x.add(p.dataSourceAdded,Mi.prototype._onDataSourceAdded,this),x.add(p.dataSourceRemoved,Mi.prototype._onDataSourceRemoved,this),x.add(h.postUpdate,Mi.prototype.resize,this),x.add(h.postRender,Mi.prototype._postRender,this);let G=p.length;for(let Y=0;Y<G;Y++)this._dataSourceAdded(p,p.get(Y));this._dataSourceAdded(void 0,A.defaultDataSource),x.add(p.dataSourceAdded,Mi.prototype._dataSourceAdded,this),x.add(p.dataSourceRemoved,Mi.prototype._dataSourceRemoved,this);function U(Y){let Q=txe(i,Y);l(Q)?j.getValueOrUndefined(Q.position,i.clock.currentTime)?i.trackedEntity=Q:i.zoomTo(Q):l(i.trackedEntity)&&(i.trackedEntity=void 0)}function q(Y){i.selectedEntity=txe(i,Y)}d.screenSpaceEventHandler.setInputAction(q,Cn.LEFT_CLICK),d.screenSpaceEventHandler.setInputAction(U,Cn.LEFT_DOUBLE_CLICK)}Object.defineProperties(Mi.prototype,{container:{get:function(){return this._container}},creditDisplay:{get:function(){return this._cesiumWidget.creditDisplay}},bottomContainer:{get:function(){return this._bottomContainer}},cesiumWidget:{get:function(){return this._cesiumWidget}},selectionIndicator:{get:function(){return this._selectionIndicator}},infoBox:{get:function(){return this._infoBox}},geocoder:{get:function(){return this._geocoder}},homeButton:{get:function(){return this._homeButton}},sceneModePicker:{get:function(){return this._sceneModePicker}},projectionPicker:{get:function(){return this._projectionPicker}},baseLayerPicker:{get:function(){return this._baseLayerPicker}},navigationHelpButton:{get:function(){return this._navigationHelpButton}},animation:{get:function(){return this._animation}},timeline:{get:function(){return this._timeline}},fullscreenButton:{get:function(){return this._fullscreenButton}},vrButton:{get:function(){return this._vrButton}},dataSourceDisplay:{get:function(){return this._dataSourceDisplay}},entities:{get:function(){return this._dataSourceDisplay.defaultDataSource.entities}},dataSources:{get:function(){return this._dataSourceCollection}},canvas:{get:function(){return this._cesiumWidget.canvas}},scene:{get:function(){return this._cesiumWidget.scene}},shadows:{get:function(){return this.scene.shadowMap.enabled},set:function(e){this.scene.shadowMap.enabled=e}},terrainShadows:{get:function(){return this.scene.globe.shadows},set:function(e){this.scene.globe.shadows=e}},shadowMap:{get:function(){return this.scene.shadowMap}},imageryLayers:{get:function(){return this.scene.imageryLayers}},terrainProvider:{get:function(){return this.scene.terrainProvider},set:function(e){this.scene.terrainProvider=e}},camera:{get:function(){return this.scene.camera}},postProcessStages:{get:function(){return this.scene.postProcessStages}},clock:{get:function(){return this._clockViewModel.clock}},clockViewModel:{get:function(){return this._clockViewModel}},screenSpaceEventHandler:{get:function(){return this._cesiumWidget.screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._cesiumWidget.targetFrameRate},set:function(e){this._cesiumWidget.targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._cesiumWidget.useDefaultRenderLoop},set:function(e){this._cesiumWidget.useDefaultRenderLoop=e}},resolutionScale:{get:function(){return this._cesiumWidget.resolutionScale},set:function(e){this._cesiumWidget.resolutionScale=e}},useBrowserRecommendedResolution:{get:function(){return this._cesiumWidget.useBrowserRecommendedResolution},set:function(e){this._cesiumWidget.useBrowserRecommendedResolution=e}},allowDataSourcesToSuspendAnimation:{get:function(){return this._allowDataSourcesToSuspendAnimation},set:function(e){this._allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._trackedEntity},set:function(e){if(this._trackedEntity!==e){this._trackedEntity=e,vH(this);let t=this.scene,n=t.mode;!l(e)||!l(e.position)?(this._needTrackedEntityUpdate=!1,(n===ne.COLUMBUS_VIEW||n===ne.SCENE2D)&&(t.screenSpaceCameraController.enableTranslate=!0),(n===ne.COLUMBUS_VIEW||n===ne.SCENE3D)&&(t.screenSpaceCameraController.enableTilt=!0),this._entityView=void 0,this.camera.lookAtTransform(B.IDENTITY)):this._needTrackedEntityUpdate=!0,this._trackedEntityChanged.raiseEvent(e),this.scene.requestRender()}}},selectedEntity:{get:function(){return this._selectedEntity},set:function(e){if(this._selectedEntity!==e){this._selectedEntity=e;let t=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(e)?l(t)&&t.animateAppear():l(t)&&t.animateDepart(),this._selectedEntityChanged.raiseEvent(e)}}},selectedEntityChanged:{get:function(){return this._selectedEntityChanged}},trackedEntityChanged:{get:function(){return this._trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._clockTrackedDataSource},set:function(e){this._clockTrackedDataSource!==e&&(this._clockTrackedDataSource=e,oxe(this._timeline,this.clock,e))}}});Mi.prototype.extend=function(e,t){e(this,t)};Mi.prototype.resize=function(){let e=this._cesiumWidget,t=this._container,n=t.clientWidth,i=t.clientHeight,o=l(this._animation),r=l(this._timeline);if(e.resize(),n===this._lastWidth&&i===this._lastHeight)return;let s=i-125,a=this._baseLayerPickerDropDown;if(l(a)&&(a.style.maxHeight=`${s}px`),l(this._geocoder)){let g=this._geocoder.searchSuggestionsContainer;g.style.maxHeight=`${s}px`}l(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);let c=this._timeline,u,f=0,d=0,p=0;if(o&&window.getComputedStyle(this._animation.container).visibility!=="hidden"){let g=this._lastWidth;u=this._animation.container,n>900?(f=169,g<=900&&(u.style.width="169px",u.style.height="112px",this._animation.resize())):n>=600?(f=136,(g<600||g>900)&&(u.style.width="136px",u.style.height="90px",this._animation.resize())):(f=106,(g>600||g===0)&&(u.style.width="106px",u.style.height="70px",this._animation.resize())),d=f+5}if(r&&window.getComputedStyle(this._timeline.container).visibility!=="hidden"){let g=this._fullscreenButton,h=this._vrButton,A=c.container,x=A.style;p=A.clientHeight+3,x.left=`${f}px`;let C=0;l(g)&&(C+=g.container.clientWidth),l(h)&&(C+=h.container.clientWidth),x.right=`${C}px`,c.resize()}this._bottomContainer.style.left=`${d}px`,this._bottomContainer.style.bottom=`${p}px`,this._lastWidth=n,this._lastHeight=i};Mi.prototype.forceResize=function(){this._lastWidth=0,this.resize()};Mi.prototype.render=function(){this._cesiumWidget.render()};Mi.prototype.isDestroyed=function(){return!1};Mi.prototype.destroy=function(){let e;this.screenSpaceEventHandler.removeInputAction(Cn.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(Cn.LEFT_DOUBLE_CLICK);let t=this.dataSources,n=t.length;for(e=0;e<n;e++)this._dataSourceRemoved(t,t.get(e));return this._dataSourceRemoved(void 0,this._dataSourceDisplay.defaultDataSource),this._container.removeChild(this._element),this._element.removeChild(this._toolbar),this._eventHelper.removeAll(),l(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),l(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),l(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),l(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),l(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),l(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),l(this._timeline)&&(this._timeline.removeEventListener("settime",ixe,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),l(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),l(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),l(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),l(this._selectionIndicator)&&(this._element.removeChild(this._selectionIndicator.container),this._selectionIndicator=this._selectionIndicator.destroy()),this._destroyClockViewModel&&(this._clockViewModel=this._clockViewModel.destroy()),this._dataSourceDisplay=this._dataSourceDisplay.destroy(),this._cesiumWidget=this._cesiumWidget.destroy(),this._destroyDataSourceCollection&&(this._dataSourceCollection=this._dataSourceCollection.destroy()),ue(this)};Mi.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Mi.prototype._onEntityCollectionChanged,this)};Mi.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Mi.prototype._onEntityCollectionChanged,this),l(this.trackedEntity)&&n.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0),l(this.selectedEntity)&&n.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)};Mi.prototype._onTick=function(e){let t=e.currentTime,n=this._dataSourceDisplay.update(t);this._allowDataSourcesToSuspendAnimation&&(this._clockViewModel.canAnimate=n);let i=this._entityView;if(l(i)){let f=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(f,!1,m0)===ut.DONE&&i.update(t,m0)}let o,r=!1,s=this.selectedEntity,a=l(s)&&this._enableInfoOrSelection;a&&s.isShowing&&s.isAvailable(t)&&(this._dataSourceDisplay.getBoundingSphere(s,!0,m0)!==ut.FAILED?o=m0.center:l(s.position)&&(o=s.position.getValue(t,o)),r=l(o));let c=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(c)&&(c.position=m.clone(o,c.position),c.showSelection=a&&r,c.update());let u=l(this._infoBox)?this._infoBox.viewModel:void 0;l(u)&&(u.showInfo=a,u.enableCamera=r,u.isCameraTracking=this.trackedEntity===this.selectedEntity,a?(u.titleText=y(s.name,s.id),u.description=j.getValueOrDefault(s.description,t,"")):(u.titleText="",u.description=""))};Mi.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.trackedEntity===r&&(this.trackedEntity=void 0),this.selectedEntity===r&&(this.selectedEntity=void 0)}};Mi.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{let n=this.selectedEntity.position;l(n)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}};Mi.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Mi.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0};Mi.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0};Mi.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&oxe(this.timeline,this.clock,e)};Mi.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Mi.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Mi.prototype._onDataSourceRemoved=function(e,t){let n=this.clockTrackedDataSource===t,i=t.entities.id;if(this._dataSourceChangedListeners[i](),this._dataSourceChangedListeners[i]=void 0,n){let o=e.length;this._automaticallyTrackDataSourceClocks&&o>0?this.clockTrackedDataSource=e.get(o-1):this.clockTrackedDataSource=void 0}};Mi.prototype.zoomTo=function(e,t){return rxe(this,e,{offset:t},!1)};Mi.prototype.flyTo=function(e,t){return rxe(this,e,t,!0)};function rxe(e,t,n,i){vH(e);let o=new Promise(r=>{e._completeZoom=function(s){r(s)}});return e._zoomPromise=o,e._zoomIsFlight=i,e._zoomOptions=n,Promise.resolve(t).then(function(r){if(e._zoomPromise===o){if(r instanceof Ls){let s;l(r.imageryProvider)?s=r.imageryProvider._readyPromise.then(()=>r.getImageryRectangle()):s=new Promise(a=>{let c=r.readyEvent.addEventListener(()=>{c(),a(r.getImageryRectangle())})}),s.then(function(a){return OC(a,e.scene)}).then(function(a){e._zoomPromise===o&&(e._zoomTarget=a)});return}if(r instanceof Ca||r instanceof RS||r instanceof FS){e._zoomTarget=r;return}if(r.isLoading&&l(r.loadingEvent)){let s=r.loadingEvent.addEventListener(function(){s(),e._zoomPromise===o&&(e._zoomTarget=r.entities.values.slice(0))});return}if(Array.isArray(r)){e._zoomTarget=r.slice(0);return}r=y(r.values,r),l(r.entities)&&(r=r.entities.values),Array.isArray(r)?e._zoomTarget=r.slice(0):e._zoomTarget=[r]}}),e.scene.requestRender(),o}function qS(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function vH(e){let t=e._zoomPromise;l(t)&&(qS(e),e._completeZoom(!1))}Mi.prototype._postRender=function(){Ryt(this),Byt(this)};function Ryt(e){let t=e._zoomTarget;if(!l(t)||e.scene.mode===ne.MORPHING)return;let n=e.scene,i=n.camera,o=y(e._zoomOptions,{}),r;if(t instanceof Ca||t instanceof FS)return t._readyPromise.then(function(){let u=t.boundingSphere;l(o.offset)||(o.offset=new du(0,-.5,u.radius)),r={offset:o.offset,duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(t.boundingSphere,r):(i.viewBoundingSphere(u,o.offset),i.lookAtTransform(B.IDENTITY),e._completeZoom(!0)),qS(e)}).catch(()=>{vH(e)});if(t instanceof RS)return t._readyPromise.then(function(){let u=t.boundingSphere;l(o.offset)||(o.offset=new du(0,-.5,u.radius)),r={offset:o.offset,duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(u,r):(i.viewBoundingSphere(u,o.offset),i.lookAtTransform(B.IDENTITY),e._completeZoom(!0)),qS(e)});if(t instanceof he){r={destination:n.mapProjection.ellipsoid.cartographicToCartesian(t),duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyTo(r):(i.setView(r),e._completeZoom(!0)),qS(e);return}let s=t,a=[];for(let u=0,f=s.length;u<f;u++){let d=e._dataSourceDisplay.getBoundingSphere(s[u],!1,m0);if(d===ut.PENDING)return;d!==ut.FAILED&&a.push(ae.clone(m0))}if(a.length===0){vH(e);return}e.trackedEntity=void 0;let c=ae.fromBoundingSpheres(a);e._zoomIsFlight?(qS(e),i.flyToBoundingSphere(c,{duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)},offset:o.offset})):(i.viewBoundingSphere(c,o.offset),i.lookAtTransform(B.IDENTITY),qS(e),e._completeZoom(!0))}function Byt(e){if(!e._needTrackedEntityUpdate)return;let t=e._trackedEntity,n=e.clock.currentTime,i=j.getValueOrUndefined(t.position,n);if(!l(i))return;let o=e.scene,r=e._dataSourceDisplay.getBoundingSphere(t,!1,m0);if(r===ut.PENDING)return;let s=o.mode;(s===ne.COLUMBUS_VIEW||s===ne.SCENE2D)&&(o.screenSpaceCameraController.enableTranslate=!1),(s===ne.COLUMBUS_VIEW||s===ne.SCENE3D)&&(o.screenSpaceCameraController.enableTilt=!1);let a=r!==ut.FAILED?m0:void 0;e._entityView=new uB(t,o,o.mapProjection.ellipsoid),e._entityView.update(n,a),e._needTrackedEntityUpdate=!1}var fK=Mi;function Lyt(e){let t=document.createElement("div");t.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(t);let n=new _2(t,e.scene);Object.defineProperties(e,{cesium3DTilesInspector:{get:function(){return n}}})}var dK=Lyt;function Nyt(e){let t=document.createElement("div");t.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(t);let n=new A2(t,e.scene);Object.defineProperties(e,{cesiumInspector:{get:function(){return n}}})}var mK=Nyt;function Fyt(e,t){t=y(t,y.EMPTY_OBJECT);let n=!0,i=y(t.flyToOnDrop,!0),o=new ge,r=y(t.clearOnDrop,!0),s=y(t.dropTarget,e.container),a=y(t.clampToGround,!0),c=t.proxy;s=In(s),Object.defineProperties(e,{dropTarget:{get:function(){return s},set:function(f){sxe(s,u),s=f,hK(s,u)}},dropEnabled:{get:function(){return n},set:function(f){f!==n&&(f?hK(s,u):sxe(s,u),n=f)}},dropError:{get:function(){return o}},clearOnDrop:{get:function(){return r},set:function(f){r=f}},flyToOnDrop:{get:function(){return i},set:function(f){i=f}},proxy:{get:function(){return c},set:function(f){c=f}},clampToGround:{get:function(){return a},set:function(f){a=f}}});function u(f){FC(f),r&&(e.entities.removeAll(),e.dataSources.removeAll());let d=f.dataTransfer.files,p=d.length;for(let g=0;g<p;g++){let h=d[g],A=new FileReader;A.onload=Uyt(e,h,c,a),A.onerror=Vyt(e,h),A.readAsText(h)}}hK(s,u),e.destroy=QF(e,e.destroy,function(){e.dropEnabled=!1}),e._handleDrop=u}function FC(e){e.stopPropagation(),e.preventDefault()}function sxe(e,t){let n=e;l(n)&&(n.removeEventListener("drop",t,!1),n.removeEventListener("dragenter",FC,!1),n.removeEventListener("dragover",FC,!1),n.removeEventListener("dragexit",FC,!1))}function hK(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",FC,!1),e.addEventListener("dragover",FC,!1),e.addEventListener("dragexit",FC,!1)}function Uyt(e,t,n,i){let o=e.scene;return function(r){let s=t.name;try{let a;if(/\.czml$/i.test(s))a=CR.load(JSON.parse(r.target.result),{sourceUri:s});else if(/\.geojson$/i.test(s)||/\.json$/i.test(s)||/\.topojson$/i.test(s))a=mB.load(JSON.parse(r.target.result),{sourceUri:s,clampToGround:i});else if(/\.(kml|kmz)$/i.test(s))a=LB.load(t,{sourceUri:s,proxy:n,camera:o.camera,canvas:o.canvas,clampToGround:i,screenOverlayContainer:e.container});else if(/\.gpx$/i.test(s))a=gB.load(t,{sourceUri:s,proxy:n});else{e.dropError.raiseEvent(e,s,`Unrecognized file: ${s}`);return}l(a)&&e.dataSources.add(a).then(function(c){e.flyToOnDrop&&e.flyTo(c)}).catch(function(c){e.dropError.raiseEvent(e,s,c)})}catch(a){e.dropError.raiseEvent(e,s,a)}}}function Vyt(e,t){return function(n){e.dropError.raiseEvent(e,t.name,n.target.error)}}var pK=Fyt;function kyt(e,t){t=y(t,y.EMPTY_OBJECT);let n=new O2({scene:e.scene,container:e.bottomContainer,lowFrameRateMessage:t.lowFrameRateMessage});Object.defineProperties(e,{performanceWatchdog:{get:function(){return n}}})}var _K=kyt;function axe(e){let t=e.split(` +`),n;for(n=0;n<t.length&&!t[n].match(/\S/);n++);if(n===t.length)return"";let i="",o=/^\s*/,s=t[n].match(o)[0].length;for(let a=n;a<t.length;a++){let c=t[a];c.match(o)[0].length>=s&&(c=c.slice(s)),i+=`${c} +`}return i}function qf(e){this._scene=e,this._voxelPrimitive=void 0,this._customShaderCompilationRemoveCallback=void 0,this._definedProperties=[],this._getPrimitiveFunctions=[],this._modelMatrixReady=!1;let t=this;function n(o){let{name:r,initialValue:s}=o;t._definedProperties.push(r);let a=o.setPrimitiveFunction;a===!0&&(a=function(f){t._voxelPrimitive[r]=f});let c=o.getPrimitiveFunction;c===!0&&(c=function(){t[r]=t._voxelPrimitive[r]}),l(c)&&t._getPrimitiveFunctions.push(c);let u=Ce.observable();return Ce.defineProperty(t,r,{get:function(){return u()},set:function(f){typeof s=="number"&&typeof f=="string"&&(f=Number(f),isNaN(f)&&(f=s)),typeof s=="boolean"&&typeof f=="number"&&(f=f===1),u(f),l(a)&&l(t._voxelPrimitive)&&(a(f),e.requestRender())}}),t[r]=s,u}function i(o,r){return function(s){let a=t._voxelPrimitive[o].clone();a[r]=s,t._voxelPrimitive[o]=a}}n({name:"inspectorVisible",initialValue:!0}),n({name:"displayVisible",initialValue:!1}),n({name:"transformVisible",initialValue:!1}),n({name:"boundsVisible",initialValue:!1}),n({name:"clippingVisible",initialValue:!1}),n({name:"shaderVisible",initialValue:!1}),n({name:"shaderString",initialValue:"",getPrimitiveFunction:function(){let o=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=axe(o)}}),n({name:"shaderCompilationMessage",initialValue:""}),n({name:"shaderCompilationSuccess",initialValue:!0}),n({name:"depthTest",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"show",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"disableUpdate",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"debugDraw",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"jitter",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"nearestSampling",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"screenSpaceError",initialValue:4,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"stepSize",initialValue:1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"shapeIsBox",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsBox=o===Gi.BOX}}),n({name:"shapeIsEllipsoid",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsEllipsoid=o===Gi.ELLIPSOID}}),n({name:"shapeIsCylinder",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsCylinder=o===Gi.CYLINDER}}),n({name:"boundsBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMaxX=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsBoxMinX",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMinX=t._voxelPrimitive.minBounds.x}}),n({name:"boundsBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMaxY=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsBoxMinY",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMinY=t._voxelPrimitive.minBounds.y}}),n({name:"boundsBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMaxZ=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsBoxMinZ",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMinZ=t._voxelPrimitive.minBounds.z}}),n({name:"boundsEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLongitude=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLongitude=t._voxelPrimitive.minBounds.x}}),n({name:"boundsEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLatitude=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLatitude=t._voxelPrimitive.minBounds.y}}),n({name:"boundsEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxHeight=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMinHeight=t._voxelPrimitive.minBounds.z}}),n({name:"boundsCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMaxRadius=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMinRadius=t._voxelPrimitive.minBounds.x}}),n({name:"boundsCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMaxHeight=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMinHeight=t._voxelPrimitive.minBounds.y}}),n({name:"boundsCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMaxAngle=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMinAngle=t._voxelPrimitive.minBounds.z}}),n({name:"clippingBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMaxX=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingBoxMinX",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMinX=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMaxY=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingBoxMinY",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMinY=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMaxZ=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingBoxMinZ",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMinZ=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLongitude=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLongitude=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLatitude=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLatitude=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxHeight=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMinHeight=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMaxRadius=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMinRadius=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMaxHeight=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMinHeight=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMaxAngle=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMinAngle=t._voxelPrimitive.minClippingBounds.z}}),n({name:"translationX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Lh(t)},getPrimitiveFunction:function(){t.translationX=B.getTranslation(t._voxelPrimitive.modelMatrix,new m).x}}),n({name:"translationY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Lh(t)},getPrimitiveFunction:function(){t.translationY=B.getTranslation(t._voxelPrimitive.modelMatrix,new m).y}}),n({name:"translationZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Lh(t)},getPrimitiveFunction:function(){t.translationZ=B.getTranslation(t._voxelPrimitive.modelMatrix,new m).z}}),n({name:"scaleX",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Lh(t)},getPrimitiveFunction:function(){t.scaleX=B.getScale(t._voxelPrimitive.modelMatrix,new m).x}}),n({name:"scaleY",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Lh(t)},getPrimitiveFunction:function(){t.scaleY=B.getScale(t._voxelPrimitive.modelMatrix,new m).y}}),n({name:"scaleZ",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Lh(t)},getPrimitiveFunction:function(){t.scaleZ=B.getScale(t._voxelPrimitive.modelMatrix,new m).z}}),n({name:"angleX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Lh(t)}}),n({name:"angleY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Lh(t)}}),n({name:"angleZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Lh(t)}})}var zyt=new m,Hyt=new m,Gyt=new Fa,Wyt=new Z;function Lh(e){let t=m.fromElements(e.translationX,e.translationY,e.translationZ,zyt),n=m.fromElements(e.scaleX,e.scaleY,e.scaleZ,Hyt),i=Gyt;i.heading=e.angleX,i.pitch=e.angleY,i.roll=e.angleZ;let o=Z.fromHeadingPitchRoll(i,Wyt),r=Z.multiplyByScale(o,n,o);e._voxelPrimitive.modelMatrix=B.fromRotationTranslation(r,t,e._voxelPrimitive.modelMatrix)}Object.defineProperties(qf.prototype,{scene:{get:function(){return this._scene}},voxelPrimitive:{get:function(){return this._voxelPrimitive},set:function(e){if(l(this._customShaderCompilationRemoveCallback)&&this._customShaderCompilationRemoveCallback(),l(e)){this._voxelPrimitive=e;let t=this;t._voxelPrimitive._readyPromise.then(function(){t._customShaderCompilationRemoveCallback=t._voxelPrimitive.customShaderCompilationEvent.addEventListener(function(n){let i=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=axe(i),l(n)?(t.shaderCompilationMessage=n.message,t.shaderCompilationSuccess=!1):(t.shaderCompilationMessage="Shader compiled successfully!",t.shaderCompilationSuccess=!0)}),t._modelMatrixReady=!1;for(let n=0;n<t._getPrimitiveFunctions.length;n++)t._getPrimitiveFunctions[n]();t._modelMatrixReady=!0,Lh(t)})}}}});qf.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};qf.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};qf.prototype.toggleTransform=function(){this.transformVisible=!this.transformVisible};qf.prototype.toggleBounds=function(){this.boundsVisible=!this.boundsVisible};qf.prototype.toggleClipping=function(){this.clippingVisible=!this.clippingVisible};qf.prototype.toggleShader=function(){this.shaderVisible=!this.shaderVisible};qf.prototype.compileShader=function(){l(this._voxelPrimitive)&&(this._voxelPrimitive.customShader=new IC({fragmentShaderText:this.shaderString,uniforms:this._voxelPrimitive.customShader.uniforms}))};qf.prototype.shaderEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,u;if(t.shiftKey)for(u=0;u<c;++u)a[u][0]===" "&&(a[u][1]===" "?(a[u]=a[u].substr(2),r-=2):(a[u]=a[u].substr(1),r-=1));else for(u=0;u<c;++u)a[u]=` ${a[u]}`,r+=2;let f=a.join(` +`);n.value=n.value.slice(0,i)+f+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileShader();return!0};qf.prototype.isDestroyed=function(){return!1};qf.prototype.destroy=function(){let e=this;return this._definedProperties.forEach(function(t){Ce.getObservable(e,t).dispose()}),ue(this)};var W2=qf;function DH(e,t){e=In(e);let n=document.createElement("div"),i=new W2(t);this._viewModel=i,this._container=e,this._element=n;let o=document.createElement("div");o.textContent="Voxel Inspector",o.className="cesium-cesiumInspector-button",o.setAttribute("data-bind","click: toggleInspector"),n.appendChild(o),n.className="cesium-cesiumInspector cesium-VoxelInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let r=document.createElement("div");r.className="cesium-cesiumInspector-dropDown",n.appendChild(r);let s=Da.createSection,a=Da.createCheckbox,c=Da.createRangeInput,u=Da.createButton,f=s(r,"Display","displayVisible","toggleDisplay"),d=s(r,"Transform","transformVisible","toggleTransform"),p=s(r,"Bounds","boundsVisible","toggleBounds"),g=s(r,"Clipping","clippingVisible","toggleClipping"),h=s(r,"Shader","shaderVisible","toggleShader");f.appendChild(a("Depth Test","depthTest")),f.appendChild(a("Show","show")),f.appendChild(a("Disable Update","disableUpdate")),f.appendChild(a("Debug Draw","debugDraw")),f.appendChild(a("Jitter","jitter")),f.appendChild(a("Nearest Sampling","nearestSampling")),f.appendChild(c("Screen Space Error","screenSpaceError",0,128)),f.appendChild(c("Step Size","stepSize",0,2));let A=10,x=10,C=P.PI;d.appendChild(c("Translation X","translationX",-A,+A)),d.appendChild(c("Translation Y","translationY",-A,+A)),d.appendChild(c("Translation Z","translationZ",-A,+A)),d.appendChild(c("Scale X","scaleX",0,+x)),d.appendChild(c("Scale Y","scaleY",0,+x)),d.appendChild(c("Scale Z","scaleZ",0,+x)),d.appendChild(c("Heading","angleX",-C,+C)),d.appendChild(c("Pitch","angleY",-C,+C)),d.appendChild(c("Roll","angleZ",-C,+C));let T=Gi.getMinBounds(Gi.BOX),E=Gi.getMaxBounds(Gi.BOX),S=m.fromElements(Gi.getMinBounds(Gi.ELLIPSOID).x,Gi.getMinBounds(Gi.ELLIPSOID).y,-oe.WGS84.maximumRadius,new m),v=m.fromElements(Gi.getMaxBounds(Gi.ELLIPSOID).x,Gi.getMaxBounds(Gi.ELLIPSOID).y,1e7,new m),D=Gi.getMinBounds(Gi.CYLINDER),O=Gi.getMaxBounds(Gi.CYLINDER);XS("Max X","Min X","Max Y","Min Y","Max Z","Min Z","boundsBoxMaxX","boundsBoxMinX","boundsBoxMaxY","boundsBoxMinY","boundsBoxMaxZ","boundsBoxMinZ",T,E,"shapeIsBox",p),XS("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","boundsEllipsoidMaxLongitude","boundsEllipsoidMinLongitude","boundsEllipsoidMaxLatitude","boundsEllipsoidMinLatitude","boundsEllipsoidMaxHeight","boundsEllipsoidMinHeight",S,v,"shapeIsEllipsoid",p),XS("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","boundsCylinderMaxRadius","boundsCylinderMinRadius","boundsCylinderMaxHeight","boundsCylinderMinHeight","boundsCylinderMaxAngle","boundsCylinderMinAngle",D,O,"shapeIsCylinder",p),XS("Max X","Min X","Max Y","Min Y","Max Z","Min Z","clippingBoxMaxX","clippingBoxMinX","clippingBoxMaxY","clippingBoxMinY","clippingBoxMaxZ","clippingBoxMinZ",T,E,"shapeIsBox",g),XS("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","clippingEllipsoidMaxLongitude","clippingEllipsoidMinLongitude","clippingEllipsoidMaxLatitude","clippingEllipsoidMinLatitude","clippingEllipsoidMaxHeight","clippingEllipsoidMinHeight",S,v,"shapeIsEllipsoid",g),XS("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","clippingCylinderMaxRadius","clippingCylinderMinRadius","clippingCylinderMaxHeight","clippingCylinderMinHeight","clippingCylinderMaxAngle","clippingCylinderMinAngle",D,O,"shapeIsCylinder",g);let M=document.createElement("div");h.appendChild(M);let L=document.createElement("textarea");L.setAttribute("data-bind","textInput: shaderString, event: { keydown: shaderEditorKeyPress }"),M.className="cesium-cesiumInspector-styleEditor",M.appendChild(L);let N=u("Compile (Ctrl+Enter)","compileShader");M.appendChild(N);let _=document.createElement("label");_.style.display="block",_.setAttribute("data-bind","text: shaderCompilationMessage, style: {color: shaderCompilationSuccess ? 'green' : 'red'}"),M.appendChild(_),Ce.applyBindings(i,n)}Object.defineProperties(DH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});DH.prototype.isDestroyed=function(){return!1};DH.prototype.destroy=function(){return Ce.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};function XS(e,t,n,i,o,r,s,a,c,u,f,d,p,g,h,A){let x=Da.createRangeInput,C=p,T=g,E=A.appendChild(document.createElement("div"));E.setAttribute("data-bind",`if: ${h}`),E.appendChild(x(e,s,C.x,T.x)),E.appendChild(x(t,a,C.x,T.x)),E.appendChild(x(n,c,C.y,T.y)),E.appendChild(x(i,u,C.y,T.y)),E.appendChild(x(o,f,C.z,T.z)),E.appendChild(x(r,d,C.z,T.z))}var j2=DH;function jyt(e){let t=document.createElement("div");t.className="cesium-viewer-voxelInspectorContainer",e.container.appendChild(t);let n=new j2(t,e.scene);Object.defineProperties(e,{voxelInspector:{get:function(){return n}}})}var gK=jyt;globalThis.CESIUM_VERSION="1.105";var Yyt="1.105";return Exe(qyt);})(); diff --git a/public/static/Cesium/ThirdParty/Workers/basis_transcoder.js b/public/static/Cesium/ThirdParty/Workers/basis_transcoder.js new file mode 100644 index 0000000..6cc8838 --- /dev/null +++ b/public/static/Cesium/ThirdParty/Workers/basis_transcoder.js @@ -0,0 +1,31 @@ +var BASIS=function(){var ae=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(ae=ae||__filename),function(x){x=x||{};var u=typeof x<"u"?x:{},xe,Ge;u.ready=new Promise(function(e,r){xe=e,readyPromiseRejectza=r});var G={},D;for(D in u)u.hasOwnProperty(D)&&(G[D]=u[D]);var z=[],ze="./this.program",Ae=function(e,r){throw r},se=!1,I=!1,$e=!1,Xe=!1;se=typeof window=="object",I=typeof importScripts=="function",$e=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Xe=!se&&!$e&&!I;var w="";function Er(e){return u.locateFile?u.locateFile(e,w):w+e}var ue,Fe,X,Rr,Ee,Re;$e?(I?w=require("path").dirname(w)+"/":w=__dirname+"/",ue=function(r,t){return Ee||(Ee=require("fs")),Re||(Re=require("path")),r=Re.normalize(r),Ee.readFileSync(r,t?null:"utf8")},X=function(r){var t=ue(r,!0);return t.buffer||(t=new Uint8Array(t)),Se(t.buffer),t},process.argv.length>1&&(ze=process.argv[1].replace(/\\/g,"/")),z=process.argv.slice(2),process.on("uncaughtException",function(e){if(!(e instanceof On))throw e}),process.on("unhandledRejection",L),Ae=function(e){process.exit(e)},u.inspect=function(){return"[Emscripten Module object]"}):Xe?(typeof read<"u"&&(ue=function(r){return read(r)}),X=function(r){var t;return typeof readbuffer=="function"?new Uint8Array(readbuffer(r)):(t=read(r,"binary"),Se(typeof t=="object"),t)},typeof scriptArgs<"u"?z=scriptArgs:typeof arguments<"u"&&(z=arguments),typeof quit=="function"&&(Ae=function(e){quit(e)}),typeof print<"u"&&(typeof console>"u"&&(console={}),console.log=print,console.warn=console.error=typeof printErr<"u"?printErr:print)):(se||I)&&(I?w=self.location.href:typeof document<"u"&&document.currentScript&&(w=document.currentScript.src),ae&&(w=ae),w.indexOf("blob:")!==0?w=w.substr(0,w.lastIndexOf("/")+1):w="",ue=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},I&&(X=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Fe=function(e,r,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=function(){if(n.status==200||n.status==0&&n.response){r(n.response);return}t()},n.onerror=t,n.send(null)},Rr=function(e){document.title=e});var Sr=u.print||console.log.bind(console),V=u.printErr||console.warn.bind(console);for(D in G)G.hasOwnProperty(D)&&(u[D]=G[D]);G=null,u.arguments&&(z=u.arguments),u.thisProgram&&(ze=u.thisProgram),u.quit&&(Ae=u.quit);var Or=0,Wr=function(e){Or=e},Y;u.wasmBinary&&(Y=u.wasmBinary);var Dn=u.noExitRuntime||!0;typeof WebAssembly!="object"&&L("no native wasm support detected");var fe,Ye=!1,Dr;function Se(e,r){e||L("Assertion failed: "+r)}var Je=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Ke(e,r,t){for(var n=r+t,i=r;e[i]&&!(i>=n);)++i;if(i-r>16&&e.subarray&&Je)return Je.decode(e.subarray(r,i));for(var s="";r<i;){var f=e[r++];if(!(f&128)){s+=String.fromCharCode(f);continue}var o=e[r++]&63;if((f&224)==192){s+=String.fromCharCode((f&31)<<6|o);continue}var a=e[r++]&63;if((f&240)==224?f=(f&15)<<12|o<<6|a:f=(f&7)<<18|o<<12|a<<6|e[r++]&63,f<65536)s+=String.fromCharCode(f);else{var c=f-65536;s+=String.fromCharCode(55296|c>>10,56320|c&1023)}}return s}function Qe(e,r){return e?Ke(_,e,r):""}function Ur(e,r,t,n){if(!(n>0))return 0;for(var i=t,s=t+n-1,f=0;f<e.length;++f){var o=e.charCodeAt(f);if(o>=55296&&o<=57343){var a=e.charCodeAt(++f);o=65536+((o&1023)<<10)|a&1023}if(o<=127){if(t>=s)break;r[t++]=o}else if(o<=2047){if(t+1>=s)break;r[t++]=192|o>>6,r[t++]=128|o&63}else if(o<=65535){if(t+2>=s)break;r[t++]=224|o>>12,r[t++]=128|o>>6&63,r[t++]=128|o&63}else{if(t+3>=s)break;r[t++]=240|o>>18,r[t++]=128|o>>12&63,r[t++]=128|o>>6&63,r[t++]=128|o&63}}return r[t]=0,t-i}function jr(e,r,t){return Ur(e,_,r,t)}function Ir(e){for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n>=55296&&n<=57343&&(n=65536+((n&1023)<<10)|e.charCodeAt(++t)&1023),n<=127?++r:n<=2047?r+=2:n<=65535?r+=3:r+=4}return r}var Ze=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function kr(e,r){for(var t=e,n=t>>1,i=n+r/2;!(n>=i)&&J[n];)++n;if(t=n<<1,t-e>32&&Ze)return Ze.decode(_.subarray(e,t));for(var s="",f=0;!(f>=r/2);++f){var o=k[e+f*2>>1];if(o==0)break;s+=String.fromCharCode(o)}return s}function Hr(e,r,t){if(t===void 0&&(t=2147483647),t<2)return 0;t-=2;for(var n=r,i=t<e.length*2?t/2:e.length,s=0;s<i;++s){var f=e.charCodeAt(s);k[r>>1]=f,r+=2}return k[r>>1]=0,r-n}function Mr(e){return e.length*2}function Vr(e,r){for(var t=0,n="";!(t>=r/4);){var i=b[e+t*4>>2];if(i==0)break;if(++t,i>=65536){var s=i-65536;n+=String.fromCharCode(55296|s>>10,56320|s&1023)}else n+=String.fromCharCode(i)}return n}function Lr(e,r,t){if(t===void 0&&(t=2147483647),t<4)return 0;for(var n=r,i=n+t-4,s=0;s<e.length;++s){var f=e.charCodeAt(s);if(f>=55296&&f<=57343){var o=e.charCodeAt(++s);f=65536+((f&1023)<<10)|o&1023}if(b[r>>2]=f,r+=4,r+4>i)break}return b[r>>2]=0,r-n}function Br(e){for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n>=55296&&n<=57343&&++t,r+=4}return r}function qr(e,r){return e%r>0&&(e+=r-e%r),e}var Oe,ce,_,k,J,b,$,er,rr;function tr(e){Oe=e,u.HEAP8=ce=new Int8Array(e),u.HEAP16=k=new Int16Array(e),u.HEAP32=b=new Int32Array(e),u.HEAPU8=_=new Uint8Array(e),u.HEAPU16=J=new Uint16Array(e),u.HEAPU32=$=new Uint32Array(e),u.HEAPF32=er=new Float32Array(e),u.HEAPF64=rr=new Float64Array(e)}var Un=u.INITIAL_MEMORY||16777216,K,nr=[],ir=[],Nr=[],or=[],xr=!1;function Gr(){if(u.preRun)for(typeof u.preRun=="function"&&(u.preRun=[u.preRun]);u.preRun.length;)Jr(u.preRun.shift());le(nr)}function zr(){xr=!0,le(ir)}function Xr(){le(Nr)}function Yr(){if(u.postRun)for(typeof u.postRun=="function"&&(u.postRun=[u.postRun]);u.postRun.length;)Qr(u.postRun.shift());le(or)}function Jr(e){nr.unshift(e)}function Kr(e){ir.unshift(e)}function Qr(e){or.unshift(e)}var H=0,We=null,Q=null;function Zr(e){H++,u.monitorRunDependencies&&u.monitorRunDependencies(H)}function et(e){if(H--,u.monitorRunDependencies&&u.monitorRunDependencies(H),H==0&&(We!==null&&(clearInterval(We),We=null),Q)){var r=Q;Q=null,r()}}u.preloadedImages={},u.preloadedAudios={};function L(e){u.onAbort&&u.onAbort(e),e+="",V(e),Ye=!0,Dr=1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.";var r=new WebAssembly.RuntimeError(e);throw Ge(r),r}function ar(e,r){return String.prototype.startsWith?e.startsWith(r):e.indexOf(r)===0}var rt="data:application/octet-stream;base64,";function sr(e){return ar(e,rt)}var tt="file://";function ur(e){return ar(e,tt)}var T="basis_transcoder.wasm";sr(T)||(T=Er(T));function fr(e){try{if(e==T&&Y)return new Uint8Array(Y);if(X)return X(e);throw"both async and sync fetching of the wasm failed"}catch(r){L(r)}}function nt(){if(!Y&&(se||I)){if(typeof fetch=="function"&&!ur(T))return fetch(T,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+T+"'";return e.arrayBuffer()}).catch(function(){return fr(T)});if(Fe)return new Promise(function(e,r){Fe(T,function(t){e(new Uint8Array(t))},r)})}return Promise.resolve().then(function(){return fr(T)})}function it(){var e={a:Fn};function r(f,o){var a=f.exports;u.asm=a,fe=u.asm.K,tr(fe.buffer),K=u.asm.O,Kr(u.asm.L),et("wasm-instantiate")}Zr("wasm-instantiate");function t(f){r(f.instance)}function n(f){return nt().then(function(o){var a=WebAssembly.instantiate(o,e);return a}).then(f,function(o){V("failed to asynchronously prepare wasm: "+o),L(o)})}function i(){return!Y&&typeof WebAssembly.instantiateStreaming=="function"&&!sr(T)&&!ur(T)&&typeof fetch=="function"?fetch(T,{credentials:"same-origin"}).then(function(f){var o=WebAssembly.instantiateStreaming(f,e);return o.then(t,function(a){return V("wasm streaming compile failed: "+a),V("falling back to ArrayBuffer instantiation"),n(t)})}):n(t)}if(u.instantiateWasm)try{var s=u.instantiateWasm(e,r);return s}catch(f){return V("Module.instantiateWasm callback failed with error: "+f),!1}return i().catch(Ge),{}}function le(e){for(;e.length>0;){var r=e.shift();if(typeof r=="function"){r(u);continue}var t=r.func;typeof t=="number"?r.arg===void 0?K.get(t)():K.get(t)(r.arg):t(r.arg===void 0?null:r.arg)}}var de={};function pe(e){for(;e.length;){var r=e.pop(),t=e.pop();t(r)}}function Z(e){return this.fromWireType($[e>>2])}var B={},M={},ve={},ot=48,at=57;function ye(e){if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");var r=e.charCodeAt(0);return r>=ot&&r<=at?"_"+e:e}function he(e,r){return e=ye(e),new Function("body","return function "+e+`() { + "use strict"; return body.apply(this, arguments); +}; +`)(r)}function De(e,r){var t=he(r,function(n){this.name=r,this.message=n;var i=new Error(n).stack;i!==void 0&&(this.stack=this.toString()+` +`+i.replace(/^Error(:[^\n]*)?\n/,""))});return t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},t}var cr=void 0;function ge(e){throw new cr(e)}function U(e,r,t){e.forEach(function(o){ve[o]=r});function n(o){var a=t(o);a.length!==e.length&&ge("Mismatched type converter count");for(var c=0;c<e.length;++c)F(e[c],a[c])}var i=new Array(r.length),s=[],f=0;r.forEach(function(o,a){M.hasOwnProperty(o)?i[a]=M[o]:(s.push(o),B.hasOwnProperty(o)||(B[o]=[]),B[o].push(function(){i[a]=M[o],++f,f===s.length&&n(i)}))}),s.length===0&&n(i)}function st(e){var r=de[e];delete de[e];var t=r.rawConstructor,n=r.rawDestructor,i=r.fields,s=i.map(function(f){return f.getterReturnType}).concat(i.map(function(f){return f.setterArgumentType}));U([e],s,function(f){var o={};return i.forEach(function(a,c){var l=a.fieldName,d=f[c],v=a.getter,y=a.getterContext,g=f[c+i.length],m=a.setter,C=a.setterContext;o[l]={read:function(E){return d.fromWireType(v(y,E))},write:function(E,oe){var W=[];m(C,E,g.toWireType(W,oe)),pe(W)}}}),[{name:r.name,fromWireType:function(a){var c={};for(var l in o)c[l]=o[l].read(a);return n(a),c},toWireType:function(a,c){for(var l in o)if(!(l in c))throw new TypeError('Missing field: "'+l+'"');var d=t();for(l in o)o[l].write(d,c[l]);return a!==null&&a.push(n,d),d},argPackAdvance:8,readValueFromPointer:Z,destructorFunction:n}]})}function _e(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}function ut(){for(var e=new Array(256),r=0;r<256;++r)e[r]=String.fromCharCode(r);lr=e}var lr=void 0;function h(e){for(var r="",t=e;_[t];)r+=lr[_[t++]];return r}var q=void 0;function p(e){throw new q(e)}function F(e,r,t){if(t=t||{},!("argPackAdvance"in r))throw new TypeError("registerType registeredInstance requires argPackAdvance");var n=r.name;if(e||p('type "'+n+'" must have a positive integer typeid pointer'),M.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;p("Cannot register type '"+n+"' twice")}if(M[e]=r,delete ve[e],B.hasOwnProperty(e)){var i=B[e];delete B[e],i.forEach(function(s){s()})}}function ft(e,r,t,n,i){var s=_e(t);r=h(r),F(e,{name:r,fromWireType:function(f){return!!f},toWireType:function(f,o){return o?n:i},argPackAdvance:8,readValueFromPointer:function(f){var o;if(t===1)o=ce;else if(t===2)o=k;else if(t===4)o=b;else throw new TypeError("Unknown boolean type size: "+r);return this.fromWireType(o[f>>s])},destructorFunction:null})}function ct(e){if(!(this instanceof j)||!(e instanceof j))return!1;for(var r=this.$$.ptrType.registeredClass,t=this.$$.ptr,n=e.$$.ptrType.registeredClass,i=e.$$.ptr;r.baseClass;)t=r.upcast(t),r=r.baseClass;for(;n.baseClass;)i=n.upcast(i),n=n.baseClass;return r===n&&t===i}function lt(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function Ue(e){function r(t){return t.$$.ptrType.registeredClass.name}p(r(e)+" instance already deleted")}var je=!1;function dr(e){}function dt(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function pr(e){e.count.value-=1;var r=e.count.value===0;r&&dt(e)}function ee(e){return typeof FinalizationGroup>"u"?(ee=function(r){return r},e):(je=new FinalizationGroup(function(r){for(var t=r.next();!t.done;t=r.next()){var n=t.value;n.ptr?pr(n):console.warn("object already deleted: "+n.ptr)}}),ee=function(r){return je.register(r,r.$$,r.$$),r},dr=function(r){je.unregister(r.$$)},ee(e))}function pt(){if(this.$$.ptr||Ue(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=ee(Object.create(Object.getPrototypeOf(this),{$$:{value:lt(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function vt(){this.$$.ptr||Ue(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&p("Object already scheduled for deletion"),dr(this),pr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function yt(){return!this.$$.ptr}var re=void 0,te=[];function Ie(){for(;te.length;){var e=te.pop();e.$$.deleteScheduled=!1,e.delete()}}function ht(){return this.$$.ptr||Ue(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&p("Object already scheduled for deletion"),te.push(this),te.length===1&&re&&re(Ie),this.$$.deleteScheduled=!0,this}function gt(){j.prototype.isAliasOf=ct,j.prototype.clone=pt,j.prototype.delete=vt,j.prototype.isDeleted=yt,j.prototype.deleteLater=ht}function j(){}var vr={};function yr(e,r,t){if(e[r].overloadTable===void 0){var n=e[r];e[r]=function(){return e[r].overloadTable.hasOwnProperty(arguments.length)||p("Function '"+t+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[r].overloadTable+")!"),e[r].overloadTable[arguments.length].apply(this,arguments)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}}function ke(e,r,t){u.hasOwnProperty(e)?((t===void 0||u[e].overloadTable!==void 0&&u[e].overloadTable[t]!==void 0)&&p("Cannot register public name '"+e+"' twice"),yr(u,e,e),u.hasOwnProperty(t)&&p("Cannot register multiple overloads of a function with the same number of arguments ("+t+")!"),u[e].overloadTable[t]=r):(u[e]=r,t!==void 0&&(u[e].numArguments=t))}function _t(e,r,t,n,i,s,f,o){this.name=e,this.constructor=r,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=i,this.getActualType=s,this.upcast=f,this.downcast=o,this.pureVirtualFunctions=[]}function He(e,r,t){for(;r!==t;)r.upcast||p("Expected null or instance of "+t.name+", got an instance of "+r.name),e=r.upcast(e),r=r.baseClass;return e}function mt(e,r){if(r===null)return this.isReference&&p("null is not a valid "+this.name),0;r.$$||p('Cannot pass "'+N(r)+'" as a '+this.name),r.$$.ptr||p("Cannot pass deleted object as a pointer of type "+this.name);var t=r.$$.ptrType.registeredClass,n=He(r.$$.ptr,t,this.registeredClass);return n}function bt(e,r){var t;if(r===null)return this.isReference&&p("null is not a valid "+this.name),this.isSmartPointer?(t=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,t),t):0;r.$$||p('Cannot pass "'+N(r)+'" as a '+this.name),r.$$.ptr||p("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&r.$$.ptrType.isConst&&p("Cannot convert argument of type "+(r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name)+" to parameter type "+this.name);var n=r.$$.ptrType.registeredClass;if(t=He(r.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(r.$$.smartPtr===void 0&&p("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:r.$$.smartPtrType===this?t=r.$$.smartPtr:p("Cannot convert argument of type "+(r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:t=r.$$.smartPtr;break;case 2:if(r.$$.smartPtrType===this)t=r.$$.smartPtr;else{var i=r.clone();t=this.rawShare(t,S(function(){i.delete()})),e!==null&&e.push(this.rawDestructor,t)}break;default:p("Unsupporting sharing policy")}return t}function wt(e,r){if(r===null)return this.isReference&&p("null is not a valid "+this.name),0;r.$$||p('Cannot pass "'+N(r)+'" as a '+this.name),r.$$.ptr||p("Cannot pass deleted object as a pointer of type "+this.name),r.$$.ptrType.isConst&&p("Cannot convert argument of type "+r.$$.ptrType.name+" to parameter type "+this.name);var t=r.$$.ptrType.registeredClass,n=He(r.$$.ptr,t,this.registeredClass);return n}function Tt(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function Pt(e){this.rawDestructor&&this.rawDestructor(e)}function Ct(e){e!==null&&e.delete()}function hr(e,r,t){if(r===t)return e;if(t.baseClass===void 0)return null;var n=hr(e,r,t.baseClass);return n===null?null:t.downcast(n)}function At(){return Object.keys(ne).length}function $t(){var e=[];for(var r in ne)ne.hasOwnProperty(r)&&e.push(ne[r]);return e}function Ft(e){re=e,te.length&&re&&re(Ie)}function Et(){u.getInheritedInstanceCount=At,u.getLiveInheritedInstances=$t,u.flushPendingDeletes=Ie,u.setDelayFunction=Ft}var ne={};function Rt(e,r){for(r===void 0&&p("ptr should not be undefined");e.baseClass;)r=e.upcast(r),e=e.baseClass;return r}function St(e,r){return r=Rt(e,r),ne[r]}function me(e,r){(!r.ptrType||!r.ptr)&&ge("makeClassHandle requires ptr and ptrType");var t=!!r.smartPtrType,n=!!r.smartPtr;return t!==n&&ge("Both smartPtrType and smartPtr must be specified"),r.count={value:1},ee(Object.create(e,{$$:{value:r}}))}function Ot(e){var r=this.getPointee(e);if(!r)return this.destructor(e),null;var t=St(this.registeredClass,r);if(t!==void 0){if(t.$$.count.value===0)return t.$$.ptr=r,t.$$.smartPtr=e,t.clone();var n=t.clone();return this.destructor(e),n}function i(){return this.isSmartPointer?me(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:r,smartPtrType:this,smartPtr:e}):me(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var s=this.registeredClass.getActualType(r),f=vr[s];if(!f)return i.call(this);var o;this.isConst?o=f.constPointerType:o=f.pointerType;var a=hr(r,this.registeredClass,o.registeredClass);return a===null?i.call(this):this.isSmartPointer?me(o.registeredClass.instancePrototype,{ptrType:o,ptr:a,smartPtrType:this,smartPtr:e}):me(o.registeredClass.instancePrototype,{ptrType:o,ptr:a})}function Wt(){R.prototype.getPointee=Tt,R.prototype.destructor=Pt,R.prototype.argPackAdvance=8,R.prototype.readValueFromPointer=Z,R.prototype.deleteObject=Ct,R.prototype.fromWireType=Ot}function R(e,r,t,n,i,s,f,o,a,c,l){this.name=e,this.registeredClass=r,this.isReference=t,this.isConst=n,this.isSmartPointer=i,this.pointeeType=s,this.sharingPolicy=f,this.rawGetPointee=o,this.rawConstructor=a,this.rawShare=c,this.rawDestructor=l,!i&&r.baseClass===void 0?n?(this.toWireType=mt,this.destructorFunction=null):(this.toWireType=wt,this.destructorFunction=null):this.toWireType=bt}function gr(e,r,t){u.hasOwnProperty(e)||ge("Replacing nonexistant public symbol"),u[e].overloadTable!==void 0&&t!==void 0?u[e].overloadTable[t]=r:(u[e]=r,u[e].argCount=t)}function Dt(e,r,t){var n=u["dynCall_"+e];return t&&t.length?n.apply(null,[r].concat(t)):n.call(null,r)}function Ut(e,r,t){return e.indexOf("j")!=-1?Dt(e,r,t):K.get(r).apply(null,t)}function jt(e,r){var t=[];return function(){t.length=arguments.length;for(var n=0;n<arguments.length;n++)t[n]=arguments[n];return Ut(e,r,t)}}function A(e,r){e=h(e);function t(){return e.indexOf("j")!=-1?jt(e,r):K.get(r)}var n=t();return typeof n!="function"&&p("unknown function pointer with signature "+e+": "+r),n}var _r=void 0;function mr(e){var r=Cr(e),t=h(r);return O(r),t}function be(e,r){var t=[],n={};function i(s){if(!n[s]&&!M[s]){if(ve[s]){ve[s].forEach(i);return}t.push(s),n[s]=!0}}throw r.forEach(i),new _r(e+": "+t.map(mr).join([", "]))}function It(e,r,t,n,i,s,f,o,a,c,l,d,v){l=h(l),s=A(i,s),o&&(o=A(f,o)),c&&(c=A(a,c)),v=A(d,v);var y=ye(l);ke(y,function(){be("Cannot construct "+l+" due to unbound types",[n])}),U([e,r,t],n?[n]:[],function(g){g=g[0];var m,C;n?(m=g.registeredClass,C=m.instancePrototype):C=j.prototype;var E=he(y,function(){if(Object.getPrototypeOf(this)!==oe)throw new q("Use 'new' to construct "+l);if(W.constructor_body===void 0)throw new q(l+" has no accessible constructor");var Fr=W.constructor_body[arguments.length];if(Fr===void 0)throw new q("Tried to invoke ctor of "+l+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(W.constructor_body).toString()+") parameters instead!");return Fr.apply(this,arguments)}),oe=Object.create(C,{constructor:{value:E}});E.prototype=oe;var W=new _t(l,E,oe,v,m,s,o,c),Wn=new R(l,W,!0,!1,!1),Ar=new R(l+"*",W,!1,!1,!1),$r=new R(l+" const*",W,!1,!0,!1);return vr[e]={pointerType:Ar,constPointerType:$r},gr(y,E),[Wn,Ar,$r]})}function Me(e,r){for(var t=[],n=0;n<e;n++)t.push(b[(r>>2)+n]);return t}function kt(e,r,t,n,i,s){Se(r>0);var f=Me(r,t);i=A(n,i);var o=[s],a=[];U([],[e],function(c){c=c[0];var l="constructor "+c.name;if(c.registeredClass.constructor_body===void 0&&(c.registeredClass.constructor_body=[]),c.registeredClass.constructor_body[r-1]!==void 0)throw new q("Cannot register multiple constructors with identical number of parameters ("+(r-1)+") for class '"+c.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return c.registeredClass.constructor_body[r-1]=function(){be("Cannot construct "+c.name+" due to unbound types",f)},U([],f,function(d){return c.registeredClass.constructor_body[r-1]=function(){arguments.length!==r-1&&p(l+" called with "+arguments.length+" arguments, expected "+(r-1)),a.length=0,o.length=r;for(var y=1;y<r;++y)o[y]=d[y].toWireType(a,arguments[y-1]);var g=i.apply(null,o);return pe(a),d[0].fromWireType(g)},[]}),[]})}function br(e,r){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var t=he(e.name||"unknownFunctionName",function(){});t.prototype=e.prototype;var n=new t,i=e.apply(n,r);return i instanceof Object?i:n}function wr(e,r,t,n,i){var s=r.length;s<2&&p("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var f=r[1]!==null&&t!==null,o=!1,a=1;a<r.length;++a)if(r[a]!==null&&r[a].destructorFunction===void 0){o=!0;break}for(var c=r[0].name!=="void",l="",d="",a=0;a<s-2;++a)l+=(a!==0?", ":"")+"arg"+a,d+=(a!==0?", ":"")+"arg"+a+"Wired";var v="return function "+ye(e)+"("+l+`) { +if (arguments.length !== `+(s-2)+`) { +throwBindingError('function `+e+" called with ' + arguments.length + ' arguments, expected "+(s-2)+` args!'); +} +`;o&&(v+=`var destructors = []; +`);var y=o?"destructors":"null",g=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],m=[p,n,i,pe,r[0],r[1]];f&&(v+="var thisWired = classParam.toWireType("+y+`, this); +`);for(var a=0;a<s-2;++a)v+="var arg"+a+"Wired = argType"+a+".toWireType("+y+", arg"+a+"); // "+r[a+2].name+` +`,g.push("argType"+a),m.push(r[a+2]);if(f&&(d="thisWired"+(d.length>0?", ":"")+d),v+=(c?"var rv = ":"")+"invoker(fn"+(d.length>0?", ":"")+d+`); +`,o)v+=`runDestructors(destructors); +`;else for(var a=f?1:2;a<r.length;++a){var C=a===1?"thisWired":"arg"+(a-2)+"Wired";r[a].destructorFunction!==null&&(v+=C+"_dtor("+C+"); // "+r[a].name+` +`,g.push(C+"_dtor"),m.push(r[a].destructorFunction))}c&&(v+=`var ret = retType.fromWireType(rv); +return ret; +`),v+=`} +`,g.push(v);var E=br(Function,g).apply(null,m);return E}function Ht(e,r,t,n,i,s,f,o){var a=Me(t,n);r=h(r),s=A(i,s),U([],[e],function(c){c=c[0];var l=c.name+"."+r;o&&c.registeredClass.pureVirtualFunctions.push(r);function d(){be("Cannot call "+l+" due to unbound types",a)}var v=c.registeredClass.instancePrototype,y=v[r];return y===void 0||y.overloadTable===void 0&&y.className!==c.name&&y.argCount===t-2?(d.argCount=t-2,d.className=c.name,v[r]=d):(yr(v,r,l),v[r].overloadTable[t-2]=d),U([],a,function(g){var m=wr(l,g,c,s,f);return v[r].overloadTable===void 0?(m.argCount=t-2,v[r]=m):v[r].overloadTable[t-2]=m,[]}),[]})}function Mt(e,r,t){e=h(e),U([],[r],function(n){return n=n[0],u[e]=n.fromWireType(t),[]})}var Ve=[],P=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Le(e){e>4&&--P[e].refcount===0&&(P[e]=void 0,Ve.push(e))}function Vt(){for(var e=0,r=5;r<P.length;++r)P[r]!==void 0&&++e;return e}function Lt(){for(var e=5;e<P.length;++e)if(P[e]!==void 0)return P[e];return null}function Bt(){u.count_emval_handles=Vt,u.get_first_emval=Lt}function S(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{var r=Ve.length?Ve.pop():P.length;return P[r]={refcount:1,value:e},r}}}function qt(e,r){r=h(r),F(e,{name:r,fromWireType:function(t){var n=P[t].value;return Le(t),n},toWireType:function(t,n){return S(n)},argPackAdvance:8,readValueFromPointer:Z,destructorFunction:null})}function Nt(e,r,t){switch(r){case 0:return function(n){var i=t?ce:_;return this.fromWireType(i[n])};case 1:return function(n){var i=t?k:J;return this.fromWireType(i[n>>1])};case 2:return function(n){var i=t?b:$;return this.fromWireType(i[n>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function xt(e,r,t,n){var i=_e(t);r=h(r);function s(){}s.values={},F(e,{name:r,constructor:s,fromWireType:function(f){return this.constructor.values[f]},toWireType:function(f,o){return o.value},argPackAdvance:8,readValueFromPointer:Nt(r,i,n),destructorFunction:null}),ke(r,s)}function we(e,r){var t=M[e];return t===void 0&&p(r+" has unknown type "+mr(e)),t}function Gt(e,r,t){var n=we(e,"enum");r=h(r);var i=n.constructor,s=Object.create(n.constructor.prototype,{value:{value:t},constructor:{value:he(n.name+"_"+r,function(){})}});i.values[t]=s,i[r]=s}function N(e){if(e===null)return"null";var r=typeof e;return r==="object"||r==="array"||r==="function"?e.toString():""+e}function zt(e,r){switch(r){case 2:return function(t){return this.fromWireType(er[t>>2])};case 3:return function(t){return this.fromWireType(rr[t>>3])};default:throw new TypeError("Unknown float type: "+e)}}function Xt(e,r,t){var n=_e(t);r=h(r),F(e,{name:r,fromWireType:function(i){return i},toWireType:function(i,s){if(typeof s!="number"&&typeof s!="boolean")throw new TypeError('Cannot convert "'+N(s)+'" to '+this.name);return s},argPackAdvance:8,readValueFromPointer:zt(r,n),destructorFunction:null})}function Yt(e,r,t,n,i,s){var f=Me(r,t);e=h(e),i=A(n,i),ke(e,function(){be("Cannot call "+e+" due to unbound types",f)},r-1),U([],f,function(o){var a=[o[0],null].concat(o.slice(1));return gr(e,wr(e,a,null,i,s),r-1),[]})}function Jt(e,r,t){switch(r){case 0:return t?function(i){return ce[i]}:function(i){return _[i]};case 1:return t?function(i){return k[i>>1]}:function(i){return J[i>>1]};case 2:return t?function(i){return b[i>>2]}:function(i){return $[i>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function Kt(e,r,t,n,i){r=h(r),i===-1&&(i=4294967295);var s=_e(t),f=function(c){return c};if(n===0){var o=32-8*t;f=function(c){return c<<o>>>o}}var a=r.indexOf("unsigned")!=-1;F(e,{name:r,fromWireType:f,toWireType:function(c,l){if(typeof l!="number"&&typeof l!="boolean")throw new TypeError('Cannot convert "'+N(l)+'" to '+this.name);if(l<n||l>i)throw new TypeError('Passing a number "'+N(l)+'" from JS side to C/C++ side to an argument of type "'+r+'", which is outside the valid range ['+n+", "+i+"]!");return a?l>>>0:l|0},argPackAdvance:8,readValueFromPointer:Jt(r,s,n!==0),destructorFunction:null})}function Qt(e,r,t){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],i=n[r];function s(f){f=f>>2;var o=$,a=o[f],c=o[f+1];return new i(Oe,c,a)}t=h(t),F(e,{name:t,fromWireType:s,argPackAdvance:8,readValueFromPointer:s},{ignoreDuplicateRegistrations:!0})}function Zt(e,r){r=h(r);var t=r==="std::string";F(e,{name:r,fromWireType:function(n){var i=$[n>>2],s;if(t)for(var f=n+4,o=0;o<=i;++o){var a=n+4+o;if(o==i||_[a]==0){var c=a-f,l=Qe(f,c);s===void 0?s=l:(s+=String.fromCharCode(0),s+=l),f=a+1}}else{for(var d=new Array(i),o=0;o<i;++o)d[o]=String.fromCharCode(_[n+4+o]);s=d.join("")}return O(n),s},toWireType:function(n,i){i instanceof ArrayBuffer&&(i=new Uint8Array(i));var s,f=typeof i=="string";f||i instanceof Uint8Array||i instanceof Uint8ClampedArray||i instanceof Int8Array||p("Cannot pass non-string to std::string"),t&&f?s=function(){return Ir(i)}:s=function(){return i.length};var o=s(),a=qe(4+o+1);if($[a>>2]=o,t&&f)jr(i,a+4,o+1);else if(f)for(var c=0;c<o;++c){var l=i.charCodeAt(c);l>255&&(O(a),p("String has UTF-16 code units that do not fit in 8 bits")),_[a+4+c]=l}else for(var c=0;c<o;++c)_[a+4+c]=i[c];return n!==null&&n.push(O,a),a},argPackAdvance:8,readValueFromPointer:Z,destructorFunction:function(n){O(n)}})}function en(e,r,t){t=h(t);var n,i,s,f,o;r===2?(n=kr,i=Hr,f=Mr,s=function(){return J},o=1):r===4&&(n=Vr,i=Lr,f=Br,s=function(){return $},o=2),F(e,{name:t,fromWireType:function(a){for(var c=$[a>>2],l=s(),d,v=a+4,y=0;y<=c;++y){var g=a+4+y*r;if(y==c||l[g>>o]==0){var m=g-v,C=n(v,m);d===void 0?d=C:(d+=String.fromCharCode(0),d+=C),v=g+r}}return O(a),d},toWireType:function(a,c){typeof c!="string"&&p("Cannot pass non-string to C++ string type "+t);var l=f(c),d=qe(4+l+r);return $[d>>2]=l>>o,i(c,d+4,l+r),a!==null&&a.push(O,d),d},argPackAdvance:8,readValueFromPointer:Z,destructorFunction:function(a){O(a)}})}function rn(e,r,t,n,i,s){de[e]={name:h(r),rawConstructor:A(t,n),rawDestructor:A(i,s),fields:[]}}function tn(e,r,t,n,i,s,f,o,a,c){de[e].fields.push({fieldName:h(r),getterReturnType:t,getter:A(n,i),getterContext:s,setterArgumentType:f,setter:A(o,a),setterContext:c})}function nn(e,r){r=h(r),F(e,{isVoid:!0,name:r,argPackAdvance:0,fromWireType:function(){},toWireType:function(t,n){}})}function ie(e){return e||p("Cannot use deleted val. handle = "+e),P[e].value}function on(e,r,t){e=ie(e),r=we(r,"emval::as");var n=[],i=S(n);return b[t>>2]=i,r.toWireType(n,e)}var an={};function Te(e){var r=an[e];return r===void 0?h(e):r}var Be=[];function sn(e,r,t,n){e=Be[e],r=ie(r),t=Te(t),e(r,t,null,n)}function Tr(){return typeof globalThis=="object"?globalThis:function(){return Function}()("return this")()}function un(e){return e===0?S(Tr()):(e=Te(e),S(Tr()[e]))}function fn(e){var r=Be.length;return Be.push(e),r}function cn(e,r){for(var t=new Array(e),n=0;n<e;++n)t[n]=we(b[(r>>2)+n],"parameter "+n);return t}function ln(e,r){for(var t=cn(e,r),n=t[0],i=n.name+"_$"+t.slice(1).map(function(y){return y.name}).join("_")+"$",s=["retType"],f=[n],o="",a=0;a<e-1;++a)o+=(a!==0?", ":"")+"arg"+a,s.push("argType"+a),f.push(t[1+a]);for(var c=ye("methodCaller_"+i),l="return function "+c+`(handle, name, destructors, args) { +`,d=0,a=0;a<e-1;++a)l+=" var arg"+a+" = argType"+a+".readValueFromPointer(args"+(d?"+"+d:"")+`); +`,d+=t[a+1].argPackAdvance;l+=" var rv = handle[name]("+o+`); +`;for(var a=0;a<e-1;++a)t[a+1].deleteObject&&(l+=" argType"+a+".deleteObject(arg"+a+`); +`);n.isVoid||(l+=` return retType.toWireType(destructors, rv); +`),l+=`}; +`,s.push(l);var v=br(Function,s).apply(null,f);return fn(v)}function dn(e){return e=Te(e),S(u[e])}function pn(e,r){return e=ie(e),r=ie(r),S(e[r])}function vn(e){e>4&&(P[e].refcount+=1)}function yn(e){for(var r="",t=0;t<e;++t)r+=(t!==0?", ":"")+"arg"+t;for(var n="return function emval_allocator_"+e+`(constructor, argTypes, args) { +`,t=0;t<e;++t)n+="var argType"+t+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+t+'], "parameter '+t+`"); +var arg`+t+" = argType"+t+`.readValueFromPointer(args); +args += argType`+t+`['argPackAdvance']; +`;return n+="var obj = new constructor("+r+`); +return __emval_register(obj); +} +`,new Function("requireRegisteredType","Module","__emval_register",n)(we,u,S)}var Pr={};function hn(e,r,t,n){e=ie(e);var i=Pr[r];return i||(i=yn(r),Pr[r]=i),i(e,t,n)}function gn(e){return S(Te(e))}function _n(e){var r=P[e].value;pe(r),Le(e)}function mn(){L()}function bn(e,r,t){_.copyWithin(e,r,r+t)}function wn(e){try{return fe.grow(e-Oe.byteLength+65535>>>16),tr(fe.buffer),1}catch{}}function Tn(e){var r=_.length;e=e>>>0;var t=2147483648;if(e>t)return!1;for(var n=1;n<=4;n*=2){var i=r*(1+.2/n);i=Math.min(i,e+100663296);var s=Math.min(t,qr(Math.max(e,i),65536)),f=wn(s);if(f)return!0}return!1}var Pe={mappings:{},buffers:[null,[],[]],printChar:function(e,r){var t=Pe.buffers[e];r===0||r===10?((e===1?Sr:V)(Ke(t,0)),t.length=0):t.push(r)},varargs:void 0,get:function(){Pe.varargs+=4;var e=b[Pe.varargs-4>>2];return e},getStr:function(e){var r=Qe(e);return r},get64:function(e,r){return e}};function Pn(e){return 0}function Cn(e,r,t,n,i){}function An(e,r,t,n){for(var i=0,s=0;s<t;s++){for(var f=b[r+s*8>>2],o=b[r+(s*8+4)>>2],a=0;a<o;a++)Pe.printChar(e,_[f+a]);i+=o}return b[n>>2]=i,0}function $n(e){Wr(e|0)}cr=u.InternalError=De(Error,"InternalError"),ut(),q=u.BindingError=De(Error,"BindingError"),gt(),Wt(),Et(),_r=u.UnboundTypeError=De(Error,"UnboundTypeError"),Bt();var Fn={t:st,I:ft,x:It,w:kt,d:Ht,k:Mt,H:qt,n:xt,a:Gt,A:Xt,i:Yt,j:Kt,h:Qt,B:Zt,v:en,u:rn,c:tn,J:nn,m:on,s:sn,b:Le,y:un,p:ln,r:dn,e:pn,g:vn,q:hn,f:gn,l:_n,o:mn,E:bn,F:Tn,G:Pn,C:Cn,z:An,D:$n},jn=it(),En=u.___wasm_call_ctors=function(){return(En=u.___wasm_call_ctors=u.asm.L).apply(null,arguments)},qe=u._malloc=function(){return(qe=u._malloc=u.asm.M).apply(null,arguments)},O=u._free=function(){return(O=u._free=u.asm.N).apply(null,arguments)},Cr=u.___getTypeName=function(){return(Cr=u.___getTypeName=u.asm.P).apply(null,arguments)},Rn=u.___embind_register_native_and_builtin_types=function(){return(Rn=u.___embind_register_native_and_builtin_types=u.asm.Q).apply(null,arguments)},Sn=u.dynCall_jiji=function(){return(Sn=u.dynCall_jiji=u.asm.R).apply(null,arguments)},Ce;function On(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}Q=function e(){Ce||Ne(),Ce||(Q=e)};function Ne(e){if(e=e||z,H>0||(Gr(),H>0))return;function r(){Ce||(Ce=!0,u.calledRun=!0,!Ye&&(zr(),Xr(),xe(u),u.onRuntimeInitialized&&u.onRuntimeInitialized(),Yr()))}u.setStatus?(u.setStatus("Running..."),setTimeout(function(){setTimeout(function(){u.setStatus("")},1),r()},1)):r()}if(u.run=Ne,u.preInit)for(typeof u.preInit=="function"&&(u.preInit=[u.preInit]);u.preInit.length>0;)u.preInit.pop()();return Ne(),x.ready}}();typeof exports=="object"&&typeof module=="object"?module.exports=BASIS:typeof define=="function"&&define.amd?define([],function(){return BASIS}):typeof exports=="object"&&(exports.BASIS=BASIS); diff --git a/public/static/Cesium/ThirdParty/Workers/draco_decoder_nodejs.js b/public/static/Cesium/ThirdParty/Workers/draco_decoder_nodejs.js new file mode 100644 index 0000000..5d9981f --- /dev/null +++ b/public/static/Cesium/ThirdParty/Workers/draco_decoder_nodejs.js @@ -0,0 +1 @@ +var $jscomp=$jscomp||{};$jscomp.scope={},$jscomp.arrayIteratorImpl=function(p){var s=0;return function(){return s<p.length?{done:!1,value:p[s++]}:{done:!0}}},$jscomp.arrayIterator=function(p){return{next:$jscomp.arrayIteratorImpl(p)}},$jscomp.makeIterator=function(p){var s=typeof Symbol<"u"&&Symbol.iterator&&p[Symbol.iterator];return s?s.call(p):$jscomp.arrayIterator(p)},$jscomp.ASSUME_ES5=!1,$jscomp.ASSUME_NO_NATIVE_MAP=!1,$jscomp.ASSUME_NO_NATIVE_SET=!1,$jscomp.SIMPLE_FROUND_POLYFILL=!1,$jscomp.ISOLATE_POLYFILLS=!1,$jscomp.FORCE_POLYFILL_PROMISE=!1,$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1,$jscomp.getGlobal=function(p){p=[typeof globalThis=="object"&&globalThis,p,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var s=0;s<p.length;++s){var a=p[s];if(a&&a.Math==Math)return a}throw Error("Cannot find global object")},$jscomp.global=$jscomp.getGlobal(this),$jscomp.defineProperty=$jscomp.ASSUME_ES5||typeof Object.defineProperties=="function"?Object.defineProperty:function(p,s,a){return p==Array.prototype||p==Object.prototype||(p[s]=a.value),p},$jscomp.IS_SYMBOL_NATIVE=typeof Symbol=="function"&&typeof Symbol("x")=="symbol",$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE,$jscomp.polyfills={},$jscomp.propertyToPolyfillSymbol={},$jscomp.POLYFILL_PREFIX="$jscp$";var $jscomp$lookupPolyfilledValue=function(p,s){var a=$jscomp.propertyToPolyfillSymbol[s];return a==null?p[s]:(a=p[a],a!==void 0?a:p[s])};$jscomp.polyfill=function(p,s,a,c){s&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(p,s,a,c):$jscomp.polyfillUnisolated(p,s,a,c))},$jscomp.polyfillUnisolated=function(p,s,a,c){for(a=$jscomp.global,p=p.split("."),c=0;c<p.length-1;c++){var i=p[c];if(!(i in a))return;a=a[i]}p=p[p.length-1],c=a[p],s=s(c),s!=c&&s!=null&&$jscomp.defineProperty(a,p,{configurable:!0,writable:!0,value:s})},$jscomp.polyfillIsolated=function(p,s,a,c){var i=p.split(".");p=i.length===1,c=i[0],c=!p&&c in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var I=0;I<i.length-1;I++){var _=i[I];if(!(_ in c))return;c=c[_]}i=i[i.length-1],a=$jscomp.IS_SYMBOL_NATIVE&&a==="es6"?c[i]:null,s=s(a),s!=null&&(p?$jscomp.defineProperty($jscomp.polyfills,i,{configurable:!0,writable:!0,value:s}):s!==a&&($jscomp.propertyToPolyfillSymbol[i]===void 0&&(a=1e9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[i]=$jscomp.IS_SYMBOL_NATIVE?$jscomp.global.Symbol(i):$jscomp.POLYFILL_PREFIX+a+"$"+i),$jscomp.defineProperty(c,$jscomp.propertyToPolyfillSymbol[i],{configurable:!0,writable:!0,value:s})))},$jscomp.polyfill("Promise",function(p){function s(){this.batch_=null}function a(_){return _ instanceof i?_:new i(function(y,b){y(_)})}if(p&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&typeof $jscomp.global.PromiseRejectionEvent>"u")||!$jscomp.global.Promise||$jscomp.global.Promise.toString().indexOf("[native code]")===-1))return p;s.prototype.asyncExecute=function(_){if(this.batch_==null){this.batch_=[];var y=this;this.asyncExecuteFunction(function(){y.executeBatch_()})}this.batch_.push(_)};var c=$jscomp.global.setTimeout;s.prototype.asyncExecuteFunction=function(_){c(_,0)},s.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var _=this.batch_;this.batch_=[];for(var y=0;y<_.length;++y){var b=_[y];_[y]=null;try{b()}catch(D){this.asyncThrow_(D)}}}this.batch_=null},s.prototype.asyncThrow_=function(_){this.asyncExecuteFunction(function(){throw _})};var i=function(_){this.state_=0,this.result_=void 0,this.onSettledCallbacks_=[],this.isRejectionHandled_=!1;var y=this.createResolveAndReject_();try{_(y.resolve,y.reject)}catch(b){y.reject(b)}};i.prototype.createResolveAndReject_=function(){function _(D){return function(L){b||(b=!0,D.call(y,L))}}var y=this,b=!1;return{resolve:_(this.resolveTo_),reject:_(this.reject_)}},i.prototype.resolveTo_=function(_){if(_===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(_ instanceof i)this.settleSameAsPromise_(_);else{t:switch(typeof _){case"object":var y=_!=null;break t;case"function":y=!0;break t;default:y=!1}y?this.resolveToNonPromiseObj_(_):this.fulfill_(_)}},i.prototype.resolveToNonPromiseObj_=function(_){var y=void 0;try{y=_.then}catch(b){this.reject_(b);return}typeof y=="function"?this.settleSameAsThenable_(y,_):this.fulfill_(_)},i.prototype.reject_=function(_){this.settle_(2,_)},i.prototype.fulfill_=function(_){this.settle_(1,_)},i.prototype.settle_=function(_,y){if(this.state_!=0)throw Error("Cannot settle("+_+", "+y+"): Promise already settled in state"+this.state_);this.state_=_,this.result_=y,this.state_===2&&this.scheduleUnhandledRejectionCheck_(),this.executeOnSettledCallbacks_()},i.prototype.scheduleUnhandledRejectionCheck_=function(){var _=this;c(function(){if(_.notifyUnhandledRejection_()){var y=$jscomp.global.console;typeof y<"u"&&y.error(_.result_)}},1)},i.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var _=$jscomp.global.CustomEvent,y=$jscomp.global.Event,b=$jscomp.global.dispatchEvent;return typeof b>"u"?!0:(typeof _=="function"?_=new _("unhandledrejection",{cancelable:!0}):typeof y=="function"?_=new y("unhandledrejection",{cancelable:!0}):(_=$jscomp.global.document.createEvent("CustomEvent"),_.initCustomEvent("unhandledrejection",!1,!0,_)),_.promise=this,_.reason=this.result_,b(_))},i.prototype.executeOnSettledCallbacks_=function(){if(this.onSettledCallbacks_!=null){for(var _=0;_<this.onSettledCallbacks_.length;++_)I.asyncExecute(this.onSettledCallbacks_[_]);this.onSettledCallbacks_=null}};var I=new s;return i.prototype.settleSameAsPromise_=function(_){var y=this.createResolveAndReject_();_.callWhenSettled_(y.resolve,y.reject)},i.prototype.settleSameAsThenable_=function(_,y){var b=this.createResolveAndReject_();try{_.call(y,b.resolve,b.reject)}catch(D){b.reject(D)}},i.prototype.then=function(_,y){function b(m,A){return typeof m=="function"?function(E){try{D(m(E))}catch(z){L(z)}}:A}var D,L,X=new i(function(m,A){D=m,L=A});return this.callWhenSettled_(b(_,D),b(y,L)),X},i.prototype.catch=function(_){return this.then(void 0,_)},i.prototype.callWhenSettled_=function(_,y){function b(){switch(D.state_){case 1:_(D.result_);break;case 2:y(D.result_);break;default:throw Error("Unexpected state: "+D.state_)}}var D=this;this.onSettledCallbacks_==null?I.asyncExecute(b):this.onSettledCallbacks_.push(b),this.isRejectionHandled_=!0},i.resolve=a,i.reject=function(_){return new i(function(y,b){b(_)})},i.race=function(_){return new i(function(y,b){for(var D=$jscomp.makeIterator(_),L=D.next();!L.done;L=D.next())a(L.value).callWhenSettled_(y,b)})},i.all=function(_){var y=$jscomp.makeIterator(_),b=y.next();return b.done?a([]):new i(function(D,L){function X(E){return function(z){m[E]=z,A--,A==0&&D(m)}}var m=[],A=0;do m.push(void 0),A++,a(b.value).callWhenSettled_(X(m.length-1),L),b=y.next();while(!b.done)})},i},"es6","es3"),$jscomp.owns=function(p,s){return Object.prototype.hasOwnProperty.call(p,s)},$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&typeof Object.assign=="function"?Object.assign:function(p,s){for(var a=1;a<arguments.length;a++){var c=arguments[a];if(c)for(var i in c)$jscomp.owns(c,i)&&(p[i]=c[i])}return p},$jscomp.polyfill("Object.assign",function(p){return p||$jscomp.assign},"es6","es3"),$jscomp.checkStringArgs=function(p,s,a){if(p==null)throw new TypeError("The 'this' value for String.prototype."+a+" must not be null or undefined");if(s instanceof RegExp)throw new TypeError("First argument to String.prototype."+a+" must not be a regular expression");return p+""},$jscomp.polyfill("String.prototype.startsWith",function(p){return p||function(s,a){var c=$jscomp.checkStringArgs(this,s,"startsWith");s+="";var i=c.length,I=s.length;a=Math.max(0,Math.min(a|0,c.length));for(var _=0;_<I&&a<i;)if(c[a++]!=s[_++])return!1;return _>=I}},"es6","es3"),$jscomp.polyfill("Array.prototype.copyWithin",function(p){function s(a){return a=Number(a),a===1/0||a===-1/0?a:a|0}return p||function(a,c,i){var I=this.length;if(a=s(a),c=s(c),i=i===void 0?I:s(i),a=0>a?Math.max(I+a,0):Math.min(a,I),c=0>c?Math.max(I+c,0):Math.min(c,I),i=0>i?Math.max(I+i,0):Math.min(i,I),a<c)for(;c<i;)c in this?this[a++]=this[c++]:(delete this[a++],c++);else for(i=Math.min(i,I+c-a),a+=i-c;i>c;)--i in this?this[--a]=this[i]:delete this[--a];return this}},"es6","es3"),$jscomp.typedArrayCopyWithin=function(p){return p||Array.prototype.copyWithin},$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"),$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"),$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"),$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"),$jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"),$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"),$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"),$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5"),$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");var DracoDecoderModule=function(){var p=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(p=p||__filename),function(s){function a(e){return t.locateFile?t.locateFile(e,W):W+e}function c(e,r,n){var o=r+n;for(n=r;e[n]&&!(n>=o);)++n;if(16<n-r&&e.buffer&>)return gt.decode(e.subarray(r,n));for(o="";r<n;){var l=e[r++];if(l&128){var d=e[r++]&63;if((l&224)==192)o+=String.fromCharCode((l&31)<<6|d);else{var k=e[r++]&63;l=(l&240)==224?(l&15)<<12|d<<6|k:(l&7)<<18|d<<12|k<<6|e[r++]&63,65536>l?o+=String.fromCharCode(l):(l-=65536,o+=String.fromCharCode(55296|l>>10,56320|l&1023))}}else o+=String.fromCharCode(l)}return o}function i(e,r){return e?c(Z,e,r):""}function I(){var e=nt.buffer;t.HEAP8=H=new Int8Array(e),t.HEAP16=new Int16Array(e),t.HEAP32=tt=new Int32Array(e),t.HEAPU8=Z=new Uint8Array(e),t.HEAPU16=new Uint16Array(e),t.HEAPU32=x=new Uint32Array(e),t.HEAPF32=new Float32Array(e),t.HEAPF64=new Float64Array(e)}function _(e){throw t.onAbort&&t.onAbort(e),e="Aborted("+e+")",K(e),It=!0,e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info."),rt(e),e}function y(e){try{if(e==w&&$)return new Uint8Array($);if(pt)return pt(e);throw"both async and sync fetching of the wasm failed"}catch(r){_(r)}}function b(){if(!$&&(ht||J)){if(typeof fetch=="function"&&!w.startsWith("file://"))return fetch(w,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+w+"'";return e.arrayBuffer()}).catch(function(){return y(w)});if(at)return new Promise(function(e,r){at(w,function(n){e(new Uint8Array(n))},r)})}return Promise.resolve().then(function(){return y(w)})}function D(e){for(;0<e.length;)e.shift()(t)}function L(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(r){x[this.ptr+4>>2]=r},this.get_type=function(){return x[this.ptr+4>>2]},this.set_destructor=function(r){x[this.ptr+8>>2]=r},this.get_destructor=function(){return x[this.ptr+8>>2]},this.set_refcount=function(r){tt[this.ptr>>2]=r},this.set_caught=function(r){H[this.ptr+12>>0]=r?1:0},this.get_caught=function(){return H[this.ptr+12>>0]!=0},this.set_rethrown=function(r){H[this.ptr+13>>0]=r?1:0},this.get_rethrown=function(){return H[this.ptr+13>>0]!=0},this.init=function(r,n){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(n),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){tt[this.ptr>>2]+=1},this.release_ref=function(){var r=tt[this.ptr>>2];return tt[this.ptr>>2]=r-1,r===1},this.set_adjusted_ptr=function(r){x[this.ptr+16>>2]=r},this.get_adjusted_ptr=function(){return x[this.ptr+16>>2]},this.get_exception_ptr=function(){if(un(this.get_type()))return x[this.excPtr>>2];var r=this.get_adjusted_ptr();return r!==0?r:this.excPtr}}function X(){function e(){if(!ot&&(ot=!0,t.calledRun=!0,!It)){if(Gt=!0,D(ut),mt(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Et.unshift(t.postRun.shift());D(Et)}}if(!(0<q)){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)vt.unshift(t.preRun.shift());D(vt),0<q||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e())}}function m(){}function A(e){return(e||m).__cache__}function E(e,r){var n=A(r),o=n[e];return o||(o=Object.create((r||m).prototype),o.ptr=e,n[e]=o)}function z(e){if(typeof e=="string"){for(var r=0,n=0;n<e.length;++n){var o=e.charCodeAt(n);127>=o?r++:2047>=o?r+=2:55296<=o&&57343>=o?(r+=4,++n):r+=3}if(r=Array(r+1),n=0,o=r.length,0<o){o=n+o-1;for(var l=0;l<e.length;++l){var d=e.charCodeAt(l);if(55296<=d&&57343>=d){var k=e.charCodeAt(++l);d=65536+((d&1023)<<10)|k&1023}if(127>=d){if(n>=o)break;r[n++]=d}else{if(2047>=d){if(n+1>=o)break;r[n++]=192|d>>6}else{if(65535>=d){if(n+2>=o)break;r[n++]=224|d>>12}else{if(n+3>=o)break;r[n++]=240|d>>18,r[n++]=128|d>>12&63}r[n++]=128|d>>6&63}r[n++]=128|d&63}}r[n]=0}return e=f.alloc(r,H),f.copy(r,H,e),e}return e}function _t(e){if(typeof e=="object"){var r=f.alloc(e,H);return f.copy(e,H,r),r}return e}function Y(){throw"cannot construct a VoidPtr, no constructor in IDL"}function V(){this.ptr=jt(),A(V)[this.ptr]=this}function C(){this.ptr=St(),A(C)[this.ptr]=this}function Q(){this.ptr=Ut(),A(Q)[this.ptr]=this}function h(){this.ptr=Lt(),A(h)[this.ptr]=this}function v(){this.ptr=qt(),A(v)[this.ptr]=this}function O(){this.ptr=Zt(),A(O)[this.ptr]=this}function j(){this.ptr=ne(),A(j)[this.ptr]=this}function G(){this.ptr=pe(),A(G)[this.ptr]=this}function B(){this.ptr=ye(),A(B)[this.ptr]=this}function g(){throw"cannot construct a Status, no constructor in IDL"}function P(){this.ptr=he(),A(P)[this.ptr]=this}function R(){this.ptr=Ie(),A(R)[this.ptr]=this}function S(){this.ptr=Ge(),A(S)[this.ptr]=this}function M(){this.ptr=Re(),A(M)[this.ptr]=this}function N(){this.ptr=Ue(),A(N)[this.ptr]=this}function U(){this.ptr=we(),A(U)[this.ptr]=this}function F(){this.ptr=We(),A(F)[this.ptr]=this}function T(){this.ptr=He(),A(T)[this.ptr]=this}function u(){this.ptr=er(),A(u)[this.ptr]=this}s=s===void 0?{}:s;var t=typeof s<"u"?s:{},mt,rt;t.ready=new Promise(function(e,r){mt=e,rt=r});var ft=!1,dt=!1;t.onRuntimeInitialized=function(){ft=!0,dt&&typeof t.onModuleLoaded=="function"&&t.onModuleLoaded(t)},t.onModuleParsed=function(){dt=!0,ft&&typeof t.onModuleLoaded=="function"&&t.onModuleLoaded(t)},t.isVersionSupported=function(e){return typeof e!="string"?!1:(e=e.split("."),2>e.length||3<e.length?!1:e[0]==1&&0<=e[1]&&5>=e[1]?!0:!(e[0]!=0||10<e[1]))};var bt=Object.assign({},t),ht=typeof window=="object",J=typeof importScripts=="function",At=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",W="";if(At){var Tt=require("fs"),it=require("path");W=J?it.dirname(W)+"/":__dirname+"/";var Dt=function(e,r){return e=e.startsWith("file://")?new URL(e):it.normalize(e),Tt.readFileSync(e,r?void 0:"utf8")},pt=function(e){return e=Dt(e,!0),e.buffer||(e=new Uint8Array(e)),e},at=function(e,r,n){e=e.startsWith("file://")?new URL(e):it.normalize(e),Tt.readFile(e,function(o,l){o?n(o):r(l.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),t.inspect=function(){return"[Emscripten Module object]"}}else(ht||J)&&(J?W=self.location.href:typeof document<"u"&&document.currentScript&&(W=document.currentScript.src),p&&(W=p),W=W.indexOf("blob:")!==0?W.substr(0,W.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Dt=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},J&&(pt=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),at=function(e,r,n){var o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=function(){o.status==200||o.status==0&&o.response?r(o.response):n()},o.onerror=n,o.send(null)});var cn=t.print||console.log.bind(console),K=t.printErr||console.warn.bind(console);Object.assign(t,bt),bt=null;var $;t.wasmBinary&&($=t.wasmBinary),typeof WebAssembly!="object"&&_("no native wasm support detected");var nt,It=!1,gt=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,H,Z,tt,x,vt=[],ut=[],Et=[],Gt=!1,q=0,st=null,et=null,w="draco_decoder.wasm";w.startsWith("data:application/octet-stream;base64,")||(w=a(w));var yn=0,ln=[null,[],[]],mn={b:function(e,r,n){throw new L(e).init(r,n),yn++,e},a:function(){_("")},g:function(e,r,n){Z.copyWithin(e,r,r+n)},e:function(e){var r=Z.length;if(e>>>=0,2147483648<e)return!1;for(var n=1;4>=n;n*=2){var o=r*(1+.2/n);o=Math.min(o,e+100663296);var l=Math;o=Math.max(e,o),l=l.min.call(l,2147483648,o+(65536-o%65536)%65536);t:{o=nt.buffer;try{nt.grow(l-o.byteLength+65535>>>16),I();var d=1;break t}catch{}d=void 0}if(d)return!0}return!1},f:function(e){return 52},d:function(e,r,n,o,l){return 70},c:function(e,r,n,o){for(var l=0,d=0;d<n;d++){var k=x[r>>2],sn=x[r+4>>2];r+=8;for(var ct=0;ct<sn;ct++){var yt=Z[k+ct],lt=ln[e];yt===0||yt===10?((e===1?cn:K)(c(lt,0)),lt.length=0):lt.push(yt)}l+=sn}return x[o>>2]=l,0}};(function(){function e(l,d){t.asm=l.exports,nt=t.asm.h,I(),ut.unshift(t.asm.i),q--,t.monitorRunDependencies&&t.monitorRunDependencies(q),q==0&&(st!==null&&(clearInterval(st),st=null),et&&(l=et,et=null,l()))}function r(l){e(l.instance)}function n(l){return b().then(function(d){return WebAssembly.instantiate(d,o)}).then(function(d){return d}).then(l,function(d){K("failed to asynchronously prepare wasm: "+d),_(d)})}var o={a:mn};if(q++,t.monitorRunDependencies&&t.monitorRunDependencies(q),t.instantiateWasm)try{return t.instantiateWasm(o,e)}catch(l){K("Module.instantiateWasm callback failed with error: "+l),rt(l)}return function(){return $||typeof WebAssembly.instantiateStreaming!="function"||w.startsWith("data:application/octet-stream;base64,")||w.startsWith("file://")||At||typeof fetch!="function"?n(r):fetch(w,{credentials:"same-origin"}).then(function(l){return WebAssembly.instantiateStreaming(l,o).then(r,function(d){return K("wasm streaming compile failed: "+d),K("falling back to ArrayBuffer instantiation"),n(r)})})}().catch(rt),{}})();var Ot=t._emscripten_bind_VoidPtr___destroy___0=function(){return(Ot=t._emscripten_bind_VoidPtr___destroy___0=t.asm.k).apply(null,arguments)},jt=t._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(jt=t._emscripten_bind_DecoderBuffer_DecoderBuffer_0=t.asm.l).apply(null,arguments)},Pt=t._emscripten_bind_DecoderBuffer_Init_2=function(){return(Pt=t._emscripten_bind_DecoderBuffer_Init_2=t.asm.m).apply(null,arguments)},Rt=t._emscripten_bind_DecoderBuffer___destroy___0=function(){return(Rt=t._emscripten_bind_DecoderBuffer___destroy___0=t.asm.n).apply(null,arguments)},St=t._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(St=t._emscripten_bind_AttributeTransformData_AttributeTransformData_0=t.asm.o).apply(null,arguments)},Mt=t._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(Mt=t._emscripten_bind_AttributeTransformData_transform_type_0=t.asm.p).apply(null,arguments)},Nt=t._emscripten_bind_AttributeTransformData___destroy___0=function(){return(Nt=t._emscripten_bind_AttributeTransformData___destroy___0=t.asm.q).apply(null,arguments)},Ut=t._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ut=t._emscripten_bind_GeometryAttribute_GeometryAttribute_0=t.asm.r).apply(null,arguments)},Ft=t._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Ft=t._emscripten_bind_GeometryAttribute___destroy___0=t.asm.s).apply(null,arguments)},Lt=t._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Lt=t._emscripten_bind_PointAttribute_PointAttribute_0=t.asm.t).apply(null,arguments)},Ct=t._emscripten_bind_PointAttribute_size_0=function(){return(Ct=t._emscripten_bind_PointAttribute_size_0=t.asm.u).apply(null,arguments)},wt=t._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(wt=t._emscripten_bind_PointAttribute_GetAttributeTransformData_0=t.asm.v).apply(null,arguments)},zt=t._emscripten_bind_PointAttribute_attribute_type_0=function(){return(zt=t._emscripten_bind_PointAttribute_attribute_type_0=t.asm.w).apply(null,arguments)},Vt=t._emscripten_bind_PointAttribute_data_type_0=function(){return(Vt=t._emscripten_bind_PointAttribute_data_type_0=t.asm.x).apply(null,arguments)},Bt=t._emscripten_bind_PointAttribute_num_components_0=function(){return(Bt=t._emscripten_bind_PointAttribute_num_components_0=t.asm.y).apply(null,arguments)},Wt=t._emscripten_bind_PointAttribute_normalized_0=function(){return(Wt=t._emscripten_bind_PointAttribute_normalized_0=t.asm.z).apply(null,arguments)},xt=t._emscripten_bind_PointAttribute_byte_stride_0=function(){return(xt=t._emscripten_bind_PointAttribute_byte_stride_0=t.asm.A).apply(null,arguments)},Qt=t._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Qt=t._emscripten_bind_PointAttribute_byte_offset_0=t.asm.B).apply(null,arguments)},Yt=t._emscripten_bind_PointAttribute_unique_id_0=function(){return(Yt=t._emscripten_bind_PointAttribute_unique_id_0=t.asm.C).apply(null,arguments)},Ht=t._emscripten_bind_PointAttribute___destroy___0=function(){return(Ht=t._emscripten_bind_PointAttribute___destroy___0=t.asm.D).apply(null,arguments)},qt=t._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(qt=t._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=t.asm.E).apply(null,arguments)},kt=t._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(kt=t._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=t.asm.F).apply(null,arguments)},Xt=t._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(Xt=t._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=t.asm.G).apply(null,arguments)},Kt=t._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(Kt=t._emscripten_bind_AttributeQuantizationTransform_min_value_1=t.asm.H).apply(null,arguments)},Jt=t._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(Jt=t._emscripten_bind_AttributeQuantizationTransform_range_0=t.asm.I).apply(null,arguments)},$t=t._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return($t=t._emscripten_bind_AttributeQuantizationTransform___destroy___0=t.asm.J).apply(null,arguments)},Zt=t._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Zt=t._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=t.asm.K).apply(null,arguments)},te=t._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(te=t._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=t.asm.L).apply(null,arguments)},ee=t._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(ee=t._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=t.asm.M).apply(null,arguments)},re=t._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(re=t._emscripten_bind_AttributeOctahedronTransform___destroy___0=t.asm.N).apply(null,arguments)},ne=t._emscripten_bind_PointCloud_PointCloud_0=function(){return(ne=t._emscripten_bind_PointCloud_PointCloud_0=t.asm.O).apply(null,arguments)},oe=t._emscripten_bind_PointCloud_num_attributes_0=function(){return(oe=t._emscripten_bind_PointCloud_num_attributes_0=t.asm.P).apply(null,arguments)},_e=t._emscripten_bind_PointCloud_num_points_0=function(){return(_e=t._emscripten_bind_PointCloud_num_points_0=t.asm.Q).apply(null,arguments)},ie=t._emscripten_bind_PointCloud___destroy___0=function(){return(ie=t._emscripten_bind_PointCloud___destroy___0=t.asm.R).apply(null,arguments)},pe=t._emscripten_bind_Mesh_Mesh_0=function(){return(pe=t._emscripten_bind_Mesh_Mesh_0=t.asm.S).apply(null,arguments)},ae=t._emscripten_bind_Mesh_num_faces_0=function(){return(ae=t._emscripten_bind_Mesh_num_faces_0=t.asm.T).apply(null,arguments)},ue=t._emscripten_bind_Mesh_num_attributes_0=function(){return(ue=t._emscripten_bind_Mesh_num_attributes_0=t.asm.U).apply(null,arguments)},se=t._emscripten_bind_Mesh_num_points_0=function(){return(se=t._emscripten_bind_Mesh_num_points_0=t.asm.V).apply(null,arguments)},ce=t._emscripten_bind_Mesh___destroy___0=function(){return(ce=t._emscripten_bind_Mesh___destroy___0=t.asm.W).apply(null,arguments)},ye=t._emscripten_bind_Metadata_Metadata_0=function(){return(ye=t._emscripten_bind_Metadata_Metadata_0=t.asm.X).apply(null,arguments)},le=t._emscripten_bind_Metadata___destroy___0=function(){return(le=t._emscripten_bind_Metadata___destroy___0=t.asm.Y).apply(null,arguments)},me=t._emscripten_bind_Status_code_0=function(){return(me=t._emscripten_bind_Status_code_0=t.asm.Z).apply(null,arguments)},fe=t._emscripten_bind_Status_ok_0=function(){return(fe=t._emscripten_bind_Status_ok_0=t.asm._).apply(null,arguments)},de=t._emscripten_bind_Status_error_msg_0=function(){return(de=t._emscripten_bind_Status_error_msg_0=t.asm.$).apply(null,arguments)},be=t._emscripten_bind_Status___destroy___0=function(){return(be=t._emscripten_bind_Status___destroy___0=t.asm.aa).apply(null,arguments)},he=t._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(he=t._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=t.asm.ba).apply(null,arguments)},Ae=t._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Ae=t._emscripten_bind_DracoFloat32Array_GetValue_1=t.asm.ca).apply(null,arguments)},Te=t._emscripten_bind_DracoFloat32Array_size_0=function(){return(Te=t._emscripten_bind_DracoFloat32Array_size_0=t.asm.da).apply(null,arguments)},De=t._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(De=t._emscripten_bind_DracoFloat32Array___destroy___0=t.asm.ea).apply(null,arguments)},Ie=t._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ie=t._emscripten_bind_DracoInt8Array_DracoInt8Array_0=t.asm.fa).apply(null,arguments)},ge=t._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(ge=t._emscripten_bind_DracoInt8Array_GetValue_1=t.asm.ga).apply(null,arguments)},ve=t._emscripten_bind_DracoInt8Array_size_0=function(){return(ve=t._emscripten_bind_DracoInt8Array_size_0=t.asm.ha).apply(null,arguments)},Ee=t._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Ee=t._emscripten_bind_DracoInt8Array___destroy___0=t.asm.ia).apply(null,arguments)},Ge=t._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ge=t._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=t.asm.ja).apply(null,arguments)},Oe=t._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Oe=t._emscripten_bind_DracoUInt8Array_GetValue_1=t.asm.ka).apply(null,arguments)},je=t._emscripten_bind_DracoUInt8Array_size_0=function(){return(je=t._emscripten_bind_DracoUInt8Array_size_0=t.asm.la).apply(null,arguments)},Pe=t._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Pe=t._emscripten_bind_DracoUInt8Array___destroy___0=t.asm.ma).apply(null,arguments)},Re=t._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Re=t._emscripten_bind_DracoInt16Array_DracoInt16Array_0=t.asm.na).apply(null,arguments)},Se=t._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Se=t._emscripten_bind_DracoInt16Array_GetValue_1=t.asm.oa).apply(null,arguments)},Me=t._emscripten_bind_DracoInt16Array_size_0=function(){return(Me=t._emscripten_bind_DracoInt16Array_size_0=t.asm.pa).apply(null,arguments)},Ne=t._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Ne=t._emscripten_bind_DracoInt16Array___destroy___0=t.asm.qa).apply(null,arguments)},Ue=t._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ue=t._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=t.asm.ra).apply(null,arguments)},Fe=t._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Fe=t._emscripten_bind_DracoUInt16Array_GetValue_1=t.asm.sa).apply(null,arguments)},Le=t._emscripten_bind_DracoUInt16Array_size_0=function(){return(Le=t._emscripten_bind_DracoUInt16Array_size_0=t.asm.ta).apply(null,arguments)},Ce=t._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Ce=t._emscripten_bind_DracoUInt16Array___destroy___0=t.asm.ua).apply(null,arguments)},we=t._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(we=t._emscripten_bind_DracoInt32Array_DracoInt32Array_0=t.asm.va).apply(null,arguments)},ze=t._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(ze=t._emscripten_bind_DracoInt32Array_GetValue_1=t.asm.wa).apply(null,arguments)},Ve=t._emscripten_bind_DracoInt32Array_size_0=function(){return(Ve=t._emscripten_bind_DracoInt32Array_size_0=t.asm.xa).apply(null,arguments)},Be=t._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Be=t._emscripten_bind_DracoInt32Array___destroy___0=t.asm.ya).apply(null,arguments)},We=t._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(We=t._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=t.asm.za).apply(null,arguments)},xe=t._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(xe=t._emscripten_bind_DracoUInt32Array_GetValue_1=t.asm.Aa).apply(null,arguments)},Qe=t._emscripten_bind_DracoUInt32Array_size_0=function(){return(Qe=t._emscripten_bind_DracoUInt32Array_size_0=t.asm.Ba).apply(null,arguments)},Ye=t._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(Ye=t._emscripten_bind_DracoUInt32Array___destroy___0=t.asm.Ca).apply(null,arguments)},He=t._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(He=t._emscripten_bind_MetadataQuerier_MetadataQuerier_0=t.asm.Da).apply(null,arguments)},qe=t._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(qe=t._emscripten_bind_MetadataQuerier_HasEntry_2=t.asm.Ea).apply(null,arguments)},ke=t._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(ke=t._emscripten_bind_MetadataQuerier_GetIntEntry_2=t.asm.Fa).apply(null,arguments)},Xe=t._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(Xe=t._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=t.asm.Ga).apply(null,arguments)},Ke=t._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(Ke=t._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=t.asm.Ha).apply(null,arguments)},Je=t._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(Je=t._emscripten_bind_MetadataQuerier_GetStringEntry_2=t.asm.Ia).apply(null,arguments)},$e=t._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return($e=t._emscripten_bind_MetadataQuerier_NumEntries_1=t.asm.Ja).apply(null,arguments)},Ze=t._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(Ze=t._emscripten_bind_MetadataQuerier_GetEntryName_2=t.asm.Ka).apply(null,arguments)},tr=t._emscripten_bind_MetadataQuerier___destroy___0=function(){return(tr=t._emscripten_bind_MetadataQuerier___destroy___0=t.asm.La).apply(null,arguments)},er=t._emscripten_bind_Decoder_Decoder_0=function(){return(er=t._emscripten_bind_Decoder_Decoder_0=t.asm.Ma).apply(null,arguments)},rr=t._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(rr=t._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=t.asm.Na).apply(null,arguments)},nr=t._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(nr=t._emscripten_bind_Decoder_DecodeArrayToMesh_3=t.asm.Oa).apply(null,arguments)},or=t._emscripten_bind_Decoder_GetAttributeId_2=function(){return(or=t._emscripten_bind_Decoder_GetAttributeId_2=t.asm.Pa).apply(null,arguments)},_r=t._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(_r=t._emscripten_bind_Decoder_GetAttributeIdByName_2=t.asm.Qa).apply(null,arguments)},ir=t._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(ir=t._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=t.asm.Ra).apply(null,arguments)},pr=t._emscripten_bind_Decoder_GetAttribute_2=function(){return(pr=t._emscripten_bind_Decoder_GetAttribute_2=t.asm.Sa).apply(null,arguments)},ar=t._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(ar=t._emscripten_bind_Decoder_GetAttributeByUniqueId_2=t.asm.Ta).apply(null,arguments)},ur=t._emscripten_bind_Decoder_GetMetadata_1=function(){return(ur=t._emscripten_bind_Decoder_GetMetadata_1=t.asm.Ua).apply(null,arguments)},sr=t._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(sr=t._emscripten_bind_Decoder_GetAttributeMetadata_2=t.asm.Va).apply(null,arguments)},cr=t._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(cr=t._emscripten_bind_Decoder_GetFaceFromMesh_3=t.asm.Wa).apply(null,arguments)},yr=t._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(yr=t._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=t.asm.Xa).apply(null,arguments)},lr=t._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(lr=t._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=t.asm.Ya).apply(null,arguments)},mr=t._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(mr=t._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=t.asm.Za).apply(null,arguments)},fr=t._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(fr=t._emscripten_bind_Decoder_GetAttributeFloat_3=t.asm._a).apply(null,arguments)},dr=t._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(dr=t._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=t.asm.$a).apply(null,arguments)},br=t._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(br=t._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=t.asm.ab).apply(null,arguments)},hr=t._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(hr=t._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=t.asm.bb).apply(null,arguments)},Ar=t._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Ar=t._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=t.asm.cb).apply(null,arguments)},Tr=t._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Tr=t._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=t.asm.db).apply(null,arguments)},Dr=t._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Dr=t._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=t.asm.eb).apply(null,arguments)},Ir=t._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Ir=t._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=t.asm.fb).apply(null,arguments)},gr=t._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(gr=t._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=t.asm.gb).apply(null,arguments)},vr=t._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(vr=t._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=t.asm.hb).apply(null,arguments)},Er=t._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Er=t._emscripten_bind_Decoder_SkipAttributeTransform_1=t.asm.ib).apply(null,arguments)},Gr=t._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Gr=t._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=t.asm.jb).apply(null,arguments)},Or=t._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Or=t._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=t.asm.kb).apply(null,arguments)},jr=t._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(jr=t._emscripten_bind_Decoder_DecodeBufferToMesh_2=t.asm.lb).apply(null,arguments)},Pr=t._emscripten_bind_Decoder___destroy___0=function(){return(Pr=t._emscripten_bind_Decoder___destroy___0=t.asm.mb).apply(null,arguments)},Rr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Rr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=t.asm.nb).apply(null,arguments)},Sr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Sr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=t.asm.ob).apply(null,arguments)},Mr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Mr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=t.asm.pb).apply(null,arguments)},Nr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Nr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=t.asm.qb).apply(null,arguments)},Ur=t._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Ur=t._emscripten_enum_draco_GeometryAttribute_Type_INVALID=t.asm.rb).apply(null,arguments)},Fr=t._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Fr=t._emscripten_enum_draco_GeometryAttribute_Type_POSITION=t.asm.sb).apply(null,arguments)},Lr=t._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Lr=t._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=t.asm.tb).apply(null,arguments)},Cr=t._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Cr=t._emscripten_enum_draco_GeometryAttribute_Type_COLOR=t.asm.ub).apply(null,arguments)},wr=t._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(wr=t._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=t.asm.vb).apply(null,arguments)},zr=t._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(zr=t._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=t.asm.wb).apply(null,arguments)},Vr=t._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Vr=t._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=t.asm.xb).apply(null,arguments)},Br=t._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Br=t._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=t.asm.yb).apply(null,arguments)},Wr=t._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Wr=t._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=t.asm.zb).apply(null,arguments)},xr=t._emscripten_enum_draco_DataType_DT_INVALID=function(){return(xr=t._emscripten_enum_draco_DataType_DT_INVALID=t.asm.Ab).apply(null,arguments)},Qr=t._emscripten_enum_draco_DataType_DT_INT8=function(){return(Qr=t._emscripten_enum_draco_DataType_DT_INT8=t.asm.Bb).apply(null,arguments)},Yr=t._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Yr=t._emscripten_enum_draco_DataType_DT_UINT8=t.asm.Cb).apply(null,arguments)},Hr=t._emscripten_enum_draco_DataType_DT_INT16=function(){return(Hr=t._emscripten_enum_draco_DataType_DT_INT16=t.asm.Db).apply(null,arguments)},qr=t._emscripten_enum_draco_DataType_DT_UINT16=function(){return(qr=t._emscripten_enum_draco_DataType_DT_UINT16=t.asm.Eb).apply(null,arguments)},kr=t._emscripten_enum_draco_DataType_DT_INT32=function(){return(kr=t._emscripten_enum_draco_DataType_DT_INT32=t.asm.Fb).apply(null,arguments)},Xr=t._emscripten_enum_draco_DataType_DT_UINT32=function(){return(Xr=t._emscripten_enum_draco_DataType_DT_UINT32=t.asm.Gb).apply(null,arguments)},Kr=t._emscripten_enum_draco_DataType_DT_INT64=function(){return(Kr=t._emscripten_enum_draco_DataType_DT_INT64=t.asm.Hb).apply(null,arguments)},Jr=t._emscripten_enum_draco_DataType_DT_UINT64=function(){return(Jr=t._emscripten_enum_draco_DataType_DT_UINT64=t.asm.Ib).apply(null,arguments)},$r=t._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return($r=t._emscripten_enum_draco_DataType_DT_FLOAT32=t.asm.Jb).apply(null,arguments)},Zr=t._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(Zr=t._emscripten_enum_draco_DataType_DT_FLOAT64=t.asm.Kb).apply(null,arguments)},tn=t._emscripten_enum_draco_DataType_DT_BOOL=function(){return(tn=t._emscripten_enum_draco_DataType_DT_BOOL=t.asm.Lb).apply(null,arguments)},en=t._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(en=t._emscripten_enum_draco_DataType_DT_TYPES_COUNT=t.asm.Mb).apply(null,arguments)},rn=t._emscripten_enum_draco_StatusCode_OK=function(){return(rn=t._emscripten_enum_draco_StatusCode_OK=t.asm.Nb).apply(null,arguments)},nn=t._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(nn=t._emscripten_enum_draco_StatusCode_DRACO_ERROR=t.asm.Ob).apply(null,arguments)},on=t._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(on=t._emscripten_enum_draco_StatusCode_IO_ERROR=t.asm.Pb).apply(null,arguments)},_n=t._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(_n=t._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=t.asm.Qb).apply(null,arguments)},pn=t._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(pn=t._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=t.asm.Rb).apply(null,arguments)},an=t._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(an=t._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=t.asm.Sb).apply(null,arguments)};t._malloc=function(){return(t._malloc=t.asm.Tb).apply(null,arguments)},t._free=function(){return(t._free=t.asm.Ub).apply(null,arguments)};var un=function(){return(un=t.asm.Vb).apply(null,arguments)};t.___start_em_js=15856,t.___stop_em_js=15954;var ot;if(et=function e(){ot||X(),ot||(et=e)},t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();X(),m.prototype=Object.create(m.prototype),m.prototype.constructor=m,m.prototype.__class__=m,m.__cache__={},t.WrapperObject=m,t.getCache=A,t.wrapPointer=E,t.castObject=function(e,r){return E(e.ptr,r)},t.NULL=E(0),t.destroy=function(e){if(!e.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";e.__destroy__(),delete A(e.__class__)[e.ptr]},t.compare=function(e,r){return e.ptr===r.ptr},t.getPointer=function(e){return e.ptr},t.getClass=function(e){return e.__class__};var f={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(f.needed){for(var e=0;e<f.temps.length;e++)t._free(f.temps[e]);f.temps.length=0,t._free(f.buffer),f.buffer=0,f.size+=f.needed,f.needed=0}f.buffer||(f.size+=128,f.buffer=t._malloc(f.size),f.buffer||_(void 0)),f.pos=0},alloc:function(e,r){return f.buffer||_(void 0),e=e.length*r.BYTES_PER_ELEMENT,e=e+7&-8,f.pos+e>=f.size?(0<e||_(void 0),f.needed+=e,r=t._malloc(e),f.temps.push(r)):(r=f.buffer+f.pos,f.pos+=e),r},copy:function(e,r,n){switch(n>>>=0,r.BYTES_PER_ELEMENT){case 2:n>>>=1;break;case 4:n>>>=2;break;case 8:n>>>=3}for(var o=0;o<e.length;o++)r[n+o]=e[o]}};return Y.prototype=Object.create(m.prototype),Y.prototype.constructor=Y,Y.prototype.__class__=Y,Y.__cache__={},t.VoidPtr=Y,Y.prototype.__destroy__=Y.prototype.__destroy__=function(){Ot(this.ptr)},V.prototype=Object.create(m.prototype),V.prototype.constructor=V,V.prototype.__class__=V,V.__cache__={},t.DecoderBuffer=V,V.prototype.Init=V.prototype.Init=function(e,r){var n=this.ptr;f.prepare(),typeof e=="object"&&(e=_t(e)),r&&typeof r=="object"&&(r=r.ptr),Pt(n,e,r)},V.prototype.__destroy__=V.prototype.__destroy__=function(){Rt(this.ptr)},C.prototype=Object.create(m.prototype),C.prototype.constructor=C,C.prototype.__class__=C,C.__cache__={},t.AttributeTransformData=C,C.prototype.transform_type=C.prototype.transform_type=function(){return Mt(this.ptr)},C.prototype.__destroy__=C.prototype.__destroy__=function(){Nt(this.ptr)},Q.prototype=Object.create(m.prototype),Q.prototype.constructor=Q,Q.prototype.__class__=Q,Q.__cache__={},t.GeometryAttribute=Q,Q.prototype.__destroy__=Q.prototype.__destroy__=function(){Ft(this.ptr)},h.prototype=Object.create(m.prototype),h.prototype.constructor=h,h.prototype.__class__=h,h.__cache__={},t.PointAttribute=h,h.prototype.size=h.prototype.size=function(){return Ct(this.ptr)},h.prototype.GetAttributeTransformData=h.prototype.GetAttributeTransformData=function(){return E(wt(this.ptr),C)},h.prototype.attribute_type=h.prototype.attribute_type=function(){return zt(this.ptr)},h.prototype.data_type=h.prototype.data_type=function(){return Vt(this.ptr)},h.prototype.num_components=h.prototype.num_components=function(){return Bt(this.ptr)},h.prototype.normalized=h.prototype.normalized=function(){return!!Wt(this.ptr)},h.prototype.byte_stride=h.prototype.byte_stride=function(){return xt(this.ptr)},h.prototype.byte_offset=h.prototype.byte_offset=function(){return Qt(this.ptr)},h.prototype.unique_id=h.prototype.unique_id=function(){return Yt(this.ptr)},h.prototype.__destroy__=h.prototype.__destroy__=function(){Ht(this.ptr)},v.prototype=Object.create(m.prototype),v.prototype.constructor=v,v.prototype.__class__=v,v.__cache__={},t.AttributeQuantizationTransform=v,v.prototype.InitFromAttribute=v.prototype.InitFromAttribute=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),!!kt(r,e)},v.prototype.quantization_bits=v.prototype.quantization_bits=function(){return Xt(this.ptr)},v.prototype.min_value=v.prototype.min_value=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Kt(r,e)},v.prototype.range=v.prototype.range=function(){return Jt(this.ptr)},v.prototype.__destroy__=v.prototype.__destroy__=function(){$t(this.ptr)},O.prototype=Object.create(m.prototype),O.prototype.constructor=O,O.prototype.__class__=O,O.__cache__={},t.AttributeOctahedronTransform=O,O.prototype.InitFromAttribute=O.prototype.InitFromAttribute=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),!!te(r,e)},O.prototype.quantization_bits=O.prototype.quantization_bits=function(){return ee(this.ptr)},O.prototype.__destroy__=O.prototype.__destroy__=function(){re(this.ptr)},j.prototype=Object.create(m.prototype),j.prototype.constructor=j,j.prototype.__class__=j,j.__cache__={},t.PointCloud=j,j.prototype.num_attributes=j.prototype.num_attributes=function(){return oe(this.ptr)},j.prototype.num_points=j.prototype.num_points=function(){return _e(this.ptr)},j.prototype.__destroy__=j.prototype.__destroy__=function(){ie(this.ptr)},G.prototype=Object.create(m.prototype),G.prototype.constructor=G,G.prototype.__class__=G,G.__cache__={},t.Mesh=G,G.prototype.num_faces=G.prototype.num_faces=function(){return ae(this.ptr)},G.prototype.num_attributes=G.prototype.num_attributes=function(){return ue(this.ptr)},G.prototype.num_points=G.prototype.num_points=function(){return se(this.ptr)},G.prototype.__destroy__=G.prototype.__destroy__=function(){ce(this.ptr)},B.prototype=Object.create(m.prototype),B.prototype.constructor=B,B.prototype.__class__=B,B.__cache__={},t.Metadata=B,B.prototype.__destroy__=B.prototype.__destroy__=function(){le(this.ptr)},g.prototype=Object.create(m.prototype),g.prototype.constructor=g,g.prototype.__class__=g,g.__cache__={},t.Status=g,g.prototype.code=g.prototype.code=function(){return me(this.ptr)},g.prototype.ok=g.prototype.ok=function(){return!!fe(this.ptr)},g.prototype.error_msg=g.prototype.error_msg=function(){return i(de(this.ptr))},g.prototype.__destroy__=g.prototype.__destroy__=function(){be(this.ptr)},P.prototype=Object.create(m.prototype),P.prototype.constructor=P,P.prototype.__class__=P,P.__cache__={},t.DracoFloat32Array=P,P.prototype.GetValue=P.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Ae(r,e)},P.prototype.size=P.prototype.size=function(){return Te(this.ptr)},P.prototype.__destroy__=P.prototype.__destroy__=function(){De(this.ptr)},R.prototype=Object.create(m.prototype),R.prototype.constructor=R,R.prototype.__class__=R,R.__cache__={},t.DracoInt8Array=R,R.prototype.GetValue=R.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),ge(r,e)},R.prototype.size=R.prototype.size=function(){return ve(this.ptr)},R.prototype.__destroy__=R.prototype.__destroy__=function(){Ee(this.ptr)},S.prototype=Object.create(m.prototype),S.prototype.constructor=S,S.prototype.__class__=S,S.__cache__={},t.DracoUInt8Array=S,S.prototype.GetValue=S.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Oe(r,e)},S.prototype.size=S.prototype.size=function(){return je(this.ptr)},S.prototype.__destroy__=S.prototype.__destroy__=function(){Pe(this.ptr)},M.prototype=Object.create(m.prototype),M.prototype.constructor=M,M.prototype.__class__=M,M.__cache__={},t.DracoInt16Array=M,M.prototype.GetValue=M.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Se(r,e)},M.prototype.size=M.prototype.size=function(){return Me(this.ptr)},M.prototype.__destroy__=M.prototype.__destroy__=function(){Ne(this.ptr)},N.prototype=Object.create(m.prototype),N.prototype.constructor=N,N.prototype.__class__=N,N.__cache__={},t.DracoUInt16Array=N,N.prototype.GetValue=N.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Fe(r,e)},N.prototype.size=N.prototype.size=function(){return Le(this.ptr)},N.prototype.__destroy__=N.prototype.__destroy__=function(){Ce(this.ptr)},U.prototype=Object.create(m.prototype),U.prototype.constructor=U,U.prototype.__class__=U,U.__cache__={},t.DracoInt32Array=U,U.prototype.GetValue=U.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),ze(r,e)},U.prototype.size=U.prototype.size=function(){return Ve(this.ptr)},U.prototype.__destroy__=U.prototype.__destroy__=function(){Be(this.ptr)},F.prototype=Object.create(m.prototype),F.prototype.constructor=F,F.prototype.__class__=F,F.__cache__={},t.DracoUInt32Array=F,F.prototype.GetValue=F.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),xe(r,e)},F.prototype.size=F.prototype.size=function(){return Qe(this.ptr)},F.prototype.__destroy__=F.prototype.__destroy__=function(){Ye(this.ptr)},T.prototype=Object.create(m.prototype),T.prototype.constructor=T,T.prototype.__class__=T,T.__cache__={},t.MetadataQuerier=T,T.prototype.HasEntry=T.prototype.HasEntry=function(e,r){var n=this.ptr;return f.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:z(r),!!qe(n,e,r)},T.prototype.GetIntEntry=T.prototype.GetIntEntry=function(e,r){var n=this.ptr;return f.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:z(r),ke(n,e,r)},T.prototype.GetIntEntryArray=T.prototype.GetIntEntryArray=function(e,r,n){var o=this.ptr;f.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:z(r),n&&typeof n=="object"&&(n=n.ptr),Xe(o,e,r,n)},T.prototype.GetDoubleEntry=T.prototype.GetDoubleEntry=function(e,r){var n=this.ptr;return f.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:z(r),Ke(n,e,r)},T.prototype.GetStringEntry=T.prototype.GetStringEntry=function(e,r){var n=this.ptr;return f.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:z(r),i(Je(n,e,r))},T.prototype.NumEntries=T.prototype.NumEntries=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),$e(r,e)},T.prototype.GetEntryName=T.prototype.GetEntryName=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),i(Ze(n,e,r))},T.prototype.__destroy__=T.prototype.__destroy__=function(){tr(this.ptr)},u.prototype=Object.create(m.prototype),u.prototype.constructor=u,u.prototype.__class__=u,u.__cache__={},t.Decoder=u,u.prototype.DecodeArrayToPointCloud=u.prototype.DecodeArrayToPointCloud=function(e,r,n){var o=this.ptr;return f.prepare(),typeof e=="object"&&(e=_t(e)),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),E(rr(o,e,r,n),g)},u.prototype.DecodeArrayToMesh=u.prototype.DecodeArrayToMesh=function(e,r,n){var o=this.ptr;return f.prepare(),typeof e=="object"&&(e=_t(e)),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),E(nr(o,e,r,n),g)},u.prototype.GetAttributeId=u.prototype.GetAttributeId=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),or(n,e,r)},u.prototype.GetAttributeIdByName=u.prototype.GetAttributeIdByName=function(e,r){var n=this.ptr;return f.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:z(r),_r(n,e,r)},u.prototype.GetAttributeIdByMetadataEntry=u.prototype.GetAttributeIdByMetadataEntry=function(e,r,n){var o=this.ptr;return f.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:z(r),n=n&&typeof n=="object"?n.ptr:z(n),ir(o,e,r,n)},u.prototype.GetAttribute=u.prototype.GetAttribute=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),E(pr(n,e,r),h)},u.prototype.GetAttributeByUniqueId=u.prototype.GetAttributeByUniqueId=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),E(ar(n,e,r),h)},u.prototype.GetMetadata=u.prototype.GetMetadata=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),E(ur(r,e),B)},u.prototype.GetAttributeMetadata=u.prototype.GetAttributeMetadata=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),E(sr(n,e,r),B)},u.prototype.GetFaceFromMesh=u.prototype.GetFaceFromMesh=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!cr(o,e,r,n)},u.prototype.GetTriangleStripsFromMesh=u.prototype.GetTriangleStripsFromMesh=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),yr(n,e,r)},u.prototype.GetTrianglesUInt16Array=u.prototype.GetTrianglesUInt16Array=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!lr(o,e,r,n)},u.prototype.GetTrianglesUInt32Array=u.prototype.GetTrianglesUInt32Array=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!mr(o,e,r,n)},u.prototype.GetAttributeFloat=u.prototype.GetAttributeFloat=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!fr(o,e,r,n)},u.prototype.GetAttributeFloatForAllPoints=u.prototype.GetAttributeFloatForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!dr(o,e,r,n)},u.prototype.GetAttributeIntForAllPoints=u.prototype.GetAttributeIntForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!br(o,e,r,n)},u.prototype.GetAttributeInt8ForAllPoints=u.prototype.GetAttributeInt8ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!hr(o,e,r,n)},u.prototype.GetAttributeUInt8ForAllPoints=u.prototype.GetAttributeUInt8ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Ar(o,e,r,n)},u.prototype.GetAttributeInt16ForAllPoints=u.prototype.GetAttributeInt16ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Tr(o,e,r,n)},u.prototype.GetAttributeUInt16ForAllPoints=u.prototype.GetAttributeUInt16ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Dr(o,e,r,n)},u.prototype.GetAttributeInt32ForAllPoints=u.prototype.GetAttributeInt32ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Ir(o,e,r,n)},u.prototype.GetAttributeUInt32ForAllPoints=u.prototype.GetAttributeUInt32ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!gr(o,e,r,n)},u.prototype.GetAttributeDataArrayForAllPoints=u.prototype.GetAttributeDataArrayForAllPoints=function(e,r,n,o,l){var d=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),o&&typeof o=="object"&&(o=o.ptr),l&&typeof l=="object"&&(l=l.ptr),!!vr(d,e,r,n,o,l)},u.prototype.SkipAttributeTransform=u.prototype.SkipAttributeTransform=function(e){var r=this.ptr;e&&typeof e=="object"&&(e=e.ptr),Er(r,e)},u.prototype.GetEncodedGeometryType_Deprecated=u.prototype.GetEncodedGeometryType_Deprecated=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Gr(r,e)},u.prototype.DecodeBufferToPointCloud=u.prototype.DecodeBufferToPointCloud=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),E(Or(n,e,r),g)},u.prototype.DecodeBufferToMesh=u.prototype.DecodeBufferToMesh=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),E(jr(n,e,r),g)},u.prototype.__destroy__=u.prototype.__destroy__=function(){Pr(this.ptr)},function(){function e(){t.ATTRIBUTE_INVALID_TRANSFORM=Rr(),t.ATTRIBUTE_NO_TRANSFORM=Sr(),t.ATTRIBUTE_QUANTIZATION_TRANSFORM=Mr(),t.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Nr(),t.INVALID=Ur(),t.POSITION=Fr(),t.NORMAL=Lr(),t.COLOR=Cr(),t.TEX_COORD=wr(),t.GENERIC=zr(),t.INVALID_GEOMETRY_TYPE=Vr(),t.POINT_CLOUD=Br(),t.TRIANGULAR_MESH=Wr(),t.DT_INVALID=xr(),t.DT_INT8=Qr(),t.DT_UINT8=Yr(),t.DT_INT16=Hr(),t.DT_UINT16=qr(),t.DT_INT32=kr(),t.DT_UINT32=Xr(),t.DT_INT64=Kr(),t.DT_UINT64=Jr(),t.DT_FLOAT32=$r(),t.DT_FLOAT64=Zr(),t.DT_BOOL=tn(),t.DT_TYPES_COUNT=en(),t.OK=rn(),t.DRACO_ERROR=nn(),t.IO_ERROR=on(),t.INVALID_PARAMETER=_n(),t.UNSUPPORTED_VERSION=pn(),t.UNKNOWN_VERSION=an()}Gt?e():ut.unshift(e)}(),typeof t.onModuleParsed=="function"&&t.onModuleParsed(),t.Decoder.prototype.GetEncodedGeometryType=function(e){if(e.__class__&&e.__class__===t.DecoderBuffer)return t.Decoder.prototype.GetEncodedGeometryType_Deprecated(e);if(8>e.byteLength)return t.INVALID_GEOMETRY_TYPE;switch(e[7]){case 0:return t.POINT_CLOUD;case 1:return t.TRIANGULAR_MESH;default:return t.INVALID_GEOMETRY_TYPE}},s.ready}}();typeof exports=="object"&&typeof module=="object"?module.exports=DracoDecoderModule:typeof define=="function"&&define.amd?define([],function(){return DracoDecoderModule}):typeof exports=="object"&&(exports.DracoDecoderModule=DracoDecoderModule); diff --git a/public/static/Cesium/ThirdParty/Workers/package.js b/public/static/Cesium/ThirdParty/Workers/package.js new file mode 100644 index 0000000..ef834fd --- /dev/null +++ b/public/static/Cesium/ThirdParty/Workers/package.js @@ -0,0 +1 @@ +module.exports={type:"commonjs"}; diff --git a/public/static/Cesium/ThirdParty/Workers/package.json b/public/static/Cesium/ThirdParty/Workers/package.json new file mode 100644 index 0000000..0292b99 --- /dev/null +++ b/public/static/Cesium/ThirdParty/Workers/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} \ No newline at end of file diff --git a/public/static/Cesium/ThirdParty/Workers/pako_deflate.min.js b/public/static/Cesium/ThirdParty/Workers/pako_deflate.min.js new file mode 100644 index 0000000..71416d2 --- /dev/null +++ b/public/static/Cesium/ThirdParty/Workers/pako_deflate.min.js @@ -0,0 +1 @@ +/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */(function(v,z){typeof exports=="object"&&typeof module<"u"?z(exports):typeof define=="function"&&define.amd?define(["exports"],z):z((v=typeof globalThis<"u"?globalThis:v||self).pako={})})(this,function(v){"use strict";function z(e){let s=e.length;for(;--s>=0;)e[s]=0}const oe=256,Ae=286,H=30,M=15,de=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ae=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),ra=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Ee=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Z=new Array(576);z(Z);const P=new Array(60);z(P);const j=new Array(512);z(j);const K=new Array(256);z(K);const ue=new Array(29);z(ue);const se=new Array(H);function fe(e,s,a,r,n){this.static_tree=e,this.extra_bits=s,this.extra_base=a,this.elems=r,this.max_length=n,this.has_stree=e&&e.length}let Ze,Ue,Re;function ce(e,s){this.dyn_tree=e,this.max_code=0,this.stat_desc=s}z(se);const Se=e=>e<256?j[e]:j[256+(e>>>7)],Y=(e,s)=>{e.pending_buf[e.pending++]=255&s,e.pending_buf[e.pending++]=s>>>8&255},p=(e,s,a)=>{e.bi_valid>16-a?(e.bi_buf|=s<<e.bi_valid&65535,Y(e,e.bi_buf),e.bi_buf=s>>16-e.bi_valid,e.bi_valid+=a-16):(e.bi_buf|=s<<e.bi_valid&65535,e.bi_valid+=a)},k=(e,s,a)=>{p(e,a[2*s],a[2*s+1])},Te=(e,s)=>{let a=0;do a|=1&e,e>>>=1,a<<=1;while(--s>0);return a>>>1},Le=(e,s,a)=>{const r=new Array(16);let n,i,_=0;for(n=1;n<=M;n++)_=_+a[n-1]<<1,r[n]=_;for(i=0;i<=s;i++){let t=e[2*i+1];t!==0&&(e[2*i]=Te(r[t]++,t))}},Fe=e=>{let s;for(s=0;s<Ae;s++)e.dyn_ltree[2*s]=0;for(s=0;s<H;s++)e.dyn_dtree[2*s]=0;for(s=0;s<19;s++)e.bl_tree[2*s]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Oe=e=>{e.bi_valid>8?Y(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},De=(e,s,a,r)=>{const n=2*s,i=2*a;return e[n]<e[i]||e[n]===e[i]&&r[s]<=r[a]},pe=(e,s,a)=>{const r=e.heap[a];let n=a<<1;for(;n<=e.heap_len&&(n<e.heap_len&&De(s,e.heap[n+1],e.heap[n],e.depth)&&n++,!De(s,r,e.heap[n],e.depth));)e.heap[a]=e.heap[n],a=n,n<<=1;e.heap[a]=r},Ne=(e,s,a)=>{let r,n,i,_,t=0;if(e.sym_next!==0)do r=255&e.pending_buf[e.sym_buf+t++],r+=(255&e.pending_buf[e.sym_buf+t++])<<8,n=e.pending_buf[e.sym_buf+t++],r===0?k(e,n,s):(i=K[n],k(e,i+oe+1,s),_=de[i],_!==0&&(n-=ue[i],p(e,n,_)),r--,i=Se(r),k(e,i,a),_=ae[i],_!==0&&(r-=se[i],p(e,r,_)));while(t<e.sym_next);k(e,256,s)},ge=(e,s)=>{const a=s.dyn_tree,r=s.stat_desc.static_tree,n=s.stat_desc.has_stree,i=s.stat_desc.elems;let _,t,h,l=-1;for(e.heap_len=0,e.heap_max=573,_=0;_<i;_++)a[2*_]!==0?(e.heap[++e.heap_len]=l=_,e.depth[_]=0):a[2*_+1]=0;for(;e.heap_len<2;)h=e.heap[++e.heap_len]=l<2?++l:0,a[2*h]=1,e.depth[h]=0,e.opt_len--,n&&(e.static_len-=r[2*h+1]);for(s.max_code=l,_=e.heap_len>>1;_>=1;_--)pe(e,a,_);h=i;do _=e.heap[1],e.heap[1]=e.heap[e.heap_len--],pe(e,a,1),t=e.heap[1],e.heap[--e.heap_max]=_,e.heap[--e.heap_max]=t,a[2*h]=a[2*_]+a[2*t],e.depth[h]=(e.depth[_]>=e.depth[t]?e.depth[_]:e.depth[t])+1,a[2*_+1]=a[2*t+1]=h,e.heap[1]=h++,pe(e,a,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((u,d)=>{const m=d.dyn_tree,V=d.max_code,_e=d.stat_desc.static_tree,Na=d.stat_desc.has_stree,Ia=d.stat_desc.extra_bits,na=d.stat_desc.extra_base,$=d.stat_desc.max_length;let ee,y,B,f,le,xe,he=0;for(f=0;f<=M;f++)u.bl_count[f]=0;for(m[2*u.heap[u.heap_max]+1]=0,ee=u.heap_max+1;ee<573;ee++)y=u.heap[ee],f=m[2*m[2*y+1]+1]+1,f>$&&(f=$,he++),m[2*y+1]=f,y>V||(u.bl_count[f]++,le=0,y>=na&&(le=Ia[y-na]),xe=m[2*y],u.opt_len+=xe*(f+le),Na&&(u.static_len+=xe*(_e[2*y+1]+le)));if(he!==0){do{for(f=$-1;u.bl_count[f]===0;)f--;u.bl_count[f]--,u.bl_count[f+1]+=2,u.bl_count[$]--,he-=2}while(he>0);for(f=$;f!==0;f--)for(y=u.bl_count[f];y!==0;)B=u.heap[--ee],B>V||(m[2*B+1]!==f&&(u.opt_len+=(f-m[2*B+1])*m[2*B],m[2*B+1]=f),y--)}})(e,s),Le(a,l,e.bl_count)},Ie=(e,s,a)=>{let r,n,i=-1,_=s[1],t=0,h=7,l=4;for(_===0&&(h=138,l=3),s[2*(a+1)+1]=65535,r=0;r<=a;r++)n=_,_=s[2*(r+1)+1],++t<h&&n===_||(t<l?e.bl_tree[2*n]+=t:n!==0?(n!==i&&e.bl_tree[2*n]++,e.bl_tree[32]++):t<=10?e.bl_tree[34]++:e.bl_tree[36]++,t=0,i=n,_===0?(h=138,l=3):n===_?(h=6,l=3):(h=7,l=4))},Ce=(e,s,a)=>{let r,n,i=-1,_=s[1],t=0,h=7,l=4;for(_===0&&(h=138,l=3),r=0;r<=a;r++)if(n=_,_=s[2*(r+1)+1],!(++t<h&&n===_)){if(t<l)do k(e,n,e.bl_tree);while(--t!=0);else n!==0?(n!==i&&(k(e,n,e.bl_tree),t--),k(e,16,e.bl_tree),p(e,t-3,2)):t<=10?(k(e,17,e.bl_tree),p(e,t-3,3)):(k(e,18,e.bl_tree),p(e,t-11,7));t=0,i=n,_===0?(h=138,l=3):n===_?(h=6,l=3):(h=7,l=4)}};let Be=!1;const He=(e,s,a,r)=>{p(e,0+(r?1:0),3),Oe(e),Y(e,a),Y(e,~a),a&&e.pending_buf.set(e.window.subarray(s,s+a),e.pending),e.pending+=a};var ia=(e,s,a,r)=>{let n,i,_=0;e.level>0?(e.strm.data_type===2&&(e.strm.data_type=(t=>{let h,l=4093624447;for(h=0;h<=31;h++,l>>>=1)if(1&l&&t.dyn_ltree[2*h]!==0)return 0;if(t.dyn_ltree[18]!==0||t.dyn_ltree[20]!==0||t.dyn_ltree[26]!==0)return 1;for(h=32;h<oe;h++)if(t.dyn_ltree[2*h]!==0)return 1;return 0})(e)),ge(e,e.l_desc),ge(e,e.d_desc),_=(t=>{let h;for(Ie(t,t.dyn_ltree,t.l_desc.max_code),Ie(t,t.dyn_dtree,t.d_desc.max_code),ge(t,t.bl_desc),h=18;h>=3&&t.bl_tree[2*Ee[h]+1]===0;h--);return t.opt_len+=3*(h+1)+5+5+4,h})(e),n=e.opt_len+3+7>>>3,i=e.static_len+3+7>>>3,i<=n&&(n=i)):n=i=a+5,a+4<=n&&s!==-1?He(e,s,a,r):e.strategy===4||i===n?(p(e,2+(r?1:0),3),Ne(e,Z,P)):(p(e,4+(r?1:0),3),((t,h,l,u)=>{let d;for(p(t,h-257,5),p(t,l-1,5),p(t,u-4,4),d=0;d<u;d++)p(t,t.bl_tree[2*Ee[d]+1],3);Ce(t,t.dyn_ltree,h-1),Ce(t,t.dyn_dtree,l-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,_+1),Ne(e,e.dyn_ltree,e.dyn_dtree)),Fe(e),r&&Oe(e)},ta={_tr_init:e=>{Be||((()=>{let s,a,r,n,i;const _=new Array(16);for(r=0,n=0;n<28;n++)for(ue[n]=r,s=0;s<1<<de[n];s++)K[r++]=n;for(K[r-1]=n,i=0,n=0;n<16;n++)for(se[n]=i,s=0;s<1<<ae[n];s++)j[i++]=n;for(i>>=7;n<H;n++)for(se[n]=i<<7,s=0;s<1<<ae[n]-7;s++)j[256+i++]=n;for(a=0;a<=M;a++)_[a]=0;for(s=0;s<=143;)Z[2*s+1]=8,s++,_[8]++;for(;s<=255;)Z[2*s+1]=9,s++,_[9]++;for(;s<=279;)Z[2*s+1]=7,s++,_[7]++;for(;s<=287;)Z[2*s+1]=8,s++,_[8]++;for(Le(Z,287,_),s=0;s<H;s++)P[2*s+1]=5,P[2*s]=Te(s,5);Ze=new fe(Z,de,257,Ae,M),Ue=new fe(P,ae,0,H,M),Re=new fe(new Array(0),ra,0,19,7)})(),Be=!0),e.l_desc=new ce(e.dyn_ltree,Ze),e.d_desc=new ce(e.dyn_dtree,Ue),e.bl_desc=new ce(e.bl_tree,Re),e.bi_buf=0,e.bi_valid=0,Fe(e)},_tr_stored_block:He,_tr_flush_block:ia,_tr_tally:(e,s,a)=>(e.pending_buf[e.sym_buf+e.sym_next++]=s,e.pending_buf[e.sym_buf+e.sym_next++]=s>>8,e.pending_buf[e.sym_buf+e.sym_next++]=a,s===0?e.dyn_ltree[2*a]++:(e.matches++,s--,e.dyn_ltree[2*(K[a]+oe+1)]++,e.dyn_dtree[2*Se(s)]++),e.sym_next===e.sym_end),_tr_align:e=>{p(e,2,3),k(e,256,Z),(s=>{s.bi_valid===16?(Y(s,s.bi_buf),s.bi_buf=0,s.bi_valid=0):s.bi_valid>=8&&(s.pending_buf[s.pending++]=255&s.bi_buf,s.bi_buf>>=8,s.bi_valid-=8)})(e)}},Me=(e,s,a,r)=>{let n=65535&e|0,i=e>>>16&65535|0,_=0;for(;a!==0;){_=a>2e3?2e3:a,a-=_;do n=n+s[r++]|0,i=i+n|0;while(--_);n%=65521,i%=65521}return n|i<<16|0};const _a=new Uint32Array((()=>{let e,s=[];for(var a=0;a<256;a++){e=a;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;s[a]=e}return s})());var U=(e,s,a,r)=>{const n=_a,i=r+a;e^=-1;for(let _=r;_<i;_++)e=e>>>8^n[255&(e^s[_])];return-1^e},ne={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},we={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,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_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,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:la,_tr_stored_block:me,_tr_flush_block:ha,_tr_tally:R,_tr_align:oa}=ta,{Z_NO_FLUSH:S,Z_PARTIAL_FLUSH:da,Z_FULL_FLUSH:ua,Z_FINISH:b,Z_BLOCK:Pe,Z_OK:c,Z_STREAM_END:je,Z_STREAM_ERROR:x,Z_DATA_ERROR:fa,Z_BUF_ERROR:be,Z_DEFAULT_COMPRESSION:ca,Z_FILTERED:pa,Z_HUFFMAN_ONLY:re,Z_RLE:ga,Z_FIXED:wa,Z_DEFAULT_STRATEGY:ma,Z_UNKNOWN:ba,Z_DEFLATED:ie}=we,F=258,A=262,N=42,O=113,G=666,D=(e,s)=>(e.msg=ne[s],s),Ke=e=>2*e-(e>4?9:0),T=e=>{let s=e.length;for(;--s>=0;)e[s]=0},ya=e=>{let s,a,r,n=e.w_size;s=e.hash_size,r=s;do a=e.head[--r],e.head[r]=a>=n?a-n:0;while(--s);s=n,r=s;do a=e.prev[--r],e.prev[r]=a>=n?a-n:0;while(--s)};let L=(e,s,a)=>(s<<e.hash_shift^a)&e.hash_mask;const g=e=>{const s=e.state;let a=s.pending;a>e.avail_out&&(a=e.avail_out),a!==0&&(e.output.set(s.pending_buf.subarray(s.pending_out,s.pending_out+a),e.next_out),e.next_out+=a,s.pending_out+=a,e.total_out+=a,e.avail_out-=a,s.pending-=a,s.pending===0&&(s.pending_out=0))},w=(e,s)=>{ha(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,s),e.block_start=e.strstart,g(e.strm)},o=(e,s)=>{e.pending_buf[e.pending++]=s},X=(e,s)=>{e.pending_buf[e.pending++]=s>>>8&255,e.pending_buf[e.pending++]=255&s},ye=(e,s,a,r)=>{let n=e.avail_in;return n>r&&(n=r),n===0?0:(e.avail_in-=n,s.set(e.input.subarray(e.next_in,e.next_in+n),a),e.state.wrap===1?e.adler=Me(e.adler,s,n,a):e.state.wrap===2&&(e.adler=U(e.adler,s,n,a)),e.next_in+=n,e.total_in+=n,n)},Ye=(e,s)=>{let a,r,n=e.max_chain_length,i=e.strstart,_=e.prev_length,t=e.nice_match;const h=e.strstart>e.w_size-A?e.strstart-(e.w_size-A):0,l=e.window,u=e.w_mask,d=e.prev,m=e.strstart+F;let V=l[i+_-1],_e=l[i+_];e.prev_length>=e.good_match&&(n>>=2),t>e.lookahead&&(t=e.lookahead);do if(a=s,l[a+_]===_e&&l[a+_-1]===V&&l[a]===l[i]&&l[++a]===l[i+1]){i+=2,a++;do;while(l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&i<m);if(r=F-(m-i),i=m-F,r>_){if(e.match_start=s,_=r,r>=t)break;V=l[i+_-1],_e=l[i+_]}}while((s=d[s&u])>h&&--n!=0);return _<=e.lookahead?_:e.lookahead},I=e=>{const s=e.w_size;let a,r,n;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=s+(s-A)&&(e.window.set(e.window.subarray(s,s+s-r),0),e.match_start-=s,e.strstart-=s,e.block_start-=s,e.insert>e.strstart&&(e.insert=e.strstart),ya(e),r+=s),e.strm.avail_in===0)break;if(a=ye(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=a,e.lookahead+e.insert>=3)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=L(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=L(e,e.ins_h,e.window[n+3-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<A&&e.strm.avail_in!==0)},Ge=(e,s)=>{let a,r,n,i=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,_=0,t=e.strm.avail_in;do{if(a=65535,n=e.bi_valid+42>>3,e.strm.avail_out<n||(n=e.strm.avail_out-n,r=e.strstart-e.block_start,a>r+e.strm.avail_in&&(a=r+e.strm.avail_in),a>n&&(a=n),a<i&&(a===0&&s!==b||s===S||a!==r+e.strm.avail_in)))break;_=s===b&&a===r+e.strm.avail_in?1:0,me(e,0,0,_),e.pending_buf[e.pending-4]=a,e.pending_buf[e.pending-3]=a>>8,e.pending_buf[e.pending-2]=~a,e.pending_buf[e.pending-1]=~a>>8,g(e.strm),r&&(r>a&&(r=a),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+r),e.strm.next_out),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r,e.block_start+=r,a-=r),a&&(ye(e.strm,e.strm.output,e.strm.next_out,a),e.strm.next_out+=a,e.strm.avail_out-=a,e.strm.total_out+=a)}while(_===0);return t-=e.strm.avail_in,t&&(t>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=t&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-t,e.strm.next_in),e.strstart),e.strstart+=t,e.insert+=t>e.w_size-e.insert?e.w_size-e.insert:t),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),_?4:s!==S&&s!==b&&e.strm.avail_in===0&&e.strstart===e.block_start?2:(n=e.window_size-e.strstart,e.strm.avail_in>n&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,n+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),n>e.strm.avail_in&&(n=e.strm.avail_in),n&&(ye(e.strm,e.window,e.strstart,n),e.strstart+=n,e.insert+=n>e.w_size-e.insert?e.w_size-e.insert:n),e.high_water<e.strstart&&(e.high_water=e.strstart),n=e.bi_valid+42>>3,n=e.pending_buf_size-n>65535?65535:e.pending_buf_size-n,i=n>e.w_size?e.w_size:n,r=e.strstart-e.block_start,(r>=i||(r||s===b)&&s!==S&&e.strm.avail_in===0&&r<=n)&&(a=r>n?n:r,_=s===b&&e.strm.avail_in===0&&a===r?1:0,me(e,e.block_start,a,_),e.block_start+=a,g(e.strm)),_?3:1)},ve=(e,s)=>{let a,r;for(;;){if(e.lookahead<A){if(I(e),e.lookahead<A&&s===S)return 1;if(e.lookahead===0)break}if(a=0,e.lookahead>=3&&(e.ins_h=L(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),a!==0&&e.strstart-a<=e.w_size-A&&(e.match_length=Ye(e,a)),e.match_length>=3)if(r=R(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do e.strstart++,e.ins_h=L(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!=0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=L(e,e.ins_h,e.window[e.strstart+1]);else r=R(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(w(e,!1),e.strm.avail_out===0))return 1}return e.insert=e.strstart<2?e.strstart:2,s===b?(w(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(w(e,!1),e.strm.avail_out===0)?1:2},C=(e,s)=>{let a,r,n;for(;;){if(e.lookahead<A){if(I(e),e.lookahead<A&&s===S)return 1;if(e.lookahead===0)break}if(a=0,e.lookahead>=3&&(e.ins_h=L(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,a!==0&&e.prev_length<e.max_lazy_match&&e.strstart-a<=e.w_size-A&&(e.match_length=Ye(e,a),e.match_length<=5&&(e.strategy===pa||e.match_length===3&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-3,r=R(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=L(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!=0);if(e.match_available=0,e.match_length=2,e.strstart++,r&&(w(e,!1),e.strm.avail_out===0))return 1}else if(e.match_available){if(r=R(e,0,e.window[e.strstart-1]),r&&w(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=R(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,s===b?(w(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(w(e,!1),e.strm.avail_out===0)?1:2};function E(e,s,a,r,n){this.good_length=e,this.max_lazy=s,this.nice_length=a,this.max_chain=r,this.func=n}const W=[new E(0,0,0,0,Ge),new E(4,4,8,4,ve),new E(4,5,16,8,ve),new E(4,6,32,32,ve),new E(4,4,16,16,C),new E(8,16,32,32,C),new E(8,16,128,128,C),new E(8,32,128,256,C),new E(32,128,258,1024,C),new E(32,258,258,4096,C)];function va(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ie,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),T(this.dyn_ltree),T(this.dyn_dtree),T(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),T(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),T(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const q=e=>{if(!e)return 1;const s=e.state;return!s||s.strm!==e||s.status!==N&&s.status!==57&&s.status!==69&&s.status!==73&&s.status!==91&&s.status!==103&&s.status!==O&&s.status!==G?1:0},Xe=e=>{if(q(e))return D(e,x);e.total_in=e.total_out=0,e.data_type=ba;const s=e.state;return s.pending=0,s.pending_out=0,s.wrap<0&&(s.wrap=-s.wrap),s.status=s.wrap===2?57:s.wrap?N:O,e.adler=s.wrap===2?0:1,s.last_flush=-2,la(s),c},We=e=>{const s=Xe(e);var a;return s===c&&((a=e.state).window_size=2*a.w_size,T(a.head),a.max_lazy_match=W[a.level].max_lazy,a.good_match=W[a.level].good_length,a.nice_match=W[a.level].nice_length,a.max_chain_length=W[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),s},qe=(e,s,a,r,n,i)=>{if(!e)return x;let _=1;if(s===ca&&(s=6),r<0?(_=0,r=-r):r>15&&(_=2,r-=16),n<1||n>9||a!==ie||r<8||r>15||s<0||s>9||i<0||i>wa||r===8&&_!==1)return D(e,x);r===8&&(r=9);const t=new va;return e.state=t,t.strm=e,t.status=N,t.wrap=_,t.gzhead=null,t.w_bits=r,t.w_size=1<<t.w_bits,t.w_mask=t.w_size-1,t.hash_bits=n+7,t.hash_size=1<<t.hash_bits,t.hash_mask=t.hash_size-1,t.hash_shift=~~((t.hash_bits+3-1)/3),t.window=new Uint8Array(2*t.w_size),t.head=new Uint16Array(t.hash_size),t.prev=new Uint16Array(t.w_size),t.lit_bufsize=1<<n+6,t.pending_buf_size=4*t.lit_bufsize,t.pending_buf=new Uint8Array(t.pending_buf_size),t.sym_buf=t.lit_bufsize,t.sym_end=3*(t.lit_bufsize-1),t.level=s,t.strategy=i,t.method=a,We(e)};var J={deflateInit:(e,s)=>qe(e,s,ie,15,8,ma),deflateInit2:qe,deflateReset:We,deflateResetKeep:Xe,deflateSetHeader:(e,s)=>q(e)||e.state.wrap!==2?x:(e.state.gzhead=s,c),deflate:(e,s)=>{if(q(e)||s>Pe||s<0)return e?D(e,x):x;const a=e.state;if(!e.output||e.avail_in!==0&&!e.input||a.status===G&&s!==b)return D(e,e.avail_out===0?be:x);const r=a.last_flush;if(a.last_flush=s,a.pending!==0){if(g(e),e.avail_out===0)return a.last_flush=-1,c}else if(e.avail_in===0&&Ke(s)<=Ke(r)&&s!==b)return D(e,be);if(a.status===G&&e.avail_in!==0)return D(e,be);if(a.status===N&&a.wrap===0&&(a.status=O),a.status===N){let n=ie+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=re||a.level<2?0:a.level<6?1:a.level===6?2:3,n|=i<<6,a.strstart!==0&&(n|=32),n+=31-n%31,X(a,n),a.strstart!==0&&(X(a,e.adler>>>16),X(a,65535&e.adler)),e.adler=1,a.status=O,g(e),a.pending!==0)return a.last_flush=-1,c}if(a.status===57){if(e.adler=0,o(a,31),o(a,139),o(a,8),a.gzhead)o(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),o(a,255&a.gzhead.time),o(a,a.gzhead.time>>8&255),o(a,a.gzhead.time>>16&255),o(a,a.gzhead.time>>24&255),o(a,a.level===9?2:a.strategy>=re||a.level<2?4:0),o(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(o(a,255&a.gzhead.extra.length),o(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(e.adler=U(e.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(o(a,0),o(a,0),o(a,0),o(a,0),o(a,0),o(a,a.level===9?2:a.strategy>=re||a.level<2?4:0),o(a,3),a.status=O,g(e),a.pending!==0)return a.last_flush=-1,c}if(a.status===69){if(a.gzhead.extra){let n=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let t=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+t),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>n&&(e.adler=U(e.adler,a.pending_buf,a.pending-n,n)),a.gzindex+=t,g(e),a.pending!==0)return a.last_flush=-1,c;n=0,i-=t}let _=new Uint8Array(a.gzhead.extra);a.pending_buf.set(_.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>n&&(e.adler=U(e.adler,a.pending_buf,a.pending-n,n)),a.gzindex=0}a.status=73}if(a.status===73){if(a.gzhead.name){let n,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=U(e.adler,a.pending_buf,a.pending-i,i)),g(e),a.pending!==0)return a.last_flush=-1,c;i=0}n=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,o(a,n)}while(n!==0);a.gzhead.hcrc&&a.pending>i&&(e.adler=U(e.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(a.status===91){if(a.gzhead.comment){let n,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=U(e.adler,a.pending_buf,a.pending-i,i)),g(e),a.pending!==0)return a.last_flush=-1,c;i=0}n=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,o(a,n)}while(n!==0);a.gzhead.hcrc&&a.pending>i&&(e.adler=U(e.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(a.status===103){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(g(e),a.pending!==0))return a.last_flush=-1,c;o(a,255&e.adler),o(a,e.adler>>8&255),e.adler=0}if(a.status=O,g(e),a.pending!==0)return a.last_flush=-1,c}if(e.avail_in!==0||a.lookahead!==0||s!==S&&a.status!==G){let n=a.level===0?Ge(a,s):a.strategy===re?((i,_)=>{let t;for(;;){if(i.lookahead===0&&(I(i),i.lookahead===0)){if(_===S)return 1;break}if(i.match_length=0,t=R(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++,t&&(w(i,!1),i.strm.avail_out===0))return 1}return i.insert=0,_===b?(w(i,!0),i.strm.avail_out===0?3:4):i.sym_next&&(w(i,!1),i.strm.avail_out===0)?1:2})(a,s):a.strategy===ga?((i,_)=>{let t,h,l,u;const d=i.window;for(;;){if(i.lookahead<=F){if(I(i),i.lookahead<=F&&_===S)return 1;if(i.lookahead===0)break}if(i.match_length=0,i.lookahead>=3&&i.strstart>0&&(l=i.strstart-1,h=d[l],h===d[++l]&&h===d[++l]&&h===d[++l])){u=i.strstart+F;do;while(h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&l<u);i.match_length=F-(u-l),i.match_length>i.lookahead&&(i.match_length=i.lookahead)}if(i.match_length>=3?(t=R(i,1,i.match_length-3),i.lookahead-=i.match_length,i.strstart+=i.match_length,i.match_length=0):(t=R(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++),t&&(w(i,!1),i.strm.avail_out===0))return 1}return i.insert=0,_===b?(w(i,!0),i.strm.avail_out===0?3:4):i.sym_next&&(w(i,!1),i.strm.avail_out===0)?1:2})(a,s):W[a.level].func(a,s);if(n!==3&&n!==4||(a.status=G),n===1||n===3)return e.avail_out===0&&(a.last_flush=-1),c;if(n===2&&(s===da?oa(a):s!==Pe&&(me(a,0,0,!1),s===ua&&(T(a.head),a.lookahead===0&&(a.strstart=0,a.block_start=0,a.insert=0))),g(e),e.avail_out===0))return a.last_flush=-1,c}return s!==b?c:a.wrap<=0?je:(a.wrap===2?(o(a,255&e.adler),o(a,e.adler>>8&255),o(a,e.adler>>16&255),o(a,e.adler>>24&255),o(a,255&e.total_in),o(a,e.total_in>>8&255),o(a,e.total_in>>16&255),o(a,e.total_in>>24&255)):(X(a,e.adler>>>16),X(a,65535&e.adler)),g(e),a.wrap>0&&(a.wrap=-a.wrap),a.pending!==0?c:je)},deflateEnd:e=>{if(q(e))return x;const s=e.state.status;return e.state=null,s===O?D(e,fa):c},deflateSetDictionary:(e,s)=>{let a=s.length;if(q(e))return x;const r=e.state,n=r.wrap;if(n===2||n===1&&r.status!==N||r.lookahead)return x;if(n===1&&(e.adler=Me(e.adler,s,a,0)),r.wrap=0,a>=r.w_size){n===0&&(T(r.head),r.strstart=0,r.block_start=0,r.insert=0);let h=new Uint8Array(r.w_size);h.set(s.subarray(a-r.w_size,a),0),s=h,a=r.w_size}const i=e.avail_in,_=e.next_in,t=e.input;for(e.avail_in=a,e.next_in=0,e.input=s,I(r);r.lookahead>=3;){let h=r.strstart,l=r.lookahead-2;do r.ins_h=L(r,r.ins_h,r.window[h+3-1]),r.prev[h&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=h,h++;while(--l);r.strstart=h,r.lookahead=2,I(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=_,e.input=t,e.avail_in=i,r.wrap=n,c},deflateInfo:"pako deflate (from Nodeca project)"};const za=(e,s)=>Object.prototype.hasOwnProperty.call(e,s);var ka=function(e){const s=Array.prototype.slice.call(arguments,1);for(;s.length;){const a=s.shift();if(a){if(typeof a!="object")throw new TypeError(a+"must be non-object");for(const r in a)za(a,r)&&(e[r]=a[r])}}return e},xa=e=>{let s=0;for(let r=0,n=e.length;r<n;r++)s+=e[r].length;const a=new Uint8Array(s);for(let r=0,n=0,i=e.length;r<i;r++){let _=e[r];a.set(_,n),n+=_.length}return a};let Aa=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Aa=!1}const ze=new Uint8Array(256);for(let e=0;e<256;e++)ze[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ze[254]=ze[254]=1;var Je=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let s,a,r,n,i,_=e.length,t=0;for(n=0;n<_;n++)a=e.charCodeAt(n),(64512&a)==55296&&n+1<_&&(r=e.charCodeAt(n+1),(64512&r)==56320&&(a=65536+(a-55296<<10)+(r-56320),n++)),t+=a<128?1:a<2048?2:a<65536?3:4;for(s=new Uint8Array(t),i=0,n=0;i<t;n++)a=e.charCodeAt(n),(64512&a)==55296&&n+1<_&&(r=e.charCodeAt(n+1),(64512&r)==56320&&(a=65536+(a-55296<<10)+(r-56320),n++)),a<128?s[i++]=a:a<2048?(s[i++]=192|a>>>6,s[i++]=128|63&a):a<65536?(s[i++]=224|a>>>12,s[i++]=128|a>>>6&63,s[i++]=128|63&a):(s[i++]=240|a>>>18,s[i++]=128|a>>>12&63,s[i++]=128|a>>>6&63,s[i++]=128|63&a);return s},Ea=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Qe=Object.prototype.toString,{Z_NO_FLUSH:Za,Z_SYNC_FLUSH:Ua,Z_FULL_FLUSH:Ra,Z_FINISH:Sa,Z_OK:te,Z_STREAM_END:Ta,Z_DEFAULT_COMPRESSION:La,Z_DEFAULT_STRATEGY:Fa,Z_DEFLATED:Oa}=we;function Q(e){this.options=ka({level:La,method:Oa,chunkSize:16384,windowBits:15,memLevel:8,strategy:Fa},e||{});let s=this.options;s.raw&&s.windowBits>0?s.windowBits=-s.windowBits:s.gzip&&s.windowBits>0&&s.windowBits<16&&(s.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ea,this.strm.avail_out=0;let a=J.deflateInit2(this.strm,s.level,s.method,s.windowBits,s.memLevel,s.strategy);if(a!==te)throw new Error(ne[a]);if(s.header&&J.deflateSetHeader(this.strm,s.header),s.dictionary){let r;if(r=typeof s.dictionary=="string"?Je(s.dictionary):Qe.call(s.dictionary)==="[object ArrayBuffer]"?new Uint8Array(s.dictionary):s.dictionary,a=J.deflateSetDictionary(this.strm,r),a!==te)throw new Error(ne[a]);this._dict_set=!0}}function ke(e,s){const a=new Q(s);if(a.push(e,!0),a.err)throw a.msg||ne[a.err];return a.result}Q.prototype.push=function(e,s){const a=this.strm,r=this.options.chunkSize;let n,i;if(this.ended)return!1;for(i=s===~~s?s:s===!0?Sa:Za,typeof e=="string"?a.input=Je(e):Qe.call(e)==="[object ArrayBuffer]"?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;;)if(a.avail_out===0&&(a.output=new Uint8Array(r),a.next_out=0,a.avail_out=r),(i===Ua||i===Ra)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=J.deflate(a,i),n===Ta)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=J.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===te;if(a.avail_out!==0){if(i>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(a.avail_in===0)break}else this.onData(a.output)}return!0},Q.prototype.onData=function(e){this.chunks.push(e)},Q.prototype.onEnd=function(e){e===te&&(this.result=xa(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Ve=Q,$e=ke,ea=function(e,s){return(s=s||{}).raw=!0,ke(e,s)},aa=function(e,s){return(s=s||{}).gzip=!0,ke(e,s)},sa=we,Da={Deflate:Ve,deflate:$e,deflateRaw:ea,gzip:aa,constants:sa};v.Deflate=Ve,v.constants=sa,v.default=Da,v.deflate=$e,v.deflateRaw=ea,v.gzip=aa,Object.defineProperty(v,"__esModule",{value:!0})}); diff --git a/public/static/Cesium/ThirdParty/Workers/pako_inflate.min.js b/public/static/Cesium/ThirdParty/Workers/pako_inflate.min.js new file mode 100644 index 0000000..420318f --- /dev/null +++ b/public/static/Cesium/ThirdParty/Workers/pako_inflate.min.js @@ -0,0 +1 @@ +/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */(function(O,I){typeof exports=="object"&&typeof module<"u"?I(exports):typeof define=="function"&&define.amd?define(["exports"],I):I((O=typeof globalThis<"u"?globalThis:O||self).pako={})})(this,function(O){"use strict";var I=(e,i,t,o)=>{let s=65535&e|0,r=e>>>16&65535|0,h=0;for(;t!==0;){h=t>2e3?2e3:t,t-=h;do s=s+i[o++]|0,r=r+s|0;while(--h);s%=65521,r%=65521}return s|r<<16|0};const Zt=new Uint32Array((()=>{let e,i=[];for(var t=0;t<256;t++){e=t;for(var o=0;o<8;o++)e=1&e?3988292384^e>>>1:e>>>1;i[t]=e}return i})());var U=(e,i,t,o)=>{const s=Zt,r=o+t;e^=-1;for(let h=o;h<r;h++)e=e>>>8^s[255&(e^i[h])];return-1^e};const j=16209;var St=function(e,i){let t,o,s,r,h,l,p,n,a,A,w,d,Z,v,u,y,k,f,g,E,c,x,m,b;const _=e.state;t=e.next_in,m=e.input,o=t+(e.avail_in-5),s=e.next_out,b=e.output,r=s-(i-e.avail_out),h=s+(e.avail_out-257),l=_.dmax,p=_.wsize,n=_.whave,a=_.wnext,A=_.window,w=_.hold,d=_.bits,Z=_.lencode,v=_.distcode,u=(1<<_.lenbits)-1,y=(1<<_.distbits)-1;t:do{d<15&&(w+=m[t++]<<d,d+=8,w+=m[t++]<<d,d+=8),k=Z[w&u];e:for(;;){if(f=k>>>24,w>>>=f,d-=f,f=k>>>16&255,f===0)b[s++]=65535&k;else{if(!(16&f)){if(!(64&f)){k=Z[(65535&k)+(w&(1<<f)-1)];continue e}if(32&f){_.mode=16191;break t}e.msg="invalid literal/length code",_.mode=j;break t}g=65535&k,f&=15,f&&(d<f&&(w+=m[t++]<<d,d+=8),g+=w&(1<<f)-1,w>>>=f,d-=f),d<15&&(w+=m[t++]<<d,d+=8,w+=m[t++]<<d,d+=8),k=v[w&y];i:for(;;){if(f=k>>>24,w>>>=f,d-=f,f=k>>>16&255,!(16&f)){if(!(64&f)){k=v[(65535&k)+(w&(1<<f)-1)];continue i}e.msg="invalid distance code",_.mode=j;break t}if(E=65535&k,f&=15,d<f&&(w+=m[t++]<<d,d+=8,d<f&&(w+=m[t++]<<d,d+=8)),E+=w&(1<<f)-1,E>l){e.msg="invalid distance too far back",_.mode=j;break t}if(w>>>=f,d-=f,f=s-r,E>f){if(f=E-f,f>n&&_.sane){e.msg="invalid distance too far back",_.mode=j;break t}if(c=0,x=A,a===0){if(c+=p-f,f<g){g-=f;do b[s++]=A[c++];while(--f);c=s-E,x=b}}else if(a<f){if(c+=p+a-f,f-=a,f<g){g-=f;do b[s++]=A[c++];while(--f);if(c=0,a<g){f=a,g-=f;do b[s++]=A[c++];while(--f);c=s-E,x=b}}}else if(c+=a-f,f<g){g-=f;do b[s++]=A[c++];while(--f);c=s-E,x=b}for(;g>2;)b[s++]=x[c++],b[s++]=x[c++],b[s++]=x[c++],g-=3;g&&(b[s++]=x[c++],g>1&&(b[s++]=x[c++]))}else{c=s-E;do b[s++]=b[c++],b[s++]=b[c++],b[s++]=b[c++],g-=3;while(g>2);g&&(b[s++]=b[c++],g>1&&(b[s++]=b[c++]))}break}}break}}while(t<o&&s<h);g=d>>3,t-=g,d-=g<<3,w&=(1<<d)-1,e.next_in=t,e.next_out=s,e.avail_in=t<o?o-t+5:5-(t-o),e.avail_out=s<h?h-s+257:257-(s-h),_.hold=w,_.bits=d};const K=15,Tt=new Uint16Array([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]),Ot=new Uint8Array([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]),Ut=new Uint16Array([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]),Dt=new Uint8Array([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]);var z=(e,i,t,o,s,r,h,l)=>{const p=l.bits;let n,a,A,w,d,Z,v=0,u=0,y=0,k=0,f=0,g=0,E=0,c=0,x=0,m=0,b=null;const _=new Uint16Array(16),S=new Uint16Array(16);let H,q,J,Q=null;for(v=0;v<=K;v++)_[v]=0;for(u=0;u<o;u++)_[i[t+u]]++;for(f=p,k=K;k>=1&&_[k]===0;k--);if(f>k&&(f=k),k===0)return s[r++]=20971520,s[r++]=20971520,l.bits=1,0;for(y=1;y<k&&_[y]===0;y++);for(f<y&&(f=y),c=1,v=1;v<=K;v++)if(c<<=1,c-=_[v],c<0)return-1;if(c>0&&(e===0||k!==1))return-1;for(S[1]=0,v=1;v<K;v++)S[v+1]=S[v]+_[v];for(u=0;u<o;u++)i[t+u]!==0&&(h[S[i[t+u]]++]=u);if(e===0?(b=Q=h,Z=20):e===1?(b=Tt,Q=Ot,Z=257):(b=Ut,Q=Dt,Z=0),m=0,u=0,v=y,d=r,g=f,E=0,A=-1,x=1<<f,w=x-1,e===1&&x>852||e===2&&x>592)return 1;for(;;){H=v-E,h[u]+1<Z?(q=0,J=h[u]):h[u]>=Z?(q=Q[h[u]-Z],J=b[h[u]-Z]):(q=96,J=0),n=1<<v-E,a=1<<g,y=a;do a-=n,s[d+(m>>E)+a]=H<<24|q<<16|J|0;while(a!==0);for(n=1<<v-1;m&n;)n>>=1;if(n!==0?(m&=n-1,m+=n):m=0,u++,--_[v]==0){if(v===k)break;v=i[t+h[u]]}if(v>f&&(m&w)!==A){for(E===0&&(E=f),d+=y,g=v-E,c=1<<g;g+E<k&&(c-=_[g+E],!(c<=0));)g++,c<<=1;if(x+=1<<g,e===1&&x>852||e===2&&x>592)return 1;A=m&w,s[A]=f<<24|g<<16|d-r|0}}return m!==0&&(s[d+m]=v-E<<24|64<<16|0),l.bits=f,0},V={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,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_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,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{Z_FINISH:lt,Z_BLOCK:Bt,Z_TREES:P,Z_OK:C,Z_STREAM_END:It,Z_NEED_DICT:Ct,Z_STREAM_ERROR:T,Z_DATA_ERROR:dt,Z_MEM_ERROR:ft,Z_BUF_ERROR:Nt,Z_DEFLATED:ht}=V,Y=16180,G=16190,D=16191,$=16192,tt=16194,X=16199,W=16200,et=16206,R=16209,ct=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function zt(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const N=e=>{if(!e)return 1;const i=e.state;return!i||i.strm!==e||i.mode<Y||i.mode>16211?1:0},ut=e=>{if(N(e))return T;const i=e.state;return e.total_in=e.total_out=i.total=0,e.msg="",i.wrap&&(e.adler=1&i.wrap),i.mode=Y,i.last=0,i.havedict=0,i.flags=-1,i.dmax=32768,i.head=null,i.hold=0,i.bits=0,i.lencode=i.lendyn=new Int32Array(852),i.distcode=i.distdyn=new Int32Array(592),i.sane=1,i.back=-1,C},wt=e=>{if(N(e))return T;const i=e.state;return i.wsize=0,i.whave=0,i.wnext=0,ut(e)},bt=(e,i)=>{let t;if(N(e))return T;const o=e.state;return i<0?(t=0,i=-i):(t=5+(i>>4),i<48&&(i&=15)),i&&(i<8||i>15)?T:(o.window!==null&&o.wbits!==i&&(o.window=null),o.wrap=t,o.wbits=i,wt(e))},mt=(e,i)=>{if(!e)return T;const t=new zt;e.state=t,t.strm=e,t.window=null,t.mode=Y;const o=bt(e,i);return o!==C&&(e.state=null),o};let it,nt,kt=!0;const Ft=e=>{if(kt){it=new Int32Array(512),nt=new Int32Array(32);let i=0;for(;i<144;)e.lens[i++]=8;for(;i<256;)e.lens[i++]=9;for(;i<280;)e.lens[i++]=7;for(;i<288;)e.lens[i++]=8;for(z(1,e.lens,0,288,it,0,e.work,{bits:9}),i=0;i<32;)e.lens[i++]=5;z(2,e.lens,0,32,nt,0,e.work,{bits:5}),kt=!1}e.lencode=it,e.lenbits=9,e.distcode=nt,e.distbits=5},_t=(e,i,t,o)=>{let s;const r=e.state;return r.window===null&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),o>=r.wsize?(r.window.set(i.subarray(t-r.wsize,t),0),r.wnext=0,r.whave=r.wsize):(s=r.wsize-r.wnext,s>o&&(s=o),r.window.set(i.subarray(t-o,t-o+s),r.wnext),(o-=s)?(r.window.set(i.subarray(t-o,t),0),r.wnext=o,r.whave=r.wsize):(r.wnext+=s,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=s))),0};var B={inflateReset:wt,inflateReset2:bt,inflateResetKeep:ut,inflateInit:e=>mt(e,15),inflateInit2:mt,inflate:(e,i)=>{let t,o,s,r,h,l,p,n,a,A,w,d,Z,v,u,y,k,f,g,E,c,x,m=0;const b=new Uint8Array(4);let _,S;const H=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(N(e)||!e.output||!e.input&&e.avail_in!==0)return T;t=e.state,t.mode===D&&(t.mode=$),h=e.next_out,s=e.output,p=e.avail_out,r=e.next_in,o=e.input,l=e.avail_in,n=t.hold,a=t.bits,A=l,w=p,x=C;t:for(;;)switch(t.mode){case Y:if(t.wrap===0){t.mode=$;break}for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(2&t.wrap&&n===35615){t.wbits===0&&(t.wbits=15),t.check=0,b[0]=255&n,b[1]=n>>>8&255,t.check=U(t.check,b,2,0),n=0,a=0,t.mode=16181;break}if(t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&n)<<8)+(n>>8))%31){e.msg="incorrect header check",t.mode=R;break}if((15&n)!==ht){e.msg="unknown compression method",t.mode=R;break}if(n>>>=4,a-=4,c=8+(15&n),t.wbits===0&&(t.wbits=c),c>15||c>t.wbits){e.msg="invalid window size",t.mode=R;break}t.dmax=1<<t.wbits,t.flags=0,e.adler=t.check=1,t.mode=512&n?16189:D,n=0,a=0;break;case 16181:for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(t.flags=n,(255&t.flags)!==ht){e.msg="unknown compression method",t.mode=R;break}if(57344&t.flags){e.msg="unknown header flags set",t.mode=R;break}t.head&&(t.head.text=n>>8&1),512&t.flags&&4&t.wrap&&(b[0]=255&n,b[1]=n>>>8&255,t.check=U(t.check,b,2,0)),n=0,a=0,t.mode=16182;case 16182:for(;a<32;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.head&&(t.head.time=n),512&t.flags&&4&t.wrap&&(b[0]=255&n,b[1]=n>>>8&255,b[2]=n>>>16&255,b[3]=n>>>24&255,t.check=U(t.check,b,4,0)),n=0,a=0,t.mode=16183;case 16183:for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.head&&(t.head.xflags=255&n,t.head.os=n>>8),512&t.flags&&4&t.wrap&&(b[0]=255&n,b[1]=n>>>8&255,t.check=U(t.check,b,2,0)),n=0,a=0,t.mode=16184;case 16184:if(1024&t.flags){for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.length=n,t.head&&(t.head.extra_len=n),512&t.flags&&4&t.wrap&&(b[0]=255&n,b[1]=n>>>8&255,t.check=U(t.check,b,2,0)),n=0,a=0}else t.head&&(t.head.extra=null);t.mode=16185;case 16185:if(1024&t.flags&&(d=t.length,d>l&&(d=l),d&&(t.head&&(c=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(o.subarray(r,r+d),c)),512&t.flags&&4&t.wrap&&(t.check=U(t.check,o,d,r)),l-=d,r+=d,t.length-=d),t.length))break t;t.length=0,t.mode=16186;case 16186:if(2048&t.flags){if(l===0)break t;d=0;do c=o[r+d++],t.head&&c&&t.length<65536&&(t.head.name+=String.fromCharCode(c));while(c&&d<l);if(512&t.flags&&4&t.wrap&&(t.check=U(t.check,o,d,r)),l-=d,r+=d,c)break t}else t.head&&(t.head.name=null);t.length=0,t.mode=16187;case 16187:if(4096&t.flags){if(l===0)break t;d=0;do c=o[r+d++],t.head&&c&&t.length<65536&&(t.head.comment+=String.fromCharCode(c));while(c&&d<l);if(512&t.flags&&4&t.wrap&&(t.check=U(t.check,o,d,r)),l-=d,r+=d,c)break t}else t.head&&(t.head.comment=null);t.mode=16188;case 16188:if(512&t.flags){for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(4&t.wrap&&n!==(65535&t.check)){e.msg="header crc mismatch",t.mode=R;break}n=0,a=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=D;break;case 16189:for(;a<32;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}e.adler=t.check=ct(n),n=0,a=0,t.mode=G;case G:if(t.havedict===0)return e.next_out=h,e.avail_out=p,e.next_in=r,e.avail_in=l,t.hold=n,t.bits=a,Ct;e.adler=t.check=1,t.mode=D;case D:if(i===Bt||i===P)break t;case $:if(t.last){n>>>=7&a,a-=7&a,t.mode=et;break}for(;a<3;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}switch(t.last=1&n,n>>>=1,a-=1,3&n){case 0:t.mode=16193;break;case 1:if(Ft(t),t.mode=X,i===P){n>>>=2,a-=2;break t}break;case 2:t.mode=16196;break;case 3:e.msg="invalid block type",t.mode=R}n>>>=2,a-=2;break;case 16193:for(n>>>=7&a,a-=7&a;a<32;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if((65535&n)!=(n>>>16^65535)){e.msg="invalid stored block lengths",t.mode=R;break}if(t.length=65535&n,n=0,a=0,t.mode=tt,i===P)break t;case tt:t.mode=16195;case 16195:if(d=t.length,d){if(d>l&&(d=l),d>p&&(d=p),d===0)break t;s.set(o.subarray(r,r+d),h),l-=d,r+=d,p-=d,h+=d,t.length-=d;break}t.mode=D;break;case 16196:for(;a<14;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(t.nlen=257+(31&n),n>>>=5,a-=5,t.ndist=1+(31&n),n>>>=5,a-=5,t.ncode=4+(15&n),n>>>=4,a-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=R;break}t.have=0,t.mode=16197;case 16197:for(;t.have<t.ncode;){for(;a<3;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.lens[H[t.have++]]=7&n,n>>>=3,a-=3}for(;t.have<19;)t.lens[H[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,_={bits:t.lenbits},x=z(0,t.lens,0,19,t.lencode,0,t.work,_),t.lenbits=_.bits,x){e.msg="invalid code lengths set",t.mode=R;break}t.have=0,t.mode=16198;case 16198:for(;t.have<t.nlen+t.ndist;){for(;m=t.lencode[n&(1<<t.lenbits)-1],u=m>>>24,y=m>>>16&255,k=65535&m,!(u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(k<16)n>>>=u,a-=u,t.lens[t.have++]=k;else{if(k===16){for(S=u+2;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(n>>>=u,a-=u,t.have===0){e.msg="invalid bit length repeat",t.mode=R;break}c=t.lens[t.have-1],d=3+(3&n),n>>>=2,a-=2}else if(k===17){for(S=u+3;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}n>>>=u,a-=u,c=0,d=3+(7&n),n>>>=3,a-=3}else{for(S=u+7;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}n>>>=u,a-=u,c=0,d=11+(127&n),n>>>=7,a-=7}if(t.have+d>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=R;break}for(;d--;)t.lens[t.have++]=c}}if(t.mode===R)break;if(t.lens[256]===0){e.msg="invalid code -- missing end-of-block",t.mode=R;break}if(t.lenbits=9,_={bits:t.lenbits},x=z(1,t.lens,0,t.nlen,t.lencode,0,t.work,_),t.lenbits=_.bits,x){e.msg="invalid literal/lengths set",t.mode=R;break}if(t.distbits=6,t.distcode=t.distdyn,_={bits:t.distbits},x=z(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,_),t.distbits=_.bits,x){e.msg="invalid distances set",t.mode=R;break}if(t.mode=X,i===P)break t;case X:t.mode=W;case W:if(l>=6&&p>=258){e.next_out=h,e.avail_out=p,e.next_in=r,e.avail_in=l,t.hold=n,t.bits=a,St(e,w),h=e.next_out,s=e.output,p=e.avail_out,r=e.next_in,o=e.input,l=e.avail_in,n=t.hold,a=t.bits,t.mode===D&&(t.back=-1);break}for(t.back=0;m=t.lencode[n&(1<<t.lenbits)-1],u=m>>>24,y=m>>>16&255,k=65535&m,!(u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(y&&!(240&y)){for(f=u,g=y,E=k;m=t.lencode[E+((n&(1<<f+g)-1)>>f)],u=m>>>24,y=m>>>16&255,k=65535&m,!(f+u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}n>>>=f,a-=f,t.back+=f}if(n>>>=u,a-=u,t.back+=u,t.length=k,y===0){t.mode=16205;break}if(32&y){t.back=-1,t.mode=D;break}if(64&y){e.msg="invalid literal/length code",t.mode=R;break}t.extra=15&y,t.mode=16201;case 16201:if(t.extra){for(S=t.extra;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.length+=n&(1<<t.extra)-1,n>>>=t.extra,a-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=16202;case 16202:for(;m=t.distcode[n&(1<<t.distbits)-1],u=m>>>24,y=m>>>16&255,k=65535&m,!(u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(!(240&y)){for(f=u,g=y,E=k;m=t.distcode[E+((n&(1<<f+g)-1)>>f)],u=m>>>24,y=m>>>16&255,k=65535&m,!(f+u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}n>>>=f,a-=f,t.back+=f}if(n>>>=u,a-=u,t.back+=u,64&y){e.msg="invalid distance code",t.mode=R;break}t.offset=k,t.extra=15&y,t.mode=16203;case 16203:if(t.extra){for(S=t.extra;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.offset+=n&(1<<t.extra)-1,n>>>=t.extra,a-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=R;break}t.mode=16204;case 16204:if(p===0)break t;if(d=w-p,t.offset>d){if(d=t.offset-d,d>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=R;break}d>t.wnext?(d-=t.wnext,Z=t.wsize-d):Z=t.wnext-d,d>t.length&&(d=t.length),v=t.window}else v=s,Z=h-t.offset,d=t.length;d>p&&(d=p),p-=d,t.length-=d;do s[h++]=v[Z++];while(--d);t.length===0&&(t.mode=W);break;case 16205:if(p===0)break t;s[h++]=t.length,p--,t.mode=W;break;case et:if(t.wrap){for(;a<32;){if(l===0)break t;l--,n|=o[r++]<<a,a+=8}if(w-=p,e.total_out+=w,t.total+=w,4&t.wrap&&w&&(e.adler=t.check=t.flags?U(t.check,s,w,h-w):I(t.check,s,w,h-w)),w=p,4&t.wrap&&(t.flags?n:ct(n))!==t.check){e.msg="incorrect data check",t.mode=R;break}n=0,a=0}t.mode=16207;case 16207:if(t.wrap&&t.flags){for(;a<32;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(4&t.wrap&&n!==(4294967295&t.total)){e.msg="incorrect length check",t.mode=R;break}n=0,a=0}t.mode=16208;case 16208:x=It;break t;case R:x=dt;break t;case 16210:return ft;default:return T}return e.next_out=h,e.avail_out=p,e.next_in=r,e.avail_in=l,t.hold=n,t.bits=a,(t.wsize||w!==e.avail_out&&t.mode<R&&(t.mode<et||i!==lt))&&_t(e,e.output,e.next_out,w-e.avail_out),A-=e.avail_in,w-=e.avail_out,e.total_in+=A,e.total_out+=w,t.total+=w,4&t.wrap&&w&&(e.adler=t.check=t.flags?U(t.check,s,w,e.next_out-w):I(t.check,s,w,e.next_out-w)),e.data_type=t.bits+(t.last?64:0)+(t.mode===D?128:0)+(t.mode===X||t.mode===tt?256:0),(A===0&&w===0||i===lt)&&x===C&&(x=Nt),x},inflateEnd:e=>{if(N(e))return T;let i=e.state;return i.window&&(i.window=null),e.state=null,C},inflateGetHeader:(e,i)=>{if(N(e))return T;const t=e.state;return 2&t.wrap?(t.head=i,i.done=!1,C):T},inflateSetDictionary:(e,i)=>{const t=i.length;let o,s,r;return N(e)?T:(o=e.state,o.wrap!==0&&o.mode!==G?T:o.mode===G&&(s=1,s=I(s,i,t,0),s!==o.check)?dt:(r=_t(e,i,t,t),r?(o.mode=16210,ft):(o.havedict=1,C)))},inflateInfo:"pako inflate (from Nodeca project)"};const Lt=(e,i)=>Object.prototype.hasOwnProperty.call(e,i);var Mt=function(e){const i=Array.prototype.slice.call(arguments,1);for(;i.length;){const t=i.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(const o in t)Lt(t,o)&&(e[o]=t[o])}}return e},Ht=e=>{let i=0;for(let o=0,s=e.length;o<s;o++)i+=e[o].length;const t=new Uint8Array(i);for(let o=0,s=0,r=e.length;o<r;o++){let h=e[o];t.set(h,s),s+=h.length}return t};let gt=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{gt=!1}const F=new Uint8Array(256);for(let e=0;e<256;e++)F[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;F[254]=F[254]=1;var jt=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let i,t,o,s,r,h=e.length,l=0;for(s=0;s<h;s++)t=e.charCodeAt(s),(64512&t)==55296&&s+1<h&&(o=e.charCodeAt(s+1),(64512&o)==56320&&(t=65536+(t-55296<<10)+(o-56320),s++)),l+=t<128?1:t<2048?2:t<65536?3:4;for(i=new Uint8Array(l),r=0,s=0;r<l;s++)t=e.charCodeAt(s),(64512&t)==55296&&s+1<h&&(o=e.charCodeAt(s+1),(64512&o)==56320&&(t=65536+(t-55296<<10)+(o-56320),s++)),t<128?i[r++]=t:t<2048?(i[r++]=192|t>>>6,i[r++]=128|63&t):t<65536?(i[r++]=224|t>>>12,i[r++]=128|t>>>6&63,i[r++]=128|63&t):(i[r++]=240|t>>>18,i[r++]=128|t>>>12&63,i[r++]=128|t>>>6&63,i[r++]=128|63&t);return i},Kt=(e,i)=>{const t=i||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,i));let o,s;const r=new Array(2*t);for(s=0,o=0;o<t;){let h=e[o++];if(h<128){r[s++]=h;continue}let l=F[h];if(l>4)r[s++]=65533,o+=l-1;else{for(h&=l===2?31:l===3?15:7;l>1&&o<t;)h=h<<6|63&e[o++],l--;l>1?r[s++]=65533:h<65536?r[s++]=h:(h-=65536,r[s++]=55296|h>>10&1023,r[s++]=56320|1023&h)}}return((h,l)=>{if(l<65534&&h.subarray&>)return String.fromCharCode.apply(null,h.length===l?h:h.subarray(0,l));let p="";for(let n=0;n<l;n++)p+=String.fromCharCode(h[n]);return p})(r,s)},Pt=(e,i)=>{(i=i||e.length)>e.length&&(i=e.length);let t=i-1;for(;t>=0&&(192&e[t])==128;)t--;return t<0||t===0?i:t+F[e[t]]>i?t:i},at={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Yt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Gt=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const pt=Object.prototype.toString,{Z_NO_FLUSH:Xt,Z_FINISH:Wt,Z_OK:L,Z_STREAM_END:rt,Z_NEED_DICT:ot,Z_STREAM_ERROR:qt,Z_DATA_ERROR:vt,Z_MEM_ERROR:Jt}=V;function M(e){this.options=Mt({chunkSize:65536,windowBits:15,to:""},e||{});const i=this.options;i.raw&&i.windowBits>=0&&i.windowBits<16&&(i.windowBits=-i.windowBits,i.windowBits===0&&(i.windowBits=-15)),!(i.windowBits>=0&&i.windowBits<16)||e&&e.windowBits||(i.windowBits+=32),i.windowBits>15&&i.windowBits<48&&!(15&i.windowBits)&&(i.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Yt,this.strm.avail_out=0;let t=B.inflateInit2(this.strm,i.windowBits);if(t!==L)throw new Error(at[t]);if(this.header=new Gt,B.inflateGetHeader(this.strm,this.header),i.dictionary&&(typeof i.dictionary=="string"?i.dictionary=jt(i.dictionary):pt.call(i.dictionary)==="[object ArrayBuffer]"&&(i.dictionary=new Uint8Array(i.dictionary)),i.raw&&(t=B.inflateSetDictionary(this.strm,i.dictionary),t!==L)))throw new Error(at[t])}function st(e,i){const t=new M(i);if(t.push(e),t.err)throw t.msg||at[t.err];return t.result}M.prototype.push=function(e,i){const t=this.strm,o=this.options.chunkSize,s=this.options.dictionary;let r,h,l;if(this.ended)return!1;for(h=i===~~i?i:i===!0?Wt:Xt,pt.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(o),t.next_out=0,t.avail_out=o),r=B.inflate(t,h),r===ot&&s&&(r=B.inflateSetDictionary(t,s),r===L?r=B.inflate(t,h):r===vt&&(r=ot));t.avail_in>0&&r===rt&&t.state.wrap>0&&e[t.next_in]!==0;)B.inflateReset(t),r=B.inflate(t,h);switch(r){case qt:case vt:case ot:case Jt:return this.onEnd(r),this.ended=!0,!1}if(l=t.avail_out,t.next_out&&(t.avail_out===0||r===rt))if(this.options.to==="string"){let p=Pt(t.output,t.next_out),n=t.next_out-p,a=Kt(t.output,p);t.next_out=n,t.avail_out=o-n,n&&t.output.set(t.output.subarray(p,p+n),0),this.onData(a)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(r!==L||l!==0){if(r===rt)return r=B.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(t.avail_in===0)break}}return!0},M.prototype.onData=function(e){this.chunks.push(e)},M.prototype.onEnd=function(e){e===L&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ht(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var xt=M,yt=st,Et=function(e,i){return(i=i||{}).raw=!0,st(e,i)},Rt=st,At=V,Qt={Inflate:xt,inflate:yt,inflateRaw:Et,ungzip:Rt,constants:At};O.Inflate=xt,O.constants=At,O.default=Qt,O.inflate=yt,O.inflateRaw=Et,O.ungzip=Rt,Object.defineProperty(O,"__esModule",{value:!0})}); diff --git a/public/static/Cesium/ThirdParty/Workers/z-worker-pako.js b/public/static/Cesium/ThirdParty/Workers/z-worker-pako.js new file mode 100644 index 0000000..da960cf --- /dev/null +++ b/public/static/Cesium/ThirdParty/Workers/z-worker-pako.js @@ -0,0 +1 @@ +(function(){"use strict";const{Array:G,Object:y,Math:k,Error:m,Uint8Array:p,Uint16Array:ve,Uint32Array:M,Int32Array:ze,DataView:j,TextEncoder:x,crypto:b,postMessage:A}=globalThis,F=[];for(let n=0;256>n;n++){let e=n;for(let t=0;8>t;t++)1&e?e=e>>>1^3988292384:e>>>=1;F[n]=e}class R{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let s=0,a=0|e.length;a>s;s++)t=t>>>8^F[255&(t^e[s])];this.crc=t}get(){return~this.crc}}const u={concat(n,e){if(n.length===0||e.length===0)return n.concat(e);const t=n[n.length-1],s=u.getPartial(t);return s===32?n.concat(e):u._shiftRight(e,s,0|t,n.slice(0,n.length-1))},bitLength(n){const e=n.length;if(e===0)return 0;const t=n[e-1];return 32*(e-1)+u.getPartial(t)},clamp(n,e){if(32*n.length<e)return n;const t=(n=n.slice(0,k.ceil(e/32))).length;return e&=31,t>0&&e&&(n[t-1]=u.partial(e,n[t-1]&2147483648>>e-1,1)),n},partial:(n,e,t)=>n===32?e:(t?0|e:e<<32-n)+1099511627776*n,getPartial:n=>k.round(n/1099511627776)||32,_shiftRight(n,e,t,s){for(s===void 0&&(s=[]);e>=32;e-=32)s.push(t),t=0;if(e===0)return s.concat(n);for(let i=0;i<n.length;i++)s.push(t|n[i]>>>e),t=n[i]<<32-e;const a=n.length?n[n.length-1]:0,r=u.getPartial(a);return s.push(u.partial(e+r&31,e+r>32?t:s.pop(),1)),s}},W={bytes:{fromBits(n){const e=u.bitLength(n)/8,t=new p(e);let s;for(let a=0;e>a;a++)!(3&a)&&(s=n[a/4]),t[a]=s>>>24,s<<=8;return t},toBits(n){const e=[];let t,s=0;for(t=0;t<n.length;t++)s=s<<8|n[t],(3&t)==3&&(e.push(s),s=0);return 3&t&&e.push(u.partial(8*(3&t),s)),e}}},O={sha1:function(n){n?(this._h=n._h.slice(0),this._buffer=n._buffer.slice(0),this._length=n._length):this.reset()}};O.sha1.prototype={blockSize:512,reset:function(){const n=this;return n._h=this._init.slice(0),n._buffer=[],n._length=0,n},update:function(n){const e=this;typeof n=="string"&&(n=W.utf8String.toBits(n));const t=e._buffer=u.concat(e._buffer,n),s=e._length,a=e._length=s+u.bitLength(n);if(a>9007199254740991)throw new m("Cannot hash more than 2^53 - 1 bits");const r=new M(t);let i=0;for(let c=e.blockSize+s-(e.blockSize+s&e.blockSize-1);a>=c;c+=e.blockSize)e._block(r.subarray(16*i,16*(i+1))),i+=1;return t.splice(0,16*i),e},finalize:function(){const n=this;let e=n._buffer;const t=n._h;e=u.concat(e,[u.partial(1,1)]);for(let s=e.length+2;15&s;s++)e.push(0);for(e.push(k.floor(n._length/4294967296)),e.push(0|n._length);e.length;)n._block(e.splice(0,16));return n.reset(),t},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:(n,e,t,s)=>n>19?n>39?n>59?n>79?void 0:e^t^s:e&t|e&s|t&s:e^t^s:e&t|~e&s,_S:(n,e)=>e<<n|e>>>32-n,_block:function(n){const e=this,t=e._h,s=G(80);for(let o=0;16>o;o++)s[o]=n[o];let a=t[0],r=t[1],i=t[2],c=t[3],l=t[4];for(let o=0;79>=o;o++){16>o||(s[o]=e._S(1,s[o-3]^s[o-8]^s[o-14]^s[o-16]));const h=e._S(5,a)+e._f(o,r,i,c)+l+s[o]+e._key[k.floor(o/20)]|0;l=c,c=i,i=e._S(30,r),r=a,a=h}t[0]=t[0]+a|0,t[1]=t[1]+r|0,t[2]=t[2]+i|0,t[3]=t[3]+c|0,t[4]=t[4]+l|0}};const de={getRandomValues(n){const e=new M(n.buffer),t=s=>{let a=987654321;const r=4294967295;return()=>(a=36969*(65535&a)+(a>>16)&r,(((a<<16)+(s=18e3*(65535&s)+(s>>16)&r)&r)/4294967296+.5)*(k.random()>.5?1:-1))};for(let s,a=0;a<n.length;a+=4){const r=t(4294967296*(s||k.random()));s=987654071*r(),e[a/4]=4294967296*r()|0}return n}},T={importKey:n=>new T.hmacSha1(W.bytes.toBits(n)),pbkdf2(n,e,t,s){if(t=t||1e4,0>s||0>t)throw new m("invalid params to pbkdf2");const a=1+(s>>5)<<2;let r,i,c,l,o;const h=new ArrayBuffer(a),d=new j(h);let w=0;const z=u;for(e=W.bytes.toBits(e),o=1;(a||1)>w;o++){for(r=i=n.encrypt(z.concat(e,[o])),c=1;t>c;c++)for(i=n.encrypt(i),l=0;l<i.length;l++)r[l]^=i[l];for(c=0;(a||1)>w&&c<r.length;c++)d.setInt32(w,r[c]),w+=4}return h.slice(0,s/8)},hmacSha1:class{constructor(n){const e=this,t=e._hash=O.sha1,s=[[],[]],a=t.prototype.blockSize/32;e._baseHash=[new t,new t],n.length>a&&(n=t.hash(n));for(let r=0;a>r;r++)s[0][r]=909522486^n[r],s[1][r]=1549556828^n[r];e._baseHash[0].update(s[0]),e._baseHash[1].update(s[1]),e._resultHash=new t(e._baseHash[0])}reset(){const n=this;n._resultHash=new n._hash(n._baseHash[0]),n._updated=!1}update(n){this._updated=!0,this._resultHash.update(n)}digest(){const n=this,e=n._resultHash.finalize(),t=new n._hash(n._baseHash[1]).update(e).finalize();return n.reset(),t}encrypt(n){if(this._updated)throw new m("encrypt on already updated hmac called!");return this.update(n),this.digest(n)}}},q="Invalid pasword",D=16,J={name:"PBKDF2"},ue=y.assign({hash:{name:"HMAC"}},J),N=y.assign({iterations:1e3,hash:{name:"SHA-1"}},J),fe=["deriveBits"],H=[8,12,16],K=[16,24,32],v=10,Q=[0,0,0,0],U=b!==void 0,X=U&&b.subtle!==void 0,_=W.bytes,Y=class{constructor(n){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const t=e._tables[0][4],s=e._tables[1],a=n.length;let r,i,c,l=1;if(a!==4&&a!==6&&a!==8)throw new m("invalid aes key size");for(e._key=[i=n.slice(0),c=[]],r=a;4*a+28>r;r++){let o=i[r-1];(r%a==0||a===8&&r%a==4)&&(o=t[o>>>24]<<24^t[o>>16&255]<<16^t[o>>8&255]<<8^t[255&o],r%a==0&&(o=o<<8^o>>>24^l<<24,l=l<<1^283*(l>>7))),i[r]=i[r-a]^o}for(let o=0;r;o++,r--){const h=i[3&o?r:r-4];c[o]=4>=r||4>o?h:s[0][t[h>>>24]]^s[1][t[h>>16&255]]^s[2][t[h>>8&255]]^s[3][t[255&h]]}}encrypt(n){return this._crypt(n,0)}decrypt(n){return this._crypt(n,1)}_precompute(){const n=this._tables[0],e=this._tables[1],t=n[4],s=e[4],a=[],r=[];let i,c,l,o;for(let h=0;256>h;h++)r[(a[h]=h<<1^283*(h>>7))^h]=h;for(let h=i=0;!t[h];h^=c||1,i=r[i]||1){let d=i^i<<1^i<<2^i<<3^i<<4;d=d>>8^255&d^99,t[h]=d,s[d]=h,o=a[l=a[c=a[h]]];let w=16843009*o^65537*l^257*c^16843008*h,z=257*a[d]^16843008*d;for(let g=0;4>g;g++)n[g][h]=z=z<<24^z>>>8,e[g][d]=w=w<<24^w>>>8}for(let h=0;5>h;h++)n[h]=n[h].slice(0),e[h]=e[h].slice(0)}_crypt(n,e){if(n.length!==4)throw new m("invalid aes block size");const t=this._key[e],s=t.length/4-2,a=[0,0,0,0],r=this._tables[e],i=r[0],c=r[1],l=r[2],o=r[3],h=r[4];let d,w,z,g=n[0]^t[0],C=n[e?3:1]^t[1],S=n[2]^t[2],B=n[e?1:3]^t[3],V=4;for(let I=0;s>I;I++)d=i[g>>>24]^c[C>>16&255]^l[S>>8&255]^o[255&B]^t[V],w=i[C>>>24]^c[S>>16&255]^l[B>>8&255]^o[255&g]^t[V+1],z=i[S>>>24]^c[B>>16&255]^l[g>>8&255]^o[255&C]^t[V+2],B=i[B>>>24]^c[g>>16&255]^l[C>>8&255]^o[255&S]^t[V+3],V+=4,g=d,C=w,S=z;for(let I=0;4>I;I++)a[e?3&-I:I]=h[g>>>24]<<24^h[C>>16&255]<<16^h[S>>8&255]<<8^h[255&B]^t[V++],d=g,g=C,C=S,S=B,B=d;return a}},Z=class{constructor(n,e){this._prf=n,this._initIv=e,this._iv=e}reset(){this._iv=this._initIv}update(n){return this.calculate(this._prf,n,this._iv)}incWord(n){if((n>>24&255)==255){let e=n>>16&255,t=n>>8&255,s=255&n;e===255?(e=0,t===255?(t=0,s===255?s=0:++s):++t):++e,n=0,n+=e<<16,n+=t<<8,n+=s}else n+=1<<24;return n}incCounter(n){(n[0]=this.incWord(n[0]))===0&&(n[1]=this.incWord(n[1]))}calculate(n,e,t){let s;if(!(s=e.length))return[];const a=u.bitLength(e);for(let r=0;s>r;r+=4){this.incCounter(t);const i=n.encrypt(t);e[r]^=i[0],e[r+1]^=i[1],e[r+2]^=i[2],e[r+3]^=i[3]}return u.clamp(e,a)}},$=T.hmacSha1;class ge{constructor(e,t,s){y.assign(this,{password:e,signed:t,strength:s-1,pendingInput:new p(0)})}async append(e){const t=this;if(t.password){const s=f(e,0,H[t.strength]+2);await(async(a,r,i)=>{await te(a,i,f(r,0,H[a.strength]));const c=f(r,H[a.strength]),l=a.keys.passwordVerification;if(l[0]!=c[0]||l[1]!=c[1])throw new m(q)})(t,s,t.password),t.password=null,t.aesCtrGladman=new Z(new Y(t.keys.key),G.from(Q)),t.hmac=new $(t.keys.authentication),e=f(e,H[t.strength]+2)}return ee(t,e,new p(e.length-v-(e.length-v)%D),0,v,!0)}flush(){const e=this,t=e.pendingInput,s=f(t,0,t.length-v),a=f(t,t.length-v);let r=new p(0);if(s.length){const c=_.toBits(s);e.hmac.update(c);const l=e.aesCtrGladman.update(c);r=_.fromBits(l)}let i=!0;if(e.signed){const c=f(_.fromBits(e.hmac.digest()),0,v);for(let l=0;v>l;l++)c[l]!=a[l]&&(i=!1)}return{valid:i,data:r}}}class we{constructor(e,t){y.assign(this,{password:e,strength:t-1,pendingInput:new p(0)})}async append(e){const t=this;let s=new p(0);t.password&&(s=await(async(r,i)=>{const c=(l=new p(H[r.strength]),U&&typeof b.getRandomValues=="function"?b.getRandomValues(l):de.getRandomValues(l));var l;return await te(r,i,c),L(c,r.keys.passwordVerification)})(t,t.password),t.password=null,t.aesCtrGladman=new Z(new Y(t.keys.key),G.from(Q)),t.hmac=new $(t.keys.authentication));const a=new p(s.length+e.length-e.length%D);return a.set(s,0),ee(t,e,a,s.length,0)}flush(){const e=this;let t=new p(0);if(e.pendingInput.length){const a=e.aesCtrGladman.update(_.toBits(e.pendingInput));e.hmac.update(a),t=_.fromBits(a)}const s=f(_.fromBits(e.hmac.digest()),0,v);return{data:L(t,s),signature:s}}}function ee(n,e,t,s,a,r){const i=e.length-a;let c;for(n.pendingInput.length&&(e=L(n.pendingInput,e),t=((l,o)=>{if(o&&o>l.length){const h=l;(l=new p(o)).set(h,0)}return l})(t,i-i%D)),c=0;i-D>=c;c+=D){const l=_.toBits(f(e,c,c+D));r&&n.hmac.update(l);const o=n.aesCtrGladman.update(l);r||n.hmac.update(o),t.set(_.fromBits(o),c+s)}return n.pendingInput=f(e,c),t}async function te(n,e,t){const s=(c=>{if(x===void 0){const l=new p((c=unescape(encodeURIComponent(c))).length);for(let o=0;o<l.length;o++)l[o]=c.charCodeAt(o);return l}return new x().encode(c)})(e),a=await((c,l,o,h,d)=>U&&X&&typeof b.subtle.importKey=="function"?b.subtle.importKey("raw",l,o,!1,d):T.importKey(l))(0,s,ue,0,fe),r=await(async(c,l,o)=>U&&X&&typeof b.subtle.deriveBits=="function"?await b.subtle.deriveBits(c,l,o):T.pbkdf2(l,c.salt,N.iterations,o))(y.assign({salt:t},N),a,8*(2*K[n.strength]+2)),i=new p(r);n.keys={key:_.toBits(f(i,0,K[n.strength])),authentication:_.toBits(f(i,K[n.strength],2*K[n.strength])),passwordVerification:f(i,2*K[n.strength])}}function L(n,e){let t=n;return n.length+e.length&&(t=new p(n.length+e.length),t.set(n,0),t.set(e,n.length)),t}function f(n,e,t){return n.subarray(e,t)}class ye{constructor(e,t){y.assign(this,{password:e,passwordVerification:t}),ae(this,e)}append(e){const t=this;if(t.password){const s=ne(t,e.subarray(0,12));if(t.password=null,s[11]!=t.passwordVerification)throw new m(q);e=e.subarray(12)}return ne(t,e)}flush(){return{valid:!0,data:new p(0)}}}class _e{constructor(e,t){y.assign(this,{password:e,passwordVerification:t}),ae(this,e)}append(e){const t=this;let s,a;if(t.password){t.password=null;const r=b.getRandomValues(new p(12));r[11]=t.passwordVerification,s=new p(e.length+r.length),s.set(se(t,r),0),a=12}else s=new p(e.length),a=0;return s.set(se(t,e),a),s}flush(){return{data:new p(0)}}}function ne(n,e){const t=new p(e.length);for(let s=0;s<e.length;s++)t[s]=re(n)^e[s],P(n,t[s]);return t}function se(n,e){const t=new p(e.length);for(let s=0;s<e.length;s++)t[s]=re(n)^e[s],P(n,e[s]);return t}function ae(n,e){n.keys=[305419896,591751049,878082192],n.crcKey0=new R(n.keys[0]),n.crcKey2=new R(n.keys[2]);for(let t=0;t<e.length;t++)P(n,e.charCodeAt(t))}function P(n,e){n.crcKey0.append([e]),n.keys[0]=~n.crcKey0.get(),n.keys[1]=ce(n.keys[1]+ie(n.keys[0])),n.keys[1]=ce(k.imul(n.keys[1],134775813)+1),n.crcKey2.append([n.keys[1]>>>24]),n.keys[2]=~n.crcKey2.get()}function re(n){const e=2|n.keys[2];return ie(k.imul(e,1^e)>>>8)}function ie(n){return 255&n}function ce(n){return 4294967295&n}const oe="deflate",le="inflate",he="Invalid signature";class me{constructor(e,{signature:t,password:s,signed:a,compressed:r,zipCrypto:i,passwordVerification:c,encryptionStrength:l},{chunkSize:o}){const h=!!s;y.assign(this,{signature:t,encrypted:h,signed:a,compressed:r,inflate:r&&new e({chunkSize:o}),crc32:a&&new R,zipCrypto:i,decrypt:h&&i?new ye(s,c):new ge(s,a,l)})}async append(e){const t=this;return t.encrypted&&e.length&&(e=await t.decrypt.append(e)),t.compressed&&e.length&&(e=await t.inflate.append(e)),(!t.encrypted||t.zipCrypto)&&t.signed&&e.length&&t.crc32.append(e),e}async flush(){const e=this;let t,s=new p(0);if(e.encrypted){const a=e.decrypt.flush();if(!a.valid)throw new m(he);s=a.data}if((!e.encrypted||e.zipCrypto)&&e.signed){const a=new j(new p(4).buffer);if(t=e.crc32.get(),a.setUint32(0,t),e.signature!=a.getUint32(0,!1))throw new m(he)}return e.compressed&&(s=await e.inflate.append(s)||new p(0),await e.inflate.flush()),{data:s,signature:t}}}class be{constructor(e,{encrypted:t,signed:s,compressed:a,level:r,zipCrypto:i,password:c,passwordVerification:l,encryptionStrength:o},{chunkSize:h}){y.assign(this,{encrypted:t,signed:s,compressed:a,deflate:a&&new e({level:r||5,chunkSize:h}),crc32:s&&new R,zipCrypto:i,encrypt:t&&i?new _e(c,l):new we(c,o)})}async append(e){const t=this;let s=e;return t.compressed&&e.length&&(s=await t.deflate.append(e)),t.encrypted&&s.length&&(s=await t.encrypt.append(s)),(!t.encrypted||t.zipCrypto)&&t.signed&&e.length&&t.crc32.append(e),s}async flush(){const e=this;let t,s=new p(0);if(e.compressed&&(s=await e.deflate.flush()||new p(0)),e.encrypted){s=await e.encrypt.append(s);const a=e.encrypt.flush();t=a.signature;const r=new p(s.length+a.data.length);r.set(s,0),r.set(a.data,s.length),s=r}return e.encrypted&&!e.zipCrypto||!e.signed||(t=e.crc32.get()),{data:s,signature:t}}}const ke={init(n){n.scripts&&n.scripts.length&&importScripts.apply(void 0,n.scripts);const e=n.options;let t;self.initCodec&&self.initCodec(),e.codecType.startsWith(oe)?t=self.Deflate:e.codecType.startsWith(le)&&(t=self.Inflate),E=((s,a,r)=>a.codecType.startsWith(oe)?new be(s,a,r):a.codecType.startsWith(le)?new me(s,a,r):void 0)(t,e,n.config)},append:async n=>({data:await E.append(n.data)}),flush:()=>E.flush()};let E;function pe(n,e,t){return class{constructor(a){const r=this;r.codec=new n(y.assign({},e,a)),t(r.codec,i=>{if(r.pendingData){const c=r.pendingData;r.pendingData=new p(c.length+i.length),r.pendingData.set(c,0),r.pendingData.set(i,c.length)}else r.pendingData=new p(i)})}append(a){return this.codec.push(a),s(this)}flush(){return this.codec.push(new p(0),!0),s(this)}};function s(a){if(a.pendingData){const r=a.pendingData;return a.pendingData=null,r}return new p(0)}}addEventListener("message",async n=>{const e=n.data,t=e.type,s=ke[t];if(s)try{e.data&&(e.data=new p(e.data));const a=await s(e)||{};if(a.type=t,a.data)try{a.data=a.data.buffer,A(a,[a.data])}catch{A(a)}else A(a)}catch(a){A({type:t,error:{message:a.message,stack:a.stack}})}}),self.initCodec=()=>{const{Deflate:n,Inflate:e}=((t,s={},a)=>({Deflate:pe(t.Deflate,s.deflate,a),Inflate:pe(t.Inflate,s.inflate,a)}))(pako,{deflate:{raw:!0},inflate:{raw:!0}},(t,s)=>t.onData=s);self.Deflate=n,self.Inflate=e}})(); diff --git a/public/static/Cesium/ThirdParty/basis_transcoder.wasm b/public/static/Cesium/ThirdParty/basis_transcoder.wasm new file mode 100644 index 0000000..7132858 Binary files /dev/null and b/public/static/Cesium/ThirdParty/basis_transcoder.wasm differ diff --git a/public/static/Cesium/ThirdParty/draco_decoder.wasm b/public/static/Cesium/ThirdParty/draco_decoder.wasm new file mode 100644 index 0000000..e5a5e06 Binary files /dev/null and b/public/static/Cesium/ThirdParty/draco_decoder.wasm differ diff --git a/public/static/Cesium/ThirdParty/google-earth-dbroot-parser.js b/public/static/Cesium/ThirdParty/google-earth-dbroot-parser.js new file mode 100644 index 0000000..648bf66 --- /dev/null +++ b/public/static/Cesium/ThirdParty/google-earth-dbroot-parser.js @@ -0,0 +1 @@ +(()=>{window.cesiumGoogleEarthDbRootParser=function(d){"use strict";var f=d.Reader,u=d.util,n=d.roots.default||(d.roots.default={});return n.keyhole=function(){var b={};return b.dbroot=function(){var c={};return c.StringEntryProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.stringId=0,i.prototype.stringValue="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StringEntryProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.stringId=r.fixed32();break}case 2:{o.stringValue=r.string();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("stringId"))throw u.ProtocolError("missing required 'stringId'",{instance:o});if(!o.hasOwnProperty("stringValue"))throw u.ProtocolError("missing required 'stringValue'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isInteger(r.stringId)?u.isString(r.stringValue)?null:"stringValue: string expected":"stringId: integer expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StringEntryProto)return r;var t=new n.keyhole.dbroot.StringEntryProto;return r.stringId!=null&&(t.stringId=r.stringId>>>0),r.stringValue!=null&&(t.stringValue=String(r.stringValue)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.stringId=0,e.stringValue=""),r.stringId!=null&&r.hasOwnProperty("stringId")&&(e.stringId=r.stringId),r.stringValue!=null&&r.hasOwnProperty("stringValue")&&(e.stringValue=r.stringValue),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StringEntryProto"},i}(),c.StringIdOrValueProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.stringId=0,i.prototype.value="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StringIdOrValueProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.stringId=r.fixed32();break}case 2:{o.value=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.stringId!=null&&r.hasOwnProperty("stringId")&&!u.isInteger(r.stringId)?"stringId: integer expected":r.value!=null&&r.hasOwnProperty("value")&&!u.isString(r.value)?"value: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StringIdOrValueProto)return r;var t=new n.keyhole.dbroot.StringIdOrValueProto;return r.stringId!=null&&(t.stringId=r.stringId>>>0),r.value!=null&&(t.value=String(r.value)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.stringId=0,e.value=""),r.stringId!=null&&r.hasOwnProperty("stringId")&&(e.stringId=r.stringId),r.value!=null&&r.hasOwnProperty("value")&&(e.value=r.value),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StringIdOrValueProto"},i}(),c.PlanetModelProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.radius=6378.137,i.prototype.flattening=.00335281066474748,i.prototype.elevationBias=0,i.prototype.negativeAltitudeExponentBias=0,i.prototype.compressedNegativeAltitudeThreshold=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PlanetModelProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.radius=r.double();break}case 2:{o.flattening=r.double();break}case 4:{o.elevationBias=r.double();break}case 5:{o.negativeAltitudeExponentBias=r.int32();break}case 6:{o.compressedNegativeAltitudeThreshold=r.double();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.radius!=null&&r.hasOwnProperty("radius")&&typeof r.radius!="number"?"radius: number expected":r.flattening!=null&&r.hasOwnProperty("flattening")&&typeof r.flattening!="number"?"flattening: number expected":r.elevationBias!=null&&r.hasOwnProperty("elevationBias")&&typeof r.elevationBias!="number"?"elevationBias: number expected":r.negativeAltitudeExponentBias!=null&&r.hasOwnProperty("negativeAltitudeExponentBias")&&!u.isInteger(r.negativeAltitudeExponentBias)?"negativeAltitudeExponentBias: integer expected":r.compressedNegativeAltitudeThreshold!=null&&r.hasOwnProperty("compressedNegativeAltitudeThreshold")&&typeof r.compressedNegativeAltitudeThreshold!="number"?"compressedNegativeAltitudeThreshold: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PlanetModelProto)return r;var t=new n.keyhole.dbroot.PlanetModelProto;return r.radius!=null&&(t.radius=Number(r.radius)),r.flattening!=null&&(t.flattening=Number(r.flattening)),r.elevationBias!=null&&(t.elevationBias=Number(r.elevationBias)),r.negativeAltitudeExponentBias!=null&&(t.negativeAltitudeExponentBias=r.negativeAltitudeExponentBias|0),r.compressedNegativeAltitudeThreshold!=null&&(t.compressedNegativeAltitudeThreshold=Number(r.compressedNegativeAltitudeThreshold)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.radius=6378.137,e.flattening=.00335281066474748,e.elevationBias=0,e.negativeAltitudeExponentBias=0,e.compressedNegativeAltitudeThreshold=0),r.radius!=null&&r.hasOwnProperty("radius")&&(e.radius=t.json&&!isFinite(r.radius)?String(r.radius):r.radius),r.flattening!=null&&r.hasOwnProperty("flattening")&&(e.flattening=t.json&&!isFinite(r.flattening)?String(r.flattening):r.flattening),r.elevationBias!=null&&r.hasOwnProperty("elevationBias")&&(e.elevationBias=t.json&&!isFinite(r.elevationBias)?String(r.elevationBias):r.elevationBias),r.negativeAltitudeExponentBias!=null&&r.hasOwnProperty("negativeAltitudeExponentBias")&&(e.negativeAltitudeExponentBias=r.negativeAltitudeExponentBias),r.compressedNegativeAltitudeThreshold!=null&&r.hasOwnProperty("compressedNegativeAltitudeThreshold")&&(e.compressedNegativeAltitudeThreshold=t.json&&!isFinite(r.compressedNegativeAltitudeThreshold)?String(r.compressedNegativeAltitudeThreshold):r.compressedNegativeAltitudeThreshold),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PlanetModelProto"},i}(),c.ProviderInfoProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.providerId=0,i.prototype.copyrightString=null,i.prototype.verticalPixelOffset=-1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ProviderInfoProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.providerId=r.int32();break}case 2:{o.copyrightString=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.verticalPixelOffset=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("providerId"))throw u.ProtocolError("missing required 'providerId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isInteger(r.providerId))return"providerId: integer expected";if(r.copyrightString!=null&&r.hasOwnProperty("copyrightString")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.copyrightString);if(t)return"copyrightString."+t}return r.verticalPixelOffset!=null&&r.hasOwnProperty("verticalPixelOffset")&&!u.isInteger(r.verticalPixelOffset)?"verticalPixelOffset: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ProviderInfoProto)return r;var t=new n.keyhole.dbroot.ProviderInfoProto;if(r.providerId!=null&&(t.providerId=r.providerId|0),r.copyrightString!=null){if(typeof r.copyrightString!="object")throw TypeError(".keyhole.dbroot.ProviderInfoProto.copyrightString: object expected");t.copyrightString=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.copyrightString)}return r.verticalPixelOffset!=null&&(t.verticalPixelOffset=r.verticalPixelOffset|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.providerId=0,e.copyrightString=null,e.verticalPixelOffset=-1),r.providerId!=null&&r.hasOwnProperty("providerId")&&(e.providerId=r.providerId),r.copyrightString!=null&&r.hasOwnProperty("copyrightString")&&(e.copyrightString=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.copyrightString,t)),r.verticalPixelOffset!=null&&r.hasOwnProperty("verticalPixelOffset")&&(e.verticalPixelOffset=r.verticalPixelOffset),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ProviderInfoProto"},i}(),c.PopUpProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.isBalloonStyle=!1,i.prototype.text=null,i.prototype.backgroundColorAbgr=4294967295,i.prototype.textColorAbgr=4278190080,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PopUpProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.isBalloonStyle=r.bool();break}case 2:{o.text=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.backgroundColorAbgr=r.fixed32();break}case 4:{o.textColorAbgr=r.fixed32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.isBalloonStyle!=null&&r.hasOwnProperty("isBalloonStyle")&&typeof r.isBalloonStyle!="boolean")return"isBalloonStyle: boolean expected";if(r.text!=null&&r.hasOwnProperty("text")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.text);if(t)return"text."+t}return r.backgroundColorAbgr!=null&&r.hasOwnProperty("backgroundColorAbgr")&&!u.isInteger(r.backgroundColorAbgr)?"backgroundColorAbgr: integer expected":r.textColorAbgr!=null&&r.hasOwnProperty("textColorAbgr")&&!u.isInteger(r.textColorAbgr)?"textColorAbgr: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PopUpProto)return r;var t=new n.keyhole.dbroot.PopUpProto;if(r.isBalloonStyle!=null&&(t.isBalloonStyle=!!r.isBalloonStyle),r.text!=null){if(typeof r.text!="object")throw TypeError(".keyhole.dbroot.PopUpProto.text: object expected");t.text=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.text)}return r.backgroundColorAbgr!=null&&(t.backgroundColorAbgr=r.backgroundColorAbgr>>>0),r.textColorAbgr!=null&&(t.textColorAbgr=r.textColorAbgr>>>0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.isBalloonStyle=!1,e.text=null,e.backgroundColorAbgr=4294967295,e.textColorAbgr=4278190080),r.isBalloonStyle!=null&&r.hasOwnProperty("isBalloonStyle")&&(e.isBalloonStyle=r.isBalloonStyle),r.text!=null&&r.hasOwnProperty("text")&&(e.text=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.text,t)),r.backgroundColorAbgr!=null&&r.hasOwnProperty("backgroundColorAbgr")&&(e.backgroundColorAbgr=r.backgroundColorAbgr),r.textColorAbgr!=null&&r.hasOwnProperty("textColorAbgr")&&(e.textColorAbgr=r.textColorAbgr),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PopUpProto"},i}(),c.StyleAttributeProto=function(){function i(l){if(this.drawFlag=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.styleId="",i.prototype.providerId=0,i.prototype.polyColorAbgr=4294967295,i.prototype.lineColorAbgr=4294967295,i.prototype.lineWidth=1,i.prototype.labelColorAbgr=4294967295,i.prototype.labelScale=1,i.prototype.placemarkIconColorAbgr=4294967295,i.prototype.placemarkIconScale=1,i.prototype.placemarkIconPath=null,i.prototype.placemarkIconX=0,i.prototype.placemarkIconY=0,i.prototype.placemarkIconWidth=32,i.prototype.placemarkIconHeight=32,i.prototype.popUp=null,i.prototype.drawFlag=u.emptyArray,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StyleAttributeProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.styleId=r.string();break}case 3:{o.providerId=r.int32();break}case 4:{o.polyColorAbgr=r.fixed32();break}case 5:{o.lineColorAbgr=r.fixed32();break}case 6:{o.lineWidth=r.float();break}case 7:{o.labelColorAbgr=r.fixed32();break}case 8:{o.labelScale=r.float();break}case 9:{o.placemarkIconColorAbgr=r.fixed32();break}case 10:{o.placemarkIconScale=r.float();break}case 11:{o.placemarkIconPath=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 12:{o.placemarkIconX=r.int32();break}case 13:{o.placemarkIconY=r.int32();break}case 14:{o.placemarkIconWidth=r.int32();break}case 15:{o.placemarkIconHeight=r.int32();break}case 16:{o.popUp=n.keyhole.dbroot.PopUpProto.decode(r,r.uint32());break}case 17:{o.drawFlag&&o.drawFlag.length||(o.drawFlag=[]),o.drawFlag.push(n.keyhole.dbroot.DrawFlagProto.decode(r,r.uint32()));break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("styleId"))throw u.ProtocolError("missing required 'styleId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.styleId))return"styleId: string expected";if(r.providerId!=null&&r.hasOwnProperty("providerId")&&!u.isInteger(r.providerId))return"providerId: integer expected";if(r.polyColorAbgr!=null&&r.hasOwnProperty("polyColorAbgr")&&!u.isInteger(r.polyColorAbgr))return"polyColorAbgr: integer expected";if(r.lineColorAbgr!=null&&r.hasOwnProperty("lineColorAbgr")&&!u.isInteger(r.lineColorAbgr))return"lineColorAbgr: integer expected";if(r.lineWidth!=null&&r.hasOwnProperty("lineWidth")&&typeof r.lineWidth!="number")return"lineWidth: number expected";if(r.labelColorAbgr!=null&&r.hasOwnProperty("labelColorAbgr")&&!u.isInteger(r.labelColorAbgr))return"labelColorAbgr: integer expected";if(r.labelScale!=null&&r.hasOwnProperty("labelScale")&&typeof r.labelScale!="number")return"labelScale: number expected";if(r.placemarkIconColorAbgr!=null&&r.hasOwnProperty("placemarkIconColorAbgr")&&!u.isInteger(r.placemarkIconColorAbgr))return"placemarkIconColorAbgr: integer expected";if(r.placemarkIconScale!=null&&r.hasOwnProperty("placemarkIconScale")&&typeof r.placemarkIconScale!="number")return"placemarkIconScale: number expected";if(r.placemarkIconPath!=null&&r.hasOwnProperty("placemarkIconPath")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.placemarkIconPath);if(t)return"placemarkIconPath."+t}if(r.placemarkIconX!=null&&r.hasOwnProperty("placemarkIconX")&&!u.isInteger(r.placemarkIconX))return"placemarkIconX: integer expected";if(r.placemarkIconY!=null&&r.hasOwnProperty("placemarkIconY")&&!u.isInteger(r.placemarkIconY))return"placemarkIconY: integer expected";if(r.placemarkIconWidth!=null&&r.hasOwnProperty("placemarkIconWidth")&&!u.isInteger(r.placemarkIconWidth))return"placemarkIconWidth: integer expected";if(r.placemarkIconHeight!=null&&r.hasOwnProperty("placemarkIconHeight")&&!u.isInteger(r.placemarkIconHeight))return"placemarkIconHeight: integer expected";if(r.popUp!=null&&r.hasOwnProperty("popUp")){var t=n.keyhole.dbroot.PopUpProto.verify(r.popUp);if(t)return"popUp."+t}if(r.drawFlag!=null&&r.hasOwnProperty("drawFlag")){if(!Array.isArray(r.drawFlag))return"drawFlag: array expected";for(var e=0;e<r.drawFlag.length;++e){var t=n.keyhole.dbroot.DrawFlagProto.verify(r.drawFlag[e]);if(t)return"drawFlag."+t}}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StyleAttributeProto)return r;var t=new n.keyhole.dbroot.StyleAttributeProto;if(r.styleId!=null&&(t.styleId=String(r.styleId)),r.providerId!=null&&(t.providerId=r.providerId|0),r.polyColorAbgr!=null&&(t.polyColorAbgr=r.polyColorAbgr>>>0),r.lineColorAbgr!=null&&(t.lineColorAbgr=r.lineColorAbgr>>>0),r.lineWidth!=null&&(t.lineWidth=Number(r.lineWidth)),r.labelColorAbgr!=null&&(t.labelColorAbgr=r.labelColorAbgr>>>0),r.labelScale!=null&&(t.labelScale=Number(r.labelScale)),r.placemarkIconColorAbgr!=null&&(t.placemarkIconColorAbgr=r.placemarkIconColorAbgr>>>0),r.placemarkIconScale!=null&&(t.placemarkIconScale=Number(r.placemarkIconScale)),r.placemarkIconPath!=null){if(typeof r.placemarkIconPath!="object")throw TypeError(".keyhole.dbroot.StyleAttributeProto.placemarkIconPath: object expected");t.placemarkIconPath=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.placemarkIconPath)}if(r.placemarkIconX!=null&&(t.placemarkIconX=r.placemarkIconX|0),r.placemarkIconY!=null&&(t.placemarkIconY=r.placemarkIconY|0),r.placemarkIconWidth!=null&&(t.placemarkIconWidth=r.placemarkIconWidth|0),r.placemarkIconHeight!=null&&(t.placemarkIconHeight=r.placemarkIconHeight|0),r.popUp!=null){if(typeof r.popUp!="object")throw TypeError(".keyhole.dbroot.StyleAttributeProto.popUp: object expected");t.popUp=n.keyhole.dbroot.PopUpProto.fromObject(r.popUp)}if(r.drawFlag){if(!Array.isArray(r.drawFlag))throw TypeError(".keyhole.dbroot.StyleAttributeProto.drawFlag: array expected");t.drawFlag=[];for(var e=0;e<r.drawFlag.length;++e){if(typeof r.drawFlag[e]!="object")throw TypeError(".keyhole.dbroot.StyleAttributeProto.drawFlag: object expected");t.drawFlag[e]=n.keyhole.dbroot.DrawFlagProto.fromObject(r.drawFlag[e])}}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.drawFlag=[]),t.defaults&&(e.styleId="",e.providerId=0,e.polyColorAbgr=4294967295,e.lineColorAbgr=4294967295,e.lineWidth=1,e.labelColorAbgr=4294967295,e.labelScale=1,e.placemarkIconColorAbgr=4294967295,e.placemarkIconScale=1,e.placemarkIconPath=null,e.placemarkIconX=0,e.placemarkIconY=0,e.placemarkIconWidth=32,e.placemarkIconHeight=32,e.popUp=null),r.styleId!=null&&r.hasOwnProperty("styleId")&&(e.styleId=r.styleId),r.providerId!=null&&r.hasOwnProperty("providerId")&&(e.providerId=r.providerId),r.polyColorAbgr!=null&&r.hasOwnProperty("polyColorAbgr")&&(e.polyColorAbgr=r.polyColorAbgr),r.lineColorAbgr!=null&&r.hasOwnProperty("lineColorAbgr")&&(e.lineColorAbgr=r.lineColorAbgr),r.lineWidth!=null&&r.hasOwnProperty("lineWidth")&&(e.lineWidth=t.json&&!isFinite(r.lineWidth)?String(r.lineWidth):r.lineWidth),r.labelColorAbgr!=null&&r.hasOwnProperty("labelColorAbgr")&&(e.labelColorAbgr=r.labelColorAbgr),r.labelScale!=null&&r.hasOwnProperty("labelScale")&&(e.labelScale=t.json&&!isFinite(r.labelScale)?String(r.labelScale):r.labelScale),r.placemarkIconColorAbgr!=null&&r.hasOwnProperty("placemarkIconColorAbgr")&&(e.placemarkIconColorAbgr=r.placemarkIconColorAbgr),r.placemarkIconScale!=null&&r.hasOwnProperty("placemarkIconScale")&&(e.placemarkIconScale=t.json&&!isFinite(r.placemarkIconScale)?String(r.placemarkIconScale):r.placemarkIconScale),r.placemarkIconPath!=null&&r.hasOwnProperty("placemarkIconPath")&&(e.placemarkIconPath=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.placemarkIconPath,t)),r.placemarkIconX!=null&&r.hasOwnProperty("placemarkIconX")&&(e.placemarkIconX=r.placemarkIconX),r.placemarkIconY!=null&&r.hasOwnProperty("placemarkIconY")&&(e.placemarkIconY=r.placemarkIconY),r.placemarkIconWidth!=null&&r.hasOwnProperty("placemarkIconWidth")&&(e.placemarkIconWidth=r.placemarkIconWidth),r.placemarkIconHeight!=null&&r.hasOwnProperty("placemarkIconHeight")&&(e.placemarkIconHeight=r.placemarkIconHeight),r.popUp!=null&&r.hasOwnProperty("popUp")&&(e.popUp=n.keyhole.dbroot.PopUpProto.toObject(r.popUp,t)),r.drawFlag&&r.drawFlag.length){e.drawFlag=[];for(var o=0;o<r.drawFlag.length;++o)e.drawFlag[o]=n.keyhole.dbroot.DrawFlagProto.toObject(r.drawFlag[o],t)}return e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StyleAttributeProto"},i}(),c.StyleMapProto=function(){function i(l){if(this.channelId=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.styleMapId=0,i.prototype.channelId=u.emptyArray,i.prototype.normalStyleAttribute=0,i.prototype.highlightStyleAttribute=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StyleMapProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.styleMapId=r.int32();break}case 2:{if(o.channelId&&o.channelId.length||(o.channelId=[]),(a&7)===2)for(var p=r.uint32()+r.pos;r.pos<p;)o.channelId.push(r.int32());else o.channelId.push(r.int32());break}case 3:{o.normalStyleAttribute=r.int32();break}case 4:{o.highlightStyleAttribute=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("styleMapId"))throw u.ProtocolError("missing required 'styleMapId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isInteger(r.styleMapId))return"styleMapId: integer expected";if(r.channelId!=null&&r.hasOwnProperty("channelId")){if(!Array.isArray(r.channelId))return"channelId: array expected";for(var t=0;t<r.channelId.length;++t)if(!u.isInteger(r.channelId[t]))return"channelId: integer[] expected"}return r.normalStyleAttribute!=null&&r.hasOwnProperty("normalStyleAttribute")&&!u.isInteger(r.normalStyleAttribute)?"normalStyleAttribute: integer expected":r.highlightStyleAttribute!=null&&r.hasOwnProperty("highlightStyleAttribute")&&!u.isInteger(r.highlightStyleAttribute)?"highlightStyleAttribute: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StyleMapProto)return r;var t=new n.keyhole.dbroot.StyleMapProto;if(r.styleMapId!=null&&(t.styleMapId=r.styleMapId|0),r.channelId){if(!Array.isArray(r.channelId))throw TypeError(".keyhole.dbroot.StyleMapProto.channelId: array expected");t.channelId=[];for(var e=0;e<r.channelId.length;++e)t.channelId[e]=r.channelId[e]|0}return r.normalStyleAttribute!=null&&(t.normalStyleAttribute=r.normalStyleAttribute|0),r.highlightStyleAttribute!=null&&(t.highlightStyleAttribute=r.highlightStyleAttribute|0),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.channelId=[]),t.defaults&&(e.styleMapId=0,e.normalStyleAttribute=0,e.highlightStyleAttribute=0),r.styleMapId!=null&&r.hasOwnProperty("styleMapId")&&(e.styleMapId=r.styleMapId),r.channelId&&r.channelId.length){e.channelId=[];for(var o=0;o<r.channelId.length;++o)e.channelId[o]=r.channelId[o]}return r.normalStyleAttribute!=null&&r.hasOwnProperty("normalStyleAttribute")&&(e.normalStyleAttribute=r.normalStyleAttribute),r.highlightStyleAttribute!=null&&r.hasOwnProperty("highlightStyleAttribute")&&(e.highlightStyleAttribute=r.highlightStyleAttribute),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StyleMapProto"},i}(),c.ZoomRangeProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.minZoom=0,i.prototype.maxZoom=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ZoomRangeProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.minZoom=r.int32();break}case 2:{o.maxZoom=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("minZoom"))throw u.ProtocolError("missing required 'minZoom'",{instance:o});if(!o.hasOwnProperty("maxZoom"))throw u.ProtocolError("missing required 'maxZoom'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isInteger(r.minZoom)?u.isInteger(r.maxZoom)?null:"maxZoom: integer expected":"minZoom: integer expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ZoomRangeProto)return r;var t=new n.keyhole.dbroot.ZoomRangeProto;return r.minZoom!=null&&(t.minZoom=r.minZoom|0),r.maxZoom!=null&&(t.maxZoom=r.maxZoom|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.minZoom=0,e.maxZoom=0),r.minZoom!=null&&r.hasOwnProperty("minZoom")&&(e.minZoom=r.minZoom),r.maxZoom!=null&&r.hasOwnProperty("maxZoom")&&(e.maxZoom=r.maxZoom),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ZoomRangeProto"},i}(),c.DrawFlagProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.drawFlagType=1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DrawFlagProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.drawFlagType=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("drawFlagType"))throw u.ProtocolError("missing required 'drawFlagType'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";switch(r.drawFlagType){default:return"drawFlagType: enum value expected";case 1:case 2:case 3:case 4:case 5:break}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DrawFlagProto)return r;var t=new n.keyhole.dbroot.DrawFlagProto;switch(r.drawFlagType){case"TYPE_FILL_ONLY":case 1:t.drawFlagType=1;break;case"TYPE_OUTLINE_ONLY":case 2:t.drawFlagType=2;break;case"TYPE_FILL_AND_OUTLINE":case 3:t.drawFlagType=3;break;case"TYPE_ANTIALIASING":case 4:t.drawFlagType=4;break;case"TYPE_CENTER_LABEL":case 5:t.drawFlagType=5;break}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.drawFlagType=t.enums===String?"TYPE_FILL_ONLY":1),r.drawFlagType!=null&&r.hasOwnProperty("drawFlagType")&&(e.drawFlagType=t.enums===String?n.keyhole.dbroot.DrawFlagProto.DrawFlagType[r.drawFlagType]:r.drawFlagType),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DrawFlagProto"},i.DrawFlagType=function(){var l={},r=Object.create(l);return r[l[1]="TYPE_FILL_ONLY"]=1,r[l[2]="TYPE_OUTLINE_ONLY"]=2,r[l[3]="TYPE_FILL_AND_OUTLINE"]=3,r[l[4]="TYPE_ANTIALIASING"]=4,r[l[5]="TYPE_CENTER_LABEL"]=5,r}(),i}(),c.LayerProto=function(){function i(l){if(this.zoomRange=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.zoomRange=u.emptyArray,i.prototype.preserveTextLevel=30,i.prototype.lodBeginTransition=!1,i.prototype.lodEndTransition=!1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.LayerProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.zoomRange&&o.zoomRange.length||(o.zoomRange=[]),o.zoomRange.push(n.keyhole.dbroot.ZoomRangeProto.decode(r,r.uint32()));break}case 2:{o.preserveTextLevel=r.int32();break}case 4:{o.lodBeginTransition=r.bool();break}case 5:{o.lodEndTransition=r.bool();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.zoomRange!=null&&r.hasOwnProperty("zoomRange")){if(!Array.isArray(r.zoomRange))return"zoomRange: array expected";for(var t=0;t<r.zoomRange.length;++t){var e=n.keyhole.dbroot.ZoomRangeProto.verify(r.zoomRange[t]);if(e)return"zoomRange."+e}}return r.preserveTextLevel!=null&&r.hasOwnProperty("preserveTextLevel")&&!u.isInteger(r.preserveTextLevel)?"preserveTextLevel: integer expected":r.lodBeginTransition!=null&&r.hasOwnProperty("lodBeginTransition")&&typeof r.lodBeginTransition!="boolean"?"lodBeginTransition: boolean expected":r.lodEndTransition!=null&&r.hasOwnProperty("lodEndTransition")&&typeof r.lodEndTransition!="boolean"?"lodEndTransition: boolean expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.LayerProto)return r;var t=new n.keyhole.dbroot.LayerProto;if(r.zoomRange){if(!Array.isArray(r.zoomRange))throw TypeError(".keyhole.dbroot.LayerProto.zoomRange: array expected");t.zoomRange=[];for(var e=0;e<r.zoomRange.length;++e){if(typeof r.zoomRange[e]!="object")throw TypeError(".keyhole.dbroot.LayerProto.zoomRange: object expected");t.zoomRange[e]=n.keyhole.dbroot.ZoomRangeProto.fromObject(r.zoomRange[e])}}return r.preserveTextLevel!=null&&(t.preserveTextLevel=r.preserveTextLevel|0),r.lodBeginTransition!=null&&(t.lodBeginTransition=!!r.lodBeginTransition),r.lodEndTransition!=null&&(t.lodEndTransition=!!r.lodEndTransition),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.zoomRange=[]),t.defaults&&(e.preserveTextLevel=30,e.lodBeginTransition=!1,e.lodEndTransition=!1),r.zoomRange&&r.zoomRange.length){e.zoomRange=[];for(var o=0;o<r.zoomRange.length;++o)e.zoomRange[o]=n.keyhole.dbroot.ZoomRangeProto.toObject(r.zoomRange[o],t)}return r.preserveTextLevel!=null&&r.hasOwnProperty("preserveTextLevel")&&(e.preserveTextLevel=r.preserveTextLevel),r.lodBeginTransition!=null&&r.hasOwnProperty("lodBeginTransition")&&(e.lodBeginTransition=r.lodBeginTransition),r.lodEndTransition!=null&&r.hasOwnProperty("lodEndTransition")&&(e.lodEndTransition=r.lodEndTransition),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.LayerProto"},i}(),c.FolderProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.isExpandable=!0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.FolderProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.isExpandable=r.bool();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.isExpandable!=null&&r.hasOwnProperty("isExpandable")&&typeof r.isExpandable!="boolean"?"isExpandable: boolean expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.FolderProto)return r;var t=new n.keyhole.dbroot.FolderProto;return r.isExpandable!=null&&(t.isExpandable=!!r.isExpandable),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.isExpandable=!0),r.isExpandable!=null&&r.hasOwnProperty("isExpandable")&&(e.isExpandable=r.isExpandable),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.FolderProto"},i}(),c.RequirementProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.requiredVram="",i.prototype.requiredClientVer="",i.prototype.probability="",i.prototype.requiredUserAgent="",i.prototype.requiredClientCapabilities="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.RequirementProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 3:{o.requiredVram=r.string();break}case 4:{o.requiredClientVer=r.string();break}case 5:{o.probability=r.string();break}case 6:{o.requiredUserAgent=r.string();break}case 7:{o.requiredClientCapabilities=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.requiredVram!=null&&r.hasOwnProperty("requiredVram")&&!u.isString(r.requiredVram)?"requiredVram: string expected":r.requiredClientVer!=null&&r.hasOwnProperty("requiredClientVer")&&!u.isString(r.requiredClientVer)?"requiredClientVer: string expected":r.probability!=null&&r.hasOwnProperty("probability")&&!u.isString(r.probability)?"probability: string expected":r.requiredUserAgent!=null&&r.hasOwnProperty("requiredUserAgent")&&!u.isString(r.requiredUserAgent)?"requiredUserAgent: string expected":r.requiredClientCapabilities!=null&&r.hasOwnProperty("requiredClientCapabilities")&&!u.isString(r.requiredClientCapabilities)?"requiredClientCapabilities: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.RequirementProto)return r;var t=new n.keyhole.dbroot.RequirementProto;return r.requiredVram!=null&&(t.requiredVram=String(r.requiredVram)),r.requiredClientVer!=null&&(t.requiredClientVer=String(r.requiredClientVer)),r.probability!=null&&(t.probability=String(r.probability)),r.requiredUserAgent!=null&&(t.requiredUserAgent=String(r.requiredUserAgent)),r.requiredClientCapabilities!=null&&(t.requiredClientCapabilities=String(r.requiredClientCapabilities)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.requiredVram="",e.requiredClientVer="",e.probability="",e.requiredUserAgent="",e.requiredClientCapabilities=""),r.requiredVram!=null&&r.hasOwnProperty("requiredVram")&&(e.requiredVram=r.requiredVram),r.requiredClientVer!=null&&r.hasOwnProperty("requiredClientVer")&&(e.requiredClientVer=r.requiredClientVer),r.probability!=null&&r.hasOwnProperty("probability")&&(e.probability=r.probability),r.requiredUserAgent!=null&&r.hasOwnProperty("requiredUserAgent")&&(e.requiredUserAgent=r.requiredUserAgent),r.requiredClientCapabilities!=null&&r.hasOwnProperty("requiredClientCapabilities")&&(e.requiredClientCapabilities=r.requiredClientCapabilities),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.RequirementProto"},i}(),c.LookAtProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.longitude=0,i.prototype.latitude=0,i.prototype.range=0,i.prototype.tilt=0,i.prototype.heading=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.LookAtProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.longitude=r.float();break}case 2:{o.latitude=r.float();break}case 3:{o.range=r.float();break}case 4:{o.tilt=r.float();break}case 5:{o.heading=r.float();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("longitude"))throw u.ProtocolError("missing required 'longitude'",{instance:o});if(!o.hasOwnProperty("latitude"))throw u.ProtocolError("missing required 'latitude'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":typeof r.longitude!="number"?"longitude: number expected":typeof r.latitude!="number"?"latitude: number expected":r.range!=null&&r.hasOwnProperty("range")&&typeof r.range!="number"?"range: number expected":r.tilt!=null&&r.hasOwnProperty("tilt")&&typeof r.tilt!="number"?"tilt: number expected":r.heading!=null&&r.hasOwnProperty("heading")&&typeof r.heading!="number"?"heading: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.LookAtProto)return r;var t=new n.keyhole.dbroot.LookAtProto;return r.longitude!=null&&(t.longitude=Number(r.longitude)),r.latitude!=null&&(t.latitude=Number(r.latitude)),r.range!=null&&(t.range=Number(r.range)),r.tilt!=null&&(t.tilt=Number(r.tilt)),r.heading!=null&&(t.heading=Number(r.heading)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.longitude=0,e.latitude=0,e.range=0,e.tilt=0,e.heading=0),r.longitude!=null&&r.hasOwnProperty("longitude")&&(e.longitude=t.json&&!isFinite(r.longitude)?String(r.longitude):r.longitude),r.latitude!=null&&r.hasOwnProperty("latitude")&&(e.latitude=t.json&&!isFinite(r.latitude)?String(r.latitude):r.latitude),r.range!=null&&r.hasOwnProperty("range")&&(e.range=t.json&&!isFinite(r.range)?String(r.range):r.range),r.tilt!=null&&r.hasOwnProperty("tilt")&&(e.tilt=t.json&&!isFinite(r.tilt)?String(r.tilt):r.tilt),r.heading!=null&&r.hasOwnProperty("heading")&&(e.heading=t.json&&!isFinite(r.heading)?String(r.heading):r.heading),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.LookAtProto"},i}(),c.NestedFeatureProto=function(){function i(l){if(this.children=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.featureType=1,i.prototype.kmlUrl=null,i.prototype.databaseUrl="",i.prototype.layer=null,i.prototype.folder=null,i.prototype.requirement=null,i.prototype.channelId=0,i.prototype.displayName=null,i.prototype.isVisible=!0,i.prototype.isEnabled=!0,i.prototype.isChecked=!1,i.prototype.layerMenuIconPath="icons/773_l.png",i.prototype.description=null,i.prototype.lookAt=null,i.prototype.assetUuid="",i.prototype.isSaveLocked=!0,i.prototype.children=u.emptyArray,i.prototype.clientConfigScriptName="",i.prototype.dioramaDataChannelBase=-1,i.prototype.replicaDataChannelBase=-1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.NestedFeatureProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.featureType=r.int32();break}case 2:{o.kmlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 21:{o.databaseUrl=r.string();break}case 3:{o.layer=n.keyhole.dbroot.LayerProto.decode(r,r.uint32());break}case 4:{o.folder=n.keyhole.dbroot.FolderProto.decode(r,r.uint32());break}case 5:{o.requirement=n.keyhole.dbroot.RequirementProto.decode(r,r.uint32());break}case 6:{o.channelId=r.int32();break}case 7:{o.displayName=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 8:{o.isVisible=r.bool();break}case 9:{o.isEnabled=r.bool();break}case 10:{o.isChecked=r.bool();break}case 11:{o.layerMenuIconPath=r.string();break}case 12:{o.description=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 13:{o.lookAt=n.keyhole.dbroot.LookAtProto.decode(r,r.uint32());break}case 15:{o.assetUuid=r.string();break}case 16:{o.isSaveLocked=r.bool();break}case 17:{o.children&&o.children.length||(o.children=[]),o.children.push(n.keyhole.dbroot.NestedFeatureProto.decode(r,r.uint32()));break}case 18:{o.clientConfigScriptName=r.string();break}case 19:{o.dioramaDataChannelBase=r.int32();break}case 20:{o.replicaDataChannelBase=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("channelId"))throw u.ProtocolError("missing required 'channelId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.featureType!=null&&r.hasOwnProperty("featureType"))switch(r.featureType){default:return"featureType: enum value expected";case 1:case 2:case 3:case 4:break}if(r.kmlUrl!=null&&r.hasOwnProperty("kmlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.kmlUrl);if(t)return"kmlUrl."+t}if(r.databaseUrl!=null&&r.hasOwnProperty("databaseUrl")&&!u.isString(r.databaseUrl))return"databaseUrl: string expected";if(r.layer!=null&&r.hasOwnProperty("layer")){var t=n.keyhole.dbroot.LayerProto.verify(r.layer);if(t)return"layer."+t}if(r.folder!=null&&r.hasOwnProperty("folder")){var t=n.keyhole.dbroot.FolderProto.verify(r.folder);if(t)return"folder."+t}if(r.requirement!=null&&r.hasOwnProperty("requirement")){var t=n.keyhole.dbroot.RequirementProto.verify(r.requirement);if(t)return"requirement."+t}if(!u.isInteger(r.channelId))return"channelId: integer expected";if(r.displayName!=null&&r.hasOwnProperty("displayName")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.displayName);if(t)return"displayName."+t}if(r.isVisible!=null&&r.hasOwnProperty("isVisible")&&typeof r.isVisible!="boolean")return"isVisible: boolean expected";if(r.isEnabled!=null&&r.hasOwnProperty("isEnabled")&&typeof r.isEnabled!="boolean")return"isEnabled: boolean expected";if(r.isChecked!=null&&r.hasOwnProperty("isChecked")&&typeof r.isChecked!="boolean")return"isChecked: boolean expected";if(r.layerMenuIconPath!=null&&r.hasOwnProperty("layerMenuIconPath")&&!u.isString(r.layerMenuIconPath))return"layerMenuIconPath: string expected";if(r.description!=null&&r.hasOwnProperty("description")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.description);if(t)return"description."+t}if(r.lookAt!=null&&r.hasOwnProperty("lookAt")){var t=n.keyhole.dbroot.LookAtProto.verify(r.lookAt);if(t)return"lookAt."+t}if(r.assetUuid!=null&&r.hasOwnProperty("assetUuid")&&!u.isString(r.assetUuid))return"assetUuid: string expected";if(r.isSaveLocked!=null&&r.hasOwnProperty("isSaveLocked")&&typeof r.isSaveLocked!="boolean")return"isSaveLocked: boolean expected";if(r.children!=null&&r.hasOwnProperty("children")){if(!Array.isArray(r.children))return"children: array expected";for(var e=0;e<r.children.length;++e){var t=n.keyhole.dbroot.NestedFeatureProto.verify(r.children[e]);if(t)return"children."+t}}return r.clientConfigScriptName!=null&&r.hasOwnProperty("clientConfigScriptName")&&!u.isString(r.clientConfigScriptName)?"clientConfigScriptName: string expected":r.dioramaDataChannelBase!=null&&r.hasOwnProperty("dioramaDataChannelBase")&&!u.isInteger(r.dioramaDataChannelBase)?"dioramaDataChannelBase: integer expected":r.replicaDataChannelBase!=null&&r.hasOwnProperty("replicaDataChannelBase")&&!u.isInteger(r.replicaDataChannelBase)?"replicaDataChannelBase: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.NestedFeatureProto)return r;var t=new n.keyhole.dbroot.NestedFeatureProto;switch(r.featureType){case"TYPE_POINT_Z":case 1:t.featureType=1;break;case"TYPE_POLYGON_Z":case 2:t.featureType=2;break;case"TYPE_LINE_Z":case 3:t.featureType=3;break;case"TYPE_TERRAIN":case 4:t.featureType=4;break}if(r.kmlUrl!=null){if(typeof r.kmlUrl!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.kmlUrl: object expected");t.kmlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.kmlUrl)}if(r.databaseUrl!=null&&(t.databaseUrl=String(r.databaseUrl)),r.layer!=null){if(typeof r.layer!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.layer: object expected");t.layer=n.keyhole.dbroot.LayerProto.fromObject(r.layer)}if(r.folder!=null){if(typeof r.folder!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.folder: object expected");t.folder=n.keyhole.dbroot.FolderProto.fromObject(r.folder)}if(r.requirement!=null){if(typeof r.requirement!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.requirement: object expected");t.requirement=n.keyhole.dbroot.RequirementProto.fromObject(r.requirement)}if(r.channelId!=null&&(t.channelId=r.channelId|0),r.displayName!=null){if(typeof r.displayName!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.displayName: object expected");t.displayName=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.displayName)}if(r.isVisible!=null&&(t.isVisible=!!r.isVisible),r.isEnabled!=null&&(t.isEnabled=!!r.isEnabled),r.isChecked!=null&&(t.isChecked=!!r.isChecked),r.layerMenuIconPath!=null&&(t.layerMenuIconPath=String(r.layerMenuIconPath)),r.description!=null){if(typeof r.description!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.description: object expected");t.description=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.description)}if(r.lookAt!=null){if(typeof r.lookAt!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.lookAt: object expected");t.lookAt=n.keyhole.dbroot.LookAtProto.fromObject(r.lookAt)}if(r.assetUuid!=null&&(t.assetUuid=String(r.assetUuid)),r.isSaveLocked!=null&&(t.isSaveLocked=!!r.isSaveLocked),r.children){if(!Array.isArray(r.children))throw TypeError(".keyhole.dbroot.NestedFeatureProto.children: array expected");t.children=[];for(var e=0;e<r.children.length;++e){if(typeof r.children[e]!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.children: object expected");t.children[e]=n.keyhole.dbroot.NestedFeatureProto.fromObject(r.children[e])}}return r.clientConfigScriptName!=null&&(t.clientConfigScriptName=String(r.clientConfigScriptName)),r.dioramaDataChannelBase!=null&&(t.dioramaDataChannelBase=r.dioramaDataChannelBase|0),r.replicaDataChannelBase!=null&&(t.replicaDataChannelBase=r.replicaDataChannelBase|0),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.children=[]),t.defaults&&(e.featureType=t.enums===String?"TYPE_POINT_Z":1,e.kmlUrl=null,e.layer=null,e.folder=null,e.requirement=null,e.channelId=0,e.displayName=null,e.isVisible=!0,e.isEnabled=!0,e.isChecked=!1,e.layerMenuIconPath="icons/773_l.png",e.description=null,e.lookAt=null,e.assetUuid="",e.isSaveLocked=!0,e.clientConfigScriptName="",e.dioramaDataChannelBase=-1,e.replicaDataChannelBase=-1,e.databaseUrl=""),r.featureType!=null&&r.hasOwnProperty("featureType")&&(e.featureType=t.enums===String?n.keyhole.dbroot.NestedFeatureProto.FeatureType[r.featureType]:r.featureType),r.kmlUrl!=null&&r.hasOwnProperty("kmlUrl")&&(e.kmlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.kmlUrl,t)),r.layer!=null&&r.hasOwnProperty("layer")&&(e.layer=n.keyhole.dbroot.LayerProto.toObject(r.layer,t)),r.folder!=null&&r.hasOwnProperty("folder")&&(e.folder=n.keyhole.dbroot.FolderProto.toObject(r.folder,t)),r.requirement!=null&&r.hasOwnProperty("requirement")&&(e.requirement=n.keyhole.dbroot.RequirementProto.toObject(r.requirement,t)),r.channelId!=null&&r.hasOwnProperty("channelId")&&(e.channelId=r.channelId),r.displayName!=null&&r.hasOwnProperty("displayName")&&(e.displayName=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.displayName,t)),r.isVisible!=null&&r.hasOwnProperty("isVisible")&&(e.isVisible=r.isVisible),r.isEnabled!=null&&r.hasOwnProperty("isEnabled")&&(e.isEnabled=r.isEnabled),r.isChecked!=null&&r.hasOwnProperty("isChecked")&&(e.isChecked=r.isChecked),r.layerMenuIconPath!=null&&r.hasOwnProperty("layerMenuIconPath")&&(e.layerMenuIconPath=r.layerMenuIconPath),r.description!=null&&r.hasOwnProperty("description")&&(e.description=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.description,t)),r.lookAt!=null&&r.hasOwnProperty("lookAt")&&(e.lookAt=n.keyhole.dbroot.LookAtProto.toObject(r.lookAt,t)),r.assetUuid!=null&&r.hasOwnProperty("assetUuid")&&(e.assetUuid=r.assetUuid),r.isSaveLocked!=null&&r.hasOwnProperty("isSaveLocked")&&(e.isSaveLocked=r.isSaveLocked),r.children&&r.children.length){e.children=[];for(var o=0;o<r.children.length;++o)e.children[o]=n.keyhole.dbroot.NestedFeatureProto.toObject(r.children[o],t)}return r.clientConfigScriptName!=null&&r.hasOwnProperty("clientConfigScriptName")&&(e.clientConfigScriptName=r.clientConfigScriptName),r.dioramaDataChannelBase!=null&&r.hasOwnProperty("dioramaDataChannelBase")&&(e.dioramaDataChannelBase=r.dioramaDataChannelBase),r.replicaDataChannelBase!=null&&r.hasOwnProperty("replicaDataChannelBase")&&(e.replicaDataChannelBase=r.replicaDataChannelBase),r.databaseUrl!=null&&r.hasOwnProperty("databaseUrl")&&(e.databaseUrl=r.databaseUrl),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.NestedFeatureProto"},i.FeatureType=function(){var l={},r=Object.create(l);return r[l[1]="TYPE_POINT_Z"]=1,r[l[2]="TYPE_POLYGON_Z"]=2,r[l[3]="TYPE_LINE_Z"]=3,r[l[4]="TYPE_TERRAIN"]=4,r}(),i}(),c.MfeDomainFeaturesProto=function(){function i(l){if(this.supportedFeatures=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.countryCode="",i.prototype.domainName="",i.prototype.supportedFeatures=u.emptyArray,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.MfeDomainFeaturesProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.countryCode=r.string();break}case 2:{o.domainName=r.string();break}case 3:{if(o.supportedFeatures&&o.supportedFeatures.length||(o.supportedFeatures=[]),(a&7)===2)for(var p=r.uint32()+r.pos;r.pos<p;)o.supportedFeatures.push(r.int32());else o.supportedFeatures.push(r.int32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("countryCode"))throw u.ProtocolError("missing required 'countryCode'",{instance:o});if(!o.hasOwnProperty("domainName"))throw u.ProtocolError("missing required 'domainName'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.countryCode))return"countryCode: string expected";if(!u.isString(r.domainName))return"domainName: string expected";if(r.supportedFeatures!=null&&r.hasOwnProperty("supportedFeatures")){if(!Array.isArray(r.supportedFeatures))return"supportedFeatures: array expected";for(var t=0;t<r.supportedFeatures.length;++t)switch(r.supportedFeatures[t]){default:return"supportedFeatures: enum value[] expected";case 0:case 1:case 2:break}}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.MfeDomainFeaturesProto)return r;var t=new n.keyhole.dbroot.MfeDomainFeaturesProto;if(r.countryCode!=null&&(t.countryCode=String(r.countryCode)),r.domainName!=null&&(t.domainName=String(r.domainName)),r.supportedFeatures){if(!Array.isArray(r.supportedFeatures))throw TypeError(".keyhole.dbroot.MfeDomainFeaturesProto.supportedFeatures: array expected");t.supportedFeatures=[];for(var e=0;e<r.supportedFeatures.length;++e)switch(r.supportedFeatures[e]){default:case"GEOCODING":case 0:t.supportedFeatures[e]=0;break;case"LOCAL_SEARCH":case 1:t.supportedFeatures[e]=1;break;case"DRIVING_DIRECTIONS":case 2:t.supportedFeatures[e]=2;break}}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.supportedFeatures=[]),t.defaults&&(e.countryCode="",e.domainName=""),r.countryCode!=null&&r.hasOwnProperty("countryCode")&&(e.countryCode=r.countryCode),r.domainName!=null&&r.hasOwnProperty("domainName")&&(e.domainName=r.domainName),r.supportedFeatures&&r.supportedFeatures.length){e.supportedFeatures=[];for(var o=0;o<r.supportedFeatures.length;++o)e.supportedFeatures[o]=t.enums===String?n.keyhole.dbroot.MfeDomainFeaturesProto.SupportedFeature[r.supportedFeatures[o]]:r.supportedFeatures[o]}return e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.MfeDomainFeaturesProto"},i.SupportedFeature=function(){var l={},r=Object.create(l);return r[l[0]="GEOCODING"]=0,r[l[1]="LOCAL_SEARCH"]=1,r[l[2]="DRIVING_DIRECTIONS"]=2,r}(),i}(),c.ClientOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.disableDiskCache=!1,i.prototype.disableEmbeddedBrowserVista=!1,i.prototype.drawAtmosphere=!0,i.prototype.drawStars=!0,i.prototype.shaderFilePrefix="",i.prototype.useProtobufQuadtreePackets=!1,i.prototype.useExtendedCopyrightIds=!0,i.prototype.precipitationsOptions=null,i.prototype.captureOptions=null,i.prototype.show_2dMapsIcon=!0,i.prototype.disableInternalBrowser=!1,i.prototype.internalBrowserBlacklist="",i.prototype.internalBrowserOriginWhitelist="*",i.prototype.polarTileMergingLevel=0,i.prototype.jsBridgeRequestWhitelist="http://*.google.com/*",i.prototype.mapsOptions=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ClientOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.disableDiskCache=r.bool();break}case 2:{o.disableEmbeddedBrowserVista=r.bool();break}case 3:{o.drawAtmosphere=r.bool();break}case 4:{o.drawStars=r.bool();break}case 5:{o.shaderFilePrefix=r.string();break}case 6:{o.useProtobufQuadtreePackets=r.bool();break}case 7:{o.useExtendedCopyrightIds=r.bool();break}case 8:{o.precipitationsOptions=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.decode(r,r.uint32());break}case 9:{o.captureOptions=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.decode(r,r.uint32());break}case 10:{o.show_2dMapsIcon=r.bool();break}case 11:{o.disableInternalBrowser=r.bool();break}case 12:{o.internalBrowserBlacklist=r.string();break}case 13:{o.internalBrowserOriginWhitelist=r.string();break}case 14:{o.polarTileMergingLevel=r.int32();break}case 15:{o.jsBridgeRequestWhitelist=r.string();break}case 16:{o.mapsOptions=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.decode(r,r.uint32());break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.disableDiskCache!=null&&r.hasOwnProperty("disableDiskCache")&&typeof r.disableDiskCache!="boolean")return"disableDiskCache: boolean expected";if(r.disableEmbeddedBrowserVista!=null&&r.hasOwnProperty("disableEmbeddedBrowserVista")&&typeof r.disableEmbeddedBrowserVista!="boolean")return"disableEmbeddedBrowserVista: boolean expected";if(r.drawAtmosphere!=null&&r.hasOwnProperty("drawAtmosphere")&&typeof r.drawAtmosphere!="boolean")return"drawAtmosphere: boolean expected";if(r.drawStars!=null&&r.hasOwnProperty("drawStars")&&typeof r.drawStars!="boolean")return"drawStars: boolean expected";if(r.shaderFilePrefix!=null&&r.hasOwnProperty("shaderFilePrefix")&&!u.isString(r.shaderFilePrefix))return"shaderFilePrefix: string expected";if(r.useProtobufQuadtreePackets!=null&&r.hasOwnProperty("useProtobufQuadtreePackets")&&typeof r.useProtobufQuadtreePackets!="boolean")return"useProtobufQuadtreePackets: boolean expected";if(r.useExtendedCopyrightIds!=null&&r.hasOwnProperty("useExtendedCopyrightIds")&&typeof r.useExtendedCopyrightIds!="boolean")return"useExtendedCopyrightIds: boolean expected";if(r.precipitationsOptions!=null&&r.hasOwnProperty("precipitationsOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.verify(r.precipitationsOptions);if(t)return"precipitationsOptions."+t}if(r.captureOptions!=null&&r.hasOwnProperty("captureOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.verify(r.captureOptions);if(t)return"captureOptions."+t}if(r.show_2dMapsIcon!=null&&r.hasOwnProperty("show_2dMapsIcon")&&typeof r.show_2dMapsIcon!="boolean")return"show_2dMapsIcon: boolean expected";if(r.disableInternalBrowser!=null&&r.hasOwnProperty("disableInternalBrowser")&&typeof r.disableInternalBrowser!="boolean")return"disableInternalBrowser: boolean expected";if(r.internalBrowserBlacklist!=null&&r.hasOwnProperty("internalBrowserBlacklist")&&!u.isString(r.internalBrowserBlacklist))return"internalBrowserBlacklist: string expected";if(r.internalBrowserOriginWhitelist!=null&&r.hasOwnProperty("internalBrowserOriginWhitelist")&&!u.isString(r.internalBrowserOriginWhitelist))return"internalBrowserOriginWhitelist: string expected";if(r.polarTileMergingLevel!=null&&r.hasOwnProperty("polarTileMergingLevel")&&!u.isInteger(r.polarTileMergingLevel))return"polarTileMergingLevel: integer expected";if(r.jsBridgeRequestWhitelist!=null&&r.hasOwnProperty("jsBridgeRequestWhitelist")&&!u.isString(r.jsBridgeRequestWhitelist))return"jsBridgeRequestWhitelist: string expected";if(r.mapsOptions!=null&&r.hasOwnProperty("mapsOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.verify(r.mapsOptions);if(t)return"mapsOptions."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ClientOptionsProto)return r;var t=new n.keyhole.dbroot.ClientOptionsProto;if(r.disableDiskCache!=null&&(t.disableDiskCache=!!r.disableDiskCache),r.disableEmbeddedBrowserVista!=null&&(t.disableEmbeddedBrowserVista=!!r.disableEmbeddedBrowserVista),r.drawAtmosphere!=null&&(t.drawAtmosphere=!!r.drawAtmosphere),r.drawStars!=null&&(t.drawStars=!!r.drawStars),r.shaderFilePrefix!=null&&(t.shaderFilePrefix=String(r.shaderFilePrefix)),r.useProtobufQuadtreePackets!=null&&(t.useProtobufQuadtreePackets=!!r.useProtobufQuadtreePackets),r.useExtendedCopyrightIds!=null&&(t.useExtendedCopyrightIds=!!r.useExtendedCopyrightIds),r.precipitationsOptions!=null){if(typeof r.precipitationsOptions!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.precipitationsOptions: object expected");t.precipitationsOptions=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.fromObject(r.precipitationsOptions)}if(r.captureOptions!=null){if(typeof r.captureOptions!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.captureOptions: object expected");t.captureOptions=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.fromObject(r.captureOptions)}if(r.show_2dMapsIcon!=null&&(t.show_2dMapsIcon=!!r.show_2dMapsIcon),r.disableInternalBrowser!=null&&(t.disableInternalBrowser=!!r.disableInternalBrowser),r.internalBrowserBlacklist!=null&&(t.internalBrowserBlacklist=String(r.internalBrowserBlacklist)),r.internalBrowserOriginWhitelist!=null&&(t.internalBrowserOriginWhitelist=String(r.internalBrowserOriginWhitelist)),r.polarTileMergingLevel!=null&&(t.polarTileMergingLevel=r.polarTileMergingLevel|0),r.jsBridgeRequestWhitelist!=null&&(t.jsBridgeRequestWhitelist=String(r.jsBridgeRequestWhitelist)),r.mapsOptions!=null){if(typeof r.mapsOptions!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.mapsOptions: object expected");t.mapsOptions=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.fromObject(r.mapsOptions)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.disableDiskCache=!1,e.disableEmbeddedBrowserVista=!1,e.drawAtmosphere=!0,e.drawStars=!0,e.shaderFilePrefix="",e.useProtobufQuadtreePackets=!1,e.useExtendedCopyrightIds=!0,e.precipitationsOptions=null,e.captureOptions=null,e.show_2dMapsIcon=!0,e.disableInternalBrowser=!1,e.internalBrowserBlacklist="",e.internalBrowserOriginWhitelist="*",e.polarTileMergingLevel=0,e.jsBridgeRequestWhitelist="http://*.google.com/*",e.mapsOptions=null),r.disableDiskCache!=null&&r.hasOwnProperty("disableDiskCache")&&(e.disableDiskCache=r.disableDiskCache),r.disableEmbeddedBrowserVista!=null&&r.hasOwnProperty("disableEmbeddedBrowserVista")&&(e.disableEmbeddedBrowserVista=r.disableEmbeddedBrowserVista),r.drawAtmosphere!=null&&r.hasOwnProperty("drawAtmosphere")&&(e.drawAtmosphere=r.drawAtmosphere),r.drawStars!=null&&r.hasOwnProperty("drawStars")&&(e.drawStars=r.drawStars),r.shaderFilePrefix!=null&&r.hasOwnProperty("shaderFilePrefix")&&(e.shaderFilePrefix=r.shaderFilePrefix),r.useProtobufQuadtreePackets!=null&&r.hasOwnProperty("useProtobufQuadtreePackets")&&(e.useProtobufQuadtreePackets=r.useProtobufQuadtreePackets),r.useExtendedCopyrightIds!=null&&r.hasOwnProperty("useExtendedCopyrightIds")&&(e.useExtendedCopyrightIds=r.useExtendedCopyrightIds),r.precipitationsOptions!=null&&r.hasOwnProperty("precipitationsOptions")&&(e.precipitationsOptions=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.toObject(r.precipitationsOptions,t)),r.captureOptions!=null&&r.hasOwnProperty("captureOptions")&&(e.captureOptions=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.toObject(r.captureOptions,t)),r.show_2dMapsIcon!=null&&r.hasOwnProperty("show_2dMapsIcon")&&(e.show_2dMapsIcon=r.show_2dMapsIcon),r.disableInternalBrowser!=null&&r.hasOwnProperty("disableInternalBrowser")&&(e.disableInternalBrowser=r.disableInternalBrowser),r.internalBrowserBlacklist!=null&&r.hasOwnProperty("internalBrowserBlacklist")&&(e.internalBrowserBlacklist=r.internalBrowserBlacklist),r.internalBrowserOriginWhitelist!=null&&r.hasOwnProperty("internalBrowserOriginWhitelist")&&(e.internalBrowserOriginWhitelist=r.internalBrowserOriginWhitelist),r.polarTileMergingLevel!=null&&r.hasOwnProperty("polarTileMergingLevel")&&(e.polarTileMergingLevel=r.polarTileMergingLevel),r.jsBridgeRequestWhitelist!=null&&r.hasOwnProperty("jsBridgeRequestWhitelist")&&(e.jsBridgeRequestWhitelist=r.jsBridgeRequestWhitelist),r.mapsOptions!=null&&r.hasOwnProperty("mapsOptions")&&(e.mapsOptions=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.toObject(r.mapsOptions,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ClientOptionsProto"},i.PrecipitationsOptions=function(){function l(r){if(this.weatherMapping=[],r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.imageUrl="",l.prototype.imageExpireTime=900,l.prototype.maxColorDistance=20,l.prototype.imageLevel=5,l.prototype.weatherMapping=u.emptyArray,l.prototype.cloudsLayerUrl="",l.prototype.animationDecelerationDelay=20,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.imageUrl=t.string();break}case 2:{a.imageExpireTime=t.int32();break}case 3:{a.maxColorDistance=t.int32();break}case 4:{a.imageLevel=t.int32();break}case 5:{a.weatherMapping&&a.weatherMapping.length||(a.weatherMapping=[]),a.weatherMapping.push(n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.decode(t,t.uint32()));break}case 6:{a.cloudsLayerUrl=t.string();break}case 7:{a.animationDecelerationDelay=t.float();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.imageUrl!=null&&t.hasOwnProperty("imageUrl")&&!u.isString(t.imageUrl))return"imageUrl: string expected";if(t.imageExpireTime!=null&&t.hasOwnProperty("imageExpireTime")&&!u.isInteger(t.imageExpireTime))return"imageExpireTime: integer expected";if(t.maxColorDistance!=null&&t.hasOwnProperty("maxColorDistance")&&!u.isInteger(t.maxColorDistance))return"maxColorDistance: integer expected";if(t.imageLevel!=null&&t.hasOwnProperty("imageLevel")&&!u.isInteger(t.imageLevel))return"imageLevel: integer expected";if(t.weatherMapping!=null&&t.hasOwnProperty("weatherMapping")){if(!Array.isArray(t.weatherMapping))return"weatherMapping: array expected";for(var e=0;e<t.weatherMapping.length;++e){var o=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.verify(t.weatherMapping[e]);if(o)return"weatherMapping."+o}}return t.cloudsLayerUrl!=null&&t.hasOwnProperty("cloudsLayerUrl")&&!u.isString(t.cloudsLayerUrl)?"cloudsLayerUrl: string expected":t.animationDecelerationDelay!=null&&t.hasOwnProperty("animationDecelerationDelay")&&typeof t.animationDecelerationDelay!="number"?"animationDecelerationDelay: number expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions)return t;var e=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions;if(t.imageUrl!=null&&(e.imageUrl=String(t.imageUrl)),t.imageExpireTime!=null&&(e.imageExpireTime=t.imageExpireTime|0),t.maxColorDistance!=null&&(e.maxColorDistance=t.maxColorDistance|0),t.imageLevel!=null&&(e.imageLevel=t.imageLevel|0),t.weatherMapping){if(!Array.isArray(t.weatherMapping))throw TypeError(".keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.weatherMapping: array expected");e.weatherMapping=[];for(var o=0;o<t.weatherMapping.length;++o){if(typeof t.weatherMapping[o]!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.weatherMapping: object expected");e.weatherMapping[o]=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.fromObject(t.weatherMapping[o])}}return t.cloudsLayerUrl!=null&&(e.cloudsLayerUrl=String(t.cloudsLayerUrl)),t.animationDecelerationDelay!=null&&(e.animationDecelerationDelay=Number(t.animationDecelerationDelay)),e},l.toObject=function(t,e){e||(e={});var o={};if((e.arrays||e.defaults)&&(o.weatherMapping=[]),e.defaults&&(o.imageUrl="",o.imageExpireTime=900,o.maxColorDistance=20,o.imageLevel=5,o.cloudsLayerUrl="",o.animationDecelerationDelay=20),t.imageUrl!=null&&t.hasOwnProperty("imageUrl")&&(o.imageUrl=t.imageUrl),t.imageExpireTime!=null&&t.hasOwnProperty("imageExpireTime")&&(o.imageExpireTime=t.imageExpireTime),t.maxColorDistance!=null&&t.hasOwnProperty("maxColorDistance")&&(o.maxColorDistance=t.maxColorDistance),t.imageLevel!=null&&t.hasOwnProperty("imageLevel")&&(o.imageLevel=t.imageLevel),t.weatherMapping&&t.weatherMapping.length){o.weatherMapping=[];for(var a=0;a<t.weatherMapping.length;++a)o.weatherMapping[a]=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.toObject(t.weatherMapping[a],e)}return t.cloudsLayerUrl!=null&&t.hasOwnProperty("cloudsLayerUrl")&&(o.cloudsLayerUrl=t.cloudsLayerUrl),t.animationDecelerationDelay!=null&&t.hasOwnProperty("animationDecelerationDelay")&&(o.animationDecelerationDelay=e.json&&!isFinite(t.animationDecelerationDelay)?String(t.animationDecelerationDelay):t.animationDecelerationDelay),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions"},l.WeatherMapping=function(){function r(t){if(t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.colorAbgr=0,r.prototype.weatherType=0,r.prototype.elongation=1,r.prototype.opacity=0,r.prototype.fogDensity=0,r.prototype.speed0=0,r.prototype.speed1=0,r.prototype.speed2=0,r.prototype.speed3=0,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.colorAbgr=e.uint32();break}case 2:{p.weatherType=e.int32();break}case 3:{p.elongation=e.float();break}case 4:{p.opacity=e.float();break}case 5:{p.fogDensity=e.float();break}case 6:{p.speed0=e.float();break}case 7:{p.speed1=e.float();break}case 8:{p.speed2=e.float();break}case 9:{p.speed3=e.float();break}default:e.skipType(y&7);break}}if(!p.hasOwnProperty("colorAbgr"))throw u.ProtocolError("missing required 'colorAbgr'",{instance:p});if(!p.hasOwnProperty("weatherType"))throw u.ProtocolError("missing required 'weatherType'",{instance:p});return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(!u.isInteger(e.colorAbgr))return"colorAbgr: integer expected";switch(e.weatherType){default:return"weatherType: enum value expected";case 0:case 1:case 2:break}return e.elongation!=null&&e.hasOwnProperty("elongation")&&typeof e.elongation!="number"?"elongation: number expected":e.opacity!=null&&e.hasOwnProperty("opacity")&&typeof e.opacity!="number"?"opacity: number expected":e.fogDensity!=null&&e.hasOwnProperty("fogDensity")&&typeof e.fogDensity!="number"?"fogDensity: number expected":e.speed0!=null&&e.hasOwnProperty("speed0")&&typeof e.speed0!="number"?"speed0: number expected":e.speed1!=null&&e.hasOwnProperty("speed1")&&typeof e.speed1!="number"?"speed1: number expected":e.speed2!=null&&e.hasOwnProperty("speed2")&&typeof e.speed2!="number"?"speed2: number expected":e.speed3!=null&&e.hasOwnProperty("speed3")&&typeof e.speed3!="number"?"speed3: number expected":null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping)return e;var o=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping;switch(e.colorAbgr!=null&&(o.colorAbgr=e.colorAbgr>>>0),e.weatherType){case"NO_PRECIPITATION":case 0:o.weatherType=0;break;case"RAIN":case 1:o.weatherType=1;break;case"SNOW":case 2:o.weatherType=2;break}return e.elongation!=null&&(o.elongation=Number(e.elongation)),e.opacity!=null&&(o.opacity=Number(e.opacity)),e.fogDensity!=null&&(o.fogDensity=Number(e.fogDensity)),e.speed0!=null&&(o.speed0=Number(e.speed0)),e.speed1!=null&&(o.speed1=Number(e.speed1)),e.speed2!=null&&(o.speed2=Number(e.speed2)),e.speed3!=null&&(o.speed3=Number(e.speed3)),o},r.toObject=function(e,o){o||(o={});var a={};return o.defaults&&(a.colorAbgr=0,a.weatherType=o.enums===String?"NO_PRECIPITATION":0,a.elongation=1,a.opacity=0,a.fogDensity=0,a.speed0=0,a.speed1=0,a.speed2=0,a.speed3=0),e.colorAbgr!=null&&e.hasOwnProperty("colorAbgr")&&(a.colorAbgr=e.colorAbgr),e.weatherType!=null&&e.hasOwnProperty("weatherType")&&(a.weatherType=o.enums===String?n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.WeatherType[e.weatherType]:e.weatherType),e.elongation!=null&&e.hasOwnProperty("elongation")&&(a.elongation=o.json&&!isFinite(e.elongation)?String(e.elongation):e.elongation),e.opacity!=null&&e.hasOwnProperty("opacity")&&(a.opacity=o.json&&!isFinite(e.opacity)?String(e.opacity):e.opacity),e.fogDensity!=null&&e.hasOwnProperty("fogDensity")&&(a.fogDensity=o.json&&!isFinite(e.fogDensity)?String(e.fogDensity):e.fogDensity),e.speed0!=null&&e.hasOwnProperty("speed0")&&(a.speed0=o.json&&!isFinite(e.speed0)?String(e.speed0):e.speed0),e.speed1!=null&&e.hasOwnProperty("speed1")&&(a.speed1=o.json&&!isFinite(e.speed1)?String(e.speed1):e.speed1),e.speed2!=null&&e.hasOwnProperty("speed2")&&(a.speed2=o.json&&!isFinite(e.speed2)?String(e.speed2):e.speed2),e.speed3!=null&&e.hasOwnProperty("speed3")&&(a.speed3=o.json&&!isFinite(e.speed3)?String(e.speed3):e.speed3),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping"},r.WeatherType=function(){var t={},e=Object.create(t);return e[t[0]="NO_PRECIPITATION"]=0,e[t[1]="RAIN"]=1,e[t[2]="SNOW"]=2,e}(),r}(),l}(),i.CaptureOptions=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.allowSaveAsImage=!0,l.prototype.maxFreeCaptureRes=2400,l.prototype.maxPremiumCaptureRes=4800,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.ClientOptionsProto.CaptureOptions;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.allowSaveAsImage=t.bool();break}case 2:{a.maxFreeCaptureRes=t.int32();break}case 3:{a.maxPremiumCaptureRes=t.int32();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":t.allowSaveAsImage!=null&&t.hasOwnProperty("allowSaveAsImage")&&typeof t.allowSaveAsImage!="boolean"?"allowSaveAsImage: boolean expected":t.maxFreeCaptureRes!=null&&t.hasOwnProperty("maxFreeCaptureRes")&&!u.isInteger(t.maxFreeCaptureRes)?"maxFreeCaptureRes: integer expected":t.maxPremiumCaptureRes!=null&&t.hasOwnProperty("maxPremiumCaptureRes")&&!u.isInteger(t.maxPremiumCaptureRes)?"maxPremiumCaptureRes: integer expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.ClientOptionsProto.CaptureOptions)return t;var e=new n.keyhole.dbroot.ClientOptionsProto.CaptureOptions;return t.allowSaveAsImage!=null&&(e.allowSaveAsImage=!!t.allowSaveAsImage),t.maxFreeCaptureRes!=null&&(e.maxFreeCaptureRes=t.maxFreeCaptureRes|0),t.maxPremiumCaptureRes!=null&&(e.maxPremiumCaptureRes=t.maxPremiumCaptureRes|0),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.allowSaveAsImage=!0,o.maxFreeCaptureRes=2400,o.maxPremiumCaptureRes=4800),t.allowSaveAsImage!=null&&t.hasOwnProperty("allowSaveAsImage")&&(o.allowSaveAsImage=t.allowSaveAsImage),t.maxFreeCaptureRes!=null&&t.hasOwnProperty("maxFreeCaptureRes")&&(o.maxFreeCaptureRes=t.maxFreeCaptureRes),t.maxPremiumCaptureRes!=null&&t.hasOwnProperty("maxPremiumCaptureRes")&&(o.maxPremiumCaptureRes=t.maxPremiumCaptureRes),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.ClientOptionsProto.CaptureOptions"},l}(),i.MapsOptions=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.enableMaps=!1,l.prototype.docsAutoDownloadEnabled=!1,l.prototype.docsAutoDownloadInterval=0,l.prototype.docsAutoUploadEnabled=!1,l.prototype.docsAutoUploadDelay=0,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.ClientOptionsProto.MapsOptions;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.enableMaps=t.bool();break}case 2:{a.docsAutoDownloadEnabled=t.bool();break}case 3:{a.docsAutoDownloadInterval=t.int32();break}case 4:{a.docsAutoUploadEnabled=t.bool();break}case 5:{a.docsAutoUploadDelay=t.int32();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":t.enableMaps!=null&&t.hasOwnProperty("enableMaps")&&typeof t.enableMaps!="boolean"?"enableMaps: boolean expected":t.docsAutoDownloadEnabled!=null&&t.hasOwnProperty("docsAutoDownloadEnabled")&&typeof t.docsAutoDownloadEnabled!="boolean"?"docsAutoDownloadEnabled: boolean expected":t.docsAutoDownloadInterval!=null&&t.hasOwnProperty("docsAutoDownloadInterval")&&!u.isInteger(t.docsAutoDownloadInterval)?"docsAutoDownloadInterval: integer expected":t.docsAutoUploadEnabled!=null&&t.hasOwnProperty("docsAutoUploadEnabled")&&typeof t.docsAutoUploadEnabled!="boolean"?"docsAutoUploadEnabled: boolean expected":t.docsAutoUploadDelay!=null&&t.hasOwnProperty("docsAutoUploadDelay")&&!u.isInteger(t.docsAutoUploadDelay)?"docsAutoUploadDelay: integer expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.ClientOptionsProto.MapsOptions)return t;var e=new n.keyhole.dbroot.ClientOptionsProto.MapsOptions;return t.enableMaps!=null&&(e.enableMaps=!!t.enableMaps),t.docsAutoDownloadEnabled!=null&&(e.docsAutoDownloadEnabled=!!t.docsAutoDownloadEnabled),t.docsAutoDownloadInterval!=null&&(e.docsAutoDownloadInterval=t.docsAutoDownloadInterval|0),t.docsAutoUploadEnabled!=null&&(e.docsAutoUploadEnabled=!!t.docsAutoUploadEnabled),t.docsAutoUploadDelay!=null&&(e.docsAutoUploadDelay=t.docsAutoUploadDelay|0),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.enableMaps=!1,o.docsAutoDownloadEnabled=!1,o.docsAutoDownloadInterval=0,o.docsAutoUploadEnabled=!1,o.docsAutoUploadDelay=0),t.enableMaps!=null&&t.hasOwnProperty("enableMaps")&&(o.enableMaps=t.enableMaps),t.docsAutoDownloadEnabled!=null&&t.hasOwnProperty("docsAutoDownloadEnabled")&&(o.docsAutoDownloadEnabled=t.docsAutoDownloadEnabled),t.docsAutoDownloadInterval!=null&&t.hasOwnProperty("docsAutoDownloadInterval")&&(o.docsAutoDownloadInterval=t.docsAutoDownloadInterval),t.docsAutoUploadEnabled!=null&&t.hasOwnProperty("docsAutoUploadEnabled")&&(o.docsAutoUploadEnabled=t.docsAutoUploadEnabled),t.docsAutoUploadDelay!=null&&t.hasOwnProperty("docsAutoUploadDelay")&&(o.docsAutoUploadDelay=t.docsAutoUploadDelay),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.ClientOptionsProto.MapsOptions"},l}(),i}(),c.FetchingOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.maxRequestsPerQuery=1,i.prototype.forceMaxRequestsPerQuery=!1,i.prototype.sortBatches=!1,i.prototype.maxDrawable=2,i.prototype.maxImagery=2,i.prototype.maxTerrain=5,i.prototype.maxQuadtree=5,i.prototype.maxDioramaMetadata=1,i.prototype.maxDioramaData=0,i.prototype.maxConsumerFetchRatio=1,i.prototype.maxProEcFetchRatio=0,i.prototype.safeOverallQps=0,i.prototype.safeImageryQps=0,i.prototype.domainsForHttps="google.com gstatic.com",i.prototype.hostsForHttp="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.FetchingOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.maxRequestsPerQuery=r.int32();break}case 12:{o.forceMaxRequestsPerQuery=r.bool();break}case 13:{o.sortBatches=r.bool();break}case 2:{o.maxDrawable=r.int32();break}case 3:{o.maxImagery=r.int32();break}case 4:{o.maxTerrain=r.int32();break}case 5:{o.maxQuadtree=r.int32();break}case 6:{o.maxDioramaMetadata=r.int32();break}case 7:{o.maxDioramaData=r.int32();break}case 8:{o.maxConsumerFetchRatio=r.float();break}case 9:{o.maxProEcFetchRatio=r.float();break}case 10:{o.safeOverallQps=r.float();break}case 11:{o.safeImageryQps=r.float();break}case 14:{o.domainsForHttps=r.string();break}case 15:{o.hostsForHttp=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.maxRequestsPerQuery!=null&&r.hasOwnProperty("maxRequestsPerQuery")&&!u.isInteger(r.maxRequestsPerQuery)?"maxRequestsPerQuery: integer expected":r.forceMaxRequestsPerQuery!=null&&r.hasOwnProperty("forceMaxRequestsPerQuery")&&typeof r.forceMaxRequestsPerQuery!="boolean"?"forceMaxRequestsPerQuery: boolean expected":r.sortBatches!=null&&r.hasOwnProperty("sortBatches")&&typeof r.sortBatches!="boolean"?"sortBatches: boolean expected":r.maxDrawable!=null&&r.hasOwnProperty("maxDrawable")&&!u.isInteger(r.maxDrawable)?"maxDrawable: integer expected":r.maxImagery!=null&&r.hasOwnProperty("maxImagery")&&!u.isInteger(r.maxImagery)?"maxImagery: integer expected":r.maxTerrain!=null&&r.hasOwnProperty("maxTerrain")&&!u.isInteger(r.maxTerrain)?"maxTerrain: integer expected":r.maxQuadtree!=null&&r.hasOwnProperty("maxQuadtree")&&!u.isInteger(r.maxQuadtree)?"maxQuadtree: integer expected":r.maxDioramaMetadata!=null&&r.hasOwnProperty("maxDioramaMetadata")&&!u.isInteger(r.maxDioramaMetadata)?"maxDioramaMetadata: integer expected":r.maxDioramaData!=null&&r.hasOwnProperty("maxDioramaData")&&!u.isInteger(r.maxDioramaData)?"maxDioramaData: integer expected":r.maxConsumerFetchRatio!=null&&r.hasOwnProperty("maxConsumerFetchRatio")&&typeof r.maxConsumerFetchRatio!="number"?"maxConsumerFetchRatio: number expected":r.maxProEcFetchRatio!=null&&r.hasOwnProperty("maxProEcFetchRatio")&&typeof r.maxProEcFetchRatio!="number"?"maxProEcFetchRatio: number expected":r.safeOverallQps!=null&&r.hasOwnProperty("safeOverallQps")&&typeof r.safeOverallQps!="number"?"safeOverallQps: number expected":r.safeImageryQps!=null&&r.hasOwnProperty("safeImageryQps")&&typeof r.safeImageryQps!="number"?"safeImageryQps: number expected":r.domainsForHttps!=null&&r.hasOwnProperty("domainsForHttps")&&!u.isString(r.domainsForHttps)?"domainsForHttps: string expected":r.hostsForHttp!=null&&r.hasOwnProperty("hostsForHttp")&&!u.isString(r.hostsForHttp)?"hostsForHttp: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.FetchingOptionsProto)return r;var t=new n.keyhole.dbroot.FetchingOptionsProto;return r.maxRequestsPerQuery!=null&&(t.maxRequestsPerQuery=r.maxRequestsPerQuery|0),r.forceMaxRequestsPerQuery!=null&&(t.forceMaxRequestsPerQuery=!!r.forceMaxRequestsPerQuery),r.sortBatches!=null&&(t.sortBatches=!!r.sortBatches),r.maxDrawable!=null&&(t.maxDrawable=r.maxDrawable|0),r.maxImagery!=null&&(t.maxImagery=r.maxImagery|0),r.maxTerrain!=null&&(t.maxTerrain=r.maxTerrain|0),r.maxQuadtree!=null&&(t.maxQuadtree=r.maxQuadtree|0),r.maxDioramaMetadata!=null&&(t.maxDioramaMetadata=r.maxDioramaMetadata|0),r.maxDioramaData!=null&&(t.maxDioramaData=r.maxDioramaData|0),r.maxConsumerFetchRatio!=null&&(t.maxConsumerFetchRatio=Number(r.maxConsumerFetchRatio)),r.maxProEcFetchRatio!=null&&(t.maxProEcFetchRatio=Number(r.maxProEcFetchRatio)),r.safeOverallQps!=null&&(t.safeOverallQps=Number(r.safeOverallQps)),r.safeImageryQps!=null&&(t.safeImageryQps=Number(r.safeImageryQps)),r.domainsForHttps!=null&&(t.domainsForHttps=String(r.domainsForHttps)),r.hostsForHttp!=null&&(t.hostsForHttp=String(r.hostsForHttp)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.maxRequestsPerQuery=1,e.maxDrawable=2,e.maxImagery=2,e.maxTerrain=5,e.maxQuadtree=5,e.maxDioramaMetadata=1,e.maxDioramaData=0,e.maxConsumerFetchRatio=1,e.maxProEcFetchRatio=0,e.safeOverallQps=0,e.safeImageryQps=0,e.forceMaxRequestsPerQuery=!1,e.sortBatches=!1,e.domainsForHttps="google.com gstatic.com",e.hostsForHttp=""),r.maxRequestsPerQuery!=null&&r.hasOwnProperty("maxRequestsPerQuery")&&(e.maxRequestsPerQuery=r.maxRequestsPerQuery),r.maxDrawable!=null&&r.hasOwnProperty("maxDrawable")&&(e.maxDrawable=r.maxDrawable),r.maxImagery!=null&&r.hasOwnProperty("maxImagery")&&(e.maxImagery=r.maxImagery),r.maxTerrain!=null&&r.hasOwnProperty("maxTerrain")&&(e.maxTerrain=r.maxTerrain),r.maxQuadtree!=null&&r.hasOwnProperty("maxQuadtree")&&(e.maxQuadtree=r.maxQuadtree),r.maxDioramaMetadata!=null&&r.hasOwnProperty("maxDioramaMetadata")&&(e.maxDioramaMetadata=r.maxDioramaMetadata),r.maxDioramaData!=null&&r.hasOwnProperty("maxDioramaData")&&(e.maxDioramaData=r.maxDioramaData),r.maxConsumerFetchRatio!=null&&r.hasOwnProperty("maxConsumerFetchRatio")&&(e.maxConsumerFetchRatio=t.json&&!isFinite(r.maxConsumerFetchRatio)?String(r.maxConsumerFetchRatio):r.maxConsumerFetchRatio),r.maxProEcFetchRatio!=null&&r.hasOwnProperty("maxProEcFetchRatio")&&(e.maxProEcFetchRatio=t.json&&!isFinite(r.maxProEcFetchRatio)?String(r.maxProEcFetchRatio):r.maxProEcFetchRatio),r.safeOverallQps!=null&&r.hasOwnProperty("safeOverallQps")&&(e.safeOverallQps=t.json&&!isFinite(r.safeOverallQps)?String(r.safeOverallQps):r.safeOverallQps),r.safeImageryQps!=null&&r.hasOwnProperty("safeImageryQps")&&(e.safeImageryQps=t.json&&!isFinite(r.safeImageryQps)?String(r.safeImageryQps):r.safeImageryQps),r.forceMaxRequestsPerQuery!=null&&r.hasOwnProperty("forceMaxRequestsPerQuery")&&(e.forceMaxRequestsPerQuery=r.forceMaxRequestsPerQuery),r.sortBatches!=null&&r.hasOwnProperty("sortBatches")&&(e.sortBatches=r.sortBatches),r.domainsForHttps!=null&&r.hasOwnProperty("domainsForHttps")&&(e.domainsForHttps=r.domainsForHttps),r.hostsForHttp!=null&&r.hasOwnProperty("hostsForHttp")&&(e.hostsForHttp=r.hostsForHttp),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.FetchingOptionsProto"},i}(),c.TimeMachineOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.serverUrl="",i.prototype.isTimemachine=!1,i.prototype.dwellTimeMs=500,i.prototype.discoverabilityAltitudeMeters=15e3,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.TimeMachineOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.serverUrl=r.string();break}case 2:{o.isTimemachine=r.bool();break}case 3:{o.dwellTimeMs=r.int32();break}case 4:{o.discoverabilityAltitudeMeters=r.int32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.serverUrl!=null&&r.hasOwnProperty("serverUrl")&&!u.isString(r.serverUrl)?"serverUrl: string expected":r.isTimemachine!=null&&r.hasOwnProperty("isTimemachine")&&typeof r.isTimemachine!="boolean"?"isTimemachine: boolean expected":r.dwellTimeMs!=null&&r.hasOwnProperty("dwellTimeMs")&&!u.isInteger(r.dwellTimeMs)?"dwellTimeMs: integer expected":r.discoverabilityAltitudeMeters!=null&&r.hasOwnProperty("discoverabilityAltitudeMeters")&&!u.isInteger(r.discoverabilityAltitudeMeters)?"discoverabilityAltitudeMeters: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.TimeMachineOptionsProto)return r;var t=new n.keyhole.dbroot.TimeMachineOptionsProto;return r.serverUrl!=null&&(t.serverUrl=String(r.serverUrl)),r.isTimemachine!=null&&(t.isTimemachine=!!r.isTimemachine),r.dwellTimeMs!=null&&(t.dwellTimeMs=r.dwellTimeMs|0),r.discoverabilityAltitudeMeters!=null&&(t.discoverabilityAltitudeMeters=r.discoverabilityAltitudeMeters|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.serverUrl="",e.isTimemachine=!1,e.dwellTimeMs=500,e.discoverabilityAltitudeMeters=15e3),r.serverUrl!=null&&r.hasOwnProperty("serverUrl")&&(e.serverUrl=r.serverUrl),r.isTimemachine!=null&&r.hasOwnProperty("isTimemachine")&&(e.isTimemachine=r.isTimemachine),r.dwellTimeMs!=null&&r.hasOwnProperty("dwellTimeMs")&&(e.dwellTimeMs=r.dwellTimeMs),r.discoverabilityAltitudeMeters!=null&&r.hasOwnProperty("discoverabilityAltitudeMeters")&&(e.discoverabilityAltitudeMeters=r.discoverabilityAltitudeMeters),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.TimeMachineOptionsProto"},i}(),c.AutopiaOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.metadataServerUrl="http://cbk0.google.com/cbk",i.prototype.depthmapServerUrl="http://cbk0.google.com/cbk",i.prototype.coverageOverlayUrl="",i.prototype.maxImageryQps=0,i.prototype.maxMetadataDepthmapQps=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.AutopiaOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.metadataServerUrl=r.string();break}case 2:{o.depthmapServerUrl=r.string();break}case 3:{o.coverageOverlayUrl=r.string();break}case 4:{o.maxImageryQps=r.float();break}case 5:{o.maxMetadataDepthmapQps=r.float();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.metadataServerUrl!=null&&r.hasOwnProperty("metadataServerUrl")&&!u.isString(r.metadataServerUrl)?"metadataServerUrl: string expected":r.depthmapServerUrl!=null&&r.hasOwnProperty("depthmapServerUrl")&&!u.isString(r.depthmapServerUrl)?"depthmapServerUrl: string expected":r.coverageOverlayUrl!=null&&r.hasOwnProperty("coverageOverlayUrl")&&!u.isString(r.coverageOverlayUrl)?"coverageOverlayUrl: string expected":r.maxImageryQps!=null&&r.hasOwnProperty("maxImageryQps")&&typeof r.maxImageryQps!="number"?"maxImageryQps: number expected":r.maxMetadataDepthmapQps!=null&&r.hasOwnProperty("maxMetadataDepthmapQps")&&typeof r.maxMetadataDepthmapQps!="number"?"maxMetadataDepthmapQps: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.AutopiaOptionsProto)return r;var t=new n.keyhole.dbroot.AutopiaOptionsProto;return r.metadataServerUrl!=null&&(t.metadataServerUrl=String(r.metadataServerUrl)),r.depthmapServerUrl!=null&&(t.depthmapServerUrl=String(r.depthmapServerUrl)),r.coverageOverlayUrl!=null&&(t.coverageOverlayUrl=String(r.coverageOverlayUrl)),r.maxImageryQps!=null&&(t.maxImageryQps=Number(r.maxImageryQps)),r.maxMetadataDepthmapQps!=null&&(t.maxMetadataDepthmapQps=Number(r.maxMetadataDepthmapQps)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.metadataServerUrl="http://cbk0.google.com/cbk",e.depthmapServerUrl="http://cbk0.google.com/cbk",e.coverageOverlayUrl="",e.maxImageryQps=0,e.maxMetadataDepthmapQps=0),r.metadataServerUrl!=null&&r.hasOwnProperty("metadataServerUrl")&&(e.metadataServerUrl=r.metadataServerUrl),r.depthmapServerUrl!=null&&r.hasOwnProperty("depthmapServerUrl")&&(e.depthmapServerUrl=r.depthmapServerUrl),r.coverageOverlayUrl!=null&&r.hasOwnProperty("coverageOverlayUrl")&&(e.coverageOverlayUrl=r.coverageOverlayUrl),r.maxImageryQps!=null&&r.hasOwnProperty("maxImageryQps")&&(e.maxImageryQps=t.json&&!isFinite(r.maxImageryQps)?String(r.maxImageryQps):r.maxImageryQps),r.maxMetadataDepthmapQps!=null&&r.hasOwnProperty("maxMetadataDepthmapQps")&&(e.maxMetadataDepthmapQps=t.json&&!isFinite(r.maxMetadataDepthmapQps)?String(r.maxMetadataDepthmapQps):r.maxMetadataDepthmapQps),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.AutopiaOptionsProto"},i}(),c.CSIOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.samplingPercentage=0,i.prototype.experimentId="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.CSIOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.samplingPercentage=r.int32();break}case 2:{o.experimentId=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.samplingPercentage!=null&&r.hasOwnProperty("samplingPercentage")&&!u.isInteger(r.samplingPercentage)?"samplingPercentage: integer expected":r.experimentId!=null&&r.hasOwnProperty("experimentId")&&!u.isString(r.experimentId)?"experimentId: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.CSIOptionsProto)return r;var t=new n.keyhole.dbroot.CSIOptionsProto;return r.samplingPercentage!=null&&(t.samplingPercentage=r.samplingPercentage|0),r.experimentId!=null&&(t.experimentId=String(r.experimentId)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.samplingPercentage=0,e.experimentId=""),r.samplingPercentage!=null&&r.hasOwnProperty("samplingPercentage")&&(e.samplingPercentage=r.samplingPercentage),r.experimentId!=null&&r.hasOwnProperty("experimentId")&&(e.experimentId=r.experimentId),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.CSIOptionsProto"},i}(),c.SearchTabProto=function(){function i(l){if(this.inputBox=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.isVisible=!1,i.prototype.tabLabel=null,i.prototype.baseUrl="",i.prototype.viewportPrefix="",i.prototype.inputBox=u.emptyArray,i.prototype.requirement=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.SearchTabProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.isVisible=r.bool();break}case 2:{o.tabLabel=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.baseUrl=r.string();break}case 4:{o.viewportPrefix=r.string();break}case 5:{o.inputBox&&o.inputBox.length||(o.inputBox=[]),o.inputBox.push(n.keyhole.dbroot.SearchTabProto.InputBoxInfo.decode(r,r.uint32()));break}case 6:{o.requirement=n.keyhole.dbroot.RequirementProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("isVisible"))throw u.ProtocolError("missing required 'isVisible'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(typeof r.isVisible!="boolean")return"isVisible: boolean expected";if(r.tabLabel!=null&&r.hasOwnProperty("tabLabel")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.tabLabel);if(t)return"tabLabel."+t}if(r.baseUrl!=null&&r.hasOwnProperty("baseUrl")&&!u.isString(r.baseUrl))return"baseUrl: string expected";if(r.viewportPrefix!=null&&r.hasOwnProperty("viewportPrefix")&&!u.isString(r.viewportPrefix))return"viewportPrefix: string expected";if(r.inputBox!=null&&r.hasOwnProperty("inputBox")){if(!Array.isArray(r.inputBox))return"inputBox: array expected";for(var e=0;e<r.inputBox.length;++e){var t=n.keyhole.dbroot.SearchTabProto.InputBoxInfo.verify(r.inputBox[e]);if(t)return"inputBox."+t}}if(r.requirement!=null&&r.hasOwnProperty("requirement")){var t=n.keyhole.dbroot.RequirementProto.verify(r.requirement);if(t)return"requirement."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.SearchTabProto)return r;var t=new n.keyhole.dbroot.SearchTabProto;if(r.isVisible!=null&&(t.isVisible=!!r.isVisible),r.tabLabel!=null){if(typeof r.tabLabel!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.tabLabel: object expected");t.tabLabel=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.tabLabel)}if(r.baseUrl!=null&&(t.baseUrl=String(r.baseUrl)),r.viewportPrefix!=null&&(t.viewportPrefix=String(r.viewportPrefix)),r.inputBox){if(!Array.isArray(r.inputBox))throw TypeError(".keyhole.dbroot.SearchTabProto.inputBox: array expected");t.inputBox=[];for(var e=0;e<r.inputBox.length;++e){if(typeof r.inputBox[e]!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.inputBox: object expected");t.inputBox[e]=n.keyhole.dbroot.SearchTabProto.InputBoxInfo.fromObject(r.inputBox[e])}}if(r.requirement!=null){if(typeof r.requirement!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.requirement: object expected");t.requirement=n.keyhole.dbroot.RequirementProto.fromObject(r.requirement)}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.inputBox=[]),t.defaults&&(e.isVisible=!1,e.tabLabel=null,e.baseUrl="",e.viewportPrefix="",e.requirement=null),r.isVisible!=null&&r.hasOwnProperty("isVisible")&&(e.isVisible=r.isVisible),r.tabLabel!=null&&r.hasOwnProperty("tabLabel")&&(e.tabLabel=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.tabLabel,t)),r.baseUrl!=null&&r.hasOwnProperty("baseUrl")&&(e.baseUrl=r.baseUrl),r.viewportPrefix!=null&&r.hasOwnProperty("viewportPrefix")&&(e.viewportPrefix=r.viewportPrefix),r.inputBox&&r.inputBox.length){e.inputBox=[];for(var o=0;o<r.inputBox.length;++o)e.inputBox[o]=n.keyhole.dbroot.SearchTabProto.InputBoxInfo.toObject(r.inputBox[o],t)}return r.requirement!=null&&r.hasOwnProperty("requirement")&&(e.requirement=n.keyhole.dbroot.RequirementProto.toObject(r.requirement,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.SearchTabProto"},i.InputBoxInfo=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.label=null,l.prototype.queryVerb="",l.prototype.queryPrepend="",l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.SearchTabProto.InputBoxInfo;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.label=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 2:{a.queryVerb=t.string();break}case 3:{a.queryPrepend=t.string();break}default:t.skipType(p&7);break}}if(!a.hasOwnProperty("label"))throw u.ProtocolError("missing required 'label'",{instance:a});if(!a.hasOwnProperty("queryVerb"))throw u.ProtocolError("missing required 'queryVerb'",{instance:a});return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";{var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.label);if(e)return"label."+e}return u.isString(t.queryVerb)?t.queryPrepend!=null&&t.hasOwnProperty("queryPrepend")&&!u.isString(t.queryPrepend)?"queryPrepend: string expected":null:"queryVerb: string expected"},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.SearchTabProto.InputBoxInfo)return t;var e=new n.keyhole.dbroot.SearchTabProto.InputBoxInfo;if(t.label!=null){if(typeof t.label!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.InputBoxInfo.label: object expected");e.label=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.label)}return t.queryVerb!=null&&(e.queryVerb=String(t.queryVerb)),t.queryPrepend!=null&&(e.queryPrepend=String(t.queryPrepend)),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.label=null,o.queryVerb="",o.queryPrepend=""),t.label!=null&&t.hasOwnProperty("label")&&(o.label=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.label,e)),t.queryVerb!=null&&t.hasOwnProperty("queryVerb")&&(o.queryVerb=t.queryVerb),t.queryPrepend!=null&&t.hasOwnProperty("queryPrepend")&&(o.queryPrepend=t.queryPrepend),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.SearchTabProto.InputBoxInfo"},l}(),i}(),c.CobrandProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.logoUrl="",i.prototype.xCoord=null,i.prototype.yCoord=null,i.prototype.tiePoint=6,i.prototype.screenSize=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.CobrandProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.logoUrl=r.string();break}case 2:{o.xCoord=n.keyhole.dbroot.CobrandProto.Coord.decode(r,r.uint32());break}case 3:{o.yCoord=n.keyhole.dbroot.CobrandProto.Coord.decode(r,r.uint32());break}case 4:{o.tiePoint=r.int32();break}case 5:{o.screenSize=r.double();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("logoUrl"))throw u.ProtocolError("missing required 'logoUrl'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.logoUrl))return"logoUrl: string expected";if(r.xCoord!=null&&r.hasOwnProperty("xCoord")){var t=n.keyhole.dbroot.CobrandProto.Coord.verify(r.xCoord);if(t)return"xCoord."+t}if(r.yCoord!=null&&r.hasOwnProperty("yCoord")){var t=n.keyhole.dbroot.CobrandProto.Coord.verify(r.yCoord);if(t)return"yCoord."+t}if(r.tiePoint!=null&&r.hasOwnProperty("tiePoint"))switch(r.tiePoint){default:return"tiePoint: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:break}return r.screenSize!=null&&r.hasOwnProperty("screenSize")&&typeof r.screenSize!="number"?"screenSize: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.CobrandProto)return r;var t=new n.keyhole.dbroot.CobrandProto;if(r.logoUrl!=null&&(t.logoUrl=String(r.logoUrl)),r.xCoord!=null){if(typeof r.xCoord!="object")throw TypeError(".keyhole.dbroot.CobrandProto.xCoord: object expected");t.xCoord=n.keyhole.dbroot.CobrandProto.Coord.fromObject(r.xCoord)}if(r.yCoord!=null){if(typeof r.yCoord!="object")throw TypeError(".keyhole.dbroot.CobrandProto.yCoord: object expected");t.yCoord=n.keyhole.dbroot.CobrandProto.Coord.fromObject(r.yCoord)}switch(r.tiePoint){case"TOP_LEFT":case 0:t.tiePoint=0;break;case"TOP_CENTER":case 1:t.tiePoint=1;break;case"TOP_RIGHT":case 2:t.tiePoint=2;break;case"MID_LEFT":case 3:t.tiePoint=3;break;case"MID_CENTER":case 4:t.tiePoint=4;break;case"MID_RIGHT":case 5:t.tiePoint=5;break;case"BOTTOM_LEFT":case 6:t.tiePoint=6;break;case"BOTTOM_CENTER":case 7:t.tiePoint=7;break;case"BOTTOM_RIGHT":case 8:t.tiePoint=8;break}return r.screenSize!=null&&(t.screenSize=Number(r.screenSize)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.logoUrl="",e.xCoord=null,e.yCoord=null,e.tiePoint=t.enums===String?"BOTTOM_LEFT":6,e.screenSize=0),r.logoUrl!=null&&r.hasOwnProperty("logoUrl")&&(e.logoUrl=r.logoUrl),r.xCoord!=null&&r.hasOwnProperty("xCoord")&&(e.xCoord=n.keyhole.dbroot.CobrandProto.Coord.toObject(r.xCoord,t)),r.yCoord!=null&&r.hasOwnProperty("yCoord")&&(e.yCoord=n.keyhole.dbroot.CobrandProto.Coord.toObject(r.yCoord,t)),r.tiePoint!=null&&r.hasOwnProperty("tiePoint")&&(e.tiePoint=t.enums===String?n.keyhole.dbroot.CobrandProto.TiePoint[r.tiePoint]:r.tiePoint),r.screenSize!=null&&r.hasOwnProperty("screenSize")&&(e.screenSize=t.json&&!isFinite(r.screenSize)?String(r.screenSize):r.screenSize),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.CobrandProto"},i.Coord=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.value=0,l.prototype.isRelative=!1,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.CobrandProto.Coord;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.value=t.double();break}case 2:{a.isRelative=t.bool();break}default:t.skipType(p&7);break}}if(!a.hasOwnProperty("value"))throw u.ProtocolError("missing required 'value'",{instance:a});return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":typeof t.value!="number"?"value: number expected":t.isRelative!=null&&t.hasOwnProperty("isRelative")&&typeof t.isRelative!="boolean"?"isRelative: boolean expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.CobrandProto.Coord)return t;var e=new n.keyhole.dbroot.CobrandProto.Coord;return t.value!=null&&(e.value=Number(t.value)),t.isRelative!=null&&(e.isRelative=!!t.isRelative),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.value=0,o.isRelative=!1),t.value!=null&&t.hasOwnProperty("value")&&(o.value=e.json&&!isFinite(t.value)?String(t.value):t.value),t.isRelative!=null&&t.hasOwnProperty("isRelative")&&(o.isRelative=t.isRelative),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.CobrandProto.Coord"},l}(),i.TiePoint=function(){var l={},r=Object.create(l);return r[l[0]="TOP_LEFT"]=0,r[l[1]="TOP_CENTER"]=1,r[l[2]="TOP_RIGHT"]=2,r[l[3]="MID_LEFT"]=3,r[l[4]="MID_CENTER"]=4,r[l[5]="MID_RIGHT"]=5,r[l[6]="BOTTOM_LEFT"]=6,r[l[7]="BOTTOM_CENTER"]=7,r[l[8]="BOTTOM_RIGHT"]=8,r}(),i}(),c.DatabaseDescriptionProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.databaseName=null,i.prototype.databaseUrl="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DatabaseDescriptionProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.databaseName=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.databaseUrl=r.string();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("databaseUrl"))throw u.ProtocolError("missing required 'databaseUrl'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.databaseName!=null&&r.hasOwnProperty("databaseName")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.databaseName);if(t)return"databaseName."+t}return u.isString(r.databaseUrl)?null:"databaseUrl: string expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DatabaseDescriptionProto)return r;var t=new n.keyhole.dbroot.DatabaseDescriptionProto;if(r.databaseName!=null){if(typeof r.databaseName!="object")throw TypeError(".keyhole.dbroot.DatabaseDescriptionProto.databaseName: object expected");t.databaseName=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.databaseName)}return r.databaseUrl!=null&&(t.databaseUrl=String(r.databaseUrl)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.databaseName=null,e.databaseUrl=""),r.databaseName!=null&&r.hasOwnProperty("databaseName")&&(e.databaseName=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.databaseName,t)),r.databaseUrl!=null&&r.hasOwnProperty("databaseUrl")&&(e.databaseUrl=r.databaseUrl),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DatabaseDescriptionProto"},i}(),c.ConfigScriptProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.scriptName="",i.prototype.scriptData="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ConfigScriptProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.scriptName=r.string();break}case 2:{o.scriptData=r.string();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("scriptName"))throw u.ProtocolError("missing required 'scriptName'",{instance:o});if(!o.hasOwnProperty("scriptData"))throw u.ProtocolError("missing required 'scriptData'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isString(r.scriptName)?u.isString(r.scriptData)?null:"scriptData: string expected":"scriptName: string expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ConfigScriptProto)return r;var t=new n.keyhole.dbroot.ConfigScriptProto;return r.scriptName!=null&&(t.scriptName=String(r.scriptName)),r.scriptData!=null&&(t.scriptData=String(r.scriptData)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.scriptName="",e.scriptData=""),r.scriptName!=null&&r.hasOwnProperty("scriptName")&&(e.scriptName=r.scriptName),r.scriptData!=null&&r.hasOwnProperty("scriptData")&&(e.scriptData=r.scriptData),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ConfigScriptProto"},i}(),c.SwoopParamsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.startDistInMeters=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.SwoopParamsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.startDistInMeters=r.double();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.startDistInMeters!=null&&r.hasOwnProperty("startDistInMeters")&&typeof r.startDistInMeters!="number"?"startDistInMeters: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.SwoopParamsProto)return r;var t=new n.keyhole.dbroot.SwoopParamsProto;return r.startDistInMeters!=null&&(t.startDistInMeters=Number(r.startDistInMeters)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.startDistInMeters=0),r.startDistInMeters!=null&&r.hasOwnProperty("startDistInMeters")&&(e.startDistInMeters=t.json&&!isFinite(r.startDistInMeters)?String(r.startDistInMeters):r.startDistInMeters),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.SwoopParamsProto"},i}(),c.PostingServerProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.name=null,i.prototype.baseUrl=null,i.prototype.postWizardPath=null,i.prototype.fileSubmitPath=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PostingServerProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.name=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.baseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.postWizardPath=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 4:{o.fileSubmitPath=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.name!=null&&r.hasOwnProperty("name")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.name);if(t)return"name."+t}if(r.baseUrl!=null&&r.hasOwnProperty("baseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.baseUrl);if(t)return"baseUrl."+t}if(r.postWizardPath!=null&&r.hasOwnProperty("postWizardPath")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.postWizardPath);if(t)return"postWizardPath."+t}if(r.fileSubmitPath!=null&&r.hasOwnProperty("fileSubmitPath")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.fileSubmitPath);if(t)return"fileSubmitPath."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PostingServerProto)return r;var t=new n.keyhole.dbroot.PostingServerProto;if(r.name!=null){if(typeof r.name!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.name: object expected");t.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.name)}if(r.baseUrl!=null){if(typeof r.baseUrl!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.baseUrl: object expected");t.baseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.baseUrl)}if(r.postWizardPath!=null){if(typeof r.postWizardPath!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.postWizardPath: object expected");t.postWizardPath=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.postWizardPath)}if(r.fileSubmitPath!=null){if(typeof r.fileSubmitPath!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.fileSubmitPath: object expected");t.fileSubmitPath=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.fileSubmitPath)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.name=null,e.baseUrl=null,e.postWizardPath=null,e.fileSubmitPath=null),r.name!=null&&r.hasOwnProperty("name")&&(e.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.name,t)),r.baseUrl!=null&&r.hasOwnProperty("baseUrl")&&(e.baseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.baseUrl,t)),r.postWizardPath!=null&&r.hasOwnProperty("postWizardPath")&&(e.postWizardPath=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.postWizardPath,t)),r.fileSubmitPath!=null&&r.hasOwnProperty("fileSubmitPath")&&(e.fileSubmitPath=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.fileSubmitPath,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PostingServerProto"},i}(),c.PlanetaryDatabaseProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.url=null,i.prototype.name=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PlanetaryDatabaseProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.url=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.name=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("url"))throw u.ProtocolError("missing required 'url'",{instance:o});if(!o.hasOwnProperty("name"))throw u.ProtocolError("missing required 'name'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";{var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.url);if(t)return"url."+t}{var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.name);if(t)return"name."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PlanetaryDatabaseProto)return r;var t=new n.keyhole.dbroot.PlanetaryDatabaseProto;if(r.url!=null){if(typeof r.url!="object")throw TypeError(".keyhole.dbroot.PlanetaryDatabaseProto.url: object expected");t.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.url)}if(r.name!=null){if(typeof r.name!="object")throw TypeError(".keyhole.dbroot.PlanetaryDatabaseProto.name: object expected");t.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.name)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.url=null,e.name=null),r.url!=null&&r.hasOwnProperty("url")&&(e.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.url,t)),r.name!=null&&r.hasOwnProperty("name")&&(e.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.name,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PlanetaryDatabaseProto"},i}(),c.LogServerProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.url=null,i.prototype.enable=!1,i.prototype.throttlingFactor=1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.LogServerProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.url=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.enable=r.bool();break}case 3:{o.throttlingFactor=r.int32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.url!=null&&r.hasOwnProperty("url")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.url);if(t)return"url."+t}return r.enable!=null&&r.hasOwnProperty("enable")&&typeof r.enable!="boolean"?"enable: boolean expected":r.throttlingFactor!=null&&r.hasOwnProperty("throttlingFactor")&&!u.isInteger(r.throttlingFactor)?"throttlingFactor: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.LogServerProto)return r;var t=new n.keyhole.dbroot.LogServerProto;if(r.url!=null){if(typeof r.url!="object")throw TypeError(".keyhole.dbroot.LogServerProto.url: object expected");t.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.url)}return r.enable!=null&&(t.enable=!!r.enable),r.throttlingFactor!=null&&(t.throttlingFactor=r.throttlingFactor|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.url=null,e.enable=!1,e.throttlingFactor=1),r.url!=null&&r.hasOwnProperty("url")&&(e.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.url,t)),r.enable!=null&&r.hasOwnProperty("enable")&&(e.enable=r.enable),r.throttlingFactor!=null&&r.hasOwnProperty("throttlingFactor")&&(e.throttlingFactor=r.throttlingFactor),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.LogServerProto"},i}(),c.EndSnippetProto=function(){function i(l){if(this.mfeDomains=[],this.searchTab=[],this.cobrandInfo=[],this.validDatabase=[],this.configScript=[],this.planetaryDatabase=[],this.filmstripConfig=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.model=null,i.prototype.authServerUrl=null,i.prototype.disableAuthentication=!1,i.prototype.mfeDomains=u.emptyArray,i.prototype.mfeLangParam="hl=$5Bhl5D",i.prototype.adsUrlPatterns="",i.prototype.reverseGeocoderUrl=null,i.prototype.reverseGeocoderProtocolVersion=3,i.prototype.skyDatabaseIsAvailable=!0,i.prototype.skyDatabaseUrl=null,i.prototype.defaultWebPageIntlUrl=null,i.prototype.numStartUpTips=17,i.prototype.startUpTipsUrl=null,i.prototype.numProStartUpTips=0,i.prototype.proStartUpTipsUrl=null,i.prototype.startupTipsIntlUrl=null,i.prototype.userGuideIntlUrl=null,i.prototype.supportCenterIntlUrl=null,i.prototype.businessListingIntlUrl=null,i.prototype.supportAnswerIntlUrl=null,i.prototype.supportTopicIntlUrl=null,i.prototype.supportRequestIntlUrl=null,i.prototype.earthIntlUrl=null,i.prototype.addContentUrl=null,i.prototype.sketchupNotInstalledUrl=null,i.prototype.sketchupErrorUrl=null,i.prototype.freeLicenseUrl=null,i.prototype.proLicenseUrl=null,i.prototype.tutorialUrl=null,i.prototype.keyboardShortcutsUrl=null,i.prototype.releaseNotesUrl=null,i.prototype.hideUserData=!1,i.prototype.useGeLogo=!0,i.prototype.dioramaDescriptionUrlBase=null,i.prototype.dioramaDefaultColor=4291281607,i.prototype.dioramaBlacklistUrl=null,i.prototype.clientOptions=null,i.prototype.fetchingOptions=null,i.prototype.timeMachineOptions=null,i.prototype.csiOptions=null,i.prototype.searchTab=u.emptyArray,i.prototype.cobrandInfo=u.emptyArray,i.prototype.validDatabase=u.emptyArray,i.prototype.configScript=u.emptyArray,i.prototype.deauthServerUrl=null,i.prototype.swoopParameters=null,i.prototype.bbsServerInfo=null,i.prototype.dataErrorServerInfo=null,i.prototype.planetaryDatabase=u.emptyArray,i.prototype.logServer=null,i.prototype.autopiaOptions=null,i.prototype.searchConfig=null,i.prototype.searchInfo=null,i.prototype.elevationServiceBaseUrl="http://maps.google.com/maps/api/elevation/",i.prototype.elevationProfileQueryDelay=500,i.prototype.proUpgradeUrl=null,i.prototype.earthCommunityUrl=null,i.prototype.googleMapsUrl=null,i.prototype.sharingUrl=null,i.prototype.privacyPolicyUrl=null,i.prototype.doGplusUserCheck=!1,i.prototype.rocktreeDataProto=null,i.prototype.filmstripConfig=u.emptyArray,i.prototype.showSigninButton=!1,i.prototype.proMeasureUpsellUrl=null,i.prototype.proPrintUpsellUrl=null,i.prototype.starDataProto=null,i.prototype.feedbackUrl=null,i.prototype.oauth2LoginUrl=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.EndSnippetProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.model=n.keyhole.dbroot.PlanetModelProto.decode(r,r.uint32());break}case 2:{o.authServerUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.disableAuthentication=r.bool();break}case 4:{o.mfeDomains&&o.mfeDomains.length||(o.mfeDomains=[]),o.mfeDomains.push(n.keyhole.dbroot.MfeDomainFeaturesProto.decode(r,r.uint32()));break}case 5:{o.mfeLangParam=r.string();break}case 6:{o.adsUrlPatterns=r.string();break}case 7:{o.reverseGeocoderUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 8:{o.reverseGeocoderProtocolVersion=r.int32();break}case 9:{o.skyDatabaseIsAvailable=r.bool();break}case 10:{o.skyDatabaseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 11:{o.defaultWebPageIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 12:{o.numStartUpTips=r.int32();break}case 13:{o.startUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 51:{o.numProStartUpTips=r.int32();break}case 52:{o.proStartUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 64:{o.startupTipsIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 14:{o.userGuideIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 15:{o.supportCenterIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 16:{o.businessListingIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 17:{o.supportAnswerIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 18:{o.supportTopicIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 19:{o.supportRequestIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 20:{o.earthIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 21:{o.addContentUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 22:{o.sketchupNotInstalledUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 23:{o.sketchupErrorUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 24:{o.freeLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 25:{o.proLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 48:{o.tutorialUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 49:{o.keyboardShortcutsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 50:{o.releaseNotesUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 26:{o.hideUserData=r.bool();break}case 27:{o.useGeLogo=r.bool();break}case 28:{o.dioramaDescriptionUrlBase=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 29:{o.dioramaDefaultColor=r.uint32();break}case 53:{o.dioramaBlacklistUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 30:{o.clientOptions=n.keyhole.dbroot.ClientOptionsProto.decode(r,r.uint32());break}case 31:{o.fetchingOptions=n.keyhole.dbroot.FetchingOptionsProto.decode(r,r.uint32());break}case 32:{o.timeMachineOptions=n.keyhole.dbroot.TimeMachineOptionsProto.decode(r,r.uint32());break}case 33:{o.csiOptions=n.keyhole.dbroot.CSIOptionsProto.decode(r,r.uint32());break}case 34:{o.searchTab&&o.searchTab.length||(o.searchTab=[]),o.searchTab.push(n.keyhole.dbroot.SearchTabProto.decode(r,r.uint32()));break}case 35:{o.cobrandInfo&&o.cobrandInfo.length||(o.cobrandInfo=[]),o.cobrandInfo.push(n.keyhole.dbroot.CobrandProto.decode(r,r.uint32()));break}case 36:{o.validDatabase&&o.validDatabase.length||(o.validDatabase=[]),o.validDatabase.push(n.keyhole.dbroot.DatabaseDescriptionProto.decode(r,r.uint32()));break}case 37:{o.configScript&&o.configScript.length||(o.configScript=[]),o.configScript.push(n.keyhole.dbroot.ConfigScriptProto.decode(r,r.uint32()));break}case 38:{o.deauthServerUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 39:{o.swoopParameters=n.keyhole.dbroot.SwoopParamsProto.decode(r,r.uint32());break}case 40:{o.bbsServerInfo=n.keyhole.dbroot.PostingServerProto.decode(r,r.uint32());break}case 41:{o.dataErrorServerInfo=n.keyhole.dbroot.PostingServerProto.decode(r,r.uint32());break}case 42:{o.planetaryDatabase&&o.planetaryDatabase.length||(o.planetaryDatabase=[]),o.planetaryDatabase.push(n.keyhole.dbroot.PlanetaryDatabaseProto.decode(r,r.uint32()));break}case 43:{o.logServer=n.keyhole.dbroot.LogServerProto.decode(r,r.uint32());break}case 44:{o.autopiaOptions=n.keyhole.dbroot.AutopiaOptionsProto.decode(r,r.uint32());break}case 54:{o.searchConfig=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.decode(r,r.uint32());break}case 45:{o.searchInfo=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.decode(r,r.uint32());break}case 46:{o.elevationServiceBaseUrl=r.string();break}case 47:{o.elevationProfileQueryDelay=r.int32();break}case 55:{o.proUpgradeUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 56:{o.earthCommunityUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 57:{o.googleMapsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 58:{o.sharingUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 59:{o.privacyPolicyUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 60:{o.doGplusUserCheck=r.bool();break}case 61:{o.rocktreeDataProto=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.decode(r,r.uint32());break}case 62:{o.filmstripConfig&&o.filmstripConfig.length||(o.filmstripConfig=[]),o.filmstripConfig.push(n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.decode(r,r.uint32()));break}case 63:{o.showSigninButton=r.bool();break}case 65:{o.proMeasureUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 66:{o.proPrintUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 67:{o.starDataProto=n.keyhole.dbroot.EndSnippetProto.StarDataProto.decode(r,r.uint32());break}case 68:{o.feedbackUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 69:{o.oauth2LoginUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.model!=null&&r.hasOwnProperty("model")){var t=n.keyhole.dbroot.PlanetModelProto.verify(r.model);if(t)return"model."+t}if(r.authServerUrl!=null&&r.hasOwnProperty("authServerUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.authServerUrl);if(t)return"authServerUrl."+t}if(r.disableAuthentication!=null&&r.hasOwnProperty("disableAuthentication")&&typeof r.disableAuthentication!="boolean")return"disableAuthentication: boolean expected";if(r.mfeDomains!=null&&r.hasOwnProperty("mfeDomains")){if(!Array.isArray(r.mfeDomains))return"mfeDomains: array expected";for(var e=0;e<r.mfeDomains.length;++e){var t=n.keyhole.dbroot.MfeDomainFeaturesProto.verify(r.mfeDomains[e]);if(t)return"mfeDomains."+t}}if(r.mfeLangParam!=null&&r.hasOwnProperty("mfeLangParam")&&!u.isString(r.mfeLangParam))return"mfeLangParam: string expected";if(r.adsUrlPatterns!=null&&r.hasOwnProperty("adsUrlPatterns")&&!u.isString(r.adsUrlPatterns))return"adsUrlPatterns: string expected";if(r.reverseGeocoderUrl!=null&&r.hasOwnProperty("reverseGeocoderUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.reverseGeocoderUrl);if(t)return"reverseGeocoderUrl."+t}if(r.reverseGeocoderProtocolVersion!=null&&r.hasOwnProperty("reverseGeocoderProtocolVersion")&&!u.isInteger(r.reverseGeocoderProtocolVersion))return"reverseGeocoderProtocolVersion: integer expected";if(r.skyDatabaseIsAvailable!=null&&r.hasOwnProperty("skyDatabaseIsAvailable")&&typeof r.skyDatabaseIsAvailable!="boolean")return"skyDatabaseIsAvailable: boolean expected";if(r.skyDatabaseUrl!=null&&r.hasOwnProperty("skyDatabaseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.skyDatabaseUrl);if(t)return"skyDatabaseUrl."+t}if(r.defaultWebPageIntlUrl!=null&&r.hasOwnProperty("defaultWebPageIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.defaultWebPageIntlUrl);if(t)return"defaultWebPageIntlUrl."+t}if(r.numStartUpTips!=null&&r.hasOwnProperty("numStartUpTips")&&!u.isInteger(r.numStartUpTips))return"numStartUpTips: integer expected";if(r.startUpTipsUrl!=null&&r.hasOwnProperty("startUpTipsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.startUpTipsUrl);if(t)return"startUpTipsUrl."+t}if(r.numProStartUpTips!=null&&r.hasOwnProperty("numProStartUpTips")&&!u.isInteger(r.numProStartUpTips))return"numProStartUpTips: integer expected";if(r.proStartUpTipsUrl!=null&&r.hasOwnProperty("proStartUpTipsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proStartUpTipsUrl);if(t)return"proStartUpTipsUrl."+t}if(r.startupTipsIntlUrl!=null&&r.hasOwnProperty("startupTipsIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.startupTipsIntlUrl);if(t)return"startupTipsIntlUrl."+t}if(r.userGuideIntlUrl!=null&&r.hasOwnProperty("userGuideIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.userGuideIntlUrl);if(t)return"userGuideIntlUrl."+t}if(r.supportCenterIntlUrl!=null&&r.hasOwnProperty("supportCenterIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportCenterIntlUrl);if(t)return"supportCenterIntlUrl."+t}if(r.businessListingIntlUrl!=null&&r.hasOwnProperty("businessListingIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.businessListingIntlUrl);if(t)return"businessListingIntlUrl."+t}if(r.supportAnswerIntlUrl!=null&&r.hasOwnProperty("supportAnswerIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportAnswerIntlUrl);if(t)return"supportAnswerIntlUrl."+t}if(r.supportTopicIntlUrl!=null&&r.hasOwnProperty("supportTopicIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportTopicIntlUrl);if(t)return"supportTopicIntlUrl."+t}if(r.supportRequestIntlUrl!=null&&r.hasOwnProperty("supportRequestIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportRequestIntlUrl);if(t)return"supportRequestIntlUrl."+t}if(r.earthIntlUrl!=null&&r.hasOwnProperty("earthIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.earthIntlUrl);if(t)return"earthIntlUrl."+t}if(r.addContentUrl!=null&&r.hasOwnProperty("addContentUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.addContentUrl);if(t)return"addContentUrl."+t}if(r.sketchupNotInstalledUrl!=null&&r.hasOwnProperty("sketchupNotInstalledUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.sketchupNotInstalledUrl);if(t)return"sketchupNotInstalledUrl."+t}if(r.sketchupErrorUrl!=null&&r.hasOwnProperty("sketchupErrorUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.sketchupErrorUrl);if(t)return"sketchupErrorUrl."+t}if(r.freeLicenseUrl!=null&&r.hasOwnProperty("freeLicenseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.freeLicenseUrl);if(t)return"freeLicenseUrl."+t}if(r.proLicenseUrl!=null&&r.hasOwnProperty("proLicenseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proLicenseUrl);if(t)return"proLicenseUrl."+t}if(r.tutorialUrl!=null&&r.hasOwnProperty("tutorialUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.tutorialUrl);if(t)return"tutorialUrl."+t}if(r.keyboardShortcutsUrl!=null&&r.hasOwnProperty("keyboardShortcutsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.keyboardShortcutsUrl);if(t)return"keyboardShortcutsUrl."+t}if(r.releaseNotesUrl!=null&&r.hasOwnProperty("releaseNotesUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.releaseNotesUrl);if(t)return"releaseNotesUrl."+t}if(r.hideUserData!=null&&r.hasOwnProperty("hideUserData")&&typeof r.hideUserData!="boolean")return"hideUserData: boolean expected";if(r.useGeLogo!=null&&r.hasOwnProperty("useGeLogo")&&typeof r.useGeLogo!="boolean")return"useGeLogo: boolean expected";if(r.dioramaDescriptionUrlBase!=null&&r.hasOwnProperty("dioramaDescriptionUrlBase")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.dioramaDescriptionUrlBase);if(t)return"dioramaDescriptionUrlBase."+t}if(r.dioramaDefaultColor!=null&&r.hasOwnProperty("dioramaDefaultColor")&&!u.isInteger(r.dioramaDefaultColor))return"dioramaDefaultColor: integer expected";if(r.dioramaBlacklistUrl!=null&&r.hasOwnProperty("dioramaBlacklistUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.dioramaBlacklistUrl);if(t)return"dioramaBlacklistUrl."+t}if(r.clientOptions!=null&&r.hasOwnProperty("clientOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.verify(r.clientOptions);if(t)return"clientOptions."+t}if(r.fetchingOptions!=null&&r.hasOwnProperty("fetchingOptions")){var t=n.keyhole.dbroot.FetchingOptionsProto.verify(r.fetchingOptions);if(t)return"fetchingOptions."+t}if(r.timeMachineOptions!=null&&r.hasOwnProperty("timeMachineOptions")){var t=n.keyhole.dbroot.TimeMachineOptionsProto.verify(r.timeMachineOptions);if(t)return"timeMachineOptions."+t}if(r.csiOptions!=null&&r.hasOwnProperty("csiOptions")){var t=n.keyhole.dbroot.CSIOptionsProto.verify(r.csiOptions);if(t)return"csiOptions."+t}if(r.searchTab!=null&&r.hasOwnProperty("searchTab")){if(!Array.isArray(r.searchTab))return"searchTab: array expected";for(var e=0;e<r.searchTab.length;++e){var t=n.keyhole.dbroot.SearchTabProto.verify(r.searchTab[e]);if(t)return"searchTab."+t}}if(r.cobrandInfo!=null&&r.hasOwnProperty("cobrandInfo")){if(!Array.isArray(r.cobrandInfo))return"cobrandInfo: array expected";for(var e=0;e<r.cobrandInfo.length;++e){var t=n.keyhole.dbroot.CobrandProto.verify(r.cobrandInfo[e]);if(t)return"cobrandInfo."+t}}if(r.validDatabase!=null&&r.hasOwnProperty("validDatabase")){if(!Array.isArray(r.validDatabase))return"validDatabase: array expected";for(var e=0;e<r.validDatabase.length;++e){var t=n.keyhole.dbroot.DatabaseDescriptionProto.verify(r.validDatabase[e]);if(t)return"validDatabase."+t}}if(r.configScript!=null&&r.hasOwnProperty("configScript")){if(!Array.isArray(r.configScript))return"configScript: array expected";for(var e=0;e<r.configScript.length;++e){var t=n.keyhole.dbroot.ConfigScriptProto.verify(r.configScript[e]);if(t)return"configScript."+t}}if(r.deauthServerUrl!=null&&r.hasOwnProperty("deauthServerUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.deauthServerUrl);if(t)return"deauthServerUrl."+t}if(r.swoopParameters!=null&&r.hasOwnProperty("swoopParameters")){var t=n.keyhole.dbroot.SwoopParamsProto.verify(r.swoopParameters);if(t)return"swoopParameters."+t}if(r.bbsServerInfo!=null&&r.hasOwnProperty("bbsServerInfo")){var t=n.keyhole.dbroot.PostingServerProto.verify(r.bbsServerInfo);if(t)return"bbsServerInfo."+t}if(r.dataErrorServerInfo!=null&&r.hasOwnProperty("dataErrorServerInfo")){var t=n.keyhole.dbroot.PostingServerProto.verify(r.dataErrorServerInfo);if(t)return"dataErrorServerInfo."+t}if(r.planetaryDatabase!=null&&r.hasOwnProperty("planetaryDatabase")){if(!Array.isArray(r.planetaryDatabase))return"planetaryDatabase: array expected";for(var e=0;e<r.planetaryDatabase.length;++e){var t=n.keyhole.dbroot.PlanetaryDatabaseProto.verify(r.planetaryDatabase[e]);if(t)return"planetaryDatabase."+t}}if(r.logServer!=null&&r.hasOwnProperty("logServer")){var t=n.keyhole.dbroot.LogServerProto.verify(r.logServer);if(t)return"logServer."+t}if(r.autopiaOptions!=null&&r.hasOwnProperty("autopiaOptions")){var t=n.keyhole.dbroot.AutopiaOptionsProto.verify(r.autopiaOptions);if(t)return"autopiaOptions."+t}if(r.searchConfig!=null&&r.hasOwnProperty("searchConfig")){var t=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.verify(r.searchConfig);if(t)return"searchConfig."+t}if(r.searchInfo!=null&&r.hasOwnProperty("searchInfo")){var t=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.verify(r.searchInfo);if(t)return"searchInfo."+t}if(r.elevationServiceBaseUrl!=null&&r.hasOwnProperty("elevationServiceBaseUrl")&&!u.isString(r.elevationServiceBaseUrl))return"elevationServiceBaseUrl: string expected";if(r.elevationProfileQueryDelay!=null&&r.hasOwnProperty("elevationProfileQueryDelay")&&!u.isInteger(r.elevationProfileQueryDelay))return"elevationProfileQueryDelay: integer expected";if(r.proUpgradeUrl!=null&&r.hasOwnProperty("proUpgradeUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proUpgradeUrl);if(t)return"proUpgradeUrl."+t}if(r.earthCommunityUrl!=null&&r.hasOwnProperty("earthCommunityUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.earthCommunityUrl);if(t)return"earthCommunityUrl."+t}if(r.googleMapsUrl!=null&&r.hasOwnProperty("googleMapsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.googleMapsUrl);if(t)return"googleMapsUrl."+t}if(r.sharingUrl!=null&&r.hasOwnProperty("sharingUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.sharingUrl);if(t)return"sharingUrl."+t}if(r.privacyPolicyUrl!=null&&r.hasOwnProperty("privacyPolicyUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.privacyPolicyUrl);if(t)return"privacyPolicyUrl."+t}if(r.doGplusUserCheck!=null&&r.hasOwnProperty("doGplusUserCheck")&&typeof r.doGplusUserCheck!="boolean")return"doGplusUserCheck: boolean expected";if(r.rocktreeDataProto!=null&&r.hasOwnProperty("rocktreeDataProto")){var t=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.verify(r.rocktreeDataProto);if(t)return"rocktreeDataProto."+t}if(r.filmstripConfig!=null&&r.hasOwnProperty("filmstripConfig")){if(!Array.isArray(r.filmstripConfig))return"filmstripConfig: array expected";for(var e=0;e<r.filmstripConfig.length;++e){var t=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.verify(r.filmstripConfig[e]);if(t)return"filmstripConfig."+t}}if(r.showSigninButton!=null&&r.hasOwnProperty("showSigninButton")&&typeof r.showSigninButton!="boolean")return"showSigninButton: boolean expected";if(r.proMeasureUpsellUrl!=null&&r.hasOwnProperty("proMeasureUpsellUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proMeasureUpsellUrl);if(t)return"proMeasureUpsellUrl."+t}if(r.proPrintUpsellUrl!=null&&r.hasOwnProperty("proPrintUpsellUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proPrintUpsellUrl);if(t)return"proPrintUpsellUrl."+t}if(r.starDataProto!=null&&r.hasOwnProperty("starDataProto")){var t=n.keyhole.dbroot.EndSnippetProto.StarDataProto.verify(r.starDataProto);if(t)return"starDataProto."+t}if(r.feedbackUrl!=null&&r.hasOwnProperty("feedbackUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.feedbackUrl);if(t)return"feedbackUrl."+t}if(r.oauth2LoginUrl!=null&&r.hasOwnProperty("oauth2LoginUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.oauth2LoginUrl);if(t)return"oauth2LoginUrl."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.EndSnippetProto)return r;var t=new n.keyhole.dbroot.EndSnippetProto;if(r.model!=null){if(typeof r.model!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.model: object expected");t.model=n.keyhole.dbroot.PlanetModelProto.fromObject(r.model)}if(r.authServerUrl!=null){if(typeof r.authServerUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.authServerUrl: object expected");t.authServerUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.authServerUrl)}if(r.disableAuthentication!=null&&(t.disableAuthentication=!!r.disableAuthentication),r.mfeDomains){if(!Array.isArray(r.mfeDomains))throw TypeError(".keyhole.dbroot.EndSnippetProto.mfeDomains: array expected");t.mfeDomains=[];for(var e=0;e<r.mfeDomains.length;++e){if(typeof r.mfeDomains[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.mfeDomains: object expected");t.mfeDomains[e]=n.keyhole.dbroot.MfeDomainFeaturesProto.fromObject(r.mfeDomains[e])}}if(r.mfeLangParam!=null&&(t.mfeLangParam=String(r.mfeLangParam)),r.adsUrlPatterns!=null&&(t.adsUrlPatterns=String(r.adsUrlPatterns)),r.reverseGeocoderUrl!=null){if(typeof r.reverseGeocoderUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.reverseGeocoderUrl: object expected");t.reverseGeocoderUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.reverseGeocoderUrl)}if(r.reverseGeocoderProtocolVersion!=null&&(t.reverseGeocoderProtocolVersion=r.reverseGeocoderProtocolVersion|0),r.skyDatabaseIsAvailable!=null&&(t.skyDatabaseIsAvailable=!!r.skyDatabaseIsAvailable),r.skyDatabaseUrl!=null){if(typeof r.skyDatabaseUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.skyDatabaseUrl: object expected");t.skyDatabaseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.skyDatabaseUrl)}if(r.defaultWebPageIntlUrl!=null){if(typeof r.defaultWebPageIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.defaultWebPageIntlUrl: object expected");t.defaultWebPageIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.defaultWebPageIntlUrl)}if(r.numStartUpTips!=null&&(t.numStartUpTips=r.numStartUpTips|0),r.startUpTipsUrl!=null){if(typeof r.startUpTipsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.startUpTipsUrl: object expected");t.startUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.startUpTipsUrl)}if(r.numProStartUpTips!=null&&(t.numProStartUpTips=r.numProStartUpTips|0),r.proStartUpTipsUrl!=null){if(typeof r.proStartUpTipsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proStartUpTipsUrl: object expected");t.proStartUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proStartUpTipsUrl)}if(r.startupTipsIntlUrl!=null){if(typeof r.startupTipsIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.startupTipsIntlUrl: object expected");t.startupTipsIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.startupTipsIntlUrl)}if(r.userGuideIntlUrl!=null){if(typeof r.userGuideIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.userGuideIntlUrl: object expected");t.userGuideIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.userGuideIntlUrl)}if(r.supportCenterIntlUrl!=null){if(typeof r.supportCenterIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportCenterIntlUrl: object expected");t.supportCenterIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportCenterIntlUrl)}if(r.businessListingIntlUrl!=null){if(typeof r.businessListingIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.businessListingIntlUrl: object expected");t.businessListingIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.businessListingIntlUrl)}if(r.supportAnswerIntlUrl!=null){if(typeof r.supportAnswerIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportAnswerIntlUrl: object expected");t.supportAnswerIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportAnswerIntlUrl)}if(r.supportTopicIntlUrl!=null){if(typeof r.supportTopicIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportTopicIntlUrl: object expected");t.supportTopicIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportTopicIntlUrl)}if(r.supportRequestIntlUrl!=null){if(typeof r.supportRequestIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportRequestIntlUrl: object expected");t.supportRequestIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportRequestIntlUrl)}if(r.earthIntlUrl!=null){if(typeof r.earthIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.earthIntlUrl: object expected");t.earthIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.earthIntlUrl)}if(r.addContentUrl!=null){if(typeof r.addContentUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.addContentUrl: object expected");t.addContentUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.addContentUrl)}if(r.sketchupNotInstalledUrl!=null){if(typeof r.sketchupNotInstalledUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.sketchupNotInstalledUrl: object expected");t.sketchupNotInstalledUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.sketchupNotInstalledUrl)}if(r.sketchupErrorUrl!=null){if(typeof r.sketchupErrorUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.sketchupErrorUrl: object expected");t.sketchupErrorUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.sketchupErrorUrl)}if(r.freeLicenseUrl!=null){if(typeof r.freeLicenseUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.freeLicenseUrl: object expected");t.freeLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.freeLicenseUrl)}if(r.proLicenseUrl!=null){if(typeof r.proLicenseUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proLicenseUrl: object expected");t.proLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proLicenseUrl)}if(r.tutorialUrl!=null){if(typeof r.tutorialUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.tutorialUrl: object expected");t.tutorialUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.tutorialUrl)}if(r.keyboardShortcutsUrl!=null){if(typeof r.keyboardShortcutsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.keyboardShortcutsUrl: object expected");t.keyboardShortcutsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.keyboardShortcutsUrl)}if(r.releaseNotesUrl!=null){if(typeof r.releaseNotesUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.releaseNotesUrl: object expected");t.releaseNotesUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.releaseNotesUrl)}if(r.hideUserData!=null&&(t.hideUserData=!!r.hideUserData),r.useGeLogo!=null&&(t.useGeLogo=!!r.useGeLogo),r.dioramaDescriptionUrlBase!=null){if(typeof r.dioramaDescriptionUrlBase!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.dioramaDescriptionUrlBase: object expected");t.dioramaDescriptionUrlBase=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.dioramaDescriptionUrlBase)}if(r.dioramaDefaultColor!=null&&(t.dioramaDefaultColor=r.dioramaDefaultColor>>>0),r.dioramaBlacklistUrl!=null){if(typeof r.dioramaBlacklistUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.dioramaBlacklistUrl: object expected");t.dioramaBlacklistUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.dioramaBlacklistUrl)}if(r.clientOptions!=null){if(typeof r.clientOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.clientOptions: object expected");t.clientOptions=n.keyhole.dbroot.ClientOptionsProto.fromObject(r.clientOptions)}if(r.fetchingOptions!=null){if(typeof r.fetchingOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.fetchingOptions: object expected");t.fetchingOptions=n.keyhole.dbroot.FetchingOptionsProto.fromObject(r.fetchingOptions)}if(r.timeMachineOptions!=null){if(typeof r.timeMachineOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.timeMachineOptions: object expected");t.timeMachineOptions=n.keyhole.dbroot.TimeMachineOptionsProto.fromObject(r.timeMachineOptions)}if(r.csiOptions!=null){if(typeof r.csiOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.csiOptions: object expected");t.csiOptions=n.keyhole.dbroot.CSIOptionsProto.fromObject(r.csiOptions)}if(r.searchTab){if(!Array.isArray(r.searchTab))throw TypeError(".keyhole.dbroot.EndSnippetProto.searchTab: array expected");t.searchTab=[];for(var e=0;e<r.searchTab.length;++e){if(typeof r.searchTab[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.searchTab: object expected");t.searchTab[e]=n.keyhole.dbroot.SearchTabProto.fromObject(r.searchTab[e])}}if(r.cobrandInfo){if(!Array.isArray(r.cobrandInfo))throw TypeError(".keyhole.dbroot.EndSnippetProto.cobrandInfo: array expected");t.cobrandInfo=[];for(var e=0;e<r.cobrandInfo.length;++e){if(typeof r.cobrandInfo[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.cobrandInfo: object expected");t.cobrandInfo[e]=n.keyhole.dbroot.CobrandProto.fromObject(r.cobrandInfo[e])}}if(r.validDatabase){if(!Array.isArray(r.validDatabase))throw TypeError(".keyhole.dbroot.EndSnippetProto.validDatabase: array expected");t.validDatabase=[];for(var e=0;e<r.validDatabase.length;++e){if(typeof r.validDatabase[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.validDatabase: object expected");t.validDatabase[e]=n.keyhole.dbroot.DatabaseDescriptionProto.fromObject(r.validDatabase[e])}}if(r.configScript){if(!Array.isArray(r.configScript))throw TypeError(".keyhole.dbroot.EndSnippetProto.configScript: array expected");t.configScript=[];for(var e=0;e<r.configScript.length;++e){if(typeof r.configScript[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.configScript: object expected");t.configScript[e]=n.keyhole.dbroot.ConfigScriptProto.fromObject(r.configScript[e])}}if(r.deauthServerUrl!=null){if(typeof r.deauthServerUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.deauthServerUrl: object expected");t.deauthServerUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.deauthServerUrl)}if(r.swoopParameters!=null){if(typeof r.swoopParameters!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.swoopParameters: object expected");t.swoopParameters=n.keyhole.dbroot.SwoopParamsProto.fromObject(r.swoopParameters)}if(r.bbsServerInfo!=null){if(typeof r.bbsServerInfo!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.bbsServerInfo: object expected");t.bbsServerInfo=n.keyhole.dbroot.PostingServerProto.fromObject(r.bbsServerInfo)}if(r.dataErrorServerInfo!=null){if(typeof r.dataErrorServerInfo!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.dataErrorServerInfo: object expected");t.dataErrorServerInfo=n.keyhole.dbroot.PostingServerProto.fromObject(r.dataErrorServerInfo)}if(r.planetaryDatabase){if(!Array.isArray(r.planetaryDatabase))throw TypeError(".keyhole.dbroot.EndSnippetProto.planetaryDatabase: array expected");t.planetaryDatabase=[];for(var e=0;e<r.planetaryDatabase.length;++e){if(typeof r.planetaryDatabase[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.planetaryDatabase: object expected");t.planetaryDatabase[e]=n.keyhole.dbroot.PlanetaryDatabaseProto.fromObject(r.planetaryDatabase[e])}}if(r.logServer!=null){if(typeof r.logServer!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.logServer: object expected");t.logServer=n.keyhole.dbroot.LogServerProto.fromObject(r.logServer)}if(r.autopiaOptions!=null){if(typeof r.autopiaOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.autopiaOptions: object expected");t.autopiaOptions=n.keyhole.dbroot.AutopiaOptionsProto.fromObject(r.autopiaOptions)}if(r.searchConfig!=null){if(typeof r.searchConfig!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.searchConfig: object expected");t.searchConfig=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.fromObject(r.searchConfig)}if(r.searchInfo!=null){if(typeof r.searchInfo!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.searchInfo: object expected");t.searchInfo=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.fromObject(r.searchInfo)}if(r.elevationServiceBaseUrl!=null&&(t.elevationServiceBaseUrl=String(r.elevationServiceBaseUrl)),r.elevationProfileQueryDelay!=null&&(t.elevationProfileQueryDelay=r.elevationProfileQueryDelay|0),r.proUpgradeUrl!=null){if(typeof r.proUpgradeUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proUpgradeUrl: object expected");t.proUpgradeUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proUpgradeUrl)}if(r.earthCommunityUrl!=null){if(typeof r.earthCommunityUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.earthCommunityUrl: object expected");t.earthCommunityUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.earthCommunityUrl)}if(r.googleMapsUrl!=null){if(typeof r.googleMapsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.googleMapsUrl: object expected");t.googleMapsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.googleMapsUrl)}if(r.sharingUrl!=null){if(typeof r.sharingUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.sharingUrl: object expected");t.sharingUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.sharingUrl)}if(r.privacyPolicyUrl!=null){if(typeof r.privacyPolicyUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.privacyPolicyUrl: object expected");t.privacyPolicyUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.privacyPolicyUrl)}if(r.doGplusUserCheck!=null&&(t.doGplusUserCheck=!!r.doGplusUserCheck),r.rocktreeDataProto!=null){if(typeof r.rocktreeDataProto!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.rocktreeDataProto: object expected");t.rocktreeDataProto=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.fromObject(r.rocktreeDataProto)}if(r.filmstripConfig){if(!Array.isArray(r.filmstripConfig))throw TypeError(".keyhole.dbroot.EndSnippetProto.filmstripConfig: array expected");t.filmstripConfig=[];for(var e=0;e<r.filmstripConfig.length;++e){if(typeof r.filmstripConfig[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.filmstripConfig: object expected");t.filmstripConfig[e]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.fromObject(r.filmstripConfig[e])}}if(r.showSigninButton!=null&&(t.showSigninButton=!!r.showSigninButton),r.proMeasureUpsellUrl!=null){if(typeof r.proMeasureUpsellUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proMeasureUpsellUrl: object expected");t.proMeasureUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proMeasureUpsellUrl)}if(r.proPrintUpsellUrl!=null){if(typeof r.proPrintUpsellUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proPrintUpsellUrl: object expected");t.proPrintUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proPrintUpsellUrl)}if(r.starDataProto!=null){if(typeof r.starDataProto!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.starDataProto: object expected");t.starDataProto=n.keyhole.dbroot.EndSnippetProto.StarDataProto.fromObject(r.starDataProto)}if(r.feedbackUrl!=null){if(typeof r.feedbackUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.feedbackUrl: object expected");t.feedbackUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.feedbackUrl)}if(r.oauth2LoginUrl!=null){if(typeof r.oauth2LoginUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.oauth2LoginUrl: object expected");t.oauth2LoginUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.oauth2LoginUrl)}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.mfeDomains=[],e.searchTab=[],e.cobrandInfo=[],e.validDatabase=[],e.configScript=[],e.planetaryDatabase=[],e.filmstripConfig=[]),t.defaults&&(e.model=null,e.authServerUrl=null,e.disableAuthentication=!1,e.mfeLangParam="hl=$5Bhl5D",e.adsUrlPatterns="",e.reverseGeocoderUrl=null,e.reverseGeocoderProtocolVersion=3,e.skyDatabaseIsAvailable=!0,e.skyDatabaseUrl=null,e.defaultWebPageIntlUrl=null,e.numStartUpTips=17,e.startUpTipsUrl=null,e.userGuideIntlUrl=null,e.supportCenterIntlUrl=null,e.businessListingIntlUrl=null,e.supportAnswerIntlUrl=null,e.supportTopicIntlUrl=null,e.supportRequestIntlUrl=null,e.earthIntlUrl=null,e.addContentUrl=null,e.sketchupNotInstalledUrl=null,e.sketchupErrorUrl=null,e.freeLicenseUrl=null,e.proLicenseUrl=null,e.hideUserData=!1,e.useGeLogo=!0,e.dioramaDescriptionUrlBase=null,e.dioramaDefaultColor=4291281607,e.clientOptions=null,e.fetchingOptions=null,e.timeMachineOptions=null,e.csiOptions=null,e.deauthServerUrl=null,e.swoopParameters=null,e.bbsServerInfo=null,e.dataErrorServerInfo=null,e.logServer=null,e.autopiaOptions=null,e.searchInfo=null,e.elevationServiceBaseUrl="http://maps.google.com/maps/api/elevation/",e.elevationProfileQueryDelay=500,e.tutorialUrl=null,e.keyboardShortcutsUrl=null,e.releaseNotesUrl=null,e.numProStartUpTips=0,e.proStartUpTipsUrl=null,e.dioramaBlacklistUrl=null,e.searchConfig=null,e.proUpgradeUrl=null,e.earthCommunityUrl=null,e.googleMapsUrl=null,e.sharingUrl=null,e.privacyPolicyUrl=null,e.doGplusUserCheck=!1,e.rocktreeDataProto=null,e.showSigninButton=!1,e.startupTipsIntlUrl=null,e.proMeasureUpsellUrl=null,e.proPrintUpsellUrl=null,e.starDataProto=null,e.feedbackUrl=null,e.oauth2LoginUrl=null),r.model!=null&&r.hasOwnProperty("model")&&(e.model=n.keyhole.dbroot.PlanetModelProto.toObject(r.model,t)),r.authServerUrl!=null&&r.hasOwnProperty("authServerUrl")&&(e.authServerUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.authServerUrl,t)),r.disableAuthentication!=null&&r.hasOwnProperty("disableAuthentication")&&(e.disableAuthentication=r.disableAuthentication),r.mfeDomains&&r.mfeDomains.length){e.mfeDomains=[];for(var o=0;o<r.mfeDomains.length;++o)e.mfeDomains[o]=n.keyhole.dbroot.MfeDomainFeaturesProto.toObject(r.mfeDomains[o],t)}if(r.mfeLangParam!=null&&r.hasOwnProperty("mfeLangParam")&&(e.mfeLangParam=r.mfeLangParam),r.adsUrlPatterns!=null&&r.hasOwnProperty("adsUrlPatterns")&&(e.adsUrlPatterns=r.adsUrlPatterns),r.reverseGeocoderUrl!=null&&r.hasOwnProperty("reverseGeocoderUrl")&&(e.reverseGeocoderUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.reverseGeocoderUrl,t)),r.reverseGeocoderProtocolVersion!=null&&r.hasOwnProperty("reverseGeocoderProtocolVersion")&&(e.reverseGeocoderProtocolVersion=r.reverseGeocoderProtocolVersion),r.skyDatabaseIsAvailable!=null&&r.hasOwnProperty("skyDatabaseIsAvailable")&&(e.skyDatabaseIsAvailable=r.skyDatabaseIsAvailable),r.skyDatabaseUrl!=null&&r.hasOwnProperty("skyDatabaseUrl")&&(e.skyDatabaseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.skyDatabaseUrl,t)),r.defaultWebPageIntlUrl!=null&&r.hasOwnProperty("defaultWebPageIntlUrl")&&(e.defaultWebPageIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.defaultWebPageIntlUrl,t)),r.numStartUpTips!=null&&r.hasOwnProperty("numStartUpTips")&&(e.numStartUpTips=r.numStartUpTips),r.startUpTipsUrl!=null&&r.hasOwnProperty("startUpTipsUrl")&&(e.startUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.startUpTipsUrl,t)),r.userGuideIntlUrl!=null&&r.hasOwnProperty("userGuideIntlUrl")&&(e.userGuideIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.userGuideIntlUrl,t)),r.supportCenterIntlUrl!=null&&r.hasOwnProperty("supportCenterIntlUrl")&&(e.supportCenterIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportCenterIntlUrl,t)),r.businessListingIntlUrl!=null&&r.hasOwnProperty("businessListingIntlUrl")&&(e.businessListingIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.businessListingIntlUrl,t)),r.supportAnswerIntlUrl!=null&&r.hasOwnProperty("supportAnswerIntlUrl")&&(e.supportAnswerIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportAnswerIntlUrl,t)),r.supportTopicIntlUrl!=null&&r.hasOwnProperty("supportTopicIntlUrl")&&(e.supportTopicIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportTopicIntlUrl,t)),r.supportRequestIntlUrl!=null&&r.hasOwnProperty("supportRequestIntlUrl")&&(e.supportRequestIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportRequestIntlUrl,t)),r.earthIntlUrl!=null&&r.hasOwnProperty("earthIntlUrl")&&(e.earthIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.earthIntlUrl,t)),r.addContentUrl!=null&&r.hasOwnProperty("addContentUrl")&&(e.addContentUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.addContentUrl,t)),r.sketchupNotInstalledUrl!=null&&r.hasOwnProperty("sketchupNotInstalledUrl")&&(e.sketchupNotInstalledUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.sketchupNotInstalledUrl,t)),r.sketchupErrorUrl!=null&&r.hasOwnProperty("sketchupErrorUrl")&&(e.sketchupErrorUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.sketchupErrorUrl,t)),r.freeLicenseUrl!=null&&r.hasOwnProperty("freeLicenseUrl")&&(e.freeLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.freeLicenseUrl,t)),r.proLicenseUrl!=null&&r.hasOwnProperty("proLicenseUrl")&&(e.proLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proLicenseUrl,t)),r.hideUserData!=null&&r.hasOwnProperty("hideUserData")&&(e.hideUserData=r.hideUserData),r.useGeLogo!=null&&r.hasOwnProperty("useGeLogo")&&(e.useGeLogo=r.useGeLogo),r.dioramaDescriptionUrlBase!=null&&r.hasOwnProperty("dioramaDescriptionUrlBase")&&(e.dioramaDescriptionUrlBase=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.dioramaDescriptionUrlBase,t)),r.dioramaDefaultColor!=null&&r.hasOwnProperty("dioramaDefaultColor")&&(e.dioramaDefaultColor=r.dioramaDefaultColor),r.clientOptions!=null&&r.hasOwnProperty("clientOptions")&&(e.clientOptions=n.keyhole.dbroot.ClientOptionsProto.toObject(r.clientOptions,t)),r.fetchingOptions!=null&&r.hasOwnProperty("fetchingOptions")&&(e.fetchingOptions=n.keyhole.dbroot.FetchingOptionsProto.toObject(r.fetchingOptions,t)),r.timeMachineOptions!=null&&r.hasOwnProperty("timeMachineOptions")&&(e.timeMachineOptions=n.keyhole.dbroot.TimeMachineOptionsProto.toObject(r.timeMachineOptions,t)),r.csiOptions!=null&&r.hasOwnProperty("csiOptions")&&(e.csiOptions=n.keyhole.dbroot.CSIOptionsProto.toObject(r.csiOptions,t)),r.searchTab&&r.searchTab.length){e.searchTab=[];for(var o=0;o<r.searchTab.length;++o)e.searchTab[o]=n.keyhole.dbroot.SearchTabProto.toObject(r.searchTab[o],t)}if(r.cobrandInfo&&r.cobrandInfo.length){e.cobrandInfo=[];for(var o=0;o<r.cobrandInfo.length;++o)e.cobrandInfo[o]=n.keyhole.dbroot.CobrandProto.toObject(r.cobrandInfo[o],t)}if(r.validDatabase&&r.validDatabase.length){e.validDatabase=[];for(var o=0;o<r.validDatabase.length;++o)e.validDatabase[o]=n.keyhole.dbroot.DatabaseDescriptionProto.toObject(r.validDatabase[o],t)}if(r.configScript&&r.configScript.length){e.configScript=[];for(var o=0;o<r.configScript.length;++o)e.configScript[o]=n.keyhole.dbroot.ConfigScriptProto.toObject(r.configScript[o],t)}if(r.deauthServerUrl!=null&&r.hasOwnProperty("deauthServerUrl")&&(e.deauthServerUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.deauthServerUrl,t)),r.swoopParameters!=null&&r.hasOwnProperty("swoopParameters")&&(e.swoopParameters=n.keyhole.dbroot.SwoopParamsProto.toObject(r.swoopParameters,t)),r.bbsServerInfo!=null&&r.hasOwnProperty("bbsServerInfo")&&(e.bbsServerInfo=n.keyhole.dbroot.PostingServerProto.toObject(r.bbsServerInfo,t)),r.dataErrorServerInfo!=null&&r.hasOwnProperty("dataErrorServerInfo")&&(e.dataErrorServerInfo=n.keyhole.dbroot.PostingServerProto.toObject(r.dataErrorServerInfo,t)),r.planetaryDatabase&&r.planetaryDatabase.length){e.planetaryDatabase=[];for(var o=0;o<r.planetaryDatabase.length;++o)e.planetaryDatabase[o]=n.keyhole.dbroot.PlanetaryDatabaseProto.toObject(r.planetaryDatabase[o],t)}if(r.logServer!=null&&r.hasOwnProperty("logServer")&&(e.logServer=n.keyhole.dbroot.LogServerProto.toObject(r.logServer,t)),r.autopiaOptions!=null&&r.hasOwnProperty("autopiaOptions")&&(e.autopiaOptions=n.keyhole.dbroot.AutopiaOptionsProto.toObject(r.autopiaOptions,t)),r.searchInfo!=null&&r.hasOwnProperty("searchInfo")&&(e.searchInfo=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.toObject(r.searchInfo,t)),r.elevationServiceBaseUrl!=null&&r.hasOwnProperty("elevationServiceBaseUrl")&&(e.elevationServiceBaseUrl=r.elevationServiceBaseUrl),r.elevationProfileQueryDelay!=null&&r.hasOwnProperty("elevationProfileQueryDelay")&&(e.elevationProfileQueryDelay=r.elevationProfileQueryDelay),r.tutorialUrl!=null&&r.hasOwnProperty("tutorialUrl")&&(e.tutorialUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.tutorialUrl,t)),r.keyboardShortcutsUrl!=null&&r.hasOwnProperty("keyboardShortcutsUrl")&&(e.keyboardShortcutsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.keyboardShortcutsUrl,t)),r.releaseNotesUrl!=null&&r.hasOwnProperty("releaseNotesUrl")&&(e.releaseNotesUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.releaseNotesUrl,t)),r.numProStartUpTips!=null&&r.hasOwnProperty("numProStartUpTips")&&(e.numProStartUpTips=r.numProStartUpTips),r.proStartUpTipsUrl!=null&&r.hasOwnProperty("proStartUpTipsUrl")&&(e.proStartUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proStartUpTipsUrl,t)),r.dioramaBlacklistUrl!=null&&r.hasOwnProperty("dioramaBlacklistUrl")&&(e.dioramaBlacklistUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.dioramaBlacklistUrl,t)),r.searchConfig!=null&&r.hasOwnProperty("searchConfig")&&(e.searchConfig=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.toObject(r.searchConfig,t)),r.proUpgradeUrl!=null&&r.hasOwnProperty("proUpgradeUrl")&&(e.proUpgradeUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proUpgradeUrl,t)),r.earthCommunityUrl!=null&&r.hasOwnProperty("earthCommunityUrl")&&(e.earthCommunityUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.earthCommunityUrl,t)),r.googleMapsUrl!=null&&r.hasOwnProperty("googleMapsUrl")&&(e.googleMapsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.googleMapsUrl,t)),r.sharingUrl!=null&&r.hasOwnProperty("sharingUrl")&&(e.sharingUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.sharingUrl,t)),r.privacyPolicyUrl!=null&&r.hasOwnProperty("privacyPolicyUrl")&&(e.privacyPolicyUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.privacyPolicyUrl,t)),r.doGplusUserCheck!=null&&r.hasOwnProperty("doGplusUserCheck")&&(e.doGplusUserCheck=r.doGplusUserCheck),r.rocktreeDataProto!=null&&r.hasOwnProperty("rocktreeDataProto")&&(e.rocktreeDataProto=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.toObject(r.rocktreeDataProto,t)),r.filmstripConfig&&r.filmstripConfig.length){e.filmstripConfig=[];for(var o=0;o<r.filmstripConfig.length;++o)e.filmstripConfig[o]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.toObject(r.filmstripConfig[o],t)}return r.showSigninButton!=null&&r.hasOwnProperty("showSigninButton")&&(e.showSigninButton=r.showSigninButton),r.startupTipsIntlUrl!=null&&r.hasOwnProperty("startupTipsIntlUrl")&&(e.startupTipsIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.startupTipsIntlUrl,t)),r.proMeasureUpsellUrl!=null&&r.hasOwnProperty("proMeasureUpsellUrl")&&(e.proMeasureUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proMeasureUpsellUrl,t)),r.proPrintUpsellUrl!=null&&r.hasOwnProperty("proPrintUpsellUrl")&&(e.proPrintUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proPrintUpsellUrl,t)),r.starDataProto!=null&&r.hasOwnProperty("starDataProto")&&(e.starDataProto=n.keyhole.dbroot.EndSnippetProto.StarDataProto.toObject(r.starDataProto,t)),r.feedbackUrl!=null&&r.hasOwnProperty("feedbackUrl")&&(e.feedbackUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.feedbackUrl,t)),r.oauth2LoginUrl!=null&&r.hasOwnProperty("oauth2LoginUrl")&&(e.oauth2LoginUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.oauth2LoginUrl,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.EndSnippetProto"},i.SearchConfigProto=function(){function l(r){if(this.searchServer=[],this.oneboxService=[],r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.searchServer=u.emptyArray,l.prototype.oneboxService=u.emptyArray,l.prototype.kmlSearchUrl=null,l.prototype.kmlRenderUrl=null,l.prototype.searchHistoryUrl=null,l.prototype.errorPageUrl=null,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.searchServer&&a.searchServer.length||(a.searchServer=[]),a.searchServer.push(n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.decode(t,t.uint32()));break}case 2:{a.oneboxService&&a.oneboxService.length||(a.oneboxService=[]),a.oneboxService.push(n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.decode(t,t.uint32()));break}case 3:{a.kmlSearchUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 4:{a.kmlRenderUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 6:{a.searchHistoryUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 5:{a.errorPageUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.searchServer!=null&&t.hasOwnProperty("searchServer")){if(!Array.isArray(t.searchServer))return"searchServer: array expected";for(var e=0;e<t.searchServer.length;++e){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.verify(t.searchServer[e]);if(o)return"searchServer."+o}}if(t.oneboxService!=null&&t.hasOwnProperty("oneboxService")){if(!Array.isArray(t.oneboxService))return"oneboxService: array expected";for(var e=0;e<t.oneboxService.length;++e){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.verify(t.oneboxService[e]);if(o)return"oneboxService."+o}}if(t.kmlSearchUrl!=null&&t.hasOwnProperty("kmlSearchUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.kmlSearchUrl);if(o)return"kmlSearchUrl."+o}if(t.kmlRenderUrl!=null&&t.hasOwnProperty("kmlRenderUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.kmlRenderUrl);if(o)return"kmlRenderUrl."+o}if(t.searchHistoryUrl!=null&&t.hasOwnProperty("searchHistoryUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.searchHistoryUrl);if(o)return"searchHistoryUrl."+o}if(t.errorPageUrl!=null&&t.hasOwnProperty("errorPageUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.errorPageUrl);if(o)return"errorPageUrl."+o}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto;if(t.searchServer){if(!Array.isArray(t.searchServer))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchServer: array expected");e.searchServer=[];for(var o=0;o<t.searchServer.length;++o){if(typeof t.searchServer[o]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchServer: object expected");e.searchServer[o]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.fromObject(t.searchServer[o])}}if(t.oneboxService){if(!Array.isArray(t.oneboxService))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.oneboxService: array expected");e.oneboxService=[];for(var o=0;o<t.oneboxService.length;++o){if(typeof t.oneboxService[o]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.oneboxService: object expected");e.oneboxService[o]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.fromObject(t.oneboxService[o])}}if(t.kmlSearchUrl!=null){if(typeof t.kmlSearchUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.kmlSearchUrl: object expected");e.kmlSearchUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.kmlSearchUrl)}if(t.kmlRenderUrl!=null){if(typeof t.kmlRenderUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.kmlRenderUrl: object expected");e.kmlRenderUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.kmlRenderUrl)}if(t.searchHistoryUrl!=null){if(typeof t.searchHistoryUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchHistoryUrl: object expected");e.searchHistoryUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.searchHistoryUrl)}if(t.errorPageUrl!=null){if(typeof t.errorPageUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.errorPageUrl: object expected");e.errorPageUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.errorPageUrl)}return e},l.toObject=function(t,e){e||(e={});var o={};if((e.arrays||e.defaults)&&(o.searchServer=[],o.oneboxService=[]),e.defaults&&(o.kmlSearchUrl=null,o.kmlRenderUrl=null,o.errorPageUrl=null,o.searchHistoryUrl=null),t.searchServer&&t.searchServer.length){o.searchServer=[];for(var a=0;a<t.searchServer.length;++a)o.searchServer[a]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.toObject(t.searchServer[a],e)}if(t.oneboxService&&t.oneboxService.length){o.oneboxService=[];for(var a=0;a<t.oneboxService.length;++a)o.oneboxService[a]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.toObject(t.oneboxService[a],e)}return t.kmlSearchUrl!=null&&t.hasOwnProperty("kmlSearchUrl")&&(o.kmlSearchUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.kmlSearchUrl,e)),t.kmlRenderUrl!=null&&t.hasOwnProperty("kmlRenderUrl")&&(o.kmlRenderUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.kmlRenderUrl,e)),t.errorPageUrl!=null&&t.hasOwnProperty("errorPageUrl")&&(o.errorPageUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.errorPageUrl,e)),t.searchHistoryUrl!=null&&t.hasOwnProperty("searchHistoryUrl")&&(o.searchHistoryUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.searchHistoryUrl,e)),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto"},l.SearchServer=function(){function r(t){if(this.suggestion=[],this.searchlet=[],t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.name=null,r.prototype.url=null,r.prototype.type=0,r.prototype.htmlTransformUrl=null,r.prototype.kmlTransformUrl=null,r.prototype.supplementalUi=null,r.prototype.suggestion=u.emptyArray,r.prototype.searchlet=u.emptyArray,r.prototype.requirements=null,r.prototype.suggestServer=null,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.name=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 2:{p.url=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 3:{p.type=e.int32();break}case 4:{p.htmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 5:{p.kmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 6:{p.supplementalUi=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.decode(e,e.uint32());break}case 9:{p.suggestion&&p.suggestion.length||(p.suggestion=[]),p.suggestion.push(n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32()));break}case 7:{p.searchlet&&p.searchlet.length||(p.searchlet=[]),p.searchlet.push(n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.decode(e,e.uint32()));break}case 8:{p.requirements=n.keyhole.dbroot.RequirementProto.decode(e,e.uint32());break}case 10:{p.suggestServer=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}default:e.skipType(y&7);break}}return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.name!=null&&e.hasOwnProperty("name")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.name);if(o)return"name."+o}if(e.url!=null&&e.hasOwnProperty("url")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.url);if(o)return"url."+o}if(e.type!=null&&e.hasOwnProperty("type"))switch(e.type){default:return"type: enum value expected";case 0:case 1:break}if(e.htmlTransformUrl!=null&&e.hasOwnProperty("htmlTransformUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.htmlTransformUrl);if(o)return"htmlTransformUrl."+o}if(e.kmlTransformUrl!=null&&e.hasOwnProperty("kmlTransformUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.kmlTransformUrl);if(o)return"kmlTransformUrl."+o}if(e.supplementalUi!=null&&e.hasOwnProperty("supplementalUi")){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.verify(e.supplementalUi);if(o)return"supplementalUi."+o}if(e.suggestion!=null&&e.hasOwnProperty("suggestion")){if(!Array.isArray(e.suggestion))return"suggestion: array expected";for(var a=0;a<e.suggestion.length;++a){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.suggestion[a]);if(o)return"suggestion."+o}}if(e.searchlet!=null&&e.hasOwnProperty("searchlet")){if(!Array.isArray(e.searchlet))return"searchlet: array expected";for(var a=0;a<e.searchlet.length;++a){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.verify(e.searchlet[a]);if(o)return"searchlet."+o}}if(e.requirements!=null&&e.hasOwnProperty("requirements")){var o=n.keyhole.dbroot.RequirementProto.verify(e.requirements);if(o)return"requirements."+o}if(e.suggestServer!=null&&e.hasOwnProperty("suggestServer")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.suggestServer);if(o)return"suggestServer."+o}return null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer)return e;var o=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer;if(e.name!=null){if(typeof e.name!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.name: object expected");o.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.name)}if(e.url!=null){if(typeof e.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.url: object expected");o.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.url)}switch(e.type){case"RESULT_TYPE_KML":case 0:o.type=0;break;case"RESULT_TYPE_XML":case 1:o.type=1;break}if(e.htmlTransformUrl!=null){if(typeof e.htmlTransformUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.htmlTransformUrl: object expected");o.htmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.htmlTransformUrl)}if(e.kmlTransformUrl!=null){if(typeof e.kmlTransformUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.kmlTransformUrl: object expected");o.kmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.kmlTransformUrl)}if(e.supplementalUi!=null){if(typeof e.supplementalUi!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.supplementalUi: object expected");o.supplementalUi=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.fromObject(e.supplementalUi)}if(e.suggestion){if(!Array.isArray(e.suggestion))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestion: array expected");o.suggestion=[];for(var a=0;a<e.suggestion.length;++a){if(typeof e.suggestion[a]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestion: object expected");o.suggestion[a]=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.suggestion[a])}}if(e.searchlet){if(!Array.isArray(e.searchlet))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.searchlet: array expected");o.searchlet=[];for(var a=0;a<e.searchlet.length;++a){if(typeof e.searchlet[a]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.searchlet: object expected");o.searchlet[a]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.fromObject(e.searchlet[a])}}if(e.requirements!=null){if(typeof e.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.requirements: object expected");o.requirements=n.keyhole.dbroot.RequirementProto.fromObject(e.requirements)}if(e.suggestServer!=null){if(typeof e.suggestServer!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestServer: object expected");o.suggestServer=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.suggestServer)}return o},r.toObject=function(e,o){o||(o={});var a={};if((o.arrays||o.defaults)&&(a.searchlet=[],a.suggestion=[]),o.defaults&&(a.name=null,a.url=null,a.type=o.enums===String?"RESULT_TYPE_KML":0,a.htmlTransformUrl=null,a.kmlTransformUrl=null,a.supplementalUi=null,a.requirements=null,a.suggestServer=null),e.name!=null&&e.hasOwnProperty("name")&&(a.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.name,o)),e.url!=null&&e.hasOwnProperty("url")&&(a.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.url,o)),e.type!=null&&e.hasOwnProperty("type")&&(a.type=o.enums===String?n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.ResultType[e.type]:e.type),e.htmlTransformUrl!=null&&e.hasOwnProperty("htmlTransformUrl")&&(a.htmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.htmlTransformUrl,o)),e.kmlTransformUrl!=null&&e.hasOwnProperty("kmlTransformUrl")&&(a.kmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.kmlTransformUrl,o)),e.supplementalUi!=null&&e.hasOwnProperty("supplementalUi")&&(a.supplementalUi=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.toObject(e.supplementalUi,o)),e.searchlet&&e.searchlet.length){a.searchlet=[];for(var p=0;p<e.searchlet.length;++p)a.searchlet[p]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.toObject(e.searchlet[p],o)}if(e.requirements!=null&&e.hasOwnProperty("requirements")&&(a.requirements=n.keyhole.dbroot.RequirementProto.toObject(e.requirements,o)),e.suggestion&&e.suggestion.length){a.suggestion=[];for(var p=0;p<e.suggestion.length;++p)a.suggestion[p]=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.suggestion[p],o)}return e.suggestServer!=null&&e.hasOwnProperty("suggestServer")&&(a.suggestServer=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.suggestServer,o)),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer"},r.ResultType=function(){var t={},e=Object.create(t);return e[t[0]="RESULT_TYPE_KML"]=0,e[t[1]="RESULT_TYPE_XML"]=1,e}(),r.SupplementalUi=function(){function t(e){if(e)for(var o=Object.keys(e),a=0;a<o.length;++a)e[o[a]]!=null&&(this[o[a]]=e[o[a]])}return t.prototype.url=null,t.prototype.label=null,t.prototype.height=160,t.decode=function(o,a){o instanceof f||(o=f.create(o));for(var p=a===void 0?o.len:o.pos+a,y=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi;o.pos<p;){var h=o.uint32();switch(h>>>3){case 1:{y.url=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 2:{y.label=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 3:{y.height=o.int32();break}default:o.skipType(h&7);break}}return y},t.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.url!=null&&o.hasOwnProperty("url")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.url);if(a)return"url."+a}if(o.label!=null&&o.hasOwnProperty("label")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.label);if(a)return"label."+a}return o.height!=null&&o.hasOwnProperty("height")&&!u.isInteger(o.height)?"height: integer expected":null},t.fromObject=function(o){if(o instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi)return o;var a=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi;if(o.url!=null){if(typeof o.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.url: object expected");a.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.url)}if(o.label!=null){if(typeof o.label!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.label: object expected");a.label=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.label)}return o.height!=null&&(a.height=o.height|0),a},t.toObject=function(o,a){a||(a={});var p={};return a.defaults&&(p.url=null,p.label=null,p.height=160),o.url!=null&&o.hasOwnProperty("url")&&(p.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.url,a)),o.label!=null&&o.hasOwnProperty("label")&&(p.label=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.label,a)),o.height!=null&&o.hasOwnProperty("height")&&(p.height=o.height),p},t.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},t.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi"},t}(),r.SearchletProto=function(){function t(e){if(e)for(var o=Object.keys(e),a=0;a<o.length;++a)e[o[a]]!=null&&(this[o[a]]=e[o[a]])}return t.prototype.url=null,t.prototype.name=null,t.prototype.requirements=null,t.decode=function(o,a){o instanceof f||(o=f.create(o));for(var p=a===void 0?o.len:o.pos+a,y=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto;o.pos<p;){var h=o.uint32();switch(h>>>3){case 1:{y.url=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 2:{y.name=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 3:{y.requirements=n.keyhole.dbroot.RequirementProto.decode(o,o.uint32());break}default:o.skipType(h&7);break}}return y},t.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.url!=null&&o.hasOwnProperty("url")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.url);if(a)return"url."+a}if(o.name!=null&&o.hasOwnProperty("name")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.name);if(a)return"name."+a}if(o.requirements!=null&&o.hasOwnProperty("requirements")){var a=n.keyhole.dbroot.RequirementProto.verify(o.requirements);if(a)return"requirements."+a}return null},t.fromObject=function(o){if(o instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto)return o;var a=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto;if(o.url!=null){if(typeof o.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.url: object expected");a.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.url)}if(o.name!=null){if(typeof o.name!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.name: object expected");a.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.name)}if(o.requirements!=null){if(typeof o.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.requirements: object expected");a.requirements=n.keyhole.dbroot.RequirementProto.fromObject(o.requirements)}return a},t.toObject=function(o,a){a||(a={});var p={};return a.defaults&&(p.url=null,p.name=null,p.requirements=null),o.url!=null&&o.hasOwnProperty("url")&&(p.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.url,a)),o.name!=null&&o.hasOwnProperty("name")&&(p.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.name,a)),o.requirements!=null&&o.hasOwnProperty("requirements")&&(p.requirements=n.keyhole.dbroot.RequirementProto.toObject(o.requirements,a)),p},t.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},t.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto"},t}(),r}(),l.OneboxServiceProto=function(){function r(t){if(t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.serviceUrl=null,r.prototype.requirements=null,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.serviceUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 2:{p.requirements=n.keyhole.dbroot.RequirementProto.decode(e,e.uint32());break}default:e.skipType(y&7);break}}return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.serviceUrl!=null&&e.hasOwnProperty("serviceUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.serviceUrl);if(o)return"serviceUrl."+o}if(e.requirements!=null&&e.hasOwnProperty("requirements")){var o=n.keyhole.dbroot.RequirementProto.verify(e.requirements);if(o)return"requirements."+o}return null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto)return e;var o=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto;if(e.serviceUrl!=null){if(typeof e.serviceUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.serviceUrl: object expected");o.serviceUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.serviceUrl)}if(e.requirements!=null){if(typeof e.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.requirements: object expected");o.requirements=n.keyhole.dbroot.RequirementProto.fromObject(e.requirements)}return o},r.toObject=function(e,o){o||(o={});var a={};return o.defaults&&(a.serviceUrl=null,a.requirements=null),e.serviceUrl!=null&&e.hasOwnProperty("serviceUrl")&&(a.serviceUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.serviceUrl,o)),e.requirements!=null&&e.hasOwnProperty("requirements")&&(a.requirements=n.keyhole.dbroot.RequirementProto.toObject(e.requirements,o)),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto"},r}(),l}(),i.SearchInfoProto=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.defaultUrl="http://maps.google.com/maps",l.prototype.geocodeParam="q",l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.SearchInfoProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.defaultUrl=t.string();break}case 2:{a.geocodeParam=t.string();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":t.defaultUrl!=null&&t.hasOwnProperty("defaultUrl")&&!u.isString(t.defaultUrl)?"defaultUrl: string expected":t.geocodeParam!=null&&t.hasOwnProperty("geocodeParam")&&!u.isString(t.geocodeParam)?"geocodeParam: string expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.SearchInfoProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.SearchInfoProto;return t.defaultUrl!=null&&(e.defaultUrl=String(t.defaultUrl)),t.geocodeParam!=null&&(e.geocodeParam=String(t.geocodeParam)),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.defaultUrl="http://maps.google.com/maps",o.geocodeParam="q"),t.defaultUrl!=null&&t.hasOwnProperty("defaultUrl")&&(o.defaultUrl=t.defaultUrl),t.geocodeParam!=null&&t.hasOwnProperty("geocodeParam")&&(o.geocodeParam=t.geocodeParam),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.SearchInfoProto"},l}(),i.RockTreeDataProto=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.url=null,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.url=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.url!=null&&t.hasOwnProperty("url")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.url);if(e)return"url."+e}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto;if(t.url!=null){if(typeof t.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.RockTreeDataProto.url: object expected");e.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.url)}return e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.url=null),t.url!=null&&t.hasOwnProperty("url")&&(o.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.url,e)),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.RockTreeDataProto"},l}(),i.FilmstripConfigProto=function(){function l(r){if(this.imageryType=[],r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.requirements=null,l.prototype.alleycatUrlTemplate=null,l.prototype.fallbackAlleycatUrlTemplate=null,l.prototype.metadataUrlTemplate=null,l.prototype.thumbnailUrlTemplate=null,l.prototype.kmlUrlTemplate=null,l.prototype.featuredToursUrl=null,l.prototype.enableViewportFallback=!1,l.prototype.viewportFallbackDistance=0,l.prototype.imageryType=u.emptyArray,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.requirements=n.keyhole.dbroot.RequirementProto.decode(t,t.uint32());break}case 2:{a.alleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 9:{a.fallbackAlleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 3:{a.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 4:{a.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 5:{a.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 6:{a.featuredToursUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 7:{a.enableViewportFallback=t.bool();break}case 8:{a.viewportFallbackDistance=t.uint32();break}case 10:{a.imageryType&&a.imageryType.length||(a.imageryType=[]),a.imageryType.push(n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.decode(t,t.uint32()));break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.requirements!=null&&t.hasOwnProperty("requirements")){var e=n.keyhole.dbroot.RequirementProto.verify(t.requirements);if(e)return"requirements."+e}if(t.alleycatUrlTemplate!=null&&t.hasOwnProperty("alleycatUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.alleycatUrlTemplate);if(e)return"alleycatUrlTemplate."+e}if(t.fallbackAlleycatUrlTemplate!=null&&t.hasOwnProperty("fallbackAlleycatUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.fallbackAlleycatUrlTemplate);if(e)return"fallbackAlleycatUrlTemplate."+e}if(t.metadataUrlTemplate!=null&&t.hasOwnProperty("metadataUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.metadataUrlTemplate);if(e)return"metadataUrlTemplate."+e}if(t.thumbnailUrlTemplate!=null&&t.hasOwnProperty("thumbnailUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.thumbnailUrlTemplate);if(e)return"thumbnailUrlTemplate."+e}if(t.kmlUrlTemplate!=null&&t.hasOwnProperty("kmlUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.kmlUrlTemplate);if(e)return"kmlUrlTemplate."+e}if(t.featuredToursUrl!=null&&t.hasOwnProperty("featuredToursUrl")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.featuredToursUrl);if(e)return"featuredToursUrl."+e}if(t.enableViewportFallback!=null&&t.hasOwnProperty("enableViewportFallback")&&typeof t.enableViewportFallback!="boolean")return"enableViewportFallback: boolean expected";if(t.viewportFallbackDistance!=null&&t.hasOwnProperty("viewportFallbackDistance")&&!u.isInteger(t.viewportFallbackDistance))return"viewportFallbackDistance: integer expected";if(t.imageryType!=null&&t.hasOwnProperty("imageryType")){if(!Array.isArray(t.imageryType))return"imageryType: array expected";for(var o=0;o<t.imageryType.length;++o){var e=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.verify(t.imageryType[o]);if(e)return"imageryType."+e}}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto;if(t.requirements!=null){if(typeof t.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.requirements: object expected");e.requirements=n.keyhole.dbroot.RequirementProto.fromObject(t.requirements)}if(t.alleycatUrlTemplate!=null){if(typeof t.alleycatUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.alleycatUrlTemplate: object expected");e.alleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.alleycatUrlTemplate)}if(t.fallbackAlleycatUrlTemplate!=null){if(typeof t.fallbackAlleycatUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.fallbackAlleycatUrlTemplate: object expected");e.fallbackAlleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.fallbackAlleycatUrlTemplate)}if(t.metadataUrlTemplate!=null){if(typeof t.metadataUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.metadataUrlTemplate: object expected");e.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.metadataUrlTemplate)}if(t.thumbnailUrlTemplate!=null){if(typeof t.thumbnailUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.thumbnailUrlTemplate: object expected");e.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.thumbnailUrlTemplate)}if(t.kmlUrlTemplate!=null){if(typeof t.kmlUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.kmlUrlTemplate: object expected");e.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.kmlUrlTemplate)}if(t.featuredToursUrl!=null){if(typeof t.featuredToursUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.featuredToursUrl: object expected");e.featuredToursUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.featuredToursUrl)}if(t.enableViewportFallback!=null&&(e.enableViewportFallback=!!t.enableViewportFallback),t.viewportFallbackDistance!=null&&(e.viewportFallbackDistance=t.viewportFallbackDistance>>>0),t.imageryType){if(!Array.isArray(t.imageryType))throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.imageryType: array expected");e.imageryType=[];for(var o=0;o<t.imageryType.length;++o){if(typeof t.imageryType[o]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.imageryType: object expected");e.imageryType[o]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.fromObject(t.imageryType[o])}}return e},l.toObject=function(t,e){e||(e={});var o={};if((e.arrays||e.defaults)&&(o.imageryType=[]),e.defaults&&(o.requirements=null,o.alleycatUrlTemplate=null,o.metadataUrlTemplate=null,o.thumbnailUrlTemplate=null,o.kmlUrlTemplate=null,o.featuredToursUrl=null,o.enableViewportFallback=!1,o.viewportFallbackDistance=0,o.fallbackAlleycatUrlTemplate=null),t.requirements!=null&&t.hasOwnProperty("requirements")&&(o.requirements=n.keyhole.dbroot.RequirementProto.toObject(t.requirements,e)),t.alleycatUrlTemplate!=null&&t.hasOwnProperty("alleycatUrlTemplate")&&(o.alleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.alleycatUrlTemplate,e)),t.metadataUrlTemplate!=null&&t.hasOwnProperty("metadataUrlTemplate")&&(o.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.metadataUrlTemplate,e)),t.thumbnailUrlTemplate!=null&&t.hasOwnProperty("thumbnailUrlTemplate")&&(o.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.thumbnailUrlTemplate,e)),t.kmlUrlTemplate!=null&&t.hasOwnProperty("kmlUrlTemplate")&&(o.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.kmlUrlTemplate,e)),t.featuredToursUrl!=null&&t.hasOwnProperty("featuredToursUrl")&&(o.featuredToursUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.featuredToursUrl,e)),t.enableViewportFallback!=null&&t.hasOwnProperty("enableViewportFallback")&&(o.enableViewportFallback=t.enableViewportFallback),t.viewportFallbackDistance!=null&&t.hasOwnProperty("viewportFallbackDistance")&&(o.viewportFallbackDistance=t.viewportFallbackDistance),t.fallbackAlleycatUrlTemplate!=null&&t.hasOwnProperty("fallbackAlleycatUrlTemplate")&&(o.fallbackAlleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.fallbackAlleycatUrlTemplate,e)),t.imageryType&&t.imageryType.length){o.imageryType=[];for(var a=0;a<t.imageryType.length;++a)o.imageryType[a]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.toObject(t.imageryType[a],e)}return o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.FilmstripConfigProto"},l.AlleycatImageryTypeProto=function(){function r(t){if(t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.imageryTypeId=0,r.prototype.imageryTypeLabel="",r.prototype.metadataUrlTemplate=null,r.prototype.thumbnailUrlTemplate=null,r.prototype.kmlUrlTemplate=null,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.imageryTypeId=e.int32();break}case 2:{p.imageryTypeLabel=e.string();break}case 3:{p.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 4:{p.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 5:{p.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}default:e.skipType(y&7);break}}return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.imageryTypeId!=null&&e.hasOwnProperty("imageryTypeId")&&!u.isInteger(e.imageryTypeId))return"imageryTypeId: integer expected";if(e.imageryTypeLabel!=null&&e.hasOwnProperty("imageryTypeLabel")&&!u.isString(e.imageryTypeLabel))return"imageryTypeLabel: string expected";if(e.metadataUrlTemplate!=null&&e.hasOwnProperty("metadataUrlTemplate")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.metadataUrlTemplate);if(o)return"metadataUrlTemplate."+o}if(e.thumbnailUrlTemplate!=null&&e.hasOwnProperty("thumbnailUrlTemplate")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.thumbnailUrlTemplate);if(o)return"thumbnailUrlTemplate."+o}if(e.kmlUrlTemplate!=null&&e.hasOwnProperty("kmlUrlTemplate")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.kmlUrlTemplate);if(o)return"kmlUrlTemplate."+o}return null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto)return e;var o=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto;if(e.imageryTypeId!=null&&(o.imageryTypeId=e.imageryTypeId|0),e.imageryTypeLabel!=null&&(o.imageryTypeLabel=String(e.imageryTypeLabel)),e.metadataUrlTemplate!=null){if(typeof e.metadataUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.metadataUrlTemplate: object expected");o.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.metadataUrlTemplate)}if(e.thumbnailUrlTemplate!=null){if(typeof e.thumbnailUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.thumbnailUrlTemplate: object expected");o.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.thumbnailUrlTemplate)}if(e.kmlUrlTemplate!=null){if(typeof e.kmlUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.kmlUrlTemplate: object expected");o.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.kmlUrlTemplate)}return o},r.toObject=function(e,o){o||(o={});var a={};return o.defaults&&(a.imageryTypeId=0,a.imageryTypeLabel="",a.metadataUrlTemplate=null,a.thumbnailUrlTemplate=null,a.kmlUrlTemplate=null),e.imageryTypeId!=null&&e.hasOwnProperty("imageryTypeId")&&(a.imageryTypeId=e.imageryTypeId),e.imageryTypeLabel!=null&&e.hasOwnProperty("imageryTypeLabel")&&(a.imageryTypeLabel=e.imageryTypeLabel),e.metadataUrlTemplate!=null&&e.hasOwnProperty("metadataUrlTemplate")&&(a.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.metadataUrlTemplate,o)),e.thumbnailUrlTemplate!=null&&e.hasOwnProperty("thumbnailUrlTemplate")&&(a.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.thumbnailUrlTemplate,o)),e.kmlUrlTemplate!=null&&e.hasOwnProperty("kmlUrlTemplate")&&(a.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.kmlUrlTemplate,o)),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto"},r}(),l}(),i.StarDataProto=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.url=null,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.StarDataProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.url=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.url!=null&&t.hasOwnProperty("url")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.url);if(e)return"url."+e}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.StarDataProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.StarDataProto;if(t.url!=null){if(typeof t.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.StarDataProto.url: object expected");e.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.url)}return e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.url=null),t.url!=null&&t.hasOwnProperty("url")&&(o.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.url,e)),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.StarDataProto"},l}(),i}(),c.DbRootRefProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.url="",i.prototype.isCritical=!1,i.prototype.requirements=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DbRootRefProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 2:{o.url=r.string();break}case 1:{o.isCritical=r.bool();break}case 3:{o.requirements=n.keyhole.dbroot.RequirementProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("url"))throw u.ProtocolError("missing required 'url'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.url))return"url: string expected";if(r.isCritical!=null&&r.hasOwnProperty("isCritical")&&typeof r.isCritical!="boolean")return"isCritical: boolean expected";if(r.requirements!=null&&r.hasOwnProperty("requirements")){var t=n.keyhole.dbroot.RequirementProto.verify(r.requirements);if(t)return"requirements."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DbRootRefProto)return r;var t=new n.keyhole.dbroot.DbRootRefProto;if(r.url!=null&&(t.url=String(r.url)),r.isCritical!=null&&(t.isCritical=!!r.isCritical),r.requirements!=null){if(typeof r.requirements!="object")throw TypeError(".keyhole.dbroot.DbRootRefProto.requirements: object expected");t.requirements=n.keyhole.dbroot.RequirementProto.fromObject(r.requirements)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.isCritical=!1,e.url="",e.requirements=null),r.isCritical!=null&&r.hasOwnProperty("isCritical")&&(e.isCritical=r.isCritical),r.url!=null&&r.hasOwnProperty("url")&&(e.url=r.url),r.requirements!=null&&r.hasOwnProperty("requirements")&&(e.requirements=n.keyhole.dbroot.RequirementProto.toObject(r.requirements,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DbRootRefProto"},i}(),c.DatabaseVersionProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.quadtreeVersion=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DatabaseVersionProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.quadtreeVersion=r.uint32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("quadtreeVersion"))throw u.ProtocolError("missing required 'quadtreeVersion'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isInteger(r.quadtreeVersion)?null:"quadtreeVersion: integer expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DatabaseVersionProto)return r;var t=new n.keyhole.dbroot.DatabaseVersionProto;return r.quadtreeVersion!=null&&(t.quadtreeVersion=r.quadtreeVersion>>>0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.quadtreeVersion=0),r.quadtreeVersion!=null&&r.hasOwnProperty("quadtreeVersion")&&(e.quadtreeVersion=r.quadtreeVersion),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DatabaseVersionProto"},i}(),c.DbRootProto=function(){function i(l){if(this.providerInfo=[],this.nestedFeature=[],this.styleAttribute=[],this.styleMap=[],this.translationEntry=[],this.dbrootReference=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.databaseName=null,i.prototype.imageryPresent=!0,i.prototype.protoImagery=!1,i.prototype.terrainPresent=!1,i.prototype.providerInfo=u.emptyArray,i.prototype.nestedFeature=u.emptyArray,i.prototype.styleAttribute=u.emptyArray,i.prototype.styleMap=u.emptyArray,i.prototype.endSnippet=null,i.prototype.translationEntry=u.emptyArray,i.prototype.language="en",i.prototype.version=5,i.prototype.dbrootReference=u.emptyArray,i.prototype.databaseVersion=null,i.prototype.refreshTimeout=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DbRootProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 15:{o.databaseName=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 1:{o.imageryPresent=r.bool();break}case 14:{o.protoImagery=r.bool();break}case 2:{o.terrainPresent=r.bool();break}case 3:{o.providerInfo&&o.providerInfo.length||(o.providerInfo=[]),o.providerInfo.push(n.keyhole.dbroot.ProviderInfoProto.decode(r,r.uint32()));break}case 4:{o.nestedFeature&&o.nestedFeature.length||(o.nestedFeature=[]),o.nestedFeature.push(n.keyhole.dbroot.NestedFeatureProto.decode(r,r.uint32()));break}case 5:{o.styleAttribute&&o.styleAttribute.length||(o.styleAttribute=[]),o.styleAttribute.push(n.keyhole.dbroot.StyleAttributeProto.decode(r,r.uint32()));break}case 6:{o.styleMap&&o.styleMap.length||(o.styleMap=[]),o.styleMap.push(n.keyhole.dbroot.StyleMapProto.decode(r,r.uint32()));break}case 7:{o.endSnippet=n.keyhole.dbroot.EndSnippetProto.decode(r,r.uint32());break}case 8:{o.translationEntry&&o.translationEntry.length||(o.translationEntry=[]),o.translationEntry.push(n.keyhole.dbroot.StringEntryProto.decode(r,r.uint32()));break}case 9:{o.language=r.string();break}case 10:{o.version=r.int32();break}case 11:{o.dbrootReference&&o.dbrootReference.length||(o.dbrootReference=[]),o.dbrootReference.push(n.keyhole.dbroot.DbRootRefProto.decode(r,r.uint32()));break}case 13:{o.databaseVersion=n.keyhole.dbroot.DatabaseVersionProto.decode(r,r.uint32());break}case 16:{o.refreshTimeout=r.int32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.databaseName!=null&&r.hasOwnProperty("databaseName")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.databaseName);if(t)return"databaseName."+t}if(r.imageryPresent!=null&&r.hasOwnProperty("imageryPresent")&&typeof r.imageryPresent!="boolean")return"imageryPresent: boolean expected";if(r.protoImagery!=null&&r.hasOwnProperty("protoImagery")&&typeof r.protoImagery!="boolean")return"protoImagery: boolean expected";if(r.terrainPresent!=null&&r.hasOwnProperty("terrainPresent")&&typeof r.terrainPresent!="boolean")return"terrainPresent: boolean expected";if(r.providerInfo!=null&&r.hasOwnProperty("providerInfo")){if(!Array.isArray(r.providerInfo))return"providerInfo: array expected";for(var e=0;e<r.providerInfo.length;++e){var t=n.keyhole.dbroot.ProviderInfoProto.verify(r.providerInfo[e]);if(t)return"providerInfo."+t}}if(r.nestedFeature!=null&&r.hasOwnProperty("nestedFeature")){if(!Array.isArray(r.nestedFeature))return"nestedFeature: array expected";for(var e=0;e<r.nestedFeature.length;++e){var t=n.keyhole.dbroot.NestedFeatureProto.verify(r.nestedFeature[e]);if(t)return"nestedFeature."+t}}if(r.styleAttribute!=null&&r.hasOwnProperty("styleAttribute")){if(!Array.isArray(r.styleAttribute))return"styleAttribute: array expected";for(var e=0;e<r.styleAttribute.length;++e){var t=n.keyhole.dbroot.StyleAttributeProto.verify(r.styleAttribute[e]);if(t)return"styleAttribute."+t}}if(r.styleMap!=null&&r.hasOwnProperty("styleMap")){if(!Array.isArray(r.styleMap))return"styleMap: array expected";for(var e=0;e<r.styleMap.length;++e){var t=n.keyhole.dbroot.StyleMapProto.verify(r.styleMap[e]);if(t)return"styleMap."+t}}if(r.endSnippet!=null&&r.hasOwnProperty("endSnippet")){var t=n.keyhole.dbroot.EndSnippetProto.verify(r.endSnippet);if(t)return"endSnippet."+t}if(r.translationEntry!=null&&r.hasOwnProperty("translationEntry")){if(!Array.isArray(r.translationEntry))return"translationEntry: array expected";for(var e=0;e<r.translationEntry.length;++e){var t=n.keyhole.dbroot.StringEntryProto.verify(r.translationEntry[e]);if(t)return"translationEntry."+t}}if(r.language!=null&&r.hasOwnProperty("language")&&!u.isString(r.language))return"language: string expected";if(r.version!=null&&r.hasOwnProperty("version")&&!u.isInteger(r.version))return"version: integer expected";if(r.dbrootReference!=null&&r.hasOwnProperty("dbrootReference")){if(!Array.isArray(r.dbrootReference))return"dbrootReference: array expected";for(var e=0;e<r.dbrootReference.length;++e){var t=n.keyhole.dbroot.DbRootRefProto.verify(r.dbrootReference[e]);if(t)return"dbrootReference."+t}}if(r.databaseVersion!=null&&r.hasOwnProperty("databaseVersion")){var t=n.keyhole.dbroot.DatabaseVersionProto.verify(r.databaseVersion);if(t)return"databaseVersion."+t}return r.refreshTimeout!=null&&r.hasOwnProperty("refreshTimeout")&&!u.isInteger(r.refreshTimeout)?"refreshTimeout: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DbRootProto)return r;var t=new n.keyhole.dbroot.DbRootProto;if(r.databaseName!=null){if(typeof r.databaseName!="object")throw TypeError(".keyhole.dbroot.DbRootProto.databaseName: object expected");t.databaseName=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.databaseName)}if(r.imageryPresent!=null&&(t.imageryPresent=!!r.imageryPresent),r.protoImagery!=null&&(t.protoImagery=!!r.protoImagery),r.terrainPresent!=null&&(t.terrainPresent=!!r.terrainPresent),r.providerInfo){if(!Array.isArray(r.providerInfo))throw TypeError(".keyhole.dbroot.DbRootProto.providerInfo: array expected");t.providerInfo=[];for(var e=0;e<r.providerInfo.length;++e){if(typeof r.providerInfo[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.providerInfo: object expected");t.providerInfo[e]=n.keyhole.dbroot.ProviderInfoProto.fromObject(r.providerInfo[e])}}if(r.nestedFeature){if(!Array.isArray(r.nestedFeature))throw TypeError(".keyhole.dbroot.DbRootProto.nestedFeature: array expected");t.nestedFeature=[];for(var e=0;e<r.nestedFeature.length;++e){if(typeof r.nestedFeature[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.nestedFeature: object expected");t.nestedFeature[e]=n.keyhole.dbroot.NestedFeatureProto.fromObject(r.nestedFeature[e])}}if(r.styleAttribute){if(!Array.isArray(r.styleAttribute))throw TypeError(".keyhole.dbroot.DbRootProto.styleAttribute: array expected");t.styleAttribute=[];for(var e=0;e<r.styleAttribute.length;++e){if(typeof r.styleAttribute[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.styleAttribute: object expected");t.styleAttribute[e]=n.keyhole.dbroot.StyleAttributeProto.fromObject(r.styleAttribute[e])}}if(r.styleMap){if(!Array.isArray(r.styleMap))throw TypeError(".keyhole.dbroot.DbRootProto.styleMap: array expected");t.styleMap=[];for(var e=0;e<r.styleMap.length;++e){if(typeof r.styleMap[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.styleMap: object expected");t.styleMap[e]=n.keyhole.dbroot.StyleMapProto.fromObject(r.styleMap[e])}}if(r.endSnippet!=null){if(typeof r.endSnippet!="object")throw TypeError(".keyhole.dbroot.DbRootProto.endSnippet: object expected");t.endSnippet=n.keyhole.dbroot.EndSnippetProto.fromObject(r.endSnippet)}if(r.translationEntry){if(!Array.isArray(r.translationEntry))throw TypeError(".keyhole.dbroot.DbRootProto.translationEntry: array expected");t.translationEntry=[];for(var e=0;e<r.translationEntry.length;++e){if(typeof r.translationEntry[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.translationEntry: object expected");t.translationEntry[e]=n.keyhole.dbroot.StringEntryProto.fromObject(r.translationEntry[e])}}if(r.language!=null&&(t.language=String(r.language)),r.version!=null&&(t.version=r.version|0),r.dbrootReference){if(!Array.isArray(r.dbrootReference))throw TypeError(".keyhole.dbroot.DbRootProto.dbrootReference: array expected");t.dbrootReference=[];for(var e=0;e<r.dbrootReference.length;++e){if(typeof r.dbrootReference[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.dbrootReference: object expected");t.dbrootReference[e]=n.keyhole.dbroot.DbRootRefProto.fromObject(r.dbrootReference[e])}}if(r.databaseVersion!=null){if(typeof r.databaseVersion!="object")throw TypeError(".keyhole.dbroot.DbRootProto.databaseVersion: object expected");t.databaseVersion=n.keyhole.dbroot.DatabaseVersionProto.fromObject(r.databaseVersion)}return r.refreshTimeout!=null&&(t.refreshTimeout=r.refreshTimeout|0),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.providerInfo=[],e.nestedFeature=[],e.styleAttribute=[],e.styleMap=[],e.translationEntry=[],e.dbrootReference=[]),t.defaults&&(e.imageryPresent=!0,e.terrainPresent=!1,e.endSnippet=null,e.language="en",e.version=5,e.databaseVersion=null,e.protoImagery=!1,e.databaseName=null,e.refreshTimeout=0),r.imageryPresent!=null&&r.hasOwnProperty("imageryPresent")&&(e.imageryPresent=r.imageryPresent),r.terrainPresent!=null&&r.hasOwnProperty("terrainPresent")&&(e.terrainPresent=r.terrainPresent),r.providerInfo&&r.providerInfo.length){e.providerInfo=[];for(var o=0;o<r.providerInfo.length;++o)e.providerInfo[o]=n.keyhole.dbroot.ProviderInfoProto.toObject(r.providerInfo[o],t)}if(r.nestedFeature&&r.nestedFeature.length){e.nestedFeature=[];for(var o=0;o<r.nestedFeature.length;++o)e.nestedFeature[o]=n.keyhole.dbroot.NestedFeatureProto.toObject(r.nestedFeature[o],t)}if(r.styleAttribute&&r.styleAttribute.length){e.styleAttribute=[];for(var o=0;o<r.styleAttribute.length;++o)e.styleAttribute[o]=n.keyhole.dbroot.StyleAttributeProto.toObject(r.styleAttribute[o],t)}if(r.styleMap&&r.styleMap.length){e.styleMap=[];for(var o=0;o<r.styleMap.length;++o)e.styleMap[o]=n.keyhole.dbroot.StyleMapProto.toObject(r.styleMap[o],t)}if(r.endSnippet!=null&&r.hasOwnProperty("endSnippet")&&(e.endSnippet=n.keyhole.dbroot.EndSnippetProto.toObject(r.endSnippet,t)),r.translationEntry&&r.translationEntry.length){e.translationEntry=[];for(var o=0;o<r.translationEntry.length;++o)e.translationEntry[o]=n.keyhole.dbroot.StringEntryProto.toObject(r.translationEntry[o],t)}if(r.language!=null&&r.hasOwnProperty("language")&&(e.language=r.language),r.version!=null&&r.hasOwnProperty("version")&&(e.version=r.version),r.dbrootReference&&r.dbrootReference.length){e.dbrootReference=[];for(var o=0;o<r.dbrootReference.length;++o)e.dbrootReference[o]=n.keyhole.dbroot.DbRootRefProto.toObject(r.dbrootReference[o],t)}return r.databaseVersion!=null&&r.hasOwnProperty("databaseVersion")&&(e.databaseVersion=n.keyhole.dbroot.DatabaseVersionProto.toObject(r.databaseVersion,t)),r.protoImagery!=null&&r.hasOwnProperty("protoImagery")&&(e.protoImagery=r.protoImagery),r.databaseName!=null&&r.hasOwnProperty("databaseName")&&(e.databaseName=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.databaseName,t)),r.refreshTimeout!=null&&r.hasOwnProperty("refreshTimeout")&&(e.refreshTimeout=r.refreshTimeout),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DbRootProto"},i}(),c.EncryptedDbRootProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.encryptionType=0,i.prototype.encryptionData=u.newBuffer([]),i.prototype.dbrootData=u.newBuffer([]),i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.EncryptedDbRootProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.encryptionType=r.int32();break}case 2:{o.encryptionData=r.bytes();break}case 3:{o.dbrootData=r.bytes();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.encryptionType!=null&&r.hasOwnProperty("encryptionType"))switch(r.encryptionType){default:return"encryptionType: enum value expected";case 0:break}return r.encryptionData!=null&&r.hasOwnProperty("encryptionData")&&!(r.encryptionData&&typeof r.encryptionData.length=="number"||u.isString(r.encryptionData))?"encryptionData: buffer expected":r.dbrootData!=null&&r.hasOwnProperty("dbrootData")&&!(r.dbrootData&&typeof r.dbrootData.length=="number"||u.isString(r.dbrootData))?"dbrootData: buffer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.EncryptedDbRootProto)return r;var t=new n.keyhole.dbroot.EncryptedDbRootProto;switch(r.encryptionType){case"ENCRYPTION_XOR":case 0:t.encryptionType=0;break}return r.encryptionData!=null&&(typeof r.encryptionData=="string"?u.base64.decode(r.encryptionData,t.encryptionData=u.newBuffer(u.base64.length(r.encryptionData)),0):r.encryptionData.length>=0&&(t.encryptionData=r.encryptionData)),r.dbrootData!=null&&(typeof r.dbrootData=="string"?u.base64.decode(r.dbrootData,t.dbrootData=u.newBuffer(u.base64.length(r.dbrootData)),0):r.dbrootData.length>=0&&(t.dbrootData=r.dbrootData)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.encryptionType=t.enums===String?"ENCRYPTION_XOR":0,t.bytes===String?e.encryptionData="":(e.encryptionData=[],t.bytes!==Array&&(e.encryptionData=u.newBuffer(e.encryptionData))),t.bytes===String?e.dbrootData="":(e.dbrootData=[],t.bytes!==Array&&(e.dbrootData=u.newBuffer(e.dbrootData)))),r.encryptionType!=null&&r.hasOwnProperty("encryptionType")&&(e.encryptionType=t.enums===String?n.keyhole.dbroot.EncryptedDbRootProto.EncryptionType[r.encryptionType]:r.encryptionType),r.encryptionData!=null&&r.hasOwnProperty("encryptionData")&&(e.encryptionData=t.bytes===String?u.base64.encode(r.encryptionData,0,r.encryptionData.length):t.bytes===Array?Array.prototype.slice.call(r.encryptionData):r.encryptionData),r.dbrootData!=null&&r.hasOwnProperty("dbrootData")&&(e.dbrootData=t.bytes===String?u.base64.encode(r.dbrootData,0,r.dbrootData.length):t.bytes===Array?Array.prototype.slice.call(r.dbrootData):r.dbrootData),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.EncryptedDbRootProto"},i.EncryptionType=function(){var l={},r=Object.create(l);return r[l[0]="ENCRYPTION_XOR"]=0,r}(),i}(),c}(),b}(),n.keyhole.dbroot};})(); diff --git a/public/static/Cesium/Widgets/Animation/Animation.css b/public/static/Cesium/Widgets/Animation/Animation.css new file mode 100644 index 0000000..0f18c52 --- /dev/null +++ b/public/static/Cesium/Widgets/Animation/Animation.css @@ -0,0 +1,127 @@ +/* packages/widgets/Source/Animation/Animation.css */ +.cesium-animation-theme { + visibility: hidden; + display: block; + position: absolute; + z-index: -100; +} +.cesium-animation-themeNormal { + color: #222; +} +.cesium-animation-themeHover { + color: #4488b0; +} +.cesium-animation-themeSelect { + color: #242; +} +.cesium-animation-themeDisabled { + color: #333; +} +.cesium-animation-themeKnob { + color: #222; +} +.cesium-animation-themePointer { + color: #2e2; +} +.cesium-animation-themeSwoosh { + color: #8ac; +} +.cesium-animation-themeSwooshHover { + color: #aef; +} +.cesium-animation-svgText { + fill: #edffff; + font-family: Sans-Serif; + font-size: 15px; + text-anchor: middle; +} +.cesium-animation-blank { + fill: #000; + fill-opacity: 0.01; + stroke: none; +} +.cesium-animation-rectButton { + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-rectButton .cesium-animation-buttonGlow { + fill: #fff; + stroke: none; + display: none; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonGlow { + display: block; +} +.cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #edffff; +} +.cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #aef; +} +.cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-animation-buttonDisabled { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #555; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonGlow { + display: none; +} +.cesium-animation-buttonToggled .cesium-animation-buttonGlow { + display: block; + fill: #2e2; +} +.cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-shuttleRingG { + cursor: pointer; +} +.cesium-animation-shuttleRingPointer { + cursor: pointer; +} +.cesium-animation-shuttleRingPausePointer { + cursor: pointer; +} +.cesium-animation-shuttleRingBack { + fill: #181818; + fill-opacity: 0.8; + stroke: #333; + stroke-width: 1.2; +} +.cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; + stroke-width: 3; + stroke-opacity: 0.2; + stroke-linecap: round; +} +.cesium-animation-knobOuter { + cursor: pointer; + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-knobInner { + cursor: pointer; +} diff --git a/public/static/Cesium/Widgets/Animation/lighter.css b/public/static/Cesium/Widgets/Animation/lighter.css new file mode 100644 index 0000000..466ddb6 --- /dev/null +++ b/public/static/Cesium/Widgets/Animation/lighter.css @@ -0,0 +1,70 @@ +/* packages/widgets/Source/Animation/lighter.css */ +.cesium-lighter .cesium-animation-themeNormal { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeHover { + color: #abd6ff; +} +.cesium-lighter .cesium-animation-themeSelect { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeDisabled { + color: #efefef; +} +.cesium-lighter .cesium-animation-themeKnob { + color: #e1e2e3; +} +.cesium-lighter .cesium-animation-themePointer { + color: #fa5; +} +.cesium-lighter .cesium-animation-themeSwoosh { + color: #ace; +} +.cesium-lighter .cesium-animation-themeSwooshHover { + color: #bdf; +} +.cesium-lighter .cesium-animation-svgText { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonGlow { + fill: #ffaa2a; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #d3d3d3; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-lighter .cesium-animation-shuttleRingBack { + fill: #fafafa; + fill-opacity: 1; + stroke: #aeaeae; + stroke-width: 1.2; +} +.cesium-lighter .cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; +} +.cesium-lighter .cesium-animation-knobOuter { + stroke: #a5a5a5; +} diff --git a/public/static/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css b/public/static/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css new file mode 100644 index 0000000..ac37d16 --- /dev/null +++ b/public/static/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css @@ -0,0 +1,108 @@ +/* packages/widgets/Source/BaseLayerPicker/BaseLayerPicker.css */ +.cesium-baseLayerPicker-selected { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: none; +} +.cesium-baseLayerPicker-dropDown { + display: block; + position: absolute; + box-sizing: content-box; + top: auto; + right: 0; + width: 320px; + max-height: 500px; + margin-top: 5px; + background-color: rgba(38, 38, 38, 0.75); + border: 1px solid #444; + padding: 6px; + overflow: auto; + border-radius: 10px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + transform: translate(0, -20%); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-baseLayerPicker-dropDown-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-baseLayerPicker-sectionTitle { + display: block; + font-family: sans-serif; + font-size: 16pt; + text-align: left; + color: #edffff; + margin-bottom: 4px; +} +.cesium-baseLayerPicker-choices { + margin-bottom: 5px; +} +.cesium-baseLayerPicker-categoryTitle { + color: #edffff; + font-size: 11pt; +} +.cesium-baseLayerPicker-choices { + display: block; + border: 1px solid #888; + border-radius: 5px; + padding: 5px 0; +} +.cesium-baseLayerPicker-item { + display: inline-block; + vertical-align: top; + margin: 2px 5px; + width: 64px; + text-align: center; + cursor: pointer; +} +.cesium-baseLayerPicker-itemLabel { + display: block; + font-family: sans-serif; + font-size: 8pt; + text-align: center; + vertical-align: middle; + color: #edffff; + cursor: pointer; + word-wrap: break-word; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel, +.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel { + text-decoration: underline; +} +.cesium-baseLayerPicker-itemIcon { + display: inline-block; + position: relative; + width: inherit; + height: auto; + background-size: 100% 100%; + border: solid 1px #444; + border-radius: 9px; + color: #edffff; + margin: 0; + padding: 0; + cursor: pointer; + box-sizing: border-box; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #fff; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(189, 236, 248); +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(189, 236, 248); +} diff --git a/public/static/Cesium/Widgets/BaseLayerPicker/lighter.css b/public/static/Cesium/Widgets/BaseLayerPicker/lighter.css new file mode 100644 index 0000000..d43cd3d --- /dev/null +++ b/public/static/Cesium/Widgets/BaseLayerPicker/lighter.css @@ -0,0 +1,22 @@ +/* packages/widgets/Source/BaseLayerPicker/lighter.css */ +.cesium-lighter .cesium-baseLayerPicker-itemIcon { + border-color: #759dc0; +} +.cesium-lighter .cesium-baseLayerPicker-dropDown { + background-color: rgba(240, 240, 240, 0.75); +} +.cesium-lighter .cesium-baseLayerPicker-sectionTitle { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-itemLabel { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #000; +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(0, 61, 168); +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(0, 61, 168); +} diff --git a/public/static/Cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css b/public/static/Cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css new file mode 100644 index 0000000..5b6295b --- /dev/null +++ b/public/static/Cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css @@ -0,0 +1,102 @@ +/* packages/widgets/Source/Cesium3DTilesInspector/Cesium3DTilesInspector.css */ +ul.cesium-cesiumInspector-statistics { + margin: 0; + padding-top: 3px; + padding-bottom: 3px; +} +ul.cesium-cesiumInspector-statistics + ul.cesium-cesiumInspector-statistics { + border-top: 1px solid #aaa; +} +.cesium-cesiumInspector-slider { + margin-top: 5px; +} +.cesium-cesiumInspector-slider input[type=number] { + text-align: left; + background-color: #222; + outline: none; + border: 1px solid #444; + color: #edffff; + width: 100px; + border-radius: 3px; + padding: 1px; + margin-left: 10px; + cursor: auto; +} +.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button, +.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} +.cesium-cesiumInspector-slider input[type=range] { + margin-left: 5px; + vertical-align: middle; +} +.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor { + display: none; +} +.cesium-cesiumInspector-styleEditor { + padding: 10px; + border-radius: 5px; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; +} +.cesium-cesiumInspector-styleEditor textarea { + width: 100%; + height: 300px; + background: transparent; + color: #edffff; + border: none; + padding: 0; + white-space: pre; + overflow-wrap: normal; + overflow-x: auto; +} +.cesium-3DTilesInspector { + width: 300px; + pointer-events: all; +} +.cesium-3DTilesInspector-statistics { + font-size: 11px; +} +.cesium-3DTilesInspector-disabledElementsInfo { + margin: 5px 0 0 0; + padding: 0 0 0 20px; + color: #eed202; +} +.cesium-3DTilesInspector div, +.cesium-3DTilesInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-cesiumInspector-error { + color: #ff9e9e; + overflow: auto; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} +input.cesium-cesiumInspector-url { + overflow: hidden; + white-space: nowrap; + overflow-x: scroll; + background-color: transparent; + color: white; + outline: none; + border: none; + height: 1em; + width: 100%; +} +.cesium-cesiumInspector .field-group { + display: table; +} +.cesium-cesiumInspector .field-group > label { + display: table-cell; + font-weight: bold; +} +.cesium-cesiumInspector .field-group > .field { + display: table-cell; + width: 100%; +} diff --git a/public/static/Cesium/Widgets/CesiumInspector/CesiumInspector.css b/public/static/Cesium/Widgets/CesiumInspector/CesiumInspector.css new file mode 100644 index 0000000..aeb7700 --- /dev/null +++ b/public/static/Cesium/Widgets/CesiumInspector/CesiumInspector.css @@ -0,0 +1,113 @@ +/* packages/widgets/Source/CesiumInspector/CesiumInspector.css */ +.cesium-cesiumInspector { + border-radius: 5px; + transition: width ease-in-out 0.25s; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; + color: #edffff; + display: inline-block; + position: relative; + padding: 4px 12px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; +} +.cesium-cesiumInspector-button { + text-align: center; + font-size: 11pt; +} +.cesium-cesiumInspector-visible .cesium-cesiumInspector-button { + border-bottom: 1px solid #aaa; + padding-bottom: 3px; +} +.cesium-cesiumInspector input:enabled, +.cesium-cesiumInspector-button { + cursor: pointer; +} +.cesium-cesiumInspector-visible { + width: 185px; + height: auto; +} +.cesium-cesiumInspector-hidden { + width: 122px; + height: 17px; +} +.cesium-cesiumInspector-sectionContent { + max-height: 600px; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionContent { + max-height: 0; + padding: 0 !important; + overflow: hidden; +} +.cesium-cesiumInspector-dropDown { + margin: 5px 0; + font-family: sans-serif; + font-size: 10pt; + width: 185px; +} +.cesium-cesiumInspector-frustumStatistics { + padding-left: 10px; + padding: 5px; + background-color: rgba(80, 80, 80, 0.75); +} +.cesium-cesiumInspector-pickButton { + background-color: rgba(0, 0, 0, 0.3); + border: 1px solid #444; + color: #edffff; + border-radius: 5px; + padding: 3px 7px; + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + margin: 0 auto; +} +.cesium-cesiumInspector-pickButton:focus { + outline: none; +} +.cesium-cesiumInspector-pickButton:active, +.cesium-cesiumInspector-pickButtonHighlight { + color: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-cesiumInspector-center { + text-align: center; +} +.cesium-cesiumInspector-sectionHeader { + font-weight: bold; + font-size: 10pt; + margin: 0; + cursor: pointer; +} +.cesium-cesiumInspector-pickSection { + border: 1px solid #aaa; + border-radius: 5px; + padding: 3px; + margin-bottom: 5px; +} +.cesium-cesiumInspector-sectionContent { + margin-bottom: 10px; + transition: max-height 0.25s; +} +.cesium-cesiumInspector-tileText { + padding-bottom: 10px; + border-bottom: 1px solid #aaa; +} +.cesium-cesiumInspector-relativeText { + padding-top: 10px; +} +.cesium-cesiumInspector-sectionHeader::before { + margin-right: 5px; + content: "-"; + width: 1ch; + display: inline-block; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionHeader::before { + content: "+"; +} diff --git a/public/static/Cesium/Widgets/CesiumWidget/CesiumWidget.css b/public/static/Cesium/Widgets/CesiumWidget/CesiumWidget.css new file mode 100644 index 0000000..da3bde2 --- /dev/null +++ b/public/static/Cesium/Widgets/CesiumWidget/CesiumWidget.css @@ -0,0 +1,124 @@ +.cesium-widget { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.cesium-widget, +.cesium-widget canvas { + width: 100%; + height: 100%; + touch-action: none; +} + +.cesium-widget-credits { + display: block; + position: absolute; + bottom: 0; + left: 0; + color: #fff; + font-size: 10px; + text-shadow: 0px 0px 2px #000000; + padding-right: 5px; +} + +.cesium-widget-credits a, +.cesium-widget-credits a:visited { + color: #fff; +} + +.cesium-widget-errorPanel { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + text-align: center; + background: rgba(0, 0, 0, 0.7); + z-index: 99999; +} + +.cesium-widget-errorPanel:before { + display: inline-block; + vertical-align: middle; + height: 100%; + content: ""; +} + +.cesium-widget-errorPanel-content { + width: 75%; + max-width: 500px; + display: inline-block; + text-align: left; + vertical-align: middle; + border: 1px solid #510c00; + border-radius: 7px; + background-color: #f0d9d5; + font-size: 14px; + color: #510c00; +} + +.cesium-widget-errorPanel-content.expanded { + max-width: 75%; +} + +.cesium-widget-errorPanel-header { + font-size: 18px; + font-family: "Open Sans", Verdana, Geneva, sans-serif; + background: #d69d93; + border-bottom: 2px solid #510c00; + padding-bottom: 10px; + border-radius: 3px 3px 0 0; + padding: 15px; +} + +.cesium-widget-errorPanel-scroll { + overflow: auto; + font-family: "Open Sans", Verdana, Geneva, sans-serif; + white-space: pre-wrap; + padding: 0 15px; + margin: 10px 0 20px 0; +} + +.cesium-widget-errorPanel-buttonPanel { + padding: 0 15px; + margin: 10px 0 20px 0; + text-align: right; +} + +.cesium-widget-errorPanel-buttonPanel button { + border-color: #510c00; + background: #d69d93; + color: #202020; + margin: 0; +} +.cesium-widget-errorPanel-buttonPanel button:focus { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:hover { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:active { + border-color: #510c00; + background: #b17b72; + color: #510c00; +} + +.cesium-widget-errorPanel-more-details { + text-decoration: underline; + cursor: pointer; +} + +.cesium-widget-errorPanel-more-details:hover { + color: #2b0700; +} diff --git a/public/static/Cesium/Widgets/CesiumWidget/lighter.css b/public/static/Cesium/Widgets/CesiumWidget/lighter.css new file mode 100644 index 0000000..899e024 --- /dev/null +++ b/public/static/Cesium/Widgets/CesiumWidget/lighter.css @@ -0,0 +1,14 @@ +.cesium-lighter .cesium-widget-errorPanel { + background: rgba(255, 255, 255, 0.7); +} + +.cesium-lighter .cesium-widget-errorPanel-content { + border: 1px solid #526f82; + border-radius: 7px; + background-color: white; + color: black; +} + +.cesium-lighter .cesium-widget-errorPanel-header { + color: #b87d00; +} diff --git a/public/static/Cesium/Widgets/FullscreenButton/FullscreenButton.css b/public/static/Cesium/Widgets/FullscreenButton/FullscreenButton.css new file mode 100644 index 0000000..fdb0a41 --- /dev/null +++ b/public/static/Cesium/Widgets/FullscreenButton/FullscreenButton.css @@ -0,0 +1,8 @@ +/* packages/widgets/Source/FullscreenButton/FullscreenButton.css */ +.cesium-button.cesium-fullscreenButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} diff --git a/public/static/Cesium/Widgets/Geocoder/Geocoder.css b/public/static/Cesium/Widgets/Geocoder/Geocoder.css new file mode 100644 index 0000000..a0b478f --- /dev/null +++ b/public/static/Cesium/Widgets/Geocoder/Geocoder.css @@ -0,0 +1,70 @@ +/* packages/widgets/Source/Geocoder/Geocoder.css */ +.cesium-viewer-geocoderContainer .cesium-geocoder-input { + border: solid 1px #444; + background-color: rgba(40, 40, 40, 0.7); + color: white; + display: inline-block; + vertical-align: middle; + width: 0; + height: 32px; + margin: 0; + padding: 0 32px 0 0; + border-radius: 0; + box-sizing: border-box; + transition: width ease-in-out 0.25s, background-color 0.2s ease-in-out; + -webkit-appearance: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus { + border-color: #ea4; + background-color: rgba(15, 15, 15, 0.9); + box-shadow: none; + outline: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input, +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus, +.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide { + padding-left: 4px; + width: 250px; +} +.cesium-viewer-geocoderContainer .search-results { + position: absolute; + background-color: #000; + color: #eee; + overflow-y: auto; + opacity: 0.8; + width: 100%; +} +.cesium-viewer-geocoderContainer .search-results ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.cesium-viewer-geocoderContainer .search-results ul li { + font-size: 14px; + padding: 3px 10px; +} +.cesium-viewer-geocoderContainer .search-results ul li:hover { + cursor: pointer; +} +.cesium-viewer-geocoderContainer .search-results ul li.active { + background: #48b; +} +.cesium-geocoder-searchButton { + background-color: #303336; + display: inline-block; + position: absolute; + cursor: pointer; + width: 32px; + top: 1px; + right: 1px; + height: 30px; + vertical-align: middle; + fill: #edffff; +} +.cesium-geocoder-searchButton:hover { + background-color: #48b; +} diff --git a/public/static/Cesium/Widgets/Geocoder/lighter.css b/public/static/Cesium/Widgets/Geocoder/lighter.css new file mode 100644 index 0000000..b15c189 --- /dev/null +++ b/public/static/Cesium/Widgets/Geocoder/lighter.css @@ -0,0 +1,17 @@ +/* packages/widgets/Source/Geocoder/lighter.css */ +.cesium-lighter .cesium-geocoder-input { + border: solid 1px #759dc0; + background-color: rgba(240, 240, 240, 0.9); + color: black; +} +.cesium-lighter .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-lighter .cesium-geocoder-searchButton { + background-color: #e2f0ff; + fill: #111; +} +.cesium-lighter .cesium-geocoder-searchButton:hover { + background-color: #a6d2ff; +} diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png b/public/static/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png new file mode 100644 index 0000000..bd5976d Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png b/public/static/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png new file mode 100644 index 0000000..46ffe9c Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png b/public/static/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png new file mode 100644 index 0000000..286f3a0 Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/bingAerial.png b/public/static/Cesium/Widgets/Images/ImageryProviders/bingAerial.png new file mode 100644 index 0000000..a78a154 Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/bingAerial.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png b/public/static/Cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png new file mode 100644 index 0000000..4cafd40 Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/bingRoads.png b/public/static/Cesium/Widgets/Images/ImageryProviders/bingRoads.png new file mode 100644 index 0000000..282d6ad Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/bingRoads.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/blueMarble.png b/public/static/Cesium/Widgets/Images/ImageryProviders/blueMarble.png new file mode 100644 index 0000000..b8b5b7b Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/blueMarble.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/earthAtNight.png b/public/static/Cesium/Widgets/Images/ImageryProviders/earthAtNight.png new file mode 100644 index 0000000..45e0fc7 Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/earthAtNight.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png b/public/static/Cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png new file mode 100644 index 0000000..f2eba41 Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png b/public/static/Cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png new file mode 100644 index 0000000..30ee6db Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/mapboxStreets.png b/public/static/Cesium/Widgets/Images/ImageryProviders/mapboxStreets.png new file mode 100644 index 0000000..6eef1fc Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/mapboxStreets.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png b/public/static/Cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png new file mode 100644 index 0000000..e6bc355 Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/naturalEarthII.png b/public/static/Cesium/Widgets/Images/ImageryProviders/naturalEarthII.png new file mode 100644 index 0000000..50271c7 Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/naturalEarthII.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/openStreetMap.png b/public/static/Cesium/Widgets/Images/ImageryProviders/openStreetMap.png new file mode 100644 index 0000000..84acdb8 Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/openStreetMap.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/sentinel-2.png b/public/static/Cesium/Widgets/Images/ImageryProviders/sentinel-2.png new file mode 100644 index 0000000..775fb38 Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/sentinel-2.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/stamenToner.png b/public/static/Cesium/Widgets/Images/ImageryProviders/stamenToner.png new file mode 100644 index 0000000..af89409 Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/stamenToner.png differ diff --git a/public/static/Cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png b/public/static/Cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png new file mode 100644 index 0000000..552130e Binary files /dev/null and b/public/static/Cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png differ diff --git a/public/static/Cesium/Widgets/Images/NavigationHelp/Mouse.svg b/public/static/Cesium/Widgets/Images/NavigationHelp/Mouse.svg new file mode 100644 index 0000000..7fae028 --- /dev/null +++ b/public/static/Cesium/Widgets/Images/NavigationHelp/Mouse.svg @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="29.6875" + height="40.625095" + viewBox="0 0 29.6875 40.625095" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="Mouse.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="747" + inkscape:window-height="596" + id="namedview17" + showgrid="false" + inkscape:zoom="1.84375" + inkscape:cx="-37.919388" + inkscape:cy="92.305679" + inkscape:window-x="266" + inkscape:window-y="72" + inkscape:window-maximized="0" + inkscape:current-layer="Layer_1" + inkscape:snap-center="false" + inkscape:snap-page="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3" + transform="translate(-17.15625,-19.531154)"> + <g + id="g5" + style="fill:#4d4d4d;stroke:#4d4d4d"> + <path + d="M 31.9335,20.041 C 24.639,20.034 17.653,20.318 17.653,44.617 c 0,10.951 8.799,15.032 14.347,15.032 5.545,0 14.347,-4.081 14.347,-15.032 0,-24.27 -7.119,-24.569 -14.4135,-24.576 z m 0.7515,1.358 c 5.643,0.012 10.927,0.236 12.063,16.153 -3.86,1.805 -7.916,2.765 -12.063,2.86 l 0,-2.966 c 0.845,-0.162 1.481,-0.909 1.481,-1.782 l 0,-8.956 c 0,-0.876 -0.637,-1.621 -1.481,-1.784 z m -1.027,4.855 0.685,0 c 0.249,0 0.453,0.205 0.453,0.454 l 0,8.956 c 0,0.249 -0.204,0.449 -0.453,0.449 l -0.685,0 c -0.249,0 -0.452,-0.2 -0.452,-0.449 l 0,-8.956 c 0,-0.249 0.203,-0.454 0.452,-0.454 z m -0.345,-4.855 0,3.525 c -0.845,0.163 -1.479,0.91 -1.479,1.784 l 0,8.956 c 0,0.873 0.634,1.62 1.479,1.782 l 0,2.966 C 25.002,40.264 20.408,38.16 19.25,37.573 20.381,21.633 25.668,21.411 31.313,21.399 z M 32,58.274 c -5.016,0 -12.976,-3.707 -12.976,-13.658 0,-1.983 0.045,-3.853 0.134,-5.563 2.003,0.929 6.696,2.74 12.868,2.74 4.394,0 8.704,-0.934 12.813,-2.771 0.089,1.718 0.135,3.6 0.135,5.595 0,9.95 -7.958,13.657 -12.974,13.657 z" + id="path7" + style="fill:#4d4d4d;stroke:#4d4d4d" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssscccccssccsssssssssccssccccsscscss" /> + </g> + + +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /></g> +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644;stroke-opacity:1" + d="M 11.584306,20.532528 C 9.1265112,20.247533 6.2927846,19.555647 4.1047676,18.706316 c -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.5226316 4.304477,-8.0618496 9.1542404,-8.0618496 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.5275241 -0.422157,5.7217066 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3766" + inkscape:connector-curvature="0" /></svg> \ No newline at end of file diff --git a/public/static/Cesium/Widgets/Images/NavigationHelp/MouseLeft.svg b/public/static/Cesium/Widgets/Images/NavigationHelp/MouseLeft.svg new file mode 100644 index 0000000..0c49c15 --- /dev/null +++ b/public/static/Cesium/Widgets/Images/NavigationHelp/MouseLeft.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="64px" + height="64px" + viewBox="0 0 64 64" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="MouseLeft.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1282" + inkscape:window-height="886" + id="namedview17" + showgrid="false" + inkscape:zoom="3.6875" + inkscape:cx="-10.305085" + inkscape:cy="32" + inkscape:window-x="104" + inkscape:window-y="136" + inkscape:window-maximized="0" + inkscape:current-layer="g3" /> +<g + id="g3"> + <g + id="g5" + style="fill:#4d4d4d;stroke:#4d4d4d"> + <path + fill="#020202" + d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" + id="path7" + style="fill:#4d4d4d;stroke:#4d4d4d" /> + </g> + + +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /></g> +<path + style="fill:#66CCFF;stroke:#66CCFF;stroke-width:0.27118643999999997" + d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3766" + inkscape:connector-curvature="0" /></svg> \ No newline at end of file diff --git a/public/static/Cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg b/public/static/Cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg new file mode 100644 index 0000000..9dd533d --- /dev/null +++ b/public/static/Cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="64px" + height="64px" + viewBox="0 0 64 64" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="MouseMiddle.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1282" + inkscape:window-height="886" + id="namedview17" + showgrid="false" + inkscape:zoom="3.6875" + inkscape:cx="-10.305085" + inkscape:cy="32" + inkscape:window-x="31" + inkscape:window-y="15" + inkscape:window-maximized="0" + inkscape:current-layer="g3" /> +<g + id="g3"> + <g + id="g5" + style="stroke:#4d4d4d;fill:#4d4d4d"> + <path + fill="#020202" + d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" + id="path7" + style="stroke:#4d4d4d;fill:#4d4d4d" /> + </g> + + +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118643999999997" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3778" + inkscape:connector-curvature="0" /><path + style="fill:#ffd800;stroke:#ffd800;stroke-width:0.33870965" + d="m 31.356243,35.809264 c -0.164314,-0.103856 -0.298753,-2.215682 -0.298753,-4.692945 0,-3.956026 0.08644,-4.52508 0.710296,-4.676395 0.390663,-0.09475 0.87474,-0.06834 1.075729,0.0587 0.200991,0.127038 0.312719,2.28036 0.248288,4.785159 -0.09927,3.859122 -0.217853,4.566401 -0.776977,4.634247 -0.362909,0.04404 -0.79427,-0.0049 -0.958583,-0.108765 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /></g> +</svg> \ No newline at end of file diff --git a/public/static/Cesium/Widgets/Images/NavigationHelp/MouseRight.svg b/public/static/Cesium/Widgets/Images/NavigationHelp/MouseRight.svg new file mode 100644 index 0000000..2662ad1 --- /dev/null +++ b/public/static/Cesium/Widgets/Images/NavigationHelp/MouseRight.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="64px" + height="64px" + viewBox="0 0 64 64" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="MouseRight.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1282" + inkscape:window-height="886" + id="namedview17" + showgrid="false" + inkscape:zoom="3.6875" + inkscape:cx="32" + inkscape:cy="32" + inkscape:window-x="31" + inkscape:window-y="15" + inkscape:window-maximized="0" + inkscape:current-layer="g3" /> +<g + id="g3"> + <g + id="g5" + style="stroke:#4d4d4d;fill:#4d4d4d"> + <path + fill="#020202" + d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" + id="path7" + style="stroke:#4d4d4d;fill:#4d4d4d" /> + </g> + + +<path + style="fill:#65FD00;stroke:#65FD00;stroke-width:0.27118643999999997" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3778" + inkscape:connector-curvature="0" /></g> +</svg> \ No newline at end of file diff --git a/public/static/Cesium/Widgets/Images/NavigationHelp/Touch.svg b/public/static/Cesium/Widgets/Images/NavigationHelp/Touch.svg new file mode 100644 index 0000000..e682b30 --- /dev/null +++ b/public/static/Cesium/Widgets/Images/NavigationHelp/Touch.svg @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="76.664284" + height="128.25087" + viewBox="0 0 76.664283 128.25086" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="Touch.svg"><metadata + id="metadata3468"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3466" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="920" + inkscape:window-height="780" + id="namedview3464" + showgrid="false" + inkscape:zoom="1.7688899" + inkscape:cx="-0.07794217" + inkscape:cy="94.239301" + inkscape:window-x="1529" + inkscape:window-y="186" + inkscape:window-maximized="0" + inkscape:current-layer="g3428" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3428" + transform="translate(-7.9878665e-4,-5.1661327)"> + + <path + d="M 76.151,80.896 C 77.465,66.89 62.145,65.577 62.145,65.577 57.771,52.885 46.39,59.45 46.39,59.45 40.701,46.758 29.322,55.511 29.322,55.511 27.912,55.092 25.613,11.796 24.414,11.604 23.44,7.068 14.011,-1.728 12.511,14.772 c 0,36.5 -1.135,47.304 -1.135,47.304 C 9.188,67.328 5.31,80.458 5.31,80.458 -3.006,89.649 0.933,96.214 0.933,96.214 c 7.002,12.255 21.385,28.449 21.385,28.449 6.129,5.252 2.627,8.316 2.627,8.316 l 42.455,0.438 2.334,-7.878 c 9.628,-18.382 6.417,-44.643 6.417,-44.643 z" + id="path3432" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccc" + style="fill:#ffffff;fill-opacity:1" /> +</g> +<g + id="g3434" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3436" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3438" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3440" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3442" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3444" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3446" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3448" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3450" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3452" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3454" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3456" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3458" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3460" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3462" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +</svg> \ No newline at end of file diff --git a/public/static/Cesium/Widgets/Images/NavigationHelp/TouchDrag.svg b/public/static/Cesium/Widgets/Images/NavigationHelp/TouchDrag.svg new file mode 100644 index 0000000..f0509e8 --- /dev/null +++ b/public/static/Cesium/Widgets/Images/NavigationHelp/TouchDrag.svg @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="76.664284" + height="133.41701" + viewBox="0 0 76.664283 133.417" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchDrag.svg"><metadata + id="metadata3468"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3466" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="920" + inkscape:window-height="780" + id="namedview3464" + showgrid="false" + inkscape:zoom="1.7688899" + inkscape:cx="-0.077942171" + inkscape:cy="94.239298" + inkscape:window-x="161" + inkscape:window-y="225" + inkscape:window-maximized="0" + inkscape:current-layer="g3428" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3428" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="M 18.653,0 C 12.359,0 7.258,5.102 7.258,11.395 c 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 C 30.048,5.102 24.946,0 18.653,0 z m 0,20.43 c -4.989,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.047,-9.035 9.036,-9.035 4.989,0 9.035,4.046 9.035,9.035 0,4.99 -4.045,9.036 -9.035,9.036 z" + id="path3430" + inkscape:connector-curvature="0" /> + <path + d="M 76.151,80.896 C 77.465,66.89 62.145,65.577 62.145,65.577 57.771,52.885 46.39,59.45 46.39,59.45 40.701,46.758 29.322,55.511 29.322,55.511 27.912,55.092 25.613,11.796 24.414,11.604 23.44,7.068 14.011,-1.728 12.511,14.772 c 0,36.5 -1.135,47.304 -1.135,47.304 C 9.188,67.328 5.31,80.458 5.31,80.458 -3.006,89.649 0.933,96.214 0.933,96.214 c 7.002,12.255 21.385,28.449 21.385,28.449 6.129,5.252 2.627,8.316 2.627,8.316 l 42.455,0.438 2.334,-7.878 c 9.628,-18.382 6.417,-44.643 6.417,-44.643 z" + id="path3432" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccc" + style="fill:#ffffff;fill-opacity:1" /> +<path + d="m 65.247258,98.823749 c -0.681067,0.71969 -7.149935,7.376421 -7.149935,7.376421 0,0 -0.86404,0.92222 -0.86404,-0.29705 0.0013,-1.22468 0.0013,-3.17039 0.0013,-3.17039 0,0 -0.498094,0.003 -1.261753,0.002 -2.35324,0.002 -6.936466,0.002 -8.692502,0.002 0,0 -0.07751,-0.007 -0.162642,-0.0472 0,0.0378 0,0.0972 0,0.13232 0.01652,0.0891 0.0013,0.16068 0,0.16608 0,0.0149 0,0.0419 0,0.0554 0,0 0.01779,0.077 0,0.17013 0,2.02673 0,6.49066 0,8.99672 0.0013,0.90332 0,1.49203 0,1.49203 0,0 2.283354,0.002 3.229986,0 0.942821,0 0.07751,0.87225 0.07751,0.87225 l -7.121981,7.36157 c 0,0 -0.470139,0.5833 -0.963151,0.0607 -0.677255,-0.72374 -6.941548,-7.59515 -6.941548,-7.59515 0,0 -0.867853,-0.91952 0.280812,-0.91952 1.151207,0.002 2.983481,0.002 2.983481,0.002 0,0 -0.0026,-0.52929 -0.0013,-1.34079 -0.0013,-2.50067 -0.0013,-7.37102 -0.0013,-9.23572 l 0,-0.004 c 0,-0.0567 0,-0.14582 0,-0.21333 -0.08259,0.0392 -0.15883,0.0459 -0.15883,0.0459 -1.756036,0 -6.339262,0 -8.696314,-0.002 -0.759847,0.002 -1.260482,0 -1.260482,0 0,0 0.0026,1.94706 0.0026,3.17039 -0.0013,1.21793 -0.864041,0.29975 -0.864041,0.29975 0,0 -6.467597,-6.655381 -7.147393,-7.377761 -0.493012,-0.52525 0.05464,-1.02484 0.05464,-1.02484 l 6.927571,-7.566801 c 0,0 0.82338,-0.92357 0.82211,0.08236 0.0026,1.004586 0.0026,3.432334 0.0026,3.432334 0,0 0.552732,-0.0014 1.402796,-0.0041 2.439643,0.0041 6.872933,0.0027 8.678524,0.0014 0,0 0.116899,-0.03106 0.23634,0.027 0,-4.084505 0,-8.204115 0.0013,-9.436893 -0.0013,-0.807449 0,-1.339448 0,-1.339448 0,0 -1.832274,0.0027 -2.983481,0.0027 -1.146124,-0.0014 -0.280813,-0.918169 -0.280813,-0.918169 0,0 6.261752,-6.872771 6.942819,-7.596505 0.494283,-0.522547 0.964422,0.05806 0.964422,0.05806 l 7.12071,7.361561 c 0,0 0.869123,0.874963 -0.07624,0.872261 -0.945362,0.0027 -3.229987,0.0027 -3.229987,0.0027 0,0 0.0013,0.587358 0.0038,1.492025 -0.0013,1.284087 -0.0026,5.419901 -0.0026,9.503056 0.120712,-0.06211 0.240153,-0.02835 0.240153,-0.02835 1.804319,0 6.237609,0 8.675982,0 0.851334,-0.0014 1.404066,0 1.404066,0 0,0 0.0013,-2.426399 0,-3.430985 0,-1.003235 0.820838,-0.08236 0.820838,-0.08236 l 6.927572,7.566803 c 0,0.001 0.546378,0.50094 0.05845,1.02484 z" + id="path3238" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccccccsscccccccccccccccccccccccccccccccc" + style="fill:#66ccff;fill-opacity:1" /></g> +<g + id="g3434" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3436" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3438" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3440" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3442" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3444" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3446" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3448" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3450" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3452" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3454" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3456" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3458" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3460" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3462" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +</svg> \ No newline at end of file diff --git a/public/static/Cesium/Widgets/Images/NavigationHelp/TouchRotate.svg b/public/static/Cesium/Widgets/Images/NavigationHelp/TouchRotate.svg new file mode 100644 index 0000000..fe968ff --- /dev/null +++ b/public/static/Cesium/Widgets/Images/NavigationHelp/TouchRotate.svg @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="99.001816" + height="101.57817" + viewBox="0 0 99.001814 101.57817" + enable-background="new 0 0 100.775 118.638" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchRotate.svg"><metadata + id="metadata3382"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3380" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1105" + inkscape:window-height="739" + id="namedview3378" + showgrid="false" + inkscape:zoom="1.9873603" + inkscape:cx="11.856691" + inkscape:cy="15.112094" + inkscape:window-x="67" + inkscape:window-y="152" + inkscape:window-maximized="0" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + +<path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 48.832974,0 c -5.85006,0 -10.591269,4.862311 -10.591269,10.85967 0,5.997358 4.742138,10.859669 10.592198,10.859669 5.849132,0 10.59127,-4.862311 10.59127,-10.859669 C 59.42425,4.862311 54.682106,0 48.832974,0 z m 0,19.47021 c -4.637107,0 -8.398657,-3.855921 -8.398657,-8.611493 0,-4.754621 3.76155,-8.610543 8.398657,-8.610543 4.637107,0 8.397729,3.855922 8.397729,8.610543 0,4.755572 -3.759691,8.611493 -8.397729,8.611493 z" + id="path3430" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 27.154761,39.321738 c -5.457398,0 -9.88037,4.703155 -9.88037,10.504205 0,5.801049 4.423839,10.504204 9.881237,10.504204 5.456532,0 9.880371,-4.703155 9.880371,-10.504204 -8.67e-4,-5.80105 -4.424707,-10.504205 -9.881238,-10.504205 z m 0,18.8329 c -4.325859,0 -7.834929,-3.729707 -7.834929,-8.329617 0,-4.598989 3.50907,-8.328696 7.834929,-8.328696 4.32586,0 7.834063,3.729707 7.834063,8.328696 0,4.59991 -3.507336,8.329617 -7.834063,8.329617 z" + id="path3430-5" /><path + d="M 93.394891,94.930552 91.5074,101.57817 52.728925,101.21032 c 8.08e-4,-8.5e-4 2.829619,-2.585988 -2.124439,-7.016318 0,0 -10.822746,-5.22596 -18.506953,-18.0968 0,0 -6.310236,-6.742109 -6.091889,-9.206596 -0.583067,-4.408398 -1.209805,-6.954724 -1.715239,-8.534999 -1.063849,-4.039774 -1.553525,-2.844172 -1.553525,-7.228104 2.452812,-14.333817 10.869455,1.810623 12.764445,5.488368 0,0 6.305384,7.578229 9.063029,9.283373 8.851152,-2.291524 3.039071,-22.109494 3.660956,-23.668675 0,0 -1.25024,-10.043558 -2.822341,-23.064577 -3.9949,-15.561935 8.286796,-19.626706 11.636292,-3.093053 1.545414,7.344522 3.686834,19.52689 4.483397,19.774098 0,0 8.395048,-7.385018 12.995707,3.323385 0,0 9.202125,-5.538975 12.741777,5.170273 0,0 12.387573,1.10695 11.326563,12.923992 0,0 2.595085,22.156743 -5.191814,37.665865 z" + id="path3376" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccc" + style="fill:#ffffff" /><path + d="m 36.857901,10.534807 -5.731265,12.511815 c 0,0 -0.666487,1.516584 -1.19043,0.316343 -0.52908,-1.19559 -1.800413,-4.092683 -1.800413,-4.092683 0,0 -0.774356,0.279126 -1.962218,0.711771 -3.412049,1.225827 -9.61846,3.462323 -12.145716,4.370646 0,0 -0.609983,0.412873 -1.019633,-0.532666 -0.419926,-0.944375 -3.7806092,-8.602891 -4.0798222,-9.279772 -0.294076,-0.674552 0.288938,-0.867615 0.288938,-0.867615 2.4553422,-0.886224 8.8659382,-3.19599 12.1688342,-4.381112 1.05816,-0.382636 1.763171,-0.631523 1.763171,-0.631523 0,0 -1.02734,-2.324887 -1.664289,-3.782156 -0.636951,-1.454944 1.049169,-0.79202 1.049169,-0.79202 0,0 12.534822,4.676522 13.866509,5.195231 0.963131,0.382636 0.457165,1.253741 0.457165,1.253741 z" + id="path9" + style="fill:#d800d8;fill-opacity:1" + inkscape:connector-curvature="0" /><g + id="g2997" + transform="matrix(0,-1,1,0,-0.01316643,45.882166)" + inkscape:transform-center-x="-4.9812271" + inkscape:transform-center-y="-4.2696251"><path + id="path2999" + d="M 6.6614176,0.14173229 19.48819,5.5984253 c 0,0 1.559055,0.6377953 0.354331,1.1338583 -1.240158,0.5314961 -4.181103,1.7716536 -4.181103,1.7716536 0,0 0.283465,0.7440945 0.744095,1.9133858 1.27559,3.259843 3.57874,9.248032 4.535433,11.692914 0,0 0.425197,0.566929 -0.566929,0.992126 -0.956693,0.389764 -8.751969,3.685039 -9.460631,4.003937 -0.673228,0.283464 -0.885827,-0.283465 -0.885827,-0.283465 C 9.1062996,24.448819 6.6968507,18.283465 5.4921262,15.094489 5.0669294,14.066929 4.8188979,13.393701 4.8188979,13.393701 c 0,0 -2.3740159,0.992126 -3.86220494,1.629921 -1.48818905,0.637796 -0.81496067,-0.992126 -0.81496067,-0.992126 0,0 4.71259861,-12.1535432 5.24409471,-13.42913378 0.3897638,-0.95669294 1.2755906,-0.46062993 1.2755906,-0.46062993 z" + style="fill:#d800d8;fill-opacity:1;fill-rule:nonzero;stroke:none" + inkscape:connector-curvature="0" /></g></svg> \ No newline at end of file diff --git a/public/static/Cesium/Widgets/Images/NavigationHelp/TouchTilt.svg b/public/static/Cesium/Widgets/Images/NavigationHelp/TouchTilt.svg new file mode 100644 index 0000000..e1206c5 --- /dev/null +++ b/public/static/Cesium/Widgets/Images/NavigationHelp/TouchTilt.svg @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="76.663582" + height="140.44" + viewBox="0 0 76.663581 140.44" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchTilt.svg"><metadata + id="metadata3364"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3362" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="766" + inkscape:window-height="480" + id="namedview3360" + showgrid="false" + inkscape:zoom="1.6804329" + inkscape:cx="6.1930652" + inkscape:cy="74.717535" + inkscape:window-x="343" + inkscape:window-y="203" + inkscape:window-maximized="0" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3322" + style="fill:#ffffff" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 12.622,5.815 c -6.294,0 -11.396,5.102 -11.396,11.395 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 0,-6.293 -5.102,-11.395 -11.395,-11.395 z m 0,20.431 c -4.99,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.046,-9.035 9.036,-9.035 4.988,0 9.035,4.046 9.035,9.035 0,4.99 -4.047,9.036 -9.035,9.036 z" + id="path3324" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 43.793,0 c -6.294,0 -11.396,5.102 -11.396,11.395 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 C 55.188,5.102 50.086,0 43.793,0 z m 0,20.43 c -4.99,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.046,-9.035 9.036,-9.035 4.988,0 9.035,4.046 9.035,9.035 0,4.99 -4.047,9.036 -9.035,9.036 z" + id="path3326" + inkscape:connector-curvature="0" /> + <path + d="M 76.151,87.918 C 77.464,73.913 62.146,72.6 62.146,72.6 57.769,59.907 47.556,66.472 47.556,66.472 c 0,0 2.262,-49.025 1.395,-54.713 -0.51,-3.331 -6.383,-10.562 -9.998,-1.684 -2.137,6.166 -5.59,60.75 -9.465,56.874 C 24.984,62.447 20.611,18.817 19.414,18.626 18.438,14.09 9.011,5.294 7.511,21.794 c 3,39.5 3.865,47.304 3.865,47.304 C 9.187,74.35 5.31,87.481 5.31,87.481 c -8.316,9.191 -4.377,15.756 -4.377,15.756 7.002,12.255 21.385,28.449 21.385,28.449 6.127,5.252 2.625,8.316 2.625,8.316 l 42.455,0.438 2.334,-7.879 c 9.628,-18.382 6.419,-44.643 6.419,-44.643 z" + id="path3328" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccc" + style="fill:#ffffff" /> +</g> +<g + id="g3330" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3332" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3334" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3336" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3338" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3340" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3342" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3344" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3346" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3348" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3350" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3352" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3354" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3356" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3358" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<path + inkscape:connector-curvature="0" + d="m 52.342987,124.78465 -8.980622,9.44613 c 0,0 -0.592129,0.74692 -1.214412,0.0786 -0.853927,-0.92772 -8.753091,-9.74549 -8.753091,-9.74549 0,0 -1.096535,-1.17966 0.352262,-1.17818 1.454279,10e-4 3.762485,10e-4 3.762485,10e-4 0,0 -0.0027,-0.67875 -0.0014,-1.72058 -0.0014,-3.20848 -0.0014,-9.4565 -0.0027,-11.8499 0,0 -0.01233,-0.56315 0.655179,-0.56019 0.672999,0 8.298029,0 9.238308,-0.003 0.937537,0.003 0.774428,0.66985 0.774428,0.66985 0,2.45861 0,8.50359 -0.0027,11.82767 0.0041,1.16039 0.0027,1.91472 0.0027,1.91472 0,0 2.879775,0.003 4.070886,0 1.192483,-10e-4 0.09869,1.11889 0.09869,1.11889 z m -0.09869,-37.828986 c -1.191111,0.003 -4.073627,0.003 -4.073627,0.003 0,0 0.0027,0.752845 0.0041,1.914716 -0.0041,3.327041 -0.0041,9.370556 -0.0014,11.83064 0,0 0.16174,0.66393 -0.774427,0.66096 -0.943021,0.006 -8.563939,0.003 -9.235567,0.004 -0.670257,-0.003 -0.65655,-0.56167 -0.65655,-0.56167 -0.0014,-2.393393 -0.0014,-8.642902 0.0014,-11.855831 -0.0014,-1.034421 0,-1.717613 0,-1.717613 0,0 -2.312318,0.003 -3.762486,0.0044 -1.444685,-0.003 -0.355003,-1.178173 -0.355003,-1.178173 0,0 7.896422,-8.81777 8.755832,-9.745488 0.622284,-0.671338 1.215783,0.07558 1.215783,0.07558 l 8.979252,9.444648 c 0,0 1.096534,1.121857 -0.09732,1.120375 z" + id="path3432" + sodipodi:nodetypes="ccccsccccccccccccccccccccccccc" + style="fill:#ffd800;fill-opacity:1" /></svg> \ No newline at end of file diff --git a/public/static/Cesium/Widgets/Images/NavigationHelp/TouchZoom.svg b/public/static/Cesium/Widgets/Images/NavigationHelp/TouchZoom.svg new file mode 100644 index 0000000..74e55d7 --- /dev/null +++ b/public/static/Cesium/Widgets/Images/NavigationHelp/TouchZoom.svg @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="95.087433" + height="118.43173" + viewBox="0 0 95.087431 118.43173" + enable-background="new 0 0 100.775 118.638" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchZoom.svg"><metadata + id="metadata3382"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3380" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1105" + inkscape:window-height="739" + id="namedview3378" + showgrid="false" + inkscape:zoom="2.8132167" + inkscape:cx="10.565593" + inkscape:cy="72.192791" + inkscape:window-x="67" + inkscape:window-y="152" + inkscape:window-maximized="0" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + +<path + d="m 0.0436199,84.941029 c 0,0 -0.2799964,-1.323641 0.578786,-0.720397 0.8621957,0.601498 2.9536375,2.059778 2.9536375,2.059778 0,0 0.3431801,-0.517567 0.8707286,-1.316651 1.521209,-2.28009 4.281925,-6.427623 5.405325,-8.116707 0,0 0.187721,-0.53855 0.863902,-0.06295 0.682926,0.472104 6.206065,4.329377 6.692655,4.668591 0.483157,0.340966 0.220227,0.718649 0.220227,0.718649 -1.094368,1.641877 -3.948985,5.929292 -5.418977,8.132449 -0.469526,0.711655 -0.783654,1.178514 -0.783654,1.178514 0,0 1.678274,1.168023 2.728271,1.900661 1.043172,0.732637 -0.28341,0.987925 -0.28341,0.987925 0,0 -9.7470195,2.05628 -10.7936043,2.25911 -0.756328,0.145111 -0.8468168,-0.666198 -0.8468168,-0.666198 z" + id="path3376-4" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccc" + style="fill:#65ff00;fill-opacity:1" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 44.918594,16.853557 c -5.85006,0 -10.591269,4.862311 -10.591269,10.85967 0,5.997358 4.742138,10.859669 10.592198,10.859669 5.849132,0 10.59127,-4.862311 10.59127,-10.859669 -9.23e-4,-5.997359 -4.743067,-10.85967 -10.592199,-10.85967 z m 0,19.47021 c -4.637107,0 -8.398657,-3.855921 -8.398657,-8.611493 0,-4.754621 3.76155,-8.610543 8.398657,-8.610543 4.637107,0 8.397729,3.855922 8.397729,8.610543 0,4.755572 -3.759691,8.611493 -8.397729,8.611493 z" + id="path3430" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 23.240381,56.175295 c -5.457398,0 -9.88037,4.703155 -9.88037,10.504205 0,5.801049 4.423839,10.504204 9.881237,10.504204 5.456532,0 9.880371,-4.703155 9.880371,-10.504204 -8.67e-4,-5.80105 -4.424707,-10.504205 -9.881238,-10.504205 z m 0,18.8329 c -4.325859,0 -7.834929,-3.729707 -7.834929,-8.329617 0,-4.598989 3.50907,-8.328696 7.834929,-8.328696 4.32586,0 7.834063,3.729707 7.834063,8.328696 0,4.59991 -3.507336,8.329617 -7.834063,8.329617 z" + id="path3430-5" /><path + d="m 89.480511,111.78411 -1.887491,6.64762 -38.778475,-0.36785 c 8.08e-4,-8.5e-4 2.829619,-2.58599 -2.124439,-7.01632 0,0 -10.822746,-5.22596 -18.506953,-18.096801 0,0 -6.310236,-6.742109 -6.091889,-9.206596 C 21.508197,79.335765 20.881459,76.789439 20.376025,75.209164 19.312176,71.16939 18.8225,72.364992 18.8225,67.98106 c 2.452812,-14.333817 10.869455,1.810623 12.764445,5.488368 0,0 6.305384,7.578229 9.063029,9.283373 8.851152,-2.291524 3.039071,-22.109494 3.660956,-23.668675 0,0 -1.25024,-10.043558 -2.822341,-23.064577 -3.9949,-15.561935 8.286796,-19.626706 11.636292,-3.093053 1.545414,7.344522 3.686834,19.52689 4.483397,19.774098 0,0 8.395048,-7.385018 12.995707,3.323385 0,0 9.202125,-5.538975 12.741777,5.170273 0,0 12.387573,1.10695 11.326563,12.923992 0,0 2.59509,22.156743 -5.191814,37.665866 z" + id="path3376" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccc" + style="fill:#ffffff" /><path + d="m 49.854025,14.903508 c 0.696314,0.466948 6.359531,4.268019 6.858144,4.604015 0.491619,0.334273 0.748797,-0.05343 0.748797,-0.05343 1.121449,-1.617954 4.044902,-5.844621 5.545997,-8.013953 0.488115,-0.703007 0.803031,-1.164787 0.803031,-1.164787 0,0 1.714536,1.152726 2.792243,1.876411 1.07596,0.721961 0.813533,-0.620302 0.813533,-0.620302 0,0 -1.732034,-9.8989818 -1.933227,-10.95349441 -0.150463,-0.7615853 -0.939496,-0.5513731 -0.939496,-0.5513731 L 53.458049,1.9374693 c 0,0 -1.336636,0.2136595 -0.454876,0.8046693 0.88876,0.5927325 3.02493,2.0297666 3.02493,2.0297666 0,0 -0.355152,0.5083037 -0.895757,1.2940169 -1.558825,2.2468717 -4.387811,6.3339699 -5.538999,7.9984459 -0.0018,0.0017 -0.433883,0.370456 0.260678,0.83914 z" + id="path3376-7-4" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccc" + style="fill:#65ff00;fill-opacity:1" /></svg> \ No newline at end of file diff --git a/public/static/Cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png b/public/static/Cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png new file mode 100644 index 0000000..16343ec Binary files /dev/null and b/public/static/Cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png differ diff --git a/public/static/Cesium/Widgets/Images/TerrainProviders/Ellipsoid.png b/public/static/Cesium/Widgets/Images/TerrainProviders/Ellipsoid.png new file mode 100644 index 0000000..a36259b Binary files /dev/null and b/public/static/Cesium/Widgets/Images/TerrainProviders/Ellipsoid.png differ diff --git a/public/static/Cesium/Widgets/Images/TimelineIcons.png b/public/static/Cesium/Widgets/Images/TimelineIcons.png new file mode 100644 index 0000000..e3a0455 Binary files /dev/null and b/public/static/Cesium/Widgets/Images/TimelineIcons.png differ diff --git a/public/static/Cesium/Widgets/Images/info-loading.gif b/public/static/Cesium/Widgets/Images/info-loading.gif new file mode 100644 index 0000000..8df10dd Binary files /dev/null and b/public/static/Cesium/Widgets/Images/info-loading.gif differ diff --git a/public/static/Cesium/Widgets/InfoBox/InfoBox.css b/public/static/Cesium/Widgets/InfoBox/InfoBox.css new file mode 100644 index 0000000..42a7b22 --- /dev/null +++ b/public/static/Cesium/Widgets/InfoBox/InfoBox.css @@ -0,0 +1,92 @@ +/* packages/widgets/Source/InfoBox/InfoBox.css */ +.cesium-infoBox { + display: block; + position: absolute; + top: 50px; + right: 0; + width: 40%; + max-width: 480px; + background: rgba(38, 38, 38, 0.95); + color: #edffff; + border: 1px solid #444; + border-right: none; + border-top-left-radius: 7px; + border-bottom-left-radius: 7px; + box-shadow: 0 0 10px 1px #000; + transform: translate(100%, 0); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-infoBox-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-infoBox-title { + display: block; + height: 20px; + padding: 5px 30px 5px 25px; + background: rgba(84, 84, 84, 1); + border-top-left-radius: 7px; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + box-sizing: content-box; +} +.cesium-infoBox-bodyless .cesium-infoBox-title { + border-bottom-left-radius: 7px; +} +button.cesium-infoBox-camera { + display: block; + position: absolute; + top: 4px; + left: 4px; + width: 22px; + height: 22px; + background: transparent; + border-color: transparent; + border-radius: 3px; + padding: 0 5px; + margin: 0; +} +button.cesium-infoBox-close { + display: block; + position: absolute; + top: 5px; + right: 5px; + height: 20px; + background: transparent; + border: none; + border-radius: 2px; + font-weight: bold; + font-size: 16px; + padding: 0 5px; + margin: 0; + color: #edffff; +} +button.cesium-infoBox-close:focus { + background: rgba(238, 136, 0, 0.44); + outline: none; +} +button.cesium-infoBox-close:hover { + background: #888; + color: #000; +} +button.cesium-infoBox-close:active { + background: #a00; + color: #000; +} +.cesium-infoBox-bodyless .cesium-infoBox-iframe { + display: none; +} +.cesium-infoBox-iframe { + border: none; + width: 100%; + width: calc(100% - 2px); +} diff --git a/public/static/Cesium/Widgets/InfoBox/InfoBoxDescription.css b/public/static/Cesium/Widgets/InfoBox/InfoBoxDescription.css new file mode 100644 index 0000000..04ee3db --- /dev/null +++ b/public/static/Cesium/Widgets/InfoBox/InfoBoxDescription.css @@ -0,0 +1,178 @@ +/* packages/widgets/Source/shared.css */ +.cesium-svgPath-svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.cesium-button { + display: inline-block; + position: relative; + background: #303336; + border: 1px solid #444; + color: #edffff; + fill: #edffff; + border-radius: 4px; + padding: 5px 12px; + margin: 2px 3px; + cursor: pointer; + overflow: hidden; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-button:focus { + color: #fff; + fill: #fff; + border-color: #ea4; + outline: none; +} +.cesium-button:hover { + color: #fff; + fill: #fff; + background: #48b; + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-button:active { + color: #000; + fill: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-button:disabled, +.cesium-button-disabled, +.cesium-button-disabled:focus, +.cesium-button-disabled:hover, +.cesium-button-disabled:active { + background: #303336; + border-color: #444; + color: #646464; + fill: #646464; + box-shadow: none; + cursor: default; +} +.cesium-button option { + background-color: #000; + color: #eee; +} +.cesium-button option:disabled { + color: #777; +} +.cesium-button input, +.cesium-button label { + cursor: pointer; +} +.cesium-button input { + vertical-align: sub; +} +.cesium-toolbar-button { + box-sizing: border-box; + width: 32px; + height: 32px; + border-radius: 14%; + padding: 0; + vertical-align: middle; + z-index: 0; +} +.cesium-performanceDisplay-defaultContainer { + position: absolute; + top: 50px; + right: 10px; + text-align: right; +} +.cesium-performanceDisplay { + background-color: rgba(40, 40, 40, 0.7); + padding: 7px; + border-radius: 5px; + border: 1px solid #444; + font: bold 12px sans-serif; +} +.cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-performanceDisplay-throttled { + color: #a42; +} +.cesium-performanceDisplay-ms { + color: #de3; +} + +/* packages/widgets/Source/InfoBox/InfoBoxDescription.css */ +body { + margin: 0; + padding: 0; +} +.cesium-infoBox-description { + font-family: sans-serif; + font-size: 13px; + padding: 4px 10px; + margin-right: 4px; + color: #edffff; +} +.cesium-infoBox-description a:link, +.cesium-infoBox-description a:visited, +.cesium-infoBox-description a:hover, +.cesium-infoBox-description a:active { + color: #edffff; +} +.cesium-infoBox-description table { + color: #edffff; +} +.cesium-infoBox-defaultTable { + width: 100%; + color: #edffff; +} +.cesium-infoBox-defaultTable tr:nth-child(odd) { + background-color: rgba(84, 84, 84, 0.8); +} +.cesium-infoBox-defaultTable tr:nth-child(even) { + background-color: rgba(84, 84, 84, 0.25); +} +.cesium-infoBox-defaultTable th { + font-weight: normal; + padding: 3px; + vertical-align: middle; + text-align: center; +} +.cesium-infoBox-defaultTable td { + padding: 3px; + vertical-align: middle; + text-align: left; +} +.cesium-infoBox-description-lighter { + color: #000000; +} +.cesium-infoBox-description-lighter a:link, +.cesium-infoBox-description-lighter a:visited, +.cesium-infoBox-description-lighter a:hover, +.cesium-infoBox-description-lighter a:active { + color: #000000; +} +.cesium-infoBox-description-lighter table { + color: #000000; +} +.cesium-infoBox-defaultTable-lighter { + width: 100%; + color: #000000; +} +.cesium-infoBox-defaultTable-lighter tr:nth-child(odd) { + background-color: rgba(179, 179, 179, 0.8); +} +.cesium-infoBox-defaultTable-lighter tr:nth-child(even) { + background-color: rgba(179, 179, 179, 0.25); +} +.cesium-infoBox-loadingContainer { + margin: 5px; + text-align: center; +} +.cesium-infoBox-loading { + display: inline-block; + background-image: url(data:text/plain;base64,R0lGODlhEAALAPQAAAAAAOLTlyAdFSgmGxEQC9zOk+LTl7mse25nSYyDXTw4KMO2gqCVa2dgRIl/Wzg1JsCzgN7PlJySaBUTDiEfFggIBbCkdR4cFAoJB0A7KlNONy4rHg4NCQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA); + width: 16px; + height: 11px; +} diff --git a/public/static/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css b/public/static/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css new file mode 100644 index 0000000..60f7a5b --- /dev/null +++ b/public/static/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css @@ -0,0 +1,93 @@ +/* packages/widgets/Source/NavigationHelpButton/NavigationHelpButton.css */ +.cesium-navigationHelpButton-wrapper { + position: relative; + display: inline-block; +} +.cesium-navigation-help { + visibility: hidden; + position: absolute; + top: 38px; + right: 2px; + width: 250px; + border-radius: 10px; + transform: scale(0.01); + transform-origin: 234px -10px; + transition: visibility 0s 0.25s, transform 0.25s ease-in; +} +.cesium-navigation-help-visible { + visibility: visible; + transform: scale(1); + transition: transform 0.25s ease-out; +} +.cesium-navigation-help-instructions { + border: 1px solid #444; + background-color: rgba(38, 38, 38, 0.75); + padding-bottom: 5px; + border-radius: 0 0 10px 10px; +} +.cesium-click-navigation-help { + display: none; +} +.cesium-touch-navigation-help { + display: none; + padding-top: 5px; +} +.cesium-click-navigation-help-visible { + display: block; +} +.cesium-touch-navigation-help-visible { + display: block; +} +.cesium-navigation-help-pan { + color: #66ccff; + font-weight: bold; +} +.cesium-navigation-help-zoom { + color: #65fd00; + font-weight: bold; +} +.cesium-navigation-help-rotate { + color: #ffd800; + font-weight: bold; +} +.cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-navigation-help-details { + color: #ffffff; +} +.cesium-navigation-button { + color: #fff; + background-color: transparent; + border-bottom: none; + border-top: 1px solid #444; + border-right: 1px solid #444; + margin: 0; + width: 50%; + cursor: pointer; +} +.cesium-navigation-button-icon { + vertical-align: middle; + padding: 5px 1px; +} +.cesium-navigation-button:focus { + outline: none; +} +.cesium-navigation-button-left { + border-radius: 10px 0 0 0; + border-left: 1px solid #444; +} +.cesium-navigation-button-right { + border-radius: 0 10px 0 0; + border-left: none; +} +.cesium-navigation-button-selected { + background-color: rgba(38, 38, 38, 0.75); +} +.cesium-navigation-button-unselected { + background-color: rgba(0, 0, 0, 0.75); +} +.cesium-navigation-button-unselected:hover { + background-color: rgba(76, 76, 76, 0.75); +} diff --git a/public/static/Cesium/Widgets/NavigationHelpButton/lighter.css b/public/static/Cesium/Widgets/NavigationHelpButton/lighter.css new file mode 100644 index 0000000..7cf654b --- /dev/null +++ b/public/static/Cesium/Widgets/NavigationHelpButton/lighter.css @@ -0,0 +1,38 @@ +/* packages/widgets/Source/NavigationHelpButton/lighter.css */ +.cesium-lighter .cesium-navigation-help-instructions { + border: 1px solid #759dc0; + background-color: rgba(255, 255, 255, 0.9); +} +.cesium-lighter .cesium-navigation-help-pan { + color: #66ccee; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-zoom { + color: #65ec00; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-rotate { + color: #eec722; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-details { + color: #222222; +} +.cesium-lighter .cesium-navigation-button { + color: #222222; + border-top: 1px solid #759dc0; + border-right: 1px solid #759dc0; +} +.cesium-lighter .cesium-navigation-button-selected { + background-color: rgba(196, 225, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected { + background-color: rgba(226, 240, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected:hover { + background-color: rgba(166, 210, 255, 0.9); +} diff --git a/public/static/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css b/public/static/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css new file mode 100644 index 0000000..f8f770a --- /dev/null +++ b/public/static/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css @@ -0,0 +1,15 @@ +/* packages/widgets/Source/PerformanceWatchdog/PerformanceWatchdog.css */ +.cesium-performance-watchdog-message-area { + position: relative; + background-color: yellow; + color: black; + padding: 10px; +} +.cesium-performance-watchdog-message { + margin-right: 30px; +} +.cesium-performance-watchdog-message-dismiss { + position: absolute; + right: 0; + margin: 0 10px 0 0; +} diff --git a/public/static/Cesium/Widgets/ProjectionPicker/ProjectionPicker.css b/public/static/Cesium/Widgets/ProjectionPicker/ProjectionPicker.css new file mode 100644 index 0000000..57b6f6f --- /dev/null +++ b/public/static/Cesium/Widgets/ProjectionPicker/ProjectionPicker.css @@ -0,0 +1,38 @@ +/* packages/widgets/Source/ProjectionPicker/ProjectionPicker.css */ +span.cesium-projectionPicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-projectionPicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-projectionPicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-none { + display: none; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective, +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic { + margin: 0 0 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic { + left: 100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective { + left: -100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} diff --git a/public/static/Cesium/Widgets/SceneModePicker/SceneModePicker.css b/public/static/Cesium/Widgets/SceneModePicker/SceneModePicker.css new file mode 100644 index 0000000..51e4c67 --- /dev/null +++ b/public/static/Cesium/Widgets/SceneModePicker/SceneModePicker.css @@ -0,0 +1,56 @@ +/* packages/widgets/Source/SceneModePicker/SceneModePicker.css */ +span.cesium-sceneModePicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-sceneModePicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-sceneModePicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none { + display: none; +} +.cesium-sceneModePicker-slide-svg { + transition: left 2s; + top: 0; + left: 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D { + margin: 0 0 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView { + left: 200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D { + left: -200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} diff --git a/public/static/Cesium/Widgets/SelectionIndicator/SelectionIndicator.css b/public/static/Cesium/Widgets/SelectionIndicator/SelectionIndicator.css new file mode 100644 index 0000000..148ff4a --- /dev/null +++ b/public/static/Cesium/Widgets/SelectionIndicator/SelectionIndicator.css @@ -0,0 +1,20 @@ +/* packages/widgets/Source/SelectionIndicator/SelectionIndicator.css */ +.cesium-selection-wrapper { + position: absolute; + width: 160px; + height: 160px; + pointer-events: none; + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.2s, opacity 0.2s ease-in; +} +.cesium-selection-wrapper-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out; +} +.cesium-selection-wrapper svg { + fill: #2e2; + stroke: #000; + stroke-width: 1.1px; +} diff --git a/public/static/Cesium/Widgets/Timeline/Timeline.css b/public/static/Cesium/Widgets/Timeline/Timeline.css new file mode 100644 index 0000000..6a9603e --- /dev/null +++ b/public/static/Cesium/Widgets/Timeline/Timeline.css @@ -0,0 +1,96 @@ +/* packages/widgets/Source/Timeline/Timeline.css */ +.cesium-timeline-main { + position: relative; + left: 0; + bottom: 0; + overflow: hidden; + border: solid 1px #888; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-timeline-trackContainer { + width: 100%; + overflow: auto; + border-top: solid 1px #888; + position: relative; + top: 0; + left: 0; +} +.cesium-timeline-tracks { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.cesium-timeline-needle { + position: absolute; + left: 0; + top: 1.7em; + bottom: 0; + width: 1px; + background: #f00; +} +.cesium-timeline-bar { + position: relative; + left: 0; + top: 0; + overflow: hidden; + cursor: pointer; + width: 100%; + height: 1.7em; + background: linear-gradient(to bottom, rgba(116, 117, 119, 0.8) 0%, rgba(58, 68, 82, 0.8) 11%, rgba(46, 50, 56, 0.8) 46%, rgba(53, 53, 53, 0.8) 81%, rgba(53, 53, 53, 0.8) 100%); +} +.cesium-timeline-ruler { + visibility: hidden; + white-space: nowrap; + font-size: 80%; + z-index: -200; +} +.cesium-timeline-highlight { + position: absolute; + bottom: 0; + left: 0; + background: #08f; +} +.cesium-timeline-ticLabel { + position: absolute; + top: 0; + left: 0; + white-space: nowrap; + font-size: 80%; + color: #eee; +} +.cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #eee; +} +.cesium-timeline-ticSub { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 33%; + background: #aaa; +} +.cesium-timeline-ticTiny { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 25%; + background: #888; +} +.cesium-timeline-icon16 { + display: block; + position: absolute; + width: 16px; + height: 16px; + background-image: url(data:text/plain;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sIDBITKIVzLEMAAAKNSURBVEjHxdXNSxRhHAfw7zzrqhuoWJnSkrippUVSEKsHI9BTUYdAJA/RoYMREV26rAdn6tAfUARi16hQqkOBQRgUEYFWEC3OwczMjdZd92VmdWfmeelgTjO7q7gb0VzmmZnn85vvPPPMM8B/3qTcE2PPpuTZKB1eWuUQACgXYACYwVFbCTTVeZXB/i55o4LFelcAZfStYD4vpAoPGAGo4GBcQEgSOAUMQyAezwK6iQfDPXnhS/FkHZ+/8VLMWxxqWkfH3gbMRNOYi2roavbja0zHQmoFPYf8ED4Ko4aivm9MOG/u9I8mwrafeK7a/tVrNc/bARYN5noadeq7q0342vXw9CIMU6BmW8rVP9cPBPe52uu+v3O/y9sB4gkTWs6Qsk0mj5ExXMelejvA8WafYmkmGPHanTijdtvif8rx5RiCjdWKs2Cp3jWRDl96KhrbqlBeJqBOLyLQXg0IgbkZDS0dO8EZxZfPSTA9jvDDK3mT0OmP1FXh3XwEEAKdTX5MRWLgjCK4pwH3xt/YnjgLHAv4lHTCAKMMu/wV+KZGob6PoKyMQ0+sgBpZVJZn0NterxQaVqef/DRn+/EXYds/mZx2eVeAW9d65dhCEsaKCb7K8HH0gqTevyh9GDkn0VULRiaLzJKGBu9swfdaiie5RVo9ESURN8E8BE0n7ggACJy8KzghSCzp6DmwWxkaCm24EBXr8wI8Hrkq06QBiRC0t24HALS11IBTCyJl4vb1AXmzpbVYTwoVOXN0h7L8Mwtm8bXPybIQ/5FCX3dA2cr6XowvGCA02CvztAnz9+JiZk1AMxG6fEreSoBiPNmoyNnuWiWVzAIAtISO08E6pZi/3N96AIDn4E3h3P8L/wshP+txtEs4JAAAAABJRU5ErkJggg==); + background-repeat: no-repeat; +} diff --git a/public/static/Cesium/Widgets/Timeline/lighter.css b/public/static/Cesium/Widgets/Timeline/lighter.css new file mode 100644 index 0000000..b311f3d --- /dev/null +++ b/public/static/Cesium/Widgets/Timeline/lighter.css @@ -0,0 +1,18 @@ +/* packages/widgets/Source/Timeline/lighter.css */ +.cesium-lighter .cesium-timeline-bar { + background: linear-gradient(to bottom, #eeeeee 0%, #ffffff 50%, #fafafa 100%); +} +.cesium-lighter .cesium-timeline-ticLabel { + color: #000; +} +.cesium-lighter .cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #000; +} +.cesium-lighter .cesium-timeline-ticSub { + background: #444; +} diff --git a/public/static/Cesium/Widgets/VRButton/VRButton.css b/public/static/Cesium/Widgets/VRButton/VRButton.css new file mode 100644 index 0000000..1005bd4 --- /dev/null +++ b/public/static/Cesium/Widgets/VRButton/VRButton.css @@ -0,0 +1,8 @@ +/* packages/widgets/Source/VRButton/VRButton.css */ +.cesium-button.cesium-vrButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} diff --git a/public/static/Cesium/Widgets/Viewer/Viewer.css b/public/static/Cesium/Widgets/Viewer/Viewer.css new file mode 100644 index 0000000..5884a86 --- /dev/null +++ b/public/static/Cesium/Widgets/Viewer/Viewer.css @@ -0,0 +1,107 @@ +/* packages/widgets/Source/Viewer/Viewer.css */ +.cesium-viewer { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cesium-viewer-cesiumWidgetContainer { + width: 100%; + height: 100%; +} +.cesium-viewer-bottom { + display: block; + position: absolute; + bottom: 0; + left: 0; + padding-right: 5px; +} +.cesium-viewer .cesium-widget-credits { + display: inline; + position: static; + bottom: auto; + left: auto; + padding-right: 0; + color: #ffffff; + font-size: 10px; + text-shadow: 0 0 2px #000000; +} +.cesium-viewer-timelineContainer { + position: absolute; + bottom: 0; + left: 169px; + right: 29px; + height: 27px; + padding: 0; + margin: 0; + overflow: hidden; + font-size: 14px; +} +.cesium-viewer-animationContainer { + position: absolute; + bottom: 0; + left: 0; + padding: 0; + width: 169px; + height: 112px; +} +.cesium-viewer-fullscreenContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-vrContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-toolbar { + display: block; + position: absolute; + top: 5px; + right: 5px; +} +.cesium-viewer-cesiumInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; +} +.cesium-viewer-geocoderContainer { + position: relative; + display: inline-block; + margin: 0 3px; +} +.cesium-viewer-cesium3DTilesInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} +.cesium-viewer-voxelInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} diff --git a/public/static/Cesium/Widgets/VoxelInspector/VoxelInspector.css b/public/static/Cesium/Widgets/VoxelInspector/VoxelInspector.css new file mode 100644 index 0000000..a0a3102 --- /dev/null +++ b/public/static/Cesium/Widgets/VoxelInspector/VoxelInspector.css @@ -0,0 +1,16 @@ +/* packages/widgets/Source/VoxelInspector/VoxelInspector.css */ +.cesium-VoxelInspector { + width: 300px; + pointer-events: all; +} +.cesium-VoxelInspector div, +.cesium-VoxelInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-VoxelInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-VoxelInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} diff --git a/public/static/Cesium/Widgets/lighter.css b/public/static/Cesium/Widgets/lighter.css new file mode 100644 index 0000000..bb69e63 --- /dev/null +++ b/public/static/Cesium/Widgets/lighter.css @@ -0,0 +1,232 @@ +/* packages/widgets/Source/lighterShared.css */ +.cesium-lighter .cesium-button { + color: #111; + fill: #111; + background: #e2f0ff; + border: 1px solid #759dc0; +} +.cesium-lighter .cesium-button:focus { + color: #000; + fill: #000; + border-color: #ea4; +} +.cesium-lighter .cesium-button:hover { + color: #000; + fill: #000; + background: #a6d2ff; + border-color: #aef; + box-shadow: 0 0 8px #777; +} +.cesium-lighter .cesium-button:active { + color: #fff; + fill: #fff; + background: #48b; + border-color: #ea0; +} +.cesium-lighter .cesium-button:disabled, +.cesium-lighter .cesium-button-disabled, +.cesium-lighter .cesium-button-disabled:focus, +.cesium-lighter .cesium-button-disabled:hover, +.cesium-lighter .cesium-button-disabled:active { + background: #ccc; + border-color: #999; + color: #999; + fill: #999; + box-shadow: none; +} +.cesium-lighter .cesium-performanceDisplay { + background-color: #e2f0ff; + border-color: #759dc0; +} +.cesium-lighter .cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-lighter .cesium-performanceDisplay-ms { + color: #ea4; +} + +/* packages/widgets/Source/Animation/lighter.css */ +.cesium-lighter .cesium-animation-themeNormal { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeHover { + color: #abd6ff; +} +.cesium-lighter .cesium-animation-themeSelect { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeDisabled { + color: #efefef; +} +.cesium-lighter .cesium-animation-themeKnob { + color: #e1e2e3; +} +.cesium-lighter .cesium-animation-themePointer { + color: #fa5; +} +.cesium-lighter .cesium-animation-themeSwoosh { + color: #ace; +} +.cesium-lighter .cesium-animation-themeSwooshHover { + color: #bdf; +} +.cesium-lighter .cesium-animation-svgText { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonGlow { + fill: #ffaa2a; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #d3d3d3; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-lighter .cesium-animation-shuttleRingBack { + fill: #fafafa; + fill-opacity: 1; + stroke: #aeaeae; + stroke-width: 1.2; +} +.cesium-lighter .cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; +} +.cesium-lighter .cesium-animation-knobOuter { + stroke: #a5a5a5; +} + +/* packages/widgets/Source/BaseLayerPicker/lighter.css */ +.cesium-lighter .cesium-baseLayerPicker-itemIcon { + border-color: #759dc0; +} +.cesium-lighter .cesium-baseLayerPicker-dropDown { + background-color: rgba(240, 240, 240, 0.75); +} +.cesium-lighter .cesium-baseLayerPicker-sectionTitle { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-itemLabel { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #000; +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(0, 61, 168); +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(0, 61, 168); +} + +/* packages/engine/Source/Widget/lighter.css */ +.cesium-lighter .cesium-widget-errorPanel { + background: rgba(255, 255, 255, 0.7); +} +.cesium-lighter .cesium-widget-errorPanel-content { + border: 1px solid #526f82; + border-radius: 7px; + background-color: white; + color: black; +} +.cesium-lighter .cesium-widget-errorPanel-header { + color: #b87d00; +} + +/* packages/widgets/Source/Geocoder/lighter.css */ +.cesium-lighter .cesium-geocoder-input { + border: solid 1px #759dc0; + background-color: rgba(240, 240, 240, 0.9); + color: black; +} +.cesium-lighter .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-lighter .cesium-geocoder-searchButton { + background-color: #e2f0ff; + fill: #111; +} +.cesium-lighter .cesium-geocoder-searchButton:hover { + background-color: #a6d2ff; +} + +/* packages/widgets/Source/Timeline/lighter.css */ +.cesium-lighter .cesium-timeline-bar { + background: linear-gradient(to bottom, #eeeeee 0%, #ffffff 50%, #fafafa 100%); +} +.cesium-lighter .cesium-timeline-ticLabel { + color: #000; +} +.cesium-lighter .cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #000; +} +.cesium-lighter .cesium-timeline-ticSub { + background: #444; +} + +/* packages/widgets/Source/NavigationHelpButton/lighter.css */ +.cesium-lighter .cesium-navigation-help-instructions { + border: 1px solid #759dc0; + background-color: rgba(255, 255, 255, 0.9); +} +.cesium-lighter .cesium-navigation-help-pan { + color: #66ccee; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-zoom { + color: #65ec00; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-rotate { + color: #eec722; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-details { + color: #222222; +} +.cesium-lighter .cesium-navigation-button { + color: #222222; + border-top: 1px solid #759dc0; + border-right: 1px solid #759dc0; +} +.cesium-lighter .cesium-navigation-button-selected { + background-color: rgba(196, 225, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected { + background-color: rgba(226, 240, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected:hover { + background-color: rgba(166, 210, 255, 0.9); +} + +/* packages/widgets/Source/lighter.css */ diff --git a/public/static/Cesium/Widgets/lighterShared.css b/public/static/Cesium/Widgets/lighterShared.css new file mode 100644 index 0000000..7d3b4dd --- /dev/null +++ b/public/static/Cesium/Widgets/lighterShared.css @@ -0,0 +1,46 @@ +/* packages/widgets/Source/lighterShared.css */ +.cesium-lighter .cesium-button { + color: #111; + fill: #111; + background: #e2f0ff; + border: 1px solid #759dc0; +} +.cesium-lighter .cesium-button:focus { + color: #000; + fill: #000; + border-color: #ea4; +} +.cesium-lighter .cesium-button:hover { + color: #000; + fill: #000; + background: #a6d2ff; + border-color: #aef; + box-shadow: 0 0 8px #777; +} +.cesium-lighter .cesium-button:active { + color: #fff; + fill: #fff; + background: #48b; + border-color: #ea0; +} +.cesium-lighter .cesium-button:disabled, +.cesium-lighter .cesium-button-disabled, +.cesium-lighter .cesium-button-disabled:focus, +.cesium-lighter .cesium-button-disabled:hover, +.cesium-lighter .cesium-button-disabled:active { + background: #ccc; + border-color: #999; + color: #999; + fill: #999; + box-shadow: none; +} +.cesium-lighter .cesium-performanceDisplay { + background-color: #e2f0ff; + border-color: #759dc0; +} +.cesium-lighter .cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-lighter .cesium-performanceDisplay-ms { + color: #ea4; +} diff --git a/public/static/Cesium/Widgets/shared.css b/public/static/Cesium/Widgets/shared.css new file mode 100644 index 0000000..2c9b949 --- /dev/null +++ b/public/static/Cesium/Widgets/shared.css @@ -0,0 +1,103 @@ +/* packages/widgets/Source/shared.css */ +.cesium-svgPath-svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.cesium-button { + display: inline-block; + position: relative; + background: #303336; + border: 1px solid #444; + color: #edffff; + fill: #edffff; + border-radius: 4px; + padding: 5px 12px; + margin: 2px 3px; + cursor: pointer; + overflow: hidden; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-button:focus { + color: #fff; + fill: #fff; + border-color: #ea4; + outline: none; +} +.cesium-button:hover { + color: #fff; + fill: #fff; + background: #48b; + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-button:active { + color: #000; + fill: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-button:disabled, +.cesium-button-disabled, +.cesium-button-disabled:focus, +.cesium-button-disabled:hover, +.cesium-button-disabled:active { + background: #303336; + border-color: #444; + color: #646464; + fill: #646464; + box-shadow: none; + cursor: default; +} +.cesium-button option { + background-color: #000; + color: #eee; +} +.cesium-button option:disabled { + color: #777; +} +.cesium-button input, +.cesium-button label { + cursor: pointer; +} +.cesium-button input { + vertical-align: sub; +} +.cesium-toolbar-button { + box-sizing: border-box; + width: 32px; + height: 32px; + border-radius: 14%; + padding: 0; + vertical-align: middle; + z-index: 0; +} +.cesium-performanceDisplay-defaultContainer { + position: absolute; + top: 50px; + right: 10px; + text-align: right; +} +.cesium-performanceDisplay { + background-color: rgba(40, 40, 40, 0.7); + padding: 7px; + border-radius: 5px; + border: 1px solid #444; + font: bold 12px sans-serif; +} +.cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-performanceDisplay-throttled { + color: #a42; +} +.cesium-performanceDisplay-ms { + color: #de3; +} diff --git a/public/static/Cesium/Widgets/widgets.css b/public/static/Cesium/Widgets/widgets.css new file mode 100644 index 0000000..e49ae97 --- /dev/null +++ b/public/static/Cesium/Widgets/widgets.css @@ -0,0 +1,1311 @@ +/* packages/widgets/Source/shared.css */ +.cesium-svgPath-svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.cesium-button { + display: inline-block; + position: relative; + background: #303336; + border: 1px solid #444; + color: #edffff; + fill: #edffff; + border-radius: 4px; + padding: 5px 12px; + margin: 2px 3px; + cursor: pointer; + overflow: hidden; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-button:focus { + color: #fff; + fill: #fff; + border-color: #ea4; + outline: none; +} +.cesium-button:hover { + color: #fff; + fill: #fff; + background: #48b; + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-button:active { + color: #000; + fill: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-button:disabled, +.cesium-button-disabled, +.cesium-button-disabled:focus, +.cesium-button-disabled:hover, +.cesium-button-disabled:active { + background: #303336; + border-color: #444; + color: #646464; + fill: #646464; + box-shadow: none; + cursor: default; +} +.cesium-button option { + background-color: #000; + color: #eee; +} +.cesium-button option:disabled { + color: #777; +} +.cesium-button input, +.cesium-button label { + cursor: pointer; +} +.cesium-button input { + vertical-align: sub; +} +.cesium-toolbar-button { + box-sizing: border-box; + width: 32px; + height: 32px; + border-radius: 14%; + padding: 0; + vertical-align: middle; + z-index: 0; +} +.cesium-performanceDisplay-defaultContainer { + position: absolute; + top: 50px; + right: 10px; + text-align: right; +} +.cesium-performanceDisplay { + background-color: rgba(40, 40, 40, 0.7); + padding: 7px; + border-radius: 5px; + border: 1px solid #444; + font: bold 12px sans-serif; +} +.cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-performanceDisplay-throttled { + color: #a42; +} +.cesium-performanceDisplay-ms { + color: #de3; +} + +/* packages/widgets/Source/Animation/Animation.css */ +.cesium-animation-theme { + visibility: hidden; + display: block; + position: absolute; + z-index: -100; +} +.cesium-animation-themeNormal { + color: #222; +} +.cesium-animation-themeHover { + color: #4488b0; +} +.cesium-animation-themeSelect { + color: #242; +} +.cesium-animation-themeDisabled { + color: #333; +} +.cesium-animation-themeKnob { + color: #222; +} +.cesium-animation-themePointer { + color: #2e2; +} +.cesium-animation-themeSwoosh { + color: #8ac; +} +.cesium-animation-themeSwooshHover { + color: #aef; +} +.cesium-animation-svgText { + fill: #edffff; + font-family: Sans-Serif; + font-size: 15px; + text-anchor: middle; +} +.cesium-animation-blank { + fill: #000; + fill-opacity: 0.01; + stroke: none; +} +.cesium-animation-rectButton { + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-rectButton .cesium-animation-buttonGlow { + fill: #fff; + stroke: none; + display: none; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonGlow { + display: block; +} +.cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #edffff; +} +.cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #aef; +} +.cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-animation-buttonDisabled { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #555; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonGlow { + display: none; +} +.cesium-animation-buttonToggled .cesium-animation-buttonGlow { + display: block; + fill: #2e2; +} +.cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-shuttleRingG { + cursor: pointer; +} +.cesium-animation-shuttleRingPointer { + cursor: pointer; +} +.cesium-animation-shuttleRingPausePointer { + cursor: pointer; +} +.cesium-animation-shuttleRingBack { + fill: #181818; + fill-opacity: 0.8; + stroke: #333; + stroke-width: 1.2; +} +.cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; + stroke-width: 3; + stroke-opacity: 0.2; + stroke-linecap: round; +} +.cesium-animation-knobOuter { + cursor: pointer; + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-knobInner { + cursor: pointer; +} + +/* packages/widgets/Source/BaseLayerPicker/BaseLayerPicker.css */ +.cesium-baseLayerPicker-selected { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: none; +} +.cesium-baseLayerPicker-dropDown { + display: block; + position: absolute; + box-sizing: content-box; + top: auto; + right: 0; + width: 320px; + max-height: 500px; + margin-top: 5px; + background-color: rgba(38, 38, 38, 0.75); + border: 1px solid #444; + padding: 6px; + overflow: auto; + border-radius: 10px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + transform: translate(0, -20%); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-baseLayerPicker-dropDown-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-baseLayerPicker-sectionTitle { + display: block; + font-family: sans-serif; + font-size: 16pt; + text-align: left; + color: #edffff; + margin-bottom: 4px; +} +.cesium-baseLayerPicker-choices { + margin-bottom: 5px; +} +.cesium-baseLayerPicker-categoryTitle { + color: #edffff; + font-size: 11pt; +} +.cesium-baseLayerPicker-choices { + display: block; + border: 1px solid #888; + border-radius: 5px; + padding: 5px 0; +} +.cesium-baseLayerPicker-item { + display: inline-block; + vertical-align: top; + margin: 2px 5px; + width: 64px; + text-align: center; + cursor: pointer; +} +.cesium-baseLayerPicker-itemLabel { + display: block; + font-family: sans-serif; + font-size: 8pt; + text-align: center; + vertical-align: middle; + color: #edffff; + cursor: pointer; + word-wrap: break-word; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel, +.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel { + text-decoration: underline; +} +.cesium-baseLayerPicker-itemIcon { + display: inline-block; + position: relative; + width: inherit; + height: auto; + background-size: 100% 100%; + border: solid 1px #444; + border-radius: 9px; + color: #edffff; + margin: 0; + padding: 0; + cursor: pointer; + box-sizing: border-box; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #fff; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(189, 236, 248); +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(189, 236, 248); +} + +/* packages/engine/Source/Widget/CesiumWidget.css */ +.cesium-widget { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cesium-widget, +.cesium-widget canvas { + width: 100%; + height: 100%; + touch-action: none; +} +.cesium-widget-credits { + display: block; + position: absolute; + bottom: 0; + left: 0; + color: #fff; + font-size: 10px; + text-shadow: 0px 0px 2px #000000; + padding-right: 5px; +} +.cesium-widget-credits a, +.cesium-widget-credits a:visited { + color: #fff; +} +.cesium-widget-errorPanel { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + text-align: center; + background: rgba(0, 0, 0, 0.7); + z-index: 99999; +} +.cesium-widget-errorPanel:before { + display: inline-block; + vertical-align: middle; + height: 100%; + content: ""; +} +.cesium-widget-errorPanel-content { + width: 75%; + max-width: 500px; + display: inline-block; + text-align: left; + vertical-align: middle; + border: 1px solid #510c00; + border-radius: 7px; + background-color: #f0d9d5; + font-size: 14px; + color: #510c00; +} +.cesium-widget-errorPanel-content.expanded { + max-width: 75%; +} +.cesium-widget-errorPanel-header { + font-size: 18px; + font-family: + "Open Sans", + Verdana, + Geneva, + sans-serif; + background: #d69d93; + border-bottom: 2px solid #510c00; + padding-bottom: 10px; + border-radius: 3px 3px 0 0; + padding: 15px; +} +.cesium-widget-errorPanel-scroll { + overflow: auto; + font-family: + "Open Sans", + Verdana, + Geneva, + sans-serif; + white-space: pre-wrap; + padding: 0 15px; + margin: 10px 0 20px 0; +} +.cesium-widget-errorPanel-buttonPanel { + padding: 0 15px; + margin: 10px 0 20px 0; + text-align: right; +} +.cesium-widget-errorPanel-buttonPanel button { + border-color: #510c00; + background: #d69d93; + color: #202020; + margin: 0; +} +.cesium-widget-errorPanel-buttonPanel button:focus { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:hover { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:active { + border-color: #510c00; + background: #b17b72; + color: #510c00; +} +.cesium-widget-errorPanel-more-details { + text-decoration: underline; + cursor: pointer; +} +.cesium-widget-errorPanel-more-details:hover { + color: #2b0700; +} + +/* packages/widgets/Source/CesiumInspector/CesiumInspector.css */ +.cesium-cesiumInspector { + border-radius: 5px; + transition: width ease-in-out 0.25s; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; + color: #edffff; + display: inline-block; + position: relative; + padding: 4px 12px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; +} +.cesium-cesiumInspector-button { + text-align: center; + font-size: 11pt; +} +.cesium-cesiumInspector-visible .cesium-cesiumInspector-button { + border-bottom: 1px solid #aaa; + padding-bottom: 3px; +} +.cesium-cesiumInspector input:enabled, +.cesium-cesiumInspector-button { + cursor: pointer; +} +.cesium-cesiumInspector-visible { + width: 185px; + height: auto; +} +.cesium-cesiumInspector-hidden { + width: 122px; + height: 17px; +} +.cesium-cesiumInspector-sectionContent { + max-height: 600px; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionContent { + max-height: 0; + padding: 0 !important; + overflow: hidden; +} +.cesium-cesiumInspector-dropDown { + margin: 5px 0; + font-family: sans-serif; + font-size: 10pt; + width: 185px; +} +.cesium-cesiumInspector-frustumStatistics { + padding-left: 10px; + padding: 5px; + background-color: rgba(80, 80, 80, 0.75); +} +.cesium-cesiumInspector-pickButton { + background-color: rgba(0, 0, 0, 0.3); + border: 1px solid #444; + color: #edffff; + border-radius: 5px; + padding: 3px 7px; + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + margin: 0 auto; +} +.cesium-cesiumInspector-pickButton:focus { + outline: none; +} +.cesium-cesiumInspector-pickButton:active, +.cesium-cesiumInspector-pickButtonHighlight { + color: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-cesiumInspector-center { + text-align: center; +} +.cesium-cesiumInspector-sectionHeader { + font-weight: bold; + font-size: 10pt; + margin: 0; + cursor: pointer; +} +.cesium-cesiumInspector-pickSection { + border: 1px solid #aaa; + border-radius: 5px; + padding: 3px; + margin-bottom: 5px; +} +.cesium-cesiumInspector-sectionContent { + margin-bottom: 10px; + transition: max-height 0.25s; +} +.cesium-cesiumInspector-tileText { + padding-bottom: 10px; + border-bottom: 1px solid #aaa; +} +.cesium-cesiumInspector-relativeText { + padding-top: 10px; +} +.cesium-cesiumInspector-sectionHeader::before { + margin-right: 5px; + content: "-"; + width: 1ch; + display: inline-block; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionHeader::before { + content: "+"; +} + +/* packages/widgets/Source/Cesium3DTilesInspector/Cesium3DTilesInspector.css */ +ul.cesium-cesiumInspector-statistics { + margin: 0; + padding-top: 3px; + padding-bottom: 3px; +} +ul.cesium-cesiumInspector-statistics + ul.cesium-cesiumInspector-statistics { + border-top: 1px solid #aaa; +} +.cesium-cesiumInspector-slider { + margin-top: 5px; +} +.cesium-cesiumInspector-slider input[type=number] { + text-align: left; + background-color: #222; + outline: none; + border: 1px solid #444; + color: #edffff; + width: 100px; + border-radius: 3px; + padding: 1px; + margin-left: 10px; + cursor: auto; +} +.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button, +.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} +.cesium-cesiumInspector-slider input[type=range] { + margin-left: 5px; + vertical-align: middle; +} +.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor { + display: none; +} +.cesium-cesiumInspector-styleEditor { + padding: 10px; + border-radius: 5px; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; +} +.cesium-cesiumInspector-styleEditor textarea { + width: 100%; + height: 300px; + background: transparent; + color: #edffff; + border: none; + padding: 0; + white-space: pre; + overflow-wrap: normal; + overflow-x: auto; +} +.cesium-3DTilesInspector { + width: 300px; + pointer-events: all; +} +.cesium-3DTilesInspector-statistics { + font-size: 11px; +} +.cesium-3DTilesInspector-disabledElementsInfo { + margin: 5px 0 0 0; + padding: 0 0 0 20px; + color: #eed202; +} +.cesium-3DTilesInspector div, +.cesium-3DTilesInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-cesiumInspector-error { + color: #ff9e9e; + overflow: auto; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} +input.cesium-cesiumInspector-url { + overflow: hidden; + white-space: nowrap; + overflow-x: scroll; + background-color: transparent; + color: white; + outline: none; + border: none; + height: 1em; + width: 100%; +} +.cesium-cesiumInspector .field-group { + display: table; +} +.cesium-cesiumInspector .field-group > label { + display: table-cell; + font-weight: bold; +} +.cesium-cesiumInspector .field-group > .field { + display: table-cell; + width: 100%; +} + +/* packages/widgets/Source/VoxelInspector/VoxelInspector.css */ +.cesium-VoxelInspector { + width: 300px; + pointer-events: all; +} +.cesium-VoxelInspector div, +.cesium-VoxelInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-VoxelInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-VoxelInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} + +/* packages/widgets/Source/FullscreenButton/FullscreenButton.css */ +.cesium-button.cesium-fullscreenButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} + +/* packages/widgets/Source/VRButton/VRButton.css */ +.cesium-button.cesium-vrButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} + +/* packages/widgets/Source/Geocoder/Geocoder.css */ +.cesium-viewer-geocoderContainer .cesium-geocoder-input { + border: solid 1px #444; + background-color: rgba(40, 40, 40, 0.7); + color: white; + display: inline-block; + vertical-align: middle; + width: 0; + height: 32px; + margin: 0; + padding: 0 32px 0 0; + border-radius: 0; + box-sizing: border-box; + transition: width ease-in-out 0.25s, background-color 0.2s ease-in-out; + -webkit-appearance: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus { + border-color: #ea4; + background-color: rgba(15, 15, 15, 0.9); + box-shadow: none; + outline: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input, +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus, +.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide { + padding-left: 4px; + width: 250px; +} +.cesium-viewer-geocoderContainer .search-results { + position: absolute; + background-color: #000; + color: #eee; + overflow-y: auto; + opacity: 0.8; + width: 100%; +} +.cesium-viewer-geocoderContainer .search-results ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.cesium-viewer-geocoderContainer .search-results ul li { + font-size: 14px; + padding: 3px 10px; +} +.cesium-viewer-geocoderContainer .search-results ul li:hover { + cursor: pointer; +} +.cesium-viewer-geocoderContainer .search-results ul li.active { + background: #48b; +} +.cesium-geocoder-searchButton { + background-color: #303336; + display: inline-block; + position: absolute; + cursor: pointer; + width: 32px; + top: 1px; + right: 1px; + height: 30px; + vertical-align: middle; + fill: #edffff; +} +.cesium-geocoder-searchButton:hover { + background-color: #48b; +} + +/* packages/widgets/Source/InfoBox/InfoBox.css */ +.cesium-infoBox { + display: block; + position: absolute; + top: 50px; + right: 0; + width: 40%; + max-width: 480px; + background: rgba(38, 38, 38, 0.95); + color: #edffff; + border: 1px solid #444; + border-right: none; + border-top-left-radius: 7px; + border-bottom-left-radius: 7px; + box-shadow: 0 0 10px 1px #000; + transform: translate(100%, 0); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-infoBox-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-infoBox-title { + display: block; + height: 20px; + padding: 5px 30px 5px 25px; + background: rgba(84, 84, 84, 1); + border-top-left-radius: 7px; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + box-sizing: content-box; +} +.cesium-infoBox-bodyless .cesium-infoBox-title { + border-bottom-left-radius: 7px; +} +button.cesium-infoBox-camera { + display: block; + position: absolute; + top: 4px; + left: 4px; + width: 22px; + height: 22px; + background: transparent; + border-color: transparent; + border-radius: 3px; + padding: 0 5px; + margin: 0; +} +button.cesium-infoBox-close { + display: block; + position: absolute; + top: 5px; + right: 5px; + height: 20px; + background: transparent; + border: none; + border-radius: 2px; + font-weight: bold; + font-size: 16px; + padding: 0 5px; + margin: 0; + color: #edffff; +} +button.cesium-infoBox-close:focus { + background: rgba(238, 136, 0, 0.44); + outline: none; +} +button.cesium-infoBox-close:hover { + background: #888; + color: #000; +} +button.cesium-infoBox-close:active { + background: #a00; + color: #000; +} +.cesium-infoBox-bodyless .cesium-infoBox-iframe { + display: none; +} +.cesium-infoBox-iframe { + border: none; + width: 100%; + width: calc(100% - 2px); +} + +/* packages/widgets/Source/SceneModePicker/SceneModePicker.css */ +span.cesium-sceneModePicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-sceneModePicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-sceneModePicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none { + display: none; +} +.cesium-sceneModePicker-slide-svg { + transition: left 2s; + top: 0; + left: 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D { + margin: 0 0 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView { + left: 200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D { + left: -200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} + +/* packages/widgets/Source/ProjectionPicker/ProjectionPicker.css */ +span.cesium-projectionPicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-projectionPicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-projectionPicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-none { + display: none; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective, +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic { + margin: 0 0 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic { + left: 100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective { + left: -100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} + +/* packages/widgets/Source/PerformanceWatchdog/PerformanceWatchdog.css */ +.cesium-performance-watchdog-message-area { + position: relative; + background-color: yellow; + color: black; + padding: 10px; +} +.cesium-performance-watchdog-message { + margin-right: 30px; +} +.cesium-performance-watchdog-message-dismiss { + position: absolute; + right: 0; + margin: 0 10px 0 0; +} + +/* packages/widgets/Source/NavigationHelpButton/NavigationHelpButton.css */ +.cesium-navigationHelpButton-wrapper { + position: relative; + display: inline-block; +} +.cesium-navigation-help { + visibility: hidden; + position: absolute; + top: 38px; + right: 2px; + width: 250px; + border-radius: 10px; + transform: scale(0.01); + transform-origin: 234px -10px; + transition: visibility 0s 0.25s, transform 0.25s ease-in; +} +.cesium-navigation-help-visible { + visibility: visible; + transform: scale(1); + transition: transform 0.25s ease-out; +} +.cesium-navigation-help-instructions { + border: 1px solid #444; + background-color: rgba(38, 38, 38, 0.75); + padding-bottom: 5px; + border-radius: 0 0 10px 10px; +} +.cesium-click-navigation-help { + display: none; +} +.cesium-touch-navigation-help { + display: none; + padding-top: 5px; +} +.cesium-click-navigation-help-visible { + display: block; +} +.cesium-touch-navigation-help-visible { + display: block; +} +.cesium-navigation-help-pan { + color: #66ccff; + font-weight: bold; +} +.cesium-navigation-help-zoom { + color: #65fd00; + font-weight: bold; +} +.cesium-navigation-help-rotate { + color: #ffd800; + font-weight: bold; +} +.cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-navigation-help-details { + color: #ffffff; +} +.cesium-navigation-button { + color: #fff; + background-color: transparent; + border-bottom: none; + border-top: 1px solid #444; + border-right: 1px solid #444; + margin: 0; + width: 50%; + cursor: pointer; +} +.cesium-navigation-button-icon { + vertical-align: middle; + padding: 5px 1px; +} +.cesium-navigation-button:focus { + outline: none; +} +.cesium-navigation-button-left { + border-radius: 10px 0 0 0; + border-left: 1px solid #444; +} +.cesium-navigation-button-right { + border-radius: 0 10px 0 0; + border-left: none; +} +.cesium-navigation-button-selected { + background-color: rgba(38, 38, 38, 0.75); +} +.cesium-navigation-button-unselected { + background-color: rgba(0, 0, 0, 0.75); +} +.cesium-navigation-button-unselected:hover { + background-color: rgba(76, 76, 76, 0.75); +} + +/* packages/widgets/Source/SelectionIndicator/SelectionIndicator.css */ +.cesium-selection-wrapper { + position: absolute; + width: 160px; + height: 160px; + pointer-events: none; + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.2s, opacity 0.2s ease-in; +} +.cesium-selection-wrapper-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out; +} +.cesium-selection-wrapper svg { + fill: #2e2; + stroke: #000; + stroke-width: 1.1px; +} + +/* packages/widgets/Source/Timeline/Timeline.css */ +.cesium-timeline-main { + position: relative; + left: 0; + bottom: 0; + overflow: hidden; + border: solid 1px #888; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-timeline-trackContainer { + width: 100%; + overflow: auto; + border-top: solid 1px #888; + position: relative; + top: 0; + left: 0; +} +.cesium-timeline-tracks { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.cesium-timeline-needle { + position: absolute; + left: 0; + top: 1.7em; + bottom: 0; + width: 1px; + background: #f00; +} +.cesium-timeline-bar { + position: relative; + left: 0; + top: 0; + overflow: hidden; + cursor: pointer; + width: 100%; + height: 1.7em; + background: linear-gradient(to bottom, rgba(116, 117, 119, 0.8) 0%, rgba(58, 68, 82, 0.8) 11%, rgba(46, 50, 56, 0.8) 46%, rgba(53, 53, 53, 0.8) 81%, rgba(53, 53, 53, 0.8) 100%); +} +.cesium-timeline-ruler { + visibility: hidden; + white-space: nowrap; + font-size: 80%; + z-index: -200; +} +.cesium-timeline-highlight { + position: absolute; + bottom: 0; + left: 0; + background: #08f; +} +.cesium-timeline-ticLabel { + position: absolute; + top: 0; + left: 0; + white-space: nowrap; + font-size: 80%; + color: #eee; +} +.cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #eee; +} +.cesium-timeline-ticSub { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 33%; + background: #aaa; +} +.cesium-timeline-ticTiny { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 25%; + background: #888; +} +.cesium-timeline-icon16 { + display: block; + position: absolute; + width: 16px; + height: 16px; + background-image: url(data:text/plain;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sIDBITKIVzLEMAAAKNSURBVEjHxdXNSxRhHAfw7zzrqhuoWJnSkrippUVSEKsHI9BTUYdAJA/RoYMREV26rAdn6tAfUARi16hQqkOBQRgUEYFWEC3OwczMjdZd92VmdWfmeelgTjO7q7gb0VzmmZnn85vvPPPMM8B/3qTcE2PPpuTZKB1eWuUQACgXYACYwVFbCTTVeZXB/i55o4LFelcAZfStYD4vpAoPGAGo4GBcQEgSOAUMQyAezwK6iQfDPXnhS/FkHZ+/8VLMWxxqWkfH3gbMRNOYi2roavbja0zHQmoFPYf8ED4Ko4aivm9MOG/u9I8mwrafeK7a/tVrNc/bARYN5noadeq7q0342vXw9CIMU6BmW8rVP9cPBPe52uu+v3O/y9sB4gkTWs6Qsk0mj5ExXMelejvA8WafYmkmGPHanTijdtvif8rx5RiCjdWKs2Cp3jWRDl96KhrbqlBeJqBOLyLQXg0IgbkZDS0dO8EZxZfPSTA9jvDDK3mT0OmP1FXh3XwEEAKdTX5MRWLgjCK4pwH3xt/YnjgLHAv4lHTCAKMMu/wV+KZGob6PoKyMQ0+sgBpZVJZn0NterxQaVqef/DRn+/EXYds/mZx2eVeAW9d65dhCEsaKCb7K8HH0gqTevyh9GDkn0VULRiaLzJKGBu9swfdaiie5RVo9ESURN8E8BE0n7ggACJy8KzghSCzp6DmwWxkaCm24EBXr8wI8Hrkq06QBiRC0t24HALS11IBTCyJl4vb1AXmzpbVYTwoVOXN0h7L8Mwtm8bXPybIQ/5FCX3dA2cr6XowvGCA02CvztAnz9+JiZk1AMxG6fEreSoBiPNmoyNnuWiWVzAIAtISO08E6pZi/3N96AIDn4E3h3P8L/wshP+txtEs4JAAAAABJRU5ErkJggg==); + background-repeat: no-repeat; +} + +/* packages/widgets/Source/Viewer/Viewer.css */ +.cesium-viewer { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cesium-viewer-cesiumWidgetContainer { + width: 100%; + height: 100%; +} +.cesium-viewer-bottom { + display: block; + position: absolute; + bottom: 0; + left: 0; + padding-right: 5px; +} +.cesium-viewer .cesium-widget-credits { + display: inline; + position: static; + bottom: auto; + left: auto; + padding-right: 0; + color: #ffffff; + font-size: 10px; + text-shadow: 0 0 2px #000000; +} +.cesium-viewer-timelineContainer { + position: absolute; + bottom: 0; + left: 169px; + right: 29px; + height: 27px; + padding: 0; + margin: 0; + overflow: hidden; + font-size: 14px; +} +.cesium-viewer-animationContainer { + position: absolute; + bottom: 0; + left: 0; + padding: 0; + width: 169px; + height: 112px; +} +.cesium-viewer-fullscreenContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-vrContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-toolbar { + display: block; + position: absolute; + top: 5px; + right: 5px; +} +.cesium-viewer-cesiumInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; +} +.cesium-viewer-geocoderContainer { + position: relative; + display: inline-block; + margin: 0 3px; +} +.cesium-viewer-cesium3DTilesInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} +.cesium-viewer-voxelInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} + +/* packages/widgets/Source/widgets.css */ diff --git a/public/static/Cesium/Workers/ArcType-26a3f38d.js b/public/static/Cesium/Workers/ArcType-26a3f38d.js new file mode 100644 index 0000000..3c6c3f6 --- /dev/null +++ b/public/static/Cesium/Workers/ArcType-26a3f38d.js @@ -0,0 +1 @@ +define(["exports"],(function(e){"use strict";var r=Object.freeze({NONE:0,GEODESIC:1,RHUMB:2});e.ArcType=r})); diff --git a/public/static/Cesium/Workers/AttributeCompression-0b8f7b7d.js b/public/static/Cesium/Workers/AttributeCompression-0b8f7b7d.js new file mode 100644 index 0000000..84a12e2 --- /dev/null +++ b/public/static/Cesium/Workers/AttributeCompression-0b8f7b7d.js @@ -0,0 +1 @@ +define(["exports","./Matrix2-7a8e9daf","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./Math-355606c6"],(function(t,e,n,o,a,r){"use strict";const c={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4",getMathType:function(t){switch(t){case c.SCALAR:return Number;case c.VEC2:return e.Cartesian2;case c.VEC3:return n.Cartesian3;case c.VEC4:return e.Cartesian4;case c.MAT2:return e.Matrix2;case c.MAT3:return n.Matrix3;case c.MAT4:return e.Matrix4}},getNumberOfComponents:function(t){switch(t){case c.SCALAR:return 1;case c.VEC2:return 2;case c.VEC3:return 3;case c.VEC4:case c.MAT2:return 4;case c.MAT3:return 9;case c.MAT4:return 16}},getAttributeLocationCount:function(t){switch(t){case c.SCALAR:case c.VEC2:case c.VEC3:case c.VEC4:return 1;case c.MAT2:return 2;case c.MAT3:return 3;case c.MAT4:return 4}},getGlslType:function(t){switch(t){case c.SCALAR:return"float";case c.VEC2:return"vec2";case c.VEC3:return"vec3";case c.VEC4:return"vec4";case c.MAT2:return"mat2";case c.MAT3:return"mat3";case c.MAT4:return"mat4"}}};var s=Object.freeze(c);const u=1/256,i={octEncodeInRange:function(t,e,n){if(n.x=t.x/(Math.abs(t.x)+Math.abs(t.y)+Math.abs(t.z)),n.y=t.y/(Math.abs(t.x)+Math.abs(t.y)+Math.abs(t.z)),t.z<0){const t=n.x,e=n.y;n.x=(1-Math.abs(e))*r.CesiumMath.signNotZero(t),n.y=(1-Math.abs(t))*r.CesiumMath.signNotZero(e)}return n.x=r.CesiumMath.toSNorm(n.x,e),n.y=r.CesiumMath.toSNorm(n.y,e),n},octEncode:function(t,e){return i.octEncodeInRange(t,255,e)}},C=new e.Cartesian2,M=new Uint8Array(1);function f(t){return M[0]=t,M[0]}i.octEncodeToCartesian4=function(t,e){return i.octEncodeInRange(t,65535,C),e.x=f(C.x*u),e.y=f(C.x),e.z=f(C.y*u),e.w=f(C.y),e},i.octDecodeInRange=function(t,e,o,a){if(a.x=r.CesiumMath.fromSNorm(t,o),a.y=r.CesiumMath.fromSNorm(e,o),a.z=1-(Math.abs(a.x)+Math.abs(a.y)),a.z<0){const t=a.x;a.x=(1-Math.abs(a.y))*r.CesiumMath.signNotZero(t),a.y=(1-Math.abs(t))*r.CesiumMath.signNotZero(a.y)}return n.Cartesian3.normalize(a,a)},i.octDecode=function(t,e,n){return i.octDecodeInRange(t,e,255,n)},i.octDecodeFromCartesian4=function(t,e){const n=256*t.x+t.y,o=256*t.z+t.w;return i.octDecodeInRange(n,o,65535,e)},i.octPackFloat=function(t){return 256*t.x+t.y};const m=new e.Cartesian2;function y(t){return t>>1^-(1&t)}i.octEncodeFloat=function(t){return i.octEncode(t,m),i.octPackFloat(m)},i.octDecodeFloat=function(t,e){const n=t/256,o=Math.floor(n),a=256*(n-o);return i.octDecode(o,a,e)},i.octPack=function(t,e,n,o){const a=i.octEncodeFloat(t),r=i.octEncodeFloat(e),c=i.octEncode(n,m);return o.x=65536*c.x+a,o.y=65536*c.y+r,o},i.octUnpack=function(t,e,n,o){let a=t.x/65536;const r=Math.floor(a),c=65536*(a-r);a=t.y/65536;const s=Math.floor(a),u=65536*(a-s);i.octDecodeFloat(c,e),i.octDecodeFloat(u,n),i.octDecode(r,s,o)},i.compressTextureCoordinates=function(t){return 4096*(4095*t.x|0)+(4095*t.y|0)},i.decompressTextureCoordinates=function(t,e){const n=t/4096,o=Math.floor(n);return e.x=o/4095,e.y=(t-4096*o)/4095,e},i.zigZagDeltaDecode=function(t,e,n){const o=t.length;let r=0,c=0,s=0;for(let u=0;u<o;++u)r+=y(t[u]),c+=y(e[u]),t[u]=r,e[u]=c,a.defined(n)&&(s+=y(n[u]),n[u]=s)},i.dequantize=function(t,e,n,a){const r=s.getNumberOfComponents(n);let c;switch(e){case o.ComponentDatatype.BYTE:c=127;break;case o.ComponentDatatype.UNSIGNED_BYTE:c=255;break;case o.ComponentDatatype.SHORT:c=32767;break;case o.ComponentDatatype.UNSIGNED_SHORT:c=65535;break;case o.ComponentDatatype.INT:c=2147483647;break;case o.ComponentDatatype.UNSIGNED_INT:c=4294967295}const u=new Float32Array(a*r);for(let e=0;e<a;e++)for(let n=0;n<r;n++){const o=e*r+n;u[o]=Math.max(t[o]/c,-1)}return u},i.decodeRGB565=function(t,e){const n=t.length;a.defined(e)||(e=new Float32Array(3*n));const o=1/31;for(let a=0;a<n;a++){const n=t[a],r=n>>11,c=n>>5&63,s=31&n,u=3*a;e[u]=r*o,e[u+1]=.015873015873015872*c,e[u+2]=s*o}return e};var A=i;t.AttributeCompression=A})); diff --git a/public/static/Cesium/Workers/AxisAlignedBoundingBox-93c1311e.js b/public/static/Cesium/Workers/AxisAlignedBoundingBox-93c1311e.js new file mode 100644 index 0000000..584eb1a --- /dev/null +++ b/public/static/Cesium/Workers/AxisAlignedBoundingBox-93c1311e.js @@ -0,0 +1 @@ +define(["exports","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Transforms-c842a68c"],(function(n,e,t,i){"use strict";function a(n,i,a){this.minimum=e.Cartesian3.clone(t.defaultValue(n,e.Cartesian3.ZERO)),this.maximum=e.Cartesian3.clone(t.defaultValue(i,e.Cartesian3.ZERO)),a=t.defined(a)?e.Cartesian3.clone(a):e.Cartesian3.midpoint(this.minimum,this.maximum,new e.Cartesian3),this.center=a}a.fromCorners=function(n,i,m){return t.defined(m)||(m=new a),m.minimum=e.Cartesian3.clone(n,m.minimum),m.maximum=e.Cartesian3.clone(i,m.maximum),m.center=e.Cartesian3.midpoint(n,i,m.center),m},a.fromPoints=function(n,i){if(t.defined(i)||(i=new a),!t.defined(n)||0===n.length)return i.minimum=e.Cartesian3.clone(e.Cartesian3.ZERO,i.minimum),i.maximum=e.Cartesian3.clone(e.Cartesian3.ZERO,i.maximum),i.center=e.Cartesian3.clone(e.Cartesian3.ZERO,i.center),i;let m=n[0].x,r=n[0].y,s=n[0].z,u=n[0].x,c=n[0].y,o=n[0].z;const l=n.length;for(let e=1;e<l;e++){const t=n[e],i=t.x,a=t.y,l=t.z;m=Math.min(i,m),u=Math.max(i,u),r=Math.min(a,r),c=Math.max(a,c),s=Math.min(l,s),o=Math.max(l,o)}const C=i.minimum;C.x=m,C.y=r,C.z=s;const f=i.maximum;return f.x=u,f.y=c,f.z=o,i.center=e.Cartesian3.midpoint(C,f,i.center),i},a.clone=function(n,i){if(t.defined(n))return t.defined(i)?(i.minimum=e.Cartesian3.clone(n.minimum,i.minimum),i.maximum=e.Cartesian3.clone(n.maximum,i.maximum),i.center=e.Cartesian3.clone(n.center,i.center),i):new a(n.minimum,n.maximum,n.center)},a.equals=function(n,i){return n===i||t.defined(n)&&t.defined(i)&&e.Cartesian3.equals(n.center,i.center)&&e.Cartesian3.equals(n.minimum,i.minimum)&&e.Cartesian3.equals(n.maximum,i.maximum)};let m=new e.Cartesian3;a.intersectPlane=function(n,t){m=e.Cartesian3.subtract(n.maximum,n.minimum,m);const a=e.Cartesian3.multiplyByScalar(m,.5,m),r=t.normal,s=a.x*Math.abs(r.x)+a.y*Math.abs(r.y)+a.z*Math.abs(r.z),u=e.Cartesian3.dot(n.center,r)+t.distance;return u-s>0?i.Intersect.INSIDE:u+s<0?i.Intersect.OUTSIDE:i.Intersect.INTERSECTING},a.prototype.clone=function(n){return a.clone(this,n)},a.prototype.intersectPlane=function(n){return a.intersectPlane(this,n)},a.prototype.equals=function(n){return a.equals(this,n)},n.AxisAlignedBoundingBox=a})); diff --git a/public/static/Cesium/Workers/BoundingRectangle-b88a4eda.js b/public/static/Cesium/Workers/BoundingRectangle-b88a4eda.js new file mode 100644 index 0000000..6e7d016 --- /dev/null +++ b/public/static/Cesium/Workers/BoundingRectangle-b88a4eda.js @@ -0,0 +1 @@ +define(["exports","./Matrix2-7a8e9daf","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Transforms-c842a68c"],(function(t,e,n,i,h){"use strict";function r(t,e,n,h){this.x=i.defaultValue(t,0),this.y=i.defaultValue(e,0),this.width=i.defaultValue(n,0),this.height=i.defaultValue(h,0)}r.packedLength=4,r.pack=function(t,e,n){return n=i.defaultValue(n,0),e[n++]=t.x,e[n++]=t.y,e[n++]=t.width,e[n]=t.height,e},r.unpack=function(t,e,n){return e=i.defaultValue(e,0),i.defined(n)||(n=new r),n.x=t[e++],n.y=t[e++],n.width=t[e++],n.height=t[e],n},r.fromPoints=function(t,e){if(i.defined(e)||(e=new r),!i.defined(t)||0===t.length)return e.x=0,e.y=0,e.width=0,e.height=0,e;const n=t.length;let h=t[0].x,u=t[0].y,d=t[0].x,a=t[0].y;for(let e=1;e<n;e++){const n=t[e],i=n.x,r=n.y;h=Math.min(i,h),d=Math.max(i,d),u=Math.min(r,u),a=Math.max(r,a)}return e.x=h,e.y=u,e.width=d-h,e.height=a-u,e};const u=new h.GeographicProjection,d=new n.Cartographic,a=new n.Cartographic;r.fromRectangle=function(t,n,h){if(i.defined(h)||(h=new r),!i.defined(t))return h.x=0,h.y=0,h.width=0,h.height=0,h;const o=(n=i.defaultValue(n,u)).project(e.Rectangle.southwest(t,d)),c=n.project(e.Rectangle.northeast(t,a));return e.Cartesian2.subtract(c,o,c),h.x=o.x,h.y=o.y,h.width=c.x,h.height=c.y,h},r.clone=function(t,e){if(i.defined(t))return i.defined(e)?(e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height,e):new r(t.x,t.y,t.width,t.height)},r.union=function(t,e,n){i.defined(n)||(n=new r);const h=Math.min(t.x,e.x),u=Math.min(t.y,e.y),d=Math.max(t.x+t.width,e.x+e.width),a=Math.max(t.y+t.height,e.y+e.height);return n.x=h,n.y=u,n.width=d-h,n.height=a-u,n},r.expand=function(t,e,n){n=r.clone(t,n);const i=e.x-n.x,h=e.y-n.y;return i>n.width?n.width=i:i<0&&(n.width-=i,n.x=e.x),h>n.height?n.height=h:h<0&&(n.height-=h,n.y=e.y),n},r.intersect=function(t,e){const n=t.x,i=t.y,r=e.x,u=e.y;return n>r+e.width||n+t.width<r||i+t.height<u||i>u+e.height?h.Intersect.OUTSIDE:h.Intersect.INTERSECTING},r.equals=function(t,e){return t===e||i.defined(t)&&i.defined(e)&&t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height},r.prototype.clone=function(t){return r.clone(this,t)},r.prototype.intersect=function(t){return r.intersect(this,t)},r.prototype.equals=function(t){return r.equals(this,t)},t.BoundingRectangle=r})); diff --git a/public/static/Cesium/Workers/BoxGeometry-7ed03b36.js b/public/static/Cesium/Workers/BoxGeometry-7ed03b36.js new file mode 100644 index 0000000..fde071b --- /dev/null +++ b/public/static/Cesium/Workers/BoxGeometry-7ed03b36.js @@ -0,0 +1 @@ +define(["exports","./Transforms-c842a68c","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./VertexFormat-fbdec922"],(function(t,e,n,a,r,i,o,m,u){"use strict";const s=new n.Cartesian3;function y(t){const e=(t=r.defaultValue(t,r.defaultValue.EMPTY_OBJECT)).minimum,a=t.maximum,i=r.defaultValue(t.vertexFormat,u.VertexFormat.DEFAULT);this._minimum=n.Cartesian3.clone(e),this._maximum=n.Cartesian3.clone(a),this._vertexFormat=i,this._offsetAttribute=t.offsetAttribute,this._workerName="createBoxGeometry"}y.fromDimensions=function(t){const e=(t=r.defaultValue(t,r.defaultValue.EMPTY_OBJECT)).dimensions,a=n.Cartesian3.multiplyByScalar(e,.5,new n.Cartesian3);return new y({minimum:n.Cartesian3.negate(a,new n.Cartesian3),maximum:a,vertexFormat:t.vertexFormat,offsetAttribute:t.offsetAttribute})},y.fromAxisAlignedBoundingBox=function(t){return new y({minimum:t.minimum,maximum:t.maximum})},y.packedLength=2*n.Cartesian3.packedLength+u.VertexFormat.packedLength+1,y.pack=function(t,e,a){return a=r.defaultValue(a,0),n.Cartesian3.pack(t._minimum,e,a),n.Cartesian3.pack(t._maximum,e,a+n.Cartesian3.packedLength),u.VertexFormat.pack(t._vertexFormat,e,a+2*n.Cartesian3.packedLength),e[a+2*n.Cartesian3.packedLength+u.VertexFormat.packedLength]=r.defaultValue(t._offsetAttribute,-1),e};const p=new n.Cartesian3,x=new n.Cartesian3,c=new u.VertexFormat,f={minimum:p,maximum:x,vertexFormat:c,offsetAttribute:void 0};let l;y.unpack=function(t,e,a){e=r.defaultValue(e,0);const i=n.Cartesian3.unpack(t,e,p),o=n.Cartesian3.unpack(t,e+n.Cartesian3.packedLength,x),m=u.VertexFormat.unpack(t,e+2*n.Cartesian3.packedLength,c),s=t[e+2*n.Cartesian3.packedLength+u.VertexFormat.packedLength];return r.defined(a)?(a._minimum=n.Cartesian3.clone(i,a._minimum),a._maximum=n.Cartesian3.clone(o,a._maximum),a._vertexFormat=u.VertexFormat.clone(m,a._vertexFormat),a._offsetAttribute=-1===s?void 0:s,a):(f.offsetAttribute=-1===s?void 0:s,new y(f))},y.createGeometry=function(t){const u=t._minimum,y=t._maximum,p=t._vertexFormat;if(n.Cartesian3.equals(u,y))return;const x=new o.GeometryAttributes;let c,f;if(p.position&&(p.st||p.normal||p.tangent||p.bitangent)){if(p.position&&(f=new Float64Array(72),f[0]=u.x,f[1]=u.y,f[2]=y.z,f[3]=y.x,f[4]=u.y,f[5]=y.z,f[6]=y.x,f[7]=y.y,f[8]=y.z,f[9]=u.x,f[10]=y.y,f[11]=y.z,f[12]=u.x,f[13]=u.y,f[14]=u.z,f[15]=y.x,f[16]=u.y,f[17]=u.z,f[18]=y.x,f[19]=y.y,f[20]=u.z,f[21]=u.x,f[22]=y.y,f[23]=u.z,f[24]=y.x,f[25]=u.y,f[26]=u.z,f[27]=y.x,f[28]=y.y,f[29]=u.z,f[30]=y.x,f[31]=y.y,f[32]=y.z,f[33]=y.x,f[34]=u.y,f[35]=y.z,f[36]=u.x,f[37]=u.y,f[38]=u.z,f[39]=u.x,f[40]=y.y,f[41]=u.z,f[42]=u.x,f[43]=y.y,f[44]=y.z,f[45]=u.x,f[46]=u.y,f[47]=y.z,f[48]=u.x,f[49]=y.y,f[50]=u.z,f[51]=y.x,f[52]=y.y,f[53]=u.z,f[54]=y.x,f[55]=y.y,f[56]=y.z,f[57]=u.x,f[58]=y.y,f[59]=y.z,f[60]=u.x,f[61]=u.y,f[62]=u.z,f[63]=y.x,f[64]=u.y,f[65]=u.z,f[66]=y.x,f[67]=u.y,f[68]=y.z,f[69]=u.x,f[70]=u.y,f[71]=y.z,x.position=new i.GeometryAttribute({componentDatatype:a.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:f})),p.normal){const t=new Float32Array(72);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=1,t[9]=0,t[10]=0,t[11]=1,t[12]=0,t[13]=0,t[14]=-1,t[15]=0,t[16]=0,t[17]=-1,t[18]=0,t[19]=0,t[20]=-1,t[21]=0,t[22]=0,t[23]=-1,t[24]=1,t[25]=0,t[26]=0,t[27]=1,t[28]=0,t[29]=0,t[30]=1,t[31]=0,t[32]=0,t[33]=1,t[34]=0,t[35]=0,t[36]=-1,t[37]=0,t[38]=0,t[39]=-1,t[40]=0,t[41]=0,t[42]=-1,t[43]=0,t[44]=0,t[45]=-1,t[46]=0,t[47]=0,t[48]=0,t[49]=1,t[50]=0,t[51]=0,t[52]=1,t[53]=0,t[54]=0,t[55]=1,t[56]=0,t[57]=0,t[58]=1,t[59]=0,t[60]=0,t[61]=-1,t[62]=0,t[63]=0,t[64]=-1,t[65]=0,t[66]=0,t[67]=-1,t[68]=0,t[69]=0,t[70]=-1,t[71]=0,x.normal=new i.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:t})}if(p.st){const t=new Float32Array(48);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=1,t[5]=1,t[6]=0,t[7]=1,t[8]=1,t[9]=0,t[10]=0,t[11]=0,t[12]=0,t[13]=1,t[14]=1,t[15]=1,t[16]=0,t[17]=0,t[18]=1,t[19]=0,t[20]=1,t[21]=1,t[22]=0,t[23]=1,t[24]=1,t[25]=0,t[26]=0,t[27]=0,t[28]=0,t[29]=1,t[30]=1,t[31]=1,t[32]=1,t[33]=0,t[34]=0,t[35]=0,t[36]=0,t[37]=1,t[38]=1,t[39]=1,t[40]=0,t[41]=0,t[42]=1,t[43]=0,t[44]=1,t[45]=1,t[46]=0,t[47]=1,x.st=new i.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:t})}if(p.tangent){const t=new Float32Array(72);t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=1,t[7]=0,t[8]=0,t[9]=1,t[10]=0,t[11]=0,t[12]=-1,t[13]=0,t[14]=0,t[15]=-1,t[16]=0,t[17]=0,t[18]=-1,t[19]=0,t[20]=0,t[21]=-1,t[22]=0,t[23]=0,t[24]=0,t[25]=1,t[26]=0,t[27]=0,t[28]=1,t[29]=0,t[30]=0,t[31]=1,t[32]=0,t[33]=0,t[34]=1,t[35]=0,t[36]=0,t[37]=-1,t[38]=0,t[39]=0,t[40]=-1,t[41]=0,t[42]=0,t[43]=-1,t[44]=0,t[45]=0,t[46]=-1,t[47]=0,t[48]=-1,t[49]=0,t[50]=0,t[51]=-1,t[52]=0,t[53]=0,t[54]=-1,t[55]=0,t[56]=0,t[57]=-1,t[58]=0,t[59]=0,t[60]=1,t[61]=0,t[62]=0,t[63]=1,t[64]=0,t[65]=0,t[66]=1,t[67]=0,t[68]=0,t[69]=1,t[70]=0,t[71]=0,x.tangent=new i.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:t})}if(p.bitangent){const t=new Float32Array(72);t[0]=0,t[1]=1,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=1,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=1,t[14]=0,t[15]=0,t[16]=1,t[17]=0,t[18]=0,t[19]=1,t[20]=0,t[21]=0,t[22]=1,t[23]=0,t[24]=0,t[25]=0,t[26]=1,t[27]=0,t[28]=0,t[29]=1,t[30]=0,t[31]=0,t[32]=1,t[33]=0,t[34]=0,t[35]=1,t[36]=0,t[37]=0,t[38]=1,t[39]=0,t[40]=0,t[41]=1,t[42]=0,t[43]=0,t[44]=1,t[45]=0,t[46]=0,t[47]=1,t[48]=0,t[49]=0,t[50]=1,t[51]=0,t[52]=0,t[53]=1,t[54]=0,t[55]=0,t[56]=1,t[57]=0,t[58]=0,t[59]=1,t[60]=0,t[61]=0,t[62]=1,t[63]=0,t[64]=0,t[65]=1,t[66]=0,t[67]=0,t[68]=1,t[69]=0,t[70]=0,t[71]=1,x.bitangent=new i.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:t})}c=new Uint16Array(36),c[0]=0,c[1]=1,c[2]=2,c[3]=0,c[4]=2,c[5]=3,c[6]=6,c[7]=5,c[8]=4,c[9]=7,c[10]=6,c[11]=4,c[12]=8,c[13]=9,c[14]=10,c[15]=8,c[16]=10,c[17]=11,c[18]=14,c[19]=13,c[20]=12,c[21]=15,c[22]=14,c[23]=12,c[24]=18,c[25]=17,c[26]=16,c[27]=19,c[28]=18,c[29]=16,c[30]=20,c[31]=21,c[32]=22,c[33]=20,c[34]=22,c[35]=23}else f=new Float64Array(24),f[0]=u.x,f[1]=u.y,f[2]=u.z,f[3]=y.x,f[4]=u.y,f[5]=u.z,f[6]=y.x,f[7]=y.y,f[8]=u.z,f[9]=u.x,f[10]=y.y,f[11]=u.z,f[12]=u.x,f[13]=u.y,f[14]=y.z,f[15]=y.x,f[16]=u.y,f[17]=y.z,f[18]=y.x,f[19]=y.y,f[20]=y.z,f[21]=u.x,f[22]=y.y,f[23]=y.z,x.position=new i.GeometryAttribute({componentDatatype:a.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:f}),c=new Uint16Array(36),c[0]=4,c[1]=5,c[2]=6,c[3]=4,c[4]=6,c[5]=7,c[6]=1,c[7]=0,c[8]=3,c[9]=1,c[10]=3,c[11]=2,c[12]=1,c[13]=6,c[14]=5,c[15]=1,c[16]=2,c[17]=6,c[18]=2,c[19]=3,c[20]=7,c[21]=2,c[22]=7,c[23]=6,c[24]=3,c[25]=0,c[26]=4,c[27]=3,c[28]=4,c[29]=7,c[30]=0,c[31]=1,c[32]=5,c[33]=0,c[34]=5,c[35]=4;const l=n.Cartesian3.subtract(y,u,s),A=.5*n.Cartesian3.magnitude(l);if(r.defined(t._offsetAttribute)){const e=f.length,n=t._offsetAttribute===m.GeometryOffsetAttribute.NONE?0:1,r=new Uint8Array(e/3).fill(n);x.applyOffset=new i.GeometryAttribute({componentDatatype:a.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:r})}return new i.Geometry({attributes:x,indices:c,primitiveType:i.PrimitiveType.TRIANGLES,boundingSphere:new e.BoundingSphere(n.Cartesian3.ZERO,A),offsetAttribute:t._offsetAttribute})},y.getUnitBox=function(){return r.defined(l)||(l=y.createGeometry(y.fromDimensions({dimensions:new n.Cartesian3(1,1,1),vertexFormat:u.VertexFormat.POSITION_ONLY}))),l},t.BoxGeometry=y})); diff --git a/public/static/Cesium/Workers/Color-4333bfe0.js b/public/static/Cesium/Workers/Color-4333bfe0.js new file mode 100644 index 0000000..8c345e3 --- /dev/null +++ b/public/static/Cesium/Workers/Color-4333bfe0.js @@ -0,0 +1 @@ +define(["exports","./defaultValue-f6d5e6da","./Transforms-c842a68c","./Math-355606c6"],(function(e,r,t,o){"use strict";function f(e,r,t){return t<0&&(t+=1),t>1&&(t-=1),6*t<1?e+6*(r-e)*t:2*t<1?r:3*t<2?e+(r-e)*(2/3-t)*6:e}function s(e,t,o,f){this.red=r.defaultValue(e,1),this.green=r.defaultValue(t,1),this.blue=r.defaultValue(o,1),this.alpha=r.defaultValue(f,1)}let n,l,C;s.fromCartesian4=function(e,t){return r.defined(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new s(e.x,e.y,e.z,e.w)},s.fromBytes=function(e,t,o,f,n){return e=s.byteToFloat(r.defaultValue(e,255)),t=s.byteToFloat(r.defaultValue(t,255)),o=s.byteToFloat(r.defaultValue(o,255)),f=s.byteToFloat(r.defaultValue(f,255)),r.defined(n)?(n.red=e,n.green=t,n.blue=o,n.alpha=f,n):new s(e,t,o,f)},s.fromAlpha=function(e,t,o){return r.defined(o)?(o.red=e.red,o.green=e.green,o.blue=e.blue,o.alpha=t,o):new s(e.red,e.green,e.blue,t)},t.FeatureDetection.supportsTypedArrays()&&(n=new ArrayBuffer(4),l=new Uint32Array(n),C=new Uint8Array(n)),s.fromRgba=function(e,r){return l[0]=e,s.fromBytes(C[0],C[1],C[2],C[3],r)},s.fromHsl=function(e,t,o,n,l){e=r.defaultValue(e,0)%1,t=r.defaultValue(t,0),o=r.defaultValue(o,0),n=r.defaultValue(n,1);let C=o,i=o,a=o;if(0!==t){let r;r=o<.5?o*(1+t):o+t-o*t;const s=2*o-r;C=f(s,r,e+1/3),i=f(s,r,e),a=f(s,r,e-1/3)}return r.defined(l)?(l.red=C,l.green=i,l.blue=a,l.alpha=n,l):new s(C,i,a,n)},s.fromRandom=function(e,t){let f=(e=r.defaultValue(e,r.defaultValue.EMPTY_OBJECT)).red;if(!r.defined(f)){const t=r.defaultValue(e.minimumRed,0),s=r.defaultValue(e.maximumRed,1);f=t+o.CesiumMath.nextRandomNumber()*(s-t)}let n=e.green;if(!r.defined(n)){const t=r.defaultValue(e.minimumGreen,0),f=r.defaultValue(e.maximumGreen,1);n=t+o.CesiumMath.nextRandomNumber()*(f-t)}let l=e.blue;if(!r.defined(l)){const t=r.defaultValue(e.minimumBlue,0),f=r.defaultValue(e.maximumBlue,1);l=t+o.CesiumMath.nextRandomNumber()*(f-t)}let C=e.alpha;if(!r.defined(C)){const t=r.defaultValue(e.minimumAlpha,0),f=r.defaultValue(e.maximumAlpha,1);C=t+o.CesiumMath.nextRandomNumber()*(f-t)}return r.defined(t)?(t.red=f,t.green=n,t.blue=l,t.alpha=C,t):new s(f,n,l,C)};const i=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,a=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,E=/^rgba?\(\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)(?:\s*,\s*([0-9.]+))?\s*\)$/i,u=/^hsla?\(\s*([0-9.]+)\s*,\s*([0-9.]+%)\s*,\s*([0-9.]+%)(?:\s*,\s*([0-9.]+))?\s*\)$/i;s.fromCssColorString=function(e,t){r.defined(t)||(t=new s);const o=s[(e=e.replace(/\s/g,"")).toUpperCase()];if(r.defined(o))return s.clone(o,t),t;let f=i.exec(e);return null!==f?(t.red=parseInt(f[1],16)/15,t.green=parseInt(f[2],16)/15,t.blue=parseInt(f[3],16)/15,t.alpha=parseInt(r.defaultValue(f[4],"f"),16)/15,t):(f=a.exec(e),null!==f?(t.red=parseInt(f[1],16)/255,t.green=parseInt(f[2],16)/255,t.blue=parseInt(f[3],16)/255,t.alpha=parseInt(r.defaultValue(f[4],"ff"),16)/255,t):(f=E.exec(e),null!==f?(t.red=parseFloat(f[1])/("%"===f[1].substr(-1)?100:255),t.green=parseFloat(f[2])/("%"===f[2].substr(-1)?100:255),t.blue=parseFloat(f[3])/("%"===f[3].substr(-1)?100:255),t.alpha=parseFloat(r.defaultValue(f[4],"1.0")),t):(f=u.exec(e),null!==f?s.fromHsl(parseFloat(f[1])/360,parseFloat(f[2])/100,parseFloat(f[3])/100,parseFloat(r.defaultValue(f[4],"1.0")),t):t=void 0)))},s.packedLength=4,s.pack=function(e,t,o){return o=r.defaultValue(o,0),t[o++]=e.red,t[o++]=e.green,t[o++]=e.blue,t[o]=e.alpha,t},s.unpack=function(e,t,o){return t=r.defaultValue(t,0),r.defined(o)||(o=new s),o.red=e[t++],o.green=e[t++],o.blue=e[t++],o.alpha=e[t],o},s.byteToFloat=function(e){return e/255},s.floatToByte=function(e){return 1===e?255:256*e|0},s.clone=function(e,t){if(r.defined(e))return r.defined(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new s(e.red,e.green,e.blue,e.alpha)},s.equals=function(e,t){return e===t||r.defined(e)&&r.defined(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha},s.equalsArray=function(e,r,t){return e.red===r[t]&&e.green===r[t+1]&&e.blue===r[t+2]&&e.alpha===r[t+3]},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return this===e||r.defined(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t},s.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`},s.prototype.toCssColorString=function(){const e=s.floatToByte(this.red),r=s.floatToByte(this.green),t=s.floatToByte(this.blue);return 1===this.alpha?`rgb(${e},${r},${t})`:`rgba(${e},${r},${t},${this.alpha})`},s.prototype.toCssHexString=function(){let e=s.floatToByte(this.red).toString(16);e.length<2&&(e=`0${e}`);let r=s.floatToByte(this.green).toString(16);r.length<2&&(r=`0${r}`);let t=s.floatToByte(this.blue).toString(16);if(t.length<2&&(t=`0${t}`),this.alpha<1){let o=s.floatToByte(this.alpha).toString(16);return o.length<2&&(o=`0${o}`),`#${e}${r}${t}${o}`}return`#${e}${r}${t}`},s.prototype.toBytes=function(e){const t=s.floatToByte(this.red),o=s.floatToByte(this.green),f=s.floatToByte(this.blue),n=s.floatToByte(this.alpha);return r.defined(e)?(e[0]=t,e[1]=o,e[2]=f,e[3]=n,e):[t,o,f,n]},s.prototype.toRgba=function(){return C[0]=s.floatToByte(this.red),C[1]=s.floatToByte(this.green),C[2]=s.floatToByte(this.blue),C[3]=s.floatToByte(this.alpha),l[0]},s.prototype.brighten=function(e,r){return e=1-e,r.red=1-(1-this.red)*e,r.green=1-(1-this.green)*e,r.blue=1-(1-this.blue)*e,r.alpha=this.alpha,r},s.prototype.darken=function(e,r){return e=1-e,r.red=this.red*e,r.green=this.green*e,r.blue=this.blue*e,r.alpha=this.alpha,r},s.prototype.withAlpha=function(e,r){return s.fromAlpha(this,e,r)},s.add=function(e,r,t){return t.red=e.red+r.red,t.green=e.green+r.green,t.blue=e.blue+r.blue,t.alpha=e.alpha+r.alpha,t},s.subtract=function(e,r,t){return t.red=e.red-r.red,t.green=e.green-r.green,t.blue=e.blue-r.blue,t.alpha=e.alpha-r.alpha,t},s.multiply=function(e,r,t){return t.red=e.red*r.red,t.green=e.green*r.green,t.blue=e.blue*r.blue,t.alpha=e.alpha*r.alpha,t},s.divide=function(e,r,t){return t.red=e.red/r.red,t.green=e.green/r.green,t.blue=e.blue/r.blue,t.alpha=e.alpha/r.alpha,t},s.mod=function(e,r,t){return t.red=e.red%r.red,t.green=e.green%r.green,t.blue=e.blue%r.blue,t.alpha=e.alpha%r.alpha,t},s.lerp=function(e,r,t,f){return f.red=o.CesiumMath.lerp(e.red,r.red,t),f.green=o.CesiumMath.lerp(e.green,r.green,t),f.blue=o.CesiumMath.lerp(e.blue,r.blue,t),f.alpha=o.CesiumMath.lerp(e.alpha,r.alpha,t),f},s.multiplyByScalar=function(e,r,t){return t.red=e.red*r,t.green=e.green*r,t.blue=e.blue*r,t.alpha=e.alpha*r,t},s.divideByScalar=function(e,r,t){return t.red=e.red/r,t.green=e.green/r,t.blue=e.blue/r,t.alpha=e.alpha/r,t},s.ALICEBLUE=Object.freeze(s.fromCssColorString("#F0F8FF")),s.ANTIQUEWHITE=Object.freeze(s.fromCssColorString("#FAEBD7")),s.AQUA=Object.freeze(s.fromCssColorString("#00FFFF")),s.AQUAMARINE=Object.freeze(s.fromCssColorString("#7FFFD4")),s.AZURE=Object.freeze(s.fromCssColorString("#F0FFFF")),s.BEIGE=Object.freeze(s.fromCssColorString("#F5F5DC")),s.BISQUE=Object.freeze(s.fromCssColorString("#FFE4C4")),s.BLACK=Object.freeze(s.fromCssColorString("#000000")),s.BLANCHEDALMOND=Object.freeze(s.fromCssColorString("#FFEBCD")),s.BLUE=Object.freeze(s.fromCssColorString("#0000FF")),s.BLUEVIOLET=Object.freeze(s.fromCssColorString("#8A2BE2")),s.BROWN=Object.freeze(s.fromCssColorString("#A52A2A")),s.BURLYWOOD=Object.freeze(s.fromCssColorString("#DEB887")),s.CADETBLUE=Object.freeze(s.fromCssColorString("#5F9EA0")),s.CHARTREUSE=Object.freeze(s.fromCssColorString("#7FFF00")),s.CHOCOLATE=Object.freeze(s.fromCssColorString("#D2691E")),s.CORAL=Object.freeze(s.fromCssColorString("#FF7F50")),s.CORNFLOWERBLUE=Object.freeze(s.fromCssColorString("#6495ED")),s.CORNSILK=Object.freeze(s.fromCssColorString("#FFF8DC")),s.CRIMSON=Object.freeze(s.fromCssColorString("#DC143C")),s.CYAN=Object.freeze(s.fromCssColorString("#00FFFF")),s.DARKBLUE=Object.freeze(s.fromCssColorString("#00008B")),s.DARKCYAN=Object.freeze(s.fromCssColorString("#008B8B")),s.DARKGOLDENROD=Object.freeze(s.fromCssColorString("#B8860B")),s.DARKGRAY=Object.freeze(s.fromCssColorString("#A9A9A9")),s.DARKGREEN=Object.freeze(s.fromCssColorString("#006400")),s.DARKGREY=s.DARKGRAY,s.DARKKHAKI=Object.freeze(s.fromCssColorString("#BDB76B")),s.DARKMAGENTA=Object.freeze(s.fromCssColorString("#8B008B")),s.DARKOLIVEGREEN=Object.freeze(s.fromCssColorString("#556B2F")),s.DARKORANGE=Object.freeze(s.fromCssColorString("#FF8C00")),s.DARKORCHID=Object.freeze(s.fromCssColorString("#9932CC")),s.DARKRED=Object.freeze(s.fromCssColorString("#8B0000")),s.DARKSALMON=Object.freeze(s.fromCssColorString("#E9967A")),s.DARKSEAGREEN=Object.freeze(s.fromCssColorString("#8FBC8F")),s.DARKSLATEBLUE=Object.freeze(s.fromCssColorString("#483D8B")),s.DARKSLATEGRAY=Object.freeze(s.fromCssColorString("#2F4F4F")),s.DARKSLATEGREY=s.DARKSLATEGRAY,s.DARKTURQUOISE=Object.freeze(s.fromCssColorString("#00CED1")),s.DARKVIOLET=Object.freeze(s.fromCssColorString("#9400D3")),s.DEEPPINK=Object.freeze(s.fromCssColorString("#FF1493")),s.DEEPSKYBLUE=Object.freeze(s.fromCssColorString("#00BFFF")),s.DIMGRAY=Object.freeze(s.fromCssColorString("#696969")),s.DIMGREY=s.DIMGRAY,s.DODGERBLUE=Object.freeze(s.fromCssColorString("#1E90FF")),s.FIREBRICK=Object.freeze(s.fromCssColorString("#B22222")),s.FLORALWHITE=Object.freeze(s.fromCssColorString("#FFFAF0")),s.FORESTGREEN=Object.freeze(s.fromCssColorString("#228B22")),s.FUCHSIA=Object.freeze(s.fromCssColorString("#FF00FF")),s.GAINSBORO=Object.freeze(s.fromCssColorString("#DCDCDC")),s.GHOSTWHITE=Object.freeze(s.fromCssColorString("#F8F8FF")),s.GOLD=Object.freeze(s.fromCssColorString("#FFD700")),s.GOLDENROD=Object.freeze(s.fromCssColorString("#DAA520")),s.GRAY=Object.freeze(s.fromCssColorString("#808080")),s.GREEN=Object.freeze(s.fromCssColorString("#008000")),s.GREENYELLOW=Object.freeze(s.fromCssColorString("#ADFF2F")),s.GREY=s.GRAY,s.HONEYDEW=Object.freeze(s.fromCssColorString("#F0FFF0")),s.HOTPINK=Object.freeze(s.fromCssColorString("#FF69B4")),s.INDIANRED=Object.freeze(s.fromCssColorString("#CD5C5C")),s.INDIGO=Object.freeze(s.fromCssColorString("#4B0082")),s.IVORY=Object.freeze(s.fromCssColorString("#FFFFF0")),s.KHAKI=Object.freeze(s.fromCssColorString("#F0E68C")),s.LAVENDER=Object.freeze(s.fromCssColorString("#E6E6FA")),s.LAVENDAR_BLUSH=Object.freeze(s.fromCssColorString("#FFF0F5")),s.LAWNGREEN=Object.freeze(s.fromCssColorString("#7CFC00")),s.LEMONCHIFFON=Object.freeze(s.fromCssColorString("#FFFACD")),s.LIGHTBLUE=Object.freeze(s.fromCssColorString("#ADD8E6")),s.LIGHTCORAL=Object.freeze(s.fromCssColorString("#F08080")),s.LIGHTCYAN=Object.freeze(s.fromCssColorString("#E0FFFF")),s.LIGHTGOLDENRODYELLOW=Object.freeze(s.fromCssColorString("#FAFAD2")),s.LIGHTGRAY=Object.freeze(s.fromCssColorString("#D3D3D3")),s.LIGHTGREEN=Object.freeze(s.fromCssColorString("#90EE90")),s.LIGHTGREY=s.LIGHTGRAY,s.LIGHTPINK=Object.freeze(s.fromCssColorString("#FFB6C1")),s.LIGHTSEAGREEN=Object.freeze(s.fromCssColorString("#20B2AA")),s.LIGHTSKYBLUE=Object.freeze(s.fromCssColorString("#87CEFA")),s.LIGHTSLATEGRAY=Object.freeze(s.fromCssColorString("#778899")),s.LIGHTSLATEGREY=s.LIGHTSLATEGRAY,s.LIGHTSTEELBLUE=Object.freeze(s.fromCssColorString("#B0C4DE")),s.LIGHTYELLOW=Object.freeze(s.fromCssColorString("#FFFFE0")),s.LIME=Object.freeze(s.fromCssColorString("#00FF00")),s.LIMEGREEN=Object.freeze(s.fromCssColorString("#32CD32")),s.LINEN=Object.freeze(s.fromCssColorString("#FAF0E6")),s.MAGENTA=Object.freeze(s.fromCssColorString("#FF00FF")),s.MAROON=Object.freeze(s.fromCssColorString("#800000")),s.MEDIUMAQUAMARINE=Object.freeze(s.fromCssColorString("#66CDAA")),s.MEDIUMBLUE=Object.freeze(s.fromCssColorString("#0000CD")),s.MEDIUMORCHID=Object.freeze(s.fromCssColorString("#BA55D3")),s.MEDIUMPURPLE=Object.freeze(s.fromCssColorString("#9370DB")),s.MEDIUMSEAGREEN=Object.freeze(s.fromCssColorString("#3CB371")),s.MEDIUMSLATEBLUE=Object.freeze(s.fromCssColorString("#7B68EE")),s.MEDIUMSPRINGGREEN=Object.freeze(s.fromCssColorString("#00FA9A")),s.MEDIUMTURQUOISE=Object.freeze(s.fromCssColorString("#48D1CC")),s.MEDIUMVIOLETRED=Object.freeze(s.fromCssColorString("#C71585")),s.MIDNIGHTBLUE=Object.freeze(s.fromCssColorString("#191970")),s.MINTCREAM=Object.freeze(s.fromCssColorString("#F5FFFA")),s.MISTYROSE=Object.freeze(s.fromCssColorString("#FFE4E1")),s.MOCCASIN=Object.freeze(s.fromCssColorString("#FFE4B5")),s.NAVAJOWHITE=Object.freeze(s.fromCssColorString("#FFDEAD")),s.NAVY=Object.freeze(s.fromCssColorString("#000080")),s.OLDLACE=Object.freeze(s.fromCssColorString("#FDF5E6")),s.OLIVE=Object.freeze(s.fromCssColorString("#808000")),s.OLIVEDRAB=Object.freeze(s.fromCssColorString("#6B8E23")),s.ORANGE=Object.freeze(s.fromCssColorString("#FFA500")),s.ORANGERED=Object.freeze(s.fromCssColorString("#FF4500")),s.ORCHID=Object.freeze(s.fromCssColorString("#DA70D6")),s.PALEGOLDENROD=Object.freeze(s.fromCssColorString("#EEE8AA")),s.PALEGREEN=Object.freeze(s.fromCssColorString("#98FB98")),s.PALETURQUOISE=Object.freeze(s.fromCssColorString("#AFEEEE")),s.PALEVIOLETRED=Object.freeze(s.fromCssColorString("#DB7093")),s.PAPAYAWHIP=Object.freeze(s.fromCssColorString("#FFEFD5")),s.PEACHPUFF=Object.freeze(s.fromCssColorString("#FFDAB9")),s.PERU=Object.freeze(s.fromCssColorString("#CD853F")),s.PINK=Object.freeze(s.fromCssColorString("#FFC0CB")),s.PLUM=Object.freeze(s.fromCssColorString("#DDA0DD")),s.POWDERBLUE=Object.freeze(s.fromCssColorString("#B0E0E6")),s.PURPLE=Object.freeze(s.fromCssColorString("#800080")),s.RED=Object.freeze(s.fromCssColorString("#FF0000")),s.ROSYBROWN=Object.freeze(s.fromCssColorString("#BC8F8F")),s.ROYALBLUE=Object.freeze(s.fromCssColorString("#4169E1")),s.SADDLEBROWN=Object.freeze(s.fromCssColorString("#8B4513")),s.SALMON=Object.freeze(s.fromCssColorString("#FA8072")),s.SANDYBROWN=Object.freeze(s.fromCssColorString("#F4A460")),s.SEAGREEN=Object.freeze(s.fromCssColorString("#2E8B57")),s.SEASHELL=Object.freeze(s.fromCssColorString("#FFF5EE")),s.SIENNA=Object.freeze(s.fromCssColorString("#A0522D")),s.SILVER=Object.freeze(s.fromCssColorString("#C0C0C0")),s.SKYBLUE=Object.freeze(s.fromCssColorString("#87CEEB")),s.SLATEBLUE=Object.freeze(s.fromCssColorString("#6A5ACD")),s.SLATEGRAY=Object.freeze(s.fromCssColorString("#708090")),s.SLATEGREY=s.SLATEGRAY,s.SNOW=Object.freeze(s.fromCssColorString("#FFFAFA")),s.SPRINGGREEN=Object.freeze(s.fromCssColorString("#00FF7F")),s.STEELBLUE=Object.freeze(s.fromCssColorString("#4682B4")),s.TAN=Object.freeze(s.fromCssColorString("#D2B48C")),s.TEAL=Object.freeze(s.fromCssColorString("#008080")),s.THISTLE=Object.freeze(s.fromCssColorString("#D8BFD8")),s.TOMATO=Object.freeze(s.fromCssColorString("#FF6347")),s.TURQUOISE=Object.freeze(s.fromCssColorString("#40E0D0")),s.VIOLET=Object.freeze(s.fromCssColorString("#EE82EE")),s.WHEAT=Object.freeze(s.fromCssColorString("#F5DEB3")),s.WHITE=Object.freeze(s.fromCssColorString("#FFFFFF")),s.WHITESMOKE=Object.freeze(s.fromCssColorString("#F5F5F5")),s.YELLOW=Object.freeze(s.fromCssColorString("#FFFF00")),s.YELLOWGREEN=Object.freeze(s.fromCssColorString("#9ACD32")),s.TRANSPARENT=Object.freeze(new s(0,0,0,0)),e.Color=s})); diff --git a/public/static/Cesium/Workers/ComponentDatatype-ab629b88.js b/public/static/Cesium/Workers/ComponentDatatype-ab629b88.js new file mode 100644 index 0000000..70d8f78 --- /dev/null +++ b/public/static/Cesium/Workers/ComponentDatatype-ab629b88.js @@ -0,0 +1 @@ +define(["exports","./defaultValue-f6d5e6da","./WebGLConstants-7f557f93"],(function(r,e,n){"use strict";const t={BYTE:n.WebGLConstants.BYTE,UNSIGNED_BYTE:n.WebGLConstants.UNSIGNED_BYTE,SHORT:n.WebGLConstants.SHORT,UNSIGNED_SHORT:n.WebGLConstants.UNSIGNED_SHORT,INT:n.WebGLConstants.INT,UNSIGNED_INT:n.WebGLConstants.UNSIGNED_INT,FLOAT:n.WebGLConstants.FLOAT,DOUBLE:n.WebGLConstants.DOUBLE,getSizeInBytes:function(r){switch(r){case t.BYTE:return Int8Array.BYTES_PER_ELEMENT;case t.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case t.SHORT:return Int16Array.BYTES_PER_ELEMENT;case t.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case t.INT:return Int32Array.BYTES_PER_ELEMENT;case t.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case t.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case t.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},fromTypedArray:function(r){return r instanceof Int8Array?t.BYTE:r instanceof Uint8Array?t.UNSIGNED_BYTE:r instanceof Int16Array?t.SHORT:r instanceof Uint16Array?t.UNSIGNED_SHORT:r instanceof Int32Array?t.INT:r instanceof Uint32Array?t.UNSIGNED_INT:r instanceof Float32Array?t.FLOAT:r instanceof Float64Array?t.DOUBLE:void 0},validate:function(r){return e.defined(r)&&(r===t.BYTE||r===t.UNSIGNED_BYTE||r===t.SHORT||r===t.UNSIGNED_SHORT||r===t.INT||r===t.UNSIGNED_INT||r===t.FLOAT||r===t.DOUBLE)},createTypedArray:function(r,e){switch(r){case t.BYTE:return new Int8Array(e);case t.UNSIGNED_BYTE:return new Uint8Array(e);case t.SHORT:return new Int16Array(e);case t.UNSIGNED_SHORT:return new Uint16Array(e);case t.INT:return new Int32Array(e);case t.UNSIGNED_INT:return new Uint32Array(e);case t.FLOAT:return new Float32Array(e);case t.DOUBLE:return new Float64Array(e)}},createArrayBufferView:function(r,n,a,E){switch(a=e.defaultValue(a,0),E=e.defaultValue(E,(n.byteLength-a)/t.getSizeInBytes(r)),r){case t.BYTE:return new Int8Array(n,a,E);case t.UNSIGNED_BYTE:return new Uint8Array(n,a,E);case t.SHORT:return new Int16Array(n,a,E);case t.UNSIGNED_SHORT:return new Uint16Array(n,a,E);case t.INT:return new Int32Array(n,a,E);case t.UNSIGNED_INT:return new Uint32Array(n,a,E);case t.FLOAT:return new Float32Array(n,a,E);case t.DOUBLE:return new Float64Array(n,a,E)}},fromName:function(r){switch(r){case"BYTE":return t.BYTE;case"UNSIGNED_BYTE":return t.UNSIGNED_BYTE;case"SHORT":return t.SHORT;case"UNSIGNED_SHORT":return t.UNSIGNED_SHORT;case"INT":return t.INT;case"UNSIGNED_INT":return t.UNSIGNED_INT;case"FLOAT":return t.FLOAT;case"DOUBLE":return t.DOUBLE}}};var a=Object.freeze(t);r.ComponentDatatype=a})); diff --git a/public/static/Cesium/Workers/CoplanarPolygonGeometryLibrary-b81a1d6c.js b/public/static/Cesium/Workers/CoplanarPolygonGeometryLibrary-b81a1d6c.js new file mode 100644 index 0000000..b9bb641 --- /dev/null +++ b/public/static/Cesium/Workers/CoplanarPolygonGeometryLibrary-b81a1d6c.js @@ -0,0 +1 @@ +define(["exports","./Matrix2-7a8e9daf","./Matrix3-b2351961","./OrientedBoundingBox-04b751ee"],(function(n,t,e,r){"use strict";const a={},i=new e.Cartesian3,o=new e.Cartesian3,u=new e.Cartesian3,s=new e.Cartesian3,c=new r.OrientedBoundingBox;function C(n,r,a,o,u){const s=e.Cartesian3.subtract(n,r,i),c=e.Cartesian3.dot(a,s),C=e.Cartesian3.dot(o,s);return t.Cartesian2.fromElements(c,C,u)}a.validOutline=function(n){const t=r.OrientedBoundingBox.fromPoints(n,c).halfAxes,a=e.Matrix3.getColumn(t,0,o),i=e.Matrix3.getColumn(t,1,u),C=e.Matrix3.getColumn(t,2,s),m=e.Cartesian3.magnitude(a),g=e.Cartesian3.magnitude(i),l=e.Cartesian3.magnitude(C);return!(0===m&&(0===g||0===l)||0===g&&0===l)},a.computeProjectTo2DArguments=function(n,t,a,i){const C=r.OrientedBoundingBox.fromPoints(n,c),m=C.halfAxes,g=e.Matrix3.getColumn(m,0,o),l=e.Matrix3.getColumn(m,1,u),d=e.Matrix3.getColumn(m,2,s),f=e.Cartesian3.magnitude(g),x=e.Cartesian3.magnitude(l),M=e.Cartesian3.magnitude(d),B=Math.min(f,x,M);if(0===f&&(0===x||0===M)||0===x&&0===M)return!1;let P,w;return B!==x&&B!==M||(P=g),B===f?P=l:B===M&&(w=l),B!==f&&B!==x||(w=d),e.Cartesian3.normalize(P,a),e.Cartesian3.normalize(w,i),e.Cartesian3.clone(C.center,t),!0},a.createProjectPointsTo2DFunction=function(n,t,e){return function(r){const a=new Array(r.length);for(let i=0;i<r.length;i++)a[i]=C(r[i],n,t,e);return a}},a.createProjectPointTo2DFunction=function(n,t,e){return function(r,a){return C(r,n,t,e,a)}};var m=a;n.CoplanarPolygonGeometryLibrary=m})); diff --git a/public/static/Cesium/Workers/CorridorGeometryLibrary-0264fc3e.js b/public/static/Cesium/Workers/CorridorGeometryLibrary-0264fc3e.js new file mode 100644 index 0000000..109412e --- /dev/null +++ b/public/static/Cesium/Workers/CorridorGeometryLibrary-0264fc3e.js @@ -0,0 +1 @@ +define(["exports","./Matrix3-b2351961","./PolylineVolumeGeometryLibrary-e2129320","./defaultValue-f6d5e6da","./Math-355606c6","./PolylinePipeline-dfaa9e90","./Transforms-c842a68c"],(function(a,e,n,t,r,i,s){"use strict";const o={},l=new e.Cartesian3,C=new e.Cartesian3,y=new e.Cartesian3,c=new e.Cartesian3,u=[new e.Cartesian3,new e.Cartesian3],d=new e.Cartesian3,p=new e.Cartesian3,m=new e.Cartesian3,g=new e.Cartesian3,h=new e.Cartesian3,f=new e.Cartesian3,w=new e.Cartesian3,x=new e.Cartesian3,z=new e.Cartesian3,B=new e.Cartesian3,P=new s.Quaternion,A=new e.Matrix3;function E(a,t,i,o,y){const c=e.Cartesian3.angleBetween(e.Cartesian3.subtract(t,a,l),e.Cartesian3.subtract(i,a,C)),u=o===n.CornerType.BEVELED?1:Math.ceil(c/r.CesiumMath.toRadians(5))+1,d=3*u,p=new Array(d);let m;p[d-3]=i.x,p[d-2]=i.y,p[d-1]=i.z,m=y?e.Matrix3.fromQuaternion(s.Quaternion.fromAxisAngle(e.Cartesian3.negate(a,l),c/u,P),A):e.Matrix3.fromQuaternion(s.Quaternion.fromAxisAngle(a,c/u,P),A);let g=0;t=e.Cartesian3.clone(t,l);for(let a=0;a<u;a++)t=e.Matrix3.multiplyByVector(m,t,t),p[g++]=t.x,p[g++]=t.y,p[g++]=t.z;return p}function S(a,n,t,r){let i=l;return r||(n=e.Cartesian3.negate(n,n)),i=e.Cartesian3.add(a,n,i),[i.x,i.y,i.z,t.x,t.y,t.z]}function D(a,n,t,r){const i=new Array(a.length),s=new Array(a.length),o=e.Cartesian3.multiplyByScalar(n,t,l),u=e.Cartesian3.negate(o,C);let d=0,p=a.length-1;for(let n=0;n<a.length;n+=3){const t=e.Cartesian3.fromArray(a,n,y),r=e.Cartesian3.add(t,u,c);i[d++]=r.x,i[d++]=r.y,i[d++]=r.z;const l=e.Cartesian3.add(t,o,c);s[p--]=l.z,s[p--]=l.y,s[p--]=l.x}return r.push(i,s),r}o.addAttribute=function(a,e,n,r){const i=e.x,s=e.y,o=e.z;t.defined(n)&&(a[n]=i,a[n+1]=s,a[n+2]=o),t.defined(r)&&(a[r]=o,a[r-1]=s,a[r-2]=i)};const b=new e.Cartesian3,M=new e.Cartesian3;o.computePositions=function(a){const t=a.granularity,s=a.positions,o=a.ellipsoid,C=a.width/2,y=a.cornerType,c=a.saveAttributes;let P=d,A=p,T=m,N=g,L=h,V=f,O=w,R=x,Q=z,U=B,v=[];const G=c?[]:void 0,I=c?[]:void 0;let q,j=s[0],k=s[1];A=e.Cartesian3.normalize(e.Cartesian3.subtract(k,j,A),A),P=o.geodeticSurfaceNormal(j,P),N=e.Cartesian3.normalize(e.Cartesian3.cross(P,A,N),N),c&&(G.push(N.x,N.y,N.z),I.push(P.x,P.y,P.z)),O=e.Cartesian3.clone(j,O),j=k,T=e.Cartesian3.negate(A,T);const F=[];let H;const J=s.length;for(H=1;H<J-1;H++){P=o.geodeticSurfaceNormal(j,P),k=s[H+1],A=e.Cartesian3.normalize(e.Cartesian3.subtract(k,j,A),A),L=e.Cartesian3.normalize(e.Cartesian3.add(A,T,L),L);const a=e.Cartesian3.multiplyByScalar(P,e.Cartesian3.dot(A,P),b);e.Cartesian3.subtract(A,a,a),e.Cartesian3.normalize(a,a);const d=e.Cartesian3.multiplyByScalar(P,e.Cartesian3.dot(T,P),M);e.Cartesian3.subtract(T,d,d),e.Cartesian3.normalize(d,d);if(!r.CesiumMath.equalsEpsilon(Math.abs(e.Cartesian3.dot(a,d)),1,r.CesiumMath.EPSILON7)){L=e.Cartesian3.cross(L,P,L),L=e.Cartesian3.cross(P,L,L),L=e.Cartesian3.normalize(L,L);const a=C/Math.max(.25,e.Cartesian3.magnitude(e.Cartesian3.cross(L,T,l))),r=n.PolylineVolumeGeometryLibrary.angleIsGreaterThanPi(A,T,j,o);L=e.Cartesian3.multiplyByScalar(L,a,L),r?(R=e.Cartesian3.add(j,L,R),U=e.Cartesian3.add(R,e.Cartesian3.multiplyByScalar(N,C,U),U),Q=e.Cartesian3.add(R,e.Cartesian3.multiplyByScalar(N,2*C,Q),Q),u[0]=e.Cartesian3.clone(O,u[0]),u[1]=e.Cartesian3.clone(U,u[1]),q=i.PolylinePipeline.generateArc({positions:u,granularity:t,ellipsoid:o}),v=D(q,N,C,v),c&&(G.push(N.x,N.y,N.z),I.push(P.x,P.y,P.z)),V=e.Cartesian3.clone(Q,V),N=e.Cartesian3.normalize(e.Cartesian3.cross(P,A,N),N),Q=e.Cartesian3.add(R,e.Cartesian3.multiplyByScalar(N,2*C,Q),Q),O=e.Cartesian3.add(R,e.Cartesian3.multiplyByScalar(N,C,O),O),y===n.CornerType.ROUNDED||y===n.CornerType.BEVELED?F.push({leftPositions:E(R,V,Q,y,r)}):F.push({leftPositions:S(j,e.Cartesian3.negate(L,L),Q,r)})):(Q=e.Cartesian3.add(j,L,Q),U=e.Cartesian3.add(Q,e.Cartesian3.negate(e.Cartesian3.multiplyByScalar(N,C,U),U),U),R=e.Cartesian3.add(Q,e.Cartesian3.negate(e.Cartesian3.multiplyByScalar(N,2*C,R),R),R),u[0]=e.Cartesian3.clone(O,u[0]),u[1]=e.Cartesian3.clone(U,u[1]),q=i.PolylinePipeline.generateArc({positions:u,granularity:t,ellipsoid:o}),v=D(q,N,C,v),c&&(G.push(N.x,N.y,N.z),I.push(P.x,P.y,P.z)),V=e.Cartesian3.clone(R,V),N=e.Cartesian3.normalize(e.Cartesian3.cross(P,A,N),N),R=e.Cartesian3.add(Q,e.Cartesian3.negate(e.Cartesian3.multiplyByScalar(N,2*C,R),R),R),O=e.Cartesian3.add(Q,e.Cartesian3.negate(e.Cartesian3.multiplyByScalar(N,C,O),O),O),y===n.CornerType.ROUNDED||y===n.CornerType.BEVELED?F.push({rightPositions:E(Q,V,R,y,r)}):F.push({rightPositions:S(j,L,R,r)})),T=e.Cartesian3.negate(A,T)}j=k}let K;return P=o.geodeticSurfaceNormal(j,P),u[0]=e.Cartesian3.clone(O,u[0]),u[1]=e.Cartesian3.clone(j,u[1]),q=i.PolylinePipeline.generateArc({positions:u,granularity:t,ellipsoid:o}),v=D(q,N,C,v),c&&(G.push(N.x,N.y,N.z),I.push(P.x,P.y,P.z)),y===n.CornerType.ROUNDED&&(K=function(a){let t=d,r=p,i=m,s=a[1];r=e.Cartesian3.fromArray(a[1],s.length-3,r),i=e.Cartesian3.fromArray(a[0],0,i),t=e.Cartesian3.midpoint(r,i,t);const o=E(t,r,i,n.CornerType.ROUNDED,!1),l=a.length-1,C=a[l-1];return s=a[l],r=e.Cartesian3.fromArray(C,C.length-3,r),i=e.Cartesian3.fromArray(s,0,i),t=e.Cartesian3.midpoint(r,i,t),[o,E(t,r,i,n.CornerType.ROUNDED,!1)]}(v)),{positions:v,corners:F,lefts:G,normals:I,endPositions:K}};var T=o;a.CorridorGeometryLibrary=T})); diff --git a/public/static/Cesium/Workers/CylinderGeometry-c437b77a.js b/public/static/Cesium/Workers/CylinderGeometry-c437b77a.js new file mode 100644 index 0000000..6adc212 --- /dev/null +++ b/public/static/Cesium/Workers/CylinderGeometry-c437b77a.js @@ -0,0 +1 @@ +define(["exports","./Transforms-c842a68c","./Matrix2-7a8e9daf","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./CylinderGeometryLibrary-4d7f606d","./defaultValue-f6d5e6da","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18","./Math-355606c6","./VertexFormat-fbdec922"],(function(t,e,n,a,o,r,i,s,u,m,l,c,p){"use strict";const y=new n.Cartesian2,d=new a.Cartesian3,f=new a.Cartesian3,b=new a.Cartesian3,A=new a.Cartesian3;function x(t){const e=(t=i.defaultValue(t,i.defaultValue.EMPTY_OBJECT)).length,n=t.topRadius,a=t.bottomRadius,o=i.defaultValue(t.vertexFormat,p.VertexFormat.DEFAULT),r=i.defaultValue(t.slices,128);this._length=e,this._topRadius=n,this._bottomRadius=a,this._vertexFormat=p.VertexFormat.clone(o),this._slices=r,this._offsetAttribute=t.offsetAttribute,this._workerName="createCylinderGeometry"}x.packedLength=p.VertexFormat.packedLength+5,x.pack=function(t,e,n){return n=i.defaultValue(n,0),p.VertexFormat.pack(t._vertexFormat,e,n),n+=p.VertexFormat.packedLength,e[n++]=t._length,e[n++]=t._topRadius,e[n++]=t._bottomRadius,e[n++]=t._slices,e[n]=i.defaultValue(t._offsetAttribute,-1),e};const g=new p.VertexFormat,_={vertexFormat:g,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};let h;x.unpack=function(t,e,n){e=i.defaultValue(e,0);const a=p.VertexFormat.unpack(t,e,g);e+=p.VertexFormat.packedLength;const o=t[e++],r=t[e++],s=t[e++],u=t[e++],m=t[e];return i.defined(n)?(n._vertexFormat=p.VertexFormat.clone(a,n._vertexFormat),n._length=o,n._topRadius=r,n._bottomRadius=s,n._slices=u,n._offsetAttribute=-1===m?void 0:m,n):(_.length=o,_.topRadius=r,_.bottomRadius=s,_.slices=u,_.offsetAttribute=-1===m?void 0:m,new x(_))},x.createGeometry=function(t){let p=t._length;const x=t._topRadius,g=t._bottomRadius,_=t._vertexFormat,h=t._slices;if(p<=0||x<0||g<0||0===x&&0===g)return;const F=h+h,v=h+F,C=F+F,w=r.CylinderGeometryLibrary.computePositions(p,x,g,h,!0),G=_.st?new Float32Array(2*C):void 0,V=_.normal?new Float32Array(3*C):void 0,D=_.tangent?new Float32Array(3*C):void 0,R=_.bitangent?new Float32Array(3*C):void 0;let T;const O=_.normal||_.tangent||_.bitangent;if(O){const t=_.tangent||_.bitangent;let e=0,n=0,o=0;const r=Math.atan2(g-x,p),i=d;i.z=Math.sin(r);const s=Math.cos(r);let u=b,m=f;for(T=0;T<h;T++){const r=T/h*c.CesiumMath.TWO_PI,l=s*Math.cos(r),p=s*Math.sin(r);O&&(i.x=l,i.y=p,t&&(u=a.Cartesian3.normalize(a.Cartesian3.cross(a.Cartesian3.UNIT_Z,i,u),u)),_.normal&&(V[e++]=i.x,V[e++]=i.y,V[e++]=i.z,V[e++]=i.x,V[e++]=i.y,V[e++]=i.z),_.tangent&&(D[n++]=u.x,D[n++]=u.y,D[n++]=u.z,D[n++]=u.x,D[n++]=u.y,D[n++]=u.z),_.bitangent&&(m=a.Cartesian3.normalize(a.Cartesian3.cross(i,u,m),m),R[o++]=m.x,R[o++]=m.y,R[o++]=m.z,R[o++]=m.x,R[o++]=m.y,R[o++]=m.z))}for(T=0;T<h;T++)_.normal&&(V[e++]=0,V[e++]=0,V[e++]=-1),_.tangent&&(D[n++]=1,D[n++]=0,D[n++]=0),_.bitangent&&(R[o++]=0,R[o++]=-1,R[o++]=0);for(T=0;T<h;T++)_.normal&&(V[e++]=0,V[e++]=0,V[e++]=1),_.tangent&&(D[n++]=1,D[n++]=0,D[n++]=0),_.bitangent&&(R[o++]=0,R[o++]=1,R[o++]=0)}const L=12*h-12,M=l.IndexDatatype.createTypedArray(C,L);let P=0,k=0;for(T=0;T<h-1;T++)M[P++]=k,M[P++]=k+2,M[P++]=k+3,M[P++]=k,M[P++]=k+3,M[P++]=k+1,k+=2;for(M[P++]=F-2,M[P++]=0,M[P++]=1,M[P++]=F-2,M[P++]=1,M[P++]=F-1,T=1;T<h-1;T++)M[P++]=F+T+1,M[P++]=F+T,M[P++]=F;for(T=1;T<h-1;T++)M[P++]=v,M[P++]=v+T,M[P++]=v+T+1;let z=0;if(_.st){const t=Math.max(x,g);for(T=0;T<C;T++){const e=a.Cartesian3.fromArray(w,3*T,A);G[z++]=(e.x+t)/(2*t),G[z++]=(e.y+t)/(2*t)}}const E=new u.GeometryAttributes;_.position&&(E.position=new s.GeometryAttribute({componentDatatype:o.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:w})),_.normal&&(E.normal=new s.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:V})),_.tangent&&(E.tangent=new s.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:D})),_.bitangent&&(E.bitangent=new s.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:R})),_.st&&(E.st=new s.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:G})),y.x=.5*p,y.y=Math.max(g,x);const N=new e.BoundingSphere(a.Cartesian3.ZERO,n.Cartesian2.magnitude(y));if(i.defined(t._offsetAttribute)){p=w.length;const e=t._offsetAttribute===m.GeometryOffsetAttribute.NONE?0:1,n=new Uint8Array(p/3).fill(e);E.applyOffset=new s.GeometryAttribute({componentDatatype:o.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:n})}return new s.Geometry({attributes:E,indices:M,primitiveType:s.PrimitiveType.TRIANGLES,boundingSphere:N,offsetAttribute:t._offsetAttribute})},x.getUnitCylinder=function(){return i.defined(h)||(h=x.createGeometry(new x({topRadius:1,bottomRadius:1,length:1,vertexFormat:p.VertexFormat.POSITION_ONLY}))),h},t.CylinderGeometry=x})); diff --git a/public/static/Cesium/Workers/CylinderGeometryLibrary-4d7f606d.js b/public/static/Cesium/Workers/CylinderGeometryLibrary-4d7f606d.js new file mode 100644 index 0000000..af29f5a --- /dev/null +++ b/public/static/Cesium/Workers/CylinderGeometryLibrary-4d7f606d.js @@ -0,0 +1 @@ +define(["exports","./Math-355606c6"],(function(t,n){"use strict";const o={computePositions:function(t,o,e,r,s){const i=.5*t,c=-i,a=r+r,u=new Float64Array(3*(s?2*a:a));let f,h=0,y=0;const M=s?3*a:0,l=s?3*(a+r):3*r;for(f=0;f<r;f++){const t=f/r*n.CesiumMath.TWO_PI,a=Math.cos(t),m=Math.sin(t),d=a*e,p=m*e,C=a*o,P=m*o;u[y+M]=d,u[y+M+1]=p,u[y+M+2]=c,u[y+l]=C,u[y+l+1]=P,u[y+l+2]=i,y+=3,s&&(u[h++]=d,u[h++]=p,u[h++]=c,u[h++]=C,u[h++]=P,u[h++]=i)}return u}};var e=o;t.CylinderGeometryLibrary=e})); diff --git a/public/static/Cesium/Workers/EllipseGeometry-767bd099.js b/public/static/Cesium/Workers/EllipseGeometry-767bd099.js new file mode 100644 index 0000000..47384e0 --- /dev/null +++ b/public/static/Cesium/Workers/EllipseGeometry-767bd099.js @@ -0,0 +1 @@ +define(["exports","./Transforms-c842a68c","./Matrix2-7a8e9daf","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./EllipseGeometryLibrary-ddb4a715","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryInstance-c4920693","./GeometryOffsetAttribute-2579b8d2","./GeometryPipeline-87cdea8e","./IndexDatatype-a9b1bc18","./Math-355606c6","./VertexFormat-fbdec922"],(function(t,e,i,r,n,o,a,s,l,u,m,c,p,y,d){"use strict";const f=new r.Cartesian3,A=new r.Cartesian3,x=new r.Cartesian3,h=new r.Cartesian3,g=new i.Cartesian2,_=new r.Matrix3,b=new r.Matrix3,C=new e.Quaternion,w=new r.Cartesian3,M=new r.Cartesian3,E=new r.Cartesian3,I=new r.Cartographic,T=new r.Cartesian3,G=new i.Cartesian2,N=new i.Cartesian2;function P(t,u,c){const p=u.vertexFormat,y=u.center,d=u.semiMajorAxis,h=u.semiMinorAxis,P=u.ellipsoid,v=u.stRotation,V=c?t.length/3*2:t.length/3,F=u.shadowVolume,D=p.st?new Float32Array(2*V):void 0,O=p.normal?new Float32Array(3*V):void 0,S=p.tangent?new Float32Array(3*V):void 0,L=p.bitangent?new Float32Array(3*V):void 0,R=F?new Float32Array(3*V):void 0;let j=0,z=w,k=M,B=E;const Y=new e.GeographicProjection(P),H=Y.project(P.cartesianToCartographic(y,I),T),U=P.scaleToGeodeticSurface(y,f);P.geodeticSurfaceNormal(U,U);let Q=_,W=b;if(0!==v){let t=e.Quaternion.fromAxisAngle(U,v,C);Q=r.Matrix3.fromQuaternion(t,Q),t=e.Quaternion.fromAxisAngle(U,-v,C),W=r.Matrix3.fromQuaternion(t,W)}else Q=r.Matrix3.clone(r.Matrix3.IDENTITY,Q),W=r.Matrix3.clone(r.Matrix3.IDENTITY,W);const J=i.Cartesian2.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,G),q=i.Cartesian2.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,N);let Z=t.length;const K=c?Z:0,X=K/3*2;for(let e=0;e<Z;e+=3){const i=e+1,n=e+2,o=r.Cartesian3.fromArray(t,e,f);if(p.st){const t=r.Matrix3.multiplyByVector(Q,o,A),e=Y.project(P.cartesianToCartographic(t,I),x);r.Cartesian3.subtract(e,H,e),g.x=(e.x+d)/(2*d),g.y=(e.y+h)/(2*h),J.x=Math.min(g.x,J.x),J.y=Math.min(g.y,J.y),q.x=Math.max(g.x,q.x),q.y=Math.max(g.y,q.y),c&&(D[j+X]=g.x,D[j+1+X]=g.y),D[j++]=g.x,D[j++]=g.y}(p.normal||p.tangent||p.bitangent||F)&&(z=P.geodeticSurfaceNormal(o,z),F&&(R[e+K]=-z.x,R[i+K]=-z.y,R[n+K]=-z.z),(p.normal||p.tangent||p.bitangent)&&((p.tangent||p.bitangent)&&(k=r.Cartesian3.normalize(r.Cartesian3.cross(r.Cartesian3.UNIT_Z,z,k),k),r.Matrix3.multiplyByVector(W,k,k)),p.normal&&(O[e]=z.x,O[i]=z.y,O[n]=z.z,c&&(O[e+K]=-z.x,O[i+K]=-z.y,O[n+K]=-z.z)),p.tangent&&(S[e]=k.x,S[i]=k.y,S[n]=k.z,c&&(S[e+K]=-k.x,S[i+K]=-k.y,S[n+K]=-k.z)),p.bitangent&&(B=r.Cartesian3.normalize(r.Cartesian3.cross(z,k,B),B),L[e]=B.x,L[i]=B.y,L[n]=B.z,c&&(L[e+K]=B.x,L[i+K]=B.y,L[n+K]=B.z))))}if(p.st){Z=D.length;for(let t=0;t<Z;t+=2)D[t]=(D[t]-J.x)/(q.x-J.x),D[t+1]=(D[t+1]-J.y)/(q.y-J.y)}const $=new l.GeometryAttributes;if(p.position){const e=a.EllipseGeometryLibrary.raisePositionsToHeight(t,u,c);$.position=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:e})}if(p.st&&($.st=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:D})),p.normal&&($.normal=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:O})),p.tangent&&($.tangent=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:S})),p.bitangent&&($.bitangent=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:L})),F&&($.extrudeDirection=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:R})),c&&o.defined(u.offsetAttribute)){let t=new Uint8Array(V);if(u.offsetAttribute===m.GeometryOffsetAttribute.TOP)t=t.fill(1,0,V/2);else{const e=u.offsetAttribute===m.GeometryOffsetAttribute.NONE?0:1;t=t.fill(e)}$.applyOffset=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:t})}return $}function v(t){const e=new Array(t*(t+1)*12-6);let i,r,n,o,a,s=0;for(i=0,n=1,o=0;o<3;o++)e[s++]=n++,e[s++]=i,e[s++]=n;for(o=2;o<t+1;++o){for(n=o*(o+1)-1,i=(o-1)*o-1,e[s++]=n++,e[s++]=i,e[s++]=n,r=2*o,a=0;a<r-1;++a)e[s++]=n,e[s++]=i++,e[s++]=i,e[s++]=n++,e[s++]=i,e[s++]=n;e[s++]=n++,e[s++]=i,e[s++]=n}for(r=2*t,++n,++i,o=0;o<r-1;++o)e[s++]=n,e[s++]=i++,e[s++]=i,e[s++]=n++,e[s++]=i,e[s++]=n;for(e[s++]=n,e[s++]=i++,e[s++]=i,e[s++]=n++,e[s++]=i++,e[s++]=i,++i,o=t-1;o>1;--o){for(e[s++]=i++,e[s++]=i,e[s++]=n,r=2*o,a=0;a<r-1;++a)e[s++]=n,e[s++]=i++,e[s++]=i,e[s++]=n++,e[s++]=i,e[s++]=n;e[s++]=i++,e[s++]=i++,e[s++]=n++}for(o=0;o<3;o++)e[s++]=i++,e[s++]=i,e[s++]=n;return e}let V=new r.Cartesian3;const F=new e.BoundingSphere,D=new e.BoundingSphere;function O(t){const y=t.center,d=t.ellipsoid,b=t.semiMajorAxis;let V=r.Cartesian3.multiplyByScalar(d.geodeticSurfaceNormal(y,f),t.height,f);F.center=r.Cartesian3.add(y,V,F.center),F.radius=b,V=r.Cartesian3.multiplyByScalar(d.geodeticSurfaceNormal(y,V),t.extrudedHeight,V),D.center=r.Cartesian3.add(y,V,D.center),D.radius=b;const O=a.EllipseGeometryLibrary.computeEllipsePositions(t,!0,!0),S=O.positions,L=O.numPts,R=O.outerPositions,j=e.BoundingSphere.union(F,D),z=P(S,t,!0);let k=v(L);const B=k.length;k.length=2*B;const Y=S.length/3;for(let t=0;t<B;t+=3)k[t+B]=k[t+2]+Y,k[t+1+B]=k[t+1]+Y,k[t+2+B]=k[t]+Y;const H=p.IndexDatatype.createTypedArray(2*Y/3,k),U=new s.Geometry({attributes:z,indices:H,primitiveType:s.PrimitiveType.TRIANGLES}),Q=function(t,a){const u=a.vertexFormat,c=a.center,p=a.semiMajorAxis,y=a.semiMinorAxis,d=a.ellipsoid,b=a.height,P=a.extrudedHeight,v=a.stRotation,V=t.length/3*2,F=new Float64Array(3*V),D=u.st?new Float32Array(2*V):void 0,O=u.normal?new Float32Array(3*V):void 0,S=u.tangent?new Float32Array(3*V):void 0,L=u.bitangent?new Float32Array(3*V):void 0,R=a.shadowVolume,j=R?new Float32Array(3*V):void 0;let z=0,k=w,B=M,Y=E;const H=new e.GeographicProjection(d),U=H.project(d.cartesianToCartographic(c,I),T),Q=d.scaleToGeodeticSurface(c,f);d.geodeticSurfaceNormal(Q,Q);const W=e.Quaternion.fromAxisAngle(Q,v,C),J=r.Matrix3.fromQuaternion(W,_),q=i.Cartesian2.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,G),Z=i.Cartesian2.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,N);let K=t.length;const X=K/3*2;for(let e=0;e<K;e+=3){const i=e+1,n=e+2;let o,a=r.Cartesian3.fromArray(t,e,f);if(u.st){const t=r.Matrix3.multiplyByVector(J,a,A),e=H.project(d.cartesianToCartographic(t,I),x);r.Cartesian3.subtract(e,U,e),g.x=(e.x+p)/(2*p),g.y=(e.y+y)/(2*y),q.x=Math.min(g.x,q.x),q.y=Math.min(g.y,q.y),Z.x=Math.max(g.x,Z.x),Z.y=Math.max(g.y,Z.y),D[z+X]=g.x,D[z+1+X]=g.y,D[z++]=g.x,D[z++]=g.y}a=d.scaleToGeodeticSurface(a,a),o=r.Cartesian3.clone(a,A),k=d.geodeticSurfaceNormal(a,k),R&&(j[e+K]=-k.x,j[i+K]=-k.y,j[n+K]=-k.z);let s=r.Cartesian3.multiplyByScalar(k,b,h);if(a=r.Cartesian3.add(a,s,a),s=r.Cartesian3.multiplyByScalar(k,P,s),o=r.Cartesian3.add(o,s,o),u.position&&(F[e+K]=o.x,F[i+K]=o.y,F[n+K]=o.z,F[e]=a.x,F[i]=a.y,F[n]=a.z),u.normal||u.tangent||u.bitangent){Y=r.Cartesian3.clone(k,Y);const s=r.Cartesian3.fromArray(t,(e+3)%K,h);r.Cartesian3.subtract(s,a,s);const l=r.Cartesian3.subtract(o,a,x);k=r.Cartesian3.normalize(r.Cartesian3.cross(l,s,k),k),u.normal&&(O[e]=k.x,O[i]=k.y,O[n]=k.z,O[e+K]=k.x,O[i+K]=k.y,O[n+K]=k.z),u.tangent&&(B=r.Cartesian3.normalize(r.Cartesian3.cross(Y,k,B),B),S[e]=B.x,S[i]=B.y,S[n]=B.z,S[e+K]=B.x,S[e+1+K]=B.y,S[e+2+K]=B.z),u.bitangent&&(L[e]=Y.x,L[i]=Y.y,L[n]=Y.z,L[e+K]=Y.x,L[i+K]=Y.y,L[n+K]=Y.z)}}if(u.st){K=D.length;for(let t=0;t<K;t+=2)D[t]=(D[t]-q.x)/(Z.x-q.x),D[t+1]=(D[t+1]-q.y)/(Z.y-q.y)}const $=new l.GeometryAttributes;if(u.position&&($.position=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:F})),u.st&&($.st=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:D})),u.normal&&($.normal=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:O})),u.tangent&&($.tangent=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:S})),u.bitangent&&($.bitangent=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:L})),R&&($.extrudeDirection=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:j})),o.defined(a.offsetAttribute)){let t=new Uint8Array(V);if(a.offsetAttribute===m.GeometryOffsetAttribute.TOP)t=t.fill(1,0,V/2);else{const e=a.offsetAttribute===m.GeometryOffsetAttribute.NONE?0:1;t=t.fill(e)}$.applyOffset=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:t})}return $}(R,t);k=function(t){const e=t.length/3,i=p.IndexDatatype.createTypedArray(e,6*e);let r=0;for(let t=0;t<e;t++){const n=t,o=t+e,a=(n+1)%e,s=a+e;i[r++]=n,i[r++]=o,i[r++]=a,i[r++]=a,i[r++]=o,i[r++]=s}return i}(R);const W=p.IndexDatatype.createTypedArray(2*R.length/3,k),J=new s.Geometry({attributes:Q,indices:W,primitiveType:s.PrimitiveType.TRIANGLES}),q=c.GeometryPipeline.combineInstances([new u.GeometryInstance({geometry:U}),new u.GeometryInstance({geometry:J})]);return{boundingSphere:j,attributes:q[0].attributes,indices:q[0].indices}}function S(t,e,n,o,s,l,u){const m=a.EllipseGeometryLibrary.computeEllipsePositions({center:t,semiMajorAxis:e,semiMinorAxis:n,rotation:o,granularity:s},!1,!0).outerPositions,c=m.length/3,p=new Array(c);for(let t=0;t<c;++t)p[t]=r.Cartesian3.fromArray(m,3*t);const d=i.Rectangle.fromCartesianArray(p,l,u);return d.width>y.CesiumMath.PI&&(d.north=d.north>0?y.CesiumMath.PI_OVER_TWO-y.CesiumMath.EPSILON7:d.north,d.south=d.south<0?y.CesiumMath.EPSILON7-y.CesiumMath.PI_OVER_TWO:d.south,d.east=y.CesiumMath.PI,d.west=-y.CesiumMath.PI),d}function L(t){const e=(t=o.defaultValue(t,o.defaultValue.EMPTY_OBJECT)).center,i=o.defaultValue(t.ellipsoid,r.Ellipsoid.WGS84),n=t.semiMajorAxis,a=t.semiMinorAxis,s=o.defaultValue(t.granularity,y.CesiumMath.RADIANS_PER_DEGREE),l=o.defaultValue(t.vertexFormat,d.VertexFormat.DEFAULT),u=o.defaultValue(t.height,0),m=o.defaultValue(t.extrudedHeight,u);this._center=r.Cartesian3.clone(e),this._semiMajorAxis=n,this._semiMinorAxis=a,this._ellipsoid=r.Ellipsoid.clone(i),this._rotation=o.defaultValue(t.rotation,0),this._stRotation=o.defaultValue(t.stRotation,0),this._height=Math.max(m,u),this._granularity=s,this._vertexFormat=d.VertexFormat.clone(l),this._extrudedHeight=Math.min(m,u),this._shadowVolume=o.defaultValue(t.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=t.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}L.packedLength=r.Cartesian3.packedLength+r.Ellipsoid.packedLength+d.VertexFormat.packedLength+9,L.pack=function(t,e,i){return i=o.defaultValue(i,0),r.Cartesian3.pack(t._center,e,i),i+=r.Cartesian3.packedLength,r.Ellipsoid.pack(t._ellipsoid,e,i),i+=r.Ellipsoid.packedLength,d.VertexFormat.pack(t._vertexFormat,e,i),i+=d.VertexFormat.packedLength,e[i++]=t._semiMajorAxis,e[i++]=t._semiMinorAxis,e[i++]=t._rotation,e[i++]=t._stRotation,e[i++]=t._height,e[i++]=t._granularity,e[i++]=t._extrudedHeight,e[i++]=t._shadowVolume?1:0,e[i]=o.defaultValue(t._offsetAttribute,-1),e};const R=new r.Cartesian3,j=new r.Ellipsoid,z=new d.VertexFormat,k={center:R,ellipsoid:j,vertexFormat:z,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};L.unpack=function(t,e,i){e=o.defaultValue(e,0);const n=r.Cartesian3.unpack(t,e,R);e+=r.Cartesian3.packedLength;const a=r.Ellipsoid.unpack(t,e,j);e+=r.Ellipsoid.packedLength;const s=d.VertexFormat.unpack(t,e,z);e+=d.VertexFormat.packedLength;const l=t[e++],u=t[e++],m=t[e++],c=t[e++],p=t[e++],y=t[e++],f=t[e++],A=1===t[e++],x=t[e];return o.defined(i)?(i._center=r.Cartesian3.clone(n,i._center),i._ellipsoid=r.Ellipsoid.clone(a,i._ellipsoid),i._vertexFormat=d.VertexFormat.clone(s,i._vertexFormat),i._semiMajorAxis=l,i._semiMinorAxis=u,i._rotation=m,i._stRotation=c,i._height=p,i._granularity=y,i._extrudedHeight=f,i._shadowVolume=A,i._offsetAttribute=-1===x?void 0:x,i):(k.height=p,k.extrudedHeight=f,k.granularity=y,k.stRotation=c,k.rotation=m,k.semiMajorAxis=l,k.semiMinorAxis=u,k.shadowVolume=A,k.offsetAttribute=-1===x?void 0:x,new L(k))},L.computeRectangle=function(t,e){const i=(t=o.defaultValue(t,o.defaultValue.EMPTY_OBJECT)).center,n=o.defaultValue(t.ellipsoid,r.Ellipsoid.WGS84),a=t.semiMajorAxis,s=t.semiMinorAxis,l=o.defaultValue(t.granularity,y.CesiumMath.RADIANS_PER_DEGREE);return S(i,a,s,o.defaultValue(t.rotation,0),l,n,e)},L.createGeometry=function(t){if(t._semiMajorAxis<=0||t._semiMinorAxis<=0)return;const i=t._height,l=t._extrudedHeight,u=!y.CesiumMath.equalsEpsilon(i,l,0,y.CesiumMath.EPSILON2);t._center=t._ellipsoid.scaleToGeodeticSurface(t._center,t._center);const c={center:t._center,semiMajorAxis:t._semiMajorAxis,semiMinorAxis:t._semiMinorAxis,ellipsoid:t._ellipsoid,rotation:t._rotation,height:i,granularity:t._granularity,vertexFormat:t._vertexFormat,stRotation:t._stRotation};let d;if(u)c.extrudedHeight=l,c.shadowVolume=t._shadowVolume,c.offsetAttribute=t._offsetAttribute,d=O(c);else if(d=function(t){const i=t.center;V=r.Cartesian3.multiplyByScalar(t.ellipsoid.geodeticSurfaceNormal(i,V),t.height,V),V=r.Cartesian3.add(i,V,V);const n=new e.BoundingSphere(V,t.semiMajorAxis),o=a.EllipseGeometryLibrary.computeEllipsePositions(t,!0,!1),s=o.positions,l=o.numPts,u=P(s,t,!1);let m=v(l);return m=p.IndexDatatype.createTypedArray(s.length/3,m),{boundingSphere:n,attributes:u,indices:m}}(c),o.defined(t._offsetAttribute)){const e=d.attributes.position.values.length,i=t._offsetAttribute===m.GeometryOffsetAttribute.NONE?0:1,r=new Uint8Array(e/3).fill(i);d.attributes.applyOffset=new s.GeometryAttribute({componentDatatype:n.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:r})}return new s.Geometry({attributes:d.attributes,indices:d.indices,primitiveType:s.PrimitiveType.TRIANGLES,boundingSphere:d.boundingSphere,offsetAttribute:t._offsetAttribute})},L.createShadowVolume=function(t,e,i){const r=t._granularity,n=t._ellipsoid,o=e(r,n),a=i(r,n);return new L({center:t._center,semiMajorAxis:t._semiMajorAxis,semiMinorAxis:t._semiMinorAxis,ellipsoid:n,rotation:t._rotation,stRotation:t._stRotation,granularity:r,extrudedHeight:o,height:a,vertexFormat:d.VertexFormat.POSITION_ONLY,shadowVolume:!0})},Object.defineProperties(L.prototype,{rectangle:{get:function(){return o.defined(this._rectangle)||(this._rectangle=S(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return o.defined(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=function(t){const e=-t._stRotation;if(0===e)return[0,0,0,1,1,0];const i=a.EllipseGeometryLibrary.computeEllipsePositions({center:t._center,semiMajorAxis:t._semiMajorAxis,semiMinorAxis:t._semiMinorAxis,rotation:t._rotation,granularity:t._granularity},!1,!0).outerPositions,n=i.length/3,o=new Array(n);for(let t=0;t<n;++t)o[t]=r.Cartesian3.fromArray(i,3*t);const l=t._ellipsoid,u=t.rectangle;return s.Geometry._textureCoordinateRotationPoints(o,e,l,u)}(this)),this._textureCoordinateRotationPoints}}}),t.EllipseGeometry=L})); diff --git a/public/static/Cesium/Workers/EllipseGeometryLibrary-ddb4a715.js b/public/static/Cesium/Workers/EllipseGeometryLibrary-ddb4a715.js new file mode 100644 index 0000000..8f248a5 --- /dev/null +++ b/public/static/Cesium/Workers/EllipseGeometryLibrary-ddb4a715.js @@ -0,0 +1 @@ +define(["exports","./Matrix3-b2351961","./Math-355606c6","./Transforms-c842a68c"],(function(t,a,e,n){"use strict";const i={},r=new a.Cartesian3,s=new a.Cartesian3,o=new n.Quaternion,l=new a.Matrix3;function c(t,e,i,c,C,y,u,m,h,x){const M=t+e;a.Cartesian3.multiplyByScalar(c,Math.cos(M),r),a.Cartesian3.multiplyByScalar(i,Math.sin(M),s),a.Cartesian3.add(r,s,r);let z=Math.cos(t);z*=z;let f=Math.sin(t);f*=f;const _=y/Math.sqrt(u*z+C*f)/m;return n.Quaternion.fromAxisAngle(r,_,o),a.Matrix3.fromQuaternion(o,l),a.Matrix3.multiplyByVector(l,h,x),a.Cartesian3.normalize(x,x),a.Cartesian3.multiplyByScalar(x,m,x),x}const C=new a.Cartesian3,y=new a.Cartesian3,u=new a.Cartesian3,m=new a.Cartesian3;i.raisePositionsToHeight=function(t,e,n){const i=e.ellipsoid,r=e.height,s=e.extrudedHeight,o=n?t.length/3*2:t.length/3,l=new Float64Array(3*o),c=t.length,h=n?c:0;for(let e=0;e<c;e+=3){const o=e+1,c=e+2,x=a.Cartesian3.fromArray(t,e,C);i.scaleToGeodeticSurface(x,x);const M=a.Cartesian3.clone(x,y),z=i.geodeticSurfaceNormal(x,m),f=a.Cartesian3.multiplyByScalar(z,r,u);a.Cartesian3.add(x,f,x),n&&(a.Cartesian3.multiplyByScalar(z,s,f),a.Cartesian3.add(M,f,M),l[e+h]=M.x,l[o+h]=M.y,l[c+h]=M.z),l[e]=x.x,l[o]=x.y,l[c]=x.z}return l};const h=new a.Cartesian3,x=new a.Cartesian3,M=new a.Cartesian3;i.computeEllipsePositions=function(t,n,i){const r=t.semiMinorAxis,s=t.semiMajorAxis,o=t.rotation,l=t.center,m=8*t.granularity,z=r*r,f=s*s,_=s*r,O=a.Cartesian3.magnitude(l),d=a.Cartesian3.normalize(l,h);let p=a.Cartesian3.cross(a.Cartesian3.UNIT_Z,l,x);p=a.Cartesian3.normalize(p,p);const w=a.Cartesian3.cross(d,p,M);let P=1+Math.ceil(e.CesiumMath.PI_OVER_TWO/m);const T=e.CesiumMath.PI_OVER_TWO/(P-1);let I=e.CesiumMath.PI_OVER_TWO-P*T;I<0&&(P-=Math.ceil(Math.abs(I)/T));const g=n?new Array(3*(P*(P+2)*2)):void 0;let E=0,V=C,A=y;const R=4*P*3;let W=R-1,S=0;const B=i?new Array(R):void 0;let v,Q,b,G,H;for(I=e.CesiumMath.PI_OVER_TWO,V=c(I,o,w,p,z,_,f,O,d,V),n&&(g[E++]=V.x,g[E++]=V.y,g[E++]=V.z),i&&(B[W--]=V.z,B[W--]=V.y,B[W--]=V.x),I=e.CesiumMath.PI_OVER_TWO-T,v=1;v<P+1;++v){if(V=c(I,o,w,p,z,_,f,O,d,V),A=c(Math.PI-I,o,w,p,z,_,f,O,d,A),n){for(g[E++]=V.x,g[E++]=V.y,g[E++]=V.z,b=2*v+2,Q=1;Q<b-1;++Q)G=Q/(b-1),H=a.Cartesian3.lerp(V,A,G,u),g[E++]=H.x,g[E++]=H.y,g[E++]=H.z;g[E++]=A.x,g[E++]=A.y,g[E++]=A.z}i&&(B[W--]=V.z,B[W--]=V.y,B[W--]=V.x,B[S++]=A.x,B[S++]=A.y,B[S++]=A.z),I=e.CesiumMath.PI_OVER_TWO-(v+1)*T}for(v=P;v>1;--v){if(I=e.CesiumMath.PI_OVER_TWO-(v-1)*T,V=c(-I,o,w,p,z,_,f,O,d,V),A=c(I+Math.PI,o,w,p,z,_,f,O,d,A),n){for(g[E++]=V.x,g[E++]=V.y,g[E++]=V.z,b=2*(v-1)+2,Q=1;Q<b-1;++Q)G=Q/(b-1),H=a.Cartesian3.lerp(V,A,G,u),g[E++]=H.x,g[E++]=H.y,g[E++]=H.z;g[E++]=A.x,g[E++]=A.y,g[E++]=A.z}i&&(B[W--]=V.z,B[W--]=V.y,B[W--]=V.x,B[S++]=A.x,B[S++]=A.y,B[S++]=A.z)}I=e.CesiumMath.PI_OVER_TWO,V=c(-I,o,w,p,z,_,f,O,d,V);const N={};return n&&(g[E++]=V.x,g[E++]=V.y,g[E++]=V.z,N.positions=g,N.numPts=P),i&&(B[W--]=V.z,B[W--]=V.y,B[W--]=V.x,N.outerPositions=B),N};var z=i;t.EllipseGeometryLibrary=z})); diff --git a/public/static/Cesium/Workers/EllipseOutlineGeometry-176368f6.js b/public/static/Cesium/Workers/EllipseOutlineGeometry-176368f6.js new file mode 100644 index 0000000..5cf752f --- /dev/null +++ b/public/static/Cesium/Workers/EllipseOutlineGeometry-176368f6.js @@ -0,0 +1 @@ +define(["exports","./Transforms-c842a68c","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./EllipseGeometryLibrary-ddb4a715","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18","./Math-355606c6"],(function(e,t,i,r,n,o,a,s,l,u,d){"use strict";const c=new i.Cartesian3;let p=new i.Cartesian3;const f=new t.BoundingSphere,m=new t.BoundingSphere;function h(e){const t=(e=n.defaultValue(e,n.defaultValue.EMPTY_OBJECT)).center,r=n.defaultValue(e.ellipsoid,i.Ellipsoid.WGS84),o=e.semiMajorAxis,a=e.semiMinorAxis,s=n.defaultValue(e.granularity,d.CesiumMath.RADIANS_PER_DEGREE),l=n.defaultValue(e.height,0),u=n.defaultValue(e.extrudedHeight,l);this._center=i.Cartesian3.clone(t),this._semiMajorAxis=o,this._semiMinorAxis=a,this._ellipsoid=i.Ellipsoid.clone(r),this._rotation=n.defaultValue(e.rotation,0),this._height=Math.max(u,l),this._granularity=s,this._extrudedHeight=Math.min(u,l),this._numberOfVerticalLines=Math.max(n.defaultValue(e.numberOfVerticalLines,16),0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}h.packedLength=i.Cartesian3.packedLength+i.Ellipsoid.packedLength+8,h.pack=function(e,t,r){return r=n.defaultValue(r,0),i.Cartesian3.pack(e._center,t,r),r+=i.Cartesian3.packedLength,i.Ellipsoid.pack(e._ellipsoid,t,r),r+=i.Ellipsoid.packedLength,t[r++]=e._semiMajorAxis,t[r++]=e._semiMinorAxis,t[r++]=e._rotation,t[r++]=e._height,t[r++]=e._granularity,t[r++]=e._extrudedHeight,t[r++]=e._numberOfVerticalLines,t[r]=n.defaultValue(e._offsetAttribute,-1),t};const y=new i.Cartesian3,A=new i.Ellipsoid,_={center:y,ellipsoid:A,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};h.unpack=function(e,t,r){t=n.defaultValue(t,0);const o=i.Cartesian3.unpack(e,t,y);t+=i.Cartesian3.packedLength;const a=i.Ellipsoid.unpack(e,t,A);t+=i.Ellipsoid.packedLength;const s=e[t++],l=e[t++],u=e[t++],d=e[t++],c=e[t++],p=e[t++],f=e[t++],m=e[t];return n.defined(r)?(r._center=i.Cartesian3.clone(o,r._center),r._ellipsoid=i.Ellipsoid.clone(a,r._ellipsoid),r._semiMajorAxis=s,r._semiMinorAxis=l,r._rotation=u,r._height=d,r._granularity=c,r._extrudedHeight=p,r._numberOfVerticalLines=f,r._offsetAttribute=-1===m?void 0:m,r):(_.height=d,_.extrudedHeight=p,_.granularity=c,_.rotation=u,_.semiMajorAxis=s,_.semiMinorAxis=l,_.numberOfVerticalLines=f,_.offsetAttribute=-1===m?void 0:m,new h(_))},h.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;const h=e._height,y=e._extrudedHeight,A=!d.CesiumMath.equalsEpsilon(h,y,0,d.CesiumMath.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);const _={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:h,granularity:e._granularity,numberOfVerticalLines:e._numberOfVerticalLines};let b;if(A)_.extrudedHeight=y,_.offsetAttribute=e._offsetAttribute,b=function(e){const p=e.center,h=e.ellipsoid,y=e.semiMajorAxis;let A=i.Cartesian3.multiplyByScalar(h.geodeticSurfaceNormal(p,c),e.height,c);f.center=i.Cartesian3.add(p,A,f.center),f.radius=y,A=i.Cartesian3.multiplyByScalar(h.geodeticSurfaceNormal(p,A),e.extrudedHeight,A),m.center=i.Cartesian3.add(p,A,m.center),m.radius=y;let _=o.EllipseGeometryLibrary.computeEllipsePositions(e,!1,!0).outerPositions;const b=new s.GeometryAttributes({position:new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:o.EllipseGeometryLibrary.raisePositionsToHeight(_,e,!0)})});_=b.position.values;const g=t.BoundingSphere.union(f,m);let x=_.length/3;if(n.defined(e.offsetAttribute)){let t=new Uint8Array(x);if(e.offsetAttribute===l.GeometryOffsetAttribute.TOP)t=t.fill(1,0,x/2);else{const i=e.offsetAttribute===l.GeometryOffsetAttribute.NONE?0:1;t=t.fill(i)}b.applyOffset=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:t})}let E=n.defaultValue(e.numberOfVerticalLines,16);E=d.CesiumMath.clamp(E,0,x/2);const M=u.IndexDatatype.createTypedArray(x,2*x+2*E);x/=2;let C,G,L=0;for(C=0;C<x;++C)M[L++]=C,M[L++]=(C+1)%x,M[L++]=C+x,M[L++]=(C+1)%x+x;if(E>0){const e=Math.min(E,x);G=Math.round(x/e);const t=Math.min(G*E,x);for(C=0;C<t;C+=G)M[L++]=C,M[L++]=C+x}return{boundingSphere:g,attributes:b,indices:M}}(_);else if(b=function(e){const n=e.center;p=i.Cartesian3.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(n,p),e.height,p),p=i.Cartesian3.add(n,p,p);const l=new t.BoundingSphere(p,e.semiMajorAxis),d=o.EllipseGeometryLibrary.computeEllipsePositions(e,!1,!0).outerPositions,c=new s.GeometryAttributes({position:new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:o.EllipseGeometryLibrary.raisePositionsToHeight(d,e,!1)})}),f=d.length/3,m=u.IndexDatatype.createTypedArray(f,2*f);let h=0;for(let e=0;e<f;++e)m[h++]=e,m[h++]=(e+1)%f;return{boundingSphere:l,attributes:c,indices:m}}(_),n.defined(e._offsetAttribute)){const t=b.attributes.position.values.length,i=e._offsetAttribute===l.GeometryOffsetAttribute.NONE?0:1,n=new Uint8Array(t/3).fill(i);b.attributes.applyOffset=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:n})}return new a.Geometry({attributes:b.attributes,indices:b.indices,primitiveType:a.PrimitiveType.LINES,boundingSphere:b.boundingSphere,offsetAttribute:e._offsetAttribute})},e.EllipseOutlineGeometry=h})); diff --git a/public/static/Cesium/Workers/EllipsoidGeodesic-20aaff03.js b/public/static/Cesium/Workers/EllipsoidGeodesic-20aaff03.js new file mode 100644 index 0000000..b3755fd --- /dev/null +++ b/public/static/Cesium/Workers/EllipsoidGeodesic-20aaff03.js @@ -0,0 +1 @@ +define(["exports","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Math-355606c6"],(function(t,a,i,n){"use strict";function e(t,a,i,n,e,s,o){const r=function(t,a){return t*a*(4+t*(4-3*a))/16}(t,i);return(1-r)*t*a*(n+r*e*(o+r*s*(2*o*o-1)))}const s=new a.Cartesian3,o=new a.Cartesian3;function r(t,i,r,h){a.Cartesian3.normalize(h.cartographicToCartesian(i,o),s),a.Cartesian3.normalize(h.cartographicToCartesian(r,o),o),function(t,a,i,s,o,r,h){const c=(a-i)/a,d=r-s,u=Math.atan((1-c)*Math.tan(o)),l=Math.atan((1-c)*Math.tan(h)),M=Math.cos(u),g=Math.sin(u),_=Math.cos(l),p=Math.sin(l),f=M*_,m=M*p,H=g*p,C=g*_;let v,O,S,q,U,A=d,w=n.CesiumMath.TWO_PI,R=Math.cos(A),b=Math.sin(A);do{R=Math.cos(A),b=Math.sin(A);const t=m-C*R;let a;S=Math.sqrt(_*_*b*b+t*t),O=H+f*R,v=Math.atan2(S,O),0===S?(a=0,q=1):(a=f*b/S,q=1-a*a),w=A,U=O-2*H/q,isFinite(U)||(U=0),A=d+e(c,a,q,v,S,O,U)}while(Math.abs(A-w)>n.CesiumMath.EPSILON12);const x=q*(a*a-i*i)/(i*i),y=x*(256+x*(x*(74-47*x)-128))/1024,E=U*U,P=i*(1+x*(4096+x*(x*(320-175*x)-768))/16384)*(v-y*S*(U+y*(O*(2*E-1)-y*U*(4*S*S-3)*(4*E-3)/6)/4)),D=Math.atan2(_*b,m-C*R),T=Math.atan2(M*b,m*R-C);t._distance=P,t._startHeading=D,t._endHeading=T,t._uSquared=x}(t,h.maximumRadius,h.minimumRadius,i.longitude,i.latitude,r.longitude,r.latitude),t._start=a.Cartographic.clone(i,t._start),t._end=a.Cartographic.clone(r,t._end),t._start.height=0,t._end.height=0,function(t){const a=t._uSquared,i=t._ellipsoid.maximumRadius,n=t._ellipsoid.minimumRadius,e=(i-n)/i,s=Math.cos(t._startHeading),o=Math.sin(t._startHeading),r=(1-e)*Math.tan(t._start.latitude),h=1/Math.sqrt(1+r*r),c=h*r,d=Math.atan2(r,s),u=h*o,l=u*u,M=1-l,g=Math.sqrt(M),_=a/4,p=_*_,f=p*_,m=p*p,H=1+_-3*p/4+5*f/4-175*m/64,C=1-_+15*p/8-35*f/8,v=1-3*_+35*p/4,O=1-5*_,S=H*d-C*Math.sin(2*d)*_/2-v*Math.sin(4*d)*p/16-O*Math.sin(6*d)*f/48-5*Math.sin(8*d)*m/512,q=t._constants;q.a=i,q.b=n,q.f=e,q.cosineHeading=s,q.sineHeading=o,q.tanU=r,q.cosineU=h,q.sineU=c,q.sigma=d,q.sineAlpha=u,q.sineSquaredAlpha=l,q.cosineSquaredAlpha=M,q.cosineAlpha=g,q.u2Over4=_,q.u4Over16=p,q.u6Over64=f,q.u8Over256=m,q.a0=H,q.a1=C,q.a2=v,q.a3=O,q.distanceRatio=S}(t)}function h(t,n,e){const s=i.defaultValue(e,a.Ellipsoid.WGS84);this._ellipsoid=s,this._start=new a.Cartographic,this._end=new a.Cartographic,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,i.defined(t)&&i.defined(n)&&r(this,t,n,s)}Object.defineProperties(h.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}}),h.prototype.setEndPoints=function(t,a){r(this,t,a,this._ellipsoid)},h.prototype.interpolateUsingFraction=function(t,a){return this.interpolateUsingSurfaceDistance(this._distance*t,a)},h.prototype.interpolateUsingSurfaceDistance=function(t,n){const s=this._constants,o=s.distanceRatio+t/s.b,r=Math.cos(2*o),h=Math.cos(4*o),c=Math.cos(6*o),d=Math.sin(2*o),u=Math.sin(4*o),l=Math.sin(6*o),M=Math.sin(8*o),g=o*o,_=o*g,p=s.u8Over256,f=s.u2Over4,m=s.u6Over64,H=s.u4Over16;let C=2*_*p*r/3+o*(1-f+7*H/4-15*m/4+579*p/64-(H-15*m/4+187*p/16)*r-(5*m/4-115*p/16)*h-29*p*c/16)+(f/2-H+71*m/32-85*p/16)*d+(5*H/16-5*m/4+383*p/96)*u-g*((m-11*p/2)*d+5*p*u/2)+(29*m/96-29*p/16)*l+539*p*M/1536;const v=Math.asin(Math.sin(C)*s.cosineAlpha),O=Math.atan(s.a/s.b*Math.tan(v));C-=s.sigma;const S=Math.cos(2*s.sigma+C),q=Math.sin(C),U=Math.cos(C),A=s.cosineU*U,w=s.sineU*q,R=Math.atan2(q*s.sineHeading,A-w*s.cosineHeading)-e(s.f,s.sineAlpha,s.cosineSquaredAlpha,C,q,U,S);return i.defined(n)?(n.longitude=this._start.longitude+R,n.latitude=O,n.height=0,n):new a.Cartographic(this._start.longitude+R,O,0)},t.EllipsoidGeodesic=h})); diff --git a/public/static/Cesium/Workers/EllipsoidGeometry-52c7b814.js b/public/static/Cesium/Workers/EllipsoidGeometry-52c7b814.js new file mode 100644 index 0000000..3ead307 --- /dev/null +++ b/public/static/Cesium/Workers/EllipsoidGeometry-52c7b814.js @@ -0,0 +1 @@ +define(["exports","./Transforms-c842a68c","./Matrix2-7a8e9daf","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18","./Math-355606c6","./VertexFormat-fbdec922"],(function(t,e,a,n,i,r,o,s,m,u,l,c){"use strict";const f=new n.Cartesian3,d=new n.Cartesian3,C=new n.Cartesian3,p=new n.Cartesian3,y=new n.Cartesian3,_=new n.Cartesian3(1,1,1),h=Math.cos,x=Math.sin;function A(t){t=r.defaultValue(t,r.defaultValue.EMPTY_OBJECT);const e=r.defaultValue(t.radii,_),a=r.defaultValue(t.innerRadii,e),i=r.defaultValue(t.minimumClock,0),o=r.defaultValue(t.maximumClock,l.CesiumMath.TWO_PI),s=r.defaultValue(t.minimumCone,0),m=r.defaultValue(t.maximumCone,l.CesiumMath.PI),u=Math.round(r.defaultValue(t.stackPartitions,64)),f=Math.round(r.defaultValue(t.slicePartitions,64)),d=r.defaultValue(t.vertexFormat,c.VertexFormat.DEFAULT);this._radii=n.Cartesian3.clone(e),this._innerRadii=n.Cartesian3.clone(a),this._minimumClock=i,this._maximumClock=o,this._minimumCone=s,this._maximumCone=m,this._stackPartitions=u,this._slicePartitions=f,this._vertexFormat=c.VertexFormat.clone(d),this._offsetAttribute=t.offsetAttribute,this._workerName="createEllipsoidGeometry"}A.packedLength=2*n.Cartesian3.packedLength+c.VertexFormat.packedLength+7,A.pack=function(t,e,a){return a=r.defaultValue(a,0),n.Cartesian3.pack(t._radii,e,a),a+=n.Cartesian3.packedLength,n.Cartesian3.pack(t._innerRadii,e,a),a+=n.Cartesian3.packedLength,c.VertexFormat.pack(t._vertexFormat,e,a),a+=c.VertexFormat.packedLength,e[a++]=t._minimumClock,e[a++]=t._maximumClock,e[a++]=t._minimumCone,e[a++]=t._maximumCone,e[a++]=t._stackPartitions,e[a++]=t._slicePartitions,e[a]=r.defaultValue(t._offsetAttribute,-1),e};const k=new n.Cartesian3,b=new n.Cartesian3,w=new c.VertexFormat,g={radii:k,innerRadii:b,vertexFormat:w,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};let P;A.unpack=function(t,e,a){e=r.defaultValue(e,0);const i=n.Cartesian3.unpack(t,e,k);e+=n.Cartesian3.packedLength;const o=n.Cartesian3.unpack(t,e,b);e+=n.Cartesian3.packedLength;const s=c.VertexFormat.unpack(t,e,w);e+=c.VertexFormat.packedLength;const m=t[e++],u=t[e++],l=t[e++],f=t[e++],d=t[e++],C=t[e++],p=t[e];return r.defined(a)?(a._radii=n.Cartesian3.clone(i,a._radii),a._innerRadii=n.Cartesian3.clone(o,a._innerRadii),a._vertexFormat=c.VertexFormat.clone(s,a._vertexFormat),a._minimumClock=m,a._maximumClock=u,a._minimumCone=l,a._maximumCone=f,a._stackPartitions=d,a._slicePartitions=C,a._offsetAttribute=-1===p?void 0:p,a):(g.minimumClock=m,g.maximumClock=u,g.minimumCone=l,g.maximumCone=f,g.stackPartitions=d,g.slicePartitions=C,g.offsetAttribute=-1===p?void 0:p,new A(g))},A.createGeometry=function(t){const c=t._radii;if(c.x<=0||c.y<=0||c.z<=0)return;const _=t._innerRadii;if(_.x<=0||_.y<=0||_.z<=0)return;const A=t._minimumClock,k=t._maximumClock,b=t._minimumCone,w=t._maximumCone,g=t._vertexFormat;let P,v,F=t._slicePartitions+1,V=t._stackPartitions+1;F=Math.round(F*Math.abs(k-A)/l.CesiumMath.TWO_PI),V=Math.round(V*Math.abs(w-b)/l.CesiumMath.PI),F<2&&(F=2),V<2&&(V=2);let M=0;const T=[b],D=[A];for(P=0;P<V;P++)T.push(b+P*(w-b)/(V-1));for(T.push(w),v=0;v<F;v++)D.push(A+v*(k-A)/(F-1));D.push(k);const G=T.length,L=D.length;let O=0,I=1;const E=_.x!==c.x||_.y!==c.y||_.z!==c.z;let z=!1,N=!1,R=!1;E&&(I=2,b>0&&(z=!0,O+=F-1),w<Math.PI&&(N=!0,O+=F-1),(k-A)%l.CesiumMath.TWO_PI?(R=!0,O+=2*(V-1)+1):O+=1);const U=L*G*I,S=new Float64Array(3*U),B=new Array(U).fill(!1),W=new Array(U).fill(!1),Y=F*V*I,J=6*(Y+O+1-(F+V)*I),X=u.IndexDatatype.createTypedArray(Y,J),Z=g.normal?new Float32Array(3*U):void 0,j=g.tangent?new Float32Array(3*U):void 0,q=g.bitangent?new Float32Array(3*U):void 0,H=g.st?new Float32Array(2*U):void 0,K=new Array(G),Q=new Array(G);for(P=0;P<G;P++)K[P]=x(T[P]),Q[P]=h(T[P]);const $=new Array(L),tt=new Array(L);for(v=0;v<L;v++)tt[v]=h(D[v]),$[v]=x(D[v]);for(P=0;P<G;P++)for(v=0;v<L;v++)S[M++]=c.x*K[P]*tt[v],S[M++]=c.y*K[P]*$[v],S[M++]=c.z*Q[P];let et,at,nt,it,rt=U/2;if(E)for(P=0;P<G;P++)for(v=0;v<L;v++)S[M++]=_.x*K[P]*tt[v],S[M++]=_.y*K[P]*$[v],S[M++]=_.z*Q[P],B[rt]=!0,P>0&&P!==G-1&&0!==v&&v!==L-1&&(W[rt]=!0),rt++;for(M=0,P=1;P<G-2;P++)for(et=P*L,at=(P+1)*L,v=1;v<L-2;v++)X[M++]=at+v,X[M++]=at+v+1,X[M++]=et+v+1,X[M++]=at+v,X[M++]=et+v+1,X[M++]=et+v;if(E){const t=G*L;for(P=1;P<G-2;P++)for(et=t+P*L,at=t+(P+1)*L,v=1;v<L-2;v++)X[M++]=at+v,X[M++]=et+v,X[M++]=et+v+1,X[M++]=at+v,X[M++]=et+v+1,X[M++]=at+v+1}if(E){if(z)for(it=G*L,P=1;P<L-2;P++)X[M++]=P,X[M++]=P+1,X[M++]=it+P+1,X[M++]=P,X[M++]=it+P+1,X[M++]=it+P;if(N)for(nt=G*L-L,it=G*L*I-L,P=1;P<L-2;P++)X[M++]=nt+P+1,X[M++]=nt+P,X[M++]=it+P,X[M++]=nt+P+1,X[M++]=it+P,X[M++]=it+P+1}if(R){for(P=1;P<G-2;P++)it=L*G+L*P,nt=L*P,X[M++]=it,X[M++]=nt+L,X[M++]=nt,X[M++]=it,X[M++]=it+L,X[M++]=nt+L;for(P=1;P<G-2;P++)it=L*G+L*(P+1)-1,nt=L*(P+1)-1,X[M++]=nt+L,X[M++]=it,X[M++]=nt,X[M++]=nt+L,X[M++]=it+L,X[M++]=it}const ot=new s.GeometryAttributes;g.position&&(ot.position=new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:S}));let st=0,mt=0,ut=0,lt=0;const ct=U/2;let ft;const dt=n.Ellipsoid.fromCartesian3(c),Ct=n.Ellipsoid.fromCartesian3(_);if(g.st||g.normal||g.tangent||g.bitangent){for(P=0;P<U;P++){ft=B[P]?Ct:dt;const t=n.Cartesian3.fromArray(S,3*P,f),e=ft.geodeticSurfaceNormal(t,d);if(W[P]&&n.Cartesian3.negate(e,e),g.st){const t=a.Cartesian2.negate(e,y);H[st++]=Math.atan2(t.y,t.x)/l.CesiumMath.TWO_PI+.5,H[st++]=Math.asin(e.z)/Math.PI+.5}if(g.normal&&(Z[mt++]=e.x,Z[mt++]=e.y,Z[mt++]=e.z),g.tangent||g.bitangent){const t=C;let a,i=0;if(B[P]&&(i=ct),a=!z&&P>=i&&P<i+2*L?n.Cartesian3.UNIT_X:n.Cartesian3.UNIT_Z,n.Cartesian3.cross(a,e,t),n.Cartesian3.normalize(t,t),g.tangent&&(j[ut++]=t.x,j[ut++]=t.y,j[ut++]=t.z),g.bitangent){const a=n.Cartesian3.cross(e,t,p);n.Cartesian3.normalize(a,a),q[lt++]=a.x,q[lt++]=a.y,q[lt++]=a.z}}}g.st&&(ot.st=new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:H})),g.normal&&(ot.normal=new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:Z})),g.tangent&&(ot.tangent=new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:j})),g.bitangent&&(ot.bitangent=new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:q}))}if(r.defined(t._offsetAttribute)){const e=S.length,a=t._offsetAttribute===m.GeometryOffsetAttribute.NONE?0:1,n=new Uint8Array(e/3).fill(a);ot.applyOffset=new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:n})}return new o.Geometry({attributes:ot,indices:X,primitiveType:o.PrimitiveType.TRIANGLES,boundingSphere:e.BoundingSphere.fromEllipsoid(dt),offsetAttribute:t._offsetAttribute})},A.getUnitEllipsoid=function(){return r.defined(P)||(P=A.createGeometry(new A({radii:new n.Cartesian3(1,1,1),vertexFormat:c.VertexFormat.POSITION_ONLY}))),P},t.EllipsoidGeometry=A})); diff --git a/public/static/Cesium/Workers/EllipsoidOutlineGeometry-0505e9e1.js b/public/static/Cesium/Workers/EllipsoidOutlineGeometry-0505e9e1.js new file mode 100644 index 0000000..185ad8d --- /dev/null +++ b/public/static/Cesium/Workers/EllipsoidOutlineGeometry-0505e9e1.js @@ -0,0 +1 @@ +define(["exports","./Transforms-c842a68c","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18","./Math-355606c6"],(function(t,i,e,n,a,o,r,s,u,m){"use strict";const l=new e.Cartesian3(1,1,1),f=Math.cos,c=Math.sin;function d(t){t=a.defaultValue(t,a.defaultValue.EMPTY_OBJECT);const i=a.defaultValue(t.radii,l),n=a.defaultValue(t.innerRadii,i),o=a.defaultValue(t.minimumClock,0),r=a.defaultValue(t.maximumClock,m.CesiumMath.TWO_PI),s=a.defaultValue(t.minimumCone,0),u=a.defaultValue(t.maximumCone,m.CesiumMath.PI),f=Math.round(a.defaultValue(t.stackPartitions,10)),c=Math.round(a.defaultValue(t.slicePartitions,8)),d=Math.round(a.defaultValue(t.subdivisions,128));this._radii=e.Cartesian3.clone(i),this._innerRadii=e.Cartesian3.clone(n),this._minimumClock=o,this._maximumClock=r,this._minimumCone=s,this._maximumCone=u,this._stackPartitions=f,this._slicePartitions=c,this._subdivisions=d,this._offsetAttribute=t.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}d.packedLength=2*e.Cartesian3.packedLength+8,d.pack=function(t,i,n){return n=a.defaultValue(n,0),e.Cartesian3.pack(t._radii,i,n),n+=e.Cartesian3.packedLength,e.Cartesian3.pack(t._innerRadii,i,n),n+=e.Cartesian3.packedLength,i[n++]=t._minimumClock,i[n++]=t._maximumClock,i[n++]=t._minimumCone,i[n++]=t._maximumCone,i[n++]=t._stackPartitions,i[n++]=t._slicePartitions,i[n++]=t._subdivisions,i[n]=a.defaultValue(t._offsetAttribute,-1),i};const C=new e.Cartesian3,_=new e.Cartesian3,p={radii:C,innerRadii:_,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};d.unpack=function(t,i,n){i=a.defaultValue(i,0);const o=e.Cartesian3.unpack(t,i,C);i+=e.Cartesian3.packedLength;const r=e.Cartesian3.unpack(t,i,_);i+=e.Cartesian3.packedLength;const s=t[i++],u=t[i++],m=t[i++],l=t[i++],f=t[i++],c=t[i++],h=t[i++],y=t[i];return a.defined(n)?(n._radii=e.Cartesian3.clone(o,n._radii),n._innerRadii=e.Cartesian3.clone(r,n._innerRadii),n._minimumClock=s,n._maximumClock=u,n._minimumCone=m,n._maximumCone=l,n._stackPartitions=f,n._slicePartitions=c,n._subdivisions=h,n._offsetAttribute=-1===y?void 0:y,n):(p.minimumClock=s,p.maximumClock=u,p.minimumCone=m,p.maximumCone=l,p.stackPartitions=f,p.slicePartitions=c,p.subdivisions=h,p.offsetAttribute=-1===y?void 0:y,new d(p))},d.createGeometry=function(t){const l=t._radii;if(l.x<=0||l.y<=0||l.z<=0)return;const d=t._innerRadii;if(d.x<=0||d.y<=0||d.z<=0)return;const C=t._minimumClock,_=t._maximumClock,p=t._minimumCone,h=t._maximumCone,y=t._subdivisions,k=e.Ellipsoid.fromCartesian3(l);let b=t._slicePartitions+1,x=t._stackPartitions+1;b=Math.round(b*Math.abs(_-C)/m.CesiumMath.TWO_PI),x=Math.round(x*Math.abs(h-p)/m.CesiumMath.PI),b<2&&(b=2),x<2&&(x=2);let A=0,P=1;const v=d.x!==l.x||d.y!==l.y||d.z!==l.z;let M=!1,w=!1;v&&(P=2,p>0&&(M=!0,A+=b),h<Math.PI&&(w=!0,A+=b));const V=y*P*(x+b),g=new Float64Array(3*V),G=2*(V+A-(b+x)*P),E=u.IndexDatatype.createTypedArray(V,G);let O,D,I,T,z=0;const L=new Array(x),R=new Array(x);for(O=0;O<x;O++)T=p+O*(h-p)/(x-1),L[O]=c(T),R[O]=f(T);const N=new Array(y),B=new Array(y);for(O=0;O<y;O++)I=C+O*(_-C)/(y-1),N[O]=c(I),B[O]=f(I);for(O=0;O<x;O++)for(D=0;D<y;D++)g[z++]=l.x*L[O]*B[D],g[z++]=l.y*L[O]*N[D],g[z++]=l.z*R[O];if(v)for(O=0;O<x;O++)for(D=0;D<y;D++)g[z++]=d.x*L[O]*B[D],g[z++]=d.y*L[O]*N[D],g[z++]=d.z*R[O];for(L.length=y,R.length=y,O=0;O<y;O++)T=p+O*(h-p)/(y-1),L[O]=c(T),R[O]=f(T);for(N.length=b,B.length=b,O=0;O<b;O++)I=C+O*(_-C)/(b-1),N[O]=c(I),B[O]=f(I);for(O=0;O<y;O++)for(D=0;D<b;D++)g[z++]=l.x*L[O]*B[D],g[z++]=l.y*L[O]*N[D],g[z++]=l.z*R[O];if(v)for(O=0;O<y;O++)for(D=0;D<b;D++)g[z++]=d.x*L[O]*B[D],g[z++]=d.y*L[O]*N[D],g[z++]=d.z*R[O];for(z=0,O=0;O<x*P;O++){const t=O*y;for(D=0;D<y-1;D++)E[z++]=t+D,E[z++]=t+D+1}let S=x*y*P;for(O=0;O<b;O++)for(D=0;D<y-1;D++)E[z++]=S+O+D*b,E[z++]=S+O+(D+1)*b;if(v)for(S=x*y*P+b*y,O=0;O<b;O++)for(D=0;D<y-1;D++)E[z++]=S+O+D*b,E[z++]=S+O+(D+1)*b;if(v){let t=x*y*P,i=t+y*b;if(M)for(O=0;O<b;O++)E[z++]=t+O,E[z++]=i+O;if(w)for(t+=y*b-b,i+=y*b-b,O=0;O<b;O++)E[z++]=t+O,E[z++]=i+O}const U=new r.GeometryAttributes({position:new o.GeometryAttribute({componentDatatype:n.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:g})});if(a.defined(t._offsetAttribute)){const i=g.length,e=t._offsetAttribute===s.GeometryOffsetAttribute.NONE?0:1,a=new Uint8Array(i/3).fill(e);U.applyOffset=new o.GeometryAttribute({componentDatatype:n.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:a})}return new o.Geometry({attributes:U,indices:E,primitiveType:o.PrimitiveType.LINES,boundingSphere:i.BoundingSphere.fromEllipsoid(k),offsetAttribute:t._offsetAttribute})},t.EllipsoidOutlineGeometry=d})); diff --git a/public/static/Cesium/Workers/EllipsoidRhumbLine-1289f7e8.js b/public/static/Cesium/Workers/EllipsoidRhumbLine-1289f7e8.js new file mode 100644 index 0000000..cfd87c3 --- /dev/null +++ b/public/static/Cesium/Workers/EllipsoidRhumbLine-1289f7e8.js @@ -0,0 +1 @@ +define(["exports","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Math-355606c6"],(function(t,i,e,a){"use strict";function n(t,i,e){if(0===t)return i*e;const a=t*t,n=a*a,s=n*a,h=s*a,u=h*a,o=u*a,l=e;return i*((1-a/4-3*n/64-5*s/256-175*h/16384-441*u/65536-4851*o/1048576)*l-(3*a/8+3*n/32+45*s/1024+105*h/4096+2205*u/131072+6237*o/524288)*Math.sin(2*l)+(15*n/256+45*s/1024+525*h/16384+1575*u/65536+155925*o/8388608)*Math.sin(4*l)-(35*s/3072+175*h/12288+3675*u/262144+13475*o/1048576)*Math.sin(6*l)+(315*h/131072+2205*u/524288+43659*o/8388608)*Math.sin(8*l)-(693*u/1310720+6237*o/5242880)*Math.sin(10*l)+1001*o/8388608*Math.sin(12*l))}function s(t,i){if(0===t)return Math.log(Math.tan(.5*(a.CesiumMath.PI_OVER_TWO+i)));const e=t*Math.sin(i);return Math.log(Math.tan(.5*(a.CesiumMath.PI_OVER_TWO+i)))-t/2*Math.log((1+e)/(1-e))}const h=new i.Cartesian3,u=new i.Cartesian3;function o(t,e,o,l){i.Cartesian3.normalize(l.cartographicToCartesian(e,u),h),i.Cartesian3.normalize(l.cartographicToCartesian(o,u),u);const r=l.maximumRadius,d=l.minimumRadius,c=r*r,M=d*d;t._ellipticitySquared=(c-M)/c,t._ellipticity=Math.sqrt(t._ellipticitySquared),t._start=i.Cartographic.clone(e,t._start),t._start.height=0,t._end=i.Cartographic.clone(o,t._end),t._end.height=0,t._heading=function(t,i,e,n,h){const u=s(t._ellipticity,e),o=s(t._ellipticity,h);return Math.atan2(a.CesiumMath.negativePiToPi(n-i),o-u)}(t,e.longitude,e.latitude,o.longitude,o.latitude),t._distance=function(t,i,e,s,h,u,o){const l=t._heading,r=u-s;let d=0;if(a.CesiumMath.equalsEpsilon(Math.abs(l),a.CesiumMath.PI_OVER_TWO,a.CesiumMath.EPSILON8))if(i===e)d=i*Math.cos(h)*a.CesiumMath.negativePiToPi(r);else{const e=Math.sin(h);d=i*Math.cos(h)*a.CesiumMath.negativePiToPi(r)/Math.sqrt(1-t._ellipticitySquared*e*e)}else{const e=n(t._ellipticity,i,h);d=(n(t._ellipticity,i,o)-e)/Math.cos(l)}return Math.abs(d)}(t,l.maximumRadius,l.minimumRadius,e.longitude,e.latitude,o.longitude,o.latitude)}function l(t,h,u,o,l,r){if(0===u)return i.Cartographic.clone(t,r);const d=l*l;let c,M,g;if(Math.abs(a.CesiumMath.PI_OVER_TWO-Math.abs(h))>a.CesiumMath.EPSILON8){M=function(t,i,e){const a=t/e;if(0===i)return a;const n=a*a,s=n*a,h=s*a,u=i*i,o=u*u,l=o*u,r=l*u,d=r*u,c=d*u,M=Math.sin(2*a),g=Math.cos(2*a),m=Math.sin(4*a),_=Math.cos(4*a),p=Math.sin(6*a),C=Math.cos(6*a),f=Math.sin(8*a),P=Math.cos(8*a),O=Math.sin(10*a);return a+a*u/4+7*a*o/64+15*a*l/256+579*a*r/16384+1515*a*d/65536+16837*a*c/1048576+(3*a*o/16+45*a*l/256-a*(32*n-561)*r/4096-a*(232*n-1677)*d/16384+a*(399985-90560*n+512*h)*c/5242880)*g+(21*a*l/256+483*a*r/4096-a*(224*n-1969)*d/16384-a*(33152*n-112599)*c/1048576)*_+(151*a*r/4096+4681*a*d/65536+1479*a*c/16384-453*s*c/32768)*C+(1097*a*d/65536+42783*a*c/1048576)*P+8011*a*c/1048576*Math.cos(10*a)+(3*u/8+3*o/16+213*l/2048-3*n*l/64+255*r/4096-33*n*r/512+20861*d/524288-33*n*d/512+h*d/1024+28273*c/1048576-471*n*c/8192+9*h*c/4096)*M+(21*o/256+21*l/256+533*r/8192-21*n*r/512+197*d/4096-315*n*d/4096+584039*c/16777216-12517*n*c/131072+7*h*c/2048)*m+(151*l/6144+151*r/4096+5019*d/131072-453*n*d/16384+26965*c/786432-8607*n*c/131072)*p+(1097*r/131072+1097*d/65536+225797*c/10485760-1097*n*c/65536)*f+(8011*d/2621440+8011*c/1048576)*O+293393*c/251658240*Math.sin(12*a)}(n(l,o,t.latitude)+u*Math.cos(h),l,o);const i=s(l,t.latitude),e=s(l,M);g=Math.tan(h)*(e-i),c=a.CesiumMath.negativePiToPi(t.longitude+g)}else{let i;if(M=t.latitude,0===l)i=o*Math.cos(t.latitude);else{const e=Math.sin(t.latitude);i=o*Math.cos(t.latitude)/Math.sqrt(1-d*e*e)}g=u/i,c=h>0?a.CesiumMath.negativePiToPi(t.longitude+g):a.CesiumMath.negativePiToPi(t.longitude-g)}return e.defined(r)?(r.longitude=c,r.latitude=M,r.height=0,r):new i.Cartographic(c,M,0)}function r(t,a,n){const s=e.defaultValue(n,i.Ellipsoid.WGS84);this._ellipsoid=s,this._start=new i.Cartographic,this._end=new i.Cartographic,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,e.defined(t)&&e.defined(a)&&o(this,t,a,s)}Object.defineProperties(r.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),r.fromStartHeadingDistance=function(t,n,s,h,u){const o=e.defaultValue(h,i.Ellipsoid.WGS84),d=o.maximumRadius,c=o.minimumRadius,M=d*d,g=c*c,m=Math.sqrt((M-g)/M),_=l(t,n=a.CesiumMath.negativePiToPi(n),s,o.maximumRadius,m);return!e.defined(u)||e.defined(h)&&!h.equals(u.ellipsoid)?new r(t,_,o):(u.setEndPoints(t,_),u)},r.prototype.setEndPoints=function(t,i){o(this,t,i,this._ellipsoid)},r.prototype.interpolateUsingFraction=function(t,i){return this.interpolateUsingSurfaceDistance(t*this._distance,i)},r.prototype.interpolateUsingSurfaceDistance=function(t,i){return l(this._start,this._heading,t,this._ellipsoid.maximumRadius,this._ellipticity,i)},r.prototype.findIntersectionWithLongitude=function(t,n){const s=this._ellipticity,h=this._heading,u=Math.abs(h),o=this._start;if(t=a.CesiumMath.negativePiToPi(t),a.CesiumMath.equalsEpsilon(Math.abs(t),Math.PI,a.CesiumMath.EPSILON14)&&(t=a.CesiumMath.sign(o.longitude)*Math.PI),e.defined(n)||(n=new i.Cartographic),Math.abs(a.CesiumMath.PI_OVER_TWO-u)<=a.CesiumMath.EPSILON8)return n.longitude=t,n.latitude=o.latitude,n.height=0,n;if(a.CesiumMath.equalsEpsilon(Math.abs(a.CesiumMath.PI_OVER_TWO-u),a.CesiumMath.PI_OVER_TWO,a.CesiumMath.EPSILON8)){if(a.CesiumMath.equalsEpsilon(t,o.longitude,a.CesiumMath.EPSILON12))return;return n.longitude=t,n.latitude=a.CesiumMath.PI_OVER_TWO*a.CesiumMath.sign(a.CesiumMath.PI_OVER_TWO-h),n.height=0,n}const l=o.latitude,r=s*Math.sin(l),d=Math.tan(.5*(a.CesiumMath.PI_OVER_TWO+l))*Math.exp((t-o.longitude)/Math.tan(h)),c=(1+r)/(1-r);let M,g=o.latitude;do{M=g;const t=s*Math.sin(M),i=(1+t)/(1-t);g=2*Math.atan(d*Math.pow(i/c,s/2))-a.CesiumMath.PI_OVER_TWO}while(!a.CesiumMath.equalsEpsilon(g,M,a.CesiumMath.EPSILON12));return n.longitude=t,n.latitude=g,n.height=0,n},r.prototype.findIntersectionWithLatitude=function(t,n){const h=this._ellipticity,u=this._heading,o=this._start;if(a.CesiumMath.equalsEpsilon(Math.abs(u),a.CesiumMath.PI_OVER_TWO,a.CesiumMath.EPSILON8))return;const l=s(h,o.latitude),r=s(h,t),d=Math.tan(u)*(r-l),c=a.CesiumMath.negativePiToPi(o.longitude+d);return e.defined(n)?(n.longitude=c,n.latitude=t,n.height=0,n):new i.Cartographic(c,t,0)},t.EllipsoidRhumbLine=r})); diff --git a/public/static/Cesium/Workers/EllipsoidTangentPlane-05ee7166.js b/public/static/Cesium/Workers/EllipsoidTangentPlane-05ee7166.js new file mode 100644 index 0000000..966d449 --- /dev/null +++ b/public/static/Cesium/Workers/EllipsoidTangentPlane-05ee7166.js @@ -0,0 +1 @@ +define(["exports","./AxisAlignedBoundingBox-93c1311e","./Matrix2-7a8e9daf","./Matrix3-b2351961","./defaultValue-f6d5e6da","./IntersectionTests-863687a2","./Plane-5931b53e","./Transforms-c842a68c"],(function(t,n,e,i,o,r,s,a){"use strict";const l=new e.Cartesian4;function c(t,n){t=(n=o.defaultValue(n,i.Ellipsoid.WGS84)).scaleToGeodeticSurface(t);const r=a.Transforms.eastNorthUpToFixedFrame(t,n);this._ellipsoid=n,this._origin=t,this._xAxis=i.Cartesian3.fromCartesian4(e.Matrix4.getColumn(r,0,l)),this._yAxis=i.Cartesian3.fromCartesian4(e.Matrix4.getColumn(r,1,l));const c=i.Cartesian3.fromCartesian4(e.Matrix4.getColumn(r,2,l));this._plane=s.Plane.fromPointNormal(t,c)}Object.defineProperties(c.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});const d=new n.AxisAlignedBoundingBox;c.fromPoints=function(t,e){return new c(n.AxisAlignedBoundingBox.fromPoints(t,d).center,e)};const p=new r.Ray,u=new i.Cartesian3;c.prototype.projectPointOntoPlane=function(t,n){const s=p;s.origin=t,i.Cartesian3.normalize(t,s.direction);let a=r.IntersectionTests.rayPlane(s,this._plane,u);if(o.defined(a)||(i.Cartesian3.negate(s.direction,s.direction),a=r.IntersectionTests.rayPlane(s,this._plane,u)),o.defined(a)){const t=i.Cartesian3.subtract(a,this._origin,a),r=i.Cartesian3.dot(this._xAxis,t),s=i.Cartesian3.dot(this._yAxis,t);return o.defined(n)?(n.x=r,n.y=s,n):new e.Cartesian2(r,s)}},c.prototype.projectPointsOntoPlane=function(t,n){o.defined(n)||(n=[]);let e=0;const i=t.length;for(let r=0;r<i;r++){const i=this.projectPointOntoPlane(t[r],n[e]);o.defined(i)&&(n[e]=i,e++)}return n.length=e,n},c.prototype.projectPointToNearestOnPlane=function(t,n){o.defined(n)||(n=new e.Cartesian2);const s=p;s.origin=t,i.Cartesian3.clone(this._plane.normal,s.direction);let a=r.IntersectionTests.rayPlane(s,this._plane,u);o.defined(a)||(i.Cartesian3.negate(s.direction,s.direction),a=r.IntersectionTests.rayPlane(s,this._plane,u));const l=i.Cartesian3.subtract(a,this._origin,a),c=i.Cartesian3.dot(this._xAxis,l),d=i.Cartesian3.dot(this._yAxis,l);return n.x=c,n.y=d,n},c.prototype.projectPointsToNearestOnPlane=function(t,n){o.defined(n)||(n=[]);const e=t.length;n.length=e;for(let i=0;i<e;i++)n[i]=this.projectPointToNearestOnPlane(t[i],n[i]);return n};const f=new i.Cartesian3;c.prototype.projectPointOntoEllipsoid=function(t,n){o.defined(n)||(n=new i.Cartesian3);const e=this._ellipsoid,r=this._origin,s=this._xAxis,a=this._yAxis,l=f;return i.Cartesian3.multiplyByScalar(s,t.x,l),n=i.Cartesian3.add(r,l,n),i.Cartesian3.multiplyByScalar(a,t.y,l),i.Cartesian3.add(n,l,n),e.scaleToGeocentricSurface(n,n),n},c.prototype.projectPointsOntoEllipsoid=function(t,n){const e=t.length;o.defined(n)?n.length=e:n=new Array(e);for(let i=0;i<e;++i)n[i]=this.projectPointOntoEllipsoid(t[i],n[i]);return n},t.EllipsoidTangentPlane=c})); diff --git a/public/static/Cesium/Workers/EncodedCartesian3-abad5e8c.js b/public/static/Cesium/Workers/EncodedCartesian3-abad5e8c.js new file mode 100644 index 0000000..4d07f71 --- /dev/null +++ b/public/static/Cesium/Workers/EncodedCartesian3-abad5e8c.js @@ -0,0 +1 @@ +define(["exports","./Matrix3-b2351961","./defaultValue-f6d5e6da"],(function(e,n,o){"use strict";function i(){this.high=n.Cartesian3.clone(n.Cartesian3.ZERO),this.low=n.Cartesian3.clone(n.Cartesian3.ZERO)}i.encode=function(e,n){let i;return o.defined(n)||(n={high:0,low:0}),e>=0?(i=65536*Math.floor(e/65536),n.high=i,n.low=e-i):(i=65536*Math.floor(-e/65536),n.high=-i,n.low=e+i),n};const t={high:0,low:0};i.fromCartesian=function(e,n){o.defined(n)||(n=new i);const h=n.high,a=n.low;return i.encode(e.x,t),h.x=t.high,a.x=t.low,i.encode(e.y,t),h.y=t.high,a.y=t.low,i.encode(e.z,t),h.z=t.high,a.z=t.low,n};const h=new i;i.writeElements=function(e,n,o){i.fromCartesian(e,h);const t=h.high,a=h.low;n[o]=t.x,n[o+1]=t.y,n[o+2]=t.z,n[o+3]=a.x,n[o+4]=a.y,n[o+5]=a.z},e.EncodedCartesian3=i})); diff --git a/public/static/Cesium/Workers/FrustumGeometry-2418e7ca.js b/public/static/Cesium/Workers/FrustumGeometry-2418e7ca.js new file mode 100644 index 0000000..906923f --- /dev/null +++ b/public/static/Cesium/Workers/FrustumGeometry-2418e7ca.js @@ -0,0 +1 @@ +define(["exports","./Transforms-c842a68c","./Matrix3-b2351961","./Matrix2-7a8e9daf","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./Math-355606c6","./Plane-5931b53e","./VertexFormat-fbdec922"],(function(t,e,a,n,i,r,o,s,f,u,l){"use strict";function c(t){this.planes=r.defaultValue(t,[])}const h=[new a.Cartesian3,new a.Cartesian3,new a.Cartesian3];a.Cartesian3.clone(a.Cartesian3.UNIT_X,h[0]),a.Cartesian3.clone(a.Cartesian3.UNIT_Y,h[1]),a.Cartesian3.clone(a.Cartesian3.UNIT_Z,h[2]);const p=new a.Cartesian3,d=new a.Cartesian3,m=new u.Plane(new a.Cartesian3(1,0,0),0);function C(t){t=r.defaultValue(t,r.defaultValue.EMPTY_OBJECT),this.left=t.left,this._left=void 0,this.right=t.right,this._right=void 0,this.top=t.top,this._top=void 0,this.bottom=t.bottom,this._bottom=void 0,this.near=r.defaultValue(t.near,1),this._near=this.near,this.far=r.defaultValue(t.far,5e8),this._far=this.far,this._cullingVolume=new c,this._orthographicMatrix=new n.Matrix4}function _(t){t.top===t._top&&t.bottom===t._bottom&&t.left===t._left&&t.right===t._right&&t.near===t._near&&t.far===t._far||(t._left=t.left,t._right=t.right,t._top=t.top,t._bottom=t.bottom,t._near=t.near,t._far=t.far,t._orthographicMatrix=n.Matrix4.computeOrthographicOffCenter(t.left,t.right,t.bottom,t.top,t.near,t.far,t._orthographicMatrix))}c.fromBoundingSphere=function(t,e){r.defined(e)||(e=new c);const i=h.length,o=e.planes;o.length=2*i;const s=t.center,f=t.radius;let u=0;for(let t=0;t<i;++t){const e=h[t];let i=o[u],l=o[u+1];r.defined(i)||(i=o[u]=new n.Cartesian4),r.defined(l)||(l=o[u+1]=new n.Cartesian4),a.Cartesian3.multiplyByScalar(e,-f,p),a.Cartesian3.add(s,p,p),i.x=e.x,i.y=e.y,i.z=e.z,i.w=-a.Cartesian3.dot(e,p),a.Cartesian3.multiplyByScalar(e,f,p),a.Cartesian3.add(s,p,p),l.x=-e.x,l.y=-e.y,l.z=-e.z,l.w=-a.Cartesian3.dot(a.Cartesian3.negate(e,d),p),u+=2}return e},c.prototype.computeVisibility=function(t){const a=this.planes;let n=!1;for(let i=0,r=a.length;i<r;++i){const r=t.intersectPlane(u.Plane.fromCartesian4(a[i],m));if(r===e.Intersect.OUTSIDE)return e.Intersect.OUTSIDE;r===e.Intersect.INTERSECTING&&(n=!0)}return n?e.Intersect.INTERSECTING:e.Intersect.INSIDE},c.prototype.computeVisibilityWithPlaneMask=function(t,a){if(a===c.MASK_OUTSIDE||a===c.MASK_INSIDE)return a;let n=c.MASK_INSIDE;const i=this.planes;for(let r=0,o=i.length;r<o;++r){const o=r<31?1<<r:0;if(r<31&&0==(a&o))continue;const s=t.intersectPlane(u.Plane.fromCartesian4(i[r],m));if(s===e.Intersect.OUTSIDE)return c.MASK_OUTSIDE;s===e.Intersect.INTERSECTING&&(n|=o)}return n},c.MASK_OUTSIDE=4294967295,c.MASK_INSIDE=0,c.MASK_INDETERMINATE=2147483647,Object.defineProperties(C.prototype,{projectionMatrix:{get:function(){return _(this),this._orthographicMatrix}}});const y=new a.Cartesian3,g=new a.Cartesian3,w=new a.Cartesian3,x=new a.Cartesian3;function v(t){t=r.defaultValue(t,r.defaultValue.EMPTY_OBJECT),this._offCenterFrustum=new C,this.width=t.width,this._width=void 0,this.aspectRatio=t.aspectRatio,this._aspectRatio=void 0,this.near=r.defaultValue(t.near,1),this._near=this.near,this.far=r.defaultValue(t.far,5e8),this._far=this.far}function M(t){const e=t._offCenterFrustum;if(t.width!==t._width||t.aspectRatio!==t._aspectRatio||t.near!==t._near||t.far!==t._far){t._aspectRatio=t.aspectRatio,t._width=t.width,t._near=t.near,t._far=t.far;const a=1/t.aspectRatio;e.right=.5*t.width,e.left=-e.right,e.top=a*e.right,e.bottom=-e.top,e.near=t.near,e.far=t.far}}function b(t){t=r.defaultValue(t,r.defaultValue.EMPTY_OBJECT),this.left=t.left,this._left=void 0,this.right=t.right,this._right=void 0,this.top=t.top,this._top=void 0,this.bottom=t.bottom,this._bottom=void 0,this.near=r.defaultValue(t.near,1),this._near=this.near,this.far=r.defaultValue(t.far,5e8),this._far=this.far,this._cullingVolume=new c,this._perspectiveMatrix=new n.Matrix4,this._infinitePerspective=new n.Matrix4}function F(t){const e=t.top,a=t.bottom,i=t.right,r=t.left,o=t.near,s=t.far;e===t._top&&a===t._bottom&&r===t._left&&i===t._right&&o===t._near&&s===t._far||(t._left=r,t._right=i,t._top=e,t._bottom=a,t._near=o,t._far=s,t._perspectiveMatrix=n.Matrix4.computePerspectiveOffCenter(r,i,a,e,o,s,t._perspectiveMatrix),t._infinitePerspective=n.Matrix4.computeInfinitePerspectiveOffCenter(r,i,a,e,o,t._infinitePerspective))}C.prototype.computeCullingVolume=function(t,e,i){const o=this._cullingVolume.planes,s=this.top,f=this.bottom,u=this.right,l=this.left,c=this.near,h=this.far,p=a.Cartesian3.cross(e,i,y);a.Cartesian3.normalize(p,p);const d=g;a.Cartesian3.multiplyByScalar(e,c,d),a.Cartesian3.add(t,d,d);const m=w;a.Cartesian3.multiplyByScalar(p,l,m),a.Cartesian3.add(d,m,m);let C=o[0];return r.defined(C)||(C=o[0]=new n.Cartesian4),C.x=p.x,C.y=p.y,C.z=p.z,C.w=-a.Cartesian3.dot(p,m),a.Cartesian3.multiplyByScalar(p,u,m),a.Cartesian3.add(d,m,m),C=o[1],r.defined(C)||(C=o[1]=new n.Cartesian4),C.x=-p.x,C.y=-p.y,C.z=-p.z,C.w=-a.Cartesian3.dot(a.Cartesian3.negate(p,x),m),a.Cartesian3.multiplyByScalar(i,f,m),a.Cartesian3.add(d,m,m),C=o[2],r.defined(C)||(C=o[2]=new n.Cartesian4),C.x=i.x,C.y=i.y,C.z=i.z,C.w=-a.Cartesian3.dot(i,m),a.Cartesian3.multiplyByScalar(i,s,m),a.Cartesian3.add(d,m,m),C=o[3],r.defined(C)||(C=o[3]=new n.Cartesian4),C.x=-i.x,C.y=-i.y,C.z=-i.z,C.w=-a.Cartesian3.dot(a.Cartesian3.negate(i,x),m),C=o[4],r.defined(C)||(C=o[4]=new n.Cartesian4),C.x=e.x,C.y=e.y,C.z=e.z,C.w=-a.Cartesian3.dot(e,d),a.Cartesian3.multiplyByScalar(e,h,m),a.Cartesian3.add(t,m,m),C=o[5],r.defined(C)||(C=o[5]=new n.Cartesian4),C.x=-e.x,C.y=-e.y,C.z=-e.z,C.w=-a.Cartesian3.dot(a.Cartesian3.negate(e,x),m),this._cullingVolume},C.prototype.getPixelDimensions=function(t,e,a,n,i){_(this);const r=n*(this.right-this.left)/t,o=n*(this.top-this.bottom)/e;return i.x=r,i.y=o,i},C.prototype.clone=function(t){return r.defined(t)||(t=new C),t.left=this.left,t.right=this.right,t.top=this.top,t.bottom=this.bottom,t.near=this.near,t.far=this.far,t._left=void 0,t._right=void 0,t._top=void 0,t._bottom=void 0,t._near=void 0,t._far=void 0,t},C.prototype.equals=function(t){return r.defined(t)&&t instanceof C&&this.right===t.right&&this.left===t.left&&this.top===t.top&&this.bottom===t.bottom&&this.near===t.near&&this.far===t.far},C.prototype.equalsEpsilon=function(t,e,a){return t===this||r.defined(t)&&t instanceof C&&f.CesiumMath.equalsEpsilon(this.right,t.right,e,a)&&f.CesiumMath.equalsEpsilon(this.left,t.left,e,a)&&f.CesiumMath.equalsEpsilon(this.top,t.top,e,a)&&f.CesiumMath.equalsEpsilon(this.bottom,t.bottom,e,a)&&f.CesiumMath.equalsEpsilon(this.near,t.near,e,a)&&f.CesiumMath.equalsEpsilon(this.far,t.far,e,a)},v.packedLength=4,v.pack=function(t,e,a){return a=r.defaultValue(a,0),e[a++]=t.width,e[a++]=t.aspectRatio,e[a++]=t.near,e[a]=t.far,e},v.unpack=function(t,e,a){return e=r.defaultValue(e,0),r.defined(a)||(a=new v),a.width=t[e++],a.aspectRatio=t[e++],a.near=t[e++],a.far=t[e],a},Object.defineProperties(v.prototype,{projectionMatrix:{get:function(){return M(this),this._offCenterFrustum.projectionMatrix}},offCenterFrustum:{get:function(){return M(this),this._offCenterFrustum}}}),v.prototype.computeCullingVolume=function(t,e,a){return M(this),this._offCenterFrustum.computeCullingVolume(t,e,a)},v.prototype.getPixelDimensions=function(t,e,a,n,i){return M(this),this._offCenterFrustum.getPixelDimensions(t,e,a,n,i)},v.prototype.clone=function(t){return r.defined(t)||(t=new v),t.aspectRatio=this.aspectRatio,t.width=this.width,t.near=this.near,t.far=this.far,t._aspectRatio=void 0,t._width=void 0,t._near=void 0,t._far=void 0,this._offCenterFrustum.clone(t._offCenterFrustum),t},v.prototype.equals=function(t){return!!(r.defined(t)&&t instanceof v)&&(M(this),M(t),this.width===t.width&&this.aspectRatio===t.aspectRatio&&this._offCenterFrustum.equals(t._offCenterFrustum))},v.prototype.equalsEpsilon=function(t,e,a){return!!(r.defined(t)&&t instanceof v)&&(M(this),M(t),f.CesiumMath.equalsEpsilon(this.width,t.width,e,a)&&f.CesiumMath.equalsEpsilon(this.aspectRatio,t.aspectRatio,e,a)&&this._offCenterFrustum.equalsEpsilon(t._offCenterFrustum,e,a))},Object.defineProperties(b.prototype,{projectionMatrix:{get:function(){return F(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return F(this),this._infinitePerspective}}});const V=new a.Cartesian3,E=new a.Cartesian3,O=new a.Cartesian3,P=new a.Cartesian3;function z(t){t=r.defaultValue(t,r.defaultValue.EMPTY_OBJECT),this._offCenterFrustum=new b,this.fov=t.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=t.aspectRatio,this._aspectRatio=void 0,this.near=r.defaultValue(t.near,1),this._near=this.near,this.far=r.defaultValue(t.far,5e8),this._far=this.far,this.xOffset=r.defaultValue(t.xOffset,0),this._xOffset=this.xOffset,this.yOffset=r.defaultValue(t.yOffset,0),this._yOffset=this.yOffset}function R(t){const e=t._offCenterFrustum;t.fov===t._fov&&t.aspectRatio===t._aspectRatio&&t.near===t._near&&t.far===t._far&&t.xOffset===t._xOffset&&t.yOffset===t._yOffset||(t._aspectRatio=t.aspectRatio,t._fov=t.fov,t._fovy=t.aspectRatio<=1?t.fov:2*Math.atan(Math.tan(.5*t.fov)/t.aspectRatio),t._near=t.near,t._far=t.far,t._sseDenominator=2*Math.tan(.5*t._fovy),t._xOffset=t.xOffset,t._yOffset=t.yOffset,e.top=t.near*Math.tan(.5*t._fovy),e.bottom=-e.top,e.right=t.aspectRatio*e.top,e.left=-e.right,e.near=t.near,e.far=t.far,e.right+=t.xOffset,e.left+=t.xOffset,e.top+=t.yOffset,e.bottom+=t.yOffset)}b.prototype.computeCullingVolume=function(t,e,i){const o=this._cullingVolume.planes,s=this.top,f=this.bottom,u=this.right,l=this.left,c=this.near,h=this.far,p=a.Cartesian3.cross(e,i,V),d=E;a.Cartesian3.multiplyByScalar(e,c,d),a.Cartesian3.add(t,d,d);const m=O;a.Cartesian3.multiplyByScalar(e,h,m),a.Cartesian3.add(t,m,m);const C=P;a.Cartesian3.multiplyByScalar(p,l,C),a.Cartesian3.add(d,C,C),a.Cartesian3.subtract(C,t,C),a.Cartesian3.normalize(C,C),a.Cartesian3.cross(C,i,C),a.Cartesian3.normalize(C,C);let _=o[0];return r.defined(_)||(_=o[0]=new n.Cartesian4),_.x=C.x,_.y=C.y,_.z=C.z,_.w=-a.Cartesian3.dot(C,t),a.Cartesian3.multiplyByScalar(p,u,C),a.Cartesian3.add(d,C,C),a.Cartesian3.subtract(C,t,C),a.Cartesian3.cross(i,C,C),a.Cartesian3.normalize(C,C),_=o[1],r.defined(_)||(_=o[1]=new n.Cartesian4),_.x=C.x,_.y=C.y,_.z=C.z,_.w=-a.Cartesian3.dot(C,t),a.Cartesian3.multiplyByScalar(i,f,C),a.Cartesian3.add(d,C,C),a.Cartesian3.subtract(C,t,C),a.Cartesian3.cross(p,C,C),a.Cartesian3.normalize(C,C),_=o[2],r.defined(_)||(_=o[2]=new n.Cartesian4),_.x=C.x,_.y=C.y,_.z=C.z,_.w=-a.Cartesian3.dot(C,t),a.Cartesian3.multiplyByScalar(i,s,C),a.Cartesian3.add(d,C,C),a.Cartesian3.subtract(C,t,C),a.Cartesian3.cross(C,p,C),a.Cartesian3.normalize(C,C),_=o[3],r.defined(_)||(_=o[3]=new n.Cartesian4),_.x=C.x,_.y=C.y,_.z=C.z,_.w=-a.Cartesian3.dot(C,t),_=o[4],r.defined(_)||(_=o[4]=new n.Cartesian4),_.x=e.x,_.y=e.y,_.z=e.z,_.w=-a.Cartesian3.dot(e,d),a.Cartesian3.negate(e,C),_=o[5],r.defined(_)||(_=o[5]=new n.Cartesian4),_.x=C.x,_.y=C.y,_.z=C.z,_.w=-a.Cartesian3.dot(C,m),this._cullingVolume},b.prototype.getPixelDimensions=function(t,e,a,n,i){F(this);const r=1/this.near;let o=this.top*r;const s=2*n*a*o/e;o=this.right*r;const f=2*n*a*o/t;return i.x=f,i.y=s,i},b.prototype.clone=function(t){return r.defined(t)||(t=new b),t.right=this.right,t.left=this.left,t.top=this.top,t.bottom=this.bottom,t.near=this.near,t.far=this.far,t._left=void 0,t._right=void 0,t._top=void 0,t._bottom=void 0,t._near=void 0,t._far=void 0,t},b.prototype.equals=function(t){return r.defined(t)&&t instanceof b&&this.right===t.right&&this.left===t.left&&this.top===t.top&&this.bottom===t.bottom&&this.near===t.near&&this.far===t.far},b.prototype.equalsEpsilon=function(t,e,a){return t===this||r.defined(t)&&t instanceof b&&f.CesiumMath.equalsEpsilon(this.right,t.right,e,a)&&f.CesiumMath.equalsEpsilon(this.left,t.left,e,a)&&f.CesiumMath.equalsEpsilon(this.top,t.top,e,a)&&f.CesiumMath.equalsEpsilon(this.bottom,t.bottom,e,a)&&f.CesiumMath.equalsEpsilon(this.near,t.near,e,a)&&f.CesiumMath.equalsEpsilon(this.far,t.far,e,a)},z.packedLength=6,z.pack=function(t,e,a){return a=r.defaultValue(a,0),e[a++]=t.fov,e[a++]=t.aspectRatio,e[a++]=t.near,e[a++]=t.far,e[a++]=t.xOffset,e[a]=t.yOffset,e},z.unpack=function(t,e,a){return e=r.defaultValue(e,0),r.defined(a)||(a=new z),a.fov=t[e++],a.aspectRatio=t[e++],a.near=t[e++],a.far=t[e++],a.xOffset=t[e++],a.yOffset=t[e],a},Object.defineProperties(z.prototype,{projectionMatrix:{get:function(){return R(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return R(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return R(this),this._fovy}},sseDenominator:{get:function(){return R(this),this._sseDenominator}},offCenterFrustum:{get:function(){return R(this),this._offCenterFrustum}}}),z.prototype.computeCullingVolume=function(t,e,a){return R(this),this._offCenterFrustum.computeCullingVolume(t,e,a)},z.prototype.getPixelDimensions=function(t,e,a,n,i){return R(this),this._offCenterFrustum.getPixelDimensions(t,e,a,n,i)},z.prototype.clone=function(t){return r.defined(t)||(t=new z),t.aspectRatio=this.aspectRatio,t.fov=this.fov,t.near=this.near,t.far=this.far,t._aspectRatio=void 0,t._fov=void 0,t._near=void 0,t._far=void 0,this._offCenterFrustum.clone(t._offCenterFrustum),t},z.prototype.equals=function(t){return!!(r.defined(t)&&t instanceof z)&&(R(this),R(t),this.fov===t.fov&&this.aspectRatio===t.aspectRatio&&this._offCenterFrustum.equals(t._offCenterFrustum))},z.prototype.equalsEpsilon=function(t,e,a){return!!(r.defined(t)&&t instanceof z)&&(R(this),R(t),f.CesiumMath.equalsEpsilon(this.fov,t.fov,e,a)&&f.CesiumMath.equalsEpsilon(this.aspectRatio,t.aspectRatio,e,a)&&this._offCenterFrustum.equalsEpsilon(t._offCenterFrustum,e,a))};const S=0;function T(t){const n=t.frustum,i=t.orientation,o=t.origin,s=r.defaultValue(t.vertexFormat,l.VertexFormat.DEFAULT),f=r.defaultValue(t._drawNearPlane,!0);let u,c;n instanceof z?(u=S,c=z.packedLength):n instanceof v&&(u=1,c=v.packedLength),this._frustumType=u,this._frustum=n.clone(),this._origin=a.Cartesian3.clone(o),this._orientation=e.Quaternion.clone(i),this._drawNearPlane=f,this._vertexFormat=s,this._workerName="createFrustumGeometry",this.packedLength=2+c+a.Cartesian3.packedLength+e.Quaternion.packedLength+l.VertexFormat.packedLength}T.pack=function(t,n,i){i=r.defaultValue(i,0);const o=t._frustumType,s=t._frustum;return n[i++]=o,o===S?(z.pack(s,n,i),i+=z.packedLength):(v.pack(s,n,i),i+=v.packedLength),a.Cartesian3.pack(t._origin,n,i),i+=a.Cartesian3.packedLength,e.Quaternion.pack(t._orientation,n,i),i+=e.Quaternion.packedLength,l.VertexFormat.pack(t._vertexFormat,n,i),n[i+=l.VertexFormat.packedLength]=t._drawNearPlane?1:0,n};const k=new z,A=new v,D=new e.Quaternion,I=new a.Cartesian3,q=new l.VertexFormat;function B(t,e,a,n,i,o,s,f){const u=t/3*2;for(let i=0;i<4;++i)r.defined(e)&&(e[t]=o.x,e[t+1]=o.y,e[t+2]=o.z),r.defined(a)&&(a[t]=s.x,a[t+1]=s.y,a[t+2]=s.z),r.defined(n)&&(n[t]=f.x,n[t+1]=f.y,n[t+2]=f.z),t+=3;i[u]=0,i[u+1]=0,i[u+2]=1,i[u+3]=0,i[u+4]=1,i[u+5]=1,i[u+6]=0,i[u+7]=1}T.unpack=function(t,n,i){n=r.defaultValue(n,0);const o=t[n++];let s;o===S?(s=z.unpack(t,n,k),n+=z.packedLength):(s=v.unpack(t,n,A),n+=v.packedLength);const f=a.Cartesian3.unpack(t,n,I);n+=a.Cartesian3.packedLength;const u=e.Quaternion.unpack(t,n,D);n+=e.Quaternion.packedLength;const c=l.VertexFormat.unpack(t,n,q),h=1===t[n+=l.VertexFormat.packedLength];if(!r.defined(i))return new T({frustum:s,origin:f,orientation:u,vertexFormat:c,_drawNearPlane:h});const p=o===i._frustumType?i._frustum:void 0;return i._frustum=s.clone(p),i._frustumType=o,i._origin=a.Cartesian3.clone(f,i._origin),i._orientation=e.Quaternion.clone(u,i._orientation),i._vertexFormat=l.VertexFormat.clone(c,i._vertexFormat),i._drawNearPlane=h,i};const L=new a.Matrix3,N=new n.Matrix4,G=new n.Matrix4,j=new a.Cartesian3,U=new a.Cartesian3,Q=new a.Cartesian3,K=new a.Cartesian3,Y=new a.Cartesian3,J=new a.Cartesian3,W=new Array(3),X=new Array(4);X[0]=new n.Cartesian4(-1,-1,1,1),X[1]=new n.Cartesian4(1,-1,1,1),X[2]=new n.Cartesian4(1,1,1,1),X[3]=new n.Cartesian4(-1,1,1,1);const Z=new Array(4);for(let t=0;t<4;++t)Z[t]=new n.Cartesian4;T._computeNearFarPlanes=function(t,e,i,o,s,f,u,l){const c=a.Matrix3.fromQuaternion(e,L);let h=r.defaultValue(f,j),p=r.defaultValue(u,U),d=r.defaultValue(l,Q);h=a.Matrix3.getColumn(c,0,h),p=a.Matrix3.getColumn(c,1,p),d=a.Matrix3.getColumn(c,2,d),a.Cartesian3.normalize(h,h),a.Cartesian3.normalize(p,p),a.Cartesian3.normalize(d,d),a.Cartesian3.negate(h,h);const m=n.Matrix4.computeView(t,d,p,h,N);let C,_;const y=o.projectionMatrix;if(i===S){const t=n.Matrix4.multiply(y,m,G);_=n.Matrix4.inverse(t,G)}else C=n.Matrix4.inverseTransformation(m,G);r.defined(_)?(W[0]=o.near,W[1]=o.far):(W[0]=0,W[1]=o.near,W[2]=o.far);for(let e=0;e<2;++e)for(let i=0;i<4;++i){let f=n.Cartesian4.clone(X[i],Z[i]);if(r.defined(_)){f=n.Matrix4.multiplyByVector(_,f,f);const i=1/f.w;a.Cartesian3.multiplyByScalar(f,i,f),a.Cartesian3.subtract(f,t,f),a.Cartesian3.normalize(f,f);const r=a.Cartesian3.dot(d,f);a.Cartesian3.multiplyByScalar(f,W[e]/r,f),a.Cartesian3.add(f,t,f)}else{const t=o.offCenterFrustum;r.defined(t)&&(o=t);const a=W[e],i=W[e+1];f.x=.5*(f.x*(o.right-o.left)+o.left+o.right),f.y=.5*(f.y*(o.top-o.bottom)+o.bottom+o.top),f.z=.5*(f.z*(a-i)-a-i),f.w=1,n.Matrix4.multiplyByVector(C,f,f)}s[12*e+3*i]=f.x,s[12*e+3*i+1]=f.y,s[12*e+3*i+2]=f.z}},T.createGeometry=function(t){const n=t._frustumType,f=t._frustum,u=t._origin,l=t._orientation,c=t._drawNearPlane,h=t._vertexFormat,p=c?6:5;let d=new Float64Array(72);T._computeNearFarPlanes(u,l,n,f,d);let m=24;d[m]=d[12],d[m+1]=d[13],d[m+2]=d[14],d[m+3]=d[0],d[m+4]=d[1],d[m+5]=d[2],d[m+6]=d[9],d[m+7]=d[10],d[m+8]=d[11],d[m+9]=d[21],d[m+10]=d[22],d[m+11]=d[23],m+=12,d[m]=d[15],d[m+1]=d[16],d[m+2]=d[17],d[m+3]=d[3],d[m+4]=d[4],d[m+5]=d[5],d[m+6]=d[0],d[m+7]=d[1],d[m+8]=d[2],d[m+9]=d[12],d[m+10]=d[13],d[m+11]=d[14],m+=12,d[m]=d[3],d[m+1]=d[4],d[m+2]=d[5],d[m+3]=d[15],d[m+4]=d[16],d[m+5]=d[17],d[m+6]=d[18],d[m+7]=d[19],d[m+8]=d[20],d[m+9]=d[6],d[m+10]=d[7],d[m+11]=d[8],m+=12,d[m]=d[6],d[m+1]=d[7],d[m+2]=d[8],d[m+3]=d[18],d[m+4]=d[19],d[m+5]=d[20],d[m+6]=d[21],d[m+7]=d[22],d[m+8]=d[23],d[m+9]=d[9],d[m+10]=d[10],d[m+11]=d[11],c||(d=d.subarray(12));const C=new s.GeometryAttributes({position:new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:d})});if(r.defined(h.normal)||r.defined(h.tangent)||r.defined(h.bitangent)||r.defined(h.st)){const t=r.defined(h.normal)?new Float32Array(12*p):void 0,e=r.defined(h.tangent)?new Float32Array(12*p):void 0,n=r.defined(h.bitangent)?new Float32Array(12*p):void 0,s=r.defined(h.st)?new Float32Array(8*p):void 0,f=j,u=U,l=Q,d=a.Cartesian3.negate(f,K),_=a.Cartesian3.negate(u,Y),y=a.Cartesian3.negate(l,J);m=0,c&&(B(m,t,e,n,s,y,f,u),m+=12),B(m,t,e,n,s,l,d,u),m+=12,B(m,t,e,n,s,d,y,u),m+=12,B(m,t,e,n,s,_,y,d),m+=12,B(m,t,e,n,s,f,l,u),m+=12,B(m,t,e,n,s,u,l,d),r.defined(t)&&(C.normal=new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:t})),r.defined(e)&&(C.tangent=new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:e})),r.defined(n)&&(C.bitangent=new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:n})),r.defined(s)&&(C.st=new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:s}))}const _=new Uint16Array(6*p);for(let t=0;t<p;++t){const e=6*t,a=4*t;_[e]=a,_[e+1]=a+1,_[e+2]=a+2,_[e+3]=a,_[e+4]=a+2,_[e+5]=a+3}return new o.Geometry({attributes:C,indices:_,primitiveType:o.PrimitiveType.TRIANGLES,boundingSphere:e.BoundingSphere.fromVertices(d)})},t.FrustumGeometry=T,t.OrthographicFrustum=v,t.PerspectiveFrustum=z})); diff --git a/public/static/Cesium/Workers/GeometryAttribute-0e790d82.js b/public/static/Cesium/Workers/GeometryAttribute-0e790d82.js new file mode 100644 index 0000000..91094e8 --- /dev/null +++ b/public/static/Cesium/Workers/GeometryAttribute-0e790d82.js @@ -0,0 +1 @@ +define(["exports","./Matrix2-7a8e9daf","./Matrix3-b2351961","./defaultValue-f6d5e6da","./WebGLConstants-7f557f93","./Transforms-c842a68c"],(function(t,e,n,a,r,i){"use strict";var o=Object.freeze({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3});const s={POINTS:r.WebGLConstants.POINTS,LINES:r.WebGLConstants.LINES,LINE_LOOP:r.WebGLConstants.LINE_LOOP,LINE_STRIP:r.WebGLConstants.LINE_STRIP,TRIANGLES:r.WebGLConstants.TRIANGLES,TRIANGLE_STRIP:r.WebGLConstants.TRIANGLE_STRIP,TRIANGLE_FAN:r.WebGLConstants.TRIANGLE_FAN,isLines:function(t){return t===s.LINES||t===s.LINE_LOOP||t===s.LINE_STRIP},isTriangles:function(t){return t===s.TRIANGLES||t===s.TRIANGLE_STRIP||t===s.TRIANGLE_FAN},validate:function(t){return t===s.POINTS||t===s.LINES||t===s.LINE_LOOP||t===s.LINE_STRIP||t===s.TRIANGLES||t===s.TRIANGLE_STRIP||t===s.TRIANGLE_FAN}};var u=Object.freeze(s);function I(t){t=a.defaultValue(t,a.defaultValue.EMPTY_OBJECT),this.attributes=t.attributes,this.indices=t.indices,this.primitiveType=a.defaultValue(t.primitiveType,u.TRIANGLES),this.boundingSphere=t.boundingSphere,this.geometryType=a.defaultValue(t.geometryType,o.NONE),this.boundingSphereCV=t.boundingSphereCV,this.offsetAttribute=t.offsetAttribute}I.computeNumberOfVertices=function(t){let e=-1;for(const n in t.attributes)if(t.attributes.hasOwnProperty(n)&&a.defined(t.attributes[n])&&a.defined(t.attributes[n].values)){const a=t.attributes[n];e=a.values.length/a.componentsPerAttribute}return e};const N=new n.Cartographic,T=new n.Cartesian3,l=new e.Matrix4,c=[new n.Cartographic,new n.Cartographic,new n.Cartographic],L=[new e.Cartesian2,new e.Cartesian2,new e.Cartesian2],E=[new e.Cartesian2,new e.Cartesian2,new e.Cartesian2],f=new n.Cartesian3,p=new i.Quaternion,m=new e.Matrix4,y=new e.Matrix2;I._textureCoordinateRotationPoints=function(t,a,r,o){let s;const u=e.Rectangle.center(o,N),I=n.Cartographic.toCartesian(u,r,T),C=i.Transforms.eastNorthUpToFixedFrame(I,r,l),b=e.Matrix4.inverse(C,l),h=L,A=c;A[0].longitude=o.west,A[0].latitude=o.south,A[1].longitude=o.west,A[1].latitude=o.north,A[2].longitude=o.east,A[2].latitude=o.south;let x=f;for(s=0;s<3;s++)n.Cartographic.toCartesian(A[s],r,x),x=e.Matrix4.multiplyByPointAsVector(b,x,x),h[s].x=x.x,h[s].y=x.y;const S=i.Quaternion.fromAxisAngle(n.Cartesian3.UNIT_Z,-a,p),d=n.Matrix3.fromQuaternion(S,m),P=t.length;let G=Number.POSITIVE_INFINITY,R=Number.POSITIVE_INFINITY,_=Number.NEGATIVE_INFINITY,O=Number.NEGATIVE_INFINITY;for(s=0;s<P;s++)x=e.Matrix4.multiplyByPointAsVector(b,t[s],x),x=n.Matrix3.multiplyByVector(d,x,x),G=Math.min(G,x.x),R=Math.min(R,x.y),_=Math.max(_,x.x),O=Math.max(O,x.y);const g=e.Matrix2.fromRotation(a,y),w=E;w[0].x=G,w[0].y=R,w[1].x=G,w[1].y=O,w[2].x=_,w[2].y=R;const V=h[0],M=h[2].x-V.x,v=h[1].y-V.y;for(s=0;s<3;s++){const t=w[s];e.Matrix2.multiplyByVector(g,t,t),t.x=(t.x-V.x)/M,t.y=(t.y-V.y)/v}const F=w[0],W=w[1],Y=w[2],B=new Array(6);return e.Cartesian2.pack(F,B),e.Cartesian2.pack(W,B,2),e.Cartesian2.pack(Y,B,4),B},t.Geometry=I,t.GeometryAttribute=function(t){t=a.defaultValue(t,a.defaultValue.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=a.defaultValue(t.normalize,!1),this.values=t.values},t.GeometryType=o,t.PrimitiveType=u})); diff --git a/public/static/Cesium/Workers/GeometryAttributes-1e4ddcd2.js b/public/static/Cesium/Workers/GeometryAttributes-1e4ddcd2.js new file mode 100644 index 0000000..3782e03 --- /dev/null +++ b/public/static/Cesium/Workers/GeometryAttributes-1e4ddcd2.js @@ -0,0 +1 @@ +define(["exports","./defaultValue-f6d5e6da"],(function(t,e){"use strict";t.GeometryAttributes=function(t){t=e.defaultValue(t,e.defaultValue.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}})); diff --git a/public/static/Cesium/Workers/GeometryInstance-c4920693.js b/public/static/Cesium/Workers/GeometryInstance-c4920693.js new file mode 100644 index 0000000..8d25174 --- /dev/null +++ b/public/static/Cesium/Workers/GeometryInstance-c4920693.js @@ -0,0 +1 @@ +define(["exports","./defaultValue-f6d5e6da","./Matrix2-7a8e9daf"],(function(e,t,i){"use strict";e.GeometryInstance=function(e){e=t.defaultValue(e,t.defaultValue.EMPTY_OBJECT),this.geometry=e.geometry,this.modelMatrix=i.Matrix4.clone(t.defaultValue(e.modelMatrix,i.Matrix4.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=t.defaultValue(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}})); diff --git a/public/static/Cesium/Workers/GeometryOffsetAttribute-2579b8d2.js b/public/static/Cesium/Workers/GeometryOffsetAttribute-2579b8d2.js new file mode 100644 index 0000000..854113d --- /dev/null +++ b/public/static/Cesium/Workers/GeometryOffsetAttribute-2579b8d2.js @@ -0,0 +1 @@ +define(["exports"],(function(e){"use strict";var t=Object.freeze({NONE:0,TOP:1,ALL:2});e.GeometryOffsetAttribute=t})); diff --git a/public/static/Cesium/Workers/GeometryPipeline-87cdea8e.js b/public/static/Cesium/Workers/GeometryPipeline-87cdea8e.js new file mode 100644 index 0000000..3a2f069 --- /dev/null +++ b/public/static/Cesium/Workers/GeometryPipeline-87cdea8e.js @@ -0,0 +1 @@ +define(["exports","./AttributeCompression-0b8f7b7d","./Matrix2-7a8e9daf","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Math-355606c6","./Transforms-c842a68c","./ComponentDatatype-ab629b88","./EncodedCartesian3-abad5e8c","./GeometryAttribute-0e790d82","./IndexDatatype-a9b1bc18","./IntersectionTests-863687a2","./Plane-5931b53e"],(function(e,t,n,i,r,a,s,o,u,c,l,p,d){"use strict";const y=new i.Cartesian3,f=new i.Cartesian3,m=new i.Cartesian3;const C={calculateACMR:function(e){const t=(e=r.defaultValue(e,r.defaultValue.EMPTY_OBJECT)).indices;let n=e.maximumIndex;const i=r.defaultValue(e.cacheSize,24),a=t.length;if(!r.defined(n)){n=0;let e=0,i=t[e];for(;e<a;)i>n&&(n=i),++e,i=t[e]}const s=[];for(let e=0;e<n+1;e++)s[e]=0;let o=i+1;for(let e=0;e<a;++e)o-s[t[e]]>i&&(s[t[e]]=o,++o);return(o-i+1)/(a/3)}};C.tipsify=function(e){const t=(e=r.defaultValue(e,r.defaultValue.EMPTY_OBJECT)).indices,n=e.maximumIndex,i=r.defaultValue(e.cacheSize,24);let a;function s(e,t,n,i,r,s,o){let u,c=-1,l=-1,p=0;for(;p<n.length;){const e=n[p];i[e].numLiveTriangles&&(u=0,r-i[e].timeStamp+2*i[e].numLiveTriangles<=t&&(u=r-i[e].timeStamp),(u>l||-1===l)&&(l=u,c=e)),++p}return-1===c?function(e,t,n,i){for(;t.length>=1;){const n=t[t.length-1];if(t.splice(t.length-1,1),e[n].numLiveTriangles>0)return n}for(;a<i;){if(e[a].numLiveTriangles>0)return++a,a-1;++a}return-1}(i,s,0,o):c}const o=t.length;let u=0,c=0,l=t[c];const p=o;if(r.defined(n))u=n+1;else{for(;c<p;)l>u&&(u=l),++c,l=t[c];if(-1===u)return 0;++u}const d=[];let y;for(y=0;y<u;y++)d[y]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};c=0;let f=0;for(;c<p;)d[t[c]].vertexTriangles.push(f),++d[t[c]].numLiveTriangles,d[t[c+1]].vertexTriangles.push(f),++d[t[c+1]].numLiveTriangles,d[t[c+2]].vertexTriangles.push(f),++d[t[c+2]].numLiveTriangles,++f,c+=3;let m=0,C=i+1;a=1;let h=[];const v=[];let b,g,A=0;const T=[],x=o/3,P=[];for(y=0;y<x;y++)P[y]=!1;let w,S;for(;-1!==m;){h=[],g=d[m],S=g.vertexTriangles.length;for(let e=0;e<S;++e)if(f=g.vertexTriangles[e],!P[f]){P[f]=!0,c=f+f+f;for(let e=0;e<3;++e)w=t[c],h.push(w),v.push(w),T[A]=w,++A,b=d[w],--b.numLiveTriangles,C-b.timeStamp>i&&(b.timeStamp=C,++C),++c}m=s(0,i,h,d,C,v,u)}return T};var h=C;const v={};function b(e,t,n,i,r){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=r,e[t++]=r,e[t]=n}function g(e){const t={};for(const n in e)if(e.hasOwnProperty(n)&&r.defined(e[n])&&r.defined(e[n].values)){const i=e[n];t[n]=new c.GeometryAttribute({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function A(e,t,n){for(const i in t)if(t.hasOwnProperty(i)&&r.defined(t[i])&&r.defined(t[i].values)){const r=t[i];for(let t=0;t<r.componentsPerAttribute;++t)e[i].values.push(r.values[n*r.componentsPerAttribute+t])}}v.toWireframe=function(e){const t=e.indices;if(r.defined(t)){switch(e.primitiveType){case c.PrimitiveType.TRIANGLES:e.indices=function(e){const t=e.length,n=t/3*6,i=l.IndexDatatype.createTypedArray(t,n);let r=0;for(let n=0;n<t;n+=3,r+=6)b(i,r,e[n],e[n+1],e[n+2]);return i}(t);break;case c.PrimitiveType.TRIANGLE_STRIP:e.indices=function(e){const t=e.length;if(t>=3){const n=6*(t-2),i=l.IndexDatatype.createTypedArray(t,n);b(i,0,e[0],e[1],e[2]);let r=6;for(let n=3;n<t;++n,r+=6)b(i,r,e[n-1],e[n],e[n-2]);return i}return new Uint16Array}(t);break;case c.PrimitiveType.TRIANGLE_FAN:e.indices=function(e){if(e.length>0){const t=e.length-1,n=6*(t-1),i=l.IndexDatatype.createTypedArray(t,n),r=e[0];let a=0;for(let n=1;n<t;++n,a+=6)b(i,a,r,e[n],e[n+1]);return i}return new Uint16Array}(t)}e.primitiveType=c.PrimitiveType.LINES}return e},v.createLineSegmentsForVectors=function(e,t,n){t=r.defaultValue(t,"normal"),n=r.defaultValue(n,1e4);const i=e.attributes.position.values,a=e.attributes[t].values,u=i.length,l=new Float64Array(2*u);let p,d=0;for(let e=0;e<u;e+=3)l[d++]=i[e],l[d++]=i[e+1],l[d++]=i[e+2],l[d++]=i[e]+a[e]*n,l[d++]=i[e+1]+a[e+1]*n,l[d++]=i[e+2]+a[e+2]*n;const y=e.boundingSphere;return r.defined(y)&&(p=new s.BoundingSphere(y.center,y.radius+n)),new c.Geometry({attributes:{position:new c.GeometryAttribute({componentDatatype:o.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:l})},primitiveType:c.PrimitiveType.LINES,boundingSphere:p})},v.createAttributeLocations=function(e){const t=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={};let a,s=0;const o=t.length;for(a=0;a<o;++a){const e=t[a];r.defined(n[e])&&(i[e]=s++)}for(const e in n)n.hasOwnProperty(e)&&!r.defined(i[e])&&(i[e]=s++);return i},v.reorderForPreVertexCache=function(e){const t=c.Geometry.computeNumberOfVertices(e),n=e.indices;if(r.defined(n)){const i=new Int32Array(t);for(let e=0;e<t;e++)i[e]=-1;const a=n,s=a.length,u=l.IndexDatatype.createTypedArray(t,s);let c,p=0,d=0,y=0;for(;p<s;)c=i[a[p]],-1!==c?u[d]=c:(c=a[p],i[c]=y,u[d]=y,++y),++p,++d;e.indices=u;const f=e.attributes;for(const e in f)if(f.hasOwnProperty(e)&&r.defined(f[e])&&r.defined(f[e].values)){const n=f[e],r=n.values;let a=0;const s=n.componentsPerAttribute,u=o.ComponentDatatype.createTypedArray(n.componentDatatype,y*s);for(;a<t;){const e=i[a];if(-1!==e)for(let t=0;t<s;t++)u[s*e+t]=r[s*a+t];++a}n.values=u}}return e},v.reorderForPostVertexCache=function(e,t){const n=e.indices;if(e.primitiveType===c.PrimitiveType.TRIANGLES&&r.defined(n)){const i=n.length;let r=0;for(let e=0;e<i;e++)n[e]>r&&(r=n[e]);e.indices=h.tipsify({indices:n,maximumIndex:r,cacheSize:t})}return e},v.fitToUnsignedShortIndices=function(e){const t=[],n=c.Geometry.computeNumberOfVertices(e);if(r.defined(e.indices)&&n>=a.CesiumMath.SIXTY_FOUR_KILOBYTES){let n=[],i=[],s=0,o=g(e.attributes);const u=e.indices,l=u.length;let p;e.primitiveType===c.PrimitiveType.TRIANGLES?p=3:e.primitiveType===c.PrimitiveType.LINES?p=2:e.primitiveType===c.PrimitiveType.POINTS&&(p=1);for(let d=0;d<l;d+=p){for(let t=0;t<p;++t){const a=u[d+t];let c=n[a];r.defined(c)||(c=s++,n[a]=c,A(o,e.attributes,a)),i.push(c)}s+p>=a.CesiumMath.SIXTY_FOUR_KILOBYTES&&(t.push(new c.Geometry({attributes:o,indices:i,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),n=[],i=[],s=0,o=g(e.attributes))}0!==i.length&&t.push(new c.Geometry({attributes:o,indices:i,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};const T=new i.Cartesian3,x=new i.Cartographic;v.projectTo2D=function(e,t,n,a,u){const l=e.attributes[t],p=(u=r.defined(u)?u:new s.GeographicProjection).ellipsoid,d=l.values,y=new Float64Array(d.length);let f=0;for(let e=0;e<d.length;e+=3){const t=i.Cartesian3.fromArray(d,e,T),n=p.cartesianToCartographic(t,x),r=u.project(n,T);y[f++]=r.x,y[f++]=r.y,y[f++]=r.z}return e.attributes[n]=l,e.attributes[a]=new c.GeometryAttribute({componentDatatype:o.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:y}),delete e.attributes[t],e};const P={high:0,low:0};v.encodeAttribute=function(e,t,n,i){const r=e.attributes[t],a=r.values,s=a.length,l=new Float32Array(s),p=new Float32Array(s);for(let e=0;e<s;++e)u.EncodedCartesian3.encode(a[e],P),l[e]=P.high,p[e]=P.low;const d=r.componentsPerAttribute;return e.attributes[n]=new c.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:d,values:l}),e.attributes[i]=new c.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:d,values:p}),delete e.attributes[t],e};let w=new i.Cartesian3;function S(e,t){if(r.defined(t)){const r=t.values,a=r.length;for(let t=0;t<a;t+=3)i.Cartesian3.unpack(r,t,w),n.Matrix4.multiplyByPoint(e,w,w),i.Cartesian3.pack(w,r,t)}}function I(e,t){if(r.defined(t)){const n=t.values,r=n.length;for(let t=0;t<r;t+=3)i.Cartesian3.unpack(n,t,w),i.Matrix3.multiplyByVector(e,w,w),w=i.Cartesian3.normalize(w,w),i.Cartesian3.pack(w,n,t)}}const O=new n.Matrix4,E=new i.Matrix3;v.transformToWorldCoordinates=function(e){const t=e.modelMatrix;if(n.Matrix4.equals(t,n.Matrix4.IDENTITY))return e;const i=e.geometry.attributes;S(t,i.position),S(t,i.prevPosition),S(t,i.nextPosition),(r.defined(i.normal)||r.defined(i.tangent)||r.defined(i.bitangent))&&(n.Matrix4.inverse(t,O),n.Matrix4.transpose(O,O),n.Matrix4.getMatrix3(O,E),I(E,i.normal),I(E,i.tangent),I(E,i.bitangent));const a=e.geometry.boundingSphere;return r.defined(a)&&(e.geometry.boundingSphere=s.BoundingSphere.transform(a,t,a)),e.modelMatrix=n.Matrix4.clone(n.Matrix4.IDENTITY),e};const N=new i.Cartesian3;function L(e,t){const n=e.length;let a,u,p,d;e[0].modelMatrix;const y=r.defined(e[0][t].indices),f=e[0][t].primitiveType,m=function(e,t){const n=e.length,i={},a=e[0][t].attributes;let s;for(s in a)if(a.hasOwnProperty(s)&&r.defined(a[s])&&r.defined(a[s].values)){const u=a[s];let l=u.values.length,p=!0;for(let i=1;i<n;++i){const n=e[i][t].attributes[s];if(!r.defined(n)||u.componentDatatype!==n.componentDatatype||u.componentsPerAttribute!==n.componentsPerAttribute||u.normalize!==n.normalize){p=!1;break}l+=n.values.length}p&&(i[s]=new c.GeometryAttribute({componentDatatype:u.componentDatatype,componentsPerAttribute:u.componentsPerAttribute,normalize:u.normalize,values:o.ComponentDatatype.createTypedArray(u.componentDatatype,l)}))}return i}(e,t);let C,h,v,b;for(a in m)if(m.hasOwnProperty(a))for(C=m[a].values,d=0,u=0;u<n;++u)for(h=e[u][t].attributes[a].values,v=h.length,p=0;p<v;++p)C[d++]=h[p];if(y){let i=0;for(u=0;u<n;++u)i+=e[u][t].indices.length;const r=c.Geometry.computeNumberOfVertices(new c.Geometry({attributes:m,primitiveType:c.PrimitiveType.POINTS})),a=l.IndexDatatype.createTypedArray(r,i);let s=0,o=0;for(u=0;u<n;++u){const n=e[u][t].indices,i=n.length;for(d=0;d<i;++d)a[s++]=o+n[d];o+=c.Geometry.computeNumberOfVertices(e[u][t])}b=a}let g,A=new i.Cartesian3,T=0;for(u=0;u<n;++u){if(g=e[u][t].boundingSphere,!r.defined(g)){A=void 0;break}i.Cartesian3.add(g.center,A,A)}if(r.defined(A))for(i.Cartesian3.divideByScalar(A,n,A),u=0;u<n;++u){g=e[u][t].boundingSphere;const n=i.Cartesian3.magnitude(i.Cartesian3.subtract(g.center,A,N))+g.radius;n>T&&(T=n)}return new c.Geometry({attributes:m,indices:b,primitiveType:f,boundingSphere:r.defined(A)?new s.BoundingSphere(A,T):void 0})}v.combineInstances=function(e){const t=[],n=[],i=e.length;for(let a=0;a<i;++a){const i=e[a];r.defined(i.geometry)?t.push(i):r.defined(i.westHemisphereGeometry)&&r.defined(i.eastHemisphereGeometry)&&n.push(i)}const a=[];return t.length>0&&a.push(L(t,"geometry")),n.length>0&&(a.push(L(n,"westHemisphereGeometry")),a.push(L(n,"eastHemisphereGeometry"))),a};const M=new i.Cartesian3,z=new i.Cartesian3,D=new i.Cartesian3,G=new i.Cartesian3;v.computeNormal=function(e){const t=e.indices,n=e.attributes,r=n.position.values,s=n.position.values.length/3,u=t.length,l=new Array(s),p=new Array(u/3),d=new Array(u);let y;for(y=0;y<s;y++)l[y]={indexOffset:0,count:0,currentCount:0};let f=0;for(y=0;y<u;y+=3){const e=t[y],n=t[y+1],a=t[y+2],s=3*e,o=3*n,u=3*a;z.x=r[s],z.y=r[s+1],z.z=r[s+2],D.x=r[o],D.y=r[o+1],D.z=r[o+2],G.x=r[u],G.y=r[u+1],G.z=r[u+2],l[e].count++,l[n].count++,l[a].count++,i.Cartesian3.subtract(D,z,D),i.Cartesian3.subtract(G,z,G),p[f]=i.Cartesian3.cross(D,G,new i.Cartesian3),f++}let m,C=0;for(y=0;y<s;y++)l[y].indexOffset+=C,C+=l[y].count;for(f=0,y=0;y<u;y+=3){m=l[t[y]];let e=m.indexOffset+m.currentCount;d[e]=f,m.currentCount++,m=l[t[y+1]],e=m.indexOffset+m.currentCount,d[e]=f,m.currentCount++,m=l[t[y+2]],e=m.indexOffset+m.currentCount,d[e]=f,m.currentCount++,f++}const h=new Float32Array(3*s);for(y=0;y<s;y++){const e=3*y;if(m=l[y],i.Cartesian3.clone(i.Cartesian3.ZERO,M),m.count>0){for(f=0;f<m.count;f++)i.Cartesian3.add(M,p[d[m.indexOffset+f]],M);i.Cartesian3.equalsEpsilon(i.Cartesian3.ZERO,M,a.CesiumMath.EPSILON10)&&i.Cartesian3.clone(p[d[m.indexOffset]],M)}i.Cartesian3.equalsEpsilon(i.Cartesian3.ZERO,M,a.CesiumMath.EPSILON10)&&(M.z=1),i.Cartesian3.normalize(M,M),h[e]=M.x,h[e+1]=M.y,h[e+2]=M.z}return e.attributes.normal=new c.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:h}),e};const V=new i.Cartesian3,R=new i.Cartesian3,F=new i.Cartesian3;v.computeTangentAndBitangent=function(e){e.attributes;const t=e.indices,n=e.attributes.position.values,r=e.attributes.normal.values,a=e.attributes.st.values,s=e.attributes.position.values.length/3,u=t.length,l=new Array(3*s);let p,d,y,f;for(p=0;p<l.length;p++)l[p]=0;for(p=0;p<u;p+=3){const e=t[p],i=t[p+1],r=t[p+2];d=3*e,y=3*i,f=3*r;const s=2*e,o=2*i,u=2*r,c=n[d],m=n[d+1],C=n[d+2],h=a[s],v=a[s+1],b=a[o+1]-v,g=a[u+1]-v,A=1/((a[o]-h)*g-(a[u]-h)*b),T=(g*(n[y]-c)-b*(n[f]-c))*A,x=(g*(n[y+1]-m)-b*(n[f+1]-m))*A,P=(g*(n[y+2]-C)-b*(n[f+2]-C))*A;l[d]+=T,l[d+1]+=x,l[d+2]+=P,l[y]+=T,l[y+1]+=x,l[y+2]+=P,l[f]+=T,l[f+1]+=x,l[f+2]+=P}const m=new Float32Array(3*s),C=new Float32Array(3*s);for(p=0;p<s;p++){d=3*p,y=d+1,f=d+2;const e=i.Cartesian3.fromArray(r,d,V),t=i.Cartesian3.fromArray(l,d,F),n=i.Cartesian3.dot(e,t);i.Cartesian3.multiplyByScalar(e,n,R),i.Cartesian3.normalize(i.Cartesian3.subtract(t,R,t),t),m[d]=t.x,m[y]=t.y,m[f]=t.z,i.Cartesian3.normalize(i.Cartesian3.cross(e,t,t),t),C[d]=t.x,C[y]=t.y,C[f]=t.z}return e.attributes.tangent=new c.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:m}),e.attributes.bitangent=new c.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:C}),e};const B=new n.Cartesian2,_=new i.Cartesian3,k=new i.Cartesian3,q=new i.Cartesian3;let U=new n.Cartesian2;function Y(e){switch(e.primitiveType){case c.PrimitiveType.TRIANGLE_FAN:return function(e){const t=c.Geometry.computeNumberOfVertices(e),n=l.IndexDatatype.createTypedArray(t,3*(t-2));n[0]=1,n[1]=0,n[2]=2;let i=3;for(let e=3;e<t;++e)n[i++]=e-1,n[i++]=0,n[i++]=e;return e.indices=n,e.primitiveType=c.PrimitiveType.TRIANGLES,e}(e);case c.PrimitiveType.TRIANGLE_STRIP:return function(e){const t=c.Geometry.computeNumberOfVertices(e),n=l.IndexDatatype.createTypedArray(t,3*(t-2));n[0]=0,n[1]=1,n[2]=2,t>3&&(n[3]=0,n[4]=2,n[5]=3);let i=6;for(let e=3;e<t-1;e+=2)n[i++]=e,n[i++]=e-1,n[i++]=e+1,e+2<t&&(n[i++]=e,n[i++]=e+1,n[i++]=e+2);return e.indices=n,e.primitiveType=c.PrimitiveType.TRIANGLES,e}(e);case c.PrimitiveType.TRIANGLES:return function(e){if(r.defined(e.indices))return e;const t=c.Geometry.computeNumberOfVertices(e),n=l.IndexDatatype.createTypedArray(t,t);for(let e=0;e<t;++e)n[e]=e;return e.indices=n,e}(e);case c.PrimitiveType.LINE_STRIP:return function(e){const t=c.Geometry.computeNumberOfVertices(e),n=l.IndexDatatype.createTypedArray(t,2*(t-1));n[0]=0,n[1]=1;let i=2;for(let e=2;e<t;++e)n[i++]=e-1,n[i++]=e;return e.indices=n,e.primitiveType=c.PrimitiveType.LINES,e}(e);case c.PrimitiveType.LINE_LOOP:return function(e){const t=c.Geometry.computeNumberOfVertices(e),n=l.IndexDatatype.createTypedArray(t,2*t);n[0]=0,n[1]=1;let i=2;for(let e=2;e<t;++e)n[i++]=e-1,n[i++]=e;return n[i++]=t-1,n[i]=0,e.indices=n,e.primitiveType=c.PrimitiveType.LINES,e}(e);case c.PrimitiveType.LINES:return function(e){if(r.defined(e.indices))return e;const t=c.Geometry.computeNumberOfVertices(e),n=l.IndexDatatype.createTypedArray(t,t);for(let e=0;e<t;++e)n[e]=e;return e.indices=n,e}(e)}return e}function Z(e,t){Math.abs(e.y)<a.CesiumMath.EPSILON6&&(e.y=t?-a.CesiumMath.EPSILON6:a.CesiumMath.EPSILON6)}v.compressVertices=function(e){const a=e.attributes.extrudeDirection;let s,u;if(r.defined(a)){const n=a.values;u=n.length/3;const r=new Float32Array(2*u);let l=0;for(s=0;s<u;++s)i.Cartesian3.fromArray(n,3*s,_),i.Cartesian3.equals(_,i.Cartesian3.ZERO)?l+=2:(U=t.AttributeCompression.octEncodeInRange(_,65535,U),r[l++]=U.x,r[l++]=U.y);return e.attributes.compressedAttributes=new c.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:r}),delete e.attributes.extrudeDirection,e}const l=e.attributes.normal,p=e.attributes.st,d=r.defined(l),y=r.defined(p);if(!d&&!y)return e;const f=e.attributes.tangent,m=e.attributes.bitangent,C=r.defined(f),h=r.defined(m);let v,b,g,A;d&&(v=l.values),y&&(b=p.values),C&&(g=f.values),h&&(A=m.values);u=(d?v.length:b.length)/(d?3:2);let T=u,x=y&&d?2:1;x+=C||h?1:0,T*=x;const P=new Float32Array(T);let w=0;for(s=0;s<u;++s){y&&(n.Cartesian2.fromArray(b,2*s,B),P[w++]=t.AttributeCompression.compressTextureCoordinates(B));const e=3*s;d&&r.defined(g)&&r.defined(A)?(i.Cartesian3.fromArray(v,e,_),i.Cartesian3.fromArray(g,e,k),i.Cartesian3.fromArray(A,e,q),t.AttributeCompression.octPack(_,k,q,B),P[w++]=B.x,P[w++]=B.y):(d&&(i.Cartesian3.fromArray(v,e,_),P[w++]=t.AttributeCompression.octEncodeFloat(_)),C&&(i.Cartesian3.fromArray(g,e,_),P[w++]=t.AttributeCompression.octEncodeFloat(_)),h&&(i.Cartesian3.fromArray(A,e,_),P[w++]=t.AttributeCompression.octEncodeFloat(_)))}return e.attributes.compressedAttributes=new c.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:x,values:P}),d&&delete e.attributes.normal,y&&delete e.attributes.st,h&&delete e.attributes.bitangent,C&&delete e.attributes.tangent,e};const H=new i.Cartesian3;function W(e,t,n,r){i.Cartesian3.add(e,i.Cartesian3.multiplyByScalar(i.Cartesian3.subtract(t,e,H),e.y/(e.y-t.y),H),n),i.Cartesian3.clone(n,r),Z(n,!0),Z(r,!1)}const X=new i.Cartesian3,j=new i.Cartesian3,J=new i.Cartesian3,K=new i.Cartesian3,Q={positions:new Array(7),indices:new Array(9)};function $(e,t,n){if(e.x>=0||t.x>=0||n.x>=0)return;!function(e,t,n){if(0!==e.y&&0!==t.y&&0!==n.y)return Z(e,e.y<0),Z(t,t.y<0),void Z(n,n.y<0);const i=Math.abs(e.y),r=Math.abs(t.y),s=Math.abs(n.y);let o;o=i>r?i>s?a.CesiumMath.sign(e.y):a.CesiumMath.sign(n.y):r>s?a.CesiumMath.sign(t.y):a.CesiumMath.sign(n.y);const u=o<0;Z(e,u),Z(t,u),Z(n,u)}(e,t,n);const i=e.y<0,r=t.y<0,s=n.y<0;let o=0;o+=i?1:0,o+=r?1:0,o+=s?1:0;const u=Q.indices;1===o?(u[1]=3,u[2]=4,u[5]=6,u[7]=6,u[8]=5,i?(W(e,t,X,J),W(e,n,j,K),u[0]=0,u[3]=1,u[4]=2,u[6]=1):r?(W(t,n,X,J),W(t,e,j,K),u[0]=1,u[3]=2,u[4]=0,u[6]=2):s&&(W(n,e,X,J),W(n,t,j,K),u[0]=2,u[3]=0,u[4]=1,u[6]=0)):2===o&&(u[2]=4,u[4]=4,u[5]=3,u[7]=5,u[8]=6,i?r?s||(W(n,e,X,J),W(n,t,j,K),u[0]=0,u[1]=1,u[3]=0,u[6]=2):(W(t,n,X,J),W(t,e,j,K),u[0]=2,u[1]=0,u[3]=2,u[6]=1):(W(e,t,X,J),W(e,n,j,K),u[0]=1,u[1]=2,u[3]=1,u[6]=0));const c=Q.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,1!==o&&2!==o||(c[3]=X,c[4]=j,c[5]=J,c[6]=K,c.length=7),Q}function ee(e,t){const n=e.attributes;if(0===n.position.values.length)return;for(const e in n)if(n.hasOwnProperty(e)&&r.defined(n[e])&&r.defined(n[e].values)){const t=n[e];t.values=o.ComponentDatatype.createTypedArray(t.componentDatatype,t.values)}const i=c.Geometry.computeNumberOfVertices(e);return e.indices=l.IndexDatatype.createTypedArray(i,e.indices),t&&(e.boundingSphere=s.BoundingSphere.fromVertices(n.position.values)),e}function te(e){const t=e.attributes,n={};for(const e in t)if(t.hasOwnProperty(e)&&r.defined(t[e])&&r.defined(t[e].values)){const i=t[e];n[e]=new c.GeometryAttribute({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new c.Geometry({attributes:n,indices:[],primitiveType:e.primitiveType})}function ne(e,t,n){const i=r.defined(e.geometry.boundingSphere);t=ee(t,i),n=ee(n,i),r.defined(n)&&!r.defined(t)?e.geometry=n:!r.defined(n)&&r.defined(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function ie(e,t){const n=new e,i=new e,r=new e;return function(a,s,o,u,c,l,p,d){const y=e.fromArray(c,a*t,n),f=e.fromArray(c,s*t,i),m=e.fromArray(c,o*t,r);e.multiplyByScalar(y,u.x,y),e.multiplyByScalar(f,u.y,f),e.multiplyByScalar(m,u.z,m);const C=e.add(y,f,y);e.add(C,m,C),d&&e.normalize(C,C),e.pack(C,l,p*t)}}const re=ie(n.Cartesian4,4),ae=ie(i.Cartesian3,3),se=ie(n.Cartesian2,2),oe=function(e,t,n,i,r,s,o){const u=r[e]*i.x,c=r[t]*i.y,l=r[n]*i.z;s[o]=u+c+l>a.CesiumMath.EPSILON6?1:0},ue=new i.Cartesian3,ce=new i.Cartesian3,le=new i.Cartesian3,pe=new i.Cartesian3;function de(e,t,s,o,u,c,l,p,d,C,h,v,b,g,A,T){if(!(r.defined(c)||r.defined(l)||r.defined(p)||r.defined(d)||r.defined(C)||0!==g))return;const x=function(e,t,s,o,u){let c,l,p,d,C,h,v,b;if(r.defined(u)||(u=new i.Cartesian3),r.defined(t.z)){if(i.Cartesian3.equalsEpsilon(e,t,a.CesiumMath.EPSILON14))return i.Cartesian3.clone(i.Cartesian3.UNIT_X,u);if(i.Cartesian3.equalsEpsilon(e,s,a.CesiumMath.EPSILON14))return i.Cartesian3.clone(i.Cartesian3.UNIT_Y,u);if(i.Cartesian3.equalsEpsilon(e,o,a.CesiumMath.EPSILON14))return i.Cartesian3.clone(i.Cartesian3.UNIT_Z,u);c=i.Cartesian3.subtract(s,t,y),l=i.Cartesian3.subtract(o,t,f),p=i.Cartesian3.subtract(e,t,m),d=i.Cartesian3.dot(c,c),C=i.Cartesian3.dot(c,l),h=i.Cartesian3.dot(c,p),v=i.Cartesian3.dot(l,l),b=i.Cartesian3.dot(l,p)}else{if(n.Cartesian2.equalsEpsilon(e,t,a.CesiumMath.EPSILON14))return i.Cartesian3.clone(i.Cartesian3.UNIT_X,u);if(n.Cartesian2.equalsEpsilon(e,s,a.CesiumMath.EPSILON14))return i.Cartesian3.clone(i.Cartesian3.UNIT_Y,u);if(n.Cartesian2.equalsEpsilon(e,o,a.CesiumMath.EPSILON14))return i.Cartesian3.clone(i.Cartesian3.UNIT_Z,u);c=n.Cartesian2.subtract(s,t,y),l=n.Cartesian2.subtract(o,t,f),p=n.Cartesian2.subtract(e,t,m),d=n.Cartesian2.dot(c,c),C=n.Cartesian2.dot(c,l),h=n.Cartesian2.dot(c,p),v=n.Cartesian2.dot(l,l),b=n.Cartesian2.dot(l,p)}u.y=v*h-C*b,u.z=d*b-C*h;const g=d*v-C*C;if(0!==g)return u.y/=g,u.z/=g,u.x=1-u.y-u.z,u}(o,i.Cartesian3.fromArray(u,3*e,ue),i.Cartesian3.fromArray(u,3*t,ce),i.Cartesian3.fromArray(u,3*s,le),pe);if(r.defined(x)){if(r.defined(c)&&ae(e,t,s,x,c,v.normal.values,T,!0),r.defined(C)){const n=i.Cartesian3.fromArray(C,3*e,ue),r=i.Cartesian3.fromArray(C,3*t,ce),a=i.Cartesian3.fromArray(C,3*s,le);let o;i.Cartesian3.multiplyByScalar(n,x.x,n),i.Cartesian3.multiplyByScalar(r,x.y,r),i.Cartesian3.multiplyByScalar(a,x.z,a),i.Cartesian3.equals(n,i.Cartesian3.ZERO)&&i.Cartesian3.equals(r,i.Cartesian3.ZERO)&&i.Cartesian3.equals(a,i.Cartesian3.ZERO)?(o=ue,o.x=0,o.y=0,o.z=0):(o=i.Cartesian3.add(n,r,n),i.Cartesian3.add(o,a,o),i.Cartesian3.normalize(o,o)),i.Cartesian3.pack(o,v.extrudeDirection.values,3*T)}if(r.defined(h)&&oe(e,t,s,x,h,v.applyOffset.values,T),r.defined(l)&&ae(e,t,s,x,l,v.tangent.values,T,!0),r.defined(p)&&ae(e,t,s,x,p,v.bitangent.values,T,!0),r.defined(d)&&se(e,t,s,x,d,v.st.values,T),g>0)for(let n=0;n<g;n++){const i=b[n];ye(e,t,s,x,T,A[i],v[i])}}}function ye(e,t,n,i,r,a,s){const o=a.componentsPerAttribute,u=a.values,c=s.values;switch(o){case 4:re(e,t,n,i,u,c,r,!1);break;case 3:ae(e,t,n,i,u,c,r,!1);break;case 2:se(e,t,n,i,u,c,r,!1);break;default:c[r]=u[e]*i.x+u[t]*i.y+u[n]*i.z}}function fe(e,t,n,i,r,a){const s=e.position.values.length/3;if(-1!==r){const o=i[r],u=n[o];return-1===u?(n[o]=s,e.position.values.push(a.x,a.y,a.z),t.push(s),s):(t.push(u),u)}return e.position.values.push(a.x,a.y,a.z),t.push(s),s}const me={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function Ce(e){const t=e.geometry,n=t.attributes,a=n.position.values,s=r.defined(n.normal)?n.normal.values:void 0,o=r.defined(n.bitangent)?n.bitangent.values:void 0,u=r.defined(n.tangent)?n.tangent.values:void 0,c=r.defined(n.st)?n.st.values:void 0,l=r.defined(n.extrudeDirection)?n.extrudeDirection.values:void 0,p=r.defined(n.applyOffset)?n.applyOffset.values:void 0,d=t.indices,y=[];for(const e in n)n.hasOwnProperty(e)&&!me[e]&&r.defined(n[e])&&y.push(e);const f=y.length,m=te(t),C=te(t);let h,v,b,g,A;const T=[];T.length=a.length/3;const x=[];for(x.length=a.length/3,A=0;A<T.length;++A)T[A]=-1,x[A]=-1;const P=d.length;for(A=0;A<P;A+=3){const e=d[A],t=d[A+1],P=d[A+2];let w=i.Cartesian3.fromArray(a,3*e),S=i.Cartesian3.fromArray(a,3*t),I=i.Cartesian3.fromArray(a,3*P);const O=$(w,S,I);if(r.defined(O)&&O.positions.length>3){const i=O.positions,r=O.indices,w=r.length;for(let S=0;S<w;++S){const w=r[S],I=i[w];I.y<0?(h=C.attributes,v=C.indices,b=T):(h=m.attributes,v=m.indices,b=x),g=fe(h,v,b,d,w<3?A+w:-1,I),de(e,t,P,I,a,s,u,o,c,l,p,h,y,f,n,g)}}else r.defined(O)&&(w=O.positions[0],S=O.positions[1],I=O.positions[2]),w.y<0?(h=C.attributes,v=C.indices,b=T):(h=m.attributes,v=m.indices,b=x),g=fe(h,v,b,d,A,w),de(e,t,P,w,a,s,u,o,c,l,p,h,y,f,n,g),g=fe(h,v,b,d,A+1,S),de(e,t,P,S,a,s,u,o,c,l,p,h,y,f,n,g),g=fe(h,v,b,d,A+2,I),de(e,t,P,I,a,s,u,o,c,l,p,h,y,f,n,g)}ne(e,C,m)}const he=d.Plane.fromPointNormal(i.Cartesian3.ZERO,i.Cartesian3.UNIT_Y),ve=new i.Cartesian3,be=new i.Cartesian3;function ge(e,t,n,s,o,u,c){if(!r.defined(c))return;const l=i.Cartesian3.fromArray(s,3*e,ue);i.Cartesian3.equalsEpsilon(l,n,a.CesiumMath.EPSILON10)?u.applyOffset.values[o]=c[e]:u.applyOffset.values[o]=c[t]}function Ae(e){const t=e.geometry,n=t.attributes,s=n.position.values,o=r.defined(n.applyOffset)?n.applyOffset.values:void 0,u=t.indices,c=te(t),l=te(t);let d;const y=u.length,f=[];f.length=s.length/3;const m=[];for(m.length=s.length/3,d=0;d<f.length;++d)f[d]=-1,m[d]=-1;for(d=0;d<y;d+=2){const e=u[d],t=u[d+1],n=i.Cartesian3.fromArray(s,3*e,ue),y=i.Cartesian3.fromArray(s,3*t,ce);let C;Math.abs(n.y)<a.CesiumMath.EPSILON6&&(n.y<0?n.y=-a.CesiumMath.EPSILON6:n.y=a.CesiumMath.EPSILON6),Math.abs(y.y)<a.CesiumMath.EPSILON6&&(y.y<0?y.y=-a.CesiumMath.EPSILON6:y.y=a.CesiumMath.EPSILON6);let h=c.attributes,v=c.indices,b=m,g=l.attributes,A=l.indices,T=f;const x=p.IntersectionTests.lineSegmentPlane(n,y,he,le);if(r.defined(x)){const r=i.Cartesian3.multiplyByScalar(i.Cartesian3.UNIT_Y,5*a.CesiumMath.EPSILON9,ve);n.y<0&&(i.Cartesian3.negate(r,r),h=l.attributes,v=l.indices,b=f,g=c.attributes,A=c.indices,T=m);const p=i.Cartesian3.add(x,r,be);C=fe(h,v,b,u,d,n),ge(e,t,n,s,C,h,o),C=fe(h,v,b,u,-1,p),ge(e,t,p,s,C,h,o),i.Cartesian3.negate(r,r),i.Cartesian3.add(x,r,p),C=fe(g,A,T,u,-1,p),ge(e,t,p,s,C,g,o),C=fe(g,A,T,u,d+1,y),ge(e,t,y,s,C,g,o)}else{let i,r,a;n.y<0?(i=l.attributes,r=l.indices,a=f):(i=c.attributes,r=c.indices,a=m),C=fe(i,r,a,u,d,n),ge(e,t,n,s,C,i,o),C=fe(i,r,a,u,d+1,y),ge(e,t,y,s,C,i,o)}}ne(e,l,c)}const Te=new n.Cartesian2,xe=new n.Cartesian2,Pe=new i.Cartesian3,we=new i.Cartesian3,Se=new i.Cartesian3,Ie=new i.Cartesian3,Oe=new i.Cartesian3,Ee=new i.Cartesian3,Ne=new n.Cartesian4;function Le(e){const t=e.attributes,n=t.position.values,r=t.prevPosition.values,a=t.nextPosition.values,s=n.length;for(let e=0;e<s;e+=3){const t=i.Cartesian3.unpack(n,e,Pe);if(t.x>0)continue;const o=i.Cartesian3.unpack(r,e,we);(t.y<0&&o.y>0||t.y>0&&o.y<0)&&(e-3>0?(r[e]=n[e-3],r[e+1]=n[e-2],r[e+2]=n[e-1]):i.Cartesian3.pack(t,r,e));const u=i.Cartesian3.unpack(a,e,Se);(t.y<0&&u.y>0||t.y>0&&u.y<0)&&(e+3<s?(a[e]=n[e+3],a[e+1]=n[e+4],a[e+2]=n[e+5]):i.Cartesian3.pack(t,a,e))}}const Me=5*a.CesiumMath.EPSILON9,ze=a.CesiumMath.EPSILON6;v.splitLongitude=function(e){const t=e.geometry,o=t.boundingSphere;if(r.defined(o)){if(o.center.x-o.radius>0||s.BoundingSphere.intersectPlane(o,d.Plane.ORIGIN_ZX_PLANE)!==s.Intersect.INTERSECTING)return e}if(t.geometryType!==c.GeometryType.NONE)switch(t.geometryType){case c.GeometryType.POLYLINES:!function(e){const t=e.geometry,s=t.attributes,o=s.position.values,u=s.prevPosition.values,c=s.nextPosition.values,l=s.expandAndWidth.values,d=r.defined(s.st)?s.st.values:void 0,y=r.defined(s.color)?s.color.values:void 0,f=te(t),m=te(t);let C,h,v,b=!1;const g=o.length/3;for(C=0;C<g;C+=4){const e=C,t=C+2,s=i.Cartesian3.fromArray(o,3*e,Pe),g=i.Cartesian3.fromArray(o,3*t,we);if(Math.abs(s.y)<ze)for(s.y=ze*(g.y<0?-1:1),o[3*C+1]=s.y,o[3*(C+1)+1]=s.y,h=3*e;h<3*e+12;h+=3)u[h]=o[3*C],u[h+1]=o[3*C+1],u[h+2]=o[3*C+2];if(Math.abs(g.y)<ze)for(g.y=ze*(s.y<0?-1:1),o[3*(C+2)+1]=g.y,o[3*(C+3)+1]=g.y,h=3*e;h<3*e+12;h+=3)c[h]=o[3*(C+2)],c[h+1]=o[3*(C+2)+1],c[h+2]=o[3*(C+2)+2];let A=f.attributes,T=f.indices,x=m.attributes,P=m.indices;const w=p.IntersectionTests.lineSegmentPlane(s,g,he,Ie);if(r.defined(w)){b=!0;const o=i.Cartesian3.multiplyByScalar(i.Cartesian3.UNIT_Y,Me,Oe);s.y<0&&(i.Cartesian3.negate(o,o),A=m.attributes,T=m.indices,x=f.attributes,P=f.indices);const p=i.Cartesian3.add(w,o,Ee);A.position.values.push(s.x,s.y,s.z,s.x,s.y,s.z),A.position.values.push(p.x,p.y,p.z),A.position.values.push(p.x,p.y,p.z),A.prevPosition.values.push(u[3*e],u[3*e+1],u[3*e+2]),A.prevPosition.values.push(u[3*e+3],u[3*e+4],u[3*e+5]),A.prevPosition.values.push(s.x,s.y,s.z,s.x,s.y,s.z),A.nextPosition.values.push(p.x,p.y,p.z),A.nextPosition.values.push(p.x,p.y,p.z),A.nextPosition.values.push(p.x,p.y,p.z),A.nextPosition.values.push(p.x,p.y,p.z),i.Cartesian3.negate(o,o),i.Cartesian3.add(w,o,p),x.position.values.push(p.x,p.y,p.z),x.position.values.push(p.x,p.y,p.z),x.position.values.push(g.x,g.y,g.z,g.x,g.y,g.z),x.prevPosition.values.push(p.x,p.y,p.z),x.prevPosition.values.push(p.x,p.y,p.z),x.prevPosition.values.push(p.x,p.y,p.z),x.prevPosition.values.push(p.x,p.y,p.z),x.nextPosition.values.push(g.x,g.y,g.z,g.x,g.y,g.z),x.nextPosition.values.push(c[3*t],c[3*t+1],c[3*t+2]),x.nextPosition.values.push(c[3*t+3],c[3*t+4],c[3*t+5]);const S=n.Cartesian2.fromArray(l,2*e,Te),I=Math.abs(S.y);A.expandAndWidth.values.push(-1,I,1,I),A.expandAndWidth.values.push(-1,-I,1,-I),x.expandAndWidth.values.push(-1,I,1,I),x.expandAndWidth.values.push(-1,-I,1,-I);let O=i.Cartesian3.magnitudeSquared(i.Cartesian3.subtract(w,s,Se));if(O/=i.Cartesian3.magnitudeSquared(i.Cartesian3.subtract(g,s,Se)),r.defined(y)){const i=n.Cartesian4.fromArray(y,4*e,Ne),r=n.Cartesian4.fromArray(y,4*t,Ne),s=a.CesiumMath.lerp(i.x,r.x,O),o=a.CesiumMath.lerp(i.y,r.y,O),u=a.CesiumMath.lerp(i.z,r.z,O),c=a.CesiumMath.lerp(i.w,r.w,O);for(h=4*e;h<4*e+8;++h)A.color.values.push(y[h]);for(A.color.values.push(s,o,u,c),A.color.values.push(s,o,u,c),x.color.values.push(s,o,u,c),x.color.values.push(s,o,u,c),h=4*t;h<4*t+8;++h)x.color.values.push(y[h])}if(r.defined(d)){const i=n.Cartesian2.fromArray(d,2*e,Te),r=n.Cartesian2.fromArray(d,2*(C+3),xe),s=a.CesiumMath.lerp(i.x,r.x,O);for(h=2*e;h<2*e+4;++h)A.st.values.push(d[h]);for(A.st.values.push(s,i.y),A.st.values.push(s,r.y),x.st.values.push(s,i.y),x.st.values.push(s,r.y),h=2*t;h<2*t+4;++h)x.st.values.push(d[h])}v=A.position.values.length/3-4,T.push(v,v+2,v+1),T.push(v+1,v+2,v+3),v=x.position.values.length/3-4,P.push(v,v+2,v+1),P.push(v+1,v+2,v+3)}else{let e,t;for(s.y<0?(e=m.attributes,t=m.indices):(e=f.attributes,t=f.indices),e.position.values.push(s.x,s.y,s.z),e.position.values.push(s.x,s.y,s.z),e.position.values.push(g.x,g.y,g.z),e.position.values.push(g.x,g.y,g.z),h=3*C;h<3*C+12;++h)e.prevPosition.values.push(u[h]),e.nextPosition.values.push(c[h]);for(h=2*C;h<2*C+8;++h)e.expandAndWidth.values.push(l[h]),r.defined(d)&&e.st.values.push(d[h]);if(r.defined(y))for(h=4*C;h<4*C+16;++h)e.color.values.push(y[h]);v=e.position.values.length/3-4,t.push(v,v+2,v+1),t.push(v+1,v+2,v+3)}}b&&(Le(m),Le(f)),ne(e,m,f)}(e);break;case c.GeometryType.TRIANGLES:Ce(e);break;case c.GeometryType.LINES:Ae(e)}else Y(t),t.primitiveType===c.PrimitiveType.TRIANGLES?Ce(e):t.primitiveType===c.PrimitiveType.LINES&&Ae(e);return e};var De=v;e.GeometryPipeline=De})); diff --git a/public/static/Cesium/Workers/IndexDatatype-a9b1bc18.js b/public/static/Cesium/Workers/IndexDatatype-a9b1bc18.js new file mode 100644 index 0000000..0d56cc6 --- /dev/null +++ b/public/static/Cesium/Workers/IndexDatatype-a9b1bc18.js @@ -0,0 +1 @@ +define(["exports","./defaultValue-f6d5e6da","./Math-355606c6","./WebGLConstants-7f557f93"],(function(n,r,e,t){"use strict";const N={UNSIGNED_BYTE:t.WebGLConstants.UNSIGNED_BYTE,UNSIGNED_SHORT:t.WebGLConstants.UNSIGNED_SHORT,UNSIGNED_INT:t.WebGLConstants.UNSIGNED_INT,getSizeInBytes:function(n){switch(n){case N.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case N.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case N.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},fromSizeInBytes:function(n){switch(n){case 2:return N.UNSIGNED_SHORT;case 4:return N.UNSIGNED_INT;case 1:return N.UNSIGNED_BYTE}},validate:function(n){return r.defined(n)&&(n===N.UNSIGNED_BYTE||n===N.UNSIGNED_SHORT||n===N.UNSIGNED_INT)},createTypedArray:function(n,r){return n>=e.CesiumMath.SIXTY_FOUR_KILOBYTES?new Uint32Array(r):new Uint16Array(r)},createTypedArrayFromArrayBuffer:function(n,r,t,N){return n>=e.CesiumMath.SIXTY_FOUR_KILOBYTES?new Uint32Array(r,t,N):new Uint16Array(r,t,N)},fromTypedArray:function(n){return n instanceof Uint8Array?N.UNSIGNED_BYTE:n instanceof Uint16Array?N.UNSIGNED_SHORT:n instanceof Uint32Array?N.UNSIGNED_INT:void 0}};var E=Object.freeze(N);n.IndexDatatype=E})); diff --git a/public/static/Cesium/Workers/IntersectionTests-863687a2.js b/public/static/Cesium/Workers/IntersectionTests-863687a2.js new file mode 100644 index 0000000..6da6d9e --- /dev/null +++ b/public/static/Cesium/Workers/IntersectionTests-863687a2.js @@ -0,0 +1 @@ +define(["exports","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Transforms-c842a68c","./Math-355606c6"],(function(t,n,e,a,i){"use strict";const r={};function s(t,n,e){const a=t+n;return i.CesiumMath.sign(t)!==i.CesiumMath.sign(n)&&Math.abs(a/Math.max(Math.abs(t),Math.abs(n)))<e?0:a}r.computeDiscriminant=function(t,n,e){return n*n-4*t*e},r.computeRealRoots=function(t,n,e){let a;if(0===t)return 0===n?[]:[-e/n];if(0===n){if(0===e)return[0,0];const n=Math.abs(e),r=Math.abs(t);if(n<r&&n/r<i.CesiumMath.EPSILON14)return[0,0];if(n>r&&r/n<i.CesiumMath.EPSILON14)return[];if(a=-e/t,a<0)return[];const s=Math.sqrt(a);return[-s,s]}if(0===e)return a=-n/t,a<0?[a,0]:[0,a];const r=s(n*n,-(4*t*e),i.CesiumMath.EPSILON14);if(r<0)return[];const o=-.5*s(n,i.CesiumMath.sign(n)*Math.sqrt(r),i.CesiumMath.EPSILON14);return n>0?[o/t,e/o]:[e/o,o/t]};var o=r;const c={};function u(t,n,e,a){const i=t,r=n/3,s=e/3,o=a,c=i*s,u=r*o,l=r*r,C=s*s,M=i*s-l,h=i*o-r*s,m=r*o-C,f=4*M*m-h*h;let d,g;if(f<0){let t,n,e;l*u>=c*C?(t=i,n=M,e=-2*r*M+i*h):(t=o,n=m,e=-o*h+2*s*m);const a=-(e<0?-1:1)*Math.abs(t)*Math.sqrt(-f);g=-e+a;const p=g/2,w=p<0?-Math.pow(-p,1/3):Math.pow(p,1/3),R=g===a?-w:-n/w;return d=n<=0?w+R:-e/(w*w+R*R+n),l*u>=c*C?[(d-r)/i]:[-o/(d+s)]}const p=M,w=-2*r*M+i*h,R=m,S=-o*h+2*s*m,O=Math.sqrt(f),x=Math.sqrt(3)/2;let y=Math.abs(Math.atan2(i*O,-w)/3);d=2*Math.sqrt(-p);let P=Math.cos(y);g=d*P;let N=d*(-P/2-x*Math.sin(y));const b=g+N>2*r?g-r:N-r,q=i,L=b/q;y=Math.abs(Math.atan2(o*O,-S)/3),d=2*Math.sqrt(-R),P=Math.cos(y),g=d*P,N=d*(-P/2-x*Math.sin(y));const I=-o,E=g+N<2*s?g+s:N+s,v=I/E,z=-b*E-q*I,T=(s*z-r*(b*I))/(-r*z+s*(q*E));return L<=T?L<=v?T<=v?[L,T,v]:[L,v,T]:[v,L,T]:L<=v?[T,L,v]:T<=v?[T,v,L]:[v,T,L]}c.computeDiscriminant=function(t,n,e,a){const i=n*n,r=e*e;return 18*t*n*e*a+i*r-27*(t*t)*(a*a)-4*(t*r*e+i*n*a)},c.computeRealRoots=function(t,n,e,a){let i,r;if(0===t)return o.computeRealRoots(n,e,a);if(0===n){if(0===e){if(0===a)return[0,0,0];r=-a/t;const n=r<0?-Math.pow(-r,1/3):Math.pow(r,1/3);return[n,n,n]}return 0===a?(i=o.computeRealRoots(t,0,e),0===i.Length?[0]:[i[0],0,i[1]]):u(t,0,e,a)}return 0===e?0===a?(r=-n/t,r<0?[r,0,0]:[0,0,r]):u(t,n,0,a):0===a?(i=o.computeRealRoots(t,n,e),0===i.length?[0]:i[1]<=0?[i[0],i[1],0]:i[0]>=0?[0,i[0],i[1]]:[i[0],0,i[1]]):u(t,n,e,a)};var l=c;const C={};function M(t,n,e,a){const r=t*t,s=n-3*r/8,c=e-n*t/2+r*t/8,u=a-e*t/4+n*r/16-3*r*r/256,C=l.computeRealRoots(1,2*s,s*s-4*u,-c*c);if(C.length>0){const n=-t/4,e=C[C.length-1];if(Math.abs(e)<i.CesiumMath.EPSILON14){const t=o.computeRealRoots(1,s,u);if(2===t.length){const e=t[0],a=t[1];let i;if(e>=0&&a>=0){const t=Math.sqrt(e),i=Math.sqrt(a);return[n-i,n-t,n+t,n+i]}if(e>=0&&a<0)return i=Math.sqrt(e),[n-i,n+i];if(e<0&&a>=0)return i=Math.sqrt(a),[n-i,n+i]}return[]}if(e>0){const t=Math.sqrt(e),a=(s+e-c/t)/2,i=(s+e+c/t)/2,r=o.computeRealRoots(1,t,a),u=o.computeRealRoots(1,-t,i);return 0!==r.length?(r[0]+=n,r[1]+=n,0!==u.length?(u[0]+=n,u[1]+=n,r[1]<=u[0]?[r[0],r[1],u[0],u[1]]:u[1]<=r[0]?[u[0],u[1],r[0],r[1]]:r[0]>=u[0]&&r[1]<=u[1]?[u[0],r[0],r[1],u[1]]:u[0]>=r[0]&&u[1]<=r[1]?[r[0],u[0],u[1],r[1]]:r[0]>u[0]&&r[0]<u[1]?[u[0],r[0],u[1],r[1]]:[r[0],u[0],r[1],u[1]]):r):0!==u.length?(u[0]+=n,u[1]+=n,u):[]}}return[]}function h(t,n,e,a){const r=t*t,s=-2*n,c=e*t+n*n-4*a,u=r*a-e*n*t+e*e,C=l.computeRealRoots(1,s,c,u);if(C.length>0){const s=C[0],c=n-s,u=c*c,l=t/2,M=c/2,h=u-4*a,m=u+4*Math.abs(a),f=r-4*s,d=r+4*Math.abs(s);let g,p,w,R,S,O;if(s<0||h*d<f*m){const n=Math.sqrt(f);g=n/2,p=0===n?0:(t*M-e)/n}else{const n=Math.sqrt(h);g=0===n?0:(t*M-e)/n,p=n/2}0===l&&0===g?(w=0,R=0):i.CesiumMath.sign(l)===i.CesiumMath.sign(g)?(w=l+g,R=s/w):(R=l-g,w=s/R),0===M&&0===p?(S=0,O=0):i.CesiumMath.sign(M)===i.CesiumMath.sign(p)?(S=M+p,O=a/S):(O=M-p,S=a/O);const x=o.computeRealRoots(1,w,S),y=o.computeRealRoots(1,R,O);if(0!==x.length)return 0!==y.length?x[1]<=y[0]?[x[0],x[1],y[0],y[1]]:y[1]<=x[0]?[y[0],y[1],x[0],x[1]]:x[0]>=y[0]&&x[1]<=y[1]?[y[0],x[0],x[1],y[1]]:y[0]>=x[0]&&y[1]<=x[1]?[x[0],y[0],y[1],x[1]]:x[0]>y[0]&&x[0]<y[1]?[y[0],x[0],y[1],x[1]]:[x[0],y[0],x[1],y[1]]:x;if(0!==y.length)return y}return[]}C.computeDiscriminant=function(t,n,e,a,i){const r=t*t,s=n*n,o=s*n,c=e*e,u=c*e,l=a*a,C=l*a,M=i*i;return s*c*l-4*o*C-4*t*u*l+18*t*n*e*C-27*r*l*l+256*(r*t)*(M*i)+i*(18*o*e*a-4*s*u+16*t*c*c-80*t*n*c*a-6*t*s*l+144*r*e*l)+M*(144*t*s*e-27*s*s-128*r*c-192*r*n*a)},C.computeRealRoots=function(t,n,e,a,r){if(Math.abs(t)<i.CesiumMath.EPSILON15)return l.computeRealRoots(n,e,a,r);const s=n/t,o=e/t,c=a/t,u=r/t;let C=s<0?1:0;switch(C+=o<0?C+1:C,C+=c<0?C+1:C,C+=u<0?C+1:C,C){case 0:case 3:case 4:case 6:case 7:case 9:case 10:case 12:case 13:case 14:case 15:return M(s,o,c,u);case 1:case 2:case 5:case 8:case 11:return h(s,o,c,u);default:return}};var m=C;function f(t,a){a=n.Cartesian3.clone(e.defaultValue(a,n.Cartesian3.ZERO)),n.Cartesian3.equals(a,n.Cartesian3.ZERO)||n.Cartesian3.normalize(a,a),this.origin=n.Cartesian3.clone(e.defaultValue(t,n.Cartesian3.ZERO)),this.direction=a}f.clone=function(t,a){if(e.defined(t))return e.defined(a)?(a.origin=n.Cartesian3.clone(t.origin),a.direction=n.Cartesian3.clone(t.direction),a):new f(t.origin,t.direction)},f.getPoint=function(t,a,i){return e.defined(i)||(i=new n.Cartesian3),i=n.Cartesian3.multiplyByScalar(t.direction,a,i),n.Cartesian3.add(t.origin,i,i)};const d={rayPlane:function(t,a,r){e.defined(r)||(r=new n.Cartesian3);const s=t.origin,o=t.direction,c=a.normal,u=n.Cartesian3.dot(c,o);if(Math.abs(u)<i.CesiumMath.EPSILON15)return;const l=(-a.distance-n.Cartesian3.dot(c,s))/u;return l<0?void 0:(r=n.Cartesian3.multiplyByScalar(o,l,r),n.Cartesian3.add(s,r,r))}},g=new n.Cartesian3,p=new n.Cartesian3,w=new n.Cartesian3,R=new n.Cartesian3,S=new n.Cartesian3;d.rayTriangleParametric=function(t,a,r,s,o){o=e.defaultValue(o,!1);const c=t.origin,u=t.direction,l=n.Cartesian3.subtract(r,a,g),C=n.Cartesian3.subtract(s,a,p),M=n.Cartesian3.cross(u,C,w),h=n.Cartesian3.dot(l,M);let m,f,d,O,x;if(o){if(h<i.CesiumMath.EPSILON6)return;if(m=n.Cartesian3.subtract(c,a,R),d=n.Cartesian3.dot(m,M),d<0||d>h)return;if(f=n.Cartesian3.cross(m,l,S),O=n.Cartesian3.dot(u,f),O<0||d+O>h)return;x=n.Cartesian3.dot(C,f)/h}else{if(Math.abs(h)<i.CesiumMath.EPSILON6)return;const t=1/h;if(m=n.Cartesian3.subtract(c,a,R),d=n.Cartesian3.dot(m,M)*t,d<0||d>1)return;if(f=n.Cartesian3.cross(m,l,S),O=n.Cartesian3.dot(u,f)*t,O<0||d+O>1)return;x=n.Cartesian3.dot(C,f)*t}return x},d.rayTriangle=function(t,a,i,r,s,o){const c=d.rayTriangleParametric(t,a,i,r,s);if(e.defined(c)&&!(c<0))return e.defined(o)||(o=new n.Cartesian3),n.Cartesian3.multiplyByScalar(t.direction,c,o),n.Cartesian3.add(t.origin,o,o)};const O=new f;d.lineSegmentTriangle=function(t,a,i,r,s,o,c){const u=O;n.Cartesian3.clone(t,u.origin),n.Cartesian3.subtract(a,t,u.direction),n.Cartesian3.normalize(u.direction,u.direction);const l=d.rayTriangleParametric(u,i,r,s,o);if(!(!e.defined(l)||l<0||l>n.Cartesian3.distance(t,a)))return e.defined(c)||(c=new n.Cartesian3),n.Cartesian3.multiplyByScalar(u.direction,l,c),n.Cartesian3.add(u.origin,c,c)};const x={root0:0,root1:0};function y(t,i,r){e.defined(r)||(r=new a.Interval);const s=t.origin,o=t.direction,c=i.center,u=i.radius*i.radius,l=n.Cartesian3.subtract(s,c,w),C=function(t,n,e,a){const i=n*n-4*t*e;if(i<0)return;if(i>0){const e=1/(2*t),r=Math.sqrt(i),s=(-n+r)*e,o=(-n-r)*e;return s<o?(a.root0=s,a.root1=o):(a.root0=o,a.root1=s),a}const r=-n/(2*t);return 0!==r?(a.root0=a.root1=r,a):void 0}(n.Cartesian3.dot(o,o),2*n.Cartesian3.dot(o,l),n.Cartesian3.magnitudeSquared(l)-u,x);if(e.defined(C))return r.start=C.root0,r.stop=C.root1,r}d.raySphere=function(t,n,a){if(a=y(t,n,a),e.defined(a)&&!(a.stop<0))return a.start=Math.max(a.start,0),a};const P=new f;d.lineSegmentSphere=function(t,a,i,r){const s=P;n.Cartesian3.clone(t,s.origin);const o=n.Cartesian3.subtract(a,t,s.direction),c=n.Cartesian3.magnitude(o);if(n.Cartesian3.normalize(o,o),r=y(s,i,r),!(!e.defined(r)||r.stop<0||r.start>c))return r.start=Math.max(r.start,0),r.stop=Math.min(r.stop,c),r};const N=new n.Cartesian3,b=new n.Cartesian3;function q(t,n,e){const a=t+n;return i.CesiumMath.sign(t)!==i.CesiumMath.sign(n)&&Math.abs(a/Math.max(Math.abs(t),Math.abs(n)))<e?0:a}d.rayEllipsoid=function(t,e){const i=e.oneOverRadii,r=n.Cartesian3.multiplyComponents(i,t.origin,N),s=n.Cartesian3.multiplyComponents(i,t.direction,b),o=n.Cartesian3.magnitudeSquared(r),c=n.Cartesian3.dot(r,s);let u,l,C,M,h;if(o>1){if(c>=0)return;const t=c*c;if(u=o-1,l=n.Cartesian3.magnitudeSquared(s),C=l*u,t<C)return;if(t>C){M=c*c-C,h=-c+Math.sqrt(M);const t=h/l,n=u/h;return t<n?new a.Interval(t,n):{start:n,stop:t}}const e=Math.sqrt(u/l);return new a.Interval(e,e)}return o<1?(u=o-1,l=n.Cartesian3.magnitudeSquared(s),C=l*u,M=c*c-C,h=-c+Math.sqrt(M),new a.Interval(0,h/l)):c<0?(l=n.Cartesian3.magnitudeSquared(s),new a.Interval(0,-c/l)):void 0};const L=new n.Cartesian3,I=new n.Cartesian3,E=new n.Cartesian3,v=new n.Cartesian3,z=new n.Cartesian3,T=new n.Matrix3,U=new n.Matrix3,W=new n.Matrix3,B=new n.Matrix3,V=new n.Matrix3,Z=new n.Matrix3,A=new n.Matrix3,D=new n.Cartesian3,F=new n.Cartesian3,G=new n.Cartographic;d.grazingAltitudeLocation=function(t,a){const r=t.origin,s=t.direction;if(!n.Cartesian3.equals(r,n.Cartesian3.ZERO)){const t=a.geodeticSurfaceNormal(r,L);if(n.Cartesian3.dot(s,t)>=0)return r}const c=e.defined(this.rayEllipsoid(t,a)),u=a.transformPositionToScaledSpace(s,L),l=n.Cartesian3.normalize(u,u),C=n.Cartesian3.mostOrthogonalAxis(u,v),M=n.Cartesian3.normalize(n.Cartesian3.cross(C,l,I),I),h=n.Cartesian3.normalize(n.Cartesian3.cross(l,M,E),E),f=T;f[0]=l.x,f[1]=l.y,f[2]=l.z,f[3]=M.x,f[4]=M.y,f[5]=M.z,f[6]=h.x,f[7]=h.y,f[8]=h.z;const d=n.Matrix3.transpose(f,U),g=n.Matrix3.fromScale(a.radii,W),p=n.Matrix3.fromScale(a.oneOverRadii,B),w=V;w[0]=0,w[1]=-s.z,w[2]=s.y,w[3]=s.z,w[4]=0,w[5]=-s.x,w[6]=-s.y,w[7]=s.x,w[8]=0;const R=n.Matrix3.multiply(n.Matrix3.multiply(d,p,Z),w,Z),S=n.Matrix3.multiply(n.Matrix3.multiply(R,g,A),f,A),O=n.Matrix3.multiplyByVector(R,r,z),x=function(t,e,a,r,s){const c=r*r,u=s*s,l=(t[n.Matrix3.COLUMN1ROW1]-t[n.Matrix3.COLUMN2ROW2])*u,C=s*(r*q(t[n.Matrix3.COLUMN1ROW0],t[n.Matrix3.COLUMN0ROW1],i.CesiumMath.EPSILON15)+e.y),M=t[n.Matrix3.COLUMN0ROW0]*c+t[n.Matrix3.COLUMN2ROW2]*u+r*e.x+a,h=u*q(t[n.Matrix3.COLUMN2ROW1],t[n.Matrix3.COLUMN1ROW2],i.CesiumMath.EPSILON15),f=s*(r*q(t[n.Matrix3.COLUMN2ROW0],t[n.Matrix3.COLUMN0ROW2])+e.z);let d;const g=[];if(0===f&&0===h){if(d=o.computeRealRoots(l,C,M),0===d.length)return g;const t=d[0],e=Math.sqrt(Math.max(1-t*t,0));if(g.push(new n.Cartesian3(r,s*t,s*-e)),g.push(new n.Cartesian3(r,s*t,s*e)),2===d.length){const t=d[1],e=Math.sqrt(Math.max(1-t*t,0));g.push(new n.Cartesian3(r,s*t,s*-e)),g.push(new n.Cartesian3(r,s*t,s*e))}return g}const p=f*f,w=h*h,R=f*h,S=l*l+w,O=2*(C*l+R),x=2*M*l+C*C-w+p,y=2*(M*C-R),P=M*M-p;if(0===S&&0===O&&0===x&&0===y)return g;d=m.computeRealRoots(S,O,x,y,P);const N=d.length;if(0===N)return g;for(let t=0;t<N;++t){const e=d[t],a=e*e,o=Math.max(1-a,0),c=Math.sqrt(o);let u;u=i.CesiumMath.sign(l)===i.CesiumMath.sign(M)?q(l*a+M,C*e,i.CesiumMath.EPSILON12):i.CesiumMath.sign(M)===i.CesiumMath.sign(C*e)?q(l*a,C*e+M,i.CesiumMath.EPSILON12):q(l*a+C*e,M,i.CesiumMath.EPSILON12);const m=u*q(h*e,f,i.CesiumMath.EPSILON15);m<0?g.push(new n.Cartesian3(r,s*e,s*c)):m>0?g.push(new n.Cartesian3(r,s*e,s*-c)):0!==c?(g.push(new n.Cartesian3(r,s*e,s*-c)),g.push(new n.Cartesian3(r,s*e,s*c)),++t):g.push(new n.Cartesian3(r,s*e,s*c))}return g}(S,n.Cartesian3.negate(O,L),0,0,1);let y,P;const N=x.length;if(N>0){let t=n.Cartesian3.clone(n.Cartesian3.ZERO,F),e=Number.NEGATIVE_INFINITY;for(let a=0;a<N;++a){y=n.Matrix3.multiplyByVector(g,n.Matrix3.multiplyByVector(f,x[a],D),D);const i=n.Cartesian3.normalize(n.Cartesian3.subtract(y,r,v),v),o=n.Cartesian3.dot(i,s);o>e&&(e=o,t=n.Cartesian3.clone(y,t))}const o=a.cartesianToCartographic(t,G);return e=i.CesiumMath.clamp(e,0,1),P=n.Cartesian3.magnitude(n.Cartesian3.subtract(t,r,v))*Math.sqrt(1-e*e),P=c?-P:P,o.height=P,a.cartographicToCartesian(o,new n.Cartesian3)}};const Y=new n.Cartesian3;d.lineSegmentPlane=function(t,a,r,s){e.defined(s)||(s=new n.Cartesian3);const o=n.Cartesian3.subtract(a,t,Y),c=r.normal,u=n.Cartesian3.dot(c,o);if(Math.abs(u)<i.CesiumMath.EPSILON6)return;const l=n.Cartesian3.dot(c,t),C=-(r.distance+l)/u;return C<0||C>1?void 0:(n.Cartesian3.multiplyByScalar(o,C,s),n.Cartesian3.add(t,s,s),s)},d.trianglePlaneIntersection=function(t,e,a,i){const r=i.normal,s=i.distance,o=n.Cartesian3.dot(r,t)+s<0,c=n.Cartesian3.dot(r,e)+s<0,u=n.Cartesian3.dot(r,a)+s<0;let l,C,M=0;if(M+=o?1:0,M+=c?1:0,M+=u?1:0,1!==M&&2!==M||(l=new n.Cartesian3,C=new n.Cartesian3),1===M){if(o)return d.lineSegmentPlane(t,e,i,l),d.lineSegmentPlane(t,a,i,C),{positions:[t,e,a,l,C],indices:[0,3,4,1,2,4,1,4,3]};if(c)return d.lineSegmentPlane(e,a,i,l),d.lineSegmentPlane(e,t,i,C),{positions:[t,e,a,l,C],indices:[1,3,4,2,0,4,2,4,3]};if(u)return d.lineSegmentPlane(a,t,i,l),d.lineSegmentPlane(a,e,i,C),{positions:[t,e,a,l,C],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===M){if(!o)return d.lineSegmentPlane(e,t,i,l),d.lineSegmentPlane(a,t,i,C),{positions:[t,e,a,l,C],indices:[1,2,4,1,4,3,0,3,4]};if(!c)return d.lineSegmentPlane(a,e,i,l),d.lineSegmentPlane(t,e,i,C),{positions:[t,e,a,l,C],indices:[2,0,4,2,4,3,1,3,4]};if(!u)return d.lineSegmentPlane(t,a,i,l),d.lineSegmentPlane(e,a,i,C),{positions:[t,e,a,l,C],indices:[0,1,4,0,4,3,2,3,4]}}};var _=d;t.IntersectionTests=_,t.Ray=f})); diff --git a/public/static/Cesium/Workers/Math-355606c6.js b/public/static/Cesium/Workers/Math-355606c6.js new file mode 100644 index 0000000..798167a --- /dev/null +++ b/public/static/Cesium/Workers/Math-355606c6.js @@ -0,0 +1 @@ +define(["exports","./defaultValue-f6d5e6da"],(function(t,n){"use strict";var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var r=function(t){null==t&&(t=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,t.constructor==Array?this.init_by_array(t,t.length):this.init_seed(t)};r.prototype.init_seed=function(t){for(this.mt[0]=t>>>0,this.mti=1;this.mti<this.N;this.mti++){t=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&t)>>>16)<<16)+1812433253*(65535&t)+this.mti,this.mt[this.mti]>>>=0}},r.prototype.init_by_array=function(t,n){var i,e,r;for(this.init_seed(19650218),i=1,e=0,r=this.N>n?this.N:n;r;r--){var a=this.mt[i-1]^this.mt[i-1]>>>30;this.mt[i]=(this.mt[i]^(1664525*((4294901760&a)>>>16)<<16)+1664525*(65535&a))+t[e]+e,this.mt[i]>>>=0,e++,++i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1),e>=n&&(e=0)}for(r=this.N-1;r;r--){a=this.mt[i-1]^this.mt[i-1]>>>30;this.mt[i]=(this.mt[i]^(1566083941*((4294901760&a)>>>16)<<16)+1566083941*(65535&a))-i,this.mt[i]>>>=0,++i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1)}this.mt[0]=2147483648},r.prototype.random_int=function(){var t,n=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var i;for(this.mti==this.N+1&&this.init_seed(5489),i=0;i<this.N-this.M;i++)t=this.mt[i]&this.UPPER_MASK|this.mt[i+1]&this.LOWER_MASK,this.mt[i]=this.mt[i+this.M]^t>>>1^n[1&t];for(;i<this.N-1;i++)t=this.mt[i]&this.UPPER_MASK|this.mt[i+1]&this.LOWER_MASK,this.mt[i]=this.mt[i+(this.M-this.N)]^t>>>1^n[1&t];t=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^t>>>1^n[1&t],this.mti=0}return t=this.mt[this.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,(t^=t>>>18)>>>0},r.prototype.random_int31=function(){return this.random_int()>>>1},r.prototype.random_incl=function(){return this.random_int()*(1/4294967295)},r.prototype.random=function(){return this.random_int()*(1/4294967296)},r.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)},r.prototype.random_long=function(){return(67108864*(this.random_int()>>>5)+(this.random_int()>>>6))*(1/9007199254740992)};var a=e(r);const o={EPSILON1:.1,EPSILON2:.01,EPSILON3:.001,EPSILON4:1e-4,EPSILON5:1e-5,EPSILON6:1e-6,EPSILON7:1e-7,EPSILON8:1e-8,EPSILON9:1e-9,EPSILON10:1e-10,EPSILON11:1e-11,EPSILON12:1e-12,EPSILON13:1e-13,EPSILON14:1e-14,EPSILON15:1e-15,EPSILON16:1e-16,EPSILON17:1e-17,EPSILON18:1e-18,EPSILON19:1e-19,EPSILON20:1e-20,EPSILON21:1e-21,GRAVITATIONALPARAMETER:3986004418e5,SOLAR_RADIUS:6955e5,LUNAR_RADIUS:1737400,SIXTY_FOUR_KILOBYTES:65536,FOUR_GIGABYTES:4294967296};o.sign=n.defaultValue(Math.sign,(function(t){return 0===(t=+t)||t!=t?t:t>0?1:-1})),o.signNotZero=function(t){return t<0?-1:1},o.toSNorm=function(t,i){return i=n.defaultValue(i,255),Math.round((.5*o.clamp(t,-1,1)+.5)*i)},o.fromSNorm=function(t,i){return i=n.defaultValue(i,255),o.clamp(t,0,i)/i*2-1},o.normalize=function(t,n,i){return 0===(i=Math.max(i-n,0))?0:o.clamp((t-n)/i,0,1)},o.sinh=n.defaultValue(Math.sinh,(function(t){return(Math.exp(t)-Math.exp(-t))/2})),o.cosh=n.defaultValue(Math.cosh,(function(t){return(Math.exp(t)+Math.exp(-t))/2})),o.lerp=function(t,n,i){return(1-i)*t+i*n},o.PI=Math.PI,o.ONE_OVER_PI=1/Math.PI,o.PI_OVER_TWO=Math.PI/2,o.PI_OVER_THREE=Math.PI/3,o.PI_OVER_FOUR=Math.PI/4,o.PI_OVER_SIX=Math.PI/6,o.THREE_PI_OVER_TWO=3*Math.PI/2,o.TWO_PI=2*Math.PI,o.ONE_OVER_TWO_PI=1/(2*Math.PI),o.RADIANS_PER_DEGREE=Math.PI/180,o.DEGREES_PER_RADIAN=180/Math.PI,o.RADIANS_PER_ARCSECOND=o.RADIANS_PER_DEGREE/3600,o.toRadians=function(t){return t*o.RADIANS_PER_DEGREE},o.toDegrees=function(t){return t*o.DEGREES_PER_RADIAN},o.convertLongitudeRange=function(t){const n=o.TWO_PI,i=t-Math.floor(t/n)*n;return i<-Math.PI?i+n:i>=Math.PI?i-n:i},o.clampToLatitudeRange=function(t){return o.clamp(t,-1*o.PI_OVER_TWO,o.PI_OVER_TWO)},o.negativePiToPi=function(t){return t>=-o.PI&&t<=o.PI?t:o.zeroToTwoPi(t+o.PI)-o.PI},o.zeroToTwoPi=function(t){if(t>=0&&t<=o.TWO_PI)return t;const n=o.mod(t,o.TWO_PI);return Math.abs(n)<o.EPSILON14&&Math.abs(t)>o.EPSILON14?o.TWO_PI:n},o.mod=function(t,n){return o.sign(t)===o.sign(n)&&Math.abs(t)<Math.abs(n)?t:(t%n+n)%n},o.equalsEpsilon=function(t,i,e,r){e=n.defaultValue(e,0),r=n.defaultValue(r,e);const a=Math.abs(t-i);return a<=r||a<=e*Math.max(Math.abs(t),Math.abs(i))},o.lessThan=function(t,n,i){return t-n<-i},o.lessThanOrEquals=function(t,n,i){return t-n<i},o.greaterThan=function(t,n,i){return t-n>i},o.greaterThanOrEquals=function(t,n,i){return t-n>-i};const s=[1];o.factorial=function(t){const n=s.length;if(t>=n){let i=s[n-1];for(let e=n;e<=t;e++){const t=i*e;s.push(t),i=t}}return s[t]},o.incrementWrap=function(t,i,e){return e=n.defaultValue(e,0),++t>i&&(t=e),t},o.isPowerOfTwo=function(t){return 0!==t&&0==(t&t-1)},o.nextPowerOfTwo=function(t){return--t,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t},o.previousPowerOfTwo=function(t){return t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t=((t|=t>>32)>>>0)-(t>>>1)},o.clamp=function(t,n,i){return t<n?n:t>i?i:t};let h=new a;o.setRandomNumberSeed=function(t){h=new a(t)},o.nextRandomNumber=function(){return h.random()},o.randomBetween=function(t,n){return o.nextRandomNumber()*(n-t)+t},o.acosClamped=function(t){return Math.acos(o.clamp(t,-1,1))},o.asinClamped=function(t){return Math.asin(o.clamp(t,-1,1))},o.chordLength=function(t,n){return 2*n*Math.sin(.5*t)},o.logBase=function(t,n){return Math.log(t)/Math.log(n)},o.cbrt=n.defaultValue(Math.cbrt,(function(t){const n=Math.pow(Math.abs(t),1/3);return t<0?-n:n})),o.log2=n.defaultValue(Math.log2,(function(t){return Math.log(t)*Math.LOG2E})),o.fog=function(t,n){const i=t*n;return 1-Math.exp(-i*i)},o.fastApproximateAtan=function(t){return t*(-.1784*Math.abs(t)-.0663*t*t+1.0301)},o.fastApproximateAtan2=function(t,n){let i,e=Math.abs(t);i=Math.abs(n);const r=Math.max(e,i);i=Math.min(e,i);const a=i/r;return e=o.fastApproximateAtan(a),e=Math.abs(n)>Math.abs(t)?o.PI_OVER_TWO-e:e,e=t<0?o.PI-e:e,e=n<0?-e:e,e};var u=o;t.CesiumMath=u,t.commonjsGlobal=i,t.getDefaultExportFromCjs=e})); diff --git a/public/static/Cesium/Workers/Matrix2-7a8e9daf.js b/public/static/Cesium/Workers/Matrix2-7a8e9daf.js new file mode 100644 index 0000000..c7ceac2 --- /dev/null +++ b/public/static/Cesium/Workers/Matrix2-7a8e9daf.js @@ -0,0 +1 @@ +define(["exports","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Math-355606c6","./RuntimeError-9b4ce3fb"],(function(t,e,n,a,u){"use strict";function r(t,e,a,u){this.x=n.defaultValue(t,0),this.y=n.defaultValue(e,0),this.z=n.defaultValue(a,0),this.w=n.defaultValue(u,0)}r.fromElements=function(t,e,a,u,i){return n.defined(i)?(i.x=t,i.y=e,i.z=a,i.w=u,i):new r(t,e,a,u)},r.fromColor=function(t,e){return n.defined(e)?(e.x=t.red,e.y=t.green,e.z=t.blue,e.w=t.alpha,e):new r(t.red,t.green,t.blue,t.alpha)},r.clone=function(t,e){if(n.defined(t))return n.defined(e)?(e.x=t.x,e.y=t.y,e.z=t.z,e.w=t.w,e):new r(t.x,t.y,t.z,t.w)},r.packedLength=4,r.pack=function(t,e,a){return a=n.defaultValue(a,0),e[a++]=t.x,e[a++]=t.y,e[a++]=t.z,e[a]=t.w,e},r.unpack=function(t,e,a){return e=n.defaultValue(e,0),n.defined(a)||(a=new r),a.x=t[e++],a.y=t[e++],a.z=t[e++],a.w=t[e],a},r.packArray=function(t,e){const a=t.length,u=4*a;n.defined(e)?(Array.isArray(e)||e.length===u)&&e.length!==u&&(e.length=u):e=new Array(u);for(let n=0;n<a;++n)r.pack(t[n],e,4*n);return e},r.unpackArray=function(t,e){const a=t.length;n.defined(e)?e.length=a/4:e=new Array(a/4);for(let n=0;n<a;n+=4){const a=n/4;e[a]=r.unpack(t,n,e[a])}return e},r.fromArray=r.unpack,r.maximumComponent=function(t){return Math.max(t.x,t.y,t.z,t.w)},r.minimumComponent=function(t){return Math.min(t.x,t.y,t.z,t.w)},r.minimumByComponent=function(t,e,n){return n.x=Math.min(t.x,e.x),n.y=Math.min(t.y,e.y),n.z=Math.min(t.z,e.z),n.w=Math.min(t.w,e.w),n},r.maximumByComponent=function(t,e,n){return n.x=Math.max(t.x,e.x),n.y=Math.max(t.y,e.y),n.z=Math.max(t.z,e.z),n.w=Math.max(t.w,e.w),n},r.clamp=function(t,e,n,u){const r=a.CesiumMath.clamp(t.x,e.x,n.x),i=a.CesiumMath.clamp(t.y,e.y,n.y),o=a.CesiumMath.clamp(t.z,e.z,n.z),s=a.CesiumMath.clamp(t.w,e.w,n.w);return u.x=r,u.y=i,u.z=o,u.w=s,u},r.magnitudeSquared=function(t){return t.x*t.x+t.y*t.y+t.z*t.z+t.w*t.w},r.magnitude=function(t){return Math.sqrt(r.magnitudeSquared(t))};const i=new r;r.distance=function(t,e){return r.subtract(t,e,i),r.magnitude(i)},r.distanceSquared=function(t,e){return r.subtract(t,e,i),r.magnitudeSquared(i)},r.normalize=function(t,e){const n=r.magnitude(t);return e.x=t.x/n,e.y=t.y/n,e.z=t.z/n,e.w=t.w/n,e},r.dot=function(t,e){return t.x*e.x+t.y*e.y+t.z*e.z+t.w*e.w},r.multiplyComponents=function(t,e,n){return n.x=t.x*e.x,n.y=t.y*e.y,n.z=t.z*e.z,n.w=t.w*e.w,n},r.divideComponents=function(t,e,n){return n.x=t.x/e.x,n.y=t.y/e.y,n.z=t.z/e.z,n.w=t.w/e.w,n},r.add=function(t,e,n){return n.x=t.x+e.x,n.y=t.y+e.y,n.z=t.z+e.z,n.w=t.w+e.w,n},r.subtract=function(t,e,n){return n.x=t.x-e.x,n.y=t.y-e.y,n.z=t.z-e.z,n.w=t.w-e.w,n},r.multiplyByScalar=function(t,e,n){return n.x=t.x*e,n.y=t.y*e,n.z=t.z*e,n.w=t.w*e,n},r.divideByScalar=function(t,e,n){return n.x=t.x/e,n.y=t.y/e,n.z=t.z/e,n.w=t.w/e,n},r.negate=function(t,e){return e.x=-t.x,e.y=-t.y,e.z=-t.z,e.w=-t.w,e},r.abs=function(t,e){return e.x=Math.abs(t.x),e.y=Math.abs(t.y),e.z=Math.abs(t.z),e.w=Math.abs(t.w),e};const o=new r;r.lerp=function(t,e,n,a){return r.multiplyByScalar(e,n,o),a=r.multiplyByScalar(t,1-n,a),r.add(o,a,a)};const s=new r;r.mostOrthogonalAxis=function(t,e){const n=r.normalize(t,s);return r.abs(n,n),e=n.x<=n.y?n.x<=n.z?n.x<=n.w?r.clone(r.UNIT_X,e):r.clone(r.UNIT_W,e):n.z<=n.w?r.clone(r.UNIT_Z,e):r.clone(r.UNIT_W,e):n.y<=n.z?n.y<=n.w?r.clone(r.UNIT_Y,e):r.clone(r.UNIT_W,e):n.z<=n.w?r.clone(r.UNIT_Z,e):r.clone(r.UNIT_W,e)},r.equals=function(t,e){return t===e||n.defined(t)&&n.defined(e)&&t.x===e.x&&t.y===e.y&&t.z===e.z&&t.w===e.w},r.equalsArray=function(t,e,n){return t.x===e[n]&&t.y===e[n+1]&&t.z===e[n+2]&&t.w===e[n+3]},r.equalsEpsilon=function(t,e,u,r){return t===e||n.defined(t)&&n.defined(e)&&a.CesiumMath.equalsEpsilon(t.x,e.x,u,r)&&a.CesiumMath.equalsEpsilon(t.y,e.y,u,r)&&a.CesiumMath.equalsEpsilon(t.z,e.z,u,r)&&a.CesiumMath.equalsEpsilon(t.w,e.w,u,r)},r.ZERO=Object.freeze(new r(0,0,0,0)),r.ONE=Object.freeze(new r(1,1,1,1)),r.UNIT_X=Object.freeze(new r(1,0,0,0)),r.UNIT_Y=Object.freeze(new r(0,1,0,0)),r.UNIT_Z=Object.freeze(new r(0,0,1,0)),r.UNIT_W=Object.freeze(new r(0,0,0,1)),r.prototype.clone=function(t){return r.clone(this,t)},r.prototype.equals=function(t){return r.equals(this,t)},r.prototype.equalsEpsilon=function(t,e,n){return r.equalsEpsilon(this,t,e,n)},r.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};const c=new Float32Array(1),l=new Uint8Array(c.buffer),f=new Uint32Array([287454020]),h=68===new Uint8Array(f.buffer)[0];function d(t,e,a,u,r,i,o,s,c,l,f,h,d,m,y,w){this[0]=n.defaultValue(t,0),this[1]=n.defaultValue(r,0),this[2]=n.defaultValue(c,0),this[3]=n.defaultValue(d,0),this[4]=n.defaultValue(e,0),this[5]=n.defaultValue(i,0),this[6]=n.defaultValue(l,0),this[7]=n.defaultValue(m,0),this[8]=n.defaultValue(a,0),this[9]=n.defaultValue(o,0),this[10]=n.defaultValue(f,0),this[11]=n.defaultValue(y,0),this[12]=n.defaultValue(u,0),this[13]=n.defaultValue(s,0),this[14]=n.defaultValue(h,0),this[15]=n.defaultValue(w,0)}r.packFloat=function(t,e){return n.defined(e)||(e=new r),c[0]=t,h?(e.x=l[0],e.y=l[1],e.z=l[2],e.w=l[3]):(e.x=l[3],e.y=l[2],e.z=l[1],e.w=l[0]),e},r.unpackFloat=function(t){return h?(l[0]=t.x,l[1]=t.y,l[2]=t.z,l[3]=t.w):(l[0]=t.w,l[1]=t.z,l[2]=t.y,l[3]=t.x),c[0]},d.packedLength=16,d.pack=function(t,e,a){return a=n.defaultValue(a,0),e[a++]=t[0],e[a++]=t[1],e[a++]=t[2],e[a++]=t[3],e[a++]=t[4],e[a++]=t[5],e[a++]=t[6],e[a++]=t[7],e[a++]=t[8],e[a++]=t[9],e[a++]=t[10],e[a++]=t[11],e[a++]=t[12],e[a++]=t[13],e[a++]=t[14],e[a]=t[15],e},d.unpack=function(t,e,a){return e=n.defaultValue(e,0),n.defined(a)||(a=new d),a[0]=t[e++],a[1]=t[e++],a[2]=t[e++],a[3]=t[e++],a[4]=t[e++],a[5]=t[e++],a[6]=t[e++],a[7]=t[e++],a[8]=t[e++],a[9]=t[e++],a[10]=t[e++],a[11]=t[e++],a[12]=t[e++],a[13]=t[e++],a[14]=t[e++],a[15]=t[e],a},d.packArray=function(t,e){const a=t.length,u=16*a;n.defined(e)?(Array.isArray(e)||e.length===u)&&e.length!==u&&(e.length=u):e=new Array(u);for(let n=0;n<a;++n)d.pack(t[n],e,16*n);return e},d.unpackArray=function(t,e){const a=t.length;n.defined(e)?e.length=a/16:e=new Array(a/16);for(let n=0;n<a;n+=16){const a=n/16;e[a]=d.unpack(t,n,e[a])}return e},d.clone=function(t,e){if(n.defined(t))return n.defined(e)?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e):new d(t[0],t[4],t[8],t[12],t[1],t[5],t[9],t[13],t[2],t[6],t[10],t[14],t[3],t[7],t[11],t[15])},d.fromArray=d.unpack,d.fromColumnMajorArray=function(t,e){return d.clone(t,e)},d.fromRowMajorArray=function(t,e){return n.defined(e)?(e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e):new d(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])},d.fromRotationTranslation=function(t,a,u){return a=n.defaultValue(a,e.Cartesian3.ZERO),n.defined(u)?(u[0]=t[0],u[1]=t[1],u[2]=t[2],u[3]=0,u[4]=t[3],u[5]=t[4],u[6]=t[5],u[7]=0,u[8]=t[6],u[9]=t[7],u[10]=t[8],u[11]=0,u[12]=a.x,u[13]=a.y,u[14]=a.z,u[15]=1,u):new d(t[0],t[3],t[6],a.x,t[1],t[4],t[7],a.y,t[2],t[5],t[8],a.z,0,0,0,1)},d.fromTranslationQuaternionRotationScale=function(t,e,a,u){n.defined(u)||(u=new d);const r=a.x,i=a.y,o=a.z,s=e.x*e.x,c=e.x*e.y,l=e.x*e.z,f=e.x*e.w,h=e.y*e.y,m=e.y*e.z,y=e.y*e.w,w=e.z*e.z,x=e.z*e.w,M=e.w*e.w,p=s-h-w+M,g=2*(c-x),C=2*(l+y),z=2*(c+x),b=-s+h-w+M,O=2*(m-f),V=2*(l-y),T=2*(m+f),A=-s-h+w+M;return u[0]=p*r,u[1]=z*r,u[2]=V*r,u[3]=0,u[4]=g*i,u[5]=b*i,u[6]=T*i,u[7]=0,u[8]=C*o,u[9]=O*o,u[10]=A*o,u[11]=0,u[12]=t.x,u[13]=t.y,u[14]=t.z,u[15]=1,u},d.fromTranslationRotationScale=function(t,e){return d.fromTranslationQuaternionRotationScale(t.translation,t.rotation,t.scale,e)},d.fromTranslation=function(t,n){return d.fromRotationTranslation(e.Matrix3.IDENTITY,t,n)},d.fromScale=function(t,e){return n.defined(e)?(e[0]=t.x,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t.y,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t.z,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e):new d(t.x,0,0,0,0,t.y,0,0,0,0,t.z,0,0,0,0,1)},d.fromUniformScale=function(t,e){return n.defined(e)?(e[0]=t,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e):new d(t,0,0,0,0,t,0,0,0,0,t,0,0,0,0,1)},d.fromRotation=function(t,e){return n.defined(e)||(e=new d),e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=0,e[4]=t[3],e[5]=t[4],e[6]=t[5],e[7]=0,e[8]=t[6],e[9]=t[7],e[10]=t[8],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e};const m=new e.Cartesian3,y=new e.Cartesian3,w=new e.Cartesian3;d.fromCamera=function(t,a){const u=t.position,r=t.direction,i=t.up;e.Cartesian3.normalize(r,m),e.Cartesian3.normalize(e.Cartesian3.cross(m,i,y),y),e.Cartesian3.normalize(e.Cartesian3.cross(y,m,w),w);const o=y.x,s=y.y,c=y.z,l=m.x,f=m.y,h=m.z,x=w.x,M=w.y,p=w.z,g=u.x,C=u.y,z=u.z,b=o*-g+s*-C+c*-z,O=x*-g+M*-C+p*-z,V=l*g+f*C+h*z;return n.defined(a)?(a[0]=o,a[1]=x,a[2]=-l,a[3]=0,a[4]=s,a[5]=M,a[6]=-f,a[7]=0,a[8]=c,a[9]=p,a[10]=-h,a[11]=0,a[12]=b,a[13]=O,a[14]=V,a[15]=1,a):new d(o,s,c,b,x,M,p,O,-l,-f,-h,V,0,0,0,1)},d.computePerspectiveFieldOfView=function(t,e,n,a,u){const r=1/Math.tan(.5*t),i=r/e,o=(a+n)/(n-a),s=2*a*n/(n-a);return u[0]=i,u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[5]=r,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[10]=o,u[11]=-1,u[12]=0,u[13]=0,u[14]=s,u[15]=0,u},d.computeOrthographicOffCenter=function(t,e,n,a,u,r,i){let o=1/(e-t),s=1/(a-n),c=1/(r-u);const l=-(e+t)*o,f=-(a+n)*s,h=-(r+u)*c;return o*=2,s*=2,c*=-2,i[0]=o,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=s,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=c,i[11]=0,i[12]=l,i[13]=f,i[14]=h,i[15]=1,i},d.computePerspectiveOffCenter=function(t,e,n,a,u,r,i){const o=2*u/(e-t),s=2*u/(a-n),c=(e+t)/(e-t),l=(a+n)/(a-n),f=-(r+u)/(r-u),h=-2*r*u/(r-u);return i[0]=o,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=s,i[6]=0,i[7]=0,i[8]=c,i[9]=l,i[10]=f,i[11]=-1,i[12]=0,i[13]=0,i[14]=h,i[15]=0,i},d.computeInfinitePerspectiveOffCenter=function(t,e,n,a,u,r){const i=2*u/(e-t),o=2*u/(a-n),s=(e+t)/(e-t),c=(a+n)/(a-n),l=-2*u;return r[0]=i,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=o,r[6]=0,r[7]=0,r[8]=s,r[9]=c,r[10]=-1,r[11]=-1,r[12]=0,r[13]=0,r[14]=l,r[15]=0,r},d.computeViewportTransformation=function(t,e,a,u){n.defined(u)||(u=new d),t=n.defaultValue(t,n.defaultValue.EMPTY_OBJECT);const r=n.defaultValue(t.x,0),i=n.defaultValue(t.y,0),o=n.defaultValue(t.width,0),s=n.defaultValue(t.height,0);e=n.defaultValue(e,0);const c=.5*o,l=.5*s,f=.5*((a=n.defaultValue(a,1))-e),h=c,m=l,y=f,w=r+c,x=i+l,M=e+f;return u[0]=h,u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[5]=m,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[10]=y,u[11]=0,u[12]=w,u[13]=x,u[14]=M,u[15]=1,u},d.computeView=function(t,n,a,u,r){return r[0]=u.x,r[1]=a.x,r[2]=-n.x,r[3]=0,r[4]=u.y,r[5]=a.y,r[6]=-n.y,r[7]=0,r[8]=u.z,r[9]=a.z,r[10]=-n.z,r[11]=0,r[12]=-e.Cartesian3.dot(u,t),r[13]=-e.Cartesian3.dot(a,t),r[14]=e.Cartesian3.dot(n,t),r[15]=1,r},d.toArray=function(t,e){return n.defined(e)?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e):[t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15]]},d.getElementIndex=function(t,e){return 4*t+e},d.getColumn=function(t,e,n){const a=4*e,u=t[a],r=t[a+1],i=t[a+2],o=t[a+3];return n.x=u,n.y=r,n.z=i,n.w=o,n},d.setColumn=function(t,e,n,a){const u=4*e;return(a=d.clone(t,a))[u]=n.x,a[u+1]=n.y,a[u+2]=n.z,a[u+3]=n.w,a},d.getRow=function(t,e,n){const a=t[e],u=t[e+4],r=t[e+8],i=t[e+12];return n.x=a,n.y=u,n.z=r,n.w=i,n},d.setRow=function(t,e,n,a){return(a=d.clone(t,a))[e]=n.x,a[e+4]=n.y,a[e+8]=n.z,a[e+12]=n.w,a},d.setTranslation=function(t,e,n){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=t[15],n};const x=new e.Cartesian3;d.setScale=function(t,e,n){const a=d.getScale(t,x),u=e.x/a.x,r=e.y/a.y,i=e.z/a.z;return n[0]=t[0]*u,n[1]=t[1]*u,n[2]=t[2]*u,n[3]=t[3],n[4]=t[4]*r,n[5]=t[5]*r,n[6]=t[6]*r,n[7]=t[7],n[8]=t[8]*i,n[9]=t[9]*i,n[10]=t[10]*i,n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n};const M=new e.Cartesian3;d.setUniformScale=function(t,e,n){const a=d.getScale(t,M),u=e/a.x,r=e/a.y,i=e/a.z;return n[0]=t[0]*u,n[1]=t[1]*u,n[2]=t[2]*u,n[3]=t[3],n[4]=t[4]*r,n[5]=t[5]*r,n[6]=t[6]*r,n[7]=t[7],n[8]=t[8]*i,n[9]=t[9]*i,n[10]=t[10]*i,n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n};const p=new e.Cartesian3;d.getScale=function(t,n){return n.x=e.Cartesian3.magnitude(e.Cartesian3.fromElements(t[0],t[1],t[2],p)),n.y=e.Cartesian3.magnitude(e.Cartesian3.fromElements(t[4],t[5],t[6],p)),n.z=e.Cartesian3.magnitude(e.Cartesian3.fromElements(t[8],t[9],t[10],p)),n};const g=new e.Cartesian3;d.getMaximumScale=function(t){return d.getScale(t,g),e.Cartesian3.maximumComponent(g)};const C=new e.Cartesian3;d.setRotation=function(t,e,n){const a=d.getScale(t,C);return n[0]=e[0]*a.x,n[1]=e[1]*a.x,n[2]=e[2]*a.x,n[3]=t[3],n[4]=e[3]*a.y,n[5]=e[4]*a.y,n[6]=e[5]*a.y,n[7]=t[7],n[8]=e[6]*a.z,n[9]=e[7]*a.z,n[10]=e[8]*a.z,n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n};const z=new e.Cartesian3;d.getRotation=function(t,e){const n=d.getScale(t,z);return e[0]=t[0]/n.x,e[1]=t[1]/n.x,e[2]=t[2]/n.x,e[3]=t[4]/n.y,e[4]=t[5]/n.y,e[5]=t[6]/n.y,e[6]=t[8]/n.z,e[7]=t[9]/n.z,e[8]=t[10]/n.z,e},d.multiply=function(t,e,n){const a=t[0],u=t[1],r=t[2],i=t[3],o=t[4],s=t[5],c=t[6],l=t[7],f=t[8],h=t[9],d=t[10],m=t[11],y=t[12],w=t[13],x=t[14],M=t[15],p=e[0],g=e[1],C=e[2],z=e[3],b=e[4],O=e[5],V=e[6],T=e[7],A=e[8],E=e[9],I=e[10],U=e[11],N=e[12],S=e[13],P=e[14],_=e[15],q=a*p+o*g+f*C+y*z,R=u*p+s*g+h*C+w*z,W=r*p+c*g+d*C+x*z,L=i*p+l*g+m*C+M*z,k=a*b+o*O+f*V+y*T,B=u*b+s*O+h*V+w*T,$=r*b+c*O+d*V+x*T,j=i*b+l*O+m*V+M*T,v=a*A+o*E+f*I+y*U,X=u*A+s*E+h*I+w*U,Y=r*A+c*E+d*I+x*U,Z=i*A+l*E+m*I+M*U,D=a*N+o*S+f*P+y*_,F=u*N+s*S+h*P+w*_,G=r*N+c*S+d*P+x*_,H=i*N+l*S+m*P+M*_;return n[0]=q,n[1]=R,n[2]=W,n[3]=L,n[4]=k,n[5]=B,n[6]=$,n[7]=j,n[8]=v,n[9]=X,n[10]=Y,n[11]=Z,n[12]=D,n[13]=F,n[14]=G,n[15]=H,n},d.add=function(t,e,n){return n[0]=t[0]+e[0],n[1]=t[1]+e[1],n[2]=t[2]+e[2],n[3]=t[3]+e[3],n[4]=t[4]+e[4],n[5]=t[5]+e[5],n[6]=t[6]+e[6],n[7]=t[7]+e[7],n[8]=t[8]+e[8],n[9]=t[9]+e[9],n[10]=t[10]+e[10],n[11]=t[11]+e[11],n[12]=t[12]+e[12],n[13]=t[13]+e[13],n[14]=t[14]+e[14],n[15]=t[15]+e[15],n},d.subtract=function(t,e,n){return n[0]=t[0]-e[0],n[1]=t[1]-e[1],n[2]=t[2]-e[2],n[3]=t[3]-e[3],n[4]=t[4]-e[4],n[5]=t[5]-e[5],n[6]=t[6]-e[6],n[7]=t[7]-e[7],n[8]=t[8]-e[8],n[9]=t[9]-e[9],n[10]=t[10]-e[10],n[11]=t[11]-e[11],n[12]=t[12]-e[12],n[13]=t[13]-e[13],n[14]=t[14]-e[14],n[15]=t[15]-e[15],n},d.multiplyTransformation=function(t,e,n){const a=t[0],u=t[1],r=t[2],i=t[4],o=t[5],s=t[6],c=t[8],l=t[9],f=t[10],h=t[12],d=t[13],m=t[14],y=e[0],w=e[1],x=e[2],M=e[4],p=e[5],g=e[6],C=e[8],z=e[9],b=e[10],O=e[12],V=e[13],T=e[14],A=a*y+i*w+c*x,E=u*y+o*w+l*x,I=r*y+s*w+f*x,U=a*M+i*p+c*g,N=u*M+o*p+l*g,S=r*M+s*p+f*g,P=a*C+i*z+c*b,_=u*C+o*z+l*b,q=r*C+s*z+f*b,R=a*O+i*V+c*T+h,W=u*O+o*V+l*T+d,L=r*O+s*V+f*T+m;return n[0]=A,n[1]=E,n[2]=I,n[3]=0,n[4]=U,n[5]=N,n[6]=S,n[7]=0,n[8]=P,n[9]=_,n[10]=q,n[11]=0,n[12]=R,n[13]=W,n[14]=L,n[15]=1,n},d.multiplyByMatrix3=function(t,e,n){const a=t[0],u=t[1],r=t[2],i=t[4],o=t[5],s=t[6],c=t[8],l=t[9],f=t[10],h=e[0],d=e[1],m=e[2],y=e[3],w=e[4],x=e[5],M=e[6],p=e[7],g=e[8],C=a*h+i*d+c*m,z=u*h+o*d+l*m,b=r*h+s*d+f*m,O=a*y+i*w+c*x,V=u*y+o*w+l*x,T=r*y+s*w+f*x,A=a*M+i*p+c*g,E=u*M+o*p+l*g,I=r*M+s*p+f*g;return n[0]=C,n[1]=z,n[2]=b,n[3]=0,n[4]=O,n[5]=V,n[6]=T,n[7]=0,n[8]=A,n[9]=E,n[10]=I,n[11]=0,n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n},d.multiplyByTranslation=function(t,e,n){const a=e.x,u=e.y,r=e.z,i=a*t[0]+u*t[4]+r*t[8]+t[12],o=a*t[1]+u*t[5]+r*t[9]+t[13],s=a*t[2]+u*t[6]+r*t[10]+t[14];return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=i,n[13]=o,n[14]=s,n[15]=t[15],n},d.multiplyByScale=function(t,e,n){const a=e.x,u=e.y,r=e.z;return 1===a&&1===u&&1===r?d.clone(t,n):(n[0]=a*t[0],n[1]=a*t[1],n[2]=a*t[2],n[3]=t[3],n[4]=u*t[4],n[5]=u*t[5],n[6]=u*t[6],n[7]=t[7],n[8]=r*t[8],n[9]=r*t[9],n[10]=r*t[10],n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n)},d.multiplyByUniformScale=function(t,e,n){return n[0]=t[0]*e,n[1]=t[1]*e,n[2]=t[2]*e,n[3]=t[3],n[4]=t[4]*e,n[5]=t[5]*e,n[6]=t[6]*e,n[7]=t[7],n[8]=t[8]*e,n[9]=t[9]*e,n[10]=t[10]*e,n[11]=t[11],n[12]=t[12],n[13]=t[13],n[14]=t[14],n[15]=t[15],n},d.multiplyByVector=function(t,e,n){const a=e.x,u=e.y,r=e.z,i=e.w,o=t[0]*a+t[4]*u+t[8]*r+t[12]*i,s=t[1]*a+t[5]*u+t[9]*r+t[13]*i,c=t[2]*a+t[6]*u+t[10]*r+t[14]*i,l=t[3]*a+t[7]*u+t[11]*r+t[15]*i;return n.x=o,n.y=s,n.z=c,n.w=l,n},d.multiplyByPointAsVector=function(t,e,n){const a=e.x,u=e.y,r=e.z,i=t[0]*a+t[4]*u+t[8]*r,o=t[1]*a+t[5]*u+t[9]*r,s=t[2]*a+t[6]*u+t[10]*r;return n.x=i,n.y=o,n.z=s,n},d.multiplyByPoint=function(t,e,n){const a=e.x,u=e.y,r=e.z,i=t[0]*a+t[4]*u+t[8]*r+t[12],o=t[1]*a+t[5]*u+t[9]*r+t[13],s=t[2]*a+t[6]*u+t[10]*r+t[14];return n.x=i,n.y=o,n.z=s,n},d.multiplyByScalar=function(t,e,n){return n[0]=t[0]*e,n[1]=t[1]*e,n[2]=t[2]*e,n[3]=t[3]*e,n[4]=t[4]*e,n[5]=t[5]*e,n[6]=t[6]*e,n[7]=t[7]*e,n[8]=t[8]*e,n[9]=t[9]*e,n[10]=t[10]*e,n[11]=t[11]*e,n[12]=t[12]*e,n[13]=t[13]*e,n[14]=t[14]*e,n[15]=t[15]*e,n},d.negate=function(t,e){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=-t[3],e[4]=-t[4],e[5]=-t[5],e[6]=-t[6],e[7]=-t[7],e[8]=-t[8],e[9]=-t[9],e[10]=-t[10],e[11]=-t[11],e[12]=-t[12],e[13]=-t[13],e[14]=-t[14],e[15]=-t[15],e},d.transpose=function(t,e){const n=t[1],a=t[2],u=t[3],r=t[6],i=t[7],o=t[11];return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=n,e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=a,e[9]=r,e[10]=t[10],e[11]=t[14],e[12]=u,e[13]=i,e[14]=o,e[15]=t[15],e},d.abs=function(t,e){return e[0]=Math.abs(t[0]),e[1]=Math.abs(t[1]),e[2]=Math.abs(t[2]),e[3]=Math.abs(t[3]),e[4]=Math.abs(t[4]),e[5]=Math.abs(t[5]),e[6]=Math.abs(t[6]),e[7]=Math.abs(t[7]),e[8]=Math.abs(t[8]),e[9]=Math.abs(t[9]),e[10]=Math.abs(t[10]),e[11]=Math.abs(t[11]),e[12]=Math.abs(t[12]),e[13]=Math.abs(t[13]),e[14]=Math.abs(t[14]),e[15]=Math.abs(t[15]),e},d.equals=function(t,e){return t===e||n.defined(t)&&n.defined(e)&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[3]===e[3]&&t[7]===e[7]&&t[11]===e[11]&&t[15]===e[15]},d.equalsEpsilon=function(t,e,a){return a=n.defaultValue(a,0),t===e||n.defined(t)&&n.defined(e)&&Math.abs(t[0]-e[0])<=a&&Math.abs(t[1]-e[1])<=a&&Math.abs(t[2]-e[2])<=a&&Math.abs(t[3]-e[3])<=a&&Math.abs(t[4]-e[4])<=a&&Math.abs(t[5]-e[5])<=a&&Math.abs(t[6]-e[6])<=a&&Math.abs(t[7]-e[7])<=a&&Math.abs(t[8]-e[8])<=a&&Math.abs(t[9]-e[9])<=a&&Math.abs(t[10]-e[10])<=a&&Math.abs(t[11]-e[11])<=a&&Math.abs(t[12]-e[12])<=a&&Math.abs(t[13]-e[13])<=a&&Math.abs(t[14]-e[14])<=a&&Math.abs(t[15]-e[15])<=a},d.getTranslation=function(t,e){return e.x=t[12],e.y=t[13],e.z=t[14],e},d.getMatrix3=function(t,e){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e};const b=new e.Matrix3,O=new e.Matrix3,V=new r,T=new r(0,0,0,1);d.inverse=function(t,n){const i=t[0],o=t[4],s=t[8],c=t[12],l=t[1],f=t[5],h=t[9],m=t[13],y=t[2],w=t[6],x=t[10],M=t[14],p=t[3],g=t[7],C=t[11],z=t[15];let A=x*z,E=M*C,I=w*z,U=M*g,N=w*C,S=x*g,P=y*z,_=M*p,q=y*C,R=x*p,W=y*g,L=w*p;const k=A*f+U*h+N*m-(E*f+I*h+S*m),B=E*l+P*h+R*m-(A*l+_*h+q*m),$=I*l+_*f+W*m-(U*l+P*f+L*m),j=S*l+q*f+L*h-(N*l+R*f+W*h),v=E*o+I*s+S*c-(A*o+U*s+N*c),X=A*i+_*s+q*c-(E*i+P*s+R*c),Y=U*i+P*o+L*c-(I*i+_*o+W*c),Z=N*i+R*o+W*s-(S*i+q*o+L*s);A=s*m,E=c*h,I=o*m,U=c*f,N=o*h,S=s*f,P=i*m,_=c*l,q=i*h,R=s*l,W=i*f,L=o*l;const D=A*g+U*C+N*z-(E*g+I*C+S*z),F=E*p+P*C+R*z-(A*p+_*C+q*z),G=I*p+_*g+W*z-(U*p+P*g+L*z),H=S*p+q*g+L*C-(N*p+R*g+W*C),Q=I*x+S*M+E*w-(N*M+A*w+U*x),J=q*M+A*y+_*x-(P*x+R*M+E*y),K=P*w+L*M+U*y-(W*M+I*y+_*w),tt=W*x+N*y+R*w-(q*w+L*x+S*y);let et=i*k+o*B+s*$+c*j;if(Math.abs(et)<a.CesiumMath.EPSILON21){if(e.Matrix3.equalsEpsilon(d.getMatrix3(t,b),O,a.CesiumMath.EPSILON7)&&r.equals(d.getRow(t,3,V),T))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-t[12],n[13]=-t[13],n[14]=-t[14],n[15]=1,n;throw new u.RuntimeError("matrix is not invertible because its determinate is zero.")}return et=1/et,n[0]=k*et,n[1]=B*et,n[2]=$*et,n[3]=j*et,n[4]=v*et,n[5]=X*et,n[6]=Y*et,n[7]=Z*et,n[8]=D*et,n[9]=F*et,n[10]=G*et,n[11]=H*et,n[12]=Q*et,n[13]=J*et,n[14]=K*et,n[15]=tt*et,n},d.inverseTransformation=function(t,e){const n=t[0],a=t[1],u=t[2],r=t[4],i=t[5],o=t[6],s=t[8],c=t[9],l=t[10],f=t[12],h=t[13],d=t[14],m=-n*f-a*h-u*d,y=-r*f-i*h-o*d,w=-s*f-c*h-l*d;return e[0]=n,e[1]=r,e[2]=s,e[3]=0,e[4]=a,e[5]=i,e[6]=c,e[7]=0,e[8]=u,e[9]=o,e[10]=l,e[11]=0,e[12]=m,e[13]=y,e[14]=w,e[15]=1,e};const A=new d;function E(t,e,a,u){this.west=n.defaultValue(t,0),this.south=n.defaultValue(e,0),this.east=n.defaultValue(a,0),this.north=n.defaultValue(u,0)}d.inverseTranspose=function(t,e){return d.inverse(d.transpose(t,A),e)},d.IDENTITY=Object.freeze(new d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),d.ZERO=Object.freeze(new d(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),d.COLUMN0ROW0=0,d.COLUMN0ROW1=1,d.COLUMN0ROW2=2,d.COLUMN0ROW3=3,d.COLUMN1ROW0=4,d.COLUMN1ROW1=5,d.COLUMN1ROW2=6,d.COLUMN1ROW3=7,d.COLUMN2ROW0=8,d.COLUMN2ROW1=9,d.COLUMN2ROW2=10,d.COLUMN2ROW3=11,d.COLUMN3ROW0=12,d.COLUMN3ROW1=13,d.COLUMN3ROW2=14,d.COLUMN3ROW3=15,Object.defineProperties(d.prototype,{length:{get:function(){return d.packedLength}}}),d.prototype.clone=function(t){return d.clone(this,t)},d.prototype.equals=function(t){return d.equals(this,t)},d.equalsArray=function(t,e,n){return t[0]===e[n]&&t[1]===e[n+1]&&t[2]===e[n+2]&&t[3]===e[n+3]&&t[4]===e[n+4]&&t[5]===e[n+5]&&t[6]===e[n+6]&&t[7]===e[n+7]&&t[8]===e[n+8]&&t[9]===e[n+9]&&t[10]===e[n+10]&&t[11]===e[n+11]&&t[12]===e[n+12]&&t[13]===e[n+13]&&t[14]===e[n+14]&&t[15]===e[n+15]},d.prototype.equalsEpsilon=function(t,e){return d.equalsEpsilon(this,t,e)},d.prototype.toString=function(){return`(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]})\n(${this[1]}, ${this[5]}, ${this[9]}, ${this[13]})\n(${this[2]}, ${this[6]}, ${this[10]}, ${this[14]})\n(${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`},Object.defineProperties(E.prototype,{width:{get:function(){return E.computeWidth(this)}},height:{get:function(){return E.computeHeight(this)}}}),E.packedLength=4,E.pack=function(t,e,a){return a=n.defaultValue(a,0),e[a++]=t.west,e[a++]=t.south,e[a++]=t.east,e[a]=t.north,e},E.unpack=function(t,e,a){return e=n.defaultValue(e,0),n.defined(a)||(a=new E),a.west=t[e++],a.south=t[e++],a.east=t[e++],a.north=t[e],a},E.computeWidth=function(t){let e=t.east;const n=t.west;return e<n&&(e+=a.CesiumMath.TWO_PI),e-n},E.computeHeight=function(t){return t.north-t.south},E.fromDegrees=function(t,e,u,r,i){return t=a.CesiumMath.toRadians(n.defaultValue(t,0)),e=a.CesiumMath.toRadians(n.defaultValue(e,0)),u=a.CesiumMath.toRadians(n.defaultValue(u,0)),r=a.CesiumMath.toRadians(n.defaultValue(r,0)),n.defined(i)?(i.west=t,i.south=e,i.east=u,i.north=r,i):new E(t,e,u,r)},E.fromRadians=function(t,e,a,u,r){return n.defined(r)?(r.west=n.defaultValue(t,0),r.south=n.defaultValue(e,0),r.east=n.defaultValue(a,0),r.north=n.defaultValue(u,0),r):new E(t,e,a,u)},E.fromCartographicArray=function(t,e){let u=Number.MAX_VALUE,r=-Number.MAX_VALUE,i=Number.MAX_VALUE,o=-Number.MAX_VALUE,s=Number.MAX_VALUE,c=-Number.MAX_VALUE;for(let e=0,n=t.length;e<n;e++){const n=t[e];u=Math.min(u,n.longitude),r=Math.max(r,n.longitude),s=Math.min(s,n.latitude),c=Math.max(c,n.latitude);const l=n.longitude>=0?n.longitude:n.longitude+a.CesiumMath.TWO_PI;i=Math.min(i,l),o=Math.max(o,l)}return r-u>o-i&&(u=i,r=o,r>a.CesiumMath.PI&&(r-=a.CesiumMath.TWO_PI),u>a.CesiumMath.PI&&(u-=a.CesiumMath.TWO_PI)),n.defined(e)?(e.west=u,e.south=s,e.east=r,e.north=c,e):new E(u,s,r,c)},E.fromCartesianArray=function(t,u,r){u=n.defaultValue(u,e.Ellipsoid.WGS84);let i=Number.MAX_VALUE,o=-Number.MAX_VALUE,s=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE;for(let e=0,n=t.length;e<n;e++){const n=u.cartesianToCartographic(t[e]);i=Math.min(i,n.longitude),o=Math.max(o,n.longitude),l=Math.min(l,n.latitude),f=Math.max(f,n.latitude);const r=n.longitude>=0?n.longitude:n.longitude+a.CesiumMath.TWO_PI;s=Math.min(s,r),c=Math.max(c,r)}return o-i>c-s&&(i=s,o=c,o>a.CesiumMath.PI&&(o-=a.CesiumMath.TWO_PI),i>a.CesiumMath.PI&&(i-=a.CesiumMath.TWO_PI)),n.defined(r)?(r.west=i,r.south=l,r.east=o,r.north=f,r):new E(i,l,o,f)},E.clone=function(t,e){if(n.defined(t))return n.defined(e)?(e.west=t.west,e.south=t.south,e.east=t.east,e.north=t.north,e):new E(t.west,t.south,t.east,t.north)},E.equalsEpsilon=function(t,e,a){return a=n.defaultValue(a,0),t===e||n.defined(t)&&n.defined(e)&&Math.abs(t.west-e.west)<=a&&Math.abs(t.south-e.south)<=a&&Math.abs(t.east-e.east)<=a&&Math.abs(t.north-e.north)<=a},E.prototype.clone=function(t){return E.clone(this,t)},E.prototype.equals=function(t){return E.equals(this,t)},E.equals=function(t,e){return t===e||n.defined(t)&&n.defined(e)&&t.west===e.west&&t.south===e.south&&t.east===e.east&&t.north===e.north},E.prototype.equalsEpsilon=function(t,e){return E.equalsEpsilon(this,t,e)},E.validate=function(t){},E.southwest=function(t,a){return n.defined(a)?(a.longitude=t.west,a.latitude=t.south,a.height=0,a):new e.Cartographic(t.west,t.south)},E.northwest=function(t,a){return n.defined(a)?(a.longitude=t.west,a.latitude=t.north,a.height=0,a):new e.Cartographic(t.west,t.north)},E.northeast=function(t,a){return n.defined(a)?(a.longitude=t.east,a.latitude=t.north,a.height=0,a):new e.Cartographic(t.east,t.north)},E.southeast=function(t,a){return n.defined(a)?(a.longitude=t.east,a.latitude=t.south,a.height=0,a):new e.Cartographic(t.east,t.south)},E.center=function(t,u){let r=t.east;const i=t.west;r<i&&(r+=a.CesiumMath.TWO_PI);const o=a.CesiumMath.negativePiToPi(.5*(i+r)),s=.5*(t.south+t.north);return n.defined(u)?(u.longitude=o,u.latitude=s,u.height=0,u):new e.Cartographic(o,s)},E.intersection=function(t,e,u){let r=t.east,i=t.west,o=e.east,s=e.west;r<i&&o>0?r+=a.CesiumMath.TWO_PI:o<s&&r>0&&(o+=a.CesiumMath.TWO_PI),r<i&&s<0?s+=a.CesiumMath.TWO_PI:o<s&&i<0&&(i+=a.CesiumMath.TWO_PI);const c=a.CesiumMath.negativePiToPi(Math.max(i,s)),l=a.CesiumMath.negativePiToPi(Math.min(r,o));if((t.west<t.east||e.west<e.east)&&l<=c)return;const f=Math.max(t.south,e.south),h=Math.min(t.north,e.north);return f>=h?void 0:n.defined(u)?(u.west=c,u.south=f,u.east=l,u.north=h,u):new E(c,f,l,h)},E.simpleIntersection=function(t,e,a){const u=Math.max(t.west,e.west),r=Math.max(t.south,e.south),i=Math.min(t.east,e.east),o=Math.min(t.north,e.north);if(!(r>=o||u>=i))return n.defined(a)?(a.west=u,a.south=r,a.east=i,a.north=o,a):new E(u,r,i,o)},E.union=function(t,e,u){n.defined(u)||(u=new E);let r=t.east,i=t.west,o=e.east,s=e.west;r<i&&o>0?r+=a.CesiumMath.TWO_PI:o<s&&r>0&&(o+=a.CesiumMath.TWO_PI),r<i&&s<0?s+=a.CesiumMath.TWO_PI:o<s&&i<0&&(i+=a.CesiumMath.TWO_PI);const c=a.CesiumMath.negativePiToPi(Math.min(i,s)),l=a.CesiumMath.negativePiToPi(Math.max(r,o));return u.west=c,u.south=Math.min(t.south,e.south),u.east=l,u.north=Math.max(t.north,e.north),u},E.expand=function(t,e,a){return n.defined(a)||(a=new E),a.west=Math.min(t.west,e.longitude),a.south=Math.min(t.south,e.latitude),a.east=Math.max(t.east,e.longitude),a.north=Math.max(t.north,e.latitude),a},E.contains=function(t,e){let n=e.longitude;const u=e.latitude,r=t.west;let i=t.east;return i<r&&(i+=a.CesiumMath.TWO_PI,n<0&&(n+=a.CesiumMath.TWO_PI)),(n>r||a.CesiumMath.equalsEpsilon(n,r,a.CesiumMath.EPSILON14))&&(n<i||a.CesiumMath.equalsEpsilon(n,i,a.CesiumMath.EPSILON14))&&u>=t.south&&u<=t.north};const I=new e.Cartographic;function U(t,e){this.x=n.defaultValue(t,0),this.y=n.defaultValue(e,0)}E.subsample=function(t,u,r,i){u=n.defaultValue(u,e.Ellipsoid.WGS84),r=n.defaultValue(r,0),n.defined(i)||(i=[]);let o=0;const s=t.north,c=t.south,l=t.east,f=t.west,h=I;h.height=r,h.longitude=f,h.latitude=s,i[o]=u.cartographicToCartesian(h,i[o]),o++,h.longitude=l,i[o]=u.cartographicToCartesian(h,i[o]),o++,h.latitude=c,i[o]=u.cartographicToCartesian(h,i[o]),o++,h.longitude=f,i[o]=u.cartographicToCartesian(h,i[o]),o++,h.latitude=s<0?s:c>0?c:0;for(let e=1;e<8;++e)h.longitude=-Math.PI+e*a.CesiumMath.PI_OVER_TWO,E.contains(t,h)&&(i[o]=u.cartographicToCartesian(h,i[o]),o++);return 0===h.latitude&&(h.longitude=f,i[o]=u.cartographicToCartesian(h,i[o]),o++,h.longitude=l,i[o]=u.cartographicToCartesian(h,i[o]),o++),i.length=o,i},E.subsection=function(t,e,u,r,i,o){if(n.defined(o)||(o=new E),t.west<=t.east){const n=t.east-t.west;o.west=t.west+e*n,o.east=t.west+r*n}else{const n=a.CesiumMath.TWO_PI+t.east-t.west;o.west=a.CesiumMath.negativePiToPi(t.west+e*n),o.east=a.CesiumMath.negativePiToPi(t.west+r*n)}const s=t.north-t.south;return o.south=t.south+u*s,o.north=t.south+i*s,1===e&&(o.west=t.east),1===r&&(o.east=t.east),1===u&&(o.south=t.north),1===i&&(o.north=t.north),o},E.MAX_VALUE=Object.freeze(new E(-Math.PI,-a.CesiumMath.PI_OVER_TWO,Math.PI,a.CesiumMath.PI_OVER_TWO)),U.fromElements=function(t,e,a){return n.defined(a)?(a.x=t,a.y=e,a):new U(t,e)},U.clone=function(t,e){if(n.defined(t))return n.defined(e)?(e.x=t.x,e.y=t.y,e):new U(t.x,t.y)},U.fromCartesian3=U.clone,U.fromCartesian4=U.clone,U.packedLength=2,U.pack=function(t,e,a){return a=n.defaultValue(a,0),e[a++]=t.x,e[a]=t.y,e},U.unpack=function(t,e,a){return e=n.defaultValue(e,0),n.defined(a)||(a=new U),a.x=t[e++],a.y=t[e],a},U.packArray=function(t,e){const a=t.length,u=2*a;n.defined(e)?(Array.isArray(e)||e.length===u)&&e.length!==u&&(e.length=u):e=new Array(u);for(let n=0;n<a;++n)U.pack(t[n],e,2*n);return e},U.unpackArray=function(t,e){const a=t.length;n.defined(e)?e.length=a/2:e=new Array(a/2);for(let n=0;n<a;n+=2){const a=n/2;e[a]=U.unpack(t,n,e[a])}return e},U.fromArray=U.unpack,U.maximumComponent=function(t){return Math.max(t.x,t.y)},U.minimumComponent=function(t){return Math.min(t.x,t.y)},U.minimumByComponent=function(t,e,n){return n.x=Math.min(t.x,e.x),n.y=Math.min(t.y,e.y),n},U.maximumByComponent=function(t,e,n){return n.x=Math.max(t.x,e.x),n.y=Math.max(t.y,e.y),n},U.clamp=function(t,e,n,u){const r=a.CesiumMath.clamp(t.x,e.x,n.x),i=a.CesiumMath.clamp(t.y,e.y,n.y);return u.x=r,u.y=i,u},U.magnitudeSquared=function(t){return t.x*t.x+t.y*t.y},U.magnitude=function(t){return Math.sqrt(U.magnitudeSquared(t))};const N=new U;U.distance=function(t,e){return U.subtract(t,e,N),U.magnitude(N)},U.distanceSquared=function(t,e){return U.subtract(t,e,N),U.magnitudeSquared(N)},U.normalize=function(t,e){const n=U.magnitude(t);return e.x=t.x/n,e.y=t.y/n,e},U.dot=function(t,e){return t.x*e.x+t.y*e.y},U.cross=function(t,e){return t.x*e.y-t.y*e.x},U.multiplyComponents=function(t,e,n){return n.x=t.x*e.x,n.y=t.y*e.y,n},U.divideComponents=function(t,e,n){return n.x=t.x/e.x,n.y=t.y/e.y,n},U.add=function(t,e,n){return n.x=t.x+e.x,n.y=t.y+e.y,n},U.subtract=function(t,e,n){return n.x=t.x-e.x,n.y=t.y-e.y,n},U.multiplyByScalar=function(t,e,n){return n.x=t.x*e,n.y=t.y*e,n},U.divideByScalar=function(t,e,n){return n.x=t.x/e,n.y=t.y/e,n},U.negate=function(t,e){return e.x=-t.x,e.y=-t.y,e},U.abs=function(t,e){return e.x=Math.abs(t.x),e.y=Math.abs(t.y),e};const S=new U;U.lerp=function(t,e,n,a){return U.multiplyByScalar(e,n,S),a=U.multiplyByScalar(t,1-n,a),U.add(S,a,a)};const P=new U,_=new U;U.angleBetween=function(t,e){return U.normalize(t,P),U.normalize(e,_),a.CesiumMath.acosClamped(U.dot(P,_))};const q=new U;function R(t,e,a,u){this[0]=n.defaultValue(t,0),this[1]=n.defaultValue(a,0),this[2]=n.defaultValue(e,0),this[3]=n.defaultValue(u,0)}U.mostOrthogonalAxis=function(t,e){const n=U.normalize(t,q);return U.abs(n,n),e=n.x<=n.y?U.clone(U.UNIT_X,e):U.clone(U.UNIT_Y,e)},U.equals=function(t,e){return t===e||n.defined(t)&&n.defined(e)&&t.x===e.x&&t.y===e.y},U.equalsArray=function(t,e,n){return t.x===e[n]&&t.y===e[n+1]},U.equalsEpsilon=function(t,e,u,r){return t===e||n.defined(t)&&n.defined(e)&&a.CesiumMath.equalsEpsilon(t.x,e.x,u,r)&&a.CesiumMath.equalsEpsilon(t.y,e.y,u,r)},U.ZERO=Object.freeze(new U(0,0)),U.ONE=Object.freeze(new U(1,1)),U.UNIT_X=Object.freeze(new U(1,0)),U.UNIT_Y=Object.freeze(new U(0,1)),U.prototype.clone=function(t){return U.clone(this,t)},U.prototype.equals=function(t){return U.equals(this,t)},U.prototype.equalsEpsilon=function(t,e,n){return U.equalsEpsilon(this,t,e,n)},U.prototype.toString=function(){return`(${this.x}, ${this.y})`},R.packedLength=4,R.pack=function(t,e,a){return a=n.defaultValue(a,0),e[a++]=t[0],e[a++]=t[1],e[a++]=t[2],e[a++]=t[3],e},R.unpack=function(t,e,a){return e=n.defaultValue(e,0),n.defined(a)||(a=new R),a[0]=t[e++],a[1]=t[e++],a[2]=t[e++],a[3]=t[e++],a},R.packArray=function(t,e){const a=t.length,u=4*a;n.defined(e)?(Array.isArray(e)||e.length===u)&&e.length!==u&&(e.length=u):e=new Array(u);for(let n=0;n<a;++n)R.pack(t[n],e,4*n);return e},R.unpackArray=function(t,e){const a=t.length;n.defined(e)?e.length=a/4:e=new Array(a/4);for(let n=0;n<a;n+=4){const a=n/4;e[a]=R.unpack(t,n,e[a])}return e},R.clone=function(t,e){if(n.defined(t))return n.defined(e)?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):new R(t[0],t[2],t[1],t[3])},R.fromArray=R.unpack,R.fromColumnMajorArray=function(t,e){return R.clone(t,e)},R.fromRowMajorArray=function(t,e){return n.defined(e)?(e[0]=t[0],e[1]=t[2],e[2]=t[1],e[3]=t[3],e):new R(t[0],t[1],t[2],t[3])},R.fromScale=function(t,e){return n.defined(e)?(e[0]=t.x,e[1]=0,e[2]=0,e[3]=t.y,e):new R(t.x,0,0,t.y)},R.fromUniformScale=function(t,e){return n.defined(e)?(e[0]=t,e[1]=0,e[2]=0,e[3]=t,e):new R(t,0,0,t)},R.fromRotation=function(t,e){const a=Math.cos(t),u=Math.sin(t);return n.defined(e)?(e[0]=a,e[1]=u,e[2]=-u,e[3]=a,e):new R(a,-u,u,a)},R.toArray=function(t,e){return n.defined(e)?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e):[t[0],t[1],t[2],t[3]]},R.getElementIndex=function(t,e){return 2*t+e},R.getColumn=function(t,e,n){const a=2*e,u=t[a],r=t[a+1];return n.x=u,n.y=r,n},R.setColumn=function(t,e,n,a){const u=2*e;return(a=R.clone(t,a))[u]=n.x,a[u+1]=n.y,a},R.getRow=function(t,e,n){const a=t[e],u=t[e+2];return n.x=a,n.y=u,n},R.setRow=function(t,e,n,a){return(a=R.clone(t,a))[e]=n.x,a[e+2]=n.y,a};const W=new U;R.setScale=function(t,e,n){const a=R.getScale(t,W),u=e.x/a.x,r=e.y/a.y;return n[0]=t[0]*u,n[1]=t[1]*u,n[2]=t[2]*r,n[3]=t[3]*r,n};const L=new U;R.setUniformScale=function(t,e,n){const a=R.getScale(t,L),u=e/a.x,r=e/a.y;return n[0]=t[0]*u,n[1]=t[1]*u,n[2]=t[2]*r,n[3]=t[3]*r,n};const k=new U;R.getScale=function(t,e){return e.x=U.magnitude(U.fromElements(t[0],t[1],k)),e.y=U.magnitude(U.fromElements(t[2],t[3],k)),e};const B=new U;R.getMaximumScale=function(t){return R.getScale(t,B),U.maximumComponent(B)};const $=new U;R.setRotation=function(t,e,n){const a=R.getScale(t,$);return n[0]=e[0]*a.x,n[1]=e[1]*a.x,n[2]=e[2]*a.y,n[3]=e[3]*a.y,n};const j=new U;R.getRotation=function(t,e){const n=R.getScale(t,j);return e[0]=t[0]/n.x,e[1]=t[1]/n.x,e[2]=t[2]/n.y,e[3]=t[3]/n.y,e},R.multiply=function(t,e,n){const a=t[0]*e[0]+t[2]*e[1],u=t[0]*e[2]+t[2]*e[3],r=t[1]*e[0]+t[3]*e[1],i=t[1]*e[2]+t[3]*e[3];return n[0]=a,n[1]=r,n[2]=u,n[3]=i,n},R.add=function(t,e,n){return n[0]=t[0]+e[0],n[1]=t[1]+e[1],n[2]=t[2]+e[2],n[3]=t[3]+e[3],n},R.subtract=function(t,e,n){return n[0]=t[0]-e[0],n[1]=t[1]-e[1],n[2]=t[2]-e[2],n[3]=t[3]-e[3],n},R.multiplyByVector=function(t,e,n){const a=t[0]*e.x+t[2]*e.y,u=t[1]*e.x+t[3]*e.y;return n.x=a,n.y=u,n},R.multiplyByScalar=function(t,e,n){return n[0]=t[0]*e,n[1]=t[1]*e,n[2]=t[2]*e,n[3]=t[3]*e,n},R.multiplyByScale=function(t,e,n){return n[0]=t[0]*e.x,n[1]=t[1]*e.x,n[2]=t[2]*e.y,n[3]=t[3]*e.y,n},R.multiplyByUniformScale=function(t,e,n){return n[0]=t[0]*e,n[1]=t[1]*e,n[2]=t[2]*e,n[3]=t[3]*e,n},R.negate=function(t,e){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=-t[3],e},R.transpose=function(t,e){const n=t[0],a=t[2],u=t[1],r=t[3];return e[0]=n,e[1]=a,e[2]=u,e[3]=r,e},R.abs=function(t,e){return e[0]=Math.abs(t[0]),e[1]=Math.abs(t[1]),e[2]=Math.abs(t[2]),e[3]=Math.abs(t[3]),e},R.equals=function(t,e){return t===e||n.defined(t)&&n.defined(e)&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]},R.equalsArray=function(t,e,n){return t[0]===e[n]&&t[1]===e[n+1]&&t[2]===e[n+2]&&t[3]===e[n+3]},R.equalsEpsilon=function(t,e,a){return a=n.defaultValue(a,0),t===e||n.defined(t)&&n.defined(e)&&Math.abs(t[0]-e[0])<=a&&Math.abs(t[1]-e[1])<=a&&Math.abs(t[2]-e[2])<=a&&Math.abs(t[3]-e[3])<=a},R.IDENTITY=Object.freeze(new R(1,0,0,1)),R.ZERO=Object.freeze(new R(0,0,0,0)),R.COLUMN0ROW0=0,R.COLUMN0ROW1=1,R.COLUMN1ROW0=2,R.COLUMN1ROW1=3,Object.defineProperties(R.prototype,{length:{get:function(){return R.packedLength}}}),R.prototype.clone=function(t){return R.clone(this,t)},R.prototype.equals=function(t){return R.equals(this,t)},R.prototype.equalsEpsilon=function(t,e){return R.equalsEpsilon(this,t,e)},R.prototype.toString=function(){return`(${this[0]}, ${this[2]})\n(${this[1]}, ${this[3]})`},t.Cartesian2=U,t.Cartesian4=r,t.Matrix2=R,t.Matrix4=d,t.Rectangle=E})); diff --git a/public/static/Cesium/Workers/Matrix3-b2351961.js b/public/static/Cesium/Workers/Matrix3-b2351961.js new file mode 100644 index 0000000..4c2955f --- /dev/null +++ b/public/static/Cesium/Workers/Matrix3-b2351961.js @@ -0,0 +1 @@ +define(["exports","./defaultValue-f6d5e6da","./Math-355606c6"],(function(e,t,n){"use strict";function i(e,n,i){this.x=t.defaultValue(e,0),this.y=t.defaultValue(n,0),this.z=t.defaultValue(i,0)}i.fromSpherical=function(e,n){t.defined(n)||(n=new i);const r=e.clock,a=e.cone,o=t.defaultValue(e.magnitude,1),u=o*Math.sin(a);return n.x=u*Math.cos(r),n.y=u*Math.sin(r),n.z=o*Math.cos(a),n},i.fromElements=function(e,n,r,a){return t.defined(a)?(a.x=e,a.y=n,a.z=r,a):new i(e,n,r)},i.clone=function(e,n){if(t.defined(e))return t.defined(n)?(n.x=e.x,n.y=e.y,n.z=e.z,n):new i(e.x,e.y,e.z)},i.fromCartesian4=i.clone,i.packedLength=3,i.pack=function(e,n,i){return i=t.defaultValue(i,0),n[i++]=e.x,n[i++]=e.y,n[i]=e.z,n},i.unpack=function(e,n,r){return n=t.defaultValue(n,0),t.defined(r)||(r=new i),r.x=e[n++],r.y=e[n++],r.z=e[n],r},i.packArray=function(e,n){const r=e.length,a=3*r;t.defined(n)?(Array.isArray(n)||n.length===a)&&n.length!==a&&(n.length=a):n=new Array(a);for(let t=0;t<r;++t)i.pack(e[t],n,3*t);return n},i.unpackArray=function(e,n){const r=e.length;t.defined(n)?n.length=r/3:n=new Array(r/3);for(let t=0;t<r;t+=3){const r=t/3;n[r]=i.unpack(e,t,n[r])}return n},i.fromArray=i.unpack,i.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},i.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},i.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},i.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},i.clamp=function(e,t,i,r){const a=n.CesiumMath.clamp(e.x,t.x,i.x),o=n.CesiumMath.clamp(e.y,t.y,i.y),u=n.CesiumMath.clamp(e.z,t.z,i.z);return r.x=a,r.y=o,r.z=u,r},i.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},i.magnitude=function(e){return Math.sqrt(i.magnitudeSquared(e))};const r=new i;i.distance=function(e,t){return i.subtract(e,t,r),i.magnitude(r)},i.distanceSquared=function(e,t){return i.subtract(e,t,r),i.magnitudeSquared(r)},i.normalize=function(e,t){const n=i.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},i.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},i.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},i.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},i.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},i.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},i.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},i.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},i.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},i.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};const a=new i;i.lerp=function(e,t,n,r){return i.multiplyByScalar(t,n,a),r=i.multiplyByScalar(e,1-n,r),i.add(a,r,r)};const o=new i,u=new i;i.angleBetween=function(e,t){i.normalize(e,o),i.normalize(t,u);const n=i.dot(o,u),r=i.magnitude(i.cross(o,u,o));return Math.atan2(r,n)};const c=new i;i.mostOrthogonalAxis=function(e,t){const n=i.normalize(e,c);return i.abs(n,n),t=n.x<=n.y?n.x<=n.z?i.clone(i.UNIT_X,t):i.clone(i.UNIT_Z,t):n.y<=n.z?i.clone(i.UNIT_Y,t):i.clone(i.UNIT_Z,t)},i.projectVector=function(e,t,n){const r=i.dot(e,t)/i.dot(t,t);return i.multiplyByScalar(t,r,n)},i.equals=function(e,n){return e===n||t.defined(e)&&t.defined(n)&&e.x===n.x&&e.y===n.y&&e.z===n.z},i.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},i.equalsEpsilon=function(e,i,r,a){return e===i||t.defined(e)&&t.defined(i)&&n.CesiumMath.equalsEpsilon(e.x,i.x,r,a)&&n.CesiumMath.equalsEpsilon(e.y,i.y,r,a)&&n.CesiumMath.equalsEpsilon(e.z,i.z,r,a)},i.cross=function(e,t,n){const i=e.x,r=e.y,a=e.z,o=t.x,u=t.y,c=t.z,s=r*c-a*u,d=a*o-i*c,l=i*u-r*o;return n.x=s,n.y=d,n.z=l,n},i.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},i.fromDegrees=function(e,t,r,a,o){return e=n.CesiumMath.toRadians(e),t=n.CesiumMath.toRadians(t),i.fromRadians(e,t,r,a,o)};let s=new i,d=new i;const l=new i(40680631590769,40680631590769,40408299984661.445);i.fromRadians=function(e,n,r,a,o){r=t.defaultValue(r,0);const u=t.defined(a)?a.radiiSquared:l,c=Math.cos(n);s.x=c*Math.cos(e),s.y=c*Math.sin(e),s.z=Math.sin(n),s=i.normalize(s,s),i.multiplyComponents(u,s,d);const f=Math.sqrt(i.dot(s,d));return d=i.divideByScalar(d,f,d),s=i.multiplyByScalar(s,r,s),t.defined(o)||(o=new i),i.add(d,s,o)},i.fromDegreesArray=function(e,n,r){const a=e.length;t.defined(r)?r.length=a/2:r=new Array(a/2);for(let t=0;t<a;t+=2){const a=e[t],o=e[t+1],u=t/2;r[u]=i.fromDegrees(a,o,0,n,r[u])}return r},i.fromRadiansArray=function(e,n,r){const a=e.length;t.defined(r)?r.length=a/2:r=new Array(a/2);for(let t=0;t<a;t+=2){const a=e[t],o=e[t+1],u=t/2;r[u]=i.fromRadians(a,o,0,n,r[u])}return r},i.fromDegreesArrayHeights=function(e,n,r){const a=e.length;t.defined(r)?r.length=a/3:r=new Array(a/3);for(let t=0;t<a;t+=3){const a=e[t],o=e[t+1],u=e[t+2],c=t/3;r[c]=i.fromDegrees(a,o,u,n,r[c])}return r},i.fromRadiansArrayHeights=function(e,n,r){const a=e.length;t.defined(r)?r.length=a/3:r=new Array(a/3);for(let t=0;t<a;t+=3){const a=e[t],o=e[t+1],u=e[t+2],c=t/3;r[c]=i.fromRadians(a,o,u,n,r[c])}return r},i.ZERO=Object.freeze(new i(0,0,0)),i.ONE=Object.freeze(new i(1,1,1)),i.UNIT_X=Object.freeze(new i(1,0,0)),i.UNIT_Y=Object.freeze(new i(0,1,0)),i.UNIT_Z=Object.freeze(new i(0,0,1)),i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z})`};const f=new i,h=new i;function m(e,r,a,o,u){const c=e.x,s=e.y,d=e.z,l=r.x,m=r.y,y=r.z,p=c*c*l*l,g=s*s*m*m,x=d*d*y*y,z=p+g+x,M=Math.sqrt(1/z),w=i.multiplyByScalar(e,M,f);if(z<o)return isFinite(M)?i.clone(w,u):void 0;const S=a.x,q=a.y,R=a.z,_=h;_.x=w.x*S*2,_.y=w.y*q*2,_.z=w.z*R*2;let O,C,b,E,T,A,v,N,I,V,U,k=(1-M)*i.magnitude(e)/(.5*i.magnitude(_)),L=0;do{k-=L,b=1/(1+k*S),E=1/(1+k*q),T=1/(1+k*R),A=b*b,v=E*E,N=T*T,I=A*b,V=v*E,U=N*T,O=p*A+g*v+x*N-1,C=p*I*S+g*V*q+x*U*R;L=O/(-2*C)}while(Math.abs(O)>n.CesiumMath.EPSILON12);return t.defined(u)?(u.x=c*b,u.y=s*E,u.z=d*T,u):new i(c*b,s*E,d*T)}function y(e,n,i){this.longitude=t.defaultValue(e,0),this.latitude=t.defaultValue(n,0),this.height=t.defaultValue(i,0)}y.fromRadians=function(e,n,i,r){return i=t.defaultValue(i,0),t.defined(r)?(r.longitude=e,r.latitude=n,r.height=i,r):new y(e,n,i)},y.fromDegrees=function(e,t,i,r){return e=n.CesiumMath.toRadians(e),t=n.CesiumMath.toRadians(t),y.fromRadians(e,t,i,r)};const p=new i,g=new i,x=new i,z=new i(1/6378137,1/6378137,1/6356752.314245179),M=new i(1/40680631590769,1/40680631590769,1/40408299984661.445),w=n.CesiumMath.EPSILON1;function S(e,r,a,o){r=t.defaultValue(r,0),a=t.defaultValue(a,0),o=t.defaultValue(o,0),e._radii=new i(r,a,o),e._radiiSquared=new i(r*r,a*a,o*o),e._radiiToTheFourth=new i(r*r*r*r,a*a*a*a,o*o*o*o),e._oneOverRadii=new i(0===r?0:1/r,0===a?0:1/a,0===o?0:1/o),e._oneOverRadiiSquared=new i(0===r?0:1/(r*r),0===a?0:1/(a*a),0===o?0:1/(o*o)),e._minimumRadius=Math.min(r,a,o),e._maximumRadius=Math.max(r,a,o),e._centerToleranceSquared=n.CesiumMath.EPSILON1,0!==e._radiiSquared.z&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function q(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,S(this,e,t,n)}y.fromCartesian=function(e,r,a){const o=t.defined(r)?r.oneOverRadii:z,u=t.defined(r)?r.oneOverRadiiSquared:M,c=m(e,o,u,t.defined(r)?r._centerToleranceSquared:w,g);if(!t.defined(c))return;let s=i.multiplyComponents(c,u,p);s=i.normalize(s,s);const d=i.subtract(e,c,x),l=Math.atan2(s.y,s.x),f=Math.asin(s.z),h=n.CesiumMath.sign(i.dot(d,e))*i.magnitude(d);return t.defined(a)?(a.longitude=l,a.latitude=f,a.height=h,a):new y(l,f,h)},y.toCartesian=function(e,t,n){return i.fromRadians(e.longitude,e.latitude,e.height,t,n)},y.clone=function(e,n){if(t.defined(e))return t.defined(n)?(n.longitude=e.longitude,n.latitude=e.latitude,n.height=e.height,n):new y(e.longitude,e.latitude,e.height)},y.equals=function(e,n){return e===n||t.defined(e)&&t.defined(n)&&e.longitude===n.longitude&&e.latitude===n.latitude&&e.height===n.height},y.equalsEpsilon=function(e,n,i){return i=t.defaultValue(i,0),e===n||t.defined(e)&&t.defined(n)&&Math.abs(e.longitude-n.longitude)<=i&&Math.abs(e.latitude-n.latitude)<=i&&Math.abs(e.height-n.height)<=i},y.ZERO=Object.freeze(new y(0,0,0)),y.prototype.clone=function(e){return y.clone(this,e)},y.prototype.equals=function(e){return y.equals(this,e)},y.prototype.equalsEpsilon=function(e,t){return y.equalsEpsilon(this,e,t)},y.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`},Object.defineProperties(q.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),q.clone=function(e,n){if(!t.defined(e))return;const r=e._radii;return t.defined(n)?(i.clone(r,n._radii),i.clone(e._radiiSquared,n._radiiSquared),i.clone(e._radiiToTheFourth,n._radiiToTheFourth),i.clone(e._oneOverRadii,n._oneOverRadii),i.clone(e._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=e._minimumRadius,n._maximumRadius=e._maximumRadius,n._centerToleranceSquared=e._centerToleranceSquared,n):new q(r.x,r.y,r.z)},q.fromCartesian3=function(e,n){return t.defined(n)||(n=new q),t.defined(e)?(S(n,e.x,e.y,e.z),n):n},q.WGS84=Object.freeze(new q(6378137,6378137,6356752.314245179)),q.UNIT_SPHERE=Object.freeze(new q(1,1,1)),q.MOON=Object.freeze(new q(n.CesiumMath.LUNAR_RADIUS,n.CesiumMath.LUNAR_RADIUS,n.CesiumMath.LUNAR_RADIUS)),q.prototype.clone=function(e){return q.clone(this,e)},q.packedLength=i.packedLength,q.pack=function(e,n,r){return r=t.defaultValue(r,0),i.pack(e._radii,n,r),n},q.unpack=function(e,n,r){n=t.defaultValue(n,0);const a=i.unpack(e,n);return q.fromCartesian3(a,r)},q.prototype.geocentricSurfaceNormal=i.normalize,q.prototype.geodeticSurfaceNormalCartographic=function(e,n){const r=e.longitude,a=e.latitude,o=Math.cos(a),u=o*Math.cos(r),c=o*Math.sin(r),s=Math.sin(a);return t.defined(n)||(n=new i),n.x=u,n.y=c,n.z=s,i.normalize(n,n)},q.prototype.geodeticSurfaceNormal=function(e,r){if(!i.equalsEpsilon(e,i.ZERO,n.CesiumMath.EPSILON14))return t.defined(r)||(r=new i),r=i.multiplyComponents(e,this._oneOverRadiiSquared,r),i.normalize(r,r)};const R=new i,_=new i;q.prototype.cartographicToCartesian=function(e,n){const r=R,a=_;this.geodeticSurfaceNormalCartographic(e,r),i.multiplyComponents(this._radiiSquared,r,a);const o=Math.sqrt(i.dot(r,a));return i.divideByScalar(a,o,a),i.multiplyByScalar(r,e.height,r),t.defined(n)||(n=new i),i.add(a,r,n)},q.prototype.cartographicArrayToCartesianArray=function(e,n){const i=e.length;t.defined(n)?n.length=i:n=new Array(i);for(let t=0;t<i;t++)n[t]=this.cartographicToCartesian(e[t],n[t]);return n};const O=new i,C=new i,b=new i;q.prototype.cartesianToCartographic=function(e,r){const a=this.scaleToGeodeticSurface(e,C);if(!t.defined(a))return;const o=this.geodeticSurfaceNormal(a,O),u=i.subtract(e,a,b),c=Math.atan2(o.y,o.x),s=Math.asin(o.z),d=n.CesiumMath.sign(i.dot(u,e))*i.magnitude(u);return t.defined(r)?(r.longitude=c,r.latitude=s,r.height=d,r):new y(c,s,d)},q.prototype.cartesianArrayToCartographicArray=function(e,n){const i=e.length;t.defined(n)?n.length=i:n=new Array(i);for(let t=0;t<i;++t)n[t]=this.cartesianToCartographic(e[t],n[t]);return n},q.prototype.scaleToGeodeticSurface=function(e,t){return m(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},q.prototype.scaleToGeocentricSurface=function(e,n){t.defined(n)||(n=new i);const r=e.x,a=e.y,o=e.z,u=this._oneOverRadiiSquared,c=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return i.multiplyByScalar(e,c,n)},q.prototype.transformPositionToScaledSpace=function(e,n){return t.defined(n)||(n=new i),i.multiplyComponents(e,this._oneOverRadii,n)},q.prototype.transformPositionFromScaledSpace=function(e,n){return t.defined(n)||(n=new i),i.multiplyComponents(e,this._radii,n)},q.prototype.equals=function(e){return this===e||t.defined(e)&&i.equals(this._radii,e._radii)},q.prototype.toString=function(){return this._radii.toString()},q.prototype.getSurfaceNormalIntersectionWithZAxis=function(e,n,r){n=t.defaultValue(n,0);const a=this._squaredXOverSquaredZ;if(t.defined(r)||(r=new i),r.x=0,r.y=0,r.z=e.z*(1-a),!(Math.abs(r.z)>=this._radii.z-n))return r};const E=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],T=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function A(e,t,n){const i=.5*(t+e),r=.5*(t-e);let a=0;for(let e=0;e<5;e++){const t=r*E[e];a+=T[e]*(n(i+t)+n(i-t))}return a*=r,a}function v(e,n,i,r,a,o,u,c,s){this[0]=t.defaultValue(e,0),this[1]=t.defaultValue(r,0),this[2]=t.defaultValue(u,0),this[3]=t.defaultValue(n,0),this[4]=t.defaultValue(a,0),this[5]=t.defaultValue(c,0),this[6]=t.defaultValue(i,0),this[7]=t.defaultValue(o,0),this[8]=t.defaultValue(s,0)}q.prototype.surfaceArea=function(e){const t=e.west;let i=e.east;const r=e.south,a=e.north;for(;i<t;)i+=n.CesiumMath.TWO_PI;const o=this._radiiSquared,u=o.x,c=o.y,s=o.z,d=u*c;return A(r,a,(function(e){const n=Math.cos(e),r=Math.sin(e);return Math.cos(e)*A(t,i,(function(e){const t=Math.cos(e),i=Math.sin(e);return Math.sqrt(d*r*r+s*(c*t*t+u*i*i)*n*n)}))}))},v.packedLength=9,v.pack=function(e,n,i){return i=t.defaultValue(i,0),n[i++]=e[0],n[i++]=e[1],n[i++]=e[2],n[i++]=e[3],n[i++]=e[4],n[i++]=e[5],n[i++]=e[6],n[i++]=e[7],n[i++]=e[8],n},v.unpack=function(e,n,i){return n=t.defaultValue(n,0),t.defined(i)||(i=new v),i[0]=e[n++],i[1]=e[n++],i[2]=e[n++],i[3]=e[n++],i[4]=e[n++],i[5]=e[n++],i[6]=e[n++],i[7]=e[n++],i[8]=e[n++],i},v.packArray=function(e,n){const i=e.length,r=9*i;t.defined(n)?(Array.isArray(n)||n.length===r)&&n.length!==r&&(n.length=r):n=new Array(r);for(let t=0;t<i;++t)v.pack(e[t],n,9*t);return n},v.unpackArray=function(e,n){const i=e.length;t.defined(n)?n.length=i/9:n=new Array(i/9);for(let t=0;t<i;t+=9){const i=t/9;n[i]=v.unpack(e,t,n[i])}return n},v.clone=function(e,n){if(t.defined(e))return t.defined(n)?(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n):new v(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},v.fromArray=v.unpack,v.fromColumnMajorArray=function(e,t){return v.clone(e,t)},v.fromRowMajorArray=function(e,n){return t.defined(n)?(n[0]=e[0],n[1]=e[3],n[2]=e[6],n[3]=e[1],n[4]=e[4],n[5]=e[7],n[6]=e[2],n[7]=e[5],n[8]=e[8],n):new v(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},v.fromQuaternion=function(e,n){const i=e.x*e.x,r=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,s=e.y*e.w,d=e.z*e.z,l=e.z*e.w,f=e.w*e.w,h=i-u-d+f,m=2*(r-l),y=2*(a+s),p=2*(r+l),g=-i+u-d+f,x=2*(c-o),z=2*(a-s),M=2*(c+o),w=-i-u+d+f;return t.defined(n)?(n[0]=h,n[1]=p,n[2]=z,n[3]=m,n[4]=g,n[5]=M,n[6]=y,n[7]=x,n[8]=w,n):new v(h,m,y,p,g,x,z,M,w)},v.fromHeadingPitchRoll=function(e,n){const i=Math.cos(-e.pitch),r=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),s=i*r,d=-a*u+c*o*r,l=c*u+a*o*r,f=i*u,h=a*r+c*o*u,m=-c*r+a*o*u,y=-o,p=c*i,g=a*i;return t.defined(n)?(n[0]=s,n[1]=f,n[2]=y,n[3]=d,n[4]=h,n[5]=p,n[6]=l,n[7]=m,n[8]=g,n):new v(s,d,l,f,h,m,y,p,g)},v.fromScale=function(e,n){return t.defined(n)?(n[0]=e.x,n[1]=0,n[2]=0,n[3]=0,n[4]=e.y,n[5]=0,n[6]=0,n[7]=0,n[8]=e.z,n):new v(e.x,0,0,0,e.y,0,0,0,e.z)},v.fromUniformScale=function(e,n){return t.defined(n)?(n[0]=e,n[1]=0,n[2]=0,n[3]=0,n[4]=e,n[5]=0,n[6]=0,n[7]=0,n[8]=e,n):new v(e,0,0,0,e,0,0,0,e)},v.fromCrossProduct=function(e,n){return t.defined(n)?(n[0]=0,n[1]=e.z,n[2]=-e.y,n[3]=-e.z,n[4]=0,n[5]=e.x,n[6]=e.y,n[7]=-e.x,n[8]=0,n):new v(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},v.fromRotationX=function(e,n){const i=Math.cos(e),r=Math.sin(e);return t.defined(n)?(n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=i,n[5]=r,n[6]=0,n[7]=-r,n[8]=i,n):new v(1,0,0,0,i,-r,0,r,i)},v.fromRotationY=function(e,n){const i=Math.cos(e),r=Math.sin(e);return t.defined(n)?(n[0]=i,n[1]=0,n[2]=-r,n[3]=0,n[4]=1,n[5]=0,n[6]=r,n[7]=0,n[8]=i,n):new v(i,0,r,0,1,0,-r,0,i)},v.fromRotationZ=function(e,n){const i=Math.cos(e),r=Math.sin(e);return t.defined(n)?(n[0]=i,n[1]=r,n[2]=0,n[3]=-r,n[4]=i,n[5]=0,n[6]=0,n[7]=0,n[8]=1,n):new v(i,-r,0,r,i,0,0,0,1)},v.toArray=function(e,n){return t.defined(n)?(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},v.getElementIndex=function(e,t){return 3*e+t},v.getColumn=function(e,t,n){const i=3*t,r=e[i],a=e[i+1],o=e[i+2];return n.x=r,n.y=a,n.z=o,n},v.setColumn=function(e,t,n,i){const r=3*t;return(i=v.clone(e,i))[r]=n.x,i[r+1]=n.y,i[r+2]=n.z,i},v.getRow=function(e,t,n){const i=e[t],r=e[t+3],a=e[t+6];return n.x=i,n.y=r,n.z=a,n},v.setRow=function(e,t,n,i){return(i=v.clone(e,i))[t]=n.x,i[t+3]=n.y,i[t+6]=n.z,i};const N=new i;v.setScale=function(e,t,n){const i=v.getScale(e,N),r=t.x/i.x,a=t.y/i.y,o=t.z/i.z;return n[0]=e[0]*r,n[1]=e[1]*r,n[2]=e[2]*r,n[3]=e[3]*a,n[4]=e[4]*a,n[5]=e[5]*a,n[6]=e[6]*o,n[7]=e[7]*o,n[8]=e[8]*o,n};const I=new i;v.setUniformScale=function(e,t,n){const i=v.getScale(e,I),r=t/i.x,a=t/i.y,o=t/i.z;return n[0]=e[0]*r,n[1]=e[1]*r,n[2]=e[2]*r,n[3]=e[3]*a,n[4]=e[4]*a,n[5]=e[5]*a,n[6]=e[6]*o,n[7]=e[7]*o,n[8]=e[8]*o,n};const V=new i;v.getScale=function(e,t){return t.x=i.magnitude(i.fromElements(e[0],e[1],e[2],V)),t.y=i.magnitude(i.fromElements(e[3],e[4],e[5],V)),t.z=i.magnitude(i.fromElements(e[6],e[7],e[8],V)),t};const U=new i;v.getMaximumScale=function(e){return v.getScale(e,U),i.maximumComponent(U)};const k=new i;v.setRotation=function(e,t,n){const i=v.getScale(e,k);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=t[3]*i.y,n[4]=t[4]*i.y,n[5]=t[5]*i.y,n[6]=t[6]*i.z,n[7]=t[7]*i.z,n[8]=t[8]*i.z,n};const L=new i;v.getRotation=function(e,t){const n=v.getScale(e,L);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[3]/n.y,t[4]=e[4]/n.y,t[5]=e[5]/n.y,t[6]=e[6]/n.z,t[7]=e[7]/n.z,t[8]=e[8]/n.z,t},v.multiply=function(e,t,n){const i=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],r=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],c=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],s=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],d=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],l=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=i,n[1]=r,n[2]=a,n[3]=o,n[4]=u,n[5]=c,n[6]=s,n[7]=d,n[8]=l,n},v.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},v.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},v.multiplyByVector=function(e,t,n){const i=t.x,r=t.y,a=t.z,o=e[0]*i+e[3]*r+e[6]*a,u=e[1]*i+e[4]*r+e[7]*a,c=e[2]*i+e[5]*r+e[8]*a;return n.x=o,n.y=u,n.z=c,n},v.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},v.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},v.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},v.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},v.transpose=function(e,t){const n=e[0],i=e[3],r=e[6],a=e[1],o=e[4],u=e[7],c=e[2],s=e[5],d=e[8];return t[0]=n,t[1]=i,t[2]=r,t[3]=a,t[4]=o,t[5]=u,t[6]=c,t[7]=s,t[8]=d,t};const B=[1,0,0],j=[2,2,1];function $(e){let t=0;for(let n=0;n<3;++n){const i=e[v.getElementIndex(j[n],B[n])];t+=2*i*i}return Math.sqrt(t)}function P(e,t){const i=n.CesiumMath.EPSILON15;let r=0,a=1;for(let t=0;t<3;++t){const n=Math.abs(e[v.getElementIndex(j[t],B[t])]);n>r&&(a=t,r=n)}let o=1,u=0;const c=B[a],s=j[a];if(Math.abs(e[v.getElementIndex(s,c)])>i){const t=(e[v.getElementIndex(s,s)]-e[v.getElementIndex(c,c)])/2/e[v.getElementIndex(s,c)];let n;n=t<0?-1/(-t+Math.sqrt(1+t*t)):1/(t+Math.sqrt(1+t*t)),o=1/Math.sqrt(1+n*n),u=n*o}return(t=v.clone(v.IDENTITY,t))[v.getElementIndex(c,c)]=t[v.getElementIndex(s,s)]=o,t[v.getElementIndex(s,c)]=u,t[v.getElementIndex(c,s)]=-u,t}const D=new v,W=new v;v.computeEigenDecomposition=function(e,i){const r=n.CesiumMath.EPSILON20;let a=0,o=0;t.defined(i)||(i={});const u=i.unitary=v.clone(v.IDENTITY,i.unitary),c=i.diagonal=v.clone(e,i.diagonal),s=r*function(e){let t=0;for(let n=0;n<9;++n){const i=e[n];t+=i*i}return Math.sqrt(t)}(c);for(;o<10&&$(c)>s;)P(c,D),v.transpose(D,W),v.multiply(c,D,c),v.multiply(W,c,c),v.multiply(u,D,u),++a>2&&(++o,a=0);return i},v.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},v.determinant=function(e){const t=e[0],n=e[3],i=e[6],r=e[1],a=e[4],o=e[7],u=e[2],c=e[5],s=e[8];return t*(a*s-c*o)+r*(c*i-n*s)+u*(n*o-a*i)},v.inverse=function(e,t){const n=e[0],i=e[1],r=e[2],a=e[3],o=e[4],u=e[5],c=e[6],s=e[7],d=e[8],l=v.determinant(e);t[0]=o*d-s*u,t[1]=s*r-i*d,t[2]=i*u-o*r,t[3]=c*u-a*d,t[4]=n*d-c*r,t[5]=a*r-n*u,t[6]=a*s-c*o,t[7]=c*i-n*s,t[8]=n*o-a*i;const f=1/l;return v.multiplyByScalar(t,f,t)};const Z=new v;v.inverseTranspose=function(e,t){return v.inverse(v.transpose(e,Z),t)},v.equals=function(e,n){return e===n||t.defined(e)&&t.defined(n)&&e[0]===n[0]&&e[1]===n[1]&&e[2]===n[2]&&e[3]===n[3]&&e[4]===n[4]&&e[5]===n[5]&&e[6]===n[6]&&e[7]===n[7]&&e[8]===n[8]},v.equalsEpsilon=function(e,n,i){return i=t.defaultValue(i,0),e===n||t.defined(e)&&t.defined(n)&&Math.abs(e[0]-n[0])<=i&&Math.abs(e[1]-n[1])<=i&&Math.abs(e[2]-n[2])<=i&&Math.abs(e[3]-n[3])<=i&&Math.abs(e[4]-n[4])<=i&&Math.abs(e[5]-n[5])<=i&&Math.abs(e[6]-n[6])<=i&&Math.abs(e[7]-n[7])<=i&&Math.abs(e[8]-n[8])<=i},v.IDENTITY=Object.freeze(new v(1,0,0,0,1,0,0,0,1)),v.ZERO=Object.freeze(new v(0,0,0,0,0,0,0,0,0)),v.COLUMN0ROW0=0,v.COLUMN0ROW1=1,v.COLUMN0ROW2=2,v.COLUMN1ROW0=3,v.COLUMN1ROW1=4,v.COLUMN1ROW2=5,v.COLUMN2ROW0=6,v.COLUMN2ROW1=7,v.COLUMN2ROW2=8,Object.defineProperties(v.prototype,{length:{get:function(){return v.packedLength}}}),v.prototype.clone=function(e){return v.clone(this,e)},v.prototype.equals=function(e){return v.equals(this,e)},v.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},v.prototype.equalsEpsilon=function(e,t){return v.equalsEpsilon(this,e,t)},v.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]})\n(${this[1]}, ${this[4]}, ${this[7]})\n(${this[2]}, ${this[5]}, ${this[8]})`},e.Cartesian3=i,e.Cartographic=y,e.Ellipsoid=q,e.Matrix3=v})); diff --git a/public/static/Cesium/Workers/OrientedBoundingBox-04b751ee.js b/public/static/Cesium/Workers/OrientedBoundingBox-04b751ee.js new file mode 100644 index 0000000..f6df5c6 --- /dev/null +++ b/public/static/Cesium/Workers/OrientedBoundingBox-04b751ee.js @@ -0,0 +1 @@ +define(["exports","./Transforms-c842a68c","./Matrix2-7a8e9daf","./Matrix3-b2351961","./defaultValue-f6d5e6da","./EllipsoidTangentPlane-05ee7166","./Math-355606c6","./Plane-5931b53e"],(function(a,t,e,n,r,i,s,o){"use strict";function C(a,t){this.center=n.Cartesian3.clone(r.defaultValue(a,n.Cartesian3.ZERO)),this.halfAxes=n.Matrix3.clone(r.defaultValue(t,n.Matrix3.ZERO))}C.packedLength=n.Cartesian3.packedLength+n.Matrix3.packedLength,C.pack=function(a,t,e){return e=r.defaultValue(e,0),n.Cartesian3.pack(a.center,t,e),n.Matrix3.pack(a.halfAxes,t,e+n.Cartesian3.packedLength),t},C.unpack=function(a,t,e){return t=r.defaultValue(t,0),r.defined(e)||(e=new C),n.Cartesian3.unpack(a,t,e.center),n.Matrix3.unpack(a,t+n.Cartesian3.packedLength,e.halfAxes),e};const c=new n.Cartesian3,u=new n.Cartesian3,l=new n.Cartesian3,d=new n.Cartesian3,h=new n.Cartesian3,x=new n.Cartesian3,m=new n.Matrix3,M={unitary:new n.Matrix3,diagonal:new n.Matrix3};C.fromPoints=function(a,t){if(r.defined(t)||(t=new C),!r.defined(a)||0===a.length)return t.halfAxes=n.Matrix3.ZERO,t.center=n.Cartesian3.ZERO,t;let e;const i=a.length,s=n.Cartesian3.clone(a[0],c);for(e=1;e<i;e++)n.Cartesian3.add(s,a[e],s);const o=1/i;n.Cartesian3.multiplyByScalar(s,o,s);let f,p=0,w=0,g=0,y=0,b=0,N=0;for(e=0;e<i;e++)f=n.Cartesian3.subtract(a[e],s,u),p+=f.x*f.x,w+=f.x*f.y,g+=f.x*f.z,y+=f.y*f.y,b+=f.y*f.z,N+=f.z*f.z;p*=o,w*=o,g*=o,y*=o,b*=o,N*=o;const T=m;T[0]=p,T[1]=w,T[2]=g,T[3]=w,T[4]=y,T[5]=b,T[6]=g,T[7]=b,T[8]=N;const O=n.Matrix3.computeEigenDecomposition(T,M),A=n.Matrix3.clone(O.unitary,t.halfAxes);let P=n.Matrix3.getColumn(A,0,d),I=n.Matrix3.getColumn(A,1,h),R=n.Matrix3.getColumn(A,2,x),E=-Number.MAX_VALUE,S=-Number.MAX_VALUE,U=-Number.MAX_VALUE,L=Number.MAX_VALUE,z=Number.MAX_VALUE,B=Number.MAX_VALUE;for(e=0;e<i;e++)f=a[e],E=Math.max(n.Cartesian3.dot(P,f),E),S=Math.max(n.Cartesian3.dot(I,f),S),U=Math.max(n.Cartesian3.dot(R,f),U),L=Math.min(n.Cartesian3.dot(P,f),L),z=Math.min(n.Cartesian3.dot(I,f),z),B=Math.min(n.Cartesian3.dot(R,f),B);P=n.Cartesian3.multiplyByScalar(P,.5*(L+E),P),I=n.Cartesian3.multiplyByScalar(I,.5*(z+S),I),R=n.Cartesian3.multiplyByScalar(R,.5*(B+U),R);const V=n.Cartesian3.add(P,I,t.center);n.Cartesian3.add(V,R,V);const _=l;return _.x=E-L,_.y=S-z,_.z=U-B,n.Cartesian3.multiplyByScalar(_,.5,_),n.Matrix3.multiplyByScale(t.halfAxes,_,t.halfAxes),t};const f=new n.Cartesian3,p=new n.Cartesian3;function w(a,t,e,i,s,o,c,u,l,d,h){r.defined(h)||(h=new C);const x=h.halfAxes;n.Matrix3.setColumn(x,0,t,x),n.Matrix3.setColumn(x,1,e,x),n.Matrix3.setColumn(x,2,i,x);let m=f;m.x=(s+o)/2,m.y=(c+u)/2,m.z=(l+d)/2;const M=p;M.x=(o-s)/2,M.y=(u-c)/2,M.z=(d-l)/2;const w=h.center;return m=n.Matrix3.multiplyByVector(x,m,m),n.Cartesian3.add(a,m,w),n.Matrix3.multiplyByScale(x,M,x),h}const g=new n.Cartographic,y=new n.Cartesian3,b=new n.Cartographic,N=new n.Cartographic,T=new n.Cartographic,O=new n.Cartographic,A=new n.Cartographic,P=new n.Cartesian3,I=new n.Cartesian3,R=new n.Cartesian3,E=new n.Cartesian3,S=new n.Cartesian3,U=new e.Cartesian2,L=new e.Cartesian2,z=new e.Cartesian2,B=new e.Cartesian2,V=new e.Cartesian2,_=new n.Cartesian3,k=new n.Cartesian3,W=new n.Cartesian3,X=new n.Cartesian3,q=new e.Cartesian2,D=new n.Cartesian3,j=new n.Cartesian3,Z=new n.Cartesian3,v=new o.Plane(n.Cartesian3.UNIT_X,0);C.fromRectangle=function(a,t,C,c,u){let l,d,h,x,m,M,f;if(t=r.defaultValue(t,0),C=r.defaultValue(C,0),c=r.defaultValue(c,n.Ellipsoid.WGS84),a.width<=s.CesiumMath.PI){const r=e.Rectangle.center(a,g),s=c.cartographicToCartesian(r,y),p=new i.EllipsoidTangentPlane(s,c);f=p.plane;const _=r.longitude,k=a.south<0&&a.north>0?0:r.latitude,W=n.Cartographic.fromRadians(_,a.north,C,b),X=n.Cartographic.fromRadians(a.west,a.north,C,N),q=n.Cartographic.fromRadians(a.west,k,C,T),D=n.Cartographic.fromRadians(a.west,a.south,C,O),j=n.Cartographic.fromRadians(_,a.south,C,A),Z=c.cartographicToCartesian(W,P);let v=c.cartographicToCartesian(X,I);const Y=c.cartographicToCartesian(q,R);let G=c.cartographicToCartesian(D,E);const F=c.cartographicToCartesian(j,S),H=p.projectPointToNearestOnPlane(Z,U),J=p.projectPointToNearestOnPlane(v,L),K=p.projectPointToNearestOnPlane(Y,z),Q=p.projectPointToNearestOnPlane(G,B),$=p.projectPointToNearestOnPlane(F,V);return l=Math.min(J.x,K.x,Q.x),d=-l,x=Math.max(J.y,H.y),h=Math.min(Q.y,$.y),X.height=D.height=t,v=c.cartographicToCartesian(X,I),G=c.cartographicToCartesian(D,E),m=Math.min(o.Plane.getPointDistance(f,v),o.Plane.getPointDistance(f,G)),M=C,w(p.origin,p.xAxis,p.yAxis,p.zAxis,l,d,h,x,m,M,u)}const p=a.south>0,Y=a.north<0,G=p?a.south:Y?a.north:0,F=e.Rectangle.center(a,g).longitude,H=n.Cartesian3.fromRadians(F,G,C,c,_);H.z=0;const J=Math.abs(H.x)<s.CesiumMath.EPSILON10&&Math.abs(H.y)<s.CesiumMath.EPSILON10?n.Cartesian3.UNIT_X:n.Cartesian3.normalize(H,k),K=n.Cartesian3.UNIT_Z,Q=n.Cartesian3.cross(J,K,W);f=o.Plane.fromPointNormal(H,J,v);const $=n.Cartesian3.fromRadians(F+s.CesiumMath.PI_OVER_TWO,G,C,c,X);d=n.Cartesian3.dot(o.Plane.projectPointOntoPlane(f,$,q),Q),l=-d,x=n.Cartesian3.fromRadians(0,a.north,Y?t:C,c,D).z,h=n.Cartesian3.fromRadians(0,a.south,p?t:C,c,j).z;const aa=n.Cartesian3.fromRadians(a.east,G,C,c,Z);return m=o.Plane.getPointDistance(f,aa),M=0,w(H,Q,K,J,l,d,h,x,m,M,u)},C.fromTransformation=function(a,t){return r.defined(t)||(t=new C),t.center=e.Matrix4.getTranslation(a,t.center),t.halfAxes=e.Matrix4.getMatrix3(a,t.halfAxes),t.halfAxes=n.Matrix3.multiplyByScalar(t.halfAxes,.5,t.halfAxes),t},C.clone=function(a,t){if(r.defined(a))return r.defined(t)?(n.Cartesian3.clone(a.center,t.center),n.Matrix3.clone(a.halfAxes,t.halfAxes),t):new C(a.center,a.halfAxes)},C.intersectPlane=function(a,e){const r=a.center,i=e.normal,s=a.halfAxes,o=i.x,C=i.y,c=i.z,u=Math.abs(o*s[n.Matrix3.COLUMN0ROW0]+C*s[n.Matrix3.COLUMN0ROW1]+c*s[n.Matrix3.COLUMN0ROW2])+Math.abs(o*s[n.Matrix3.COLUMN1ROW0]+C*s[n.Matrix3.COLUMN1ROW1]+c*s[n.Matrix3.COLUMN1ROW2])+Math.abs(o*s[n.Matrix3.COLUMN2ROW0]+C*s[n.Matrix3.COLUMN2ROW1]+c*s[n.Matrix3.COLUMN2ROW2]),l=n.Cartesian3.dot(i,r)+e.distance;return l<=-u?t.Intersect.OUTSIDE:l>=u?t.Intersect.INSIDE:t.Intersect.INTERSECTING};const Y=new n.Cartesian3,G=new n.Cartesian3,F=new n.Cartesian3,H=new n.Cartesian3,J=new n.Cartesian3,K=new n.Cartesian3;C.distanceSquaredTo=function(a,t){const e=n.Cartesian3.subtract(t,a.center,f),r=a.halfAxes;let i=n.Matrix3.getColumn(r,0,Y),o=n.Matrix3.getColumn(r,1,G),C=n.Matrix3.getColumn(r,2,F);const c=n.Cartesian3.magnitude(i),u=n.Cartesian3.magnitude(o),l=n.Cartesian3.magnitude(C);let d=!0,h=!0,x=!0;c>0?n.Cartesian3.divideByScalar(i,c,i):d=!1,u>0?n.Cartesian3.divideByScalar(o,u,o):h=!1,l>0?n.Cartesian3.divideByScalar(C,l,C):x=!1;const m=!d+!h+!x;let M,p,w;if(1===m){let a=i;M=o,p=C,h?x||(a=C,p=i):(a=o,M=i),w=n.Cartesian3.cross(M,p,J),a===i?i=w:a===o?o=w:a===C&&(C=w)}else if(2===m){M=i,h?M=o:x&&(M=C);let a=n.Cartesian3.UNIT_Y;a.equalsEpsilon(M,s.CesiumMath.EPSILON3)&&(a=n.Cartesian3.UNIT_X),p=n.Cartesian3.cross(M,a,H),n.Cartesian3.normalize(p,p),w=n.Cartesian3.cross(M,p,J),n.Cartesian3.normalize(w,w),M===i?(o=p,C=w):M===o?(C=p,i=w):M===C&&(i=p,o=w)}else 3===m&&(i=n.Cartesian3.UNIT_X,o=n.Cartesian3.UNIT_Y,C=n.Cartesian3.UNIT_Z);const g=K;g.x=n.Cartesian3.dot(e,i),g.y=n.Cartesian3.dot(e,o),g.z=n.Cartesian3.dot(e,C);let y,b=0;return g.x<-c?(y=g.x+c,b+=y*y):g.x>c&&(y=g.x-c,b+=y*y),g.y<-u?(y=g.y+u,b+=y*y):g.y>u&&(y=g.y-u,b+=y*y),g.z<-l?(y=g.z+l,b+=y*y):g.z>l&&(y=g.z-l,b+=y*y),b};const Q=new n.Cartesian3,$=new n.Cartesian3;C.computePlaneDistances=function(a,e,i,s){r.defined(s)||(s=new t.Interval);let o=Number.POSITIVE_INFINITY,C=Number.NEGATIVE_INFINITY;const c=a.center,u=a.halfAxes,l=n.Matrix3.getColumn(u,0,Y),d=n.Matrix3.getColumn(u,1,G),h=n.Matrix3.getColumn(u,2,F),x=n.Cartesian3.add(l,d,Q);n.Cartesian3.add(x,h,x),n.Cartesian3.add(x,c,x);const m=n.Cartesian3.subtract(x,e,$);let M=n.Cartesian3.dot(i,m);return o=Math.min(M,o),C=Math.max(M,C),n.Cartesian3.add(c,l,x),n.Cartesian3.add(x,d,x),n.Cartesian3.subtract(x,h,x),n.Cartesian3.subtract(x,e,m),M=n.Cartesian3.dot(i,m),o=Math.min(M,o),C=Math.max(M,C),n.Cartesian3.add(c,l,x),n.Cartesian3.subtract(x,d,x),n.Cartesian3.add(x,h,x),n.Cartesian3.subtract(x,e,m),M=n.Cartesian3.dot(i,m),o=Math.min(M,o),C=Math.max(M,C),n.Cartesian3.add(c,l,x),n.Cartesian3.subtract(x,d,x),n.Cartesian3.subtract(x,h,x),n.Cartesian3.subtract(x,e,m),M=n.Cartesian3.dot(i,m),o=Math.min(M,o),C=Math.max(M,C),n.Cartesian3.subtract(c,l,x),n.Cartesian3.add(x,d,x),n.Cartesian3.add(x,h,x),n.Cartesian3.subtract(x,e,m),M=n.Cartesian3.dot(i,m),o=Math.min(M,o),C=Math.max(M,C),n.Cartesian3.subtract(c,l,x),n.Cartesian3.add(x,d,x),n.Cartesian3.subtract(x,h,x),n.Cartesian3.subtract(x,e,m),M=n.Cartesian3.dot(i,m),o=Math.min(M,o),C=Math.max(M,C),n.Cartesian3.subtract(c,l,x),n.Cartesian3.subtract(x,d,x),n.Cartesian3.add(x,h,x),n.Cartesian3.subtract(x,e,m),M=n.Cartesian3.dot(i,m),o=Math.min(M,o),C=Math.max(M,C),n.Cartesian3.subtract(c,l,x),n.Cartesian3.subtract(x,d,x),n.Cartesian3.subtract(x,h,x),n.Cartesian3.subtract(x,e,m),M=n.Cartesian3.dot(i,m),o=Math.min(M,o),C=Math.max(M,C),s.start=o,s.stop=C,s};const aa=new n.Cartesian3,ta=new n.Cartesian3,ea=new n.Cartesian3;C.computeCorners=function(a,t){r.defined(t)||(t=[new n.Cartesian3,new n.Cartesian3,new n.Cartesian3,new n.Cartesian3,new n.Cartesian3,new n.Cartesian3,new n.Cartesian3,new n.Cartesian3]);const e=a.center,i=a.halfAxes,s=n.Matrix3.getColumn(i,0,aa),o=n.Matrix3.getColumn(i,1,ta),C=n.Matrix3.getColumn(i,2,ea);return n.Cartesian3.clone(e,t[0]),n.Cartesian3.subtract(t[0],s,t[0]),n.Cartesian3.subtract(t[0],o,t[0]),n.Cartesian3.subtract(t[0],C,t[0]),n.Cartesian3.clone(e,t[1]),n.Cartesian3.subtract(t[1],s,t[1]),n.Cartesian3.subtract(t[1],o,t[1]),n.Cartesian3.add(t[1],C,t[1]),n.Cartesian3.clone(e,t[2]),n.Cartesian3.subtract(t[2],s,t[2]),n.Cartesian3.add(t[2],o,t[2]),n.Cartesian3.subtract(t[2],C,t[2]),n.Cartesian3.clone(e,t[3]),n.Cartesian3.subtract(t[3],s,t[3]),n.Cartesian3.add(t[3],o,t[3]),n.Cartesian3.add(t[3],C,t[3]),n.Cartesian3.clone(e,t[4]),n.Cartesian3.add(t[4],s,t[4]),n.Cartesian3.subtract(t[4],o,t[4]),n.Cartesian3.subtract(t[4],C,t[4]),n.Cartesian3.clone(e,t[5]),n.Cartesian3.add(t[5],s,t[5]),n.Cartesian3.subtract(t[5],o,t[5]),n.Cartesian3.add(t[5],C,t[5]),n.Cartesian3.clone(e,t[6]),n.Cartesian3.add(t[6],s,t[6]),n.Cartesian3.add(t[6],o,t[6]),n.Cartesian3.subtract(t[6],C,t[6]),n.Cartesian3.clone(e,t[7]),n.Cartesian3.add(t[7],s,t[7]),n.Cartesian3.add(t[7],o,t[7]),n.Cartesian3.add(t[7],C,t[7]),t};const na=new n.Matrix3;C.computeTransformation=function(a,t){r.defined(t)||(t=new e.Matrix4);const i=a.center,s=n.Matrix3.multiplyByUniformScale(a.halfAxes,2,na);return e.Matrix4.fromRotationTranslation(s,i,t)};const ra=new t.BoundingSphere;C.isOccluded=function(a,e){const n=t.BoundingSphere.fromOrientedBoundingBox(a,ra);return!e.isBoundingSphereVisible(n)},C.prototype.intersectPlane=function(a){return C.intersectPlane(this,a)},C.prototype.distanceSquaredTo=function(a){return C.distanceSquaredTo(this,a)},C.prototype.computePlaneDistances=function(a,t,e){return C.computePlaneDistances(this,a,t,e)},C.prototype.computeCorners=function(a){return C.computeCorners(this,a)},C.prototype.computeTransformation=function(a){return C.computeTransformation(this,a)},C.prototype.isOccluded=function(a){return C.isOccluded(this,a)},C.equals=function(a,t){return a===t||r.defined(a)&&r.defined(t)&&n.Cartesian3.equals(a.center,t.center)&&n.Matrix3.equals(a.halfAxes,t.halfAxes)},C.prototype.clone=function(a){return C.clone(this,a)},C.prototype.equals=function(a){return C.equals(this,a)},a.OrientedBoundingBox=C})); diff --git a/public/static/Cesium/Workers/Plane-5931b53e.js b/public/static/Cesium/Workers/Plane-5931b53e.js new file mode 100644 index 0000000..2b0e061 --- /dev/null +++ b/public/static/Cesium/Workers/Plane-5931b53e.js @@ -0,0 +1 @@ +define(["exports","./Matrix3-b2351961","./Matrix2-7a8e9daf","./defaultValue-f6d5e6da"],(function(n,e,a,t){"use strict";function r(n,a){this.normal=e.Cartesian3.clone(n),this.distance=a}r.fromPointNormal=function(n,a,i){const s=-e.Cartesian3.dot(a,n);return t.defined(i)?(e.Cartesian3.clone(a,i.normal),i.distance=s,i):new r(a,s)};const i=new e.Cartesian3;r.fromCartesian4=function(n,a){const s=e.Cartesian3.fromCartesian4(n,i),o=n.w;return t.defined(a)?(e.Cartesian3.clone(s,a.normal),a.distance=o,a):new r(s,o)},r.getPointDistance=function(n,a){return e.Cartesian3.dot(n.normal,a)+n.distance};const s=new e.Cartesian3;r.projectPointOntoPlane=function(n,a,i){t.defined(i)||(i=new e.Cartesian3);const o=r.getPointDistance(n,a),c=e.Cartesian3.multiplyByScalar(n.normal,o,s);return e.Cartesian3.subtract(a,c,i)};const o=new a.Matrix4,c=new a.Cartesian4,l=new e.Cartesian3;r.transform=function(n,t,i){const s=n.normal,C=n.distance,d=a.Matrix4.inverseTranspose(t,o);let f=a.Cartesian4.fromElements(s.x,s.y,s.z,C,c);f=a.Matrix4.multiplyByVector(d,f,f);const u=e.Cartesian3.fromCartesian4(f,l);return f=a.Cartesian4.divideByScalar(f,e.Cartesian3.magnitude(u),f),r.fromCartesian4(f,i)},r.clone=function(n,a){return t.defined(a)?(e.Cartesian3.clone(n.normal,a.normal),a.distance=n.distance,a):new r(n.normal,n.distance)},r.equals=function(n,a){return n.distance===a.distance&&e.Cartesian3.equals(n.normal,a.normal)},r.ORIGIN_XY_PLANE=Object.freeze(new r(e.Cartesian3.UNIT_Z,0)),r.ORIGIN_YZ_PLANE=Object.freeze(new r(e.Cartesian3.UNIT_X,0)),r.ORIGIN_ZX_PLANE=Object.freeze(new r(e.Cartesian3.UNIT_Y,0)),n.Plane=r})); diff --git a/public/static/Cesium/Workers/PolygonGeometryLibrary-f7ee0859.js b/public/static/Cesium/Workers/PolygonGeometryLibrary-f7ee0859.js new file mode 100644 index 0000000..ae7d99d --- /dev/null +++ b/public/static/Cesium/Workers/PolygonGeometryLibrary-f7ee0859.js @@ -0,0 +1 @@ +define(["exports","./ArcType-26a3f38d","./arrayRemoveDuplicates-0d8dde26","./Matrix2-7a8e9daf","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./EllipsoidRhumbLine-1289f7e8","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryPipeline-87cdea8e","./IndexDatatype-a9b1bc18","./Math-355606c6","./PolygonPipeline-eec72ff0","./Transforms-c842a68c"],(function(e,t,n,i,o,r,a,s,c,l,u,h,p,d,f){"use strict";function y(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(y.prototype,{length:{get:function(){return this._length}}}),y.prototype.enqueue=function(e){this._array.push(e),this._length++},y.prototype.dequeue=function(){if(0===this._length)return;const e=this._array;let t=this._offset;const n=e[t];return e[t]=void 0,t++,t>10&&2*t>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,n},y.prototype.peek=function(){if(0!==this._length)return this._array[this._offset]},y.prototype.contains=function(e){return-1!==this._array.indexOf(e)},y.prototype.clear=function(){this._array.length=this._offset=this._length=0},y.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};const g={computeHierarchyPackedLength:function(e,t){let n=0;const i=[e];for(;i.length>0;){const e=i.pop();if(!a.defined(e))continue;n+=2;const o=e.positions,r=e.holes;if(a.defined(o)&&o.length>0&&(n+=o.length*t.packedLength),a.defined(r)){const e=r.length;for(let t=0;t<e;++t)i.push(r[t])}}return n},packPolygonHierarchy:function(e,t,n,i){const o=[e];for(;o.length>0;){const e=o.pop();if(!a.defined(e))continue;const r=e.positions,s=e.holes;if(t[n++]=a.defined(r)?r.length:0,t[n++]=a.defined(s)?s.length:0,a.defined(r)){const e=r.length;for(let o=0;o<e;++o,n+=i.packedLength)i.pack(r[o],t,n)}if(a.defined(s)){const e=s.length;for(let t=0;t<e;++t)o.push(s[t])}}return n},unpackPolygonHierarchy:function(e,t,n){const i=e[t++],o=e[t++],r=new Array(i),a=o>0?new Array(o):void 0;for(let o=0;o<i;++o,t+=n.packedLength)r[o]=n.unpack(e,t);for(let i=0;i<o;++i)a[i]=g.unpackPolygonHierarchy(e,t,n),t=a[i].startingIndex,delete a[i].startingIndex;return{positions:r,holes:a,startingIndex:t}}},m=new i.Cartesian2;function C(e,t,n,o){return i.Cartesian2.subtract(t,e,m),i.Cartesian2.multiplyByScalar(m,n/o,m),i.Cartesian2.add(e,m,m),[m.x,m.y]}const b=new o.Cartesian3;function x(e,t,n,i){return o.Cartesian3.subtract(t,e,b),o.Cartesian3.multiplyByScalar(b,n/i,b),o.Cartesian3.add(e,b,b),[b.x,b.y,b.z]}g.subdivideLineCount=function(e,t,n){const i=o.Cartesian3.distance(e,t)/n,r=Math.max(0,Math.ceil(p.CesiumMath.log2(i)));return Math.pow(2,r)};const T=new o.Cartographic,v=new o.Cartographic,w=new o.Cartographic,A=new o.Cartesian3,L=new s.EllipsoidRhumbLine;g.subdivideRhumbLineCount=function(e,t,n,i){const o=e.cartesianToCartographic(t,T),r=e.cartesianToCartographic(n,v),a=new s.EllipsoidRhumbLine(o,r,e).surfaceDistance/i,c=Math.max(0,Math.ceil(p.CesiumMath.log2(a)));return Math.pow(2,c)},g.subdivideTexcoordLine=function(e,t,n,o,r,a){const s=g.subdivideLineCount(n,o,r),c=i.Cartesian2.distance(e,t),l=c/s,u=a;u.length=2*s;let h=0;for(let n=0;n<s;n++){const i=C(e,t,n*l,c);u[h++]=i[0],u[h++]=i[1]}return u},g.subdivideLine=function(e,t,n,i){const r=g.subdivideLineCount(e,t,n),s=o.Cartesian3.distance(e,t),c=s/r;a.defined(i)||(i=[]);const l=i;l.length=3*r;let u=0;for(let n=0;n<r;n++){const i=x(e,t,n*c,s);l[u++]=i[0],l[u++]=i[1],l[u++]=i[2]}return l},g.subdivideTexcoordRhumbLine=function(e,t,n,o,r,a,s){const c=n.cartesianToCartographic(o,T),l=n.cartesianToCartographic(r,v);L.setEndPoints(c,l);const u=L.surfaceDistance/a,h=Math.max(0,Math.ceil(p.CesiumMath.log2(u))),d=Math.pow(2,h),f=i.Cartesian2.distance(e,t),y=f/d,g=s;g.length=2*d;let m=0;for(let n=0;n<d;n++){const i=C(e,t,n*y,f);g[m++]=i[0],g[m++]=i[1]}return g},g.subdivideRhumbLine=function(e,t,n,i,o){const r=e.cartesianToCartographic(t,T),c=e.cartesianToCartographic(n,v),l=new s.EllipsoidRhumbLine(r,c,e),u=l.surfaceDistance/i,h=Math.max(0,Math.ceil(p.CesiumMath.log2(u))),d=Math.pow(2,h),f=l.surfaceDistance/d;a.defined(o)||(o=[]);const y=o;y.length=3*d;let g=0;for(let t=0;t<d;t++){const n=l.interpolateUsingSurfaceDistance(t*f,w),i=e.cartographicToCartesian(n,A);y[g++]=i.x,y[g++]=i.y,y[g++]=i.z}return y};const E=new o.Cartesian3,I=new o.Cartesian3,M=new o.Cartesian3,P=new o.Cartesian3;g.scaleToGeodeticHeightExtruded=function(e,t,n,i,r){i=a.defaultValue(i,o.Ellipsoid.WGS84);const s=E;let c=I;const l=M;let u=P;if(a.defined(e)&&a.defined(e.attributes)&&a.defined(e.attributes.position)){const a=e.attributes.position.values,h=a.length/2;for(let e=0;e<h;e+=3)o.Cartesian3.fromArray(a,e,l),i.geodeticSurfaceNormal(l,s),u=i.scaleToGeodeticSurface(l,u),c=o.Cartesian3.multiplyByScalar(s,n,c),c=o.Cartesian3.add(u,c,c),a[e+h]=c.x,a[e+1+h]=c.y,a[e+2+h]=c.z,r&&(u=o.Cartesian3.clone(l,u)),c=o.Cartesian3.multiplyByScalar(s,t,c),c=o.Cartesian3.add(u,c,c),a[e]=c.x,a[e+1]=c.y,a[e+2]=c.z}return e},g.polygonOutlinesFromHierarchy=function(e,t,i){const r=[],s=new y;let c,l,u;for(s.enqueue(e);0!==s.length;){const e=s.dequeue();let h=e.positions;if(t)for(u=h.length,c=0;c<u;c++)i.scaleToGeodeticSurface(h[c],h[c]);if(h=n.arrayRemoveDuplicates(h,o.Cartesian3.equalsEpsilon,!0),h.length<3)continue;const p=e.holes?e.holes.length:0;for(c=0;c<p;c++){const h=e.holes[c];let p=h.positions;if(t)for(u=p.length,l=0;l<u;++l)i.scaleToGeodeticSurface(p[l],p[l]);if(p=n.arrayRemoveDuplicates(p,o.Cartesian3.equalsEpsilon,!0),p.length<3)continue;r.push(p);let d=0;for(a.defined(h.holes)&&(d=h.holes.length),l=0;l<d;l++)s.enqueue(h.holes[l])}r.push(h)}return r},g.polygonsFromHierarchy=function(e,t,i,r,s){const c=[],l=[],u=new y;for(u.enqueue(e);0!==u.length;){const e=u.dequeue();let h=e.positions;const p=e.holes;let f,y;if(r)for(y=h.length,f=0;f<y;f++)s.scaleToGeodeticSurface(h[f],h[f]);if(t||(h=n.arrayRemoveDuplicates(h,o.Cartesian3.equalsEpsilon,!0)),h.length<3)continue;let g=i(h);if(!a.defined(g))continue;const m=[];let C=d.PolygonPipeline.computeWindingOrder2D(g);C===d.WindingOrder.CLOCKWISE&&(g.reverse(),h=h.slice().reverse());let b=h.slice();const x=a.defined(p)?p.length:0,T=[];let v;for(f=0;f<x;f++){const e=p[f];let c=e.positions;if(r)for(y=c.length,v=0;v<y;++v)s.scaleToGeodeticSurface(c[v],c[v]);if(t||(c=n.arrayRemoveDuplicates(c,o.Cartesian3.equalsEpsilon,!0)),c.length<3)continue;const l=i(c);if(!a.defined(l))continue;C=d.PolygonPipeline.computeWindingOrder2D(l),C===d.WindingOrder.CLOCKWISE&&(l.reverse(),c=c.slice().reverse()),T.push(c),m.push(b.length),b=b.concat(c),g=g.concat(l);let h=0;for(a.defined(e.holes)&&(h=e.holes.length),v=0;v<h;v++)u.enqueue(e.holes[v])}c.push({outerRing:h,holes:T}),l.push({positions:b,positions2D:g,holes:m})}return{hierarchy:c,polygons:l}};const D=new i.Cartesian2,_=new o.Cartesian3,G=new f.Quaternion,S=new o.Matrix3;g.computeBoundingRectangle=function(e,t,n,i,r){const s=f.Quaternion.fromAxisAngle(e,i,G),c=o.Matrix3.fromQuaternion(s,S);let l=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY,h=Number.POSITIVE_INFINITY,p=Number.NEGATIVE_INFINITY;const d=n.length;for(let e=0;e<d;++e){const i=o.Cartesian3.clone(n[e],_);o.Matrix3.multiplyByVector(c,i,i);const r=t(i,D);a.defined(r)&&(l=Math.min(l,r.x),u=Math.max(u,r.x),h=Math.min(h,r.y),p=Math.max(p,r.y))}return r.x=l,r.y=h,r.width=u-l,r.height=p-h,r},g.createGeometryFromPositions=function(e,n,o,s,l,h,p){let f=d.PolygonPipeline.triangulate(n.positions2D,n.holes);f.length<3&&(f=[0,1,2]);const y=n.positions,g=a.defined(o),m=g?o.positions:void 0;if(l){const e=y.length,t=new Array(3*e);let n=0;for(let i=0;i<e;i++){const e=y[i];t[n++]=e.x,t[n++]=e.y,t[n++]=e.z}const o={attributes:{position:new c.GeometryAttribute({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:t})},indices:f,primitiveType:c.PrimitiveType.TRIANGLES};g&&(o.attributes.st=new c.GeometryAttribute({componentDatatype:r.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:i.Cartesian2.packArray(m)}));const a=new c.Geometry(o);return h.normal?u.GeometryPipeline.computeNormal(a):a}return p===t.ArcType.GEODESIC?d.PolygonPipeline.computeSubdivision(e,y,f,m,s):p===t.ArcType.RHUMB?d.PolygonPipeline.computeRhumbLineSubdivision(e,y,f,m,s):void 0};const R=[],N=[],O=new o.Cartesian3,q=new o.Cartesian3;g.computeWallGeometry=function(e,n,i,s,u,d){let f,y,m,C,b,x,T,v,w,A=e.length,L=0,E=0;const I=a.defined(n),M=I?n.positions:void 0;if(u)for(y=3*A*2,f=new Array(2*y),I&&(w=2*A*2,v=new Array(2*w)),m=0;m<A;m++)C=e[m],b=e[(m+1)%A],f[L]=f[L+y]=C.x,++L,f[L]=f[L+y]=C.y,++L,f[L]=f[L+y]=C.z,++L,f[L]=f[L+y]=b.x,++L,f[L]=f[L+y]=b.y,++L,f[L]=f[L+y]=b.z,++L,I&&(x=M[m],T=M[(m+1)%A],v[E]=v[E+w]=x.x,++E,v[E]=v[E+w]=x.y,++E,v[E]=v[E+w]=T.x,++E,v[E]=v[E+w]=T.y,++E);else{const n=p.CesiumMath.chordLength(s,i.maximumRadius);let o=0;if(d===t.ArcType.GEODESIC)for(m=0;m<A;m++)o+=g.subdivideLineCount(e[m],e[(m+1)%A],n);else if(d===t.ArcType.RHUMB)for(m=0;m<A;m++)o+=g.subdivideRhumbLineCount(i,e[m],e[(m+1)%A],n);for(y=3*(o+A),f=new Array(2*y),I&&(w=2*(o+A),v=new Array(2*w)),m=0;m<A;m++){let o,r;C=e[m],b=e[(m+1)%A],I&&(x=M[m],T=M[(m+1)%A]),d===t.ArcType.GEODESIC?(o=g.subdivideLine(C,b,n,N),I&&(r=g.subdivideTexcoordLine(x,T,C,b,n,R))):d===t.ArcType.RHUMB&&(o=g.subdivideRhumbLine(i,C,b,n,N),I&&(r=g.subdivideTexcoordRhumbLine(x,T,i,C,b,n,R)));const a=o.length;for(let e=0;e<a;++e,++L)f[L]=o[e],f[L+y]=o[e];if(f[L]=b.x,f[L+y]=b.x,++L,f[L]=b.y,f[L+y]=b.y,++L,f[L]=b.z,f[L+y]=b.z,++L,I){const e=r.length;for(let t=0;t<e;++t,++E)v[E]=r[t],v[E+w]=r[t];v[E]=T.x,v[E+w]=T.x,++E,v[E]=T.y,v[E+w]=T.y,++E}}}A=f.length;const P=h.IndexDatatype.createTypedArray(A/3,A-6*e.length);let D=0;for(A/=6,m=0;m<A;m++){const e=m,t=e+1,n=e+A,i=n+1;C=o.Cartesian3.fromArray(f,3*e,O),b=o.Cartesian3.fromArray(f,3*t,q),o.Cartesian3.equalsEpsilon(C,b,p.CesiumMath.EPSILON10,p.CesiumMath.EPSILON10)||(P[D++]=e,P[D++]=n,P[D++]=t,P[D++]=t,P[D++]=n,P[D++]=i)}const _={attributes:new l.GeometryAttributes({position:new c.GeometryAttribute({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:f})}),indices:P,primitiveType:c.PrimitiveType.TRIANGLES};I&&(_.attributes.st=new c.GeometryAttribute({componentDatatype:r.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:v}));return new c.Geometry(_)};var k=g;e.PolygonGeometryLibrary=k})); diff --git a/public/static/Cesium/Workers/PolygonPipeline-eec72ff0.js b/public/static/Cesium/Workers/PolygonPipeline-eec72ff0.js new file mode 100644 index 0000000..9647aa8 --- /dev/null +++ b/public/static/Cesium/Workers/PolygonPipeline-eec72ff0.js @@ -0,0 +1 @@ +define(["exports","./Math-355606c6","./Matrix2-7a8e9daf","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./EllipsoidRhumbLine-1289f7e8","./GeometryAttribute-0e790d82","./WebGLConstants-7f557f93"],(function(e,t,n,r,a,i,o,s,u){"use strict";var x={exports:{}};function p(e,t,n){n=n||2;var r,a,i,o,s,u,x,p=t&&t.length,h=p?t[0]*n:e.length,f=l(e,0,h,n,!0),c=[];if(!f||f.next===f.prev)return c;if(p&&(f=function(e,t,n,r){var a,i,o,s=[];for(a=0,i=t.length;a<i;a++)(o=l(e,t[a]*r,a<i-1?t[a+1]*r:e.length,r,!1))===o.next&&(o.steiner=!0),s.push(A(o));for(s.sort(m),a=0;a<s.length;a++)n=C(s[a],n);return n}(e,t,f,n)),e.length>80*n){r=i=e[0],a=o=e[1];for(var v=n;v<h;v+=n)(s=e[v])<r&&(r=s),(u=e[v+1])<a&&(a=u),s>i&&(i=s),u>o&&(o=u);x=0!==(x=Math.max(i-r,o-a))?32767/x:0}return y(f,c,n,r,a,x,0),c}function l(e,t,n,r,a){var i,o;if(a===B(e,t,n,r)>0)for(i=t;i<n;i+=r)o=G(i,e[i],e[i+1],o);else for(i=n-r;i>=t;i-=r)o=G(i,e[i],e[i+1],o);return o&&E(o,o.next)&&(O(o),o=o.next),o}function h(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!E(r,r.next)&&0!==S(r.prev,r,r.next))r=r.next;else{if(O(r),(r=t=r.prev)===r.next)break;n=!0}}while(n||r!==t);return t}function y(e,t,n,r,a,i,o){if(e){!o&&i&&function(e,t,n,r){var a=e;do{0===a.z&&(a.z=w(a.x,a.y,t,n,r)),a.prevZ=a.prev,a.nextZ=a.next,a=a.next}while(a!==e);a.prevZ.nextZ=null,a.prevZ=null,function(e){var t,n,r,a,i,o,s,u,x=1;do{for(n=e,e=null,i=null,o=0;n;){for(o++,r=n,s=0,t=0;t<x&&(s++,r=r.nextZ);t++);for(u=x;s>0||u>0&&r;)0!==s&&(0===u||!r||n.z<=r.z)?(a=n,n=n.nextZ,s--):(a=r,r=r.nextZ,u--),i?i.nextZ=a:e=a,a.prevZ=i,i=a;n=r}i.nextZ=null,x*=2}while(o>1)}(a)}(e,r,a,i);for(var s,u,x=e;e.prev!==e.next;)if(s=e.prev,u=e.next,i?c(e,r,a,i):f(e))t.push(s.i/n|0),t.push(e.i/n|0),t.push(u.i/n|0),O(e),e=u.next,x=u.next;else if((e=u)===x){o?1===o?y(e=v(h(e),t,n),t,n,r,a,i,2):2===o&&d(e,t,n,r,a,i):y(h(e),t,n,r,a,i,1);break}}}function f(e){var t=e.prev,n=e,r=e.next;if(S(t,n,r)>=0)return!1;for(var a=t.x,i=n.x,o=r.x,s=t.y,u=n.y,x=r.y,p=a<i?a<o?a:o:i<o?i:o,l=s<u?s<x?s:x:u<x?u:x,h=a>i?a>o?a:o:i>o?i:o,y=s>u?s>x?s:x:u>x?u:x,f=r.next;f!==t;){if(f.x>=p&&f.x<=h&&f.y>=l&&f.y<=y&&b(a,s,i,u,o,x,f.x,f.y)&&S(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function c(e,t,n,r){var a=e.prev,i=e,o=e.next;if(S(a,i,o)>=0)return!1;for(var s=a.x,u=i.x,x=o.x,p=a.y,l=i.y,h=o.y,y=s<u?s<x?s:x:u<x?u:x,f=p<l?p<h?p:h:l<h?l:h,c=s>u?s>x?s:x:u>x?u:x,v=p>l?p>h?p:h:l>h?l:h,d=w(y,f,t,n,r),m=w(c,v,t,n,r),C=e.prevZ,g=e.nextZ;C&&C.z>=d&&g&&g.z<=m;){if(C.x>=y&&C.x<=c&&C.y>=f&&C.y<=v&&C!==a&&C!==o&&b(s,p,u,l,x,h,C.x,C.y)&&S(C.prev,C,C.next)>=0)return!1;if(C=C.prevZ,g.x>=y&&g.x<=c&&g.y>=f&&g.y<=v&&g!==a&&g!==o&&b(s,p,u,l,x,h,g.x,g.y)&&S(g.prev,g,g.next)>=0)return!1;g=g.nextZ}for(;C&&C.z>=d;){if(C.x>=y&&C.x<=c&&C.y>=f&&C.y<=v&&C!==a&&C!==o&&b(s,p,u,l,x,h,C.x,C.y)&&S(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;g&&g.z<=m;){if(g.x>=y&&g.x<=c&&g.y>=f&&g.y<=v&&g!==a&&g!==o&&b(s,p,u,l,x,h,g.x,g.y)&&S(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function v(e,t,n){var r=e;do{var a=r.prev,i=r.next.next;!E(a,i)&&Z(a,r,r.next,i)&&L(a,i)&&L(i,a)&&(t.push(a.i/n|0),t.push(r.i/n|0),t.push(i.i/n|0),O(r),O(r.next),r=e=i),r=r.next}while(r!==e);return h(r)}function d(e,t,n,r,a,i){var o=e;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&M(o,s)){var u=R(o,s);return o=h(o,o.next),u=h(u,u.next),y(o,t,n,r,a,i,0),void y(u,t,n,r,a,i,0)}s=s.next}o=o.next}while(o!==e)}function m(e,t){return e.x-t.x}function C(e,t){var n=function(e,t){var n,r=t,a=e.x,i=e.y,o=-1/0;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){var s=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(s<=a&&s>o&&(o=s,n=r.x<r.next.x?r:r.next,s===a))return n}r=r.next}while(r!==t);if(!n)return null;var u,x=n,p=n.x,l=n.y,h=1/0;r=n;do{a>=r.x&&r.x>=p&&a!==r.x&&b(i<l?a:o,i,p,l,i<l?o:a,i,r.x,r.y)&&(u=Math.abs(i-r.y)/(a-r.x),L(r,e)&&(u<h||u===h&&(r.x>n.x||r.x===n.x&&g(n,r)))&&(n=r,h=u)),r=r.next}while(r!==x);return n}(e,t);if(!n)return t;var r=R(n,e);return h(r,r.next),h(n,n.next)}function g(e,t){return S(e.prev,e,t.prev)<0&&S(t.next,e,e.next)<0}function w(e,t,n,r,a){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*a|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*a|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function A(e){var t=e,n=e;do{(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next}while(t!==e);return n}function b(e,t,n,r,a,i,o,s){return(a-o)*(t-s)>=(e-o)*(i-s)&&(e-o)*(r-s)>=(n-o)*(t-s)&&(n-o)*(i-s)>=(a-o)*(r-s)}function M(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Z(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(L(e,t)&&L(t,e)&&function(e,t){var n=e,r=!1,a=(e.x+t.x)/2,i=(e.y+t.y)/2;do{n.y>i!=n.next.y>i&&n.next.y!==n.y&&a<(n.next.x-n.x)*(i-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}(e,t)&&(S(e.prev,e,t.prev)||S(e,t.prev,t))||E(e,t)&&S(e.prev,e,e.next)>0&&S(t.prev,t,t.next)>0)}function S(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function E(e,t){return e.x===t.x&&e.y===t.y}function Z(e,t,n,r){var a=D(S(e,t,n)),i=D(S(e,t,r)),o=D(S(n,r,e)),s=D(S(n,r,t));return a!==i&&o!==s||(!(0!==a||!z(e,n,t))||(!(0!==i||!z(e,r,t))||(!(0!==o||!z(n,e,r))||!(0!==s||!z(n,t,r)))))}function z(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function D(e){return e>0?1:e<0?-1:0}function L(e,t){return S(e.prev,e,e.next)<0?S(e,t,e.next)>=0&&S(e,e.prev,t)>=0:S(e,t,e.prev)<0||S(e,e.next,t)<0}function R(e,t){var n=new T(e.i,e.x,e.y),r=new T(t.i,t.x,t.y),a=e.next,i=t.prev;return e.next=t,t.prev=e,n.next=a,a.prev=n,r.next=n,n.prev=r,i.next=r,r.prev=i,r}function G(e,t,n,r){var a=new T(e,t,n);return r?(a.next=r.next,a.prev=r,r.next.prev=a,r.next=a):(a.prev=a,a.next=a),a}function O(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function T(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function B(e,t,n,r){for(var a=0,i=t,o=n-r;i<n;i+=r)a+=(e[o]-e[i])*(e[i+1]+e[o+1]),o=i;return a}x.exports=p,x.exports.default=p,p.deviation=function(e,t,n,r){var a=t&&t.length,i=a?t[0]*n:e.length,o=Math.abs(B(e,0,i,n));if(a)for(var s=0,u=t.length;s<u;s++){var x=t[s]*n,p=s<u-1?t[s+1]*n:e.length;o-=Math.abs(B(e,x,p,n))}var l=0;for(s=0;s<r.length;s+=3){var h=r[s]*n,y=r[s+1]*n,f=r[s+2]*n;l+=Math.abs((e[h]-e[f])*(e[y+1]-e[h+1])-(e[h]-e[y])*(e[f+1]-e[h+1]))}return 0===o&&0===l?0:Math.abs((l-o)/o)},p.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,a=0;a<e.length;a++){for(var i=0;i<e[a].length;i++)for(var o=0;o<t;o++)n.vertices.push(e[a][i][o]);a>0&&(r+=e[a-1].length,n.holes.push(r))}return n};var W=x.exports,P=t.getDefaultExportFromCjs(W);const $={CLOCKWISE:u.WebGLConstants.CW,COUNTER_CLOCKWISE:u.WebGLConstants.CCW,validate:function(e){return e===$.CLOCKWISE||e===$.COUNTER_CLOCKWISE}};var I=Object.freeze($);const N=new r.Cartesian3,U=new r.Cartesian3,_={computeArea2D:function(e){const t=e.length;let n=0;for(let r=t-1,a=0;a<t;r=a++){const t=e[r],i=e[a];n+=t.x*i.y-i.x*t.y}return.5*n},computeWindingOrder2D:function(e){return _.computeArea2D(e)>0?I.COUNTER_CLOCKWISE:I.CLOCKWISE},triangulate:function(e,t){const r=n.Cartesian2.packArray(e);return P(r,t,2)}},F=new r.Cartesian3,K=new r.Cartesian3,V=new r.Cartesian3,k=new r.Cartesian3,q=new r.Cartesian3,j=new r.Cartesian3,H=new r.Cartesian3,J=new n.Cartesian2,Q=new n.Cartesian2,X=new n.Cartesian2,Y=new n.Cartesian2;_.computeSubdivision=function(e,o,u,x,p){p=i.defaultValue(p,t.CesiumMath.RADIANS_PER_DEGREE);const l=i.defined(x),h=u.slice(0);let y;const f=o.length,c=new Array(3*f),v=new Array(2*f);let d=0,m=0;for(y=0;y<f;y++){const e=o[y];if(c[d++]=e.x,c[d++]=e.y,c[d++]=e.z,l){const e=x[y];v[m++]=e.x,v[m++]=e.y}}const C=[],g={},w=e.maximumRadius,A=t.CesiumMath.chordLength(p,w),b=A*A;for(;h.length>0;){const e=h.pop(),t=h.pop(),a=h.pop(),o=r.Cartesian3.fromArray(c,3*a,F),s=r.Cartesian3.fromArray(c,3*t,K),u=r.Cartesian3.fromArray(c,3*e,V);let x,p,f;l&&(x=n.Cartesian2.fromArray(v,2*a,J),p=n.Cartesian2.fromArray(v,2*t,Q),f=n.Cartesian2.fromArray(v,2*e,X));const d=r.Cartesian3.multiplyByScalar(r.Cartesian3.normalize(o,k),w,k),m=r.Cartesian3.multiplyByScalar(r.Cartesian3.normalize(s,q),w,q),A=r.Cartesian3.multiplyByScalar(r.Cartesian3.normalize(u,j),w,j),M=r.Cartesian3.magnitudeSquared(r.Cartesian3.subtract(d,m,H)),S=r.Cartesian3.magnitudeSquared(r.Cartesian3.subtract(m,A,H)),E=r.Cartesian3.magnitudeSquared(r.Cartesian3.subtract(A,d,H)),Z=Math.max(M,S,E);let z,D,L;Z>b?M===Z?(z=`${Math.min(a,t)} ${Math.max(a,t)}`,y=g[z],i.defined(y)||(D=r.Cartesian3.add(o,s,H),r.Cartesian3.multiplyByScalar(D,.5,D),c.push(D.x,D.y,D.z),y=c.length/3-1,g[z]=y,l&&(L=n.Cartesian2.add(x,p,Y),n.Cartesian2.multiplyByScalar(L,.5,L),v.push(L.x,L.y))),h.push(a,y,e),h.push(y,t,e)):S===Z?(z=`${Math.min(t,e)} ${Math.max(t,e)}`,y=g[z],i.defined(y)||(D=r.Cartesian3.add(s,u,H),r.Cartesian3.multiplyByScalar(D,.5,D),c.push(D.x,D.y,D.z),y=c.length/3-1,g[z]=y,l&&(L=n.Cartesian2.add(p,f,Y),n.Cartesian2.multiplyByScalar(L,.5,L),v.push(L.x,L.y))),h.push(t,y,a),h.push(y,e,a)):E===Z&&(z=`${Math.min(e,a)} ${Math.max(e,a)}`,y=g[z],i.defined(y)||(D=r.Cartesian3.add(u,o,H),r.Cartesian3.multiplyByScalar(D,.5,D),c.push(D.x,D.y,D.z),y=c.length/3-1,g[z]=y,l&&(L=n.Cartesian2.add(f,x,Y),n.Cartesian2.multiplyByScalar(L,.5,L),v.push(L.x,L.y))),h.push(e,y,t),h.push(y,a,t)):(C.push(a),C.push(t),C.push(e))}const M={attributes:{position:new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:c})},indices:C,primitiveType:s.PrimitiveType.TRIANGLES};return l&&(M.attributes.st=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:v})),new s.Geometry(M)};const ee=new r.Cartographic,te=new r.Cartographic,ne=new r.Cartographic,re=new r.Cartographic;_.computeRhumbLineSubdivision=function(e,u,x,p,l){l=i.defaultValue(l,t.CesiumMath.RADIANS_PER_DEGREE);const h=i.defined(p),y=x.slice(0);let f;const c=u.length,v=new Array(3*c),d=new Array(2*c);let m=0,C=0;for(f=0;f<c;f++){const e=u[f];if(v[m++]=e.x,v[m++]=e.y,v[m++]=e.z,h){const e=p[f];d[C++]=e.x,d[C++]=e.y}}const g=[],w={},A=e.maximumRadius,b=t.CesiumMath.chordLength(l,A),M=new o.EllipsoidRhumbLine(void 0,void 0,e),S=new o.EllipsoidRhumbLine(void 0,void 0,e),E=new o.EllipsoidRhumbLine(void 0,void 0,e);for(;y.length>0;){const t=y.pop(),a=y.pop(),o=y.pop(),s=r.Cartesian3.fromArray(v,3*o,F),u=r.Cartesian3.fromArray(v,3*a,K),x=r.Cartesian3.fromArray(v,3*t,V);let p,l,c;h&&(p=n.Cartesian2.fromArray(d,2*o,J),l=n.Cartesian2.fromArray(d,2*a,Q),c=n.Cartesian2.fromArray(d,2*t,X));const m=e.cartesianToCartographic(s,ee),C=e.cartesianToCartographic(u,te),A=e.cartesianToCartographic(x,ne);M.setEndPoints(m,C);const Z=M.surfaceDistance;S.setEndPoints(C,A);const z=S.surfaceDistance;E.setEndPoints(A,m);const D=E.surfaceDistance,L=Math.max(Z,z,D);let R,G,O,T,B;L>b?Z===L?(R=`${Math.min(o,a)} ${Math.max(o,a)}`,f=w[R],i.defined(f)||(G=M.interpolateUsingFraction(.5,re),O=.5*(m.height+C.height),T=r.Cartesian3.fromRadians(G.longitude,G.latitude,O,e,H),v.push(T.x,T.y,T.z),f=v.length/3-1,w[R]=f,h&&(B=n.Cartesian2.add(p,l,Y),n.Cartesian2.multiplyByScalar(B,.5,B),d.push(B.x,B.y))),y.push(o,f,t),y.push(f,a,t)):z===L?(R=`${Math.min(a,t)} ${Math.max(a,t)}`,f=w[R],i.defined(f)||(G=S.interpolateUsingFraction(.5,re),O=.5*(C.height+A.height),T=r.Cartesian3.fromRadians(G.longitude,G.latitude,O,e,H),v.push(T.x,T.y,T.z),f=v.length/3-1,w[R]=f,h&&(B=n.Cartesian2.add(l,c,Y),n.Cartesian2.multiplyByScalar(B,.5,B),d.push(B.x,B.y))),y.push(a,f,o),y.push(f,t,o)):D===L&&(R=`${Math.min(t,o)} ${Math.max(t,o)}`,f=w[R],i.defined(f)||(G=E.interpolateUsingFraction(.5,re),O=.5*(A.height+m.height),T=r.Cartesian3.fromRadians(G.longitude,G.latitude,O,e,H),v.push(T.x,T.y,T.z),f=v.length/3-1,w[R]=f,h&&(B=n.Cartesian2.add(c,p,Y),n.Cartesian2.multiplyByScalar(B,.5,B),d.push(B.x,B.y))),y.push(t,f,a),y.push(f,o,a)):(g.push(o),g.push(a),g.push(t))}const Z={attributes:{position:new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:v})},indices:g,primitiveType:s.PrimitiveType.TRIANGLES};return h&&(Z.attributes.st=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:d})),new s.Geometry(Z)},_.scaleToGeodeticHeight=function(e,t,n,a){n=i.defaultValue(n,r.Ellipsoid.WGS84);let o=N,s=U;if(t=i.defaultValue(t,0),a=i.defaultValue(a,!0),i.defined(e)){const i=e.length;for(let u=0;u<i;u+=3)r.Cartesian3.fromArray(e,u,s),a&&(s=n.scaleToGeodeticSurface(s,s)),0!==t&&(o=n.geodeticSurfaceNormal(s,o),r.Cartesian3.multiplyByScalar(o,t,o),r.Cartesian3.add(s,o,s)),e[u]=s.x,e[u+1]=s.y,e[u+2]=s.z}return e};var ae=_;e.PolygonPipeline=ae,e.WindingOrder=I})); diff --git a/public/static/Cesium/Workers/PolylinePipeline-dfaa9e90.js b/public/static/Cesium/Workers/PolylinePipeline-dfaa9e90.js new file mode 100644 index 0000000..4a1ddc3 --- /dev/null +++ b/public/static/Cesium/Workers/PolylinePipeline-dfaa9e90.js @@ -0,0 +1 @@ +define(["exports","./Matrix3-b2351961","./defaultValue-f6d5e6da","./EllipsoidGeodesic-20aaff03","./EllipsoidRhumbLine-1289f7e8","./IntersectionTests-863687a2","./Math-355606c6","./Matrix2-7a8e9daf","./Plane-5931b53e"],(function(e,t,a,n,i,r,o,s,c){"use strict";const l={numberOfPoints:function(e,a,n){const i=t.Cartesian3.distance(e,a);return Math.ceil(i/n)},numberOfPointsRhumbLine:function(e,t,a){const n=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(n/(a*a))))}},u=new t.Cartographic;l.extractHeights=function(e,t){const a=e.length,n=new Array(a);for(let i=0;i<a;i++){const a=e[i];n[i]=t.cartesianToCartographic(a,u).height}return n};const h=new s.Matrix4,f=new t.Cartesian3,g=new t.Cartesian3,C=new c.Plane(t.Cartesian3.UNIT_X,0),p=new t.Cartesian3,d=new c.Plane(t.Cartesian3.UNIT_X,0),m=new t.Cartesian3,w=new t.Cartesian3,P=[];function T(e,t,a){const n=P;let i;if(n.length=e,t===a){for(i=0;i<e;i++)n[i]=t;return n}const r=(a-t)/e;for(i=0;i<e;i++){const e=t+i*r;n[i]=e}return n}const y=new t.Cartographic,A=new t.Cartographic,E=new t.Cartesian3,M=new t.Cartesian3,R=new t.Cartesian3,S=new n.EllipsoidGeodesic;let b=new i.EllipsoidRhumbLine;function x(e,a,n,i,r,o,s,c){const u=i.scaleToGeodeticSurface(e,M),h=i.scaleToGeodeticSurface(a,R),f=l.numberOfPoints(e,a,n),g=i.cartesianToCartographic(u,y),C=i.cartesianToCartographic(h,A),p=T(f,r,o);S.setEndPoints(g,C);const d=S.surfaceDistance/f;let m=c;g.height=r;let w=i.cartographicToCartesian(g,E);t.Cartesian3.pack(w,s,m),m+=3;for(let e=1;e<f;e++){const a=S.interpolateUsingSurfaceDistance(e*d,A);a.height=p[e],w=i.cartographicToCartesian(a,E),t.Cartesian3.pack(w,s,m),m+=3}return m}function D(e,a,n,r,o,s,c,u){const h=r.cartesianToCartographic(e,y),f=r.cartesianToCartographic(a,A),g=l.numberOfPointsRhumbLine(h,f,n);h.height=0,f.height=0;const C=T(g,o,s);b.ellipsoid.equals(r)||(b=new i.EllipsoidRhumbLine(void 0,void 0,r)),b.setEndPoints(h,f);const p=b.surfaceDistance/g;let d=u;h.height=o;let m=r.cartographicToCartesian(h,E);t.Cartesian3.pack(m,c,d),d+=3;for(let e=1;e<g;e++){const a=b.interpolateUsingSurfaceDistance(e*p,A);a.height=C[e],m=r.cartographicToCartesian(a,E),t.Cartesian3.pack(m,c,d),d+=3}return d}l.wrapLongitude=function(e,n){const i=[],o=[];if(a.defined(e)&&e.length>0){n=a.defaultValue(n,s.Matrix4.IDENTITY);const l=s.Matrix4.inverseTransformation(n,h),u=s.Matrix4.multiplyByPoint(l,t.Cartesian3.ZERO,f),P=t.Cartesian3.normalize(s.Matrix4.multiplyByPointAsVector(l,t.Cartesian3.UNIT_Y,g),g),T=c.Plane.fromPointNormal(u,P,C),y=t.Cartesian3.normalize(s.Matrix4.multiplyByPointAsVector(l,t.Cartesian3.UNIT_X,p),p),A=c.Plane.fromPointNormal(u,y,d);let E=1;i.push(t.Cartesian3.clone(e[0]));let M=i[0];const R=e.length;for(let n=1;n<R;++n){const s=e[n];if(c.Plane.getPointDistance(A,M)<0||c.Plane.getPointDistance(A,s)<0){const e=r.IntersectionTests.lineSegmentPlane(M,s,T,m);if(a.defined(e)){const a=t.Cartesian3.multiplyByScalar(P,5e-9,w);c.Plane.getPointDistance(T,M)<0&&t.Cartesian3.negate(a,a),i.push(t.Cartesian3.add(e,a,new t.Cartesian3)),o.push(E+1),t.Cartesian3.negate(a,a),i.push(t.Cartesian3.add(e,a,new t.Cartesian3)),E=1}}i.push(t.Cartesian3.clone(e[n])),E++,M=s}o.push(E)}return{positions:i,lengths:o}},l.generateArc=function(e){a.defined(e)||(e={});const n=e.positions,i=n.length,r=a.defaultValue(e.ellipsoid,t.Ellipsoid.WGS84);let s=a.defaultValue(e.height,0);const c=Array.isArray(s);if(i<1)return[];if(1===i){const e=r.scaleToGeodeticSurface(n[0],M);if(s=c?s[0]:s,0!==s){const a=r.geodeticSurfaceNormal(e,E);t.Cartesian3.multiplyByScalar(a,s,a),t.Cartesian3.add(e,a,e)}return[e.x,e.y,e.z]}let u=e.minDistance;if(!a.defined(u)){const t=a.defaultValue(e.granularity,o.CesiumMath.RADIANS_PER_DEGREE);u=o.CesiumMath.chordLength(t,r.maximumRadius)}let h,f=0;for(h=0;h<i-1;h++)f+=l.numberOfPoints(n[h],n[h+1],u);const g=3*(f+1),C=new Array(g);let p=0;for(h=0;h<i-1;h++){p=x(n[h],n[h+1],u,r,c?s[h]:s,c?s[h+1]:s,C,p)}P.length=0;const d=n[i-1],m=r.cartesianToCartographic(d,y);m.height=c?s[i-1]:s;const w=r.cartographicToCartesian(m,E);return t.Cartesian3.pack(w,C,g-3),C};const N=new t.Cartographic,G=new t.Cartographic;l.generateRhumbArc=function(e){a.defined(e)||(e={});const n=e.positions,i=n.length,r=a.defaultValue(e.ellipsoid,t.Ellipsoid.WGS84);let s=a.defaultValue(e.height,0);const c=Array.isArray(s);if(i<1)return[];if(1===i){const e=r.scaleToGeodeticSurface(n[0],M);if(s=c?s[0]:s,0!==s){const a=r.geodeticSurfaceNormal(e,E);t.Cartesian3.multiplyByScalar(a,s,a),t.Cartesian3.add(e,a,e)}return[e.x,e.y,e.z]}const u=a.defaultValue(e.granularity,o.CesiumMath.RADIANS_PER_DEGREE);let h,f,g=0,C=r.cartesianToCartographic(n[0],N);for(h=0;h<i-1;h++)f=r.cartesianToCartographic(n[h+1],G),g+=l.numberOfPointsRhumbLine(C,f,u),C=t.Cartographic.clone(f,N);const p=3*(g+1),d=new Array(p);let m=0;for(h=0;h<i-1;h++){m=D(n[h],n[h+1],u,r,c?s[h]:s,c?s[h+1]:s,d,m)}P.length=0;const w=n[i-1],T=r.cartesianToCartographic(w,y);T.height=c?s[i-1]:s;const A=r.cartographicToCartesian(T,E);return t.Cartesian3.pack(A,d,p-3),d},l.generateCartesianArc=function(e){const a=l.generateArc(e),n=a.length/3,i=new Array(n);for(let e=0;e<n;e++)i[e]=t.Cartesian3.unpack(a,3*e);return i},l.generateCartesianRhumbArc=function(e){const a=l.generateRhumbArc(e),n=a.length/3,i=new Array(n);for(let e=0;e<n;e++)i[e]=t.Cartesian3.unpack(a,3*e);return i};var I=l;e.PolylinePipeline=I})); diff --git a/public/static/Cesium/Workers/PolylineVolumeGeometryLibrary-e2129320.js b/public/static/Cesium/Workers/PolylineVolumeGeometryLibrary-e2129320.js new file mode 100644 index 0000000..796c0b1 --- /dev/null +++ b/public/static/Cesium/Workers/PolylineVolumeGeometryLibrary-e2129320.js @@ -0,0 +1 @@ +define(["exports","./Matrix2-7a8e9daf","./Matrix3-b2351961","./EllipsoidTangentPlane-05ee7166","./Math-355606c6","./PolylinePipeline-dfaa9e90","./Transforms-c842a68c","./defaultValue-f6d5e6da"],(function(e,a,t,n,r,i,s,o){"use strict";var l=Object.freeze({ROUNDED:0,MITERED:1,BEVELED:2});const c={};function C(e,a){o.defined(c[e])||(c[e]=!0,console.warn(o.defaultValue(a,e)))}C.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.",C.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored",C.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored",C.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";const u=[new t.Cartesian3,new t.Cartesian3],d=new t.Cartesian3,g=new t.Cartesian3,y=new t.Cartesian3,h=new t.Cartesian3,m=new t.Cartesian3,f=new t.Cartesian3,p=new t.Cartesian3,w=new t.Cartesian3,x=new t.Cartesian3,E=new t.Cartesian3,P=new t.Cartesian3,M={};let T=new t.Cartographic;function b(e,a,n,r){const i=e[0],s=e[1],o=t.Cartesian3.angleBetween(i,s),l=Math.ceil(o/r),c=new Array(l);let C;if(a===n){for(C=0;C<l;C++)c[C]=a;return c.push(n),c}const u=(n-a)/l;for(C=1;C<l;C++){const e=a+C*u;c[C]=e}return c[0]=a,c.push(n),c}const B=new t.Cartesian3,z=new t.Cartesian3;const S=new t.Cartesian3(-1,0,0);let A=new a.Matrix4;const D=new a.Matrix4;let R=new t.Matrix3;const O=t.Matrix3.IDENTITY.clone(),V=new t.Cartesian3,I=new a.Cartesian4,v=new t.Cartesian3;function N(e,r,i,o,l,c,C,u){let d=V,g=I;A=s.Transforms.eastNorthUpToFixedFrame(e,l,A),d=a.Matrix4.multiplyByPointAsVector(A,S,d),d=t.Cartesian3.normalize(d,d);const y=function(e,r,i,s){const o=new n.EllipsoidTangentPlane(i,s),l=o.projectPointOntoPlane(t.Cartesian3.add(i,e,B),B),c=o.projectPointOntoPlane(t.Cartesian3.add(i,r,z),z),C=a.Cartesian2.angleBetween(l,c);return c.x*l.y-c.y*l.x>=0?-C:C}(d,r,e,l);R=t.Matrix3.fromRotationZ(y,R),v.z=c,A=a.Matrix4.multiplyTransformation(A,a.Matrix4.fromRotationTranslation(R,v,D),A);const h=O;h[0]=C;for(let e=0;e<u;e++)for(let e=0;e<i.length;e+=3)g=t.Cartesian3.fromArray(i,e,g),g=t.Matrix3.multiplyByVector(h,g,g),g=a.Matrix4.multiplyByPoint(A,g,g),o.push(g.x,g.y,g.z);return o}const G=new t.Cartesian3;function H(e,a,n,r,i,s,o){for(let l=0;l<e.length;l+=3){r=N(t.Cartesian3.fromArray(e,l,G),a,n,r,i,s[l/3],o,1)}return r}function L(e,a){const t=e.length,n=new Array(3*t);let r=0;const i=a.x+a.width/2,s=a.y+a.height/2;for(let a=0;a<t;a++)n[r++]=e[a].x-i,n[r++]=0,n[r++]=e[a].y-s;return n}const j=new s.Quaternion,Q=new t.Cartesian3,q=new t.Matrix3;function F(e,a,n,i,o,c,C,u,d,g){const y=t.Cartesian3.angleBetween(t.Cartesian3.subtract(a,e,E),t.Cartesian3.subtract(n,e,P)),h=i===l.BEVELED?0:Math.ceil(y/r.CesiumMath.toRadians(5));let m,f,p;if(m=o?t.Matrix3.fromQuaternion(s.Quaternion.fromAxisAngle(t.Cartesian3.negate(e,E),y/(h+1),j),q):t.Matrix3.fromQuaternion(s.Quaternion.fromAxisAngle(e,y/(h+1),j),q),a=t.Cartesian3.clone(a,Q),h>0){const n=g?2:1;for(let r=0;r<h;r++)a=t.Matrix3.multiplyByVector(m,a,a),f=t.Cartesian3.subtract(a,e,E),f=t.Cartesian3.normalize(f,f),o||(f=t.Cartesian3.negate(f,f)),p=c.scaleToGeodeticSurface(a,P),C=N(p,f,u,C,c,d,1,n)}else f=t.Cartesian3.subtract(a,e,E),f=t.Cartesian3.normalize(f,f),o||(f=t.Cartesian3.negate(f,f)),p=c.scaleToGeodeticSurface(a,P),C=N(p,f,u,C,c,d,1,1),n=t.Cartesian3.clone(n,Q),f=t.Cartesian3.subtract(n,e,E),f=t.Cartesian3.normalize(f,f),o||(f=t.Cartesian3.negate(f,f)),p=c.scaleToGeodeticSurface(n,P),C=N(p,f,u,C,c,d,1,1);return C}M.removeDuplicatesFromShape=function(e){const t=e.length,n=[];for(let r=t-1,i=0;i<t;r=i++){const t=e[r],s=e[i];a.Cartesian2.equals(t,s)||n.push(s)}return n},M.angleIsGreaterThanPi=function(e,a,r,i){const s=new n.EllipsoidTangentPlane(r,i),o=s.projectPointOntoPlane(t.Cartesian3.add(r,e,B),B),l=s.projectPointOntoPlane(t.Cartesian3.add(r,a,z),z);return l.x*o.y-l.y*o.x>=0};const U=new t.Cartesian3,_=new t.Cartesian3;M.computePositions=function(e,a,n,s,o){const c=s._ellipsoid,P=function(e,a){const t=new Array(e.length);for(let n=0;n<e.length;n++){const r=e[n];T=a.cartesianToCartographic(r,T),t[n]=T.height,e[n]=a.scaleToGeodeticSurface(r,r)}return t}(e,c),B=s._granularity,z=s._cornerType,S=o?function(e,a){const t=e.length,n=new Array(6*t);let r=0;const i=a.x+a.width/2,s=a.y+a.height/2;let o=e[0];n[r++]=o.x-i,n[r++]=0,n[r++]=o.y-s;for(let a=1;a<t;a++){o=e[a];const t=o.x-i,l=o.y-s;n[r++]=t,n[r++]=0,n[r++]=l,n[r++]=t,n[r++]=0,n[r++]=l}return o=e[0],n[r++]=o.x-i,n[r++]=0,n[r++]=o.y-s,n}(a,n):L(a,n),A=o?L(a,n):void 0,D=n.height/2,R=n.width/2;let O=e.length,V=[],I=o?[]:void 0,v=d,G=g,j=y,Q=h,q=m,Z=f,W=p,Y=w,k=x,J=e[0],K=e[1];Q=c.geodeticSurfaceNormal(J,Q),v=t.Cartesian3.subtract(K,J,v),v=t.Cartesian3.normalize(v,v),Y=t.Cartesian3.cross(Q,v,Y),Y=t.Cartesian3.normalize(Y,Y);let X,$,ee=P[0],ae=P[1];o&&(I=N(J,Y,A,I,c,ee+D,1,1)),k=t.Cartesian3.clone(J,k),J=K,G=t.Cartesian3.negate(v,G);for(let a=1;a<O-1;a++){const n=o?2:1;if(K=e[a+1],J.equals(K)){C("Positions are too close and are considered equivalent with rounding error.");continue}v=t.Cartesian3.subtract(K,J,v),v=t.Cartesian3.normalize(v,v),j=t.Cartesian3.add(v,G,j),j=t.Cartesian3.normalize(j,j),Q=c.geodeticSurfaceNormal(J,Q);const s=t.Cartesian3.multiplyByScalar(Q,t.Cartesian3.dot(v,Q),U);t.Cartesian3.subtract(v,s,s),t.Cartesian3.normalize(s,s);const d=t.Cartesian3.multiplyByScalar(Q,t.Cartesian3.dot(G,Q),_);t.Cartesian3.subtract(G,d,d),t.Cartesian3.normalize(d,d);if(!r.CesiumMath.equalsEpsilon(Math.abs(t.Cartesian3.dot(s,d)),1,r.CesiumMath.EPSILON7)){j=t.Cartesian3.cross(j,Q,j),j=t.Cartesian3.cross(Q,j,j),j=t.Cartesian3.normalize(j,j);const e=1/Math.max(.25,t.Cartesian3.magnitude(t.Cartesian3.cross(j,G,E))),a=M.angleIsGreaterThanPi(v,G,J,c);a?(q=t.Cartesian3.add(J,t.Cartesian3.multiplyByScalar(j,e*R,j),q),Z=t.Cartesian3.add(q,t.Cartesian3.multiplyByScalar(Y,R,Z),Z),u[0]=t.Cartesian3.clone(k,u[0]),u[1]=t.Cartesian3.clone(Z,u[1]),X=b(u,ee+D,ae+D,B),$=i.PolylinePipeline.generateArc({positions:u,granularity:B,ellipsoid:c}),V=H($,Y,S,V,c,X,1),Y=t.Cartesian3.cross(Q,v,Y),Y=t.Cartesian3.normalize(Y,Y),W=t.Cartesian3.add(q,t.Cartesian3.multiplyByScalar(Y,R,W),W),z===l.ROUNDED||z===l.BEVELED?F(q,Z,W,z,a,c,V,S,ae+D,o):(j=t.Cartesian3.negate(j,j),V=N(J,j,S,V,c,ae+D,e,n)),k=t.Cartesian3.clone(W,k)):(q=t.Cartesian3.add(J,t.Cartesian3.multiplyByScalar(j,e*R,j),q),Z=t.Cartesian3.add(q,t.Cartesian3.multiplyByScalar(Y,-R,Z),Z),u[0]=t.Cartesian3.clone(k,u[0]),u[1]=t.Cartesian3.clone(Z,u[1]),X=b(u,ee+D,ae+D,B),$=i.PolylinePipeline.generateArc({positions:u,granularity:B,ellipsoid:c}),V=H($,Y,S,V,c,X,1),Y=t.Cartesian3.cross(Q,v,Y),Y=t.Cartesian3.normalize(Y,Y),W=t.Cartesian3.add(q,t.Cartesian3.multiplyByScalar(Y,-R,W),W),z===l.ROUNDED||z===l.BEVELED?F(q,Z,W,z,a,c,V,S,ae+D,o):V=N(J,j,S,V,c,ae+D,e,n),k=t.Cartesian3.clone(W,k)),G=t.Cartesian3.negate(v,G)}else V=N(k,Y,S,V,c,ee+D,1,1),k=J;ee=ae,ae=P[a+1],J=K}u[0]=t.Cartesian3.clone(k,u[0]),u[1]=t.Cartesian3.clone(J,u[1]),X=b(u,ee+D,ae+D,B),$=i.PolylinePipeline.generateArc({positions:u,granularity:B,ellipsoid:c}),V=H($,Y,S,V,c,X,1),o&&(I=N(J,Y,A,I,c,ae+D,1,1)),O=V.length;const te=o?O+I.length:O,ne=new Float64Array(te);return ne.set(V),o&&ne.set(I,O),ne};var Z=M;e.CornerType=l,e.PolylineVolumeGeometryLibrary=Z,e.oneTimeWarning=C})); diff --git a/public/static/Cesium/Workers/PrimitivePipeline-25e99fc7.js b/public/static/Cesium/Workers/PrimitivePipeline-25e99fc7.js new file mode 100644 index 0000000..6b16837 --- /dev/null +++ b/public/static/Cesium/Workers/PrimitivePipeline-25e99fc7.js @@ -0,0 +1 @@ +define(["exports","./Transforms-c842a68c","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./Matrix3-b2351961","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryPipeline-87cdea8e","./IndexDatatype-a9b1bc18","./Matrix2-7a8e9daf","./WebMercatorProjection-db7467f4"],(function(e,t,n,r,o,i,s,c,a,d,p){"use strict";function u(e,t,n){e=r.defaultValue(e,0),t=r.defaultValue(t,0),n=r.defaultValue(n,0),this.value=new Float32Array([e,t,n])}function f(e,t){const r=e.attributes,o=r.position,s=o.values.length/o.componentsPerAttribute;r.batchId=new i.GeometryAttribute({componentDatatype:n.ComponentDatatype.FLOAT,componentsPerAttribute:1,values:new Float32Array(s)});const c=r.batchId.values;for(let e=0;e<s;++e)c[e]=t}function l(e){const o=e.instances,i=e.projection,s=e.elementIndexUintSupported,a=e.scene3DOnly,p=e.vertexCacheOptimize,u=e.compressVertices,l=e.modelMatrix;let m,h,g=o.length;for(m=0;m<g;++m)if(r.defined(o[m].geometry)){o[m].geometry.primitiveType;break}if(function(e,t,n){let o=!n;const i=e.length;let s;if(!o&&i>1){const t=e[0].modelMatrix;for(s=1;s<i;++s)if(!d.Matrix4.equals(t,e[s].modelMatrix)){o=!0;break}}if(o)for(s=0;s<i;++s)r.defined(e[s].geometry)&&c.GeometryPipeline.transformToWorldCoordinates(e[s]);else d.Matrix4.multiplyTransformation(t,e[0].modelMatrix,t)}(o,l,a),!a)for(m=0;m<g;++m)r.defined(o[m].geometry)&&c.GeometryPipeline.splitLongitude(o[m]);if(function(e){const t=e.length;for(let n=0;n<t;++n){const t=e[n];r.defined(t.geometry)?f(t.geometry,n):r.defined(t.westHemisphereGeometry)&&r.defined(t.eastHemisphereGeometry)&&(f(t.westHemisphereGeometry,n),f(t.eastHemisphereGeometry,n))}}(o),p)for(m=0;m<g;++m){const e=o[m];r.defined(e.geometry)?(c.GeometryPipeline.reorderForPostVertexCache(e.geometry),c.GeometryPipeline.reorderForPreVertexCache(e.geometry)):r.defined(e.westHemisphereGeometry)&&r.defined(e.eastHemisphereGeometry)&&(c.GeometryPipeline.reorderForPostVertexCache(e.westHemisphereGeometry),c.GeometryPipeline.reorderForPreVertexCache(e.westHemisphereGeometry),c.GeometryPipeline.reorderForPostVertexCache(e.eastHemisphereGeometry),c.GeometryPipeline.reorderForPreVertexCache(e.eastHemisphereGeometry))}let y=c.GeometryPipeline.combineInstances(o);for(g=y.length,m=0;m<g;++m){h=y[m];const e=h.attributes;if(a)for(const t in e)e.hasOwnProperty(t)&&e[t].componentDatatype===n.ComponentDatatype.DOUBLE&&c.GeometryPipeline.encodeAttribute(h,t,`${t}3DHigh`,`${t}3DLow`);else for(const o in e)if(e.hasOwnProperty(o)&&e[o].componentDatatype===n.ComponentDatatype.DOUBLE){const e=`${o}3D`,n=`${o}2D`;c.GeometryPipeline.projectTo2D(h,o,e,n,i),r.defined(h.boundingSphere)&&"position"===o&&(h.boundingSphereCV=t.BoundingSphere.fromVertices(h.attributes.position2D.values)),c.GeometryPipeline.encodeAttribute(h,e,`${e}High`,`${e}Low`),c.GeometryPipeline.encodeAttribute(h,n,`${n}High`,`${n}Low`)}u&&c.GeometryPipeline.compressVertices(h)}if(!s){let e=[];for(g=y.length,m=0;m<g;++m)h=y[m],e=e.concat(c.GeometryPipeline.fitToUnsignedShortIndices(h));y=e}return y}function m(e,t,n,o){let i,s,c;const a=o.length-1;if(a>=0){const e=o[a];i=e.offset+e.count,c=e.index,s=n[c].indices.length}else i=0,c=0,s=n[c].indices.length;const d=e.length;for(let a=0;a<d;++a){const d=e[a][t];if(!r.defined(d))continue;const p=d.indices.length;i+p>s&&(i=0,s=n[++c].indices.length),o.push({index:c,offset:i,count:p}),i+=p}}Object.defineProperties(u.prototype,{componentDatatype:{get:function(){return n.ComponentDatatype.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}}),u.fromCartesian3=function(e){return new u(e.x,e.y,e.z)},u.toValue=function(e,t){return r.defined(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t};const h={};function g(e,t){const n=e.attributes;for(const e in n)if(n.hasOwnProperty(e)){const o=n[e];r.defined(o)&&r.defined(o.values)&&t.push(o.values.buffer)}r.defined(e.indices)&&t.push(e.indices.buffer)}function y(e,t){const n=e.length,o=new Float64Array(1+19*n);let i=0;o[i++]=n;for(let t=0;t<n;t++){const n=e[t];if(d.Matrix4.pack(n.modelMatrix,o,i),i+=d.Matrix4.packedLength,r.defined(n.attributes)&&r.defined(n.attributes.offset)){const e=n.attributes.offset.value;o[i]=e[0],o[i+1]=e[1],o[i+2]=e[2]}i+=3}return t.push(o.buffer),o}function b(e){const n=e.length,o=1+(t.BoundingSphere.packedLength+1)*n,i=new Float32Array(o);let s=0;i[s++]=n;for(let o=0;o<n;++o){const n=e[o];r.defined(n)?(i[s++]=1,t.BoundingSphere.pack(e[o],i,s)):i[s++]=0,s+=t.BoundingSphere.packedLength}return i}function x(e){const n=new Array(e[0]);let r=0,o=1;for(;o<e.length;)1===e[o++]&&(n[r]=t.BoundingSphere.unpack(e,o)),++r,o+=t.BoundingSphere.packedLength;return n}h.combineGeometry=function(e){let n,o;const i=e.instances,s=i.length;let a,d,p=!1;s>0&&(n=l(e),n.length>0&&(o=c.GeometryPipeline.createAttributeLocations(n[0]),e.createPickOffsets&&(a=function(e,t){const n=[];return m(e,"geometry",t,n),m(e,"westHemisphereGeometry",t,n),m(e,"eastHemisphereGeometry",t,n),n}(i,n))),r.defined(i[0].attributes)&&r.defined(i[0].attributes.offset)&&(d=new Array(s),p=!0));const u=new Array(s),f=new Array(s);for(let e=0;e<s;++e){const n=i[e],o=n.geometry;r.defined(o)&&(u[e]=o.boundingSphere,f[e]=o.boundingSphereCV,p&&(d[e]=n.geometry.offsetAttribute));const s=n.eastHemisphereGeometry,c=n.westHemisphereGeometry;r.defined(s)&&r.defined(c)&&(r.defined(s.boundingSphere)&&r.defined(c.boundingSphere)&&(u[e]=t.BoundingSphere.union(s.boundingSphere,c.boundingSphere)),r.defined(s.boundingSphereCV)&&r.defined(c.boundingSphereCV)&&(f[e]=t.BoundingSphere.union(s.boundingSphereCV,c.boundingSphereCV)))}return{geometries:n,modelMatrix:e.modelMatrix,attributeLocations:o,pickOffsets:a,offsetInstanceExtend:d,boundingSpheres:u,boundingSpheresCV:f}},h.packCreateGeometryResults=function(e,n){const o=new Float64Array(function(e){let n=1;const o=e.length;for(let i=0;i<o;i++){const o=e[i];if(++n,!r.defined(o))continue;const s=o.attributes;n+=7+2*t.BoundingSphere.packedLength+(r.defined(o.indices)?o.indices.length:0);for(const e in s)s.hasOwnProperty(e)&&r.defined(s[e])&&(n+=5+s[e].values.length)}return n}(e)),i=[],s={},c=e.length;let a=0;o[a++]=c;for(let n=0;n<c;n++){const c=e[n],d=r.defined(c);if(o[a++]=d?1:0,!d)continue;o[a++]=c.primitiveType,o[a++]=c.geometryType,o[a++]=r.defaultValue(c.offsetAttribute,-1);const p=r.defined(c.boundingSphere)?1:0;o[a++]=p,p&&t.BoundingSphere.pack(c.boundingSphere,o,a),a+=t.BoundingSphere.packedLength;const u=r.defined(c.boundingSphereCV)?1:0;o[a++]=u,u&&t.BoundingSphere.pack(c.boundingSphereCV,o,a),a+=t.BoundingSphere.packedLength;const f=c.attributes,l=[];for(const e in f)f.hasOwnProperty(e)&&r.defined(f[e])&&(l.push(e),r.defined(s[e])||(s[e]=i.length,i.push(e)));o[a++]=l.length;for(let e=0;e<l.length;e++){const t=l[e],n=f[t];o[a++]=s[t],o[a++]=n.componentDatatype,o[a++]=n.componentsPerAttribute,o[a++]=n.normalize?1:0,o[a++]=n.values.length,o.set(n.values,a),a+=n.values.length}const m=r.defined(c.indices)?c.indices.length:0;o[a++]=m,m>0&&(o.set(c.indices,a),a+=m)}return n.push(o.buffer),{stringTable:i,packedData:o}},h.unpackCreateGeometryResults=function(e){const r=e.stringTable,o=e.packedData;let c;const d=new Array(o[0]);let p=0,u=1;for(;u<o.length;){if(!(1===o[u++])){d[p++]=void 0;continue}const e=o[u++],f=o[u++];let l,m,h=o[u++];-1===h&&(h=void 0);1===o[u++]&&(l=t.BoundingSphere.unpack(o,u)),u+=t.BoundingSphere.packedLength;let g,y,b;1===o[u++]&&(m=t.BoundingSphere.unpack(o,u)),u+=t.BoundingSphere.packedLength;const x=new s.GeometryAttributes,G=o[u++];for(c=0;c<G;c++){const e=r[o[u++]],t=o[u++];b=o[u++];const s=0!==o[u++];g=o[u++],y=n.ComponentDatatype.createTypedArray(t,g);for(let e=0;e<g;e++)y[e]=o[u++];x[e]=new i.GeometryAttribute({componentDatatype:t,componentsPerAttribute:b,normalize:s,values:y})}let S;if(g=o[u++],g>0){const e=y.length/b;for(S=a.IndexDatatype.createTypedArray(e,g),c=0;c<g;c++)S[c]=o[u++]}d[p++]=new i.Geometry({primitiveType:e,geometryType:f,boundingSphere:l,boundingSphereCV:m,indices:S,attributes:x,offsetAttribute:h})}return d},h.packCombineGeometryParameters=function(e,n){const r=e.createGeometryResults,o=r.length;for(let e=0;e<o;e++)n.push(r[e].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:y(e.instances,n),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof t.GeographicProjection,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}},h.unpackCombineGeometryParameters=function(e){const n=function(e){const t=e,n=new Array(t[0]);let o=0,i=1;for(;i<t.length;){const e=d.Matrix4.unpack(t,i);let s;i+=d.Matrix4.packedLength,r.defined(t[i])&&(s={offset:new u(t[i],t[i+1],t[i+2])}),i+=3,n[o++]={modelMatrix:e,attributes:s}}return n}(e.packedInstances),i=e.createGeometryResults,s=i.length;let c=0;for(let e=0;e<s;e++){const t=h.unpackCreateGeometryResults(i[e]),r=t.length;for(let e=0;e<r;e++){const r=t[e];n[c].geometry=r,++c}}const a=o.Ellipsoid.clone(e.ellipsoid);return{instances:n,ellipsoid:a,projection:e.isGeographic?new t.GeographicProjection(a):new p.WebMercatorProjection(a),elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:d.Matrix4.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}},h.packCombineGeometryResults=function(e,t){r.defined(e.geometries)&&function(e,t){const n=e.length;for(let r=0;r<n;++r)g(e[r],t)}(e.geometries,t);const n=b(e.boundingSpheres),o=b(e.boundingSpheresCV);return t.push(n.buffer,o.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:n,boundingSpheresCV:o}},h.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:x(e.boundingSpheres),boundingSpheresCV:x(e.boundingSpheresCV)}};var G=h;e.PrimitivePipeline=G})); diff --git a/public/static/Cesium/Workers/RectangleGeometryLibrary-40180469.js b/public/static/Cesium/Workers/RectangleGeometryLibrary-40180469.js new file mode 100644 index 0000000..83a7efc --- /dev/null +++ b/public/static/Cesium/Workers/RectangleGeometryLibrary-40180469.js @@ -0,0 +1 @@ +define(["exports","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Transforms-c842a68c","./Math-355606c6","./Matrix2-7a8e9daf"],(function(t,n,a,o,r,e){"use strict";const s=Math.cos,i=Math.sin,c=Math.sqrt,g={computePosition:function(t,n,o,r,e,g,u){const h=n.radiiSquared,l=t.nwCorner,C=t.boundingRectangle;let S=l.latitude-t.granYCos*r+e*t.granXSin;const M=s(S),d=i(S),w=h.z*d;let X=l.longitude+r*t.granYSin+e*t.granXCos;const Y=M*s(X),m=M*i(X),f=h.x*Y,p=h.y*m,x=c(f*Y+p*m+w*d);if(g.x=f/x,g.y=p/x,g.z=w/x,o){const n=t.stNwCorner;a.defined(n)?(S=n.latitude-t.stGranYCos*r+e*t.stGranXSin,X=n.longitude+r*t.stGranYSin+e*t.stGranXCos,u.x=(X-t.stWest)*t.lonScalar,u.y=(S-t.stSouth)*t.latScalar):(u.x=(X-C.west)*t.lonScalar,u.y=(S-C.south)*t.latScalar)}}},u=new e.Matrix2;let h=new n.Cartesian3;const l=new n.Cartographic;let C=new n.Cartesian3;const S=new o.GeographicProjection;function M(t,a,o,r,s,i,c){const g=Math.cos(a),l=r*g,M=o*g,d=Math.sin(a),w=r*d,X=o*d;h=S.project(t,h),h=n.Cartesian3.subtract(h,C,h);const Y=e.Matrix2.fromRotation(a,u);h=e.Matrix2.multiplyByVector(Y,h,h),h=n.Cartesian3.add(h,C,h),i-=1,c-=1;const m=(t=S.unproject(h,t)).latitude,f=m+i*X,p=m-l*c,x=m-l*c+i*X,G=Math.max(m,f,p,x),R=Math.min(m,f,p,x),y=t.longitude,O=y+i*M,P=y+c*w,W=y+c*w+i*M;return{north:G,south:R,east:Math.max(y,O,P,W),west:Math.min(y,O,P,W),granYCos:l,granYSin:w,granXCos:M,granXSin:X,nwCorner:t}}g.computeOptions=function(t,n,a,o,s,i,c){let g,u=t.east,h=t.west,d=t.north,w=t.south,X=!1,Y=!1;d===r.CesiumMath.PI_OVER_TWO&&(X=!0),w===-r.CesiumMath.PI_OVER_TWO&&(Y=!0);const m=d-w;g=h>u?r.CesiumMath.TWO_PI-h+u:u-h;const f=Math.ceil(g/n)+1,p=Math.ceil(m/n)+1,x=g/(f-1),G=m/(p-1),R=e.Rectangle.northwest(t,i),y=e.Rectangle.center(t,l);0===a&&0===o||(y.longitude<R.longitude&&(y.longitude+=r.CesiumMath.TWO_PI),C=S.project(y,C));const O=G,P=x,W=e.Rectangle.clone(t,s),_={granYCos:O,granYSin:0,granXCos:P,granXSin:0,nwCorner:R,boundingRectangle:W,width:f,height:p,northCap:X,southCap:Y};if(0!==a){const t=M(R,a,x,G,0,f,p);d=t.north,w=t.south,u=t.east,h=t.west,_.granYCos=t.granYCos,_.granYSin=t.granYSin,_.granXCos=t.granXCos,_.granXSin=t.granXSin,W.north=d,W.south=w,W.east=u,W.west=h}if(0!==o){a-=o;const t=e.Rectangle.northwest(W,c),n=M(t,a,x,G,0,f,p);_.stGranYCos=n.granYCos,_.stGranXCos=n.granXCos,_.stGranYSin=n.granYSin,_.stGranXSin=n.granXSin,_.stNwCorner=t,_.stWest=n.west,_.stSouth=n.south}return _};var d=g;t.RectangleGeometryLibrary=d})); diff --git a/public/static/Cesium/Workers/RuntimeError-9b4ce3fb.js b/public/static/Cesium/Workers/RuntimeError-9b4ce3fb.js new file mode 100644 index 0000000..e1bac54 --- /dev/null +++ b/public/static/Cesium/Workers/RuntimeError-9b4ce3fb.js @@ -0,0 +1 @@ +define(["exports","./defaultValue-f6d5e6da"],(function(t,e){"use strict";function r(t){let e;this.name="RuntimeError",this.message=t;try{throw new Error}catch(t){e=t.stack}this.stack=e}e.defined(Object.create)&&(r.prototype=Object.create(Error.prototype),r.prototype.constructor=r),r.prototype.toString=function(){let t=`${this.name}: ${this.message}`;return e.defined(this.stack)&&(t+=`\n${this.stack.toString()}`),t},t.RuntimeError=r})); diff --git a/public/static/Cesium/Workers/TerrainEncoding-d756c901.js b/public/static/Cesium/Workers/TerrainEncoding-d756c901.js new file mode 100644 index 0000000..a01102a --- /dev/null +++ b/public/static/Cesium/Workers/TerrainEncoding-d756c901.js @@ -0,0 +1 @@ +define(["exports","./Transforms-c842a68c","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Matrix2-7a8e9daf","./AttributeCompression-0b8f7b7d","./ComponentDatatype-ab629b88","./Math-355606c6"],(function(t,e,i,o,a,r,n,s){"use strict";function c(t,e){this._ellipsoid=t,this._cameraPosition=new i.Cartesian3,this._cameraPositionInScaledSpace=new i.Cartesian3,this._distanceToLimbInScaledSpaceSquared=0,o.defined(e)&&(this.cameraPosition=e)}Object.defineProperties(c.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(t){const e=this._ellipsoid.transformPositionToScaledSpace(t,this._cameraPositionInScaledSpace),o=i.Cartesian3.magnitudeSquared(e)-1;i.Cartesian3.clone(t,this._cameraPosition),this._cameraPositionInScaledSpace=e,this._distanceToLimbInScaledSpaceSquared=o}}});const u=new i.Cartesian3;c.prototype.isPointVisible=function(t){return C(this._ellipsoid.transformPositionToScaledSpace(t,u),this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)},c.prototype.isScaledSpacePointVisible=function(t){return C(t,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};const d=new i.Cartesian3;c.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(t,e){const i=this._ellipsoid;let a,r;return o.defined(e)&&e<0&&i.minimumRadius>-e?(r=d,r.x=this._cameraPosition.x/(i.radii.x+e),r.y=this._cameraPosition.y/(i.radii.y+e),r.z=this._cameraPosition.z/(i.radii.z+e),a=r.x*r.x+r.y*r.y+r.z*r.z-1):(r=this._cameraPositionInScaledSpace,a=this._distanceToLimbInScaledSpaceSquared),C(t,r,a)},c.prototype.computeHorizonCullingPoint=function(t,e,i){return p(this._ellipsoid,t,e,i)};const l=i.Ellipsoid.clone(i.Ellipsoid.UNIT_SPHERE);c.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(t,e,i,o){return p(f(this._ellipsoid,i,l),t,e,o)},c.prototype.computeHorizonCullingPointFromVertices=function(t,e,i,o,a){return S(this._ellipsoid,t,e,i,o,a)},c.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(t,e,i,o,a,r){return S(f(this._ellipsoid,a,l),t,e,i,o,r)};const m=[];c.prototype.computeHorizonCullingPointFromRectangle=function(t,o,r){const n=a.Rectangle.subsample(t,o,0,m),s=e.BoundingSphere.fromPoints(n);if(!(i.Cartesian3.magnitude(s.center)<.1*o.minimumRadius))return this.computeHorizonCullingPoint(s.center,n,r)};const h=new i.Cartesian3;function f(t,e,a){if(o.defined(e)&&e<0&&t.minimumRadius>-e){const o=i.Cartesian3.fromElements(t.radii.x+e,t.radii.y+e,t.radii.z+e,h);t=i.Ellipsoid.fromCartesian3(o,a)}return t}function p(t,e,a,r){o.defined(r)||(r=new i.Cartesian3);const n=P(t,e);let s=0;for(let e=0,i=a.length;e<i;++e){const i=N(t,a[e],n);if(i<0)return;s=Math.max(s,i)}return M(n,s,r)}const x=new i.Cartesian3;function S(t,e,a,r,n,s){o.defined(s)||(s=new i.Cartesian3),r=o.defaultValue(r,3),n=o.defaultValue(n,i.Cartesian3.ZERO);const c=P(t,e);let u=0;for(let e=0,i=a.length;e<i;e+=r){x.x=a[e]+n.x,x.y=a[e+1]+n.y,x.z=a[e+2]+n.z;const i=N(t,x,c);if(i<0)return;u=Math.max(u,i)}return M(c,u,s)}function C(t,e,o){const a=e,r=o,n=i.Cartesian3.subtract(t,a,u),s=-i.Cartesian3.dot(n,a);return!(r<0?s>0:s>r&&s*s/i.Cartesian3.magnitudeSquared(n)>r)}const g=new i.Cartesian3,y=new i.Cartesian3;function N(t,e,o){const a=t.transformPositionToScaledSpace(e,g);let r=i.Cartesian3.magnitudeSquared(a),n=Math.sqrt(r);const s=i.Cartesian3.divideByScalar(a,n,y);r=Math.max(1,r),n=Math.max(1,n);const c=1/n;return 1/(i.Cartesian3.dot(s,o)*c-i.Cartesian3.magnitude(i.Cartesian3.cross(s,o,s))*(Math.sqrt(r-1)*c))}function M(t,e,o){if(!(e<=0||e===1/0||e!=e))return i.Cartesian3.multiplyByScalar(t,e,o)}const T=new i.Cartesian3;function P(t,e){return i.Cartesian3.equals(e,i.Cartesian3.ZERO)?e:(t.transformPositionToScaledSpace(e,T),i.Cartesian3.normalize(T,T))}const b={getHeight:function(t,e,i){return(t-i)*e+i}},z=new i.Cartesian3;b.getPosition=function(t,e,o,a,r){const n=e.cartesianToCartographic(t,z),s=b.getHeight(n.height,o,a);return i.Cartesian3.fromRadians(n.longitude,n.latitude,s,e,r)};var _=b;var E=Object.freeze({NONE:0,BITS12:1});const H=new i.Cartesian3,w=new i.Cartesian3,A=new a.Cartesian2,I=new a.Matrix4,V=new a.Matrix4,q=Math.pow(2,12);function G(t,e,r,n,s,c,u,d,l,m){let h,f,p=E.NONE;if(o.defined(e)&&o.defined(r)&&o.defined(n)&&o.defined(s)){const t=e.minimum,o=e.maximum,c=i.Cartesian3.subtract(o,t,w),u=n-r;p=Math.max(i.Cartesian3.maximumComponent(c),u)<q-1?E.BITS12:E.NONE,h=a.Matrix4.inverseTransformation(s,new a.Matrix4);const d=i.Cartesian3.negate(t,H);a.Matrix4.multiply(a.Matrix4.fromTranslation(d,I),h,h);const l=H;l.x=1/c.x,l.y=1/c.y,l.z=1/c.z,a.Matrix4.multiply(a.Matrix4.fromScale(l,I),h,h),f=a.Matrix4.clone(s),a.Matrix4.setTranslation(f,i.Cartesian3.ZERO,f),s=a.Matrix4.clone(s,new a.Matrix4);const m=a.Matrix4.fromTranslation(t,I),x=a.Matrix4.fromScale(c,V),S=a.Matrix4.multiply(m,x,I);a.Matrix4.multiply(s,S,s),a.Matrix4.multiply(f,S,f)}this.quantization=p,this.minimumHeight=r,this.maximumHeight=n,this.center=i.Cartesian3.clone(t),this.toScaledENU=h,this.fromScaledENU=s,this.matrix=f,this.hasVertexNormals=c,this.hasWebMercatorT=o.defaultValue(u,!1),this.hasGeodeticSurfaceNormals=o.defaultValue(d,!1),this.exaggeration=o.defaultValue(l,1),this.exaggerationRelativeHeight=o.defaultValue(m,0),this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}G.prototype.encode=function(t,e,o,n,c,u,d,l){const m=n.x,h=n.y;if(this.quantization===E.BITS12){(o=a.Matrix4.multiplyByPoint(this.toScaledENU,o,H)).x=s.CesiumMath.clamp(o.x,0,1),o.y=s.CesiumMath.clamp(o.y,0,1),o.z=s.CesiumMath.clamp(o.z,0,1);const i=this.maximumHeight-this.minimumHeight,n=s.CesiumMath.clamp((c-this.minimumHeight)/i,0,1);a.Cartesian2.fromElements(o.x,o.y,A);const u=r.AttributeCompression.compressTextureCoordinates(A);a.Cartesian2.fromElements(o.z,n,A);const l=r.AttributeCompression.compressTextureCoordinates(A);a.Cartesian2.fromElements(m,h,A);const f=r.AttributeCompression.compressTextureCoordinates(A);if(t[e++]=u,t[e++]=l,t[e++]=f,this.hasWebMercatorT){a.Cartesian2.fromElements(d,0,A);const i=r.AttributeCompression.compressTextureCoordinates(A);t[e++]=i}}else i.Cartesian3.subtract(o,this.center,H),t[e++]=H.x,t[e++]=H.y,t[e++]=H.z,t[e++]=c,t[e++]=m,t[e++]=h,this.hasWebMercatorT&&(t[e++]=d);return this.hasVertexNormals&&(t[e++]=r.AttributeCompression.octPackFloat(u)),this.hasGeodeticSurfaceNormals&&(t[e++]=l.x,t[e++]=l.y,t[e++]=l.z),e};const O=new i.Cartesian3,B=new i.Cartesian3;G.prototype.addGeodeticSurfaceNormals=function(t,e,i){if(this.hasGeodeticSurfaceNormals)return;const o=this.stride,a=t.length/o;this.hasGeodeticSurfaceNormals=!0,this._calculateStrideAndOffsets();const r=this.stride;for(let n=0;n<a;n++){for(let i=0;i<o;i++){const a=n*o+i;e[n*r+i]=t[a]}const a=this.decodePosition(e,n,O),s=i.geodeticSurfaceNormal(a,B),c=n*r+this._offsetGeodeticSurfaceNormal;e[c]=s.x,e[c+1]=s.y,e[c+2]=s.z}},G.prototype.removeGeodeticSurfaceNormals=function(t,e){if(!this.hasGeodeticSurfaceNormals)return;const i=this.stride,o=t.length/i;this.hasGeodeticSurfaceNormals=!1,this._calculateStrideAndOffsets();const a=this.stride;for(let r=0;r<o;r++)for(let o=0;o<a;o++){const n=r*i+o;e[r*a+o]=t[n]}},G.prototype.decodePosition=function(t,e,n){if(o.defined(n)||(n=new i.Cartesian3),e*=this.stride,this.quantization===E.BITS12){const i=r.AttributeCompression.decompressTextureCoordinates(t[e],A);n.x=i.x,n.y=i.y;const o=r.AttributeCompression.decompressTextureCoordinates(t[e+1],A);return n.z=o.x,a.Matrix4.multiplyByPoint(this.fromScaledENU,n,n)}return n.x=t[e],n.y=t[e+1],n.z=t[e+2],i.Cartesian3.add(n,this.center,n)},G.prototype.getExaggeratedPosition=function(t,e,i){i=this.decodePosition(t,e,i);const o=this.exaggeration,a=this.exaggerationRelativeHeight;if(1!==o&&this.hasGeodeticSurfaceNormals){const r=this.decodeGeodeticSurfaceNormal(t,e,B),n=this.decodeHeight(t,e),s=_.getHeight(n,o,a)-n;i.x+=r.x*s,i.y+=r.y*s,i.z+=r.z*s}return i},G.prototype.decodeTextureCoordinates=function(t,e,i){return o.defined(i)||(i=new a.Cartesian2),e*=this.stride,this.quantization===E.BITS12?r.AttributeCompression.decompressTextureCoordinates(t[e+2],i):a.Cartesian2.fromElements(t[e+4],t[e+5],i)},G.prototype.decodeHeight=function(t,e){if(e*=this.stride,this.quantization===E.BITS12){return r.AttributeCompression.decompressTextureCoordinates(t[e+1],A).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight}return t[e+3]},G.prototype.decodeWebMercatorT=function(t,e){return e*=this.stride,this.quantization===E.BITS12?r.AttributeCompression.decompressTextureCoordinates(t[e+3],A).x:t[e+6]},G.prototype.getOctEncodedNormal=function(t,e,i){const o=t[e=e*this.stride+this._offsetVertexNormal]/256,r=Math.floor(o),n=256*(o-r);return a.Cartesian2.fromElements(r,n,i)},G.prototype.decodeGeodeticSurfaceNormal=function(t,e,i){return e=e*this.stride+this._offsetGeodeticSurfaceNormal,i.x=t[e],i.y=t[e+1],i.z=t[e+2],i},G.prototype._calculateStrideAndOffsets=function(){let t=0;if(this.quantization===E.BITS12)t+=3;else t+=6;this.hasWebMercatorT&&(t+=1),this.hasVertexNormals&&(this._offsetVertexNormal=t,t+=1),this.hasGeodeticSurfaceNormals&&(this._offsetGeodeticSurfaceNormal=t,t+=3),this.stride=t};const R={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},U={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};G.prototype.getAttributes=function(t){const e=n.ComponentDatatype.FLOAT,i=n.ComponentDatatype.getSizeInBytes(e),o=this.stride*i;let a=0;const r=[];function s(n,s){r.push({index:n,vertexBuffer:t,componentDatatype:e,componentsPerAttribute:s,offsetInBytes:a,strideInBytes:o}),a+=s*i}if(this.quantization===E.NONE){s(R.position3DAndHeight,4);let t=2;t+=this.hasWebMercatorT?1:0,t+=this.hasVertexNormals?1:0,s(R.textureCoordAndEncodedNormals,t),this.hasGeodeticSurfaceNormals&&s(R.geodeticSurfaceNormal,3)}else{const t=this.hasWebMercatorT||this.hasVertexNormals,e=this.hasWebMercatorT&&this.hasVertexNormals;s(U.compressed0,t?4:3),e&&s(U.compressed1,1),this.hasGeodeticSurfaceNormals&&s(U.geodeticSurfaceNormal,3)}return r},G.prototype.getAttributeLocations=function(){return this.quantization===E.NONE?R:U},G.clone=function(t,e){if(o.defined(t))return o.defined(e)||(e=new G),e.quantization=t.quantization,e.minimumHeight=t.minimumHeight,e.maximumHeight=t.maximumHeight,e.center=i.Cartesian3.clone(t.center),e.toScaledENU=a.Matrix4.clone(t.toScaledENU),e.fromScaledENU=a.Matrix4.clone(t.fromScaledENU),e.matrix=a.Matrix4.clone(t.matrix),e.hasVertexNormals=t.hasVertexNormals,e.hasWebMercatorT=t.hasWebMercatorT,e.hasGeodeticSurfaceNormals=t.hasGeodeticSurfaceNormals,e.exaggeration=t.exaggeration,e.exaggerationRelativeHeight=t.exaggerationRelativeHeight,e._calculateStrideAndOffsets(),e},t.EllipsoidalOccluder=c,t.TerrainEncoding=G})); diff --git a/public/static/Cesium/Workers/Transforms-c842a68c.js b/public/static/Cesium/Workers/Transforms-c842a68c.js new file mode 100644 index 0000000..2dc9ea2 --- /dev/null +++ b/public/static/Cesium/Workers/Transforms-c842a68c.js @@ -0,0 +1,40 @@ +define(["require","exports","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Math-355606c6","./Matrix2-7a8e9daf","./combine-0c102d93","./RuntimeError-9b4ce3fb"],(function(e,t,n,r,o,i,s,a){"use strict";function u(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}function c(e){let t;this.name="DeveloperError",this.message=e;try{throw new Error}catch(e){t=e.stack}this.stack=t}r.defined(Object.create)&&(c.prototype=Object.create(Error.prototype),c.prototype.constructor=c),c.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return r.defined(this.stack)&&(e+=`\n${this.stack.toString()}`),e},c.throwInstantiationError=function(){throw new c("This function defines an interface and should not be called directly.")};const l={};function d(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}l.typeOf={},l.defined=function(e,t){if(!r.defined(t))throw new c(function(e){return`${e} is required, actual value was undefined`}(e))},l.typeOf.func=function(e,t){if("function"!=typeof t)throw new c(d(typeof t,"function",e))},l.typeOf.string=function(e,t){if("string"!=typeof t)throw new c(d(typeof t,"string",e))},l.typeOf.number=function(e,t){if("number"!=typeof t)throw new c(d(typeof t,"number",e))},l.typeOf.number.lessThan=function(e,t,n){if(l.typeOf.number(e,t),t>=n)throw new c(`Expected ${e} to be less than ${n}, actual value was ${t}`)},l.typeOf.number.lessThanOrEquals=function(e,t,n){if(l.typeOf.number(e,t),t>n)throw new c(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)},l.typeOf.number.greaterThan=function(e,t,n){if(l.typeOf.number(e,t),t<=n)throw new c(`Expected ${e} to be greater than ${n}, actual value was ${t}`)},l.typeOf.number.greaterThanOrEquals=function(e,t,n){if(l.typeOf.number(e,t),t<n)throw new c(`Expected ${e} to be greater than or equal to ${n}, actual value was ${t}`)},l.typeOf.object=function(e,t){if("object"!=typeof t)throw new c(d(typeof t,"object",e))},l.typeOf.bool=function(e,t){if("boolean"!=typeof t)throw new c(d(typeof t,"boolean",e))},l.typeOf.bigint=function(e,t){if("bigint"!=typeof t)throw new c(d(typeof t,"bigint",e))},l.typeOf.number.equals=function(e,t,n,r){if(l.typeOf.number(e,n),l.typeOf.number(t,r),n!==r)throw new c(`${e} must be equal to ${t}, the actual values are ${n} and ${r}`)};var f=l;function p(e){this._ellipsoid=r.defaultValue(e,n.Ellipsoid.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(p.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),p.prototype.project=function(e,t){const o=this._semimajorAxis,i=e.longitude*o,s=e.latitude*o,a=e.height;return r.defined(t)?(t.x=i,t.y=s,t.z=a,t):new n.Cartesian3(i,s,a)},p.prototype.unproject=function(e,t){const o=this._oneOverSemimajorAxis,i=e.x*o,s=e.y*o,a=e.z;return r.defined(t)?(t.longitude=i,t.latitude=s,t.height=a,t):new n.Cartographic(i,s,a)};var h=Object.freeze({OUTSIDE:-1,INTERSECTING:0,INSIDE:1});function m(e,t){this.start=r.defaultValue(e,0),this.stop=r.defaultValue(t,0)}function g(e,t){this.center=n.Cartesian3.clone(r.defaultValue(e,n.Cartesian3.ZERO)),this.radius=r.defaultValue(t,0)}const y=new n.Cartesian3,v=new n.Cartesian3,w=new n.Cartesian3,C=new n.Cartesian3,_=new n.Cartesian3,b=new n.Cartesian3,x=new n.Cartesian3,S=new n.Cartesian3,A=new n.Cartesian3,E=new n.Cartesian3,O=new n.Cartesian3,I=new n.Cartesian3,P=4/3*o.CesiumMath.PI;g.fromPoints=function(e,t){if(r.defined(t)||(t=new g),!r.defined(e)||0===e.length)return t.center=n.Cartesian3.clone(n.Cartesian3.ZERO,t.center),t.radius=0,t;const o=n.Cartesian3.clone(e[0],x),i=n.Cartesian3.clone(o,y),s=n.Cartesian3.clone(o,v),a=n.Cartesian3.clone(o,w),u=n.Cartesian3.clone(o,C),c=n.Cartesian3.clone(o,_),l=n.Cartesian3.clone(o,b),d=e.length;let f;for(f=1;f<d;f++){n.Cartesian3.clone(e[f],o);const t=o.x,r=o.y,d=o.z;t<i.x&&n.Cartesian3.clone(o,i),t>u.x&&n.Cartesian3.clone(o,u),r<s.y&&n.Cartesian3.clone(o,s),r>c.y&&n.Cartesian3.clone(o,c),d<a.z&&n.Cartesian3.clone(o,a),d>l.z&&n.Cartesian3.clone(o,l)}const p=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(u,i,S)),h=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(c,s,S)),m=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(l,a,S));let P=i,R=u,T=p;h>T&&(T=h,P=s,R=c),m>T&&(T=m,P=a,R=l);const q=A;q.x=.5*(P.x+R.x),q.y=.5*(P.y+R.y),q.z=.5*(P.z+R.z);let z=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(R,q,S)),M=Math.sqrt(z);const D=E;D.x=i.x,D.y=s.y,D.z=a.z;const U=O;U.x=u.x,U.y=c.y,U.z=l.z;const k=n.Cartesian3.midpoint(D,U,I);let F=0;for(f=0;f<d;f++){n.Cartesian3.clone(e[f],o);const t=n.Cartesian3.magnitude(n.Cartesian3.subtract(o,k,S));t>F&&(F=t);const r=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(o,q,S));if(r>z){const e=Math.sqrt(r);M=.5*(M+e),z=M*M;const t=e-M;q.x=(M*q.x+t*o.x)/e,q.y=(M*q.y+t*o.y)/e,q.z=(M*q.z+t*o.z)/e}}return M<F?(n.Cartesian3.clone(q,t.center),t.radius=M):(n.Cartesian3.clone(k,t.center),t.radius=F),t};const R=new p,T=new n.Cartesian3,q=new n.Cartesian3,z=new n.Cartographic,M=new n.Cartographic;g.fromRectangle2D=function(e,t,n){return g.fromRectangleWithHeights2D(e,t,0,0,n)},g.fromRectangleWithHeights2D=function(e,t,o,s,a){if(r.defined(a)||(a=new g),!r.defined(e))return a.center=n.Cartesian3.clone(n.Cartesian3.ZERO,a.center),a.radius=0,a;t=r.defaultValue(t,R),i.Rectangle.southwest(e,z),z.height=o,i.Rectangle.northeast(e,M),M.height=s;const u=t.project(z,T),c=t.project(M,q),l=c.x-u.x,d=c.y-u.y,f=c.z-u.z;a.radius=.5*Math.sqrt(l*l+d*d+f*f);const p=a.center;return p.x=u.x+.5*l,p.y=u.y+.5*d,p.z=u.z+.5*f,a};const D=[];g.fromRectangle3D=function(e,t,o,s){if(t=r.defaultValue(t,n.Ellipsoid.WGS84),o=r.defaultValue(o,0),r.defined(s)||(s=new g),!r.defined(e))return s.center=n.Cartesian3.clone(n.Cartesian3.ZERO,s.center),s.radius=0,s;const a=i.Rectangle.subsample(e,t,o,D);return g.fromPoints(a,s)},g.fromVertices=function(e,t,o,i){if(r.defined(i)||(i=new g),!r.defined(e)||0===e.length)return i.center=n.Cartesian3.clone(n.Cartesian3.ZERO,i.center),i.radius=0,i;t=r.defaultValue(t,n.Cartesian3.ZERO),o=r.defaultValue(o,3);const s=x;s.x=e[0]+t.x,s.y=e[1]+t.y,s.z=e[2]+t.z;const a=n.Cartesian3.clone(s,y),u=n.Cartesian3.clone(s,v),c=n.Cartesian3.clone(s,w),l=n.Cartesian3.clone(s,C),d=n.Cartesian3.clone(s,_),f=n.Cartesian3.clone(s,b),p=e.length;let h;for(h=0;h<p;h+=o){const r=e[h]+t.x,o=e[h+1]+t.y,i=e[h+2]+t.z;s.x=r,s.y=o,s.z=i,r<a.x&&n.Cartesian3.clone(s,a),r>l.x&&n.Cartesian3.clone(s,l),o<u.y&&n.Cartesian3.clone(s,u),o>d.y&&n.Cartesian3.clone(s,d),i<c.z&&n.Cartesian3.clone(s,c),i>f.z&&n.Cartesian3.clone(s,f)}const m=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(l,a,S)),P=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(d,u,S)),R=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(f,c,S));let T=a,q=l,z=m;P>z&&(z=P,T=u,q=d),R>z&&(z=R,T=c,q=f);const M=A;M.x=.5*(T.x+q.x),M.y=.5*(T.y+q.y),M.z=.5*(T.z+q.z);let D=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(q,M,S)),U=Math.sqrt(D);const k=E;k.x=a.x,k.y=u.y,k.z=c.z;const F=O;F.x=l.x,F.y=d.y,F.z=f.z;const N=n.Cartesian3.midpoint(k,F,I);let j=0;for(h=0;h<p;h+=o){s.x=e[h]+t.x,s.y=e[h+1]+t.y,s.z=e[h+2]+t.z;const r=n.Cartesian3.magnitude(n.Cartesian3.subtract(s,N,S));r>j&&(j=r);const o=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(s,M,S));if(o>D){const e=Math.sqrt(o);U=.5*(U+e),D=U*U;const t=e-U;M.x=(U*M.x+t*s.x)/e,M.y=(U*M.y+t*s.y)/e,M.z=(U*M.z+t*s.z)/e}}return U<j?(n.Cartesian3.clone(M,i.center),i.radius=U):(n.Cartesian3.clone(N,i.center),i.radius=j),i},g.fromEncodedCartesianVertices=function(e,t,o){if(r.defined(o)||(o=new g),!r.defined(e)||!r.defined(t)||e.length!==t.length||0===e.length)return o.center=n.Cartesian3.clone(n.Cartesian3.ZERO,o.center),o.radius=0,o;const i=x;i.x=e[0]+t[0],i.y=e[1]+t[1],i.z=e[2]+t[2];const s=n.Cartesian3.clone(i,y),a=n.Cartesian3.clone(i,v),u=n.Cartesian3.clone(i,w),c=n.Cartesian3.clone(i,C),l=n.Cartesian3.clone(i,_),d=n.Cartesian3.clone(i,b),f=e.length;let p;for(p=0;p<f;p+=3){const r=e[p]+t[p],o=e[p+1]+t[p+1],f=e[p+2]+t[p+2];i.x=r,i.y=o,i.z=f,r<s.x&&n.Cartesian3.clone(i,s),r>c.x&&n.Cartesian3.clone(i,c),o<a.y&&n.Cartesian3.clone(i,a),o>l.y&&n.Cartesian3.clone(i,l),f<u.z&&n.Cartesian3.clone(i,u),f>d.z&&n.Cartesian3.clone(i,d)}const h=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(c,s,S)),m=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(l,a,S)),P=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(d,u,S));let R=s,T=c,q=h;m>q&&(q=m,R=a,T=l),P>q&&(q=P,R=u,T=d);const z=A;z.x=.5*(R.x+T.x),z.y=.5*(R.y+T.y),z.z=.5*(R.z+T.z);let M=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(T,z,S)),D=Math.sqrt(M);const U=E;U.x=s.x,U.y=a.y,U.z=u.z;const k=O;k.x=c.x,k.y=l.y,k.z=d.z;const F=n.Cartesian3.midpoint(U,k,I);let N=0;for(p=0;p<f;p+=3){i.x=e[p]+t[p],i.y=e[p+1]+t[p+1],i.z=e[p+2]+t[p+2];const r=n.Cartesian3.magnitude(n.Cartesian3.subtract(i,F,S));r>N&&(N=r);const o=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(i,z,S));if(o>M){const e=Math.sqrt(o);D=.5*(D+e),M=D*D;const t=e-D;z.x=(D*z.x+t*i.x)/e,z.y=(D*z.y+t*i.y)/e,z.z=(D*z.z+t*i.z)/e}}return D<N?(n.Cartesian3.clone(z,o.center),o.radius=D):(n.Cartesian3.clone(F,o.center),o.radius=N),o},g.fromCornerPoints=function(e,t,o){r.defined(o)||(o=new g);const i=n.Cartesian3.midpoint(e,t,o.center);return o.radius=n.Cartesian3.distance(i,t),o},g.fromEllipsoid=function(e,t){return r.defined(t)||(t=new g),n.Cartesian3.clone(n.Cartesian3.ZERO,t.center),t.radius=e.maximumRadius,t};const U=new n.Cartesian3;g.fromBoundingSpheres=function(e,t){if(r.defined(t)||(t=new g),!r.defined(e)||0===e.length)return t.center=n.Cartesian3.clone(n.Cartesian3.ZERO,t.center),t.radius=0,t;const o=e.length;if(1===o)return g.clone(e[0],t);if(2===o)return g.union(e[0],e[1],t);const i=[];let s;for(s=0;s<o;s++)i.push(e[s].center);const a=(t=g.fromPoints(i,t)).center;let u=t.radius;for(s=0;s<o;s++){const t=e[s];u=Math.max(u,n.Cartesian3.distance(a,t.center,U)+t.radius)}return t.radius=u,t};const k=new n.Cartesian3,F=new n.Cartesian3,N=new n.Cartesian3;g.fromOrientedBoundingBox=function(e,t){r.defined(t)||(t=new g);const o=e.halfAxes,i=n.Matrix3.getColumn(o,0,k),s=n.Matrix3.getColumn(o,1,F),a=n.Matrix3.getColumn(o,2,N);return n.Cartesian3.add(i,s,i),n.Cartesian3.add(i,a,i),t.center=n.Cartesian3.clone(e.center,t.center),t.radius=n.Cartesian3.magnitude(i),t};const j=new n.Cartesian3,B=new n.Cartesian3;g.fromTransformation=function(e,t){r.defined(t)||(t=new g);const o=i.Matrix4.getTranslation(e,j),s=i.Matrix4.getScale(e,B),a=.5*n.Cartesian3.magnitude(s);return t.center=n.Cartesian3.clone(o,t.center),t.radius=a,t},g.clone=function(e,t){if(r.defined(e))return r.defined(t)?(t.center=n.Cartesian3.clone(e.center,t.center),t.radius=e.radius,t):new g(e.center,e.radius)},g.packedLength=4,g.pack=function(e,t,n){n=r.defaultValue(n,0);const o=e.center;return t[n++]=o.x,t[n++]=o.y,t[n++]=o.z,t[n]=e.radius,t},g.unpack=function(e,t,n){t=r.defaultValue(t,0),r.defined(n)||(n=new g);const o=n.center;return o.x=e[t++],o.y=e[t++],o.z=e[t++],n.radius=e[t],n};const V=new n.Cartesian3,$=new n.Cartesian3;g.union=function(e,t,o){r.defined(o)||(o=new g);const i=e.center,s=e.radius,a=t.center,u=t.radius,c=n.Cartesian3.subtract(a,i,V),l=n.Cartesian3.magnitude(c);if(s>=l+u)return e.clone(o),o;if(u>=l+s)return t.clone(o),o;const d=.5*(s+l+u),f=n.Cartesian3.multiplyByScalar(c,(-s+d)/l,$);return n.Cartesian3.add(f,i,f),n.Cartesian3.clone(f,o.center),o.radius=d,o};const L=new n.Cartesian3;g.expand=function(e,t,r){r=g.clone(e,r);const o=n.Cartesian3.magnitude(n.Cartesian3.subtract(t,r.center,L));return o>r.radius&&(r.radius=o),r},g.intersectPlane=function(e,t){const r=e.center,o=e.radius,i=t.normal,s=n.Cartesian3.dot(i,r)+t.distance;return s<-o?h.OUTSIDE:s<o?h.INTERSECTING:h.INSIDE},g.transform=function(e,t,n){return r.defined(n)||(n=new g),n.center=i.Matrix4.multiplyByPoint(t,e.center,n.center),n.radius=i.Matrix4.getMaximumScale(t)*e.radius,n};const Q=new n.Cartesian3;g.distanceSquaredTo=function(e,t){const r=n.Cartesian3.subtract(e.center,t,Q),o=n.Cartesian3.magnitude(r)-e.radius;return o<=0?0:o*o},g.transformWithoutScale=function(e,t,n){return r.defined(n)||(n=new g),n.center=i.Matrix4.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};const W=new n.Cartesian3;g.computePlaneDistances=function(e,t,o,i){r.defined(i)||(i=new m);const s=n.Cartesian3.subtract(e.center,t,W),a=n.Cartesian3.dot(o,s);return i.start=a-e.radius,i.stop=a+e.radius,i};const H=new n.Cartesian3,Y=new n.Cartesian3,Z=new n.Cartesian3,G=new n.Cartesian3,J=new n.Cartesian3,X=new n.Cartographic,K=new Array(8);for(let e=0;e<8;++e)K[e]=new n.Cartesian3;const ee=new p;let te;g.projectTo2D=function(e,t,o){const i=(t=r.defaultValue(t,ee)).ellipsoid;let s=e.center;const a=e.radius;let u;u=n.Cartesian3.equals(s,n.Cartesian3.ZERO)?n.Cartesian3.clone(n.Cartesian3.UNIT_X,H):i.geodeticSurfaceNormal(s,H);const c=n.Cartesian3.cross(n.Cartesian3.UNIT_Z,u,Y);n.Cartesian3.normalize(c,c);const l=n.Cartesian3.cross(u,c,Z);n.Cartesian3.normalize(l,l),n.Cartesian3.multiplyByScalar(u,a,u),n.Cartesian3.multiplyByScalar(l,a,l),n.Cartesian3.multiplyByScalar(c,a,c);const d=n.Cartesian3.negate(l,J),f=n.Cartesian3.negate(c,G),p=K;let h=p[0];n.Cartesian3.add(u,l,h),n.Cartesian3.add(h,c,h),h=p[1],n.Cartesian3.add(u,l,h),n.Cartesian3.add(h,f,h),h=p[2],n.Cartesian3.add(u,d,h),n.Cartesian3.add(h,f,h),h=p[3],n.Cartesian3.add(u,d,h),n.Cartesian3.add(h,c,h),n.Cartesian3.negate(u,u),h=p[4],n.Cartesian3.add(u,l,h),n.Cartesian3.add(h,c,h),h=p[5],n.Cartesian3.add(u,l,h),n.Cartesian3.add(h,f,h),h=p[6],n.Cartesian3.add(u,d,h),n.Cartesian3.add(h,f,h),h=p[7],n.Cartesian3.add(u,d,h),n.Cartesian3.add(h,c,h);const m=p.length;for(let e=0;e<m;++e){const r=p[e];n.Cartesian3.add(s,r,r);const o=i.cartesianToCartographic(r,X);t.project(o,r)}s=(o=g.fromPoints(p,o)).center;const y=s.x,v=s.y,w=s.z;return s.x=w,s.y=y,s.z=v,o},g.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},g.equals=function(e,t){return e===t||r.defined(e)&&r.defined(t)&&n.Cartesian3.equals(e.center,t.center)&&e.radius===t.radius},g.prototype.intersectPlane=function(e){return g.intersectPlane(this,e)},g.prototype.distanceSquaredTo=function(e){return g.distanceSquaredTo(this,e)},g.prototype.computePlaneDistances=function(e,t,n){return g.computePlaneDistances(this,e,t,n)},g.prototype.isOccluded=function(e){return g.isOccluded(this,e)},g.prototype.equals=function(e){return g.equals(this,e)},g.prototype.clone=function(e){return g.clone(this,e)},g.prototype.volume=function(){const e=this.radius;return P*e*e*e};const ne={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},re={};Object.defineProperties(re,{element:{get:function(){if(re.supportsFullscreen())return document[ne.fullscreenElement]}},changeEventName:{get:function(){if(re.supportsFullscreen())return ne.fullscreenchange}},errorEventName:{get:function(){if(re.supportsFullscreen())return ne.fullscreenerror}},enabled:{get:function(){if(re.supportsFullscreen())return document[ne.fullscreenEnabled]}},fullscreen:{get:function(){if(re.supportsFullscreen())return null!==re.element}}}),re.supportsFullscreen=function(){if(r.defined(te))return te;te=!1;const e=document.body;if("function"==typeof e.requestFullscreen)return ne.requestFullscreen="requestFullscreen",ne.exitFullscreen="exitFullscreen",ne.fullscreenEnabled="fullscreenEnabled",ne.fullscreenElement="fullscreenElement",ne.fullscreenchange="fullscreenchange",ne.fullscreenerror="fullscreenerror",te=!0,te;const t=["webkit","moz","o","ms","khtml"];let n;for(let r=0,o=t.length;r<o;++r){const o=t[r];n=`${o}RequestFullscreen`,"function"==typeof e[n]?(ne.requestFullscreen=n,te=!0):(n=`${o}RequestFullScreen`,"function"==typeof e[n]&&(ne.requestFullscreen=n,te=!0)),n=`${o}ExitFullscreen`,"function"==typeof document[n]?ne.exitFullscreen=n:(n=`${o}CancelFullScreen`,"function"==typeof document[n]&&(ne.exitFullscreen=n)),n=`${o}FullscreenEnabled`,void 0!==document[n]?ne.fullscreenEnabled=n:(n=`${o}FullScreenEnabled`,void 0!==document[n]&&(ne.fullscreenEnabled=n)),n=`${o}FullscreenElement`,void 0!==document[n]?ne.fullscreenElement=n:(n=`${o}FullScreenElement`,void 0!==document[n]&&(ne.fullscreenElement=n)),n=`${o}fullscreenchange`,void 0!==document[`on${n}`]&&("ms"===o&&(n="MSFullscreenChange"),ne.fullscreenchange=n),n=`${o}fullscreenerror`,void 0!==document[`on${n}`]&&("ms"===o&&(n="MSFullscreenError"),ne.fullscreenerror=n)}return te},re.requestFullscreen=function(e,t){re.supportsFullscreen()&&e[ne.requestFullscreen]({vrDisplay:t})},re.exitFullscreen=function(){re.supportsFullscreen()&&document[ne.exitFullscreen]()},re._names=ne;var oe=re;let ie,se,ae,ue,ce,le,de,fe,pe,he,me,ge,ye,ve,we,Ce,_e,be;function xe(e){const t=e.split(".");for(let e=0,n=t.length;e<n;++e)t[e]=parseInt(t[e],10);return t}function Se(){if(!r.defined(se)&&(se=!1,!Ie())){const e=/ Chrome\/([\.0-9]+)/.exec(ie.userAgent);null!==e&&(se=!0,ae=xe(e[1]))}return se}function Ae(){if(!r.defined(ue)&&(ue=!1,!Se()&&!Ie()&&/ Safari\/[\.0-9]+/.test(ie.userAgent))){const e=/ Version\/([\.0-9]+)/.exec(ie.userAgent);null!==e&&(ue=!0,ce=xe(e[1]))}return ue}function Ee(){if(!r.defined(le)){le=!1;const e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(ie.userAgent);null!==e&&(le=!0,de=xe(e[1]),de.isNightly=!!e[2])}return le}function Oe(){if(!r.defined(fe)){let e;fe=!1,"Microsoft Internet Explorer"===ie.appName?(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(ie.userAgent),null!==e&&(fe=!0,pe=xe(e[1]))):"Netscape"===ie.appName&&(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(ie.userAgent),null!==e&&(fe=!0,pe=xe(e[1])))}return fe}function Ie(){if(!r.defined(he)){he=!1;const e=/ Edg\/([\.0-9]+)/.exec(ie.userAgent);null!==e&&(he=!0,me=xe(e[1]))}return he}function Pe(){if(!r.defined(ge)){ge=!1;const e=/Firefox\/([\.0-9]+)/.exec(ie.userAgent);null!==e&&(ge=!0,ye=xe(e[1]))}return ge}function Re(){if(!r.defined(be)){const e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");const t=e.style.imageRendering;be=r.defined(t)&&""!==t,be&&(_e=t)}return be}function Te(){return Te._result}ie="undefined"!=typeof navigator?navigator:{},Te._promise=void 0,Te._result=void 0,Te.initialize=function(){return r.defined(Te._promise)||(Te._promise=new Promise((e=>{const t=new Image;t.onload=function(){Te._result=t.width>0&&t.height>0,e(Te._result)},t.onerror=function(){Te._result=!1,e(Te._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"}))),Te._promise},Object.defineProperties(Te,{initialized:{get:function(){return r.defined(Te._result)}}});const qe=[];"undefined"!=typeof ArrayBuffer&&(qe.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&qe.push(Uint8ClampedArray),"undefined"!=typeof Uint8ClampedArray&&qe.push(Uint8ClampedArray),"undefined"!=typeof BigInt64Array&&qe.push(BigInt64Array),"undefined"!=typeof BigUint64Array&&qe.push(BigUint64Array));const ze={isChrome:Se,chromeVersion:function(){return Se()&&ae},isSafari:Ae,safariVersion:function(){return Ae()&&ce},isWebkit:Ee,webkitVersion:function(){return Ee()&&de},isInternetExplorer:Oe,internetExplorerVersion:function(){return Oe()&&pe},isEdge:Ie,edgeVersion:function(){return Ie()&&me},isFirefox:Pe,firefoxVersion:function(){return Pe()&&ye},isWindows:function(){return r.defined(ve)||(ve=/Windows/i.test(ie.appVersion)),ve},isIPadOrIOS:function(){return r.defined(we)||(we="iPhone"===navigator.platform||"iPod"===navigator.platform||"iPad"===navigator.platform),we},hardwareConcurrency:r.defaultValue(ie.hardwareConcurrency,3),supportsPointerEvents:function(){return r.defined(Ce)||(Ce=!Pe()&&"undefined"!=typeof PointerEvent&&(!r.defined(ie.pointerEnabled)||ie.pointerEnabled)),Ce},supportsImageRenderingPixelated:Re,supportsWebP:Te,imageRenderingValue:function(){return Re()?_e:void 0},typedArrayTypes:qe,supportsBasis:function(e){return ze.supportsWebAssembly()&&e.context.supportsBasis},supportsFullscreen:function(){return oe.supportsFullscreen()},supportsTypedArrays:function(){return"undefined"!=typeof ArrayBuffer},supportsBigInt64Array:function(){return"undefined"!=typeof BigInt64Array},supportsBigUint64Array:function(){return"undefined"!=typeof BigUint64Array},supportsBigInt:function(){return"undefined"!=typeof BigInt},supportsWebWorkers:function(){return"undefined"!=typeof Worker},supportsWebAssembly:function(){return"undefined"!=typeof WebAssembly},supportsWebgl2:function(e){return e.context.webgl2}};var Me=ze;function De(e,t,n,o){this.x=r.defaultValue(e,0),this.y=r.defaultValue(t,0),this.z=r.defaultValue(n,0),this.w=r.defaultValue(o,0)}let Ue=new n.Cartesian3;De.fromAxisAngle=function(e,t,o){const i=t/2,s=Math.sin(i);Ue=n.Cartesian3.normalize(e,Ue);const a=Ue.x*s,u=Ue.y*s,c=Ue.z*s,l=Math.cos(i);return r.defined(o)?(o.x=a,o.y=u,o.z=c,o.w=l,o):new De(a,u,c,l)};const ke=[1,2,0],Fe=new Array(3);De.fromRotationMatrix=function(e,t){let o,i,s,a,u;const c=e[n.Matrix3.COLUMN0ROW0],l=e[n.Matrix3.COLUMN1ROW1],d=e[n.Matrix3.COLUMN2ROW2],f=c+l+d;if(f>0)o=Math.sqrt(f+1),u=.5*o,o=.5/o,i=(e[n.Matrix3.COLUMN1ROW2]-e[n.Matrix3.COLUMN2ROW1])*o,s=(e[n.Matrix3.COLUMN2ROW0]-e[n.Matrix3.COLUMN0ROW2])*o,a=(e[n.Matrix3.COLUMN0ROW1]-e[n.Matrix3.COLUMN1ROW0])*o;else{const t=ke;let r=0;l>c&&(r=1),d>c&&d>l&&(r=2);const f=t[r],p=t[f];o=Math.sqrt(e[n.Matrix3.getElementIndex(r,r)]-e[n.Matrix3.getElementIndex(f,f)]-e[n.Matrix3.getElementIndex(p,p)]+1);const h=Fe;h[r]=.5*o,o=.5/o,u=(e[n.Matrix3.getElementIndex(p,f)]-e[n.Matrix3.getElementIndex(f,p)])*o,h[f]=(e[n.Matrix3.getElementIndex(f,r)]+e[n.Matrix3.getElementIndex(r,f)])*o,h[p]=(e[n.Matrix3.getElementIndex(p,r)]+e[n.Matrix3.getElementIndex(r,p)])*o,i=-h[0],s=-h[1],a=-h[2]}return r.defined(t)?(t.x=i,t.y=s,t.z=a,t.w=u,t):new De(i,s,a,u)};const Ne=new De;let je=new De,Be=new De,Ve=new De;De.fromHeadingPitchRoll=function(e,t){return Ve=De.fromAxisAngle(n.Cartesian3.UNIT_X,e.roll,Ne),Be=De.fromAxisAngle(n.Cartesian3.UNIT_Y,-e.pitch,t),t=De.multiply(Be,Ve,Be),je=De.fromAxisAngle(n.Cartesian3.UNIT_Z,-e.heading,Ne),De.multiply(je,t,t)};const $e=new n.Cartesian3,Le=new n.Cartesian3,Qe=new De,We=new De,He=new De;De.packedLength=4,De.pack=function(e,t,n){return n=r.defaultValue(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},De.unpack=function(e,t,n){return t=r.defaultValue(t,0),r.defined(n)||(n=new De),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n},De.packedInterpolationLength=3,De.convertPackedArrayForInterpolation=function(e,t,n,o){De.unpack(e,4*n,He),De.conjugate(He,He);for(let i=0,s=n-t+1;i<s;i++){const n=3*i;De.unpack(e,4*(t+i),Qe),De.multiply(Qe,He,Qe),Qe.w<0&&De.negate(Qe,Qe),De.computeAxis(Qe,$e);const s=De.computeAngle(Qe);r.defined(o)||(o=[]),o[n]=$e.x*s,o[n+1]=$e.y*s,o[n+2]=$e.z*s}},De.unpackInterpolationResult=function(e,t,o,i,s){r.defined(s)||(s=new De),n.Cartesian3.fromArray(e,0,Le);const a=n.Cartesian3.magnitude(Le);return De.unpack(t,4*i,We),0===a?De.clone(De.IDENTITY,Qe):De.fromAxisAngle(Le,a,Qe),De.multiply(Qe,We,s)},De.clone=function(e,t){if(r.defined(e))return r.defined(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new De(e.x,e.y,e.z,e.w)},De.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},De.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},De.magnitude=function(e){return Math.sqrt(De.magnitudeSquared(e))},De.normalize=function(e,t){const n=1/De.magnitude(e),r=e.x*n,o=e.y*n,i=e.z*n,s=e.w*n;return t.x=r,t.y=o,t.z=i,t.w=s,t},De.inverse=function(e,t){const n=De.magnitudeSquared(e);return t=De.conjugate(e,t),De.multiplyByScalar(t,1/n,t)},De.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},De.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},De.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},De.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},De.multiply=function(e,t,n){const r=e.x,o=e.y,i=e.z,s=e.w,a=t.x,u=t.y,c=t.z,l=t.w,d=s*a+r*l+o*c-i*u,f=s*u-r*c+o*l+i*a,p=s*c+r*u-o*a+i*l,h=s*l-r*a-o*u-i*c;return n.x=d,n.y=f,n.z=p,n.w=h,n},De.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},De.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},De.computeAxis=function(e,t){const n=e.w;if(Math.abs(n-1)<o.CesiumMath.EPSILON6)return t.x=t.y=t.z=0,t;const r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},De.computeAngle=function(e){return Math.abs(e.w-1)<o.CesiumMath.EPSILON6?0:2*Math.acos(e.w)};let Ye=new De;De.lerp=function(e,t,n,r){return Ye=De.multiplyByScalar(t,n,Ye),r=De.multiplyByScalar(e,1-n,r),De.add(Ye,r,r)};let Ze=new De,Ge=new De,Je=new De;De.slerp=function(e,t,n,r){let i=De.dot(e,t),s=t;if(i<0&&(i=-i,s=Ze=De.negate(t,Ze)),1-i<o.CesiumMath.EPSILON6)return De.lerp(e,s,n,r);const a=Math.acos(i);return Ge=De.multiplyByScalar(e,Math.sin((1-n)*a),Ge),Je=De.multiplyByScalar(s,Math.sin(n*a),Je),r=De.add(Ge,Je,r),De.multiplyByScalar(r,1/Math.sin(a),r)},De.log=function(e,t){const r=o.CesiumMath.acosClamped(e.w);let i=0;return 0!==r&&(i=r/Math.sin(r)),n.Cartesian3.multiplyByScalar(e,i,t)},De.exp=function(e,t){const r=n.Cartesian3.magnitude(e);let o=0;return 0!==r&&(o=Math.sin(r)/r),t.x=e.x*o,t.y=e.y*o,t.z=e.z*o,t.w=Math.cos(r),t};const Xe=new n.Cartesian3,Ke=new n.Cartesian3,et=new De,tt=new De;De.computeInnerQuadrangle=function(e,t,r,o){const i=De.conjugate(t,et);De.multiply(i,r,tt);const s=De.log(tt,Xe);De.multiply(i,e,tt);const a=De.log(tt,Ke);return n.Cartesian3.add(s,a,s),n.Cartesian3.multiplyByScalar(s,.25,s),n.Cartesian3.negate(s,s),De.exp(s,et),De.multiply(t,et,o)},De.squad=function(e,t,n,r,o,i){const s=De.slerp(e,t,o,et),a=De.slerp(n,r,o,tt);return De.slerp(s,a,2*o*(1-o),i)};const nt=new De,rt=1.9011074535173003,ot=Me.supportsTypedArrays()?new Float32Array(8):[],it=Me.supportsTypedArrays()?new Float32Array(8):[],st=Me.supportsTypedArrays()?new Float32Array(8):[],at=Me.supportsTypedArrays()?new Float32Array(8):[];for(let e=0;e<7;++e){const t=e+1,n=2*t+1;ot[e]=1/(t*n),it[e]=t/n}function ut(e,t,n){let r,o,i=0,s=e.length-1;for(;i<=s;)if(r=~~((i+s)/2),o=n(e[r],t),o<0)i=r+1;else{if(!(o>0))return r;s=r-1}return~(s+1)}function ct(e,t,n,r,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=o}function lt(e,t,n,r,o,i,s,a){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=o,this.second=i,this.millisecond=s,this.isLeapSecond=a}function dt(e){return e%4==0&&e%100!=0||e%400==0}function ft(e,t){this.julianDate=e,this.offset=t}ot[7]=rt/136,it[7]=8*rt/17,De.fastSlerp=function(e,t,n,r){let o,i=De.dot(e,t);i>=0?o=1:(o=-1,i=-i);const s=i-1,a=1-n,u=n*n,c=a*a;for(let e=7;e>=0;--e)st[e]=(ot[e]*u-it[e])*s,at[e]=(ot[e]*c-it[e])*s;const l=o*n*(1+st[0]*(1+st[1]*(1+st[2]*(1+st[3]*(1+st[4]*(1+st[5]*(1+st[6]*(1+st[7])))))))),d=a*(1+at[0]*(1+at[1]*(1+at[2]*(1+at[3]*(1+at[4]*(1+at[5]*(1+at[6]*(1+at[7])))))))),f=De.multiplyByScalar(e,d,nt);return De.multiplyByScalar(t,l,r),De.add(f,r,r)},De.fastSquad=function(e,t,n,r,o,i){const s=De.fastSlerp(e,t,o,et),a=De.fastSlerp(n,r,o,tt);return De.fastSlerp(s,a,2*o*(1-o),i)},De.equals=function(e,t){return e===t||r.defined(e)&&r.defined(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},De.equalsEpsilon=function(e,t,n){return n=r.defaultValue(n,0),e===t||r.defined(e)&&r.defined(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},De.ZERO=Object.freeze(new De(0,0,0,0)),De.IDENTITY=Object.freeze(new De(0,0,0,1)),De.prototype.clone=function(e){return De.clone(this,e)},De.prototype.equals=function(e){return De.equals(this,e)},De.prototype.equalsEpsilon=function(e,t){return De.equalsEpsilon(this,e,t)},De.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var pt=Object.freeze({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5});var ht=Object.freeze({UTC:0,TAI:1});const mt=new lt,gt=[31,28,31,30,31,30,31,31,30,31,30,31];function yt(e,t){return qt.compare(e.julianDate,t.julianDate)}const vt=new ft;function wt(e){vt.julianDate=e;const t=qt.leapSeconds;let n=ut(t,vt,yt);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let r=t[n].offset;if(n>0){qt.secondsDifference(t[n].julianDate,e)>r&&(n--,r=t[n].offset)}qt.addSeconds(e,r,e)}function Ct(e,t){vt.julianDate=e;const n=qt.leapSeconds;let r=ut(n,vt,yt);if(r<0&&(r=~r),0===r)return qt.addSeconds(e,-n[0].offset,t);if(r>=n.length)return qt.addSeconds(e,-n[r-1].offset,t);const o=qt.secondsDifference(n[r].julianDate,e);return 0===o?qt.addSeconds(e,-n[r].offset,t):o<=1?void 0:qt.addSeconds(e,-n[--r].offset,t)}function _t(e,t,n){const r=t/pt.SECONDS_PER_DAY|0;return e+=r,(t-=pt.SECONDS_PER_DAY*r)<0&&(e--,t+=pt.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function bt(e,t,n,r,o,i,s){const a=(t-14)/12|0,u=e+4800+a;let c=(1461*u/4|0)+(367*(t-2-12*a)/12|0)-(3*((u+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);const l=i+(r*pt.SECONDS_PER_HOUR+o*pt.SECONDS_PER_MINUTE+s*pt.SECONDS_PER_MILLISECOND);return l>=43200&&(c-=1),[c,l]}const xt=/^(\d{4})$/,St=/^(\d{4})-(\d{2})$/,At=/^(\d{4})-?(\d{3})$/,Et=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,Ot=/^(\d{4})-?(\d{2})-?(\d{2})$/,It=/([Z+\-])?(\d{2})?:?(\d{2})?$/,Pt=/^(\d{2})(\.\d+)?/.source+It.source,Rt=/^(\d{2}):?(\d{2})(\.\d+)?/.source+It.source,Tt=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+It.source;function qt(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r.defaultValue(e,0),t=r.defaultValue(t,0),n=r.defaultValue(n,ht.UTC);const o=0|e;_t(o,t+=(e-o)*pt.SECONDS_PER_DAY,this),n===ht.UTC&&wt(this)}qt.fromGregorianDate=function(e,t){const n=bt(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r.defined(t)?(_t(n[0],n[1],t),wt(t),t):new qt(n[0],n[1],ht.UTC)},qt.fromDate=function(e,t){const n=bt(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r.defined(t)?(_t(n[0],n[1],t),wt(t),t):new qt(n[0],n[1],ht.UTC)},qt.fromIso8601=function(e,t){let n,o=(e=e.replace(",",".")).split("T"),i=1,s=1,a=0,u=0,c=0,l=0;const d=o[0],f=o[1];let p,h,m;if(o=d.match(Ot),null!==o)n=+o[1],i=+o[2],s=+o[3];else if(o=d.match(St),null!==o)n=+o[1],i=+o[2];else if(o=d.match(xt),null!==o)n=+o[1];else{let e;if(o=d.match(At),null!==o)n=+o[1],e=+o[2],h=dt(n);else if(o=d.match(Et),null!==o){n=+o[1];e=7*+o[2]+(+o[3]||0)-new Date(Date.UTC(n,0,4)).getUTCDay()-3}p=new Date(Date.UTC(n,0,1)),p.setUTCDate(e),i=p.getUTCMonth()+1,s=p.getUTCDate()}if(h=dt(n),r.defined(f)){o=f.match(Tt),null!==o?(a=+o[1],u=+o[2],c=+o[3],l=1e3*+(o[4]||0),m=5):(o=f.match(Rt),null!==o?(a=+o[1],u=+o[2],c=60*+(o[3]||0),m=4):(o=f.match(Pt),null!==o&&(a=+o[1],u=60*+(o[2]||0),m=3)));const e=o[m],t=+o[m+1],r=+(o[m+2]||0);switch(e){case"+":a-=t,u-=r;break;case"-":a+=t,u+=r;break;case"Z":break;default:u+=new Date(Date.UTC(n,i-1,s,a,u)).getTimezoneOffset()}}const g=60===c;for(g&&c--;u>=60;)u-=60,a++;for(;a>=24;)a-=24,s++;for(p=h&&2===i?29:gt[i-1];s>p;)s-=p,i++,i>12&&(i-=12,n++),p=h&&2===i?29:gt[i-1];for(;u<0;)u+=60,a--;for(;a<0;)a+=24,s--;for(;s<1;)i--,i<1&&(i+=12,n--),p=h&&2===i?29:gt[i-1],s+=p;const y=bt(n,i,s,a,u,c,l);return r.defined(t)?(_t(y[0],y[1],t),wt(t)):t=new qt(y[0],y[1],ht.UTC),g&&qt.addSeconds(t,1,t),t},qt.now=function(e){return qt.fromDate(new Date,e)};const zt=new qt(0,0,ht.TAI);qt.toGregorianDate=function(e,t){let n=!1,o=Ct(e,zt);r.defined(o)||(qt.addSeconds(e,-1,zt),o=Ct(zt,zt),n=!0);let i=o.dayNumber;const s=o.secondsOfDay;s>=43200&&(i+=1);let a=i+68569|0;const u=4*a/146097|0;a=a-((146097*u+3)/4|0)|0;const c=4e3*(a+1)/1461001|0;a=a-(1461*c/4|0)+31|0;const l=80*a/2447|0,d=a-(2447*l/80|0)|0;a=l/11|0;const f=l+2-12*a|0,p=100*(u-49)+c+a|0;let h=s/pt.SECONDS_PER_HOUR|0,m=s-h*pt.SECONDS_PER_HOUR;const g=m/pt.SECONDS_PER_MINUTE|0;m-=g*pt.SECONDS_PER_MINUTE;let y=0|m;const v=(m-y)/pt.SECONDS_PER_MILLISECOND;return h+=12,h>23&&(h-=24),n&&(y+=1),r.defined(t)?(t.year=p,t.month=f,t.day=d,t.hour=h,t.minute=g,t.second=y,t.millisecond=v,t.isLeapSecond=n,t):new lt(p,f,d,h,g,y,v,n)},qt.toDate=function(e){const t=qt.toGregorianDate(e,mt);let n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},qt.toIso8601=function(e,t){const n=qt.toGregorianDate(e,mt);let o=n.year,i=n.month,s=n.day,a=n.hour;const u=n.minute,c=n.second,l=n.millisecond;let d;return 1e4===o&&1===i&&1===s&&0===a&&0===u&&0===c&&0===l&&(o=9999,i=12,s=31,a=24),r.defined(t)||0===l?r.defined(t)&&0!==t?(d=(.01*l).toFixed(t).replace(".","").slice(0,t),`${o.toString().padStart(4,"0")}-${i.toString().padStart(2,"0")}-${s.toString().padStart(2,"0")}T${a.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${d}Z`):`${o.toString().padStart(4,"0")}-${i.toString().padStart(2,"0")}-${s.toString().padStart(2,"0")}T${a.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}Z`:(d=(.01*l).toString().replace(".",""),`${o.toString().padStart(4,"0")}-${i.toString().padStart(2,"0")}-${s.toString().padStart(2,"0")}T${a.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${d}Z`)},qt.clone=function(e,t){if(r.defined(e))return r.defined(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new qt(e.dayNumber,e.secondsOfDay,ht.TAI)},qt.compare=function(e,t){const n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},qt.equals=function(e,t){return e===t||r.defined(e)&&r.defined(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},qt.equalsEpsilon=function(e,t,n){return n=r.defaultValue(n,0),e===t||r.defined(e)&&r.defined(t)&&Math.abs(qt.secondsDifference(e,t))<=n},qt.totalDays=function(e){return e.dayNumber+e.secondsOfDay/pt.SECONDS_PER_DAY},qt.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*pt.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},qt.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/pt.SECONDS_PER_DAY},qt.computeTaiMinusUtc=function(e){vt.julianDate=e;const t=qt.leapSeconds;let n=ut(t,vt,yt);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset},qt.addSeconds=function(e,t,n){return _t(e.dayNumber,e.secondsOfDay+t,n)},qt.addMinutes=function(e,t,n){const r=e.secondsOfDay+t*pt.SECONDS_PER_MINUTE;return _t(e.dayNumber,r,n)},qt.addHours=function(e,t,n){const r=e.secondsOfDay+t*pt.SECONDS_PER_HOUR;return _t(e.dayNumber,r,n)},qt.addDays=function(e,t,n){return _t(e.dayNumber+t,e.secondsOfDay,n)},qt.lessThan=function(e,t){return qt.compare(e,t)<0},qt.lessThanOrEquals=function(e,t){return qt.compare(e,t)<=0},qt.greaterThan=function(e,t){return qt.compare(e,t)>0},qt.greaterThanOrEquals=function(e,t){return qt.compare(e,t)>=0},qt.prototype.clone=function(e){return qt.clone(this,e)},qt.prototype.equals=function(e){return qt.equals(this,e)},qt.prototype.equalsEpsilon=function(e,t){return qt.equalsEpsilon(this,e,t)},qt.prototype.toString=function(){return qt.toIso8601(this)},qt.leapSeconds=[new ft(new qt(2441317,43210,ht.TAI),10),new ft(new qt(2441499,43211,ht.TAI),11),new ft(new qt(2441683,43212,ht.TAI),12),new ft(new qt(2442048,43213,ht.TAI),13),new ft(new qt(2442413,43214,ht.TAI),14),new ft(new qt(2442778,43215,ht.TAI),15),new ft(new qt(2443144,43216,ht.TAI),16),new ft(new qt(2443509,43217,ht.TAI),17),new ft(new qt(2443874,43218,ht.TAI),18),new ft(new qt(2444239,43219,ht.TAI),19),new ft(new qt(2444786,43220,ht.TAI),20),new ft(new qt(2445151,43221,ht.TAI),21),new ft(new qt(2445516,43222,ht.TAI),22),new ft(new qt(2446247,43223,ht.TAI),23),new ft(new qt(2447161,43224,ht.TAI),24),new ft(new qt(2447892,43225,ht.TAI),25),new ft(new qt(2448257,43226,ht.TAI),26),new ft(new qt(2448804,43227,ht.TAI),27),new ft(new qt(2449169,43228,ht.TAI),28),new ft(new qt(2449534,43229,ht.TAI),29),new ft(new qt(2450083,43230,ht.TAI),30),new ft(new qt(2450630,43231,ht.TAI),31),new ft(new qt(2451179,43232,ht.TAI),32),new ft(new qt(2453736,43233,ht.TAI),33),new ft(new qt(2454832,43234,ht.TAI),34),new ft(new qt(2456109,43235,ht.TAI),35),new ft(new qt(2457204,43236,ht.TAI),36),new ft(new qt(2457754,43237,ht.TAI),37)];var Mt,Dt={exports:{}},Ut={exports:{}};var kt,Ft={exports:{}}; +/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */var Nt,jt,Bt,Vt,$t={exports:{}}; +/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */ +/*! + * URI.js - Mutating URLs + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */ +jt=Dt,Bt=o.commonjsGlobal,Vt=function(e,t,n,r){var o=r&&r.URI;function i(e,t){var n=arguments.length>=1;if(!(this instanceof i))return n?arguments.length>=2?new i(e,t):new i(e):new i;if(void 0===e){if(n)throw new TypeError("undefined is not a valid argument for URI");e="undefined"!=typeof location?location.href+"":""}if(null===e&&n)throw new TypeError("null is not a valid argument for URI");return this.href(e),void 0!==t?this.absoluteTo(t):this}i.version="1.19.11";var s=i.prototype,a=Object.prototype.hasOwnProperty;function u(e){return e.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function c(e){return void 0===e?"Undefined":String(Object.prototype.toString.call(e)).slice(8,-1)}function l(e){return"Array"===c(e)}function d(e,t){var n,r,o={};if("RegExp"===c(t))o=null;else if(l(t))for(n=0,r=t.length;n<r;n++)o[t[n]]=!0;else o[t]=!0;for(n=0,r=e.length;n<r;n++)(o&&void 0!==o[e[n]]||!o&&t.test(e[n]))&&(e.splice(n,1),r--,n--);return e}function f(e,t){var n,r;if(l(t)){for(n=0,r=t.length;n<r;n++)if(!f(e,t[n]))return!1;return!0}var o=c(t);for(n=0,r=e.length;n<r;n++)if("RegExp"===o){if("string"==typeof e[n]&&e[n].match(t))return!0}else if(e[n]===t)return!0;return!1}function p(e,t){if(!l(e)||!l(t))return!1;if(e.length!==t.length)return!1;e.sort(),t.sort();for(var n=0,r=e.length;n<r;n++)if(e[n]!==t[n])return!1;return!0}function h(e){return e.replace(/^\/+|\/+$/g,"")}function m(e){return escape(e)}function g(e){return encodeURIComponent(e).replace(/[!'()*]/g,m).replace(/\*/g,"%2A")}i._parts=function(){return{protocol:null,username:null,password:null,hostname:null,urn:null,port:null,path:null,query:null,fragment:null,preventInvalidHostname:i.preventInvalidHostname,duplicateQueryParameters:i.duplicateQueryParameters,escapeQuerySpace:i.escapeQuerySpace}},i.preventInvalidHostname=!1,i.duplicateQueryParameters=!1,i.escapeQuerySpace=!0,i.protocol_expression=/^[a-z][a-z0-9.+-]*$/i,i.idn_expression=/[^a-z0-9\._-]/i,i.punycode_expression=/(xn--)/i,i.ip4_expression=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,i.ip6_expression=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,i.find_uri_expression=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi,i.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},i.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,i.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,i.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},i.hostProtocols=["http","https"],i.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,i.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},i.getDomAttribute=function(e){if(e&&e.nodeName){var t=e.nodeName.toLowerCase();if("input"!==t||"image"===e.type)return i.domAttributes[t]}},i.encode=g,i.decode=decodeURIComponent,i.iso8859=function(){i.encode=escape,i.decode=unescape},i.unicode=function(){i.encode=g,i.decode=decodeURIComponent},i.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/gi,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/gi,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/gi,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},i.encodeQuery=function(e,t){var n=i.encode(e+"");return void 0===t&&(t=i.escapeQuerySpace),t?n.replace(/%20/g,"+"):n},i.decodeQuery=function(e,t){e+="",void 0===t&&(t=i.escapeQuerySpace);try{return i.decode(t?e.replace(/\+/g,"%20"):e)}catch(t){return e}};var y,v={encode:"encode",decode:"decode"},w=function(e,t){return function(n){try{return i[t](n+"").replace(i.characters[e][t].expression,(function(n){return i.characters[e][t].map[n]}))}catch(e){return n}}};for(y in v)i[y+"PathSegment"]=w("pathname",v[y]),i[y+"UrnPathSegment"]=w("urnpath",v[y]);var C=function(e,t,n){return function(r){var o;o=n?function(e){return i[t](i[n](e))}:i[t];for(var s=(r+"").split(e),a=0,u=s.length;a<u;a++)s[a]=o(s[a]);return s.join(e)}};function _(e){return function(t,n){return void 0===t?this._parts[e]||"":(this._parts[e]=t||null,this.build(!n),this)}}function b(e,t){return function(n,r){return void 0===n?this._parts[e]||"":(null!==n&&(n+="").charAt(0)===t&&(n=n.substring(1)),this._parts[e]=n,this.build(!r),this)}}i.decodePath=C("/","decodePathSegment"),i.decodeUrnPath=C(":","decodeUrnPathSegment"),i.recodePath=C("/","encodePathSegment","decode"),i.recodeUrnPath=C(":","encodeUrnPathSegment","decode"),i.encodeReserved=w("reserved","encode"),i.parse=function(e,t){var n;return t||(t={preventInvalidHostname:i.preventInvalidHostname}),(n=(e=(e=e.replace(i.leading_whitespace_expression,"")).replace(i.ascii_tab_whitespace,"")).indexOf("#"))>-1&&(t.fragment=e.substring(n+1)||null,e=e.substring(0,n)),(n=e.indexOf("?"))>-1&&(t.query=e.substring(n+1)||null,e=e.substring(0,n)),"//"===(e=(e=e.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://")).replace(/^[/\\]{2,}/i,"//")).substring(0,2)?(t.protocol=null,e=e.substring(2),e=i.parseAuthority(e,t)):(n=e.indexOf(":"))>-1&&(t.protocol=e.substring(0,n)||null,t.protocol&&!t.protocol.match(i.protocol_expression)?t.protocol=void 0:"//"===e.substring(n+1,n+3).replace(/\\/g,"/")?(e=e.substring(n+3),e=i.parseAuthority(e,t)):(e=e.substring(n+1),t.urn=!0)),t.path=e,t},i.parseHost=function(e,t){e||(e="");var n,r,o=(e=e.replace(/\\/g,"/")).indexOf("/");if(-1===o&&(o=e.length),"["===e.charAt(0))n=e.indexOf("]"),t.hostname=e.substring(1,n)||null,t.port=e.substring(n+2,o)||null,"/"===t.port&&(t.port=null);else{var s=e.indexOf(":"),a=e.indexOf("/"),u=e.indexOf(":",s+1);-1!==u&&(-1===a||u<a)?(t.hostname=e.substring(0,o)||null,t.port=null):(r=e.substring(0,o).split(":"),t.hostname=r[0]||null,t.port=r[1]||null)}return t.hostname&&"/"!==e.substring(o).charAt(0)&&(o++,e="/"+e),t.preventInvalidHostname&&i.ensureValidHostname(t.hostname,t.protocol),t.port&&i.ensureValidPort(t.port),e.substring(o)||"/"},i.parseAuthority=function(e,t){return e=i.parseUserinfo(e,t),i.parseHost(e,t)},i.parseUserinfo=function(e,t){var n=e;-1!==e.indexOf("\\")&&(e=e.replace(/\\/g,"/"));var r,o=e.indexOf("/"),s=e.lastIndexOf("@",o>-1?o:e.length-1);return s>-1&&(-1===o||s<o)?(r=e.substring(0,s).split(":"),t.username=r[0]?i.decode(r[0]):null,r.shift(),t.password=r[0]?i.decode(r.join(":")):null,e=n.substring(s+1)):(t.username=null,t.password=null),e},i.parseQuery=function(e,t){if(!e)return{};if(!(e=e.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,"")))return{};for(var n,r,o,s={},u=e.split("&"),c=u.length,l=0;l<c;l++)n=u[l].split("="),r=i.decodeQuery(n.shift(),t),o=n.length?i.decodeQuery(n.join("="),t):null,"__proto__"!==r&&(a.call(s,r)?("string"!=typeof s[r]&&null!==s[r]||(s[r]=[s[r]]),s[r].push(o)):s[r]=o);return s},i.build=function(e){var t="",n=!1;return e.protocol&&(t+=e.protocol+":"),e.urn||!t&&!e.hostname||(t+="//",n=!0),t+=i.buildAuthority(e)||"","string"==typeof e.path&&("/"!==e.path.charAt(0)&&n&&(t+="/"),t+=e.path),"string"==typeof e.query&&e.query&&(t+="?"+e.query),"string"==typeof e.fragment&&e.fragment&&(t+="#"+e.fragment),t},i.buildHost=function(e){var t="";return e.hostname?(i.ip6_expression.test(e.hostname)?t+="["+e.hostname+"]":t+=e.hostname,e.port&&(t+=":"+e.port),t):""},i.buildAuthority=function(e){return i.buildUserinfo(e)+i.buildHost(e)},i.buildUserinfo=function(e){var t="";return e.username&&(t+=i.encode(e.username)),e.password&&(t+=":"+i.encode(e.password)),t&&(t+="@"),t},i.buildQuery=function(e,t,n){var r,o,s,u,c="";for(o in e)if("__proto__"!==o&&a.call(e,o))if(l(e[o]))for(r={},s=0,u=e[o].length;s<u;s++)void 0!==e[o][s]&&void 0===r[e[o][s]+""]&&(c+="&"+i.buildQueryParameter(o,e[o][s],n),!0!==t&&(r[e[o][s]+""]=!0));else void 0!==e[o]&&(c+="&"+i.buildQueryParameter(o,e[o],n));return c.substring(1)},i.buildQueryParameter=function(e,t,n){return i.encodeQuery(e,n)+(null!==t?"="+i.encodeQuery(t,n):"")},i.addQuery=function(e,t,n){if("object"==typeof t)for(var r in t)a.call(t,r)&&i.addQuery(e,r,t[r]);else{if("string"!=typeof t)throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");if(void 0===e[t])return void(e[t]=n);"string"==typeof e[t]&&(e[t]=[e[t]]),l(n)||(n=[n]),e[t]=(e[t]||[]).concat(n)}},i.setQuery=function(e,t,n){if("object"==typeof t)for(var r in t)a.call(t,r)&&i.setQuery(e,r,t[r]);else{if("string"!=typeof t)throw new TypeError("URI.setQuery() accepts an object, string as the name parameter");e[t]=void 0===n?null:n}},i.removeQuery=function(e,t,n){var r,o,s;if(l(t))for(r=0,o=t.length;r<o;r++)e[t[r]]=void 0;else if("RegExp"===c(t))for(s in e)t.test(s)&&(e[s]=void 0);else if("object"==typeof t)for(s in t)a.call(t,s)&&i.removeQuery(e,s,t[s]);else{if("string"!=typeof t)throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter");void 0!==n?"RegExp"===c(n)?!l(e[t])&&n.test(e[t])?e[t]=void 0:e[t]=d(e[t],n):e[t]!==String(n)||l(n)&&1!==n.length?l(e[t])&&(e[t]=d(e[t],n)):e[t]=void 0:e[t]=void 0}},i.hasQuery=function(e,t,n,r){switch(c(t)){case"String":break;case"RegExp":for(var o in e)if(a.call(e,o)&&t.test(o)&&(void 0===n||i.hasQuery(e,o,n)))return!0;return!1;case"Object":for(var s in t)if(a.call(t,s)&&!i.hasQuery(e,s,t[s]))return!1;return!0;default:throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter")}switch(c(n)){case"Undefined":return t in e;case"Boolean":return n===Boolean(l(e[t])?e[t].length:e[t]);case"Function":return!!n(e[t],t,e);case"Array":return!!l(e[t])&&(r?f:p)(e[t],n);case"RegExp":return l(e[t])?!!r&&f(e[t],n):Boolean(e[t]&&e[t].match(n));case"Number":n=String(n);case"String":return l(e[t])?!!r&&f(e[t],n):e[t]===n;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter")}},i.joinPaths=function(){for(var e=[],t=[],n=0,r=0;r<arguments.length;r++){var o=new i(arguments[r]);e.push(o);for(var s=o.segment(),a=0;a<s.length;a++)"string"==typeof s[a]&&t.push(s[a]),s[a]&&n++}if(!t.length||!n)return new i("");var u=new i("").segment(t);return""!==e[0].path()&&"/"!==e[0].path().slice(0,1)||u.path("/"+u.path()),u.normalize()},i.commonPath=function(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n<r;n++)if(e.charAt(n)!==t.charAt(n)){n--;break}return n<1?e.charAt(0)===t.charAt(0)&&"/"===e.charAt(0)?"/":"":("/"===e.charAt(n)&&"/"===t.charAt(n)||(n=e.substring(0,n).lastIndexOf("/")),e.substring(0,n+1))},i.withinString=function(e,t,n){n||(n={});var r=n.start||i.findUri.start,o=n.end||i.findUri.end,s=n.trim||i.findUri.trim,a=n.parens||i.findUri.parens,u=/[a-z0-9-]=["']?$/i;for(r.lastIndex=0;;){var c=r.exec(e);if(!c)break;var l=c.index;if(n.ignoreHtml){var d=e.slice(Math.max(l-3,0),l);if(d&&u.test(d))continue}for(var f=l+e.slice(l).search(o),p=e.slice(l,f),h=-1;;){var m=a.exec(p);if(!m)break;var g=m.index+m[0].length;h=Math.max(h,g)}if(!((p=h>-1?p.slice(0,h)+p.slice(h).replace(s,""):p.replace(s,"")).length<=c[0].length||n.ignore&&n.ignore.test(p))){var y=t(p,l,f=l+p.length,e);void 0!==y?(y=String(y),e=e.slice(0,l)+y+e.slice(f),r.lastIndex=l+y.length):r.lastIndex=f}}return r.lastIndex=0,e},i.ensureValidHostname=function(t,n){var r=!!t,o=!1;if(!!n&&(o=f(i.hostProtocols,n)),o&&!r)throw new TypeError("Hostname cannot be empty, if protocol is "+n);if(t&&t.match(i.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(t).match(i.invalid_hostname_characters))throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-:_]')}},i.ensureValidPort=function(e){if(e){var t=Number(e);if(!(/^[0-9]+$/.test(t)&&t>0&&t<65536))throw new TypeError('Port "'+e+'" is not a valid port')}},i.noConflict=function(e){if(e){var t={URI:this.noConflict()};return r.URITemplate&&"function"==typeof r.URITemplate.noConflict&&(t.URITemplate=r.URITemplate.noConflict()),r.IPv6&&"function"==typeof r.IPv6.noConflict&&(t.IPv6=r.IPv6.noConflict()),r.SecondLevelDomains&&"function"==typeof r.SecondLevelDomains.noConflict&&(t.SecondLevelDomains=r.SecondLevelDomains.noConflict()),t}return r.URI===this&&(r.URI=o),this},s.build=function(e){return!0===e?this._deferred_build=!0:(void 0===e||this._deferred_build)&&(this._string=i.build(this._parts),this._deferred_build=!1),this},s.clone=function(){return new i(this)},s.valueOf=s.toString=function(){return this.build(!1)._string},s.protocol=_("protocol"),s.username=_("username"),s.password=_("password"),s.hostname=_("hostname"),s.port=_("port"),s.query=b("query","?"),s.fragment=b("fragment","#"),s.search=function(e,t){var n=this.query(e,t);return"string"==typeof n&&n.length?"?"+n:n},s.hash=function(e,t){var n=this.fragment(e,t);return"string"==typeof n&&n.length?"#"+n:n},s.pathname=function(e,t){if(void 0===e||!0===e){var n=this._parts.path||(this._parts.hostname?"/":"");return e?(this._parts.urn?i.decodeUrnPath:i.decodePath)(n):n}return this._parts.urn?this._parts.path=e?i.recodeUrnPath(e):"":this._parts.path=e?i.recodePath(e):"/",this.build(!t),this},s.path=s.pathname,s.href=function(e,t){var n;if(void 0===e)return this.toString();this._string="",this._parts=i._parts();var r=e instanceof i,o="object"==typeof e&&(e.hostname||e.path||e.pathname);if(e.nodeName&&(e=e[i.getDomAttribute(e)]||"",o=!1),!r&&o&&void 0!==e.pathname&&(e=e.toString()),"string"==typeof e||e instanceof String)this._parts=i.parse(String(e),this._parts);else{if(!r&&!o)throw new TypeError("invalid input");var s=r?e._parts:e;for(n in s)"query"!==n&&a.call(this._parts,n)&&(this._parts[n]=s[n]);s.query&&this.query(s.query,!1)}return this.build(!t),this},s.is=function(e){var t=!1,r=!1,o=!1,s=!1,a=!1,u=!1,c=!1,l=!this._parts.urn;switch(this._parts.hostname&&(l=!1,r=i.ip4_expression.test(this._parts.hostname),o=i.ip6_expression.test(this._parts.hostname),a=(s=!(t=r||o))&&n&&n.has(this._parts.hostname),u=s&&i.idn_expression.test(this._parts.hostname),c=s&&i.punycode_expression.test(this._parts.hostname)),e.toLowerCase()){case"relative":return l;case"absolute":return!l;case"domain":case"name":return s;case"sld":return a;case"ip":return t;case"ip4":case"ipv4":case"inet4":return r;case"ip6":case"ipv6":case"inet6":return o;case"idn":return u;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return c}return null};var x=s.protocol,S=s.port,A=s.hostname;s.protocol=function(e,t){if(e&&!(e=e.replace(/:(\/\/)?$/,"")).match(i.protocol_expression))throw new TypeError('Protocol "'+e+"\" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]");return x.call(this,e,t)},s.scheme=s.protocol,s.port=function(e,t){return this._parts.urn?void 0===e?"":this:(void 0!==e&&(0===e&&(e=null),e&&(":"===(e+="").charAt(0)&&(e=e.substring(1)),i.ensureValidPort(e))),S.call(this,e,t))},s.hostname=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0!==e){var n={preventInvalidHostname:this._parts.preventInvalidHostname};if("/"!==i.parseHost(e,n))throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');e=n.hostname,this._parts.preventInvalidHostname&&i.ensureValidHostname(e,this._parts.protocol)}return A.call(this,e,t)},s.origin=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){var n=this.protocol();return this.authority()?(n?n+"://":"")+this.authority():""}var r=i(e);return this.protocol(r.protocol()).authority(r.authority()).build(!t),this},s.host=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e)return this._parts.hostname?i.buildHost(this._parts):"";if("/"!==i.parseHost(e,this._parts))throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');return this.build(!t),this},s.authority=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e)return this._parts.hostname?i.buildAuthority(this._parts):"";if("/"!==i.parseAuthority(e,this._parts))throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');return this.build(!t),this},s.userinfo=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){var n=i.buildUserinfo(this._parts);return n?n.substring(0,n.length-1):n}return"@"!==e[e.length-1]&&(e+="@"),i.parseUserinfo(e,this._parts),this.build(!t),this},s.resource=function(e,t){var n;return void 0===e?this.path()+this.search()+this.hash():(n=i.parse(e),this._parts.path=n.path,this._parts.query=n.query,this._parts.fragment=n.fragment,this.build(!t),this)},s.subdomain=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var n=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,n)||""}var r=this._parts.hostname.length-this.domain().length,o=this._parts.hostname.substring(0,r),s=new RegExp("^"+u(o));if(e&&"."!==e.charAt(e.length-1)&&(e+="."),-1!==e.indexOf(":"))throw new TypeError("Domains cannot contain colons");return e&&i.ensureValidHostname(e,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(s,e),this.build(!t),this},s.domain=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("boolean"==typeof e&&(t=e,e=void 0),void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var n=this._parts.hostname.match(/\./g);if(n&&n.length<2)return this._parts.hostname;var r=this._parts.hostname.length-this.tld(t).length-1;return r=this._parts.hostname.lastIndexOf(".",r-1)+1,this._parts.hostname.substring(r)||""}if(!e)throw new TypeError("cannot set domain empty");if(-1!==e.indexOf(":"))throw new TypeError("Domains cannot contain colons");if(i.ensureValidHostname(e,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=e;else{var o=new RegExp(u(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(o,e)}return this.build(!t),this},s.tld=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("boolean"==typeof e&&(t=e,e=void 0),void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var r=this._parts.hostname.lastIndexOf("."),o=this._parts.hostname.substring(r+1);return!0!==t&&n&&n.list[o.toLowerCase()]&&n.get(this._parts.hostname)||o}var i;if(!e)throw new TypeError("cannot set TLD empty");if(e.match(/[^a-zA-Z0-9-]/)){if(!n||!n.is(e))throw new TypeError('TLD "'+e+'" contains characters other than [A-Z0-9]');i=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(i,e)}else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");i=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(i,e)}return this.build(!t),this},s.directory=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e||!0===e){if(!this._parts.path&&!this._parts.hostname)return"";if("/"===this._parts.path)return"/";var n=this._parts.path.length-this.filename().length-1,r=this._parts.path.substring(0,n)||(this._parts.hostname?"/":"");return e?i.decodePath(r):r}var o=this._parts.path.length-this.filename().length,s=this._parts.path.substring(0,o),a=new RegExp("^"+u(s));return this.is("relative")||(e||(e="/"),"/"!==e.charAt(0)&&(e="/"+e)),e&&"/"!==e.charAt(e.length-1)&&(e+="/"),e=i.recodePath(e),this._parts.path=this._parts.path.replace(a,e),this.build(!t),this},s.filename=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("string"!=typeof e){if(!this._parts.path||"/"===this._parts.path)return"";var n=this._parts.path.lastIndexOf("/"),r=this._parts.path.substring(n+1);return e?i.decodePathSegment(r):r}var o=!1;"/"===e.charAt(0)&&(e=e.substring(1)),e.match(/\.?\//)&&(o=!0);var s=new RegExp(u(this.filename())+"$");return e=i.recodePath(e),this._parts.path=this._parts.path.replace(s,e),o?this.normalizePath(t):this.build(!t),this},s.suffix=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e||!0===e){if(!this._parts.path||"/"===this._parts.path)return"";var n,r,o=this.filename(),s=o.lastIndexOf(".");return-1===s?"":(n=o.substring(s+1),r=/^[a-z0-9%]+$/i.test(n)?n:"",e?i.decodePathSegment(r):r)}"."===e.charAt(0)&&(e=e.substring(1));var a,c=this.suffix();if(c)a=e?new RegExp(u(c)+"$"):new RegExp(u("."+c)+"$");else{if(!e)return this;this._parts.path+="."+i.recodePath(e)}return a&&(e=i.recodePath(e),this._parts.path=this._parts.path.replace(a,e)),this.build(!t),this},s.segment=function(e,t,n){var r=this._parts.urn?":":"/",o=this.path(),i="/"===o.substring(0,1),s=o.split(r);if(void 0!==e&&"number"!=typeof e&&(n=t,t=e,e=void 0),void 0!==e&&"number"!=typeof e)throw new Error('Bad segment "'+e+'", must be 0-based integer');if(i&&s.shift(),e<0&&(e=Math.max(s.length+e,0)),void 0===t)return void 0===e?s:s[e];if(null===e||void 0===s[e])if(l(t)){s=[];for(var a=0,u=t.length;a<u;a++)(t[a].length||s.length&&s[s.length-1].length)&&(s.length&&!s[s.length-1].length&&s.pop(),s.push(h(t[a])))}else(t||"string"==typeof t)&&(t=h(t),""===s[s.length-1]?s[s.length-1]=t:s.push(t));else t?s[e]=h(t):s.splice(e,1);return i&&s.unshift(""),this.path(s.join(r),n)},s.segmentCoded=function(e,t,n){var r,o,s;if("number"!=typeof e&&(n=t,t=e,e=void 0),void 0===t){if(l(r=this.segment(e,t,n)))for(o=0,s=r.length;o<s;o++)r[o]=i.decode(r[o]);else r=void 0!==r?i.decode(r):void 0;return r}if(l(t))for(o=0,s=t.length;o<s;o++)t[o]=i.encode(t[o]);else t="string"==typeof t||t instanceof String?i.encode(t):t;return this.segment(e,t,n)};var E=s.query;return s.query=function(e,t){if(!0===e)return i.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if("function"==typeof e){var n=i.parseQuery(this._parts.query,this._parts.escapeQuerySpace),r=e.call(this,n);return this._parts.query=i.buildQuery(r||n,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!t),this}return void 0!==e&&"string"!=typeof e?(this._parts.query=i.buildQuery(e,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!t),this):E.call(this,e,t)},s.setQuery=function(e,t,n){var r=i.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if("string"==typeof e||e instanceof String)r[e]=void 0!==t?t:null;else{if("object"!=typeof e)throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");for(var o in e)a.call(e,o)&&(r[o]=e[o])}return this._parts.query=i.buildQuery(r,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),"string"!=typeof e&&(n=t),this.build(!n),this},s.addQuery=function(e,t,n){var r=i.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return i.addQuery(r,e,void 0===t?null:t),this._parts.query=i.buildQuery(r,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),"string"!=typeof e&&(n=t),this.build(!n),this},s.removeQuery=function(e,t,n){var r=i.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return i.removeQuery(r,e,t),this._parts.query=i.buildQuery(r,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),"string"!=typeof e&&(n=t),this.build(!n),this},s.hasQuery=function(e,t,n){var r=i.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return i.hasQuery(r,e,t,n)},s.setSearch=s.setQuery,s.addSearch=s.addQuery,s.removeSearch=s.removeQuery,s.hasSearch=s.hasQuery,s.normalize=function(){return this._parts.urn?this.normalizeProtocol(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build():this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build()},s.normalizeProtocol=function(e){return"string"==typeof this._parts.protocol&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!e)),this},s.normalizeHostname=function(n){return this._parts.hostname&&(this.is("IDN")&&e?this._parts.hostname=e.toASCII(this._parts.hostname):this.is("IPv6")&&t&&(this._parts.hostname=t.best(this._parts.hostname)),this._parts.hostname=this._parts.hostname.toLowerCase(),this.build(!n)),this},s.normalizePort=function(e){return"string"==typeof this._parts.protocol&&this._parts.port===i.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!e)),this},s.normalizePath=function(e){var t,n=this._parts.path;if(!n)return this;if(this._parts.urn)return this._parts.path=i.recodeUrnPath(this._parts.path),this.build(!e),this;if("/"===this._parts.path)return this;var r,o,s="";for("/"!==(n=i.recodePath(n)).charAt(0)&&(t=!0,n="/"+n),"/.."!==n.slice(-3)&&"/."!==n.slice(-2)||(n+="/"),n=n.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),t&&(s=n.substring(1).match(/^(\.\.\/)+/)||"")&&(s=s[0]);-1!==(r=n.search(/\/\.\.(\/|$)/));)0!==r?(-1===(o=n.substring(0,r).lastIndexOf("/"))&&(o=r),n=n.substring(0,o)+n.substring(r+3)):n=n.substring(3);return t&&this.is("relative")&&(n=s+n.substring(1)),this._parts.path=n,this.build(!e),this},s.normalizePathname=s.normalizePath,s.normalizeQuery=function(e){return"string"==typeof this._parts.query&&(this._parts.query.length?this.query(i.parseQuery(this._parts.query,this._parts.escapeQuerySpace)):this._parts.query=null,this.build(!e)),this},s.normalizeFragment=function(e){return this._parts.fragment||(this._parts.fragment=null,this.build(!e)),this},s.normalizeSearch=s.normalizeQuery,s.normalizeHash=s.normalizeFragment,s.iso8859=function(){var e=i.encode,t=i.decode;i.encode=escape,i.decode=decodeURIComponent;try{this.normalize()}finally{i.encode=e,i.decode=t}return this},s.unicode=function(){var e=i.encode,t=i.decode;i.encode=g,i.decode=unescape;try{this.normalize()}finally{i.encode=e,i.decode=t}return this},s.readable=function(){var t=this.clone();t.username("").password("").normalize();var n="";if(t._parts.protocol&&(n+=t._parts.protocol+"://"),t._parts.hostname&&(t.is("punycode")&&e?(n+=e.toUnicode(t._parts.hostname),t._parts.port&&(n+=":"+t._parts.port)):n+=t.host()),t._parts.hostname&&t._parts.path&&"/"!==t._parts.path.charAt(0)&&(n+="/"),n+=t.path(!0),t._parts.query){for(var r="",o=0,s=t._parts.query.split("&"),a=s.length;o<a;o++){var u=(s[o]||"").split("=");r+="&"+i.decodeQuery(u[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),void 0!==u[1]&&(r+="="+i.decodeQuery(u[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"))}n+="?"+r.substring(1)}return n+=i.decodeQuery(t.hash(),!0)},s.absoluteTo=function(e){var t,n,r,o=this.clone(),s=["protocol","username","password","hostname","port"];if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(e instanceof i||(e=new i(e)),o._parts.protocol)return o;if(o._parts.protocol=e._parts.protocol,this._parts.hostname)return o;for(n=0;r=s[n];n++)o._parts[r]=e._parts[r];return o._parts.path?(".."===o._parts.path.substring(-2)&&(o._parts.path+="/"),"/"!==o.path().charAt(0)&&(t=(t=e.directory())||(0===e.path().indexOf("/")?"/":""),o._parts.path=(t?t+"/":"")+o._parts.path,o.normalizePath())):(o._parts.path=e._parts.path,o._parts.query||(o._parts.query=e._parts.query)),o.build(),o},s.relativeTo=function(e){var t,n,r,o,s,a=this.clone().normalize();if(a._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(e=new i(e).normalize(),t=a._parts,n=e._parts,o=a.path(),s=e.path(),"/"!==o.charAt(0))throw new Error("URI is already relative");if("/"!==s.charAt(0))throw new Error("Cannot calculate a URI relative to another relative URI");if(t.protocol===n.protocol&&(t.protocol=null),t.username!==n.username||t.password!==n.password)return a.build();if(null!==t.protocol||null!==t.username||null!==t.password)return a.build();if(t.hostname!==n.hostname||t.port!==n.port)return a.build();if(t.hostname=null,t.port=null,o===s)return t.path="",a.build();if(!(r=i.commonPath(o,s)))return a.build();var u=n.path.substring(r.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../");return t.path=u+t.path.substring(r.length)||"./",a.build()},s.equals=function(e){var t,n,r,o,s,u=this.clone(),c=new i(e),d={};if(u.normalize(),c.normalize(),u.toString()===c.toString())return!0;if(r=u.query(),o=c.query(),u.query(""),c.query(""),u.toString()!==c.toString())return!1;if(r.length!==o.length)return!1;for(s in t=i.parseQuery(r,this._parts.escapeQuerySpace),n=i.parseQuery(o,this._parts.escapeQuerySpace),t)if(a.call(t,s)){if(l(t[s])){if(!p(t[s],n[s]))return!1}else if(t[s]!==n[s])return!1;d[s]=!0}for(s in n)if(a.call(n,s)&&!d[s])return!1;return!0},s.preventInvalidHostname=function(e){return this._parts.preventInvalidHostname=!!e,this},s.duplicateQueryParameters=function(e){return this._parts.duplicateQueryParameters=!!e,this},s.escapeQuerySpace=function(e){return this._parts.escapeQuerySpace=!!e,this},i},jt.exports?jt.exports=Vt((Mt||(Mt=1,function(e,t){!function(n){var r=t&&!t.nodeType&&t,i=e&&!e.nodeType&&e,s="object"==typeof o.commonjsGlobal&&o.commonjsGlobal;s.global!==s&&s.window!==s&&s.self!==s||(n=s);var a,u,c=2147483647,l=36,d=1,f=26,p=38,h=700,m=72,g=128,y="-",v=/^xn--/,w=/[^\x20-\x7E]/,C=/[\x2E\u3002\uFF0E\uFF61]/g,_={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},b=l-d,x=Math.floor,S=String.fromCharCode;function A(e){throw new RangeError(_[e])}function E(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function O(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+E((e=e.replace(C,".")).split("."),t).join(".")}function I(e){for(var t,n,r=[],o=0,i=e.length;o<i;)(t=e.charCodeAt(o++))>=55296&&t<=56319&&o<i?56320==(64512&(n=e.charCodeAt(o++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),o--):r.push(t);return r}function P(e){return E(e,(function(e){var t="";return e>65535&&(t+=S((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+S(e)})).join("")}function R(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function T(e,t,n){var r=0;for(e=n?x(e/h):e>>1,e+=x(e/t);e>b*f>>1;r+=l)e=x(e/b);return x(r+(b+1)*e/(e+p))}function q(e){var t,n,r,o,i,s,a,u,p,h,v,w=[],C=e.length,_=0,b=g,S=m;for((n=e.lastIndexOf(y))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&A("not-basic"),w.push(e.charCodeAt(r));for(o=n>0?n+1:0;o<C;){for(i=_,s=1,a=l;o>=C&&A("invalid-input"),((u=(v=e.charCodeAt(o++))-48<10?v-22:v-65<26?v-65:v-97<26?v-97:l)>=l||u>x((c-_)/s))&&A("overflow"),_+=u*s,!(u<(p=a<=S?d:a>=S+f?f:a-S));a+=l)s>x(c/(h=l-p))&&A("overflow"),s*=h;S=T(_-i,t=w.length+1,0==i),x(_/t)>c-b&&A("overflow"),b+=x(_/t),_%=t,w.splice(_++,0,b)}return P(w)}function z(e){var t,n,r,o,i,s,a,u,p,h,v,w,C,_,b,E=[];for(w=(e=I(e)).length,t=g,n=0,i=m,s=0;s<w;++s)(v=e[s])<128&&E.push(S(v));for(r=o=E.length,o&&E.push(y);r<w;){for(a=c,s=0;s<w;++s)(v=e[s])>=t&&v<a&&(a=v);for(a-t>x((c-n)/(C=r+1))&&A("overflow"),n+=(a-t)*C,t=a,s=0;s<w;++s)if((v=e[s])<t&&++n>c&&A("overflow"),v==t){for(u=n,p=l;!(u<(h=p<=i?d:p>=i+f?f:p-i));p+=l)b=u-h,_=l-h,E.push(S(R(h+b%_,0))),u=x(b/_);E.push(S(R(u,0))),i=T(n,C,r==o),n=0,++r}++n,++t}return E.join("")}if(a={version:"1.3.2",ucs2:{decode:I,encode:P},decode:q,encode:z,toASCII:function(e){return O(e,(function(e){return w.test(e)?"xn--"+z(e):e}))},toUnicode:function(e){return O(e,(function(e){return v.test(e)?q(e.slice(4).toLowerCase()):e}))}},r&&i)if(e.exports==r)i.exports=a;else for(u in a)a.hasOwnProperty(u)&&(r[u]=a[u]);else n.punycode=a}(o.commonjsGlobal)}(Ut,Ut.exports)),Ut.exports),function(){return kt||(kt=1,e=Ft,t=o.commonjsGlobal,n=function(e){var t=e&&e.IPv6;return{best:function(e){var t,n,r=e.toLowerCase().split(":"),o=r.length,i=8;for(""===r[0]&&""===r[1]&&""===r[2]?(r.shift(),r.shift()):""===r[0]&&""===r[1]?r.shift():""===r[o-1]&&""===r[o-2]&&r.pop(),-1!==r[(o=r.length)-1].indexOf(".")&&(i=7),t=0;t<o&&""!==r[t];t++);if(t<i)for(r.splice(t,1,"0000");r.length<i;)r.splice(t,0,"0000");for(var s=0;s<i;s++){n=r[s].split("");for(var a=0;a<3&&"0"===n[0]&&n.length>1;a++)n.splice(0,1);r[s]=n.join("")}var u=-1,c=0,l=0,d=-1,f=!1;for(s=0;s<i;s++)f?"0"===r[s]?l+=1:(f=!1,l>c&&(u=d,c=l)):"0"===r[s]&&(f=!0,d=s,l=1);l>c&&(u=d,c=l),c>1&&r.splice(u,c,""),o=r.length;var p="";for(""===r[0]&&(p=":"),s=0;s<o&&(p+=r[s],s!==o-1);s++)p+=":";return""===r[o-1]&&(p+=":"),p},noConflict:function(){return e.IPv6===this&&(e.IPv6=t),this}}},e.exports?e.exports=n():t.IPv6=n(t)),Ft.exports;var e,t,n}(),function(){return Nt||(Nt=1,e=$t,t=o.commonjsGlobal,n=function(e){var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return!1;var r=e.lastIndexOf(".",t-1);if(r<=0||r>=t-1)return!1;var o=n.list[e.slice(t+1)];return!!o&&o.indexOf(" "+e.slice(r+1,t)+" ")>=0},is:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return!1;if(e.lastIndexOf(".",t-1)>=0)return!1;var r=n.list[e.slice(t+1)];return!!r&&r.indexOf(" "+e.slice(0,t)+" ")>=0},get:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return null;var r=e.lastIndexOf(".",t-1);if(r<=0||r>=t-1)return null;var o=n.list[e.slice(t+1)];return o?o.indexOf(" "+e.slice(r+1,t)+" ")<0?null:e.slice(r+1):null},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n},e.exports?e.exports=n():t.SecondLevelDomains=n(t)),$t.exports;var e,t,n}()):Bt.URI=Vt(Bt.punycode,Bt.IPv6,Bt.SecondLevelDomains,Bt);var Lt=Dt.exports,Qt=o.getDefaultExportFromCjs(Lt);function Wt(e,t){if(null===e||"object"!=typeof e)return e;t=r.defaultValue(t,!1);const n=new e.constructor;for(const r in e)if(e.hasOwnProperty(r)){let o=e[r];t&&(o=Wt(o,t)),n[r]=o}return n}function Ht(){let e,t;const n=new Promise((function(n,r){e=n,t=r}));return{resolve:e,reject:t,promise:n}}function Yt(e,t){let n;return"undefined"!=typeof document&&(n=document),Yt._implementation(e,t,n)}Yt._implementation=function(e,t,n){if(!r.defined(t)){if(void 0===n)return e;t=r.defaultValue(n.baseURI,n.location.href)}const o=new Qt(e);return""!==o.scheme()?o.toString():o.absoluteTo(t).toString()};const Zt={};function Gt(e,t,n){r.defined(t)||(t=e.width),r.defined(n)||(n=e.height);let o=Zt[t];r.defined(o)||(o={},Zt[t]=o);let i=o[n];if(!r.defined(i)){const e=document.createElement("canvas");e.width=t,e.height=n,i=e.getContext("2d",{willReadFrequently:!0}),i.globalCompositeOperation="copy",o[n]=i}return i.drawImage(e,0,0,t,n),i.getImageData(0,0,t,n).data}const Jt=/^blob:/i;function Xt(e){return Jt.test(e)}let Kt;const en=/^data:/i;function tn(e){return en.test(e)}var nn=Object.freeze({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5});var rn=Object.freeze({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3});function on(e){e=r.defaultValue(e,r.defaultValue.EMPTY_OBJECT);const t=r.defaultValue(e.throttleByServer,!1),n=r.defaultValue(e.throttle,!1);this.url=e.url,this.requestFunction=e.requestFunction,this.cancelFunction=e.cancelFunction,this.priorityFunction=e.priorityFunction,this.priority=r.defaultValue(e.priority,0),this.throttle=n,this.throttleByServer=t,this.type=r.defaultValue(e.type,rn.OTHER),this.serverKey=e.serverKey,this.state=nn.UNISSUED,this.deferred=void 0,this.cancelled=!1}function sn(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=function(e){const t={};if(!e)return t;const n=e.split("\r\n");for(let e=0;e<n.length;++e){const r=n[e],o=r.indexOf(": ");if(o>0){const e=r.substring(0,o),n=r.substring(o+2);t[e]=n}}return t}(this.responseHeaders))}function an(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function un(e,t){return t-e}function cn(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function ln(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}on.prototype.cancel=function(){this.cancelled=!0},on.prototype.clone=function(e){return r.defined(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=nn.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new on(this)},sn.prototype.toString=function(){let e="Request has failed.";return r.defined(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e},Object.defineProperties(an.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),an.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);const n=this;return function(){n.removeEventListener(e,t)}},an.prototype.removeEventListener=function(e,t){const n=this._listeners,r=this._scopes;let o=-1;for(let i=0;i<n.length;i++)if(n[i]===e&&r[i]===t){o=i;break}return-1!==o&&(this._insideRaiseEvent?(this._toRemove.push(o),n[o]=void 0,r[o]=void 0):(n.splice(o,1),r.splice(o,1)),!0)},an.prototype.raiseEvent=function(){let e;this._insideRaiseEvent=!0;const t=this._listeners,n=this._scopes;let o=t.length;for(e=0;e<o;e++){const o=t[e];r.defined(o)&&t[e].apply(n[e],arguments)}const i=this._toRemove;if(o=i.length,o>0){for(i.sort(un),e=0;e<o;e++){const r=i[e];t.splice(r,1),n.splice(r,1)}i.length=0}this._insideRaiseEvent=!1},Object.defineProperties(cn.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){const t=this._length;if(e<t){const n=this._array;for(let r=e;r<t;++r)n[r]=void 0;this._length=e,n.length=e}this._maximumLength=e}},comparator:{get:function(){return this._comparator}}}),cn.prototype.reserve=function(e){e=r.defaultValue(e,this._length),this._array.length=e},cn.prototype.heapify=function(e){e=r.defaultValue(e,0);const t=this._length,n=this._comparator,o=this._array;let i=-1,s=!0;for(;s;){const r=2*(e+1),a=r-1;i=a<t&&n(o[a],o[e])<0?a:e,r<t&&n(o[r],o[i])<0&&(i=r),i!==e?(ln(o,i,e),e=i):s=!1}},cn.prototype.resort=function(){const e=this._length;for(let t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},cn.prototype.insert=function(e){const t=this._array,n=this._comparator,o=this._maximumLength;let i,s=this._length++;for(s<t.length?t[s]=e:t.push(e);0!==s;){const e=Math.floor((s-1)/2);if(!(n(t[s],t[e])<0))break;ln(t,s,e),s=e}return r.defined(o)&&this._length>o&&(i=t[o],this._length=o),i},cn.prototype.pop=function(e){if(e=r.defaultValue(e,0),0===this._length)return;const t=this._array,n=t[e];return ln(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};const dn={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0};let fn=20;const pn=new cn({comparator:function(e,t){return e.priority-t.priority}});pn.maximumLength=fn,pn.reserve(fn);const hn=[];let mn={};const gn="undefined"!=typeof document?new Qt(document.location.href):new Qt,yn=new an;function vn(){}function wn(e){r.defined(e.priorityFunction)&&(e.priority=e.priorityFunction())}function Cn(e){return e.state===nn.UNISSUED&&(e.state=nn.ISSUED,e.deferred=Ht()),e.deferred.promise}function _n(e){const t=Cn(e);return e.state=nn.ACTIVE,hn.push(e),++dn.numberOfActiveRequests,++dn.numberOfActiveRequestsEver,++mn[e.serverKey],e.requestFunction().then(function(e){return function(t){if(e.state===nn.CANCELLED)return;const n=e.deferred;--dn.numberOfActiveRequests,--mn[e.serverKey],yn.raiseEvent(),e.state=nn.RECEIVED,e.deferred=void 0,n.resolve(t)}}(e)).catch(function(e){return function(t){e.state!==nn.CANCELLED&&(++dn.numberOfFailedRequests,--dn.numberOfActiveRequests,--mn[e.serverKey],yn.raiseEvent(t),e.state=nn.FAILED,e.deferred.reject(t))}}(e)),t}function bn(e){const t=e.state===nn.ACTIVE;if(e.state=nn.CANCELLED,++dn.numberOfCancelledRequests,r.defined(e.deferred)){const t=e.deferred;e.deferred=void 0,t.reject()}t&&(--dn.numberOfActiveRequests,--mn[e.serverKey],++dn.numberOfCancelledActiveRequests),r.defined(e.cancelFunction)&&e.cancelFunction()}vn.maximumRequests=50,vn.maximumRequestsPerServer=6,vn.requestsByServer={"api.cesium.com:443":18,"assets.ion.cesium.com:443":18,"ibasemaps-api.arcgis.com:443":18},vn.throttleRequests=!0,vn.debugShowStatistics=!1,vn.requestCompletedEvent=yn,Object.defineProperties(vn,{statistics:{get:function(){return dn}},priorityHeapLength:{get:function(){return fn},set:function(e){if(e<fn)for(;pn.length>e;){bn(pn.pop())}fn=e,pn.maximumLength=e,pn.reserve(e)}}}),vn.serverHasOpenSlots=function(e,t){t=r.defaultValue(t,1);const n=r.defaultValue(vn.requestsByServer[e],vn.maximumRequestsPerServer);return mn[e]+t<=n},vn.heapHasOpenSlots=function(e){return pn.length+e<=fn},vn.update=function(){let e,t,n=0;const r=hn.length;for(e=0;e<r;++e)t=hn[e],t.cancelled&&bn(t),t.state===nn.ACTIVE?n>0&&(hn[e-n]=t):++n;hn.length-=n;const o=pn.internalArray,i=pn.length;for(e=0;e<i;++e)wn(o[e]);pn.resort();const s=Math.max(vn.maximumRequests-hn.length,0);let a=0;for(;a<s&&pn.length>0;)t=pn.pop(),t.cancelled?bn(t):!t.throttleByServer||vn.serverHasOpenSlots(t.serverKey)?(_n(t),++a):bn(t);!function(){if(!vn.debugShowStatistics)return;0===dn.numberOfActiveRequests&&dn.lastNumberOfActiveRequests>0&&(dn.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${dn.numberOfAttemptedRequests}`),dn.numberOfAttemptedRequests=0),dn.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${dn.numberOfCancelledRequests}`),dn.numberOfCancelledRequests=0),dn.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${dn.numberOfCancelledActiveRequests}`),dn.numberOfCancelledActiveRequests=0),dn.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${dn.numberOfFailedRequests}`),dn.numberOfFailedRequests=0));dn.lastNumberOfActiveRequests=dn.numberOfActiveRequests}()},vn.getServerKey=function(e){let t=new Qt(e);""===t.scheme()&&(t=t.absoluteTo(gn),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${"https"===t.scheme()?"443":"80"}`);const o=mn[n];return r.defined(o)||(mn[n]=0),n},vn.request=function(e){if(tn(e.url)||Xt(e.url))return yn.raiseEvent(),e.state=nn.RECEIVED,e.requestFunction();if(++dn.numberOfAttemptedRequests,r.defined(e.serverKey)||(e.serverKey=vn.getServerKey(e.url)),vn.throttleRequests&&e.throttleByServer&&!vn.serverHasOpenSlots(e.serverKey))return;if(!vn.throttleRequests||!e.throttle)return _n(e);if(hn.length>=vn.maximumRequests)return;wn(e);const t=pn.insert(e);if(r.defined(t)){if(t===e)return;bn(t)}return Cn(e)},vn.clearForSpecs=function(){for(;pn.length>0;){bn(pn.pop())}const e=hn.length;for(let t=0;t<e;++t)bn(hn[t]);hn.length=0,mn={},dn.numberOfAttemptedRequests=0,dn.numberOfActiveRequests=0,dn.numberOfCancelledRequests=0,dn.numberOfCancelledActiveRequests=0,dn.numberOfFailedRequests=0,dn.numberOfActiveRequestsEver=0,dn.lastNumberOfActiveRequests=0},vn.numberOfActiveRequestsByServer=function(e){return mn[e]},vn.requestHeap=pn;const xn={};let Sn={};xn.add=function(e,t){const n=`${e.toLowerCase()}:${t}`;r.defined(Sn[n])||(Sn[n]=!0)},xn.remove=function(e,t){const n=`${e.toLowerCase()}:${t}`;r.defined(Sn[n])&&delete Sn[n]},xn.contains=function(e){const t=function(e){const t=new Qt(e);t.normalize();let n=t.authority();if(0!==n.length){if(t.authority(n),-1!==n.indexOf("@")){const e=n.split("@");n=e[1]}if(-1===n.indexOf(":")){let e=t.scheme();if(0===e.length&&(e=window.location.protocol,e=e.substring(0,e.length-1)),"http"===e)n+=":80";else{if("https"!==e)return;n+=":443"}}return n}}(e);return!(!r.defined(t)||!r.defined(Sn[t]))},xn.clear=function(){Sn={}};var An=xn;const En=function(){try{const e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();function On(e){"string"==typeof(e=r.defaultValue(e,r.defaultValue.EMPTY_OBJECT))&&(e={url:e}),this._url=void 0,this._templateValues=In(e.templateValues,{}),this._queryParameters=In(e.queryParameters,{}),this.headers=In(e.headers,{}),this.request=r.defaultValue(e.request,new on),this.proxy=e.proxy,this.retryCallback=e.retryCallback,this.retryAttempts=r.defaultValue(e.retryAttempts,0),this._retryCount=0;r.defaultValue(e.parseUrl,!0)?this.parseUrl(e.url,!0,!0):this._url=e.url}function In(e,t){return r.defined(e)?Wt(e):t}let Pn;function Rn(e,t,n){if(!n)return s.combine(e,t);const o=Wt(e,!0);for(const e in t)if(t.hasOwnProperty(e)){let n=o[e];const i=t[e];r.defined(n)?(Array.isArray(n)||(n=o[e]=[n]),o[e]=n.concat(i)):o[e]=Array.isArray(i)?i.slice():i}return o}function Tn(e){const t=e.resource,n=e.flipY,o=e.skipColorSpaceConversion,i=e.preferImageBitmap,s=t.request;s.url=t.url,s.requestFunction=function(){let e=!1;t.isDataUri||t.isBlobUri||(e=t.isCrossOriginUrl);const r=Ht();return On._Implementations.createImage(s,e,r,n,o,i),r.promise};const a=vn.request(s);if(r.defined(a))return a.catch((function(e){return s.state!==nn.FAILED?Promise.reject(e):t.retryOnError(e).then((function(r){return r?(s.state=nn.UNISSUED,s.deferred=void 0,Tn({resource:t,flipY:n,skipColorSpaceConversion:o,preferImageBitmap:i})):Promise.reject(e)}))}))}function qn(e,t,n){const o={};o[t]=n,e.setQueryParameters(o);const i=e.request,s=e.url;i.url=s,i.requestFunction=function(){const e=Ht();return window[n]=function(t){e.resolve(t);try{delete window[n]}catch(e){window[n]=void 0}},On._Implementations.loadAndExecuteScript(s,n,e),e.promise};const a=vn.request(i);if(r.defined(a))return a.catch((function(r){return i.state!==nn.FAILED?Promise.reject(r):e.retryOnError(r).then((function(o){return o?(i.state=nn.UNISSUED,i.deferred=void 0,qn(e,t,n)):Promise.reject(r)}))}))}function zn(e){if(e.state===nn.ISSUED||e.state===nn.ACTIVE)throw new a.RuntimeError("The Resource is already being fetched.");e.state=nn.UNISSUED,e.deferred=void 0}On.createIfNeeded=function(e){return e instanceof On?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new On({url:e})},On.supportsImageBitmapOptions=function(){if(r.defined(Pn))return Pn;if("function"!=typeof createImageBitmap)return Pn=Promise.resolve(!1),Pn;return Pn=On.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC"}).then((function(e){return Promise.all([createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none",colorSpaceConversion:"none"}),createImageBitmap(e)])})).then((function(e){const t=Gt(e[0]),n=Gt(e[1]);return t[1]!==n[1]})).catch((function(){return!1})),Pn},Object.defineProperties(On,{isBlobSupported:{get:function(){return En}}}),Object.defineProperties(On.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(e){this.parseUrl(e,!1,!1)}},extension:{get:function(){return function(e){const t=new Qt(e);t.normalize();let n=t.path(),r=n.lastIndexOf("/");return-1!==r&&(n=n.substr(r+1)),r=n.lastIndexOf("."),n=-1===r?"":n.substr(r+1),n}(this._url)}},isDataUri:{get:function(){return tn(this._url)}},isBlobUri:{get:function(){return Xt(this._url)}},isCrossOriginUrl:{get:function(){return function(e){r.defined(Kt)||(Kt=document.createElement("a")),Kt.href=window.location.href;const t=Kt.host,n=Kt.protocol;return Kt.href=e,Kt.href=Kt.href,n!==Kt.protocol||t!==Kt.host}(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),On.prototype.toString=function(){return this.getUrlComponent(!0,!0)},On.prototype.parseUrl=function(e,t,n,o){let i=new Qt(e);const s=function(e){if(0===e.length)return{};if(-1===e.indexOf("="))return{[e]:void 0};return function(e){const t={};if(""===e)return t;const n=e.replace(/\+/g,"%20").split(/[&;]/);for(let e=0,o=n.length;e<o;++e){const o=n[e].split("="),i=decodeURIComponent(o[0]);let s=o[1];s=r.defined(s)?decodeURIComponent(s):"";const a=t[i];"string"==typeof a?t[i]=[a,s]:Array.isArray(a)?a.push(s):t[i]=s}return t}(e)}(i.query());this._queryParameters=t?Rn(s,this.queryParameters,n):s,i.search(""),i.fragment(""),r.defined(o)&&""===i.scheme()&&(i=i.absoluteTo(Yt(o))),this._url=i.toString()},On.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${function(e){const t=Object.keys(e);if(0===t.length)return"";if(1===t.length&&!r.defined(e[t[0]]))return`?${t[0]}`;return`?${function(e){let t="";for(const n in e)if(e.hasOwnProperty(n)){const r=e[n],o=`${encodeURIComponent(n)}=`;if(Array.isArray(r))for(let e=0,n=r.length;e<n;++e)t+=`${o+encodeURIComponent(r[e])}&`;else t+=`${o+encodeURIComponent(r)}&`}return t=t.slice(0,-1),t}(e)}`}(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");const o=this._templateValues;return Object.keys(o).length>0&&(n=n.replace(/{(.*?)}/g,(function(e,t){const n=o[t];return r.defined(n)?encodeURIComponent(n):e}))),t&&r.defined(this.proxy)&&(n=this.proxy.getURL(n)),n},On.prototype.setQueryParameters=function(e,t){this._queryParameters=t?Rn(this._queryParameters,e,!1):Rn(e,this._queryParameters,!1)},On.prototype.appendQueryParameters=function(e){this._queryParameters=Rn(e,this._queryParameters,!0)},On.prototype.setTemplateValues=function(e,t){this._templateValues=t?s.combine(this._templateValues,e):s.combine(e,this._templateValues)},On.prototype.getDerivedResource=function(e){const t=this.clone();if(t._retryCount=0,r.defined(e.url)){const n=r.defaultValue(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return r.defined(e.queryParameters)&&(t._queryParameters=s.combine(e.queryParameters,t.queryParameters)),r.defined(e.templateValues)&&(t._templateValues=s.combine(e.templateValues,t.templateValues)),r.defined(e.headers)&&(t.headers=s.combine(e.headers,t.headers)),r.defined(e.proxy)&&(t.proxy=e.proxy),r.defined(e.request)&&(t.request=e.request),r.defined(e.retryCallback)&&(t.retryCallback=e.retryCallback),r.defined(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t},On.prototype.retryOnError=function(e){const t=this.retryCallback;if("function"!=typeof t||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);const n=this;return Promise.resolve(t(this,e)).then((function(e){return++n._retryCount,e}))},On.prototype.clone=function(e){return r.defined(e)?(e._url=this._url,e._queryParameters=Wt(this._queryParameters),e._templateValues=Wt(this._templateValues),e.headers=Wt(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new On({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1})},On.prototype.getBaseUri=function(e){return function(e,t){let n="";const r=e.lastIndexOf("/");return-1!==r&&(n=e.substring(0,r+1)),t?(0!==(e=new Qt(e)).query().length&&(n+=`?${e.query()}`),0!==e.fragment().length&&(n+=`#${e.fragment()}`),n):n}(this.getUrlComponent(e),e)},On.prototype.appendForwardSlash=function(){var e;this._url=(0!==(e=this._url).length&&"/"===e[e.length-1]||(e=`${e}/`),e)},On.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},On.fetchArrayBuffer=function(e){return new On(e).fetchArrayBuffer()},On.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},On.fetchBlob=function(e){return new On(e).fetchBlob()},On.prototype.fetchImage=function(e){e=r.defaultValue(e,r.defaultValue.EMPTY_OBJECT);const t=r.defaultValue(e.preferImageBitmap,!1),n=r.defaultValue(e.preferBlob,!1),o=r.defaultValue(e.flipY,!1),i=r.defaultValue(e.skipColorSpaceConversion,!1);if(zn(this.request),!En||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return Tn({resource:this,flipY:o,skipColorSpaceConversion:i,preferImageBitmap:t});const s=this.fetchBlob();if(!r.defined(s))return;let a,u,c,l;return On.supportsImageBitmapOptions().then((function(e){return a=e,u=a&&t,s})).then((function(e){if(!r.defined(e))return;if(l=e,u)return On.createImageBitmapFromBlob(e,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:i});const t=window.URL.createObjectURL(e);return c=new On({url:t}),Tn({resource:c,flipY:o,skipColorSpaceConversion:i,preferImageBitmap:!1})})).then((function(e){if(r.defined(e))return e.blob=l,u||window.URL.revokeObjectURL(c.url),e})).catch((function(e){return r.defined(c)&&window.URL.revokeObjectURL(c.url),e.blob=l,Promise.reject(e)}))},On.fetchImage=function(e){return new On(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},On.prototype.fetchText=function(){return this.fetch({responseType:"text"})},On.fetchText=function(e){return new On(e).fetchText()},On.prototype.fetchJson=function(){const e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(r.defined(e))return e.then((function(e){if(r.defined(e))return JSON.parse(e)}))},On.fetchJson=function(e){return new On(e).fetchJson()},On.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},On.fetchXML=function(e){return new On(e).fetchXML()},On.prototype.fetchJsonp=function(e){let t;e=r.defaultValue(e,"callback"),zn(this.request);do{t=`loadJsonp${o.CesiumMath.nextRandomNumber().toString().substring(2,8)}`}while(r.defined(window[t]));return qn(this,e,t)},On.fetchJsonp=function(e){return new On(e).fetchJsonp(e.callbackParameterName)},On.prototype._makeRequest=function(e){const t=this;zn(t.request);const n=t.request,o=t.url;n.url=o,n.requestFunction=function(){const i=e.responseType,a=s.combine(e.headers,t.headers),u=e.overrideMimeType,c=e.method,l=e.data,d=Ht(),f=On._Implementations.loadWithXhr(o,i,c,l,a,d,u);return r.defined(f)&&r.defined(f.abort)&&(n.cancelFunction=function(){f.abort()}),d.promise};const i=vn.request(n);if(r.defined(i))return i.then((function(e){return n.cancelFunction=void 0,e})).catch((function(r){return n.cancelFunction=void 0,n.state!==nn.FAILED?Promise.reject(r):t.retryOnError(r).then((function(o){return o?(n.state=nn.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)}))}))};const Mn=/^data:(.*?)(;base64)?,(.*)$/;function Dn(e,t){const n=decodeURIComponent(t);return e?atob(n):n}function Un(e,t){const n=Dn(e,t),r=new ArrayBuffer(n.length),o=new Uint8Array(r);for(let e=0;e<n.length;e++)o[e]=n.charCodeAt(e);return r}function kn(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}On.prototype.fetch=function(e){return(e=In(e,{})).method="GET",this._makeRequest(e)},On.fetch=function(e){return new On(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},On.prototype.delete=function(e){return(e=In(e,{})).method="DELETE",this._makeRequest(e)},On.delete=function(e){return new On(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},On.prototype.head=function(e){return(e=In(e,{})).method="HEAD",this._makeRequest(e)},On.head=function(e){return new On(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},On.prototype.options=function(e){return(e=In(e,{})).method="OPTIONS",this._makeRequest(e)},On.options=function(e){return new On(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},On.prototype.post=function(e,t){return f.defined("data",e),(t=In(t,{})).method="POST",t.data=e,this._makeRequest(t)},On.post=function(e){return new On(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},On.prototype.put=function(e,t){return f.defined("data",e),(t=In(t,{})).method="PUT",t.data=e,this._makeRequest(t)},On.put=function(e){return new On(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},On.prototype.patch=function(e,t){return f.defined("data",e),(t=In(t,{})).method="PATCH",t.data=e,this._makeRequest(t)},On.patch=function(e){return new On(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},On._Implementations={},On._Implementations.loadImageElement=function(e,t,n){const r=new Image;r.onload=function(){0===r.naturalWidth&&0===r.naturalHeight&&0===r.width&&0===r.height&&(r.width=300,r.height=150),n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(An.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e},On._Implementations.createImage=function(e,t,n,o,i,s){const u=e.url;On.supportsImageBitmapOptions().then((function(c){if(!c||!s)return void On._Implementations.loadImageElement(u,t,n);const l=Ht(),d=On._Implementations.loadWithXhr(u,"blob","GET",void 0,void 0,l,void 0,void 0,void 0);return r.defined(d)&&r.defined(d.abort)&&(e.cancelFunction=function(){d.abort()}),l.promise.then((function(e){if(r.defined(e))return On.createImageBitmapFromBlob(e,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:i});n.reject(new a.RuntimeError(`Successfully retrieved ${u} but it contained no content.`))})).then((function(e){n.resolve(e)}))})).catch((function(e){n.reject(e)}))},On.createImageBitmapFromBlob=function(e,t){return f.defined("options",t),f.typeOf.bool("options.flipY",t.flipY),f.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),f.typeOf.bool("options.skipColorSpaceConversion",t.skipColorSpaceConversion),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:t.skipColorSpaceConversion?"none":"default"})};const Fn="undefined"==typeof XMLHttpRequest;function Nn(e){e=r.defaultValue(e,r.defaultValue.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=r.defaultValue(e.addNewLeapSeconds,!0),r.defined(e.data)?Bn(this,e.data):Bn(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function jn(e,t){return qt.compare(e.julianDate,t)}function Bn(e,t){if(!r.defined(t.columnNames))throw new a.RuntimeError("Error in loaded EOP data: The columnNames property is required.");if(!r.defined(t.samples))throw new a.RuntimeError("Error in loaded EOP data: The samples property is required.");const n=t.columnNames.indexOf("modifiedJulianDateUtc"),o=t.columnNames.indexOf("xPoleWanderRadians"),i=t.columnNames.indexOf("yPoleWanderRadians"),s=t.columnNames.indexOf("ut1MinusUtcSeconds"),u=t.columnNames.indexOf("xCelestialPoleOffsetRadians"),c=t.columnNames.indexOf("yCelestialPoleOffsetRadians"),l=t.columnNames.indexOf("taiMinusUtcSeconds");if(n<0||o<0||i<0||s<0||u<0||c<0||l<0)throw new a.RuntimeError("Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");const d=e._samples=t.samples,f=e._dates=[];let p;e._dateColumn=n,e._xPoleWanderRadiansColumn=o,e._yPoleWanderRadiansColumn=i,e._ut1MinusUtcSecondsColumn=s,e._xCelestialPoleOffsetRadiansColumn=u,e._yCelestialPoleOffsetRadiansColumn=c,e._taiMinusUtcSecondsColumn=l,e._columnCount=t.columnNames.length,e._lastIndex=void 0;const h=e._addNewLeapSeconds;for(let t=0,o=d.length;t<o;t+=e._columnCount){const e=d[t+n],o=d[t+l],i=new qt(e+pt.MODIFIED_JULIAN_DATE_DIFFERENCE,o,ht.TAI);if(f.push(i),h){if(o!==p&&r.defined(p)){const e=qt.leapSeconds,t=ut(e,i,jn);if(t<0){const n=new ft(i,o);e.splice(~t,0,n)}}p=o}}}function Vn(e,t,n,r,o){const i=n*r;o.xPoleWander=t[i+e._xPoleWanderRadiansColumn],o.yPoleWander=t[i+e._yPoleWanderRadiansColumn],o.xPoleOffset=t[i+e._xCelestialPoleOffsetRadiansColumn],o.yPoleOffset=t[i+e._yCelestialPoleOffsetRadiansColumn],o.ut1MinusUtc=t[i+e._ut1MinusUtcSecondsColumn]}function $n(e,t,n){return t+e*(n-t)}function Ln(e,t,n,r,o,i,s){const a=e._columnCount;if(i>t.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;const u=t[o],c=t[i];if(u.equals(c)||r.equals(u))return Vn(e,n,o,a,s),s;if(r.equals(c))return Vn(e,n,i,a,s),s;const l=qt.secondsDifference(r,u)/qt.secondsDifference(c,u),d=o*a,f=i*a;let p=n[d+e._ut1MinusUtcSecondsColumn],h=n[f+e._ut1MinusUtcSecondsColumn];const m=h-p;if(m>.5||m<-.5){const t=n[d+e._taiMinusUtcSecondsColumn],o=n[f+e._taiMinusUtcSecondsColumn];t!==o&&(c.equals(r)?p=h:h-=o-t)}return s.xPoleWander=$n(l,n[d+e._xPoleWanderRadiansColumn],n[f+e._xPoleWanderRadiansColumn]),s.yPoleWander=$n(l,n[d+e._yPoleWanderRadiansColumn],n[f+e._yPoleWanderRadiansColumn]),s.xPoleOffset=$n(l,n[d+e._xCelestialPoleOffsetRadiansColumn],n[f+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=$n(l,n[d+e._yCelestialPoleOffsetRadiansColumn],n[f+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=$n(l,p,h),s}function Qn(e,t,n){this.heading=r.defaultValue(e,0),this.pitch=r.defaultValue(t,0),this.roll=r.defaultValue(n,0)}On._Implementations.loadWithXhr=function(t,n,o,i,s,c,l){const d=Mn.exec(t);if(null!==d)return void c.resolve(function(e,t){t=r.defaultValue(t,"");const n=e[1],o=!!e[2],i=e[3];let s,a;switch(t){case"":case"text":return Dn(o,i);case"arraybuffer":return Un(o,i);case"blob":return s=Un(o,i),new Blob([s],{type:n});case"document":return a=new DOMParser,a.parseFromString(Dn(o,i),n);case"json":return JSON.parse(Dn(o,i))}}(d,n));if(Fn)return void function(t,n,r,o,i,s,c){let l,d;Promise.all([new Promise((function(t,n){e(["url"],(function(e){t(u(e))}),n)})),new Promise((function(t,n){e(["zlib"],(function(e){t(u(e))}),n)}))]).then((([n,r])=>(l=n.parse(t),d=r,"https:"===l.protocol?new Promise((function(t,n){e(["https"],(function(e){t(u(e))}),n)})):new Promise((function(t,n){e(["http"],(function(e){t(u(e))}),n)}))))).then((e=>{const t={protocol:l.protocol,hostname:l.hostname,port:l.port,path:l.path,query:l.query,method:r,headers:i};e.request(t).on("response",(function(e){if(e.statusCode<200||e.statusCode>=300)return void s.reject(new sn(e.statusCode,e,e.headers));const t=[];e.on("data",(function(e){t.push(e)})),e.on("end",(function(){const r=Buffer.concat(t);"gzip"===e.headers["content-encoding"]?d.gunzip(r,(function(e,t){e?s.reject(new a.RuntimeError("Error decompressing response.")):s.resolve(kn(t,n))})):s.resolve(kn(r,n))}))})).on("error",(function(e){s.reject(new sn)})).end()}))}(t,n,o,0,s,c);const f=new XMLHttpRequest;if(An.contains(t)&&(f.withCredentials=!0),f.open(o,t,!0),r.defined(l)&&r.defined(f.overrideMimeType)&&f.overrideMimeType(l),r.defined(s))for(const e in s)s.hasOwnProperty(e)&&f.setRequestHeader(e,s[e]);r.defined(n)&&(f.responseType=n);let p=!1;return"string"==typeof t&&(p=0===t.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),f.onload=function(){if((f.status<200||f.status>=300)&&(!p||0!==f.status))return void c.reject(new sn(f.status,f.response,f.getAllResponseHeaders()));const e=f.response,t=f.responseType;if("HEAD"===o||"OPTIONS"===o){const e=f.getAllResponseHeaders().trim().split(/[\r\n]+/),t={};return e.forEach((function(e){const n=e.split(": "),r=n.shift();t[r]=n.join(": ")})),void c.resolve(t)}if(204===f.status)c.resolve();else if(!r.defined(e)||r.defined(n)&&t!==n)if("json"===n&&"string"==typeof e)try{c.resolve(JSON.parse(e))}catch(e){c.reject(e)}else(""===t||"document"===t)&&r.defined(f.responseXML)&&f.responseXML.hasChildNodes()?c.resolve(f.responseXML):""!==t&&"text"!==t||!r.defined(f.responseText)?c.reject(new a.RuntimeError("Invalid XMLHttpRequest response type.")):c.resolve(f.responseText);else c.resolve(e)},f.onerror=function(e){c.reject(new sn)},f.send(i),f},On._Implementations.loadAndExecuteScript=function(e,t,n){return function(e){const t=document.createElement("script");return t.async=!0,t.src=e,new Promise(((e,n)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");const r=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,r.removeChild(t),e()},t.onerror=function(e){n(e)},r.appendChild(t)}))}(e).catch((function(e){n.reject(e)}))},On._DefaultImplementations={},On._DefaultImplementations.createImage=On._Implementations.createImage,On._DefaultImplementations.loadWithXhr=On._Implementations.loadWithXhr,On._DefaultImplementations.loadAndExecuteScript=On._Implementations.loadAndExecuteScript,On.DEFAULT=Object.freeze(new On({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),Nn.fromUrl=async function(e,t){t=r.defaultValue(t,r.defaultValue.EMPTY_OBJECT);const n=On.createIfNeeded(e);let o;try{o=await n.fetchJson()}catch(e){throw new a.RuntimeError(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new Nn({addNewLeapSeconds:t.addNewLeapSeconds,data:o})},Nn.NONE=Object.freeze({compute:function(e,t){return r.defined(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new ct(0,0,0,0,0),t}}),Nn.prototype.compute=function(e,t){if(!r.defined(this._samples))return;if(r.defined(t)||(t=new ct(0,0,0,0,0)),0===this._samples.length)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;const n=this._dates,o=this._lastIndex;let i=0,s=0;if(r.defined(o)){const a=n[o],u=n[o+1],c=qt.lessThanOrEquals(a,e),l=!r.defined(u),d=l||qt.greaterThanOrEquals(u,e);if(c&&d)return i=o,!l&&u.equals(e)&&++i,s=i+1,Ln(this,n,this._samples,e,i,s,t),t}let a=ut(n,e,qt.compare,this._dateColumn);return a>=0?(a<n.length-1&&n[a+1].equals(e)&&++a,i=a,s=a):(s=~a,i=s-1,i<0&&(i=0)),this._lastIndex=i,Ln(this,n,this._samples,e,i,s,t),t},Qn.fromQuaternion=function(e,t){r.defined(t)||(t=new Qn);const n=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),s=2*(e.w*e.x+e.y*e.z),a=1-2*(e.y*e.y+e.z*e.z),u=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(u,a),t.roll=Math.atan2(s,i),t.pitch=-o.CesiumMath.asinClamped(n),t},Qn.fromDegrees=function(e,t,n,i){return r.defined(i)||(i=new Qn),i.heading=e*o.CesiumMath.RADIANS_PER_DEGREE,i.pitch=t*o.CesiumMath.RADIANS_PER_DEGREE,i.roll=n*o.CesiumMath.RADIANS_PER_DEGREE,i},Qn.clone=function(e,t){if(r.defined(e))return r.defined(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new Qn(e.heading,e.pitch,e.roll)},Qn.equals=function(e,t){return e===t||r.defined(e)&&r.defined(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll},Qn.equalsEpsilon=function(e,t,n,i){return e===t||r.defined(e)&&r.defined(t)&&o.CesiumMath.equalsEpsilon(e.heading,t.heading,n,i)&&o.CesiumMath.equalsEpsilon(e.pitch,t.pitch,n,i)&&o.CesiumMath.equalsEpsilon(e.roll,t.roll,n,i)},Qn.prototype.clone=function(e){return Qn.clone(this,e)},Qn.prototype.equals=function(e){return Qn.equals(this,e)},Qn.prototype.equalsEpsilon=function(e,t,n){return Qn.equalsEpsilon(this,e,t,n)},Qn.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};const Wn=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;let Hn,Yn,Zn;function Gn(e){return"undefined"==typeof document?e:(r.defined(Hn)||(Hn=document.createElement("a")),Hn.href=e,Hn.href=Hn.href,Hn.href)}function Jn(){if(r.defined(Yn))return Yn;let t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:"object"==typeof define&&r.defined(define.amd)&&!define.amd.toUrlUndefined&&r.defined(e.toUrl)?Yt("..",er("Core/buildModuleUrl.js")):function(){const e=document.getElementsByTagName("script");for(let t=0,n=e.length;t<n;++t){const n=e[t].getAttribute("src"),r=Wn.exec(n);if(null!==r)return r[1]}}(),Yn=new On({url:Gn(t)}),Yn.appendForwardSlash(),Yn}function Xn(t){return Gn(e.toUrl(`../${t}`))}function Kn(e){return Jn().getDerivedResource({url:e}).url}function er(t){r.defined(Zn)||(Zn="object"==typeof define&&r.defined(define.amd)&&!define.amd.toUrlUndefined&&r.defined(e.toUrl)?Xn:Kn);return Zn(t)}function tr(e,t,n){this.x=e,this.y=t,this.s=n}function nr(e){e=r.defaultValue(e,r.defaultValue.EMPTY_OBJECT),this._xysFileUrlTemplate=On.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r.defaultValue(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r.defaultValue(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new qt(this._sampleZeroJulianEphemerisDate,0,ht.TAI),this._stepSizeDays=r.defaultValue(e.stepSizeDays,1),this._samplesPerXysFile=r.defaultValue(e.samplesPerXysFile,1e3),this._totalSamples=r.defaultValue(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];const t=this._interpolationOrder,n=this._denominators=new Array(t+1),o=this._xTable=new Array(t+1),i=Math.pow(this._stepSizeDays,t);for(let e=0;e<=t;++e){n[e]=i,o[e]=e*this._stepSizeDays;for(let r=0;r<=t;++r)r!==e&&(n[e]*=e-r);n[e]=1/n[e]}this._work=new Array(t+1),this._coef=new Array(t+1)}er._cesiumScriptRegex=Wn,er._buildModuleUrlFromBaseUrl=Kn,er._clearBaseResource=function(){Yn=void 0},er.setBaseUrl=function(e){Yn=On.DEFAULT.getDerivedResource({url:e})},er.getCesiumBaseUrl=Jn;const rr=new qt(0,0,ht.TAI);function or(e,t,n){const r=rr;return r.dayNumber=t,r.secondsOfDay=n,qt.daysDifference(r,e._sampleZeroDateTT)}function ir(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n;const o=e._xysFileUrlTemplate;n=r.defined(o)?o.getDerivedResource({templateValues:{0:t}}):new On({url:er(`Assets/IAU2006_XYS/IAU2006_XYS_${t}.json`)});const i=n.fetchJson().then((function(n){e._chunkDownloadsInProgress[t]=!1;const r=e._samples,o=n.samples,i=t*e._samplesPerXysFile*3;for(let e=0,t=o.length;e<t;++e)r[i+e]=o[e]}));return e._chunkDownloadsInProgress[t]=i,i}nr.prototype.preload=function(e,t,n,r){const o=or(this,e,t),i=or(this,n,r);let s=o/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);let a=i/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;a>=this._totalSamples&&(a=this._totalSamples-1);const u=s/this._samplesPerXysFile|0,c=a/this._samplesPerXysFile|0,l=[];for(let e=u;e<=c;++e)l.push(ir(this,e));return Promise.all(l)},nr.prototype.computeXysRadians=function(e,t,n){const o=or(this,e,t);if(o<0)return;const i=o/this._stepSizeDays|0;if(i>=this._totalSamples)return;const s=this._interpolationOrder;let a=i-(s/2|0);a<0&&(a=0);let u=a+s;u>=this._totalSamples&&(u=this._totalSamples-1,a=u-s,a<0&&(a=0));let c=!1;const l=this._samples;if(r.defined(l[3*a])||(ir(this,a/this._samplesPerXysFile|0),c=!0),r.defined(l[3*u])||(ir(this,u/this._samplesPerXysFile|0),c=!0),c)return;r.defined(n)?(n.x=0,n.y=0,n.s=0):n=new tr(0,0,0);const d=o-a*this._stepSizeDays,f=this._work,p=this._denominators,h=this._coef,m=this._xTable;let g,y;for(g=0;g<=s;++g)f[g]=d-m[g];for(g=0;g<=s;++g){for(h[g]=1,y=0;y<=s;++y)y!==g&&(h[g]*=f[y]);h[g]*=p[g];let e=3*(a+g);n.x+=h[g]*l[e++],n.y+=h[g]*l[e++],n.s+=h[g]*l[e]}return n};const sr={},ar={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},ur={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},cr={},lr={east:new n.Cartesian3,north:new n.Cartesian3,up:new n.Cartesian3,west:new n.Cartesian3,south:new n.Cartesian3,down:new n.Cartesian3};let dr=new n.Cartesian3,fr=new n.Cartesian3,pr=new n.Cartesian3;sr.localFrameToFixedFrameGenerator=function(e,t){if(!ar.hasOwnProperty(e)||!ar[e].hasOwnProperty(t))throw new c("firstAxis and secondAxis must be east, north, up, west, south or down.");const s=ar[e][t];let a;const u=e+t;return r.defined(cr[u])?a=cr[u]:(a=function(a,u,c){if(r.defined(c)||(c=new i.Matrix4),n.Cartesian3.equalsEpsilon(a,n.Cartesian3.ZERO,o.CesiumMath.EPSILON14))n.Cartesian3.unpack(ur[e],0,dr),n.Cartesian3.unpack(ur[t],0,fr),n.Cartesian3.unpack(ur[s],0,pr);else if(o.CesiumMath.equalsEpsilon(a.x,0,o.CesiumMath.EPSILON14)&&o.CesiumMath.equalsEpsilon(a.y,0,o.CesiumMath.EPSILON14)){const r=o.CesiumMath.sign(a.z);n.Cartesian3.unpack(ur[e],0,dr),"east"!==e&&"west"!==e&&n.Cartesian3.multiplyByScalar(dr,r,dr),n.Cartesian3.unpack(ur[t],0,fr),"east"!==t&&"west"!==t&&n.Cartesian3.multiplyByScalar(fr,r,fr),n.Cartesian3.unpack(ur[s],0,pr),"east"!==s&&"west"!==s&&n.Cartesian3.multiplyByScalar(pr,r,pr)}else{(u=r.defaultValue(u,n.Ellipsoid.WGS84)).geodeticSurfaceNormal(a,lr.up);const o=lr.up,i=lr.east;i.x=-a.y,i.y=a.x,i.z=0,n.Cartesian3.normalize(i,lr.east),n.Cartesian3.cross(o,i,lr.north),n.Cartesian3.multiplyByScalar(lr.up,-1,lr.down),n.Cartesian3.multiplyByScalar(lr.east,-1,lr.west),n.Cartesian3.multiplyByScalar(lr.north,-1,lr.south),dr=lr[e],fr=lr[t],pr=lr[s]}return c[0]=dr.x,c[1]=dr.y,c[2]=dr.z,c[3]=0,c[4]=fr.x,c[5]=fr.y,c[6]=fr.z,c[7]=0,c[8]=pr.x,c[9]=pr.y,c[10]=pr.z,c[11]=0,c[12]=a.x,c[13]=a.y,c[14]=a.z,c[15]=1,c},cr[u]=a),a},sr.eastNorthUpToFixedFrame=sr.localFrameToFixedFrameGenerator("east","north"),sr.northEastDownToFixedFrame=sr.localFrameToFixedFrameGenerator("north","east"),sr.northUpEastToFixedFrame=sr.localFrameToFixedFrameGenerator("north","up"),sr.northWestUpToFixedFrame=sr.localFrameToFixedFrameGenerator("north","west");const hr=new De,mr=new n.Cartesian3(1,1,1),gr=new i.Matrix4;sr.headingPitchRollToFixedFrame=function(e,t,o,s,a){s=r.defaultValue(s,sr.eastNorthUpToFixedFrame);const u=De.fromHeadingPitchRoll(t,hr),c=i.Matrix4.fromTranslationQuaternionRotationScale(n.Cartesian3.ZERO,u,mr,gr);return a=s(e,o,a),i.Matrix4.multiply(a,c,a)};const yr=new i.Matrix4,vr=new n.Matrix3;sr.headingPitchRollQuaternion=function(e,t,n,r,o){const s=sr.headingPitchRollToFixedFrame(e,t,n,r,yr),a=i.Matrix4.getMatrix3(s,vr);return De.fromRotationMatrix(a,o)};const wr=new n.Cartesian3(1,1,1),Cr=new n.Cartesian3,_r=new i.Matrix4,br=new i.Matrix4,xr=new n.Matrix3,Sr=new De;sr.fixedFrameToHeadingPitchRoll=function(e,t,o,s){t=r.defaultValue(t,n.Ellipsoid.WGS84),o=r.defaultValue(o,sr.eastNorthUpToFixedFrame),r.defined(s)||(s=new Qn);const a=i.Matrix4.getTranslation(e,Cr);if(n.Cartesian3.equals(a,n.Cartesian3.ZERO))return s.heading=0,s.pitch=0,s.roll=0,s;let u=i.Matrix4.inverseTransformation(o(a,t,_r),_r),c=i.Matrix4.setScale(e,wr,br);c=i.Matrix4.setTranslation(c,n.Cartesian3.ZERO,c),u=i.Matrix4.multiply(u,c,u);let l=De.fromRotationMatrix(i.Matrix4.getMatrix3(u,xr),Sr);return l=De.normalize(l,l),Qn.fromQuaternion(l,s)};const Ar=o.CesiumMath.TWO_PI/86400;let Er=new qt;sr.computeTemeToPseudoFixedMatrix=function(e,t){Er=qt.addSeconds(e,-qt.computeTaiMinusUtc(e),Er);const i=Er.dayNumber,s=Er.secondsOfDay;let a;const u=i-2451545;a=s>=43200?(u+.5)/pt.DAYS_PER_JULIAN_CENTURY:(u-.5)/pt.DAYS_PER_JULIAN_CENTURY;const c=(24110.54841+a*(8640184.812866+a*(.093104+-62e-7*a)))*Ar%o.CesiumMath.TWO_PI+(72921158553e-15+11772758384668e-32*(i-2451545.5))*((s+.5*pt.SECONDS_PER_DAY)%pt.SECONDS_PER_DAY),l=Math.cos(c),d=Math.sin(c);return r.defined(t)?(t[0]=l,t[1]=-d,t[2]=0,t[3]=d,t[4]=l,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new n.Matrix3(l,d,0,-d,l,0,0,0,1)},sr.iau2006XysData=new nr,sr.earthOrientationParameters=Nn.NONE;const Or=32.184;sr.preloadIcrfFixed=function(e){const t=e.start.dayNumber,n=e.start.secondsOfDay+Or,r=e.stop.dayNumber,o=e.stop.secondsOfDay+Or;return sr.iau2006XysData.preload(t,n,r,o)},sr.computeIcrfToFixedMatrix=function(e,t){r.defined(t)||(t=new n.Matrix3);const o=sr.computeFixedToIcrfMatrix(e,t);if(r.defined(o))return n.Matrix3.transpose(o,t)};const Ir=new tr(0,0,0),Pr=new ct(0,0,0,0,0),Rr=new n.Matrix3,Tr=new n.Matrix3;sr.computeFixedToIcrfMatrix=function(e,t){r.defined(t)||(t=new n.Matrix3);const i=sr.earthOrientationParameters.compute(e,Pr);if(!r.defined(i))return;const s=e.dayNumber,a=e.secondsOfDay+Or,u=sr.iau2006XysData.computeXysRadians(s,a,Ir);if(!r.defined(u))return;const c=u.x+i.xPoleOffset,l=u.y+i.yPoleOffset,d=1/(1+Math.sqrt(1-c*c-l*l)),f=Rr;f[0]=1-d*c*c,f[3]=-d*c*l,f[6]=c,f[1]=-d*c*l,f[4]=1-d*l*l,f[7]=l,f[2]=-c,f[5]=-l,f[8]=1-d*(c*c+l*l);const p=n.Matrix3.fromRotationZ(-u.s,Tr),h=n.Matrix3.multiply(f,p,Rr),m=e.dayNumber-2451545,g=(e.secondsOfDay-qt.computeTaiMinusUtc(e)+i.ut1MinusUtc)/pt.SECONDS_PER_DAY;let y=.779057273264+g+.00273781191135448*(m+g);y=y%1*o.CesiumMath.TWO_PI;const v=n.Matrix3.fromRotationZ(y,Tr),w=n.Matrix3.multiply(h,v,Rr),C=Math.cos(i.xPoleWander),_=Math.cos(i.yPoleWander),b=Math.sin(i.xPoleWander),x=Math.sin(i.yPoleWander);let S=s-2451545+a/pt.SECONDS_PER_DAY;S/=36525;const A=-47e-6*S*o.CesiumMath.RADIANS_PER_DEGREE/3600,E=Math.cos(A),O=Math.sin(A),I=Tr;return I[0]=C*E,I[1]=C*O,I[2]=b,I[3]=-_*O+x*b*E,I[4]=_*E+x*b*O,I[5]=-x*C,I[6]=-x*O-_*b*E,I[7]=x*E-_*b*O,I[8]=_*C,n.Matrix3.multiply(w,I,t)};const qr=new i.Cartesian4;sr.pointToWindowCoordinates=function(e,t,n,r){return(r=sr.pointToGLWindowCoordinates(e,t,n,r)).y=2*t[5]-r.y,r},sr.pointToGLWindowCoordinates=function(e,t,n,o){r.defined(o)||(o=new i.Cartesian2);const s=qr;return i.Matrix4.multiplyByVector(e,i.Cartesian4.fromElements(n.x,n.y,n.z,1,s),s),i.Cartesian4.multiplyByScalar(s,1/s.w,s),i.Matrix4.multiplyByVector(t,s,s),i.Cartesian2.fromCartesian4(s,o)};const zr=new n.Cartesian3,Mr=new n.Cartesian3,Dr=new n.Cartesian3;sr.rotationMatrixFromPositionVelocity=function(e,t,i,s){const a=r.defaultValue(i,n.Ellipsoid.WGS84).geodeticSurfaceNormal(e,zr);let u=n.Cartesian3.cross(t,a,Mr);n.Cartesian3.equalsEpsilon(u,n.Cartesian3.ZERO,o.CesiumMath.EPSILON6)&&(u=n.Cartesian3.clone(n.Cartesian3.UNIT_X,u));const c=n.Cartesian3.cross(u,t,Dr);return n.Cartesian3.normalize(c,c),n.Cartesian3.cross(t,c,u),n.Cartesian3.negate(u,u),n.Cartesian3.normalize(u,u),r.defined(s)||(s=new n.Matrix3),s[0]=t.x,s[1]=t.y,s[2]=t.z,s[3]=u.x,s[4]=u.y,s[5]=u.z,s[6]=c.x,s[7]=c.y,s[8]=c.z,s};const Ur=new i.Matrix4(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),kr=new n.Cartographic,Fr=new n.Cartesian3,Nr=new n.Cartesian3,jr=new n.Matrix3,Br=new i.Matrix4,Vr=new i.Matrix4;sr.basisTo2D=function(e,t,r){const o=i.Matrix4.getTranslation(t,Nr),s=e.ellipsoid,a=s.cartesianToCartographic(o,kr),u=e.project(a,Fr);n.Cartesian3.fromElements(u.z,u.x,u.y,u);const c=sr.eastNorthUpToFixedFrame(o,s,Br),l=i.Matrix4.inverseTransformation(c,Vr),d=i.Matrix4.getMatrix3(t,jr),f=i.Matrix4.multiplyByMatrix3(l,d,r);return i.Matrix4.multiply(Ur,f,r),i.Matrix4.setTranslation(r,u,r),r},sr.wgs84To2DModelMatrix=function(e,t,r){const o=e.ellipsoid,s=sr.eastNorthUpToFixedFrame(t,o,Br),a=i.Matrix4.inverseTransformation(s,Vr),u=o.cartesianToCartographic(t,kr),c=e.project(u,Fr);n.Cartesian3.fromElements(c.z,c.x,c.y,c);const l=i.Matrix4.fromTranslation(c,Br);return i.Matrix4.multiply(Ur,a,r),i.Matrix4.multiply(l,r,r),r};var $r=sr;t.BoundingSphere=g,t.DeveloperError=c,t.FeatureDetection=Me,t.GeographicProjection=p,t.Intersect=h,t.Interval=m,t.Quaternion=De,t.Resource=On,t.Transforms=$r,t.buildModuleUrl=er})); diff --git a/public/static/Cesium/Workers/VertexFormat-fbdec922.js b/public/static/Cesium/Workers/VertexFormat-fbdec922.js new file mode 100644 index 0000000..5edde65 --- /dev/null +++ b/public/static/Cesium/Workers/VertexFormat-fbdec922.js @@ -0,0 +1 @@ +define(["exports","./defaultValue-f6d5e6da"],(function(e,t){"use strict";function n(e){e=t.defaultValue(e,t.defaultValue.EMPTY_OBJECT),this.position=t.defaultValue(e.position,!1),this.normal=t.defaultValue(e.normal,!1),this.st=t.defaultValue(e.st,!1),this.bitangent=t.defaultValue(e.bitangent,!1),this.tangent=t.defaultValue(e.tangent,!1),this.color=t.defaultValue(e.color,!1)}n.POSITION_ONLY=Object.freeze(new n({position:!0})),n.POSITION_AND_NORMAL=Object.freeze(new n({position:!0,normal:!0})),n.POSITION_NORMAL_AND_ST=Object.freeze(new n({position:!0,normal:!0,st:!0})),n.POSITION_AND_ST=Object.freeze(new n({position:!0,st:!0})),n.POSITION_AND_COLOR=Object.freeze(new n({position:!0,color:!0})),n.ALL=Object.freeze(new n({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),n.DEFAULT=n.POSITION_NORMAL_AND_ST,n.packedLength=6,n.pack=function(e,n,o){return o=t.defaultValue(o,0),n[o++]=e.position?1:0,n[o++]=e.normal?1:0,n[o++]=e.st?1:0,n[o++]=e.tangent?1:0,n[o++]=e.bitangent?1:0,n[o]=e.color?1:0,n},n.unpack=function(e,o,a){return o=t.defaultValue(o,0),t.defined(a)||(a=new n),a.position=1===e[o++],a.normal=1===e[o++],a.st=1===e[o++],a.tangent=1===e[o++],a.bitangent=1===e[o++],a.color=1===e[o],a},n.clone=function(e,o){if(t.defined(e))return t.defined(o)||(o=new n),o.position=e.position,o.normal=e.normal,o.st=e.st,o.tangent=e.tangent,o.bitangent=e.bitangent,o.color=e.color,o},e.VertexFormat=n})); diff --git a/public/static/Cesium/Workers/WallGeometryLibrary-5c59fcf6.js b/public/static/Cesium/Workers/WallGeometryLibrary-5c59fcf6.js new file mode 100644 index 0000000..b768865 --- /dev/null +++ b/public/static/Cesium/Workers/WallGeometryLibrary-5c59fcf6.js @@ -0,0 +1 @@ +define(["exports","./arrayRemoveDuplicates-0d8dde26","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Math-355606c6","./PolylinePipeline-dfaa9e90"],(function(e,t,i,n,o,r){"use strict";const a={};function s(e,t){return o.CesiumMath.equalsEpsilon(e.latitude,t.latitude,o.CesiumMath.EPSILON10)&&o.CesiumMath.equalsEpsilon(e.longitude,t.longitude,o.CesiumMath.EPSILON10)}const l=new i.Cartographic,h=new i.Cartographic;const g=new Array(2),c=new Array(2),u={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};a.computePositions=function(e,a,p,d,y,m){const P=function(e,o,r,a){const g=(o=t.arrayRemoveDuplicates(o,i.Cartesian3.equalsEpsilon)).length;if(g<2)return;const c=n.defined(a),u=n.defined(r),p=new Array(g),d=new Array(g),y=new Array(g),m=o[0];p[0]=m;const P=e.cartesianToCartographic(m,l);u&&(P.height=r[0]),d[0]=P.height,y[0]=c?a[0]:0;let f=d[0]===y[0],A=1;for(let t=1;t<g;++t){const n=o[t],l=e.cartesianToCartographic(n,h);u&&(l.height=r[t]),f=f&&0===l.height,s(P,l)?P.height<l.height&&(d[A-1]=l.height):(p[A]=n,d[A]=l.height,y[A]=c?a[t]:0,f=f&&d[A]===y[A],i.Cartographic.clone(l,P),++A)}return f||A<2?void 0:(p.length=A,d.length=A,y.length=A,{positions:p,topHeights:d,bottomHeights:y})}(e,a,p,d);if(!n.defined(P))return;a=P.positions,p=P.topHeights,d=P.bottomHeights;const f=a.length,A=f-2;let C,w;const v=o.CesiumMath.chordLength(y,e.maximumRadius),M=u;if(M.minDistance=v,M.ellipsoid=e,m){let e,t=0;for(e=0;e<f-1;e++)t+=r.PolylinePipeline.numberOfPoints(a[e],a[e+1],v)+1;C=new Float64Array(3*t),w=new Float64Array(3*t);const i=g,n=c;M.positions=i,M.height=n;let o=0;for(e=0;e<f-1;e++){i[0]=a[e],i[1]=a[e+1],n[0]=p[e],n[1]=p[e+1];const t=r.PolylinePipeline.generateArc(M);C.set(t,o),n[0]=d[e],n[1]=d[e+1],w.set(r.PolylinePipeline.generateArc(M),o),o+=t.length}}else M.positions=a,M.height=p,C=new Float64Array(r.PolylinePipeline.generateArc(M)),M.height=d,w=new Float64Array(r.PolylinePipeline.generateArc(M));return{bottomPositions:w,topPositions:C,numCorners:A}};var p=a;e.WallGeometryLibrary=p})); diff --git a/public/static/Cesium/Workers/WebGLConstants-7f557f93.js b/public/static/Cesium/Workers/WebGLConstants-7f557f93.js new file mode 100644 index 0000000..484eeb8 --- /dev/null +++ b/public/static/Cesium/Workers/WebGLConstants-7f557f93.js @@ -0,0 +1 @@ +define(["exports"],(function(E){"use strict";var _=Object.freeze({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGBA_ASTC_4x4_WEBGL:37808,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_BPTC_UNORM:36492,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047});E.WebGLConstants=_})); diff --git a/public/static/Cesium/Workers/WebMercatorProjection-db7467f4.js b/public/static/Cesium/Workers/WebMercatorProjection-db7467f4.js new file mode 100644 index 0000000..18cf4d2 --- /dev/null +++ b/public/static/Cesium/Workers/WebMercatorProjection-db7467f4.js @@ -0,0 +1 @@ +define(["exports","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Math-355606c6"],(function(t,e,i,o){"use strict";function a(t){this._ellipsoid=i.defaultValue(t,e.Ellipsoid.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(a.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),a.mercatorAngleToGeodeticLatitude=function(t){return o.CesiumMath.PI_OVER_TWO-2*Math.atan(Math.exp(-t))},a.geodeticLatitudeToMercatorAngle=function(t){t>a.MaximumLatitude?t=a.MaximumLatitude:t<-a.MaximumLatitude&&(t=-a.MaximumLatitude);const e=Math.sin(t);return.5*Math.log((1+e)/(1-e))},a.MaximumLatitude=a.mercatorAngleToGeodeticLatitude(Math.PI),a.prototype.project=function(t,o){const r=this._semimajorAxis,n=t.longitude*r,u=a.geodeticLatitudeToMercatorAngle(t.latitude)*r,d=t.height;return i.defined(o)?(o.x=n,o.y=u,o.z=d,o):new e.Cartesian3(n,u,d)},a.prototype.unproject=function(t,o){const r=this._oneOverSemimajorAxis,n=t.x*r,u=a.mercatorAngleToGeodeticLatitude(t.y*r),d=t.z;return i.defined(o)?(o.longitude=n,o.latitude=u,o.height=d,o):new e.Cartographic(n,u,d)},t.WebMercatorProjection=a})); diff --git a/public/static/Cesium/Workers/arrayRemoveDuplicates-0d8dde26.js b/public/static/Cesium/Workers/arrayRemoveDuplicates-0d8dde26.js new file mode 100644 index 0000000..f4f0a81 --- /dev/null +++ b/public/static/Cesium/Workers/arrayRemoveDuplicates-0d8dde26.js @@ -0,0 +1 @@ +define(["exports","./defaultValue-f6d5e6da","./Math-355606c6"],(function(e,n,t){"use strict";const i=t.CesiumMath.EPSILON10;e.arrayRemoveDuplicates=function(e,t,d,f){if(!n.defined(e))return;d=n.defaultValue(d,!1);const u=n.defined(f),s=e.length;if(s<2)return e;let l,r,a,c=e[0],h=0,o=-1;for(l=1;l<s;++l)r=e[l],t(c,r,i)?(n.defined(a)||(a=e.slice(0,l),h=l-1,o=0),u&&f.push(l)):(n.defined(a)&&(a.push(r),h=l,u&&(o=f.length)),c=r);return d&&t(e[0],e[s-1],i)&&(u&&(n.defined(a)?f.splice(o,0,h):f.push(s-1)),n.defined(a)?a.length-=1:a=e.slice(0,-1)),n.defined(a)?a:e}})); diff --git a/public/static/Cesium/Workers/cesiumWorkerBootstrapper.js b/public/static/Cesium/Workers/cesiumWorkerBootstrapper.js new file mode 100644 index 0000000..4bd971d --- /dev/null +++ b/public/static/Cesium/Workers/cesiumWorkerBootstrapper.js @@ -0,0 +1,31 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.105 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +typeof self>"u"&&(self={}),self.onmessage=function(r){var a=r.data;require(a.loaderConfig,[a.workerModule],function(c){self.onmessage=c,self.CESIUM_BASE_URL=a.loaderConfig.baseUrl})};function setTimeout(r){r()}/** vim: et:ts=4:sw=4:sts=4 + * @license RequireJS 2.1.20 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved. + * Available via the MIT or new BSD license. + * see: http://github.com/jrburke/requirejs for details + */var requirejs,require,define;(function(global){var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.1.20",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,ap=Array.prototype,isBrowser=!!(typeof window<"u"&&typeof navigator<"u"&&window.document),isWebWorker=!isBrowser&&typeof importScripts<"u",readyRegExp=isBrowser&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera=typeof opera<"u"&&opera.toString()==="[object Opera]",contexts={},cfg={},globalDefQueue=[],useInteractive=!1;function isFunction(r){return ostring.call(r)==="[object Function]"}function isArray(r){return ostring.call(r)==="[object Array]"}function each(r,a){if(r){var c;for(c=0;c<r.length&&!(r[c]&&a(r[c],c,r));c+=1);}}function eachReverse(r,a){if(r){var c;for(c=r.length-1;c>-1&&!(r[c]&&a(r[c],c,r));c-=1);}}function hasProp(r,a){return hasOwn.call(r,a)}function getOwn(r,a){return hasProp(r,a)&&r[a]}function eachProp(r,a){var c;for(c in r)if(hasProp(r,c)&&a(r[c],c))break}function mixin(r,a,c,u){return a&&eachProp(a,function(d,q){(c||!hasProp(r,q))&&(u&&typeof d=="object"&&d&&!isArray(d)&&!isFunction(d)&&!(d instanceof RegExp)?(r[q]||(r[q]={}),mixin(r[q],d,c,u)):r[q]=d)}),r}function bind(r,a){return function(){return a.apply(r,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(r){throw r}function getGlobal(r){if(!r)return r;var a=global;return each(r.split("."),function(c){a=a[c]}),a}function makeError(r,a,c,u){var d=new Error(a+` +http://requirejs.org/docs/errors.html#`+r);return d.requireType=r,d.requireModules=u,c&&(d.originalError=c),d}if(typeof define<"u")return;if(typeof requirejs<"u"){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}typeof require<"u"&&!isFunction(require)&&(cfg=require,require=void 0);function newContext(r){var a,c,u,d,q,g={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},v={},B={},I={},O=[],w={},D={},L={},H=1,K=1;function X(e){var i,o;for(i=0;i<e.length;i++)if(o=e[i],o===".")e.splice(i,1),i-=1;else if(o===".."){if(i===0||i===1&&e[2]===".."||e[i-1]==="..")continue;i>0&&(e.splice(i-1,2),i-=2)}}function C(e,i,o){var t,n,f,l,p,h,x,E,m,b,M,A,k=i&&i.split("/"),R=g.map,j=R&&R["*"];if(e&&(e=e.split("/"),x=e.length-1,g.nodeIdCompat&&jsSuffixRegExp.test(e[x])&&(e[x]=e[x].replace(jsSuffixRegExp,"")),e[0].charAt(0)==="."&&k&&(A=k.slice(0,k.length-1),e=A.concat(e)),X(e),e=e.join("/")),o&&R&&(k||j)){f=e.split("/");e:for(l=f.length;l>0;l-=1){if(h=f.slice(0,l).join("/"),k){for(p=k.length;p>0;p-=1)if(n=getOwn(R,k.slice(0,p).join("/")),n&&(n=getOwn(n,h),n)){E=n,m=l;break e}}!b&&j&&getOwn(j,h)&&(b=getOwn(j,h),M=l)}!E&&b&&(E=b,m=M),E&&(f.splice(0,m,E),e=f.join("/"))}return t=getOwn(g.pkgs,e),t||e}function W(e){isBrowser&&each(scripts(),function(i){if(i.getAttribute("data-requiremodule")===e&&i.getAttribute("data-requirecontext")===u.contextName)return i.parentNode.removeChild(i),!0})}function U(e){var i=getOwn(g.paths,e);if(i&&isArray(i)&&i.length>1)return i.shift(),u.require.undef(e),u.makeRequire(null,{skipMap:!0})([e]),!0}function G(e){var i,o=e?e.indexOf("!"):-1;return o>-1&&(i=e.substring(0,o),e=e.substring(o+1,e.length)),[i,e]}function S(e,i,o,t){var n,f,l,p,h=null,x=i?i.name:null,E=e,m=!0,b="";return e||(m=!1,e="_@r"+(H+=1)),p=G(e),h=p[0],e=p[1],h&&(h=C(h,x,t),f=getOwn(w,h)),e&&(h?f&&f.normalize?b=f.normalize(e,function(M){return C(M,x,t)}):b=e.indexOf("!")===-1?C(e,x,t):e:(b=C(e,x,t),p=G(b),h=p[0],b=p[1],o=!0,n=u.nameToUrl(b))),l=h&&!f&&!o?"_unnormalized"+(K+=1):"",{prefix:h,name:b,parentMap:i,unnormalized:!!l,url:n,originalName:E,isDefine:m,id:(h?h+"!"+b:b)+l}}function P(e){var i=e.id,o=getOwn(v,i);return o||(o=v[i]=new u.Module(e)),o}function T(e,i,o){var t=e.id,n=getOwn(v,t);hasProp(w,t)&&(!n||n.defineEmitComplete)?i==="defined"&&o(w[t]):(n=P(e),n.error&&i==="error"?o(n.error):n.on(i,o))}function y(e,i){var o=e.requireModules,t=!1;i?i(e):(each(o,function(n){var f=getOwn(v,n);f&&(f.error=e,f.events.error&&(t=!0,f.emit("error",e)))}),t||req.onError(e))}function Q(){globalDefQueue.length&&(each(globalDefQueue,function(e){var i=e[0];typeof i=="string"&&(u.defQueueMap[i]=!0),O.push(e)}),globalDefQueue=[])}d={require:function(e){return e.require?e.require:e.require=u.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)return e.exports?w[e.map.id]=e.exports:e.exports=w[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(g.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}};function F(e){delete v[e],delete B[e]}function $(e,i,o){var t=e.map.id;e.error?e.emit("error",e.error):(i[t]=!0,each(e.depMaps,function(n,f){var l=n.id,p=getOwn(v,l);p&&!e.depMatched[f]&&!o[l]&&(getOwn(i,l)?(e.defineDep(f,w[l]),e.check()):$(p,i,o))}),o[t]=!0)}function z(){var e,i,o=g.waitSeconds*1e3,t=o&&u.startTime+o<new Date().getTime(),n=[],f=[],l=!1,p=!0;if(!a){if(a=!0,eachProp(B,function(h){var x=h.map,E=x.id;if(h.enabled&&(x.isDefine||f.push(h),!h.error)){if(!h.inited&&t)U(E)?(i=!0,l=!0):(n.push(E),W(E));else if(!h.inited&&h.fetched&&x.isDefine&&(l=!0,!x.prefix))return p=!1}}),t&&n.length)return e=makeError("timeout","Load timeout for modules: "+n,null,n),e.contextName=u.contextName,y(e);p&&each(f,function(h){$(h,{},{})}),(!t||i)&&l&&(isBrowser||isWebWorker)&&!q&&(q=setTimeout(function(){q=0,z()},50)),a=!1}}c=function(e){this.events=getOwn(I,e.id)||{},this.map=e,this.shim=getOwn(g.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},c.prototype={init:function(e,i,o,t){t=t||{},!this.inited&&(this.factory=i,o?this.on("error",o):this.events.error&&(o=bind(this,function(n){this.emit("error",n)})),this.depMaps=e&&e.slice(0),this.errback=o,this.inited=!0,this.ignore=t.ignore,t.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,i){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=i)},fetch:function(){if(!this.fetched){this.fetched=!0,u.startTime=new Date().getTime();var e=this.map;if(this.shim)u.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()}));else return e.prefix?this.callPlugin():this.load()}},load:function(){var e=this.map.url;D[e]||(D[e]=!0,u.load(this.map.id,e))},check:function(){if(!(!this.enabled||this.enabling)){var e,i,o=this.map.id,t=this.depExports,n=this.exports,f=this.factory;if(!this.inited)hasProp(u.defQueueMap,o)||this.fetch();else if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(f)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{n=u.execCb(o,f,t,n)}catch(l){e=l}else n=u.execCb(o,f,t,n);if(this.map.isDefine&&n===void 0&&(i=this.module,i?n=i.exports:this.usingExports&&(n=this.exports)),e)return e.requireMap=this.map,e.requireModules=this.map.isDefine?[this.map.id]:null,e.requireType=this.map.isDefine?"define":"require",y(this.error=e)}else n=f;this.exports=n,this.map.isDefine&&!this.ignore&&(w[o]=n,req.onResourceLoad&&req.onResourceLoad(u,this.map,this.depMaps)),F(o),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}},callPlugin:function(){var e=this.map,i=e.id,o=S(e.prefix);this.depMaps.push(o),T(o,"defined",bind(this,function(t){var n,f,l,p=getOwn(L,this.map.id),h=this.map.name,x=this.map.parentMap?this.map.parentMap.name:null,E=u.makeRequire(e.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){t.normalize&&(h=t.normalize(h,function(m){return C(m,x,!0)})||""),f=S(e.prefix+"!"+h,this.map.parentMap),T(f,"defined",bind(this,function(m){this.init([],function(){return m},null,{enabled:!0,ignore:!0})})),l=getOwn(v,f.id),l&&(this.depMaps.push(f),this.events.error&&l.on("error",bind(this,function(m){this.emit("error",m)})),l.enable());return}if(p){this.map.url=u.nameToUrl(p),this.load();return}n=bind(this,function(m){this.init([],function(){return m},null,{enabled:!0})}),n.error=bind(this,function(m){this.inited=!0,this.error=m,m.requireModules=[i],eachProp(v,function(b){b.map.id.indexOf(i+"_unnormalized")===0&&F(b.map.id)}),y(m)}),n.fromText=bind(this,function(m,b){var M=e.name,A=S(M),k=useInteractive;b&&(m=b),k&&(useInteractive=!1),P(A),hasProp(g.config,i)&&(g.config[M]=g.config[i]);try{req.exec(m)}catch(R){return y(makeError("fromtexteval","fromText eval for "+i+" failed: "+R,R,[i]))}k&&(useInteractive=!0),this.depMaps.push(A),u.completeLoad(M),E([M],n)}),t.load(e.name,E,n,g)})),u.enable(o,this),this.pluginMaps[o.id]=o},enable:function(){B[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,i){var o,t,n;if(typeof e=="string"){if(e=S(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[i]=e,n=getOwn(d,e.id),n){this.depExports[i]=n(this);return}this.depCount+=1,T(e,"defined",bind(this,function(f){this.undefed||(this.defineDep(i,f),this.check())})),this.errback?T(e,"error",bind(this,this.errback)):this.events.error&&T(e,"error",bind(this,function(f){this.emit("error",f)}))}o=e.id,t=v[o],!hasProp(d,o)&&t&&!t.enabled&&u.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var i=getOwn(v,e.id);i&&!i.enabled&&u.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,i){var o=this.events[e];o||(o=this.events[e]=[]),o.push(i)},emit:function(e,i){each(this.events[e],function(o){o(i)}),e==="error"&&delete this.events[e]}};function _(e){hasProp(w,e[0])||P(S(e[0],null,!0)).init(e[1],e[2])}function J(e,i,o,t){e.detachEvent&&!isOpera?t&&e.detachEvent(t,i):e.removeEventListener(o,i,!1)}function V(e){var i=e.currentTarget||e.srcElement;return J(i,u.onScriptLoad,"load","onreadystatechange"),J(i,u.onScriptError,"error"),{node:i,id:i&&i.getAttribute("data-requiremodule")}}function Y(){var e;for(Q();O.length;){if(e=O.shift(),e[0]===null)return y(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));_(e)}u.defQueueMap={}}return u={config:g,contextName:r,registry:v,defined:w,urlFetched:D,defQueue:O,defQueueMap:{},Module:c,makeModuleMap:S,nextTick:req.nextTick,onError:y,configure:function(e){e.baseUrl&&e.baseUrl.charAt(e.baseUrl.length-1)!=="/"&&(e.baseUrl+="/");var i=g.shim,o={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(t,n){o[n]?(g[n]||(g[n]={}),mixin(g[n],t,!0,!0)):g[n]=t}),e.bundles&&eachProp(e.bundles,function(t,n){each(t,function(f){f!==n&&(L[f]=n)})}),e.shim&&(eachProp(e.shim,function(t,n){isArray(t)&&(t={deps:t}),(t.exports||t.init)&&!t.exportsFn&&(t.exportsFn=u.makeShimExports(t)),i[n]=t}),g.shim=i),e.packages&&each(e.packages,function(t){var n,f;t=typeof t=="string"?{name:t}:t,f=t.name,n=t.location,n&&(g.paths[f]=t.location),g.pkgs[f]=t.name+"/"+(t.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(v,function(t,n){!t.inited&&!t.map.unnormalized&&(t.map=S(n,null,!0))}),(e.deps||e.callback)&&u.require(e.deps||[],e.callback)},makeShimExports:function(e){function i(){var o;return e.init&&(o=e.init.apply(global,arguments)),o||e.exports&&getGlobal(e.exports)}return i},makeRequire:function(e,i){i=i||{};function o(t,n,f){var l,p,h;return i.enableBuildCallback&&n&&isFunction(n)&&(n.__requireJsBuild=!0),typeof t=="string"?isFunction(n)?y(makeError("requireargs","Invalid require call"),f):e&&hasProp(d,t)?d[t](v[e.id]):req.get?req.get(u,t,e,o):(p=S(t,e,!1,!0),l=p.id,hasProp(w,l)?w[l]:y(makeError("notloaded",'Module name "'+l+'" has not been loaded yet for context: '+r+(e?"":". Use require([])")))):(Y(),u.nextTick(function(){Y(),h=P(S(null,e)),h.skipMap=i.skipMap,h.init(t,n,f,{enabled:!0}),z()}),o)}return mixin(o,{isBrowser,toUrl:function(t){var n,f=t.lastIndexOf("."),l=t.split("/")[0],p=l==="."||l==="..";return f!==-1&&(!p||f>1)&&(n=t.substring(f,t.length),t=t.substring(0,f)),u.nameToUrl(C(t,e&&e.id,!0),n,!0)},defined:function(t){return hasProp(w,S(t,e,!1,!0).id)},specified:function(t){return t=S(t,e,!1,!0).id,hasProp(w,t)||hasProp(v,t)}}),e||(o.undef=function(t){Q();var n=S(t,e,!0),f=getOwn(v,t);f.undefed=!0,W(t),delete w[t],delete D[n.url],delete I[t],eachReverse(O,function(l,p){l[0]===t&&O.splice(p,1)}),delete u.defQueueMap[t],f&&(f.events.defined&&(I[t]=f.events),F(t))}),o},enable:function(e){var i=getOwn(v,e.id);i&&P(e).enable()},completeLoad:function(e){var i,o,t,n=getOwn(g.shim,e)||{},f=n.exports;for(Q();O.length;){if(o=O.shift(),o[0]===null){if(o[0]=e,i)break;i=!0}else o[0]===e&&(i=!0);_(o)}if(u.defQueueMap={},t=getOwn(v,e),!i&&!hasProp(w,e)&&t&&!t.inited){if(g.enforceDefine&&(!f||!getGlobal(f)))return U(e)?void 0:y(makeError("nodefine","No define call for "+e,null,[e]));_([e,n.deps||[],n.exportsFn])}z()},nameToUrl:function(e,i,o){var t,n,f,l,p,h,x,E=getOwn(g.pkgs,e);if(E&&(e=E),x=getOwn(L,e),x)return u.nameToUrl(x,i,o);if(req.jsExtRegExp.test(e))p=e+(i||"");else{for(t=g.paths,n=e.split("/"),f=n.length;f>0;f-=1)if(l=n.slice(0,f).join("/"),h=getOwn(t,l),h){isArray(h)&&(h=h[0]),n.splice(0,f,h);break}p=n.join("/"),p+=i||(/^data\:|\?/.test(p)||o?"":".js"),p=(p.charAt(0)==="/"||p.match(/^[\w\+\.\-]+:/)?"":g.baseUrl)+p}return g.urlArgs?p+((p.indexOf("?")===-1?"?":"&")+g.urlArgs):p},load:function(e,i){req.load(u,e,i)},execCb:function(e,i,o,t){return i.apply(t,o)},onScriptLoad:function(e){if(e.type==="load"||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var i=V(e);u.completeLoad(i.id)}},onScriptError:function(e){var i=V(e);if(!U(i.id))return y(makeError("scripterror","Script error for: "+i.id,e,[i.id]))}},u.require=u.makeRequire(),u}req=requirejs=function(r,a,c,u){var d,q,g=defContextName;return!isArray(r)&&typeof r!="string"&&(q=r,isArray(a)?(r=a,a=c,c=u):r=[]),q&&q.context&&(g=q.context),d=getOwn(contexts,g),d||(d=contexts[g]=req.s.newContext(g)),q&&d.configure(q),d.require(r,a,c)},req.config=function(r){return req(r)},req.nextTick=typeof setTimeout<"u"?function(r){setTimeout(r,4)}:function(r){r()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts,newContext},req({}),each(["toUrl","undef","defined","specified"],function(r){req[r]=function(){var a=contexts[defContextName];return a.require[r].apply(a,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(r,a,c){var u=r.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return u.type=r.scriptType||"text/javascript",u.charset="utf-8",u.async=!0,u},req.load=function(r,a,c){var u=r&&r.config||{},d;if(isBrowser)return d=req.createNode(u,a,c),u.onNodeCreated&&u.onNodeCreated(d,u,a,c),d.setAttribute("data-requirecontext",r.contextName),d.setAttribute("data-requiremodule",a),d.attachEvent&&!(d.attachEvent.toString&&d.attachEvent.toString().indexOf("[native code")<0)&&!isOpera?(useInteractive=!0,d.attachEvent("onreadystatechange",r.onScriptLoad)):(d.addEventListener("load",r.onScriptLoad,!1),d.addEventListener("error",r.onScriptError,!1)),d.src=c,currentlyAddingScript=d,baseElement?head.insertBefore(d,baseElement):head.appendChild(d),currentlyAddingScript=null,d;if(isWebWorker)try{importScripts(c),r.completeLoad(a)}catch(q){r.onError(makeError("importscripts","importScripts failed for "+a+" at "+c,q,[a]))}};function getInteractiveScript(){return interactiveScript&&interactiveScript.readyState==="interactive"||eachReverse(scripts(),function(r){if(r.readyState==="interactive")return interactiveScript=r}),interactiveScript}isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(r){if(head||(head=r.parentNode),dataMain=r.getAttribute("data-main"),dataMain)return mainScript=dataMain,cfg.baseUrl||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(r,a,c){var u,d;typeof r!="string"&&(c=a,a=r,r=null),isArray(a)||(c=a,a=null),!a&&isFunction(c)&&(a=[],c.length&&(c.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(q,g){a.push(g)}),a=(c.length===1?["require"]:["require","exports","module"]).concat(a))),useInteractive&&(u=currentlyAddingScript||getInteractiveScript(),u&&(r||(r=u.getAttribute("data-requiremodule")),d=contexts[u.getAttribute("data-requirecontext")])),d?(d.defQueue.push([r,a,c]),d.defQueueMap[r]=!0):globalDefQueue.push([r,a,c])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)})(this); diff --git a/public/static/Cesium/Workers/combine-0c102d93.js b/public/static/Cesium/Workers/combine-0c102d93.js new file mode 100644 index 0000000..6ae42b2 --- /dev/null +++ b/public/static/Cesium/Workers/combine-0c102d93.js @@ -0,0 +1 @@ +define(["exports","./defaultValue-f6d5e6da"],(function(e,t){"use strict";e.combine=function e(n,o,r){r=t.defaultValue(r,!1);const f={},i=t.defined(n),a=t.defined(o);let s,u,c;if(i)for(s in n)n.hasOwnProperty(s)&&(u=n[s],a&&r&&"object"==typeof u&&o.hasOwnProperty(s)?(c=o[s],f[s]="object"==typeof c?e(u,c,r):u):f[s]=u);if(a)for(s in o)o.hasOwnProperty(s)&&!f.hasOwnProperty(s)&&(c=o[s],f[s]=c);return f}})); diff --git a/public/static/Cesium/Workers/combineGeometry.js b/public/static/Cesium/Workers/combineGeometry.js new file mode 100644 index 0000000..e5c432b --- /dev/null +++ b/public/static/Cesium/Workers/combineGeometry.js @@ -0,0 +1 @@ +define(["./PrimitivePipeline-25e99fc7","./createTaskProcessorWorker","./Transforms-c842a68c","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Math-355606c6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryPipeline-87cdea8e","./AttributeCompression-0b8f7b7d","./EncodedCartesian3-abad5e8c","./IndexDatatype-a9b1bc18","./IntersectionTests-863687a2","./Plane-5931b53e","./WebMercatorProjection-db7467f4"],(function(e,t,i,r,n,o,a,s,m,c,u,P,p,b,l,y,G,d,f,C){"use strict";return t((function(t,i){const r=e.PrimitivePipeline.unpackCombineGeometryParameters(t),n=e.PrimitivePipeline.combineGeometry(r);return e.PrimitivePipeline.packCombineGeometryResults(n,i)}))})); diff --git a/public/static/Cesium/Workers/createBoxGeometry.js b/public/static/Cesium/Workers/createBoxGeometry.js new file mode 100644 index 0000000..349deee --- /dev/null +++ b/public/static/Cesium/Workers/createBoxGeometry.js @@ -0,0 +1 @@ +define(["./BoxGeometry-7ed03b36","./defaultValue-f6d5e6da","./Transforms-c842a68c","./Matrix3-b2351961","./Math-355606c6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./VertexFormat-fbdec922"],(function(e,t,r,o,n,a,m,i,u,f,s,y,G,c){"use strict";return function(r,o){return t.defined(o)&&(r=e.BoxGeometry.unpack(r,o)),e.BoxGeometry.createGeometry(r)}})); diff --git a/public/static/Cesium/Workers/createBoxOutlineGeometry.js b/public/static/Cesium/Workers/createBoxOutlineGeometry.js new file mode 100644 index 0000000..273f9a6 --- /dev/null +++ b/public/static/Cesium/Workers/createBoxOutlineGeometry.js @@ -0,0 +1 @@ +define(["./Transforms-c842a68c","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./Math-355606c6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93"],(function(t,e,n,a,i,r,u,o,s,m,f,c){"use strict";const l=new e.Cartesian3;function p(t){const n=(t=a.defaultValue(t,a.defaultValue.EMPTY_OBJECT)).minimum,i=t.maximum;this._min=e.Cartesian3.clone(n),this._max=e.Cartesian3.clone(i),this._offsetAttribute=t.offsetAttribute,this._workerName="createBoxOutlineGeometry"}p.fromDimensions=function(t){const n=(t=a.defaultValue(t,a.defaultValue.EMPTY_OBJECT)).dimensions,i=e.Cartesian3.multiplyByScalar(n,.5,new e.Cartesian3);return new p({minimum:e.Cartesian3.negate(i,new e.Cartesian3),maximum:i,offsetAttribute:t.offsetAttribute})},p.fromAxisAlignedBoundingBox=function(t){return new p({minimum:t.minimum,maximum:t.maximum})},p.packedLength=2*e.Cartesian3.packedLength+1,p.pack=function(t,n,i){return i=a.defaultValue(i,0),e.Cartesian3.pack(t._min,n,i),e.Cartesian3.pack(t._max,n,i+e.Cartesian3.packedLength),n[i+2*e.Cartesian3.packedLength]=a.defaultValue(t._offsetAttribute,-1),n};const y=new e.Cartesian3,d=new e.Cartesian3,C={minimum:y,maximum:d,offsetAttribute:void 0};return p.unpack=function(t,n,i){n=a.defaultValue(n,0);const r=e.Cartesian3.unpack(t,n,y),u=e.Cartesian3.unpack(t,n+e.Cartesian3.packedLength,d),o=t[n+2*e.Cartesian3.packedLength];return a.defined(i)?(i._min=e.Cartesian3.clone(r,i._min),i._max=e.Cartesian3.clone(u,i._max),i._offsetAttribute=-1===o?void 0:o,i):(C.offsetAttribute=-1===o?void 0:o,new p(C))},p.createGeometry=function(o){const s=o._min,m=o._max;if(e.Cartesian3.equals(s,m))return;const f=new r.GeometryAttributes,c=new Uint16Array(24),p=new Float64Array(24);p[0]=s.x,p[1]=s.y,p[2]=s.z,p[3]=m.x,p[4]=s.y,p[5]=s.z,p[6]=m.x,p[7]=m.y,p[8]=s.z,p[9]=s.x,p[10]=m.y,p[11]=s.z,p[12]=s.x,p[13]=s.y,p[14]=m.z,p[15]=m.x,p[16]=s.y,p[17]=m.z,p[18]=m.x,p[19]=m.y,p[20]=m.z,p[21]=s.x,p[22]=m.y,p[23]=m.z,f.position=new i.GeometryAttribute({componentDatatype:n.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:p}),c[0]=4,c[1]=5,c[2]=5,c[3]=6,c[4]=6,c[5]=7,c[6]=7,c[7]=4,c[8]=0,c[9]=1,c[10]=1,c[11]=2,c[12]=2,c[13]=3,c[14]=3,c[15]=0,c[16]=0,c[17]=4,c[18]=1,c[19]=5,c[20]=2,c[21]=6,c[22]=3,c[23]=7;const y=e.Cartesian3.subtract(m,s,l),d=.5*e.Cartesian3.magnitude(y);if(a.defined(o._offsetAttribute)){const t=p.length,e=o._offsetAttribute===u.GeometryOffsetAttribute.NONE?0:1,a=new Uint8Array(t/3).fill(e);f.applyOffset=new i.GeometryAttribute({componentDatatype:n.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:a})}return new i.Geometry({attributes:f,indices:c,primitiveType:i.PrimitiveType.LINES,boundingSphere:new t.BoundingSphere(e.Cartesian3.ZERO,d),offsetAttribute:o._offsetAttribute})},function(t,e){return a.defined(e)&&(t=p.unpack(t,e)),p.createGeometry(t)}})); diff --git a/public/static/Cesium/Workers/createCircleGeometry.js b/public/static/Cesium/Workers/createCircleGeometry.js new file mode 100644 index 0000000..ab2a14e --- /dev/null +++ b/public/static/Cesium/Workers/createCircleGeometry.js @@ -0,0 +1 @@ +define(["./Matrix3-b2351961","./defaultValue-f6d5e6da","./EllipseGeometry-767bd099","./VertexFormat-fbdec922","./Math-355606c6","./Transforms-c842a68c","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./EllipseGeometryLibrary-ddb4a715","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryInstance-c4920693","./GeometryOffsetAttribute-2579b8d2","./GeometryPipeline-87cdea8e","./AttributeCompression-0b8f7b7d","./EncodedCartesian3-abad5e8c","./IndexDatatype-a9b1bc18","./IntersectionTests-863687a2","./Plane-5931b53e"],(function(e,t,i,r,o,n,s,l,a,m,d,u,p,c,y,_,x,G,h,g,f,E){"use strict";function w(e){const r=(e=t.defaultValue(e,t.defaultValue.EMPTY_OBJECT)).radius,o={center:e.center,semiMajorAxis:r,semiMinorAxis:r,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new i.EllipseGeometry(o),this._workerName="createCircleGeometry"}w.packedLength=i.EllipseGeometry.packedLength,w.pack=function(e,t,r){return i.EllipseGeometry.pack(e._ellipseGeometry,t,r)};const A=new i.EllipseGeometry({center:new e.Cartesian3,semiMajorAxis:1,semiMinorAxis:1}),M={center:new e.Cartesian3,radius:void 0,ellipsoid:e.Ellipsoid.clone(e.Ellipsoid.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new r.VertexFormat,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};return w.unpack=function(o,n,s){const l=i.EllipseGeometry.unpack(o,n,A);return M.center=e.Cartesian3.clone(l._center,M.center),M.ellipsoid=e.Ellipsoid.clone(l._ellipsoid,M.ellipsoid),M.height=l._height,M.extrudedHeight=l._extrudedHeight,M.granularity=l._granularity,M.vertexFormat=r.VertexFormat.clone(l._vertexFormat,M.vertexFormat),M.stRotation=l._stRotation,M.shadowVolume=l._shadowVolume,t.defined(s)?(M.semiMajorAxis=l._semiMajorAxis,M.semiMinorAxis=l._semiMinorAxis,s._ellipseGeometry=new i.EllipseGeometry(M),s):(M.radius=l._semiMajorAxis,new w(M))},w.createGeometry=function(e){return i.EllipseGeometry.createGeometry(e._ellipseGeometry)},w.createShadowVolume=function(e,t,i){const o=e._ellipseGeometry._granularity,n=e._ellipseGeometry._ellipsoid,s=t(o,n),l=i(o,n);return new w({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:n,stRotation:e._ellipseGeometry._stRotation,granularity:o,extrudedHeight:s,height:l,vertexFormat:r.VertexFormat.POSITION_ONLY,shadowVolume:!0})},Object.defineProperties(w.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}}),function(i,r){return t.defined(r)&&(i=w.unpack(i,r)),i._ellipseGeometry._center=e.Cartesian3.clone(i._ellipseGeometry._center),i._ellipseGeometry._ellipsoid=e.Ellipsoid.clone(i._ellipseGeometry._ellipsoid),w.createGeometry(i)}})); diff --git a/public/static/Cesium/Workers/createCircleOutlineGeometry.js b/public/static/Cesium/Workers/createCircleOutlineGeometry.js new file mode 100644 index 0000000..fa15d0b --- /dev/null +++ b/public/static/Cesium/Workers/createCircleOutlineGeometry.js @@ -0,0 +1 @@ +define(["./Matrix3-b2351961","./defaultValue-f6d5e6da","./EllipseOutlineGeometry-176368f6","./Math-355606c6","./Transforms-c842a68c","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./EllipseGeometryLibrary-ddb4a715","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18"],(function(e,i,t,r,l,n,o,s,a,u,m,c,d,p,y){"use strict";function G(e){const r=(e=i.defaultValue(e,i.defaultValue.EMPTY_OBJECT)).radius,l={center:e.center,semiMajorAxis:r,semiMinorAxis:r,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new t.EllipseOutlineGeometry(l),this._workerName="createCircleOutlineGeometry"}G.packedLength=t.EllipseOutlineGeometry.packedLength,G.pack=function(e,i,r){return t.EllipseOutlineGeometry.pack(e._ellipseGeometry,i,r)};const _=new t.EllipseOutlineGeometry({center:new e.Cartesian3,semiMajorAxis:1,semiMinorAxis:1}),f={center:new e.Cartesian3,radius:void 0,ellipsoid:e.Ellipsoid.clone(e.Ellipsoid.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};return G.unpack=function(r,l,n){const o=t.EllipseOutlineGeometry.unpack(r,l,_);return f.center=e.Cartesian3.clone(o._center,f.center),f.ellipsoid=e.Ellipsoid.clone(o._ellipsoid,f.ellipsoid),f.height=o._height,f.extrudedHeight=o._extrudedHeight,f.granularity=o._granularity,f.numberOfVerticalLines=o._numberOfVerticalLines,i.defined(n)?(f.semiMajorAxis=o._semiMajorAxis,f.semiMinorAxis=o._semiMinorAxis,n._ellipseGeometry=new t.EllipseOutlineGeometry(f),n):(f.radius=o._semiMajorAxis,new G(f))},G.createGeometry=function(e){return t.EllipseOutlineGeometry.createGeometry(e._ellipseGeometry)},function(t,r){return i.defined(r)&&(t=G.unpack(t,r)),t._ellipseGeometry._center=e.Cartesian3.clone(t._ellipseGeometry._center),t._ellipseGeometry._ellipsoid=e.Ellipsoid.clone(t._ellipseGeometry._ellipsoid),G.createGeometry(t)}})); diff --git a/public/static/Cesium/Workers/createCoplanarPolygonGeometry.js b/public/static/Cesium/Workers/createCoplanarPolygonGeometry.js new file mode 100644 index 0000000..b5f757c --- /dev/null +++ b/public/static/Cesium/Workers/createCoplanarPolygonGeometry.js @@ -0,0 +1 @@ +define(["./arrayRemoveDuplicates-0d8dde26","./BoundingRectangle-b88a4eda","./Transforms-c842a68c","./Matrix2-7a8e9daf","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./CoplanarPolygonGeometryLibrary-b81a1d6c","./defaultValue-f6d5e6da","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryInstance-c4920693","./GeometryPipeline-87cdea8e","./IndexDatatype-a9b1bc18","./Math-355606c6","./PolygonGeometryLibrary-f7ee0859","./PolygonPipeline-eec72ff0","./VertexFormat-fbdec922","./combine-0c102d93","./RuntimeError-9b4ce3fb","./WebGLConstants-7f557f93","./OrientedBoundingBox-04b751ee","./EllipsoidTangentPlane-05ee7166","./AxisAlignedBoundingBox-93c1311e","./IntersectionTests-863687a2","./Plane-5931b53e","./AttributeCompression-0b8f7b7d","./EncodedCartesian3-abad5e8c","./ArcType-26a3f38d","./EllipsoidRhumbLine-1289f7e8"],(function(e,t,n,o,r,a,i,s,l,y,c,p,u,m,d,g,h,x,C,b,f,P,A,w,L,G,F,v,E){"use strict";const _=new r.Cartesian3,T=new t.BoundingRectangle,k=new o.Cartesian2,D=new o.Cartesian2,V=new r.Cartesian3,R=new r.Cartesian3,H=new r.Cartesian3,I=new r.Cartesian3,M=new r.Cartesian3,B=new r.Cartesian3,O=new n.Quaternion,z=new r.Matrix3,S=new r.Matrix3,N=new r.Cartesian3;function Q(e,t,i,c,p,d,h,x,C){const b=e.positions;let f=g.PolygonPipeline.triangulate(e.positions2D,e.holes);f.length<3&&(f=[0,1,2]);const P=u.IndexDatatype.createTypedArray(b.length,f.length);P.set(f);let A=z;if(0!==c){let e=n.Quaternion.fromAxisAngle(h,c,O);if(A=r.Matrix3.fromQuaternion(e,A),t.tangent||t.bitangent){e=n.Quaternion.fromAxisAngle(h,-c,O);const o=r.Matrix3.fromQuaternion(e,S);x=r.Cartesian3.normalize(r.Matrix3.multiplyByVector(o,x,x),x),t.bitangent&&(C=r.Cartesian3.normalize(r.Cartesian3.cross(h,x,C),C))}}else A=r.Matrix3.clone(r.Matrix3.IDENTITY,A);const w=D;t.st&&(w.x=i.x,w.y=i.y);const L=b.length,G=3*L,F=new Float64Array(G),v=t.normal?new Float32Array(G):void 0,E=t.tangent?new Float32Array(G):void 0,T=t.bitangent?new Float32Array(G):void 0,V=t.st?new Float32Array(2*L):void 0;let R=0,H=0,I=0,M=0,B=0;for(let e=0;e<L;e++){const n=b[e];if(F[R++]=n.x,F[R++]=n.y,F[R++]=n.z,t.st)if(s.defined(p)&&p.positions.length===L)V[B++]=p.positions[e].x,V[B++]=p.positions[e].y;else{const e=d(r.Matrix3.multiplyByVector(A,n,_),k);o.Cartesian2.subtract(e,w,e);const t=m.CesiumMath.clamp(e.x/i.width,0,1),a=m.CesiumMath.clamp(e.y/i.height,0,1);V[B++]=t,V[B++]=a}t.normal&&(v[H++]=h.x,v[H++]=h.y,v[H++]=h.z),t.tangent&&(E[M++]=x.x,E[M++]=x.y,E[M++]=x.z),t.bitangent&&(T[I++]=C.x,T[I++]=C.y,T[I++]=C.z)}const N=new y.GeometryAttributes;return t.position&&(N.position=new l.GeometryAttribute({componentDatatype:a.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:F})),t.normal&&(N.normal=new l.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:v})),t.tangent&&(N.tangent=new l.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:E})),t.bitangent&&(N.bitangent=new l.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:T})),t.st&&(N.st=new l.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:V})),new l.Geometry({attributes:N,indices:P,primitiveType:l.PrimitiveType.TRIANGLES})}function j(e){const t=(e=s.defaultValue(e,s.defaultValue.EMPTY_OBJECT)).polygonHierarchy,n=e.textureCoordinates,a=s.defaultValue(e.vertexFormat,h.VertexFormat.DEFAULT);this._vertexFormat=h.VertexFormat.clone(a),this._polygonHierarchy=t,this._stRotation=s.defaultValue(e.stRotation,0),this._ellipsoid=r.Ellipsoid.clone(s.defaultValue(e.ellipsoid,r.Ellipsoid.WGS84)),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=n,this.packedLength=d.PolygonGeometryLibrary.computeHierarchyPackedLength(t,r.Cartesian3)+h.VertexFormat.packedLength+r.Ellipsoid.packedLength+(s.defined(n)?d.PolygonGeometryLibrary.computeHierarchyPackedLength(n,o.Cartesian2):1)+2}j.fromPositions=function(e){return new j({polygonHierarchy:{positions:(e=s.defaultValue(e,s.defaultValue.EMPTY_OBJECT)).positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,textureCoordinates:e.textureCoordinates})},j.pack=function(e,t,n){return n=s.defaultValue(n,0),n=d.PolygonGeometryLibrary.packPolygonHierarchy(e._polygonHierarchy,t,n,r.Cartesian3),r.Ellipsoid.pack(e._ellipsoid,t,n),n+=r.Ellipsoid.packedLength,h.VertexFormat.pack(e._vertexFormat,t,n),n+=h.VertexFormat.packedLength,t[n++]=e._stRotation,s.defined(e._textureCoordinates)?n=d.PolygonGeometryLibrary.packPolygonHierarchy(e._textureCoordinates,t,n,o.Cartesian2):t[n++]=-1,t[n++]=e.packedLength,t};const U=r.Ellipsoid.clone(r.Ellipsoid.UNIT_SPHERE),Y=new h.VertexFormat,q={polygonHierarchy:{}};return j.unpack=function(e,t,n){t=s.defaultValue(t,0);const a=d.PolygonGeometryLibrary.unpackPolygonHierarchy(e,t,r.Cartesian3);t=a.startingIndex,delete a.startingIndex;const i=r.Ellipsoid.unpack(e,t,U);t+=r.Ellipsoid.packedLength;const l=h.VertexFormat.unpack(e,t,Y);t+=h.VertexFormat.packedLength;const y=e[t++],c=-1===e[t]?void 0:d.PolygonGeometryLibrary.unpackPolygonHierarchy(e,t,o.Cartesian2);s.defined(c)?(t=c.startingIndex,delete c.startingIndex):t++;const p=e[t++];return s.defined(n)||(n=new j(q)),n._polygonHierarchy=a,n._ellipsoid=r.Ellipsoid.clone(i,n._ellipsoid),n._vertexFormat=h.VertexFormat.clone(l,n._vertexFormat),n._stRotation=y,n._textureCoordinates=c,n.packedLength=p,n},j.createGeometry=function(t){const o=t._vertexFormat,a=t._polygonHierarchy,y=t._stRotation,g=t._textureCoordinates,h=s.defined(g);let x=a.positions;if(x=e.arrayRemoveDuplicates(x,r.Cartesian3.equalsEpsilon,!0),x.length<3)return;let C=V,b=R,f=H,P=M;const A=B;if(!i.CoplanarPolygonGeometryLibrary.computeProjectTo2DArguments(x,I,P,A))return;if(C=r.Cartesian3.cross(P,A,C),C=r.Cartesian3.normalize(C,C),!r.Cartesian3.equalsEpsilon(I,r.Cartesian3.ZERO,m.CesiumMath.EPSILON6)){const e=t._ellipsoid.geodeticSurfaceNormal(I,N);r.Cartesian3.dot(C,e)<0&&(C=r.Cartesian3.negate(C,C),P=r.Cartesian3.negate(P,P))}const w=i.CoplanarPolygonGeometryLibrary.createProjectPointsTo2DFunction(I,P,A),L=i.CoplanarPolygonGeometryLibrary.createProjectPointTo2DFunction(I,P,A);o.tangent&&(b=r.Cartesian3.clone(P,b)),o.bitangent&&(f=r.Cartesian3.clone(A,f));const G=d.PolygonGeometryLibrary.polygonsFromHierarchy(a,h,w,!1),F=G.hierarchy,v=G.polygons,E=h?d.PolygonGeometryLibrary.polygonsFromHierarchy(g,!0,(function(e){return e}),!1).polygons:void 0;if(0===F.length)return;x=F[0].outerRing;const _=n.BoundingSphere.fromPoints(x),k=d.PolygonGeometryLibrary.computeBoundingRectangle(C,L,x,y,T),D=[];for(let e=0;e<v.length;e++){const t=new c.GeometryInstance({geometry:Q(v[e],o,k,y,h?E[e]:void 0,L,C,b,f)});D.push(t)}const O=p.GeometryPipeline.combineInstances(D)[0];O.attributes.position.values=new Float64Array(O.attributes.position.values),O.indices=u.IndexDatatype.createTypedArray(O.attributes.position.values.length/3,O.indices);const z=O.attributes;return o.position||delete z.position,new l.Geometry({attributes:z,indices:O.indices,primitiveType:O.primitiveType,boundingSphere:_})},function(e,t){return s.defined(t)&&(e=j.unpack(e,t)),j.createGeometry(e)}})); diff --git a/public/static/Cesium/Workers/createCoplanarPolygonOutlineGeometry.js b/public/static/Cesium/Workers/createCoplanarPolygonOutlineGeometry.js new file mode 100644 index 0000000..c6ece98 --- /dev/null +++ b/public/static/Cesium/Workers/createCoplanarPolygonOutlineGeometry.js @@ -0,0 +1 @@ +define(["./arrayRemoveDuplicates-0d8dde26","./Transforms-c842a68c","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./CoplanarPolygonGeometryLibrary-b81a1d6c","./defaultValue-f6d5e6da","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryInstance-c4920693","./GeometryPipeline-87cdea8e","./IndexDatatype-a9b1bc18","./PolygonGeometryLibrary-f7ee0859","./Math-355606c6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93","./OrientedBoundingBox-04b751ee","./EllipsoidTangentPlane-05ee7166","./AxisAlignedBoundingBox-93c1311e","./IntersectionTests-863687a2","./Plane-5931b53e","./AttributeCompression-0b8f7b7d","./EncodedCartesian3-abad5e8c","./ArcType-26a3f38d","./EllipsoidRhumbLine-1289f7e8","./PolygonPipeline-eec72ff0"],(function(e,t,n,o,r,i,a,y,l,s,c,u,p,m,d,g,h,f,P,b,G,L,C,T,A,E,x){"use strict";function H(e){const t=e.length,n=new Float64Array(3*t),r=c.IndexDatatype.createTypedArray(t,2*t);let i=0,l=0;for(let o=0;o<t;o++){const a=e[o];n[i++]=a.x,n[i++]=a.y,n[i++]=a.z,r[l++]=o,r[l++]=(o+1)%t}const s=new y.GeometryAttributes({position:new a.GeometryAttribute({componentDatatype:o.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:n})});return new a.Geometry({attributes:s,indices:r,primitiveType:a.PrimitiveType.LINES})}function k(e){const t=(e=i.defaultValue(e,i.defaultValue.EMPTY_OBJECT)).polygonHierarchy;this._polygonHierarchy=t,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=u.PolygonGeometryLibrary.computeHierarchyPackedLength(t,n.Cartesian3)+1}k.fromPositions=function(e){return new k({polygonHierarchy:{positions:(e=i.defaultValue(e,i.defaultValue.EMPTY_OBJECT)).positions}})},k.pack=function(e,t,o){return o=i.defaultValue(o,0),t[o=u.PolygonGeometryLibrary.packPolygonHierarchy(e._polygonHierarchy,t,o,n.Cartesian3)]=e.packedLength,t};const w={polygonHierarchy:{}};return k.unpack=function(e,t,o){t=i.defaultValue(t,0);const r=u.PolygonGeometryLibrary.unpackPolygonHierarchy(e,t,n.Cartesian3);t=r.startingIndex,delete r.startingIndex;const a=e[t];return i.defined(o)||(o=new k(w)),o._polygonHierarchy=r,o.packedLength=a,o},k.createGeometry=function(o){const i=o._polygonHierarchy;let y=i.positions;if(y=e.arrayRemoveDuplicates(y,n.Cartesian3.equalsEpsilon,!0),y.length<3)return;if(!r.CoplanarPolygonGeometryLibrary.validOutline(y))return;const c=u.PolygonGeometryLibrary.polygonOutlinesFromHierarchy(i,!1);if(0===c.length)return;const p=[];for(let e=0;e<c.length;e++){const t=new l.GeometryInstance({geometry:H(c[e])});p.push(t)}const m=s.GeometryPipeline.combineInstances(p)[0],d=t.BoundingSphere.fromPoints(i.positions);return new a.Geometry({attributes:m.attributes,indices:m.indices,primitiveType:m.primitiveType,boundingSphere:d})},function(e,t){return i.defined(t)&&(e=k.unpack(e,t)),e._ellipsoid=n.Ellipsoid.clone(e._ellipsoid),k.createGeometry(e)}})); diff --git a/public/static/Cesium/Workers/createCorridorGeometry.js b/public/static/Cesium/Workers/createCorridorGeometry.js new file mode 100644 index 0000000..fc3f313 --- /dev/null +++ b/public/static/Cesium/Workers/createCorridorGeometry.js @@ -0,0 +1 @@ +define(["./arrayRemoveDuplicates-0d8dde26","./Transforms-c842a68c","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./PolylineVolumeGeometryLibrary-e2129320","./CorridorGeometryLibrary-0264fc3e","./defaultValue-f6d5e6da","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18","./Math-355606c6","./PolygonPipeline-eec72ff0","./Matrix2-7a8e9daf","./VertexFormat-fbdec922","./combine-0c102d93","./RuntimeError-9b4ce3fb","./WebGLConstants-7f557f93","./EllipsoidTangentPlane-05ee7166","./AxisAlignedBoundingBox-93c1311e","./IntersectionTests-863687a2","./Plane-5931b53e","./PolylinePipeline-dfaa9e90","./EllipsoidGeodesic-20aaff03","./EllipsoidRhumbLine-1289f7e8"],(function(t,e,r,a,i,o,n,s,l,d,u,m,c,y,f,p,g,h,C,b,A,_,w,v,T){"use strict";const G=new r.Cartesian3,E=new r.Cartesian3,V=new r.Cartesian3,x=new r.Cartesian3,L=new r.Cartesian3,P=new r.Cartesian3,F=new r.Cartesian3,N=new r.Cartesian3;function D(t,e){for(let r=0;r<t.length;r++)t[r]=e.scaleToGeodeticSurface(t[r],t[r]);return t}function M(t,e,a,i,n,s){const l=t.normals,d=t.tangents,u=t.bitangents,m=r.Cartesian3.normalize(r.Cartesian3.cross(a,e,F),F);s.normal&&o.CorridorGeometryLibrary.addAttribute(l,e,i,n),s.tangent&&o.CorridorGeometryLibrary.addAttribute(d,m,i,n),s.bitangent&&o.CorridorGeometryLibrary.addAttribute(u,a,i,n)}function O(t,e,i){const d=t.positions,c=t.corners,y=t.endPositions,f=t.lefts,p=t.normals,g=new l.GeometryAttributes;let h,C,b,A=0,_=0,w=0;for(C=0;C<d.length;C+=2)b=d[C].length-3,A+=b,w+=2*b,_+=d[C+1].length-3;for(A+=3,_+=3,C=0;C<c.length;C++){h=c[C];const t=c[C].leftPositions;n.defined(t)?(b=t.length,A+=b,w+=b):(b=c[C].rightPositions.length,_+=b,w+=b)}const v=n.defined(y);let T;v&&(T=y[0].length-3,A+=T,_+=T,T/=3,w+=6*T);const L=A+_,D=new Float64Array(L),O={normals:e.normal?new Float32Array(L):void 0,tangents:e.tangent?new Float32Array(L):void 0,bitangents:e.bitangent?new Float32Array(L):void 0};let I,S,R,k,H,z,B=0,U=L-1,Y=G,W=E;const q=T/2,J=u.IndexDatatype.createTypedArray(L/3,w);let j=0;if(v){z=V,H=x;const t=y[0];for(Y=r.Cartesian3.fromArray(p,0,Y),W=r.Cartesian3.fromArray(f,0,W),C=0;C<q;C++)z=r.Cartesian3.fromArray(t,3*(q-1-C),z),H=r.Cartesian3.fromArray(t,3*(q+C),H),o.CorridorGeometryLibrary.addAttribute(D,H,B),o.CorridorGeometryLibrary.addAttribute(D,z,void 0,U),M(O,Y,W,B,U,e),S=B/3,k=S+1,I=(U-2)/3,R=I-1,J[j++]=I,J[j++]=S,J[j++]=R,J[j++]=R,J[j++]=S,J[j++]=k,B+=3,U-=3}let K,Q,X=0,Z=0,$=d[X++],tt=d[X++];for(D.set($,B),D.set(tt,U-tt.length+1),W=r.Cartesian3.fromArray(f,Z,W),b=tt.length-3,C=0;C<b;C+=3)K=i.geodeticSurfaceNormal(r.Cartesian3.fromArray($,C,F),F),Q=i.geodeticSurfaceNormal(r.Cartesian3.fromArray(tt,b-C,N),N),Y=r.Cartesian3.normalize(r.Cartesian3.add(K,Q,Y),Y),M(O,Y,W,B,U,e),S=B/3,k=S+1,I=(U-2)/3,R=I-1,J[j++]=I,J[j++]=S,J[j++]=R,J[j++]=R,J[j++]=S,J[j++]=k,B+=3,U-=3;for(K=i.geodeticSurfaceNormal(r.Cartesian3.fromArray($,b,F),F),Q=i.geodeticSurfaceNormal(r.Cartesian3.fromArray(tt,b,N),N),Y=r.Cartesian3.normalize(r.Cartesian3.add(K,Q,Y),Y),Z+=3,C=0;C<c.length;C++){let t;h=c[C];const a=h.leftPositions,s=h.rightPositions;let l,u,m=P,y=V,g=x;if(Y=r.Cartesian3.fromArray(p,Z,Y),n.defined(a)){for(M(O,Y,W,void 0,U,e),U-=3,l=k,u=R,t=0;t<a.length/3;t++)m=r.Cartesian3.fromArray(a,3*t,m),J[j++]=l,J[j++]=u-t-1,J[j++]=u-t,o.CorridorGeometryLibrary.addAttribute(D,m,void 0,U),y=r.Cartesian3.fromArray(D,3*(u-t-1),y),g=r.Cartesian3.fromArray(D,3*l,g),W=r.Cartesian3.normalize(r.Cartesian3.subtract(y,g,W),W),M(O,Y,W,void 0,U,e),U-=3;m=r.Cartesian3.fromArray(D,3*l,m),y=r.Cartesian3.subtract(r.Cartesian3.fromArray(D,3*u,y),m,y),g=r.Cartesian3.subtract(r.Cartesian3.fromArray(D,3*(u-t),g),m,g),W=r.Cartesian3.normalize(r.Cartesian3.add(y,g,W),W),M(O,Y,W,B,void 0,e),B+=3}else{for(M(O,Y,W,B,void 0,e),B+=3,l=R,u=k,t=0;t<s.length/3;t++)m=r.Cartesian3.fromArray(s,3*t,m),J[j++]=l,J[j++]=u+t,J[j++]=u+t+1,o.CorridorGeometryLibrary.addAttribute(D,m,B),y=r.Cartesian3.fromArray(D,3*l,y),g=r.Cartesian3.fromArray(D,3*(u+t),g),W=r.Cartesian3.normalize(r.Cartesian3.subtract(y,g,W),W),M(O,Y,W,B,void 0,e),B+=3;m=r.Cartesian3.fromArray(D,3*l,m),y=r.Cartesian3.subtract(r.Cartesian3.fromArray(D,3*(u+t),y),m,y),g=r.Cartesian3.subtract(r.Cartesian3.fromArray(D,3*u,g),m,g),W=r.Cartesian3.normalize(r.Cartesian3.negate(r.Cartesian3.add(g,y,W),W),W),M(O,Y,W,void 0,U,e),U-=3}for($=d[X++],tt=d[X++],$.splice(0,3),tt.splice(tt.length-3,3),D.set($,B),D.set(tt,U-tt.length+1),b=tt.length-3,Z+=3,W=r.Cartesian3.fromArray(f,Z,W),t=0;t<tt.length;t+=3)K=i.geodeticSurfaceNormal(r.Cartesian3.fromArray($,t,F),F),Q=i.geodeticSurfaceNormal(r.Cartesian3.fromArray(tt,b-t,N),N),Y=r.Cartesian3.normalize(r.Cartesian3.add(K,Q,Y),Y),M(O,Y,W,B,U,e),k=B/3,S=k-1,R=(U-2)/3,I=R+1,J[j++]=I,J[j++]=S,J[j++]=R,J[j++]=R,J[j++]=S,J[j++]=k,B+=3,U-=3;B-=3,U+=3}if(Y=r.Cartesian3.fromArray(p,p.length-3,Y),M(O,Y,W,B,U,e),v){B+=3,U-=3,z=V,H=x;const t=y[1];for(C=0;C<q;C++)z=r.Cartesian3.fromArray(t,3*(T-C-1),z),H=r.Cartesian3.fromArray(t,3*C,H),o.CorridorGeometryLibrary.addAttribute(D,z,void 0,U),o.CorridorGeometryLibrary.addAttribute(D,H,B),M(O,Y,W,B,U,e),k=B/3,S=k-1,R=(U-2)/3,I=R+1,J[j++]=I,J[j++]=S,J[j++]=R,J[j++]=R,J[j++]=S,J[j++]=k,B+=3,U-=3}if(g.position=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:D}),e.st){const t=new Float32Array(L/3*2);let e,r,i=0;if(v){A/=3,_/=3;const a=Math.PI/(T+1);let o;r=1/(A-T+1),e=1/(_-T+1);const n=T/2;for(C=n+1;C<T+1;C++)o=m.CesiumMath.PI_OVER_TWO+a*C,t[i++]=e*(1+Math.cos(o)),t[i++]=.5*(1+Math.sin(o));for(C=1;C<_-T+1;C++)t[i++]=C*e,t[i++]=0;for(C=T;C>n;C--)o=m.CesiumMath.PI_OVER_TWO-C*a,t[i++]=1-e*(1+Math.cos(o)),t[i++]=.5*(1+Math.sin(o));for(C=n;C>0;C--)o=m.CesiumMath.PI_OVER_TWO-a*C,t[i++]=1-r*(1+Math.cos(o)),t[i++]=.5*(1+Math.sin(o));for(C=A-T;C>0;C--)t[i++]=C*r,t[i++]=1;for(C=1;C<n+1;C++)o=m.CesiumMath.PI_OVER_TWO+a*C,t[i++]=r*(1+Math.cos(o)),t[i++]=.5*(1+Math.sin(o))}else{for(A/=3,_/=3,r=1/(A-1),e=1/(_-1),C=0;C<_;C++)t[i++]=C*e,t[i++]=0;for(C=A;C>0;C--)t[i++]=(C-1)*r,t[i++]=1}g.st=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:t})}return e.normal&&(g.normal=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:O.normals})),e.tangent&&(g.tangent=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:O.tangents})),e.bitangent&&(g.bitangent=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:O.bitangents})),{attributes:g,indices:J}}function I(t,e,r){r[e++]=t[0],r[e++]=t[1],r[e++]=t[2];for(let a=3;a<t.length;a+=3){const i=t[a],o=t[a+1],n=t[a+2];r[e++]=i,r[e++]=o,r[e++]=n,r[e++]=i,r[e++]=o,r[e++]=n}return r[e++]=t[0],r[e++]=t[1],r[e++]=t[2],r}function S(t,e){const i=new f.VertexFormat({position:e.position,normal:e.normal||e.bitangent||t.shadowVolume,tangent:e.tangent,bitangent:e.normal||e.bitangent,st:e.st}),l=t.ellipsoid,m=O(o.CorridorGeometryLibrary.computePositions(t),i,l),y=t.height,p=t.extrudedHeight;let g=m.attributes;const h=m.indices;let C=g.position.values,b=C.length;const A=new Float64Array(6*b);let _=new Float64Array(b);_.set(C);let w,v=new Float64Array(4*b);C=c.PolygonPipeline.scaleToGeodeticHeight(C,y,l),v=I(C,0,v),_=c.PolygonPipeline.scaleToGeodeticHeight(_,p,l),v=I(_,2*b,v),A.set(C),A.set(_,b),A.set(v,2*b),g.position.values=A,g=function(t,e){if(!(e.normal||e.tangent||e.bitangent||e.st))return t;const a=t.position.values;let i,n;(e.normal||e.bitangent)&&(i=t.normal.values,n=t.bitangent.values);const s=t.position.values.length/18,l=3*s,d=2*s,u=2*l;let m;if(e.normal||e.bitangent||e.tangent){const s=e.normal?new Float32Array(6*l):void 0,d=e.tangent?new Float32Array(6*l):void 0,c=e.bitangent?new Float32Array(6*l):void 0;let y=G,f=E,p=V,g=x,h=L,C=P,b=u;for(m=0;m<l;m+=3){const t=b+u;y=r.Cartesian3.fromArray(a,m,y),f=r.Cartesian3.fromArray(a,m+l,f),p=r.Cartesian3.fromArray(a,(m+3)%l,p),f=r.Cartesian3.subtract(f,y,f),p=r.Cartesian3.subtract(p,y,p),g=r.Cartesian3.normalize(r.Cartesian3.cross(f,p,g),g),e.normal&&(o.CorridorGeometryLibrary.addAttribute(s,g,t),o.CorridorGeometryLibrary.addAttribute(s,g,t+3),o.CorridorGeometryLibrary.addAttribute(s,g,b),o.CorridorGeometryLibrary.addAttribute(s,g,b+3)),(e.tangent||e.bitangent)&&(C=r.Cartesian3.fromArray(i,m,C),e.bitangent&&(o.CorridorGeometryLibrary.addAttribute(c,C,t),o.CorridorGeometryLibrary.addAttribute(c,C,t+3),o.CorridorGeometryLibrary.addAttribute(c,C,b),o.CorridorGeometryLibrary.addAttribute(c,C,b+3)),e.tangent&&(h=r.Cartesian3.normalize(r.Cartesian3.cross(C,g,h),h),o.CorridorGeometryLibrary.addAttribute(d,h,t),o.CorridorGeometryLibrary.addAttribute(d,h,t+3),o.CorridorGeometryLibrary.addAttribute(d,h,b),o.CorridorGeometryLibrary.addAttribute(d,h,b+3))),b+=6}if(e.normal){for(s.set(i),m=0;m<l;m+=3)s[m+l]=-i[m],s[m+l+1]=-i[m+1],s[m+l+2]=-i[m+2];t.normal.values=s}else t.normal=void 0;if(e.bitangent?(c.set(n),c.set(n,l),t.bitangent.values=c):t.bitangent=void 0,e.tangent){const e=t.tangent.values;d.set(e),d.set(e,l),t.tangent.values=d}}if(e.st){const e=t.st.values,r=new Float32Array(6*d);r.set(e),r.set(e,d);let a=2*d;for(let t=0;t<2;t++){for(r[a++]=e[0],r[a++]=e[1],m=2;m<d;m+=2){const t=e[m],i=e[m+1];r[a++]=t,r[a++]=i,r[a++]=t,r[a++]=i}r[a++]=e[0],r[a++]=e[1]}t.st.values=r}return t}(g,e);const T=b/3;if(t.shadowVolume){const t=g.normal.values;b=t.length;let r=new Float32Array(6*b);for(w=0;w<b;w++)t[w]=-t[w];r.set(t,b),r=I(t,4*b,r),g.extrudeDirection=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:r}),e.normal||(g.normal=void 0)}if(n.defined(t.offsetAttribute)){let e=new Uint8Array(6*T);if(t.offsetAttribute===d.GeometryOffsetAttribute.TOP)e=e.fill(1,0,T).fill(1,2*T,4*T);else{const r=t.offsetAttribute===d.GeometryOffsetAttribute.NONE?0:1;e=e.fill(r)}g.applyOffset=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:e})}const F=h.length,N=T+T,D=u.IndexDatatype.createTypedArray(A.length/3,2*F+3*N);D.set(h);let M,S,R,k,H=F;for(w=0;w<F;w+=3){const t=h[w],e=h[w+1],r=h[w+2];D[H++]=r+T,D[H++]=e+T,D[H++]=t+T}for(w=0;w<N;w+=2)M=w+N,S=M+N,R=M+1,k=S+1,D[H++]=M,D[H++]=S,D[H++]=R,D[H++]=R,D[H++]=S,D[H++]=k;return{attributes:g,indices:D}}const R=new r.Cartesian3,k=new r.Cartesian3,H=new r.Cartographic;function z(t,e,a,i,o,n){const s=r.Cartesian3.subtract(e,t,R);r.Cartesian3.normalize(s,s);const l=a.geodeticSurfaceNormal(t,k),d=r.Cartesian3.cross(s,l,R);r.Cartesian3.multiplyByScalar(d,i,d);let u=o.latitude,m=o.longitude,c=n.latitude,y=n.longitude;r.Cartesian3.add(t,d,k),a.cartesianToCartographic(k,H);let f=H.latitude,p=H.longitude;u=Math.min(u,f),m=Math.min(m,p),c=Math.max(c,f),y=Math.max(y,p),r.Cartesian3.subtract(t,d,k),a.cartesianToCartographic(k,H),f=H.latitude,p=H.longitude,u=Math.min(u,f),m=Math.min(m,p),c=Math.max(c,f),y=Math.max(y,p),o.latitude=u,o.longitude=m,n.latitude=c,n.longitude=y}const B=new r.Cartesian3,U=new r.Cartesian3,Y=new r.Cartographic,W=new r.Cartographic;function q(e,a,o,s,l){e=D(e,a);const d=t.arrayRemoveDuplicates(e,r.Cartesian3.equalsEpsilon),u=d.length;if(u<2||o<=0)return new y.Rectangle;const m=.5*o;let c,f;if(Y.latitude=Number.POSITIVE_INFINITY,Y.longitude=Number.POSITIVE_INFINITY,W.latitude=Number.NEGATIVE_INFINITY,W.longitude=Number.NEGATIVE_INFINITY,s===i.CornerType.ROUNDED){const t=d[0];r.Cartesian3.subtract(t,d[1],B),r.Cartesian3.normalize(B,B),r.Cartesian3.multiplyByScalar(B,m,B),r.Cartesian3.add(t,B,U),a.cartesianToCartographic(U,H),c=H.latitude,f=H.longitude,Y.latitude=Math.min(Y.latitude,c),Y.longitude=Math.min(Y.longitude,f),W.latitude=Math.max(W.latitude,c),W.longitude=Math.max(W.longitude,f)}for(let t=0;t<u-1;++t)z(d[t],d[t+1],a,m,Y,W);const p=d[u-1];r.Cartesian3.subtract(p,d[u-2],B),r.Cartesian3.normalize(B,B),r.Cartesian3.multiplyByScalar(B,m,B),r.Cartesian3.add(p,B,U),z(p,U,a,m,Y,W),s===i.CornerType.ROUNDED&&(a.cartesianToCartographic(U,H),c=H.latitude,f=H.longitude,Y.latitude=Math.min(Y.latitude,c),Y.longitude=Math.min(Y.longitude,f),W.latitude=Math.max(W.latitude,c),W.longitude=Math.max(W.longitude,f));const g=n.defined(l)?l:new y.Rectangle;return g.north=W.latitude,g.south=Y.latitude,g.east=W.longitude,g.west=Y.longitude,g}function J(t){const e=(t=n.defaultValue(t,n.defaultValue.EMPTY_OBJECT)).positions,a=t.width,o=n.defaultValue(t.height,0),s=n.defaultValue(t.extrudedHeight,o);this._positions=e,this._ellipsoid=r.Ellipsoid.clone(n.defaultValue(t.ellipsoid,r.Ellipsoid.WGS84)),this._vertexFormat=f.VertexFormat.clone(n.defaultValue(t.vertexFormat,f.VertexFormat.DEFAULT)),this._width=a,this._height=Math.max(o,s),this._extrudedHeight=Math.min(o,s),this._cornerType=n.defaultValue(t.cornerType,i.CornerType.ROUNDED),this._granularity=n.defaultValue(t.granularity,m.CesiumMath.RADIANS_PER_DEGREE),this._shadowVolume=n.defaultValue(t.shadowVolume,!1),this._workerName="createCorridorGeometry",this._offsetAttribute=t.offsetAttribute,this._rectangle=void 0,this.packedLength=1+e.length*r.Cartesian3.packedLength+r.Ellipsoid.packedLength+f.VertexFormat.packedLength+7}J.pack=function(t,e,a){a=n.defaultValue(a,0);const i=t._positions,o=i.length;e[a++]=o;for(let t=0;t<o;++t,a+=r.Cartesian3.packedLength)r.Cartesian3.pack(i[t],e,a);return r.Ellipsoid.pack(t._ellipsoid,e,a),a+=r.Ellipsoid.packedLength,f.VertexFormat.pack(t._vertexFormat,e,a),a+=f.VertexFormat.packedLength,e[a++]=t._width,e[a++]=t._height,e[a++]=t._extrudedHeight,e[a++]=t._cornerType,e[a++]=t._granularity,e[a++]=t._shadowVolume?1:0,e[a]=n.defaultValue(t._offsetAttribute,-1),e};const j=r.Ellipsoid.clone(r.Ellipsoid.UNIT_SPHERE),K=new f.VertexFormat,Q={positions:void 0,ellipsoid:j,vertexFormat:K,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};return J.unpack=function(t,e,a){e=n.defaultValue(e,0);const i=t[e++],o=new Array(i);for(let a=0;a<i;++a,e+=r.Cartesian3.packedLength)o[a]=r.Cartesian3.unpack(t,e);const s=r.Ellipsoid.unpack(t,e,j);e+=r.Ellipsoid.packedLength;const l=f.VertexFormat.unpack(t,e,K);e+=f.VertexFormat.packedLength;const d=t[e++],u=t[e++],m=t[e++],c=t[e++],y=t[e++],p=1===t[e++],g=t[e];return n.defined(a)?(a._positions=o,a._ellipsoid=r.Ellipsoid.clone(s,a._ellipsoid),a._vertexFormat=f.VertexFormat.clone(l,a._vertexFormat),a._width=d,a._height=u,a._extrudedHeight=m,a._cornerType=c,a._granularity=y,a._shadowVolume=p,a._offsetAttribute=-1===g?void 0:g,a):(Q.positions=o,Q.width=d,Q.height=u,Q.extrudedHeight=m,Q.cornerType=c,Q.granularity=y,Q.shadowVolume=p,Q.offsetAttribute=-1===g?void 0:g,new J(Q))},J.computeRectangle=function(t,e){const a=(t=n.defaultValue(t,n.defaultValue.EMPTY_OBJECT)).positions,o=t.width;return q(a,n.defaultValue(t.ellipsoid,r.Ellipsoid.WGS84),o,n.defaultValue(t.cornerType,i.CornerType.ROUNDED),e)},J.createGeometry=function(i){let l=i._positions;const u=i._width,y=i._ellipsoid;l=D(l,y);const f=t.arrayRemoveDuplicates(l,r.Cartesian3.equalsEpsilon);if(f.length<2||u<=0)return;const p=i._height,g=i._extrudedHeight,h=!m.CesiumMath.equalsEpsilon(p,g,0,m.CesiumMath.EPSILON2),C=i._vertexFormat,b={ellipsoid:y,positions:f,width:u,cornerType:i._cornerType,granularity:i._granularity,saveAttributes:!0};let A;if(h)b.height=p,b.extrudedHeight=g,b.shadowVolume=i._shadowVolume,b.offsetAttribute=i._offsetAttribute,A=S(b,C);else{if(A=O(o.CorridorGeometryLibrary.computePositions(b),C,y),A.attributes.position.values=c.PolygonPipeline.scaleToGeodeticHeight(A.attributes.position.values,p,y),n.defined(i._offsetAttribute)){const t=i._offsetAttribute===d.GeometryOffsetAttribute.NONE?0:1,e=A.attributes.position.values.length,r=new Uint8Array(e/3).fill(t);A.attributes.applyOffset=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:r})}}const _=A.attributes,w=e.BoundingSphere.fromVertices(_.position.values,void 0,3);return C.position||(A.attributes.position.values=void 0),new s.Geometry({attributes:_,indices:A.indices,primitiveType:s.PrimitiveType.TRIANGLES,boundingSphere:w,offsetAttribute:i._offsetAttribute})},J.createShadowVolume=function(t,e,r){const a=t._granularity,i=t._ellipsoid,o=e(a,i),n=r(a,i);return new J({positions:t._positions,width:t._width,cornerType:t._cornerType,ellipsoid:i,granularity:a,extrudedHeight:o,height:n,vertexFormat:f.VertexFormat.POSITION_ONLY,shadowVolume:!0})},Object.defineProperties(J.prototype,{rectangle:{get:function(){return n.defined(this._rectangle)||(this._rectangle=q(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}}),function(t,e){return n.defined(e)&&(t=J.unpack(t,e)),t._ellipsoid=r.Ellipsoid.clone(t._ellipsoid),J.createGeometry(t)}})); diff --git a/public/static/Cesium/Workers/createCorridorOutlineGeometry.js b/public/static/Cesium/Workers/createCorridorOutlineGeometry.js new file mode 100644 index 0000000..9940016 --- /dev/null +++ b/public/static/Cesium/Workers/createCorridorOutlineGeometry.js @@ -0,0 +1 @@ +define(["./arrayRemoveDuplicates-0d8dde26","./Transforms-c842a68c","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./PolylineVolumeGeometryLibrary-e2129320","./CorridorGeometryLibrary-0264fc3e","./defaultValue-f6d5e6da","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18","./Math-355606c6","./PolygonPipeline-eec72ff0","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93","./EllipsoidTangentPlane-05ee7166","./AxisAlignedBoundingBox-93c1311e","./IntersectionTests-863687a2","./Plane-5931b53e","./PolylinePipeline-dfaa9e90","./EllipsoidGeodesic-20aaff03","./EllipsoidRhumbLine-1289f7e8"],(function(e,t,i,r,o,n,s,a,l,u,d,p,f,h,c,y,g,b,m,A,_,E,C,G){"use strict";const T=new i.Cartesian3,P=new i.Cartesian3,v=new i.Cartesian3;function w(e,t){const u=[],p=e.positions,f=e.corners,h=e.endPositions,c=new l.GeometryAttributes;let y,g,b,m=0,A=0,_=0;for(g=0;g<p.length;g+=2)b=p[g].length-3,m+=b,_+=b/3*4,A+=p[g+1].length-3;for(m+=3,A+=3,g=0;g<f.length;g++){y=f[g];const e=f[g].leftPositions;s.defined(e)?(b=e.length,m+=b,_+=b/3*2):(b=f[g].rightPositions.length,A+=b,_+=b/3*2)}const E=s.defined(h);let C;E&&(C=h[0].length-3,m+=C,A+=C,C/=3,_+=4*C);const G=m+A,w=new Float64Array(G);let L,D,x,k,V,N,O=0,H=G-1;const I=C/2,M=d.IndexDatatype.createTypedArray(G/3,_+4);let B=0;if(M[B++]=O/3,M[B++]=(H-2)/3,E){u.push(O/3),N=T,V=P;const e=h[0];for(g=0;g<I;g++)N=i.Cartesian3.fromArray(e,3*(I-1-g),N),V=i.Cartesian3.fromArray(e,3*(I+g),V),n.CorridorGeometryLibrary.addAttribute(w,V,O),n.CorridorGeometryLibrary.addAttribute(w,N,void 0,H),D=O/3,k=D+1,L=(H-2)/3,x=L-1,M[B++]=L,M[B++]=x,M[B++]=D,M[B++]=k,O+=3,H-=3}let S=0,R=p[S++],U=p[S++];for(w.set(R,O),w.set(U,H-U.length+1),b=U.length-3,u.push(O/3,(H-2)/3),g=0;g<b;g+=3)D=O/3,k=D+1,L=(H-2)/3,x=L-1,M[B++]=L,M[B++]=x,M[B++]=D,M[B++]=k,O+=3,H-=3;for(g=0;g<f.length;g++){let e;y=f[g];const r=y.leftPositions,a=y.rightPositions;let l,d=v;if(s.defined(r)){for(H-=3,l=x,u.push(k),e=0;e<r.length/3;e++)d=i.Cartesian3.fromArray(r,3*e,d),M[B++]=l-e-1,M[B++]=l-e,n.CorridorGeometryLibrary.addAttribute(w,d,void 0,H),H-=3;u.push(l-Math.floor(r.length/6)),t===o.CornerType.BEVELED&&u.push((H-2)/3+1),O+=3}else{for(O+=3,l=k,u.push(x),e=0;e<a.length/3;e++)d=i.Cartesian3.fromArray(a,3*e,d),M[B++]=l+e,M[B++]=l+e+1,n.CorridorGeometryLibrary.addAttribute(w,d,O),O+=3;u.push(l+Math.floor(a.length/6)),t===o.CornerType.BEVELED&&u.push(O/3-1),H-=3}for(R=p[S++],U=p[S++],R.splice(0,3),U.splice(U.length-3,3),w.set(R,O),w.set(U,H-U.length+1),b=U.length-3,e=0;e<U.length;e+=3)k=O/3,D=k-1,x=(H-2)/3,L=x+1,M[B++]=L,M[B++]=x,M[B++]=D,M[B++]=k,O+=3,H-=3;O-=3,H+=3,u.push(O/3,(H-2)/3)}if(E){O+=3,H-=3,N=T,V=P;const e=h[1];for(g=0;g<I;g++)N=i.Cartesian3.fromArray(e,3*(C-g-1),N),V=i.Cartesian3.fromArray(e,3*g,V),n.CorridorGeometryLibrary.addAttribute(w,N,void 0,H),n.CorridorGeometryLibrary.addAttribute(w,V,O),k=O/3,D=k-1,x=(H-2)/3,L=x+1,M[B++]=L,M[B++]=x,M[B++]=D,M[B++]=k,O+=3,H-=3;u.push(O/3)}else u.push(O/3,(H-2)/3);return M[B++]=O/3,M[B++]=(H-2)/3,c.position=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:w}),{attributes:c,indices:M,wallIndices:u}}function L(e){const t=(e=s.defaultValue(e,s.defaultValue.EMPTY_OBJECT)).positions,r=e.width,n=s.defaultValue(e.height,0),a=s.defaultValue(e.extrudedHeight,n);this._positions=t,this._ellipsoid=i.Ellipsoid.clone(s.defaultValue(e.ellipsoid,i.Ellipsoid.WGS84)),this._width=r,this._height=Math.max(n,a),this._extrudedHeight=Math.min(n,a),this._cornerType=s.defaultValue(e.cornerType,o.CornerType.ROUNDED),this._granularity=s.defaultValue(e.granularity,p.CesiumMath.RADIANS_PER_DEGREE),this._offsetAttribute=e.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+t.length*i.Cartesian3.packedLength+i.Ellipsoid.packedLength+6}L.pack=function(e,t,r){r=s.defaultValue(r,0);const o=e._positions,n=o.length;t[r++]=n;for(let e=0;e<n;++e,r+=i.Cartesian3.packedLength)i.Cartesian3.pack(o[e],t,r);return i.Ellipsoid.pack(e._ellipsoid,t,r),r+=i.Ellipsoid.packedLength,t[r++]=e._width,t[r++]=e._height,t[r++]=e._extrudedHeight,t[r++]=e._cornerType,t[r++]=e._granularity,t[r]=s.defaultValue(e._offsetAttribute,-1),t};const D=i.Ellipsoid.clone(i.Ellipsoid.UNIT_SPHERE),x={positions:void 0,ellipsoid:D,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};return L.unpack=function(e,t,r){t=s.defaultValue(t,0);const o=e[t++],n=new Array(o);for(let r=0;r<o;++r,t+=i.Cartesian3.packedLength)n[r]=i.Cartesian3.unpack(e,t);const a=i.Ellipsoid.unpack(e,t,D);t+=i.Ellipsoid.packedLength;const l=e[t++],u=e[t++],d=e[t++],p=e[t++],f=e[t++],h=e[t];return s.defined(r)?(r._positions=n,r._ellipsoid=i.Ellipsoid.clone(a,r._ellipsoid),r._width=l,r._height=u,r._extrudedHeight=d,r._cornerType=p,r._granularity=f,r._offsetAttribute=-1===h?void 0:h,r):(x.positions=n,x.width=l,x.height=u,x.extrudedHeight=d,x.cornerType=p,x.granularity=f,x.offsetAttribute=-1===h?void 0:h,new L(x))},L.createGeometry=function(o){let l=o._positions;const h=o._width,c=o._ellipsoid;l=function(e,t){for(let i=0;i<e.length;i++)e[i]=t.scaleToGeodeticSurface(e[i],e[i]);return e}(l,c);const y=e.arrayRemoveDuplicates(l,i.Cartesian3.equalsEpsilon);if(y.length<2||h<=0)return;const g=o._height,b=o._extrudedHeight,m=!p.CesiumMath.equalsEpsilon(g,b,0,p.CesiumMath.EPSILON2),A={ellipsoid:c,positions:y,width:h,cornerType:o._cornerType,granularity:o._granularity,saveAttributes:!1};let _;if(m)A.height=g,A.extrudedHeight=b,A.offsetAttribute=o._offsetAttribute,_=function(e){const t=e.ellipsoid,i=w(n.CorridorGeometryLibrary.computePositions(e),e.cornerType),o=i.wallIndices,l=e.height,p=e.extrudedHeight,h=i.attributes,c=i.indices;let y=h.position.values,g=y.length,b=new Float64Array(g);b.set(y);const m=new Float64Array(2*g);if(y=f.PolygonPipeline.scaleToGeodeticHeight(y,l,t),b=f.PolygonPipeline.scaleToGeodeticHeight(b,p,t),m.set(y),m.set(b,g),h.position.values=m,g/=3,s.defined(e.offsetAttribute)){let t=new Uint8Array(2*g);if(e.offsetAttribute===u.GeometryOffsetAttribute.TOP)t=t.fill(1,0,g);else{const i=e.offsetAttribute===u.GeometryOffsetAttribute.NONE?0:1;t=t.fill(i)}h.applyOffset=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:t})}let A;const _=c.length,E=d.IndexDatatype.createTypedArray(m.length/3,2*(_+o.length));E.set(c);let C,G,T=_;for(A=0;A<_;A+=2){const e=c[A],t=c[A+1];E[T++]=e+g,E[T++]=t+g}for(A=0;A<o.length;A++)C=o[A],G=C+g,E[T++]=C,E[T++]=G;return{attributes:h,indices:E}}(A);else{if(_=w(n.CorridorGeometryLibrary.computePositions(A),A.cornerType),_.attributes.position.values=f.PolygonPipeline.scaleToGeodeticHeight(_.attributes.position.values,g,c),s.defined(o._offsetAttribute)){const e=_.attributes.position.values.length,t=o._offsetAttribute===u.GeometryOffsetAttribute.NONE?0:1,i=new Uint8Array(e/3).fill(t);_.attributes.applyOffset=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:i})}}const E=_.attributes,C=t.BoundingSphere.fromVertices(E.position.values,void 0,3);return new a.Geometry({attributes:E,indices:_.indices,primitiveType:a.PrimitiveType.LINES,boundingSphere:C,offsetAttribute:o._offsetAttribute})},function(e,t){return s.defined(t)&&(e=L.unpack(e,t)),e._ellipsoid=i.Ellipsoid.clone(e._ellipsoid),L.createGeometry(e)}})); diff --git a/public/static/Cesium/Workers/createCylinderGeometry.js b/public/static/Cesium/Workers/createCylinderGeometry.js new file mode 100644 index 0000000..631b37b --- /dev/null +++ b/public/static/Cesium/Workers/createCylinderGeometry.js @@ -0,0 +1 @@ +define(["./CylinderGeometry-c437b77a","./defaultValue-f6d5e6da","./Transforms-c842a68c","./Matrix3-b2351961","./Math-355606c6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./CylinderGeometryLibrary-4d7f606d","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18","./VertexFormat-fbdec922"],(function(e,t,r,n,i,o,a,y,m,u,G,d,f,s,b,c){"use strict";return function(r,n){return t.defined(n)&&(r=e.CylinderGeometry.unpack(r,n)),e.CylinderGeometry.createGeometry(r)}})); diff --git a/public/static/Cesium/Workers/createCylinderOutlineGeometry.js b/public/static/Cesium/Workers/createCylinderOutlineGeometry.js new file mode 100644 index 0000000..f177520 --- /dev/null +++ b/public/static/Cesium/Workers/createCylinderOutlineGeometry.js @@ -0,0 +1 @@ +define(["./Transforms-c842a68c","./Matrix2-7a8e9daf","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./CylinderGeometryLibrary-4d7f606d","./defaultValue-f6d5e6da","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18","./Math-355606c6","./combine-0c102d93","./RuntimeError-9b4ce3fb","./WebGLConstants-7f557f93"],(function(t,e,i,n,o,r,a,s,u,f,l,d,c,m){"use strict";const b=new e.Cartesian2;function p(t){const e=(t=r.defaultValue(t,r.defaultValue.EMPTY_OBJECT)).length,i=t.topRadius,n=t.bottomRadius,o=r.defaultValue(t.slices,128),a=Math.max(r.defaultValue(t.numberOfVerticalLines,16),0);this._length=e,this._topRadius=i,this._bottomRadius=n,this._slices=o,this._numberOfVerticalLines=a,this._offsetAttribute=t.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}p.packedLength=6,p.pack=function(t,e,i){return i=r.defaultValue(i,0),e[i++]=t._length,e[i++]=t._topRadius,e[i++]=t._bottomRadius,e[i++]=t._slices,e[i++]=t._numberOfVerticalLines,e[i]=r.defaultValue(t._offsetAttribute,-1),e};const y={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};return p.unpack=function(t,e,i){e=r.defaultValue(e,0);const n=t[e++],o=t[e++],a=t[e++],s=t[e++],u=t[e++],f=t[e];return r.defined(i)?(i._length=n,i._topRadius=o,i._bottomRadius=a,i._slices=s,i._numberOfVerticalLines=u,i._offsetAttribute=-1===f?void 0:f,i):(y.length=n,y.topRadius=o,y.bottomRadius=a,y.slices=s,y.numberOfVerticalLines=u,y.offsetAttribute=-1===f?void 0:f,new p(y))},p.createGeometry=function(l){let d=l._length;const c=l._topRadius,m=l._bottomRadius,p=l._slices,y=l._numberOfVerticalLines;if(d<=0||c<0||m<0||0===c&&0===m)return;const _=2*p,h=o.CylinderGeometryLibrary.computePositions(d,c,m,p,!1);let A,G=2*p;if(y>0){const t=Math.min(y,p);A=Math.round(p/t),G+=t}const R=f.IndexDatatype.createTypedArray(_,2*G);let O,V=0;for(O=0;O<p-1;O++)R[V++]=O,R[V++]=O+1,R[V++]=O+p,R[V++]=O+1+p;if(R[V++]=p-1,R[V++]=0,R[V++]=p+p-1,R[V++]=p,y>0)for(O=0;O<p;O+=A)R[V++]=O,R[V++]=O+p;const g=new s.GeometryAttributes;g.position=new a.GeometryAttribute({componentDatatype:n.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:h}),b.x=.5*d,b.y=Math.max(m,c);const L=new t.BoundingSphere(i.Cartesian3.ZERO,e.Cartesian2.magnitude(b));if(r.defined(l._offsetAttribute)){d=h.length;const t=l._offsetAttribute===u.GeometryOffsetAttribute.NONE?0:1,e=new Uint8Array(d/3).fill(t);g.applyOffset=new a.GeometryAttribute({componentDatatype:n.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:e})}return new a.Geometry({attributes:g,indices:R,primitiveType:a.PrimitiveType.LINES,boundingSphere:L,offsetAttribute:l._offsetAttribute})},function(t,e){return r.defined(e)&&(t=p.unpack(t,e)),p.createGeometry(t)}})); diff --git a/public/static/Cesium/Workers/createEllipseGeometry.js b/public/static/Cesium/Workers/createEllipseGeometry.js new file mode 100644 index 0000000..764d3a3 --- /dev/null +++ b/public/static/Cesium/Workers/createEllipseGeometry.js @@ -0,0 +1 @@ +define(["./Matrix3-b2351961","./defaultValue-f6d5e6da","./EllipseGeometry-767bd099","./Math-355606c6","./Transforms-c842a68c","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./EllipseGeometryLibrary-ddb4a715","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryInstance-c4920693","./GeometryOffsetAttribute-2579b8d2","./GeometryPipeline-87cdea8e","./AttributeCompression-0b8f7b7d","./EncodedCartesian3-abad5e8c","./IndexDatatype-a9b1bc18","./IntersectionTests-863687a2","./Plane-5931b53e","./VertexFormat-fbdec922"],(function(e,t,r,n,i,o,s,a,l,m,c,p,u,y,d,G,f,b,E,C,x,A){"use strict";return function(n,i){return t.defined(i)&&(n=r.EllipseGeometry.unpack(n,i)),n._center=e.Cartesian3.clone(n._center),n._ellipsoid=e.Ellipsoid.clone(n._ellipsoid),r.EllipseGeometry.createGeometry(n)}})); diff --git a/public/static/Cesium/Workers/createEllipseOutlineGeometry.js b/public/static/Cesium/Workers/createEllipseOutlineGeometry.js new file mode 100644 index 0000000..d5e8803 --- /dev/null +++ b/public/static/Cesium/Workers/createEllipseOutlineGeometry.js @@ -0,0 +1 @@ +define(["./Matrix3-b2351961","./defaultValue-f6d5e6da","./EllipseOutlineGeometry-176368f6","./Math-355606c6","./Transforms-c842a68c","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./EllipseGeometryLibrary-ddb4a715","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18"],(function(e,t,r,i,n,l,o,a,s,u,m,c,p,y,G){"use strict";return function(i,n){return t.defined(n)&&(i=r.EllipseOutlineGeometry.unpack(i,n)),i._center=e.Cartesian3.clone(i._center),i._ellipsoid=e.Ellipsoid.clone(i._ellipsoid),r.EllipseOutlineGeometry.createGeometry(i)}})); diff --git a/public/static/Cesium/Workers/createEllipsoidGeometry.js b/public/static/Cesium/Workers/createEllipsoidGeometry.js new file mode 100644 index 0000000..73f2c75 --- /dev/null +++ b/public/static/Cesium/Workers/createEllipsoidGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./EllipsoidGeometry-52c7b814","./Transforms-c842a68c","./Matrix3-b2351961","./Math-355606c6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18","./VertexFormat-fbdec922"],(function(e,t,r,o,i,n,a,m,u,s,l,y,d,f,G){"use strict";return function(r,o){return e.defined(o)&&(r=t.EllipsoidGeometry.unpack(r,o)),t.EllipsoidGeometry.createGeometry(r)}})); diff --git a/public/static/Cesium/Workers/createEllipsoidOutlineGeometry.js b/public/static/Cesium/Workers/createEllipsoidOutlineGeometry.js new file mode 100644 index 0000000..0927197 --- /dev/null +++ b/public/static/Cesium/Workers/createEllipsoidOutlineGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./EllipsoidOutlineGeometry-0505e9e1","./Transforms-c842a68c","./Matrix3-b2351961","./Math-355606c6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18"],(function(e,t,r,i,n,o,u,a,l,m,s,f,y,d){"use strict";return function(r,i){return e.defined(r.buffer)&&(r=t.EllipsoidOutlineGeometry.unpack(r,i)),t.EllipsoidOutlineGeometry.createGeometry(r)}})); diff --git a/public/static/Cesium/Workers/createFrustumGeometry.js b/public/static/Cesium/Workers/createFrustumGeometry.js new file mode 100644 index 0000000..edc0e7a --- /dev/null +++ b/public/static/Cesium/Workers/createFrustumGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./FrustumGeometry-2418e7ca","./Transforms-c842a68c","./Matrix3-b2351961","./Math-355606c6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./Plane-5931b53e","./VertexFormat-fbdec922"],(function(t,e,r,n,u,m,o,a,i,s,c,y,G,f){"use strict";return function(r,n){return t.defined(n)&&(r=e.FrustumGeometry.unpack(r,n)),e.FrustumGeometry.createGeometry(r)}})); diff --git a/public/static/Cesium/Workers/createFrustumOutlineGeometry.js b/public/static/Cesium/Workers/createFrustumOutlineGeometry.js new file mode 100644 index 0000000..eb3c7a5 --- /dev/null +++ b/public/static/Cesium/Workers/createFrustumOutlineGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Transforms-c842a68c","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./FrustumGeometry-2418e7ca","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./Math-355606c6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93","./Plane-5931b53e","./VertexFormat-fbdec922"],(function(e,t,r,n,a,i,u,o,s,c,p,m,h,d){"use strict";const f=0,g=1;function l(n){const i=n.frustum,u=n.orientation,o=n.origin,s=e.defaultValue(n._drawNearPlane,!0);let c,p;i instanceof a.PerspectiveFrustum?(c=f,p=a.PerspectiveFrustum.packedLength):i instanceof a.OrthographicFrustum&&(c=g,p=a.OrthographicFrustum.packedLength),this._frustumType=c,this._frustum=i.clone(),this._origin=r.Cartesian3.clone(o),this._orientation=t.Quaternion.clone(u),this._drawNearPlane=s,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+p+r.Cartesian3.packedLength+t.Quaternion.packedLength}l.pack=function(n,i,u){u=e.defaultValue(u,0);const o=n._frustumType,s=n._frustum;return i[u++]=o,o===f?(a.PerspectiveFrustum.pack(s,i,u),u+=a.PerspectiveFrustum.packedLength):(a.OrthographicFrustum.pack(s,i,u),u+=a.OrthographicFrustum.packedLength),r.Cartesian3.pack(n._origin,i,u),u+=r.Cartesian3.packedLength,t.Quaternion.pack(n._orientation,i,u),i[u+=t.Quaternion.packedLength]=n._drawNearPlane?1:0,i};const _=new a.PerspectiveFrustum,k=new a.OrthographicFrustum,y=new t.Quaternion,F=new r.Cartesian3;return l.unpack=function(n,i,u){i=e.defaultValue(i,0);const o=n[i++];let s;o===f?(s=a.PerspectiveFrustum.unpack(n,i,_),i+=a.PerspectiveFrustum.packedLength):(s=a.OrthographicFrustum.unpack(n,i,k),i+=a.OrthographicFrustum.packedLength);const c=r.Cartesian3.unpack(n,i,F);i+=r.Cartesian3.packedLength;const p=t.Quaternion.unpack(n,i,y),m=1===n[i+=t.Quaternion.packedLength];if(!e.defined(u))return new l({frustum:s,origin:c,orientation:p,_drawNearPlane:m});const h=o===u._frustumType?u._frustum:void 0;return u._frustum=s.clone(h),u._frustumType=o,u._origin=r.Cartesian3.clone(c,u._origin),u._orientation=t.Quaternion.clone(p,u._orientation),u._drawNearPlane=m,u},l.createGeometry=function(e){const r=e._frustumType,o=e._frustum,s=e._origin,c=e._orientation,p=e._drawNearPlane,m=new Float64Array(24);a.FrustumGeometry._computeNearFarPlanes(s,c,r,o,m);const h=new u.GeometryAttributes({position:new i.GeometryAttribute({componentDatatype:n.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:m})});let d,f;const g=p?2:1,l=new Uint16Array(8*(g+1));let _=p?0:1;for(;_<2;++_)d=p?8*_:0,f=4*_,l[d]=f,l[d+1]=f+1,l[d+2]=f+1,l[d+3]=f+2,l[d+4]=f+2,l[d+5]=f+3,l[d+6]=f+3,l[d+7]=f;for(_=0;_<2;++_)d=8*(g+_),f=4*_,l[d]=f,l[d+1]=f+4,l[d+2]=f+1,l[d+3]=f+5,l[d+4]=f+2,l[d+5]=f+6,l[d+6]=f+3,l[d+7]=f+7;return new i.Geometry({attributes:h,indices:l,primitiveType:i.PrimitiveType.LINES,boundingSphere:t.BoundingSphere.fromVertices(m)})},function(t,r){return e.defined(r)&&(t=l.unpack(t,r)),l.createGeometry(t)}})); diff --git a/public/static/Cesium/Workers/createGeometry.js b/public/static/Cesium/Workers/createGeometry.js new file mode 100644 index 0000000..aa448a7 --- /dev/null +++ b/public/static/Cesium/Workers/createGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./PrimitivePipeline-25e99fc7","./createTaskProcessorWorker","./Transforms-c842a68c","./Matrix3-b2351961","./Math-355606c6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryPipeline-87cdea8e","./AttributeCompression-0b8f7b7d","./EncodedCartesian3-abad5e8c","./IndexDatatype-a9b1bc18","./IntersectionTests-863687a2","./Plane-5931b53e","./WebMercatorProjection-db7467f4"],(function(e,t,r,n,o,i,s,a,u,c,f,m,l,d,p,b,y,P,k,C){"use strict";const G={};function W(t){let r=G[t];return e.defined(r)||("object"==typeof exports?G[r]=r=require(`Workers/${t}`):require([`Workers/${t}`],(function(e){r=e,G[r]=e}))),r}return r((function(r,n){const o=r.subTasks,i=o.length,s=new Array(i);for(let t=0;t<i;t++){const r=o[t],n=r.geometry,i=r.moduleName;if(e.defined(i)){const e=W(i);s[t]=e(n,r.offset)}else s[t]=n}return Promise.all(s).then((function(e){return t.PrimitivePipeline.packCreateGeometryResults(e,n)}))}))})); diff --git a/public/static/Cesium/Workers/createGroundPolylineGeometry.js b/public/static/Cesium/Workers/createGroundPolylineGeometry.js new file mode 100644 index 0000000..860881e --- /dev/null +++ b/public/static/Cesium/Workers/createGroundPolylineGeometry.js @@ -0,0 +1 @@ +define(["./Transforms-c842a68c","./Matrix2-7a8e9daf","./Matrix3-b2351961","./defaultValue-f6d5e6da","./Math-355606c6","./ArcType-26a3f38d","./arrayRemoveDuplicates-0d8dde26","./ComponentDatatype-ab629b88","./EllipsoidGeodesic-20aaff03","./EllipsoidRhumbLine-1289f7e8","./EncodedCartesian3-abad5e8c","./GeometryAttribute-0e790d82","./IntersectionTests-863687a2","./Plane-5931b53e","./WebMercatorProjection-db7467f4","./combine-0c102d93","./RuntimeError-9b4ce3fb","./WebGLConstants-7f557f93"],(function(e,t,a,n,i,r,s,o,l,c,u,C,p,h,d,g,f,m){"use strict";function w(i){i=n.defaultValue(i,n.defaultValue.EMPTY_OBJECT),this._ellipsoid=n.defaultValue(i.ellipsoid,a.Ellipsoid.WGS84),this._rectangle=n.defaultValue(i.rectangle,t.Rectangle.MAX_VALUE),this._projection=new e.GeographicProjection(this._ellipsoid),this._numberOfLevelZeroTilesX=n.defaultValue(i.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=n.defaultValue(i.numberOfLevelZeroTilesY,1)}Object.defineProperties(w.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}}),w.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e},w.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e},w.prototype.rectangleToNativeRectangle=function(e,a){const r=i.CesiumMath.toDegrees(e.west),s=i.CesiumMath.toDegrees(e.south),o=i.CesiumMath.toDegrees(e.east),l=i.CesiumMath.toDegrees(e.north);return n.defined(a)?(a.west=r,a.south=s,a.east=o,a.north=l,a):new t.Rectangle(r,s,o,l)},w.prototype.tileXYToNativeRectangle=function(e,t,a,n){const r=this.tileXYToRectangle(e,t,a,n);return r.west=i.CesiumMath.toDegrees(r.west),r.south=i.CesiumMath.toDegrees(r.south),r.east=i.CesiumMath.toDegrees(r.east),r.north=i.CesiumMath.toDegrees(r.north),r},w.prototype.tileXYToRectangle=function(e,a,i,r){const s=this._rectangle,o=this.getNumberOfXTilesAtLevel(i),l=this.getNumberOfYTilesAtLevel(i),c=s.width/o,u=e*c+s.west,C=(e+1)*c+s.west,p=s.height/l,h=s.north-a*p,d=s.north-(a+1)*p;return n.defined(r)||(r=new t.Rectangle(u,d,C,h)),r.west=u,r.south=d,r.east=C,r.north=h,r},w.prototype.positionToTileXY=function(e,a,r){const s=this._rectangle;if(!t.Rectangle.contains(s,e))return;const o=this.getNumberOfXTilesAtLevel(a),l=this.getNumberOfYTilesAtLevel(a),c=s.width/o,u=s.height/l;let C=e.longitude;s.east<s.west&&(C+=i.CesiumMath.TWO_PI);let p=(C-s.west)/c|0;p>=o&&(p=o-1);let h=(s.north-e.latitude)/u|0;return h>=l&&(h=l-1),n.defined(r)?(r.x=p,r.y=h,r):new t.Cartesian2(p,h)};const y=new a.Cartesian3,M=new a.Cartesian3,T=new a.Cartographic,E=new a.Cartesian3,_=new a.Cartesian3,O=new e.BoundingSphere,P=new w,A=[new a.Cartographic,new a.Cartographic,new a.Cartographic,new a.Cartographic],b=new t.Cartesian2,k={};function L(e){a.Cartographic.fromRadians(e.east,e.north,0,A[0]),a.Cartographic.fromRadians(e.west,e.north,0,A[1]),a.Cartographic.fromRadians(e.east,e.south,0,A[2]),a.Cartographic.fromRadians(e.west,e.south,0,A[3]);let t=0,n=0,i=0,r=0;const s=k._terrainHeightsMaxLevel;let o;for(o=0;o<=s;++o){let e=!1;for(let t=0;t<4;++t){const a=A[t];if(P.positionToTileXY(a,o,b),0===t)i=b.x,r=b.y;else if(i!==b.x||r!==b.y){e=!0;break}}if(e)break;t=i,n=r}if(0!==o)return{x:t,y:n,level:o>s?s:o-1}}k.initialize=function(){let t=k._initPromise;return n.defined(t)||(t=e.Resource.fetchJson(e.buildModuleUrl("Assets/approximateTerrainHeights.json")).then((function(e){k._terrainHeights=e})),k._initPromise=t),t},k.getMinimumMaximumHeights=function(e,i){i=n.defaultValue(i,a.Ellipsoid.WGS84);const r=L(e);let s=k._defaultMinTerrainHeight,o=k._defaultMaxTerrainHeight;if(n.defined(r)){const l=`${r.level}-${r.x}-${r.y}`,c=k._terrainHeights[l];n.defined(c)&&(s=c[0],o=c[1]),i.cartographicToCartesian(t.Rectangle.northeast(e,T),y),i.cartographicToCartesian(t.Rectangle.southwest(e,T),M),a.Cartesian3.midpoint(M,y,E);const u=i.scaleToGeodeticSurface(E,_);if(n.defined(u)){const e=a.Cartesian3.distance(E,u);s=Math.min(s,-e)}else s=k._defaultMinTerrainHeight}return s=Math.max(k._defaultMinTerrainHeight,s),{minimumTerrainHeight:s,maximumTerrainHeight:o}},k.getBoundingSphere=function(t,i){i=n.defaultValue(i,a.Ellipsoid.WGS84);const r=L(t);let s=k._defaultMaxTerrainHeight;if(n.defined(r)){const e=`${r.level}-${r.x}-${r.y}`,t=k._terrainHeights[e];n.defined(t)&&(s=t[1])}const o=e.BoundingSphere.fromRectangle3D(t,i,0);return e.BoundingSphere.fromRectangle3D(t,i,s,O),e.BoundingSphere.union(o,O,o)},k._terrainHeightsMaxLevel=6,k._defaultMaxTerrainHeight=9e3,k._defaultMinTerrainHeight=-1e5,k._terrainHeights=void 0,k._initPromise=void 0,Object.defineProperties(k,{initialized:{get:function(){return n.defined(k._terrainHeights)}}});var S=k;const x=[e.GeographicProjection,d.WebMercatorProjection],I=x.length,N=Math.cos(i.CesiumMath.toRadians(30)),R=Math.cos(i.CesiumMath.toRadians(150)),D=0,v=1e3;function z(e){const t=(e=n.defaultValue(e,n.defaultValue.EMPTY_OBJECT)).positions;this.width=n.defaultValue(e.width,1),this._positions=t,this.granularity=n.defaultValue(e.granularity,9999),this.loop=n.defaultValue(e.loop,!1),this.arcType=n.defaultValue(e.arcType,r.ArcType.GEODESIC),this._ellipsoid=a.Ellipsoid.WGS84,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(z.prototype,{packedLength:{get:function(){return 1+3*this._positions.length+1+1+1+a.Ellipsoid.packedLength+1+1}}}),z.setProjectionAndEllipsoid=function(e,t){let a=0;for(let e=0;e<I;e++)if(t instanceof x[e]){a=e;break}e._projectionIndex=a,e._ellipsoid=t.ellipsoid};const H=new a.Cartesian3,j=new a.Cartesian3,B=new a.Cartesian3;function V(e,t,n,i,r){const s=U(i,e,0,H),o=U(i,e,n,j),l=U(i,t,0,B),c=Z(o,s,j),u=Z(l,s,B);return a.Cartesian3.cross(u,c,r),a.Cartesian3.normalize(r,r)}const G=new a.Cartographic,Y=new a.Cartesian3,F=new a.Cartesian3,q=new a.Cartesian3;function X(e,t,n,i,s,o,u,C,p,h,d){if(0===s)return;let g;o===r.ArcType.GEODESIC?g=new l.EllipsoidGeodesic(e,t,u):o===r.ArcType.RHUMB&&(g=new c.EllipsoidRhumbLine(e,t,u));const f=g.surfaceDistance;if(f<s)return;const m=V(e,t,i,u,q),w=Math.ceil(f/s),y=f/w;let M=y;const T=w-1;let E=C.length;for(let e=0;e<T;e++){const e=g.interpolateUsingSurfaceDistance(M,G),t=U(u,e,n,Y),r=U(u,e,i,F);a.Cartesian3.pack(m,C,E),a.Cartesian3.pack(t,p,E),a.Cartesian3.pack(r,h,E),d.push(e.latitude),d.push(e.longitude),E+=3,M+=y}}const W=new a.Cartographic;function U(e,t,n,i){return a.Cartographic.clone(t,W),W.height=n,a.Cartographic.toCartesian(W,e,i)}function Z(e,t,n){return a.Cartesian3.subtract(e,t,n),a.Cartesian3.normalize(n,n),n}function $(e,t,n,i){return i=Z(e,t,i),i=a.Cartesian3.cross(i,n,i),i=a.Cartesian3.normalize(i,i),i=a.Cartesian3.cross(n,i,i)}z.pack=function(e,t,i){let r=n.defaultValue(i,0);const s=e._positions,o=s.length;t[r++]=o;for(let e=0;e<o;++e){const n=s[e];a.Cartesian3.pack(n,t,r),r+=3}return t[r++]=e.granularity,t[r++]=e.loop?1:0,t[r++]=e.arcType,a.Ellipsoid.pack(e._ellipsoid,t,r),r+=a.Ellipsoid.packedLength,t[r++]=e._projectionIndex,t[r++]=e._scene3DOnly?1:0,t},z.unpack=function(e,t,i){let r=n.defaultValue(t,0);const s=e[r++],o=new Array(s);for(let t=0;t<s;t++)o[t]=a.Cartesian3.unpack(e,r),r+=3;const l=e[r++],c=1===e[r++],u=e[r++],C=a.Ellipsoid.unpack(e,r);r+=a.Ellipsoid.packedLength;const p=e[r++],h=1===e[r++];return n.defined(i)||(i=new z({positions:o})),i._positions=o,i.granularity=l,i.loop=c,i.arcType=u,i._ellipsoid=C,i._projectionIndex=p,i._scene3DOnly=h,i};const J=new a.Cartesian3,Q=new a.Cartesian3,K=new a.Cartesian3,ee=new a.Cartesian3;function te(e,t,n,r,s){const o=Z(n,t,ee),l=$(e,t,o,J),c=$(r,t,o,Q);if(i.CesiumMath.equalsEpsilon(a.Cartesian3.dot(l,c),-1,i.CesiumMath.EPSILON5))return s=a.Cartesian3.cross(o,l,s),s=a.Cartesian3.normalize(s,s);s=a.Cartesian3.add(c,l,s),s=a.Cartesian3.normalize(s,s);const u=a.Cartesian3.cross(o,s,K);return a.Cartesian3.dot(c,u)<0&&(s=a.Cartesian3.negate(s,s)),s}const ae=h.Plane.fromPointNormal(a.Cartesian3.ZERO,a.Cartesian3.UNIT_Y),ne=new a.Cartesian3,ie=new a.Cartesian3,re=new a.Cartesian3,se=new a.Cartesian3,oe=new a.Cartesian3,le=new a.Cartesian3,ce=new a.Cartographic,ue=new a.Cartographic,Ce=new a.Cartographic;z.createGeometry=function(l){const h=!l._scene3DOnly;let d=l.loop;const g=l._ellipsoid,f=l.granularity,m=l.arcType,w=new x[l._projectionIndex](g),y=D,M=v;let T,E;const _=l._positions,O=_.length;let P,A,b,k;2===O&&(d=!1);const L=new c.EllipsoidRhumbLine(void 0,void 0,g);let I,R,z;const H=[_[0]];for(E=0;E<O-1;E++)P=_[E],A=_[E+1],I=p.IntersectionTests.lineSegmentPlane(P,A,ae,le),!n.defined(I)||a.Cartesian3.equalsEpsilon(I,P,i.CesiumMath.EPSILON7)||a.Cartesian3.equalsEpsilon(I,A,i.CesiumMath.EPSILON7)||(l.arcType===r.ArcType.GEODESIC?H.push(a.Cartesian3.clone(I)):l.arcType===r.ArcType.RHUMB&&(z=g.cartesianToCartographic(I,ce).longitude,b=g.cartesianToCartographic(P,ce),k=g.cartesianToCartographic(A,ue),L.setEndPoints(b,k),R=L.findIntersectionWithLongitude(z,Ce),I=g.cartographicToCartesian(R,le),!n.defined(I)||a.Cartesian3.equalsEpsilon(I,P,i.CesiumMath.EPSILON7)||a.Cartesian3.equalsEpsilon(I,A,i.CesiumMath.EPSILON7)||H.push(a.Cartesian3.clone(I)))),H.push(A);d&&(P=_[O-1],A=_[0],I=p.IntersectionTests.lineSegmentPlane(P,A,ae,le),!n.defined(I)||a.Cartesian3.equalsEpsilon(I,P,i.CesiumMath.EPSILON7)||a.Cartesian3.equalsEpsilon(I,A,i.CesiumMath.EPSILON7)||(l.arcType===r.ArcType.GEODESIC?H.push(a.Cartesian3.clone(I)):l.arcType===r.ArcType.RHUMB&&(z=g.cartesianToCartographic(I,ce).longitude,b=g.cartesianToCartographic(P,ce),k=g.cartesianToCartographic(A,ue),L.setEndPoints(b,k),R=L.findIntersectionWithLongitude(z,Ce),I=g.cartographicToCartesian(R,le),!n.defined(I)||a.Cartesian3.equalsEpsilon(I,P,i.CesiumMath.EPSILON7)||a.Cartesian3.equalsEpsilon(I,A,i.CesiumMath.EPSILON7)||H.push(a.Cartesian3.clone(I)))));let j=H.length,B=new Array(j);for(E=0;E<j;E++){const e=a.Cartographic.fromCartesian(H[E],g);e.height=0,B[E]=e}if(B=s.arrayRemoveDuplicates(B,a.Cartographic.equalsEpsilon),j=B.length,j<2)return;const G=[],Y=[],F=[],q=[];let W=ne,$=ie,J=re,Q=se,K=oe;const ee=B[0],pe=B[1];for(W=U(g,B[j-1],y,W),Q=U(g,pe,y,Q),$=U(g,ee,y,$),J=U(g,ee,M,J),K=d?te(W,$,J,Q,K):V(ee,pe,M,g,K),a.Cartesian3.pack(K,Y,0),a.Cartesian3.pack($,F,0),a.Cartesian3.pack(J,q,0),G.push(ee.latitude),G.push(ee.longitude),X(ee,pe,y,M,f,m,g,Y,F,q,G),E=1;E<j-1;++E){W=a.Cartesian3.clone($,W),$=a.Cartesian3.clone(Q,$);const e=B[E];U(g,e,M,J),U(g,B[E+1],y,Q),te(W,$,J,Q,K),T=Y.length,a.Cartesian3.pack(K,Y,T),a.Cartesian3.pack($,F,T),a.Cartesian3.pack(J,q,T),G.push(e.latitude),G.push(e.longitude),X(B[E],B[E+1],y,M,f,m,g,Y,F,q,G)}const he=B[j-1],de=B[j-2];if($=U(g,he,y,$),J=U(g,he,M,J),d){const e=B[0];W=U(g,de,y,W),Q=U(g,e,y,Q),K=te(W,$,J,Q,K)}else K=V(de,he,M,g,K);if(T=Y.length,a.Cartesian3.pack(K,Y,T),a.Cartesian3.pack($,F,T),a.Cartesian3.pack(J,q,T),G.push(he.latitude),G.push(he.longitude),d){for(X(he,ee,y,M,f,m,g,Y,F,q,G),T=Y.length,E=0;E<3;++E)Y[T+E]=Y[E],F[T+E]=F[E],q[T+E]=q[E];G.push(ee.latitude),G.push(ee.longitude)}return function(n,r,s,l,c,p,h){let d,g;const f=r._ellipsoid,m=s.length/3-1,w=8*m,y=4*w,M=36*m,T=w>65535?new Uint32Array(M):new Uint16Array(M),E=new Float64Array(3*w),_=new Float32Array(y),O=new Float32Array(y),P=new Float32Array(y),A=new Float32Array(y),b=new Float32Array(y);let k,L,x,I;h&&(k=new Float32Array(y),L=new Float32Array(y),x=new Float32Array(y),I=new Float32Array(2*w));const R=p.length/2;let D=0;const v=Ae;v.height=0;const z=be;z.height=0;let H=ke,j=Le;if(h)for(g=0,d=1;d<R;d++)v.latitude=p[g],v.longitude=p[g+1],z.latitude=p[g+2],z.longitude=p[g+3],H=r.project(v,H),j=r.project(z,j),D+=a.Cartesian3.distance(H,j),g+=2;const B=l.length/3;j=a.Cartesian3.unpack(l,0,j);let V,G=0;for(g=3,d=1;d<B;d++)H=a.Cartesian3.clone(j,H),j=a.Cartesian3.unpack(l,g,j),G+=a.Cartesian3.distance(H,j),g+=3;g=3;let Y=0,F=0,q=0,X=0,W=!1,U=a.Cartesian3.unpack(s,0,xe),$=a.Cartesian3.unpack(l,0,Le),J=a.Cartesian3.unpack(c,0,Ne);if(n){ge(J,a.Cartesian3.unpack(s,s.length-6,Se),U,$)&&(J=a.Cartesian3.negate(J,J))}let Q=0,K=0,ee=0;for(d=0;d<m;d++){const e=a.Cartesian3.clone(U,Se),n=a.Cartesian3.clone($,ke);let o,C,d,m,w=a.Cartesian3.clone(J,Ie);if(W&&(w=a.Cartesian3.negate(w,w)),U=a.Cartesian3.unpack(s,g,xe),$=a.Cartesian3.unpack(l,g,Le),J=a.Cartesian3.unpack(c,g,Ne),W=ge(J,e,U,$),v.latitude=p[Y],v.longitude=p[Y+1],z.latitude=p[Y+2],z.longitude=p[Y+3],h){const e=Pe(v,z);o=r.project(v,Be),C=r.project(z,Ve);const t=Z(C,o,Qe);t.y=Math.abs(t.y),d=Ge,m=Ye,0===e||a.Cartesian3.dot(t,a.Cartesian3.UNIT_Y)>N?(d=ye(r,v,w,o,Ge),m=ye(r,z,J,C,Ye)):1===e?(m=ye(r,z,J,C,Ye),d.x=0,d.y=i.CesiumMath.sign(v.longitude-Math.abs(z.longitude)),d.z=0):(d=ye(r,v,w,o,Ge),m.x=0,m.y=i.CesiumMath.sign(v.longitude-z.longitude),m.z=0)}const y=a.Cartesian3.distance(n,$),M=u.EncodedCartesian3.fromCartesian(e,$e),T=a.Cartesian3.subtract(U,e,Fe),R=a.Cartesian3.normalize(T,We);let H=a.Cartesian3.subtract(n,e,qe);H=a.Cartesian3.normalize(H,H);let j=a.Cartesian3.cross(R,H,We);j=a.Cartesian3.normalize(j,j);let B=a.Cartesian3.cross(H,w,Ue);B=a.Cartesian3.normalize(B,B);let te=a.Cartesian3.subtract($,U,Xe);te=a.Cartesian3.normalize(te,te);let ae=a.Cartesian3.cross(J,te,Ze);ae=a.Cartesian3.normalize(ae,ae);const ne=y/G,ie=Q/G;let re,se,oe,le=0,ce=0,ue=0;if(h){le=a.Cartesian3.distance(o,C),re=u.EncodedCartesian3.fromCartesian(o,Je),se=a.Cartesian3.subtract(C,o,Qe),oe=a.Cartesian3.normalize(se,Ke);const e=oe.x;oe.x=oe.y,oe.y=-e,ce=le/D,ue=K/D}for(V=0;V<8;V++){const e=X+4*V,t=F+2*V,n=e+3,i=V<4?1:-1,r=2===V||3===V||6===V||7===V?1:-1;a.Cartesian3.pack(M.high,_,e),_[n]=T.x,a.Cartesian3.pack(M.low,O,e),O[n]=T.y,a.Cartesian3.pack(B,P,e),P[n]=T.z,a.Cartesian3.pack(ae,A,e),A[n]=ne*i,a.Cartesian3.pack(j,b,e);let s=ie*r;0===s&&r<0&&(s=9),b[n]=s,h&&(k[e]=re.high.x,k[e+1]=re.high.y,k[e+2]=re.low.x,k[e+3]=re.low.y,x[e]=-d.y,x[e+1]=d.x,x[e+2]=m.y,x[e+3]=-m.x,L[e]=se.x,L[e+1]=se.y,L[e+2]=oe.x,L[e+3]=oe.y,I[t]=ce*i,s=ue*r,0===s&&r<0&&(s=9),I[t+1]=s)}const Ce=He,pe=je,he=ve,de=ze,fe=t.Rectangle.fromCartographicArray(Re,De),me=S.getMinimumMaximumHeights(fe,f),we=me.minimumTerrainHeight,Me=me.maximumTerrainHeight;ee+=we,ee+=Me,Ee(e,n,we,Me,Ce,he),Ee(U,$,we,Me,pe,de);let Te=a.Cartesian3.multiplyByScalar(j,i.CesiumMath.EPSILON5,et);a.Cartesian3.add(Ce,Te,Ce),a.Cartesian3.add(pe,Te,pe),a.Cartesian3.add(he,Te,he),a.Cartesian3.add(de,Te,de),Oe(Ce,pe),Oe(he,de),a.Cartesian3.pack(Ce,E,q),a.Cartesian3.pack(pe,E,q+3),a.Cartesian3.pack(de,E,q+6),a.Cartesian3.pack(he,E,q+9),Te=a.Cartesian3.multiplyByScalar(j,-2*i.CesiumMath.EPSILON5,et),a.Cartesian3.add(Ce,Te,Ce),a.Cartesian3.add(pe,Te,pe),a.Cartesian3.add(he,Te,he),a.Cartesian3.add(de,Te,de),Oe(Ce,pe),Oe(he,de),a.Cartesian3.pack(Ce,E,q+12),a.Cartesian3.pack(pe,E,q+15),a.Cartesian3.pack(de,E,q+18),a.Cartesian3.pack(he,E,q+21),Y+=2,g+=3,F+=16,q+=24,X+=32,Q+=y,K+=le}g=0;let te=0;for(d=0;d<m;d++){for(V=0;V<nt;V++)T[g+V]=at[V]+te;te+=8,g+=nt}const ae=tt;e.BoundingSphere.fromVertices(s,a.Cartesian3.ZERO,3,ae[0]),e.BoundingSphere.fromVertices(l,a.Cartesian3.ZERO,3,ae[1]);const ne=e.BoundingSphere.fromBoundingSpheres(ae);ne.radius+=ee/(2*m);const ie={position:new C.GeometryAttribute({componentDatatype:o.ComponentDatatype.DOUBLE,componentsPerAttribute:3,normalize:!1,values:E}),startHiAndForwardOffsetX:it(_),startLoAndForwardOffsetY:it(O),startNormalAndForwardOffsetZ:it(P),endNormalAndTextureCoordinateNormalizationX:it(A),rightNormalAndTextureCoordinateNormalizationY:it(b)};h&&(ie.startHiLo2D=it(k),ie.offsetAndRight2D=it(L),ie.startEndNormals2D=it(x),ie.texcoordNormalization2D=new C.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:2,normalize:!1,values:I}));return new C.Geometry({attributes:ie,indices:T,boundingSphere:ne})}(d,w,F,q,Y,G,h)};const pe=new a.Cartesian3,he=new a.Matrix3,de=new e.Quaternion;function ge(t,n,r,s){const o=Z(r,n,pe),l=a.Cartesian3.dot(o,t);if(l>N||l<R){const n=Z(s,r,ee),o=l<R?i.CesiumMath.PI_OVER_TWO:-i.CesiumMath.PI_OVER_TWO,c=e.Quaternion.fromAxisAngle(n,o,de),u=a.Matrix3.fromQuaternion(c,he);return a.Matrix3.multiplyByVector(u,t,t),!0}return!1}const fe=new a.Cartographic,me=new a.Cartesian3,we=new a.Cartesian3;function ye(e,t,n,r,s){const o=a.Cartographic.toCartesian(t,e._ellipsoid,me);let l=a.Cartesian3.add(o,n,we),c=!1;const u=e._ellipsoid;let C=u.cartesianToCartographic(l,fe);Math.abs(t.longitude-C.longitude)>i.CesiumMath.PI_OVER_TWO&&(c=!0,l=a.Cartesian3.subtract(o,n,we),C=u.cartesianToCartographic(l,fe)),C.height=0;const p=e.project(C,s);return(s=a.Cartesian3.subtract(p,r,s)).z=0,s=a.Cartesian3.normalize(s,s),c&&a.Cartesian3.negate(s,s),s}const Me=new a.Cartesian3,Te=new a.Cartesian3;function Ee(e,t,n,i,r,s){const o=a.Cartesian3.subtract(t,e,Me);a.Cartesian3.normalize(o,o);const l=n-D;let c=a.Cartesian3.multiplyByScalar(o,l,Te);a.Cartesian3.add(e,c,r);const u=i-v;c=a.Cartesian3.multiplyByScalar(o,u,Te),a.Cartesian3.add(t,c,s)}const _e=new a.Cartesian3;function Oe(e,t){const n=h.Plane.getPointDistance(ae,e),r=h.Plane.getPointDistance(ae,t);let s=_e;i.CesiumMath.equalsEpsilon(n,0,i.CesiumMath.EPSILON2)?(s=Z(t,e,s),a.Cartesian3.multiplyByScalar(s,i.CesiumMath.EPSILON2,s),a.Cartesian3.add(e,s,e)):i.CesiumMath.equalsEpsilon(r,0,i.CesiumMath.EPSILON2)&&(s=Z(e,t,s),a.Cartesian3.multiplyByScalar(s,i.CesiumMath.EPSILON2,s),a.Cartesian3.add(t,s,t))}function Pe(e,t){const a=Math.abs(e.longitude),n=Math.abs(t.longitude);if(i.CesiumMath.equalsEpsilon(a,i.CesiumMath.PI,i.CesiumMath.EPSILON11)){const n=i.CesiumMath.sign(t.longitude);return e.longitude=n*(a-i.CesiumMath.EPSILON11),1}if(i.CesiumMath.equalsEpsilon(n,i.CesiumMath.PI,i.CesiumMath.EPSILON11)){const a=i.CesiumMath.sign(e.longitude);return t.longitude=a*(n-i.CesiumMath.EPSILON11),2}return 0}const Ae=new a.Cartographic,be=new a.Cartographic,ke=new a.Cartesian3,Le=new a.Cartesian3,Se=new a.Cartesian3,xe=new a.Cartesian3,Ie=new a.Cartesian3,Ne=new a.Cartesian3,Re=[Ae,be],De=new t.Rectangle,ve=new a.Cartesian3,ze=new a.Cartesian3,He=new a.Cartesian3,je=new a.Cartesian3,Be=new a.Cartesian3,Ve=new a.Cartesian3,Ge=new a.Cartesian3,Ye=new a.Cartesian3,Fe=new a.Cartesian3,qe=new a.Cartesian3,Xe=new a.Cartesian3,We=new a.Cartesian3,Ue=new a.Cartesian3,Ze=new a.Cartesian3,$e=new u.EncodedCartesian3,Je=new u.EncodedCartesian3,Qe=new a.Cartesian3,Ke=new a.Cartesian3,et=new a.Cartesian3,tt=[new e.BoundingSphere,new e.BoundingSphere],at=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],nt=at.length;function it(e){return new C.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}return z._projectNormal=ye,function(e,t){return S.initialize().then((function(){return n.defined(t)&&(e=z.unpack(e,t)),z.createGeometry(e)}))}})); diff --git a/public/static/Cesium/Workers/createPlaneGeometry.js b/public/static/Cesium/Workers/createPlaneGeometry.js new file mode 100644 index 0000000..da87341 --- /dev/null +++ b/public/static/Cesium/Workers/createPlaneGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Transforms-c842a68c","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./VertexFormat-fbdec922","./Math-355606c6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93"],(function(t,e,n,r,a,o,i,m,u,p,c,s){"use strict";function y(e){e=t.defaultValue(e,t.defaultValue.EMPTY_OBJECT);const n=t.defaultValue(e.vertexFormat,i.VertexFormat.DEFAULT);this._vertexFormat=n,this._workerName="createPlaneGeometry"}y.packedLength=i.VertexFormat.packedLength,y.pack=function(e,n,r){return r=t.defaultValue(r,0),i.VertexFormat.pack(e._vertexFormat,n,r),n};const l=new i.VertexFormat,A={vertexFormat:l};y.unpack=function(e,n,r){n=t.defaultValue(n,0);const a=i.VertexFormat.unpack(e,n,l);return t.defined(r)?(r._vertexFormat=i.VertexFormat.clone(a,r._vertexFormat),r):new y(A)};const F=new n.Cartesian3(-.5,-.5,0),f=new n.Cartesian3(.5,.5,0);return y.createGeometry=function(t){const i=t._vertexFormat,m=new o.GeometryAttributes;let u,p;if(i.position){if(p=new Float64Array(12),p[0]=F.x,p[1]=F.y,p[2]=0,p[3]=f.x,p[4]=F.y,p[5]=0,p[6]=f.x,p[7]=f.y,p[8]=0,p[9]=F.x,p[10]=f.y,p[11]=0,m.position=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:p}),i.normal){const t=new Float32Array(12);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=1,t[9]=0,t[10]=0,t[11]=1,m.normal=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:t})}if(i.st){const t=new Float32Array(8);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=1,t[5]=1,t[6]=0,t[7]=1,m.st=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:t})}if(i.tangent){const t=new Float32Array(12);t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=1,t[7]=0,t[8]=0,t[9]=1,t[10]=0,t[11]=0,m.tangent=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:t})}if(i.bitangent){const t=new Float32Array(12);t[0]=0,t[1]=1,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=1,t[8]=0,t[9]=0,t[10]=1,t[11]=0,m.bitangent=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:t})}u=new Uint16Array(6),u[0]=0,u[1]=1,u[2]=2,u[3]=0,u[4]=2,u[5]=3}return new a.Geometry({attributes:m,indices:u,primitiveType:a.PrimitiveType.TRIANGLES,boundingSphere:new e.BoundingSphere(n.Cartesian3.ZERO,Math.sqrt(2))})},function(e,n){return t.defined(n)&&(e=y.unpack(e,n)),y.createGeometry(e)}})); diff --git a/public/static/Cesium/Workers/createPlaneOutlineGeometry.js b/public/static/Cesium/Workers/createPlaneOutlineGeometry.js new file mode 100644 index 0000000..b5b5ec0 --- /dev/null +++ b/public/static/Cesium/Workers/createPlaneOutlineGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Transforms-c842a68c","./Matrix3-b2351961","./ComponentDatatype-ab629b88","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./Math-355606c6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93"],(function(e,t,n,r,i,a,o,u,c,s,y){"use strict";function m(){this._workerName="createPlaneOutlineGeometry"}m.packedLength=0,m.pack=function(e,t){return t},m.unpack=function(t,n,r){return e.defined(r)?r:new m};const p=new n.Cartesian3(-.5,-.5,0),f=new n.Cartesian3(.5,.5,0);return m.createGeometry=function(){const e=new a.GeometryAttributes,o=new Uint16Array(8),u=new Float64Array(12);return u[0]=p.x,u[1]=p.y,u[2]=p.z,u[3]=f.x,u[4]=p.y,u[5]=p.z,u[6]=f.x,u[7]=f.y,u[8]=p.z,u[9]=p.x,u[10]=f.y,u[11]=p.z,e.position=new i.GeometryAttribute({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:u}),o[0]=0,o[1]=1,o[2]=1,o[3]=2,o[4]=2,o[5]=3,o[6]=3,o[7]=0,new i.Geometry({attributes:e,indices:o,primitiveType:i.PrimitiveType.LINES,boundingSphere:new t.BoundingSphere(n.Cartesian3.ZERO,Math.sqrt(2))})},function(t,n){return e.defined(n)&&(t=m.unpack(t,n)),m.createGeometry(t)}})); diff --git a/public/static/Cesium/Workers/createPolygonGeometry.js b/public/static/Cesium/Workers/createPolygonGeometry.js new file mode 100644 index 0000000..19d27eb --- /dev/null +++ b/public/static/Cesium/Workers/createPolygonGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Matrix3-b2351961","./ArcType-26a3f38d","./BoundingRectangle-b88a4eda","./Transforms-c842a68c","./Matrix2-7a8e9daf","./ComponentDatatype-ab629b88","./EllipsoidGeodesic-20aaff03","./EllipsoidTangentPlane-05ee7166","./GeometryAttribute-0e790d82","./GeometryInstance-c4920693","./GeometryOffsetAttribute-2579b8d2","./GeometryPipeline-87cdea8e","./IndexDatatype-a9b1bc18","./Math-355606c6","./PolygonGeometryLibrary-f7ee0859","./PolygonPipeline-eec72ff0","./VertexFormat-fbdec922","./combine-0c102d93","./RuntimeError-9b4ce3fb","./WebGLConstants-7f557f93","./AxisAlignedBoundingBox-93c1311e","./IntersectionTests-863687a2","./Plane-5931b53e","./AttributeCompression-0b8f7b7d","./EncodedCartesian3-abad5e8c","./arrayRemoveDuplicates-0d8dde26","./EllipsoidRhumbLine-1289f7e8","./GeometryAttributes-1e4ddcd2"],(function(t,e,o,i,r,n,a,s,l,u,c,p,y,d,m,g,h,f,b,_,P,x,C,w,T,I,A,v,E){"use strict";const G=new e.Cartographic,O=new e.Cartographic;function L(t,e,o,i){const r=i.cartesianToCartographic(t,G).height,n=i.cartesianToCartographic(e,O);n.height=r,i.cartographicToCartesian(n,e);const a=i.cartesianToCartographic(o,O);a.height=r-100,i.cartographicToCartesian(a,o)}const V=new i.BoundingRectangle,H=new e.Cartesian3,D=new e.Cartesian3,N=new e.Cartesian3,F=new e.Cartesian3,R=new e.Cartesian3,M=new e.Cartesian3;let S=new e.Cartesian3,B=new e.Cartesian3,k=new e.Cartesian3;const z=new n.Cartesian2,W=new n.Cartesian2,Y=new e.Cartesian3,U=new r.Quaternion,j=new e.Matrix3,Q=new e.Matrix3;function q(o){const i=o.vertexFormat,s=o.geometry,l=o.shadowVolume,c=s.attributes.position.values,y=t.defined(s.attributes.st)?s.attributes.st.values:void 0;let d=c.length;const g=o.wall,h=o.top||g,f=o.bottom||g;if(i.st||i.normal||i.tangent||i.bitangent||l){const p=o.boundingRectangle,b=o.tangentPlane,_=o.ellipsoid,P=o.stRotation,x=o.perPositionHeight,C=z;C.x=p.x,C.y=p.y;const w=i.st?new Float32Array(d/3*2):void 0;let T;i.normal&&(T=x&&h&&!g?s.attributes.normal.values:new Float32Array(d));const I=i.tangent?new Float32Array(d):void 0,A=i.bitangent?new Float32Array(d):void 0,v=l?new Float32Array(d):void 0;let E=0,G=0,O=D,V=N,q=F,K=!0,Z=j,J=Q;if(0!==P){let t=r.Quaternion.fromAxisAngle(b._plane.normal,P,U);Z=e.Matrix3.fromQuaternion(t,Z),t=r.Quaternion.fromAxisAngle(b._plane.normal,-P,U),J=e.Matrix3.fromQuaternion(t,J)}else Z=e.Matrix3.clone(e.Matrix3.IDENTITY,Z),J=e.Matrix3.clone(e.Matrix3.IDENTITY,J);let X=0,$=0;h&&f&&(X=d/2,$=d/3,d/=2);for(let r=0;r<d;r+=3){const a=e.Cartesian3.fromArray(c,r,Y);if(i.st&&!t.defined(y)){let t=e.Matrix3.multiplyByVector(Z,a,H);t=_.scaleToGeodeticSurface(t,t);const o=b.projectPointOntoPlane(t,W);n.Cartesian2.subtract(o,C,o);const i=m.CesiumMath.clamp(o.x/p.width,0,1),r=m.CesiumMath.clamp(o.y/p.height,0,1);f&&(w[E+$]=i,w[E+1+$]=r),h&&(w[E]=i,w[E+1]=r),E+=2}if(i.normal||i.tangent||i.bitangent||l){const t=G+1,n=G+2;if(g){if(r+3<d){const t=e.Cartesian3.fromArray(c,r+3,R);if(K){const o=e.Cartesian3.fromArray(c,r+d,M);x&&L(a,t,o,_),e.Cartesian3.subtract(t,a,t),e.Cartesian3.subtract(o,a,o),O=e.Cartesian3.normalize(e.Cartesian3.cross(o,t,O),O),K=!1}e.Cartesian3.equalsEpsilon(t,a,m.CesiumMath.EPSILON10)&&(K=!0)}(i.tangent||i.bitangent)&&(q=_.geodeticSurfaceNormal(a,q),i.tangent&&(V=e.Cartesian3.normalize(e.Cartesian3.cross(q,O,V),V)))}else O=_.geodeticSurfaceNormal(a,O),(i.tangent||i.bitangent)&&(x&&(S=e.Cartesian3.fromArray(T,G,S),B=e.Cartesian3.cross(e.Cartesian3.UNIT_Z,S,B),B=e.Cartesian3.normalize(e.Matrix3.multiplyByVector(J,B,B),B),i.bitangent&&(k=e.Cartesian3.normalize(e.Cartesian3.cross(S,B,k),k))),V=e.Cartesian3.cross(e.Cartesian3.UNIT_Z,O,V),V=e.Cartesian3.normalize(e.Matrix3.multiplyByVector(J,V,V),V),i.bitangent&&(q=e.Cartesian3.normalize(e.Cartesian3.cross(O,V,q),q)));i.normal&&(o.wall?(T[G+X]=O.x,T[t+X]=O.y,T[n+X]=O.z):f&&(T[G+X]=-O.x,T[t+X]=-O.y,T[n+X]=-O.z),(h&&!x||g)&&(T[G]=O.x,T[t]=O.y,T[n]=O.z)),l&&(g&&(O=_.geodeticSurfaceNormal(a,O)),v[G+X]=-O.x,v[t+X]=-O.y,v[n+X]=-O.z),i.tangent&&(o.wall?(I[G+X]=V.x,I[t+X]=V.y,I[n+X]=V.z):f&&(I[G+X]=-V.x,I[t+X]=-V.y,I[n+X]=-V.z),h&&(x?(I[G]=B.x,I[t]=B.y,I[n]=B.z):(I[G]=V.x,I[t]=V.y,I[n]=V.z))),i.bitangent&&(f&&(A[G+X]=q.x,A[t+X]=q.y,A[n+X]=q.z),h&&(x?(A[G]=k.x,A[t]=k.y,A[n]=k.z):(A[G]=q.x,A[t]=q.y,A[n]=q.z))),G+=3}}i.st&&!t.defined(y)&&(s.attributes.st=new u.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:w})),i.normal&&(s.attributes.normal=new u.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:T})),i.tangent&&(s.attributes.tangent=new u.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:I})),i.bitangent&&(s.attributes.bitangent=new u.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:A})),l&&(s.attributes.extrudeDirection=new u.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:v}))}if(o.extrude&&t.defined(o.offsetAttribute)){const t=c.length/3;let e=new Uint8Array(t);if(o.offsetAttribute===p.GeometryOffsetAttribute.TOP)h&&f||g?e=e.fill(1,0,t/2):h&&(e=e.fill(1));else{const t=o.offsetAttribute===p.GeometryOffsetAttribute.NONE?0:1;e=e.fill(t)}s.attributes.applyOffset=new u.GeometryAttribute({componentDatatype:a.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:e})}return s}const K=new e.Cartographic,Z=new e.Cartographic,J={westOverIDL:0,eastOverIDL:0};let X=new s.EllipsoidGeodesic;function $(e,i,r,a,l){if(l=t.defaultValue(l,new n.Rectangle),!t.defined(e)||e.length<3)return l.west=0,l.north=0,l.south=0,l.east=0,l;if(r===o.ArcType.RHUMB)return n.Rectangle.fromCartesianArray(e,i,l);X.ellipsoid.equals(i)||(X=new s.EllipsoidGeodesic(void 0,void 0,i)),l.west=Number.POSITIVE_INFINITY,l.east=Number.NEGATIVE_INFINITY,l.south=Number.POSITIVE_INFINITY,l.north=Number.NEGATIVE_INFINITY,J.westOverIDL=Number.POSITIVE_INFINITY,J.eastOverIDL=Number.NEGATIVE_INFINITY;const u=1/m.CesiumMath.chordLength(a,i.maximumRadius),c=e.length;let p,y=i.cartesianToCartographic(e[0],Z),d=K;for(let t=1;t<c;t++)p=d,d=y,y=i.cartesianToCartographic(e[t],p),X.setEndPoints(d,y),et(X,u,l,J);return p=d,d=y,y=i.cartesianToCartographic(e[0],p),X.setEndPoints(d,y),et(X,u,l,J),l.east-l.west>J.eastOverIDL-J.westOverIDL&&(l.west=J.westOverIDL,l.east=J.eastOverIDL,l.east>m.CesiumMath.PI&&(l.east=l.east-m.CesiumMath.TWO_PI),l.west>m.CesiumMath.PI&&(l.west=l.west-m.CesiumMath.TWO_PI)),l}const tt=new e.Cartographic;function et(t,e,o,i){const r=t.surfaceDistance,n=Math.ceil(r*e),a=n>0?r/(n-1):Number.POSITIVE_INFINITY;let s=0;for(let e=0;e<n;e++){const e=t.interpolateUsingSurfaceDistance(s,tt);s+=a;const r=e.longitude,n=e.latitude;o.west=Math.min(o.west,r),o.east=Math.max(o.east,r),o.south=Math.min(o.south,n),o.north=Math.max(o.north,n);const l=r>=0?r:r+m.CesiumMath.TWO_PI;i.westOverIDL=Math.min(i.westOverIDL,l),i.eastOverIDL=Math.max(i.eastOverIDL,l)}}const ot=[];function it(e,o,i,r,n,a,s,u,p,y){const m={walls:[]};let f;if(s||u){const n=g.PolygonGeometryLibrary.createGeometryFromPositions(e,o,i,r,a,p,y),l=n.attributes.position.values,h=n.indices;let b,_;if(s&&u){const e=l.concat(l);b=e.length/3,_=d.IndexDatatype.createTypedArray(b,2*h.length),_.set(h);const o=h.length,r=b/2;for(f=0;f<o;f+=3){const t=_[f]+r,e=_[f+1]+r,i=_[f+2]+r;_[f+o]=i,_[f+1+o]=e,_[f+2+o]=t}if(n.attributes.position.values=e,a&&p.normal){const t=n.attributes.normal.values;n.attributes.normal.values=new Float32Array(e.length),n.attributes.normal.values.set(t)}if(p.st&&t.defined(i)){const t=n.attributes.st.values;n.attributes.st.values=new Float32Array(2*b),n.attributes.st.values=t.concat(t)}n.indices=_}else if(u){for(b=l.length/3,_=d.IndexDatatype.createTypedArray(b,h.length),f=0;f<h.length;f+=3)_[f]=h[f+2],_[f+1]=h[f+1],_[f+2]=h[f];n.indices=_}m.topAndBottom=new c.GeometryInstance({geometry:n})}let b=n.outerRing,_=l.EllipsoidTangentPlane.fromPoints(b,e),P=_.projectPointsOntoPlane(b,ot),x=h.PolygonPipeline.computeWindingOrder2D(P);x===h.WindingOrder.CLOCKWISE&&(b=b.slice().reverse());let C=g.PolygonGeometryLibrary.computeWallGeometry(b,i,e,r,a,y);m.walls.push(new c.GeometryInstance({geometry:C}));const w=n.holes;for(f=0;f<w.length;f++){let t=w[f];_=l.EllipsoidTangentPlane.fromPoints(t,e),P=_.projectPointsOntoPlane(t,ot),x=h.PolygonPipeline.computeWindingOrder2D(P),x===h.WindingOrder.COUNTER_CLOCKWISE&&(t=t.slice().reverse()),C=g.PolygonGeometryLibrary.computeWallGeometry(t,i,e,r,a,y),m.walls.push(new c.GeometryInstance({geometry:C}))}return m}function rt(i){const r=i.polygonHierarchy,a=t.defaultValue(i.vertexFormat,f.VertexFormat.DEFAULT),s=t.defaultValue(i.ellipsoid,e.Ellipsoid.WGS84),l=t.defaultValue(i.granularity,m.CesiumMath.RADIANS_PER_DEGREE),u=t.defaultValue(i.stRotation,0),c=i.textureCoordinates,p=t.defaultValue(i.perPositionHeight,!1),y=p&&t.defined(i.extrudedHeight);let d=t.defaultValue(i.height,0),h=t.defaultValue(i.extrudedHeight,d);if(!y){const t=Math.max(d,h);h=Math.min(d,h),d=t}this._vertexFormat=f.VertexFormat.clone(a),this._ellipsoid=e.Ellipsoid.clone(s),this._granularity=l,this._stRotation=u,this._height=d,this._extrudedHeight=h,this._closeTop=t.defaultValue(i.closeTop,!0),this._closeBottom=t.defaultValue(i.closeBottom,!0),this._polygonHierarchy=r,this._perPositionHeight=p,this._perPositionHeightExtrude=y,this._shadowVolume=t.defaultValue(i.shadowVolume,!1),this._workerName="createPolygonGeometry",this._offsetAttribute=i.offsetAttribute,this._arcType=t.defaultValue(i.arcType,o.ArcType.GEODESIC),this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this._textureCoordinates=c,this.packedLength=g.PolygonGeometryLibrary.computeHierarchyPackedLength(r,e.Cartesian3)+e.Ellipsoid.packedLength+f.VertexFormat.packedLength+(c?g.PolygonGeometryLibrary.computeHierarchyPackedLength(c,n.Cartesian2):1)+12}rt.fromPositions=function(e){return new rt({polygonHierarchy:{positions:(e=t.defaultValue(e,t.defaultValue.EMPTY_OBJECT)).positions},height:e.height,extrudedHeight:e.extrudedHeight,vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,closeTop:e.closeTop,closeBottom:e.closeBottom,offsetAttribute:e.offsetAttribute,arcType:e.arcType,textureCoordinates:e.textureCoordinates})},rt.pack=function(o,i,r){return r=t.defaultValue(r,0),r=g.PolygonGeometryLibrary.packPolygonHierarchy(o._polygonHierarchy,i,r,e.Cartesian3),e.Ellipsoid.pack(o._ellipsoid,i,r),r+=e.Ellipsoid.packedLength,f.VertexFormat.pack(o._vertexFormat,i,r),r+=f.VertexFormat.packedLength,i[r++]=o._height,i[r++]=o._extrudedHeight,i[r++]=o._granularity,i[r++]=o._stRotation,i[r++]=o._perPositionHeightExtrude?1:0,i[r++]=o._perPositionHeight?1:0,i[r++]=o._closeTop?1:0,i[r++]=o._closeBottom?1:0,i[r++]=o._shadowVolume?1:0,i[r++]=t.defaultValue(o._offsetAttribute,-1),i[r++]=o._arcType,t.defined(o._textureCoordinates)?r=g.PolygonGeometryLibrary.packPolygonHierarchy(o._textureCoordinates,i,r,n.Cartesian2):i[r++]=-1,i[r++]=o.packedLength,i};const nt=e.Ellipsoid.clone(e.Ellipsoid.UNIT_SPHERE),at=new f.VertexFormat,st={polygonHierarchy:{}};return rt.unpack=function(o,i,r){i=t.defaultValue(i,0);const a=g.PolygonGeometryLibrary.unpackPolygonHierarchy(o,i,e.Cartesian3);i=a.startingIndex,delete a.startingIndex;const s=e.Ellipsoid.unpack(o,i,nt);i+=e.Ellipsoid.packedLength;const l=f.VertexFormat.unpack(o,i,at);i+=f.VertexFormat.packedLength;const u=o[i++],c=o[i++],p=o[i++],y=o[i++],d=1===o[i++],m=1===o[i++],h=1===o[i++],b=1===o[i++],_=1===o[i++],P=o[i++],x=o[i++],C=-1===o[i]?void 0:g.PolygonGeometryLibrary.unpackPolygonHierarchy(o,i,n.Cartesian2);t.defined(C)?(i=C.startingIndex,delete C.startingIndex):i++;const w=o[i++];return t.defined(r)||(r=new rt(st)),r._polygonHierarchy=a,r._ellipsoid=e.Ellipsoid.clone(s,r._ellipsoid),r._vertexFormat=f.VertexFormat.clone(l,r._vertexFormat),r._height=u,r._extrudedHeight=c,r._granularity=p,r._stRotation=y,r._perPositionHeightExtrude=d,r._perPositionHeight=m,r._closeTop=h,r._closeBottom=b,r._shadowVolume=_,r._offsetAttribute=-1===P?void 0:P,r._arcType=x,r._textureCoordinates=C,r.packedLength=w,r},rt.computeRectangle=function(i,r){const n=t.defaultValue(i.granularity,m.CesiumMath.RADIANS_PER_DEGREE),a=t.defaultValue(i.arcType,o.ArcType.GEODESIC),s=i.polygonHierarchy,l=t.defaultValue(i.ellipsoid,e.Ellipsoid.WGS84);return $(s.positions,l,a,n,r)},rt.createGeometry=function(e){const o=e._vertexFormat,i=e._ellipsoid,n=e._granularity,s=e._stRotation,f=e._polygonHierarchy,b=e._perPositionHeight,_=e._closeTop,P=e._closeBottom,x=e._arcType,C=e._textureCoordinates,w=t.defined(C);let T=f.positions;if(T.length<3)return;const I=l.EllipsoidTangentPlane.fromPoints(T,i),A=g.PolygonGeometryLibrary.polygonsFromHierarchy(f,w,I.projectPointsOntoPlane.bind(I),!b,i),v=A.hierarchy,E=A.polygons,G=w?g.PolygonGeometryLibrary.polygonsFromHierarchy(C,!0,(function(t){return t}),!1).polygons:void 0;if(0===v.length)return;T=v[0].outerRing;const O=g.PolygonGeometryLibrary.computeBoundingRectangle(I.plane.normal,I.projectPointOntoPlane.bind(I),T,s,V),L=[],H=e._height,D=e._extrudedHeight,N={perPositionHeight:b,vertexFormat:o,geometry:void 0,tangentPlane:I,boundingRectangle:O,ellipsoid:i,stRotation:s,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:x};let F;if(e._perPositionHeightExtrude||!m.CesiumMath.equalsEpsilon(H,D,0,m.CesiumMath.EPSILON2))for(N.extrude=!0,N.top=_,N.bottom=P,N.shadowVolume=e._shadowVolume,N.offsetAttribute=e._offsetAttribute,F=0;F<E.length;F++){const t=it(i,E[F],w?G[F]:void 0,n,v[F],b,_,P,o,x);let e;_&&P?(e=t.topAndBottom,N.geometry=g.PolygonGeometryLibrary.scaleToGeodeticHeightExtruded(e.geometry,H,D,i,b)):_?(e=t.topAndBottom,e.geometry.attributes.position.values=h.PolygonPipeline.scaleToGeodeticHeight(e.geometry.attributes.position.values,H,i,!b),N.geometry=e.geometry):P&&(e=t.topAndBottom,e.geometry.attributes.position.values=h.PolygonPipeline.scaleToGeodeticHeight(e.geometry.attributes.position.values,D,i,!0),N.geometry=e.geometry),(_||P)&&(N.wall=!1,e.geometry=q(N),L.push(e));const r=t.walls;N.wall=!0;for(let t=0;t<r.length;t++){const e=r[t];N.geometry=g.PolygonGeometryLibrary.scaleToGeodeticHeightExtruded(e.geometry,H,D,i,b),e.geometry=q(N),L.push(e)}}else for(F=0;F<E.length;F++){const r=new c.GeometryInstance({geometry:g.PolygonGeometryLibrary.createGeometryFromPositions(i,E[F],w?G[F]:void 0,n,b,o,x)});if(r.geometry.attributes.position.values=h.PolygonPipeline.scaleToGeodeticHeight(r.geometry.attributes.position.values,H,i,!b),N.geometry=r.geometry,r.geometry=q(N),t.defined(e._offsetAttribute)){const t=r.geometry.attributes.position.values.length,o=e._offsetAttribute===p.GeometryOffsetAttribute.NONE?0:1,i=new Uint8Array(t/3).fill(o);r.geometry.attributes.applyOffset=new u.GeometryAttribute({componentDatatype:a.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:i})}L.push(r)}const R=y.GeometryPipeline.combineInstances(L)[0];R.attributes.position.values=new Float64Array(R.attributes.position.values),R.indices=d.IndexDatatype.createTypedArray(R.attributes.position.values.length/3,R.indices);const M=R.attributes,S=r.BoundingSphere.fromVertices(M.position.values);return o.position||delete M.position,new u.Geometry({attributes:M,indices:R.indices,primitiveType:R.primitiveType,boundingSphere:S,offsetAttribute:e._offsetAttribute})},rt.createShadowVolume=function(t,e,o){const i=t._granularity,r=t._ellipsoid,n=e(i,r),a=o(i,r);return new rt({polygonHierarchy:t._polygonHierarchy,ellipsoid:r,stRotation:t._stRotation,granularity:i,perPositionHeight:!1,extrudedHeight:n,height:a,vertexFormat:f.VertexFormat.POSITION_ONLY,shadowVolume:!0,arcType:t._arcType})},Object.defineProperties(rt.prototype,{rectangle:{get:function(){if(!t.defined(this._rectangle)){const t=this._polygonHierarchy.positions;this._rectangle=$(t,this._ellipsoid,this._arcType,this._granularity)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return t.defined(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=function(t){const e=-t._stRotation;if(0===e)return[0,0,0,1,1,0];const o=t._ellipsoid,i=t._polygonHierarchy.positions,r=t.rectangle;return u.Geometry._textureCoordinateRotationPoints(i,e,o,r)}(this)),this._textureCoordinateRotationPoints}}}),function(o,i){return t.defined(i)&&(o=rt.unpack(o,i)),o._ellipsoid=e.Ellipsoid.clone(o._ellipsoid),rt.createGeometry(o)}})); diff --git a/public/static/Cesium/Workers/createPolygonOutlineGeometry.js b/public/static/Cesium/Workers/createPolygonOutlineGeometry.js new file mode 100644 index 0000000..b0c9028 --- /dev/null +++ b/public/static/Cesium/Workers/createPolygonOutlineGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Matrix3-b2351961","./ArcType-26a3f38d","./Transforms-c842a68c","./ComponentDatatype-ab629b88","./EllipsoidTangentPlane-05ee7166","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryInstance-c4920693","./GeometryOffsetAttribute-2579b8d2","./GeometryPipeline-87cdea8e","./IndexDatatype-a9b1bc18","./Math-355606c6","./PolygonGeometryLibrary-f7ee0859","./PolygonPipeline-eec72ff0","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93","./AxisAlignedBoundingBox-93c1311e","./IntersectionTests-863687a2","./Plane-5931b53e","./AttributeCompression-0b8f7b7d","./EncodedCartesian3-abad5e8c","./arrayRemoveDuplicates-0d8dde26","./EllipsoidRhumbLine-1289f7e8"],(function(e,t,i,o,r,n,a,s,l,y,u,p,d,c,g,f,h,m,b,P,A,E,_,G,L,T){"use strict";const H=[],v=[];function x(e,t,o,y,u){const d=n.EllipsoidTangentPlane.fromPoints(t,e).projectPointsOntoPlane(t,H);let f,h;g.PolygonPipeline.computeWindingOrder2D(d)===g.WindingOrder.CLOCKWISE&&(d.reverse(),t=t.slice().reverse());let m=t.length,b=0;if(y)for(f=new Float64Array(2*m*3),h=0;h<m;h++){const e=t[h],i=t[(h+1)%m];f[b++]=e.x,f[b++]=e.y,f[b++]=e.z,f[b++]=i.x,f[b++]=i.y,f[b++]=i.z}else{let r=0;if(u===i.ArcType.GEODESIC)for(h=0;h<m;h++)r+=c.PolygonGeometryLibrary.subdivideLineCount(t[h],t[(h+1)%m],o);else if(u===i.ArcType.RHUMB)for(h=0;h<m;h++)r+=c.PolygonGeometryLibrary.subdivideRhumbLineCount(e,t[h],t[(h+1)%m],o);for(f=new Float64Array(3*r),h=0;h<m;h++){let r;u===i.ArcType.GEODESIC?r=c.PolygonGeometryLibrary.subdivideLine(t[h],t[(h+1)%m],o,v):u===i.ArcType.RHUMB&&(r=c.PolygonGeometryLibrary.subdivideRhumbLine(e,t[h],t[(h+1)%m],o,v));const n=r.length;for(let e=0;e<n;++e)f[b++]=r[e]}}m=f.length/3;const P=2*m,A=p.IndexDatatype.createTypedArray(m,P);for(b=0,h=0;h<m-1;h++)A[b++]=h,A[b++]=h+1;return A[b++]=m-1,A[b++]=0,new l.GeometryInstance({geometry:new a.Geometry({attributes:new s.GeometryAttributes({position:new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:f})}),indices:A,primitiveType:a.PrimitiveType.LINES})})}function C(e,t,o,y,u){const d=n.EllipsoidTangentPlane.fromPoints(t,e).projectPointsOntoPlane(t,H);let f,h;g.PolygonPipeline.computeWindingOrder2D(d)===g.WindingOrder.CLOCKWISE&&(d.reverse(),t=t.slice().reverse());let m=t.length;const b=new Array(m);let P=0;if(y)for(f=new Float64Array(2*m*3*2),h=0;h<m;++h){b[h]=P/3;const e=t[h],i=t[(h+1)%m];f[P++]=e.x,f[P++]=e.y,f[P++]=e.z,f[P++]=i.x,f[P++]=i.y,f[P++]=i.z}else{let r=0;if(u===i.ArcType.GEODESIC)for(h=0;h<m;h++)r+=c.PolygonGeometryLibrary.subdivideLineCount(t[h],t[(h+1)%m],o);else if(u===i.ArcType.RHUMB)for(h=0;h<m;h++)r+=c.PolygonGeometryLibrary.subdivideRhumbLineCount(e,t[h],t[(h+1)%m],o);for(f=new Float64Array(3*r*2),h=0;h<m;++h){let r;b[h]=P/3,u===i.ArcType.GEODESIC?r=c.PolygonGeometryLibrary.subdivideLine(t[h],t[(h+1)%m],o,v):u===i.ArcType.RHUMB&&(r=c.PolygonGeometryLibrary.subdivideRhumbLine(e,t[h],t[(h+1)%m],o,v));const n=r.length;for(let e=0;e<n;++e)f[P++]=r[e]}}m=f.length/6;const A=b.length,E=2*(2*m+A),_=p.IndexDatatype.createTypedArray(m+A,E);for(P=0,h=0;h<m;++h)_[P++]=h,_[P++]=(h+1)%m,_[P++]=h+m,_[P++]=(h+1)%m+m;for(h=0;h<A;h++){const e=b[h];_[P++]=e,_[P++]=e+m}return new l.GeometryInstance({geometry:new a.Geometry({attributes:new s.GeometryAttributes({position:new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:f})}),indices:_,primitiveType:a.PrimitiveType.LINES})})}function O(o){const r=o.polygonHierarchy,n=e.defaultValue(o.ellipsoid,t.Ellipsoid.WGS84),a=e.defaultValue(o.granularity,d.CesiumMath.RADIANS_PER_DEGREE),s=e.defaultValue(o.perPositionHeight,!1),l=s&&e.defined(o.extrudedHeight),y=e.defaultValue(o.arcType,i.ArcType.GEODESIC);let u=e.defaultValue(o.height,0),p=e.defaultValue(o.extrudedHeight,u);if(!l){const e=Math.max(u,p);p=Math.min(u,p),u=e}this._ellipsoid=t.Ellipsoid.clone(n),this._granularity=a,this._height=u,this._extrudedHeight=p,this._arcType=y,this._polygonHierarchy=r,this._perPositionHeight=s,this._perPositionHeightExtrude=l,this._offsetAttribute=o.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=c.PolygonGeometryLibrary.computeHierarchyPackedLength(r,t.Cartesian3)+t.Ellipsoid.packedLength+8}O.pack=function(i,o,r){return r=e.defaultValue(r,0),r=c.PolygonGeometryLibrary.packPolygonHierarchy(i._polygonHierarchy,o,r,t.Cartesian3),t.Ellipsoid.pack(i._ellipsoid,o,r),r+=t.Ellipsoid.packedLength,o[r++]=i._height,o[r++]=i._extrudedHeight,o[r++]=i._granularity,o[r++]=i._perPositionHeightExtrude?1:0,o[r++]=i._perPositionHeight?1:0,o[r++]=i._arcType,o[r++]=e.defaultValue(i._offsetAttribute,-1),o[r]=i.packedLength,o};const D=t.Ellipsoid.clone(t.Ellipsoid.UNIT_SPHERE),I={polygonHierarchy:{}};return O.unpack=function(i,o,r){o=e.defaultValue(o,0);const n=c.PolygonGeometryLibrary.unpackPolygonHierarchy(i,o,t.Cartesian3);o=n.startingIndex,delete n.startingIndex;const a=t.Ellipsoid.unpack(i,o,D);o+=t.Ellipsoid.packedLength;const s=i[o++],l=i[o++],y=i[o++],u=1===i[o++],p=1===i[o++],d=i[o++],g=i[o++],f=i[o];return e.defined(r)||(r=new O(I)),r._polygonHierarchy=n,r._ellipsoid=t.Ellipsoid.clone(a,r._ellipsoid),r._height=s,r._extrudedHeight=l,r._granularity=y,r._perPositionHeight=p,r._perPositionHeightExtrude=u,r._arcType=d,r._offsetAttribute=-1===g?void 0:g,r.packedLength=f,r},O.fromPositions=function(t){return new O({polygonHierarchy:{positions:(t=e.defaultValue(t,e.defaultValue.EMPTY_OBJECT)).positions},height:t.height,extrudedHeight:t.extrudedHeight,ellipsoid:t.ellipsoid,granularity:t.granularity,perPositionHeight:t.perPositionHeight,arcType:t.arcType,offsetAttribute:t.offsetAttribute})},O.createGeometry=function(t){const i=t._ellipsoid,n=t._granularity,s=t._polygonHierarchy,l=t._perPositionHeight,p=t._arcType,f=c.PolygonGeometryLibrary.polygonOutlinesFromHierarchy(s,!l,i);if(0===f.length)return;let h;const m=[],b=d.CesiumMath.chordLength(n,i.maximumRadius),P=t._height,A=t._extrudedHeight;let E,_;if(t._perPositionHeightExtrude||!d.CesiumMath.equalsEpsilon(P,A,0,d.CesiumMath.EPSILON2))for(_=0;_<f.length;_++){if(h=C(i,f[_],b,l,p),h.geometry=c.PolygonGeometryLibrary.scaleToGeodeticHeightExtruded(h.geometry,P,A,i,l),e.defined(t._offsetAttribute)){const e=h.geometry.attributes.position.values.length/3;let i=new Uint8Array(e);t._offsetAttribute===y.GeometryOffsetAttribute.TOP?i=i.fill(1,0,e/2):(E=t._offsetAttribute===y.GeometryOffsetAttribute.NONE?0:1,i=i.fill(E)),h.geometry.attributes.applyOffset=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:i})}m.push(h)}else for(_=0;_<f.length;_++){if(h=x(i,f[_],b,l,p),h.geometry.attributes.position.values=g.PolygonPipeline.scaleToGeodeticHeight(h.geometry.attributes.position.values,P,i,!l),e.defined(t._offsetAttribute)){const e=h.geometry.attributes.position.values.length;E=t._offsetAttribute===y.GeometryOffsetAttribute.NONE?0:1;const i=new Uint8Array(e/3).fill(E);h.geometry.attributes.applyOffset=new a.GeometryAttribute({componentDatatype:r.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:i})}m.push(h)}const G=u.GeometryPipeline.combineInstances(m)[0],L=o.BoundingSphere.fromVertices(G.attributes.position.values);return new a.Geometry({attributes:G.attributes,indices:G.indices,primitiveType:G.primitiveType,boundingSphere:L,offsetAttribute:t._offsetAttribute})},function(i,o){return e.defined(o)&&(i=O.unpack(i,o)),i._ellipsoid=t.Ellipsoid.clone(i._ellipsoid),O.createGeometry(i)}})); diff --git a/public/static/Cesium/Workers/createPolylineGeometry.js b/public/static/Cesium/Workers/createPolylineGeometry.js new file mode 100644 index 0000000..798479c --- /dev/null +++ b/public/static/Cesium/Workers/createPolylineGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Matrix3-b2351961","./ArcType-26a3f38d","./arrayRemoveDuplicates-0d8dde26","./Transforms-c842a68c","./Color-4333bfe0","./ComponentDatatype-ab629b88","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./IndexDatatype-a9b1bc18","./Math-355606c6","./PolylinePipeline-dfaa9e90","./VertexFormat-fbdec922","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93","./EllipsoidGeodesic-20aaff03","./EllipsoidRhumbLine-1289f7e8","./IntersectionTests-863687a2","./Plane-5931b53e"],(function(e,t,o,r,n,a,i,l,s,c,p,d,u,y,m,h,f,C,g,_,A){"use strict";const E=[];function P(e,t,o,r,n){const i=E;let l;i.length=n;const s=o.red,c=o.green,p=o.blue,d=o.alpha,u=r.red,y=r.green,m=r.blue,h=r.alpha;if(a.Color.equals(o,r)){for(l=0;l<n;l++)i[l]=a.Color.clone(o);return i}const f=(u-s)/n,C=(y-c)/n,g=(m-p)/n,_=(h-d)/n;for(l=0;l<n;l++)i[l]=new a.Color(s+l*f,c+l*C,p+l*g,d+l*_);return i}function x(r){const n=(r=e.defaultValue(r,e.defaultValue.EMPTY_OBJECT)).positions,i=r.colors,l=e.defaultValue(r.width,1),s=e.defaultValue(r.colorsPerVertex,!1);this._positions=n,this._colors=i,this._width=l,this._colorsPerVertex=s,this._vertexFormat=u.VertexFormat.clone(e.defaultValue(r.vertexFormat,u.VertexFormat.DEFAULT)),this._arcType=e.defaultValue(r.arcType,o.ArcType.GEODESIC),this._granularity=e.defaultValue(r.granularity,p.CesiumMath.RADIANS_PER_DEGREE),this._ellipsoid=t.Ellipsoid.clone(e.defaultValue(r.ellipsoid,t.Ellipsoid.WGS84)),this._workerName="createPolylineGeometry";let c=1+n.length*t.Cartesian3.packedLength;c+=e.defined(i)?1+i.length*a.Color.packedLength:1,this.packedLength=c+t.Ellipsoid.packedLength+u.VertexFormat.packedLength+4}x.pack=function(o,r,n){let i;n=e.defaultValue(n,0);const l=o._positions;let s=l.length;for(r[n++]=s,i=0;i<s;++i,n+=t.Cartesian3.packedLength)t.Cartesian3.pack(l[i],r,n);const c=o._colors;for(s=e.defined(c)?c.length:0,r[n++]=s,i=0;i<s;++i,n+=a.Color.packedLength)a.Color.pack(c[i],r,n);return t.Ellipsoid.pack(o._ellipsoid,r,n),n+=t.Ellipsoid.packedLength,u.VertexFormat.pack(o._vertexFormat,r,n),n+=u.VertexFormat.packedLength,r[n++]=o._width,r[n++]=o._colorsPerVertex?1:0,r[n++]=o._arcType,r[n]=o._granularity,r};const w=t.Ellipsoid.clone(t.Ellipsoid.UNIT_SPHERE),T=new u.VertexFormat,b={positions:void 0,colors:void 0,ellipsoid:w,vertexFormat:T,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};x.unpack=function(o,r,n){let i;r=e.defaultValue(r,0);let l=o[r++];const s=new Array(l);for(i=0;i<l;++i,r+=t.Cartesian3.packedLength)s[i]=t.Cartesian3.unpack(o,r);l=o[r++];const c=l>0?new Array(l):void 0;for(i=0;i<l;++i,r+=a.Color.packedLength)c[i]=a.Color.unpack(o,r);const p=t.Ellipsoid.unpack(o,r,w);r+=t.Ellipsoid.packedLength;const d=u.VertexFormat.unpack(o,r,T);r+=u.VertexFormat.packedLength;const y=o[r++],m=1===o[r++],h=o[r++],f=o[r];return e.defined(n)?(n._positions=s,n._colors=c,n._ellipsoid=t.Ellipsoid.clone(p,n._ellipsoid),n._vertexFormat=u.VertexFormat.clone(d,n._vertexFormat),n._width=y,n._colorsPerVertex=m,n._arcType=h,n._granularity=f,n):(b.positions=s,b.colors=c,b.width=y,b.colorsPerVertex=m,b.arcType=h,b.granularity=f,new x(b))};const D=new t.Cartesian3,k=new t.Cartesian3,V=new t.Cartesian3,v=new t.Cartesian3;return x.createGeometry=function(u){const y=u._width,m=u._vertexFormat;let h=u._colors;const f=u._colorsPerVertex,C=u._arcType,g=u._granularity,_=u._ellipsoid;let A,x,w;const T=[];let b=r.arrayRemoveDuplicates(u._positions,t.Cartesian3.equalsEpsilon,!1,T);if(e.defined(h)&&T.length>0){let e=0,t=T[0];h=h.filter((function(o,r){let n=!1;return n=f?r===t||0===r&&1===t:r+1===t,!n||(e++,t=T[e],!1)}))}let L=b.length;if(L<2||y<=0)return;if(C===o.ArcType.GEODESIC||C===o.ArcType.RHUMB){let t,r;C===o.ArcType.GEODESIC?(t=p.CesiumMath.chordLength(g,_.maximumRadius),r=d.PolylinePipeline.numberOfPoints):(t=g,r=d.PolylinePipeline.numberOfPointsRhumbLine);const n=d.PolylinePipeline.extractHeights(b,_);if(e.defined(h)){let e=1;for(A=0;A<L-1;++A)e+=r(b[A],b[A+1],t);const o=new Array(e);let n=0;for(A=0;A<L-1;++A){const i=b[A],l=b[A+1],s=h[A],c=r(i,l,t);if(f&&A<e){const e=P(0,0,s,h[A+1],c),t=e.length;for(x=0;x<t;++x)o[n++]=e[x]}else for(x=0;x<c;++x)o[n++]=a.Color.clone(s)}o[n]=a.Color.clone(h[h.length-1]),h=o,E.length=0}b=C===o.ArcType.GEODESIC?d.PolylinePipeline.generateCartesianArc({positions:b,minDistance:t,ellipsoid:_,height:n}):d.PolylinePipeline.generateCartesianRhumbArc({positions:b,granularity:t,ellipsoid:_,height:n})}L=b.length;const F=4*L-4,G=new Float64Array(3*F),O=new Float64Array(3*F),R=new Float64Array(3*F),I=new Float32Array(2*F),S=m.st?new Float32Array(2*F):void 0,B=e.defined(h)?new Uint8Array(4*F):void 0;let M,U=0,N=0,H=0,W=0;for(x=0;x<L;++x){let o,r;0===x?(M=D,t.Cartesian3.subtract(b[0],b[1],M),t.Cartesian3.add(b[0],M,M)):M=b[x-1],t.Cartesian3.clone(M,V),t.Cartesian3.clone(b[x],k),x===L-1?(M=D,t.Cartesian3.subtract(b[L-1],b[L-2],M),t.Cartesian3.add(b[L-1],M,M)):M=b[x+1],t.Cartesian3.clone(M,v),e.defined(B)&&(o=0===x||f?h[x]:h[x-1],x!==L-1&&(r=h[x]));const n=x===L-1?2:4;for(w=0===x?2:0;w<n;++w){t.Cartesian3.pack(k,G,U),t.Cartesian3.pack(V,O,U),t.Cartesian3.pack(v,R,U),U+=3;const n=w-2<0?-1:1;if(I[N++]=w%2*2-1,I[N++]=n*y,m.st&&(S[H++]=x/(L-1),S[H++]=Math.max(I[N-2],0)),e.defined(B)){const e=w<2?o:r;B[W++]=a.Color.floatToByte(e.red),B[W++]=a.Color.floatToByte(e.green),B[W++]=a.Color.floatToByte(e.blue),B[W++]=a.Color.floatToByte(e.alpha)}}}const Y=new s.GeometryAttributes;Y.position=new l.GeometryAttribute({componentDatatype:i.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:G}),Y.prevPosition=new l.GeometryAttribute({componentDatatype:i.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:O}),Y.nextPosition=new l.GeometryAttribute({componentDatatype:i.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:R}),Y.expandAndWidth=new l.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:I}),m.st&&(Y.st=new l.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:S})),e.defined(B)&&(Y.color=new l.GeometryAttribute({componentDatatype:i.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:4,values:B,normalize:!0}));const q=c.IndexDatatype.createTypedArray(F,6*L-6);let z=0,J=0;const K=L-1;for(x=0;x<K;++x)q[J++]=z,q[J++]=z+2,q[J++]=z+1,q[J++]=z+1,q[J++]=z+2,q[J++]=z+3,z+=4;return new l.Geometry({attributes:Y,indices:q,primitiveType:l.PrimitiveType.TRIANGLES,boundingSphere:n.BoundingSphere.fromPoints(b),geometryType:l.GeometryType.POLYLINES})},function(o,r){return e.defined(r)&&(o=x.unpack(o,r)),o._ellipsoid=t.Ellipsoid.clone(o._ellipsoid),x.createGeometry(o)}})); diff --git a/public/static/Cesium/Workers/createPolylineVolumeGeometry.js b/public/static/Cesium/Workers/createPolylineVolumeGeometry.js new file mode 100644 index 0000000..f153096 --- /dev/null +++ b/public/static/Cesium/Workers/createPolylineVolumeGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Matrix3-b2351961","./arrayRemoveDuplicates-0d8dde26","./BoundingRectangle-b88a4eda","./Transforms-c842a68c","./Matrix2-7a8e9daf","./ComponentDatatype-ab629b88","./PolylineVolumeGeometryLibrary-e2129320","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryPipeline-87cdea8e","./IndexDatatype-a9b1bc18","./Math-355606c6","./PolygonPipeline-eec72ff0","./VertexFormat-fbdec922","./combine-0c102d93","./RuntimeError-9b4ce3fb","./WebGLConstants-7f557f93","./EllipsoidTangentPlane-05ee7166","./AxisAlignedBoundingBox-93c1311e","./IntersectionTests-863687a2","./Plane-5931b53e","./PolylinePipeline-dfaa9e90","./EllipsoidGeodesic-20aaff03","./EllipsoidRhumbLine-1289f7e8","./AttributeCompression-0b8f7b7d","./EncodedCartesian3-abad5e8c"],(function(e,t,n,o,i,r,a,l,s,p,c,u,d,m,y,g,h,f,E,P,_,b,k,v,x,V,L){"use strict";function A(n){const o=(n=e.defaultValue(n,e.defaultValue.EMPTY_OBJECT)).polylinePositions,i=n.shapePositions;this._positions=o,this._shape=i,this._ellipsoid=t.Ellipsoid.clone(e.defaultValue(n.ellipsoid,t.Ellipsoid.WGS84)),this._cornerType=e.defaultValue(n.cornerType,l.CornerType.ROUNDED),this._vertexFormat=y.VertexFormat.clone(e.defaultValue(n.vertexFormat,y.VertexFormat.DEFAULT)),this._granularity=e.defaultValue(n.granularity,d.CesiumMath.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";let a=1+o.length*t.Cartesian3.packedLength;a+=1+i.length*r.Cartesian2.packedLength,this.packedLength=a+t.Ellipsoid.packedLength+y.VertexFormat.packedLength+2}A.pack=function(n,o,i){let a;i=e.defaultValue(i,0);const l=n._positions;let s=l.length;for(o[i++]=s,a=0;a<s;++a,i+=t.Cartesian3.packedLength)t.Cartesian3.pack(l[a],o,i);const p=n._shape;for(s=p.length,o[i++]=s,a=0;a<s;++a,i+=r.Cartesian2.packedLength)r.Cartesian2.pack(p[a],o,i);return t.Ellipsoid.pack(n._ellipsoid,o,i),i+=t.Ellipsoid.packedLength,y.VertexFormat.pack(n._vertexFormat,o,i),i+=y.VertexFormat.packedLength,o[i++]=n._cornerType,o[i]=n._granularity,o};const C=t.Ellipsoid.clone(t.Ellipsoid.UNIT_SPHERE),F=new y.VertexFormat,T={polylinePositions:void 0,shapePositions:void 0,ellipsoid:C,vertexFormat:F,cornerType:void 0,granularity:void 0};A.unpack=function(n,o,i){let a;o=e.defaultValue(o,0);let l=n[o++];const s=new Array(l);for(a=0;a<l;++a,o+=t.Cartesian3.packedLength)s[a]=t.Cartesian3.unpack(n,o);l=n[o++];const p=new Array(l);for(a=0;a<l;++a,o+=r.Cartesian2.packedLength)p[a]=r.Cartesian2.unpack(n,o);const c=t.Ellipsoid.unpack(n,o,C);o+=t.Ellipsoid.packedLength;const u=y.VertexFormat.unpack(n,o,F);o+=y.VertexFormat.packedLength;const d=n[o++],m=n[o];return e.defined(i)?(i._positions=s,i._shape=p,i._ellipsoid=t.Ellipsoid.clone(c,i._ellipsoid),i._vertexFormat=y.VertexFormat.clone(u,i._vertexFormat),i._cornerType=d,i._granularity=m,i):(T.polylinePositions=s,T.shapePositions=p,T.cornerType=d,T.granularity=m,new A(T))};const G=new o.BoundingRectangle;return A.createGeometry=function(e){const r=e._positions,d=n.arrayRemoveDuplicates(r,t.Cartesian3.equalsEpsilon);let y=e._shape;if(y=l.PolylineVolumeGeometryLibrary.removeDuplicatesFromShape(y),d.length<2||y.length<3)return;m.PolygonPipeline.computeWindingOrder2D(y)===m.WindingOrder.CLOCKWISE&&y.reverse();const g=o.BoundingRectangle.fromPoints(y,G);return function(e,t,n,o){const r=new p.GeometryAttributes;o.position&&(r.position=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:e}));const d=t.length,y=e.length/3,g=(y-2*d)/(2*d),h=m.PolygonPipeline.triangulate(t),f=(g-1)*d*6+2*h.length,E=u.IndexDatatype.createTypedArray(y,f);let P,_,b,k,v,x;const V=2*d;let L=0;for(P=0;P<g-1;P++){for(_=0;_<d-1;_++)b=2*_+P*d*2,x=b+V,k=b+1,v=k+V,E[L++]=k,E[L++]=b,E[L++]=v,E[L++]=v,E[L++]=b,E[L++]=x;b=2*d-2+P*d*2,k=b+1,v=k+V,x=b+V,E[L++]=k,E[L++]=b,E[L++]=v,E[L++]=v,E[L++]=b,E[L++]=x}if(o.st||o.tangent||o.bitangent){const e=new Float32Array(2*y),o=1/(g-1),i=1/n.height,l=n.height/2;let p,c,u=0;for(P=0;P<g;P++){for(p=P*o,c=i*(t[0].y+l),e[u++]=p,e[u++]=c,_=1;_<d;_++)c=i*(t[_].y+l),e[u++]=p,e[u++]=c,e[u++]=p,e[u++]=c;c=i*(t[0].y+l),e[u++]=p,e[u++]=c}for(_=0;_<d;_++)p=0,c=i*(t[_].y+l),e[u++]=p,e[u++]=c;for(_=0;_<d;_++)p=(g-1)*o,c=i*(t[_].y+l),e[u++]=p,e[u++]=c;r.st=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:new Float32Array(e)})}const A=y-2*d;for(P=0;P<h.length;P+=3){const e=h[P]+A,t=h[P+1]+A,n=h[P+2]+A;E[L++]=e,E[L++]=t,E[L++]=n,E[L++]=n+d,E[L++]=t+d,E[L++]=e+d}let C=new s.Geometry({attributes:r,indices:E,boundingSphere:i.BoundingSphere.fromVertices(e),primitiveType:s.PrimitiveType.TRIANGLES});if(o.normal&&(C=c.GeometryPipeline.computeNormal(C)),o.tangent||o.bitangent){try{C=c.GeometryPipeline.computeTangentAndBitangent(C)}catch(e){l.oneTimeWarning("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}o.tangent||(C.attributes.tangent=void 0),o.bitangent||(C.attributes.bitangent=void 0),o.st||(C.attributes.st=void 0)}return C}(l.PolylineVolumeGeometryLibrary.computePositions(d,y,g,e,!0),y,g,e._vertexFormat)},function(n,o){return e.defined(o)&&(n=A.unpack(n,o)),n._ellipsoid=t.Ellipsoid.clone(n._ellipsoid),A.createGeometry(n)}})); diff --git a/public/static/Cesium/Workers/createPolylineVolumeOutlineGeometry.js b/public/static/Cesium/Workers/createPolylineVolumeOutlineGeometry.js new file mode 100644 index 0000000..e8e7f9c --- /dev/null +++ b/public/static/Cesium/Workers/createPolylineVolumeOutlineGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Matrix3-b2351961","./arrayRemoveDuplicates-0d8dde26","./BoundingRectangle-b88a4eda","./Transforms-c842a68c","./Matrix2-7a8e9daf","./ComponentDatatype-ab629b88","./PolylineVolumeGeometryLibrary-e2129320","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./IndexDatatype-a9b1bc18","./Math-355606c6","./PolygonPipeline-eec72ff0","./combine-0c102d93","./RuntimeError-9b4ce3fb","./WebGLConstants-7f557f93","./EllipsoidTangentPlane-05ee7166","./AxisAlignedBoundingBox-93c1311e","./IntersectionTests-863687a2","./Plane-5931b53e","./PolylinePipeline-dfaa9e90","./EllipsoidGeodesic-20aaff03","./EllipsoidRhumbLine-1289f7e8"],(function(e,t,i,n,o,r,a,l,s,p,c,u,d,y,g,h,m,f,E,P,_,k,C){"use strict";function L(i){const n=(i=e.defaultValue(i,e.defaultValue.EMPTY_OBJECT)).polylinePositions,o=i.shapePositions;this._positions=n,this._shape=o,this._ellipsoid=t.Ellipsoid.clone(e.defaultValue(i.ellipsoid,t.Ellipsoid.WGS84)),this._cornerType=e.defaultValue(i.cornerType,l.CornerType.ROUNDED),this._granularity=e.defaultValue(i.granularity,u.CesiumMath.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";let a=1+n.length*t.Cartesian3.packedLength;a+=1+o.length*r.Cartesian2.packedLength,this.packedLength=a+t.Ellipsoid.packedLength+2}L.pack=function(i,n,o){let a;o=e.defaultValue(o,0);const l=i._positions;let s=l.length;for(n[o++]=s,a=0;a<s;++a,o+=t.Cartesian3.packedLength)t.Cartesian3.pack(l[a],n,o);const p=i._shape;for(s=p.length,n[o++]=s,a=0;a<s;++a,o+=r.Cartesian2.packedLength)r.Cartesian2.pack(p[a],n,o);return t.Ellipsoid.pack(i._ellipsoid,n,o),o+=t.Ellipsoid.packedLength,n[o++]=i._cornerType,n[o]=i._granularity,n};const T=t.Ellipsoid.clone(t.Ellipsoid.UNIT_SPHERE),D={polylinePositions:void 0,shapePositions:void 0,ellipsoid:T,height:void 0,cornerType:void 0,granularity:void 0};L.unpack=function(i,n,o){let a;n=e.defaultValue(n,0);let l=i[n++];const s=new Array(l);for(a=0;a<l;++a,n+=t.Cartesian3.packedLength)s[a]=t.Cartesian3.unpack(i,n);l=i[n++];const p=new Array(l);for(a=0;a<l;++a,n+=r.Cartesian2.packedLength)p[a]=r.Cartesian2.unpack(i,n);const c=t.Ellipsoid.unpack(i,n,T);n+=t.Ellipsoid.packedLength;const u=i[n++],d=i[n];return e.defined(o)?(o._positions=s,o._shape=p,o._ellipsoid=t.Ellipsoid.clone(c,o._ellipsoid),o._cornerType=u,o._granularity=d,o):(D.polylinePositions=s,D.shapePositions=p,D.cornerType=u,D.granularity=d,new L(D))};const G=new n.BoundingRectangle;return L.createGeometry=function(e){const r=e._positions,u=i.arrayRemoveDuplicates(r,t.Cartesian3.equalsEpsilon);let y=e._shape;if(y=l.PolylineVolumeGeometryLibrary.removeDuplicatesFromShape(y),u.length<2||y.length<3)return;d.PolygonPipeline.computeWindingOrder2D(y)===d.WindingOrder.CLOCKWISE&&y.reverse();const g=n.BoundingRectangle.fromPoints(y,G);return function(e,t){const i=new p.GeometryAttributes;i.position=new s.GeometryAttribute({componentDatatype:a.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:e});const n=t.length,r=i.position.values.length/3,l=e.length/3/n,u=c.IndexDatatype.createTypedArray(r,2*n*(l+1));let d,y,g=0;d=0;let h=d*n;for(y=0;y<n-1;y++)u[g++]=y+h,u[g++]=y+h+1;for(u[g++]=n-1+h,u[g++]=h,d=l-1,h=d*n,y=0;y<n-1;y++)u[g++]=y+h,u[g++]=y+h+1;for(u[g++]=n-1+h,u[g++]=h,d=0;d<l-1;d++){const e=n*d,t=e+n;for(y=0;y<n;y++)u[g++]=y+e,u[g++]=y+t}return new s.Geometry({attributes:i,indices:c.IndexDatatype.createTypedArray(r,u),boundingSphere:o.BoundingSphere.fromVertices(e),primitiveType:s.PrimitiveType.LINES})}(l.PolylineVolumeGeometryLibrary.computePositions(u,y,g,e,!1),y)},function(i,n){return e.defined(n)&&(i=L.unpack(i,n)),i._ellipsoid=t.Ellipsoid.clone(i._ellipsoid),L.createGeometry(i)}})); diff --git a/public/static/Cesium/Workers/createRectangleGeometry.js b/public/static/Cesium/Workers/createRectangleGeometry.js new file mode 100644 index 0000000..73ec504 --- /dev/null +++ b/public/static/Cesium/Workers/createRectangleGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Matrix3-b2351961","./Matrix2-7a8e9daf","./Transforms-c842a68c","./ComponentDatatype-ab629b88","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryInstance-c4920693","./GeometryOffsetAttribute-2579b8d2","./GeometryPipeline-87cdea8e","./IndexDatatype-a9b1bc18","./Math-355606c6","./PolygonPipeline-eec72ff0","./RectangleGeometryLibrary-40180469","./VertexFormat-fbdec922","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93","./AttributeCompression-0b8f7b7d","./EncodedCartesian3-abad5e8c","./IntersectionTests-863687a2","./Plane-5931b53e","./EllipsoidRhumbLine-1289f7e8"],(function(t,e,n,a,o,r,i,s,l,u,c,m,p,g,d,y,f,h,b,_,A,x,w){"use strict";const C=new e.Cartesian3,v=new e.Cartesian3,R=new e.Cartesian3,E=new e.Cartesian3,G=new n.Rectangle,F=new n.Cartesian2,P=new a.BoundingSphere,V=new a.BoundingSphere;function L(t,e){const n=new r.Geometry({attributes:new i.GeometryAttributes,primitiveType:r.PrimitiveType.TRIANGLES});return n.attributes.position=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:e.positions}),t.normal&&(n.attributes.normal=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:e.normals})),t.tangent&&(n.attributes.tangent=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:e.tangents})),t.bitangent&&(n.attributes.bitangent=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:e.bitangents})),n}const D=new e.Cartesian3,M=new e.Cartesian3;function T(t,n){const a=t._vertexFormat,i=t._ellipsoid,s=n.height,l=n.width,u=n.northCap,m=n.southCap;let p=0,d=s,y=s,f=0;u&&(p=1,y-=1,f+=1),m&&(d-=1,y-=1,f+=1),f+=l*y;const h=a.position?new Float64Array(3*f):void 0,b=a.st?new Float32Array(2*f):void 0;let _=0,A=0;const x=C,w=F;let G=Number.MAX_VALUE,P=Number.MAX_VALUE,V=-Number.MAX_VALUE,D=-Number.MAX_VALUE;for(let t=p;t<d;++t)for(let e=0;e<l;++e)g.RectangleGeometryLibrary.computePosition(n,i,a.st,t,e,x,w),h[_++]=x.x,h[_++]=x.y,h[_++]=x.z,a.st&&(b[A++]=w.x,b[A++]=w.y,G=Math.min(G,w.x),P=Math.min(P,w.y),V=Math.max(V,w.x),D=Math.max(D,w.y));if(u&&(g.RectangleGeometryLibrary.computePosition(n,i,a.st,0,0,x,w),h[_++]=x.x,h[_++]=x.y,h[_++]=x.z,a.st&&(b[A++]=w.x,b[A++]=w.y,G=w.x,P=w.y,V=w.x,D=w.y)),m&&(g.RectangleGeometryLibrary.computePosition(n,i,a.st,s-1,0,x,w),h[_++]=x.x,h[_++]=x.y,h[_]=x.z,a.st&&(b[A++]=w.x,b[A]=w.y,G=Math.min(G,w.x),P=Math.min(P,w.y),V=Math.max(V,w.x),D=Math.max(D,w.y))),a.st&&(G<0||P<0||V>1||D>1))for(let t=0;t<b.length;t+=2)b[t]=(b[t]-G)/(V-G),b[t+1]=(b[t+1]-P)/(D-P);const M=function(t,n,a,o){const r=t.length,i=n.normal?new Float32Array(r):void 0,s=n.tangent?new Float32Array(r):void 0,l=n.bitangent?new Float32Array(r):void 0;let u=0;const c=E,m=R;let p=v;if(n.normal||n.tangent||n.bitangent)for(let g=0;g<r;g+=3){const r=e.Cartesian3.fromArray(t,g,C),d=u+1,y=u+2;p=a.geodeticSurfaceNormal(r,p),(n.tangent||n.bitangent)&&(e.Cartesian3.cross(e.Cartesian3.UNIT_Z,p,m),e.Matrix3.multiplyByVector(o,m,m),e.Cartesian3.normalize(m,m),n.bitangent&&e.Cartesian3.normalize(e.Cartesian3.cross(p,m,c),c)),n.normal&&(i[u]=p.x,i[d]=p.y,i[y]=p.z),n.tangent&&(s[u]=m.x,s[d]=m.y,s[y]=m.z),n.bitangent&&(l[u]=c.x,l[d]=c.y,l[y]=c.z),u+=3}return L(n,{positions:t,normals:i,tangents:s,bitangents:l})}(h,a,i,n.tangentRotationMatrix);let T=6*(l-1)*(y-1);u&&(T+=3*(l-1)),m&&(T+=3*(l-1));const O=c.IndexDatatype.createTypedArray(f,T);let N,S=0,I=0;for(N=0;N<y-1;++N){for(let t=0;t<l-1;++t){const t=S,e=t+l,n=e+1,a=t+1;O[I++]=t,O[I++]=e,O[I++]=a,O[I++]=a,O[I++]=e,O[I++]=n,++S}++S}if(u||m){let t=f-1;const e=f-1;let n,a;if(u&&m&&(t=f-2),S=0,u)for(N=0;N<l-1;N++)n=S,a=n+1,O[I++]=t,O[I++]=n,O[I++]=a,++S;if(m)for(S=(y-1)*l,N=0;N<l-1;N++)n=S,a=n+1,O[I++]=n,O[I++]=e,O[I++]=a,++S}return M.indices=O,a.st&&(M.attributes.st=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:b})),M}function O(t,e,n,a,o){return t[e++]=a[n],t[e++]=a[n+1],t[e++]=a[n+2],t[e++]=o[n],t[e++]=o[n+1],t[e]=o[n+2],t}function N(t,e,n,a){return t[e++]=a[n],t[e++]=a[n+1],t[e++]=a[n],t[e]=a[n+1],t}const S=new d.VertexFormat;function I(n,a){const i=n._shadowVolume,g=n._offsetAttribute,y=n._vertexFormat,f=n._extrudedHeight,h=n._surfaceHeight,b=n._ellipsoid,_=a.height,A=a.width;let x;if(i){const t=d.VertexFormat.clone(y,S);t.normal=!0,n._vertexFormat=t}const w=T(n,a);i&&(n._vertexFormat=y);let G=p.PolygonPipeline.scaleToGeodeticHeight(w.attributes.position.values,h,b,!1);G=new Float64Array(G);let F=G.length;const P=2*F,V=new Float64Array(P);V.set(G);const I=p.PolygonPipeline.scaleToGeodeticHeight(w.attributes.position.values,f,b);V.set(I,F),w.attributes.position.values=V;const k=y.normal?new Float32Array(P):void 0,H=y.tangent?new Float32Array(P):void 0,z=y.bitangent?new Float32Array(P):void 0,B=y.st?new Float32Array(P/3*2):void 0;let U,Y,q;if(y.normal){for(Y=w.attributes.normal.values,k.set(Y),x=0;x<F;x++)Y[x]=-Y[x];k.set(Y,F),w.attributes.normal.values=k}if(i){Y=w.attributes.normal.values,y.normal||(w.attributes.normal=void 0);const t=new Float32Array(P);for(x=0;x<F;x++)Y[x]=-Y[x];t.set(Y,F),w.attributes.extrudeDirection=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:t})}const X=t.defined(g);if(X){const t=F/3*2;let e=new Uint8Array(t);g===l.GeometryOffsetAttribute.TOP?e=e.fill(1,0,t/2):(q=g===l.GeometryOffsetAttribute.NONE?0:1,e=e.fill(q)),w.attributes.applyOffset=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:e})}if(y.tangent){const t=w.attributes.tangent.values;for(H.set(t),x=0;x<F;x++)t[x]=-t[x];H.set(t,F),w.attributes.tangent.values=H}if(y.bitangent){const t=w.attributes.bitangent.values;z.set(t),z.set(t,F),w.attributes.bitangent.values=z}y.st&&(U=w.attributes.st.values,B.set(U),B.set(U,F/3*2),w.attributes.st.values=B);const Q=w.indices,W=Q.length,J=F/3,j=c.IndexDatatype.createTypedArray(P/3,2*W);for(j.set(Q),x=0;x<W;x+=3)j[x+W]=Q[x+2]+J,j[x+1+W]=Q[x+1]+J,j[x+2+W]=Q[x]+J;w.indices=j;const Z=a.northCap,K=a.southCap;let $=_,tt=2,et=0,nt=4,at=4;Z&&(tt-=1,$-=1,et+=1,nt-=2,at-=1),K&&(tt-=1,$-=1,et+=1,nt-=2,at-=1),et+=tt*A+2*$-nt;const ot=2*(et+at);let rt=new Float64Array(3*ot);const it=i?new Float32Array(3*ot):void 0;let st=X?new Uint8Array(ot):void 0,lt=y.st?new Float32Array(2*ot):void 0;const ut=g===l.GeometryOffsetAttribute.TOP;X&&!ut&&(q=g===l.GeometryOffsetAttribute.ALL?1:0,st=st.fill(q));let ct=0,mt=0,pt=0,gt=0;const dt=A*$;let yt;for(x=0;x<dt;x+=A)yt=3*x,rt=O(rt,ct,yt,G,I),ct+=6,y.st&&(lt=N(lt,mt,2*x,U),mt+=4),i&&(pt+=3,it[pt++]=Y[yt],it[pt++]=Y[yt+1],it[pt++]=Y[yt+2]),ut&&(st[gt++]=1,gt+=1);if(K){const t=Z?dt+1:dt;for(yt=3*t,x=0;x<2;x++)rt=O(rt,ct,yt,G,I),ct+=6,y.st&&(lt=N(lt,mt,2*t,U),mt+=4),i&&(pt+=3,it[pt++]=Y[yt],it[pt++]=Y[yt+1],it[pt++]=Y[yt+2]),ut&&(st[gt++]=1,gt+=1)}else for(x=dt-A;x<dt;x++)yt=3*x,rt=O(rt,ct,yt,G,I),ct+=6,y.st&&(lt=N(lt,mt,2*x,U),mt+=4),i&&(pt+=3,it[pt++]=Y[yt],it[pt++]=Y[yt+1],it[pt++]=Y[yt+2]),ut&&(st[gt++]=1,gt+=1);for(x=dt-1;x>0;x-=A)yt=3*x,rt=O(rt,ct,yt,G,I),ct+=6,y.st&&(lt=N(lt,mt,2*x,U),mt+=4),i&&(pt+=3,it[pt++]=Y[yt],it[pt++]=Y[yt+1],it[pt++]=Y[yt+2]),ut&&(st[gt++]=1,gt+=1);if(Z){const t=dt;for(yt=3*t,x=0;x<2;x++)rt=O(rt,ct,yt,G,I),ct+=6,y.st&&(lt=N(lt,mt,2*t,U),mt+=4),i&&(pt+=3,it[pt++]=Y[yt],it[pt++]=Y[yt+1],it[pt++]=Y[yt+2]),ut&&(st[gt++]=1,gt+=1)}else for(x=A-1;x>=0;x--)yt=3*x,rt=O(rt,ct,yt,G,I),ct+=6,y.st&&(lt=N(lt,mt,2*x,U),mt+=4),i&&(pt+=3,it[pt++]=Y[yt],it[pt++]=Y[yt+1],it[pt++]=Y[yt+2]),ut&&(st[gt++]=1,gt+=1);let ft=function(t,n,a){const o=t.length,r=n.normal?new Float32Array(o):void 0,i=n.tangent?new Float32Array(o):void 0,s=n.bitangent?new Float32Array(o):void 0;let l=0,u=0,c=0,p=!0,g=E,d=R,y=v;if(n.normal||n.tangent||n.bitangent)for(let f=0;f<o;f+=6){const h=e.Cartesian3.fromArray(t,f,C),b=e.Cartesian3.fromArray(t,(f+6)%o,D);if(p){const n=e.Cartesian3.fromArray(t,(f+3)%o,M);e.Cartesian3.subtract(b,h,b),e.Cartesian3.subtract(n,h,n),y=e.Cartesian3.normalize(e.Cartesian3.cross(n,b,y),y),p=!1}e.Cartesian3.equalsEpsilon(b,h,m.CesiumMath.EPSILON10)&&(p=!0),(n.tangent||n.bitangent)&&(g=a.geodeticSurfaceNormal(h,g),n.tangent&&(d=e.Cartesian3.normalize(e.Cartesian3.cross(g,y,d),d))),n.normal&&(r[l++]=y.x,r[l++]=y.y,r[l++]=y.z,r[l++]=y.x,r[l++]=y.y,r[l++]=y.z),n.tangent&&(i[u++]=d.x,i[u++]=d.y,i[u++]=d.z,i[u++]=d.x,i[u++]=d.y,i[u++]=d.z),n.bitangent&&(s[c++]=g.x,s[c++]=g.y,s[c++]=g.z,s[c++]=g.x,s[c++]=g.y,s[c++]=g.z)}return L(n,{positions:t,normals:r,tangents:i,bitangents:s})}(rt,y,b);y.st&&(ft.attributes.st=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:lt})),i&&(ft.attributes.extrudeDirection=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:it})),X&&(ft.attributes.applyOffset=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:st}));const ht=c.IndexDatatype.createTypedArray(ot,6*et);let bt,_t,At,xt;F=rt.length/3;let wt=0;for(x=0;x<F-1;x+=2){bt=x,xt=(bt+2)%F;const t=e.Cartesian3.fromArray(rt,3*bt,D),n=e.Cartesian3.fromArray(rt,3*xt,M);e.Cartesian3.equalsEpsilon(t,n,m.CesiumMath.EPSILON10)||(_t=(bt+1)%F,At=(_t+2)%F,ht[wt++]=bt,ht[wt++]=_t,ht[wt++]=xt,ht[wt++]=xt,ht[wt++]=_t,ht[wt++]=At)}return ft.indices=ht,ft=u.GeometryPipeline.combineInstances([new s.GeometryInstance({geometry:w}),new s.GeometryInstance({geometry:ft})]),ft[0]}const k=[new e.Cartesian3,new e.Cartesian3,new e.Cartesian3,new e.Cartesian3],H=new e.Cartographic,z=new e.Cartographic;function B(t,e,a,o,r){if(0===a)return n.Rectangle.clone(t,r);const i=g.RectangleGeometryLibrary.computeOptions(t,e,a,0,G,H),s=i.height,l=i.width,u=k;return g.RectangleGeometryLibrary.computePosition(i,o,!1,0,0,u[0]),g.RectangleGeometryLibrary.computePosition(i,o,!1,0,l-1,u[1]),g.RectangleGeometryLibrary.computePosition(i,o,!1,s-1,0,u[2]),g.RectangleGeometryLibrary.computePosition(i,o,!1,s-1,l-1,u[3]),n.Rectangle.fromCartesianArray(u,o,r)}function U(a){const o=(a=t.defaultValue(a,t.defaultValue.EMPTY_OBJECT)).rectangle,r=t.defaultValue(a.height,0),i=t.defaultValue(a.extrudedHeight,r);this._rectangle=n.Rectangle.clone(o),this._granularity=t.defaultValue(a.granularity,m.CesiumMath.RADIANS_PER_DEGREE),this._ellipsoid=e.Ellipsoid.clone(t.defaultValue(a.ellipsoid,e.Ellipsoid.WGS84)),this._surfaceHeight=Math.max(r,i),this._rotation=t.defaultValue(a.rotation,0),this._stRotation=t.defaultValue(a.stRotation,0),this._vertexFormat=d.VertexFormat.clone(t.defaultValue(a.vertexFormat,d.VertexFormat.DEFAULT)),this._extrudedHeight=Math.min(r,i),this._shadowVolume=t.defaultValue(a.shadowVolume,!1),this._workerName="createRectangleGeometry",this._offsetAttribute=a.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}U.packedLength=n.Rectangle.packedLength+e.Ellipsoid.packedLength+d.VertexFormat.packedLength+7,U.pack=function(a,o,r){return r=t.defaultValue(r,0),n.Rectangle.pack(a._rectangle,o,r),r+=n.Rectangle.packedLength,e.Ellipsoid.pack(a._ellipsoid,o,r),r+=e.Ellipsoid.packedLength,d.VertexFormat.pack(a._vertexFormat,o,r),r+=d.VertexFormat.packedLength,o[r++]=a._granularity,o[r++]=a._surfaceHeight,o[r++]=a._rotation,o[r++]=a._stRotation,o[r++]=a._extrudedHeight,o[r++]=a._shadowVolume?1:0,o[r]=t.defaultValue(a._offsetAttribute,-1),o};const Y=new n.Rectangle,q=e.Ellipsoid.clone(e.Ellipsoid.UNIT_SPHERE),X={rectangle:Y,ellipsoid:q,vertexFormat:S,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};U.unpack=function(a,o,r){o=t.defaultValue(o,0);const i=n.Rectangle.unpack(a,o,Y);o+=n.Rectangle.packedLength;const s=e.Ellipsoid.unpack(a,o,q);o+=e.Ellipsoid.packedLength;const l=d.VertexFormat.unpack(a,o,S);o+=d.VertexFormat.packedLength;const u=a[o++],c=a[o++],m=a[o++],p=a[o++],g=a[o++],y=1===a[o++],f=a[o];return t.defined(r)?(r._rectangle=n.Rectangle.clone(i,r._rectangle),r._ellipsoid=e.Ellipsoid.clone(s,r._ellipsoid),r._vertexFormat=d.VertexFormat.clone(l,r._vertexFormat),r._granularity=u,r._surfaceHeight=c,r._rotation=m,r._stRotation=p,r._extrudedHeight=g,r._shadowVolume=y,r._offsetAttribute=-1===f?void 0:f,r):(X.granularity=u,X.height=c,X.rotation=m,X.stRotation=p,X.extrudedHeight=g,X.shadowVolume=y,X.offsetAttribute=-1===f?void 0:f,new U(X))},U.computeRectangle=function(n,a){const o=(n=t.defaultValue(n,t.defaultValue.EMPTY_OBJECT)).rectangle,r=t.defaultValue(n.granularity,m.CesiumMath.RADIANS_PER_DEGREE),i=t.defaultValue(n.ellipsoid,e.Ellipsoid.WGS84);return B(o,r,t.defaultValue(n.rotation,0),i,a)};const Q=new e.Matrix3,W=new a.Quaternion,J=new e.Cartographic;U.createGeometry=function(i){if(m.CesiumMath.equalsEpsilon(i._rectangle.north,i._rectangle.south,m.CesiumMath.EPSILON10)||m.CesiumMath.equalsEpsilon(i._rectangle.east,i._rectangle.west,m.CesiumMath.EPSILON10))return;let s=i._rectangle;const u=i._ellipsoid,c=i._rotation,d=i._stRotation,y=i._vertexFormat,f=g.RectangleGeometryLibrary.computeOptions(s,i._granularity,c,d,G,H,z),h=Q;if(0!==d||0!==c){const t=n.Rectangle.center(s,J),o=u.geodeticSurfaceNormalCartographic(t,D);a.Quaternion.fromAxisAngle(o,-d,W),e.Matrix3.fromQuaternion(W,h)}else e.Matrix3.clone(e.Matrix3.IDENTITY,h);const b=i._surfaceHeight,_=i._extrudedHeight,A=!m.CesiumMath.equalsEpsilon(b,_,0,m.CesiumMath.EPSILON2);let x,w;if(f.lonScalar=1/i._rectangle.width,f.latScalar=1/i._rectangle.height,f.tangentRotationMatrix=h,s=i._rectangle,A){x=I(i,f);const t=a.BoundingSphere.fromRectangle3D(s,u,b,V),e=a.BoundingSphere.fromRectangle3D(s,u,_,P);w=a.BoundingSphere.union(t,e)}else{if(x=T(i,f),x.attributes.position.values=p.PolygonPipeline.scaleToGeodeticHeight(x.attributes.position.values,b,u,!1),t.defined(i._offsetAttribute)){const t=x.attributes.position.values.length,e=i._offsetAttribute===l.GeometryOffsetAttribute.NONE?0:1,n=new Uint8Array(t/3).fill(e);x.attributes.applyOffset=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:n})}w=a.BoundingSphere.fromRectangle3D(s,u,b)}return y.position||delete x.attributes.position,new r.Geometry({attributes:x.attributes,indices:x.indices,primitiveType:x.primitiveType,boundingSphere:w,offsetAttribute:i._offsetAttribute})},U.createShadowVolume=function(t,e,n){const a=t._granularity,o=t._ellipsoid,r=e(a,o),i=n(a,o);return new U({rectangle:t._rectangle,rotation:t._rotation,ellipsoid:o,stRotation:t._stRotation,granularity:a,extrudedHeight:i,height:r,vertexFormat:d.VertexFormat.POSITION_ONLY,shadowVolume:!0})};const j=new n.Rectangle,Z=[new n.Cartesian2,new n.Cartesian2,new n.Cartesian2],K=new n.Matrix2,$=new e.Cartographic;return Object.defineProperties(U.prototype,{rectangle:{get:function(){return t.defined(this._rotatedRectangle)||(this._rotatedRectangle=B(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return t.defined(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=function(t){if(0===t._stRotation)return[0,0,0,1,1,0];const e=n.Rectangle.clone(t._rectangle,j),a=t._granularity,o=t._ellipsoid,r=B(e,a,t._rotation-t._stRotation,o,j),i=Z;i[0].x=r.west,i[0].y=r.south,i[1].x=r.west,i[1].y=r.north,i[2].x=r.east,i[2].y=r.south;const s=t.rectangle,l=n.Matrix2.fromRotation(t._stRotation,K),u=n.Rectangle.center(s,$);for(let t=0;t<3;++t){const e=i[t];e.x-=u.longitude,e.y-=u.latitude,n.Matrix2.multiplyByVector(l,e,e),e.x+=u.longitude,e.y+=u.latitude,e.x=(e.x-s.west)/s.width,e.y=(e.y-s.south)/s.height}const c=i[0],m=i[1],p=i[2],g=new Array(6);return n.Cartesian2.pack(c,g),n.Cartesian2.pack(m,g,2),n.Cartesian2.pack(p,g,4),g}(this)),this._textureCoordinateRotationPoints}}}),function(a,o){return t.defined(o)&&(a=U.unpack(a,o)),a._ellipsoid=e.Ellipsoid.clone(a._ellipsoid),a._rectangle=n.Rectangle.clone(a._rectangle),U.createGeometry(a)}})); diff --git a/public/static/Cesium/Workers/createRectangleOutlineGeometry.js b/public/static/Cesium/Workers/createRectangleOutlineGeometry.js new file mode 100644 index 0000000..efbbf98 --- /dev/null +++ b/public/static/Cesium/Workers/createRectangleOutlineGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Matrix3-b2351961","./Matrix2-7a8e9daf","./Transforms-c842a68c","./ComponentDatatype-ab629b88","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18","./Math-355606c6","./PolygonPipeline-eec72ff0","./RectangleGeometryLibrary-40180469","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93","./EllipsoidRhumbLine-1289f7e8"],(function(e,t,i,n,o,r,a,l,s,u,c,p,d,f,g,h){"use strict";const y=new n.BoundingSphere,m=new n.BoundingSphere,b=new t.Cartesian3,_=new i.Rectangle;function A(e,t){const i=e._ellipsoid,n=t.height,l=t.width,u=t.northCap,c=t.southCap;let d=n,f=2,g=0,h=4;u&&(f-=1,d-=1,g+=1,h-=2),c&&(f-=1,d-=1,g+=1,h-=2),g+=f*l+2*d-h;const y=new Float64Array(3*g);let m,_=0,A=0;const E=b;if(u)p.RectangleGeometryLibrary.computePosition(t,i,!1,A,0,E),y[_++]=E.x,y[_++]=E.y,y[_++]=E.z;else for(m=0;m<l;m++)p.RectangleGeometryLibrary.computePosition(t,i,!1,A,m,E),y[_++]=E.x,y[_++]=E.y,y[_++]=E.z;for(m=l-1,A=1;A<n;A++)p.RectangleGeometryLibrary.computePosition(t,i,!1,A,m,E),y[_++]=E.x,y[_++]=E.y,y[_++]=E.z;if(A=n-1,!c)for(m=l-2;m>=0;m--)p.RectangleGeometryLibrary.computePosition(t,i,!1,A,m,E),y[_++]=E.x,y[_++]=E.y,y[_++]=E.z;for(m=0,A=n-2;A>0;A--)p.RectangleGeometryLibrary.computePosition(t,i,!1,A,m,E),y[_++]=E.x,y[_++]=E.y,y[_++]=E.z;const G=y.length/3*2,R=s.IndexDatatype.createTypedArray(y.length/3,G);let P=0;for(let e=0;e<y.length/3-1;e++)R[P++]=e,R[P++]=e+1;R[P++]=y.length/3-1,R[P++]=0;const L=new r.Geometry({attributes:new a.GeometryAttributes,primitiveType:r.PrimitiveType.LINES});return L.attributes.position=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:y}),L.indices=R,L}function E(n){const o=(n=e.defaultValue(n,e.defaultValue.EMPTY_OBJECT)).rectangle,r=e.defaultValue(n.granularity,u.CesiumMath.RADIANS_PER_DEGREE),a=e.defaultValue(n.ellipsoid,t.Ellipsoid.WGS84),l=e.defaultValue(n.rotation,0),s=e.defaultValue(n.height,0),c=e.defaultValue(n.extrudedHeight,s);this._rectangle=i.Rectangle.clone(o),this._granularity=r,this._ellipsoid=a,this._surfaceHeight=Math.max(s,c),this._rotation=l,this._extrudedHeight=Math.min(s,c),this._offsetAttribute=n.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}E.packedLength=i.Rectangle.packedLength+t.Ellipsoid.packedLength+5,E.pack=function(n,o,r){return r=e.defaultValue(r,0),i.Rectangle.pack(n._rectangle,o,r),r+=i.Rectangle.packedLength,t.Ellipsoid.pack(n._ellipsoid,o,r),r+=t.Ellipsoid.packedLength,o[r++]=n._granularity,o[r++]=n._surfaceHeight,o[r++]=n._rotation,o[r++]=n._extrudedHeight,o[r]=e.defaultValue(n._offsetAttribute,-1),o};const G=new i.Rectangle,R=t.Ellipsoid.clone(t.Ellipsoid.UNIT_SPHERE),P={rectangle:G,ellipsoid:R,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};E.unpack=function(n,o,r){o=e.defaultValue(o,0);const a=i.Rectangle.unpack(n,o,G);o+=i.Rectangle.packedLength;const l=t.Ellipsoid.unpack(n,o,R);o+=t.Ellipsoid.packedLength;const s=n[o++],u=n[o++],c=n[o++],p=n[o++],d=n[o];return e.defined(r)?(r._rectangle=i.Rectangle.clone(a,r._rectangle),r._ellipsoid=t.Ellipsoid.clone(l,r._ellipsoid),r._surfaceHeight=u,r._rotation=c,r._extrudedHeight=p,r._offsetAttribute=-1===d?void 0:d,r):(P.granularity=s,P.height=u,P.rotation=c,P.extrudedHeight=p,P.offsetAttribute=-1===d?void 0:d,new E(P))};const L=new t.Cartographic;return E.createGeometry=function(t){const i=t._rectangle,a=t._ellipsoid,d=p.RectangleGeometryLibrary.computeOptions(i,t._granularity,t._rotation,0,_,L);let f,g;if(u.CesiumMath.equalsEpsilon(i.north,i.south,u.CesiumMath.EPSILON10)||u.CesiumMath.equalsEpsilon(i.east,i.west,u.CesiumMath.EPSILON10))return;const h=t._surfaceHeight,b=t._extrudedHeight;let E;if(!u.CesiumMath.equalsEpsilon(h,b,0,u.CesiumMath.EPSILON2)){if(f=function(e,t){const i=e._surfaceHeight,n=e._extrudedHeight,o=e._ellipsoid,r=n,a=i,l=A(e,t),u=t.height,p=t.width,d=c.PolygonPipeline.scaleToGeodeticHeight(l.attributes.position.values,a,o,!1);let f=d.length;const g=new Float64Array(2*f);g.set(d);const h=c.PolygonPipeline.scaleToGeodeticHeight(l.attributes.position.values,r,o);g.set(h,f),l.attributes.position.values=g;const y=t.northCap,m=t.southCap;let b=4;y&&(b-=1),m&&(b-=1);const _=2*(g.length/3+b),E=s.IndexDatatype.createTypedArray(g.length/3,_);f=g.length/6;let G,R=0;for(let e=0;e<f-1;e++)E[R++]=e,E[R++]=e+1,E[R++]=e+f,E[R++]=e+f+1;if(E[R++]=f-1,E[R++]=0,E[R++]=f+f-1,E[R++]=f,E[R++]=0,E[R++]=f,y)G=u-1;else{const e=p-1;E[R++]=e,E[R++]=e+f,G=p+u-2}if(E[R++]=G,E[R++]=G+f,!m){const e=p+G-1;E[R++]=e,E[R]=e+f}return l.indices=E,l}(t,d),e.defined(t._offsetAttribute)){const e=f.attributes.position.values.length/3;let i=new Uint8Array(e);t._offsetAttribute===l.GeometryOffsetAttribute.TOP?i=i.fill(1,0,e/2):(E=t._offsetAttribute===l.GeometryOffsetAttribute.NONE?0:1,i=i.fill(E)),f.attributes.applyOffset=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:i})}const u=n.BoundingSphere.fromRectangle3D(i,a,h,m),p=n.BoundingSphere.fromRectangle3D(i,a,b,y);g=n.BoundingSphere.union(u,p)}else{if(f=A(t,d),f.attributes.position.values=c.PolygonPipeline.scaleToGeodeticHeight(f.attributes.position.values,h,a,!1),e.defined(t._offsetAttribute)){const e=f.attributes.position.values.length;E=t._offsetAttribute===l.GeometryOffsetAttribute.NONE?0:1;const i=new Uint8Array(e/3).fill(E);f.attributes.applyOffset=new r.GeometryAttribute({componentDatatype:o.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:i})}g=n.BoundingSphere.fromRectangle3D(i,a,h)}return new r.Geometry({attributes:f.attributes,indices:f.indices,primitiveType:r.PrimitiveType.LINES,boundingSphere:g,offsetAttribute:t._offsetAttribute})},function(n,o){return e.defined(o)&&(n=E.unpack(n,o)),n._ellipsoid=t.Ellipsoid.clone(n._ellipsoid),n._rectangle=i.Rectangle.clone(n._rectangle),E.createGeometry(n)}})); diff --git a/public/static/Cesium/Workers/createSimplePolylineGeometry.js b/public/static/Cesium/Workers/createSimplePolylineGeometry.js new file mode 100644 index 0000000..9407aa1 --- /dev/null +++ b/public/static/Cesium/Workers/createSimplePolylineGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Matrix3-b2351961","./ArcType-26a3f38d","./Transforms-c842a68c","./Color-4333bfe0","./ComponentDatatype-ab629b88","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./IndexDatatype-a9b1bc18","./Math-355606c6","./PolylinePipeline-dfaa9e90","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93","./EllipsoidGeodesic-20aaff03","./EllipsoidRhumbLine-1289f7e8","./IntersectionTests-863687a2","./Plane-5931b53e"],(function(e,o,t,l,r,n,i,a,s,p,c,y,d,u,f,h,C,g,T){"use strict";function m(e,o,t,l,n,i,a){const s=c.PolylinePipeline.numberOfPoints(e,o,n);let p;const y=t.red,d=t.green,u=t.blue,f=t.alpha,h=l.red,C=l.green,g=l.blue,T=l.alpha;if(r.Color.equals(t,l)){for(p=0;p<s;p++)i[a++]=r.Color.floatToByte(y),i[a++]=r.Color.floatToByte(d),i[a++]=r.Color.floatToByte(u),i[a++]=r.Color.floatToByte(f);return a}const m=(h-y)/s,P=(C-d)/s,_=(g-u)/s,A=(T-f)/s;let B=a;for(p=0;p<s;p++)i[B++]=r.Color.floatToByte(y+p*m),i[B++]=r.Color.floatToByte(d+p*P),i[B++]=r.Color.floatToByte(u+p*_),i[B++]=r.Color.floatToByte(f+p*A);return B}function P(l){const n=(l=e.defaultValue(l,e.defaultValue.EMPTY_OBJECT)).positions,i=l.colors,a=e.defaultValue(l.colorsPerVertex,!1);this._positions=n,this._colors=i,this._colorsPerVertex=a,this._arcType=e.defaultValue(l.arcType,t.ArcType.GEODESIC),this._granularity=e.defaultValue(l.granularity,p.CesiumMath.RADIANS_PER_DEGREE),this._ellipsoid=e.defaultValue(l.ellipsoid,o.Ellipsoid.WGS84),this._workerName="createSimplePolylineGeometry";let s=1+n.length*o.Cartesian3.packedLength;s+=e.defined(i)?1+i.length*r.Color.packedLength:1,this.packedLength=s+o.Ellipsoid.packedLength+3}P.pack=function(t,l,n){let i;n=e.defaultValue(n,0);const a=t._positions;let s=a.length;for(l[n++]=s,i=0;i<s;++i,n+=o.Cartesian3.packedLength)o.Cartesian3.pack(a[i],l,n);const p=t._colors;for(s=e.defined(p)?p.length:0,l[n++]=s,i=0;i<s;++i,n+=r.Color.packedLength)r.Color.pack(p[i],l,n);return o.Ellipsoid.pack(t._ellipsoid,l,n),n+=o.Ellipsoid.packedLength,l[n++]=t._colorsPerVertex?1:0,l[n++]=t._arcType,l[n]=t._granularity,l},P.unpack=function(t,l,n){let i;l=e.defaultValue(l,0);let a=t[l++];const s=new Array(a);for(i=0;i<a;++i,l+=o.Cartesian3.packedLength)s[i]=o.Cartesian3.unpack(t,l);a=t[l++];const p=a>0?new Array(a):void 0;for(i=0;i<a;++i,l+=r.Color.packedLength)p[i]=r.Color.unpack(t,l);const c=o.Ellipsoid.unpack(t,l);l+=o.Ellipsoid.packedLength;const y=1===t[l++],d=t[l++],u=t[l];return e.defined(n)?(n._positions=s,n._colors=p,n._ellipsoid=c,n._colorsPerVertex=y,n._arcType=d,n._granularity=u,n):new P({positions:s,colors:p,ellipsoid:c,colorsPerVertex:y,arcType:d,granularity:u})};const _=new Array(2),A=new Array(2),B={positions:_,height:A,ellipsoid:void 0,minDistance:void 0,granularity:void 0};return P.createGeometry=function(y){const d=y._positions,u=y._colors,f=y._colorsPerVertex,h=y._arcType,C=y._granularity,g=y._ellipsoid,T=p.CesiumMath.chordLength(C,g.maximumRadius),P=e.defined(u)&&!f;let E;const b=d.length;let k,D,G,L,w=0;if(h===t.ArcType.GEODESIC||h===t.ArcType.RHUMB){let o,l,n;h===t.ArcType.GEODESIC?(o=p.CesiumMath.chordLength(C,g.maximumRadius),l=c.PolylinePipeline.numberOfPoints,n=c.PolylinePipeline.generateArc):(o=C,l=c.PolylinePipeline.numberOfPointsRhumbLine,n=c.PolylinePipeline.generateRhumbArc);const i=c.PolylinePipeline.extractHeights(d,g),a=B;if(h===t.ArcType.GEODESIC?a.minDistance=T:a.granularity=C,a.ellipsoid=g,P){let t=0;for(E=0;E<b-1;E++)t+=l(d[E],d[E+1],o)+1;k=new Float64Array(3*t),G=new Uint8Array(4*t),a.positions=_,a.height=A;let s=0;for(E=0;E<b-1;++E){_[0]=d[E],_[1]=d[E+1],A[0]=i[E],A[1]=i[E+1];const o=n(a);if(e.defined(u)){const e=o.length/3;L=u[E];for(let o=0;o<e;++o)G[s++]=r.Color.floatToByte(L.red),G[s++]=r.Color.floatToByte(L.green),G[s++]=r.Color.floatToByte(L.blue),G[s++]=r.Color.floatToByte(L.alpha)}k.set(o,w),w+=o.length}}else if(a.positions=d,a.height=i,k=new Float64Array(n(a)),e.defined(u)){for(G=new Uint8Array(k.length/3*4),E=0;E<b-1;++E){w=m(d[E],d[E+1],u[E],u[E+1],T,G,w)}const e=u[b-1];G[w++]=r.Color.floatToByte(e.red),G[w++]=r.Color.floatToByte(e.green),G[w++]=r.Color.floatToByte(e.blue),G[w++]=r.Color.floatToByte(e.alpha)}}else{D=P?2*b-2:b,k=new Float64Array(3*D),G=e.defined(u)?new Uint8Array(4*D):void 0;let t=0,l=0;for(E=0;E<b;++E){const n=d[E];if(P&&E>0&&(o.Cartesian3.pack(n,k,t),t+=3,L=u[E-1],G[l++]=r.Color.floatToByte(L.red),G[l++]=r.Color.floatToByte(L.green),G[l++]=r.Color.floatToByte(L.blue),G[l++]=r.Color.floatToByte(L.alpha)),P&&E===b-1)break;o.Cartesian3.pack(n,k,t),t+=3,e.defined(u)&&(L=u[E],G[l++]=r.Color.floatToByte(L.red),G[l++]=r.Color.floatToByte(L.green),G[l++]=r.Color.floatToByte(L.blue),G[l++]=r.Color.floatToByte(L.alpha))}}const V=new a.GeometryAttributes;V.position=new i.GeometryAttribute({componentDatatype:n.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:k}),e.defined(u)&&(V.color=new i.GeometryAttribute({componentDatatype:n.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:4,values:G,normalize:!0})),D=k.length/3;const x=2*(D-1),S=s.IndexDatatype.createTypedArray(D,x);let I=0;for(E=0;E<D-1;++E)S[I++]=E,S[I++]=E+1;return new i.Geometry({attributes:V,indices:S,primitiveType:i.PrimitiveType.LINES,boundingSphere:l.BoundingSphere.fromPoints(d)})},function(t,l){return e.defined(l)&&(t=P.unpack(t,l)),t._ellipsoid=o.Ellipsoid.clone(t._ellipsoid),P.createGeometry(t)}})); diff --git a/public/static/Cesium/Workers/createSphereGeometry.js b/public/static/Cesium/Workers/createSphereGeometry.js new file mode 100644 index 0000000..c36f81f --- /dev/null +++ b/public/static/Cesium/Workers/createSphereGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Matrix3-b2351961","./EllipsoidGeometry-52c7b814","./VertexFormat-fbdec922","./Math-355606c6","./Transforms-c842a68c","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18"],(function(e,t,i,r,o,a,n,s,l,c,m,d,u,p,y){"use strict";function G(r){const o=e.defaultValue(r.radius,1),a={radii:new t.Cartesian3(o,o,o),stackPartitions:r.stackPartitions,slicePartitions:r.slicePartitions,vertexFormat:r.vertexFormat};this._ellipsoidGeometry=new i.EllipsoidGeometry(a),this._workerName="createSphereGeometry"}G.packedLength=i.EllipsoidGeometry.packedLength,G.pack=function(e,t,r){return i.EllipsoidGeometry.pack(e._ellipsoidGeometry,t,r)};const f=new i.EllipsoidGeometry,k={radius:void 0,radii:new t.Cartesian3,vertexFormat:new r.VertexFormat,stackPartitions:void 0,slicePartitions:void 0};return G.unpack=function(o,a,n){const s=i.EllipsoidGeometry.unpack(o,a,f);return k.vertexFormat=r.VertexFormat.clone(s._vertexFormat,k.vertexFormat),k.stackPartitions=s._stackPartitions,k.slicePartitions=s._slicePartitions,e.defined(n)?(t.Cartesian3.clone(s._radii,k.radii),n._ellipsoidGeometry=new i.EllipsoidGeometry(k),n):(k.radius=s._radii.x,new G(k))},G.createGeometry=function(e){return i.EllipsoidGeometry.createGeometry(e._ellipsoidGeometry)},function(t,i){return e.defined(i)&&(t=G.unpack(t,i)),G.createGeometry(t)}})); diff --git a/public/static/Cesium/Workers/createSphereOutlineGeometry.js b/public/static/Cesium/Workers/createSphereOutlineGeometry.js new file mode 100644 index 0000000..19d8722 --- /dev/null +++ b/public/static/Cesium/Workers/createSphereOutlineGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Matrix3-b2351961","./EllipsoidOutlineGeometry-0505e9e1","./Math-355606c6","./Transforms-c842a68c","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./IndexDatatype-a9b1bc18"],(function(i,e,t,n,r,o,s,a,l,u,d,c,m,p){"use strict";function y(n){const r=i.defaultValue(n.radius,1),o={radii:new e.Cartesian3(r,r,r),stackPartitions:n.stackPartitions,slicePartitions:n.slicePartitions,subdivisions:n.subdivisions};this._ellipsoidGeometry=new t.EllipsoidOutlineGeometry(o),this._workerName="createSphereOutlineGeometry"}y.packedLength=t.EllipsoidOutlineGeometry.packedLength,y.pack=function(i,e,n){return t.EllipsoidOutlineGeometry.pack(i._ellipsoidGeometry,e,n)};const G=new t.EllipsoidOutlineGeometry,f={radius:void 0,radii:new e.Cartesian3,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};return y.unpack=function(n,r,o){const s=t.EllipsoidOutlineGeometry.unpack(n,r,G);return f.stackPartitions=s._stackPartitions,f.slicePartitions=s._slicePartitions,f.subdivisions=s._subdivisions,i.defined(o)?(e.Cartesian3.clone(s._radii,f.radii),o._ellipsoidGeometry=new t.EllipsoidOutlineGeometry(f),o):(f.radius=s._radii.x,new y(f))},y.createGeometry=function(i){return t.EllipsoidOutlineGeometry.createGeometry(i._ellipsoidGeometry)},function(e,t){return i.defined(t)&&(e=y.unpack(e,t)),y.createGeometry(e)}})); diff --git a/public/static/Cesium/Workers/createTaskProcessorWorker.js b/public/static/Cesium/Workers/createTaskProcessorWorker.js new file mode 100644 index 0000000..7f56f52 --- /dev/null +++ b/public/static/Cesium/Workers/createTaskProcessorWorker.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da"],(function(e){"use strict";return function(r){let t;return function(n){const s=n.data,a=[],i={id:s.id,result:void 0,error:void 0};return Promise.resolve(function(e,r,t){let n;try{return n=e(r,t),n}catch(e){return Promise.reject(e)}}(r,s.parameters,a)).then((function(e){i.result=e})).catch((function(e){e instanceof Error?i.error={name:e.name,message:e.message,stack:e.stack}:i.error=e})).finally((function(){e.defined(t)||(t=e.defaultValue(self.webkitPostMessage,self.postMessage)),s.canTransferArrayBuffer||(a.length=0);try{t(i,a)}catch(r){i.result=void 0,i.error=`postMessage failed with error: ${function(r){let t;const n=r.name,s=r.message;t=e.defined(n)&&e.defined(s)?`${n}: ${s}`:r.toString();const a=r.stack;return e.defined(a)&&(t+=`\n${a}`),t}(r)}\n with responseMessage: ${JSON.stringify(i)}`,t(i)}}))}}})); diff --git a/public/static/Cesium/Workers/createVectorTileClampedPolylines.js b/public/static/Cesium/Workers/createVectorTileClampedPolylines.js new file mode 100644 index 0000000..4140dfb --- /dev/null +++ b/public/static/Cesium/Workers/createVectorTileClampedPolylines.js @@ -0,0 +1 @@ +define(["./AttributeCompression-0b8f7b7d","./Matrix3-b2351961","./combine-0c102d93","./IndexDatatype-a9b1bc18","./Math-355606c6","./Matrix2-7a8e9daf","./createTaskProcessorWorker","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./WebGLConstants-7f557f93","./RuntimeError-9b4ce3fb"],(function(t,e,a,s,n,r,i,o,l,c,d){"use strict";const f=32767,u=Math.cos(n.CesiumMath.toRadians(150)),h=new e.Cartographic,C=new e.Cartesian3;const p=new e.Cartographic,m=new e.Cartographic;function A(t){const e=8*t,a=3*e,n=4*e;this.startEllipsoidNormals=new Float32Array(a),this.endEllipsoidNormals=new Float32Array(a),this.startPositionAndHeights=new Float32Array(n),this.startFaceNormalAndVertexCornerIds=new Float32Array(n),this.endPositionAndHeights=new Float32Array(n),this.endFaceNormalAndHalfWidths=new Float32Array(n),this.vertexBatchIds=new Uint16Array(e),this.indices=s.IndexDatatype.createTypedArray(e,36*t),this.vec3Offset=0,this.vec4Offset=0,this.batchIdOffset=0,this.indexOffset=0,this.volumeStartIndex=0}const b=new e.Cartesian3,w=new e.Cartesian3;function g(t,a,s,n,r){const i=e.Cartesian3.subtract(s,a,w);let o=e.Cartesian3.subtract(a,t,b);return e.Cartesian3.normalize(i,i),e.Cartesian3.normalize(o,o),e.Cartesian3.dot(i,o)<u&&(o=e.Cartesian3.multiplyByScalar(o,-1,b)),e.Cartesian3.add(i,o,r),e.Cartesian3.equals(r,e.Cartesian3.ZERO)&&(r=e.Cartesian3.subtract(t,a)),e.Cartesian3.cross(r,n,r),e.Cartesian3.cross(n,r,r),e.Cartesian3.normalize(r,r),r}const y=[0,2,6,0,6,4,0,1,3,0,3,2,0,4,5,0,5,1,5,3,1,5,7,3,7,5,4,7,4,6,7,6,2,7,2,3],N=y.length,k=new e.Cartesian3,x=new e.Cartesian3,I=new e.Cartesian3,E=new e.Cartesian3,F=new e.Cartesian3;A.prototype.addVolume=function(t,a,s,n,r,i,o,l,c,d){let f=e.Cartesian3.add(a,c,k);const u=d.geodeticSurfaceNormal(f,x);f=e.Cartesian3.add(s,c,k);const h=d.geodeticSurfaceNormal(f,E),C=g(t,a,s,u,I),p=g(n,s,a,h,F),m=this.startEllipsoidNormals,A=this.endEllipsoidNormals,b=this.startPositionAndHeights,w=this.startFaceNormalAndVertexCornerIds,H=this.endPositionAndHeights,O=this.endFaceNormalAndHalfWidths,P=this.vertexBatchIds;let v,D=this.batchIdOffset,M=this.vec3Offset,S=this.vec4Offset;for(v=0;v<8;v++)e.Cartesian3.pack(u,m,M),e.Cartesian3.pack(h,A,M),e.Cartesian3.pack(a,b,S),b[S+3]=r,e.Cartesian3.pack(s,H,S),H[S+3]=i,e.Cartesian3.pack(C,w,S),w[S+3]=v,e.Cartesian3.pack(p,O,S),O[S+3]=o,P[D++]=l,M+=3,S+=4;this.batchIdOffset=D,this.vec3Offset=M,this.vec4Offset=S;const R=this.indices,U=this.volumeStartIndex,B=this.indexOffset;for(v=0;v<N;v++)R[B+v]=y[v]+U;this.volumeStartIndex+=8,this.indexOffset+=N};const H=new r.Rectangle,O=new e.Ellipsoid,P=new e.Cartesian3,v=new e.Cartesian3,D=new e.Cartesian3,M=new e.Cartesian3,S=new e.Cartesian3;return i((function(i,o){const l=new Uint16Array(i.positions),c=new Uint16Array(i.widths),d=new Uint32Array(i.counts),u=new Uint16Array(i.batchIds),b=H,w=O,g=P,y=new Float64Array(i.packedBuffer);let N=0;const k=y[N++],x=y[N++];let I;r.Rectangle.unpack(y,N,b),N+=r.Rectangle.packedLength,e.Ellipsoid.unpack(y,N,w),N+=e.Ellipsoid.packedLength,e.Cartesian3.unpack(y,N,g);let E=l.length/3;const F=l.subarray(0,E),R=l.subarray(E,2*E),U=l.subarray(2*E,3*E);t.AttributeCompression.zigZagDeltaDecode(F,R,U),function(t,a,s,n){const r=n.length,i=t.length,o=new Uint8Array(i),l=p,c=m;let d=0;for(let s=0;s<r;s++){const r=n[s];let i=r;for(let s=1;s<r;s++){const n=d+s,r=n-1;c.longitude=t[n],c.latitude=a[n],l.longitude=t[r],l.latitude=a[r],e.Cartographic.equals(c,l)&&(i--,o[r]=1)}n[s]=i,d+=r}let f=0;for(let e=0;e<i;e++)1!==o[e]&&(t[f]=t[e],a[f]=a[e],s[f]=s[e],f++)}(F,R,U,d);const B=d.length;let V=0;for(I=0;I<B;I++){V+=d[I]-1}const T=new A(V),W=function(t,a,s,r,i,o,l){const c=t.length,d=new Float64Array(3*c);for(let u=0;u<c;++u){const c=t[u],p=a[u],m=s[u],A=n.CesiumMath.lerp(r.west,r.east,c/f),b=n.CesiumMath.lerp(r.south,r.north,p/f),w=n.CesiumMath.lerp(i,o,m/f),g=e.Cartographic.fromRadians(A,b,w,h),y=l.cartographicToCartesian(g,C);e.Cartesian3.pack(y,d,3*u)}return d}(F,R,U,b,k,x,w);E=F.length;const z=new Float32Array(3*E);for(I=0;I<E;++I)z[3*I]=W[3*I]-g.x,z[3*I+1]=W[3*I+1]-g.y,z[3*I+2]=W[3*I+2]-g.z;let q=0,L=0;for(I=0;I<B;I++){const t=d[I]-1,a=.5*c[I],s=u[I],r=q;for(let i=0;i<t;i++){const o=e.Cartesian3.unpack(z,q,D),l=e.Cartesian3.unpack(z,q+3,M);let c=U[L],d=U[L+1];c=n.CesiumMath.lerp(k,x,c/f),d=n.CesiumMath.lerp(k,x,d/f),L++;let u=v,h=S;if(0===i){const a=r+3*t,s=e.Cartesian3.unpack(z,a,v);if(e.Cartesian3.equals(s,o))e.Cartesian3.unpack(z,a-3,u);else{const t=e.Cartesian3.subtract(o,l,v);u=e.Cartesian3.add(t,o,v)}}else e.Cartesian3.unpack(z,q-3,u);if(i===t-1){const t=e.Cartesian3.unpack(z,r,S);if(e.Cartesian3.equals(t,l))e.Cartesian3.unpack(z,r+3,h);else{const t=e.Cartesian3.subtract(l,o,S);h=e.Cartesian3.add(t,l,S)}}else e.Cartesian3.unpack(z,q+6,h);T.addVolume(u,o,l,h,c,d,a,s,g,w),q+=3}q+=3,L++}const _=T.indices;o.push(T.startEllipsoidNormals.buffer),o.push(T.endEllipsoidNormals.buffer),o.push(T.startPositionAndHeights.buffer),o.push(T.startFaceNormalAndVertexCornerIds.buffer),o.push(T.endPositionAndHeights.buffer),o.push(T.endFaceNormalAndHalfWidths.buffer),o.push(T.vertexBatchIds.buffer),o.push(_.buffer);let G={indexDatatype:2===_.BYTES_PER_ELEMENT?s.IndexDatatype.UNSIGNED_SHORT:s.IndexDatatype.UNSIGNED_INT,startEllipsoidNormals:T.startEllipsoidNormals.buffer,endEllipsoidNormals:T.endEllipsoidNormals.buffer,startPositionAndHeights:T.startPositionAndHeights.buffer,startFaceNormalAndVertexCornerIds:T.startFaceNormalAndVertexCornerIds.buffer,endPositionAndHeights:T.endPositionAndHeights.buffer,endFaceNormalAndHalfWidths:T.endFaceNormalAndHalfWidths.buffer,vertexBatchIds:T.vertexBatchIds.buffer,indices:_.buffer};if(i.keepDecodedPositions){const t=function(t){const e=t.length,a=new Uint32Array(e+1);let s=0;for(let n=0;n<e;++n)a[n]=s,s+=t[n];return a[e]=s,a}(d);o.push(W.buffer,t.buffer),G=a.combine(G,{decodedPositions:W.buffer,decodedPositionOffsets:t.buffer})}return G}))})); diff --git a/public/static/Cesium/Workers/createVectorTileGeometries.js b/public/static/Cesium/Workers/createVectorTileGeometries.js new file mode 100644 index 0000000..6795e8a --- /dev/null +++ b/public/static/Cesium/Workers/createVectorTileGeometries.js @@ -0,0 +1 @@ +define(["./Transforms-c842a68c","./BoxGeometry-7ed03b36","./Matrix3-b2351961","./Color-4333bfe0","./CylinderGeometry-c437b77a","./defaultValue-f6d5e6da","./EllipsoidGeometry-52c7b814","./IndexDatatype-a9b1bc18","./Matrix2-7a8e9daf","./createTaskProcessorWorker","./Math-355606c6","./combine-0c102d93","./RuntimeError-9b4ce3fb","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./GeometryOffsetAttribute-2579b8d2","./VertexFormat-fbdec922","./CylinderGeometryLibrary-4d7f606d"],(function(e,t,n,r,i,a,o,s,d,c,l,f,u,h,p,b,y,x,g,m){"use strict";function C(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}const I=new n.Cartesian3,k=d.Matrix4.packedLength+n.Cartesian3.packedLength,M=d.Matrix4.packedLength+2,B=d.Matrix4.packedLength+n.Cartesian3.packedLength,w=n.Cartesian3.packedLength+1,A={modelMatrix:new d.Matrix4,boundingVolume:new e.BoundingSphere};function O(e,t){let r=t*k;const i=n.Cartesian3.unpack(e,r,I);r+=n.Cartesian3.packedLength;const a=d.Matrix4.unpack(e,r,A.modelMatrix);d.Matrix4.multiplyByScale(a,i,a);const o=A.boundingVolume;return n.Cartesian3.clone(n.Cartesian3.ZERO,o.center),o.radius=Math.sqrt(3),A}function L(e,t){let r=t*M;const i=e[r++],a=e[r++],o=n.Cartesian3.fromElements(i,i,a,I),s=d.Matrix4.unpack(e,r,A.modelMatrix);d.Matrix4.multiplyByScale(s,o,s);const c=A.boundingVolume;return n.Cartesian3.clone(n.Cartesian3.ZERO,c.center),c.radius=Math.sqrt(2),A}function v(e,t){let r=t*B;const i=n.Cartesian3.unpack(e,r,I);r+=n.Cartesian3.packedLength;const a=d.Matrix4.unpack(e,r,A.modelMatrix);d.Matrix4.multiplyByScale(a,i,a);const o=A.boundingVolume;return n.Cartesian3.clone(n.Cartesian3.ZERO,o.center),o.radius=1,A}function E(e,t){let r=t*w;const i=e[r++],a=n.Cartesian3.unpack(e,r,I),o=d.Matrix4.fromTranslation(a,A.modelMatrix);d.Matrix4.multiplyByUniformScale(o,i,o);const s=A.boundingVolume;return n.Cartesian3.clone(n.Cartesian3.ZERO,s.center),s.radius=1,A}const U=new n.Cartesian3;function G(t,i,o,s,c){if(!a.defined(i))return;const l=o.length,f=s.attributes.position.values,u=s.indices,h=t.positions,p=t.vertexBatchIds,b=t.indices,y=t.batchIds,x=t.batchTableColors,g=t.batchedIndices,m=t.indexOffsets,I=t.indexCounts,k=t.boundingVolumes,M=t.modelMatrix,B=t.center;let w=t.positionOffset,A=t.batchIdIndex,O=t.indexOffset;const L=t.batchedIndicesOffset;for(let t=0;t<l;++t){const a=c(i,t),s=a.modelMatrix;d.Matrix4.multiply(M,s,s);const l=o[t],v=f.length;for(let e=0;e<v;e+=3){const t=n.Cartesian3.unpack(f,e,U);d.Matrix4.multiplyByPoint(s,t,t),n.Cartesian3.subtract(t,B,t),n.Cartesian3.pack(t,h,3*w+e),p[A++]=l}const E=u.length;for(let e=0;e<E;++e)b[O+e]=u[e]+w;const G=t+L;g[G]=new C({offset:O,count:E,color:r.Color.fromRgba(x[l]),batchIds:[l]}),y[G]=l,m[G]=O,I[G]=E,k[G]=e.BoundingSphere.transform(a.boundingVolume,s),w+=v/3,O+=E}t.positionOffset=w,t.batchIdIndex=A,t.indexOffset=O,t.batchedIndicesOffset+=l}const S=new n.Cartesian3,V=new d.Matrix4;function F(t,n,i){const a=i.length,o=2+a*e.BoundingSphere.packedLength+1+function(e){const t=e.length;let n=0;for(let i=0;i<t;++i)n+=r.Color.packedLength+3+e[i].batchIds.length;return n}(n),s=new Float64Array(o);let d=0;s[d++]=t,s[d++]=a;for(let t=0;t<a;++t)e.BoundingSphere.pack(i[t],s,d),d+=e.BoundingSphere.packedLength;const c=n.length;s[d++]=c;for(let e=0;e<c;++e){const t=n[e];r.Color.pack(t.color,s,d),d+=r.Color.packedLength,s[d++]=t.offset,s[d++]=t.count;const i=t.batchIds,a=i.length;s[d++]=a;for(let e=0;e<a;++e)s[d++]=i[e]}return s}return c((function(e,r){const c=a.defined(e.boxes)?new Float32Array(e.boxes):void 0,l=a.defined(e.boxBatchIds)?new Uint16Array(e.boxBatchIds):void 0,f=a.defined(e.cylinders)?new Float32Array(e.cylinders):void 0,u=a.defined(e.cylinderBatchIds)?new Uint16Array(e.cylinderBatchIds):void 0,h=a.defined(e.ellipsoids)?new Float32Array(e.ellipsoids):void 0,p=a.defined(e.ellipsoidBatchIds)?new Uint16Array(e.ellipsoidBatchIds):void 0,b=a.defined(e.spheres)?new Float32Array(e.spheres):void 0,y=a.defined(e.sphereBatchIds)?new Uint16Array(e.sphereBatchIds):void 0,x=a.defined(c)?l.length:0,g=a.defined(f)?u.length:0,m=a.defined(h)?p.length:0,C=a.defined(b)?y.length:0,I=t.BoxGeometry.getUnitBox(),k=i.CylinderGeometry.getUnitCylinder(),M=o.EllipsoidGeometry.getUnitEllipsoid(),B=I.attributes.position.values,w=k.attributes.position.values,A=M.attributes.position.values;let U=B.length*x;U+=w.length*g,U+=A.length*(m+C);const T=I.indices,R=k.indices,Z=M.indices;let D=T.length*x;D+=R.length*g,D+=Z.length*(m+C);const P=new Float32Array(U),q=new Uint16Array(U/3),W=s.IndexDatatype.createTypedArray(U/3,D),_=x+g+m+C,H=new Uint16Array(_),K=new Array(_),N=new Uint32Array(_),Y=new Uint32Array(_),j=new Array(_);!function(e){const t=new Float64Array(e);let r=0;n.Cartesian3.unpack(t,r,S),r+=n.Cartesian3.packedLength,d.Matrix4.unpack(t,r,V)}(e.packedBuffer);const z={batchTableColors:new Uint32Array(e.batchTableColors),positions:P,vertexBatchIds:q,indices:W,batchIds:H,batchedIndices:K,indexOffsets:N,indexCounts:Y,boundingVolumes:j,positionOffset:0,batchIdIndex:0,indexOffset:0,batchedIndicesOffset:0,modelMatrix:V,center:S};G(z,c,l,I,O),G(z,f,u,k,L),G(z,h,p,M,v),G(z,b,y,M,E);const J=F(W.BYTES_PER_ELEMENT,K,j);return r.push(P.buffer,q.buffer,W.buffer),r.push(H.buffer,N.buffer,Y.buffer),r.push(J.buffer),{positions:P.buffer,vertexBatchIds:q.buffer,indices:W.buffer,indexOffsets:N.buffer,indexCounts:Y.buffer,batchIds:H.buffer,packedBuffer:J.buffer}}))})); diff --git a/public/static/Cesium/Workers/createVectorTilePoints.js b/public/static/Cesium/Workers/createVectorTilePoints.js new file mode 100644 index 0000000..87d0b1d --- /dev/null +++ b/public/static/Cesium/Workers/createVectorTilePoints.js @@ -0,0 +1 @@ +define(["./AttributeCompression-0b8f7b7d","./Matrix3-b2351961","./Math-355606c6","./Matrix2-7a8e9daf","./createTaskProcessorWorker","./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./WebGLConstants-7f557f93","./RuntimeError-9b4ce3fb"],(function(e,t,a,r,n,o,i,s,c){"use strict";const u=32767,p=new t.Cartographic,l=new t.Cartesian3,m=new r.Rectangle,f=new t.Ellipsoid,h={min:void 0,max:void 0};return n((function(n,o){const i=new Uint16Array(n.positions);!function(e){e=new Float64Array(e);let a=0;h.min=e[a++],h.max=e[a++],r.Rectangle.unpack(e,a,m),a+=r.Rectangle.packedLength,t.Ellipsoid.unpack(e,a,f)}(n.packedBuffer);const s=m,c=f,C=h.min,g=h.max,d=i.length/3,b=i.subarray(0,d),w=i.subarray(d,2*d),k=i.subarray(2*d,3*d);e.AttributeCompression.zigZagDeltaDecode(b,w,k);const y=new Float64Array(i.length);for(let e=0;e<d;++e){const r=b[e],n=w[e],o=k[e],i=a.CesiumMath.lerp(s.west,s.east,r/u),m=a.CesiumMath.lerp(s.south,s.north,n/u),f=a.CesiumMath.lerp(C,g,o/u),h=t.Cartographic.fromRadians(i,m,f,p),d=c.cartographicToCartesian(h,l);t.Cartesian3.pack(d,y,3*e)}return o.push(y.buffer),{positions:y.buffer}}))})); diff --git a/public/static/Cesium/Workers/createVectorTilePolygons.js b/public/static/Cesium/Workers/createVectorTilePolygons.js new file mode 100644 index 0000000..f3b85c2 --- /dev/null +++ b/public/static/Cesium/Workers/createVectorTilePolygons.js @@ -0,0 +1 @@ +define(["./AttributeCompression-0b8f7b7d","./Matrix3-b2351961","./Color-4333bfe0","./defaultValue-f6d5e6da","./IndexDatatype-a9b1bc18","./Math-355606c6","./OrientedBoundingBox-04b751ee","./Matrix2-7a8e9daf","./createTaskProcessorWorker","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./Transforms-c842a68c","./combine-0c102d93","./RuntimeError-9b4ce3fb","./EllipsoidTangentPlane-05ee7166","./AxisAlignedBoundingBox-93c1311e","./IntersectionTests-863687a2","./Plane-5931b53e"],(function(e,t,n,a,r,o,i,s,c,f,d,l,u,h,g,p,y,m){"use strict";const b=new t.Cartesian3,x=new t.Ellipsoid,C=new s.Rectangle,I={min:void 0,max:void 0,indexBytesPerElement:void 0};function w(e,t,a){const r=t.length,o=2+r*i.OrientedBoundingBox.packedLength+1+function(e){const t=e.length;let a=0;for(let r=0;r<t;++r)a+=n.Color.packedLength+3+e[r].batchIds.length;return a}(a),s=new Float64Array(o);let c=0;s[c++]=e,s[c++]=r;for(let e=0;e<r;++e)i.OrientedBoundingBox.pack(t[e],s,c),c+=i.OrientedBoundingBox.packedLength;const f=a.length;s[c++]=f;for(let e=0;e<f;++e){const t=a[e];n.Color.pack(t.color,s,c),c+=n.Color.packedLength,s[c++]=t.offset,s[c++]=t.count;const r=t.batchIds,o=r.length;s[c++]=o;for(let e=0;e<o;++e)s[c++]=r[e]}return s}const A=new t.Cartesian3,E=new t.Cartesian3,N=new t.Cartesian3,T=new t.Cartesian3,B=new t.Cartesian3,k=new t.Cartographic,L=new s.Rectangle;return c((function(c,f){let d;!function(e){const n=new Float64Array(e);let a=0;I.indexBytesPerElement=n[a++],I.min=n[a++],I.max=n[a++],t.Cartesian3.unpack(n,a,b),a+=t.Cartesian3.packedLength,t.Ellipsoid.unpack(n,a,x),a+=t.Ellipsoid.packedLength,s.Rectangle.unpack(n,a,C)}(c.packedBuffer),d=2===I.indexBytesPerElement?new Uint16Array(c.indices):new Uint32Array(c.indices);const l=new Uint16Array(c.positions),u=new Uint32Array(c.counts),h=new Uint32Array(c.indexCounts),g=new Uint32Array(c.batchIds),p=new Uint32Array(c.batchTableColors),y=new Array(u.length),m=b,O=x;let U=C;const P=I.min,F=I.max;let M,S,D,R=c.minimumHeights,_=c.maximumHeights;a.defined(R)&&a.defined(_)&&(R=new Float32Array(R),_=new Float32Array(_));const G=l.length/2,V=l.subarray(0,G),Y=l.subarray(G,2*G);e.AttributeCompression.zigZagDeltaDecode(V,Y);const v=new Float64Array(3*G);for(M=0;M<G;++M){const e=V[M],n=Y[M],a=o.CesiumMath.lerp(U.west,U.east,e/32767),r=o.CesiumMath.lerp(U.south,U.north,n/32767),i=t.Cartographic.fromRadians(a,r,0,k),s=O.cartographicToCartesian(i,A);t.Cartesian3.pack(s,v,3*M)}const H=u.length,W=new Array(H),z=new Array(H);let K=0,Z=0;for(M=0;M<H;++M)W[M]=K,z[M]=Z,K+=u[M],Z+=h[M];const j=new Float32Array(3*G*2),q=new Uint16Array(2*G),J=new Uint32Array(z.length),Q=new Uint32Array(h.length);let X=[];const $={};for(M=0;M<H;++M)D=p[M],a.defined($[D])?($[D].positionLength+=u[M],$[D].indexLength+=h[M],$[D].batchIds.push(M)):$[D]={positionLength:u[M],indexLength:h[M],offset:0,indexOffset:0,batchIds:[M]};let ee,te=0,ne=0;for(D in $)if($.hasOwnProperty(D)){ee=$[D],ee.offset=te,ee.indexOffset=ne;const e=2*ee.positionLength,t=2*ee.indexLength+6*ee.positionLength;te+=e,ne+=t,ee.indexLength=t}const ae=[];for(D in $)$.hasOwnProperty(D)&&(ee=$[D],ae.push({color:n.Color.fromRgba(parseInt(D)),offset:ee.indexOffset,count:ee.indexLength,batchIds:ee.batchIds}));for(M=0;M<H;++M){D=p[M],ee=$[D];const e=ee.offset;let n=3*e,r=e;const o=W[M],s=u[M],c=g[M];let f=P,l=F;a.defined(R)&&a.defined(_)&&(f=R[M],l=_[M]);let b=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY,C=Number.POSITIVE_INFINITY,I=Number.NEGATIVE_INFINITY;for(S=0;S<s;++S){const e=t.Cartesian3.unpack(v,3*o+3*S,A);O.scaleToGeodeticSurface(e,e);const a=O.cartesianToCartographic(e,k),i=a.latitude,s=a.longitude;b=Math.min(i,b),x=Math.max(i,x),C=Math.min(s,C),I=Math.max(s,I);const d=O.geodeticSurfaceNormal(e,E);let u=t.Cartesian3.multiplyByScalar(d,f,N);const h=t.Cartesian3.add(e,u,T);u=t.Cartesian3.multiplyByScalar(d,l,u);const g=t.Cartesian3.add(e,u,B);t.Cartesian3.subtract(g,m,g),t.Cartesian3.subtract(h,m,h),t.Cartesian3.pack(g,j,n),t.Cartesian3.pack(h,j,n+3),q[r]=c,q[r+1]=c,n+=6,r+=2}U=L,U.west=C,U.east=I,U.south=b,U.north=x,y[M]=i.OrientedBoundingBox.fromRectangle(U,P,F,O);let w=ee.indexOffset;const G=z[M],V=h[M];for(J[M]=w,S=0;S<V;S+=3){const t=d[G+S]-o,n=d[G+S+1]-o,a=d[G+S+2]-o;X[w++]=2*t+e,X[w++]=2*n+e,X[w++]=2*a+e,X[w++]=2*a+1+e,X[w++]=2*n+1+e,X[w++]=2*t+1+e}for(S=0;S<s;++S){const t=S,n=(S+1)%s;X[w++]=2*t+1+e,X[w++]=2*n+e,X[w++]=2*t+e,X[w++]=2*t+1+e,X[w++]=2*n+1+e,X[w++]=2*n+e}ee.offset+=2*s,ee.indexOffset=w,Q[M]=w-J[M]}X=r.IndexDatatype.createTypedArray(j.length/3,X);const re=ae.length;for(let e=0;e<re;++e){const t=ae[e].batchIds;let n=0;const a=t.length;for(let e=0;e<a;++e)n+=Q[t[e]];ae[e].count=n}const oe=w(2===X.BYTES_PER_ELEMENT?r.IndexDatatype.UNSIGNED_SHORT:r.IndexDatatype.UNSIGNED_INT,y,ae);return f.push(j.buffer,X.buffer,J.buffer,Q.buffer,q.buffer,oe.buffer),{positions:j.buffer,indices:X.buffer,indexOffsets:J.buffer,indexCounts:Q.buffer,batchIds:q.buffer,packedBuffer:oe.buffer}}))})); diff --git a/public/static/Cesium/Workers/createVectorTilePolylines.js b/public/static/Cesium/Workers/createVectorTilePolylines.js new file mode 100644 index 0000000..f2e4510 --- /dev/null +++ b/public/static/Cesium/Workers/createVectorTilePolylines.js @@ -0,0 +1 @@ +define(["./Matrix3-b2351961","./combine-0c102d93","./AttributeCompression-0b8f7b7d","./Math-355606c6","./IndexDatatype-a9b1bc18","./Matrix2-7a8e9daf","./createTaskProcessorWorker","./defaultValue-f6d5e6da","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./RuntimeError-9b4ce3fb"],(function(e,t,a,n,r,s,i,o,c,u,f){"use strict";const p=32767,l=new e.Cartographic,d=new e.Cartesian3;const C=new s.Rectangle,b=new e.Ellipsoid,w=new e.Cartesian3,h={min:void 0,max:void 0};const y=new e.Cartesian3,k=new e.Cartesian3,g=new e.Cartesian3,m=new e.Cartesian3,A=new e.Cartesian3;return i((function(i,o){const c=new Uint16Array(i.positions),u=new Uint16Array(i.widths),f=new Uint32Array(i.counts),x=new Uint16Array(i.batchIds);!function(t){t=new Float64Array(t);let a=0;h.min=t[a++],h.max=t[a++],s.Rectangle.unpack(t,a,C),a+=s.Rectangle.packedLength,e.Ellipsoid.unpack(t,a,b),a+=e.Ellipsoid.packedLength,e.Cartesian3.unpack(t,a,w)}(i.packedBuffer);const D=b,E=w,I=function(t,r,s,i,o){const c=t.length/3,u=t.subarray(0,c),f=t.subarray(c,2*c),C=t.subarray(2*c,3*c);a.AttributeCompression.zigZagDeltaDecode(u,f,C);const b=new Float64Array(t.length);for(let t=0;t<c;++t){const a=u[t],c=f[t],w=C[t],h=n.CesiumMath.lerp(r.west,r.east,a/p),y=n.CesiumMath.lerp(r.south,r.north,c/p),k=n.CesiumMath.lerp(s,i,w/p),g=e.Cartographic.fromRadians(h,y,k,l),m=o.cartographicToCartesian(g,d);e.Cartesian3.pack(m,b,3*t)}return b}(c,C,h.min,h.max,D),P=I.length/3,U=4*P-4,M=new Float32Array(3*U),R=new Float32Array(3*U),T=new Float32Array(3*U),F=new Float32Array(2*U),N=new Uint16Array(U);let L,S=0,_=0,v=0,G=0,W=f.length;for(L=0;L<W;++L){const t=f[L],a=u[L],n=x[L];for(let r=0;r<t;++r){let s;if(0===r){const t=e.Cartesian3.unpack(I,3*G,y),a=e.Cartesian3.unpack(I,3*(G+1),k);s=e.Cartesian3.subtract(t,a,g),e.Cartesian3.add(t,s,s)}else s=e.Cartesian3.unpack(I,3*(G+r-1),g);const i=e.Cartesian3.unpack(I,3*(G+r),m);let o;if(r===t-1){const a=e.Cartesian3.unpack(I,3*(G+t-1),y),n=e.Cartesian3.unpack(I,3*(G+t-2),k);o=e.Cartesian3.subtract(a,n,A),e.Cartesian3.add(a,o,o)}else o=e.Cartesian3.unpack(I,3*(G+r+1),A);e.Cartesian3.subtract(s,E,s),e.Cartesian3.subtract(i,E,i),e.Cartesian3.subtract(o,E,o);const c=r===t-1?2:4;for(let t=0===r?2:0;t<c;++t){e.Cartesian3.pack(i,M,S),e.Cartesian3.pack(s,R,S),e.Cartesian3.pack(o,T,S),S+=3;const r=t-2<0?-1:1;F[_++]=t%2*2-1,F[_++]=r*a,N[v++]=n}}G+=t}const B=r.IndexDatatype.createTypedArray(U,6*P-6);let O=0,z=0;for(W=P-1,L=0;L<W;++L)B[z++]=O,B[z++]=O+2,B[z++]=O+1,B[z++]=O+1,B[z++]=O+2,B[z++]=O+3,O+=4;o.push(M.buffer,R.buffer,T.buffer),o.push(F.buffer,N.buffer,B.buffer);let H={indexDatatype:2===B.BYTES_PER_ELEMENT?r.IndexDatatype.UNSIGNED_SHORT:r.IndexDatatype.UNSIGNED_INT,currentPositions:M.buffer,previousPositions:R.buffer,nextPositions:T.buffer,expandAndWidth:F.buffer,batchIds:N.buffer,indices:B.buffer};if(i.keepDecodedPositions){const e=function(e){const t=e.length,a=new Uint32Array(t+1);let n=0;for(let r=0;r<t;++r)a[r]=n,n+=e[r];return a[t]=n,a}(f);o.push(I.buffer,e.buffer),H=t.combine(H,{decodedPositions:I.buffer,decodedPositionOffsets:e.buffer})}return H}))})); diff --git a/public/static/Cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js b/public/static/Cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js new file mode 100644 index 0000000..87186c1 --- /dev/null +++ b/public/static/Cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js @@ -0,0 +1 @@ +define(["./AxisAlignedBoundingBox-93c1311e","./Transforms-c842a68c","./Matrix2-7a8e9daf","./Matrix3-b2351961","./defaultValue-f6d5e6da","./TerrainEncoding-d756c901","./Math-355606c6","./OrientedBoundingBox-04b751ee","./RuntimeError-9b4ce3fb","./WebMercatorProjection-db7467f4","./createTaskProcessorWorker","./combine-0c102d93","./AttributeCompression-0b8f7b7d","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./EllipsoidTangentPlane-05ee7166","./IntersectionTests-863687a2","./Plane-5931b53e"],(function(t,e,n,i,o,r,a,s,c,u,h,l,d,g,m,p,I,E){"use strict";const T=Uint16Array.BYTES_PER_ELEMENT,f=Int32Array.BYTES_PER_ELEMENT,C=Uint32Array.BYTES_PER_ELEMENT,M=Float32Array.BYTES_PER_ELEMENT,x=Float64Array.BYTES_PER_ELEMENT;function N(t,e,n){n=o.defaultValue(n,a.CesiumMath);const i=t.length;for(let o=0;o<i;++o)if(n.equalsEpsilon(t[o],e,a.CesiumMath.EPSILON12))return o;return-1}const S=new i.Cartographic,b=new i.Cartesian3,w=new i.Cartesian3,B=new i.Cartesian3,P=new n.Matrix4;function A(t,e,r,s,c,u,h,l,d,g,m){const p=l.length;for(let I=0;I<p;++I){const E=l[I],T=E.cartographic,f=E.index,C=t.length,M=T.longitude;let x=T.latitude;x=a.CesiumMath.clamp(x,-a.CesiumMath.PI_OVER_TWO,a.CesiumMath.PI_OVER_TWO);const N=T.height-h.skirtHeight;h.hMin=Math.min(h.hMin,N),i.Cartographic.fromRadians(M,x,N,S),g&&(S.longitude+=d),g?I===p-1?S.latitude+=m:0===I&&(S.latitude-=m):S.latitude+=d;const w=h.ellipsoid.cartographicToCartesian(S);t.push(w),e.push(N),r.push(n.Cartesian2.clone(r[f])),s.length>0&&s.push(s[f]),c.length>0&&c.push(c[f]),n.Matrix4.multiplyByPoint(h.toENU,w,b);const B=h.minimum,P=h.maximum;i.Cartesian3.minimumByComponent(b,B,B),i.Cartesian3.maximumByComponent(b,P,P);const A=h.lastBorderPoint;if(o.defined(A)){const t=A.index;u.push(t,C-1,C,C,f,t)}h.lastBorderPoint=E}}return h((function(h,l){h.ellipsoid=i.Ellipsoid.clone(h.ellipsoid),h.rectangle=n.Rectangle.clone(h.rectangle);const d=function(h,l,d,g,m,p,I,E,y,R,_){let W,v,F,O,V,Y;o.defined(g)?(W=g.west,v=g.south,F=g.east,O=g.north,V=g.width,Y=g.height):(W=a.CesiumMath.toRadians(m.west),v=a.CesiumMath.toRadians(m.south),F=a.CesiumMath.toRadians(m.east),O=a.CesiumMath.toRadians(m.north),V=a.CesiumMath.toRadians(g.width),Y=a.CesiumMath.toRadians(g.height));const U=[v,O],k=[W,F],H=e.Transforms.eastNorthUpToFixedFrame(l,d),L=n.Matrix4.inverseTransformation(H,P);let j,D;y&&(j=u.WebMercatorProjection.geodeticLatitudeToMercatorAngle(v),D=1/(u.WebMercatorProjection.geodeticLatitudeToMercatorAngle(O)-j));const G=1!==p,z=new DataView(h);let q=Number.POSITIVE_INFINITY,J=Number.NEGATIVE_INFINITY;const K=w;K.x=Number.POSITIVE_INFINITY,K.y=Number.POSITIVE_INFINITY,K.z=Number.POSITIVE_INFINITY;const Q=B;Q.x=Number.NEGATIVE_INFINITY,Q.y=Number.NEGATIVE_INFINITY,Q.z=Number.NEGATIVE_INFINITY;let X,Z,$=0,tt=0,et=0;for(Z=0;Z<4;++Z){let t=$;X=z.getUint32(t,!0),t+=C;const e=a.CesiumMath.toRadians(180*z.getFloat64(t,!0));t+=x,-1===N(k,e)&&k.push(e);const n=a.CesiumMath.toRadians(180*z.getFloat64(t,!0));t+=x,-1===N(U,n)&&U.push(n),t+=2*x;let i=z.getInt32(t,!0);t+=f,tt+=i,i=z.getInt32(t,!0),et+=3*i,$+=X+C}const nt=[],it=[],ot=new Array(tt),rt=new Array(tt),at=new Array(tt),st=y?new Array(tt):[],ct=G?new Array(tt):[],ut=new Array(et),ht=[],lt=[],dt=[],gt=[];let mt=0,pt=0;for($=0,Z=0;Z<4;++Z){X=z.getUint32($,!0),$+=C;const t=$,e=a.CesiumMath.toRadians(180*z.getFloat64($,!0));$+=x;const o=a.CesiumMath.toRadians(180*z.getFloat64($,!0));$+=x;const r=a.CesiumMath.toRadians(180*z.getFloat64($,!0)),s=.5*r;$+=x;const h=a.CesiumMath.toRadians(180*z.getFloat64($,!0)),l=.5*h;$+=x;const g=z.getInt32($,!0);$+=f;const m=z.getInt32($,!0);$+=f,$+=f;const p=new Array(g);for(let t=0;t<g;++t){const c=e+z.getUint8($++)*r;S.longitude=c;const g=o+z.getUint8($++)*h;S.latitude=g;let m=z.getFloat32($,!0);if($+=M,0!==m&&m<_&&(m*=-Math.pow(2,R)),m*=6371010,S.height=m,-1!==N(k,c)||-1!==N(U,g)){const e=N(nt,S,i.Cartographic);if(-1!==e){p[t]=it[e];continue}nt.push(i.Cartographic.clone(S)),it.push(mt)}p[t]=mt,Math.abs(c-W)<s?ht.push({index:mt,cartographic:i.Cartographic.clone(S)}):Math.abs(c-F)<s?dt.push({index:mt,cartographic:i.Cartographic.clone(S)}):Math.abs(g-v)<l?lt.push({index:mt,cartographic:i.Cartographic.clone(S)}):Math.abs(g-O)<l&>.push({index:mt,cartographic:i.Cartographic.clone(S)}),q=Math.min(m,q),J=Math.max(m,J),at[mt]=m;const I=d.cartographicToCartesian(S);if(ot[mt]=I,y&&(st[mt]=(u.WebMercatorProjection.geodeticLatitudeToMercatorAngle(g)-j)*D),G){const t=d.geodeticSurfaceNormal(I);ct[mt]=t}n.Matrix4.multiplyByPoint(L,I,b),i.Cartesian3.minimumByComponent(b,K,K),i.Cartesian3.maximumByComponent(b,Q,Q);let E=(c-W)/(F-W);E=a.CesiumMath.clamp(E,0,1);let T=(g-v)/(O-v);T=a.CesiumMath.clamp(T,0,1),rt[mt]=new n.Cartesian2(E,T),++mt}const I=3*m;for(let t=0;t<I;++t,++pt)ut[pt]=p[z.getUint16($,!0)],$+=T;if(X!==$-t)throw new c.RuntimeError("Invalid terrain tile.")}ot.length=mt,rt.length=mt,at.length=mt,y&&(st.length=mt);G&&(ct.length=mt);const It=mt,Et=pt,Tt={hMin:q,lastBorderPoint:void 0,skirtHeight:E,toENU:L,ellipsoid:d,minimum:K,maximum:Q};ht.sort((function(t,e){return e.cartographic.latitude-t.cartographic.latitude})),lt.sort((function(t,e){return t.cartographic.longitude-e.cartographic.longitude})),dt.sort((function(t,e){return t.cartographic.latitude-e.cartographic.latitude})),gt.sort((function(t,e){return e.cartographic.longitude-t.cartographic.longitude}));const ft=1e-5;if(A(ot,at,rt,st,ct,ut,Tt,ht,-ft*V,!0,-ft*Y),A(ot,at,rt,st,ct,ut,Tt,lt,-ft*Y,!1),A(ot,at,rt,st,ct,ut,Tt,dt,ft*V,!0,ft*Y),A(ot,at,rt,st,ct,ut,Tt,gt,ft*Y,!1),ht.length>0&>.length>0){const t=ht[0].index,e=It,n=gt[gt.length-1].index,i=ot.length-1;ut.push(n,i,e,e,t,n)}tt=ot.length;const Ct=e.BoundingSphere.fromPoints(ot);let Mt;o.defined(g)&&(Mt=s.OrientedBoundingBox.fromRectangle(g,q,J,d));const xt=new r.EllipsoidalOccluder(d).computeHorizonCullingPointPossiblyUnderEllipsoid(l,ot,q),Nt=new t.AxisAlignedBoundingBox(K,Q,l),St=new r.TerrainEncoding(l,Nt,Tt.hMin,J,H,!1,y,G,p,I),bt=new Float32Array(tt*St.stride);let wt=0;for(let t=0;t<tt;++t)wt=St.encode(bt,wt,ot[t],rt[t],at[t],void 0,st[t],ct[t]);const Bt=ht.map((function(t){return t.index})).reverse(),Pt=lt.map((function(t){return t.index})).reverse(),At=dt.map((function(t){return t.index})).reverse(),yt=gt.map((function(t){return t.index})).reverse();return Pt.unshift(At[At.length-1]),Pt.push(Bt[0]),yt.unshift(Bt[Bt.length-1]),yt.push(At[0]),{vertices:bt,indices:new Uint16Array(ut),maximumHeight:J,minimumHeight:q,encoding:St,boundingSphere3D:Ct,orientedBoundingBox:Mt,occludeePointInScaledSpace:xt,vertexCountWithoutSkirts:It,indexCountWithoutSkirts:Et,westIndicesSouthToNorth:Bt,southIndicesEastToWest:Pt,eastIndicesNorthToSouth:At,northIndicesWestToEast:yt}}(h.buffer,h.relativeToCenter,h.ellipsoid,h.rectangle,h.nativeRectangle,h.exaggeration,h.exaggerationRelativeHeight,h.skirtHeight,h.includeWebMercatorT,h.negativeAltitudeExponentBias,h.negativeElevationThreshold),g=d.vertices;l.push(g.buffer);const m=d.indices;return l.push(m.buffer),{vertices:g.buffer,indices:m.buffer,numberOfAttributes:d.encoding.stride,minimumHeight:d.minimumHeight,maximumHeight:d.maximumHeight,boundingSphere3D:d.boundingSphere3D,orientedBoundingBox:d.orientedBoundingBox,occludeePointInScaledSpace:d.occludeePointInScaledSpace,encoding:d.encoding,vertexCountWithoutSkirts:d.vertexCountWithoutSkirts,indexCountWithoutSkirts:d.indexCountWithoutSkirts,westIndicesSouthToNorth:d.westIndicesSouthToNorth,southIndicesEastToWest:d.southIndicesEastToWest,eastIndicesNorthToSouth:d.eastIndicesNorthToSouth,northIndicesWestToEast:d.northIndicesWestToEast}}))})); diff --git a/public/static/Cesium/Workers/createVerticesFromHeightmap.js b/public/static/Cesium/Workers/createVerticesFromHeightmap.js new file mode 100644 index 0000000..77400b6 --- /dev/null +++ b/public/static/Cesium/Workers/createVerticesFromHeightmap.js @@ -0,0 +1,3 @@ +define(["./Matrix3-b2351961","./AxisAlignedBoundingBox-93c1311e","./Transforms-c842a68c","./Matrix2-7a8e9daf","./defaultValue-f6d5e6da","./TerrainEncoding-d756c901","./Math-355606c6","./OrientedBoundingBox-04b751ee","./WebMercatorProjection-db7467f4","./RuntimeError-9b4ce3fb","./createTaskProcessorWorker","./combine-0c102d93","./AttributeCompression-0b8f7b7d","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./EllipsoidTangentPlane-05ee7166","./IntersectionTests-863687a2","./Plane-5931b53e"],(function(e,t,i,a,n,r,s,l,o,f,u,c,d,h,m,g,p,x){"use strict";var w=Object.freeze({NONE:0,LERC:1});const k={};k.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});const y=new e.Cartesian3,I=new a.Matrix4,U=new e.Cartesian3,b=new e.Cartesian3;k.computeVertices=function(f){const u=Math.cos,c=Math.sin,d=Math.sqrt,h=Math.atan,m=Math.exp,g=s.CesiumMath.PI_OVER_TWO,p=s.CesiumMath.toRadians,x=f.heightmap,w=f.width,M=f.height,T=f.skirtHeight,V=T>0,v=n.defaultValue(f.isGeographic,!0),A=n.defaultValue(f.ellipsoid,e.Ellipsoid.WGS84),B=1/A.maximumRadius,D=a.Rectangle.clone(f.nativeRectangle),S=a.Rectangle.clone(f.rectangle);let P,E,C,F;n.defined(S)?(P=S.west,E=S.south,C=S.east,F=S.north):v?(P=p(D.west),E=p(D.south),C=p(D.east),F=p(D.north)):(P=D.west*B,E=g-2*h(m(-D.south*B)),C=D.east*B,F=g-2*h(m(-D.north*B)));let N=f.relativeToCenter;const O=n.defined(N);N=O?N:e.Cartesian3.ZERO;const R=n.defaultValue(f.includeWebMercatorT,!1),L=n.defaultValue(f.exaggeration,1),z=n.defaultValue(f.exaggerationRelativeHeight,0),H=1!==L,_=n.defaultValue(f.structure,k.DEFAULT_STRUCTURE),Y=n.defaultValue(_.heightScale,k.DEFAULT_STRUCTURE.heightScale),W=n.defaultValue(_.heightOffset,k.DEFAULT_STRUCTURE.heightOffset),X=n.defaultValue(_.elementsPerHeight,k.DEFAULT_STRUCTURE.elementsPerHeight),Z=n.defaultValue(_.stride,k.DEFAULT_STRUCTURE.stride),j=n.defaultValue(_.elementMultiplier,k.DEFAULT_STRUCTURE.elementMultiplier),G=n.defaultValue(_.isBigEndian,k.DEFAULT_STRUCTURE.isBigEndian);let q=a.Rectangle.computeWidth(D),Q=a.Rectangle.computeHeight(D);const J=q/(w-1),K=Q/(M-1);v||(q*=B,Q*=B);const $=A.radiiSquared,ee=$.x,te=$.y,ie=$.z;let ae=65536,ne=-65536;const re=i.Transforms.eastNorthUpToFixedFrame(N,A),se=a.Matrix4.inverseTransformation(re,I);let le,oe;R&&(le=o.WebMercatorProjection.geodeticLatitudeToMercatorAngle(E),oe=1/(o.WebMercatorProjection.geodeticLatitudeToMercatorAngle(F)-le));const fe=U;fe.x=Number.POSITIVE_INFINITY,fe.y=Number.POSITIVE_INFINITY,fe.z=Number.POSITIVE_INFINITY;const ue=b;ue.x=Number.NEGATIVE_INFINITY,ue.y=Number.NEGATIVE_INFINITY,ue.z=Number.NEGATIVE_INFINITY;let ce=Number.POSITIVE_INFINITY;const de=w*M,he=de+(T>0?2*w+2*M:0),me=new Array(he),ge=new Array(he),pe=new Array(he),xe=R?new Array(he):[],we=H?new Array(he):[];let ke=0,ye=M,Ie=0,Ue=w;V&&(--ke,++ye,--Ie,++Ue);const be=1e-5;for(let t=ke;t<ye;++t){let i=t;i<0&&(i=0),i>=M&&(i=M-1);let n=D.north-K*i;n=v?p(n):g-2*h(m(-n*B));let r=(n-E)/(F-E);r=s.CesiumMath.clamp(r,0,1);const l=t===ke,f=t===ye-1;T>0&&(l?n+=be*Q:f&&(n-=be*Q));const k=u(n),I=c(n),U=ie*I;let b;R&&(b=(o.WebMercatorProjection.geodeticLatitudeToMercatorAngle(n)-le)*oe);for(let t=Ie;t<Ue;++t){let n=t;n<0&&(n=0),n>=w&&(n=w-1);const o=i*(w*Z)+n*Z;let h;if(1===X)h=x[o];else{let e;if(h=0,G)for(e=0;e<X;++e)h=h*j+x[o+e];else for(e=X-1;e>=0;--e)h=h*j+x[o+e]}h=h*Y+W,ne=Math.max(ne,h),ae=Math.min(ae,h);let m=D.west+J*n;v?m=p(m):m*=B;let g=(m-P)/(C-P);g=s.CesiumMath.clamp(g,0,1);let V=i*w+n;if(T>0){const e=t===Ie,a=t===Ue-1,r=l||f||e||a;if((l||f)&&(e||a))continue;r&&(h-=T,e?(V=de+(M-i-1),m-=be*q):f?V=de+M+(w-n-1):a?(V=de+M+w+i,m+=be*q):l&&(V=de+M+w+M+n))}const S=k*u(m),E=k*c(m),F=ee*S,N=te*E,O=1/d(F*S+N*E+U*I),L=F*O,z=N*O,_=U*O,Q=new e.Cartesian3;Q.x=L+S*h,Q.y=z+E*h,Q.z=_+I*h,a.Matrix4.multiplyByPoint(se,Q,y),e.Cartesian3.minimumByComponent(y,fe,fe),e.Cartesian3.maximumByComponent(y,ue,ue),ce=Math.min(ce,h),me[V]=Q,pe[V]=new a.Cartesian2(g,r),ge[V]=h,R&&(xe[V]=b),H&&(we[V]=A.geodeticSurfaceNormal(Q))}}const Me=i.BoundingSphere.fromPoints(me);let Te,Ve;if(n.defined(S)&&(Te=l.OrientedBoundingBox.fromRectangle(S,ae,ne,A)),O){Ve=new r.EllipsoidalOccluder(A).computeHorizonCullingPointPossiblyUnderEllipsoid(N,me,ae)}const ve=new t.AxisAlignedBoundingBox(fe,ue,N),Ae=new r.TerrainEncoding(N,ve,ce,ne,re,!1,R,H,L,z),Be=new Float32Array(he*Ae.stride);let De=0;for(let e=0;e<he;++e)De=Ae.encode(Be,De,me[e],pe[e],ge[e],void 0,xe[e],we[e]);return{vertices:Be,maximumHeight:ne,minimumHeight:ae,encoding:Ae,boundingSphere3D:Me,orientedBoundingBox:Te,occludeePointInScaledSpace:Ve}};var M,T=k,V={exports:{}};M=V, +/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */ +function(){var e,t,i,a,n,r,s,l,o,f,u,c,d,h,m,g,p=(e={defaultNoDataValue:-34027999387901484e22,decode:function(r,s){var l=(s=s||{}).encodedMaskData||null===s.encodedMaskData,o=n(r,s.inputOffset||0,l),f=null!==s.noDataValue?s.noDataValue:e.defaultNoDataValue,u=t(o,s.pixelType||Float32Array,s.encodedMaskData,f,s.returnMask),c={width:o.width,height:o.height,pixelData:u.resultPixels,minValue:u.minValue,maxValue:o.pixels.maxValue,noDataValue:f};return u.resultMask&&(c.maskData=u.resultMask),s.returnEncodedMask&&o.mask&&(c.encodedMaskData=o.mask.bitset?o.mask.bitset:null),s.returnFileInfo&&(c.fileInfo=i(o),s.computeUsedBitDepths&&(c.fileInfo.bitDepths=a(o))),c}},t=function(e,t,i,a,n){var s,l,o,f=0,u=e.pixels.numBlocksX,c=e.pixels.numBlocksY,d=Math.floor(e.width/u),h=Math.floor(e.height/c),m=2*e.maxZError,g=Number.MAX_VALUE;i=i||(e.mask?e.mask.bitset:null),l=new t(e.width*e.height),n&&i&&(o=new Uint8Array(e.width*e.height));for(var p,x,w=new Float32Array(d*h),k=0;k<=c;k++){var y=k!==c?h:e.height%c;if(0!==y)for(var I=0;I<=u;I++){var U=I!==u?d:e.width%u;if(0!==U){var b,M,T,V,v=k*e.width*h+I*d,A=e.width-U,B=e.pixels.blocks[f];if(B.encoding<2?(0===B.encoding?b=B.rawData:(r(B.stuffedData,B.bitsPerPixel,B.numValidPixels,B.offset,m,w,e.pixels.maxValue),b=w),M=0):T=2===B.encoding?0:B.offset,i)for(x=0;x<y;x++){for(7&v&&(V=i[v>>3],V<<=7&v),p=0;p<U;p++)7&v||(V=i[v>>3]),128&V?(o&&(o[v]=1),g=g>(s=B.encoding<2?b[M++]:T)?s:g,l[v++]=s):(o&&(o[v]=0),l[v++]=a),V<<=1;v+=A}else if(B.encoding<2)for(x=0;x<y;x++){for(p=0;p<U;p++)g=g>(s=b[M++])?s:g,l[v++]=s;v+=A}else for(g=g>T?T:g,x=0;x<y;x++){for(p=0;p<U;p++)l[v++]=T;v+=A}if(1===B.encoding&&M!==B.numValidPixels)throw"Block and Mask do not match";f++}}}return{resultPixels:l,resultMask:o,minValue:g}},i=function(e){return{fileIdentifierString:e.fileIdentifierString,fileVersion:e.fileVersion,imageType:e.imageType,height:e.height,width:e.width,maxZError:e.maxZError,eofOffset:e.eofOffset,mask:e.mask?{numBlocksX:e.mask.numBlocksX,numBlocksY:e.mask.numBlocksY,numBytes:e.mask.numBytes,maxValue:e.mask.maxValue}:null,pixels:{numBlocksX:e.pixels.numBlocksX,numBlocksY:e.pixels.numBlocksY,numBytes:e.pixels.numBytes,maxValue:e.pixels.maxValue,noDataValue:e.noDataValue}}},a=function(e){for(var t=e.pixels.numBlocksX*e.pixels.numBlocksY,i={},a=0;a<t;a++){var n=e.pixels.blocks[a];0===n.encoding?i.float32=!0:1===n.encoding?i[n.bitsPerPixel]=!0:i[0]=!0}return Object.keys(i)},n=function(e,t,i){var a={},n=new Uint8Array(e,t,10);if(a.fileIdentifierString=String.fromCharCode.apply(null,n),"CntZImage"!==a.fileIdentifierString.trim())throw"Unexpected file identifier string: "+a.fileIdentifierString;t+=10;var r=new DataView(e,t,24);if(a.fileVersion=r.getInt32(0,!0),a.imageType=r.getInt32(4,!0),a.height=r.getUint32(8,!0),a.width=r.getUint32(12,!0),a.maxZError=r.getFloat64(16,!0),t+=24,!i)if(r=new DataView(e,t,16),a.mask={},a.mask.numBlocksY=r.getUint32(0,!0),a.mask.numBlocksX=r.getUint32(4,!0),a.mask.numBytes=r.getUint32(8,!0),a.mask.maxValue=r.getFloat32(12,!0),t+=16,a.mask.numBytes>0){var s=new Uint8Array(Math.ceil(a.width*a.height/8)),l=(r=new DataView(e,t,a.mask.numBytes)).getInt16(0,!0),o=2,f=0;do{if(l>0)for(;l--;)s[f++]=r.getUint8(o++);else{var u=r.getUint8(o++);for(l=-l;l--;)s[f++]=u}l=r.getInt16(o,!0),o+=2}while(o<a.mask.numBytes);if(-32768!==l||f<s.length)throw"Unexpected end of mask RLE encoding";a.mask.bitset=s,t+=a.mask.numBytes}else 0==(a.mask.numBytes|a.mask.numBlocksY|a.mask.maxValue)&&(a.mask.bitset=new Uint8Array(Math.ceil(a.width*a.height/8)));r=new DataView(e,t,16),a.pixels={},a.pixels.numBlocksY=r.getUint32(0,!0),a.pixels.numBlocksX=r.getUint32(4,!0),a.pixels.numBytes=r.getUint32(8,!0),a.pixels.maxValue=r.getFloat32(12,!0),t+=16;var c=a.pixels.numBlocksX,d=a.pixels.numBlocksY,h=c+(a.width%c>0?1:0),m=d+(a.height%d>0?1:0);a.pixels.blocks=new Array(h*m);for(var g=0,p=0;p<m;p++)for(var x=0;x<h;x++){var w=0,k=e.byteLength-t;r=new DataView(e,t,Math.min(10,k));var y={};a.pixels.blocks[g++]=y;var I=r.getUint8(0);if(w++,y.encoding=63&I,y.encoding>3)throw"Invalid block encoding ("+y.encoding+")";if(2!==y.encoding){if(0!==I&&2!==I){if(I>>=6,y.offsetType=I,2===I)y.offset=r.getInt8(1),w++;else if(1===I)y.offset=r.getInt16(1,!0),w+=2;else{if(0!==I)throw"Invalid block offset type";y.offset=r.getFloat32(1,!0),w+=4}if(1===y.encoding)if(I=r.getUint8(w),w++,y.bitsPerPixel=63&I,I>>=6,y.numValidPixelsType=I,2===I)y.numValidPixels=r.getUint8(w),w++;else if(1===I)y.numValidPixels=r.getUint16(w,!0),w+=2;else{if(0!==I)throw"Invalid valid pixel count type";y.numValidPixels=r.getUint32(w,!0),w+=4}}var U;if(t+=w,3!==y.encoding)if(0===y.encoding){var b=(a.pixels.numBytes-1)/4;if(b!==Math.floor(b))throw"uncompressed block has invalid length";U=new ArrayBuffer(4*b),new Uint8Array(U).set(new Uint8Array(e,t,4*b));var M=new Float32Array(U);y.rawData=M,t+=4*b}else if(1===y.encoding){var T=Math.ceil(y.numValidPixels*y.bitsPerPixel/8),V=Math.ceil(T/4);U=new ArrayBuffer(4*V),new Uint8Array(U).set(new Uint8Array(e,t,T)),y.stuffedData=new Uint32Array(U),t+=T}}else t++}return a.eofOffset=t,a},r=function(e,t,i,a,n,r,s){var l,o,f,u=(1<<t)-1,c=0,d=0,h=Math.ceil((s-a)/n),m=4*e.length-Math.ceil(t*i/8);for(e[e.length-1]<<=8*m,l=0;l<i;l++){if(0===d&&(f=e[c++],d=32),d>=t)o=f>>>d-t&u,d-=t;else{var g=t-d;o=(f&u)<<g&u,o+=(f=e[c++])>>>(d=32-g)}r[l]=o<h?a+o*n:s}return r},e),x=(s=function(e,t,i,a,n,r,s,l){var o,f,u,c,d,h=(1<<i)-1,m=0,g=0,p=4*e.length-Math.ceil(i*a/8);if(e[e.length-1]<<=8*p,n)for(o=0;o<a;o++)0===g&&(u=e[m++],g=32),g>=i?(f=u>>>g-i&h,g-=i):(f=(u&h)<<(c=i-g)&h,f+=(u=e[m++])>>>(g=32-c)),t[o]=n[f];else for(d=Math.ceil((l-r)/s),o=0;o<a;o++)0===g&&(u=e[m++],g=32),g>=i?(f=u>>>g-i&h,g-=i):(f=(u&h)<<(c=i-g)&h,f+=(u=e[m++])>>>(g=32-c)),t[o]=f<d?r+f*s:l},l=function(e,t,i,a,n,r){var s,l=(1<<t)-1,o=0,f=0,u=0,c=0,d=0,h=[],m=4*e.length-Math.ceil(t*i/8);e[e.length-1]<<=8*m;var g=Math.ceil((r-a)/n);for(f=0;f<i;f++)0===c&&(s=e[o++],c=32),c>=t?(d=s>>>c-t&l,c-=t):(d=(s&l)<<(u=t-c)&l,d+=(s=e[o++])>>>(c=32-u)),h[f]=d<g?a+d*n:r;return h.unshift(a),h},o=function(e,t,i,a,n,r,s,l){var o,f,u,c,d=(1<<i)-1,h=0,m=0,g=0;if(n)for(o=0;o<a;o++)0===m&&(u=e[h++],m=32,g=0),m>=i?(f=u>>>g&d,m-=i,g+=i):(f=u>>>g&d,m=32-(c=i-m),f|=((u=e[h++])&(1<<c)-1)<<i-c,g=c),t[o]=n[f];else{var p=Math.ceil((l-r)/s);for(o=0;o<a;o++)0===m&&(u=e[h++],m=32,g=0),m>=i?(f=u>>>g&d,m-=i,g+=i):(f=u>>>g&d,m=32-(c=i-m),f|=((u=e[h++])&(1<<c)-1)<<i-c,g=c),t[o]=f<p?r+f*s:l}return t},f=function(e,t,i,a,n,r){var s,l=(1<<t)-1,o=0,f=0,u=0,c=0,d=0,h=0,m=[],g=Math.ceil((r-a)/n);for(f=0;f<i;f++)0===c&&(s=e[o++],c=32,h=0),c>=t?(d=s>>>h&l,c-=t,h+=t):(d=s>>>h&l,c=32-(u=t-c),d|=((s=e[o++])&(1<<u)-1)<<t-u,h=u),m[f]=d<g?a+d*n:r;return m.unshift(a),m},u=function(e,t,i,a){var n,r,s,l,o=(1<<i)-1,f=0,u=0,c=4*e.length-Math.ceil(i*a/8);for(e[e.length-1]<<=8*c,n=0;n<a;n++)0===u&&(s=e[f++],u=32),u>=i?(r=s>>>u-i&o,u-=i):(r=(s&o)<<(l=i-u)&o,r+=(s=e[f++])>>>(u=32-l)),t[n]=r;return t},c=function(e,t,i,a){var n,r,s,l,o=(1<<i)-1,f=0,u=0,c=0;for(n=0;n<a;n++)0===u&&(s=e[f++],u=32,c=0),u>=i?(r=s>>>c&o,u-=i,c+=i):(r=s>>>c&o,u=32-(l=i-u),r|=((s=e[f++])&(1<<l)-1)<<i-l,c=l),t[n]=r;return t},d={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(e){for(var t=65535,i=65535,a=e.length,n=Math.floor(a/2),r=0;n;){var s=n>=359?359:n;n-=s;do{t+=e[r++]<<8,i+=t+=e[r++]}while(--s);t=(65535&t)+(t>>>16),i=(65535&i)+(i>>>16)}return 1&a&&(i+=t+=e[r]<<8),((i=(65535&i)+(i>>>16))<<16|(t=(65535&t)+(t>>>16)))>>>0},readHeaderInfo:function(e,t){var i=t.ptr,a=new Uint8Array(e,i,6),n={};if(n.fileIdentifierString=String.fromCharCode.apply(null,a),0!==n.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+n.fileIdentifierString;i+=6;var r,s=new DataView(e,i,8),l=s.getInt32(0,!0);if(n.fileVersion=l,i+=4,l>=3&&(n.checksum=s.getUint32(4,!0),i+=4),s=new DataView(e,i,12),n.height=s.getUint32(0,!0),n.width=s.getUint32(4,!0),i+=8,l>=4?(n.numDims=s.getUint32(8,!0),i+=4):n.numDims=1,s=new DataView(e,i,40),n.numValidPixel=s.getUint32(0,!0),n.microBlockSize=s.getInt32(4,!0),n.blobSize=s.getInt32(8,!0),n.imageType=s.getInt32(12,!0),n.maxZError=s.getFloat64(16,!0),n.zMin=s.getFloat64(24,!0),n.zMax=s.getFloat64(32,!0),i+=40,t.headerInfo=n,t.ptr=i,l>=3&&(r=l>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(e,i-r,n.blobSize-14))!==n.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(e,t){var i=t.headerInfo,a=this.getDataTypeArray(i.imageType),n=i.numDims*this.getDataTypeSize(i.imageType),r=this.readSubArray(e,t.ptr,a,n),s=this.readSubArray(e,t.ptr+n,a,n);t.ptr+=2*n;var l,o=!0;for(l=0;l<i.numDims;l++)if(r[l]!==s[l]){o=!1;break}return i.minValues=r,i.maxValues=s,o},readSubArray:function(e,t,i,a){var n;if(i===Uint8Array)n=new Uint8Array(e,t,a);else{var r=new ArrayBuffer(a);new Uint8Array(r).set(new Uint8Array(e,t,a)),n=new i(r)}return n},readMask:function(e,t){var i,a,n=t.ptr,r=t.headerInfo,s=r.width*r.height,l=r.numValidPixel,o=new DataView(e,n,4),f={};if(f.numBytes=o.getUint32(0,!0),n+=4,(0===l||s===l)&&0!==f.numBytes)throw"invalid mask";if(0===l)i=new Uint8Array(Math.ceil(s/8)),f.bitset=i,a=new Uint8Array(s),t.pixels.resultMask=a,n+=f.numBytes;else if(f.numBytes>0){i=new Uint8Array(Math.ceil(s/8));var u=(o=new DataView(e,n,f.numBytes)).getInt16(0,!0),c=2,d=0,h=0;do{if(u>0)for(;u--;)i[d++]=o.getUint8(c++);else for(h=o.getUint8(c++),u=-u;u--;)i[d++]=h;u=o.getInt16(c,!0),c+=2}while(c<f.numBytes);if(-32768!==u||d<i.length)throw"Unexpected end of mask RLE encoding";a=new Uint8Array(s);var m=0,g=0;for(g=0;g<s;g++)7&g?(m=i[g>>3],m<<=7&g):m=i[g>>3],128&m&&(a[g]=1);t.pixels.resultMask=a,f.bitset=i,n+=f.numBytes}return t.ptr=n,t.mask=f,!0},readDataOneSweep:function(e,t,i){var a,n=t.ptr,r=t.headerInfo,s=r.numDims,l=r.width*r.height,o=r.imageType,f=r.numValidPixel*d.getDataTypeSize(o)*s,u=t.pixels.resultMask;if(i===Uint8Array)a=new Uint8Array(e,n,f);else{var c=new ArrayBuffer(f);new Uint8Array(c).set(new Uint8Array(e,n,f)),a=new i(c)}if(a.length===l*s)t.pixels.resultPixels=a;else{t.pixels.resultPixels=new i(l*s);var h=0,m=0,g=0,p=0;if(s>1)for(g=0;g<s;g++)for(p=g*l,m=0;m<l;m++)u[m]&&(t.pixels.resultPixels[p+m]=a[h++]);else for(m=0;m<l;m++)u[m]&&(t.pixels.resultPixels[m]=a[h++])}return n+=f,t.ptr=n,!0},readHuffmanTree:function(e,t){var i=this.HUFFMAN_LUT_BITS_MAX,a=new DataView(e,t.ptr,16);if(t.ptr+=16,a.getInt32(0,!0)<2)throw"unsupported Huffman version";var n=a.getInt32(4,!0),r=a.getInt32(8,!0),s=a.getInt32(12,!0);if(r>=s)return!1;var l=new Uint32Array(s-r);d.decodeBits(e,t,l);var o,f,u,c,m=[];for(o=r;o<s;o++)m[f=o-(o<n?0:n)]={first:l[o-r],second:null};var g=e.byteLength-t.ptr,p=Math.ceil(g/4),x=new ArrayBuffer(4*p);new Uint8Array(x).set(new Uint8Array(e,t.ptr,g));var w,k=new Uint32Array(x),y=0,I=0;for(w=k[0],o=r;o<s;o++)(c=m[f=o-(o<n?0:n)].first)>0&&(m[f].second=w<<y>>>32-c,32-y>=c?32===(y+=c)&&(y=0,w=k[++I]):(y+=c-32,w=k[++I],m[f].second|=w>>>32-y));var U=0,b=0,M=new h;for(o=0;o<m.length;o++)void 0!==m[o]&&(U=Math.max(U,m[o].first));b=U>=i?i:U,U>=30&&console.log("WARning, large NUM LUT BITS IS "+U);var T,V,v,A,B,D=[];for(o=r;o<s;o++)if((c=m[f=o-(o<n?0:n)].first)>0)if(T=[c,f],c<=b)for(V=m[f].second<<b-c,v=1<<b-c,u=0;u<v;u++)D[V|u]=T;else for(V=m[f].second,B=M,A=c-1;A>=0;A--)V>>>A&1?(B.right||(B.right=new h),B=B.right):(B.left||(B.left=new h),B=B.left),0!==A||B.val||(B.val=T[1]);return{decodeLut:D,numBitsLUTQick:b,numBitsLUT:U,tree:M,stuffedData:k,srcPtr:I,bitPos:y}},readHuffman:function(e,t,i){var a,n,r,s,l,o,f,u,c,d=t.headerInfo,h=d.numDims,m=t.headerInfo.height,g=t.headerInfo.width,p=g*m,x=this.readHuffmanTree(e,t),w=x.decodeLut,k=x.tree,y=x.stuffedData,I=x.srcPtr,U=x.bitPos,b=x.numBitsLUTQick,M=x.numBitsLUT,T=0===t.headerInfo.imageType?128:0,V=t.pixels.resultMask,v=0;U>0&&(I++,U=0);var A,B=y[I],D=1===t.encodeMode,S=new i(p*h),P=S;for(A=0;A<d.numDims;A++){if(h>1&&(P=new i(S.buffer,p*A,p),v=0),t.headerInfo.numValidPixel===g*m)for(u=0,o=0;o<m;o++)for(f=0;f<g;f++,u++){if(n=0,l=s=B<<U>>>32-b,32-U<b&&(l=s|=y[I+1]>>>64-U-b),w[l])n=w[l][1],U+=w[l][0];else for(l=s=B<<U>>>32-M,32-U<M&&(l=s|=y[I+1]>>>64-U-M),a=k,c=0;c<M;c++)if(!(a=s>>>M-c-1&1?a.right:a.left).left&&!a.right){n=a.val,U=U+c+1;break}U>=32&&(U-=32,B=y[++I]),r=n-T,D?(r+=f>0?v:o>0?P[u-g]:v,r&=255,P[u]=r,v=r):P[u]=r}else for(u=0,o=0;o<m;o++)for(f=0;f<g;f++,u++)if(V[u]){if(n=0,l=s=B<<U>>>32-b,32-U<b&&(l=s|=y[I+1]>>>64-U-b),w[l])n=w[l][1],U+=w[l][0];else for(l=s=B<<U>>>32-M,32-U<M&&(l=s|=y[I+1]>>>64-U-M),a=k,c=0;c<M;c++)if(!(a=s>>>M-c-1&1?a.right:a.left).left&&!a.right){n=a.val,U=U+c+1;break}U>=32&&(U-=32,B=y[++I]),r=n-T,D?(f>0&&V[u-1]?r+=v:o>0&&V[u-g]?r+=P[u-g]:r+=v,r&=255,P[u]=r,v=r):P[u]=r}t.ptr=t.ptr+4*(I+1)+(U>0?4:0)}t.pixels.resultPixels=S},decodeBits:function(e,t,i,a,n){var r=t.headerInfo,d=r.fileVersion,h=0,m=new DataView(e,t.ptr,5),g=m.getUint8(0);h++;var p=g>>6,x=0===p?4:3-p,w=(32&g)>0,k=31&g,y=0;if(1===x)y=m.getUint8(h),h++;else if(2===x)y=m.getUint16(h,!0),h+=2;else{if(4!==x)throw"Invalid valid pixel count type";y=m.getUint32(h,!0),h+=4}var I,U,b,M,T,V,v,A,B,D=2*r.maxZError,S=r.numDims>1?r.maxValues[n]:r.zMax;if(w){for(t.counter.lut++,A=m.getUint8(h),h++,M=Math.ceil((A-1)*k/8),T=Math.ceil(M/4),U=new ArrayBuffer(4*T),b=new Uint8Array(U),t.ptr+=h,b.set(new Uint8Array(e,t.ptr,M)),v=new Uint32Array(U),t.ptr+=M,B=0;A-1>>>B;)B++;M=Math.ceil(y*B/8),T=Math.ceil(M/4),U=new ArrayBuffer(4*T),(b=new Uint8Array(U)).set(new Uint8Array(e,t.ptr,M)),I=new Uint32Array(U),t.ptr+=M,V=d>=3?f(v,k,A-1,a,D,S):l(v,k,A-1,a,D,S),d>=3?o(I,i,B,y,V):s(I,i,B,y,V)}else t.counter.bitstuffer++,B=k,t.ptr+=h,B>0&&(M=Math.ceil(y*B/8),T=Math.ceil(M/4),U=new ArrayBuffer(4*T),(b=new Uint8Array(U)).set(new Uint8Array(e,t.ptr,M)),I=new Uint32Array(U),t.ptr+=M,d>=3?null==a?c(I,i,B,y):o(I,i,B,y,!1,a,D,S):null==a?u(I,i,B,y):s(I,i,B,y,!1,a,D,S))},readTiles:function(e,t,i){var a=t.headerInfo,n=a.width,r=a.height,s=a.microBlockSize,l=a.imageType,o=d.getDataTypeSize(l),f=Math.ceil(n/s),u=Math.ceil(r/s);t.pixels.numBlocksY=u,t.pixels.numBlocksX=f,t.pixels.ptr=0;var c,h,m,g,p,x,w,k,y=0,I=0,U=0,b=0,M=0,T=0,V=0,v=0,A=0,B=0,D=0,S=0,P=0,E=0,C=0,F=new i(s*s),N=r%s||s,O=n%s||s,R=a.numDims,L=t.pixels.resultMask,z=t.pixels.resultPixels;for(U=0;U<u;U++)for(M=U!==u-1?s:N,b=0;b<f;b++)for(B=U*n*s+b*s,D=n-(T=b!==f-1?s:O),k=0;k<R;k++){if(R>1&&(z=new i(t.pixels.resultPixels.buffer,n*r*k*o,n*r)),V=e.byteLength-t.ptr,h={},C=0,C++,A=(v=(c=new DataView(e,t.ptr,Math.min(10,V))).getUint8(0))>>6&255,(v>>2&15)!=(b*s>>3&15))throw"integrity issue";if((p=3&v)>3)throw t.ptr+=C,"Invalid block encoding ("+p+")";if(2!==p)if(0===p){if(t.counter.uncompressed++,t.ptr+=C,S=(S=M*T*o)<(P=e.byteLength-t.ptr)?S:P,m=new ArrayBuffer(S%o==0?S:S+o-S%o),new Uint8Array(m).set(new Uint8Array(e,t.ptr,S)),g=new i(m),E=0,L)for(y=0;y<M;y++){for(I=0;I<T;I++)L[B]&&(z[B]=g[E++]),B++;B+=D}else for(y=0;y<M;y++){for(I=0;I<T;I++)z[B++]=g[E++];B+=D}t.ptr+=E*o}else if(x=d.getDataTypeUsed(l,A),w=d.getOnePixel(h,C,x,c),C+=d.getDataTypeSize(x),3===p)if(t.ptr+=C,t.counter.constantoffset++,L)for(y=0;y<M;y++){for(I=0;I<T;I++)L[B]&&(z[B]=w),B++;B+=D}else for(y=0;y<M;y++){for(I=0;I<T;I++)z[B++]=w;B+=D}else if(t.ptr+=C,d.decodeBits(e,t,F,w,k),C=0,L)for(y=0;y<M;y++){for(I=0;I<T;I++)L[B]&&(z[B]=F[C++]),B++;B+=D}else for(y=0;y<M;y++){for(I=0;I<T;I++)z[B++]=F[C++];B+=D}else t.counter.constant++,t.ptr+=C}},formatFileInfo:function(e){return{fileIdentifierString:e.headerInfo.fileIdentifierString,fileVersion:e.headerInfo.fileVersion,imageType:e.headerInfo.imageType,height:e.headerInfo.height,width:e.headerInfo.width,numValidPixel:e.headerInfo.numValidPixel,microBlockSize:e.headerInfo.microBlockSize,blobSize:e.headerInfo.blobSize,maxZError:e.headerInfo.maxZError,pixelType:d.getPixelType(e.headerInfo.imageType),eofOffset:e.eofOffset,mask:e.mask?{numBytes:e.mask.numBytes}:null,pixels:{numBlocksX:e.pixels.numBlocksX,numBlocksY:e.pixels.numBlocksY,maxValue:e.headerInfo.zMax,minValue:e.headerInfo.zMin,noDataValue:e.noDataValue}}},constructConstantSurface:function(e){var t=e.headerInfo.zMax,i=e.headerInfo.numDims,a=e.headerInfo.height*e.headerInfo.width,n=a*i,r=0,s=0,l=0,o=e.pixels.resultMask;if(o)if(i>1)for(r=0;r<i;r++)for(l=r*a,s=0;s<a;s++)o[s]&&(e.pixels.resultPixels[l+s]=t);else for(s=0;s<a;s++)o[s]&&(e.pixels.resultPixels[s]=t);else if(e.pixels.resultPixels.fill)e.pixels.resultPixels.fill(t);else for(s=0;s<n;s++)e.pixels.resultPixels[s]=t},getDataTypeArray:function(e){var t;switch(e){case 0:t=Int8Array;break;case 1:t=Uint8Array;break;case 2:t=Int16Array;break;case 3:t=Uint16Array;break;case 4:t=Int32Array;break;case 5:t=Uint32Array;break;case 6:default:t=Float32Array;break;case 7:t=Float64Array}return t},getPixelType:function(e){var t;switch(e){case 0:t="S8";break;case 1:t="U8";break;case 2:t="S16";break;case 3:t="U16";break;case 4:t="S32";break;case 5:t="U32";break;case 6:default:t="F32";break;case 7:t="F64"}return t},isValidPixelValue:function(e,t){if(null==t)return!1;var i;switch(e){case 0:i=t>=-128&&t<=127;break;case 1:i=t>=0&&t<=255;break;case 2:i=t>=-32768&&t<=32767;break;case 3:i=t>=0&&t<=65536;break;case 4:i=t>=-2147483648&&t<=2147483647;break;case 5:i=t>=0&&t<=4294967296;break;case 6:i=t>=-34027999387901484e22&&t<=34027999387901484e22;break;case 7:i=t>=5e-324&&t<=17976931348623157e292;break;default:i=!1}return i},getDataTypeSize:function(e){var t=0;switch(e){case 0:case 1:t=1;break;case 2:case 3:t=2;break;case 4:case 5:case 6:t=4;break;case 7:t=8;break;default:t=e}return t},getDataTypeUsed:function(e,t){var i=e;switch(e){case 2:case 4:i=e-t;break;case 3:case 5:i=e-2*t;break;case 6:i=0===t?e:1===t?2:1;break;case 7:i=0===t?e:e-2*t+1;break;default:i=e}return i},getOnePixel:function(e,t,i,a){var n=0;switch(i){case 0:n=a.getInt8(t);break;case 1:n=a.getUint8(t);break;case 2:n=a.getInt16(t,!0);break;case 3:n=a.getUint16(t,!0);break;case 4:n=a.getInt32(t,!0);break;case 5:n=a.getUInt32(t,!0);break;case 6:n=a.getFloat32(t,!0);break;case 7:n=a.getFloat64(t,!0);break;default:throw"the decoder does not understand this pixel type"}return n}},h=function(e,t,i){this.val=e,this.left=t,this.right=i},{decode:function(e,t){var i=(t=t||{}).noDataValue,a=0,n={};if(n.ptr=t.inputOffset||0,n.pixels={},d.readHeaderInfo(e,n)){var r=n.headerInfo,s=r.fileVersion,l=d.getDataTypeArray(r.imageType);d.readMask(e,n),r.numValidPixel===r.width*r.height||n.pixels.resultMask||(n.pixels.resultMask=t.maskData);var o,f=r.width*r.height;if(n.pixels.resultPixels=new l(f*r.numDims),n.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},0!==r.numValidPixel)if(r.zMax===r.zMin)d.constructConstantSurface(n);else if(s>=4&&d.checkMinMaxRanges(e,n))d.constructConstantSurface(n);else{var u=new DataView(e,n.ptr,2),c=u.getUint8(0);if(n.ptr++,c)d.readDataOneSweep(e,n,l);else if(s>1&&r.imageType<=1&&Math.abs(r.maxZError-.5)<1e-5){var h=u.getUint8(1);if(n.ptr++,n.encodeMode=h,h>2||s<4&&h>1)throw"Invalid Huffman flag "+h;h?d.readHuffman(e,n,l):d.readTiles(e,n,l)}else d.readTiles(e,n,l)}n.eofOffset=n.ptr,t.inputOffset?(o=n.headerInfo.blobSize+t.inputOffset-n.ptr,Math.abs(o)>=1&&(n.eofOffset=t.inputOffset+n.headerInfo.blobSize)):(o=n.headerInfo.blobSize-n.ptr,Math.abs(o)>=1&&(n.eofOffset=n.headerInfo.blobSize));var m={width:r.width,height:r.height,pixelData:n.pixels.resultPixels,minValue:r.zMin,maxValue:r.zMax,validPixelCount:r.numValidPixel,dimCount:r.numDims,dimStats:{minValues:r.minValues,maxValues:r.maxValues},maskData:n.pixels.resultMask};if(n.pixels.resultMask&&d.isValidPixelValue(r.imageType,i)){var g=n.pixels.resultMask;for(a=0;a<f;a++)g[a]||(m.pixelData[a]=i);m.noDataValue=i}return n.noDataValue=i,t.returnFileInfo&&(m.fileInfo=d.formatFileInfo(n)),m}},getBandCount:function(e){for(var t=0,i=0,a={ptr:0,pixels:{}};i<e.byteLength-58;)d.readHeaderInfo(e,a),i+=a.headerInfo.blobSize,t++,a.ptr=i;return t}}),w=(m=new ArrayBuffer(4),g=new Uint8Array(m),new Uint32Array(m)[0]=1,1===g[0]),k={decode:function(e,t){if(!w)throw"Big endian system is not supported.";var i,a,n=(t=t||{}).inputOffset||0,r=new Uint8Array(e,n,10),s=String.fromCharCode.apply(null,r);if("CntZImage"===s.trim())i=p,a=1;else{if("Lerc2"!==s.substring(0,5))throw"Unexpected file identifier string: "+s;i=x,a=2}for(var l,o,f,u,c,d,h=0,m=e.byteLength-10,g=[],k={width:0,height:0,pixels:[],pixelType:t.pixelType,mask:null,statistics:[]};n<m;){var y=i.decode(e,{inputOffset:n,encodedMaskData:l,maskData:f,returnMask:0===h,returnEncodedMask:0===h,returnFileInfo:!0,pixelType:t.pixelType||null,noDataValue:t.noDataValue||null});n=y.fileInfo.eofOffset,0===h&&(l=y.encodedMaskData,f=y.maskData,k.width=y.width,k.height=y.height,k.dimCount=y.dimCount||1,k.pixelType=y.pixelType||y.fileInfo.pixelType,k.mask=y.maskData),a>1&&y.fileInfo.mask&&y.fileInfo.mask.numBytes>0&&g.push(y.maskData),h++,k.pixels.push(y.pixelData),k.statistics.push({minValue:y.minValue,maxValue:y.maxValue,noDataValue:y.noDataValue,dimStats:y.dimStats})}if(a>1&&g.length>1){for(d=k.width*k.height,k.bandMasks=g,(f=new Uint8Array(d)).set(g[0]),u=1;u<g.length;u++)for(o=g[u],c=0;c<d;c++)f[c]=f[c]&o[c];k.maskData=f}return k}};M.exports?M.exports=k:this.Lerc=k}();var v=V.exports,A=s.getDefaultExportFromCjs(v);return u((function(t,i){if(t.encoding===w.LERC){let e;try{e=A.decode(t.heightmap)}catch(e){throw new f.RuntimeError(e)}if(e.statistics[0].minValue===Number.MAX_VALUE)throw new f.RuntimeError("Invalid tile data");t.heightmap=e.pixels[0],t.width=e.width,t.height=e.height}t.ellipsoid=e.Ellipsoid.clone(t.ellipsoid),t.rectangle=a.Rectangle.clone(t.rectangle);const n=T.computeVertices(t),r=n.vertices;return i.push(r.buffer),{vertices:r.buffer,numberOfAttributes:n.encoding.stride,minimumHeight:n.minimumHeight,maximumHeight:n.maximumHeight,gridWidth:t.width,gridHeight:t.height,boundingSphere3D:n.boundingSphere3D,orientedBoundingBox:n.orientedBoundingBox,occludeePointInScaledSpace:n.occludeePointInScaledSpace,encoding:n.encoding,westIndicesSouthToNorth:n.westIndicesSouthToNorth,southIndicesEastToWest:n.southIndicesEastToWest,eastIndicesNorthToSouth:n.eastIndicesNorthToSouth,northIndicesWestToEast:n.northIndicesWestToEast}}))})); diff --git a/public/static/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js b/public/static/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js new file mode 100644 index 0000000..57ac59a --- /dev/null +++ b/public/static/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js @@ -0,0 +1 @@ +define(["./AxisAlignedBoundingBox-93c1311e","./Matrix2-7a8e9daf","./Matrix3-b2351961","./defaultValue-f6d5e6da","./TerrainEncoding-d756c901","./IndexDatatype-a9b1bc18","./Math-355606c6","./Transforms-c842a68c","./WebMercatorProjection-db7467f4","./createTaskProcessorWorker","./RuntimeError-9b4ce3fb","./AttributeCompression-0b8f7b7d","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./combine-0c102d93"],(function(e,t,r,n,o,i,a,s,c,d,h,u,l,I,g){"use strict";function m(){s.DeveloperError.throwInstantiationError()}Object.defineProperties(m.prototype,{errorEvent:{get:s.DeveloperError.throwInstantiationError},credit:{get:s.DeveloperError.throwInstantiationError},tilingScheme:{get:s.DeveloperError.throwInstantiationError},ready:{get:s.DeveloperError.throwInstantiationError},readyPromise:{get:s.DeveloperError.throwInstantiationError},hasWaterMask:{get:s.DeveloperError.throwInstantiationError},hasVertexNormals:{get:s.DeveloperError.throwInstantiationError},availability:{get:s.DeveloperError.throwInstantiationError}});const T=[];m.getRegularGridIndices=function(e,t){let r=T[e];n.defined(r)||(T[e]=r=[]);let o=r[t];return n.defined(o)||(o=e*t<a.CesiumMath.SIXTY_FOUR_KILOBYTES?r[t]=new Uint16Array((e-1)*(t-1)*6):r[t]=new Uint32Array((e-1)*(t-1)*6),y(e,t,o,0)),o};const E=[];m.getRegularGridIndicesAndEdgeIndices=function(e,t){let r=E[e];n.defined(r)||(E[e]=r=[]);let o=r[t];if(!n.defined(o)){const n=m.getRegularGridIndices(e,t),i=f(e,t),a=i.westIndicesSouthToNorth,s=i.southIndicesEastToWest,c=i.eastIndicesNorthToSouth,d=i.northIndicesWestToEast;o=r[t]={indices:n,westIndicesSouthToNorth:a,southIndicesEastToWest:s,eastIndicesNorthToSouth:c,northIndicesWestToEast:d}}return o};const p=[];function f(e,t){const r=new Array(t),n=new Array(e),o=new Array(t),i=new Array(e);let a;for(a=0;a<e;++a)i[a]=a,n[a]=e*t-1-a;for(a=0;a<t;++a)o[a]=(a+1)*e-1,r[a]=(t-a-1)*e;return{westIndicesSouthToNorth:r,southIndicesEastToWest:n,eastIndicesNorthToSouth:o,northIndicesWestToEast:i}}function y(e,t,r,n){let o=0;for(let i=0;i<t-1;++i){for(let t=0;t<e-1;++t){const t=o,i=t+e,a=i+1,s=t+1;r[n++]=t,r[n++]=i,r[n++]=s,r[n++]=s,r[n++]=i,r[n++]=a,++o}++o}}function N(e,t,r,n){let o=e[0];const i=e.length;for(let a=1;a<i;++a){const i=e[a];r[n++]=o,r[n++]=i,r[n++]=t,r[n++]=t,r[n++]=i,r[n++]=t+1,o=i,++t}return n}m.getRegularGridAndSkirtIndicesAndEdgeIndices=function(e,t){let r=p[e];n.defined(r)||(p[e]=r=[]);let o=r[t];if(!n.defined(o)){const n=e*t,a=(e-1)*(t-1)*6,s=2*e+2*t,c=n+s,d=a+6*Math.max(0,s-4),h=f(e,t),u=h.westIndicesSouthToNorth,l=h.southIndicesEastToWest,I=h.eastIndicesNorthToSouth,g=h.northIndicesWestToEast,T=i.IndexDatatype.createTypedArray(c,d);y(e,t,T,0),m.addSkirtIndices(u,l,I,g,n,T,a),o=r[t]={indices:T,westIndicesSouthToNorth:u,southIndicesEastToWest:l,eastIndicesNorthToSouth:I,northIndicesWestToEast:g,indexCountWithoutSkirts:a}}return o},m.addSkirtIndices=function(e,t,r,n,o,i,a){let s=o;a=N(e,s,i,a),s+=e.length,a=N(t,s,i,a),s+=t.length,a=N(r,s,i,a),s+=r.length,N(n,s,i,a)},m.heightmapTerrainQuality=.25,m.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(e,t,r){return 2*e.maximumRadius*Math.PI*m.heightmapTerrainQuality/(t*r)},m.prototype.requestTileGeometry=s.DeveloperError.throwInstantiationError,m.prototype.getLevelMaximumGeometricError=s.DeveloperError.throwInstantiationError,m.prototype.getTileDataAvailable=s.DeveloperError.throwInstantiationError,m.prototype.loadTileDataAvailability=s.DeveloperError.throwInstantiationError;const w=32767,M=new r.Cartesian3,S=new r.Cartesian3,x=new r.Cartesian3,A=new r.Cartographic,C=new t.Cartesian2;function b(e,n,o,i,s,c,d,h,u){let l=Number.POSITIVE_INFINITY;const I=s.north,g=s.south;let m=s.east;const T=s.west;m<T&&(m+=a.CesiumMath.TWO_PI);const E=e.length;for(let s=0;s<E;++s){const E=e[s],p=o[E],f=i[E];A.longitude=a.CesiumMath.lerp(T,m,f.x),A.latitude=a.CesiumMath.lerp(g,I,f.y),A.height=p-n;const y=c.cartographicToCartesian(A,M);t.Matrix4.multiplyByPoint(d,y,y),r.Cartesian3.minimumByComponent(y,h,h),r.Cartesian3.maximumByComponent(y,u,u),l=Math.min(l,A.height)}return l}function W(e,t,r,o,i,s,d,h,u,l,I,g,m,T){const E=n.defined(d),p=u.north,f=u.south;let y=u.east;const N=u.west;y<N&&(y+=a.CesiumMath.TWO_PI);const w=r.length;for(let n=0;n<w;++n){const u=r[n],w=i[u],S=s[u];A.longitude=a.CesiumMath.lerp(N,y,S.x)+m,A.latitude=a.CesiumMath.lerp(f,p,S.y)+T,A.height=w-l;const x=h.cartographicToCartesian(A,M);if(E){const e=2*u;C.x=d[e],C.y=d[e+1]}let b,W;o.hasWebMercatorT&&(b=(c.WebMercatorProjection.geodeticLatitudeToMercatorAngle(A.latitude)-I)*g),o.hasGeodeticSurfaceNormals&&(W=h.geodeticSurfaceNormal(x)),t=o.encode(e,t,x,S,A.height,C,b,W)}}function v(e,t){let r;return"function"==typeof e.slice&&(r=e.slice(),"function"!=typeof r.sort&&(r=void 0)),n.defined(r)||(r=Array.prototype.slice.call(e)),r.sort(t),r}return d((function(d,h){const u=d.quantizedVertices,l=u.length/3,I=d.octEncodedNormals,g=d.westIndices.length+d.eastIndices.length+d.southIndices.length+d.northIndices.length,T=d.includeWebMercatorT,E=d.exaggeration,p=d.exaggerationRelativeHeight,f=1!==E,y=t.Rectangle.clone(d.rectangle),N=y.west,P=y.south,D=y.east,k=y.north,F=r.Ellipsoid.clone(d.ellipsoid),H=d.minimumHeight,_=d.maximumHeight,G=d.relativeToCenter,V=s.Transforms.eastNorthUpToFixedFrame(G,F),Y=t.Matrix4.inverseTransformation(V,new t.Matrix4);let O,B;T&&(O=c.WebMercatorProjection.geodeticLatitudeToMercatorAngle(P),B=1/(c.WebMercatorProjection.geodeticLatitudeToMercatorAngle(k)-O));const R=u.subarray(0,l),L=u.subarray(l,2*l),j=u.subarray(2*l,3*l),U=n.defined(I),z=new Array(l),q=new Array(l),Q=new Array(l),K=T?new Array(l):[],X=f?new Array(l):[],Z=S;Z.x=Number.POSITIVE_INFINITY,Z.y=Number.POSITIVE_INFINITY,Z.z=Number.POSITIVE_INFINITY;const J=x;J.x=Number.NEGATIVE_INFINITY,J.y=Number.NEGATIVE_INFINITY,J.z=Number.NEGATIVE_INFINITY;let $=Number.POSITIVE_INFINITY,ee=Number.NEGATIVE_INFINITY,te=Number.POSITIVE_INFINITY,re=Number.NEGATIVE_INFINITY;for(let e=0;e<l;++e){const n=R[e],o=L[e],i=n/w,s=o/w,d=a.CesiumMath.lerp(H,_,j[e]/w);A.longitude=a.CesiumMath.lerp(N,D,i),A.latitude=a.CesiumMath.lerp(P,k,s),A.height=d,$=Math.min(A.longitude,$),ee=Math.max(A.longitude,ee),te=Math.min(A.latitude,te),re=Math.max(A.latitude,re);const h=F.cartographicToCartesian(A);z[e]=new t.Cartesian2(i,s),q[e]=d,Q[e]=h,T&&(K[e]=(c.WebMercatorProjection.geodeticLatitudeToMercatorAngle(A.latitude)-O)*B),f&&(X[e]=F.geodeticSurfaceNormal(h)),t.Matrix4.multiplyByPoint(Y,h,M),r.Cartesian3.minimumByComponent(M,Z,Z),r.Cartesian3.maximumByComponent(M,J,J)}const ne=v(d.westIndices,(function(e,t){return z[e].y-z[t].y})),oe=v(d.eastIndices,(function(e,t){return z[t].y-z[e].y})),ie=v(d.southIndices,(function(e,t){return z[t].x-z[e].x})),ae=v(d.northIndices,(function(e,t){return z[e].x-z[t].x}));let se;if(H<0){se=new o.EllipsoidalOccluder(F).computeHorizonCullingPointPossiblyUnderEllipsoid(G,Q,H)}let ce=H;ce=Math.min(ce,b(d.westIndices,d.westSkirtHeight,q,z,y,F,Y,Z,J)),ce=Math.min(ce,b(d.southIndices,d.southSkirtHeight,q,z,y,F,Y,Z,J)),ce=Math.min(ce,b(d.eastIndices,d.eastSkirtHeight,q,z,y,F,Y,Z,J)),ce=Math.min(ce,b(d.northIndices,d.northSkirtHeight,q,z,y,F,Y,Z,J));const de=new e.AxisAlignedBoundingBox(Z,J,G),he=new o.TerrainEncoding(G,de,ce,_,V,U,T,f,E,p),ue=he.stride,le=new Float32Array(l*ue+g*ue);let Ie=0;for(let e=0;e<l;++e){if(U){const t=2*e;C.x=I[t],C.y=I[t+1]}Ie=he.encode(le,Ie,Q[e],z[e],q[e],C,K[e],X[e])}const ge=Math.max(0,2*(g-4)),me=d.indices.length+3*ge,Te=i.IndexDatatype.createTypedArray(l+g,me);Te.set(d.indices,0);const Ee=1e-4,pe=(ee-$)*Ee,fe=(re-te)*Ee,ye=-pe,Ne=pe,we=fe,Me=-fe;let Se=l*ue;return W(le,Se,ne,he,q,z,I,F,y,d.westSkirtHeight,O,B,ye,0),Se+=d.westIndices.length*ue,W(le,Se,ie,he,q,z,I,F,y,d.southSkirtHeight,O,B,0,Me),Se+=d.southIndices.length*ue,W(le,Se,oe,he,q,z,I,F,y,d.eastSkirtHeight,O,B,Ne,0),Se+=d.eastIndices.length*ue,W(le,Se,ae,he,q,z,I,F,y,d.northSkirtHeight,O,B,0,we),m.addSkirtIndices(ne,ie,oe,ae,l,Te,d.indices.length),h.push(le.buffer,Te.buffer),{vertices:le.buffer,indices:Te.buffer,westIndicesSouthToNorth:ne,southIndicesEastToWest:ie,eastIndicesNorthToSouth:oe,northIndicesWestToEast:ae,vertexStride:ue,center:G,minimumHeight:H,maximumHeight:_,occludeePointInScaledSpace:se,encoding:he,indexCountWithoutSkirts:d.indices.length}}))})); diff --git a/public/static/Cesium/Workers/createWallGeometry.js b/public/static/Cesium/Workers/createWallGeometry.js new file mode 100644 index 0000000..b9823ac --- /dev/null +++ b/public/static/Cesium/Workers/createWallGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Matrix3-b2351961","./Transforms-c842a68c","./ComponentDatatype-ab629b88","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./IndexDatatype-a9b1bc18","./Math-355606c6","./VertexFormat-fbdec922","./WallGeometryLibrary-5c59fcf6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93","./arrayRemoveDuplicates-0d8dde26","./PolylinePipeline-dfaa9e90","./EllipsoidGeodesic-20aaff03","./EllipsoidRhumbLine-1289f7e8","./IntersectionTests-863687a2","./Plane-5931b53e"],(function(e,t,n,i,a,o,r,s,l,m,u,p,c,d,y,g,f,h,C,x){"use strict";const A=new t.Cartesian3,_=new t.Cartesian3,E=new t.Cartesian3,b=new t.Cartesian3,w=new t.Cartesian3,F=new t.Cartesian3,v=new t.Cartesian3;function L(n){const i=(n=e.defaultValue(n,e.defaultValue.EMPTY_OBJECT)).positions,a=n.maximumHeights,o=n.minimumHeights,r=e.defaultValue(n.vertexFormat,l.VertexFormat.DEFAULT),m=e.defaultValue(n.granularity,s.CesiumMath.RADIANS_PER_DEGREE),u=e.defaultValue(n.ellipsoid,t.Ellipsoid.WGS84);this._positions=i,this._minimumHeights=o,this._maximumHeights=a,this._vertexFormat=l.VertexFormat.clone(r),this._granularity=m,this._ellipsoid=t.Ellipsoid.clone(u),this._workerName="createWallGeometry";let p=1+i.length*t.Cartesian3.packedLength+2;e.defined(o)&&(p+=o.length),e.defined(a)&&(p+=a.length),this.packedLength=p+t.Ellipsoid.packedLength+l.VertexFormat.packedLength+1}L.pack=function(n,i,a){let o;a=e.defaultValue(a,0);const r=n._positions;let s=r.length;for(i[a++]=s,o=0;o<s;++o,a+=t.Cartesian3.packedLength)t.Cartesian3.pack(r[o],i,a);const m=n._minimumHeights;if(s=e.defined(m)?m.length:0,i[a++]=s,e.defined(m))for(o=0;o<s;++o)i[a++]=m[o];const u=n._maximumHeights;if(s=e.defined(u)?u.length:0,i[a++]=s,e.defined(u))for(o=0;o<s;++o)i[a++]=u[o];return t.Ellipsoid.pack(n._ellipsoid,i,a),a+=t.Ellipsoid.packedLength,l.VertexFormat.pack(n._vertexFormat,i,a),i[a+=l.VertexFormat.packedLength]=n._granularity,i};const V=t.Ellipsoid.clone(t.Ellipsoid.UNIT_SPHERE),k=new l.VertexFormat,H={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:V,vertexFormat:k,granularity:void 0};return L.unpack=function(n,i,a){let o;i=e.defaultValue(i,0);let r=n[i++];const s=new Array(r);for(o=0;o<r;++o,i+=t.Cartesian3.packedLength)s[o]=t.Cartesian3.unpack(n,i);let m,u;if(r=n[i++],r>0)for(m=new Array(r),o=0;o<r;++o)m[o]=n[i++];if(r=n[i++],r>0)for(u=new Array(r),o=0;o<r;++o)u[o]=n[i++];const p=t.Ellipsoid.unpack(n,i,V);i+=t.Ellipsoid.packedLength;const c=l.VertexFormat.unpack(n,i,k),d=n[i+=l.VertexFormat.packedLength];return e.defined(a)?(a._positions=s,a._minimumHeights=m,a._maximumHeights=u,a._ellipsoid=t.Ellipsoid.clone(p,a._ellipsoid),a._vertexFormat=l.VertexFormat.clone(c,a._vertexFormat),a._granularity=d,a):(H.positions=s,H.minimumHeights=m,H.maximumHeights=u,H.granularity=d,new L(H))},L.fromConstantHeights=function(t){const n=(t=e.defaultValue(t,e.defaultValue.EMPTY_OBJECT)).positions;let i,a;const o=t.minimumHeight,r=t.maximumHeight,s=e.defined(o),l=e.defined(r);if(s||l){const e=n.length;i=s?new Array(e):void 0,a=l?new Array(e):void 0;for(let t=0;t<e;++t)s&&(i[t]=o),l&&(a[t]=r)}return new L({positions:n,maximumHeights:a,minimumHeights:i,ellipsoid:t.ellipsoid,vertexFormat:t.vertexFormat})},L.createGeometry=function(l){const u=l._positions,p=l._minimumHeights,c=l._maximumHeights,d=l._vertexFormat,y=l._granularity,g=l._ellipsoid,f=m.WallGeometryLibrary.computePositions(g,u,c,p,y,!0);if(!e.defined(f))return;const h=f.bottomPositions,C=f.topPositions,x=f.numCorners;let L=C.length,V=2*L;const k=d.position?new Float64Array(V):void 0,H=d.normal?new Float32Array(V):void 0,D=d.tangent?new Float32Array(V):void 0,G=d.bitangent?new Float32Array(V):void 0,P=d.st?new Float32Array(V/3*2):void 0;let T,z=0,O=0,R=0,S=0,I=0,M=v,N=F,W=w,B=!0;L/=3;let U=0;const q=1/(L-x-1);for(T=0;T<L;++T){const e=3*T,n=t.Cartesian3.fromArray(C,e,A),i=t.Cartesian3.fromArray(h,e,_);if(d.position&&(k[z++]=i.x,k[z++]=i.y,k[z++]=i.z,k[z++]=n.x,k[z++]=n.y,k[z++]=n.z),d.st&&(P[I++]=U,P[I++]=0,P[I++]=U,P[I++]=1),d.normal||d.tangent||d.bitangent){let i=t.Cartesian3.clone(t.Cartesian3.ZERO,b);const a=t.Cartesian3.subtract(n,g.geodeticSurfaceNormal(n,_),_);if(T+1<L&&(i=t.Cartesian3.fromArray(C,e+3,b)),B){const e=t.Cartesian3.subtract(i,n,E),o=t.Cartesian3.subtract(a,n,A);M=t.Cartesian3.normalize(t.Cartesian3.cross(o,e,M),M),B=!1}t.Cartesian3.equalsEpsilon(n,i,s.CesiumMath.EPSILON10)?B=!0:(U+=q,d.tangent&&(N=t.Cartesian3.normalize(t.Cartesian3.subtract(i,n,N),N)),d.bitangent&&(W=t.Cartesian3.normalize(t.Cartesian3.cross(M,N,W),W))),d.normal&&(H[O++]=M.x,H[O++]=M.y,H[O++]=M.z,H[O++]=M.x,H[O++]=M.y,H[O++]=M.z),d.tangent&&(D[S++]=N.x,D[S++]=N.y,D[S++]=N.z,D[S++]=N.x,D[S++]=N.y,D[S++]=N.z),d.bitangent&&(G[R++]=W.x,G[R++]=W.y,G[R++]=W.z,G[R++]=W.x,G[R++]=W.y,G[R++]=W.z)}}const J=new o.GeometryAttributes;d.position&&(J.position=new a.GeometryAttribute({componentDatatype:i.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:k})),d.normal&&(J.normal=new a.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:H})),d.tangent&&(J.tangent=new a.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:D})),d.bitangent&&(J.bitangent=new a.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:G})),d.st&&(J.st=new a.GeometryAttribute({componentDatatype:i.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:P}));const Y=V/3;V-=6*(x+1);const Z=r.IndexDatatype.createTypedArray(Y,V);let j=0;for(T=0;T<Y-2;T+=2){const e=T,n=T+2,i=t.Cartesian3.fromArray(k,3*e,A),a=t.Cartesian3.fromArray(k,3*n,_);if(t.Cartesian3.equalsEpsilon(i,a,s.CesiumMath.EPSILON10))continue;const o=T+1,r=T+3;Z[j++]=o,Z[j++]=e,Z[j++]=r,Z[j++]=r,Z[j++]=e,Z[j++]=n}return new a.Geometry({attributes:J,indices:Z,primitiveType:a.PrimitiveType.TRIANGLES,boundingSphere:new n.BoundingSphere.fromVertices(k)})},function(n,i){return e.defined(i)&&(n=L.unpack(n,i)),n._ellipsoid=t.Ellipsoid.clone(n._ellipsoid),L.createGeometry(n)}})); diff --git a/public/static/Cesium/Workers/createWallOutlineGeometry.js b/public/static/Cesium/Workers/createWallOutlineGeometry.js new file mode 100644 index 0000000..b0d759b --- /dev/null +++ b/public/static/Cesium/Workers/createWallOutlineGeometry.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./Matrix3-b2351961","./Transforms-c842a68c","./ComponentDatatype-ab629b88","./GeometryAttribute-0e790d82","./GeometryAttributes-1e4ddcd2","./IndexDatatype-a9b1bc18","./Math-355606c6","./WallGeometryLibrary-5c59fcf6","./Matrix2-7a8e9daf","./RuntimeError-9b4ce3fb","./combine-0c102d93","./WebGLConstants-7f557f93","./arrayRemoveDuplicates-0d8dde26","./PolylinePipeline-dfaa9e90","./EllipsoidGeodesic-20aaff03","./EllipsoidRhumbLine-1289f7e8","./IntersectionTests-863687a2","./Plane-5931b53e"],(function(e,i,t,n,o,a,s,r,l,m,u,d,p,c,f,h,g,y,E){"use strict";const _=new i.Cartesian3,C=new i.Cartesian3;function H(t){const n=(t=e.defaultValue(t,e.defaultValue.EMPTY_OBJECT)).positions,o=t.maximumHeights,a=t.minimumHeights,s=e.defaultValue(t.granularity,r.CesiumMath.RADIANS_PER_DEGREE),l=e.defaultValue(t.ellipsoid,i.Ellipsoid.WGS84);this._positions=n,this._minimumHeights=a,this._maximumHeights=o,this._granularity=s,this._ellipsoid=i.Ellipsoid.clone(l),this._workerName="createWallOutlineGeometry";let m=1+n.length*i.Cartesian3.packedLength+2;e.defined(a)&&(m+=a.length),e.defined(o)&&(m+=o.length),this.packedLength=m+i.Ellipsoid.packedLength+1}H.pack=function(t,n,o){let a;o=e.defaultValue(o,0);const s=t._positions;let r=s.length;for(n[o++]=r,a=0;a<r;++a,o+=i.Cartesian3.packedLength)i.Cartesian3.pack(s[a],n,o);const l=t._minimumHeights;if(r=e.defined(l)?l.length:0,n[o++]=r,e.defined(l))for(a=0;a<r;++a)n[o++]=l[a];const m=t._maximumHeights;if(r=e.defined(m)?m.length:0,n[o++]=r,e.defined(m))for(a=0;a<r;++a)n[o++]=m[a];return i.Ellipsoid.pack(t._ellipsoid,n,o),n[o+=i.Ellipsoid.packedLength]=t._granularity,n};const A=i.Ellipsoid.clone(i.Ellipsoid.UNIT_SPHERE),k={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:A,granularity:void 0};return H.unpack=function(t,n,o){let a;n=e.defaultValue(n,0);let s=t[n++];const r=new Array(s);for(a=0;a<s;++a,n+=i.Cartesian3.packedLength)r[a]=i.Cartesian3.unpack(t,n);let l,m;if(s=t[n++],s>0)for(l=new Array(s),a=0;a<s;++a)l[a]=t[n++];if(s=t[n++],s>0)for(m=new Array(s),a=0;a<s;++a)m[a]=t[n++];const u=i.Ellipsoid.unpack(t,n,A),d=t[n+=i.Ellipsoid.packedLength];return e.defined(o)?(o._positions=r,o._minimumHeights=l,o._maximumHeights=m,o._ellipsoid=i.Ellipsoid.clone(u,o._ellipsoid),o._granularity=d,o):(k.positions=r,k.minimumHeights=l,k.maximumHeights=m,k.granularity=d,new H(k))},H.fromConstantHeights=function(i){const t=(i=e.defaultValue(i,e.defaultValue.EMPTY_OBJECT)).positions;let n,o;const a=i.minimumHeight,s=i.maximumHeight,r=e.defined(a),l=e.defined(s);if(r||l){const e=t.length;n=r?new Array(e):void 0,o=l?new Array(e):void 0;for(let i=0;i<e;++i)r&&(n[i]=a),l&&(o[i]=s)}return new H({positions:t,maximumHeights:o,minimumHeights:n,ellipsoid:i.ellipsoid})},H.createGeometry=function(m){const u=m._positions,d=m._minimumHeights,p=m._maximumHeights,c=m._granularity,f=m._ellipsoid,h=l.WallGeometryLibrary.computePositions(f,u,p,d,c,!1);if(!e.defined(h))return;const g=h.bottomPositions,y=h.topPositions;let E=y.length,H=2*E;const A=new Float64Array(H);let k,w=0;for(E/=3,k=0;k<E;++k){const e=3*k,t=i.Cartesian3.fromArray(y,e,_),n=i.Cartesian3.fromArray(g,e,C);A[w++]=n.x,A[w++]=n.y,A[w++]=n.z,A[w++]=t.x,A[w++]=t.y,A[w++]=t.z}const x=new a.GeometryAttributes({position:new o.GeometryAttribute({componentDatatype:n.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:A})}),b=H/3;H=2*b-4+b;const G=s.IndexDatatype.createTypedArray(b,H);let L=0;for(k=0;k<b-2;k+=2){const e=k,t=k+2,n=i.Cartesian3.fromArray(A,3*e,_),o=i.Cartesian3.fromArray(A,3*t,C);if(i.Cartesian3.equalsEpsilon(n,o,r.CesiumMath.EPSILON10))continue;const a=k+1,s=k+3;G[L++]=a,G[L++]=e,G[L++]=a,G[L++]=s,G[L++]=e,G[L++]=t}return G[L++]=b-2,G[L++]=b-1,new o.Geometry({attributes:x,indices:G,primitiveType:o.PrimitiveType.LINES,boundingSphere:new t.BoundingSphere.fromVertices(A)})},function(t,n){return e.defined(n)&&(t=H.unpack(t,n)),t._ellipsoid=i.Ellipsoid.clone(t._ellipsoid),H.createGeometry(t)}})); diff --git a/public/static/Cesium/Workers/decodeDraco.js b/public/static/Cesium/Workers/decodeDraco.js new file mode 100644 index 0000000..6e7b8f1 --- /dev/null +++ b/public/static/Cesium/Workers/decodeDraco.js @@ -0,0 +1 @@ +define(["./ComponentDatatype-ab629b88","./defaultValue-f6d5e6da","./IndexDatatype-a9b1bc18","./RuntimeError-9b4ce3fb","./createTaskProcessorWorker","./WebGLConstants-7f557f93","./Math-355606c6"],(function(t,e,r,n,o,a,i){"use strict";let s;function u(t,e){const n=t.num_points(),o=t.num_faces(),a=new s.DracoInt32Array,i=3*o,u=r.IndexDatatype.createTypedArray(n,i);let c=0;for(let r=0;r<o;++r)e.GetFaceFromMesh(t,r,a),u[c+0]=a.GetValue(0),u[c+1]=a.GetValue(1),u[c+2]=a.GetValue(2),c+=3;return s.destroy(a),{typedArray:u,numberOfIndices:i}}function c(r,n,o){const a=r.num_points(),i=o.num_components();let u,c=new s.AttributeQuantizationTransform;if(c.InitFromAttribute(o)){const t=new Array(i);for(let e=0;e<i;++e)t[e]=c.min_value(e);u={quantizationBits:c.quantization_bits(),minValues:t,range:c.range(),octEncoded:!1}}s.destroy(c),c=new s.AttributeOctahedronTransform,c.InitFromAttribute(o)&&(u={quantizationBits:c.quantization_bits(),octEncoded:!0}),s.destroy(c);const d=a*i;let y;y=e.defined(u)?function(t,e,r,n,o){let a,i;n.quantizationBits<=8?(i=new s.DracoUInt8Array,a=new Uint8Array(o),e.GetAttributeUInt8ForAllPoints(t,r,i)):n.quantizationBits<=16?(i=new s.DracoUInt16Array,a=new Uint16Array(o),e.GetAttributeUInt16ForAllPoints(t,r,i)):(i=new s.DracoFloat32Array,a=new Float32Array(o),e.GetAttributeFloatForAllPoints(t,r,i));for(let t=0;t<o;++t)a[t]=i.GetValue(t);return s.destroy(i),a}(r,n,o,u,d):function(t,e,r,n){let o,a;switch(r.data_type()){case 1:case 11:a=new s.DracoInt8Array,o=new Int8Array(n),e.GetAttributeInt8ForAllPoints(t,r,a);break;case 2:a=new s.DracoUInt8Array,o=new Uint8Array(n),e.GetAttributeUInt8ForAllPoints(t,r,a);break;case 3:a=new s.DracoInt16Array,o=new Int16Array(n),e.GetAttributeInt16ForAllPoints(t,r,a);break;case 4:a=new s.DracoUInt16Array,o=new Uint16Array(n),e.GetAttributeUInt16ForAllPoints(t,r,a);break;case 5:case 7:a=new s.DracoInt32Array,o=new Int32Array(n),e.GetAttributeInt32ForAllPoints(t,r,a);break;case 6:case 8:a=new s.DracoUInt32Array,o=new Uint32Array(n),e.GetAttributeUInt32ForAllPoints(t,r,a);break;case 9:case 10:a=new s.DracoFloat32Array,o=new Float32Array(n),e.GetAttributeFloatForAllPoints(t,r,a)}for(let t=0;t<n;++t)o[t]=a.GetValue(t);return s.destroy(a),o}(r,n,o,d);const f=t.ComponentDatatype.fromTypedArray(y);return{array:y,data:{componentsPerAttribute:i,componentDatatype:f,byteOffset:o.byte_offset(),byteStride:t.ComponentDatatype.getSizeInBytes(f)*i,normalized:o.normalized(),quantization:u}}}function d(t){return e.defined(t.bufferView)?function(t){const e=new s.Decoder,r=["POSITION","NORMAL","COLOR","TEX_COORD"];if(t.dequantizeInShader)for(let t=0;t<r.length;++t)e.SkipAttributeTransform(s[r[t]]);const o=t.bufferView,a=new s.DecoderBuffer;if(a.Init(t.array,o.byteLength),e.GetEncodedGeometryType(a)!==s.TRIANGULAR_MESH)throw new n.RuntimeError("Unsupported draco mesh geometry type.");const i=new s.Mesh,d=e.DecodeBufferToMesh(a,i);if(!d.ok()||0===i.ptr)throw new n.RuntimeError(`Error decoding draco mesh geometry: ${d.error_msg()}`);s.destroy(a);const y={},f=t.compressedAttributes;for(const t in f)if(f.hasOwnProperty(t)){const r=f[t],n=e.GetAttributeByUniqueId(i,r);y[t]=c(i,e,n)}const A={indexArray:u(i,e),attributeData:y};return s.destroy(i),s.destroy(e),A}(t):function(t){const e=new s.Decoder;t.dequantizeInShader&&(e.SkipAttributeTransform(s.POSITION),e.SkipAttributeTransform(s.NORMAL));const r=new s.DecoderBuffer;if(r.Init(t.buffer,t.buffer.length),e.GetEncodedGeometryType(r)!==s.POINT_CLOUD)throw new n.RuntimeError("Draco geometry type must be POINT_CLOUD.");const o=new s.PointCloud,a=e.DecodeBufferToPointCloud(r,o);if(!a.ok()||0===o.ptr)throw new n.RuntimeError(`Error decoding draco point cloud: ${a.error_msg()}`);s.destroy(r);const i={},u=t.properties;for(const t in u)if(u.hasOwnProperty(t)){let r;if("POSITION"===t||"NORMAL"===t){const n=e.GetAttributeId(o,s[t]);r=e.GetAttribute(o,n)}else{const n=u[t];r=e.GetAttributeByUniqueId(o,n)}i[t]=c(o,e,r)}return s.destroy(o),s.destroy(e),i}(t)}function y(t){s=t,self.onmessage=o(d),self.postMessage(!0)}return function(t){const r=t.data.webAssemblyConfig;if(e.defined(r))return require([r.modulePath],(function(t){e.defined(r.wasmBinaryFile)?(e.defined(t)||(t=self.DracoDecoderModule),t(r).then((function(t){y(t)}))):y(t())}))}})); diff --git a/public/static/Cesium/Workers/decodeGoogleEarthEnterprisePacket.js b/public/static/Cesium/Workers/decodeGoogleEarthEnterprisePacket.js new file mode 100644 index 0000000..9bcd9b2 --- /dev/null +++ b/public/static/Cesium/Workers/decodeGoogleEarthEnterprisePacket.js @@ -0,0 +1 @@ +define(["./RuntimeError-9b4ce3fb","./defaultValue-f6d5e6da","./createTaskProcessorWorker"],(function(e,t,n){"use strict";const i=1953029805,r=2917034100;function a(t,n){if(a.passThroughDataForTesting)return n;const o=t.byteLength;if(0===o||o%4!=0)throw new e.RuntimeError("The length of key must be greater than 0 and a multiple of 4.");const s=new DataView(n),l=s.getUint32(0,!0);if(l===i||l===r)return n;const c=new DataView(t);let d=0;const f=n.byteLength,h=f-f%8,u=o;let w,b=8;for(;d<h;)for(b=(b+8)%24,w=b;d<h&&w<u;)s.setUint32(d,s.getUint32(d,!0)^c.getUint32(w,!0),!0),s.setUint32(d+4,s.getUint32(d+4,!0)^c.getUint32(w+4,!0),!0),d+=8,w+=24;if(d<f)for(w>=u&&(b=(b+8)%24,w=b);d<f;)s.setUint8(d,s.getUint8(d)^c.getUint8(w)),d++,w++}function o(e,t){return 0!=(e&t)}a.passThroughDataForTesting=!1;const s=[1,2,4,8];function l(e,t,n,i,r,a){this._bits=e,this.cnodeVersion=t,this.imageryVersion=n,this.terrainVersion=i,this.imageryProvider=r,this.terrainProvider=a,this.ancestorHasTerrain=!1,this.terrainState=void 0}l.clone=function(e,n){return t.defined(n)?(n._bits=e._bits,n.cnodeVersion=e.cnodeVersion,n.imageryVersion=e.imageryVersion,n.terrainVersion=e.terrainVersion,n.imageryProvider=e.imageryProvider,n.terrainProvider=e.terrainProvider):n=new l(e._bits,e.cnodeVersion,e.imageryVersion,e.terrainVersion,e.imageryProvider,e.terrainProvider),n.ancestorHasTerrain=e.ancestorHasTerrain,n.terrainState=e.terrainState,n},l.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()},l.prototype.hasSubtree=function(){return o(this._bits,16)},l.prototype.hasImagery=function(){return o(this._bits,64)},l.prototype.hasTerrain=function(){return o(this._bits,128)},l.prototype.hasChildren=function(){return o(this._bits,15)},l.prototype.hasChild=function(e){return o(this._bits,s[e])},l.prototype.getChildBitmask=function(){return 15&this._bits};var c={},d={};var f=(e,t,n,i)=>{let r=65535&e|0,a=e>>>16&65535|0,o=0;for(;0!==n;){o=n>2e3?2e3:n,n-=o;do{r=r+t[i++]|0,a=a+r|0}while(--o);r%=65521,a%=65521}return r|a<<16|0};const h=new Uint32Array((()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var i=0;i<8;i++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t})());var u=(e,t,n,i)=>{const r=h,a=i+n;e^=-1;for(let n=i;n<a;n++)e=e>>>8^r[255&(e^t[n])];return-1^e};const w=16209;const b=15,m=new Uint16Array([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]),g=new Uint8Array([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]),k=new Uint16Array([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]),_=new Uint8Array([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]);var p={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,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_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,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const y=f,v=u,E=function(e,t){let n,i,r,a,o,s,l,c,d,f,h,u,b,m,g,k,_,p,y,v,E,x,R,A;const T=e.state;n=e.next_in,R=e.input,i=n+(e.avail_in-5),r=e.next_out,A=e.output,a=r-(t-e.avail_out),o=r+(e.avail_out-257),s=T.dmax,l=T.wsize,c=T.whave,d=T.wnext,f=T.window,h=T.hold,u=T.bits,b=T.lencode,m=T.distcode,g=(1<<T.lenbits)-1,k=(1<<T.distbits)-1;e:do{u<15&&(h+=R[n++]<<u,u+=8,h+=R[n++]<<u,u+=8),_=b[h&g];t:for(;;){if(p=_>>>24,h>>>=p,u-=p,p=_>>>16&255,0===p)A[r++]=65535&_;else{if(!(16&p)){if(0==(64&p)){_=b[(65535&_)+(h&(1<<p)-1)];continue t}if(32&p){T.mode=16191;break e}e.msg="invalid literal/length code",T.mode=w;break e}y=65535&_,p&=15,p&&(u<p&&(h+=R[n++]<<u,u+=8),y+=h&(1<<p)-1,h>>>=p,u-=p),u<15&&(h+=R[n++]<<u,u+=8,h+=R[n++]<<u,u+=8),_=m[h&k];n:for(;;){if(p=_>>>24,h>>>=p,u-=p,p=_>>>16&255,!(16&p)){if(0==(64&p)){_=m[(65535&_)+(h&(1<<p)-1)];continue n}e.msg="invalid distance code",T.mode=w;break e}if(v=65535&_,p&=15,u<p&&(h+=R[n++]<<u,u+=8,u<p&&(h+=R[n++]<<u,u+=8)),v+=h&(1<<p)-1,v>s){e.msg="invalid distance too far back",T.mode=w;break e}if(h>>>=p,u-=p,p=r-a,v>p){if(p=v-p,p>c&&T.sane){e.msg="invalid distance too far back",T.mode=w;break e}if(E=0,x=f,0===d){if(E+=l-p,p<y){y-=p;do{A[r++]=f[E++]}while(--p);E=r-v,x=A}}else if(d<p){if(E+=l+d-p,p-=d,p<y){y-=p;do{A[r++]=f[E++]}while(--p);if(E=0,d<y){p=d,y-=p;do{A[r++]=f[E++]}while(--p);E=r-v,x=A}}}else if(E+=d-p,p<y){y-=p;do{A[r++]=f[E++]}while(--p);E=r-v,x=A}for(;y>2;)A[r++]=x[E++],A[r++]=x[E++],A[r++]=x[E++],y-=3;y&&(A[r++]=x[E++],y>1&&(A[r++]=x[E++]))}else{E=r-v;do{A[r++]=A[E++],A[r++]=A[E++],A[r++]=A[E++],y-=3}while(y>2);y&&(A[r++]=A[E++],y>1&&(A[r++]=A[E++]))}break}}break}}while(n<i&&r<o);y=u>>3,n-=y,u-=y<<3,h&=(1<<u)-1,e.next_in=n,e.next_out=r,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=r<o?o-r+257:257-(r-o),T.hold=h,T.bits=u},x=(e,t,n,i,r,a,o,s)=>{const l=s.bits;let c,d,f,h,u,w,p=0,y=0,v=0,E=0,x=0,R=0,A=0,T=0,U=0,S=0,Z=null;const D=new Uint16Array(16),I=new Uint16Array(16);let O,B,N,C=null;for(p=0;p<=b;p++)D[p]=0;for(y=0;y<i;y++)D[t[n+y]]++;for(x=l,E=b;E>=1&&0===D[E];E--);if(x>E&&(x=E),0===E)return r[a++]=20971520,r[a++]=20971520,s.bits=1,0;for(v=1;v<E&&0===D[v];v++);for(x<v&&(x=v),T=1,p=1;p<=b;p++)if(T<<=1,T-=D[p],T<0)return-1;if(T>0&&(0===e||1!==E))return-1;for(I[1]=0,p=1;p<b;p++)I[p+1]=I[p]+D[p];for(y=0;y<i;y++)0!==t[n+y]&&(o[I[t[n+y]]++]=y);if(0===e?(Z=C=o,w=20):1===e?(Z=m,C=g,w=257):(Z=k,C=_,w=0),S=0,y=0,p=v,u=a,R=x,A=0,f=-1,U=1<<x,h=U-1,1===e&&U>852||2===e&&U>592)return 1;for(;;){O=p-A,o[y]+1<w?(B=0,N=o[y]):o[y]>=w?(B=C[o[y]-w],N=Z[o[y]-w]):(B=96,N=0),c=1<<p-A,d=1<<R,v=d;do{d-=c,r[u+(S>>A)+d]=O<<24|B<<16|N|0}while(0!==d);for(c=1<<p-1;S&c;)c>>=1;if(0!==c?(S&=c-1,S+=c):S=0,y++,0==--D[p]){if(p===E)break;p=t[n+o[y]]}if(p>x&&(S&h)!==f){for(0===A&&(A=x),u+=v,R=p-A,T=1<<R;R+A<E&&(T-=D[R+A],!(T<=0));)R++,T<<=1;if(U+=1<<R,1===e&&U>852||2===e&&U>592)return 1;f=S&h,r[f]=x<<24|R<<16|u-a|0}}return 0!==S&&(r[u+S]=p-A<<24|64<<16|0),s.bits=x,0},{Z_FINISH:R,Z_BLOCK:A,Z_TREES:T,Z_OK:U,Z_STREAM_END:S,Z_NEED_DICT:Z,Z_STREAM_ERROR:D,Z_DATA_ERROR:I,Z_MEM_ERROR:O,Z_BUF_ERROR:B,Z_DEFLATED:N}=p,C=16180,M=16190,L=16191,F=16192,P=16194,z=16199,V=16200,H=16206,j=16209,K=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Y(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const G=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<C||t.mode>16211?1:0},Q=e=>{if(G(e))return D;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=C,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,U},W=e=>{if(G(e))return D;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Q(e)},X=(e,t)=>{let n;if(G(e))return D;const i=e.state;return t<0?(n=0,t=-t):(n=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?D:(null!==i.window&&i.wbits!==t&&(i.window=null),i.wrap=n,i.wbits=t,W(e))},q=(e,t)=>{if(!e)return D;const n=new Y;e.state=n,n.strm=e,n.window=null,n.mode=C;const i=X(e,t);return i!==U&&(e.state=null),i};let J,$,ee=!0;const te=e=>{if(ee){J=new Int32Array(512),$=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(x(1,e.lens,0,288,J,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;x(2,e.lens,0,32,$,0,e.work,{bits:5}),ee=!1}e.lencode=J,e.lenbits=9,e.distcode=$,e.distbits=5},ne=(e,t,n,i)=>{let r;const a=e.state;return null===a.window&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),i>=a.wsize?(a.window.set(t.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>i&&(r=i),a.window.set(t.subarray(n-i,n-i+r),a.wnext),(i-=r)?(a.window.set(t.subarray(n-i,n),0),a.wnext=i,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0};d.inflateReset=W,d.inflateReset2=X,d.inflateResetKeep=Q,d.inflateInit=e=>q(e,15),d.inflateInit2=q,d.inflate=(e,t)=>{let n,i,r,a,o,s,l,c,d,f,h,u,w,b,m,g,k,_,p,Y,Q,W,X=0;const q=new Uint8Array(4);let J,$;const ee=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(G(e)||!e.output||!e.input&&0!==e.avail_in)return D;n=e.state,n.mode===L&&(n.mode=F),o=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,i=e.input,s=e.avail_in,c=n.hold,d=n.bits,f=s,h=l,W=U;e:for(;;)switch(n.mode){case C:if(0===n.wrap){n.mode=F;break}for(;d<16;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}if(2&n.wrap&&35615===c){0===n.wbits&&(n.wbits=15),n.check=0,q[0]=255&c,q[1]=c>>>8&255,n.check=v(n.check,q,2,0),c=0,d=0,n.mode=16181;break}if(n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&c)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=j;break}if((15&c)!==N){e.msg="unknown compression method",n.mode=j;break}if(c>>>=4,d-=4,Q=8+(15&c),0===n.wbits&&(n.wbits=Q),Q>15||Q>n.wbits){e.msg="invalid window size",n.mode=j;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=512&c?16189:L,c=0,d=0;break;case 16181:for(;d<16;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}if(n.flags=c,(255&n.flags)!==N){e.msg="unknown compression method",n.mode=j;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=j;break}n.head&&(n.head.text=c>>8&1),512&n.flags&&4&n.wrap&&(q[0]=255&c,q[1]=c>>>8&255,n.check=v(n.check,q,2,0)),c=0,d=0,n.mode=16182;case 16182:for(;d<32;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}n.head&&(n.head.time=c),512&n.flags&&4&n.wrap&&(q[0]=255&c,q[1]=c>>>8&255,q[2]=c>>>16&255,q[3]=c>>>24&255,n.check=v(n.check,q,4,0)),c=0,d=0,n.mode=16183;case 16183:for(;d<16;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}n.head&&(n.head.xflags=255&c,n.head.os=c>>8),512&n.flags&&4&n.wrap&&(q[0]=255&c,q[1]=c>>>8&255,n.check=v(n.check,q,2,0)),c=0,d=0,n.mode=16184;case 16184:if(1024&n.flags){for(;d<16;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}n.length=c,n.head&&(n.head.extra_len=c),512&n.flags&&4&n.wrap&&(q[0]=255&c,q[1]=c>>>8&255,n.check=v(n.check,q,2,0)),c=0,d=0}else n.head&&(n.head.extra=null);n.mode=16185;case 16185:if(1024&n.flags&&(u=n.length,u>s&&(u=s),u&&(n.head&&(Q=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(i.subarray(a,a+u),Q)),512&n.flags&&4&n.wrap&&(n.check=v(n.check,i,u,a)),s-=u,a+=u,n.length-=u),n.length))break e;n.length=0,n.mode=16186;case 16186:if(2048&n.flags){if(0===s)break e;u=0;do{Q=i[a+u++],n.head&&Q&&n.length<65536&&(n.head.name+=String.fromCharCode(Q))}while(Q&&u<s);if(512&n.flags&&4&n.wrap&&(n.check=v(n.check,i,u,a)),s-=u,a+=u,Q)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=16187;case 16187:if(4096&n.flags){if(0===s)break e;u=0;do{Q=i[a+u++],n.head&&Q&&n.length<65536&&(n.head.comment+=String.fromCharCode(Q))}while(Q&&u<s);if(512&n.flags&&4&n.wrap&&(n.check=v(n.check,i,u,a)),s-=u,a+=u,Q)break e}else n.head&&(n.head.comment=null);n.mode=16188;case 16188:if(512&n.flags){for(;d<16;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}if(4&n.wrap&&c!==(65535&n.check)){e.msg="header crc mismatch",n.mode=j;break}c=0,d=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=L;break;case 16189:for(;d<32;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}e.adler=n.check=K(c),c=0,d=0,n.mode=M;case M:if(0===n.havedict)return e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=d,Z;e.adler=n.check=1,n.mode=L;case L:if(t===A||t===T)break e;case F:if(n.last){c>>>=7&d,d-=7&d,n.mode=H;break}for(;d<3;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}switch(n.last=1&c,c>>>=1,d-=1,3&c){case 0:n.mode=16193;break;case 1:if(te(n),n.mode=z,t===T){c>>>=2,d-=2;break e}break;case 2:n.mode=16196;break;case 3:e.msg="invalid block type",n.mode=j}c>>>=2,d-=2;break;case 16193:for(c>>>=7&d,d-=7&d;d<32;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}if((65535&c)!=(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=j;break}if(n.length=65535&c,c=0,d=0,n.mode=P,t===T)break e;case P:n.mode=16195;case 16195:if(u=n.length,u){if(u>s&&(u=s),u>l&&(u=l),0===u)break e;r.set(i.subarray(a,a+u),o),s-=u,a+=u,l-=u,o+=u,n.length-=u;break}n.mode=L;break;case 16196:for(;d<14;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}if(n.nlen=257+(31&c),c>>>=5,d-=5,n.ndist=1+(31&c),c>>>=5,d-=5,n.ncode=4+(15&c),c>>>=4,d-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=j;break}n.have=0,n.mode=16197;case 16197:for(;n.have<n.ncode;){for(;d<3;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}n.lens[ee[n.have++]]=7&c,c>>>=3,d-=3}for(;n.have<19;)n.lens[ee[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,J={bits:n.lenbits},W=x(0,n.lens,0,19,n.lencode,0,n.work,J),n.lenbits=J.bits,W){e.msg="invalid code lengths set",n.mode=j;break}n.have=0,n.mode=16198;case 16198:for(;n.have<n.nlen+n.ndist;){for(;X=n.lencode[c&(1<<n.lenbits)-1],m=X>>>24,g=X>>>16&255,k=65535&X,!(m<=d);){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}if(k<16)c>>>=m,d-=m,n.lens[n.have++]=k;else{if(16===k){for($=m+2;d<$;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}if(c>>>=m,d-=m,0===n.have){e.msg="invalid bit length repeat",n.mode=j;break}Q=n.lens[n.have-1],u=3+(3&c),c>>>=2,d-=2}else if(17===k){for($=m+3;d<$;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}c>>>=m,d-=m,Q=0,u=3+(7&c),c>>>=3,d-=3}else{for($=m+7;d<$;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}c>>>=m,d-=m,Q=0,u=11+(127&c),c>>>=7,d-=7}if(n.have+u>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=j;break}for(;u--;)n.lens[n.have++]=Q}}if(n.mode===j)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=j;break}if(n.lenbits=9,J={bits:n.lenbits},W=x(1,n.lens,0,n.nlen,n.lencode,0,n.work,J),n.lenbits=J.bits,W){e.msg="invalid literal/lengths set",n.mode=j;break}if(n.distbits=6,n.distcode=n.distdyn,J={bits:n.distbits},W=x(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,J),n.distbits=J.bits,W){e.msg="invalid distances set",n.mode=j;break}if(n.mode=z,t===T)break e;case z:n.mode=V;case V:if(s>=6&&l>=258){e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=d,E(e,h),o=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,i=e.input,s=e.avail_in,c=n.hold,d=n.bits,n.mode===L&&(n.back=-1);break}for(n.back=0;X=n.lencode[c&(1<<n.lenbits)-1],m=X>>>24,g=X>>>16&255,k=65535&X,!(m<=d);){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}if(g&&0==(240&g)){for(_=m,p=g,Y=k;X=n.lencode[Y+((c&(1<<_+p)-1)>>_)],m=X>>>24,g=X>>>16&255,k=65535&X,!(_+m<=d);){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}c>>>=_,d-=_,n.back+=_}if(c>>>=m,d-=m,n.back+=m,n.length=k,0===g){n.mode=16205;break}if(32&g){n.back=-1,n.mode=L;break}if(64&g){e.msg="invalid literal/length code",n.mode=j;break}n.extra=15&g,n.mode=16201;case 16201:if(n.extra){for($=n.extra;d<$;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,d-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=16202;case 16202:for(;X=n.distcode[c&(1<<n.distbits)-1],m=X>>>24,g=X>>>16&255,k=65535&X,!(m<=d);){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}if(0==(240&g)){for(_=m,p=g,Y=k;X=n.distcode[Y+((c&(1<<_+p)-1)>>_)],m=X>>>24,g=X>>>16&255,k=65535&X,!(_+m<=d);){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}c>>>=_,d-=_,n.back+=_}if(c>>>=m,d-=m,n.back+=m,64&g){e.msg="invalid distance code",n.mode=j;break}n.offset=k,n.extra=15&g,n.mode=16203;case 16203:if(n.extra){for($=n.extra;d<$;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,d-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=j;break}n.mode=16204;case 16204:if(0===l)break e;if(u=h-l,n.offset>u){if(u=n.offset-u,u>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=j;break}u>n.wnext?(u-=n.wnext,w=n.wsize-u):w=n.wnext-u,u>n.length&&(u=n.length),b=n.window}else b=r,w=o-n.offset,u=n.length;u>l&&(u=l),l-=u,n.length-=u;do{r[o++]=b[w++]}while(--u);0===n.length&&(n.mode=V);break;case 16205:if(0===l)break e;r[o++]=n.length,l--,n.mode=V;break;case H:if(n.wrap){for(;d<32;){if(0===s)break e;s--,c|=i[a++]<<d,d+=8}if(h-=l,e.total_out+=h,n.total+=h,4&n.wrap&&h&&(e.adler=n.check=n.flags?v(n.check,r,h,o-h):y(n.check,r,h,o-h)),h=l,4&n.wrap&&(n.flags?c:K(c))!==n.check){e.msg="incorrect data check",n.mode=j;break}c=0,d=0}n.mode=16207;case 16207:if(n.wrap&&n.flags){for(;d<32;){if(0===s)break e;s--,c+=i[a++]<<d,d+=8}if(4&n.wrap&&c!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=j;break}c=0,d=0}n.mode=16208;case 16208:W=S;break e;case j:W=I;break e;case 16210:return O;default:return D}return e.next_out=o,e.avail_out=l,e.next_in=a,e.avail_in=s,n.hold=c,n.bits=d,(n.wsize||h!==e.avail_out&&n.mode<j&&(n.mode<H||t!==R))&&ne(e,e.output,e.next_out,h-e.avail_out),f-=e.avail_in,h-=e.avail_out,e.total_in+=f,e.total_out+=h,n.total+=h,4&n.wrap&&h&&(e.adler=n.check=n.flags?v(n.check,r,h,e.next_out-h):y(n.check,r,h,e.next_out-h)),e.data_type=n.bits+(n.last?64:0)+(n.mode===L?128:0)+(n.mode===z||n.mode===P?256:0),(0===f&&0===h||t===R)&&W===U&&(W=B),W},d.inflateEnd=e=>{if(G(e))return D;let t=e.state;return t.window&&(t.window=null),e.state=null,U},d.inflateGetHeader=(e,t)=>{if(G(e))return D;const n=e.state;return 0==(2&n.wrap)?D:(n.head=t,t.done=!1,U)},d.inflateSetDictionary=(e,t)=>{const n=t.length;let i,r,a;return G(e)?D:(i=e.state,0!==i.wrap&&i.mode!==M?D:i.mode===M&&(r=1,r=y(r,t,n,0),r!==i.check)?I:(a=ne(e,t,n,n),a?(i.mode=16210,O):(i.havedict=1,U)))},d.inflateInfo="pako inflate (from Nodeca project)";var ie={};const re=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);ie.assign=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const t in n)re(n,t)&&(e[t]=n[t])}}return e},ie.flattenChunks=e=>{let t=0;for(let n=0,i=e.length;n<i;n++)t+=e[n].length;const n=new Uint8Array(t);for(let t=0,i=0,r=e.length;t<r;t++){let r=e[t];n.set(r,i),i+=r.length}return n};var ae={};let oe=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){oe=!1}const se=new Uint8Array(256);for(let e=0;e<256;e++)se[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;se[254]=se[254]=1,ae.string2buf=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,n,i,r,a,o=e.length,s=0;for(r=0;r<o;r++)n=e.charCodeAt(r),55296==(64512&n)&&r+1<o&&(i=e.charCodeAt(r+1),56320==(64512&i)&&(n=65536+(n-55296<<10)+(i-56320),r++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(s),a=0,r=0;a<s;r++)n=e.charCodeAt(r),55296==(64512&n)&&r+1<o&&(i=e.charCodeAt(r+1),56320==(64512&i)&&(n=65536+(n-55296<<10)+(i-56320),r++)),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|63&n):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|63&n):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|63&n);return t};ae.buf2string=(e,t)=>{const n=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let i,r;const a=new Array(2*n);for(r=0,i=0;i<n;){let t=e[i++];if(t<128){a[r++]=t;continue}let o=se[t];if(o>4)a[r++]=65533,i+=o-1;else{for(t&=2===o?31:3===o?15:7;o>1&&i<n;)t=t<<6|63&e[i++],o--;o>1?a[r++]=65533:t<65536?a[r++]=t:(t-=65536,a[r++]=55296|t>>10&1023,a[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&oe)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let i=0;i<t;i++)n+=String.fromCharCode(e[i]);return n})(a,r)},ae.utf8border=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+se[e[n]]>t?n:t};const le=d,ce=ie,de=ae,fe={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},he=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},ue=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1},we=Object.prototype.toString,{Z_NO_FLUSH:be,Z_FINISH:me,Z_OK:ge,Z_STREAM_END:ke,Z_NEED_DICT:_e,Z_STREAM_ERROR:pe,Z_DATA_ERROR:ye,Z_MEM_ERROR:ve}=p;function Ee(e){this.options=ce.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new he,this.strm.avail_out=0;let n=le.inflateInit2(this.strm,t.windowBits);if(n!==ge)throw new Error(fe[n]);if(this.header=new ue,le.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=de.string2buf(t.dictionary):"[object ArrayBuffer]"===we.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=le.inflateSetDictionary(this.strm,t.dictionary),n!==ge)))throw new Error(fe[n])}function xe(e,t){const n=new Ee(t);if(n.push(e),n.err)throw n.msg||fe[n.err];return n.result}Ee.prototype.push=function(e,t){const n=this.strm,i=this.options.chunkSize,r=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(o=t===~~t?t:!0===t?me:be,"[object ArrayBuffer]"===we.call(e)?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(0===n.avail_out&&(n.output=new Uint8Array(i),n.next_out=0,n.avail_out=i),a=le.inflate(n,o),a===_e&&r&&(a=le.inflateSetDictionary(n,r),a===ge?a=le.inflate(n,o):a===ye&&(a=_e));n.avail_in>0&&a===ke&&n.state.wrap>0&&0!==e[n.next_in];)le.inflateReset(n),a=le.inflate(n,o);switch(a){case pe:case ye:case _e:case ve:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(0===n.avail_out||a===ke))if("string"===this.options.to){let e=de.utf8border(n.output,n.next_out),t=n.next_out-e,r=de.buf2string(n.output,e);n.next_out=t,n.avail_out=i-t,t&&n.output.set(n.output.subarray(e,e+t),0),this.onData(r)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(a!==ge||0!==s){if(a===ke)return a=le.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(0===n.avail_in)break}}return!0},Ee.prototype.onData=function(e){this.chunks.push(e)},Ee.prototype.onEnd=function(e){e===ge&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=ce.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},c.Inflate=Ee,c.inflate=xe,c.inflateRaw=function(e,t){return(t=t||{}).raw=!0,xe(e,t)},c.ungzip=xe,c.constants=p;const Re=Uint16Array.BYTES_PER_ELEMENT,Ae=Int32Array.BYTES_PER_ELEMENT,Te=Uint32Array.BYTES_PER_ELEMENT,Ue={METADATA:0,TERRAIN:1,DBROOT:2};Ue.fromString=function(e){return"Metadata"===e?Ue.METADATA:"Terrain"===e?Ue.TERRAIN:"DbRoot"===e?Ue.DBROOT:void 0};const Se=32301;const Ze=5,De=4;const Ie=1953029805,Oe=2917034100;return n((function(t,n){const i=Ue.fromString(t.type);let r=t.buffer;a(t.key,r);const o=function(t){const n=new DataView(t);let i=0;const r=n.getUint32(i,!0);if(i+=Te,r!==Ie&&r!==Oe)throw new e.RuntimeError("Invalid magic");const a=n.getUint32(i,r===Ie);i+=Te;const o=new Uint8Array(t,i),s=c.inflate(o);if(s.length!==a)throw new e.RuntimeError("Size of packet doesn't match header");return s}(r);r=o.buffer;const s=o.length;switch(i){case Ue.METADATA:return function(t,n,i){const r=new DataView(t);let a=0;const o=r.getUint32(a,!0);if(a+=Te,o!==Se)throw new e.RuntimeError("Invalid magic");const s=r.getUint32(a,!0);if(a+=Te,1!==s)throw new e.RuntimeError("Invalid data type. Must be 1 for QuadTreePacket");const c=r.getUint32(a,!0);if(a+=Te,2!==c)throw new e.RuntimeError("Invalid QuadTreePacket version. Only version 2 is supported.");const d=r.getInt32(a,!0);a+=Ae;const f=r.getInt32(a,!0);if(a+=Ae,32!==f)throw new e.RuntimeError("Invalid instance size.");const h=r.getInt32(a,!0);a+=Ae;const u=r.getInt32(a,!0);a+=Ae;const w=r.getInt32(a,!0);if(a+=Ae,h!==d*f+a)throw new e.RuntimeError("Invalid dataBufferOffset");if(h+u+w!==n)throw new e.RuntimeError("Invalid packet offsets");const b=[];for(let e=0;e<d;++e){const e=r.getUint8(a);++a,++a;const t=r.getUint16(a,!0);a+=Re;const n=r.getUint16(a,!0);a+=Re;const i=r.getUint16(a,!0);a+=Re,a+=Re,a+=Re,a+=Ae,a+=Ae,a+=8;const o=r.getUint8(a++),s=r.getUint8(a++);a+=Re,b.push(new l(e,t,n,i,o,s))}const m=[];let g=0;function k(e,t,n){let i=!1;if(4===n){if(t.hasSubtree())return;i=!0}for(let r=0;r<4;++r){const a=e+r.toString();if(i)m[a]=null;else if(n<4)if(t.hasChild(r)){if(g===d)return void console.log("Incorrect number of instances");const e=b[g++];m[a]=e,k(a,e,n+1)}else m[a]=null}}let _=0;const p=b[g++];""===i?++_:m[i]=p;return k(i,p,_),m}(r,s,t.quadKey);case Ue.TERRAIN:return function(t,n,i){const r=new DataView(t),a=function(t){for(let i=0;i<De;++i){const i=r.getUint32(t,!0);if(t+=Te,(t+=i)>n)throw new e.RuntimeError("Malformed terrain packet found.")}return t};let o=0;const s=[];for(;s.length<Ze;){const e=o;o=a(o);const n=t.slice(e,o);i.push(n),s.push(n)}return s}(r,s,n);case Ue.DBROOT:return n.push(r),{buffer:r}}}))})); diff --git a/public/static/Cesium/Workers/decodeI3S.js b/public/static/Cesium/Workers/decodeI3S.js new file mode 100644 index 0000000..e3b7806 --- /dev/null +++ b/public/static/Cesium/Workers/decodeI3S.js @@ -0,0 +1 @@ +define(["./createTaskProcessorWorker","./defaultValue-f6d5e6da","./WebMercatorProjection-db7467f4","./Matrix3-b2351961","./Math-355606c6"],(function(e,t,n,r,o){"use strict";let i;function a(e,t,n,r){return r[e+t*n]}function s(e,t,n){const r=n.nativeExtent;let o=(e-r.west)/(r.east-r.west)*(n.width-1),i=(t-r.south)/(r.north-r.south)*(n.height-1);const s=Math.floor(o);let u=Math.floor(i);o-=s,i-=u;const c=s<n.width?s+1:s;let f=u<n.height?u+1:u;u=n.height-1-u,f=n.height-1-f;let l=function(e,t,n,r,o,i){return(n*(1-e)+r*e)*(1-t)+(o*(1-e)+i*e)*t}(o,i,a(s,u,n.width,n.buffer),a(c,u,n.width,n.buffer),a(s,f,n.width,n.buffer),a(c,f,n.width,n.buffer));return l=l*n.scale+n.offset,l}function u(e,t,o){for(let i=0;i<o.length;i++){const a=o[i].nativeExtent;let u=new r.Cartesian3;if("WebMercator"===o[i].projectionType){const a=o[i].projection._ellipsoid._radii;u=new n.WebMercatorProjection(new r.Ellipsoid(a.x,a.y,a.z)).project(new r.Cartographic(e,t,0))}else u.x=e,u.y=t;if(u.x>a.west&&u.x<a.east&&u.y>a.south&&u.y<a.north)return s(u.x,u.y,o[i])}return 0}function c(e,n,r,o){const a=new Uint8Array(e,0,5);return a[0]==="D".charCodeAt()&&a[1]==="R".charCodeAt()&&a[2]==="A".charCodeAt()&&a[3]==="C".charCodeAt()&&a[4]==="O".charCodeAt()?function(e){const n=i,r=new n.DecoderBuffer,o=new Uint8Array(e);r.Init(o,o.length);const a=new n.Decoder,s=a.GetEncodedGeometryType(r),u=new n.MetadataQuerier;let c,l;s===n.TRIANGULAR_MESH&&(c=new n.Mesh,l=a.DecodeBufferToMesh(r,c));const d={vertexCount:[0],featureCount:0};if(t.defined(l)&&l.ok()&&0!==c.ptr){const e=c.num_faces(),r=c.num_attributes(),o=c.num_points();d.indices=new Uint32Array(3*e);const i=d.indices;d.vertexCount[0]=o,d.scale_x=1,d.scale_y=1;const s=new n.DracoInt32Array(3);for(let t=0;t<e;++t)a.GetFaceFromMesh(c,t,s),i[3*t]=s.GetValue(0),i[3*t+1]=s.GetValue(1),i[3*t+2]=s.GetValue(2);n.destroy(s);for(let e=0;e<r;++e){const r=a.GetAttribute(c,e),i=f(n,a,c,r,o),s=r.attribute_type();let l="unknown";s===n.POSITION?l="positions":s===n.NORMAL?l="normals":s===n.COLOR?l="colors":s===n.TEX_COORD&&(l="uv0s");const y=a.GetAttributeMetadata(c,e);if(0!==y.ptr){const e=u.NumEntries(y);for(let t=0;t<e;++t){const e=u.GetEntryName(y,t);"i3s-scale_x"===e?d.scale_x=u.GetDoubleEntry(y,"i3s-scale_x"):"i3s-scale_y"===e?d.scale_y=u.GetDoubleEntry(y,"i3s-scale_y"):"i3s-attribute-type"===e&&(l=u.GetStringEntry(y,"i3s-attribute-type"))}}t.defined(d[l])&&console.log("Attribute already exists",l),d[l]=i,"feature-index"===l&&d.featureCount++}n.destroy(c)}return n.destroy(u),n.destroy(a),d}(e):function(e,n,r,o){const i={vertexCount:0},a=new DataView(e);try{let s=0;if(i.vertexCount=a.getUint32(s,1),s+=4,i.featureCount=a.getUint32(s,1),s+=4,t.defined(r))for(let n=0;n<r.attributes.length;n++)t.defined(l[r.attributes[n]])?s=l[r.attributes[n]](i,e,s):console.error("Unknown decoder for",r.attributes[n]);else{let r=n.ordering,a=n.featureAttributeOrder;t.defined(o)&&t.defined(o.geometryData)&&t.defined(o.geometryData[0])&&t.defined(o.geometryData[0].params)&&(r=Object.keys(o.geometryData[0].params.vertexAttributes),a=Object.keys(o.geometryData[0].params.featureAttributes));for(let n=0;n<r.length;n++){const o=l[r[n]];t.defined(o)||console.log(r[n]),s=o(i,e,s)}for(let n=0;n<a.length;n++){const r=l[a[n]];t.defined(r)||console.log(a[n]),s=r(i,e,s)}}}catch(e){console.error(e)}return i.scale_x=1,i.scale_y=1,i}(e,n,r,o)}function f(e,n,r,o,i){const a=o.num_components()*i;let s;const u=[function(){},function(){s=new e.DracoInt8Array(a);n.GetAttributeInt8ForAllPoints(r,o,s)||console.error("Bad stream");const t=new Int8Array(a);for(let e=0;e<a;++e)t[e]=s.GetValue(e);return t},function(){s=new e.DracoInt8Array(a);n.GetAttributeUInt8ForAllPoints(r,o,s)||console.error("Bad stream");const t=new Uint8Array(a);for(let e=0;e<a;++e)t[e]=s.GetValue(e);return t},function(){s=new e.DracoInt16Array(a);n.GetAttributeInt16ForAllPoints(r,o,s)||console.error("Bad stream");const t=new Int16Array(a);for(let e=0;e<a;++e)t[e]=s.GetValue(e);return t},function(){s=new e.DracoInt16Array(a);n.GetAttributeUInt16ForAllPoints(r,o,s)||console.error("Bad stream");const t=new Uint16Array(a);for(let e=0;e<a;++e)t[e]=s.GetValue(e);return t},function(){s=new e.DracoInt32Array(a);n.GetAttributeInt32ForAllPoints(r,o,s)||console.error("Bad stream");const t=new Int32Array(a);for(let e=0;e<a;++e)t[e]=s.GetValue(e);return t},function(){s=new e.DracoInt32Array(a);n.GetAttributeUInt32ForAllPoints(r,o,s)||console.error("Bad stream");const t=new Uint32Array(a);for(let e=0;e<a;++e)t[e]=s.GetValue(e);return t},function(){},function(){},function(){s=new e.DracoFloat32Array(a);n.GetAttributeFloatForAllPoints(r,o,s)||console.error("Bad stream");const t=new Float32Array(a);for(let e=0;e<a;++e)t[e]=s.GetValue(e);return t},function(){},function(){s=new e.DracoUInt8Array(a);n.GetAttributeUInt8ForAllPoints(r,o,s)||console.error("Bad stream");const t=new Uint8Array(a);for(let e=0;e<a;++e)t[e]=s.GetValue(e);return t}],c=u[o.data_type()]();return t.defined(s)&&e.destroy(s),c}const l={position:function(e,t,n){const r=3*e.vertexCount;return e.positions=new Float32Array(t,n,r),n+=4*r},normal:function(e,t,n){const r=3*e.vertexCount;return e.normals=new Float32Array(t,n,r),n+=4*r},uv0:function(e,t,n){const r=2*e.vertexCount;return e.uv0s=new Float32Array(t,n,r),n+=4*r},color:function(e,t,n){const r=4*e.vertexCount;return e.colors=new Uint8Array(t,n,r),n+=r},featureId:function(e,t,n){return n+=8*e.featureCount},id:function(e,t,n){return n+=8*e.featureCount},faceRange:function(e,t,n){const r=2*e.featureCount;return e.faceRange=new Uint32Array(t,n,r),n+=4*r},uvRegion:function(e,t,n){const r=4*e.vertexCount;return e["uv-region"]=new Uint16Array(t,n,r),n+=2*r},region:function(e,t,n){const r=4*e.vertexCount;return e["uv-region"]=new Uint16Array(t,n,r),n+=2*r}};function d(e){const n=c(e.binaryData,e.schema,e.bufferInfo,e.featureData);t.defined(e.geoidDataList)&&e.geoidDataList.length>0&&function(e,t,n,r,i,a,s){if(s)return;const c=u(i.longitude,i.latitude,a);for(let s=0;s<e;++s){const e=u(i.longitude+o.CesiumMath.toRadians(n*t[3*s]),i.latitude+o.CesiumMath.toRadians(r*t[3*s+1]),a);t[3*s+2]+=e-c}}(n.vertexCount,n.positions,n.scale_x,n.scale_y,e.cartographicCenter,e.geoidDataList,!1),function(e,n,i,a,s,u,c,f,l){if(0===e||!t.defined(n)||0===n.length)return;const d=new r.Ellipsoid(Math.sqrt(c.x),Math.sqrt(c.y),Math.sqrt(c.z));for(let c=0;c<e;++c){const e=3*c,y=e+1,h=e+2,b=new r.Cartographic;b.longitude=a.longitude+o.CesiumMath.toRadians(f*n[e]),b.latitude=a.latitude+o.CesiumMath.toRadians(l*n[y]),b.height=a.height+n[h];const p={};d.cartographicToCartesian(b,p),p.x-=s.x,p.y-=s.y,p.z-=s.z;const g={};if(r.Matrix3.multiplyByVector(u,p,g),n[e]=g.x,n[y]=g.y,n[h]=g.z,t.defined(i)){const t=new r.Cartesian3(i[e],i[y],i[h]),n={};r.Matrix3.multiplyByVector(u,t,n),i[e]=n.x,i[y]=n.y,i[h]=n.z}}}(n.vertexCount,n.positions,n.normals,e.cartographicCenter,e.cartesianCenter,e.parentRotation,e.ellipsoidRadiiSquare,n.scale_x,n.scale_y),t.defined(n.uv0s)&&t.defined(n["uv-region"])&&function(e,t,n){for(let r=0;r<e;++r){const e=n[4*r]/65535,o=n[4*r+1]/65535,i=(n[4*r+2]-n[4*r])/65535,a=(n[4*r+3]-n[4*r+1])/65535;t[2*r]*=i,t[2*r]+=e,t[2*r+1]*=a,t[2*r+1]+=o}}(n.vertexCount,n.uv0s,n["uv-region"]);const i=function(e,n,r,o,i,a){if(0===e||!t.defined(r)||0===r.length)return{buffers:[],bufferViews:[],accessors:[],meshes:[],nodes:[],nodesInScene:[]};const s=[],u=[],c=[],f=[],l=[],d=[];t.defined(n)&&(e=n.length);const y=new Uint32Array(e);if(t.defined(n))for(let t=0;t<e;++t)y[t]=n[t];else for(let t=0;t<e;++t)y[t]=t;const h=new Blob([y],{type:"application/binary"}),b=URL.createObjectURL(h),p=e,g=r.subarray(0,3*p),m=new Blob([g],{type:"application/binary"}),A=URL.createObjectURL(m);let w=Number.POSITIVE_INFINITY,I=Number.NEGATIVE_INFINITY,C=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY,L=Number.POSITIVE_INFINITY,R=Number.NEGATIVE_INFINITY;for(let e=0;e<g.length/3;e++)w=Math.min(w,g[3*e+0]),I=Math.max(I,g[3*e+0]),C=Math.min(C,g[3*e+1]),x=Math.max(x,g[3*e+1]),L=Math.min(L,g[3*e+2]),R=Math.max(R,g[3*e+2]);const O=o?o.subarray(0,3*p):void 0;let _;if(t.defined(O)){const e=new Blob([O],{type:"application/binary"});_=URL.createObjectURL(e)}const v=i?i.subarray(0,2*p):void 0;let G;if(t.defined(v)){const e=new Blob([v],{type:"application/binary"});G=URL.createObjectURL(e)}const M=t.defined(a)?a.subarray(0,4*p):void 0;let U;if(t.defined(M)){const e=new Blob([M],{type:"application/binary"});U=URL.createObjectURL(e)}let V=0,D=0,N=0,T=0,E=0;const F={POSITION:0};return s.push({uri:A,byteLength:g.byteLength}),u.push({buffer:0,byteOffset:0,byteLength:g.byteLength,target:34962}),c.push({bufferView:0,byteOffset:0,componentType:5126,count:e,type:"VEC3",max:[w,C,L],min:[I,x,R]}),t.defined(_)&&(++E,V=E,F.NORMAL=V,s.push({uri:_,byteLength:O.byteLength}),u.push({buffer:V,byteOffset:0,byteLength:O.byteLength,target:34962}),c.push({bufferView:V,byteOffset:0,componentType:5126,count:e,type:"VEC3"})),t.defined(G)&&(++E,D=E,F.TEXCOORD_0=D,s.push({uri:G,byteLength:v.byteLength}),u.push({buffer:D,byteOffset:0,byteLength:v.byteLength,target:34962}),c.push({bufferView:D,byteOffset:0,componentType:5126,count:e,type:"VEC2"})),t.defined(U)&&(++E,N=E,F.COLOR_0=N,s.push({uri:U,byteLength:M.byteLength}),u.push({buffer:N,byteOffset:0,byteLength:M.byteLength,target:34962}),c.push({bufferView:N,byteOffset:0,componentType:5121,normalized:!0,count:e,type:"VEC4"})),++E,T=E,s.push({uri:b,byteLength:y.byteLength}),u.push({buffer:T,byteOffset:0,byteLength:y.byteLength,target:34963}),c.push({bufferView:T,byteOffset:0,componentType:5125,count:e,type:"SCALAR"}),f.push({primitives:[{attributes:F,indices:T,material:0}]}),d.push(0),l.push({mesh:0}),{buffers:s,bufferViews:u,accessors:c,meshes:f,nodes:l,nodesInScene:d}}(n.vertexCount,n.indices,n.positions,n.normals,n.uv0s,n.colors),a={};if(t.defined(n["feature-index"]))a.positions=n.positions,a.indices=n.indices,a.featureIndex=n["feature-index"],a.cartesianCenter=e.cartesianCenter,a.parentRotation=e.parentRotation;else if(t.defined(n.faceRange)){a.positions=n.positions,a.indices=n.indices,a.sourceURL=e.url,a.cartesianCenter=e.cartesianCenter,a.parentRotation=e.parentRotation,a.featureIndex=new Array(n.positions.length);for(let e=0;e<n.faceRange.length-1;e+=2){const t=e/2,r=n.faceRange[e],o=n.faceRange[e+1];for(let e=r;e<=o;e++)a.featureIndex[3*e]=t,a.featureIndex[3*e+1]=t,a.featureIndex[3*e+2]=t}}i._customAttributes=a;return{meshData:i}}function y(t){i=t,self.onmessage=e(d),self.postMessage(!0)}return function(e){const n=e.data.webAssemblyConfig;if(t.defined(n))return require([n.modulePath],(function(e){t.defined(n.wasmBinaryFile)?(t.defined(e)||(e=self.DracoDecoderModule),e(n).then((function(e){y(e)}))):y(e())}))}})); diff --git a/public/static/Cesium/Workers/defaultValue-f6d5e6da.js b/public/static/Cesium/Workers/defaultValue-f6d5e6da.js new file mode 100644 index 0000000..81a614c --- /dev/null +++ b/public/static/Cesium/Workers/defaultValue-f6d5e6da.js @@ -0,0 +1 @@ +define(["exports"],(function(e){"use strict";function n(e,n){return null!=e?e:n}n.EMPTY_OBJECT=Object.freeze({}),e.defaultValue=n,e.defined=function(e){return null!=e}})); diff --git a/public/static/Cesium/Workers/package.js b/public/static/Cesium/Workers/package.js new file mode 100644 index 0000000..689d973 --- /dev/null +++ b/public/static/Cesium/Workers/package.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.105 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +module.exports={type:"commonjs"}; diff --git a/public/static/Cesium/Workers/transcodeKTX2.js b/public/static/Cesium/Workers/transcodeKTX2.js new file mode 100644 index 0000000..9e6949b --- /dev/null +++ b/public/static/Cesium/Workers/transcodeKTX2.js @@ -0,0 +1 @@ +define(["./defaultValue-f6d5e6da","./WebGLConstants-7f557f93","./RuntimeError-9b4ce3fb","./createTaskProcessorWorker"],(function(_,R,t,e){"use strict";const A={UNSIGNED_BYTE:R.WebGLConstants.UNSIGNED_BYTE,UNSIGNED_SHORT:R.WebGLConstants.UNSIGNED_SHORT,UNSIGNED_INT:R.WebGLConstants.UNSIGNED_INT,FLOAT:R.WebGLConstants.FLOAT,HALF_FLOAT:R.WebGLConstants.HALF_FLOAT_OES,UNSIGNED_INT_24_8:R.WebGLConstants.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:R.WebGLConstants.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:R.WebGLConstants.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:R.WebGLConstants.UNSIGNED_SHORT_5_6_5,toWebGLConstant:function(_,t){switch(_){case A.UNSIGNED_BYTE:return R.WebGLConstants.UNSIGNED_BYTE;case A.UNSIGNED_SHORT:return R.WebGLConstants.UNSIGNED_SHORT;case A.UNSIGNED_INT:return R.WebGLConstants.UNSIGNED_INT;case A.FLOAT:return R.WebGLConstants.FLOAT;case A.HALF_FLOAT:return t.webgl2?R.WebGLConstants.HALF_FLOAT:R.WebGLConstants.HALF_FLOAT_OES;case A.UNSIGNED_INT_24_8:return R.WebGLConstants.UNSIGNED_INT_24_8;case A.UNSIGNED_SHORT_4_4_4_4:return R.WebGLConstants.UNSIGNED_SHORT_4_4_4_4;case A.UNSIGNED_SHORT_5_5_5_1:return R.WebGLConstants.UNSIGNED_SHORT_5_5_5_1;case A.UNSIGNED_SHORT_5_6_5:return A.UNSIGNED_SHORT_5_6_5}},isPacked:function(_){return _===A.UNSIGNED_INT_24_8||_===A.UNSIGNED_SHORT_4_4_4_4||_===A.UNSIGNED_SHORT_5_5_5_1||_===A.UNSIGNED_SHORT_5_6_5},sizeInBytes:function(_){switch(_){case A.UNSIGNED_BYTE:return 1;case A.UNSIGNED_SHORT:case A.UNSIGNED_SHORT_4_4_4_4:case A.UNSIGNED_SHORT_5_5_5_1:case A.UNSIGNED_SHORT_5_6_5:case A.HALF_FLOAT:return 2;case A.UNSIGNED_INT:case A.FLOAT:case A.UNSIGNED_INT_24_8:return 4}},validate:function(_){return _===A.UNSIGNED_BYTE||_===A.UNSIGNED_SHORT||_===A.UNSIGNED_INT||_===A.FLOAT||_===A.HALF_FLOAT||_===A.UNSIGNED_INT_24_8||_===A.UNSIGNED_SHORT_4_4_4_4||_===A.UNSIGNED_SHORT_5_5_5_1||_===A.UNSIGNED_SHORT_5_6_5}};var T=Object.freeze(A);const O={DEPTH_COMPONENT:R.WebGLConstants.DEPTH_COMPONENT,DEPTH_STENCIL:R.WebGLConstants.DEPTH_STENCIL,ALPHA:R.WebGLConstants.ALPHA,RED:R.WebGLConstants.RED,RG:R.WebGLConstants.RG,RGB:R.WebGLConstants.RGB,RGBA:R.WebGLConstants.RGBA,LUMINANCE:R.WebGLConstants.LUMINANCE,LUMINANCE_ALPHA:R.WebGLConstants.LUMINANCE_ALPHA,RGB_DXT1:R.WebGLConstants.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:R.WebGLConstants.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:R.WebGLConstants.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:R.WebGLConstants.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:R.WebGLConstants.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:R.WebGLConstants.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:R.WebGLConstants.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:R.WebGLConstants.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:R.WebGLConstants.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:R.WebGLConstants.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:R.WebGLConstants.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:R.WebGLConstants.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:R.WebGLConstants.COMPRESSED_RGBA_BPTC_UNORM,componentsLength:function(_){switch(_){case O.RGB:return 3;case O.RGBA:return 4;case O.LUMINANCE_ALPHA:case O.RG:return 2;case O.ALPHA:case O.RED:case O.LUMINANCE:default:return 1}},validate:function(_){return _===O.DEPTH_COMPONENT||_===O.DEPTH_STENCIL||_===O.ALPHA||_===O.RED||_===O.RG||_===O.RGB||_===O.RGBA||_===O.LUMINANCE||_===O.LUMINANCE_ALPHA||_===O.RGB_DXT1||_===O.RGBA_DXT1||_===O.RGBA_DXT3||_===O.RGBA_DXT5||_===O.RGB_PVRTC_4BPPV1||_===O.RGB_PVRTC_2BPPV1||_===O.RGBA_PVRTC_4BPPV1||_===O.RGBA_PVRTC_2BPPV1||_===O.RGBA_ASTC||_===O.RGB_ETC1||_===O.RGB8_ETC2||_===O.RGBA8_ETC2_EAC||_===O.RGBA_BC7},isColorFormat:function(_){return _===O.ALPHA||_===O.RGB||_===O.RGBA||_===O.LUMINANCE||_===O.LUMINANCE_ALPHA},isDepthFormat:function(_){return _===O.DEPTH_COMPONENT||_===O.DEPTH_STENCIL},isCompressedFormat:function(_){return _===O.RGB_DXT1||_===O.RGBA_DXT1||_===O.RGBA_DXT3||_===O.RGBA_DXT5||_===O.RGB_PVRTC_4BPPV1||_===O.RGB_PVRTC_2BPPV1||_===O.RGBA_PVRTC_4BPPV1||_===O.RGBA_PVRTC_2BPPV1||_===O.RGBA_ASTC||_===O.RGB_ETC1||_===O.RGB8_ETC2||_===O.RGBA8_ETC2_EAC||_===O.RGBA_BC7},isDXTFormat:function(_){return _===O.RGB_DXT1||_===O.RGBA_DXT1||_===O.RGBA_DXT3||_===O.RGBA_DXT5},isPVRTCFormat:function(_){return _===O.RGB_PVRTC_4BPPV1||_===O.RGB_PVRTC_2BPPV1||_===O.RGBA_PVRTC_4BPPV1||_===O.RGBA_PVRTC_2BPPV1},isASTCFormat:function(_){return _===O.RGBA_ASTC},isETC1Format:function(_){return _===O.RGB_ETC1},isETC2Format:function(_){return _===O.RGB8_ETC2||_===O.RGBA8_ETC2_EAC},isBC7Format:function(_){return _===O.RGBA_BC7},compressedTextureSizeInBytes:function(_,R,t){switch(_){case O.RGB_DXT1:case O.RGBA_DXT1:case O.RGB_ETC1:case O.RGB8_ETC2:return Math.floor((R+3)/4)*Math.floor((t+3)/4)*8;case O.RGBA_DXT3:case O.RGBA_DXT5:case O.RGBA_ASTC:case O.RGBA8_ETC2_EAC:return Math.floor((R+3)/4)*Math.floor((t+3)/4)*16;case O.RGB_PVRTC_4BPPV1:case O.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(R,8)*Math.max(t,8)*4+7)/8);case O.RGB_PVRTC_2BPPV1:case O.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(R,16)*Math.max(t,8)*2+7)/8);case O.RGBA_BC7:return Math.ceil(R/4)*Math.ceil(t/4)*16;default:return 0}},textureSizeInBytes:function(_,R,t,e){let A=O.componentsLength(_);return T.isPacked(R)&&(A=1),A*T.sizeInBytes(R)*t*e},alignmentInBytes:function(_,R,t){const e=O.textureSizeInBytes(_,R,t,1)%4;return 0===e?4:2===e?2:1},createTypedArray:function(_,R,t,e){let A;const n=T.sizeInBytes(R);A=n===Uint8Array.BYTES_PER_ELEMENT?Uint8Array:n===Uint16Array.BYTES_PER_ELEMENT?Uint16Array:n===Float32Array.BYTES_PER_ELEMENT&&R===T.FLOAT?Float32Array:Uint32Array;return new A(O.componentsLength(_)*t*e)},flipY:function(_,R,t,e,A){if(1===A)return _;const T=O.createTypedArray(R,t,e,A),n=O.componentsLength(R),B=e*n;for(let R=0;R<A;++R){const t=R*e*n,O=(A-R-1)*e*n;for(let R=0;R<B;++R)T[O+R]=_[t+R]}return T},toInternalFormat:function(_,t,e){if(!e.webgl2)return _;if(_===O.DEPTH_STENCIL)return R.WebGLConstants.DEPTH24_STENCIL8;if(_===O.DEPTH_COMPONENT){if(t===T.UNSIGNED_SHORT)return R.WebGLConstants.DEPTH_COMPONENT16;if(t===T.UNSIGNED_INT)return R.WebGLConstants.DEPTH_COMPONENT24}if(t===T.FLOAT)switch(_){case O.RGBA:return R.WebGLConstants.RGBA32F;case O.RGB:return R.WebGLConstants.RGB32F;case O.RG:return R.WebGLConstants.RG32F;case O.RED:return R.WebGLConstants.R32F}if(t===T.HALF_FLOAT)switch(_){case O.RGBA:return R.WebGLConstants.RGBA16F;case O.RGB:return R.WebGLConstants.RGB16F;case O.RG:return R.WebGLConstants.RG16F;case O.RED:return R.WebGLConstants.R16F}return _}};var n=Object.freeze(O);var B=Object.freeze({VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033});const G=64;class M{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class K{constructor(_,R,t,e){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(_.buffer,_.byteOffset+R,t),this._littleEndian=e,this._offset=0}_nextUint8(){const _=this._dataView.getUint8(this._offset);return this._offset+=1,_}_nextUint16(){const _=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,_}_nextUint32(){const _=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,_}_nextUint64(){const _=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,_}_nextInt32(){const _=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,_}_skip(_){return this._offset+=_,this}_scan(_,R=0){const t=this._offset;let e=0;for(;this._dataView.getUint8(this._offset)!==R&&e<_;)e++,this._offset++;return e<_&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+t,e)}}const C=[171,75,84,88,32,50,48,187,13,10,26,10];function s(_){return"undefined"!=typeof TextDecoder?(new TextDecoder).decode(_):Buffer.from(_).toString("utf8")}const r=["positiveX","negativeX","positiveY","negativeY","positiveZ","negativeZ"],F=163,N=166;let i;function V(R,e){const A=R.ktx2Buffer,O=R.supportedTargetFormats;let V;try{V=function(_){const R=new Uint8Array(_.buffer,_.byteOffset,C.length);if(R[0]!==C[0]||R[1]!==C[1]||R[2]!==C[2]||R[3]!==C[3]||R[4]!==C[4]||R[5]!==C[5]||R[6]!==C[6]||R[7]!==C[7]||R[8]!==C[8]||R[9]!==C[9]||R[10]!==C[10]||R[11]!==C[11])throw new Error("Missing KTX 2.0 identifier.");const t=new M,e=17*Uint32Array.BYTES_PER_ELEMENT,A=new K(_,C.length,e,!0);t.vkFormat=A._nextUint32(),t.typeSize=A._nextUint32(),t.pixelWidth=A._nextUint32(),t.pixelHeight=A._nextUint32(),t.pixelDepth=A._nextUint32(),t.layerCount=A._nextUint32(),t.faceCount=A._nextUint32();const T=A._nextUint32();t.supercompressionScheme=A._nextUint32();const O=A._nextUint32(),n=A._nextUint32(),B=A._nextUint32(),r=A._nextUint32(),F=A._nextUint64(),N=A._nextUint64(),i=3*T*8,V=new K(_,C.length+e,i,!0);for(let R=0;R<T;R++)t.levels.push({levelData:new Uint8Array(_.buffer,_.byteOffset+V._nextUint64(),V._nextUint64()),uncompressedByteLength:V._nextUint64()});const o=new K(_,O,n,!0),a={vendorId:o._skip(4)._nextUint16(),descriptorType:o._nextUint16(),versionNumber:o._nextUint16(),descriptorBlockSize:o._nextUint16(),colorModel:o._nextUint8(),colorPrimaries:o._nextUint8(),transferFunction:o._nextUint8(),flags:o._nextUint8(),texelBlockDimension:[o._nextUint8(),o._nextUint8(),o._nextUint8(),o._nextUint8()],bytesPlane:[o._nextUint8(),o._nextUint8(),o._nextUint8(),o._nextUint8(),o._nextUint8(),o._nextUint8(),o._nextUint8(),o._nextUint8()],samples:[]},S=(a.descriptorBlockSize/4-6)/4;for(let _=0;_<S;_++){const R={bitOffset:o._nextUint16(),bitLength:o._nextUint8(),channelType:o._nextUint8(),samplePosition:[o._nextUint8(),o._nextUint8(),o._nextUint8(),o._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};R.channelType&G?(R.sampleLower=o._nextInt32(),R.sampleUpper=o._nextInt32()):(R.sampleLower=o._nextUint32(),R.sampleUpper=o._nextUint32()),a.samples[_]=R}t.dataFormatDescriptor.length=0,t.dataFormatDescriptor.push(a);const U=new K(_,B,r,!0);for(;U._offset<r;){const _=U._nextUint32(),R=U._scan(_),e=s(R),A=U._scan(_-R.byteLength);t.keyValue[e]=e.match(/^ktx/i)?s(A):A,U._offset%4&&U._skip(4-U._offset%4)}if(N<=0)return t;const E=new K(_,F,N,!0),L=E._nextUint16(),P=E._nextUint16(),c=E._nextUint32(),f=E._nextUint32(),l=E._nextUint32(),X=E._nextUint32(),u=[];for(let _=0;_<T;_++)u.push({imageFlags:E._nextUint32(),rgbSliceByteOffset:E._nextUint32(),rgbSliceByteLength:E._nextUint32(),alphaSliceByteOffset:E._nextUint32(),alphaSliceByteLength:E._nextUint32()});const D=F+E._offset,I=D+c,x=I+f,h=x+l,d=new Uint8Array(_.buffer,_.byteOffset+D,c),H=new Uint8Array(_.buffer,_.byteOffset+I,f),b=new Uint8Array(_.buffer,_.byteOffset+x,l),p=new Uint8Array(_.buffer,_.byteOffset+h,X);return t.globalData={endpointCount:L,selectorCount:P,imageDescs:u,endpointsData:d,selectorsData:H,tablesData:b,extendedData:p},t}(A)}catch(_){throw new t.RuntimeError("Invalid KTX2 file.")}if(0!==V.layerCount)throw new t.RuntimeError("KTX2 texture arrays are not supported.");if(0!==V.pixelDepth)throw new t.RuntimeError("KTX2 3D textures are unsupported.");const o=V.dataFormatDescriptor[0],a=new Array(V.levelCount);return 0!==V.vkFormat||o.colorModel!==F&&o.colorModel!==N?(e.push(A.buffer),function(R,t){const e=R.vkFormat===B.VK_FORMAT_R8G8B8_SRGB?n.RGB:n.RGBA;let A;R.vkFormat===B.VK_FORMAT_R8G8B8A8_UNORM?A=T.UNSIGNED_BYTE:R.vkFormat===B.VK_FORMAT_R16G16B16A16_SFLOAT?A=T.HALF_FLOAT:R.vkFormat===B.VK_FORMAT_R32G32B32A32_SFLOAT&&(A=T.FLOAT);for(let O=0;O<R.levels.length;++O){const B={};t[O]=B;const G=R.levels[O].levelData,M=R.pixelWidth>>O,K=R.pixelHeight>>O,C=M*K*n.componentsLength(e);for(let t=0;t<R.faceCount;++t){const O=G.byteOffset+C*R.typeSize*t;let n;n=_.defined(A)&&1!==T.sizeInBytes(A)?2===T.sizeInBytes(A)?new Uint16Array(G.buffer,O,C):new Float32Array(G.buffer,O,C):new Uint8Array(G.buffer,O,C),B[r[t]]={internalFormat:e,datatype:A,width:M,height:K,levelBuffer:n}}}}(V,a)):function(R,e,A,T,O,B){const G=new T.KTX2File(R);let M=G.getWidth(),K=G.getHeight();const C=G.getLevels(),s=G.getHasAlpha();if(!(M>0&&K>0&&C>0))throw G.close(),G.delete(),new t.RuntimeError("Invalid KTX2 file");let i,V;const o=e.dataFormatDescriptor[0],a=T.transcoder_texture_format;if(o.colorModel===F)if(A.etc)i=s?n.RGBA8_ETC2_EAC:n.RGB8_ETC2,V=s?a.cTFETC2_RGBA:a.cTFETC1_RGB;else if(A.etc1&&!s)i=n.RGB_ETC1,V=a.cTFETC1_RGB;else if(A.s3tc)i=s?n.RGBA_DXT5:n.RGB_DXT1,V=s?a.cTFBC3_RGBA:a.cTFBC1_RGB;else if(A.pvrtc)i=s?n.RGBA_PVRTC_4BPPV1:n.RGB_PVRTC_4BPPV1,V=s?a.cTFPVRTC1_4_RGBA:a.cTFPVRTC1_4_RGB;else if(A.astc)i=n.RGBA_ASTC,V=a.cTFASTC_4x4_RGBA;else{if(!A.bc7)throw new t.RuntimeError("No transcoding format target available for ETC1S compressed ktx2.");i=n.RGBA_BC7,V=a.cTFBC7_RGBA}else if(o.colorModel===N)if(A.astc)i=n.RGBA_ASTC,V=a.cTFASTC_4x4_RGBA;else if(A.bc7)i=n.RGBA_BC7,V=a.cTFBC7_RGBA;else if(A.s3tc)i=s?n.RGBA_DXT5:n.RGB_DXT1,V=s?a.cTFBC3_RGBA:a.cTFBC1_RGB;else if(A.etc)i=s?n.RGBA8_ETC2_EAC:n.RGB8_ETC2,V=s?a.cTFETC2_RGBA:a.cTFETC1_RGB;else if(A.etc1&&!s)i=n.RGB_ETC1,V=a.cTFETC1_RGB;else{if(!A.pvrtc)throw new t.RuntimeError("No transcoding format target available for UASTC compressed ktx2.");i=s?n.RGBA_PVRTC_4BPPV1:n.RGB_PVRTC_4BPPV1,V=s?a.cTFPVRTC1_4_RGBA:a.cTFPVRTC1_4_RGB}if(!G.startTranscoding())throw G.close(),G.delete(),new t.RuntimeError("startTranscoding() failed");for(let R=0;R<e.levels.length;++R){const A={};B[R]=A,M=e.pixelWidth>>R,K=e.pixelHeight>>R;const T=G.getImageTranscodedSizeInBytes(R,0,0,V.value),n=new Uint8Array(T),C=G.transcodeImage(n,R,0,0,V.value,0,-1,-1);if(!_.defined(C))throw new t.RuntimeError("transcodeImage() failed.");O.push(n.buffer),A[r[0]]={internalFormat:i,width:M,height:K,levelBuffer:n}}G.close(),G.delete()}(A,V,O,i,e,a),a}function o(_){i=_,i.initializeBasis(),self.onmessage=e(V),self.postMessage(!0)}return function(R){const t=R.data.webAssemblyConfig;if(_.defined(t))return require([t.modulePath],(function(R){if(!_.defined(t.wasmBinaryFile))return R().then((function(_){o(_)}));_.defined(R)||(R=self.MSC_TRANSCODER),R(t).then((function(_){o(_)}))}))}})); diff --git a/public/static/Cesium/Workers/transferTypedArrayTest.js b/public/static/Cesium/Workers/transferTypedArrayTest.js new file mode 100644 index 0000000..bc46fad --- /dev/null +++ b/public/static/Cesium/Workers/transferTypedArrayTest.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.105 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +typeof self>"u"&&(self={}),self.onmessage=function(a){const e=a.data.array,s=self.webkitPostMessage||self.postMessage;try{s({array:e},[e.buffer])}catch{s({})}}; diff --git a/public/static/Cesium/Workers/upsampleQuantizedTerrainMesh.js b/public/static/Cesium/Workers/upsampleQuantizedTerrainMesh.js new file mode 100644 index 0000000..52c5a27 --- /dev/null +++ b/public/static/Cesium/Workers/upsampleQuantizedTerrainMesh.js @@ -0,0 +1 @@ +define(["./AttributeCompression-0b8f7b7d","./Transforms-c842a68c","./Matrix2-7a8e9daf","./Matrix3-b2351961","./defaultValue-f6d5e6da","./TerrainEncoding-d756c901","./IndexDatatype-a9b1bc18","./Math-355606c6","./OrientedBoundingBox-04b751ee","./createTaskProcessorWorker","./ComponentDatatype-ab629b88","./WebGLConstants-7f557f93","./combine-0c102d93","./RuntimeError-9b4ce3fb","./EllipsoidTangentPlane-05ee7166","./AxisAlignedBoundingBox-93c1311e","./IntersectionTests-863687a2","./Plane-5931b53e"],(function(e,t,n,i,s,r,h,o,u,p,d,l,a,f,c,g,m,x){"use strict";const w={clipTriangleAtAxisAlignedThreshold:function(e,t,n,i,r,h){let o,u,p;s.defined(h)?h.length=0:h=[],t?(o=n<e,u=i<e,p=r<e):(o=n>e,u=i>e,p=r>e);const d=o+u+p;let l,a,f,c,g,m;return 1===d?o?(l=(e-n)/(i-n),a=(e-n)/(r-n),h.push(1),h.push(2),1!==a&&(h.push(-1),h.push(0),h.push(2),h.push(a)),1!==l&&(h.push(-1),h.push(0),h.push(1),h.push(l))):u?(f=(e-i)/(r-i),c=(e-i)/(n-i),h.push(2),h.push(0),1!==c&&(h.push(-1),h.push(1),h.push(0),h.push(c)),1!==f&&(h.push(-1),h.push(1),h.push(2),h.push(f))):p&&(g=(e-r)/(n-r),m=(e-r)/(i-r),h.push(0),h.push(1),1!==m&&(h.push(-1),h.push(2),h.push(1),h.push(m)),1!==g&&(h.push(-1),h.push(2),h.push(0),h.push(g))):2===d?o||n===e?u||i===e?p||r===e||(a=(e-n)/(r-n),f=(e-i)/(r-i),h.push(2),h.push(-1),h.push(0),h.push(2),h.push(a),h.push(-1),h.push(1),h.push(2),h.push(f)):(m=(e-r)/(i-r),l=(e-n)/(i-n),h.push(1),h.push(-1),h.push(2),h.push(1),h.push(m),h.push(-1),h.push(0),h.push(1),h.push(l)):(c=(e-i)/(n-i),g=(e-r)/(n-r),h.push(0),h.push(-1),h.push(1),h.push(0),h.push(c),h.push(-1),h.push(2),h.push(0),h.push(g)):3!==d&&(h.push(0),h.push(1),h.push(2)),h},computeBarycentricCoordinates:function(e,t,n,r,h,o,u,p,d){const l=n-u,a=u-h,f=o-p,c=r-p,g=1/(f*l+a*c),m=t-p,x=e-u,w=(f*x+a*m)*g,C=(-c*x+l*m)*g,y=1-w-C;return s.defined(d)?(d.x=w,d.y=C,d.z=y,d):new i.Cartesian3(w,C,y)},computeLineSegmentLineSegmentIntersection:function(e,t,i,r,h,o,u,p,d){const l=(p-o)*(i-e)-(u-h)*(r-t);if(0===l)return;const a=((u-h)*(t-o)-(p-o)*(e-h))/l,f=((i-e)*(t-o)-(r-t)*(e-h))/l;return a>=0&&a<=1&&f>=0&&f<=1?(s.defined(d)||(d=new n.Cartesian2),d.x=e+a*(i-e),d.y=t+a*(r-t),d):void 0}};var C=w;const y=32767,B=16383,I=[],A=[],v=[],b=new i.Cartographic;let T=new i.Cartesian3;const M=[],z=[],V=[],N=[],E=[],R=new i.Cartesian3,H=new t.BoundingSphere,O=new u.OrientedBoundingBox,S=new n.Cartesian2,U=new i.Cartesian3;function F(){this.vertexBuffer=void 0,this.index=void 0,this.first=void 0,this.second=void 0,this.ratio=void 0}F.prototype.clone=function(e){return s.defined(e)||(e=new F),e.uBuffer=this.uBuffer,e.vBuffer=this.vBuffer,e.heightBuffer=this.heightBuffer,e.normalBuffer=this.normalBuffer,e.index=this.index,e.first=this.first,e.second=this.second,e.ratio=this.ratio,e},F.prototype.initializeIndexed=function(e,t,n,i,s){this.uBuffer=e,this.vBuffer=t,this.heightBuffer=n,this.normalBuffer=i,this.index=s,this.first=void 0,this.second=void 0,this.ratio=void 0},F.prototype.initializeFromClipResult=function(e,t,n){let i=t+1;return-1!==e[t]?n[e[t]].clone(this):(this.vertexBuffer=void 0,this.index=void 0,this.first=n[e[i]],++i,this.second=n[e[i]],++i,this.ratio=e[i],++i),i},F.prototype.getKey=function(){return this.isIndexed()?this.index:JSON.stringify({first:this.first.getKey(),second:this.second.getKey(),ratio:this.ratio})},F.prototype.isIndexed=function(){return s.defined(this.index)},F.prototype.getH=function(){return s.defined(this.index)?this.heightBuffer[this.index]:o.CesiumMath.lerp(this.first.getH(),this.second.getH(),this.ratio)},F.prototype.getU=function(){return s.defined(this.index)?this.uBuffer[this.index]:o.CesiumMath.lerp(this.first.getU(),this.second.getU(),this.ratio)},F.prototype.getV=function(){return s.defined(this.index)?this.vBuffer[this.index]:o.CesiumMath.lerp(this.first.getV(),this.second.getV(),this.ratio)};let P=new n.Cartesian2,D=-1;const W=[new i.Cartesian3,new i.Cartesian3],X=[new i.Cartesian3,new i.Cartesian3];function k(t,n){++D;let s=W[D],r=X[D];return s=e.AttributeCompression.octDecode(t.first.getNormalX(),t.first.getNormalY(),s),r=e.AttributeCompression.octDecode(t.second.getNormalX(),t.second.getNormalY(),r),T=i.Cartesian3.lerp(s,r,t.ratio,T),i.Cartesian3.normalize(T,T),e.AttributeCompression.octEncode(T,n),--D,n}F.prototype.getNormalX=function(){return s.defined(this.index)?this.normalBuffer[2*this.index]:(P=k(this,P),P.x)},F.prototype.getNormalY=function(){return s.defined(this.index)?this.normalBuffer[2*this.index+1]:(P=k(this,P),P.y)};const K=[];function L(e,t,n,i,r,h,o,u,p){if(0===o.length)return;let d=0,l=0;for(;l<o.length;)l=K[d++].initializeFromClipResult(o,l,u);for(let r=0;r<d;++r){const o=K[r];if(o.isIndexed())o.newIndex=h[o.index],o.uBuffer=e,o.vBuffer=t,o.heightBuffer=n,p&&(o.normalBuffer=i);else{const r=o.getKey();if(s.defined(h[r]))o.newIndex=h[r];else{const s=e.length;e.push(o.getU()),t.push(o.getV()),n.push(o.getH()),p&&(i.push(o.getNormalX()),i.push(o.getNormalY())),o.newIndex=s,h[r]=s}}}3===d?(r.push(K[0].newIndex),r.push(K[1].newIndex),r.push(K[2].newIndex)):4===d&&(r.push(K[0].newIndex),r.push(K[1].newIndex),r.push(K[2].newIndex),r.push(K[0].newIndex),r.push(K[2].newIndex),r.push(K[3].newIndex))}return K.push(new F),K.push(new F),K.push(new F),K.push(new F),p((function(e,s){const p=e.isEastChild,d=e.isNorthChild,l=p?B:0,a=p?y:B,f=d?B:0,c=d?y:B,g=M,m=z,x=V,w=E;g.length=0,m.length=0,x.length=0,w.length=0;const P=N;P.length=0;const D={},W=e.vertices;let X=e.indices;X=X.subarray(0,e.indexCountWithoutSkirts);const k=r.TerrainEncoding.clone(e.encoding),K=k.hasVertexNormals;let Y=0;const _=e.vertexCountWithoutSkirts,G=e.minimumHeight,J=e.maximumHeight,Z=new Array(_),j=new Array(_),q=new Array(_),Q=K?new Array(2*_):void 0;let $,ee,te,ne,ie;for(ee=0,te=0;ee<_;++ee,te+=2){const e=k.decodeTextureCoordinates(W,ee,S);if($=k.decodeHeight(W,ee),ne=o.CesiumMath.clamp(e.x*y|0,0,y),ie=o.CesiumMath.clamp(e.y*y|0,0,y),q[ee]=o.CesiumMath.clamp(($-G)/(J-G)*y|0,0,y),ne<20&&(ne=0),ie<20&&(ie=0),y-ne<20&&(ne=y),y-ie<20&&(ie=y),Z[ee]=ne,j[ee]=ie,K){const e=k.getOctEncodedNormal(W,ee,U);Q[te]=e.x,Q[te+1]=e.y}(p&&ne>=B||!p&&ne<=B)&&(d&&ie>=B||!d&&ie<=B)&&(D[ee]=Y,g.push(ne),m.push(ie),x.push(q[ee]),K&&(w.push(Q[te]),w.push(Q[te+1])),++Y)}const se=[];se.push(new F),se.push(new F),se.push(new F);const re=[];let he,oe;for(re.push(new F),re.push(new F),re.push(new F),ee=0;ee<X.length;ee+=3){const e=X[ee],t=X[ee+1],n=X[ee+2],i=Z[e],s=Z[t],r=Z[n];se[0].initializeIndexed(Z,j,q,Q,e),se[1].initializeIndexed(Z,j,q,Q,t),se[2].initializeIndexed(Z,j,q,Q,n);const h=C.clipTriangleAtAxisAlignedThreshold(B,p,i,s,r,I);he=0,he>=h.length||(he=re[0].initializeFromClipResult(h,he,se),he>=h.length||(he=re[1].initializeFromClipResult(h,he,se),he>=h.length||(he=re[2].initializeFromClipResult(h,he,se),oe=C.clipTriangleAtAxisAlignedThreshold(B,d,re[0].getV(),re[1].getV(),re[2].getV(),A),L(g,m,x,w,P,D,oe,re,K),he<h.length&&(re[2].clone(re[1]),re[2].initializeFromClipResult(h,he,se),oe=C.clipTriangleAtAxisAlignedThreshold(B,d,re[0].getV(),re[1].getV(),re[2].getV(),A),L(g,m,x,w,P,D,oe,re,K)))))}const ue=p?-32767:0,pe=d?-32767:0,de=[],le=[],ae=[],fe=[];let ce=Number.MAX_VALUE,ge=-ce;const me=v;me.length=0;const xe=i.Ellipsoid.clone(e.ellipsoid),we=n.Rectangle.clone(e.childRectangle),Ce=we.north,ye=we.south;let Be=we.east;const Ie=we.west;for(Be<Ie&&(Be+=o.CesiumMath.TWO_PI),ee=0;ee<g.length;++ee)ne=Math.round(g[ee]),ne<=l?(de.push(ee),ne=0):ne>=a?(ae.push(ee),ne=y):ne=2*ne+ue,g[ee]=ne,ie=Math.round(m[ee]),ie<=f?(le.push(ee),ie=0):ie>=c?(fe.push(ee),ie=y):ie=2*ie+pe,m[ee]=ie,$=o.CesiumMath.lerp(G,J,x[ee]/y),$<ce&&(ce=$),$>ge&&(ge=$),x[ee]=$,b.longitude=o.CesiumMath.lerp(Ie,Be,ne/y),b.latitude=o.CesiumMath.lerp(ye,Ce,ie/y),b.height=$,xe.cartographicToCartesian(b,T),me.push(T.x),me.push(T.y),me.push(T.z);const Ae=t.BoundingSphere.fromVertices(me,i.Cartesian3.ZERO,3,H),ve=u.OrientedBoundingBox.fromRectangle(we,ce,ge,xe,O),be=new r.EllipsoidalOccluder(xe).computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid(Ae.center,me,3,Ae.center,ce,R),Te=ge-ce,Me=new Uint16Array(g.length+m.length+x.length);for(ee=0;ee<g.length;++ee)Me[ee]=g[ee];let ze=g.length;for(ee=0;ee<m.length;++ee)Me[ze+ee]=m[ee];for(ze+=m.length,ee=0;ee<x.length;++ee)Me[ze+ee]=y*(x[ee]-ce)/Te;const Ve=h.IndexDatatype.createTypedArray(g.length,P);let Ne;if(K){const e=new Uint8Array(w);s.push(Me.buffer,Ve.buffer,e.buffer),Ne=e.buffer}else s.push(Me.buffer,Ve.buffer);return{vertices:Me.buffer,encodedNormals:Ne,indices:Ve.buffer,minimumHeight:ce,maximumHeight:ge,westIndices:de,southIndices:le,eastIndices:ae,northIndices:fe,boundingSphere:Ae,orientedBoundingBox:ve,horizonOcclusionPoint:be}}))})); diff --git a/public/static/Cesium/index.cjs b/public/static/Cesium/index.cjs new file mode 100644 index 0000000..5eba61d --- /dev/null +++ b/public/static/Cesium/index.cjs @@ -0,0 +1,14506 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.105 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var Vxe=Object.create;var s3=Object.defineProperty;var kxe=Object.getOwnPropertyDescriptor;var zxe=Object.getOwnPropertyNames;var Hxe=Object.getPrototypeOf,Gxe=Object.prototype.hasOwnProperty;var Wxe=(e,t)=>()=>(e&&(t=e(e=0)),t);var Jn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),QK=(e,t)=>{for(var n in t)s3(e,n,{get:t[n],enumerable:!0})},$K=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of zxe(t))!Gxe.call(e,r)&&r!==n&&s3(e,r,{get:()=>t[r],enumerable:!(i=kxe(t,r))||i.enumerable});return e};var Yi=(e,t,n)=>(n=e!=null?Vxe(Hxe(e)):{},$K(t||!e||!e.__esModule?s3(n,"default",{value:e,enumerable:!0}):n,e)),Dh=e=>$K(s3({},"__esModule",{value:!0}),e);var a3=Jn((Axt,tJ)=>{var qm=function(e){e==null&&(e=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,e.constructor==Array?this.init_by_array(e,e.length):this.init_seed(e)};qm.prototype.init_seed=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(((e&4294901760)>>>16)*1812433253<<16)+(e&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};qm.prototype.init_by_array=function(e,t){var n,i,r;for(this.init_seed(19650218),n=1,i=0,r=this.N>t?this.N:t;r;r--){var o=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((o&4294901760)>>>16)*1664525<<16)+(o&65535)*1664525)+e[i]+i,this.mt[n]>>>=0,n++,i++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1),i>=t&&(i=0)}for(r=this.N-1;r;r--){var o=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((o&4294901760)>>>16)*1566083941<<16)+(o&65535)*1566083941)-n,this.mt[n]>>>=0,n++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1)}this.mt[0]=2147483648};qm.prototype.random_int=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_seed(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[e&1];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[e&1];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[e&1],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0};qm.prototype.random_int31=function(){return this.random_int()>>>1};qm.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};qm.prototype.random=function(){return this.random_int()*(1/4294967296)};qm.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};qm.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)};tJ.exports=qm});var xZ=Jn((eT,tT)=>{/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof eT=="object"&&eT&&!eT.nodeType&&eT,n=typeof tT=="object"&&tT&&!tT.nodeType&&tT,i=typeof global=="object"&&global;(i.global===i||i.window===i||i.self===i)&&(e=i);var r,o=2147483647,s=36,a=1,c=26,l=38,f=700,d=72,p=128,g="-",m=/^xn--/,A=/[^\x20-\x7E]/,x=/[\x2E\u3002\uFF0E\uFF61]/g,C={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},T=s-a,E=Math.floor,S=String.fromCharCode,v;function D(V){throw new RangeError(C[V])}function M(V,G){for(var U=V.length,Y=[];U--;)Y[U]=G(V[U]);return Y}function O(V,G){var U=V.split("@"),Y="";U.length>1&&(Y=U[0]+"@",V=U[1]),V=V.replace(x,".");var W=V.split("."),Z=M(W,G).join(".");return Y+Z}function B(V){for(var G=[],U=0,Y=V.length,W,Z;U<Y;)W=V.charCodeAt(U++),W>=55296&&W<=56319&&U<Y?(Z=V.charCodeAt(U++),(Z&64512)==56320?G.push(((W&1023)<<10)+(Z&1023)+65536):(G.push(W),U--)):G.push(W);return G}function L(V){return M(V,function(G){var U="";return G>65535&&(G-=65536,U+=S(G>>>10&1023|55296),G=56320|G&1023),U+=S(G),U}).join("")}function _(V){return V-48<10?V-22:V-65<26?V-65:V-97<26?V-97:s}function b(V,G){return V+22+75*(V<26)-((G!=0)<<5)}function w(V,G,U){var Y=0;for(V=U?E(V/f):V>>1,V+=E(V/G);V>T*c>>1;Y+=s)V=E(V/T);return E(Y+(T+1)*V/(V+l))}function I(V){var G=[],U=V.length,Y,W=0,Z=p,j=d,K,J,_e,xe,oe,Ae,he,Se,Ie;for(K=V.lastIndexOf(g),K<0&&(K=0),J=0;J<K;++J)V.charCodeAt(J)>=128&&D("not-basic"),G.push(V.charCodeAt(J));for(_e=K>0?K+1:0;_e<U;){for(xe=W,oe=1,Ae=s;_e>=U&&D("invalid-input"),he=_(V.charCodeAt(_e++)),(he>=s||he>E((o-W)/oe))&&D("overflow"),W+=he*oe,Se=Ae<=j?a:Ae>=j+c?c:Ae-j,!(he<Se);Ae+=s)Ie=s-Se,oe>E(o/Ie)&&D("overflow"),oe*=Ie;Y=G.length+1,j=w(W-xe,Y,xe==0),E(W/Y)>o-Z&&D("overflow"),Z+=E(W/Y),W%=Y,G.splice(W++,0,Z)}return L(G)}function R(V){var G,U,Y,W,Z,j,K,J,_e,xe,oe,Ae=[],he,Se,Ie,Ne;for(V=B(V),he=V.length,G=p,U=0,Z=d,j=0;j<he;++j)oe=V[j],oe<128&&Ae.push(S(oe));for(Y=W=Ae.length,W&&Ae.push(g);Y<he;){for(K=o,j=0;j<he;++j)oe=V[j],oe>=G&&oe<K&&(K=oe);for(Se=Y+1,K-G>E((o-U)/Se)&&D("overflow"),U+=(K-G)*Se,G=K,j=0;j<he;++j)if(oe=V[j],oe<G&&++U>o&&D("overflow"),oe==G){for(J=U,_e=s;xe=_e<=Z?a:_e>=Z+c?c:_e-Z,!(J<xe);_e+=s)Ne=J-xe,Ie=s-xe,Ae.push(S(b(xe+Ne%Ie,0))),J=E(Ne/Ie);Ae.push(S(b(J,0))),Z=w(U,Se,Y==W),U=0,++Y}++U,++G}return Ae.join("")}function F(V){return O(V,function(G){return m.test(G)?I(G.slice(4).toLowerCase()):G})}function k(V){return O(V,function(G){return A.test(G)?"xn--"+R(G):G})}if(r={version:"1.3.2",ucs2:{decode:B,encode:L},decode:I,encode:R,toASCII:k,toUnicode:F},typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return r});else if(t&&n)if(tT.exports==t)n.exports=r;else for(v in r)r.hasOwnProperty(v)&&(t[v]=r[v]);else e.punycode=r})(eT)});var TZ=Jn((CZ,B3)=>{/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof B3=="object"&&B3.exports?B3.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(CZ,function(e){"use strict";var t=e&&e.IPv6;function n(r){var o=r.toLowerCase(),s=o.split(":"),a=s.length,c=8;s[0]===""&&s[1]===""&&s[2]===""?(s.shift(),s.shift()):s[0]===""&&s[1]===""?s.shift():s[a-1]===""&&s[a-2]===""&&s.pop(),a=s.length,s[a-1].indexOf(".")!==-1&&(c=7);var l;for(l=0;l<a&&s[l]!=="";l++);if(l<c)for(s.splice(l,1,"0000");s.length<c;)s.splice(l,0,"0000");for(var f,d=0;d<c;d++){f=s[d].split("");for(var p=0;p<3&&(f[0]==="0"&&f.length>1);p++)f.splice(0,1);s[d]=f.join("")}var g=-1,m=0,A=0,x=-1,C=!1;for(d=0;d<c;d++)C?s[d]==="0"?A+=1:(C=!1,A>m&&(g=x,m=A)):s[d]==="0"&&(C=!0,x=d,A=1);A>m&&(g=x,m=A),m>1&&s.splice(g,m,""),a=s.length;var T="";for(s[0]===""&&(T=":"),d=0;d<a&&(T+=s[d],d!==a-1);d++)T+=":";return s[a-1]===""&&(T+=":"),T}function i(){return e.IPv6===this&&(e.IPv6=t),this}return{best:n,noConflict:i}})});var bZ=Jn((EZ,L3)=>{/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof L3=="object"&&L3.exports?L3.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(EZ,function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(i){var r=i.lastIndexOf(".");if(r<=0||r>=i.length-1)return!1;var o=i.lastIndexOf(".",r-1);if(o<=0||o>=r-1)return!1;var s=n.list[i.slice(r+1)];return s?s.indexOf(" "+i.slice(o+1,r)+" ")>=0:!1},is:function(i){var r=i.lastIndexOf(".");if(r<=0||r>=i.length-1)return!1;var o=i.lastIndexOf(".",r-1);if(o>=0)return!1;var s=n.list[i.slice(r+1)];return s?s.indexOf(" "+i.slice(0,r)+" ")>=0:!1},get:function(i){var r=i.lastIndexOf(".");if(r<=0||r>=i.length-1)return null;var o=i.lastIndexOf(".",r-1);if(o<=0||o>=r-1)return null;var s=n.list[i.slice(r+1)];return!s||s.indexOf(" "+i.slice(o+1,r)+" ")<0?null:i.slice(o+1)},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n})});var Yl=Jn((SZ,N3)=>{/*! + * URI.js - Mutating URLs + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof N3=="object"&&N3.exports?N3.exports=t(xZ(),TZ(),bZ()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(SZ,function(e,t,n,i){"use strict";var r=i&&i.URI;function o(b,w){var I=arguments.length>=1,R=arguments.length>=2;if(!(this instanceof o))return I?R?new o(b,w):new o(b):new o;if(b===void 0){if(I)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?b=location.href+"":b=""}if(b===null&&I)throw new TypeError("null is not a valid argument for URI");return this.href(b),w!==void 0?this.absoluteTo(w):this}function s(b){return/^[0-9]+$/.test(b)}o.version="1.19.11";var a=o.prototype,c=Object.prototype.hasOwnProperty;function l(b){return b.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function f(b){return b===void 0?"Undefined":String(Object.prototype.toString.call(b)).slice(8,-1)}function d(b){return f(b)==="Array"}function p(b,w){var I={},R,F;if(f(w)==="RegExp")I=null;else if(d(w))for(R=0,F=w.length;R<F;R++)I[w[R]]=!0;else I[w]=!0;for(R=0,F=b.length;R<F;R++){var k=I&&I[b[R]]!==void 0||!I&&w.test(b[R]);k&&(b.splice(R,1),F--,R--)}return b}function g(b,w){var I,R;if(d(w)){for(I=0,R=w.length;I<R;I++)if(!g(b,w[I]))return!1;return!0}var F=f(w);for(I=0,R=b.length;I<R;I++)if(F==="RegExp"){if(typeof b[I]=="string"&&b[I].match(w))return!0}else if(b[I]===w)return!0;return!1}function m(b,w){if(!d(b)||!d(w)||b.length!==w.length)return!1;b.sort(),w.sort();for(var I=0,R=b.length;I<R;I++)if(b[I]!==w[I])return!1;return!0}function A(b){var w=/^\/+|\/+$/g;return b.replace(w,"")}o._parts=function(){return{protocol:null,username:null,password:null,hostname:null,urn:null,port:null,path:null,query:null,fragment:null,preventInvalidHostname:o.preventInvalidHostname,duplicateQueryParameters:o.duplicateQueryParameters,escapeQuerySpace:o.escapeQuerySpace}},o.preventInvalidHostname=!1,o.duplicateQueryParameters=!1,o.escapeQuerySpace=!0,o.protocol_expression=/^[a-z][a-z0-9.+-]*$/i,o.idn_expression=/[^a-z0-9\._-]/i,o.punycode_expression=/(xn--)/i,o.ip4_expression=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,o.ip6_expression=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,o.find_uri_expression=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig,o.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},o.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,o.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,o.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},o.hostProtocols=["http","https"],o.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,o.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},o.getDomAttribute=function(b){if(!(!b||!b.nodeName)){var w=b.nodeName.toLowerCase();if(!(w==="input"&&b.type!=="image"))return o.domAttributes[w]}};function x(b){return escape(b)}function C(b){return encodeURIComponent(b).replace(/[!'()*]/g,x).replace(/\*/g,"%2A")}o.encode=C,o.decode=decodeURIComponent,o.iso8859=function(){o.encode=escape,o.decode=unescape},o.unicode=function(){o.encode=C,o.decode=decodeURIComponent},o.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},o.encodeQuery=function(b,w){var I=o.encode(b+"");return w===void 0&&(w=o.escapeQuerySpace),w?I.replace(/%20/g,"+"):I},o.decodeQuery=function(b,w){b+="",w===void 0&&(w=o.escapeQuerySpace);try{return o.decode(w?b.replace(/\+/g,"%20"):b)}catch{return b}};var T={encode:"encode",decode:"decode"},E,S=function(b,w){return function(I){try{return o[w](I+"").replace(o.characters[b][w].expression,function(R){return o.characters[b][w].map[R]})}catch{return I}}};for(E in T)o[E+"PathSegment"]=S("pathname",T[E]),o[E+"UrnPathSegment"]=S("urnpath",T[E]);var v=function(b,w,I){return function(R){var F;I?F=function(U){return o[w](o[I](U))}:F=o[w];for(var k=(R+"").split(b),V=0,G=k.length;V<G;V++)k[V]=F(k[V]);return k.join(b)}};o.decodePath=v("/","decodePathSegment"),o.decodeUrnPath=v(":","decodeUrnPathSegment"),o.recodePath=v("/","encodePathSegment","decode"),o.recodeUrnPath=v(":","encodeUrnPathSegment","decode"),o.encodeReserved=S("reserved","encode"),o.parse=function(b,w){var I;return w||(w={preventInvalidHostname:o.preventInvalidHostname}),b=b.replace(o.leading_whitespace_expression,""),b=b.replace(o.ascii_tab_whitespace,""),I=b.indexOf("#"),I>-1&&(w.fragment=b.substring(I+1)||null,b=b.substring(0,I)),I=b.indexOf("?"),I>-1&&(w.query=b.substring(I+1)||null,b=b.substring(0,I)),b=b.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),b=b.replace(/^[/\\]{2,}/i,"//"),b.substring(0,2)==="//"?(w.protocol=null,b=b.substring(2),b=o.parseAuthority(b,w)):(I=b.indexOf(":"),I>-1&&(w.protocol=b.substring(0,I)||null,w.protocol&&!w.protocol.match(o.protocol_expression)?w.protocol=void 0:b.substring(I+1,I+3).replace(/\\/g,"/")==="//"?(b=b.substring(I+3),b=o.parseAuthority(b,w)):(b=b.substring(I+1),w.urn=!0))),w.path=b,w},o.parseHost=function(b,w){b||(b=""),b=b.replace(/\\/g,"/");var I=b.indexOf("/"),R,F;if(I===-1&&(I=b.length),b.charAt(0)==="[")R=b.indexOf("]"),w.hostname=b.substring(1,R)||null,w.port=b.substring(R+2,I)||null,w.port==="/"&&(w.port=null);else{var k=b.indexOf(":"),V=b.indexOf("/"),G=b.indexOf(":",k+1);G!==-1&&(V===-1||G<V)?(w.hostname=b.substring(0,I)||null,w.port=null):(F=b.substring(0,I).split(":"),w.hostname=F[0]||null,w.port=F[1]||null)}return w.hostname&&b.substring(I).charAt(0)!=="/"&&(I++,b="/"+b),w.preventInvalidHostname&&o.ensureValidHostname(w.hostname,w.protocol),w.port&&o.ensureValidPort(w.port),b.substring(I)||"/"},o.parseAuthority=function(b,w){return b=o.parseUserinfo(b,w),o.parseHost(b,w)},o.parseUserinfo=function(b,w){var I=b,R=b.indexOf("\\");R!==-1&&(b=b.replace(/\\/g,"/"));var F=b.indexOf("/"),k=b.lastIndexOf("@",F>-1?F:b.length-1),V;return k>-1&&(F===-1||k<F)?(V=b.substring(0,k).split(":"),w.username=V[0]?o.decode(V[0]):null,V.shift(),w.password=V[0]?o.decode(V.join(":")):null,b=I.substring(k+1)):(w.username=null,w.password=null),b},o.parseQuery=function(b,w){if(!b)return{};if(b=b.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!b)return{};for(var I={},R=b.split("&"),F=R.length,k,V,G,U=0;U<F;U++)k=R[U].split("="),V=o.decodeQuery(k.shift(),w),G=k.length?o.decodeQuery(k.join("="),w):null,V!=="__proto__"&&(c.call(I,V)?((typeof I[V]=="string"||I[V]===null)&&(I[V]=[I[V]]),I[V].push(G)):I[V]=G);return I},o.build=function(b){var w="",I=!1;return b.protocol&&(w+=b.protocol+":"),!b.urn&&(w||b.hostname)&&(w+="//",I=!0),w+=o.buildAuthority(b)||"",typeof b.path=="string"&&(b.path.charAt(0)!=="/"&&I&&(w+="/"),w+=b.path),typeof b.query=="string"&&b.query&&(w+="?"+b.query),typeof b.fragment=="string"&&b.fragment&&(w+="#"+b.fragment),w},o.buildHost=function(b){var w="";if(b.hostname)o.ip6_expression.test(b.hostname)?w+="["+b.hostname+"]":w+=b.hostname;else return"";return b.port&&(w+=":"+b.port),w},o.buildAuthority=function(b){return o.buildUserinfo(b)+o.buildHost(b)},o.buildUserinfo=function(b){var w="";return b.username&&(w+=o.encode(b.username)),b.password&&(w+=":"+o.encode(b.password)),w&&(w+="@"),w},o.buildQuery=function(b,w,I){var R="",F,k,V,G;for(k in b)if(k!=="__proto__"&&c.call(b,k))if(d(b[k]))for(F={},V=0,G=b[k].length;V<G;V++)b[k][V]!==void 0&&F[b[k][V]+""]===void 0&&(R+="&"+o.buildQueryParameter(k,b[k][V],I),w!==!0&&(F[b[k][V]+""]=!0));else b[k]!==void 0&&(R+="&"+o.buildQueryParameter(k,b[k],I));return R.substring(1)},o.buildQueryParameter=function(b,w,I){return o.encodeQuery(b,I)+(w!==null?"="+o.encodeQuery(w,I):"")},o.addQuery=function(b,w,I){if(typeof w=="object")for(var R in w)c.call(w,R)&&o.addQuery(b,R,w[R]);else if(typeof w=="string"){if(b[w]===void 0){b[w]=I;return}else typeof b[w]=="string"&&(b[w]=[b[w]]);d(I)||(I=[I]),b[w]=(b[w]||[]).concat(I)}else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter")},o.setQuery=function(b,w,I){if(typeof w=="object")for(var R in w)c.call(w,R)&&o.setQuery(b,R,w[R]);else if(typeof w=="string")b[w]=I===void 0?null:I;else throw new TypeError("URI.setQuery() accepts an object, string as the name parameter")},o.removeQuery=function(b,w,I){var R,F,k;if(d(w))for(R=0,F=w.length;R<F;R++)b[w[R]]=void 0;else if(f(w)==="RegExp")for(k in b)w.test(k)&&(b[k]=void 0);else if(typeof w=="object")for(k in w)c.call(w,k)&&o.removeQuery(b,k,w[k]);else if(typeof w=="string")I!==void 0?f(I)==="RegExp"?!d(b[w])&&I.test(b[w])?b[w]=void 0:b[w]=p(b[w],I):b[w]===String(I)&&(!d(I)||I.length===1)?b[w]=void 0:d(b[w])&&(b[w]=p(b[w],I)):b[w]=void 0;else throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter")},o.hasQuery=function(b,w,I,R){switch(f(w)){case"String":break;case"RegExp":for(var F in b)if(c.call(b,F)&&w.test(F)&&(I===void 0||o.hasQuery(b,F,I)))return!0;return!1;case"Object":for(var k in w)if(c.call(w,k)&&!o.hasQuery(b,k,w[k]))return!1;return!0;default:throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter")}switch(f(I)){case"Undefined":return w in b;case"Boolean":var V=!!(d(b[w])?b[w].length:b[w]);return I===V;case"Function":return!!I(b[w],w,b);case"Array":if(!d(b[w]))return!1;var G=R?g:m;return G(b[w],I);case"RegExp":return d(b[w])?R?g(b[w],I):!1:!!(b[w]&&b[w].match(I));case"Number":I=String(I);case"String":return d(b[w])?R?g(b[w],I):!1:b[w]===I;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter")}},o.joinPaths=function(){for(var b=[],w=[],I=0,R=0;R<arguments.length;R++){var F=new o(arguments[R]);b.push(F);for(var k=F.segment(),V=0;V<k.length;V++)typeof k[V]=="string"&&w.push(k[V]),k[V]&&I++}if(!w.length||!I)return new o("");var G=new o("").segment(w);return(b[0].path()===""||b[0].path().slice(0,1)==="/")&&G.path("/"+G.path()),G.normalize()},o.commonPath=function(b,w){var I=Math.min(b.length,w.length),R;for(R=0;R<I;R++)if(b.charAt(R)!==w.charAt(R)){R--;break}return R<1?b.charAt(0)===w.charAt(0)&&b.charAt(0)==="/"?"/":"":((b.charAt(R)!=="/"||w.charAt(R)!=="/")&&(R=b.substring(0,R).lastIndexOf("/")),b.substring(0,R+1))},o.withinString=function(b,w,I){I||(I={});var R=I.start||o.findUri.start,F=I.end||o.findUri.end,k=I.trim||o.findUri.trim,V=I.parens||o.findUri.parens,G=/[a-z0-9-]=["']?$/i;for(R.lastIndex=0;;){var U=R.exec(b);if(!U)break;var Y=U.index;if(I.ignoreHtml){var W=b.slice(Math.max(Y-3,0),Y);if(W&&G.test(W))continue}for(var Z=Y+b.slice(Y).search(F),j=b.slice(Y,Z),K=-1;;){var J=V.exec(j);if(!J)break;var _e=J.index+J[0].length;K=Math.max(K,_e)}if(K>-1?j=j.slice(0,K)+j.slice(K).replace(k,""):j=j.replace(k,""),!(j.length<=U[0].length)&&!(I.ignore&&I.ignore.test(j))){Z=Y+j.length;var xe=w(j,Y,Z,b);if(xe===void 0){R.lastIndex=Z;continue}xe=String(xe),b=b.slice(0,Y)+xe+b.slice(Z),R.lastIndex=Y+xe.length}}return R.lastIndex=0,b},o.ensureValidHostname=function(b,w){var I=!!b,R=!!w,F=!1;if(R&&(F=g(o.hostProtocols,w)),F&&!I)throw new TypeError("Hostname cannot be empty, if protocol is "+w);if(b&&b.match(o.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(b).match(o.invalid_hostname_characters))throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-:_]')}},o.ensureValidPort=function(b){if(b){var w=Number(b);if(!(s(w)&&w>0&&w<65536))throw new TypeError('Port "'+b+'" is not a valid port')}},o.noConflict=function(b){if(b){var w={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(w.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(w.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(w.SecondLevelDomains=i.SecondLevelDomains.noConflict()),w}else i.URI===this&&(i.URI=r);return this},a.build=function(b){return b===!0?this._deferred_build=!0:(b===void 0||this._deferred_build)&&(this._string=o.build(this._parts),this._deferred_build=!1),this},a.clone=function(){return new o(this)},a.valueOf=a.toString=function(){return this.build(!1)._string};function D(b){return function(w,I){return w===void 0?this._parts[b]||"":(this._parts[b]=w||null,this.build(!I),this)}}function M(b,w){return function(I,R){return I===void 0?this._parts[b]||"":(I!==null&&(I=I+"",I.charAt(0)===w&&(I=I.substring(1))),this._parts[b]=I,this.build(!R),this)}}a.protocol=D("protocol"),a.username=D("username"),a.password=D("password"),a.hostname=D("hostname"),a.port=D("port"),a.query=M("query","?"),a.fragment=M("fragment","#"),a.search=function(b,w){var I=this.query(b,w);return typeof I=="string"&&I.length?"?"+I:I},a.hash=function(b,w){var I=this.fragment(b,w);return typeof I=="string"&&I.length?"#"+I:I},a.pathname=function(b,w){if(b===void 0||b===!0){var I=this._parts.path||(this._parts.hostname?"/":"");return b?(this._parts.urn?o.decodeUrnPath:o.decodePath)(I):I}else return this._parts.urn?this._parts.path=b?o.recodeUrnPath(b):"":this._parts.path=b?o.recodePath(b):"/",this.build(!w),this},a.path=a.pathname,a.href=function(b,w){var I;if(b===void 0)return this.toString();this._string="",this._parts=o._parts();var R=b instanceof o,F=typeof b=="object"&&(b.hostname||b.path||b.pathname);if(b.nodeName){var k=o.getDomAttribute(b);b=b[k]||"",F=!1}if(!R&&F&&b.pathname!==void 0&&(b=b.toString()),typeof b=="string"||b instanceof String)this._parts=o.parse(String(b),this._parts);else if(R||F){var V=R?b._parts:b;for(I in V)I!=="query"&&c.call(this._parts,I)&&(this._parts[I]=V[I]);V.query&&this.query(V.query,!1)}else throw new TypeError("invalid input");return this.build(!w),this},a.is=function(b){var w=!1,I=!1,R=!1,F=!1,k=!1,V=!1,G=!1,U=!this._parts.urn;switch(this._parts.hostname&&(U=!1,I=o.ip4_expression.test(this._parts.hostname),R=o.ip6_expression.test(this._parts.hostname),w=I||R,F=!w,k=F&&n&&n.has(this._parts.hostname),V=F&&o.idn_expression.test(this._parts.hostname),G=F&&o.punycode_expression.test(this._parts.hostname)),b.toLowerCase()){case"relative":return U;case"absolute":return!U;case"domain":case"name":return F;case"sld":return k;case"ip":return w;case"ip4":case"ipv4":case"inet4":return I;case"ip6":case"ipv6":case"inet6":return R;case"idn":return V;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return G}return null};var O=a.protocol,B=a.port,L=a.hostname;a.protocol=function(b,w){if(b&&(b=b.replace(/:(\/\/)?$/,""),!b.match(o.protocol_expression)))throw new TypeError('Protocol "'+b+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return O.call(this,b,w)},a.scheme=a.protocol,a.port=function(b,w){return this._parts.urn?b===void 0?"":this:(b!==void 0&&(b===0&&(b=null),b&&(b+="",b.charAt(0)===":"&&(b=b.substring(1)),o.ensureValidPort(b))),B.call(this,b,w))},a.hostname=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b!==void 0){var I={preventInvalidHostname:this._parts.preventInvalidHostname},R=o.parseHost(b,I);if(R!=="/")throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-]');b=I.hostname,this._parts.preventInvalidHostname&&o.ensureValidHostname(b,this._parts.protocol)}return L.call(this,b,w)},a.origin=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0){var I=this.protocol(),R=this.authority();return R?(I?I+"://":"")+this.authority():""}else{var F=o(b);return this.protocol(F.protocol()).authority(F.authority()).build(!w),this}},a.host=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0)return this._parts.hostname?o.buildHost(this._parts):"";var I=o.parseHost(b,this._parts);if(I!=="/")throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.authority=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0)return this._parts.hostname?o.buildAuthority(this._parts):"";var I=o.parseAuthority(b,this._parts);if(I!=="/")throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.userinfo=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0){var I=o.buildUserinfo(this._parts);return I&&I.substring(0,I.length-1)}else return b[b.length-1]!=="@"&&(b+="@"),o.parseUserinfo(b,this._parts),this.build(!w),this},a.resource=function(b,w){var I;return b===void 0?this.path()+this.search()+this.hash():(I=o.parse(b),this._parts.path=I.path,this._parts.query=I.query,this._parts.fragment=I.fragment,this.build(!w),this)},a.subdomain=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,I)||""}else{var R=this._parts.hostname.length-this.domain().length,F=this._parts.hostname.substring(0,R),k=new RegExp("^"+l(F));if(b&&b.charAt(b.length-1)!=="."&&(b+="."),b.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return b&&o.ensureValidHostname(b,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(k,b),this.build(!w),this}},a.domain=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(typeof b=="boolean"&&(w=b,b=void 0),b===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.match(/\./g);if(I&&I.length<2)return this._parts.hostname;var R=this._parts.hostname.length-this.tld(w).length-1;return R=this._parts.hostname.lastIndexOf(".",R-1)+1,this._parts.hostname.substring(R)||""}else{if(!b)throw new TypeError("cannot set domain empty");if(b.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(o.ensureValidHostname(b,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=b;else{var F=new RegExp(l(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(F,b)}return this.build(!w),this}},a.tld=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(typeof b=="boolean"&&(w=b,b=void 0),b===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.lastIndexOf("."),R=this._parts.hostname.substring(I+1);return w!==!0&&n&&n.list[R.toLowerCase()]&&n.get(this._parts.hostname)||R}else{var F;if(b)if(b.match(/[^a-zA-Z0-9-]/))if(n&&n.is(b))F=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(F,b);else throw new TypeError('TLD "'+b+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");F=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(F,b)}else throw new TypeError("cannot set TLD empty");return this.build(!w),this}},a.directory=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0||b===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var I=this._parts.path.length-this.filename().length-1,R=this._parts.path.substring(0,I)||(this._parts.hostname?"/":"");return b?o.decodePath(R):R}else{var F=this._parts.path.length-this.filename().length,k=this._parts.path.substring(0,F),V=new RegExp("^"+l(k));return this.is("relative")||(b||(b="/"),b.charAt(0)!=="/"&&(b="/"+b)),b&&b.charAt(b.length-1)!=="/"&&(b+="/"),b=o.recodePath(b),this._parts.path=this._parts.path.replace(V,b),this.build(!w),this}},a.filename=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(typeof b!="string"){if(!this._parts.path||this._parts.path==="/")return"";var I=this._parts.path.lastIndexOf("/"),R=this._parts.path.substring(I+1);return b?o.decodePathSegment(R):R}else{var F=!1;b.charAt(0)==="/"&&(b=b.substring(1)),b.match(/\.?\//)&&(F=!0);var k=new RegExp(l(this.filename())+"$");return b=o.recodePath(b),this._parts.path=this._parts.path.replace(k,b),F?this.normalizePath(w):this.build(!w),this}},a.suffix=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0||b===!0){if(!this._parts.path||this._parts.path==="/")return"";var I=this.filename(),R=I.lastIndexOf("."),F,k;return R===-1?"":(F=I.substring(R+1),k=/^[a-z0-9%]+$/i.test(F)?F:"",b?o.decodePathSegment(k):k)}else{b.charAt(0)==="."&&(b=b.substring(1));var V=this.suffix(),G;if(V)b?G=new RegExp(l(V)+"$"):G=new RegExp(l("."+V)+"$");else{if(!b)return this;this._parts.path+="."+o.recodePath(b)}return G&&(b=o.recodePath(b),this._parts.path=this._parts.path.replace(G,b)),this.build(!w),this}},a.segment=function(b,w,I){var R=this._parts.urn?":":"/",F=this.path(),k=F.substring(0,1)==="/",V=F.split(R);if(b!==void 0&&typeof b!="number"&&(I=w,w=b,b=void 0),b!==void 0&&typeof b!="number")throw new Error('Bad segment "'+b+'", must be 0-based integer');if(k&&V.shift(),b<0&&(b=Math.max(V.length+b,0)),w===void 0)return b===void 0?V:V[b];if(b===null||V[b]===void 0)if(d(w)){V=[];for(var G=0,U=w.length;G<U;G++)!w[G].length&&(!V.length||!V[V.length-1].length)||(V.length&&!V[V.length-1].length&&V.pop(),V.push(A(w[G])))}else(w||typeof w=="string")&&(w=A(w),V[V.length-1]===""?V[V.length-1]=w:V.push(w));else w?V[b]=A(w):V.splice(b,1);return k&&V.unshift(""),this.path(V.join(R),I)},a.segmentCoded=function(b,w,I){var R,F,k;if(typeof b!="number"&&(I=w,w=b,b=void 0),w===void 0){if(R=this.segment(b,w,I),!d(R))R=R!==void 0?o.decode(R):void 0;else for(F=0,k=R.length;F<k;F++)R[F]=o.decode(R[F]);return R}if(!d(w))w=typeof w=="string"||w instanceof String?o.encode(w):w;else for(F=0,k=w.length;F<k;F++)w[F]=o.encode(w[F]);return this.segment(b,w,I)};var _=a.query;return a.query=function(b,w){if(b===!0)return o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof b=="function"){var I=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace),R=b.call(this,I);return this._parts.query=o.buildQuery(R||I,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!w),this}else return b!==void 0&&typeof b!="string"?(this._parts.query=o.buildQuery(b,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!w),this):_.call(this,b,w)},a.setQuery=function(b,w,I){var R=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof b=="string"||b instanceof String)R[b]=w!==void 0?w:null;else if(typeof b=="object")for(var F in b)c.call(b,F)&&(R[F]=b[F]);else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");return this._parts.query=o.buildQuery(R,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof b!="string"&&(I=w),this.build(!I),this},a.addQuery=function(b,w,I){var R=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return o.addQuery(R,b,w===void 0?null:w),this._parts.query=o.buildQuery(R,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof b!="string"&&(I=w),this.build(!I),this},a.removeQuery=function(b,w,I){var R=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return o.removeQuery(R,b,w),this._parts.query=o.buildQuery(R,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof b!="string"&&(I=w),this.build(!I),this},a.hasQuery=function(b,w,I){var R=o.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return o.hasQuery(R,b,w,I)},a.setSearch=a.setQuery,a.addSearch=a.addQuery,a.removeSearch=a.removeQuery,a.hasSearch=a.hasQuery,a.normalize=function(){return this._parts.urn?this.normalizeProtocol(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build():this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build()},a.normalizeProtocol=function(b){return typeof this._parts.protocol=="string"&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!b)),this},a.normalizeHostname=function(b){return this._parts.hostname&&(this.is("IDN")&&e?this._parts.hostname=e.toASCII(this._parts.hostname):this.is("IPv6")&&t&&(this._parts.hostname=t.best(this._parts.hostname)),this._parts.hostname=this._parts.hostname.toLowerCase(),this.build(!b)),this},a.normalizePort=function(b){return typeof this._parts.protocol=="string"&&this._parts.port===o.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!b)),this},a.normalizePath=function(b){var w=this._parts.path;if(!w)return this;if(this._parts.urn)return this._parts.path=o.recodeUrnPath(this._parts.path),this.build(!b),this;if(this._parts.path==="/")return this;w=o.recodePath(w);var I,R="",F,k;for(w.charAt(0)!=="/"&&(I=!0,w="/"+w),(w.slice(-3)==="/.."||w.slice(-2)==="/.")&&(w+="/"),w=w.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),I&&(R=w.substring(1).match(/^(\.\.\/)+/)||"",R&&(R=R[0]));F=w.search(/\/\.\.(\/|$)/),F!==-1;){if(F===0){w=w.substring(3);continue}k=w.substring(0,F).lastIndexOf("/"),k===-1&&(k=F),w=w.substring(0,k)+w.substring(F+3)}return I&&this.is("relative")&&(w=R+w.substring(1)),this._parts.path=w,this.build(!b),this},a.normalizePathname=a.normalizePath,a.normalizeQuery=function(b){return typeof this._parts.query=="string"&&(this._parts.query.length?this.query(o.parseQuery(this._parts.query,this._parts.escapeQuerySpace)):this._parts.query=null,this.build(!b)),this},a.normalizeFragment=function(b){return this._parts.fragment||(this._parts.fragment=null,this.build(!b)),this},a.normalizeSearch=a.normalizeQuery,a.normalizeHash=a.normalizeFragment,a.iso8859=function(){var b=o.encode,w=o.decode;o.encode=escape,o.decode=decodeURIComponent;try{this.normalize()}finally{o.encode=b,o.decode=w}return this},a.unicode=function(){var b=o.encode,w=o.decode;o.encode=C,o.decode=unescape;try{this.normalize()}finally{o.encode=b,o.decode=w}return this},a.readable=function(){var b=this.clone();b.username("").password("").normalize();var w="";if(b._parts.protocol&&(w+=b._parts.protocol+"://"),b._parts.hostname&&(b.is("punycode")&&e?(w+=e.toUnicode(b._parts.hostname),b._parts.port&&(w+=":"+b._parts.port)):w+=b.host()),b._parts.hostname&&b._parts.path&&b._parts.path.charAt(0)!=="/"&&(w+="/"),w+=b.path(!0),b._parts.query){for(var I="",R=0,F=b._parts.query.split("&"),k=F.length;R<k;R++){var V=(F[R]||"").split("=");I+="&"+o.decodeQuery(V[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),V[1]!==void 0&&(I+="="+o.decodeQuery(V[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"))}w+="?"+I.substring(1)}return w+=o.decodeQuery(b.hash(),!0),w},a.absoluteTo=function(b){var w=this.clone(),I=["protocol","username","password","hostname","port"],R,F,k;if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(b instanceof o||(b=new o(b)),w._parts.protocol||(w._parts.protocol=b._parts.protocol,this._parts.hostname))return w;for(F=0;k=I[F];F++)w._parts[k]=b._parts[k];return w._parts.path?(w._parts.path.substring(-2)===".."&&(w._parts.path+="/"),w.path().charAt(0)!=="/"&&(R=b.directory(),R=R||(b.path().indexOf("/")===0?"/":""),w._parts.path=(R?R+"/":"")+w._parts.path,w.normalizePath())):(w._parts.path=b._parts.path,w._parts.query||(w._parts.query=b._parts.query)),w.build(),w},a.relativeTo=function(b){var w=this.clone().normalize(),I,R,F,k,V;if(w._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(b=new o(b).normalize(),I=w._parts,R=b._parts,k=w.path(),V=b.path(),k.charAt(0)!=="/")throw new Error("URI is already relative");if(V.charAt(0)!=="/")throw new Error("Cannot calculate a URI relative to another relative URI");if(I.protocol===R.protocol&&(I.protocol=null),I.username!==R.username||I.password!==R.password||I.protocol!==null||I.username!==null||I.password!==null)return w.build();if(I.hostname===R.hostname&&I.port===R.port)I.hostname=null,I.port=null;else return w.build();if(k===V)return I.path="",w.build();if(F=o.commonPath(k,V),!F)return w.build();var G=R.path.substring(F.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../");return I.path=G+I.path.substring(F.length)||"./",w.build()},a.equals=function(b){var w=this.clone(),I=new o(b),R={},F={},k={},V,G,U;if(w.normalize(),I.normalize(),w.toString()===I.toString())return!0;if(V=w.query(),G=I.query(),w.query(""),I.query(""),w.toString()!==I.toString()||V.length!==G.length)return!1;R=o.parseQuery(V,this._parts.escapeQuerySpace),F=o.parseQuery(G,this._parts.escapeQuerySpace);for(U in R)if(c.call(R,U)){if(d(R[U])){if(!m(R[U],F[U]))return!1}else if(R[U]!==F[U])return!1;k[U]=!0}for(U in F)if(c.call(F,U)&&!k[U])return!1;return!0},a.preventInvalidHostname=function(b){return this._parts.preventInvalidHostname=!!b,this},a.duplicateQueryParameters=function(b){return this._parts.duplicateQueryParameters=!!b,this},a.escapeQuerySpace=function(b){return this._parts.escapeQuerySpace=!!b,this},o})});var Nte=Jn((X9t,Lte)=>{"use strict";/*! @license DOMPurify 3.0.2 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.2/LICENSE */var{entries:Ote,setPrototypeOf:bte,isFrozen:$Oe,getPrototypeOf:eMe,getOwnPropertyDescriptor:tMe}=Object,{freeze:Lc,seal:Ad,create:nMe}=Object,{apply:A5,construct:x5}=typeof Reflect<"u"&&Reflect;A5||(A5=function(t,n,i){return t.apply(n,i)});Lc||(Lc=function(t){return t});Ad||(Ad=function(t){return t});x5||(x5=function(t,n){return new t(...n)});var iMe=nf(Array.prototype.forEach),Ste=nf(Array.prototype.pop),OP=nf(Array.prototype.push),xU=nf(String.prototype.toLowerCase),h5=nf(String.prototype.toString),rMe=nf(String.prototype.match),yd=nf(String.prototype.replace),oMe=nf(String.prototype.indexOf),sMe=nf(String.prototype.trim),ru=nf(RegExp.prototype.test),m5=aMe(TypeError);function nf(e){return function(t){for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return A5(e,t,i)}}function aMe(e){return function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return x5(e,n)}}function hi(e,t,n){n=n||xU,bte&&bte(e,null);let i=t.length;for(;i--;){let r=t[i];if(typeof r=="string"){let o=n(r);o!==r&&($Oe(t)||(t[i]=o),r=o)}e[r]=!0}return e}function PT(e){let t=nMe(null);for(let[n,i]of Ote(e))t[n]=i;return t}function yU(e,t){for(;e!==null;){let i=tMe(e,t);if(i){if(i.get)return nf(i.get);if(typeof i.value=="function")return nf(i.value)}e=eMe(e)}function n(i){return console.warn("fallback value for",i),null}return n}var vte=Lc(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),p5=Lc(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),_5=Lc(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),cMe=Lc(["animate","color-profile","cursor","discard","fedropshadow","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),g5=Lc(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),lMe=Lc(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),wte=Lc(["#text"]),Dte=Lc(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),y5=Lc(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Ite=Lc(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),AU=Lc(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),uMe=Ad(/\{\{[\w\W]*|[\w\W]*\}\}/gm),fMe=Ad(/<%[\w\W]*|[\w\W]*%>/gm),dMe=Ad(/\${[\w\W]*}/gm),hMe=Ad(/^data-[\-\w.\u00B7-\uFFFF]/),mMe=Ad(/^aria-[\-\w]+$/),Mte=Ad(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),pMe=Ad(/^(?:\w+script|data):/i),_Me=Ad(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Rte=Ad(/^html$/i),Pte=Object.freeze({__proto__:null,MUSTACHE_EXPR:uMe,ERB_EXPR:fMe,TMPLIT_EXPR:dMe,DATA_ATTR:hMe,ARIA_ATTR:mMe,IS_ALLOWED_URI:Mte,IS_SCRIPT_OR_DATA:pMe,ATTR_WHITESPACE:_Me,DOCTYPE_NAME:Rte}),gMe=()=>typeof window>"u"?null:window,yMe=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null,r="data-tt-policy-suffix";n.currentScript&&n.currentScript.hasAttribute(r)&&(i=n.currentScript.getAttribute(r));let o="dompurify"+(i?"#"+i:"");try{return t.createPolicy(o,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}};function Bte(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:gMe(),t=an=>Bte(an);if(t.version="3.0.2",t.removed=[],!e||!e.document||e.document.nodeType!==9)return t.isSupported=!1,t;let n=e.document,{document:i}=e,{DocumentFragment:r,HTMLTemplateElement:o,Node:s,Element:a,NodeFilter:c,NamedNodeMap:l=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:f,DOMParser:d,trustedTypes:p}=e,g=a.prototype,m=yU(g,"cloneNode"),A=yU(g,"nextSibling"),x=yU(g,"childNodes"),C=yU(g,"parentNode");if(typeof o=="function"){let an=i.createElement("template");an.content&&an.content.ownerDocument&&(i=an.content.ownerDocument)}let T=yMe(p,n),E=T?T.createHTML(""):"",{implementation:S,createNodeIterator:v,createDocumentFragment:D,getElementsByTagName:M}=i,{importNode:O}=n,B={};t.isSupported=typeof Ote=="function"&&typeof C=="function"&&S&&typeof S.createHTMLDocument<"u";let{MUSTACHE_EXPR:L,ERB_EXPR:_,TMPLIT_EXPR:b,DATA_ATTR:w,ARIA_ATTR:I,IS_SCRIPT_OR_DATA:R,ATTR_WHITESPACE:F}=Pte,{IS_ALLOWED_URI:k}=Pte,V=null,G=hi({},[...vte,...p5,..._5,...g5,...wte]),U=null,Y=hi({},[...Dte,...y5,...Ite,...AU]),W=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Z=null,j=null,K=!0,J=!0,_e=!1,xe=!0,oe=!1,Ae=!1,he=!1,Se=!1,Ie=!1,Ne=!1,qe=!1,pt=!0,Gt=!1,fn="user-content-",ft=!0,pn=!1,Bn={},Vt=null,Qe=hi({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),pe=null,Ee=hi({},["audio","video","img","source","image","track"]),Ge=null,xi=hi({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ci="http://www.w3.org/1998/Math/MathML",Ir="http://www.w3.org/2000/svg",Wr="http://www.w3.org/1999/xhtml",Co=Wr,Vo=!1,Cs=null,Re=hi({},[Ci,Ir,Wr],h5),it,Je=["application/xhtml+xml","text/html"],Ze="text/html",ot,Nt=null,Tn=i.createElement("form"),ar=function(we){return we instanceof RegExp||we instanceof Function},Cr=function(we){Nt&&Nt===we||((!we||typeof we!="object")&&(we={}),we=PT(we),it=Je.indexOf(we.PARSER_MEDIA_TYPE)===-1?it=Ze:it=we.PARSER_MEDIA_TYPE,ot=it==="application/xhtml+xml"?h5:xU,V="ALLOWED_TAGS"in we?hi({},we.ALLOWED_TAGS,ot):G,U="ALLOWED_ATTR"in we?hi({},we.ALLOWED_ATTR,ot):Y,Cs="ALLOWED_NAMESPACES"in we?hi({},we.ALLOWED_NAMESPACES,h5):Re,Ge="ADD_URI_SAFE_ATTR"in we?hi(PT(xi),we.ADD_URI_SAFE_ATTR,ot):xi,pe="ADD_DATA_URI_TAGS"in we?hi(PT(Ee),we.ADD_DATA_URI_TAGS,ot):Ee,Vt="FORBID_CONTENTS"in we?hi({},we.FORBID_CONTENTS,ot):Qe,Z="FORBID_TAGS"in we?hi({},we.FORBID_TAGS,ot):{},j="FORBID_ATTR"in we?hi({},we.FORBID_ATTR,ot):{},Bn="USE_PROFILES"in we?we.USE_PROFILES:!1,K=we.ALLOW_ARIA_ATTR!==!1,J=we.ALLOW_DATA_ATTR!==!1,_e=we.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=we.ALLOW_SELF_CLOSE_IN_ATTR!==!1,oe=we.SAFE_FOR_TEMPLATES||!1,Ae=we.WHOLE_DOCUMENT||!1,Ie=we.RETURN_DOM||!1,Ne=we.RETURN_DOM_FRAGMENT||!1,qe=we.RETURN_TRUSTED_TYPE||!1,Se=we.FORCE_BODY||!1,pt=we.SANITIZE_DOM!==!1,Gt=we.SANITIZE_NAMED_PROPS||!1,ft=we.KEEP_CONTENT!==!1,pn=we.IN_PLACE||!1,k=we.ALLOWED_URI_REGEXP||Mte,Co=we.NAMESPACE||Wr,W=we.CUSTOM_ELEMENT_HANDLING||{},we.CUSTOM_ELEMENT_HANDLING&&ar(we.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(W.tagNameCheck=we.CUSTOM_ELEMENT_HANDLING.tagNameCheck),we.CUSTOM_ELEMENT_HANDLING&&ar(we.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(W.attributeNameCheck=we.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),we.CUSTOM_ELEMENT_HANDLING&&typeof we.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(W.allowCustomizedBuiltInElements=we.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),oe&&(J=!1),Ne&&(Ie=!0),Bn&&(V=hi({},[...wte]),U=[],Bn.html===!0&&(hi(V,vte),hi(U,Dte)),Bn.svg===!0&&(hi(V,p5),hi(U,y5),hi(U,AU)),Bn.svgFilters===!0&&(hi(V,_5),hi(U,y5),hi(U,AU)),Bn.mathMl===!0&&(hi(V,g5),hi(U,Ite),hi(U,AU))),we.ADD_TAGS&&(V===G&&(V=PT(V)),hi(V,we.ADD_TAGS,ot)),we.ADD_ATTR&&(U===Y&&(U=PT(U)),hi(U,we.ADD_ATTR,ot)),we.ADD_URI_SAFE_ATTR&&hi(Ge,we.ADD_URI_SAFE_ATTR,ot),we.FORBID_CONTENTS&&(Vt===Qe&&(Vt=PT(Vt)),hi(Vt,we.FORBID_CONTENTS,ot)),ft&&(V["#text"]=!0),Ae&&hi(V,["html","head","body"]),V.table&&(hi(V,["tbody"]),delete Z.tbody),Lc&&Lc(we),Nt=we)},Ts=hi({},["mi","mo","mn","ms","mtext"]),Jo=hi({},["foreignobject","desc","title","annotation-xml"]),uo=hi({},["title","style","font","a","script"]),Di=hi({},p5);hi(Di,_5),hi(Di,cMe);let zo=hi({},g5);hi(zo,lMe);let Hn=function(we){let dt=C(we);(!dt||!dt.tagName)&&(dt={namespaceURI:Co,tagName:"template"});let It=xU(we.tagName),cr=xU(dt.tagName);return Cs[we.namespaceURI]?we.namespaceURI===Ir?dt.namespaceURI===Wr?It==="svg":dt.namespaceURI===Ci?It==="svg"&&(cr==="annotation-xml"||Ts[cr]):!!Di[It]:we.namespaceURI===Ci?dt.namespaceURI===Wr?It==="math":dt.namespaceURI===Ir?It==="math"&&Jo[cr]:!!zo[It]:we.namespaceURI===Wr?dt.namespaceURI===Ir&&!Jo[cr]||dt.namespaceURI===Ci&&!Ts[cr]?!1:!zo[It]&&(uo[It]||!Di[It]):!!(it==="application/xhtml+xml"&&Cs[we.namespaceURI]):!1},In=function(we){OP(t.removed,{element:we});try{we.parentNode.removeChild(we)}catch{we.remove()}},Gn=function(we,dt){try{OP(t.removed,{attribute:dt.getAttributeNode(we),from:dt})}catch{OP(t.removed,{attribute:null,from:dt})}if(dt.removeAttribute(we),we==="is"&&!U[we])if(Ie||Ne)try{In(dt)}catch{}else try{dt.setAttribute(we,"")}catch{}},$n=function(we){let dt,It;if(Se)we="<remove></remove>"+we;else{let ql=rMe(we,/^[\r\n\t ]+/);It=ql&&ql[0]}it==="application/xhtml+xml"&&Co===Wr&&(we='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+we+"</body></html>");let cr=T?T.createHTML(we):we;if(Co===Wr)try{dt=new d().parseFromString(cr,it)}catch{}if(!dt||!dt.documentElement){dt=S.createDocument(Co,"template",null);try{dt.documentElement.innerHTML=Vo?E:cr}catch{}}let os=dt.body||dt.documentElement;return we&&It&&os.insertBefore(i.createTextNode(It),os.childNodes[0]||null),Co===Wr?M.call(dt,Ae?"html":"body")[0]:Ae?dt.documentElement:os},Ma=function(we){return v.call(we.ownerDocument||we,we,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT,null,!1)},Nr=function(we){return we instanceof f&&(typeof we.nodeName!="string"||typeof we.textContent!="string"||typeof we.removeChild!="function"||!(we.attributes instanceof l)||typeof we.removeAttribute!="function"||typeof we.setAttribute!="function"||typeof we.namespaceURI!="string"||typeof we.insertBefore!="function"||typeof we.hasChildNodes!="function")},Zo=function(we){return typeof s=="object"?we instanceof s:we&&typeof we=="object"&&typeof we.nodeType=="number"&&typeof we.nodeName=="string"},fa=function(we,dt,It){B[we]&&iMe(B[we],cr=>{cr.call(t,dt,It,Nt)})},fo=function(we){let dt;if(fa("beforeSanitizeElements",we,null),Nr(we))return In(we),!0;let It=ot(we.nodeName);if(fa("uponSanitizeElement",we,{tagName:It,allowedTags:V}),we.hasChildNodes()&&!Zo(we.firstElementChild)&&(!Zo(we.content)||!Zo(we.content.firstElementChild))&&ru(/<[/\w]/g,we.innerHTML)&&ru(/<[/\w]/g,we.textContent))return In(we),!0;if(!V[It]||Z[It]){if(!Z[It]&&td(It)&&(W.tagNameCheck instanceof RegExp&&ru(W.tagNameCheck,It)||W.tagNameCheck instanceof Function&&W.tagNameCheck(It)))return!1;if(ft&&!Vt[It]){let cr=C(we)||we.parentNode,os=x(we)||we.childNodes;if(os&&cr){let ql=os.length;for(let To=ql-1;To>=0;--To)cr.insertBefore(m(os[To],!0),A(we))}}return In(we),!0}return we instanceof a&&!Hn(we)||(It==="noscript"||It==="noembed")&&ru(/<\/no(script|embed)/i,we.innerHTML)?(In(we),!0):(oe&&we.nodeType===3&&(dt=we.textContent,dt=yd(dt,L," "),dt=yd(dt,_," "),dt=yd(dt,b," "),we.textContent!==dt&&(OP(t.removed,{element:we.cloneNode()}),we.textContent=dt)),fa("afterSanitizeElements",we,null),!1)},Cc=function(we,dt,It){if(pt&&(dt==="id"||dt==="name")&&(It in i||It in Tn))return!1;if(!(J&&!j[dt]&&ru(w,dt))){if(!(K&&ru(I,dt))){if(!U[dt]||j[dt]){if(!(td(we)&&(W.tagNameCheck instanceof RegExp&&ru(W.tagNameCheck,we)||W.tagNameCheck instanceof Function&&W.tagNameCheck(we))&&(W.attributeNameCheck instanceof RegExp&&ru(W.attributeNameCheck,dt)||W.attributeNameCheck instanceof Function&&W.attributeNameCheck(dt))||dt==="is"&&W.allowCustomizedBuiltInElements&&(W.tagNameCheck instanceof RegExp&&ru(W.tagNameCheck,It)||W.tagNameCheck instanceof Function&&W.tagNameCheck(It))))return!1}else if(!Ge[dt]){if(!ru(k,yd(It,F,""))){if(!((dt==="src"||dt==="xlink:href"||dt==="href")&&we!=="script"&&oMe(It,"data:")===0&&pe[we])){if(!(_e&&!ru(R,yd(It,F,"")))){if(It)return!1}}}}}}return!0},td=function(we){return we.indexOf("-")>0},jm=function(we){let dt,It,cr,os;fa("beforeSanitizeAttributes",we,null);let{attributes:ql}=we;if(!ql)return;let To={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:U};for(os=ql.length;os--;){dt=ql[os];let{name:wh,namespaceURI:tG}=dt;if(It=wh==="value"?dt.value:sMe(dt.value),cr=ot(wh),To.attrName=cr,To.attrValue=It,To.keepAttr=!0,To.forceKeepAttr=void 0,fa("uponSanitizeAttribute",we,To),It=To.attrValue,To.forceKeepAttr||(Gn(wh,we),!To.keepAttr))continue;if(!xe&&ru(/\/>/i,It)){Gn(wh,we);continue}oe&&(It=yd(It,L," "),It=yd(It,_," "),It=yd(It,b," "));let ZK=ot(we.nodeName);if(Cc(ZK,cr,It)){if(Gt&&(cr==="id"||cr==="name")&&(Gn(wh,we),It=fn+It),T&&typeof p=="object"&&typeof p.getAttributeType=="function"&&!tG)switch(p.getAttributeType(ZK,cr)){case"TrustedHTML":It=T.createHTML(It);break;case"TrustedScriptURL":It=T.createScriptURL(It);break}try{tG?we.setAttributeNS(tG,wh,It):we.setAttribute(wh,It),Ste(t.removed)}catch{}}}fa("afterSanitizeAttributes",we,null)},Ra=function an(we){let dt,It=Ma(we);for(fa("beforeSanitizeShadowDOM",we,null);dt=It.nextNode();)fa("uponSanitizeShadowNode",dt,null),!fo(dt)&&(dt.content instanceof r&&an(dt.content),jm(dt));fa("afterSanitizeShadowDOM",we,null)};return t.sanitize=function(an){let we=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},dt,It,cr,os;if(Vo=!an,Vo&&(an="<!-->"),typeof an!="string"&&!Zo(an)){if(typeof an.toString!="function")throw m5("toString is not a function");if(an=an.toString(),typeof an!="string")throw m5("dirty is not a string, aborting")}if(!t.isSupported)return an;if(he||Cr(we),t.removed=[],typeof an=="string"&&(pn=!1),pn){if(an.nodeName){let wh=ot(an.nodeName);if(!V[wh]||Z[wh])throw m5("root node is forbidden and cannot be sanitized in-place")}}else if(an instanceof s)dt=$n("<!---->"),It=dt.ownerDocument.importNode(an,!0),It.nodeType===1&&It.nodeName==="BODY"||It.nodeName==="HTML"?dt=It:dt.appendChild(It);else{if(!Ie&&!oe&&!Ae&&an.indexOf("<")===-1)return T&&qe?T.createHTML(an):an;if(dt=$n(an),!dt)return Ie?null:qe?E:""}dt&&Se&&In(dt.firstChild);let ql=Ma(pn?an:dt);for(;cr=ql.nextNode();)fo(cr)||(cr.content instanceof r&&Ra(cr.content),jm(cr));if(pn)return an;if(Ie){if(Ne)for(os=D.call(dt.ownerDocument);dt.firstChild;)os.appendChild(dt.firstChild);else os=dt;return(U.shadowroot||U.shadowrootmod)&&(os=O.call(n,os,!0)),os}let To=Ae?dt.outerHTML:dt.innerHTML;return Ae&&V["!doctype"]&&dt.ownerDocument&&dt.ownerDocument.doctype&&dt.ownerDocument.doctype.name&&ru(Rte,dt.ownerDocument.doctype.name)&&(To="<!DOCTYPE "+dt.ownerDocument.doctype.name+`> +`+To),oe&&(To=yd(To,L," "),To=yd(To,_," "),To=yd(To,b," ")),T&&qe?T.createHTML(To):To},t.setConfig=function(an){Cr(an),he=!0},t.clearConfig=function(){Nt=null,he=!1},t.isValidAttribute=function(an,we,dt){Nt||Cr({});let It=ot(an),cr=ot(we);return Cc(It,cr,dt)},t.addHook=function(an,we){typeof we=="function"&&(B[an]=B[an]||[],OP(B[an],we))},t.removeHook=function(an){if(B[an])return Ste(B[an])},t.removeHooks=function(an){B[an]&&(B[an]=[])},t.removeAllHooks=function(){B={}},t}var AMe=Bte();Lte.exports=AMe});var Sne=Jn((WP,V5)=>{var BU=function(){"use strict";var e="B9h79tEBBBENQ9gEUEU9gEUB9gBB9gVUUUUUEU9gDUUEU9gLUUUUEU9gVUUUUUB9gLUUUUB9gIUUUEU9gD99UE99I8ayDILEVLEVLOOOOORRVBWWBEdddLVE9wEIIVIEBEOWEUEC+g/KEKR/QIhO9tw9t9vv95DBh9f9f939h79t9f9j9h229f9jT9vv7BB8a9tw79o9v9wT9fw9u9j9v9kw9WwvTw949C919m9mwvBE8f9tw79o9v9wT9fw9u9j9v9kw9WwvTw949C919m9mwv9C9v919u9kBDe9tw79o9v9wT9fw9u9j9v9kw9WwvTw949Wwv79p9v9uBIy9tw79o9v9wT9fw9u9j9v9kw69u9kw949C919m9mwvBL8e9tw79o9v9wT9fw9u9j9v9kw69u9kw949C919m9mwv9C9v919u9kBV8a9tw79o9v9wT9fw9u9j9v9kw69u9kw949Wwv79p9v9uBOe9tw79o9v9wT9fw9u9j9v9kw69u9kw949Twg91w9u9jwBRA9tw79o9v9wT9fw9u9j9v9kw69u9kw949Twg91w9u9jw9C9v919u9kBWl9tw79o9v9wT9fw9u9j9v9kws9p2Twv9P9jTBdk9tw79o9v9wT9fw9u9j9v9kws9p2Twv9R919hTBQl9tw79o9v9wT9fw9u9j9v9kws9p2Twvt949wBKe9tw79o9v9wT9f9v9wT9p9t9p96w9WwvTw94j9h9j9owBpA9tw79o9v9wT9f9v9wT9p9t9p96w9WwvTw94j9h9j9ow9TTv9p9wBSA9tw79o9v9wT9f9v9wT9p9t9p96w9WwvTw94swT9j9o9Sw9t9h9wBZL79iv9rBhdWEBCEKDxcQ+1tyDBK/hKEyU8jJJJJBCJO9rGV8kJJJJBCBHODNALCEFAE0MBABCBrB+Q+KJJBC+gEv86BBAVCJDFCBCJDZ+TJJJB8aDNAItMBAVCJDFADALZmJJJB8aKABAEFHRABCEFHWAVALFCBCBCJDAL9rALCfE0eZ+TJJJB8aAVAVCJDFALZmJJJBHdCJ/ABAL9uHEDNDNALtMBAEC/wfBgGECJDAECJD6eHQCBHKINAKAI9PMEAdCJLFCBCJDZ+TJJJB8aAQAIAK9rAKAQFAI6eGXCSFGECL4CIFCD4HMADAKAL2FHpDNDNDNDNDNAEC9wgGStMBCBHZCEHhApHoAWHaXEKDNAXtMBCBHaCEHhApHcINAdAaFrBBHxAcHECBHOINAdCJLFAOFAErBBGqAx9rGxCETAxCkTCk91CR4786BBAEALFHEAqHxAOCEFGOAX9HMBKARAW9rAM6MIAWCBAMZ+TJJJBGEtMIAEAMFHWAcCEFHcAaCEFGaAL6HhAaAL9HMBXVKKARAW9rAM6MOAWCBAMZ+TJJJB8aCEHEINAWGxAMFHWALAEGOsMLDNARAW9rAM6MBAOCEFHEAWCBAMZ+TJJJB8aAxMEKKCBHWAOAL6MOXIKINDNAXtMBAdAZFrBBHxCBHEAoHOINAdCJLFAEFAOrBBGqAx9rGxCETAxCkTCk91CR4786BBAOALFHOAqHxAECEFGEAX9HMBKKARAa9rAM6MEARAaCBAMZ+TJJJBGlAMFGW9rCk6MDCBHkAdCJLFHcINAdCJLFAkFHyCWH8aCZHaCEHqINDNDNAqCE9HMBCUHOAyrBBMECBHODNINAOGECSsMEAECEFHOAcAEFCEFrBBtMBKKCUCBAECS6eHOXEKAqCETC/+fffEgHOCUAqTCU7CfEgHxCBHEINAOAxAcAEFrBB9NFHOAECEFGECZ9HMBKKAOAaAOAa6GEeHaAqA8aAEeH8aAqCETGqCW6MBKDNDNDNDNA8aCUFpDIEBKAlAkCO4FGEAErBBCDCIA8aCLseAkCI4COgTv86BBA8aCW9HMEAWAy8pBB83BBAWCWFAyCWF8pBB83BBAWCZFHWXDKAlAkCO4FGEAErBBCEAkCI4COgTv86BBKDNCWA8a9tGeMBINAWCB86BBAWCEFHWXBKKCUA8aTCU7HqCBH3AcH5INA5HEAeHxCBHOINAErBBGaAqAaAqCfEgGy6eAOCfEgA8aTvHOAECEFHEAxCUFGxMBKAWAO86BBA5AeFH5AWCEFHWA3AeFG3CZ6MBKCBHEINDNAcAEFrBBGOAy6MBAWAO86BBAWCEFHWKAECEFGECZ9HMBKKDNAkCZFGkAS9PMBAcCZFHcARAW9rCl0MEKKAkAS6MEAWtMEAoCEFHoAZCEFGZAL6HhAWHaAZALsMIXBKKCBHWAhCEgtMEXLKCBHWAhCEgMIKAdApAXCUFAL2FALZmJJJB8aAXAKFHKAWMBKCBHOXDKCBHOARAW9rCAALALCA6e6MEDNALC8f0MBAWCBCAAL9rGEZ+TJJJBAEFHWKAWAdCJDFALZmJJJBALFAB9rHOXEKCBHOKAVCJOF8kJJJJBAOK9HEEUAECAAECA0eABCJ/ABAE9uC/wfBgGDCJDADCJD6eGDFCUFAD9uAE2ADCL4CIFCD4ADv2FCEFKMBCBABbD+Q+KJJBK/YSE3U8jJJJJBC/AE9rGL8kJJJJBCBHVDNAICI9uGOChFAE0MBABCBYDn+KJJBGVC/gEv86BBALC/ABFCfECJEZ+TJJJB8aALCuFGR9CU83IBALC8wFGW9CU83IBALCYFGd9CU83IBALCAFGQ9CU83IBALCkFGK9CU83IBALCZFGX9CU83IBAL9CU83IWAL9CU83IBABAEFC9wFHMABCEFGpAOFHEDNAItMBCMCSAVCB9KGSeHZAVCE9IHhCBHoCBHaCBHcCBHxCBHqINDNAEAM9NMBCBHVXIKAqCUFHVADAcCDTFGOYDBHlAOCWFYDBHkAOCLFYDBHyCBH8aDNDNINALC/ABFAVCSgCITFGOYDLHeDNDNDNAOYDBGOAl9HMBAeAysMEKDNAOAy9HMBAeAk9HMBA8aCEFH8aXEKAOAk9HMEAeAl9HMEA8aCDFH8aKA8aC870MDAxCUFHVADA8aCIgCX2GOC+Y1JJBFYDBAcFCDTFYDBHeADAOCn1JJBFYDBAcFCDTFYDBHkADAOC+Q1JJBFYDBAcFCDTFYDBHlCBHODNINDNALAVCSgCDTFYDBAe9HMBAOHyXDKCUHyAVCUFHVAOCEFGOCZ9HMBKKAyCB9KAyAZ9IgGVCU7AeAosGOgH3DNDNDNDNDNAyCBCSAOeAVeGVCS9HMBAhMBAeAeAaAeCEFAasGVeGaCEFsMECMCSAVeHVKApAVA8aCDTC/wEgv86BBAVCS9HMEAeAa9rGVCETAVC8f917HVINAEAVCfB0CRTAVCfBgv86BBAECEFHEAVCJE6HOAVCR4HVAOtMBKAeHaXDKCpHVApA8aCDTCpv86BBAeHaKAVtMBAVAZ9IMEKALAxCDTFAebDBAxCEFCSgHxKAoA3FHoALC/ABFAqCITFGVAkbDLAVAebDBALC/ABFAqCEFCSgGVCITFGOAebDLAOAlbDBAVCEFHOXIKAVCUFHVA8aCLFG8aC/AB9HMBKKDNADCEAkAosCETAyAoseCX2GVC+Q1JJBFYDBAcFCDTFYDBGltADAVCn1JJBFYDBAcFCDTFYDBG8aCEsgADAVC+Y1JJBFYDBAcFCDTFYDBGyCDsgAoCB9HgASgG5CE9HMBAR9CU83IBAW9CU83IBAd9CU83IBAQ9CU83IBAK9CU83IBAX9CU83IBAL9CU83IWAL9CU83IBCBHoKCBHeAxCUFGVHODNINDNALAOCSgCDTFYDBA8a9HMBAeHkXDKCUHkAOCUFHOAeCEFGeCZ9HMBKKCBHODNINDNALAVCSgCDTFYDBAy9HMBAOHeXDKCUHeAVCUFHVAOCEFGOCZ9HMBKKAoAlAosG8eFH3DNDNAkCM0MBAkCEFHkXEKCBCSA8aA3sGVeHkA3AVFH3KDNDNAeCM0MBAeCEFHeXEKCBCSAyA3sGVeHeA3AVFH3KC9+CUA8eeH8fAeAkCLTvHOCBHVDNDNDNINAVCJ1JJBFrBBAOCfEgsMEAVCEFGVCZ9HMBXDKKAlAo9HAVCM0vA5vMBApAVC/wEv86BBXEKApA8f86BBAEAO86BBAECEFHEKDNA8eMBAlAa9rGVCETAVC8f917HVINAEAVCfB0GOCRTAVCfBgv86BBAVCR4HVAECEFHEAOMBKAlHaKDNAkCS9HMBA8aAa9rGVCETAVC8f917HVINAEAVCfB0GOCRTAVCfBgv86BBAVCR4HVAECEFHEAOMBKA8aHaKDNAeCS9HMBAyAa9rGVCETAVC8f917HVINAEAVCfB0GOCRTAVCfBgv86BBAVCR4HVAECEFHEAOMBKAyHaKALAxCDTFAlbDBAxCEFCSgHVDNDNAkpZBEEEEEEEEEEEEEEBEKALAVCDTFA8abDBAxCDFCSgHVKDNDNAepZBEEEEEEEEEEEEEEBEKALAVCDTFAybDBAVCEFCSgHVKALC/ABFAqCITFGOAlbDLAOA8abDBALC/ABFAqCEFCSgCITFGOA8abDLAOAybDBALC/ABFAqCDFCSgCITFGOAybDLAOAlbDBAqCIFHOAVHxA3HoKApCEFHpAOCSgHqAcCIFGcAI6MBKKCBHVAEAM0MBCBHVINAEAVFAVCJ1JJBFrBB86BBAVCEFGVCZ9HMBKAEAB9rAVFHVKALC/AEF8kJJJJBAVKzEEUCBHDDNINADCEFGDC8f0MECEADTAE6MBKKADCRFCfEgCR9uCI2CDFABCI9u2ChFKMBCBABbDn+KJJBK+cDEWU8jJJJJBCZ9rHLCBHVDNAICVFAE0MBCBHOABCBrBn+KJJBC/QEv86BBAL9CB83IWABCEFHRABAEFC98FHWDNAItMBCBHdINDNARAW6MBCBSKADAdCDTFYDBGQALCWFAOAQALCWFAOCDTFYDB9rGEAEC8f91GEFAE7C507GOCDTFGKYDB9rGEC8e91C9+gAECDT7AOvHEINARAECfB0GVCRTAECfBgv86BBAECR4HEARCEFHRAVMBKAKAQbDBAdCEFGdAI9HMBKKCBHVARAW0MBARCBbBBARAB9rCLFHVKAVKbEEUCBHDDNINADCEFGDC8f0MECEADTAE6MBKKADCWFCfEgCR9uAB2CVFK+DVLI99DUI99LUDNAEtMBCUADCETCUFTCU7+yHVDNDNCUAICUFTCU7+yGOjBBBzmGR+LjBBB9P9dtMBAR+oHWXEKCJJJJ94HWKCBHICBHdINALCLFiDBGRjBBBBjBBJzALiDBGQ+LAR+LmALCWFiDBGK+LmGR+VARjBBBB9beGRnHXAQARnHRALCXFiDBHQDNDNAKjBBBB9gtMBAXHKXEKjBBJzAR+L+TGKAK+MAXjBBBB9geHKjBBJzAX+L+TGXAX+MARjBBBB9geHRKDNDNAQjBBJ+/AQjBBJ+/9geGXjBBJzAXjBBJz9feAVnjBBBzjBBB+/AQjBBBB9gemGQ+LjBBB9P9dtMBAQ+oHMXEKCJJJJ94HMKDNDNAKjBBJ+/AKjBBJ+/9geGQjBBJzAQjBBJz9feAOnjBBBzjBBB+/AKjBBBB9gemGQ+LjBBB9P9dtMBAQ+oHpXEKCJJJJ94HpKDNDNARjBBJ+/ARjBBJ+/9geGQjBBJzAQjBBJz9feAOnjBBBzjBBB+/ARjBBBB9gemGR+LjBBB9P9dtMBAR+oHSXEKCJJJJ94HSKDNDNADCL9HMBABAdFGZAS86BBAZCIFAM86BBAZCDFAW86BBAZCEFAp86BBXEKABAIFGZAS87EBAZCOFAM87EBAZCLFAW87EBAZCDFAp87EBKALCZFHLAICWFHIAdCLFHdAECUFGEMBKKK/KLLD99EUD99EUDNAEtMBDNDNCUAICUFTCU7+yGVjBBBzmGO+LjBBB9P9dtMBAO+oHIXEKCJJJJ94HIKAIC/8fIgHRINABCOFCICDALCLFiDB+LALiDB+L9eGIALCWFiDB+LALAICDTFiDB+L9eeGIALCXFiDB+LALAICDTFiDB+L9eeGIARv87EBDNDNALAICEFCIgCDTFiDBj/zL+1znjBBJ+/jBBJzALAICDTFiDBjBBBB9deGOnGWjBBJ+/AWjBBJ+/9geGdjBBJzAdjBBJz9feAVnjBBBzjBBB+/AWjBBBB9gemGW+LjBBB9P9dtMBAW+oHQXEKCJJJJ94HQKABAQ87EBDNDNAOALAICDFCIgCDTFiDBj/zL+1znnGWjBBJ+/AWjBBJ+/9geGdjBBJzAdjBBJz9feAVnjBBBzjBBB+/AWjBBBB9gemGW+LjBBB9P9dtMBAW+oHQXEKCJJJJ94HQKABCDFAQ87EBDNDNAOALAICUFCIgCDTFiDBj/zL+1znnGOjBBJ+/AOjBBJ+/9geGWjBBJzAWjBBJz9feAVnjBBBzjBBB+/AOjBBBB9gemGO+LjBBB9P9dtMBAO+oHIXEKCJJJJ94HIKABCLFAI87EBABCWFHBALCZFHLAECUFGEMBKKK+7DDWUE998jJJJJBCZ9rGV8kJJJJBDNAEtMBADCL6MBCEAI9rHOADCD4GDCEADCE0eHRADCDTHWCBHdINC+cUHDALHIARHQINAIiDBAVCXFZ+XJJJB8aAVYDXGKADADAK9IeHDAICLFHIAQCUFGQMBKAOADFGICkTHKCBHDCBAI9rHXARHIINDNDNALADFiDBGMAXZ+WJJJBjBBBzjBBB+/AMjBBBB9gemGM+LjBBB9P9dtMBAM+oHQXEKCJJJJ94HQKABADFAQCfffRgAKvbDBADCLFHDAICUFGIMBKABAWFHBALAWFHLAdCEFGdAE9HMBKKAVCZF8kJJJJBK/tKDcUI998jJJJJBC+QD9rGV8kJJJJBAVC+oEFCBC/kBZ+TJJJB8aCBHODNADtMBCBHOAItMBDNABAE9HMBAVCUADCDTGOADCffffI0eCBYD1+KJJBhJJJJBBGEbD+oEAVCEbD1DAEABAOZmJJJB8aKAVC+YEFCWFCBbDBAV9CB83I+YEAVC+YEFAEADAIAVC+oEFZ+NJJJBCUAICDTGRAICffffI0eGWCBYD1+KJJBhJJJJBBHOAVC+oEFAVYD1DGdCDTFAObDBAVAdCEFGQbD1DAOAVYD+YEGKARZmJJJBHXAVC+oEFAQCDTFADCI9uGMCBYD1+KJJBhJJJJBBGObDBAVAdCDFGRbD1DAOCBAMZ+TJJJBHpAVC+oEFARCDTFAWCBYD1+KJJBhJJJJBBGSbDBAVAdCIFGQbD1DAXHOASHRINARALiDBALAOYDBGWCWAWCW6eCDTFC/EBFiDBmuDBAOCLFHOARCLFHRAICUFGIMBKAVC+oEFAQCDTFCUAMCDTADCffff970eCBYD1+KJJBhJJJJBBGQbDBAVAdCLFbD1DDNADCI6MBAMCEAMCE0eHIAEHOAQHRINARASAOYDBCDTFiDBASAOCLFYDBCDTFiDBmASAOCWFYDBCDTFiDBmuDBAOCXFHOARCLFHRAICUFGIMBKKAVC/MBFHZAVYD+cEHhAVYD+gEHoAVHOCBHWCBHRCBHaCEHcINAOHxCIHqAEARCI2GlCDTFGOCWFYDBHkAOYDBHDABAaCX2FGICLFAOCLFYDBGdbDBAIADbDBAICWFAkbDBApARFCE86BBAZAkbDWAZAdbDLAZADbDBAQARCDTFCBbDBDNAWtMBCIHqAxHIINDNAIYDBGOADsMBAOAdsMBAOAksMBAZAqCDTFAObDBAqCEFHqKAICLFHIAWCUFGWMBKKAaCEFHaAXADCDTFGOAOYDBCUFbDBAXAdCDTFGOAOYDBCUFbDBAXAkCDTFGOAOYDBCUFbDBCBHWINAoAhAEAWAlFCDTFYDBCDTGIFYDBCDTFGkHOAKAIFGdYDBGDHIDNADtMBDNINAOYDBARsMEAOCLFHOAICUFGItMDXBKKAOADCDTAkFC98FYDBbDBAdAdYDBCUFbDBKAWCEFGWCI9HMBKDNDNDNAqtMBCUHRjBBBBHyCBHOINASAZAOCDTFYDBCDTGIFGWiDBH8aAWALCBAOCEFGdAOCS0eCDTFiDBALAXAIFYDBGOCWAOCW6eCDTFC/EBFiDBmGeuDBDNAKAIFYDBGWtMBAeA8a+THeAoAhAIFYDBCDTFHOAWCDTHIINAQAOYDBGWCDTFGDAeADiDBmG8auDBA8aAyAyA8a9dGDeHyAWARADeHRAOCLFHOAIC98FGIMBKKAdHOAdAq9HMBKARCU9HMEKAcAM9PMEINDNApAcFrBBMBAcHRXDKAMAcCEFGc9HMBXDKKAqCZAqCZ6eHWAZHOAxHZARCU9HMEKKAVYD1DHOKAOCDTAVC+oEFFC98FHRDNINAOtMEARYDBCBYD+E+KJJBh+BJJJBBARC98FHRAOCUFHOXBKKAVC+QDF8kJJJJBK/uLEVUCUAICDTGVAICffffI0eGOCBYD1+KJJBhJJJJBBHRALALYD9gGWCDTFARbDBALAWCEFbD9gABARbDBAOCBYD1+KJJBhJJJJBBHRALALYD9gGOCDTFARbDBALAOCEFbD9gABARbDLCUADCDTADCffffI0eCBYD1+KJJBhJJJJBBHRALALYD9gGOCDTFARbDBALAOCEFbD9gABARbDWABYDBCBAVZ+TJJJB8aADCI9uHWDNADtMBABYDBHOAEHLADHRINAOALYDBCDTFGVAVYDBCEFbDBALCLFHLARCUFGRMBKKDNAItMBABYDBHLABYDLHRCBHVAIHOINARAVbDBARCLFHRALYDBAVFHVALCLFHLAOCUFGOMBKKDNADCI6MBAWCEAWCE0eHdABYDLHRABYDWHVCBHLINAECWFYDBHOAECLFYDBHDARAEYDBCDTFGWAWYDBGWCEFbDBAVAWCDTFALbDBARADCDTFGDADYDBGDCEFbDBAVADCDTFALbDBARAOCDTFGOAOYDBGOCEFbDBAVAOCDTFALbDBAECXFHEAdALCEFGL9HMBKKDNAItMBABYDLHEABYDBHLINAEAEYDBALYDB9rbDBALCLFHLAECLFHEAICUFGIMBKKKqBABAEADAIC+01JJBZ+MJJJBKqBABAEADAIC+c+JJJBZ+MJJJBK9dEEUABCfEAICDTZ+TJJJBHLCBHIDNADtMBINDNALAEYDBCDTFGBYDBCU9HMBABAIbDBAICEFHIKAECLFHEADCUFGDMBKKAIK9TEIUCBCBYD+M+KJJBGEABCIFC98gFGBbD+M+KJJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK/lEEEUDNDNAEABvCIgtMBABHIXEKDNDNADCZ9PMBABHIXEKABHIINAIAEYDBbDBAICLFAECLFYDBbDBAICWFAECWFYDBbDBAICXFAECXFYDBbDBAICZFHIAECZFHEADC9wFGDCS0MBKKADCL6MBINAIAEYDBbDBAECLFHEAICLFHIADC98FGDCI0MBKKDNADtMBINAIAErBB86BBAICEFHIAECEFHEADCUFGDMBKKABK/AEEDUDNDNABCIgtMBABHIXEKAECfEgC+B+C+EW2HLDNDNADCZ9PMBABHIXEKABHIINAIALbDBAICXFALbDBAICWFALbDBAICLFALbDBAICZFHIADC9wFGDCS0MBKKADCL6MBINAIALbDBAICLFHIADC98FGDCI0MBKKDNADtMBINAIAE86BBAICEFHIADCUFGDMBKKABK9TEIUCBCBYD+M+KJJBGEABCIFC98gFGBbD+M+KJJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK9+EIUzBHEDNDNCBYD+M+KJJBGDAECZTGI9NMBCUHEADAI9rCffIFCZ4NBCUsMEKADHEKCBABAE9rCIFC98gCBYD+M+KJJBFGDbD+M+KJJBDNADzBCZTGE9NMBADAE9rCffIFCZ4NB8aKKXBABAEZ+YJJJBK+BEEIUDNAB+8GDCl4GICfEgGLCfEsMBDNALMBDNABjBBBB9cMBAECBbDBABSKABjBBJ9fnAEZ+XJJJBHBAEAEYDBCNFbDBABSKAEAICfEgC+CUFbDBADCfff+D94gCJJJ/4Iv++HBKABK+gEBDNDNAECJE9IMBABjBBBUnHBDNAECfE9PMBAEC+BUFHEXDKABjBBBUnHBAECPDAECPD6eC+C9+FHEXEKAEC+BU9KMBABjBBJXnHBDNAEC+b9+9NMBAEC/mBFHEXEKABjBBJXnHBAEC+299AEC+2990eC/MEFHEKABAEClTCJJJ/8IF++nKK+eDDBCJWK+EDB4+H9W9n94+p+Gw+J9o+YE9pBBBBBBEBBBDBBBEBBBDBBBBBBBDBBBBBBBEBBBBBBB+L29Hz/69+9Kz/n/76z/RG97z/Z/O9Xz8j/b85z/+/U9Yz/B/K9hz+2/z9dz9E+L9Mz59a8kz+R/t3z+a+Zyz79ohz/J4++8++y+d9v8+BBBB9S+49+z8r+Hbz9m9m/m8+l/Z/O8+/8+pg89Q/X+j878r+Hq8++m+b/E87BBBBBBJzBBJzBBJz+e/v/n8++y+dSz9I/h/68+XD/r8+/H0838+/w+nOzBBBB+wv9o8+UF888+9I/h/68+9C9g/l89/N/M9M89/d8kO8+BBBBF+8Tz9M836zs+2azl/Zpzz818ez9E+LXz/u98f8+819e/68+BC+EQKXEBBBDBBBAwBB",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(r(e),{}).then(function(p){n=p.instance,n.exports.__wasm_call_ctors(),n.exports.meshopt_encodeVertexVersion(0),n.exports.meshopt_encodeIndexVersion(1)});function r(p){for(var g=new Uint8Array(p.length),m=0;m<p.length;++m){var A=p.charCodeAt(m);g[m]=A>96?A-71:A>64?A-65:A>47?A+4:A>46?63:62}for(var x=0,m=0;m<p.length;++m)g[x++]=g[m]<60?t[g[m]]:(g[m]-60)*64+g[++m];return g.buffer.slice(0,x)}function o(p){if(!p)throw new Error("Assertion failed")}function s(p){return new Uint8Array(p.buffer,p.byteOffset,p.byteLength)}function a(p,g,m){var A=n.exports.sbrk,x=A(p.length*4),C=A(g*4),T=new Uint8Array(n.exports.memory.buffer),E=s(p);T.set(E,x),m&&m(x,x,p.length,g);var S=n.exports.meshopt_optimizeVertexFetchRemap(C,x,p.length,g);T=new Uint8Array(n.exports.memory.buffer);var v=new Uint32Array(g);new Uint8Array(v.buffer).set(T.subarray(C,C+g*4)),E.set(T.subarray(x,x+p.length*4)),A(x-A(0));for(var D=0;D<p.length;++D)p[D]=v[p[D]];return[v,S]}function c(p,g,m,A,x){var C=n.exports.sbrk,T=C(g),E=C(A*x),S=new Uint8Array(n.exports.memory.buffer);S.set(s(m),E);var v=p(T,g,E,A,x),D=new Uint8Array(v);return D.set(S.subarray(T,T+v)),C(T-C(0)),D}function l(p){for(var g=0,m=0;m<p.length;++m){var A=p[m];g=g<A?A:g}return g}function f(p,g){if(o(g==2||g==4),g==4)return new Uint32Array(p.buffer,p.byteOffset,p.byteLength/4);var m=new Uint16Array(p.buffer,p.byteOffset,p.byteLength/2);return new Uint32Array(m)}function d(p,g,m,A,x,C){var T=n.exports.sbrk,E=T(m*A),S=T(m*C),v=new Uint8Array(n.exports.memory.buffer);v.set(s(g),S),p(E,m,A,x,S);var D=new Uint8Array(m*A);return D.set(v.subarray(E,E+m*A)),T(E-T(0)),D}return{ready:i,supported:!0,reorderMesh:function(p,g,m){var A=g?m?n.exports.meshopt_optimizeVertexCacheStrip:n.exports.meshopt_optimizeVertexCache:void 0;return a(p,l(p)+1,A)},encodeVertexBuffer:function(p,g,m){o(m>0&&m<=256),o(m%4==0);var A=n.exports.meshopt_encodeVertexBufferBound(g,m);return c(n.exports.meshopt_encodeVertexBuffer,A,p,g,m)},encodeIndexBuffer:function(p,g,m){o(m==2||m==4),o(g%3==0);var A=f(p,m),x=n.exports.meshopt_encodeIndexBufferBound(g,l(A)+1);return c(n.exports.meshopt_encodeIndexBuffer,x,A,g,4)},encodeIndexSequence:function(p,g,m){o(m==2||m==4);var A=f(p,m),x=n.exports.meshopt_encodeIndexSequenceBound(g,l(A)+1);return c(n.exports.meshopt_encodeIndexSequence,x,A,g,4)},encodeGltfBuffer:function(p,g,m,A){var x={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return o(x[A]),x[A](p,g,m)},encodeFilterOct:function(p,g,m,A){return o(m==4||m==8),o(A>=1&&A<=16),d(n.exports.meshopt_encodeFilterOct,p,g,m,A,16)},encodeFilterQuat:function(p,g,m,A){return o(m==8),o(A>=4&&A<=16),d(n.exports.meshopt_encodeFilterQuat,p,g,m,A,16)},encodeFilterExp:function(p,g,m,A){return o(m>0&&m%4==0),o(A>=1&&A<=24),d(n.exports.meshopt_encodeFilterExp,p,g,m,A,m)}}}();typeof WP=="object"&&typeof V5=="object"?V5.exports=BU:typeof define=="function"&&define.amd?define([],function(){return BU}):typeof WP=="object"?WP.MeshoptEncoder=BU:(typeof self<"u"?self:WP).MeshoptEncoder=BU});var vne=Jn((jP,k5)=>{var LU=function(){"use strict";var e="B9h79tEBBBE8fV9gBB9gVUUUUUEU9gIUUUB9gEUEU9gIUUUEUIKQBEEEDDDILLVIEBEOWEUEC+Q/IEKR/LEdO9tw9t9vv95DBh9f9f939h79t9f9j9h229f9jT9vv7BB8a9tw79o9v9wT9f9kw9j9v9kw9WwvTw949C919m9mwvBEy9tw79o9v9wT9f9kw9j9v9kw69u9kw949C919m9mwvBDe9tw79o9v9wT9f9kw9j9v9kw69u9kw949Twg91w9u9jwBIl9tw79o9v9wT9f9kw9j9v9kws9p2Twv9P9jTBLk9tw79o9v9wT9f9kw9j9v9kws9p2Twv9R919hTBVl9tw79o9v9wT9f9kw9j9v9kws9p2Twvt949wBOL79iv9rBRQ+p8yQDBK/3SEZU8jJJJJBCJ/EB9rGV8kJJJJBC9+HODNADCEFAL0MBCUHOAIrBBC+gE9HMBAVAIALFGRAD9rADZ1JJJBHWCJ/ABAD9uHOAICEFHLDNADtMBAOC/wfBgGOCJDAOCJD6eHdCBHQINAQAE9PMEAdAEAQ9rAQAdFAE6eGKCSFGOCL4CIFCD4HXDNDNDNDNAOC9wgGMtMBCBHpCEHSAWCJDFHZALHhINARAh9rAX6MIDNARAhAXFGL9rCk6MBCZHOINAWCJ/CBFAOGIFGOC9wFHoDNDNDNDNDNAhAIC9wFGaCO4FrBBAaCI4COg4CIgpLBEDIBKAo9CB83IBAoCWF9CB83IBXIKAoALrBLALrBBGaCO4GcAcCIsGce86BBAOCgFALCLFAcFGorBBAaCL4CIgGcAcCIsGce86BBAOCvFAoAcFGorBBAaCD4CIgGcAcCIsGce86BBAOC7FAoAcFGorBBAaCIgGaAaCIsGae86BBAOCTFAoAaFGarBBALrBEGoCO4GcAcCIsGce86BBAOC91FAaAcFGarBBAoCL4CIgGcAcCIsGce86BBAOC4FAaAcFGarBBAoCD4CIgGcAcCIsGce86BBAOC93FAaAcFGarBBAoCIgGoAoCIsGoe86BBAOC94FAaAoFGarBBALrBDGoCO4GcAcCIsGce86BBAOC95FAaAcFGarBBAoCL4CIgGcAcCIsGce86BBAOC96FAaAcFGarBBAoCD4CIgGcAcCIsGce86BBAOC97FAaAcFGarBBAoCIgGoAoCIsGoe86BBAOC98FAaAoFGorBBALrBIGLCO4GaAaCIsGae86BBAOC99FAoAaFGorBBALCL4CIgGaAaCIsGae86BBAOC9+FAoAaFGorBBALCD4CIgGaAaCIsGae86BBAOCUFAoAaFGOrBBALCIgGLALCIsGLe86BBAOALFHLXDKAoALrBWALrBBGaCL4GcAcCSsGce86BBAOCgFALCWFAcFGorBBAaCSgGaAaCSsGae86BBAOCvFAoAaFGorBBALrBEGaCL4GcAcCSsGce86BBAOC7FAoAcFGorBBAaCSgGaAaCSsGae86BBAOCTFAoAaFGorBBALrBDGaCL4GcAcCSsGce86BBAOC91FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC4FAoAaFGorBBALrBIGaCL4GcAcCSsGce86BBAOC93FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC94FAoAaFGorBBALrBLGaCL4GcAcCSsGce86BBAOC95FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC96FAoAaFGorBBALrBVGaCL4GcAcCSsGce86BBAOC97FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC98FAoAaFGorBBALrBOGaCL4GcAcCSsGce86BBAOC99FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC9+FAoAaFGorBBALrBRGLCL4GaAaCSsGae86BBAOCUFAoAaFGOrBBALCSgGLALCSsGLe86BBAOALFHLXEKAoAL8pBB83BBAoCWFALCWF8pBB83BBALCZFHLKDNAIAM9PMBAICZFHOARAL9rCl0MEKKAIAM6MIALtMIDNAKtMBAWApFrBBHoCBHOAZHIINAIAWCJ/CBFAOFrBBGaCE4CBAaCEg9r7AoFGo86BBAIADFHIAOCEFGOAK9HMBKKAZCEFHZApCEFGpAD6HSALHhApAD9HMEXVKKCBHLASCEgMDXIKALAXAD2FHcDNAKtMBCBHhCEHSAWCJDFHMINARAL9rAX6MIALtMDALAXFHLAWAhFrBBHoCBHOAMHIINAIAWCJ/CBFAOFrBBGaCE4CBAaCEg9r7AoFGo86BBAIADFHIAOCEFGOAK9HMBKAMCEFHMAhCEFGhAD6HSAhAD9HMBKAcHLXIKCBHOCEHSINARAL9rAX6MDALtMEALAXFHLAOCEFGOAD6HSADAO9HMBKAcHLXDKCBHLASCEgtMEKC9+HOXIKABAQAD2FAWCJDFAKAD2Z1JJJB8aAWAWCJDFAKCUFAD2FADZ1JJJB8aAKAQFHQALMBKC9+HOXEKCBC99ARAL9rADCAADCA0eseHOKAVCJ/EBF8kJJJJBAOK/YZEhU8jJJJJBC/AE9rGV8kJJJJBC9+HODNAECI9uGRChFAL0MBCUHOAIrBBGWC/wEgC/gE9HMBAWCSgGdCE0MBAVC/ABFCfECJEZ+JJJJB8aAVCuF9CU83IBAVC8wF9CU83IBAVCYF9CU83IBAVCAF9CU83IBAVCkF9CU83IBAVCZF9CU83IBAV9CU83IWAV9CU83IBAIALFC9wFHQAICEFGWARFHODNAEtMBCMCSAdCEseHKCBHXCBHMCBHdCBHICBHLINDNAOAQ9NMBC9+HOXIKDNDNAWrBBGRC/vE0MBAVC/ABFALARCL4CU7FCSgCITFGpYDLHSApYDBHZDNARCSgGpAK9PMBAVAIARCU7FCSgCDTFYDBAXApeHRAptHpDNDNADCD9HMBABAdCETFGhAZ87EBAhCDFAS87EBAhCLFAR87EBXEKABAdCDTFGhAZbDBAhCLFASbDBAhCWFARbDBKAXApFHXAVC/ABFALCITFGhARbDBAhASbDLAVAICDTFARbDBAVC/ABFALCEFCSgGLCITFGhAZbDBAhARbDLAIApFHIALCEFHLXDKDNDNApCSsMBAMApFApC987FCEFHMXEKAOCEFHRAO8sBBGpCfEgHhDNDNApCU9MMBARHOXEKAOCVFHOAhCfBgHhCRHpDNINAR8sBBGoCfBgApTAhvHhAoCU9KMEARCEFHRApCRFGpC8j9HMBXDKKARCEFHOKAhCE4CBAhCEg9r7AMFHMKDNDNADCD9HMBABAdCETFGRAZ87EBARCDFAS87EBARCLFAM87EBXEKABAdCDTFGRAZbDBARCLFASbDBARCWFAMbDBKAVC/ABFALCITFGRAMbDBARASbDLAVAICDTFAMbDBAVC/ABFALCEFCSgGLCITFGRAZbDBARAMbDLAICEFHIALCEFHLXEKDNARCPE0MBAXCEFGoAVAIAQARCSgFrBBGpCL49rCSgCDTFYDBApCZ6GheHRAVAIAp9rCSgCDTFYDBAoAhFGSApCSgGoeHpAotHoDNDNADCD9HMBABAdCETFGZAX87EBAZCDFAR87EBAZCLFAp87EBXEKABAdCDTFGZAXbDBAZCLFARbDBAZCWFApbDBKAVAICDTFAXbDBAVC/ABFALCITFGZARbDBAZAXbDLAVAICEFGICSgCDTFARbDBAVC/ABFALCEFCSgCITFGZApbDBAZARbDLAVAIAhFCSgGICDTFApbDBAVC/ABFALCDFCSgGLCITFGRAXbDBARApbDLALCEFHLAIAoFHIASAoFHXXEKAXCBAOrBBGZeGaARC/+EsGRFHSAZCSgHcAZCL4HxDNDNAZCS0MBASCEFHoXEKASHoAVAIAx9rCSgCDTFYDBHSKDNDNAcMBAoCEFHXXEKAoHXAVAIAZ9rCSgCDTFYDBHoKDNDNARtMBAOCEFHRXEKAOCDFHRAO8sBEGhCfEgHpDNAhCU9KMBAOCOFHaApCfBgHpCRHODNINAR8sBBGhCfBgAOTApvHpAhCU9KMEARCEFHRAOCRFGOC8j9HMBKAaHRXEKARCEFHRKApCE4CBApCEg9r7AMFGMHaKDNDNAxCSsMBARHpXEKARCEFHpAR8sBBGOCfEgHhDNAOCU9KMBARCVFHSAhCfBgHhCRHODNINAp8sBBGRCfBgAOTAhvHhARCU9KMEApCEFHpAOCRFGOC8j9HMBKASHpXEKApCEFHpKAhCE4CBAhCEg9r7AMFGMHSKDNDNAcCSsMBApHOXEKApCEFHOAp8sBBGRCfEgHhDNARCU9KMBApCVFHoAhCfBgHhCRHRDNINAO8sBBGpCfBgARTAhvHhApCU9KMEAOCEFHOARCRFGRC8j9HMBKAoHOXEKAOCEFHOKAhCE4CBAhCEg9r7AMFGMHoKDNDNADCD9HMBABAdCETFGRAa87EBARCDFAS87EBARCLFAo87EBXEKABAdCDTFGRAabDBARCLFASbDBARCWFAobDBKAVC/ABFALCITFGRASbDBARAabDLAVAICDTFAabDBAVC/ABFALCEFCSgCITFGRAobDBARASbDLAVAICEFGICSgCDTFASbDBAVC/ABFALCDFCSgCITFGRAabDBARAobDLAVAIAZCZ6AxCSsvFGICSgCDTFAobDBAIActAcCSsvFHIALCIFHLKAWCEFHWALCSgHLAICSgHIAdCIFGdAE6MBKKCBC99AOAQseHOKAVC/AEF8kJJJJBAOK+LLEVU8jJJJJBCZ9rHVC9+HODNAECVFAL0MBCUHOAIrBBC/+EgC/QE9HMBAV9CB83IWAICEFHRAIALFC98FHWDNAEtMBDNADCDsMBCBHdINDNARAW6MBC9+SKARCEFHOAR8sBBGLCfEgHIDNDNALCU9MMBAOHRXEKARCVFHRAICfBgHICRHLDNINAO8sBBGDCfBgALTAIvHIADCU9KMEAOCEFHOALCRFGLC8j9HMBXDKKAOCEFHRKABAdCDTFAICD4CBAICE4CEg9r7AVCWFAICEgCDTvGOYDBFGLbDBAOALbDBAdCEFGdAE9HMBXDKKCBHdINDNARAW6MBC9+SKARCEFHOAR8sBBGLCfEgHIDNDNALCU9MMBAOHRXEKARCVFHRAICfBgHICRHLDNINAO8sBBGDCfBgALTAIvHIADCU9KMEAOCEFHOALCRFGLC8j9HMBXDKKAOCEFHRKABAdCETFAICD4CBAICE4CEg9r7AVCWFAICEgCDTvGOYDBFGL87EBAOALbDBAdCEFGdAE9HMBKKCBC99ARAWseHOKAOK+lVOEUE99DUD99EUD99DNDNADCL9HMBAEtMEINDNDNABCDFGD8sBB+yAB8sBBGI+yGL+L+TABCEFGV8sBBGO+yGR+L+TGWjBB/+9CAWAWnjBBBBAWAWjBBBB9gGdeGQ+MGKAQAICB9IeALmGWAWnAKAQAOCB9IeARmGQAQnmm+R+VGLnjBBBzjBBB+/AdemGR+LjBBB9P9dtMBAR+oHIXEKCJJJJ94HIKADAI86BBDNDNAQALnjBBBzjBBB+/AQjBBBB9gemGQ+LjBBB9P9dtMBAQ+oHDXEKCJJJJ94HDKAVAD86BBDNDNAWALnjBBBzjBBB+/AWjBBBB9gemGW+LjBBB9P9dtMBAW+oHDXEKCJJJJ94HDKABAD86BBABCLFHBAECUFGEMBXDKKAEtMBINDNDNABCLFGD8uEB+yAB8uEBGI+yGL+L+TABCDFGV8uEBGO+yGR+L+TGWjB/+fsAWAWnjBBBBAWAWjBBBB9gGdeGQ+MGKAQAICB9IeALmGWAWnAKAQAOCB9IeARmGQAQnmm+R+VGLnjBBBzjBBB+/AdemGR+LjBBB9P9dtMBAR+oHIXEKCJJJJ94HIKADAI87EBDNDNAQALnjBBBzjBBB+/AQjBBBB9gemGQ+LjBBB9P9dtMBAQ+oHDXEKCJJJJ94HDKAVAD87EBDNDNAWALnjBBBzjBBB+/AWjBBBB9gemGW+LjBBB9P9dtMBAW+oHDXEKCJJJJ94HDKABAD87EBABCWFHBAECUFGEMBKKK/SILIUI99IUE99DNAEtMBCBHIABHLINDNDNj/zL81zALCOF8uEBGVCIv+y+VGOAL8uEB+ynGRjB/+fsnjBBBzjBBB+/ARjBBBB9gemGW+LjBBB9P9dtMBAW+oHdXEKCJJJJ94HdKALCLF8uEBHQALCDF8uEBHKABAVCEFCIgAIvCETFAd87EBDNDNAOAK+ynGWjB/+fsnjBBBzjBBB+/AWjBBBB9gemGX+LjBBB9P9dtMBAX+oHKXEKCJJJJ94HKKABAVCDFCIgAIvCETFAK87EBDNDNAOAQ+ynGOjB/+fsnjBBBzjBBB+/AOjBBBB9gemGX+LjBBB9P9dtMBAX+oHQXEKCJJJJ94HQKABAVCUFCIgAIvCETFAQ87EBDNDNjBBJzARARn+TAWAWn+TAOAOn+TGRjBBBBARjBBBB9ge+RjB/+fsnjBBBzmGR+LjBBB9P9dtMBAR+oHQXEKCJJJJ94HQKABAVCIgAIvCETFAQ87EBALCWFHLAICLFHIAECUFGEMBKKK9MBDNADCD4AE2GEtMBINABABYDBGDCWTCW91+yADCE91CJJJ/8IFCJJJ98g++nuDBABCLFHBAECUFGEMBKKK9TEIUCBCBYDJ1JJBGEABCIFC98gFGBbDJ1JJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK/lEEEUDNDNAEABvCIgtMBABHIXEKDNDNADCZ9PMBABHIXEKABHIINAIAEYDBbDBAICLFAECLFYDBbDBAICWFAECWFYDBbDBAICXFAECXFYDBbDBAICZFHIAECZFHEADC9wFGDCS0MBKKADCL6MBINAIAEYDBbDBAECLFHEAICLFHIADC98FGDCI0MBKKDNADtMBINAIAErBB86BBAICEFHIAECEFHEADCUFGDMBKKABK/AEEDUDNDNABCIgtMBABHIXEKAECfEgC+B+C+EW2HLDNDNADCZ9PMBABHIXEKABHIINAIALbDBAICXFALbDBAICWFALbDBAICLFALbDBAICZFHIADC9wFGDCS0MBKKADCL6MBINAIALbDBAICLFHIADC98FGDCI0MBKKDNADtMBINAIAE86BBAICEFHIADCUFGDMBKKABKKKEBCJWKLZ9kBB",t="B9h79tEBBBEkL9gBB9gVUUUUUEU9gIUUUB9gEUEUIKQBBEBEEDDDILVE9wEEEVIEBEOWEUEC+Q/aEKR/LEdO9tw9t9vv95DBh9f9f939h79t9f9j9h229f9jT9vv7BB8a9tw79o9v9wT9f9kw9j9v9kw9WwvTw949C919m9mwvBDy9tw79o9v9wT9f9kw9j9v9kw69u9kw949C919m9mwvBLe9tw79o9v9wT9f9kw9j9v9kw69u9kw949Twg91w9u9jwBVl9tw79o9v9wT9f9kw9j9v9kws9p2Twv9P9jTBOk9tw79o9v9wT9f9kw9j9v9kws9p2Twv9R919hTBRl9tw79o9v9wT9f9kw9j9v9kws9p2Twvt949wBWL79iv9rBdQ/T9TQLBZIK9+EVU8jJJJJBCZ9rHBCBHEINCBHDCBHIINABCWFADFAICJUAEAD4CEgGLe86BBAIALFHIADCEFGDCW9HMBKAEC+Q+YJJBFAI86BBAECITC+Q1JJBFAB8pIW83IBAECEFGECJD9HMBKK/H8jLhUD97EUO978jJJJJBCJ/KB9rGV8kJJJJBC9+HODNADCEFAL0MBCUHOAIrBBC+gE9HMBAVAIALFGRAD9rAD/8QBBCJ/ABAD9uHOAICEFHLDNADtMBAOC/wfBgGOCJDAOCJD6eHWCBHdINAdAE9PMEAWAEAd9rAdAWFAE6eGQCSFGOC9wgGKCI2HXAKCETHMAOCL4CIFCD4HpABAdAD2FHSCBHZDNINCEHhALHoCBHaDNINARAo9rAp6MIAVCJ/CBFAaAK2FHcAoApFHLCBHIDNAKC/AB6MBARAL9rC/gB6MBCBHOINAcAOFHIDNDNDNDNDNAoAOCO4FrBBGxCIgpLBEDIBKAIPXBBBBBBBBBBBBBBBBPKLBXIKAIALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLBALCLFAyPqBFAkC+Q+YJJBFrBBFHLXDKAIALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLBALCWFAyPqBFAkC+Q+YJJBFrBBFHLXEKAIALPBBBPKLBALCZFHLKDNDNDNDNDNAxCD4CIgpLBEDIBKAIPXBBBBBBBBBBBBBBBBPKLZXIKAIALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLZALCLFAyPqBFAkC+Q+YJJBFrBBFHLXDKAIALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLZALCWFAyPqBFAkC+Q+YJJBFrBBFHLXEKAIALPBBBPKLZALCZFHLKDNDNDNDNDNAxCL4CIgpLBEDIBKAIPXBBBBBBBBBBBBBBBBPKLAXIKAIALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLAALCLFAyPqBFAkC+Q+YJJBFrBBFHLXDKAIALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLAALCWFAyPqBFAkC+Q+YJJBFrBBFHLXEKAIALPBBBPKLAALCZFHLKDNDNDNDNDNAxCO4pLBEDIBKAIPXBBBBBBBBBBBBBBBBPKL8wXIKAIALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGxCITC+Q1JJBFPBIBAxC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGxCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKL8wALCLFAyPqBFAxC+Q+YJJBFrBBFHLXDKAIALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGxCITC+Q1JJBFPBIBAxC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGxCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKL8wALCWFAyPqBFAxC+Q+YJJBFrBBFHLXEKAIALPBBBPKL8wALCZFHLKAOC/ABFHIAOCJEFAK0MEAIHOARAL9rC/fB0MBKKDNDNAIAK9PMBAICI4HOINARAL9rCk6MDAcAIFHxDNDNDNDNDNAoAICO4FrBBAOCOg4CIgpLBEDIBKAxPXBBBBBBBBBBBBBBBBPKLBXIKAxALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLBALCLFAyPqBFAkC+Q+YJJBFrBBFHLXDKAxALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLBALCWFAyPqBFAkC+Q+YJJBFrBBFHLXEKAxALPBBBPKLBALCZFHLKAOCDFHOAICZFGIAK6MBKKALtMBAaCI6HhALHoAaCEFGOHaAOCLsMDXEKKCBHLAhCEgMDKDNAKtMBAVCJDFAZFHIAVAZFPBDBHyCBHxINAIAVCJ/CBFAxFGOPBLBGlCEP9tAlPXEEEEEEEEEEEEEEEEGqP9OP9hP9RGlAOAKFPBLBG8aCEP9tA8aAqP9OP9hP9RG8aPMBZEhDoIaLcVxOqRlGeAOAMFPBLBG3CEP9tA3AqP9OP9hP9RG3AOAXFPBLBG5CEP9tA5AqP9OP9hP9RG5PMBZEhDoIaLcVxOqRlG8ePMBEZhDIoaLVcxORqlGqAqPMBEDIBEDIBEDIBEDIAyP9uGyP9aDBBAIADFGOAyAqAqPMLVORLVORLVORLVORP9uGyP9aDBBAOADFGOAyAqAqPMWdQKWdQKWdQKWdQKP9uGyP9aDBBAOADFGOAyAqAqPMXMpSXMpSXMpSXMpSP9uGyP9aDBBAOADFGOAyAeA8ePMWdkyQK8aeXM35pS8e8fGqAqPMBEDIBEDIBEDIBEDIP9uGyP9aDBBAOADFGOAyAqAqPMLVORLVORLVORLVORP9uGyP9aDBBAOADFGOAyAqAqPMWdQKWdQKWdQKWdQKP9uGyP9aDBBAOADFGOAyAqAqPMXMpSXMpSXMpSXMpSP9uGyP9aDBBAOADFGOAyAlA8aPMWkdyQ8aKeX3M5p8eS8fGlA3A5PMWkdyQ8aKeX3M5p8eS8fG8aPMBEZhDIoaLVcxORqlGqAqPMBEDIBEDIBEDIBEDIP9uGyP9aDBBAOADFGOAyAqAqPMLVORLVORLVORLVORP9uGyP9aDBBAOADFGOAyAqAqPMWdQKWdQKWdQKWdQKP9uGyP9aDBBAOADFGOAyAqAqPMXMpSXMpSXMpSXMpSP9uGyP9aDBBAOADFGOAyAlA8aPMWdkyQK8aeXM35pS8e8fGqAqPMBEDIBEDIBEDIBEDIP9uGyP9aDBBAOADFGOAyAqAqPMLVORLVORLVORLVORP9uGyP9aDBBAOADFGOAyAqAqPMWdQKWdQKWdQKWdQKP9uGyP9aDBBAOADFGOAyAqAqPMXMpSXMpSXMpSXMpSP9uGyP9aDBBAOADFHIAxCZFGxAK6MBKKAZCLFGZAD6MBKASAVCJDFAQAD2/8QBBAVAVCJDFAQCUFAD2FAD/8QBBAQAdFHdC9+HOALMEXIKKC9+HOXEKCBC99ARAL9rADCAADCA0eseHOKAVCJ/KBF8kJJJJBAOKWBZ+BJJJBK/UZEhU8jJJJJBC/AE9rGV8kJJJJBC9+HODNAECI9uGRChFAL0MBCUHOAIrBBGWC/wEgC/gE9HMBAWCSgGdCE0MBAVC/ABFCfECJE/8KBAVCuF9CU83IBAVC8wF9CU83IBAVCYF9CU83IBAVCAF9CU83IBAVCkF9CU83IBAVCZF9CU83IBAV9CU83IWAV9CU83IBAIALFC9wFHQAICEFGWARFHODNAEtMBCMCSAdCEseHKCBHXCBHMCBHdCBHICBHLINDNAOAQ9NMBC9+HOXIKDNDNAWrBBGRC/vE0MBAVC/ABFALARCL4CU7FCSgCITFGpYDLHSApYDBHZDNARCSgGpAK9PMBAVAIARCU7FCSgCDTFYDBAXApeHRAptHpDNDNADCD9HMBABAdCETFGhAZ87EBAhCDFAS87EBAhCLFAR87EBXEKABAdCDTFGhAZbDBAhCLFASbDBAhCWFARbDBKAXApFHXAVC/ABFALCITFGhARbDBAhASbDLAVAICDTFARbDBAVC/ABFALCEFCSgGLCITFGhAZbDBAhARbDLAIApFHIALCEFHLXDKDNDNApCSsMBAMApFApC987FCEFHMXEKAOCEFHRAO8sBBGpCfEgHhDNDNApCU9MMBARHOXEKAOCVFHOAhCfBgHhCRHpDNINAR8sBBGoCfBgApTAhvHhAoCU9KMEARCEFHRApCRFGpC8j9HMBXDKKARCEFHOKAhCE4CBAhCEg9r7AMFHMKDNDNADCD9HMBABAdCETFGRAZ87EBARCDFAS87EBARCLFAM87EBXEKABAdCDTFGRAZbDBARCLFASbDBARCWFAMbDBKAVC/ABFALCITFGRAMbDBARASbDLAVAICDTFAMbDBAVC/ABFALCEFCSgGLCITFGRAZbDBARAMbDLAICEFHIALCEFHLXEKDNARCPE0MBAXCEFGoAVAIAQARCSgFrBBGpCL49rCSgCDTFYDBApCZ6GheHRAVAIAp9rCSgCDTFYDBAoAhFGSApCSgGoeHpAotHoDNDNADCD9HMBABAdCETFGZAX87EBAZCDFAR87EBAZCLFAp87EBXEKABAdCDTFGZAXbDBAZCLFARbDBAZCWFApbDBKAVAICDTFAXbDBAVC/ABFALCITFGZARbDBAZAXbDLAVAICEFGICSgCDTFARbDBAVC/ABFALCEFCSgCITFGZApbDBAZARbDLAVAIAhFCSgGICDTFApbDBAVC/ABFALCDFCSgGLCITFGRAXbDBARApbDLALCEFHLAIAoFHIASAoFHXXEKAXCBAOrBBGZeGaARC/+EsGRFHSAZCSgHcAZCL4HxDNDNAZCS0MBASCEFHoXEKASHoAVAIAx9rCSgCDTFYDBHSKDNDNAcMBAoCEFHXXEKAoHXAVAIAZ9rCSgCDTFYDBHoKDNDNARtMBAOCEFHRXEKAOCDFHRAO8sBEGhCfEgHpDNAhCU9KMBAOCOFHaApCfBgHpCRHODNINAR8sBBGhCfBgAOTApvHpAhCU9KMEARCEFHRAOCRFGOC8j9HMBKAaHRXEKARCEFHRKApCE4CBApCEg9r7AMFGMHaKDNDNAxCSsMBARHpXEKARCEFHpAR8sBBGOCfEgHhDNAOCU9KMBARCVFHSAhCfBgHhCRHODNINAp8sBBGRCfBgAOTAhvHhARCU9KMEApCEFHpAOCRFGOC8j9HMBKASHpXEKApCEFHpKAhCE4CBAhCEg9r7AMFGMHSKDNDNAcCSsMBApHOXEKApCEFHOAp8sBBGRCfEgHhDNARCU9KMBApCVFHoAhCfBgHhCRHRDNINAO8sBBGpCfBgARTAhvHhApCU9KMEAOCEFHOARCRFGRC8j9HMBKAoHOXEKAOCEFHOKAhCE4CBAhCEg9r7AMFGMHoKDNDNADCD9HMBABAdCETFGRAa87EBARCDFAS87EBARCLFAo87EBXEKABAdCDTFGRAabDBARCLFASbDBARCWFAobDBKAVC/ABFALCITFGRASbDBARAabDLAVAICDTFAabDBAVC/ABFALCEFCSgCITFGRAobDBARASbDLAVAICEFGICSgCDTFASbDBAVC/ABFALCDFCSgCITFGRAabDBARAobDLAVAIAZCZ6AxCSsvFGICSgCDTFAobDBAIActAcCSsvFHIALCIFHLKAWCEFHWALCSgHLAICSgHIAdCIFGdAE6MBKKCBC99AOAQseHOKAVC/AEF8kJJJJBAOK+LLEVU8jJJJJBCZ9rHVC9+HODNAECVFAL0MBCUHOAIrBBC/+EgC/QE9HMBAV9CB83IWAICEFHRAIALFC98FHWDNAEtMBDNADCDsMBCBHdINDNARAW6MBC9+SKARCEFHOAR8sBBGLCfEgHIDNDNALCU9MMBAOHRXEKARCVFHRAICfBgHICRHLDNINAO8sBBGDCfBgALTAIvHIADCU9KMEAOCEFHOALCRFGLC8j9HMBXDKKAOCEFHRKABAdCDTFAICD4CBAICE4CEg9r7AVCWFAICEgCDTvGOYDBFGLbDBAOALbDBAdCEFGdAE9HMBXDKKCBHdINDNARAW6MBC9+SKARCEFHOAR8sBBGLCfEgHIDNDNALCU9MMBAOHRXEKARCVFHRAICfBgHICRHLDNINAO8sBBGDCfBgALTAIvHIADCU9KMEAOCEFHOALCRFGLC8j9HMBXDKKAOCEFHRKABAdCETFAICD4CBAICE4CEg9r7AVCWFAICEgCDTvGOYDBFGL87EBAOALbDBAdCEFGdAE9HMBKKCBC99ARAWseHOKAOK+epLIUO97EUE978jJJJJBCA9rHIDNDNADCL9HMBDNAEC98gGLtMBCBHVABHDINADADPBBBGOCkP+rECkP+sEP/6EGRAOCWP+rECkP+sEP/6EARP/gEAOCZP+rECkP+sEP/6EGWP/gEP/kEP/lEGdPXBBBBBBBBBBBBBBBBP+2EGQARPXBBBJBBBJBBBJBBBJGKP9OP9RP/kEGRPXBB/+9CBB/+9CBB/+9CBB/+9CARARP/mEAdAdP/mEAWAQAWAKP9OP9RP/kEGRARP/mEP/kEP/kEP/jEP/nEGWP/mEPXBBN0BBN0BBN0BBN0GQP/kEPXfBBBfBBBfBBBfBBBP9OAOPXBBBfBBBfBBBfBBBfP9OP9QARAWP/mEAQP/kECWP+rEPXBfBBBfBBBfBBBfBBP9OP9QAdAWP/mEAQP/kECZP+rEPXBBfBBBfBBBfBBBfBP9OP9QPKBBADCZFHDAVCLFGVAL6MBKKALAE9PMEAIAECIgGVCDTGDvCBCZAD9r/8KBAIABALCDTFGLAD/8QBBDNAVtMBAIAIPBLBGOCkP+rECkP+sEP/6EGRAOCWP+rECkP+sEP/6EARP/gEAOCZP+rECkP+sEP/6EGWP/gEP/kEP/lEGdPXBBBBBBBBBBBBBBBBP+2EGQARPXBBBJBBBJBBBJBBBJGKP9OP9RP/kEGRPXBB/+9CBB/+9CBB/+9CBB/+9CARARP/mEAdAdP/mEAWAQAWAKP9OP9RP/kEGRARP/mEP/kEP/kEP/jEP/nEGWP/mEPXBBN0BBN0BBN0BBN0GQP/kEPXfBBBfBBBfBBBfBBBP9OAOPXBBBfBBBfBBBfBBBfP9OP9QARAWP/mEAQP/kECWP+rEPXBfBBBfBBBfBBBfBBP9OP9QAdAWP/mEAQP/kECZP+rEPXBBfBBBfBBBfBBBfBP9OP9QPKLBKALAIAD/8QBBSKDNAEC98gGXtMBCBHVABHDINADCZFGLALPBBBGOPXBBBBBBffBBBBBBffGKP9OADPBBBGdAOPMLVORXMpScxql358e8fPXfUBBfUBBfUBBfUBBP9OP/6EAdAOPMBEDIWdQKZhoaky8aeGOCZP+sEP/6EGRP/gEAOCZP+rECZP+sEP/6EGWP/gEP/kEP/lEGOPXB/+fsB/+fsB/+fsB/+fsAWAOPXBBBBBBBBBBBBBBBBP+2EGQAWPXBBBJBBBJBBBJBBBJGMP9OP9RP/kEGWAWP/mEAOAOP/mEARAQARAMP9OP9RP/kEGOAOP/mEP/kEP/kEP/jEP/nEGRP/mEPXBBN0BBN0BBN0BBN0GQP/kECZP+rEAWARP/mEAQP/kEPXffBBffBBffBBffBBP9OP9QGWAOARP/mEAQP/kEPXffBBffBBffBBffBBP9OGOPMWdkyQK8aeXM35pS8e8fP9QPKBBADAdAKP9OAWAOPMBEZhDIoaLVcxORqlP9QPKBBADCAFHDAVCLFGVAX6MBKKAXAE9PMBAIAECIgGVCITGDFCBCAAD9r/8KBAIABAXCITFGLAD/8QBBDNAVtMBAIAIPBLZGOPXBBBBBBffBBBBBBffGKP9OAIPBLBGdAOPMLVORXMpScxql358e8fPXfUBBfUBBfUBBfUBBP9OP/6EAdAOPMBEDIWdQKZhoaky8aeGOCZP+sEP/6EGRP/gEAOCZP+rECZP+sEP/6EGWP/gEP/kEP/lEGOPXB/+fsB/+fsB/+fsB/+fsAWAOPXBBBBBBBBBBBBBBBBP+2EGQAWPXBBBJBBBJBBBJBBBJGMP9OP9RP/kEGWAWP/mEAOAOP/mEARAQARAMP9OP9RP/kEGOAOP/mEP/kEP/kEP/jEP/nEGRP/mEPXBBN0BBN0BBN0BBN0GQP/kECZP+rEAWARP/mEAQP/kEPXffBBffBBffBBffBBP9OP9QGWAOARP/mEAQP/kEPXffBBffBBffBBffBBP9OGOPMWdkyQK8aeXM35pS8e8fP9QPKLZAIAdAKP9OAWAOPMBEZhDIoaLVcxORqlP9QPKLBKALAIAD/8QBBKK/4WLLUE97EUV978jJJJJBC8w9rHIDNAEC98gGLtMBCBHVABHOINAIAOPBBBGRAOCZFGWPBBBGdPMLVORXMpScxql358e8fGQCZP+sEGKCLP+rEPKLBAOPXBBJzBBJzBBJzBBJzPX/zL81z/zL81z/zL81z/zL81zAKPXIBBBIBBBIBBBIBBBP9QP/6EP/nEGKARAdPMBEDIWdQKZhoaky8aeGRCZP+rECZP+sEP/6EP/mEGdAdP/mEAKARCZP+sEP/6EP/mEGXAXP/mEAKAQCZP+rECZP+sEP/6EP/mEGQAQP/mEP/kEP/kEP/lEPXBBBBBBBBBBBBBBBBP+4EP/jEPXB/+fsB/+fsB/+fsB/+fsGKP/mEPXBBN0BBN0BBN0BBN0GRP/kEPXffBBffBBffBBffBBGMP9OAXAKP/mEARP/kECZP+rEP9QGXAQAKP/mEARP/kECZP+rEAdAKP/mEARP/kEAMP9OP9QGKPMBEZhDIoaLVcxORqlGRP5BAIPBLBPeB+t+J83IBAOCWFARP5EAIPBLBPeE+t+J83IBAWAXAKPMWdkyQK8aeXM35pS8e8fGKP5BAIPBLBPeD+t+J83IBAOCkFAKP5EAIPBLBPeI+t+J83IBAOCAFHOAVCLFGVAL6MBKKDNALAE9PMBAIAECIgGVCITGOFCBCAAO9r/8KBAIABALCITFGWAO/8QBBDNAVtMBAIAIPBLBGRAIPBLZGdPMLVORXMpScxql358e8fGQCZP+sEGKCLP+rEPKLAAIPXBBJzBBJzBBJzBBJzPX/zL81z/zL81z/zL81z/zL81zAKPXIBBBIBBBIBBBIBBBP9QP/6EP/nEGKARAdPMBEDIWdQKZhoaky8aeGRCZP+rECZP+sEP/6EP/mEGdAdP/mEAKARCZP+sEP/6EP/mEGXAXP/mEAKAQCZP+rECZP+sEP/6EP/mEGQAQP/mEP/kEP/kEP/lEPXBBBBBBBBBBBBBBBBP+4EP/jEPXB/+fsB/+fsB/+fsB/+fsGKP/mEPXBBN0BBN0BBN0BBN0GRP/kEPXffBBffBBffBBffBBGMP9OAXAKP/mEARP/kECZP+rEP9QGXAQAKP/mEARP/kECZP+rEAdAKP/mEARP/kEAMP9OP9QGKPMBEZhDIoaLVcxORqlGRP5BAIPBLAPeB+t+J83IBAIARP5EAIPBLAPeE+t+J83IWAIAXAKPMWdkyQK8aeXM35pS8e8fGKP5BAIPBLAPeD+t+J83IZAIAKP5EAIPBLAPeI+t+J83IkKAWAIAO/8QBBKK+pDDIUE978jJJJJBC/AB9rHIDNADCD4AE2GLC98gGVtMBCBHDABHEINAEAEPBBBGOCWP+rECWP+sEP/6EAOCEP+sEPXBBJzBBJzBBJzBBJzP+uEPXBBJfBBJfBBJfBBJfP9OP/mEPKBBAECZFHEADCLFGDAV6MBKKDNAVAL9PMBAIALCIgGDCDTGEvCBC/ABAE9r/8KBAIABAVCDTFGVAE/8QBBDNADtMBAIAIPBLBGOCWP+rECWP+sEP/6EAOCEP+sEPXBBJzBBJzBBJzBBJzP+uEPXBBJfBBJfBBJfBBJfP9OP/mEPKLBKAVAIAE/8QBBKK9TEIUCBCBYDJ1JJBGEABCIFC98gFGBbDJ1JJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIKKKEBCJWKLZ9tBB",n=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var r=e;WebAssembly.validate(n)&&(r=t);var o,s=WebAssembly.instantiate(a(r),{}).then(function(d){o=d.instance,o.exports.__wasm_call_ctors()});function a(d){for(var p=new Uint8Array(d.length),g=0;g<d.length;++g){var m=d.charCodeAt(g);p[g]=m>96?m-71:m>64?m-65:m>47?m+4:m>46?63:62}for(var A=0,g=0;g<d.length;++g)p[A++]=p[g]<60?i[p[g]]:(p[g]-60)*64+p[++g];return p.buffer.slice(0,A)}function c(d,p,g,m,A,x){var C=o.exports.sbrk,T=g+3&-4,E=C(T*m),S=C(A.length),v=new Uint8Array(o.exports.memory.buffer);v.set(A,S);var D=d(E,g,m,S,A.length);if(D==0&&x&&x(E,T,m),p.set(v.subarray(E,E+g*m)),C(E-C(0)),D!=0)throw new Error("Malformed buffer data: "+D)}var l={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},f={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return{ready:s,supported:!0,decodeVertexBuffer:function(d,p,g,m,A){c(o.exports.meshopt_decodeVertexBuffer,d,p,g,m,o.exports[l[A]])},decodeIndexBuffer:function(d,p,g,m){c(o.exports.meshopt_decodeIndexBuffer,d,p,g,m)},decodeIndexSequence:function(d,p,g,m){c(o.exports.meshopt_decodeIndexSequence,d,p,g,m)},decodeGltfBuffer:function(d,p,g,m,A,x){c(o.exports[f[A]],d,p,g,m,o.exports[l[x]])}}}();typeof jP=="object"&&typeof k5=="object"?k5.exports=LU:typeof define=="function"&&define.amd?define([],function(){return LU}):typeof jP=="object"?jP.MeshoptDecoder=LU:(typeof self<"u"?self:jP).MeshoptDecoder=LU});var wne=Jn((qP,z5)=>{var NU=function(){"use strict";var e="B9h79tEBBBECd9gEUEU9gEUB9gBB9gQUUUUUUU99UUEU9gVUUUUUB9gLUUUUE999gIUUUE999gLUUUUEU9gIUUUEUIMXDILVORBWWBEWLVE9wEIIVIEBEOWEUECJ/JEKR7OO9tw9t9vv95DBh9f9f939h79t9f9j9h229f9jT9vv7BBZ9tw79o9v9wT9f79p9t9w29p9m95BEx9tw79o9v9wT9f79p9t9w29p9m959T9j9h2wBLA9tw79o9v9wT9f9v9wT9p9t9p96w9WwvTw94swT9j9o9Sw9t9h9wBVL79iv9rBOdWEBCEKDdQQ+stXDBK/48yIkUp99hU8jJJJJBCJ/BB9rGQ8kJJJJBAQCkFCBC/kBZ1JJJB8aCUALCDTGKALCffffI0eGXCBYD/s1JJBhJJJJBBHMAQCkFAQYD94GpCDTFAMbDBAQAMbDWAQApCEFbD94AXCBYD/s1JJBhJJJJBBHSAQCkFAQYD94GpCDTFASbDBAQASbDXAQApCEFbD94CUADCITADCffffE0eCBYD/s1JJBhJJJJBBHZAQCkFAQYD94GpCDTFAZbDBAQAZbDZAQApCEFbD94AQCWFAEADALCBZ+CJJJBAXCBYD/s1JJBhJJJJBBHhAQCkFAQYD94GpCDTFAhbDBAQApCEFbD94AXCBYD/s1JJBhJJJJBBHoAQCkFAQYD94GpCDTFAobDBAQApCEFbD94ALCD4ALFHaCEHcINAcGpCETHcApAa6MBKCBHxCUApCDTGaApCffffI0eCBYD/s1JJBhJJJJBBHcAQCkFAQYD94GqCDTFAcbDBAQAqCEFbD94AcCfEAaZ1JJJBHlDNALtMBAVCD4HkApCUFHqINAIAxAk2CDTFGyYDLGpCh4Ap7C+f+B+dd2AyYDBGpCh4Ap7C/d/o+b8j27AyYDWGpCh4Ap7C+3f/n8n27HaCBHpDNDNINAlAaAqgGaCDTFG8aYDBGcCUsMEAIAcAk2CDTFAyCXZ+LJJJBtMDApCEFGpAaFHaApAq9NMBXDKKA8aAxbDBAxHcKAhAxCDTFAcbDBAxCEFGxAL9HMBKCBHpAoHcINAcApbDBAcCLFHcALApCEFGp9HMBKCBHpAhHcAoHaINDNApAcYDBGqsMBAaAoAqCDTFGqYDBbDBAqApbDBKAcCLFHcAaCLFHaALApCEFGp9HMBKKCBHaALCBYD/s1JJBhJJJJBBHyAQCkFAQYD94GpCDTFAybDBAQApCEFbD94AXCBYD/s1JJBhJJJJBBHpAQCkFAQYD94GcCDTFApbDBAQAcCEFbD94AXCBYD/s1JJBhJJJJBBHcAQCkFAQYD94GqCDTFAcbDBAQAqCEFbD94ApCfEAKZ1JJJBHeAcCfEAKZ1JJJBH3DNALtMBAZCWFH5INDNAMAaCDTGpFYDBG8etMBAZASApFYDBCITFH8fA3ApFHAAeApFHxCBHkINDNDNA8fAkCITFYDBGlAa9HMBAxAabDBAAAabDBXEKDNAMAlCDTGKFYDBGHtMBAZASAKFYDBCITGpFYDBAasMEAHCUFH8aA5ApFHcCBHpINA8aApsMEApCEFHpAcYDBHqAcCWFHcAqAa9HMBKApAH6MEKA3AKFGpAaAlApYDBCUsebDBAxAlAaAxYDBCUsebDBKAkCEFGkA8e9HMBKKAaCEFGaAL9HMBKAhHcAoHaA3HqAeHkCBHpINDNDNApAcYDBG8a9HMBDNApAaYDBG8a9HMBAkYDBH8aDNAqYDBGlCU9HMBA8aCU9HMBAyApFCB86BBXIKAyApFHxDNApAlsMBApA8asMBAxCE86BBXIKAxCL86BBXDKDNApAoA8aCDTGlFYDB9HMBDNAqYDBGxCUsMBApAxsMBAkYDBGKCUsMBApAKsMBA3AlFYDBG8eCUsMBA8eA8asMBAeAlFYDBGlCUsMBAlA8asMBDNAhAxCDTFYDBAhAlCDTFYDB9HMBAhAKCDTFYDBAhA8eCDTFYDB9HMBAyApFCD86BBXLKAyApFCL86BBXIKAyApFCL86BBXDKAyApFCL86BBXEKAyApFAyA8aFrBB86BBKAcCLFHcAaCLFHaAqCLFHqAkCLFHkALApCEFGp9HMBKAWCEgtMBAyHpALHcINDNAprBBCE9HMBApCL86BBKApCEFHpAcCUFGcMBKKCBHkCUALCX2ALC/V+q/V+qE0eCBYD/s1JJBhJJJJBBHMAQCkFAQYD94GpCDTFAMbDBAQApCEFbD94AMAIALAVZ+DJJJB8aCUALC8s2GcALC/d/o/F8u0eCBYD/s1JJBhJJJJBBHpAQCkFAQYD94GaCDTFApbDBAQAaCEFbD94ApCBAcZ1JJJBHZDNADtMBAEHcINDNAMAcCLFYDBG8aCX2FGpiDBAMAcYDBGlCX2FGaiDBGG+TG8jAMAcCWFYDBGxCX2FGqCLFiDBAaCLFiDBG8k+TG8lnAqiDBAG+TG8mApCLFiDBA8k+TG8nn+TGYAYnA8nAqCWFiDBAaCWFiDBG8p+TGinA8lApCWFiDBA8p+TG8nn+TG8lA8lnA8nA8mnAiA8jn+TG8jA8jnmm+RG8mjBBBB9etMBAYA8m+VHYA8jA8m+VH8jA8lA8m+VH8lKAZAhAlCDTFYDBC8s2FGpA8lA8m+RG8mA8lnnG8nApiDBmuDBApA8jA8mA8jnG8rnGiApiDLmuDLApAYA8mAYnG8snGrApiDWmuDWApA8rA8lnG8rApiDXmuDXApA8sA8lnG8uApiDZmuDZApA8sA8jnG8sApiDcmuDcApA8lA8mAYA8pnA8lAGnA8kA8jnmm+MG8knGGnG8lApiDkmuDkApA8jAGnG8jApiD3muD3ApAYAGnGYApiDAmuDAApAGA8knGGApiD8kmuD8kApA8mApiDYmuDYAZAhA8aCDTFYDBC8s2FGpA8nApiDBmuDBApAiApiDLmuDLApArApiDWmuDWApA8rApiDXmuDXApA8uApiDZmuDZApA8sApiDcmuDcApA8lApiDkmuDkApA8jApiD3muD3ApAYApiDAmuDAApAGApiD8kmuD8kApA8mApiDYmuDYAZAhAxCDTFYDBC8s2FGpA8nApiDBmuDBApAiApiDLmuDLApArApiDWmuDWApA8rApiDXmuDXApA8uApiDZmuDZApA8sApiDcmuDcApA8lApiDkmuDkApA8jApiD3muD3ApAYApiDAmuDAApAGApiD8kmuD8kApA8mApiDYmuDYAcCXFHcAkCIFGkAD6MBKCBH8aAEHxINCBHcINAyAEAcC+81JJBFYDBGlA8aFCDTFYDBGaFrBBHpDNDNAyAxAcFYDBGqFrBBGkC99FCfEgCPE0MBApCEsMBApCD9HMEKDNAkCUFCfEgCE0MBAeAqCDTFYDBAa9HMEKDNApCUFCfEgCE0MBA3AaCDTFYDBAq9HMEKDNAkCV2ApFC+g1JJBFrBBtMBAhAaCDTFYDBAhAqCDTFYDB0MEKjBBACjBBJzApCEseH8mAkCEsHKAEAlCDTC+81JJBFYDBA8aFCDTFYDBHlDNAMAaCX2FGpCWFiDBAMAqCX2FGkCWFiDBG8k+TG8lA8lnApiDBAkiDBG8p+TG8jA8jnApCLFiDBAkCLFiDBG8n+TGYAYnmm+RGGjBBBB9etMBA8lAG+VH8lAYAG+VHYA8jAG+VH8jKjBBACA8mAKeH8sDNAMAlCX2FGpiDWA8k+TG8mA8lA8mA8lnApiDBA8p+TGrA8jnAYApiDLA8n+TG8rnmmGin+TG8mA8mnArA8jAin+TG8lA8lnA8rAYAin+TG8jA8jnmm+RGYjBBBB9etMBA8mAY+VH8mA8jAY+VH8jA8lAY+VH8lKAZAhAqCDTFYDBC8s2FGpA8lA8sAGnGYA8lnnGiApiDBmuDBApA8jAYA8jnG8snGrApiDLmuDLApA8mAYA8mnGGnG8rApiDWmuDWApA8sA8lnG8sApiDXmuDXApAGA8lnG8uApiDZmuDZApAGA8jnG8vApiDcmuDcApA8lAYA8mA8knA8lA8pnA8nA8jnmm+MG8knGGnG8lApiDkmuDkApA8jAGnG8jApiD3muD3ApA8mAGnG8mApiDAmuDAApAGA8knGGApiD8kmuD8kApAYApiDYmuDYAZAhAaCDTFYDBC8s2FGpAiApiDBmuDBApArApiDLmuDLApA8rApiDWmuDWApA8sApiDXmuDXApA8uApiDZmuDZApA8vApiDcmuDcApA8lApiDkmuDkApA8jApiD3muD3ApA8mApiDAmuDAApAGApiD8kmuD8kApAYApiDYmuDYKAcCLFGcCX9HMBKAxCXFHxA8aCIFG8aAD6MBKKDNABAEsMBABAEADCDTZ+HJJJB8aKCUADCX2ADC/V+q/V+qE0eCBYD/s1JJBhJJJJBBHAAQCkFAQYD94GpCDTFAAbDBAQApCEFbD94CUADCDTADCffffI0eCBYD/s1JJBhJJJJBBH5AQCkFAQYD94GpCDTFA5bDBAQApCEFbD94AXCBYD/s1JJBhJJJJBBHIAQCkFAQYD94GpCDTFAIbDBAQApCEFbD94ALCBYD/s1JJBhJJJJBBH8wAQCkFAQYD94GpCDTFA8wbDBAQApCEFbD94jBBBBHrDNADAO9NMBARARnH8sAACWFH8xAQYDZH8yAQYDXH8zAQYDWH80jBBBBHrINAQCWFABADGSALAhZ+CJJJBCBHHABHxCBHKINCBHpINDNAhAxApFYDBGaCDTGEFYDBGkAhABApC+81JJBFYDBAKFCDTFYDBGcCDTFYDBG8asMBAyAcFrBBGlCV2AyAaFrBBGqFC/Q1JJBFrBBGDAqCV2AlFG8eC/Q1JJBFrBBG8fvCfEgtMBDNA8eC+g1JJBFrBBtMBA8aAk0MEKDNAqAl9HMBAqCUFCfEgCE0MBAeAEFYDBAc9HMEKAAAHCX2FGqAcAaA8fCfEgGkebDLAqAaAcAkebDBAqADA8fgCfEgCB9HbDWAHCEFHHKApCLFGpCX9HMBKAxCXFHxAKCIFGKAS6MBKDNDNAHtMBAAHcAHH8aINAcCWFGljBBBBjBBJzAZAhAcYDBGaCDTFYDBC8s2FGpiDYG8l+VA8ljBBBB9beApiDWAMAcCLFGEYDBGqCX2FGkCWFiDBG8lnApiDZAkiDBG8jnApiDAmG8mA8mmmA8lnApiDLAkCLFiDBG8mnApiDcA8lnApiD3mG8lA8lmmA8mnApiDBA8jnApiDXA8mnApiDkmG8lA8lmmA8jnApiD8kmmm+LnGYjBBBBjBBJzAZAhAqAaAlYDBGkeGlCDTFYDBC8s2FGpiDYG8l+VA8ljBBBB9beApiDWAMAaAqAkeGxCX2FGkCWFiDBG8lnApiDZAkiDBG8jnApiDAmG8mA8mmmA8lnApiDLAkCLFiDBG8mnApiDcA8lnApiD3mG8lA8lmmA8mnApiDBA8jnApiDXA8mnApiDkmG8lA8lmmA8jnApiD8kmmm+LnG8lAYA8l9fGpeuDBAEAqAxApebDBAcAaAlApebDBAcCXFHcA8aCUFG8aMBKAQCJEFCBCJ/ABZ1JJJB8aA8xHpAHHcINAQCJEFApYDBCo4C/8zgFGaAaYDBCEFbDBApCXFHpAcCUFGcMBKCBHpCBHcINAQCJEFApFGaYDBHqAaAcbDBAqAcFHcApCLFGpCJ/AB9HMBKCBHpA8xHcINAQCJEFAcYDBCo4C/8zgFGaAaYDBGaCEFbDBA5AaCDTFApbDBAcCXFHcAHApCEFGp9HMBKASAO9rGaCI9uH81DNALtMBCBHpAIHcINAcApbDBAcCLFHcALApCEFGp9HMBKKCBHbA8wCBALZ1JJJBH83AaCo9uHuA81CE4H85CBH86CBHKDNINAAA5AKCDTFYDBCX2FGxiDWG8jA8s9eMEA86A819PMEjffUUH8lDNA85AH9PMBAAA5A85CDTFYDBCX2FiDWjBB/AznH8lKDNA8jA8l9etMBA86Au0MDKDNA83AhAxYDLG87CDTG88FYDBGaFG89rBBA83AhAxYDBGECDTG8+FYDBGzFGNrBBvMBDNA80AzCDTGpFYDBGqtMBA8yA8zApFYDBCITFHpAMAaCX2FG8eCWFHDA8eCLFHXAMAzCX2FG8fCWFHVA8fCLFHWCBHcCEHlDNINDNAIApYDBCDTFYDBGkAasMBAIApCLFYDBCDTFYDBG8aAasMBAMA8aCX2FG8aiDBAMAkCX2FGkiDBG8m+TG8lAWiDBAkCLFiDBGY+TGGnA8fiDBA8m+TG8kA8aCLFiDBAY+TG8jn+TA8lAXiDBAY+TG8pnA8eiDBA8m+TG8nA8jn+TnA8jAViDBAkCWFiDBGY+TGinAGA8aCWFiDBAY+TG8mn+TA8jADiDBAY+TGYnA8pA8mn+TnA8mA8knAiA8ln+TA8mA8nnAYA8ln+TnmmjBBBB9dMDKApCWFHpAcCEFGcAq6HlAqAc9HMBKKAlCEgtMBA85CEFH85XEKAxCWFHqAZAaC8s2FGpAZAzC8s2FGciDBApiDBmuDBApAciDLApiDLmuDLApAciDWApiDWmuDWApAciDXApiDXmuDXApAciDZApiDZmuDZApAciDcApiDcmuDcApAciDkApiDkmuDkApAciD3ApiD3muD3ApAciDAApiDAmuDAApAciD8kApiD8kmuD8kApAciDYApiDYmuDYDNDNDNDNAyAEFGcrBBC9+FpDEBDKAEHpINAIApCDTGpFAabDBAoApFYDBGpAE9HMBXIKKAoA88FYDBHpAoA8+FYDBHEAIA8+FA87bDBApH87KAIAECDTFA87bDBKANCE86BBA89CE86BBAqiDBG8lArArA8l9deHrAbCEFHbCECDAcrBBCEseA86FH86KAKCEFGKAH9HMBKKAbtMBDNALtMBCBHcAeHpINDNApYDBGaCUsMBDNAcAIAaCDTGqFYDBGa9HMBAeAqFYDBHaKApAabDBKApCLFHpALAcCEFGc9HMBKCBHcA3HpINDNApYDBGaCUsMBDNAcAIAaCDTGqFYDBGa9HMBA3AqFYDBHaKApAabDBKApCLFHpALAcCEFGc9HMBKKCBHDABHpCBHkINDNAIApYDBCDTFYDBGcAIApCLFYDBCDTFYDBGasMBAcAIApCWFYDBCDTFYDBGqsMBAaAqsMBABADCDTFG8aAcbDBA8aCLFAabDBA8aCWFAqbDBADCIFHDKApCXFHpAkCIFGkAS9PMDXBKKASHDXDKADAO0MBKKDNAdtMBAdAr+RuDBKAQYD94GpCDTAQCkFFC98FHhDNINAptMEAhYDBCBYD/w1JJBh+BJJJBBAhC98FHhApCUFHpXBKKAQCJ/BBF8kJJJJBADK/PLEOUABYDBCBAICDTZ1JJJB8aADCI9uHVDNADtMBABYDBHODNALtMBAEHRADHWINAOALARYDBCDTFYDBCDTFGdAdYDBCEFbDBARCLFHRAWCUFGWMBXDKKAEHRADHWINAOARYDBCDTFGdAdYDBCEFbDBARCLFHRAWCUFGWMBKKDNAItMBABYDBHRABYDLHWCBHdAIHOINAWAdbDBAWCLFHWARYDBAdFHdARCLFHRAOCUFGOMBKKDNADCI6MBAVCEAVCE0eHQABYDLHVABYDWHRINAECWFYDBHWAECLFYDBHdAEYDBHODNALtMBALAWCDTFYDBHWALAdCDTFYDBHdALAOCDTFYDBHOKARAVAOCDTFGDYDBCITFAdbDBARADYDBCITFAWbDLADADYDBCEFbDBARAVAdCDTFGDYDBCITFAWbDBARADYDBCITFAObDLADADYDBCEFbDBARAVAWCDTFGWYDBCITFAObDBARAWYDBCITFAdbDLAWAWYDBCEFbDBAECXFHEAQCUFGQMBKKDNAItMBABYDLHRABYDBHWINARARYDBAWYDB9rbDBAWCLFHWARCLFHRAICUFGIMBKKK+3LDOUV998jJJJJBCA9rGLCZFCWFCBYD11JJBbDBALCB8pDJ1JJB83IZALCWFCBYDn1JJBbDBALCB8pD+M1JJB83IBDNADtMBAICD4HVDNABtMBAVCDTHOCBHRAEHWINABARCX2FGIAEARAV2CDTFGdiDBuDBAIAdiDLuDLAIAdiDWuDWCBHIINALCZFAIFGdAWAIFiDBGQAdiDBGKAKAQ9eeuDBALAIFGdAQAdiDBGKAKAQ9deuDBAICLFGICX9HMBKAWAOFHWARCEFGRAD9HMBXDKKAVCDTHRCBHWINCBHIINALCZFAIFGdAEAIFiDBGQAdiDBGKAKAQ9eeuDBALAIFGdAQAdiDBGKAKAQ9deuDBAICLFGICX9HMBKAEARFHEAWCEFGWAD9HMBKKALiDBALiDZGK+TjBBBB+XGQALiDLALiDcGX+TGMAMAQ9deGQALiDWALiDkGM+TGpApAQ9deHpDNABtMBADtMBjBBBBjBBJzAp+VApjBBBB9beHQINABAQABiDBAK+TnuDBABCLFGIAQAIiDBAX+TnuDBABCWFGIAQAIiDBAM+TnuDBABCXFHBADCUFGDMBKKApK+qDIDUI99DUCBHI8jJJJJBCA9rGLCZFCWFCBYD11JJBbDBALCB8pDJ1JJB83IZALCWFCBYDn1JJBbDBALCB8pD+M1JJB83IBDNDNAEMBjBBJfHVjBBJfHOjBBJfHRXEKADCD4CDTHWINCBHDINALCZFADFGdABADFiDBGOAdiDBGRARAO9eeuDBALADFGdAOAdiDBGRARAO9deuDBADCLFGDCX9HMBKABAWFHBAICEFGIAE9HMBKALiDWALiDk+THRALiDLALiDc+THOALiDBALiDZ+THVKAVjBBBB+XGVAOAOAV9deGOARARAO9deK9dEEUABCfEAICDTZ1JJJBHLCBHIDNADtMBINDNALAEYDBCDTFGBYDBCU9HMBABAIbDBAICEFHIKAECLFHEADCUFGDMBKKAIK9TEIUCBCBYD/01JJBGEABCIFC98gFGBbD/01JJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK/lEEEUDNDNAEABvCIgtMBABHIXEKDNDNADCZ9PMBABHIXEKABHIINAIAEYDBbDBAICLFAECLFYDBbDBAICWFAECWFYDBbDBAICXFAECXFYDBbDBAICZFHIAECZFHEADC9wFGDCS0MBKKADCL6MBINAIAEYDBbDBAECLFHEAICLFHIADC98FGDCI0MBKKDNADtMBINAIAErBB86BBAICEFHIAECEFHEADCUFGDMBKKABK/AEEDUDNDNABCIgtMBABHIXEKAECfEgC+B+C+EW2HLDNDNADCZ9PMBABHIXEKABHIINAIALbDBAICXFALbDBAICWFALbDBAICLFALbDBAICZFHIADC9wFGDCS0MBKKADCL6MBINAIALbDBAICLFHIADC98FGDCI0MBKKDNADtMBINAIAE86BBAICEFHIADCUFGDMBKKABK9TEIUCBCBYD/01JJBGEABCIFC98gFGBbD/01JJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK9+EIUzBHEDNDNCBYD/01JJBGDAECZTGI9NMBCUHEADAI9rCffIFCZ4NBCUsMEKADHEKCBABAE9rCIFC98gCBYD/01JJBFGDbD/01JJBDNADzBCZTGE9NMBADAE9rCffIFCZ4NB8aKK6EIUCBHIDNADtMBDNINABrBBGLAErBBGV9HMEAECEFHEABCEFHBADCUFGDMBXDKKALAV9rHIKAIKK+CEDBCJWK9pffUUffUUffUUffUfffUfffUfBBBBBBBBEEEBEEBEBBEEEBEBBBBBEBEBBBBBEBBBDBBBBBBBBBBBBBBBEEEEEBEBBBBBEBBBBBEEBBBBBBC/sWKXEBBBDBBBJ9kBB",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(r(e),{}).then(function(p){n=p.instance,n.exports.__wasm_call_ctors()});function r(p){for(var g=new Uint8Array(p.length),m=0;m<p.length;++m){var A=p.charCodeAt(m);g[m]=A>96?A-71:A>64?A-65:A>47?A+4:A>46?63:62}for(var x=0,m=0;m<p.length;++m)g[x++]=g[m]<60?t[g[m]]:(g[m]-60)*64+g[++m];return g.buffer.slice(0,x)}function o(p){if(!p)throw new Error("Assertion failed")}function s(p){return new Uint8Array(p.buffer,p.byteOffset,p.byteLength)}function a(p,g){var m=n.exports.sbrk,A=m(p.length*4),x=m(g*4),C=new Uint8Array(n.exports.memory.buffer),T=s(p);C.set(T,A);var E=n.exports.meshopt_optimizeVertexFetchRemap(x,A,p.length,g);C=new Uint8Array(n.exports.memory.buffer);var S=new Uint32Array(g);new Uint8Array(S.buffer).set(C.subarray(x,x+g*4)),T.set(C.subarray(A,A+p.length*4)),m(A-m(0));for(var v=0;v<p.length;++v)p[v]=S[p[v]];return[S,E]}function c(p){for(var g=0,m=0;m<p.length;++m){var A=p[m];g=g<A?A:g}return g}function l(p,g,m,A,x,C,T,E,S){var v=n.exports.sbrk,D=v(4),M=v(m*4),O=v(x*C),B=v(m*4),L=new Uint8Array(n.exports.memory.buffer);L.set(s(A),O),L.set(s(g),B);var _=p(M,B,m,O,x,C,T,E,S,D);L=new Uint8Array(n.exports.memory.buffer);var b=new Uint32Array(_);s(b).set(L.subarray(M,M+_*4));var w=new Float32Array(1);return s(w).set(L.subarray(D,D+4)),v(D-v(0)),[b,w[0]]}function f(p,g,m,A){var x=n.exports.sbrk,C=x(m*A),T=new Uint8Array(n.exports.memory.buffer);T.set(s(g),C);var E=p(C,m,A);return x(C-x(0)),E}var d={LockBorder:1};return{ready:i,supported:!0,compactMesh:function(p){o(p instanceof Uint32Array||p instanceof Int32Array||p instanceof Uint16Array||p instanceof Int16Array),o(p.length%3==0);var g=p.BYTES_PER_ELEMENT==4?p:new Uint32Array(p);return a(g,c(p)+1)},simplify:function(p,g,m,A,x,C){o(p instanceof Uint32Array||p instanceof Int32Array||p instanceof Uint16Array||p instanceof Int16Array),o(p.length%3==0),o(g instanceof Float32Array),o(g.length%m==0),o(m>=3),o(A%3==0);for(var T=0,E=0;E<(C?C.length:0);++E)T|=d[C[E]];var S=p.BYTES_PER_ELEMENT==4?p:new Uint32Array(p),v=l(n.exports.meshopt_simplify,S,p.length,g,g.length,m*4,A,x,T);return v[0]=p instanceof Uint32Array?v[0]:new p.constructor(v[0]),v},getScale:function(p,g){return o(p instanceof Float32Array),o(p.length%g==0),f(n.exports.meshopt_simplifyScale,p,p.length,g*4)}}}();typeof qP=="object"&&typeof z5=="object"?z5.exports=NU:typeof define=="function"&&define.amd?define([],function(){return NU}):typeof qP=="object"?qP.MeshoptSimplifier=NU:(typeof self<"u"?self:qP).MeshoptSimplifier=NU});var Ine=Jn((qYt,Dne)=>{var pLe=Sne(),_Le=vne(),gLe=wne();Dne.exports={MeshoptEncoder:pLe,MeshoptDecoder:_Le,MeshoptSimplifier:gLe}});var Qoe=Jn((j_n,Zoe)=>{"use strict";Zoe.exports=lGe;var mM=1e20;function lGe(e,t){t||(t={});var n=t.cutoff==null?.25:t.cutoff,i=t.radius==null?8:t.radius,r=t.channel||0,o,s,a,c,l,f,d,p,g,m,A;if(ArrayBuffer.isView(e)||Array.isArray(e)){if(!t.width||!t.height)throw Error("For raw data width and height should be provided by options");o=t.width,s=t.height,c=e,t.stride?f=t.stride:f=Math.floor(e.length/o/s)}else window.HTMLCanvasElement&&e instanceof window.HTMLCanvasElement?(p=e,d=p.getContext("2d"),o=p.width,s=p.height,g=d.getImageData(0,0,o,s),c=g.data,f=4):window.CanvasRenderingContext2D&&e instanceof window.CanvasRenderingContext2D?(p=e.canvas,d=e,o=p.width,s=p.height,g=d.getImageData(0,0,o,s),c=g.data,f=4):window.ImageData&&e instanceof window.ImageData&&(g=e,o=e.width,s=e.height,c=g.data,f=4);if(a=Math.max(o,s),window.Uint8ClampedArray&&c instanceof window.Uint8ClampedArray||window.Uint8Array&&c instanceof window.Uint8Array)for(l=c,c=Array(o*s),m=0,A=Math.floor(l.length/f);m<A;m++)c[m]=l[m*f+r]/255;else if(f!==1)throw Error("Raw data can have only 1 value per pixel");var x=Array(o*s),C=Array(o*s),T=Array(a),E=Array(a),S=Array(a+1),v=Array(a);for(m=0,A=o*s;m<A;m++){var D=c[m];x[m]=D===1?0:D===0?mM:Math.pow(Math.max(0,.5-D),2),C[m]=D===1?mM:D===0?0:Math.pow(Math.max(0,D-.5),2)}Koe(x,o,s,T,E,v,S),Koe(C,o,s,T,E,v,S);var M=window.Float32Array?new Float32Array(o*s):new Array(o*s);for(m=0,A=o*s;m<A;m++)M[m]=Math.min(Math.max(1-((x[m]-C[m])/i+n),0),1);return M}function Koe(e,t,n,i,r,o,s){for(var a=0;a<t;a++){for(var c=0;c<n;c++)i[c]=e[c*t+a];for(Joe(i,r,o,s,n),c=0;c<n;c++)e[c*t+a]=r[c]}for(c=0;c<n;c++){for(a=0;a<t;a++)i[a]=e[c*t+a];for(Joe(i,r,o,s,t),a=0;a<t;a++)e[c*t+a]=Math.sqrt(r[a])}}function Joe(e,t,n,i,r){n[0]=0,i[0]=-mM,i[1]=+mM;for(var o=1,s=0;o<r;o++){for(var a=(e[o]+o*o-(e[n[s]]+n[s]*n[s]))/(2*o-2*n[s]);a<=i[s];)s--,a=(e[o]+o*o-(e[n[s]]+n[s]*n[s]))/(2*o-2*n[s]);s++,n[s]=o,i[s]=a,i[s+1]=+mM}for(o=0,s=0;o<r;o++){for(;i[s+1]<o;)s++;t[o]=(o-n[s])*(o-n[s])+e[n[s]]}}});var ise=Jn((cgn,gV)=>{function xGe(){var e=0,t=1,n=2,i=3,r=4,o=5,s=6,a=7,c=8,l=9,f=10,d=11,p=12,g=13,m=14,A=15,x=16,C=17,T=0,E=1,S=2,v=3,D=4;function M(_,b){return 55296<=_.charCodeAt(b)&&_.charCodeAt(b)<=56319&&56320<=_.charCodeAt(b+1)&&_.charCodeAt(b+1)<=57343}function O(_,b){b===void 0&&(b=0);var w=_.charCodeAt(b);if(55296<=w&&w<=56319&&b<_.length-1){var I=w,R=_.charCodeAt(b+1);return 56320<=R&&R<=57343?(I-55296)*1024+(R-56320)+65536:I}if(56320<=w&&w<=57343&&b>=1){var I=_.charCodeAt(b-1),R=w;return 55296<=I&&I<=56319?(I-55296)*1024+(R-56320)+65536:R}return w}function B(_,b,w){var I=[_].concat(b).concat([w]),R=I[I.length-2],F=w,k=I.lastIndexOf(m);if(k>1&&I.slice(1,k).every(function(U){return U==i})&&[i,g,C].indexOf(_)==-1)return S;var V=I.lastIndexOf(r);if(V>0&&I.slice(1,V).every(function(U){return U==r})&&[p,r].indexOf(R)==-1)return I.filter(function(U){return U==r}).length%2==1?v:D;if(R==e&&F==t)return T;if(R==n||R==e||R==t)return F==m&&b.every(function(U){return U==i})?S:E;if(F==n||F==e||F==t)return E;if(R==s&&(F==s||F==a||F==l||F==f))return T;if((R==l||R==a)&&(F==a||F==c))return T;if((R==f||R==c)&&F==c)return T;if(F==i||F==A)return T;if(F==o)return T;if(R==p)return T;var G=I.indexOf(i)!=-1?I.lastIndexOf(i)-1:I.length-2;return[g,C].indexOf(I[G])!=-1&&I.slice(G+1,-1).every(function(U){return U==i})&&F==m||R==A&&[x,C].indexOf(F)!=-1?T:b.indexOf(r)!=-1?S:R==r&&F==r?T:E}this.nextBreak=function(_,b){if(b===void 0&&(b=0),b<0)return 0;if(b>=_.length-1)return _.length;for(var w=L(O(_,b)),I=[],R=b+1;R<_.length;R++)if(!M(_,R-1)){var F=L(O(_,R));if(B(w,I,F))return R;I.push(F)}return _.length},this.splitGraphemes=function(_){for(var b=[],w=0,I;(I=this.nextBreak(_,w))<_.length;)b.push(_.slice(w,I)),w=I;return w<_.length&&b.push(_.slice(w)),b},this.iterateGraphemes=function(_){var b=0,w={next:function(){var I,R;return(R=this.nextBreak(_,b))<_.length?(I=_.slice(b,R),b=R,{value:I,done:!1}):b<_.length?(I=_.slice(b),b=_.length,{value:I,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(w[Symbol.iterator]=function(){return w}),w},this.countGraphemes=function(_){for(var b=0,w=0,I;(I=this.nextBreak(_,w))<_.length;)w=I,b++;return w<_.length&&b++,b};function L(_){return 1536<=_&&_<=1541||_==1757||_==1807||_==2274||_==3406||_==69821||70082<=_&&_<=70083||_==72250||72326<=_&&_<=72329||_==73030?p:_==13?e:_==10?t:0<=_&&_<=9||11<=_&&_<=12||14<=_&&_<=31||127<=_&&_<=159||_==173||_==1564||_==6158||_==8203||8206<=_&&_<=8207||_==8232||_==8233||8234<=_&&_<=8238||8288<=_&&_<=8292||_==8293||8294<=_&&_<=8303||55296<=_&&_<=57343||_==65279||65520<=_&&_<=65528||65529<=_&&_<=65531||113824<=_&&_<=113827||119155<=_&&_<=119162||_==917504||_==917505||917506<=_&&_<=917535||917632<=_&&_<=917759||918e3<=_&&_<=921599?n:768<=_&&_<=879||1155<=_&&_<=1159||1160<=_&&_<=1161||1425<=_&&_<=1469||_==1471||1473<=_&&_<=1474||1476<=_&&_<=1477||_==1479||1552<=_&&_<=1562||1611<=_&&_<=1631||_==1648||1750<=_&&_<=1756||1759<=_&&_<=1764||1767<=_&&_<=1768||1770<=_&&_<=1773||_==1809||1840<=_&&_<=1866||1958<=_&&_<=1968||2027<=_&&_<=2035||2070<=_&&_<=2073||2075<=_&&_<=2083||2085<=_&&_<=2087||2089<=_&&_<=2093||2137<=_&&_<=2139||2260<=_&&_<=2273||2275<=_&&_<=2306||_==2362||_==2364||2369<=_&&_<=2376||_==2381||2385<=_&&_<=2391||2402<=_&&_<=2403||_==2433||_==2492||_==2494||2497<=_&&_<=2500||_==2509||_==2519||2530<=_&&_<=2531||2561<=_&&_<=2562||_==2620||2625<=_&&_<=2626||2631<=_&&_<=2632||2635<=_&&_<=2637||_==2641||2672<=_&&_<=2673||_==2677||2689<=_&&_<=2690||_==2748||2753<=_&&_<=2757||2759<=_&&_<=2760||_==2765||2786<=_&&_<=2787||2810<=_&&_<=2815||_==2817||_==2876||_==2878||_==2879||2881<=_&&_<=2884||_==2893||_==2902||_==2903||2914<=_&&_<=2915||_==2946||_==3006||_==3008||_==3021||_==3031||_==3072||3134<=_&&_<=3136||3142<=_&&_<=3144||3146<=_&&_<=3149||3157<=_&&_<=3158||3170<=_&&_<=3171||_==3201||_==3260||_==3263||_==3266||_==3270||3276<=_&&_<=3277||3285<=_&&_<=3286||3298<=_&&_<=3299||3328<=_&&_<=3329||3387<=_&&_<=3388||_==3390||3393<=_&&_<=3396||_==3405||_==3415||3426<=_&&_<=3427||_==3530||_==3535||3538<=_&&_<=3540||_==3542||_==3551||_==3633||3636<=_&&_<=3642||3655<=_&&_<=3662||_==3761||3764<=_&&_<=3769||3771<=_&&_<=3772||3784<=_&&_<=3789||3864<=_&&_<=3865||_==3893||_==3895||_==3897||3953<=_&&_<=3966||3968<=_&&_<=3972||3974<=_&&_<=3975||3981<=_&&_<=3991||3993<=_&&_<=4028||_==4038||4141<=_&&_<=4144||4146<=_&&_<=4151||4153<=_&&_<=4154||4157<=_&&_<=4158||4184<=_&&_<=4185||4190<=_&&_<=4192||4209<=_&&_<=4212||_==4226||4229<=_&&_<=4230||_==4237||_==4253||4957<=_&&_<=4959||5906<=_&&_<=5908||5938<=_&&_<=5940||5970<=_&&_<=5971||6002<=_&&_<=6003||6068<=_&&_<=6069||6071<=_&&_<=6077||_==6086||6089<=_&&_<=6099||_==6109||6155<=_&&_<=6157||6277<=_&&_<=6278||_==6313||6432<=_&&_<=6434||6439<=_&&_<=6440||_==6450||6457<=_&&_<=6459||6679<=_&&_<=6680||_==6683||_==6742||6744<=_&&_<=6750||_==6752||_==6754||6757<=_&&_<=6764||6771<=_&&_<=6780||_==6783||6832<=_&&_<=6845||_==6846||6912<=_&&_<=6915||_==6964||6966<=_&&_<=6970||_==6972||_==6978||7019<=_&&_<=7027||7040<=_&&_<=7041||7074<=_&&_<=7077||7080<=_&&_<=7081||7083<=_&&_<=7085||_==7142||7144<=_&&_<=7145||_==7149||7151<=_&&_<=7153||7212<=_&&_<=7219||7222<=_&&_<=7223||7376<=_&&_<=7378||7380<=_&&_<=7392||7394<=_&&_<=7400||_==7405||_==7412||7416<=_&&_<=7417||7616<=_&&_<=7673||7675<=_&&_<=7679||_==8204||8400<=_&&_<=8412||8413<=_&&_<=8416||_==8417||8418<=_&&_<=8420||8421<=_&&_<=8432||11503<=_&&_<=11505||_==11647||11744<=_&&_<=11775||12330<=_&&_<=12333||12334<=_&&_<=12335||12441<=_&&_<=12442||_==42607||42608<=_&&_<=42610||42612<=_&&_<=42621||42654<=_&&_<=42655||42736<=_&&_<=42737||_==43010||_==43014||_==43019||43045<=_&&_<=43046||43204<=_&&_<=43205||43232<=_&&_<=43249||43302<=_&&_<=43309||43335<=_&&_<=43345||43392<=_&&_<=43394||_==43443||43446<=_&&_<=43449||_==43452||_==43493||43561<=_&&_<=43566||43569<=_&&_<=43570||43573<=_&&_<=43574||_==43587||_==43596||_==43644||_==43696||43698<=_&&_<=43700||43703<=_&&_<=43704||43710<=_&&_<=43711||_==43713||43756<=_&&_<=43757||_==43766||_==44005||_==44008||_==44013||_==64286||65024<=_&&_<=65039||65056<=_&&_<=65071||65438<=_&&_<=65439||_==66045||_==66272||66422<=_&&_<=66426||68097<=_&&_<=68099||68101<=_&&_<=68102||68108<=_&&_<=68111||68152<=_&&_<=68154||_==68159||68325<=_&&_<=68326||_==69633||69688<=_&&_<=69702||69759<=_&&_<=69761||69811<=_&&_<=69814||69817<=_&&_<=69818||69888<=_&&_<=69890||69927<=_&&_<=69931||69933<=_&&_<=69940||_==70003||70016<=_&&_<=70017||70070<=_&&_<=70078||70090<=_&&_<=70092||70191<=_&&_<=70193||_==70196||70198<=_&&_<=70199||_==70206||_==70367||70371<=_&&_<=70378||70400<=_&&_<=70401||_==70460||_==70462||_==70464||_==70487||70502<=_&&_<=70508||70512<=_&&_<=70516||70712<=_&&_<=70719||70722<=_&&_<=70724||_==70726||_==70832||70835<=_&&_<=70840||_==70842||_==70845||70847<=_&&_<=70848||70850<=_&&_<=70851||_==71087||71090<=_&&_<=71093||71100<=_&&_<=71101||71103<=_&&_<=71104||71132<=_&&_<=71133||71219<=_&&_<=71226||_==71229||71231<=_&&_<=71232||_==71339||_==71341||71344<=_&&_<=71349||_==71351||71453<=_&&_<=71455||71458<=_&&_<=71461||71463<=_&&_<=71467||72193<=_&&_<=72198||72201<=_&&_<=72202||72243<=_&&_<=72248||72251<=_&&_<=72254||_==72263||72273<=_&&_<=72278||72281<=_&&_<=72283||72330<=_&&_<=72342||72344<=_&&_<=72345||72752<=_&&_<=72758||72760<=_&&_<=72765||_==72767||72850<=_&&_<=72871||72874<=_&&_<=72880||72882<=_&&_<=72883||72885<=_&&_<=72886||73009<=_&&_<=73014||_==73018||73020<=_&&_<=73021||73023<=_&&_<=73029||_==73031||92912<=_&&_<=92916||92976<=_&&_<=92982||94095<=_&&_<=94098||113821<=_&&_<=113822||_==119141||119143<=_&&_<=119145||119150<=_&&_<=119154||119163<=_&&_<=119170||119173<=_&&_<=119179||119210<=_&&_<=119213||119362<=_&&_<=119364||121344<=_&&_<=121398||121403<=_&&_<=121452||_==121461||_==121476||121499<=_&&_<=121503||121505<=_&&_<=121519||122880<=_&&_<=122886||122888<=_&&_<=122904||122907<=_&&_<=122913||122915<=_&&_<=122916||122918<=_&&_<=122922||125136<=_&&_<=125142||125252<=_&&_<=125258||917536<=_&&_<=917631||917760<=_&&_<=917999?i:127462<=_&&_<=127487?r:_==2307||_==2363||2366<=_&&_<=2368||2377<=_&&_<=2380||2382<=_&&_<=2383||2434<=_&&_<=2435||2495<=_&&_<=2496||2503<=_&&_<=2504||2507<=_&&_<=2508||_==2563||2622<=_&&_<=2624||_==2691||2750<=_&&_<=2752||_==2761||2763<=_&&_<=2764||2818<=_&&_<=2819||_==2880||2887<=_&&_<=2888||2891<=_&&_<=2892||_==3007||3009<=_&&_<=3010||3014<=_&&_<=3016||3018<=_&&_<=3020||3073<=_&&_<=3075||3137<=_&&_<=3140||3202<=_&&_<=3203||_==3262||3264<=_&&_<=3265||3267<=_&&_<=3268||3271<=_&&_<=3272||3274<=_&&_<=3275||3330<=_&&_<=3331||3391<=_&&_<=3392||3398<=_&&_<=3400||3402<=_&&_<=3404||3458<=_&&_<=3459||3536<=_&&_<=3537||3544<=_&&_<=3550||3570<=_&&_<=3571||_==3635||_==3763||3902<=_&&_<=3903||_==3967||_==4145||4155<=_&&_<=4156||4182<=_&&_<=4183||_==4228||_==6070||6078<=_&&_<=6085||6087<=_&&_<=6088||6435<=_&&_<=6438||6441<=_&&_<=6443||6448<=_&&_<=6449||6451<=_&&_<=6456||6681<=_&&_<=6682||_==6741||_==6743||6765<=_&&_<=6770||_==6916||_==6965||_==6971||6973<=_&&_<=6977||6979<=_&&_<=6980||_==7042||_==7073||7078<=_&&_<=7079||_==7082||_==7143||7146<=_&&_<=7148||_==7150||7154<=_&&_<=7155||7204<=_&&_<=7211||7220<=_&&_<=7221||_==7393||7410<=_&&_<=7411||_==7415||43043<=_&&_<=43044||_==43047||43136<=_&&_<=43137||43188<=_&&_<=43203||43346<=_&&_<=43347||_==43395||43444<=_&&_<=43445||43450<=_&&_<=43451||43453<=_&&_<=43456||43567<=_&&_<=43568||43571<=_&&_<=43572||_==43597||_==43755||43758<=_&&_<=43759||_==43765||44003<=_&&_<=44004||44006<=_&&_<=44007||44009<=_&&_<=44010||_==44012||_==69632||_==69634||_==69762||69808<=_&&_<=69810||69815<=_&&_<=69816||_==69932||_==70018||70067<=_&&_<=70069||70079<=_&&_<=70080||70188<=_&&_<=70190||70194<=_&&_<=70195||_==70197||70368<=_&&_<=70370||70402<=_&&_<=70403||_==70463||70465<=_&&_<=70468||70471<=_&&_<=70472||70475<=_&&_<=70477||70498<=_&&_<=70499||70709<=_&&_<=70711||70720<=_&&_<=70721||_==70725||70833<=_&&_<=70834||_==70841||70843<=_&&_<=70844||_==70846||_==70849||71088<=_&&_<=71089||71096<=_&&_<=71099||_==71102||71216<=_&&_<=71218||71227<=_&&_<=71228||_==71230||_==71340||71342<=_&&_<=71343||_==71350||71456<=_&&_<=71457||_==71462||72199<=_&&_<=72200||_==72249||72279<=_&&_<=72280||_==72343||_==72751||_==72766||_==72873||_==72881||_==72884||94033<=_&&_<=94078||_==119142||_==119149?o:4352<=_&&_<=4447||43360<=_&&_<=43388?s:4448<=_&&_<=4519||55216<=_&&_<=55238?a:4520<=_&&_<=4607||55243<=_&&_<=55291?c:_==44032||_==44060||_==44088||_==44116||_==44144||_==44172||_==44200||_==44228||_==44256||_==44284||_==44312||_==44340||_==44368||_==44396||_==44424||_==44452||_==44480||_==44508||_==44536||_==44564||_==44592||_==44620||_==44648||_==44676||_==44704||_==44732||_==44760||_==44788||_==44816||_==44844||_==44872||_==44900||_==44928||_==44956||_==44984||_==45012||_==45040||_==45068||_==45096||_==45124||_==45152||_==45180||_==45208||_==45236||_==45264||_==45292||_==45320||_==45348||_==45376||_==45404||_==45432||_==45460||_==45488||_==45516||_==45544||_==45572||_==45600||_==45628||_==45656||_==45684||_==45712||_==45740||_==45768||_==45796||_==45824||_==45852||_==45880||_==45908||_==45936||_==45964||_==45992||_==46020||_==46048||_==46076||_==46104||_==46132||_==46160||_==46188||_==46216||_==46244||_==46272||_==46300||_==46328||_==46356||_==46384||_==46412||_==46440||_==46468||_==46496||_==46524||_==46552||_==46580||_==46608||_==46636||_==46664||_==46692||_==46720||_==46748||_==46776||_==46804||_==46832||_==46860||_==46888||_==46916||_==46944||_==46972||_==47e3||_==47028||_==47056||_==47084||_==47112||_==47140||_==47168||_==47196||_==47224||_==47252||_==47280||_==47308||_==47336||_==47364||_==47392||_==47420||_==47448||_==47476||_==47504||_==47532||_==47560||_==47588||_==47616||_==47644||_==47672||_==47700||_==47728||_==47756||_==47784||_==47812||_==47840||_==47868||_==47896||_==47924||_==47952||_==47980||_==48008||_==48036||_==48064||_==48092||_==48120||_==48148||_==48176||_==48204||_==48232||_==48260||_==48288||_==48316||_==48344||_==48372||_==48400||_==48428||_==48456||_==48484||_==48512||_==48540||_==48568||_==48596||_==48624||_==48652||_==48680||_==48708||_==48736||_==48764||_==48792||_==48820||_==48848||_==48876||_==48904||_==48932||_==48960||_==48988||_==49016||_==49044||_==49072||_==49100||_==49128||_==49156||_==49184||_==49212||_==49240||_==49268||_==49296||_==49324||_==49352||_==49380||_==49408||_==49436||_==49464||_==49492||_==49520||_==49548||_==49576||_==49604||_==49632||_==49660||_==49688||_==49716||_==49744||_==49772||_==49800||_==49828||_==49856||_==49884||_==49912||_==49940||_==49968||_==49996||_==50024||_==50052||_==50080||_==50108||_==50136||_==50164||_==50192||_==50220||_==50248||_==50276||_==50304||_==50332||_==50360||_==50388||_==50416||_==50444||_==50472||_==50500||_==50528||_==50556||_==50584||_==50612||_==50640||_==50668||_==50696||_==50724||_==50752||_==50780||_==50808||_==50836||_==50864||_==50892||_==50920||_==50948||_==50976||_==51004||_==51032||_==51060||_==51088||_==51116||_==51144||_==51172||_==51200||_==51228||_==51256||_==51284||_==51312||_==51340||_==51368||_==51396||_==51424||_==51452||_==51480||_==51508||_==51536||_==51564||_==51592||_==51620||_==51648||_==51676||_==51704||_==51732||_==51760||_==51788||_==51816||_==51844||_==51872||_==51900||_==51928||_==51956||_==51984||_==52012||_==52040||_==52068||_==52096||_==52124||_==52152||_==52180||_==52208||_==52236||_==52264||_==52292||_==52320||_==52348||_==52376||_==52404||_==52432||_==52460||_==52488||_==52516||_==52544||_==52572||_==52600||_==52628||_==52656||_==52684||_==52712||_==52740||_==52768||_==52796||_==52824||_==52852||_==52880||_==52908||_==52936||_==52964||_==52992||_==53020||_==53048||_==53076||_==53104||_==53132||_==53160||_==53188||_==53216||_==53244||_==53272||_==53300||_==53328||_==53356||_==53384||_==53412||_==53440||_==53468||_==53496||_==53524||_==53552||_==53580||_==53608||_==53636||_==53664||_==53692||_==53720||_==53748||_==53776||_==53804||_==53832||_==53860||_==53888||_==53916||_==53944||_==53972||_==54e3||_==54028||_==54056||_==54084||_==54112||_==54140||_==54168||_==54196||_==54224||_==54252||_==54280||_==54308||_==54336||_==54364||_==54392||_==54420||_==54448||_==54476||_==54504||_==54532||_==54560||_==54588||_==54616||_==54644||_==54672||_==54700||_==54728||_==54756||_==54784||_==54812||_==54840||_==54868||_==54896||_==54924||_==54952||_==54980||_==55008||_==55036||_==55064||_==55092||_==55120||_==55148||_==55176?l:44033<=_&&_<=44059||44061<=_&&_<=44087||44089<=_&&_<=44115||44117<=_&&_<=44143||44145<=_&&_<=44171||44173<=_&&_<=44199||44201<=_&&_<=44227||44229<=_&&_<=44255||44257<=_&&_<=44283||44285<=_&&_<=44311||44313<=_&&_<=44339||44341<=_&&_<=44367||44369<=_&&_<=44395||44397<=_&&_<=44423||44425<=_&&_<=44451||44453<=_&&_<=44479||44481<=_&&_<=44507||44509<=_&&_<=44535||44537<=_&&_<=44563||44565<=_&&_<=44591||44593<=_&&_<=44619||44621<=_&&_<=44647||44649<=_&&_<=44675||44677<=_&&_<=44703||44705<=_&&_<=44731||44733<=_&&_<=44759||44761<=_&&_<=44787||44789<=_&&_<=44815||44817<=_&&_<=44843||44845<=_&&_<=44871||44873<=_&&_<=44899||44901<=_&&_<=44927||44929<=_&&_<=44955||44957<=_&&_<=44983||44985<=_&&_<=45011||45013<=_&&_<=45039||45041<=_&&_<=45067||45069<=_&&_<=45095||45097<=_&&_<=45123||45125<=_&&_<=45151||45153<=_&&_<=45179||45181<=_&&_<=45207||45209<=_&&_<=45235||45237<=_&&_<=45263||45265<=_&&_<=45291||45293<=_&&_<=45319||45321<=_&&_<=45347||45349<=_&&_<=45375||45377<=_&&_<=45403||45405<=_&&_<=45431||45433<=_&&_<=45459||45461<=_&&_<=45487||45489<=_&&_<=45515||45517<=_&&_<=45543||45545<=_&&_<=45571||45573<=_&&_<=45599||45601<=_&&_<=45627||45629<=_&&_<=45655||45657<=_&&_<=45683||45685<=_&&_<=45711||45713<=_&&_<=45739||45741<=_&&_<=45767||45769<=_&&_<=45795||45797<=_&&_<=45823||45825<=_&&_<=45851||45853<=_&&_<=45879||45881<=_&&_<=45907||45909<=_&&_<=45935||45937<=_&&_<=45963||45965<=_&&_<=45991||45993<=_&&_<=46019||46021<=_&&_<=46047||46049<=_&&_<=46075||46077<=_&&_<=46103||46105<=_&&_<=46131||46133<=_&&_<=46159||46161<=_&&_<=46187||46189<=_&&_<=46215||46217<=_&&_<=46243||46245<=_&&_<=46271||46273<=_&&_<=46299||46301<=_&&_<=46327||46329<=_&&_<=46355||46357<=_&&_<=46383||46385<=_&&_<=46411||46413<=_&&_<=46439||46441<=_&&_<=46467||46469<=_&&_<=46495||46497<=_&&_<=46523||46525<=_&&_<=46551||46553<=_&&_<=46579||46581<=_&&_<=46607||46609<=_&&_<=46635||46637<=_&&_<=46663||46665<=_&&_<=46691||46693<=_&&_<=46719||46721<=_&&_<=46747||46749<=_&&_<=46775||46777<=_&&_<=46803||46805<=_&&_<=46831||46833<=_&&_<=46859||46861<=_&&_<=46887||46889<=_&&_<=46915||46917<=_&&_<=46943||46945<=_&&_<=46971||46973<=_&&_<=46999||47001<=_&&_<=47027||47029<=_&&_<=47055||47057<=_&&_<=47083||47085<=_&&_<=47111||47113<=_&&_<=47139||47141<=_&&_<=47167||47169<=_&&_<=47195||47197<=_&&_<=47223||47225<=_&&_<=47251||47253<=_&&_<=47279||47281<=_&&_<=47307||47309<=_&&_<=47335||47337<=_&&_<=47363||47365<=_&&_<=47391||47393<=_&&_<=47419||47421<=_&&_<=47447||47449<=_&&_<=47475||47477<=_&&_<=47503||47505<=_&&_<=47531||47533<=_&&_<=47559||47561<=_&&_<=47587||47589<=_&&_<=47615||47617<=_&&_<=47643||47645<=_&&_<=47671||47673<=_&&_<=47699||47701<=_&&_<=47727||47729<=_&&_<=47755||47757<=_&&_<=47783||47785<=_&&_<=47811||47813<=_&&_<=47839||47841<=_&&_<=47867||47869<=_&&_<=47895||47897<=_&&_<=47923||47925<=_&&_<=47951||47953<=_&&_<=47979||47981<=_&&_<=48007||48009<=_&&_<=48035||48037<=_&&_<=48063||48065<=_&&_<=48091||48093<=_&&_<=48119||48121<=_&&_<=48147||48149<=_&&_<=48175||48177<=_&&_<=48203||48205<=_&&_<=48231||48233<=_&&_<=48259||48261<=_&&_<=48287||48289<=_&&_<=48315||48317<=_&&_<=48343||48345<=_&&_<=48371||48373<=_&&_<=48399||48401<=_&&_<=48427||48429<=_&&_<=48455||48457<=_&&_<=48483||48485<=_&&_<=48511||48513<=_&&_<=48539||48541<=_&&_<=48567||48569<=_&&_<=48595||48597<=_&&_<=48623||48625<=_&&_<=48651||48653<=_&&_<=48679||48681<=_&&_<=48707||48709<=_&&_<=48735||48737<=_&&_<=48763||48765<=_&&_<=48791||48793<=_&&_<=48819||48821<=_&&_<=48847||48849<=_&&_<=48875||48877<=_&&_<=48903||48905<=_&&_<=48931||48933<=_&&_<=48959||48961<=_&&_<=48987||48989<=_&&_<=49015||49017<=_&&_<=49043||49045<=_&&_<=49071||49073<=_&&_<=49099||49101<=_&&_<=49127||49129<=_&&_<=49155||49157<=_&&_<=49183||49185<=_&&_<=49211||49213<=_&&_<=49239||49241<=_&&_<=49267||49269<=_&&_<=49295||49297<=_&&_<=49323||49325<=_&&_<=49351||49353<=_&&_<=49379||49381<=_&&_<=49407||49409<=_&&_<=49435||49437<=_&&_<=49463||49465<=_&&_<=49491||49493<=_&&_<=49519||49521<=_&&_<=49547||49549<=_&&_<=49575||49577<=_&&_<=49603||49605<=_&&_<=49631||49633<=_&&_<=49659||49661<=_&&_<=49687||49689<=_&&_<=49715||49717<=_&&_<=49743||49745<=_&&_<=49771||49773<=_&&_<=49799||49801<=_&&_<=49827||49829<=_&&_<=49855||49857<=_&&_<=49883||49885<=_&&_<=49911||49913<=_&&_<=49939||49941<=_&&_<=49967||49969<=_&&_<=49995||49997<=_&&_<=50023||50025<=_&&_<=50051||50053<=_&&_<=50079||50081<=_&&_<=50107||50109<=_&&_<=50135||50137<=_&&_<=50163||50165<=_&&_<=50191||50193<=_&&_<=50219||50221<=_&&_<=50247||50249<=_&&_<=50275||50277<=_&&_<=50303||50305<=_&&_<=50331||50333<=_&&_<=50359||50361<=_&&_<=50387||50389<=_&&_<=50415||50417<=_&&_<=50443||50445<=_&&_<=50471||50473<=_&&_<=50499||50501<=_&&_<=50527||50529<=_&&_<=50555||50557<=_&&_<=50583||50585<=_&&_<=50611||50613<=_&&_<=50639||50641<=_&&_<=50667||50669<=_&&_<=50695||50697<=_&&_<=50723||50725<=_&&_<=50751||50753<=_&&_<=50779||50781<=_&&_<=50807||50809<=_&&_<=50835||50837<=_&&_<=50863||50865<=_&&_<=50891||50893<=_&&_<=50919||50921<=_&&_<=50947||50949<=_&&_<=50975||50977<=_&&_<=51003||51005<=_&&_<=51031||51033<=_&&_<=51059||51061<=_&&_<=51087||51089<=_&&_<=51115||51117<=_&&_<=51143||51145<=_&&_<=51171||51173<=_&&_<=51199||51201<=_&&_<=51227||51229<=_&&_<=51255||51257<=_&&_<=51283||51285<=_&&_<=51311||51313<=_&&_<=51339||51341<=_&&_<=51367||51369<=_&&_<=51395||51397<=_&&_<=51423||51425<=_&&_<=51451||51453<=_&&_<=51479||51481<=_&&_<=51507||51509<=_&&_<=51535||51537<=_&&_<=51563||51565<=_&&_<=51591||51593<=_&&_<=51619||51621<=_&&_<=51647||51649<=_&&_<=51675||51677<=_&&_<=51703||51705<=_&&_<=51731||51733<=_&&_<=51759||51761<=_&&_<=51787||51789<=_&&_<=51815||51817<=_&&_<=51843||51845<=_&&_<=51871||51873<=_&&_<=51899||51901<=_&&_<=51927||51929<=_&&_<=51955||51957<=_&&_<=51983||51985<=_&&_<=52011||52013<=_&&_<=52039||52041<=_&&_<=52067||52069<=_&&_<=52095||52097<=_&&_<=52123||52125<=_&&_<=52151||52153<=_&&_<=52179||52181<=_&&_<=52207||52209<=_&&_<=52235||52237<=_&&_<=52263||52265<=_&&_<=52291||52293<=_&&_<=52319||52321<=_&&_<=52347||52349<=_&&_<=52375||52377<=_&&_<=52403||52405<=_&&_<=52431||52433<=_&&_<=52459||52461<=_&&_<=52487||52489<=_&&_<=52515||52517<=_&&_<=52543||52545<=_&&_<=52571||52573<=_&&_<=52599||52601<=_&&_<=52627||52629<=_&&_<=52655||52657<=_&&_<=52683||52685<=_&&_<=52711||52713<=_&&_<=52739||52741<=_&&_<=52767||52769<=_&&_<=52795||52797<=_&&_<=52823||52825<=_&&_<=52851||52853<=_&&_<=52879||52881<=_&&_<=52907||52909<=_&&_<=52935||52937<=_&&_<=52963||52965<=_&&_<=52991||52993<=_&&_<=53019||53021<=_&&_<=53047||53049<=_&&_<=53075||53077<=_&&_<=53103||53105<=_&&_<=53131||53133<=_&&_<=53159||53161<=_&&_<=53187||53189<=_&&_<=53215||53217<=_&&_<=53243||53245<=_&&_<=53271||53273<=_&&_<=53299||53301<=_&&_<=53327||53329<=_&&_<=53355||53357<=_&&_<=53383||53385<=_&&_<=53411||53413<=_&&_<=53439||53441<=_&&_<=53467||53469<=_&&_<=53495||53497<=_&&_<=53523||53525<=_&&_<=53551||53553<=_&&_<=53579||53581<=_&&_<=53607||53609<=_&&_<=53635||53637<=_&&_<=53663||53665<=_&&_<=53691||53693<=_&&_<=53719||53721<=_&&_<=53747||53749<=_&&_<=53775||53777<=_&&_<=53803||53805<=_&&_<=53831||53833<=_&&_<=53859||53861<=_&&_<=53887||53889<=_&&_<=53915||53917<=_&&_<=53943||53945<=_&&_<=53971||53973<=_&&_<=53999||54001<=_&&_<=54027||54029<=_&&_<=54055||54057<=_&&_<=54083||54085<=_&&_<=54111||54113<=_&&_<=54139||54141<=_&&_<=54167||54169<=_&&_<=54195||54197<=_&&_<=54223||54225<=_&&_<=54251||54253<=_&&_<=54279||54281<=_&&_<=54307||54309<=_&&_<=54335||54337<=_&&_<=54363||54365<=_&&_<=54391||54393<=_&&_<=54419||54421<=_&&_<=54447||54449<=_&&_<=54475||54477<=_&&_<=54503||54505<=_&&_<=54531||54533<=_&&_<=54559||54561<=_&&_<=54587||54589<=_&&_<=54615||54617<=_&&_<=54643||54645<=_&&_<=54671||54673<=_&&_<=54699||54701<=_&&_<=54727||54729<=_&&_<=54755||54757<=_&&_<=54783||54785<=_&&_<=54811||54813<=_&&_<=54839||54841<=_&&_<=54867||54869<=_&&_<=54895||54897<=_&&_<=54923||54925<=_&&_<=54951||54953<=_&&_<=54979||54981<=_&&_<=55007||55009<=_&&_<=55035||55037<=_&&_<=55063||55065<=_&&_<=55091||55093<=_&&_<=55119||55121<=_&&_<=55147||55149<=_&&_<=55175||55177<=_&&_<=55203?f:_==9757||_==9977||9994<=_&&_<=9997||_==127877||127938<=_&&_<=127940||_==127943||127946<=_&&_<=127948||128066<=_&&_<=128067||128070<=_&&_<=128080||_==128110||128112<=_&&_<=128120||_==128124||128129<=_&&_<=128131||128133<=_&&_<=128135||_==128170||128372<=_&&_<=128373||_==128378||_==128400||128405<=_&&_<=128406||128581<=_&&_<=128583||128587<=_&&_<=128591||_==128675||128692<=_&&_<=128694||_==128704||_==128716||129304<=_&&_<=129308||129310<=_&&_<=129311||_==129318||129328<=_&&_<=129337||129341<=_&&_<=129342||129489<=_&&_<=129501?g:127995<=_&&_<=127999?m:_==8205?A:_==9792||_==9794||9877<=_&&_<=9878||_==9992||_==10084||_==127752||_==127806||_==127859||_==127891||_==127908||_==127912||_==127979||_==127981||_==128139||128187<=_&&_<=128188||_==128295||_==128300||_==128488||_==128640||_==128658?x:128102<=_&&_<=128105?C:d}return this}typeof gV<"u"&&gV.exports&&(gV.exports=xGe)});var Vse=Jn((Jxn,a9)=>{"use strict";a9.exports=bV;a9.exports.default=bV;function bV(e,t,n){n=n||2;var i=t&&t.length,r=i?t[0]*n:e.length,o=Nse(e,0,r,n,!0),s=[];if(!o||o.next===o.prev)return s;var a,c,l,f,d,p,g;if(i&&(o=b5e(e,t,o,n)),e.length>80*n){a=l=e[0],c=f=e[1];for(var m=n;m<r;m+=n)d=e[m],p=e[m+1],d<a&&(a=d),p<c&&(c=p),d>l&&(l=d),p>f&&(f=p);g=Math.max(l-a,f-c),g=g!==0?32767/g:0}return UM(o,s,n,a,c,g,0),s}function Nse(e,t,n,i,r){var o,s;if(r===s9(e,t,n,i)>0)for(o=t;o<n;o+=i)s=Lse(o,e[o],e[o+1],s);else for(o=n-i;o>=t;o-=i)s=Lse(o,e[o],e[o+1],s);return s&&SV(s,s.next)&&(kM(s),s=s.next),s}function $A(e,t){if(!e)return e;t||(t=e);var n=e,i;do if(i=!1,!n.steiner&&(SV(n,n.next)||Do(n.prev,n,n.next)===0)){if(kM(n),n=t=n.prev,n===n.next)break;i=!0}else n=n.next;while(i||n!==t);return t}function UM(e,t,n,i,r,o,s){if(e){!s&&o&&I5e(e,i,r,o);for(var a=e,c,l;e.prev!==e.next;){if(c=e.prev,l=e.next,o?C5e(e,i,r,o):x5e(e)){t.push(c.i/n|0),t.push(e.i/n|0),t.push(l.i/n|0),kM(e),e=l.next,a=l.next;continue}if(e=l,e===a){s?s===1?(e=T5e($A(e),t,n),UM(e,t,n,i,r,o,2)):s===2&&E5e(e,t,n,i,r,o):UM($A(e),t,n,i,r,o,1);break}}}}function x5e(e){var t=e.prev,n=e,i=e.next;if(Do(t,n,i)>=0)return!1;for(var r=t.x,o=n.x,s=i.x,a=t.y,c=n.y,l=i.y,f=r<o?r<s?r:s:o<s?o:s,d=a<c?a<l?a:l:c<l?c:l,p=r>o?r>s?r:s:o>s?o:s,g=a>c?a>l?a:l:c>l?c:l,m=i.next;m!==t;){if(m.x>=f&&m.x<=p&&m.y>=d&&m.y<=g&&gE(r,a,o,c,s,l,m.x,m.y)&&Do(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function C5e(e,t,n,i){var r=e.prev,o=e,s=e.next;if(Do(r,o,s)>=0)return!1;for(var a=r.x,c=o.x,l=s.x,f=r.y,d=o.y,p=s.y,g=a<c?a<l?a:l:c<l?c:l,m=f<d?f<p?f:p:d<p?d:p,A=a>c?a>l?a:l:c>l?c:l,x=f>d?f>p?f:p:d>p?d:p,C=r9(g,m,t,n,i),T=r9(A,x,t,n,i),E=e.prevZ,S=e.nextZ;E&&E.z>=C&&S&&S.z<=T;){if(E.x>=g&&E.x<=A&&E.y>=m&&E.y<=x&&E!==r&&E!==s&&gE(a,f,c,d,l,p,E.x,E.y)&&Do(E.prev,E,E.next)>=0||(E=E.prevZ,S.x>=g&&S.x<=A&&S.y>=m&&S.y<=x&&S!==r&&S!==s&&gE(a,f,c,d,l,p,S.x,S.y)&&Do(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;E&&E.z>=C;){if(E.x>=g&&E.x<=A&&E.y>=m&&E.y<=x&&E!==r&&E!==s&&gE(a,f,c,d,l,p,E.x,E.y)&&Do(E.prev,E,E.next)>=0)return!1;E=E.prevZ}for(;S&&S.z<=T;){if(S.x>=g&&S.x<=A&&S.y>=m&&S.y<=x&&S!==r&&S!==s&&gE(a,f,c,d,l,p,S.x,S.y)&&Do(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function T5e(e,t,n){var i=e;do{var r=i.prev,o=i.next.next;!SV(r,o)&&Fse(r,i,i.next,o)&&VM(r,o)&&VM(o,r)&&(t.push(r.i/n|0),t.push(i.i/n|0),t.push(o.i/n|0),kM(i),kM(i.next),i=e=o),i=i.next}while(i!==e);return $A(i)}function E5e(e,t,n,i,r,o){var s=e;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&M5e(s,a)){var c=Use(s,a);s=$A(s,s.next),c=$A(c,c.next),UM(s,t,n,i,r,o,0),UM(c,t,n,i,r,o,0);return}a=a.next}s=s.next}while(s!==e)}function b5e(e,t,n,i){var r=[],o,s,a,c,l;for(o=0,s=t.length;o<s;o++)a=t[o]*i,c=o<s-1?t[o+1]*i:e.length,l=Nse(e,a,c,i,!1),l===l.next&&(l.steiner=!0),r.push(O5e(l));for(r.sort(S5e),o=0;o<r.length;o++)n=v5e(r[o],n);return n}function S5e(e,t){return e.x-t.x}function v5e(e,t){var n=w5e(e,t);if(!n)return t;var i=Use(n,e);return $A(i,i.next),$A(n,n.next)}function w5e(e,t){var n=t,i=e.x,r=e.y,o=-1/0,s;do{if(r<=n.y&&r>=n.next.y&&n.next.y!==n.y){var a=n.x+(r-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=i&&a>o&&(o=a,s=n.x<n.next.x?n:n.next,a===i))return s}n=n.next}while(n!==t);if(!s)return null;var c=s,l=s.x,f=s.y,d=1/0,p;n=s;do i>=n.x&&n.x>=l&&i!==n.x&&gE(r<f?i:o,r,l,f,r<f?o:i,r,n.x,n.y)&&(p=Math.abs(r-n.y)/(i-n.x),VM(n,e)&&(p<d||p===d&&(n.x>s.x||n.x===s.x&&D5e(s,n)))&&(s=n,d=p)),n=n.next;while(n!==c);return s}function D5e(e,t){return Do(e.prev,e,t.prev)<0&&Do(t.next,e,e.next)<0}function I5e(e,t,n,i){var r=e;do r.z===0&&(r.z=r9(r.x,r.y,t,n,i)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==e);r.prevZ.nextZ=null,r.prevZ=null,P5e(r)}function P5e(e){var t,n,i,r,o,s,a,c,l=1;do{for(n=e,e=null,o=null,s=0;n;){for(s++,i=n,a=0,t=0;t<l&&(a++,i=i.nextZ,!!i);t++);for(c=l;a>0||c>0&&i;)a!==0&&(c===0||!i||n.z<=i.z)?(r=n,n=n.nextZ,a--):(r=i,i=i.nextZ,c--),o?o.nextZ=r:e=r,r.prevZ=o,o=r;n=i}o.nextZ=null,l*=2}while(s>1);return e}function r9(e,t,n,i,r){return e=(e-n)*r|0,t=(t-i)*r|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function O5e(e){var t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function gE(e,t,n,i,r,o,s,a){return(r-s)*(t-a)>=(e-s)*(o-a)&&(e-s)*(i-a)>=(n-s)*(t-a)&&(n-s)*(o-a)>=(r-s)*(i-a)}function M5e(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!R5e(e,t)&&(VM(e,t)&&VM(t,e)&&B5e(e,t)&&(Do(e.prev,e,t.prev)||Do(e,t.prev,t))||SV(e,t)&&Do(e.prev,e,e.next)>0&&Do(t.prev,t,t.next)>0)}function Do(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function SV(e,t){return e.x===t.x&&e.y===t.y}function Fse(e,t,n,i){var r=EV(Do(e,t,n)),o=EV(Do(e,t,i)),s=EV(Do(n,i,e)),a=EV(Do(n,i,t));return!!(r!==o&&s!==a||r===0&&TV(e,n,t)||o===0&&TV(e,i,t)||s===0&&TV(n,e,i)||a===0&&TV(n,t,i))}function TV(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function EV(e){return e>0?1:e<0?-1:0}function R5e(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Fse(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function VM(e,t){return Do(e.prev,e,e.next)<0?Do(e,t,e.next)>=0&&Do(e,e.prev,t)>=0:Do(e,t,e.prev)<0||Do(e,e.next,t)<0}function B5e(e,t){var n=e,i=!1,r=(e.x+t.x)/2,o=(e.y+t.y)/2;do n.y>o!=n.next.y>o&&n.next.y!==n.y&&r<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e);return i}function Use(e,t){var n=new o9(e.i,e.x,e.y),i=new o9(t.i,t.x,t.y),r=e.next,o=t.prev;return e.next=t,t.prev=e,n.next=r,r.prev=n,i.next=n,n.prev=i,o.next=i,i.prev=o,i}function Lse(e,t,n,i){var r=new o9(e,t,n);return i?(r.next=i.next,r.prev=i,i.next.prev=r,i.next=r):(r.prev=r,r.next=r),r}function kM(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function o9(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}bV.deviation=function(e,t,n,i){var r=t&&t.length,o=r?t[0]*n:e.length,s=Math.abs(s9(e,0,o,n));if(r)for(var a=0,c=t.length;a<c;a++){var l=t[a]*n,f=a<c-1?t[a+1]*n:e.length;s-=Math.abs(s9(e,l,f,n))}var d=0;for(a=0;a<i.length;a+=3){var p=i[a]*n,g=i[a+1]*n,m=i[a+2]*n;d+=Math.abs((e[p]-e[m])*(e[g+1]-e[p+1])-(e[p]-e[g])*(e[m+1]-e[p+1]))}return s===0&&d===0?0:Math.abs((d-s)/s)};function s9(e,t,n,i){for(var r=0,o=t,s=n-i;o<n;o+=i)r+=(e[s]-e[o])*(e[o+1]+e[s+1]),s=o;return r}bV.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},i=0,r=0;r<e.length;r++){for(var o=0;o<e[r].length;o++)for(var s=0;s<t;s++)n.vertices.push(e[r][o][s]);r>0&&(i+=e[r-1].length,n.holes.push(i))}return n}});var rfe=Jn((FW,UW)=>{(function(e,t){typeof FW=="object"&&typeof UW<"u"?UW.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self,e.RBush=t())})(FW,function(){"use strict";function e(E,S,v,D,M){t(E,S,v||0,D||E.length-1,M||i)}function t(E,S,v,D,M){for(;D>v;){if(D-v>600){var O=D-v+1,B=S-v+1,L=Math.log(O),_=.5*Math.exp(2*L/3),b=.5*Math.sqrt(L*_*(O-_)/O)*(B-O/2<0?-1:1),w=Math.max(v,Math.floor(S-B*_/O+b)),I=Math.min(D,Math.floor(S+(O-B)*_/O+b));t(E,S,w,I,M)}var R=E[S],F=v,k=D;for(n(E,v,S),M(E[D],R)>0&&n(E,v,D);F<k;){for(n(E,F,k),F++,k--;M(E[F],R)<0;)F++;for(;M(E[k],R)>0;)k--}M(E[v],R)===0?n(E,v,k):(k++,n(E,k,D)),k<=S&&(v=k+1),S<=k&&(D=k-1)}}function n(E,S,v){var D=E[S];E[S]=E[v],E[v]=D}function i(E,S){return E<S?-1:E>S?1:0}var r=function(S){S===void 0&&(S=9),this._maxEntries=Math.max(4,S),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()};r.prototype.all=function(){return this._all(this.data,[])},r.prototype.search=function(S){var v=this.data,D=[];if(!x(S,v))return D;for(var M=this.toBBox,O=[];v;){for(var B=0;B<v.children.length;B++){var L=v.children[B],_=v.leaf?M(L):L;x(S,_)&&(v.leaf?D.push(L):A(S,_)?this._all(L,D):O.push(L))}v=O.pop()}return D},r.prototype.collides=function(S){var v=this.data;if(!x(S,v))return!1;for(var D=[];v;){for(var M=0;M<v.children.length;M++){var O=v.children[M],B=v.leaf?this.toBBox(O):O;if(x(S,B)){if(v.leaf||A(S,B))return!0;D.push(O)}}v=D.pop()}return!1},r.prototype.load=function(S){if(!(S&&S.length))return this;if(S.length<this._minEntries){for(var v=0;v<S.length;v++)this.insert(S[v]);return this}var D=this._build(S.slice(),0,S.length-1,0);if(!this.data.children.length)this.data=D;else if(this.data.height===D.height)this._splitRoot(this.data,D);else{if(this.data.height<D.height){var M=this.data;this.data=D,D=M}this._insert(D,this.data.height-D.height-1,!0)}return this},r.prototype.insert=function(S){return S&&this._insert(S,this.data.height-1),this},r.prototype.clear=function(){return this.data=C([]),this},r.prototype.remove=function(S,v){if(!S)return this;for(var D=this.data,M=this.toBBox(S),O=[],B=[],L,_,b;D||O.length;){if(D||(D=O.pop(),_=O[O.length-1],L=B.pop(),b=!0),D.leaf){var w=o(S,D.children,v);if(w!==-1)return D.children.splice(w,1),O.push(D),this._condense(O),this}!b&&!D.leaf&&A(D,M)?(O.push(D),B.push(L),L=0,_=D,D=D.children[0]):_?(L++,D=_.children[L],b=!1):D=null}return this},r.prototype.toBBox=function(S){return S},r.prototype.compareMinX=function(S,v){return S.minX-v.minX},r.prototype.compareMinY=function(S,v){return S.minY-v.minY},r.prototype.toJSON=function(){return this.data},r.prototype.fromJSON=function(S){return this.data=S,this},r.prototype._all=function(S,v){for(var D=[];S;)S.leaf?v.push.apply(v,S.children):D.push.apply(D,S.children),S=D.pop();return v},r.prototype._build=function(S,v,D,M){var O=D-v+1,B=this._maxEntries,L;if(O<=B)return L=C(S.slice(v,D+1)),s(L,this.toBBox),L;M||(M=Math.ceil(Math.log(O)/Math.log(B)),B=Math.ceil(O/Math.pow(B,M-1))),L=C([]),L.leaf=!1,L.height=M;var _=Math.ceil(O/B),b=_*Math.ceil(Math.sqrt(B));T(S,v,D,b,this.compareMinX);for(var w=v;w<=D;w+=b){var I=Math.min(w+b-1,D);T(S,w,I,_,this.compareMinY);for(var R=w;R<=I;R+=_){var F=Math.min(R+_-1,I);L.children.push(this._build(S,R,F,M-1))}}return s(L,this.toBBox),L},r.prototype._chooseSubtree=function(S,v,D,M){for(;M.push(v),!(v.leaf||M.length-1===D);){for(var O=1/0,B=1/0,L=void 0,_=0;_<v.children.length;_++){var b=v.children[_],w=d(b),I=g(S,b)-w;I<B?(B=I,O=w<O?w:O,L=b):I===B&&w<O&&(O=w,L=b)}v=L||v.children[0]}return v},r.prototype._insert=function(S,v,D){var M=D?S:this.toBBox(S),O=[],B=this._chooseSubtree(M,this.data,v,O);for(B.children.push(S),c(B,M);v>=0&&O[v].children.length>this._maxEntries;)this._split(O,v),v--;this._adjustParentBBoxes(M,O,v)},r.prototype._split=function(S,v){var D=S[v],M=D.children.length,O=this._minEntries;this._chooseSplitAxis(D,O,M);var B=this._chooseSplitIndex(D,O,M),L=C(D.children.splice(B,D.children.length-B));L.height=D.height,L.leaf=D.leaf,s(D,this.toBBox),s(L,this.toBBox),v?S[v-1].children.push(L):this._splitRoot(D,L)},r.prototype._splitRoot=function(S,v){this.data=C([S,v]),this.data.height=S.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},r.prototype._chooseSplitIndex=function(S,v,D){for(var M,O=1/0,B=1/0,L=v;L<=D-v;L++){var _=a(S,0,L,this.toBBox),b=a(S,L,D,this.toBBox),w=m(_,b),I=d(_)+d(b);w<O?(O=w,M=L,B=I<B?I:B):w===O&&I<B&&(B=I,M=L)}return M||D-v},r.prototype._chooseSplitAxis=function(S,v,D){var M=S.leaf?this.compareMinX:l,O=S.leaf?this.compareMinY:f,B=this._allDistMargin(S,v,D,M),L=this._allDistMargin(S,v,D,O);B<L&&S.children.sort(M)},r.prototype._allDistMargin=function(S,v,D,M){S.children.sort(M);for(var O=this.toBBox,B=a(S,0,v,O),L=a(S,D-v,D,O),_=p(B)+p(L),b=v;b<D-v;b++){var w=S.children[b];c(B,S.leaf?O(w):w),_+=p(B)}for(var I=D-v-1;I>=v;I--){var R=S.children[I];c(L,S.leaf?O(R):R),_+=p(L)}return _},r.prototype._adjustParentBBoxes=function(S,v,D){for(var M=D;M>=0;M--)c(v[M],S)},r.prototype._condense=function(S){for(var v=S.length-1,D=void 0;v>=0;v--)S[v].children.length===0?v>0?(D=S[v-1].children,D.splice(D.indexOf(S[v]),1)):this.clear():s(S[v],this.toBBox)};function o(E,S,v){if(!v)return S.indexOf(E);for(var D=0;D<S.length;D++)if(v(E,S[D]))return D;return-1}function s(E,S){a(E,0,E.children.length,S,E)}function a(E,S,v,D,M){M||(M=C(null)),M.minX=1/0,M.minY=1/0,M.maxX=-1/0,M.maxY=-1/0;for(var O=S;O<v;O++){var B=E.children[O];c(M,E.leaf?D(B):B)}return M}function c(E,S){return E.minX=Math.min(E.minX,S.minX),E.minY=Math.min(E.minY,S.minY),E.maxX=Math.max(E.maxX,S.maxX),E.maxY=Math.max(E.maxY,S.maxY),E}function l(E,S){return E.minX-S.minX}function f(E,S){return E.minY-S.minY}function d(E){return(E.maxX-E.minX)*(E.maxY-E.minY)}function p(E){return E.maxX-E.minX+(E.maxY-E.minY)}function g(E,S){return(Math.max(S.maxX,E.maxX)-Math.min(S.minX,E.minX))*(Math.max(S.maxY,E.maxY)-Math.min(S.minY,E.minY))}function m(E,S){var v=Math.max(E.minX,S.minX),D=Math.max(E.minY,S.minY),M=Math.min(E.maxX,S.maxX),O=Math.min(E.maxY,S.maxY);return Math.max(0,M-v)*Math.max(0,O-D)}function A(E,S){return E.minX<=S.minX&&E.minY<=S.minY&&S.maxX<=E.maxX&&S.maxY<=E.maxY}function x(E,S){return S.minX<=E.maxX&&S.minY<=E.maxY&&S.maxX>=E.minX&&S.maxY>=E.minY}function C(E){return{children:E,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function T(E,S,v,D,M){for(var O=[S,v];O.length;)if(v=O.pop(),S=O.pop(),!(v-S<=D)){var B=S+Math.ceil((v-S)/D/2)*D;e(E,B,S,v,M),O.push(S,B,B,v)}}return r})});var nde=Jn((Ak,tde)=>{(function(e,t){typeof Ak=="object"&&typeof tde<"u"?t(Ak):typeof define=="function"&&define.amd?define(["exports"],t):(e=e||self,t(e.topojson=e.topojson||{}))})(Ak,function(e){"use strict";function t(E){return E}function n(E){if(E==null)return t;var S,v,D=E.scale[0],M=E.scale[1],O=E.translate[0],B=E.translate[1];return function(L,_){_||(S=v=0);var b=2,w=L.length,I=new Array(w);for(I[0]=(S+=L[0])*D+O,I[1]=(v+=L[1])*M+B;b<w;)I[b]=L[b],++b;return I}}function i(E){var S=n(E.transform),v,D=1/0,M=D,O=-D,B=-D;function L(b){b=S(b),b[0]<D&&(D=b[0]),b[0]>O&&(O=b[0]),b[1]<M&&(M=b[1]),b[1]>B&&(B=b[1])}function _(b){switch(b.type){case"GeometryCollection":b.geometries.forEach(_);break;case"Point":L(b.coordinates);break;case"MultiPoint":b.coordinates.forEach(L);break}}E.arcs.forEach(function(b){for(var w=-1,I=b.length,R;++w<I;)R=S(b[w],w),R[0]<D&&(D=R[0]),R[0]>O&&(O=R[0]),R[1]<M&&(M=R[1]),R[1]>B&&(B=R[1])});for(v in E.objects)_(E.objects[v]);return[D,M,O,B]}function r(E,S){for(var v,D=E.length,M=D-S;M<--D;)v=E[M],E[M++]=E[D],E[D]=v}function o(E,S){return typeof S=="string"&&(S=E.objects[S]),S.type==="GeometryCollection"?{type:"FeatureCollection",features:S.geometries.map(function(v){return s(E,v)})}:s(E,S)}function s(E,S){var v=S.id,D=S.bbox,M=S.properties==null?{}:S.properties,O=a(E,S);return v==null&&D==null?{type:"Feature",properties:M,geometry:O}:D==null?{type:"Feature",id:v,properties:M,geometry:O}:{type:"Feature",id:v,bbox:D,properties:M,geometry:O}}function a(E,S){var v=n(E.transform),D=E.arcs;function M(w,I){I.length&&I.pop();for(var R=D[w<0?~w:w],F=0,k=R.length;F<k;++F)I.push(v(R[F],F));w<0&&r(I,k)}function O(w){return v(w)}function B(w){for(var I=[],R=0,F=w.length;R<F;++R)M(w[R],I);return I.length<2&&I.push(I[0]),I}function L(w){for(var I=B(w);I.length<4;)I.push(I[0]);return I}function _(w){return w.map(L)}function b(w){var I=w.type,R;switch(I){case"GeometryCollection":return{type:I,geometries:w.geometries.map(b)};case"Point":R=O(w.coordinates);break;case"MultiPoint":R=w.coordinates.map(O);break;case"LineString":R=B(w.arcs);break;case"MultiLineString":R=w.arcs.map(B);break;case"Polygon":R=_(w.arcs);break;case"MultiPolygon":R=w.arcs.map(_);break;default:return null}return{type:I,coordinates:R}}return b(S)}function c(E,S){var v={},D={},M={},O=[],B=-1;S.forEach(function(b,w){var I=E.arcs[b<0?~b:b],R;I.length<3&&!I[1][0]&&!I[1][1]&&(R=S[++B],S[B]=b,S[w]=R)}),S.forEach(function(b){var w=L(b),I=w[0],R=w[1],F,k;if(F=M[I])if(delete M[F.end],F.push(b),F.end=R,k=D[R]){delete D[k.start];var V=k===F?F:F.concat(k);D[V.start=F.start]=M[V.end=k.end]=V}else D[F.start]=M[F.end]=F;else if(F=D[R])if(delete D[F.start],F.unshift(b),F.start=I,k=M[I]){delete M[k.end];var G=k===F?F:k.concat(F);D[G.start=k.start]=M[G.end=F.end]=G}else D[F.start]=M[F.end]=F;else F=[b],D[F.start=I]=M[F.end=R]=F});function L(b){var w=E.arcs[b<0?~b:b],I=w[0],R;return E.transform?(R=[0,0],w.forEach(function(F){R[0]+=F[0],R[1]+=F[1]})):R=w[w.length-1],b<0?[R,I]:[I,R]}function _(b,w){for(var I in b){var R=b[I];delete w[R.start],delete R.start,delete R.end,R.forEach(function(F){v[F<0?~F:F]=1}),O.push(R)}}return _(M,D),_(D,M),S.forEach(function(b){v[b<0?~b:b]||O.push([b])}),O}function l(E){return a(E,f.apply(this,arguments))}function f(E,S,v){var D,M,O;if(arguments.length>1)D=d(E,S,v);else for(M=0,D=new Array(O=E.arcs.length);M<O;++M)D[M]=M;return{type:"MultiLineString",arcs:c(E,D)}}function d(E,S,v){var D=[],M=[],O;function B(I){var R=I<0?~I:I;(M[R]||(M[R]=[])).push({i:I,g:O})}function L(I){I.forEach(B)}function _(I){I.forEach(L)}function b(I){I.forEach(_)}function w(I){switch(O=I,I.type){case"GeometryCollection":I.geometries.forEach(w);break;case"LineString":L(I.arcs);break;case"MultiLineString":case"Polygon":_(I.arcs);break;case"MultiPolygon":b(I.arcs);break}}return w(S),M.forEach(v==null?function(I){D.push(I[0].i)}:function(I){v(I[0].g,I[I.length-1].g)&&D.push(I[0].i)}),D}function p(E){for(var S=-1,v=E.length,D,M=E[v-1],O=0;++S<v;)D=M,M=E[S],O+=D[0]*M[1]-D[1]*M[0];return Math.abs(O)}function g(E){return a(E,m.apply(this,arguments))}function m(E,S){var v={},D=[],M=[];S.forEach(O);function O(_){switch(_.type){case"GeometryCollection":_.geometries.forEach(O);break;case"Polygon":B(_.arcs);break;case"MultiPolygon":_.arcs.forEach(B);break}}function B(_){_.forEach(function(b){b.forEach(function(w){(v[w=w<0?~w:w]||(v[w]=[])).push(_)})}),D.push(_)}function L(_){return p(a(E,{type:"Polygon",arcs:[_]}).coordinates[0])}return D.forEach(function(_){if(!_._){var b=[],w=[_];for(_._=1,M.push(b);_=w.pop();)b.push(_),_.forEach(function(I){I.forEach(function(R){v[R<0?~R:R].forEach(function(F){F._||(F._=1,w.push(F))})})})}}),D.forEach(function(_){delete _._}),{type:"MultiPolygon",arcs:M.map(function(_){var b=[],w;if(_.forEach(function(V){V.forEach(function(G){G.forEach(function(U){v[U<0?~U:U].length<2&&b.push(U)})})}),b=c(E,b),(w=b.length)>1)for(var I=1,R=L(b[0]),F,k;I<w;++I)(F=L(b[I]))>R&&(k=b[0],b[0]=b[I],b[I]=k,R=F);return b}).filter(function(_){return _.length>0})}}function A(E,S){for(var v=0,D=E.length;v<D;){var M=v+D>>>1;E[M]<S?v=M+1:D=M}return v}function x(E){var S={},v=E.map(function(){return[]});function D(V,G){V.forEach(function(U){U<0&&(U=~U);var Y=S[U];Y?Y.push(G):S[U]=[G]})}function M(V,G){V.forEach(function(U){D(U,G)})}function O(V,G){V.type==="GeometryCollection"?V.geometries.forEach(function(U){O(U,G)}):V.type in B&&B[V.type](V.arcs,G)}var B={LineString:D,MultiLineString:M,Polygon:M,MultiPolygon:function(V,G){V.forEach(function(U){M(U,G)})}};E.forEach(O);for(var L in S)for(var _=S[L],b=_.length,w=0;w<b;++w)for(var I=w+1;I<b;++I){var R=_[w],F=_[I],k;(k=v[R])[L=A(k,F)]!==F&&k.splice(L,0,F),(k=v[F])[L=A(k,R)]!==R&&k.splice(L,0,R)}return v}function C(E){if(E==null)return t;var S,v,D=E.scale[0],M=E.scale[1],O=E.translate[0],B=E.translate[1];return function(L,_){_||(S=v=0);var b=2,w=L.length,I=new Array(w),R=Math.round((L[0]-O)/D),F=Math.round((L[1]-B)/M);for(I[0]=R-S,S=R,I[1]=F-v,v=F;b<w;)I[b]=L[b],++b;return I}}function T(E,S){if(E.transform)throw new Error("already quantized");if(!S||!S.scale){if(!((B=Math.floor(S))>=2))throw new Error("n must be \u22652");_=E.bbox||i(E);var v=_[0],D=_[1],M=_[2],O=_[3],B;S={scale:[M-v?(M-v)/(B-1):1,O-D?(O-D)/(B-1):1],translate:[v,D]}}else _=E.bbox;var L=C(S),_,b,w=E.objects,I={};function R(V){return L(V)}function F(V){var G;switch(V.type){case"GeometryCollection":G={type:"GeometryCollection",geometries:V.geometries.map(F)};break;case"Point":G={type:"Point",coordinates:R(V.coordinates)};break;case"MultiPoint":G={type:"MultiPoint",coordinates:V.coordinates.map(R)};break;default:return V}return V.id!=null&&(G.id=V.id),V.bbox!=null&&(G.bbox=V.bbox),V.properties!=null&&(G.properties=V.properties),G}function k(V){var G=0,U=1,Y=V.length,W,Z=new Array(Y);for(Z[0]=L(V[0],0);++G<Y;)((W=L(V[G],G))[0]||W[1])&&(Z[U++]=W);return U===1&&(Z[U++]=[0,0]),Z.length=U,Z}for(b in w)I[b]=F(w[b]);return{type:"Topology",bbox:_,transform:S,objects:I,arcs:E.arcs.map(k)}}e.bbox=i,e.feature=o,e.merge=g,e.mergeArcs=m,e.mesh=l,e.meshArcs=f,e.neighbors=x,e.quantize=T,e.transform=n,e.untransform=C,Object.defineProperty(e,"__esModule",{value:!0})})});var Tde=Jn(Tk=>{"use strict";Object.defineProperty(Tk,"__esModule",{value:!0});Tk.version=void 0;Tk.version="4.0.0"});var Db=Jn(ac=>{"use strict";Object.defineProperty(ac,"__esModule",{value:!0});ac.assertNever=ac.removeWithPredicate=ac.remove=ac.ellipsis=ac.defaults=ac.isBoolean=ac.isUndefined=void 0;function Ede(e){return e===void 0}ac.isUndefined=Ede;function oJe(e){return typeof e=="boolean"}ac.isBoolean=oJe;function sJe(e,t){for(var n in t)t.hasOwnProperty(n)&&Ede(e[n])&&(e[n]=t[n]);return e}ac.defaults=sJe;function aJe(e,t,n){var i;return e.length>t&&(n==null?(n="…",i=3):i=n.length,e=e.substring(0,t-i)+n),e}ac.ellipsis=aJe;function cJe(e,t){for(var n=e.length-1;n>=0;n--)e[n]===t&&e.splice(n,1)}ac.remove=cJe;function lJe(e,t){for(var n=e.length-1;n>=0;n--)t(e[n])===!0&&e.splice(n,1)}ac.removeWithPredicate=lJe;function uJe(e){throw new Error("Unhandled case for value: '".concat(e,"'"))}ac.assertNever=uJe});var Lx=Jn(vi=>{"use strict";Object.defineProperty(vi,"__esModule",{value:!0});vi.alphaNumericAndMarksRe=vi.alphaNumericAndMarksCharsStr=vi.alphaNumericCharsRe=vi.decimalNumbersStr=vi.alphaCharsAndMarksStr=vi.marksStr=vi.emojiStr=vi.alphaCharsStr=vi.controlCharsRe=vi.quoteRe=vi.whitespaceRe=vi.nonDigitRe=vi.digitRe=vi.letterRe=void 0;vi.letterRe=/[A-Za-z]/;vi.digitRe=/[\d]/;vi.nonDigitRe=/[\D]/;vi.whitespaceRe=/\s/;vi.quoteRe=/['"]/;vi.controlCharsRe=/[\x00-\x1F\x7F]/;vi.alphaCharsStr=/A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source;vi.emojiStr=/\u2700-\u27bf\udde6-\uddff\ud800-\udbff\udc00-\udfff\ufe0e\ufe0f\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0\ud83c\udffb-\udfff\u200d\u3299\u3297\u303d\u3030\u24c2\ud83c\udd70-\udd71\udd7e-\udd7f\udd8e\udd91-\udd9a\udde6-\uddff\ude01-\ude02\ude1a\ude2f\ude32-\ude3a\ude50-\ude51\u203c\u2049\u25aa-\u25ab\u25b6\u25c0\u25fb-\u25fe\u00a9\u00ae\u2122\u2139\udc04\u2600-\u26FF\u2b05\u2b06\u2b07\u2b1b\u2b1c\u2b50\u2b55\u231a\u231b\u2328\u23cf\u23e9-\u23f3\u23f8-\u23fa\udccf\u2935\u2934\u2190-\u21ff/.source;vi.marksStr=/\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F/.source;vi.alphaCharsAndMarksStr=vi.alphaCharsStr+vi.emojiStr+vi.marksStr;vi.decimalNumbersStr=/0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19/.source;vi.alphaNumericCharsRe=new RegExp("[".concat(vi.alphaCharsStr+vi.decimalNumbersStr,"]"));vi.alphaNumericAndMarksCharsStr=vi.alphaCharsAndMarksStr+vi.decimalNumbersStr;vi.alphaNumericAndMarksRe=new RegExp("[".concat(vi.alphaNumericAndMarksCharsStr,"]"))});var Sk=Jn(bk=>{"use strict";Object.defineProperty(bk,"__esModule",{value:!0});bk.HtmlTag=void 0;var Ek=Lx(),fJe=function(){function e(t){t===void 0&&(t={}),this.tagName="",this.attrs={},this.innerHTML="",this.tagName=t.tagName||"",this.attrs=t.attrs||{},this.innerHTML=t.innerHtml||t.innerHTML||""}return e.prototype.setTagName=function(t){return this.tagName=t,this},e.prototype.getTagName=function(){return this.tagName||""},e.prototype.setAttr=function(t,n){var i=this.getAttrs();return i[t]=n,this},e.prototype.getAttr=function(t){return this.getAttrs()[t]},e.prototype.setAttrs=function(t){return Object.assign(this.getAttrs(),t),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(t){return this.setAttr("class",t)},e.prototype.addClass=function(t){for(var n=this.getClass(),i=n?n.split(Ek.whitespaceRe):[],r=t.split(Ek.whitespaceRe),o;o=r.shift();)i.indexOf(o)===-1&&i.push(o);return this.getAttrs().class=i.join(" "),this},e.prototype.removeClass=function(t){for(var n=this.getClass(),i=n?n.split(Ek.whitespaceRe):[],r=t.split(Ek.whitespaceRe),o;i.length&&(o=r.shift());){var s=i.indexOf(o);s!==-1&&i.splice(s,1)}return this.getAttrs().class=i.join(" "),this},e.prototype.getClass=function(){return this.getAttrs().class||""},e.prototype.hasClass=function(t){return(" "+this.getClass()+" ").indexOf(" "+t+" ")!==-1},e.prototype.setInnerHTML=function(t){return this.innerHTML=t,this},e.prototype.setInnerHtml=function(t){return this.setInnerHTML(t)},e.prototype.getInnerHTML=function(){return this.innerHTML||""},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var t=this.getTagName(),n=this.buildAttrsStr();return n=n?" "+n:"",["<",t,n,">",this.getInnerHtml(),"</",t,">"].join("")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return"";var t=this.getAttrs(),n=[];for(var i in t)t.hasOwnProperty(i)&&n.push(i+'="'+t[i]+'"');return n.join(" ")},e}();bk.HtmlTag=fJe});var bde=Jn(vk=>{"use strict";Object.defineProperty(vk,"__esModule",{value:!0});vk.truncateSmart=void 0;function dJe(e,t,n){var i,r;n==null?(n="…",r=3,i=8):(r=n.length,i=n.length);var o=function(T){var E={},S=T,v=S.match(/^([a-z]+):\/\//i);return v&&(E.scheme=v[1],S=S.substr(v[0].length)),v=S.match(/^(.*?)(?=(\?|#|\/|$))/i),v&&(E.host=v[1],S=S.substr(v[0].length)),v=S.match(/^\/(.*?)(?=(\?|#|$))/i),v&&(E.path=v[1],S=S.substr(v[0].length)),v=S.match(/^\?(.*?)(?=(#|$))/i),v&&(E.query=v[1],S=S.substr(v[0].length)),v=S.match(/^#(.*?)$/i),v&&(E.fragment=v[1]),E},s=function(T){var E="";return T.scheme&&T.host&&(E+=T.scheme+"://"),T.host&&(E+=T.host),T.path&&(E+="/"+T.path),T.query&&(E+="?"+T.query),T.fragment&&(E+="#"+T.fragment),E},a=function(T,E){var S=E/2,v=Math.ceil(S),D=-1*Math.floor(S),M="";return D<0&&(M=T.substr(D)),T.substr(0,v)+n+M};if(e.length<=t)return e;var c=t-r,l=o(e);if(l.query){var f=l.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);f&&(l.query=l.query.substr(0,f[1].length),e=s(l))}if(e.length<=t||(l.host&&(l.host=l.host.replace(/^www\./,""),e=s(l)),e.length<=t))return e;var d="";if(l.host&&(d+=l.host),d.length>=c)return l.host.length==t?(l.host.substr(0,t-r)+n).substr(0,c+i):a(d,c).substr(0,c+i);var p="";if(l.path&&(p+="/"+l.path),l.query&&(p+="?"+l.query),p)if((d+p).length>=c){if((d+p).length==t)return(d+p).substr(0,t);var g=c-d.length;return(d+a(p,g)).substr(0,c+i)}else d+=p;if(l.fragment){var m="#"+l.fragment;if((d+m).length>=c){if((d+m).length==t)return(d+m).substr(0,t);var A=c-d.length;return(d+a(m,A)).substr(0,c+i)}else d+=m}if(l.scheme&&l.host){var x=l.scheme+"://";if((d+x).length<c)return(x+d).substr(0,t)}if(d.length<=t)return d;var C="";return c>0&&(C=d.substr(-1*Math.floor(c/2))),(d.substr(0,Math.ceil(c/2))+n+C).substr(0,c+i)}vk.truncateSmart=dJe});var Sde=Jn(wk=>{"use strict";Object.defineProperty(wk,"__esModule",{value:!0});wk.truncateMiddle=void 0;function hJe(e,t,n){if(e.length<=t)return e;var i,r;n==null?(n="…",i=8,r=3):(i=n.length,r=n.length);var o=t-r,s="";return o>0&&(s=e.substr(-1*Math.floor(o/2))),(e.substr(0,Math.ceil(o/2))+n+s).substr(0,o+i)}wk.truncateMiddle=hJe});var vde=Jn(Dk=>{"use strict";Object.defineProperty(Dk,"__esModule",{value:!0});Dk.truncateEnd=void 0;var mJe=Db();function pJe(e,t,n){return(0,mJe.ellipsis)(e,t,n)}Dk.truncateEnd=pJe});var r7=Jn(Ik=>{"use strict";Object.defineProperty(Ik,"__esModule",{value:!0});Ik.AnchorTagBuilder=void 0;var _Je=Sk(),gJe=bde(),yJe=Sde(),AJe=vde(),xJe=function(){function e(t){t===void 0&&(t={}),this.newWindow=!1,this.truncate={},this.className="",this.newWindow=t.newWindow||!1,this.truncate=t.truncate||{},this.className=t.className||""}return e.prototype.build=function(t){return new _Je.HtmlTag({tagName:"a",attrs:this.createAttrs(t),innerHtml:this.processAnchorText(t.getAnchorText())})},e.prototype.createAttrs=function(t){var n={href:t.getAnchorHref()},i=this.createCssClass(t);return i&&(n.class=i),this.newWindow&&(n.target="_blank",n.rel="noopener noreferrer"),this.truncate&&this.truncate.length&&this.truncate.length<t.getAnchorText().length&&(n.title=t.getAnchorHref()),n},e.prototype.createCssClass=function(t){var n=this.className;if(n){for(var i=[n],r=t.getCssClassSuffixes(),o=0,s=r.length;o<s;o++)i.push(n+"-"+r[o]);return i.join(" ")}else return""},e.prototype.processAnchorText=function(t){return t=this.doTruncate(t),t},e.prototype.doTruncate=function(t){var n=this.truncate;if(!n||!n.length)return t;var i=n.length,r=n.location;return r==="smart"?(0,gJe.truncateSmart)(t,i):r==="middle"?(0,yJe.truncateMiddle)(t,i):(0,AJe.truncateEnd)(t,i)},e}();Ik.AnchorTagBuilder=xJe});var gm={};QK(gm,{__assign:()=>s7,__asyncDelegator:()=>FJe,__asyncGenerator:()=>NJe,__asyncValues:()=>UJe,__await:()=>wB,__awaiter:()=>PJe,__classPrivateFieldGet:()=>GJe,__classPrivateFieldIn:()=>jJe,__classPrivateFieldSet:()=>WJe,__createBinding:()=>c7,__decorate:()=>EJe,__esDecorate:()=>SJe,__exportStar:()=>MJe,__extends:()=>CJe,__generator:()=>OJe,__importDefault:()=>HJe,__importStar:()=>zJe,__makeTemplateObject:()=>VJe,__metadata:()=>IJe,__param:()=>bJe,__propKey:()=>wJe,__read:()=>wde,__rest:()=>TJe,__runInitializers:()=>vJe,__setFunctionName:()=>DJe,__spread:()=>RJe,__spreadArray:()=>LJe,__spreadArrays:()=>BJe,__values:()=>a7});function CJe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");o7(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function TJe(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]]);return n}function EJe(e,t,n,i){var r=arguments.length,o=r<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,n):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(o=(r<3?s(o):r>3?s(t,n,o):s(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o}function bJe(e,t){return function(n,i){t(n,i,e)}}function SJe(e,t,n,i,r,o){function s(C){if(C!==void 0&&typeof C!="function")throw new TypeError("Function expected");return C}for(var a=i.kind,c=a==="getter"?"get":a==="setter"?"set":"value",l=!t&&e?i.static?e:e.prototype:null,f=t||(l?Object.getOwnPropertyDescriptor(l,i.name):{}),d,p=!1,g=n.length-1;g>=0;g--){var m={};for(var A in i)m[A]=A==="access"?{}:i[A];for(var A in i.access)m.access[A]=i.access[A];m.addInitializer=function(C){if(p)throw new TypeError("Cannot add initializers after decoration has completed");o.push(s(C||null))};var x=(0,n[g])(a==="accessor"?{get:f.get,set:f.set}:f[c],m);if(a==="accessor"){if(x===void 0)continue;if(x===null||typeof x!="object")throw new TypeError("Object expected");(d=s(x.get))&&(f.get=d),(d=s(x.set))&&(f.set=d),(d=s(x.init))&&r.push(d)}else(d=s(x))&&(a==="field"?r.push(d):f[c]=d)}l&&Object.defineProperty(l,i.name,f),p=!0}function vJe(e,t,n){for(var i=arguments.length>2,r=0;r<t.length;r++)n=i?t[r].call(e,n):t[r].call(e);return i?n:void 0}function wJe(e){return typeof e=="symbol"?e:"".concat(e)}function DJe(e,t,n){return typeof t=="symbol"&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function IJe(e,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,t)}function PJe(e,t,n,i){function r(o){return o instanceof n?o:new n(function(s){s(o)})}return new(n||(n=Promise))(function(o,s){function a(f){try{l(i.next(f))}catch(d){s(d)}}function c(f){try{l(i.throw(f))}catch(d){s(d)}}function l(f){f.done?o(f.value):r(f.value).then(a,c)}l((i=i.apply(e,t||[])).next())})}function OJe(e,t){var n={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},i,r,o,s;return s={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function a(l){return function(f){return c([l,f])}}function c(l){if(i)throw new TypeError("Generator is already executing.");for(;s&&(s=0,l[0]&&(n=0)),n;)try{if(i=1,r&&(o=l[0]&2?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[l[0]&2,o.value]),l[0]){case 0:case 1:o=l;break;case 4:return n.label++,{value:l[1],done:!1};case 5:n.label++,r=l[1],l=[0];continue;case 7:l=n.ops.pop(),n.trys.pop();continue;default:if(o=n.trys,!(o=o.length>0&&o[o.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!o||l[1]>o[0]&&l[1]<o[3])){n.label=l[1];break}if(l[0]===6&&n.label<o[1]){n.label=o[1],o=l;break}if(o&&n.label<o[2]){n.label=o[2],n.ops.push(l);break}o[2]&&n.ops.pop(),n.trys.pop();continue}l=t.call(e,n)}catch(f){l=[6,f],r=0}finally{i=o=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}function MJe(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&c7(t,e,n)}function a7(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function wde(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var i=n.call(e),r,o=[],s;try{for(;(t===void 0||t-- >0)&&!(r=i.next()).done;)o.push(r.value)}catch(a){s={error:a}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(s)throw s.error}}return o}function RJe(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(wde(arguments[t]));return e}function BJe(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var i=Array(e),r=0,t=0;t<n;t++)for(var o=arguments[t],s=0,a=o.length;s<a;s++,r++)i[r]=o[s];return i}function LJe(e,t,n){if(n||arguments.length===2)for(var i=0,r=t.length,o;i<r;i++)(o||!(i in t))&&(o||(o=Array.prototype.slice.call(t,0,i)),o[i]=t[i]);return e.concat(o||Array.prototype.slice.call(t))}function wB(e){return this instanceof wB?(this.v=e,this):new wB(e)}function NJe(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=n.apply(e,t||[]),r,o=[];return r={},s("next"),s("throw"),s("return"),r[Symbol.asyncIterator]=function(){return this},r;function s(p){i[p]&&(r[p]=function(g){return new Promise(function(m,A){o.push([p,g,m,A])>1||a(p,g)})})}function a(p,g){try{c(i[p](g))}catch(m){d(o[0][3],m)}}function c(p){p.value instanceof wB?Promise.resolve(p.value.v).then(l,f):d(o[0][2],p)}function l(p){a("next",p)}function f(p){a("throw",p)}function d(p,g){p(g),o.shift(),o.length&&a(o[0][0],o[0][1])}}function FJe(e){var t,n;return t={},i("next"),i("throw",function(r){throw r}),i("return"),t[Symbol.iterator]=function(){return this},t;function i(r,o){t[r]=e[r]?function(s){return(n=!n)?{value:wB(e[r](s)),done:!1}:o?o(s):s}:o}}function UJe(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof a7=="function"?a7(e):e[Symbol.iterator](),n={},i("next"),i("throw"),i("return"),n[Symbol.asyncIterator]=function(){return this},n);function i(o){n[o]=e[o]&&function(s){return new Promise(function(a,c){s=e[o](s),r(a,c,s.done,s.value)})}}function r(o,s,a,c){Promise.resolve(c).then(function(l){o({value:l,done:a})},s)}}function VJe(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function zJe(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&c7(t,e,n);return kJe(t,e),t}function HJe(e){return e&&e.__esModule?e:{default:e}}function GJe(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)}function WJe(e,t,n,i,r){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?r.call(e,n):r?r.value=n:t.set(e,n),n}function jJe(e,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof e=="function"?t===e:e.has(t)}var o7,s7,c7,kJe,ym=Wxe(()=>{o7=function(e,t){return o7=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(n[r]=i[r])},o7(e,t)};s7=function(){return s7=Object.assign||function(t){for(var n,i=1,r=arguments.length;i<r;i++){n=arguments[i];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},s7.apply(this,arguments)};c7=Object.create?function(e,t,n,i){i===void 0&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);(!r||("get"in r?!t.__esModule:r.writable||r.configurable))&&(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]};kJe=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}});var Nx=Jn(Pk=>{"use strict";Object.defineProperty(Pk,"__esModule",{value:!0});Pk.AbstractMatch=void 0;var qJe=function(){function e(t){this._=null,this.matchedText="",this.offset=0,this.tagBuilder=t.tagBuilder,this.matchedText=t.matchedText,this.offset=t.offset}return e.prototype.getMatchedText=function(){return this.matchedText},e.prototype.setOffset=function(t){this.offset=t},e.prototype.getOffset=function(){return this.offset},e.prototype.getCssClassSuffixes=function(){return[this.type]},e.prototype.buildTag=function(){return this.tagBuilder.build(this)},e}();Pk.AbstractMatch=qJe});var Dde=Jn(Fx=>{"use strict";Object.defineProperty(Fx,"__esModule",{value:!0});Fx.tldRegex=Fx.tldRegexStr=void 0;Fx.tldRegexStr="(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|verm\xF6gensberatung|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbah1a3hjkrd|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|verm\xF6gensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--mgbcpq6gpa1a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq480n2rg|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|travelchannel|wolterskluwer|xn--cckwcxetd|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--4dbrk0ce|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nextdirect|properties|protection|prudential|realestate|republican|restaurant|schaeffler|tatamotors|technology|university|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--q7ce6a|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|institute|insurance|kuokgroup|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--qxa6a|xn--tckwe|xn--vhquv|yodobashi|\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|builders|business|capetown|catering|catholic|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|etisalat|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|training|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lanxess|lasalle|latrobe|leclerc|limited|lincoln|markets|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|singles|staples|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|\u043A\u0430\u0442\u043E\u043B\u0438\u043A|\u0627\u062A\u0635\u0627\u0644\u0627\u062A|\u0627\u0644\u0628\u062D\u0631\u064A\u0646|\u0627\u0644\u062C\u0632\u0627\u0626\u0631|\u0627\u0644\u0639\u0644\u064A\u0627\u0646|\u067E\u0627\u06A9\u0633\u062A\u0627\u0646|\u0643\u0627\u062B\u0648\u0644\u064A\u0643|\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE|abarth|abbott|abbvie|africa|agency|airbus|airtel|alipay|alsace|alstom|amazon|anquan|aramco|author|bayern|beauty|berlin|bharti|bostik|boston|broker|camera|career|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|webcam|xihuan|yachts|yandex|zappos|\u043C\u043E\u0441\u043A\u0432\u0430|\u043E\u043D\u043B\u0430\u0439\u043D|\u0627\u0628\u0648\u0638\u0628\u064A|\u0627\u0631\u0627\u0645\u0643\u0648|\u0627\u0644\u0627\u0631\u062F\u0646|\u0627\u0644\u0645\u063A\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062A|\u0641\u0644\u0633\u0637\u064A\u0646|\u0645\u0644\u064A\u0633\u064A\u0627|\u092D\u093E\u0930\u0924\u092E\u094D|\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8|\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|drive|dubai|earth|edeka|email|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|irish|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|loans|locus|lotte|lotto|macys|mango|media|miami|money|movie|music|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|\u05D9\u05E9\u05E8\u05D0\u05DC|\u0627\u06CC\u0631\u0627\u0646|\u0628\u0627\u0632\u0627\u0631|\u0628\u06BE\u0627\u0631\u062A|\u0633\u0648\u062F\u0627\u0646|\u0633\u0648\u0631\u064A\u0629|\u0647\u0645\u0631\u0627\u0647|\u092D\u093E\u0930\u094B\u0924|\u0938\u0902\u0917\u0920\u0928|\u09AC\u09BE\u0982\u09B2\u09BE|\u0C2D\u0C3E\u0C30\u0C24\u0C4D|\u0D2D\u0D3E\u0D30\u0D24\u0D02|\u5609\u91CC\u5927\u9152\u5E97|aarp|able|adac|aero|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kids|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|read|reit|rent|rest|rich|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|\u0434\u0435\u0442\u0438|\u0441\u0430\u0439\u0442|\u0628\u0627\u0631\u062A|\u0628\u064A\u062A\u0643|\u0680\u0627\u0631\u062A|\u062A\u0648\u0646\u0633|\u0634\u0628\u0643\u0629|\u0639\u0631\u0627\u0642|\u0639\u0645\u0627\u0646|\u0645\u0648\u0642\u0639|\u092D\u093E\u0930\u0924|\u09AD\u09BE\u09B0\u09A4|\u09AD\u09BE\u09F0\u09A4|\u0A2D\u0A3E\u0A30\u0A24|\u0AAD\u0ABE\u0AB0\u0AA4|\u0B2D\u0B3E\u0B30\u0B24|\u0CAD\u0CBE\u0CB0\u0CA4|\u0DBD\u0D82\u0D9A\u0DCF|\u30A2\u30DE\u30BE\u30F3|\u30B0\u30FC\u30B0\u30EB|\u30AF\u30E9\u30A6\u30C9|\u30DD\u30A4\u30F3\u30C8|\u7EC4\u7EC7\u673A\u6784|\u96FB\u8A0A\u76C8\u79D1|\u9999\u683C\u91CC\u62C9|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceo|cfa|cfd|com|cpa|crs|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gay|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|llp|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|spa|srl|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|\u0431\u0435\u043B|\u043A\u043E\u043C|\u049B\u0430\u0437|\u043C\u043A\u0434|\u043C\u043E\u043D|\u043E\u0440\u0433|\u0440\u0443\u0441|\u0441\u0440\u0431|\u0443\u043A\u0440|\u0570\u0561\u0575|\u05E7\u05D5\u05DD|\u0639\u0631\u0628|\u0642\u0637\u0631|\u0643\u0648\u0645|\u0645\u0635\u0631|\u0915\u0949\u092E|\u0928\u0947\u091F|\u0E04\u0E2D\u0E21|\u0E44\u0E17\u0E22|\u0EA5\u0EB2\u0EA7|\u30B9\u30C8\u30A2|\u30BB\u30FC\u30EB|\u307F\u3093\u306A|\u4E2D\u6587\u7F51|\u4E9A\u9A6C\u900A|\u5929\u4E3B\u6559|\u6211\u7231\u4F60|\u65B0\u52A0\u5761|\u6DE1\u9A6C\u9521|\u8BFA\u57FA\u4E9A|\u98DE\u5229\u6D66|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|\u03B5\u03BB|\u03B5\u03C5|\u0431\u0433|\u0435\u044E|\u0440\u0444|\u10D2\u10D4|\uB2F7\uB137|\uB2F7\uCEF4|\uC0BC\uC131|\uD55C\uAD6D|\u30B3\u30E0|\u4E16\u754C|\u4E2D\u4FE1|\u4E2D\u56FD|\u4E2D\u570B|\u4F01\u4E1A|\u4F5B\u5C71|\u4FE1\u606F|\u5065\u5EB7|\u516B\u5366|\u516C\u53F8|\u516C\u76CA|\u53F0\u6E7E|\u53F0\u7063|\u5546\u57CE|\u5546\u5E97|\u5546\u6807|\u5609\u91CC|\u5728\u7EBF|\u5927\u62FF|\u5A31\u4E50|\u5BB6\u96FB|\u5E7F\u4E1C|\u5FAE\u535A|\u6148\u5584|\u624B\u673A|\u62DB\u8058|\u653F\u52A1|\u653F\u5E9C|\u65B0\u95FB|\u65F6\u5C1A|\u66F8\u7C4D|\u673A\u6784|\u6E38\u620F|\u6FB3\u9580|\u70B9\u770B|\u79FB\u52A8|\u7F51\u5740|\u7F51\u5E97|\u7F51\u7AD9|\u7F51\u7EDC|\u8054\u901A|\u8C37\u6B4C|\u8D2D\u7269|\u901A\u8CA9|\u96C6\u56E2|\u98DF\u54C1|\u9910\u5385|\u9999\u6E2F)";Fx.tldRegex=new RegExp("^"+Fx.tldRegexStr+"$")});var Ok=Jn(Fn=>{"use strict";Object.defineProperty(Fn,"__esModule",{value:!0});Fn.isValidIpV4Address=Fn.isValidTldMatch=Fn.isValidSchemeUrl=Fn.isKnownTld=Fn.isUrlSuffixStartChar=Fn.isPathChar=Fn.isDomainLabelChar=Fn.isDomainLabelStartChar=Fn.isSchemeChar=Fn.isSchemeStartChar=Fn.tldUrlHostRe=Fn.schemeUrlRe=Fn.invalidSchemeRe=Fn.urlSuffixedCharsNotAllowedAtEndRe=Fn.httpSchemePrefixRe=Fn.httpSchemeRe=Fn.urlSuffixNotAllowedAsLastCharRe=Fn.urlSuffixAllowedSpecialCharsRe=Fn.urlSuffixStartCharsRe=Fn.domainNameCharRegex=void 0;var Ux=Lx(),YJe=Dde();Fn.domainNameCharRegex=Ux.alphaNumericAndMarksRe;Fn.urlSuffixStartCharsRe=/[\/?#]/;Fn.urlSuffixAllowedSpecialCharsRe=/[-+&@#/%=~_()|'$*\[\]{}\u2713]/;Fn.urlSuffixNotAllowedAsLastCharRe=/[?!:,.;^]/;Fn.httpSchemeRe=/https?:\/\//i;Fn.httpSchemePrefixRe=new RegExp("^"+Fn.httpSchemeRe.source,"i");Fn.urlSuffixedCharsNotAllowedAtEndRe=new RegExp(Fn.urlSuffixNotAllowedAsLastCharRe.source+"$");Fn.invalidSchemeRe=/^(javascript|vbscript):/i;Fn.schemeUrlRe=/^[A-Za-z][-.+A-Za-z0-9]*:(\/\/)?([^:/]*)/;Fn.tldUrlHostRe=/^(?:\/\/)?([^/#?:]+)/;function XJe(e){return Ux.letterRe.test(e)}Fn.isSchemeStartChar=XJe;function KJe(e){return Ux.letterRe.test(e)||Ux.digitRe.test(e)||e==="+"||e==="-"||e==="."}Fn.isSchemeChar=KJe;function Ide(e){return Ux.alphaNumericAndMarksRe.test(e)}Fn.isDomainLabelStartChar=Ide;function JJe(e){return e==="_"||Ide(e)}Fn.isDomainLabelChar=JJe;function ZJe(e){return Ux.alphaNumericAndMarksRe.test(e)||Fn.urlSuffixAllowedSpecialCharsRe.test(e)||Fn.urlSuffixNotAllowedAsLastCharRe.test(e)}Fn.isPathChar=ZJe;function QJe(e){return Fn.urlSuffixStartCharsRe.test(e)}Fn.isUrlSuffixStartChar=QJe;function Pde(e){return YJe.tldRegex.test(e.toLowerCase())}Fn.isKnownTld=Pde;function $Je(e){if(Fn.invalidSchemeRe.test(e))return!1;var t=e.match(Fn.schemeUrlRe);if(!t)return!1;var n=!!t[1],i=t[2];return n?!0:!(i.indexOf(".")===-1||!Ux.letterRe.test(i))}Fn.isValidSchemeUrl=$Je;function eZe(e){var t=e.match(Fn.tldUrlHostRe);if(!t)return!1;var n=t[0],i=n.split(".");if(i.length<2)return!1;var r=i[i.length-1];return!!Pde(r)}Fn.isValidTldMatch=eZe;var tZe=/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,nZe=/[:/?#]/;function iZe(e){var t=e.split(nZe,1)[0];return tZe.test(t)}Fn.isValidIpV4Address=iZe});var l7=Jn(Mk=>{"use strict";Object.defineProperty(Mk,"__esModule",{value:!0});Mk.UrlMatch=void 0;var rZe=(ym(),Dh(gm)),oZe=Nx(),sZe=Ok(),aZe=/^(https?:\/\/)?(www\.)?/i,cZe=/^\/\//,lZe=function(e){(0,rZe.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="url",i.url="",i.urlMatchType="scheme",i.protocolRelativeMatch=!1,i.stripPrefix={scheme:!0,www:!0},i.stripTrailingSlash=!0,i.decodePercentEncoding=!0,i.protocolPrepended=!1,i.urlMatchType=n.urlMatchType,i.url=n.url,i.protocolRelativeMatch=n.protocolRelativeMatch,i.stripPrefix=n.stripPrefix,i.stripTrailingSlash=n.stripTrailingSlash,i.decodePercentEncoding=n.decodePercentEncoding,i}return t.prototype.getType=function(){return"url"},t.prototype.getUrlMatchType=function(){return this.urlMatchType},t.prototype.getUrl=function(){var n=this.url;return!this.protocolRelativeMatch&&this.urlMatchType!=="scheme"&&!this.protocolPrepended&&(n=this.url="http://"+n,this.protocolPrepended=!0),n},t.prototype.getAnchorHref=function(){var n=this.getUrl();return n.replace(/&/g,"&")},t.prototype.getAnchorText=function(){var n=this.getMatchedText();return this.protocolRelativeMatch&&(n=dZe(n)),this.stripPrefix.scheme&&(n=uZe(n)),this.stripPrefix.www&&(n=fZe(n)),this.stripTrailingSlash&&(n=hZe(n)),this.decodePercentEncoding&&(n=mZe(n)),n},t}(oZe.AbstractMatch);Mk.UrlMatch=lZe;function uZe(e){return e.replace(sZe.httpSchemePrefixRe,"")}function fZe(e){return e.replace(aZe,"$1")}function dZe(e){return e.replace(cZe,"")}function hZe(e){return e.charAt(e.length-1)==="/"&&(e=e.slice(0,-1)),e}function mZe(e){var t=e.replace(/%22/gi,""").replace(/%26/gi,"&").replace(/%27/gi,"'").replace(/%3C/gi,"<").replace(/%3E/gi,">");try{return decodeURIComponent(t)}catch{return t}}});var Mde=Jn(Am=>{"use strict";Object.defineProperty(Am,"__esModule",{value:!0});Am.isValidEmail=Am.isEmailLocalPartChar=Am.isEmailLocalPartStartChar=Am.mailtoSchemePrefixRe=void 0;var Ode=Lx(),pZe=Ok();Am.mailtoSchemePrefixRe=/^mailto:/i;var _Ze=new RegExp("[".concat(Ode.alphaNumericAndMarksCharsStr,"!#$%&'*+/=?^_`{|}~-]"));function gZe(e){return Ode.alphaNumericAndMarksRe.test(e)}Am.isEmailLocalPartStartChar=gZe;function yZe(e){return _Ze.test(e)}Am.isEmailLocalPartChar=yZe;function AZe(e){var t=e.split(".").pop()||"";return(0,pZe.isKnownTld)(t)}Am.isValidEmail=AZe});var u7=Jn(Rk=>{"use strict";Object.defineProperty(Rk,"__esModule",{value:!0});Rk.EmailMatch=void 0;var xZe=(ym(),Dh(gm)),CZe=Nx(),TZe=function(e){(0,xZe.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="email",i.email="",i.email=n.email,i}return t.prototype.getType=function(){return"email"},t.prototype.getEmail=function(){return this.email},t.prototype.getAnchorHref=function(){return"mailto:"+this.email},t.prototype.getAnchorText=function(){return this.email},t}(CZe.AbstractMatch);Rk.EmailMatch=TZe});var f7=Jn(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.hashtagServices=Iy.isValidHashtag=Iy.isHashtagTextChar=void 0;var EZe=Lx();function bZe(e){return e==="_"||EZe.alphaNumericAndMarksRe.test(e)}Iy.isHashtagTextChar=bZe;function SZe(e){return e.length<=140}Iy.isValidHashtag=SZe;Iy.hashtagServices=["twitter","facebook","instagram","tiktok"]});var d7=Jn(Bk=>{"use strict";Object.defineProperty(Bk,"__esModule",{value:!0});Bk.HashtagMatch=void 0;var vZe=(ym(),Dh(gm)),wZe=Db(),DZe=Nx(),IZe=function(e){(0,vZe.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="hashtag",i.serviceName="twitter",i.hashtag="",i.serviceName=n.serviceName,i.hashtag=n.hashtag,i}return t.prototype.getType=function(){return"hashtag"},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getHashtag=function(){return this.hashtag},t.prototype.getAnchorHref=function(){var n=this.serviceName,i=this.hashtag;switch(n){case"twitter":return"https://twitter.com/hashtag/"+i;case"facebook":return"https://www.facebook.com/hashtag/"+i;case"instagram":return"https://instagram.com/explore/tags/"+i;case"tiktok":return"https://www.tiktok.com/tag/"+i;default:throw(0,wZe.assertNever)(n),new Error("Invalid hashtag service: ".concat(n))}},t.prototype.getAnchorText=function(){return"#"+this.hashtag},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t}(DZe.AbstractMatch);Bk.HashtagMatch=IZe});var h7=Jn(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.mentionServices=Py.isValidMention=Py.isMentionTextChar=void 0;var PZe={twitter:/^@\w{1,15}$/,instagram:/^@[_\w]{1,30}$/,soundcloud:/^@[-a-z0-9_]{3,25}$/,tiktok:/^@[.\w]{1,23}[\w]$/},OZe=/[-\w.]/;function MZe(e){return OZe.test(e)}Py.isMentionTextChar=MZe;function RZe(e,t){var n=PZe[t];return n.test(e)}Py.isValidMention=RZe;Py.mentionServices=["twitter","instagram","soundcloud","tiktok"]});var m7=Jn(Lk=>{"use strict";Object.defineProperty(Lk,"__esModule",{value:!0});Lk.MentionMatch=void 0;var BZe=(ym(),Dh(gm)),LZe=Nx(),NZe=function(e){(0,BZe.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="mention",i.serviceName="twitter",i.mention="",i.mention=n.mention,i.serviceName=n.serviceName,i}return t.prototype.getType=function(){return"mention"},t.prototype.getMention=function(){return this.mention},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getAnchorHref=function(){switch(this.serviceName){case"twitter":return"https://twitter.com/"+this.mention;case"instagram":return"https://instagram.com/"+this.mention;case"soundcloud":return"https://soundcloud.com/"+this.mention;case"tiktok":return"https://www.tiktok.com/@"+this.mention;default:throw new Error("Unknown service name to point mention to: "+this.serviceName)}},t.prototype.getAnchorText=function(){return"@"+this.mention},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t}(LZe.AbstractMatch);Lk.MentionMatch=NZe});var Rde=Jn(Oy=>{"use strict";Object.defineProperty(Oy,"__esModule",{value:!0});Oy.isValidPhoneNumber=Oy.isPhoneNumberControlChar=Oy.isPhoneNumberSeparatorChar=void 0;var FZe=/[-. ]/,UZe=/[-. ()]/,VZe=/[,;]/,kZe=/(?:(?:(?:(\+)?\d{1,3}[-. ]?)?\(?\d{3}\)?[-. ]?\d{3}[-. ]?\d{4})|(?:(\+)(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-. ]?(?:\d[-. ]?){6,12}\d+))([,;]+[0-9]+#?)*/,zZe=/(0([1-9]-?[1-9]\d{3}|[1-9]{2}-?\d{3}|[1-9]{2}\d{1}-?\d{2}|[1-9]{2}\d{2}-?\d{1})-?\d{4}|0[789]0-?\d{4}-?\d{4}|050-?\d{4}-?\d{4})/,HZe=new RegExp("^".concat(kZe.source,"|").concat(zZe.source,"$"));function GZe(e){return FZe.test(e)}Oy.isPhoneNumberSeparatorChar=GZe;function WZe(e){return VZe.test(e)}Oy.isPhoneNumberControlChar=WZe;function jZe(e){var t=e.charAt(0)==="+"||UZe.test(e);return t&&HZe.test(e)}Oy.isValidPhoneNumber=jZe});var p7=Jn(Nk=>{"use strict";Object.defineProperty(Nk,"__esModule",{value:!0});Nk.PhoneMatch=void 0;var qZe=(ym(),Dh(gm)),YZe=Nx(),XZe=function(e){(0,qZe.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="phone",i.number="",i.plusSign=!1,i.number=n.number,i.plusSign=n.plusSign,i}return t.prototype.getType=function(){return"phone"},t.prototype.getPhoneNumber=function(){return this.number},t.prototype.getNumber=function(){return this.getPhoneNumber()},t.prototype.getAnchorHref=function(){return"tel:"+(this.plusSign?"+":"")+this.number},t.prototype.getAnchorText=function(){return this.matchedText},t}(YZe.AbstractMatch);Nk.PhoneMatch=XZe});var C7=Jn(Ob=>{"use strict";Object.defineProperty(Ob,"__esModule",{value:!0});Ob.excludeUnbalancedTrailingBracesAndPunctuation=Ob.parseMatches=void 0;var ba=Lx(),KZe=l7(),wr=Db(),ao=Ok(),Ib=Mde(),JZe=u7(),_7=f7(),ZZe=d7(),g7=h7(),QZe=m7(),Pb=Rde(),$Ze=p7();function eQe(e,t){for(var n=t.tagBuilder,i=t.stripPrefix,r=t.stripTrailingSlash,o=t.decodePercentEncoding,s=t.hashtagServiceName,a=t.mentionServiceName,c=[],l=e.length,f=[],d=0;d<l;d++){var p=e.charAt(d);if(f.length===0)x(p);else for(var g=f.length-1;g>=0;g--){var m=f[g];switch(m.state){case 11:D(m,p);break;case 12:M(m,p);break;case 0:C(m,p);break;case 1:T(m,p);break;case 2:E(m,p);break;case 3:S(m,p);break;case 4:v(m,p);break;case 5:O(m,p);break;case 6:B(m,p);break;case 7:L(m,p);break;case 13:_(m,p);break;case 14:b(m,p);break;case 8:w(m,p);break;case 9:I(m,p);break;case 10:R(m,p);break;case 15:F(m,p);break;case 16:k(m,p);break;case 17:V(m,p);break;case 18:G(m,p);break;case 19:U(m,p);break;case 20:Y(m,p);break;case 21:W(m,p);break;case 22:Z(m,p);break;case 23:j(m,p);break;case 24:K(m,p);break;case 25:J(m,p);break;case 26:_e(m,p);break;case 27:xe(m,p);break;case 28:oe(m,p);break;case 29:Ae(m,p);break;case 30:he(m,p);break;case 31:Se(m,p);break;case 32:Ne(m,p);break;case 33:qe(m,p);break;case 34:pt(m,p);break;case 35:Gt(m,p);break;case 36:fn(m,p);break;case 37:Ie(m,p);break;case 38:ft(m,p);break;case 39:pn(m,p);break;case 40:Bn(m,p);break;case 41:Vt(m,p);break;default:(0,wr.assertNever)(m.state)}}}for(var A=f.length-1;A>=0;A--)f.forEach(function(pe){return Qe(pe)});return c;function x(pe){if(pe==="#")f.push(rQe(d,28));else if(pe==="@")f.push(oQe(d,30));else if(pe==="/")f.push(A7(d,11));else if(pe==="+")f.push(x7(d,37));else if(pe==="(")f.push(x7(d,32));else{if(ba.digitRe.test(pe)&&(f.push(x7(d,38)),f.push(nQe(d,13))),(0,Ib.isEmailLocalPartStartChar)(pe)){var Ee=pe.toLowerCase()==="m"?15:22;f.push(iQe(d,Ee))}(0,ao.isSchemeStartChar)(pe)&&f.push(y7(d,0)),ba.alphaNumericAndMarksRe.test(pe)&&f.push(A7(d,5))}}function C(pe,Ee){Ee===":"?pe.state=2:Ee==="-"?pe.state=1:(0,ao.isSchemeChar)(Ee)||(0,wr.remove)(f,pe)}function T(pe,Ee){Ee==="-"||(Ee==="/"?((0,wr.remove)(f,pe),f.push(A7(d,11))):(0,ao.isSchemeChar)(Ee)?pe.state=0:(0,wr.remove)(f,pe))}function E(pe,Ee){Ee==="/"?pe.state=3:Ee==="."?(0,wr.remove)(f,pe):(0,ao.isDomainLabelStartChar)(Ee)?(pe.state=5,(0,ao.isSchemeStartChar)(Ee)&&f.push(y7(d,0))):(0,wr.remove)(f,pe)}function S(pe,Ee){Ee==="/"?pe.state=4:(0,ao.isPathChar)(Ee)?(pe.state=10,pe.acceptStateReached=!0):Qe(pe)}function v(pe,Ee){Ee==="/"?pe.state=10:(0,ao.isDomainLabelStartChar)(Ee)?(pe.state=5,pe.acceptStateReached=!0):(0,wr.remove)(f,pe)}function D(pe,Ee){Ee==="/"?pe.state=12:(0,wr.remove)(f,pe)}function M(pe,Ee){(0,ao.isDomainLabelStartChar)(Ee)?pe.state=5:(0,wr.remove)(f,pe)}function O(pe,Ee){Ee==="."?pe.state=7:Ee==="-"?pe.state=6:Ee===":"?pe.state=8:(0,ao.isUrlSuffixStartChar)(Ee)?pe.state=10:(0,ao.isDomainLabelChar)(Ee)||Qe(pe)}function B(pe,Ee){Ee==="-"||(Ee==="."?Qe(pe):(0,ao.isDomainLabelStartChar)(Ee)?pe.state=5:Qe(pe))}function L(pe,Ee){Ee==="."?Qe(pe):(0,ao.isDomainLabelStartChar)(Ee)?(pe.state=5,pe.acceptStateReached=!0):Qe(pe)}function _(pe,Ee){Ee==="."?pe.state=14:Ee===":"?pe.state=8:ba.digitRe.test(Ee)||((0,ao.isUrlSuffixStartChar)(Ee)?pe.state=10:ba.alphaNumericAndMarksRe.test(Ee)?(0,wr.remove)(f,pe):Qe(pe))}function b(pe,Ee){ba.digitRe.test(Ee)?(pe.octetsEncountered++,pe.octetsEncountered===4&&(pe.acceptStateReached=!0),pe.state=13):Qe(pe)}function w(pe,Ee){ba.digitRe.test(Ee)?pe.state=9:Qe(pe)}function I(pe,Ee){ba.digitRe.test(Ee)||((0,ao.isUrlSuffixStartChar)(Ee)?pe.state=10:Qe(pe))}function R(pe,Ee){(0,ao.isPathChar)(Ee)||Qe(pe)}function F(pe,Ee){Ee.toLowerCase()==="a"?pe.state=16:Z(pe,Ee)}function k(pe,Ee){Ee.toLowerCase()==="i"?pe.state=17:Z(pe,Ee)}function V(pe,Ee){Ee.toLowerCase()==="l"?pe.state=18:Z(pe,Ee)}function G(pe,Ee){Ee.toLowerCase()==="t"?pe.state=19:Z(pe,Ee)}function U(pe,Ee){Ee.toLowerCase()==="o"?pe.state=20:Z(pe,Ee)}function Y(pe,Ee){Ee.toLowerCase()===":"?pe.state=21:Z(pe,Ee)}function W(pe,Ee){(0,Ib.isEmailLocalPartChar)(Ee)?pe.state=22:(0,wr.remove)(f,pe)}function Z(pe,Ee){Ee==="."?pe.state=23:Ee==="@"?pe.state=24:(0,Ib.isEmailLocalPartChar)(Ee)?pe.state=22:(0,wr.remove)(f,pe)}function j(pe,Ee){Ee==="."||Ee==="@"?(0,wr.remove)(f,pe):(0,Ib.isEmailLocalPartChar)(Ee)?pe.state=22:(0,wr.remove)(f,pe)}function K(pe,Ee){(0,ao.isDomainLabelStartChar)(Ee)?pe.state=25:(0,wr.remove)(f,pe)}function J(pe,Ee){Ee==="."?pe.state=27:Ee==="-"?pe.state=26:(0,ao.isDomainLabelChar)(Ee)||Qe(pe)}function _e(pe,Ee){Ee==="-"||Ee==="."?Qe(pe):(0,ao.isDomainLabelChar)(Ee)?pe.state=25:Qe(pe)}function xe(pe,Ee){Ee==="."||Ee==="-"?Qe(pe):(0,ao.isDomainLabelStartChar)(Ee)?(pe.state=25,pe.acceptStateReached=!0):Qe(pe)}function oe(pe,Ee){(0,_7.isHashtagTextChar)(Ee)?(pe.state=29,pe.acceptStateReached=!0):(0,wr.remove)(f,pe)}function Ae(pe,Ee){(0,_7.isHashtagTextChar)(Ee)||Qe(pe)}function he(pe,Ee){(0,g7.isMentionTextChar)(Ee)?(pe.state=31,pe.acceptStateReached=!0):(0,wr.remove)(f,pe)}function Se(pe,Ee){(0,g7.isMentionTextChar)(Ee)||(ba.alphaNumericAndMarksRe.test(Ee)?(0,wr.remove)(f,pe):Qe(pe))}function Ie(pe,Ee){ba.digitRe.test(Ee)?pe.state=38:((0,wr.remove)(f,pe),x(Ee))}function Ne(pe,Ee){ba.digitRe.test(Ee)?pe.state=33:(0,wr.remove)(f,pe),x(Ee)}function qe(pe,Ee){ba.digitRe.test(Ee)?pe.state=34:(0,wr.remove)(f,pe)}function pt(pe,Ee){ba.digitRe.test(Ee)?pe.state=35:(0,wr.remove)(f,pe)}function Gt(pe,Ee){Ee===")"?pe.state=36:(0,wr.remove)(f,pe)}function fn(pe,Ee){ba.digitRe.test(Ee)?pe.state=38:(0,Pb.isPhoneNumberSeparatorChar)(Ee)?pe.state=39:(0,wr.remove)(f,pe)}function ft(pe,Ee){pe.acceptStateReached=!0,(0,Pb.isPhoneNumberControlChar)(Ee)?pe.state=40:Ee==="#"?pe.state=41:ba.digitRe.test(Ee)||(Ee==="("?pe.state=32:(0,Pb.isPhoneNumberSeparatorChar)(Ee)?pe.state=39:(Qe(pe),(0,ao.isSchemeStartChar)(Ee)&&f.push(y7(d,0))))}function pn(pe,Ee){ba.digitRe.test(Ee)?pe.state=38:Ee==="("?pe.state=32:(Qe(pe),x(Ee))}function Bn(pe,Ee){(0,Pb.isPhoneNumberControlChar)(Ee)||(Ee==="#"?pe.state=41:ba.digitRe.test(Ee)?pe.state=38:Qe(pe))}function Vt(pe,Ee){(0,Pb.isPhoneNumberControlChar)(Ee)?pe.state=40:ba.digitRe.test(Ee)?(0,wr.remove)(f,pe):Qe(pe)}function Qe(pe){if((0,wr.remove)(f,pe),!!pe.acceptStateReached){var Ee=pe.startIdx,Ge=e.slice(pe.startIdx,d);if(Ge=Nde(Ge),pe.type==="url"){var xi=e.charAt(pe.startIdx-1);if(xi==="@")return;var Ci=pe.matchType;if(Ci==="scheme"){var Ir=ao.httpSchemeRe.exec(Ge);if(Ir&&(Ee=Ee+Ir.index,Ge=Ge.slice(Ir.index)),!(0,ao.isValidSchemeUrl)(Ge))return}else if(Ci==="tld"){if(!(0,ao.isValidTldMatch)(Ge))return}else if(Ci==="ipV4"){if(!(0,ao.isValidIpV4Address)(Ge))return}else(0,wr.assertNever)(Ci);c.push(new KZe.UrlMatch({tagBuilder:n,matchedText:Ge,offset:Ee,urlMatchType:Ci,url:Ge,protocolRelativeMatch:Ge.slice(0,2)==="//",stripPrefix:i,stripTrailingSlash:r,decodePercentEncoding:o}))}else if(pe.type==="email")(0,Ib.isValidEmail)(Ge)&&c.push(new JZe.EmailMatch({tagBuilder:n,matchedText:Ge,offset:Ee,email:Ge.replace(Ib.mailtoSchemePrefixRe,"")}));else if(pe.type==="hashtag")(0,_7.isValidHashtag)(Ge)&&c.push(new ZZe.HashtagMatch({tagBuilder:n,matchedText:Ge,offset:Ee,serviceName:s,hashtag:Ge.slice(1)}));else if(pe.type==="mention")(0,g7.isValidMention)(Ge,a)&&c.push(new QZe.MentionMatch({tagBuilder:n,matchedText:Ge,offset:Ee,serviceName:a,mention:Ge.slice(1)}));else if(pe.type==="phone"){if(Ge=Ge.replace(/ +$/g,""),(0,Pb.isValidPhoneNumber)(Ge)){var Wr=Ge.replace(/[^0-9,;#]/g,"");c.push(new $Ze.PhoneMatch({tagBuilder:n,matchedText:Ge,offset:Ee,number:Wr,plusSign:Ge.charAt(0)==="+"}))}}else(0,wr.assertNever)(pe)}}}Ob.parseMatches=eQe;var tQe=/[\(\{\[]/,Bde=/[\)\}\]]/,Lde={")":"(","}":"{","]":"["};function Nde(e){for(var t={"(":0,"{":0,"[":0},n=0;n<e.length;n++){var i=e.charAt(n);tQe.test(i)?t[i]++:Bde.test(i)&&t[Lde[i]]--}for(var r=e.length-1,o;r>=0;)if(o=e.charAt(r),Bde.test(o)){var s=Lde[o];if(t[s]<0)t[s]++,r--;else break}else if(ao.urlSuffixedCharsNotAllowedAtEndRe.test(o))r--;else break;return e.slice(0,r+1)}Ob.excludeUnbalancedTrailingBracesAndPunctuation=Nde;function y7(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"scheme"}}function A7(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"tld"}}function nQe(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"ipV4",octetsEncountered:1}}function iQe(e,t){return{type:"email",startIdx:e,state:t,acceptStateReached:!1}}function rQe(e,t){return{type:"hashtag",startIdx:e,state:t,acceptStateReached:!1}}function oQe(e,t){return{type:"mention",startIdx:e,state:t,acceptStateReached:!1}}function x7(e,t){return{type:"phone",startIdx:e,state:t,acceptStateReached:!1}}});var Fde=Jn(Fk=>{"use strict";Object.defineProperty(Fk,"__esModule",{value:!0});Fk.parseHtml=void 0;var cc=(ym(),Dh(gm)),Yc=Lx(),sQe=Db();function aQe(e,t){for(var n=t.onOpenTag,i=t.onCloseTag,r=t.onText,o=t.onComment,s=t.onDoctype,a=new xm,c=0,l=e.length,f=0,d=0,p=a;c<l;){var g=e.charAt(c);switch(f){case 0:m(g);break;case 1:A(g);break;case 2:C(g);break;case 3:x(g);break;case 4:T(g);break;case 5:E(g);break;case 6:S(g);break;case 7:v(g);break;case 8:D(g);break;case 9:M(g);break;case 10:O(g);break;case 11:B(g);break;case 12:L(g);break;case 13:_(g);break;case 14:b(g);break;case 15:w(g);break;case 16:I(g);break;case 17:R(g);break;case 18:F(g);break;case 19:k(g);break;case 20:V(g);break;default:(0,sQe.assertNever)(f)}c++}d<c&&W();function m(K){K==="<"&&U()}function A(K){K==="!"?f=13:K==="/"?(f=2,p=new xm((0,cc.__assign)((0,cc.__assign)({},p),{isClosing:!0}))):K==="<"?U():Yc.letterRe.test(K)?(f=3,p=new xm((0,cc.__assign)((0,cc.__assign)({},p),{isOpening:!0}))):(f=0,p=a)}function x(K){Yc.whitespaceRe.test(K)?(p=new xm((0,cc.__assign)((0,cc.__assign)({},p),{name:Z()})),f=4):K==="<"?U():K==="/"?(p=new xm((0,cc.__assign)((0,cc.__assign)({},p),{name:Z()})),f=12):K===">"?(p=new xm((0,cc.__assign)((0,cc.__assign)({},p),{name:Z()})),Y()):!Yc.letterRe.test(K)&&!Yc.digitRe.test(K)&&K!==":"&&G()}function C(K){K===">"?G():Yc.letterRe.test(K)?f=3:G()}function T(K){Yc.whitespaceRe.test(K)||(K==="/"?f=12:K===">"?Y():K==="<"?U():K==="="||Yc.quoteRe.test(K)||Yc.controlCharsRe.test(K)?G():f=5)}function E(K){Yc.whitespaceRe.test(K)?f=6:K==="/"?f=12:K==="="?f=7:K===">"?Y():K==="<"?U():Yc.quoteRe.test(K)&&G()}function S(K){Yc.whitespaceRe.test(K)||(K==="/"?f=12:K==="="?f=7:K===">"?Y():K==="<"?U():Yc.quoteRe.test(K)?G():f=5)}function v(K){Yc.whitespaceRe.test(K)||(K==='"'?f=8:K==="'"?f=9:/[>=`]/.test(K)?G():K==="<"?U():f=10)}function D(K){K==='"'&&(f=11)}function M(K){K==="'"&&(f=11)}function O(K){Yc.whitespaceRe.test(K)?f=4:K===">"?Y():K==="<"&&U()}function B(K){Yc.whitespaceRe.test(K)?f=4:K==="/"?f=12:K===">"?Y():K==="<"?U():(f=4,j())}function L(K){K===">"?(p=new xm((0,cc.__assign)((0,cc.__assign)({},p),{isClosing:!0})),Y()):f=4}function _(K){e.substr(c,2)==="--"?(c+=2,p=new xm((0,cc.__assign)((0,cc.__assign)({},p),{type:"comment"})),f=14):e.substr(c,7).toUpperCase()==="DOCTYPE"?(c+=7,p=new xm((0,cc.__assign)((0,cc.__assign)({},p),{type:"doctype"})),f=20):G()}function b(K){K==="-"?f=15:K===">"?G():f=16}function w(K){K==="-"?f=18:K===">"?G():f=16}function I(K){K==="-"&&(f=17)}function R(K){K==="-"?f=18:f=16}function F(K){K===">"?Y():K==="!"?f=19:K==="-"||(f=16)}function k(K){K==="-"?f=17:K===">"?Y():f=16}function V(K){K===">"?Y():K==="<"&&U()}function G(){f=0,p=a}function U(){f=1,p=new xm({idx:c})}function Y(){var K=e.slice(d,p.idx);K&&r(K,d),p.type==="comment"?o(p.idx):p.type==="doctype"?s(p.idx):(p.isOpening&&n(p.name,p.idx),p.isClosing&&i(p.name,p.idx)),G(),d=c+1}function W(){var K=e.slice(d,c);r(K,d),d=c+1}function Z(){var K=p.idx+(p.isClosing?2:1);return e.slice(K,c).toLowerCase()}function j(){c--}}Fk.parseHtml=aQe;var xm=function(){function e(t){t===void 0&&(t={}),this.idx=t.idx!==void 0?t.idx:-1,this.type=t.type||"tag",this.name=t.name||"",this.isOpening=!!t.isOpening,this.isClosing=!!t.isClosing}return e}()});var Uk=Jn(T7=>{"use strict";Object.defineProperty(T7,"__esModule",{value:!0});var cQe=Tde(),ms=Db(),lQe=r7(),uQe=Sk(),fQe=C7(),dQe=Fde(),hQe=h7(),mQe=f7(),pQe=function(){function e(t){t===void 0&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:"end"},this.className="",this.replaceFn=null,this.context=void 0,this.sanitizeHtml=!1,this.tagBuilder=null,this.urls=_Qe(t.urls),this.email=(0,ms.isBoolean)(t.email)?t.email:this.email,this.phone=(0,ms.isBoolean)(t.phone)?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=(0,ms.isBoolean)(t.newWindow)?t.newWindow:this.newWindow,this.stripPrefix=gQe(t.stripPrefix),this.stripTrailingSlash=(0,ms.isBoolean)(t.stripTrailingSlash)?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=(0,ms.isBoolean)(t.decodePercentEncoding)?t.decodePercentEncoding:this.decodePercentEncoding,this.sanitizeHtml=t.sanitizeHtml||!1;var n=this.mention;if(n!==!1&&hQe.mentionServices.indexOf(n)===-1)throw new Error("invalid `mention` cfg '".concat(n,"' - see docs"));var i=this.hashtag;if(i!==!1&&mQe.hashtagServices.indexOf(i)===-1)throw new Error("invalid `hashtag` cfg '".concat(i,"' - see docs"));this.truncate=yQe(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,n){var i=new e(n);return i.link(t)},e.parse=function(t,n){var i=new e(n);return i.parse(t)},e.prototype.parse=function(t){var n=this,i=["a","style","script"],r=0,o=[];return(0,dQe.parseHtml)(t,{onOpenTag:function(s){i.indexOf(s)>=0&&r++},onText:function(s,a){if(r===0){var c=/( | |<|<|>|>|"|"|')/gi,l=s.split(c),f=a;l.forEach(function(d,p){if(p%2===0){var g=n.parseText(d,f);o.push.apply(o,g)}f+=d.length})}},onCloseTag:function(s){i.indexOf(s)>=0&&(r=Math.max(r-1,0))},onComment:function(s){},onDoctype:function(s){}}),o=this.compactMatches(o),o=this.removeUnwantedMatches(o),o},e.prototype.compactMatches=function(t){t.sort(function(c,l){return c.getOffset()-l.getOffset()});for(var n=0;n<t.length-1;){var i=t[n],r=i.getOffset(),o=i.getMatchedText().length,s=r+o;if(n+1<t.length){if(t[n+1].getOffset()===r){var a=t[n+1].getMatchedText().length>o?n:n+1;t.splice(a,1);continue}if(t[n+1].getOffset()<s){t.splice(n+1,1);continue}}n++}return t},e.prototype.removeUnwantedMatches=function(t){return this.hashtag||(0,ms.removeWithPredicate)(t,function(n){return n.getType()==="hashtag"}),this.email||(0,ms.removeWithPredicate)(t,function(n){return n.getType()==="email"}),this.phone||(0,ms.removeWithPredicate)(t,function(n){return n.getType()==="phone"}),this.mention||(0,ms.removeWithPredicate)(t,function(n){return n.getType()==="mention"}),this.urls.schemeMatches||(0,ms.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="scheme"}),this.urls.tldMatches||(0,ms.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="tld"}),this.urls.ipV4Matches||(0,ms.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="ipV4"}),t},e.prototype.parseText=function(t,n){n===void 0&&(n=0),n=n||0;for(var i=(0,fQe.parseMatches)(t,{tagBuilder:this.getTagBuilder(),stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding,hashtagServiceName:this.hashtag,mentionServiceName:this.mention||"twitter"}),r=0,o=i.length;r<o;r++)i[r].setOffset(n+i[r].getOffset());return i},e.prototype.link=function(t){if(!t)return"";this.sanitizeHtml&&(t=t.replace(/</g,"<").replace(/>/g,">"));for(var n=this.parse(t),i=[],r=0,o=0,s=n.length;o<s;o++){var a=n[o];i.push(t.substring(r,a.getOffset())),i.push(this.createMatchReturnVal(a)),r=a.getOffset()+a.getMatchedText().length}return i.push(t.substring(r)),i.join("")},e.prototype.createMatchReturnVal=function(t){var n;if(this.replaceFn&&(n=this.replaceFn.call(this.context,t)),typeof n=="string")return n;if(n===!1)return t.getMatchedText();if(n instanceof uQe.HtmlTag)return n.toAnchorString();var i=t.buildTag();return i.toAnchorString()},e.prototype.getTagBuilder=function(){var t=this.tagBuilder;return t||(t=this.tagBuilder=new lQe.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),t},e.version=cQe.version,e}();T7.default=pQe;function _Qe(e){return e==null&&(e=!0),(0,ms.isBoolean)(e)?{schemeMatches:e,tldMatches:e,ipV4Matches:e}:{schemeMatches:(0,ms.isBoolean)(e.schemeMatches)?e.schemeMatches:!0,tldMatches:(0,ms.isBoolean)(e.tldMatches)?e.tldMatches:!0,ipV4Matches:(0,ms.isBoolean)(e.ipV4Matches)?e.ipV4Matches:!0}}function gQe(e){return e==null&&(e=!0),(0,ms.isBoolean)(e)?{scheme:e,www:e}:{scheme:(0,ms.isBoolean)(e.scheme)?e.scheme:!0,www:(0,ms.isBoolean)(e.www)?e.www:!0}}function yQe(e){return typeof e=="number"?{length:e,location:"end"}:(0,ms.defaults)(e||{},{length:Number.POSITIVE_INFINITY,location:"end"})}});var Vde=Jn(Ude=>{"use strict";Object.defineProperty(Ude,"__esModule",{value:!0})});var kde=Jn(I_=>{"use strict";Object.defineProperty(I_,"__esModule",{value:!0});var Vx=(ym(),Dh(gm));(0,Vx.__exportStar)(Vde(),I_);(0,Vx.__exportStar)(u7(),I_);(0,Vx.__exportStar)(d7(),I_);(0,Vx.__exportStar)(Nx(),I_);(0,Vx.__exportStar)(m7(),I_);(0,Vx.__exportStar)(p7(),I_);(0,Vx.__exportStar)(l7(),I_)});var zde=Jn(E7=>{"use strict";Object.defineProperty(E7,"__esModule",{value:!0});var AQe=(ym(),Dh(gm));(0,AQe.__exportStar)(C7(),E7)});var b7=Jn((rh,Gde)=>{"use strict";rh=Gde.exports=Uk().default;Object.defineProperty(rh,"__esModule",{value:!0});rh.Autolinker=void 0;var Mb=(ym(),Dh(gm)),Hde=(0,Mb.__importDefault)(Uk());rh.Autolinker=Hde.default;rh.default=Hde.default;(0,Mb.__exportStar)(Uk(),rh);(0,Mb.__exportStar)(r7(),rh);(0,Mb.__exportStar)(Sk(),rh);(0,Mb.__exportStar)(kde(),rh);(0,Mb.__exportStar)(zde(),rh)});var mj=Jn(uc=>{"use strict";Object.defineProperty(uc,"__esModule",{value:!0});var Wb={Linear:{None:function(e){return e}},Quadratic:{In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}},Cubic:{In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}},Quartic:{In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}},Quintic:{In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}},Sinusoidal:{In:function(e){return 1-Math.cos(e*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.cos(Math.PI*e))}},Exponential:{In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}},Circular:{In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}},Elastic:{In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}},Back:{In:function(e){var t=1.70158;return e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)}},Bounce:{In:function(e){return 1-Wb.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?Wb.Bounce.In(e*2)*.5:Wb.Bounce.Out(e*2-1)*.5+.5}}},GB;typeof self>"u"&&typeof process<"u"&&process.hrtime?GB=function(){var e=process.hrtime();return e[0]*1e3+e[1]/1e6}:typeof self<"u"&&self.performance!==void 0&&self.performance.now!==void 0?GB=self.performance.now.bind(self.performance):Date.now!==void 0?GB=Date.now:GB=function(){return new Date().getTime()};var Uy=GB,hj=function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(n){return t._tweens[n]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(t){this._tweens[t.getId()]=t,this._tweensAddedDuringUpdate[t.getId()]=t},e.prototype.remove=function(t){delete this._tweens[t.getId()],delete this._tweensAddedDuringUpdate[t.getId()]},e.prototype.update=function(t,n){t===void 0&&(t=Uy()),n===void 0&&(n=!1);var i=Object.keys(this._tweens);if(i.length===0)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var r=0;r<i.length;r++){var o=this._tweens[i[r]],s=!n;o&&o.update(t,s)===!1&&!n&&delete this._tweens[i[r]]}i=Object.keys(this._tweensAddedDuringUpdate)}return!0},e}(),Wx={Linear:function(e,t){var n=e.length-1,i=n*t,r=Math.floor(i),o=Wx.Utils.Linear;return t<0?o(e[0],e[1],i):t>1?o(e[n],e[n-1],n-i):o(e[r],e[r+1>n?n:r+1],i-r)},Bezier:function(e,t){for(var n=0,i=e.length-1,r=Math.pow,o=Wx.Utils.Bernstein,s=0;s<=i;s++)n+=r(1-t,i-s)*r(t,s)*e[s]*o(i,s);return n},CatmullRom:function(e,t){var n=e.length-1,i=n*t,r=Math.floor(i),o=Wx.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(r=Math.floor(i=n*(1+t))),o(e[(r-1+n)%n],e[r],e[(r+1)%n],e[(r+2)%n],i-r)):t<0?e[0]-(o(e[0],e[0],e[1],e[1],-i)-e[0]):t>1?e[n]-(o(e[n],e[n],e[n-1],e[n-1],i-n)-e[n]):o(e[r?r-1:0],e[r],e[n<r+1?n:r+1],e[n<r+2?n:r+2],i-r)},Utils:{Linear:function(e,t,n){return(t-e)*n+e},Bernstein:function(e,t){var n=Wx.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:function(){var e=[1];return function(t){var n=1;if(e[t])return e[t];for(var i=t;i>1;i--)n*=i;return e[t]=n,n}}(),CatmullRom:function(e,t,n,i,r){var o=(n-e)*.5,s=(i-t)*.5,a=r*r,c=r*a;return(2*t-2*n+o+s)*c+(-3*t+3*n-2*o-s)*a+o*r+t}}},P4=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),xme=new hj,Cme=function(){function e(t,n){n===void 0&&(n=xme),this._object=t,this._group=n,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Wb.Linear.None,this._interpolationFunction=Wx.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._id=P4.nextId(),this._isChainStopped=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.to=function(t,n){return this._valuesEnd=Object.create(t),n!==void 0&&(this._duration=n),this},e.prototype.duration=function(t){return this._duration=t,this},e.prototype.start=function(t){if(this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var n in this._valuesStartRepeat)this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n]}return this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t!==void 0?typeof t=="string"?Uy()+parseFloat(t):t:Uy(),this._startTime+=this._delayTime,this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat),this},e.prototype._setupProperties=function(t,n,i,r){for(var o in i){var s=t[o],a=Array.isArray(s),c=a?"array":typeof s,l=!a&&Array.isArray(i[o]);if(!(c==="undefined"||c==="function")){if(l){var f=i[o];if(f.length===0)continue;f=f.map(this._handleRelativeValue.bind(this,s)),i[o]=[s].concat(f)}if((c==="object"||a)&&s&&!l){n[o]=a?[]:{};for(var d in s)n[o][d]=s[d];r[o]=a?[]:{},this._setupProperties(s,n[o],i[o],r[o])}else typeof n[o]>"u"&&(n[o]=s),a||(n[o]*=1),l?r[o]=i[o].slice().reverse():r[o]=n[o]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(t){return t===void 0&&(t=Uy()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=t,this._group&&this._group.remove(this),this)},e.prototype.resume=function(t){return t===void 0&&(t=Uy()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},e.prototype.stopChainedTweens=function(){for(var t=0,n=this._chainedTweens.length;t<n;t++)this._chainedTweens[t].stop();return this},e.prototype.group=function(t){return this._group=t,this},e.prototype.delay=function(t){return this._delayTime=t,this},e.prototype.repeat=function(t){return this._initialRepeat=t,this._repeat=t,this},e.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},e.prototype.yoyo=function(t){return this._yoyo=t,this},e.prototype.easing=function(t){return this._easingFunction=t,this},e.prototype.interpolation=function(t){return this._interpolationFunction=t,this},e.prototype.chain=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return this._chainedTweens=t,this},e.prototype.onStart=function(t){return this._onStartCallback=t,this},e.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},e.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},e.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},e.prototype.onStop=function(t){return this._onStopCallback=t,this},e.prototype.update=function(t,n){if(t===void 0&&(t=Uy()),n===void 0&&(n=!0),this._isPaused)return!0;var i,r,o=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(t>o)return!1;n&&this.start(t)}if(this._goToEnd=!1,t<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),r=(t-this._startTime)/this._duration,r=this._duration===0||r>1?1:r;var s=this._easingFunction(r);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,s),this._onUpdateCallback&&this._onUpdateCallback(this._object,r),r===1)if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(i in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[i]=="string"&&(this._valuesStartRepeat[i]=this._valuesStartRepeat[i]+parseFloat(this._valuesEnd[i])),this._yoyo&&this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i];return this._yoyo&&(this._reversed=!this._reversed),this._repeatDelayTime!==void 0?this._startTime=t+this._repeatDelayTime:this._startTime=t+this._delayTime,this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var a=0,c=this._chainedTweens.length;a<c;a++)this._chainedTweens[a].start(this._startTime+this._duration);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(t,n,i,r){for(var o in i)if(n[o]!==void 0){var s=n[o]||0,a=i[o],c=Array.isArray(t[o]),l=Array.isArray(a),f=!c&&l;f?t[o]=this._interpolationFunction(a,r):typeof a=="object"&&a?this._updateProperties(t[o],s,a,r):(a=this._handleRelativeValue(s,a),typeof a=="number"&&(t[o]=s+(a-s)*r))}},e.prototype._handleRelativeValue=function(t,n){return typeof n!="string"?n:n.charAt(0)==="+"||n.charAt(0)==="-"?t+parseFloat(n):parseFloat(n)},e.prototype._swapEndStartRepeatValues=function(t){var n=this._valuesStartRepeat[t],i=this._valuesEnd[t];typeof i=="string"?this._valuesStartRepeat[t]=this._valuesStartRepeat[t]+parseFloat(i):this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=n},e}(),Tme="18.6.4",Eme=P4.nextId,Em=xme,bme=Em.getAll.bind(Em),Sme=Em.removeAll.bind(Em),vme=Em.add.bind(Em),wme=Em.remove.bind(Em),Dme=Em.update.bind(Em),_et={Easing:Wb,Group:hj,Interpolation:Wx,now:Uy,Sequence:P4,nextId:Eme,Tween:Cme,VERSION:Tme,getAll:bme,removeAll:Sme,add:vme,remove:wme,update:Dme};uc.Easing=Wb;uc.Group=hj;uc.Interpolation=Wx;uc.Sequence=P4;uc.Tween=Cme;uc.VERSION=Tme;uc.add=vme;uc.default=_et;uc.getAll=bme;uc.nextId=Eme;uc.now=Uy;uc.remove=wme;uc.removeAll=Sme;uc.update=Dme});var qY=Jn((exports,module)=>{/*! + * protobuf.js v7.2.3 (c) 2016, daniel wirtz + * compiled mon, 27 mar 2023 18:08:22 utc + * licensed under the bsd-3-clause license + * see: https://github.com/dcodeio/protobuf.js for details + */(function(undefined){"use strict";(function(t,n,i){function r(s){var a=n[s];return a||t[s][0].call(a=n[s]={exports:{}},r,a,a.exports),a.exports}var o=r(i[0]);o.util.global.protobuf=o,typeof define=="function"&&define.amd&&define(["long"],function(s){return s&&s.isLong&&(o.util.Long=s,o.configure()),o}),typeof module=="object"&&module&&module.exports&&(module.exports=o)})({1:[function(e,t,n){"use strict";t.exports=i;function i(r,o){for(var s=new Array(arguments.length-1),a=0,c=2,l=!0;c<arguments.length;)s[a++]=arguments[c++];return new Promise(function(d,p){s[a]=function(m){if(l)if(l=!1,m)p(m);else{for(var A=new Array(arguments.length-1),x=0;x<A.length;)A[x++]=arguments[x];d.apply(null,A)}};try{r.apply(o||null,s)}catch(g){l&&(l=!1,p(g))}})}},{}],2:[function(e,t,n){"use strict";var i=n;i.length=function(l){var f=l.length;if(!f)return 0;for(var d=0;--f%4>1&&l.charAt(f)==="=";)++d;return Math.ceil(l.length*3)/4-d};for(var r=new Array(64),o=new Array(123),s=0;s<64;)o[r[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;i.encode=function(l,f,d){for(var p=null,g=[],m=0,A=0,x;f<d;){var C=l[f++];switch(A){case 0:g[m++]=r[C>>2],x=(C&3)<<4,A=1;break;case 1:g[m++]=r[x|C>>4],x=(C&15)<<2,A=2;break;case 2:g[m++]=r[x|C>>6],g[m++]=r[C&63],A=0;break}m>8191&&((p||(p=[])).push(String.fromCharCode.apply(String,g)),m=0)}return A&&(g[m++]=r[x],g[m++]=61,A===1&&(g[m++]=61)),p?(m&&p.push(String.fromCharCode.apply(String,g.slice(0,m))),p.join("")):String.fromCharCode.apply(String,g.slice(0,m))};var a="invalid encoding";i.decode=function(l,f,d){for(var p=d,g=0,m,A=0;A<l.length;){var x=l.charCodeAt(A++);if(x===61&&g>1)break;if((x=o[x])===undefined)throw Error(a);switch(g){case 0:m=x,g=1;break;case 1:f[d++]=m<<2|(x&48)>>4,m=x,g=2;break;case 2:f[d++]=(m&15)<<4|(x&60)>>2,m=x,g=3;break;case 3:f[d++]=(m&3)<<6|x,g=0;break}}if(g===1)throw Error(a);return d-p},i.test=function(l){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(l)}},{}],3:[function(e,t,n){"use strict";t.exports=i;function i(){this._listeners={}}i.prototype.on=function(o,s,a){return(this._listeners[o]||(this._listeners[o]=[])).push({fn:s,ctx:a||this}),this},i.prototype.off=function(o,s){if(o===undefined)this._listeners={};else if(s===undefined)this._listeners[o]=[];else for(var a=this._listeners[o],c=0;c<a.length;)a[c].fn===s?a.splice(c,1):++c;return this},i.prototype.emit=function(o){var s=this._listeners[o];if(s){for(var a=[],c=1;c<arguments.length;)a.push(arguments[c++]);for(c=0;c<s.length;)s[c].fn.apply(s[c++].ctx,a)}return this}},{}],4:[function(e,t,n){"use strict";t.exports=i(i);function i(c){return typeof Float32Array<"u"?function(){var l=new Float32Array([-0]),f=new Uint8Array(l.buffer),d=f[3]===128;function p(x,C,T){l[0]=x,C[T]=f[0],C[T+1]=f[1],C[T+2]=f[2],C[T+3]=f[3]}function g(x,C,T){l[0]=x,C[T]=f[3],C[T+1]=f[2],C[T+2]=f[1],C[T+3]=f[0]}c.writeFloatLE=d?p:g,c.writeFloatBE=d?g:p;function m(x,C){return f[0]=x[C],f[1]=x[C+1],f[2]=x[C+2],f[3]=x[C+3],l[0]}function A(x,C){return f[3]=x[C],f[2]=x[C+1],f[1]=x[C+2],f[0]=x[C+3],l[0]}c.readFloatLE=d?m:A,c.readFloatBE=d?A:m}():function(){function l(d,p,g,m){var A=p<0?1:0;if(A&&(p=-p),p===0)d(1/p>0?0:2147483648,g,m);else if(isNaN(p))d(2143289344,g,m);else if(p>34028234663852886e22)d((A<<31|2139095040)>>>0,g,m);else if(p<11754943508222875e-54)d((A<<31|Math.round(p/1401298464324817e-60))>>>0,g,m);else{var x=Math.floor(Math.log(p)/Math.LN2),C=Math.round(p*Math.pow(2,-x)*8388608)&8388607;d((A<<31|x+127<<23|C)>>>0,g,m)}}c.writeFloatLE=l.bind(null,r),c.writeFloatBE=l.bind(null,o);function f(d,p,g){var m=d(p,g),A=(m>>31)*2+1,x=m>>>23&255,C=m&8388607;return x===255?C?NaN:A*(1/0):x===0?A*1401298464324817e-60*C:A*Math.pow(2,x-150)*(C+8388608)}c.readFloatLE=f.bind(null,s),c.readFloatBE=f.bind(null,a)}(),typeof Float64Array<"u"?function(){var l=new Float64Array([-0]),f=new Uint8Array(l.buffer),d=f[7]===128;function p(x,C,T){l[0]=x,C[T]=f[0],C[T+1]=f[1],C[T+2]=f[2],C[T+3]=f[3],C[T+4]=f[4],C[T+5]=f[5],C[T+6]=f[6],C[T+7]=f[7]}function g(x,C,T){l[0]=x,C[T]=f[7],C[T+1]=f[6],C[T+2]=f[5],C[T+3]=f[4],C[T+4]=f[3],C[T+5]=f[2],C[T+6]=f[1],C[T+7]=f[0]}c.writeDoubleLE=d?p:g,c.writeDoubleBE=d?g:p;function m(x,C){return f[0]=x[C],f[1]=x[C+1],f[2]=x[C+2],f[3]=x[C+3],f[4]=x[C+4],f[5]=x[C+5],f[6]=x[C+6],f[7]=x[C+7],l[0]}function A(x,C){return f[7]=x[C],f[6]=x[C+1],f[5]=x[C+2],f[4]=x[C+3],f[3]=x[C+4],f[2]=x[C+5],f[1]=x[C+6],f[0]=x[C+7],l[0]}c.readDoubleLE=d?m:A,c.readDoubleBE=d?A:m}():function(){function l(d,p,g,m,A,x){var C=m<0?1:0;if(C&&(m=-m),m===0)d(0,A,x+p),d(1/m>0?0:2147483648,A,x+g);else if(isNaN(m))d(0,A,x+p),d(2146959360,A,x+g);else if(m>17976931348623157e292)d(0,A,x+p),d((C<<31|2146435072)>>>0,A,x+g);else{var T;if(m<22250738585072014e-324)T=m/5e-324,d(T>>>0,A,x+p),d((C<<31|T/4294967296)>>>0,A,x+g);else{var E=Math.floor(Math.log(m)/Math.LN2);E===1024&&(E=1023),T=m*Math.pow(2,-E),d(T*4503599627370496>>>0,A,x+p),d((C<<31|E+1023<<20|T*1048576&1048575)>>>0,A,x+g)}}}c.writeDoubleLE=l.bind(null,r,0,4),c.writeDoubleBE=l.bind(null,o,4,0);function f(d,p,g,m,A){var x=d(m,A+p),C=d(m,A+g),T=(C>>31)*2+1,E=C>>>20&2047,S=4294967296*(C&1048575)+x;return E===2047?S?NaN:T*(1/0):E===0?T*5e-324*S:T*Math.pow(2,E-1075)*(S+4503599627370496)}c.readDoubleLE=f.bind(null,s,0,4),c.readDoubleBE=f.bind(null,a,4,0)}(),c}function r(c,l,f){l[f]=c&255,l[f+1]=c>>>8&255,l[f+2]=c>>>16&255,l[f+3]=c>>>24}function o(c,l,f){l[f]=c>>>24,l[f+1]=c>>>16&255,l[f+2]=c>>>8&255,l[f+3]=c&255}function s(c,l){return(c[l]|c[l+1]<<8|c[l+2]<<16|c[l+3]<<24)>>>0}function a(c,l){return(c[l]<<24|c[l+1]<<16|c[l+2]<<8|c[l+3])>>>0}},{}],5:[function(require,module,exports){"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}},{}],6:[function(e,t,n){"use strict";t.exports=i;function i(r,o,s){var a=s||8192,c=a>>>1,l=null,f=a;return function(p){if(p<1||p>c)return r(p);f+p>a&&(l=r(a),f=0);var g=o.call(l,f,f+=p);return f&7&&(f=(f|7)+1),g}}},{}],7:[function(e,t,n){"use strict";var i=n;i.length=function(o){for(var s=0,a=0,c=0;c<o.length;++c)a=o.charCodeAt(c),a<128?s+=1:a<2048?s+=2:(a&64512)===55296&&(o.charCodeAt(c+1)&64512)===56320?(++c,s+=4):s+=3;return s},i.read=function(o,s,a){var c=a-s;if(c<1)return"";for(var l=null,f=[],d=0,p;s<a;)p=o[s++],p<128?f[d++]=p:p>191&&p<224?f[d++]=(p&31)<<6|o[s++]&63:p>239&&p<365?(p=((p&7)<<18|(o[s++]&63)<<12|(o[s++]&63)<<6|o[s++]&63)-65536,f[d++]=55296+(p>>10),f[d++]=56320+(p&1023)):f[d++]=(p&15)<<12|(o[s++]&63)<<6|o[s++]&63,d>8191&&((l||(l=[])).push(String.fromCharCode.apply(String,f)),d=0);return l?(d&&l.push(String.fromCharCode.apply(String,f.slice(0,d))),l.join("")):String.fromCharCode.apply(String,f.slice(0,d))},i.write=function(o,s,a){for(var c=a,l,f,d=0;d<o.length;++d)l=o.charCodeAt(d),l<128?s[a++]=l:l<2048?(s[a++]=l>>6|192,s[a++]=l&63|128):(l&64512)===55296&&((f=o.charCodeAt(d+1))&64512)===56320?(l=65536+((l&1023)<<10)+(f&1023),++d,s[a++]=l>>18|240,s[a++]=l>>12&63|128,s[a++]=l>>6&63|128,s[a++]=l&63|128):(s[a++]=l>>12|224,s[a++]=l>>6&63|128,s[a++]=l&63|128);return a-c}},{}],8:[function(e,t,n){"use strict";var i=n;i.build="minimal",i.Writer=e(16),i.BufferWriter=e(17),i.Reader=e(9),i.BufferReader=e(10),i.util=e(15),i.rpc=e(12),i.roots=e(11),i.configure=r;function r(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}r()},{10:10,11:11,12:12,15:15,16:16,17:17,9:9}],9:[function(e,t,n){"use strict";t.exports=c;var i=e(15),r,o=i.LongBits,s=i.utf8;function a(m,A){return RangeError("index out of range: "+m.pos+" + "+(A||1)+" > "+m.len)}function c(m){this.buf=m,this.pos=0,this.len=m.length}var l=typeof Uint8Array<"u"?function(A){if(A instanceof Uint8Array||Array.isArray(A))return new c(A);throw Error("illegal buffer")}:function(A){if(Array.isArray(A))return new c(A);throw Error("illegal buffer")},f=function(){return i.Buffer?function(x){return(c.create=function(T){return i.Buffer.isBuffer(T)?new r(T):l(T)})(x)}:l};c.create=f(),c.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,c.prototype.uint32=function(){var A=4294967295;return function(){if(A=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(A=(A|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(A=(A|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(A=(A|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(A=(A|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return A;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return A}}(),c.prototype.int32=function(){return this.uint32()|0},c.prototype.sint32=function(){var A=this.uint32();return A>>>1^-(A&1)|0};function d(){var m=new o(0,0),A=0;if(this.len-this.pos>4){for(;A<4;++A)if(m.lo=(m.lo|(this.buf[this.pos]&127)<<A*7)>>>0,this.buf[this.pos++]<128)return m;if(m.lo=(m.lo|(this.buf[this.pos]&127)<<28)>>>0,m.hi=(m.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return m;A=0}else{for(;A<3;++A){if(this.pos>=this.len)throw a(this);if(m.lo=(m.lo|(this.buf[this.pos]&127)<<A*7)>>>0,this.buf[this.pos++]<128)return m}return m.lo=(m.lo|(this.buf[this.pos++]&127)<<A*7)>>>0,m}if(this.len-this.pos>4){for(;A<5;++A)if(m.hi=(m.hi|(this.buf[this.pos]&127)<<A*7+3)>>>0,this.buf[this.pos++]<128)return m}else for(;A<5;++A){if(this.pos>=this.len)throw a(this);if(m.hi=(m.hi|(this.buf[this.pos]&127)<<A*7+3)>>>0,this.buf[this.pos++]<128)return m}throw Error("invalid varint encoding")}c.prototype.bool=function(){return this.uint32()!==0};function p(m,A){return(m[A-4]|m[A-3]<<8|m[A-2]<<16|m[A-1]<<24)>>>0}c.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)|0};function g(){if(this.pos+8>this.len)throw a(this,8);return new o(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}c.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var A=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,A},c.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var A=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,A},c.prototype.bytes=function(){var A=this.uint32(),x=this.pos,C=this.pos+A;if(C>this.len)throw a(this,A);return this.pos+=A,Array.isArray(this.buf)?this.buf.slice(x,C):x===C?new this.buf.constructor(0):this._slice.call(this.buf,x,C)},c.prototype.string=function(){var A=this.bytes();return s.read(A,0,A.length)},c.prototype.skip=function(A){if(typeof A=="number"){if(this.pos+A>this.len)throw a(this,A);this.pos+=A}else do if(this.pos>=this.len)throw a(this);while(this.buf[this.pos++]&128);return this},c.prototype.skipType=function(m){switch(m){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(m=this.uint32()&7)!==4;)this.skipType(m);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+m+" at offset "+this.pos)}return this},c._configure=function(m){r=m,c.create=f(),r._configure();var A=i.Long?"toLong":"toNumber";i.merge(c.prototype,{int64:function(){return d.call(this)[A](!1)},uint64:function(){return d.call(this)[A](!0)},sint64:function(){return d.call(this).zzDecode()[A](!1)},fixed64:function(){return g.call(this)[A](!0)},sfixed64:function(){return g.call(this)[A](!1)}})}},{15:15}],10:[function(e,t,n){"use strict";t.exports=o;var i=e(9);(o.prototype=Object.create(i.prototype)).constructor=o;var r=e(15);function o(s){i.call(this,s)}o._configure=function(){r.Buffer&&(o.prototype._slice=r.Buffer.prototype.slice)},o.prototype.string=function(){var a=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+a,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+a,this.len))},o._configure()},{15:15,9:9}],11:[function(e,t,n){"use strict";t.exports={}},{}],12:[function(e,t,n){"use strict";var i=n;i.Service=e(13)},{13:13}],13:[function(e,t,n){"use strict";t.exports=r;var i=e(15);(r.prototype=Object.create(i.EventEmitter.prototype)).constructor=r;function r(o,s,a){if(typeof o!="function")throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=o,this.requestDelimited=!!s,this.responseDelimited=!!a}r.prototype.rpcCall=function o(s,a,c,l,f){if(!l)throw TypeError("request must be specified");var d=this;if(!f)return i.asPromise(o,d,s,a,c,l);if(!d.rpcImpl)return setTimeout(function(){f(Error("already ended"))},0),undefined;try{return d.rpcImpl(s,a[d.requestDelimited?"encodeDelimited":"encode"](l).finish(),function(g,m){if(g)return d.emit("error",g,s),f(g);if(m===null)return d.end(!0),undefined;if(!(m instanceof c))try{m=c[d.responseDelimited?"decodeDelimited":"decode"](m)}catch(A){return d.emit("error",A,s),f(A)}return d.emit("data",m,s),f(null,m)})}catch(p){return d.emit("error",p,s),setTimeout(function(){f(p)},0),undefined}},r.prototype.end=function(s){return this.rpcImpl&&(s||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{15:15}],14:[function(e,t,n){"use strict";t.exports=r;var i=e(15);function r(c,l){this.lo=c>>>0,this.hi=l>>>0}var o=r.zero=new r(0,0);o.toNumber=function(){return 0},o.zzEncode=o.zzDecode=function(){return this},o.length=function(){return 1};var s=r.zeroHash="\0\0\0\0\0\0\0\0";r.fromNumber=function(l){if(l===0)return o;var f=l<0;f&&(l=-l);var d=l>>>0,p=(l-d)/4294967296>>>0;return f&&(p=~p>>>0,d=~d>>>0,++d>4294967295&&(d=0,++p>4294967295&&(p=0))),new r(d,p)},r.from=function(l){if(typeof l=="number")return r.fromNumber(l);if(i.isString(l))if(i.Long)l=i.Long.fromString(l);else return r.fromNumber(parseInt(l,10));return l.low||l.high?new r(l.low>>>0,l.high>>>0):o},r.prototype.toNumber=function(l){if(!l&&this.hi>>>31){var f=~this.lo+1>>>0,d=~this.hi>>>0;return f||(d=d+1>>>0),-(f+d*4294967296)}return this.lo+this.hi*4294967296},r.prototype.toLong=function(l){return i.Long?new i.Long(this.lo|0,this.hi|0,!!l):{low:this.lo|0,high:this.hi|0,unsigned:!!l}};var a=String.prototype.charCodeAt;r.fromHash=function(l){return l===s?o:new r((a.call(l,0)|a.call(l,1)<<8|a.call(l,2)<<16|a.call(l,3)<<24)>>>0,(a.call(l,4)|a.call(l,5)<<8|a.call(l,6)<<16|a.call(l,7)<<24)>>>0)},r.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},r.prototype.zzEncode=function(){var l=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^l)>>>0,this.lo=(this.lo<<1^l)>>>0,this},r.prototype.zzDecode=function(){var l=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^l)>>>0,this.hi=(this.hi>>>1^l)>>>0,this},r.prototype.length=function(){var l=this.lo,f=(this.lo>>>28|this.hi<<4)>>>0,d=this.hi>>>24;return d===0?f===0?l<16384?l<128?1:2:l<2097152?3:4:f<16384?f<128?5:6:f<2097152?7:8:d<128?9:10}},{15:15}],15:[function(e,t,n){"use strict";var i=n;i.asPromise=e(1),i.base64=e(2),i.EventEmitter=e(3),i.float=e(4),i.inquire=e(5),i.utf8=e(7),i.pool=e(6),i.LongBits=e(14),i.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node),i.global=i.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(a){return typeof a=="number"&&isFinite(a)&&Math.floor(a)===a},i.isString=function(a){return typeof a=="string"||a instanceof String},i.isObject=function(a){return a&&typeof a=="object"},i.isset=i.isSet=function(a,c){var l=a[c];return l!=null&&a.hasOwnProperty(c)?typeof l!="object"||(Array.isArray(l)?l.length:Object.keys(l).length)>0:!1},i.Buffer=function(){try{var s=i.inquire("buffer").Buffer;return s.prototype.utf8Write?s:null}catch{return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(a){return typeof a=="number"?i.Buffer?i._Buffer_allocUnsafe(a):new i.Array(a):i.Buffer?i._Buffer_from(a):typeof Uint8Array>"u"?a:new Uint8Array(a)},i.Array=typeof Uint8Array<"u"?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(a){return a?i.LongBits.from(a).toHash():i.LongBits.zeroHash},i.longFromHash=function(a,c){var l=i.LongBits.fromHash(a);return i.Long?i.Long.fromBits(l.lo,l.hi,c):l.toNumber(!!c)};function r(s,a,c){for(var l=Object.keys(a),f=0;f<l.length;++f)(s[l[f]]===undefined||!c)&&(s[l[f]]=a[l[f]]);return s}i.merge=r,i.lcFirst=function(a){return a.charAt(0).toLowerCase()+a.substring(1)};function o(s){function a(c,l){if(!(this instanceof a))return new a(c,l);Object.defineProperty(this,"message",{get:function(){return c}}),Error.captureStackTrace?Error.captureStackTrace(this,a):Object.defineProperty(this,"stack",{value:new Error().stack||""}),l&&r(this,l)}return a.prototype=Object.create(Error.prototype,{constructor:{value:a,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return s},set:undefined,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),a}i.newError=o,i.ProtocolError=o("ProtocolError"),i.oneOfGetter=function(a){for(var c={},l=0;l<a.length;++l)c[a[l]]=1;return function(){for(var f=Object.keys(this),d=f.length-1;d>-1;--d)if(c[f[d]]===1&&this[f[d]]!==undefined&&this[f[d]]!==null)return f[d]}},i.oneOfSetter=function(a){return function(c){for(var l=0;l<a.length;++l)a[l]!==c&&delete this[a[l]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var s=i.Buffer;if(!s){i._Buffer_from=i._Buffer_allocUnsafe=null;return}i._Buffer_from=s.from!==Uint8Array.from&&s.from||function(c,l){return new s(c,l)},i._Buffer_allocUnsafe=s.allocUnsafe||function(c){return new s(c)}}},{1:1,14:14,2:2,3:3,4:4,5:5,6:6,7:7}],16:[function(e,t,n){"use strict";t.exports=d;var i=e(15),r,o=i.LongBits,s=i.base64,a=i.utf8;function c(E,S,v){this.fn=E,this.len=S,this.next=undefined,this.val=v}function l(){}function f(E){this.head=E.head,this.tail=E.tail,this.len=E.len,this.next=E.states}function d(){this.len=0,this.head=new c(l,0,0),this.tail=this.head,this.states=null}var p=function(){return i.Buffer?function(){return(d.create=function(){return new r})()}:function(){return new d}};d.create=p(),d.alloc=function(S){return new i.Array(S)},i.Array!==Array&&(d.alloc=i.pool(d.alloc,i.Array.prototype.subarray)),d.prototype._push=function(S,v,D){return this.tail=this.tail.next=new c(S,v,D),this.len+=v,this};function g(E,S,v){S[v]=E&255}function m(E,S,v){for(;E>127;)S[v++]=E&127|128,E>>>=7;S[v]=E}function A(E,S){this.len=E,this.next=undefined,this.val=S}A.prototype=Object.create(c.prototype),A.prototype.fn=m,d.prototype.uint32=function(S){return this.len+=(this.tail=this.tail.next=new A((S=S>>>0)<128?1:S<16384?2:S<2097152?3:S<268435456?4:5,S)).len,this},d.prototype.int32=function(S){return S<0?this._push(x,10,o.fromNumber(S)):this.uint32(S)},d.prototype.sint32=function(S){return this.uint32((S<<1^S>>31)>>>0)};function x(E,S,v){for(;E.hi;)S[v++]=E.lo&127|128,E.lo=(E.lo>>>7|E.hi<<25)>>>0,E.hi>>>=7;for(;E.lo>127;)S[v++]=E.lo&127|128,E.lo=E.lo>>>7;S[v++]=E.lo}d.prototype.uint64=function(S){var v=o.from(S);return this._push(x,v.length(),v)},d.prototype.int64=d.prototype.uint64,d.prototype.sint64=function(S){var v=o.from(S).zzEncode();return this._push(x,v.length(),v)},d.prototype.bool=function(S){return this._push(g,1,S?1:0)};function C(E,S,v){S[v]=E&255,S[v+1]=E>>>8&255,S[v+2]=E>>>16&255,S[v+3]=E>>>24}d.prototype.fixed32=function(S){return this._push(C,4,S>>>0)},d.prototype.sfixed32=d.prototype.fixed32,d.prototype.fixed64=function(S){var v=o.from(S);return this._push(C,4,v.lo)._push(C,4,v.hi)},d.prototype.sfixed64=d.prototype.fixed64,d.prototype.float=function(S){return this._push(i.float.writeFloatLE,4,S)},d.prototype.double=function(S){return this._push(i.float.writeDoubleLE,8,S)};var T=i.Array.prototype.set?function(S,v,D){v.set(S,D)}:function(S,v,D){for(var M=0;M<S.length;++M)v[D+M]=S[M]};d.prototype.bytes=function(S){var v=S.length>>>0;if(!v)return this._push(g,1,0);if(i.isString(S)){var D=d.alloc(v=s.length(S));s.decode(S,D,0),S=D}return this.uint32(v)._push(T,v,S)},d.prototype.string=function(S){var v=a.length(S);return v?this.uint32(v)._push(a.write,v,S):this._push(g,1,0)},d.prototype.fork=function(){return this.states=new f(this),this.head=this.tail=new c(l,0,0),this.len=0,this},d.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(l,0,0),this.len=0),this},d.prototype.ldelim=function(){var S=this.head,v=this.tail,D=this.len;return this.reset().uint32(D),D&&(this.tail.next=S.next,this.tail=v,this.len+=D),this},d.prototype.finish=function(){for(var S=this.head.next,v=this.constructor.alloc(this.len),D=0;S;)S.fn(S.val,v,D),D+=S.len,S=S.next;return v},d._configure=function(E){r=E,d.create=p(),r._configure()}},{15:15}],17:[function(e,t,n){"use strict";t.exports=o;var i=e(16);(o.prototype=Object.create(i.prototype)).constructor=o;var r=e(15);function o(){i.call(this)}o._configure=function(){o.alloc=r._Buffer_allocUnsafe,o.writeBytesBuffer=r.Buffer&&r.Buffer.prototype instanceof Uint8Array&&r.Buffer.prototype.set.name==="set"?function(c,l,f){l.set(c,f)}:function(c,l,f){if(c.copy)c.copy(l,f,0,c.length);else for(var d=0;d<c.length;)l[f++]=c[d++]}},o.prototype.bytes=function(c){r.isString(c)&&(c=r._Buffer_from(c,"base64"));var l=c.length>>>0;return this.uint32(l),l&&this._push(o.writeBytesBuffer,l,c),this};function s(a,c,l){a.length<40?r.utf8.write(a,c,l):c.utf8Write?c.utf8Write(a,l):c.write(a,l)}o.prototype.string=function(c){var l=r.Buffer.byteLength(c);return this.uint32(l),l&&this._push(s,l,c),this},o._configure()},{15:15,16:16}]},{},[8])})()});var rAe=Jn((Sxi,sH)=>{/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var e=function(){var r={};r.defaultNoDataValue=-34027999387901484e22,r.decode=function(f,d){d=d||{};var p=d.encodedMaskData||d.encodedMaskData===null,g=c(f,d.inputOffset||0,p),m=d.noDataValue!==null?d.noDataValue:r.defaultNoDataValue,A=o(g,d.pixelType||Float32Array,d.encodedMaskData,m,d.returnMask),x={width:g.width,height:g.height,pixelData:A.resultPixels,minValue:A.minValue,maxValue:g.pixels.maxValue,noDataValue:m};return A.resultMask&&(x.maskData=A.resultMask),d.returnEncodedMask&&g.mask&&(x.encodedMaskData=g.mask.bitset?g.mask.bitset:null),d.returnFileInfo&&(x.fileInfo=s(g),d.computeUsedBitDepths&&(x.fileInfo.bitDepths=a(g))),x};var o=function(f,d,p,g,m){var A=0,x=f.pixels.numBlocksX,C=f.pixels.numBlocksY,T=Math.floor(f.width/x),E=Math.floor(f.height/C),S=2*f.maxZError,v=Number.MAX_VALUE,D;p=p||(f.mask?f.mask.bitset:null);var M,O;M=new d(f.width*f.height),m&&p&&(O=new Uint8Array(f.width*f.height));for(var B=new Float32Array(T*E),L,_,b=0;b<=C;b++){var w=b!==C?E:f.height%C;if(w!==0)for(var I=0;I<=x;I++){var R=I!==x?T:f.width%x;if(R!==0){var F=b*f.width*E+I*T,k=f.width-R,V=f.pixels.blocks[A],G,U,Y;V.encoding<2?(V.encoding===0?G=V.rawData:(l(V.stuffedData,V.bitsPerPixel,V.numValidPixels,V.offset,S,B,f.pixels.maxValue),G=B),U=0):V.encoding===2?Y=0:Y=V.offset;var W;if(p)for(_=0;_<w;_++){for(F&7&&(W=p[F>>3],W<<=F&7),L=0;L<R;L++)F&7||(W=p[F>>3]),W&128?(O&&(O[F]=1),D=V.encoding<2?G[U++]:Y,v=v>D?D:v,M[F++]=D):(O&&(O[F]=0),M[F++]=g),W<<=1;F+=k}else if(V.encoding<2)for(_=0;_<w;_++){for(L=0;L<R;L++)D=G[U++],v=v>D?D:v,M[F++]=D;F+=k}else for(v=v>Y?Y:v,_=0;_<w;_++){for(L=0;L<R;L++)M[F++]=Y;F+=k}if(V.encoding===1&&U!==V.numValidPixels)throw"Block and Mask do not match";A++}}}return{resultPixels:M,resultMask:O,minValue:v}},s=function(f){return{fileIdentifierString:f.fileIdentifierString,fileVersion:f.fileVersion,imageType:f.imageType,height:f.height,width:f.width,maxZError:f.maxZError,eofOffset:f.eofOffset,mask:f.mask?{numBlocksX:f.mask.numBlocksX,numBlocksY:f.mask.numBlocksY,numBytes:f.mask.numBytes,maxValue:f.mask.maxValue}:null,pixels:{numBlocksX:f.pixels.numBlocksX,numBlocksY:f.pixels.numBlocksY,numBytes:f.pixels.numBytes,maxValue:f.pixels.maxValue,noDataValue:f.noDataValue}}},a=function(f){for(var d=f.pixels.numBlocksX*f.pixels.numBlocksY,p={},g=0;g<d;g++){var m=f.pixels.blocks[g];m.encoding===0?p.float32=!0:m.encoding===1?p[m.bitsPerPixel]=!0:p[0]=!0}return Object.keys(p)},c=function(f,d,p){var g={},m=new Uint8Array(f,d,10);if(g.fileIdentifierString=String.fromCharCode.apply(null,m),g.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+g.fileIdentifierString;d+=10;var A=new DataView(f,d,24);if(g.fileVersion=A.getInt32(0,!0),g.imageType=A.getInt32(4,!0),g.height=A.getUint32(8,!0),g.width=A.getUint32(12,!0),g.maxZError=A.getFloat64(16,!0),d+=24,!p)if(A=new DataView(f,d,16),g.mask={},g.mask.numBlocksY=A.getUint32(0,!0),g.mask.numBlocksX=A.getUint32(4,!0),g.mask.numBytes=A.getUint32(8,!0),g.mask.maxValue=A.getFloat32(12,!0),d+=16,g.mask.numBytes>0){var x=new Uint8Array(Math.ceil(g.width*g.height/8));A=new DataView(f,d,g.mask.numBytes);var C=A.getInt16(0,!0),T=2,E=0;do{if(C>0)for(;C--;)x[E++]=A.getUint8(T++);else{var S=A.getUint8(T++);for(C=-C;C--;)x[E++]=S}C=A.getInt16(T,!0),T+=2}while(T<g.mask.numBytes);if(C!==-32768||E<x.length)throw"Unexpected end of mask RLE encoding";g.mask.bitset=x,d+=g.mask.numBytes}else g.mask.numBytes|g.mask.numBlocksY|g.mask.maxValue||(g.mask.bitset=new Uint8Array(Math.ceil(g.width*g.height/8)));A=new DataView(f,d,16),g.pixels={},g.pixels.numBlocksY=A.getUint32(0,!0),g.pixels.numBlocksX=A.getUint32(4,!0),g.pixels.numBytes=A.getUint32(8,!0),g.pixels.maxValue=A.getFloat32(12,!0),d+=16;var v=g.pixels.numBlocksX,D=g.pixels.numBlocksY,M=v+(g.width%v>0?1:0),O=D+(g.height%D>0?1:0);g.pixels.blocks=new Array(M*O);for(var B=0,L=0;L<O;L++)for(var _=0;_<M;_++){var b=0,w=f.byteLength-d;A=new DataView(f,d,Math.min(10,w));var I={};g.pixels.blocks[B++]=I;var R=A.getUint8(0);if(b++,I.encoding=R&63,I.encoding>3)throw"Invalid block encoding ("+I.encoding+")";if(I.encoding===2){d++;continue}if(R!==0&&R!==2){if(R>>=6,I.offsetType=R,R===2)I.offset=A.getInt8(1),b++;else if(R===1)I.offset=A.getInt16(1,!0),b+=2;else if(R===0)I.offset=A.getFloat32(1,!0),b+=4;else throw"Invalid block offset type";if(I.encoding===1)if(R=A.getUint8(b),b++,I.bitsPerPixel=R&63,R>>=6,I.numValidPixelsType=R,R===2)I.numValidPixels=A.getUint8(b),b++;else if(R===1)I.numValidPixels=A.getUint16(b,!0),b+=2;else if(R===0)I.numValidPixels=A.getUint32(b,!0),b+=4;else throw"Invalid valid pixel count type"}if(d+=b,I.encoding!==3){var F,k;if(I.encoding===0){var V=(g.pixels.numBytes-1)/4;if(V!==Math.floor(V))throw"uncompressed block has invalid length";F=new ArrayBuffer(V*4),k=new Uint8Array(F),k.set(new Uint8Array(f,d,V*4));var G=new Float32Array(F);I.rawData=G,d+=V*4}else if(I.encoding===1){var U=Math.ceil(I.numValidPixels*I.bitsPerPixel/8),Y=Math.ceil(U/4);F=new ArrayBuffer(Y*4),k=new Uint8Array(F),k.set(new Uint8Array(f,d,U)),I.stuffedData=new Uint32Array(F),d+=U}}}return g.eofOffset=d,g},l=function(f,d,p,g,m,A,x){var C=(1<<d)-1,T=0,E,S=0,v,D,M=Math.ceil((x-g)/m),O=f.length*4-Math.ceil(d*p/8);for(f[f.length-1]<<=8*O,E=0;E<p;E++){if(S===0&&(D=f[T++],S=32),S>=d)v=D>>>S-d&C,S-=d;else{var B=d-S;v=(D&C)<<B&C,D=f[T++],S=32-B,v+=D>>>S}A[E]=v<M?g+v*m:x}return A};return r}(),t=function(){"use strict";var r={unstuff:function(c,l,f,d,p,g,m,A){var x=(1<<f)-1,C=0,T,E=0,S,v,D,M,O=c.length*4-Math.ceil(f*d/8);if(c[c.length-1]<<=8*O,p)for(T=0;T<d;T++)E===0&&(v=c[C++],E=32),E>=f?(S=v>>>E-f&x,E-=f):(D=f-E,S=(v&x)<<D&x,v=c[C++],E=32-D,S+=v>>>E),l[T]=p[S];else for(M=Math.ceil((A-g)/m),T=0;T<d;T++)E===0&&(v=c[C++],E=32),E>=f?(S=v>>>E-f&x,E-=f):(D=f-E,S=(v&x)<<D&x,v=c[C++],E=32-D,S+=v>>>E),l[T]=S<M?g+S*m:A},unstuffLUT:function(c,l,f,d,p,g){var m=(1<<l)-1,A=0,x=0,C=0,T=0,E=0,S,v=[],D=c.length*4-Math.ceil(l*f/8);c[c.length-1]<<=8*D;var M=Math.ceil((g-d)/p);for(x=0;x<f;x++)T===0&&(S=c[A++],T=32),T>=l?(E=S>>>T-l&m,T-=l):(C=l-T,E=(S&m)<<C&m,S=c[A++],T=32-C,E+=S>>>T),v[x]=E<M?d+E*p:g;return v.unshift(d),v},unstuff2:function(c,l,f,d,p,g,m,A){var x=(1<<f)-1,C=0,T,E=0,S=0,v,D,M;if(p)for(T=0;T<d;T++)E===0&&(D=c[C++],E=32,S=0),E>=f?(v=D>>>S&x,E-=f,S+=f):(M=f-E,v=D>>>S&x,D=c[C++],E=32-M,v|=(D&(1<<M)-1)<<f-M,S=M),l[T]=p[v];else{var O=Math.ceil((A-g)/m);for(T=0;T<d;T++)E===0&&(D=c[C++],E=32,S=0),E>=f?(v=D>>>S&x,E-=f,S+=f):(M=f-E,v=D>>>S&x,D=c[C++],E=32-M,v|=(D&(1<<M)-1)<<f-M,S=M),l[T]=v<O?g+v*m:A}return l},unstuffLUT2:function(c,l,f,d,p,g){var m=(1<<l)-1,A=0,x=0,C=0,T=0,E=0,S=0,v,D=[],M=Math.ceil((g-d)/p);for(x=0;x<f;x++)T===0&&(v=c[A++],T=32,S=0),T>=l?(E=v>>>S&m,T-=l,S+=l):(C=l-T,E=v>>>S&m,v=c[A++],T=32-C,E|=(v&(1<<C)-1)<<l-C,S=C),D[x]=E<M?d+E*p:g;return D.unshift(d),D},originalUnstuff:function(c,l,f,d){var p=(1<<f)-1,g=0,m,A=0,x,C,T,E=c.length*4-Math.ceil(f*d/8);for(c[c.length-1]<<=8*E,m=0;m<d;m++)A===0&&(C=c[g++],A=32),A>=f?(x=C>>>A-f&p,A-=f):(T=f-A,x=(C&p)<<T&p,C=c[g++],A=32-T,x+=C>>>A),l[m]=x;return l},originalUnstuff2:function(c,l,f,d){var p=(1<<f)-1,g=0,m,A=0,x=0,C,T,E;for(m=0;m<d;m++)A===0&&(T=c[g++],A=32,x=0),A>=f?(C=T>>>x&p,A-=f,x+=f):(E=f-A,C=T>>>x&p,T=c[g++],A=32-E,C|=(T&(1<<E)-1)<<f-E,x=E),l[m]=C;return l}},o={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(c){for(var l=65535,f=65535,d=c.length,p=Math.floor(d/2),g=0;p;){var m=p>=359?359:p;p-=m;do l+=c[g++]<<8,f+=l+=c[g++];while(--m);l=(l&65535)+(l>>>16),f=(f&65535)+(f>>>16)}return d&1&&(f+=l+=c[g]<<8),l=(l&65535)+(l>>>16),f=(f&65535)+(f>>>16),(f<<16|l)>>>0},readHeaderInfo:function(c,l){var f=l.ptr,d=new Uint8Array(c,f,6),p={};if(p.fileIdentifierString=String.fromCharCode.apply(null,d),p.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+p.fileIdentifierString;f+=6;var g=new DataView(c,f,8),m=g.getInt32(0,!0);p.fileVersion=m,f+=4,m>=3&&(p.checksum=g.getUint32(4,!0),f+=4),g=new DataView(c,f,12),p.height=g.getUint32(0,!0),p.width=g.getUint32(4,!0),f+=8,m>=4?(p.numDims=g.getUint32(8,!0),f+=4):p.numDims=1,g=new DataView(c,f,40),p.numValidPixel=g.getUint32(0,!0),p.microBlockSize=g.getInt32(4,!0),p.blobSize=g.getInt32(8,!0),p.imageType=g.getInt32(12,!0),p.maxZError=g.getFloat64(16,!0),p.zMin=g.getFloat64(24,!0),p.zMax=g.getFloat64(32,!0),f+=40,l.headerInfo=p,l.ptr=f;var A,x;if(m>=3&&(x=m>=4?52:48,A=this.computeChecksumFletcher32(new Uint8Array(c,f-x,p.blobSize-14)),A!==p.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(c,l){var f=l.headerInfo,d=this.getDataTypeArray(f.imageType),p=f.numDims*this.getDataTypeSize(f.imageType),g=this.readSubArray(c,l.ptr,d,p),m=this.readSubArray(c,l.ptr+p,d,p);l.ptr+=2*p;var A,x=!0;for(A=0;A<f.numDims;A++)if(g[A]!==m[A]){x=!1;break}return f.minValues=g,f.maxValues=m,x},readSubArray:function(c,l,f,d){var p;if(f===Uint8Array)p=new Uint8Array(c,l,d);else{var g=new ArrayBuffer(d),m=new Uint8Array(g);m.set(new Uint8Array(c,l,d)),p=new f(g)}return p},readMask:function(c,l){var f=l.ptr,d=l.headerInfo,p=d.width*d.height,g=d.numValidPixel,m=new DataView(c,f,4),A={};if(A.numBytes=m.getUint32(0,!0),f+=4,(g===0||p===g)&&A.numBytes!==0)throw"invalid mask";var x,C;if(g===0)x=new Uint8Array(Math.ceil(p/8)),A.bitset=x,C=new Uint8Array(p),l.pixels.resultMask=C,f+=A.numBytes;else if(A.numBytes>0){x=new Uint8Array(Math.ceil(p/8)),m=new DataView(c,f,A.numBytes);var T=m.getInt16(0,!0),E=2,S=0,v=0;do{if(T>0)for(;T--;)x[S++]=m.getUint8(E++);else for(v=m.getUint8(E++),T=-T;T--;)x[S++]=v;T=m.getInt16(E,!0),E+=2}while(E<A.numBytes);if(T!==-32768||S<x.length)throw"Unexpected end of mask RLE encoding";C=new Uint8Array(p);var D=0,M=0;for(M=0;M<p;M++)M&7?(D=x[M>>3],D<<=M&7):D=x[M>>3],D&128&&(C[M]=1);l.pixels.resultMask=C,A.bitset=x,f+=A.numBytes}return l.ptr=f,l.mask=A,!0},readDataOneSweep:function(c,l,f){var d=l.ptr,p=l.headerInfo,g=p.numDims,m=p.width*p.height,A=p.imageType,x=p.numValidPixel*o.getDataTypeSize(A)*g,C,T=l.pixels.resultMask;if(f===Uint8Array)C=new Uint8Array(c,d,x);else{var E=new ArrayBuffer(x),S=new Uint8Array(E);S.set(new Uint8Array(c,d,x)),C=new f(E)}if(C.length===m*g)l.pixels.resultPixels=C;else{l.pixels.resultPixels=new f(m*g);var v=0,D=0,M=0,O=0;if(g>1)for(M=0;M<g;M++)for(O=M*m,D=0;D<m;D++)T[D]&&(l.pixels.resultPixels[O+D]=C[v++]);else for(D=0;D<m;D++)T[D]&&(l.pixels.resultPixels[D]=C[v++])}return d+=x,l.ptr=d,!0},readHuffmanTree:function(c,l){var f=this.HUFFMAN_LUT_BITS_MAX,d=new DataView(c,l.ptr,16);l.ptr+=16;var p=d.getInt32(0,!0);if(p<2)throw"unsupported Huffman version";var g=d.getInt32(4,!0),m=d.getInt32(8,!0),A=d.getInt32(12,!0);if(m>=A)return!1;var x=new Uint32Array(A-m);o.decodeBits(c,l,x);var C=[],T,E,S,v;for(T=m;T<A;T++)E=T-(T<g?0:g),C[E]={first:x[T-m],second:null};var D=c.byteLength-l.ptr,M=Math.ceil(D/4),O=new ArrayBuffer(M*4),B=new Uint8Array(O);B.set(new Uint8Array(c,l.ptr,D));var L=new Uint32Array(O),_=0,b,w=0;for(b=L[0],T=m;T<A;T++)E=T-(T<g?0:g),v=C[E].first,v>0&&(C[E].second=b<<_>>>32-v,32-_>=v?(_+=v,_===32&&(_=0,w++,b=L[w])):(_+=v-32,w++,b=L[w],C[E].second|=b>>>32-_));var I=0,R=0,F=new s;for(T=0;T<C.length;T++)C[T]!==void 0&&(I=Math.max(I,C[T].first));I>=f?R=f:R=I,I>=30&&console.log("WARning, large NUM LUT BITS IS "+I);var k=[],V,G,U,Y,W,Z;for(T=m;T<A;T++)if(E=T-(T<g?0:g),v=C[E].first,v>0)if(V=[v,E],v<=R)for(G=C[E].second<<R-v,U=1<<R-v,S=0;S<U;S++)k[G|S]=V;else for(G=C[E].second,Z=F,Y=v-1;Y>=0;Y--)W=G>>>Y&1,W?(Z.right||(Z.right=new s),Z=Z.right):(Z.left||(Z.left=new s),Z=Z.left),Y===0&&!Z.val&&(Z.val=V[1]);return{decodeLut:k,numBitsLUTQick:R,numBitsLUT:I,tree:F,stuffedData:L,srcPtr:w,bitPos:_}},readHuffman:function(c,l,f){var d=l.headerInfo,p=d.numDims,g=l.headerInfo.height,m=l.headerInfo.width,A=m*g,x=this.readHuffmanTree(c,l),C=x.decodeLut,T=x.tree,E=x.stuffedData,S=x.srcPtr,v=x.bitPos,D=x.numBitsLUTQick,M=x.numBitsLUT,O=l.headerInfo.imageType===0?128:0,B,L,_,b=l.pixels.resultMask,w,I,R,F,k,V,G,U=0;v>0&&(S++,v=0);var Y=E[S],W=l.encodeMode===1,Z=new f(A*p),j=Z,K;for(K=0;K<d.numDims;K++){if(p>1&&(j=new f(Z.buffer,A*K,A),U=0),l.headerInfo.numValidPixel===m*g)for(V=0,F=0;F<g;F++)for(k=0;k<m;k++,V++){if(L=0,w=Y<<v>>>32-D,I=w,32-v<D&&(w|=E[S+1]>>>64-v-D,I=w),C[I])L=C[I][1],v+=C[I][0];else for(w=Y<<v>>>32-M,I=w,32-v<M&&(w|=E[S+1]>>>64-v-M,I=w),B=T,G=0;G<M;G++)if(R=w>>>M-G-1&1,B=R?B.right:B.left,!(B.left||B.right)){L=B.val,v=v+G+1;break}v>=32&&(v-=32,S++,Y=E[S]),_=L-O,W?(k>0?_+=U:F>0?_+=j[V-m]:_+=U,_&=255,j[V]=_,U=_):j[V]=_}else for(V=0,F=0;F<g;F++)for(k=0;k<m;k++,V++)if(b[V]){if(L=0,w=Y<<v>>>32-D,I=w,32-v<D&&(w|=E[S+1]>>>64-v-D,I=w),C[I])L=C[I][1],v+=C[I][0];else for(w=Y<<v>>>32-M,I=w,32-v<M&&(w|=E[S+1]>>>64-v-M,I=w),B=T,G=0;G<M;G++)if(R=w>>>M-G-1&1,B=R?B.right:B.left,!(B.left||B.right)){L=B.val,v=v+G+1;break}v>=32&&(v-=32,S++,Y=E[S]),_=L-O,W?(k>0&&b[V-1]?_+=U:F>0&&b[V-m]?_+=j[V-m]:_+=U,_&=255,j[V]=_,U=_):j[V]=_}l.ptr=l.ptr+(S+1)*4+(v>0?4:0)}l.pixels.resultPixels=Z},decodeBits:function(c,l,f,d,p){{var g=l.headerInfo,m=g.fileVersion,A=0,x=new DataView(c,l.ptr,5),C=x.getUint8(0);A++;var T=C>>6,E=T===0?4:3-T,S=(C&32)>0,v=C&31,D=0;if(E===1)D=x.getUint8(A),A++;else if(E===2)D=x.getUint16(A,!0),A+=2;else if(E===4)D=x.getUint32(A,!0),A+=4;else throw"Invalid valid pixel count type";var M=2*g.maxZError,O,B,L,_,b,w,I,R,F,k,V=g.numDims>1?g.maxValues[p]:g.zMax;if(S){for(l.counter.lut++,R=x.getUint8(A),F=v,A++,_=Math.ceil((R-1)*v/8),b=Math.ceil(_/4),B=new ArrayBuffer(b*4),L=new Uint8Array(B),l.ptr+=A,L.set(new Uint8Array(c,l.ptr,_)),I=new Uint32Array(B),l.ptr+=_,k=0;R-1>>>k;)k++;_=Math.ceil(D*k/8),b=Math.ceil(_/4),B=new ArrayBuffer(b*4),L=new Uint8Array(B),L.set(new Uint8Array(c,l.ptr,_)),O=new Uint32Array(B),l.ptr+=_,m>=3?w=r.unstuffLUT2(I,v,R-1,d,M,V):w=r.unstuffLUT(I,v,R-1,d,M,V),m>=3?r.unstuff2(O,f,k,D,w):r.unstuff(O,f,k,D,w)}else l.counter.bitstuffer++,k=v,l.ptr+=A,k>0&&(_=Math.ceil(D*k/8),b=Math.ceil(_/4),B=new ArrayBuffer(b*4),L=new Uint8Array(B),L.set(new Uint8Array(c,l.ptr,_)),O=new Uint32Array(B),l.ptr+=_,m>=3?d==null?r.originalUnstuff2(O,f,k,D):r.unstuff2(O,f,k,D,!1,d,M,V):d==null?r.originalUnstuff(O,f,k,D):r.unstuff(O,f,k,D,!1,d,M,V))}},readTiles:function(c,l,f){var d=l.headerInfo,p=d.width,g=d.height,m=d.microBlockSize,A=d.imageType,x=o.getDataTypeSize(A),C=Math.ceil(p/m),T=Math.ceil(g/m);l.pixels.numBlocksY=T,l.pixels.numBlocksX=C,l.pixels.ptr=0;var E=0,S=0,v=0,D=0,M=0,O=0,B=0,L=0,_=0,b=0,w=0,I=0,R=0,F=0,k=0,V=0,G,U,Y,W,Z,j,K=new f(m*m),J=g%m||m,_e=p%m||m,xe,oe,Ae=d.numDims,he,Se=l.pixels.resultMask,Ie=l.pixels.resultPixels;for(v=0;v<T;v++)for(M=v!==T-1?m:J,D=0;D<C;D++)for(O=D!==C-1?m:_e,w=v*p*m+D*m,I=p-O,he=0;he<Ae;he++){if(Ae>1&&(Ie=new f(l.pixels.resultPixels.buffer,p*g*he*x,p*g)),B=c.byteLength-l.ptr,G=new DataView(c,l.ptr,Math.min(10,B)),U={},V=0,L=G.getUint8(0),V++,_=L>>6&255,b=L>>2&15,b!==(D*m>>3&15))throw"integrity issue";if(j=L&3,j>3)throw l.ptr+=V,"Invalid block encoding ("+j+")";if(j===2){l.counter.constant++,l.ptr+=V;continue}else if(j===0){if(l.counter.uncompressed++,l.ptr+=V,R=M*O*x,F=c.byteLength-l.ptr,R=R<F?R:F,Y=new ArrayBuffer(R%x===0?R:R+x-R%x),W=new Uint8Array(Y),W.set(new Uint8Array(c,l.ptr,R)),Z=new f(Y),k=0,Se)for(E=0;E<M;E++){for(S=0;S<O;S++)Se[w]&&(Ie[w]=Z[k++]),w++;w+=I}else for(E=0;E<M;E++){for(S=0;S<O;S++)Ie[w++]=Z[k++];w+=I}l.ptr+=k*x}else if(xe=o.getDataTypeUsed(A,_),oe=o.getOnePixel(U,V,xe,G),V+=o.getDataTypeSize(xe),j===3)if(l.ptr+=V,l.counter.constantoffset++,Se)for(E=0;E<M;E++){for(S=0;S<O;S++)Se[w]&&(Ie[w]=oe),w++;w+=I}else for(E=0;E<M;E++){for(S=0;S<O;S++)Ie[w++]=oe;w+=I}else if(l.ptr+=V,o.decodeBits(c,l,K,oe,he),V=0,Se)for(E=0;E<M;E++){for(S=0;S<O;S++)Se[w]&&(Ie[w]=K[V++]),w++;w+=I}else for(E=0;E<M;E++){for(S=0;S<O;S++)Ie[w++]=K[V++];w+=I}}},formatFileInfo:function(c){return{fileIdentifierString:c.headerInfo.fileIdentifierString,fileVersion:c.headerInfo.fileVersion,imageType:c.headerInfo.imageType,height:c.headerInfo.height,width:c.headerInfo.width,numValidPixel:c.headerInfo.numValidPixel,microBlockSize:c.headerInfo.microBlockSize,blobSize:c.headerInfo.blobSize,maxZError:c.headerInfo.maxZError,pixelType:o.getPixelType(c.headerInfo.imageType),eofOffset:c.eofOffset,mask:c.mask?{numBytes:c.mask.numBytes}:null,pixels:{numBlocksX:c.pixels.numBlocksX,numBlocksY:c.pixels.numBlocksY,maxValue:c.headerInfo.zMax,minValue:c.headerInfo.zMin,noDataValue:c.noDataValue}}},constructConstantSurface:function(c){var l=c.headerInfo.zMax,f=c.headerInfo.numDims,d=c.headerInfo.height*c.headerInfo.width,p=d*f,g=0,m=0,A=0,x=c.pixels.resultMask;if(x)if(f>1)for(g=0;g<f;g++)for(A=g*d,m=0;m<d;m++)x[m]&&(c.pixels.resultPixels[A+m]=l);else for(m=0;m<d;m++)x[m]&&(c.pixels.resultPixels[m]=l);else if(c.pixels.resultPixels.fill)c.pixels.resultPixels.fill(l);else for(m=0;m<p;m++)c.pixels.resultPixels[m]=l},getDataTypeArray:function(c){var l;switch(c){case 0:l=Int8Array;break;case 1:l=Uint8Array;break;case 2:l=Int16Array;break;case 3:l=Uint16Array;break;case 4:l=Int32Array;break;case 5:l=Uint32Array;break;case 6:l=Float32Array;break;case 7:l=Float64Array;break;default:l=Float32Array}return l},getPixelType:function(c){var l;switch(c){case 0:l="S8";break;case 1:l="U8";break;case 2:l="S16";break;case 3:l="U16";break;case 4:l="S32";break;case 5:l="U32";break;case 6:l="F32";break;case 7:l="F64";break;default:l="F32"}return l},isValidPixelValue:function(c,l){if(l==null)return!1;var f;switch(c){case 0:f=l>=-128&&l<=127;break;case 1:f=l>=0&&l<=255;break;case 2:f=l>=-32768&&l<=32767;break;case 3:f=l>=0&&l<=65536;break;case 4:f=l>=-2147483648&&l<=2147483647;break;case 5:f=l>=0&&l<=4294967296;break;case 6:f=l>=-34027999387901484e22&&l<=34027999387901484e22;break;case 7:f=l>=5e-324&&l<=17976931348623157e292;break;default:f=!1}return f},getDataTypeSize:function(c){var l=0;switch(c){case 0:case 1:l=1;break;case 2:case 3:l=2;break;case 4:case 5:case 6:l=4;break;case 7:l=8;break;default:l=c}return l},getDataTypeUsed:function(c,l){var f=c;switch(c){case 2:case 4:f=c-l;break;case 3:case 5:f=c-2*l;break;case 6:l===0?f=c:l===1?f=2:f=1;break;case 7:l===0?f=c:f=c-2*l+1;break;default:f=c;break}return f},getOnePixel:function(c,l,f,d){var p=0;switch(f){case 0:p=d.getInt8(l);break;case 1:p=d.getUint8(l);break;case 2:p=d.getInt16(l,!0);break;case 3:p=d.getUint16(l,!0);break;case 4:p=d.getInt32(l,!0);break;case 5:p=d.getUInt32(l,!0);break;case 6:p=d.getFloat32(l,!0);break;case 7:p=d.getFloat64(l,!0);break;default:throw"the decoder does not understand this pixel type"}return p}},s=function(c,l,f){this.val=c,this.left=l,this.right=f},a={decode:function(c,l){l=l||{};var f=l.noDataValue,d=0,p={};if(p.ptr=l.inputOffset||0,p.pixels={},!!o.readHeaderInfo(c,p)){var g=p.headerInfo,m=g.fileVersion,A=o.getDataTypeArray(g.imageType);o.readMask(c,p),g.numValidPixel!==g.width*g.height&&!p.pixels.resultMask&&(p.pixels.resultMask=l.maskData);var x=g.width*g.height;if(p.pixels.resultPixels=new A(x*g.numDims),p.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},g.numValidPixel!==0)if(g.zMax===g.zMin)o.constructConstantSurface(p);else if(m>=4&&o.checkMinMaxRanges(c,p))o.constructConstantSurface(p);else{var C=new DataView(c,p.ptr,2),T=C.getUint8(0);if(p.ptr++,T)o.readDataOneSweep(c,p,A);else if(m>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var E=C.getUint8(1);if(p.ptr++,p.encodeMode=E,E>2||m<4&&E>1)throw"Invalid Huffman flag "+E;E?o.readHuffman(c,p,A):o.readTiles(c,p,A)}else o.readTiles(c,p,A)}p.eofOffset=p.ptr;var S;l.inputOffset?(S=p.headerInfo.blobSize+l.inputOffset-p.ptr,Math.abs(S)>=1&&(p.eofOffset=l.inputOffset+p.headerInfo.blobSize)):(S=p.headerInfo.blobSize-p.ptr,Math.abs(S)>=1&&(p.eofOffset=p.headerInfo.blobSize));var v={width:g.width,height:g.height,pixelData:p.pixels.resultPixels,minValue:g.zMin,maxValue:g.zMax,validPixelCount:g.numValidPixel,dimCount:g.numDims,dimStats:{minValues:g.minValues,maxValues:g.maxValues},maskData:p.pixels.resultMask};if(p.pixels.resultMask&&o.isValidPixelValue(g.imageType,f)){var D=p.pixels.resultMask;for(d=0;d<x;d++)D[d]||(v.pixelData[d]=f);v.noDataValue=f}return p.noDataValue=f,l.returnFileInfo&&(v.fileInfo=o.formatFileInfo(p)),v}},getBandCount:function(c){var l=0,f=0,d={};for(d.ptr=0,d.pixels={};f<c.byteLength-58;)o.readHeaderInfo(c,d),f+=d.headerInfo.blobSize,l++,d.ptr=f;return l}};return a}(),n=function(){var r=new ArrayBuffer(4),o=new Uint8Array(r),s=new Uint32Array(r);return s[0]=1,o[0]===1}(),i={decode:function(r,o){if(!n)throw"Big endian system is not supported.";o=o||{};var s=o.inputOffset||0,a=new Uint8Array(r,s,10),c=String.fromCharCode.apply(null,a),l,f;if(c.trim()==="CntZImage")l=e,f=1;else if(c.substring(0,5)==="Lerc2")l=t,f=2;else throw"Unexpected file identifier string: "+c;for(var d=0,p=r.byteLength-10,g,m=[],A,x,C={width:0,height:0,pixels:[],pixelType:o.pixelType,mask:null,statistics:[]};s<p;){var T=l.decode(r,{inputOffset:s,encodedMaskData:g,maskData:x,returnMask:d===0,returnEncodedMask:d===0,returnFileInfo:!0,pixelType:o.pixelType||null,noDataValue:o.noDataValue||null});s=T.fileInfo.eofOffset,d===0&&(g=T.encodedMaskData,x=T.maskData,C.width=T.width,C.height=T.height,C.dimCount=T.dimCount||1,C.pixelType=T.pixelType||T.fileInfo.pixelType,C.mask=T.maskData),f>1&&T.fileInfo.mask&&T.fileInfo.mask.numBytes>0&&m.push(T.maskData),d++,C.pixels.push(T.pixelData),C.statistics.push({minValue:T.minValue,maxValue:T.maxValue,noDataValue:T.noDataValue,dimStats:T.dimStats})}var E,S,v;if(f>1&&m.length>1){for(v=C.width*C.height,C.bandMasks=m,x=new Uint8Array(v),x.set(m[0]),E=1;E<m.length;E++)for(A=m[E],S=0;S<v;S++)x[S]=x[S]&A[S];C.maskData=x}return C}};typeof define=="function"&&define.amd?define([],function(){return i}):typeof sH<"u"&&sH.exports?sH.exports=i:this.Lerc=i})()});var Ixe=Jn((t3,GK)=>{/*! NoSleep.min.js v0.12.0 - git.io/vfn01 - Rich Tibbett - MIT license */(function(e,t){typeof t3=="object"&&typeof GK=="object"?GK.exports=t():typeof define=="function"&&define.amd?define([],t):typeof t3=="object"?t3.NoSleep=t():e.NoSleep=t()})(t3,function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(i,r,o){n.o(i,r)||Object.defineProperty(i,r,{enumerable:!0,get:o})},n.r=function(i){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},n.t=function(i,r){if(1&r&&(i=n(i)),8&r||4&r&&typeof i=="object"&&i&&i.__esModule)return i;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:i}),2&r&&typeof i!="string")for(var s in i)n.d(o,s,function(a){return i[a]}.bind(null,s));return o},n.n=function(i){var r=i&&i.__esModule?function(){return i.default}:function(){return i};return n.d(r,"a",r),r},n.o=function(i,r){return Object.prototype.hasOwnProperty.call(i,r)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";var i=function(){function f(d,p){for(var g=0;g<p.length;g++){var m=p[g];m.enumerable=m.enumerable||!1,m.configurable=!0,"value"in m&&(m.writable=!0),Object.defineProperty(d,m.key,m)}}return function(d,p,g){return p&&f(d.prototype,p),g&&f(d,g),d}}(),r=n(1),o=r.webm,s=r.mp4,a=function(){return typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream},c=function(){return"wakeLock"in navigator},l=function(){function f(){var d=this;if(function(g,m){if(!(g instanceof m))throw new TypeError("Cannot call a class as a function")}(this,f),this.enabled=!1,c()){this._wakeLock=null;var p=function(){d._wakeLock!==null&&document.visibilityState==="visible"&&d.enable()};document.addEventListener("visibilitychange",p),document.addEventListener("fullscreenchange",p)}else a()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",o),this._addSourceToVideo(this.noSleepVideo,"mp4",s),this.noSleepVideo.addEventListener("loadedmetadata",function(){d.noSleepVideo.duration<=1?d.noSleepVideo.setAttribute("loop",""):d.noSleepVideo.addEventListener("timeupdate",function(){d.noSleepVideo.currentTime>.5&&(d.noSleepVideo.currentTime=Math.random())})}))}return i(f,[{key:"_addSourceToVideo",value:function(d,p,g){var m=document.createElement("source");m.src=g,m.type="video/"+p,d.appendChild(m)}},{key:"enable",value:function(){var d=this;return c()?navigator.wakeLock.request("screen").then(function(p){d._wakeLock=p,d.enabled=!0,console.log("Wake Lock active."),d._wakeLock.addEventListener("release",function(){console.log("Wake Lock released.")})}).catch(function(p){throw d.enabled=!1,console.error(p.name+", "+p.message),p}):a()?(this.disable(),console.warn(` + NoSleep enabled for older iOS devices. This can interrupt + active or long-running network requests from completing successfully. + See https://github.com/richtr/NoSleep.js/issues/15 for more details. + `),this.noSleepTimer=window.setInterval(function(){document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(function(p){return d.enabled=!0,p}).catch(function(p){throw d.enabled=!1,p})}},{key:"disable",value:function(){c()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):a()?this.noSleepTimer&&(console.warn(` + NoSleep now disabled for older iOS devices. + `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}},{key:"isEnabled",get:function(){return this.enabled}}]),f}();e.exports=l},function(e,t,n){"use strict";e.exports={webm:"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK",mp4:"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"}}])})});var lxt={};QK(lxt,{AlphaMode:()=>Xh,AlphaPipelineStage:()=>uO,Animation:()=>x2,AnimationViewModel:()=>C2,Appearance:()=>nr,ApproximateTerrainHeights:()=>si,ArcGISTiledElevationTerrainProvider:()=>WX,ArcGisBaseMapType:()=>hh,ArcGisMapServerImageryProvider:()=>Dm,ArcGisMapService:()=>Iu,ArcType:()=>Kt,ArticulationStageType:()=>Qa,AssociativeArray:()=>Ct,AttributeCompression:()=>qn,AttributeType:()=>on,AutoExposure:()=>wN,AutomaticUniforms:()=>Ym,Axis:()=>dr,AxisAlignedBoundingBox:()=>fg,B3dmLoader:()=>D1,B3dmParser:()=>S1,BaseLayerPicker:()=>E2,BaseLayerPickerViewModel:()=>T2,BatchTable:()=>W0,BatchTableHierarchy:()=>gA,BatchTexture:()=>Uc,BatchTexturePipelineStage:()=>fO,Billboard:()=>pr,BillboardCollection:()=>lu,BillboardGraphics:()=>Ga,BillboardVisualizer:()=>hI,BingMapsGeocoderService:()=>qX,BingMapsImageryProvider:()=>$b,BingMapsStyle:()=>Zb,BlendEquation:()=>pa,BlendFunction:()=>Sr,BlendOption:()=>vr,BlendingState:()=>un,BoundingRectangle:()=>Xe,BoundingSphere:()=>ae,BoundingSphereState:()=>lt,BoxEmitter:()=>wY,BoxGeometry:()=>fl,BoxGeometryUpdater:()=>PP,BoxGraphics:()=>iA,BoxOutlineGeometry:()=>ld,BrdfLutGenerator:()=>wL,Buffer:()=>ht,BufferLoader:()=>EA,BufferUsage:()=>Fe,CPUStylingPipelineStage:()=>pO,CallbackProperty:()=>gd,Camera:()=>fr,CameraEventAggregator:()=>LN,CameraEventType:()=>Li,CameraFlightPath:()=>IL,Cartesian2:()=>H,Cartesian3:()=>h,Cartesian4:()=>se,Cartographic:()=>me,CartographicGeocoderService:()=>s2,CatmullRomSpline:()=>XX,Cesium3DContentGroup:()=>_A,Cesium3DTile:()=>Tf,Cesium3DTileBatchTable:()=>Ep,Cesium3DTileColorBlendMode:()=>gl,Cesium3DTileContent:()=>DY,Cesium3DTileContentFactory:()=>JA,Cesium3DTileContentState:()=>Hr,Cesium3DTileContentType:()=>fs,Cesium3DTileFeature:()=>ws,Cesium3DTileFeatureTable:()=>Od,Cesium3DTileOptimizationHint:()=>_f,Cesium3DTileOptimizations:()=>jM,Cesium3DTilePass:()=>Br,Cesium3DTilePassState:()=>Gf,Cesium3DTilePointFeature:()=>qp,Cesium3DTileRefine:()=>Vr,Cesium3DTileStyle:()=>Y_,Cesium3DTileStyleEngine:()=>ZM,Cesium3DTilesInspector:()=>I2,Cesium3DTilesInspectorViewModel:()=>D2,Cesium3DTilesVoxelProvider:()=>RY,Cesium3DTileset:()=>Ea,Cesium3DTilesetBaseTraversal:()=>iR,Cesium3DTilesetCache:()=>XM,Cesium3DTilesetGraphics:()=>uA,Cesium3DTilesetHeatmap:()=>KM,Cesium3DTilesetMetadata:()=>sy,Cesium3DTilesetMostDetailedTraversal:()=>eR,Cesium3DTilesetSkipTraversal:()=>sR,Cesium3DTilesetStatistics:()=>c_,Cesium3DTilesetTraversal:()=>Rs,Cesium3DTilesetVisualizer:()=>aR,CesiumInspector:()=>M2,CesiumInspectorViewModel:()=>O2,CesiumTerrainProvider:()=>s0,CesiumWidget:()=>rF,Check:()=>ol,CheckerboardMaterialProperty:()=>OE,CircleEmitter:()=>_F,CircleGeometry:()=>KX,CircleOutlineGeometry:()=>JX,ClassificationModelDrawCommand:()=>W1,ClassificationPipelineStage:()=>dO,ClassificationPrimitive:()=>TT,ClassificationType:()=>kn,ClearCommand:()=>ri,ClippingPlane:()=>BA,ClippingPlaneCollection:()=>ls,Clock:()=>qd,ClockRange:()=>Lo,ClockStep:()=>_r,ClockViewModel:()=>_2,CloudCollection:()=>VY,CloudType:()=>PS,Color:()=>z,ColorBlendMode:()=>Za,ColorGeometryInstanceAttribute:()=>kt,ColorMaterialProperty:()=>Ut,Command:()=>PK,ComponentDatatype:()=>X,Composite3DTileContent:()=>UP,CompositeEntityCollection:()=>L9,CompositeMaterialProperty:()=>RE,CompositePositionProperty:()=>$s,CompositeProperty:()=>ic,CompressedTextureBuffer:()=>vv,ComputeCommand:()=>Yu,ComputeEngine:()=>dv,ConditionsExpression:()=>uF,ConeEmitter:()=>zY,ConstantPositionProperty:()=>Mc,ConstantProperty:()=>ei,ConstantSpline:()=>M1,ContentMetadata:()=>BM,Context:()=>sI,ContextLimits:()=>zt,CoplanarPolygonGeometry:()=>WR,CoplanarPolygonGeometryLibrary:()=>n_,CoplanarPolygonOutlineGeometry:()=>xf,CornerType:()=>Ri,CorridorGeometry:()=>dx,CorridorGeometryLibrary:()=>ki,CorridorGeometryUpdater:()=>_R,CorridorGraphics:()=>oA,CorridorOutlineGeometry:()=>pR,Credit:()=>wt,CreditDisplay:()=>RL,CubeMap:()=>za,CubeMapFace:()=>Nh,CubicRealPolynomial:()=>H0,CullFace:()=>gi,CullingVolume:()=>ts,CumulusCloud:()=>Vu,CustomDataSource:()=>CR,CustomHeightmapTerrainProvider:()=>ZX,CustomShader:()=>UC,CustomShaderMode:()=>Wp,CustomShaderPipelineStage:()=>TO,CustomShaderTranslucencyMode:()=>Wg,CylinderGeometry:()=>TR,CylinderGeometryLibrary:()=>mx,CylinderGeometryUpdater:()=>bR,CylinderGraphics:()=>sA,CylinderOutlineGeometry:()=>ER,CzmlDataSource:()=>BR,DataSource:()=>Ro,DataSourceClock:()=>Yd,DataSourceCollection:()=>LR,DataSourceDisplay:()=>CB,DebugAppearance:()=>HY,DebugCameraPrimitive:()=>Om,DebugInspector:()=>GN,DebugModelMatrixPrimitive:()=>yF,DefaultProxy:()=>QX,DepthFunction:()=>Wa,DepthPlane:()=>zL,DequantizationPipelineStage:()=>bO,DerivedCommand:()=>V_,DeveloperError:()=>fe,DeviceOrientationCameraController:()=>GL,DirectionalLight:()=>GY,DiscardEmptyTileImagePolicy:()=>Qb,DiscardMissingTileImagePolicy:()=>$B,DistanceDisplayCondition:()=>vt,DistanceDisplayConditionGeometryInstanceAttribute:()=>Vn,DoubleEndedPriorityQueue:()=>TC,DoublyLinkedList:()=>YM,DracoLoader:()=>Op,DrawCommand:()=>nt,DynamicGeometryBatch:()=>Tx,DynamicGeometryUpdater:()=>ai,EarthOrientationParameters:()=>bv,EarthOrientationParametersSample:()=>$_,EasingFunction:()=>No,EllipseGeometry:()=>qc,EllipseGeometryLibrary:()=>Pl,EllipseGeometryUpdater:()=>FR,EllipseGraphics:()=>aA,EllipseOutlineGeometry:()=>yu,Ellipsoid:()=>re,EllipsoidGeodesic:()=>tf,EllipsoidGeometry:()=>Ns,EllipsoidGeometryUpdater:()=>VR,EllipsoidGraphics:()=>cA,EllipsoidOutlineGeometry:()=>fu,EllipsoidPrimitive:()=>CL,EllipsoidRhumbLine:()=>ga,EllipsoidSurfaceAppearance:()=>WY,EllipsoidTangentPlane:()=>_a,EllipsoidTerrainProvider:()=>M_,EllipsoidalOccluder:()=>m_,Empty3DTileContent:()=>_E,EncodedCartesian3:()=>jn,Entity:()=>Kr,EntityCluster:()=>du,EntityCollection:()=>Bs,EntityView:()=>EB,Event:()=>ge,EventHelper:()=>Po,Expression:()=>of,ExpressionNodeType:()=>gt,ExtrapolationType:()=>mu,FeatureDetection:()=>Ht,FeatureIdPipelineStage:()=>Gg,Fog:()=>WL,ForEach:()=>Oe,FrameRateMonitor:()=>CF,FrameState:()=>jL,Framebuffer:()=>Gs,FramebufferManager:()=>di,FrustumCommands:()=>KL,FrustumGeometry:()=>nC,FrustumOutlineGeometry:()=>NL,Fullscreen:()=>ho,FullscreenButton:()=>B2,FullscreenButtonViewModel:()=>R2,GeoJsonDataSource:()=>vB,GeoJsonLoader:()=>I1,GeocodeType:()=>u0,Geocoder:()=>U2,GeocoderService:()=>ZS,GeocoderViewModel:()=>F2,GeographicProjection:()=>Ii,GeographicTilingScheme:()=>Wi,Geometry:()=>ut,Geometry3DTileContent:()=>kP,GeometryAttribute:()=>De,GeometryAttributes:()=>dn,GeometryFactory:()=>$X,GeometryInstance:()=>xt,GeometryInstanceAttribute:()=>ja,GeometryOffsetAttribute:()=>nn,GeometryPipeline:()=>Ln,GeometryPipelineStage:()=>DO,GeometryType:()=>Xu,GeometryUpdater:()=>ci,GeometryVisualizer:()=>cB,GetFeatureInfoFormat:()=>Qx,Globe:()=>gL,GlobeDepth:()=>JL,GlobeSurfaceShaderSet:()=>QB,GlobeSurfaceTile:()=>kf,GlobeSurfaceTileProvider:()=>aL,GlobeTranslucency:()=>cL,GlobeTranslucencyFramebuffer:()=>ZL,GlobeTranslucencyState:()=>qL,GltfBufferViewLoader:()=>NT,GltfDracoLoader:()=>FT,GltfImageLoader:()=>UT,GltfIndexBufferLoader:()=>VT,GltfJsonLoader:()=>zT,GltfLoader:()=>Kh,GltfLoaderUtil:()=>xl,GltfStructuralMetadataLoader:()=>C1,GltfTextureLoader:()=>HT,GltfVertexBufferLoader:()=>GT,GoogleEarthEnterpriseImageryProvider:()=>QY,GoogleEarthEnterpriseMapsProvider:()=>iS,GoogleEarthEnterpriseMetadata:()=>bh,GoogleEarthEnterpriseTerrainData:()=>QS,GoogleEarthEnterpriseTerrainProvider:()=>iK,GoogleEarthEnterpriseTileInformation:()=>EF,GpxDataSource:()=>OB,GregorianDate:()=>Qm,GridImageryProvider:()=>$Y,GridMaterialProperty:()=>GE,GroundGeometryUpdater:()=>Xn,GroundPolylineGeometry:()=>$0,GroundPolylinePrimitive:()=>hd,GroundPrimitive:()=>Pc,GroupMetadata:()=>DE,HeadingPitchRange:()=>Cu,HeadingPitchRoll:()=>ka,Heap:()=>xv,HeightReference:()=>je,HeightmapEncoding:()=>Ff,HeightmapTerrainData:()=>wa,HeightmapTessellator:()=>qb,HermitePolynomialApproximation:()=>SR,HermiteSpline:()=>kg,HilbertOrder:()=>MT,HomeButton:()=>N2,HomeButtonViewModel:()=>L2,HorizontalOrigin:()=>_i,I3SDataProvider:()=>DC,I3SFeature:()=>bF,I3SField:()=>SF,I3SGeometry:()=>MS,I3SLayer:()=>i0,I3SNode:()=>RS,I3dmLoader:()=>O1,I3dmParser:()=>P1,Iau2000Orientation:()=>AL,Iau2006XysData:()=>Sv,Iau2006XysSample:()=>B0,IauOrientationAxes:()=>xL,IauOrientationParameters:()=>yL,ImageBasedLighting:()=>pA,ImageBasedLightingPipelineStage:()=>K1,ImageMaterialProperty:()=>_g,Imagery:()=>uS,ImageryLayer:()=>ks,ImageryLayerCollection:()=>lL,ImageryLayerFeatureInfo:()=>dh,ImageryProvider:()=>Zc,ImageryState:()=>fi,Implicit3DTileContent:()=>jT,ImplicitAvailabilityBitstream:()=>BT,ImplicitMetadataView:()=>LT,ImplicitSubdivisionScheme:()=>jo,ImplicitSubtree:()=>MA,ImplicitSubtreeCache:()=>hF,ImplicitSubtreeMetadata:()=>zP,ImplicitTileCoordinates:()=>lx,ImplicitTileset:()=>ay,IndexDatatype:()=>Ue,InfoBox:()=>k2,InfoBoxViewModel:()=>V2,InspectorShared:()=>Oa,InstanceAttributeSemantic:()=>qo,InstancingPipelineStage:()=>sO,InterpolationAlgorithm:()=>rK,InterpolationType:()=>Id,Intersect:()=>Qt,IntersectionTests:()=>Ji,Intersections2D:()=>X_,Interval:()=>Sc,InvertClassification:()=>CS,Ion:()=>Cd,IonGeocoderService:()=>l2,IonImageryProvider:()=>zf,IonResource:()=>Xs,IonWorldImageryStyle:()=>ph,Iso8601:()=>ze,JobScheduler:()=>YL,JobType:()=>Aa,JsonMetadataTable:()=>Bp,JulianDate:()=>ee,KTX2Transcoder:()=>wv,KeyboardEventModifier:()=>ca,KeyframeNode:()=>Qi,KmlCamera:()=>MB,KmlDataSource:()=>XB,KmlLookAt:()=>zB,KmlTour:()=>HB,KmlTourFlyTo:()=>WB,KmlTourWait:()=>jB,Label:()=>Jg,LabelCollection:()=>nm,LabelGraphics:()=>md,LabelStyle:()=>zr,LabelVisualizer:()=>lB,LagrangePolynomialApproximation:()=>vR,LeapSecond:()=>Hi,Light:()=>nX,LightingModel:()=>Zh,LightingPipelineStage:()=>PO,LinearApproximation:()=>_x,LinearSpline:()=>Vg,ManagedArray:()=>Fc,MapMode2D:()=>Vl,MapProjection:()=>aK,MapboxImageryProvider:()=>oS,MapboxStyleImageryProvider:()=>iX,Material:()=>Gi,MaterialAppearance:()=>lr,MaterialPipelineStage:()=>MO,MaterialProperty:()=>Xr,Math:()=>P,Matrix2:()=>er,Matrix3:()=>Q,Matrix4:()=>N,Megatexture:()=>LS,MetadataClass:()=>vd,MetadataClassProperty:()=>Sg,MetadataComponentType:()=>tn,MetadataEntity:()=>Nn,MetadataEnum:()=>a1,MetadataEnumValue:()=>s1,MetadataPipelineStage:()=>cf,MetadataSchema:()=>wd,MetadataSchemaLoader:()=>WT,MetadataSemantic:()=>RA,MetadataTable:()=>yl,MetadataTableProperty:()=>GP,MetadataType:()=>jt,MipmapHint:()=>Fh,Model:()=>Bd,Model3DTileContent:()=>$h,ModelAlphaOptions:()=>XO,ModelAnimation:()=>N1,ModelAnimationChannel:()=>L1,ModelAnimationCollection:()=>F1,ModelAnimationLoop:()=>El,ModelAnimationState:()=>Md,ModelArticulation:()=>Z1,ModelArticulationStage:()=>J1,ModelClippingPlanesPipelineStage:()=>eO,ModelColorPipelineStage:()=>Hg,ModelComponents:()=>Lt,ModelDrawCommand:()=>j1,ModelFeature:()=>U1,ModelFeatureTable:()=>k1,ModelGraphics:()=>_p,ModelLightingOptions:()=>nM,ModelMatrixUpdateStage:()=>aO,ModelNode:()=>tO,ModelRenderResources:()=>KO,ModelRuntimeNode:()=>lO,ModelRuntimePrimitive:()=>qO,ModelSceneGraph:()=>rM,ModelSilhouettePipelineStage:()=>QO,ModelSkin:()=>YO,ModelSplitterPipelineStage:()=>eM,ModelStatistics:()=>oM,ModelType:()=>Ur,ModelUtility:()=>Jt,ModelVisualizer:()=>fB,Moon:()=>EL,MorphTargetsPipelineStage:()=>BO,MorphWeightSpline:()=>cK,MortonOrder:()=>cy,Multiple3DTileContent:()=>FM,MultisampleFramebuffer:()=>aI,NavigationHelpButton:()=>H2,NavigationHelpButtonViewModel:()=>z2,NearFarScalar:()=>Bt,NeverTileDiscardPolicy:()=>oX,NodeRenderResources:()=>tM,NodeStatisticsPipelineStage:()=>cO,NodeTransformationProperty:()=>lA,OIT:()=>$L,Occluder:()=>bL,OctahedralProjectedCubeMap:()=>xd,OffsetGeometryInstanceAttribute:()=>Ki,OpenCageGeocoderService:()=>uK,OpenStreetMapImageryProvider:()=>IC,OrderedGroundPrimitiveCollection:()=>NR,OrientedBoundingBox:()=>On,OrthographicFrustum:()=>en,OrthographicOffCenterFrustum:()=>So,Packable:()=>fK,PackableForInterpolation:()=>dK,Particle:()=>NS,ParticleBurst:()=>aX,ParticleEmitter:()=>cX,ParticleSystem:()=>lX,Pass:()=>be,PassState:()=>Ha,PathGraphics:()=>gp,PathVisualizer:()=>hB,PeliasGeocoderService:()=>c2,PerInstanceColorAppearance:()=>rn,PerformanceDisplay:()=>k_,PerformanceWatchdog:()=>W2,PerformanceWatchdogViewModel:()=>G2,PerspectiveFrustum:()=>wi,PerspectiveOffCenterFrustum:()=>$c,PickDepth:()=>XL,PickDepthFramebuffer:()=>tN,PickFramebuffer:()=>rN,Picking:()=>cN,PickingPipelineStage:()=>LO,PinBuilder:()=>D_,PixelDatatype:()=>Ke,PixelFormat:()=>at,Plane:()=>cn,PlaneGeometry:()=>kR,PlaneGeometryUpdater:()=>HR,PlaneGraphics:()=>EP,PlaneOutlineGeometry:()=>zR,PntsLoader:()=>uE,PntsParser:()=>WA,PointCloud:()=>PF,PointCloudEyeDomeLighting:()=>Np,PointCloudShading:()=>Jh,PointCloudStylingPipelineStage:()=>FO,PointGraphics:()=>fA,PointPrimitive:()=>Ls,PointPrimitiveCollection:()=>UE,PointVisualizer:()=>pB,PolygonGeometry:()=>vx,PolygonGeometryLibrary:()=>Yn,PolygonGeometryUpdater:()=>qR,PolygonGraphics:()=>pd,PolygonHierarchy:()=>Rc,PolygonOutlineGeometry:()=>jR,PolygonPipeline:()=>ui,Polyline:()=>hf,PolylineArrowMaterialProperty:()=>jE,PolylineCollection:()=>Fd,PolylineColorAppearance:()=>Go,PolylineDashMaterialProperty:()=>YE,PolylineGeometry:()=>w_,PolylineGeometryUpdater:()=>yB,PolylineGlowMaterialProperty:()=>KE,PolylineGraphics:()=>qa,PolylineMaterialAppearance:()=>qs,PolylineOutlineMaterialProperty:()=>_y,PolylinePipeline:()=>Mi,PolylineVisualizer:()=>xB,PolylineVolumeGeometry:()=>KR,PolylineVolumeGeometryLibrary:()=>Hd,PolylineVolumeGeometryUpdater:()=>$R,PolylineVolumeGraphics:()=>dA,PolylineVolumeOutlineGeometry:()=>QR,PositionProperty:()=>mp,PositionPropertyArray:()=>y_,PostProcessStage:()=>xr,PostProcessStageCollection:()=>ON,PostProcessStageComposite:()=>el,PostProcessStageLibrary:()=>jf,PostProcessStageSampleMode:()=>Ru,PostProcessStageTextureCache:()=>mC,Primitive:()=>bn,PrimitiveCollection:()=>Il,PrimitiveLoadPlan:()=>UA,PrimitiveOutlineGenerator:()=>FA,PrimitiveOutlinePipelineStage:()=>kO,PrimitivePipeline:()=>J0,PrimitiveRenderResources:()=>iM,PrimitiveState:()=>_o,PrimitiveStatisticsPipelineStage:()=>zO,PrimitiveType:()=>Be,ProjectionPicker:()=>q2,ProjectionPickerViewModel:()=>j2,Property:()=>q,PropertyArray:()=>ZE,PropertyAttribute:()=>NA,PropertyAttributeProperty:()=>g1,PropertyBag:()=>pl,PropertyTable:()=>Vc,PropertyTexture:()=>LA,PropertyTextureProperty:()=>_1,ProviderViewModel:()=>xs,Proxy:()=>hK,QuadraticRealPolynomial:()=>wc,QuadtreeOccluders:()=>uL,QuadtreePrimitive:()=>_L,QuadtreeTile:()=>fL,QuadtreeTileLoadState:()=>Us,QuadtreeTileProvider:()=>pX,QuantizedMeshTerrainData:()=>OC,QuarticRealPolynomial:()=>YI,Quaternion:()=>Le,QuaternionSpline:()=>B1,Queue:()=>ny,Ray:()=>vn,Rectangle:()=>le,RectangleCollisionChecker:()=>Px,RectangleGeometry:()=>Dx,RectangleGeometryLibrary:()=>ds,RectangleGeometryUpdater:()=>eB,RectangleGraphics:()=>_d,RectangleOutlineGeometry:()=>ex,ReferenceFrame:()=>rr,ReferenceProperty:()=>A_,RenderState:()=>Ve,Renderbuffer:()=>Zl,RenderbufferFormat:()=>Ec,Request:()=>jr,RequestErrorEvent:()=>Rh,RequestScheduler:()=>Ua,RequestState:()=>ti,RequestType:()=>es,Resource:()=>ve,ResourceCache:()=>Ui,ResourceCacheKey:()=>Cl,ResourceCacheStatistics:()=>f1,ResourceLoader:()=>or,ResourceLoaderState:()=>St,Rotation:()=>wf,RuntimeError:()=>de,S2Cell:()=>wp,SDFSettings:()=>Os,SampledPositionProperty:()=>ta,SampledProperty:()=>_u,Sampler:()=>ln,ScaledPositionProperty:()=>pm,Scene:()=>jN,SceneFramebuffer:()=>aC,SceneMode:()=>ne,SceneMode2DPipelineStage:()=>HO,SceneModePicker:()=>X2,SceneModePickerViewModel:()=>Y2,SceneTransforms:()=>Zi,SceneTransitioner:()=>BN,ScreenSpaceCameraController:()=>UN,ScreenSpaceEventHandler:()=>Lu,ScreenSpaceEventType:()=>An,SelectedFeatureIdPipelineStage:()=>jg,SelectionIndicator:()=>Z2,SelectionIndicatorViewModel:()=>J2,ShaderBuilder:()=>U0,ShaderCache:()=>eI,ShaderDestination:()=>Te,ShaderFunction:()=>uI,ShaderProgram:()=>Xt,ShaderSource:()=>ke,ShaderStruct:()=>lI,ShadowMap:()=>G_,ShadowMapShader:()=>Lm,ShadowMode:()=>yn,ShadowVolumeAppearance:()=>tu,ShowGeometryInstanceAttribute:()=>gn,Simon1994PlanetaryPositions:()=>ag,SimplePolylineGeometry:()=>mK,SingleTileImageryProvider:()=>sS,SkinningPipelineStage:()=>WO,SkyAtmosphere:()=>XN,SkyBox:()=>ZN,SpatialNode:()=>MF,SphereEmitter:()=>gX,SphereGeometry:()=>pK,SphereOutlineGeometry:()=>r_,Spherical:()=>wR,Spline:()=>sr,SplitDirection:()=>kc,Splitter:()=>FS,StaticGeometryColorBatch:()=>Pf,StaticGeometryPerMaterialBatch:()=>Of,StaticGroundGeometryColorBatch:()=>Ab,StaticGroundGeometryPerMaterialBatch:()=>tB,StaticGroundPolylinePerMaterialBatch:()=>AB,StaticOutlineGeometryBatch:()=>Tb,StencilConstants:()=>Ft,StencilFunction:()=>zn,StencilOperation:()=>mt,SteppedSpline:()=>R1,StripeMaterialProperty:()=>$E,StripeOrientation:()=>Kd,StructuralMetadata:()=>xa,StyleCommandsNeeded:()=>Rd,StyleExpression:()=>yX,Sun:()=>iF,SunLight:()=>op,SunPostProcess:()=>zN,SupportedImageFormats:()=>T1,SvgPathBindingHandler:()=>m2,TaskProcessor:()=>pi,Terrain:()=>NF,TerrainData:()=>fh,TerrainEncoding:()=>dc,TerrainExaggeration:()=>Dc,TerrainFillMesh:()=>mS,TerrainMesh:()=>Vf,TerrainOffsetProperty:()=>hA,TerrainProvider:()=>Yo,TerrainQuantization:()=>Fs,TerrainState:()=>Ar,Texture:()=>Rt,TextureAtlas:()=>Kg,TextureCache:()=>tI,TextureMagnificationFilter:()=>Ti,TextureManager:()=>n2,TextureMinificationFilter:()=>sn,TextureUniform:()=>SK,TextureWrap:()=>Sn,TileAvailability:()=>Sh,TileBoundingRegion:()=>Af,TileBoundingS2Cell:()=>GM,TileBoundingSphere:()=>o_,TileBoundingVolume:()=>bX,TileCoordinatesImageryProvider:()=>UF,TileDiscardPolicy:()=>vX,TileEdge:()=>_n,TileImagery:()=>fS,TileMapServiceImageryProvider:()=>Im,TileMetadata:()=>LM,TileOrientedBoundingBox:()=>Cf,TileProviderError:()=>Ai,TileReplacementQueue:()=>dL,TileSelectionResult:()=>Qn,TileState:()=>wX,Tileset3DTileContent:()=>cM,TilesetMetadata:()=>WM,TilesetPipelineStage:()=>Y1,TilingScheme:()=>_K,TimeConstants:()=>Zn,TimeDynamicImagery:()=>$x,TimeDynamicPointCloud:()=>GS,TimeInterval:()=>xn,TimeIntervalCollection:()=>Mo,TimeIntervalCollectionPositionProperty:()=>x_,TimeIntervalCollectionProperty:()=>C_,TimeStandard:()=>Kn,Timeline:()=>e3,TimelineHighlightRange:()=>Q2,TimelineTrack:()=>$2,Tipsify:()=>QI,ToggleButtonViewModel:()=>p0,Tonemapper:()=>Qy,Transforms:()=>Mt,TranslationRotationScale:()=>gg,TranslucentTileClassification:()=>sN,TridiagonalSystemSolver:()=>$T,TrustedServers:()=>rT,TweenCollection:()=>yC,UniformState:()=>oI,UniformType:()=>jS,UrlTemplateImageryProvider:()=>Vs,VERSION:()=>cxt,VRButton:()=>i3,VRButtonViewModel:()=>n3,VRTheWorldTerrainProvider:()=>yK,VaryingType:()=>vK,Vector3DTileBatch:()=>jh,Vector3DTileClampedPolylines:()=>OM,Vector3DTileContent:()=>RM,Vector3DTileGeometry:()=>Sp,Vector3DTilePoints:()=>bM,Vector3DTilePolygons:()=>SM,Vector3DTilePolylines:()=>KA,Vector3DTilePrimitive:()=>xA,VelocityOrientationProperty:()=>IR,VelocityVectorProperty:()=>xx,VertexArray:()=>oi,VertexArrayFacade:()=>ap,VertexAttributeSemantic:()=>Tt,VertexFormat:()=>Pe,VerticalOrigin:()=>Pn,VideoSynchronizer:()=>AK,View:()=>uC,Viewer:()=>WK,ViewportQuad:()=>PX,Visibility:()=>lo,Visualizer:()=>Oj,VoxelBoxShape:()=>km,VoxelContent:()=>mF,VoxelCylinderShape:()=>zm,VoxelEllipsoidShape:()=>EC,VoxelInspector:()=>o3,VoxelInspectorViewModel:()=>r3,VoxelPrimitive:()=>YS,VoxelProvider:()=>BX,VoxelRenderResources:()=>QF,VoxelShape:()=>LX,VoxelShapeType:()=>qi,VoxelTraversal:()=>WS,VulkanConstants:()=>xK,WallGeometry:()=>iB,WallGeometryLibrary:()=>Ox,WallGeometryUpdater:()=>sB,WallGraphics:()=>yp,WallOutlineGeometry:()=>oB,WebGLConstants:()=>te,WebMapServiceImageryProvider:()=>aS,WebMapTileServiceImageryProvider:()=>cS,WebMercatorProjection:()=>Oi,WebMercatorTilingScheme:()=>Fo,WindingOrder:()=>$o,WireframeIndexGenerator:()=>cE,WireframePipelineStage:()=>jO,_shadersAcesTonemappingStage:()=>lN,_shadersAdditiveBlend:()=>VN,_shadersAdjustTranslucentFS:()=>TS,_shadersAllMaterialAppearanceFS:()=>_I,_shadersAllMaterialAppearanceVS:()=>gI,_shadersAmbientOcclusionGenerate:()=>uN,_shadersAmbientOcclusionModulate:()=>fN,_shadersAspectRampMaterial:()=>TI,_shadersAtmosphereCommon:()=>R_,_shadersBasicMaterialAppearanceFS:()=>yI,_shadersBasicMaterialAppearanceVS:()=>AI,_shadersBillboardCollectionFS:()=>lM,_shadersBillboardCollectionVS:()=>uM,_shadersBlackAndWhite:()=>dN,_shadersBloomComposite:()=>hN,_shadersBrdfLutGeneratorFS:()=>SL,_shadersBrightPass:()=>kN,_shadersBrightness:()=>mN,_shadersBumpMapMaterial:()=>EI,_shadersCPUStylingStageFS:()=>mO,_shadersCPUStylingStageVS:()=>hO,_shadersCheckerboardMaterial:()=>bI,_shadersCloudCollectionFS:()=>oF,_shadersCloudCollectionVS:()=>sF,_shadersCloudNoiseFS:()=>aF,_shadersCloudNoiseVS:()=>cF,_shadersCompareAndPackTranslucentDepth:()=>oN,_shadersCompositeOITFS:()=>QL,_shadersCompositeTranslucentClassification:()=>lC,_shadersContrastBias:()=>pN,_shadersCustomShaderStageFS:()=>gO,_shadersCustomShaderStageVS:()=>_O,_shadersCzmBuiltins:()=>L0,_shadersDepthOfField:()=>_N,_shadersDepthPlaneFS:()=>FL,_shadersDepthPlaneVS:()=>UL,_shadersDepthView:()=>gN,_shadersDepthViewPacked:()=>bK,_shadersDotMaterial:()=>SI,_shadersEdgeDetection:()=>yN,_shadersElevationBandMaterial:()=>vI,_shadersElevationContourMaterial:()=>wI,_shadersElevationRampMaterial:()=>DI,_shadersEllipsoidFS:()=>_S,_shadersEllipsoidSurfaceAppearanceFS:()=>AF,_shadersEllipsoidSurfaceAppearanceVS:()=>xF,_shadersEllipsoidVS:()=>gS,_shadersFXAA:()=>xN,_shadersFXAA3_11:()=>vN,_shadersFadeMaterial:()=>II,_shadersFeatureIdStageFS:()=>yO,_shadersFeatureIdStageVS:()=>AO,_shadersFilmicTonemapping:()=>AN,_shadersGaussianBlur1D:()=>Zy,_shadersGeometryStageFS:()=>SO,_shadersGeometryStageVS:()=>vO,_shadersGlobeFS:()=>JB,_shadersGlobeVS:()=>ZB,_shadersGridMaterial:()=>PI,_shadersGroundAtmosphere:()=>Xb,_shadersHSBToRGB:()=>Ew,_shadersHSLToRGB:()=>bw,_shadersImageBasedLightingStageFS:()=>X1,_shadersInstancingStageCommon:()=>nO,_shadersInstancingStageVS:()=>iO,_shadersIntersectBox:()=>WF,_shadersIntersectClippingPlanes:()=>GF,_shadersIntersectCylinder:()=>jF,_shadersIntersectDepth:()=>HF,_shadersIntersectEllipsoid:()=>qF,_shadersIntersection:()=>NC,_shadersIntersectionUtils:()=>zF,_shadersLegacyInstancingStageVS:()=>rO,_shadersLensFlare:()=>CN,_shadersLightingStageFS:()=>IO,_shadersMaterialStageFS:()=>OO,_shadersMegatexture:()=>ZF,_shadersMetadataStageFS:()=>xO,_shadersMetadataStageVS:()=>CO,_shadersModelClippingPlanesStageFS:()=>$1,_shadersModelColorStageFS:()=>Q1,_shadersModelFS:()=>z1,_shadersModelSilhouetteStageFS:()=>JO,_shadersModelSilhouetteStageVS:()=>ZO,_shadersModelSplitterStageFS:()=>$O,_shadersModelVS:()=>H1,_shadersModifiedReinhardTonemapping:()=>TN,_shadersMorphTargetsStageVS:()=>RO,_shadersNightVision:()=>EN,_shadersNormalMapMaterial:()=>OI,_shadersOctahedralProjectionAtlasFS:()=>MP,_shadersOctahedralProjectionFS:()=>RP,_shadersOctahedralProjectionVS:()=>BP,_shadersOctree:()=>JF,_shadersPassThrough:()=>kl,_shadersPassThroughDepth:()=>Xy,_shadersPerInstanceColorAppearanceFS:()=>zI,_shadersPerInstanceColorAppearanceVS:()=>HI,_shadersPerInstanceFlatColorAppearanceFS:()=>z0,_shadersPerInstanceFlatColorAppearanceVS:()=>GI,_shadersPointCloudEyeDomeLighting:()=>E1,_shadersPointCloudStylingStageVS:()=>NO,_shadersPointPrimitiveCollectionFS:()=>py,_shadersPointPrimitiveCollectionVS:()=>gR,_shadersPolylineArrowMaterial:()=>MI,_shadersPolylineColorAppearanceVS:()=>uP,_shadersPolylineCommon:()=>nu,_shadersPolylineDashMaterial:()=>RI,_shadersPolylineFS:()=>tA,_shadersPolylineGlowMaterial:()=>BI,_shadersPolylineMaterialAppearanceVS:()=>fP,_shadersPolylineOutlineMaterial:()=>LI,_shadersPolylineShadowVolumeFS:()=>sP,_shadersPolylineShadowVolumeMorphFS:()=>aP,_shadersPolylineShadowVolumeMorphVS:()=>cP,_shadersPolylineShadowVolumeVS:()=>lP,_shadersPolylineVS:()=>yM,_shadersPrimitiveOutlineStageFS:()=>VO,_shadersPrimitiveOutlineStageVS:()=>UO,_shadersRGBToHSB:()=>Sw,_shadersRGBToHSL:()=>vw,_shadersRGBToXYZ:()=>ww,_shadersReinhardTonemapping:()=>bN,_shadersReprojectWebMercatorFS:()=>rL,_shadersReprojectWebMercatorVS:()=>oL,_shadersRimLightingMaterial:()=>NI,_shadersSelectedFeatureIdStageCommon:()=>aE,_shadersShadowVolumeAppearanceFS:()=>xT,_shadersShadowVolumeAppearanceVS:()=>XI,_shadersShadowVolumeFS:()=>dg,_shadersSilhouette:()=>SN,_shadersSkinningStageVS:()=>GO,_shadersSkyAtmosphereCommon:()=>vS,_shadersSkyAtmosphereFS:()=>qN,_shadersSkyAtmosphereVS:()=>YN,_shadersSkyBoxFS:()=>KN,_shadersSkyBoxVS:()=>JN,_shadersSlopeRampMaterial:()=>FI,_shadersStripeMaterial:()=>UI,_shadersSunFS:()=>QN,_shadersSunTextureFS:()=>$N,_shadersSunVS:()=>eF,_shadersTexturedMaterialAppearanceFS:()=>xI,_shadersTexturedMaterialAppearanceVS:()=>CI,_shadersVector3DTileClampedPolylinesFS:()=>IM,_shadersVector3DTileClampedPolylinesVS:()=>DM,_shadersVector3DTilePolylinesVS:()=>vM,_shadersVectorTileVS:()=>OT,_shadersViewportQuadFS:()=>lF,_shadersViewportQuadVS:()=>E0,_shadersVoxelFS:()=>VF,_shadersVoxelVS:()=>kF,_shadersWater:()=>VI,_shadersXYZToRGB:()=>Dw,_shadersacesTonemapping:()=>Iw,_shadersalphaWeight:()=>Pw,_shadersantialias:()=>Ow,_shadersapproximateSphericalCoordinates:()=>Mw,_shadersbackFacing:()=>Rw,_shadersbranchFreeTernary:()=>Bw,_shaderscascadeColor:()=>Lw,_shaderscascadeDistance:()=>Nw,_shaderscascadeMatrix:()=>Fw,_shaderscascadeWeights:()=>Uw,_shaderscolumbusViewMorph:()=>Vw,_shaderscomputePosition:()=>kw,_shadersconvertUvToBox:()=>YF,_shadersconvertUvToCylinder:()=>XF,_shadersconvertUvToEllipsoid:()=>KF,_shaderscosineAndSine:()=>zw,_shadersdecompressTextureCoordinates:()=>Hw,_shadersdefaultPbrMaterial:()=>Gw,_shadersdegreesPerRadian:()=>Pv,_shadersdepthClamp:()=>Ww,_shadersdepthRange:()=>Ov,_shadersdepthRangeStruct:()=>mw,_shaderseastNorthUpToEyeCoordinates:()=>jw,_shadersellipsoidContainsPoint:()=>qw,_shadersellipsoidWgs84TextureCoordinates:()=>Yw,_shadersepsilon1:()=>Mv,_shadersepsilon2:()=>Rv,_shadersepsilon3:()=>Bv,_shadersepsilon4:()=>Lv,_shadersepsilon5:()=>Nv,_shadersepsilon6:()=>Fv,_shadersepsilon7:()=>Uv,_shadersequalsEpsilon:()=>Xw,_shaderseyeOffset:()=>Kw,_shaderseyeToWindowCoordinates:()=>Jw,_shadersfastApproximateAtan:()=>Zw,_shadersfog:()=>Qw,_shadersgammaCorrect:()=>$w,_shadersgeodeticSurfaceNormal:()=>eD,_shadersgetDefaultMaterial:()=>tD,_shadersgetLambertDiffuse:()=>nD,_shadersgetSpecular:()=>iD,_shadersgetWaterNoise:()=>rD,_shadershue:()=>oD,_shadersinfinity:()=>Vv,_shadersinverseGamma:()=>sD,_shadersisEmpty:()=>aD,_shadersisFull:()=>cD,_shaderslatitudeToWebMercatorFraction:()=>lD,_shaderslineDistance:()=>uD,_shaderslinearToSrgb:()=>fD,_shadersluminance:()=>dD,_shadersmaterial:()=>pw,_shadersmaterialInput:()=>_w,_shadersmetersPerPixel:()=>hD,_shadersmodelMaterial:()=>gw,_shadersmodelToWindowCoordinates:()=>mD,_shadersmodelVertexOutput:()=>yw,_shadersmultiplyWithColorBalance:()=>pD,_shadersnearFarScalar:()=>_D,_shadersoctDecode:()=>gD,_shadersoneOverPi:()=>kv,_shadersoneOverTwoPi:()=>zv,_shaderspackDepth:()=>yD,_shaderspassCesium3DTile:()=>Hv,_shaderspassCesium3DTileClassification:()=>Gv,_shaderspassCesium3DTileClassificationIgnoreShow:()=>Wv,_shaderspassClassification:()=>jv,_shaderspassCompute:()=>qv,_shaderspassEnvironment:()=>Yv,_shaderspassGlobe:()=>Xv,_shaderspassOpaque:()=>Kv,_shaderspassOverlay:()=>Jv,_shaderspassTerrainClassification:()=>Zv,_shaderspassTranslucent:()=>Qv,_shaderspassVoxels:()=>$v,_shaderspbrLighting:()=>AD,_shaderspbrMetallicRoughnessMaterial:()=>xD,_shaderspbrParameters:()=>Aw,_shaderspbrSpecularGlossinessMaterial:()=>CD,_shadersphong:()=>TD,_shaderspi:()=>ew,_shaderspiOverFour:()=>tw,_shaderspiOverSix:()=>nw,_shaderspiOverThree:()=>iw,_shaderspiOverTwo:()=>rw,_shadersplaneDistance:()=>ED,_shaderspointAlongRay:()=>bD,_shadersradiansPerDegree:()=>ow,_shadersray:()=>xw,_shadersrayEllipsoidIntersectionInterval:()=>SD,_shadersraySegment:()=>Cw,_shadersraySphereIntersectionInterval:()=>vD,_shadersreadDepth:()=>wD,_shadersreadNonPerspective:()=>DD,_shadersreverseLogDepth:()=>ID,_shadersround:()=>PD,_shaderssampleOctahedralProjection:()=>OD,_shaderssaturation:()=>MD,_shaderssceneMode2D:()=>sw,_shaderssceneMode3D:()=>aw,_shaderssceneModeColumbusView:()=>cw,_shaderssceneModeMorphing:()=>lw,_shadersshadowDepthCompare:()=>RD,_shadersshadowParameters:()=>Tw,_shadersshadowVisibility:()=>BD,_shaderssignNotZero:()=>LD,_shaderssolarRadius:()=>uw,_shaderssphericalHarmonics:()=>ND,_shaderssrgbToLinear:()=>FD,_shaderstangentToEyeSpaceMatrix:()=>UD,_shaderstextureCube:()=>VD,_shadersthreePiOver2:()=>fw,_shaderstransformPlane:()=>kD,_shaderstranslateRelativeToEye:()=>zD,_shaderstranslucentPhong:()=>HD,_shaderstranspose:()=>GD,_shaderstwoPi:()=>dw,_shadersunpackDepth:()=>WD,_shadersunpackFloat:()=>jD,_shadersunpackUint:()=>qD,_shadersvalueTransform:()=>YD,_shadersvertexLogDepth:()=>XD,_shaderswebMercatorMaxLatitude:()=>hw,_shaderswindowToEyeCoordinates:()=>KD,_shaderswriteDepthClamp:()=>JD,_shaderswriteLogDepth:()=>ZD,_shaderswriteNonPerspective:()=>QD,addBuffer:()=>t1,addDefaults:()=>YP,addExtensionsRequired:()=>QP,addExtensionsUsed:()=>sf,addPipelineExtras:()=>Ig,addToArray:()=>cs,appendForwardSlash:()=>_v,arrayRemoveDuplicates:()=>Er,barycentricCoordinates:()=>j0,binarySearch:()=>Pr,buildDrawCommand:()=>q1,buildModuleUrl:()=>$t,buildVoxelDrawCommands:()=>e2,clone:()=>We,combine:()=>_t,computeFlyToLocationForRectangle:()=>kC,createBillboardPointCallback:()=>jA,createCommand:()=>Cn,createDefaultImageryProviderViewModels:()=>b2,createDefaultTerrainProviderViewModels:()=>S2,createElevationBandMaterial:()=>FX,createGuid:()=>Wn,createMaterialPropertyDescriptor:()=>Or,createOsmBuildings:()=>UX,createOsmBuildingsAsync:()=>VX,createPropertyDescriptor:()=>ce,createRawPropertyDescriptor:()=>ml,createTangentSpaceDebugPrimitive:()=>kX,createTaskProcessorWorker:()=>wK,createUniform:()=>lv,createUniformArray:()=>uv,createWorldImagery:()=>zX,createWorldImageryAsync:()=>N_,createWorldTerrain:()=>CK,createWorldTerrainAsync:()=>RC,decodeGoogleEarthEnterpriseData:()=>TF,decodeVectorPolylinePositions:()=>MM,defaultValue:()=>y,defer:()=>Ws,defined:()=>u,demodernizeShader:()=>$D,deprecationWarning:()=>$,destroyObject:()=>ue,exportKml:()=>Nj,findAccessorMinMax:()=>DA,findContentMetadata:()=>ZA,findGroupMetadata:()=>QA,findTileMetadata:()=>NM,forEachTextureInMaterial:()=>kT,formatError:()=>Sm,freezeRenderState:()=>xG,getAbsoluteUri:()=>ep,getAccessorByteStride:()=>Al,getBaseUri:()=>gv,getBinaryAccessor:()=>ou,getClipAndStyleCode:()=>DF,getClippingFunction:()=>B_,getComponentReader:()=>Rp,getElement:()=>wn,getExtensionFromUri:()=>S0,getFilenameFromUri:()=>__,getImageFromTypedArray:()=>t2,getImagePixels:()=>od,getJsonFromTypedArray:()=>Mr,getMagic:()=>Td,getStringFromTypedArray:()=>_l,getTimestamp:()=>yi,hasExtension:()=>ni,heightReferenceOnEntityPropertyChanged:()=>Ap,isBitSet:()=>yc,isBlobUri:()=>v0,isCrossOriginUrl:()=>w0,isDataUri:()=>tp,isLeapYear:()=>$m,knockout:()=>Ce,knockout_3_5_1:()=>GC,knockout_es5:()=>h2,loadAndExecuteScript:()=>D0,loadCubeMap:()=>fI,loadImageFromTypedArray:()=>SA,loadKTX2:()=>cl,mergeSort:()=>U_,moveTechniqueRenderStates:()=>ZP,moveTechniquesToExtension:()=>$P,numberOfComponentsForType:()=>au,objectToQuery:()=>I0,oneTimeWarning:()=>Ot,parseBatchTable:()=>Vp,parseBoundingVolumeSemantics:()=>d1,parseFeatureMetadataLegacy:()=>x1,parseGlb:()=>KP,parseResponseHeaders:()=>yv,parseStructuralMetadata:()=>A1,pointInsideTriangle:()=>TK,preprocess3DTileContent:()=>om,processVoxelProperties:()=>$F,queryToObject:()=>Xl,readAccessorPacked:()=>n1,removeExtension:()=>IA,removeExtensionsRequired:()=>XP,removeExtensionsUsed:()=>wA,removePipelineExtras:()=>JP,removeUnusedElements:()=>e1,resizeImageToNextPowerOfTwo:()=>Mg,sampleTerrain:()=>uB,sampleTerrainMostDetailed:()=>v_,scaleToGeodeticSurface:()=>T0,subdivideArray:()=>KI,subscribeAndEvaluate:()=>la,updateAccessorComponentTypes:()=>i1,updateVersion:()=>r1,usesExtension:()=>yo,viewerCesium3DTilesInspectorMixin:()=>jK,viewerCesiumInspectorMixin:()=>qK,viewerDragDropMixin:()=>XK,viewerPerformanceWatchdogMixin:()=>KK,viewerVoxelInspectorMixin:()=>JK,webGLConstantToGlslType:()=>EK,wrapFunction:()=>f2,writeTextToCanvas:()=>YA});module.exports=Dh(lxt);function jxe(e){return e!=null}var u=jxe;function x0(e){this.name="DeveloperError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}u(Object.create)&&(x0.prototype=Object.create(Error.prototype),x0.prototype.constructor=x0);x0.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return u(this.stack)&&(e+=` +${this.stack.toString()}`),e};x0.throwInstantiationError=function(){throw new x0("This function defines an interface and should not be called directly.")};var fe=x0;var ss={};ss.typeOf={};function qxe(e){return`${e} is required, actual value was undefined`}function YC(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}ss.defined=function(e,t){if(!u(t))throw new fe(qxe(e))};ss.typeOf.func=function(e,t){if(typeof t!="function")throw new fe(YC(typeof t,"function",e))};ss.typeOf.string=function(e,t){if(typeof t!="string")throw new fe(YC(typeof t,"string",e))};ss.typeOf.number=function(e,t){if(typeof t!="number")throw new fe(YC(typeof t,"number",e))};ss.typeOf.number.lessThan=function(e,t,n){if(ss.typeOf.number(e,t),t>=n)throw new fe(`Expected ${e} to be less than ${n}, actual value was ${t}`)};ss.typeOf.number.lessThanOrEquals=function(e,t,n){if(ss.typeOf.number(e,t),t>n)throw new fe(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)};ss.typeOf.number.greaterThan=function(e,t,n){if(ss.typeOf.number(e,t),t<=n)throw new fe(`Expected ${e} to be greater than ${n}, actual value was ${t}`)};ss.typeOf.number.greaterThanOrEquals=function(e,t,n){if(ss.typeOf.number(e,t),t<n)throw new fe(`Expected ${e} to be greater than or equal to ${n}, actual value was ${t}`)};ss.typeOf.object=function(e,t){if(typeof t!="object")throw new fe(YC(typeof t,"object",e))};ss.typeOf.bool=function(e,t){if(typeof t!="boolean")throw new fe(YC(typeof t,"boolean",e))};ss.typeOf.bigint=function(e,t){if(typeof t!="bigint")throw new fe(YC(typeof t,"bigint",e))};ss.typeOf.number.equals=function(e,t,n,i){if(ss.typeOf.number(e,n),ss.typeOf.number(t,i),n!==i)throw new fe(`${e} must be equal to ${t}, the actual values are ${n} and ${i}`)};var ol=ss;function eJ(e,t){return e??t}eJ.EMPTY_OBJECT=Object.freeze({});var y=eJ;var nG=Yi(a3(),1);var ct={};ct.EPSILON1=.1;ct.EPSILON2=.01;ct.EPSILON3=.001;ct.EPSILON4=1e-4;ct.EPSILON5=1e-5;ct.EPSILON6=1e-6;ct.EPSILON7=1e-7;ct.EPSILON8=1e-8;ct.EPSILON9=1e-9;ct.EPSILON10=1e-10;ct.EPSILON11=1e-11;ct.EPSILON12=1e-12;ct.EPSILON13=1e-13;ct.EPSILON14=1e-14;ct.EPSILON15=1e-15;ct.EPSILON16=1e-16;ct.EPSILON17=1e-17;ct.EPSILON18=1e-18;ct.EPSILON19=1e-19;ct.EPSILON20=1e-20;ct.EPSILON21=1e-21;ct.GRAVITATIONALPARAMETER=3986004418e5;ct.SOLAR_RADIUS=6955e5;ct.LUNAR_RADIUS=1737400;ct.SIXTY_FOUR_KILOBYTES=64*1024;ct.FOUR_GIGABYTES=4*1024*1024*1024;ct.sign=y(Math.sign,function(t){return t=+t,t===0||t!==t?t:t>0?1:-1});ct.signNotZero=function(e){return e<0?-1:1};ct.toSNorm=function(e,t){return t=y(t,255),Math.round((ct.clamp(e,-1,1)*.5+.5)*t)};ct.fromSNorm=function(e,t){return t=y(t,255),ct.clamp(e,0,t)/t*2-1};ct.normalize=function(e,t,n){return n=Math.max(n-t,0),n===0?0:ct.clamp((e-t)/n,0,1)};ct.sinh=y(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2});ct.cosh=y(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2});ct.lerp=function(e,t,n){return(1-n)*e+n*t};ct.PI=Math.PI;ct.ONE_OVER_PI=1/Math.PI;ct.PI_OVER_TWO=Math.PI/2;ct.PI_OVER_THREE=Math.PI/3;ct.PI_OVER_FOUR=Math.PI/4;ct.PI_OVER_SIX=Math.PI/6;ct.THREE_PI_OVER_TWO=3*Math.PI/2;ct.TWO_PI=2*Math.PI;ct.ONE_OVER_TWO_PI=1/(2*Math.PI);ct.RADIANS_PER_DEGREE=Math.PI/180;ct.DEGREES_PER_RADIAN=180/Math.PI;ct.RADIANS_PER_ARCSECOND=ct.RADIANS_PER_DEGREE/3600;ct.toRadians=function(e){return e*ct.RADIANS_PER_DEGREE};ct.toDegrees=function(e){return e*ct.DEGREES_PER_RADIAN};ct.convertLongitudeRange=function(e){let t=ct.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n};ct.clampToLatitudeRange=function(e){return ct.clamp(e,-1*ct.PI_OVER_TWO,ct.PI_OVER_TWO)};ct.negativePiToPi=function(e){return e>=-ct.PI&&e<=ct.PI?e:ct.zeroToTwoPi(e+ct.PI)-ct.PI};ct.zeroToTwoPi=function(e){if(e>=0&&e<=ct.TWO_PI)return e;let t=ct.mod(e,ct.TWO_PI);return Math.abs(t)<ct.EPSILON14&&Math.abs(e)>ct.EPSILON14?ct.TWO_PI:t};ct.mod=function(e,t){return ct.sign(e)===ct.sign(t)&&Math.abs(e)<Math.abs(t)?e:(e%t+t)%t};ct.equalsEpsilon=function(e,t,n,i){n=y(n,0),i=y(i,n);let r=Math.abs(e-t);return r<=i||r<=n*Math.max(Math.abs(e),Math.abs(t))};ct.lessThan=function(e,t,n){return e-t<-n};ct.lessThanOrEquals=function(e,t,n){return e-t<n};ct.greaterThan=function(e,t,n){return e-t>n};ct.greaterThanOrEquals=function(e,t,n){return e-t>-n};var c3=[1];ct.factorial=function(e){let t=c3.length;if(e>=t){let n=c3[t-1];for(let i=t;i<=e;i++){let r=n*i;c3.push(r),n=r}}return c3[e]};ct.incrementWrap=function(e,t,n){return n=y(n,0),++e,e>t&&(e=n),e};ct.isPowerOfTwo=function(e){return e!==0&&(e&e-1)===0};ct.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e,e};ct.previousPowerOfTwo=function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e|=e>>32,e=(e>>>0)-(e>>>1),e};ct.clamp=function(e,t,n){return e<t?t:e>n?n:e};var nJ=new nG.default;ct.setRandomNumberSeed=function(e){nJ=new nG.default(e)};ct.nextRandomNumber=function(){return nJ.random()};ct.randomBetween=function(e,t){return ct.nextRandomNumber()*(t-e)+e};ct.acosClamped=function(e){return Math.acos(ct.clamp(e,-1,1))};ct.asinClamped=function(e){return Math.asin(ct.clamp(e,-1,1))};ct.chordLength=function(e,t){return 2*t*Math.sin(e*.5)};ct.logBase=function(e,t){return Math.log(e)/Math.log(t)};ct.cbrt=y(Math.cbrt,function(t){let n=Math.pow(Math.abs(t),.3333333333333333);return t<0?-n:n});ct.log2=y(Math.log2,function(t){return Math.log(t)*Math.LOG2E});ct.fog=function(e,t){let n=e*t;return 1-Math.exp(-(n*n))};ct.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)};ct.fastApproximateAtan2=function(e,t){let n,i=Math.abs(e);n=Math.abs(t);let r=Math.max(i,n);n=Math.min(i,n);let o=n/r;return i=ct.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?ct.PI_OVER_TWO-i:i,i=e<0?ct.PI-i:i,i=t<0?-i:i,i};var P=ct;function et(e,t,n){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0)}et.fromSpherical=function(e,t){u(t)||(t=new et);let n=e.clock,i=e.cone,r=y(e.magnitude,1),o=r*Math.sin(i);return t.x=o*Math.cos(n),t.y=o*Math.sin(n),t.z=r*Math.cos(i),t};et.fromElements=function(e,t,n,i){return u(i)?(i.x=e,i.y=t,i.z=n,i):new et(e,t,n)};et.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new et(e.x,e.y,e.z)};et.fromCartesian4=et.clone;et.packedLength=3;et.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t};et.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new et),n.x=e[t++],n.y=e[t++],n.z=e[t],n};et.packArray=function(e,t){let n=e.length,i=n*3;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let r=0;r<n;++r)et.pack(e[r],t,r*3);return t};et.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/3:t=new Array(n/3);for(let i=0;i<n;i+=3){let r=i/3;t[r]=et.unpack(e,i,t[r])}return t};et.fromArray=et.unpack;et.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)};et.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)};et.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n};et.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n};et.clamp=function(e,t,n,i){let r=P.clamp(e.x,t.x,n.x),o=P.clamp(e.y,t.y,n.y),s=P.clamp(e.z,t.z,n.z);return i.x=r,i.y=o,i.z=s,i};et.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z};et.magnitude=function(e){return Math.sqrt(et.magnitudeSquared(e))};var u3=new et;et.distance=function(e,t){return et.subtract(e,t,u3),et.magnitude(u3)};et.distanceSquared=function(e,t){return et.subtract(e,t,u3),et.magnitudeSquared(u3)};et.normalize=function(e,t){let n=et.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t};et.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z};et.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n};et.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n};et.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n};et.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n};et.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n};et.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n};et.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t};et.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var iJ=new et;et.lerp=function(e,t,n,i){return et.multiplyByScalar(t,n,iJ),i=et.multiplyByScalar(e,1-n,i),et.add(iJ,i,i)};var l3=new et,iG=new et;et.angleBetween=function(e,t){et.normalize(e,l3),et.normalize(t,iG);let n=et.dot(l3,iG),i=et.magnitude(et.cross(l3,iG,l3));return Math.atan2(i,n)};var Yxe=new et;et.mostOrthogonalAxis=function(e,t){let n=et.normalize(e,Yxe);return et.abs(n,n),n.x<=n.y?n.x<=n.z?t=et.clone(et.UNIT_X,t):t=et.clone(et.UNIT_Z,t):n.y<=n.z?t=et.clone(et.UNIT_Y,t):t=et.clone(et.UNIT_Z,t),t};et.projectVector=function(e,t,n){let i=et.dot(e,t)/et.dot(t,t);return et.multiplyByScalar(t,i,n)};et.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z};et.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]};et.equalsEpsilon=function(e,t,n,i){return e===t||u(e)&&u(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)&&P.equalsEpsilon(e.z,t.z,n,i)};et.cross=function(e,t,n){let i=e.x,r=e.y,o=e.z,s=t.x,a=t.y,c=t.z,l=r*c-o*a,f=o*s-i*c,d=i*a-r*s;return n.x=l,n.y=f,n.z=d,n};et.midpoint=function(e,t,n){return n.x=(e.x+t.x)*.5,n.y=(e.y+t.y)*.5,n.z=(e.z+t.z)*.5,n};et.fromDegrees=function(e,t,n,i,r){return e=P.toRadians(e),t=P.toRadians(t),et.fromRadians(e,t,n,i,r)};var ju=new et,XC=new et,Xxe=new et(6378137*6378137,6378137*6378137,6356752314245179e-9*6356752314245179e-9);et.fromRadians=function(e,t,n,i,r){n=y(n,0);let o=u(i)?i.radiiSquared:Xxe,s=Math.cos(t);ju.x=s*Math.cos(e),ju.y=s*Math.sin(e),ju.z=Math.sin(t),ju=et.normalize(ju,ju),et.multiplyComponents(o,ju,XC);let a=Math.sqrt(et.dot(ju,XC));return XC=et.divideByScalar(XC,a,XC),ju=et.multiplyByScalar(ju,n,ju),u(r)||(r=new et),et.add(XC,ju,r)};et.fromDegreesArray=function(e,t,n){let i=e.length;u(n)?n.length=i/2:n=new Array(i/2);for(let r=0;r<i;r+=2){let o=e[r],s=e[r+1],a=r/2;n[a]=et.fromDegrees(o,s,0,t,n[a])}return n};et.fromRadiansArray=function(e,t,n){let i=e.length;u(n)?n.length=i/2:n=new Array(i/2);for(let r=0;r<i;r+=2){let o=e[r],s=e[r+1],a=r/2;n[a]=et.fromRadians(o,s,0,t,n[a])}return n};et.fromDegreesArrayHeights=function(e,t,n){let i=e.length;u(n)?n.length=i/3:n=new Array(i/3);for(let r=0;r<i;r+=3){let o=e[r],s=e[r+1],a=e[r+2],c=r/3;n[c]=et.fromDegrees(o,s,a,t,n[c])}return n};et.fromRadiansArrayHeights=function(e,t,n){let i=e.length;u(n)?n.length=i/3:n=new Array(i/3);for(let r=0;r<i;r+=3){let o=e[r],s=e[r+1],a=e[r+2],c=r/3;n[c]=et.fromRadians(o,s,a,t,n[c])}return n};et.ZERO=Object.freeze(new et(0,0,0));et.ONE=Object.freeze(new et(1,1,1));et.UNIT_X=Object.freeze(new et(1,0,0));et.UNIT_Y=Object.freeze(new et(0,1,0));et.UNIT_Z=Object.freeze(new et(0,0,1));et.prototype.clone=function(e){return et.clone(this,e)};et.prototype.equals=function(e){return et.equals(this,e)};et.prototype.equalsEpsilon=function(e,t,n){return et.equalsEpsilon(this,e,t,n)};et.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z})`};var h=et;function yt(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}yt.fromElements=function(e,t,n,i,r){return u(r)?(r.x=e,r.y=t,r.z=n,r.w=i,r):new yt(e,t,n,i)};yt.fromColor=function(e,t){return u(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new yt(e.red,e.green,e.blue,e.alpha)};yt.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new yt(e.x,e.y,e.z,e.w)};yt.packedLength=4;yt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};yt.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new yt),n.x=e[t++],n.y=e[t++],n.z=e[t++],n.w=e[t],n};yt.packArray=function(e,t){let n=e.length,i=n*4;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let r=0;r<n;++r)yt.pack(e[r],t,r*4);return t};yt.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let r=i/4;t[r]=yt.unpack(e,i,t[r])}return t};yt.fromArray=yt.unpack;yt.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)};yt.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)};yt.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n};yt.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n};yt.clamp=function(e,t,n,i){let r=P.clamp(e.x,t.x,n.x),o=P.clamp(e.y,t.y,n.y),s=P.clamp(e.z,t.z,n.z),a=P.clamp(e.w,t.w,n.w);return i.x=r,i.y=o,i.z=s,i.w=a,i};yt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};yt.magnitude=function(e){return Math.sqrt(yt.magnitudeSquared(e))};var f3=new yt;yt.distance=function(e,t){return yt.subtract(e,t,f3),yt.magnitude(f3)};yt.distanceSquared=function(e,t){return yt.subtract(e,t,f3),yt.magnitudeSquared(f3)};yt.normalize=function(e,t){let n=yt.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t};yt.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};yt.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n};yt.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n};yt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};yt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};yt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};yt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};yt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};yt.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var rJ=new yt;yt.lerp=function(e,t,n,i){return yt.multiplyByScalar(t,n,rJ),i=yt.multiplyByScalar(e,1-n,i),yt.add(rJ,i,i)};var Kxe=new yt;yt.mostOrthogonalAxis=function(e,t){let n=yt.normalize(e,Kxe);return yt.abs(n,n),n.x<=n.y?n.x<=n.z?n.x<=n.w?t=yt.clone(yt.UNIT_X,t):t=yt.clone(yt.UNIT_W,t):n.z<=n.w?t=yt.clone(yt.UNIT_Z,t):t=yt.clone(yt.UNIT_W,t):n.y<=n.z?n.y<=n.w?t=yt.clone(yt.UNIT_Y,t):t=yt.clone(yt.UNIT_W,t):n.z<=n.w?t=yt.clone(yt.UNIT_Z,t):t=yt.clone(yt.UNIT_W,t),t};yt.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};yt.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]};yt.equalsEpsilon=function(e,t,n,i){return e===t||u(e)&&u(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)&&P.equalsEpsilon(e.z,t.z,n,i)&&P.equalsEpsilon(e.w,t.w,n,i)};yt.ZERO=Object.freeze(new yt(0,0,0,0));yt.ONE=Object.freeze(new yt(1,1,1,1));yt.UNIT_X=Object.freeze(new yt(1,0,0,0));yt.UNIT_Y=Object.freeze(new yt(0,1,0,0));yt.UNIT_Z=Object.freeze(new yt(0,0,1,0));yt.UNIT_W=Object.freeze(new yt(0,0,0,1));yt.prototype.clone=function(e){return yt.clone(this,e)};yt.prototype.equals=function(e){return yt.equals(this,e)};yt.prototype.equalsEpsilon=function(e,t,n){return yt.equalsEpsilon(this,e,t,n)};yt.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var rG=new Float32Array(1),Ba=new Uint8Array(rG.buffer),Jxe=new Uint32Array([287454020]),Zxe=new Uint8Array(Jxe.buffer),oJ=Zxe[0]===68;yt.packFloat=function(e,t){return u(t)||(t=new yt),rG[0]=e,oJ?(t.x=Ba[0],t.y=Ba[1],t.z=Ba[2],t.w=Ba[3]):(t.x=Ba[3],t.y=Ba[2],t.z=Ba[1],t.w=Ba[0]),t};yt.unpackFloat=function(e){return oJ?(Ba[0]=e.x,Ba[1]=e.y,Ba[2]=e.z,Ba[3]=e.w):(Ba[0]=e.w,Ba[1]=e.z,Ba[2]=e.y,Ba[3]=e.x),rG[0]};var se=yt;function tt(e,t,n,i,r,o,s,a,c){this[0]=y(e,0),this[1]=y(i,0),this[2]=y(s,0),this[3]=y(t,0),this[4]=y(r,0),this[5]=y(a,0),this[6]=y(n,0),this[7]=y(o,0),this[8]=y(c,0)}tt.packedLength=9;tt.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t};tt.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new tt),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n};tt.packArray=function(e,t){let n=e.length,i=n*9;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let r=0;r<n;++r)tt.pack(e[r],t,r*9);return t};tt.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/9:t=new Array(n/9);for(let i=0;i<n;i+=9){let r=i/9;t[r]=tt.unpack(e,i,t[r])}return t};tt.clone=function(e,t){if(u(e))return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new tt(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])};tt.fromArray=tt.unpack;tt.fromColumnMajorArray=function(e,t){return tt.clone(e,t)};tt.fromRowMajorArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new tt(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])};tt.fromQuaternion=function(e,t){let n=e.x*e.x,i=e.x*e.y,r=e.x*e.z,o=e.x*e.w,s=e.y*e.y,a=e.y*e.z,c=e.y*e.w,l=e.z*e.z,f=e.z*e.w,d=e.w*e.w,p=n-s-l+d,g=2*(i-f),m=2*(r+c),A=2*(i+f),x=-n+s-l+d,C=2*(a-o),T=2*(r-c),E=2*(a+o),S=-n-s+l+d;return u(t)?(t[0]=p,t[1]=A,t[2]=T,t[3]=g,t[4]=x,t[5]=E,t[6]=m,t[7]=C,t[8]=S,t):new tt(p,g,m,A,x,C,T,E,S)};tt.fromHeadingPitchRoll=function(e,t){let n=Math.cos(-e.pitch),i=Math.cos(-e.heading),r=Math.cos(e.roll),o=Math.sin(-e.pitch),s=Math.sin(-e.heading),a=Math.sin(e.roll),c=n*i,l=-r*s+a*o*i,f=a*s+r*o*i,d=n*s,p=r*i+a*o*s,g=-a*i+r*o*s,m=-o,A=a*n,x=r*n;return u(t)?(t[0]=c,t[1]=d,t[2]=m,t[3]=l,t[4]=p,t[5]=A,t[6]=f,t[7]=g,t[8]=x,t):new tt(c,l,f,d,p,g,m,A,x)};tt.fromScale=function(e,t){return u(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new tt(e.x,0,0,0,e.y,0,0,0,e.z)};tt.fromUniformScale=function(e,t){return u(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new tt(e,0,0,0,e,0,0,0,e)};tt.fromCrossProduct=function(e,t){return u(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new tt(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)};tt.fromRotationX=function(e,t){let n=Math.cos(e),i=Math.sin(e);return u(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new tt(1,0,0,0,n,-i,0,i,n)};tt.fromRotationY=function(e,t){let n=Math.cos(e),i=Math.sin(e);return u(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new tt(n,0,i,0,1,0,-i,0,n)};tt.fromRotationZ=function(e,t){let n=Math.cos(e),i=Math.sin(e);return u(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new tt(n,-i,0,i,n,0,0,0,1)};tt.toArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]};tt.getElementIndex=function(e,t){return e*3+t};tt.getColumn=function(e,t,n){let i=t*3,r=e[i],o=e[i+1],s=e[i+2];return n.x=r,n.y=o,n.z=s,n};tt.setColumn=function(e,t,n,i){i=tt.clone(e,i);let r=t*3;return i[r]=n.x,i[r+1]=n.y,i[r+2]=n.z,i};tt.getRow=function(e,t,n){let i=e[t],r=e[t+3],o=e[t+6];return n.x=i,n.y=r,n.z=o,n};tt.setRow=function(e,t,n,i){return i=tt.clone(e,i),i[t]=n.x,i[t+3]=n.y,i[t+6]=n.z,i};var Qxe=new h;tt.setScale=function(e,t,n){let i=tt.getScale(e,Qxe),r=t.x/i.x,o=t.y/i.y,s=t.z/i.z;return n[0]=e[0]*r,n[1]=e[1]*r,n[2]=e[2]*r,n[3]=e[3]*o,n[4]=e[4]*o,n[5]=e[5]*o,n[6]=e[6]*s,n[7]=e[7]*s,n[8]=e[8]*s,n};var $xe=new h;tt.setUniformScale=function(e,t,n){let i=tt.getScale(e,$xe),r=t/i.x,o=t/i.y,s=t/i.z;return n[0]=e[0]*r,n[1]=e[1]*r,n[2]=e[2]*r,n[3]=e[3]*o,n[4]=e[4]*o,n[5]=e[5]*o,n[6]=e[6]*s,n[7]=e[7]*s,n[8]=e[8]*s,n};var oG=new h;tt.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],oG)),t.y=h.magnitude(h.fromElements(e[3],e[4],e[5],oG)),t.z=h.magnitude(h.fromElements(e[6],e[7],e[8],oG)),t};var sJ=new h;tt.getMaximumScale=function(e){return tt.getScale(e,sJ),h.maximumComponent(sJ)};var eCe=new h;tt.setRotation=function(e,t,n){let i=tt.getScale(e,eCe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=t[3]*i.y,n[4]=t[4]*i.y,n[5]=t[5]*i.y,n[6]=t[6]*i.z,n[7]=t[7]*i.z,n[8]=t[8]*i.z,n};var tCe=new h;tt.getRotation=function(e,t){let n=tt.getScale(e,tCe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[3]/n.y,t[4]=e[4]/n.y,t[5]=e[5]/n.y,t[6]=e[6]/n.z,t[7]=e[7]/n.z,t[8]=e[8]/n.z,t};tt.multiply=function(e,t,n){let i=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],r=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],o=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],s=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],a=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],c=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],l=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],f=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],d=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=i,n[1]=r,n[2]=o,n[3]=s,n[4]=a,n[5]=c,n[6]=l,n[7]=f,n[8]=d,n};tt.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n};tt.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n};tt.multiplyByVector=function(e,t,n){let i=t.x,r=t.y,o=t.z,s=e[0]*i+e[3]*r+e[6]*o,a=e[1]*i+e[4]*r+e[7]*o,c=e[2]*i+e[5]*r+e[8]*o;return n.x=s,n.y=a,n.z=c,n};tt.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n};tt.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n};tt.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n};tt.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t};tt.transpose=function(e,t){let n=e[0],i=e[3],r=e[6],o=e[1],s=e[4],a=e[7],c=e[2],l=e[5],f=e[8];return t[0]=n,t[1]=i,t[2]=r,t[3]=o,t[4]=s,t[5]=a,t[6]=c,t[7]=l,t[8]=f,t};function nCe(e){let t=0;for(let n=0;n<9;++n){let i=e[n];t+=i*i}return Math.sqrt(t)}var sG=[1,0,0],aG=[2,2,1];function iCe(e){let t=0;for(let n=0;n<3;++n){let i=e[tt.getElementIndex(aG[n],sG[n])];t+=2*i*i}return Math.sqrt(t)}function rCe(e,t){let n=P.EPSILON15,i=0,r=1;for(let l=0;l<3;++l){let f=Math.abs(e[tt.getElementIndex(aG[l],sG[l])]);f>i&&(r=l,i=f)}let o=1,s=0,a=sG[r],c=aG[r];if(Math.abs(e[tt.getElementIndex(c,a)])>n){let l=e[tt.getElementIndex(c,c)],f=e[tt.getElementIndex(a,a)],d=e[tt.getElementIndex(c,a)],p=(l-f)/2/d,g;p<0?g=-1/(-p+Math.sqrt(1+p*p)):g=1/(p+Math.sqrt(1+p*p)),o=1/Math.sqrt(1+g*g),s=g*o}return t=tt.clone(tt.IDENTITY,t),t[tt.getElementIndex(a,a)]=t[tt.getElementIndex(c,c)]=o,t[tt.getElementIndex(c,a)]=s,t[tt.getElementIndex(a,c)]=-s,t}var d3=new tt,aJ=new tt;tt.computeEigenDecomposition=function(e,t){let n=P.EPSILON20,i=10,r=0,o=0;u(t)||(t={});let s=t.unitary=tt.clone(tt.IDENTITY,t.unitary),a=t.diagonal=tt.clone(e,t.diagonal),c=n*nCe(a);for(;o<i&&iCe(a)>c;)rCe(a,d3),tt.transpose(d3,aJ),tt.multiply(a,d3,a),tt.multiply(aJ,a,a),tt.multiply(s,d3,s),++r>2&&(++o,r=0);return t};tt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t};tt.determinant=function(e){let t=e[0],n=e[3],i=e[6],r=e[1],o=e[4],s=e[7],a=e[2],c=e[5],l=e[8];return t*(o*l-c*s)+r*(c*i-n*l)+a*(n*s-o*i)};tt.inverse=function(e,t){let n=e[0],i=e[1],r=e[2],o=e[3],s=e[4],a=e[5],c=e[6],l=e[7],f=e[8],d=tt.determinant(e);t[0]=s*f-l*a,t[1]=l*r-i*f,t[2]=i*a-s*r,t[3]=c*a-o*f,t[4]=n*f-c*r,t[5]=o*r-n*a,t[6]=o*l-c*s,t[7]=c*i-n*l,t[8]=n*s-o*i;let p=1/d;return tt.multiplyByScalar(t,p,t)};var oCe=new tt;tt.inverseTranspose=function(e,t){return tt.inverse(tt.transpose(e,oCe),t)};tt.equals=function(e,t){return e===t||u(e)&&u(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]};tt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n};tt.IDENTITY=Object.freeze(new tt(1,0,0,0,1,0,0,0,1));tt.ZERO=Object.freeze(new tt(0,0,0,0,0,0,0,0,0));tt.COLUMN0ROW0=0;tt.COLUMN0ROW1=1;tt.COLUMN0ROW2=2;tt.COLUMN1ROW0=3;tt.COLUMN1ROW1=4;tt.COLUMN1ROW2=5;tt.COLUMN2ROW0=6;tt.COLUMN2ROW1=7;tt.COLUMN2ROW2=8;Object.defineProperties(tt.prototype,{length:{get:function(){return tt.packedLength}}});tt.prototype.clone=function(e){return tt.clone(this,e)};tt.prototype.equals=function(e){return tt.equals(this,e)};tt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]};tt.prototype.equalsEpsilon=function(e,t){return tt.equalsEpsilon(this,e,t)};tt.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]}) +(${this[1]}, ${this[4]}, ${this[7]}) +(${this[2]}, ${this[5]}, ${this[8]})`};var Q=tt;function ov(e){this.name="RuntimeError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}u(Object.create)&&(ov.prototype=Object.create(Error.prototype),ov.prototype.constructor=ov);ov.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return u(this.stack)&&(e+=` +${this.stack.toString()}`),e};var de=ov;function $e(e,t,n,i,r,o,s,a,c,l,f,d,p,g,m,A){this[0]=y(e,0),this[1]=y(r,0),this[2]=y(c,0),this[3]=y(p,0),this[4]=y(t,0),this[5]=y(o,0),this[6]=y(l,0),this[7]=y(g,0),this[8]=y(n,0),this[9]=y(s,0),this[10]=y(f,0),this[11]=y(m,0),this[12]=y(i,0),this[13]=y(a,0),this[14]=y(d,0),this[15]=y(A,0)}$e.packedLength=16;$e.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t};$e.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new $e),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n};$e.packArray=function(e,t){let n=e.length,i=n*16;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let r=0;r<n;++r)$e.pack(e[r],t,r*16);return t};$e.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/16:t=new Array(n/16);for(let i=0;i<n;i+=16){let r=i/16;t[r]=$e.unpack(e,i,t[r])}return t};$e.clone=function(e,t){if(u(e))return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new $e(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])};$e.fromArray=$e.unpack;$e.fromColumnMajorArray=function(e,t){return $e.clone(e,t)};$e.fromRowMajorArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new $e(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])};$e.fromRotationTranslation=function(e,t,n){return t=y(t,h.ZERO),u(n)?(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=0,n[4]=e[3],n[5]=e[4],n[6]=e[5],n[7]=0,n[8]=e[6],n[9]=e[7],n[10]=e[8],n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,n):new $e(e[0],e[3],e[6],t.x,e[1],e[4],e[7],t.y,e[2],e[5],e[8],t.z,0,0,0,1)};$e.fromTranslationQuaternionRotationScale=function(e,t,n,i){u(i)||(i=new $e);let r=n.x,o=n.y,s=n.z,a=t.x*t.x,c=t.x*t.y,l=t.x*t.z,f=t.x*t.w,d=t.y*t.y,p=t.y*t.z,g=t.y*t.w,m=t.z*t.z,A=t.z*t.w,x=t.w*t.w,C=a-d-m+x,T=2*(c-A),E=2*(l+g),S=2*(c+A),v=-a+d-m+x,D=2*(p-f),M=2*(l-g),O=2*(p+f),B=-a-d+m+x;return i[0]=C*r,i[1]=S*r,i[2]=M*r,i[3]=0,i[4]=T*o,i[5]=v*o,i[6]=O*o,i[7]=0,i[8]=E*s,i[9]=D*s,i[10]=B*s,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,i};$e.fromTranslationRotationScale=function(e,t){return $e.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)};$e.fromTranslation=function(e,t){return $e.fromRotationTranslation(Q.IDENTITY,e,t)};$e.fromScale=function(e,t){return u(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new $e(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)};$e.fromUniformScale=function(e,t){return u(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new $e(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};$e.fromRotation=function(e,t){return u(t)||(t=new $e),t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t};var KC=new h,JC=new h,sv=new h;$e.fromCamera=function(e,t){let n=e.position,i=e.direction,r=e.up;h.normalize(i,KC),h.normalize(h.cross(KC,r,JC),JC),h.normalize(h.cross(JC,KC,sv),sv);let o=JC.x,s=JC.y,a=JC.z,c=KC.x,l=KC.y,f=KC.z,d=sv.x,p=sv.y,g=sv.z,m=n.x,A=n.y,x=n.z,C=o*-m+s*-A+a*-x,T=d*-m+p*-A+g*-x,E=c*m+l*A+f*x;return u(t)?(t[0]=o,t[1]=d,t[2]=-c,t[3]=0,t[4]=s,t[5]=p,t[6]=-l,t[7]=0,t[8]=a,t[9]=g,t[10]=-f,t[11]=0,t[12]=C,t[13]=T,t[14]=E,t[15]=1,t):new $e(o,s,a,C,d,p,g,T,-c,-l,-f,E,0,0,0,1)};$e.computePerspectiveFieldOfView=function(e,t,n,i,r){let s=1/Math.tan(e*.5),a=s/t,c=(i+n)/(n-i),l=2*i*n/(n-i);return r[0]=a,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=s,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=c,r[11]=-1,r[12]=0,r[13]=0,r[14]=l,r[15]=0,r};$e.computeOrthographicOffCenter=function(e,t,n,i,r,o,s){let a=1/(t-e),c=1/(i-n),l=1/(o-r),f=-(t+e)*a,d=-(i+n)*c,p=-(o+r)*l;return a*=2,c*=2,l*=-2,s[0]=a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=c,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=l,s[11]=0,s[12]=f,s[13]=d,s[14]=p,s[15]=1,s};$e.computePerspectiveOffCenter=function(e,t,n,i,r,o,s){let a=2*r/(t-e),c=2*r/(i-n),l=(t+e)/(t-e),f=(i+n)/(i-n),d=-(o+r)/(o-r),p=-1,g=-2*o*r/(o-r);return s[0]=a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=c,s[6]=0,s[7]=0,s[8]=l,s[9]=f,s[10]=d,s[11]=p,s[12]=0,s[13]=0,s[14]=g,s[15]=0,s};$e.computeInfinitePerspectiveOffCenter=function(e,t,n,i,r,o){let s=2*r/(t-e),a=2*r/(i-n),c=(t+e)/(t-e),l=(i+n)/(i-n),f=-1,d=-1,p=-2*r;return o[0]=s,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=a,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=d,o[12]=0,o[13]=0,o[14]=p,o[15]=0,o};$e.computeViewportTransformation=function(e,t,n,i){u(i)||(i=new $e),e=y(e,y.EMPTY_OBJECT);let r=y(e.x,0),o=y(e.y,0),s=y(e.width,0),a=y(e.height,0);t=y(t,0),n=y(n,1);let c=s*.5,l=a*.5,f=(n-t)*.5,d=c,p=l,g=f,m=r+c,A=o+l,x=t+f,C=1;return i[0]=d,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=p,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=g,i[11]=0,i[12]=m,i[13]=A,i[14]=x,i[15]=C,i};$e.computeView=function(e,t,n,i,r){return r[0]=i.x,r[1]=n.x,r[2]=-t.x,r[3]=0,r[4]=i.y,r[5]=n.y,r[6]=-t.y,r[7]=0,r[8]=i.z,r[9]=n.z,r[10]=-t.z,r[11]=0,r[12]=-h.dot(i,e),r[13]=-h.dot(n,e),r[14]=h.dot(t,e),r[15]=1,r};$e.toArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]};$e.getElementIndex=function(e,t){return e*4+t};$e.getColumn=function(e,t,n){let i=t*4,r=e[i],o=e[i+1],s=e[i+2],a=e[i+3];return n.x=r,n.y=o,n.z=s,n.w=a,n};$e.setColumn=function(e,t,n,i){i=$e.clone(e,i);let r=t*4;return i[r]=n.x,i[r+1]=n.y,i[r+2]=n.z,i[r+3]=n.w,i};$e.getRow=function(e,t,n){let i=e[t],r=e[t+4],o=e[t+8],s=e[t+12];return n.x=i,n.y=r,n.z=o,n.w=s,n};$e.setRow=function(e,t,n,i){return i=$e.clone(e,i),i[t]=n.x,i[t+4]=n.y,i[t+8]=n.z,i[t+12]=n.w,i};$e.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var sCe=new h;$e.setScale=function(e,t,n){let i=$e.getScale(e,sCe),r=t.x/i.x,o=t.y/i.y,s=t.z/i.z;return n[0]=e[0]*r,n[1]=e[1]*r,n[2]=e[2]*r,n[3]=e[3],n[4]=e[4]*o,n[5]=e[5]*o,n[6]=e[6]*o,n[7]=e[7],n[8]=e[8]*s,n[9]=e[9]*s,n[10]=e[10]*s,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var aCe=new h;$e.setUniformScale=function(e,t,n){let i=$e.getScale(e,aCe),r=t/i.x,o=t/i.y,s=t/i.z;return n[0]=e[0]*r,n[1]=e[1]*r,n[2]=e[2]*r,n[3]=e[3],n[4]=e[4]*o,n[5]=e[5]*o,n[6]=e[6]*o,n[7]=e[7],n[8]=e[8]*s,n[9]=e[9]*s,n[10]=e[10]*s,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var cG=new h;$e.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],cG)),t.y=h.magnitude(h.fromElements(e[4],e[5],e[6],cG)),t.z=h.magnitude(h.fromElements(e[8],e[9],e[10],cG)),t};var cJ=new h;$e.getMaximumScale=function(e){return $e.getScale(e,cJ),h.maximumComponent(cJ)};var cCe=new h;$e.setRotation=function(e,t,n){let i=$e.getScale(e,cCe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=e[3],n[4]=t[3]*i.y,n[5]=t[4]*i.y,n[6]=t[5]*i.y,n[7]=e[7],n[8]=t[6]*i.z,n[9]=t[7]*i.z,n[10]=t[8]*i.z,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var lCe=new h;$e.getRotation=function(e,t){let n=$e.getScale(e,lCe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[4]/n.y,t[4]=e[5]/n.y,t[5]=e[6]/n.y,t[6]=e[8]/n.z,t[7]=e[9]/n.z,t[8]=e[10]/n.z,t};$e.multiply=function(e,t,n){let i=e[0],r=e[1],o=e[2],s=e[3],a=e[4],c=e[5],l=e[6],f=e[7],d=e[8],p=e[9],g=e[10],m=e[11],A=e[12],x=e[13],C=e[14],T=e[15],E=t[0],S=t[1],v=t[2],D=t[3],M=t[4],O=t[5],B=t[6],L=t[7],_=t[8],b=t[9],w=t[10],I=t[11],R=t[12],F=t[13],k=t[14],V=t[15],G=i*E+a*S+d*v+A*D,U=r*E+c*S+p*v+x*D,Y=o*E+l*S+g*v+C*D,W=s*E+f*S+m*v+T*D,Z=i*M+a*O+d*B+A*L,j=r*M+c*O+p*B+x*L,K=o*M+l*O+g*B+C*L,J=s*M+f*O+m*B+T*L,_e=i*_+a*b+d*w+A*I,xe=r*_+c*b+p*w+x*I,oe=o*_+l*b+g*w+C*I,Ae=s*_+f*b+m*w+T*I,he=i*R+a*F+d*k+A*V,Se=r*R+c*F+p*k+x*V,Ie=o*R+l*F+g*k+C*V,Ne=s*R+f*F+m*k+T*V;return n[0]=G,n[1]=U,n[2]=Y,n[3]=W,n[4]=Z,n[5]=j,n[6]=K,n[7]=J,n[8]=_e,n[9]=xe,n[10]=oe,n[11]=Ae,n[12]=he,n[13]=Se,n[14]=Ie,n[15]=Ne,n};$e.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n};$e.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n};$e.multiplyTransformation=function(e,t,n){let i=e[0],r=e[1],o=e[2],s=e[4],a=e[5],c=e[6],l=e[8],f=e[9],d=e[10],p=e[12],g=e[13],m=e[14],A=t[0],x=t[1],C=t[2],T=t[4],E=t[5],S=t[6],v=t[8],D=t[9],M=t[10],O=t[12],B=t[13],L=t[14],_=i*A+s*x+l*C,b=r*A+a*x+f*C,w=o*A+c*x+d*C,I=i*T+s*E+l*S,R=r*T+a*E+f*S,F=o*T+c*E+d*S,k=i*v+s*D+l*M,V=r*v+a*D+f*M,G=o*v+c*D+d*M,U=i*O+s*B+l*L+p,Y=r*O+a*B+f*L+g,W=o*O+c*B+d*L+m;return n[0]=_,n[1]=b,n[2]=w,n[3]=0,n[4]=I,n[5]=R,n[6]=F,n[7]=0,n[8]=k,n[9]=V,n[10]=G,n[11]=0,n[12]=U,n[13]=Y,n[14]=W,n[15]=1,n};$e.multiplyByMatrix3=function(e,t,n){let i=e[0],r=e[1],o=e[2],s=e[4],a=e[5],c=e[6],l=e[8],f=e[9],d=e[10],p=t[0],g=t[1],m=t[2],A=t[3],x=t[4],C=t[5],T=t[6],E=t[7],S=t[8],v=i*p+s*g+l*m,D=r*p+a*g+f*m,M=o*p+c*g+d*m,O=i*A+s*x+l*C,B=r*A+a*x+f*C,L=o*A+c*x+d*C,_=i*T+s*E+l*S,b=r*T+a*E+f*S,w=o*T+c*E+d*S;return n[0]=v,n[1]=D,n[2]=M,n[3]=0,n[4]=O,n[5]=B,n[6]=L,n[7]=0,n[8]=_,n[9]=b,n[10]=w,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};$e.multiplyByTranslation=function(e,t,n){let i=t.x,r=t.y,o=t.z,s=i*e[0]+r*e[4]+o*e[8]+e[12],a=i*e[1]+r*e[5]+o*e[9]+e[13],c=i*e[2]+r*e[6]+o*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=s,n[13]=a,n[14]=c,n[15]=e[15],n};$e.multiplyByScale=function(e,t,n){let i=t.x,r=t.y,o=t.z;return i===1&&r===1&&o===1?$e.clone(e,n):(n[0]=i*e[0],n[1]=i*e[1],n[2]=i*e[2],n[3]=e[3],n[4]=r*e[4],n[5]=r*e[5],n[6]=r*e[6],n[7]=e[7],n[8]=o*e[8],n[9]=o*e[9],n[10]=o*e[10],n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n)};$e.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3],n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7],n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};$e.multiplyByVector=function(e,t,n){let i=t.x,r=t.y,o=t.z,s=t.w,a=e[0]*i+e[4]*r+e[8]*o+e[12]*s,c=e[1]*i+e[5]*r+e[9]*o+e[13]*s,l=e[2]*i+e[6]*r+e[10]*o+e[14]*s,f=e[3]*i+e[7]*r+e[11]*o+e[15]*s;return n.x=a,n.y=c,n.z=l,n.w=f,n};$e.multiplyByPointAsVector=function(e,t,n){let i=t.x,r=t.y,o=t.z,s=e[0]*i+e[4]*r+e[8]*o,a=e[1]*i+e[5]*r+e[9]*o,c=e[2]*i+e[6]*r+e[10]*o;return n.x=s,n.y=a,n.z=c,n};$e.multiplyByPoint=function(e,t,n){let i=t.x,r=t.y,o=t.z,s=e[0]*i+e[4]*r+e[8]*o+e[12],a=e[1]*i+e[5]*r+e[9]*o+e[13],c=e[2]*i+e[6]*r+e[10]*o+e[14];return n.x=s,n.y=a,n.z=c,n};$e.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n};$e.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t};$e.transpose=function(e,t){let n=e[1],i=e[2],r=e[3],o=e[6],s=e[7],a=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=i,t[9]=o,t[10]=e[10],t[11]=e[14],t[12]=r,t[13]=s,t[14]=a,t[15]=e[15],t};$e.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t};$e.equals=function(e,t){return e===t||u(e)&&u(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]};$e.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n};$e.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t};$e.getMatrix3=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var uCe=new Q,fCe=new Q,dCe=new se,hCe=new se(0,0,0,1);$e.inverse=function(e,t){let n=e[0],i=e[4],r=e[8],o=e[12],s=e[1],a=e[5],c=e[9],l=e[13],f=e[2],d=e[6],p=e[10],g=e[14],m=e[3],A=e[7],x=e[11],C=e[15],T=p*C,E=g*x,S=d*C,v=g*A,D=d*x,M=p*A,O=f*C,B=g*m,L=f*x,_=p*m,b=f*A,w=d*m,I=T*a+v*c+D*l-(E*a+S*c+M*l),R=E*s+O*c+_*l-(T*s+B*c+L*l),F=S*s+B*a+b*l-(v*s+O*a+w*l),k=M*s+L*a+w*c-(D*s+_*a+b*c),V=E*i+S*r+M*o-(T*i+v*r+D*o),G=T*n+B*r+L*o-(E*n+O*r+_*o),U=v*n+O*i+w*o-(S*n+B*i+b*o),Y=D*n+_*i+b*r-(M*n+L*i+w*r);T=r*l,E=o*c,S=i*l,v=o*a,D=i*c,M=r*a,O=n*l,B=o*s,L=n*c,_=r*s,b=n*a,w=i*s;let W=T*A+v*x+D*C-(E*A+S*x+M*C),Z=E*m+O*x+_*C-(T*m+B*x+L*C),j=S*m+B*A+b*C-(v*m+O*A+w*C),K=M*m+L*A+w*x-(D*m+_*A+b*x),J=S*p+M*g+E*d-(D*g+T*d+v*p),_e=L*g+T*f+B*p-(O*p+_*g+E*f),xe=O*d+w*g+v*f-(b*g+S*f+B*d),oe=b*p+D*f+_*d-(L*d+w*p+M*f),Ae=n*I+i*R+r*F+o*k;if(Math.abs(Ae)<P.EPSILON21){if(Q.equalsEpsilon($e.getMatrix3(e,uCe),fCe,P.EPSILON7)&&se.equals($e.getRow(e,3,dCe),hCe))return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=0,t[11]=0,t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=1,t;throw new de("matrix is not invertible because its determinate is zero.")}return Ae=1/Ae,t[0]=I*Ae,t[1]=R*Ae,t[2]=F*Ae,t[3]=k*Ae,t[4]=V*Ae,t[5]=G*Ae,t[6]=U*Ae,t[7]=Y*Ae,t[8]=W*Ae,t[9]=Z*Ae,t[10]=j*Ae,t[11]=K*Ae,t[12]=J*Ae,t[13]=_e*Ae,t[14]=xe*Ae,t[15]=oe*Ae,t};$e.inverseTransformation=function(e,t){let n=e[0],i=e[1],r=e[2],o=e[4],s=e[5],a=e[6],c=e[8],l=e[9],f=e[10],d=e[12],p=e[13],g=e[14],m=-n*d-i*p-r*g,A=-o*d-s*p-a*g,x=-c*d-l*p-f*g;return t[0]=n,t[1]=o,t[2]=c,t[3]=0,t[4]=i,t[5]=s,t[6]=l,t[7]=0,t[8]=r,t[9]=a,t[10]=f,t[11]=0,t[12]=m,t[13]=A,t[14]=x,t[15]=1,t};var mCe=new $e;$e.inverseTranspose=function(e,t){return $e.inverse($e.transpose(e,mCe),t)};$e.IDENTITY=Object.freeze(new $e(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));$e.ZERO=Object.freeze(new $e(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));$e.COLUMN0ROW0=0;$e.COLUMN0ROW1=1;$e.COLUMN0ROW2=2;$e.COLUMN0ROW3=3;$e.COLUMN1ROW0=4;$e.COLUMN1ROW1=5;$e.COLUMN1ROW2=6;$e.COLUMN1ROW3=7;$e.COLUMN2ROW0=8;$e.COLUMN2ROW1=9;$e.COLUMN2ROW2=10;$e.COLUMN2ROW3=11;$e.COLUMN3ROW0=12;$e.COLUMN3ROW1=13;$e.COLUMN3ROW2=14;$e.COLUMN3ROW3=15;Object.defineProperties($e.prototype,{length:{get:function(){return $e.packedLength}}});$e.prototype.clone=function(e){return $e.clone(this,e)};$e.prototype.equals=function(e){return $e.equals(this,e)};$e.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]};$e.prototype.equalsEpsilon=function(e,t){return $e.equalsEpsilon(this,e,t)};$e.prototype.toString=function(){return`(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]}) +(${this[1]}, ${this[5]}, ${this[9]}, ${this[13]}) +(${this[2]}, ${this[6]}, ${this[10]}, ${this[14]}) +(${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`};var N=$e;var pCe={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGBA_ASTC_4x4_WEBGL:37808,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_BPTC_UNORM:36492,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047},te=Object.freeze(pCe);var _Ce=new h;function Wt(e){this._size=e.size,this._datatype=e.datatype,this.getValue=e.getValue}var Hs={};Hs[te.FLOAT]="float";Hs[te.FLOAT_VEC2]="vec2";Hs[te.FLOAT_VEC3]="vec3";Hs[te.FLOAT_VEC4]="vec4";Hs[te.INT]="int";Hs[te.INT_VEC2]="ivec2";Hs[te.INT_VEC3]="ivec3";Hs[te.INT_VEC4]="ivec4";Hs[te.BOOL]="bool";Hs[te.BOOL_VEC2]="bvec2";Hs[te.BOOL_VEC3]="bvec3";Hs[te.BOOL_VEC4]="bvec4";Hs[te.FLOAT_MAT2]="mat2";Hs[te.FLOAT_MAT3]="mat3";Hs[te.FLOAT_MAT4]="mat4";Hs[te.SAMPLER_2D]="sampler2D";Hs[te.SAMPLER_CUBE]="samplerCube";Wt.prototype.getDeclaration=function(e){let t=`uniform ${Hs[this._datatype]} ${e}`,n=this._size;return n===1?t+=";":t+=`[${n.toString()}];`,t};var gCe={czm_viewport:new Wt({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.viewportCartesian4}}),czm_viewportOrthographic:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewportOrthographic}}),czm_viewportTransformation:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewportTransformation}}),czm_globeDepthTexture:new Wt({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.globeDepthTexture}}),czm_model:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.model}}),czm_inverseModel:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModel}}),czm_view:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.view}}),czm_view3D:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.view3D}}),czm_viewRotation:new Wt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.viewRotation}}),czm_viewRotation3D:new Wt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.viewRotation3D}}),czm_inverseView:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseView}}),czm_inverseView3D:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseView3D}}),czm_inverseViewRotation:new Wt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation}}),czm_inverseViewRotation3D:new Wt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation3D}}),czm_projection:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.projection}}),czm_inverseProjection:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseProjection}}),czm_infiniteProjection:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.infiniteProjection}}),czm_modelView:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelView}}),czm_modelView3D:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelView3D}}),czm_modelViewRelativeToEye:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewRelativeToEye}}),czm_inverseModelView:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelView}}),czm_inverseModelView3D:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelView3D}}),czm_viewProjection:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewProjection}}),czm_inverseViewProjection:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseViewProjection}}),czm_modelViewProjection:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewProjection}}),czm_inverseModelViewProjection:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelViewProjection}}),czm_modelViewProjectionRelativeToEye:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewProjectionRelativeToEye}}),czm_modelViewInfiniteProjection:new Wt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewInfiniteProjection}}),czm_orthographicIn3D:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.orthographicIn3D?1:0}}),czm_normal:new Wt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.normal}}),czm_normal3D:new Wt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.normal3D}}),czm_inverseNormal:new Wt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseNormal}}),czm_inverseNormal3D:new Wt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseNormal3D}}),czm_eyeHeight:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.eyeHeight}}),czm_eyeHeight2D:new Wt({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.eyeHeight2D}}),czm_entireFrustum:new Wt({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.entireFrustum}}),czm_currentFrustum:new Wt({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.currentFrustum}}),czm_frustumPlanes:new Wt({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.frustumPlanes}}),czm_farDepthFromNearPlusOne:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.farDepthFromNearPlusOne}}),czm_log2FarDepthFromNearPlusOne:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.log2FarDepthFromNearPlusOne}}),czm_oneOverLog2FarDepthFromNearPlusOne:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.oneOverLog2FarDepthFromNearPlusOne}}),czm_sunPositionWC:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunPositionWC}}),czm_sunPositionColumbusView:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunPositionColumbusView}}),czm_sunDirectionEC:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunDirectionEC}}),czm_sunDirectionWC:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunDirectionWC}}),czm_moonDirectionEC:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.moonDirectionEC}}),czm_lightDirectionEC:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightDirectionEC}}),czm_lightDirectionWC:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightDirectionWC}}),czm_lightColor:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightColor}}),czm_lightColorHdr:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightColorHdr}}),czm_encodedCameraPositionMCHigh:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCHigh}}),czm_encodedCameraPositionMCLow:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCLow}}),czm_viewerPositionWC:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return N.getTranslation(e.inverseView,_Ce)}}),czm_frameNumber:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.frameNumber}}),czm_morphTime:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.morphTime}}),czm_sceneMode:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.mode}}),czm_pass:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.pass}}),czm_backgroundColor:new Wt({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.backgroundColor}}),czm_brdfLut:new Wt({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.brdfLut}}),czm_environmentMap:new Wt({size:1,datatype:te.SAMPLER_CUBE,getValue:function(e){return e.environmentMap}}),czm_specularEnvironmentMaps:new Wt({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.specularEnvironmentMaps}}),czm_specularEnvironmentMapSize:new Wt({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.specularEnvironmentMapsDimensions}}),czm_specularEnvironmentMapsMaximumLOD:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.specularEnvironmentMapsMaximumLOD}}),czm_sphericalHarmonicCoefficients:new Wt({size:9,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sphericalHarmonicCoefficients}}),czm_temeToPseudoFixed:new Wt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.temeToPseudoFixedMatrix}}),czm_pixelRatio:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.pixelRatio}}),czm_fogDensity:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.fogDensity}}),czm_splitPosition:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.splitPosition}}),czm_geometricToleranceOverMeter:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.geometricToleranceOverMeter}}),czm_minimumDisableDepthTestDistance:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.minimumDisableDepthTestDistance}}),czm_invertClassificationColor:new Wt({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.invertClassificationColor}}),czm_gamma:new Wt({size:1,datatype:te.FLOAT,getValue:function(e){return e.gamma}}),czm_ellipsoidRadii:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.radii}}),czm_ellipsoidInverseRadii:new Wt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.oneOverRadii}})},Ym=gCe;function yCe(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var Wn=yCe;function ACe(){return!0}function xCe(e,t){t=y(t,"This object was destroyed, i.e., destroy() was called.");function n(){}for(let i in e)typeof e[i]=="function"&&(e[i]=n);e.isDestroyed=ACe}var ue=xCe;var Es={UNSIGNED_BYTE:te.UNSIGNED_BYTE,UNSIGNED_SHORT:te.UNSIGNED_SHORT,UNSIGNED_INT:te.UNSIGNED_INT};Es.getSizeInBytes=function(e){switch(e){case Es.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case Es.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case Es.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}};Es.fromSizeInBytes=function(e){switch(e){case 2:return Es.UNSIGNED_SHORT;case 4:return Es.UNSIGNED_INT;case 1:return Es.UNSIGNED_BYTE}};Es.validate=function(e){return u(e)&&(e===Es.UNSIGNED_BYTE||e===Es.UNSIGNED_SHORT||e===Es.UNSIGNED_INT)};Es.createTypedArray=function(e,t){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)};Es.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)};Es.fromTypedArray=function(e){if(e instanceof Uint8Array)return Es.UNSIGNED_BYTE;if(e instanceof Uint16Array)return Es.UNSIGNED_SHORT;if(e instanceof Uint32Array)return Es.UNSIGNED_INT};var Ue=Object.freeze(Es);var h3={STREAM_DRAW:te.STREAM_DRAW,STATIC_DRAW:te.STATIC_DRAW,DYNAMIC_DRAW:te.DYNAMIC_DRAW,validate:function(e){return e===h3.STREAM_DRAW||e===h3.STATIC_DRAW||e===h3.DYNAMIC_DRAW}},Fe=Object.freeze(h3);function qu(e){e=y(e,y.EMPTY_OBJECT);let t=e.context._gl,n=e.bufferTarget,i=e.typedArray,r=e.sizeInBytes,o=e.usage,s=u(i);s&&(r=i.byteLength);let a=t.createBuffer();t.bindBuffer(n,a),t.bufferData(n,s?i:r,o),t.bindBuffer(n,null),this._id=Wn(),this._gl=t,this._webgl2=e.context._webgl2,this._bufferTarget=n,this._sizeInBytes=r,this._usage=o,this._buffer=a,this.vertexArrayDestroyable=!0}qu.createVertexBuffer=function(e){return new qu({context:e.context,bufferTarget:te.ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage})};qu.createIndexBuffer=function(e){let t=e.context,n=e.indexDatatype,i=Ue.getSizeInBytes(n),r=new qu({context:t,bufferTarget:te.ELEMENT_ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage}),o=r.sizeInBytes/i;return Object.defineProperties(r,{indexDatatype:{get:function(){return n}},bytesPerIndex:{get:function(){return i}},numberOfIndices:{get:function(){return o}}}),r};Object.defineProperties(qu.prototype,{sizeInBytes:{get:function(){return this._sizeInBytes}},usage:{get:function(){return this._usage}}});qu.prototype._getBuffer=function(){return this._buffer};qu.prototype.copyFromArrayView=function(e,t){t=y(t,0);let n=this._gl,i=this._bufferTarget;n.bindBuffer(i,this._buffer),n.bufferSubData(i,t,e),n.bindBuffer(i,null)};qu.prototype.copyFromBuffer=function(e,t,n,i){let r=te.COPY_READ_BUFFER,o=te.COPY_WRITE_BUFFER,s=this._gl;s.bindBuffer(o,this._buffer),s.bindBuffer(r,e._buffer),s.copyBufferSubData(r,o,t,n,i),s.bindBuffer(o,null),s.bindBuffer(r,null)};qu.prototype.getBufferData=function(e,t,n,i){t=y(t,0),n=y(n,0);let r=this._gl,o=te.COPY_READ_BUFFER;r.bindBuffer(o,this._buffer),r.getBufferSubData(o,t,e,n,i),r.bindBuffer(o,null)};qu.prototype.isDestroyed=function(){return!1};qu.prototype.destroy=function(){return this._gl.deleteBuffer(this._buffer),ue(this)};var ht=qu;var Z_,Eo={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},sl={};Object.defineProperties(sl,{element:{get:function(){if(sl.supportsFullscreen())return document[Eo.fullscreenElement]}},changeEventName:{get:function(){if(sl.supportsFullscreen())return Eo.fullscreenchange}},errorEventName:{get:function(){if(sl.supportsFullscreen())return Eo.fullscreenerror}},enabled:{get:function(){if(sl.supportsFullscreen())return document[Eo.fullscreenEnabled]}},fullscreen:{get:function(){if(sl.supportsFullscreen())return sl.element!==null}}});sl.supportsFullscreen=function(){if(u(Z_))return Z_;Z_=!1;let e=document.body;if(typeof e.requestFullscreen=="function")return Eo.requestFullscreen="requestFullscreen",Eo.exitFullscreen="exitFullscreen",Eo.fullscreenEnabled="fullscreenEnabled",Eo.fullscreenElement="fullscreenElement",Eo.fullscreenchange="fullscreenchange",Eo.fullscreenerror="fullscreenerror",Z_=!0,Z_;let t=["webkit","moz","o","ms","khtml"],n;for(let i=0,r=t.length;i<r;++i){let o=t[i];n=`${o}RequestFullscreen`,typeof e[n]=="function"?(Eo.requestFullscreen=n,Z_=!0):(n=`${o}RequestFullScreen`,typeof e[n]=="function"&&(Eo.requestFullscreen=n,Z_=!0)),n=`${o}ExitFullscreen`,typeof document[n]=="function"?Eo.exitFullscreen=n:(n=`${o}CancelFullScreen`,typeof document[n]=="function"&&(Eo.exitFullscreen=n)),n=`${o}FullscreenEnabled`,document[n]!==void 0?Eo.fullscreenEnabled=n:(n=`${o}FullScreenEnabled`,document[n]!==void 0&&(Eo.fullscreenEnabled=n)),n=`${o}FullscreenElement`,document[n]!==void 0?Eo.fullscreenElement=n:(n=`${o}FullScreenElement`,document[n]!==void 0&&(Eo.fullscreenElement=n)),n=`${o}fullscreenchange`,document[`on${n}`]!==void 0&&(o==="ms"&&(n="MSFullscreenChange"),Eo.fullscreenchange=n),n=`${o}fullscreenerror`,document[`on${n}`]!==void 0&&(o==="ms"&&(n="MSFullscreenError"),Eo.fullscreenerror=n)}return Z_};sl.requestFullscreen=function(e,t){sl.supportsFullscreen()&&e[Eo.requestFullscreen]({vrDisplay:t})};sl.exitFullscreen=function(){sl.supportsFullscreen()&&document[Eo.exitFullscreen]()};sl._names=Eo;var ho=sl;var La;typeof navigator<"u"?La=navigator:La={};function C0(e){let t=e.split(".");for(let n=0,i=t.length;n<i;++n)t[n]=parseInt(t[n],10);return t}var m3,lJ;function mG(){if(!u(m3)&&(m3=!1,!x3())){let e=/ Chrome\/([\.0-9]+)/.exec(La.userAgent);e!==null&&(m3=!0,lJ=C0(e[1]))}return m3}function CCe(){return mG()&&lJ}var p3,uJ;function fJ(){if(!u(p3)&&(p3=!1,!mG()&&!x3()&&/ Safari\/[\.0-9]+/.test(La.userAgent))){let e=/ Version\/([\.0-9]+)/.exec(La.userAgent);e!==null&&(p3=!0,uJ=C0(e[1]))}return p3}function TCe(){return fJ()&&uJ}var _3,dG;function dJ(){if(!u(_3)){_3=!1;let e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(La.userAgent);e!==null&&(_3=!0,dG=C0(e[1]),dG.isNightly=!!e[2])}return _3}function ECe(){return dJ()&&dG}var av,hG;function hJ(){if(!u(av)){av=!1;let e;La.appName==="Microsoft Internet Explorer"?(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(La.userAgent),e!==null&&(av=!0,hG=C0(e[1]))):La.appName==="Netscape"&&(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(La.userAgent),e!==null&&(av=!0,hG=C0(e[1])))}return av}function bCe(){return hJ()&&hG}var g3,mJ;function x3(){if(!u(g3)){g3=!1;let e=/ Edg\/([\.0-9]+)/.exec(La.userAgent);e!==null&&(g3=!0,mJ=C0(e[1]))}return g3}function SCe(){return x3()&&mJ}var y3,pJ;function pG(){if(!u(y3)){y3=!1;let e=/Firefox\/([\.0-9]+)/.exec(La.userAgent);e!==null&&(y3=!0,pJ=C0(e[1]))}return y3}var lG;function vCe(){return u(lG)||(lG=/Windows/i.test(La.appVersion)),lG}var uG;function wCe(){return u(uG)||(uG=navigator.platform==="iPhone"||navigator.platform==="iPod"||navigator.platform==="iPad"),uG}function DCe(){return pG()&&pJ}var fG;function ICe(){return u(fG)||(fG=!pG()&&typeof PointerEvent<"u"&&(!u(La.pointerEnabled)||La.pointerEnabled)),fG}var _J,A3;function gJ(){if(!u(A3)){let e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");let t=e.style.imageRendering;A3=u(t)&&t!=="",A3&&(_J=t)}return A3}function PCe(){return gJ()?_J:void 0}function Tc(){return Tc._result}Tc._promise=void 0;Tc._result=void 0;Tc.initialize=function(){return u(Tc._promise)||(Tc._promise=new Promise(e=>{let t=new Image;t.onload=function(){Tc._result=t.width>0&&t.height>0,e(Tc._result)},t.onerror=function(){Tc._result=!1,e(Tc._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),Tc._promise};Object.defineProperties(Tc,{initialized:{get:function(){return u(Tc._result)}}});var ZC=[];typeof ArrayBuffer<"u"&&(ZC.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&ZC.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&ZC.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&ZC.push(BigInt64Array),typeof BigUint64Array<"u"&&ZC.push(BigUint64Array));var nd={isChrome:mG,chromeVersion:CCe,isSafari:fJ,safariVersion:TCe,isWebkit:dJ,webkitVersion:ECe,isInternetExplorer:hJ,internetExplorerVersion:bCe,isEdge:x3,edgeVersion:SCe,isFirefox:pG,firefoxVersion:DCe,isWindows:vCe,isIPadOrIOS:wCe,hardwareConcurrency:y(La.hardwareConcurrency,3),supportsPointerEvents:ICe,supportsImageRenderingPixelated:gJ,supportsWebP:Tc,imageRenderingValue:PCe,typedArrayTypes:ZC};nd.supportsBasis=function(e){return nd.supportsWebAssembly()&&e.context.supportsBasis};nd.supportsFullscreen=function(){return ho.supportsFullscreen()};nd.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};nd.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};nd.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};nd.supportsBigInt=function(){return typeof BigInt<"u"};nd.supportsWebWorkers=function(){return typeof Worker<"u"};nd.supportsWebAssembly=function(){return typeof WebAssembly<"u"};nd.supportsWebgl2=function(e){return e.context.webgl2};var Ht=nd;function _G(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function ie(e,t,n,i){this.red=y(e,1),this.green=y(t,1),this.blue=y(n,1),this.alpha=y(i,1)}ie.fromCartesian4=function(e,t){return u(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new ie(e.x,e.y,e.z,e.w)};ie.fromBytes=function(e,t,n,i,r){return e=ie.byteToFloat(y(e,255)),t=ie.byteToFloat(y(t,255)),n=ie.byteToFloat(y(n,255)),i=ie.byteToFloat(y(i,255)),u(r)?(r.red=e,r.green=t,r.blue=n,r.alpha=i,r):new ie(e,t,n,i)};ie.fromAlpha=function(e,t,n){return u(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new ie(e.red,e.green,e.blue,t)};var gG,yG,Xm;Ht.supportsTypedArrays()&&(gG=new ArrayBuffer(4),yG=new Uint32Array(gG),Xm=new Uint8Array(gG));ie.fromRgba=function(e,t){return yG[0]=e,ie.fromBytes(Xm[0],Xm[1],Xm[2],Xm[3],t)};ie.fromHsl=function(e,t,n,i,r){e=y(e,0)%1,t=y(t,0),n=y(n,0),i=y(i,1);let o=n,s=n,a=n;if(t!==0){let c;n<.5?c=n*(1+t):c=n+t-n*t;let l=2*n-c;o=_G(l,c,e+1/3),s=_G(l,c,e),a=_G(l,c,e-1/3)}return u(r)?(r.red=o,r.green=s,r.blue=a,r.alpha=i,r):new ie(o,s,a,i)};ie.fromRandom=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.red;if(!u(n)){let s=y(e.minimumRed,0),a=y(e.maximumRed,1);n=s+P.nextRandomNumber()*(a-s)}let i=e.green;if(!u(i)){let s=y(e.minimumGreen,0),a=y(e.maximumGreen,1);i=s+P.nextRandomNumber()*(a-s)}let r=e.blue;if(!u(r)){let s=y(e.minimumBlue,0),a=y(e.maximumBlue,1);r=s+P.nextRandomNumber()*(a-s)}let o=e.alpha;if(!u(o)){let s=y(e.minimumAlpha,0),a=y(e.maximumAlpha,1);o=s+P.nextRandomNumber()*(a-s)}return u(t)?(t.red=n,t.green=i,t.blue=r,t.alpha=o,t):new ie(n,i,r,o)};var OCe=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,MCe=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,RCe=/^rgba?\(\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)(?:\s*,\s*([0-9.]+))?\s*\)$/i,BCe=/^hsla?\(\s*([0-9.]+)\s*,\s*([0-9.]+%)\s*,\s*([0-9.]+%)(?:\s*,\s*([0-9.]+))?\s*\)$/i;ie.fromCssColorString=function(e,t){u(t)||(t=new ie),e=e.replace(/\s/g,"");let n=ie[e.toUpperCase()];if(u(n))return ie.clone(n,t),t;let i=OCe.exec(e);return i!==null?(t.red=parseInt(i[1],16)/15,t.green=parseInt(i[2],16)/15,t.blue=parseInt(i[3],16)/15,t.alpha=parseInt(y(i[4],"f"),16)/15,t):(i=MCe.exec(e),i!==null?(t.red=parseInt(i[1],16)/255,t.green=parseInt(i[2],16)/255,t.blue=parseInt(i[3],16)/255,t.alpha=parseInt(y(i[4],"ff"),16)/255,t):(i=RCe.exec(e),i!==null?(t.red=parseFloat(i[1])/(i[1].substr(-1)==="%"?100:255),t.green=parseFloat(i[2])/(i[2].substr(-1)==="%"?100:255),t.blue=parseFloat(i[3])/(i[3].substr(-1)==="%"?100:255),t.alpha=parseFloat(y(i[4],"1.0")),t):(i=BCe.exec(e),i!==null?ie.fromHsl(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(y(i[4],"1.0")),t):(t=void 0,t))))};ie.packedLength=4;ie.pack=function(e,t,n){return n=y(n,0),t[n++]=e.red,t[n++]=e.green,t[n++]=e.blue,t[n]=e.alpha,t};ie.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new ie),n.red=e[t++],n.green=e[t++],n.blue=e[t++],n.alpha=e[t],n};ie.byteToFloat=function(e){return e/255};ie.floatToByte=function(e){return e===1?255:e*256|0};ie.clone=function(e,t){if(u(e))return u(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new ie(e.red,e.green,e.blue,e.alpha)};ie.equals=function(e,t){return e===t||u(e)&&u(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha};ie.equalsArray=function(e,t,n){return e.red===t[n]&&e.green===t[n+1]&&e.blue===t[n+2]&&e.alpha===t[n+3]};ie.prototype.clone=function(e){return ie.clone(this,e)};ie.prototype.equals=function(e){return ie.equals(this,e)};ie.prototype.equalsEpsilon=function(e,t){return this===e||u(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t};ie.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};ie.prototype.toCssColorString=function(){let e=ie.floatToByte(this.red),t=ie.floatToByte(this.green),n=ie.floatToByte(this.blue);return this.alpha===1?`rgb(${e},${t},${n})`:`rgba(${e},${t},${n},${this.alpha})`};ie.prototype.toCssHexString=function(){let e=ie.floatToByte(this.red).toString(16);e.length<2&&(e=`0${e}`);let t=ie.floatToByte(this.green).toString(16);t.length<2&&(t=`0${t}`);let n=ie.floatToByte(this.blue).toString(16);if(n.length<2&&(n=`0${n}`),this.alpha<1){let i=ie.floatToByte(this.alpha).toString(16);return i.length<2&&(i=`0${i}`),`#${e}${t}${n}${i}`}return`#${e}${t}${n}`};ie.prototype.toBytes=function(e){let t=ie.floatToByte(this.red),n=ie.floatToByte(this.green),i=ie.floatToByte(this.blue),r=ie.floatToByte(this.alpha);return u(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=r,e):[t,n,i,r]};ie.prototype.toRgba=function(){return Xm[0]=ie.floatToByte(this.red),Xm[1]=ie.floatToByte(this.green),Xm[2]=ie.floatToByte(this.blue),Xm[3]=ie.floatToByte(this.alpha),yG[0]};ie.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t};ie.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t};ie.prototype.withAlpha=function(e,t){return ie.fromAlpha(this,e,t)};ie.add=function(e,t,n){return n.red=e.red+t.red,n.green=e.green+t.green,n.blue=e.blue+t.blue,n.alpha=e.alpha+t.alpha,n};ie.subtract=function(e,t,n){return n.red=e.red-t.red,n.green=e.green-t.green,n.blue=e.blue-t.blue,n.alpha=e.alpha-t.alpha,n};ie.multiply=function(e,t,n){return n.red=e.red*t.red,n.green=e.green*t.green,n.blue=e.blue*t.blue,n.alpha=e.alpha*t.alpha,n};ie.divide=function(e,t,n){return n.red=e.red/t.red,n.green=e.green/t.green,n.blue=e.blue/t.blue,n.alpha=e.alpha/t.alpha,n};ie.mod=function(e,t,n){return n.red=e.red%t.red,n.green=e.green%t.green,n.blue=e.blue%t.blue,n.alpha=e.alpha%t.alpha,n};ie.lerp=function(e,t,n,i){return i.red=P.lerp(e.red,t.red,n),i.green=P.lerp(e.green,t.green,n),i.blue=P.lerp(e.blue,t.blue,n),i.alpha=P.lerp(e.alpha,t.alpha,n),i};ie.multiplyByScalar=function(e,t,n){return n.red=e.red*t,n.green=e.green*t,n.blue=e.blue*t,n.alpha=e.alpha*t,n};ie.divideByScalar=function(e,t,n){return n.red=e.red/t,n.green=e.green/t,n.blue=e.blue/t,n.alpha=e.alpha/t,n};ie.ALICEBLUE=Object.freeze(ie.fromCssColorString("#F0F8FF"));ie.ANTIQUEWHITE=Object.freeze(ie.fromCssColorString("#FAEBD7"));ie.AQUA=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.AQUAMARINE=Object.freeze(ie.fromCssColorString("#7FFFD4"));ie.AZURE=Object.freeze(ie.fromCssColorString("#F0FFFF"));ie.BEIGE=Object.freeze(ie.fromCssColorString("#F5F5DC"));ie.BISQUE=Object.freeze(ie.fromCssColorString("#FFE4C4"));ie.BLACK=Object.freeze(ie.fromCssColorString("#000000"));ie.BLANCHEDALMOND=Object.freeze(ie.fromCssColorString("#FFEBCD"));ie.BLUE=Object.freeze(ie.fromCssColorString("#0000FF"));ie.BLUEVIOLET=Object.freeze(ie.fromCssColorString("#8A2BE2"));ie.BROWN=Object.freeze(ie.fromCssColorString("#A52A2A"));ie.BURLYWOOD=Object.freeze(ie.fromCssColorString("#DEB887"));ie.CADETBLUE=Object.freeze(ie.fromCssColorString("#5F9EA0"));ie.CHARTREUSE=Object.freeze(ie.fromCssColorString("#7FFF00"));ie.CHOCOLATE=Object.freeze(ie.fromCssColorString("#D2691E"));ie.CORAL=Object.freeze(ie.fromCssColorString("#FF7F50"));ie.CORNFLOWERBLUE=Object.freeze(ie.fromCssColorString("#6495ED"));ie.CORNSILK=Object.freeze(ie.fromCssColorString("#FFF8DC"));ie.CRIMSON=Object.freeze(ie.fromCssColorString("#DC143C"));ie.CYAN=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.DARKBLUE=Object.freeze(ie.fromCssColorString("#00008B"));ie.DARKCYAN=Object.freeze(ie.fromCssColorString("#008B8B"));ie.DARKGOLDENROD=Object.freeze(ie.fromCssColorString("#B8860B"));ie.DARKGRAY=Object.freeze(ie.fromCssColorString("#A9A9A9"));ie.DARKGREEN=Object.freeze(ie.fromCssColorString("#006400"));ie.DARKGREY=ie.DARKGRAY;ie.DARKKHAKI=Object.freeze(ie.fromCssColorString("#BDB76B"));ie.DARKMAGENTA=Object.freeze(ie.fromCssColorString("#8B008B"));ie.DARKOLIVEGREEN=Object.freeze(ie.fromCssColorString("#556B2F"));ie.DARKORANGE=Object.freeze(ie.fromCssColorString("#FF8C00"));ie.DARKORCHID=Object.freeze(ie.fromCssColorString("#9932CC"));ie.DARKRED=Object.freeze(ie.fromCssColorString("#8B0000"));ie.DARKSALMON=Object.freeze(ie.fromCssColorString("#E9967A"));ie.DARKSEAGREEN=Object.freeze(ie.fromCssColorString("#8FBC8F"));ie.DARKSLATEBLUE=Object.freeze(ie.fromCssColorString("#483D8B"));ie.DARKSLATEGRAY=Object.freeze(ie.fromCssColorString("#2F4F4F"));ie.DARKSLATEGREY=ie.DARKSLATEGRAY;ie.DARKTURQUOISE=Object.freeze(ie.fromCssColorString("#00CED1"));ie.DARKVIOLET=Object.freeze(ie.fromCssColorString("#9400D3"));ie.DEEPPINK=Object.freeze(ie.fromCssColorString("#FF1493"));ie.DEEPSKYBLUE=Object.freeze(ie.fromCssColorString("#00BFFF"));ie.DIMGRAY=Object.freeze(ie.fromCssColorString("#696969"));ie.DIMGREY=ie.DIMGRAY;ie.DODGERBLUE=Object.freeze(ie.fromCssColorString("#1E90FF"));ie.FIREBRICK=Object.freeze(ie.fromCssColorString("#B22222"));ie.FLORALWHITE=Object.freeze(ie.fromCssColorString("#FFFAF0"));ie.FORESTGREEN=Object.freeze(ie.fromCssColorString("#228B22"));ie.FUCHSIA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.GAINSBORO=Object.freeze(ie.fromCssColorString("#DCDCDC"));ie.GHOSTWHITE=Object.freeze(ie.fromCssColorString("#F8F8FF"));ie.GOLD=Object.freeze(ie.fromCssColorString("#FFD700"));ie.GOLDENROD=Object.freeze(ie.fromCssColorString("#DAA520"));ie.GRAY=Object.freeze(ie.fromCssColorString("#808080"));ie.GREEN=Object.freeze(ie.fromCssColorString("#008000"));ie.GREENYELLOW=Object.freeze(ie.fromCssColorString("#ADFF2F"));ie.GREY=ie.GRAY;ie.HONEYDEW=Object.freeze(ie.fromCssColorString("#F0FFF0"));ie.HOTPINK=Object.freeze(ie.fromCssColorString("#FF69B4"));ie.INDIANRED=Object.freeze(ie.fromCssColorString("#CD5C5C"));ie.INDIGO=Object.freeze(ie.fromCssColorString("#4B0082"));ie.IVORY=Object.freeze(ie.fromCssColorString("#FFFFF0"));ie.KHAKI=Object.freeze(ie.fromCssColorString("#F0E68C"));ie.LAVENDER=Object.freeze(ie.fromCssColorString("#E6E6FA"));ie.LAVENDAR_BLUSH=Object.freeze(ie.fromCssColorString("#FFF0F5"));ie.LAWNGREEN=Object.freeze(ie.fromCssColorString("#7CFC00"));ie.LEMONCHIFFON=Object.freeze(ie.fromCssColorString("#FFFACD"));ie.LIGHTBLUE=Object.freeze(ie.fromCssColorString("#ADD8E6"));ie.LIGHTCORAL=Object.freeze(ie.fromCssColorString("#F08080"));ie.LIGHTCYAN=Object.freeze(ie.fromCssColorString("#E0FFFF"));ie.LIGHTGOLDENRODYELLOW=Object.freeze(ie.fromCssColorString("#FAFAD2"));ie.LIGHTGRAY=Object.freeze(ie.fromCssColorString("#D3D3D3"));ie.LIGHTGREEN=Object.freeze(ie.fromCssColorString("#90EE90"));ie.LIGHTGREY=ie.LIGHTGRAY;ie.LIGHTPINK=Object.freeze(ie.fromCssColorString("#FFB6C1"));ie.LIGHTSEAGREEN=Object.freeze(ie.fromCssColorString("#20B2AA"));ie.LIGHTSKYBLUE=Object.freeze(ie.fromCssColorString("#87CEFA"));ie.LIGHTSLATEGRAY=Object.freeze(ie.fromCssColorString("#778899"));ie.LIGHTSLATEGREY=ie.LIGHTSLATEGRAY;ie.LIGHTSTEELBLUE=Object.freeze(ie.fromCssColorString("#B0C4DE"));ie.LIGHTYELLOW=Object.freeze(ie.fromCssColorString("#FFFFE0"));ie.LIME=Object.freeze(ie.fromCssColorString("#00FF00"));ie.LIMEGREEN=Object.freeze(ie.fromCssColorString("#32CD32"));ie.LINEN=Object.freeze(ie.fromCssColorString("#FAF0E6"));ie.MAGENTA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.MAROON=Object.freeze(ie.fromCssColorString("#800000"));ie.MEDIUMAQUAMARINE=Object.freeze(ie.fromCssColorString("#66CDAA"));ie.MEDIUMBLUE=Object.freeze(ie.fromCssColorString("#0000CD"));ie.MEDIUMORCHID=Object.freeze(ie.fromCssColorString("#BA55D3"));ie.MEDIUMPURPLE=Object.freeze(ie.fromCssColorString("#9370DB"));ie.MEDIUMSEAGREEN=Object.freeze(ie.fromCssColorString("#3CB371"));ie.MEDIUMSLATEBLUE=Object.freeze(ie.fromCssColorString("#7B68EE"));ie.MEDIUMSPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FA9A"));ie.MEDIUMTURQUOISE=Object.freeze(ie.fromCssColorString("#48D1CC"));ie.MEDIUMVIOLETRED=Object.freeze(ie.fromCssColorString("#C71585"));ie.MIDNIGHTBLUE=Object.freeze(ie.fromCssColorString("#191970"));ie.MINTCREAM=Object.freeze(ie.fromCssColorString("#F5FFFA"));ie.MISTYROSE=Object.freeze(ie.fromCssColorString("#FFE4E1"));ie.MOCCASIN=Object.freeze(ie.fromCssColorString("#FFE4B5"));ie.NAVAJOWHITE=Object.freeze(ie.fromCssColorString("#FFDEAD"));ie.NAVY=Object.freeze(ie.fromCssColorString("#000080"));ie.OLDLACE=Object.freeze(ie.fromCssColorString("#FDF5E6"));ie.OLIVE=Object.freeze(ie.fromCssColorString("#808000"));ie.OLIVEDRAB=Object.freeze(ie.fromCssColorString("#6B8E23"));ie.ORANGE=Object.freeze(ie.fromCssColorString("#FFA500"));ie.ORANGERED=Object.freeze(ie.fromCssColorString("#FF4500"));ie.ORCHID=Object.freeze(ie.fromCssColorString("#DA70D6"));ie.PALEGOLDENROD=Object.freeze(ie.fromCssColorString("#EEE8AA"));ie.PALEGREEN=Object.freeze(ie.fromCssColorString("#98FB98"));ie.PALETURQUOISE=Object.freeze(ie.fromCssColorString("#AFEEEE"));ie.PALEVIOLETRED=Object.freeze(ie.fromCssColorString("#DB7093"));ie.PAPAYAWHIP=Object.freeze(ie.fromCssColorString("#FFEFD5"));ie.PEACHPUFF=Object.freeze(ie.fromCssColorString("#FFDAB9"));ie.PERU=Object.freeze(ie.fromCssColorString("#CD853F"));ie.PINK=Object.freeze(ie.fromCssColorString("#FFC0CB"));ie.PLUM=Object.freeze(ie.fromCssColorString("#DDA0DD"));ie.POWDERBLUE=Object.freeze(ie.fromCssColorString("#B0E0E6"));ie.PURPLE=Object.freeze(ie.fromCssColorString("#800080"));ie.RED=Object.freeze(ie.fromCssColorString("#FF0000"));ie.ROSYBROWN=Object.freeze(ie.fromCssColorString("#BC8F8F"));ie.ROYALBLUE=Object.freeze(ie.fromCssColorString("#4169E1"));ie.SADDLEBROWN=Object.freeze(ie.fromCssColorString("#8B4513"));ie.SALMON=Object.freeze(ie.fromCssColorString("#FA8072"));ie.SANDYBROWN=Object.freeze(ie.fromCssColorString("#F4A460"));ie.SEAGREEN=Object.freeze(ie.fromCssColorString("#2E8B57"));ie.SEASHELL=Object.freeze(ie.fromCssColorString("#FFF5EE"));ie.SIENNA=Object.freeze(ie.fromCssColorString("#A0522D"));ie.SILVER=Object.freeze(ie.fromCssColorString("#C0C0C0"));ie.SKYBLUE=Object.freeze(ie.fromCssColorString("#87CEEB"));ie.SLATEBLUE=Object.freeze(ie.fromCssColorString("#6A5ACD"));ie.SLATEGRAY=Object.freeze(ie.fromCssColorString("#708090"));ie.SLATEGREY=ie.SLATEGRAY;ie.SNOW=Object.freeze(ie.fromCssColorString("#FFFAFA"));ie.SPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FF7F"));ie.STEELBLUE=Object.freeze(ie.fromCssColorString("#4682B4"));ie.TAN=Object.freeze(ie.fromCssColorString("#D2B48C"));ie.TEAL=Object.freeze(ie.fromCssColorString("#008080"));ie.THISTLE=Object.freeze(ie.fromCssColorString("#D8BFD8"));ie.TOMATO=Object.freeze(ie.fromCssColorString("#FF6347"));ie.TURQUOISE=Object.freeze(ie.fromCssColorString("#40E0D0"));ie.VIOLET=Object.freeze(ie.fromCssColorString("#EE82EE"));ie.WHEAT=Object.freeze(ie.fromCssColorString("#F5DEB3"));ie.WHITE=Object.freeze(ie.fromCssColorString("#FFFFFF"));ie.WHITESMOKE=Object.freeze(ie.fromCssColorString("#F5F5F5"));ie.YELLOW=Object.freeze(ie.fromCssColorString("#FFFF00"));ie.YELLOWGREEN=Object.freeze(ie.fromCssColorString("#9ACD32"));ie.TRANSPARENT=Object.freeze(new ie(0,0,0,0));var z=ie;function C3(e){e=y(e,y.EMPTY_OBJECT),this.color=e.color,this.depth=e.depth,this.stencil=e.stencil,this.renderState=e.renderState,this.framebuffer=e.framebuffer,this.owner=e.owner,this.pass=e.pass}C3.ALL=Object.freeze(new C3({color:new z(0,0,0,0),depth:1,stencil:0}));C3.prototype.execute=function(e,t){e.clear(this,t)};var ri=C3;var LCe={ENVIRONMENT:0,COMPUTE:1,GLOBE:2,TERRAIN_CLASSIFICATION:3,CESIUM_3D_TILE:4,CESIUM_3D_TILE_CLASSIFICATION:5,CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW:6,OPAQUE:7,TRANSLUCENT:8,VOXELS:9,OVERLAY:10,NUMBER_OF_PASSES:11},be=Object.freeze(LCe);function yJ(e){e=y(e,y.EMPTY_OBJECT),this.vertexArray=e.vertexArray,this.fragmentShaderSource=e.fragmentShaderSource,this.shaderProgram=e.shaderProgram,this.uniformMap=e.uniformMap,this.outputTexture=e.outputTexture,this.preExecute=e.preExecute,this.postExecute=e.postExecute,this.canceled=e.canceled,this.persists=y(e.persists,!1),this.pass=be.COMPUTE,this.owner=e.owner}yJ.prototype.execute=function(e){e.execute(this)};var Yu=yJ;function Pt(e,t){this.x=y(e,0),this.y=y(t,0)}Pt.fromElements=function(e,t,n){return u(n)?(n.x=e,n.y=t,n):new Pt(e,t)};Pt.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t):new Pt(e.x,e.y)};Pt.fromCartesian3=Pt.clone;Pt.fromCartesian4=Pt.clone;Pt.packedLength=2;Pt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n]=e.y,t};Pt.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Pt),n.x=e[t++],n.y=e[t],n};Pt.packArray=function(e,t){let n=e.length,i=n*2;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let r=0;r<n;++r)Pt.pack(e[r],t,r*2);return t};Pt.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/2:t=new Array(n/2);for(let i=0;i<n;i+=2){let r=i/2;t[r]=Pt.unpack(e,i,t[r])}return t};Pt.fromArray=Pt.unpack;Pt.maximumComponent=function(e){return Math.max(e.x,e.y)};Pt.minimumComponent=function(e){return Math.min(e.x,e.y)};Pt.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n};Pt.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n};Pt.clamp=function(e,t,n,i){let r=P.clamp(e.x,t.x,n.x),o=P.clamp(e.y,t.y,n.y);return i.x=r,i.y=o,i};Pt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y};Pt.magnitude=function(e){return Math.sqrt(Pt.magnitudeSquared(e))};var T3=new Pt;Pt.distance=function(e,t){return Pt.subtract(e,t,T3),Pt.magnitude(T3)};Pt.distanceSquared=function(e,t){return Pt.subtract(e,t,T3),Pt.magnitudeSquared(T3)};Pt.normalize=function(e,t){let n=Pt.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t};Pt.dot=function(e,t){return e.x*t.x+e.y*t.y};Pt.cross=function(e,t){return e.x*t.y-e.y*t.x};Pt.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n};Pt.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n};Pt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n};Pt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n};Pt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n};Pt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n};Pt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t};Pt.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var AJ=new Pt;Pt.lerp=function(e,t,n,i){return Pt.multiplyByScalar(t,n,AJ),i=Pt.multiplyByScalar(e,1-n,i),Pt.add(AJ,i,i)};var xJ=new Pt,CJ=new Pt;Pt.angleBetween=function(e,t){return Pt.normalize(e,xJ),Pt.normalize(t,CJ),P.acosClamped(Pt.dot(xJ,CJ))};var NCe=new Pt;Pt.mostOrthogonalAxis=function(e,t){let n=Pt.normalize(e,NCe);return Pt.abs(n,n),n.x<=n.y?t=Pt.clone(Pt.UNIT_X,t):t=Pt.clone(Pt.UNIT_Y,t),t};Pt.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y};Pt.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]};Pt.equalsEpsilon=function(e,t,n,i){return e===t||u(e)&&u(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)};Pt.ZERO=Object.freeze(new Pt(0,0));Pt.ONE=Object.freeze(new Pt(1,1));Pt.UNIT_X=Object.freeze(new Pt(1,0));Pt.UNIT_Y=Object.freeze(new Pt(0,1));Pt.prototype.clone=function(e){return Pt.clone(this,e)};Pt.prototype.equals=function(e){return Pt.equals(this,e)};Pt.prototype.equalsEpsilon=function(e,t,n){return Pt.equalsEpsilon(this,e,t,n)};Pt.prototype.toString=function(){return`(${this.x}, ${this.y})`};var H=Pt;var FCe=new h,UCe=new h;function VCe(e,t,n,i,r){let o=e.x,s=e.y,a=e.z,c=t.x,l=t.y,f=t.z,d=o*o*c*c,p=s*s*l*l,g=a*a*f*f,m=d+p+g,A=Math.sqrt(1/m),x=h.multiplyByScalar(e,A,FCe);if(m<i)return isFinite(A)?h.clone(x,r):void 0;let C=n.x,T=n.y,E=n.z,S=UCe;S.x=x.x*C*2,S.y=x.y*T*2,S.z=x.z*E*2;let v=(1-A)*h.magnitude(e)/(.5*h.magnitude(S)),D=0,M,O,B,L,_,b,w,I,R,F,k;do{v-=D,B=1/(1+v*C),L=1/(1+v*T),_=1/(1+v*E),b=B*B,w=L*L,I=_*_,R=b*B,F=w*L,k=I*_,M=d*b+p*w+g*I-1,O=d*R*C+p*F*T+g*k*E;let V=-2*O;D=M/V}while(Math.abs(M)>P.EPSILON12);return u(r)?(r.x=o*B,r.y=s*L,r.z=a*_,r):new h(o*B,s*L,a*_)}var T0=VCe;function Qo(e,t,n){this.longitude=y(e,0),this.latitude=y(t,0),this.height=y(n,0)}Qo.fromRadians=function(e,t,n,i){return n=y(n,0),u(i)?(i.longitude=e,i.latitude=t,i.height=n,i):new Qo(e,t,n)};Qo.fromDegrees=function(e,t,n,i){return e=P.toRadians(e),t=P.toRadians(t),Qo.fromRadians(e,t,n,i)};var kCe=new h,zCe=new h,HCe=new h,GCe=new h(1/6378137,1/6378137,1/6356752314245179e-9),WCe=new h(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9)),jCe=P.EPSILON1;Qo.fromCartesian=function(e,t,n){let i=u(t)?t.oneOverRadii:GCe,r=u(t)?t.oneOverRadiiSquared:WCe,o=u(t)?t._centerToleranceSquared:jCe,s=T0(e,i,r,o,zCe);if(!u(s))return;let a=h.multiplyComponents(s,r,kCe);a=h.normalize(a,a);let c=h.subtract(e,s,HCe),l=Math.atan2(a.y,a.x),f=Math.asin(a.z),d=P.sign(h.dot(c,e))*h.magnitude(c);return u(n)?(n.longitude=l,n.latitude=f,n.height=d,n):new Qo(l,f,d)};Qo.toCartesian=function(e,t,n){return h.fromRadians(e.longitude,e.latitude,e.height,t,n)};Qo.clone=function(e,t){if(u(e))return u(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new Qo(e.longitude,e.latitude,e.height)};Qo.equals=function(e,t){return e===t||u(e)&&u(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height};Qo.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n};Qo.ZERO=Object.freeze(new Qo(0,0,0));Qo.prototype.clone=function(e){return Qo.clone(this,e)};Qo.prototype.equals=function(e){return Qo.equals(this,e)};Qo.prototype.equalsEpsilon=function(e,t){return Qo.equalsEpsilon(this,e,t)};Qo.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var me=Qo;function EJ(e,t,n,i){t=y(t,0),n=y(n,0),i=y(i,0),e._radii=new h(t,n,i),e._radiiSquared=new h(t*t,n*n,i*i),e._radiiToTheFourth=new h(t*t*t*t,n*n*n*n,i*i*i*i),e._oneOverRadii=new h(t===0?0:1/t,n===0?0:1/n,i===0?0:1/i),e._oneOverRadiiSquared=new h(t===0?0:1/(t*t),n===0?0:1/(n*n),i===0?0:1/(i*i)),e._minimumRadius=Math.min(t,n,i),e._maximumRadius=Math.max(t,n,i),e._centerToleranceSquared=P.EPSILON1,e._radiiSquared.z!==0&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function $i(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,EJ(this,e,t,n)}Object.defineProperties($i.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}});$i.clone=function(e,t){if(!u(e))return;let n=e._radii;return u(t)?(h.clone(n,t._radii),h.clone(e._radiiSquared,t._radiiSquared),h.clone(e._radiiToTheFourth,t._radiiToTheFourth),h.clone(e._oneOverRadii,t._oneOverRadii),h.clone(e._oneOverRadiiSquared,t._oneOverRadiiSquared),t._minimumRadius=e._minimumRadius,t._maximumRadius=e._maximumRadius,t._centerToleranceSquared=e._centerToleranceSquared,t):new $i(n.x,n.y,n.z)};$i.fromCartesian3=function(e,t){return u(t)||(t=new $i),u(e)&&EJ(t,e.x,e.y,e.z),t};$i.WGS84=Object.freeze(new $i(6378137,6378137,6356752314245179e-9));$i.UNIT_SPHERE=Object.freeze(new $i(1,1,1));$i.MOON=Object.freeze(new $i(P.LUNAR_RADIUS,P.LUNAR_RADIUS,P.LUNAR_RADIUS));$i.prototype.clone=function(e){return $i.clone(this,e)};$i.packedLength=h.packedLength;$i.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),t};$i.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t);return $i.fromCartesian3(i,n)};$i.prototype.geocentricSurfaceNormal=h.normalize;$i.prototype.geodeticSurfaceNormalCartographic=function(e,t){let n=e.longitude,i=e.latitude,r=Math.cos(i),o=r*Math.cos(n),s=r*Math.sin(n),a=Math.sin(i);return u(t)||(t=new h),t.x=o,t.y=s,t.z=a,h.normalize(t,t)};$i.prototype.geodeticSurfaceNormal=function(e,t){if(!h.equalsEpsilon(e,h.ZERO,P.EPSILON14))return u(t)||(t=new h),t=h.multiplyComponents(e,this._oneOverRadiiSquared,t),h.normalize(t,t)};var qCe=new h,YCe=new h;$i.prototype.cartographicToCartesian=function(e,t){let n=qCe,i=YCe;this.geodeticSurfaceNormalCartographic(e,n),h.multiplyComponents(this._radiiSquared,n,i);let r=Math.sqrt(h.dot(n,i));return h.divideByScalar(i,r,i),h.multiplyByScalar(n,e.height,n),u(t)||(t=new h),h.add(i,n,t)};$i.prototype.cartographicArrayToCartesianArray=function(e,t){let n=e.length;u(t)?t.length=n:t=new Array(n);for(let i=0;i<n;i++)t[i]=this.cartographicToCartesian(e[i],t[i]);return t};var XCe=new h,KCe=new h,JCe=new h;$i.prototype.cartesianToCartographic=function(e,t){let n=this.scaleToGeodeticSurface(e,KCe);if(!u(n))return;let i=this.geodeticSurfaceNormal(n,XCe),r=h.subtract(e,n,JCe),o=Math.atan2(i.y,i.x),s=Math.asin(i.z),a=P.sign(h.dot(r,e))*h.magnitude(r);return u(t)?(t.longitude=o,t.latitude=s,t.height=a,t):new me(o,s,a)};$i.prototype.cartesianArrayToCartographicArray=function(e,t){let n=e.length;u(t)?t.length=n:t=new Array(n);for(let i=0;i<n;++i)t[i]=this.cartesianToCartographic(e[i],t[i]);return t};$i.prototype.scaleToGeodeticSurface=function(e,t){return T0(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)};$i.prototype.scaleToGeocentricSurface=function(e,t){u(t)||(t=new h);let n=e.x,i=e.y,r=e.z,o=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*o.x+i*i*o.y+r*r*o.z);return h.multiplyByScalar(e,s,t)};$i.prototype.transformPositionToScaledSpace=function(e,t){return u(t)||(t=new h),h.multiplyComponents(e,this._oneOverRadii,t)};$i.prototype.transformPositionFromScaledSpace=function(e,t){return u(t)||(t=new h),h.multiplyComponents(e,this._radii,t)};$i.prototype.equals=function(e){return this===e||u(e)&&h.equals(this._radii,e._radii)};$i.prototype.toString=function(){return this._radii.toString()};$i.prototype.getSurfaceNormalIntersectionWithZAxis=function(e,t,n){t=y(t,0);let i=this._squaredXOverSquaredZ;if(u(n)||(n=new h),n.x=0,n.y=0,n.z=e.z*(1-i),!(Math.abs(n.z)>=this._radii.z-t))return n};var ZCe=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],QCe=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function TJ(e,t,n){let i=.5*(t+e),r=.5*(t-e),o=0;for(let s=0;s<5;s++){let a=r*ZCe[s];o+=QCe[s]*(n(i+a)+n(i-a))}return o*=r,o}$i.prototype.surfaceArea=function(e){let t=e.west,n=e.east,i=e.south,r=e.north;for(;n<t;)n+=P.TWO_PI;let o=this._radiiSquared,s=o.x,a=o.y,c=o.z,l=s*a;return TJ(i,r,function(f){let d=Math.cos(f),p=Math.sin(f);return Math.cos(f)*TJ(t,n,function(g){let m=Math.cos(g),A=Math.sin(g);return Math.sqrt(l*p*p+c*(a*m*m+s*A*A)*d*d)})})};var re=$i;function E3(e){this._ellipsoid=y(e,re.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(E3.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});E3.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,r=e.latitude*n,o=e.height;return u(t)?(t.x=i,t.y=r,t.z=o,t):new h(i,r,o)};E3.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,r=e.y*n,o=e.z;return u(t)?(t.longitude=i,t.latitude=r,t.height=o,t):new me(i,r,o)};var Ii=E3;var $Ce={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},Qt=Object.freeze($Ce);function Un(e,t,n,i){this.west=y(e,0),this.south=y(t,0),this.east=y(n,0),this.north=y(i,0)}Object.defineProperties(Un.prototype,{width:{get:function(){return Un.computeWidth(this)}},height:{get:function(){return Un.computeHeight(this)}}});Un.packedLength=4;Un.pack=function(e,t,n){return n=y(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t};Un.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Un),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n};Un.computeWidth=function(e){let t=e.east,n=e.west;return t<n&&(t+=P.TWO_PI),t-n};Un.computeHeight=function(e){return e.north-e.south};Un.fromDegrees=function(e,t,n,i,r){return e=P.toRadians(y(e,0)),t=P.toRadians(y(t,0)),n=P.toRadians(y(n,0)),i=P.toRadians(y(i,0)),u(r)?(r.west=e,r.south=t,r.east=n,r.north=i,r):new Un(e,t,n,i)};Un.fromRadians=function(e,t,n,i,r){return u(r)?(r.west=y(e,0),r.south=y(t,0),r.east=y(n,0),r.north=y(i,0),r):new Un(e,t,n,i)};Un.fromCartographicArray=function(e,t){let n=Number.MAX_VALUE,i=-Number.MAX_VALUE,r=Number.MAX_VALUE,o=-Number.MAX_VALUE,s=Number.MAX_VALUE,a=-Number.MAX_VALUE;for(let c=0,l=e.length;c<l;c++){let f=e[c];n=Math.min(n,f.longitude),i=Math.max(i,f.longitude),s=Math.min(s,f.latitude),a=Math.max(a,f.latitude);let d=f.longitude>=0?f.longitude:f.longitude+P.TWO_PI;r=Math.min(r,d),o=Math.max(o,d)}return i-n>o-r&&(n=r,i=o,i>P.PI&&(i=i-P.TWO_PI),n>P.PI&&(n=n-P.TWO_PI)),u(t)?(t.west=n,t.south=s,t.east=i,t.north=a,t):new Un(n,s,i,a)};Un.fromCartesianArray=function(e,t,n){t=y(t,re.WGS84);let i=Number.MAX_VALUE,r=-Number.MAX_VALUE,o=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=Number.MAX_VALUE,c=-Number.MAX_VALUE;for(let l=0,f=e.length;l<f;l++){let d=t.cartesianToCartographic(e[l]);i=Math.min(i,d.longitude),r=Math.max(r,d.longitude),a=Math.min(a,d.latitude),c=Math.max(c,d.latitude);let p=d.longitude>=0?d.longitude:d.longitude+P.TWO_PI;o=Math.min(o,p),s=Math.max(s,p)}return r-i>s-o&&(i=o,r=s,r>P.PI&&(r=r-P.TWO_PI),i>P.PI&&(i=i-P.TWO_PI)),u(n)?(n.west=i,n.south=a,n.east=r,n.north=c,n):new Un(i,a,r,c)};Un.clone=function(e,t){if(u(e))return u(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new Un(e.west,e.south,e.east,e.north)};Un.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n};Un.prototype.clone=function(e){return Un.clone(this,e)};Un.prototype.equals=function(e){return Un.equals(this,e)};Un.equals=function(e,t){return e===t||u(e)&&u(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north};Un.prototype.equalsEpsilon=function(e,t){return Un.equalsEpsilon(this,e,t)};Un.validate=function(e){};Un.southwest=function(e,t){return u(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new me(e.west,e.south)};Un.northwest=function(e,t){return u(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new me(e.west,e.north)};Un.northeast=function(e,t){return u(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new me(e.east,e.north)};Un.southeast=function(e,t){return u(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new me(e.east,e.south)};Un.center=function(e,t){let n=e.east,i=e.west;n<i&&(n+=P.TWO_PI);let r=P.negativePiToPi((i+n)*.5),o=(e.south+e.north)*.5;return u(t)?(t.longitude=r,t.latitude=o,t.height=0,t):new me(r,o)};Un.intersection=function(e,t,n){let i=e.east,r=e.west,o=t.east,s=t.west;i<r&&o>0?i+=P.TWO_PI:o<s&&i>0&&(o+=P.TWO_PI),i<r&&s<0?s+=P.TWO_PI:o<s&&r<0&&(r+=P.TWO_PI);let a=P.negativePiToPi(Math.max(r,s)),c=P.negativePiToPi(Math.min(i,o));if((e.west<e.east||t.west<t.east)&&c<=a)return;let l=Math.max(e.south,t.south),f=Math.min(e.north,t.north);if(!(l>=f))return u(n)?(n.west=a,n.south=l,n.east=c,n.north=f,n):new Un(a,l,c,f)};Un.simpleIntersection=function(e,t,n){let i=Math.max(e.west,t.west),r=Math.max(e.south,t.south),o=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(r>=s||i>=o))return u(n)?(n.west=i,n.south=r,n.east=o,n.north=s,n):new Un(i,r,o,s)};Un.union=function(e,t,n){u(n)||(n=new Un);let i=e.east,r=e.west,o=t.east,s=t.west;i<r&&o>0?i+=P.TWO_PI:o<s&&i>0&&(o+=P.TWO_PI),i<r&&s<0?s+=P.TWO_PI:o<s&&r<0&&(r+=P.TWO_PI);let a=P.negativePiToPi(Math.min(r,s)),c=P.negativePiToPi(Math.max(i,o));return n.west=a,n.south=Math.min(e.south,t.south),n.east=c,n.north=Math.max(e.north,t.north),n};Un.expand=function(e,t,n){return u(n)||(n=new Un),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n};Un.contains=function(e,t){let n=t.longitude,i=t.latitude,r=e.west,o=e.east;return o<r&&(o+=P.TWO_PI,n<0&&(n+=P.TWO_PI)),(n>r||P.equalsEpsilon(n,r,P.EPSILON14))&&(n<o||P.equalsEpsilon(n,o,P.EPSILON14))&&i>=e.south&&i<=e.north};var eTe=new me;Un.subsample=function(e,t,n,i){t=y(t,re.WGS84),n=y(n,0),u(i)||(i=[]);let r=0,o=e.north,s=e.south,a=e.east,c=e.west,l=eTe;l.height=n,l.longitude=c,l.latitude=o,i[r]=t.cartographicToCartesian(l,i[r]),r++,l.longitude=a,i[r]=t.cartographicToCartesian(l,i[r]),r++,l.latitude=s,i[r]=t.cartographicToCartesian(l,i[r]),r++,l.longitude=c,i[r]=t.cartographicToCartesian(l,i[r]),r++,o<0?l.latitude=o:s>0?l.latitude=s:l.latitude=0;for(let f=1;f<8;++f)l.longitude=-Math.PI+f*P.PI_OVER_TWO,Un.contains(e,l)&&(i[r]=t.cartographicToCartesian(l,i[r]),r++);return l.latitude===0&&(l.longitude=c,i[r]=t.cartographicToCartesian(l,i[r]),r++,l.longitude=a,i[r]=t.cartographicToCartesian(l,i[r]),r++),i.length=r,i};Un.subsection=function(e,t,n,i,r,o){if(u(o)||(o=new Un),e.west<=e.east){let a=e.east-e.west;o.west=e.west+t*a,o.east=e.west+i*a}else{let a=P.TWO_PI+e.east-e.west;o.west=P.negativePiToPi(e.west+t*a),o.east=P.negativePiToPi(e.west+i*a)}let s=e.north-e.south;return o.south=e.south+n*s,o.north=e.south+r*s,t===1&&(o.west=e.east),i===1&&(o.east=e.east),n===1&&(o.south=e.north),r===1&&(o.north=e.north),o};Un.MAX_VALUE=Object.freeze(new Un(-Math.PI,-P.PI_OVER_TWO,Math.PI,P.PI_OVER_TWO));var le=Un;function bo(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.width=y(n,0),this.height=y(i,0)}bo.packedLength=4;bo.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.width,t[n]=e.height,t};bo.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new bo),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n};bo.fromPoints=function(e,t){if(u(t)||(t=new bo),!u(e)||e.length===0)return t.x=0,t.y=0,t.width=0,t.height=0,t;let n=e.length,i=e[0].x,r=e[0].y,o=e[0].x,s=e[0].y;for(let a=1;a<n;a++){let c=e[a],l=c.x,f=c.y;i=Math.min(l,i),o=Math.max(l,o),r=Math.min(f,r),s=Math.max(f,s)}return t.x=i,t.y=r,t.width=o-i,t.height=s-r,t};var tTe=new Ii,nTe=new me,iTe=new me;bo.fromRectangle=function(e,t,n){if(u(n)||(n=new bo),!u(e))return n.x=0,n.y=0,n.width=0,n.height=0,n;t=y(t,tTe);let i=t.project(le.southwest(e,nTe)),r=t.project(le.northeast(e,iTe));return H.subtract(r,i,r),n.x=i.x,n.y=i.y,n.width=r.x,n.height=r.y,n};bo.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new bo(e.x,e.y,e.width,e.height)};bo.union=function(e,t,n){u(n)||(n=new bo);let i=Math.min(e.x,t.x),r=Math.min(e.y,t.y),o=Math.max(e.x+e.width,t.x+t.width),s=Math.max(e.y+e.height,t.y+t.height);return n.x=i,n.y=r,n.width=o-i,n.height=s-r,n};bo.expand=function(e,t,n){n=bo.clone(e,n);let i=t.x-n.x,r=t.y-n.y;return i>n.width?n.width=i:i<0&&(n.width-=i,n.x=t.x),r>n.height?n.height=r:r<0&&(n.height-=r,n.y=t.y),n};bo.intersect=function(e,t){let n=e.x,i=e.y,r=t.x,o=t.y;return n>r+t.width||n+e.width<r||i+e.height<o||i>o+t.height?Qt.OUTSIDE:Qt.INTERSECTING};bo.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height};bo.prototype.clone=function(e){return bo.clone(this,e)};bo.prototype.intersect=function(e){return bo.intersect(this,e)};bo.prototype.equals=function(e){return bo.equals(this,e)};var Xe=bo;var da={POINTS:te.POINTS,LINES:te.LINES,LINE_LOOP:te.LINE_LOOP,LINE_STRIP:te.LINE_STRIP,TRIANGLES:te.TRIANGLES,TRIANGLE_STRIP:te.TRIANGLE_STRIP,TRIANGLE_FAN:te.TRIANGLE_FAN};da.isLines=function(e){return e===da.LINES||e===da.LINE_LOOP||e===da.LINE_STRIP};da.isTriangles=function(e){return e===da.TRIANGLES||e===da.TRIANGLE_STRIP||e===da.TRIANGLE_FAN};da.validate=function(e){return e===da.POINTS||e===da.LINES||e===da.LINE_LOOP||e===da.LINE_STRIP||e===da.TRIANGLES||e===da.TRIANGLE_STRIP||e===da.TRIANGLE_FAN};var Be=Object.freeze(da);var E0=`in vec4 position; +in vec2 textureCoordinates; + +out vec2 v_textureCoordinates; + +void main() +{ + gl_Position = position; + v_textureCoordinates = textureCoordinates; +} +`;var mo={CULL:1,OCCLUDE:2,EXECUTE_IN_CLOSEST_FRUSTUM:4,DEBUG_SHOW_BOUNDING_VOLUME:8,CAST_SHADOWS:16,RECEIVE_SHADOWS:32,PICK_ONLY:64,DEPTH_FOR_TRANSLUCENT_CLASSIFICATION:128};function cv(e){e=y(e,y.EMPTY_OBJECT),this._boundingVolume=e.boundingVolume,this._orientedBoundingBox=e.orientedBoundingBox,this._modelMatrix=e.modelMatrix,this._primitiveType=y(e.primitiveType,Be.TRIANGLES),this._vertexArray=e.vertexArray,this._count=e.count,this._offset=y(e.offset,0),this._instanceCount=y(e.instanceCount,0),this._shaderProgram=e.shaderProgram,this._uniformMap=e.uniformMap,this._renderState=e.renderState,this._framebuffer=e.framebuffer,this._pass=e.pass,this._owner=e.owner,this._debugOverlappingFrustums=0,this._pickId=e.pickId,this._flags=0,this.cull=y(e.cull,!0),this.occlude=y(e.occlude,!0),this.executeInClosestFrustum=y(e.executeInClosestFrustum,!1),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.castShadows=y(e.castShadows,!1),this.receiveShadows=y(e.receiveShadows,!1),this.pickOnly=y(e.pickOnly,!1),this.depthForTranslucentClassification=y(e.depthForTranslucentClassification,!1),this.dirty=!0,this.lastDirtyTime=0,this.derivedCommands={}}function Na(e,t){return(e._flags&t)===t}function Q_(e,t,n){n?e._flags|=t:e._flags&=~t}Object.defineProperties(cv.prototype,{boundingVolume:{get:function(){return this._boundingVolume},set:function(e){this._boundingVolume!==e&&(this._boundingVolume=e,this.dirty=!0)}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox},set:function(e){this._orientedBoundingBox!==e&&(this._orientedBoundingBox=e,this.dirty=!0)}},cull:{get:function(){return Na(this,mo.CULL)},set:function(e){Na(this,mo.CULL)!==e&&(Q_(this,mo.CULL,e),this.dirty=!0)}},occlude:{get:function(){return Na(this,mo.OCCLUDE)},set:function(e){Na(this,mo.OCCLUDE)!==e&&(Q_(this,mo.OCCLUDE,e),this.dirty=!0)}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix!==e&&(this._modelMatrix=e,this.dirty=!0)}},primitiveType:{get:function(){return this._primitiveType},set:function(e){this._primitiveType!==e&&(this._primitiveType=e,this.dirty=!0)}},vertexArray:{get:function(){return this._vertexArray},set:function(e){this._vertexArray!==e&&(this._vertexArray=e,this.dirty=!0)}},count:{get:function(){return this._count},set:function(e){this._count!==e&&(this._count=e,this.dirty=!0)}},offset:{get:function(){return this._offset},set:function(e){this._offset!==e&&(this._offset=e,this.dirty=!0)}},instanceCount:{get:function(){return this._instanceCount},set:function(e){this._instanceCount!==e&&(this._instanceCount=e,this.dirty=!0)}},shaderProgram:{get:function(){return this._shaderProgram},set:function(e){this._shaderProgram!==e&&(this._shaderProgram=e,this.dirty=!0)}},castShadows:{get:function(){return Na(this,mo.CAST_SHADOWS)},set:function(e){Na(this,mo.CAST_SHADOWS)!==e&&(Q_(this,mo.CAST_SHADOWS,e),this.dirty=!0)}},receiveShadows:{get:function(){return Na(this,mo.RECEIVE_SHADOWS)},set:function(e){Na(this,mo.RECEIVE_SHADOWS)!==e&&(Q_(this,mo.RECEIVE_SHADOWS,e),this.dirty=!0)}},uniformMap:{get:function(){return this._uniformMap},set:function(e){this._uniformMap!==e&&(this._uniformMap=e,this.dirty=!0)}},renderState:{get:function(){return this._renderState},set:function(e){this._renderState!==e&&(this._renderState=e,this.dirty=!0)}},framebuffer:{get:function(){return this._framebuffer},set:function(e){this._framebuffer!==e&&(this._framebuffer=e,this.dirty=!0)}},pass:{get:function(){return this._pass},set:function(e){this._pass!==e&&(this._pass=e,this.dirty=!0)}},executeInClosestFrustum:{get:function(){return Na(this,mo.EXECUTE_IN_CLOSEST_FRUSTUM)},set:function(e){Na(this,mo.EXECUTE_IN_CLOSEST_FRUSTUM)!==e&&(Q_(this,mo.EXECUTE_IN_CLOSEST_FRUSTUM,e),this.dirty=!0)}},owner:{get:function(){return this._owner},set:function(e){this._owner!==e&&(this._owner=e,this.dirty=!0)}},debugShowBoundingVolume:{get:function(){return Na(this,mo.DEBUG_SHOW_BOUNDING_VOLUME)},set:function(e){Na(this,mo.DEBUG_SHOW_BOUNDING_VOLUME)!==e&&(Q_(this,mo.DEBUG_SHOW_BOUNDING_VOLUME,e),this.dirty=!0)}},debugOverlappingFrustums:{get:function(){return this._debugOverlappingFrustums},set:function(e){this._debugOverlappingFrustums!==e&&(this._debugOverlappingFrustums=e,this.dirty=!0)}},pickId:{get:function(){return this._pickId},set:function(e){this._pickId!==e&&(this._pickId=e,this.dirty=!0)}},pickOnly:{get:function(){return Na(this,mo.PICK_ONLY)},set:function(e){Na(this,mo.PICK_ONLY)!==e&&(Q_(this,mo.PICK_ONLY,e),this.dirty=!0)}},depthForTranslucentClassification:{get:function(){return Na(this,mo.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)},set:function(e){Na(this,mo.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)!==e&&(Q_(this,mo.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION,e),this.dirty=!0)}}});cv.shallowClone=function(e,t){if(u(e))return u(t)||(t=new cv),t._boundingVolume=e._boundingVolume,t._orientedBoundingBox=e._orientedBoundingBox,t._modelMatrix=e._modelMatrix,t._primitiveType=e._primitiveType,t._vertexArray=e._vertexArray,t._count=e._count,t._offset=e._offset,t._instanceCount=e._instanceCount,t._shaderProgram=e._shaderProgram,t._uniformMap=e._uniformMap,t._renderState=e._renderState,t._framebuffer=e._framebuffer,t._pass=e._pass,t._owner=e._owner,t._debugOverlappingFrustums=e._debugOverlappingFrustums,t._pickId=e._pickId,t._flags=e._flags,t.dirty=!0,t.lastDirtyTime=0,t};cv.prototype.execute=function(e,t){e.draw(this,t)};var nt=cv;var Pi={UNSIGNED_BYTE:te.UNSIGNED_BYTE,UNSIGNED_SHORT:te.UNSIGNED_SHORT,UNSIGNED_INT:te.UNSIGNED_INT,FLOAT:te.FLOAT,HALF_FLOAT:te.HALF_FLOAT_OES,UNSIGNED_INT_24_8:te.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:te.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:te.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:te.UNSIGNED_SHORT_5_6_5};Pi.toWebGLConstant=function(e,t){switch(e){case Pi.UNSIGNED_BYTE:return te.UNSIGNED_BYTE;case Pi.UNSIGNED_SHORT:return te.UNSIGNED_SHORT;case Pi.UNSIGNED_INT:return te.UNSIGNED_INT;case Pi.FLOAT:return te.FLOAT;case Pi.HALF_FLOAT:return t.webgl2?te.HALF_FLOAT:te.HALF_FLOAT_OES;case Pi.UNSIGNED_INT_24_8:return te.UNSIGNED_INT_24_8;case Pi.UNSIGNED_SHORT_4_4_4_4:return te.UNSIGNED_SHORT_4_4_4_4;case Pi.UNSIGNED_SHORT_5_5_5_1:return te.UNSIGNED_SHORT_5_5_5_1;case Pi.UNSIGNED_SHORT_5_6_5:return Pi.UNSIGNED_SHORT_5_6_5}};Pi.isPacked=function(e){return e===Pi.UNSIGNED_INT_24_8||e===Pi.UNSIGNED_SHORT_4_4_4_4||e===Pi.UNSIGNED_SHORT_5_5_5_1||e===Pi.UNSIGNED_SHORT_5_6_5};Pi.sizeInBytes=function(e){switch(e){case Pi.UNSIGNED_BYTE:return 1;case Pi.UNSIGNED_SHORT:case Pi.UNSIGNED_SHORT_4_4_4_4:case Pi.UNSIGNED_SHORT_5_5_5_1:case Pi.UNSIGNED_SHORT_5_6_5:case Pi.HALF_FLOAT:return 2;case Pi.UNSIGNED_INT:case Pi.FLOAT:case Pi.UNSIGNED_INT_24_8:return 4}};Pi.validate=function(e){return e===Pi.UNSIGNED_BYTE||e===Pi.UNSIGNED_SHORT||e===Pi.UNSIGNED_INT||e===Pi.FLOAT||e===Pi.HALF_FLOAT||e===Pi.UNSIGNED_INT_24_8||e===Pi.UNSIGNED_SHORT_4_4_4_4||e===Pi.UNSIGNED_SHORT_5_5_5_1||e===Pi.UNSIGNED_SHORT_5_6_5};var Ke=Object.freeze(Pi);var st={DEPTH_COMPONENT:te.DEPTH_COMPONENT,DEPTH_STENCIL:te.DEPTH_STENCIL,ALPHA:te.ALPHA,RED:te.RED,RG:te.RG,RGB:te.RGB,RGBA:te.RGBA,LUMINANCE:te.LUMINANCE,LUMINANCE_ALPHA:te.LUMINANCE_ALPHA,RGB_DXT1:te.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:te.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:te.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:te.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:te.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:te.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:te.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:te.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:te.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:te.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:te.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:te.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:te.COMPRESSED_RGBA_BPTC_UNORM};st.componentsLength=function(e){switch(e){case st.RGB:return 3;case st.RGBA:return 4;case st.LUMINANCE_ALPHA:case st.RG:return 2;case st.ALPHA:case st.RED:case st.LUMINANCE:return 1;default:return 1}};st.validate=function(e){return e===st.DEPTH_COMPONENT||e===st.DEPTH_STENCIL||e===st.ALPHA||e===st.RED||e===st.RG||e===st.RGB||e===st.RGBA||e===st.LUMINANCE||e===st.LUMINANCE_ALPHA||e===st.RGB_DXT1||e===st.RGBA_DXT1||e===st.RGBA_DXT3||e===st.RGBA_DXT5||e===st.RGB_PVRTC_4BPPV1||e===st.RGB_PVRTC_2BPPV1||e===st.RGBA_PVRTC_4BPPV1||e===st.RGBA_PVRTC_2BPPV1||e===st.RGBA_ASTC||e===st.RGB_ETC1||e===st.RGB8_ETC2||e===st.RGBA8_ETC2_EAC||e===st.RGBA_BC7};st.isColorFormat=function(e){return e===st.ALPHA||e===st.RGB||e===st.RGBA||e===st.LUMINANCE||e===st.LUMINANCE_ALPHA};st.isDepthFormat=function(e){return e===st.DEPTH_COMPONENT||e===st.DEPTH_STENCIL};st.isCompressedFormat=function(e){return e===st.RGB_DXT1||e===st.RGBA_DXT1||e===st.RGBA_DXT3||e===st.RGBA_DXT5||e===st.RGB_PVRTC_4BPPV1||e===st.RGB_PVRTC_2BPPV1||e===st.RGBA_PVRTC_4BPPV1||e===st.RGBA_PVRTC_2BPPV1||e===st.RGBA_ASTC||e===st.RGB_ETC1||e===st.RGB8_ETC2||e===st.RGBA8_ETC2_EAC||e===st.RGBA_BC7};st.isDXTFormat=function(e){return e===st.RGB_DXT1||e===st.RGBA_DXT1||e===st.RGBA_DXT3||e===st.RGBA_DXT5};st.isPVRTCFormat=function(e){return e===st.RGB_PVRTC_4BPPV1||e===st.RGB_PVRTC_2BPPV1||e===st.RGBA_PVRTC_4BPPV1||e===st.RGBA_PVRTC_2BPPV1};st.isASTCFormat=function(e){return e===st.RGBA_ASTC};st.isETC1Format=function(e){return e===st.RGB_ETC1};st.isETC2Format=function(e){return e===st.RGB8_ETC2||e===st.RGBA8_ETC2_EAC};st.isBC7Format=function(e){return e===st.RGBA_BC7};st.compressedTextureSizeInBytes=function(e,t,n){switch(e){case st.RGB_DXT1:case st.RGBA_DXT1:case st.RGB_ETC1:case st.RGB8_ETC2:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*8;case st.RGBA_DXT3:case st.RGBA_DXT5:case st.RGBA_ASTC:case st.RGBA8_ETC2_EAC:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*16;case st.RGB_PVRTC_4BPPV1:case st.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(n,8)*4+7)/8);case st.RGB_PVRTC_2BPPV1:case st.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(n,8)*2+7)/8);case st.RGBA_BC7:return Math.ceil(t/4)*Math.ceil(n/4)*16;default:return 0}};st.textureSizeInBytes=function(e,t,n,i){let r=st.componentsLength(e);return Ke.isPacked(t)&&(r=1),r*Ke.sizeInBytes(t)*n*i};st.alignmentInBytes=function(e,t,n){let i=st.textureSizeInBytes(e,t,n,1)%4;return i===0?4:i===2?2:1};st.createTypedArray=function(e,t,n,i){let r,o=Ke.sizeInBytes(t);o===Uint8Array.BYTES_PER_ELEMENT?r=Uint8Array:o===Uint16Array.BYTES_PER_ELEMENT?r=Uint16Array:o===Float32Array.BYTES_PER_ELEMENT&&t===Ke.FLOAT?r=Float32Array:r=Uint32Array;let s=st.componentsLength(e)*n*i;return new r(s)};st.flipY=function(e,t,n,i,r){if(r===1)return e;let o=st.createTypedArray(t,n,i,r),s=st.componentsLength(t),a=i*s;for(let c=0;c<r;++c){let l=c*i*s,f=(r-c-1)*i*s;for(let d=0;d<a;++d)o[f+d]=e[l+d]}return o};st.toInternalFormat=function(e,t,n){if(!n.webgl2)return e;if(e===st.DEPTH_STENCIL)return te.DEPTH24_STENCIL8;if(e===st.DEPTH_COMPONENT){if(t===Ke.UNSIGNED_SHORT)return te.DEPTH_COMPONENT16;if(t===Ke.UNSIGNED_INT)return te.DEPTH_COMPONENT24}if(t===Ke.FLOAT)switch(e){case st.RGBA:return te.RGBA32F;case st.RGB:return te.RGB32F;case st.RG:return te.RG32F;case st.RED:return te.R32F}if(t===Ke.HALF_FLOAT)switch(e){case st.RGBA:return te.RGBA16F;case st.RGB:return te.RGB16F;case st.RG:return te.RG16F;case st.RED:return te.R16F}return e};var at=Object.freeze(st);var po={_maximumCombinedTextureImageUnits:0,_maximumCubeMapSize:0,_maximumFragmentUniformVectors:0,_maximumTextureImageUnits:0,_maximumRenderbufferSize:0,_maximumTextureSize:0,_maximumVaryingVectors:0,_maximumVertexAttributes:0,_maximumVertexTextureImageUnits:0,_maximumVertexUniformVectors:0,_minimumAliasedLineWidth:0,_maximumAliasedLineWidth:0,_minimumAliasedPointSize:0,_maximumAliasedPointSize:0,_maximumViewportWidth:0,_maximumViewportHeight:0,_maximumTextureFilterAnisotropy:0,_maximumDrawBuffers:0,_maximumColorAttachments:0,_maximumSamples:0,_highpFloatSupported:!1,_highpIntSupported:!1};Object.defineProperties(po,{maximumCombinedTextureImageUnits:{get:function(){return po._maximumCombinedTextureImageUnits}},maximumCubeMapSize:{get:function(){return po._maximumCubeMapSize}},maximumFragmentUniformVectors:{get:function(){return po._maximumFragmentUniformVectors}},maximumTextureImageUnits:{get:function(){return po._maximumTextureImageUnits}},maximumRenderbufferSize:{get:function(){return po._maximumRenderbufferSize}},maximumTextureSize:{get:function(){return po._maximumTextureSize}},maximumVaryingVectors:{get:function(){return po._maximumVaryingVectors}},maximumVertexAttributes:{get:function(){return po._maximumVertexAttributes}},maximumVertexTextureImageUnits:{get:function(){return po._maximumVertexTextureImageUnits}},maximumVertexUniformVectors:{get:function(){return po._maximumVertexUniformVectors}},minimumAliasedLineWidth:{get:function(){return po._minimumAliasedLineWidth}},maximumAliasedLineWidth:{get:function(){return po._maximumAliasedLineWidth}},minimumAliasedPointSize:{get:function(){return po._minimumAliasedPointSize}},maximumAliasedPointSize:{get:function(){return po._maximumAliasedPointSize}},maximumViewportWidth:{get:function(){return po._maximumViewportWidth}},maximumViewportHeight:{get:function(){return po._maximumViewportHeight}},maximumTextureFilterAnisotropy:{get:function(){return po._maximumTextureFilterAnisotropy}},maximumDrawBuffers:{get:function(){return po._maximumDrawBuffers}},maximumColorAttachments:{get:function(){return po._maximumColorAttachments}},maximumSamples:{get:function(){return po._maximumSamples}},highpFloatSupported:{get:function(){return po._highpFloatSupported}},highpIntSupported:{get:function(){return po._highpIntSupported}}});var zt=po;function AG(e,t,n){let i=e._gl;i.framebufferTexture2D(i.FRAMEBUFFER,t,n._target,n._texture,0)}function b3(e,t,n){let i=e._gl;i.framebufferRenderbuffer(i.FRAMEBUFFER,t,i.RENDERBUFFER,n._getRenderbuffer())}function id(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=zt.maximumColorAttachments;this._gl=n,this._framebuffer=n.createFramebuffer(),this._colorTextures=[],this._colorRenderbuffers=[],this._activeColorAttachments=[],this._depthTexture=void 0,this._depthRenderbuffer=void 0,this._stencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this.destroyAttachments=y(e.destroyAttachments,!0);let r=u(e.depthTexture)||u(e.depthRenderbuffer),o=u(e.depthStencilTexture)||u(e.depthStencilRenderbuffer);this._bind();let s,a,c,l,f;if(u(e.colorTextures)){let d=e.colorTextures;for(l=this._colorTextures.length=this._activeColorAttachments.length=d.length,c=0;c<l;++c)s=d[c],f=this._gl.COLOR_ATTACHMENT0+c,AG(this,f,s),this._activeColorAttachments[c]=f,this._colorTextures[c]=s}if(u(e.colorRenderbuffers)){let d=e.colorRenderbuffers;for(l=this._colorRenderbuffers.length=this._activeColorAttachments.length=d.length,c=0;c<l;++c)a=d[c],f=this._gl.COLOR_ATTACHMENT0+c,b3(this,f,a),this._activeColorAttachments[c]=f,this._colorRenderbuffers[c]=a}u(e.depthTexture)&&(s=e.depthTexture,AG(this,this._gl.DEPTH_ATTACHMENT,s),this._depthTexture=s),u(e.depthRenderbuffer)&&(a=e.depthRenderbuffer,b3(this,this._gl.DEPTH_ATTACHMENT,a),this._depthRenderbuffer=a),u(e.stencilRenderbuffer)&&(a=e.stencilRenderbuffer,b3(this,this._gl.STENCIL_ATTACHMENT,a),this._stencilRenderbuffer=a),u(e.depthStencilTexture)&&(s=e.depthStencilTexture,AG(this,this._gl.DEPTH_STENCIL_ATTACHMENT,s),this._depthStencilTexture=s),u(e.depthStencilRenderbuffer)&&(a=e.depthStencilRenderbuffer,b3(this,this._gl.DEPTH_STENCIL_ATTACHMENT,a),this._depthStencilRenderbuffer=a),this._unBind()}Object.defineProperties(id.prototype,{status:{get:function(){this._bind();let e=this._gl.checkFramebufferStatus(this._gl.FRAMEBUFFER);return this._unBind(),e}},numberOfColorAttachments:{get:function(){return this._activeColorAttachments.length}},depthTexture:{get:function(){return this._depthTexture}},depthRenderbuffer:{get:function(){return this._depthRenderbuffer}},stencilRenderbuffer:{get:function(){return this._stencilRenderbuffer}},depthStencilTexture:{get:function(){return this._depthStencilTexture}},depthStencilRenderbuffer:{get:function(){return this._depthStencilRenderbuffer}},hasDepthAttachment:{get:function(){return!!(this.depthTexture||this.depthRenderbuffer||this.depthStencilTexture||this.depthStencilRenderbuffer)}}});id.prototype._bind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,this._framebuffer)};id.prototype._unBind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,null)};id.prototype.bindDraw=function(){let e=this._gl;e.bindFramebuffer(e.DRAW_FRAMEBUFFER,this._framebuffer)};id.prototype.bindRead=function(){let e=this._gl;e.bindFramebuffer(e.READ_FRAMEBUFFER,this._framebuffer)};id.prototype._getActiveColorAttachments=function(){return this._activeColorAttachments};id.prototype.getColorTexture=function(e){return this._colorTextures[e]};id.prototype.getColorRenderbuffer=function(e){return this._colorRenderbuffers[e]};id.prototype.isDestroyed=function(){return!1};id.prototype.destroy=function(){if(this.destroyAttachments){let e=0,t=this._colorTextures,n=t.length;for(;e<n;++e){let r=t[e];u(r)&&r.destroy()}let i=this._colorRenderbuffers;for(n=i.length,e=0;e<n;++e){let r=i[e];u(r)&&r.destroy()}this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy(),this._stencilRenderbuffer=this._stencilRenderbuffer&&this._stencilRenderbuffer.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()}return this._gl.deleteFramebuffer(this._framebuffer),ue(this)};var Gs=id;var S3={CLOCKWISE:te.CW,COUNTER_CLOCKWISE:te.CCW};S3.validate=function(e){return e===S3.CLOCKWISE||e===S3.COUNTER_CLOCKWISE};var $o=Object.freeze(S3);function bJ(e){if(typeof e!="object"||e===null)return e;let t,n=Object.keys(e);for(let i=0;i<n.length;i++)t=n[i],e.hasOwnProperty(t)&&t!=="_applyFunctions"&&(e[t]=bJ(e[t]));return Object.freeze(e)}var xG=bJ;function Ph(e){let t=y(e,y.EMPTY_OBJECT),n=y(t.cull,y.EMPTY_OBJECT),i=y(t.polygonOffset,y.EMPTY_OBJECT),r=y(t.scissorTest,y.EMPTY_OBJECT),o=y(r.rectangle,y.EMPTY_OBJECT),s=y(t.depthRange,y.EMPTY_OBJECT),a=y(t.depthTest,y.EMPTY_OBJECT),c=y(t.colorMask,y.EMPTY_OBJECT),l=y(t.blending,y.EMPTY_OBJECT),f=y(l.color,y.EMPTY_OBJECT),d=y(t.stencilTest,y.EMPTY_OBJECT),p=y(d.frontOperation,y.EMPTY_OBJECT),g=y(d.backOperation,y.EMPTY_OBJECT),m=y(t.sampleCoverage,y.EMPTY_OBJECT),A=t.viewport;this.frontFace=y(t.frontFace,$o.COUNTER_CLOCKWISE),this.cull={enabled:y(n.enabled,!1),face:y(n.face,te.BACK)},this.lineWidth=y(t.lineWidth,1),this.polygonOffset={enabled:y(i.enabled,!1),factor:y(i.factor,0),units:y(i.units,0)},this.scissorTest={enabled:y(r.enabled,!1),rectangle:Xe.clone(o)},this.depthRange={near:y(s.near,0),far:y(s.far,1)},this.depthTest={enabled:y(a.enabled,!1),func:y(a.func,te.LESS)},this.colorMask={red:y(c.red,!0),green:y(c.green,!0),blue:y(c.blue,!0),alpha:y(c.alpha,!0)},this.depthMask=y(t.depthMask,!0),this.stencilMask=y(t.stencilMask,-1),this.blending={enabled:y(l.enabled,!1),color:new z(y(f.red,0),y(f.green,0),y(f.blue,0),y(f.alpha,0)),equationRgb:y(l.equationRgb,te.FUNC_ADD),equationAlpha:y(l.equationAlpha,te.FUNC_ADD),functionSourceRgb:y(l.functionSourceRgb,te.ONE),functionSourceAlpha:y(l.functionSourceAlpha,te.ONE),functionDestinationRgb:y(l.functionDestinationRgb,te.ZERO),functionDestinationAlpha:y(l.functionDestinationAlpha,te.ZERO)},this.stencilTest={enabled:y(d.enabled,!1),frontFunction:y(d.frontFunction,te.ALWAYS),backFunction:y(d.backFunction,te.ALWAYS),reference:y(d.reference,0),mask:y(d.mask,-1),frontOperation:{fail:y(p.fail,te.KEEP),zFail:y(p.zFail,te.KEEP),zPass:y(p.zPass,te.KEEP)},backOperation:{fail:y(g.fail,te.KEEP),zFail:y(g.zFail,te.KEEP),zPass:y(g.zPass,te.KEEP)}},this.sampleCoverage={enabled:y(m.enabled,!1),value:y(m.value,1),invert:y(m.invert,!1)},this.viewport=u(A)?new Xe(A.x,A.y,A.width,A.height):void 0,this.id=0,this._applyFunctions=[]}var rTe=0,Ih={};Ph.fromCache=function(e){let t=JSON.stringify(e),n=Ih[t];if(u(n))return++n.referenceCount,n.state;let i=new Ph(e),r=JSON.stringify(i);return n=Ih[r],u(n)||(i.id=rTe++,n={referenceCount:0,state:i},Ih[r]=n),++n.referenceCount,Ih[t]={referenceCount:1,state:n.state},n.state};Ph.removeFromCache=function(e){let t=new Ph(e),n=JSON.stringify(t),i=Ih[n],r=JSON.stringify(e),o=Ih[r];u(o)&&(--o.referenceCount,o.referenceCount===0&&(delete Ih[r],u(i)&&--i.referenceCount)),u(i)&&i.referenceCount===0&&delete Ih[n]};Ph.getCache=function(){return Ih};Ph.clearCache=function(){Ih={}};function b0(e,t,n){n?e.enable(t):e.disable(t)}function SJ(e,t){e.frontFace(t.frontFace)}function vJ(e,t){let n=t.cull,i=n.enabled;b0(e,e.CULL_FACE,i),i&&e.cullFace(n.face)}function wJ(e,t){e.lineWidth(t.lineWidth)}function DJ(e,t){let n=t.polygonOffset,i=n.enabled;b0(e,e.POLYGON_OFFSET_FILL,i),i&&e.polygonOffset(n.factor,n.units)}function IJ(e,t,n){let i=t.scissorTest,r=u(n.scissorTest)?n.scissorTest.enabled:i.enabled;if(b0(e,e.SCISSOR_TEST,r),r){let o=u(n.scissorTest)?n.scissorTest.rectangle:i.rectangle;e.scissor(o.x,o.y,o.width,o.height)}}function PJ(e,t){let n=t.depthRange;e.depthRange(n.near,n.far)}function OJ(e,t){let n=t.depthTest,i=n.enabled;b0(e,e.DEPTH_TEST,i),i&&e.depthFunc(n.func)}function MJ(e,t){let n=t.colorMask;e.colorMask(n.red,n.green,n.blue,n.alpha)}function RJ(e,t){e.depthMask(t.depthMask)}function BJ(e,t){e.stencilMask(t.stencilMask)}function oTe(e,t){e.blendColor(t.red,t.green,t.blue,t.alpha)}function LJ(e,t,n){let i=t.blending,r=u(n.blendingEnabled)?n.blendingEnabled:i.enabled;b0(e,e.BLEND,r),r&&(oTe(e,i.color),e.blendEquationSeparate(i.equationRgb,i.equationAlpha),e.blendFuncSeparate(i.functionSourceRgb,i.functionDestinationRgb,i.functionSourceAlpha,i.functionDestinationAlpha))}function NJ(e,t){let n=t.stencilTest,i=n.enabled;if(b0(e,e.STENCIL_TEST,i),i){let r=n.frontFunction,o=n.backFunction,s=n.reference,a=n.mask;e.stencilFunc(r,s,a),e.stencilFuncSeparate(e.BACK,o,s,a),e.stencilFuncSeparate(e.FRONT,r,s,a);let c=n.frontOperation,l=c.fail,f=c.zFail,d=c.zPass;e.stencilOpSeparate(e.FRONT,l,f,d);let p=n.backOperation,g=p.fail,m=p.zFail,A=p.zPass;e.stencilOpSeparate(e.BACK,g,m,A)}}function FJ(e,t){let n=t.sampleCoverage,i=n.enabled;b0(e,e.SAMPLE_COVERAGE,i),i&&e.sampleCoverage(n.value,n.invert)}var sTe=new Xe;function UJ(e,t,n){let i=y(t.viewport,n.viewport);u(i)||(i=sTe,i.width=n.context.drawingBufferWidth,i.height=n.context.drawingBufferHeight),n.context.uniformState.viewport=i,e.viewport(i.x,i.y,i.width,i.height)}Ph.apply=function(e,t,n){SJ(e,t),vJ(e,t),wJ(e,t),DJ(e,t),PJ(e,t),OJ(e,t),MJ(e,t),RJ(e,t),BJ(e,t),NJ(e,t),FJ(e,t),IJ(e,t,n),LJ(e,t,n),UJ(e,t,n)};function aTe(e,t){let n=[];return e.frontFace!==t.frontFace&&n.push(SJ),(e.cull.enabled!==t.cull.enabled||e.cull.face!==t.cull.face)&&n.push(vJ),e.lineWidth!==t.lineWidth&&n.push(wJ),(e.polygonOffset.enabled!==t.polygonOffset.enabled||e.polygonOffset.factor!==t.polygonOffset.factor||e.polygonOffset.units!==t.polygonOffset.units)&&n.push(DJ),(e.depthRange.near!==t.depthRange.near||e.depthRange.far!==t.depthRange.far)&&n.push(PJ),(e.depthTest.enabled!==t.depthTest.enabled||e.depthTest.func!==t.depthTest.func)&&n.push(OJ),(e.colorMask.red!==t.colorMask.red||e.colorMask.green!==t.colorMask.green||e.colorMask.blue!==t.colorMask.blue||e.colorMask.alpha!==t.colorMask.alpha)&&n.push(MJ),e.depthMask!==t.depthMask&&n.push(RJ),e.stencilMask!==t.stencilMask&&n.push(BJ),(e.stencilTest.enabled!==t.stencilTest.enabled||e.stencilTest.frontFunction!==t.stencilTest.frontFunction||e.stencilTest.backFunction!==t.stencilTest.backFunction||e.stencilTest.reference!==t.stencilTest.reference||e.stencilTest.mask!==t.stencilTest.mask||e.stencilTest.frontOperation.fail!==t.stencilTest.frontOperation.fail||e.stencilTest.frontOperation.zFail!==t.stencilTest.frontOperation.zFail||e.stencilTest.backOperation.fail!==t.stencilTest.backOperation.fail||e.stencilTest.backOperation.zFail!==t.stencilTest.backOperation.zFail||e.stencilTest.backOperation.zPass!==t.stencilTest.backOperation.zPass)&&n.push(NJ),(e.sampleCoverage.enabled!==t.sampleCoverage.enabled||e.sampleCoverage.value!==t.sampleCoverage.value||e.sampleCoverage.invert!==t.sampleCoverage.invert)&&n.push(FJ),n}Ph.partialApply=function(e,t,n,i,r,o){if(t!==n){let f=n._applyFunctions[t.id];u(f)||(f=aTe(t,n),n._applyFunctions[t.id]=f);let d=f.length;for(let p=0;p<d;++p)f[p](e,n)}let s=u(i.scissorTest)?i.scissorTest:t.scissorTest,a=u(r.scissorTest)?r.scissorTest:n.scissorTest;(s!==a||o)&&IJ(e,n,r);let c=u(i.blendingEnabled)?i.blendingEnabled:t.blending.enabled,l=u(r.blendingEnabled)?r.blendingEnabled:n.blending.enabled;(c!==l||l&&t.blending!==n.blending)&&LJ(e,n,r),(t!==n||i!==r||i.context!==r.context)&&UJ(e,n,r)};Ph.getState=function(e){return{frontFace:e.frontFace,cull:{enabled:e.cull.enabled,face:e.cull.face},lineWidth:e.lineWidth,polygonOffset:{enabled:e.polygonOffset.enabled,factor:e.polygonOffset.factor,units:e.polygonOffset.units},scissorTest:{enabled:e.scissorTest.enabled,rectangle:Xe.clone(e.scissorTest.rectangle)},depthRange:{near:e.depthRange.near,far:e.depthRange.far},depthTest:{enabled:e.depthTest.enabled,func:e.depthTest.func},colorMask:{red:e.colorMask.red,green:e.colorMask.green,blue:e.colorMask.blue,alpha:e.colorMask.alpha},depthMask:e.depthMask,stencilMask:e.stencilMask,blending:{enabled:e.blending.enabled,color:z.clone(e.blending.color),equationRgb:e.blending.equationRgb,equationAlpha:e.blending.equationAlpha,functionSourceRgb:e.blending.functionSourceRgb,functionSourceAlpha:e.blending.functionSourceAlpha,functionDestinationRgb:e.blending.functionDestinationRgb,functionDestinationAlpha:e.blending.functionDestinationAlpha},stencilTest:{enabled:e.stencilTest.enabled,frontFunction:e.stencilTest.frontFunction,backFunction:e.stencilTest.backFunction,reference:e.stencilTest.reference,mask:e.stencilTest.mask,frontOperation:{fail:e.stencilTest.frontOperation.fail,zFail:e.stencilTest.frontOperation.zFail,zPass:e.stencilTest.frontOperation.zPass},backOperation:{fail:e.stencilTest.backOperation.fail,zFail:e.stencilTest.backOperation.zFail,zPass:e.stencilTest.backOperation.zPass}},sampleCoverage:{enabled:e.sampleCoverage.enabled,value:e.sampleCoverage.value,invert:e.sampleCoverage.invert},viewport:u(e.viewport)?Xe.clone(e.viewport):void 0}};var Ve=Ph;function Yt(e,t,n,i){this[0]=y(e,0),this[1]=y(n,0),this[2]=y(t,0),this[3]=y(i,0)}Yt.packedLength=4;Yt.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t};Yt.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Yt),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n};Yt.packArray=function(e,t){let n=e.length,i=n*4;u(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let r=0;r<n;++r)Yt.pack(e[r],t,r*4);return t};Yt.unpackArray=function(e,t){let n=e.length;u(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let r=i/4;t[r]=Yt.unpack(e,i,t[r])}return t};Yt.clone=function(e,t){if(u(e))return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new Yt(e[0],e[2],e[1],e[3])};Yt.fromArray=Yt.unpack;Yt.fromColumnMajorArray=function(e,t){return Yt.clone(e,t)};Yt.fromRowMajorArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new Yt(e[0],e[1],e[2],e[3])};Yt.fromScale=function(e,t){return u(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new Yt(e.x,0,0,e.y)};Yt.fromUniformScale=function(e,t){return u(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new Yt(e,0,0,e)};Yt.fromRotation=function(e,t){let n=Math.cos(e),i=Math.sin(e);return u(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new Yt(n,-i,i,n)};Yt.toArray=function(e,t){return u(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]};Yt.getElementIndex=function(e,t){return e*2+t};Yt.getColumn=function(e,t,n){let i=t*2,r=e[i],o=e[i+1];return n.x=r,n.y=o,n};Yt.setColumn=function(e,t,n,i){i=Yt.clone(e,i);let r=t*2;return i[r]=n.x,i[r+1]=n.y,i};Yt.getRow=function(e,t,n){let i=e[t],r=e[t+2];return n.x=i,n.y=r,n};Yt.setRow=function(e,t,n,i){return i=Yt.clone(e,i),i[t]=n.x,i[t+2]=n.y,i};var cTe=new H;Yt.setScale=function(e,t,n){let i=Yt.getScale(e,cTe),r=t.x/i.x,o=t.y/i.y;return n[0]=e[0]*r,n[1]=e[1]*r,n[2]=e[2]*o,n[3]=e[3]*o,n};var lTe=new H;Yt.setUniformScale=function(e,t,n){let i=Yt.getScale(e,lTe),r=t/i.x,o=t/i.y;return n[0]=e[0]*r,n[1]=e[1]*r,n[2]=e[2]*o,n[3]=e[3]*o,n};var VJ=new H;Yt.getScale=function(e,t){return t.x=H.magnitude(H.fromElements(e[0],e[1],VJ)),t.y=H.magnitude(H.fromElements(e[2],e[3],VJ)),t};var kJ=new H;Yt.getMaximumScale=function(e){return Yt.getScale(e,kJ),H.maximumComponent(kJ)};var uTe=new H;Yt.setRotation=function(e,t,n){let i=Yt.getScale(e,uTe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.y,n[3]=t[3]*i.y,n};var fTe=new H;Yt.getRotation=function(e,t){let n=Yt.getScale(e,fTe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.y,t[3]=e[3]/n.y,t};Yt.multiply=function(e,t,n){let i=e[0]*t[0]+e[2]*t[1],r=e[0]*t[2]+e[2]*t[3],o=e[1]*t[0]+e[3]*t[1],s=e[1]*t[2]+e[3]*t[3];return n[0]=i,n[1]=o,n[2]=r,n[3]=s,n};Yt.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n};Yt.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n};Yt.multiplyByVector=function(e,t,n){let i=e[0]*t.x+e[2]*t.y,r=e[1]*t.x+e[3]*t.y;return n.x=i,n.y=r,n};Yt.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};Yt.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n};Yt.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};Yt.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t};Yt.transpose=function(e,t){let n=e[0],i=e[2],r=e[1],o=e[3];return t[0]=n,t[1]=i,t[2]=r,t[3]=o,t};Yt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t};Yt.equals=function(e,t){return e===t||u(e)&&u(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]};Yt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]};Yt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n};Yt.IDENTITY=Object.freeze(new Yt(1,0,0,1));Yt.ZERO=Object.freeze(new Yt(0,0,0,0));Yt.COLUMN0ROW0=0;Yt.COLUMN0ROW1=1;Yt.COLUMN1ROW0=2;Yt.COLUMN1ROW1=3;Object.defineProperties(Yt.prototype,{length:{get:function(){return Yt.packedLength}}});Yt.prototype.clone=function(e){return Yt.clone(this,e)};Yt.prototype.equals=function(e){return Yt.equals(this,e)};Yt.prototype.equalsEpsilon=function(e,t){return Yt.equalsEpsilon(this,e,t)};Yt.prototype.toString=function(){return`(${this[0]}, ${this[2]}) +(${this[1]}, ${this[3]})`};var er=Yt;function dTe(e,t,n,i){switch(t.type){case e.FLOAT:return new zJ(e,t,n,i);case e.FLOAT_VEC2:return new HJ(e,t,n,i);case e.FLOAT_VEC3:return new GJ(e,t,n,i);case e.FLOAT_VEC4:return new WJ(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new CG(e,t,n,i);case e.INT:case e.BOOL:return new jJ(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new qJ(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new YJ(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new XJ(e,t,n,i);case e.FLOAT_MAT2:return new KJ(e,t,n,i);case e.FLOAT_MAT3:return new JJ(e,t,n,i);case e.FLOAT_MAT4:return new ZJ(e,t,n,i);default:throw new de(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function zJ(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}zJ.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1f(this._location,this.value))};function HJ(e,t,n,i){this.name=n,this.value=void 0,this._value=new H,this._gl=e,this._location=i}HJ.prototype.set=function(){let e=this.value;H.equals(e,this._value)||(H.clone(e,this._value),this._gl.uniform2f(this._location,e.x,e.y))};function GJ(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}GJ.prototype.set=function(){let e=this.value;u(e.red)?z.equals(e,this._value)||(this._value=z.clone(e,this._value),this._gl.uniform3f(this._location,e.red,e.green,e.blue)):u(e.x)&&(h.equals(e,this._value)||(this._value=h.clone(e,this._value),this._gl.uniform3f(this._location,e.x,e.y,e.z)))};function WJ(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}WJ.prototype.set=function(){let e=this.value;u(e.red)?z.equals(e,this._value)||(this._value=z.clone(e,this._value),this._gl.uniform4f(this._location,e.red,e.green,e.blue,e.alpha)):u(e.x)&&(se.equals(e,this._value)||(this._value=se.clone(e,this._value),this._gl.uniform4f(this._location,e.x,e.y,e.z,e.w)))};function CG(e,t,n,i){this.name=n,this.value=void 0,this._gl=e,this._location=i,this.textureUnitIndex=void 0}CG.prototype.set=function(){let e=this._gl;e.activeTexture(e.TEXTURE0+this.textureUnitIndex);let t=this.value;e.bindTexture(t._target,t._texture)};CG.prototype._setSampler=function(e){return this.textureUnitIndex=e,this._gl.uniform1i(this._location,e),e+1};function jJ(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}jJ.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1i(this._location,this.value))};function qJ(e,t,n,i){this.name=n,this.value=void 0,this._value=new H,this._gl=e,this._location=i}qJ.prototype.set=function(){let e=this.value;H.equals(e,this._value)||(H.clone(e,this._value),this._gl.uniform2i(this._location,e.x,e.y))};function YJ(e,t,n,i){this.name=n,this.value=void 0,this._value=new h,this._gl=e,this._location=i}YJ.prototype.set=function(){let e=this.value;h.equals(e,this._value)||(h.clone(e,this._value),this._gl.uniform3i(this._location,e.x,e.y,e.z))};function XJ(e,t,n,i){this.name=n,this.value=void 0,this._value=new se,this._gl=e,this._location=i}XJ.prototype.set=function(){let e=this.value;se.equals(e,this._value)||(se.clone(e,this._value),this._gl.uniform4i(this._location,e.x,e.y,e.z,e.w))};var hTe=new Float32Array(4);function KJ(e,t,n,i){this.name=n,this.value=void 0,this._value=new er,this._gl=e,this._location=i}KJ.prototype.set=function(){if(!er.equalsArray(this.value,this._value,0)){er.clone(this.value,this._value);let e=er.toArray(this.value,hTe);this._gl.uniformMatrix2fv(this._location,!1,e)}};var mTe=new Float32Array(9);function JJ(e,t,n,i){this.name=n,this.value=void 0,this._value=new Q,this._gl=e,this._location=i}JJ.prototype.set=function(){if(!Q.equalsArray(this.value,this._value,0)){Q.clone(this.value,this._value);let e=Q.toArray(this.value,mTe);this._gl.uniformMatrix3fv(this._location,!1,e)}};var pTe=new Float32Array(16);function ZJ(e,t,n,i){this.name=n,this.value=void 0,this._value=new N,this._gl=e,this._location=i}ZJ.prototype.set=function(){if(!N.equalsArray(this.value,this._value,0)){N.clone(this.value,this._value);let e=N.toArray(this.value,pTe);this._gl.uniformMatrix4fv(this._location,!1,e)}};var lv=dTe;function _Te(e,t,n,i){switch(t.type){case e.FLOAT:return new QJ(e,t,n,i);case e.FLOAT_VEC2:return new $J(e,t,n,i);case e.FLOAT_VEC3:return new eZ(e,t,n,i);case e.FLOAT_VEC4:return new tZ(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new TG(e,t,n,i);case e.INT:case e.BOOL:return new nZ(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new iZ(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new rZ(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new oZ(e,t,n,i);case e.FLOAT_MAT2:return new sZ(e,t,n,i);case e.FLOAT_MAT3:return new aZ(e,t,n,i);case e.FLOAT_MAT4:return new cZ(e,t,n,i);default:throw new de(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function QJ(e,t,n,i){let r=i.length;this.name=n,this.value=new Array(r),this._value=new Float32Array(r),this._gl=e,this._location=i[0]}QJ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1;for(let r=0;r<t;++r){let o=e[r];o!==n[r]&&(n[r]=o,i=!0)}i&&this._gl.uniform1fv(this._location,n)};function $J(e,t,n,i){let r=i.length;this.name=n,this.value=new Array(r),this._value=new Float32Array(r*2),this._gl=e,this._location=i[0]}$J.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,r=0;for(let o=0;o<t;++o){let s=e[o];H.equalsArray(s,n,r)||(H.pack(s,n,r),i=!0),r+=2}i&&this._gl.uniform2fv(this._location,n)};function eZ(e,t,n,i){let r=i.length;this.name=n,this.value=new Array(r),this._value=new Float32Array(r*3),this._gl=e,this._location=i[0]}eZ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,r=0;for(let o=0;o<t;++o){let s=e[o];u(s.red)?(s.red!==n[r]||s.green!==n[r+1]||s.blue!==n[r+2])&&(n[r]=s.red,n[r+1]=s.green,n[r+2]=s.blue,i=!0):u(s.x)&&(h.equalsArray(s,n,r)||(h.pack(s,n,r),i=!0)),r+=3}i&&this._gl.uniform3fv(this._location,n)};function tZ(e,t,n,i){let r=i.length;this.name=n,this.value=new Array(r),this._value=new Float32Array(r*4),this._gl=e,this._location=i[0]}tZ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,r=0;for(let o=0;o<t;++o){let s=e[o];u(s.red)?z.equalsArray(s,n,r)||(z.pack(s,n,r),i=!0):u(s.x)&&(se.equalsArray(s,n,r)||(se.pack(s,n,r),i=!0)),r+=4}i&&this._gl.uniform4fv(this._location,n)};function TG(e,t,n,i){let r=i.length;this.name=n,this.value=new Array(r),this._value=new Float32Array(r),this._gl=e,this._locations=i,this.textureUnitIndex=void 0}TG.prototype.set=function(){let e=this._gl,t=e.TEXTURE0+this.textureUnitIndex,n=this.value,i=n.length;for(let r=0;r<i;++r){let o=n[r];e.activeTexture(t+r),e.bindTexture(o._target,o._texture)}};TG.prototype._setSampler=function(e){this.textureUnitIndex=e;let t=this._locations,n=t.length;for(let i=0;i<n;++i){let r=e+i;this._gl.uniform1i(t[i],r)}return e+n};function nZ(e,t,n,i){let r=i.length;this.name=n,this.value=new Array(r),this._value=new Int32Array(r),this._gl=e,this._location=i[0]}nZ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1;for(let r=0;r<t;++r){let o=e[r];o!==n[r]&&(n[r]=o,i=!0)}i&&this._gl.uniform1iv(this._location,n)};function iZ(e,t,n,i){let r=i.length;this.name=n,this.value=new Array(r),this._value=new Int32Array(r*2),this._gl=e,this._location=i[0]}iZ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,r=0;for(let o=0;o<t;++o){let s=e[o];H.equalsArray(s,n,r)||(H.pack(s,n,r),i=!0),r+=2}i&&this._gl.uniform2iv(this._location,n)};function rZ(e,t,n,i){let r=i.length;this.name=n,this.value=new Array(r),this._value=new Int32Array(r*3),this._gl=e,this._location=i[0]}rZ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,r=0;for(let o=0;o<t;++o){let s=e[o];h.equalsArray(s,n,r)||(h.pack(s,n,r),i=!0),r+=3}i&&this._gl.uniform3iv(this._location,n)};function oZ(e,t,n,i){let r=i.length;this.name=n,this.value=new Array(r),this._value=new Int32Array(r*4),this._gl=e,this._location=i[0]}oZ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,r=0;for(let o=0;o<t;++o){let s=e[o];se.equalsArray(s,n,r)||(se.pack(s,n,r),i=!0),r+=4}i&&this._gl.uniform4iv(this._location,n)};function sZ(e,t,n,i){let r=i.length;this.name=n,this.value=new Array(r),this._value=new Float32Array(r*4),this._gl=e,this._location=i[0]}sZ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,r=0;for(let o=0;o<t;++o){let s=e[o];er.equalsArray(s,n,r)||(er.pack(s,n,r),i=!0),r+=4}i&&this._gl.uniformMatrix2fv(this._location,!1,n)};function aZ(e,t,n,i){let r=i.length;this.name=n,this.value=new Array(r),this._value=new Float32Array(r*9),this._gl=e,this._location=i[0]}aZ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,r=0;for(let o=0;o<t;++o){let s=e[o];Q.equalsArray(s,n,r)||(Q.pack(s,n,r),i=!0),r+=9}i&&this._gl.uniformMatrix3fv(this._location,!1,n)};function cZ(e,t,n,i){let r=i.length;this.name=n,this.value=new Array(r),this._value=new Float32Array(r*16),this._gl=e,this._location=i[0]}cZ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,r=0;for(let o=0;o<t;++o){let s=e[o];N.equalsArray(s,n,r)||(N.pack(s,n,r),i=!0),r+=16}i&&this._gl.uniformMatrix4fv(this._location,!1,n)};var uv=_Te;var gTe=0;function Km(e){let t=e.vertexShaderText,n=e.fragmentShaderText;typeof spector<"u"&&(t=t.replace(/^#line/gm,"//#line"),n=n.replace(/^#line/gm,"//#line"));let i=yTe(t,n);this._gl=e.gl,this._logShaderCompilation=e.logShaderCompilation,this._debugShaders=e.debugShaders,this._attributeLocations=e.attributeLocations,this._program=void 0,this._numberOfVertexAttributes=void 0,this._vertexAttributes=void 0,this._uniformsByName=void 0,this._uniforms=void 0,this._automaticUniforms=void 0,this._manualUniforms=void 0,this._duplicateUniformNames=i.duplicateUniformNames,this._cachedShader=void 0,this.maximumTextureUnitIndex=void 0,this._vertexShaderSource=e.vertexShaderSource,this._vertexShaderText=e.vertexShaderText,this._fragmentShaderSource=e.fragmentShaderSource,this._fragmentShaderText=i.fragmentShaderText,this.id=gTe++}Km.fromCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.getShaderProgram(e)};Km.replaceCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.replaceShaderProgram(e)};Object.defineProperties(Km.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},vertexAttributes:{get:function(){return v3(this),this._vertexAttributes}},numberOfVertexAttributes:{get:function(){return v3(this),this._numberOfVertexAttributes}},allUniforms:{get:function(){return v3(this),this._uniformsByName}}});function lZ(e){let t=[],n=e.match(/uniform.*?(?![^{]*})(?=[=\[;])/g);if(u(n)){let i=n.length;for(let r=0;r<i;r++){let o=n[r].trim(),s=o.slice(o.lastIndexOf(" ")+1);t.push(s)}}return t}function yTe(e,t){let n={};if(!zt.highpFloatSupported||!zt.highpIntSupported){let i,r,o,s,a=lZ(e),c=lZ(t),l=a.length,f=c.length;for(i=0;i<l;i++)for(r=0;r<f;r++)if(a[i]===c[r]){o=a[i],s=`czm_mediump_${o}`;let d=new RegExp(`${o}\\b`,"g");t=t.replace(d,s),n[s]=o}}return{fragmentShaderText:t,duplicateUniformNames:n}}var Oh="[Cesium WebGL] ";function ATe(e,t){let n=t._vertexShaderText,i=t._fragmentShaderText,r=e.createShader(e.VERTEX_SHADER);e.shaderSource(r,n),e.compileShader(r);let o=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(o,i),e.compileShader(o);let s=e.createProgram();e.attachShader(s,r),e.attachShader(s,o);let a=t._attributeLocations;if(u(a))for(let p in a)a.hasOwnProperty(p)&&e.bindAttribLocation(s,a[p],p);e.linkProgram(s);let c;if(e.getProgramParameter(s,e.LINK_STATUS))return t._logShaderCompilation&&(c=e.getShaderInfoLog(r),u(c)&&c.length>0&&console.log(`${Oh}Vertex shader compile log: ${c}`),c=e.getShaderInfoLog(o),u(c)&&c.length>0&&console.log(`${Oh}Fragment shader compile log: ${c}`),c=e.getProgramInfoLog(s),u(c)&&c.length>0&&console.log(`${Oh}Shader program link log: ${c}`)),e.deleteShader(r),e.deleteShader(o),s;let l,f=t._debugShaders;throw e.getShaderParameter(o,e.COMPILE_STATUS)?e.getShaderParameter(r,e.COMPILE_STATUS)?(c=e.getProgramInfoLog(s),console.error(`${Oh}Shader program link log: ${c}`),d(r,"vertex"),d(o,"fragment"),l=`Program failed to link. Link log: ${c}`):(c=e.getShaderInfoLog(r),console.error(`${Oh}Vertex shader compile log: ${c}`),console.error(`${Oh} Vertex shader source: +${n}`),l=`Vertex shader failed to compile. Compile log: ${c}`):(c=e.getShaderInfoLog(o),console.error(`${Oh}Fragment shader compile log: ${c}`),console.error(`${Oh} Fragment shader source: +${i}`),l=`Fragment shader failed to compile. Compile log: ${c}`),e.deleteShader(r),e.deleteShader(o),e.deleteProgram(s),new de(l);function d(p,g){if(!u(f))return;let m=f.getTranslatedShaderSource(p);if(m===""){console.error(`${Oh}${g} shader translation failed.`);return}console.error(`${Oh}Translated ${g} shaderSource: +${m}`)}}function xTe(e,t,n){let i={};for(let r=0;r<n;++r){let o=e.getActiveAttrib(t,r),s=e.getAttribLocation(t,o.name);i[o.name]={name:o.name,type:o.type,index:s}}return i}function CTe(e,t){let n={},i=[],r=[],o=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(let s=0;s<o;++s){let a=e.getActiveUniform(t,s),c="[0]",l=a.name.indexOf(c,a.name.length-c.length)!==-1?a.name.slice(0,a.name.length-3):a.name;if(l.indexOf("gl_")!==0)if(a.name.indexOf("[")<0){let f=e.getUniformLocation(t,l);if(f!==null){let d=lv(e,a,l,f);n[l]=d,i.push(d),d._setSampler&&r.push(d)}}else{let f,d,p,g,m=l.indexOf("[");if(m>=0){if(f=n[l.slice(0,m)],!u(f))continue;d=f._locations,d.length<=1&&(p=f.value,g=e.getUniformLocation(t,l),g!==null&&(d.push(g),p.push(e.getUniform(t,g))))}else{d=[];for(let A=0;A<a.size;++A)g=e.getUniformLocation(t,`${l}[${A}]`),g!==null&&d.push(g);f=uv(e,a,l,d),n[l]=f,i.push(f),f._setSampler&&r.push(f)}}}return{uniformsByName:n,uniforms:i,samplerUniforms:r}}function TTe(e,t){let n=[],i=[];for(let r in t)if(t.hasOwnProperty(r)){let o=t[r],s=r,a=e._duplicateUniformNames[s];u(a)&&(o.name=a,s=a);let c=Ym[s];u(c)?n.push({uniform:o,automaticUniform:c}):i.push(o)}return{automaticUniforms:n,manualUniforms:i}}function ETe(e,t,n){e.useProgram(t);let i=0,r=n.length;for(let o=0;o<r;++o)i=n[o]._setSampler(i);return e.useProgram(null),i}function v3(e){u(e._program)||uZ(e)}function uZ(e){let t=e._program,n=e._gl,i=ATe(n,e,e._debugShaders),r=n.getProgramParameter(i,n.ACTIVE_ATTRIBUTES),o=CTe(n,i),s=TTe(e,o.uniformsByName);e._program=i,e._numberOfVertexAttributes=r,e._vertexAttributes=xTe(n,i,r),e._uniformsByName=o.uniformsByName,e._uniforms=o.uniforms,e._automaticUniforms=s.automaticUniforms,e._manualUniforms=s.manualUniforms,e.maximumTextureUnitIndex=ETe(n,i,o.samplerUniforms),t&&e._gl.deleteProgram(t),typeof spector<"u"&&(e._program.__SPECTOR_rebuildProgram=function(a,c,l,f){let d=e._vertexShaderText,p=e._fragmentShaderText,g=/ ! = /g;e._vertexShaderText=a.replace(g," != "),e._fragmentShaderText=c.replace(g," != ");try{uZ(e),l(e._program)}catch(m){e._vertexShaderText=d,e._fragmentShaderText=p;let x=/(?:Compile|Link) error: ([^]*)/.exec(m.message);f(x?x[1]:m.message)}})}Km.prototype._bind=function(){v3(this),this._gl.useProgram(this._program)};Km.prototype._setUniforms=function(e,t,n){let i,r;if(u(e)){let a=this._manualUniforms;for(i=a.length,r=0;r<i;++r){let c=a[r];c.value=e[c.name]()}}let o=this._automaticUniforms;for(i=o.length,r=0;r<i;++r){let a=o[r];a.uniform.value=a.automaticUniform.getValue(t)}let s=this._uniforms;for(i=s.length,r=0;r<i;++r)s[r].set();if(n){let a=this._gl,c=this._program;a.validateProgram(c)}};Km.prototype.isDestroyed=function(){return!1};Km.prototype.destroy=function(){this._cachedShader.cache.releaseShaderProgram(this)};Km.prototype.finalDestroy=function(){return this._gl.deleteProgram(this._program),ue(this)};var Xt=Km;function w3(e){this._context=e}var fv,bTe=new nt({primitiveType:Be.TRIANGLES}),STe=new ri({color:new z(0,0,0,0)});function vTe(e,t){return new Gs({context:e,colorTextures:[t],destroyAttachments:!1})}function wTe(e,t){return Xt.fromCache({context:e,vertexShaderSource:E0,fragmentShaderSource:t,attributeLocations:{position:0,textureCoordinates:1}})}function DTe(e,t){return(!u(fv)||fv.viewport.width!==e||fv.viewport.height!==t)&&(fv=Ve.fromCache({viewport:new Xe(0,0,e,t)})),fv}w3.prototype.execute=function(e){u(e.preExecute)&&e.preExecute(e);let t=e.outputTexture,n=t.width,i=t.height,r=this._context,o=u(e.vertexArray)?e.vertexArray:r.getViewportQuadVertexArray(),s=u(e.shaderProgram)?e.shaderProgram:wTe(r,e.fragmentShaderSource),a=vTe(r,t),c=DTe(n,i),l=e.uniformMap,f=STe;f.framebuffer=a,f.renderState=c,f.execute(r);let d=bTe;d.vertexArray=o,d.renderState=c,d.shaderProgram=s,d.uniformMap=l,d.framebuffer=a,d.execute(r),a.destroy(),e.persists||(s.destroy(),u(e.vertexArray)&&o.destroy()),u(e.postExecute)&&e.postExecute(t)};w3.prototype.isDestroyed=function(){return!1};w3.prototype.destroy=function(){return ue(this)};var dv=w3;var En={BYTE:te.BYTE,UNSIGNED_BYTE:te.UNSIGNED_BYTE,SHORT:te.SHORT,UNSIGNED_SHORT:te.UNSIGNED_SHORT,INT:te.INT,UNSIGNED_INT:te.UNSIGNED_INT,FLOAT:te.FLOAT,DOUBLE:te.DOUBLE};En.getSizeInBytes=function(e){switch(e){case En.BYTE:return Int8Array.BYTES_PER_ELEMENT;case En.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case En.SHORT:return Int16Array.BYTES_PER_ELEMENT;case En.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case En.INT:return Int32Array.BYTES_PER_ELEMENT;case En.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case En.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case En.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}};En.fromTypedArray=function(e){if(e instanceof Int8Array)return En.BYTE;if(e instanceof Uint8Array)return En.UNSIGNED_BYTE;if(e instanceof Int16Array)return En.SHORT;if(e instanceof Uint16Array)return En.UNSIGNED_SHORT;if(e instanceof Int32Array)return En.INT;if(e instanceof Uint32Array)return En.UNSIGNED_INT;if(e instanceof Float32Array)return En.FLOAT;if(e instanceof Float64Array)return En.DOUBLE};En.validate=function(e){return u(e)&&(e===En.BYTE||e===En.UNSIGNED_BYTE||e===En.SHORT||e===En.UNSIGNED_SHORT||e===En.INT||e===En.UNSIGNED_INT||e===En.FLOAT||e===En.DOUBLE)};En.createTypedArray=function(e,t){switch(e){case En.BYTE:return new Int8Array(t);case En.UNSIGNED_BYTE:return new Uint8Array(t);case En.SHORT:return new Int16Array(t);case En.UNSIGNED_SHORT:return new Uint16Array(t);case En.INT:return new Int32Array(t);case En.UNSIGNED_INT:return new Uint32Array(t);case En.FLOAT:return new Float32Array(t);case En.DOUBLE:return new Float64Array(t)}};En.createArrayBufferView=function(e,t,n,i){switch(n=y(n,0),i=y(i,(t.byteLength-n)/En.getSizeInBytes(e)),e){case En.BYTE:return new Int8Array(t,n,i);case En.UNSIGNED_BYTE:return new Uint8Array(t,n,i);case En.SHORT:return new Int16Array(t,n,i);case En.UNSIGNED_SHORT:return new Uint16Array(t,n,i);case En.INT:return new Int32Array(t,n,i);case En.UNSIGNED_INT:return new Uint32Array(t,n,i);case En.FLOAT:return new Float32Array(t,n,i);case En.DOUBLE:return new Float64Array(t,n,i)}};En.fromName=function(e){switch(e){case"BYTE":return En.BYTE;case"UNSIGNED_BYTE":return En.UNSIGNED_BYTE;case"SHORT":return En.SHORT;case"UNSIGNED_SHORT":return En.UNSIGNED_SHORT;case"INT":return En.INT;case"UNSIGNED_INT":return En.UNSIGNED_INT;case"FLOAT":return En.FLOAT;case"DOUBLE":return En.DOUBLE}};var X=Object.freeze(En);var fZ={};function hv(e,t){u(fZ[e])||(fZ[e]=!0,console.warn(y(t,e)))}hv.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.";hv.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";hv.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";hv.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";var Ot=hv;function ITe(e,t){Ot(e,t)}var $=ITe;var PTe={NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3},Xu=Object.freeze(PTe);function rt(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}var mv=new h;rt.fromAxisAngle=function(e,t,n){let i=t/2,r=Math.sin(i);mv=h.normalize(e,mv);let o=mv.x*r,s=mv.y*r,a=mv.z*r,c=Math.cos(i);return u(n)?(n.x=o,n.y=s,n.z=a,n.w=c,n):new rt(o,s,a,c)};var OTe=[1,2,0],MTe=new Array(3);rt.fromRotationMatrix=function(e,t){let n,i,r,o,s,a=e[Q.COLUMN0ROW0],c=e[Q.COLUMN1ROW1],l=e[Q.COLUMN2ROW2],f=a+c+l;if(f>0)n=Math.sqrt(f+1),s=.5*n,n=.5/n,i=(e[Q.COLUMN1ROW2]-e[Q.COLUMN2ROW1])*n,r=(e[Q.COLUMN2ROW0]-e[Q.COLUMN0ROW2])*n,o=(e[Q.COLUMN0ROW1]-e[Q.COLUMN1ROW0])*n;else{let d=OTe,p=0;c>a&&(p=1),l>a&&l>c&&(p=2);let g=d[p],m=d[g];n=Math.sqrt(e[Q.getElementIndex(p,p)]-e[Q.getElementIndex(g,g)]-e[Q.getElementIndex(m,m)]+1);let A=MTe;A[p]=.5*n,n=.5/n,s=(e[Q.getElementIndex(m,g)]-e[Q.getElementIndex(g,m)])*n,A[g]=(e[Q.getElementIndex(g,p)]+e[Q.getElementIndex(p,g)])*n,A[m]=(e[Q.getElementIndex(m,p)]+e[Q.getElementIndex(p,m)])*n,i=-A[0],r=-A[1],o=-A[2]}return u(t)?(t.x=i,t.y=r,t.z=o,t.w=s,t):new rt(i,r,o,s)};var dZ=new rt,hZ=new rt,EG=new rt,mZ=new rt;rt.fromHeadingPitchRoll=function(e,t){return mZ=rt.fromAxisAngle(h.UNIT_X,e.roll,dZ),EG=rt.fromAxisAngle(h.UNIT_Y,-e.pitch,t),t=rt.multiply(EG,mZ,EG),hZ=rt.fromAxisAngle(h.UNIT_Z,-e.heading,dZ),rt.multiply(hZ,t,t)};var D3=new h,bG=new h,rd=new rt,pZ=new rt,I3=new rt;rt.packedLength=4;rt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};rt.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new rt),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};rt.packedInterpolationLength=3;rt.convertPackedArrayForInterpolation=function(e,t,n,i){rt.unpack(e,n*4,I3),rt.conjugate(I3,I3);for(let r=0,o=n-t+1;r<o;r++){let s=r*3;rt.unpack(e,(t+r)*4,rd),rt.multiply(rd,I3,rd),rd.w<0&&rt.negate(rd,rd),rt.computeAxis(rd,D3);let a=rt.computeAngle(rd);u(i)||(i=[]),i[s]=D3.x*a,i[s+1]=D3.y*a,i[s+2]=D3.z*a}};rt.unpackInterpolationResult=function(e,t,n,i,r){u(r)||(r=new rt),h.fromArray(e,0,bG);let o=h.magnitude(bG);return rt.unpack(t,i*4,pZ),o===0?rt.clone(rt.IDENTITY,rd):rt.fromAxisAngle(bG,o,rd),rt.multiply(rd,pZ,r)};rt.clone=function(e,t){if(u(e))return u(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new rt(e.x,e.y,e.z,e.w)};rt.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t};rt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};rt.magnitude=function(e){return Math.sqrt(rt.magnitudeSquared(e))};rt.normalize=function(e,t){let n=1/rt.magnitude(e),i=e.x*n,r=e.y*n,o=e.z*n,s=e.w*n;return t.x=i,t.y=r,t.z=o,t.w=s,t};rt.inverse=function(e,t){let n=rt.magnitudeSquared(e);return t=rt.conjugate(e,t),rt.multiplyByScalar(t,1/n,t)};rt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};rt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};rt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};rt.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};rt.multiply=function(e,t,n){let i=e.x,r=e.y,o=e.z,s=e.w,a=t.x,c=t.y,l=t.z,f=t.w,d=s*a+i*f+r*l-o*c,p=s*c-i*l+r*f+o*a,g=s*l+i*c-r*a+o*f,m=s*f-i*a-r*c-o*l;return n.x=d,n.y=p,n.z=g,n.w=m,n};rt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};rt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};rt.computeAxis=function(e,t){let n=e.w;if(Math.abs(n-1)<P.EPSILON6)return t.x=t.y=t.z=0,t;let i=1/Math.sqrt(1-n*n);return t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t};rt.computeAngle=function(e){return Math.abs(e.w-1)<P.EPSILON6?0:2*Math.acos(e.w)};var SG=new rt;rt.lerp=function(e,t,n,i){return SG=rt.multiplyByScalar(t,n,SG),i=rt.multiplyByScalar(e,1-n,i),rt.add(SG,i,i)};var _Z=new rt,vG=new rt,wG=new rt;rt.slerp=function(e,t,n,i){let r=rt.dot(e,t),o=t;if(r<0&&(r=-r,o=_Z=rt.negate(t,_Z)),1-r<P.EPSILON6)return rt.lerp(e,o,n,i);let s=Math.acos(r);return vG=rt.multiplyByScalar(e,Math.sin((1-n)*s),vG),wG=rt.multiplyByScalar(o,Math.sin(n*s),wG),i=rt.add(vG,wG,i),rt.multiplyByScalar(i,1/Math.sin(s),i)};rt.log=function(e,t){let n=P.acosClamped(e.w),i=0;return n!==0&&(i=n/Math.sin(n)),h.multiplyByScalar(e,i,t)};rt.exp=function(e,t){let n=h.magnitude(e),i=0;return n!==0&&(i=Math.sin(n)/n),t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t.w=Math.cos(n),t};var RTe=new h,BTe=new h,pv=new rt,QC=new rt;rt.computeInnerQuadrangle=function(e,t,n,i){let r=rt.conjugate(t,pv);rt.multiply(r,n,QC);let o=rt.log(QC,RTe);rt.multiply(r,e,QC);let s=rt.log(QC,BTe);return h.add(o,s,o),h.multiplyByScalar(o,.25,o),h.negate(o,o),rt.exp(o,pv),rt.multiply(t,pv,i)};rt.squad=function(e,t,n,i,r,o){let s=rt.slerp(e,t,r,pv),a=rt.slerp(n,i,r,QC);return rt.slerp(s,a,2*r*(1-r),o)};var LTe=new rt,gZ=1.9011074535173003,P3=Ht.supportsTypedArrays()?new Float32Array(8):[],O3=Ht.supportsTypedArrays()?new Float32Array(8):[],Jm=Ht.supportsTypedArrays()?new Float32Array(8):[],Zm=Ht.supportsTypedArrays()?new Float32Array(8):[];for(let e=0;e<7;++e){let t=e+1,n=2*t+1;P3[e]=1/(t*n),O3[e]=t/n}P3[7]=gZ/(8*17);O3[7]=gZ*8/17;rt.fastSlerp=function(e,t,n,i){let r=rt.dot(e,t),o;r>=0?o=1:(o=-1,r=-r);let s=r-1,a=1-n,c=n*n,l=a*a;for(let g=7;g>=0;--g)Jm[g]=(P3[g]*c-O3[g])*s,Zm[g]=(P3[g]*l-O3[g])*s;let f=o*n*(1+Jm[0]*(1+Jm[1]*(1+Jm[2]*(1+Jm[3]*(1+Jm[4]*(1+Jm[5]*(1+Jm[6]*(1+Jm[7])))))))),d=a*(1+Zm[0]*(1+Zm[1]*(1+Zm[2]*(1+Zm[3]*(1+Zm[4]*(1+Zm[5]*(1+Zm[6]*(1+Zm[7])))))))),p=rt.multiplyByScalar(e,d,LTe);return rt.multiplyByScalar(t,f,i),rt.add(p,i,i)};rt.fastSquad=function(e,t,n,i,r,o){let s=rt.fastSlerp(e,t,r,pv),a=rt.fastSlerp(n,i,r,QC);return rt.fastSlerp(s,a,2*r*(1-r),o)};rt.equals=function(e,t){return e===t||u(e)&&u(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};rt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n};rt.ZERO=Object.freeze(new rt(0,0,0,0));rt.IDENTITY=Object.freeze(new rt(0,0,0,1));rt.prototype.clone=function(e){return rt.clone(this,e)};rt.prototype.equals=function(e){return rt.equals(this,e)};rt.prototype.equalsEpsilon=function(e,t){return rt.equalsEpsilon(this,e,t)};rt.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Le=rt;function NTe(e,t,n){let i=0,r=e.length-1,o,s;for(;i<=r;){if(o=~~((i+r)/2),s=n(e[o],t),s<0){i=o+1;continue}if(s>0){r=o-1;continue}return o}return~(r+1)}var Pr=NTe;function FTe(e,t,n,i,r){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=r}var $_=FTe;function UTe(e,t,n,i,r,o,s,a){this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=r,this.second=o,this.millisecond=s,this.isLeapSecond=a}var Qm=UTe;function VTe(e){return e%4===0&&e%100!==0||e%400===0}var $m=VTe;function kTe(e,t){this.julianDate=e,this.offset=t}var Hi=kTe;var zTe={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1},Zn=Object.freeze(zTe);var HTe={UTC:0,TAI:1},Kn=Object.freeze(HTe);var AZ=new Qm,DG=[31,28,31,30,31,30,31,31,30,31,30,31],IG=29;function PG(e,t){return bt.compare(e.julianDate,t.julianDate)}var $C=new Hi;function R3(e){$C.julianDate=e;let t=bt.leapSeconds,n=Pr(t,$C,PG);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&bt.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),bt.addSeconds(e,i,e)}function yZ(e,t){$C.julianDate=e;let n=bt.leapSeconds,i=Pr(n,$C,PG);if(i<0&&(i=~i),i===0)return bt.addSeconds(e,-n[0].offset,t);if(i>=n.length)return bt.addSeconds(e,-n[i-1].offset,t);let r=bt.secondsDifference(n[i].julianDate,e);if(r===0)return bt.addSeconds(e,-n[i].offset,t);if(!(r<=1))return bt.addSeconds(e,-n[--i].offset,t)}function eg(e,t,n){let i=t/Zn.SECONDS_PER_DAY|0;return e+=i,t-=Zn.SECONDS_PER_DAY*i,t<0&&(e--,t+=Zn.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function OG(e,t,n,i,r,o,s){let a=(t-14)/12|0,c=e+4800+a,l=(1461*c/4|0)+(367*(t-2-12*a)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;i=i-12,i<0&&(i+=24);let f=o+(i*Zn.SECONDS_PER_HOUR+r*Zn.SECONDS_PER_MINUTE+s*Zn.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}var GTe=/^(\d{4})$/,WTe=/^(\d{4})-(\d{2})$/,jTe=/^(\d{4})-?(\d{3})$/,qTe=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,YTe=/^(\d{4})-?(\d{2})-?(\d{2})$/,MG=/([Z+\-])?(\d{2})?:?(\d{2})?$/,XTe=/^(\d{2})(\.\d+)?/.source+MG.source,KTe=/^(\d{2}):?(\d{2})(\.\d+)?/.source+MG.source,JTe=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+MG.source;function bt(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=y(e,0),t=y(t,0),n=y(n,Kn.UTC);let i=e|0;t=t+(e-i)*Zn.SECONDS_PER_DAY,eg(i,t,this),n===Kn.UTC&&R3(this)}bt.fromGregorianDate=function(e,t){let n=OG(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return u(t)?(eg(n[0],n[1],t),R3(t),t):new bt(n[0],n[1],Kn.UTC)};bt.fromDate=function(e,t){let n=OG(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return u(t)?(eg(n[0],n[1],t),R3(t),t):new bt(n[0],n[1],Kn.UTC)};bt.fromIso8601=function(e,t){e=e.replace(",",".");let n=e.split("T"),i,r=1,o=1,s=0,a=0,c=0,l=0,f=n[0],d=n[1],p,g;if(n=f.match(YTe),n!==null)i=+n[1],r=+n[2],o=+n[3];else if(n=f.match(WTe),n!==null)i=+n[1],r=+n[2];else if(n=f.match(GTe),n!==null)i=+n[1];else{let C;if(n=f.match(jTe),n!==null)i=+n[1],C=+n[2],g=$m(i);else if(n=f.match(qTe),n!==null){i=+n[1];let T=+n[2],E=+n[3]||0,S=new Date(Date.UTC(i,0,4));C=T*7+E-S.getUTCDay()-3}p=new Date(Date.UTC(i,0,1)),p.setUTCDate(C),r=p.getUTCMonth()+1,o=p.getUTCDate()}g=$m(i);let m;if(u(d)){n=d.match(JTe),n!==null?(s=+n[1],a=+n[2],c=+n[3],l=+(n[4]||0)*1e3,m=5):(n=d.match(KTe),n!==null?(s=+n[1],a=+n[2],c=+(n[3]||0)*60,m=4):(n=d.match(XTe),n!==null&&(s=+n[1],a=+(n[2]||0)*60,m=3)));let C=n[m],T=+n[m+1],E=+(n[m+2]||0);switch(C){case"+":s=s-T,a=a-E;break;case"-":s=s+T,a=a+E;break;case"Z":break;default:a=a+new Date(Date.UTC(i,r-1,o,s,a)).getTimezoneOffset();break}}let A=c===60;for(A&&c--;a>=60;)a-=60,s++;for(;s>=24;)s-=24,o++;for(p=g&&r===2?IG:DG[r-1];o>p;)o-=p,r++,r>12&&(r-=12,i++),p=g&&r===2?IG:DG[r-1];for(;a<0;)a+=60,s--;for(;s<0;)s+=24,o--;for(;o<1;)r--,r<1&&(r+=12,i--),p=g&&r===2?IG:DG[r-1],o+=p;let x=OG(i,r,o,s,a,c,l);return u(t)?(eg(x[0],x[1],t),R3(t)):t=new bt(x[0],x[1],Kn.UTC),A&&bt.addSeconds(t,1,t),t};bt.now=function(e){return bt.fromDate(new Date,e)};var M3=new bt(0,0,Kn.TAI);bt.toGregorianDate=function(e,t){let n=!1,i=yZ(e,M3);u(i)||(bt.addSeconds(e,-1,M3),i=yZ(M3,M3),n=!0);let r=i.dayNumber,o=i.secondsOfDay;o>=43200&&(r+=1);let s=r+68569|0,a=4*s/146097|0;s=s-((146097*a+3)/4|0)|0;let c=4e3*(s+1)/1461001|0;s=s-(1461*c/4|0)+31|0;let l=80*s/2447|0,f=s-(2447*l/80|0)|0;s=l/11|0;let d=l+2-12*s|0,p=100*(a-49)+c+s|0,g=o/Zn.SECONDS_PER_HOUR|0,m=o-g*Zn.SECONDS_PER_HOUR,A=m/Zn.SECONDS_PER_MINUTE|0;m=m-A*Zn.SECONDS_PER_MINUTE;let x=m|0,C=(m-x)/Zn.SECONDS_PER_MILLISECOND;return g+=12,g>23&&(g-=24),n&&(x+=1),u(t)?(t.year=p,t.month=d,t.day=f,t.hour=g,t.minute=A,t.second=x,t.millisecond=C,t.isLeapSecond=n,t):new Qm(p,d,f,g,A,x,C,n)};bt.toDate=function(e){let t=bt.toGregorianDate(e,AZ),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))};bt.toIso8601=function(e,t){let n=bt.toGregorianDate(e,AZ),i=n.year,r=n.month,o=n.day,s=n.hour,a=n.minute,c=n.second,l=n.millisecond;i===1e4&&r===1&&o===1&&s===0&&a===0&&c===0&&l===0&&(i=9999,r=12,o=31,s=24);let f;return!u(t)&&l!==0?(f=(l*.01).toString().replace(".",""),`${i.toString().padStart(4,"0")}-${r.toString().padStart(2,"0")}-${o.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`):!u(t)||t===0?`${i.toString().padStart(4,"0")}-${r.toString().padStart(2,"0")}-${o.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}Z`:(f=(l*.01).toFixed(t).replace(".","").slice(0,t),`${i.toString().padStart(4,"0")}-${r.toString().padStart(2,"0")}-${o.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`)};bt.clone=function(e,t){if(u(e))return u(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new bt(e.dayNumber,e.secondsOfDay,Kn.TAI)};bt.compare=function(e,t){let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};bt.equals=function(e,t){return e===t||u(e)&&u(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};bt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(bt.secondsDifference(e,t))<=n};bt.totalDays=function(e){return e.dayNumber+e.secondsOfDay/Zn.SECONDS_PER_DAY};bt.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*Zn.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};bt.daysDifference=function(e,t){let n=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/Zn.SECONDS_PER_DAY;return n+i};bt.computeTaiMinusUtc=function(e){$C.julianDate=e;let t=bt.leapSeconds,n=Pr(t,$C,PG);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};bt.addSeconds=function(e,t,n){return eg(e.dayNumber,e.secondsOfDay+t,n)};bt.addMinutes=function(e,t,n){let i=e.secondsOfDay+t*Zn.SECONDS_PER_MINUTE;return eg(e.dayNumber,i,n)};bt.addHours=function(e,t,n){let i=e.secondsOfDay+t*Zn.SECONDS_PER_HOUR;return eg(e.dayNumber,i,n)};bt.addDays=function(e,t,n){let i=e.dayNumber+t;return eg(i,e.secondsOfDay,n)};bt.lessThan=function(e,t){return bt.compare(e,t)<0};bt.lessThanOrEquals=function(e,t){return bt.compare(e,t)<=0};bt.greaterThan=function(e,t){return bt.compare(e,t)>0};bt.greaterThanOrEquals=function(e,t){return bt.compare(e,t)>=0};bt.prototype.clone=function(e){return bt.clone(this,e)};bt.prototype.equals=function(e){return bt.equals(this,e)};bt.prototype.equalsEpsilon=function(e,t){return bt.equalsEpsilon(this,e,t)};bt.prototype.toString=function(){return bt.toIso8601(this)};bt.leapSeconds=[new Hi(new bt(2441317,43210,Kn.TAI),10),new Hi(new bt(2441499,43211,Kn.TAI),11),new Hi(new bt(2441683,43212,Kn.TAI),12),new Hi(new bt(2442048,43213,Kn.TAI),13),new Hi(new bt(2442413,43214,Kn.TAI),14),new Hi(new bt(2442778,43215,Kn.TAI),15),new Hi(new bt(2443144,43216,Kn.TAI),16),new Hi(new bt(2443509,43217,Kn.TAI),17),new Hi(new bt(2443874,43218,Kn.TAI),18),new Hi(new bt(2444239,43219,Kn.TAI),19),new Hi(new bt(2444786,43220,Kn.TAI),20),new Hi(new bt(2445151,43221,Kn.TAI),21),new Hi(new bt(2445516,43222,Kn.TAI),22),new Hi(new bt(2446247,43223,Kn.TAI),23),new Hi(new bt(2447161,43224,Kn.TAI),24),new Hi(new bt(2447892,43225,Kn.TAI),25),new Hi(new bt(2448257,43226,Kn.TAI),26),new Hi(new bt(2448804,43227,Kn.TAI),27),new Hi(new bt(2449169,43228,Kn.TAI),28),new Hi(new bt(2449534,43229,Kn.TAI),29),new Hi(new bt(2450083,43230,Kn.TAI),30),new Hi(new bt(2450630,43231,Kn.TAI),31),new Hi(new bt(2451179,43232,Kn.TAI),32),new Hi(new bt(2453736,43233,Kn.TAI),33),new Hi(new bt(2454832,43234,Kn.TAI),34),new Hi(new bt(2456109,43235,Kn.TAI),35),new Hi(new bt(2457204,43236,Kn.TAI),36),new Hi(new bt(2457754,43237,Kn.TAI),37)];var ee=bt;var VZ=Yi(Yl(),1);function ZTe(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var _v=ZTe;function vZ(e,t){if(e===null||typeof e!="object")return e;t=y(t,!1);let n=new e.constructor;for(let i in e)if(e.hasOwnProperty(i)){let r=e[i];t&&(r=vZ(r,t)),n[i]=r}return n}var We=vZ;function wZ(e,t,n){n=y(n,!1);let i={},r=u(e),o=u(t),s,a,c;if(r)for(s in e)e.hasOwnProperty(s)&&(a=e[s],o&&n&&typeof a=="object"&&t.hasOwnProperty(s)?(c=t[s],typeof c=="object"?i[s]=wZ(a,c,n):i[s]=a):i[s]=a);if(o)for(s in t)t.hasOwnProperty(s)&&!i.hasOwnProperty(s)&&(c=t[s],i[s]=c);return i}var _t=wZ;function QTe(){let e,t,n=new Promise(function(i,r){e=i,t=r});return{resolve:e,reject:t,promise:n}}var Ws=QTe;var DZ=Yi(Yl(),1);function RG(e,t){let n;return typeof document<"u"&&(n=document),RG._implementation(e,t,n)}RG._implementation=function(e,t,n){if(!u(t)){if(typeof n>"u")return e;t=y(n.baseURI,n.location.href)}let i=new DZ.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var ep=RG;var IZ=Yi(Yl(),1);function $Te(e,t){let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new IZ.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var gv=$Te;var PZ=Yi(Yl(),1);function eEe(e){let t=new PZ.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),i=n.lastIndexOf("."),i===-1?n="":n=n.substr(i+1),n}var S0=eEe;var OZ={};function tEe(e,t,n){u(t)||(t=e.width),u(n)||(n=e.height);let i=OZ[t];u(i)||(i={},OZ[t]=i);let r=i[n];if(!u(r)){let o=document.createElement("canvas");o.width=t,o.height=n,r=o.getContext("2d",{willReadFrequently:!0}),r.globalCompositeOperation="copy",i[n]=r}return r.drawImage(e,0,0,t,n),r.getImageData(0,0,t,n).data}var od=tEe;var nEe=/^blob:/i;function iEe(e){return nEe.test(e)}var v0=iEe;var Mh;function rEe(e){u(Mh)||(Mh=document.createElement("a")),Mh.href=window.location.href;let t=Mh.host,n=Mh.protocol;return Mh.href=e,Mh.href=Mh.href,n!==Mh.protocol||t!==Mh.host}var w0=rEe;var oEe=/^data:/i;function sEe(e){return oEe.test(e)}var tp=sEe;function aEe(e){let t=document.createElement("script");return t.async=!0,t.src=e,new Promise((n,i)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");let r=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,r.removeChild(t),n()},t.onerror=function(o){i(o)},r.appendChild(t)})}var D0=aEe;function cEe(e){let t="";for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],r=`${encodeURIComponent(n)}=`;if(Array.isArray(i))for(let o=0,s=i.length;o<s;++o)t+=`${r+encodeURIComponent(i[o])}&`;else t+=`${r+encodeURIComponent(i)}&`}return t=t.slice(0,-1),t}var I0=cEe;function lEe(e){let t={};if(e==="")return t;let n=e.replace(/\+/g,"%20").split(/[&;]/);for(let i=0,r=n.length;i<r;++i){let o=n[i].split("="),s=decodeURIComponent(o[0]),a=o[1];u(a)?a=decodeURIComponent(a):a="";let c=t[s];typeof c=="string"?t[s]=[c,a]:Array.isArray(c)?c.push(a):t[s]=a}return t}var Xl=lEe;var uEe={UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5},ti=Object.freeze(uEe);var fEe={TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3},es=Object.freeze(fEe);function F3(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.throttleByServer,!1),n=y(e.throttle,!1);this.url=e.url,this.requestFunction=e.requestFunction,this.cancelFunction=e.cancelFunction,this.priorityFunction=e.priorityFunction,this.priority=y(e.priority,0),this.throttle=n,this.throttleByServer=t,this.type=y(e.type,es.OTHER),this.serverKey=e.serverKey,this.state=ti.UNISSUED,this.deferred=void 0,this.cancelled=!1}F3.prototype.cancel=function(){this.cancelled=!0};F3.prototype.clone=function(e){return u(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=ti.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new F3(this)};var jr=F3;function dEe(e){let t={};if(!e)return t;let n=e.split(`\r +`);for(let i=0;i<n.length;++i){let r=n[i],o=r.indexOf(": ");if(o>0){let s=r.substring(0,o),a=r.substring(o+2);t[s]=a}}return t}var yv=dEe;function MZ(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=yv(this.responseHeaders))}MZ.prototype.toString=function(){let e="Request has failed.";return u(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var Rh=MZ;var U3=Yi(Yl(),1);function Av(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties(Av.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});Av.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};Av.prototype.removeEventListener=function(e,t){let n=this._listeners,i=this._scopes,r=-1;for(let o=0;o<n.length;o++)if(n[o]===e&&i[o]===t){r=o;break}return r!==-1?(this._insideRaiseEvent?(this._toRemove.push(r),n[r]=void 0,i[r]=void 0):(n.splice(r,1),i.splice(r,1)),!0):!1};function hEe(e,t){return t-e}Av.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;let e,t=this._listeners,n=this._scopes,i=t.length;for(e=0;e<i;e++){let o=t[e];u(o)&&t[e].apply(n[e],arguments)}let r=this._toRemove;if(i=r.length,i>0){for(r.sort(hEe),e=0;e<i;e++){let o=r[e];t.splice(o,1),n.splice(o,1)}r.length=0}this._insideRaiseEvent=!1};var ge=Av;function P0(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}Object.defineProperties(P0.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){let t=this._length;if(e<t){let n=this._array;for(let i=e;i<t;++i)n[i]=void 0;this._length=e,n.length=e}this._maximumLength=e}},comparator:{get:function(){return this._comparator}}});function BG(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}P0.prototype.reserve=function(e){e=y(e,this._length),this._array.length=e};P0.prototype.heapify=function(e){e=y(e,0);let t=this._length,n=this._comparator,i=this._array,r=-1,o=!0;for(;o;){let s=2*(e+1),a=s-1;a<t&&n(i[a],i[e])<0?r=a:r=e,s<t&&n(i[s],i[r])<0&&(r=s),r!==e?(BG(i,r,e),e=r):o=!1}};P0.prototype.resort=function(){let e=this._length;for(let t=Math.ceil(e/2);t>=0;--t)this.heapify(t)};P0.prototype.insert=function(e){let t=this._array,n=this._comparator,i=this._maximumLength,r=this._length++;for(r<t.length?t[r]=e:t.push(e);r!==0;){let s=Math.floor((r-1)/2);if(n(t[r],t[s])<0)BG(t,r,s),r=s;else break}let o;return u(i)&&this._length>i&&(o=t[i],this._length=i),o};P0.prototype.pop=function(e){if(e=y(e,0),this._length===0)return;let t=this._array,n=t[e];return BG(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var xv=P0;function mEe(e,t){return e.priority-t.priority}var tr={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},nT=20,Fa=new xv({comparator:mEe});Fa.maximumLength=nT;Fa.reserve(nT);var Bh=[],np={},pEe=typeof document<"u"?new U3.default(document.location.href):new U3.default,V3=new ge;function qr(){}qr.maximumRequests=50;qr.maximumRequestsPerServer=6;qr.requestsByServer={"api.cesium.com:443":18,"assets.ion.cesium.com:443":18,"ibasemaps-api.arcgis.com:443":18};qr.throttleRequests=!0;qr.debugShowStatistics=!1;qr.requestCompletedEvent=V3;Object.defineProperties(qr,{statistics:{get:function(){return tr}},priorityHeapLength:{get:function(){return nT},set:function(e){if(e<nT)for(;Fa.length>e;){let t=Fa.pop();O0(t)}nT=e,Fa.maximumLength=e,Fa.reserve(e)}}});function RZ(e){u(e.priorityFunction)&&(e.priority=e.priorityFunction())}qr.serverHasOpenSlots=function(e,t){t=y(t,1);let n=y(qr.requestsByServer[e],qr.maximumRequestsPerServer);return np[e]+t<=n};qr.heapHasOpenSlots=function(e){return Fa.length+e<=nT};function BZ(e){return e.state===ti.UNISSUED&&(e.state=ti.ISSUED,e.deferred=Ws()),e.deferred.promise}function _Ee(e){return function(t){if(e.state===ti.CANCELLED)return;let n=e.deferred;--tr.numberOfActiveRequests,--np[e.serverKey],V3.raiseEvent(),e.state=ti.RECEIVED,e.deferred=void 0,n.resolve(t)}}function gEe(e){return function(t){e.state!==ti.CANCELLED&&(++tr.numberOfFailedRequests,--tr.numberOfActiveRequests,--np[e.serverKey],V3.raiseEvent(t),e.state=ti.FAILED,e.deferred.reject(t))}}function LZ(e){let t=BZ(e);return e.state=ti.ACTIVE,Bh.push(e),++tr.numberOfActiveRequests,++tr.numberOfActiveRequestsEver,++np[e.serverKey],e.requestFunction().then(_Ee(e)).catch(gEe(e)),t}function O0(e){let t=e.state===ti.ACTIVE;if(e.state=ti.CANCELLED,++tr.numberOfCancelledRequests,u(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--tr.numberOfActiveRequests,--np[e.serverKey],++tr.numberOfCancelledActiveRequests),u(e.cancelFunction)&&e.cancelFunction()}qr.update=function(){let e,t,n=0,i=Bh.length;for(e=0;e<i;++e){if(t=Bh[e],t.cancelled&&O0(t),t.state!==ti.ACTIVE){++n;continue}n>0&&(Bh[e-n]=t)}Bh.length-=n;let r=Fa.internalArray,o=Fa.length;for(e=0;e<o;++e)RZ(r[e]);Fa.resort();let s=Math.max(qr.maximumRequests-Bh.length,0),a=0;for(;a<s&&Fa.length>0;){if(t=Fa.pop(),t.cancelled){O0(t);continue}if(t.throttleByServer&&!qr.serverHasOpenSlots(t.serverKey)){O0(t);continue}LZ(t),++a}yEe()};qr.getServerKey=function(e){let t=new U3.default(e);t.scheme()===""&&(t=t.absoluteTo(pEe),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=np[n];return u(i)||(np[n]=0),n};qr.request=function(e){if(tp(e.url)||v0(e.url))return V3.raiseEvent(),e.state=ti.RECEIVED,e.requestFunction();if(++tr.numberOfAttemptedRequests,u(e.serverKey)||(e.serverKey=qr.getServerKey(e.url)),qr.throttleRequests&&e.throttleByServer&&!qr.serverHasOpenSlots(e.serverKey))return;if(!qr.throttleRequests||!e.throttle)return LZ(e);if(Bh.length>=qr.maximumRequests)return;RZ(e);let t=Fa.insert(e);if(u(t)){if(t===e)return;O0(t)}return BZ(e)};function yEe(){qr.debugShowStatistics&&(tr.numberOfActiveRequests===0&&tr.lastNumberOfActiveRequests>0&&(tr.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${tr.numberOfAttemptedRequests}`),tr.numberOfAttemptedRequests=0),tr.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${tr.numberOfCancelledRequests}`),tr.numberOfCancelledRequests=0),tr.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${tr.numberOfCancelledActiveRequests}`),tr.numberOfCancelledActiveRequests=0),tr.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${tr.numberOfFailedRequests}`),tr.numberOfFailedRequests=0)),tr.lastNumberOfActiveRequests=tr.numberOfActiveRequests)}qr.clearForSpecs=function(){for(;Fa.length>0;){let t=Fa.pop();O0(t)}let e=Bh.length;for(let t=0;t<e;++t)O0(Bh[t]);Bh.length=0,np={},tr.numberOfAttemptedRequests=0,tr.numberOfActiveRequests=0,tr.numberOfCancelledRequests=0,tr.numberOfCancelledActiveRequests=0,tr.numberOfFailedRequests=0,tr.numberOfActiveRequestsEver=0,tr.lastNumberOfActiveRequests=0};qr.numberOfActiveRequestsByServer=function(e){return np[e]};qr.requestHeap=Fa;var Ua=qr;var NZ=Yi(Yl(),1);var Cv={},iT={};Cv.add=function(e,t){let n=`${e.toLowerCase()}:${t}`;u(iT[n])||(iT[n]=!0)};Cv.remove=function(e,t){let n=`${e.toLowerCase()}:${t}`;u(iT[n])&&delete iT[n]};function AEe(e){let t=new NZ.default(e);t.normalize();let n=t.authority();if(n.length!==0){if(t.authority(n),n.indexOf("@")!==-1&&(n=n.split("@")[1]),n.indexOf(":")===-1){let i=t.scheme();if(i.length===0&&(i=window.location.protocol,i=i.substring(0,i.length-1)),i==="http")n+=":80";else if(i==="https")n+=":443";else return}return n}}Cv.contains=function(e){let t=AEe(e);return!!(u(t)&&u(iT[t]))};Cv.clear=function(){iT={}};var rT=Cv;var kZ=function(){try{let e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob",e.responseType==="blob"}catch{return!1}}();function Et(e){e=y(e,y.EMPTY_OBJECT),typeof e=="string"&&(e={url:e}),this._url=void 0,this._templateValues=Lh(e.templateValues,{}),this._queryParameters=Lh(e.queryParameters,{}),this.headers=Lh(e.headers,{}),this.request=y(e.request,new jr),this.proxy=e.proxy,this.retryCallback=e.retryCallback,this.retryAttempts=y(e.retryAttempts,0),this._retryCount=0,y(e.parseUrl,!0)?this.parseUrl(e.url,!0,!0):this._url=e.url}function Lh(e,t){return u(e)?We(e):t}Et.createIfNeeded=function(e){return e instanceof Et?e.getDerivedResource({request:e.request}):typeof e!="string"?e:new Et({url:e})};var oT;Et.supportsImageBitmapOptions=function(){if(u(oT))return oT;if(typeof createImageBitmap!="function")return oT=Promise.resolve(!1),oT;let e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC";return oT=Et.fetchBlob({url:e}).then(function(t){let n={imageOrientation:"flipY",premultiplyAlpha:"none",colorSpaceConversion:"none"};return Promise.all([createImageBitmap(t,n),createImageBitmap(t)])}).then(function(t){let n=od(t[0]),i=od(t[1]);return n[1]!==i[1]}).catch(function(){return!1}),oT};Object.defineProperties(Et,{isBlobSupported:{get:function(){return kZ}}});Object.defineProperties(Et.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(e){this.parseUrl(e,!1,!1)}},extension:{get:function(){return S0(this._url)}},isDataUri:{get:function(){return tp(this._url)}},isBlobUri:{get:function(){return v0(this._url)}},isCrossOriginUrl:{get:function(){return w0(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}});Et.prototype.toString=function(){return this.getUrlComponent(!0,!0)};Et.prototype.parseUrl=function(e,t,n,i){let r=new VZ.default(e),o=xEe(r.query());this._queryParameters=t?z3(o,this.queryParameters,n):o,r.search(""),r.fragment(""),u(i)&&r.scheme()===""&&(r=r.absoluteTo(ep(i))),this._url=r.toString()};function xEe(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:Xl(e)}function z3(e,t,n){if(!n)return _t(e,t);let i=We(e,!0);for(let r in t)if(t.hasOwnProperty(r)){let o=i[r],s=t[r];u(o)?(Array.isArray(o)||(o=i[r]=[o]),i[r]=o.concat(s)):i[r]=Array.isArray(s)?s.slice():s}return i}Et.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${CEe(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let i=this._templateValues;return Object.keys(i).length>0&&(n=n.replace(/{(.*?)}/g,function(r,o){let s=i[o];return u(s)?encodeURIComponent(s):r})),t&&u(this.proxy)&&(n=this.proxy.getURL(n)),n};function CEe(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!u(e[t[0]])?`?${t[0]}`:`?${I0(e)}`}Et.prototype.setQueryParameters=function(e,t){t?this._queryParameters=z3(this._queryParameters,e,!1):this._queryParameters=z3(e,this._queryParameters,!1)};Et.prototype.appendQueryParameters=function(e){this._queryParameters=z3(e,this._queryParameters,!0)};Et.prototype.setTemplateValues=function(e,t){t?this._templateValues=_t(this._templateValues,e):this._templateValues=_t(e,this._templateValues)};Et.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,u(e.url)){let n=y(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return u(e.queryParameters)&&(t._queryParameters=_t(e.queryParameters,t.queryParameters)),u(e.templateValues)&&(t._templateValues=_t(e.templateValues,t.templateValues)),u(e.headers)&&(t.headers=_t(e.headers,t.headers)),u(e.proxy)&&(t.proxy=e.proxy),u(e.request)&&(t.request=e.request),u(e.retryCallback)&&(t.retryCallback=e.retryCallback),u(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};Et.prototype.retryOnError=function(e){let t=this.retryCallback;if(typeof t!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(t(this,e)).then(function(i){return++n._retryCount,i})};Et.prototype.clone=function(e){return u(e)?(e._url=this._url,e._queryParameters=We(this._queryParameters),e._templateValues=We(this._templateValues),e.headers=We(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new Et({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1})};Et.prototype.getBaseUri=function(e){return gv(this.getUrlComponent(e),e)};Et.prototype.appendForwardSlash=function(){this._url=_v(this._url)};Et.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};Et.fetchArrayBuffer=function(e){return new Et(e).fetchArrayBuffer()};Et.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};Et.fetchBlob=function(e){return new Et(e).fetchBlob()};Et.prototype.fetchImage=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.preferImageBitmap,!1),n=y(e.preferBlob,!1),i=y(e.flipY,!1),r=y(e.skipColorSpaceConversion,!1);if(NG(this.request),!kZ||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return LG({resource:this,flipY:i,skipColorSpaceConversion:r,preferImageBitmap:t});let o=this.fetchBlob();if(!u(o))return;let s,a,c,l;return Et.supportsImageBitmapOptions().then(function(f){return s=f,a=s&&t,o}).then(function(f){if(!u(f))return;if(l=f,a)return Et.createImageBitmapFromBlob(f,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:r});let d=window.URL.createObjectURL(f);return c=new Et({url:d}),LG({resource:c,flipY:i,skipColorSpaceConversion:r,preferImageBitmap:!1})}).then(function(f){if(u(f))return f.blob=l,a||window.URL.revokeObjectURL(c.url),f}).catch(function(f){return u(c)&&window.URL.revokeObjectURL(c.url),f.blob=l,Promise.reject(f)})};function LG(e){let t=e.resource,n=e.flipY,i=e.skipColorSpaceConversion,r=e.preferImageBitmap,o=t.request;o.url=t.url,o.requestFunction=function(){let a=!1;!t.isDataUri&&!t.isBlobUri&&(a=t.isCrossOriginUrl);let c=Ws();return Et._Implementations.createImage(o,a,c,n,i,r),c.promise};let s=Ua.request(o);if(u(s))return s.catch(function(a){return o.state!==ti.FAILED?Promise.reject(a):t.retryOnError(a).then(function(c){return c?(o.state=ti.UNISSUED,o.deferred=void 0,LG({resource:t,flipY:n,skipColorSpaceConversion:i,preferImageBitmap:r})):Promise.reject(a)})})}Et.fetchImage=function(e){return new Et(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};Et.prototype.fetchText=function(){return this.fetch({responseType:"text"})};Et.fetchText=function(e){return new Et(e).fetchText()};Et.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(t){if(u(t))return JSON.parse(t)})};Et.fetchJson=function(e){return new Et(e).fetchJson()};Et.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};Et.fetchXML=function(e){return new Et(e).fetchXML()};Et.prototype.fetchJsonp=function(e){e=y(e,"callback"),NG(this.request);let t;do t=`loadJsonp${P.nextRandomNumber().toString().substring(2,8)}`;while(u(window[t]));return zZ(this,e,t)};function zZ(e,t,n){let i={};i[t]=n,e.setQueryParameters(i);let r=e.request,o=e.url;r.url=o,r.requestFunction=function(){let a=Ws();return window[n]=function(c){a.resolve(c);try{delete window[n]}catch{window[n]=void 0}},Et._Implementations.loadAndExecuteScript(o,n,a),a.promise};let s=Ua.request(r);if(u(s))return s.catch(function(a){return r.state!==ti.FAILED?Promise.reject(a):e.retryOnError(a).then(function(c){return c?(r.state=ti.UNISSUED,r.deferred=void 0,zZ(e,t,n)):Promise.reject(a)})})}Et.fetchJsonp=function(e){return new Et(e).fetchJsonp(e.callbackParameterName)};Et.prototype._makeRequest=function(e){let t=this;NG(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let o=e.responseType,s=_t(e.headers,t.headers),a=e.overrideMimeType,c=e.method,l=e.data,f=Ws(),d=Et._Implementations.loadWithXhr(i,o,c,l,s,f,a);return u(d)&&u(d.abort)&&(n.cancelFunction=function(){d.abort()}),f.promise};let r=Ua.request(n);if(u(r))return r.then(function(o){return n.cancelFunction=void 0,o}).catch(function(o){return n.cancelFunction=void 0,n.state!==ti.FAILED?Promise.reject(o):t.retryOnError(o).then(function(s){return s?(n.state=ti.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(o)})})};function NG(e){if(e.state===ti.ISSUED||e.state===ti.ACTIVE)throw new de("The Resource is already being fetched.");e.state=ti.UNISSUED,e.deferred=void 0}var TEe=/^data:(.*?)(;base64)?,(.*)$/;function k3(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function FZ(e,t){let n=k3(e,t),i=new ArrayBuffer(n.length),r=new Uint8Array(i);for(let o=0;o<n.length;o++)r[o]=n.charCodeAt(o);return i}function EEe(e,t){t=y(t,"");let n=e[1],i=!!e[2],r=e[3],o,s;switch(t){case"":case"text":return k3(i,r);case"arraybuffer":return FZ(i,r);case"blob":return o=FZ(i,r),new Blob([o],{type:n});case"document":return s=new DOMParser,s.parseFromString(k3(i,r),n);case"json":return JSON.parse(k3(i,r));default:}}Et.prototype.fetch=function(e){return e=Lh(e,{}),e.method="GET",this._makeRequest(e)};Et.fetch=function(e){return new Et(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Et.prototype.delete=function(e){return e=Lh(e,{}),e.method="DELETE",this._makeRequest(e)};Et.delete=function(e){return new Et(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})};Et.prototype.head=function(e){return e=Lh(e,{}),e.method="HEAD",this._makeRequest(e)};Et.head=function(e){return new Et(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Et.prototype.options=function(e){return e=Lh(e,{}),e.method="OPTIONS",this._makeRequest(e)};Et.options=function(e){return new Et(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Et.prototype.post=function(e,t){return ol.defined("data",e),t=Lh(t,{}),t.method="POST",t.data=e,this._makeRequest(t)};Et.post=function(e){return new Et(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Et.prototype.put=function(e,t){return ol.defined("data",e),t=Lh(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)};Et.put=function(e){return new Et(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Et.prototype.patch=function(e,t){return ol.defined("data",e),t=Lh(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)};Et.patch=function(e){return new Et(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Et._Implementations={};Et._Implementations.loadImageElement=function(e,t,n){let i=new Image;i.onload=function(){i.naturalWidth===0&&i.naturalHeight===0&&i.width===0&&i.height===0&&(i.width=300,i.height=150),n.resolve(i)},i.onerror=function(r){n.reject(r)},t&&(rT.contains(e)?i.crossOrigin="use-credentials":i.crossOrigin=""),i.src=e};Et._Implementations.createImage=function(e,t,n,i,r,o){let s=e.url;Et.supportsImageBitmapOptions().then(function(a){if(!(a&&o)){Et._Implementations.loadImageElement(s,t,n);return}let c="blob",l="GET",f=Ws(),d=Et._Implementations.loadWithXhr(s,c,l,void 0,void 0,f,void 0,void 0,void 0);return u(d)&&u(d.abort)&&(e.cancelFunction=function(){d.abort()}),f.promise.then(function(p){if(!u(p)){n.reject(new de(`Successfully retrieved ${s} but it contained no content.`));return}return Et.createImageBitmapFromBlob(p,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:r})}).then(function(p){n.resolve(p)})}).catch(function(a){n.reject(a)})};Et.createImageBitmapFromBlob=function(e,t){return ol.defined("options",t),ol.typeOf.bool("options.flipY",t.flipY),ol.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),ol.typeOf.bool("options.skipColorSpaceConversion",t.skipColorSpaceConversion),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:t.skipColorSpaceConversion?"none":"default"})};function UZ(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function bEe(e,t,n,i,r,o,s){let a,c;Promise.all([import("url"),import("zlib")]).then(([l,f])=>(a=l.parse(e),c=f,a.protocol==="https:"?import("https"):import("http"))).then(l=>{let f={protocol:a.protocol,hostname:a.hostname,port:a.port,path:a.path,query:a.query,method:n,headers:r};l.request(f).on("response",function(d){if(d.statusCode<200||d.statusCode>=300){o.reject(new Rh(d.statusCode,d,d.headers));return}let p=[];d.on("data",function(g){p.push(g)}),d.on("end",function(){let g=Buffer.concat(p);d.headers["content-encoding"]==="gzip"?c.gunzip(g,function(m,A){m?o.reject(new de("Error decompressing response.")):o.resolve(UZ(A,t))}):o.resolve(UZ(g,t))})}).on("error",function(d){o.reject(new Rh)}).end()})}var SEe=typeof XMLHttpRequest>"u";Et._Implementations.loadWithXhr=function(e,t,n,i,r,o,s){let a=TEe.exec(e);if(a!==null){o.resolve(EEe(a,t));return}if(SEe){bEe(e,t,n,i,r,o,s);return}let c=new XMLHttpRequest;if(rT.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(s)&&u(c.overrideMimeType)&&c.overrideMimeType(s),u(r))for(let f in r)r.hasOwnProperty(f)&&c.setRequestHeader(f,r[f]);u(t)&&(c.responseType=t);let l=!1;return typeof e=="string"&&(l=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),c.onload=function(){if((c.status<200||c.status>=300)&&!(l&&c.status===0)){o.reject(new Rh(c.status,c.response,c.getAllResponseHeaders()));return}let f=c.response,d=c.responseType;if(n==="HEAD"||n==="OPTIONS"){let g=c.getAllResponseHeaders().trim().split(/[\r\n]+/),m={};g.forEach(function(A){let x=A.split(": "),C=x.shift();m[C]=x.join(": ")}),o.resolve(m);return}if(c.status===204)o.resolve();else if(u(f)&&(!u(t)||d===t))o.resolve(f);else if(t==="json"&&typeof f=="string")try{o.resolve(JSON.parse(f))}catch(p){o.reject(p)}else(d===""||d==="document")&&u(c.responseXML)&&c.responseXML.hasChildNodes()?o.resolve(c.responseXML):(d===""||d==="text")&&u(c.responseText)?o.resolve(c.responseText):o.reject(new de("Invalid XMLHttpRequest response type."))},c.onerror=function(f){o.reject(new Rh)},c.send(i),c};Et._Implementations.loadAndExecuteScript=function(e,t,n){return D0(e,t).catch(function(i){n.reject(i)})};Et._DefaultImplementations={};Et._DefaultImplementations.createImage=Et._Implementations.createImage;Et._DefaultImplementations.loadWithXhr=Et._Implementations.loadWithXhr;Et._DefaultImplementations.loadAndExecuteScript=Et._Implementations.loadAndExecuteScript;Et.DEFAULT=Object.freeze(new Et({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var ve=Et;function Ev(e){e=y(e,y.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=y(e.addNewLeapSeconds,!0),u(e.data)?HZ(this,e.data):HZ(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}Ev.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ve.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new de(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new Ev({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};Ev.NONE=Object.freeze({compute:function(e,t){return u(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new $_(0,0,0,0,0),t}});Ev.prototype.compute=function(e,t){if(!u(this._samples))return;if(u(t)||(t=new $_(0,0,0,0,0)),this._samples.length===0)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;let n=this._dates,i=this._lastIndex,r=0,o=0;if(u(i)){let a=n[i],c=n[i+1],l=ee.lessThanOrEquals(a,e),f=!u(c),d=f||ee.greaterThanOrEquals(c,e);if(l&&d)return r=i,!f&&c.equals(e)&&++r,o=r+1,WZ(this,n,this._samples,e,r,o,t),t}let s=Pr(n,e,ee.compare,this._dateColumn);return s>=0?(s<n.length-1&&n[s+1].equals(e)&&++s,r=s,o=s):(o=~s,r=o-1,r<0&&(r=0)),this._lastIndex=r,WZ(this,n,this._samples,e,r,o,t),t};function vEe(e,t){return ee.compare(e.julianDate,t)}function HZ(e,t){if(!u(t.columnNames))throw new de("Error in loaded EOP data: The columnNames property is required.");if(!u(t.samples))throw new de("Error in loaded EOP data: The samples property is required.");let n=t.columnNames.indexOf("modifiedJulianDateUtc"),i=t.columnNames.indexOf("xPoleWanderRadians"),r=t.columnNames.indexOf("yPoleWanderRadians"),o=t.columnNames.indexOf("ut1MinusUtcSeconds"),s=t.columnNames.indexOf("xCelestialPoleOffsetRadians"),a=t.columnNames.indexOf("yCelestialPoleOffsetRadians"),c=t.columnNames.indexOf("taiMinusUtcSeconds");if(n<0||i<0||r<0||o<0||s<0||a<0||c<0)throw new de("Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");let l=e._samples=t.samples,f=e._dates=[];e._dateColumn=n,e._xPoleWanderRadiansColumn=i,e._yPoleWanderRadiansColumn=r,e._ut1MinusUtcSecondsColumn=o,e._xCelestialPoleOffsetRadiansColumn=s,e._yCelestialPoleOffsetRadiansColumn=a,e._taiMinusUtcSecondsColumn=c,e._columnCount=t.columnNames.length,e._lastIndex=void 0;let d,p=e._addNewLeapSeconds;for(let g=0,m=l.length;g<m;g+=e._columnCount){let A=l[g+n],x=l[g+c],C=A+Zn.MODIFIED_JULIAN_DATE_DIFFERENCE,T=new ee(C,x,Kn.TAI);if(f.push(T),p){if(x!==d&&u(d)){let E=ee.leapSeconds,S=Pr(E,T,vEe);if(S<0){let v=new Hi(T,x);E.splice(~S,0,v)}}d=x}}}function GZ(e,t,n,i,r){let o=n*i;r.xPoleWander=t[o+e._xPoleWanderRadiansColumn],r.yPoleWander=t[o+e._yPoleWanderRadiansColumn],r.xPoleOffset=t[o+e._xCelestialPoleOffsetRadiansColumn],r.yPoleOffset=t[o+e._yCelestialPoleOffsetRadiansColumn],r.ut1MinusUtc=t[o+e._ut1MinusUtcSecondsColumn]}function Tv(e,t,n){return t+e*(n-t)}function WZ(e,t,n,i,r,o,s){let a=e._columnCount;if(o>t.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;let c=t[r],l=t[o];if(c.equals(l)||i.equals(c))return GZ(e,n,r,a,s),s;if(i.equals(l))return GZ(e,n,o,a,s),s;let f=ee.secondsDifference(i,c)/ee.secondsDifference(l,c),d=r*a,p=o*a,g=n[d+e._ut1MinusUtcSecondsColumn],m=n[p+e._ut1MinusUtcSecondsColumn],A=m-g;if(A>.5||A<-.5){let x=n[d+e._taiMinusUtcSecondsColumn],C=n[p+e._taiMinusUtcSecondsColumn];x!==C&&(l.equals(i)?g=m:m-=C-x)}return s.xPoleWander=Tv(f,n[d+e._xPoleWanderRadiansColumn],n[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=Tv(f,n[d+e._yPoleWanderRadiansColumn],n[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=Tv(f,n[d+e._xCelestialPoleOffsetRadiansColumn],n[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=Tv(f,n[d+e._yCelestialPoleOffsetRadiansColumn],n[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=Tv(f,g,m),s}var bv=Ev;function Va(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.roll=y(n,0)}Va.fromQuaternion=function(e,t){u(t)||(t=new Va);let n=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),r=2*(e.w*e.x+e.y*e.z),o=1-2*(e.y*e.y+e.z*e.z),s=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(s,o),t.roll=Math.atan2(r,i),t.pitch=-P.asinClamped(n),t};Va.fromDegrees=function(e,t,n,i){return u(i)||(i=new Va),i.heading=e*P.RADIANS_PER_DEGREE,i.pitch=t*P.RADIANS_PER_DEGREE,i.roll=n*P.RADIANS_PER_DEGREE,i};Va.clone=function(e,t){if(u(e))return u(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new Va(e.heading,e.pitch,e.roll)};Va.equals=function(e,t){return e===t||u(e)&&u(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};Va.equalsEpsilon=function(e,t,n,i){return e===t||u(e)&&u(t)&&P.equalsEpsilon(e.heading,t.heading,n,i)&&P.equalsEpsilon(e.pitch,t.pitch,n,i)&&P.equalsEpsilon(e.roll,t.roll,n,i)};Va.prototype.clone=function(e){return Va.clone(this,e)};Va.prototype.equals=function(e){return Va.equals(this,e)};Va.prototype.equalsEpsilon=function(e,t,n){return Va.equalsEpsilon(this,e,t,n)};Va.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var ka=Va;var jZ=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function wEe(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t<n;++t){let i=e[t].getAttribute("src"),r=jZ.exec(i);if(r!==null)return r[1]}}var sT;function qZ(e){return typeof document>"u"?e:(u(sT)||(sT=document.createElement("a")),sT.href=e,sT.href=sT.href,sT.href)}var M0;function YZ(){if(u(M0))return M0;let e;return typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:typeof define=="object"&&u(define.amd)&&!define.amd.toUrlUndefined&&u(require.toUrl)?e=ep("..",R0("Core/buildModuleUrl.js")):e=wEe(),M0=new ve({url:qZ(e)}),M0.appendForwardSlash(),M0}function DEe(e){return qZ(require.toUrl(`../${e}`))}function XZ(e){return YZ().getDerivedResource({url:e}).url}var H3;function R0(e){return u(H3)||(typeof define=="object"&&u(define.amd)&&!define.amd.toUrlUndefined&&u(require.toUrl)?H3=DEe:H3=XZ),H3(e)}R0._cesiumScriptRegex=jZ;R0._buildModuleUrlFromBaseUrl=XZ;R0._clearBaseResource=function(){M0=void 0};R0.setBaseUrl=function(e){M0=ve.DEFAULT.getDerivedResource({url:e})};R0.getCesiumBaseUrl=YZ;var $t=R0;function IEe(e,t,n){this.x=e,this.y=t,this.s=n}var B0=IEe;function VG(e){e=y(e,y.EMPTY_OBJECT),this._xysFileUrlTemplate=ve.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=y(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=y(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new ee(this._sampleZeroJulianEphemerisDate,0,Kn.TAI),this._stepSizeDays=y(e.stepSizeDays,1),this._samplesPerXysFile=y(e.samplesPerXysFile,1e3),this._totalSamples=y(e.totalSamples,27426),this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),r=Math.pow(this._stepSizeDays,t);for(let o=0;o<=t;++o){n[o]=r,i[o]=o*this._stepSizeDays;for(let s=0;s<=t;++s)s!==o&&(n[o]*=o-s);n[o]=1/n[o]}this._work=new Array(t+1),this._coef=new Array(t+1)}var PEe=new ee(0,0,Kn.TAI);function FG(e,t,n){let i=PEe;return i.dayNumber=t,i.secondsOfDay=n,ee.daysDifference(i,e._sampleZeroDateTT)}VG.prototype.preload=function(e,t,n,i){let r=FG(this,e,t),o=FG(this,n,i),s=r/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);let a=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;a>=this._totalSamples&&(a=this._totalSamples-1);let c=s/this._samplesPerXysFile|0,l=a/this._samplesPerXysFile|0,f=[];for(let d=c;d<=l;++d)f.push(UG(this,d));return Promise.all(f)};VG.prototype.computeXysRadians=function(e,t,n){let i=FG(this,e,t);if(i<0)return;let r=i/this._stepSizeDays|0;if(r>=this._totalSamples)return;let o=this._interpolationOrder,s=r-(o/2|0);s<0&&(s=0);let a=s+o;a>=this._totalSamples&&(a=this._totalSamples-1,s=a-o,s<0&&(s=0));let c=!1,l=this._samples;if(u(l[s*3])||(UG(this,s/this._samplesPerXysFile|0),c=!0),u(l[a*3])||(UG(this,a/this._samplesPerXysFile|0),c=!0),c)return;u(n)?(n.x=0,n.y=0,n.s=0):n=new B0(0,0,0);let f=i-s*this._stepSizeDays,d=this._work,p=this._denominators,g=this._coef,m=this._xTable,A,x;for(A=0;A<=o;++A)d[A]=f-m[A];for(A=0;A<=o;++A){for(g[A]=1,x=0;x<=o;++x)x!==A&&(g[A]*=d[x]);g[A]*=p[A];let C=(s+A)*3;n.x+=g[A]*l[C++],n.y+=g[A]*l[C++],n.s+=g[A]*l[C]}return n};function UG(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,i=e._xysFileUrlTemplate;u(i)?n=i.getDerivedResource({templateValues:{0:t}}):n=new ve({url:$t(`Assets/IAU2006_XYS/IAU2006_XYS_${t}.json`)});let r=n.fetchJson().then(function(o){e._chunkDownloadsInProgress[t]=!1;let s=e._samples,a=o.samples,c=t*e._samplesPerXysFile*3;for(let l=0,f=a.length;l<f;++l)s[c+l]=a[l]});return e._chunkDownloadsInProgress[t]=r,r}var Sv=VG;var Xi={},kG={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},aT={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},zG={},al={east:new h,north:new h,up:new h,west:new h,south:new h,down:new h},tg=new h,ng=new h,ig=new h;Xi.localFrameToFixedFrameGenerator=function(e,t){if(!kG.hasOwnProperty(e)||!kG[e].hasOwnProperty(t))throw new fe("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=kG[e][t],i,r=e+t;return u(zG[r])?i=zG[r]:(i=function(o,s,a){if(u(a)||(a=new N),h.equalsEpsilon(o,h.ZERO,P.EPSILON14))h.unpack(aT[e],0,tg),h.unpack(aT[t],0,ng),h.unpack(aT[n],0,ig);else if(P.equalsEpsilon(o.x,0,P.EPSILON14)&&P.equalsEpsilon(o.y,0,P.EPSILON14)){let c=P.sign(o.z);h.unpack(aT[e],0,tg),e!=="east"&&e!=="west"&&h.multiplyByScalar(tg,c,tg),h.unpack(aT[t],0,ng),t!=="east"&&t!=="west"&&h.multiplyByScalar(ng,c,ng),h.unpack(aT[n],0,ig),n!=="east"&&n!=="west"&&h.multiplyByScalar(ig,c,ig)}else{s=y(s,re.WGS84),s.geodeticSurfaceNormal(o,al.up);let c=al.up,l=al.east;l.x=-o.y,l.y=o.x,l.z=0,h.normalize(l,al.east),h.cross(c,l,al.north),h.multiplyByScalar(al.up,-1,al.down),h.multiplyByScalar(al.east,-1,al.west),h.multiplyByScalar(al.north,-1,al.south),tg=al[e],ng=al[t],ig=al[n]}return a[0]=tg.x,a[1]=tg.y,a[2]=tg.z,a[3]=0,a[4]=ng.x,a[5]=ng.y,a[6]=ng.z,a[7]=0,a[8]=ig.x,a[9]=ig.y,a[10]=ig.z,a[11]=0,a[12]=o.x,a[13]=o.y,a[14]=o.z,a[15]=1,a},zG[r]=i),i};Xi.eastNorthUpToFixedFrame=Xi.localFrameToFixedFrameGenerator("east","north");Xi.northEastDownToFixedFrame=Xi.localFrameToFixedFrameGenerator("north","east");Xi.northUpEastToFixedFrame=Xi.localFrameToFixedFrameGenerator("north","up");Xi.northWestUpToFixedFrame=Xi.localFrameToFixedFrameGenerator("north","west");var OEe=new Le,MEe=new h(1,1,1),REe=new N;Xi.headingPitchRollToFixedFrame=function(e,t,n,i,r){i=y(i,Xi.eastNorthUpToFixedFrame);let o=Le.fromHeadingPitchRoll(t,OEe),s=N.fromTranslationQuaternionRotationScale(h.ZERO,o,MEe,REe);return r=i(e,n,r),N.multiply(r,s,r)};var BEe=new N,LEe=new Q;Xi.headingPitchRollQuaternion=function(e,t,n,i,r){let o=Xi.headingPitchRollToFixedFrame(e,t,n,i,BEe),s=N.getMatrix3(o,LEe);return Le.fromRotationMatrix(s,r)};var NEe=new h(1,1,1),FEe=new h,KZ=new N,UEe=new N,VEe=new Q,kEe=new Le;Xi.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=y(t,re.WGS84),n=y(n,Xi.eastNorthUpToFixedFrame),u(i)||(i=new ka);let r=N.getTranslation(e,FEe);if(h.equals(r,h.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;let o=N.inverseTransformation(n(r,t,KZ),KZ),s=N.setScale(e,NEe,UEe);s=N.setTranslation(s,h.ZERO,s),o=N.multiply(o,s,o);let a=Le.fromRotationMatrix(N.getMatrix3(o,VEe),kEe);return a=Le.normalize(a,a),ka.fromQuaternion(a,i)};var zEe=6*3600+41*60+50.54841,HEe=8640184812866e-6,GEe=.093104,WEe=-62e-7,jEe=11772758384668e-32,qEe=72921158553e-15,YEe=P.TWO_PI/86400,G3=new ee;Xi.computeTemeToPseudoFixedMatrix=function(e,t){G3=ee.addSeconds(e,-ee.computeTaiMinusUtc(e),G3);let n=G3.dayNumber,i=G3.secondsOfDay,r,o=n-2451545;i>=43200?r=(o+.5)/Zn.DAYS_PER_JULIAN_CENTURY:r=(o-.5)/Zn.DAYS_PER_JULIAN_CENTURY;let a=(zEe+r*(HEe+r*(GEe+r*WEe)))*YEe%P.TWO_PI,c=qEe+jEe*(n-24515455e-1),l=(i+Zn.SECONDS_PER_DAY*.5)%Zn.SECONDS_PER_DAY,f=a+c*l,d=Math.cos(f),p=Math.sin(f);return u(t)?(t[0]=d,t[1]=-p,t[2]=0,t[3]=p,t[4]=d,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new Q(d,p,0,-p,d,0,0,0,1)};Xi.iau2006XysData=new Sv;Xi.earthOrientationParameters=bv.NONE;var WG=32.184,XEe=2451545;Xi.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+WG,i=e.stop.dayNumber,r=e.stop.secondsOfDay+WG;return Xi.iau2006XysData.preload(t,n,i,r)};Xi.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new Q);let n=Xi.computeFixedToIcrfMatrix(e,t);if(u(n))return Q.transpose(n,t)};var KEe=new B0(0,0,0),JEe=new $_(0,0,0,0,0,0),HG=new Q,GG=new Q;Xi.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new Q);let n=Xi.earthOrientationParameters.compute(e,JEe);if(!u(n))return;let i=e.dayNumber,r=e.secondsOfDay+WG,o=Xi.iau2006XysData.computeXysRadians(i,r,KEe);if(!u(o))return;let s=o.x+n.xPoleOffset,a=o.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-s*s-a*a)),l=HG;l[0]=1-c*s*s,l[3]=-c*s*a,l[6]=s,l[1]=-c*s*a,l[4]=1-c*a*a,l[7]=a,l[2]=-s,l[5]=-a,l[8]=1-c*(s*s+a*a);let f=Q.fromRotationZ(-o.s,GG),d=Q.multiply(l,f,HG),p=e.dayNumber,g=e.secondsOfDay-ee.computeTaiMinusUtc(e)+n.ut1MinusUtc,m=p-2451545,A=g/Zn.SECONDS_PER_DAY,x=.779057273264+A+.00273781191135448*(m+A);x=x%1*P.TWO_PI;let C=Q.fromRotationZ(x,GG),T=Q.multiply(d,C,HG),E=Math.cos(n.xPoleWander),S=Math.cos(n.yPoleWander),v=Math.sin(n.xPoleWander),D=Math.sin(n.yPoleWander),M=i-XEe+r/Zn.SECONDS_PER_DAY;M/=36525;let O=-47e-6*M*P.RADIANS_PER_DEGREE/3600,B=Math.cos(O),L=Math.sin(O),_=GG;return _[0]=E*B,_[1]=E*L,_[2]=v,_[3]=-S*L+D*v*B,_[4]=S*B+D*v*L,_[5]=-D*E,_[6]=-D*L-S*v*B,_[7]=D*B-S*v*L,_[8]=S*E,Q.multiply(T,_,t)};var ZEe=new se;Xi.pointToWindowCoordinates=function(e,t,n,i){return i=Xi.pointToGLWindowCoordinates(e,t,n,i),i.y=2*t[5]-i.y,i};Xi.pointToGLWindowCoordinates=function(e,t,n,i){u(i)||(i=new H);let r=ZEe;return N.multiplyByVector(e,se.fromElements(n.x,n.y,n.z,1,r),r),se.multiplyByScalar(r,1/r.w,r),N.multiplyByVector(t,r,r),H.fromCartesian4(r,i)};var QEe=new h,$Ee=new h,ebe=new h;Xi.rotationMatrixFromPositionVelocity=function(e,t,n,i){let r=y(n,re.WGS84).geodeticSurfaceNormal(e,QEe),o=h.cross(t,r,$Ee);h.equalsEpsilon(o,h.ZERO,P.EPSILON6)&&(o=h.clone(h.UNIT_X,o));let s=h.cross(o,t,ebe);return h.normalize(s,s),h.cross(t,s,o),h.negate(o,o),h.normalize(o,o),u(i)||(i=new Q),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=o.x,i[4]=o.y,i[5]=o.z,i[6]=s.x,i[7]=s.y,i[8]=s.z,i};var JZ=new N(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),ZZ=new me,QZ=new h,tbe=new h,nbe=new Q,jG=new N,$Z=new N;Xi.basisTo2D=function(e,t,n){let i=N.getTranslation(t,tbe),r=e.ellipsoid,o=r.cartesianToCartographic(i,ZZ),s=e.project(o,QZ);h.fromElements(s.z,s.x,s.y,s);let a=Xi.eastNorthUpToFixedFrame(i,r,jG),c=N.inverseTransformation(a,$Z),l=N.getMatrix3(t,nbe),f=N.multiplyByMatrix3(c,l,n);return N.multiply(JZ,f,n),N.setTranslation(n,s,n),n};Xi.wgs84To2DModelMatrix=function(e,t,n){let i=e.ellipsoid,r=Xi.eastNorthUpToFixedFrame(t,i,jG),o=N.inverseTransformation(r,$Z),s=i.cartesianToCartographic(t,ZZ),a=e.project(s,QZ);h.fromElements(a.z,a.x,a.y,a);let c=N.fromTranslation(a,jG);return N.multiply(JZ,o,n),N.multiply(c,n,n),n};var Mt=Xi;function qG(e){e=y(e,y.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=y(e.primitiveType,Be.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=y(e.geometryType,Xu.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}qG.computeNumberOfVertices=function(e){let t=-1;for(let n in e.attributes)if(e.attributes.hasOwnProperty(n)&&u(e.attributes[n])&&u(e.attributes[n].values)){let i=e.attributes[n];t=i.values.length/i.componentsPerAttribute}return t};var ibe=new me,rbe=new h,eQ=new N,obe=[new me,new me,new me],sbe=[new H,new H,new H],abe=[new H,new H,new H],cbe=new h,lbe=new Le,ube=new N,fbe=new er;qG._textureCoordinateRotationPoints=function(e,t,n,i){let r,o=le.center(i,ibe),s=me.toCartesian(o,n,rbe),a=Mt.eastNorthUpToFixedFrame(s,n,eQ),c=N.inverse(a,eQ),l=sbe,f=obe;f[0].longitude=i.west,f[0].latitude=i.south,f[1].longitude=i.west,f[1].latitude=i.north,f[2].longitude=i.east,f[2].latitude=i.south;let d=cbe;for(r=0;r<3;r++)me.toCartesian(f[r],n,d),d=N.multiplyByPointAsVector(c,d,d),l[r].x=d.x,l[r].y=d.y;let p=Le.fromAxisAngle(h.UNIT_Z,-t,lbe),g=Q.fromQuaternion(p,ube),m=e.length,A=Number.POSITIVE_INFINITY,x=Number.POSITIVE_INFINITY,C=Number.NEGATIVE_INFINITY,T=Number.NEGATIVE_INFINITY;for(r=0;r<m;r++)d=N.multiplyByPointAsVector(c,e[r],d),d=Q.multiplyByVector(g,d,d),A=Math.min(A,d.x),x=Math.min(x,d.y),C=Math.max(C,d.x),T=Math.max(T,d.y);let E=er.fromRotation(t,fbe),S=abe;S[0].x=A,S[0].y=x,S[1].x=A,S[1].y=T,S[2].x=C,S[2].y=x;let v=l[0],D=l[2].x-v.x,M=l[1].y-v.y;for(r=0;r<3;r++){let b=S[r];er.multiplyByVector(E,b,b),b.x=(b.x-v.x)/D,b.y=(b.y-v.y)/M}let O=S[0],B=S[1],L=S[2],_=new Array(6);return H.pack(O,_),H.pack(B,_,2),H.pack(L,_,4),_};var ut=qG;function dbe(e){e=y(e,y.EMPTY_OBJECT),this.componentDatatype=e.componentDatatype,this.componentsPerAttribute=e.componentsPerAttribute,this.normalize=y(e.normalize,!1),this.values=e.values}var De=dbe;function cT(e,t,n,i,r){this._format=e,this._datatype=t,this._width=n,this._height=i,this._buffer=r}Object.defineProperties(cT.prototype,{internalFormat:{get:function(){return this._format}},pixelDatatype:{get:function(){return this._datatype}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},bufferView:{get:function(){return this._buffer}}});cT.clone=function(e){if(u(e))return new cT(e._format,e._datatype,e._width,e._height,e._buffer)};cT.prototype.clone=function(){return cT.clone(this)};var vv=cT;var tQ=Yi(Yl(),1);function nQ(){if(!u(ha._canTransferArrayBuffer)){let e=new Worker(rQ("Workers/transferTypedArrayTest.js"));e.postMessage=y(e.webkitPostMessage,e.postMessage);let t=99,n=new Int8Array([t]);try{e.postMessage({array:n},[n.buffer])}catch{return ha._canTransferArrayBuffer=!1,ha._canTransferArrayBuffer}let i=Ws();e.onmessage=function(r){let o=r.data.array,s=u(o)&&o[0]===t;i.resolve(s),e.terminate(),ha._canTransferArrayBuffer=s},ha._canTransferArrayBuffer=i.promise}return ha._canTransferArrayBuffer}var XG=new ge;function iQ(e,t){--e._activeTasks;let n=t.id;if(!u(n))return;let i=e._deferreds,r=i[n];if(u(t.error)){let o=t.error;o.name==="RuntimeError"?(o=new de(t.error.message),o.stack=t.error.stack):o.name==="DeveloperError"&&(o=new fe(t.error.message),o.stack=t.error.stack),XG.raiseEvent(o),r.reject(o)}else XG.raiseEvent(),r.resolve(t.result);delete i[n]}function rQ(e){let t=$t(e);if(w0(t)){let n=`importScripts("${t}");`,i;try{i=new Blob([n],{type:"application/javascript"})}catch{let s=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,a=new s;a.append(n),i=a.getBlob("application/javascript")}t=(window.URL||window.webkitURL).createObjectURL(i)}return t}var YG;function hbe(){return u(YG)||(YG=rQ("Workers/cesiumWorkerBootstrapper.js")),YG}function oQ(e){let t=new Worker(hbe());t.postMessage=y(t.webkitPostMessage,t.postMessage);let n={loaderConfig:{paths:{Workers:$t("Workers")},baseUrl:$t.getCesiumBaseUrl().url},workerModule:e._workerPath};return t.postMessage(n),t.onmessage=function(i){iQ(e,i.data)},t}function mbe(e,t){let n={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!Ht.supportsWebAssembly()){if(!u(t.fallbackModulePath))throw new de(`This browser does not support Web Assembly, and no backup module was provided for ${e._workerPath}`);return n.modulePath=$t(t.fallbackModulePath),Promise.resolve(n)}return n.modulePath=$t(t.modulePath),n.wasmBinaryFile=$t(t.wasmBinaryFile),ve.fetchArrayBuffer({url:n.wasmBinaryFile}).then(function(i){return n.wasmBinary=i,n})}function ha(e,t){let n=new tQ.default(e);this._workerPath=n.scheme().length!==0&&n.fragment().length===0?e:ha._workerModulePrefix+e,this._maximumActiveTasks=y(t,Number.POSITIVE_INFINITY),this._activeTasks=0,this._deferreds={},this._nextID=0}var pbe=[];ha.prototype.scheduleTask=function(e,t){if(u(this._worker)||(this._worker=oQ(this)),this._activeTasks>=this._maximumActiveTasks)return;++this._activeTasks;let n=this;return Promise.resolve(nQ()).then(function(i){u(t)?i||(t.length=0):t=pbe;let r=n._nextID++,o=Ws();return n._deferreds[r]=o,n._worker.postMessage({id:r,parameters:e,canTransferArrayBuffer:i},t),o.promise})};ha.prototype.initWebAssemblyModule=function(e){u(this._worker)||(this._worker=oQ(this));let t=Ws(),n=this,i=this._worker;return mbe(this,e).then(function(r){return Promise.resolve(nQ()).then(function(o){let s,a=r.wasmBinary;u(a)&&o&&(s=[a]),i.onmessage=function(c){i.onmessage=function(l){iQ(n,l.data)},t.resolve(c.data)},i.postMessage({webAssemblyConfig:r},s)})}),t.promise};ha.prototype.isDestroyed=function(){return!1};ha.prototype.destroy=function(){return u(this._worker)&&this._worker.terminate(),ue(this)};ha.taskCompletedEvent=XG;ha._defaultWorkerModulePrefix="Workers/";ha._workerModulePrefix=ha._defaultWorkerModulePrefix;ha._canTransferArrayBuffer=void 0;var pi=ha;function ip(){}ip._transcodeTaskProcessor=new pi("transcodeKTX2",Number.POSITIVE_INFINITY);ip._readyPromise=void 0;function _be(){let e=ip._transcodeTaskProcessor.initWebAssemblyModule({modulePath:"ThirdParty/Workers/basis_transcoder.js",wasmBinaryFile:"ThirdParty/basis_transcoder.wasm"}).then(function(){return ip._transcodeTaskProcessor});ip._readyPromise=e}ip.transcode=function(e,t){return u(ip._readyPromise)||_be(),ip._readyPromise.then(function(n){let i;if(e instanceof ArrayBuffer){let r=new Uint8Array(e);return i={supportedTargetFormats:t,ktx2Buffer:r},n.scheduleTask(i,[e])}return i={supportedTargetFormats:t,ktx2Buffer:e},n.scheduleTask(i,[e.buffer])}).then(function(n){let i=n.length,r=Object.keys(n[0]),o=r.length,s;for(s=0;s<i;s++){let a=n[s];for(let c=0;c<o;c++){let l=a[r[c]];a[r[c]]=new vv(l.internalFormat,l.datatype,l.width,l.height,l.levelBuffer)}}if(o===1){for(s=0;s<i;++s)n[s]=n[s][r[0]];i===1&&(n=n[0])}return n}).catch(function(n){throw n})};var wv=ip;var sQ;aQ.setKTX2SupportedFormats=function(e,t,n,i,r,o){sQ={s3tc:e,pvrtc:t,astc:n,etc:i,etc1:r,bc7:o}};function aQ(e){let t;return e instanceof ArrayBuffer||ArrayBuffer.isView(e)?t=Promise.resolve(e):t=ve.createIfNeeded(e).fetchArrayBuffer(),t.then(function(n){return wv.transcode(n,sQ)})}var cl=aQ;function W3(e,t,n,i,r,o,s,a,c,l,f){this._context=e,this._texture=t,this._textureTarget=n,this._targetFace=i,this._pixelDatatype=s,this._internalFormat=r,this._pixelFormat=o,this._size=a,this._preMultiplyAlpha=c,this._flipY=l,this._initialized=f}Object.defineProperties(W3.prototype,{pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},_target:{get:function(){return this._targetFace}}});W3.prototype.copyFrom=function(e){let t=y(e.xOffset,0),n=y(e.yOffset,0),i=e.source,r=this._context._gl,o=this._textureTarget,s=this._targetFace;r.activeTexture(r.TEXTURE0),r.bindTexture(o,this._texture);let a=i.width,c=i.height,l=i.arrayBufferView,f=this._size,d=this._pixelFormat,p=this._internalFormat,g=this._pixelDatatype,m=this._preMultiplyAlpha,A=this._flipY,x=y(e.skipColorSpaceConversion,!1),C=4;u(l)&&(C=at.alignmentInBytes(d,g,a)),r.pixelStorei(r.UNPACK_ALIGNMENT,C),x?r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,r.NONE):r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,r.BROWSER_DEFAULT_WEBGL);let T=!1;if(!this._initialized){if(t===0&&n===0&&a===f&&c===f)u(l)?(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),A&&(l=at.flipY(l,d,g,f,f)),r.texImage2D(s,0,p,f,f,0,d,Ke.toWebGLConstant(g,this._context),l)):(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,A),r.texImage2D(s,0,p,d,Ke.toWebGLConstant(g,this._context),i)),T=!0;else{r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1);let E=at.createTypedArray(d,g,f,f);r.texImage2D(s,0,p,f,f,0,d,Ke.toWebGLConstant(g,this._context),E)}this._initialized=!0}T||(u(l)?(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),A&&(l=at.flipY(l,d,g,a,c)),r.texSubImage2D(s,0,t,n,a,c,d,Ke.toWebGLConstant(g,this._context),l)):(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,A),r.texSubImage2D(s,0,t,n,d,Ke.toWebGLConstant(g,this._context),i))),r.bindTexture(o,null)};W3.prototype.copyFromFramebuffer=function(e,t,n,i,r,o){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),r=y(r,this._size),o=y(o,this._size);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(this._targetFace,0,e,t,n,i,r,o),s.bindTexture(a,null),this._initialized=!0};var Nh=W3;var j3={DONT_CARE:te.DONT_CARE,FASTEST:te.FASTEST,NICEST:te.NICEST,validate:function(e){return e===j3.DONT_CARE||e===j3.FASTEST||e===j3.NICEST}},Fh=Object.freeze(j3);var q3={NEAREST:te.NEAREST,LINEAR:te.LINEAR};q3.validate=function(e){return e===q3.NEAREST||e===q3.LINEAR};var Ti=Object.freeze(q3);var rg={NEAREST:te.NEAREST,LINEAR:te.LINEAR,NEAREST_MIPMAP_NEAREST:te.NEAREST_MIPMAP_NEAREST,LINEAR_MIPMAP_NEAREST:te.LINEAR_MIPMAP_NEAREST,NEAREST_MIPMAP_LINEAR:te.NEAREST_MIPMAP_LINEAR,LINEAR_MIPMAP_LINEAR:te.LINEAR_MIPMAP_LINEAR};rg.validate=function(e){return e===rg.NEAREST||e===rg.LINEAR||e===rg.NEAREST_MIPMAP_NEAREST||e===rg.LINEAR_MIPMAP_NEAREST||e===rg.NEAREST_MIPMAP_LINEAR||e===rg.LINEAR_MIPMAP_LINEAR};var sn=Object.freeze(rg);var Y3={CLAMP_TO_EDGE:te.CLAMP_TO_EDGE,REPEAT:te.REPEAT,MIRRORED_REPEAT:te.MIRRORED_REPEAT,validate:function(e){return e===Y3.CLAMP_TO_EDGE||e===Y3.REPEAT||e===Y3.MIRRORED_REPEAT}},Sn=Object.freeze(Y3);function Dv(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.wrapS,Sn.CLAMP_TO_EDGE),n=y(e.wrapT,Sn.CLAMP_TO_EDGE),i=y(e.minificationFilter,sn.LINEAR),r=y(e.magnificationFilter,Ti.LINEAR),o=u(e.maximumAnisotropy)?e.maximumAnisotropy:1;this._wrapS=t,this._wrapT=n,this._minificationFilter=i,this._magnificationFilter=r,this._maximumAnisotropy=o}Object.defineProperties(Dv.prototype,{wrapS:{get:function(){return this._wrapS}},wrapT:{get:function(){return this._wrapT}},minificationFilter:{get:function(){return this._minificationFilter}},magnificationFilter:{get:function(){return this._magnificationFilter}},maximumAnisotropy:{get:function(){return this._maximumAnisotropy}}});Dv.equals=function(e,t){return e===t||u(e)&&u(t)&&e._wrapS===t._wrapS&&e._wrapT===t._wrapT&&e._minificationFilter===t._minificationFilter&&e._magnificationFilter===t._magnificationFilter&&e._maximumAnisotropy===t._maximumAnisotropy};Dv.NEAREST=Object.freeze(new Dv({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:sn.NEAREST,magnificationFilter:Ti.NEAREST}));var ln=Dv;function Iv(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.source,i,r;if(u(n)){let T=[n.positiveX,n.negativeX,n.positiveY,n.negativeY,n.positiveZ,n.negativeZ];i=T[0].width,r=T[0].height}else i=e.width,r=e.height;let o=i,s=y(e.pixelDatatype,Ke.UNSIGNED_BYTE),a=y(e.pixelFormat,at.RGBA),c=at.toInternalFormat(a,s,t),l=at.textureSizeInBytes(a,s,o,o)*6,f=e.preMultiplyAlpha||a===at.RGB||a===at.LUMINANCE,d=y(e.flipY,!0),p=y(e.skipColorSpaceConversion,!1),g=t._gl,m=g.TEXTURE_CUBE_MAP,A=g.createTexture();g.activeTexture(g.TEXTURE0),g.bindTexture(m,A);function x(T,E,S,v,D){let M=E.arrayBufferView;u(M)||(M=E.bufferView);let O=4;u(M)&&(O=at.alignmentInBytes(a,s,i)),g.pixelStorei(g.UNPACK_ALIGNMENT,O),D?g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.NONE):g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.BROWSER_DEFAULT_WEBGL),u(M)?(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1),v&&(M=at.flipY(M,a,s,o,o)),g.texImage2D(T,0,c,o,o,0,a,Ke.toWebGLConstant(s,t),M)):(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,S),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,v),g.texImage2D(T,0,c,a,Ke.toWebGLConstant(s,t),E))}u(n)?(x(g.TEXTURE_CUBE_MAP_POSITIVE_X,n.positiveX,f,d,p),x(g.TEXTURE_CUBE_MAP_NEGATIVE_X,n.negativeX,f,d,p),x(g.TEXTURE_CUBE_MAP_POSITIVE_Y,n.positiveY,f,d,p),x(g.TEXTURE_CUBE_MAP_NEGATIVE_Y,n.negativeY,f,d,p),x(g.TEXTURE_CUBE_MAP_POSITIVE_Z,n.positiveZ,f,d,p),x(g.TEXTURE_CUBE_MAP_NEGATIVE_Z,n.negativeZ,f,d,p)):(g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_X,0,c,o,o,0,a,Ke.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_X,0,c,o,o,0,a,Ke.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_Y,0,c,o,o,0,a,Ke.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_Y,0,c,o,o,0,a,Ke.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_Z,0,c,o,o,0,a,Ke.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_Z,0,c,o,o,0,a,Ke.toWebGLConstant(s,t),null)),g.bindTexture(m,null),this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=m,this._texture=A,this._pixelFormat=a,this._pixelDatatype=s,this._size=o,this._hasMipmap=!1,this._sizeInBytes=l,this._preMultiplyAlpha=f,this._flipY=d,this._sampler=void 0;let C=u(n);this._positiveX=new Nh(t,A,m,g.TEXTURE_CUBE_MAP_POSITIVE_X,c,a,s,o,f,d,C),this._negativeX=new Nh(t,A,m,g.TEXTURE_CUBE_MAP_NEGATIVE_X,c,a,s,o,f,d,C),this._positiveY=new Nh(t,A,m,g.TEXTURE_CUBE_MAP_POSITIVE_Y,c,a,s,o,f,d,C),this._negativeY=new Nh(t,A,m,g.TEXTURE_CUBE_MAP_NEGATIVE_Y,c,a,s,o,f,d,C),this._positiveZ=new Nh(t,A,m,g.TEXTURE_CUBE_MAP_POSITIVE_Z,c,a,s,o,f,d,C),this._negativeZ=new Nh(t,A,m,g.TEXTURE_CUBE_MAP_NEGATIVE_Z,c,a,s,o,f,d,C),this.sampler=u(e.sampler)?e.sampler:new ln}Object.defineProperties(Iv.prototype,{positiveX:{get:function(){return this._positiveX}},negativeX:{get:function(){return this._negativeX}},positiveY:{get:function(){return this._positiveY}},negativeY:{get:function(){return this._negativeY}},positiveZ:{get:function(){return this._positiveZ}},negativeZ:{get:function(){return this._negativeZ}},sampler:{get:function(){return this._sampler},set:function(e){let t=e.minificationFilter,n=e.magnificationFilter,i=t===sn.NEAREST_MIPMAP_NEAREST||t===sn.NEAREST_MIPMAP_LINEAR||t===sn.LINEAR_MIPMAP_NEAREST||t===sn.LINEAR_MIPMAP_LINEAR,r=this._context,o=this._pixelDatatype;(o===Ke.FLOAT&&!r.textureFloatLinear||o===Ke.HALF_FLOAT&&!r.textureHalfFloatLinear)&&(t=i?sn.NEAREST_MIPMAP_NEAREST:sn.NEAREST,n=Ti.NEAREST);let s=r._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.texParameteri(a,s.TEXTURE_MIN_FILTER,t),s.texParameteri(a,s.TEXTURE_MAG_FILTER,n),s.texParameteri(a,s.TEXTURE_WRAP_S,e.wrapS),s.texParameteri(a,s.TEXTURE_WRAP_T,e.wrapT),u(this._textureFilterAnisotropic)&&s.texParameteri(a,this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,e.maximumAnisotropy),s.bindTexture(a,null),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},width:{get:function(){return this._size}},height:{get:function(){return this._size}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*4/3):this._sizeInBytes}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},_target:{get:function(){return this._textureTarget}}});Iv.prototype.generateMipmap=function(e){e=y(e,Fh.DONT_CARE),this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};Iv.prototype.isDestroyed=function(){return!1};Iv.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),this._positiveX=ue(this._positiveX),this._negativeX=ue(this._negativeX),this._positiveY=ue(this._positiveY),this._negativeY=ue(this._negativeY),this._positiveZ=ue(this._positiveZ),this._negativeZ=ue(this._negativeZ),ue(this)};var za=Iv;function gbe(e){this.context=e,this.framebuffer=void 0,this.blendingEnabled=void 0,this.scissorTest=void 0,this.viewport=void 0}var Ha=gbe;var Pv=`/** + * A built-in GLSL floating-point constant for converting radians to degrees. + * + * @alias czm_degreesPerRadian + * @glslConstant + * + * @see CesiumMath.DEGREES_PER_RADIAN + * + * @example + * // GLSL declaration + * const float czm_degreesPerRadian = ...; + * + * // Example + * float deg = czm_degreesPerRadian * rad; + */ +const float czm_degreesPerRadian = 57.29577951308232; +`;var Ov=`/** + * A built-in GLSL vec2 constant for defining the depth range. + * This is a workaround to a bug where IE11 does not implement gl_DepthRange. + * + * @alias czm_depthRange + * @glslConstant + * + * @example + * // GLSL declaration + * float depthRangeNear = czm_depthRange.near; + * float depthRangeFar = czm_depthRange.far; + * + */ +const czm_depthRangeStruct czm_depthRange = czm_depthRangeStruct(0.0, 1.0); +`;var Mv=`/** + * 0.1 + * + * @name czm_epsilon1 + * @glslConstant + */ +const float czm_epsilon1 = 0.1; +`;var Rv=`/** + * 0.01 + * + * @name czm_epsilon2 + * @glslConstant + */ +const float czm_epsilon2 = 0.01; +`;var Bv=`/** + * 0.001 + * + * @name czm_epsilon3 + * @glslConstant + */ +const float czm_epsilon3 = 0.001; +`;var Lv=`/** + * 0.0001 + * + * @name czm_epsilon4 + * @glslConstant + */ +const float czm_epsilon4 = 0.0001; +`;var Nv=`/** + * 0.00001 + * + * @name czm_epsilon5 + * @glslConstant + */ +const float czm_epsilon5 = 0.00001; +`;var Fv=`/** + * 0.000001 + * + * @name czm_epsilon6 + * @glslConstant + */ +const float czm_epsilon6 = 0.000001; +`;var Uv=`/** + * 0.0000001 + * + * @name czm_epsilon7 + * @glslConstant + */ +const float czm_epsilon7 = 0.0000001; +`;var Vv=`/** + * DOC_TBA + * + * @name czm_infinity + * @glslConstant + */ +const float czm_infinity = 5906376272000.0; // Distance from the Sun to Pluto in meters. TODO: What is best given lowp, mediump, and highp? +`;var kv=`/** + * A built-in GLSL floating-point constant for <code>1/pi</code>. + * + * @alias czm_oneOverPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverPi = ...; + * + * // Example + * float pi = 1.0 / czm_oneOverPi; + */ +const float czm_oneOverPi = 0.3183098861837907; +`;var zv=`/** + * A built-in GLSL floating-point constant for <code>1/2pi</code>. + * + * @alias czm_oneOverTwoPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_TWO_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverTwoPi = ...; + * + * // Example + * float pi = 2.0 * czm_oneOverTwoPi; + */ +const float czm_oneOverTwoPi = 0.15915494309189535; +`;var Hv=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE} + * + * @name czm_passCesium3DTile + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTile = 4.0; +`;var Gv=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION} + * + * @name czm_passCesium3DTileClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassification = 5.0; +`;var Wv=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW} + * + * @name czm_passCesium3DTileClassificationIgnoreShow + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassificationIgnoreShow = 6.0; +`;var jv=`/** + * The automatic GLSL constant for {@link Pass#CLASSIFICATION} + * + * @name czm_passClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passClassification = 7.0; +`;var qv=`/** + * The automatic GLSL constant for {@link Pass#COMPUTE} + * + * @name czm_passCompute + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCompute = 1.0; +`;var Yv=`/** + * The automatic GLSL constant for {@link Pass#ENVIRONMENT} + * + * @name czm_passEnvironment + * @glslConstant + * + * @see czm_pass + */ +const float czm_passEnvironment = 0.0; +`;var Xv=`/** + * The automatic GLSL constant for {@link Pass#GLOBE} + * + * @name czm_passGlobe + * @glslConstant + * + * @see czm_pass + */ +const float czm_passGlobe = 2.0; +`;var Kv=`/** + * The automatic GLSL constant for {@link Pass#OPAQUE} + * + * @name czm_passOpaque + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOpaque = 7.0; +`;var Jv=`/** + * The automatic GLSL constant for {@link Pass#OVERLAY} + * + * @name czm_passOverlay + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOverlay = 10.0; +`;var Zv=`/** + * The automatic GLSL constant for {@link Pass#TERRAIN_CLASSIFICATION} + * + * @name czm_passTerrainClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTerrainClassification = 3.0; +`;var Qv=`/** + * The automatic GLSL constant for {@link Pass#TRANSLUCENT} + * + * @name czm_passTranslucent + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTranslucent = 8.0; +`;var $v=`/** + * The automatic GLSL constant for {@link Pass#VOXELS} + * + * @name czm_passVoxels + * @glslConstant + * + * @see czm_pass + */ +const float czm_passVoxels = 9.0; +`;var ew=`/** + * A built-in GLSL floating-point constant for <code>Math.PI</code>. + * + * @alias czm_pi + * @glslConstant + * + * @see CesiumMath.PI + * + * @example + * // GLSL declaration + * const float czm_pi = ...; + * + * // Example + * float twoPi = 2.0 * czm_pi; + */ +const float czm_pi = 3.141592653589793; +`;var tw=`/** + * A built-in GLSL floating-point constant for <code>pi/4</code>. + * + * @alias czm_piOverFour + * @glslConstant + * + * @see CesiumMath.PI_OVER_FOUR + * + * @example + * // GLSL declaration + * const float czm_piOverFour = ...; + * + * // Example + * float pi = 4.0 * czm_piOverFour; + */ +const float czm_piOverFour = 0.7853981633974483; +`;var nw=`/** + * A built-in GLSL floating-point constant for <code>pi/6</code>. + * + * @alias czm_piOverSix + * @glslConstant + * + * @see CesiumMath.PI_OVER_SIX + * + * @example + * // GLSL declaration + * const float czm_piOverSix = ...; + * + * // Example + * float pi = 6.0 * czm_piOverSix; + */ +const float czm_piOverSix = 0.5235987755982988; +`;var iw=`/** + * A built-in GLSL floating-point constant for <code>pi/3</code>. + * + * @alias czm_piOverThree + * @glslConstant + * + * @see CesiumMath.PI_OVER_THREE + * + * @example + * // GLSL declaration + * const float czm_piOverThree = ...; + * + * // Example + * float pi = 3.0 * czm_piOverThree; + */ +const float czm_piOverThree = 1.0471975511965976; +`;var rw=`/** + * A built-in GLSL floating-point constant for <code>pi/2</code>. + * + * @alias czm_piOverTwo + * @glslConstant + * + * @see CesiumMath.PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_piOverTwo = ...; + * + * // Example + * float pi = 2.0 * czm_piOverTwo; + */ +const float czm_piOverTwo = 1.5707963267948966; +`;var ow=`/** + * A built-in GLSL floating-point constant for converting degrees to radians. + * + * @alias czm_radiansPerDegree + * @glslConstant + * + * @see CesiumMath.RADIANS_PER_DEGREE + * + * @example + * // GLSL declaration + * const float czm_radiansPerDegree = ...; + * + * // Example + * float rad = czm_radiansPerDegree * deg; + */ +const float czm_radiansPerDegree = 0.017453292519943295; +`;var sw=`/** + * The constant identifier for the 2D {@link SceneMode} + * + * @name czm_sceneMode2D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode2D = 2.0; +`;var aw=`/** + * The constant identifier for the 3D {@link SceneMode} + * + * @name czm_sceneMode3D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode3D = 3.0; +`;var cw=`/** + * The constant identifier for the Columbus View {@link SceneMode} + * + * @name czm_sceneModeColumbusView + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneModeColumbusView = 1.0; +`;var lw=`/** + * The constant identifier for the Morphing {@link SceneMode} + * + * @name czm_sceneModeMorphing + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + */ +const float czm_sceneModeMorphing = 0.0; +`;var uw=`/** + * A built-in GLSL floating-point constant for one solar radius. + * + * @alias czm_solarRadius + * @glslConstant + * + * @see CesiumMath.SOLAR_RADIUS + * + * @example + * // GLSL declaration + * const float czm_solarRadius = ...; + */ +const float czm_solarRadius = 695500000.0; +`;var fw=`/** + * A built-in GLSL floating-point constant for <code>3pi/2</code>. + * + * @alias czm_threePiOver2 + * @glslConstant + * + * @see CesiumMath.THREE_PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_threePiOver2 = ...; + * + * // Example + * float pi = (2.0 / 3.0) * czm_threePiOver2; + */ +const float czm_threePiOver2 = 4.71238898038469; +`;var dw=`/** + * A built-in GLSL floating-point constant for <code>2pi</code>. + * + * @alias czm_twoPi + * @glslConstant + * + * @see CesiumMath.TWO_PI + * + * @example + * // GLSL declaration + * const float czm_twoPi = ...; + * + * // Example + * float pi = czm_twoPi / 2.0; + */ +const float czm_twoPi = 6.283185307179586; +`;var hw=`/** + * The maximum latitude, in radians, both North and South, supported by a Web Mercator + * (EPSG:3857) projection. Technically, the Mercator projection is defined + * for any latitude up to (but not including) 90 degrees, but it makes sense + * to cut it off sooner because it grows exponentially with increasing latitude. + * The logic behind this particular cutoff value, which is the one used by + * Google Maps, Bing Maps, and Esri, is that it makes the projection + * square. That is, the rectangle is equal in the X and Y directions. + * + * The constant value is computed as follows: + * czm_pi * 0.5 - (2.0 * atan(exp(-czm_pi))) + * + * @name czm_webMercatorMaxLatitude + * @glslConstant + */ +const float czm_webMercatorMaxLatitude = 1.4844222297453324; +`;var mw=`/** + * @name czm_depthRangeStruct + * @glslStruct + */ +struct czm_depthRangeStruct +{ + float near; + float far; +}; +`;var pw=`/** + * Holds material information that can be used for lighting. Returned by all czm_getMaterial functions. + * + * @name czm_material + * @glslStruct + * + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} specular Intensity of incoming light reflecting in a single direction. + * @property {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * @property {vec3} normal Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {vec3} emission Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + */ +struct czm_material +{ + vec3 diffuse; + float specular; + float shininess; + vec3 normal; + vec3 emission; + float alpha; +}; +`;var _w=`/** + * Used as input to every material's czm_getMaterial function. + * + * @name czm_materialInput + * @glslStruct + * + * @property {float} s 1D texture coordinates. + * @property {vec2} st 2D texture coordinates. + * @property {vec3} str 3D texture coordinates. + * @property {vec3} normalEC Unperturbed surface normal in eye coordinates. + * @property {mat3} tangentToEyeMatrix Matrix for converting a tangent space normal to eye space. + * @property {vec3} positionToEyeEC Vector from the fragment to the eye in eye coordinates. The magnitude is the distance in meters from the fragment to the eye. + * @property {float} height The height of the terrain in meters above or below the WGS84 ellipsoid. Only available for globe materials. + * @property {float} slope The slope of the terrain in radians. 0 is flat; pi/2 is vertical. Only available for globe materials. + * @property {float} aspect The aspect of the terrain in radians. 0 is East, pi/2 is North, pi is West, 3pi/2 is South. Only available for globe materials. + */ +struct czm_materialInput +{ + float s; + vec2 st; + vec3 str; + vec3 normalEC; + mat3 tangentToEyeMatrix; + vec3 positionToEyeEC; + float height; + float slope; + float aspect; +}; +`;var gw=`/** + * Struct for representing a material for a {@link Model}. The model + * rendering pipeline will pass this struct between material, custom shaders, + * and lighting stages. This is not to be confused with {@link czm_material} + * which is used by the older Fabric materials system, although they are similar. + * <p> + * All color values (diffuse, specular, emissive) are in linear color space. + * </p> + * + * @name czm_modelMaterial + * @glslStruct + * + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + * @property {vec3} specular Color of reflected light at normal incidence in PBR materials. This is sometimes referred to as f0 in the literature. + * @property {float} roughness A number from 0.0 to 1.0 representing how rough the surface is. Values near 0.0 produce glossy surfaces, while values near 1.0 produce rough surfaces. + * @property {vec3} normalEC Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {float} occlusion Ambient occlusion recieved at this point on the material. 1.0 means fully lit, 0.0 means fully occluded. + * @property {vec3} emissive Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + */ +struct czm_modelMaterial { + vec3 diffuse; + float alpha; + vec3 specular; + float roughness; + vec3 normalEC; + float occlusion; + vec3 emissive; +}; +`;var yw=`/** + * Struct for representing the output of a custom vertex shader. + * + * @name czm_modelVertexOutput + * @glslStruct + * + * @see {@link CustomShader} + * @see {@link Model} + * + * @property {vec3} positionMC The position of the vertex in model coordinates + * @property {float} pointSize A custom value for gl_PointSize. This is only used for point primitives. + */ +struct czm_modelVertexOutput { + vec3 positionMC; + float pointSize; +}; +`;var Aw=`/** + * Parameters for {@link czm_pbrLighting} + * + * @name czm_material + * @glslStruct + * + * @property {vec3} diffuseColor the diffuse color of the material for the lambert term of the rendering equation + * @property {float} roughness a value from 0.0 to 1.0 that indicates how rough the surface of the material is. + * @property {vec3} f0 The reflectance of the material at normal incidence + */ +struct czm_pbrParameters +{ + vec3 diffuseColor; + float roughness; + vec3 f0; +}; +`;var xw=`/** + * DOC_TBA + * + * @name czm_ray + * @glslStruct + */ +struct czm_ray +{ + vec3 origin; + vec3 direction; +}; +`;var Cw=`/** + * DOC_TBA + * + * @name czm_raySegment + * @glslStruct + */ +struct czm_raySegment +{ + float start; + float stop; +}; + +/** + * DOC_TBA + * + * @name czm_emptyRaySegment + * @glslConstant + */ +const czm_raySegment czm_emptyRaySegment = czm_raySegment(-czm_infinity, -czm_infinity); + +/** + * DOC_TBA + * + * @name czm_fullRaySegment + * @glslConstant + */ +const czm_raySegment czm_fullRaySegment = czm_raySegment(0.0, czm_infinity); +`;var Tw=`struct czm_shadowParameters +{ +#ifdef USE_CUBE_MAP_SHADOW + vec3 texCoords; +#else + vec2 texCoords; +#endif + + float depthBias; + float depth; + float nDotL; + vec2 texelStepSize; + float normalShadingSmooth; + float darkness; +}; +`;var Ew=`/** + * Converts an HSB color (hue, saturation, brightness) to RGB + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_HSBToRGB + * @glslFunction + * + * @param {vec3} hsb The color in HSB. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_HSB2RGB = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + +vec3 czm_HSBToRGB(vec3 hsb) +{ + vec3 p = abs(fract(hsb.xxx + K_HSB2RGB.xyz) * 6.0 - K_HSB2RGB.www); + return hsb.z * mix(K_HSB2RGB.xxx, clamp(p - K_HSB2RGB.xxx, 0.0, 1.0), hsb.y); +} +`;var bw=`/** + * Converts an HSL color (hue, saturation, lightness) to RGB + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_HSLToRGB + * @glslFunction + * + * @param {vec3} rgb The color in HSL. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 hueToRGB(float hue) +{ + float r = abs(hue * 6.0 - 3.0) - 1.0; + float g = 2.0 - abs(hue * 6.0 - 2.0); + float b = 2.0 - abs(hue * 6.0 - 4.0); + return clamp(vec3(r, g, b), 0.0, 1.0); +} + +vec3 czm_HSLToRGB(vec3 hsl) +{ + vec3 rgb = hueToRGB(hsl.x); + float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y; + return (rgb - 0.5) * c + hsl.z; +} +`;var Sw=`/** + * Converts an RGB color to HSB (hue, saturation, brightness) + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_RGBToHSB + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_RGB2HSB = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + +vec3 czm_RGBToHSB(vec3 rgb) +{ + vec4 p = mix(vec4(rgb.bg, K_RGB2HSB.wz), vec4(rgb.gb, K_RGB2HSB.xy), step(rgb.b, rgb.g)); + vec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r)); + + float d = q.x - min(q.w, q.y); + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + czm_epsilon7)), d / (q.x + czm_epsilon7), q.x); +} +`;var vw=`/** + * Converts an RGB color to HSL (hue, saturation, lightness) + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_RGBToHSL + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSL. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 RGBtoHCV(vec3 rgb) +{ + // Based on work by Sam Hocevar and Emil Persson + vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0) : vec4(rgb.gb, 0.0, -1.0 / 3.0); + vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx); + float c = q.x - min(q.w, q.y); + float h = abs((q.w - q.y) / (6.0 * c + czm_epsilon7) + q.z); + return vec3(h, c, q.x); +} + +vec3 czm_RGBToHSL(vec3 rgb) +{ + vec3 hcv = RGBtoHCV(rgb); + float l = hcv.z - hcv.y * 0.5; + float s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + czm_epsilon7); + return vec3(hcv.x, s, l); +} +`;var ww=`/** + * Converts an RGB color to CIE Yxy. + * <p>The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + * </p> + * + * @name czm_RGBToXYZ + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in CIE Yxy. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_RGBToXYZ(vec3 rgb) +{ + const mat3 RGB2XYZ = mat3(0.4124, 0.2126, 0.0193, + 0.3576, 0.7152, 0.1192, + 0.1805, 0.0722, 0.9505); + vec3 xyz = RGB2XYZ * rgb; + vec3 Yxy; + Yxy.r = xyz.g; + float temp = dot(vec3(1.0), xyz); + Yxy.gb = xyz.rg / temp; + return Yxy; +} +`;var Dw=`/** + * Converts a CIE Yxy color to RGB. + * <p>The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + * </p> + * + * @name czm_XYZToRGB + * @glslFunction + * + * @param {vec3} Yxy The color in CIE Yxy. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_XYZToRGB(vec3 Yxy) +{ + const mat3 XYZ2RGB = mat3( 3.2405, -0.9693, 0.0556, + -1.5371, 1.8760, -0.2040, + -0.4985, 0.0416, 1.0572); + vec3 xyz; + xyz.r = Yxy.r * Yxy.g / Yxy.b; + xyz.g = Yxy.r; + xyz.b = Yxy.r * (1.0 - Yxy.g - Yxy.b) / Yxy.b; + + return XYZ2RGB * xyz; +} +`;var Iw=`// See: +// https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/ + +vec3 czm_acesTonemapping(vec3 color) { + float g = 0.985; + float a = 0.065; + float b = 0.0001; + float c = 0.433; + float d = 0.238; + + color = (color * (color + a) - b) / (color * (g * color + c) + d); + + color = clamp(color, 0.0, 1.0); + + return color; +} +`;var Pw=`/** + * @private + */ +float czm_alphaWeight(float a) +{ + float z = (gl_FragCoord.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + + // See Weighted Blended Order-Independent Transparency for examples of different weighting functions: + // http://jcgt.org/published/0002/02/09/ + return pow(a + 0.01, 4.0) + max(1e-2, min(3.0 * 1e3, 0.003 / (1e-5 + pow(abs(z) / 200.0, 4.0)))); +} +`;var Ow=`/** + * Procedural anti-aliasing by blurring two colors that meet at a sharp edge. + * + * @name czm_antialias + * @glslFunction + * + * @param {vec4} color1 The color on one side of the edge. + * @param {vec4} color2 The color on the other side of the edge. + * @param {vec4} currentcolor The current color, either <code>color1</code> or <code>color2</code>. + * @param {float} dist The distance to the edge in texture coordinates. + * @param {float} [fuzzFactor=0.1] Controls the blurriness between the two colors. + * @returns {vec4} The anti-aliased color. + * + * @example + * // GLSL declarations + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor); + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist); + * + * // get the color for a material that has a sharp edge at the line y = 0.5 in texture space + * float dist = abs(textureCoordinates.t - 0.5); + * vec4 currentColor = mix(bottomColor, topColor, step(0.5, textureCoordinates.t)); + * vec4 color = czm_antialias(bottomColor, topColor, currentColor, dist, 0.1); + */ +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor) +{ + float val1 = clamp(dist / fuzzFactor, 0.0, 1.0); + float val2 = clamp((dist - 0.5) / fuzzFactor, 0.0, 1.0); + val1 = val1 * (1.0 - val2); + val1 = val1 * val1 * (3.0 - (2.0 * val1)); + val1 = pow(val1, 0.5); //makes the transition nicer + + vec4 midColor = (color1 + color2) * 0.5; + return mix(midColor, currentColor, val1); +} + +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist) +{ + return czm_antialias(color1, color2, currentColor, dist, 0.1); +} +`;var Mw=`/** + * Approximately computes spherical coordinates given a normal. + * Uses approximate inverse trigonometry for speed and consistency, + * since inverse trigonometry can differ from vendor-to-vendor and when compared with the CPU. + * + * @name czm_approximateSphericalCoordinates + * @glslFunction + * + * @param {vec3} normal arbitrary-length normal. + * + * @returns {vec2} Approximate latitude and longitude spherical coordinates. + */ +vec2 czm_approximateSphericalCoordinates(vec3 normal) { + // Project into plane with vertical for latitude + float latitudeApproximation = czm_fastApproximateAtan(sqrt(normal.x * normal.x + normal.y * normal.y), normal.z); + float longitudeApproximation = czm_fastApproximateAtan(normal.x, normal.y); + return vec2(latitudeApproximation, longitudeApproximation); +} +`;var Rw=`/** + * Determines if the fragment is back facing + * + * @name czm_backFacing + * @glslFunction + * + * @returns {bool} <code>true</code> if the fragment is back facing; otherwise, <code>false</code>. + */ +bool czm_backFacing() +{ + // !gl_FrontFacing doesn't work as expected on Mac/Intel so use the more verbose form instead. See https://github.com/CesiumGS/cesium/pull/8494. + return gl_FrontFacing == false; +} +`;var Bw=`/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a float expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {float} a Value to return if the comparison is true. + * @param {float} b Value to return if the comparison is false. + * + * @returns {float} equivalent of comparison ? a : b + */ +float czm_branchFreeTernary(bool comparison, float a, float b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec2 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec2} a Value to return if the comparison is true. + * @param {vec2} b Value to return if the comparison is false. + * + * @returns {vec2} equivalent of comparison ? a : b + */ +vec2 czm_branchFreeTernary(bool comparison, vec2 a, vec2 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec3 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec3 czm_branchFreeTernary(bool comparison, vec3 a, vec3 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec4 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec4 czm_branchFreeTernary(bool comparison, vec4 a, vec4 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} +`;var Lw=` +vec4 czm_cascadeColor(vec4 weights) +{ + return vec4(1.0, 0.0, 0.0, 1.0) * weights.x + + vec4(0.0, 1.0, 0.0, 1.0) * weights.y + + vec4(0.0, 0.0, 1.0, 1.0) * weights.z + + vec4(1.0, 0.0, 1.0, 1.0) * weights.w; +} +`;var Nw=` +uniform vec4 shadowMap_cascadeDistances; + +float czm_cascadeDistance(vec4 weights) +{ + return dot(shadowMap_cascadeDistances, weights); +} +`;var Fw=` +uniform mat4 shadowMap_cascadeMatrices[4]; + +mat4 czm_cascadeMatrix(vec4 weights) +{ + return shadowMap_cascadeMatrices[0] * weights.x + + shadowMap_cascadeMatrices[1] * weights.y + + shadowMap_cascadeMatrices[2] * weights.z + + shadowMap_cascadeMatrices[3] * weights.w; +} +`;var Uw=` +uniform vec4 shadowMap_cascadeSplits[2]; + +vec4 czm_cascadeWeights(float depthEye) +{ + // One component is set to 1.0 and all others set to 0.0. + vec4 near = step(shadowMap_cascadeSplits[0], vec4(depthEye)); + vec4 far = step(depthEye, shadowMap_cascadeSplits[1]); + return near * far; +} +`;var Vw=`/** + * DOC_TBA + * + * @name czm_columbusViewMorph + * @glslFunction + */ +vec4 czm_columbusViewMorph(vec4 position2D, vec4 position3D, float time) +{ + // Just linear for now. + vec3 p = mix(position2D.xyz, position3D.xyz, time); + return vec4(p, 1.0); +} +`;var kw=`/** + * Returns a position in model coordinates relative to eye taking into + * account the current scene mode: 3D, 2D, or Columbus view. + * <p> + * This uses standard position attributes, <code>position3DHigh</code>, + * <code>position3DLow</code>, <code>position2DHigh</code>, and <code>position2DLow</code>, + * and should be used when writing a vertex shader for an {@link Appearance}. + * </p> + * + * @name czm_computePosition + * @glslFunction + * + * @returns {vec4} The position relative to eye. + * + * @example + * vec4 p = czm_computePosition(); + * v_positionEC = (czm_modelViewRelativeToEye * p).xyz; + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * + * @see czm_translateRelativeToEye + */ +vec4 czm_computePosition(); +`;var zw=`/** + * @private + */ +vec2 cordic(float angle) +{ +// Scale the vector by the appropriate factor for the 24 iterations to follow. + vec2 vector = vec2(6.0725293500888267e-1, 0.0); +// Iteration 1 + float sense = (angle < 0.0) ? -1.0 : 1.0; + // float factor = sense * 1.0; // 2^-0 + mat2 rotation = mat2(1.0, sense, -sense, 1.0); + vector = rotation * vector; + angle -= sense * 7.8539816339744828e-1; // atan(2^-0) +// Iteration 2 + sense = (angle < 0.0) ? -1.0 : 1.0; + float factor = sense * 5.0e-1; // 2^-1 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.6364760900080609e-1; // atan(2^-1) +// Iteration 3 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.5e-1; // 2^-2 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4497866312686414e-1; // atan(2^-2) +// Iteration 4 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.25e-1; // 2^-3 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2435499454676144e-1; // atan(2^-3) +// Iteration 5 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.25e-2; // 2^-4 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.2418809995957350e-2; // atan(2^-4) +// Iteration 6 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.125e-2; // 2^-5 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.1239833430268277e-2; // atan(2^-5) +// Iteration 7 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.5625e-2; // 2^-6 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5623728620476831e-2; // atan(2^-6) +// Iteration 8 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.8125e-3; // 2^-7 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.8123410601011111e-3; // atan(2^-7) +// Iteration 9 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.90625e-3; // 2^-8 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.9062301319669718e-3; // atan(2^-8) +// Iteration 10 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.953125e-3; // 2^-9 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9531225164788188e-3; // atan(2^-9) +// Iteration 11 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.765625e-4; // 2^-10 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.7656218955931946e-4; // atan(2^-10) +// Iteration 12 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.8828125e-4; // 2^-11 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.8828121119489829e-4; // atan(2^-11) +// Iteration 13 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.44140625e-4; // 2^-12 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4414062014936177e-4; // atan(2^-12) +// Iteration 14 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.220703125e-4; // 2^-13 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2207031189367021e-4; // atan(2^-13) +// Iteration 15 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.103515625e-5; // 2^-14 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.1035156174208773e-5; // atan(2^-14) +// Iteration 16 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.0517578125e-5; // 2^-15 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.0517578115526096e-5; // atan(2^-15) +// Iteration 17 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.52587890625e-5; // 2^-16 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5258789061315762e-5; // atan(2^-16) +// Iteration 18 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.62939453125e-6; // 2^-17 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.6293945311019700e-6; // atan(2^-17) +// Iteration 19 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.814697265625e-6; // 2^-18 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.8146972656064961e-6; // atan(2^-18) +// Iteration 20 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.9073486328125e-6; // 2^-19 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9073486328101870e-6; // atan(2^-19) +// Iteration 21 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.5367431640625e-7; // 2^-20 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.5367431640596084e-7; // atan(2^-20) +// Iteration 22 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.76837158203125e-7; // 2^-21 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.7683715820308884e-7; // atan(2^-21) +// Iteration 23 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.384185791015625e-7; // 2^-22 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.3841857910155797e-7; // atan(2^-22) +// Iteration 24 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.1920928955078125e-7; // 2^-23 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; +// angle -= sense * 1.1920928955078068e-7; // atan(2^-23) + + return vector; +} + +/** + * Computes the cosine and sine of the provided angle using the CORDIC algorithm. + * + * @name czm_cosineAndSine + * @glslFunction + * + * @param {float} angle The angle in radians. + * + * @returns {vec2} The resulting cosine of the angle (as the x coordinate) and sine of the angle (as the y coordinate). + * + * @example + * vec2 v = czm_cosineAndSine(czm_piOverSix); + * float cosine = v.x; + * float sine = v.y; + */ +vec2 czm_cosineAndSine(float angle) +{ + if (angle < -czm_piOverTwo || angle > czm_piOverTwo) + { + if (angle < 0.0) + { + return -cordic(angle + czm_pi); + } + else + { + return -cordic(angle - czm_pi); + } + } + else + { + return cordic(angle); + } +} +`;var Hw=`/** + * Decompresses texture coordinates that were packed into a single float. + * + * @name czm_decompressTextureCoordinates + * @glslFunction + * + * @param {float} encoded The compressed texture coordinates. + * @returns {vec2} The decompressed texture coordinates. + */ + vec2 czm_decompressTextureCoordinates(float encoded) + { + float temp = encoded / 4096.0; + float xZeroTo4095 = floor(temp); + float stx = xZeroTo4095 / 4095.0; + float sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0; + return vec2(stx, sty); + } +`;var Gw=`/** + * Get default parameters for physically based rendering. These defaults + * describe a rough dielectric (non-metal) surface (e.g. rough plastic). + * + * @return {czm_pbrParameters} Default parameters for {@link czm_pbrLighting} + */ +czm_pbrParameters czm_defaultPbrMaterial() +{ + czm_pbrParameters results; + results.diffuseColor = vec3(1.0); + results.roughness = 1.0; + + const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04); + results.f0 = REFLECTANCE_DIELECTRIC; + return results; +} +`;var Ww=`// emulated noperspective +#if (__VERSION__ == 300 || defined(GL_EXT_frag_depth)) && !defined(LOG_DEPTH) +out float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP, which is not available in WebGL 1 or 2. + * GL_DEPTH_CLAMP clamps geometry that is outside the near and far planes, + * capping the shadow volume. More information here: + * https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_clamp.txt. + * + * When GL_EXT_frag_depth is available we emulate GL_DEPTH_CLAMP by ensuring + * no geometry gets clipped by setting the clip space z value to 0.0 and then + * sending the unaltered screen space z value (using emulated noperspective + * interpolation) to the frag shader where it is clamped to [0,1] and then + * written with gl_FragDepth (see czm_writeDepthClamp). This technique is based on: + * https://stackoverflow.com/questions/5960757/how-to-emulate-gl-depth-clamp-nv. + * + * When GL_EXT_frag_depth is not available, which is the case on some mobile + * devices, we must attempt to fix this only in the vertex shader. + * The approach is to clamp the z value to the far plane, which closes the + * shadow volume but also distorts the geometry, so there can still be artifacts + * on frustum seams. + * + * @name czm_depthClamp + * @glslFunction + * + * @param {vec4} coords The vertex in clip coordinates. + * @returns {vec4} The modified vertex. + * + * @example + * gl_Position = czm_depthClamp(czm_modelViewProjection * vec4(position, 1.0)); + * + * @see czm_writeDepthClamp + */ +vec4 czm_depthClamp(vec4 coords) +{ +#ifndef LOG_DEPTH +#if __VERSION__ == 300 || defined(GL_EXT_frag_depth) + v_WindowZ = (0.5 * (coords.z / coords.w) + 0.5) * coords.w; + coords.z = 0.0; +#else + coords.z = min(coords.z, coords.w); +#endif +#endif + return coords; +} +`;var jw=`/** + * Computes a 3x3 rotation matrix that transforms vectors from an ellipsoid's east-north-up coordinate system + * to eye coordinates. In east-north-up coordinates, x points east, y points north, and z points along the + * surface normal. East-north-up can be used as an ellipsoid's tangent space for operations such as bump mapping. + * <br /><br /> + * The ellipsoid is assumed to be centered at the model coordinate's origin. + * + * @name czm_eastNorthUpToEyeCoordinates + * @glslFunction + * + * @param {vec3} positionMC The position on the ellipsoid in model coordinates. + * @param {vec3} normalEC The normalized ellipsoid surface normal, at <code>positionMC</code>, in eye coordinates. + * + * @returns {mat3} A 3x3 rotation matrix that transforms vectors from the east-north-up coordinate system to eye coordinates. + * + * @example + * // Transform a vector defined in the east-north-up coordinate + * // system, (0, 0, 1) which is the surface normal, to eye + * // coordinates. + * mat3 m = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + * vec3 normalEC = m * vec3(0.0, 0.0, 1.0); + */ +mat3 czm_eastNorthUpToEyeCoordinates(vec3 positionMC, vec3 normalEC) +{ + vec3 tangentMC = normalize(vec3(-positionMC.y, positionMC.x, 0.0)); // normalized surface tangent in model coordinates + vec3 tangentEC = normalize(czm_normal3D * tangentMC); // normalized surface tangent in eye coordiantes + vec3 bitangentEC = normalize(cross(normalEC, tangentEC)); // normalized surface bitangent in eye coordinates + + return mat3( + tangentEC.x, tangentEC.y, tangentEC.z, + bitangentEC.x, bitangentEC.y, bitangentEC.z, + normalEC.x, normalEC.y, normalEC.z); +} +`;var qw=`/** + * DOC_TBA + * + * @name czm_ellipsoidContainsPoint + * @glslFunction + * + */ +bool czm_ellipsoidContainsPoint(vec3 ellipsoid_inverseRadii, vec3 point) +{ + vec3 scaled = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(point, 1.0)).xyz; + return (dot(scaled, scaled) <= 1.0); +} +`;var Yw=`/** + * DOC_TBA + * + * @name czm_ellipsoidWgs84TextureCoordinates + * @glslFunction + */ +vec2 czm_ellipsoidWgs84TextureCoordinates(vec3 normal) +{ + return vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5); +} +`;var Xw=`/** + * Compares <code>left</code> and <code>right</code> componentwise. Returns <code>true</code> + * if they are within <code>epsilon</code> and <code>false</code> otherwise. The inputs + * <code>left</code> and <code>right</code> can be <code>float</code>s, <code>vec2</code>s, + * <code>vec3</code>s, or <code>vec4</code>s. + * + * @name czm_equalsEpsilon + * @glslFunction + * + * @param {} left The first vector. + * @param {} right The second vector. + * @param {float} epsilon The epsilon to use for equality testing. + * @returns {bool} <code>true</code> if the components are within <code>epsilon</code> and <code>false</code> otherwise. + * + * @example + * // GLSL declarations + * bool czm_equalsEpsilon(float left, float right, float epsilon); + * bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon); + * bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon); + * bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon); + */ +bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec4(epsilon))); +} + +bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec3(epsilon))); +} + +bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec2(epsilon))); +} + +bool czm_equalsEpsilon(float left, float right, float epsilon) { + return (abs(left - right) <= epsilon); +} +`;var Kw=`/** + * DOC_TBA + * + * @name czm_eyeOffset + * @glslFunction + * + * @param {vec4} positionEC DOC_TBA. + * @param {vec3} eyeOffset DOC_TBA. + * + * @returns {vec4} DOC_TBA. + */ +vec4 czm_eyeOffset(vec4 positionEC, vec3 eyeOffset) +{ + // This equation is approximate in x and y. + vec4 p = positionEC; + vec4 zEyeOffset = normalize(p) * eyeOffset.z; + p.xy += eyeOffset.xy + zEyeOffset.xy; + p.z += zEyeOffset.z; + return p; +} +`;var Jw=`/** + * Transforms a position from eye to window coordinates. The transformation + * from eye to clip coordinates is done using {@link czm_projection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of <code>near = 0</code> and <code>far = 1</code>. + * <br /><br /> + * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + * + * @name czm_eyeToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in eye coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_projection + * @see czm_viewportTransformation + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + */ +vec4 czm_eyeToWindowCoordinates(vec4 positionEC) +{ + vec4 q = czm_projection * positionEC; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var Zw=`/** + * Approxiamtes atan over the range [0, 1]. Safe to flip output for negative input. + * + * Based on Michal Drobot's approximation from ShaderFastLibs, which in turn is based on + * "Efficient approximations for the arctangent function," Rajan, S. Sichun Wang Inkol, R. Joyal, A., May 2006. + * Adapted from ShaderFastLibs under MIT License. + * + * Chosen for the following characteristics over range [0, 1]: + * - basically no error at 0 and 1, important for getting around range limit (naive atan2 via atan requires infinite range atan) + * - no visible artifacts from first-derivative discontinuities, unlike latitude via range-reduced sqrt asin approximations (at equator) + * + * The original code is x * (-0.1784 * abs(x) - 0.0663 * x * x + 1.0301); + * Removed the abs() in here because it isn't needed, the input range is guaranteed as [0, 1] by how we're approximating atan2. + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between 0 and 1 inclusive. + * + * @returns {float} Approximation of atan(x) + */ +float czm_fastApproximateAtan(float x) { + return x * (-0.1784 * x - 0.0663 * x * x + 1.0301); +} + +/** + * Approximation of atan2. + * + * Range reduction math based on nvidia's cg reference implementation for atan2: http://developer.download.nvidia.com/cg/atan2.html + * However, we replaced their atan curve with Michael Drobot's (see above). + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between -1 and 1 inclusive. + * @param {float} y Value between -1 and 1 inclusive. + * + * @returns {float} Approximation of atan2(x, y) + */ +float czm_fastApproximateAtan(float x, float y) { + // atan approximations are usually only reliable over [-1, 1], or, in our case, [0, 1] due to modifications. + // So range-reduce using abs and by flipping whether x or y is on top. + float t = abs(x); // t used as swap and atan result. + float opposite = abs(y); + float adjacent = max(t, opposite); + opposite = min(t, opposite); + + t = czm_fastApproximateAtan(opposite / adjacent); + + // Undo range reduction + t = czm_branchFreeTernary(abs(y) > abs(x), czm_piOverTwo - t, t); + t = czm_branchFreeTernary(x < 0.0, czm_pi - t, t); + t = czm_branchFreeTernary(y < 0.0, -t, t); + return t; +} +`;var Qw=`/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-(scalar * scalar)); + return mix(color, fogColor, fog); +} + +/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * @param {float} fogModifierConstant A constant to modify the appearance of fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor, float fogModifierConstant) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-((fogModifierConstant * scalar + fogModifierConstant) * (scalar * (1.0 + fogModifierConstant)))); + return mix(color, fogColor, fog); +} +`;var $w=`/** + * Converts a color from RGB space to linear space. + * + * @name czm_gammaCorrect + * @glslFunction + * + * @param {vec3} color The color in RGB space. + * @returns {vec3} The color in linear space. + */ +vec3 czm_gammaCorrect(vec3 color) { +#ifdef HDR + color = pow(color, vec3(czm_gamma)); +#endif + return color; +} + +vec4 czm_gammaCorrect(vec4 color) { +#ifdef HDR + color.rgb = pow(color.rgb, vec3(czm_gamma)); +#endif + return color; +} +`;var eD=`/** + * DOC_TBA + * + * @name czm_geodeticSurfaceNormal + * @glslFunction + * + * @param {vec3} positionOnEllipsoid DOC_TBA + * @param {vec3} ellipsoidCenter DOC_TBA + * @param {vec3} oneOverEllipsoidRadiiSquared DOC_TBA + * + * @returns {vec3} DOC_TBA. + */ +vec3 czm_geodeticSurfaceNormal(vec3 positionOnEllipsoid, vec3 ellipsoidCenter, vec3 oneOverEllipsoidRadiiSquared) +{ + return normalize((positionOnEllipsoid - ellipsoidCenter) * oneOverEllipsoidRadiiSquared); +} +`;var tD=`/** + * An czm_material with default values. Every material's czm_getMaterial + * should use this default material as a base for the material it returns. + * The default normal value is given by materialInput.normalEC. + * + * @name czm_getDefaultMaterial + * @glslFunction + * + * @param {czm_materialInput} input The input used to construct the default material. + * + * @returns {czm_material} The default material. + * + * @see czm_materialInput + * @see czm_material + * @see czm_getMaterial + */ +czm_material czm_getDefaultMaterial(czm_materialInput materialInput) +{ + czm_material material; + material.diffuse = vec3(0.0); + material.specular = 0.0; + material.shininess = 1.0; + material.normal = materialInput.normalEC; + material.emission = vec3(0.0); + material.alpha = 1.0; + return material; +} +`;var nD=`/** + * Calculates the intensity of diffusely reflected light. + * + * @name czm_getLambertDiffuse + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * + * @returns {float} The intensity of the diffuse reflection. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getLambertDiffuse(vec3 lightDirectionEC, vec3 normalEC) +{ + return max(dot(lightDirectionEC, normalEC), 0.0); +} +`;var iD=`/** + * Calculates the specular intensity of reflected light. + * + * @name czm_getSpecular + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} toEyeEC Unit vector pointing to the eye position in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * @param {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * + * @returns {float} The intensity of the specular highlight. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getSpecular(vec3 lightDirectionEC, vec3 toEyeEC, vec3 normalEC, float shininess) +{ + vec3 toReflectedLight = reflect(-lightDirectionEC, normalEC); + float specular = max(dot(toReflectedLight, toEyeEC), 0.0); + + // pow has undefined behavior if both parameters <= 0. + // Prevent this by making sure shininess is at least czm_epsilon2. + return pow(specular, max(shininess, czm_epsilon2)); +} +`;var rD=`/** + * @private + */ +vec4 czm_getWaterNoise(sampler2D normalMap, vec2 uv, float time, float angleInRadians) +{ + float cosAngle = cos(angleInRadians); + float sinAngle = sin(angleInRadians); + + // time dependent sampling directions + vec2 s0 = vec2(1.0/17.0, 0.0); + vec2 s1 = vec2(-1.0/29.0, 0.0); + vec2 s2 = vec2(1.0/101.0, 1.0/59.0); + vec2 s3 = vec2(-1.0/109.0, -1.0/57.0); + + // rotate sampling direction by specified angle + s0 = vec2((cosAngle * s0.x) - (sinAngle * s0.y), (sinAngle * s0.x) + (cosAngle * s0.y)); + s1 = vec2((cosAngle * s1.x) - (sinAngle * s1.y), (sinAngle * s1.x) + (cosAngle * s1.y)); + s2 = vec2((cosAngle * s2.x) - (sinAngle * s2.y), (sinAngle * s2.x) + (cosAngle * s2.y)); + s3 = vec2((cosAngle * s3.x) - (sinAngle * s3.y), (sinAngle * s3.x) + (cosAngle * s3.y)); + + vec2 uv0 = (uv/103.0) + (time * s0); + vec2 uv1 = uv/107.0 + (time * s1) + vec2(0.23); + vec2 uv2 = uv/vec2(897.0, 983.0) + (time * s2) + vec2(0.51); + vec2 uv3 = uv/vec2(991.0, 877.0) + (time * s3) + vec2(0.71); + + uv0 = fract(uv0); + uv1 = fract(uv1); + uv2 = fract(uv2); + uv3 = fract(uv3); + vec4 noise = (texture(normalMap, uv0)) + + (texture(normalMap, uv1)) + + (texture(normalMap, uv2)) + + (texture(normalMap, uv3)); + + // average and scale to between -1 and 1 + return ((noise / 4.0) - 0.5) * 2.0; +} +`;var oD=`/** + * Adjusts the hue of a color. + * + * @name czm_hue + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the hue of the color in radians. + * + * @returns {float} The color with the hue adjusted. + * + * @example + * vec3 adjustHue = czm_hue(color, czm_pi); // The same as czm_hue(color, -czm_pi) + */ +vec3 czm_hue(vec3 rgb, float adjustment) +{ + const mat3 toYIQ = mat3(0.299, 0.587, 0.114, + 0.595716, -0.274453, -0.321263, + 0.211456, -0.522591, 0.311135); + const mat3 toRGB = mat3(1.0, 0.9563, 0.6210, + 1.0, -0.2721, -0.6474, + 1.0, -1.107, 1.7046); + + vec3 yiq = toYIQ * rgb; + float hue = atan(yiq.z, yiq.y) + adjustment; + float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y); + + vec3 color = vec3(yiq.x, chroma * cos(hue), chroma * sin(hue)); + return toRGB * color; +} +`;var sD=`/** + * Converts a color in linear space to RGB space. + * + * @name czm_inverseGamma + * @glslFunction + * + * @param {vec3} color The color in linear space. + * @returns {vec3} The color in RGB space. + */ +vec3 czm_inverseGamma(vec3 color) { + return pow(color, vec3(1.0 / czm_gamma)); +} +`;var aD=`/** + * Determines if a time interval is empty. + * + * @name czm_isEmpty + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isEmpty(czm_raySegment interval) +{ + return (interval.stop < 0.0); +} +`;var cD=`/** + * Determines if a time interval is empty. + * + * @name czm_isFull + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isFull(czm_raySegment interval) +{ + return (interval.start == 0.0 && interval.stop == czm_infinity); +} +`;var lD=`/** + * Computes the fraction of a Web Wercator rectangle at which a given geodetic latitude is located. + * + * @name czm_latitudeToWebMercatorFraction + * @glslFunction + * + * @param {float} latitude The geodetic latitude, in radians. + * @param {float} southMercatorY The Web Mercator coordinate of the southern boundary of the rectangle. + * @param {float} oneOverMercatorHeight The total height of the rectangle in Web Mercator coordinates. + * + * @returns {float} The fraction of the rectangle at which the latitude occurs. If the latitude is the southern + * boundary of the rectangle, the return value will be zero. If it is the northern boundary, the return + * value will be 1.0. Latitudes in between are mapped according to the Web Mercator projection. + */ +float czm_latitudeToWebMercatorFraction(float latitude, float southMercatorY, float oneOverMercatorHeight) +{ + float sinLatitude = sin(latitude); + float mercatorY = 0.5 * log((1.0 + sinLatitude) / (1.0 - sinLatitude)); + + return (mercatorY - southMercatorY) * oneOverMercatorHeight; +} +`;var uD=`/** + * Computes distance from an point in 2D to a line in 2D. + * + * @name czm_lineDistance + * @glslFunction + * + * param {vec2} point1 A point along the line. + * param {vec2} point2 A point along the line. + * param {vec2} point A point that may or may not be on the line. + * returns {float} The distance from the point to the line. + */ +float czm_lineDistance(vec2 point1, vec2 point2, vec2 point) { + return abs((point2.y - point1.y) * point.x - (point2.x - point1.x) * point.y + point2.x * point1.y - point2.y * point1.x) / distance(point2, point1); +} +`;var fD=`/** + * Converts a linear RGB color to an sRGB color. + * + * @param {vec3|vec4} linearIn The color in linear color space. + * @returns {vec3|vec4} The color in sRGB color space. The vector type matches the input. + */ +vec3 czm_linearToSrgb(vec3 linearIn) +{ + return pow(linearIn, vec3(1.0/2.2)); +} + +vec4 czm_linearToSrgb(vec4 linearIn) +{ + vec3 srgbOut = pow(linearIn.rgb, vec3(1.0/2.2)); + return vec4(srgbOut, linearIn.a); +} +`;var dD=`/** + * Computes the luminance of a color. + * + * @name czm_luminance + * @glslFunction + * + * @param {vec3} rgb The color. + * + * @returns {float} The luminance. + * + * @example + * float light = czm_luminance(vec3(0.0)); // 0.0 + * float dark = czm_luminance(vec3(1.0)); // ~1.0 + */ +float czm_luminance(vec3 rgb) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + return dot(rgb, W); +} +`;var hD=`/** + * Computes the size of a pixel in meters at a distance from the eye. + * <p> + * Use this version when passing in a custom pixel ratio. For example, passing in 1.0 will return meters per native device pixel. + * </p> + * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * @param {float} pixelRatio The scaling factor from pixel space to coordinate space + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC, float pixelRatio) +{ + float width = czm_viewport.z; + float height = czm_viewport.w; + float pixelWidth; + float pixelHeight; + + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + if (czm_sceneMode == czm_sceneMode2D || czm_orthographicIn3D == 1.0) + { + float frustumWidth = right - left; + float frustumHeight = top - bottom; + pixelWidth = frustumWidth / width; + pixelHeight = frustumHeight / height; + } + else + { + float distanceToPixel = -positionEC.z; + float inverseNear = 1.0 / czm_currentFrustum.x; + float tanTheta = top * inverseNear; + pixelHeight = 2.0 * distanceToPixel * tanTheta / height; + tanTheta = right * inverseNear; + pixelWidth = 2.0 * distanceToPixel * tanTheta / width; + } + + return max(pixelWidth, pixelHeight) * pixelRatio; +} + +/** + * Computes the size of a pixel in meters at a distance from the eye. + * <p> + * Use this version when scaling by pixel ratio. + * </p> + * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC) +{ + return czm_metersPerPixel(positionEC, czm_pixelRatio); +} +`;var mD=`/** + * Transforms a position from model to window coordinates. The transformation + * from model to clip coordinates is done using {@link czm_modelViewProjection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of <code>near = 0</code> and <code>far = 1</code>. + * <br /><br /> + * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + * <br /><br /> + * This function should not be confused with {@link czm_viewportOrthographic}, + * which is an orthographic projection matrix that transforms from window + * coordinates to clip coordinates. + * + * @name czm_modelToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in model coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_eyeToWindowCoordinates + * @see czm_modelViewProjection + * @see czm_viewportTransformation + * @see czm_viewportOrthographic + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_modelToWindowCoordinates(positionMC); + */ +vec4 czm_modelToWindowCoordinates(vec4 position) +{ + vec4 q = czm_modelViewProjection * position; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var pD=`/** + * DOC_TBA + * + * @name czm_multiplyWithColorBalance + * @glslFunction + */ +vec3 czm_multiplyWithColorBalance(vec3 left, vec3 right) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + + vec3 target = left * right; + float leftLuminance = dot(left, W); + float rightLuminance = dot(right, W); + float targetLuminance = dot(target, W); + + return ((leftLuminance + rightLuminance) / (2.0 * targetLuminance)) * target; +} +`;var _D=`/** + * Computes a value that scales with distance. The scaling is clamped at the near and + * far distances, and does not extrapolate. This function works with the + * {@link NearFarScalar} JavaScript class. + * + * @name czm_nearFarScalar + * @glslFunction + * + * @param {vec4} nearFarScalar A vector with 4 components: Near distance (x), Near value (y), Far distance (z), Far value (w). + * @param {float} cameraDistSq The square of the current distance from the camera. + * + * @returns {float} The value at this distance. + */ +float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq) +{ + float valueAtMin = nearFarScalar.y; + float valueAtMax = nearFarScalar.w; + float nearDistanceSq = nearFarScalar.x * nearFarScalar.x; + float farDistanceSq = nearFarScalar.z * nearFarScalar.z; + + float t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq); + + t = pow(clamp(t, 0.0, 1.0), 0.2); + + return mix(valueAtMin, valueAtMax, t); +} +`;var gD=` /** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @param {float} range The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits. + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded, float range) + { + if (encoded.x == 0.0 && encoded.y == 0.0) { + return vec3(0.0, 0.0, 0.0); + } + + encoded = encoded / range * 2.0 - 1.0; + vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y)); + if (v.z < 0.0) + { + v.xy = (1.0 - abs(v.yx)) * czm_signNotZero(v.xy); + } + + return normalize(v); + } + +/** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded) + { + return czm_octDecode(encoded, 255.0); + } + + /** + * Decodes a unit-length vector in 'oct' encoding packed into a floating-point number to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {float} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(float encoded) + { + float temp = encoded / 256.0; + float x = floor(temp); + float y = (temp - x) * 256.0; + return czm_octDecode(vec2(x, y)); + } + +/** + * Decodes three unit-length vectors in 'oct' encoding packed into two floating-point numbers to normalized 3-component Cartesian vectors. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The packed oct-encoded, unit-length vectors. + * @param {vec3} vector1 One decoded and normalized vector. + * @param {vec3} vector2 One decoded and normalized vector. + * @param {vec3} vector3 One decoded and normalized vector. + */ + void czm_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3) + { + float temp = encoded.x / 65536.0; + float x = floor(temp); + float encodedFloat1 = (temp - x) * 65536.0; + + temp = encoded.y / 65536.0; + float y = floor(temp); + float encodedFloat2 = (temp - y) * 65536.0; + + vector1 = czm_octDecode(encodedFloat1); + vector2 = czm_octDecode(encodedFloat2); + vector3 = czm_octDecode(vec2(x, y)); + } + +`;var yD=`/** + * Packs a depth value into a vec3 that can be represented by unsigned bytes. + * + * @name czm_packDepth + * @glslFunction + * + * @param {float} depth The floating-point depth. + * @returns {vec3} The packed depth. + */ +vec4 czm_packDepth(float depth) +{ + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth; + enc = fract(enc); + enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0); + return enc; +} +`;var AD=`vec3 lambertianDiffuse(vec3 diffuseColor) +{ + return diffuseColor / czm_pi; +} + +vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH) +{ + return f0 + (f90 - f0) * pow(clamp(1.0 - VdotH, 0.0, 1.0), 5.0); +} + +float smithVisibilityG1(float NdotV, float roughness) +{ + // this is the k value for direct lighting. + // for image based lighting it will be roughness^2 / 2 + float k = (roughness + 1.0) * (roughness + 1.0) / 8.0; + return NdotV / (NdotV * (1.0 - k) + k); +} + +float smithVisibilityGGX(float roughness, float NdotL, float NdotV) +{ + return ( + smithVisibilityG1(NdotL, roughness) * + smithVisibilityG1(NdotV, roughness) + ); +} + +float GGX(float roughness, float NdotH) +{ + float roughnessSquared = roughness * roughness; + float f = (NdotH * roughnessSquared - NdotH) * NdotH + 1.0; + return roughnessSquared / (czm_pi * f * f); +} + +/** + * Compute the diffuse and specular contributions using physically based + * rendering. This function only handles direct lighting. + * <p> + * This function only handles the lighting calculations. Metallic/roughness + * and specular/glossy must be handled separately. See {@czm_pbrMetallicRoughnessMaterial}, {@czm_pbrSpecularGlossinessMaterial} and {@czm_defaultPbrMaterial} + * </p> + * + * @name czm_pbrlighting + * @glslFunction + * + * @param {vec3} positionEC The position of the fragment in eye coordinates + * @param {vec3} normalEC The surface normal in eye coordinates + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} lightColorHdr radiance of the light source. This is a HDR value. + * @param {czm_pbrParameters} The computed PBR parameters. + * @return {vec3} The computed HDR color + * + * @example + * czm_pbrParameters pbrParameters = czm_pbrMetallicRoughnessMaterial( + * baseColor, + * metallic, + * roughness + * ); + * vec3 color = czm_pbrlighting( + * positionEC, + * normalEC, + * lightDirectionEC, + * lightColorHdr, + * pbrParameters); + */ +vec3 czm_pbrLighting( + vec3 positionEC, + vec3 normalEC, + vec3 lightDirectionEC, + vec3 lightColorHdr, + czm_pbrParameters pbrParameters +) +{ + vec3 v = -normalize(positionEC); + vec3 l = normalize(lightDirectionEC); + vec3 h = normalize(v + l); + vec3 n = normalEC; + float NdotL = clamp(dot(n, l), 0.001, 1.0); + float NdotV = abs(dot(n, v)) + 0.001; + float NdotH = clamp(dot(n, h), 0.0, 1.0); + float LdotH = clamp(dot(l, h), 0.0, 1.0); + float VdotH = clamp(dot(v, h), 0.0, 1.0); + + vec3 f0 = pbrParameters.f0; + float reflectance = max(max(f0.r, f0.g), f0.b); + vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0)); + vec3 F = fresnelSchlick2(f0, f90, VdotH); + + float alpha = pbrParameters.roughness; + float G = smithVisibilityGGX(alpha, NdotL, NdotV); + float D = GGX(alpha, NdotH); + vec3 specularContribution = F * G * D / (4.0 * NdotL * NdotV); + + vec3 diffuseColor = pbrParameters.diffuseColor; + // F here represents the specular contribution + vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor); + + // Lo = (diffuse + specular) * Li * NdotL + return (diffuseContribution + specularContribution) * NdotL * lightColorHdr; +} +`;var xD=`/** + * Compute parameters for physically based rendering using the + * metallic/roughness workflow. All inputs are linear; sRGB texture values must + * be decoded beforehand + * + * @name czm_pbrMetallicRoughnessMaterial + * @glslFunction + * + * @param {vec3} baseColor For dielectrics, this is the base color. For metals, this is the f0 value (reflectance at normal incidence) + * @param {float} metallic 0.0 indicates dielectric. 1.0 indicates metal. Values in between are allowed (e.g. to model rust or dirt); + * @param {float} roughness A value between 0.0 and 1.0 + * @return {czm_pbrParameters} parameters to pass into {@link czm_pbrLighting} + */ +czm_pbrParameters czm_pbrMetallicRoughnessMaterial( + vec3 baseColor, + float metallic, + float roughness +) +{ + czm_pbrParameters results; + + // roughness is authored as perceptual roughness + // square it to get material roughness + roughness = clamp(roughness, 0.0, 1.0); + results.roughness = roughness * roughness; + + // dielectrics use f0 = 0.04, metals use albedo as f0 + metallic = clamp(metallic, 0.0, 1.0); + const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04); + vec3 f0 = mix(REFLECTANCE_DIELECTRIC, baseColor, metallic); + results.f0 = f0; + + // diffuse only applies to dielectrics. + results.diffuseColor = baseColor * (1.0 - f0) * (1.0 - metallic); + + return results; +} +`;var CD=`/** + * Compute parameters for physically based rendering using the + * specular/glossy workflow. All inputs are linear; sRGB texture values must + * be decoded beforehand + * + * @name czm_pbrSpecularGlossinessMaterial + * @glslFunction + * + * @param {vec3} diffuse The diffuse color for dielectrics (non-metals) + * @param {vec3} specular The reflectance at normal incidence (f0) + * @param {float} glossiness A number from 0.0 to 1.0 indicating how smooth the surface is. + * @return {czm_pbrParameters} parameters to pass into {@link czm_pbrLighting} + */ +czm_pbrParameters czm_pbrSpecularGlossinessMaterial( + vec3 diffuse, + vec3 specular, + float glossiness +) +{ + czm_pbrParameters results; + + // glossiness is the opposite of roughness, but easier for artists to use. + float roughness = 1.0 - glossiness; + results.roughness = roughness * roughness; + + results.diffuseColor = diffuse * (1.0 - max(max(specular.r, specular.g), specular.b)); + results.f0 = specular; + + return results; +} +`;var TD=`float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material) +{ + return czm_getLambertDiffuse(lightDirectionEC, material.normal); +} + +float czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material) +{ + return czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess); +} + +/** + * Computes a color using the Phong lighting model. + * + * @name czm_phong + * @glslFunction + * + * @param {vec3} toEye A normalized vector from the fragment to the eye in eye coordinates. + * @param {czm_material} material The fragment's material. + * + * @returns {vec4} The computed color. + * + * @example + * vec3 positionToEyeEC = // ... + * czm_material material = // ... + * vec3 lightDirectionEC = // ... + * out_FragColor = czm_phong(normalize(positionToEyeEC), material, lightDirectionEC); + * + * @see czm_getMaterial + */ +vec4 czm_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down) + float diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material); + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material); + } + + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} + +vec4 czm_private_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + float diffuse = czm_private_getLambertDiffuseOfMaterial(lightDirectionEC, material); + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + vec3 ambient = vec3(0.0); + vec3 color = ambient + material.emission; + color += material.diffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var ED=`/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec4} plane A Plane in Hessian Normal Form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec4 plane, vec3 point) { + return (dot(plane.xyz, point) + plane.w); +} + +/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec3} planeNormal Normal for a plane in Hessian Normal Form. See Plane.js + * param {float} planeDistance Distance for a plane in Hessian Normal form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec3 planeNormal, float planeDistance, vec3 point) { + return (dot(planeNormal, point) + planeDistance); +} +`;var bD=`/** + * Computes the point along a ray at the given time. <code>time</code> can be positive, negative, or zero. + * + * @name czm_pointAlongRay + * @glslFunction + * + * @param {czm_ray} ray The ray to compute the point along. + * @param {float} time The time along the ray. + * + * @returns {vec3} The point along the ray at the given time. + * + * @example + * czm_ray ray = czm_ray(vec3(0.0), vec3(1.0, 0.0, 0.0)); // origin, direction + * vec3 v = czm_pointAlongRay(ray, 2.0); // (2.0, 0.0, 0.0) + */ +vec3 czm_pointAlongRay(czm_ray ray, float time) +{ + return ray.origin + (time * ray.direction); +} +`;var SD=`/** + * DOC_TBA + * + * @name czm_rayEllipsoidIntersectionInterval + * @glslFunction + */ +czm_raySegment czm_rayEllipsoidIntersectionInterval(czm_ray ray, vec3 ellipsoid_center, vec3 ellipsoid_inverseRadii) +{ + // ray and ellipsoid center in eye coordinates. radii in model coordinates. + vec3 q = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.origin, 1.0)).xyz; + vec3 w = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.direction, 0.0)).xyz; + + q = q - ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ellipsoid_center, 1.0)).xyz; + + float q2 = dot(q, q); + float qw = dot(q, w); + + if (q2 > 1.0) // Outside ellipsoid. + { + if (qw >= 0.0) // Looking outward or tangent (0 intersections). + { + return czm_emptyRaySegment; + } + else // qw < 0.0. + { + float qw2 = qw * qw; + float difference = q2 - 1.0; // Positively valued. + float w2 = dot(w, w); + float product = w2 * difference; + + if (qw2 < product) // Imaginary roots (0 intersections). + { + return czm_emptyRaySegment; + } + else if (qw2 > product) // Distinct roots (2 intersections). + { + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Avoid cancellation. + float root0 = temp / w2; + float root1 = difference / temp; + if (root0 < root1) + { + czm_raySegment i = czm_raySegment(root0, root1); + return i; + } + else + { + czm_raySegment i = czm_raySegment(root1, root0); + return i; + } + } + else // qw2 == product. Repeated roots (2 intersections). + { + float root = sqrt(difference / w2); + czm_raySegment i = czm_raySegment(root, root); + return i; + } + } + } + else if (q2 < 1.0) // Inside ellipsoid (2 intersections). + { + float difference = q2 - 1.0; // Negatively valued. + float w2 = dot(w, w); + float product = w2 * difference; // Negatively valued. + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Positively valued. + czm_raySegment i = czm_raySegment(0.0, temp / w2); + return i; + } + else // q2 == 1.0. On ellipsoid. + { + if (qw < 0.0) // Looking inward. + { + float w2 = dot(w, w); + czm_raySegment i = czm_raySegment(0.0, -qw / w2); + return i; + } + else // qw >= 0.0. Looking outward or tangent. + { + return czm_emptyRaySegment; + } + } +} +`;var vD=`/** + * Compute the intersection interval of a ray with a sphere. + * + * @name czm_raySphereIntersectionInterval + * @glslFunction + * + * @param {czm_ray} ray The ray. + * @param {vec3} center The center of the sphere. + * @param {float} radius The radius of the sphere. + * @return {czm_raySegment} The intersection interval of the ray with the sphere. + */ +czm_raySegment czm_raySphereIntersectionInterval(czm_ray ray, vec3 center, float radius) +{ + vec3 o = ray.origin; + vec3 d = ray.direction; + + vec3 oc = o - center; + + float a = dot(d, d); + float b = 2.0 * dot(d, oc); + float c = dot(oc, oc) - (radius * radius); + + float det = (b * b) - (4.0 * a * c); + + if (det < 0.0) { + return czm_emptyRaySegment; + } + + float sqrtDet = sqrt(det); + + float t0 = (-b - sqrtDet) / (2.0 * a); + float t1 = (-b + sqrtDet) / (2.0 * a); + + czm_raySegment result = czm_raySegment(t0, t1); + return result; +} +`;var wD=`float czm_readDepth(sampler2D depthTexture, vec2 texCoords) +{ + return czm_reverseLogDepth(texture(depthTexture, texCoords).r); +} +`;var DD=`/** + * Reads a value previously transformed with {@link czm_writeNonPerspective} + * by dividing it by \`w\`, the value used in the perspective divide. + * This function is intended to be called in a fragment shader to access a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The value should have been + * previously written in the vertex shader with a call to + * {@link czm_writeNonPerspective}. + * + * @name czm_readNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The non-perspective value to be read. + * @param {float} oneOverW One over the perspective divide value, \`w\`. Usually this is simply \`gl_FragCoord.w\`. + * @returns {float|vec2|vec3|vec4} The usable value. + */ +float czm_readNonPerspective(float value, float oneOverW) { + return value * oneOverW; +} + +vec2 czm_readNonPerspective(vec2 value, float oneOverW) { + return value * oneOverW; +} + +vec3 czm_readNonPerspective(vec3 value, float oneOverW) { + return value * oneOverW; +} + +vec4 czm_readNonPerspective(vec4 value, float oneOverW) { + return value * oneOverW; +} +`;var ID=`float czm_reverseLogDepth(float logZ) +{ +#ifdef LOG_DEPTH + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = logZ * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = pow(2.0, log2Depth) - 1.0; + return far * (1.0 - near / (depthFromNear + near)) / (far - near); +#endif + return logZ; +} +`;var PD=`/** + * Round a floating point value. This function exists because round() doesn't + * exist in GLSL 1.00. + * + * @param {float|vec2|vec3|vec4} value The value to round + * @param {float|vec2|vec3|vec3} The rounded value. The type matches the input. + */ +float czm_round(float value) { + return floor(value + 0.5); +} + +vec2 czm_round(vec2 value) { + return floor(value + 0.5); +} + +vec3 czm_round(vec3 value) { + return floor(value + 0.5); +} + +vec4 czm_round(vec4 value) { + return floor(value + 0.5); +} +`;var OD=`/** + * Samples the 4 neighboring pixels and return the weighted average. + * + * @private + */ +vec3 czm_sampleOctahedralProjectionWithFiltering(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod) +{ + direction /= dot(vec3(1.0), abs(direction)); + vec2 rev = abs(direction.zx) - vec2(1.0); + vec2 neg = vec2(direction.x < 0.0 ? rev.x : -rev.x, + direction.z < 0.0 ? rev.y : -rev.y); + vec2 uv = direction.y < 0.0 ? neg : direction.xz; + vec2 coord = 0.5 * uv + vec2(0.5); + vec2 pixel = 1.0 / textureSize; + + if (lod > 0.0) + { + // Each subseqeuent mip level is half the size + float scale = 1.0 / pow(2.0, lod); + float offset = ((textureSize.y + 1.0) / textureSize.x); + + coord.x *= offset; + coord *= scale; + + coord.x += offset + pixel.x; + coord.y += (1.0 - (1.0 / pow(2.0, lod - 1.0))) + pixel.y * (lod - 1.0) * 2.0; + } + else + { + coord.x *= (textureSize.y / textureSize.x); + } + + // Do bilinear filtering + #ifndef OES_texture_float_linear + vec3 color1 = texture(projectedMap, coord + vec2(0.0, pixel.y)).rgb; + vec3 color2 = texture(projectedMap, coord + vec2(pixel.x, 0.0)).rgb; + vec3 color3 = texture(projectedMap, coord + pixel).rgb; + vec3 color4 = texture(projectedMap, coord).rgb; + + vec2 texturePosition = coord * textureSize; + + float fu = fract(texturePosition.x); + float fv = fract(texturePosition.y); + + vec3 average1 = mix(color4, color2, fu); + vec3 average2 = mix(color1, color3, fu); + + vec3 color = mix(average1, average2, fv); + #else + vec3 color = texture(projectedMap, coord).rgb; + #endif + + return color; +} + + +/** + * Samples from a cube map that has been projected using an octahedral projection from the given direction. + * + * @name czm_sampleOctahedralProjection + * @glslFunction + * + * @param {sampler2D} projectedMap The texture with the octahedral projected cube map. + * @param {vec2} textureSize The width and height dimensions in pixels of the projected map. + * @param {vec3} direction The normalized direction used to sample the cube map. + * @param {float} lod The level of detail to sample. + * @param {float} maxLod The maximum level of detail. + * @returns {vec3} The color of the cube map at the direction. + */ +vec3 czm_sampleOctahedralProjection(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod, float maxLod) { + float currentLod = floor(lod + 0.5); + float nextLod = min(currentLod + 1.0, maxLod); + + vec3 colorCurrentLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, currentLod); + vec3 colorNextLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, nextLod); + + return mix(colorNextLod, colorCurrentLod, nextLod - lod); +} +`;var MD=`/** + * Adjusts the saturation of a color. + * + * @name czm_saturation + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the saturation of the color. + * + * @returns {float} The color with the saturation adjusted. + * + * @example + * vec3 greyScale = czm_saturation(color, 0.0); + * vec3 doubleSaturation = czm_saturation(color, 2.0); + */ +vec3 czm_saturation(vec3 rgb, float adjustment) +{ + // Algorithm from Chapter 16 of OpenGL Shading Language + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + vec3 intensity = vec3(dot(rgb, W)); + return mix(intensity, rgb, adjustment); +} +`;var RD=` +float czm_sampleShadowMap(highp samplerCube shadowMap, vec3 d) +{ + return czm_unpackDepth(czm_textureCube(shadowMap, d)); +} + +float czm_sampleShadowMap(highp sampler2D shadowMap, vec2 uv) +{ +#ifdef USE_SHADOW_DEPTH_TEXTURE + return texture(shadowMap, uv).r; +#else + return czm_unpackDepth(texture(shadowMap, uv)); +#endif +} + +float czm_shadowDepthCompare(samplerCube shadowMap, vec3 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} + +float czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} +`;var BD=` +float czm_private_shadowVisibility(float visibility, float nDotL, float normalShadingSmooth, float darkness) +{ +#ifdef USE_NORMAL_SHADING +#ifdef USE_NORMAL_SHADING_SMOOTH + float strength = clamp(nDotL / normalShadingSmooth, 0.0, 1.0); +#else + float strength = step(0.0, nDotL); +#endif + visibility *= strength; +#endif + + visibility = max(visibility, darkness); + return visibility; +} + +#ifdef USE_CUBE_MAP_SHADOW +float czm_shadowVisibility(samplerCube shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec3 uvw = shadowParameters.texCoords; + + depth -= depthBias; + float visibility = czm_shadowDepthCompare(shadowMap, uvw, depth); + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#else +float czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec2 uv = shadowParameters.texCoords; + + depth -= depthBias; +#ifdef USE_SOFT_SHADOWS + vec2 texelStepSize = shadowParameters.texelStepSize; + float radius = 1.0; + float dx0 = -texelStepSize.x * radius; + float dy0 = -texelStepSize.y * radius; + float dx1 = texelStepSize.x * radius; + float dy1 = texelStepSize.y * radius; + float visibility = ( + czm_shadowDepthCompare(shadowMap, uv, depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth) + ) * (1.0 / 9.0); +#else + float visibility = czm_shadowDepthCompare(shadowMap, uv, depth); +#endif + + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#endif +`;var LD=`/** + * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative. This is similar to the GLSL + * built-in function <code>sign</code> except that returns 1.0 instead of 0.0 when the input value is 0.0. + * + * @name czm_signNotZero + * @glslFunction + * + * @param {} value The value for which to determine the sign. + * @returns {} 1.0 if the value is positive or zero, -1.0 if the value is negative. + */ +float czm_signNotZero(float value) +{ + return value >= 0.0 ? 1.0 : -1.0; +} + +vec2 czm_signNotZero(vec2 value) +{ + return vec2(czm_signNotZero(value.x), czm_signNotZero(value.y)); +} + +vec3 czm_signNotZero(vec3 value) +{ + return vec3(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z)); +} + +vec4 czm_signNotZero(vec4 value) +{ + return vec4(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z), czm_signNotZero(value.w)); +} +`;var ND=`/** + * Computes a color from the third order spherical harmonic coefficients and a normalized direction vector. + * <p> + * The order of the coefficients is [L00, L1_1, L10, L11, L2_2, L2_1, L20, L21, L22]. + * </p> + * + * @name czm_sphericalHarmonics + * @glslFunction + * + * @param {vec3} normal The normalized direction. + * @param {vec3[9]} coefficients The third order spherical harmonic coefficients. + * @returns {vec3} The color at the direction. + * + * @see https://graphics.stanford.edu/papers/envmap/envmap.pdf + */ +vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9]) +{ + vec3 L00 = coefficients[0]; + vec3 L1_1 = coefficients[1]; + vec3 L10 = coefficients[2]; + vec3 L11 = coefficients[3]; + vec3 L2_2 = coefficients[4]; + vec3 L2_1 = coefficients[5]; + vec3 L20 = coefficients[6]; + vec3 L21 = coefficients[7]; + vec3 L22 = coefficients[8]; + + float x = normal.x; + float y = normal.y; + float z = normal.z; + + return + L00 + + L1_1 * y + + L10 * z + + L11 * x + + L2_2 * (y * x) + + L2_1 * (y * z) + + L20 * (3.0 * z * z - 1.0) + + L21 * (z * x) + + L22 * (x * x - y * y); +} +`;var FD=`/** + * Converts an sRGB color to a linear RGB color. + * + * @param {vec3|vec4} srgbIn The color in sRGB space + * @returns {vec3|vec4} The color in linear color space. The vector type matches the input. + */ +vec3 czm_srgbToLinear(vec3 srgbIn) +{ + return pow(srgbIn, vec3(2.2)); +} + +vec4 czm_srgbToLinear(vec4 srgbIn) +{ + vec3 linearOut = pow(srgbIn.rgb, vec3(2.2)); + return vec4(linearOut, srgbIn.a); +} +`;var UD=`/** + * Creates a matrix that transforms vectors from tangent space to eye space. + * + * @name czm_tangentToEyeSpaceMatrix + * @glslFunction + * + * @param {vec3} normalEC The normal vector in eye coordinates. + * @param {vec3} tangentEC The tangent vector in eye coordinates. + * @param {vec3} bitangentEC The bitangent vector in eye coordinates. + * + * @returns {mat3} The matrix that transforms from tangent space to eye space. + * + * @example + * mat3 tangentToEye = czm_tangentToEyeSpaceMatrix(normalEC, tangentEC, bitangentEC); + * vec3 normal = tangentToEye * texture(normalMap, st).xyz; + */ +mat3 czm_tangentToEyeSpaceMatrix(vec3 normalEC, vec3 tangentEC, vec3 bitangentEC) +{ + vec3 normal = normalize(normalEC); + vec3 tangent = normalize(tangentEC); + vec3 bitangent = normalize(bitangentEC); + return mat3(tangent.x , tangent.y , tangent.z, + bitangent.x, bitangent.y, bitangent.z, + normal.x , normal.y , normal.z); +} +`;var VD=`/** + * A wrapper around the texture (WebGL2) / textureCube (WebGL1) + * function to allow for WebGL 1 support. + * + * @name czm_textureCube + * @glslFunction + * + * @param {samplerCube} sampler The sampler. + * @param {vec3} p The coordinates to sample the texture at. + */ +vec4 czm_textureCube(samplerCube sampler, vec3 p) { +#if __VERSION__ == 300 + return texture(sampler, p); +#else + return textureCube(sampler, p); +#endif +}`;var kD=`/** + * Transforms a plane. + * + * @name czm_transformPlane + * @glslFunction + * + * @param {vec4} plane The plane in Hessian Normal Form. + * @param {mat4} transform The inverse-transpose of a transformation matrix. + */ +vec4 czm_transformPlane(vec4 plane, mat4 transform) { + vec4 transformedPlane = transform * plane; + // Convert the transformed plane to Hessian Normal Form + float normalMagnitude = length(transformedPlane.xyz); + return transformedPlane / normalMagnitude; +} +`;var zD=`/** + * Translates a position (or any <code>vec3</code>) that was encoded with {@link EncodedCartesian3}, + * and then provided to the shader as separate <code>high</code> and <code>low</code> bits to + * be relative to the eye. As shown in the example, the position can then be transformed in eye + * or clip coordinates using {@link czm_modelViewRelativeToEye} or {@link czm_modelViewProjectionRelativeToEye}, + * respectively. + * <p> + * This technique, called GPU RTE, eliminates jittering artifacts when using large coordinates as + * described in {@link http://help.agi.com/AGIComponents/html/BlogPrecisionsPrecisions.htm|Precisions, Precisions}. + * </p> + * + * @name czm_translateRelativeToEye + * @glslFunction + * + * @param {vec3} high The position's high bits. + * @param {vec3} low The position's low bits. + * @returns {vec3} The position translated to be relative to the camera's position. + * + * @example + * in vec3 positionHigh; + * in vec3 positionLow; + * + * void main() + * { + * vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * } + * + * @see czm_modelViewRelativeToEye + * @see czm_modelViewProjectionRelativeToEye + * @see czm_computePosition + * @see EncodedCartesian3 + */ +vec4 czm_translateRelativeToEye(vec3 high, vec3 low) +{ + vec3 highDifference = high - czm_encodedCameraPositionMCHigh; + vec3 lowDifference = low - czm_encodedCameraPositionMCLow; + + return vec4(highDifference + lowDifference, 1.0); +} +`;var HD=`/** + * @private + */ +vec4 czm_translucentPhong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down and horizon views) + float diffuse = czm_getLambertDiffuse(vec3(0.0, 0.0, 1.0), material.normal); + + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_getLambertDiffuse(vec3(0.0, 1.0, 0.0), material.normal); + } + + diffuse = clamp(diffuse, 0.0, 1.0); + + float specular = czm_getSpecular(lightDirectionEC, toEye, material.normal, material.shininess); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var GD=`/** + * Returns the transpose of the matrix. The input <code>matrix</code> can be + * a <code>mat2</code>, <code>mat3</code>, or <code>mat4</code>. + * + * @name czm_transpose + * @glslFunction + * + * @param {} matrix The matrix to transpose. + * + * @returns {} The transposed matrix. + * + * @example + * // GLSL declarations + * mat2 czm_transpose(mat2 matrix); + * mat3 czm_transpose(mat3 matrix); + * mat4 czm_transpose(mat4 matrix); + * + * // Transpose a 3x3 rotation matrix to find its inverse. + * mat3 eastNorthUpToEye = czm_eastNorthUpToEyeCoordinates( + * positionMC, normalEC); + * mat3 eyeToEastNorthUp = czm_transpose(eastNorthUpToEye); + */ +mat2 czm_transpose(mat2 matrix) +{ + return mat2( + matrix[0][0], matrix[1][0], + matrix[0][1], matrix[1][1]); +} + +mat3 czm_transpose(mat3 matrix) +{ + return mat3( + matrix[0][0], matrix[1][0], matrix[2][0], + matrix[0][1], matrix[1][1], matrix[2][1], + matrix[0][2], matrix[1][2], matrix[2][2]); +} + +mat4 czm_transpose(mat4 matrix) +{ + return mat4( + matrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0], + matrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1], + matrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2], + matrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]); +} +`;var WD=`/** + * Unpacks a vec4 depth value to a float in [0, 1) range. + * + * @name czm_unpackDepth + * @glslFunction + * + * @param {vec4} packedDepth The packed depth. + * + * @returns {float} The floating-point depth in [0, 1) range. + */ + float czm_unpackDepth(vec4 packedDepth) + { + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)); + } +`;var jD=`/** + * Unpack an IEEE 754 single-precision float that is packed as a little-endian unsigned normalized vec4. + * + * @name czm_unpackFloat + * @glslFunction + * + * @param {vec4} packedFloat The packed float. + * + * @returns {float} The floating-point depth in arbitrary range. + */ +float czm_unpackFloat(vec4 packedFloat) +{ + // Convert to [0.0, 255.0] and round to integer + packedFloat = floor(packedFloat * 255.0 + 0.5); + float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0; + float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0; + if (exponent == -127.0) + { + return 0.0; + } + float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000); + float result = sign * exp2(exponent - 23.0) * mantissa; + return result; +} +`;var qD=`/** + * Unpack unsigned integers of 1-4 bytes. in WebGL 1, there is no uint type, + * so the return value is an int. + * <p> + * There are also precision limitations in WebGL 1. highp int is still limited + * to 24 bits. Above the value of 2^24 = 16777216, precision loss may occur. + * </p> + * + * @param {float|vec2|vec3|vec4} packed The packed value. For vectors, the components are listed in little-endian order. + * + * @return {int} The unpacked value. + */ + int czm_unpackUint(float packedValue) { + float rounded = czm_round(packedValue * 255.0); + return int(rounded); + } + + int czm_unpackUint(vec2 packedValue) { + vec2 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec2(1.0, 256.0))); + } + + int czm_unpackUint(vec3 packedValue) { + vec3 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec3(1.0, 256.0, 65536.0))); + } + + int czm_unpackUint(vec4 packedValue) { + vec4 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec4(1.0, 256.0, 65536.0, 16777216.0))); + } +`;var YD=`/** + * Transform metadata values following the EXT_structural_metadata spec + * by multiplying by scale and adding the offset. Operations are always + * performed component-wise, even for matrices. + * + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} offset The offset to add + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} scale The scale factor to multiply + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} value The original value. + * + * @return {float|vec2|vec3|vec4|mat2|mat3|mat4} The transformed value of the same scalar/vector/matrix type as the input. + */ +float czm_valueTransform(float offset, float scale, float value) { + return scale * value + offset; +} + +vec2 czm_valueTransform(vec2 offset, vec2 scale, vec2 value) { + return scale * value + offset; +} + +vec3 czm_valueTransform(vec3 offset, vec3 scale, vec3 value) { + return scale * value + offset; +} + +vec4 czm_valueTransform(vec4 offset, vec4 scale, vec4 value) { + return scale * value + offset; +} + +mat2 czm_valueTransform(mat2 offset, mat2 scale, mat2 value) { + return matrixCompMult(scale, value) + offset; +} + +mat3 czm_valueTransform(mat3 offset, mat3 scale, mat3 value) { + return matrixCompMult(scale, value) + offset; +} + +mat4 czm_valueTransform(mat4 offset, mat4 scale, mat4 value) { + return matrixCompMult(scale, value) + offset; +} +`;var XD=`#ifdef LOG_DEPTH +// 1.0 at the near plane, increasing linearly from there. +out float v_depthFromNearPlusOne; +#ifdef SHADOW_MAP +out vec3 v_logPositionEC; +#endif +#endif + +vec4 czm_updatePositionDepth(vec4 coords) { +#if defined(LOG_DEPTH) + +#ifdef SHADOW_MAP + vec3 logPositionEC = (czm_inverseProjection * coords).xyz; + v_logPositionEC = logPositionEC; +#endif + + // With the very high far/near ratios used with the logarithmic depth + // buffer, floating point rounding errors can cause linear depth values + // to end up on the wrong side of the far plane, even for vertices that + // are really nowhere near it. Since we always write a correct logarithmic + // depth value in the fragment shader anyway, we just need to make sure + // such errors don't cause the primitive to be clipped entirely before + // we even get to the fragment shader. + coords.z = clamp(coords.z / coords.w, -1.0, 1.0) * coords.w; +#endif + + return coords; +} + +/** + * Writes the logarithmic depth to gl_Position using the already computed gl_Position. + * + * @name czm_vertexLogDepth + * @glslFunction + */ +void czm_vertexLogDepth() +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (gl_Position.w - czm_currentFrustum.x) + 1.0; + gl_Position = czm_updatePositionDepth(gl_Position); +#endif +} + +/** + * Writes the logarithmic depth to gl_Position using the provided clip coordinates. + * <p> + * An example use case for this function would be moving the vertex in window coordinates + * before converting back to clip coordinates. Use the original vertex clip coordinates. + * </p> + * @name czm_vertexLogDepth + * @glslFunction + * + * @param {vec4} clipCoords The vertex in clip coordinates. + * + * @example + * czm_vertexLogDepth(czm_projection * vec4(positionEyeCoordinates, 1.0)); + */ +void czm_vertexLogDepth(vec4 clipCoords) +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (clipCoords.w - czm_currentFrustum.x) + 1.0; + czm_updatePositionDepth(clipCoords); +#endif +} +`;var KD=`vec4 czm_screenToEyeCoordinates(vec4 screenCoordinate) +{ + // Reconstruct NDC coordinates + float x = 2.0 * screenCoordinate.x - 1.0; + float y = 2.0 * screenCoordinate.y - 1.0; + float z = (screenCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + vec4 q = vec4(x, y, z, 1.0); + + // Reverse the perspective division to obtain clip coordinates. + q /= screenCoordinate.w; + + // Reverse the projection transformation to obtain eye coordinates. + if (!(czm_inverseProjection == mat4(0.0))) // IE and Edge sometimes do something weird with != between mat4s + { + q = czm_inverseProjection * q; + } + else + { + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + + q.x = (q.x * (right - left) + left + right) * 0.5; + q.y = (q.y * (top - bottom) + bottom + top) * 0.5; + q.z = (q.z * (near - far) - near - far) * 0.5; + q.w = 1.0; + } + + return q; +} + +/** + * Transforms a position from window to eye coordinates. + * The transform from window to normalized device coordinates is done using components + * of (@link czm_viewport} and {@link czm_viewportTransformation} instead of calculating + * the inverse of <code>czm_viewportTransformation</code>. The transformation from + * normalized device coordinates to clip coordinates is done using <code>fragmentCoordinate.w</code>, + * which is expected to be the scalar used in the perspective divide. The transformation + * from clip to eye coordinates is done using {@link czm_inverseProjection}. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec4} fragmentCoordinate The position in window coordinates to transform. + * + * @returns {vec4} The transformed position in eye coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @example + * vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord); + */ +vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate) +{ + vec2 screenCoordXY = (fragmentCoordinate.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(vec4(screenCoordXY, fragmentCoordinate.zw)); +} + +vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth) +{ + // See reverseLogDepth.glsl. This is separate to re-use the pow. +#if defined(LOG_DEPTH) || defined(LOG_DEPTH_READ_ONLY) + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = pow(2.0, log2Depth) - 1.0; + float depthFromCamera = depthFromNear + near; + vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); + eyeCoordinate.w = 1.0 / depthFromCamera; // Better precision + return eyeCoordinate; +#else + vec4 screenCoord = vec4(screenCoordinateXY, depthOrLogDepth, 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); +#endif + return eyeCoordinate; +} + +/** + * Transforms a position given as window x/y and a depth or a log depth from window to eye coordinates. + * This function produces more accurate results for window positions with log depth than + * conventionally unpacking the log depth using czm_reverseLogDepth and using the standard version + * of czm_windowToEyeCoordinates. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec2} fragmentCoordinateXY The XY position in window coordinates to transform. + * @param {float} depthOrLogDepth A depth or log depth for the fragment. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @returns {vec4} The transformed position in eye coordinates. + */ +vec4 czm_windowToEyeCoordinates(vec2 fragmentCoordinateXY, float depthOrLogDepth) +{ + vec2 screenCoordXY = (fragmentCoordinateXY.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(screenCoordXY, depthOrLogDepth); +} +`;var JD=`// emulated noperspective +#if !defined(LOG_DEPTH) +in float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP. Clamps a fragment to the near and far plane + * by writing the fragment's depth. See czm_depthClamp for more details. + * + * @name czm_writeDepthClamp + * @glslFunction + * + * @example + * out_FragColor = color; + * czm_writeDepthClamp(); + * + * @see czm_depthClamp + */ +void czm_writeDepthClamp() +{ +#if (!defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + gl_FragDepth = clamp(v_WindowZ * gl_FragCoord.w, 0.0, 1.0); +#endif +} +`;var ZD=`#ifdef LOG_DEPTH +in float v_depthFromNearPlusOne; + +#ifdef POLYGON_OFFSET +uniform vec2 u_polygonOffset; +#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif +#endif + +#endif + +/** + * Writes the fragment depth to the logarithmic depth buffer. + * <p> + * Use this when the vertex shader does not call {@link czm_vertexlogDepth}, for example, when + * ray-casting geometry using a full screen quad. + * </p> + * @name czm_writeLogDepth + * @glslFunction + * + * @param {float} depth The depth coordinate, where 1.0 is on the near plane and + * depth increases in eye-space units from there + * + * @example + * czm_writeLogDepth((czm_projection * v_positionEyeCoordinates).w + 1.0); + */ +void czm_writeLogDepth(float depth) +{ +#if (defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + // Discard the vertex if it's not between the near and far planes. + // We allow a bit of epsilon on the near plane comparison because a 1.0 + // from the vertex shader (indicating the vertex should be _on_ the near + // plane) will not necessarily come here as exactly 1.0. + if (depth <= 0.9999999 || depth > czm_farDepthFromNearPlusOne) { + discard; + } + +#ifdef POLYGON_OFFSET + // Polygon offset: m * factor + r * units + float factor = u_polygonOffset[0]; + float units = u_polygonOffset[1]; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + // This factor doesn't work in IE 10 + if (factor != 0.0) { + // m = sqrt(dZdX^2 + dZdY^2); + float x = dFdx(depth); + float y = dFdy(depth); + float m = sqrt(x * x + y * y); + + // Apply the factor before computing the log depth. + depth += m * factor; + } +#endif + +#endif + + gl_FragDepth = log2(depth) * czm_oneOverLog2FarDepthFromNearPlusOne; + +#ifdef POLYGON_OFFSET + // Apply the units after the log depth. + gl_FragDepth += czm_epsilon7 * units; +#endif + +#endif +} + +/** + * Writes the fragment depth to the logarithmic depth buffer. + * <p> + * Use this when the vertex shader calls {@link czm_vertexlogDepth}. + * </p> + * + * @name czm_writeLogDepth + * @glslFunction + */ +void czm_writeLogDepth() { +#ifdef LOG_DEPTH + czm_writeLogDepth(v_depthFromNearPlusOne); +#endif +} +`;var QD=`/** + * Transforms a value for non-perspective interpolation by multiplying + * it by w, the value used in the perspective divide. This function is + * intended to be called in a vertex shader to compute the value of a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The fragment shader + * must call {@link czm_readNonPerspective} to retrieve the final + * non-perspective value. + * + * @name czm_writeNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The value to be interpolated without accounting for perspective. + * @param {float} w The perspective divide value. Usually this is the computed \`gl_Position.w\`. + * @returns {float|vec2|vec3|vec4} The transformed value, intended to be stored in a \`varying\` and read in the + * fragment shader with {@link czm_readNonPerspective}. + */ +float czm_writeNonPerspective(float value, float w) { + return value * w; +} + +vec2 czm_writeNonPerspective(vec2 value, float w) { + return value * w; +} + +vec3 czm_writeNonPerspective(vec3 value, float w) { + return value * w; +} + +vec4 czm_writeNonPerspective(vec4 value, float w) { + return value * w; +} +`;var L0={czm_degreesPerRadian:Pv,czm_depthRange:Ov,czm_epsilon1:Mv,czm_epsilon2:Rv,czm_epsilon3:Bv,czm_epsilon4:Lv,czm_epsilon5:Nv,czm_epsilon6:Fv,czm_epsilon7:Uv,czm_infinity:Vv,czm_oneOverPi:kv,czm_oneOverTwoPi:zv,czm_passCesium3DTile:Hv,czm_passCesium3DTileClassification:Gv,czm_passCesium3DTileClassificationIgnoreShow:Wv,czm_passClassification:jv,czm_passCompute:qv,czm_passEnvironment:Yv,czm_passGlobe:Xv,czm_passOpaque:Kv,czm_passOverlay:Jv,czm_passTerrainClassification:Zv,czm_passTranslucent:Qv,czm_passVoxels:$v,czm_pi:ew,czm_piOverFour:tw,czm_piOverSix:nw,czm_piOverThree:iw,czm_piOverTwo:rw,czm_radiansPerDegree:ow,czm_sceneMode2D:sw,czm_sceneMode3D:aw,czm_sceneModeColumbusView:cw,czm_sceneModeMorphing:lw,czm_solarRadius:uw,czm_threePiOver2:fw,czm_twoPi:dw,czm_webMercatorMaxLatitude:hw,czm_depthRangeStruct:mw,czm_material:pw,czm_materialInput:_w,czm_modelMaterial:gw,czm_modelVertexOutput:yw,czm_pbrParameters:Aw,czm_ray:xw,czm_raySegment:Cw,czm_shadowParameters:Tw,czm_HSBToRGB:Ew,czm_HSLToRGB:bw,czm_RGBToHSB:Sw,czm_RGBToHSL:vw,czm_RGBToXYZ:ww,czm_XYZToRGB:Dw,czm_acesTonemapping:Iw,czm_alphaWeight:Pw,czm_antialias:Ow,czm_approximateSphericalCoordinates:Mw,czm_backFacing:Rw,czm_branchFreeTernary:Bw,czm_cascadeColor:Lw,czm_cascadeDistance:Nw,czm_cascadeMatrix:Fw,czm_cascadeWeights:Uw,czm_columbusViewMorph:Vw,czm_computePosition:kw,czm_cosineAndSine:zw,czm_decompressTextureCoordinates:Hw,czm_defaultPbrMaterial:Gw,czm_depthClamp:Ww,czm_eastNorthUpToEyeCoordinates:jw,czm_ellipsoidContainsPoint:qw,czm_ellipsoidWgs84TextureCoordinates:Yw,czm_equalsEpsilon:Xw,czm_eyeOffset:Kw,czm_eyeToWindowCoordinates:Jw,czm_fastApproximateAtan:Zw,czm_fog:Qw,czm_gammaCorrect:$w,czm_geodeticSurfaceNormal:eD,czm_getDefaultMaterial:tD,czm_getLambertDiffuse:nD,czm_getSpecular:iD,czm_getWaterNoise:rD,czm_hue:oD,czm_inverseGamma:sD,czm_isEmpty:aD,czm_isFull:cD,czm_latitudeToWebMercatorFraction:lD,czm_lineDistance:uD,czm_linearToSrgb:fD,czm_luminance:dD,czm_metersPerPixel:hD,czm_modelToWindowCoordinates:mD,czm_multiplyWithColorBalance:pD,czm_nearFarScalar:_D,czm_octDecode:gD,czm_packDepth:yD,czm_pbrLighting:AD,czm_pbrMetallicRoughnessMaterial:xD,czm_pbrSpecularGlossinessMaterial:CD,czm_phong:TD,czm_planeDistance:ED,czm_pointAlongRay:bD,czm_rayEllipsoidIntersectionInterval:SD,czm_raySphereIntersectionInterval:vD,czm_readDepth:wD,czm_readNonPerspective:DD,czm_reverseLogDepth:ID,czm_round:PD,czm_sampleOctahedralProjection:OD,czm_saturation:MD,czm_shadowDepthCompare:RD,czm_shadowVisibility:BD,czm_signNotZero:LD,czm_sphericalHarmonics:ND,czm_srgbToLinear:FD,czm_tangentToEyeSpaceMatrix:UD,czm_textureCube:VD,czm_transformPlane:kD,czm_translateRelativeToEye:zD,czm_translucentPhong:HD,czm_transpose:GD,czm_unpackDepth:WD,czm_unpackFloat:jD,czm_unpackUint:qD,czm_valueTransform:YD,czm_vertexLogDepth:XD,czm_windowToEyeCoordinates:KD,czm_writeDepthClamp:JD,czm_writeLogDepth:ZD,czm_writeNonPerspective:QD};function ybe(e,t){let n=e;return n=n.replaceAll("version 300 es",""),n=n.replaceAll(/(texture\()/g,"texture2D("),t?(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"varying $2"),/out_FragData_(\d+)/.test(n)&&(n=`#extension GL_EXT_draw_buffers : enable +${n}`,n=n.replaceAll(/layout\s+\(location\s*=\s*\d+\)\s*out\s+vec4\s+out_FragData_\d+;/g,""),n=n.replaceAll(/out_FragData_(\d+)/g,"gl_FragData[$1]")),n=n.replaceAll(/layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,""),n=n.replaceAll(/out_FragColor/g,"gl_FragColor"),n=n.replaceAll(/out_FragColor\[(\d+)\]/g,"gl_FragColor[$1]"),/gl_FragDepth/.test(n)&&(n=`#extension GL_EXT_frag_depth : enable +${n}`,n=n.replaceAll(/gl_FragDepth/g,"gl_FragDepthEXT"))):(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"attribute $2"),n=n.replaceAll(/(out)\s+(vec\d|mat\d|float)\s+([\w]+);/g,"varying $2 $3;")),n=`#version 100 +${n}`,n}var $D=ybe;function cQ(e){return e=e.replace(/\/\/.*/g,""),e.replace(/\/\*\*[\s\S]*?\*\//gm,function(t){let n=t.match(/\n/gm).length,i="";for(let r=0;r<n;++r)i+=` +`;return i})}function lQ(e,t,n){let i;for(let r=0;r<n.length;++r)n[r].name===e&&(i=n[r]);return u(i)||(t=cQ(t),i={name:e,glslSource:t,dependsOn:[],requiredBy:[],evaluated:!1},n.push(i)),i}function uQ(e,t){if(e.evaluated)return;e.evaluated=!0;let n=e.glslSource.match(/\bczm_[a-zA-Z0-9_]*/g);u(n)&&n!==null&&(n=n.filter(function(i,r){return n.indexOf(i)===r}),n.forEach(function(i){if(i!==e.name&&bs._czmBuiltinsAndUniforms.hasOwnProperty(i)){let r=lQ(i,bs._czmBuiltinsAndUniforms[i],t);e.dependsOn.push(r),r.requiredBy.push(e),uQ(r,t)}}))}function Abe(e){let t=[],n=[];for(;e.length>0;){let r=e.pop();n.push(r),r.requiredBy.length===0&&t.push(r)}for(;t.length>0;){let r=t.shift();e.push(r);for(let o=0;o<r.dependsOn.length;++o){let s=r.dependsOn[o],a=s.requiredBy.indexOf(r);s.requiredBy.splice(a,1),s.requiredBy.length===0&&t.push(s)}}let i=[];for(let r=0;r<n.length;++r)n[r].requiredBy.length!==0&&i.push(n[r])}function xbe(e){let t=[],n=lQ("main",e,t);uQ(n,t),Abe(t);let i="";for(let r=t.length-1;r>=0;--r)i=`${i+t[r].glslSource} +`;return i.replace(n.glslSource,"")}function fQ(e,t,n){let i,r,o="",s=e.sources;if(u(s))for(i=0,r=s.length;i<r;++i)o+=` +#line 0 +${s[i]}`;o=cQ(o);let a;o=o.replace(/#version\s+(.*?)\n/gm,function(A,x){return a=x,` +`});let c=[];o=o.replace(/#extension.*\n/gm,function(A){return c.push(A),` +`}),o=o.replace(/precision\s(lowp|mediump|highp)\s(float|int);/,"");let l=e.pickColorQualifier;u(l)&&(o=bs.createPickFragmentShaderSource(o,l));let f="",d=c.length;for(i=0;i<d;i++)f+=c[i];t&&(f+=`#ifdef GL_FRAGMENT_PRECISION_HIGH + precision highp float; + precision highp int; +#else + precision mediump float; + precision mediump int; + #define highp mediump +#endif + +`);let p=e.defines;if(u(p))for(i=0,r=p.length;i<r;++i){let A=p[i];A.length!==0&&(f+=`#define ${A} +`)}n.textureFloatLinear&&(f+=`#define OES_texture_float_linear + +`),n.floatingPointTexture&&(f+=`#define OES_texture_float + +`);let g="";e.includeBuiltIns&&(g=xbe(o)),f+=` +#line 0 +`;let m=g+o;return n.webgl2&&t&&!/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g.test(m)&&!/czm_out_FragColor/g.test(m)&&/out_FragColor/g.test(m)&&(f+=`layout(location = 0) out vec4 out_FragColor; + +`),f+=g,f+=o,n.webgl2?f=`#version 300 es +${f}`:f=$D(f,t),f}function bs(e){e=y(e,y.EMPTY_OBJECT);let t=e.pickColorQualifier;this.defines=u(e.defines)?e.defines.slice(0):[],this.sources=u(e.sources)?e.sources.slice(0):[],this.pickColorQualifier=t,this.includeBuiltIns=y(e.includeBuiltIns,!0)}bs.prototype.clone=function(){return new bs({sources:this.sources,defines:this.defines,pickColorQualifier:this.pickColorQualifier,includeBuiltIns:this.includeBuiltIns})};bs.replaceMain=function(e,t){return t=`void ${t}()`,e.replace(/void\s+main\s*\(\s*(?:void)?\s*\)/g,t)};bs.prototype.getCacheKey=function(){let t=this.defines.slice().sort().join(","),n=this.pickColorQualifier,i=this.includeBuiltIns,r=this.sources.join(` +`);return`${t}:${n}:${i}:${r}`};bs.prototype.createCombinedVertexShader=function(e){return fQ(this,!1,e)};bs.prototype.createCombinedFragmentShader=function(e){return fQ(this,!0,e)};bs._czmBuiltinsAndUniforms={};for(let e in L0)L0.hasOwnProperty(e)&&(bs._czmBuiltinsAndUniforms[e]=L0[e]);for(let e in Ym)if(Ym.hasOwnProperty(e)){let t=Ym[e];typeof t.getDeclaration=="function"&&(bs._czmBuiltinsAndUniforms[e]=t.getDeclaration(e))}bs.createPickVertexShaderSource=function(e){return`${bs.replaceMain(e,"czm_old_main")} +in vec4 pickColor; +out vec4 czm_pickColor; +void main() +{ + czm_old_main(); + czm_pickColor = pickColor; +}`};bs.createPickFragmentShaderSource=function(e,t){let n=bs.replaceMain(e,"czm_old_main"),i=`${t} vec4 czm_pickColor; +void main() +{ + czm_old_main(); + if (out_FragColor.a == 0.0) { + discard; + } + out_FragColor = czm_pickColor; +}`;return`${n} +${i}`};function Cbe(e,t){let n=e.defines,i=n.length;for(let r=0;r<i;++r)if(n[r]===t)return!0;return!1}function dQ(e,t){let n=e.sources,i=n.length;for(let r=0;r<i;++r)if(n[r].indexOf(t)!==-1)return!0;return!1}function hQ(e,t){let n=t.length;for(let i=0;i<n;++i){let r=t[i];if(dQ(e,r))return r}}var Tbe=["v_normalEC","v_normal"];bs.findNormalVarying=function(e){return dQ(e,"#ifdef HAS_NORMALS")?Cbe(e,"HAS_NORMALS")?"v_normalEC":void 0:hQ(e,Tbe)};var Ebe=["v_positionEC"];bs.findPositionVarying=function(e){return hQ(e,Ebe)};var ke=bs;function sd(e){this._context=e,this._shaders={},this._numberOfShaders=0,this._shadersToRelease={}}Object.defineProperties(sd.prototype,{numberOfShaders:{get:function(){return this._numberOfShaders}}});sd.prototype.replaceShaderProgram=function(e){return u(e.shaderProgram)&&e.shaderProgram.destroy(),this.getShaderProgram(e)};function bbe(e){let t=Object.keys(e).sort();return JSON.stringify(e,t)}sd.prototype.getShaderProgram=function(e){let t=e.vertexShaderSource,n=e.fragmentShaderSource,i=e.attributeLocations;typeof t=="string"&&(t=new ke({sources:[t]})),typeof n=="string"&&(n=new ke({sources:[n]}));let r=t.getCacheKey(),o=n.getCacheKey(),s=u(i)?bbe(i):"",a=`${r}:${o}:${s}`,c;if(u(this._shaders[a]))c=this._shaders[a],delete this._shadersToRelease[a];else{let l=this._context,f=t.createCombinedVertexShader(l),d=n.createCombinedFragmentShader(l),p=new Xt({gl:l._gl,logShaderCompilation:l.logShaderCompilation,debugShaders:l.debugShaders,vertexShaderSource:t,vertexShaderText:f,fragmentShaderSource:n,fragmentShaderText:d,attributeLocations:i});c={cache:this,shaderProgram:p,keyword:a,derivedKeywords:[],count:0},p._cachedShader=c,this._shaders[a]=c,++this._numberOfShaders}return++c.count,c.shaderProgram};sd.prototype.replaceDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,r=t+i.keyword,o=this._shaders[r];if(u(o)){KG(this,o);let s=i.derivedKeywords.indexOf(t);s>-1&&i.derivedKeywords.splice(s,1)}return this.createDerivedShaderProgram(e,t,n)};sd.prototype.getDerivedShaderProgram=function(e,t){let n=e._cachedShader,i=t+n.keyword,r=this._shaders[i];if(u(r))return r.shaderProgram};sd.prototype.createDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,r=t+i.keyword,o=n.vertexShaderSource,s=n.fragmentShaderSource,a=n.attributeLocations;typeof o=="string"&&(o=new ke({sources:[o]})),typeof s=="string"&&(s=new ke({sources:[s]}));let c=this._context,l=o.createCombinedVertexShader(c),f=s.createCombinedFragmentShader(c),d=new Xt({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:o,vertexShaderText:l,fragmentShaderSource:s,fragmentShaderText:f,attributeLocations:a}),p={cache:this,shaderProgram:d,keyword:r,derivedKeywords:[],count:0};return i.derivedKeywords.push(t),d._cachedShader=p,this._shaders[r]=p,d};function KG(e,t){let n=t.derivedKeywords,i=n.length;for(let r=0;r<i;++r){let o=n[r]+t.keyword,s=e._shaders[o];KG(e,s)}delete e._shaders[t.keyword],t.shaderProgram.finalDestroy()}sd.prototype.destroyReleasedShaderPrograms=function(){let e=this._shadersToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];KG(this,n),--this._numberOfShaders}this._shadersToRelease={}};sd.prototype.releaseShaderProgram=function(e){if(u(e)){let t=e._cachedShader;t&&--t.count===0&&(this._shadersToRelease[t.keyword]=t)}};sd.prototype.isDestroyed=function(){return!1};sd.prototype.destroy=function(){let e=this._shaders;for(let t in e)e.hasOwnProperty(t)&&e[t].shaderProgram.finalDestroy();return ue(this)};var eI=sd;function ad(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.width,i=e.height,r=e.source;u(r)&&(u(n)||(n=y(r.videoWidth,r.width)),u(i)||(i=y(r.videoHeight,r.height)));let o=y(e.pixelFormat,at.RGBA),s=y(e.pixelDatatype,Ke.UNSIGNED_BYTE),a=at.toInternalFormat(o,s,t),c=at.isCompressedFormat(a),l=e.preMultiplyAlpha||o===at.RGB||o===at.LUMINANCE,f=y(e.flipY,!0),d=y(e.skipColorSpaceConversion,!1),p=!0,g=t._gl,m=g.TEXTURE_2D,A=g.createTexture();g.activeTexture(g.TEXTURE0),g.bindTexture(m,A);let x=4;if(u(r)&&u(r.arrayBufferView)&&!c&&(x=at.alignmentInBytes(o,s,n)),g.pixelStorei(g.UNPACK_ALIGNMENT,x),d?g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.NONE):g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.BROWSER_DEFAULT_WEBGL),u(r))if(u(r.arrayBufferView)){g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1);let T=r.arrayBufferView,E,S,v;if(c){if(g.compressedTexImage2D(m,0,a,n,i,0,T),u(r.mipLevels))for(S=n,v=i,E=0;E<r.mipLevels.length;++E)S=Math.floor(S/2)|0,S<1&&(S=1),v=Math.floor(v/2)|0,v<1&&(v=1),g.compressedTexImage2D(m,E+1,a,S,v,0,r.mipLevels[E])}else if(f&&(T=at.flipY(T,o,s,n,i)),g.texImage2D(m,0,a,n,i,0,o,Ke.toWebGLConstant(s,t),T),u(r.mipLevels))for(S=n,v=i,E=0;E<r.mipLevels.length;++E)S=Math.floor(S/2)|0,S<1&&(S=1),v=Math.floor(v/2)|0,v<1&&(v=1),g.texImage2D(m,E+1,a,S,v,0,o,Ke.toWebGLConstant(s,t),r.mipLevels[E])}else u(r.framebuffer)?(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1),r.framebuffer!==t.defaultFramebuffer&&r.framebuffer._bind(),g.copyTexImage2D(m,0,a,r.xOffset,r.yOffset,n,i,0),r.framebuffer!==t.defaultFramebuffer&&r.framebuffer._unBind()):(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,l),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,f),g.texImage2D(m,0,a,o,Ke.toWebGLConstant(s,t),r));else g.texImage2D(m,0,a,n,i,0,o,Ke.toWebGLConstant(s,t),null),p=!1;g.bindTexture(m,null);let C;c?C=at.compressedTextureSizeInBytes(o,n,i):C=at.textureSizeInBytes(o,s,n,i),this._id=Wn(),this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=m,this._texture=A,this._internalFormat=a,this._pixelFormat=o,this._pixelDatatype=s,this._width=n,this._height=i,this._dimensions=new H(n,i),this._hasMipmap=!1,this._sizeInBytes=C,this._preMultiplyAlpha=l,this._flipY=f,this._initialized=p,this._sampler=void 0,this.sampler=u(e.sampler)?e.sampler:new ln}ad.create=function(e){return new ad(e)};ad.fromFramebuffer=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,i=y(e.pixelFormat,at.RGB),r=y(e.framebufferXOffset,0),o=y(e.framebufferYOffset,0),s=y(e.width,n.drawingBufferWidth),a=y(e.height,n.drawingBufferHeight),c=e.framebuffer;return new ad({context:t,width:s,height:a,pixelFormat:i,source:{framebuffer:u(c)?c:t.defaultFramebuffer,xOffset:r,yOffset:o,width:s,height:a}})};Object.defineProperties(ad.prototype,{id:{get:function(){return this._id}},sampler:{get:function(){return this._sampler},set:function(e){let t=e.minificationFilter,n=e.magnificationFilter,i=this._context,r=this._pixelFormat,o=this._pixelDatatype,s=t===sn.NEAREST_MIPMAP_NEAREST||t===sn.NEAREST_MIPMAP_LINEAR||t===sn.LINEAR_MIPMAP_NEAREST||t===sn.LINEAR_MIPMAP_LINEAR;(o===Ke.FLOAT&&!i.textureFloatLinear||o===Ke.HALF_FLOAT&&!i.textureHalfFloatLinear)&&(t=s?sn.NEAREST_MIPMAP_NEAREST:sn.NEAREST,n=Ti.NEAREST),i.webgl2&&at.isDepthFormat(r)&&(t=sn.NEAREST,n=Ti.NEAREST);let a=i._gl,c=this._textureTarget;a.activeTexture(a.TEXTURE0),a.bindTexture(c,this._texture),a.texParameteri(c,a.TEXTURE_MIN_FILTER,t),a.texParameteri(c,a.TEXTURE_MAG_FILTER,n),a.texParameteri(c,a.TEXTURE_WRAP_S,e.wrapS),a.texParameteri(c,a.TEXTURE_WRAP_T,e.wrapT),u(this._textureFilterAnisotropic)&&a.texParameteri(c,this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,e.maximumAnisotropy),a.bindTexture(c,null),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},dimensions:{get:function(){return this._dimensions}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*4/3):this._sizeInBytes}},_target:{get:function(){return this._textureTarget}}});ad.prototype.copyFrom=function(e){let t=y(e.xOffset,0),n=y(e.yOffset,0),i=e.source,r=this._context,o=r._gl,s=this._textureTarget;o.activeTexture(o.TEXTURE0),o.bindTexture(s,this._texture);let a=i.width,c=i.height,l=i.arrayBufferView,f=this._width,d=this._height,p=this._internalFormat,g=this._pixelFormat,m=this._pixelDatatype,A=this._preMultiplyAlpha,x=this._flipY,C=y(e.skipColorSpaceConversion,!1),T=4;u(l)&&(T=at.alignmentInBytes(g,m,a)),o.pixelStorei(o.UNPACK_ALIGNMENT,T),C?o.pixelStorei(o.UNPACK_COLORSPACE_CONVERSION_WEBGL,o.NONE):o.pixelStorei(o.UNPACK_COLORSPACE_CONVERSION_WEBGL,o.BROWSER_DEFAULT_WEBGL);let E=!1;if(!this._initialized){if(t===0&&n===0&&a===f&&c===d)u(l)?(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),x&&(l=at.flipY(l,g,m,f,d)),o.texImage2D(s,0,p,f,d,0,g,Ke.toWebGLConstant(m,r),l)):(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,A),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,x),o.texImage2D(s,0,p,g,Ke.toWebGLConstant(m,r),i)),E=!0;else{o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1);let S=at.createTypedArray(g,m,f,d);o.texImage2D(s,0,p,f,d,0,g,Ke.toWebGLConstant(m,r),S)}this._initialized=!0}E||(u(l)?(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),x&&(l=at.flipY(l,g,m,a,c)),o.texSubImage2D(s,0,t,n,a,c,g,Ke.toWebGLConstant(m,r),l)):(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,A),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,x),o.texSubImage2D(s,0,t,n,g,Ke.toWebGLConstant(m,r),i))),o.bindTexture(s,null)};ad.prototype.copyFromFramebuffer=function(e,t,n,i,r,o){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),r=y(r,this._width),o=y(o,this._height);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(a,0,e,t,n,i,r,o),s.bindTexture(a,null),this._initialized=!0};ad.prototype.generateMipmap=function(e){e=y(e,Fh.DONT_CARE),this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};ad.prototype.isDestroyed=function(){return!1};ad.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),ue(this)};var Rt=ad;function N0(){this._textures={},this._numberOfTextures=0,this._texturesToRelease={}}Object.defineProperties(N0.prototype,{numberOfTextures:{get:function(){return this._numberOfTextures}}});N0.prototype.getTexture=function(e){let t=this._textures[e];if(u(t))return delete this._texturesToRelease[e],++t.count,t.texture};N0.prototype.addTexture=function(e,t){let n={texture:t,count:1};t.finalDestroy=t.destroy;let i=this;t.destroy=function(){--n.count===0&&(i._texturesToRelease[e]=n)},this._textures[e]=n,++this._numberOfTextures};N0.prototype.destroyReleasedTextures=function(){let e=this._texturesToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];delete this._textures[t],n.texture.finalDestroy(),--this._numberOfTextures}this._texturesToRelease={}};N0.prototype.isDestroyed=function(){return!1};N0.prototype.destroy=function(){let e=this._textures;for(let t in e)e.hasOwnProperty(t)&&e[t].texture.finalDestroy();return ue(this)};var tI=N0;function Uh(){this.high=h.clone(h.ZERO),this.low=h.clone(h.ZERO)}Uh.encode=function(e,t){u(t)||(t={high:0,low:0});let n;return e>=0?(n=Math.floor(e/65536)*65536,t.high=n,t.low=e-n):(n=Math.floor(-e/65536)*65536,t.high=-n,t.low=e+n),t};var rp={high:0,low:0};Uh.fromCartesian=function(e,t){u(t)||(t=new Uh);let n=t.high,i=t.low;return Uh.encode(e.x,rp),n.x=rp.high,i.x=rp.low,Uh.encode(e.y,rp),n.y=rp.high,i.y=rp.low,Uh.encode(e.z,rp),n.z=rp.high,i.z=rp.low,t};var JG=new Uh;Uh.writeElements=function(e,t,n){Uh.fromCartesian(e,JG);let i=JG.high,r=JG.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=r.x,t[n+4]=r.y,t[n+5]=r.z};var jn=Uh;function Ss(e,t){this.normal=h.clone(e),this.distance=t}Ss.fromPointNormal=function(e,t,n){let i=-h.dot(t,e);return u(n)?(h.clone(t,n.normal),n.distance=i,n):new Ss(t,i)};var Sbe=new h;Ss.fromCartesian4=function(e,t){let n=h.fromCartesian4(e,Sbe),i=e.w;return u(t)?(h.clone(n,t.normal),t.distance=i,t):new Ss(n,i)};Ss.getPointDistance=function(e,t){return h.dot(e.normal,t)+e.distance};var vbe=new h;Ss.projectPointOntoPlane=function(e,t,n){u(n)||(n=new h);let i=Ss.getPointDistance(e,t),r=h.multiplyByScalar(e.normal,i,vbe);return h.subtract(t,r,n)};var wbe=new N,Dbe=new se,Ibe=new h;Ss.transform=function(e,t,n){let i=e.normal,r=e.distance,o=N.inverseTranspose(t,wbe),s=se.fromElements(i.x,i.y,i.z,r,Dbe);s=N.multiplyByVector(o,s,s);let a=h.fromCartesian4(s,Ibe);return s=se.divideByScalar(s,h.magnitude(a),s),Ss.fromCartesian4(s,n)};Ss.clone=function(e,t){return u(t)?(h.clone(e.normal,t.normal),t.distance=e.distance,t):new Ss(e.normal,e.distance)};Ss.equals=function(e,t){return e.distance===t.distance&&h.equals(e.normal,t.normal)};Ss.ORIGIN_XY_PLANE=Object.freeze(new Ss(h.UNIT_Z,0));Ss.ORIGIN_YZ_PLANE=Object.freeze(new Ss(h.UNIT_X,0));Ss.ORIGIN_ZX_PLANE=Object.freeze(new Ss(h.UNIT_Y,0));var cn=Ss;function Ku(e){this.planes=y(e,[])}var nI=[new h,new h,new h];h.clone(h.UNIT_X,nI[0]);h.clone(h.UNIT_Y,nI[1]);h.clone(h.UNIT_Z,nI[2]);var og=new h,Pbe=new h,mQ=new cn(new h(1,0,0),0);Ku.fromBoundingSphere=function(e,t){u(t)||(t=new Ku);let n=nI.length,i=t.planes;i.length=2*n;let r=e.center,o=e.radius,s=0;for(let a=0;a<n;++a){let c=nI[a],l=i[s],f=i[s+1];u(l)||(l=i[s]=new se),u(f)||(f=i[s+1]=new se),h.multiplyByScalar(c,-o,og),h.add(r,og,og),l.x=c.x,l.y=c.y,l.z=c.z,l.w=-h.dot(c,og),h.multiplyByScalar(c,o,og),h.add(r,og,og),f.x=-c.x,f.y=-c.y,f.z=-c.z,f.w=-h.dot(h.negate(c,Pbe),og),s+=2}return t};Ku.prototype.computeVisibility=function(e){let t=this.planes,n=!1;for(let i=0,r=t.length;i<r;++i){let o=e.intersectPlane(cn.fromCartesian4(t[i],mQ));if(o===Qt.OUTSIDE)return Qt.OUTSIDE;o===Qt.INTERSECTING&&(n=!0)}return n?Qt.INTERSECTING:Qt.INSIDE};Ku.prototype.computeVisibilityWithPlaneMask=function(e,t){if(t===Ku.MASK_OUTSIDE||t===Ku.MASK_INSIDE)return t;let n=Ku.MASK_INSIDE,i=this.planes;for(let r=0,o=i.length;r<o;++r){let s=r<31?1<<r:0;if(r<31&&!(t&s))continue;let a=e.intersectPlane(cn.fromCartesian4(i[r],mQ));if(a===Qt.OUTSIDE)return Ku.MASK_OUTSIDE;a===Qt.INTERSECTING&&(n|=s)}return n};Ku.MASK_OUTSIDE=4294967295;Ku.MASK_INSIDE=0;Ku.MASK_INDETERMINATE=2147483647;var ts=Ku;function Vh(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new ts,this._orthographicMatrix=new N}function pQ(e){(e.top!==e._top||e.bottom!==e._bottom||e.left!==e._left||e.right!==e._right||e.near!==e._near||e.far!==e._far)&&(e._left=e.left,e._right=e.right,e._top=e.top,e._bottom=e.bottom,e._near=e.near,e._far=e.far,e._orthographicMatrix=N.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix))}Object.defineProperties(Vh.prototype,{projectionMatrix:{get:function(){return pQ(this),this._orthographicMatrix}}});var Obe=new h,Mbe=new h,Rbe=new h,ZG=new h;Vh.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,r=this.top,o=this.bottom,s=this.right,a=this.left,c=this.near,l=this.far,f=h.cross(t,n,Obe);h.normalize(f,f);let d=Mbe;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=Rbe;h.multiplyByScalar(f,a,p),h.add(d,p,p);let g=i[0];return u(g)||(g=i[0]=new se),g.x=f.x,g.y=f.y,g.z=f.z,g.w=-h.dot(f,p),h.multiplyByScalar(f,s,p),h.add(d,p,p),g=i[1],u(g)||(g=i[1]=new se),g.x=-f.x,g.y=-f.y,g.z=-f.z,g.w=-h.dot(h.negate(f,ZG),p),h.multiplyByScalar(n,o,p),h.add(d,p,p),g=i[2],u(g)||(g=i[2]=new se),g.x=n.x,g.y=n.y,g.z=n.z,g.w=-h.dot(n,p),h.multiplyByScalar(n,r,p),h.add(d,p,p),g=i[3],u(g)||(g=i[3]=new se),g.x=-n.x,g.y=-n.y,g.z=-n.z,g.w=-h.dot(h.negate(n,ZG),p),g=i[4],u(g)||(g=i[4]=new se),g.x=t.x,g.y=t.y,g.z=t.z,g.w=-h.dot(t,d),h.multiplyByScalar(t,l,p),h.add(e,p,p),g=i[5],u(g)||(g=i[5]=new se),g.x=-t.x,g.y=-t.y,g.z=-t.z,g.w=-h.dot(h.negate(t,ZG),p),this._cullingVolume};Vh.prototype.getPixelDimensions=function(e,t,n,i,r){pQ(this);let o=this.right-this.left,s=this.top-this.bottom,a=i*o/e,c=i*s/t;return r.x=a,r.y=c,r};Vh.prototype.clone=function(e){return u(e)||(e=new Vh),e.left=this.left,e.right=this.right,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};Vh.prototype.equals=function(e){return u(e)&&e instanceof Vh&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};Vh.prototype.equalsEpsilon=function(e,t,n){return e===this||u(e)&&e instanceof Vh&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var So=Vh;function ll(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new So,this.width=e.width,this._width=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far}ll.packedLength=4;ll.pack=function(e,t,n){return n=y(n,0),t[n++]=e.width,t[n++]=e.aspectRatio,t[n++]=e.near,t[n]=e.far,t};ll.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new ll),n.width=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t],n};function sg(e){let t=e._offCenterFrustum;if(e.width!==e._width||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far){e._aspectRatio=e.aspectRatio,e._width=e.width,e._near=e.near,e._far=e.far;let n=1/e.aspectRatio;t.right=e.width*.5,t.left=-t.right,t.top=n*t.right,t.bottom=-t.top,t.near=e.near,t.far=e.far}}Object.defineProperties(ll.prototype,{projectionMatrix:{get:function(){return sg(this),this._offCenterFrustum.projectionMatrix}},offCenterFrustum:{get:function(){return sg(this),this._offCenterFrustum}}});ll.prototype.computeCullingVolume=function(e,t,n){return sg(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};ll.prototype.getPixelDimensions=function(e,t,n,i,r){return sg(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,r)};ll.prototype.clone=function(e){return u(e)||(e=new ll),e.aspectRatio=this.aspectRatio,e.width=this.width,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._width=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};ll.prototype.equals=function(e){return!u(e)||!(e instanceof ll)?!1:(sg(this),sg(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};ll.prototype.equalsEpsilon=function(e,t,n){return!u(e)||!(e instanceof ll)?!1:(sg(this),sg(e),P.equalsEpsilon(this.width,e.width,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var en=ll;var QG={};function Bbe(e){let t=6.239996+.0172019696544*e;return .001657*Math.sin(t+.01671*Math.sin(t))}var Lbe=32.184,Nbe=2451545;function BQ(e,t){t=ee.addSeconds(e,Lbe,t);let n=ee.totalDays(t)-Nbe;return t=ee.addSeconds(t,Bbe(n),t),t}var X3=new ee(2451545,0,Kn.TAI),Fbe=1e3,Ju=P.RADIANS_PER_DEGREE,Kl=P.RADIANS_PER_ARCSECOND,ma=14959787e4,_Q=new Q;function LQ(e,t,n,i,r,o,s){n<0&&(n=-n,r+=P.PI);let a=e*(1-t),c=i-r,l=r,f=Vbe(o-i,t),d=Ube(t,0);Wbe(c,n,l,_Q);let p=a*(1+t),g=Math.cos(f),m=Math.sin(f),A=1+t*g,x=p/A;return u(s)?(s.x=x*g,s.y=x*m,s.z=0):s=new h(x*g,x*m,0),Q.multiplyByVector(_Q,s,s)}function Ube(e,t){return e<=t?"Circular":e<1-t?"Elliptical":e<=1+t?"Parabolic":"Hyperbolic"}function Vbe(e,t){let n=Hbe(e,t);return Gbe(n,t)}var kbe=50,zbe=P.EPSILON8;function Hbe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.TWO_PI;let i=e+t*Math.sin(e)/(1-Math.sin(e+t)+Math.sin(e)),r=Number.MAX_VALUE,o;for(o=0;o<kbe&&Math.abs(r-i)>zbe;++o){r=i;let s=r-t*Math.sin(r)-e,a=1-t*Math.cos(r);i=r-s/a}return r=i+n*P.TWO_PI,r}function Gbe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.TWO_PI;let i=Math.cos(e)-t,r=Math.sin(e)*Math.sqrt(1-t*t),o=Math.atan2(r,i);return o=P.zeroToTwoPi(o),e<0&&(o-=P.TWO_PI),o+=n*P.TWO_PI,o}function Wbe(e,t,n,i){let r=Math.cos(e),o=Math.sin(e),s=Math.cos(t),a=Math.sin(t),c=Math.cos(n),l=Math.sin(n);return u(i)?(i[0]=c*r-l*o*s,i[1]=l*r+c*o*s,i[2]=o*a,i[3]=-c*o-l*r*s,i[4]=-l*o+c*r*s,i[5]=r*a,i[6]=l*a,i[7]=-c*a,i[8]=s):i=new Q(c*r-l*o*s,-c*o-l*r*s,l*a,l*r+c*o*s,-l*o+c*r*s,-c*a,o*a,r*a,s),i}var jbe=1.0000010178*ma,qbe=100.46645683*Ju,Ybe=129597742283429e-5*Kl,gQ=16002,yQ=21863,AQ=32004,xQ=10931,CQ=14529,TQ=16368,EQ=15318,bQ=32794,Xbe=64*1e-7*ma,Kbe=-152*1e-7*ma,Jbe=62*1e-7*ma,Zbe=-8*1e-7*ma,Qbe=32*1e-7*ma,$be=-41*1e-7*ma,eSe=19*1e-7*ma,tSe=-11*1e-7*ma,nSe=-150*1e-7*ma,iSe=-46*1e-7*ma,rSe=68*1e-7*ma,oSe=54*1e-7*ma,sSe=14*1e-7*ma,aSe=24*1e-7*ma,cSe=-28*1e-7*ma,lSe=22*1e-7*ma,SQ=10,vQ=16002,wQ=21863,DQ=10931,IQ=1473,PQ=32004,OQ=4387,MQ=73,uSe=-325*1e-7,fSe=-322*1e-7,dSe=-79*1e-7,hSe=232*1e-7,mSe=-52*1e-7,pSe=97*1e-7,_Se=55*1e-7,gSe=-41*1e-7,ySe=-105*1e-7,ASe=-137*1e-7,xSe=258*1e-7,CSe=35*1e-7,TSe=-116*1e-7,ESe=-88*1e-7,bSe=-112*1e-7,SSe=-80*1e-7,lT=new ee(0,0,Kn.TAI);function vSe(e,t){BQ(e,lT);let i=(lT.dayNumber-X3.dayNumber+(lT.secondsOfDay-X3.secondsOfDay)/Zn.SECONDS_PER_DAY)/(Zn.DAYS_PER_JULIAN_CENTURY*10),r=.3595362*i,o=jbe+Xbe*Math.cos(gQ*r)+nSe*Math.sin(gQ*r)+Kbe*Math.cos(yQ*r)+iSe*Math.sin(yQ*r)+Jbe*Math.cos(AQ*r)+rSe*Math.sin(AQ*r)+Zbe*Math.cos(xQ*r)+oSe*Math.sin(xQ*r)+Qbe*Math.cos(CQ*r)+sSe*Math.sin(CQ*r)+$be*Math.cos(TQ*r)+aSe*Math.sin(TQ*r)+eSe*Math.cos(EQ*r)+cSe*Math.sin(EQ*r)+tSe*Math.cos(bQ*r)+lSe*Math.sin(bQ*r),s=qbe+Ybe*i+uSe*Math.cos(SQ*r)+ySe*Math.sin(SQ*r)+fSe*Math.cos(vQ*r)+ASe*Math.sin(vQ*r)+dSe*Math.cos(wQ*r)+xSe*Math.sin(wQ*r)+hSe*Math.cos(DQ*r)+CSe*Math.sin(DQ*r)+mSe*Math.cos(IQ*r)+TSe*Math.sin(IQ*r)+pSe*Math.cos(PQ*r)+ESe*Math.sin(PQ*r)+_Se*Math.cos(OQ*r)+bSe*Math.sin(OQ*r)+gSe*Math.cos(MQ*r)+SSe*Math.sin(MQ*r),a=.0167086342-.0004203654*i,c=102.93734808*Ju+11612.3529*Kl*i,l=469.97289*Kl*i,f=174.87317577*Ju-8679.27034*Kl*i;return LQ(o,a,l,c,f,s,t)}function NQ(e,t){BQ(e,lT);let i=(lT.dayNumber-X3.dayNumber+(lT.secondsOfDay-X3.secondsOfDay)/Zn.SECONDS_PER_DAY)/Zn.DAYS_PER_JULIAN_CENTURY,r=i*i,o=r*i,s=o*i,a=383397.7725+.004*i,c=.055545526-16e-9*i,l=5.15668983*Ju,f=-8e-5*i+.02966*r-42e-6*o-13e-8*s,d=83.35324312*Ju,p=146434202669e-4*i-38.2702*r-.045047*o+21301e-8*s,g=125.04455501*Ju,m=-69679193631e-4*i+6.3602*r+.007625*o-3586e-8*s,A=218.31664563*Ju,x=17325593434847e-4*i-6.391*r+.006588*o-3169e-8*s,C=297.85019547*Ju+Kl*(1602961601209e-3*i-6.3706*r+.006593*o-3169e-8*s),T=93.27209062*Ju+Kl*(17395272628478e-4*i-12.7512*r-.001037*o+417e-8*s),E=134.96340251*Ju+Kl*(17179159232178e-4*i+31.8792*r+.051635*o-2447e-7*s),S=357.52910918*Ju+Kl*(1295965810481e-4*i-.5532*r+136e-6*o-1149e-8*s),v=310.17137918*Ju-Kl*(6967051436e-3*i+6.2068*r+.007618*o-3219e-8*s),D=2*C,M=4*C,O=6*C,B=2*E,L=3*E,_=4*E,b=2*T;a+=3400.4*Math.cos(D)-635.6*Math.cos(D-E)-235.6*Math.cos(E)+218.1*Math.cos(D-S)+181*Math.cos(D+E),c+=.014216*Math.cos(D-E)+.008551*Math.cos(D-B)-.001383*Math.cos(E)+.001356*Math.cos(D+E)-.001147*Math.cos(M-L)-914e-6*Math.cos(M-B)+869e-6*Math.cos(D-S-E)-627e-6*Math.cos(D)-394e-6*Math.cos(M-_)+282e-6*Math.cos(D-S-B)-279e-6*Math.cos(C-E)-236e-6*Math.cos(B)+231e-6*Math.cos(M)+229e-6*Math.cos(O-_)-201e-6*Math.cos(B-b),f+=486.26*Math.cos(D-b)-40.13*Math.cos(D)+37.51*Math.cos(b)+25.73*Math.cos(B-b)+19.97*Math.cos(D-S-b),p+=-55609*Math.sin(D-E)-34711*Math.sin(D-B)-9792*Math.sin(E)+9385*Math.sin(M-L)+7505*Math.sin(M-B)+5318*Math.sin(D+E)+3484*Math.sin(M-_)-3417*Math.sin(D-S-E)-2530*Math.sin(O-_)-2376*Math.sin(D)-2075*Math.sin(D-L)-1883*Math.sin(B)-1736*Math.sin(O-5*E)+1626*Math.sin(S)-1370*Math.sin(O-L),m+=-5392*Math.sin(D-b)-540*Math.sin(S)-441*Math.sin(D)+423*Math.sin(b)-288*Math.sin(B-b),x+=-3332.9*Math.sin(D)+1197.4*Math.sin(D-E)-662.5*Math.sin(S)+396.3*Math.sin(E)-218*Math.sin(D-S);let w=2*v,I=3*v;f+=46.997*Math.cos(v)*i-.614*Math.cos(D-b+v)*i+.614*Math.cos(D-b-v)*i-.0297*Math.cos(w)*r-.0335*Math.cos(v)*r+.0012*Math.cos(D-b+w)*r-16e-5*Math.cos(v)*o+4e-5*Math.cos(I)*o+4e-5*Math.cos(w)*o;let R=2.116*Math.sin(v)*i-.111*Math.sin(D-b-v)*i-.0015*Math.sin(v)*r;p+=R,x+=R,m+=-520.77*Math.sin(v)*i+13.66*Math.sin(D-b+v)*i+1.12*Math.sin(D-v)*i-1.06*Math.sin(b-v)*i+.66*Math.sin(w)*r+.371*Math.sin(v)*r-.035*Math.sin(D-b+w)*r-.015*Math.sin(D-b+v)*r+.0014*Math.sin(v)*o-.0011*Math.sin(I)*o-9e-4*Math.sin(w)*o,a*=Fbe;let F=l+f*Kl,k=d+p*Kl,V=A+x*Kl,G=g+m*Kl;return LQ(a,c,F,k,G,V,t)}var RQ=.012300034,wSe=RQ/(RQ+1)*-1;function DSe(e,t){return t=NQ(e,t),h.multiplyByScalar(t,wSe,t)}var FQ=new Q(1.0000000000000002,5619723173785822e-31,4690511510146299e-34,-5154129427414611e-31,.9174820620691819,-.39777715593191376,-223970096136568e-30,.39777715593191376,.9174820620691819),iI=new h;QG.computeSunPositionInEarthInertialFrame=function(e,t){return u(e)||(e=ee.now()),u(t)||(t=new h),iI=vSe(e,iI),t=h.negate(iI,t),DSe(e,iI),h.subtract(t,iI,t),Q.multiplyByVector(FQ,t,t),t};QG.computeMoonPositionInEarthInertialFrame=function(e,t){return u(e)||(e=ee.now()),t=NQ(e,t),Q.multiplyByVector(FQ,t,t),t};var ag=QG;var K3={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};K3.getMorphTime=function(e){return e===K3.SCENE3D?1:e===K3.MORPHING?void 0:0};var ne=Object.freeze(K3);function ISe(e){e=y(e,y.EMPTY_OBJECT),this.color=z.clone(y(e.color,z.WHITE)),this.intensity=y(e.intensity,2)}var op=ISe;function uT(){this.globeDepthTexture=void 0,this.gamma=void 0,this._viewport=new Xe,this._viewportCartesian4=new se,this._viewportDirty=!1,this._viewportOrthographicMatrix=N.clone(N.IDENTITY),this._viewportTransformation=N.clone(N.IDENTITY),this._model=N.clone(N.IDENTITY),this._view=N.clone(N.IDENTITY),this._inverseView=N.clone(N.IDENTITY),this._projection=N.clone(N.IDENTITY),this._infiniteProjection=N.clone(N.IDENTITY),this._entireFrustum=new H,this._currentFrustum=new H,this._frustumPlanes=new se,this._farDepthFromNearPlusOne=void 0,this._log2FarDepthFromNearPlusOne=void 0,this._oneOverLog2FarDepthFromNearPlusOne=void 0,this._frameState=void 0,this._temeToPseudoFixed=Q.clone(N.IDENTITY),this._view3DDirty=!0,this._view3D=new N,this._inverseView3DDirty=!0,this._inverseView3D=new N,this._inverseModelDirty=!0,this._inverseModel=new N,this._inverseTransposeModelDirty=!0,this._inverseTransposeModel=new Q,this._viewRotation=new Q,this._inverseViewRotation=new Q,this._viewRotation3D=new Q,this._inverseViewRotation3D=new Q,this._inverseProjectionDirty=!0,this._inverseProjection=new N,this._modelViewDirty=!0,this._modelView=new N,this._modelView3DDirty=!0,this._modelView3D=new N,this._modelViewRelativeToEyeDirty=!0,this._modelViewRelativeToEye=new N,this._inverseModelViewDirty=!0,this._inverseModelView=new N,this._inverseModelView3DDirty=!0,this._inverseModelView3D=new N,this._viewProjectionDirty=!0,this._viewProjection=new N,this._inverseViewProjectionDirty=!0,this._inverseViewProjection=new N,this._modelViewProjectionDirty=!0,this._modelViewProjection=new N,this._inverseModelViewProjectionDirty=!0,this._inverseModelViewProjection=new N,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewProjectionRelativeToEye=new N,this._modelViewInfiniteProjectionDirty=!0,this._modelViewInfiniteProjection=new N,this._normalDirty=!0,this._normal=new Q,this._normal3DDirty=!0,this._normal3D=new Q,this._inverseNormalDirty=!0,this._inverseNormal=new Q,this._inverseNormal3DDirty=!0,this._inverseNormal3D=new Q,this._encodedCameraPositionMCDirty=!0,this._encodedCameraPositionMC=new jn,this._cameraPosition=new h,this._sunPositionWC=new h,this._sunPositionColumbusView=new h,this._sunDirectionWC=new h,this._sunDirectionEC=new h,this._moonDirectionEC=new h,this._lightDirectionWC=new h,this._lightDirectionEC=new h,this._lightColor=new h,this._lightColorHdr=new h,this._pass=void 0,this._mode=void 0,this._mapProjection=void 0,this._ellipsoid=void 0,this._cameraDirection=new h,this._cameraRight=new h,this._cameraUp=new h,this._frustum2DWidth=0,this._eyeHeight=0,this._eyeHeight2D=new H,this._pixelRatio=1,this._orthographicIn3D=!1,this._backgroundColor=new z,this._brdfLut=void 0,this._environmentMap=void 0,this._sphericalHarmonicCoefficients=void 0,this._specularEnvironmentMaps=void 0,this._specularEnvironmentMapsDimensions=new H,this._specularEnvironmentMapsMaximumLOD=void 0,this._fogDensity=void 0,this._invertClassificationColor=void 0,this._splitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}Object.defineProperties(uT.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(e){if(!Xe.equals(e,this._viewport)){Xe.clone(e,this._viewport);let t=this._viewport,n=this._viewportCartesian4;n.x=t.x,n.y=t.y,n.z=t.width,n.w=t.height,this._viewportDirty=!0}}},viewportCartesian4:{get:function(){return this._viewportCartesian4}},viewportOrthographic:{get:function(){return UQ(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return UQ(this),this._viewportTransformation}},model:{get:function(){return this._model},set:function(e){N.clone(e,this._model),this._modelView3DDirty=!0,this._inverseModelView3DDirty=!0,this._inverseModelDirty=!0,this._inverseTransposeModelDirty=!0,this._modelViewDirty=!0,this._inverseModelViewDirty=!0,this._modelViewRelativeToEyeDirty=!0,this._inverseModelViewDirty=!0,this._modelViewProjectionDirty=!0,this._inverseModelViewProjectionDirty=!0,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewInfiniteProjectionDirty=!0,this._normalDirty=!0,this._inverseNormalDirty=!0,this._normal3DDirty=!0,this._inverseNormal3DDirty=!0,this._encodedCameraPositionMCDirty=!0}},inverseModel:{get:function(){return this._inverseModelDirty&&(this._inverseModelDirty=!1,N.inverse(this._model,this._inverseModel)),this._inverseModel}},inverseTransposeModel:{get:function(){let e=this._inverseTransposeModel;return this._inverseTransposeModelDirty&&(this._inverseTransposeModelDirty=!1,N.getMatrix3(this.inverseModel,e),Q.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return $G(this),this._view3D}},viewRotation:{get:function(){return $G(this),this._viewRotation}},viewRotation3D:{get:function(){return $G(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return zQ(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return zQ(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return VSe(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return kSe(this),this._modelView}},modelView3D:{get:function(){return zSe(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return YSe(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return HSe(this),this._inverseModelView}},inverseModelView3D:{get:function(){return GSe(this),this._inverseModelView3D}},viewProjection:{get:function(){return WSe(this),this._viewProjection}},inverseViewProjection:{get:function(){return jSe(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return qSe(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return XSe(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return KSe(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return JSe(this),this._modelViewInfiniteProjection}},normal:{get:function(){return ZSe(this),this._normal}},normal3D:{get:function(){return QSe(this),this._normal3D}},inverseNormal:{get:function(){return $Se(this),this._inverseNormal}},inverseNormal3D:{get:function(){return eve(this),this._inverseNormal3D}},entireFrustum:{get:function(){return this._entireFrustum}},currentFrustum:{get:function(){return this._currentFrustum}},frustumPlanes:{get:function(){return this._frustumPlanes}},farDepthFromNearPlusOne:{get:function(){return this._farDepthFromNearPlusOne}},log2FarDepthFromNearPlusOne:{get:function(){return this._log2FarDepthFromNearPlusOne}},oneOverLog2FarDepthFromNearPlusOne:{get:function(){return this._oneOverLog2FarDepthFromNearPlusOne}},eyeHeight:{get:function(){return this._eyeHeight}},eyeHeight2D:{get:function(){return this._eyeHeight2D}},sunPositionWC:{get:function(){return this._sunPositionWC}},sunPositionColumbusView:{get:function(){return this._sunPositionColumbusView}},sunDirectionWC:{get:function(){return this._sunDirectionWC}},sunDirectionEC:{get:function(){return this._sunDirectionEC}},moonDirectionEC:{get:function(){return this._moonDirectionEC}},lightDirectionWC:{get:function(){return this._lightDirectionWC}},lightDirectionEC:{get:function(){return this._lightDirectionEC}},lightColor:{get:function(){return this._lightColor}},lightColorHdr:{get:function(){return this._lightColorHdr}},encodedCameraPositionMCHigh:{get:function(){return kQ(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return kQ(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},pixelRatio:{get:function(){return this._pixelRatio}},fogDensity:{get:function(){return this._fogDensity}},geometricToleranceOverMeter:{get:function(){return this._geometricToleranceOverMeter}},pass:{get:function(){return this._pass}},backgroundColor:{get:function(){return this._backgroundColor}},brdfLut:{get:function(){return this._brdfLut}},environmentMap:{get:function(){return this._environmentMap}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps}},specularEnvironmentMapsDimensions:{get:function(){return this._specularEnvironmentMapsDimensions}},specularEnvironmentMapsMaximumLOD:{get:function(){return this._specularEnvironmentMapsMaximumLOD}},splitPosition:{get:function(){return this._splitPosition}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance}},invertClassificationColor:{get:function(){return this._invertClassificationColor}},orthographicIn3D:{get:function(){return this._orthographicIn3D}},ellipsoid:{get:function(){return y(this._ellipsoid,re.WGS84)}}});function PSe(e,t){N.clone(t,e._view),N.getMatrix3(t,e._viewRotation),e._view3DDirty=!0,e._inverseView3DDirty=!0,e._modelViewDirty=!0,e._modelView3DDirty=!0,e._modelViewRelativeToEyeDirty=!0,e._inverseModelViewDirty=!0,e._inverseModelView3DDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0,e._modelViewInfiniteProjectionDirty=!0,e._normalDirty=!0,e._inverseNormalDirty=!0,e._normal3DDirty=!0,e._inverseNormal3DDirty=!0}function OSe(e,t){N.clone(t,e._inverseView),N.getMatrix3(t,e._inverseViewRotation)}function MSe(e,t){N.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function RSe(e,t){N.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}function BSe(e,t){h.clone(t.positionWC,e._cameraPosition),h.clone(t.directionWC,e._cameraDirection),h.clone(t.rightWC,e._cameraRight),h.clone(t.upWC,e._cameraUp);let n=t.positionCartographic;u(n)?e._eyeHeight=n.height:e._eyeHeight=-e._ellipsoid.maximumRadius,e._encodedCameraPositionMCDirty=!0}var rI=new Q,LSe=new me;function NSe(e,t){u(Mt.computeIcrfToFixedMatrix(t.time,rI))||(rI=Mt.computeTemeToPseudoFixedMatrix(t.time,rI));let n=ag.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);Q.multiplyByVector(rI,n,n),h.normalize(n,e._sunDirectionWC),n=Q.multiplyByVector(e.viewRotation3D,n,e._sunDirectionEC),h.normalize(n,n),n=ag.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),Q.multiplyByVector(rI,n,n),Q.multiplyByVector(e.viewRotation3D,n,n),h.normalize(n,n);let i=t.mapProjection,o=i.ellipsoid.cartesianToCartographic(e._sunPositionWC,LSe);i.project(o,e._sunPositionColumbusView)}uT.prototype.updateCamera=function(e){PSe(this,e.viewMatrix),OSe(this,e.inverseViewMatrix),BSe(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==ne.SCENE2D&&e.frustum instanceof en};uT.prototype.updateFrustum=function(e){MSe(this,e.projectionMatrix),u(e.infiniteProjectionMatrix)&&RSe(this,e.infiniteProjectionMatrix),this._currentFrustum.x=e.near,this._currentFrustum.y=e.far,this._farDepthFromNearPlusOne=e.far-e.near+1,this._log2FarDepthFromNearPlusOne=P.log2(this._farDepthFromNearPlusOne),this._oneOverLog2FarDepthFromNearPlusOne=1/this._log2FarDepthFromNearPlusOne;let t=e.offCenterFrustum;u(t)&&(e=t),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right};uT.prototype.updatePass=function(e){this._pass=e};var FSe=[],USe=new op;uT.prototype.update=function(e){this._mode=e.mode,this._mapProjection=e.mapProjection,this._ellipsoid=e.mapProjection.ellipsoid,this._pixelRatio=e.pixelRatio;let t=e.camera;this.updateCamera(t),e.mode===ne.SCENE2D?(this._frustum2DWidth=t.frustum.right-t.frustum.left,this._eyeHeight2D.x=this._frustum2DWidth*.5,this._eyeHeight2D.y=this._eyeHeight2D.x*this._eyeHeight2D.x):(this._frustum2DWidth=0,this._eyeHeight2D.x=0,this._eyeHeight2D.y=0),NSe(this,e);let n=y(e.light,USe);n instanceof op?(this._lightDirectionWC=h.clone(this._sunDirectionWC,this._lightDirectionWC),this._lightDirectionEC=h.clone(this._sunDirectionEC,this._lightDirectionEC)):(this._lightDirectionWC=h.normalize(h.negate(n.direction,this._lightDirectionWC),this._lightDirectionWC),this._lightDirectionEC=Q.multiplyByVector(this.viewRotation3D,this._lightDirectionWC,this._lightDirectionEC));let i=n.color,r=h.fromElements(i.red,i.green,i.blue,this._lightColorHdr);r=h.multiplyByScalar(r,n.intensity,r);let o=h.maximumComponent(r);o>1?h.divideByScalar(r,o,this._lightColor):h.clone(r,this._lightColor);let s=e.brdfLutGenerator,a=u(s)?s.colorTexture:void 0;this._brdfLut=a,this._environmentMap=y(e.environmentMap,e.context.defaultCubeMap),this._sphericalHarmonicCoefficients=y(e.sphericalHarmonicCoefficients,FSe),this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,u(this._specularEnvironmentMaps)&&H.clone(this._specularEnvironmentMaps.dimensions,this._specularEnvironmentMapsDimensions),this._fogDensity=e.fog.density,this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=Mt.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._splitPosition=e.splitPosition*e.context.drawingBufferWidth;let c=t.frustum.fov,l=this._viewport,f;u(c)?l.height>l.width?f=Math.tan(.5*c)*2/l.height:f=Math.tan(.5*c)*2/l.width:f=1/Math.max(l.width,l.height),this._geometricToleranceOverMeter=f*e.maximumScreenSpaceError,z.clone(e.backgroundColor,this._backgroundColor),this._minimumDisableDepthTestDistance=e.minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance*=this._minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance===Number.POSITIVE_INFINITY&&(this._minimumDisableDepthTestDistance=-1)};function UQ(e){if(e._viewportDirty){let t=e._viewport;N.computeOrthographicOffCenter(t.x,t.x+t.width,t.y,t.y+t.height,0,1,e._viewportOrthographicMatrix),N.computeViewportTransformation(t,0,1,e._viewportTransformation),e._viewportDirty=!1}}function VSe(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode!==ne.SCENE2D&&e._mode!==ne.MORPHING&&!e._orthographicIn3D?N.inverse(e._projection,e._inverseProjection):N.clone(N.ZERO,e._inverseProjection))}function kSe(e){e._modelViewDirty&&(e._modelViewDirty=!1,N.multiplyTransformation(e._view,e._model,e._modelView))}function zSe(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,N.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function HSe(e){e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,N.inverse(e.modelView,e._inverseModelView))}function GSe(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,N.inverse(e.modelView3D,e._inverseModelView3D))}function WSe(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,N.multiply(e._projection,e._view,e._viewProjection))}function jSe(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,N.inverse(e.viewProjection,e._inverseViewProjection))}function qSe(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,N.multiply(e._projection,e.modelView,e._modelViewProjection))}function YSe(e){if(e._modelViewRelativeToEyeDirty){e._modelViewRelativeToEyeDirty=!1;let t=e.modelView,n=e._modelViewRelativeToEye;n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=0,n[13]=0,n[14]=0,n[15]=t[15]}}function XSe(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,N.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function KSe(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,N.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function JSe(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,N.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function ZSe(e){if(e._normalDirty){e._normalDirty=!1;let t=e._normal;N.getMatrix3(e.inverseModelView,t),Q.getRotation(t,t),Q.transpose(t,t)}}function QSe(e){if(e._normal3DDirty){e._normal3DDirty=!1;let t=e._normal3D;N.getMatrix3(e.inverseModelView3D,t),Q.getRotation(t,t),Q.transpose(t,t)}}function $Se(e){e._inverseNormalDirty&&(e._inverseNormalDirty=!1,N.getMatrix3(e.inverseModelView,e._inverseNormal),Q.getRotation(e._inverseNormal,e._inverseNormal))}function eve(e){e._inverseNormal3DDirty&&(e._inverseNormal3DDirty=!1,N.getMatrix3(e.inverseModelView3D,e._inverseNormal3D),Q.getRotation(e._inverseNormal3D,e._inverseNormal3D))}var VQ=new h;function kQ(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,N.multiplyByPoint(e.inverseModel,e._cameraPosition,VQ),jn.fromCartesian(VQ,e._encodedCameraPositionMC))}var tve=new h,nve=new h,ive=new h,rve=new h,ove=new me,sve=new h,ave=new N;function cve(e,t,n,i,r,o,s,a){let c=tve;c.x=e.y,c.y=e.z,c.z=e.x;let l=nve;l.x=n.y,l.y=n.z,l.z=n.x;let f=ive;f.x=i.y,f.y=i.z,f.z=i.x;let d=rve;d.x=t.y,d.y=t.z,d.z=t.x,o===ne.SCENE2D&&(c.z=r*.5);let p=s.unproject(c,ove);p.longitude=P.clamp(p.longitude,-Math.PI,Math.PI),p.latitude=P.clamp(p.latitude,-P.PI_OVER_TWO,P.PI_OVER_TWO);let g=s.ellipsoid,m=g.cartographicToCartesian(p,sve),A=Mt.eastNorthUpToFixedFrame(m,g,ave);return N.multiplyByPointAsVector(A,l,l),N.multiplyByPointAsVector(A,f,f),N.multiplyByPointAsVector(A,d,d),u(a)||(a=new N),a[0]=l.x,a[1]=f.x,a[2]=-d.x,a[3]=0,a[4]=l.y,a[5]=f.y,a[6]=-d.y,a[7]=0,a[8]=l.z,a[9]=f.z,a[10]=-d.z,a[11]=0,a[12]=-h.dot(l,m),a[13]=-h.dot(f,m),a[14]=h.dot(d,m),a[15]=1,a}function $G(e){e._view3DDirty&&(e._mode===ne.SCENE3D?N.clone(e._view,e._view3D):cve(e._cameraPosition,e._cameraDirection,e._cameraRight,e._cameraUp,e._frustum2DWidth,e._mode,e._mapProjection,e._view3D),N.getMatrix3(e._view3D,e._viewRotation3D),e._view3DDirty=!1)}function zQ(e){e._inverseView3DDirty&&(N.inverseTransformation(e.view3D,e._inverseView3D),N.getMatrix3(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}var oI=uT;function lve(e,t,n,i){let r=u(t.vertexBuffer),o=u(t.value),s=t.value?t.value.length:t.componentsPerAttribute,a={index:y(t.index,n),enabled:y(t.enabled,!0),vertexBuffer:t.vertexBuffer,value:o?t.value.slice(0):void 0,componentsPerAttribute:s,componentDatatype:y(t.componentDatatype,X.FLOAT),normalize:y(t.normalize,!1),offsetInBytes:y(t.offsetInBytes,0),strideInBytes:y(t.strideInBytes,0),instanceDivisor:y(t.instanceDivisor,0)};if(r)a.vertexAttrib=function(c){let l=this.index;c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer._getBuffer()),c.vertexAttribPointer(l,this.componentsPerAttribute,this.componentDatatype,this.normalize,this.strideInBytes,this.offsetInBytes),c.enableVertexAttribArray(l),this.instanceDivisor>0&&(i.glVertexAttribDivisor(l,this.instanceDivisor),i._vertexAttribDivisors[l]=this.instanceDivisor,i._previousDrawInstanced=!0)},a.disableVertexAttribArray=function(c){c.disableVertexAttribArray(this.index),this.instanceDivisor>0&&i.glVertexAttribDivisor(n,0)};else{switch(a.componentsPerAttribute){case 1:a.vertexAttrib=function(c){c.vertexAttrib1fv(this.index,this.value)};break;case 2:a.vertexAttrib=function(c){c.vertexAttrib2fv(this.index,this.value)};break;case 3:a.vertexAttrib=function(c){c.vertexAttrib3fv(this.index,this.value)};break;case 4:a.vertexAttrib=function(c){c.vertexAttrib4fv(this.index,this.value)};break}a.disableVertexAttribArray=function(c){}}e.push(a)}function GQ(e,t,n){for(let i=0;i<t.length;++i){let r=t[i];r.enabled&&r.vertexAttrib(e)}u(n)&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n._getBuffer())}function sp(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,i=e.attributes,r=e.indexBuffer,o,s=[],a=1,c=!1,l=!1,f=i.length;for(o=0;o<f;++o)lve(s,i[o],o,t);for(f=s.length,o=0;o<f;++o){let p=s[o];if(u(p.vertexBuffer)&&p.instanceDivisor===0){let g=p.strideInBytes||p.componentsPerAttribute*X.getSizeInBytes(p.componentDatatype);a=p.vertexBuffer.sizeInBytes/g;break}}for(o=0;o<f;++o)s[o].instanceDivisor>0&&(c=!0),u(s[o].value)&&(l=!0);let d;t.vertexArrayObject&&(d=t.glCreateVertexArray(),t.glBindVertexArray(d),GQ(n,s,r),t.glBindVertexArray(null)),this._numberOfVertices=a,this._hasInstancedAttributes=c,this._hasConstantAttributes=l,this._context=t,this._gl=n,this._vao=d,this._attributes=s,this._indexBuffer=r}function HQ(e){return e.values.length/e.componentsPerAttribute}function uve(e){return X.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function fve(e){let t,n,i,r=[];for(n in e)e.hasOwnProperty(n)&&u(e[n])&&u(e[n].values)&&(r.push(n),e[n].componentDatatype===X.DOUBLE&&(e[n].componentDatatype=X.FLOAT,e[n].values=X.createTypedArray(X.FLOAT,e[n].values)));let o,s=r.length;if(s>0)for(o=HQ(e[r[0]]),t=1;t<s;++t){let l=HQ(e[r[t]]);if(l!==o)throw new de(`Each attribute list must have the same number of vertices. Attribute ${r[t]} has a different number of vertices (${l.toString()}) than attribute ${r[0]} (${o.toString()}).`)}r.sort(function(l,f){return X.getSizeInBytes(e[f].componentDatatype)-X.getSizeInBytes(e[l].componentDatatype)});let a=0,c={};for(t=0;t<s;++t)n=r[t],i=e[n],c[n]=a,a+=uve(i);if(a>0){let l=X.getSizeInBytes(e[r[0]].componentDatatype),f=a%l;f!==0&&(a+=l-f);let d=o*a,p=new ArrayBuffer(d),g={};for(t=0;t<s;++t){n=r[t];let m=X.getSizeInBytes(e[n].componentDatatype);g[n]={pointer:X.createTypedArray(e[n].componentDatatype,p),index:c[n]/m,strideInComponentType:a/m}}for(t=0;t<o;++t)for(let m=0;m<s;++m){n=r[m],i=e[n];let A=i.values,x=g[n],C=x.pointer,T=i.componentsPerAttribute;for(let E=0;E<T;++E)C[x.index+E]=A[t*T+E];x.index+=x.strideInComponentType}return{buffer:p,offsetsInBytes:c,vertexSizeInBytes:a}}}sp.fromGeometry=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=y(e.geometry,y.EMPTY_OBJECT),i=y(e.bufferUsage,Fe.DYNAMIC_DRAW),r=y(e.attributeLocations,y.EMPTY_OBJECT),o=y(e.interleave,!1),s=e.vertexArrayAttributes,a,c,l,f=u(s)?s:[],d=n.attributes;if(o){let m=fve(d);if(u(m)){l=ht.createVertexBuffer({context:t,typedArray:m.buffer,usage:i});let A=m.offsetsInBytes,x=m.vertexSizeInBytes;for(a in d)d.hasOwnProperty(a)&&u(d[a])&&(c=d[a],u(c.values)?f.push({index:r[a],vertexBuffer:l,componentDatatype:c.componentDatatype,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize,offsetInBytes:A[a],strideInBytes:x}):f.push({index:r[a],value:c.value,componentDatatype:c.componentDatatype,normalize:c.normalize}))}}else for(a in d)if(d.hasOwnProperty(a)&&u(d[a])){c=d[a];let m=c.componentDatatype;m===X.DOUBLE&&(m=X.FLOAT),l=void 0,u(c.values)&&(l=ht.createVertexBuffer({context:t,typedArray:X.createTypedArray(m,c.values),usage:i})),f.push({index:r[a],vertexBuffer:l,value:c.value,componentDatatype:m,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize})}let p,g=n.indices;return u(g)&&(ut.computeNumberOfVertices(n)>=P.SIXTY_FOUR_KILOBYTES&&t.elementIndexUint?p=ht.createIndexBuffer({context:t,typedArray:new Uint32Array(g),usage:i,indexDatatype:Ue.UNSIGNED_INT}):p=ht.createIndexBuffer({context:t,typedArray:new Uint16Array(g),usage:i,indexDatatype:Ue.UNSIGNED_SHORT})),new sp({context:t,attributes:f,indexBuffer:p})};Object.defineProperties(sp.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}});sp.prototype.getAttribute=function(e){return this._attributes[e]};function dve(e){let t=e._context,n=e._hasInstancedAttributes;if(!n&&!t._previousDrawInstanced)return;t._previousDrawInstanced=n;let i=t._vertexAttribDivisors,r=e._attributes,o=zt.maximumVertexAttributes,s;if(n){let a=r.length;for(s=0;s<a;++s){let c=r[s];if(c.enabled){let l=c.instanceDivisor,f=c.index;l!==i[f]&&(t.glVertexAttribDivisor(f,l),i[f]=l)}}}else for(s=0;s<o;++s)i[s]>0&&(t.glVertexAttribDivisor(s,0),i[s]=0)}function hve(e,t){let n=e._attributes,i=n.length;for(let r=0;r<i;++r){let o=n[r];o.enabled&&u(o.value)&&o.vertexAttrib(t)}}sp.prototype._bind=function(){u(this._vao)?(this._context.glBindVertexArray(this._vao),this._context.instancedArrays&&dve(this),this._hasConstantAttributes&&hve(this,this._gl)):GQ(this._gl,this._attributes,this._indexBuffer)};sp.prototype._unBind=function(){if(u(this._vao))this._context.glBindVertexArray(null);else{let e=this._attributes,t=this._gl;for(let n=0;n<e.length;++n){let i=e[n];i.enabled&&i.disableVertexAttribArray(t)}this._indexBuffer&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)}};sp.prototype.isDestroyed=function(){return!1};sp.prototype.destroy=function(){let e=this._attributes;for(let n=0;n<e.length;++n){let i=e[n].vertexBuffer;u(i)&&!i.isDestroyed()&&i.vertexArrayDestroyable&&i.destroy()}let t=this._indexBuffer;return u(t)&&!t.isDestroyed()&&t.vertexArrayDestroyable&&t.destroy(),u(this._vao)&&this._context.glDeleteVertexArray(this._vao),ue(this)};var oi=sp;function Jl(e,t){let{getWebGLStub:n,requestWebgl1:i,webgl:r={},allowTextureFilterAnisotropic:o=!0}=y(t,{});r.alpha=y(r.alpha,!1),r.stencil=y(r.stencil,!0),r.powerPreference=y(r.powerPreference,"high-performance");let s=u(n)?n(e,r):mve(e,r,i),c=typeof WebGL2RenderingContext<"u"&&s instanceof WebGL2RenderingContext;this._canvas=e,this._originalGLContext=s,this._gl=s,this._webgl2=c,this._id=Wn(),this.validateFramebuffer=!1,this.validateShaderProgram=!1,this.logShaderCompilation=!1,this._throwOnWebGLError=!1,this._shaderCache=new eI(this),this._textureCache=new tI;let l=s;this._stencilBits=l.getParameter(l.STENCIL_BITS),zt._maximumCombinedTextureImageUnits=l.getParameter(l.MAX_COMBINED_TEXTURE_IMAGE_UNITS),zt._maximumCubeMapSize=l.getParameter(l.MAX_CUBE_MAP_TEXTURE_SIZE),zt._maximumFragmentUniformVectors=l.getParameter(l.MAX_FRAGMENT_UNIFORM_VECTORS),zt._maximumTextureImageUnits=l.getParameter(l.MAX_TEXTURE_IMAGE_UNITS),zt._maximumRenderbufferSize=l.getParameter(l.MAX_RENDERBUFFER_SIZE),zt._maximumTextureSize=l.getParameter(l.MAX_TEXTURE_SIZE),zt._maximumVaryingVectors=l.getParameter(l.MAX_VARYING_VECTORS),zt._maximumVertexAttributes=l.getParameter(l.MAX_VERTEX_ATTRIBS),zt._maximumVertexTextureImageUnits=l.getParameter(l.MAX_VERTEX_TEXTURE_IMAGE_UNITS),zt._maximumVertexUniformVectors=l.getParameter(l.MAX_VERTEX_UNIFORM_VECTORS),zt._maximumSamples=this._webgl2?l.getParameter(l.MAX_SAMPLES):0;let f=l.getParameter(l.ALIASED_LINE_WIDTH_RANGE);zt._minimumAliasedLineWidth=f[0],zt._maximumAliasedLineWidth=f[1];let d=l.getParameter(l.ALIASED_POINT_SIZE_RANGE);zt._minimumAliasedPointSize=d[0],zt._maximumAliasedPointSize=d[1];let p=l.getParameter(l.MAX_VIEWPORT_DIMS);zt._maximumViewportWidth=p[0],zt._maximumViewportHeight=p[1];let g=l.getShaderPrecisionFormat(l.FRAGMENT_SHADER,l.HIGH_FLOAT);zt._highpFloatSupported=g.precision!==0;let m=l.getShaderPrecisionFormat(l.FRAGMENT_SHADER,l.HIGH_INT);zt._highpIntSupported=m.rangeMax!==0,this._antialias=l.getContextAttributes().antialias,this._standardDerivatives=!!vo(l,["OES_standard_derivatives"]),this._blendMinmax=!!vo(l,["EXT_blend_minmax"]),this._elementIndexUint=!!vo(l,["OES_element_index_uint"]),this._depthTexture=!!vo(l,["WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"]),this._fragDepth=!!vo(l,["EXT_frag_depth"]),this._debugShaders=vo(l,["WEBGL_debug_shaders"]),this._textureFloat=!!vo(l,["OES_texture_float"]),this._textureHalfFloat=!!vo(l,["OES_texture_half_float"]),this._textureFloatLinear=!!vo(l,["OES_texture_float_linear"]),this._textureHalfFloatLinear=!!vo(l,["OES_texture_half_float_linear"]),this._colorBufferFloat=!!vo(l,["EXT_color_buffer_float","WEBGL_color_buffer_float"]),this._floatBlend=!!vo(l,["EXT_float_blend"]),this._colorBufferHalfFloat=!!vo(l,["EXT_color_buffer_half_float"]),this._s3tc=!!vo(l,["WEBGL_compressed_texture_s3tc","MOZ_WEBGL_compressed_texture_s3tc","WEBKIT_WEBGL_compressed_texture_s3tc"]),this._pvrtc=!!vo(l,["WEBGL_compressed_texture_pvrtc","WEBKIT_WEBGL_compressed_texture_pvrtc"]),this._astc=!!vo(l,["WEBGL_compressed_texture_astc"]),this._etc=!!vo(l,["WEBG_compressed_texture_etc"]),this._etc1=!!vo(l,["WEBGL_compressed_texture_etc1"]),this._bc7=!!vo(l,["EXT_texture_compression_bptc"]),cl.setKTX2SupportedFormats(this._s3tc,this._pvrtc,this._astc,this._etc,this._etc1,this._bc7);let A=o?vo(l,["EXT_texture_filter_anisotropic","WEBKIT_EXT_texture_filter_anisotropic"]):void 0;this._textureFilterAnisotropic=A,zt._maximumTextureFilterAnisotropy=u(A)?l.getParameter(A.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1;let x,C,T,E,S,v,D,M,O,B;if(c){let w=this;x=function(){return w._gl.createVertexArray()},C=function(I){w._gl.bindVertexArray(I)},T=function(I){w._gl.deleteVertexArray(I)},E=function(I,R,F,k,V){l.drawElementsInstanced(I,R,F,k,V)},S=function(I,R,F,k){l.drawArraysInstanced(I,R,F,k)},v=function(I,R){l.vertexAttribDivisor(I,R)},D=function(I){l.drawBuffers(I)}}else M=vo(l,["OES_vertex_array_object"]),u(M)&&(x=function(){return M.createVertexArrayOES()},C=function(w){M.bindVertexArrayOES(w)},T=function(w){M.deleteVertexArrayOES(w)}),O=vo(l,["ANGLE_instanced_arrays"]),u(O)&&(E=function(w,I,R,F,k){O.drawElementsInstancedANGLE(w,I,R,F,k)},S=function(w,I,R,F){O.drawArraysInstancedANGLE(w,I,R,F)},v=function(w,I){O.vertexAttribDivisorANGLE(w,I)}),B=vo(l,["WEBGL_draw_buffers"]),u(B)&&(D=function(w){B.drawBuffersWEBGL(w)});this.glCreateVertexArray=x,this.glBindVertexArray=C,this.glDeleteVertexArray=T,this.glDrawElementsInstanced=E,this.glDrawArraysInstanced=S,this.glVertexAttribDivisor=v,this.glDrawBuffers=D,this._vertexArrayObject=!!M,this._instancedArrays=!!O,this._drawBuffers=!!B,zt._maximumDrawBuffers=this.drawBuffers?l.getParameter(te.MAX_DRAW_BUFFERS):1,zt._maximumColorAttachments=this.drawBuffers?l.getParameter(te.MAX_COLOR_ATTACHMENTS):1,this._clearColor=new z(0,0,0,0),this._clearDepth=1,this._clearStencil=0;let L=new oI,_=new Ha(this),b=Ve.fromCache();this._defaultPassState=_,this._defaultRenderState=b,this._defaultTexture=void 0,this._defaultEmissiveTexture=void 0,this._defaultNormalTexture=void 0,this._defaultCubeMap=void 0,this._us=L,this._currentRenderState=b,this._currentPassState=_,this._currentFramebuffer=void 0,this._maxFrameTextureUnitIndex=0,this._vertexAttribDivisors=[],this._previousDrawInstanced=!1;for(let w=0;w<zt._maximumVertexAttributes;w++)this._vertexAttribDivisors.push(0);this._pickObjects={},this._nextPickColor=new Uint32Array(1),this.options={getWebGLStub:n,requestWebgl1:i,webgl:r,allowTextureFilterAnisotropic:o},this.cache={},Ve.apply(l,b,_)}function mve(e,t,n){if(typeof WebGLRenderingContext>"u")throw new de("The browser does not support WebGL. Visit http://get.webgl.org.");!n&&!(typeof WebGL2RenderingContext<"u")&&(n=!0);let r=n?"webgl":"webgl2",o=e.getContext(r,t);if(!u(o))throw new de("The browser supports WebGL, but initialization failed.");return o}function pve(e,t){let n="WebGL Error: ";switch(t){case e.INVALID_ENUM:n+="INVALID_ENUM";break;case e.INVALID_VALUE:n+="INVALID_VALUE";break;case e.INVALID_OPERATION:n+="INVALID_OPERATION";break;case e.OUT_OF_MEMORY:n+="OUT_OF_MEMORY";break;case e.CONTEXT_LOST_WEBGL:n+="CONTEXT_LOST_WEBGL lost";break;default:n+=`Unknown (${t})`}return n}function _ve(e,t,n,i){let r=`${pve(e,i)}: ${t.name}(`;for(let o=0;o<n.length;++o)o!==0&&(r+=", "),r+=n[o];return r+=");",r}function gve(e,t,n){let i=e.getError();if(i!==e.NO_ERROR)throw new de(_ve(e,t,n,i))}function yve(e,t,n){return{get:function(){let i=e[t];return n(e,`get: ${t}`,i),e[t]},set:function(i){e[t]=i,n(e,`set: ${t}`,i)}}}function Ave(e,t){if(!u(t))return e;function n(r){return function(){let o=r.apply(e,arguments);return t(e,r,arguments),o}}let i={};for(let r in e){let o=e[r];o instanceof Function?i[r]=n(o):Object.defineProperty(i,r,yve(e,r,t))}return i}function vo(e,t){let n=t.length;for(let i=0;i<n;++i){let r=e.getExtension(t[i]);if(r)return r}}var xve={};Object.defineProperties(Jl.prototype,{id:{get:function(){return this._id}},webgl2:{get:function(){return this._webgl2}},canvas:{get:function(){return this._canvas}},shaderCache:{get:function(){return this._shaderCache}},textureCache:{get:function(){return this._textureCache}},uniformState:{get:function(){return this._us}},stencilBits:{get:function(){return this._stencilBits}},stencilBuffer:{get:function(){return this._stencilBits>=8}},antialias:{get:function(){return this._antialias}},msaa:{get:function(){return this._webgl2}},standardDerivatives:{get:function(){return this._standardDerivatives||this._webgl2}},floatBlend:{get:function(){return this._floatBlend}},blendMinmax:{get:function(){return this._blendMinmax||this._webgl2}},elementIndexUint:{get:function(){return this._elementIndexUint||this._webgl2}},depthTexture:{get:function(){return this._depthTexture||this._webgl2}},floatingPointTexture:{get:function(){return this._webgl2||this._textureFloat}},halfFloatingPointTexture:{get:function(){return this._webgl2||this._textureHalfFloat}},textureFloatLinear:{get:function(){return this._textureFloatLinear}},textureHalfFloatLinear:{get:function(){return this._webgl2&&this._textureFloatLinear||!this._webgl2&&this._textureHalfFloatLinear}},textureFilterAnisotropic:{get:function(){return!!this._textureFilterAnisotropic}},s3tc:{get:function(){return this._s3tc}},pvrtc:{get:function(){return this._pvrtc}},astc:{get:function(){return this._astc}},etc:{get:function(){return this._etc}},etc1:{get:function(){return this._etc1}},bc7:{get:function(){return this._bc7}},supportsBasis:{get:function(){return this._s3tc||this._pvrtc||this._astc||this._etc||this._etc1||this._bc7}},vertexArrayObject:{get:function(){return this._vertexArrayObject||this._webgl2}},fragmentDepth:{get:function(){return this._fragDepth||this._webgl2}},instancedArrays:{get:function(){return this._instancedArrays||this._webgl2}},colorBufferFloat:{get:function(){return this._colorBufferFloat}},colorBufferHalfFloat:{get:function(){return this._webgl2&&this._colorBufferFloat||!this._webgl2&&this._colorBufferHalfFloat}},drawBuffers:{get:function(){return this._drawBuffers||this._webgl2}},debugShaders:{get:function(){return this._debugShaders}},throwOnWebGLError:{get:function(){return this._throwOnWebGLError},set:function(e){this._throwOnWebGLError=e,this._gl=Ave(this._originalGLContext,e?gve:void 0)}},defaultTexture:{get:function(){return this._defaultTexture===void 0&&(this._defaultTexture=new Rt({context:this,source:{width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])},flipY:!1})),this._defaultTexture}},defaultEmissiveTexture:{get:function(){return this._defaultEmissiveTexture===void 0&&(this._defaultEmissiveTexture=new Rt({context:this,pixelFormat:at.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([0,0,0])},flipY:!1})),this._defaultEmissiveTexture}},defaultNormalTexture:{get:function(){return this._defaultNormalTexture===void 0&&(this._defaultNormalTexture=new Rt({context:this,pixelFormat:at.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([128,128,255])},flipY:!1})),this._defaultNormalTexture}},defaultCubeMap:{get:function(){if(this._defaultCubeMap===void 0){let e={width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])};this._defaultCubeMap=new za({context:this,source:{positiveX:e,negativeX:e,positiveY:e,negativeY:e,positiveZ:e,negativeZ:e},flipY:!1})}return this._defaultCubeMap}},drawingBufferHeight:{get:function(){return this._gl.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._gl.drawingBufferWidth}},defaultFramebuffer:{get:function(){return xve}}});function WQ(e,t,n,i){let r=e._currentRenderState,o=e._currentPassState;e._currentRenderState=t,e._currentPassState=n,Ve.partialApply(e._gl,r,t,o,n,i)}var e8;typeof WebGLRenderingContext<"u"&&(e8=[te.BACK]);function t8(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;let n=e8;if(u(t))t._bind(),n=t._getActiveColorAttachments();else{let i=e._gl;i.bindFramebuffer(i.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(n)}}var Cve=new ri;Jl.prototype.clear=function(e,t){e=y(e,Cve),t=y(t,this._defaultPassState);let n=this._gl,i=0,r=e.color,o=e.depth,s=e.stencil;u(r)&&(z.equals(this._clearColor,r)||(z.clone(r,this._clearColor),n.clearColor(r.red,r.green,r.blue,r.alpha)),i|=n.COLOR_BUFFER_BIT),u(o)&&(o!==this._clearDepth&&(this._clearDepth=o,n.clearDepth(o)),i|=n.DEPTH_BUFFER_BIT),u(s)&&(s!==this._clearStencil&&(this._clearStencil=s,n.clearStencil(s)),i|=n.STENCIL_BUFFER_BIT);let a=y(e.renderState,this._defaultRenderState);WQ(this,a,t,!0);let c=y(e.framebuffer,t.framebuffer);t8(this,c),n.clear(i)};function Tve(e,t,n,i,r){t8(e,t),WQ(e,r,n,!1),i._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,i.maximumTextureUnitIndex)}function Eve(e,t,n,i){let r=t._primitiveType,o=t._vertexArray,s=t._offset,a=t._count,c=t.instanceCount;e._us.model=y(t._modelMatrix,N.IDENTITY),n._setUniforms(i,e._us,e.validateShaderProgram),o._bind();let l=o.indexBuffer;u(l)?(s=s*l.bytesPerIndex,a=y(a,l.numberOfIndices),c===0?e._gl.drawElements(r,a,l.indexDatatype,s):e.glDrawElementsInstanced(r,a,l.indexDatatype,s,c)):(a=y(a,o.numberOfVertices),c===0?e._gl.drawArrays(r,s,a):e.glDrawArraysInstanced(r,s,a,c)),o._unBind()}Jl.prototype.draw=function(e,t,n,i){t=y(t,this._defaultPassState);let r=y(e._framebuffer,t.framebuffer),o=y(e._renderState,this._defaultRenderState);n=y(n,e._shaderProgram),i=y(i,e._uniformMap),Tve(this,r,t,n,o),Eve(this,e,n,i)};Jl.prototype.endFrame=function(){let e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);let t=e8;this.drawBuffers&&this.glDrawBuffers(t);let n=this._maxFrameTextureUnitIndex;this._maxFrameTextureUnitIndex=0;for(let i=0;i<n;++i)e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,null),e.bindTexture(e.TEXTURE_CUBE_MAP,null)};Jl.prototype.readPixels=function(e){let t=this._gl;e=y(e,y.EMPTY_OBJECT);let n=Math.max(y(e.x,0),0),i=Math.max(y(e.y,0),0),r=y(e.width,t.drawingBufferWidth),o=y(e.height,t.drawingBufferHeight),s=e.framebuffer,a=Ke.UNSIGNED_BYTE;u(s)&&s.numberOfColorAttachments>0&&(a=s.getColorTexture(0).pixelDatatype);let c=at.createTypedArray(at.RGBA,a,r,o);return t8(this,s),t.readPixels(n,i,r,o,at.RGBA,Ke.toWebGLConstant(a,this),c),c};var jQ={position:0,textureCoordinates:1};Jl.prototype.getViewportQuadVertexArray=function(){let e=this.cache.viewportQuad_vertexArray;if(!u(e)){let t=new ut({attributes:{position:new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1]}),textureCoordinates:new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[0,0,1,0,1,1,0,1]})},indices:new Uint16Array([0,1,2,0,2,3]),primitiveType:Be.TRIANGLES});e=oi.fromGeometry({context:this,geometry:t,attributeLocations:jQ,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e};Jl.prototype.createViewportQuadCommand=function(e,t){return t=y(t,y.EMPTY_OBJECT),new nt({vertexArray:this.getViewportQuadVertexArray(),primitiveType:Be.TRIANGLES,renderState:t.renderState,shaderProgram:Xt.fromCache({context:this,vertexShaderSource:E0,fragmentShaderSource:e,attributeLocations:jQ}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})};Jl.prototype.getObjectByPickColor=function(e){return this._pickObjects[e.toRgba()]};function n8(e,t,n){this._pickObjects=e,this.key=t,this.color=n}Object.defineProperties(n8.prototype,{object:{get:function(){return this._pickObjects[this.key]},set:function(e){this._pickObjects[this.key]=e}}});n8.prototype.destroy=function(){delete this._pickObjects[this.key]};Jl.prototype.createPickId=function(e){++this._nextPickColor[0];let t=this._nextPickColor[0];if(t===0)throw new de("Out of unique Pick IDs.");return this._pickObjects[t]=e,new n8(this._pickObjects,t,z.fromRgba(t))};Jl.prototype.isDestroyed=function(){return!1};Jl.prototype.destroy=function(){let e=this.cache;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];u(n.destroy)&&n.destroy()}return this._shaderCache=this._shaderCache.destroy(),this._textureCache=this._textureCache.destroy(),this._defaultTexture=this._defaultTexture&&this._defaultTexture.destroy(),this._defaultEmissiveTexture=this._defaultEmissiveTexture&&this._defaultEmissiveTexture.destroy(),this._defaultNormalTexture=this._defaultNormalTexture&&this._defaultNormalTexture.destroy(),this._defaultCubeMap=this._defaultCubeMap&&this._defaultCubeMap.destroy(),ue(this)};Jl._deprecationWarning=$;var sI=Jl;function fT(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.width,i=e.height;this._width=n,this._height=i;let r=e.colorRenderbuffers,o=e.colorTextures;if(u(r)!==u(o))throw new fe("Both color renderbuffer and texture attachments must be provided.");let s=e.depthStencilRenderbuffer,a=e.depthStencilTexture;if(u(s)!==u(a))throw new fe("Both depth-stencil renderbuffer and texture attachments must be provided.");this._renderFramebuffer=new Gs({context:t,colorRenderbuffers:r,depthStencilRenderbuffer:s,destroyAttachments:e.destroyAttachments}),this._colorFramebuffer=new Gs({context:t,colorTextures:o,depthStencilTexture:a,destroyAttachments:e.destroyAttachments})}fT.prototype.getRenderFramebuffer=function(){return this._renderFramebuffer};fT.prototype.getColorFramebuffer=function(){return this._colorFramebuffer};fT.prototype.blitFramebuffers=function(e,t){this._renderFramebuffer.bindRead(),this._colorFramebuffer.bindDraw();let n=e._gl,i=0;this._colorFramebuffer._colorTextures.length>0&&(i|=n.COLOR_BUFFER_BIT),u(this._colorFramebuffer.depthStencilTexture)&&(i|=n.DEPTH_BUFFER_BIT|(t?n.STENCIL_BUFFER_BIT:0)),n.blitFramebuffer(0,0,this._width,this._height,0,0,this._width,this._height,i,n.NEAREST),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null)};fT.prototype.isDestroyed=function(){return!1};fT.prototype.destroy=function(){return this._renderFramebuffer.destroy(),this._colorFramebuffer.destroy(),ue(this)};var aI=fT;var ul={RGBA4:te.RGBA4,RGBA8:te.RGBA8,RGBA16F:te.RGBA16F,RGBA32F:te.RGBA32F,RGB5_A1:te.RGB5_A1,RGB565:te.RGB565,DEPTH_COMPONENT16:te.DEPTH_COMPONENT16,STENCIL_INDEX8:te.STENCIL_INDEX8,DEPTH_STENCIL:te.DEPTH_STENCIL,DEPTH24_STENCIL8:te.DEPTH24_STENCIL8,validate:function(e){return e===ul.RGBA4||e===ul.RGBA8||e===ul.RGBA16F||e===ul.RGBA32F||e===ul.RGB5_A1||e===ul.RGB565||e===ul.DEPTH_COMPONENT16||e===ul.STENCIL_INDEX8||e===ul.DEPTH_STENCIL||e===ul.DEPTH24_STENCIL8},getColorFormat:function(e){return e===te.FLOAT?ul.RGBA32F:e===te.HALF_FLOAT_OES?ul.RGBA16F:ul.RGBA8}},Ec=Object.freeze(ul);function cI(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=zt.maximumRenderbufferSize,r=y(e.format,Ec.RGBA4),o=u(e.width)?e.width:n.drawingBufferWidth,s=u(e.height)?e.height:n.drawingBufferHeight,a=y(e.numSamples,1);this._gl=n,this._format=r,this._width=o,this._height=s,this._renderbuffer=this._gl.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,this._renderbuffer),a>1?n.renderbufferStorageMultisample(n.RENDERBUFFER,a,r,o,s):n.renderbufferStorage(n.RENDERBUFFER,r,o,s),n.bindRenderbuffer(n.RENDERBUFFER,null)}Object.defineProperties(cI.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});cI.prototype._getRenderbuffer=function(){return this._renderbuffer};cI.prototype.isDestroyed=function(){return!1};cI.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),ue(this)};var Zl=cI;function as(e){e=y(e,y.EMPTY_OBJECT),this._numSamples=y(e.numSamples,1),this._colorAttachmentsLength=y(e.colorAttachmentsLength,1),this._color=y(e.color,!0),this._depth=y(e.depth,!1),this._depthStencil=y(e.depthStencil,!1),this._supportsDepthTexture=y(e.supportsDepthTexture,!1),this._createColorAttachments=y(e.createColorAttachments,!0),this._createDepthAttachments=y(e.createDepthAttachments,!0),this._pixelDatatype=e.pixelDatatype,this._pixelFormat=e.pixelFormat,this._width=void 0,this._height=void 0,this._framebuffer=void 0,this._multisampleFramebuffer=void 0,this._colorTextures=void 0,this._color&&(this._colorTextures=new Array(this._colorAttachmentsLength),this._colorRenderbuffers=new Array(this._colorAttachmentsLength)),this._colorRenderbuffer=void 0,this._depthStencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthRenderbuffer=void 0,this._depthTexture=void 0,this._attachmentsDirty=!1}Object.defineProperties(as.prototype,{framebuffer:{get:function(){return this._numSamples>1?this._multisampleFramebuffer.getRenderFramebuffer():this._framebuffer}},numSamples:{get:function(){return this._numSamples}},status:{get:function(){return this.framebuffer.status}}});as.prototype.isDirty=function(e,t,n,i,r){n=y(n,1);let o=this._width!==e||this._height!==t,s=this._numSamples!==n,a=u(i)&&this._pixelDatatype!==i||u(r)&&this._pixelFormat!==r,c=n===1?u(this._framebuffer):u(this._multisampleFramebuffer);return this._attachmentsDirty||o||s||a||!c||this._color&&!u(this._colorTextures[0])};as.prototype.update=function(e,t,n,i,r,o){if(i=e.msaa?y(i,1):1,r=y(r,this._color?y(this._pixelDatatype,Ke.UNSIGNED_BYTE):void 0),o=y(o,this._color?y(this._pixelFormat,at.RGBA):void 0),this.isDirty(t,n,i,r,o)){if(this.destroy(),this._width=t,this._height=n,this._numSamples=i,this._pixelDatatype=r,this._pixelFormat=o,this._attachmentsDirty=!1,this._color&&this._createColorAttachments){for(let s=0;s<this._colorAttachmentsLength;++s)if(this._colorTextures[s]=new Rt({context:e,width:t,height:n,pixelFormat:o,pixelDatatype:r,sampler:ln.NEAREST}),this._numSamples>1){let a=Ec.getColorFormat(r);this._colorRenderbuffers[s]=new Zl({context:e,width:t,height:n,format:a,numSamples:this._numSamples})}}this._depthStencil&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?(this._depthStencilTexture=new Rt({context:e,width:t,height:n,pixelFormat:at.DEPTH_STENCIL,pixelDatatype:Ke.UNSIGNED_INT_24_8,sampler:ln.NEAREST}),this._numSamples>1&&(this._depthStencilRenderbuffer=new Zl({context:e,width:t,height:n,format:Ec.DEPTH24_STENCIL8,numSamples:this._numSamples}))):this._depthStencilRenderbuffer=new Zl({context:e,width:t,height:n,format:Ec.DEPTH_STENCIL})),this._depth&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?this._depthTexture=new Rt({context:e,width:t,height:n,pixelFormat:at.DEPTH_COMPONENT,pixelDatatype:Ke.UNSIGNED_INT,sampler:ln.NEAREST}):this._depthRenderbuffer=new Zl({context:e,width:t,height:n,format:Ec.DEPTH_COMPONENT16})),this._numSamples>1?this._multisampleFramebuffer=new aI({context:e,width:this._width,height:this._height,colorTextures:this._colorTextures,colorRenderbuffers:this._colorRenderbuffers,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1}):this._framebuffer=new Gs({context:e,colorTextures:this._colorTextures,depthTexture:this._depthTexture,depthRenderbuffer:this._depthRenderbuffer,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1})}};as.prototype.getColorTexture=function(e){return e=y(e,0),this._colorTextures[e]};as.prototype.setColorTexture=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorTextures[t],this._colorTextures[t]=e};as.prototype.getColorRenderbuffer=function(e){return e=y(e,0),this._colorRenderbuffers[e]};as.prototype.setColorRenderbuffer=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorRenderbuffers[t],this._colorRenderbuffers[t]=e};as.prototype.getDepthRenderbuffer=function(){return this._depthRenderbuffer};as.prototype.setDepthRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthRenderbuffer,this._depthRenderbuffer=e};as.prototype.getDepthTexture=function(){return this._depthTexture};as.prototype.setDepthTexture=function(e){this._attachmentsDirty=e!==this._depthTexture,this._depthTexture=e};as.prototype.getDepthStencilRenderbuffer=function(){return this._depthStencilRenderbuffer};as.prototype.setDepthStencilRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthStencilRenderbuffer,this._depthStencilRenderbuffer=e};as.prototype.getDepthStencilTexture=function(){return this._depthStencilTexture};as.prototype.setDepthStencilTexture=function(e){this._attachmentsDirty=e!==this._depthStencilTexture,this._depthStencilTexture=e};as.prototype.prepareTextures=function(e,t){this._numSamples>1&&this._multisampleFramebuffer.blitFramebuffers(e,t)};as.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this.framebuffer,t.execute(e,n),t.framebuffer=i};as.prototype.destroyFramebuffer=function(){this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._multisampleFramebuffer=this._multisampleFramebuffer&&this._multisampleFramebuffer.destroy()};as.prototype.destroy=function(){if(this._color){let e,t=this._colorTextures.length;for(e=0;e<t;++e){let n=this._colorTextures[e];this._createColorAttachments&&u(n)&&!n.isDestroyed()&&(this._colorTextures[e].destroy(),this._colorTextures[e]=void 0),u(n)&&n.isDestroyed()&&(this._colorTextures[e]=void 0);let i=this._colorRenderbuffers[e];this._createColorAttachments&&u(i)&&!i.isDestroyed()&&(this._colorRenderbuffers[e].destroy(),this._colorRenderbuffers[e]=void 0),u(i)&&i.isDestroyed()&&(this._colorRenderbuffers[e]=void 0)}}this._depthStencil&&(this._createDepthAttachments&&(this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()),u(this._depthStencilTexture)&&this._depthStencilTexture.isDestroyed()&&(this._depthStencilTexture=void 0),u(this._depthStencilRenderbuffer)&&this._depthStencilRenderbuffer.isDestroyed()&&(this._depthStencilRenderbuffer=void 0)),this._depth&&(this._createDepthAttachments&&(this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy()),u(this._depthTexture)&&this._depthTexture.isDestroyed()&&(this._depthTexture=void 0),u(this._depthRenderbuffer)&&this._depthRenderbuffer.isDestroyed()&&(this._depthRenderbuffer=void 0)),this.destroyFramebuffer()};var di=as;var F0={VERTEX:0,FRAGMENT:1,BOTH:2};F0.includesVertexShader=function(e){return e===F0.VERTEX||e===F0.BOTH};F0.includesFragmentShader=function(e){return e===F0.FRAGMENT||e===F0.BOTH};var Te=Object.freeze(F0);function i8(e){this.name=e,this.fields=[]}i8.prototype.addField=function(e,t){let n=` ${e} ${t};`;this.fields.push(n)};i8.prototype.generateGlslLines=function(){let e=this.fields;return e.length===0&&(e=[" float _empty;"]),[].concat(`struct ${this.name}`,"{",e,"};")};var lI=i8;function r8(e){this.signature=e,this.body=[]}r8.prototype.addLines=function(e){let t=this.body;if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;i++)t.push(` ${e[i]}`)}else t.push(` ${e}`)};r8.prototype.generateGlslLines=function(){return[].concat(this.signature,"{",this.body,"}")};var uI=r8;function bc(){this._positionAttributeLine=void 0,this._nextAttributeLocation=1,this._attributeLocations={},this._attributeLines=[],this._structs={},this._functions={},this._vertexShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]},this._fragmentShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]}}Object.defineProperties(bc.prototype,{attributeLocations:{get:function(){return this._attributeLocations}}});bc.prototype.addDefine=function(e,t,n){n=y(n,Te.BOTH);let i=e;u(t)&&(i+=` ${t.toString()}`),Te.includesVertexShader(n)&&this._vertexShaderParts.defineLines.push(i),Te.includesFragmentShader(n)&&this._fragmentShaderParts.defineLines.push(i)};bc.prototype.addStruct=function(e,t,n){this._structs[e]=new lI(t),Te.includesVertexShader(n)&&this._vertexShaderParts.structIds.push(e),Te.includesFragmentShader(n)&&this._fragmentShaderParts.structIds.push(e)};bc.prototype.addStructField=function(e,t,n){this._structs[e].addField(t,n)};bc.prototype.addFunction=function(e,t,n){this._functions[e]=new uI(t),Te.includesVertexShader(n)&&this._vertexShaderParts.functionIds.push(e),Te.includesFragmentShader(n)&&this._fragmentShaderParts.functionIds.push(e)};bc.prototype.addFunctionLines=function(e,t){this._functions[e].addLines(t)};bc.prototype.addUniform=function(e,t,n){n=y(n,Te.BOTH);let i=`uniform ${e} ${t};`;Te.includesVertexShader(n)&&this._vertexShaderParts.uniformLines.push(i),Te.includesFragmentShader(n)&&this._fragmentShaderParts.uniformLines.push(i)};bc.prototype.setPositionAttribute=function(e,t){return this._positionAttributeLine=`in ${e} ${t};`,this._attributeLocations[t]=0,0};bc.prototype.addAttribute=function(e,t){let n=`in ${e} ${t};`;this._attributeLines.push(n);let i=this._nextAttributeLocation;return this._attributeLocations[t]=i,this._nextAttributeLocation+=Sve(e),i};bc.prototype.addVarying=function(e,t){let n=`${e} ${t};`;this._vertexShaderParts.varyingLines.push(`out ${n}`),this._fragmentShaderParts.varyingLines.push(`in ${n}`)};bc.prototype.addVertexLines=function(e){let t=this._vertexShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};bc.prototype.addFragmentLines=function(e){let t=this._fragmentShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};bc.prototype.buildShaderProgram=function(e){let t=u(this._positionAttributeLine)?[this._positionAttributeLine]:[],n=bve(this),i=vve(this),r=t.concat(this._attributeLines,this._vertexShaderParts.uniformLines,this._vertexShaderParts.varyingLines,n.vertexLines,i.vertexLines,this._vertexShaderParts.shaderLines).join(` +`),o=new ke({defines:this._vertexShaderParts.defineLines,sources:[r]}),s=this._fragmentShaderParts.uniformLines.concat(this._fragmentShaderParts.varyingLines,n.fragmentLines,i.fragmentLines,this._fragmentShaderParts.shaderLines).join(` +`),a=new ke({defines:this._fragmentShaderParts.defineLines,sources:[s]});return Xt.fromCache({context:e,vertexShaderSource:o,fragmentShaderSource:a,attributeLocations:this._attributeLocations})};bc.prototype.clone=function(){return We(this,!0)};function bve(e){let t=[],n=[],i,r=e._vertexShaderParts.structIds,o,s,a;for(i=0;i<r.length;i++)o=r[i],s=e._structs[o],a=s.generateGlslLines(),t.push.apply(t,a);for(r=e._fragmentShaderParts.structIds,i=0;i<r.length;i++)o=r[i],s=e._structs[o],a=s.generateGlslLines(),n.push.apply(n,a);return{vertexLines:t,fragmentLines:n}}function Sve(e){switch(e){case"mat2":return 2;case"mat3":return 3;case"mat4":return 4;default:return 1}}function vve(e){let t=[],n=[],i,r=e._vertexShaderParts.functionIds,o,s,a;for(i=0;i<r.length;i++)o=r[i],s=e._functions[o],a=s.generateGlslLines(),t.push.apply(t,a);for(r=e._fragmentShaderParts.functionIds,i=0;i<r.length;i++)o=r[i],s=e._functions[o],a=s.generateGlslLines(),n.push.apply(n,a);return{vertexLines:t,fragmentLines:n}}var U0=bc;function vs(e,t,n,i){let r=vs._verifyAttributes(t);n=y(n,0);let o=[],s={},a,c,l=r.length;for(let d=0;d<l;++d){let p=r[d];if(p.vertexBuffer){o.push(p);continue}c=p.usage,a=s[c],u(a)||(a=s[c]=[]),a.push(p)}function f(d,p){return X.getSizeInBytes(p.componentDatatype)-X.getSizeInBytes(d.componentDatatype)}this._allBuffers=[];for(c in s)if(s.hasOwnProperty(c)){a=s[c],a.sort(f);let d=vs._vertexSizeInBytes(a),p=a[0].usage,g={vertexSizeInBytes:d,vertexBuffer:void 0,usage:p,needsCommit:!1,arrayBuffer:void 0,arrayViews:vs._createArrayViews(a,d)};this._allBuffers.push(g)}this._size=0,this._instanced=y(i,!1),this._precreated=o,this._context=e,this.writers=void 0,this.va=void 0,this.resize(n)}vs._verifyAttributes=function(e){let t=[];for(let i=0;i<e.length;++i){let r=e[i],o={index:y(r.index,i),enabled:y(r.enabled,!0),componentsPerAttribute:r.componentsPerAttribute,componentDatatype:y(r.componentDatatype,X.FLOAT),normalize:y(r.normalize,!1),vertexBuffer:r.vertexBuffer,usage:y(r.usage,Fe.STATIC_DRAW)};t.push(o)}let n=new Array(t.length);for(let i=0;i<t.length;++i){let o=t[i].index;n[o]=!0}return t};vs._vertexSizeInBytes=function(e){let t=0,n=e.length;for(let s=0;s<n;++s){let a=e[s];t+=a.componentsPerAttribute*X.getSizeInBytes(a.componentDatatype)}let i=n>0?X.getSizeInBytes(e[0].componentDatatype):0,r=i>0?t%i:0,o=r===0?0:i-r;return t+=o,t};vs._createArrayViews=function(e,t){let n=[],i=0,r=e.length;for(let o=0;o<r;++o){let s=e[o],a=s.componentDatatype;n.push({index:s.index,enabled:s.enabled,componentsPerAttribute:s.componentsPerAttribute,componentDatatype:a,normalize:s.normalize,offsetInBytes:i,vertexSizeInComponentType:t/X.getSizeInBytes(a),view:void 0}),i+=s.componentsPerAttribute*X.getSizeInBytes(a)}return n};vs.prototype.resize=function(e){this._size=e;let t=this._allBuffers;this.writers=[];for(let n=0,i=t.length;n<i;++n){let r=t[n];vs._resize(r,this._size),vs._appendWriters(this.writers,r)}o8(this)};vs._resize=function(e,t){if(e.vertexSizeInBytes>0){let n=new ArrayBuffer(t*e.vertexSizeInBytes);if(u(e.arrayBuffer)){let o=new Uint8Array(n),s=new Uint8Array(e.arrayBuffer),a=s.length;for(let c=0;c<a;++c)o[c]=s[c]}let i=e.arrayViews,r=i.length;for(let o=0;o<r;++o){let s=i[o];s.view=X.createArrayBufferView(s.componentDatatype,n,s.offsetInBytes)}e.arrayBuffer=n}};var wve=[function(e,t,n){return function(i,r){t[i*n]=r,e.needsCommit=!0}},function(e,t,n){return function(i,r,o){let s=i*n;t[s]=r,t[s+1]=o,e.needsCommit=!0}},function(e,t,n){return function(i,r,o,s){let a=i*n;t[a]=r,t[a+1]=o,t[a+2]=s,e.needsCommit=!0}},function(e,t,n){return function(i,r,o,s,a){let c=i*n;t[c]=r,t[c+1]=o,t[c+2]=s,t[c+3]=a,e.needsCommit=!0}}];vs._appendWriters=function(e,t){let n=t.arrayViews,i=n.length;for(let r=0;r<i;++r){let o=n[r];e[o.index]=wve[o.componentsPerAttribute-1](t,o.view,o.vertexSizeInComponentType)}};vs.prototype.commit=function(e){let t=!1,n=this._allBuffers,i,r,o;for(r=0,o=n.length;r<o;++r)i=n[r],t=Dve(this,i)||t;if(t||!u(this.va)){o8(this);let s=this.va=[],a=P.SIXTY_FOUR_KILOBYTES-4,c=u(e)&&!this._instanced?Math.ceil(this._size/a):1;for(let l=0;l<c;++l){let f=[];for(r=0,o=n.length;r<o;++r){i=n[r];let d=l*(i.vertexSizeInBytes*a);vs._appendAttributes(f,i,d,this._instanced)}f=f.concat(this._precreated),s.push({va:new oi({context:this._context,attributes:f,indexBuffer:e}),indicesCount:1.5*(l!==c-1?a:this._size%a)})}}};function Dve(e,t){if(t.needsCommit&&t.vertexSizeInBytes>0){t.needsCommit=!1;let n=t.vertexBuffer,i=e._size*t.vertexSizeInBytes,r=u(n);if(!r||n.sizeInBytes<i)return r&&n.destroy(),t.vertexBuffer=ht.createVertexBuffer({context:e._context,typedArray:t.arrayBuffer,usage:t.usage}),t.vertexBuffer.vertexArrayDestroyable=!1,!0;t.vertexBuffer.copyFromArrayView(t.arrayBuffer)}return!1}vs._appendAttributes=function(e,t,n,i){let r=t.arrayViews,o=r.length;for(let s=0;s<o;++s){let a=r[s];e.push({index:a.index,enabled:a.enabled,componentsPerAttribute:a.componentsPerAttribute,componentDatatype:a.componentDatatype,normalize:a.normalize,vertexBuffer:t.vertexBuffer,offsetInBytes:n+a.offsetInBytes,strideInBytes:t.vertexSizeInBytes,instanceDivisor:i?1:0})}};vs.prototype.subCommit=function(e,t){let n=this._allBuffers;for(let i=0,r=n.length;i<r;++i)Ive(n[i],e,t)};function Ive(e,t,n){if(e.needsCommit&&e.vertexSizeInBytes>0){let i=e.vertexSizeInBytes*t,r=e.vertexSizeInBytes*n;e.vertexBuffer.copyFromArrayView(new Uint8Array(e.arrayBuffer,i,r),i)}}vs.prototype.endSubCommits=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t)e[t].needsCommit=!1};function o8(e){let t=e.va;if(!u(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].va.destroy();e.va=void 0}vs.prototype.isDestroyed=function(){return!1};vs.prototype.destroy=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t){let i=e[t];i.vertexBuffer=i.vertexBuffer&&i.vertexBuffer.destroy()}return o8(this),ue(this)};var ap=vs;function Pve(e,t,n){let i={flipY:!0,skipColorSpaceConversion:n,preferImageBitmap:!0},r=[ve.createIfNeeded(t.positiveX).fetchImage(i),ve.createIfNeeded(t.negativeX).fetchImage(i),ve.createIfNeeded(t.positiveY).fetchImage(i),ve.createIfNeeded(t.negativeY).fetchImage(i),ve.createIfNeeded(t.positiveZ).fetchImage(i),ve.createIfNeeded(t.negativeZ).fetchImage(i)];return Promise.all(r).then(function(o){return new za({context:e,source:{positiveX:o[0],negativeX:o[1],positiveY:o[2],negativeY:o[3],positiveZ:o[4],negativeZ:o[5]}})})}var fI=Pve;function cg(e){this._value=void 0,this._hasClone=!1,this._hasEquals=!1,this._definitionChanged=new ge,this.setValue(e)}Object.defineProperties(cg.prototype,{isConstant:{value:!0},definitionChanged:{get:function(){return this._definitionChanged}}});cg.prototype.getValue=function(e,t){return this._hasClone?this._value.clone(t):this._value};cg.prototype.setValue=function(e){let t=this._value;if(t!==e){let n=u(e),i=n&&typeof e.clone=="function",r=n&&typeof e.equals=="function";(!r||!e.equals(t))&&(this._hasClone=i,this._hasEquals=r,this._value=i?e.clone(this._value):e,this._definitionChanged.raiseEvent(this))}};cg.prototype.equals=function(e){return this===e||e instanceof cg&&(!this._hasEquals&&this._value===e._value||this._hasEquals&&this._value.equals(e._value))};cg.prototype.valueOf=function(){return this._value};cg.prototype.toString=function(){return String(this._value)};var ei=cg;function Ove(e,t,n,i,r){return{configurable:i,get:function(){return this[t]},set:function(o){let s=this[t],a=this[n];u(a)&&(a(),this[n]=void 0),o!==void 0&&(!u(o)||!u(o.getValue))&&u(r)&&(o=r(o)),s!==o&&(this[t]=o,this._definitionChanged.raiseEvent(this,e,o,s)),u(o)&&u(o.definitionChanged)&&(this[n]=o.definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this,e,o,o)},this))}}}function Mve(e){return new ei(e)}function Rve(e,t,n){return Ove(e,`_${e.toString()}`,`_${e.toString()}Subscription`,y(t,!1),y(n,Mve))}var ce=Rve;function dI(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._image=void 0,this._imageSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._alignedAxis=void 0,this._alignedAxisSubscription=void 0,this._sizeInMeters=void 0,this._sizeInMetersSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._imageSubRegion=void 0,this._imageSubRegionSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(dI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),image:ce("image"),scale:ce("scale"),pixelOffset:ce("pixelOffset"),eyeOffset:ce("eyeOffset"),horizontalOrigin:ce("horizontalOrigin"),verticalOrigin:ce("verticalOrigin"),heightReference:ce("heightReference"),color:ce("color"),rotation:ce("rotation"),alignedAxis:ce("alignedAxis"),sizeInMeters:ce("sizeInMeters"),width:ce("width"),height:ce("height"),scaleByDistance:ce("scaleByDistance"),translucencyByDistance:ce("translucencyByDistance"),pixelOffsetScaleByDistance:ce("pixelOffsetScaleByDistance"),imageSubRegion:ce("imageSubRegion"),distanceDisplayCondition:ce("distanceDisplayCondition"),disableDepthTestDistance:ce("disableDepthTestDistance")});dI.prototype.clone=function(e){return u(e)?(e.show=this._show,e.image=this._image,e.scale=this._scale,e.pixelOffset=this._pixelOffset,e.eyeOffset=this._eyeOffset,e.horizontalOrigin=this._horizontalOrigin,e.verticalOrigin=this._verticalOrigin,e.heightReference=this._heightReference,e.color=this._color,e.rotation=this._rotation,e.alignedAxis=this._alignedAxis,e.sizeInMeters=this._sizeInMeters,e.width=this._width,e.height=this._height,e.scaleByDistance=this._scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.pixelOffsetScaleByDistance=this._pixelOffsetScaleByDistance,e.imageSubRegion=this._imageSubRegion,e.distanceDisplayCondition=this._distanceDisplayCondition,e.disableDepthTestDistance=this._disableDepthTestDistance,e):new dI(this)};dI.prototype.merge=function(e){this.show=y(this._show,e.show),this.image=y(this._image,e.image),this.scale=y(this._scale,e.scale),this.pixelOffset=y(this._pixelOffset,e.pixelOffset),this.eyeOffset=y(this._eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this._horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this._verticalOrigin,e.verticalOrigin),this.heightReference=y(this._heightReference,e.heightReference),this.color=y(this._color,e.color),this.rotation=y(this._rotation,e.rotation),this.alignedAxis=y(this._alignedAxis,e.alignedAxis),this.sizeInMeters=y(this._sizeInMeters,e.sizeInMeters),this.width=y(this._width,e.width),this.height=y(this._height,e.height),this.scaleByDistance=y(this._scaleByDistance,e.scaleByDistance),this.translucencyByDistance=y(this._translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this._pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.imageSubRegion=y(this._imageSubRegion,e.imageSubRegion),this.distanceDisplayCondition=y(this._distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this._disableDepthTestDistance,e.disableDepthTestDistance)};var Ga=dI;function V0(){this._array=[],this._hash={}}Object.defineProperties(V0.prototype,{length:{get:function(){return this._array.length}},values:{get:function(){return this._array}}});V0.prototype.contains=function(e){return u(this._hash[e])};V0.prototype.set=function(e,t){let n=this._hash[e];t!==n&&(this.remove(e),this._hash[e]=t,this._array.push(t))};V0.prototype.get=function(e){return this._hash[e]};V0.prototype.remove=function(e){let t=this._hash[e],n=u(t);if(n){let i=this._array;i.splice(i.indexOf(t),1),delete this._hash[e]}return n};V0.prototype.removeAll=function(){let e=this._array;e.length>0&&(this._hash={},e.length=0)};var Ct=V0;function Ql(e,t){e=y(e,0),this._near=e,t=y(t,Number.MAX_VALUE),this._far=t}Object.defineProperties(Ql.prototype,{near:{get:function(){return this._near},set:function(e){this._near=e}},far:{get:function(){return this._far},set:function(e){this._far=e}}});Ql.packedLength=2;Ql.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n]=e.far,t};Ql.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Ql),n.near=e[t++],n.far=e[t],n};Ql.equals=function(e,t){return e===t||u(e)&&u(t)&&e.near===t.near&&e.far===t.far};Ql.clone=function(e,t){if(u(e))return u(t)||(t=new Ql),t.near=e.near,t.far=e.far,t};Ql.prototype.clone=function(e){return Ql.clone(this,e)};Ql.prototype.equals=function(e){return Ql.equals(this,e)};var vt=Ql;function Zu(e,t,n,i){this.near=y(e,0),this.nearValue=y(t,0),this.far=y(n,1),this.farValue=y(i,0)}Zu.clone=function(e,t){if(u(e))return u(t)?(t.near=e.near,t.nearValue=e.nearValue,t.far=e.far,t.farValue=e.farValue,t):new Zu(e.near,e.nearValue,e.far,e.farValue)};Zu.packedLength=4;Zu.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n++]=e.nearValue,t[n++]=e.far,t[n]=e.farValue,t};Zu.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Zu),n.near=e[t++],n.nearValue=e[t++],n.far=e[t++],n.farValue=e[t],n};Zu.equals=function(e,t){return e===t||u(e)&&u(t)&&e.near===t.near&&e.nearValue===t.nearValue&&e.far===t.far&&e.farValue===t.farValue};Zu.prototype.clone=function(e){return Zu.clone(this,e)};Zu.prototype.equals=function(e){return Zu.equals(this,e)};var Bt=Zu;var Bve={NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2},je=Object.freeze(Bve);var Lve={CENTER:0,LEFT:1,RIGHT:-1},_i=Object.freeze(Lve);var Nve={CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1},Pn=Object.freeze(Nve);var Fve={DONE:0,PENDING:1,FAILED:2},lt=Object.freeze(Fve);function cd(){fe.throwInstantiationError()}Object.defineProperties(cd.prototype,{isConstant:{get:fe.throwInstantiationError},definitionChanged:{get:fe.throwInstantiationError}});cd.prototype.getValue=fe.throwInstantiationError;cd.prototype.equals=fe.throwInstantiationError;cd.equals=function(e,t){return e===t||u(e)&&e.equals(t)};cd.arrayEquals=function(e,t){if(e===t)return!0;if(!u(e)||!u(t)||e.length!==t.length)return!1;let n=e.length;for(let i=0;i<n;i++)if(!cd.equals(e[i],t[i]))return!1;return!0};cd.isConstant=function(e){return!u(e)||e.isConstant};cd.getValueOrUndefined=function(e,t,n){return u(e)?e.getValue(t,n):void 0};cd.getValueOrDefault=function(e,t,n,i){return u(e)?y(e.getValue(t,i),n):n};cd.getValueOrClonedDefault=function(e,t,n,i){let r;return u(e)&&(r=e.getValue(t,i)),u(r)||(r=n.clone(r)),r};var q=cd;var Uve=z.WHITE,Vve=h.ZERO,kve=je.NONE,zve=H.ZERO,Hve=1,Gve=0,Wve=h.ZERO,jve=_i.CENTER,qve=Pn.CENTER,Yve=!1,Xve=new h,Kve=new z,Jve=new h,Zve=new H,Qve=new Bt,$ve=new Bt,ewe=new Bt,twe=new Xe,nwe=new vt;function qQ(e){this.entity=e,this.billboard=void 0,this.textureValue=void 0}function lg(e,t){t.collectionChanged.addEventListener(lg.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Ct,this._onCollectionChanged(t,t.values,[],[])}lg.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,r=t.length;i<r;i++){let o=t[i],s=o.entity,a=s._billboard,c,l=o.billboard,f=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),d;if(f&&(d=q.getValueOrUndefined(s._position,e,Xve),c=q.getValueOrUndefined(a._image,e),f=u(d)&&u(c)),!f){s8(o,s,n);continue}q.isConstant(s._position)||(n._clusterDirty=!0),u(l)||(l=n.getBillboard(s),l.id=s,l.image=void 0,o.billboard=l),l.show=f,(!u(l.image)||o.textureValue!==c)&&(l.image=c,o.textureValue=c),l.position=d,l.color=q.getValueOrDefault(a._color,e,Uve,Kve),l.eyeOffset=q.getValueOrDefault(a._eyeOffset,e,Vve,Jve),l.heightReference=q.getValueOrDefault(a._heightReference,e,kve),l.pixelOffset=q.getValueOrDefault(a._pixelOffset,e,zve,Zve),l.scale=q.getValueOrDefault(a._scale,e,Hve),l.rotation=q.getValueOrDefault(a._rotation,e,Gve),l.alignedAxis=q.getValueOrDefault(a._alignedAxis,e,Wve),l.horizontalOrigin=q.getValueOrDefault(a._horizontalOrigin,e,jve),l.verticalOrigin=q.getValueOrDefault(a._verticalOrigin,e,qve),l.width=q.getValueOrUndefined(a._width,e),l.height=q.getValueOrUndefined(a._height,e),l.scaleByDistance=q.getValueOrUndefined(a._scaleByDistance,e,Qve),l.translucencyByDistance=q.getValueOrUndefined(a._translucencyByDistance,e,$ve),l.pixelOffsetScaleByDistance=q.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,ewe),l.sizeInMeters=q.getValueOrDefault(a._sizeInMeters,e,Yve),l.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e,nwe),l.disableDepthTestDistance=q.getValueOrUndefined(a._disableDepthTestDistance,e);let p=q.getValueOrUndefined(a._imageSubRegion,e,twe);u(p)&&l.setImageSubRegion(l._imageId,p)}return!0};lg.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!u(n)||!u(n.billboard))return lt.FAILED;let i=n.billboard;if(i.heightReference===je.NONE)t.center=h.clone(i.position,t.center);else{if(!u(i._clampedPosition))return lt.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,lt.DONE};lg.prototype.isDestroyed=function(){return!1};lg.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(lg.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeBillboard(e[t]);return ue(this)};lg.prototype._onCollectionChanged=function(e,t,n,i){let r,o,s=this._items,a=this._cluster;for(r=t.length-1;r>-1;r--)o=t[r],u(o._billboard)&&u(o._position)&&s.set(o.id,new qQ(o));for(r=i.length-1;r>-1;r--)o=i[r],u(o._billboard)&&u(o._position)?s.contains(o.id)||s.set(o.id,new qQ(o)):(s8(s.get(o.id),o,a),s.remove(o.id));for(r=n.length-1;r>-1;r--)o=n[r],s8(s.get(o.id),o,a),s.remove(o.id)};function s8(e,t,n){u(e)&&(e.billboard=void 0,n.removeBillboard(t))}var hI=lg;function iwe(e,t){this.start=y(e,0),this.stop=y(t,0)}var Sc=iwe;function mn(e,t){this.center=h.clone(y(e,h.ZERO)),this.radius=y(t,0)}var l8=new h,u8=new h,f8=new h,d8=new h,h8=new h,m8=new h,p8=new h,js=new h,_8=new h,g8=new h,y8=new h,A8=new h,rwe=4/3*P.PI;mn.fromPoints=function(e,t){if(u(t)||(t=new mn),!u(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=h.clone(e[0],p8),i=h.clone(n,l8),r=h.clone(n,u8),o=h.clone(n,f8),s=h.clone(n,d8),a=h.clone(n,h8),c=h.clone(n,m8),l=e.length,f;for(f=1;f<l;f++){h.clone(e[f],n);let O=n.x,B=n.y,L=n.z;O<i.x&&h.clone(n,i),O>s.x&&h.clone(n,s),B<r.y&&h.clone(n,r),B>a.y&&h.clone(n,a),L<o.z&&h.clone(n,o),L>c.z&&h.clone(n,c)}let d=h.magnitudeSquared(h.subtract(s,i,js)),p=h.magnitudeSquared(h.subtract(a,r,js)),g=h.magnitudeSquared(h.subtract(c,o,js)),m=i,A=s,x=d;p>x&&(x=p,m=r,A=a),g>x&&(x=g,m=o,A=c);let C=_8;C.x=(m.x+A.x)*.5,C.y=(m.y+A.y)*.5,C.z=(m.z+A.z)*.5;let T=h.magnitudeSquared(h.subtract(A,C,js)),E=Math.sqrt(T),S=g8;S.x=i.x,S.y=r.y,S.z=o.z;let v=y8;v.x=s.x,v.y=a.y,v.z=c.z;let D=h.midpoint(S,v,A8),M=0;for(f=0;f<l;f++){h.clone(e[f],n);let O=h.magnitude(h.subtract(n,D,js));O>M&&(M=O);let B=h.magnitudeSquared(h.subtract(n,C,js));if(B>T){let L=Math.sqrt(B);E=(E+L)*.5,T=E*E;let _=L-E;C.x=(E*C.x+_*n.x)/L,C.y=(E*C.y+_*n.y)/L,C.z=(E*C.z+_*n.z)/L}}return E<M?(h.clone(C,t.center),t.radius=E):(h.clone(D,t.center),t.radius=M),t};var owe=new Ii,swe=new h,awe=new h,a8=new me,c8=new me;mn.fromRectangle2D=function(e,t,n){return mn.fromRectangleWithHeights2D(e,t,0,0,n)};mn.fromRectangleWithHeights2D=function(e,t,n,i,r){if(u(r)||(r=new mn),!u(e))return r.center=h.clone(h.ZERO,r.center),r.radius=0,r;t=y(t,owe),le.southwest(e,a8),a8.height=n,le.northeast(e,c8),c8.height=i;let o=t.project(a8,swe),s=t.project(c8,awe),a=s.x-o.x,c=s.y-o.y,l=s.z-o.z;r.radius=Math.sqrt(a*a+c*c+l*l)*.5;let f=r.center;return f.x=o.x+a*.5,f.y=o.y+c*.5,f.z=o.z+l*.5,r};var cwe=[];mn.fromRectangle3D=function(e,t,n,i){if(t=y(t,re.WGS84),n=y(n,0),u(i)||(i=new mn),!u(e))return i.center=h.clone(h.ZERO,i.center),i.radius=0,i;let r=le.subsample(e,t,n,cwe);return mn.fromPoints(r,i)};mn.fromVertices=function(e,t,n,i){if(u(i)||(i=new mn),!u(e)||e.length===0)return i.center=h.clone(h.ZERO,i.center),i.radius=0,i;t=y(t,h.ZERO),n=y(n,3);let r=p8;r.x=e[0]+t.x,r.y=e[1]+t.y,r.z=e[2]+t.z;let o=h.clone(r,l8),s=h.clone(r,u8),a=h.clone(r,f8),c=h.clone(r,d8),l=h.clone(r,h8),f=h.clone(r,m8),d=e.length,p;for(p=0;p<d;p+=n){let L=e[p]+t.x,_=e[p+1]+t.y,b=e[p+2]+t.z;r.x=L,r.y=_,r.z=b,L<o.x&&h.clone(r,o),L>c.x&&h.clone(r,c),_<s.y&&h.clone(r,s),_>l.y&&h.clone(r,l),b<a.z&&h.clone(r,a),b>f.z&&h.clone(r,f)}let g=h.magnitudeSquared(h.subtract(c,o,js)),m=h.magnitudeSquared(h.subtract(l,s,js)),A=h.magnitudeSquared(h.subtract(f,a,js)),x=o,C=c,T=g;m>T&&(T=m,x=s,C=l),A>T&&(T=A,x=a,C=f);let E=_8;E.x=(x.x+C.x)*.5,E.y=(x.y+C.y)*.5,E.z=(x.z+C.z)*.5;let S=h.magnitudeSquared(h.subtract(C,E,js)),v=Math.sqrt(S),D=g8;D.x=o.x,D.y=s.y,D.z=a.z;let M=y8;M.x=c.x,M.y=l.y,M.z=f.z;let O=h.midpoint(D,M,A8),B=0;for(p=0;p<d;p+=n){r.x=e[p]+t.x,r.y=e[p+1]+t.y,r.z=e[p+2]+t.z;let L=h.magnitude(h.subtract(r,O,js));L>B&&(B=L);let _=h.magnitudeSquared(h.subtract(r,E,js));if(_>S){let b=Math.sqrt(_);v=(v+b)*.5,S=v*v;let w=b-v;E.x=(v*E.x+w*r.x)/b,E.y=(v*E.y+w*r.y)/b,E.z=(v*E.z+w*r.z)/b}}return v<B?(h.clone(E,i.center),i.radius=v):(h.clone(O,i.center),i.radius=B),i};mn.fromEncodedCartesianVertices=function(e,t,n){if(u(n)||(n=new mn),!u(e)||!u(t)||e.length!==t.length||e.length===0)return n.center=h.clone(h.ZERO,n.center),n.radius=0,n;let i=p8;i.x=e[0]+t[0],i.y=e[1]+t[1],i.z=e[2]+t[2];let r=h.clone(i,l8),o=h.clone(i,u8),s=h.clone(i,f8),a=h.clone(i,d8),c=h.clone(i,h8),l=h.clone(i,m8),f=e.length,d;for(d=0;d<f;d+=3){let B=e[d]+t[d],L=e[d+1]+t[d+1],_=e[d+2]+t[d+2];i.x=B,i.y=L,i.z=_,B<r.x&&h.clone(i,r),B>a.x&&h.clone(i,a),L<o.y&&h.clone(i,o),L>c.y&&h.clone(i,c),_<s.z&&h.clone(i,s),_>l.z&&h.clone(i,l)}let p=h.magnitudeSquared(h.subtract(a,r,js)),g=h.magnitudeSquared(h.subtract(c,o,js)),m=h.magnitudeSquared(h.subtract(l,s,js)),A=r,x=a,C=p;g>C&&(C=g,A=o,x=c),m>C&&(C=m,A=s,x=l);let T=_8;T.x=(A.x+x.x)*.5,T.y=(A.y+x.y)*.5,T.z=(A.z+x.z)*.5;let E=h.magnitudeSquared(h.subtract(x,T,js)),S=Math.sqrt(E),v=g8;v.x=r.x,v.y=o.y,v.z=s.z;let D=y8;D.x=a.x,D.y=c.y,D.z=l.z;let M=h.midpoint(v,D,A8),O=0;for(d=0;d<f;d+=3){i.x=e[d]+t[d],i.y=e[d+1]+t[d+1],i.z=e[d+2]+t[d+2];let B=h.magnitude(h.subtract(i,M,js));B>O&&(O=B);let L=h.magnitudeSquared(h.subtract(i,T,js));if(L>E){let _=Math.sqrt(L);S=(S+_)*.5,E=S*S;let b=_-S;T.x=(S*T.x+b*i.x)/_,T.y=(S*T.y+b*i.y)/_,T.z=(S*T.z+b*i.z)/_}}return S<O?(h.clone(T,n.center),n.radius=S):(h.clone(M,n.center),n.radius=O),n};mn.fromCornerPoints=function(e,t,n){u(n)||(n=new mn);let i=h.midpoint(e,t,n.center);return n.radius=h.distance(i,t),n};mn.fromEllipsoid=function(e,t){return u(t)||(t=new mn),h.clone(h.ZERO,t.center),t.radius=e.maximumRadius,t};var lwe=new h;mn.fromBoundingSpheres=function(e,t){if(u(t)||(t=new mn),!u(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=e.length;if(n===1)return mn.clone(e[0],t);if(n===2)return mn.union(e[0],e[1],t);let i=[],r;for(r=0;r<n;r++)i.push(e[r].center);t=mn.fromPoints(i,t);let o=t.center,s=t.radius;for(r=0;r<n;r++){let a=e[r];s=Math.max(s,h.distance(o,a.center,lwe)+a.radius)}return t.radius=s,t};var uwe=new h,fwe=new h,dwe=new h;mn.fromOrientedBoundingBox=function(e,t){u(t)||(t=new mn);let n=e.halfAxes,i=Q.getColumn(n,0,uwe),r=Q.getColumn(n,1,fwe),o=Q.getColumn(n,2,dwe);return h.add(i,r,i),h.add(i,o,i),t.center=h.clone(e.center,t.center),t.radius=h.magnitude(i),t};var hwe=new h,mwe=new h;mn.fromTransformation=function(e,t){u(t)||(t=new mn);let n=N.getTranslation(e,hwe),i=N.getScale(e,mwe),r=.5*h.magnitude(i);return t.center=h.clone(n,t.center),t.radius=r,t};mn.clone=function(e,t){if(u(e))return u(t)?(t.center=h.clone(e.center,t.center),t.radius=e.radius,t):new mn(e.center,e.radius)};mn.packedLength=4;mn.pack=function(e,t,n){n=y(n,0);let i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t};mn.unpack=function(e,t,n){t=y(t,0),u(n)||(n=new mn);let i=n.center;return i.x=e[t++],i.y=e[t++],i.z=e[t++],n.radius=e[t],n};var pwe=new h,_we=new h;mn.union=function(e,t,n){u(n)||(n=new mn);let i=e.center,r=e.radius,o=t.center,s=t.radius,a=h.subtract(o,i,pwe),c=h.magnitude(a);if(r>=c+s)return e.clone(n),n;if(s>=c+r)return t.clone(n),n;let l=(r+c+s)*.5,f=h.multiplyByScalar(a,(-r+l)/c,_we);return h.add(f,i,f),h.clone(f,n.center),n.radius=l,n};var gwe=new h;mn.expand=function(e,t,n){n=mn.clone(e,n);let i=h.magnitude(h.subtract(t,n.center,gwe));return i>n.radius&&(n.radius=i),n};mn.intersectPlane=function(e,t){let n=e.center,i=e.radius,r=t.normal,o=h.dot(r,n)+t.distance;return o<-i?Qt.OUTSIDE:o<i?Qt.INTERSECTING:Qt.INSIDE};mn.transform=function(e,t,n){return u(n)||(n=new mn),n.center=N.multiplyByPoint(t,e.center,n.center),n.radius=N.getMaximumScale(t)*e.radius,n};var ywe=new h;mn.distanceSquaredTo=function(e,t){let n=h.subtract(e.center,t,ywe),i=h.magnitude(n)-e.radius;return i<=0?0:i*i};mn.transformWithoutScale=function(e,t,n){return u(n)||(n=new mn),n.center=N.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var Awe=new h;mn.computePlaneDistances=function(e,t,n,i){u(i)||(i=new Sc);let r=h.subtract(e.center,t,Awe),o=h.dot(n,r);return i.start=o-e.radius,i.stop=o+e.radius,i};var YQ=new h,xwe=new h,Cwe=new h,Twe=new h,Ewe=new h,bwe=new me,XQ=new Array(8);for(let e=0;e<8;++e)XQ[e]=new h;var Swe=new Ii;mn.projectTo2D=function(e,t,n){t=y(t,Swe);let i=t.ellipsoid,r=e.center,o=e.radius,s;h.equals(r,h.ZERO)?s=h.clone(h.UNIT_X,YQ):s=i.geodeticSurfaceNormal(r,YQ);let a=h.cross(h.UNIT_Z,s,xwe);h.normalize(a,a);let c=h.cross(s,a,Cwe);h.normalize(c,c),h.multiplyByScalar(s,o,s),h.multiplyByScalar(c,o,c),h.multiplyByScalar(a,o,a);let l=h.negate(c,Ewe),f=h.negate(a,Twe),d=XQ,p=d[0];h.add(s,c,p),h.add(p,a,p),p=d[1],h.add(s,c,p),h.add(p,f,p),p=d[2],h.add(s,l,p),h.add(p,f,p),p=d[3],h.add(s,l,p),h.add(p,a,p),h.negate(s,s),p=d[4],h.add(s,c,p),h.add(p,a,p),p=d[5],h.add(s,c,p),h.add(p,f,p),p=d[6],h.add(s,l,p),h.add(p,f,p),p=d[7],h.add(s,l,p),h.add(p,a,p);let g=d.length;for(let C=0;C<g;++C){let T=d[C];h.add(r,T,T);let E=i.cartesianToCartographic(T,bwe);t.project(E,T)}n=mn.fromPoints(d,n),r=n.center;let m=r.x,A=r.y,x=r.z;return r.x=x,r.y=m,r.z=A,n};mn.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)};mn.equals=function(e,t){return e===t||u(e)&&u(t)&&h.equals(e.center,t.center)&&e.radius===t.radius};mn.prototype.intersectPlane=function(e){return mn.intersectPlane(this,e)};mn.prototype.distanceSquaredTo=function(e){return mn.distanceSquaredTo(this,e)};mn.prototype.computePlaneDistances=function(e,t,n){return mn.computePlaneDistances(this,e,t,n)};mn.prototype.isOccluded=function(e){return mn.isOccluded(this,e)};mn.prototype.equals=function(e){return mn.equals(this,e)};mn.prototype.clone=function(e){return mn.clone(this,e)};mn.prototype.volume=function(){let e=this.radius;return rwe*e*e*e};var ae=mn;function vwe(e){e=y(e,y.EMPTY_OBJECT),this.position=e.position,this.normal=e.normal,this.st=e.st,this.bitangent=e.bitangent,this.tangent=e.tangent,this.color=e.color}var dn=vwe;var wwe={NONE:0,TOP:1,ALL:2},nn=Object.freeze(wwe);function ns(e){e=y(e,y.EMPTY_OBJECT),this.position=y(e.position,!1),this.normal=y(e.normal,!1),this.st=y(e.st,!1),this.bitangent=y(e.bitangent,!1),this.tangent=y(e.tangent,!1),this.color=y(e.color,!1)}ns.POSITION_ONLY=Object.freeze(new ns({position:!0}));ns.POSITION_AND_NORMAL=Object.freeze(new ns({position:!0,normal:!0}));ns.POSITION_NORMAL_AND_ST=Object.freeze(new ns({position:!0,normal:!0,st:!0}));ns.POSITION_AND_ST=Object.freeze(new ns({position:!0,st:!0}));ns.POSITION_AND_COLOR=Object.freeze(new ns({position:!0,color:!0}));ns.ALL=Object.freeze(new ns({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0}));ns.DEFAULT=ns.POSITION_NORMAL_AND_ST;ns.packedLength=6;ns.pack=function(e,t,n){return n=y(n,0),t[n++]=e.position?1:0,t[n++]=e.normal?1:0,t[n++]=e.st?1:0,t[n++]=e.tangent?1:0,t[n++]=e.bitangent?1:0,t[n]=e.color?1:0,t};ns.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new ns),n.position=e[t++]===1,n.normal=e[t++]===1,n.st=e[t++]===1,n.tangent=e[t++]===1,n.bitangent=e[t++]===1,n.color=e[t]===1,n};ns.clone=function(e,t){if(u(e))return u(t)||(t=new ns),t.position=e.position,t.normal=e.normal,t.st=e.st,t.tangent=e.tangent,t.bitangent=e.bitangent,t.color=e.color,t};var Pe=ns;var Dwe=new h;function $l(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum,i=y(e.vertexFormat,Pe.DEFAULT);this._minimum=h.clone(t),this._maximum=h.clone(n),this._vertexFormat=i,this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxGeometry"}$l.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new $l({minimum:h.negate(n,new h),maximum:n,vertexFormat:e.vertexFormat,offsetAttribute:e.offsetAttribute})};$l.fromAxisAlignedBoundingBox=function(e){return new $l({minimum:e.minimum,maximum:e.maximum})};$l.packedLength=2*h.packedLength+Pe.packedLength+1;$l.pack=function(e,t,n){return n=y(n,0),h.pack(e._minimum,t,n),h.pack(e._maximum,t,n+h.packedLength),Pe.pack(e._vertexFormat,t,n+2*h.packedLength),t[n+2*h.packedLength+Pe.packedLength]=y(e._offsetAttribute,-1),t};var JQ=new h,ZQ=new h,QQ=new Pe,KQ={minimum:JQ,maximum:ZQ,vertexFormat:QQ,offsetAttribute:void 0};$l.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,JQ),r=h.unpack(e,t+h.packedLength,ZQ),o=Pe.unpack(e,t+2*h.packedLength,QQ),s=e[t+2*h.packedLength+Pe.packedLength];return u(n)?(n._minimum=h.clone(i,n._minimum),n._maximum=h.clone(r,n._maximum),n._vertexFormat=Pe.clone(o,n._vertexFormat),n._offsetAttribute=s===-1?void 0:s,n):(KQ.offsetAttribute=s===-1?void 0:s,new $l(KQ))};$l.createGeometry=function(e){let t=e._minimum,n=e._maximum,i=e._vertexFormat;if(h.equals(t,n))return;let r=new dn,o,s;if(i.position&&(i.st||i.normal||i.tangent||i.bitangent)){if(i.position&&(s=new Float64Array(6*4*3),s[0]=t.x,s[1]=t.y,s[2]=n.z,s[3]=n.x,s[4]=t.y,s[5]=n.z,s[6]=n.x,s[7]=n.y,s[8]=n.z,s[9]=t.x,s[10]=n.y,s[11]=n.z,s[12]=t.x,s[13]=t.y,s[14]=t.z,s[15]=n.x,s[16]=t.y,s[17]=t.z,s[18]=n.x,s[19]=n.y,s[20]=t.z,s[21]=t.x,s[22]=n.y,s[23]=t.z,s[24]=n.x,s[25]=t.y,s[26]=t.z,s[27]=n.x,s[28]=n.y,s[29]=t.z,s[30]=n.x,s[31]=n.y,s[32]=n.z,s[33]=n.x,s[34]=t.y,s[35]=n.z,s[36]=t.x,s[37]=t.y,s[38]=t.z,s[39]=t.x,s[40]=n.y,s[41]=t.z,s[42]=t.x,s[43]=n.y,s[44]=n.z,s[45]=t.x,s[46]=t.y,s[47]=n.z,s[48]=t.x,s[49]=n.y,s[50]=t.z,s[51]=n.x,s[52]=n.y,s[53]=t.z,s[54]=n.x,s[55]=n.y,s[56]=n.z,s[57]=t.x,s[58]=n.y,s[59]=n.z,s[60]=t.x,s[61]=t.y,s[62]=t.z,s[63]=n.x,s[64]=t.y,s[65]=t.z,s[66]=n.x,s[67]=t.y,s[68]=n.z,s[69]=t.x,s[70]=t.y,s[71]=n.z,r.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})),i.normal){let l=new Float32Array(72);l[0]=0,l[1]=0,l[2]=1,l[3]=0,l[4]=0,l[5]=1,l[6]=0,l[7]=0,l[8]=1,l[9]=0,l[10]=0,l[11]=1,l[12]=0,l[13]=0,l[14]=-1,l[15]=0,l[16]=0,l[17]=-1,l[18]=0,l[19]=0,l[20]=-1,l[21]=0,l[22]=0,l[23]=-1,l[24]=1,l[25]=0,l[26]=0,l[27]=1,l[28]=0,l[29]=0,l[30]=1,l[31]=0,l[32]=0,l[33]=1,l[34]=0,l[35]=0,l[36]=-1,l[37]=0,l[38]=0,l[39]=-1,l[40]=0,l[41]=0,l[42]=-1,l[43]=0,l[44]=0,l[45]=-1,l[46]=0,l[47]=0,l[48]=0,l[49]=1,l[50]=0,l[51]=0,l[52]=1,l[53]=0,l[54]=0,l[55]=1,l[56]=0,l[57]=0,l[58]=1,l[59]=0,l[60]=0,l[61]=-1,l[62]=0,l[63]=0,l[64]=-1,l[65]=0,l[66]=0,l[67]=-1,l[68]=0,l[69]=0,l[70]=-1,l[71]=0,r.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:l})}if(i.st){let l=new Float32Array(48);l[0]=0,l[1]=0,l[2]=1,l[3]=0,l[4]=1,l[5]=1,l[6]=0,l[7]=1,l[8]=1,l[9]=0,l[10]=0,l[11]=0,l[12]=0,l[13]=1,l[14]=1,l[15]=1,l[16]=0,l[17]=0,l[18]=1,l[19]=0,l[20]=1,l[21]=1,l[22]=0,l[23]=1,l[24]=1,l[25]=0,l[26]=0,l[27]=0,l[28]=0,l[29]=1,l[30]=1,l[31]=1,l[32]=1,l[33]=0,l[34]=0,l[35]=0,l[36]=0,l[37]=1,l[38]=1,l[39]=1,l[40]=0,l[41]=0,l[42]=1,l[43]=0,l[44]=1,l[45]=1,l[46]=0,l[47]=1,r.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:l})}if(i.tangent){let l=new Float32Array(72);l[0]=1,l[1]=0,l[2]=0,l[3]=1,l[4]=0,l[5]=0,l[6]=1,l[7]=0,l[8]=0,l[9]=1,l[10]=0,l[11]=0,l[12]=-1,l[13]=0,l[14]=0,l[15]=-1,l[16]=0,l[17]=0,l[18]=-1,l[19]=0,l[20]=0,l[21]=-1,l[22]=0,l[23]=0,l[24]=0,l[25]=1,l[26]=0,l[27]=0,l[28]=1,l[29]=0,l[30]=0,l[31]=1,l[32]=0,l[33]=0,l[34]=1,l[35]=0,l[36]=0,l[37]=-1,l[38]=0,l[39]=0,l[40]=-1,l[41]=0,l[42]=0,l[43]=-1,l[44]=0,l[45]=0,l[46]=-1,l[47]=0,l[48]=-1,l[49]=0,l[50]=0,l[51]=-1,l[52]=0,l[53]=0,l[54]=-1,l[55]=0,l[56]=0,l[57]=-1,l[58]=0,l[59]=0,l[60]=1,l[61]=0,l[62]=0,l[63]=1,l[64]=0,l[65]=0,l[66]=1,l[67]=0,l[68]=0,l[69]=1,l[70]=0,l[71]=0,r.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:l})}if(i.bitangent){let l=new Float32Array(72);l[0]=0,l[1]=1,l[2]=0,l[3]=0,l[4]=1,l[5]=0,l[6]=0,l[7]=1,l[8]=0,l[9]=0,l[10]=1,l[11]=0,l[12]=0,l[13]=1,l[14]=0,l[15]=0,l[16]=1,l[17]=0,l[18]=0,l[19]=1,l[20]=0,l[21]=0,l[22]=1,l[23]=0,l[24]=0,l[25]=0,l[26]=1,l[27]=0,l[28]=0,l[29]=1,l[30]=0,l[31]=0,l[32]=1,l[33]=0,l[34]=0,l[35]=1,l[36]=0,l[37]=0,l[38]=1,l[39]=0,l[40]=0,l[41]=1,l[42]=0,l[43]=0,l[44]=1,l[45]=0,l[46]=0,l[47]=1,l[48]=0,l[49]=0,l[50]=1,l[51]=0,l[52]=0,l[53]=1,l[54]=0,l[55]=0,l[56]=1,l[57]=0,l[58]=0,l[59]=1,l[60]=0,l[61]=0,l[62]=1,l[63]=0,l[64]=0,l[65]=1,l[66]=0,l[67]=0,l[68]=1,l[69]=0,l[70]=0,l[71]=1,r.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:l})}o=new Uint16Array(6*2*3),o[0]=0,o[1]=1,o[2]=2,o[3]=0,o[4]=2,o[5]=3,o[6]=4+2,o[7]=4+1,o[8]=4+0,o[9]=4+3,o[10]=4+2,o[11]=4+0,o[12]=8+0,o[13]=8+1,o[14]=8+2,o[15]=8+0,o[16]=8+2,o[17]=8+3,o[18]=12+2,o[19]=12+1,o[20]=12+0,o[21]=12+3,o[22]=12+2,o[23]=12+0,o[24]=16+2,o[25]=16+1,o[26]=16+0,o[27]=16+3,o[28]=16+2,o[29]=16+0,o[30]=20+0,o[31]=20+1,o[32]=20+2,o[33]=20+0,o[34]=20+2,o[35]=20+3}else s=new Float64Array(8*3),s[0]=t.x,s[1]=t.y,s[2]=t.z,s[3]=n.x,s[4]=t.y,s[5]=t.z,s[6]=n.x,s[7]=n.y,s[8]=t.z,s[9]=t.x,s[10]=n.y,s[11]=t.z,s[12]=t.x,s[13]=t.y,s[14]=n.z,s[15]=n.x,s[16]=t.y,s[17]=n.z,s[18]=n.x,s[19]=n.y,s[20]=n.z,s[21]=t.x,s[22]=n.y,s[23]=n.z,r.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s}),o=new Uint16Array(6*2*3),o[0]=4,o[1]=5,o[2]=6,o[3]=4,o[4]=6,o[5]=7,o[6]=1,o[7]=0,o[8]=3,o[9]=1,o[10]=3,o[11]=2,o[12]=1,o[13]=6,o[14]=5,o[15]=1,o[16]=2,o[17]=6,o[18]=2,o[19]=3,o[20]=7,o[21]=2,o[22]=7,o[23]=6,o[24]=3,o[25]=0,o[26]=4,o[27]=3,o[28]=4,o[29]=7,o[30]=0,o[31]=1,o[32]=5,o[33]=0,o[34]=5,o[35]=4;let a=h.subtract(n,t,Dwe),c=h.magnitude(a)*.5;if(u(e._offsetAttribute)){let l=s.length,f=e._offsetAttribute===nn.NONE?0:1,d=new Uint8Array(l/3).fill(f);r.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return new ut({attributes:r,indices:o,primitiveType:Be.TRIANGLES,boundingSphere:new ae(h.ZERO,c),offsetAttribute:e._offsetAttribute})};var x8;$l.getUnitBox=function(){return u(x8)||(x8=$l.createGeometry($l.fromDimensions({dimensions:new h(1,1,1),vertexFormat:Pe.POSITION_ONLY}))),x8};var fl=$l;var Iwe=new h;function kh(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum;this._min=h.clone(t),this._max=h.clone(n),this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxOutlineGeometry"}kh.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new kh({minimum:h.negate(n,new h),maximum:n,offsetAttribute:e.offsetAttribute})};kh.fromAxisAlignedBoundingBox=function(e){return new kh({minimum:e.minimum,maximum:e.maximum})};kh.packedLength=2*h.packedLength+1;kh.pack=function(e,t,n){return n=y(n,0),h.pack(e._min,t,n),h.pack(e._max,t,n+h.packedLength),t[n+h.packedLength*2]=y(e._offsetAttribute,-1),t};var e$=new h,t$=new h,$Q={minimum:e$,maximum:t$,offsetAttribute:void 0};kh.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,e$),r=h.unpack(e,t+h.packedLength,t$),o=e[t+h.packedLength*2];return u(n)?(n._min=h.clone(i,n._min),n._max=h.clone(r,n._max),n._offsetAttribute=o===-1?void 0:o,n):($Q.offsetAttribute=o===-1?void 0:o,new kh($Q))};kh.createGeometry=function(e){let t=e._min,n=e._max;if(h.equals(t,n))return;let i=new dn,r=new Uint16Array(12*2),o=new Float64Array(8*3);o[0]=t.x,o[1]=t.y,o[2]=t.z,o[3]=n.x,o[4]=t.y,o[5]=t.z,o[6]=n.x,o[7]=n.y,o[8]=t.z,o[9]=t.x,o[10]=n.y,o[11]=t.z,o[12]=t.x,o[13]=t.y,o[14]=n.z,o[15]=n.x,o[16]=t.y,o[17]=n.z,o[18]=n.x,o[19]=n.y,o[20]=n.z,o[21]=t.x,o[22]=n.y,o[23]=n.z,i.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:o}),r[0]=4,r[1]=5,r[2]=5,r[3]=6,r[4]=6,r[5]=7,r[6]=7,r[7]=4,r[8]=0,r[9]=1,r[10]=1,r[11]=2,r[12]=2,r[13]=3,r[14]=3,r[15]=0,r[16]=0,r[17]=4,r[18]=1,r[19]=5,r[20]=2,r[21]=6,r[22]=3,r[23]=7;let s=h.subtract(n,t,Iwe),a=h.magnitude(s)*.5;if(u(e._offsetAttribute)){let c=o.length,l=e._offsetAttribute===nn.NONE?0:1,f=new Uint8Array(c/3).fill(l);i.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}return new ut({attributes:i,indices:r,primitiveType:Be.LINES,boundingSphere:new ae(h.ZERO,a),offsetAttribute:e._offsetAttribute})};var ld=kh;function dT(e,t,n,i){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,1),this.value=new Uint8Array([z.floatToByte(e),z.floatToByte(t),z.floatToByte(n),z.floatToByte(i)])}Object.defineProperties(dT.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 4}},normalize:{get:function(){return!0}}});dT.fromColor=function(e){return new dT(e.red,e.green,e.blue,e.alpha)};dT.toValue=function(e,t){return u(t)?e.toBytes(t):new Uint8Array(e.toBytes())};dT.equals=function(e,t){return e===t||u(e)&&u(t)&&e.value[0]===t.value[0]&&e.value[1]===t.value[1]&&e.value[2]===t.value[2]&&e.value[3]===t.value[3]};var kt=dT;function mI(e,t){e=y(e,0),t=y(t,Number.MAX_VALUE),this.value=new Float32Array([e,t])}Object.defineProperties(mI.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 2}},normalize:{get:function(){return!1}}});mI.fromDistanceDisplayCondition=function(e){return new mI(e.near,e.far)};mI.toValue=function(e,t){return u(t)?(t[0]=e.near,t[1]=e.far,t):new Float32Array([e.near,e.far])};var Vn=mI;function Pwe(e){e=y(e,y.EMPTY_OBJECT),this.geometry=e.geometry,this.modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=y(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}var xt=Pwe;function Yr(e){e=y(e,y.EMPTY_OBJECT),this.start=u(e.start)?ee.clone(e.start):new ee,this.stop=u(e.stop)?ee.clone(e.stop):new ee,this.data=e.data,this.isStartIncluded=y(e.isStartIncluded,!0),this.isStopIncluded=y(e.isStopIncluded,!0)}Object.defineProperties(Yr.prototype,{isEmpty:{get:function(){let e=ee.compare(this.stop,this.start);return e<0||e===0&&(!this.isStartIncluded||!this.isStopIncluded)}}});var hT={start:void 0,stop:void 0,isStartIncluded:void 0,isStopIncluded:void 0,data:void 0};Yr.fromIso8601=function(e,t){let n=e.iso8601.split("/");if(n.length!==2)throw new fe("options.iso8601 is an invalid ISO 8601 interval.");let i=ee.fromIso8601(n[0]),r=ee.fromIso8601(n[1]),o=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=e.data;return u(t)?(t.start=i,t.stop=r,t.isStartIncluded=o,t.isStopIncluded=s,t.data=a,t):(hT.start=i,hT.stop=r,hT.isStartIncluded=o,hT.isStopIncluded=s,hT.data=a,new Yr(hT))};Yr.toIso8601=function(e,t){return`${ee.toIso8601(e.start,t)}/${ee.toIso8601(e.stop,t)}`};Yr.clone=function(e,t){if(u(e))return u(t)?(t.start=e.start,t.stop=e.stop,t.isStartIncluded=e.isStartIncluded,t.isStopIncluded=e.isStopIncluded,t.data=e.data,t):new Yr(e)};Yr.equals=function(e,t,n){return e===t||u(e)&&u(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&ee.equals(e.start,t.start)&&ee.equals(e.stop,t.stop)&&(e.data===t.data||u(n)&&n(e.data,t.data)))};Yr.equalsEpsilon=function(e,t,n,i){return n=y(n,0),e===t||u(e)&&u(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&ee.equalsEpsilon(e.start,t.start,n)&&ee.equalsEpsilon(e.stop,t.stop,n)&&(e.data===t.data||u(i)&&i(e.data,t.data)))};Yr.intersect=function(e,t,n,i){if(!u(t))return Yr.clone(Yr.EMPTY,n);let r=e.start,o=e.stop,s=t.start,a=t.stop,c=ee.greaterThanOrEquals(s,r)&&ee.greaterThanOrEquals(o,s),l=!c&&ee.lessThanOrEquals(s,r)&&ee.lessThanOrEquals(r,a);if(!c&&!l)return Yr.clone(Yr.EMPTY,n);let f=e.isStartIncluded,d=e.isStopIncluded,p=t.isStartIncluded,g=t.isStopIncluded,m=ee.lessThan(o,a);return u(n)||(n=new Yr),n.start=c?s:r,n.isStartIncluded=f&&p||!ee.equals(s,r)&&(c&&p||l&&f),n.stop=m?o:a,n.isStopIncluded=m?d:d&&g||!ee.equals(a,o)&&g,n.data=u(i)?i(e.data,t.data):e.data,n};Yr.contains=function(e,t){if(e.isEmpty)return!1;let n=ee.compare(e.start,t);if(n===0)return e.isStartIncluded;let i=ee.compare(t,e.stop);return i===0?e.isStopIncluded:n<0&&i<0};Yr.prototype.clone=function(e){return Yr.clone(this,e)};Yr.prototype.equals=function(e,t){return Yr.equals(this,e,t)};Yr.prototype.equalsEpsilon=function(e,t,n){return Yr.equalsEpsilon(this,e,t,n)};Yr.prototype.toString=function(){return Yr.toIso8601(this)};Yr.EMPTY=Object.freeze(new Yr({start:new ee,stop:new ee,isStartIncluded:!1,isStopIncluded:!1}));var xn=Yr;var n$=Object.freeze(ee.fromIso8601("0000-01-01T00:00:00Z")),i$=Object.freeze(ee.fromIso8601("9999-12-31T24:00:00Z")),Owe=Object.freeze(new xn({start:n$,stop:i$})),Mwe={MINIMUM_VALUE:n$,MAXIMUM_VALUE:i$,MAXIMUM_INTERVAL:Owe},ze=Mwe;function pI(e,t,n){e=y(e,0),t=y(t,0),n=y(n,0),this.value=new Float32Array([e,t,n])}Object.defineProperties(pI.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}});pI.fromCartesian3=function(e){return new pI(e.x,e.y,e.z)};pI.toValue=function(e,t){return u(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t};var Ki=pI;function J3(e){e=y(e,!0),this.value=J3.toValue(e)}Object.defineProperties(J3.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 1}},normalize:{get:function(){return!1}}});J3.toValue=function(e,t){return u(t)?(t[0]=e,t):new Uint8Array([e])};var gn=J3;var _I=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec3 v_tangentEC; +in vec3 v_bitangentEC; +in vec2 v_st; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + mat3 tangentToEyeMatrix = czm_tangentToEyeSpaceMatrix(v_normalEC, v_tangentEC, v_bitangentEC); + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = tangentToEyeMatrix; + materialInput.positionToEyeEC = positionToEyeEC; + materialInput.st = v_st; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var gI=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec3 tangent; +in vec3 bitangent; +in vec2 st; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec3 v_tangentEC; +out vec3 v_bitangentEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_tangentEC = czm_normal * tangent; // tangent in eye coordinates + v_bitangentEC = czm_normal * bitangent; // bitangent in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var yI=`in vec3 v_positionEC; +in vec3 v_normalEC; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var AI=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var xI=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec2 v_st; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + materialInput.st = v_st; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var CI=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec2 st; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var Rwe={ADD:te.FUNC_ADD,SUBTRACT:te.FUNC_SUBTRACT,REVERSE_SUBTRACT:te.FUNC_REVERSE_SUBTRACT,MIN:te.MIN,MAX:te.MAX},pa=Object.freeze(Rwe);var Bwe={ZERO:te.ZERO,ONE:te.ONE,SOURCE_COLOR:te.SRC_COLOR,ONE_MINUS_SOURCE_COLOR:te.ONE_MINUS_SRC_COLOR,DESTINATION_COLOR:te.DST_COLOR,ONE_MINUS_DESTINATION_COLOR:te.ONE_MINUS_DST_COLOR,SOURCE_ALPHA:te.SRC_ALPHA,ONE_MINUS_SOURCE_ALPHA:te.ONE_MINUS_SRC_ALPHA,DESTINATION_ALPHA:te.DST_ALPHA,ONE_MINUS_DESTINATION_ALPHA:te.ONE_MINUS_DST_ALPHA,CONSTANT_COLOR:te.CONSTANT_COLOR,ONE_MINUS_CONSTANT_COLOR:te.ONE_MINUS_CONSTANT_COLOR,CONSTANT_ALPHA:te.CONSTANT_ALPHA,ONE_MINUS_CONSTANT_ALPHA:te.ONE_MINUS_CONSTANT_ALPHA,SOURCE_ALPHA_SATURATE:te.SRC_ALPHA_SATURATE},Sr=Object.freeze(Bwe);var Lwe={DISABLED:Object.freeze({enabled:!1}),ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:pa.ADD,equationAlpha:pa.ADD,functionSourceRgb:Sr.SOURCE_ALPHA,functionSourceAlpha:Sr.ONE,functionDestinationRgb:Sr.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:Sr.ONE_MINUS_SOURCE_ALPHA}),PRE_MULTIPLIED_ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:pa.ADD,equationAlpha:pa.ADD,functionSourceRgb:Sr.ONE,functionSourceAlpha:Sr.ONE,functionDestinationRgb:Sr.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:Sr.ONE_MINUS_SOURCE_ALPHA}),ADDITIVE_BLEND:Object.freeze({enabled:!0,equationRgb:pa.ADD,equationAlpha:pa.ADD,functionSourceRgb:Sr.SOURCE_ALPHA,functionSourceAlpha:Sr.ONE,functionDestinationRgb:Sr.ONE,functionDestinationAlpha:Sr.ONE})},un=Object.freeze(Lwe);var Nwe={FRONT:te.FRONT,BACK:te.BACK,FRONT_AND_BACK:te.FRONT_AND_BACK},gi=Object.freeze(Nwe);function mT(e){e=y(e,y.EMPTY_OBJECT),this.material=e.material,this.translucent=y(e.translucent,!0),this._vertexShaderSource=e.vertexShaderSource,this._fragmentShaderSource=e.fragmentShaderSource,this._renderState=e.renderState,this._closed=y(e.closed,!1)}Object.defineProperties(mT.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}}});mT.prototype.getFragmentShaderSource=function(){let e=[];return this.flat&&e.push("#define FLAT"),this.faceForward&&e.push("#define FACE_FORWARD"),u(this.material)&&e.push(this.material.shaderSource),e.push(this.fragmentShaderSource),e.join(` +`)};mT.prototype.isTranslucent=function(){return u(this.material)&&this.material.isTranslucent()||!u(this.material)&&this.translucent};mT.prototype.getRenderState=function(){let e=this.isTranslucent(),t=We(this.renderState,!1);return e?(t.depthMask=!1,t.blending=un.ALPHA_BLEND):t.depthMask=!0,t};mT.getDefaultRenderState=function(e,t,n){let i={depthTest:{enabled:!0}};return e&&(i.depthMask=!1,i.blending=un.ALPHA_BLEND),t&&(i.cull={enabled:!0,face:gi.BACK}),u(n)&&(i=_t(n,i,!0)),i};var nr=mT;var TI=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.aspect / (2.0 * czm_pi), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var EI=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + vec2 centerPixel = fract(repeat * st); + float centerBump = texture(image, centerPixel).channel; + + float imageWidth = float(imageDimensions.x); + vec2 rightPixel = fract(repeat * (st + vec2(1.0 / imageWidth, 0.0))); + float rightBump = texture(image, rightPixel).channel; + + float imageHeight = float(imageDimensions.y); + vec2 leftPixel = fract(repeat * (st + vec2(0.0, 1.0 / imageHeight))); + float topBump = texture(image, leftPixel).channel; + + vec3 normalTangentSpace = normalize(vec3(centerBump - rightBump, centerBump - topBump, clamp(1.0 - strength, 0.1, 1.0))); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + material.diffuse = vec3(0.01); + + return material; +} +`;var bI=`uniform vec4 lightColor; +uniform vec4 darkColor; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights + float b = mod(floor(repeat.s * st.s) + floor(repeat.t * st.t), 2.0); // 0.0 or 1.0 + + // Find the distance from the closest separator (region between two colors) + float scaledWidth = fract(repeat.s * st.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(repeat.t * st.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + float value = min(scaledWidth, scaledHeight); + + vec4 currentColor = mix(lightColor, darkColor, b); + vec4 color = czm_antialias(lightColor, darkColor, currentColor, value, 0.03); + + color = czm_gammaCorrect(color); + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var SI=`uniform vec4 lightColor; +uniform vec4 darkColor; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights + float b = smoothstep(0.3, 0.32, length(fract(repeat * materialInput.st) - 0.5)); // 0.0 or 1.0 + + vec4 color = mix(lightColor, darkColor, b); + color = czm_gammaCorrect(color); + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var vI=`uniform sampler2D heights; +uniform sampler2D colors; + +// This material expects heights to be sorted from lowest to highest. + +float getHeight(int idx, float invTexSize) +{ + vec2 uv = vec2((float(idx) + 0.5) * invTexSize, 0.5); +#ifdef OES_texture_float + return texture(heights, uv).x; +#else + return czm_unpackFloat(texture(heights, uv)); +#endif +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float height = materialInput.height; + float invTexSize = 1.0 / float(heightsDimensions.x); + + float minHeight = getHeight(0, invTexSize); + float maxHeight = getHeight(heightsDimensions.x - 1, invTexSize); + + // early-out when outside the height range + if (height < minHeight || height > maxHeight) { + material.diffuse = vec3(0.0); + material.alpha = 0.0; + return material; + } + + // Binary search to find heights above and below. + int idxBelow = 0; + int idxAbove = heightsDimensions.x; + float heightBelow = minHeight; + float heightAbove = maxHeight; + + // while loop not allowed, so use for loop with max iterations. + // maxIterations of 16 supports a texture size up to 65536 (2^16). + const int maxIterations = 16; + for (int i = 0; i < maxIterations; i++) { + if (idxBelow >= idxAbove - 1) { + break; + } + + int idxMid = (idxBelow + idxAbove) / 2; + float heightTex = getHeight(idxMid, invTexSize); + + if (height > heightTex) { + idxBelow = idxMid; + heightBelow = heightTex; + } else { + idxAbove = idxMid; + heightAbove = heightTex; + } + } + + float lerper = heightBelow == heightAbove ? 1.0 : (height - heightBelow) / (heightAbove - heightBelow); + vec2 colorUv = vec2(invTexSize * (float(idxBelow) + 0.5 + lerper), 0.5); + vec4 color = texture(colors, colorUv); + + // undo preumultiplied alpha + if (color.a > 0.0) + { + color.rgb /= color.a; + } + + color.rgb = czm_gammaCorrect(color.rgb); + + material.diffuse = color.rgb; + material.alpha = color.a; + return material; +} +`;var wI=`#ifdef GL_OES_standard_derivatives + #extension GL_OES_standard_derivatives : enable +#endif + +uniform vec4 color; +uniform float spacing; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float distanceToContour = mod(materialInput.height, spacing); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float dxc = abs(dFdx(materialInput.height)); + float dyc = abs(dFdy(materialInput.height)); + float dF = max(dxc, dyc) * czm_pixelRatio * width; + float alpha = (distanceToContour < dF) ? 1.0 : 0.0; +#else + // If no derivatives available (IE 10?), use pixel ratio + float alpha = (distanceToContour < (czm_pixelRatio * width)) ? 1.0 : 0.0; +#endif + + vec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha * color.a)); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var DI=`uniform sampler2D image; +uniform float minimumHeight; +uniform float maximumHeight; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + float scaledHeight = clamp((materialInput.height - minimumHeight) / (maximumHeight - minimumHeight), 0.0, 1.0); + vec4 rampColor = texture(image, vec2(scaledHeight, 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var II=`uniform vec4 fadeInColor; +uniform vec4 fadeOutColor; +uniform float maximumDistance; +uniform bool repeat; +uniform vec2 fadeDirection; +uniform vec2 time; + +float getTime(float t, float coord) +{ + float scalar = 1.0 / maximumDistance; + float q = distance(t, coord) * scalar; + if (repeat) + { + float r = distance(t, coord + 1.0) * scalar; + float s = distance(t, coord - 1.0) * scalar; + q = min(min(r, s), q); + } + return clamp(q, 0.0, 1.0); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float s = getTime(time.x, st.s) * fadeDirection.s; + float t = getTime(time.y, st.t) * fadeDirection.t; + + float u = length(vec2(s, t)); + vec4 color = mix(fadeInColor, fadeOutColor, u); + + color = czm_gammaCorrect(color); + material.emission = color.rgb; + material.alpha = color.a; + + return material; +} +`;var PI=`#ifdef GL_OES_standard_derivatives + #extension GL_OES_standard_derivatives : enable +#endif + +uniform vec4 color; +uniform float cellAlpha; +uniform vec2 lineCount; +uniform vec2 lineThickness; +uniform vec2 lineOffset; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + float scaledWidth = fract(lineCount.s * st.s - lineOffset.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(lineCount.t * st.t - lineOffset.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + + float value; + + // Fuzz Factor - Controls blurriness of lines +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + const float fuzz = 1.2; + vec2 thickness = (lineThickness * czm_pixelRatio) - 1.0; + + // From "3D Engine Design for Virtual Globes" by Cozzi and Ring, Listing 4.13. + vec2 dx = abs(dFdx(st)); + vec2 dy = abs(dFdy(st)); + vec2 dF = vec2(max(dx.s, dy.s), max(dx.t, dy.t)) * lineCount; + value = min( + smoothstep(dF.s * thickness.s, dF.s * (fuzz + thickness.s), scaledWidth), + smoothstep(dF.t * thickness.t, dF.t * (fuzz + thickness.t), scaledHeight)); +#else + // If no derivatives available (IE 10?), revert to view-dependent fuzz + const float fuzz = 0.05; + + vec2 range = 0.5 - (lineThickness * 0.05); + value = min( + 1.0 - smoothstep(range.s, range.s + fuzz, scaledWidth), + 1.0 - smoothstep(range.t, range.t + fuzz, scaledHeight)); +#endif + + // Edges taken from RimLightingMaterial.glsl + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float dRim = 1.0 - abs(dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC))); + float sRim = smoothstep(0.8, 1.0, dRim); + value *= (1.0 - sRim); + + vec4 halfColor; + halfColor.rgb = color.rgb * 0.5; + halfColor.a = color.a * (1.0 - ((1.0 - cellAlpha) * value)); + halfColor = czm_gammaCorrect(halfColor); + material.diffuse = halfColor.rgb; + material.emission = halfColor.rgb; + material.alpha = halfColor.a; + + return material; +} +`;var OI=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec4 textureValue = texture(image, fract(repeat * materialInput.st)); + vec3 normalTangentSpace = textureValue.channels; + normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0; + normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0); + normalTangentSpace = normalize(normalTangentSpace); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + + return material; +} +`;var MI=`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif + +uniform vec4 color; + +float getPointOnLine(vec2 p0, vec2 p1, float x) +{ + float slope = (p0.y - p1.y) / (p0.x - p1.x); + return slope * (x - p0.x) + p0.y; +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float base = 1.0 - abs(fwidth(st.s)) * 10.0 * czm_pixelRatio; +#else + // If no derivatives available (IE 10?), 2.5% of the line will be the arrow head + float base = 0.975; +#endif + + vec2 center = vec2(1.0, 0.5); + float ptOnUpperLine = getPointOnLine(vec2(base, 1.0), center, st.s); + float ptOnLowerLine = getPointOnLine(vec2(base, 0.0), center, st.s); + + float halfWidth = 0.15; + float s = step(0.5 - halfWidth, st.t); + s *= 1.0 - step(0.5 + halfWidth, st.t); + s *= 1.0 - step(base, st.s); + + float t = step(base, materialInput.st.s); + t *= 1.0 - step(ptOnUpperLine, st.t); + t *= step(ptOnLowerLine, st.t); + + // Find the distance from the closest separator (region between two colors) + float dist; + if (st.s < base) + { + float d1 = abs(st.t - (0.5 - halfWidth)); + float d2 = abs(st.t - (0.5 + halfWidth)); + dist = min(d1, d2); + } + else + { + float d1 = czm_infinity; + if (st.t < 0.5 - halfWidth && st.t > 0.5 + halfWidth) + { + d1 = abs(st.s - base); + } + float d2 = abs(st.t - ptOnUpperLine); + float d3 = abs(st.t - ptOnLowerLine); + dist = min(min(d1, d2), d3); + } + + vec4 outsideColor = vec4(0.0); + vec4 currentColor = mix(outsideColor, color, clamp(s + t, 0.0, 1.0)); + vec4 outColor = czm_antialias(outsideColor, color, currentColor, dist); + + outColor = czm_gammaCorrect(outColor); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + return material; +} +`;var RI=`uniform vec4 color; +uniform vec4 gapColor; +uniform float dashLength; +uniform float dashPattern; +in float v_polylineAngle; + +const float maskLength = 16.0; + +mat2 rotate(float rad) { + float c = cos(rad); + float s = sin(rad); + return mat2( + c, s, + -s, c + ); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy; + + // Get the relative position within the dash from 0 to 1 + float dashPosition = fract(pos.x / (dashLength * czm_pixelRatio)); + // Figure out the mask index. + float maskIndex = floor(dashPosition * maskLength); + // Test the bit mask. + float maskTest = floor(dashPattern / pow(2.0, maskIndex)); + vec4 fragColor = (mod(maskTest, 2.0) < 1.0) ? gapColor : color; + if (fragColor.a < 0.005) { // matches 0/255 and 1/255 + discard; + } + + fragColor = czm_gammaCorrect(fragColor); + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + return material; +} +`;var BI=`uniform vec4 color; +uniform float glowPower; +uniform float taperPower; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5); + + if (taperPower <= 0.99999) { + glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5)); + } + + vec4 fragColor; + fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb); + fragColor.a = clamp(0.0, 1.0, glow) * color.a; + fragColor = czm_gammaCorrect(fragColor); + + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + + return material; +} +`;var LI=`uniform vec4 color; +uniform vec4 outlineColor; +uniform float outlineWidth; + +in float v_width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float halfInteriorWidth = 0.5 * (v_width - outlineWidth) / v_width; + float b = step(0.5 - halfInteriorWidth, st.t); + b *= 1.0 - step(0.5 + halfInteriorWidth, st.t); + + // Find the distance from the closest separator (region between two colors) + float d1 = abs(st.t - (0.5 - halfInteriorWidth)); + float d2 = abs(st.t - (0.5 + halfInteriorWidth)); + float dist = min(d1, d2); + + vec4 currentColor = mix(outlineColor, color, b); + vec4 outColor = czm_antialias(outlineColor, color, currentColor, dist); + outColor = czm_gammaCorrect(outColor); + + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var NI=`uniform vec4 color; +uniform vec4 rimColor; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC)); + float s = smoothstep(1.0 - width, 1.0, d); + + vec4 outColor = czm_gammaCorrect(color); + vec4 outRimColor = czm_gammaCorrect(rimColor); + + material.diffuse = outColor.rgb; + material.emission = outRimColor.rgb * s; + material.alpha = mix(outColor.a, outRimColor.a, s); + + return material; +} +`;var FI=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.slope / (czm_pi / 2.0), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var UI=`uniform vec4 evenColor; +uniform vec4 oddColor; +uniform float offset; +uniform float repeat; +uniform bool horizontal; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // Based on the Stripes Fragment Shader in the Orange Book (11.1.2) + float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal)); + float value = fract((coord - offset) * (repeat * 0.5)); + float dist = min(value, min(abs(value - 0.5), 1.0 - value)); + + vec4 currentColor = mix(evenColor, oddColor, step(0.5, value)); + vec4 color = czm_antialias(evenColor, oddColor, currentColor, dist); + color = czm_gammaCorrect(color); + + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var VI=`// Thanks for the contribution Jonas +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +uniform sampler2D specularMap; +uniform sampler2D normalMap; +uniform vec4 baseWaterColor; +uniform vec4 blendColor; +uniform float frequency; +uniform float animationSpeed; +uniform float amplitude; +uniform float specularIntensity; +uniform float fadeFactor; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float time = czm_frameNumber * animationSpeed; + + // fade is a function of the distance from the fragment and the frequency of the waves + float fade = max(1.0, (length(materialInput.positionToEyeEC) / 10000000000.0) * frequency * fadeFactor); + + float specularMapValue = texture(specularMap, materialInput.st).r; + + // note: not using directional motion at this time, just set the angle to 0.0; + vec4 noise = czm_getWaterNoise(normalMap, materialInput.st * frequency, time, 0.0); + vec3 normalTangentSpace = noise.xyz * vec3(1.0, 1.0, (1.0 / amplitude)); + + // fade out the normal perturbation as we move further from the water surface + normalTangentSpace.xy /= fade; + + // attempt to fade out the normal perturbation as we approach non water areas (low specular map value) + normalTangentSpace = mix(vec3(0.0, 0.0, 50.0), normalTangentSpace, specularMapValue); + + normalTangentSpace = normalize(normalTangentSpace); + + // get ratios for alignment of the new normal vector with a vector perpendicular to the tangent plane + float tsPerturbationRatio = clamp(dot(normalTangentSpace, vec3(0.0, 0.0, 1.0)), 0.0, 1.0); + + // fade out water effect as specular map value decreases + material.alpha = mix(blendColor.a, baseWaterColor.a, specularMapValue) * specularMapValue; + + // base color is a blend of the water and non-water color based on the value from the specular map + // may need a uniform blend factor to better control this + material.diffuse = mix(blendColor.rgb, baseWaterColor.rgb, specularMapValue); + + // diffuse highlights are based on how perturbed the normal is + material.diffuse += (0.1 * tsPerturbationRatio); + + material.diffuse = material.diffuse; + + material.normal = normalize(materialInput.tangentToEyeMatrix * normalTangentSpace); + + material.specular = specularIntensity; + material.shininess = 10.0; + + return material; +} +`;function Ye(e){this.type=void 0,this.shaderSource=void 0,this.materials=void 0,this.uniforms=void 0,this._uniforms=void 0,this.translucent=void 0,this._minificationFilter=y(e.minificationFilter,sn.LINEAR),this._magnificationFilter=y(e.magnificationFilter,Ti.LINEAR),this._strict=void 0,this._template=void 0,this._count=void 0,this._texturePaths={},this._loadedImages=[],this._loadedCubeMaps=[],this._textures={},this._updateFunctions=[],this._defaultTexture=void 0,Fwe(e,this),Object.defineProperties(this,{type:{value:this.type,writable:!1}}),u(Ye._uniformList[this.type])||(Ye._uniformList[this.type]=Object.keys(this._uniforms))}Ye._uniformList={};Ye.fromType=function(e,t){let n=new Ye({fabric:{type:e}});if(u(t))for(let i in t)t.hasOwnProperty(i)&&(n.uniforms[i]=t[i]);return n};Ye.prototype.isTranslucent=function(){if(u(this.translucent))return typeof this.translucent=="function"?this.translucent():this.translucent;let e=!0,t=this._translucentFunctions,n=t.length;for(let i=0;i<n;++i){let r=t[i];if(typeof r=="function"?e=e&&r():e=e&&r,!e)break}return e};Ye.prototype.update=function(e){this._defaultTexture=e.defaultTexture;let t,n,i=this._loadedImages,r=i.length;for(t=0;t<r;++t){let c=i[t];n=c.id;let l=c.image,f;Array.isArray(l)&&(f=l.slice(1,l.length).map(function(A){return A.bufferView}),l=l[0]);let d=new ln({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter}),p;u(l.internalFormat)?p=new Rt({context:e,pixelFormat:l.internalFormat,width:l.width,height:l.height,source:{arrayBufferView:l.bufferView,mipLevels:f},sampler:d}):p=new Rt({context:e,source:l,sampler:d});let g=this._textures[n];u(g)&&g!==this._defaultTexture&&g.destroy(),this._textures[n]=p;let m=`${n}Dimensions`;if(this.uniforms.hasOwnProperty(m)){let A=this.uniforms[m];A.x=p._width,A.y=p._height}}i.length=0;let o=this._loadedCubeMaps;for(r=o.length,t=0;t<r;++t){let c=o[t];n=c.id;let l=c.images,f=new za({context:e,source:{positiveX:l[0],negativeX:l[1],positiveY:l[2],negativeY:l[3],positiveZ:l[4],negativeZ:l[5]},sampler:new ln({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter})});this._textures[n]=f}o.length=0;let s=this._updateFunctions;for(r=s.length,t=0;t<r;++t)s[t](this,e);let a=this.materials;for(let c in a)a.hasOwnProperty(c)&&a[c].update(e)};Ye.prototype.isDestroyed=function(){return!1};Ye.prototype.destroy=function(){let e=this._textures;for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];i!==this._defaultTexture&&i.destroy()}let t=this.materials;for(let n in t)t.hasOwnProperty(n)&&t[n].destroy();return ue(this)};function Fwe(e,t){e=y(e,y.EMPTY_OBJECT),t._strict=y(e.strict,!1),t._count=y(e.count,0),t._template=We(y(e.fabric,y.EMPTY_OBJECT)),t._template.uniforms=We(y(t._template.uniforms,y.EMPTY_OBJECT)),t._template.materials=We(y(t._template.materials,y.EMPTY_OBJECT)),t.type=u(t._template.type)?t._template.type:Wn(),t.shaderSource="",t.materials={},t.uniforms={},t._uniforms={},t._translucentFunctions=[];let n,i=Ye._materialCache.getMaterial(t.type);if(u(i)){let o=We(i.fabric,!0);t._template=_t(t._template,o,!0),n=i.translucent}zwe(t),u(i)||Ye._materialCache.addMaterial(t.type,t),Gwe(t),Ywe(t),Kwe(t);let r=t._translucentFunctions.length===0?!0:void 0;if(n=y(n,r),n=y(e.translucent,n),u(n))if(typeof n=="function"){let o=function(){return n(t)};t._translucentFunctions.push(o)}else t._translucentFunctions.push(n)}function C8(e,t,n,i){if(u(e)){for(let r in e)if(e.hasOwnProperty(r)){let o=t.indexOf(r)!==-1;(i&&!o||!i&&o)&&n(r,t)}}}function r$(e,t){}function Uwe(e,t){}var Vwe=["type","materials","uniforms","components","source"],kwe=["diffuse","specular","shininess","normal","emission","alpha"];function zwe(e){let t=e._template,n=t.uniforms,i=t.materials,r=t.components;C8(t,Vwe,r$,!0),C8(r,kwe,r$,!0);let o=[];for(let s in i)i.hasOwnProperty(s)&&o.push(s);C8(n,o,Uwe,!1)}function Hwe(e,t){let n=t._template.materials;for(let i in n)if(n.hasOwnProperty(i)&&e.indexOf(i)>-1)return!0;return!1}function Gwe(e){let t=e._template.components,n=e._template.source;if(u(n))e.shaderSource+=`${n} +`;else{if(e.shaderSource+=`czm_material czm_getMaterial(czm_materialInput materialInput) +{ +`,e.shaderSource+=`czm_material material = czm_getDefaultMaterial(materialInput); +`,u(t)){let i=Object.keys(e._template.materials).length>0;for(let r in t)if(t.hasOwnProperty(r))if(r==="diffuse"||r==="emission"){let s=i&&Hwe(t[r],e)?t[r]:`czm_gammaCorrect(${t[r]})`;e.shaderSource+=`material.${r} = ${s}; +`}else r==="alpha"?e.shaderSource+=`material.alpha = ${t.alpha}; +`:e.shaderSource+=`material.${r} = ${t[r]}; +`}e.shaderSource+=`return material; +} +`}}var o$={mat2:er,mat3:Q,mat4:N},Wwe=/\.ktx2$/i;function jwe(e){let t;return function(n,i){let r=n.uniforms,o=r[e],s=t!==o,a=!u(o)||o===Ye.DefaultImageId;t=o;let c=n._textures[e],l,f;if(o instanceof HTMLVideoElement){if(o.readyState>=2){if(s&&u(c)&&(c!==i.defaultTexture&&c.destroy(),c=void 0),!u(c)||c===i.defaultTexture){let p=new ln({minificationFilter:n._minificationFilter,magnificationFilter:n._magnificationFilter});c=new Rt({context:i,source:o,sampler:p}),n._textures[e]=c;return}c.copyFrom({source:o})}else u(c)||(n._textures[e]=i.defaultTexture);return}if(o instanceof Rt&&o!==c){n._texturePaths[e]=void 0;let p=n._textures[e];u(p)&&p!==n._defaultTexture&&p.destroy(),n._textures[e]=o,l=`${e}Dimensions`,r.hasOwnProperty(l)&&(f=r[l],f.x=o._width,f.y=o._height);return}if(s&&u(c)&&a&&(c!==n._defaultTexture&&c.destroy(),c=void 0),u(c)||(n._texturePaths[e]=void 0,c=n._textures[e]=n._defaultTexture,l=`${e}Dimensions`,r.hasOwnProperty(l)&&(f=r[l],f.x=c._width,f.y=c._height)),a)return;let d=o instanceof ve;if(!u(n._texturePaths[e])||d&&o.url!==n._texturePaths[e].url||!d&&o!==n._texturePaths[e]){if(typeof o=="string"||d){let p=d?o:ve.createIfNeeded(o),g;Wwe.test(p.url)?g=cl(p.url):g=p.fetchImage(),Promise.resolve(g).then(function(m){n._loadedImages.push({id:e,image:m})}).catch(function(){u(c)&&c!==n._defaultTexture&&c.destroy(),n._textures[e]=n._defaultTexture})}else(o instanceof HTMLCanvasElement||o instanceof HTMLImageElement)&&n._loadedImages.push({id:e,image:o});n._texturePaths[e]=o}}}function qwe(e){return function(t,n){let i=t.uniforms[e];if(i instanceof za){let o=t._textures[e];o!==t._defaultTexture&&o.destroy(),t._texturePaths[e]=void 0,t._textures[e]=i;return}if(u(t._textures[e])||(t._texturePaths[e]=void 0,t._textures[e]=n.defaultCubeMap),i===Ye.DefaultCubeMapId)return;let r=i.positiveX+i.negativeX+i.positiveY+i.negativeY+i.positiveZ+i.negativeZ;if(r!==t._texturePaths[e]){let o=[ve.createIfNeeded(i.positiveX).fetchImage(),ve.createIfNeeded(i.negativeX).fetchImage(),ve.createIfNeeded(i.positiveY).fetchImage(),ve.createIfNeeded(i.negativeY).fetchImage(),ve.createIfNeeded(i.positiveZ).fetchImage(),ve.createIfNeeded(i.negativeZ).fetchImage()];Promise.all(o).then(function(s){t._loadedCubeMaps.push({id:e,images:s})}),t._texturePaths[e]=r}}}function Ywe(e){let t=e._template.uniforms;for(let n in t)t.hasOwnProperty(n)&&s$(e,n)}function s$(e,t){let n=e._strict,i=e._template.uniforms,r=i[t],o=Xwe(r),s;if(o==="channels")s=kI(e,t,r,!1);else{if(o==="sampler2D"){let l=`${t}Dimensions`;Jwe(e,l)>0&&(i[l]={type:"ivec3",x:1,y:1},s$(e,l))}if(!new RegExp(`uniform\\s+${o}\\s+${t}\\s*;`).test(e.shaderSource)){let l=`uniform ${o} ${t};`;e.shaderSource=l+e.shaderSource}let c=`${t}_${e._count++}`;if(s=kI(e,t,c),e.uniforms[t]=r,o==="sampler2D")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(jwe(t));else if(o==="samplerCube")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(qwe(t));else if(o.indexOf("mat")!==-1){let l=new o$[o];e._uniforms[c]=function(){return o$[o].fromColumnMajorArray(e.uniforms[t],l)}}else e._uniforms[c]=function(){return e.uniforms[t]}}}function Xwe(e){let t=e.type;if(!u(t)){let n=typeof e;if(n==="number")t="float";else if(n==="boolean")t="bool";else if(n==="string"||e instanceof ve||e instanceof HTMLCanvasElement||e instanceof HTMLImageElement)/^([rgba]){1,4}$/i.test(e)?t="channels":e===Ye.DefaultCubeMapId?t="samplerCube":t="sampler2D";else if(n==="object")if(Array.isArray(e))(e.length===4||e.length===9||e.length===16)&&(t=`mat${Math.sqrt(e.length)}`);else{let i=0;for(let r in e)e.hasOwnProperty(r)&&(i+=1);i>=2&&i<=4?t=`vec${i}`:i===6&&(t="samplerCube")}}return t}function Kwe(e){let t=e._strict,n=e._template.materials;for(let i in n)if(n.hasOwnProperty(i)){let r=new Ye({strict:t,fabric:n[i],count:e._count});e._count=r._count,e._uniforms=_t(e._uniforms,r._uniforms,!0),e.materials[i]=r,e._translucentFunctions=e._translucentFunctions.concat(r._translucentFunctions);let o="czm_getMaterial",s=`${o}_${e._count++}`;kI(r,o,s),e.shaderSource=r.shaderSource+e.shaderSource;let a=`${s}(materialInput)`,c=kI(e,i,a)}}function kI(e,t,n,i){i=y(i,!0);let r=0,o="([\\w])?",s=`([\\w${i?".":""}])?`,a=new RegExp(s+t+o,"g");return e.shaderSource=e.shaderSource.replace(a,function(c,l,f){return l||f?c:(r+=1,n)}),r}function Jwe(e,t,n){return kI(e,t,t,n)}Ye._materialCache={_materials:{},addMaterial:function(e,t){this._materials[e]=t},getMaterial:function(e){return this._materials[e]}};Ye.DefaultImageId="czm_defaultImage";Ye.DefaultCubeMapId="czm_defaultCubeMap";Ye.ColorType="Color";Ye._materialCache.addMaterial(Ye.ColorType,{fabric:{type:Ye.ColorType,uniforms:{color:new z(1,0,0,.5)},components:{diffuse:"color.rgb",alpha:"color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});Ye.ImageType="Image";Ye._materialCache.addMaterial(Ye.ImageType,{fabric:{type:Ye.ImageType,uniforms:{image:Ye.DefaultImageId,repeat:new H(1,1),color:new z(1,1,1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).rgb * color.rgb",alpha:"texture(image, fract(repeat * materialInput.st)).a * color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});Ye.DiffuseMapType="DiffuseMap";Ye._materialCache.addMaterial(Ye.DiffuseMapType,{fabric:{type:Ye.DiffuseMapType,uniforms:{image:Ye.DefaultImageId,channels:"rgb",repeat:new H(1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});Ye.AlphaMapType="AlphaMap";Ye._materialCache.addMaterial(Ye.AlphaMapType,{fabric:{type:Ye.AlphaMapType,uniforms:{image:Ye.DefaultImageId,channel:"a",repeat:new H(1,1)},components:{alpha:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!0});Ye.SpecularMapType="SpecularMap";Ye._materialCache.addMaterial(Ye.SpecularMapType,{fabric:{type:Ye.SpecularMapType,uniforms:{image:Ye.DefaultImageId,channel:"r",repeat:new H(1,1)},components:{specular:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!1});Ye.EmissionMapType="EmissionMap";Ye._materialCache.addMaterial(Ye.EmissionMapType,{fabric:{type:Ye.EmissionMapType,uniforms:{image:Ye.DefaultImageId,channels:"rgb",repeat:new H(1,1)},components:{emission:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});Ye.BumpMapType="BumpMap";Ye._materialCache.addMaterial(Ye.BumpMapType,{fabric:{type:Ye.BumpMapType,uniforms:{image:Ye.DefaultImageId,channel:"r",strength:.8,repeat:new H(1,1)},source:EI},translucent:!1});Ye.NormalMapType="NormalMap";Ye._materialCache.addMaterial(Ye.NormalMapType,{fabric:{type:Ye.NormalMapType,uniforms:{image:Ye.DefaultImageId,channels:"rgb",strength:.8,repeat:new H(1,1)},source:OI},translucent:!1});Ye.GridType="Grid";Ye._materialCache.addMaterial(Ye.GridType,{fabric:{type:Ye.GridType,uniforms:{color:new z(0,1,0,1),cellAlpha:.1,lineCount:new H(8,8),lineThickness:new H(1,1),lineOffset:new H(0,0)},source:PI},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.cellAlpha<1}});Ye.StripeType="Stripe";Ye._materialCache.addMaterial(Ye.StripeType,{fabric:{type:Ye.StripeType,uniforms:{horizontal:!0,evenColor:new z(1,1,1,.5),oddColor:new z(0,0,1,.5),offset:0,repeat:5},source:UI},translucent:function(e){let t=e.uniforms;return t.evenColor.alpha<1||t.oddColor.alpha<1}});Ye.CheckerboardType="Checkerboard";Ye._materialCache.addMaterial(Ye.CheckerboardType,{fabric:{type:Ye.CheckerboardType,uniforms:{lightColor:new z(1,1,1,.5),darkColor:new z(0,0,0,.5),repeat:new H(5,5)},source:bI},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});Ye.DotType="Dot";Ye._materialCache.addMaterial(Ye.DotType,{fabric:{type:Ye.DotType,uniforms:{lightColor:new z(1,1,0,.75),darkColor:new z(0,1,1,.75),repeat:new H(5,5)},source:SI},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});Ye.WaterType="Water";Ye._materialCache.addMaterial(Ye.WaterType,{fabric:{type:Ye.WaterType,uniforms:{baseWaterColor:new z(.2,.3,.6,1),blendColor:new z(0,1,.699,1),specularMap:Ye.DefaultImageId,normalMap:Ye.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1},source:VI},translucent:function(e){let t=e.uniforms;return t.baseWaterColor.alpha<1||t.blendColor.alpha<1}});Ye.RimLightingType="RimLighting";Ye._materialCache.addMaterial(Ye.RimLightingType,{fabric:{type:Ye.RimLightingType,uniforms:{color:new z(1,0,0,.7),rimColor:new z(1,1,1,.4),width:.3},source:NI},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.rimColor.alpha<1}});Ye.FadeType="Fade";Ye._materialCache.addMaterial(Ye.FadeType,{fabric:{type:Ye.FadeType,uniforms:{fadeInColor:new z(1,0,0,1),fadeOutColor:new z(0,0,0,0),maximumDistance:.5,repeat:!0,fadeDirection:{x:!0,y:!0},time:new H(.5,.5)},source:II},translucent:function(e){let t=e.uniforms;return t.fadeInColor.alpha<1||t.fadeOutColor.alpha<1}});Ye.PolylineArrowType="PolylineArrow";Ye._materialCache.addMaterial(Ye.PolylineArrowType,{fabric:{type:Ye.PolylineArrowType,uniforms:{color:new z(1,1,1,1)},source:MI},translucent:!0});Ye.PolylineDashType="PolylineDash";Ye._materialCache.addMaterial(Ye.PolylineDashType,{fabric:{type:Ye.PolylineDashType,uniforms:{color:new z(1,0,1,1),gapColor:new z(0,0,0,0),dashLength:16,dashPattern:255},source:RI},translucent:!0});Ye.PolylineGlowType="PolylineGlow";Ye._materialCache.addMaterial(Ye.PolylineGlowType,{fabric:{type:Ye.PolylineGlowType,uniforms:{color:new z(0,.5,1,1),glowPower:.25,taperPower:1},source:BI},translucent:!0});Ye.PolylineOutlineType="PolylineOutline";Ye._materialCache.addMaterial(Ye.PolylineOutlineType,{fabric:{type:Ye.PolylineOutlineType,uniforms:{color:new z(1,1,1,1),outlineColor:new z(1,0,0,1),outlineWidth:1},source:LI},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.outlineColor.alpha<1}});Ye.ElevationContourType="ElevationContour";Ye._materialCache.addMaterial(Ye.ElevationContourType,{fabric:{type:Ye.ElevationContourType,uniforms:{spacing:100,color:new z(1,0,0,1),width:1},source:wI},translucent:!1});Ye.ElevationRampType="ElevationRamp";Ye._materialCache.addMaterial(Ye.ElevationRampType,{fabric:{type:Ye.ElevationRampType,uniforms:{image:Ye.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:DI},translucent:!1});Ye.SlopeRampMaterialType="SlopeRamp";Ye._materialCache.addMaterial(Ye.SlopeRampMaterialType,{fabric:{type:Ye.SlopeRampMaterialType,uniforms:{image:Ye.DefaultImageId},source:FI},translucent:!1});Ye.AspectRampMaterialType="AspectRamp";Ye._materialCache.addMaterial(Ye.AspectRampMaterialType,{fabric:{type:Ye.AspectRampMaterialType,uniforms:{image:Ye.DefaultImageId},source:TI},translucent:!1});Ye.ElevationBandType="ElevationBand";Ye._materialCache.addMaterial(Ye.ElevationBandType,{fabric:{type:Ye.ElevationBandType,uniforms:{heights:Ye.DefaultImageId,colors:Ye.DefaultImageId},source:vI},translucent:!0});var Gi=Ye;function k0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.materialSupport,k0.MaterialSupport.TEXTURED);this.material=u(e.material)?e.material:Gi.fromType(Gi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,i.vertexShaderSource),this._fragmentShaderSource=y(e.fragmentShaderSource,i.fragmentShaderSource),this._renderState=nr.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._materialSupport=i,this._vertexFormat=i.vertexFormat,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,!n)}Object.defineProperties(k0.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},materialSupport:{get:function(){return this._materialSupport}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});k0.prototype.getFragmentShaderSource=nr.prototype.getFragmentShaderSource;k0.prototype.isTranslucent=nr.prototype.isTranslucent;k0.prototype.getRenderState=nr.prototype.getRenderState;k0.MaterialSupport={BASIC:Object.freeze({vertexFormat:Pe.POSITION_AND_NORMAL,vertexShaderSource:AI,fragmentShaderSource:yI}),TEXTURED:Object.freeze({vertexFormat:Pe.POSITION_NORMAL_AND_ST,vertexShaderSource:CI,fragmentShaderSource:xI}),ALL:Object.freeze({vertexFormat:Pe.ALL,vertexShaderSource:gI,fragmentShaderSource:_I})};var lr=k0;var zI=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec4 v_color; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + vec4 color = czm_gammaCorrect(v_color); + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +} +`;var HI=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec4 color; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var z0=`in vec4 v_color; + +void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +} +`;var GI=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function cp(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.flat,!1),r=i?GI:HI,o=i?z0:zI,s=i?cp.FLAT_VERTEX_FORMAT:cp.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,r),this._fragmentShaderSource=y(e.fragmentShaderSource,o),this._renderState=nr.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=s,this._flat=i,this._faceForward=y(e.faceForward,!n)}Object.defineProperties(cp.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});cp.VERTEX_FORMAT=Pe.POSITION_AND_NORMAL;cp.FLAT_VERTEX_FORMAT=Pe.POSITION_ONLY;cp.prototype.getFragmentShaderSource=nr.prototype.getFragmentShaderSource;cp.prototype.isTranslucent=nr.prototype.isTranslucent;cp.prototype.getRenderState=nr.prototype.getRenderState;var rn=cp;function pT(e){this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(pT.prototype,{isConstant:{get:function(){return q.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color")});pT.prototype.getType=function(e){return"Color"};pT.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,z.WHITE,t.color),t};pT.prototype.equals=function(e){return this===e||e instanceof pT&&q.equals(this._color,e._color)};var Ut=pT;function ug(e){e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,re.WGS84),this._rectangle=y(e.rectangle,le.MAX_VALUE),this._projection=new Ii(this._ellipsoid),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(ug.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});ug.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};ug.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};ug.prototype.rectangleToNativeRectangle=function(e,t){let n=P.toDegrees(e.west),i=P.toDegrees(e.south),r=P.toDegrees(e.east),o=P.toDegrees(e.north);return u(t)?(t.west=n,t.south=i,t.east=r,t.north=o,t):new le(n,i,r,o)};ug.prototype.tileXYToNativeRectangle=function(e,t,n,i){let r=this.tileXYToRectangle(e,t,n,i);return r.west=P.toDegrees(r.west),r.south=P.toDegrees(r.south),r.east=P.toDegrees(r.east),r.north=P.toDegrees(r.north),r};ug.prototype.tileXYToRectangle=function(e,t,n,i){let r=this._rectangle,o=this.getNumberOfXTilesAtLevel(n),s=this.getNumberOfYTilesAtLevel(n),a=r.width/o,c=e*a+r.west,l=(e+1)*a+r.west,f=r.height/s,d=r.north-t*f,p=r.north-(t+1)*f;return u(i)||(i=new le(c,p,l,d)),i.west=c,i.south=p,i.east=l,i.north=d,i};ug.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!le.contains(i,e))return;let r=this.getNumberOfXTilesAtLevel(t),o=this.getNumberOfYTilesAtLevel(t),s=i.width/r,a=i.height/o,c=e.longitude;i.east<i.west&&(c+=P.TWO_PI);let l=(c-i.west)/s|0;l>=r&&(l=r-1);let f=(i.north-e.latitude)/a|0;return f>=o&&(f=o-1),u(n)?(n.x=l,n.y=f,n):new H(l,f)};var Wi=ug;var a$=new h,c$=new h,l$=new me,T8=new h,Zwe=new h,u$=new ae,Qwe=new Wi,WI=[new me,new me,new me,new me],jI=new H,Ho={};Ho.initialize=function(){let e=Ho._initPromise;return u(e)||(e=ve.fetchJson($t("Assets/approximateTerrainHeights.json")).then(function(t){Ho._terrainHeights=t}),Ho._initPromise=e),e};Ho.getMinimumMaximumHeights=function(e,t){t=y(t,re.WGS84);let n=f$(e),i=Ho._defaultMinTerrainHeight,r=Ho._defaultMaxTerrainHeight;if(u(n)){let o=`${n.level}-${n.x}-${n.y}`,s=Ho._terrainHeights[o];u(s)&&(i=s[0],r=s[1]),t.cartographicToCartesian(le.northeast(e,l$),a$),t.cartographicToCartesian(le.southwest(e,l$),c$),h.midpoint(c$,a$,T8);let a=t.scaleToGeodeticSurface(T8,Zwe);if(u(a)){let c=h.distance(T8,a);i=Math.min(i,-c)}else i=Ho._defaultMinTerrainHeight}return i=Math.max(Ho._defaultMinTerrainHeight,i),{minimumTerrainHeight:i,maximumTerrainHeight:r}};Ho.getBoundingSphere=function(e,t){t=y(t,re.WGS84);let n=f$(e),i=Ho._defaultMaxTerrainHeight;if(u(n)){let o=`${n.level}-${n.x}-${n.y}`,s=Ho._terrainHeights[o];u(s)&&(i=s[1])}let r=ae.fromRectangle3D(e,t,0);return ae.fromRectangle3D(e,t,i,u$),ae.union(r,u$,r)};function f$(e){me.fromRadians(e.east,e.north,0,WI[0]),me.fromRadians(e.west,e.north,0,WI[1]),me.fromRadians(e.east,e.south,0,WI[2]),me.fromRadians(e.west,e.south,0,WI[3]);let t=0,n=0,i=0,r=0,o=Ho._terrainHeightsMaxLevel,s;for(s=0;s<=o;++s){let a=!1;for(let c=0;c<4;++c){let l=WI[c];if(Qwe.positionToTileXY(l,s,jI),c===0)i=jI.x,r=jI.y;else if(i!==jI.x||r!==jI.y){a=!0;break}}if(a)break;t=i,n=r}if(s!==0)return{x:t,y:n,level:s>o?o:s-1}}Ho._terrainHeightsMaxLevel=6;Ho._defaultMaxTerrainHeight=9e3;Ho._defaultMinTerrainHeight=-1e5;Ho._terrainHeights=void 0;Ho._initPromise=void 0;Object.defineProperties(Ho,{initialized:{get:function(){return u(Ho._terrainHeights)}}});var si=Ho;function vc(e,t,n){this.minimum=h.clone(y(e,h.ZERO)),this.maximum=h.clone(y(t,h.ZERO)),u(n)?n=h.clone(n):n=h.midpoint(this.minimum,this.maximum,new h),this.center=n}vc.fromCorners=function(e,t,n){return u(n)||(n=new vc),n.minimum=h.clone(e,n.minimum),n.maximum=h.clone(t,n.maximum),n.center=h.midpoint(e,t,n.center),n};vc.fromPoints=function(e,t){if(u(t)||(t=new vc),!u(e)||e.length===0)return t.minimum=h.clone(h.ZERO,t.minimum),t.maximum=h.clone(h.ZERO,t.maximum),t.center=h.clone(h.ZERO,t.center),t;let n=e[0].x,i=e[0].y,r=e[0].z,o=e[0].x,s=e[0].y,a=e[0].z,c=e.length;for(let d=1;d<c;d++){let p=e[d],g=p.x,m=p.y,A=p.z;n=Math.min(g,n),o=Math.max(g,o),i=Math.min(m,i),s=Math.max(m,s),r=Math.min(A,r),a=Math.max(A,a)}let l=t.minimum;l.x=n,l.y=i,l.z=r;let f=t.maximum;return f.x=o,f.y=s,f.z=a,t.center=h.midpoint(l,f,t.center),t};vc.clone=function(e,t){if(u(e))return u(t)?(t.minimum=h.clone(e.minimum,t.minimum),t.maximum=h.clone(e.maximum,t.maximum),t.center=h.clone(e.center,t.center),t):new vc(e.minimum,e.maximum,e.center)};vc.equals=function(e,t){return e===t||u(e)&&u(t)&&h.equals(e.center,t.center)&&h.equals(e.minimum,t.minimum)&&h.equals(e.maximum,t.maximum)};var Z3=new h;vc.intersectPlane=function(e,t){Z3=h.subtract(e.maximum,e.minimum,Z3);let n=h.multiplyByScalar(Z3,.5,Z3),i=t.normal,r=n.x*Math.abs(i.x)+n.y*Math.abs(i.y)+n.z*Math.abs(i.z),o=h.dot(e.center,i)+t.distance;return o-r>0?Qt.INSIDE:o+r<0?Qt.OUTSIDE:Qt.INTERSECTING};vc.prototype.clone=function(e){return vc.clone(this,e)};vc.prototype.intersectPlane=function(e){return vc.intersectPlane(this,e)};vc.prototype.equals=function(e){return vc.equals(this,e)};var fg=vc;var E8={};E8.computeDiscriminant=function(e,t,n){return t*t-4*e*n};function d$(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}E8.computeRealRoots=function(e,t,n){let i;if(e===0)return t===0?[]:[-n/t];if(t===0){if(n===0)return[0,0];let c=Math.abs(n),l=Math.abs(e);if(c<l&&c/l<P.EPSILON14)return[0,0];if(c>l&&l/c<P.EPSILON14)return[];if(i=-n/e,i<0)return[];let f=Math.sqrt(i);return[-f,f]}else if(n===0)return i=-t/e,i<0?[i,0]:[0,i];let r=t*t,o=4*e*n,s=d$(r,-o,P.EPSILON14);if(s<0)return[];let a=-.5*d$(t,P.sign(t)*Math.sqrt(s),P.EPSILON14);return t>0?[a/e,n/a]:[n/a,a/e]};var wc=E8;var S8={};S8.computeDiscriminant=function(e,t,n,i){let r=e*e,o=t*t,s=n*n,a=i*i;return 18*e*t*n*i+o*s-27*r*a-4*(e*s*n+o*t*i)};function b8(e,t,n,i){let r=e,o=t/3,s=n/3,a=i,c=r*s,l=o*a,f=o*o,d=s*s,p=r*s-f,g=r*a-o*s,m=o*a-d,A=4*p*m-g*g,x,C;if(A<0){let Y,W,Z;f*l>=c*d?(Y=r,W=p,Z=-2*o*p+r*g):(Y=a,W=m,Z=-a*g+2*s*m);let K=-(Z<0?-1:1)*Math.abs(Y)*Math.sqrt(-A);C=-Z+K;let J=C/2,_e=J<0?-Math.pow(-J,1/3):Math.pow(J,1/3),xe=C===K?-_e:-W/_e;return x=W<=0?_e+xe:-Z/(_e*_e+xe*xe+W),f*l>=c*d?[(x-o)/r]:[-a/(x+s)]}let T=p,E=-2*o*p+r*g,S=m,v=-a*g+2*s*m,D=Math.sqrt(A),M=Math.sqrt(3)/2,O=Math.abs(Math.atan2(r*D,-E)/3);x=2*Math.sqrt(-T);let B=Math.cos(O);C=x*B;let L=x*(-B/2-M*Math.sin(O)),_=C+L>2*o?C-o:L-o,b=r,w=_/b;O=Math.abs(Math.atan2(a*D,-v)/3),x=2*Math.sqrt(-S),B=Math.cos(O),C=x*B,L=x*(-B/2-M*Math.sin(O));let I=-a,R=C+L<2*s?C+s:L+s,F=I/R,k=b*R,V=-_*R-b*I,G=_*I,U=(s*V-o*G)/(-o*V+s*k);return w<=U?w<=F?U<=F?[w,U,F]:[w,F,U]:[F,w,U]:w<=F?[U,w,F]:U<=F?[U,F,w]:[F,U,w]}S8.computeRealRoots=function(e,t,n,i){let r,o;if(e===0)return wc.computeRealRoots(t,n,i);if(t===0){if(n===0){if(i===0)return[0,0,0];o=-i/e;let s=o<0?-Math.pow(-o,1/3):Math.pow(o,1/3);return[s,s,s]}else if(i===0)return r=wc.computeRealRoots(e,0,n),r.Length===0?[0]:[r[0],0,r[1]];return b8(e,0,n,i)}else{if(n===0)return i===0?(o=-t/e,o<0?[o,0,0]:[0,0,o]):b8(e,t,0,i);if(i===0)return r=wc.computeRealRoots(e,t,n),r.length===0?[0]:r[1]<=0?[r[0],r[1],0]:r[0]>=0?[0,r[0],r[1]]:[r[0],0,r[1]]}return b8(e,t,n,i)};var H0=S8;var v8={};v8.computeDiscriminant=function(e,t,n,i,r){let o=e*e,s=o*e,a=t*t,c=a*t,l=n*n,f=l*n,d=i*i,p=d*i,g=r*r,m=g*r;return a*l*d-4*c*p-4*e*f*d+18*e*t*n*p-27*o*d*d+256*s*m+r*(18*c*n*i-4*a*f+16*e*l*l-80*e*t*l*i-6*e*a*d+144*o*n*d)+g*(144*e*a*n-27*a*a-128*o*l-192*o*t*i)};function ud(e,t,n,i){let r=e*e,o=t-3*r/8,s=n-t*e/2+r*e/8,a=i-n*e/4+t*r/16-3*r*r/256,c=H0.computeRealRoots(1,2*o,o*o-4*a,-s*s);if(c.length>0){let l=-e/4,f=c[c.length-1];if(Math.abs(f)<P.EPSILON14){let d=wc.computeRealRoots(1,o,a);if(d.length===2){let p=d[0],g=d[1],m;if(p>=0&&g>=0){let A=Math.sqrt(p),x=Math.sqrt(g);return[l-x,l-A,l+A,l+x]}else{if(p>=0&&g<0)return m=Math.sqrt(p),[l-m,l+m];if(p<0&&g>=0)return m=Math.sqrt(g),[l-m,l+m]}}return[]}else if(f>0){let d=Math.sqrt(f),p=(o+f-s/d)/2,g=(o+f+s/d)/2,m=wc.computeRealRoots(1,d,p),A=wc.computeRealRoots(1,-d,g);return m.length!==0?(m[0]+=l,m[1]+=l,A.length!==0?(A[0]+=l,A[1]+=l,m[1]<=A[0]?[m[0],m[1],A[0],A[1]]:A[1]<=m[0]?[A[0],A[1],m[0],m[1]]:m[0]>=A[0]&&m[1]<=A[1]?[A[0],m[0],m[1],A[1]]:A[0]>=m[0]&&A[1]<=m[1]?[m[0],A[0],A[1],m[1]]:m[0]>A[0]&&m[0]<A[1]?[A[0],m[0],A[1],m[1]]:[m[0],A[0],m[1],A[1]]):m):A.length!==0?(A[0]+=l,A[1]+=l,A):[]}}return[]}function qI(e,t,n,i){let r=n*n,o=t*t,s=e*e,a=-2*t,c=n*e+o-4*i,l=s*i-n*t*e+r,f=H0.computeRealRoots(1,a,c,l);if(f.length>0){let d=f[0],p=t-d,g=p*p,m=e/2,A=p/2,x=g-4*i,C=g+4*Math.abs(i),T=s-4*d,E=s+4*Math.abs(d),S,v;if(d<0||x*E<T*C){let b=Math.sqrt(T);S=b/2,v=b===0?0:(e*A-n)/b}else{let b=Math.sqrt(x);S=b===0?0:(e*A-n)/b,v=b/2}let D,M;m===0&&S===0?(D=0,M=0):P.sign(m)===P.sign(S)?(D=m+S,M=d/D):(M=m-S,D=d/M);let O,B;A===0&&v===0?(O=0,B=0):P.sign(A)===P.sign(v)?(O=A+v,B=i/O):(B=A-v,O=i/B);let L=wc.computeRealRoots(1,D,O),_=wc.computeRealRoots(1,M,B);if(L.length!==0)return _.length!==0?L[1]<=_[0]?[L[0],L[1],_[0],_[1]]:_[1]<=L[0]?[_[0],_[1],L[0],L[1]]:L[0]>=_[0]&&L[1]<=_[1]?[_[0],L[0],L[1],_[1]]:_[0]>=L[0]&&_[1]<=L[1]?[L[0],_[0],_[1],L[1]]:L[0]>_[0]&&L[0]<_[1]?[_[0],L[0],_[1],L[1]]:[L[0],_[0],L[1],_[1]]:L;if(_.length!==0)return _}return[]}v8.computeRealRoots=function(e,t,n,i,r){if(Math.abs(e)<P.EPSILON15)return H0.computeRealRoots(t,n,i,r);let o=t/e,s=n/e,a=i/e,c=r/e,l=o<0?1:0;switch(l+=s<0?l+1:l,l+=a<0?l+1:l,l+=c<0?l+1:l,l){case 0:return ud(o,s,a,c);case 1:return qI(o,s,a,c);case 2:return qI(o,s,a,c);case 3:return ud(o,s,a,c);case 4:return ud(o,s,a,c);case 5:return qI(o,s,a,c);case 6:return ud(o,s,a,c);case 7:return ud(o,s,a,c);case 8:return qI(o,s,a,c);case 9:return ud(o,s,a,c);case 10:return ud(o,s,a,c);case 11:return qI(o,s,a,c);case 12:return ud(o,s,a,c);case 13:return ud(o,s,a,c);case 14:return ud(o,s,a,c);case 15:return ud(o,s,a,c);default:return}};var YI=v8;function Q3(e,t){t=h.clone(y(t,h.ZERO)),h.equals(t,h.ZERO)||h.normalize(t,t),this.origin=h.clone(y(e,h.ZERO)),this.direction=t}Q3.clone=function(e,t){if(u(e))return u(t)?(t.origin=h.clone(e.origin),t.direction=h.clone(e.direction),t):new Q3(e.origin,e.direction)};Q3.getPoint=function(e,t,n){return u(n)||(n=new h),n=h.multiplyByScalar(e.direction,t,n),h.add(e.origin,n,n)};var vn=Q3;var io={};io.rayPlane=function(e,t,n){u(n)||(n=new h);let i=e.origin,r=e.direction,o=t.normal,s=h.dot(o,r);if(Math.abs(s)<P.EPSILON15)return;let a=(-t.distance-h.dot(o,i))/s;if(!(a<0))return n=h.multiplyByScalar(r,a,n),h.add(i,n,n)};var $we=new h,eDe=new h,x$=new h,h$=new h,m$=new h;io.rayTriangleParametric=function(e,t,n,i,r){r=y(r,!1);let o=e.origin,s=e.direction,a=h.subtract(n,t,$we),c=h.subtract(i,t,eDe),l=h.cross(s,c,x$),f=h.dot(a,l),d,p,g,m,A;if(r){if(f<P.EPSILON6||(d=h.subtract(o,t,h$),g=h.dot(d,l),g<0||g>f)||(p=h.cross(d,a,m$),m=h.dot(s,p),m<0||g+m>f))return;A=h.dot(c,p)/f}else{if(Math.abs(f)<P.EPSILON6)return;let x=1/f;if(d=h.subtract(o,t,h$),g=h.dot(d,l)*x,g<0||g>1||(p=h.cross(d,a,m$),m=h.dot(s,p)*x,m<0||g+m>1))return;A=h.dot(c,p)*x}return A};io.rayTriangle=function(e,t,n,i,r,o){let s=io.rayTriangleParametric(e,t,n,i,r);if(!(!u(s)||s<0))return u(o)||(o=new h),h.multiplyByScalar(e.direction,s,o),h.add(e.origin,o,o)};var tDe=new vn;io.lineSegmentTriangle=function(e,t,n,i,r,o,s){let a=tDe;h.clone(e,a.origin),h.subtract(t,e,a.direction),h.normalize(a.direction,a.direction);let c=io.rayTriangleParametric(a,n,i,r,o);if(!(!u(c)||c<0||c>h.distance(e,t)))return u(s)||(s=new h),h.multiplyByScalar(a.direction,c,s),h.add(a.origin,s,s)};function nDe(e,t,n,i){let r=t*t-4*e*n;if(r<0)return;if(r>0){let s=1/(2*e),a=Math.sqrt(r),c=(-t+a)*s,l=(-t-a)*s;return c<l?(i.root0=c,i.root1=l):(i.root0=l,i.root1=c),i}let o=-t/(2*e);if(o!==0)return i.root0=i.root1=o,i}var iDe={root0:0,root1:0};function C$(e,t,n){u(n)||(n=new Sc);let i=e.origin,r=e.direction,o=t.center,s=t.radius*t.radius,a=h.subtract(i,o,x$),c=h.dot(r,r),l=2*h.dot(r,a),f=h.magnitudeSquared(a)-s,d=nDe(c,l,f,iDe);if(u(d))return n.start=d.root0,n.stop=d.root1,n}io.raySphere=function(e,t,n){if(n=C$(e,t,n),!(!u(n)||n.stop<0))return n.start=Math.max(n.start,0),n};var rDe=new vn;io.lineSegmentSphere=function(e,t,n,i){let r=rDe;h.clone(e,r.origin);let o=h.subtract(t,e,r.direction),s=h.magnitude(o);if(h.normalize(o,o),i=C$(r,n,i),!(!u(i)||i.stop<0||i.start>s))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,s),i};var oDe=new h,sDe=new h;io.rayEllipsoid=function(e,t){let n=t.oneOverRadii,i=h.multiplyComponents(n,e.origin,oDe),r=h.multiplyComponents(n,e.direction,sDe),o=h.magnitudeSquared(i),s=h.dot(i,r),a,c,l,f,d;if(o>1){if(s>=0)return;let p=s*s;if(a=o-1,c=h.magnitudeSquared(r),l=c*a,p<l)return;if(p>l){f=s*s-l,d=-s+Math.sqrt(f);let m=d/c,A=a/d;return m<A?new Sc(m,A):{start:A,stop:m}}let g=Math.sqrt(a/c);return new Sc(g,g)}else if(o<1)return a=o-1,c=h.magnitudeSquared(r),l=c*a,f=s*s-l,d=-s+Math.sqrt(f),new Sc(0,d/c);if(s<0)return c=h.magnitudeSquared(r),new Sc(0,-s/c)};function G0(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}function aDe(e,t,n,i,r){let o=i*i,s=r*r,a=(e[Q.COLUMN1ROW1]-e[Q.COLUMN2ROW2])*s,c=r*(i*G0(e[Q.COLUMN1ROW0],e[Q.COLUMN0ROW1],P.EPSILON15)+t.y),l=e[Q.COLUMN0ROW0]*o+e[Q.COLUMN2ROW2]*s+i*t.x+n,f=s*G0(e[Q.COLUMN2ROW1],e[Q.COLUMN1ROW2],P.EPSILON15),d=r*(i*G0(e[Q.COLUMN2ROW0],e[Q.COLUMN0ROW2])+t.z),p,g=[];if(d===0&&f===0){if(p=wc.computeRealRoots(a,c,l),p.length===0)return g;let O=p[0],B=Math.sqrt(Math.max(1-O*O,0));if(g.push(new h(i,r*O,r*-B)),g.push(new h(i,r*O,r*B)),p.length===2){let L=p[1],_=Math.sqrt(Math.max(1-L*L,0));g.push(new h(i,r*L,r*-_)),g.push(new h(i,r*L,r*_))}return g}let m=d*d,A=f*f,x=a*a,C=d*f,T=x+A,E=2*(c*a+C),S=2*l*a+c*c-A+m,v=2*(l*c-C),D=l*l-m;if(T===0&&E===0&&S===0&&v===0)return g;p=YI.computeRealRoots(T,E,S,v,D);let M=p.length;if(M===0)return g;for(let O=0;O<M;++O){let B=p[O],L=B*B,_=Math.max(1-L,0),b=Math.sqrt(_),w;P.sign(a)===P.sign(l)?w=G0(a*L+l,c*B,P.EPSILON12):P.sign(l)===P.sign(c*B)?w=G0(a*L,c*B+l,P.EPSILON12):w=G0(a*L+c*B,l,P.EPSILON12);let I=G0(f*B,d,P.EPSILON15),R=w*I;R<0?g.push(new h(i,r*B,r*b)):R>0?g.push(new h(i,r*B,r*-b)):b!==0?(g.push(new h(i,r*B,r*-b)),g.push(new h(i,r*B,r*b)),++O):g.push(new h(i,r*B,r*b))}return g}var w8=new h,p$=new h,_$=new h,$3=new h,cDe=new h,lDe=new Q,uDe=new Q,fDe=new Q,dDe=new Q,hDe=new Q,g$=new Q,y$=new Q,A$=new h,mDe=new h,pDe=new me;io.grazingAltitudeLocation=function(e,t){let n=e.origin,i=e.direction;if(!h.equals(n,h.ZERO)){let D=t.geodeticSurfaceNormal(n,w8);if(h.dot(i,D)>=0)return n}let r=u(this.rayEllipsoid(e,t)),o=t.transformPositionToScaledSpace(i,w8),s=h.normalize(o,o),a=h.mostOrthogonalAxis(o,$3),c=h.normalize(h.cross(a,s,p$),p$),l=h.normalize(h.cross(s,c,_$),_$),f=lDe;f[0]=s.x,f[1]=s.y,f[2]=s.z,f[3]=c.x,f[4]=c.y,f[5]=c.z,f[6]=l.x,f[7]=l.y,f[8]=l.z;let d=Q.transpose(f,uDe),p=Q.fromScale(t.radii,fDe),g=Q.fromScale(t.oneOverRadii,dDe),m=hDe;m[0]=0,m[1]=-i.z,m[2]=i.y,m[3]=i.z,m[4]=0,m[5]=-i.x,m[6]=-i.y,m[7]=i.x,m[8]=0;let A=Q.multiply(Q.multiply(d,g,g$),m,g$),x=Q.multiply(Q.multiply(A,p,y$),f,y$),C=Q.multiplyByVector(A,n,cDe),T=aDe(x,h.negate(C,w8),0,0,1),E,S,v=T.length;if(v>0){let D=h.clone(h.ZERO,mDe),M=Number.NEGATIVE_INFINITY;for(let B=0;B<v;++B){E=Q.multiplyByVector(p,Q.multiplyByVector(f,T[B],A$),A$);let L=h.normalize(h.subtract(E,n,$3),$3),_=h.dot(L,i);_>M&&(M=_,D=h.clone(E,D))}let O=t.cartesianToCartographic(D,pDe);return M=P.clamp(M,0,1),S=h.magnitude(h.subtract(D,n,$3))*Math.sqrt(1-M*M),S=r?-S:S,O.height=S,t.cartographicToCartesian(O,new h)}};var _De=new h;io.lineSegmentPlane=function(e,t,n,i){u(i)||(i=new h);let r=h.subtract(t,e,_De),o=n.normal,s=h.dot(o,r);if(Math.abs(s)<P.EPSILON6)return;let a=h.dot(o,e),c=-(n.distance+a)/s;if(!(c<0||c>1))return h.multiplyByScalar(r,c,i),h.add(e,i,i),i};io.trianglePlaneIntersection=function(e,t,n,i){let r=i.normal,o=i.distance,s=h.dot(r,e)+o<0,a=h.dot(r,t)+o<0,c=h.dot(r,n)+o<0,l=0;l+=s?1:0,l+=a?1:0,l+=c?1:0;let f,d;if((l===1||l===2)&&(f=new h,d=new h),l===1){if(s)return io.lineSegmentPlane(e,t,i,f),io.lineSegmentPlane(e,n,i,d),{positions:[e,t,n,f,d],indices:[0,3,4,1,2,4,1,4,3]};if(a)return io.lineSegmentPlane(t,n,i,f),io.lineSegmentPlane(t,e,i,d),{positions:[e,t,n,f,d],indices:[1,3,4,2,0,4,2,4,3]};if(c)return io.lineSegmentPlane(n,e,i,f),io.lineSegmentPlane(n,t,i,d),{positions:[e,t,n,f,d],indices:[2,3,4,0,1,4,0,4,3]}}else if(l===2)if(s)if(a){if(!c)return io.lineSegmentPlane(e,n,i,f),io.lineSegmentPlane(t,n,i,d),{positions:[e,t,n,f,d],indices:[0,1,4,0,4,3,2,3,4]}}else return io.lineSegmentPlane(n,t,i,f),io.lineSegmentPlane(e,t,i,d),{positions:[e,t,n,f,d],indices:[2,0,4,2,4,3,1,3,4]};else return io.lineSegmentPlane(t,e,i,f),io.lineSegmentPlane(n,e,i,d),{positions:[e,t,n,f,d],indices:[1,2,4,1,4,3,0,3,4]}};var Ji=io;var D8=new se;function zh(e,t){t=y(t,re.WGS84),e=t.scaleToGeodeticSurface(e);let n=Mt.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=h.fromCartesian4(N.getColumn(n,0,D8)),this._yAxis=h.fromCartesian4(N.getColumn(n,1,D8));let i=h.fromCartesian4(N.getColumn(n,2,D8));this._plane=cn.fromPointNormal(e,i)}Object.defineProperties(zh.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var gDe=new fg;zh.fromPoints=function(e,t){let n=fg.fromPoints(e,gDe);return new zh(n.center,t)};var T$=new vn,eU=new h;zh.prototype.projectPointOntoPlane=function(e,t){let n=T$;n.origin=e,h.normalize(e,n.direction);let i=Ji.rayPlane(n,this._plane,eU);if(u(i)||(h.negate(n.direction,n.direction),i=Ji.rayPlane(n,this._plane,eU)),u(i)){let r=h.subtract(i,this._origin,i),o=h.dot(this._xAxis,r),s=h.dot(this._yAxis,r);return u(t)?(t.x=o,t.y=s,t):new H(o,s)}};zh.prototype.projectPointsOntoPlane=function(e,t){u(t)||(t=[]);let n=0,i=e.length;for(let r=0;r<i;r++){let o=this.projectPointOntoPlane(e[r],t[n]);u(o)&&(t[n]=o,n++)}return t.length=n,t};zh.prototype.projectPointToNearestOnPlane=function(e,t){u(t)||(t=new H);let n=T$;n.origin=e,h.clone(this._plane.normal,n.direction);let i=Ji.rayPlane(n,this._plane,eU);u(i)||(h.negate(n.direction,n.direction),i=Ji.rayPlane(n,this._plane,eU));let r=h.subtract(i,this._origin,i),o=h.dot(this._xAxis,r),s=h.dot(this._yAxis,r);return t.x=o,t.y=s,t};zh.prototype.projectPointsToNearestOnPlane=function(e,t){u(t)||(t=[]);let n=e.length;t.length=n;for(let i=0;i<n;i++)t[i]=this.projectPointToNearestOnPlane(e[i],t[i]);return t};var yDe=new h;zh.prototype.projectPointOntoEllipsoid=function(e,t){u(t)||(t=new h);let n=this._ellipsoid,i=this._origin,r=this._xAxis,o=this._yAxis,s=yDe;return h.multiplyByScalar(r,e.x,s),t=h.add(i,s,t),h.multiplyByScalar(o,e.y,s),h.add(t,s,t),n.scaleToGeocentricSurface(t,t),t};zh.prototype.projectPointsOntoEllipsoid=function(e,t){let n=e.length;u(t)?t.length=n:t=new Array(n);for(let i=0;i<n;++i)t[i]=this.projectPointOntoEllipsoid(e[i],t[i]);return t};var _a=zh;function Fi(e,t){this.center=h.clone(y(e,h.ZERO)),this.halfAxes=Q.clone(y(t,Q.ZERO))}Fi.packedLength=h.packedLength+Q.packedLength;Fi.pack=function(e,t,n){return n=y(n,0),h.pack(e.center,t,n),Q.pack(e.halfAxes,t,n+h.packedLength),t};Fi.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Fi),h.unpack(e,t,n.center),Q.unpack(e,t+h.packedLength,n.halfAxes),n};var ADe=new h,xDe=new h,CDe=new h,TDe=new h,EDe=new h,bDe=new h,SDe=new Q,vDe={unitary:new Q,diagonal:new Q};Fi.fromPoints=function(e,t){if(u(t)||(t=new Fi),!u(e)||e.length===0)return t.halfAxes=Q.ZERO,t.center=h.ZERO,t;let n,i=e.length,r=h.clone(e[0],ADe);for(n=1;n<i;n++)h.add(r,e[n],r);let o=1/i;h.multiplyByScalar(r,o,r);let s=0,a=0,c=0,l=0,f=0,d=0,p;for(n=0;n<i;n++)p=h.subtract(e[n],r,xDe),s+=p.x*p.x,a+=p.x*p.y,c+=p.x*p.z,l+=p.y*p.y,f+=p.y*p.z,d+=p.z*p.z;s*=o,a*=o,c*=o,l*=o,f*=o,d*=o;let g=SDe;g[0]=s,g[1]=a,g[2]=c,g[3]=a,g[4]=l,g[5]=f,g[6]=c,g[7]=f,g[8]=d;let m=Q.computeEigenDecomposition(g,vDe),A=Q.clone(m.unitary,t.halfAxes),x=Q.getColumn(A,0,TDe),C=Q.getColumn(A,1,EDe),T=Q.getColumn(A,2,bDe),E=-Number.MAX_VALUE,S=-Number.MAX_VALUE,v=-Number.MAX_VALUE,D=Number.MAX_VALUE,M=Number.MAX_VALUE,O=Number.MAX_VALUE;for(n=0;n<i;n++)p=e[n],E=Math.max(h.dot(x,p),E),S=Math.max(h.dot(C,p),S),v=Math.max(h.dot(T,p),v),D=Math.min(h.dot(x,p),D),M=Math.min(h.dot(C,p),M),O=Math.min(h.dot(T,p),O);x=h.multiplyByScalar(x,.5*(D+E),x),C=h.multiplyByScalar(C,.5*(M+S),C),T=h.multiplyByScalar(T,.5*(O+v),T);let B=h.add(x,C,t.center);h.add(B,T,B);let L=CDe;return L.x=E-D,L.y=S-M,L.z=v-O,h.multiplyByScalar(L,.5,L),Q.multiplyByScale(t.halfAxes,L,t.halfAxes),t};var D$=new h,wDe=new h;function E$(e,t,n,i,r,o,s,a,c,l,f){u(f)||(f=new Fi);let d=f.halfAxes;Q.setColumn(d,0,t,d),Q.setColumn(d,1,n,d),Q.setColumn(d,2,i,d);let p=D$;p.x=(r+o)/2,p.y=(s+a)/2,p.z=(c+l)/2;let g=wDe;g.x=(o-r)/2,g.y=(a-s)/2,g.z=(l-c)/2;let m=f.center;return p=Q.multiplyByVector(d,p,p),h.add(e,p,m),Q.multiplyByScale(d,g,d),f}var b$=new me,DDe=new h,IDe=new me,PDe=new me,ODe=new me,MDe=new me,RDe=new me,BDe=new h,S$=new h,LDe=new h,v$=new h,NDe=new h,FDe=new H,UDe=new H,VDe=new H,kDe=new H,zDe=new H,HDe=new h,GDe=new h,WDe=new h,jDe=new h,qDe=new H,YDe=new h,XDe=new h,KDe=new h,JDe=new cn(h.UNIT_X,0);Fi.fromRectangle=function(e,t,n,i,r){t=y(t,0),n=y(n,0),i=y(i,re.WGS84);let o,s,a,c,l,f,d;if(e.width<=P.PI){let M=le.center(e,b$),O=i.cartographicToCartesian(M,DDe),B=new _a(O,i);d=B.plane;let L=M.longitude,_=e.south<0&&e.north>0?0:M.latitude,b=me.fromRadians(L,e.north,n,IDe),w=me.fromRadians(e.west,e.north,n,PDe),I=me.fromRadians(e.west,_,n,ODe),R=me.fromRadians(e.west,e.south,n,MDe),F=me.fromRadians(L,e.south,n,RDe),k=i.cartographicToCartesian(b,BDe),V=i.cartographicToCartesian(w,S$),G=i.cartographicToCartesian(I,LDe),U=i.cartographicToCartesian(R,v$),Y=i.cartographicToCartesian(F,NDe),W=B.projectPointToNearestOnPlane(k,FDe),Z=B.projectPointToNearestOnPlane(V,UDe),j=B.projectPointToNearestOnPlane(G,VDe),K=B.projectPointToNearestOnPlane(U,kDe),J=B.projectPointToNearestOnPlane(Y,zDe);return o=Math.min(Z.x,j.x,K.x),s=-o,c=Math.max(Z.y,W.y),a=Math.min(K.y,J.y),w.height=R.height=t,V=i.cartographicToCartesian(w,S$),U=i.cartographicToCartesian(R,v$),l=Math.min(cn.getPointDistance(d,V),cn.getPointDistance(d,U)),f=n,E$(B.origin,B.xAxis,B.yAxis,B.zAxis,o,s,a,c,l,f,r)}let p=e.south>0,g=e.north<0,m=p?e.south:g?e.north:0,A=le.center(e,b$).longitude,x=h.fromRadians(A,m,n,i,HDe);x.z=0;let T=Math.abs(x.x)<P.EPSILON10&&Math.abs(x.y)<P.EPSILON10?h.UNIT_X:h.normalize(x,GDe),E=h.UNIT_Z,S=h.cross(T,E,WDe);d=cn.fromPointNormal(x,T,JDe);let v=h.fromRadians(A+P.PI_OVER_TWO,m,n,i,jDe);s=h.dot(cn.projectPointOntoPlane(d,v,qDe),S),o=-s,c=h.fromRadians(0,e.north,g?t:n,i,YDe).z,a=h.fromRadians(0,e.south,p?t:n,i,XDe).z;let D=h.fromRadians(e.east,m,n,i,KDe);return l=cn.getPointDistance(d,D),f=0,E$(x,S,E,T,o,s,a,c,l,f,r)};Fi.fromTransformation=function(e,t){return u(t)||(t=new Fi),t.center=N.getTranslation(e,t.center),t.halfAxes=N.getMatrix3(e,t.halfAxes),t.halfAxes=Q.multiplyByScalar(t.halfAxes,.5,t.halfAxes),t};Fi.clone=function(e,t){if(u(e))return u(t)?(h.clone(e.center,t.center),Q.clone(e.halfAxes,t.halfAxes),t):new Fi(e.center,e.halfAxes)};Fi.intersectPlane=function(e,t){let n=e.center,i=t.normal,r=e.halfAxes,o=i.x,s=i.y,a=i.z,c=Math.abs(o*r[Q.COLUMN0ROW0]+s*r[Q.COLUMN0ROW1]+a*r[Q.COLUMN0ROW2])+Math.abs(o*r[Q.COLUMN1ROW0]+s*r[Q.COLUMN1ROW1]+a*r[Q.COLUMN1ROW2])+Math.abs(o*r[Q.COLUMN2ROW0]+s*r[Q.COLUMN2ROW1]+a*r[Q.COLUMN2ROW2]),l=h.dot(i,n)+t.distance;return l<=-c?Qt.OUTSIDE:l>=c?Qt.INSIDE:Qt.INTERSECTING};var I$=new h,P$=new h,O$=new h,ZDe=new h,w$=new h,QDe=new h;Fi.distanceSquaredTo=function(e,t){let n=h.subtract(t,e.center,D$),i=e.halfAxes,r=Q.getColumn(i,0,I$),o=Q.getColumn(i,1,P$),s=Q.getColumn(i,2,O$),a=h.magnitude(r),c=h.magnitude(o),l=h.magnitude(s),f=!0,d=!0,p=!0;a>0?h.divideByScalar(r,a,r):f=!1,c>0?h.divideByScalar(o,c,o):d=!1,l>0?h.divideByScalar(s,l,s):p=!1;let g=!f+!d+!p,m,A,x;if(g===1){let S=r;m=o,A=s,d?p||(S=s,A=r):(S=o,m=r),x=h.cross(m,A,w$),S===r?r=x:S===o?o=x:S===s&&(s=x)}else if(g===2){m=r,d?m=o:p&&(m=s);let S=h.UNIT_Y;S.equalsEpsilon(m,P.EPSILON3)&&(S=h.UNIT_X),A=h.cross(m,S,ZDe),h.normalize(A,A),x=h.cross(m,A,w$),h.normalize(x,x),m===r?(o=A,s=x):m===o?(s=A,r=x):m===s&&(r=A,o=x)}else g===3&&(r=h.UNIT_X,o=h.UNIT_Y,s=h.UNIT_Z);let C=QDe;C.x=h.dot(n,r),C.y=h.dot(n,o),C.z=h.dot(n,s);let T=0,E;return C.x<-a?(E=C.x+a,T+=E*E):C.x>a&&(E=C.x-a,T+=E*E),C.y<-c?(E=C.y+c,T+=E*E):C.y>c&&(E=C.y-c,T+=E*E),C.z<-l?(E=C.z+l,T+=E*E):C.z>l&&(E=C.z-l,T+=E*E),T};var $De=new h,eIe=new h;Fi.computePlaneDistances=function(e,t,n,i){u(i)||(i=new Sc);let r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,s=e.center,a=e.halfAxes,c=Q.getColumn(a,0,I$),l=Q.getColumn(a,1,P$),f=Q.getColumn(a,2,O$),d=h.add(c,l,$De);h.add(d,f,d),h.add(d,s,d);let p=h.subtract(d,t,eIe),g=h.dot(n,p);return r=Math.min(g,r),o=Math.max(g,o),h.add(s,c,d),h.add(d,l,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),r=Math.min(g,r),o=Math.max(g,o),h.add(s,c,d),h.subtract(d,l,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),r=Math.min(g,r),o=Math.max(g,o),h.add(s,c,d),h.subtract(d,l,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),r=Math.min(g,r),o=Math.max(g,o),h.subtract(s,c,d),h.add(d,l,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),r=Math.min(g,r),o=Math.max(g,o),h.subtract(s,c,d),h.add(d,l,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),r=Math.min(g,r),o=Math.max(g,o),h.subtract(s,c,d),h.subtract(d,l,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),r=Math.min(g,r),o=Math.max(g,o),h.subtract(s,c,d),h.subtract(d,l,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),r=Math.min(g,r),o=Math.max(g,o),i.start=r,i.stop=o,i};var tIe=new h,nIe=new h,iIe=new h;Fi.computeCorners=function(e,t){u(t)||(t=[new h,new h,new h,new h,new h,new h,new h,new h]);let n=e.center,i=e.halfAxes,r=Q.getColumn(i,0,tIe),o=Q.getColumn(i,1,nIe),s=Q.getColumn(i,2,iIe);return h.clone(n,t[0]),h.subtract(t[0],r,t[0]),h.subtract(t[0],o,t[0]),h.subtract(t[0],s,t[0]),h.clone(n,t[1]),h.subtract(t[1],r,t[1]),h.subtract(t[1],o,t[1]),h.add(t[1],s,t[1]),h.clone(n,t[2]),h.subtract(t[2],r,t[2]),h.add(t[2],o,t[2]),h.subtract(t[2],s,t[2]),h.clone(n,t[3]),h.subtract(t[3],r,t[3]),h.add(t[3],o,t[3]),h.add(t[3],s,t[3]),h.clone(n,t[4]),h.add(t[4],r,t[4]),h.subtract(t[4],o,t[4]),h.subtract(t[4],s,t[4]),h.clone(n,t[5]),h.add(t[5],r,t[5]),h.subtract(t[5],o,t[5]),h.add(t[5],s,t[5]),h.clone(n,t[6]),h.add(t[6],r,t[6]),h.add(t[6],o,t[6]),h.subtract(t[6],s,t[6]),h.clone(n,t[7]),h.add(t[7],r,t[7]),h.add(t[7],o,t[7]),h.add(t[7],s,t[7]),t};var rIe=new Q;Fi.computeTransformation=function(e,t){u(t)||(t=new N);let n=e.center,i=Q.multiplyByUniformScale(e.halfAxes,2,rIe);return N.fromRotationTranslation(i,n,t)};var oIe=new ae;Fi.isOccluded=function(e,t){let n=ae.fromOrientedBoundingBox(e,oIe);return!t.isBoundingSphereVisible(n)};Fi.prototype.intersectPlane=function(e){return Fi.intersectPlane(this,e)};Fi.prototype.distanceSquaredTo=function(e){return Fi.distanceSquaredTo(this,e)};Fi.prototype.computePlaneDistances=function(e,t,n){return Fi.computePlaneDistances(this,e,t,n)};Fi.prototype.computeCorners=function(e){return Fi.computeCorners(this,e)};Fi.prototype.computeTransformation=function(e){return Fi.computeTransformation(this,e)};Fi.prototype.isOccluded=function(e){return Fi.isOccluded(this,e)};Fi.equals=function(e,t){return e===t||u(e)&&u(t)&&h.equals(e.center,t.center)&&Q.equals(e.halfAxes,t.halfAxes)};Fi.prototype.clone=function(e){return Fi.clone(this,e)};Fi.prototype.equals=function(e){return Fi.equals(this,e)};var On=Fi;var tU={};tU.getHeight=function(e,t,n){return(e-n)*t+n};var sIe=new h;tU.getPosition=function(e,t,n,i,r){let o=t.cartesianToCartographic(e,sIe),s=tU.getHeight(o.height,n,i);return h.fromRadians(o.longitude,o.latitude,s,t,r)};var Dc=tU;var XI=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; + +#ifdef EXTRUDED_GEOMETRY +in vec3 extrudeDirection; + +uniform float u_globeMinimumAltitude; +#endif // EXTRUDED_GEOMETRY + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif // PER_INSTANCE_COLOR + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL +out vec4 v_sphericalExtents; +#else // SPHERICAL +out vec2 v_inversePlaneExtents; +out vec4 v_westPlane; +out vec4 v_southPlane; +#endif // SPHERICAL +out vec3 v_uvMinAndSphericalLongitudeRotation; +out vec3 v_uMaxAndInverseDistance; +out vec3 v_vMaxAndInverseDistance; +#endif // TEXTURE_COORDINATES + +void main() +{ + vec4 position = czm_computePosition(); + +#ifdef EXTRUDED_GEOMETRY + float delta = min(u_globeMinimumAltitude, czm_geometricToleranceOverMeter * length(position.xyz)); + delta *= czm_sceneMode == czm_sceneMode3D ? 1.0 : 0.0; + + //extrudeDirection is zero for the top layer + position = position + vec4(extrudeDirection * delta, 0.0); +#endif + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL + v_sphericalExtents = czm_batchTable_sphericalExtents(batchId); + v_uvMinAndSphericalLongitudeRotation.z = czm_batchTable_longitudeRotation(batchId); +#else // SPHERICAL +#ifdef COLUMBUS_VIEW_2D + vec4 planes2D_high = czm_batchTable_planes2D_HIGH(batchId); + vec4 planes2D_low = czm_batchTable_planes2D_LOW(batchId); + + // If the primitive is split across the IDL (planes2D_high.x > planes2D_high.w): + // - If this vertex is on the east side of the IDL (position3DLow.y > 0.0, comparison with position3DHigh may produce artifacts) + // - existing "east" is on the wrong side of the world, far away (planes2D_high/low.w) + // - so set "east" as beyond the eastmost extent of the projection (idlSplitNewPlaneHiLow) + vec2 idlSplitNewPlaneHiLow = vec2(EAST_MOST_X_HIGH - (WEST_MOST_X_HIGH - planes2D_high.w), EAST_MOST_X_LOW - (WEST_MOST_X_LOW - planes2D_low.w)); + bool idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y > 0.0; + planes2D_high.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.w); + planes2D_low.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.w); + + // - else, if this vertex is on the west side of the IDL (position3DLow.y < 0.0) + // - existing "west" is on the wrong side of the world, far away (planes2D_high/low.x) + // - so set "west" as beyond the westmost extent of the projection (idlSplitNewPlaneHiLow) + idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y < 0.0; + idlSplitNewPlaneHiLow = vec2(WEST_MOST_X_HIGH - (EAST_MOST_X_HIGH - planes2D_high.x), WEST_MOST_X_LOW - (EAST_MOST_X_LOW - planes2D_low.x)); + planes2D_high.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.x); + planes2D_low.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.x); + + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.xy), vec3(0.0, planes2D_low.xy))).xyz; + vec3 northWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.x, planes2D_high.z), vec3(0.0, planes2D_low.x, planes2D_low.z))).xyz; + vec3 southEastCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.w, planes2D_high.y), vec3(0.0, planes2D_low.w, planes2D_low.y))).xyz; +#else // COLUMBUS_VIEW_2D + // 3D case has smaller "plane extents," so planes encoded as a 64 bit position and 2 vec3s for distances/direction + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(czm_batchTable_southWest_HIGH(batchId), czm_batchTable_southWest_LOW(batchId))).xyz; + vec3 northWestCorner = czm_normal * czm_batchTable_northward(batchId) + southWestCorner; + vec3 southEastCorner = czm_normal * czm_batchTable_eastward(batchId) + southWestCorner; +#endif // COLUMBUS_VIEW_2D + + vec3 eastWard = southEastCorner - southWestCorner; + float eastExtent = length(eastWard); + eastWard /= eastExtent; + + vec3 northWard = northWestCorner - southWestCorner; + float northExtent = length(northWard); + northWard /= northExtent; + + v_westPlane = vec4(eastWard, -dot(eastWard, southWestCorner)); + v_southPlane = vec4(northWard, -dot(northWard, southWestCorner)); + v_inversePlaneExtents = vec2(1.0 / eastExtent, 1.0 / northExtent); +#endif // SPHERICAL + vec4 uvMinAndExtents = czm_batchTable_uvMinAndExtents(batchId); + vec4 uMaxVmax = czm_batchTable_uMaxVmax(batchId); + + v_uMaxAndInverseDistance = vec3(uMaxVmax.xy, uvMinAndExtents.z); + v_vMaxAndInverseDistance = vec3(uMaxVmax.zw, uvMinAndExtents.w); + v_uvMinAndSphericalLongitudeRotation.xy = uvMinAndExtents.xy; +#endif // TEXTURE_COORDINATES + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif + + gl_Position = czm_depthClamp(czm_modelViewProjectionRelativeToEye * position); +} +`;var dg=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +void main(void) +{ +#ifdef VECTOR_TILE + out_FragColor = czm_gammaCorrect(u_highlightColor); +#else + out_FragColor = vec4(1.0); +#endif + czm_writeDepthClamp(); +} +`;var M$={TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2};M$.NUMBER_OF_CLASSIFICATION_TYPES=3;var kn=Object.freeze(M$);var aIe={NEVER:te.NEVER,LESS:te.LESS,EQUAL:te.EQUAL,LESS_OR_EQUAL:te.LEQUAL,GREATER:te.GREATER,NOT_EQUAL:te.NOTEQUAL,GREATER_OR_EQUAL:te.GEQUAL,ALWAYS:te.ALWAYS},Wa=Object.freeze(aIe);function cIe(e,t){let n=[],i=e.length,r=0;for(;r<i;){let o=Math.ceil((i-r)/t--);n.push(e.slice(r,r+o)),r+=o}return n}var KI=cIe;function lp(e,t,n){if(this._attributes=t,this._numberOfInstances=n,t.length===0)return;let i=lIe(t),r=e.floatingPointTexture,o=i===Ke.FLOAT&&!r,s=uIe(t,o),a=fIe(s,t,o),c=Math.floor(zt.maximumTextureSize/a),l=Math.min(n,c),f=a*l,d=Math.ceil(n/l),p=1/f,g=p*.5,m=1/d,A=m*.5;this._textureDimensions=new H(f,d),this._textureStep=new se(p,g,m,A),this._pixelDatatype=o?Ke.UNSIGNED_BYTE:i,this._packFloats=o,this._offsets=s,this._stride=a,this._texture=void 0;let x=4*f*d;this._batchValues=i===Ke.FLOAT&&!o?new Float32Array(x):new Uint8Array(x),this._batchValuesDirty=!1}Object.defineProperties(lp.prototype,{attributes:{get:function(){return this._attributes}},numberOfInstances:{get:function(){return this._numberOfInstances}}});function lIe(e){let t=!1,n=e.length;for(let i=0;i<n;++i)if(e[i].componentDatatype!==X.UNSIGNED_BYTE){t=!0;break}return t?Ke.FLOAT:Ke.UNSIGNED_BYTE}function B$(e,t){let n=e[t].componentsPerAttribute;return n===2?H:n===3?h:n===4?se:Number}function uIe(e,t){let n=new Array(e.length),i=0,r=e.length;for(let o=0;o<r;++o){let a=e[o].componentDatatype;n[o]=i,a!==X.UNSIGNED_BYTE&&t?i+=4:++i}return n}function fIe(e,t,n){let i=e.length,r=e[i-1];return t[i-1].componentDatatype!==X.UNSIGNED_BYTE&&n?r+4:r+1}var JI=new se;function dIe(e,t,n){let i=se.unpack(e,t,JI),r=se.unpackFloat(i);i=se.unpack(e,t+4,JI);let o=se.unpackFloat(i);i=se.unpack(e,t+8,JI);let s=se.unpackFloat(i);i=se.unpack(e,t+12,JI);let a=se.unpackFloat(i);return se.fromElements(r,o,s,a,n)}function hIe(e,t,n){let i=se.packFloat(e.x,JI);se.pack(i,t,n),i=se.packFloat(e.y,i),se.pack(i,t,n+4),i=se.packFloat(e.z,i),se.pack(i,t,n+8),i=se.packFloat(e.w,i),se.pack(i,t,n+12)}var R$=new se;lp.prototype.getBatchedAttribute=function(e,t,n){let i=this._attributes,r=this._offsets[t],s=4*this._stride*e+4*r,a;this._packFloats&&i[t].componentDatatype!==Ke.UNSIGNED_BYTE?a=dIe(this._batchValues,s,R$):a=se.unpack(this._batchValues,s,R$);let c=B$(i,t);return u(c.fromCartesian4)?c.fromCartesian4(a,n):u(c.clone)?c.clone(a,n):a.x};var mIe=[void 0,void 0,new H,new h,new se],pIe=new se;lp.prototype.setBatchedAttribute=function(e,t,n){let i=this._attributes,r=mIe[i[t].componentsPerAttribute],o=this.getBatchedAttribute(e,t,r),s=B$(this._attributes,t);if(u(s.equals)?s.equals(o,n):o===n)return;let c=pIe;c.x=u(n.x)?n.x:n,c.y=u(n.y)?n.y:0,c.z=u(n.z)?n.z:0,c.w=u(n.w)?n.w:0;let l=this._offsets[t],d=4*this._stride*e+4*l;this._packFloats&&i[t].componentDatatype!==Ke.UNSIGNED_BYTE?hIe(c,this._batchValues,d):se.pack(c,this._batchValues,d),this._batchValuesDirty=!0};function _Ie(e,t){let n=e._textureDimensions;e._texture=new Rt({context:t,pixelFormat:at.RGBA,pixelDatatype:e._pixelDatatype,width:n.x,height:n.y,sampler:ln.NEAREST,flipY:!1})}function gIe(e){let t=e._textureDimensions;e._texture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}lp.prototype.update=function(e){u(this._texture)&&!this._batchValuesDirty||this._attributes.length===0||(this._batchValuesDirty=!1,u(this._texture)||_Ie(this,e.context),gIe(this))};lp.prototype.getUniformMapCallback=function(){let e=this;return function(t){return e._attributes.length===0?t:_t(t,{batchTexture:function(){return e._texture},batchTextureDimensions:function(){return e._textureDimensions},batchTextureStep:function(){return e._textureStep}})}};function yIe(e){let t=e._stride;return e._textureDimensions.y===1?`uniform vec4 batchTextureStep; +vec2 computeSt(float batchId) +{ + float stepX = batchTextureStep.x; + float centerX = batchTextureStep.y; + float numberOfAttributes = float(${t}); + return vec2(centerX + (batchId * numberOfAttributes * stepX), 0.5); +} +`:`uniform vec4 batchTextureStep; +uniform vec2 batchTextureDimensions; +vec2 computeSt(float batchId) +{ + float stepX = batchTextureStep.x; + float centerX = batchTextureStep.y; + float stepY = batchTextureStep.z; + float centerY = batchTextureStep.w; + float numberOfAttributes = float(${t}); + float xId = mod(batchId * numberOfAttributes, batchTextureDimensions.x); + float yId = floor(batchId * numberOfAttributes / batchTextureDimensions.x); + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); +} +`}function AIe(e){return e===1?"float":`vec${e}`}function xIe(e){return e===1?".x":e===2?".xy":e===3?".xyz":""}function CIe(e,t){let i=e._attributes[t],r=i.componentsPerAttribute,o=i.functionName,s=AIe(r),a=xIe(r),c=e._offsets[t],l=`${s} ${o}(float batchId) +{ + vec2 st = computeSt(batchId); + st.x += batchTextureStep.x * float(${c}); +`;return e._packFloats&&i.componentDatatype!==Ke.UNSIGNED_BYTE?l+=`vec4 textureValue; +textureValue.x = czm_unpackFloat(texture(batchTexture, st)); +textureValue.y = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x, 0.0))); +textureValue.z = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 2.0, 0.0))); +textureValue.w = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 3.0, 0.0))); +`:l+=` vec4 textureValue = texture(batchTexture, st); +`,l+=` ${s} value = textureValue${a}; +`,e._pixelDatatype===Ke.UNSIGNED_BYTE&&i.componentDatatype===X.UNSIGNED_BYTE&&!i.normalize?l+=`value *= 255.0; +`:e._pixelDatatype===Ke.FLOAT&&i.componentDatatype===X.UNSIGNED_BYTE&&i.normalize&&(l+=`value /= 255.0; +`),l+=` return value; +} +`,l}lp.prototype.getVertexShaderCallback=function(){let e=this._attributes;if(e.length===0)return function(i){return i};let t=`uniform highp sampler2D batchTexture; +`;t+=`${yIe(this)} +`;let n=e.length;for(let i=0;i<n;++i)t+=CIe(this,i);return function(i){let r=i.indexOf("void main"),o=i.substring(0,r),s=i.substring(r);return`${o} +${t} +${s}`}};lp.prototype.isDestroyed=function(){return!1};lp.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),ue(this)};var W0=lp;var ir={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};ir.getMathType=function(e){switch(e){case ir.SCALAR:return Number;case ir.VEC2:return H;case ir.VEC3:return h;case ir.VEC4:return se;case ir.MAT2:return er;case ir.MAT3:return Q;case ir.MAT4:return N}};ir.getNumberOfComponents=function(e){switch(e){case ir.SCALAR:return 1;case ir.VEC2:return 2;case ir.VEC3:return 3;case ir.VEC4:case ir.MAT2:return 4;case ir.MAT3:return 9;case ir.MAT4:return 16}};ir.getAttributeLocationCount=function(e){switch(e){case ir.SCALAR:case ir.VEC2:case ir.VEC3:case ir.VEC4:return 1;case ir.MAT2:return 2;case ir.MAT3:return 3;case ir.MAT4:return 4}};ir.getGlslType=function(e){switch(e){case ir.SCALAR:return"float";case ir.VEC2:return"vec2";case ir.VEC3:return"vec3";case ir.VEC4:return"vec4";case ir.MAT2:return"mat2";case ir.MAT3:return"mat3";case ir.MAT4:return"mat4"}};var on=Object.freeze(ir);var L$=1/256,N$=256,Tr={};Tr.octEncodeInRange=function(e,t,n){if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){let i=n.x,r=n.y;n.x=(1-Math.abs(r))*P.signNotZero(i),n.y=(1-Math.abs(i))*P.signNotZero(r)}return n.x=P.toSNorm(n.x,t),n.y=P.toSNorm(n.y,t),n};Tr.octEncode=function(e,t){return Tr.octEncodeInRange(e,255,t)};var ZI=new H,F$=new Uint8Array(1);function nU(e){return F$[0]=e,F$[0]}Tr.octEncodeToCartesian4=function(e,t){return Tr.octEncodeInRange(e,65535,ZI),t.x=nU(ZI.x*L$),t.y=nU(ZI.x),t.z=nU(ZI.y*L$),t.w=nU(ZI.y),t};Tr.octDecodeInRange=function(e,t,n,i){if(i.x=P.fromSNorm(e,n),i.y=P.fromSNorm(t,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){let r=i.x;i.x=(1-Math.abs(i.y))*P.signNotZero(r),i.y=(1-Math.abs(r))*P.signNotZero(i.y)}return h.normalize(i,i)};Tr.octDecode=function(e,t,n){return Tr.octDecodeInRange(e,t,255,n)};Tr.octDecodeFromCartesian4=function(e,t){let n=e.x,i=e.y,r=e.z,o=e.w,s=n*N$+i,a=r*N$+o;return Tr.octDecodeInRange(s,a,65535,t)};Tr.octPackFloat=function(e){return 256*e.x+e.y};var P8=new H;Tr.octEncodeFloat=function(e){return Tr.octEncode(e,P8),Tr.octPackFloat(P8)};Tr.octDecodeFloat=function(e,t){let n=e/256,i=Math.floor(n),r=(n-i)*256;return Tr.octDecode(i,r,t)};Tr.octPack=function(e,t,n,i){let r=Tr.octEncodeFloat(e),o=Tr.octEncodeFloat(t),s=Tr.octEncode(n,P8);return i.x=65536*s.x+r,i.y=65536*s.y+o,i};Tr.octUnpack=function(e,t,n,i){let r=e.x/65536,o=Math.floor(r),s=(r-o)*65536;r=e.y/65536;let a=Math.floor(r),c=(r-a)*65536;Tr.octDecodeFloat(s,t),Tr.octDecodeFloat(c,n),Tr.octDecode(o,a,i)};Tr.compressTextureCoordinates=function(e){let t=e.x*4095|0,n=e.y*4095|0;return 4096*t+n};Tr.decompressTextureCoordinates=function(e,t){let n=e/4096,i=Math.floor(n);return t.x=i/4095,t.y=(e-i*4096)/4095,t};function I8(e){return e>>1^-(e&1)}Tr.zigZagDeltaDecode=function(e,t,n){let i=e.length,r=0,o=0,s=0;for(let a=0;a<i;++a)r+=I8(e[a]),o+=I8(t[a]),e[a]=r,t[a]=o,u(n)&&(s+=I8(n[a]),n[a]=s)};Tr.dequantize=function(e,t,n,i){let r=on.getNumberOfComponents(n),o;switch(t){case X.BYTE:o=127;break;case X.UNSIGNED_BYTE:o=255;break;case X.SHORT:o=32767;break;case X.UNSIGNED_SHORT:o=65535;break;case X.INT:o=2147483647;break;case X.UNSIGNED_INT:o=4294967295;break}let s=new Float32Array(i*r);for(let a=0;a<i;a++)for(let c=0;c<r;c++){let l=a*r+c;s[l]=Math.max(e[l]/o,-1)}return s};Tr.decodeRGB565=function(e,t){let n=e.length;u(t)||(t=new Float32Array(n*3));let i=(1<<5)-1,r=(1<<6)-1,o=1/31,s=1/63;for(let a=0;a<n;a++){let c=e[a],l=c>>11,f=c>>5&r,d=c&i,p=3*a;t[p]=l*o,t[p+1]=f*s,t[p+2]=d*o}return t};var qn=Tr;var U$=new h,V$=new h,k$=new h;function TIe(e,t,n,i,r){u(r)||(r=new h);let o,s,a,c,l,f,d,p;if(u(t.z)){if(h.equalsEpsilon(e,t,P.EPSILON14))return h.clone(h.UNIT_X,r);if(h.equalsEpsilon(e,n,P.EPSILON14))return h.clone(h.UNIT_Y,r);if(h.equalsEpsilon(e,i,P.EPSILON14))return h.clone(h.UNIT_Z,r);o=h.subtract(n,t,U$),s=h.subtract(i,t,V$),a=h.subtract(e,t,k$),c=h.dot(o,o),l=h.dot(o,s),f=h.dot(o,a),d=h.dot(s,s),p=h.dot(s,a)}else{if(H.equalsEpsilon(e,t,P.EPSILON14))return h.clone(h.UNIT_X,r);if(H.equalsEpsilon(e,n,P.EPSILON14))return h.clone(h.UNIT_Y,r);if(H.equalsEpsilon(e,i,P.EPSILON14))return h.clone(h.UNIT_Z,r);o=H.subtract(n,t,U$),s=H.subtract(i,t,V$),a=H.subtract(e,t,k$),c=H.dot(o,o),l=H.dot(o,s),f=H.dot(o,a),d=H.dot(s,s),p=H.dot(s,a)}r.y=d*f-l*p,r.z=c*p-l*f;let g=c*d-l*l;if(g!==0)return r.y/=g,r.z/=g,r.x=1-r.y-r.z,r}var j0=TIe;var O8={};O8.calculateACMR=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),r=t.length;if(!u(n)){n=0;let a=0,c=t[a];for(;a<r;)c>n&&(n=c),++a,c=t[a]}let o=[];for(let a=0;a<n+1;a++)o[a]=0;let s=i+1;for(let a=0;a<r;++a)s-o[t[a]]>i&&(o[t[a]]=s,++s);return(s-i+1)/(r/3)};O8.tipsify=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),r;function o(_,b,w,I){for(;b.length>=1;){let R=b[b.length-1];if(b.splice(b.length-1,1),_[R].numLiveTriangles>0)return R}for(;r<I;){if(_[r].numLiveTriangles>0)return++r,r-1;++r}return-1}function s(_,b,w,I,R,F,k){let V=-1,G,U=-1,Y=0;for(;Y<w.length;){let W=w[Y];I[W].numLiveTriangles&&(G=0,R-I[W].timeStamp+2*I[W].numLiveTriangles<=b&&(G=R-I[W].timeStamp),(G>U||U===-1)&&(U=G,V=W)),++Y}return V===-1?o(I,F,_,k):V}let a=t.length,c=0,l=0,f=t[l],d=a;if(u(n))c=n+1;else{for(;l<d;)f>c&&(c=f),++l,f=t[l];if(c===-1)return 0;++c}let p=[],g;for(g=0;g<c;g++)p[g]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;let m=0;for(;l<d;)p[t[l]].vertexTriangles.push(m),++p[t[l]].numLiveTriangles,p[t[l+1]].vertexTriangles.push(m),++p[t[l+1]].numLiveTriangles,p[t[l+2]].vertexTriangles.push(m),++p[t[l+2]].numLiveTriangles,++m,l+=3;let A=0,x=i+1;r=1;let C=[],T=[],E,S,v=0,D=[],M=a/3,O=[];for(g=0;g<M;g++)O[g]=!1;let B,L;for(;A!==-1;){C=[],S=p[A],L=S.vertexTriangles.length;for(let _=0;_<L;++_)if(m=S.vertexTriangles[_],!O[m]){O[m]=!0,l=m+m+m;for(let b=0;b<3;++b)B=t[l],C.push(B),T.push(B),D[v]=B,++v,E=p[B],--E.numLiveTriangles,x-E.timeStamp>i&&(E.timeStamp=x,++x),++l}A=s(t,i,C,p,x,T,c)}return D};var QI=O8;var Ic={};function lU(e,t,n,i,r){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=r,e[t++]=r,e[t]=n}function EIe(e){let t=e.length,n=t/3*6,i=Ue.createTypedArray(t,n),r=0;for(let o=0;o<t;o+=3,r+=6)lU(i,r,e[o],e[o+1],e[o+2]);return i}function bIe(e){let t=e.length;if(t>=3){let n=(t-2)*6,i=Ue.createTypedArray(t,n);lU(i,0,e[0],e[1],e[2]);let r=6;for(let o=3;o<t;++o,r+=6)lU(i,r,e[o-1],e[o],e[o-2]);return i}return new Uint16Array}function SIe(e){if(e.length>0){let t=e.length-1,n=(t-1)*6,i=Ue.createTypedArray(t,n),r=e[0],o=0;for(let s=1;s<t;++s,o+=6)lU(i,o,r,e[s],e[s+1]);return i}return new Uint16Array}Ic.toWireframe=function(e){let t=e.indices;if(u(t)){switch(e.primitiveType){case Be.TRIANGLES:e.indices=EIe(t);break;case Be.TRIANGLE_STRIP:e.indices=bIe(t);break;case Be.TRIANGLE_FAN:e.indices=SIe(t);break}e.primitiveType=Be.LINES}return e};Ic.createLineSegmentsForVectors=function(e,t,n){t=y(t,"normal"),n=y(n,1e4);let i=e.attributes.position.values,r=e.attributes[t].values,o=i.length,s=new Float64Array(2*o),a=0;for(let f=0;f<o;f+=3)s[a++]=i[f],s[a++]=i[f+1],s[a++]=i[f+2],s[a++]=i[f]+r[f]*n,s[a++]=i[f+1]+r[f+1]*n,s[a++]=i[f+2]+r[f+2]*n;let c,l=e.boundingSphere;return u(l)&&(c=new ae(l.center,l.radius+n)),new ut({attributes:{position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})},primitiveType:Be.LINES,boundingSphere:c})};Ic.createAttributeLocations=function(e){let t=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},r=0,o,s=t.length;for(o=0;o<s;++o){let a=t[o];u(n[a])&&(i[a]=r++)}for(let a in n)n.hasOwnProperty(a)&&!u(i[a])&&(i[a]=r++);return i};Ic.reorderForPreVertexCache=function(e){let t=ut.computeNumberOfVertices(e),n=e.indices;if(u(n)){let i=new Int32Array(t);for(let p=0;p<t;p++)i[p]=-1;let r=n,o=r.length,s=Ue.createTypedArray(t,o),a=0,c=0,l=0,f;for(;a<o;)f=i[r[a]],f!==-1?s[c]=f:(f=r[a],i[f]=l,s[c]=l,++l),++a,++c;e.indices=s;let d=e.attributes;for(let p in d)if(d.hasOwnProperty(p)&&u(d[p])&&u(d[p].values)){let g=d[p],m=g.values,A=0,x=g.componentsPerAttribute,C=X.createTypedArray(g.componentDatatype,l*x);for(;A<t;){let T=i[A];if(T!==-1)for(let E=0;E<x;E++)C[x*T+E]=m[x*A+E];++A}g.values=C}}return e};Ic.reorderForPostVertexCache=function(e,t){let n=e.indices;if(e.primitiveType===Be.TRIANGLES&&u(n)){let i=n.length,r=0;for(let o=0;o<i;o++)n[o]>r&&(r=n[o]);e.indices=QI.tipsify({indices:n,maximumIndex:r,cacheSize:t})}return e};function z$(e){let t={};for(let n in e)if(e.hasOwnProperty(n)&&u(e[n])&&u(e[n].values)){let i=e[n];t[n]=new De({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function vIe(e,t,n){for(let i in t)if(t.hasOwnProperty(i)&&u(t[i])&&u(t[i].values)){let r=t[i];for(let o=0;o<r.componentsPerAttribute;++o)e[i].values.push(r.values[n*r.componentsPerAttribute+o])}}Ic.fitToUnsignedShortIndices=function(e){let t=[],n=ut.computeNumberOfVertices(e);if(u(e.indices)&&n>=P.SIXTY_FOUR_KILOBYTES){let i=[],r=[],o=0,s=z$(e.attributes),a=e.indices,c=a.length,l;e.primitiveType===Be.TRIANGLES?l=3:e.primitiveType===Be.LINES?l=2:e.primitiveType===Be.POINTS&&(l=1);for(let f=0;f<c;f+=l){for(let d=0;d<l;++d){let p=a[f+d],g=i[p];u(g)||(g=o++,i[p]=g,vIe(s,e.attributes,p)),r.push(g)}o+l>=P.SIXTY_FOUR_KILOBYTES&&(t.push(new ut({attributes:s,indices:r,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],r=[],o=0,s=z$(e.attributes))}r.length!==0&&t.push(new ut({attributes:s,indices:r,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var H$=new h,wIe=new me;Ic.projectTo2D=function(e,t,n,i,r){let o=e.attributes[t];r=u(r)?r:new Ii;let s=r.ellipsoid,a=o.values,c=new Float64Array(a.length),l=0;for(let f=0;f<a.length;f+=3){let d=h.fromArray(a,f,H$),p=s.cartesianToCartographic(d,wIe),g=r.project(p,H$);c[l++]=g.x,c[l++]=g.y,c[l++]=g.z}return e.attributes[n]=o,e.attributes[i]=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c}),delete e.attributes[t],e};var M8={high:0,low:0};Ic.encodeAttribute=function(e,t,n,i){let r=e.attributes[t],o=r.values,s=o.length,a=new Float32Array(s),c=new Float32Array(s);for(let f=0;f<s;++f)jn.encode(o[f],M8),a[f]=M8.high,c[f]=M8.low;let l=r.componentsPerAttribute;return e.attributes[n]=new De({componentDatatype:X.FLOAT,componentsPerAttribute:l,values:a}),e.attributes[i]=new De({componentDatatype:X.FLOAT,componentsPerAttribute:l,values:c}),delete e.attributes[t],e};var dd=new h;function R8(e,t){if(u(t)){let n=t.values,i=n.length;for(let r=0;r<i;r+=3)h.unpack(n,r,dd),N.multiplyByPoint(e,dd,dd),h.pack(dd,n,r)}}function B8(e,t){if(u(t)){let n=t.values,i=n.length;for(let r=0;r<i;r+=3)h.unpack(n,r,dd),Q.multiplyByVector(e,dd,dd),dd=h.normalize(dd,dd),h.pack(dd,n,r)}}var iU=new N,rU=new Q;Ic.transformToWorldCoordinates=function(e){let t=e.modelMatrix;if(N.equals(t,N.IDENTITY))return e;let n=e.geometry.attributes;R8(t,n.position),R8(t,n.prevPosition),R8(t,n.nextPosition),(u(n.normal)||u(n.tangent)||u(n.bitangent))&&(N.inverse(t,iU),N.transpose(iU,iU),N.getMatrix3(iU,rU),B8(rU,n.normal),B8(rU,n.tangent),B8(rU,n.bitangent));let i=e.geometry.boundingSphere;return u(i)&&(e.geometry.boundingSphere=ae.transform(i,t,i)),e.modelMatrix=N.clone(N.IDENTITY),e};function DIe(e,t){let n=e.length,i={},r=e[0][t].attributes,o;for(o in r)if(r.hasOwnProperty(o)&&u(r[o])&&u(r[o].values)){let s=r[o],a=s.values.length,c=!0;for(let l=1;l<n;++l){let f=e[l][t].attributes[o];if(!u(f)||s.componentDatatype!==f.componentDatatype||s.componentsPerAttribute!==f.componentsPerAttribute||s.normalize!==f.normalize){c=!1;break}a+=f.values.length}c&&(i[o]=new De({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:X.createTypedArray(s.componentDatatype,a)}))}return i}var IIe=new h;function L8(e,t){let n=e.length,i,r,o,s,a=e[0].modelMatrix,c=u(e[0][t].indices),l=e[0][t].primitiveType,f=DIe(e,t),d,p,g;for(i in f)if(f.hasOwnProperty(i))for(d=f[i].values,s=0,r=0;r<n;++r)for(p=e[r][t].attributes[i].values,g=p.length,o=0;o<g;++o)d[s++]=p[o];let m;if(c){let T=0;for(r=0;r<n;++r)T+=e[r][t].indices.length;let E=ut.computeNumberOfVertices(new ut({attributes:f,primitiveType:Be.POINTS})),S=Ue.createTypedArray(E,T),v=0,D=0;for(r=0;r<n;++r){let M=e[r][t].indices,O=M.length;for(s=0;s<O;++s)S[v++]=D+M[s];D+=ut.computeNumberOfVertices(e[r][t])}m=S}let A=new h,x=0,C;for(r=0;r<n;++r){if(C=e[r][t].boundingSphere,!u(C)){A=void 0;break}h.add(C.center,A,A)}if(u(A))for(h.divideByScalar(A,n,A),r=0;r<n;++r){C=e[r][t].boundingSphere;let T=h.magnitude(h.subtract(C.center,A,IIe))+C.radius;T>x&&(x=T)}return new ut({attributes:f,indices:m,primitiveType:l,boundingSphere:u(A)?new ae(A,x):void 0})}Ic.combineInstances=function(e){let t=[],n=[],i=e.length;for(let o=0;o<i;++o){let s=e[o];u(s.geometry)?t.push(s):u(s.westHemisphereGeometry)&&u(s.eastHemisphereGeometry)&&n.push(s)}let r=[];return t.length>0&&r.push(L8(t,"geometry")),n.length>0&&(r.push(L8(n,"westHemisphereGeometry")),r.push(L8(n,"eastHemisphereGeometry"))),r};var Qu=new h,$I=new h,_T=new h,gT=new h;Ic.computeNormal=function(e){let t=e.indices,n=e.attributes,i=n.position.values,r=n.position.values.length/3,o=t.length,s=new Array(r),a=new Array(o/3),c=new Array(o),l;for(l=0;l<r;l++)s[l]={indexOffset:0,count:0,currentCount:0};let f=0;for(l=0;l<o;l+=3){let m=t[l],A=t[l+1],x=t[l+2],C=m*3,T=A*3,E=x*3;$I.x=i[C],$I.y=i[C+1],$I.z=i[C+2],_T.x=i[T],_T.y=i[T+1],_T.z=i[T+2],gT.x=i[E],gT.y=i[E+1],gT.z=i[E+2],s[m].count++,s[A].count++,s[x].count++,h.subtract(_T,$I,_T),h.subtract(gT,$I,gT),a[f]=h.cross(_T,gT,new h),f++}let d=0;for(l=0;l<r;l++)s[l].indexOffset+=d,d+=s[l].count;f=0;let p;for(l=0;l<o;l+=3){p=s[t[l]];let m=p.indexOffset+p.currentCount;c[m]=f,p.currentCount++,p=s[t[l+1]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,p=s[t[l+2]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,f++}let g=new Float32Array(r*3);for(l=0;l<r;l++){let m=l*3;if(p=s[l],h.clone(h.ZERO,Qu),p.count>0){for(f=0;f<p.count;f++)h.add(Qu,a[c[p.indexOffset+f]],Qu);h.equalsEpsilon(h.ZERO,Qu,P.EPSILON10)&&h.clone(a[c[p.indexOffset]],Qu)}h.equalsEpsilon(h.ZERO,Qu,P.EPSILON10)&&(Qu.z=1),h.normalize(Qu,Qu),g[m]=Qu.x,g[m+1]=Qu.y,g[m+2]=Qu.z}return e.attributes.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e};var PIe=new h,G$=new h,OIe=new h;Ic.computeTangentAndBitangent=function(e){let t=e.attributes,n=e.indices,i=e.attributes.position.values,r=e.attributes.normal.values,o=e.attributes.st.values,s=e.attributes.position.values.length/3,a=n.length,c=new Array(s*3),l;for(l=0;l<c.length;l++)c[l]=0;let f,d,p;for(l=0;l<a;l+=3){let A=n[l],x=n[l+1],C=n[l+2];f=A*3,d=x*3,p=C*3;let T=A*2,E=x*2,S=C*2,v=i[f],D=i[f+1],M=i[f+2],O=o[T],B=o[T+1],L=o[E+1]-B,_=o[S+1]-B,b=1/((o[E]-O)*_-(o[S]-O)*L),w=(_*(i[d]-v)-L*(i[p]-v))*b,I=(_*(i[d+1]-D)-L*(i[p+1]-D))*b,R=(_*(i[d+2]-M)-L*(i[p+2]-M))*b;c[f]+=w,c[f+1]+=I,c[f+2]+=R,c[d]+=w,c[d+1]+=I,c[d+2]+=R,c[p]+=w,c[p+1]+=I,c[p+2]+=R}let g=new Float32Array(s*3),m=new Float32Array(s*3);for(l=0;l<s;l++){f=l*3,d=f+1,p=f+2;let A=h.fromArray(r,f,PIe),x=h.fromArray(c,f,OIe),C=h.dot(A,x);h.multiplyByScalar(A,C,G$),h.normalize(h.subtract(x,G$,x),x),g[f]=x.x,g[d]=x.y,g[p]=x.z,h.normalize(h.cross(A,x,x),x),m[f]=x.x,m[d]=x.y,m[p]=x.z}return e.attributes.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e.attributes.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m}),e};var eP=new H,fd=new h,W$=new h,j$=new h,oU=new H;Ic.compressVertices=function(e){let t=e.attributes.extrudeDirection,n,i;if(u(t)){let D=t.values;i=D.length/3;let M=new Float32Array(i*2),O=0;for(n=0;n<i;++n){if(h.fromArray(D,n*3,fd),h.equals(fd,h.ZERO)){O+=2;continue}oU=qn.octEncodeInRange(fd,65535,oU),M[O++]=oU.x,M[O++]=oU.y}return e.attributes.compressedAttributes=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:M}),delete e.attributes.extrudeDirection,e}let r=e.attributes.normal,o=e.attributes.st,s=u(r),a=u(o);if(!s&&!a)return e;let c=e.attributes.tangent,l=e.attributes.bitangent,f=u(c),d=u(l),p,g,m,A;s&&(p=r.values),a&&(g=o.values),f&&(m=c.values),d&&(A=l.values),i=(s?p.length:g.length)/(s?3:2);let T=i,E=a&&s?2:1;E+=f||d?1:0,T*=E;let S=new Float32Array(T),v=0;for(n=0;n<i;++n){a&&(H.fromArray(g,n*2,eP),S[v++]=qn.compressTextureCoordinates(eP));let D=n*3;s&&u(m)&&u(A)?(h.fromArray(p,D,fd),h.fromArray(m,D,W$),h.fromArray(A,D,j$),qn.octPack(fd,W$,j$,eP),S[v++]=eP.x,S[v++]=eP.y):(s&&(h.fromArray(p,D,fd),S[v++]=qn.octEncodeFloat(fd)),f&&(h.fromArray(m,D,fd),S[v++]=qn.octEncodeFloat(fd)),d&&(h.fromArray(A,D,fd),S[v++]=qn.octEncodeFloat(fd)))}return e.attributes.compressedAttributes=new De({componentDatatype:X.FLOAT,componentsPerAttribute:E,values:S}),s&&delete e.attributes.normal,a&&delete e.attributes.st,d&&delete e.attributes.bitangent,f&&delete e.attributes.tangent,e};function MIe(e){if(u(e.indices))return e;let t=ut.computeNumberOfVertices(e),n=Ue.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function RIe(e){let t=ut.computeNumberOfVertices(e),n=Ue.createTypedArray(t,(t-2)*3);n[0]=1,n[1]=0,n[2]=2;let i=3;for(let r=3;r<t;++r)n[i++]=r-1,n[i++]=0,n[i++]=r;return e.indices=n,e.primitiveType=Be.TRIANGLES,e}function BIe(e){let t=ut.computeNumberOfVertices(e),n=Ue.createTypedArray(t,(t-2)*3);n[0]=0,n[1]=1,n[2]=2,t>3&&(n[3]=0,n[4]=2,n[5]=3);let i=6;for(let r=3;r<t-1;r+=2)n[i++]=r,n[i++]=r-1,n[i++]=r+1,r+2<t&&(n[i++]=r,n[i++]=r+1,n[i++]=r+2);return e.indices=n,e.primitiveType=Be.TRIANGLES,e}function LIe(e){if(u(e.indices))return e;let t=ut.computeNumberOfVertices(e),n=Ue.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function NIe(e){let t=ut.computeNumberOfVertices(e),n=Ue.createTypedArray(t,(t-1)*2);n[0]=0,n[1]=1;let i=2;for(let r=2;r<t;++r)n[i++]=r-1,n[i++]=r;return e.indices=n,e.primitiveType=Be.LINES,e}function FIe(e){let t=ut.computeNumberOfVertices(e),n=Ue.createTypedArray(t,t*2);n[0]=0,n[1]=1;let i=2;for(let r=2;r<t;++r)n[i++]=r-1,n[i++]=r;return n[i++]=t-1,n[i]=0,e.indices=n,e.primitiveType=Be.LINES,e}function UIe(e){switch(e.primitiveType){case Be.TRIANGLE_FAN:return RIe(e);case Be.TRIANGLE_STRIP:return BIe(e);case Be.TRIANGLES:return MIe(e);case Be.LINE_STRIP:return NIe(e);case Be.LINE_LOOP:return FIe(e);case Be.LINES:return LIe(e)}return e}function hg(e,t){Math.abs(e.y)<P.EPSILON6&&(t?e.y=-P.EPSILON6:e.y=P.EPSILON6)}function VIe(e,t,n){if(e.y!==0&&t.y!==0&&n.y!==0){hg(e,e.y<0),hg(t,t.y<0),hg(n,n.y<0);return}let i=Math.abs(e.y),r=Math.abs(t.y),o=Math.abs(n.y),s;i>r?i>o?s=P.sign(e.y):s=P.sign(n.y):r>o?s=P.sign(t.y):s=P.sign(n.y);let a=s<0;hg(e,a),hg(t,a),hg(n,a)}var q$=new h;function $u(e,t,n,i){h.add(e,h.multiplyByScalar(h.subtract(t,e,q$),e.y/(e.y-t.y),q$),n),h.clone(n,i),hg(n,!0),hg(i,!1)}var q0=new h,Y0=new h,X0=new h,K0=new h,N8={positions:new Array(7),indices:new Array(3*3)};function kIe(e,t,n){if(e.x>=0||t.x>=0||n.x>=0)return;VIe(e,t,n);let i=e.y<0,r=t.y<0,o=n.y<0,s=0;s+=i?1:0,s+=r?1:0,s+=o?1:0;let a=N8.indices;s===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,i?($u(e,t,q0,X0),$u(e,n,Y0,K0),a[0]=0,a[3]=1,a[4]=2,a[6]=1):r?($u(t,n,q0,X0),$u(t,e,Y0,K0),a[0]=1,a[3]=2,a[4]=0,a[6]=2):o&&($u(n,e,q0,X0),$u(n,t,Y0,K0),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):s===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,i?r?o||($u(n,e,q0,X0),$u(n,t,Y0,K0),a[0]=0,a[1]=1,a[3]=0,a[6]=2):($u(t,n,q0,X0),$u(t,e,Y0,K0),a[0]=2,a[1]=0,a[3]=2,a[6]=1):($u(e,t,q0,X0),$u(e,n,Y0,K0),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let c=N8.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,(s===1||s===2)&&(c[3]=q0,c[4]=Y0,c[5]=X0,c[6]=K0,c.length=7),N8}function Y$(e,t){let n=e.attributes;if(n.position.values.length===0)return;for(let r in n)if(n.hasOwnProperty(r)&&u(n[r])&&u(n[r].values)){let o=n[r];o.values=X.createTypedArray(o.componentDatatype,o.values)}let i=ut.computeNumberOfVertices(e);return e.indices=Ue.createTypedArray(i,e.indices),t&&(e.boundingSphere=ae.fromVertices(n.position.values)),e}function AT(e){let t=e.attributes,n={};for(let i in t)if(t.hasOwnProperty(i)&&u(t[i])&&u(t[i].values)){let r=t[i];n[i]=new De({componentDatatype:r.componentDatatype,componentsPerAttribute:r.componentsPerAttribute,normalize:r.normalize,values:[]})}return new ut({attributes:n,indices:[],primitiveType:e.primitiveType})}function k8(e,t,n){let i=u(e.geometry.boundingSphere);t=Y$(t,i),n=Y$(n,i),u(n)&&!u(t)?e.geometry=n:!u(n)&&u(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function z8(e,t){let n=new e,i=new e,r=new e;return function(o,s,a,c,l,f,d,p){let g=e.fromArray(l,o*t,n),m=e.fromArray(l,s*t,i),A=e.fromArray(l,a*t,r);e.multiplyByScalar(g,c.x,g),e.multiplyByScalar(m,c.y,m),e.multiplyByScalar(A,c.z,A);let x=e.add(g,m,g);e.add(x,A,x),p&&e.normalize(x,x),e.pack(x,f,d*t)}}var zIe=z8(se,4),cU=z8(h,3),$$=z8(H,2),HIe=function(e,t,n,i,r,o,s){let a=r[e]*i.x,c=r[t]*i.y,l=r[n]*i.z;o[s]=a+c+l>P.EPSILON6?1:0},tP=new h,F8=new h,U8=new h,GIe=new h;function sU(e,t,n,i,r,o,s,a,c,l,f,d,p,g,m,A){if(!u(o)&&!u(s)&&!u(a)&&!u(c)&&!u(l)&&g===0)return;let x=h.fromArray(r,e*3,tP),C=h.fromArray(r,t*3,F8),T=h.fromArray(r,n*3,U8),E=j0(i,x,C,T,GIe);if(u(E)){if(u(o)&&cU(e,t,n,E,o,d.normal.values,A,!0),u(l)){let S=h.fromArray(l,e*3,tP),v=h.fromArray(l,t*3,F8),D=h.fromArray(l,n*3,U8);h.multiplyByScalar(S,E.x,S),h.multiplyByScalar(v,E.y,v),h.multiplyByScalar(D,E.z,D);let M;!h.equals(S,h.ZERO)||!h.equals(v,h.ZERO)||!h.equals(D,h.ZERO)?(M=h.add(S,v,S),h.add(M,D,M),h.normalize(M,M)):(M=tP,M.x=0,M.y=0,M.z=0),h.pack(M,d.extrudeDirection.values,A*3)}if(u(f)&&HIe(e,t,n,E,f,d.applyOffset.values,A),u(s)&&cU(e,t,n,E,s,d.tangent.values,A,!0),u(a)&&cU(e,t,n,E,a,d.bitangent.values,A,!0),u(c)&&$$(e,t,n,E,c,d.st.values,A),g>0)for(let S=0;S<g;S++){let v=p[S];WIe(e,t,n,E,A,m[v],d[v])}}}function WIe(e,t,n,i,r,o,s){let a=o.componentsPerAttribute,c=o.values,l=s.values;switch(a){case 4:zIe(e,t,n,i,c,l,r,!1);break;case 3:cU(e,t,n,i,c,l,r,!1);break;case 2:$$(e,t,n,i,c,l,r,!1);break;default:l[r]=c[e]*i.x+c[t]*i.y+c[n]*i.z}}function Hh(e,t,n,i,r,o){let s=e.position.values.length/3;if(r!==-1){let a=i[r],c=n[a];return c===-1?(n[a]=s,e.position.values.push(o.x,o.y,o.z),t.push(s),s):(t.push(c),c)}return e.position.values.push(o.x,o.y,o.z),t.push(s),s}var jIe={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function X$(e){let t=e.geometry,n=t.attributes,i=n.position.values,r=u(n.normal)?n.normal.values:void 0,o=u(n.bitangent)?n.bitangent.values:void 0,s=u(n.tangent)?n.tangent.values:void 0,a=u(n.st)?n.st.values:void 0,c=u(n.extrudeDirection)?n.extrudeDirection.values:void 0,l=u(n.applyOffset)?n.applyOffset.values:void 0,f=t.indices,d=[];for(let M in n)n.hasOwnProperty(M)&&!jIe[M]&&u(n[M])&&d.push(M);let p=d.length,g=AT(t),m=AT(t),A,x,C,T,E,S=[];S.length=i.length/3;let v=[];for(v.length=i.length/3,E=0;E<S.length;++E)S[E]=-1,v[E]=-1;let D=f.length;for(E=0;E<D;E+=3){let M=f[E],O=f[E+1],B=f[E+2],L=h.fromArray(i,M*3),_=h.fromArray(i,O*3),b=h.fromArray(i,B*3),w=kIe(L,_,b);if(u(w)&&w.positions.length>3){let I=w.positions,R=w.indices,F=R.length;for(let k=0;k<F;++k){let V=R[k],G=I[V];G.y<0?(A=m.attributes,x=m.indices,C=S):(A=g.attributes,x=g.indices,C=v),T=Hh(A,x,C,f,V<3?E+V:-1,G),sU(M,O,B,G,i,r,s,o,a,c,l,A,d,p,n,T)}}else u(w)&&(L=w.positions[0],_=w.positions[1],b=w.positions[2]),L.y<0?(A=m.attributes,x=m.indices,C=S):(A=g.attributes,x=g.indices,C=v),T=Hh(A,x,C,f,E,L),sU(M,O,B,L,i,r,s,o,a,c,l,A,d,p,n,T),T=Hh(A,x,C,f,E+1,_),sU(M,O,B,_,i,r,s,o,a,c,l,A,d,p,n,T),T=Hh(A,x,C,f,E+2,b),sU(M,O,B,b,i,r,s,o,a,c,l,A,d,p,n,T)}k8(e,m,g)}var eee=cn.fromPointNormal(h.ZERO,h.UNIT_Y),qIe=new h,YIe=new h;function yT(e,t,n,i,r,o,s){if(!u(s))return;let a=h.fromArray(i,e*3,tP);h.equalsEpsilon(a,n,P.EPSILON10)?o.applyOffset.values[r]=s[e]:o.applyOffset.values[r]=s[t]}function K$(e){let t=e.geometry,n=t.attributes,i=n.position.values,r=u(n.applyOffset)?n.applyOffset.values:void 0,o=t.indices,s=AT(t),a=AT(t),c,l=o.length,f=[];f.length=i.length/3;let d=[];for(d.length=i.length/3,c=0;c<f.length;++c)f[c]=-1,d[c]=-1;for(c=0;c<l;c+=2){let p=o[c],g=o[c+1],m=h.fromArray(i,p*3,tP),A=h.fromArray(i,g*3,F8),x;Math.abs(m.y)<P.EPSILON6&&(m.y<0?m.y=-P.EPSILON6:m.y=P.EPSILON6),Math.abs(A.y)<P.EPSILON6&&(A.y<0?A.y=-P.EPSILON6:A.y=P.EPSILON6);let C=s.attributes,T=s.indices,E=d,S=a.attributes,v=a.indices,D=f,M=Ji.lineSegmentPlane(m,A,eee,U8);if(u(M)){let O=h.multiplyByScalar(h.UNIT_Y,5*P.EPSILON9,qIe);m.y<0&&(h.negate(O,O),C=a.attributes,T=a.indices,E=f,S=s.attributes,v=s.indices,D=d);let B=h.add(M,O,YIe);x=Hh(C,T,E,o,c,m),yT(p,g,m,i,x,C,r),x=Hh(C,T,E,o,-1,B),yT(p,g,B,i,x,C,r),h.negate(O,O),h.add(M,O,B),x=Hh(S,v,D,o,-1,B),yT(p,g,B,i,x,S,r),x=Hh(S,v,D,o,c+1,A),yT(p,g,A,i,x,S,r)}else{let O,B,L;m.y<0?(O=a.attributes,B=a.indices,L=f):(O=s.attributes,B=s.indices,L=d),x=Hh(O,B,L,o,c,m),yT(p,g,m,i,x,O,r),x=Hh(O,B,L,o,c+1,A),yT(p,g,A,i,x,O,r)}}k8(e,a,s)}var J$=new H,XIe=new H,tee=new h,nee=new h,V8=new h,KIe=new h,JIe=new h,ZIe=new h,Z$=new se;function Q$(e){let t=e.attributes,n=t.position.values,i=t.prevPosition.values,r=t.nextPosition.values,o=n.length;for(let s=0;s<o;s+=3){let a=h.unpack(n,s,tee);if(a.x>0)continue;let c=h.unpack(i,s,nee);(a.y<0&&c.y>0||a.y>0&&c.y<0)&&(s-3>0?(i[s]=n[s-3],i[s+1]=n[s-2],i[s+2]=n[s-1]):h.pack(a,i,s));let l=h.unpack(r,s,V8);(a.y<0&&l.y>0||a.y>0&&l.y<0)&&(s+3<o?(r[s]=n[s+3],r[s+1]=n[s+4],r[s+2]=n[s+5]):h.pack(a,r,s))}}var QIe=5*P.EPSILON9,aU=P.EPSILON6;function $Ie(e){let t=e.geometry,n=t.attributes,i=n.position.values,r=n.prevPosition.values,o=n.nextPosition.values,s=n.expandAndWidth.values,a=u(n.st)?n.st.values:void 0,c=u(n.color)?n.color.values:void 0,l=AT(t),f=AT(t),d,p,g,m=!1,A=i.length/3;for(d=0;d<A;d+=4){let x=d,C=d+2,T=h.fromArray(i,x*3,tee),E=h.fromArray(i,C*3,nee);if(Math.abs(T.y)<aU)for(T.y=aU*(E.y<0?-1:1),i[d*3+1]=T.y,i[(d+1)*3+1]=T.y,p=x*3;p<x*3+4*3;p+=3)r[p]=i[d*3],r[p+1]=i[d*3+1],r[p+2]=i[d*3+2];if(Math.abs(E.y)<aU)for(E.y=aU*(T.y<0?-1:1),i[(d+2)*3+1]=E.y,i[(d+3)*3+1]=E.y,p=x*3;p<x*3+4*3;p+=3)o[p]=i[(d+2)*3],o[p+1]=i[(d+2)*3+1],o[p+2]=i[(d+2)*3+2];let S=l.attributes,v=l.indices,D=f.attributes,M=f.indices,O=Ji.lineSegmentPlane(T,E,eee,KIe);if(u(O)){m=!0;let B=h.multiplyByScalar(h.UNIT_Y,QIe,JIe);T.y<0&&(h.negate(B,B),S=f.attributes,v=f.indices,D=l.attributes,M=l.indices);let L=h.add(O,B,ZIe);S.position.values.push(T.x,T.y,T.z,T.x,T.y,T.z),S.position.values.push(L.x,L.y,L.z),S.position.values.push(L.x,L.y,L.z),S.prevPosition.values.push(r[x*3],r[x*3+1],r[x*3+2]),S.prevPosition.values.push(r[x*3+3],r[x*3+4],r[x*3+5]),S.prevPosition.values.push(T.x,T.y,T.z,T.x,T.y,T.z),S.nextPosition.values.push(L.x,L.y,L.z),S.nextPosition.values.push(L.x,L.y,L.z),S.nextPosition.values.push(L.x,L.y,L.z),S.nextPosition.values.push(L.x,L.y,L.z),h.negate(B,B),h.add(O,B,L),D.position.values.push(L.x,L.y,L.z),D.position.values.push(L.x,L.y,L.z),D.position.values.push(E.x,E.y,E.z,E.x,E.y,E.z),D.prevPosition.values.push(L.x,L.y,L.z),D.prevPosition.values.push(L.x,L.y,L.z),D.prevPosition.values.push(L.x,L.y,L.z),D.prevPosition.values.push(L.x,L.y,L.z),D.nextPosition.values.push(E.x,E.y,E.z,E.x,E.y,E.z),D.nextPosition.values.push(o[C*3],o[C*3+1],o[C*3+2]),D.nextPosition.values.push(o[C*3+3],o[C*3+4],o[C*3+5]);let _=H.fromArray(s,x*2,J$),b=Math.abs(_.y);S.expandAndWidth.values.push(-1,b,1,b),S.expandAndWidth.values.push(-1,-b,1,-b),D.expandAndWidth.values.push(-1,b,1,b),D.expandAndWidth.values.push(-1,-b,1,-b);let w=h.magnitudeSquared(h.subtract(O,T,V8));if(w/=h.magnitudeSquared(h.subtract(E,T,V8)),u(c)){let I=se.fromArray(c,x*4,Z$),R=se.fromArray(c,C*4,Z$),F=P.lerp(I.x,R.x,w),k=P.lerp(I.y,R.y,w),V=P.lerp(I.z,R.z,w),G=P.lerp(I.w,R.w,w);for(p=x*4;p<x*4+2*4;++p)S.color.values.push(c[p]);for(S.color.values.push(F,k,V,G),S.color.values.push(F,k,V,G),D.color.values.push(F,k,V,G),D.color.values.push(F,k,V,G),p=C*4;p<C*4+2*4;++p)D.color.values.push(c[p])}if(u(a)){let I=H.fromArray(a,x*2,J$),R=H.fromArray(a,(d+3)*2,XIe),F=P.lerp(I.x,R.x,w);for(p=x*2;p<x*2+2*2;++p)S.st.values.push(a[p]);for(S.st.values.push(F,I.y),S.st.values.push(F,R.y),D.st.values.push(F,I.y),D.st.values.push(F,R.y),p=C*2;p<C*2+2*2;++p)D.st.values.push(a[p])}g=S.position.values.length/3-4,v.push(g,g+2,g+1),v.push(g+1,g+2,g+3),g=D.position.values.length/3-4,M.push(g,g+2,g+1),M.push(g+1,g+2,g+3)}else{let B,L;for(T.y<0?(B=f.attributes,L=f.indices):(B=l.attributes,L=l.indices),B.position.values.push(T.x,T.y,T.z),B.position.values.push(T.x,T.y,T.z),B.position.values.push(E.x,E.y,E.z),B.position.values.push(E.x,E.y,E.z),p=d*3;p<d*3+4*3;++p)B.prevPosition.values.push(r[p]),B.nextPosition.values.push(o[p]);for(p=d*2;p<d*2+4*2;++p)B.expandAndWidth.values.push(s[p]),u(a)&&B.st.values.push(a[p]);if(u(c))for(p=d*4;p<d*4+4*4;++p)B.color.values.push(c[p]);g=B.position.values.length/3-4,L.push(g,g+2,g+1),L.push(g+1,g+2,g+3)}}m&&(Q$(f),Q$(l)),k8(e,f,l)}Ic.splitLongitude=function(e){let t=e.geometry,n=t.boundingSphere;if(u(n)&&(n.center.x-n.radius>0||ae.intersectPlane(n,cn.ORIGIN_ZX_PLANE)!==Qt.INTERSECTING))return e;if(t.geometryType!==Xu.NONE)switch(t.geometryType){case Xu.POLYLINES:$Ie(e);break;case Xu.TRIANGLES:X$(e);break;case Xu.LINES:K$(e);break}else UIe(t),t.primitiveType===Be.TRIANGLES?X$(e):t.primitiveType===Be.LINES&&K$(e);return e};var Ln=Ic;function dl(e){this._ellipsoid=y(e,re.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(dl.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});dl.mercatorAngleToGeodeticLatitude=function(e){return P.PI_OVER_TWO-2*Math.atan(Math.exp(-e))};dl.geodeticLatitudeToMercatorAngle=function(e){e>dl.MaximumLatitude?e=dl.MaximumLatitude:e<-dl.MaximumLatitude&&(e=-dl.MaximumLatitude);let t=Math.sin(e);return .5*Math.log((1+t)/(1-t))};dl.MaximumLatitude=dl.mercatorAngleToGeodeticLatitude(Math.PI);dl.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,r=dl.geodeticLatitudeToMercatorAngle(e.latitude)*n,o=e.height;return u(t)?(t.x=i,t.y=r,t.z=o,t):new h(i,r,o)};dl.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,r=dl.mercatorAngleToGeodeticLatitude(e.y*n),o=e.z;return u(t)?(t.longitude=i,t.latitude=r,t.height=o,t):new me(i,r,o)};var Oi=dl;function ePe(e,t,n){let i=!n,r=e.length,o;if(!i&&r>1){let s=e[0].modelMatrix;for(o=1;o<r;++o)if(!N.equals(s,e[o].modelMatrix)){i=!0;break}}if(i)for(o=0;o<r;++o)u(e[o].geometry)&&Ln.transformToWorldCoordinates(e[o]);else N.multiplyTransformation(t,e[0].modelMatrix,t)}function H8(e,t){let n=e.attributes,i=n.position,r=i.values.length/i.componentsPerAttribute;n.batchId=new De({componentDatatype:X.FLOAT,componentsPerAttribute:1,values:new Float32Array(r)});let o=n.batchId.values;for(let s=0;s<r;++s)o[s]=t}function tPe(e){let t=e.length;for(let n=0;n<t;++n){let i=e[n];u(i.geometry)?H8(i.geometry,n):u(i.westHemisphereGeometry)&&u(i.eastHemisphereGeometry)&&(H8(i.westHemisphereGeometry,n),H8(i.eastHemisphereGeometry,n))}}function nPe(e){let t=e.instances,n=e.projection,i=e.elementIndexUintSupported,r=e.scene3DOnly,o=e.vertexCacheOptimize,s=e.compressVertices,a=e.modelMatrix,c,l,f,d=t.length;for(c=0;c<d;++c)if(u(t[c].geometry)){f=t[c].geometry.primitiveType;break}if(ePe(t,a,r),!r)for(c=0;c<d;++c)u(t[c].geometry)&&Ln.splitLongitude(t[c]);if(tPe(t),o)for(c=0;c<d;++c){let g=t[c];u(g.geometry)?(Ln.reorderForPostVertexCache(g.geometry),Ln.reorderForPreVertexCache(g.geometry)):u(g.westHemisphereGeometry)&&u(g.eastHemisphereGeometry)&&(Ln.reorderForPostVertexCache(g.westHemisphereGeometry),Ln.reorderForPreVertexCache(g.westHemisphereGeometry),Ln.reorderForPostVertexCache(g.eastHemisphereGeometry),Ln.reorderForPreVertexCache(g.eastHemisphereGeometry))}let p=Ln.combineInstances(t);for(d=p.length,c=0;c<d;++c){l=p[c];let g=l.attributes;if(r)for(let m in g)g.hasOwnProperty(m)&&g[m].componentDatatype===X.DOUBLE&&Ln.encodeAttribute(l,m,`${m}3DHigh`,`${m}3DLow`);else for(let m in g)if(g.hasOwnProperty(m)&&g[m].componentDatatype===X.DOUBLE){let A=`${m}3D`,x=`${m}2D`;Ln.projectTo2D(l,m,A,x,n),u(l.boundingSphere)&&m==="position"&&(l.boundingSphereCV=ae.fromVertices(l.attributes.position2D.values)),Ln.encodeAttribute(l,A,`${A}High`,`${A}Low`),Ln.encodeAttribute(l,x,`${x}High`,`${x}Low`)}s&&Ln.compressVertices(l)}if(!i){let g=[];for(d=p.length,c=0;c<d;++c)l=p[c],g=g.concat(Ln.fitToUnsignedShortIndices(l));p=g}return p}function G8(e,t,n,i){let r,o,s,a=i.length-1;if(a>=0){let l=i[a];r=l.offset+l.count,s=l.index,o=n[s].indices.length}else r=0,s=0,o=n[s].indices.length;let c=e.length;for(let l=0;l<c;++l){let d=e[l][t];if(!u(d))continue;let p=d.indices.length;r+p>o&&(r=0,o=n[++s].indices.length),i.push({index:s,offset:r,count:p}),r+=p}}function iPe(e,t){let n=[];return G8(e,"geometry",t,n),G8(e,"westHemisphereGeometry",t,n),G8(e,"eastHemisphereGeometry",t,n),n}var up={};up.combineGeometry=function(e){let t,n,i=e.instances,r=i.length,o,s,a=!1;r>0&&(t=nPe(e),t.length>0&&(n=Ln.createAttributeLocations(t[0]),e.createPickOffsets&&(o=iPe(i,t))),u(i[0].attributes)&&u(i[0].attributes.offset)&&(s=new Array(r),a=!0));let c=new Array(r),l=new Array(r);for(let f=0;f<r;++f){let d=i[f],p=d.geometry;u(p)&&(c[f]=p.boundingSphere,l[f]=p.boundingSphereCV,a&&(s[f]=d.geometry.offsetAttribute));let g=d.eastHemisphereGeometry,m=d.westHemisphereGeometry;u(g)&&u(m)&&(u(g.boundingSphere)&&u(m.boundingSphere)&&(c[f]=ae.union(g.boundingSphere,m.boundingSphere)),u(g.boundingSphereCV)&&u(m.boundingSphereCV)&&(l[f]=ae.union(g.boundingSphereCV,m.boundingSphereCV)))}return{geometries:t,modelMatrix:e.modelMatrix,attributeLocations:n,pickOffsets:o,offsetInstanceExtend:s,boundingSpheres:c,boundingSpheresCV:l}};function rPe(e,t){let n=e.attributes;for(let i in n)if(n.hasOwnProperty(i)){let r=n[i];u(r)&&u(r.values)&&t.push(r.values.buffer)}u(e.indices)&&t.push(e.indices.buffer)}function oPe(e,t){let n=e.length;for(let i=0;i<n;++i)rPe(e[i],t)}function sPe(e){let t=1,n=e.length;for(let i=0;i<n;i++){let r=e[i];if(++t,!u(r))continue;let o=r.attributes;t+=7+2*ae.packedLength+(u(r.indices)?r.indices.length:0);for(let s in o)if(o.hasOwnProperty(s)&&u(o[s])){let a=o[s];t+=5+a.values.length}}return t}up.packCreateGeometryResults=function(e,t){let n=new Float64Array(sPe(e)),i=[],r={},o=e.length,s=0;n[s++]=o;for(let a=0;a<o;a++){let c=e[a],l=u(c);if(n[s++]=l?1:0,!l)continue;n[s++]=c.primitiveType,n[s++]=c.geometryType,n[s++]=y(c.offsetAttribute,-1);let f=u(c.boundingSphere)?1:0;n[s++]=f,f&&ae.pack(c.boundingSphere,n,s),s+=ae.packedLength;let d=u(c.boundingSphereCV)?1:0;n[s++]=d,d&&ae.pack(c.boundingSphereCV,n,s),s+=ae.packedLength;let p=c.attributes,g=[];for(let A in p)p.hasOwnProperty(A)&&u(p[A])&&(g.push(A),u(r[A])||(r[A]=i.length,i.push(A)));n[s++]=g.length;for(let A=0;A<g.length;A++){let x=g[A],C=p[x];n[s++]=r[x],n[s++]=C.componentDatatype,n[s++]=C.componentsPerAttribute,n[s++]=C.normalize?1:0,n[s++]=C.values.length,n.set(C.values,s),s+=C.values.length}let m=u(c.indices)?c.indices.length:0;n[s++]=m,m>0&&(n.set(c.indices,s),s+=m)}return t.push(n.buffer),{stringTable:i,packedData:n}};up.unpackCreateGeometryResults=function(e){let t=e.stringTable,n=e.packedData,i,r=new Array(n[0]),o=0,s=1;for(;s<n.length;){if(!(n[s++]===1)){r[o++]=void 0;continue}let c=n[s++],l=n[s++],f=n[s++];f===-1&&(f=void 0);let d,p;n[s++]===1&&(d=ae.unpack(n,s)),s+=ae.packedLength,n[s++]===1&&(p=ae.unpack(n,s)),s+=ae.packedLength;let A,x,C,T=new dn,E=n[s++];for(i=0;i<E;i++){let v=t[n[s++]],D=n[s++];C=n[s++];let M=n[s++]!==0;A=n[s++],x=X.createTypedArray(D,A);for(let O=0;O<A;O++)x[O]=n[s++];T[v]=new De({componentDatatype:D,componentsPerAttribute:C,normalize:M,values:x})}let S;if(A=n[s++],A>0){let v=x.length/C;for(S=Ue.createTypedArray(v,A),i=0;i<A;i++)S[i]=n[s++]}r[o++]=new ut({primitiveType:c,geometryType:l,boundingSphere:d,boundingSphereCV:p,indices:S,attributes:T,offsetAttribute:f})}return r};function aPe(e,t){let n=e.length,i=new Float64Array(1+n*19),r=0;i[r++]=n;for(let o=0;o<n;o++){let s=e[o];if(N.pack(s.modelMatrix,i,r),r+=N.packedLength,u(s.attributes)&&u(s.attributes.offset)){let a=s.attributes.offset.value;i[r]=a[0],i[r+1]=a[1],i[r+2]=a[2]}r+=3}return t.push(i.buffer),i}function cPe(e){let t=e,n=new Array(t[0]),i=0,r=1;for(;r<t.length;){let o=N.unpack(t,r),s;r+=N.packedLength,u(t[r])&&(s={offset:new Ki(t[r],t[r+1],t[r+2])}),r+=3,n[i++]={modelMatrix:o,attributes:s}}return n}up.packCombineGeometryParameters=function(e,t){let n=e.createGeometryResults,i=n.length;for(let r=0;r<i;r++)t.push(n[r].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:aPe(e.instances,t),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof Ii,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}};up.unpackCombineGeometryParameters=function(e){let t=cPe(e.packedInstances),n=e.createGeometryResults,i=n.length,r=0;for(let a=0;a<i;a++){let c=up.unpackCreateGeometryResults(n[a]),l=c.length;for(let f=0;f<l;f++){let d=c[f],p=t[r];p.geometry=d,++r}}let o=re.clone(e.ellipsoid),s=e.isGeographic?new Ii(o):new Oi(o);return{instances:t,ellipsoid:o,projection:s,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:N.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}};function iee(e){let t=e.length,n=1+(ae.packedLength+1)*t,i=new Float32Array(n),r=0;i[r++]=t;for(let o=0;o<t;++o){let s=e[o];u(s)?(i[r++]=1,ae.pack(e[o],i,r)):i[r++]=0,r+=ae.packedLength}return i}function ree(e){let t=new Array(e[0]),n=0,i=1;for(;i<e.length;)e[i++]===1&&(t[n]=ae.unpack(e,i)),++n,i+=ae.packedLength;return t}up.packCombineGeometryResults=function(e,t){u(e.geometries)&&oPe(e.geometries,t);let n=iee(e.boundingSpheres),i=iee(e.boundingSpheresCV);return t.push(n.buffer,i.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:n,boundingSpheresCV:i}};up.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:ree(e.boundingSpheres),boundingSpheresCV:ree(e.boundingSpheresCV)}};var J0=up;var lPe={READY:0,CREATING:1,CREATED:2,COMBINING:3,COMBINED:4,COMPLETE:5,FAILED:6},_o=Object.freeze(lPe);var eu={DISABLED:0,ENABLED:1,CAST_ONLY:2,RECEIVE_ONLY:3};eu.NUMBER_OF_SHADOW_MODES=4;eu.castShadows=function(e){return e===eu.ENABLED||e===eu.CAST_ONLY};eu.receiveShadows=function(e){return e===eu.ENABLED||e===eu.RECEIVE_ONLY};eu.fromCastReceive=function(e,t){return e&&t?eu.ENABLED:e?eu.CAST_ONLY:t?eu.RECEIVE_ONLY:eu.DISABLED};var yn=Object.freeze(eu);function go(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this.appearance=e.appearance,this._appearance=void 0,this._material=void 0,this.depthFailAppearance=e.depthFailAppearance,this._depthFailAppearance=void 0,this._depthFailMaterial=void 0,this.modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this._modelMatrix=new N,this.show=y(e.show,!0),this._vertexCacheOptimize=y(e.vertexCacheOptimize,!1),this._interleave=y(e.interleave,!1),this._releaseGeometryInstances=y(e.releaseGeometryInstances,!0),this._allowPicking=y(e.allowPicking,!0),this._asynchronous=y(e.asynchronous,!0),this._compressVertices=y(e.compressVertices,!0),this.cull=y(e.cull,!0),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.rtcCenter=e.rtcCenter,this.shadows=y(e.shadows,yn.DISABLED),this._translucent=void 0,this._state=_o.READY,this._geometries=[],this._error=void 0,this._numberOfInstances=0,this._boundingSpheres=[],this._boundingSphereWC=[],this._boundingSphereCV=[],this._boundingSphere2D=[],this._boundingSphereMorph=[],this._perInstanceAttributeCache=new Map,this._instanceIds=[],this._lastPerInstanceAttributeIndex=0,this._va=[],this._attributeLocations=void 0,this._primitiveType=void 0,this._frontFaceRS=void 0,this._backFaceRS=void 0,this._sp=void 0,this._depthFailAppearance=void 0,this._spDepthFail=void 0,this._frontFaceDepthFailRS=void 0,this._backFaceDepthFailRS=void 0,this._pickIds=[],this._colorCommands=[],this._pickCommands=[],this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._createRenderStatesFunction=e._createRenderStatesFunction,this._createShaderProgramFunction=e._createShaderProgramFunction,this._createCommandsFunction=e._createCommandsFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._createPickOffsets=e._createPickOffsets,this._pickOffsets=void 0,this._createGeometryResults=void 0,this._ready=!1;let t=this;this._readyPromise=new Promise((n,i)=>{t._completeLoad=(r,o,s)=>{this._error=s,this._state=o,r.afterRender.push(function(){if(t._ready=t._state===_o.COMPLETE||t._state===_o.FAILED,!u(s))return n(t),!0;i(s)})}}),this._batchTable=void 0,this._batchTableAttributeIndices=void 0,this._offsetInstanceExtend=void 0,this._batchTableOffsetAttribute2DIndex=void 0,this._batchTableOffsetsUpdated=!1,this._instanceBoundingSpheres=void 0,this._instanceBoundingSpheresCV=void 0,this._tempBoundingSpheres=void 0,this._recomputeBoundingSpheres=!1,this._batchTableBoundingSpheresUpdated=!1,this._batchTableBoundingSphereAttributeIndices=void 0}Object.defineProperties(go.prototype,{vertexCacheOptimize:{get:function(){return this._vertexCacheOptimize}},interleave:{get:function(){return this._interleave}},releaseGeometryInstances:{get:function(){return this._releaseGeometryInstances}},allowPicking:{get:function(){return this._allowPicking}},asynchronous:{get:function(){return this._asynchronous}},compressVertices:{get:function(){return this._compressVertices}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Primitive.readyPromise","Primitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Primitive.ready to return true instead."),this._readyPromise}}});function uPe(e){let t=e.length,n=[],i=e[0].attributes,r;for(r in i)if(i.hasOwnProperty(r)&&u(i[r])){let o=i[r],s=!0;for(let a=1;a<t;++a){let c=e[a].attributes[r];if(!u(c)||o.componentDatatype!==c.componentDatatype||o.componentsPerAttribute!==c.componentsPerAttribute||o.normalize!==c.normalize){s=!1;break}}s&&n.push(r)}return n}var fPe=new H,dPe=new h,hee=new se;function mee(e){let t=e.length;if(t===1)return e[0];if(t===2)return H.unpack(e,0,fPe);if(t===3)return h.unpack(e,0,dPe);if(t===4)return se.unpack(e,0,hee)}function hPe(e,t){let n=e.geometryInstances,i=Array.isArray(n)?n:[n],r=i.length;if(r===0)return;let o=uPe(i),s=o.length,a=[],c={},l={},f,p=i[0].attributes,g,m,A;for(g=0;g<s;++g)m=o[g],A=p[m],c[m]=g,a.push({functionName:`czm_batchTable_${m}`,componentDatatype:A.componentDatatype,componentsPerAttribute:A.componentsPerAttribute,normalize:A.normalize});o.indexOf("distanceDisplayCondition")!==-1&&(a.push({functionName:"czm_batchTable_boundingSphereCenter3DHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter3DLow",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DLow",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereRadius",componentDatatype:X.FLOAT,componentsPerAttribute:1}),l.center3DHigh=a.length-5,l.center3DLow=a.length-4,l.center2DHigh=a.length-3,l.center2DLow=a.length-2,l.radius=a.length-1),o.indexOf("offset")!==-1&&(a.push({functionName:"czm_batchTable_offset2D",componentDatatype:X.FLOAT,componentsPerAttribute:3}),f=a.length-1),a.push({functionName:"czm_batchTable_pickColor",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0});let x=a.length,C=new W0(t,a,r);for(g=0;g<r;++g){let T=i[g];p=T.attributes;for(let M=0;M<s;++M){m=o[M],A=p[m];let O=mee(A.value),B=c[m];C.setBatchedAttribute(g,B,O)}let E={primitive:y(T.pickPrimitive,e)};u(T.id)&&(E.id=T.id);let S=t.createPickId(E);e._pickIds.push(S);let v=S.color,D=hee;D.x=z.floatToByte(v.red),D.y=z.floatToByte(v.green),D.z=z.floatToByte(v.blue),D.w=z.floatToByte(v.alpha),C.setBatchedAttribute(g,x-1,D)}e._batchTable=C,e._batchTableAttributeIndices=c,e._batchTableBoundingSphereAttributeIndices=l,e._batchTableOffsetAttribute2DIndex=f}function mPe(e){let t;return Array.isArray(e.values)?t=e.values.slice(0):t=new e.values.constructor(e.values),new De({componentDatatype:e.componentDatatype,componentsPerAttribute:e.componentsPerAttribute,normalize:e.normalize,values:t})}function pPe(e){let t=e.attributes,n=new dn;for(let r in t)t.hasOwnProperty(r)&&u(t[r])&&(n[r]=mPe(t[r]));let i;if(u(e.indices)){let r=e.indices;Array.isArray(r)?i=r.slice(0):i=new r.constructor(r)}return new ut({attributes:n,indices:i,primitiveType:e.primitiveType,boundingSphere:ae.clone(e.boundingSphere)})}function _Pe(e,t){return{geometry:t,attributes:e.attributes,modelMatrix:N.clone(e.modelMatrix),pickPrimitive:e.pickPrimitive,id:e.id}}var gPe=/in\s+vec(?:3|4)\s+(.*)3DHigh;/g;go._modifyShaderPosition=function(e,t,n){let i,r="",o="",s="";for(;(i=gPe.exec(t))!==null;){let a=i[1],c=`vec4 czm_compute${a[0].toUpperCase()}${a.substr(1)}()`;c!=="vec4 czm_computePosition()"&&(r+=`${c}; +`),u(e.rtcCenter)?(t=t.replace(/in\s+vec(?:3|4)\s+position3DHigh;/g,""),t=t.replace(/in\s+vec(?:3|4)\s+position3DLow;/g,""),r+=`uniform mat4 u_modifiedModelView; +`,o+=`in vec4 position; +`,s+=`${c} +{ + return u_modifiedModelView * position; +} + +`,t=t.replace(/czm_modelViewRelativeToEye\s+\*\s+/g,""),t=t.replace(/czm_modelViewProjectionRelativeToEye/g,"czm_projection")):n?s+=`${c} +{ + return czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow); +} + +`:(o+=`in vec3 ${a}2DHigh; +in vec3 ${a}2DLow; +`,s+=`${c} +{ + vec4 p; + if (czm_morphTime == 1.0) + { + p = czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow); + } + else if (czm_morphTime == 0.0) + { + p = czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy); + } + else + { + p = czm_columbusViewMorph( + czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy), + czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow), + czm_morphTime); + } + return p; +} + +`)}return[r,o,t,s].join(` +`)};go._appendShowToShader=function(e,t){return u(e._batchTableAttributeIndices.show)?`${ke.replaceMain(t,"czm_non_show_main")} +void main() +{ + czm_non_show_main(); + gl_Position *= czm_batchTable_show(batchId); +}`:t};go._updateColorAttribute=function(e,t,n){if(!u(e._batchTableAttributeIndices.color)&&!u(e._batchTableAttributeIndices.depthFailColor)||t.search(/in\s+vec4\s+color;/g)===-1)return t;let i=t;return i=i.replace(/in\s+vec4\s+color;/g,""),n?i=i.replace(/(\b)color(\b)/g,"$1czm_batchTable_depthFailColor(batchId)$2"):i=i.replace(/(\b)color(\b)/g,"$1czm_batchTable_color(batchId)$2"),i};function oee(e){return`${ke.replaceMain(e,"czm_non_pick_main")} +out vec4 v_pickColor; +void main() +{ + czm_non_pick_main(); + v_pickColor = czm_batchTable_pickColor(batchId); +}`}function see(e){return`in vec4 v_pickColor; +${e}`}go._updatePickColorAttribute=function(e){let t=e.replace(/in\s+vec4\s+pickColor;/g,"");return t=t.replace(/(\b)pickColor(\b)/g,"$1czm_batchTable_pickColor(batchId)$2"),t};go._appendOffsetToShader=function(e,t){if(!u(e._batchTableAttributeIndices.offset))return t;let n=`in float batchId; +`;n+="in float applyOffset;";let i=t.replace(/in\s+float\s+batchId;/g,n),r=`vec4 $1 = czm_computePosition(); +`;return r+=` if (czm_sceneMode == czm_sceneMode3D) +`,r+=` { +`,r+=" $1 = $1 + vec4(czm_batchTable_offset(batchId) * applyOffset, 0.0);",r+=` } +`,r+=` else +`,r+=` { +`,r+=" $1 = $1 + vec4(czm_batchTable_offset2D(batchId) * applyOffset, 0.0);",r+=` } +`,i=i.replace(/vec4\s+([A-Za-z0-9_]+)\s+=\s+czm_computePosition\(\);/g,r),i};go._appendDistanceDisplayConditionToShader=function(e,t,n){if(!u(e._batchTableAttributeIndices.distanceDisplayCondition))return t;let i=ke.replaceMain(t,"czm_non_distanceDisplayCondition_main"),r=`void main() +{ + czm_non_distanceDisplayCondition_main(); + vec2 distanceDisplayCondition = czm_batchTable_distanceDisplayCondition(batchId); + vec3 boundingSphereCenter3DHigh = czm_batchTable_boundingSphereCenter3DHigh(batchId); + vec3 boundingSphereCenter3DLow = czm_batchTable_boundingSphereCenter3DLow(batchId); + float boundingSphereRadius = czm_batchTable_boundingSphereRadius(batchId); +`;return n?r+=` vec4 centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow); +`:r+=` vec3 boundingSphereCenter2DHigh = czm_batchTable_boundingSphereCenter2DHigh(batchId); + vec3 boundingSphereCenter2DLow = czm_batchTable_boundingSphereCenter2DLow(batchId); + vec4 centerRTE; + if (czm_morphTime == 1.0) + { + centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow); + } + else if (czm_morphTime == 0.0) + { + centerRTE = czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy); + } + else + { + centerRTE = czm_columbusViewMorph( + czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy), + czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow), + czm_morphTime); + } +`,r+=` float radiusSq = boundingSphereRadius * boundingSphereRadius; + float distanceSq; + if (czm_sceneMode == czm_sceneMode2D) + { + distanceSq = czm_eyeHeight2D.y - radiusSq; + } + else + { + distanceSq = dot(centerRTE.xyz, centerRTE.xyz) - radiusSq; + } + distanceSq = max(distanceSq, 0.0); + float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; + float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; + float show = (distanceSq >= nearSq && distanceSq <= farSq) ? 1.0 : 0.0; + gl_Position *= show; +}`,`${i} +${r}`};function aee(e,t){if(!e.compressVertices)return t;let n=t.search(/in\s+vec3\s+normal;/g)!==-1,i=t.search(/in\s+vec2\s+st;/g)!==-1;if(!n&&!i)return t;let r=t.search(/in\s+vec3\s+tangent;/g)!==-1,o=t.search(/in\s+vec3\s+bitangent;/g)!==-1,s=i&&n?2:1;s+=r||o?1:0;let a=s>1?`vec${s}`:"float",c="compressedAttributes",l=`in ${a} ${c};`,f="",d="";if(i){f+=`vec2 st; +`;let m=s>1?`${c}.x`:c;d+=` st = czm_decompressTextureCoordinates(${m}); +`}n&&r&&o?(f+=`vec3 normal; +vec3 tangent; +vec3 bitangent; +`,d+=` czm_octDecode(${c}.${i?"yz":"xy"}, normal, tangent, bitangent); +`):(n&&(f+=`vec3 normal; +`,d+=` normal = czm_octDecode(${c}${s>1?`.${i?"y":"x"}`:""}); +`),r&&(f+=`vec3 tangent; +`,d+=` tangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`),o&&(f+=`vec3 bitangent; +`,d+=` bitangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`));let p=t;p=p.replace(/in\s+vec3\s+normal;/g,""),p=p.replace(/in\s+vec2\s+st;/g,""),p=p.replace(/in\s+vec3\s+tangent;/g,""),p=p.replace(/in\s+vec3\s+bitangent;/g,""),p=ke.replaceMain(p,"czm_non_compressed_main");let g=`void main() +{ +${d} czm_non_compressed_main(); +}`;return[l,f,p,g].join(` +`)}function yPe(e){let t=ke.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + gl_Position = czm_depthClamp(gl_Position);} +`,t}function APe(e){let t=ke.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + #if defined(LOG_DEPTH) + czm_writeLogDepth(); + #else + czm_writeDepthClamp(); + #endif +} +`,t}function cee(e,t){let n=e.vertexAttributes}function xPe(e,t){return function(){return e[t]}}var W8=Math.max(Ht.hardwareConcurrency-1,1),uU,CPe=new pi("combineGeometry");function TPe(e,t){let n,i,r,o,s=e._instanceIds;if(e._state===_o.READY){n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let a=e._numberOfInstances=n.length,c=[],l=[];for(r=0;r<a;++r)i=n[r].geometry,s.push(n[r].id),l.push({moduleName:i._workerName,geometry:i});if(!u(uU))for(uU=new Array(W8),r=0;r<W8;r++)uU[r]=new pi("createGeometry");let f;for(l=KI(l,W8),r=0;r<l.length;r++){let d=0,p=l[r],g=p.length;for(o=0;o<g;++o)f=p[o],i=f.geometry,u(i.constructor.pack)&&(f.offset=d,d+=y(i.constructor.packedLength,i.packedLength));let m;if(d>0){let A=new Float64Array(d);for(m=[A.buffer],o=0;o<g;++o)f=p[o],i=f.geometry,u(i.constructor.pack)&&(i.constructor.pack(i,A,f.offset),f.geometry=A)}c.push(uU[r].scheduleTask({subTasks:l[r]},m))}e._state=_o.CREATING,Promise.all(c).then(function(d){e._createGeometryResults=d,e._state=_o.CREATED}).catch(function(d){iP(e,t,_o.FAILED,d)})}else if(e._state===_o.CREATED){let a=[];n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let c=t.scene3DOnly,l=t.mapProjection,f=CPe.scheduleTask(J0.packCombineGeometryParameters({createGeometryResults:e._createGeometryResults,instances:n,ellipsoid:l.ellipsoid,projection:l,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:c,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets},a),a);e._createGeometryResults=void 0,e._state=_o.COMBINING,Promise.resolve(f).then(function(d){let p=J0.unpackCombineGeometryResults(d);e._geometries=p.geometries,e._attributeLocations=p.attributeLocations,e.modelMatrix=N.clone(p.modelMatrix,e.modelMatrix),e._pickOffsets=p.pickOffsets,e._offsetInstanceExtend=p.offsetInstanceExtend,e._instanceBoundingSpheres=p.boundingSpheres,e._instanceBoundingSpheresCV=p.boundingSpheresCV,u(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=_o.COMBINED):iP(e,t,_o.FAILED,void 0)}).catch(function(d){iP(e,t,_o.FAILED,d)})}}function EPe(e,t){let n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances],i=e._numberOfInstances=n.length,r=new Array(i),o=e._instanceIds,s,a,c=0;for(a=0;a<i;a++){s=n[a];let p=s.geometry,g;u(p.attributes)&&u(p.primitiveType)?g=pPe(p):g=p.constructor.createGeometry(p),r[c++]=_Pe(s,g),o.push(s.id)}r.length=c;let l=t.scene3DOnly,f=t.mapProjection,d=J0.combineGeometry({instances:r,ellipsoid:f.ellipsoid,projection:f,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:l,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets});e._geometries=d.geometries,e._attributeLocations=d.attributeLocations,e.modelMatrix=N.clone(d.modelMatrix,e.modelMatrix),e._pickOffsets=d.pickOffsets,e._offsetInstanceExtend=d.offsetInstanceExtend,e._instanceBoundingSpheres=d.boundingSpheres,e._instanceBoundingSpheresCV=d.boundingSpheresCV,u(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=_o.COMBINED):iP(e,t,_o.FAILED,void 0)}function bPe(e,t){let n=e._batchTableAttributeIndices.offset;if(!e._recomputeBoundingSpheres||!u(n)){e._recomputeBoundingSpheres=!1;return}let i,r=e._offsetInstanceExtend,o=e._instanceBoundingSpheres,s=o.length,a=e._tempBoundingSpheres;if(!u(a)){for(a=new Array(s),i=0;i<s;i++)a[i]=new ae;e._tempBoundingSpheres=a}for(i=0;i<s;++i){let A=a[i],x=e._batchTable.getBatchedAttribute(i,n,new h);A=o[i].clone(A),yee(A,x,r[i])}let c=[],l=[],f=[];for(i=0;i<s;++i){let A=a[i];A.center.x-A.radius>0||ae.intersectPlane(A,cn.ORIGIN_ZX_PLANE)!==Qt.INTERSECTING?c.push(A):(l.push(A),f.push(A))}let d=c[0],p=f[0],g=l[0];for(i=1;i<c.length;i++)d=ae.union(d,c[i]);for(i=1;i<f.length;i++)p=ae.union(p,f[i]);for(i=1;i<l.length;i++)g=ae.union(g,l[i]);let m=[];for(u(d)&&m.push(d),u(p)&&m.push(p),u(g)&&m.push(g),i=0;i<m.length;i++){let A=m[i].clone(e._boundingSpheres[i]);e._boundingSpheres[i]=A,e._boundingSphereCV[i]=ae.projectTo2D(A,t.mapProjection,e._boundingSphereCV[i])}go._updateBoundingVolumes(e,t,e.modelMatrix,!0),e._recomputeBoundingSpheres=!1}var lee=new jn,pee=new me,_ee=new h,gee=new ae;function SPe(e,t){if(!u(e._batchTableAttributeIndices.distanceDisplayCondition)||e._batchTableBoundingSpheresUpdated)return;let i=e._batchTableBoundingSphereAttributeIndices,r=i.center3DHigh,o=i.center3DLow,s=i.center2DHigh,a=i.center2DLow,c=i.radius,l=t.mapProjection,f=l.ellipsoid,d=e._batchTable,p=e._instanceBoundingSpheres,g=p.length;for(let m=0;m<g;++m){let A=p[m];if(!u(A))continue;let x=e.modelMatrix;u(x)&&(A=ae.transform(A,x,gee));let C=A.center,T=A.radius,E=jn.fromCartesian(C,lee);if(d.setBatchedAttribute(m,r,E.high),d.setBatchedAttribute(m,o,E.low),!t.scene3DOnly){let S=f.cartesianToCartographic(C,pee),v=l.project(S,_ee);E=jn.fromCartesian(v,lee),d.setBatchedAttribute(m,s,E.high),d.setBatchedAttribute(m,a,E.low)}d.setBatchedAttribute(m,c,T)}e._batchTableBoundingSpheresUpdated=!0}var j8=new h,vPe=new h;function uee(e,t){if(!u(e._batchTableAttributeIndices.offset)||e._batchTableOffsetsUpdated||t.scene3DOnly)return;let i=e._batchTableOffsetAttribute2DIndex,r=t.mapProjection,o=r.ellipsoid,s=e._batchTable,a=e._instanceBoundingSpheres,c=a.length;for(let l=0;l<c;++l){let f=a[l];if(!u(f))continue;let d=s.getBatchedAttribute(l,e._batchTableAttributeIndices.offset);if(h.equals(d,h.ZERO)){s.setBatchedAttribute(l,i,h.ZERO);continue}let p=e.modelMatrix;u(p)&&(f=ae.transform(f,p,gee));let g=f.center;g=o.scaleToGeodeticSurface(g,vPe);let m=o.cartesianToCartographic(g,pee),A=r.project(m,_ee),x=h.add(d,g,j8);m=o.cartesianToCartographic(x,m);let C=r.project(m,j8),T=h.subtract(C,A,j8),E=T.x;T.x=T.z,T.z=T.y,T.y=E,s.setBatchedAttribute(l,i,T)}e._batchTableOffsetsUpdated=!0}function wPe(e,t){let n=e._attributeLocations,i=e._geometries,r=t.scene3DOnly,o=t.context,s=[],a=i.length;for(let c=0;c<a;++c){let l=i[c];if(s.push(oi.fromGeometry({context:o,geometry:l,attributeLocations:n,bufferUsage:Fe.STATIC_DRAW,interleave:e._interleave})),u(e._createBoundingVolumeFunction))e._createBoundingVolumeFunction(t,l);else if(e._boundingSpheres.push(ae.clone(l.boundingSphere)),e._boundingSphereWC.push(new ae),!r){let f=l.boundingSphereCV.center,d=f.x,p=f.y,g=f.z;f.x=g,f.y=d,f.z=p,e._boundingSphereCV.push(ae.clone(l.boundingSphereCV)),e._boundingSphere2D.push(new ae),e._boundingSphereMorph.push(new ae)}}e._va=s,e._primitiveType=i[0].primitiveType,e.releaseGeometryInstances&&(e.geometryInstances=void 0),e._geometries=void 0,iP(e,t,_o.COMPLETE,void 0)}function DPe(e,t,n,i){let r=n.getRenderState(),o;i?(o=We(r,!1),o.cull={enabled:!0,face:gi.BACK},e._frontFaceRS=Ve.fromCache(o),o.cull.face=gi.FRONT,e._backFaceRS=Ve.fromCache(o)):(e._frontFaceRS=Ve.fromCache(r),e._backFaceRS=e._frontFaceRS),o=We(r,!1),u(e._depthFailAppearance)&&(o.depthTest.enabled=!1),u(e._depthFailAppearance)&&(r=e._depthFailAppearance.getRenderState(),o=We(r,!1),o.depthTest.func=Wa.GREATER,i?(o.cull={enabled:!0,face:gi.BACK},e._frontFaceDepthFailRS=Ve.fromCache(o),o.cull.face=gi.FRONT,e._backFaceDepthFailRS=Ve.fromCache(o)):(e._frontFaceDepthFailRS=Ve.fromCache(o),e._backFaceDepthFailRS=e._frontFaceRS))}function IPe(e,t,n){let i=t.context,r=e._attributeLocations,o=e._batchTable.getVertexShaderCallback()(n.vertexShaderSource);o=go._appendOffsetToShader(e,o),o=go._appendShowToShader(e,o),o=go._appendDistanceDisplayConditionToShader(e,o,t.scene3DOnly),o=oee(o),o=go._updateColorAttribute(e,o,!1),o=aee(e,o),o=go._modifyShaderPosition(e,o,t.scene3DOnly);let s=n.getFragmentShaderSource();s=see(s),e._sp=Xt.replaceCache({context:i,shaderProgram:e._sp,vertexShaderSource:o,fragmentShaderSource:s,attributeLocations:r}),cee(e._sp,r),u(e._depthFailAppearance)&&(o=e._batchTable.getVertexShaderCallback()(e._depthFailAppearance.vertexShaderSource),o=go._appendShowToShader(e,o),o=go._appendDistanceDisplayConditionToShader(e,o,t.scene3DOnly),o=oee(o),o=go._updateColorAttribute(e,o,!0),o=aee(e,o),o=go._modifyShaderPosition(e,o,t.scene3DOnly),o=yPe(o),s=e._depthFailAppearance.getFragmentShaderSource(),s=see(s),s=APe(s),e._spDepthFail=Xt.replaceCache({context:i,shaderProgram:e._spDepthFail,vertexShaderSource:o,fragmentShaderSource:s,attributeLocations:r}),cee(e._spDepthFail,r))}var nP=new N,fee=new h;function dee(e,t,n,i){let r=u(n)?n._uniforms:void 0,o={},s=t.uniforms;if(u(s))for(let c in s)s.hasOwnProperty(c)&&(o[c]=xPe(s,c));let a=_t(o,r);return a=e._batchTable.getUniformMapCallback()(a),u(e.rtcCenter)&&(a.u_modifiedModelView=function(){let c=i.context.uniformState.view;return N.multiply(c,e._modelMatrix,nP),N.multiplyByPoint(nP,e.rtcCenter,fee),N.setTranslation(nP,fee,nP),nP}),a}function PPe(e,t,n,i,r,o,s,a){let c=dee(e,t,n,a),l;u(e._depthFailAppearance)&&(l=dee(e,e._depthFailAppearance,e._depthFailAppearance.material,a));let f=i?be.TRANSLUCENT:be.OPAQUE,d=r?2:1;d*=u(e._depthFailAppearance)?2:1,o.length=e._va.length*d;let p=o.length,g=0;for(let m=0;m<p;++m){let A;r&&(A=o[m],u(A)||(A=o[m]=new nt({owner:e,primitiveType:e._primitiveType})),A.vertexArray=e._va[g],A.renderState=e._backFaceRS,A.shaderProgram=e._sp,A.uniformMap=c,A.pass=f,++m),A=o[m],u(A)||(A=o[m]=new nt({owner:e,primitiveType:e._primitiveType})),A.vertexArray=e._va[g],A.renderState=e._frontFaceRS,A.shaderProgram=e._sp,A.uniformMap=c,A.pass=f,u(e._depthFailAppearance)&&(r&&(++m,A=o[m],u(A)||(A=o[m]=new nt({owner:e,primitiveType:e._primitiveType})),A.vertexArray=e._va[g],A.renderState=e._backFaceDepthFailRS,A.shaderProgram=e._spDepthFail,A.uniformMap=l,A.pass=f),++m,A=o[m],u(A)||(A=o[m]=new nt({owner:e,primitiveType:e._primitiveType})),A.vertexArray=e._va[g],A.renderState=e._frontFaceDepthFailRS,A.shaderProgram=e._spDepthFail,A.uniformMap=l,A.pass=f),++g}}go._updateBoundingVolumes=function(e,t,n,i){let r,o,s;if(i||!N.equals(n,e._modelMatrix))for(N.clone(n,e._modelMatrix),o=e._boundingSpheres.length,r=0;r<o;++r)s=e._boundingSpheres[r],u(s)&&(e._boundingSphereWC[r]=ae.transform(s,n,e._boundingSphereWC[r]),t.scene3DOnly||(e._boundingSphere2D[r]=ae.clone(e._boundingSphereCV[r],e._boundingSphere2D[r]),e._boundingSphere2D[r].center.x=0,e._boundingSphereMorph[r]=ae.union(e._boundingSphereWC[r],e._boundingSphereCV[r])));let a=e.appearance.pixelSize;if(u(a))for(o=e._boundingSpheres.length,r=0;r<o;++r){s=e._boundingSpheres[r];let c=e._boundingSphereWC[r],f=t.camera.getPixelSize(s,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*a;c.radius=s.radius+f}};function OPe(e,t,n,i,r,o,s,a){go._updateBoundingVolumes(e,t,r);let c;t.mode===ne.SCENE3D?c=e._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?c=e._boundingSphereCV:t.mode===ne.SCENE2D&&u(e._boundingSphere2D)?c=e._boundingSphere2D:u(e._boundingSphereMorph)&&(c=e._boundingSphereMorph);let l=t.commandList,f=t.passes;if(f.render||f.pick){let d=e.allowPicking,p=yn.castShadows(e.shadows),g=yn.receiveShadows(e.shadows),m=n.length,A=a?2:1;A*=u(e._depthFailAppearance)?2:1;for(let x=0;x<m;++x){let C=Math.floor(x/A),T=n[x];T.modelMatrix=r,T.boundingVolume=c[C],T.cull=o,T.debugShowBoundingVolume=s,T.castShadows=p,T.receiveShadows=g,d?T.pickId="v_pickColor":T.pickId=void 0,l.push(T)}}}go.prototype.update=function(e){if(!u(this.geometryInstances)&&this._va.length===0||u(this.geometryInstances)&&Array.isArray(this.geometryInstances)&&this.geometryInstances.length===0||!u(this.appearance)||e.mode!==ne.SCENE3D&&e.scene3DOnly||!e.passes.render&&!e.passes.pick)return;if(u(this._error))throw this._error;if(this._state===_o.FAILED)return;let t=e.context;if(u(this._batchTable)||hPe(this,t),this._batchTable.attributes.length>0){if(zt.maximumVertexTextureImageUnits===0)throw new de("Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero.");this._batchTable.update(e)}if(this._state!==_o.COMPLETE&&this._state!==_o.COMBINED&&(this.asynchronous?TPe(this,e):EPe(this,e)),this._state===_o.COMBINED&&(SPe(this,e),uee(this,e),wPe(this,e)),!this.show||this._state!==_o.COMPLETE)return;this._batchTableOffsetsUpdated||uee(this,e),this._recomputeBoundingSpheres&&bPe(this,e);let n=this.appearance,i=n.material,r=!1,o=!1;this._appearance!==n?(this._appearance=n,this._material=i,r=!0,o=!0):this._material!==i&&(this._material=i,o=!0);let s=this.depthFailAppearance,a=u(s)?s.material:void 0;this._depthFailAppearance!==s?(this._depthFailAppearance=s,this._depthFailMaterial=a,r=!0,o=!0):this._depthFailMaterial!==a&&(this._depthFailMaterial=a,o=!0);let c=this._appearance.isTranslucent();this._translucent!==c&&(this._translucent=c,r=!0),u(this._material)&&this._material.update(t);let l=n.closed&&c;r&&y(this._createRenderStatesFunction,DPe)(this,t,n,l),o&&y(this._createShaderProgramFunction,IPe)(this,e,n),(r||o)&&y(this._createCommandsFunction,PPe)(this,n,i,c,l,this._colorCommands,this._pickCommands,e),y(this._updateAndQueueCommandsFunction,OPe)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,l)};var MPe=new ae,RPe=new ae;function yee(e,t,n){if(n===nn.TOP){let i=ae.clone(e,MPe),r=ae.clone(e,RPe);r.center=h.add(r.center,t,r.center),e=ae.union(i,r,e)}else n===nn.ALL&&(e.center=h.add(e.center,t,e.center));return e}function BPe(e,t,n){return function(){let i=e.getBatchedAttribute(t,n),r=e.attributes[n],o=r.componentsPerAttribute,s=X.createTypedArray(r.componentDatatype,o);return u(i.constructor.pack)?i.constructor.pack(i,s,0):s[0]=i,s}}function LPe(e,t,n,i,r){return function(o){let s=mee(o);e.setBatchedAttribute(t,n,s),r==="offset"&&(i._recomputeBoundingSpheres=!0,i._batchTableOffsetsUpdated=!1)}}var NPe=new h;function FPe(e,t,n){t.boundingSphere={get:function(){let i=e._instanceBoundingSpheres[n];if(u(i)){i=i.clone();let r=e.modelMatrix,o=t.offset;u(o)&&yee(i,h.fromArray(o.get(),0,NPe),e._offsetInstanceExtend[n]),u(r)&&(i=ae.transform(i,r))}return i}},t.boundingSphereCV={get:function(){return e._instanceBoundingSpheresCV[n]}}}function UPe(e,t,n){t.pickId={get:function(){return e._pickIds[n]}}}go.prototype.getGeometryInstanceAttributes=function(e){let t=this._perInstanceAttributeCache.get(e);if(u(t))return t;let n=-1,i=this._lastPerInstanceAttributeIndex,r=this._instanceIds,o=r.length;for(let l=0;l<o;++l){let f=(i+l)%o;if(e===r[f]){n=f;break}}if(n===-1)return;let s=this._batchTable,a=this._batchTableAttributeIndices;t={};let c={};for(let l in a)if(a.hasOwnProperty(l)){let f=a[l];c[l]={get:BPe(s,n,f),set:LPe(s,n,f,this,l)}}return FPe(this,c,n),UPe(this,c,n),Object.defineProperties(t,c),this._lastPerInstanceAttributeIndex=n,this._perInstanceAttributeCache.set(e,t),t};go.prototype.isDestroyed=function(){return!1};go.prototype.destroy=function(){let e,t;this._sp=this._sp&&this._sp.destroy(),this._spDepthFail=this._spDepthFail&&this._spDepthFail.destroy();let n=this._va;for(e=n.length,t=0;t<e;++t)n[t].destroy();this._va=void 0;let i=this._pickIds;for(e=i.length,t=0;t<e;++t)i[t].destroy();return this._pickIds=void 0,this._batchTable=this._batchTable&&this._batchTable.destroy(),this._instanceIds=void 0,this._perInstanceAttributeCache=void 0,this._attributeLocations=void 0,ue(this)};function iP(e,t,n,i){e._completeLoad(t,n,i)}var bn=go;function VPe(e){e=y(e,y.EMPTY_OBJECT),this.componentDatatype=e.componentDatatype,this.componentsPerAttribute=e.componentsPerAttribute,this.normalize=y(e.normalize,!1),this.value=e.value}var ja=VPe;var xT=`#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL +in vec4 v_sphericalExtents; +#else // SPHERICAL +in vec2 v_inversePlaneExtents; +in vec4 v_westPlane; +in vec4 v_southPlane; +#endif // SPHERICAL +in vec3 v_uvMinAndSphericalLongitudeRotation; +in vec3 v_uMaxAndInverseDistance; +in vec3 v_vMaxAndInverseDistance; +#endif // TEXTURE_COORDINATES + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#endif + +#ifdef NORMAL_EC +vec3 getEyeCoordinate3FromWindowCoordinate(vec2 fragCoord, float logDepthOrDepth) { + vec4 eyeCoordinate = czm_windowToEyeCoordinates(fragCoord, logDepthOrDepth); + return eyeCoordinate.xyz / eyeCoordinate.w; +} + +vec3 vectorFromOffset(vec4 eyeCoordinate, vec2 positiveOffset) { + vec2 glFragCoordXY = gl_FragCoord.xy; + // Sample depths at both offset and negative offset + float upOrRightLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY + positiveOffset) / czm_viewport.zw)); + float downOrLeftLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY - positiveOffset) / czm_viewport.zw)); + // Explicitly evaluate both paths + // Necessary for multifrustum and for edges of the screen + bvec2 upOrRightInBounds = lessThan(glFragCoordXY + positiveOffset, czm_viewport.zw); + float useUpOrRight = float(upOrRightLogDepth > 0.0 && upOrRightInBounds.x && upOrRightInBounds.y); + float useDownOrLeft = float(useUpOrRight == 0.0); + vec3 upOrRightEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY + positiveOffset, upOrRightLogDepth); + vec3 downOrLeftEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY - positiveOffset, downOrLeftLogDepth); + return (upOrRightEC - (eyeCoordinate.xyz / eyeCoordinate.w)) * useUpOrRight + ((eyeCoordinate.xyz / eyeCoordinate.w) - downOrLeftEC) * useDownOrLeft; +} +#endif // NORMAL_EC + +void main(void) +{ +#ifdef REQUIRES_EC + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)); + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); +#endif + +#ifdef REQUIRES_WC + vec4 worldCoordinate4 = czm_inverseView * eyeCoordinate; + vec3 worldCoordinate = worldCoordinate4.xyz / worldCoordinate4.w; +#endif + +#ifdef TEXTURE_COORDINATES + vec2 uv; +#ifdef SPHERICAL + // Treat world coords as a sphere normal for spherical coordinates + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(worldCoordinate); + sphericalLatLong.y += v_uvMinAndSphericalLongitudeRotation.z; + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + uv.x = (sphericalLatLong.y - v_sphericalExtents.y) * v_sphericalExtents.w; + uv.y = (sphericalLatLong.x - v_sphericalExtents.x) * v_sphericalExtents.z; +#else // SPHERICAL + // Unpack planes and transform to eye space + uv.x = czm_planeDistance(v_westPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.x; + uv.y = czm_planeDistance(v_southPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.y; +#endif // SPHERICAL +#endif // TEXTURE_COORDINATES + +#ifdef PICK +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + // Check for logDepthOrDepth != 0.0 to make sure this should be classified. + if (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0 || logDepthOrDepth != 0.0) { + out_FragColor.a = 1.0; // 0.0 alpha leads to discard from ShaderSource.createPickFragmentShaderSource + czm_writeDepthClamp(); + } +#else // CULL_FRAGMENTS + out_FragColor.a = 1.0; +#endif // CULL_FRAGMENTS +#else // PICK + +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || logDepthOrDepth == 0.0) { + discard; + } +#endif + +#ifdef NORMAL_EC + // Compute normal by sampling adjacent pixels in 2x2 block in screen space + vec3 downUp = vectorFromOffset(eyeCoordinate, vec2(0.0, 1.0)); + vec3 leftRight = vectorFromOffset(eyeCoordinate, vec2(1.0, 0.0)); + vec3 normalEC = normalize(cross(leftRight, downUp)); +#endif + + +#ifdef PER_INSTANCE_COLOR + + vec4 color = czm_gammaCorrect(v_color); +#ifdef FLAT + out_FragColor = color; +#else // FLAT + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = -eyeCoordinate.xyz; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#else // PER_INSTANCE_COLOR + + // Material support. + // USES_ is distinct from REQUIRES_, because some things are dependencies of each other or + // dependencies for culling but might not actually be used by the material. + + czm_materialInput materialInput; + +#ifdef USES_NORMAL_EC + materialInput.normalEC = normalEC; +#endif + +#ifdef USES_POSITION_TO_EYE_EC + materialInput.positionToEyeEC = -eyeCoordinate.xyz; +#endif + +#ifdef USES_TANGENT_TO_EYE + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(worldCoordinate, normalEC); +#endif + +#ifdef USES_ST + // Remap texture coordinates from computed (approximately aligned with cartographic space) to the desired + // texture coordinate system, which typically forms a tight oriented bounding box around the geometry. + // Shader is provided a set of reference points for remapping. + materialInput.st.x = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_uMaxAndInverseDistance.xy, uv) * v_uMaxAndInverseDistance.z; + materialInput.st.y = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_vMaxAndInverseDistance.xy, uv) * v_vMaxAndInverseDistance.z; +#endif + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else // FLAT + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#endif // PER_INSTANCE_COLOR + czm_writeDepthClamp(); +#endif // PICK +} +`;function ef(e,t,n){this._projectionExtentDefines={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};let i=new q8;i.requiresTextureCoordinates=e,i.requiresEC=!n.flat;let r=new q8;if(r.requiresTextureCoordinates=e,n instanceof rn)i.requiresNormalEC=!n.flat;else{let o=`${n.material.shaderSource} +${n.fragmentShaderSource}`;i.normalEC=o.indexOf("materialInput.normalEC")!==-1||o.indexOf("czm_getDefaultMaterial")!==-1,i.positionToEyeEC=o.indexOf("materialInput.positionToEyeEC")!==-1,i.tangentToEyeMatrix=o.indexOf("materialInput.tangentToEyeMatrix")!==-1,i.st=o.indexOf("materialInput.st")!==-1}this._colorShaderDependencies=i,this._pickShaderDependencies=r,this._appearance=n,this._extentsCulling=e,this._planarExtents=t}ef.prototype.createFragmentShader=function(e){let t=this._appearance,n=this._colorShaderDependencies,i=[];!e&&!this._planarExtents&&i.push("SPHERICAL"),n.requiresEC&&i.push("REQUIRES_EC"),n.requiresWC&&i.push("REQUIRES_WC"),n.requiresTextureCoordinates&&i.push("TEXTURE_COORDINATES"),this._extentsCulling&&i.push("CULL_FRAGMENTS"),n.requiresNormalEC&&i.push("NORMAL_EC"),t instanceof rn&&i.push("PER_INSTANCE_COLOR"),n.normalEC&&i.push("USES_NORMAL_EC"),n.positionToEyeEC&&i.push("USES_POSITION_TO_EYE_EC"),n.tangentToEyeMatrix&&i.push("USES_TANGENT_TO_EYE"),n.st&&i.push("USES_ST"),t.flat&&i.push("FLAT");let r="";return t instanceof rn||(r=t.material.shaderSource),new ke({defines:i,sources:[r,xT]})};ef.prototype.createPickFragmentShader=function(e){let t=this._pickShaderDependencies,n=["PICK"];return!e&&!this._planarExtents&&n.push("SPHERICAL"),t.requiresEC&&n.push("REQUIRES_EC"),t.requiresWC&&n.push("REQUIRES_WC"),t.requiresTextureCoordinates&&n.push("TEXTURE_COORDINATES"),this._extentsCulling&&n.push("CULL_FRAGMENTS"),new ke({defines:n,sources:[xT],pickColorQualifier:"in"})};ef.prototype.createVertexShader=function(e,t,n,i){return vee(this._colorShaderDependencies,this._planarExtents,n,e,t,this._appearance,i,this._projectionExtentDefines)};ef.prototype.createPickVertexShader=function(e,t,n,i){return vee(this._pickShaderDependencies,this._planarExtents,n,e,t,void 0,i,this._projectionExtentDefines)};var Aee=new h,xee=new me,Cee={high:0,low:0};function vee(e,t,n,i,r,o,s,a){let c=i.slice();if(a.eastMostYhighDefine===""){let l=xee;l.longitude=P.PI,l.latitude=0,l.height=0;let f=s.project(l,Aee),d=jn.encode(f.x,Cee);a.eastMostYhighDefine=`EAST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.eastMostYlowDefine=`EAST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`;let p=xee;p.longitude=-P.PI,p.latitude=0,p.height=0;let g=s.project(p,Aee);d=jn.encode(g.x,Cee),a.westMostYhighDefine=`WEST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.westMostYlowDefine=`WEST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`}return n&&(c.push(a.eastMostYhighDefine),c.push(a.eastMostYlowDefine),c.push(a.westMostYhighDefine),c.push(a.westMostYlowDefine)),u(o)&&o instanceof rn&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||n||c.push("SPHERICAL"),n&&c.push("COLUMBUS_VIEW_2D")),new ke({defines:c,sources:[r]})}function q8(){this._requiresEC=!1,this._requiresWC=!1,this._requiresNormalEC=!1,this._requiresTextureCoordinates=!1,this._usesNormalEC=!1,this._usesPositionToEyeEC=!1,this._usesTangentToEyeMat=!1,this._usesSt=!1}Object.defineProperties(q8.prototype,{requiresEC:{get:function(){return this._requiresEC},set:function(e){this._requiresEC=e||this._requiresEC}},requiresWC:{get:function(){return this._requiresWC},set:function(e){this._requiresWC=e||this._requiresWC,this.requiresEC=this._requiresWC}},requiresNormalEC:{get:function(){return this._requiresNormalEC},set:function(e){this._requiresNormalEC=e||this._requiresNormalEC,this.requiresEC=this._requiresNormalEC}},requiresTextureCoordinates:{get:function(){return this._requiresTextureCoordinates},set:function(e){this._requiresTextureCoordinates=e||this._requiresTextureCoordinates,this.requiresWC=this._requiresTextureCoordinates}},normalEC:{set:function(e){this.requiresNormalEC=e,this._usesNormalEC=e},get:function(){return this._usesNormalEC}},tangentToEyeMatrix:{set:function(e){this.requiresWC=e,this.requiresNormalEC=e,this._usesTangentToEyeMat=e},get:function(){return this._usesTangentToEyeMat}},positionToEyeEC:{set:function(e){this.requiresEC=e,this._usesPositionToEyeEC=e},get:function(){return this._usesPositionToEyeEC}},st:{set:function(e){this.requiresTextureCoordinates=e,this._usesSt=e},get:function(){return this._usesSt}}});function Tee(e,t,n){return Math.abs((t.y-e.y)*n.x-(t.x-e.x)*n.y+t.x*e.y-t.y*e.x)/H.distance(t,e)}var kPe=[new H,new H,new H,new H];function wee(e,t){let n=kPe,i=H.unpack(t,0,n[0]),r=H.unpack(t,2,n[1]),o=H.unpack(t,4,n[2]);e.uMaxVmax=new ja({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[r.x,r.y,o.x,o.y]});let s=1/Tee(i,r,o),a=1/Tee(i,o,r);e.uvMinAndExtents=new ja({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[i.x,i.y,s,a]})}var Dee=new me,Iee=new h,zPe=new h,HPe=new h,fU={high:0,low:0};function Pee(e,t,n){let i=Dee;i.height=0,i.longitude=e.west,i.latitude=e.south;let r=t.project(i,Iee);i.latitude=e.north;let o=t.project(i,zPe);i.longitude=e.east,i.latitude=e.south;let s=t.project(i,HPe),a=[0,0,0,0],c=[0,0,0,0],l=jn.encode(r.x,fU);a[0]=l.high,c[0]=l.low,l=jn.encode(r.y,fU),a[1]=l.high,c[1]=l.low,l=jn.encode(o.y,fU),a[2]=l.high,c[2]=l.low,l=jn.encode(s.x,fU),a[3]=l.high,c[3]=l.low,n.planes2D_HIGH=new ja({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:a}),n.planes2D_LOW=new ja({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:c})}var GPe=new N,WPe=new N,Eee=new h,jPe=new me,qPe=[new me,new me,new me,new me,new me,new me,new me,new me];function YPe(e,t,n,i,r,o){let s=le.center(e,jPe);s.height=n;let a=me.toCartesian(s,t,Eee),c=Mt.eastNorthUpToFixedFrame(a,t,GPe),l=N.inverse(c,WPe),f=e.west,d=e.east,p=e.north,g=e.south,m=qPe;m[0].latitude=g,m[0].longitude=f,m[1].latitude=p,m[1].longitude=f,m[2].latitude=p,m[2].longitude=d,m[3].latitude=g,m[3].longitude=d;let A=(f+d)*.5,x=(p+g)*.5;m[4].latitude=g,m[4].longitude=A,m[5].latitude=p,m[5].longitude=A,m[6].latitude=x,m[6].longitude=f,m[7].latitude=x,m[7].longitude=d;let C=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY,E=Number.POSITIVE_INFINITY,S=Number.NEGATIVE_INFINITY;for(let O=0;O<8;O++){m[O].height=n;let B=me.toCartesian(m[O],t,Eee);N.multiplyByPoint(l,B,B),B.z=0,C=Math.min(C,B.x),T=Math.max(T,B.x),E=Math.min(E,B.y),S=Math.max(S,B.y)}let v=i;v.x=C,v.y=E,v.z=0,N.multiplyByPoint(c,v,v);let D=r;D.x=T,D.y=E,D.z=0,N.multiplyByPoint(c,D,D),h.subtract(D,v,r);let M=o;M.x=C,M.y=S,M.z=0,N.multiplyByPoint(c,M,M),h.subtract(M,v,o)}var XPe=new h,KPe=new h,JPe=new jn;ef.getPlanarTextureCoordinateAttributes=function(e,t,n,i,r){let o=Iee,s=XPe,a=KPe;YPe(e,n,y(r,0),o,s,a);let c={};wee(c,t);let l=jn.fromCartesian(o,JPe);return c.southWest_HIGH=new ja({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(l.high,[0,0,0])}),c.southWest_LOW=new ja({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(l.low,[0,0,0])}),c.eastward=new ja({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(s,[0,0,0])}),c.northward=new ja({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(a,[0,0,0])}),Pee(e,i,c),c};var ZPe=new h;function bee(e,t,n,i){let r=Dee;r.latitude=e,r.longitude=t,r.height=0;let o=me.toCartesian(r,n,ZPe),s=Math.sqrt(o.x*o.x+o.y*o.y),a=P.fastApproximateAtan2(s,o.z),c=P.fastApproximateAtan2(o.x,o.y);return i.x=a,i.y=c,i}var See=new H;ef.getSphericalExtentGeometryInstanceAttributes=function(e,t,n,i){let r=bee(e.south,e.west,n,See),o=r.x,s=r.y,a=bee(e.north,e.east,n,See),c=a.x,l=a.y,f=0;s>l&&(f=P.PI-s,s=-P.PI,l+=f),o-=P.EPSILON5,s-=P.EPSILON5,c+=P.EPSILON5,l+=P.EPSILON5;let d=1/(l-s),p=1/(c-o),g={sphericalExtents:new ja({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[o,s,p,d]}),longitudeRotation:new ja({componentDatatype:X.FLOAT,componentsPerAttribute:1,normalize:!1,value:[f]})};return wee(g,t),Pee(e,i,g),g};ef.hasAttributesForTextureCoordinatePlanes=function(e){return u(e.southWest_HIGH)&&u(e.southWest_LOW)&&u(e.northward)&&u(e.eastward)&&u(e.planes2D_HIGH)&&u(e.planes2D_LOW)&&u(e.uMaxVmax)&&u(e.uvMinAndExtents)};ef.hasAttributesForSphericalExtents=function(e){return u(e.sphericalExtents)&&u(e.longitudeRotation)&&u(e.planes2D_HIGH)&&u(e.planes2D_LOW)&&u(e.uMaxVmax)&&u(e.uvMinAndExtents)};function QPe(e){return Math.max(e.width,e.height)>ef.MAX_WIDTH_FOR_PLANAR_EXTENTS}ef.shouldUseSphericalCoordinates=function(e){return QPe(e)};ef.MAX_WIDTH_FOR_PLANAR_EXTENTS=P.toRadians(1);var tu=ef;var $Pe={NEVER:te.NEVER,LESS:te.LESS,EQUAL:te.EQUAL,LESS_OR_EQUAL:te.LEQUAL,GREATER:te.GREATER,NOT_EQUAL:te.NOTEQUAL,GREATER_OR_EQUAL:te.GEQUAL,ALWAYS:te.ALWAYS},zn=Object.freeze($Pe);var e1e={ZERO:te.ZERO,KEEP:te.KEEP,REPLACE:te.REPLACE,INCREMENT:te.INCR,DECREMENT:te.DECR,INVERT:te.INVERT,INCREMENT_WRAP:te.INCR_WRAP,DECREMENT_WRAP:te.DECR_WRAP},mt=Object.freeze(e1e);var dU={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};dU.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:zn.ALWAYS,frontOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.REPLACE},backFunction:zn.ALWAYS,backOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.REPLACE},reference:dU.CESIUM_3D_TILE_MASK,mask:dU.CESIUM_3D_TILE_MASK}};var Ft=Object.freeze(dU);function Z0(e){e=y(e,y.EMPTY_OBJECT);let t=e.geometryInstances;this.geometryInstances=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,kn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._debugShowShadowVolume=!1,this._extruded=y(e._extruded,!1),this._uniformMap=e._uniformMap,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._spColor=void 0,this._spPick2D=void 0,this._spColor2D=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._commandsIgnoreShow=[],this._ready=!1;let n=this;this._readyPromise=new Promise((i,r)=>{n._completeLoad=()=>{if(this._ready)return;this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0);let o=this._error;u(o)?r(o):i(this)}}),this._primitive=void 0,this._pickPrimitive=e._pickPrimitive,this._hasSphericalExtentsAttribute=!1,this._hasPlanarExtentsAttributes=!1,this._hasPerColorAttribute=!1,this.appearance=e.appearance,this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._usePickOffsets=!1,this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_createRenderStatesFunction:void 0,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0,_createPickOffsets:!0}}Object.defineProperties(Z0.prototype,{vertexCacheOptimize:{get:function(){return this._primitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},compressVertices:{get:function(){return this._primitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("ClassificationPrimitive.readyPromise","ClassificationPrimitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for ClassificationPrimitive.ready to return true instead."),this._readyPromise}},_needs2DShader:{get:function(){return this._hasPlanarExtentsAttributes||this._hasSphericalExtentsAttribute}}});Z0.isSupported=function(e){return e.context.stencilBuffer};function CT(e,t){let n=t?zn.EQUAL:zn.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:e,frontFunction:n,frontOperation:{fail:mt.KEEP,zFail:mt.DECREMENT_WRAP,zPass:mt.KEEP},backFunction:n,backOperation:{fail:mt.KEEP,zFail:mt.INCREMENT_WRAP,zPass:mt.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:Wa.LESS_OR_EQUAL},depthMask:!1}}function X8(e){return{stencilTest:{enabled:e,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},backFunction:zn.NOT_EQUAL,backOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}}var t1e={stencilTest:{enabled:!0,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},backFunction:zn.NOT_EQUAL,backOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function n1e(e,t,n,i){if(u(e._rsStencilDepthPass))return;let r=!e.debugShowShadowVolume;e._rsStencilDepthPass=Ve.fromCache(CT(r,!1)),e._rsStencilDepthPass3DTiles=Ve.fromCache(CT(r,!0)),e._rsColorPass=Ve.fromCache(X8(r,!1)),e._rsPickPass=Ve.fromCache(t1e)}function i1e(e,t){if(!e.compressVertices)return t;if(t.search(/in\s+vec3\s+extrudeDirection;/g)!==-1){let n="compressedAttributes",i=`in vec2 ${n};`,r=`vec3 extrudeDirection; +`,o=` extrudeDirection = czm_octDecode(${n}, 65535.0); +`,s=t;s=s.replace(/in\s+vec3\s+extrudeDirection;/g,""),s=ke.replaceMain(s,"czm_non_compressed_main");let a=`void main() +{ +${o} czm_non_compressed_main(); +}`;return[i,r,s,a].join(` +`)}}function r1e(e,t){let n=t.context,i=e._primitive,r=XI;r=e._primitive._batchTable.getVertexShaderCallback()(r),r=bn._appendDistanceDisplayConditionToShader(i,r),r=bn._modifyShaderPosition(e,r,t.scene3DOnly),r=bn._updateColorAttribute(i,r);let o=e._hasPlanarExtentsAttributes,s=o||e._hasSphericalExtentsAttribute;e._extruded&&(r=i1e(i,r));let a=e._extruded?"EXTRUDED_GEOMETRY":"",c=new ke({defines:[a],sources:[r]}),l=new ke({sources:[dg]}),f=e._primitive._attributeLocations,d=new tu(s,o,e.appearance);if(e._spStencil=Xt.replaceCache({context:n,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:f}),e._primitive.allowPicking){let m=ke.createPickVertexShaderSource(r);m=bn._appendShowToShader(i,m),m=bn._updatePickColorAttribute(m);let A=d.createPickFragmentShader(!1),x=d.createPickVertexShader([a],m,!1,t.mapProjection);if(e._spPick=Xt.replaceCache({context:n,shaderProgram:e._spPick,vertexShaderSource:x,fragmentShaderSource:A,attributeLocations:f}),s){let C=n.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!u(C)){let T=d.createPickFragmentShader(!0),E=d.createPickVertexShader([a],m,!0,t.mapProjection);C=n.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:E,fragmentShaderSource:T,attributeLocations:f})}e._spPick2D=C}}else e._spPick=Xt.fromCache({context:n,vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:f});r=bn._appendShowToShader(i,r),c=new ke({defines:[a],sources:[r]}),e._sp=Xt.replaceCache({context:n,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:f});let p=d.createFragmentShader(!1),g=d.createVertexShader([a],r,!1,t.mapProjection);if(e._spColor=Xt.replaceCache({context:n,shaderProgram:e._spColor,vertexShaderSource:g,fragmentShaderSource:p,attributeLocations:f}),s){let m=n.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!u(m)){let A=d.createFragmentShader(!0),x=d.createVertexShader([a],r,!0,t.mapProjection);m=n.shaderCache.createDerivedShaderProgram(e._spColor,"2dColor",{vertexShaderSource:x,fragmentShaderSource:A,attributeLocations:f})}e._spColor2D=m}}function o1e(e,t){let n=e._primitive,i=n._va.length*2;t.length=i;let r,o,s,a=0,c=n._batchTable.getUniformMapCallback()(e._uniformMap),l=e._needs2DShader;for(r=0;r<i;r+=2){let g=n._va[a++];o=t[r],u(o)||(o=t[r]=new nt({owner:e,primitiveType:n._primitiveType})),o.vertexArray=g,o.renderState=e._rsStencilDepthPass,o.shaderProgram=e._sp,o.uniformMap=c,o.pass=be.TERRAIN_CLASSIFICATION,s=nt.shallowClone(o,o.derivedCommands.tileset),s.renderState=e._rsStencilDepthPass3DTiles,s.pass=be.CESIUM_3D_TILE_CLASSIFICATION,o.derivedCommands.tileset=s,o=t[r+1],u(o)||(o=t[r+1]=new nt({owner:e,primitiveType:n._primitiveType})),o.vertexArray=g,o.renderState=e._rsColorPass,o.shaderProgram=e._spColor,o.pass=be.TERRAIN_CLASSIFICATION;let A=e.appearance.material;if(u(A)&&(c=_t(c,A._uniforms)),o.uniformMap=c,s=nt.shallowClone(o,o.derivedCommands.tileset),s.pass=be.CESIUM_3D_TILE_CLASSIFICATION,o.derivedCommands.tileset=s,l){let x=nt.shallowClone(o,o.derivedCommands.appearance2D);x.shaderProgram=e._spColor2D,o.derivedCommands.appearance2D=x,x=nt.shallowClone(s,s.derivedCommands.appearance2D),x.shaderProgram=e._spColor2D,s.derivedCommands.appearance2D=x}}let f=e._commandsIgnoreShow,d=e._spStencil,p=0;i=f.length=i/2;for(let g=0;g<i;++g){let m=f[g]=nt.shallowClone(t[p],f[g]);m.shaderProgram=d,m.pass=be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,p+=2}}function s1e(e,t){let n=e._usePickOffsets,i=e._primitive,r=i._va.length*2,o,s=0,a;n&&(o=i._pickOffsets,r=o.length*2),t.length=r;let c,l,f,d=0,p=i._batchTable.getUniformMapCallback()(e._uniformMap),g=e._needs2DShader;for(c=0;c<r;c+=2){let m=i._va[d++];if(n&&(a=o[s++],m=i._va[a.index]),l=t[c],u(l)||(l=t[c]=new nt({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),l.vertexArray=m,l.renderState=e._rsStencilDepthPass,l.shaderProgram=e._sp,l.uniformMap=p,l.pass=be.TERRAIN_CLASSIFICATION,n&&(l.offset=a.offset,l.count=a.count),f=nt.shallowClone(l,l.derivedCommands.tileset),f.renderState=e._rsStencilDepthPass3DTiles,f.pass=be.CESIUM_3D_TILE_CLASSIFICATION,l.derivedCommands.tileset=f,l=t[c+1],u(l)||(l=t[c+1]=new nt({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),l.vertexArray=m,l.renderState=e._rsPickPass,l.shaderProgram=e._spPick,l.uniformMap=p,l.pass=be.TERRAIN_CLASSIFICATION,n&&(l.offset=a.offset,l.count=a.count),f=nt.shallowClone(l,l.derivedCommands.tileset),f.pass=be.CESIUM_3D_TILE_CLASSIFICATION,l.derivedCommands.tileset=f,g){let A=nt.shallowClone(l,l.derivedCommands.pick2D);A.shaderProgram=e._spPick2D,l.derivedCommands.pick2D=A,A=nt.shallowClone(f,f.derivedCommands.pick2D),A.shaderProgram=e._spPick2D,f.derivedCommands.pick2D=A}}}function a1e(e,t,n,i,r,o,s){o1e(e,o),s1e(e,s)}function Oee(e,t){return Math.floor(e%t/2)}function Y8(e,t,n,i,r,o){e.modelMatrix=n,e.boundingVolume=r,e.cull=i,e.debugShowBoundingVolume=o,t.commandList.push(e)}function Mee(e,t,n,i,r){e.modelMatrix=n,e.boundingVolume=r,e.cull=i,t.commandList.push(e)}function c1e(e,t,n,i,r,o,s,a){let c=e._primitive;bn._updateBoundingVolumes(c,t,r);let l;t.mode===ne.SCENE3D?l=c._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?l=c._boundingSphereCV:t.mode===ne.SCENE2D&&u(c._boundingSphere2D)?l=c._boundingSphere2D:u(c._boundingSphereMorph)&&(l=c._boundingSphereMorph);let f=e.classificationType,d=f!==kn.CESIUM_3D_TILE,p=f!==kn.TERRAIN,g=t.passes,m,A,x;if(g.render){let C=n.length;for(m=0;m<C;++m)A=l[Oee(m,C)],d&&(x=n[m],Y8(x,t,r,o,A,s)),p&&(x=n[m].derivedCommands.tileset,Y8(x,t,r,o,A,s));if(t.invertClassification){let T=e._commandsIgnoreShow,E=T.length;for(m=0;m<E;++m)A=l[m],x=T[m],Y8(x,t,r,o,A,s)}}if(g.pick){let C=i.length,T=c._pickOffsets;for(m=0;m<C;++m){let E=T[Oee(m,C)];A=l[E.index],d&&(x=i[m],Mee(x,t,r,o,A)),p&&(x=i[m].derivedCommands.tileset,Mee(x,t,r,o,A))}}}Z0.prototype.update=function(e){if(!u(this._primitive)&&!u(this.geometryInstances))return;let t=this.appearance;u(t)&&u(t.material)&&t.material.update(e.context);let n=this,i=this._primitiveOptions;if(!u(this._primitive)){let r=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],o=r.length,s,a,c,l=!1,f=!0,d,p=!1,g=!1;for(o>0&&(c=r[0].attributes,p=tu.hasAttributesForSphericalExtents(c),g=tu.hasAttributesForTextureCoordinatePlanes(c),d=c.color),s=0;s<o;s++){a=r[s];let A=a.attributes.color;u(A)&&(l=!0),f=f&&u(A)&&kt.equals(d,A)}if(!f&&!p&&!g)throw new fe("All GeometryInstances must have the same color attribute except via GroundPrimitives");l&&!u(t)&&(t=new rn({flat:!0}),this.appearance=t),this._usePickOffsets=!p&&!g,this._hasSphericalExtentsAttribute=p,this._hasPlanarExtentsAttributes=g,this._hasPerColorAttribute=l;let m=new Array(o);for(s=0;s<o;++s)a=r[s],m[s]=new xt({geometry:a.geometry,attributes:a.attributes,modelMatrix:a.modelMatrix,id:a.id,pickPrimitive:y(this._pickPrimitive,n)});i.appearance=t,i.geometryInstances=m,u(this._createBoundingVolumeFunction)&&(i._createBoundingVolumeFunction=function(A,x){n._createBoundingVolumeFunction(A,x)}),i._createRenderStatesFunction=function(A,x,C,T){n1e(n,x)},i._createShaderProgramFunction=function(A,x,C){r1e(n,x)},i._createCommandsFunction=function(A,x,C,T,E,S,v){a1e(n,void 0,void 0,!0,!1,S,v)},u(this._updateAndQueueCommandsFunction)?i._updateAndQueueCommandsFunction=function(A,x,C,T,E,S,v,D){n._updateAndQueueCommandsFunction(A,x,C,T,E,S,v,D)}:i._updateAndQueueCommandsFunction=function(A,x,C,T,E,S,v,D){c1e(n,x,C,T,E,S,v,D)},this._primitive=new bn(i)}this.debugShowShadowVolume&&!this._debugShowShadowVolume&&this._ready?(this._debugShowShadowVolume=!0,this._rsStencilDepthPass=Ve.fromCache(CT(!1,!1)),this._rsStencilDepthPass3DTiles=Ve.fromCache(CT(!1,!0)),this._rsColorPass=Ve.fromCache(X8(!1))):!this.debugShowShadowVolume&&this._debugShowShadowVolume&&(this._debugShowShadowVolume=!1,this._rsStencilDepthPass=Ve.fromCache(CT(!0,!1)),this._rsStencilDepthPass3DTiles=Ve.fromCache(CT(!0,!0)),this._rsColorPass=Ve.fromCache(X8(!0))),this._primitive.appearance!==t&&(this._primitive.appearance=t),this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{u(this._primitive)&&this._primitive.ready&&this._completeLoad()})};Z0.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Z0.prototype.isDestroyed=function(){return!1};Z0.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._spColor=this._spColor&&this._spColor.destroy(),this._spPick2D=void 0,this._spColor2D=void 0,ue(this)};var TT=Z0;var l1e={u_globeMinimumAltitude:function(){return 55e3}};function hl(e){e=y(e,y.EMPTY_OBJECT);let t=e.appearance,n=e.geometryInstances;if(!u(t)&&u(n)){let o=Array.isArray(n)?n:[n],s=o.length;for(let a=0;a<s;a++){let c=o[a].attributes;if(u(c)&&u(c.color)){t=new rn({flat:!0});break}}}this.appearance=t,this.geometryInstances=e.geometryInstances,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,kn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._boundingVolumes=[],this._boundingVolumes2D=[],this._ready=!1;let i=this;this._readyPromise=new Promise((o,s)=>{i._completeLoad=()=>{if(this._ready)return;this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0);let a=this._error;u(a)?s(a):o(this)}}),this._primitive=void 0,this._maxHeight=void 0,this._minHeight=void 0,this._maxTerrainHeight=si._defaultMaxTerrainHeight,this._minTerrainHeight=si._defaultMinTerrainHeight,this._boundingSpheresKeys=[],this._boundingSpheres=[],this._useFragmentCulling=!1,this._zIndex=void 0;let r=this;this._classificationPrimitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_updateAndQueueCommandsFunction:void 0,_pickPrimitive:r,_extruded:!0,_uniformMap:l1e}}Object.defineProperties(hl.prototype,{vertexCacheOptimize:{get:function(){return this._classificationPrimitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._classificationPrimitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._classificationPrimitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._classificationPrimitiveOptions.allowPicking}},asynchronous:{get:function(){return this._classificationPrimitiveOptions.asynchronous}},compressVertices:{get:function(){return this._classificationPrimitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("GroundPrimitive.readyPromise","GroundPrimitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for GroundPrimitive.ready to return true instead."),this._readyPromise}}});hl.isSupported=TT.isSupported;function Ree(e){return function(t,n){let i=n.maximumRadius,r=i/Math.cos(t*.5)-i;return e._maxHeight+r}}function Bee(e){return function(t,n){return e._minHeight}}var u1e=new h,f1e=new h,d1e=new h,h1e=new me,m1e=new le;function hU(e,t){let n=e.mapProjection.ellipsoid;if(!u(t.attributes)||!u(t.attributes.position3DHigh))return u(t.rectangle)?t.rectangle:void 0;let i=t.attributes.position3DHigh.values,r=t.attributes.position3DLow.values,o=i.length,s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,l=Number.NEGATIVE_INFINITY;for(let d=0;d<o;d+=3){let p=h.unpack(i,d,u1e),g=h.unpack(r,d,f1e),m=h.add(p,g,d1e),A=n.cartesianToCartographic(m,h1e),x=A.latitude,C=A.longitude;s=Math.min(s,x),a=Math.min(a,C),c=Math.max(c,x),l=Math.max(l,C)}let f=m1e;return f.north=c,f.south=s,f.east=l,f.west=a,f}function p1e(e,t,n){let i=si.getMinimumMaximumHeights(t,n);e._minTerrainHeight=i.minimumTerrainHeight,e._maxTerrainHeight=i.maximumTerrainHeight}function _1e(e,t,n){let i=t.mapProjection.ellipsoid,r=hU(t,n),o=On.fromRectangle(r,e._minHeight,e._maxHeight,i);if(e._boundingVolumes.push(o),!t.scene3DOnly){let s=t.mapProjection,a=ae.fromRectangleWithHeights2D(r,s,e._maxHeight,e._minHeight);h.fromElements(a.center.z,a.center.x,a.center.y,a.center),e._boundingVolumes2D.push(a)}}function K8(e,t){return Math.floor(e%t/2)}function J8(e,t,n,i,r,o,s){let a=e._primitive;n.mode!==ne.SCENE3D&&t.shaderProgram===a._spColor&&a._needs2DShader&&(t=t.derivedCommands.appearance2D),t.owner=e,t.modelMatrix=i,t.boundingVolume=o,t.cull=r,t.debugShowBoundingVolume=s,n.commandList.push(t)}function Lee(e,t,n,i,r,o){let s=e._primitive;n.mode!==ne.SCENE3D&&t.shaderProgram===s._spPick&&s._needs2DShader&&(t=t.derivedCommands.pick2D),t.owner=e,t.modelMatrix=i,t.boundingVolume=o,t.cull=r,n.commandList.push(t)}function g1e(e,t,n,i,r,o,s,a){let c;t.mode===ne.SCENE3D?c=e._boundingVolumes:c=e._boundingVolumes2D;let l=e.classificationType,f=l!==kn.CESIUM_3D_TILE,d=l!==kn.TERRAIN,p=t.passes,g=e._primitive,m,A,x;if(p.render){let C=n.length;for(m=0;m<C;++m)A=c[K8(m,C)],f&&(x=n[m],J8(e,x,t,r,o,A,s)),d&&(x=n[m].derivedCommands.tileset,J8(e,x,t,r,o,A,s));if(t.invertClassification){let T=g._commandsIgnoreShow,E=T.length;for(m=0;m<E;++m)A=c[m],x=T[m],J8(e,x,t,r,o,A,s)}}if(p.pick){let C=i.length,T;for(e._useFragmentCulling||(T=g._primitive._pickOffsets),m=0;m<C;++m){if(A=c[K8(m,C)],!e._useFragmentCulling){let E=T[K8(m,C)];A=c[E.index]}f&&(x=i[m],Lee(e,x,t,r,o,A)),d&&(x=i[m].derivedCommands.tileset,Lee(e,x,t,r,o,A))}}}hl.initializeTerrainHeights=function(){return si.initialize()};hl.prototype.update=function(e){if(!u(this._primitive)&&!u(this.geometryInstances))return;if(!si.initialized){hl.initializeTerrainHeights();return}let t=this,n=this._classificationPrimitiveOptions;if(!u(this._primitive)){let i=e.mapProjection.ellipsoid,r,o,s,a=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],c=a.length,l=new Array(c),f,d;for(f=0;f<c;++f){r=a[f],o=r.geometry;let A=hU(e,o);u(d)?u(A)&&le.union(d,A,d):d=le.clone(A);let x=r.id;if(u(x)&&u(A)){let C=si.getBoundingSphere(A,i);this._boundingSpheresKeys.push(x),this._boundingSpheres.push(C)}s=o.constructor,!u(s)||u(s.createShadowVolume)}p1e(this,d,i);let p=e.terrainExaggeration,g=e.terrainExaggerationRelativeHeight;this._minHeight=Dc.getHeight(this._minTerrainHeight,p,g),this._maxHeight=Dc.getHeight(this._maxTerrainHeight,p,g);let m=hl._supportsMaterials(e.context);if(this._useFragmentCulling=m,m){let A,x=!0;for(f=0;f<c;++f)if(r=a[f],o=r.geometry,d=hU(e,o),tu.shouldUseSphericalCoordinates(d)){x=!1;break}for(f=0;f<c;++f){r=a[f],o=r.geometry,s=o.constructor;let C=hU(e,o),T=o.textureCoordinateRotationPoints;x?A=tu.getPlanarTextureCoordinateAttributes(C,T,i,e.mapProjection,this._maxHeight):A=tu.getSphericalExtentGeometryInstanceAttributes(C,T,i,e.mapProjection);let E=r.attributes;for(let S in E)E.hasOwnProperty(S)&&(A[S]=E[S]);l[f]=new xt({geometry:s.createShadowVolume(o,Bee(this),Ree(this)),attributes:A,id:r.id})}}else for(f=0;f<c;++f)r=a[f],o=r.geometry,s=o.constructor,l[f]=new xt({geometry:s.createShadowVolume(o,Bee(this),Ree(this)),attributes:r.attributes,id:r.id});n.geometryInstances=l,n.appearance=this.appearance,n._createBoundingVolumeFunction=function(A,x){_1e(t,A,x)},n._updateAndQueueCommandsFunction=function(A,x,C,T,E,S,v,D){g1e(t,x,C,T,E,S,v,D)},this._primitive=new TT(n)}this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowShadowVolume=this.debugShowShadowVolume,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{!this._ready&&u(this._primitive)&&this._primitive.ready&&this._completeLoad()})};hl.prototype.getBoundingSphere=function(e){let t=this._boundingSpheresKeys.indexOf(e);if(t!==-1)return this._boundingSpheres[t]};hl.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};hl.prototype.isDestroyed=function(){return!1};hl.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};hl._supportsMaterials=function(e){return e.depthTexture};hl.supportsMaterials=function(e){return hl._supportsMaterials(e.frameState.context)};var Pc=hl;function ET(){fe.throwInstantiationError()}Object.defineProperties(ET.prototype,{isConstant:{get:fe.throwInstantiationError},definitionChanged:{get:fe.throwInstantiationError}});ET.prototype.getType=fe.throwInstantiationError;ET.prototype.getValue=fe.throwInstantiationError;ET.prototype.equals=fe.throwInstantiationError;ET.getValue=function(e,t,n){let i;return u(t)&&(i=t.getType(e),u(i))?((!u(n)||n.type!==i)&&(n=Gi.fromType(i)),t.getValue(e,n.uniforms),n):((!u(n)||n.type!==Gi.ColorType)&&(n=Gi.fromType(Gi.ColorType)),z.clone(z.WHITE,n.uniforms.color),n)};var Xr=ET;function Q0(e,t,n){this._primitives=t,this._orderedGroundPrimitives=n,this._primitive=void 0,this._outlinePrimitive=void 0,this._geometryUpdater=e,this._options=e._options,this._entity=e._entity,this._material=void 0}Q0.prototype._isHidden=function(e,t,n){return!e.isShowing||!e.isAvailable(n)||!q.getValueOrDefault(t.show,n,!0)};Q0.prototype._setOptions=fe.throwInstantiationError;Q0.prototype.update=function(e){let t=this._geometryUpdater,n=t._onTerrain,i=this._primitives,r=this._orderedGroundPrimitives;n?r.remove(this._primitive):(i.removeAndDestroy(this._primitive),i.removeAndDestroy(this._outlinePrimitive),this._outlinePrimitive=void 0),this._primitive=void 0;let o=this._entity,s=o[this._geometryUpdater._geometryPropertyName];if(this._setOptions(o,s,e),this._isHidden(o,s,e))return;let a=this._geometryUpdater.shadowsProperty.getValue(e),c=this._options;if(!u(s.fill)||s.fill.getValue(e)){let l=t.fillMaterialProperty,f=l instanceof Ut,d,p=t._getIsClosed(c);if(f)d=new rn({closed:p,flat:n&&!t._supportsMaterialsforEntitiesOnTerrain});else{let g=Xr.getValue(e,l,this._material);this._material=g,d=new lr({material:g,translucent:g.isTranslucent(),closed:p})}if(n)c.vertexFormat=rn.VERTEX_FORMAT,this._primitive=r.add(new Pc({geometryInstances:this._geometryUpdater.createFillGeometryInstance(e),appearance:d,asynchronous:!1,shadows:a,classificationType:this._geometryUpdater.classificationTypeProperty.getValue(e)}),q.getValueOrUndefined(this._geometryUpdater.zIndex,e));else{c.vertexFormat=d.vertexFormat;let g=this._geometryUpdater.createFillGeometryInstance(e);f&&(d.translucent=g.attributes.color.value[3]!==255),this._primitive=i.add(new bn({geometryInstances:g,appearance:d,asynchronous:!1,shadows:a}))}}if(!n&&u(s.outline)&&s.outline.getValue(e)){let l=this._geometryUpdater.createOutlineGeometryInstance(e),f=q.getValueOrDefault(s.outlineWidth,e,1);this._outlinePrimitive=i.add(new bn({geometryInstances:l,appearance:new rn({flat:!0,translucent:l.attributes.color.value[3]!==255,renderState:{lineWidth:t._scene.clampLineWidth(f)}}),asynchronous:!1,shadows:a}))}};Q0.prototype.getBoundingSphere=function(e){let t=this._entity,n=this._primitive,i=this._outlinePrimitive,r;return u(n)&&n.show&&n.ready&&(r=n.getGeometryInstanceAttributes(t),u(r)&&u(r.boundingSphere))?(ae.clone(r.boundingSphere,e),lt.DONE):u(i)&&i.show&&i.ready&&(r=i.getGeometryInstanceAttributes(t),u(r)&&u(r.boundingSphere))?(ae.clone(r.boundingSphere,e),lt.DONE):u(n)&&!n.ready||u(i)&&!i.ready?lt.PENDING:lt.FAILED};Q0.prototype.isDestroyed=function(){return!1};Q0.prototype.destroy=function(){let e=this._primitives,t=this._orderedGroundPrimitives;this._geometryUpdater._onTerrain?t.remove(this._primitive):e.removeAndDestroy(this._primitive),e.removeAndDestroy(this._outlinePrimitive),ue(this)};var ai=Q0;var y1e={NONE:0,GEODESIC:1,RHUMB:2},Kt=Object.freeze(y1e);var Nee=P.EPSILON10;function A1e(e,t,n,i){if(!u(e))return;n=y(n,!1);let r=u(i),o=e.length;if(o<2)return e;let s,a=e[0],c,l,f=0,d=-1;for(s=1;s<o;++s)c=e[s],t(a,c,Nee)?(u(l)||(l=e.slice(0,s),f=s-1,d=0),r&&i.push(s)):(u(l)&&(l.push(c),f=s,r&&(d=i.length)),a=c);return n&&t(e[0],e[o-1],Nee)&&(r&&(u(l)?i.splice(d,0,f):i.push(o-1)),u(l)?l.length-=1:l=e.slice(0,-1)),u(l)?l:e}var Er=A1e;function x1e(e){let t=e._uSquared,n=e._ellipsoid.maximumRadius,i=e._ellipsoid.minimumRadius,r=(n-i)/n,o=Math.cos(e._startHeading),s=Math.sin(e._startHeading),a=(1-r)*Math.tan(e._start.latitude),c=1/Math.sqrt(1+a*a),l=c*a,f=Math.atan2(a,o),d=c*s,p=d*d,g=1-p,m=Math.sqrt(g),A=t/4,x=A*A,C=x*A,T=x*x,E=1+A-3*x/4+5*C/4-175*T/64,S=1-A+15*x/8-35*C/8,v=1-3*A+35*x/4,D=1-5*A,M=E*f-S*Math.sin(2*f)*A/2-v*Math.sin(4*f)*x/16-D*Math.sin(6*f)*C/48-Math.sin(8*f)*5*T/512,O=e._constants;O.a=n,O.b=i,O.f=r,O.cosineHeading=o,O.sineHeading=s,O.tanU=a,O.cosineU=c,O.sineU=l,O.sigma=f,O.sineAlpha=d,O.sineSquaredAlpha=p,O.cosineSquaredAlpha=g,O.cosineAlpha=m,O.u2Over4=A,O.u4Over16=x,O.u6Over64=C,O.u8Over256=T,O.a0=E,O.a1=S,O.a2=v,O.a3=D,O.distanceRatio=M}function C1e(e,t){return e*t*(4+e*(4-3*t))/16}function Fee(e,t,n,i,r,o,s){let a=C1e(e,n);return(1-a)*e*t*(i+a*r*(s+a*o*(2*s*s-1)))}function T1e(e,t,n,i,r,o,s){let a=(t-n)/t,c=o-i,l=Math.atan((1-a)*Math.tan(r)),f=Math.atan((1-a)*Math.tan(s)),d=Math.cos(l),p=Math.sin(l),g=Math.cos(f),m=Math.sin(f),A=d*g,x=d*m,C=p*m,T=p*g,E=c,S=P.TWO_PI,v=Math.cos(E),D=Math.sin(E),M,O,B,L,_;do{v=Math.cos(E),D=Math.sin(E);let U=x-T*v;B=Math.sqrt(g*g*D*D+U*U),O=C+A*v,M=Math.atan2(B,O);let Y;B===0?(Y=0,L=1):(Y=A*D/B,L=1-Y*Y),S=E,_=O-2*C/L,isFinite(_)||(_=0),E=c+Fee(a,Y,L,M,B,O,_)}while(Math.abs(E-S)>P.EPSILON12);let b=L*(t*t-n*n)/(n*n),w=1+b*(4096+b*(b*(320-175*b)-768))/16384,I=b*(256+b*(b*(74-47*b)-128))/1024,R=_*_,F=I*B*(_+I*(O*(2*R-1)-I*_*(4*B*B-3)*(4*R-3)/6)/4),k=n*w*(M-F),V=Math.atan2(g*D,x-T*v),G=Math.atan2(d*D,x*v-T);e._distance=k,e._startHeading=V,e._endHeading=G,e._uSquared=b}var E1e=new h,Z8=new h;function Uee(e,t,n,i){let r=h.normalize(i.cartographicToCartesian(t,Z8),E1e),o=h.normalize(i.cartographicToCartesian(n,Z8),Z8);T1e(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude),e._start=me.clone(t,e._start),e._end=me.clone(n,e._end),e._start.height=0,e._end.height=0,x1e(e)}function rP(e,t,n){let i=y(n,re.WGS84);this._ellipsoid=i,this._start=new me,this._end=new me,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,u(e)&&u(t)&&Uee(this,e,t,i)}Object.defineProperties(rP.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}});rP.prototype.setEndPoints=function(e,t){Uee(this,e,t,this._ellipsoid)};rP.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)};rP.prototype.interpolateUsingSurfaceDistance=function(e,t){let n=this._constants,i=n.distanceRatio+e/n.b,r=Math.cos(2*i),o=Math.cos(4*i),s=Math.cos(6*i),a=Math.sin(2*i),c=Math.sin(4*i),l=Math.sin(6*i),f=Math.sin(8*i),d=i*i,p=i*d,g=n.u8Over256,m=n.u2Over4,A=n.u6Over64,x=n.u4Over16,C=2*p*g*r/3+i*(1-m+7*x/4-15*A/4+579*g/64-(x-15*A/4+187*g/16)*r-(5*A/4-115*g/16)*o-29*g*s/16)+(m/2-x+71*A/32-85*g/16)*a+(5*x/16-5*A/4+383*g/96)*c-d*((A-11*g/2)*a+5*g*c/2)+(29*A/96-29*g/16)*l+539*g*f/1536,T=Math.asin(Math.sin(C)*n.cosineAlpha),E=Math.atan(n.a/n.b*Math.tan(T));C=C-n.sigma;let S=Math.cos(2*n.sigma+C),v=Math.sin(C),D=Math.cos(C),M=n.cosineU*D,O=n.sineU*v,L=Math.atan2(v*n.sineHeading,M-O*n.cosineHeading)-Fee(n.f,n.sineAlpha,n.cosineSquaredAlpha,C,v,D,S);return u(t)?(t.longitude=this._start.longitude+L,t.latitude=E,t.height=0,t):new me(this._start.longitude+L,E,0)};var tf=rP;function $8(e,t,n){if(e===0)return t*n;let i=e*e,r=i*i,o=r*i,s=o*i,a=s*i,c=a*i,l=n,f=Math.sin(2*l),d=Math.sin(4*l),p=Math.sin(6*l),g=Math.sin(8*l),m=Math.sin(10*l),A=Math.sin(12*l);return t*((1-i/4-3*r/64-5*o/256-175*s/16384-441*a/65536-4851*c/1048576)*l-(3*i/8+3*r/32+45*o/1024+105*s/4096+2205*a/131072+6237*c/524288)*f+(15*r/256+45*o/1024+525*s/16384+1575*a/65536+155925*c/8388608)*d-(35*o/3072+175*s/12288+3675*a/262144+13475*c/1048576)*p+(315*s/131072+2205*a/524288+43659*c/8388608)*g-(693*a/1310720+6237*c/5242880)*m+1001*c/8388608*A)}function b1e(e,t,n){let i=e/n;if(t===0)return i;let r=i*i,o=r*i,s=o*i,a=t,c=a*a,l=c*c,f=l*c,d=f*c,p=d*c,g=p*c,m=Math.sin(2*i),A=Math.cos(2*i),x=Math.sin(4*i),C=Math.cos(4*i),T=Math.sin(6*i),E=Math.cos(6*i),S=Math.sin(8*i),v=Math.cos(8*i),D=Math.sin(10*i),M=Math.cos(10*i),O=Math.sin(12*i);return i+i*c/4+7*i*l/64+15*i*f/256+579*i*d/16384+1515*i*p/65536+16837*i*g/1048576+(3*i*l/16+45*i*f/256-i*(32*r-561)*d/4096-i*(232*r-1677)*p/16384+i*(399985-90560*r+512*s)*g/5242880)*A+(21*i*f/256+483*i*d/4096-i*(224*r-1969)*p/16384-i*(33152*r-112599)*g/1048576)*C+(151*i*d/4096+4681*i*p/65536+1479*i*g/16384-453*o*g/32768)*E+(1097*i*p/65536+42783*i*g/1048576)*v+8011*i*g/1048576*M+(3*c/8+3*l/16+213*f/2048-3*r*f/64+255*d/4096-33*r*d/512+20861*p/524288-33*r*p/512+s*p/1024+28273*g/1048576-471*r*g/8192+9*s*g/4096)*m+(21*l/256+21*f/256+533*d/8192-21*r*d/512+197*p/4096-315*r*p/4096+584039*g/16777216-12517*r*g/131072+7*s*g/2048)*x+(151*f/6144+151*d/4096+5019*p/131072-453*r*p/16384+26965*g/786432-8607*r*g/131072)*T+(1097*d/131072+1097*p/65536+225797*g/10485760-1097*r*g/65536)*S+(8011*p/2621440+8011*g/1048576)*D+293393*g/251658240*O}function bT(e,t){if(e===0)return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)));let n=e*Math.sin(t);return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function S1e(e,t,n,i,r){let o=bT(e._ellipticity,n),s=bT(e._ellipticity,r);return Math.atan2(P.negativePiToPi(i-t),s-o)}function v1e(e,t,n,i,r,o,s){let a=e._heading,c=o-i,l=0;if(P.equalsEpsilon(Math.abs(a),P.PI_OVER_TWO,P.EPSILON8))if(t===n)l=t*Math.cos(r)*P.negativePiToPi(c);else{let f=Math.sin(r);l=t*Math.cos(r)*P.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*f*f)}else{let f=$8(e._ellipticity,t,r);l=($8(e._ellipticity,t,s)-f)/Math.cos(a)}return Math.abs(l)}var w1e=new h,Q8=new h;function Vee(e,t,n,i){let r=h.normalize(i.cartographicToCartesian(t,Q8),w1e),o=h.normalize(i.cartographicToCartesian(n,Q8),Q8),s=i.maximumRadius,a=i.minimumRadius,c=s*s,l=a*a;e._ellipticitySquared=(c-l)/c,e._ellipticity=Math.sqrt(e._ellipticitySquared),e._start=me.clone(t,e._start),e._start.height=0,e._end=me.clone(n,e._end),e._end.height=0,e._heading=S1e(e,t.longitude,t.latitude,n.longitude,n.latitude),e._distance=v1e(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude)}function kee(e,t,n,i,r,o){if(n===0)return me.clone(e,o);let s=r*r,a,c,l;if(Math.abs(P.PI_OVER_TWO-Math.abs(t))>P.EPSILON8){let f=$8(r,i,e.latitude),d=n*Math.cos(t),p=f+d;c=b1e(p,r,i);let g=bT(r,e.latitude),m=bT(r,c);l=Math.tan(t)*(m-g),a=P.negativePiToPi(e.longitude+l)}else{c=e.latitude;let f;if(r===0)f=i*Math.cos(e.latitude);else{let d=Math.sin(e.latitude);f=i*Math.cos(e.latitude)/Math.sqrt(1-s*d*d)}l=n/f,t>0?a=P.negativePiToPi(e.longitude+l):a=P.negativePiToPi(e.longitude-l)}return u(o)?(o.longitude=a,o.latitude=c,o.height=0,o):new me(a,c,0)}function fp(e,t,n){let i=y(n,re.WGS84);this._ellipsoid=i,this._start=new me,this._end=new me,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,u(e)&&u(t)&&Vee(this,e,t,i)}Object.defineProperties(fp.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}});fp.fromStartHeadingDistance=function(e,t,n,i,r){let o=y(i,re.WGS84),s=o.maximumRadius,a=o.minimumRadius,c=s*s,l=a*a,f=Math.sqrt((c-l)/c);t=P.negativePiToPi(t);let d=kee(e,t,n,o.maximumRadius,f);return!u(r)||u(i)&&!i.equals(r.ellipsoid)?new fp(e,d,o):(r.setEndPoints(e,d),r)};fp.prototype.setEndPoints=function(e,t){Vee(this,e,t,this._ellipsoid)};fp.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)};fp.prototype.interpolateUsingSurfaceDistance=function(e,t){return kee(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)};fp.prototype.findIntersectionWithLongitude=function(e,t){let n=this._ellipticity,i=this._heading,r=Math.abs(i),o=this._start;if(e=P.negativePiToPi(e),P.equalsEpsilon(Math.abs(e),Math.PI,P.EPSILON14)&&(e=P.sign(o.longitude)*Math.PI),u(t)||(t=new me),Math.abs(P.PI_OVER_TWO-r)<=P.EPSILON8)return t.longitude=e,t.latitude=o.latitude,t.height=0,t;if(P.equalsEpsilon(Math.abs(P.PI_OVER_TWO-r),P.PI_OVER_TWO,P.EPSILON8))return P.equalsEpsilon(e,o.longitude,P.EPSILON12)?void 0:(t.longitude=e,t.latitude=P.PI_OVER_TWO*P.sign(P.PI_OVER_TWO-i),t.height=0,t);let s=o.latitude,a=n*Math.sin(s),c=Math.tan(.5*(P.PI_OVER_TWO+s))*Math.exp((e-o.longitude)/Math.tan(i)),l=(1+a)/(1-a),f=o.latitude,d;do{d=f;let p=n*Math.sin(d),g=(1+p)/(1-p);f=2*Math.atan(c*Math.pow(g/l,n/2))-P.PI_OVER_TWO}while(!P.equalsEpsilon(f,d,P.EPSILON12));return t.longitude=e,t.latitude=f,t.height=0,t};fp.prototype.findIntersectionWithLatitude=function(e,t){let n=this._ellipticity,i=this._heading,r=this._start;if(P.equalsEpsilon(Math.abs(i),P.PI_OVER_TWO,P.EPSILON8))return;let o=bT(n,r.latitude),s=bT(n,e),a=Math.tan(i)*(s-o),c=P.negativePiToPi(r.longitude+a);return u(t)?(t.longitude=c,t.latitude=e,t.height=0,t):new me(c,e,0)};var ga=fp;var a5=[Ii,Oi],D1e=a5.length,ste=Math.cos(P.toRadians(30)),zee=Math.cos(P.toRadians(150)),ate=0,cte=1e3;function pg(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions;this.width=y(e.width,1),this._positions=t,this.granularity=y(e.granularity,9999),this.loop=y(e.loop,!1),this.arcType=y(e.arcType,Kt.GEODESIC),this._ellipsoid=re.WGS84,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(pg.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+re.packedLength+1+1}}});pg.setProjectionAndEllipsoid=function(e,t){let n=0;for(let i=0;i<D1e;i++)if(t instanceof a5[i]){n=i;break}e._projectionIndex=n,e._ellipsoid=t.ellipsoid};var I1e=new h,Hee=new h,Gee=new h;function s5(e,t,n,i,r){let o=Oc(i,e,0,I1e),s=Oc(i,e,n,Hee),a=Oc(i,t,0,Gee),c=dp(s,o,Hee),l=dp(a,o,Gee);return h.cross(l,c,r),h.normalize(r,r)}var P1e=new me,O1e=new h,M1e=new h,R1e=new h;function e5(e,t,n,i,r,o,s,a,c,l,f){if(r===0)return;let d;o===Kt.GEODESIC?d=new tf(e,t,s):o===Kt.RHUMB&&(d=new ga(e,t,s));let p=d.surfaceDistance;if(p<r)return;let g=s5(e,t,i,s,R1e),m=Math.ceil(p/r),A=p/m,x=A,C=m-1,T=a.length;for(let E=0;E<C;E++){let S=d.interpolateUsingSurfaceDistance(x,P1e),v=Oc(s,S,n,O1e),D=Oc(s,S,i,M1e);h.pack(g,a,T),h.pack(v,c,T),h.pack(D,l,T),f.push(S.latitude),f.push(S.longitude),T+=3,x+=A}}var t5=new me;function Oc(e,t,n,i){return me.clone(t,t5),t5.height=n,me.toCartesian(t5,e,i)}pg.pack=function(e,t,n){let i=y(n,0),r=e._positions,o=r.length;t[i++]=o;for(let s=0;s<o;++s){let a=r[s];h.pack(a,t,i),i+=3}return t[i++]=e.granularity,t[i++]=e.loop?1:0,t[i++]=e.arcType,re.pack(e._ellipsoid,t,i),i+=re.packedLength,t[i++]=e._projectionIndex,t[i++]=e._scene3DOnly?1:0,t};pg.unpack=function(e,t,n){let i=y(t,0),r=e[i++],o=new Array(r);for(let p=0;p<r;p++)o[p]=h.unpack(e,i),i+=3;let s=e[i++],a=e[i++]===1,c=e[i++],l=re.unpack(e,i);i+=re.packedLength;let f=e[i++],d=e[i++]===1;return u(n)||(n=new pg({positions:o})),n._positions=o,n.granularity=s,n.loop=a,n.arcType=c,n._ellipsoid=l,n._projectionIndex=f,n._scene3DOnly=d,n};function dp(e,t,n){return h.subtract(e,t,n),h.normalize(n,n),n}function Wee(e,t,n,i){return i=dp(e,t,i),i=h.cross(i,n,i),i=h.normalize(i,i),i=h.cross(n,i,i),i}var B1e=new h,L1e=new h,N1e=new h,lte=new h,F1e=0,U1e=-1;function n5(e,t,n,i,r){let o=dp(n,t,lte),s=Wee(e,t,o,B1e),a=Wee(i,t,o,L1e);if(P.equalsEpsilon(h.dot(s,a),U1e,P.EPSILON5))return r=h.cross(o,s,r),r=h.normalize(r,r),r;r=h.add(a,s,r),r=h.normalize(r,r);let c=h.cross(o,r,N1e);return h.dot(a,c)<F1e&&(r=h.negate(r,r)),r}var gU=cn.fromPointNormal(h.ZERO,h.UNIT_Y),V1e=new h,k1e=new h,z1e=new h,H1e=new h,G1e=new h,mU=new h,pU=new me,jee=new me,qee=new me;pg.createGeometry=function(e){let t=!e._scene3DOnly,n=e.loop,i=e._ellipsoid,r=e.granularity,o=e.arcType,s=new a5[e._projectionIndex](i),a=ate,c=cte,l,f,d=e._positions,p=d.length;p===2&&(n=!1);let g,m,A,x,C=new ga(void 0,void 0,i),T,E,S,v=[d[0]];for(f=0;f<p-1;f++)g=d[f],m=d[f+1],T=Ji.lineSegmentPlane(g,m,gU,mU),u(T)&&!h.equalsEpsilon(T,g,P.EPSILON7)&&!h.equalsEpsilon(T,m,P.EPSILON7)&&(e.arcType===Kt.GEODESIC?v.push(h.clone(T)):e.arcType===Kt.RHUMB&&(S=i.cartesianToCartographic(T,pU).longitude,A=i.cartesianToCartographic(g,pU),x=i.cartesianToCartographic(m,jee),C.setEndPoints(A,x),E=C.findIntersectionWithLongitude(S,qee),T=i.cartographicToCartesian(E,mU),u(T)&&!h.equalsEpsilon(T,g,P.EPSILON7)&&!h.equalsEpsilon(T,m,P.EPSILON7)&&v.push(h.clone(T)))),v.push(m);n&&(g=d[p-1],m=d[0],T=Ji.lineSegmentPlane(g,m,gU,mU),u(T)&&!h.equalsEpsilon(T,g,P.EPSILON7)&&!h.equalsEpsilon(T,m,P.EPSILON7)&&(e.arcType===Kt.GEODESIC?v.push(h.clone(T)):e.arcType===Kt.RHUMB&&(S=i.cartesianToCartographic(T,pU).longitude,A=i.cartesianToCartographic(g,pU),x=i.cartesianToCartographic(m,jee),C.setEndPoints(A,x),E=C.findIntersectionWithLongitude(S,qee),T=i.cartographicToCartesian(E,mU),u(T)&&!h.equalsEpsilon(T,g,P.EPSILON7)&&!h.equalsEpsilon(T,m,P.EPSILON7)&&v.push(h.clone(T)))));let D=v.length,M=new Array(D);for(f=0;f<D;f++){let W=me.fromCartesian(v[f],i);W.height=0,M[f]=W}if(M=Er(M,me.equalsEpsilon),D=M.length,D<2)return;let O=[],B=[],L=[],_=[],b=V1e,w=k1e,I=z1e,R=H1e,F=G1e,k=M[0],V=M[1],G=M[D-1];for(b=Oc(i,G,a,b),R=Oc(i,V,a,R),w=Oc(i,k,a,w),I=Oc(i,k,c,I),n?F=n5(b,w,I,R,F):F=s5(k,V,c,i,F),h.pack(F,B,0),h.pack(w,L,0),h.pack(I,_,0),O.push(k.latitude),O.push(k.longitude),e5(k,V,a,c,r,o,i,B,L,_,O),f=1;f<D-1;++f){b=h.clone(w,b),w=h.clone(R,w);let W=M[f];Oc(i,W,c,I),Oc(i,M[f+1],a,R),n5(b,w,I,R,F),l=B.length,h.pack(F,B,l),h.pack(w,L,l),h.pack(I,_,l),O.push(W.latitude),O.push(W.longitude),e5(M[f],M[f+1],a,c,r,o,i,B,L,_,O)}let U=M[D-1],Y=M[D-2];if(w=Oc(i,U,a,w),I=Oc(i,U,c,I),n){let W=M[0];b=Oc(i,Y,a,b),R=Oc(i,W,a,R),F=n5(b,w,I,R,F)}else F=s5(Y,U,c,i,F);if(l=B.length,h.pack(F,B,l),h.pack(w,L,l),h.pack(I,_,l),O.push(U.latitude),O.push(U.longitude),n){for(e5(U,k,a,c,r,o,i,B,L,_,O),l=B.length,f=0;f<3;++f)B[l+f]=B[f],L[l+f]=L[f],_[l+f]=_[f];O.push(k.latitude),O.push(k.longitude)}return pOe(n,s,L,_,B,O,t)};var W1e=new h,j1e=new Q,q1e=new Le;function Yee(e,t,n,i){let r=dp(n,t,W1e),o=h.dot(r,e);if(o>ste||o<zee){let s=dp(i,n,lte),a=o<zee?P.PI_OVER_TWO:-P.PI_OVER_TWO,c=Le.fromAxisAngle(s,a,q1e),l=Q.fromQuaternion(c,j1e);return Q.multiplyByVector(l,e,e),!0}return!1}var Xee=new me,Y1e=new h,Kee=new h;function oP(e,t,n,i,r){let o=me.toCartesian(t,e._ellipsoid,Y1e),s=h.add(o,n,Kee),a=!1,c=e._ellipsoid,l=c.cartesianToCartographic(s,Xee);Math.abs(t.longitude-l.longitude)>P.PI_OVER_TWO&&(a=!0,s=h.subtract(o,n,Kee),l=c.cartesianToCartographic(s,Xee)),l.height=0;let f=e.project(l,r);return r=h.subtract(f,i,r),r.z=0,r=h.normalize(r,r),a&&h.negate(r,r),r}var X1e=new h,Jee=new h;function Zee(e,t,n,i,r,o){let s=h.subtract(t,e,X1e);h.normalize(s,s);let a=n-ate,c=h.multiplyByScalar(s,a,Jee);h.add(e,c,r);let l=i-cte;c=h.multiplyByScalar(s,l,Jee),h.add(t,c,o)}var K1e=new h;function _U(e,t){let n=cn.getPointDistance(gU,e),i=cn.getPointDistance(gU,t),r=K1e;P.equalsEpsilon(n,0,P.EPSILON2)?(r=dp(t,e,r),h.multiplyByScalar(r,P.EPSILON2,r),h.add(e,r,e)):P.equalsEpsilon(i,0,P.EPSILON2)&&(r=dp(e,t,r),h.multiplyByScalar(r,P.EPSILON2,r),h.add(t,r,t))}function J1e(e,t){let n=Math.abs(e.longitude),i=Math.abs(t.longitude);if(P.equalsEpsilon(n,P.PI,P.EPSILON11)){let r=P.sign(t.longitude);return e.longitude=r*(n-P.EPSILON11),1}else if(P.equalsEpsilon(i,P.PI,P.EPSILON11)){let r=P.sign(e.longitude);return t.longitude=r*(i-P.EPSILON11),2}return 0}var ute=new me,fte=new me,Qee=new h,i5=new h,$ee=new h,ete=new h,Z1e=new h,tte=new h,Q1e=[ute,fte],$1e=new le,eOe=new h,tOe=new h,nOe=new h,iOe=new h,rOe=new h,oOe=new h,r5=new h,o5=new h,sOe=new h,aOe=new h,cOe=new h,nte=new h,lOe=new h,uOe=new h,fOe=new jn,dOe=new jn,ite=new h,hOe=new h,rte=new h,mOe=[new ae,new ae],dte=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],ote=dte.length;function pOe(e,t,n,i,r,o,s){let a,c,l=t._ellipsoid,f=n.length/3-1,d=f*8,p=d*4,g=f*36,m=d>65535?new Uint32Array(g):new Uint16Array(g),A=new Float64Array(d*3),x=new Float32Array(p),C=new Float32Array(p),T=new Float32Array(p),E=new Float32Array(p),S=new Float32Array(p),v,D,M,O;s&&(v=new Float32Array(p),D=new Float32Array(p),M=new Float32Array(p),O=new Float32Array(d*2));let B=o.length/2,L=0,_=ute;_.height=0;let b=fte;b.height=0;let w=Qee,I=i5;if(s)for(c=0,a=1;a<B;a++)_.latitude=o[c],_.longitude=o[c+1],b.latitude=o[c+2],b.longitude=o[c+3],w=t.project(_,w),I=t.project(b,I),L+=h.distance(w,I),c+=2;let R=i.length/3;I=h.unpack(i,0,I);let F=0;for(c=3,a=1;a<R;a++)w=h.clone(I,w),I=h.unpack(i,c,I),F+=h.distance(w,I),c+=3;let k;c=3;let V=0,G=0,U=0,Y=0,W=!1,Z=h.unpack(n,0,ete),j=h.unpack(i,0,i5),K=h.unpack(r,0,tte);if(e){let Ie=h.unpack(n,n.length-6,$ee);Yee(K,Ie,Z,j)&&(K=h.negate(K,K))}let J=0,_e=0,xe=0;for(a=0;a<f;a++){let Ie=h.clone(Z,$ee),Ne=h.clone(j,Qee),qe=h.clone(K,Z1e);W&&(qe=h.negate(qe,qe)),Z=h.unpack(n,c,ete),j=h.unpack(i,c,i5),K=h.unpack(r,c,tte),W=Yee(K,Ie,Z,j),_.latitude=o[V],_.longitude=o[V+1],b.latitude=o[V+2],b.longitude=o[V+3];let pt,Gt,fn,ft;if(s){let Di=J1e(_,b);pt=t.project(_,rOe),Gt=t.project(b,oOe);let zo=dp(Gt,pt,ite);zo.y=Math.abs(zo.y),fn=r5,ft=o5,Di===0||h.dot(zo,h.UNIT_Y)>ste?(fn=oP(t,_,qe,pt,r5),ft=oP(t,b,K,Gt,o5)):Di===1?(ft=oP(t,b,K,Gt,o5),fn.x=0,fn.y=P.sign(_.longitude-Math.abs(b.longitude)),fn.z=0):(fn=oP(t,_,qe,pt,r5),ft.x=0,ft.y=P.sign(_.longitude-b.longitude),ft.z=0)}let pn=h.distance(Ne,j),Bn=jn.fromCartesian(Ie,fOe),Vt=h.subtract(Z,Ie,sOe),Qe=h.normalize(Vt,nte),pe=h.subtract(Ne,Ie,aOe);pe=h.normalize(pe,pe);let Ee=h.cross(Qe,pe,nte);Ee=h.normalize(Ee,Ee);let Ge=h.cross(pe,qe,lOe);Ge=h.normalize(Ge,Ge);let xi=h.subtract(j,Z,cOe);xi=h.normalize(xi,xi);let Ci=h.cross(K,xi,uOe);Ci=h.normalize(Ci,Ci);let Ir=pn/F,Wr=J/F,Co=0,Vo,Cs,Re,it=0,Je=0;if(s){Co=h.distance(pt,Gt),Vo=jn.fromCartesian(pt,dOe),Cs=h.subtract(Gt,pt,ite),Re=h.normalize(Cs,hOe);let Di=Re.x;Re.x=Re.y,Re.y=-Di,it=Co/L,Je=_e/L}for(k=0;k<8;k++){let Di=Y+k*4,zo=G+k*2,Hn=Di+3,In=k<4?1:-1,Gn=k===2||k===3||k===6||k===7?1:-1;h.pack(Bn.high,x,Di),x[Hn]=Vt.x,h.pack(Bn.low,C,Di),C[Hn]=Vt.y,h.pack(Ge,T,Di),T[Hn]=Vt.z,h.pack(Ci,E,Di),E[Hn]=Ir*In,h.pack(Ee,S,Di);let $n=Wr*Gn;$n===0&&Gn<0&&($n=9),S[Hn]=$n,s&&(v[Di]=Vo.high.x,v[Di+1]=Vo.high.y,v[Di+2]=Vo.low.x,v[Di+3]=Vo.low.y,M[Di]=-fn.y,M[Di+1]=fn.x,M[Di+2]=ft.y,M[Di+3]=-ft.x,D[Di]=Cs.x,D[Di+1]=Cs.y,D[Di+2]=Re.x,D[Di+3]=Re.y,O[zo]=it*In,$n=Je*Gn,$n===0&&Gn<0&&($n=9),O[zo+1]=$n)}let Ze=nOe,ot=iOe,Nt=eOe,Tn=tOe,ar=le.fromCartographicArray(Q1e,$1e),Cr=si.getMinimumMaximumHeights(ar,l),Ts=Cr.minimumTerrainHeight,Jo=Cr.maximumTerrainHeight;xe+=Ts,xe+=Jo,Zee(Ie,Ne,Ts,Jo,Ze,Nt),Zee(Z,j,Ts,Jo,ot,Tn);let uo=h.multiplyByScalar(Ee,P.EPSILON5,rte);h.add(Ze,uo,Ze),h.add(ot,uo,ot),h.add(Nt,uo,Nt),h.add(Tn,uo,Tn),_U(Ze,ot),_U(Nt,Tn),h.pack(Ze,A,U),h.pack(ot,A,U+3),h.pack(Tn,A,U+6),h.pack(Nt,A,U+9),uo=h.multiplyByScalar(Ee,-2*P.EPSILON5,rte),h.add(Ze,uo,Ze),h.add(ot,uo,ot),h.add(Nt,uo,Nt),h.add(Tn,uo,Tn),_U(Ze,ot),_U(Nt,Tn),h.pack(Ze,A,U+12),h.pack(ot,A,U+15),h.pack(Tn,A,U+18),h.pack(Nt,A,U+21),V+=2,c+=3,G+=16,U+=24,Y+=32,J+=pn,_e+=Co}c=0;let oe=0;for(a=0;a<f;a++){for(k=0;k<ote;k++)m[c+k]=dte[k]+oe;oe+=8,c+=ote}let Ae=mOe;ae.fromVertices(n,h.ZERO,3,Ae[0]),ae.fromVertices(i,h.ZERO,3,Ae[1]);let he=ae.fromBoundingSpheres(Ae);he.radius+=xe/(f*2);let Se={position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,normalize:!1,values:A}),startHiAndForwardOffsetX:mg(x),startLoAndForwardOffsetY:mg(C),startNormalAndForwardOffsetZ:mg(T),endNormalAndTextureCoordinateNormalizationX:mg(E),rightNormalAndTextureCoordinateNormalizationY:mg(S)};return s&&(Se.startHiLo2D=mg(v),Se.offsetAndRight2D=mg(D),Se.startEndNormals2D=mg(M),Se.texcoordNormalization2D=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,normalize:!1,values:O})),new ut({attributes:Se,indices:m,boundingSphere:he})}function mg(e){return new De({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}pg._projectNormal=oP;var $0=pg;var sP=`in vec4 v_startPlaneNormalEcAndHalfWidth; +in vec4 v_endPlaneNormalEcAndBatchId; +in vec4 v_rightPlaneEC; // Technically can compute distance for this here +in vec4 v_endEcAndStartEcX; +in vec4 v_texcoordNormalizationAndStartEcYZ; + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#endif + +void main(void) +{ + float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); + vec3 ecStart = vec3(v_endEcAndStartEcX.w, v_texcoordNormalizationAndStartEcYZ.zw); + + // Discard for sky + if (logDepthOrDepth == 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + eyeCoordinate /= eyeCoordinate.w; + + float halfMaxWidth = v_startPlaneNormalEcAndHalfWidth.w * czm_metersPerPixel(eyeCoordinate); + // Check distance of the eye coordinate against the right-facing plane + float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); + + // Check eye coordinate against the mitering planes + float distanceFromStart = czm_planeDistance(v_startPlaneNormalEcAndHalfWidth.xyz, -dot(ecStart, v_startPlaneNormalEcAndHalfWidth.xyz), eyeCoordinate.xyz); + float distanceFromEnd = czm_planeDistance(v_endPlaneNormalEcAndBatchId.xyz, -dot(v_endEcAndStartEcX.xyz, v_endPlaneNormalEcAndBatchId.xyz), eyeCoordinate.xyz); + + if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + // Check distance of the eye coordinate against start and end planes with normals in the right plane. + // For computing unskewed lengthwise texture coordinate. + // Can also be used for clipping extremely pointy miters, but in practice unnecessary because of miter breaking. + + // aligned plane: cross the right plane normal with miter plane normal, then cross the result with right again to point it more "forward" + vec3 alignedPlaneNormal; + + // start aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz); + + // end aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_endPlaneNormalEcAndBatchId.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromEnd = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, v_endEcAndStartEcX.xyz), eyeCoordinate.xyz); + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Clamp - distance to aligned planes may be negative due to mitering, + // so fragment texture coordinate might be out-of-bounds. + float s = clamp(distanceFromStart / (distanceFromStart + distanceFromEnd), 0.0, 1.0); + s = (s * v_texcoordNormalizationAndStartEcYZ.x) + v_texcoordNormalizationAndStartEcYZ.y; + float t = (widthwiseDistance + halfMaxWidth) / (2.0 * halfMaxWidth); + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, t); + materialInput.str = vec3(s, t, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + + czm_writeDepthClamp(); +} +`;var aP=`in vec3 v_forwardDirectionEC; +in vec3 v_texcoordNormalizationAndHalfWidth; +in float v_batchId; + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#else +in vec2 v_alignedPlaneDistances; +in float v_texcoordT; +#endif + +float rayPlaneDistanceUnsafe(vec3 origin, vec3 direction, vec3 planeNormal, float planeDistance) { + // We don't expect the ray to ever be parallel to the plane + return (-planeDistance - dot(planeNormal, origin)) / dot(planeNormal, direction); +} + +void main(void) +{ + vec4 eyeCoordinate = gl_FragCoord; + eyeCoordinate /= eyeCoordinate.w; + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Use distances for planes aligned with segment to prevent skew in dashing + float distanceFromStart = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, -v_forwardDirectionEC, v_forwardDirectionEC.xyz, v_alignedPlaneDistances.x); + float distanceFromEnd = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, v_forwardDirectionEC, -v_forwardDirectionEC.xyz, v_alignedPlaneDistances.y); + + // Clamp - distance to aligned planes may be negative due to mitering + distanceFromStart = max(0.0, distanceFromStart); + distanceFromEnd = max(0.0, distanceFromEnd); + + float s = distanceFromStart / (distanceFromStart + distanceFromEnd); + s = (s * v_texcoordNormalizationAndHalfWidth.x) + v_texcoordNormalizationAndHalfWidth.y; + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, v_texcoordT); + materialInput.str = vec3(s, v_texcoordT, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR +} +`;var cP=`in vec3 position3DHigh; +in vec3 position3DLow; + +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; + +in float batchId; + +out vec3 v_forwardDirectionEC; +out vec3 v_texcoordNormalizationAndHalfWidth; +out float v_batchId; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#else +out vec2 v_alignedPlaneDistances; +out float v_texcoordT; +#endif + +// Morphing planes using SLERP or NLERP doesn't seem to work, so instead draw the material directly on the shadow volume. +// Morph views are from very far away and aren't meant to be used precisely, so this should be sufficient. +void main() +{ + v_batchId = batchId; + + // Start position + vec4 posRelativeToEye2D = czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw)); + vec4 posRelativeToEye3D = czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz); + vec4 posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + vec3 posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + vec3 posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 startEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + + // Start plane + vec4 startPlane2D; + vec4 startPlane3D; + startPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlane3D.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlane2D.w = -dot(startPlane2D.xyz, posEc2D); + startPlane3D.w = -dot(startPlane3D.xyz, posEc3D); + + // Right plane + vec4 rightPlane2D; + vec4 rightPlane3D; + rightPlane2D.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + rightPlane3D.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + rightPlane2D.w = -dot(rightPlane2D.xyz, posEc2D); + rightPlane3D.w = -dot(rightPlane3D.xyz, posEc3D); + + // End position + posRelativeToEye2D = posRelativeToEye2D + vec4(0.0, offsetAndRight2D.xy, 0.0); + posRelativeToEye3D = posRelativeToEye3D + vec4(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w, 0.0); + posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 endEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + vec3 forwardEc3D = czm_normal * normalize(vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w)); + vec3 forwardEc2D = czm_normal * normalize(vec3(0.0, offsetAndRight2D.xy)); + + // End plane + vec4 endPlane2D; + vec4 endPlane3D; + endPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlane3D.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlane2D.w = -dot(endPlane2D.xyz, posEc2D); + endPlane3D.w = -dot(endPlane3D.xyz, posEc3D); + + // Forward direction + v_forwardDirectionEC = normalize(endEC - startEC); + + vec2 cleanTexcoordNormalization2D; + cleanTexcoordNormalization2D.x = abs(texcoordNormalization2D.x); + cleanTexcoordNormalization2D.y = czm_branchFreeTernary(texcoordNormalization2D.y > 1.0, 0.0, abs(texcoordNormalization2D.y)); + vec2 cleanTexcoordNormalization3D; + cleanTexcoordNormalization3D.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + cleanTexcoordNormalization3D.y = rightNormalAndTextureCoordinateNormalizationY.w; + cleanTexcoordNormalization3D.y = czm_branchFreeTernary(cleanTexcoordNormalization3D.y > 1.0, 0.0, abs(cleanTexcoordNormalization3D.y)); + + v_texcoordNormalizationAndHalfWidth.xy = mix(cleanTexcoordNormalization2D, cleanTexcoordNormalization3D, czm_morphTime); + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#else // PER_INSTANCE_COLOR + // For computing texture coordinates + + v_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC); + v_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC); +#endif // PER_INSTANCE_COLOR + +#ifdef WIDTH_VARYING + float width = czm_batchTable_width(batchId); + float halfWidth = width * 0.5; + v_width = width; + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#else + float halfWidth = 0.5 * czm_batchTable_width(batchId); + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#endif + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + // Since this is morphing, compute both 3D and 2D positions and then blend. + + // ****** 3D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow); // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlane3D, positionEc3D.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlane3D, positionEc3D.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane3D.xyz, endPlane3D.xyz); + vec3 upOrDown = normalize(cross(rightPlane3D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + vec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D)); + geodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc3D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // ****** 2D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); // w = 1.0, see czm_computePosition + absStartPlaneDistance = abs(czm_planeDistance(startPlane2D, positionEc2D.xyz)); + absEndPlaneDistance = abs(czm_planeDistance(endPlane2D, positionEc2D.xyz)); + planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane2D.xyz, endPlane2D.xyz); + upOrDown = normalize(cross(rightPlane2D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D)); + geodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc2D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(texcoordNormalization2D.x); +#ifndef PER_INSTANCE_COLOR + // Use vertex's sidedness to compute its texture coordinate. + v_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0); +#endif + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // Blend for actual position + gl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(v_forwardDirectionEC.x, -v_forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var lP=`in vec3 position3DHigh; +in vec3 position3DLow; + +// In 2D and in 3D, texture coordinate normalization component signs encodes: +// * X sign - sidedness relative to right plane +// * Y sign - is negative OR magnitude is greater than 1.0 if vertex is on bottom of volume +#ifndef COLUMBUS_VIEW_2D +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +#else +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; +#endif + +in float batchId; + +out vec4 v_startPlaneNormalEcAndHalfWidth; +out vec4 v_endPlaneNormalEcAndBatchId; +out vec4 v_rightPlaneEC; +out vec4 v_endEcAndStartEcX; +out vec4 v_texcoordNormalizationAndStartEcYZ; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif + +void main() +{ +#ifdef COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw))).xyz; + + vec3 forwardDirectionEC = czm_normal * vec3(0.0, offsetAndRight2D.xy); + vec3 ecEnd = forwardDirectionEC + ecStart; + forwardDirectionEC = normalize(forwardDirectionEC); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + v_texcoordNormalizationAndStartEcYZ.x = abs(texcoordNormalization2D.x); + v_texcoordNormalizationAndStartEcYZ.y = texcoordNormalization2D.y; + +#else // COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz)).xyz; + vec3 offset = czm_normal * vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w); + vec3 ecEnd = ecStart + offset; + + vec3 forwardDirectionEC = normalize(offset); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + v_texcoordNormalizationAndStartEcYZ.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + v_texcoordNormalizationAndStartEcYZ.y = rightNormalAndTextureCoordinateNormalizationY.w; + +#endif // COLUMBUS_VIEW_2D + + v_endEcAndStartEcX.xyz = ecEnd; + v_endEcAndStartEcX.w = ecStart.x; + v_texcoordNormalizationAndStartEcYZ.zw = ecStart.yz; + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif // PER_INSTANCE_COLOR + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + vec4 positionRelativeToEye = czm_computePosition(); + + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye; // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlaneEC, positionEC.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlaneEC, positionEC.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlaneEC.xyz, endPlaneEC.xyz); + vec3 upOrDown = normalize(cross(v_rightPlaneEC.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Extrude bottom vertices downward for far view distances, like for GroundPrimitives + upOrDown = cross(forwardDirectionEC, normalEC); + upOrDown = float(czm_sceneMode == czm_sceneMode3D) * upOrDown; + upOrDown = float(v_texcoordNormalizationAndStartEcYZ.y > 1.0 || v_texcoordNormalizationAndStartEcYZ.y < 0.0) * upOrDown; + upOrDown = min(GLOBE_MINIMUM_ALTITUDE, czm_geometricToleranceOverMeter * length(positionRelativeToEye.xyz)) * upOrDown; + positionEC.xyz += upOrDown; + + v_texcoordNormalizationAndStartEcYZ.y = czm_branchFreeTernary(v_texcoordNormalizationAndStartEcYZ.y > 1.0, 0.0, abs(v_texcoordNormalizationAndStartEcYZ.y)); + + // Determine distance along normalEC to push for a volume of appropriate width. + // Make volumes about double pixel width for a conservative fit - in practice the + // extra cost here is minimal compared to the loose volume heights. + // + // N = normalEC (guaranteed "right-facing") + // R = rightEC + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + float width = czm_batchTable_width(batchId); +#ifdef WIDTH_VARYING + v_width = width; +#endif + + v_startPlaneNormalEcAndHalfWidth.xyz = startPlaneEC.xyz; + v_startPlaneNormalEcAndHalfWidth.w = width * 0.5; + + v_endPlaneNormalEcAndBatchId.xyz = endPlaneEC.xyz; + v_endPlaneNormalEcAndBatchId.w = batchId; + + width = width * max(0.0, czm_metersPerPixel(positionEC)); // width = distance to push along R + width = width / dot(normalEC, v_rightPlaneEC.xyz); // width = distance to push along N + + // Determine if this vertex is on the "left" or "right" +#ifdef COLUMBUS_VIEW_2D + normalEC *= sign(texcoordNormalization2D.x); +#else + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); +#endif + + positionEC.xyz += width * normalEC; + gl_Position = czm_depthClamp(czm_projection * positionEC); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(forwardDirectionEC.x, -forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var uP=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_color = color; +} +`;var nu=`void clipLineSegmentToNearPlane( + vec3 p0, + vec3 p1, + out vec4 positionWC, + out bool clipped, + out bool culledByNearPlane, + out vec4 clippedPositionEC) +{ + culledByNearPlane = false; + clipped = false; + + vec3 p0ToP1 = p1 - p0; + float magnitude = length(p0ToP1); + vec3 direction = normalize(p0ToP1); + + // Distance that p0 is behind the near plane. Negative means p0 is + // in front of the near plane. + float endPoint0Distance = czm_currentFrustum.x + p0.z; + + // Camera looks down -Z. + // When moving a point along +Z: LESS VISIBLE + // * Points in front of the camera move closer to the camera. + // * Points behind the camrea move farther away from the camera. + // When moving a point along -Z: MORE VISIBLE + // * Points in front of the camera move farther away from the camera. + // * Points behind the camera move closer to the camera. + + // Positive denominator: -Z, becoming more visible + // Negative denominator: +Z, becoming less visible + // Nearly zero: parallel to near plane + float denominator = -direction.z; + + if (endPoint0Distance > 0.0 && abs(denominator) < czm_epsilon7) + { + // p0 is behind the near plane and the line to p1 is nearly parallel to + // the near plane, so cull the segment completely. + culledByNearPlane = true; + } + else if (endPoint0Distance > 0.0) + { + // p0 is behind the near plane, and the line to p1 is moving distinctly + // toward or away from it. + + // t = (-plane distance - dot(plane normal, ray origin)) / dot(plane normal, ray direction) + float t = endPoint0Distance / denominator; + if (t < 0.0 || t > magnitude) + { + // Near plane intersection is not between the two points. + // We already confirmed p0 is behind the naer plane, so now + // we know the entire segment is behind it. + culledByNearPlane = true; + } + else + { + // Segment crosses the near plane, update p0 to lie exactly on it. + p0 = p0 + t * direction; + + // Numerical noise might put us a bit on the wrong side of the near plane. + // Don't let that happen. + p0.z = min(p0.z, -czm_currentFrustum.x); + + clipped = true; + } + } + + clippedPositionEC = vec4(p0, 1.0); + positionWC = czm_eyeToWindowCoordinates(clippedPositionEC); +} + +vec4 getPolylineWindowCoordinatesEC(vec4 positionEC, vec4 prevEC, vec4 nextEC, float expandDirection, float width, bool usePrevious, out float angle) +{ + // expandDirection +1 is to the _left_ when looking from positionEC toward nextEC. + +#ifdef POLYLINE_DASH + // Compute the window coordinates of the points. + vec4 positionWindow = czm_eyeToWindowCoordinates(positionEC); + vec4 previousWindow = czm_eyeToWindowCoordinates(prevEC); + vec4 nextWindow = czm_eyeToWindowCoordinates(nextEC); + + // Determine the relative screen space direction of the line. + vec2 lineDir; + if (usePrevious) { + lineDir = normalize(positionWindow.xy - previousWindow.xy); + } + else { + lineDir = normalize(nextWindow.xy - positionWindow.xy); + } + angle = atan(lineDir.x, lineDir.y) - 1.570796327; // precomputed atan(1,0) + + // Quantize the angle so it doesn't change rapidly between segments. + angle = floor(angle / czm_piOverFour + 0.5) * czm_piOverFour; +#endif + + vec4 clippedPrevWC, clippedPrevEC; + bool prevSegmentClipped, prevSegmentCulled; + clipLineSegmentToNearPlane(prevEC.xyz, positionEC.xyz, clippedPrevWC, prevSegmentClipped, prevSegmentCulled, clippedPrevEC); + + vec4 clippedNextWC, clippedNextEC; + bool nextSegmentClipped, nextSegmentCulled; + clipLineSegmentToNearPlane(nextEC.xyz, positionEC.xyz, clippedNextWC, nextSegmentClipped, nextSegmentCulled, clippedNextEC); + + bool segmentClipped, segmentCulled; + vec4 clippedPositionWC, clippedPositionEC; + clipLineSegmentToNearPlane(positionEC.xyz, usePrevious ? prevEC.xyz : nextEC.xyz, clippedPositionWC, segmentClipped, segmentCulled, clippedPositionEC); + + if (segmentCulled) + { + return vec4(0.0, 0.0, 0.0, 1.0); + } + + vec2 directionToPrevWC = normalize(clippedPrevWC.xy - clippedPositionWC.xy); + vec2 directionToNextWC = normalize(clippedNextWC.xy - clippedPositionWC.xy); + + // If a segment was culled, we can't use the corresponding direction + // computed above. We should never see both of these be true without + // \`segmentCulled\` above also being true. + if (prevSegmentCulled) + { + directionToPrevWC = -directionToNextWC; + } + else if (nextSegmentCulled) + { + directionToNextWC = -directionToPrevWC; + } + + vec2 thisSegmentForwardWC, otherSegmentForwardWC; + if (usePrevious) + { + thisSegmentForwardWC = -directionToPrevWC; + otherSegmentForwardWC = directionToNextWC; + } + else + { + thisSegmentForwardWC = directionToNextWC; + otherSegmentForwardWC = -directionToPrevWC; + } + + vec2 thisSegmentLeftWC = vec2(-thisSegmentForwardWC.y, thisSegmentForwardWC.x); + + vec2 leftWC = thisSegmentLeftWC; + float expandWidth = width * 0.5; + + // When lines are split at the anti-meridian, the position may be at the + // same location as the next or previous position, and we need to handle + // that to avoid producing NaNs. + if (!czm_equalsEpsilon(prevEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1) && !czm_equalsEpsilon(nextEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1)) + { + vec2 otherSegmentLeftWC = vec2(-otherSegmentForwardWC.y, otherSegmentForwardWC.x); + + vec2 leftSumWC = thisSegmentLeftWC + otherSegmentLeftWC; + float leftSumLength = length(leftSumWC); + leftWC = leftSumLength < czm_epsilon6 ? thisSegmentLeftWC : (leftSumWC / leftSumLength); + + // The sine of the angle between the two vectors is given by the formula + // |a x b| = |a||b|sin(theta) + // which is + // float sinAngle = length(cross(vec3(leftWC, 0.0), vec3(-thisSegmentForwardWC, 0.0))); + // Because the z components of both vectors are zero, the x and y coordinate will be zero. + // Therefore, the sine of the angle is just the z component of the cross product. + vec2 u = -thisSegmentForwardWC; + vec2 v = leftWC; + float sinAngle = abs(u.x * v.y - u.y * v.x); + expandWidth = clamp(expandWidth / sinAngle, 0.0, width * 2.0); + } + + vec2 offset = leftWC * expandDirection * expandWidth * czm_pixelRatio; + return vec4(clippedPositionWC.xy + offset, -clippedPositionWC.z, 1.0) * (czm_projection * clippedPositionEC).w; +} + +vec4 getPolylineWindowCoordinates(vec4 position, vec4 previous, vec4 next, float expandDirection, float width, bool usePrevious, out float angle) +{ + vec4 positionEC = czm_modelViewRelativeToEye * position; + vec4 prevEC = czm_modelViewRelativeToEye * previous; + vec4 nextEC = czm_modelViewRelativeToEye * next; + return getPolylineWindowCoordinatesEC(positionEC, prevEC, nextEC, expandDirection, width, usePrevious, angle); +} +`;var c5=`${nu} +${uP}`,_Oe=z0;Ht.isInternetExplorer()||(c5=`#define CLIP_POLYLINE +${c5}`);function eA(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=eA.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,c5),this._fragmentShaderSource=y(e.fragmentShaderSource,_Oe),this._renderState=nr.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(eA.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});eA.VERTEX_FORMAT=Pe.POSITION_ONLY;eA.prototype.getFragmentShaderSource=nr.prototype.getFragmentShaderSource;eA.prototype.isTranslucent=nr.prototype.isTranslucent;eA.prototype.getRenderState=nr.prototype.getRenderState;var Go=eA;var fP=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec2 st; +in float batchId; + +out float v_width; +out vec2 v_st; +out float v_polylineAngle; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_width = width; + v_st.s = st.s; + v_st.t = czm_writeNonPerspective(st.t, gl_Position.w); + v_polylineAngle = angle; +} +`;var tA=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec2 st = v_st; + st.t = czm_readNonPerspective(st.t, gl_FragCoord.w); + + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = vec3(st, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#ifdef VECTOR_TILE + out_FragColor *= u_highlightColor; +#endif + + czm_writeLogDepth(); +} +`;var l5=`${nu} +${fP}`,gOe=tA;Ht.isInternetExplorer()||(l5=`#define CLIP_POLYLINE +${l5}`);function nA(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=nA.VERTEX_FORMAT;this.material=u(e.material)?e.material:Gi.fromType(Gi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,l5),this._fragmentShaderSource=y(e.fragmentShaderSource,gOe),this._renderState=nr.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(nA.prototype,{vertexShaderSource:{get:function(){let e=this._vertexShaderSource;return this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&(e=`#define POLYLINE_DASH +${e}`),e}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});nA.VERTEX_FORMAT=Pe.POSITION_AND_ST;nA.prototype.getFragmentShaderSource=nr.prototype.getFragmentShaderSource;nA.prototype.isTranslucent=nr.prototype.isTranslucent;nA.prototype.getRenderState=nr.prototype.getRenderState;var qs=nA;function hp(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;let t=e.appearance;u(t)||(t=new qs),this.appearance=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,kn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:!1,interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:!1,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0},this._zIndex=void 0,this._ready=!1;let n=this;this._readyPromise=new Promise((i,r)=>{n._completeLoad=()=>{this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0);let o=this._error;u(o)?r(o):i(this)}}),this._primitive=void 0,this._sp=void 0,this._sp2D=void 0,this._spMorph=void 0,this._renderState=hte(!1),this._renderState3DTiles=hte(!0),this._renderStateMorph=Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},depthTest:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1})}Object.defineProperties(hp.prototype,{interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("GroundPolylinePrimitive.readyPromise","GroundPolylinePrimitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for GroundPolylinePrimitive.ready to return true instead."),this._readyPromise}},debugShowShadowVolume:{get:function(){return this._debugShowShadowVolume}}});hp.initializeTerrainHeights=function(){return si.initialize()};function yOe(e,t,n){let i=t.context,r=e._primitive,o=r._attributeLocations,s=r._batchTable.getVertexShaderCallback()(lP);s=bn._appendShowToShader(r,s),s=bn._appendDistanceDisplayConditionToShader(r,s),s=bn._modifyShaderPosition(e,s,t.scene3DOnly);let a=r._batchTable.getVertexShaderCallback()(cP);a=bn._appendShowToShader(r,a),a=bn._appendDistanceDisplayConditionToShader(r,a),a=bn._modifyShaderPosition(e,a,t.scene3DOnly);let c=r._batchTable.getVertexShaderCallback()(sP),l=[`GLOBE_MINIMUM_ALTITUDE ${t.mapProjection.ellipsoid.minimumRadius.toFixed(1)}`],f="",d="";u(n.material)?(d=u(n.material)?n.material.shaderSource:"",d.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&l.push("ANGLE_VARYING"),d.search(/in\s+float\s+v_width;/g)!==-1&&l.push("WIDTH_VARYING")):f="PER_INSTANCE_COLOR",l.push(f);let p=e.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",f]:[f],g=new ke({defines:l,sources:[s]}),m=new ke({defines:p,sources:[d,c]});e._sp=Xt.replaceCache({context:i,shaderProgram:r._sp,vertexShaderSource:g,fragmentShaderSource:m,attributeLocations:o});let A=i.shaderCache.getDerivedShaderProgram(e._sp,"2dColor");if(!u(A)){let C=new ke({defines:l.concat(["COLUMBUS_VIEW_2D"]),sources:[s]});A=i.shaderCache.createDerivedShaderProgram(e._sp,"2dColor",{context:i,shaderProgram:e._sp2D,vertexShaderSource:C,fragmentShaderSource:m,attributeLocations:o})}e._sp2D=A;let x=i.shaderCache.getDerivedShaderProgram(e._sp,"MorphColor");if(!u(x)){let C=new ke({defines:l.concat([`MAX_TERRAIN_HEIGHT ${si._defaultMaxTerrainHeight.toFixed(1)}`]),sources:[a]});c=r._batchTable.getVertexShaderCallback()(aP);let T=new ke({defines:p,sources:[d,c]});x=i.shaderCache.createDerivedShaderProgram(e._sp,"MorphColor",{context:i,shaderProgram:e._spMorph,vertexShaderSource:C,fragmentShaderSource:T,attributeLocations:o})}e._spMorph=x}function hte(e){return Ve.fromCache({cull:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:zn.EQUAL,frontOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},backFunction:zn.EQUAL,backOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK}})}function AOe(e,t,n,i,r,o){let s=e._primitive,a=s._va.length;r.length=a,o.length=a;let l=t instanceof Go?{}:n._uniforms,f=s._batchTable.getUniformMapCallback()(l);for(let d=0;d<a;d++){let p=s._va[d],g=r[d];u(g)||(g=r[d]=new nt({owner:e,primitiveType:s._primitiveType})),g.vertexArray=p,g.renderState=e._renderState,g.shaderProgram=e._sp,g.uniformMap=f,g.pass=be.TERRAIN_CLASSIFICATION,g.pickId="czm_batchTable_pickColor(v_endPlaneNormalEcAndBatchId.w)";let m=nt.shallowClone(g,g.derivedCommands.tileset);m.renderState=e._renderState3DTiles,m.pass=be.CESIUM_3D_TILE_CLASSIFICATION,g.derivedCommands.tileset=m;let A=nt.shallowClone(g,g.derivedCommands.color2D);A.shaderProgram=e._sp2D,g.derivedCommands.color2D=A;let x=nt.shallowClone(m,m.derivedCommands.color2D);x.shaderProgram=e._sp2D,m.derivedCommands.color2D=x;let C=nt.shallowClone(g,g.derivedCommands.colorMorph);C.renderState=e._renderStateMorph,C.shaderProgram=e._spMorph,C.pickId="czm_batchTable_pickColor(v_batchId)",g.derivedCommands.colorMorph=C}}function mte(e,t,n,i,r,o,s){n.mode===ne.MORPHING?t=t.derivedCommands.colorMorph:n.mode!==ne.SCENE3D&&(t=t.derivedCommands.color2D),t.modelMatrix=i,t.boundingVolume=o,t.cull=r,t.debugShowBoundingVolume=s,n.commandList.push(t)}function xOe(e,t,n,i,r,o,s){let a=e._primitive;bn._updateBoundingVolumes(a,t,r);let c;t.mode===ne.SCENE3D?c=a._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?c=a._boundingSphereCV:t.mode===ne.SCENE2D&&u(a._boundingSphere2D)?c=a._boundingSphere2D:u(a._boundingSphereMorph)&&(c=a._boundingSphereMorph);let l=t.mode===ne.MORPHING,f=e.classificationType,d=f!==kn.CESIUM_3D_TILE,p=f!==kn.TERRAIN&&!l,g,m=t.passes;if(m.render||m.pick&&a.allowPicking){let A=n.length;for(let x=0;x<A;++x){let C=c[x];d&&(g=n[x],mte(e,g,t,r,o,C,s)),p&&(g=n[x].derivedCommands.tileset,mte(e,g,t,r,o,C,s))}}}hp.prototype.update=function(e){if(!u(this._primitive)&&!u(this.geometryInstances))return;if(!si.initialized){hp.initializeTerrainHeights();return}let t,n=this,i=this._primitiveOptions;if(!u(this._primitive)){let r=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],o=r.length,s=new Array(o),a;for(t=0;t<o;++t)if(a=r[t].attributes,!u(a)||!u(a.color)){this._hasPerInstanceColors=!1;break}for(t=0;t<o;++t){let c=r[t];a={};let l=c.attributes;for(let f in l)l.hasOwnProperty(f)&&(a[f]=l[f]);u(a.width)||(a.width=new ja({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,value:[c.geometry.width]})),c.geometry._scene3DOnly=e.scene3DOnly,$0.setProjectionAndEllipsoid(c.geometry,e.mapProjection),s[t]=new xt({geometry:c.geometry,attributes:a,id:c.id,pickPrimitive:n})}i.geometryInstances=s,i.appearance=this.appearance,i._createShaderProgramFunction=function(c,l,f){yOe(n,l,f)},i._createCommandsFunction=function(c,l,f,d,p,g,m){AOe(n,l,f,d,g,m)},i._updateAndQueueCommandsFunction=function(c,l,f,d,p,g,m,A){xOe(n,l,f,d,p,g,m)},this._primitive=new bn(i)}if(this.appearance instanceof Go&&!this._hasPerInstanceColors)throw new fe("All GeometryInstances must have color attributes to use PolylineColorAppearance with GroundPolylinePrimitive.");this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{!this._ready&&u(this._primitive)&&this._primitive.ready&&this._completeLoad()})};hp.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};hp.isSupported=function(e){return e.frameState.context.depthTexture};hp.prototype.isDestroyed=function(){return!1};hp.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._sp2D=void 0,this._spMorph=void 0,ue(this)};var hd=hp;var COe=new H(1,1),TOe=!1,EOe=z.WHITE;function ST(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._image=void 0,this._imageSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._transparent=void 0,this._transparentSubscription=void 0,this.image=e.image,this.repeat=e.repeat,this.color=e.color,this.transparent=e.transparent}Object.defineProperties(ST.prototype,{isConstant:{get:function(){return q.isConstant(this._image)&&q.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:ce("image"),repeat:ce("repeat"),color:ce("color"),transparent:ce("transparent")});ST.prototype.getType=function(e){return"Image"};ST.prototype.getValue=function(e,t){return u(t)||(t={}),t.image=q.getValueOrUndefined(this._image,e),t.repeat=q.getValueOrClonedDefault(this._repeat,e,COe,t.repeat),t.color=q.getValueOrClonedDefault(this._color,e,EOe,t.color),q.getValueOrDefault(this._transparent,e,TOe)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t};ST.prototype.equals=function(e){return this===e||e instanceof ST&&q.equals(this._image,e._image)&&q.equals(this._repeat,e._repeat)&&q.equals(this._color,e._color)&&q.equals(this._transparent,e._transparent)};var _g=ST;function bOe(e){if(e instanceof z)return new Ut(e);if(typeof e=="string"||e instanceof ve||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement){let t=new _g;return t.image=e,t}}function SOe(e,t){return ce(e,t,bOe)}var Or=SOe;function dP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(dP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),dimensions:ce("dimensions"),heightReference:ce("heightReference"),fill:ce("fill"),material:Or("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});dP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.dimensions=this.dimensions,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new dP(this)};dP.prototype.merge=function(e){this.show=y(this.show,e.show),this.dimensions=y(this.dimensions,e.dimensions),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var iA=dP;var vOe={FIXED:0,INERTIAL:1},rr=Object.freeze(vOe);function vT(){fe.throwInstantiationError()}Object.defineProperties(vT.prototype,{isConstant:{get:fe.throwInstantiationError},definitionChanged:{get:fe.throwInstantiationError},referenceFrame:{get:fe.throwInstantiationError}});vT.prototype.getValue=fe.throwInstantiationError;vT.prototype.getValueInReferenceFrame=fe.throwInstantiationError;vT.prototype.equals=fe.throwInstantiationError;var u5=new Q;vT.convertToReferenceFrame=function(e,t,n,i,r){if(!u(t))return t;if(u(r)||(r=new h),n===i)return h.clone(t,r);let o=Mt.computeIcrfToFixedMatrix(e,u5);if(u(o)||(o=Mt.computeTemeToPseudoFixedMatrix(e,u5)),n===rr.INERTIAL)return Q.multiplyByVector(o,t,r);if(n===rr.FIXED)return Q.multiplyByVector(Q.transpose(o,u5),t,r)};var mp=vT;function rA(e,t){this._definitionChanged=new ge,this._value=h.clone(e),this._referenceFrame=y(t,rr.FIXED)}Object.defineProperties(rA.prototype,{isConstant:{get:function(){return!u(this._value)||this._referenceFrame===rr.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});rA.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,rr.FIXED,t)};rA.prototype.setValue=function(e,t){let n=!1;h.equals(this._value,e)||(n=!0,this._value=h.clone(e)),u(t)&&this._referenceFrame!==t&&(n=!0,this._referenceFrame=t),n&&this._definitionChanged.raiseEvent(this)};rA.prototype.getValueInReferenceFrame=function(e,t,n){return mp.convertToReferenceFrame(e,this._value,this._referenceFrame,t,n)};rA.prototype.equals=function(e){return this===e||e instanceof rA&&h.equals(this._value,e._value)&&this._referenceFrame===e._referenceFrame};var Mc=rA;function hP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(hP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),width:ce("width"),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),cornerType:ce("cornerType"),granularity:ce("granularity"),fill:ce("fill"),material:Or("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});hP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new hP(this)};hP.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var oA=hP;function wOe(e){return e}function DOe(e,t){return ce(e,t,wOe)}var ml=DOe;function mP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._length=void 0,this._lengthSubscription=void 0,this._topRadius=void 0,this._topRadiusSubscription=void 0,this._bottomRadius=void 0,this._bottomRadiusSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._slices=void 0,this._slicesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(mP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),length:ce("length"),topRadius:ce("topRadius"),bottomRadius:ce("bottomRadius"),heightReference:ce("heightReference"),fill:ce("fill"),material:Or("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),numberOfVerticalLines:ce("numberOfVerticalLines"),slices:ce("slices"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});mP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.length=this.length,e.topRadius=this.topRadius,e.bottomRadius=this.bottomRadius,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.slices=this.slices,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new mP(this)};mP.prototype.merge=function(e){this.show=y(this.show,e.show),this.length=y(this.length,e.length),this.topRadius=y(this.topRadius,e.topRadius),this.bottomRadius=y(this.bottomRadius,e.bottomRadius),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.slices=y(this.slices,e.slices),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var sA=mP;function pP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._semiMajorAxis=void 0,this._semiMajorAxisSubscription=void 0,this._semiMinorAxis=void 0,this._semiMinorAxisSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(pP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),semiMajorAxis:ce("semiMajorAxis"),semiMinorAxis:ce("semiMinorAxis"),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),rotation:ce("rotation"),stRotation:ce("stRotation"),granularity:ce("granularity"),fill:ce("fill"),material:Or("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),numberOfVerticalLines:ce("numberOfVerticalLines"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});pP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.semiMajorAxis=this.semiMajorAxis,e.semiMinorAxis=this.semiMinorAxis,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new pP(this)};pP.prototype.merge=function(e){this.show=y(this.show,e.show),this.semiMajorAxis=y(this.semiMajorAxis,e.semiMajorAxis),this.semiMinorAxis=y(this.semiMinorAxis,e.semiMinorAxis),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var aA=pP;function _P(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._radii=void 0,this._radiiSubscription=void 0,this._innerRadii=void 0,this._innerRadiiSubscription=void 0,this._minimumClock=void 0,this._minimumClockSubscription=void 0,this._maximumClock=void 0,this._maximumClockSubscription=void 0,this._minimumCone=void 0,this._minimumConeSubscription=void 0,this._maximumCone=void 0,this._maximumConeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._stackPartitions=void 0,this._stackPartitionsSubscription=void 0,this._slicePartitions=void 0,this._slicePartitionsSubscription=void 0,this._subdivisions=void 0,this._subdivisionsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(_P.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),radii:ce("radii"),innerRadii:ce("innerRadii"),minimumClock:ce("minimumClock"),maximumClock:ce("maximumClock"),minimumCone:ce("minimumCone"),maximumCone:ce("maximumCone"),heightReference:ce("heightReference"),fill:ce("fill"),material:Or("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),stackPartitions:ce("stackPartitions"),slicePartitions:ce("slicePartitions"),subdivisions:ce("subdivisions"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});_P.prototype.clone=function(e){return u(e)?(e.show=this.show,e.radii=this.radii,e.innerRadii=this.innerRadii,e.minimumClock=this.minimumClock,e.maximumClock=this.maximumClock,e.minimumCone=this.minimumCone,e.maximumCone=this.maximumCone,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.stackPartitions=this.stackPartitions,e.slicePartitions=this.slicePartitions,e.subdivisions=this.subdivisions,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new _P(this)};_P.prototype.merge=function(e){this.show=y(this.show,e.show),this.radii=y(this.radii,e.radii),this.innerRadii=y(this.innerRadii,e.innerRadii),this.minimumClock=y(this.minimumClock,e.minimumClock),this.maximumClock=y(this.maximumClock,e.maximumClock),this.minimumCone=y(this.minimumCone,e.minimumCone),this.maximumCone=y(this.maximumCone,e.maximumCone),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.stackPartitions=y(this.stackPartitions,e.stackPartitions),this.slicePartitions=y(this.slicePartitions,e.slicePartitions),this.subdivisions=y(this.subdivisions,e.subdivisions),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var cA=_P;function gP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._text=void 0,this._textSubscription=void 0,this._font=void 0,this._fontSubscription=void 0,this._style=void 0,this._styleSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._showBackground=void 0,this._showBackgroundSubscription=void 0,this._backgroundColor=void 0,this._backgroundColorSubscription=void 0,this._backgroundPadding=void 0,this._backgroundPaddingSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fillColor=void 0,this._fillColorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(gP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),text:ce("text"),font:ce("font"),style:ce("style"),scale:ce("scale"),showBackground:ce("showBackground"),backgroundColor:ce("backgroundColor"),backgroundPadding:ce("backgroundPadding"),pixelOffset:ce("pixelOffset"),eyeOffset:ce("eyeOffset"),horizontalOrigin:ce("horizontalOrigin"),verticalOrigin:ce("verticalOrigin"),heightReference:ce("heightReference"),fillColor:ce("fillColor"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),translucencyByDistance:ce("translucencyByDistance"),pixelOffsetScaleByDistance:ce("pixelOffsetScaleByDistance"),scaleByDistance:ce("scaleByDistance"),distanceDisplayCondition:ce("distanceDisplayCondition"),disableDepthTestDistance:ce("disableDepthTestDistance")});gP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.text=this.text,e.font=this.font,e.style=this.style,e.scale=this.scale,e.showBackground=this.showBackground,e.backgroundColor=this.backgroundColor,e.backgroundPadding=this.backgroundPadding,e.pixelOffset=this.pixelOffset,e.eyeOffset=this.eyeOffset,e.horizontalOrigin=this.horizontalOrigin,e.verticalOrigin=this.verticalOrigin,e.heightReference=this.heightReference,e.fillColor=this.fillColor,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.translucencyByDistance=this.translucencyByDistance,e.pixelOffsetScaleByDistance=this.pixelOffsetScaleByDistance,e.scaleByDistance=this.scaleByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new gP(this)};gP.prototype.merge=function(e){this.show=y(this.show,e.show),this.text=y(this.text,e.text),this.font=y(this.font,e.font),this.style=y(this.style,e.style),this.scale=y(this.scale,e.scale),this.showBackground=y(this.showBackground,e.showBackground),this.backgroundColor=y(this.backgroundColor,e.backgroundColor),this.backgroundPadding=y(this.backgroundPadding,e.backgroundPadding),this.pixelOffset=y(this.pixelOffset,e.pixelOffset),this.eyeOffset=y(this.eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this.horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this.verticalOrigin,e.verticalOrigin),this.heightReference=y(this.heightReference,e.heightReference),this.fillColor=y(this.fillColor,e.fillColor),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.translucencyByDistance=y(this.translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this.pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance)};var md=gP;var IOe=new h(1,1,1),POe=h.ZERO,OOe=Le.IDENTITY;function pte(e,t,n){this.translation=h.clone(y(e,POe)),this.rotation=Le.clone(y(t,OOe)),this.scale=h.clone(y(n,IOe))}pte.prototype.equals=function(e){return this===e||u(e)&&h.equals(this.translation,e.translation)&&Le.equals(this.rotation,e.rotation)&&h.equals(this.scale,e.scale)};var gg=pte;var f5=new gg;function yP(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._translation=void 0,this._translationSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this.translation=e.translation,this.rotation=e.rotation,this.scale=e.scale}Object.defineProperties(yP.prototype,{isConstant:{get:function(){return q.isConstant(this._translation)&&q.isConstant(this._rotation)&&q.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:ce("translation"),rotation:ce("rotation"),scale:ce("scale")});yP.prototype.getValue=function(e,t){return u(t)||(t=new gg),t.translation=q.getValueOrClonedDefault(this._translation,e,f5.translation,t.translation),t.rotation=q.getValueOrClonedDefault(this._rotation,e,f5.rotation,t.rotation),t.scale=q.getValueOrClonedDefault(this._scale,e,f5.scale,t.scale),t};yP.prototype.equals=function(e){return this===e||e instanceof yP&&q.equals(this._translation,e._translation)&&q.equals(this._rotation,e._rotation)&&q.equals(this._scale,e._scale)};var lA=yP;function pp(e,t){this._propertyNames=[],this._definitionChanged=new ge,u(e)&&this.merge(e,t)}Object.defineProperties(pp.prototype,{propertyNames:{get:function(){return this._propertyNames}},isConstant:{get:function(){let e=this._propertyNames;for(let t=0,n=e.length;t<n;t++)if(!q.isConstant(this[e[t]]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});pp.prototype.hasProperty=function(e){return this._propertyNames.indexOf(e)!==-1};function MOe(e){return new ei(e)}pp.prototype.addProperty=function(e,t,n){this._propertyNames.push(e),Object.defineProperty(this,e,ce(e,!0,y(n,MOe))),u(t)&&(this[e]=t),this._definitionChanged.raiseEvent(this)};pp.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e],this._definitionChanged.raiseEvent(this)};pp.prototype.getValue=function(e,t){u(t)||(t={});let n=this._propertyNames;for(let i=0,r=n.length;i<r;i++){let o=n[i];t[o]=q.getValueOrUndefined(this[o],e,t[o])}return t};pp.prototype.merge=function(e,t){let n=this._propertyNames,i=u(e._propertyNames)?e._propertyNames:Object.keys(e);for(let r=0,o=i.length;r<o;r++){let s=i[r],a=this[s],c=e[s];a===void 0&&n.indexOf(s)===-1&&this.addProperty(s,void 0,t),c!==void 0&&(a!==void 0?u(a)&&u(a.merge)&&a.merge(c):u(c)&&u(c.merge)&&u(c.clone)?this[s]=c.clone():this[s]=c)}};function ROe(e,t){let n=e._propertyNames,i=t._propertyNames,r=n.length;if(r!==i.length)return!1;for(let o=0;o<r;++o){let s=n[o];if(i.indexOf(s)===-1||!q.equals(e[s],t[s]))return!1}return!0}pp.prototype.equals=function(e){return this===e||e instanceof pp&&ROe(this,e)};var pl=pp;function _te(e){return new lA(e)}function BOe(e){return new pl(e,_te)}function LOe(e){return new pl(e)}function AP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._minimumPixelSize=void 0,this._minimumPixelSizeSubscription=void 0,this._maximumScale=void 0,this._maximumScaleSubscription=void 0,this._incrementallyLoadTextures=void 0,this._incrementallyLoadTexturesSubscription=void 0,this._runAnimations=void 0,this._runAnimationsSubscription=void 0,this._clampAnimations=void 0,this._clampAnimationsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._silhouetteColor=void 0,this._silhouetteColorSubscription=void 0,this._silhouetteSize=void 0,this._silhouetteSizeSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._colorBlendMode=void 0,this._colorBlendModeSubscription=void 0,this._colorBlendAmount=void 0,this._colorBlendAmountSubscription=void 0,this._imageBasedLightingFactor=void 0,this._imageBasedLightingFactorSubscription=void 0,this._lightColor=void 0,this._lightColorSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._nodeTransformations=void 0,this._nodeTransformationsSubscription=void 0,this._articulations=void 0,this._articulationsSubscription=void 0,this._clippingPlanes=void 0,this._clippingPlanesSubscription=void 0,this._customShader=void 0,this._customShaderSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(AP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),uri:ce("uri"),scale:ce("scale"),minimumPixelSize:ce("minimumPixelSize"),maximumScale:ce("maximumScale"),incrementallyLoadTextures:ce("incrementallyLoadTextures"),runAnimations:ce("runAnimations"),clampAnimations:ce("clampAnimations"),shadows:ce("shadows"),heightReference:ce("heightReference"),silhouetteColor:ce("silhouetteColor"),silhouetteSize:ce("silhouetteSize"),color:ce("color"),colorBlendMode:ce("colorBlendMode"),colorBlendAmount:ce("colorBlendAmount"),imageBasedLightingFactor:ce("imageBasedLightingFactor"),lightColor:ce("lightColor"),distanceDisplayCondition:ce("distanceDisplayCondition"),nodeTransformations:ce("nodeTransformations",void 0,BOe),articulations:ce("articulations",void 0,LOe),clippingPlanes:ce("clippingPlanes"),customShader:ce("customShader")});AP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.uri=this.uri,e.scale=this.scale,e.minimumPixelSize=this.minimumPixelSize,e.maximumScale=this.maximumScale,e.incrementallyLoadTextures=this.incrementallyLoadTextures,e.runAnimations=this.runAnimations,e.clampAnimations=this.clampAnimations,e.heightReference=this._heightReference,e.silhouetteColor=this.silhouetteColor,e.silhouetteSize=this.silhouetteSize,e.color=this.color,e.colorBlendMode=this.colorBlendMode,e.colorBlendAmount=this.colorBlendAmount,e.imageBasedLightingFactor=this.imageBasedLightingFactor,e.lightColor=this.lightColor,e.distanceDisplayCondition=this.distanceDisplayCondition,e.nodeTransformations=this.nodeTransformations,e.articulations=this.articulations,e.clippingPlanes=this.clippingPlanes,e.customShader=this.customShader,e):new AP(this)};AP.prototype.merge=function(e){this.show=y(this.show,e.show),this.uri=y(this.uri,e.uri),this.scale=y(this.scale,e.scale),this.minimumPixelSize=y(this.minimumPixelSize,e.minimumPixelSize),this.maximumScale=y(this.maximumScale,e.maximumScale),this.incrementallyLoadTextures=y(this.incrementallyLoadTextures,e.incrementallyLoadTextures),this.runAnimations=y(this.runAnimations,e.runAnimations),this.clampAnimations=y(this.clampAnimations,e.clampAnimations),this.shadows=y(this.shadows,e.shadows),this.heightReference=y(this.heightReference,e.heightReference),this.silhouetteColor=y(this.silhouetteColor,e.silhouetteColor),this.silhouetteSize=y(this.silhouetteSize,e.silhouetteSize),this.color=y(this.color,e.color),this.colorBlendMode=y(this.colorBlendMode,e.colorBlendMode),this.colorBlendAmount=y(this.colorBlendAmount,e.colorBlendAmount),this.imageBasedLightingFactor=y(this.imageBasedLightingFactor,e.imageBasedLightingFactor),this.lightColor=y(this.lightColor,e.lightColor),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.clippingPlanes=y(this.clippingPlanes,e.clippingPlanes),this.customShader=y(this.customShader,e.customShader);let t=e.nodeTransformations;if(u(t)){let i=this.nodeTransformations;u(i)?i.merge(t):this.nodeTransformations=new pl(t,_te)}let n=e.articulations;if(u(n)){let i=this.articulations;u(i)?i.merge(n):this.articulations=new pl(n)}};var _p=AP;function xP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._maximumScreenSpaceError=void 0,this._maximumScreenSpaceErrorSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(xP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),uri:ce("uri"),maximumScreenSpaceError:ce("maximumScreenSpaceError")});xP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.uri=this.uri,e.maximumScreenSpaceError=this.maximumScreenSpaceError,e):new xP(this)};xP.prototype.merge=function(e){this.show=y(this.show,e.show),this.uri=y(this.uri,e.uri),this.maximumScreenSpaceError=y(this.maximumScreenSpaceError,e.maximumScreenSpaceError)};var uA=xP;function CP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._leadTime=void 0,this._leadTimeSubscription=void 0,this._trailTime=void 0,this._trailTimeSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._resolution=void 0,this._resolutionSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(CP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),leadTime:ce("leadTime"),trailTime:ce("trailTime"),width:ce("width"),resolution:ce("resolution"),material:Or("material"),distanceDisplayCondition:ce("distanceDisplayCondition")});CP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.leadTime=this.leadTime,e.trailTime=this.trailTime,e.width=this.width,e.resolution=this.resolution,e.material=this.material,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new CP(this)};CP.prototype.merge=function(e){this.show=y(this.show,e.show),this.leadTime=y(this.leadTime,e.leadTime),this.trailTime=y(this.trailTime,e.trailTime),this.width=y(this.width,e.width),this.resolution=y(this.resolution,e.resolution),this.material=y(this.material,e.material),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var gp=CP;function TP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(TP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),plane:ce("plane"),dimensions:ce("dimensions"),fill:ce("fill"),material:Or("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});TP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.plane=this.plane,e.dimensions=this.dimensions,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new TP(this)};TP.prototype.merge=function(e){this.show=y(this.show,e.show),this.plane=y(this.plane,e.plane),this.dimensions=y(this.dimensions,e.dimensions),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var EP=TP;function bP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._pixelSize=void 0,this._pixelSizeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(bP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),pixelSize:ce("pixelSize"),heightReference:ce("heightReference"),color:ce("color"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),scaleByDistance:ce("scaleByDistance"),translucencyByDistance:ce("translucencyByDistance"),distanceDisplayCondition:ce("distanceDisplayCondition"),disableDepthTestDistance:ce("disableDepthTestDistance")});bP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.pixelSize=this.pixelSize,e.heightReference=this.heightReference,e.color=this.color,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.scaleByDistance=this.scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new bP(this)};bP.prototype.merge=function(e){this.show=y(this.show,e.show),this.pixelSize=y(this.pixelSize,e.pixelSize),this.heightReference=y(this.heightReference,e.heightReference),this.color=y(this.color,e.color),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.translucencyByDistance=y(this._translucencyByDistance,e.translucencyByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance)};var fA=bP;function NOe(e,t){this.positions=u(e)?e:[],this.holes=u(t)?t:[]}var Rc=NOe;function FOe(e){return Array.isArray(e)&&(e=new Rc(e)),new ei(e)}function SP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._hierarchy=void 0,this._hierarchySubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._perPositionHeight=void 0,this._perPositionHeightSubscription=void 0,this._closeTop=void 0,this._closeTopSubscription=void 0,this._closeBottom=void 0,this._closeBottomSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this._textureCoordinates=void 0,this._textureCoordinatesSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(SP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),hierarchy:ce("hierarchy",void 0,FOe),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),stRotation:ce("stRotation"),granularity:ce("granularity"),fill:ce("fill"),material:Or("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),perPositionHeight:ce("perPositionHeight"),closeTop:ce("closeTop"),closeBottom:ce("closeBottom"),arcType:ce("arcType"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex"),textureCoordinates:ce("textureCoordinates")});SP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.hierarchy=this.hierarchy,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.perPositionHeight=this.perPositionHeight,e.closeTop=this.closeTop,e.closeBottom=this.closeBottom,e.arcType=this.arcType,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e.textureCoordinates=this.textureCoordinates,e):new SP(this)};SP.prototype.merge=function(e){this.show=y(this.show,e.show),this.hierarchy=y(this.hierarchy,e.hierarchy),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.perPositionHeight=y(this.perPositionHeight,e.perPositionHeight),this.closeTop=y(this.closeTop,e.closeTop),this.closeBottom=y(this.closeBottom,e.closeBottom),this.arcType=y(this.arcType,e.arcType),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex),this.textureCoordinates=y(this.textureCoordinates,e.textureCoordinates)};var pd=SP;function vP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._depthFailMaterial=void 0,this._depthFailMaterialSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._clampToGround=void 0,this._clampToGroundSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(vP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),width:ce("width"),granularity:ce("granularity"),material:Or("material"),depthFailMaterial:Or("depthFailMaterial"),arcType:ce("arcType"),clampToGround:ce("clampToGround"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});vP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.granularity=this.granularity,e.material=this.material,e.depthFailMaterial=this.depthFailMaterial,e.arcType=this.arcType,e.clampToGround=this.clampToGround,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new vP(this)};vP.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.granularity=y(this.granularity,e.granularity),this.material=y(this.material,e.material),this.depthFailMaterial=y(this.depthFailMaterial,e.depthFailMaterial),this.arcType=y(this.arcType,e.arcType),this.clampToGround=y(this.clampToGround,e.clampToGround),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var qa=vP;function wP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._shape=void 0,this._shapeSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubsription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(wP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),shape:ce("shape"),cornerType:ce("cornerType"),granularity:ce("granularity"),fill:ce("fill"),material:Or("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});wP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.positions=this.positions,e.shape=this.shape,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new wP(this)};wP.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.shape=y(this.shape,e.shape),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var dA=wP;function DP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._coordinates=void 0,this._coordinatesSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distancedisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(DP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),coordinates:ce("coordinates"),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),rotation:ce("rotation"),stRotation:ce("stRotation"),granularity:ce("granularity"),fill:ce("fill"),material:Or("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});DP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.coordinates=this.coordinates,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new DP(this)};DP.prototype.merge=function(e){this.show=y(this.show,e.show),this.coordinates=y(this.coordinates,e.coordinates),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var _d=DP;function IP(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._minimumHeights=void 0,this._minimumHeightsSubscription=void 0,this._maximumHeights=void 0,this._maximumHeightsSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(IP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),minimumHeights:ce("minimumHeights"),maximumHeights:ce("maximumHeights"),granularity:ce("granularity"),fill:ce("fill"),material:Or("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});IP.prototype.clone=function(e){return u(e)?(e.show=this.show,e.positions=this.positions,e.minimumHeights=this.minimumHeights,e.maximumHeights=this.maximumHeights,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new IP(this)};IP.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.minimumHeights=y(this.minimumHeights,e.minimumHeights),this.maximumHeights=y(this.maximumHeights,e.maximumHeights),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var yp=IP;var UOe=new me;function VOe(e){return new Mc(e)}function kOe(e){return ce(e,void 0,VOe)}function Ys(e,t){return ce(e,void 0,function(n){return n instanceof t?n:new t(n)})}function Gh(e){e=y(e,y.EMPTY_OBJECT);let t=e.id;u(t)||(t=Wn()),this._availability=void 0,this._id=t,this._definitionChanged=new ge,this._name=e.name,this._show=y(e.show,!0),this._parent=void 0,this._propertyNames=["billboard","box","corridor","cylinder","description","ellipse","ellipsoid","label","model","tileset","orientation","path","plane","point","polygon","polyline","polylineVolume","position","properties","rectangle","viewFrom","wall"],this._billboard=void 0,this._billboardSubscription=void 0,this._box=void 0,this._boxSubscription=void 0,this._corridor=void 0,this._corridorSubscription=void 0,this._cylinder=void 0,this._cylinderSubscription=void 0,this._description=void 0,this._descriptionSubscription=void 0,this._ellipse=void 0,this._ellipseSubscription=void 0,this._ellipsoid=void 0,this._ellipsoidSubscription=void 0,this._label=void 0,this._labelSubscription=void 0,this._model=void 0,this._modelSubscription=void 0,this._tileset=void 0,this._tilesetSubscription=void 0,this._orientation=void 0,this._orientationSubscription=void 0,this._path=void 0,this._pathSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._point=void 0,this._pointSubscription=void 0,this._polygon=void 0,this._polygonSubscription=void 0,this._polyline=void 0,this._polylineSubscription=void 0,this._polylineVolume=void 0,this._polylineVolumeSubscription=void 0,this._position=void 0,this._positionSubscription=void 0,this._properties=void 0,this._propertiesSubscription=void 0,this._rectangle=void 0,this._rectangleSubscription=void 0,this._viewFrom=void 0,this._viewFromSubscription=void 0,this._wall=void 0,this._wallSubscription=void 0,this._children=[],this.entityCollection=void 0,this.parent=e.parent,this.merge(e)}function d5(e,t,n){let i=t.length;for(let r=0;r<i;r++){let o=t[r],s=o._show;(!n&&s)!==(n&&s)&&d5(o,o._children,n)}e._definitionChanged.raiseEvent(e,"isShowing",n,!n)}Object.defineProperties(Gh.prototype,{availability:ml("availability"),id:{get:function(){return this._id}},definitionChanged:{get:function(){return this._definitionChanged}},name:ml("name"),show:{get:function(){return this._show},set:function(e){if(e===this._show)return;let t=this.isShowing;this._show=e;let n=this.isShowing;t!==n&&d5(this,this._children,n),this._definitionChanged.raiseEvent(this,"show",e,!e)}},isShowing:{get:function(){return this._show&&(!u(this.entityCollection)||this.entityCollection.show)&&(!u(this._parent)||this._parent.isShowing)}},parent:{get:function(){return this._parent},set:function(e){let t=this._parent;if(t===e)return;let n=this.isShowing;if(u(t)){let r=t._children.indexOf(this);t._children.splice(r,1)}this._parent=e,u(e)&&e._children.push(this);let i=this.isShowing;n!==i&&d5(this,this._children,i),this._definitionChanged.raiseEvent(this,"parent",e,t)}},propertyNames:{get:function(){return this._propertyNames}},billboard:Ys("billboard",Ga),box:Ys("box",iA),corridor:Ys("corridor",oA),cylinder:Ys("cylinder",sA),description:ce("description"),ellipse:Ys("ellipse",aA),ellipsoid:Ys("ellipsoid",cA),label:Ys("label",md),model:Ys("model",_p),tileset:Ys("tileset",uA),orientation:ce("orientation"),path:Ys("path",gp),plane:Ys("plane",EP),point:Ys("point",fA),polygon:Ys("polygon",pd),polyline:Ys("polyline",qa),polylineVolume:Ys("polylineVolume",dA),properties:Ys("properties",pl),position:kOe("position"),rectangle:Ys("rectangle",_d),viewFrom:ce("viewFrom"),wall:Ys("wall",yp)});Gh.prototype.isAvailable=function(e){let t=this._availability;return!u(t)||t.contains(e)};Gh.prototype.addProperty=function(e){this._propertyNames.push(e),Object.defineProperty(this,e,ml(e,!0))};Gh.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e]};Gh.prototype.merge=function(e){this.name=y(this.name,e.name),this.availability=y(this.availability,e.availability);let t=this._propertyNames,n=u(e._propertyNames)?e._propertyNames:Object.keys(e),i=n.length;for(let r=0;r<i;r++){let o=n[r];if(o==="parent"||o==="name"||o==="availability"||o==="children")continue;let s=this[o],a=e[o];!u(s)&&t.indexOf(o)===-1&&this.addProperty(o),u(a)&&(u(s)?u(s.merge)&&s.merge(a):u(a.merge)&&u(a.clone)?this[o]=a.clone():this[o]=a)}};var gte=new Q,yte=new h,Ate=new Le;Gh.prototype.computeModelMatrix=function(e,t){let n=q.getValueOrUndefined(this._position,e,yte);if(!u(n))return;let i=q.getValueOrUndefined(this._orientation,e,Ate);return u(i)?t=N.fromRotationTranslation(Q.fromQuaternion(i,gte),n,t):t=Mt.eastNorthUpToFixedFrame(n,void 0,t),t};Gh.prototype.computeModelMatrixForHeightReference=function(e,t,n,i,r){let o=q.getValueOrDefault(t,e,je.NONE),s=q.getValueOrUndefined(this._position,e,yte);if(o===je.NONE||!u(s)||h.equalsEpsilon(s,h.ZERO,P.EPSILON8))return this.computeModelMatrix(e,r);let a=i.cartesianToCartographic(s,UOe);o===je.CLAMP_TO_GROUND?a.height=n:a.height+=n,s=i.cartographicToCartesian(a,s);let c=q.getValueOrUndefined(this._orientation,e,Ate);return u(c)?r=N.fromRotationTranslation(Q.fromQuaternion(c,gte),s,r):r=Mt.eastNorthUpToFixedFrame(s,void 0,r),r};Gh.supportsMaterialsforEntitiesOnTerrain=function(e){return Pc.supportsMaterials(e)};Gh.supportsPolylinesOnTerrain=function(e){return hd.isSupported(e)};var Kr=Gh;var zOe=new Ut(z.WHITE),HOe=new ei(!0),GOe=new ei(!0),WOe=new ei(!1),jOe=new ei(z.BLACK),qOe=new ei(yn.DISABLED),YOe=new ei(new vt),XOe=new ei(kn.BOTH);function Bc(e){let t=e.entity,n=e.geometryPropertyName;this._entity=t,this._scene=e.scene,this._fillEnabled=!1,this._isClosed=!1,this._onTerrain=!1,this._dynamic=!1,this._outlineEnabled=!1,this._geometryChanged=new ge,this._showProperty=void 0,this._materialProperty=void 0,this._showOutlineProperty=void 0,this._outlineColorProperty=void 0,this._outlineWidth=1,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._options=e.geometryOptions,this._geometryPropertyName=n,this._id=`${n}-${t.id}`,this._observedPropertyNames=e.observedPropertyNames,this._supportsMaterialsforEntitiesOnTerrain=Kr.supportsMaterialsforEntitiesOnTerrain(e.scene)}Object.defineProperties(Bc.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!u(this._entity.availability)&&q.isConstant(this._showProperty)&&q.isConstant(this._fillProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},outlineEnabled:{get:function(){return this._outlineEnabled}},hasConstantOutline:{get:function(){return!this._outlineEnabled||!u(this._entity.availability)&&q.isConstant(this._showProperty)&&q.isConstant(this._showOutlineProperty)}},outlineColorProperty:{get:function(){return this._outlineColorProperty}},outlineWidth:{get:function(){return this._outlineWidth}},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{get:function(){return this._isClosed}},onTerrain:{get:function(){return this._onTerrain}},geometryChanged:{get:function(){return this._geometryChanged}}});Bc.prototype.isOutlineVisible=function(e){let t=this._entity,n=this._outlineEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e);return y(n,!1)};Bc.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e);return y(n,!1)};Bc.prototype.createFillGeometryInstance=fe.throwInstantiationError;Bc.prototype.createOutlineGeometryInstance=fe.throwInstantiationError;Bc.prototype.isDestroyed=function(){return!1};Bc.prototype.destroy=function(){ue(this)};Bc.prototype._isHidden=function(e,t){let n=t.show;return u(n)&&n.isConstant&&!n.getValue(ze.MINIMUM_VALUE)};Bc.prototype._isOnTerrain=function(e,t){return!1};Bc.prototype._getIsClosed=function(e){return!0};Bc.prototype._isDynamic=fe.throwInstantiationError;Bc.prototype._setStaticOptions=fe.throwInstantiationError;Bc.prototype._onEntityPropertyChanged=function(e,t,n,i){if(this._observedPropertyNames.indexOf(t)===-1)return;let r=this._entity[this._geometryPropertyName];if(!u(r)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let o=r.fill,s=u(o)&&o.isConstant?o.getValue(ze.MINIMUM_VALUE):!0,a=r.outline,c=u(a);if(c&&a.isConstant&&(c=a.getValue(ze.MINIMUM_VALUE)),!s&&!c){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let l=r.show;if(this._isHidden(e,r)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}this._materialProperty=y(r.material,zOe),this._fillProperty=y(o,GOe),this._showProperty=y(l,HOe),this._showOutlineProperty=y(r.outline,WOe),this._outlineColorProperty=c?y(r.outlineColor,jOe):void 0,this._shadowsProperty=y(r.shadows,qOe),this._distanceDisplayConditionProperty=y(r.distanceDisplayCondition,YOe),this._classificationTypeProperty=y(r.classificationType,XOe),this._fillEnabled=s;let f=this._isOnTerrain(e,r)&&(this._supportsMaterialsforEntitiesOnTerrain||this._materialProperty instanceof Ut);if(c&&f&&(Ot(Ot.geometryOutlines),c=!1),this._onTerrain=f,this._outlineEnabled=c,this._isDynamic(e,r))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{this._setStaticOptions(e,r),this._isClosed=this._getIsClosed(this._options);let d=r.outlineWidth;this._outlineWidth=u(d)?d.getValue(ze.MINIMUM_VALUE):1,this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};Bc.prototype.createDynamicUpdater=function(e,t){return new this.constructor.DynamicGeometryUpdater(this,e,t)};var ci=Bc;function wT(e,t){this._callback=void 0,this._isConstant=void 0,this._definitionChanged=new ge,this.setCallback(e,t)}Object.defineProperties(wT.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}}});wT.prototype.getValue=function(e,t){return this._callback(e,t)};wT.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};wT.prototype.equals=function(e){return this===e||e instanceof wT&&this._callback===e._callback&&this._isConstant===e._isConstant};var gd=wT;var xte=new h,KOe=new me;function DT(e,t,n,i){this._scene=e,this._heightReference=n,this._extrudedHeightReference=i,this._positionProperty=t,this._position=new h,this._cartographicPosition=new me,this._normal=new h,this._definitionChanged=new ge,this._terrainHeight=0,this._removeCallbackFunc=void 0,this._removeEventListener=void 0,this._removeModeListener=void 0;let r=this;if(u(e.globe)&&(this._removeEventListener=e.terrainProviderChanged.addEventListener(function(){r._updateClamping()}),this._removeModeListener=e.morphComplete.addEventListener(function(){r._updateClamping()})),t.isConstant){let o=t.getValue(ze.MINIMUM_VALUE,xte);if(!u(o)||h.equals(o,h.ZERO)||!u(e.globe))return;this._position=h.clone(o,this._position),this._updateClamping(),this._normal=e.globe.ellipsoid.geodeticSurfaceNormal(o,this._normal)}}Object.defineProperties(DT.prototype,{isConstant:{get:function(){return!1}},definitionChanged:{get:function(){return this._definitionChanged}}});DT.prototype._updateClamping=function(){u(this._removeCallbackFunc)&&this._removeCallbackFunc();let e=this._scene,t=e.globe,n=this._position;if(!u(t)||h.equals(n,h.ZERO)){this._terrainHeight=0;return}let i=t.ellipsoid,r=t._surface,o=this,s=i.cartesianToCartographic(n,this._cartographicPosition),a=t.getHeight(s);u(a)?this._terrainHeight=a:this._terrainHeight=0;function c(l){if(e.mode===ne.SCENE3D){let f=i.cartesianToCartographic(l,KOe);o._terrainHeight=f.height}else o._terrainHeight=l.x;o.definitionChanged.raiseEvent()}this._removeCallbackFunc=r.updateHeight(s,c)};DT.prototype.getValue=function(e,t){let n=q.getValueOrDefault(this._heightReference,e,je.NONE),i=q.getValueOrDefault(this._extrudedHeightReference,e,je.NONE);if(n===je.NONE&&i!==je.RELATIVE_TO_GROUND)return this._position=h.clone(h.ZERO,this._position),h.clone(h.ZERO,t);if(this._positionProperty.isConstant)return h.multiplyByScalar(this._normal,this._terrainHeight,t);let r=this._scene,o=this._positionProperty.getValue(e,xte);if(!u(o)||h.equals(o,h.ZERO)||!u(r.globe))return h.clone(h.ZERO,t);if(h.equalsEpsilon(this._position,o,P.EPSILON10))return h.multiplyByScalar(this._normal,this._terrainHeight,t);this._position=h.clone(o,this._position),this._updateClamping();let s=r.globe.ellipsoid.geodeticSurfaceNormal(o,this._normal);return h.multiplyByScalar(s,this._terrainHeight,t)};DT.prototype.isDestroyed=function(){return!1};DT.prototype.destroy=function(){return u(this._removeEventListener)&&this._removeEventListener(),u(this._removeModeListener)&&this._removeModeListener(),u(this._removeCallbackFunc)&&this._removeCallbackFunc(),ue(this)};var hA=DT;function JOe(e,t,n,i){if(ci.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let r=this._entity[this._geometryPropertyName];if(!u(r))return;u(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let o=r.heightReference;if(u(o)){let s=new gd(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new hA(this._scene,s,o)}}var Ap=JOe;var Cte=h.ZERO,Tte=new h,ZOe=new h,Ete=new z;function QOe(e){this.id=e,this.vertexFormat=void 0,this.dimensions=void 0,this.offsetAttribute=void 0}function iu(e,t){ci.call(this,{entity:e,scene:t,geometryOptions:new QOe(e),geometryPropertyName:"box",observedPropertyNames:["availability","position","orientation","box"]}),this._onEntityPropertyChanged(e,"box",e.box,void 0)}u(Object.create)&&(iu.prototype=Object.create(ci.prototype),iu.prototype.constructor=iu);Object.defineProperties(iu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});iu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),r=this._distanceDisplayConditionProperty.getValue(e),o=Vn.fromDistanceDisplayCondition(r),s={show:i,distanceDisplayCondition:o,color:void 0,offset:void 0};if(this._materialProperty instanceof Ut){let a;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Ete)),u(a)||(a=z.WHITE),s.color=kt.fromColor(a)}return u(this._options.offsetAttribute)&&(s.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Cte,Tte))),new xt({id:t,geometry:fl.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.mapProjection.ellipsoid),attributes:s})};iu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Ete),r=this._distanceDisplayConditionProperty.getValue(e),o={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(r),offset:void 0};return u(this._options.offsetAttribute)&&(o.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Cte,Tte))),new xt({id:t,geometry:ld.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.mapProjection.ellipsoid),attributes:o})};iu.prototype._computeCenter=function(e,t){return q.getValueOrUndefined(this._entity.position,e,t)};iu.prototype._isHidden=function(e,t){return!u(t.dimensions)||!u(e.position)||ci.prototype._isHidden.call(this,e,t)};iu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!q.isConstant(e.orientation)||!t.dimensions.isConstant||!q.isConstant(t.outlineWidth)};iu.prototype._setStaticOptions=function(e,t){let n=q.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,je.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Ut?rn.VERTEX_FORMAT:lr.MaterialSupport.TEXTURED.vertexFormat,i.dimensions=t.dimensions.getValue(ze.MINIMUM_VALUE,i.dimensions),i.offsetAttribute=n!==je.NONE?nn.ALL:void 0};iu.prototype._onEntityPropertyChanged=Ap;iu.DynamicGeometryUpdater=IT;function IT(e,t,n){ai.call(this,e,t,n)}u(Object.create)&&(IT.prototype=Object.create(ai.prototype),IT.prototype.constructor=IT);IT.prototype._isHidden=function(e,t,n){let i=q.getValueOrUndefined(e.position,n,ZOe),r=this._options.dimensions;return!u(i)||!u(r)||ai.prototype._isHidden.call(this,e,t,n)};IT.prototype._setOptions=function(e,t,n){let i=q.getValueOrDefault(t.heightReference,n,je.NONE),r=this._options;r.dimensions=q.getValueOrUndefined(t.dimensions,n,r.dimensions),r.offsetAttribute=i!==je.NONE?nn.ALL:void 0};var PP=iu;var Fte=Yi(Nte(),1);var xMe=0,C5={};function xp(e,t){let n,i=e;u(C5[i])?n=C5[i]:(n=xMe++,C5[i]=n),t=y(t,!1),this._id=n,this._html=e,this._showOnScreen=t,this._element=void 0}Object.defineProperties(xp.prototype,{html:{get:function(){return this._html}},id:{get:function(){return this._id}},showOnScreen:{get:function(){return this._showOnScreen},set:function(e){this._showOnScreen=e}},element:{get:function(){if(!u(this._element)){let e=Fte.default.sanitize(this._html),t=document.createElement("div");t._creditId=this._id,t.style.display="inline",t.innerHTML=e;let n=t.querySelectorAll("a");for(let i=0;i<n.length;i++)n[i].setAttribute("target","_blank");this._element=t}return this._element}}});xp.equals=function(e,t){return e===t||u(e)&&u(t)&&e._id===t._id&&e._showOnScreen===t._showOnScreen};xp.prototype.equals=function(e){return xp.equals(this,e)};xp.getIonCredit=function(e){let t=u(e.collapsible)&&!e.collapsible,n=new xp(e.html,t);return n._isIon=n.html.indexOf("ion-credit.png")!==-1,n};xp.clone=function(e){if(u(e))return new xp(e.html,e.showOnScreen)};var wt=xp;var MP=`in vec2 v_textureCoordinates; + +uniform float originalSize; +uniform sampler2D texture0; +uniform sampler2D texture1; +uniform sampler2D texture2; +uniform sampler2D texture3; +uniform sampler2D texture4; +uniform sampler2D texture5; + +const float yMipLevel1 = 1.0 - (1.0 / pow(2.0, 1.0)); +const float yMipLevel2 = 1.0 - (1.0 / pow(2.0, 2.0)); +const float yMipLevel3 = 1.0 - (1.0 / pow(2.0, 3.0)); +const float yMipLevel4 = 1.0 - (1.0 / pow(2.0, 4.0)); + +void main() +{ + vec2 uv = v_textureCoordinates; + vec2 textureSize = vec2(originalSize * 1.5 + 2.0, originalSize); + vec2 pixel = 1.0 / textureSize; + + float mipLevel = 0.0; + + if (uv.x - pixel.x > (textureSize.y / textureSize.x)) + { + mipLevel = 1.0; + if (uv.y - pixel.y > yMipLevel1) + { + mipLevel = 2.0; + if (uv.y - pixel.y * 3.0 > yMipLevel2) + { + mipLevel = 3.0; + if (uv.y - pixel.y * 5.0 > yMipLevel3) + { + mipLevel = 4.0; + if (uv.y - pixel.y * 7.0 > yMipLevel4) + { + mipLevel = 5.0; + } + } + } + } + } + + if (mipLevel > 0.0) + { + float scale = pow(2.0, mipLevel); + + uv.y -= (pixel.y * (mipLevel - 1.0) * 2.0); + uv.x *= ((textureSize.x - 2.0) / textureSize.y); + + uv.x -= 1.0 + pixel.x; + uv.y -= (1.0 - (1.0 / pow(2.0, mipLevel - 1.0))); + uv *= scale; + } + else + { + uv.x *= (textureSize.x / textureSize.y); + } + + if(mipLevel == 0.0) + { + out_FragColor = texture(texture0, uv); + } + else if(mipLevel == 1.0) + { + out_FragColor = texture(texture1, uv); + } + else if(mipLevel == 2.0) + { + out_FragColor = texture(texture2, uv); + } + else if(mipLevel == 3.0) + { + out_FragColor = texture(texture3, uv); + } + else if(mipLevel == 4.0) + { + out_FragColor = texture(texture4, uv); + } + else if(mipLevel == 5.0) + { + out_FragColor = texture(texture5, uv); + } + else + { + out_FragColor = vec4(0.0); + } +} +`;var RP=`in vec3 v_cubeMapCoordinates; +uniform samplerCube cubeMap; + +void main() +{ + vec4 rgba = czm_textureCube(cubeMap, v_cubeMapCoordinates); + #ifdef RGBA_NORMALIZED + out_FragColor = vec4(rgba.rgb, 1.0); + #else + float m = rgba.a * 16.0; + vec3 r = rgba.rgb * m; + out_FragColor = vec4(r * r, 1.0); + #endif +} +`;var BP=`in vec4 position; +in vec3 cubeMapCoordinates; + +out vec3 v_cubeMapCoordinates; + +void main() +{ + gl_Position = position; + v_cubeMapCoordinates = cubeMapCoordinates; +} +`;function mA(e){this._url=e,this._cubeMapBuffers=void 0,this._cubeMaps=void 0,this._texture=void 0,this._mipTextures=void 0,this._va=void 0,this._sp=void 0,this._maximumMipmapLevel=void 0,this._loading=!1,this._ready=!1,this._errorEvent=new ge}Object.defineProperties(mA.prototype,{url:{get:function(){return this._url}},errorEvent:{get:function(){return this._errorEvent}},texture:{get:function(){return this._texture}},maximumMipmapLevel:{get:function(){return this._maximumMipmapLevel}},ready:{get:function(){return this._ready}}});mA.isSupported=function(e){return e.colorBufferHalfFloat&&e.halfFloatingPointTexture||e.floatingPointTexture&&e.colorBufferFloat};var CMe=new h(1,0,0),TMe=new h(0,0,1),EMe=new h(-1,0,0),bMe=new h(0,0,-1),CU=new h(0,1,0),SMe=new h(0,-1,0),kte=[CU,EMe,TMe,SMe,CMe,CU,bMe,CU,CU],zte=kte.length,Hte=new Float32Array(zte*3),Ute=0;for(let e=0;e<zte;++e,Ute+=3)h.pack(kte[e],Hte,Ute);var vMe=new Float32Array([-1,1,-1,0,0,1,0,0,1,0,1,1,0,-1,-1,-1,1,-1]),wMe=new Uint16Array([0,1,2,2,3,1,7,6,1,3,6,1,2,5,4,3,4,2,4,8,6,3,4,6]);function DMe(e){let t=ht.createVertexBuffer({context:e,typedArray:vMe,usage:Fe.STATIC_DRAW}),n=ht.createVertexBuffer({context:e,typedArray:Hte,usage:Fe.STATIC_DRAW}),i=ht.createIndexBuffer({context:e,typedArray:wMe,usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT}),r=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT},{index:1,vertexBuffer:n,componentsPerAttribute:3,componentDatatype:X.FLOAT}];return new oi({context:e,attributes:r,indexBuffer:i})}function Vte(e){return function(){return e}}function T5(e){e._va=e._va&&e._va.destroy(),e._sp=e._sp&&e._sp.destroy();let t,n,i=e._cubeMaps;if(u(i))for(n=i.length,t=0;t<n;++t)i[t].destroy();let r=e._mipTextures;if(u(r))for(n=r.length,t=0;t<n;++t)r[t].destroy();e._va=void 0,e._sp=void 0,e._cubeMaps=void 0,e._cubeMapBuffers=void 0,e._mipTextures=void 0}mA.prototype.update=function(e){let t=e.context;if(!mA.isSupported(t)||(u(this._texture)&&u(this._va)&&T5(this),u(this._texture)))return;if(!u(this._texture)&&!this._loading){let g=e.context.textureCache.getTexture(this._url);u(g)&&(T5(this),this._texture=g,this._maximumMipmapLevel=this._texture.maximumMipmapLevel,this._ready=!0)}let n=this._cubeMapBuffers;if(!u(n)&&!this._loading){let g=this;cl(this._url).then(function(m){g._cubeMapBuffers=m,g._loading=!1}).catch(function(m){g.isDestroyed()||g._errorEvent.raiseEvent(m)}),this._loading=!0}if(!u(this._cubeMapBuffers))return;let i=[],r=n[0].positiveX.pixelDatatype;u(r)?i.push("RGBA_NORMALIZED"):r=t.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT;let o=at.RGBA,s=new ke({defines:i,sources:[RP]});this._va=DMe(t),this._sp=Xt.fromCache({context:t,vertexShaderSource:BP,fragmentShaderSource:s,attributeLocations:{position:0,cubeMapCoordinates:1}});let a=Math.min(n.length,6);this._maximumMipmapLevel=a-1;let c=this._cubeMaps=new Array(a),l=this._mipTextures=new Array(a),f=n[0].positiveX.width*2,d={originalSize:function(){return f}};for(let g=0;g<a;++g){let m=n[g].positiveY;n[g].positiveY=n[g].negativeY,n[g].negativeY=m;let A=c[g]=new za({context:t,source:n[g],pixelDatatype:r}),x=c[g].width*2,C=l[g]=new Rt({context:t,width:x,height:x,pixelDatatype:r,pixelFormat:o}),T=new Yu({vertexArray:this._va,shaderProgram:this._sp,uniformMap:{cubeMap:Vte(A)},outputTexture:C,persists:!0,owner:this});e.commandList.push(T),d[`texture${g}`]=Vte(C)}this._texture=new Rt({context:t,width:f*1.5+2,height:f,pixelDatatype:r,pixelFormat:o}),this._texture.maximumMipmapLevel=this._maximumMipmapLevel,t.textureCache.addTexture(this._url,this._texture);let p=new Yu({fragmentShaderSource:MP,uniformMap:d,outputTexture:this._texture,persists:!1,owner:this});e.commandList.push(p),this._ready=!0};mA.prototype.isDestroyed=function(){return!1};mA.prototype.destroy=function(){return T5(this),this._texture=this._texture&&this._texture.destroy(),ue(this)};var xd=mA;function LP(e){e=y(e,y.EMPTY_OBJECT);let t=u(e.imageBasedLightingFactor)?H.clone(e.imageBasedLightingFactor):new H(1,1);this._imageBasedLightingFactor=t;let n=y(e.luminanceAtZenith,.2);this._luminanceAtZenith=n;let i=e.sphericalHarmonicCoefficients;this._sphericalHarmonicCoefficients=i,this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapAtlas=void 0,this._specularEnvironmentMapAtlasDirty=!0,this._specularEnvironmentMapLoaded=!1,this._previousSpecularEnvironmentMapLoaded=!1,this._useDefaultSpecularMaps=!1,this._useDefaultSphericalHarmonics=!1,this._shouldRegenerateShaders=!1,this._previousFrameNumber=void 0,this._previousImageBasedLightingFactor=H.clone(t),this._previousLuminanceAtZenith=n,this._previousSphericalHarmonicCoefficients=i,this._removeErrorListener=void 0}Object.defineProperties(LP.prototype,{imageBasedLightingFactor:{get:function(){return this._imageBasedLightingFactor},set:function(e){this._previousImageBasedLightingFactor=H.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor),this._imageBasedLightingFactor=H.clone(e,this._imageBasedLightingFactor)}},luminanceAtZenith:{get:function(){return this._luminanceAtZenith},set:function(e){this._previousLuminanceAtZenith=this._luminanceAtZenith,this._luminanceAtZenith=e}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients},set:function(e){this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients,this._sphericalHarmonicCoefficients=e}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps},set:function(e){e!==this._specularEnvironmentMaps&&(this._specularEnvironmentMapAtlasDirty=this._specularEnvironmentMapAtlasDirty||e!==this._specularEnvironmentMaps,this._specularEnvironmentMapLoaded=!1),this._specularEnvironmentMaps=e}},enabled:{get:function(){return this._imageBasedLightingFactor.x>0||this._imageBasedLightingFactor.y>0}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},useDefaultSphericalHarmonics:{get:function(){return this._useDefaultSphericalHarmonics}},useSphericalHarmonicCoefficients:{get:function(){return u(this._sphericalHarmonicCoefficients)||this._useDefaultSphericalHarmonics}},specularEnvironmentMapAtlas:{get:function(){return this._specularEnvironmentMapAtlas}},useDefaultSpecularMaps:{get:function(){return this._useDefaultSpecularMaps}},useSpecularEnvironmentMaps:{get:function(){return u(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready||this._useDefaultSpecularMaps}}});function IMe(e,t){if(xd.isSupported(t)){if(e._specularEnvironmentMapAtlas=e._specularEnvironmentMapAtlas&&e._specularEnvironmentMapAtlas.destroy(),u(e._specularEnvironmentMaps)){let n=new xd(e._specularEnvironmentMaps);e._specularEnvironmentMapAtlas=n,e._removeErrorListener=n.errorEvent.addEventListener(i=>{console.error(`Error loading specularEnvironmentMaps: ${i}`)})}e._shouldRegenerateShaders=!0}}LP.prototype.update=function(e){if(e.frameNumber===this._previousFrameNumber)return;this._previousFrameNumber=e.frameNumber;let t=e.context;e.brdfLutGenerator.update(e),this._shouldRegenerateShaders=!1;let n=this._imageBasedLightingFactor,i=this._previousImageBasedLightingFactor;H.equals(n,i)||(this._shouldRegenerateShaders=n.x>0&&i.x===0||n.x===0&&i.x>0,this._shouldRegenerateShaders=this._shouldRegenerateShaders||n.y>0&&i.y===0||n.y===0&&i.y>0,this._previousImageBasedLightingFactor=H.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor)),this._luminanceAtZenith!==this._previousLuminanceAtZenith&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||u(this._luminanceAtZenith)!==u(this._previousLuminanceAtZenith),this._previousLuminanceAtZenith=this._luminanceAtZenith),this._previousSphericalHarmonicCoefficients!==this._sphericalHarmonicCoefficients&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||u(this._previousSphericalHarmonicCoefficients)!==u(this._sphericalHarmonicCoefficients),this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients),this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._previousSpecularEnvironmentMapLoaded!==this._specularEnvironmentMapLoaded,this._previousSpecularEnvironmentMapLoaded=this._specularEnvironmentMapLoaded,this._specularEnvironmentMapAtlasDirty&&(IMe(this,t),this._specularEnvironmentMapAtlasDirty=!1),u(this._specularEnvironmentMapAtlas)&&(this._specularEnvironmentMapAtlas.update(e),this._specularEnvironmentMapAtlas.ready&&(this._specularEnvironmentMapLoaded=!0));let r=!u(this._specularEnvironmentMapAtlas)&&u(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,o=!u(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,s=!u(this._sphericalHarmonicCoefficients)&&u(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,a=!u(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||r||o||s||a,this._useDefaultSpecularMaps=!u(this._specularEnvironmentMapAtlas)&&u(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!u(this._sphericalHarmonicCoefficients)&&u(e.sphericalHarmonicCoefficients)};LP.prototype.isDestroyed=function(){return!1};LP.prototype.destroy=function(){return this._specularEnvironmentMapAtlas=this._specularEnvironmentMapAtlas&&this._specularEnvironmentMapAtlas.destroy(),this._removeErrorListener=this._removeErrorListener&&this._removeErrorListener(),ue(this)};var pA=LP;var b5=Yi(Yl(),1);var E5,Gte="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIwZWQ3OWFlZC1kOTg3LTRlZjctYTAyYy0xNjFmODE1MWE2NGUiLCJpZCI6MjU5LCJpYXQiOjE2ODI5NDYzODh9.DEH4GpqliH-xsDE7h-ZCICtHgnGu32wdSjt4hFqw7lU",TU={};TU.defaultAccessToken=Gte;TU.defaultServer=new ve({url:"https://api.cesium.com/"});TU.getDefaultTokenCredit=function(e){if(e===Gte){if(!u(E5)){let t=`<b> This application is using Cesium's default ion access token. Please assign <i>Cesium.Ion.defaultAccessToken</i> with an access token from your ion account before making any Cesium API calls. You can sign up for a free ion account at <a href="https://cesium.com">https://cesium.com</a>.</b>`;E5=new wt(t,!0)}return E5}};var Cd=TU;function Nc(e,t){let n,i=e.externalType,r=u(i);if(!r)n={url:e.url,retryAttempts:1,retryCallback:PMe};else if(i==="3DTILES"||i==="STK_TERRAIN_SERVER")n={url:e.options.url};else throw new de("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");ve.call(this,n),this._ionEndpoint=e,this._ionEndpointDomain=r?void 0:new b5.default(e.url).authority(),this._ionEndpointResource=t,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=r}u(Object.create)&&(Nc.prototype=Object.create(ve.prototype),Nc.prototype.constructor=Nc);Nc.fromAssetId=function(e,t){let n=Nc._createEndpointResource(e,t);return n.fetchJson().then(function(i){return new Nc(i,n)})};Object.defineProperties(Nc.prototype,{credits:{get:function(){return u(this._ionRoot)?this._ionRoot.credits:u(this._credits)?this._credits:(this._credits=Nc.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}});Nc.getCreditsFromEndpoint=function(e,t){let n=e.attributions.map(wt.getIonCredit),i=Cd.getDefaultTokenCredit(t.queryParameters.access_token);return u(i)&&n.push(wt.clone(i)),n};Nc.prototype.clone=function(e){let t=y(this._ionRoot,this);return u(e)||(e=new Nc(t._ionEndpoint,t._ionEndpointResource)),e=ve.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e};Nc.prototype.fetchImage=function(e){if(!this._isExternal){let t=e;e={preferBlob:!0},u(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return ve.prototype.fetchImage.call(this,e)};Nc.prototype._makeRequest=function(e){return this._isExternal||new b5.default(this.url).authority()!==this._ionEndpointDomain?ve.prototype._makeRequest.call(this,e):(u(e.headers)||(e.headers={}),e.headers.Authorization=`Bearer ${this._ionEndpoint.accessToken}`,e.headers["X-Cesium-Client"]="CesiumJS",typeof CESIUM_VERSION<"u"&&(e.headers["X-Cesium-Client-Version"]=CESIUM_VERSION),ve.prototype._makeRequest.call(this,e))};Nc._createEndpointResource=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.server,Cd.defaultServer),i=y(t.accessToken,Cd.defaultAccessToken);n=ve.createIfNeeded(n);let r={url:`v1/assets/${e}/endpoint`};return u(i)&&(r.queryParameters={access_token:i}),n.getDerivedResource(r)};function PMe(e,t){let n=y(e._ionRoot,e),i=n._ionEndpointResource,r=typeof Image<"u";return!u(t)||t.statusCode!==401&&!(r&&t.target instanceof Image)?Promise.resolve(!1):(u(n._pendingPromise)||(n._pendingPromise=i.fetchJson().then(function(o){return n._ionEndpoint=o,o}).finally(function(o){return n._pendingPromise=void 0,o})),n._pendingPromise.then(function(o){return e._ionEndpoint=o,!0}))}var Xs=Nc;function Wh(e){e=y(e,0),this._array=new Array(e),this._length=e}Object.defineProperties(Wh.prototype,{length:{get:function(){return this._length},set:function(e){let t=this._array,n=this._length;if(e<n)for(let i=e;i<n;++i)t[i]=void 0;else e>t.length&&(t.length=e);this._length=e}},values:{get:function(){return this._array}}});Wh.prototype.get=function(e){return this._array[e]};Wh.prototype.set=function(e,t){e>=this._length&&(this.length=e+1),this._array[e]=t};Wh.prototype.peek=function(){return this._array[this._length-1]};Wh.prototype.push=function(e){let t=this.length++;this._array[t]=e};Wh.prototype.pop=function(){if(this._length===0)return;let e=this._array[this._length-1];return--this.length,e};Wh.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)};Wh.prototype.resize=function(e){this.length=e};Wh.prototype.trim=function(e){e=y(e,this._length),this._array.length=e};var Fc=Wh;var Cp={X:0,Y:1,Z:2};Cp.Y_UP_TO_Z_UP=N.fromRotationTranslation(Q.fromRotationX(P.PI_OVER_TWO));Cp.Z_UP_TO_Y_UP=N.fromRotationTranslation(Q.fromRotationX(-P.PI_OVER_TWO));Cp.X_UP_TO_Z_UP=N.fromRotationTranslation(Q.fromRotationY(-P.PI_OVER_TWO));Cp.Z_UP_TO_X_UP=N.fromRotationTranslation(Q.fromRotationY(P.PI_OVER_TWO));Cp.X_UP_TO_Y_UP=N.fromRotationTranslation(Q.fromRotationZ(P.PI_OVER_TWO));Cp.Y_UP_TO_X_UP=N.fromRotationTranslation(Q.fromRotationZ(-P.PI_OVER_TWO));Cp.fromName=function(e){return Cp[e]};var dr=Object.freeze(Cp);function Wte(e){e=y(e,y.EMPTY_OBJECT),this._metadata=e.metadata}Object.defineProperties(Wte.prototype,{metadata:{get:function(){return this._metadata}}});var _A=Wte;function yg(e,t,n){return t=y(t,0),n=y(n,e.byteLength-t),e=e.subarray(t,t+n),yg.decode(e)}yg.decodeWithTextDecoder=function(e){return new TextDecoder("utf-8").decode(e)};yg.decodeWithFromCharCode=function(e){let t="",n=OMe(e),i=n.length;for(let r=0;r<i;++r){let o=n[r];o<=65535?t+=String.fromCharCode(o):(o-=65536,t+=String.fromCharCode((o>>10)+55296,(o&1023)+56320))}return t};function NP(e,t,n){return t<=e&&e<=n}function OMe(e){let t=0,n=0,i=0,r=128,o=191,s=[],a=e.length;for(let c=0;c<a;++c){let l=e[c];if(i===0){if(NP(l,0,127)){s.push(l);continue}if(NP(l,194,223)){i=1,t=l&31;continue}if(NP(l,224,239)){l===224&&(r=160),l===237&&(o=159),i=2,t=l&15;continue}if(NP(l,240,244)){l===240&&(r=144),l===244&&(o=143),i=3,t=l&7;continue}throw new de("String decoding failed.")}if(!NP(l,r,o)){t=i=n=0,r=128,o=191,--c;continue}r=128,o=191,t=t<<6|l&63,++n,n===i&&(s.push(t),t=i=n=0)}return s}typeof TextDecoder<"u"?yg.decode=yg.decodeWithTextDecoder:yg.decode=yg.decodeWithFromCharCode;var _l=yg;function MMe(e,t){return t=y(t,0),_l(e,t,Math.min(4,e.length))}var Td=MMe;function Ed(e,t,n,i){this._tileset=e,this._tile=t,this._resource=n,u(i)||(i=[]),this._contents=i,this._metadata=void 0,this._group=void 0,this._ready=!1,this._resolveContent=void 0,this._readyPromise=new Promise(r=>{this._resolveContent=r})}Object.defineProperties(Ed.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)if(e[n].featurePropertiesDirty)return!0;return!1},set:function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Composite3DTileContent.readyPromise","Composite3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Composite3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e;let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].metadata=e}},batchTable:{get:function(){}},group:{get:function(){return this._group},set:function(e){this._group=e;let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].group=e}}});var FP=Uint32Array.BYTES_PER_ELEMENT;Ed.fromTileType=async function(e,t,n,i,r,o){r=y(r,0);let s=new Uint8Array(i),a=new DataView(i);r+=FP;let c=a.getUint32(r,!0);if(c!==1)throw new de(`Only Composite Tile version 1 is supported. Version ${c} is not.`);r+=FP,r+=FP;let l=a.getUint32(r,!0);r+=FP;let f=n.queryParameters.compositeIndex;u(f)?f=`${f}_`:f="";let d=[];d.length=l;for(let m=0;m<l;++m){let A=Td(s,r),x=a.getUint32(r+FP*2,!0),C=o[A],T=`${f}${m}`,E=n.getDerivedResource({queryParameters:{compositeIndex:T}});if(u(C))d[m]=Promise.resolve(C(e,t,E,i,r));else throw new de(`Unknown tile content type, ${A}, inside Composite tile`);r+=x}let p=await Promise.all(d);return new Ed(e,t,n,p)};Ed.prototype.hasProperty=function(e,t){return!1};Ed.prototype.getFeature=function(e){};Ed.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let r=0;r<i;++r)n[r].applyDebugSettings(e,t)};Ed.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};Ed.prototype.update=function(e,t){let n=this._contents,i=n.length,r=!0;for(let o=0;o<i;++o)n[o].update(e,t),r=r&&n[o].ready;!this._ready&&r&&(this._ready=!0,this._resolveContent(this))};Ed.prototype.isDestroyed=function(){return!1};Ed.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var UP=Ed;function RMe(e,t,n){return JSON.parse(_l(e,t,n))}var Mr=RMe;function Ya(e){this._id=Wn();let t=e.featuresLength;this._showAlphaProperties=void 0,this._batchValues=void 0,this._batchValuesDirty=!1,this._batchTexture=void 0,this._defaultTexture=void 0,this._pickTexture=void 0,this._pickIds=[];let n,i;if(t>0){let r=Math.min(t,zt.maximumTextureSize),o=Math.ceil(t/zt.maximumTextureSize),s=1/r,a=s*.5,c=1/o,l=c*.5;n=new H(r,o),i=new se(s,a,c,l)}this._translucentFeaturesLength=0,this._featuresLength=t,this._textureDimensions=n,this._textureStep=i,this._owner=e.owner,this._statistics=e.statistics,this._colorChangedCallback=e.colorChangedCallback}Object.defineProperties(Ya.prototype,{translucentFeaturesLength:{get:function(){return this._translucentFeaturesLength}},byteLength:{get:function(){let e=0;return u(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),u(this._batchTexture)&&(e+=this._batchTexture.sizeInBytes),e}},textureDimensions:{get:function(){return this._textureDimensions}},textureStep:{get:function(){return this._textureStep}},batchTexture:{get:function(){return this._batchTexture}},defaultTexture:{get:function(){return this._defaultTexture}},pickTexture:{get:function(){return this._pickTexture}}});Ya.DEFAULT_COLOR_VALUE=z.WHITE;Ya.DEFAULT_SHOW_VALUE=!0;function jte(e){let t=e._textureDimensions;return t.x*t.y*4}function qte(e){if(!u(e._batchValues)){let t=jte(e),n=new Uint8Array(t).fill(255);e._batchValues=n}return e._batchValues}function Yte(e){if(!u(e._showAlphaProperties)){let t=2*e._featuresLength,n=new Uint8Array(t).fill(255);e._showAlphaProperties=n}return e._showAlphaProperties}Ya.prototype.setShow=function(e,t){if(t&&!u(this._showAlphaProperties))return;let n=Yte(this),i=e*2,r=t?255:0;if(n[i]!==r){n[i]=r;let o=qte(this),s=e*4+3;o[s]=t?n[i+1]:0,this._batchValuesDirty=!0}};Ya.prototype.setAllShow=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setShow(n,e)};Ya.prototype.getShow=function(e){if(!u(this._showAlphaProperties))return!0;let t=e*2;return this._showAlphaProperties[t]===255};var BMe=new Array(4);Ya.prototype.setColor=function(e,t){if(z.equals(t,Ya.DEFAULT_COLOR_VALUE)&&!u(this._batchValues))return;let n=t.toBytes(BMe),i=n[3],r=qte(this),o=e*4,s=Yte(this),a=e*2;if(r[o]!==n[0]||r[o+1]!==n[1]||r[o+2]!==n[2]||s[a+1]!==i){r[o]=n[0],r[o+1]=n[1],r[o+2]=n[2];let c=s[a+1]!==255,l=s[a]!==0;r[o+3]=l?i:0,s[a+1]=i;let f=i!==255;f&&!c?++this._translucentFeaturesLength:!f&&c&&--this._translucentFeaturesLength,this._batchValuesDirty=!0,u(this._colorChangedCallback)&&this._colorChangedCallback(e,t)}};Ya.prototype.setAllColor=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setColor(n,e)};Ya.prototype.getColor=function(e,t){if(!u(this._batchValues))return z.clone(Ya.DEFAULT_COLOR_VALUE,t);let n=this._batchValues,i=e*4,r=this._showAlphaProperties,o=e*2;return z.fromBytes(n[i],n[i+1],n[i+2],r[o+1],t)};Ya.prototype.getPickColor=function(e){return this._pickIds[e]};function Xte(e,t,n){let i=e._textureDimensions;return new Rt({context:t,pixelFormat:at.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,source:{width:i.x,height:i.y,arrayBufferView:n},flipY:!1,sampler:ln.NEAREST})}function LMe(e,t){let n=e._featuresLength;if(!u(e._pickTexture)&&n>0){let i=e._pickIds,r=jte(e),o=new Uint8Array(r),s=e._owner,a=e._statistics;for(let c=0;c<n;++c){let l=t.createPickId(s.getFeature(c));i.push(l);let f=l.color,d=c*4;o[d]=z.floatToByte(f.red),o[d+1]=z.floatToByte(f.green),o[d+2]=z.floatToByte(f.blue),o[d+3]=z.floatToByte(f.alpha)}e._pickTexture=Xte(e,t,o),u(a)&&(a.batchTableByteLength+=e._pickTexture.sizeInBytes)}}function NMe(e){let t=e._textureDimensions;e._batchTexture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}Ya.prototype.update=function(e,t){let n=t.context;this._defaultTexture=n.defaultTexture;let i=t.passes;(i.pick||i.postProcess)&&LMe(this,n),this._batchValuesDirty&&(this._batchValuesDirty=!1,u(this._batchTexture)||(this._batchTexture=Xte(this,n,this._batchValues),u(this._statistics)&&(this._statistics.batchTableByteLength+=this._batchTexture.sizeInBytes)),NMe(this))};Ya.prototype.isDestroyed=function(){return!1};Ya.prototype.destroy=function(){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),this._pickTexture=this._pickTexture&&this._pickTexture.destroy();let e=this._pickIds,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var Uc=Ya;var FMe={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},UMe={SCALAR:void 0,VEC2:H,VEC3:h,VEC4:se,MAT2:er,MAT3:Q,MAT4:N};function VMe(e){let t=e.componentType,n;typeof t=="string"?n=X.fromName(t):n=t;let i=FMe[e.type],r=UMe[e.type];return{componentsPerAttribute:i,classType:r,createArrayBufferView:function(o,s,a){return X.createArrayBufferView(n,o,s,i*a)}}}var ou=VMe;function Tp(e){this._classes=void 0,this._classIds=void 0,this._classIndexes=void 0,this._parentCounts=void 0,this._parentIndexes=void 0,this._parentIds=void 0,this._byteLength=0,kMe(this,e.extension,e.binaryBody)}Object.defineProperties(Tp.prototype,{byteLength:{get:function(){return this._byteLength}}});function kMe(e,t,n){let i,r,o,s=t.instancesLength,a=t.classes,c=t.classIds,l=t.parentCounts,f=t.parentIds,d=s,p=0;u(c.byteOffset)&&(c.componentType=y(c.componentType,X.UNSIGNED_SHORT),c.type=on.SCALAR,o=ou(c),c=o.createArrayBufferView(n.buffer,n.byteOffset+c.byteOffset,s),p+=c.byteLength);let g;if(u(l)){for(u(l.byteOffset)&&(l.componentType=y(l.componentType,X.UNSIGNED_SHORT),l.type=on.SCALAR,o=ou(l),l=o.createArrayBufferView(n.buffer,n.byteOffset+l.byteOffset,s),p+=l.byteLength),g=new Uint16Array(s),d=0,i=0;i<s;++i)g[i]=d,d+=l[i];p+=g.byteLength}u(f)&&u(f.byteOffset)&&(f.componentType=y(f.componentType,X.UNSIGNED_SHORT),f.type=on.SCALAR,o=ou(f),f=o.createArrayBufferView(n.buffer,n.byteOffset+f.byteOffset,d),p+=f.byteLength);let m=a.length;for(i=0;i<m;++i){let C=a[i].length,T=a[i].instances,E=zMe(C,T,n);p+=HMe(E),a[i].instances=_t(E,T)}let A=new Array(m).fill(0),x=new Uint16Array(s);for(i=0;i<s;++i)r=c[i],x[i]=A[r],++A[r];p+=x.byteLength,e._classes=a,e._classIds=c,e._classIndexes=x,e._parentCounts=l,e._parentIndexes=g,e._parentIds=f,e._byteLength=p}function zMe(e,t,n){let i;for(let r in t)if(t.hasOwnProperty(r)){let o=t[r],s=o.byteOffset;if(u(s)){let a=o.componentType,c=o.type;if(!u(a))throw new de("componentType is required.");if(!u(c))throw new de("type is required.");if(!u(n))throw new de(`Property ${r} requires a batch table binary.`);let l=ou(o),f=l.componentsPerAttribute,d=l.classType,p=l.createArrayBufferView(n.buffer,n.byteOffset+s,e);u(i)||(i={}),i[r]={typedArray:p,componentCount:f,type:d}}}return i}function HMe(e){let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}var GMe=[],WMe=[],jMe=0;function qMe(e,t,n){let i=e._classIds,r=e._parentCounts,o=e._parentIds,s=e._parentIndexes,a=i.length,c=GMe;c.length=Math.max(c.length,a);let l=++jMe,f=WMe;for(f.length=0,f.push(t);f.length>0;){if(t=f.pop(),c[t]===l)continue;c[t]=l;let d=n(e,t);if(u(d))return d;let p=r[t],g=s[t];for(let m=0;m<p;++m){let A=o[g+m];A!==t&&f.push(A)}}}function YMe(e,t,n){let i=!0;for(;i;){let r=n(e,t);if(u(r))return r;let o=e._parentIds[t];i=o!==t,t=o}}function VP(e,t,n){let i=e._parentCounts,r=e._parentIds;if(u(r)){if(u(i))return qMe(e,t,n)}else return n(e,t);return YMe(e,t,n)}Tp.prototype.hasProperty=function(e,t){let n=VP(this,e,function(i,r){let o=i._classIds[r],s=i._classes[o].instances;if(u(s[t]))return!0});return u(n)};Tp.prototype.propertyExists=function(e){let t=this._classes,n=t.length;for(let i=0;i<n;++i){let r=t[i].instances;if(u(r[e]))return!0}return!1};Tp.prototype.getPropertyIds=function(e,t){return t=u(t)?t:[],t.length=0,VP(this,e,function(n,i){let r=n._classIds[i],o=n._classes[r].instances;for(let s in o)o.hasOwnProperty(s)&&t.indexOf(s)===-1&&t.push(s)}),t};Tp.prototype.getProperty=function(e,t){return VP(this,e,function(n,i){let r=n._classIds[i],o=n._classes[r],s=n._classIndexes[i],a=o.instances[t];if(u(a))return u(a.typedArray)?XMe(a,s):We(a[s],!0)})};function XMe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}Tp.prototype.setProperty=function(e,t,n){let i=VP(this,e,function(r,o){let s=r._classIds[o],a=r._classes[s],c=r._classIndexes[o],l=a.instances[t];if(u(l))return u(l.typedArray)?KMe(l,c,n):l[c]=We(n,!0),!0});return u(i)};function KMe(e,t,n){let i=e.typedArray,r=e.componentCount;r===1?i[t]=n:e.type.pack(n,i,t*r)}Tp.prototype.isClass=function(e,t){let n=VP(this,e,function(i,r){let o=i._classIds[r];if(i._classes[o].name===t)return!0});return u(n)};Tp.prototype.getClassName=function(e){let t=this._classIds[e];return this._classes[t].name};var gA=Tp;var JMe={HIGHLIGHT:0,REPLACE:1,MIX:2},gl=Object.freeze(JMe);var S5=Uc.DEFAULT_COLOR_VALUE,v5=Uc.DEFAULT_SHOW_VALUE;function hr(e,t,n,i,r){this.featuresLength=t;let o;u(n)&&(o=n.extensions),this._extensions=y(o,{});let s=ZMe(n);this._properties=s,this._batchTableHierarchy=QMe(this,n,i);let a=Jte(t,s,i);this._binaryPropertiesByteLength=$Me(a),this._batchTableBinaryProperties=a,this._content=e,this._batchTexture=new Uc({featuresLength:t,colorChangedCallback:r,owner:e,statistics:e.tileset.statistics})}hr._deprecationWarning=$;Object.defineProperties(hr.prototype,{batchTableByteLength:{get:function(){let e=this._binaryPropertiesByteLength;return u(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e+=this._batchTexture.byteLength,e}}});function ZMe(e){let t={};if(!u(e))return t;for(let n in e)e.hasOwnProperty(n)&&n!=="HIERARCHY"&&n!=="extensions"&&n!=="extras"&&(t[n]=We(e[n],!0));return t}function QMe(e,t,n){if(!u(t))return;let i=e._extensions["3DTILES_batch_table_hierarchy"],r=t.HIERARCHY;if(u(r)&&(hr._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),e._extensions["3DTILES_batch_table_hierarchy"]=r,i=r),!!u(i))return new gA({extension:i,binaryBody:n})}function Jte(e,t,n){let i;for(let r in t)if(t.hasOwnProperty(r)){let o=t[r],s=o.byteOffset;if(u(s)){let a=o.componentType,c=o.type;if(!u(a))throw new de("componentType is required.");if(!u(c))throw new de("type is required.");if(!u(n))throw new de(`Property ${r} requires a batch table binary.`);let l=ou(o),f=l.componentsPerAttribute,d=l.classType,p=l.createArrayBufferView(n.buffer,n.byteOffset+s,e);u(i)||(i={}),i[r]={typedArray:p,componentCount:f,type:d}}}return i}function $Me(e){if(!u(e))return 0;let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}hr.getBinaryProperties=function(e,t,n){return Jte(e,t,n)};hr.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};hr.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};hr.prototype.getShow=function(e){return this._batchTexture.getShow(e)};hr.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};hr.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};hr.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};hr.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};var eRe=new z;hr.prototype.applyStyle=function(e){if(!u(e)){this.setAllColor(S5),this.setAllShow(v5);return}let t=this._content,n=this.featuresLength;for(let i=0;i<n;++i){let r=t.getFeature(i),o=u(e.color)?y(e.color.evaluateColor(r,eRe),S5):S5,s=u(e.show)?y(e.show.evaluate(r),v5):v5;this.setColor(i,o),this.setShow(i,s)}};function tRe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}function nRe(e,t,n){let i=e.typedArray,r=e.componentCount;r===1?i[t]=n:e.type.pack(n,i,t*r)}hr.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return u(n)?n.isClass(e,t):!1};hr.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};hr.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(u(t))return t.getClassName(e)};hr.prototype.hasProperty=function(e,t){return u(this._properties[t])||u(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)};hr.prototype.hasPropertyBySemantic=function(){return!1};hr.prototype.getPropertyIds=function(e,t){t=u(t)?t:[],t.length=0;let n=Object.keys(this._properties);return t.push.apply(t,n),u(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,n)),t};hr.prototype.getPropertyBySemantic=function(e,t){};hr.prototype.getProperty=function(e,t){if(u(this._batchTableBinaryProperties)){let i=this._batchTableBinaryProperties[t];if(u(i))return tRe(i,e)}let n=this._properties[t];if(u(n))return We(n[e],!0);if(u(this._batchTableHierarchy)){let i=this._batchTableHierarchy.getProperty(e,t);if(u(i))return i}};hr.prototype.setProperty=function(e,t,n){let i=this.featuresLength;if(u(this._batchTableBinaryProperties)){let o=this._batchTableBinaryProperties[t];if(u(o)){nRe(o,e,n);return}}if(u(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n))return;let r=this._properties[t];u(r)||(this._properties[t]=new Array(i),r=this._properties[t]),r[e]=We(n,!0)};function iRe(e){return e._batchTexture.textureDimensions.y===1?`uniform vec4 tile_textureStep; +vec2 computeSt(float batchId) +{ + float stepX = tile_textureStep.x; + float centerX = tile_textureStep.y; + return vec2(centerX + (batchId * stepX), 0.5); +} +`:`uniform vec4 tile_textureStep; +uniform vec2 tile_textureDimensions; +vec2 computeSt(float batchId) +{ + float stepX = tile_textureStep.x; + float centerX = tile_textureStep.y; + float stepY = tile_textureStep.z; + float centerY = tile_textureStep.w; + float xId = mod(batchId, tile_textureDimensions.x); + float yId = floor(batchId / tile_textureDimensions.x); + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); +} +`}hr.prototype.getVertexShaderCallback=function(e,t,n){if(this.featuresLength===0)return;let i=this;return function(r){let o=Zte(r,n,!1),s;return zt.maximumVertexTextureImageUnits>0?(s="",e&&(s+=`uniform bool tile_translucentCommand; +`),s+=`uniform sampler2D tile_batchTexture; +out vec4 tile_featureColor; +out vec2 tile_featureSt; +void main() +{ + vec2 st = computeSt(${t}); + vec4 featureProperties = texture(tile_batchTexture, st); + tile_color(featureProperties); + float show = ceil(featureProperties.a); + gl_Position *= show; +`,e&&(s+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + gl_Position *= 0.0; + } + } + else + { + if (isStyleTranslucent) + { + gl_Position *= 0.0; + } + } +`),s+=` tile_featureColor = featureProperties; + tile_featureSt = st; +}`):s=`out vec2 tile_featureSt; +void main() +{ + tile_color(vec4(1.0)); + tile_featureSt = computeSt(${t}); +}`,`${o} +${iRe(i)}${s}`}};function Kte(e,t){return e=ke.replaceMain(e,"tile_main"),t?`${e}uniform float tile_colorBlend; +void tile_color(vec4 tile_featureColor) +{ + tile_main(); + tile_featureColor = czm_gammaCorrect(tile_featureColor); + out_FragColor.a *= tile_featureColor.a; + float highlight = ceil(tile_colorBlend); + out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); +} +`:`${e}void tile_color(vec4 tile_featureColor) +{ + tile_main(); +} +`}function rRe(e,t){let n=`texture(${t}`,i=0,r=e.indexOf(n,i),o;for(;r>-1;){let s=0;for(let l=r;l<e.length;++l){let f=e.charAt(l);if(f==="(")++s;else if(f===")"&&(--s,s===0)){o=l+1;break}}let c=`tile_diffuse_final(${e.slice(r,o)}, tile_diffuse)`;e=e.slice(0,r)+c+e.slice(o),i=r+c.length,r=e.indexOf(n,i)}return e}function Zte(e,t,n){if(!u(t))return Kte(e,n);let i=new RegExp(`(uniform|attribute|in)\\s+(vec[34]|sampler2D)\\s+${t};`),r=e.match(i);if(!u(r))return Kte(e,n);let o=r[0],s=r[2];e=ke.replaceMain(e,"tile_main"),e=e.replace(o,"");let a=`bool isWhite(vec3 color) +{ + return all(greaterThan(color, vec3(1.0 - czm_epsilon3))); +} +vec4 tile_diffuse_final(vec4 sourceDiffuse, vec4 tileDiffuse) +{ + vec4 blendDiffuse = mix(sourceDiffuse, tileDiffuse, tile_colorBlend); + vec4 diffuse = isWhite(tileDiffuse.rgb) ? sourceDiffuse : blendDiffuse; + return vec4(diffuse.rgb, sourceDiffuse.a); +} +`,c=` tile_featureColor = czm_gammaCorrect(tile_featureColor); + out_FragColor.a *= tile_featureColor.a; + float highlight = ceil(tile_colorBlend); + out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); +`,l;if(s==="vec3"||s==="vec4"){let f=s==="vec3"?`vec4(${t}, 1.0)`:t,d=s==="vec3"?"tile_diffuse.xyz":"tile_diffuse";i=new RegExp(t,"g"),e=e.replace(i,d),l=` vec4 source = ${f}; + tile_diffuse = tile_diffuse_final(source, tile_featureColor); + tile_main(); +`}else s==="sampler2D"&&(e=rRe(e,t),l=` tile_diffuse = tile_featureColor; + tile_main(); +`);return e=`uniform float tile_colorBlend; +vec4 tile_diffuse = vec4(1.0); +${a}${o} +${e} +void tile_color(vec4 tile_featureColor) +{ +${l}`,n&&(e+=c),e+=`} +`,e}hr.prototype.getFragmentShaderCallback=function(e,t,n){if(this.featuresLength!==0)return function(i){return i=Zte(i,t,!0),zt.maximumVertexTextureImageUnits>0?(i+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_color(tile_featureColor); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+="}"):(e&&(i+=`uniform bool tile_translucentCommand; +`),i+=`uniform sampler2D tile_pickTexture; +uniform sampler2D tile_batchTexture; +in vec2 tile_featureSt; +void main() +{ + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } +`,e&&(i+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + discard; + } + } + else + { + if (isStyleTranslucent) + { + discard; + } + } +`),i+=` tile_color(featureProperties); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+=`} +`),i}};hr.prototype.getClassificationFragmentShaderCallback=function(){if(this.featuresLength!==0)return function(e){return e=ke.replaceMain(e,"tile_main"),zt.maximumVertexTextureImageUnits>0?e+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_main(); + out_FragColor = tile_featureColor; + out_FragColor.rgb *= out_FragColor.a; +}`:e+=`uniform sampler2D tile_batchTexture; +uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +void main() +{ + tile_main(); + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } + out_FragColor = featureProperties; + out_FragColor.rgb *= out_FragColor.a; +} +`,e}};function oRe(e){let t=e._content.tileset,n=t.colorBlendMode,i=t.colorBlendAmount;if(n===gl.HIGHLIGHT)return 0;if(n===gl.REPLACE)return 1;if(n===gl.MIX)return P.clamp(i,P.EPSILON4,1)}hr.prototype.getUniformMapCallback=function(){if(this.featuresLength===0)return;let e=this;return function(t){return _t(t,{tile_batchTexture:function(){return y(e._batchTexture.batchTexture,e._batchTexture.defaultTexture)},tile_textureDimensions:function(){return e._batchTexture.textureDimensions},tile_textureStep:function(){return e._batchTexture.textureStep},tile_colorBlend:function(){return oRe(e)},tile_pickTexture:function(){return e._batchTexture.pickTexture}})}};hr.prototype.getPickId=function(){return"texture(tile_pickTexture, tile_featureSt)"};var Ag={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};hr.prototype.addDerivedCommands=function(e,t){let n=e.commandList,i=n.length,r=this._content._tile,o=r._finalResolution,s=r.tileset,a=s.isSkippingLevelOfDetail&&s.hasMixedContent&&e.context.stencilBuffer,c=sRe(this);for(let l=t;l<i;++l){let f=n[l];if(f.pass===be.COMPUTE)continue;let d=f.derivedCommands.tileset;(!u(d)||f.dirty)&&(d={},f.derivedCommands.tileset=d,d.originalCommand=aRe(f),f.dirty=!1);let p=d.originalCommand;c!==Ag.ALL_OPAQUE&&f.pass!==be.TRANSLUCENT&&(u(d.translucent)||(d.translucent=cRe(p))),c!==Ag.ALL_TRANSLUCENT&&f.pass!==be.TRANSLUCENT&&(u(d.opaque)||(d.opaque=lRe(p)),a&&(o||(u(d.zback)||(d.zback=fRe(e.context,p)),s._backfaceCommands.push(d.zback)),(!u(d.stencil)||r._selectionDepth!==hRe(d.stencil))&&(f.renderState.depthMask?d.stencil=dRe(p,r._selectionDepth):d.stencil=d.opaque)));let g=a?d.stencil:d.opaque,m=d.translucent;f.pass!==be.TRANSLUCENT?(c===Ag.ALL_OPAQUE&&(n[l]=g),c===Ag.ALL_TRANSLUCENT&&(n[l]=m),c===Ag.OPAQUE_AND_TRANSLUCENT&&(n[l]=g,n.push(m))):n[l]=p}};function sRe(e){let t=e._batchTexture.translucentFeaturesLength;return t===0?Ag.ALL_OPAQUE:t===e.featuresLength?Ag.ALL_TRANSLUCENT:Ag.OPAQUE_AND_TRANSLUCENT}function aRe(e){let t=nt.shallowClone(e),n=t.pass===be.TRANSLUCENT;return t.uniformMap=u(t.uniformMap)?t.uniformMap:{},t.uniformMap.tile_translucentCommand=function(){return n},t}function cRe(e){let t=nt.shallowClone(e);return t.pass=be.TRANSLUCENT,t.renderState=mRe(e.renderState),t}function lRe(e){let t=nt.shallowClone(e);return t.renderState=pRe(e.renderState),t}function uRe(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"zBackfaceLogDepth");if(!u(n)){let i=t.fragmentShaderSource.clone();i.defines=u(i.defines)?i.defines.slice(0):[],i.defines.push("POLYGON_OFFSET"),i.sources.unshift(`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif +`),n=e.shaderCache.createDerivedShaderProgram(t,"zBackfaceLogDepth",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:i,attributeLocations:t._attributeLocations})}return n}function fRe(e,t){let n=nt.shallowClone(t),i=We(n.renderState,!0);i.cull.enabled=!0,i.cull.face=gi.FRONT,i.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i.polygonOffset={enabled:!0,factor:5,units:5},i.stencilTest=Ft.setCesium3DTileBit(),i.stencilMask=Ft.CESIUM_3D_TILE_MASK,n.renderState=Ve.fromCache(i),n.castShadows=!1,n.receiveShadows=!1,n.uniformMap=We(t.uniformMap);let r=new H(5,5);return n.uniformMap.u_polygonOffset=function(){return r},n.shaderProgram=uRe(e,t.shaderProgram),n}function dRe(e,t){let n=nt.shallowClone(e),i=We(n.renderState,!0);return i.stencilTest.enabled=!0,i.stencilTest.mask=Ft.SKIP_LOD_MASK,i.stencilTest.reference=Ft.CESIUM_3D_TILE_MASK|t<<Ft.SKIP_LOD_BIT_SHIFT,i.stencilTest.frontFunction=zn.GREATER_OR_EQUAL,i.stencilTest.frontOperation.zPass=mt.REPLACE,i.stencilTest.backFunction=zn.GREATER_OR_EQUAL,i.stencilTest.backOperation.zPass=mt.REPLACE,i.stencilMask=Ft.CESIUM_3D_TILE_MASK|Ft.SKIP_LOD_MASK,n.renderState=Ve.fromCache(i),n}function hRe(e){return(e.renderState.stencilTest.reference&Ft.SKIP_LOD_MASK)>>>Ft.SKIP_LOD_BIT_SHIFT}function mRe(e){let t=We(e,!0);return t.cull.enabled=!1,t.depthTest.enabled=!0,t.depthMask=!1,t.blending=un.ALPHA_BLEND,t.stencilTest=Ft.setCesium3DTileBit(),t.stencilMask=Ft.CESIUM_3D_TILE_MASK,Ve.fromCache(t)}function pRe(e){let t=We(e,!0);return t.stencilTest=Ft.setCesium3DTileBit(),t.stencilMask=Ft.CESIUM_3D_TILE_MASK,Ve.fromCache(t)}hr.prototype.update=function(e,t){this._batchTexture.update(e,t)};hr.prototype.isDestroyed=function(){return!1};hr.prototype.destroy=function(){return this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var Ep=hr;function _Re(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var jh=_Re;var OT=`in vec3 position; +in float a_batchId; + +uniform mat4 u_modifiedModelViewProjection; + +void main() +{ + gl_Position = czm_depthClamp(u_modifiedModelViewProjection * vec4(position, 1.0)); +} +`;function rf(e,t){this._content=e,this._batchId=t,this._color=void 0}Object.defineProperties(rf.prototype,{show:{get:function(){return this._content.batchTable.getShow(this._batchId)},set:function(e){this._content.batchTable.setShow(this._batchId,e)}},color:{get:function(){return u(this._color)||(this._color=new z),this._content.batchTable.getColor(this._batchId,this._color)},set:function(e){this._content.batchTable.setColor(this._batchId,e)}},polylinePositions:{get:function(){if(u(this._content.getPolylinePositions))return this._content.getPolylinePositions(this._batchId)}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},featureId:{get:function(){return this._batchId}},pickId:{get:function(){return this._content.batchTable.getPickColor(this._batchId)}}});rf.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};rf.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};rf.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};rf.getPropertyInherited=function(e,t,n){let i=e.batchTable;if(u(i)){if(i.hasPropertyBySemantic(t,n))return i.getPropertyBySemantic(t,n);if(i.hasProperty(t,n))return i.getProperty(t,n)}let r=e.metadata;if(u(r)){if(r.hasPropertyBySemantic(n))return r.getPropertyBySemantic(n);if(r.hasProperty(n))return r.getProperty(n)}let o=e.tile,s=o.metadata;if(u(s)){if(s.hasPropertyBySemantic(n))return s.getPropertyBySemantic(n);if(s.hasProperty(n))return s.getProperty(n)}let a;if(u(o.implicitSubtree)&&(a=o.implicitSubtree.metadata),u(a)){if(a.hasPropertyBySemantic(n))return a.getPropertyBySemantic(n);if(a.hasProperty(n))return a.getProperty(n)}let c=u(e.group)?e.group.metadata:void 0;if(u(c)){if(c.hasPropertyBySemantic(n))return c.getPropertyBySemantic(n);if(c.hasProperty(n))return c.getProperty(n)}let l=e.tileset.metadata;if(u(l)){if(l.hasPropertyBySemantic(n))return l.getPropertyBySemantic(n);if(l.hasProperty(n))return l.getProperty(n)}};rf.prototype.getPropertyInherited=function(e){return rf.getPropertyInherited(this._content,this._batchId,e)};rf.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};rf.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};rf.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};rf.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var ws=rf;var w5=class{add(t,n,i){if(typeof arguments[0]!="string")for(let r in arguments[0])this.add(r,arguments[0][r],arguments[1]);else(Array.isArray(t)?t:[t]).forEach(function(r){this[r]=this[r]||[],n&&this[r][i?"unshift":"push"](n)},this)}run(t,n){this[t]=this[t]||[],this[t].forEach(function(i){i.call(n&&n.context?n.context:n,n)})}},D5=class{constructor(t){this.jsep=t,this.registered={}}register(...t){t.forEach(n=>{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},He=class{static get version(){return"1.3.8"}static toString(){return"JavaScript Expression Parser (JSEP) v"+He.version}static addUnaryOp(t){return He.max_unop_len=Math.max(t.length,He.max_unop_len),He.unary_ops[t]=1,He}static addBinaryOp(t,n,i){return He.max_binop_len=Math.max(t.length,He.max_binop_len),He.binary_ops[t]=n,i?He.right_associative.add(t):He.right_associative.delete(t),He}static addIdentifierChar(t){return He.additional_identifier_chars.add(t),He}static addLiteral(t,n){return He.literals[t]=n,He}static removeUnaryOp(t){return delete He.unary_ops[t],t.length===He.max_unop_len&&(He.max_unop_len=He.getMaxKeyLen(He.unary_ops)),He}static removeAllUnaryOps(){return He.unary_ops={},He.max_unop_len=0,He}static removeIdentifierChar(t){return He.additional_identifier_chars.delete(t),He}static removeBinaryOp(t){return delete He.binary_ops[t],t.length===He.max_binop_len&&(He.max_binop_len=He.getMaxKeyLen(He.binary_ops)),He.right_associative.delete(t),He}static removeAllBinaryOps(){return He.binary_ops={},He.max_binop_len=0,He}static removeLiteral(t){return delete He.literals[t],He}static removeAllLiterals(){return He.literals={},He}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(t){this.expr=t,this.index=0}static parse(t){return new He(t).parse()}static getMaxKeyLen(t){return Math.max(0,...Object.keys(t).map(n=>n.length))}static isDecimalDigit(t){return t>=48&&t<=57}static binaryPrecedence(t){return He.binary_ops[t]||0}static isIdentifierStart(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!He.binary_ops[String.fromCharCode(t)]||He.additional_identifier_chars.has(String.fromCharCode(t))}static isIdentifierPart(t){return He.isIdentifierStart(t)||He.isDecimalDigit(t)}throwError(t){let n=new Error(t+" at character "+this.index);throw n.index=this.index,n.description=t,n}runHook(t,n){if(He.hooks[t]){let i={context:this,node:n};return He.hooks.run(t,i),i.node}return n}searchHook(t){if(He.hooks[t]){let n={context:this};return He.hooks[t].find(function(i){return i.call(n.context,n),n.node}),n.node}}gobbleSpaces(){let t=this.code;for(;t===He.SPACE_CODE||t===He.TAB_CODE||t===He.LF_CODE||t===He.CR_CODE;)t=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let t=this.gobbleExpressions(),n=t.length===1?t[0]:{type:He.COMPOUND,body:t};return this.runHook("after-all",n)}gobbleExpressions(t){let n=[],i,r;for(;this.index<this.expr.length;)if(i=this.code,i===He.SEMCOL_CODE||i===He.COMMA_CODE)this.index++;else if(r=this.gobbleExpression())n.push(r);else if(this.index<this.expr.length){if(i===t)break;this.throwError('Unexpected "'+this.char+'"')}return n}gobbleExpression(){let t=this.searchHook("gobble-expression")||this.gobbleBinaryExpression();return this.gobbleSpaces(),this.runHook("after-expression",t)}gobbleBinaryOp(){this.gobbleSpaces();let t=this.expr.substr(this.index,He.max_binop_len),n=t.length;for(;n>0;){if(He.binary_ops.hasOwnProperty(t)&&(!He.isIdentifierStart(this.code)||this.index+t.length<this.expr.length&&!He.isIdentifierPart(this.expr.charCodeAt(this.index+t.length))))return this.index+=n,t;t=t.substr(0,--n)}return!1}gobbleBinaryExpression(){let t,n,i,r,o,s,a,c,l;if(s=this.gobbleToken(),!s||(n=this.gobbleBinaryOp(),!n))return s;for(o={value:n,prec:He.binaryPrecedence(n),right_a:He.right_associative.has(n)},a=this.gobbleToken(),a||this.throwError("Expected expression after "+n),r=[s,o,a];n=this.gobbleBinaryOp();){if(i=He.binaryPrecedence(n),i===0){this.index-=n.length;break}o={value:n,prec:i,right_a:He.right_associative.has(n)},l=n;let f=d=>o.right_a&&d.right_a?i>d.prec:i<=d.prec;for(;r.length>2&&f(r[r.length-2]);)a=r.pop(),n=r.pop().value,s=r.pop(),t={type:He.BINARY_EXP,operator:n,left:s,right:a},r.push(t);t=this.gobbleToken(),t||this.throwError("Expected expression after "+l),r.push(o,t)}for(c=r.length-1,t=r[c];c>1;)t={type:He.BINARY_EXP,operator:r[c-1].value,left:r[c-2],right:t},c-=2;return t}gobbleToken(){let t,n,i,r;if(this.gobbleSpaces(),r=this.searchHook("gobble-token"),r)return this.runHook("after-token",r);if(t=this.code,He.isDecimalDigit(t)||t===He.PERIOD_CODE)return this.gobbleNumericLiteral();if(t===He.SQUOTE_CODE||t===He.DQUOTE_CODE)r=this.gobbleStringLiteral();else if(t===He.OBRACK_CODE)r=this.gobbleArray();else{for(n=this.expr.substr(this.index,He.max_unop_len),i=n.length;i>0;){if(He.unary_ops.hasOwnProperty(n)&&(!He.isIdentifierStart(this.code)||this.index+n.length<this.expr.length&&!He.isIdentifierPart(this.expr.charCodeAt(this.index+n.length)))){this.index+=i;let o=this.gobbleToken();return o||this.throwError("missing unaryOp argument"),this.runHook("after-token",{type:He.UNARY_EXP,operator:n,argument:o,prefix:!0})}n=n.substr(0,--i)}He.isIdentifierStart(t)?(r=this.gobbleIdentifier(),He.literals.hasOwnProperty(r.name)?r={type:He.LITERAL,value:He.literals[r.name],raw:r.name}:r.name===He.this_str&&(r={type:He.THIS_EXP})):t===He.OPAREN_CODE&&(r=this.gobbleGroup())}return r?(r=this.gobbleTokenProperty(r),this.runHook("after-token",r)):this.runHook("after-token",!1)}gobbleTokenProperty(t){this.gobbleSpaces();let n=this.code;for(;n===He.PERIOD_CODE||n===He.OBRACK_CODE||n===He.OPAREN_CODE||n===He.QUMARK_CODE;){let i;if(n===He.QUMARK_CODE){if(this.expr.charCodeAt(this.index+1)!==He.PERIOD_CODE)break;i=!0,this.index+=2,this.gobbleSpaces(),n=this.code}this.index++,n===He.OBRACK_CODE?(t={type:He.MEMBER_EXP,computed:!0,object:t,property:this.gobbleExpression()},this.gobbleSpaces(),n=this.code,n!==He.CBRACK_CODE&&this.throwError("Unclosed ["),this.index++):n===He.OPAREN_CODE?t={type:He.CALL_EXP,arguments:this.gobbleArguments(He.CPAREN_CODE),callee:t}:(n===He.PERIOD_CODE||i)&&(i&&this.index--,this.gobbleSpaces(),t={type:He.MEMBER_EXP,computed:!1,object:t,property:this.gobbleIdentifier()}),i&&(t.optional=!0),this.gobbleSpaces(),n=this.code}return t}gobbleNumericLiteral(){let t="",n,i;for(;He.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(this.code===He.PERIOD_CODE)for(t+=this.expr.charAt(this.index++);He.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(n=this.char,n==="e"||n==="E"){for(t+=this.expr.charAt(this.index++),n=this.char,(n==="+"||n==="-")&&(t+=this.expr.charAt(this.index++));He.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);He.isDecimalDigit(this.expr.charCodeAt(this.index-1))||this.throwError("Expected exponent ("+t+this.char+")")}return i=this.code,He.isIdentifierStart(i)?this.throwError("Variable names cannot start with a number ("+t+this.char+")"):(i===He.PERIOD_CODE||t.length===1&&t.charCodeAt(0)===He.PERIOD_CODE)&&this.throwError("Unexpected period"),{type:He.LITERAL,value:parseFloat(t),raw:t}}gobbleStringLiteral(){let t="",n=this.index,i=this.expr.charAt(this.index++),r=!1;for(;this.index<this.expr.length;){let o=this.expr.charAt(this.index++);if(o===i){r=!0;break}else if(o==="\\")switch(o=this.expr.charAt(this.index++),o){case"n":t+=` +`;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:t+=o}else t+=o}return r||this.throwError('Unclosed quote after "'+t+'"'),{type:He.LITERAL,value:t,raw:this.expr.substring(n,this.index)}}gobbleIdentifier(){let t=this.code,n=this.index;for(He.isIdentifierStart(t)?this.index++:this.throwError("Unexpected "+this.char);this.index<this.expr.length&&(t=this.code,He.isIdentifierPart(t));)this.index++;return{type:He.IDENTIFIER,name:this.expr.slice(n,this.index)}}gobbleArguments(t){let n=[],i=!1,r=0;for(;this.index<this.expr.length;){this.gobbleSpaces();let o=this.code;if(o===t){i=!0,this.index++,t===He.CPAREN_CODE&&r&&r>=n.length&&this.throwError("Unexpected token "+String.fromCharCode(t));break}else if(o===He.COMMA_CODE){if(this.index++,r++,r!==n.length){if(t===He.CPAREN_CODE)this.throwError("Unexpected token ,");else if(t===He.CBRACK_CODE)for(let s=n.length;s<r;s++)n.push(null)}}else if(n.length!==r&&r!==0)this.throwError("Expected comma");else{let s=this.gobbleExpression();(!s||s.type===He.COMPOUND)&&this.throwError("Expected comma"),n.push(s)}}return i||this.throwError("Expected "+String.fromCharCode(t)),n}gobbleGroup(){this.index++;let t=this.gobbleExpressions(He.CPAREN_CODE);if(this.code===He.CPAREN_CODE)return this.index++,t.length===1?t[0]:t.length?{type:He.SEQUENCE_EXP,expressions:t}:!1;this.throwError("Unclosed (")}gobbleArray(){return this.index++,{type:He.ARRAY_EXP,elements:this.gobbleArguments(He.CBRACK_CODE)}}},gRe=new w5;Object.assign(He,{hooks:gRe,plugins:new D5(He),COMPOUND:"Compound",SEQUENCE_EXP:"SequenceExpression",IDENTIFIER:"Identifier",MEMBER_EXP:"MemberExpression",LITERAL:"Literal",THIS_EXP:"ThisExpression",CALL_EXP:"CallExpression",UNARY_EXP:"UnaryExpression",BINARY_EXP:"BinaryExpression",ARRAY_EXP:"ArrayExpression",TAB_CODE:9,LF_CODE:10,CR_CODE:13,SPACE_CODE:32,PERIOD_CODE:46,COMMA_CODE:44,SQUOTE_CODE:39,DQUOTE_CODE:34,OPAREN_CODE:40,CPAREN_CODE:41,OBRACK_CODE:91,CBRACK_CODE:93,QUMARK_CODE:63,SEMCOL_CODE:59,COLON_CODE:58,unary_ops:{"-":1,"!":1,"~":1,"+":1},binary_ops:{"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},right_associative:new Set,additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});He.max_unop_len=He.getMaxKeyLen(He.unary_ops);He.max_binop_len=He.getMaxKeyLen(He.binary_ops);var xg=e=>new He(e).parse(),yRe=Object.getOwnPropertyNames(He);yRe.forEach(e=>{xg[e]===void 0&&e!=="prototype"&&(xg[e]=He[e])});xg.Jsep=He;var ARe="ConditionalExpression",xRe={name:"ternary",init(e){e.hooks.add("after-expression",function(n){if(n.node&&this.code===e.QUMARK_CODE){this.index++;let i=n.node,r=this.gobbleExpression();if(r||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===e.COLON_CODE){this.index++;let o=this.gobbleExpression();if(o||this.throwError("Expected expression"),n.node={type:ARe,test:i,consequent:r,alternate:o},i.operator&&e.binary_ops[i.operator]<=.9){let s=i;for(;s.right.operator&&e.binary_ops[s.right.operator]<=.9;)s=s.right;n.node.test=s.right,s.right=n.node,n.node=i}}else this.throwError("Expected :")}})}};xg.plugins.register(xRe);var CRe={VARIABLE:0,UNARY:1,BINARY:2,TERNARY:3,CONDITIONAL:4,MEMBER:5,FUNCTION_CALL:6,ARRAY:7,REGEX:8,VARIABLE_IN_STRING:9,LITERAL_NULL:10,LITERAL_BOOLEAN:11,LITERAL_NUMBER:12,LITERAL_STRING:13,LITERAL_COLOR:14,LITERAL_VECTOR:15,LITERAL_REGEX:16,LITERAL_UNDEFINED:17,BUILTIN_VARIABLE:18},gt=Object.freeze(CRe);function bd(e,t){this._expression=e,e=BRe(e,t),e=NRe(LRe(e)),xg.addBinaryOp("=~",0),xg.addBinaryOp("!~",0);let n;try{n=xg(e)}catch(i){throw new de(i)}this._runtimeAst=Ei(this,n)}Object.defineProperties(bd.prototype,{expression:{get:function(){return this._expression}}});var Mn={arrayIndex:0,arrayArray:[[]],cartesian2Index:0,cartesian3Index:0,cartesian4Index:0,cartesian2Array:[new H],cartesian3Array:[new h],cartesian4Array:[new se],reset:function(){this.arrayIndex=0,this.cartesian2Index=0,this.cartesian3Index=0,this.cartesian4Index=0},getArray:function(){this.arrayIndex>=this.arrayArray.length&&this.arrayArray.push([]);let e=this.arrayArray[this.arrayIndex++];return e.length=0,e},getCartesian2:function(){return this.cartesian2Index>=this.cartesian2Array.length&&this.cartesian2Array.push(new H),this.cartesian2Array[this.cartesian2Index++]},getCartesian3:function(){return this.cartesian3Index>=this.cartesian3Array.length&&this.cartesian3Array.push(new h),this.cartesian3Array[this.cartesian3Index++]},getCartesian4:function(){return this.cartesian4Index>=this.cartesian4Array.length&&this.cartesian4Array.push(new se),this.cartesian4Array[this.cartesian4Index++]}};bd.prototype.evaluate=function(e,t){Mn.reset();let n=this._runtimeAst.evaluate(e);return t instanceof z&&n instanceof se?z.fromCartesian4(n,t):n instanceof H||n instanceof h||n instanceof se?n.clone(t):n};bd.prototype.evaluateColor=function(e,t){Mn.reset();let n=this._runtimeAst.evaluate(e);return z.fromCartesian4(n,t)};bd.prototype.getShaderFunction=function(e,t,n,i){let r=this.getShaderExpression(t,n);return r=`${i} ${e} +{ + return ${r}; +} +`,r};bd.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};bd.prototype.getVariables=function(){let e=[];return this._runtimeAst.getVariables(e),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var TRe=["!","-","+"],Qte=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],SU=/\${(.*?)}/g,ERe=/\\/g,bRe="@#%",SRe=/@#%/g,vU=new z,wU={abs:Ds(Math.abs),sqrt:Ds(Math.sqrt),cos:Ds(Math.cos),sin:Ds(Math.sin),tan:Ds(Math.tan),acos:Ds(Math.acos),asin:Ds(Math.asin),atan:Ds(Math.atan),radians:Ds(P.toRadians),degrees:Ds(P.toDegrees),sign:Ds(P.sign),floor:Ds(Math.floor),ceil:Ds(Math.ceil),round:Ds(Math.round),exp:Ds(Math.exp),exp2:Ds(wRe),log:Ds(Math.log),log2:Ds(DRe),fract:Ds(vRe),length:IRe,normalize:PRe},DU={atan2:EU(Math.atan2,!1),pow:EU(Math.pow,!1),min:EU(Math.min,!0),max:EU(Math.max,!0),distance:ORe,dot:MRe,cross:RRe},O5={clamp:$te(P.clamp,!0),mix:$te(P.lerp,!0)};function vRe(e){return e-Math.floor(e)}function wRe(e){return Math.pow(2,e)}function DRe(e){return P.log2(e)}function Ds(e){return function(t,n){if(typeof n=="number")return e(n);if(n instanceof H)return H.fromElements(e(n.x),e(n.y),Mn.getCartesian2());if(n instanceof h)return h.fromElements(e(n.x),e(n.y),e(n.z),Mn.getCartesian3());if(n instanceof se)return se.fromElements(e(n.x),e(n.y),e(n.z),e(n.w),Mn.getCartesian4());throw new de(`Function "${t}" requires a vector or number argument. Argument is ${n}.`)}}function EU(e,t){return function(n,i,r){if(t&&typeof r=="number"){if(typeof i=="number")return e(i,r);if(i instanceof H)return H.fromElements(e(i.x,r),e(i.y,r),Mn.getCartesian2());if(i instanceof h)return h.fromElements(e(i.x,r),e(i.y,r),e(i.z,r),Mn.getCartesian3());if(i instanceof se)return se.fromElements(e(i.x,r),e(i.y,r),e(i.z,r),e(i.w,r),Mn.getCartesian4())}if(typeof i=="number"&&typeof r=="number")return e(i,r);if(i instanceof H&&r instanceof H)return H.fromElements(e(i.x,r.x),e(i.y,r.y),Mn.getCartesian2());if(i instanceof h&&r instanceof h)return h.fromElements(e(i.x,r.x),e(i.y,r.y),e(i.z,r.z),Mn.getCartesian3());if(i instanceof se&&r instanceof se)return se.fromElements(e(i.x,r.x),e(i.y,r.y),e(i.z,r.z),e(i.w,r.w),Mn.getCartesian4());throw new de(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i} and ${r}.`)}}function $te(e,t){return function(n,i,r,o){if(t&&typeof o=="number"){if(typeof i=="number"&&typeof r=="number")return e(i,r,o);if(i instanceof H&&r instanceof H)return H.fromElements(e(i.x,r.x,o),e(i.y,r.y,o),Mn.getCartesian2());if(i instanceof h&&r instanceof h)return h.fromElements(e(i.x,r.x,o),e(i.y,r.y,o),e(i.z,r.z,o),Mn.getCartesian3());if(i instanceof se&&r instanceof se)return se.fromElements(e(i.x,r.x,o),e(i.y,r.y,o),e(i.z,r.z,o),e(i.w,r.w,o),Mn.getCartesian4())}if(typeof i=="number"&&typeof r=="number"&&typeof o=="number")return e(i,r,o);if(i instanceof H&&r instanceof H&&o instanceof H)return H.fromElements(e(i.x,r.x,o.x),e(i.y,r.y,o.y),Mn.getCartesian2());if(i instanceof h&&r instanceof h&&o instanceof h)return h.fromElements(e(i.x,r.x,o.x),e(i.y,r.y,o.y),e(i.z,r.z,o.z),Mn.getCartesian3());if(i instanceof se&&r instanceof se&&o instanceof se)return se.fromElements(e(i.x,r.x,o.x),e(i.y,r.y,o.y),e(i.z,r.z,o.z),e(i.w,r.w,o.w),Mn.getCartesian4());throw new de(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i}, ${r}, and ${o}.`)}}function IRe(e,t){if(typeof t=="number")return Math.abs(t);if(t instanceof H)return H.magnitude(t);if(t instanceof h)return h.magnitude(t);if(t instanceof se)return se.magnitude(t);throw new de(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function PRe(e,t){if(typeof t=="number")return 1;if(t instanceof H)return H.normalize(t,Mn.getCartesian2());if(t instanceof h)return h.normalize(t,Mn.getCartesian3());if(t instanceof se)return se.normalize(t,Mn.getCartesian4());throw new de(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function ORe(e,t,n){if(typeof t=="number"&&typeof n=="number")return Math.abs(t-n);if(t instanceof H&&n instanceof H)return H.distance(t,n);if(t instanceof h&&n instanceof h)return h.distance(t,n);if(t instanceof se&&n instanceof se)return se.distance(t,n);throw new de(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function MRe(e,t,n){if(typeof t=="number"&&typeof n=="number")return t*n;if(t instanceof H&&n instanceof H)return H.dot(t,n);if(t instanceof h&&n instanceof h)return h.dot(t,n);if(t instanceof se&&n instanceof se)return se.dot(t,n);throw new de(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function RRe(e,t,n){if(t instanceof h&&n instanceof h)return h.cross(t,n,Mn.getCartesian3());throw new de(`Function "${e}" requires vec3 arguments. Arguments are ${t} and ${n}.`)}function At(e,t,n,i,r){this._type=e,this._value=t,this._left=n,this._right=i,this._test=r,this.evaluate=void 0,qRe(this)}function BRe(e,t){if(!u(t))return e;for(let n in t)if(t.hasOwnProperty(n)){let i=new RegExp(`\\$\\{${n}\\}`,"g"),r=`(${t[n]})`;u(r)&&(e=e.replace(i,r))}return e}function LRe(e){return e.replace(ERe,bRe)}function P5(e){return e.replace(SRe,"\\")}function NRe(e){let t=e,n="",i=t.indexOf("${");for(;i>=0;){let r=t.indexOf("'"),o=t.indexOf('"'),s;if(r>=0&&r<i)s=t.indexOf("'",r+1),n+=t.substr(0,s+1),t=t.substr(s+1),i=t.indexOf("${");else if(o>=0&&o<i)s=t.indexOf('"',o+1),n+=t.substr(0,s+1),t=t.substr(s+1),i=t.indexOf("${");else{n+=t.substr(0,i);let a=t.indexOf("}");if(a<0)throw new de("Unmatched {.");n+=`czm_${t.substr(i+2,a-(i+2))}`,t=t.substr(a+1),i=t.indexOf("${")}}return n+=t,n}function FRe(e){let t=typeof e.value;if(e.value===null)return new At(gt.LITERAL_NULL,null);if(t==="boolean")return new At(gt.LITERAL_BOOLEAN,e.value);if(t==="number")return new At(gt.LITERAL_NUMBER,e.value);if(t==="string")return e.value.indexOf("${")>=0?new At(gt.VARIABLE_IN_STRING,e.value):new At(gt.LITERAL_STRING,P5(e.value))}function URe(e,t){let n=t.arguments,i=n.length,r,o,s,a;if(t.callee.type==="MemberExpression"){r=t.callee.property.name;let c=t.callee.object;if(r==="test"||r==="exec"){if(!u(c.callee)||c.callee.name!=="regExp")throw new de(`${r} is not a function.`);return i===0?r==="test"?new At(gt.LITERAL_BOOLEAN,!1):new At(gt.LITERAL_NULL,null):(s=Ei(e,c),a=Ei(e,n[0]),new At(gt.FUNCTION_CALL,r,s,a))}else if(r==="toString")return o=Ei(e,c),new At(gt.FUNCTION_CALL,r,o);throw new de(`Unexpected function call "${r}".`)}if(r=t.callee.name,r==="color"){if(i===0)return new At(gt.LITERAL_COLOR,r);if(o=Ei(e,n[0]),u(n[1])){let c=Ei(e,n[1]);return new At(gt.LITERAL_COLOR,r,[o,c])}return new At(gt.LITERAL_COLOR,r,[o])}else if(r==="rgb"||r==="hsl"){if(i<3)throw new de(`${r} requires three arguments.`);return o=[Ei(e,n[0]),Ei(e,n[1]),Ei(e,n[2])],new At(gt.LITERAL_COLOR,r,o)}else if(r==="rgba"||r==="hsla"){if(i<4)throw new de(`${r} requires four arguments.`);return o=[Ei(e,n[0]),Ei(e,n[1]),Ei(e,n[2]),Ei(e,n[3])],new At(gt.LITERAL_COLOR,r,o)}else if(r==="vec2"||r==="vec3"||r==="vec4"){o=new Array(i);for(let c=0;c<i;++c)o[c]=Ei(e,n[c]);return new At(gt.LITERAL_VECTOR,r,o)}else{if(r==="isNaN"||r==="isFinite")return i===0?r==="isNaN"?new At(gt.LITERAL_BOOLEAN,!0):new At(gt.LITERAL_BOOLEAN,!1):(o=Ei(e,n[0]),new At(gt.UNARY,r,o));if(r==="isExactClass"||r==="isClass"){if(i<1||i>1)throw new de(`${r} requires exactly one argument.`);return o=Ei(e,n[0]),new At(gt.UNARY,r,o)}else if(r==="getExactClassName"){if(i>0)throw new de(`${r} does not take any argument.`);return new At(gt.UNARY,r)}else if(u(wU[r])){if(i!==1)throw new de(`${r} requires exactly one argument.`);return o=Ei(e,n[0]),new At(gt.UNARY,r,o)}else if(u(DU[r])){if(i!==2)throw new de(`${r} requires exactly two arguments.`);return s=Ei(e,n[0]),a=Ei(e,n[1]),new At(gt.BINARY,r,s,a)}else if(u(O5[r])){if(i!==3)throw new de(`${r} requires exactly three arguments.`);s=Ei(e,n[0]),a=Ei(e,n[1]);let c=Ei(e,n[2]);return new At(gt.TERNARY,r,s,a,c)}else{if(r==="Boolean")return i===0?new At(gt.LITERAL_BOOLEAN,!1):(o=Ei(e,n[0]),new At(gt.UNARY,r,o));if(r==="Number")return i===0?new At(gt.LITERAL_NUMBER,0):(o=Ei(e,n[0]),new At(gt.UNARY,r,o));if(r==="String")return i===0?new At(gt.LITERAL_STRING,""):(o=Ei(e,n[0]),new At(gt.UNARY,r,o));if(r==="regExp")return VRe(e,t)}}throw new de(`Unexpected function call "${r}".`)}function VRe(e,t){let n=t.arguments;if(n.length===0)return new At(gt.LITERAL_REGEX,new RegExp);let i=Ei(e,n[0]),r;if(n.length>1){let o=Ei(e,n[1]);if(I5(i)&&I5(o)){try{r=new RegExp(P5(String(i._value)),o._value)}catch(s){throw new de(s)}return new At(gt.LITERAL_REGEX,r)}return new At(gt.REGEX,i,o)}if(I5(i)){try{r=new RegExp(P5(String(i._value)))}catch(o){throw new de(o)}return new At(gt.LITERAL_REGEX,r)}return new At(gt.REGEX,i)}function kRe(e){if(WRe(e.name)){let t=jRe(e.name);return t.substr(0,8)==="tiles3d_"?new At(gt.BUILTIN_VARIABLE,t):new At(gt.VARIABLE,t)}else{if(e.name==="NaN")return new At(gt.LITERAL_NUMBER,NaN);if(e.name==="Infinity")return new At(gt.LITERAL_NUMBER,1/0);if(e.name==="undefined")return new At(gt.LITERAL_UNDEFINED,void 0)}throw new de(`${e.name} is not defined.`)}function zRe(e){let t=e.property.name;if(t==="PI")return new At(gt.LITERAL_NUMBER,Math.PI);if(t==="E")return new At(gt.LITERAL_NUMBER,Math.E)}function HRe(e){if(e.property.name==="POSITIVE_INFINITY")return new At(gt.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function GRe(e,t){if(t.object.name==="Math")return zRe(t);if(t.object.name==="Number")return HRe(t);let n,i=Ei(e,t.object);return t.computed?(n=Ei(e,t.property),new At(gt.MEMBER,"brackets",i,n)):(n=new At(gt.LITERAL_STRING,t.property.name),new At(gt.MEMBER,"dot",i,n))}function I5(e){return e._type>=gt.LITERAL_NULL}function WRe(e){return e.substr(0,4)==="czm_"}function jRe(e){return e.substr(4)}function Ei(e,t){let n,i,r,o;if(t.type==="Literal")n=FRe(t);else if(t.type==="CallExpression")n=URe(e,t);else if(t.type==="Identifier")n=kRe(t);else if(t.type==="UnaryExpression"){i=t.operator;let s=Ei(e,t.argument);if(TRe.indexOf(i)>-1)n=new At(gt.UNARY,i,s);else throw new de(`Unexpected operator "${i}".`)}else if(t.type==="BinaryExpression")if(i=t.operator,r=Ei(e,t.left),o=Ei(e,t.right),Qte.indexOf(i)>-1)n=new At(gt.BINARY,i,r,o);else throw new de(`Unexpected operator "${i}".`);else if(t.type==="LogicalExpression")i=t.operator,r=Ei(e,t.left),o=Ei(e,t.right),Qte.indexOf(i)>-1&&(n=new At(gt.BINARY,i,r,o));else if(t.type==="ConditionalExpression"){let s=Ei(e,t.test);r=Ei(e,t.consequent),o=Ei(e,t.alternate),n=new At(gt.CONDITIONAL,"?",r,o,s)}else if(t.type==="MemberExpression")n=GRe(e,t);else if(t.type==="ArrayExpression"){let s=[];for(let a=0;a<t.elements.length;a++)s[a]=Ei(e,t.elements[a]);n=new At(gt.ARRAY,s)}else throw t.type==="Compound"?new de("Provide exactly one expression."):new de("Cannot parse expression.");return n}function qRe(e){e._type===gt.CONDITIONAL?e.evaluate=e._evaluateConditional:e._type===gt.FUNCTION_CALL?e._value==="test"?e.evaluate=e._evaluateRegExpTest:e._value==="exec"?e.evaluate=e._evaluateRegExpExec:e._value==="toString"&&(e.evaluate=e._evaluateToString):e._type===gt.UNARY?e._value==="!"?e.evaluate=e._evaluateNot:e._value==="-"?e.evaluate=e._evaluateNegative:e._value==="+"?e.evaluate=e._evaluatePositive:e._value==="isNaN"?e.evaluate=e._evaluateNaN:e._value==="isFinite"?e.evaluate=e._evaluateIsFinite:e._value==="isExactClass"?e.evaluate=e._evaluateIsExactClass:e._value==="isClass"?e.evaluate=e._evaluateIsClass:e._value==="getExactClassName"?e.evaluate=e._evaluateGetExactClassName:e._value==="Boolean"?e.evaluate=e._evaluateBooleanConversion:e._value==="Number"?e.evaluate=e._evaluateNumberConversion:e._value==="String"?e.evaluate=e._evaluateStringConversion:u(wU[e._value])&&(e.evaluate=XRe(e._value)):e._type===gt.BINARY?e._value==="+"?e.evaluate=e._evaluatePlus:e._value==="-"?e.evaluate=e._evaluateMinus:e._value==="*"?e.evaluate=e._evaluateTimes:e._value==="/"?e.evaluate=e._evaluateDivide:e._value==="%"?e.evaluate=e._evaluateMod:e._value==="==="?e.evaluate=e._evaluateEqualsStrict:e._value==="!=="?e.evaluate=e._evaluateNotEqualsStrict:e._value==="<"?e.evaluate=e._evaluateLessThan:e._value==="<="?e.evaluate=e._evaluateLessThanOrEquals:e._value===">"?e.evaluate=e._evaluateGreaterThan:e._value===">="?e.evaluate=e._evaluateGreaterThanOrEquals:e._value==="&&"?e.evaluate=e._evaluateAnd:e._value==="||"?e.evaluate=e._evaluateOr:e._value==="=~"?e.evaluate=e._evaluateRegExpMatch:e._value==="!~"?e.evaluate=e._evaluateRegExpNotMatch:u(DU[e._value])&&(e.evaluate=KRe(e._value)):e._type===gt.TERNARY?e.evaluate=JRe(e._value):e._type===gt.MEMBER?e._value==="brackets"?e.evaluate=e._evaluateMemberBrackets:e.evaluate=e._evaluateMemberDot:e._type===gt.ARRAY?e.evaluate=e._evaluateArray:e._type===gt.VARIABLE?e.evaluate=e._evaluateVariable:e._type===gt.VARIABLE_IN_STRING?e.evaluate=e._evaluateVariableString:e._type===gt.LITERAL_COLOR?e.evaluate=e._evaluateLiteralColor:e._type===gt.LITERAL_VECTOR?e.evaluate=e._evaluateLiteralVector:e._type===gt.LITERAL_STRING?e.evaluate=e._evaluateLiteralString:e._type===gt.REGEX?e.evaluate=e._evaluateRegExp:e._type===gt.BUILTIN_VARIABLE?e._value==="tiles3d_tileset_time"&&(e.evaluate=YRe):e.evaluate=e._evaluateLiteral}function YRe(e){return u(e)?e.content.tileset.timeSinceLoad:0}function XRe(e){let t=wU[e];return function(n){let i=this._left.evaluate(n);return t(e,i)}}function KRe(e){let t=DU[e];return function(n){let i=this._left.evaluate(n),r=this._right.evaluate(n);return t(e,i,r)}}function JRe(e){let t=O5[e];return function(n){let i=this._left.evaluate(n),r=this._right.evaluate(n),o=this._test.evaluate(n);return t(e,i,r,o)}}function IU(e,t){if(u(e))return e.getPropertyInherited(t)}At.prototype._evaluateLiteral=function(){return this._value};At.prototype._evaluateLiteralColor=function(e){let t=vU,n=this._left;if(this._value==="color")u(n)?n.length>1?(z.fromCssColorString(n[0].evaluate(e),t),t.alpha=n[1].evaluate(e)):z.fromCssColorString(n[0].evaluate(e),t):z.fromBytes(255,255,255,255,t);else if(this._value==="rgb")z.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),255,t);else if(this._value==="rgba"){let i=n[3].evaluate(e)*255;z.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),i,t)}else this._value==="hsl"?z.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),1,t):this._value==="hsla"&&z.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),n[3].evaluate(e),t);return se.fromColor(t,Mn.getCartesian4())};At.prototype._evaluateLiteralVector=function(e){let t=Mn.getArray(),n=this._value,i=this._left,r=i.length;for(let a=0;a<r;++a){let c=i[a].evaluate(e);if(typeof c=="number")t.push(c);else if(c instanceof H)t.push(c.x,c.y);else if(c instanceof h)t.push(c.x,c.y,c.z);else if(c instanceof se)t.push(c.x,c.y,c.z,c.w);else throw new de(`${n} argument must be a vector or number. Argument is ${c}.`)}let o=t.length,s=parseInt(n.charAt(3));if(o===0)throw new de(`Invalid ${n} constructor. No valid arguments.`);if(o<s&&o>1)throw new de(`Invalid ${n} constructor. Not enough arguments.`);if(o>s&&r>1)throw new de(`Invalid ${n} constructor. Too many arguments.`);if(o===1){let a=t[0];t.push(a,a,a)}if(n==="vec2")return H.fromArray(t,0,Mn.getCartesian2());if(n==="vec3")return h.fromArray(t,0,Mn.getCartesian3());if(n==="vec4")return se.fromArray(t,0,Mn.getCartesian4())};At.prototype._evaluateLiteralString=function(){return this._value};At.prototype._evaluateVariableString=function(e){let t=this._value,n=SU.exec(t);for(;n!==null;){let i=n[0],r=n[1],o=IU(e,r);u(o)||(o=""),t=t.replace(i,o),n=SU.exec(t)}return t};At.prototype._evaluateVariable=function(e){return IU(e,this._value)};function yA(e){return e._value==="feature"}At.prototype._evaluateMemberDot=function(e){if(yA(this._left))return IU(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!u(t))return;let n=this._right.evaluate(e);if(t instanceof H||t instanceof h||t instanceof se){if(n==="r")return t.x;if(n==="g")return t.y;if(n==="b")return t.z;if(n==="a")return t.w}return t[n]};At.prototype._evaluateMemberBrackets=function(e){if(yA(this._left))return IU(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!u(t))return;let n=this._right.evaluate(e);if(t instanceof H||t instanceof h||t instanceof se){if(n===0||n==="r")return t.x;if(n===1||n==="g")return t.y;if(n===2||n==="b")return t.z;if(n===3||n==="a")return t.w}return t[n]};At.prototype._evaluateArray=function(e){let t=[];for(let n=0;n<this._value.length;n++)t[n]=this._value[n].evaluate(e);return t};At.prototype._evaluateNot=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new de(`Operator "!" requires a boolean argument. Argument is ${t}.`);return!t};At.prototype._evaluateNegative=function(e){let t=this._left.evaluate(e);if(t instanceof H)return H.negate(t,Mn.getCartesian2());if(t instanceof h)return h.negate(t,Mn.getCartesian3());if(t instanceof se)return se.negate(t,Mn.getCartesian4());if(typeof t=="number")return-t;throw new de(`Operator "-" requires a vector or number argument. Argument is ${t}.`)};At.prototype._evaluatePositive=function(e){let t=this._left.evaluate(e);if(!(t instanceof H||t instanceof h||t instanceof se||typeof t=="number"))throw new de(`Operator "+" requires a vector or number argument. Argument is ${t}.`);return t};At.prototype._evaluateLessThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new de(`Operator "<" requires number arguments. Arguments are ${t} and ${n}.`);return t<n};At.prototype._evaluateLessThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new de(`Operator "<=" requires number arguments. Arguments are ${t} and ${n}.`);return t<=n};At.prototype._evaluateGreaterThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new de(`Operator ">" requires number arguments. Arguments are ${t} and ${n}.`);return t>n};At.prototype._evaluateGreaterThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new de(`Operator ">=" requires number arguments. Arguments are ${t} and ${n}.`);return t>=n};At.prototype._evaluateOr=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new de(`Operator "||" requires boolean arguments. First argument is ${t}.`);if(t)return!0;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new de(`Operator "||" requires boolean arguments. Second argument is ${n}.`);return t||n};At.prototype._evaluateAnd=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new de(`Operator "&&" requires boolean arguments. First argument is ${t}.`);if(!t)return!1;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new de(`Operator "&&" requires boolean arguments. Second argument is ${n}.`);return t&&n};At.prototype._evaluatePlus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.add(t,n,Mn.getCartesian2());if(n instanceof h&&t instanceof h)return h.add(t,n,Mn.getCartesian3());if(n instanceof se&&t instanceof se)return se.add(t,n,Mn.getCartesian4());if(typeof t=="string"||typeof n=="string")return t+n;if(typeof t=="number"&&typeof n=="number")return t+n;throw new de(`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${t} and ${n}.`)};At.prototype._evaluateMinus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.subtract(t,n,Mn.getCartesian2());if(n instanceof h&&t instanceof h)return h.subtract(t,n,Mn.getCartesian3());if(n instanceof se&&t instanceof se)return se.subtract(t,n,Mn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t-n;throw new de(`Operator "-" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};At.prototype._evaluateTimes=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.multiplyComponents(t,n,Mn.getCartesian2());if(n instanceof H&&typeof t=="number")return H.multiplyByScalar(n,t,Mn.getCartesian2());if(t instanceof H&&typeof n=="number")return H.multiplyByScalar(t,n,Mn.getCartesian2());if(n instanceof h&&t instanceof h)return h.multiplyComponents(t,n,Mn.getCartesian3());if(n instanceof h&&typeof t=="number")return h.multiplyByScalar(n,t,Mn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.multiplyByScalar(t,n,Mn.getCartesian3());if(n instanceof se&&t instanceof se)return se.multiplyComponents(t,n,Mn.getCartesian4());if(n instanceof se&&typeof t=="number")return se.multiplyByScalar(n,t,Mn.getCartesian4());if(t instanceof se&&typeof n=="number")return se.multiplyByScalar(t,n,Mn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t*n;throw new de(`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${t} and ${n}.`)};At.prototype._evaluateDivide=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.divideComponents(t,n,Mn.getCartesian2());if(t instanceof H&&typeof n=="number")return H.divideByScalar(t,n,Mn.getCartesian2());if(n instanceof h&&t instanceof h)return h.divideComponents(t,n,Mn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.divideByScalar(t,n,Mn.getCartesian3());if(n instanceof se&&t instanceof se)return se.divideComponents(t,n,Mn.getCartesian4());if(t instanceof se&&typeof n=="number")return se.divideByScalar(t,n,Mn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t/n;throw new de(`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${t} and ${n}.`)};At.prototype._evaluateMod=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.fromElements(t.x%n.x,t.y%n.y,Mn.getCartesian2());if(n instanceof h&&t instanceof h)return h.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,Mn.getCartesian3());if(n instanceof se&&t instanceof se)return se.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,t.w%n.w,Mn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t%n;throw new de(`Operator "%" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};At.prototype._evaluateEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof H&&t instanceof H||n instanceof h&&t instanceof h||n instanceof se&&t instanceof se?t.equals(n):t===n};At.prototype._evaluateNotEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof H&&t instanceof H||n instanceof h&&t instanceof h||n instanceof se&&t instanceof se?!t.equals(n):t!==n};At.prototype._evaluateConditional=function(e){let t=this._test.evaluate(e);if(typeof t!="boolean")throw new de(`Conditional argument of conditional expression must be a boolean. Argument is ${t}.`);return t?this._left.evaluate(e):this._right.evaluate(e)};At.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))};At.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))};At.prototype._evaluateIsExactClass=function(e){return u(e)?e.isExactClass(this._left.evaluate(e)):!1};At.prototype._evaluateIsClass=function(e){return u(e)?e.isClass(this._left.evaluate(e)):!1};At.prototype._evaluateGetExactClassName=function(e){if(u(e))return e.getExactClassName()};At.prototype._evaluateBooleanConversion=function(e){return!!this._left.evaluate(e)};At.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))};At.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))};At.prototype._evaluateRegExp=function(e){let t=this._value.evaluate(e),n="";u(this._left)&&(n=this._left.evaluate(e));let i;try{i=new RegExp(t,n)}catch(r){throw new de(r)}return i};At.prototype._evaluateRegExpTest=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new de(`RegExp.test requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);return t.test(n)};At.prototype._evaluateRegExpMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return t.test(n);if(n instanceof RegExp&&typeof t=="string")return n.test(t);throw new de(`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};At.prototype._evaluateRegExpNotMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return!t.test(n);if(n instanceof RegExp&&typeof t=="string")return!n.test(t);throw new de(`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};At.prototype._evaluateRegExpExec=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new de(`RegExp.exec requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);let i=t.exec(n);return u(i)?i[1]:null};At.prototype._evaluateToString=function(e){let t=this._left.evaluate(e);if(t instanceof RegExp||t instanceof H||t instanceof h||t instanceof se)return String(t);throw new de(`Unexpected function call "${this._value}".`)};function ene(e){let t=e._left,n=t.length;for(let a=0;a<n;++a)if(t[a]._type!==gt.LITERAL_NUMBER)return;let i=t[0]._value,r=t[1]._value,o=t[2]._value,s=n===4?t[3]._value:1;return z.fromHsl(i,r,o,s,vU)}function tne(e){let t=e._left,n=t.length;for(let r=0;r<n;++r)if(t[r]._type!==gt.LITERAL_NUMBER)return;let i=vU;return i.red=t[0]._value/255,i.green=t[1]._value/255,i.blue=t[2]._value/255,i.alpha=n===4?t[3]._value:1,i}function Cg(e){return e%1===0?e.toFixed(1):e.toString()}function ZRe(e){let t=Cg(e.red),n=Cg(e.green),i=Cg(e.blue);return`vec3(${t}, ${n}, ${i})`}function bU(e){let t=Cg(e.red),n=Cg(e.green),i=Cg(e.blue),r=Cg(e.alpha);return`vec4(${t}, ${n}, ${i}, ${r})`}function nne(e,t,n,i){let r=e.length,o=new Array(r);for(let s=0;s<r;++s)o[s]=e[s].getShaderExpression(t,n,i);return o}function ine(e,t){return u(t[e])?t[e]:bd.NULL_SENTINEL}bd.NULL_SENTINEL="czm_infinity";At.prototype.getShaderExpression=function(e,t,n){let i,r,o,s,a=this._type,c=this._value;u(this._left)&&(Array.isArray(this._left)?r=nne(this._left,e,t,this):r=this._left.getShaderExpression(e,t,this)),u(this._right)&&(o=this._right.getShaderExpression(e,t,this)),u(this._test)&&(s=this._test.getShaderExpression(e,t,this)),Array.isArray(this._value)&&(c=nne(this._value,e,t,this));let l,f,d;switch(a){case gt.VARIABLE:return yA(this)?void 0:ine(c,e);case gt.UNARY:if(c==="Boolean")return`bool(${r})`;if(c==="Number")return`float(${r})`;if(c==="round")return`floor(${r} + 0.5)`;if(u(wU[c]))return`${c}(${r})`;if(c==="isNaN")return`(${r} != ${r})`;if(c==="isFinite")return`(abs(${r}) < czm_infinity)`;if(c==="String"||c==="isExactClass"||c==="isClass"||c==="getExactClassName")throw new de(`Error generating style shader: "${c}" is not supported.`);return c+r;case gt.BINARY:return c==="%"?`mod(${r}, ${o})`:c==="==="?`(${r} == ${o})`:c==="!=="?`(${r} != ${o})`:c==="atan2"?`atan(${r}, ${o})`:u(DU[c])?`${c}(${r}, ${o})`:`(${r} ${c} ${o})`;case gt.TERNARY:if(u(O5[c]))return`${c}(${r}, ${o}, ${s})`;break;case gt.CONDITIONAL:return`(${s} ? ${r} : ${o})`;case gt.MEMBER:return yA(this._left)?ine(o,e):o==="r"||o==="x"||o==="0.0"?`${r}[0]`:o==="g"||o==="y"||o==="1.0"?`${r}[1]`:o==="b"||o==="z"||o==="2.0"?`${r}[2]`:o==="a"||o==="w"||o==="3.0"?`${r}[3]`:`${r}[int(${o})]`;case gt.FUNCTION_CALL:throw new de(`Error generating style shader: "${c}" is not supported.`);case gt.ARRAY:if(c.length===4)return`vec4(${c[0]}, ${c[1]}, ${c[2]}, ${c[3]})`;if(c.length===3)return`vec3(${c[0]}, ${c[1]}, ${c[2]})`;if(c.length===2)return`vec2(${c[0]}, ${c[1]})`;throw new de("Error generating style shader: Invalid array length. Array length should be 2, 3, or 4.");case gt.REGEX:throw new de("Error generating style shader: Regular expressions are not supported.");case gt.VARIABLE_IN_STRING:throw new de("Error generating style shader: Converting a variable to a string is not supported.");case gt.LITERAL_NULL:return bd.NULL_SENTINEL;case gt.LITERAL_BOOLEAN:return c?"true":"false";case gt.LITERAL_NUMBER:return Cg(c);case gt.LITERAL_STRING:if(u(n)&&n._type===gt.MEMBER&&(c==="r"||c==="g"||c==="b"||c==="a"||c==="x"||c==="y"||c==="z"||c==="w"||yA(n._left)))return c;if(i=z.fromCssColorString(c,vU),u(i))return ZRe(i);throw new de("Error generating style shader: String literals are not supported.");case gt.LITERAL_COLOR:if(l=r,c==="color"){if(u(l)){if(l.length>1){let p=l[0],g=l[1];return g!=="1.0"&&(t.translucent=!0),`vec4(${p}, ${g})`}}else return"vec4(1.0)";return`vec4(${l[0]}, 1.0)`}else{if(c==="rgb")return i=tne(this),u(i)?bU(i):`vec4(${l[0]} / 255.0, ${l[1]} / 255.0, ${l[2]} / 255.0, 1.0)`;if(c==="rgba")return l[3]!=="1.0"&&(t.translucent=!0),i=tne(this),u(i)?bU(i):`vec4(${l[0]} / 255.0, ${l[1]} / 255.0, ${l[2]} / 255.0, ${l[3]})`;if(c==="hsl")return i=ene(this),u(i)?bU(i):`vec4(czm_HSLToRGB(vec3(${l[0]}, ${l[1]}, ${l[2]})), 1.0)`;if(c==="hsla")return i=ene(this),u(i)?(i.alpha!==1&&(t.translucent=!0),bU(i)):(l[3]!=="1.0"&&(t.translucent=!0),`vec4(czm_HSLToRGB(vec3(${l[0]}, ${l[1]}, ${l[2]})), ${l[3]})`)}break;case gt.LITERAL_VECTOR:f=r.length,d=`${c}(`;for(let p=0;p<f;++p)d+=r[p],p<f-1&&(d+=", ");return d+=")",d;case gt.LITERAL_REGEX:throw new de("Error generating style shader: Regular expressions are not supported.");case gt.LITERAL_UNDEFINED:return bd.NULL_SENTINEL;case gt.BUILTIN_VARIABLE:if(c==="tiles3d_tileset_time")return c}};At.prototype.getVariables=function(e,t){let n,i,r,o=this._type,s=this._value;if(u(this._left))if(Array.isArray(this._left))for(n=this._left,i=n.length,r=0;r<i;++r)n[r].getVariables(e,this);else this._left.getVariables(e,this);if(u(this._right)&&this._right.getVariables(e,this),u(this._test)&&this._test.getVariables(e,this),Array.isArray(this._value))for(n=this._value,i=n.length,r=0;r<i;++r)n[r].getVariables(e,this);let a;switch(o){case gt.VARIABLE:yA(this)||e.push(s);break;case gt.VARIABLE_IN_STRING:for(a=SU.exec(s);a!==null;)e.push(a[1]),a=SU.exec(s);break;case gt.LITERAL_STRING:u(t)&&t._type===gt.MEMBER&&yA(t._left)&&e.push(s);break}};var of=bd;function bp(e){e=y(e,y.EMPTY_OBJECT),this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._vertexBatchIds=e.vertexBatchIds,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=e.indexOffsets,this._batchedIndices=e.batchedIndices,this._boundingVolume=e.boundingVolume,this._boundingVolumes=e.boundingVolumes,this._center=y(e.center,h.ZERO),this._va=void 0,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._uniformMap=void 0,this._vaSwap=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._rsWireframe=void 0,this._commands=[],this._commandsIgnoreShow=[],this._pickCommands=[],this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._batchDirty=!0,this._pickCommandsDirty=!0,this._framesSinceLastRebatch=0,this._updatingAllCommands=!1,this._trianglesLength=this._indices.length/3,this._geometryByteLength=this._indices.byteLength+this._positions.byteLength+this._vertexBatchIds.byteLength,this.debugWireframe=!1,this._debugWireframe=this.debugWireframe,this._wireframeDirty=!1,this.forceRebatch=!1,this.classificationType=y(e.classificationType,kn.BOTH),this._vertexShaderSource=e._vertexShaderSource,this._fragmentShaderSource=e._fragmentShaderSource,this._attributeLocations=e._attributeLocations,this._uniformMap=e._uniformMap,this._pickId=e._pickId,this._modelMatrix=e._modelMatrix,this._boundingSphere=e._boundingSphere,this._batchIdLookUp={};let t=this._batchIds.length;for(let n=0;n<t;++n){let i=this._batchIds[n];this._batchIdLookUp[i]=n}}Object.defineProperties(bp.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}}});var QRe={position:0,a_batchId:1};function $Re(e,t){if(u(e._va))return;let n=ht.createVertexBuffer({context:t,typedArray:e._positions,usage:Fe.STATIC_DRAW}),i=ht.createVertexBuffer({context:t,typedArray:e._vertexBatchIds,usage:Fe.STATIC_DRAW}),r=ht.createIndexBuffer({context:t,typedArray:e._indices,usage:Fe.DYNAMIC_DRAW,indexDatatype:e._indices.BYTES_PER_ELEMENT===2?Ue.UNSIGNED_SHORT:Ue.UNSIGNED_INT}),o=[{index:0,vertexBuffer:n,componentDatatype:X.fromTypedArray(e._positions),componentsPerAttribute:3},{index:1,vertexBuffer:i,componentDatatype:X.fromTypedArray(e._vertexBatchIds),componentsPerAttribute:1}];e._va=new oi({context:t,attributes:o,indexBuffer:r}),t.webgl2&&(e._vaSwap=new oi({context:t,attributes:o,indexBuffer:ht.createIndexBuffer({context:t,sizeInBytes:r.sizeInBytes,usage:Fe.DYNAMIC_DRAW,indexDatatype:r.indexDatatype})})),e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0}function eBe(e,t){if(u(e._sp))return;let n=e._batchTable,i=y(e._attributeLocations,QRe),r=e._pickId,o=e._vertexShaderSource,s=e._fragmentShaderSource;if(u(o)){e._sp=Xt.fromCache({context:t,vertexShaderSource:o,fragmentShaderSource:s,attributeLocations:i}),e._spStencil=e._sp,s=ke.replaceMain(s,"czm_non_pick_main"),s=`${s}void main() +{ + czm_non_pick_main(); + out_FragColor = ${r}; +} +`,e._spPick=Xt.fromCache({context:t,vertexShaderSource:o,fragmentShaderSource:s,attributeLocations:i});return}let a=n.getVertexShaderCallback(!1,"a_batchId",void 0)(OT),c=n.getFragmentShaderCallback(!1,void 0,!0)(dg);r=n.getPickId();let l=new ke({sources:[a]}),f=new ke({defines:["VECTOR_TILE"],sources:[c]});e._sp=Xt.fromCache({context:t,vertexShaderSource:l,fragmentShaderSource:f,attributeLocations:i}),l=new ke({sources:[OT]}),f=new ke({defines:["VECTOR_TILE"],sources:[dg]}),e._spStencil=Xt.fromCache({context:t,vertexShaderSource:l,fragmentShaderSource:f,attributeLocations:i}),c=ke.replaceMain(c,"czm_non_pick_main"),c=`${c} +void main() +{ + czm_non_pick_main(); + out_FragColor = ${r}; +} +`;let d=new ke({sources:[a]}),p=new ke({defines:["VECTOR_TILE"],sources:[c]});e._spPick=Xt.fromCache({context:t,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:i})}function rne(e){let t=e?zn.EQUAL:zn.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:t,frontOperation:{fail:mt.KEEP,zFail:mt.DECREMENT_WRAP,zPass:mt.KEEP},backFunction:t,backOperation:{fail:mt.KEEP,zFail:mt.INCREMENT_WRAP,zPass:mt.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:Wa.LESS_OR_EQUAL},depthMask:!1}}var tBe={stencilTest:{enabled:!0,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},backFunction:zn.NOT_EQUAL,backOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},nBe={stencilTest:{enabled:!0,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},backFunction:zn.NOT_EQUAL,backOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function iBe(e){u(e._rsStencilDepthPass)||(e._rsStencilDepthPass=Ve.fromCache(rne(!1)),e._rsStencilDepthPass3DTiles=Ve.fromCache(rne(!0)),e._rsColorPass=Ve.fromCache(tBe),e._rsPickPass=Ve.fromCache(nBe))}var AA=new N,one=new h;function rBe(e,t){if(u(e._uniformMap))return;let n={u_modifiedModelViewProjection:function(){let i=t.uniformState.view,r=t.uniformState.projection;return N.clone(i,AA),N.multiplyByPoint(AA,e._center,one),N.setTranslation(AA,one,AA),N.multiply(r,AA,AA),AA},u_highlightColor:function(){return e._highlightColor}};e._uniformMap=e._batchTable.getUniformMapCallback()(n)}function M5(e,t,n,i,r,o,s){let a=e.constructor.BYTES_PER_ELEMENT,c=o.length;for(let l=0;l<c;++l){let f=o[l],d=s[f],p=i[d],g=r[d],m=new e.constructor(e.buffer,a*p,g);t.set(m,n),i[d]=n,n+=g}return n}function oBe(e,t){let n=e._indices,i=e._indexOffsets,r=e._indexCounts,o=e._batchIdLookUp,s=new n.constructor(n.length),a=t.pop(),c=[a],l=M5(n,s,0,i,r,a.batchIds,o);for(a.offset=0,a.count=l;t.length>0;){let f=t.pop();if(z.equals(f.color,a.color))l=M5(n,s,l,i,r,f.batchIds,o),a.batchIds=a.batchIds.concat(f.batchIds),a.count=l-a.offset;else{let d=l;l=M5(n,s,l,i,r,f.batchIds,o),f.offset=d,f.count=l-d,c.push(f),a=f}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=c}function R5(e,t,n,i,r,o,s){let a=e.bytesPerIndex,c=o.length;for(let l=0;l<c;++l){let f=o[l],d=s[f],p=i[d],g=r[d];t.copyFromBuffer(e,p*a,n*a,g*a),i[d]=n,n+=g}return n}function sBe(e,t){let n=e._indexOffsets,i=e._indexCounts,r=e._batchIdLookUp,o=t.pop(),s=[o],a=e._va.indexBuffer,c=e._vaSwap.indexBuffer,l=R5(a,c,0,n,i,o.batchIds,r);for(o.offset=0,o.count=l;t.length>0;){let d=t.pop();if(z.equals(d.color,o.color))l=R5(a,c,l,n,i,d.batchIds,r),o.batchIds=o.batchIds.concat(d.batchIds),o.count=l-o.offset;else{let p=l;l=R5(a,c,l,n,i,d.batchIds,r),d.offset=p,d.count=l-p,s.push(d),o=d}}let f=e._va;e._va=e._vaSwap,e._vaSwap=f,e._batchedIndices=s}function aBe(e,t){return t.color.toRgba()-e.color.toRgba()}function cBe(e,t){if(!e._batchDirty)return!1;let n=e._batchedIndices,i=n.length,r=!1,o={};for(let s=0;s<i;++s){let c=n[s].color.toRgba();if(u(o[c])){r=!0;break}else o[c]=!0}if(!r)return e._batchDirty=!1,!1;if(r&&!e.forceRebatch&&e._framesSinceLastRebatch<120){++e._framesSinceLastRebatch;return}return n.sort(aBe),t.webgl2?sBe(e,n):oBe(e,n),e._framesSinceLastRebatch=0,e._batchDirty=!1,e._pickCommandsDirty=!0,e._wireframeDirty=!0,!0}function lBe(e,t){let n=cBe(e,t),i=e._commands,r=e._batchedIndices,o=r.length,s=o*2;if(u(i)&&!n&&i.length===s)return;i.length=s;let a=e._va,c=e._sp,l=y(e._modelMatrix,N.IDENTITY),f=e._uniformMap,d=e._boundingVolume;for(let p=0;p<o;++p){let g=r[p].offset,m=r[p].count,A=i[p*2];u(A)||(A=i[p*2]=new nt({owner:e})),A.vertexArray=a,A.modelMatrix=l,A.offset=g,A.count=m,A.renderState=e._rsStencilDepthPass,A.shaderProgram=c,A.uniformMap=f,A.boundingVolume=d,A.cull=!1,A.pass=be.TERRAIN_CLASSIFICATION;let x=nt.shallowClone(A,A.derivedCommands.tileset);x.renderState=e._rsStencilDepthPass3DTiles,x.pass=be.CESIUM_3D_TILE_CLASSIFICATION,A.derivedCommands.tileset=x;let C=i[p*2+1];u(C)||(C=i[p*2+1]=new nt({owner:e})),C.vertexArray=a,C.modelMatrix=l,C.offset=g,C.count=m,C.renderState=e._rsColorPass,C.shaderProgram=c,C.uniformMap=f,C.boundingVolume=d,C.cull=!1,C.pass=be.TERRAIN_CLASSIFICATION;let T=nt.shallowClone(C,C.derivedCommands.tileset);T.pass=be.CESIUM_3D_TILE_CLASSIFICATION,C.derivedCommands.tileset=T}e._commandsDirty=!0}function uBe(e,t){if(e.classificationType===kn.TERRAIN||!t.invertClassification||u(e._commandsIgnoreShow)&&!e._commandsDirty)return;let n=e._commands,i=e._commandsIgnoreShow,r=e._spStencil,o=n.length,s=i.length=o/2,a=0;for(let c=0;c<s;++c){let l=i[c]=nt.shallowClone(n[a],i[c]);l.shaderProgram=r,l.pass=be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,a+=2}e._commandsDirty=!1}function fBe(e){if(!e._pickCommandsDirty)return;let t=e._indexOffsets.length,n=e._pickCommands;n.length=t*2;let i=e._va,r=e._spStencil,o=e._spPick,s=y(e._modelMatrix,N.IDENTITY),a=e._uniformMap;for(let c=0;c<t;++c){let l=e._indexOffsets[c],f=e._indexCounts[c],d=u(e._boundingVolumes)?e._boundingVolumes[c]:e.boundingVolume,p=n[c*2];u(p)||(p=n[c*2]=new nt({owner:e,pickOnly:!0})),p.vertexArray=i,p.modelMatrix=s,p.offset=l,p.count=f,p.renderState=e._rsStencilDepthPass,p.shaderProgram=r,p.uniformMap=a,p.boundingVolume=d,p.pass=be.TERRAIN_CLASSIFICATION;let g=nt.shallowClone(p,p.derivedCommands.tileset);g.renderState=e._rsStencilDepthPass3DTiles,g.pass=be.CESIUM_3D_TILE_CLASSIFICATION,p.derivedCommands.tileset=g;let m=n[c*2+1];u(m)||(m=n[c*2+1]=new nt({owner:e,pickOnly:!0})),m.vertexArray=i,m.modelMatrix=s,m.offset=l,m.count=f,m.renderState=e._rsPickPass,m.shaderProgram=o,m.uniformMap=a,m.boundingVolume=d,m.pass=be.TERRAIN_CLASSIFICATION;let A=nt.shallowClone(m,m.derivedCommands.tileset);A.pass=be.CESIUM_3D_TILE_CLASSIFICATION,m.derivedCommands.tileset=A}e._pickCommandsDirty=!1}bp.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let r=0;r<i;++r){let o=n[r];t[o]=new ws(e,o)}};bp.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function dBe(e,t){e._updatingAllCommands=!0;let n=e._batchIds,i=n.length,r;for(r=0;r<i;++r){let s=n[r],a=t[s];a.show=!0,a.color=z.WHITE}let o=e._batchedIndices;for(i=o.length,r=0;r<i;++r)o[r].color=z.clone(z.WHITE);e._updatingAllCommands=!1,e._batchDirty=!0}var hBe=new z,mBe=z.WHITE,pBe=!0,_Be=/\$/;bp.prototype.applyStyle=function(e,t){if(!u(e)){dBe(this,t);return}let n=e.color,i=n instanceof of&&!_Be.test(n.expression);this._updatingAllCommands=i;let r=this._batchIds,o=r.length,s;for(s=0;s<o;++s){let a=r[s],c=t[a];c.color=u(e.color)?e.color.evaluateColor(c,hBe):mBe,c.show=u(e.show)?e.show.evaluate(c):pBe}if(i){let a=this._batchedIndices;for(o=a.length,s=0;s<o;++s)a[s].color=z.clone(z.WHITE);this._updatingAllCommands=!1,this._batchDirty=!0}};bp.prototype.updateCommands=function(e,t){if(this._updatingAllCommands)return;let n=this._batchIdLookUp,i=n[e];if(!u(i))return;let r=this._indexOffsets,o=this._indexCounts,s=r[i],a=o[i],c=this._batchedIndices,l=c.length,f;for(f=0;f<l;++f){let A=c[f].offset,x=c[f].count;if(s>=A&&s<A+x)break}c.push(new jh({color:z.clone(t),offset:s,count:a,batchIds:[e]}));let d=[],p=[],g=c[f].batchIds,m=g.length;for(let A=0;A<m;++A){let x=g[A];if(x===e)continue;let C=n[x];r[C]<s?d.push(x):p.push(x)}p.length!==0&&c.push(new jh({color:z.clone(c[f].color),offset:s+a,count:c[f].offset+c[f].count-(s+a),batchIds:p})),d.length!==0?(c[f].count=s-c[f].offset,c[f].batchIds=d):c.splice(f,1),this._batchDirty=!0};function sne(e,t,n,i){let r=e.classificationType,o=r!==kn.CESIUM_3D_TILE,s=r!==kn.TERRAIN,a=t.commandList,c=n.length,l,f;for(f=0;f<c;++f)o&&(l=n[f],l.pass=be.TERRAIN_CLASSIFICATION,a.push(l)),s&&(l=n[f].derivedCommands.tileset,l.pass=be.CESIUM_3D_TILE_CLASSIFICATION,a.push(l));if(!(!t.invertClassification||!u(i)))for(c=i.length,f=0;f<c;++f)a.push(i[f])}function gBe(e,t){let n=e.commandList,i=t.length;for(let r=0;r<i;r+=2){let o=t[r+1];o.pass=be.OPAQUE,n.push(o)}}function yBe(e){let t=e.debugWireframe===e._debugWireframe;if(t=t&&!(e.debugWireframe&&e._wireframeDirty),t)return;u(e._rsWireframe)||(e._rsWireframe=Ve.fromCache({}));let n,i;e.debugWireframe?(n=e._rsWireframe,i=Be.LINES):(n=e._rsColorPass,i=Be.TRIANGLES);let r=e._commands,o=r.length;for(let s=0;s<o;s+=2){let a=r[s+1];a.renderState=n,a.primitiveType=i}e._debugWireframe=e.debugWireframe,e._wireframeDirty=!1}bp.prototype.update=function(e){let t=e.context;$Re(this,t),eBe(this,t),iBe(this),rBe(this,t);let n=e.passes;n.render&&(lBe(this,t),uBe(this,e),yBe(this),this._debugWireframe?gBe(e,this._commands):sne(this,e,this._commands,this._commandsIgnoreShow)),n.pick&&(fBe(this),sne(this,e,this._pickCommands))};bp.prototype.isDestroyed=function(){return!1};bp.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaSwap=this._vaSwap&&this._vaSwap.destroy(),ue(this)};var xA=bp;function su(e){this._boxes=e.boxes,this._boxBatchIds=e.boxBatchIds,this._cylinders=e.cylinders,this._cylinderBatchIds=e.cylinderBatchIds,this._ellipsoids=e.ellipsoids,this._ellipsoidBatchIds=e.ellipsoidBatchIds,this._spheres=e.spheres,this._sphereBatchIds=e.sphereBatchIds,this._modelMatrix=e.modelMatrix,this._batchTable=e.batchTable,this._boundingVolume=e.boundingVolume,this._center=e.center,u(this._center)||(u(this._boundingVolume)?this._center=h.clone(this._boundingVolume.center):this._center=h.clone(h.ZERO)),this._boundingVolumes=void 0,this._batchedIndices=void 0,this._indices=void 0,this._indexOffsets=void 0,this._indexCounts=void 0,this._positions=void 0,this._vertexBatchIds=void 0,this._batchIds=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._verticesPromise=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=kn.BOTH}Object.defineProperties(su.prototype,{trianglesLength:{get:function(){return u(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return u(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});su.packedBoxLength=N.packedLength+h.packedLength;su.packedCylinderLength=N.packedLength+2;su.packedEllipsoidLength=N.packedLength+h.packedLength;su.packedSphereLength=h.packedLength+1;function ABe(e){let t=new Float64Array(N.packedLength+h.packedLength),n=0;return h.pack(e._center,t,n),n+=h.packedLength,N.pack(e._modelMatrix,t,n),t}function xBe(e,t){let n=0,i=t[n++],r=t[n++],o=e._boundingVolumes=new Array(r);for(let c=0;c<r;++c)o[c]=ae.unpack(t,n),n+=ae.packedLength;let s=t[n++],a=e._batchedIndices=new Array(s);for(let c=0;c<s;++c){let l=z.unpack(t,n);n+=z.packedLength;let f=t[n++],d=t[n++],p=t[n++],g=new Array(p);for(let m=0;m<p;++m)g[m]=t[n++];a[c]=new jh({color:l,offset:f,count:d,batchIds:g})}return i}var CBe=new pi("createVectorTileGeometries",5),TBe=new z;function EBe(e){if(!u(e._primitive)&&!u(e._verticesPromise)){let t=e._boxes,n=e._boxBatchIds,i=e._cylinders,r=e._cylinderBatchIds,o=e._ellipsoids,s=e._ellipsoidBatchIds,a=e._spheres,c=e._sphereBatchIds,l=e._batchTableColors,f=e._packedBuffer;if(!u(l)){let m=0;u(e._boxes)&&(t=e._boxes=t.slice(),n=e._boxBatchIds=n.slice(),m+=n.length),u(e._cylinders)&&(i=e._cylinders=i.slice(),r=e._cylinderBatchIds=r.slice(),m+=r.length),u(e._ellipsoids)&&(o=e._ellipsoids=o.slice(),s=e._ellipsoidBatchIds=s.slice(),m+=s.length),u(e._spheres)&&(a=e._sphere=a.slice(),c=e._sphereBatchIds=c.slice(),m+=c.length),l=e._batchTableColors=new Uint32Array(m);let A=e._batchTable;for(let x=0;x<m;++x){let C=A.getColor(x,TBe);l[x]=C.toRgba()}f=e._packedBuffer=ABe(e)}let d=[];u(t)&&d.push(t.buffer,n.buffer),u(i)&&d.push(i.buffer,r.buffer),u(o)&&d.push(o.buffer,s.buffer),u(a)&&d.push(a.buffer,c.buffer),d.push(l.buffer,f.buffer);let p={boxes:u(t)?t.buffer:void 0,boxBatchIds:u(t)?n.buffer:void 0,cylinders:u(i)?i.buffer:void 0,cylinderBatchIds:u(i)?r.buffer:void 0,ellipsoids:u(o)?o.buffer:void 0,ellipsoidBatchIds:u(o)?s.buffer:void 0,spheres:u(a)?a.buffer:void 0,sphereBatchIds:u(a)?c.buffer:void 0,batchTableColors:l.buffer,packedBuffer:f.buffer},g=e._verticesPromise=CBe.scheduleTask(p,d);return u(g)?g.then(function(m){if(e.isDestroyed())return;let A=new Float64Array(m.packedBuffer);xBe(e,A)===2?e._indices=new Uint16Array(m.indices):e._indices=new Uint32Array(m.indices),e._indexOffsets=new Uint32Array(m.indexOffsets),e._indexCounts=new Uint32Array(m.indexCounts),e._positions=new Float32Array(m.positions),e._vertexBatchIds=new Uint16Array(m.vertexBatchIds),e._batchIds=new Uint16Array(m.batchIds),bBe(e),e._ready=!0}).catch(m=>{e.isDestroyed()||(e._error=m)}):void 0}}function bBe(e){u(e._primitive)||(e._primitive=new xA({batchTable:e._batchTable,positions:e._positions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center,pickObject:y(e._pickObject,e)}),e._boxes=void 0,e._boxBatchIds=void 0,e._cylinders=void 0,e._cylinderBatchIds=void 0,e._ellipsoids=void 0,e._ellipsoidBatchIds=void 0,e._spheres=void 0,e._sphereBatchIds=void 0,e._center=void 0,e._modelMatrix=void 0,e._batchTable=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0,e._indices=void 0,e._indexOffsets=void 0,e._indexCounts=void 0,e._positions=void 0,e._vertexBatchIds=void 0,e._batchIds=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._verticesPromise=void 0)}su.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};su.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};su.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};su.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};su.prototype.update=function(e){if(!this._ready){if(u(this._promise)||(this._promise=EBe(this)),u(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};su.prototype.isDestroyed=function(){return!1};su.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var Sp=su;function vp(e,t,n,i,r){this._tileset=e,this._tile=t,this._resource=n,this._geometries=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,this._resolveContent=void 0,this._readyPromise=new Promise(o=>{this._resolveContent=o}),wBe(this,i,r)}Object.defineProperties(vp.prototype,{featuresLength:{get:function(){return u(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return u(this._geometries)?this._geometries.trianglesLength:0}},geometryByteLength:{get:function(){return u(this._geometries)?this._geometries.geometryByteLength:0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return u(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Geometry3DTileContent.readyPromise","Geometry3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Geometry3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function SBe(e){return function(t,n){u(e._geometries)&&e._geometries.updateCommands(t,n)}}function vBe(e,t){let n,i,r,o,s,a=y(e.BOXES_LENGTH,0),c=y(e.CYLINDERS_LENGTH,0),l=y(e.ELLIPSOIDS_LENGTH,0),f=y(e.SPHERES_LENGTH,0);if(a>0&&u(e.BOX_BATCH_IDS)){let m=t.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,m,a)}if(c>0&&u(e.CYLINDER_BATCH_IDS)){let m=t.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,m,c)}if(l>0&&u(e.ELLIPSOID_BATCH_IDS)){let m=t.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,m,l)}if(f>0&&u(e.SPHERE_BATCH_IDS)){let m=t.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,m,f)}let d=u(n)||u(i)||u(r)||u(o),p=a>0&&!u(n)||c>0&&!u(i)||l>0&&!u(r)||f>0&&!u(o);if(d&&p)throw new de("If one group of batch ids is defined, then all batch ids must be defined");if(!u(n)&&!u(i)&&!u(r)&&!u(o)){let m=0;if(!u(n)&&a>0)for(n=new Uint16Array(a),s=0;s<a;++s)n[s]=m++;if(!u(i)&&c>0)for(i=new Uint16Array(c),s=0;s<c;++s)i[s]=m++;if(!u(r)&&l>0)for(r=new Uint16Array(l),s=0;s<l;++s)r[s]=m++;if(!u(o)&&f>0)for(o=new Uint16Array(f),s=0;s<f;++s)o[s]=m++}return{boxes:n,cylinders:i,ellipsoids:r,spheres:o}}var CA=Uint32Array.BYTES_PER_ELEMENT;function wBe(e,t,n){n=y(n,0);let i=new Uint8Array(t),r=new DataView(t);n+=CA;let o=r.getUint32(n,!0);if(o!==1)throw new de(`Only Geometry tile version 1 is supported. Version ${o} is not.`);n+=CA;let s=r.getUint32(n,!0);if(n+=CA,s===0){e._ready=!0,e._resolveContent(e);return}let a=r.getUint32(n,!0);if(n+=CA,a===0)throw new de("Feature table must have a byte length greater than zero");let c=r.getUint32(n,!0);n+=CA;let l=r.getUint32(n,!0);n+=CA;let f=r.getUint32(n,!0);n+=CA;let d=Mr(i,n,a);n+=a;let p=new Uint8Array(t,n,c);n+=c;let g,m;l>0&&(g=Mr(i,n,l),n+=l,f>0&&(m=new Uint8Array(t,n,f),m=new Uint8Array(m)));let A=y(d.BOXES_LENGTH,0),x=y(d.CYLINDERS_LENGTH,0),C=y(d.ELLIPSOIDS_LENGTH,0),T=y(d.SPHERES_LENGTH,0),E=A+x+C+T,S=new Ep(e,E,g,m,SBe(e));if(e._batchTable=S,E===0)return;let v=e.tile.computedTransform,D;u(d.RTC_CENTER)&&(D=h.unpack(d.RTC_CENTER),N.multiplyByPoint(v,D,D));let M=vBe(d,p);if(A>0||x>0||C>0||T>0){let O,B,L,_;if(A>0){let b=p.byteOffset+d.BOXES.byteOffset;O=new Float32Array(p.buffer,b,Sp.packedBoxLength*A)}if(x>0){let b=p.byteOffset+d.CYLINDERS.byteOffset;B=new Float32Array(p.buffer,b,Sp.packedCylinderLength*x)}if(C>0){let b=p.byteOffset+d.ELLIPSOIDS.byteOffset;L=new Float32Array(p.buffer,b,Sp.packedEllipsoidLength*C)}if(T>0){let b=p.byteOffset+d.SPHERES.byteOffset;_=new Float32Array(p.buffer,b,Sp.packedSphereLength*T)}return e._geometries=new Sp({boxes:O,boxBatchIds:M.boxes,cylinders:B,cylinderBatchIds:M.cylinders,ellipsoids:L,ellipsoidBatchIds:M.ellipsoids,spheres:_,sphereBatchIds:M.spheres,center:D,modelMatrix:v,batchTable:S,boundingVolume:e.tile.boundingVolume.boundingVolume}),e}return Promise.resolve(e)}function ane(e){let t=e.featuresLength;if(!u(e._features)&&t>0){let n=new Array(t);u(e._geometries)&&e._geometries.createFeatures(e,n),e._features=n}}vp.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};vp.prototype.getFeature=function(e){return ane(this),this._features[e]};vp.prototype.applyDebugSettings=function(e,t){u(this._geometries)&&this._geometries.applyDebugSettings(e,t)};vp.prototype.applyStyle=function(e){ane(this),u(this._geometries)&&this._geometries.applyStyle(e,this._features)};vp.prototype.update=function(e,t){u(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(t)),u(this._batchTable)&&this._geometries.ready&&(this._batchTable.update(e,t),this._ready=!0,this._resolveContent(this))};vp.prototype.isDestroyed=function(){return!1};vp.prototype.destroy=function(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};var kP=vp;var B5={};B5.encode2D=function(e,t,n){let i=Math.pow(2,e),r={x:t,y:n},o,s,a,c=BigInt(0);for(a=i/2;a>0;a/=2)o=(r.x&a)>0?1:0,s=(r.y&a)>0?1:0,c+=BigInt((3*o^s)*a*a),cne(i,r,o,s);return c};B5.decode2D=function(e,t){let n=Math.pow(2,e),i={x:0,y:0},r,o,s,a;for(s=1,a=t;s<n;s*=2)r=1&Number(a/BigInt(2)),o=1&Number(a^BigInt(r)),cne(s,i,r,o),i.x+=s*r,i.y+=s*o,a/=BigInt(4);return[i.x,i.y]};function cne(e,t,n,i){if(i!==0)return;n===1&&(t.x=e-1-t.x,t.y=e-1-t.y);let r=t.x;t.x=t.y,t.y=r}var MT=B5;var TA=30,DBe=1<<TA,IBe=1<<TA+1>>>0,L5=2*TA+1,Tg=4,fne=[],dne=[],PBe=[[0,1,3,2],[0,2,3,1],[3,2,0,1],[3,1,0,2]],Eg=1,RT=2,PU=[Eg,0,0,Eg|RT];function Wo(e){if(!Ht.supportsBigInt())throw new de("S2 required BigInt support");this._cellId=e,this._level=Wo.getLevel(e)}Wo.fromToken=function(e){return new Wo(Wo.getIdFromToken(e))};Wo.isValidId=function(e){return!(e<=0||e>>BigInt(L5)>5||!(e&~e+BigInt(1)&BigInt("0x1555555555555555")))};Wo.isValidToken=function(e){return/^[0-9a-fA-F]{1,16}$/.test(e)?Wo.isValidId(Wo.getIdFromToken(e)):!1};Wo.getIdFromToken=function(e){return BigInt("0x"+e+"0".repeat(16-e.length))};Wo.getTokenFromId=function(e){let t=Math.floor(kBe(e)/4),n=e.toString(16).replace(/0*$/,"");return Array(17-t-n.length).join("0")+n};Wo.getLevel=function(e){let t=0;for(;e!==BigInt(0)&&!(e&BigInt(1));)t++,e=e>>BigInt(1);return TA-(t>>1)};Wo.prototype.getChild=function(e){let t=pne(this._cellId)>>BigInt(2),n=this._cellId+BigInt(2*e+1-4)*t;return new Wo(n)};Wo.prototype.getParent=function(){let e=pne(this._cellId)<<BigInt(2);return new Wo(this._cellId&~e+BigInt(1)|e)};Wo.prototype.getParentAtLevel=function(e){let t=UBe(e);return new Wo(this._cellId&-t|t)};Wo.prototype.getCenter=function(e){e=y(e,re.WGS84);let t=OBe(this._cellId,this._level);t=h.normalize(t,t);let n=new me.fromCartesian(t,re.UNIT_SPHERE);return me.toCartesian(n,e,new h)};Wo.prototype.getVertex=function(e,t){t=y(t,re.WGS84);let n=MBe(this._cellId,this._level,e);n=h.normalize(n,n);let i=new me.fromCartesian(n,re.UNIT_SPHERE);return me.toCartesian(i,t,new h)};Wo.fromFacePositionLevel=function(e,t,n){let i=(e<4?"0":"")+(e<2?"0":"")+e.toString(2),r=t.toString(2),o=Array(2*n-r.length+1).join("0"),s=Array(L5-2*n).join("0"),a=BigInt(`0b${i}${o}${r}1${s}`);return new Wo(a)};function OBe(e,t){let n=RBe(e,t);return BBe(n[0],n[1],n[2])}function MBe(e,t,n){let i=hne(e,t),r=LBe([i[1],i[2]],t),o=n>>1&1;return mne(i[0],r[0][o^n&1],r[1][o])}function RBe(e,t){let n=hne(e),i=n[0],r=n[1],o=n[2],s=t===30,a=!s&&(BigInt(r)^e>>BigInt(2))&BigInt(1),c=s?1:a?2:0,l=(r<<1)+c,f=(o<<1)+c;return[i,l,f]}function hne(e){fne.length===0&&FBe();let t=Number(e>>BigInt(L5)),n=t&Eg,i=(1<<Tg)-1,r=0,o=0;for(let s=7;s>=0;s--){let c=(1<<2*(s===7?TA-7*Tg:Tg))-1;n+=Number(e>>BigInt(s*2*Tg+1)&BigInt(c))<<2,n=dne[n];let l=s*Tg;r+=n>>Tg+2<<l,o+=(n>>2&i)<<l,n&=Eg|RT}return[t,r,o]}function BBe(e,t,n){let i=lne(t),r=lne(n),o=OU(i),s=OU(r);return mne(e,o,s)}function mne(e,t,n){switch(e){case 0:return new h(1,t,n);case 1:return new h(-t,1,n);case 2:return new h(-t,-n,1);case 3:return new h(-1,-n,-t);case 4:return new h(n,-1,-t);default:return new h(n,t,-1)}}function OU(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function lne(e){return 1/IBe*e}function LBe(e,t){let n=[[],[]],i=NBe(t);for(let r=0;r<2;++r){let o=e[r]&-i,s=o+i;n[r][0]=OU(une(o)),n[r][1]=OU(une(s))}return n}function NBe(e){return 1<<TA-e>>>0}function une(e){return 1/DBe*e}function bg(e,t,n,i,r,o){if(e===Tg){let s=(t<<Tg)+n;fne[(s<<2)+i]=(r<<2)+o,dne[(r<<2)+i]=(s<<2)+o}else{e++,t<<=1,n<<=1,r<<=2;let s=PBe[o];bg(e,t+(s[0]>>1),n+(s[0]&1),i,r,o^PU[0]),bg(e,t+(s[1]>>1),n+(s[1]&1),i,r+1,o^PU[1]),bg(e,t+(s[2]>>1),n+(s[2]&1),i,r+2,o^PU[2]),bg(e,t+(s[3]>>1),n+(s[3]&1),i,r+3,o^PU[3])}}function FBe(){bg(0,0,0,0,0,0),bg(0,0,0,Eg,0,Eg),bg(0,0,0,RT,0,RT),bg(0,0,0,Eg|RT,0,Eg|RT)}function pne(e){return e&~e+BigInt(1)}function UBe(e){return BigInt(1)<<BigInt(2*(TA-e))}var VBe=[64,0,1,39,2,15,40,23,3,12,16,59,41,19,24,54,4,64,13,10,17,62,60,28,42,30,20,51,25,44,55,47,5,32,65,38,14,22,11,58,18,53,63,9,61,27,29,50,43,46,31,37,21,57,52,8,26,49,45,36,56,7,48,35,6,34,33,0];function kBe(e){return VBe[(-e&e)%BigInt(67)]}var wp=Wo;function zBe(e,t){return u(e)&&u(e.extensions)&&u(e.extensions[t])}var ni=zBe;function N5(e){let t=e.lengthBits,n=e.availableCount,i=e.constant,r=e.bitstream;if(u(i))n=t;else{let o=Math.ceil(t/8);if(r.length!==o)throw new de(`Availability bitstream must be exactly ${o} bytes long to store ${t} bits. Actual bitstream was ${r.length} bytes long.`);let s=y(e.computeAvailableCountEnabled,!1);!u(n)&&s&&(n=HBe(r,t))}this._lengthBits=t,this._availableCount=n,this._constant=i,this._bitstream=r}function HBe(e,t){let n=0;for(let i=0;i<t;i++){let r=i>>3,o=i%8;n+=e[r]>>o&1}return n}Object.defineProperties(N5.prototype,{lengthBits:{get:function(){return this._lengthBits}},availableCount:{get:function(){return this._availableCount}}});N5.prototype.getBit=function(e){if(u(this._constant))return this._constant;let t=e>>3,n=e%8;return(this._bitstream[t]>>n&1)===1};var BT=N5;function Dp(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataTable,n=e.class,i=e.entityId,r=e.propertyTableJson;this._class=n,this._metadataTable=t,this._entityId=i,this._extensions=r.extensions,this._extras=r.extras}Object.defineProperties(Dp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Dp.prototype.hasProperty=function(e){return this._metadataTable.hasProperty(e)};Dp.prototype.hasPropertyBySemantic=function(e){return this._metadataTable.hasPropertyBySemantic(e)};Dp.prototype.getPropertyIds=function(e){return this._metadataTable.getPropertyIds(e)};Dp.prototype.getProperty=function(e){return this._metadataTable.getProperty(this._entityId,e)};Dp.prototype.setProperty=function(e,t){return this._metadataTable.setProperty(this._entityId,e,t)};Dp.prototype.getPropertyBySemantic=function(e){return this._metadataTable.getPropertyBySemantic(this._entityId,e)};Dp.prototype.setPropertyBySemantic=function(e,t){return this._metadataTable.setPropertyBySemantic(this._entityId,e,t)};var LT=Dp;var MU={QUADTREE:"QUADTREE",OCTREE:"OCTREE"};MU.getBranchingFactor=function(e){switch(e){case MU.OCTREE:return 8;case MU.QUADTREE:return 4}};var jo=Object.freeze(MU);function Ks(){}Object.defineProperties(Ks.prototype,{class:{get:function(){fe.throwInstantiationError()}}});Ks.prototype.hasProperty=function(e){fe.throwInstantiationError()};Ks.prototype.hasPropertyBySemantic=function(e){fe.throwInstantiationError()};Ks.prototype.getPropertyIds=function(e){fe.throwInstantiationError()};Ks.prototype.getProperty=function(e){fe.throwInstantiationError()};Ks.prototype.setProperty=function(e,t){fe.throwInstantiationError()};Ks.prototype.getPropertyBySemantic=function(e){fe.throwInstantiationError()};Ks.prototype.setPropertyBySemantic=function(e,t){fe.throwInstantiationError()};Ks.hasProperty=function(e,t,n){if(u(t[e]))return!0;let i=n.properties;if(!u(i))return!1;let r=i[e];return!!(u(r)&&u(r.default))};Ks.hasPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!u(i))return!1;let r=i[e];return u(r)};Ks.getPropertyIds=function(e,t,n){n=u(n)?n:[],n.length=0;for(let r in e)e.hasOwnProperty(r)&&u(e[r])&&n.push(r);let i=t.properties;if(u(i))for(let r in i)i.hasOwnProperty(r)&&!u(e[r])&&u(i[r].default)&&n.push(r);return n};Ks.getProperty=function(e,t,n){let i=n.properties[e],r=t[e];Array.isArray(r)&&(r=r.slice());let o=!0;if(r=i.handleNoData(r),!u(r)&&u(i.default))return r=We(i.default,!0),i.unpackVectorAndMatrixTypes(r,o);if(u(r))return r=i.normalize(r),r=i.applyValueTransform(r),i.unpackVectorAndMatrixTypes(r,o)};Ks.setProperty=function(e,t,n,i){if(!u(n[e]))return!1;Array.isArray(t)&&(t=t.slice());let r,o=i.properties;u(o)&&(r=o[e]);let s=!0;return u(r)&&(t=r.packVectorAndMatrixTypes(t,s),t=r.unapplyValueTransform(t),t=r.unnormalize(t)),n[e]=t,!0};Ks.getPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!u(i))return;let r=i[e];if(u(r))return Ks.getProperty(r.id,t,n)};Ks.setPropertyBySemantic=function(e,t,n,i){let r=i.propertiesBySemantic;if(!u(r))return!1;let o=i.propertiesBySemantic[e];return u(o)?Ks.setProperty(o.id,t,n,i):!1};var Nn=Ks;function Ip(e){e=y(e,y.EMPTY_OBJECT);let t=e.subtreeMetadata,n=e.class,i=u(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Ip.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Ip.prototype.hasProperty=function(e){return Nn.hasProperty(e,this._properties,this._class)};Ip.prototype.hasPropertyBySemantic=function(e){return Nn.hasPropertyBySemantic(e,this._properties,this._class)};Ip.prototype.getPropertyIds=function(e){return Nn.getPropertyIds(this._properties,this._class,e)};Ip.prototype.getProperty=function(e){return Nn.getProperty(e,this._properties,this._class)};Ip.prototype.setProperty=function(e,t){return Nn.setProperty(e,t,this._properties,this._class)};Ip.prototype.getPropertyBySemantic=function(e){return Nn.getPropertyBySemantic(e,this._properties,this._class)};Ip.prototype.setPropertyBySemantic=function(e,t){return Nn.setPropertyBySemantic(e,t,this._properties,this._class)};var zP=Ip;var Dt={INT8:"INT8",UINT8:"UINT8",INT16:"INT16",UINT16:"UINT16",INT32:"INT32",UINT32:"UINT32",INT64:"INT64",UINT64:"UINT64",FLOAT32:"FLOAT32",FLOAT64:"FLOAT64"};Dt.getMinimum=function(e){switch(e){case Dt.INT8:return-128;case Dt.UINT8:return 0;case Dt.INT16:return-32768;case Dt.UINT16:return 0;case Dt.INT32:return-2147483648;case Dt.UINT32:return 0;case Dt.INT64:return Ht.supportsBigInt()?BigInt("-9223372036854775808"):-Math.pow(2,63);case Dt.UINT64:return Ht.supportsBigInt()?BigInt(0):0;case Dt.FLOAT32:return-34028234663852886e22;case Dt.FLOAT64:return-Number.MAX_VALUE}};Dt.getMaximum=function(e){switch(e){case Dt.INT8:return 127;case Dt.UINT8:return 255;case Dt.INT16:return 32767;case Dt.UINT16:return 65535;case Dt.INT32:return 2147483647;case Dt.UINT32:return 4294967295;case Dt.INT64:return Ht.supportsBigInt()?BigInt("9223372036854775807"):Math.pow(2,63)-1;case Dt.UINT64:return Ht.supportsBigInt()?BigInt("18446744073709551615"):Math.pow(2,64)-1;case Dt.FLOAT32:return 34028234663852886e22;case Dt.FLOAT64:return Number.MAX_VALUE}};Dt.isIntegerType=function(e){switch(e){case Dt.INT8:case Dt.UINT8:case Dt.INT16:case Dt.UINT16:case Dt.INT32:case Dt.UINT32:case Dt.INT64:case Dt.UINT64:return!0;default:return!1}};Dt.isUnsignedIntegerType=function(e){switch(e){case Dt.UINT8:case Dt.UINT16:case Dt.UINT32:case Dt.UINT64:return!0;default:return!1}};Dt.isVectorCompatible=function(e){switch(e){case Dt.INT8:case Dt.UINT8:case Dt.INT16:case Dt.UINT16:case Dt.INT32:case Dt.UINT32:case Dt.FLOAT32:case Dt.FLOAT64:return!0;default:return!1}};Dt.normalize=function(e,t){return Math.max(Number(e)/Number(Dt.getMaximum(t)),-1)};Dt.unnormalize=function(e,t){let n=Dt.getMaximum(t),i=Dt.isUnsignedIntegerType(t)?0:-n;return e=P.sign(e)*Math.round(Math.abs(e)*Number(n)),(t===Dt.INT64||t===Dt.UINT64)&&Ht.supportsBigInt()&&(e=BigInt(e)),e>n?n:e<i?i:e};Dt.applyValueTransform=function(e,t,n){return n*e+t};Dt.unapplyValueTransform=function(e,t,n){return n===0?0:(e-t)/n};Dt.getSizeInBytes=function(e){switch(e){case Dt.INT8:case Dt.UINT8:return 1;case Dt.INT16:case Dt.UINT16:return 2;case Dt.INT32:case Dt.UINT32:return 4;case Dt.INT64:case Dt.UINT64:return 8;case Dt.FLOAT32:return 4;case Dt.FLOAT64:return 8}};Dt.fromComponentDatatype=function(e){switch(e){case X.BYTE:return Dt.INT8;case X.UNSIGNED_BYTE:return Dt.UINT8;case X.SHORT:return Dt.INT16;case X.UNSIGNED_SHORT:return Dt.UINT16;case X.INT:return Dt.INT32;case X.UNSIGNED_INT:return Dt.UINT32;case X.FLOAT:return Dt.FLOAT32;case X.DOUBLE:return Dt.FLOAT64}};Dt.toComponentDatatype=function(e){switch(e){case Dt.INT8:return X.BYTE;case Dt.UINT8:return X.UNSIGNED_BYTE;case Dt.INT16:return X.SHORT;case Dt.UINT16:return X.UNSIGNED_SHORT;case Dt.INT32:return X.INT;case Dt.UINT32:return X.UNSIGNED_INT;case Dt.FLOAT32:return X.FLOAT;case Dt.FLOAT64:return X.DOUBLE}};var tn=Object.freeze(Dt);var Fr={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4",BOOLEAN:"BOOLEAN",STRING:"STRING",ENUM:"ENUM"};Fr.isVectorType=function(e){switch(e){case Fr.VEC2:case Fr.VEC3:case Fr.VEC4:return!0;default:return!1}};Fr.isMatrixType=function(e){switch(e){case Fr.MAT2:case Fr.MAT3:case Fr.MAT4:return!0;default:return!1}};Fr.getComponentCount=function(e){switch(e){case Fr.SCALAR:case Fr.STRING:case Fr.ENUM:case Fr.BOOLEAN:return 1;case Fr.VEC2:return 2;case Fr.VEC3:return 3;case Fr.VEC4:return 4;case Fr.MAT2:return 4;case Fr.MAT3:return 9;case Fr.MAT4:return 16}};Fr.getMathType=function(e){switch(e){case Fr.VEC2:return H;case Fr.VEC3:return h;case Fr.VEC4:return se;case Fr.MAT2:return er;case Fr.MAT3:return Q;case Fr.MAT4:return N;default:return}};var jt=Object.freeze(Fr);function ya(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.type,i=e.componentType,r=e.enumType,o=u(i)&&tn.isIntegerType(i)&&y(e.normalized,!1);this._id=t,this._name=e.name,this._description=e.description,this._semantic=e.semantic,this._isLegacyExtension=e.isLegacyExtension,this._type=n,this._componentType=i,this._enumType=r,this._valueType=u(r)?r.valueType:i,this._isArray=y(e.isArray,!1),this._isVariableLengthArray=y(e.isVariableLengthArray,!1),this._arrayLength=e.arrayLength,this._min=We(e.min,!0),this._max=We(e.max,!0),this._normalized=o;let s=We(e.offset,!0),a=We(e.scale,!0),c=u(s)||u(a),l=!0;u(s)||(s=this.expandConstant(0,l)),u(a)||(a=this.expandConstant(1,l)),this._offset=s,this._scale=a,this._hasValueTransform=c,this._noData=We(e.noData,!0),this._default=We(e.default,!0),this._required=y(e.required,!0),this._extras=We(e.extras,!0),this._extensions=We(e.extensions,!0)}ya.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.property,i=GBe(n),r=WBe(n,e.enums),o;return u(i)?i?o=u(n.optional)?!n.optional:!0:o=y(n.required,!1):o=!1,new ya({id:t,type:r.type,componentType:r.componentType,enumType:r.enumType,isArray:r.isArray,isVariableLengthArray:r.isVariableLengthArray,arrayLength:r.arrayLength,normalized:n.normalized,min:n.min,max:n.max,offset:n.offset,scale:n.scale,noData:n.noData,default:n.default,required:o,name:n.name,description:n.description,semantic:n.semantic,extras:n.extras,extensions:n.extensions,isLegacyExtension:i})};Object.defineProperties(ya.prototype,{id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},type:{get:function(){return this._type}},enumType:{get:function(){return this._enumType}},componentType:{get:function(){return this._componentType}},valueType:{get:function(){return this._valueType}},isArray:{get:function(){return this._isArray}},isVariableLengthArray:{get:function(){return this._isVariableLengthArray}},arrayLength:{get:function(){return this._arrayLength}},normalized:{get:function(){return this._normalized}},max:{get:function(){return this._max}},min:{get:function(){return this._min}},noData:{get:function(){return this._noData}},default:{get:function(){return this._default}},required:{get:function(){return this._required}},semantic:{get:function(){return this._semantic}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});function GBe(e){if(e.type==="ARRAY")return!0;let t=e.type;if(t===jt.SCALAR||jt.isMatrixType(t)||jt.isVectorType(t))return!1;if(u(tn[t]))return!0;if(u(e.noData)||u(e.scale)||u(e.offset)||u(e.required)||u(e.count)||u(e.array)||u(e.optional))return!1}function WBe(e,t){let n=e.type,i=e.componentType,r=n==="ARRAY",o,s,a;r?(o=!0,s=e.componentCount,a=!u(s)):e.array?(o=!0,s=e.count,a=!u(e.count)):(o=!1,s=void 0,a=!1);let c;if(u(e.enumType)&&(c=t[e.enumType]),n===jt.ENUM)return{type:n,componentType:void 0,enumType:c,valueType:c.valueType,isArray:o,isVariableLengthArray:a,arrayLength:s};if(r&&i===jt.ENUM)return{type:i,componentType:void 0,enumType:c,valueType:c.valueType,isArray:o,isVariableLengthArray:a,arrayLength:s};if(n===jt.SCALAR||jt.isMatrixType(n)||jt.isVectorType(n))return{type:n,componentType:i,enumType:void 0,valueType:i,isArray:o,isVariableLengthArray:a,arrayLength:s};if(n===jt.BOOLEAN||n===jt.STRING)return{type:n,componentType:void 0,enumType:void 0,valueType:void 0,isArray:o,isVariableLengthArray:a,arrayLength:s};if(r&&(i===jt.BOOLEAN||i===jt.STRING))return{type:i,componentType:void 0,enumType:void 0,valueType:void 0,isArray:o,isVariableLengthArray:a,arrayLength:s};if(u(i)&&u(tn[i]))return{type:jt.SCALAR,componentType:i,enumType:void 0,valueType:i,isArray:o,isVariableLengthArray:a,arrayLength:s};if(u(tn[n]))return{type:jt.SCALAR,componentType:n,enumType:void 0,valueType:n,isArray:o,isVariableLengthArray:a,arrayLength:s}}ya.prototype.normalize=function(e){return this._normalized?F5(e,this._valueType,tn.normalize):e};ya.prototype.unnormalize=function(e){return this._normalized?F5(e,this._valueType,tn.unnormalize):e};ya.prototype.applyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:ya.valueTransformInPlace(e,this._offset,this._scale,tn.applyValueTransform)};ya.prototype.unapplyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:ya.valueTransformInPlace(e,this._offset,this._scale,tn.unapplyValueTransform)};ya.prototype.expandConstant=function(e,t){t=y(t,!1);let n=this._isArray,i=this._arrayLength,r=jt.getComponentCount(this._type),o=n&&r>1;if(!n&&r===1)return e;if(!n)return new Array(r).fill(e);if(!o)return new Array(i).fill(e);if(!t)return new Array(this._arrayLength*r).fill(e);let s=new Array(r).fill(e);return new Array(this._arrayLength).fill(s)};ya.prototype.handleNoData=function(e){let t=this._noData;if(!u(t))return e;if(!Ane(e,t))return e};function Ane(e,t){if(!Array.isArray(e))return e===t;if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Ane(e[n],t[n]))return!1;return!0}ya.prototype.unpackVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=jt.getMathType(this._type),i=this._isArray,r=jt.getComponentCount(this._type),o=i&&r>1;return u(n)?t&&o?e.map(function(s){return n.unpack(s)}):i?n.unpackArray(e):n.unpack(e):e};ya.prototype.packVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=jt.getMathType(this._type),i=this._isArray,r=jt.getComponentCount(this._type),o=i&&r>1;return u(n)?t&&o?e.map(function(s){return n.pack(s,[])}):i?n.packArray(e,[]):n.pack(e,[]):e};ya.prototype.validate=function(e){if(!(!u(e)&&u(this._default)))return this._required&&!u(e)?"required property must have a value":this._isArray?jBe(this,e):xne(this,e)};function jBe(e,t){if(!Array.isArray(t))return`value ${t} must be an array`;let n=t.length;if(!e._isVariableLengthArray&&n!==e._arrayLength)return"Array length does not match property.arrayLength";for(let i=0;i<n;i++){let r=xne(e,t[i]);if(u(r))return r}}function xne(e,t){let n=e._type,i=e._componentType,r=e._enumType,o=e._normalized;return jt.isVectorType(n)?qBe(t,n,i):jt.isMatrixType(n)?YBe(t,n,i):n===jt.STRING?XBe(t):n===jt.BOOLEAN?KBe(t):n===jt.ENUM?JBe(t,r):ZBe(t,i,o)}function qBe(e,t,n){if(!tn.isVectorCompatible(n))return`componentType ${n} is incompatible with vector type ${t}`;if(t===jt.VEC2&&!(e instanceof H))return`vector value ${e} must be a Cartesian2`;if(t===jt.VEC3&&!(e instanceof h))return`vector value ${e} must be a Cartesian3`;if(t===jt.VEC4&&!(e instanceof se))return`vector value ${e} must be a Cartesian4`}function YBe(e,t,n){if(!tn.isVectorCompatible(n))return`componentType ${n} is incompatible with matrix type ${t}`;if(t===jt.MAT2&&!(e instanceof er))return`matrix value ${e} must be a Matrix2`;if(t===jt.MAT3&&!(e instanceof Q))return`matrix value ${e} must be a Matrix3`;if(t===jt.MAT4&&!(e instanceof N))return`matrix value ${e} must be a Matrix4`}function XBe(e){if(typeof e!="string")return RU(e,jt.STRING)}function KBe(e){if(typeof e!="boolean")return RU(e,jt.BOOLEAN)}function JBe(e,t){let n=typeof e;if(u(t))return n!=="string"||!u(t.valuesByName[e])?`value ${e} is not a valid enum name for ${t.id}`:void 0}function ZBe(e,t,n){let i=typeof e;switch(t){case tn.INT8:case tn.UINT8:case tn.INT16:case tn.UINT16:case tn.INT32:case tn.UINT32:case tn.FLOAT32:case tn.FLOAT64:return i!=="number"?RU(e,t):isFinite(e)?gne(e,t,n):yne(e,t);case tn.INT64:case tn.UINT64:return i!=="number"&&i!=="bigint"?RU(e,t):i==="number"&&!isFinite(e)?yne(e,t):gne(e,t,n)}}function RU(e,t){return`value ${e} does not match type ${t}`}function _ne(e,t,n){let i=`value ${e} is out of range for type ${t}`;return n&&(i+=" (normalized)"),i}function gne(e,t,n){if(n){let i=tn.isUnsignedIntegerType(t)?0:-1,r=1;return e<i||e>r?_ne(e,t,n):void 0}if(e<tn.getMinimum(t)||e>tn.getMaximum(t))return _ne(e,t,n)}function yne(e,t){return`value ${e} of type ${t} must be finite`}function F5(e,t,n){if(!Array.isArray(e))return n(e,t);for(let i=0;i<e.length;i++)e[i]=F5(e[i],t,n);return e}ya.valueTransformInPlace=function(e,t,n,i){if(!Array.isArray(e))return i(e,t,n);for(let r=0;r<e.length;r++)e[r]=ya.valueTransformInPlace(e[r],t[r],n[r],i);return e};var Sg=ya;function HP(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.property,i=e.classProperty,r=e.bufferViews,o=i.type,s=i.isArray,a=i.isVariableLengthArray,c=i.valueType,l=i.enumType,f=o===jt.STRING,d=o===jt.BOOLEAN,p=0,g;if(a){let _=y(n.arrayOffsetType,n.offsetType);_=y(tn[_],tn.UINT32);let b=y(n.arrayOffsets,n.arrayOffsetBufferView);g=new U5(r[b],_,t+1),p+=g.typedArray.byteLength}let m=jt.getComponentCount(o),A;a?A=g.get(t)-g.get(0):s?A=t*i.arrayLength:A=t;let x=m*A,C;if(f){let _=y(n.stringOffsetType,n.offsetType);_=y(tn[_],tn.UINT32);let b=y(n.stringOffsets,n.stringOffsetBufferView);C=new U5(r[b],_,x+1),p+=C.typedArray.byteLength}(f||d)&&(c=tn.UINT8);let T;f?T=C.get(x)-C.get(0):d?T=Math.ceil(x/8):T=x;let E=y(n.values,n.bufferView),S=new U5(r[E],c,T);p+=S.typedArray.byteLength;let v=n.offset,D=n.scale,M=i.hasValueTransform||u(v)||u(D);v=y(v,i.offset),D=y(D,i.scale),v=Cne(v),D=Cne(D);let O,B,L=this;f?O=function(_){return eLe(_,L._values,L._stringOffsets)}:d?(O=function(_){return tLe(_,L._values)},B=function(_,b){nLe(_,L._values,b)}):u(l)?(O=function(_){let b=L._values.get(_);return l.namesByValue[b]},B=function(_,b){let w=l.valuesByName[b];L._values.set(_,w)}):(O=function(_){return L._values.get(_)},B=function(_,b){L._values.set(_,b)}),this._arrayOffsets=g,this._stringOffsets=C,this._values=S,this._classProperty=i,this._count=t,this._vectorComponentCount=m,this._min=n.min,this._max=n.max,this._offset=v,this._scale=D,this._hasValueTransform=M,this._getValue=O,this._setValue=B,this._unpackedValues=void 0,this._extras=n.extras,this._extensions=n.extensions,this._byteLength=p}Object.defineProperties(HP.prototype,{hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){return this._byteLength}}});HP.prototype.get=function(e){let t=QBe(this,e);return t=this._classProperty.handleNoData(t),u(t)?(t=this._classProperty.normalize(t),t=uLe(this,t),this._classProperty.unpackVectorAndMatrixTypes(t)):(t=this._classProperty.default,this._classProperty.unpackVectorAndMatrixTypes(t))};HP.prototype.set=function(e,t){let n=this._classProperty;t=n.packVectorAndMatrixTypes(t),t=fLe(this,t),t=n.unnormalize(t),$Be(this,e,t)};HP.prototype.getTypedArray=function(){if(u(this._values))return this._values.typedArray};function Cne(e){if(!Array.isArray(e))return e;let t=[];for(let n=0;n<e.length;n++){let i=e[n];Array.isArray(i)?t.push.apply(t,i):t.push(i)}return t}function QBe(e,t){Ene(e)&&bne(e);let n=e._classProperty,i=n.isArray,r=n.type,o=jt.getComponentCount(r);if(u(e._unpackedValues)){let s=e._unpackedValues[t];return i?We(s,!0):s}return!i&&o===1?e._getValue(t):Tne(e,n,t)}function Tne(e,t,n){let i,r;if(t.isVariableLengthArray){i=e._arrayOffsets.get(n),r=e._arrayOffsets.get(n+1)-i;let s=jt.getComponentCount(t.type);i*=s,r*=s}else{let a=y(t.arrayLength,1)*e._vectorComponentCount;i=n*a,r=a}let o=new Array(r);for(let s=0;s<r;s++)o[s]=e._getValue(i+s);return o}function $Be(e,t,n){cLe(e,t,n)&&bne(e);let i=e._classProperty,r=i.isArray,o=i.type,s=jt.getComponentCount(o);if(u(e._unpackedValues)){i.isArray&&(n=We(n,!0)),e._unpackedValues[t]=n;return}if(!r&&s===1){e._setValue(t,n);return}let a,c;if(i.isVariableLengthArray)a=e._arrayOffsets.get(t),c=e._arrayOffsets.get(t+1)-a;else{let f=y(i.arrayLength,1)*e._vectorComponentCount;a=t*f,c=f}for(let l=0;l<c;++l)e._setValue(a+l,n[l])}function eLe(e,t,n){let i=n.get(e),r=n.get(e+1)-i;return _l(t.typedArray,i,r)}function tLe(e,t){let n=e>>3,i=e%8;return(t.typedArray[n]>>i&1)===1}function nLe(e,t,n){let i=e>>3,r=e%8;n?t.typedArray[i]|=1<<r:t.typedArray[i]&=~(1<<r)}function iLe(e,t){let n=t.dataView,i=e*8,r=0,o=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);o&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),r+=c*Math.pow(256,a)}return o&&(r=-r),r}function rLe(e,t){let n=t.dataView,i=e*8,r=BigInt(0),o=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);o&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),r+=BigInt(c)*(BigInt(1)<<BigInt(a*8))}return o&&(r=-r),r}function oLe(e,t){let n=t.dataView,i=e*8,r=n.getUint32(i,!0),o=n.getUint32(i+4,!0);return r+4294967296*o}function sLe(e,t){let n=t.dataView,i=e*8,r=BigInt(n.getUint32(i,!0)),o=BigInt(n.getUint32(i+4,!0));return r+BigInt(4294967296)*o}function aLe(e){switch(e){case tn.INT8:return X.BYTE;case tn.UINT8:return X.UNSIGNED_BYTE;case tn.INT16:return X.SHORT;case tn.UINT16:return X.UNSIGNED_SHORT;case tn.INT32:return X.INT;case tn.UINT32:return X.UNSIGNED_INT;case tn.FLOAT32:return X.FLOAT;case tn.FLOAT64:return X.DOUBLE}}function Ene(e){if(u(e._unpackedValues))return!1;let t=e._classProperty,n=t.type,i=t.valueType;return n===jt.STRING||i===tn.INT64&&!Ht.supportsBigInt64Array()||i===tn.UINT64&&!Ht.supportsBigUint64Array()}function cLe(e,t,n){if(Ene(e))return!0;let i=e._arrayOffsets;if(u(i)){let r=i.get(t+1)-i.get(t),o=n.length;if(r!==o)return!0}return!1}function bne(e){e._unpackedValues=lLe(e),e._arrayOffsets=void 0,e._stringOffsets=void 0,e._values=void 0}function lLe(e){let t=e._count,n=new Array(t),i=e._classProperty,r=i.isArray,o=i.type,s=jt.getComponentCount(o);if(!r&&s===1){for(let a=0;a<t;++a)n[a]=e._getValue(a);return n}for(let a=0;a<t;a++)n[a]=Tne(e,i,a);return n}function uLe(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:Sg.valueTransformInPlace(t,e._offset,e._scale,tn.applyValueTransform)}function fLe(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:Sg.valueTransformInPlace(t,e._offset,e._scale,tn.unapplyValueTransform)}function U5(e,t,n){let i=this,r,o,s;if(t===tn.INT64)Ht.supportsBigInt()?Ht.supportsBigInt64Array()?(r=new BigInt64Array(e.buffer,e.byteOffset,n),s=function(a,c){i.typedArray[a]=BigInt(c)}):(r=new Uint8Array(e.buffer,e.byteOffset,n*8),o=function(a){return rLe(a,i)}):(Ot("INT64 type is not fully supported on this platform. Values greater than 2^53 - 1 or less than -(2^53 - 1) may lose precision when read."),r=new Uint8Array(e.buffer,e.byteOffset,n*8),o=function(a){return iLe(a,i)});else if(t===tn.UINT64)Ht.supportsBigInt()?Ht.supportsBigUint64Array()?(r=new BigUint64Array(e.buffer,e.byteOffset,n),s=function(a,c){i.typedArray[a]=BigInt(c)}):(r=new Uint8Array(e.buffer,e.byteOffset,n*8),o=function(a){return sLe(a,i)}):(Ot("UINT64 type is not fully supported on this platform. Values greater than 2^53 - 1 may lose precision when read."),r=new Uint8Array(e.buffer,e.byteOffset,n*8),o=function(a){return oLe(a,i)});else{let a=aLe(t);r=X.createArrayBufferView(a,e.buffer,e.byteOffset,n),s=function(c,l){i.typedArray[c]=l}}u(o)||(o=function(a){return i.typedArray[a]}),this.typedArray=r,this.dataView=new DataView(r.buffer,r.byteOffset),this.get=o,this.set=s,this._componentType=t}var GP=HP;function Sd(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.class,i=0,r={};if(u(e.properties)){for(let o in e.properties)if(e.properties.hasOwnProperty(o)){let s=new GP({count:t,property:e.properties[o],classProperty:n.properties[o],bufferViews:e.bufferViews});r[o]=s,i+=s.byteLength}}this._count=t,this._class=n,this._properties=r,this._byteLength=i}Object.defineProperties(Sd.prototype,{count:{get:function(){return this._count}},class:{get:function(){return this._class}},byteLength:{get:function(){return this._byteLength}}});Sd.prototype.hasProperty=function(e){return Nn.hasProperty(e,this._properties,this._class)};Sd.prototype.hasPropertyBySemantic=function(e){return Nn.hasPropertyBySemantic(e,this._properties,this._class)};Sd.prototype.getPropertyIds=function(e){return Nn.getPropertyIds(this._properties,this._class,e)};Sd.prototype.getProperty=function(e,t){let n=this._properties[t],i;return u(n)?i=n.get(e):i=dLe(this._class,t),i};Sd.prototype.setProperty=function(e,t,n){let i=this._properties[t];return u(i)?(i.set(e,n),!0):!1};Sd.prototype.getPropertyBySemantic=function(e,t){let n,i=this._class.propertiesBySemantic;if(u(i)&&(n=i[t]),u(n))return this.getProperty(e,n.id)};Sd.prototype.setPropertyBySemantic=function(e,t,n){let i,r=this._class.propertiesBySemantic;return u(r)&&(i=r[t]),u(i)?this.setProperty(e,i.id,n):!1};Sd.prototype.getPropertyTypedArray=function(e){let t=this._properties[e];if(u(t))return t.getTypedArray()};Sd.prototype.getPropertyTypedArrayBySemantic=function(e){let t,n=this._class.propertiesBySemantic;if(u(n)&&(t=n[e]),u(t))return this.getPropertyTypedArray(t.id)};function dLe(e,t){let n=e.properties;if(!u(n))return;let i=n[t];if(u(i)&&u(i.default)){let r=i.default;return i.isArray&&(r=We(r,!0)),r=i.normalize(r),i.unpackVectorAndMatrixTypes(r)}}var yl=Sd;function vg(){}Object.defineProperties(vg.prototype,{cacheKey:{get:function(){fe.throwInstantiationError()}}});vg.prototype.load=function(){fe.throwInstantiationError()};vg.prototype.unload=function(){};vg.prototype.process=function(e){return!1};vg.prototype.getError=function(e,t){u(t)&&u(t.message)&&(e+=` +${t.message}`);let n=new de(e);return u(t)&&(n.stack=`Original stack: +${t.stack} +Handler stack: +${n.stack}`),n};vg.prototype.isDestroyed=function(){return!1};vg.prototype.destroy=function(){return this.unload(),ue(this)};var or=vg;var hLe={UNLOADED:0,LOADING:1,LOADED:2,PROCESSING:3,READY:4,FAILED:5},St=Object.freeze(hLe);function Pp(e){e=y(e,y.EMPTY_OBJECT);let t=e.typedArray,n=e.resource,i=e.cacheKey;this._typedArray=t,this._resource=n,this._cacheKey=i,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(Pp.prototype=Object.create(or.prototype),Pp.prototype.constructor=Pp);Object.defineProperties(Pp.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});Pp.prototype.load=async function(){return u(this._promise)?this._promise:u(this._typedArray)?(this._promise=Promise.resolve(this),this._promise):(this._promise=mLe(this),this._promise)};async function mLe(e){let t=e._resource;e._state=St.LOADING;try{let n=await Pp._fetchArrayBuffer(t);return e.isDestroyed()?void 0:(e._typedArray=new Uint8Array(n),e._state=St.READY,e)}catch(n){if(e.isDestroyed())return;e._state=St.FAILED;let i=`Failed to load external buffer: ${t.url}`;throw e.getError(i,n)}}Pp._fetchArrayBuffer=function(e){return e.fetchArrayBuffer()};Pp.prototype.unload=function(){this._typedArray=void 0};var EA=Pp;var Pne=Yi(Ine(),1);function bA(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.bufferViewId,r=e.gltfResource,o=e.baseResource,s=e.cacheKey,a=n.bufferViews[i],c=a.buffer,l=a.byteOffset,f=a.byteLength,d=!1,p,g,m,A;if(ni(a,"EXT_meshopt_compression")){let C=a.extensions.EXT_meshopt_compression;c=C.buffer,l=y(C.byteOffset,0),f=C.byteLength,d=!0,p=C.byteStride,g=C.count,m=C.mode,A=y(C.filter,"NONE")}let x=n.buffers[c];this._hasMeshopt=d,this._meshoptByteStride=p,this._meshoptCount=g,this._meshoptMode=m,this._meshoptFilter=A,this._resourceCache=t,this._gltfResource=r,this._baseResource=o,this._buffer=x,this._bufferId=c,this._byteOffset=l,this._byteLength=f,this._cacheKey=s,this._bufferLoader=void 0,this._typedArray=void 0,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(bA.prototype=Object.create(or.prototype),bA.prototype.constructor=bA);Object.defineProperties(bA.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});async function yLe(e){try{let t=ALe(e);if(e._bufferLoader=t,await t.load(),e.isDestroyed())return;let n=t.typedArray,i=new Uint8Array(n.buffer,n.byteOffset+e._byteOffset,e._byteLength);if(e.unload(),e._typedArray=i,e._hasMeshopt){let r=e._meshoptCount,o=e._meshoptByteStride,s=new Uint8Array(r*o);Pne.MeshoptDecoder.decodeGltfBuffer(s,r,o,e._typedArray,e._meshoptMode,e._meshoptFilter),e._typedArray=s}return e._state=St.READY,e}catch(t){if(e.isDestroyed())return;e.unload(),e._state=St.FAILED;let n="Failed to load buffer view";throw e.getError(n,t)}}bA.prototype.load=async function(){return u(this._promise)?this._promise:(this._state=St.LOADING,this._promise=yLe(this),this._promise)};function ALe(e){let t=e._resourceCache,n=e._buffer;if(u(n.uri)){let r=e._baseResource.getDerivedResource({url:n.uri});return t.getExternalBufferLoader({resource:r})}return t.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:e._bufferId})}bA.prototype.unload=function(){u(this._bufferLoader)&&!this._bufferLoader.isDestroyed()&&this._resourceCache.unload(this._bufferLoader),this._bufferLoader=void 0,this._typedArray=void 0};var NT=bA;function Xa(){}Xa._maxDecodingConcurrency=Math.max(Ht.hardwareConcurrency-1,1);Xa._decoderTaskProcessor=void 0;Xa._taskProcessorReady=!1;Xa._getDecoderTaskProcessor=function(){if(!u(Xa._decoderTaskProcessor)){let e=new pi("decodeDraco",Xa._maxDecodingConcurrency);e.initWebAssemblyModule({modulePath:"ThirdParty/Workers/draco_decoder_nodejs.js",wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(function(){Xa._taskProcessorReady=!0}),Xa._decoderTaskProcessor=e}return Xa._decoderTaskProcessor};Xa.decodePointCloud=function(e){let t=Xa._getDecoderTaskProcessor();if(Xa._taskProcessorReady)return t.scheduleTask(e,[e.buffer.buffer])};Xa.decodeBufferView=function(e){let t=Xa._getDecoderTaskProcessor();if(Xa._taskProcessorReady)return t.scheduleTask(e,[e.array.buffer])};var Op=Xa;function wg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.draco,r=e.gltfResource,o=e.baseResource,s=e.cacheKey;this._resourceCache=t,this._gltfResource=r,this._baseResource=o,this._gltf=n,this._draco=i,this._cacheKey=s,this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodePromise=void 0,this._decodedData=void 0,this._state=St.UNLOADED,this._promise=void 0,this._dracoError=void 0}u(Object.create)&&(wg.prototype=Object.create(or.prototype),wg.prototype.constructor=wg);Object.defineProperties(wg.prototype,{cacheKey:{get:function(){return this._cacheKey}},decodedData:{get:function(){return this._decodedData}}});async function xLe(e){let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._draco.bufferView,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._bufferViewTypedArray=n.typedArray,e._state=St.PROCESSING,e)}catch(n){if(e.isDestroyed())return;One(e,n)}}wg.prototype.load=async function(){return u(this._promise)?this._promise:(this._state=St.LOADING,this._promise=xLe(this),this._promise)};function One(e,t){e.unload(),e._state=St.FAILED;let n="Failed to load Draco";throw e.getError(n,t)}async function CLe(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={indices:n.indexArray,vertexAttributes:n.attributeData},e._state=St.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._dracoError=n}}wg.prototype.process=function(e){if(this._state===St.READY)return!0;if(this._state!==St.PROCESSING||(u(this._dracoError)&&One(this,this._dracoError),!u(this._bufferViewTypedArray))||u(this._decodePromise))return!1;let t=this._draco,i=this._gltf.bufferViews,r=t.bufferView,o=i[r],s=t.attributes,a={array:new Uint8Array(this._bufferViewTypedArray),bufferView:o,compressedAttributes:s,dequantizeInShader:!0},c=Op.decodeBufferView(a);if(!u(c))return!1;this._decodePromise=CLe(this,c)};wg.prototype.unload=function(){u(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0};var FT=wg;function TLe(e){let t=e.uint8Array,n=e.format,i=e.request,r=y(e.flipY,!1),o=y(e.skipColorSpaceConversion,!1),s=new Blob([t],{type:n}),a;return ve.supportsImageBitmapOptions().then(function(c){return c?Promise.resolve(ve.createImageBitmapFromBlob(s,{flipY:r,premultiplyAlpha:!1,skipColorSpaceConversion:o})):(a=window.URL.createObjectURL(s),new ve({url:a,request:i}).fetchImage({flipY:r,skipColorSpaceConversion:o}))}).then(function(c){return u(a)&&window.URL.revokeObjectURL(a),c}).catch(function(c){return u(a)&&window.URL.revokeObjectURL(a),Promise.reject(c)})}var SA=TLe;function Mp(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.imageId,r=e.gltfResource,o=e.baseResource,s=e.cacheKey,a=n.images[i],c=a.bufferView,l=a.uri;this._resourceCache=t,this._gltfResource=r,this._baseResource=o,this._gltf=n,this._bufferViewId=c,this._uri=l,this._cacheKey=s,this._bufferViewLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(Mp.prototype=Object.create(or.prototype),Mp.prototype.constructor=Mp);Object.defineProperties(Mp.prototype,{cacheKey:{get:function(){return this._cacheKey}},image:{get:function(){return this._image}},mipLevels:{get:function(){return this._mipLevels}}});Mp.prototype.load=function(){return u(this._promise)?this._promise:u(this._bufferViewId)?(this._promise=ELe(this),this._promise):(this._promise=bLe(this),this._promise)};function Mne(e){let t;return Array.isArray(e)&&(t=e.slice(1,e.length).map(function(n){return n.bufferView}),e=e[0]),{image:e,mipLevels:t}}async function ELe(e){e._state=St.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=n,await n.load(),e.isDestroyed())return;let i=n.typedArray,r=await vLe(i);if(e.isDestroyed())return;let o=Mne(r);return e.unload(),e._image=o.image,e._mipLevels=o.mipLevels,e._state=St.READY,e}catch(n){return e.isDestroyed()?void 0:Rne(e,n,"Failed to load embedded image")}}async function bLe(e){e._state=St.LOADING;let t=e._baseResource,n=e._uri,i=t.getDerivedResource({url:n});try{let r=await DLe(i);if(e.isDestroyed())return;let o=Mne(r);return e.unload(),e._image=o.image,e._mipLevels=o.mipLevels,e._state=St.READY,e}catch(r){return e.isDestroyed()?void 0:Rne(e,r,`Failed to load image: ${n}`)}}function Rne(e,t,n){return e.unload(),e._state=St.FAILED,Promise.reject(e.getError(n,t))}function SLe(e){let t=e.subarray(0,2),n=e.subarray(0,4),i=e.subarray(8,12);if(t[0]===255&&t[1]===216)return"image/jpeg";if(t[0]===137&&t[1]===80)return"image/png";if(t[0]===171&&t[1]===75)return"image/ktx2";if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&i[0]===87&&i[1]===69&&i[2]===66&&i[3]===80)return"image/webp";throw new de("Image format is not recognized")}async function vLe(e){let t=SLe(e);if(t==="image/ktx2"){let n=new Uint8Array(e);return cl(n)}return Mp._loadImageFromTypedArray({uint8Array:e,format:t,flipY:!1,skipColorSpaceConversion:!0})}var wLe=/(^data:image\/ktx2)|(\.ktx2$)/i;function DLe(e){let t=e.getUrlComponent(!1,!0);return wLe.test(t)?cl(e):e.fetchImage({skipColorSpaceConversion:!0,preferImageBitmap:!0})}Mp.prototype.unload=function(){u(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._uri=void 0,this._image=void 0,this._mipLevels=void 0,this._gltf=void 0};Mp._loadImageFromTypedArray=SA;var UT=Mp;var ILe={TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3},Aa=Object.freeze(ILe);function Dg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.accessorId,r=e.gltfResource,o=e.baseResource,s=e.draco,a=e.cacheKey,c=y(e.asynchronous,!0),l=y(e.loadBuffer,!1),f=y(e.loadTypedArray,!1),d=n.accessors[i].componentType;this._resourceCache=t,this._gltfResource=r,this._baseResource=o,this._gltf=n,this._accessorId=i,this._indexDatatype=d,this._draco=s,this._cacheKey=a,this._asynchronous=c,this._loadBuffer=l,this._loadTypedArray=f,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(Dg.prototype=Object.create(or.prototype),Dg.prototype.constructor=Dg);Object.defineProperties(Dg.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},indexDatatype:{get:function(){return this._indexDatatype}}});var PLe=new G5;Dg.prototype.load=async function(){return u(this._promise)?this._promise:u(this._draco)?(this._promise=OLe(this),this._promise):(this._promise=MLe(this),this._promise)};async function OLe(e){e._state=St.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=St.LOADED,e)}catch(n){if(e.isDestroyed())return;H5(e,n)}}async function MLe(e){let t=e._gltf,n=e._accessorId,r=t.accessors[n].bufferView;e._state=St.LOADING;let o=e._resourceCache;try{let s=o.getBufferViewLoader({gltf:t,bufferViewId:r,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=s,await s.load(),e.isDestroyed())return;let a=s.typedArray;return e._typedArray=RLe(e,a),e._state=St.PROCESSING,e}catch(s){if(e.isDestroyed())return;H5(e,s)}}function RLe(e,t){let n=e._gltf,i=e._accessorId,r=n.accessors[i],o=r.count,s=r.componentType,a=Ue.getSizeInBytes(s),c=t.buffer,l=t.byteOffset+r.byteOffset;if(l%a!==0){let d=o*a,p=new Uint8Array(c,l,d);c=new Uint8Array(p).buffer,l=0,$("index-buffer-unaligned",`The index array is not aligned to a ${a}-byte boundary.`)}let f;return s===Ue.UNSIGNED_BYTE?f=new Uint8Array(c,l,o):s===Ue.UNSIGNED_SHORT?f=new Uint16Array(c,l,o):s===Ue.UNSIGNED_INT&&(f=new Uint32Array(c,l,o)),f}function H5(e,t){e.unload(),e._state=St.FAILED;let n="Failed to load index buffer";throw e.getError(n,t)}function G5(){this.typedArray=void 0,this.indexDatatype=void 0,this.context=void 0,this.buffer=void 0}G5.prototype.set=function(e,t,n){this.typedArray=e,this.indexDatatype=t,this.context=n};G5.prototype.execute=function(){this.buffer=Bne(this.typedArray,this.indexDatatype,this.context)};function Bne(e,t,n){let i=ht.createIndexBuffer({typedArray:e,context:n,usage:Fe.STATIC_DRAW,indexDatatype:t});return i.vertexArrayDestroyable=!1,i}Dg.prototype.process=function(e){if(this._state===St.READY)return!0;if(this._state!==St.LOADED&&this._state!==St.PROCESSING)return!1;let t=this._typedArray,n=this._indexDatatype;if(u(this._dracoLoader))try{this._dracoLoader.process(e)&&(t=this._dracoLoader.decodedData.indices.typedArray,this._typedArray=t,n=X.fromTypedArray(t),this._indexDatatype=n)}catch(r){H5(this,r)}if(!u(t))return!1;let i;if(this._loadBuffer&&this._asynchronous){let r=PLe;if(r.set(t,n,e.context),!e.jobScheduler.execute(r,Aa.BUFFER))return!1;i=r.buffer}else this._loadBuffer&&(i=Bne(t,n,e.context));return this.unload(),this._buffer=i,this._typedArray=this._loadTypedArray?t:void 0,this._state=St.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};Dg.prototype.unload=function(){u(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;u(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),u(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var VT=Dg;function BLe(e,t,n){if(n=y(n,!1),n){let i=e.indexOf(t);if(i>-1)return i}return e.push(t),e.length-1}var cs=BLe;function LLe(e,t){return u(e.extensionsUsed)&&e.extensionsUsed.indexOf(t)>=0}var yo=LLe;function qt(){}qt.objectLegacy=function(e,t){if(u(e)){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],r=t(i,n);if(u(r))return r}}};qt.object=function(e,t){if(u(e)){let n=e.length;for(let i=0;i<n;i++){let r=e[i],o=t(r,i);if(u(o))return o}}};qt.topLevel=function(e,t,n){let i=e[t];return u(i)&&!Array.isArray(i)?qt.objectLegacy(i,n):qt.object(i,n)};qt.accessor=function(e,t){return qt.topLevel(e,"accessors",t)};qt.accessorWithSemantic=function(e,t,n){let i={};return qt.mesh(e,function(r){return qt.meshPrimitive(r,function(o){let s=qt.meshPrimitiveAttribute(o,function(a,c){if(c.indexOf(t)===0&&!u(i[a])){i[a]=!0;let l=n(a);if(u(l))return l}});return u(s)?s:qt.meshPrimitiveTarget(o,function(a){return qt.meshPrimitiveTargetAttribute(a,function(c,l){if(l.indexOf(t)===0&&!u(i[c])){i[c]=!0;let f=n(c);if(u(f))return f}})})})})};qt.accessorContainingVertexAttributeData=function(e,t){let n={};return qt.mesh(e,function(i){return qt.meshPrimitive(i,function(r){let o=qt.meshPrimitiveAttribute(r,function(s){if(!u(n[s])){n[s]=!0;let a=t(s);if(u(a))return a}});return u(o)?o:qt.meshPrimitiveTarget(r,function(s){return qt.meshPrimitiveTargetAttribute(s,function(a){if(!u(n[a])){n[a]=!0;let c=t(a);if(u(c))return c}})})})})};qt.accessorContainingIndexData=function(e,t){let n={};return qt.mesh(e,function(i){return qt.meshPrimitive(i,function(r){let o=r.indices;if(u(o)&&!u(n[o])){n[o]=!0;let s=t(o);if(u(s))return s}})})};qt.animation=function(e,t){return qt.topLevel(e,"animations",t)};qt.animationChannel=function(e,t){let n=e.channels;return qt.object(n,t)};qt.animationSampler=function(e,t){let n=e.samplers;return qt.object(n,t)};qt.buffer=function(e,t){return qt.topLevel(e,"buffers",t)};qt.bufferView=function(e,t){return qt.topLevel(e,"bufferViews",t)};qt.camera=function(e,t){return qt.topLevel(e,"cameras",t)};qt.image=function(e,t){return qt.topLevel(e,"images",t)};qt.material=function(e,t){return qt.topLevel(e,"materials",t)};qt.materialValue=function(e,t){let n=e.values;u(e.extensions)&&u(e.extensions.KHR_techniques_webgl)&&(n=e.extensions.KHR_techniques_webgl.values);for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let r=t(n[i],i);if(u(r))return r}};qt.mesh=function(e,t){return qt.topLevel(e,"meshes",t)};qt.meshPrimitive=function(e,t){let n=e.primitives;if(u(n)){let i=n.length;for(let r=0;r<i;r++){let o=n[r],s=t(o,r);if(u(s))return s}}};qt.meshPrimitiveAttribute=function(e,t){let n=e.attributes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let r=t(n[i],i);if(u(r))return r}};qt.meshPrimitiveTarget=function(e,t){let n=e.targets;if(u(n)){let i=n.length;for(let r=0;r<i;++r){let o=t(n[r],r);if(u(o))return o}}};qt.meshPrimitiveTargetAttribute=function(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],r=t(i,n);if(u(r))return r}};qt.node=function(e,t){return qt.topLevel(e,"nodes",t)};qt.nodeInTree=function(e,t,n){let i=e.nodes;if(u(i)){let r=t.length;for(let o=0;o<r;o++){let s=t[o],a=i[s];if(u(a)){let c=n(a,s);if(u(c))return c;let l=a.children;if(u(l)&&(c=qt.nodeInTree(e,l,n),u(c)))return c}}}};qt.nodeInScene=function(e,t,n){let i=t.nodes;if(u(i))return qt.nodeInTree(e,i,n)};qt.program=function(e,t){return yo(e,"KHR_techniques_webgl")?qt.object(e.extensions.KHR_techniques_webgl.programs,t):qt.topLevel(e,"programs",t)};qt.sampler=function(e,t){return qt.topLevel(e,"samplers",t)};qt.scene=function(e,t){return qt.topLevel(e,"scenes",t)};qt.shader=function(e,t){return yo(e,"KHR_techniques_webgl")?qt.object(e.extensions.KHR_techniques_webgl.shaders,t):qt.topLevel(e,"shaders",t)};qt.skin=function(e,t){return qt.topLevel(e,"skins",t)};qt.skinJoint=function(e,t){let n=e.joints;if(u(n)){let i=n.length;for(let r=0;r<i;r++){let o=n[r],s=t(o);if(u(s))return s}}};qt.techniqueAttribute=function(e,t){let n=e.attributes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let r=t(n[i],i);if(u(r))return r}};qt.techniqueUniform=function(e,t){let n=e.uniforms;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let r=t(n[i],i);if(u(r))return r}};qt.techniqueParameter=function(e,t){let n=e.parameters;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let r=t(n[i],i);if(u(r))return r}};qt.technique=function(e,t){return yo(e,"KHR_techniques_webgl")?qt.object(e.extensions.KHR_techniques_webgl.techniques,t):qt.topLevel(e,"techniques",t)};qt.texture=function(e,t){return qt.topLevel(e,"textures",t)};var Oe=qt;function NLe(e){switch(e){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}}var au=NLe;function FLe(e,t){let n=t.bufferView;if(u(n)){let i=e.bufferViews[n];if(u(i.byteStride)&&i.byteStride>0)return i.byteStride}return X.getSizeInBytes(t.componentType)*au(t.type)}var Al=FLe;function ULe(e){Oe.accessor(e,function(n){u(n.bufferView)&&(n.byteOffset=y(n.byteOffset,0))}),Oe.bufferView(e,function(n){u(n.buffer)&&(n.byteOffset=y(n.byteOffset,0))}),Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){if(i.mode=y(i.mode,te.TRIANGLES),!u(i.material)){u(e.materials)||(e.materials=[]);let r={name:"default"};i.material=cs(e.materials,r)}})}),Oe.accessorContainingVertexAttributeData(e,function(n){let i=e.accessors[n],r=i.bufferView;if(i.normalized=y(i.normalized,!1),u(r)){let o=e.bufferViews[r];o.byteStride=Al(e,i),o.target=te.ARRAY_BUFFER}}),Oe.accessorContainingIndexData(e,function(n){let r=e.accessors[n].bufferView;if(u(r)){let o=e.bufferViews[r];o.target=te.ELEMENT_ARRAY_BUFFER}}),Oe.material(e,function(n){let i=y(n.extensions,y.EMPTY_OBJECT),r=i.KHR_materials_common;if(u(r)){let c=r.technique,l=u(r.values)?r.values:{};r.values=l,l.ambient=u(l.ambient)?l.ambient:[0,0,0,1],l.emission=u(l.emission)?l.emission:[0,0,0,1],l.transparency=y(l.transparency,1),c!=="CONSTANT"&&(l.diffuse=u(l.diffuse)?l.diffuse:[0,0,0,1],c!=="LAMBERT"&&(l.specular=u(l.specular)?l.specular:[0,0,0,1],l.shininess=y(l.shininess,0))),r.transparent=y(r.transparent,!1),r.doubleSided=y(r.doubleSided,!1);return}n.emissiveFactor=y(n.emissiveFactor,[0,0,0]),n.alphaMode=y(n.alphaMode,"OPAQUE"),n.doubleSided=y(n.doubleSided,!1),n.alphaMode==="MASK"&&(n.alphaCutoff=y(n.alphaCutoff,.5));let o=i.KHR_techniques_webgl;u(o)&&Oe.materialValue(n,function(c){u(c.index)&&vA(c)}),vA(n.emissiveTexture),vA(n.normalTexture),vA(n.occlusionTexture);let s=n.pbrMetallicRoughness;u(s)&&(s.baseColorFactor=y(s.baseColorFactor,[1,1,1,1]),s.metallicFactor=y(s.metallicFactor,1),s.roughnessFactor=y(s.roughnessFactor,1),vA(s.baseColorTexture),vA(s.metallicRoughnessTexture));let a=i.KHR_materials_pbrSpecularGlossiness;u(a)&&(a.diffuseFactor=y(a.diffuseFactor,[1,1,1,1]),a.specularFactor=y(a.specularFactor,[1,1,1]),a.glossinessFactor=y(a.glossinessFactor,1),vA(a.specularGlossinessTexture))}),Oe.animation(e,function(n){Oe.animationSampler(n,function(i){i.interpolation=y(i.interpolation,"LINEAR")})});let t=VLe(e);return Oe.node(e,function(n,i){u(t[i])||u(n.translation)||u(n.rotation)||u(n.scale)?(n.translation=y(n.translation,[0,0,0]),n.rotation=y(n.rotation,[0,0,0,1]),n.scale=y(n.scale,[1,1,1])):n.matrix=y(n.matrix,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}),Oe.sampler(e,function(n){n.wrapS=y(n.wrapS,te.REPEAT),n.wrapT=y(n.wrapT,te.REPEAT)}),u(e.scenes)&&!u(e.scene)&&(e.scene=0),e}function VLe(e){let t={};return Oe.animation(e,function(n){Oe.animationChannel(n,function(i){let r=i.target,o=r.node,s=r.path;(s==="translation"||s==="rotation"||s==="scale")&&(t[o]=!0)})}),t}function vA(e){u(e)&&(e.texCoord=y(e.texCoord,0))}var YP=ULe;function kLe(e){return Oe.shader(e,function(t){FU(t)}),Oe.buffer(e,function(t){FU(t)}),Oe.image(e,function(t){FU(t)}),FU(e),e}function FU(e){e.extras=u(e.extras)?e.extras:{},e.extras._pipeline=u(e.extras._pipeline)?e.extras._pipeline:{}}var Ig=kLe;function zLe(e,t){let n=e.extensionsRequired;if(u(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),n.length===0&&delete e.extensionsRequired}}var XP=zLe;function HLe(e,t){let n=e.extensionsUsed;if(u(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),XP(e,t),n.length===0&&delete e.extensionsUsed}}var wA=HLe;var GLe=4;function WLe(e){if(Td(e)!=="glTF")throw new de("File is not valid binary glTF");let n=Lne(e,0,5),i=n[1];if(i!==1&&i!==2)throw new de("Binary glTF version is not 1 or 2");return i===1?jLe(e,n):qLe(e,n)}function Lne(e,t,n){let i=new DataView(e.buffer),r=new Array(n);for(let o=0;o<n;++o)r[o]=i.getUint32(e.byteOffset+t+o*GLe,!0);return r}function jLe(e,t){let n=t[2],i=t[3];if(t[4]!==0)throw new de("Binary glTF scene format is not JSON");let o=20,s=o+i,a=_l(e,o,i),c=JSON.parse(a);Ig(c);let l=e.subarray(s,n),f=c.buffers;if(u(f)&&Object.keys(f).length>0){let d=y(f.binary_glTF,f.KHR_binary_glTF);u(d)&&(d.extras._pipeline.source=l,delete d.uri)}return wA(c,"KHR_binary_glTF"),c}function qLe(e,t){let n=t[2],i=12,r,o;for(;i<n;){let s=Lne(e,i,2),a=s[0],c=s[1];i+=8;let l=e.subarray(i,i+a);if(i+=a,c===1313821514){let f=_l(l);r=JSON.parse(f),Ig(r)}else c===5130562&&(o=l)}if(u(r)&&u(o)){let s=r.buffers;if(u(s)&&s.length>0){let a=s[0];a.extras._pipeline.source=o}}return r}var KP=WLe;function YLe(e){return Oe.shader(e,function(t){UU(t)}),Oe.buffer(e,function(t){UU(t)}),Oe.image(e,function(t){UU(t)}),UU(e),e}function UU(e){u(e.extras)&&(u(e.extras._pipeline)&&delete e.extras._pipeline,Object.keys(e.extras).length===0&&delete e.extras)}var JP=YLe;function XLe(e,t){let n=e.extensionsUsed;u(n)||(n=[],e.extensionsUsed=n),cs(n,t,!0)}var sf=XLe;function KLe(e){switch(e){case X.BYTE:return function(t,n,i,r,o){for(let s=0;s<i;++s)o[s]=t.getInt8(n+s*r)};case X.UNSIGNED_BYTE:return function(t,n,i,r,o){for(let s=0;s<i;++s)o[s]=t.getUint8(n+s*r)};case X.SHORT:return function(t,n,i,r,o){for(let s=0;s<i;++s)o[s]=t.getInt16(n+s*r,!0)};case X.UNSIGNED_SHORT:return function(t,n,i,r,o){for(let s=0;s<i;++s)o[s]=t.getUint16(n+s*r,!0)};case X.INT:return function(t,n,i,r,o){for(let s=0;s<i;++s)o[s]=t.getInt32(n+s*r,!0)};case X.UNSIGNED_INT:return function(t,n,i,r,o){for(let s=0;s<i;++s)o[s]=t.getUint32(n+s*r,!0)};case X.FLOAT:return function(t,n,i,r,o){for(let s=0;s<i;++s)o[s]=t.getFloat32(n+s*r,!0)};case X.DOUBLE:return function(t,n,i,r,o){for(let s=0;s<i;++s)o[s]=t.getFloat64(n+s*r,!0)}}}var Rp=KLe;function JLe(e,t){let n=e.bufferViews,i=e.buffers,r=t.bufferView,o=au(t.type);if(!u(t.bufferView))return{min:new Array(o).fill(0),max:new Array(o).fill(0)};let s=new Array(o).fill(Number.POSITIVE_INFINITY),a=new Array(o).fill(Number.NEGATIVE_INFINITY),c=n[r],l=c.buffer,d=i[l].extras._pipeline.source,p=t.count,g=Al(e,t),m=t.byteOffset+c.byteOffset+d.byteOffset,A=t.componentType,x=X.getSizeInBytes(A),C=new DataView(d.buffer),T=new Array(o),E=Rp(A);for(let S=0;S<p;S++){E(C,m,o,x,T);for(let v=0;v<o;v++){let D=T[v];s[v]=Math.min(s[v],D),a[v]=Math.max(a[v],D)}m+=g}return{min:s,max:a}}var DA=JLe;var ZLe=[te.FUNC_ADD,te.FUNC_ADD],QLe=[te.ONE,te.ZERO,te.ONE,te.ZERO];function Nne(e,t){let n=e.enable;return u(n)?n.indexOf(t)>-1:!1}var $Le=[te.ZERO,te.ONE,te.SRC_COLOR,te.ONE_MINUS_SRC_COLOR,te.SRC_ALPHA,te.ONE_MINUS_SRC_ALPHA,te.DST_ALPHA,te.ONE_MINUS_DST_ALPHA,te.DST_COLOR,te.ONE_MINUS_DST_COLOR];function eNe(e,t){if(!u(e))return t;for(let n=0;n<4;n++)if($Le.indexOf(e[n])===-1)return t;return e}function tNe(e){let t={},n={},i=e.techniques;return u(i)&&(Oe.technique(e,function(r,o){let s=r.states;if(u(s)){let a=n[o]={};if(Nne(s,te.BLEND)){a.alphaMode="BLEND";let c=s.functions;u(c)&&(u(c.blendEquationSeparate)||u(c.blendFuncSeparate))&&(t[o]={blendEquation:y(c.blendEquationSeparate,ZLe),blendFactors:eNe(c.blendFuncSeparate,QLe)})}Nne(s,te.CULL_FACE)||(a.doubleSided=!0),delete r.states}}),Object.keys(t).length>0&&(u(e.extensions)||(e.extensions={}),sf(e,"KHR_blend")),Oe.material(e,function(r){if(u(r.technique)){let o=n[r.technique];Oe.objectLegacy(o,function(a,c){r[c]=a});let s=t[r.technique];u(s)&&(u(r.extensions)||(r.extensions={}),r.extensions.KHR_blend=s)}})),e}var ZP=tNe;function nNe(e,t){let n=e.extensionsRequired;u(n)||(n=[],e.extensionsRequired=n),cs(n,t,!0),sf(e,t)}var QP=nNe;function iNe(e){let t=e.techniques,n={},i={},r={};if(u(t)){let o={programs:[],shaders:[],techniques:[]},s=e.glExtensionsUsed;delete e.glExtensionsUsed,Oe.technique(e,function(a,c){let l={name:a.name,program:void 0,attributes:{},uniforms:{}},f;if(Oe.techniqueAttribute(a,function(d,p){f=a.parameters[d],l.attributes[p]={semantic:f.semantic}}),Oe.techniqueUniform(a,function(d,p){f=a.parameters[d],l.uniforms[p]={count:f.count,node:f.node,type:f.type,semantic:f.semantic,value:f.value},u(n[c])||(n[c]={}),n[c][d]=p}),u(r[a.program]))l.program=r[a.program];else{let d=e.programs[a.program],p={name:d.name,fragmentShader:void 0,vertexShader:void 0,glExtensions:s},g=e.shaders[d.fragmentShader];p.fragmentShader=cs(o.shaders,g,!0);let m=e.shaders[d.vertexShader];p.vertexShader=cs(o.shaders,m,!0),l.program=cs(o.programs,p),r[a.program]=l.program}i[c]=cs(o.techniques,l)}),o.techniques.length>0&&(u(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=o,sf(e,"KHR_techniques_webgl"),QP(e,"KHR_techniques_webgl"))}return Oe.material(e,function(o){if(u(o.technique)){let s={technique:i[o.technique]};Oe.objectLegacy(o.values,function(a,c){u(s.values)||(s.values={});let l=n[o.technique][c];u(l)&&(s.values[l]=a)}),u(o.extensions)||(o.extensions={}),o.extensions.KHR_techniques_webgl=s}delete o.technique,delete o.values}),delete e.techniques,delete e.programs,delete e.shaders,e}var $P=iNe;function rNe(e,t){ol.typeOf.object("material",e),ol.defined("handler",t);let n=e.pbrMetallicRoughness;if(u(n)){if(u(n.baseColorTexture)){let r=n.baseColorTexture,o=t(r.index,r);if(u(o))return o}if(u(n.metallicRoughnessTexture)){let r=n.metallicRoughnessTexture,o=t(r.index,r);if(u(o))return o}}if(u(e.extensions)){let r=e.extensions.KHR_materials_pbrSpecularGlossiness;if(u(r)){if(u(r.diffuseTexture)){let s=r.diffuseTexture,a=t(s.index,s);if(u(a))return a}if(u(r.specularGlossinessTexture)){let s=r.specularGlossinessTexture,a=t(s.index,s);if(u(a))return a}}let o=e.extensions.KHR_materials_common;if(u(o)&&u(o.values)){let s=o.values.diffuse,a=o.values.ambient,c=o.values.emission,l=o.values.specular;if(u(s)&&u(s.index)){let f=t(s.index,s);if(u(f))return f}if(u(a)&&u(a.index)){let f=t(a.index,a);if(u(f))return f}if(u(c)&&u(c.index)){let f=t(c.index,c);if(u(f))return f}if(u(l)&&u(l.index)){let f=t(l.index,l);if(u(f))return f}}}let i=Oe.materialValue(e,function(r){if(u(r.index)){let o=t(r.index,r);if(u(o))return o}});if(u(i))return i;if(u(e.emissiveTexture)){let r=e.emissiveTexture,o=t(r.index,r);if(u(o))return o}if(u(e.normalTexture)){let r=e.normalTexture,o=t(r.index,r);if(u(o))return o}if(u(e.occlusionTexture)){let r=e.occlusionTexture,o=t(r.index,r);if(u(o))return o}}var kT=rNe;var Fne=["mesh","node","material","accessor","bufferView","buffer","texture","sampler","image"];function oNe(e,t){return t=y(t,Fne),Fne.forEach(function(n){t.indexOf(n)>-1&&aNe(e,n)}),e}var sNe={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews",image:"images",node:"nodes",material:"materials",mesh:"meshes",sampler:"samplers",texture:"textures"};function aNe(e,t){let n=sNe[t],i=e[n];if(u(i)){let r=0,o=Yh[t](e),s=i.length;for(let a=0;a<s;++a)o[a]||(qh[t](e,a-r),r++)}}function qh(){}qh.accessor=function(e,t){e.accessors.splice(t,1),Oe.mesh(e,function(i){Oe.meshPrimitive(i,function(r){Oe.meshPrimitiveAttribute(r,function(s,a){s>t&&r.attributes[a]--}),Oe.meshPrimitiveTarget(r,function(s){Oe.meshPrimitiveTargetAttribute(s,function(a,c){a>t&&s[c]--})});let o=r.indices;u(o)&&o>t&&r.indices--})}),Oe.skin(e,function(i){u(i.inverseBindMatrices)&&i.inverseBindMatrices>t&&i.inverseBindMatrices--}),Oe.animation(e,function(i){Oe.animationSampler(i,function(r){u(r.input)&&r.input>t&&r.input--,u(r.output)&&r.output>t&&r.output--})})};qh.buffer=function(e,t){e.buffers.splice(t,1),Oe.bufferView(e,function(i){u(i.buffer)&&i.buffer>t&&i.buffer--,u(i.extensions)&&u(i.extensions.EXT_meshopt_compression)&&i.extensions.EXT_meshopt_compression.buffer--})};qh.bufferView=function(e,t){if(e.bufferViews.splice(t,1),Oe.accessor(e,function(i){u(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Oe.shader(e,function(i){u(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Oe.image(e,function(i){u(i.bufferView)&&i.bufferView>t&&i.bufferView--}),yo(e,"KHR_draco_mesh_compression")&&Oe.mesh(e,function(i){Oe.meshPrimitive(i,function(r){u(r.extensions)&&u(r.extensions.KHR_draco_mesh_compression)&&r.extensions.KHR_draco_mesh_compression.bufferView>t&&r.extensions.KHR_draco_mesh_compression.bufferView--})}),yo(e,"EXT_feature_metadata")){let r=e.extensions.EXT_feature_metadata.featureTables;for(let o in r)if(r.hasOwnProperty(o)){let a=r[o].properties;if(u(a)){for(let c in a)if(a.hasOwnProperty(c)){let l=a[c];u(l.bufferView)&&l.bufferView>t&&l.bufferView--,u(l.arrayOffsetBufferView)&&l.arrayOffsetBufferView>t&&l.arrayOffsetBufferView--,u(l.stringOffsetBufferView)&&l.stringOffsetBufferView>t&&l.stringOffsetBufferView--}}}}if(yo(e,"EXT_structural_metadata")){let r=e.extensions.EXT_structural_metadata.propertyTables;if(u(r)){let o=r.length;for(let s=0;s<o;++s){let c=r[s].properties;for(let l in c)if(c.hasOwnProperty(l)){let f=c[l];u(f.values)&&f.values>t&&f.values--,u(f.arrayOffsets)&&f.arrayOffsets>t&&f.arrayOffsets--,u(f.stringOffsets)&&f.stringOffsets>t&&f.stringOffsets--}}}}};qh.image=function(e,t){e.images.splice(t,1),Oe.texture(e,function(i){u(i.source)&&i.source>t&&--i.source;let r=i.extensions;u(r)&&u(r.EXT_texture_webp)&&r.EXT_texture_webp.source>t?--i.extensions.EXT_texture_webp.source:u(r)&&u(r.KHR_texture_basisu)&&r.KHR_texture_basisu.source>t&&--i.extensions.KHR_texture_basisu.source})};qh.mesh=function(e,t){e.meshes.splice(t,1),Oe.node(e,function(i){u(i.mesh)&&(i.mesh>t?i.mesh--:i.mesh===t&&delete i.mesh)})};qh.node=function(e,t){e.nodes.splice(t,1),Oe.skin(e,function(i){u(i.skeleton)&&i.skeleton>t&&i.skeleton--,i.joints=i.joints.map(function(r){return r>t?r-1:r})}),Oe.animation(e,function(i){Oe.animationChannel(i,function(r){u(r.target)&&u(r.target.node)&&r.target.node>t&&r.target.node--})}),Oe.technique(e,function(i){Oe.techniqueUniform(i,function(r){u(r.node)&&r.node>t&&r.node--})}),Oe.node(e,function(i){u(i.children)&&(i.children=i.children.filter(function(r){return r!==t}).map(function(r){return r>t?r-1:r}))}),Oe.scene(e,function(i){i.nodes=i.nodes.filter(function(r){return r!==t}).map(function(r){return r>t?r-1:r})})};qh.material=function(e,t){e.materials.splice(t,1),Oe.mesh(e,function(i){Oe.meshPrimitive(i,function(r){u(r.material)&&r.material>t&&r.material--})})};qh.sampler=function(e,t){e.samplers.splice(t,1),Oe.texture(e,function(i){u(i.sampler)&&i.sampler>t&&--i.sampler})};qh.texture=function(e,t){if(e.textures.splice(t,1),Oe.material(e,function(i){kT(i,function(r,o){o.index>t&&--o.index})}),yo(e,"EXT_feature_metadata")){Oe.mesh(e,function(o){Oe.meshPrimitive(o,function(s){let a=s.extensions;if(u(a)&&u(a.EXT_feature_metadata)){let l=a.EXT_feature_metadata.featureIdTextures;if(u(l)){let f=l.length;for(let d=0;d<f;++d){let g=l[d].featureIds.texture;g.index>t&&--g.index}}}})});let r=e.extensions.EXT_feature_metadata.featureTextures;for(let o in r)if(r.hasOwnProperty(o)){let a=r[o].properties;if(u(a)){for(let c in a)if(a.hasOwnProperty(c)){let f=a[c].texture;f.index>t&&--f.index}}}}if(yo(e,"EXT_mesh_features")&&Oe.mesh(e,function(i){Oe.meshPrimitive(i,function(r){let o=r.extensions;if(u(o)&&u(o.EXT_mesh_features)){let a=o.EXT_mesh_features.featureIds;if(u(a)){let c=a.length;for(let l=0;l<c;++l){let f=a[l];u(f.texture)&&f.texture.index>t&&--f.texture.index}}}})}),yo(e,"EXT_structural_metadata")){let r=e.extensions.EXT_structural_metadata.propertyTextures;if(u(r)){let o=r.length;for(let s=0;s<o;++s){let c=r[s].properties;for(let l in c)if(c.hasOwnProperty(l)){let f=c[l];f.index>t&&--f.index}}}}};function Yh(){}Yh.accessor=function(e){let t={};return Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){Oe.meshPrimitiveAttribute(i,function(o){t[o]=!0}),Oe.meshPrimitiveTarget(i,function(o){Oe.meshPrimitiveTargetAttribute(o,function(s){t[s]=!0})});let r=i.indices;u(r)&&(t[r]=!0)})}),Oe.skin(e,function(n){u(n.inverseBindMatrices)&&(t[n.inverseBindMatrices]=!0)}),Oe.animation(e,function(n){Oe.animationSampler(n,function(i){u(i.input)&&(t[i.input]=!0),u(i.output)&&(t[i.output]=!0)})}),yo(e,"EXT_mesh_gpu_instancing")&&Oe.node(e,function(n){u(n.extensions)&&u(n.extensions.EXT_mesh_gpu_instancing)&&Object.keys(n.extensions.EXT_mesh_gpu_instancing.attributes).forEach(function(i){let r=n.extensions.EXT_mesh_gpu_instancing.attributes[i];t[r]=!0})}),t};Yh.buffer=function(e){let t={};return Oe.bufferView(e,function(n){u(n.buffer)&&(t[n.buffer]=!0),u(n.extensions)&&u(n.extensions.EXT_meshopt_compression)&&(t[n.extensions.EXT_meshopt_compression.buffer]=!0)}),t};Yh.bufferView=function(e){let t={};if(Oe.accessor(e,function(n){u(n.bufferView)&&(t[n.bufferView]=!0)}),Oe.shader(e,function(n){u(n.bufferView)&&(t[n.bufferView]=!0)}),Oe.image(e,function(n){u(n.bufferView)&&(t[n.bufferView]=!0)}),yo(e,"KHR_draco_mesh_compression")&&Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){u(i.extensions)&&u(i.extensions.KHR_draco_mesh_compression)&&(t[i.extensions.KHR_draco_mesh_compression.bufferView]=!0)})}),yo(e,"EXT_feature_metadata")){let i=e.extensions.EXT_feature_metadata.featureTables;for(let r in i)if(i.hasOwnProperty(r)){let s=i[r].properties;if(u(s)){for(let a in s)if(s.hasOwnProperty(a)){let c=s[a];u(c.bufferView)&&(t[c.bufferView]=!0),u(c.arrayOffsetBufferView)&&(t[c.arrayOffsetBufferView]=!0),u(c.stringOffsetBufferView)&&(t[c.stringOffsetBufferView]=!0)}}}}if(yo(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTables;if(u(i)){let r=i.length;for(let o=0;o<r;++o){let a=i[o].properties;for(let c in a)if(a.hasOwnProperty(c)){let l=a[c];u(l.values)&&(t[l.values]=!0),u(l.arrayOffsets)&&(t[l.arrayOffsets]=!0),u(l.stringOffsets)&&(t[l.stringOffsets]=!0)}}}}return t};Yh.image=function(e){let t={};return Oe.texture(e,function(n){u(n.source)&&(t[n.source]=!0),u(n.extensions)&&u(n.extensions.EXT_texture_webp)?t[n.extensions.EXT_texture_webp.source]=!0:u(n.extensions)&&u(n.extensions.KHR_texture_basisu)&&(t[n.extensions.KHR_texture_basisu.source]=!0)}),t};Yh.mesh=function(e){let t={};return Oe.node(e,function(n){if(u(n.mesh&&u(e.meshes))){let i=e.meshes[n.mesh];u(i)&&u(i.primitives)&&i.primitives.length>0&&(t[n.mesh]=!0)}}),t};function Une(e,t,n){let i=e.nodes[t];return u(i.mesh)||u(i.camera)||u(i.skin)||u(i.weights)||u(i.extras)||u(i.extensions)&&Object.keys(i.extensions).length!==0||u(n[t])?!1:!u(i.children)||i.children.filter(function(r){return!Une(e,r,n)}).length===0}Yh.node=function(e){let t={};return Oe.skin(e,function(n){u(n.skeleton)&&(t[n.skeleton]=!0),Oe.skinJoint(n,function(i){t[i]=!0})}),Oe.animation(e,function(n){Oe.animationChannel(n,function(i){u(i.target)&&u(i.target.node)&&(t[i.target.node]=!0)})}),Oe.technique(e,function(n){Oe.techniqueUniform(n,function(i){u(i.node)&&(t[i.node]=!0)})}),Oe.node(e,function(n,i){Une(e,i,t)||(t[i]=!0)}),t};Yh.material=function(e){let t={};return Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){u(i.material)&&(t[i.material]=!0)})}),t};Yh.texture=function(e){let t={};if(Oe.material(e,function(n){kT(n,function(i){t[i]=!0})}),yo(e,"EXT_feature_metadata")){Oe.mesh(e,function(r){Oe.meshPrimitive(r,function(o){let s=o.extensions;if(u(s)&&u(s.EXT_feature_metadata)){let c=s.EXT_feature_metadata.featureIdTextures;if(u(c)){let l=c.length;for(let f=0;f<l;++f){let p=c[f].featureIds.texture;t[p.index]=!0}}}})});let i=e.extensions.EXT_feature_metadata.featureTextures;for(let r in i)if(i.hasOwnProperty(r)){let s=i[r].properties;if(u(s)){for(let a in s)if(s.hasOwnProperty(a)){let l=s[a].texture;t[l.index]=!0}}}}if(yo(e,"EXT_mesh_features")&&Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){let r=i.extensions;if(u(r)&&u(r.EXT_mesh_features)){let s=r.EXT_mesh_features.featureIds;if(u(s)){let a=s.length;for(let c=0;c<a;++c){let l=s[c];u(l.texture)&&(t[l.texture.index]=!0)}}}})}),yo(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTextures;if(u(i)){let r=i.length;for(let o=0;o<r;++o){let a=i[o].properties;for(let c in a)if(a.hasOwnProperty(c)){let l=a[c];t[l.index]=!0}}}}return t};Yh.sampler=function(e){let t={};return Oe.texture(e,function(n){u(n.sampler)&&(t[n.sampler]=!0)}),t};var e1=oNe;function cNe(e,t){let n={byteLength:t.length,extras:{_pipeline:{source:t}}},r={buffer:cs(e.buffers,n),byteOffset:0,byteLength:t.length};return cs(e.bufferViews,r)}var t1=cNe;function lNe(e,t){let n=Al(e,t),i=X.getSizeInBytes(t.componentType),r=au(t.type),o=t.count,s=new Array(r*o);if(!u(t.bufferView))return s.fill(0);let a=e.bufferViews[t.bufferView],c=e.buffers[a.buffer].extras._pipeline.source,l=t.byteOffset+a.byteOffset+c.byteOffset,f=new DataView(c.buffer),d=new Array(r),p=Rp(t.componentType);for(let g=0;g<o;++g){p(f,l,r,i,d);for(let m=0;m<r;++m)s[g*r+m]=d[m];l+=n}return s}var n1=lNe;function uNe(e){let t;return Oe.accessorWithSemantic(e,"JOINTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===te.BYTE?VU(e,i,X.UNSIGNED_BYTE):t!==te.UNSIGNED_BYTE&&t!==te.UNSIGNED_SHORT&&VU(e,i,X.UNSIGNED_SHORT)}),Oe.accessorWithSemantic(e,"WEIGHTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===te.BYTE?VU(e,i,X.UNSIGNED_BYTE):t===te.SHORT&&VU(e,i,X.UNSIGNED_SHORT)}),e}function VU(e,t,n){let i=X.createTypedArray(n,n1(e,t)),r=new Uint8Array(i.buffer);t.bufferView=t1(e,r),t.componentType=n,t.byteOffset=0}var i1=uNe;function fNe(e,t){return wA(e,t),t==="CESIUM_RTC"&&dNe(e),W5(e,t)}function dNe(e){Oe.technique(e,function(t){Oe.techniqueUniform(t,function(n){n.semantic==="CESIUM_RTC_MODELVIEW"&&(n.semantic="MODELVIEW")})})}function W5(e,t){if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;++i)W5(e[i],t)}else if(e!==null&&typeof e=="object"&&e.constructor===Object){let n=e.extensions,i;u(n)&&(i=n[t],u(i)&&(delete n[t],Object.keys(n).length===0&&delete e.extensions));for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&W5(e[r],t);return i}}var IA=fNe;var kU={.8:yNe,"1.0":VNe,"2.0":void 0};function hNe(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.targetVersion,i=e.version;e.asset=y(e.asset,{version:"1.0"}),e.asset.version=y(e.asset.version,"1.0"),i=y(i,e.asset.version).toString(),Object.prototype.hasOwnProperty.call(kU,i)||(u(i)&&(i=i.substring(0,3)),Object.prototype.hasOwnProperty.call(kU,i)||(i="1.0"));let r=kU[i];for(;u(r)&&i!==n;)r(e,t),i=e.asset.version,r=kU[i];return t.keepLegacyExtensions||(HNe(e),GNe(e)),e}function kne(e){let t=e.materials;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],r=i.instanceTechnique;u(r)&&(i.technique=r.technique,i.values=r.values,delete i.instanceTechnique)}}function mNe(e){let t=e.meshes;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let r=t[n].primitives;if(u(r)){let o=r.length;for(let s=0;s<o;++s){let a=r[s],c=y(a.primitive,te.TRIANGLES);a.mode=y(a.mode,c),delete a.primitive}}}}function pNe(e){let t=e.nodes,n=new h,i=new Le;for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let o=t[r];if(u(o.rotation)){let a=o.rotation;h.fromArray(a,0,n),Le.fromAxisAngle(n,a[3],i),o.rotation=[i.x,i.y,i.z,i.w]}let s=o.instanceSkin;u(s)&&(o.skeletons=s.skeletons,o.skin=s.skin,o.meshes=s.meshes,delete o.instanceSkin)}}function _Ne(e){let t=e.animations,n=e.accessors,i=e.bufferViews,r=e.buffers,o={},s=new h,a=new Le;for(let c in t)if(Object.prototype.hasOwnProperty.call(t,c)){let l=t[c],f=l.channels,d=l.parameters,p=l.samplers;if(u(f)){let g=f.length;for(let m=0;m<g;++m){let A=f[m];if(A.target.path==="rotation"){let x=d[p[A.sampler].output];if(u(o[x]))continue;o[x]=!0;let C=n[x],T=i[C.bufferView],S=r[T.buffer].extras._pipeline.source,v=S.byteOffset+T.byteOffset+C.byteOffset,D=C.componentType,M=C.count,O=au(C.type),B=C.count*O,L=X.createArrayBufferView(D,S.buffer,v,B);for(let _=0;_<M;_++){let b=_*O;h.unpack(L,b,s);let w=L[b+3];Le.fromAxisAngle(s,w,a),Le.pack(a,L,b)}}}}}}function gNe(e){let t=e.techniques;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],r=i.passes;if(u(r)){let o=y(i.pass,"defaultPass");if(Object.prototype.hasOwnProperty.call(r,o)){let s=r[o],a=s.instanceProgram;i.attributes=y(i.attributes,a.attributes),i.program=y(i.program,a.program),i.uniforms=y(i.uniforms,a.uniforms),i.states=y(i.states,s.states)}delete i.passes,delete i.pass}}}function yNe(e){u(e.asset)||(e.asset={});let t=e.asset;if(t.version="1.0",typeof t.profile=="string"){let n=t.profile.split(" ");t.profile={api:n[0],version:n[1]}}else t.profile={};if(u(e.version)&&delete e.version,kne(e),mNe(e),pNe(e),_Ne(e),gNe(e),u(e.allExtensions)&&(e.extensionsUsed=e.allExtensions,delete e.allExtensions),u(e.lights)){let n=y(e.extensions,{});e.extensions=n;let i=y(n.KHR_materials_common,{});n.KHR_materials_common=i,i.lights=e.lights,delete e.lights,sf(e,"KHR_materials_common")}}function ANe(e){let t=e.animations;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],r=i.parameters;if(u(r)){let o=i.samplers;for(let s in o)if(Object.prototype.hasOwnProperty.call(o,s)){let a=o[s];a.input=r[a.input],a.output=r[a.output]}delete i.parameters}}}function Vne(e,t){let n=[];for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let r=e[i];t[i]=n.length,n.push(r),u(r.name)||(r.name=i)}return n}function xNe(e){let t,n={accessors:{},animations:{},buffers:{},bufferViews:{},cameras:{},images:{},materials:{},meshes:{},nodes:{},programs:{},samplers:{},scenes:{},shaders:{},skins:{},textures:{},techniques:{}},i,r={},o=e.nodes;for(let s in o)Object.prototype.hasOwnProperty.call(o,s)&&(i=o[s].jointName,u(i)&&(r[i]=s));for(let s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&u(n[s])){let a={},c=e[s];e[s]=Vne(c,a),n[s]=a}for(i in r)Object.prototype.hasOwnProperty.call(r,i)&&(r[i]=n.nodes[r[i]]);u(e.scene)&&(e.scene=n.scenes[e.scene]),Oe.bufferView(e,function(s){u(s.buffer)&&(s.buffer=n.buffers[s.buffer])}),Oe.accessor(e,function(s){u(s.bufferView)&&(s.bufferView=n.bufferViews[s.bufferView])}),Oe.shader(e,function(s){let a=s.extensions;if(u(a)){let c=a.KHR_binary_glTF;u(c)&&(s.bufferView=n.bufferViews[c.bufferView],delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Oe.program(e,function(s){u(s.vertexShader)&&(s.vertexShader=n.shaders[s.vertexShader]),u(s.fragmentShader)&&(s.fragmentShader=n.shaders[s.fragmentShader])}),Oe.technique(e,function(s){u(s.program)&&(s.program=n.programs[s.program]),Oe.techniqueParameter(s,function(a){u(a.node)&&(a.node=n.nodes[a.node]);let c=a.value;typeof c=="string"&&(a.value={index:n.textures[c]})})}),Oe.mesh(e,function(s){Oe.meshPrimitive(s,function(a){u(a.indices)&&(a.indices=n.accessors[a.indices]),Oe.meshPrimitiveAttribute(a,function(c,l){a.attributes[l]=n.accessors[c]}),u(a.material)&&(a.material=n.materials[a.material])})}),Oe.node(e,function(s){let a=s.children;if(u(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}if(u(s.meshes)){let c=s.meshes,l=c.length;if(l>0)for(s.mesh=n.meshes[c[0]],t=1;t<l;++t){let f={mesh:n.meshes[c[t]]},d=cs(e.nodes,f);u(a)||(a=[],s.children=a),a.push(d)}delete s.meshes}if(u(s.camera)&&(s.camera=n.cameras[s.camera]),u(s.skin)&&(s.skin=n.skins[s.skin]),u(s.skeletons)){let c=s.skeletons;if(c.length>0&&u(s.skin)){let f=e.skins[s.skin];f.skeleton=n.nodes[c[0]]}delete s.skeletons}u(s.jointName)&&delete s.jointName}),Oe.skin(e,function(s){u(s.inverseBindMatrices)&&(s.inverseBindMatrices=n.accessors[s.inverseBindMatrices]);let a=s.jointNames;if(u(a)){let c=[],l=a.length;for(t=0;t<l;++t)c[t]=r[a[t]];s.joints=c,delete s.jointNames}}),Oe.scene(e,function(s){let a=s.nodes;if(u(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}}),Oe.animation(e,function(s){let a={};s.samplers=Vne(s.samplers,a),Oe.animationSampler(s,function(c){c.input=n.accessors[c.input],c.output=n.accessors[c.output]}),Oe.animationChannel(s,function(c){c.sampler=a[c.sampler];let l=c.target;u(l)&&(l.node=n.nodes[l.id],delete l.id)})}),Oe.material(e,function(s){u(s.technique)&&(s.technique=n.techniques[s.technique]),Oe.materialValue(s,function(c,l){typeof c=="string"&&(s.values[l]={index:n.textures[c]})});let a=s.extensions;if(u(a)){let c=a.KHR_materials_common;u(c)&&u(c.values)&&Oe.materialValue(c,function(l,f){typeof l=="string"&&(c.values[f]={index:n.textures[l]})})}}),Oe.image(e,function(s){let a=s.extensions;if(u(a)){let c=a.KHR_binary_glTF;u(c)&&(s.bufferView=n.bufferViews[c.bufferView],s.mimeType=c.mimeType,delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Oe.texture(e,function(s){u(s.sampler)&&(s.sampler=n.samplers[s.sampler]),u(s.source)&&(s.source=n.images[s.source])})}function CNe(e){Oe.animation(e,function(t){Oe.animationSampler(t,function(n){delete n.name})})}function TNe(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];Array.isArray(n)&&n.length===0&&delete e[t]}Oe.node(e,function(t){u(t.children)&&t.children.length===0&&delete t.children})}function ENe(e){let t=e.asset;delete t.profile,delete t.premultipliedAlpha}var bNe={CESIUM_RTC:!0,KHR_materials_common:!0,WEB3D_quantized_attributes:!0};function SNe(e){let t=e.extensionsUsed;if(e.extensionsRequired=y(e.extensionsRequired,[]),u(t)){let n=t.length;for(let i=0;i<n;++i){let r=t[i];u(bNe[r])&&e.extensionsRequired.push(r)}}}function vNe(e){Oe.buffer(e,function(t){delete t.type})}function wNe(e){Oe.texture(e,function(t){delete t.format,delete t.internalFormat,delete t.target,delete t.type})}function DNe(e){Oe.mesh(e,function(t){Oe.meshPrimitive(t,function(n){Oe.meshPrimitiveAttribute(n,function(i,r){r==="TEXCOORD"?n.attributes.TEXCOORD_0=i:r==="COLOR"&&(n.attributes.COLOR_0=i)}),delete n.attributes.TEXCOORD,delete n.attributes.COLOR})}),Oe.technique(e,function(t){Oe.techniqueParameter(t,function(n){let i=n.semantic;u(i)&&(i==="TEXCOORD"?n.semantic="TEXCOORD_0":i==="COLOR"&&(n.semantic="COLOR_0"))})})}var INe={POSITION:!0,NORMAL:!0,TANGENT:!0},PNe={COLOR:"COLOR",JOINT:"JOINTS",JOINTS:"JOINTS",TEXCOORD:"TEXCOORD",WEIGHT:"WEIGHTS",WEIGHTS:"WEIGHTS"};function ONe(e){let t={};Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){Oe.meshPrimitiveAttribute(i,function(r,o){if(o.charAt(0)!=="_"){let s=o.search(/_[0-9]+/g),a=o,c="_0";s>=0&&(a=o.substring(0,s),c=o.substring(s));let l,f=PNe[a];u(f)?(l=f+c,t[o]=l):u(INe[a])||(l=`_${o}`,t[o]=l)}});for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let o=t[r],s=i.attributes[r];u(s)&&(delete i.attributes[r],i.attributes[o]=s)}})}),Oe.technique(e,function(n){Oe.techniqueParameter(n,function(i){let r=t[i.semantic];u(r)&&(i.semantic=r)})})}function MNe(e){Oe.camera(e,function(t){let n=t.perspective;if(u(n)){let i=n.aspectRatio;u(i)&&i===0&&delete n.aspectRatio;let r=n.yfov;u(r)&&r===0&&(n.yfov=1)}})}function j5(e,t){return u(t.byteStride)&&t.byteStride!==0?t.byteStride:Al(e,t)}function RNe(e){Oe.buffer(e,function(t){u(t.byteLength)||(t.byteLength=t.extras._pipeline.source.length)}),Oe.accessor(e,function(t){let n=t.bufferView;if(u(n)){let i=e.bufferViews[n],r=j5(e,t),o=t.byteOffset+t.count*r;i.byteLength=Math.max(y(i.byteLength,0),o)}})}function BNe(e){let t,n,i,r=e.bufferViews,o={};Oe.accessorContainingVertexAttributeData(e,function(a){let c=e.accessors[a];u(c.bufferView)&&(o[c.bufferView]=!0)});let s={};Oe.accessor(e,function(a){u(a.bufferView)&&(s[a.bufferView]=y(s[a.bufferView],[]),s[a.bufferView].push(a))});for(let a in s)if(Object.prototype.hasOwnProperty.call(s,a)){i=r[a];let c=s[a];c.sort(function(p,g){return p.byteOffset-g.byteOffset});let l=0,f=0,d=c.length;for(t=0;t<d;++t){let p=c[t],g=j5(e,p),m=p.byteOffset,A=p.count*g;delete p.byteStride;let x=t<d-1,C=x?j5(e,c[t+1]):void 0;if(g!==C){let T=We(i,!0);o[a]&&(T.byteStride=g),T.byteOffset+=l,T.byteLength=m+A-l;let E=cs(r,T);for(n=f;n<=t;++n)p=c[n],p.bufferView=E,p.byteOffset=p.byteOffset-l;l=x?c[t+1].byteOffset:void 0,f=t+1}}}e1(e,["accessor","bufferView","buffer"])}function LNe(e){Oe.accessorWithSemantic(e,"POSITION",function(t){let n=e.accessors[t];if(!u(n.min)||!u(n.max)){let i=DA(e,n);n.min=i.min,n.max=i.max}})}function zne(e){return(!u(e.children)||e.children.length===0)&&(!u(e.meshes)||e.meshes.length===0)&&!u(e.camera)&&!u(e.skin)&&!u(e.skeletons)&&!u(e.jointName)&&(!u(e.translation)||h.fromArray(e.translation).equals(h.ZERO))&&(!u(e.scale)||h.fromArray(e.scale).equals(new h(1,1,1)))&&(!u(e.rotation)||se.fromArray(e.rotation).equals(new se(0,0,0,1)))&&(!u(e.matrix)||N.fromColumnMajorArray(e.matrix).equals(N.IDENTITY))&&!u(e.extensions)&&!u(e.extras)}function Hne(e,t){Oe.scene(e,function(n){let i=n.nodes;if(u(i)){let r=i.length;for(let o=r;o>=0;--o)if(i[o]===t){i.splice(o,1);return}}}),Oe.node(e,function(n,i){if(u(n.children)){let r=n.children.indexOf(t);r>-1&&(n.children.splice(r,1),zne(n)&&Hne(e,i))}}),delete e.nodes[t]}function NNe(e){return Oe.node(e,function(t,n){zne(t)&&Hne(e,n)}),e}function FNe(e){Oe.animation(e,function(t){Oe.animationSampler(t,function(n){let i=e.accessors[n.input];if(!u(i.min)||!u(i.max)){let r=DA(e,i);i.min=r.min,i.max=r.max}})})}function UNe(e){Oe.accessor(e,function(t){if(u(t.min)||u(t.max)){let n=DA(e,t);u(t.min)&&(t.min=n.min),u(t.max)&&(t.max=n.max)}})}function VNe(e){e.asset=y(e.asset,{}),e.asset.version="2.0",kne(e),ANe(e),NNe(e),xNe(e),CNe(e),ENe(e),SNe(e),RNe(e),BNe(e),LNe(e),FNe(e),UNe(e),vNe(e),wNe(e),DNe(e),ONe(e),i1(e),MNe(e),ZP(e),$P(e),TNe(e)}var kNe=["u_tex","u_diffuse","u_emission"],zNe=["u_diffuse"];function q5(e){e.pbrMetallicRoughness=u(e.pbrMetallicRoughness)?e.pbrMetallicRoughness:{},e.pbrMetallicRoughness.roughnessFactor=1,e.pbrMetallicRoughness.metallicFactor=0}function zU(e){return u(e.index)}function HU(e){return Array.isArray(e)&&e.length===4}function Gne(e){let t=new Array(4);t[3]=e[3];for(let n=0;n<3;n++){let i=e[n];i<=.04045?t[n]=e[n]*.07739938080495357:t[n]=Math.pow((i+.055)*.9478672985781991,2.4)}return t}function HNe(e){Oe.material(e,function(t){Oe.materialValue(t,function(n,i){kNe.indexOf(i)!==-1&&zU(n)?(q5(t),t.pbrMetallicRoughness.baseColorTexture=n):zNe.indexOf(i)!==-1&&HU(n)&&(q5(t),t.pbrMetallicRoughness.baseColorFactor=Gne(n))})}),IA(e,"KHR_techniques_webgl"),IA(e,"KHR_blend")}function GNe(e){Oe.material(e,function(t){let n=y(t.extensions,y.EMPTY_OBJECT).KHR_materials_common;if(u(n)){n.technique==="CONSTANT"&&(sf(e,"KHR_materials_unlit"),t.extensions=u(t.extensions)?t.extensions:{},t.extensions.KHR_materials_unlit={});let r=u(n.values)?n.values:{},o=r.ambient,s=r.diffuse,a=r.emission,c=r.transparency,l=n.doubleSided,f=n.transparent;q5(t),u(o)&&(HU(o)?t.emissiveFactor=o.slice(0,3):zU(o)&&(t.emissiveTexture=o)),u(s)&&(HU(s)?t.pbrMetallicRoughness.baseColorFactor=Gne(s):zU(s)&&(t.pbrMetallicRoughness.baseColorTexture=s)),u(l)&&(t.doubleSided=l),u(a)&&(HU(a)?t.emissiveFactor=a.slice(0,3):zU(a)&&(t.emissiveTexture=a)),u(c)&&(u(t.pbrMetallicRoughness.baseColorFactor)?t.pbrMetallicRoughness.baseColorFactor[3]*=c:t.pbrMetallicRoughness.baseColorFactor=[1,1,1,c]),u(f)&&(t.alphaMode=f?"BLEND":"OPAQUE")}}),IA(e,"KHR_materials_common")}var r1=hNe;var li={POSITION:"POSITION",NORMAL:"NORMAL",TANGENT:"TANGENT",TEXCOORD:"TEXCOORD",COLOR:"COLOR",JOINTS:"JOINTS",WEIGHTS:"WEIGHTS",FEATURE_ID:"_FEATURE_ID"};function WNe(e){switch(e){case li.POSITION:return"positionMC";case li.NORMAL:return"normalMC";case li.TANGENT:return"tangentMC";case li.TEXCOORD:return"texCoord";case li.COLOR:return"color";case li.JOINTS:return"joints";case li.WEIGHTS:return"weights";case li.FEATURE_ID:return"featureId"}}li.hasSetIndex=function(e){switch(e){case li.POSITION:case li.NORMAL:case li.TANGENT:return!1;case li.TEXCOORD:case li.COLOR:case li.JOINTS:case li.WEIGHTS:case li.FEATURE_ID:return!0}};li.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"POSITION":return li.POSITION;case"NORMAL":return li.NORMAL;case"TANGENT":return li.TANGENT;case"TEXCOORD":return li.TEXCOORD;case"COLOR":return li.COLOR;case"JOINTS":return li.JOINTS;case"WEIGHTS":return li.WEIGHTS;case"_FEATURE_ID":return li.FEATURE_ID}};li.fromPntsSemantic=function(e){switch(e){case"POSITION":case"POSITION_QUANTIZED":return li.POSITION;case"RGBA":case"RGB":case"RGB565":return li.COLOR;case"NORMAL":case"NORMAL_OCT16P":return li.NORMAL;case"BATCH_ID":return li.FEATURE_ID}};li.getGlslType=function(e){switch(e){case li.POSITION:case li.NORMAL:case li.TANGENT:return"vec3";case li.TEXCOORD:return"vec2";case li.COLOR:return"vec4";case li.JOINTS:return"ivec4";case li.WEIGHTS:return"vec4";case li.FEATURE_ID:return"int"}};li.getVariableName=function(e,t){let n=WNe(e);return u(t)&&(n+=`_${t}`),n};var Tt=Object.freeze(li);function Ka(){}Ka.getError=function(e,t,n){let i=`Failed to load ${e}: ${t}`;u(n)&&u(n.message)&&(i+=` +${n.message}`);let r=new de(i);return u(n)&&(r.stack=`Original stack: +${n.stack} +Handler stack: +${r.stack}`),r};Ka.getNodeTransform=function(e){return u(e.matrix)?e.matrix:N.fromTranslationQuaternionRotationScale(u(e.translation)?e.translation:h.ZERO,u(e.rotation)?e.rotation:Le.IDENTITY,u(e.scale)?e.scale:h.ONE)};Ka.getAttributeBySemantic=function(e,t,n){let i=e.attributes,r=i.length;for(let o=0;o<r;++o){let s=i[o],a=u(n)?s.setIndex===n:!0;if(s.semantic===t&&a)return s}};Ka.getAttributeByName=function(e,t){let n=e.attributes,i=n.length;for(let r=0;r<i;++r){let o=n[r];if(o.name===t)return o}};Ka.getFeatureIdsByLabel=function(e,t){for(let n=0;n<e.length;n++){let i=e[n];if(i.positionalLabel===t||i.label===t)return i}};Ka.hasQuantizedAttributes=function(e){if(!u(e))return!1;for(let t=0;t<e.length;t++){let n=e[t];if(u(n.quantization))return!0}return!1};Ka.getAttributeInfo=function(e){let t=e.semantic,n=e.setIndex,i,r=!1;u(t)?(i=Tt.getVariableName(t,n),r=!0):(i=e.name,i=i.replace(/^_/,""),i=i.toLowerCase());let o=/^color_\d+$/.test(i),s=e.type,a=on.getGlslType(s);o&&(a="vec4");let c=u(e.quantization),l;return c&&(l=o?"vec4":on.getGlslType(e.quantization.type)),{attribute:e,isQuantized:c,variableName:i,hasSemantic:r,glslType:a,quantizedGlslType:l}};var jNe=new h,qNe=new h;Ka.getPositionMinMax=function(e,t,n){let i=Ka.getAttributeBySemantic(e,"POSITION"),r=i.max,o=i.min;return u(n)&&u(t)&&(o=h.add(o,t,qNe),r=h.add(r,n,jNe)),{min:o,max:r}};Ka.getAxisCorrectionMatrix=function(e,t,n){return n=N.clone(N.IDENTITY,n),e===dr.Y?n=N.clone(dr.Y_UP_TO_Z_UP,n):e===dr.X&&(n=N.clone(dr.X_UP_TO_Z_UP,n)),t===dr.Z&&(n=N.multiplyTransformation(n,dr.Z_UP_TO_X_UP,n)),n};var YNe=new Q;Ka.getCullFace=function(e,t){if(!Be.isTriangles(t))return gi.BACK;let n=N.getMatrix3(e,YNe);return Q.determinant(n)<0?gi.FRONT:gi.BACK};Ka.sanitizeGlslIdentifier=function(e){let t=e.replaceAll(/[^A-Za-z0-9]+/g,"_");return t=t.replace(/^gl_/,""),/^\d/.test(t)&&(t=`_${t}`),t};Ka.supportedExtensions={AGI_articulations:!0,CESIUM_primitive_outline:!0,CESIUM_RTC:!0,EXT_feature_metadata:!0,EXT_instance_features:!0,EXT_mesh_features:!0,EXT_mesh_gpu_instancing:!0,EXT_meshopt_compression:!0,EXT_structural_metadata:!0,EXT_texture_webp:!0,KHR_blend:!0,KHR_draco_mesh_compression:!0,KHR_techniques_webgl:!0,KHR_materials_common:!0,KHR_materials_pbrSpecularGlossiness:!0,KHR_materials_unlit:!0,KHR_mesh_quantization:!0,KHR_texture_basisu:!0,KHR_texture_transform:!0,WEB3D_quantized_attributes:!0};Ka.checkSupportedExtensions=function(e){let t=e.length;for(let n=0;n<t;n++){let i=e[n];if(!Ka.supportedExtensions[i])throw new de(`Unsupported glTF Extension: ${i}`)}};var Jt=Ka;function Pg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltfResource,i=e.baseResource,r=e.typedArray,o=e.gltfJson,s=e.cacheKey;this._resourceCache=t,this._gltfResource=n,this._baseResource=i,this._typedArray=r,this._gltfJson=o,this._cacheKey=s,this._gltf=void 0,this._bufferLoaders=[],this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(Pg.prototype=Object.create(or.prototype),Pg.prototype.constructor=Pg);Object.defineProperties(Pg.prototype,{cacheKey:{get:function(){return this._cacheKey}},gltf:{get:function(){return this._gltf}}});Pg.prototype.load=async function(){return u(this._promise)?this._promise:(this._state=St.LOADING,u(this._gltfJson)?(this._promise=Wne(this,this._gltfJson),this._promise):u(this._typedArray)?(this._promise=jne(this,this._typedArray),this._promise):(this._promise=XNe(this),this._promise))};async function XNe(e){let t;try{let n=await e._fetchGltf();if(e.isDestroyed())return;t=new Uint8Array(n)}catch(n){if(e.isDestroyed())return;Y5(e,n)}return jne(e,t)}function Y5(e,t){e.unload(),e._state=St.FAILED;let n=`Failed to load glTF: ${e._gltfResource.url}`;throw e.getError(n,t)}async function KNe(e,t){if(u(t.asset)&&t.asset.version==="2.0"&&!yo(t,"KHR_techniques_webgl")&&!yo(t,"KHR_materials_common"))return Promise.resolve();let n=[];Oe.buffer(t,function(i){if(!u(i.extras._pipeline.source)&&u(i.uri)){let r=e._baseResource.getDerivedResource({url:i.uri}),s=e._resourceCache.getExternalBufferLoader({resource:r});e._bufferLoaders.push(s),n.push(s.load().then(function(){s.isDestroyed()||(i.extras._pipeline.source=s.typedArray)}))}}),await Promise.all(n),r1(t)}function JNe(e){let t=[];return Oe.buffer(e,function(n){let i=n.uri;!u(n.extras._pipeline.source)&&u(i)&&tp(i)&&(delete n.uri,t.push(ve.fetchArrayBuffer(i).then(function(r){n.extras._pipeline.source=new Uint8Array(r)})))}),Promise.all(t)}function ZNe(e,t){let n=[];return Oe.buffer(t,function(i,r){let o=i.extras._pipeline.source;if(u(o)&&!u(i.uri)){let a=e._resourceCache.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:r,typedArray:o});e._bufferLoaders.push(a),n.push(a.load())}}),Promise.all(n)}async function Wne(e,t){try{Ig(t),await JNe(t),await KNe(e,t),YP(t),await ZNe(e,t),JP(t);let n=t.asset.version;if(n!=="1.0"&&n!=="2.0")throw new de(`Unsupported glTF version: ${n}`);let i=t.extensionsRequired;return u(i)&&Jt.checkSupportedExtensions(i),e._gltf=t,e._state=St.READY,e}catch(n){if(e.isDestroyed())return;Y5(e,n)}}async function jne(e,t){let n;try{Td(t)==="glTF"?n=KP(t):n=Mr(t)}catch(i){if(e.isDestroyed())return;Y5(e,i)}return Wne(e,n)}Pg.prototype.unload=function(){let e=this._bufferLoaders,t=e.length;for(let n=0;n<t;++n)e[n]=!e[n].isDestroyed()&&this._resourceCache.unload(e[n]);this._bufferLoaders.length=0,this._gltf=void 0};Pg.prototype._fetchGltf=function(){return this._gltfResource.fetchArrayBuffer()};var zT=Pg;var QNe={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"},Xh=Object.freeze(QNe);var Jr={};function $Ne(){this.octEncoded=!1,this.octEncodedZXY=!1,this.normalizationRange=void 0,this.quantizedVolumeOffset=void 0,this.quantizedVolumeDimensions=void 0,this.quantizedVolumeStepSize=void 0,this.componentDatatype=void 0,this.type=void 0}function eFe(){this.name=void 0,this.semantic=void 0,this.setIndex=void 0,this.componentDatatype=void 0,this.type=void 0,this.normalized=!1,this.count=void 0,this.min=void 0,this.max=void 0,this.constant=void 0,this.quantization=void 0,this.typedArray=void 0,this.buffer=void 0,this.byteOffset=0,this.byteStride=void 0}function tFe(){this.indexDatatype=void 0,this.count=void 0,this.buffer=void 0,this.typedArray=void 0}function nFe(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.setIndex=void 0,this.label=void 0,this.positionalLabel=void 0}function iFe(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.offset=0,this.repeat=void 0,this.label=void 0,this.positionalLabel=void 0}function rFe(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.textureReader=void 0,this.label=void 0,this.positionalLabel=void 0}function oFe(){this.attributes=[]}function sFe(){this.attributes=[],this.morphTargets=[],this.indices=void 0,this.material=void 0,this.primitiveType=void 0,this.featureIds=[],this.propertyTextureIds=[],this.propertyAttributeIds=[],this.outlineCoordinates=void 0}function aFe(){this.attributes=[],this.featureIds=[],this.transformInWorldSpace=!1}function cFe(){this.index=void 0,this.joints=[],this.inverseBindMatrices=[]}function lFe(){this.name=void 0,this.index=void 0,this.children=[],this.primitives=[],this.instances=void 0,this.skin=void 0,this.matrix=void 0,this.translation=void 0,this.rotation=void 0,this.scale=void 0,this.morphWeights=[],this.articulationName=void 0}function uFe(){this.nodes=[]}var fFe={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};function dFe(){this.input=[],this.interpolation=void 0,this.output=[]}function hFe(){this.node=void 0,this.path=void 0}function mFe(){this.sampler=void 0,this.target=void 0}function pFe(){this.name=void 0,this.samplers=[],this.channels=[]}function _Fe(){this.name=void 0,this.type=void 0,this.minimumValue=void 0,this.maximumValue=void 0,this.initialValue=void 0}function gFe(){this.name=void 0,this.stages=[]}function qne(){this.credits=[]}function yFe(){this.asset=new qne,this.scene=void 0,this.nodes=[],this.skins=[],this.animations=[],this.articulations=[],this.structuralMetadata=void 0,this.upAxis=void 0,this.forwardAxis=void 0,this.transform=N.clone(N.IDENTITY)}function AFe(){this.texture=void 0,this.index=void 0,this.texCoord=0,this.transform=Q.clone(Q.IDENTITY),this.channels=void 0}function Og(){this.baseColorTexture=void 0,this.metallicRoughnessTexture=void 0,this.baseColorFactor=se.clone(Og.DEFAULT_BASE_COLOR_FACTOR),this.metallicFactor=Og.DEFAULT_METALLIC_FACTOR,this.roughnessFactor=Og.DEFAULT_ROUGHNESS_FACTOR}Og.DEFAULT_BASE_COLOR_FACTOR=se.ONE;Og.DEFAULT_METALLIC_FACTOR=1;Og.DEFAULT_ROUGHNESS_FACTOR=1;function PA(){this.diffuseTexture=void 0,this.specularGlossinessTexture=void 0,this.diffuseFactor=se.clone(PA.DEFAULT_DIFFUSE_FACTOR),this.specularFactor=h.clone(PA.DEFAULT_SPECULAR_FACTOR),this.glossinessFactor=PA.DEFAULT_GLOSSINESS_FACTOR}PA.DEFAULT_DIFFUSE_FACTOR=se.ONE;PA.DEFAULT_SPECULAR_FACTOR=h.ONE;PA.DEFAULT_GLOSSINESS_FACTOR=1;function X5(){this.metallicRoughness=new Og,this.specularGlossiness=void 0,this.emissiveTexture=void 0,this.normalTexture=void 0,this.occlusionTexture=void 0,this.emissiveFactor=h.clone(X5.DEFAULT_EMISSIVE_FACTOR),this.alphaMode=Xh.OPAQUE,this.alphaCutoff=.5,this.doubleSided=!1,this.unlit=!1}X5.DEFAULT_EMISSIVE_FACTOR=h.ZERO;Jr.Quantization=$Ne;Jr.Attribute=eFe;Jr.Indices=tFe;Jr.FeatureIdAttribute=nFe;Jr.FeatureIdTexture=rFe;Jr.FeatureIdImplicitRange=iFe;Jr.MorphTarget=oFe;Jr.Primitive=sFe;Jr.Instances=aFe;Jr.Skin=cFe;Jr.Node=lFe;Jr.Scene=uFe;Jr.AnimatedPropertyType=Object.freeze(fFe);Jr.AnimationSampler=dFe;Jr.AnimationTarget=hFe;Jr.AnimationChannel=mFe;Jr.Animation=pFe;Jr.ArticulationStage=_Fe;Jr.Articulation=gFe;Jr.Asset=qne;Jr.Components=yFe;Jr.TextureReader=AFe;Jr.MetallicRoughness=Og;Jr.SpecularGlossiness=PA;Jr.Material=X5;var Lt=Jr;var GU={};GU.getImageIdFromTexture=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureId,i=e.supportedImageFormats,r=t.textures[n],o=r.extensions;if(u(o)){if(i.webp&&u(o.EXT_texture_webp))return o.EXT_texture_webp.source;if(i.basis&&u(o.KHR_texture_basisu))return o.KHR_texture_basisu.source}return r.source};GU.createSampler=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureInfo,i=y(e.compressedTextureNoMipmap,!1),r=Sn.REPEAT,o=Sn.REPEAT,s=sn.LINEAR,a=Ti.LINEAR,c=n.index,f=t.textures[c].sampler;if(u(f)){let g=t.samplers[f];r=y(g.wrapS,r),o=y(g.wrapT,o),s=y(g.minFilter,s),a=y(g.magFilter,a)}let d=!1,p=n.extensions;return u(p)&&u(p.KHR_texture_transform)&&(d=!0),(i||d)&&s!==sn.LINEAR&&s!==sn.NEAREST&&(s===sn.NEAREST_MIPMAP_NEAREST||s===sn.NEAREST_MIPMAP_LINEAR?s=sn.NEAREST:s=sn.LINEAR),new ln({wrapS:r,wrapT:o,minificationFilter:s,magnificationFilter:a})};var xFe=new H(1,1);GU.createModelTextureReader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureInfo,n=e.channels,i=e.texture,r=y(t.texCoord,0),o,s=y(t.extensions,y.EMPTY_OBJECT).KHR_texture_transform;if(u(s)){r=y(s.texCoord,r);let c=u(s.offset)?H.unpack(s.offset):H.ZERO,l=y(s.rotation,0),f=u(s.scale)?H.unpack(s.scale):xFe;l=-l,o=new Q(Math.cos(l)*f.x,-Math.sin(l)*f.y,c.x,Math.sin(l)*f.x,Math.cos(l)*f.y,c.y,0,0,1)}let a=new Lt.TextureReader;return a.index=t.index,a.texture=i,a.texCoord=r,a.transform=o,a.channels=n,a};var xl=GU;function CFe(e){let t=document.createElement("canvas");return t.width=P.nextPowerOfTwo(e.width),t.height=P.nextPowerOfTwo(e.height),t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),t}var Mg=CFe;function Rg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.textureInfo,r=e.gltfResource,o=e.baseResource,s=e.supportedImageFormats,a=e.cacheKey,c=y(e.asynchronous,!0),l=i.index,f=xl.getImageIdFromTexture({gltf:n,textureId:l,supportedImageFormats:s});this._resourceCache=t,this._gltf=n,this._textureInfo=i,this._imageId=f,this._gltfResource=r,this._baseResource=o,this._cacheKey=a,this._asynchronous=c,this._imageLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._texture=void 0,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(Rg.prototype=Object.create(or.prototype),Rg.prototype.constructor=Rg);Object.defineProperties(Rg.prototype,{cacheKey:{get:function(){return this._cacheKey}},texture:{get:function(){return this._texture}}});var TFe=new K5;async function EFe(e){let t=e._resourceCache;try{let n=t.getImageLoader({gltf:e._gltf,imageId:e._imageId,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._imageLoader=n,await n.load(),e.isDestroyed()?void 0:(e._image=n.image,e._mipLevels=n.mipLevels,e._state=St.LOADED,e)}catch(n){if(e.isDestroyed())return;e.unload(),e._state=St.FAILED;let i="Failed to load texture";throw e.getError(i,n)}}Rg.prototype.load=async function(){return u(this._promise)?this._promise:(this._state=St.LOADING,this._promise=EFe(this),this._promise)};function K5(){this.gltf=void 0,this.textureInfo=void 0,this.image=void 0,this.context=void 0,this.texture=void 0}K5.prototype.set=function(e,t,n,i,r){this.gltf=e,this.textureInfo=t,this.image=n,this.mipLevels=i,this.context=r};K5.prototype.execute=function(){this.texture=Yne(this.gltf,this.textureInfo,this.image,this.mipLevels,this.context)};function Yne(e,t,n,i,r){let o=n.internalFormat,s=!1;at.isCompressedFormat(o)&&!u(i)&&(s=!0);let a=xl.createSampler({gltf:e,textureInfo:t,compressedTextureNoMipmap:s}),c=a.minificationFilter,l=a.wrapS,f=a.wrapT,d=c===sn.NEAREST_MIPMAP_NEAREST||c===sn.NEAREST_MIPMAP_LINEAR||c===sn.LINEAR_MIPMAP_NEAREST||c===sn.LINEAR_MIPMAP_LINEAR,p=!u(o)&&d,g=p||l===Sn.REPEAT||l===Sn.MIRRORED_REPEAT||f===Sn.REPEAT||f===Sn.MIRRORED_REPEAT,m=!P.isPowerOfTwo(n.width)||!P.isPowerOfTwo(n.height),A=g&&m,x;return u(o)?(!r.webgl2&&at.isCompressedFormat(o)&&m&&g&&console.warn("Compressed texture uses REPEAT or MIRRORED_REPEAT texture wrap mode and dimensions are not powers of two. The texture may be rendered incorrectly."),x=Rt.create({context:r,source:{arrayBufferView:n.bufferView,mipLevels:i},width:n.width,height:n.height,pixelFormat:n.internalFormat,sampler:a})):(A&&(n=Mg(n)),x=Rt.create({context:r,source:n,sampler:a,flipY:!1,skipColorSpaceConversion:!0})),p&&x.generateMipmap(),x}Rg.prototype.process=function(e){if(this._state===St.READY)return!0;if(this._state!==St.LOADED&&this._state!==St.PROCESSING||u(this._texture)||!u(this._image))return!1;this._state=St.PROCESSING;let t;if(this._asynchronous){let n=TFe;if(n.set(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context),!e.jobScheduler.execute(n,Aa.TEXTURE))return;t=n.texture}else t=Yne(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context);return this.unload(),this._texture=t,this._state=St.READY,this._resourceCache.statistics.addTextureLoader(this),!0};Rg.prototype.unload=function(){u(this._texture)&&this._texture.destroy(),u(this._imageLoader)&&!this._imageLoader.isDestroyed()&&this._resourceCache.unload(this._imageLoader),this._imageLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._texture=void 0,this._gltf=void 0};var HT=Rg;function Bg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.gltfResource,r=e.baseResource,o=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=e.accessorId,l=e.cacheKey,f=y(e.asynchronous,!0),d=y(e.loadBuffer,!1),p=y(e.loadTypedArray,!1);this._resourceCache=t,this._gltfResource=i,this._baseResource=r,this._gltf=n,this._bufferViewId=o,this._draco=s,this._attributeSemantic=a,this._accessorId=c,this._cacheKey=l,this._asynchronous=f,this._loadBuffer=d,this._loadTypedArray=p,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._quantization=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(Bg.prototype=Object.create(or.prototype),Bg.prototype.constructor=Bg);Object.defineProperties(Bg.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},quantization:{get:function(){return this._quantization}}});function bFe(e,t){return u(e)&&u(e.attributes)&&u(e.attributes[t])}Bg.prototype.load=async function(){return u(this._promise)?this._promise:bFe(this._draco,this._attributeSemantic)?(this._promise=vFe(this),this._promise):(this._promise=DFe(this),this._promise)};function SFe(e,t,n,i){let o=(1<<e.quantizationBits)-1,s=1/o,a=new Lt.Quantization;if(a.componentDatatype=t,a.octEncoded=e.octEncoded,a.octEncodedZXY=!0,a.type=i,a.octEncoded)a.type=on.VEC2,a.normalizationRange=o;else{let c=on.getMathType(i);if(c===Number){let l=e.range;a.quantizedVolumeOffset=e.minValues[0],a.quantizedVolumeDimensions=l,a.normalizationRange=o,a.quantizedVolumeStepSize=l*s}else{a.quantizedVolumeOffset=c.unpack(e.minValues),a.normalizationRange=c.unpack(new Array(n).fill(o));let l=new Array(n).fill(e.range);a.quantizedVolumeDimensions=c.unpack(l);let f=l.map(function(d){return d*s});a.quantizedVolumeStepSize=c.unpack(f)}}return a}async function vFe(e){e._state=St.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=St.LOADED,e)}catch{if(e.isDestroyed())return;J5(e)}}function wFe(e){e._state=St.PROCESSING;let n=e._dracoLoader.decodedData.vertexAttributes,i=e._attributeSemantic,r=n[i],o=e._accessorId,a=e._gltf.accessors[o].type,c=r.array,l=r.data.quantization;u(l)&&(e._quantization=SFe(l,r.data.componentDatatype,r.data.componentsPerAttribute,a)),e._typedArray=new Uint8Array(c.buffer,c.byteOffset,c.byteLength)}async function DFe(e){e._state=St.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._typedArray=n.typedArray,e._state=St.PROCESSING,e)}catch(n){if(e.isDestroyed())return;J5(e,n)}}function J5(e,t){e.unload(),e._state=St.FAILED;let n="Failed to load vertex buffer";throw e.getError(n,t)}function Z5(){this.typedArray=void 0,this.context=void 0,this.buffer=void 0}Z5.prototype.set=function(e,t){this.typedArray=e,this.context=t};Z5.prototype.execute=function(){this.buffer=Xne(this.typedArray,this.context)};function Xne(e,t){let n=ht.createVertexBuffer({typedArray:e,context:t,usage:Fe.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}var IFe=new Z5;Bg.prototype.process=function(e){if(this._state===St.READY)return!0;if(this._state!==St.LOADED&&this._state!==St.PROCESSING)return!1;if(u(this._dracoLoader)){try{if(!this._dracoLoader.process(e))return!1}catch(i){J5(this,i)}wFe(this)}let t,n=this._typedArray;if(this._loadBuffer&&this._asynchronous){let i=IFe;if(i.set(n,e.context),!e.jobScheduler.execute(i,Aa.BUFFER))return!1;t=i.buffer}else this._loadBuffer&&(t=Xne(n,e.context));return this.unload(),this._buffer=t,this._typedArray=this._loadTypedArray?n:void 0,this._state=St.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};Bg.prototype.unload=function(){u(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;u(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),u(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var GT=Bg;function o1(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=y(e.properties,{}),i={};for(let r in n)if(n.hasOwnProperty(r)){let o=n[r];u(o.semantic)&&(i[o.semantic]=o)}this._id=t,this._name=e.name,this._description=e.description,this._properties=n,this._propertiesBySemantic=i,this._extras=We(e.extras,!0),this._extensions=We(e.extensions,!0)}o1.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.class,i={};for(let r in n.properties)if(n.properties.hasOwnProperty(r)){let o=Sg.fromJson({id:r,property:n.properties[r],enums:e.enums});i[r]=o}return new o1({id:t,name:n.name,description:n.description,properties:i,extras:n.extras,extensions:n.extensions})};Object.defineProperties(o1.prototype,{properties:{get:function(){return this._properties}},propertiesBySemantic:{get:function(){return this._propertiesBySemantic}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});o1.BATCH_TABLE_CLASS_NAME="_batchTable";var vd=o1;function WU(e){e=y(e,y.EMPTY_OBJECT);let t=e.value,n=e.name;this._value=t,this._name=n,this._description=e.description,this._extras=We(e.extras,!0),this._extensions=We(e.extensions,!0)}WU.fromJson=function(e){return new WU({value:e.value,name:e.name,description:e.description,extras:e.extras,extensions:e.extensions})};Object.defineProperties(WU.prototype,{value:{get:function(){return this._value}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var s1=WU;function jU(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.values,i={},r={},o=n.length;for(let a=0;a<o;++a){let c=n[a];i[c.value]=c.name,r[c.name]=c.value}let s=y(e.valueType,tn.UINT16);this._values=n,this._namesByValue=i,this._valuesByName=r,this._valueType=s,this._id=t,this._name=e.name,this._description=e.description,this._extras=We(e.extras,!0),this._extensions=We(e.extensions,!0)}jU.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.enum,i=n.values.map(function(r){return s1.fromJson(r)});return new jU({id:t,values:i,valueType:tn[n.valueType],name:n.name,description:n.description,extras:n.extras,extensions:n.extensions})};Object.defineProperties(jU.prototype,{values:{get:function(){return this._values}},namesByValue:{get:function(){return this._namesByValue}},valuesByName:{get:function(){return this._valuesByName}},valueType:{get:function(){return this._valueType}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var a1=jU;function qU(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.classes,{}),n=y(e.enums,{});this._classes=t,this._enums=n,this._id=e.id,this._name=e.name,this._description=e.description,this._version=e.version,this._extras=We(e.extras,!0),this._extensions=We(e.extensions,!0)}qU.fromJson=function(e){let t={};if(u(e.enums))for(let i in e.enums)e.enums.hasOwnProperty(i)&&(t[i]=a1.fromJson({id:i,enum:e.enums[i]}));let n={};if(u(e.classes))for(let i in e.classes)e.classes.hasOwnProperty(i)&&(n[i]=vd.fromJson({id:i,class:e.classes[i],enums:t}));return new qU({id:e.id,name:e.name,description:e.description,version:e.version,classes:n,enums:t,extras:e.extras,extensions:e.extensions})};Object.defineProperties(qU.prototype,{classes:{get:function(){return this._classes}},enums:{get:function(){return this._enums}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},version:{get:function(){return this._version}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var wd=qU;function OA(e){e=y(e,y.EMPTY_OBJECT);let t=e.schema,n=e.resource,i=e.cacheKey;this._schema=u(t)?wd.fromJson(t):void 0,this._resource=n,this._cacheKey=i,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(OA.prototype=Object.create(or.prototype),OA.prototype.constructor=OA);Object.defineProperties(OA.prototype,{cacheKey:{get:function(){return this._cacheKey}},schema:{get:function(){return this._schema}}});OA.prototype.load=async function(){return u(this._promise)?this._promise:u(this._schema)?(this._promise=Promise.resolve(this),this._promise):(this._promise=PFe(this),this._promise)};async function PFe(e){let t=e._resource;e._state=St.LOADING;try{let n=await t.fetchJson();return e.isDestroyed()?void 0:(e._schema=wd.fromJson(n),e._state=St.READY,e)}catch(n){if(e.isDestroyed())return;e._state=St.FAILED;let i=`Failed to load schema: ${t.url}`;throw e.getError(i,n)}}OA.prototype.unload=function(){this._schema=void 0};var WT=OA;var Dd={};function c1(e){return ep(e.url)}function YU(e){let t=e.byteOffset,n=e.byteLength;if(ni(e,"EXT_meshopt_compression")){let i=e.extensions.EXT_meshopt_compression;t=y(i.byteOffset,0),n=i.byteLength}return`${t}-${t+n}`}function OFe(e,t){let n=t.byteOffset+e.byteOffset,i=e.componentType,r=e.type,o=e.count;return`${n}-${i}-${r}-${o}`}function Kne(e){return c1(e)}function Jne(e,t){return`${c1(e)}-buffer-id-${t}`}function l1(e,t,n,i){if(u(e.uri)){let r=i.getDerivedResource({url:e.uri});return Kne(r)}return Jne(n,t)}function Q5(e,t,n,i){let r=t.bufferView,o=e.bufferViews[r],s=o.buffer,a=e.buffers[s],c=l1(a,s,n,i),l=YU(o);return`${c}-range-${l}`}function Zne(e,t,n,i){let r=e.images[t],o=r.bufferView,s=r.uri;if(u(s)){let p=i.getDerivedResource({url:s});return c1(p)}let a=e.bufferViews[o],c=a.buffer,l=e.buffers[c],f=l1(l,c,n,i),d=YU(a);return`${f}-range-${d}`}function MFe(e,t){let n=xl.createSampler({gltf:e,textureInfo:t});return`${n.wrapS}-${n.wrapT}-${n.minificationFilter}-${n.magnificationFilter}`}Dd.getSchemaCacheKey=function(e){let t=e.schema,n=e.resource;return u(t)?`embedded-schema:${JSON.stringify(t)}`:`external-schema:${c1(n)}`};Dd.getExternalBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.resource;return`external-buffer:${Kne(t)}`};Dd.getEmbeddedBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.parentResource,n=e.bufferId;return`embedded-buffer:${Jne(t,n)}`};Dd.getGltfCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltfResource;return`gltf:${c1(t)}`};Dd.getBufferViewCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.bufferViewId,i=e.gltfResource,r=e.baseResource,o=t.bufferViews[n],s=o.buffer,a=t.buffers[s];ni(o,"EXT_meshopt_compression")&&(s=o.extensions.EXT_meshopt_compression.buffer);let c=l1(a,s,i,r),l=YU(o);return`buffer-view:${c}-range-${l}`};Dd.getDracoCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.draco,i=e.gltfResource,r=e.baseResource;return`draco:${Q5(t,n,i,r)}`};Dd.getVertexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.gltfResource,i=e.baseResource,r=e.frameState,o=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=y(e.dequantize,!1),l=y(e.loadBuffer,!1),f=y(e.loadTypedArray,!1),d="";if(c&&(d+="-dequantize"),l&&(d+="-buffer",d+=`-context-${r.context.id}`),f&&(d+="-typed-array"),u(s))return`vertex-buffer:${Q5(t,s,n,i)}-draco-${a}${d}`;let p=t.bufferViews[o],g=p.buffer,m=t.buffers[g],A=l1(m,g,n,i),x=YU(p);return`vertex-buffer:${A}-range-${x}${d}`};Dd.getIndexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.accessorId,i=e.gltfResource,r=e.baseResource,o=e.frameState,s=e.draco,a=y(e.loadBuffer,!1),c=y(e.loadTypedArray,!1),l="";if(a&&(l+="-buffer",l+=`-context-${o.context.id}`),c&&(l+="-typed-array"),u(s))return`index-buffer:${Q5(t,s,i,r)}-draco${l}`;let f=t.accessors[n],d=f.bufferView,p=t.bufferViews[d],g=p.buffer,m=t.buffers[g],A=l1(m,g,i,r),x=OFe(f,p);return`index-buffer:${A}-accessor-${x}${l}`};Dd.getImageCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.imageId,i=e.gltfResource,r=e.baseResource;return`image:${Zne(t,n,i,r)}`};Dd.getTextureCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureInfo,i=e.gltfResource,r=e.baseResource,o=e.supportedImageFormats,s=e.frameState,a=n.index,c=xl.getImageIdFromTexture({gltf:t,textureId:a,supportedImageFormats:o}),l=Zne(t,c,i,r),f=MFe(t,n);return`texture:${l}-sampler-${f}-context-${s.context.id}`};var Cl=Dd;function u1(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}}u1.prototype.clear=function(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}};u1.prototype.addGeometryLoader=function(e){let t=e.cacheKey;if(this._geometrySizes.hasOwnProperty(t))return;this._geometrySizes[t]=0;let n=e.buffer,i=e.typedArray,r=0;u(n)&&(r+=n.sizeInBytes),u(i)&&(r+=i.byteLength),this.geometryByteLength+=r,this._geometrySizes[t]=r};u1.prototype.addTextureLoader=function(e){let t=e.cacheKey;if(this._textureSizes.hasOwnProperty(t))return;this._textureSizes[t]=0;let n=e.texture.sizeInBytes;this.texturesByteLength+=e.texture.sizeInBytes,this._textureSizes[t]=n};u1.prototype.removeLoader=function(e){let t=e.cacheKey,n=this._geometrySizes[t];delete this._geometrySizes[t],u(n)&&(this.geometryByteLength-=n);let i=this._textureSizes[t];delete this._textureSizes[t],u(i)&&(this.texturesByteLength-=i)};var f1=u1;function Rn(){}Rn.cacheEntries={};Rn.statistics=new f1;function RFe(e){this.referenceCount=1,this.resourceLoader=e,this._statisticsPromise=void 0}Rn.get=function(e){let t=Rn.cacheEntries[e];if(u(t))return++t.referenceCount,t.resourceLoader};Rn.add=function(e){let t=e.cacheKey;return Rn.cacheEntries[t]=new RFe(e),e};Rn.unload=function(e){let t=e.cacheKey,n=Rn.cacheEntries[t];--n.referenceCount,n.referenceCount===0&&(Rn.statistics.removeLoader(e),e.destroy(),delete Rn.cacheEntries[t])};Rn.getSchemaLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.schema,n=e.resource,i=Cl.getSchemaCacheKey({schema:t,resource:n}),r=Rn.get(i);return u(r)?r:(r=new WT({schema:t,resource:n,cacheKey:i}),Rn.add(r))};Rn.getEmbeddedBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.parentResource,n=e.bufferId,i=e.typedArray,r=Cl.getEmbeddedBufferCacheKey({parentResource:t,bufferId:n}),o=Rn.get(r);return u(o)?o:(o=new EA({typedArray:i,cacheKey:r}),Rn.add(o))};Rn.getExternalBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.resource,n=Cl.getExternalBufferCacheKey({resource:t}),i=Rn.get(n);return u(i)?i:(i=new EA({resource:t,cacheKey:n}),Rn.add(i))};Rn.getGltfJsonLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltfResource,n=e.baseResource,i=e.typedArray,r=e.gltfJson,o=Cl.getGltfCacheKey({gltfResource:t}),s=Rn.get(o);return u(s)?s:(s=new zT({resourceCache:Rn,gltfResource:t,baseResource:n,typedArray:i,gltfJson:r,cacheKey:o}),Rn.add(s))};Rn.getBufferViewLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.bufferViewId,i=e.gltfResource,r=e.baseResource,o=Cl.getBufferViewCacheKey({gltf:t,bufferViewId:n,gltfResource:i,baseResource:r}),s=Rn.get(o);return u(s)?s:(s=new NT({resourceCache:Rn,gltf:t,bufferViewId:n,gltfResource:i,baseResource:r,cacheKey:o}),Rn.add(s))};Rn.getDracoLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.draco,i=e.gltfResource,r=e.baseResource,o=Cl.getDracoCacheKey({gltf:t,draco:n,gltfResource:i,baseResource:r}),s=Rn.get(o);return u(s)?s:(s=new FT({resourceCache:Rn,gltf:t,draco:n,gltfResource:i,baseResource:r,cacheKey:o}),Rn.add(s))};Rn.getVertexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.gltfResource,i=e.baseResource,r=e.frameState,o=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=e.accessorId,l=y(e.asynchronous,!0),f=y(e.dequantize,!1),d=y(e.loadBuffer,!1),p=y(e.loadTypedArray,!1),g=Cl.getVertexBufferCacheKey({gltf:t,gltfResource:n,baseResource:i,frameState:r,bufferViewId:o,draco:s,attributeSemantic:a,dequantize:f,loadBuffer:d,loadTypedArray:p}),m=Rn.get(g);return u(m)?m:(m=new GT({resourceCache:Rn,gltf:t,gltfResource:n,baseResource:i,bufferViewId:o,draco:s,attributeSemantic:a,accessorId:c,cacheKey:g,asynchronous:l,dequantize:f,loadBuffer:d,loadTypedArray:p}),Rn.add(m))};Rn.getIndexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.accessorId,i=e.gltfResource,r=e.baseResource,o=e.frameState,s=e.draco,a=y(e.asynchronous,!0),c=y(e.loadBuffer,!1),l=y(e.loadTypedArray,!1),f=Cl.getIndexBufferCacheKey({gltf:t,accessorId:n,gltfResource:i,baseResource:r,frameState:o,draco:s,loadBuffer:c,loadTypedArray:l}),d=Rn.get(f);return u(d)?d:(d=new VT({resourceCache:Rn,gltf:t,accessorId:n,gltfResource:i,baseResource:r,draco:s,cacheKey:f,asynchronous:a,loadBuffer:c,loadTypedArray:l}),Rn.add(d))};Rn.getImageLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.imageId,i=e.gltfResource,r=e.baseResource,o=Cl.getImageCacheKey({gltf:t,imageId:n,gltfResource:i,baseResource:r}),s=Rn.get(o);return u(s)?s:(s=new UT({resourceCache:Rn,gltf:t,imageId:n,gltfResource:i,baseResource:r,cacheKey:o}),Rn.add(s))};Rn.getTextureLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureInfo,i=e.gltfResource,r=e.baseResource,o=e.supportedImageFormats,s=e.frameState,a=y(e.asynchronous,!0),c=Cl.getTextureCacheKey({gltf:t,textureInfo:n,gltfResource:i,baseResource:r,supportedImageFormats:o,frameState:s}),l=Rn.get(c);return u(l)?l:(l=new HT({resourceCache:Rn,gltf:t,textureInfo:n,gltfResource:i,baseResource:r,supportedImageFormats:o,cacheKey:c,asynchronous:a}),Rn.add(l))};Rn.clearForSpecs=function(){let e=[GT,VT,FT,HT,UT,NT,EA,WT,zT],t,n=Rn.cacheEntries,i=[];for(t in n)n.hasOwnProperty(t)&&i.push(n[t]);i.sort(function(o,s){let a=e.indexOf(o.resourceLoader.constructor),c=e.indexOf(s.resourceLoader.constructor);return a-c});let r=i.length;for(let o=0;o<r;++o){let s=i[o];t=s.resourceLoader.cacheKey,u(n[t])&&(s.resourceLoader.destroy(),delete n[t])}Rn.statistics.clear()};var Ui=Rn;function Js(e,t,n){this._resource=e,this._subtreeJson=void 0,this._bufferLoader=void 0,this._tileAvailability=void 0,this._contentAvailabilityBitstreams=[],this._childSubtreeAvailability=void 0,this._implicitCoordinates=n,this._subtreeLevels=t.subtreeLevels,this._subdivisionScheme=t.subdivisionScheme,this._branchingFactor=t.branchingFactor,this._metadata=void 0,this._tileMetadataTable=void 0,this._tilePropertyTableJson=void 0,this._contentMetadataTables=[],this._contentPropertyTableJsons=[],this._tileJumpBuffer=void 0,this._contentJumpBuffers=[],this._ready=!1}Object.defineProperties(Js.prototype,{ready:{get:function(){return this._ready}},metadata:{get:function(){return this._metadata}},tileMetadataTable:{get:function(){return this._tileMetadataTable}},tilePropertyTableJson:{get:function(){return this._tilePropertyTableJson}},contentMetadataTables:{get:function(){return this._contentMetadataTables}},contentPropertyTableJsons:{get:function(){return this._contentPropertyTableJsons}},implicitCoordinates:{get:function(){return this._implicitCoordinates}}});Js.prototype.tileIsAvailableAtIndex=function(e){return this._tileAvailability.getBit(e)};Js.prototype.tileIsAvailableAtCoordinates=function(e){let t=this.getTileIndex(e);return this.tileIsAvailableAtIndex(t)};Js.prototype.contentIsAvailableAtIndex=function(e,t){return t=y(t,0),this._contentAvailabilityBitstreams[t].getBit(e)};Js.prototype.contentIsAvailableAtCoordinates=function(e,t){let n=this.getTileIndex(e);return this.contentIsAvailableAtIndex(n,t)};Js.prototype.childSubtreeIsAvailableAtIndex=function(e){return this._childSubtreeAvailability.getBit(e)};Js.prototype.childSubtreeIsAvailableAtCoordinates=function(e){let t=this.getChildSubtreeIndex(e);return this.childSubtreeIsAvailableAtIndex(t)};Js.prototype.getLevelOffset=function(e){let t=this._branchingFactor;return(Math.pow(t,e)-1)/(t-1)};Js.prototype.getParentMortonIndex=function(e){let t=2;return this._subdivisionScheme===jo.OCTREE&&(t=3),e>>t};Js.fromSubtreeJson=async function(e,t,n,i,r){let o=new Js(e,i,r),s;u(t)?s={json:t,binary:void 0}:s=BFe(n);let a=s.json;o._subtreeJson=a;let c;if(ni(a,"3DTILES_metadata"))c=a.extensions["3DTILES_metadata"];else if(u(a.tileMetadata)){let T=a.tileMetadata;c=a.propertyTables[T]}let l=[];if(u(a.contentMetadata)){let T=a.contentMetadata.length;for(let E=0;E<T;E++){let S=a.contentMetadata[E];l.push(a.propertyTables[S])}}let f,d=i.metadataSchema,p=a.subtreeMetadata;if(u(p)){let T=p.class,E=d.classes[T];f=new zP({subtreeMetadata:p,class:E})}o._metadata=f,o._tilePropertyTableJson=c,o._contentPropertyTableJsons=l;let g={constant:0};a.contentAvailabilityHeaders=[],ni(a,"3DTILES_multiple_contents")?a.contentAvailabilityHeaders=a.extensions["3DTILES_multiple_contents"].contentAvailability:Array.isArray(a.contentAvailability)?a.contentAvailabilityHeaders=a.contentAvailability:a.contentAvailabilityHeaders.push(y(a.contentAvailability,g));let m=LFe(a.buffers),A=NFe(a.bufferViews,m);FFe(a,A),u(c)&&Qne(c,A);for(let T=0;T<l.length;T++){let E=l[T];Qne(E,A)}let x=await UFe(o,m,s.binary),C=kFe(A,x);return zFe(o,a,i,C),u(c)&&(HFe(o,i,C),WFe(o)),GFe(o,i,C),jFe(o),o._ready=!0,o};function BFe(e){let n=new DataView(e.buffer,e.byteOffset),i=8,r=n.getUint32(i,!0);i+=8;let o=n.getUint32(i,!0);i+=8;let s=Mr(e,i,r);i+=r;let a=e.subarray(i,i+o);return{json:s,binary:a}}function LFe(e){e=u(e)?e:[];for(let t=0;t<e.length;t++){let n=e[t];n.isExternal=u(n.uri),n.isActive=!1}return e}function NFe(e,t){e=u(e)?e:[];for(let n=0;n<e.length;n++){let i=e[n],r=t[i.buffer];i.bufferHeader=r,i.isActive=!1}return e}function FFe(e,t){let n,i=e.tileAvailability;u(i.bitstream)?n=t[i.bitstream]:u(i.bufferView)&&(n=t[i.bufferView]),u(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);let r=e.contentAvailabilityHeaders;for(let s=0;s<r.length;s++)n=void 0,u(r[s].bitstream)?n=t[r[s].bitstream]:u(r[s].bufferView)&&(n=t[r[s].bufferView]),u(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);n=void 0;let o=e.childSubtreeAvailability;u(o.bitstream)?n=t[o.bitstream]:u(o.bufferView)&&(n=t[o.bufferView]),u(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0)}function Qne(e,t){let n=e.properties,i;for(let r in n)if(n.hasOwnProperty(r)){let o=n[r],s=y(o.values,o.bufferView);i=t[s],i.isActive=!0,i.bufferHeader.isActive=!0;let a=y(o.stringOffsets,o.stringOffsetBufferView);u(a)&&(i=t[a],i.isActive=!0,i.bufferHeader.isActive=!0);let c=y(o.arrayOffsets,o.arrayOffsetBufferView);u(c)&&(i=t[c],i.isActive=!0,i.bufferHeader.isActive=!0)}}function UFe(e,t,n){let i=[];for(let r=0;r<t.length;r++){let o=t[r];if(!o.isActive)i.push(Promise.resolve(void 0));else if(o.isExternal){let s=VFe(e,o);i.push(s)}else i.push(Promise.resolve(n))}return Promise.all(i).then(function(r){let o={};for(let s=0;s<r.length;s++){let a=r[s];u(a)&&(o[s]=a)}return o})}async function VFe(e,t){let i=e._resource.getDerivedResource({url:t.uri}),r=Ui.getExternalBufferLoader({resource:i});e._bufferLoader=r;try{await r.load()}catch(o){if(r.isDestroyed())return;throw o}return r.typedArray}function kFe(e,t){let n={};for(let i=0;i<e.length;i++){let r=e[i];if(!r.isActive)continue;let o=r.byteOffset,s=o+r.byteLength,c=t[r.buffer].subarray(o,s);n[i]=c}return n}function zFe(e,t,n,i){let r=n.branchingFactor,o=n.subtreeLevels,s=(Math.pow(r,o)-1)/(r-1),a=Math.pow(r,o),c=ni(t,"3DTILES_metadata"),l=u(e._tilePropertyTableJson),f=c||l;e._tileAvailability=$5(t.tileAvailability,i,s,f);let d=e._contentPropertyTableJsons.length>0;f=f||d;for(let p=0;p<t.contentAvailabilityHeaders.length;p++){let g=$5(t.contentAvailabilityHeaders[p],i,s,f);e._contentAvailabilityBitstreams.push(g)}e._childSubtreeAvailability=$5(t.childSubtreeAvailability,i,a)}function $5(e,t,n,i){if(u(e.constant))return new BT({constant:!!e.constant,lengthBits:n,availableCount:e.availableCount});let r;return u(e.bitstream)?r=t[e.bitstream]:u(e.bufferView)&&(r=t[e.bufferView]),new BT({bitstream:r,lengthBits:n,availableCount:e.availableCount,computeAvailableCountEnabled:i})}function HFe(e,t,n){let i=e._tilePropertyTableJson,r=e._tileAvailability.availableCount,o=t.metadataSchema,s=i.class,a=o.classes[s];e._tileMetadataTable=new yl({class:a,count:r,properties:i.properties,bufferViews:n})}function GFe(e,t,n){let i=e._contentPropertyTableJsons,r=e._contentAvailabilityBitstreams,o=t.metadataSchema,s=e._contentMetadataTables;for(let a=0;a<i.length;a++){let c=i[a],f=r[a].availableCount,d=c.class,p=o.classes[d],g=new yl({class:p,count:f,properties:c.properties,bufferViews:n});s.push(g)}}function $ne(e){let t=0,n=e.lengthBits,i=e.availableCount,r;i<256?r=new Uint8Array(n):i<65536?r=new Uint16Array(n):r=new Uint32Array(n);for(let o=0;o<e.lengthBits;o++)e.getBit(o)&&(r[o]=t,t++);return r}function WFe(e){let t=$ne(e._tileAvailability);e._tileJumpBuffer=t}function jFe(e){let t=e._contentJumpBuffers,n=e._contentAvailabilityBitstreams;for(let i=0;i<n.length;i++){let r=n[i],o=$ne(r);t.push(o)}}Js.prototype.getTileIndex=function(e){let t=e.level-this._implicitCoordinates.level;if(t<0||this._subtreeLevels<=t)throw new de("level is out of bounds for this subtree");return e.getSubtreeCoordinates().getOffsetCoordinates(e).tileIndex};Js.prototype.getChildSubtreeIndex=function(e){if(e.level-this._implicitCoordinates.level!==this._implicitCoordinates.subtreeLevels)throw new de("level is out of bounds for this subtree");return e.getParentSubtreeCoordinates().getOffsetCoordinates(e).mortonIndex};function qFe(e,t){if(!u(e._tileMetadataTable))return;let n=e.getTileIndex(t);if(e._tileAvailability.getBit(n))return e._tileJumpBuffer[n]}function YFe(e,t,n){let i=e._contentMetadataTables;if(!u(i))return;let r=i[n];if(!u(r))return;let o=e._contentAvailabilityBitstreams[n],s=e.getTileIndex(t);if(o.getBit(s))return e._contentJumpBuffers[n][s]}Js.prototype.getTileMetadataView=function(e){let t=qFe(this,e);if(!u(t))return;let n=this._tileMetadataTable;return new LT({class:n.class,metadataTable:n,entityId:t,propertyTableJson:this._tilePropertyTableJson})};Js.prototype.getContentMetadataView=function(e,t){let n=YFe(this,e,t);if(!u(n))return;let i=this._contentMetadataTables[t],r=this._contentPropertyTableJsons[t];return new LT({class:i.class,metadataTable:i,entityId:n,contentIndex:t,propertyTableJson:r})};Js.prototype.isDestroyed=function(){return!1};Js.prototype.destroy=function(){return u(this._bufferLoader)&&Ui.unload(this._bufferLoader),ue(this)};var MA=Js;var XFe={ID:"ID",NAME:"NAME",DESCRIPTION:"DESCRIPTION",TILESET_TILE_COUNT:"TILESET_TILE_COUNT",TILE_BOUNDING_BOX:"TILE_BOUNDING_BOX",TILE_BOUNDING_REGION:"TILE_BOUNDING_REGION",TILE_BOUNDING_SPHERE:"TILE_BOUNDING_SPHERE",TILE_MINIMUM_HEIGHT:"TILE_MINIMUM_HEIGHT",TILE_MAXIMUM_HEIGHT:"TILE_MAXIMUM_HEIGHT",TILE_HORIZON_OCCLUSION_POINT:"TILE_HORIZON_OCCLUSION_POINT",TILE_GEOMETRIC_ERROR:"TILE_GEOMETRIC_ERROR",CONTENT_BOUNDING_BOX:"CONTENT_BOUNDING_BOX",CONTENT_BOUNDING_REGION:"CONTENT_BOUNDING_REGION",CONTENT_BOUNDING_SPHERE:"CONTENT_BOUNDING_SPHERE",CONTENT_MINIMUM_HEIGHT:"CONTENT_MINIMUM_HEIGHT",CONTENT_MAXIMUM_HEIGHT:"CONTENT_MAXIMUM_HEIGHT",CONTENT_HORIZON_OCCLUSION_POINT:"CONTENT_HORIZON_OCCLUSION_POINT"},RA=Object.freeze(XFe);function KFe(e){return{tile:{boundingVolume:eie("TILE",e),minimumHeight:tie("TILE",e),maximumHeight:nie("TILE",e)},content:{boundingVolume:eie("CONTENT",e),minimumHeight:tie("CONTENT",e),maximumHeight:nie("CONTENT",e)}}}function eie(e,t){let n=`${e}_BOUNDING_BOX`,i=t.getPropertyBySemantic(n);if(u(i))return{box:i};let r=`${e}_BOUNDING_REGION`,o=t.getPropertyBySemantic(r);if(u(o))return{region:o};let s=`${e}_BOUNDING_SPHERE`,a=t.getPropertyBySemantic(s);if(u(a))return{sphere:a}}function tie(e,t){let n=`${e}_MINIMUM_HEIGHT`;return t.getPropertyBySemantic(n)}function nie(e,t){let n=`${e}_MAXIMUM_HEIGHT`;return t.getPropertyBySemantic(n)}var d1=KFe;function Tl(e,t,n){let i=t.implicitTileset,r=t.implicitCoordinates;this._implicitTileset=i,this._implicitCoordinates=r,this._implicitSubtree=void 0,this._tileset=e,this._tile=t,this._resource=n,this._metadata=void 0,this.featurePropertiesDirty=!1,this._group=void 0;let o=r.getTemplateValues(),s=i.subtreeUriTemplate.getDerivedResource({templateValues:o});this._url=s.getUrlComponent(!0),this._ready=!1,this._readyPromise=void 0}Object.defineProperties(Tl.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Implicit3DTileContent.readyPromise","Implicit3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Implicit3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._url}},metadata:{get:function(){},set:function(){}},batchTable:{get:function(){}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Tl.fromSubtreeJson=async function(e,t,n,i,r,o){o=y(o,0);let s;u(r)&&(s=new Uint8Array(r,o));let a=t.implicitTileset,c=t.implicitCoordinates,l=await MA.fromSubtreeJson(n,i,s,a,c),f=new Tl(e,t,n);return f._implicitSubtree=l,JFe(f,l),f._ready=!0,f._readyPromise=Promise.resolve(f),f};function JFe(e,t){let n=e._tile,i=e._implicitCoordinates.childIndex,r=QFe(e,t,n,i),o=e._tileset.statistics;n.children.push(r.rootTile),o.numberOfTilesTotal++;let s=ZFe(e,t,r.bottomRow);for(let a=0;a<s.length;a++){let c=s[a],l=c.tile,f=a2e(e,l,c.childIndex);l.children.push(f),o.numberOfTilesTotal++}}function ZFe(e,t,n){let i=[],r=e._implicitTileset.branchingFactor;for(let o=0;o<n.length;o++){let s=n[o];if(u(s))for(let a=0;a<r;a++){let c=o*r+a;t.childSubtreeIsAvailableAtIndex(c)&&i.push({tile:s,childIndex:a})}}return i}function QFe(e,t,n,i){let s=iie(e,t,n,i,0,!0),a=e._tileset.statistics,c=[s],l=[],f=e._implicitTileset;for(let d=1;d<f.subtreeLevels;d++){let p=t.getLevelOffset(d),g=f.branchingFactor*c.length;for(let m=0;m<g;m++){let A=p+m;if(!t.tileIsAvailableAtIndex(A)){l.push(void 0);continue}let x=t.getParentMortonIndex(m),C=c[x],T=m%f.branchingFactor,E=iie(e,t,C,T,A);C.children.push(E),a.numberOfTilesTotal++,l.push(E)}c=l,l=[]}return{rootTile:s,bottomRow:c}}function rie(e,t,n){let i=RA.TILE_GEOMETRIC_ERROR;return u(e)&&e.hasPropertyBySemantic(i)?e.getPropertyBySemantic(i):t.geometricError/Math.pow(2,n.level)}function iie(e,t,n,i,r,o){let s=e._implicitTileset,a;y(o,!1)?a=n.implicitCoordinates:a=n.implicitCoordinates.getChildCoordinates(i);let c,l,f;if(u(t.tilePropertyTableJson)){c=t.getTileMetadataView(a);let D=d1(c);l=D.tile,f=D.content}let p=t.contentPropertyTableJsons.length,g=!1;for(let D=0;D<p;D++)if(t.contentIsAvailableAtCoordinates(a,D)){g=!0;break}let m=t2e(s,a,i,o,n,l),A=[];for(let D=0;D<s.contentCount;D++){if(!t.contentIsAvailableAtIndex(r,D))continue;let B={uri:s.contentUriTemplates[D].getDerivedResource({templateValues:a.getTemplateValues()}).url},L=n2e(m,f);u(L)&&(B.boundingVolume=L),A.push(_t(B,s.contentHeaders[D]))}let x=rie(c,s,a),C={boundingVolume:m,geometricError:x,refine:s.refine,contents:A},T=!0,E=We(s.tileHeader,T);delete E.boundingVolume,delete E.transform;let S=_t(C,E,T),v=lie(e,s.baseResource,S,n);return v.implicitCoordinates=a,v.implicitSubtree=t,v.metadata=c,v.hasImplicitContentMetadata=g,v}function XU(e,t){return u(e)&&u(t)&&(u(t.minimumHeight)||u(t.maximumHeight))&&(ni(e,"3DTILES_bounding_volume_S2")||u(e.region))}function t6(e,t){u(t)&&(ni(e,"3DTILES_bounding_volume_S2")?e2e(e.extensions["3DTILES_bounding_volume_S2"],t.minimumHeight,t.maximumHeight):u(e.region)&&$Fe(e.region,t.minimumHeight,t.maximumHeight))}function $Fe(e,t,n){u(t)&&(e[4]=t),u(n)&&(e[5]=n)}function e2e(e,t,n){u(t)&&(e.minimumHeight=t),u(n)&&(e.maximumHeight=n)}function t2e(e,t,n,i,r,o){let s;return!u(o)||!u(o.boundingVolume)||!XU(o.boundingVolume,o)&&XU(e.boundingVolume,o)?s=oie(e,t,n,y(i,!1),r):s=o.boundingVolume,t6(s,o),s}function n2e(e,t){let n;return u(t)&&(n=t.boundingVolume),XU(n,t)?t6(n,t):XU(e,t)&&(n=We(e,!0),t6(n,t)),n}function oie(e,t,n,i,r){let o=e.boundingVolume;return ni(o,"3DTILES_bounding_volume_S2")?sie(i,r,n,t.level,t.x,t.y,t.z):u(o.region)?{region:cie(o.region,t.level,t.x,t.y,t.z)}:{box:aie(o.box,t.level,t.x,t.y,t.z)}}function sie(e,t,n,i,r,o,s){let a=t._boundingVolume;if(e)return{extensions:{"3DTILES_bounding_volume_S2":{token:wp.getTokenFromId(a.s2Cell._cellId),minimumHeight:a.minimumHeight,maximumHeight:a.maximumHeight}}};let c=Number(t._boundingVolume.s2Cell._cellId>>BigInt(61)),l=c%2===0?MT.encode2D(i,r,o):MT.encode2D(i,o,r),f=wp.fromFacePositionLevel(c,BigInt(l),i),d,p;if(u(s)){let g=(a.maximumHeight+a.minimumHeight)/2;d=n<4?a.minimumHeight:g,p=n<4?g:a.maximumHeight}else d=a.minimumHeight,p=a.maximumHeight;return{extensions:{"3DTILES_bounding_volume_S2":{token:wp.getTokenFromId(f._cellId),minimumHeight:d,maximumHeight:p}}}}var i2e=new h,r2e=new h,e6=new h,o2e=new Q;function aie(e,t,n,i,r){if(t===0)return e;let o=h.unpack(e,0,r2e),s=Q.unpack(e,3,o2e),a=Math.pow(2,-t),c=-1+(2*n+1)*a,l=-1+(2*i+1)*a,f=0,d=h.fromElements(a,a,1,i2e);u(r)&&(f=-1+(2*r+1)*a,d.z=a);let p=h.fromElements(c,l,f,e6);p=Q.multiplyByVector(s,p,e6),p=h.add(p,o,e6);let g=Q.clone(s);g=Q.multiplyByScale(g,d,g);let m=new Array(12);return h.pack(p,m),Q.pack(g,m,3),m}var s2e=new le;function cie(e,t,n,i,r){if(t===0)return e.slice();let o=le.unpack(e,0,s2e),s=e[4],a=e[5],c=Math.pow(2,-t),l=c*o.width,f=P.negativePiToPi(o.west+n*l),d=P.negativePiToPi(f+l),p=c*o.height,g=P.negativePiToPi(o.south+i*p),m=P.negativePiToPi(g+p),A=s,x=a;if(u(r)){let C=c*(a-s);A+=r*C,x=A+C}return[f,g,d,m,A,x]}function a2e(e,t,n){let i=e._implicitTileset,r=t.implicitCoordinates.getChildCoordinates(n),o=oie(i,r,n,!1,t),s=rie(void 0,i,r),a=i.subtreeUriTemplate.getDerivedResource({templateValues:r.getTemplateValues()}).url,c={boundingVolume:o,geometricError:s,refine:i.refine,contents:[{uri:a}]},l=lie(e,i.baseResource,c,t);return l.implicitTileset=i,l.implicitCoordinates=r,l}function lie(e,t,n,i){let r=e._tile.constructor;return new r(e._tileset,t,n,i)}Tl.prototype.hasProperty=function(e,t){return!1};Tl.prototype.getFeature=function(e){};Tl.prototype.applyDebugSettings=function(e,t){};Tl.prototype.applyStyle=function(e){};Tl.prototype.update=function(e,t){};Tl.prototype.isDestroyed=function(){return!1};Tl.prototype.destroy=function(){return this._implicitSubtree=this._implicitSubtree&&this._implicitSubtree.destroy(),ue(this)};Tl._deriveBoundingBox=aie;Tl._deriveBoundingRegion=cie;Tl._deriveBoundingVolumeS2=sie;var jT=Tl;var c2e={NONE:0,REPEAT:1,MIRRORED_REPEAT:2},El=Object.freeze(c2e);function qT(e,t){this._distance=t,this._normal=new uie(e,this),this.onChangeCallback=void 0,this.index=-1}Object.defineProperties(qT.prototype,{distance:{get:function(){return this._distance},set:function(e){u(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(e){u(this.onChangeCallback)&&!h.equals(this._normal._cartesian3,e)&&this.onChangeCallback(this.index),h.clone(e,this._normal._cartesian3)}}});qT.fromPlane=function(e,t){return u(t)?(t.normal=e.normal,t.distance=e.distance):t=new qT(e.normal,e.distance),t};qT.clone=function(e,t){return u(t)?(t.normal=e.normal,t.distance=e.distance,t):new qT(e.normal,e.distance)};function uie(e,t){this._clippingPlane=t,this._cartesian3=h.clone(e)}Object.defineProperties(uie.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){u(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.x&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.x=e}},y:{get:function(){return this._cartesian3.y},set:function(e){u(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.y&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.y=e}},z:{get:function(){return this._cartesian3.z},set:function(e){u(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}});var BA=qT;function Ja(e){e=y(e,y.EMPTY_OBJECT),this._planes=[],this._dirtyIndex=-1,this._multipleDirtyPlanes=!1,this._enabled=y(e.enabled,!0),this.modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this.edgeColor=z.clone(y(e.edgeColor,z.WHITE)),this.edgeWidth=y(e.edgeWidth,0),this.planeAdded=new ge,this.planeRemoved=new ge,this._owner=void 0;let t=y(e.unionClippingRegions,!1);this._unionClippingRegions=t,this._testIntersection=t?pie:_ie,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;let n=e.planes;if(u(n)){let i=n.length;for(let r=0;r<i;++r)this.add(n[r])}}function pie(e){return e===Qt.OUTSIDE}function _ie(e){return e===Qt.INSIDE}Object.defineProperties(Ja.prototype,{length:{get:function(){return this._planes.length}},unionClippingRegions:{get:function(){return this._unionClippingRegions},set:function(e){this._unionClippingRegions!==e&&(this._unionClippingRegions=e,this._testIntersection=e?pie:_ie)}},enabled:{get:function(){return this._enabled},set:function(e){this._enabled!==e&&(this._enabled=e)}},texture:{get:function(){return this._clippingPlanesTexture}},owner:{get:function(){return this._owner}},clippingPlanesState:{get:function(){return this._unionClippingRegions?this._planes.length:-this._planes.length}}});function fie(e,t){e._multipleDirtyPlanes=e._multipleDirtyPlanes||e._dirtyIndex!==-1&&e._dirtyIndex!==t,e._dirtyIndex=t}Ja.prototype.add=function(e){let t=this._planes.length,n=this;e.onChangeCallback=function(i){fie(n,i)},e.index=t,fie(this,t),this._planes.push(e),this.planeAdded.raiseEvent(e,t)};Ja.prototype.get=function(e){return this._planes[e]};function gie(e,t){let n=e.length;for(let i=0;i<n;++i)if(cn.equals(e[i],t))return i;return-1}Ja.prototype.contains=function(e){return gie(this._planes,e)!==-1};Ja.prototype.remove=function(e){let t=this._planes,n=gie(t,e);if(n===-1)return!1;e instanceof BA&&(e.onChangeCallback=void 0,e.index=-1);let i=t.length-1;for(let r=n;r<i;++r){let o=t[r+1];t[r]=o,o instanceof BA&&(o.index=r)}return this._multipleDirtyPlanes=!0,t.length=i,this.planeRemoved.raiseEvent(e,n),!0};Ja.prototype.removeAll=function(){let e=this._planes,t=e.length;for(let n=0;n<t;++n){let i=e[n];i instanceof BA&&(i.onChangeCallback=void 0,i.index=-1),this.planeRemoved.raiseEvent(i,n)}this._multipleDirtyPlanes=!0,this._planes=[]};var l2e=new se,u2e=new se;function die(e,t,n){let i=e._uint8View,r=e._planes,o=0;for(let s=t;s<n;++s){let a=r[s],c=qn.octEncodeToCartesian4(a.normal,u2e);i[o]=c.x,i[o+1]=c.y,i[o+2]=c.z,i[o+3]=c.w;let l=se.packFloat(a.distance,l2e);i[o+4]=l.x,i[o+5]=l.y,i[o+6]=l.z,i[o+7]=l.w,o+=8}}function hie(e,t,n){let i=e._float32View,r=e._planes,o=0;for(let s=t;s<n;++s){let a=r[s],c=a.normal;i[o]=c.x,i[o+1]=c.y,i[o+2]=c.z,i[o+3]=a.distance,o+=4}}function yie(e,t){let n=zt.maximumTextureSize;return t.x=Math.min(e,n),t.y=Math.ceil(e/t.x),t}var f2e=new H;Ja.prototype.update=function(e){let t=this._clippingPlanesTexture,n=e.context,i=Ja.useFloatTexture(n),r=i?this.length:this.length*2;if(u(t)){let s=t.width*t.height;(s<r||r<.25*s)&&(t.destroy(),t=void 0,this._clippingPlanesTexture=void 0)}if(this.length===0)return;if(!u(t)){let s=yie(r,f2e);s.y*=2,i?(t=new Rt({context:n,width:s.x,height:s.y,pixelFormat:at.RGBA,pixelDatatype:Ke.FLOAT,sampler:ln.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*4)):(t=new Rt({context:n,width:s.x,height:s.y,pixelFormat:at.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,sampler:ln.NEAREST,flipY:!1}),this._uint8View=new Uint8Array(s.x*s.y*4)),this._clippingPlanesTexture=t,this._multipleDirtyPlanes=!0}let o=this._dirtyIndex;if(!(!this._multipleDirtyPlanes&&o===-1)){if(this._multipleDirtyPlanes)i?(hie(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._float32View}})):(die(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._uint8View}}));else{let s=0,a=0;i?(a=Math.floor(o/t.width),s=Math.floor(o-a*t.width),hie(this,o,o+1),t.copyFrom({source:{width:1,height:1,arrayBufferView:this._float32View},xOffset:s,yOffset:a})):(a=Math.floor(o*2/t.width),s=Math.floor(o*2-a*t.width),die(this,o,o+1),t.copyFrom({source:{width:2,height:1,arrayBufferView:this._uint8View},xOffset:s,yOffset:a}))}this._multipleDirtyPlanes=!1,this._dirtyIndex=-1}};var d2e=new N,mie=new cn(h.UNIT_X,0);Ja.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._planes,i=n.length,r=this.modelMatrix;u(t)&&(r=N.multiply(t,r,d2e));let o=Qt.INSIDE;!this.unionClippingRegions&&i>0&&(o=Qt.OUTSIDE);for(let s=0;s<i;++s){let a=n[s];cn.transform(a,r,mie);let c=e.intersectPlane(mie);if(c===Qt.INTERSECTING)o=c;else if(this._testIntersection(c))return c}return o};Ja.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),u(e)&&(e._owner=t,t[n]=e))};Ja.useFloatTexture=function(e){return e.floatingPointTexture};Ja.getTextureResolution=function(e,t,n){let i=e.texture;if(u(i))return n.x=i.width,n.y=i.height,n;let r=Ja.useFloatTexture(t)?e.length:e.length*2,o=yie(r,n);return o.y*=2,o};Ja.prototype.isDestroyed=function(){return!1};Ja.prototype.destroy=function(){return this._clippingPlanesTexture=this._clippingPlanesTexture&&this._clippingPlanesTexture.destroy(),ue(this)};var ls=Ja;var h1={HIGHLIGHT:0,REPLACE:1,MIX:2};h1.getColorBlend=function(e,t){if(e===h1.HIGHLIGHT)return 0;if(e===h1.REPLACE)return 1;if(e===h1.MIX)return P.clamp(t,P.EPSILON4,1)};var Za=Object.freeze(h1);var h2e={XTRANSLATE:"xTranslate",YTRANSLATE:"yTranslate",ZTRANSLATE:"zTranslate",XROTATE:"xRotate",YROTATE:"yRotate",ZROTATE:"zRotate",XSCALE:"xScale",YSCALE:"yScale",ZSCALE:"zScale",UNIFORMSCALE:"uniformScale"},Qa=Object.freeze(h2e);var m2e={STEP:0,LINEAR:1,CUBICSPLINE:2},Id=Object.freeze(m2e);var Aie={};function m1(e){this._count=e.count,this._properties=We(e.properties,!0)}m1.prototype.hasProperty=function(e){return Nn.hasProperty(e,this._properties,Aie)};m1.prototype.getPropertyIds=function(e){return Nn.getPropertyIds(this._properties,Aie,e)};m1.prototype.getProperty=function(e,t){let n=this._properties[t];if(u(n))return We(n[e],!0)};m1.prototype.setProperty=function(e,t,n){let i=this._properties[t];u(i)||(i=new Array(this._count),this._properties[t]=i),i[e]=We(n,!0)};var Bp=m1;function $a(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._id=e.id,this._count=e.count,this._extras=e.extras,this._extensions=e.extensions,this._metadataTable=e.metadataTable,this._jsonMetadataTable=e.jsonMetadataTable,this._batchTableHierarchy=e.batchTableHierarchy}Object.defineProperties($a.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},count:{get:function(){return this._count}},class:{get:function(){if(u(this._metadataTable))return this._metadataTable.class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){let e=0;return u(this._metadataTable)&&(e+=this._metadataTable.byteLength),u(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e}}});$a.prototype.hasProperty=function(e,t){return!!(u(this._metadataTable)&&this._metadataTable.hasProperty(t)||u(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)||u(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(t))};$a.prototype.hasPropertyBySemantic=function(e,t){return u(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(t):!1};$a.prototype.propertyExists=function(e){return!!(u(this._metadataTable)&&this._metadataTable.hasProperty(e)||u(this._batchTableHierarchy)&&this._batchTableHierarchy.propertyExists(e)||u(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(e))};$a.prototype.propertyExistsBySemantic=function(e){return u(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(e):!1};var n6=[];$a.prototype.getPropertyIds=function(e,t){return t=u(t)?t:[],t.length=0,u(this._metadataTable)&&t.push.apply(t,this._metadataTable.getPropertyIds(n6)),u(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,n6)),u(this._jsonMetadataTable)&&t.push.apply(t,this._jsonMetadataTable.getPropertyIds(n6)),t};$a.prototype.getProperty=function(e,t){let n;if(u(this._metadataTable)&&(n=this._metadataTable.getProperty(e,t),u(n))||u(this._batchTableHierarchy)&&(n=this._batchTableHierarchy.getProperty(e,t),u(n))||u(this._jsonMetadataTable)&&(n=this._jsonMetadataTable.getProperty(e,t),u(n)))return n};$a.prototype.setProperty=function(e,t,n){u(this._metadataTable)&&this._metadataTable.setProperty(e,t,n)||u(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n)||(u(this._jsonMetadataTable)||(this._jsonMetadataTable=new Bp({count:this._count,properties:{}})),this._jsonMetadataTable.setProperty(e,t,n))};$a.prototype.getPropertyBySemantic=function(e,t){if(u(this._metadataTable))return this._metadataTable.getPropertyBySemantic(e,t)};$a.prototype.setPropertyBySemantic=function(e,t,n){return u(this._metadataTable)?this._metadataTable.setPropertyBySemantic(e,t,n):!1};$a.prototype.getPropertyTypedArray=function(e){if(u(this._metadataTable))return this._metadataTable.getPropertyTypedArray(e)};$a.prototype.getPropertyTypedArrayBySemantic=function(e){if(u(this._metadataTable))return this._metadataTable.getPropertyTypedArrayBySemantic(e)};$a.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return u(n)?n.isClass(e,t):!1};$a.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};$a.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(u(t))return t.getClassName(e)};var Vc=$a;function p1(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty,i=e.textures,r=u(t.channels)?t.channels:[0],o=t,s=xl.createModelTextureReader({textureInfo:o,channels:g2e(r),texture:i[o.index]});this._min=t.min,this._max=t.max;let a=t.offset,c=t.scale,l=n.hasValueTransform||u(a)||u(c);a=y(a,n.offset),c=y(c,n.scale),a=n.unpackVectorAndMatrixTypes(a),c=n.unpackVectorAndMatrixTypes(c),this._offset=a,this._scale=c,this._hasValueTransform=l,this._textureReader=s,this._classProperty=n,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(p1.prototype,{textureReader:{get:function(){return this._textureReader}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});p1.prototype.isGpuCompatible=function(){let e=this._classProperty,t=e.type,n=e.componentType;return e.isArray?!e.isVariableLengthArray&&e.arrayLength<=4&&t===jt.SCALAR&&n===tn.UINT8:jt.isVectorType(t)||t===jt.SCALAR?n===tn.UINT8:!1};var p2e=[void 0,"float","vec2","vec3","vec4"],_2e=[void 0,"int","ivec2","ivec3","ivec4"];p1.prototype.getGlslType=function(){let e=this._classProperty,t=jt.getComponentCount(e.type);return e.isArray&&(t=e.arrayLength),e.normalized?p2e[t]:_2e[t]};p1.prototype.unpackInShader=function(e){return this._classProperty.normalized?e:`${this.getGlslType()}(255.0 * ${e})`};function g2e(e){return e.map(function(t){return"rgba".charAt(t)}).join("")}var _1=p1;function i6(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyTexture,n=e.class,i=e.textures,r=t.extensions,o=t.extras,s={};if(u(t.properties))for(let a in t.properties)t.properties.hasOwnProperty(a)&&(s[a]=new _1({property:t.properties[a],classProperty:n.properties[a],textures:i}));this._name=e.name,this._id=e.id,this._class=n,this._properties=s,this._extras=o,this._extensions=r}Object.defineProperties(i6.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});i6.prototype.getProperty=function(e){return this._properties[e]};var LA=i6;function xie(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty;this._attribute=t.attribute,this._classProperty=n,this._min=t.min,this._max=t.max;let i=t.offset,r=t.scale,o=n.hasValueTransform||u(i)||u(r);i=y(i,n.offset),r=y(r,n.scale),i=n.unpackVectorAndMatrixTypes(i),r=n.unpackVectorAndMatrixTypes(r),this._offset=i,this._scale=r,this._hasValueTransform=o,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(xie.prototype,{attribute:{get:function(){return this._attribute}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var g1=xie;function r6(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyAttribute,n=e.class,i={};if(u(t.properties))for(let r in t.properties)t.properties.hasOwnProperty(r)&&(i[r]=new g1({property:t.properties[r],classProperty:n.properties[r]}));this._name=e.name,this._id=e.id,this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(r6.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});r6.prototype.getProperty=function(e){return this._properties[e]};var NA=r6;function y1(e){e=y(e,y.EMPTY_OBJECT),this._schema=e.schema;let t=e.propertyTables;this._propertyTableCount=u(t)?t.length:0,this._propertyTables=t,this._propertyTextures=e.propertyTextures,this._propertyAttributes=e.propertyAttributes,this._statistics=e.statistics,this._extras=e.extras,this._extensions=e.extensions}Object.defineProperties(y1.prototype,{schema:{get:function(){return this._schema}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},propertyTableCount:{get:function(){return this._propertyTableCount}},propertyTables:{get:function(){return this._propertyTables}},propertyTextures:{get:function(){return this._propertyTextures}},propertyAttributes:{get:function(){return this._propertyAttributes}},propertyTablesByteLength:{get:function(){if(!u(this._propertyTables))return 0;let e=0,t=this._propertyTables.length;for(let n=0;n<t;n++)e+=this._propertyTables[n].byteLength;return e}}});y1.prototype.getPropertyTable=function(e){return this._propertyTables[e]};y1.prototype.getPropertyTexture=function(e){return this._propertyTextures[e]};y1.prototype.getPropertyAttribute=function(e){return this._propertyAttributes[e]};var xa=y1;function y2e(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i=[];if(u(t.propertyTables))for(let s=0;s<t.propertyTables.length;s++){let a=t.propertyTables[s],c=n.classes[a.class],l=new yl({count:a.count,properties:a.properties,class:c,bufferViews:e.bufferViews});i.push(new Vc({id:s,name:a.name,count:a.count,metadataTable:l,extras:a.extras,extensions:a.extensions}))}let r=[];if(u(t.propertyTextures))for(let s=0;s<t.propertyTextures.length;s++){let a=t.propertyTextures[s];r.push(new LA({id:s,name:a.name,propertyTexture:a,class:n.classes[a.class],textures:e.textures}))}let o=[];if(u(t.propertyAttributes))for(let s=0;s<t.propertyAttributes.length;s++){let a=t.propertyAttributes[s];o.push(new NA({id:s,name:a.name,class:n.classes[a.class],propertyAttribute:a}))}return new xa({schema:n,propertyTables:i,propertyTextures:r,propertyAttributes:o,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}var A1=y2e;function A2e(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i,r=[],o;if(u(t.featureTables))for(o=Object.keys(t.featureTables).sort(),i=0;i<o.length;i++){let a=o[i],c=t.featureTables[a],l=n.classes[c.class],f=new yl({count:c.count,properties:c.properties,class:l,bufferViews:e.bufferViews});r.push(new Vc({id:a,count:c.count,metadataTable:f,extras:c.extras,extensions:c.extensions}))}let s=[];if(u(t.featureTextures))for(o=Object.keys(t.featureTextures).sort(),i=0;i<o.length;i++){let a=o[i],c=t.featureTextures[a];s.push(new LA({id:a,propertyTexture:x2e(c),class:n.classes[c.class],textures:e.textures}))}return new xa({schema:n,propertyTables:r,propertyTextures:s,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}function x2e(e){let t={class:e.class,properties:{}},n=e.properties;for(let i in n)if(n.hasOwnProperty(i)){let r=n[i],o={channels:C2e(r.channels),extras:r.extras,extensions:r.extensions};t.properties[i]=_t(r.texture,o,!0)}return t}function C2e(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]="rgba".indexOf(e[i]);return n}var x1=A2e;function Lg(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.extension,i=e.extensionLegacy,r=e.gltfResource,o=e.baseResource,s=e.supportedImageFormats,a=e.frameState,c=e.cacheKey,l=y(e.asynchronous,!0);this._gltfResource=r,this._baseResource=o,this._gltf=t,this._extension=n,this._extensionLegacy=i,this._supportedImageFormats=s,this._frameState=a,this._cacheKey=c,this._asynchronous=l,this._bufferViewLoaders=[],this._bufferViewIds=[],this._textureLoaders=[],this._textureIds=[],this._schemaLoader=void 0,this._structuralMetadata=void 0,this._state=St.UNLOADED,this._promise=void 0}u(Object.create)&&(Lg.prototype=Object.create(or.prototype),Lg.prototype.constructor=Lg);Object.defineProperties(Lg.prototype,{cacheKey:{get:function(){return this._cacheKey}},structuralMetadata:{get:function(){return this._structuralMetadata}}});async function T2e(e){try{let t=w2e(e),n=M2e(e),i=R2e(e);return await Promise.all([t,n,i]),e.isDestroyed()?void 0:(e._gltf=void 0,e._state=St.LOADED,e)}catch(t){if(e.isDestroyed())return;e.unload(),e._state=St.FAILED;let n="Failed to load structural metadata";throw e.getError(n,t)}}Lg.prototype.load=function(){return u(this._promise)?this._promise:(this._state=St.LOADING,this._promise=T2e(this),this._promise)};function E2e(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],r=i.values,o=i.arrayOffsets,s=i.stringOffsets;u(r)&&(t[r]=!0),u(o)&&(t[o]=!0),u(s)&&(t[s]=!0)}}function b2e(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],r=i.bufferView,o=i.arrayOffsetBufferView,s=i.stringOffsetBufferView;u(r)&&(t[r]=!0),u(o)&&(t[o]=!0),u(s)&&(t[s]=!0)}}function S2e(e){let t=e.propertyTables,n={};if(u(t))for(let i=0;i<t.length;i++){let r=t[i];E2e(r.properties,n)}return n}function v2e(e){let t=e.featureTables,n={};if(u(t)){for(let i in t)if(t.hasOwnProperty(i)){let o=t[i].properties;u(o)&&b2e(o,n)}}return n}async function w2e(e){let t;u(e._extension)?t=S2e(e._extension):t=v2e(e._extensionLegacy);let n=[];for(let i in t)if(t.hasOwnProperty(i)){let r=Ui.getBufferViewLoader({gltf:e._gltf,bufferViewId:parseInt(i),gltfResource:e._gltfResource,baseResource:e._baseResource});e._bufferViewLoaders.push(r),e._bufferViewIds.push(i),n.push(r.load())}return Promise.all(n)}function D2e(e){let t={},n=e.propertyTextures;if(u(n))for(let i=0;i<n.length;i++){let o=n[i].properties;u(o)&&I2e(o,t)}return t}function I2e(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];t[i.index]=i}}function P2e(e){let t={},n=e.featureTextures;if(u(n)){for(let i in n)if(n.hasOwnProperty(i)){let o=n[i].properties;u(o)&&O2e(o,t)}}return t}function O2e(e,t){for(let n in e)if(e.hasOwnProperty(n)){let r=e[n].texture;t[r.index]=r}}function M2e(e){let t;u(e._extension)?t=D2e(e._extension):t=P2e(e._extensionLegacy);let n=e._gltf,i=e._gltfResource,r=e._baseResource,o=e._supportedImageFormats,s=e._frameState,a=e._asynchronous,c=[];for(let l in t)if(t.hasOwnProperty(l)){let f=Ui.getTextureLoader({gltf:n,textureInfo:t[l],gltfResource:i,baseResource:r,supportedImageFormats:o,frameState:s,asynchronous:a});e._textureLoaders.push(f),e._textureIds.push(l),c.push(f.load())}return Promise.all(c)}async function R2e(e){let t=y(e._extension,e._extensionLegacy),n;if(u(t.schemaUri)){let i=e._baseResource.getDerivedResource({url:t.schemaUri});n=Ui.getSchemaLoader({resource:i})}else n=Ui.getSchemaLoader({schema:t.schema});if(e._schemaLoader=n,await n.load(),!n.isDestroyed())return n.schema}Lg.prototype.process=function(e){if(this._state===St.READY)return!0;if(this._state!==St.LOADED)return!1;let t=this._textureLoaders,n=t.length,i=!0;for(let a=0;a<n;++a){let l=t[a].process(e);i=i&&l}if(!i)return!1;let r=this._schemaLoader.schema,o={};for(let a=0;a<this._bufferViewIds.length;++a){let c=this._bufferViewIds[a],l=this._bufferViewLoaders[a];if(!l.isDestroyed()){let f=new Uint8Array(l.typedArray);o[c]=f}}let s={};for(let a=0;a<this._textureIds.length;++a){let c=this._textureIds[a],l=t[a];l.isDestroyed()||(s[c]=l.texture)}return u(this._extension)?this._structuralMetadata=A1({extension:this._extension,schema:r,bufferViews:o,textures:s}):this._structuralMetadata=x1({extension:this._extensionLegacy,schema:r,bufferViews:o,textures:s}),Cie(this),this._state=St.READY,!0};function Cie(e){let t=e._bufferViewLoaders,n=t.length;for(let i=0;i<n;++i)Ui.unload(t[i]);e._bufferViewLoaders.length=0,e._bufferViewIds.length=0}function B2e(e){let t=e._textureLoaders,n=t.length;for(let i=0;i<n;++i)Ui.unload(t[i]);e._textureLoaders.length=0,e._textureIds.length=0}Lg.prototype.unload=function(){Cie(this),B2e(this),u(this._schemaLoader)&&Ui.unload(this._schemaLoader),this._schemaLoader=void 0,this._structuralMetadata=void 0};var C1=Lg;var YT={TRANSLATION:"TRANSLATION",ROTATION:"ROTATION",SCALE:"SCALE",FEATURE_ID:"_FEATURE_ID"};YT.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"TRANSLATION":return YT.TRANSLATION;case"ROTATION":return YT.ROTATION;case"SCALE":return YT.SCALE;case"_FEATURE_ID":return YT.FEATURE_ID}};var qo=Object.freeze(YT);var L2e=65534,N2e=255;function KU(e){e=y(e,y.EMPTY_OBJECT);let t=e.triangleIndices,n=e.outlineIndices,i=e.originalVertexCount;this._triangleIndices=t,this._originalVertexCount=i,this._edges=new bie(n,i),this._outlineCoordinatesTypedArray=void 0,this._extraVertices=[],F2e(this)}Object.defineProperties(KU.prototype,{updatedTriangleIndices:{get:function(){return this._triangleIndices}},outlineCoordinates:{get:function(){return this._outlineCoordinatesTypedArray}}});function F2e(e){let t=e._triangleIndices,n=e._edges,i=[],r=e._extraVertices,o=e._originalVertexCount,s={};for(let a=0;a<t.length;a+=3){let c=t[a],l=t[a+1],f=t[a+2],d=!1,p=d||n.hasEdge(c,l),g=d||n.hasEdge(l,f),m=d||n.hasEdge(f,c),A=Tie(i,c,l,f,p,g,m);for(;u(A);){let x=s[A];if(!u(x)){x=o+r.length;let C=A;for(;C>=o;)C=r[C-o];r.push(C),s[A]=x}x>L2e&&(t instanceof Uint16Array||t instanceof Uint8Array)?t=new Uint32Array(t):x>N2e&&t instanceof Uint8Array&&(t=new Uint16Array(t)),A===c?(c=x,t[a]=x):A===l?(l=x,t[a+1]=x):(f=x,t[a+2]=x),A=Tie(i,c,l,f,p,g,m)}}e._triangleIndices=t,e._outlineCoordinatesTypedArray=new Float32Array(i)}function Tie(e,t,n,i,r,o,s){let a=s?1:0,c=r?1:0,l=0,f=o6(e,t,a,c,l);if(f===0)return t;let d=0,p=r?1:0,g=o?1:0,m=o6(e,n,d,p,g);if(m===0)return n;let A=s?1:0,x=0,C=o?1:0,T=o6(e,i,A,x,C);if(T===0)return i;let E=f&m&T,S,v,D;if(E&1<<0)S=0,v=1,D=2;else if(E&1<<1)S=0,D=1,v=2;else if(E&1<<2)v=0,S=1,D=2;else if(E&1<<3)v=0,D=1,S=2;else if(E&1<<4)D=0,S=1,v=2;else if(E&1<<5)D=0,v=1,S=2;else{let L=s6(f),_=s6(m),b=s6(T);return L<_&&L<b?t:_<b?n:i}let M=t*3;e[M+S]=a,e[M+v]=c,e[M+D]=l;let O=n*3;e[O+S]=d,e[O+v]=p,e[O+D]=g;let B=i*3;e[B+S]=A,e[B+v]=x,e[B+D]=C}function o6(e,t,n,i,r){let o=t*3,s=e[o],a=e[o+1],c=e[o+2];return u(s)?(s===n&&a===i&&c===r)<<0|(s===n&&a===r&&c===i)<<1|(s===i&&a===n&&c===r)<<2|(s===i&&a===r&&c===n)<<3|(s===r&&a===n&&c===i)<<4|(s===r&&a===i&&c===n)<<5:63}function s6(e){return(e&1)+(e>>1&1)+(e>>2&1)+(e>>3&1)+(e>>4&1)+(e>>5&1)}KU.prototype.updateAttribute=function(e){let t=this._extraVertices,n=e.length,i=n/this._originalVertexCount,r=t.length,o=e.constructor,s=new o(e.length+r*i);s.set(e);for(let a=0;a<r;a++){let c=t[a]*i,l=n+a*i;for(let f=0;f<i;f++)s[l+f]=s[c+f]}return s};KU.createTexture=function(e){let t=e.cache.modelOutliningCache;if(u(t)||(t=e.cache.modelOutliningCache={}),u(t.outlineTexture))return t.outlineTexture;let n=Math.min(4096,zt.maximumTextureSize),i=n,r=Eie(i),o=[];for(;i>1;)i>>=1,o.push(Eie(i));let s=new Rt({context:e,source:{arrayBufferView:r,mipLevels:o},width:n,height:1,pixelFormat:at.LUMINANCE,sampler:new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:sn.LINEAR_MIPMAP_LINEAR,magnificationFilter:Ti.LINEAR})});return t.outlineTexture=s,s};function Eie(e){let t=new Uint8Array(e);return t[e-1]=192,e===8?t[e-1]=96:e===4?t[e-1]=48:e===2?t[e-1]=24:e===1&&(t[e-1]=12),t}function bie(e,t){this._originalVertexCount=t,this._edges=new Set;for(let n=0;n<e.length;n+=2){let i=e[n],r=e[n+1],o=Math.min(i,r),s=Math.max(i,r),a=o*this._originalVertexCount+s;this._edges.add(a)}}bie.prototype.hasEdge=function(e,t){let n=Math.min(e,t),i=Math.max(e,t),r=n*this._originalVertexCount+i;return this._edges.has(r)};var FA=KU;function Sie(e){this.attribute=e,this.loadBuffer=!1,this.loadTypedArray=!1}function U2e(e){this.indices=e,this.loadBuffer=!1,this.loadTypedArray=!1}function JU(e){this.primitive=e,this.attributePlans=[],this.indicesPlan=void 0,this.needsOutlines=!1,this.outlineIndices=void 0}JU.prototype.postProcess=function(e){this.needsOutlines&&(V2e(this),z2e(this,e))};function V2e(e){let t=e.primitive,n=t.indices,i=t.attributes[0].count,r=new FA({triangleIndices:n.typedArray,outlineIndices:e.outlineIndices,originalVertexCount:i});n.typedArray=r.updatedTriangleIndices,n.indexDatatype=Ue.fromTypedArray(n.typedArray);let o=k2e(r.outlineCoordinates),s=new Sie(o);s.loadBuffer=!0,s.loadTypedArray=!1,e.attributePlans.push(s),t.outlineCoordinates=s.attribute;let a=e.attributePlans,c=e.attributePlans.length;for(let l=0;l<c;l++){let f=a[l].attribute;f.typedArray=r.updateAttribute(f.typedArray)}}function k2e(e){let t=new Lt.Attribute;return t.name="_OUTLINE_COORDINATES",t.typedArray=e,t.componentDatatype=X.FLOAT,t.type=on.VEC3,t.normalized=!1,t.count=e.length/3,t}function z2e(e,t){H2e(e.attributePlans,t),u(e.indicesPlan)&&G2e(e.indicesPlan,t)}function H2e(e,t){let n=e.length;for(let i=0;i<n;i++){let r=e[i],o=r.attribute,s=o.typedArray;if(r.loadBuffer){let a=ht.createVertexBuffer({typedArray:s,context:t,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,o.buffer=a}r.loadTypedArray||(o.typedArray=void 0)}}function G2e(e,t){let n=e.indices;if(e.loadBuffer){let i=ht.createIndexBuffer({typedArray:n.typedArray,context:t,usage:Fe.STATIC_DRAW,indexDatatype:n.indexDatatype});n.buffer=i,i.vertexArrayDestroyable=!1}e.loadTypedArray||(n.typedArray=void 0)}JU.AttributeLoadPlan=Sie;JU.IndicesLoadPlan=U2e;var UA=JU;function W2e(e){e=y(e,y.EMPTY_OBJECT),this.webp=y(e.webp,!1),this.basis=y(e.basis,!1)}var T1=W2e;var j2e=Lt.Attribute,q2e=Lt.Indices,vie=Lt.FeatureIdAttribute,wie=Lt.FeatureIdTexture,Die=Lt.FeatureIdImplicitRange,Y2e=Lt.MorphTarget,X2e=Lt.Primitive,K2e=Lt.Instances,J2e=Lt.Skin,Z2e=Lt.Node,Q2e=Lt.AnimatedPropertyType,$2e=Lt.AnimationSampler,e3e=Lt.AnimationTarget,t3e=Lt.AnimationChannel,n3e=Lt.Animation,i3e=Lt.ArticulationStage,r3e=Lt.Articulation,o3e=Lt.Asset,s3e=Lt.Scene,a3e=Lt.Components,c3e=Lt.MetallicRoughness,l3e=Lt.SpecularGlossiness,u3e=Lt.Material,Rr={NOT_LOADED:0,LOADING:1,LOADED:2,PROCESSING:3,POST_PROCESSING:4,PROCESSED:5,READY:6,FAILED:7,UNLOADED:8};function Pd(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltfResource,n=e.baseResource,i=e.typedArray,r=y(e.releaseGltfJson,!1),o=y(e.asynchronous,!0),s=y(e.incrementallyLoadTextures,!0),a=y(e.upAxis,dr.Y),c=y(e.forwardAxis,dr.Z),l=y(e.loadAttributesAsTypedArray,!1),f=y(e.loadAttributesFor2D,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0),g=y(e.loadForClassification,!1),m=y(e.renameBatchIdSemantic,!1);n=u(n)?n:t.clone(),this._gltfJson=e.gltfJson,this._gltfResource=t,this._baseResource=n,this._typedArray=i,this._releaseGltfJson=r,this._asynchronous=o,this._incrementallyLoadTextures=s,this._upAxis=a,this._forwardAxis=c,this._loadAttributesAsTypedArray=l,this._loadAttributesFor2D=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._loadForClassification=g,this._renameBatchIdSemantic=m,this._sortedPropertyTableIds=void 0,this._sortedFeatureTextureIds=void 0,this._gltfJsonLoader=void 0,this._state=Rr.NOT_LOADED,this._textureState=Rr.NOT_LOADED,this._promise=void 0,this._processError=void 0,this._textureErrors=[],this._primitiveLoadPlans=[],this._loaderPromises=[],this._textureLoaders=[],this._texturesPromises=[],this._textureCallbacks=[],this._bufferViewLoaders=[],this._geometryLoaders=[],this._geometryCallbacks=[],this._structuralMetadataLoader=void 0,this._loadResourcesPromise=void 0,this._resourcesLoaded=!1,this._texturesLoaded=!1,this._postProcessBuffers=[],this._components=void 0}u(Object.create)&&(Pd.prototype=Object.create(or.prototype),Pd.prototype.constructor=Pd);Object.defineProperties(Pd.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},gltfJson:{get:function(){return u(this._gltfJsonLoader)?this._gltfJsonLoader.gltf:this._gltfJson}},incrementallyLoadTextures:{get:function(){return this._incrementallyLoadTextures}},texturesLoaded:{get:function(){return this._texturesLoaded}}});async function f3e(e){e._state=Rr.LOADING,e._textureState=Rr.LOADING;try{let t=Ui.getGltfJsonLoader({gltfResource:e._gltfResource,baseResource:e._baseResource,typedArray:e._typedArray,gltfJson:e._gltfJson});return e._gltfJsonLoader=t,await t.load(),e.isDestroyed()||e.isUnloaded()||t.isDestroyed()?void 0:(e._state=Rr.LOADED,e._textureState=Rr.LOADED,e)}catch(t){if(e.isDestroyed())return;e._state=Rr.FAILED,e._textureState=Rr.FAILED,ZU(e,t)}}async function d3e(e,t){Ht.supportsWebP.initialized||await Ht.supportsWebP.initialize();let n=new T1({webp:Ht.supportsWebP(),basis:t.context.supportsBasis}),i=e.gltfJson,r=lUe(e,i,n,t);return e._state=Rr.PROCESSING,e._textureState=Rr.PROCESSING,u(e._gltfJsonLoader)&&e._releaseGltfJson&&(Ui.unload(e._gltfJsonLoader),e._gltfJsonLoader=void 0),r}Pd.prototype.load=async function(){return u(this._promise)?this._promise:(this._promise=f3e(this),this._promise)};function ZU(e,t){e.unload();let n="Failed to load glTF";throw e.getError(n,t)}function h3e(e,t){let n,i=!0,r=e._geometryLoaders,o=r.length;for(n=0;n<o;++n){let a=r[n].process(t);a&&u(e._geometryCallbacks[n])&&(e._geometryCallbacks[n](),e._geometryCallbacks[n]=void 0),i=i&&a}let s=e._structuralMetadataLoader;if(u(s)){let a=s.process(t);a&&(e._components.structuralMetadata=s.structuralMetadata),i=i&&a}i&&(e._state=Rr.POST_PROCESSING)}function m3e(e,t){let n=e._primitiveLoadPlans,i=n.length;for(let r=0;r<i;r++){let o=n[r];o.postProcess(t),o.needsOutlines&&p3e(e,o)}}function p3e(e,t){let n=e._postProcessBuffers,i=t.primitive,r=i.outlineCoordinates;u(r)&&n.push(r.buffer);let o=i.attributes,s=o.length;for(let c=0;c<s;c++){let l=o[c];u(l.buffer)&&n.push(l.buffer)}let a=i.indices;u(a)&&u(a.buffer)&&n.push(a.buffer)}Pd.prototype._process=function(e){return this._state===Rr.READY?!0:(this._state===Rr.PROCESSING&&h3e(this,e),this._resourcesLoaded&&this._state===Rr.POST_PROCESSING&&(m3e(this,e.context),this._state=Rr.PROCESSED),this._resourcesLoaded&&this._state===Rr.PROCESSED?(Fie(this),this._typedArray=void 0,this._state=Rr.READY,!0):!1)};Pd.prototype._processTextures=function(e){if(this._textureState===Rr.READY)return!0;if(this._textureState!==Rr.PROCESSING)return!1;let t,n=!0,i=this._textureLoaders,r=i.length;for(t=0;t<r;++t){let o=i[t].process(e);o&&u(this._textureCallbacks[t])&&(this._textureCallbacks[t](),this._textureCallbacks[t]=void 0),n=n&&o}return n?(this._textureState=Rr.READY,this._texturesLoaded=!0,!0):!1};Pd.prototype.process=function(e){if(this._state===Rr.LOADED&&!u(this._loadResourcesPromise)&&(this._loadResourcesPromise=d3e(this,e).then(()=>{this._resourcesLoaded=!0}).catch(r=>{this._processError=r})),u(this._processError)){this._state=Rr.FAILED;let r=this._processError;this._processError=void 0,ZU(this,r)}let t=this._textureErrors.pop();if(u(t)){let r=this.getError("Failed to load glTF texture",t);throw r.name="TextureError",r}if(this._state===Rr.FAILED)return!1;let n=!1;try{n=this._process(e)}catch(r){this._state=Rr.FAILED,ZU(this,r)}let i=!1;try{i=this._processTextures(e)}catch(r){this._textureState=Rr.FAILED,ZU(this,r)}return this._incrementallyLoadTextures?n:n&&i};function _3e(e,t,n,i,r,o,s,a){let l=t.accessors[n].bufferView;return Ui.getVertexBufferLoader({gltf:t,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:a,bufferViewId:l,draco:r,attributeSemantic:i,accessorId:n,asynchronous:e._asynchronous,loadBuffer:o,loadTypedArray:s})}function g3e(e,t,n,i,r,o,s){return Ui.getIndexBufferLoader({gltf:t,accessorId:n,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:s,draco:i,asynchronous:e._asynchronous,loadBuffer:r,loadTypedArray:o})}function y3e(e,t,n){let i=Ui.getBufferViewLoader({gltf:t,bufferViewId:n,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoaders.push(i),i}function Iie(e,t,n){let i=t.byteOffset,r=Al(e,t),o=t.count,s=au(t.type),a=t.componentType,c=X.getSizeInBytes(a),l=c*s,f=o*s;if(r===l)return n=new Uint8Array(n),X.createArrayBufferView(a,n.buffer,n.byteOffset+i,f);let d=X.createTypedArray(a,f),p=new DataView(n.buffer),g=new Array(s),m=Rp(t.componentType);i=n.byteOffset+i;for(let A=0;A<o;++A){m(p,i,s,c,g);for(let x=0;x<s;++x)d[A*s+x]=g[x];i+=r}return d}function A3e(e,t){let n=e.type;if(n===on.SCALAR)return t.fill(0);let i=on.getMathType(n);return t.fill(i.clone(i.ZERO))}function x3e(e,t,n,i){let r=e.type,o=e.count;if(r===on.SCALAR)for(let s=0;s<o;s++)n[s]=t[s];else if(r===on.VEC4&&i)for(let s=0;s<o;s++)n[s]=Le.unpack(t,s*4);else{let s=on.getMathType(r),a=on.getNumberOfComponents(r);for(let c=0;c<o;c++)n[c]=s.unpack(t,c*a)}return n}async function C3e(e,t,n,i,r,o){if(await t.load(),e.isDestroyed())return;let s=t.typedArray,a=Iie(n,i,s);r=y(r,!1),x3e(i,a,o,r)}function QU(e,t,n,i){let r=t.accessors[n],o=r.count,s=new Array(o),a=r.bufferView;if(u(a)){let c=y3e(e,t,a),l=C3e(e,c,t,r,i,s);return e._loaderPromises.push(l),s}return A3e(r,s)}function af(e,t){if(u(t))return e===Number?t[0]:e.unpack(t)}function T3e(e){return e===Number?0:new e}function E3e(e){switch(e){case X.BYTE:return 127;case X.UNSIGNED_BYTE:return 255;case X.SHORT:return 32767;case X.UNSIGNED_SHORT:return 65535;default:return 1}}var b3e={VEC2:new H(-1,-1),VEC3:new h(-1,-1,-1),VEC4:new se(-1,-1,-1,-1)};function S3e(e,t){let n=E3e(e.componentDatatype),i=b3e[e.type],r=e.min;u(r)&&(r=t.divideByScalar(r,n,r),r=t.maximumByComponent(r,i,r));let o=e.max;u(o)&&(o=t.divideByScalar(o,n,o),o=t.maximumByComponent(o,i,o)),e.min=r,e.max=o}function v3e(e,t,n){let i=e.decodeMatrix,r=af(n,e.decodedMin),o=af(n,e.decodedMax);u(r)&&u(o)&&(t.min=r,t.max=o);let s=new Lt.Quantization;s.componentDatatype=t.componentDatatype,s.type=t.type,i.length===4?(s.quantizedVolumeOffset=i[2],s.quantizedVolumeStepSize=i[0]):i.length===9?(s.quantizedVolumeOffset=new H(i[6],i[7]),s.quantizedVolumeStepSize=new H(i[0],i[4])):i.length===16?(s.quantizedVolumeOffset=new h(i[12],i[13],i[14]),s.quantizedVolumeStepSize=new h(i[0],i[5],i[10])):i.length===25&&(s.quantizedVolumeOffset=new se(i[20],i[21],i[22],i[23]),s.quantizedVolumeStepSize=new se(i[0],i[6],i[12],i[18])),t.quantization=s}function w3e(e,t,n,i,r){let o=e.accessors[t],s=on.getMathType(o.type),a=y(o.normalized,!1),c=new j2e;c.name=n,c.semantic=i,c.setIndex=r,c.constant=T3e(s),c.componentDatatype=o.componentType,c.normalized=a,c.count=o.count,c.type=o.type,c.min=af(s,o.min),c.max=af(s,o.max),c.byteOffset=o.byteOffset,c.byteStride=Al(e,o),ni(o,"WEB3D_quantized_attributes")&&v3e(o.extensions.WEB3D_quantized_attributes,c,s);let l=c.semantic===Tt.POSITION||c.semantic===Tt.NORMAL||c.semantic===Tt.TANGENT||c.semantic===Tt.TEXCOORD;return e.extensionsRequired?.includes("KHR_mesh_quantization")&&a&&l&&S3e(c,s),c}function Pie(e){let n=/^\w+_(\d+)$/.exec(e);if(n!==null)return parseInt(n[1])}var D3e={gltfSemantic:void 0,renamedSemantic:void 0,modelSemantic:void 0};function a6(e,t,n){let i=n;e._renameBatchIdSemantic&&(n==="_BATCHID"||n==="BATCHID")&&(i="_FEATURE_ID_0");let r=t.fromGltfSemantic(i),o=D3e;return o.gltfSemantic=n,o.renamedSemantic=i,o.modelSemantic=r,o}function I3e(e){let t=e===Tt.POSITION,n=e===Tt.FEATURE_ID,i=e===Tt.TEXCOORD;return t||n||i}function P3e(e,t,n,i){if(e.byteOffset=0,e.byteStride=void 0,e.quantization=t.quantization,n&&(e.buffer=t.buffer),i){let r=u(t.quantization)?t.quantization.componentDatatype:e.componentDatatype;e.typedArray=X.createArrayBufferView(r,t.typedArray.buffer)}}function O3e(e,t,n,i,r,o){if(r&&(n.buffer=i.buffer),o){let s=i.typedArray;n.typedArray=Iie(e,t,s),r||(n.byteOffset=0,n.byteStride=void 0)}}function Oie(e,t,n,i,r,o,s,a){let c=t.accessors[n],l=c.bufferView,f=i.gltfSemantic,d=i.renamedSemantic,p=i.modelSemantic,g=u(p)?Pie(d):void 0,A=w3e(t,n,f,p,g);if(!u(r)&&!u(l))return A;let x=_3e(e,t,n,f,r,o,s,a),C=e._geometryLoaders.length;e._geometryLoaders.push(x);let T=x.load();return e._loaderPromises.push(T),e._geometryCallbacks[C]=()=>{u(r)&&u(r.attributes)&&u(r.attributes[f])?P3e(A,x,o,s):O3e(t,c,A,x,o,s)},A}function Mie(e,t,n,i,r,o,s,a){let c=i.modelSemantic,l=c===Tt.POSITION,f=c===Tt.FEATURE_ID,d=l&&!o&&e._loadAttributesFor2D&&!a.scene3DOnly,p=e._loadForClassification&&f,g=e._loadAttributesAsTypedArray,m=!g,A=g||d||p,T=Oie(e,t,n,i,r,s?!1:m,s?!0:A,a),E=new UA.AttributeLoadPlan(T);return E.loadBuffer=m,E.loadTypedArray=A,E}function M3e(e,t,n,i,r,o){let s=u(i.ROTATION),a=u(i.TRANSLATION)&&u(t.accessors[i.TRANSLATION].min)&&u(t.accessors[i.TRANSLATION].max),c=a6(e,qo,r),l=c.modelSemantic,f=l===qo.TRANSLATION||l===qo.ROTATION||l===qo.SCALE,d=l===qo.TRANSLATION,p=e._loadAttributesAsTypedArray||s&&f||!o.context.instancedArrays,g=!p,m=e._loadAttributesFor2D&&!o.scene3DOnly;return Oie(e,t,n,c,void 0,g,p||d&&(!a||m),o)}function R3e(e,t,n,i,r,o,s){let a=t.accessors[n],c=a.bufferView;if(!u(i)&&!u(c))return;let l=new q2e;l.count=a.count;let f=e._loadAttributesAsTypedArray,d=e._loadIndicesForWireframe&&!s.context.webgl2,p=e._loadForClassification&&r,m=!f,A=f||d||p,T=g3e(e,t,n,i,o?!1:m,o?!0:A,s),E=e._geometryLoaders.length;e._geometryLoaders.push(T);let S=T.load();e._loaderPromises.push(S),e._geometryCallbacks[E]=()=>{l.indexDatatype=T.indexDatatype,l.buffer=T.buffer,l.typedArray=T.typedArray};let v=new UA.IndicesLoadPlan(l);return v.loadBuffer=m,v.loadTypedArray=A,v}function Lp(e,t,n,i,r,o){let s=xl.getImageIdFromTexture({gltf:t,textureId:n.index,supportedImageFormats:i});if(!u(s))return;let a=Ui.getTextureLoader({gltf:t,textureInfo:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:i,frameState:r,asynchronous:e._asynchronous}),c=xl.createModelTextureReader({textureInfo:n}),l=e._textureLoaders.length;e._textureLoaders.push(a);let f=a.load().catch(d=>{if(!e.isDestroyed()){if(!e._incrementallyLoadTextures)throw d;e._textureState=Rr.FAILED,e._textureErrors.push(d)}});return e._texturesPromises.push(f),e._textureCallbacks[l]=()=>{c.texture=a.texture,u(o)&&(c.texture.sampler=o)},c}function B3e(e,t,n,i,r){let o=new u3e,s=y(n.extensions,y.EMPTY_OBJECT),a=s.KHR_materials_pbrSpecularGlossiness,c=n.pbrMetallicRoughness;if(o.unlit=u(s.KHR_materials_unlit),u(a)){let l=new l3e;o.specularGlossiness=l,u(a.diffuseTexture)&&(l.diffuseTexture=Lp(e,t,a.diffuseTexture,i,r)),u(a.specularGlossinessTexture)&&u(a.specularGlossinessTexture)&&(l.specularGlossinessTexture=Lp(e,t,a.specularGlossinessTexture,i,r)),l.diffuseFactor=af(se,a.diffuseFactor),l.specularFactor=af(h,a.specularFactor),l.glossinessFactor=a.glossinessFactor,o.pbrSpecularGlossiness=a}else if(u(c)){let l=new c3e;u(c.baseColorTexture)&&(l.baseColorTexture=Lp(e,t,c.baseColorTexture,i,r)),u(c.metallicRoughnessTexture)&&(l.metallicRoughnessTexture=Lp(e,t,c.metallicRoughnessTexture,i,r)),l.baseColorFactor=af(se,c.baseColorFactor),l.metallicFactor=c.metallicFactor,l.roughnessFactor=c.roughnessFactor,o.metallicRoughness=l}return u(n.emissiveTexture)&&(o.emissiveTexture=Lp(e,t,n.emissiveTexture,i,r)),u(n.normalTexture)&&!e._loadForClassification&&(o.normalTexture=Lp(e,t,n.normalTexture,i,r)),u(n.occlusionTexture)&&(o.occlusionTexture=Lp(e,t,n.occlusionTexture,i,r)),o.emissiveFactor=af(h,n.emissiveFactor),o.alphaMode=n.alphaMode,o.alphaCutoff=n.alphaCutoff,o.doubleSided=n.doubleSided,o}function Rie(e,t){let n=new vie;return n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.propertyTableId=e.propertyTable,n.setIndex=e.attribute,n.label=e.label,n.positionalLabel=t,n}function Bie(e,t,n,i){let r=new vie,o=e.featureIds;return r.featureCount=n,r.propertyTableId=t,r.setIndex=Pie(o.attribute),r.positionalLabel=i,r}function Lie(e,t){let n=new Die;return n.propertyTableId=e.propertyTable,n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.label=e.label,n.positionalLabel=t,n.offset=0,n.repeat=1,n}function Nie(e,t,n,i){let r=new Die,o=e.featureIds;r.propertyTableId=t,r.featureCount=n,r.offset=y(o.constant,0);let s=y(o.divisor,0);return r.repeat=s===0?void 0:s,r.positionalLabel=i,r}function L3e(e,t,n,i,r,o){let s=new wie;s.featureCount=n.featureCount,s.nullFeatureId=n.nullFeatureId,s.propertyTableId=n.propertyTable,s.label=n.label,s.positionalLabel=o;let a=n.texture;s.textureReader=Lp(e,t,a,i,r,ln.NEAREST);let l=(u(a.channels)?a.channels:[0]).map(function(f){return"rgba".charAt(f)}).join("");return s.textureReader.channels=l,s}function N3e(e,t,n,i,r,o,s,a){let c=new wie,l=n.featureIds,f=l.texture;return c.featureCount=s,c.propertyTableId=i,c.textureReader=Lp(e,t,f,r,o,ln.NEAREST),c.textureReader.channels=l.channels,c.positionalLabel=a,c}function F3e(e,t,n,i,r,o){let s=new Y2e,a=void 0,c=!1;for(let l in n)if(n.hasOwnProperty(l)){let f=n[l],d=a6(e,Tt,l),p=Mie(e,t,f,d,a,c,i,o);s.attributes.push(p.attribute),r.attributePlans.push(p)}return s}function U3e(e,t,n,i,r,o){let s=new X2e,a=new UA(s);e._primitiveLoadPlans.push(a);let c=n.material;u(c)&&(s.material=B3e(e,t,t.materials[c],r,o));let l=y(n.extensions,y.EMPTY_OBJECT),f=!1,d=l.CESIUM_primitive_outline;e._loadPrimitiveOutline&&u(d)&&(f=!0,a.needsOutlines=!0,a.outlineIndices=V3e(e,t,d,a));let p=e._loadForClassification,g=l.KHR_draco_mesh_compression,m=!1,A=n.attributes;if(u(A)){for(let M in A)if(A.hasOwnProperty(M)){let O=A[M],B=a6(e,Tt,M),L=B.modelSemantic;if(p&&!I3e(L))continue;L===Tt.FEATURE_ID&&(m=!0);let _=Mie(e,t,O,B,g,i,f,o);a.attributePlans.push(_),s.attributes.push(_.attribute)}}let x=n.targets;if(u(x)&&!p){let M=x.length;for(let O=0;O<M;++O)s.morphTargets.push(F3e(e,t,x[O],f,a,o))}let C=n.indices;if(u(C)){let M=R3e(e,t,C,g,m,f,o);u(M)&&(a.indicesPlan=M,s.indices=M.indices)}let T=l.EXT_structural_metadata,E=l.EXT_mesh_features,S=l.EXT_feature_metadata,v=u(S);u(E)?k3e(e,t,s,E,r,o):v&&z3e(e,t,s,S,r,o),u(T)?H3e(s,T):v&&G3e(e,s,S);let D=n.mode;if(p&&D!==Be.TRIANGLES)throw new de("Only triangle meshes can be used for classification.");return s.primitiveType=D,s}function V3e(e,t,n){let i=n.indices;return QU(e,t,i,!1)}function k3e(e,t,n,i,r,o){let s;u(i)&&u(i.featureIds)?s=i.featureIds:s=[];for(let a=0;a<s.length;a++){let c=s[a],l=`featureId_${a}`,f;u(c.texture)?f=L3e(e,t,c,r,o,l):u(c.attribute)?f=Rie(c,l):f=Lie(c,l),n.featureIds.push(f)}}function z3e(e,t,n,i,r,o){let s=t.extensions.EXT_feature_metadata.featureTables,a=0,c=i.featureIdAttributes;if(u(c)){let f=c.length;for(let d=0;d<f;++d){let p=c[d],g=p.featureTable,m=e._sortedPropertyTableIds.indexOf(g),A=s[g].count,x=`featureId_${a}`;a++;let C;u(p.featureIds.attribute)?C=Bie(p,m,A,x):C=Nie(p,m,A,x),n.featureIds.push(C)}}let l=i.featureIdTextures;if(u(l)){let f=l.length;for(let d=0;d<f;++d){let p=l[d],g=p.featureTable,m=e._sortedPropertyTableIds.indexOf(g),A=s[g].count,x=`featureId_${a}`;a++;let C=N3e(e,t,p,m,r,o,A,x);n.featureIds.push(C)}}}function H3e(e,t){u(t)&&(u(t.propertyTextures)&&(e.propertyTextureIds=t.propertyTextures),u(t.propertyAttributes)&&(e.propertyAttributeIds=t.propertyAttributes))}function G3e(e,t,n){u(n.featureTextures)&&(t.propertyTextureIds=n.featureTextures.map(function(i){return e._sortedFeatureTextureIds.indexOf(i)}))}function W3e(e,t,n,i){let r=n.EXT_mesh_gpu_instancing,o=new K2e,s=r.attributes;if(u(s)){for(let f in s)if(s.hasOwnProperty(f)){let d=s[f];o.attributes.push(M3e(e,t,d,s,f,i))}}let a=y(r.extensions,y.EMPTY_OBJECT),c=n.EXT_instance_features,l=a.EXT_feature_metadata;return u(c)?j3e(o,c):u(l)&&q3e(t,o,l,e._sortedPropertyTableIds),o}function j3e(e,t){let n=t.featureIds;for(let i=0;i<n.length;i++){let r=n[i],o=`instanceFeatureId_${i}`,s;u(r.attribute)?s=Rie(r,o):s=Lie(r,o),e.featureIds.push(s)}}function q3e(e,t,n,i){let r=e.extensions.EXT_feature_metadata.featureTables,o=n.featureIdAttributes;if(u(o)){let s=o.length;for(let a=0;a<s;++a){let c=o[a],l=c.featureTable,f=i.indexOf(l),d=r[l].count,p=`instanceFeatureId_${a}`,g;u(c.featureIds.attribute)?g=Bie(c,f,d,p):g=Nie(c,f,d,p),t.featureIds.push(g)}}}function Y3e(e,t,n,i,r){let o=new Z2e;o.name=n.name,o.matrix=af(N,n.matrix),o.translation=af(h,n.translation),o.rotation=af(Le,n.rotation),o.scale=af(h,n.scale);let s=y(n.extensions,y.EMPTY_OBJECT),a=s.EXT_mesh_gpu_instancing,c=s.AGI_articulations;if(u(a)){if(e._loadForClassification)throw new de("Models with the EXT_mesh_gpu_instancing extension cannot be used for classification.");o.instances=W3e(e,t,s,r)}u(c)&&(o.articulationName=c.articulationName);let l=n.mesh;if(u(l)){let f=t.meshes[l],d=f.primitives,p=d.length;for(let x=0;x<p;++x)o.primitives.push(U3e(e,t,d[x],u(o.instances),i,r));let g=y(n.weights,f.weights),A=o.primitives[0].morphTargets.length;o.morphWeights=u(g)?g.slice():new Array(A).fill(0)}return o}function X3e(e,t,n,i){if(!u(t.nodes))return[];let r,o,s=t.nodes.length,a=new Array(s);for(r=0;r<s;++r){let c=Y3e(e,t,t.nodes[r],n,i);c.index=r,a[r]=c}for(r=0;r<s;++r){let c=t.nodes[r].children;if(u(c)){let l=c.length;for(o=0;o<l;++o)a[r].children.push(a[c[o]])}}return a}function K3e(e,t,n,i){let r=new J2e,o=n.joints,s=o.length,a=new Array(s);for(let l=0;l<s;++l)a[l]=i[o[l]];r.joints=a;let c=n.inverseBindMatrices;return u(c)?r.inverseBindMatrices=QU(e,t,c):r.inverseBindMatrices=new Array(s).fill(N.IDENTITY),r}function J3e(e,t,n){let i=t.skins;if(e._loadForClassification||!u(i))return[];let r=t.skins.length,o=new Array(r);for(let a=0;a<r;++a){let c=K3e(e,t,t.skins[a],n);c.index=a,o[a]=c}let s=n.length;for(let a=0;a<s;++a){let c=t.nodes[a].skin;u(c)&&(n[a].skin=o[c])}return o}async function Z3e(e,t,n,i,r,o){let s=new C1({gltf:t,extension:n,extensionLegacy:i,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:r,frameState:o,asynchronous:e._asynchronous});return e._structuralMetadataLoader=s,s.load()}function Q3e(e,t,n){let i=new $2e,r=n.input;i.input=QU(e,t,r);let o=n.interpolation;i.interpolation=y(Id[o],Id.LINEAR);let s=n.output;return i.output=QU(e,t,s,!0),i}function $3e(e,t){let n=new e3e,i=e.node;if(!u(i))return;n.node=t[i];let r=e.path.toUpperCase();return n.path=Q2e[r],n}function eUe(e,t,n){let i=new t3e,r=e.sampler;return i.sampler=t[r],i.target=$3e(e.target,n),i}function tUe(e,t,n,i){let r,o=new n3e;o.name=n.name;let s=n.samplers,a=s.length,c=new Array(a);for(r=0;r<a;r++){let p=Q3e(e,t,s[r]);p.index=r,c[r]=p}let l=n.channels,f=l.length,d=new Array(f);for(r=0;r<f;r++)d[r]=eUe(l[r],c,i);return o.samplers=c,o.channels=d,o}function nUe(e,t,n){let i=t.animations;if(e._loadForClassification||!u(i))return[];let r=t.animations.length,o=new Array(r);for(let s=0;s<r;++s){let a=tUe(e,t,t.animations[s],n);a.index=s,o[s]=a}return o}function iUe(e){let t=new i3e;t.name=e.name;let n=e.type.toUpperCase();return t.type=Qa[n],t.minimumValue=e.minimumValue,t.maximumValue=e.maximumValue,t.initialValue=e.initialValue,t}function rUe(e){let t=new r3e;t.name=e.name;let n=e.stages,i=n.length,r=new Array(i);for(let o=0;o<i;o++){let s=iUe(n[o]);r[o]=s}return t.stages=r,t}function oUe(e){let n=y(e.extensions,y.EMPTY_OBJECT).AGI_articulations;if(!u(n))return[];let i=n.articulations;if(!u(i))return[];let r=i.length,o=new Array(r);for(let s=0;s<r;s++){let a=rUe(i[s]);o[s]=a}return o}function sUe(e){let t;return u(e.scenes)&&u(e.scene)&&(t=e.scenes[e.scene].nodes),t=y(t,e.nodes),t=u(t)?t:[],t}function aUe(e,t){let n=new s3e,i=sUe(e);return n.nodes=i.map(function(r){return t[r]}),n}var cUe=new h;function lUe(e,t,n,i){let r=y(t.extensions,y.EMPTY_OBJECT),o=r.EXT_structural_metadata,s=r.EXT_feature_metadata,a=r.CESIUM_RTC;if(u(s)){let C=s.featureTables,T=s.featureTextures,E=u(C)?C:[],S=u(T)?T:[];e._sortedPropertyTableIds=Object.keys(E).sort(),e._sortedFeatureTextureIds=Object.keys(S).sort()}let c=X3e(e,t,n,i),l=J3e(e,t,c),f=nUe(e,t,c),d=oUe(t),p=aUe(t,c),g=new a3e,m=new o3e,A=t.asset.copyright;if(u(A)){let C=A.split(";").map(function(T){return new wt(T.trim())});m.credits=C}if(g.asset=m,g.scene=p,g.nodes=c,g.skins=l,g.animations=f,g.articulations=d,g.upAxis=e._upAxis,g.forwardAxis=e._forwardAxis,u(a)){let C=h.fromArray(a.center,0,cUe);g.transform=N.fromTranslation(C,g.transform)}if(e._components=g,u(o)||u(s)){let C=Z3e(e,t,o,s,n,i);e._loaderPromises.push(C)}let x=[];return x.push.apply(x,e._loaderPromises),e._incrementallyLoadTextures||x.push.apply(x,e._texturesPromises),Promise.all(x)}function uUe(e){let t=e._textureLoaders,n=t.length;for(let i=0;i<n;++i)t[i]=!t[i].isDestroyed()&&Ui.unload(t[i]);e._textureLoaders.length=0}function Fie(e){let t=e._bufferViewLoaders,n=t.length;for(let i=0;i<n;++i)t[i]=!t[i].isDestroyed()&&Ui.unload(t[i]);e._bufferViewLoaders.length=0}function fUe(e){let t=e._geometryLoaders,n=t.length;for(let i=0;i<n;++i)t[i]=!t[i].isDestroyed()&&Ui.unload(t[i]);e._geometryLoaders.length=0}function dUe(e){let t=e._postProcessBuffers,n=t.length;for(let i=0;i<n;i++){let r=t[i];r.isDestroyed()||r.destroy()}t.length=0}function hUe(e){u(e._structuralMetadataLoader)&&!e._structuralMetadataLoader.isDestroyed()&&(e._structuralMetadataLoader.destroy(),e._structuralMetadataLoader=void 0)}Pd.prototype.isUnloaded=function(){return this._state===Rr.UNLOADED};Pd.prototype.unload=function(){u(this._gltfJsonLoader)&&!this._gltfJsonLoader.isDestroyed()&&Ui.unload(this._gltfJsonLoader),this._gltfJsonLoader=void 0,uUe(this),Fie(this),fUe(this),dUe(this),hUe(this),this._components=void 0,this._typedArray=void 0,this._state=Rr.UNLOADED};var Kh=Pd;var E1=`uniform sampler2D u_pointCloud_colorGBuffer; +uniform sampler2D u_pointCloud_depthGBuffer; +uniform vec2 u_distanceAndEdlStrength; +in vec2 v_textureCoordinates; + +vec2 neighborContribution(float log2Depth, vec2 offset) +{ + float dist = u_distanceAndEdlStrength.x; + vec2 texCoordOrig = v_textureCoordinates + offset * dist; + vec2 texCoord0 = v_textureCoordinates + offset * floor(dist); + vec2 texCoord1 = v_textureCoordinates + offset * ceil(dist); + + float depthOrLogDepth0 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord0)); + float depthOrLogDepth1 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord1)); + + // ignore depth values that are the clear depth + if (depthOrLogDepth0 == 0.0 || depthOrLogDepth1 == 0.0) { + return vec2(0.0); + } + + // interpolate the two adjacent depth values + float depthMix = mix(depthOrLogDepth0, depthOrLogDepth1, fract(dist)); + vec4 eyeCoordinate = czm_windowToEyeCoordinates(texCoordOrig, depthMix); + return vec2(max(0.0, log2Depth - log2(-eyeCoordinate.z / eyeCoordinate.w)), 1.0); +} + +void main() +{ + float depthOrLogDepth = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, v_textureCoordinates)); + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, depthOrLogDepth); + eyeCoordinate /= eyeCoordinate.w; + + float log2Depth = log2(-eyeCoordinate.z); + + if (depthOrLogDepth == 0.0) // 0.0 is the clear value for the gbuffer + { + discard; + } + + vec4 color = texture(u_pointCloud_colorGBuffer, v_textureCoordinates); + + // sample from neighbors left, right, down, up + vec2 texelSize = 1.0 / czm_viewport.zw; + + vec2 responseAndCount = vec2(0.0); + + responseAndCount += neighborContribution(log2Depth, vec2(-texelSize.x, 0.0)); + responseAndCount += neighborContribution(log2Depth, vec2(+texelSize.x, 0.0)); + responseAndCount += neighborContribution(log2Depth, vec2(0.0, -texelSize.y)); + responseAndCount += neighborContribution(log2Depth, vec2(0.0, +texelSize.y)); + + float response = responseAndCount.x / responseAndCount.y; + float strength = u_distanceAndEdlStrength.y; + float shade = exp(-response * 300.0 * strength); + color.rgb *= shade; + out_FragColor = vec4(color); + + // Input and output depth are the same. + gl_FragDepth = depthOrLogDepth; +} +`;function XT(){this._framebuffer=new di({colorAttachmentsLength:2,depth:!0,supportsDepthTexture:!0}),this._drawCommand=void 0,this._clearCommand=void 0,this._strength=1,this._radius=1}Object.defineProperties(XT.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}},colorGBuffer:{get:function(){return this._framebuffer.getColorTexture(0)}},depthGBuffer:{get:function(){return this._framebuffer.getColorTexture(1)}}});function mUe(e){e._framebuffer.destroy(),e._drawCommand=void 0,e._clearCommand=void 0}var c6=new H;function pUe(e,t){let n=new ke({defines:["LOG_DEPTH_WRITE"],sources:[E1]}),i={u_pointCloud_colorGBuffer:function(){return e.colorGBuffer},u_pointCloud_depthGBuffer:function(){return e.depthGBuffer},u_distanceAndEdlStrength:function(){return c6.x=e._radius,c6.y=e._strength,c6}},r=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!0,depthTest:{enabled:!0},stencilTest:Ft.setCesium3DTileBit(),stencilMask:Ft.CESIUM_3D_TILE_MASK});e._drawCommand=t.createViewportQuadCommand(n,{uniformMap:i,renderState:r,pass:be.CESIUM_3D_TILE,owner:e}),e._clearCommand=new ri({framebuffer:e.framebuffer,color:new z(0,0,0,0),depth:1,renderState:Ve.fromCache(),pass:be.CESIUM_3D_TILE,owner:e})}function _Ue(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i),pUe(e,t)}function Uie(e){return e.drawBuffers&&e.fragmentDepth}XT.isSupported=Uie;function gUe(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"EC");if(!u(n)){let i=t._attributeLocations,r=t.fragmentShaderSource.clone();r.sources.splice(0,0,`layout (location = 0) out vec4 out_FragData_0; +layout (location = 1) out vec4 out_FragData_1;`),r.sources=r.sources.map(function(o){return o=ke.replaceMain(o,"czm_point_cloud_post_process_main"),o=o.replaceAll(/out_FragColor/g,"out_FragData_0"),o}),r.sources.push(`void main() +{ + czm_point_cloud_post_process_main(); +#ifdef LOG_DEPTH + czm_writeLogDepth(); + out_FragData_1 = czm_packDepth(gl_FragDepth); +#else + out_FragData_1 = czm_packDepth(gl_FragCoord.z); +#endif +}`),n=e.shaderCache.createDerivedShaderProgram(t,"EC",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:r,attributeLocations:i})}return n}XT.prototype.update=function(e,t,n,i){if(!Uie(e.context))return;this._strength=n.eyeDomeLightingStrength,this._radius=n.eyeDomeLightingRadius*e.pixelRatio,_Ue(this,e.context);let r,o=e.commandList,s=o.length;for(r=t;r<s;++r){let l=o[r];if(l.primitiveType!==Be.POINTS||l.pass===be.TRANSLUCENT)continue;let f,d,p=l.derivedCommands.pointCloudProcessor;u(p)&&(f=p.command,d=p.originalShaderProgram),(!u(f)||l.dirty||d!==l.shaderProgram||f.framebuffer!==this.framebuffer)&&(f=nt.shallowClone(l,f),f.framebuffer=this.framebuffer,f.shaderProgram=gUe(e.context,l.shaderProgram),f.castShadows=!1,f.receiveShadows=!1,u(p)||(p={command:f,originalShaderProgram:l.shaderProgram},l.derivedCommands.pointCloudProcessor=p),p.originalShaderProgram=l.shaderProgram),o[r]=f}let a=this._clearCommand,c=this._drawCommand;c.boundingVolume=i,o.push(c),o.push(a)};XT.prototype.isDestroyed=function(){return!1};XT.prototype.destroy=function(){return mUe(this),ue(this)};var Np=XT;function Vie(e){let t=y(e,{});this.attenuation=y(t.attenuation,!1),this.geometricErrorScale=y(t.geometricErrorScale,1),this.maximumAttenuation=t.maximumAttenuation,this.baseResolution=t.baseResolution,this.eyeDomeLighting=y(t.eyeDomeLighting,!0),this.eyeDomeLightingStrength=y(t.eyeDomeLightingStrength,1),this.eyeDomeLightingRadius=y(t.eyeDomeLightingRadius,1),this.backFaceCulling=y(t.backFaceCulling,!1),this.normalShading=y(t.normalShading,!0)}Vie.isSupported=function(e){return Np.isSupported(e.context)};var Jh=Vie;var Ca={},yUe=new se(0,0,0,1),ec=new se,AUe=new Xe,l6=new H,u6=new H;Ca.wgs84ToWindowCoordinates=function(e,t,n){return Ca.wgs84WithEyeOffsetToWindowCoordinates(e,t,h.ZERO,n)};var kie=new se,zie=new h;function b1(e,t,n,i){let r=n.viewMatrix,o=N.multiplyByVector(r,se.fromElements(e.x,e.y,e.z,1,kie),kie),s=h.multiplyComponents(t,h.normalize(o,zie),zie);return o.x+=t.x+s.x,o.y+=t.y+s.y,o.z+=s.z,N.multiplyByVector(n.frustum.projectionMatrix,o,i)}var xUe=new me(Math.PI,P.PI_OVER_TWO),CUe=new h,TUe=new h;Ca.wgs84WithEyeOffsetToWindowCoordinates=function(e,t,n,i){let r=e.frameState,o=Ca.computeActualWgs84Position(r,t,yUe);if(!u(o))return;let s=e.canvas,a=AUe;a.x=0,a.y=0,a.width=s.clientWidth,a.height=s.clientHeight;let c=e.camera,l=!1;if(r.mode===ne.SCENE2D){let f=e.mapProjection,d=xUe,p=f.project(d,CUe),g=h.clone(c.position,TUe),m=c.frustum.clone(),A=N.computeViewportTransformation(a,0,1,new N),x=c.frustum.projectionMatrix,C=c.positionWC.y,T=h.fromElements(P.sign(C)*p.x-C,0,-c.positionWC.x),E=Mt.pointToGLWindowCoordinates(x,A,T);if(C===0||E.x<=0||E.x>=s.clientWidth)l=!0;else{if(E.x>s.clientWidth*.5){a.width=E.x,c.frustum.right=p.x-C,ec=b1(o,n,c,ec),Ca.clipToGLWindowCoordinates(a,ec,l6),a.x+=E.x,c.position.x=-c.position.x;let S=c.frustum.right;c.frustum.right=-c.frustum.left,c.frustum.left=-S,ec=b1(o,n,c,ec),Ca.clipToGLWindowCoordinates(a,ec,u6)}else{a.x+=E.x,a.width-=E.x,c.frustum.left=-p.x-C,ec=b1(o,n,c,ec),Ca.clipToGLWindowCoordinates(a,ec,l6),a.x=a.x-a.width,c.position.x=-c.position.x;let S=c.frustum.left;c.frustum.left=-c.frustum.right,c.frustum.right=-S,ec=b1(o,n,c,ec),Ca.clipToGLWindowCoordinates(a,ec,u6)}h.clone(g,c.position),c.frustum=m.clone(),i=H.clone(l6,i),(i.x<0||i.x>s.clientWidth)&&(i.x=u6.x)}}if(r.mode!==ne.SCENE2D||l){if(ec=b1(o,n,c,ec),ec.z<0&&!(c.frustum instanceof en)&&!(c.frustum instanceof So))return;i=Ca.clipToGLWindowCoordinates(a,ec,i)}return i.y=s.clientHeight-i.y,i};Ca.wgs84ToDrawingBufferCoordinates=function(e,t,n){if(n=Ca.wgs84ToWindowCoordinates(e,t,n),!!u(n))return Ca.transformWindowToDrawingBuffer(e,n,n)};var Fp=new h,EUe=new me;Ca.computeActualWgs84Position=function(e,t,n){let i=e.mode;if(i===ne.SCENE3D)return h.clone(t,n);let r=e.mapProjection,o=r.ellipsoid.cartesianToCartographic(t,EUe);if(!u(o))return;if(r.project(o,Fp),i===ne.COLUMBUS_VIEW)return h.fromElements(Fp.z,Fp.x,Fp.y,n);if(i===ne.SCENE2D)return h.fromElements(0,Fp.x,Fp.y,n);let s=e.morphTime;return h.fromElements(P.lerp(Fp.z,t.x,s),P.lerp(Fp.x,t.y,s),P.lerp(Fp.y,t.z,s),n)};var Hie=new h,Gie=new h,Wie=new N;Ca.clipToGLWindowCoordinates=function(e,t,n){return h.divideByScalar(t,t.w,Hie),N.computeViewportTransformation(e,0,1,Wie),N.multiplyByPoint(Wie,Hie,Gie),H.fromCartesian3(Gie,n)};Ca.transformWindowToDrawingBuffer=function(e,t,n){let i=e.canvas,r=e.drawingBufferWidth/i.clientWidth,o=e.drawingBufferHeight/i.clientHeight;return H.fromElements(t.x*r,t.y*o,n)};var bUe=new se,jie=new se;Ca.drawingBufferToWgs84Coordinates=function(e,t,n,i){let o=e.context.uniformState,s=o.currentFrustum,a=s.x,c=s.y;if(e.frameState.useLogDepth){let g=n*o.log2FarDepthFromNearPlusOne,m=Math.pow(2,g)-1;n=c*(1-a/(m+a))/(c-a)}let l=e.view.passState.viewport,f=se.clone(se.UNIT_W,bUe);f.x=(t.x-l.x)/l.width*2-1,f.y=(t.y-l.y)/l.height*2-1,f.z=n*2-1,f.w=1;let d,p=e.camera.frustum;if(u(p.fovy)){d=N.multiplyByVector(o.inverseViewProjection,f,jie);let g=1/d.w;h.multiplyByScalar(d,g,d)}else{let g=p.offCenterFrustum;u(g)&&(p=g),d=jie,d.x=(f.x*(p.right-p.left)+p.left+p.right)*.5,d.y=(f.y*(p.top-p.bottom)+p.bottom+p.top)*.5,d.z=(f.z*(a-c)-a-c)*.5,d.w=1,d=N.multiplyByVector(o.inverseView,d,d)}return h.fromCartesian4(d,i)};var Zi=Ca;var SUe={LEFT:-1,NONE:0,RIGHT:1},kc=Object.freeze(SUe);var KT={};KT._deprecationWarning=$;var Up=Uint32Array.BYTES_PER_ELEMENT;KT.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),r=new DataView(e);t+=Up;let o=r.getUint32(t,!0);if(o!==1)throw new de(`Only Batched 3D Model version 1 is supported. Version ${o} is not.`);t+=Up;let s=r.getUint32(t,!0);t+=Up;let a=r.getUint32(t,!0);t+=Up;let c=r.getUint32(t,!0);t+=Up;let l=r.getUint32(t,!0);t+=Up;let f=r.getUint32(t,!0);t+=Up;let d;l>=570425344?(t-=Up*2,d=a,l=c,f=0,a=0,c=0,KT._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchLength] [batchTableByteLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel.")):f>=570425344&&(t-=Up,d=l,l=a,f=c,a=0,c=0,KT._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel."));let p;a===0?p={BATCH_LENGTH:y(d,0)}:(p=Mr(i,t,a),t+=a);let g=new Uint8Array(e,t,c);t+=c;let m,A;l>0&&(m=Mr(i,t,l),t+=l,f>0&&(A=new Uint8Array(e,t,f),A=new Uint8Array(A),t+=f));let x=n+s-t;if(x===0)throw new de("glTF byte length must be greater than 0.");let C;return t%4===0?C=new Uint8Array(e,t,x):(KT._deprecationWarning("b3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),C=new Uint8Array(i.subarray(t,t+x))),{batchLength:d,featureTableJson:p,featureTableBinary:g,batchTableJson:m,batchTableBinary:A,gltf:C}};var S1=KT;function v1(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function qie(e,t,n,i,r,o){let s=e._cachedTypedArrays,a=s[t];return u(a)||(a=X.createArrayBufferView(n,e.buffer.buffer,e.buffer.byteOffset+o,r*i),s[t]=a),a}function vUe(e,t,n,i){let r=e._cachedTypedArrays,o=r[t];return u(o)||(o=X.createTypedArray(n,i),r[t]=o),o}v1.prototype.getGlobalProperty=function(e,t,n){let i=this.json[e];if(u(i))return u(i.byteOffset)?(t=y(t,X.UNSIGNED_INT),n=y(n,1),qie(this,e,t,n,1,i.byteOffset)):i};v1.prototype.hasProperty=function(e){return u(this.json[e])};v1.prototype.getPropertyArray=function(e,t,n){let i=this.json[e];if(u(i))return u(i.byteOffset)?(u(i.componentType)&&(t=X.fromName(i.componentType)),qie(this,e,t,n,this.featuresLength,i.byteOffset)):vUe(this,e,t,i)};v1.prototype.getProperty=function(e,t,n,i,r){let o=this.json[e];if(!u(o))return;let s=this.getPropertyArray(e,t,n);if(n===1)return s[i];for(let a=0;a<n;++a)r[a]=s[n*i+a];return r};var Od=v1;function w1(e){let t=e.count,n=e.batchTable,i=e.binaryBody,r=y(e.parseAsPropertyAttributes,!1),o=e.customAttributeOutput,s=wUe(n),a;u(s.jsonProperties)&&(a=new Bp({count:t,properties:s.jsonProperties}));let c;u(s.hierarchy)&&(c=new gA({extension:s.hierarchy,binaryBody:i}));let l=vd.BATCH_TABLE_CLASS_NAME,f=s.binaryProperties,d,p,g;if(r){let x=IUe(t,l,f,i,o);g=x.transcodedSchema,p=[new NA({propertyAttribute:x.propertyAttributeJson,class:x.transcodedClass})]}else{let x=DUe(t,l,f,i);g=x.transcodedSchema;let C=x.featureTableJson;d=new yl({count:C.count,properties:C.properties,class:x.transcodedClass,bufferViews:x.bufferViewsTypedArrays}),p=[]}let m=[];if(u(d)||u(a)||u(c)){let x=new Vc({id:0,name:"Batch Table",count:t,metadataTable:d,jsonMetadataTable:a,batchTableHierarchy:c});m.push(x)}let A={schema:g,propertyTables:m,propertyAttributes:p,extensions:s.extensions,extras:s.extras};return new xa(A)}function wUe(e){let t=e.HIERARCHY,n=e.extras,i=e.extensions,r;u(t)?(w1._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),r=t):u(i)&&(r=i["3DTILES_batch_table_hierarchy"]);let o,s={};for(let a in e){if(!e.hasOwnProperty(a)||a==="HIERARCHY"||a==="extensions"||a==="extras")continue;let c=e[a];Array.isArray(c)?(o=u(o)?o:{},o[a]=c):s[a]=c}return{binaryProperties:s,jsonProperties:o,hierarchy:r,extras:n,extensions:i}}function DUe(e,t,n,i){let r={},o={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;if(!u(i))throw new de(`Property ${d} requires a batch table binary.`);let p=n[d],g=ou(p);o[d]={bufferView:a},r[d]=Yie(p),s[a]=g.createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e),a++}let c={classes:{}};c.classes[t]={properties:r};let l=wd.fromJson(c);return{featureTableJson:{class:t,count:e,properties:o},bufferViewsTypedArrays:s,transcodedSchema:l,transcodedClass:l.classes[t]}}function IUe(e,t,n,i,r){let o={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;let p=n[d];if(!u(i)&&!u(p.typedArray))throw new de(`Property ${d} requires a batch table binary.`);let g=Jt.sanitizeGlslIdentifier(d);(g===""||o.hasOwnProperty(g))&&(g=`property_${a}`,a++);let m=Yie(p);m.name=d,o[g]=m;let A=g.toUpperCase();A.startsWith("_")||(A=`_${A}`);let x=p.typedArray;u(x)||(x=ou(p).createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e));let C=new Lt.Attribute;C.name=A,C.count=e,C.type=p.type;let T=X.fromTypedArray(x);(T===X.INT||T===X.UNSIGNED_INT||T===X.DOUBLE)&&(w1._oneTimeWarning("Cast pnts property to floats",`Point cloud property "${A}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),x=new Float32Array(x)),C.componentDatatype=X.fromTypedArray(x),C.typedArray=x,r.push(C),s[g]={attribute:A}}let c={classes:{}};c.classes[t]={properties:o};let l=wd.fromJson(c);return{class:t,propertyAttributeJson:{properties:s},transcodedSchema:l,transcodedClass:l.classes[t]}}function Yie(e){let t=PUe(e.componentType);return{type:e.type,componentType:t}}function PUe(e){switch(e){case"BYTE":return"INT8";case"UNSIGNED_BYTE":return"UINT8";case"SHORT":return"INT16";case"UNSIGNED_SHORT":return"UINT16";case"INT":return"INT32";case"UNSIGNED_INT":return"UINT32";case"FLOAT":return"FLOAT32";case"DOUBLE":return"FLOAT64"}}w1._deprecationWarning=$;w1._oneTimeWarning=Ot;var Vp=w1;var VA={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,FAILED:4},OUe=Lt.FeatureIdAttribute;function Ng(e){e=y(e,y.EMPTY_OBJECT);let t=e.b3dmResource,n=e.baseResource,i=e.arrayBuffer,r=y(e.byteOffset,0),o=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,dr.Y),l=y(e.forwardAxis,dr.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadAttributesFor2D,!1),p=y(e.loadIndicesForWireframe,!1),g=y(e.loadPrimitiveOutline,!0),m=y(e.loadForClassification,!1);n=u(n)?n:t.clone(),this._b3dmResource=t,this._baseResource=n,this._arrayBuffer=i,this._byteOffset=r,this._releaseGltfJson=o,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=l,this._loadAttributesAsTypedArray=f,this._loadAttributesFor2D=d,this._loadIndicesForWireframe=p,this._loadPrimitiveOutline=g,this._loadForClassification=m,this._state=VA.UNLOADED,this._promise=void 0,this._gltfLoader=void 0,this._batchLength=0,this._propertyTable=void 0,this._batchTable=void 0,this._components=void 0,this._transform=N.IDENTITY}u(Object.create)&&(Ng.prototype=Object.create(or.prototype),Ng.prototype.constructor=Ng);Object.defineProperties(Ng.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});Ng.prototype.load=function(){if(u(this._promise))return this._promise;let e=S1.parse(this._arrayBuffer,this._byteOffset),t=e.batchLength,n=e.featureTableJson,i=e.featureTableBinary,r=e.batchTableJson,o=e.batchTableBinary,s=new Od(n,i);t=s.getGlobalProperty("BATCH_LENGTH"),this._batchLength=t;let a=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);u(a)&&(this._transform=N.fromTranslation(h.fromArray(a))),this._batchTable={json:r,binary:o};let c=new Kh({typedArray:e.gltf,upAxis:this._upAxis,forwardAxis:this._forwardAxis,gltfResource:this._b3dmResource,baseResource:this._baseResource,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,loadAttributesFor2D:this._loadAttributesFor2D,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline,loadForClassification:this._loadForClassification,renameBatchIdSemantic:!0});this._gltfLoader=c,this._state=VA.LOADING;let l=this;return this._promise=c.load().then(function(){if(!l.isDestroyed())return l._state=VA.PROCESSING,l}).catch(function(f){if(!l.isDestroyed())return MUe(l,f)}),this._promise};function MUe(e,t){e.unload(),e._state=VA.FAILED;let n="Failed to load b3dm";return t=e.getError(n,t),Promise.reject(t)}Ng.prototype.process=function(e){if(this._state===VA.READY)return!0;if(this._state!==VA.PROCESSING||!this._gltfLoader.process(e))return!1;let n=this._gltfLoader.components;return n.transform=N.multiplyTransformation(this._transform,n.transform,n.transform),RUe(this,n),this._components=n,this._arrayBuffer=void 0,this._state=VA.READY,!0};function RUe(e,t){let n=e._batchTable,i=e._batchLength;if(i===0)return;let r;if(u(n.json))r=Vp({count:i,batchTable:n.json,binaryBody:n.binary});else{let a=new Vc({name:vd.BATCH_TABLE_CLASS_NAME,count:i});r=new xa({schema:{},propertyTables:[a]})}let o=t.scene.nodes,s=o.length;for(let a=0;a<s;a++)Xie(o[a]);t.structuralMetadata=r}function Xie(e){let t=e.children.length;for(let i=0;i<t;i++)Xie(e.children[i]);let n=e.primitives.length;for(let i=0;i<n;i++){let r=e.primitives[i],o=Jt.getAttributeBySemantic(r,Tt.FEATURE_ID);if(u(o)){o.setIndex=0;let s=new OUe;s.propertyTableId=0,s.setIndex=0,s.positionalLabel="featureId_0",r.featureIds.push(s)}}}Ng.prototype.unload=function(){u(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),this._components=void 0,this._arrayBuffer=void 0};var D1=Ng;function Fg(e){e=y(e,y.EMPTY_OBJECT),this._geoJson=e.geoJson,this._components=void 0}u(Object.create)&&(Fg.prototype=Object.create(or.prototype),Fg.prototype.constructor=Fg);Object.defineProperties(Fg.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}}});Fg.prototype.load=function(){return Promise.resolve(this)};Fg.prototype.process=function(e){return u(this._components)||(this._components=qUe(this._geoJson,e),this._geoJson=void 0),!0};function BUe(){this.lines=void 0,this.points=void 0,this.properties=void 0}function LUe(){this.features=[]}function f6(e){let t=e[0],n=e[1],i=y(e[2],0);return new h(t,n,i)}function d6(e){let t=e.length,n=new Array(t);for(let r=0;r<t;r++)n[r]=f6(e[r]);return[n]}function NUe(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=d6(e[i])[0];return n}function Kie(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=d6(e[i])[0];return n}function FUe(e){let t=e.length,n=[];for(let i=0;i<t;i++)Array.prototype.push.apply(n,Kie(e[i]));return n}function UUe(e){return[f6(e)]}function VUe(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=f6(e[i]);return n}var kUe={LineString:d6,MultiLineString:NUe,MultiPolygon:FUe,Polygon:Kie,MultiPoint:VUe,Point:UUe},zUe={LineString:Be.LINES,MultiLineString:Be.LINES,MultiPolygon:Be.LINES,Polygon:Be.LINES,MultiPoint:Be.POINTS,Point:Be.POINTS};function Jie(e,t){if(!u(e.geometry))return;let n=e.geometry.type,i=kUe[n],r=zUe[n],o=e.geometry.coordinates;if(!u(i)||!u(o))return;let s=new BUe;r===Be.LINES?s.lines=i(o):r===Be.POINTS&&(s.points=i(o)),s.properties=e.properties,t.features.push(s)}function HUe(e,t){let n=e.features,i=n.length;for(let r=0;r<i;r++)Jie(n[r],t)}var GUe={FeatureCollection:HUe,Feature:Jie},$U=new h;function WUe(e,t,n){let i=0,r=0,o=e.length;for(let B=0;B<o;B++){let L=e[B];if(u(L.lines)){let _=L.lines.length;for(let b=0;b<_;b++){let w=L.lines[b];i+=w.length,r+=(w.length-1)*2}}}let s=new Float32Array(i*3),a=new Float32Array(i),c=Ue.createTypedArray(i,r),l=Ue.fromTypedArray(c),f=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),d=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),p=0,g=0;for(let B=0;B<o;B++){let L=e[B];if(!u(L.lines))continue;let _=L.lines.length;for(let b=0;b<_;b++){let w=L.lines[b],I=w.length;for(let R=0;R<I;R++){let F=w[R],k=h.fromDegrees(F.x,F.y,F.z,re.WGS84,$U),V=N.multiplyByPoint(t,k,$U);h.minimumByComponent(f,V,f),h.maximumByComponent(d,V,d),h.pack(V,s,p*3),a[p]=B,R<I-1&&(c[g*2]=p,c[g*2+1]=p+1,g++),p++}}}let m=ht.createVertexBuffer({typedArray:s,context:n.context,usage:Fe.STATIC_DRAW});m.vertexArrayDestroyable=!1;let A=ht.createVertexBuffer({typedArray:a,context:n.context,usage:Fe.STATIC_DRAW});A.vertexArrayDestroyable=!1;let x=ht.createIndexBuffer({typedArray:c,context:n.context,usage:Fe.STATIC_DRAW,indexDatatype:l});x.vertexArrayDestroyable=!1;let C=new Lt.Attribute;C.semantic=Tt.POSITION,C.componentDatatype=X.FLOAT,C.type=on.VEC3,C.count=i,C.min=f,C.max=d,C.buffer=m;let T=new Lt.Attribute;T.semantic=Tt.FEATURE_ID,T.setIndex=0,T.componentDatatype=X.FLOAT,T.type=on.SCALAR,T.count=i,T.buffer=A;let E=[C,T],S=new Lt.Material;S.unlit=!0;let v=new Lt.Indices;v.indexDatatype=l,v.count=c.length,v.buffer=x;let D=new Lt.FeatureIdAttribute;D.featureCount=o,D.propertyTableId=0,D.setIndex=0,D.positionalLabel="featureId_0";let M=[D],O=new Lt.Primitive;return O.attributes=E,O.indices=v,O.featureIds=M,O.primitiveType=Be.LINES,O.material=S,O}function jUe(e,t,n){let i=0,r=e.length;for(let E=0;E<r;E++){let S=e[E];u(S.points)&&(i+=S.points.length)}let o=new Float32Array(i*3),s=new Float32Array(i),a=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),c=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),l=0;for(let E=0;E<r;E++){let S=e[E];if(!u(S.points))continue;let v=S.points.length;for(let D=0;D<v;D++){let M=S.points[D],O=h.fromDegrees(M.x,M.y,M.z,re.WGS84,$U),B=N.multiplyByPoint(t,O,$U);h.minimumByComponent(a,B,a),h.maximumByComponent(c,B,c),h.pack(B,o,l*3),s[l]=E,l++}}let f=ht.createVertexBuffer({typedArray:o,context:n.context,usage:Fe.STATIC_DRAW});f.vertexArrayDestroyable=!1;let d=ht.createVertexBuffer({typedArray:s,context:n.context,usage:Fe.STATIC_DRAW});d.vertexArrayDestroyable=!1;let p=new Lt.Attribute;p.semantic=Tt.POSITION,p.componentDatatype=X.FLOAT,p.type=on.VEC3,p.count=i,p.min=a,p.max=c,p.buffer=f;let g=new Lt.Attribute;g.semantic=Tt.FEATURE_ID,g.setIndex=0,g.componentDatatype=X.FLOAT,g.type=on.SCALAR,g.count=i,g.buffer=d;let m=[p,g],A=new Lt.Material;A.unlit=!0;let x=new Lt.FeatureIdAttribute;x.featureCount=r,x.propertyTableId=0,x.setIndex=0,x.positionalLabel="featureId_0";let C=[x],T=new Lt.Primitive;return T.attributes=m,T.featureIds=C,T.primitiveType=Be.POINTS,T.material=A,T}function qUe(e,t){let n=new LUe,i=GUe[e.type];u(i)&&i(e,n);let r=n.features,o=r.length;if(o===0)throw new de("GeoJSON must have at least one feature");let s={};for(let B=0;B<o;B++){let L=r[B],_=y(L.properties,y.EMPTY_OBJECT);for(let b in _)_.hasOwnProperty(b)&&(u(s[b])||(s[b]=new Array(o)))}for(let B=0;B<o;B++){let L=r[B];for(let _ in s)if(s.hasOwnProperty(_)){let b=y(L.properties[_],"");s[_][B]=b}}let a=new Bp({count:o,properties:s}),l=[new Vc({id:0,count:o,jsonMetadataTable:a})],f=wd.fromJson({}),d=new xa({schema:f,propertyTables:l}),p=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),g=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),m=!1,A=!1;for(let B=0;B<o;B++){let L=r[B];if(u(L.lines)){m=!0;let _=L.lines.length;for(let b=0;b<_;b++){let w=L.lines[b],I=w.length;for(let R=0;R<I;R++)h.minimumByComponent(p,w[R],p),h.maximumByComponent(g,w[R],g)}}if(u(L.points)){A=!0;let _=L.points.length;for(let b=0;b<_;b++){let w=L.points[b];h.minimumByComponent(p,w,p),h.maximumByComponent(g,w,g)}}}let x=h.midpoint(p,g,new h),C=h.fromDegrees(x.x,x.y,x.z,re.WGS84,new h),T=Mt.eastNorthUpToFixedFrame(C,re.WGS84,new N),E=N.inverseTransformation(T,new N),S=[];m&&S.push(WUe(r,E,t)),A&&S.push(jUe(r,E,t));let v=new Lt.Node;v.index=0,v.primitives=S;let D=[v],M=new Lt.Scene;M.nodes=D;let O=new Lt.Components;return O.scene=M,O.nodes=D,O.transform=T,O.structuralMetadata=d,O}Fg.prototype.unload=function(){this._components=void 0};var I1=Fg;var eV={};eV._deprecationWarning=$;var Ug=Uint32Array.BYTES_PER_ELEMENT;eV.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),r=new DataView(e);t+=Ug;let o=r.getUint32(t,!0);if(o!==1)throw new de(`Only Instanced 3D Model version 1 is supported. Version ${o} is not.`);t+=Ug;let s=r.getUint32(t,!0);t+=Ug;let a=r.getUint32(t,!0);if(a===0)throw new de("featureTableJsonByteLength is zero, the feature table must be defined.");t+=Ug;let c=r.getUint32(t,!0);t+=Ug;let l=r.getUint32(t,!0);t+=Ug;let f=r.getUint32(t,!0);t+=Ug;let d=r.getUint32(t,!0);if(d!==1&&d!==0)throw new de(`Only glTF format 0 (uri) or 1 (embedded) are supported. Format ${d} is not.`);t+=Ug;let p=Mr(i,t,a);t+=a;let g=new Uint8Array(e,t,c);t+=c;let m,A;l>0&&(m=Mr(i,t,l),t+=l,f>0&&(A=new Uint8Array(e,t,f),A=new Uint8Array(A),t+=f));let x=n+s-t;if(x===0)throw new de("glTF byte length must be greater than 0.");let C;return t%4===0?C=new Uint8Array(e,t,x):(eV._deprecationWarning("i3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),C=new Uint8Array(i.subarray(t,t+x))),{gltfFormat:d,featureTableJson:p,featureTableBinary:g,batchTableJson:m,batchTableBinary:A,gltf:C}};var P1=eV;var kp={NOT_LOADED:0,LOADING:1,PROCESSING:2,POST_PROCESSING:3,READY:4,FAILED:5,UNLOADED:6},tV=Lt.Attribute,YUe=Lt.FeatureIdAttribute,Qie=Lt.Instances;function zp(e){e=y(e,y.EMPTY_OBJECT);let t=e.i3dmResource,n=e.arrayBuffer,i=e.baseResource,r=y(e.byteOffset,0),o=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,dr.Y),l=y(e.forwardAxis,dr.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0);i=u(i)?i:t.clone(),this._i3dmResource=t,this._baseResource=i,this._arrayBuffer=n,this._byteOffset=r,this._releaseGltfJson=o,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=l,this._loadAttributesAsTypedArray=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._state=kp.NOT_LOADED,this._promise=void 0,this._gltfLoader=void 0,this._buffers=[],this._components=void 0,this._transform=N.IDENTITY,this._batchTable=void 0,this._featureTable=void 0,this._instancesLength=0}u(Object.create)&&(zp.prototype=Object.create(or.prototype),zp.prototype.constructor=zp);Object.defineProperties(zp.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});zp.prototype.load=function(){if(u(this._promise))return this._promise;let e=P1.parse(this._arrayBuffer,this._byteOffset),t=e.featureTableJson,n=e.featureTableBinary,i=e.batchTableJson,r=e.batchTableBinary,o=e.gltfFormat,s=new Od(t,n);this._featureTable=s;let a=s.getGlobalProperty("INSTANCES_LENGTH");if(s.featuresLength=a,!u(a))throw new de("Feature table global property: INSTANCES_LENGTH must be defined");this._instancesLength=a;let c=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);u(c)&&(this._transform=N.fromTranslation(h.fromArray(c))),this._batchTable={json:i,binary:r};let l={upAxis:this._upAxis,forwardAxis:this._forwardAxis,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline};if(o===0){let d=_l(e.gltf);d=d.replace(/[\s\0]+$/,"");let p=this._baseResource.getDerivedResource({url:d});l.gltfResource=p,l.baseResource=p}else l.gltfResource=this._i3dmResource,l.typedArray=e.gltf;let f=new Kh(l);return this._gltfLoader=f,this._state=kp.LOADING,this._promise=f.load().then(()=>{if(!this.isDestroyed())return this._state=kp.PROCESSING,this}).catch(d=>{if(!this.isDestroyed())throw XUe(this,d)}),this._promise};function XUe(e,t){e.unload(),e._state=kp.FAILED;let n="Failed to load i3dm";return e.getError(n,t)}zp.prototype.process=function(e){if(this._state===kp.READY)return!0;let t=this._gltfLoader,n=!1;if(this._state===kp.PROCESSING&&(n=t.process(e)),!n)return!1;let i=t.components;return i.transform=N.multiplyTransformation(this._transform,i.transform,i.transform),ZUe(this,i,e),KUe(this,i),this._components=i,this._arrayBuffer=void 0,this._state=kp.READY,!0};function KUe(e,t){let n=e._batchTable,i=e._instancesLength;if(i===0)return;let r;if(u(n.json))r=Vp({count:i,batchTable:n.json,binaryBody:n.binary});else{let o=new Vc({name:vd.BATCH_TABLE_CLASS_NAME,count:i});r=new xa({schema:{},propertyTables:[o]})}t.structuralMetadata=r}var nV=new h,h6=new Array(4),JUe=new N;function ZUe(e,t,n){let i,r=e._featureTable,o=e._instancesLength;if(o===0)return;let s=r.getGlobalProperty("RTC_CENTER",X.FLOAT,3),a=r.getGlobalProperty("EAST_NORTH_UP"),c=r.hasProperty("NORMAL_UP")||r.hasProperty("NORMAL_UP_OCT32P")||a,l=r.hasProperty("SCALE")||r.hasProperty("SCALE_NON_UNIFORM"),f=$Ue(r,o),d;c&&(d=new Float32Array(4*o));let p;l&&(p=new Float32Array(3*o));let g=new Float32Array(o),m=h.unpackArray(f),A=new h,x=new h,C=new h,T=new h,E=new Q,S=new Le,v=new Array(4),D=new h,M=new Array(3),O=new N;if(!u(s)){let V=ae.fromPoints(m);for(i=0;i<m.length;i++)h.subtract(m[i],V.center,nV),f[3*i+0]=nV.x,f[3*i+1]=nV.y,f[3*i+2]=nV.z;let G=N.fromTranslation(V.center,JUe);t.transform=N.multiplyTransformation(G,t.transform,t.transform)}for(i=0;i<o;i++){A=h.clone(m[i]),u(s)&&h.add(A,h.unpack(s),A),c&&(eVe(r,a,i,S,A,C,x,T,E,O),Le.pack(S,v,0),d[4*i+0]=v[0],d[4*i+1]=v[1],d[4*i+2]=v[2],d[4*i+3]=v[3]),l&&(tVe(r,i,D),h.pack(D,M,0),p[3*i+0]=M[0],p[3*i+1]=M[1],p[3*i+2]=M[2]);let V=r.getProperty("BATCH_ID",X.UNSIGNED_SHORT,1,i);u(V)||(V=i),g[i]=V}let B=new Qie;B.transformInWorldSpace=!0;let L=e._buffers,_=new tV;if(_.name="Instance Translation",_.semantic=qo.TRANSLATION,_.componentDatatype=X.FLOAT,_.type=on.VEC3,_.count=o,_.typedArray=f,!c){let V=ht.createVertexBuffer({context:n.context,typedArray:f,usage:Fe.STATIC_DRAW});V.vertexArrayDestroyable=!1,L.push(V),_.buffer=V}if(B.attributes.push(_),c){let V=new tV;V.name="Instance Rotation",V.semantic=qo.ROTATION,V.componentDatatype=X.FLOAT,V.type=on.VEC4,V.count=o,V.typedArray=d,B.attributes.push(V)}if(l){let V=new tV;if(V.name="Instance Scale",V.semantic=qo.SCALE,V.componentDatatype=X.FLOAT,V.type=on.VEC3,V.count=o,c)V.typedArray=p;else{let G=ht.createVertexBuffer({context:n.context,typedArray:p,usage:Fe.STATIC_DRAW});G.vertexArrayDestroyable=!1,L.push(G),V.buffer=G}B.attributes.push(V)}let b=new tV;b.name="Instance Feature ID",b.setIndex=0,b.semantic=qo.FEATURE_ID,b.componentDatatype=X.FLOAT,b.type=on.SCALAR,b.count=o;let w=ht.createVertexBuffer({context:n.context,typedArray:g,usage:Fe.STATIC_DRAW});w.vertexArrayDestroyable=!1,L.push(w),b.buffer=w,B.attributes.push(b);let I=new YUe;I.propertyTableId=0,I.setIndex=0,I.positionalLabel="instanceFeatureId_0",B.featureIds.push(I);let R=t.nodes,F=R.length,k=!1;for(i=0;i<F;i++){let V=R[i];V.primitives.length>0&&(V.instances=k?QUe(B):B,k=!0)}}function QUe(e){let t=new Qie;t.transformInWorldSpace=e.transformInWorldSpace;let n=e.attributes,i=n.length;for(let r=0;r<i;r++){let o=We(n[r],!1);t.attributes.push(o)}return t.featureIds=e.featureIds,t}function $Ue(e,t){if(e.hasProperty("POSITION"))return e.getPropertyArray("POSITION",X.FLOAT,3);if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3),i=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!u(i))throw new de("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let r=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!u(r))throw new de("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let o=new Float32Array(n.length);for(let s=0;s<n.length/3;s++)for(let a=0;a<3;a++){let c=3*s+a;o[c]=n[c]/65535*r[a]+i[a]}return o}else throw new de("Either POSITION or POSITION_QUANTIZED must be defined for each instance.")}var Zie=new Array(4);function eVe(e,t,n,i,r,o,s,a,c,l){let f=e.getProperty("NORMAL_UP",X.FLOAT,3,n,h6),d=e.getProperty("NORMAL_RIGHT",X.FLOAT,3,n,Zie),p=!1;if(u(f)){if(!u(d))throw new de("To define a custom orientation, both NORMAL_UP and NORMAL_RIGHT must be defined.");h.unpack(f,0,o),h.unpack(d,0,s),p=!0}else{let g=e.getProperty("NORMAL_UP_OCT32P",X.UNSIGNED_SHORT,2,n,h6),m=e.getProperty("NORMAL_RIGHT_OCT32P",X.UNSIGNED_SHORT,2,n,Zie);if(u(g)){if(!u(m))throw new de("To define a custom orientation with oct-encoded vectors, both NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P must be defined.");qn.octDecodeInRange(g[0],g[1],65535,o),qn.octDecodeInRange(m[0],m[1],65535,s),p=!0}else t?(Mt.eastNorthUpToFixedFrame(r,re.WGS84,l),N.getMatrix3(l,c)):Q.clone(Q.IDENTITY,c)}p&&(h.cross(s,o,a),h.normalize(a,a),Q.setColumn(c,0,s,c),Q.setColumn(c,1,o,c),Q.setColumn(c,2,a,c)),Le.fromRotationMatrix(c,i)}function tVe(e,t,n){n=h.fromElements(1,1,1,n);let i=e.getProperty("SCALE",X.FLOAT,1,t);u(i)&&h.multiplyByScalar(n,i,n);let r=e.getProperty("SCALE_NON_UNIFORM",X.FLOAT,3,t,h6);u(r)&&(n.x*=r[0],n.y*=r[1],n.z*=r[2])}function nVe(e){let t=e._buffers,n=t.length;for(let i=0;i<n;i++){let r=t[i];r.isDestroyed()||r.destroy()}t.length=0}zp.prototype.isUnloaded=function(){return this._state===kp.UNLOADED};zp.prototype.unload=function(){u(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),nVe(this),this._components=void 0,this._arrayBuffer=void 0,this._state=kp.UNLOADED};var O1=zp;var iVe={STOPPED:0,ANIMATING:1},Md=Object.freeze(iVe);function JT(){this.times=void 0,this.points=void 0,fe.throwInstantiationError()}JT.getPointType=function(e){if(typeof e=="number")return Number;if(e instanceof h)return h;if(e instanceof Le)return Le};JT.prototype.evaluate=fe.throwInstantiationError;JT.prototype.findTimeInterval=function(e,t){let n=this.times,i=n.length;if(t=y(t,0),e>=n[t]){if(t+1<i&&e<n[t+1])return t;if(t+2<i&&e<n[t+2])return t+1}else if(t-1>=0&&e>=n[t-1])return t-1;let r;if(e>n[t])for(r=t;r<i-1&&!(e>=n[r]&&e<n[r+1]);++r);else for(r=t-1;r>=0&&!(e>=n[r]&&e<n[r+1]);--r);return r===i-1&&(r=i-2),r};JT.prototype.wrapTime=function(e){let t=this.times,n=t[t.length-1],i=t[0],r=n-i,o;return e<i&&(o=Math.floor((i-e)/r)+1,e+=o*r),e>n&&(o=Math.floor((e-n)/r)+1,e-=o*r),e};JT.prototype.clampTime=function(e){let t=this.times;return P.clamp(e,t[0],t[t.length-1])};var sr=JT;function ZT(e){this._value=e,this._valueType=sr.getPointType(e)}Object.defineProperties(ZT.prototype,{value:{get:function(){return this._value}}});ZT.prototype.findTimeInterval=function(e){};ZT.prototype.wrapTime=function(e){return 0};ZT.prototype.clampTime=function(e){return 0};ZT.prototype.evaluate=function(e,t){let n=this._value,i=this._valueType;return i===Number?n:i.clone(n,t)};var M1=ZT;function QT(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=sr.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(QT.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});QT.prototype.findTimeInterval=sr.prototype.findTimeInterval;QT.prototype.wrapTime=sr.prototype.wrapTime;QT.prototype.clampTime=sr.prototype.clampTime;QT.prototype.evaluate=function(e,t){let n=this.points,i=this.times,r=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),o=(e-i[r])/(i[r+1]-i[r]);return this._pointType===Number?(1-o)*n[r]+o*n[r+1]:(u(t)||(t=new h),h.lerp(n[r],n[r+1],o,t))};var Vg=QT;var $ie={};$ie.solve=function(e,t,n,i){let r=new Array(n.length),o=new Array(i.length),s=new Array(i.length),a;for(a=0;a<o.length;a++)o[a]=new h,s[a]=new h;r[0]=n[0]/t[0],o[0]=h.multiplyByScalar(i[0],1/t[0],o[0]);let c;for(a=1;a<r.length;++a)c=1/(t[a]-r[a-1]*e[a-1]),r[a]=n[a]*c,o[a]=h.subtract(i[a],h.multiplyByScalar(o[a-1],e[a-1],o[a]),o[a]),o[a]=h.multiplyByScalar(o[a],c,o[a]);for(c=1/(t[a]-r[a-1]*e[a-1]),o[a]=h.subtract(i[a],h.multiplyByScalar(o[a-1],e[a-1],o[a]),o[a]),o[a]=h.multiplyByScalar(o[a],c,o[a]),s[s.length-1]=o[o.length-1],a=s.length-2;a>=0;--a)s[a]=h.subtract(o[a],h.multiplyByScalar(s[a+1],r[a],s[a]),s[a]);return s};var $T=$ie;var ere=[],tre=[],nre=[],ire=[];function rVe(e,t,n){let i=ere,r=nre,o=tre,s=ire;i.length=r.length=e.length-1,o.length=s.length=e.length;let a;i[0]=o[0]=1,r[0]=0;let c=s[0];for(u(c)||(c=s[0]=new h),h.clone(t,c),a=1;a<i.length-1;++a)i[a]=r[a]=1,o[a]=4,c=s[a],u(c)||(c=s[a]=new h),h.subtract(e[a+1],e[a-1],c),h.multiplyByScalar(c,3,c);return i[a]=0,r[a]=1,o[a]=4,c=s[a],u(c)||(c=s[a]=new h),h.subtract(e[a+1],e[a-1],c),h.multiplyByScalar(c,3,c),o[a+1]=1,c=s[a+1],u(c)||(c=s[a+1]=new h),h.clone(n,c),$T.solve(i,o,r,s)}function oVe(e){let t=ere,n=nre,i=tre,r=ire;t.length=n.length=e.length-1,i.length=r.length=e.length;let o;t[0]=n[0]=1,i[0]=2;let s=r[0];for(u(s)||(s=r[0]=new h),h.subtract(e[1],e[0],s),h.multiplyByScalar(s,3,s),o=1;o<t.length;++o)t[o]=n[o]=1,i[o]=4,s=r[o],u(s)||(s=r[o]=new h),h.subtract(e[o+1],e[o-1],s),h.multiplyByScalar(s,3,s);return i[o]=2,s=r[o],u(s)||(s=r[o]=new h),h.subtract(e[o],e[o-1],s),h.multiplyByScalar(s,3,s),$T.solve(t,i,n,r)}function bl(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.inTangents,r=e.outTangents;this._times=n,this._points=t,this._pointType=sr.getPointType(t[0]),this._inTangents=i,this._outTangents=r,this._lastTimeIndex=0}Object.defineProperties(bl.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},inTangents:{get:function(){return this._inTangents}},outTangents:{get:function(){return this._outTangents}}});bl.createC1=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points,i=e.tangents,r=i.slice(0,i.length-1),o=i.slice(1,i.length);return new bl({times:t,points:n,inTangents:o,outTangents:r})};bl.createNaturalCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points;if(n.length<3)return new Vg({points:n,times:t});let i=oVe(n),r=i.slice(0,i.length-1),o=i.slice(1,i.length);return new bl({times:t,points:n,inTangents:o,outTangents:r})};bl.createClampedCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points,i=e.firstTangent,r=e.lastTangent,o=sr.getPointType(n[0]);if(n.length<3)return new Vg({points:n,times:t});let s=rVe(n,i,r),a=s.slice(0,s.length-1),c=s.slice(1,s.length);return new bl({times:t,points:n,inTangents:c,outTangents:a})};bl.hermiteCoefficientMatrix=new N(2,-3,0,1,-2,3,0,0,1,-2,1,0,1,-1,0,0);bl.prototype.findTimeInterval=sr.prototype.findTimeInterval;var sVe=new se,eE=new h;bl.prototype.wrapTime=sr.prototype.wrapTime;bl.prototype.clampTime=sr.prototype.clampTime;bl.prototype.evaluate=function(e,t){let n=this.points,i=this.times,r=this.inTangents,o=this.outTangents;this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex);let s=this._lastTimeIndex,a=i[s+1]-i[s],c=(e-i[s])/a,l=sVe;l.z=c,l.y=c*c,l.x=l.y*c,l.w=1;let f=N.multiplyByVector(bl.hermiteCoefficientMatrix,l,l);f.z*=a,f.w*=a;let d=this._pointType;return d===Number?n[s]*f.x+n[s+1]*f.y+o[s]*f.z+r[s]*f.w:(u(t)||(t=new d),t=d.multiplyByScalar(n[s],f.x,t),d.multiplyByScalar(n[s+1],f.y,eE),d.add(t,eE,t),d.multiplyByScalar(o[s],f.z,eE),d.add(t,eE,t),d.multiplyByScalar(r[s],f.w,eE),d.add(t,eE,t))};var kg=bl;function tE(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=sr.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(tE.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});tE.prototype.findTimeInterval=sr.prototype.findTimeInterval;tE.prototype.wrapTime=sr.prototype.wrapTime;tE.prototype.clampTime=sr.prototype.clampTime;tE.prototype.evaluate=function(e,t){let n=this.points;this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex);let i=this._lastTimeIndex,r=this._pointType;return r===Number?n[i]:(u(t)||(t=new r),r.clone(n[i],t))};var R1=tE;function aVe(e){let t=e.points,n=e.times;return function(i,r){u(r)||(r=new Le);let o=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[o])/(n[o+1]-n[o]),a=t[o],c=t[o+1];return Le.fastSlerp(a,c,s,r)}}function nE(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._evaluateFunction=aVe(this),this._lastTimeIndex=0}Object.defineProperties(nE.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});nE.prototype.findTimeInterval=sr.prototype.findTimeInterval;nE.prototype.wrapTime=sr.prototype.wrapTime;nE.prototype.clampTime=sr.prototype.clampTime;nE.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var B1=nE;var kA=Lt.AnimatedPropertyType;function p6(e){e=y(e,y.EMPTY_OBJECT);let t=e.channel,n=e.runtimeAnimation,i=e.runtimeNode;this._channel=t,this._runtimeAnimation=n,this._runtimeNode=i,this._splines=[],this._path=void 0,uVe(this)}Object.defineProperties(p6.prototype,{channel:{get:function(){return this._channel}},runtimeAnimation:{get:function(){return this._runtimeAnimation}},runtimeNode:{get:function(){return this._runtimeNode}},splines:{get:function(){return this._splines}}});function cVe(e,t){let n=[],i=[],r=[],o=t.length;for(let s=0;s<o;s+=3)i.push(t[s]),n.push(t[s+1]),r.push(t[s+2]);return i.splice(0,1),r.length=r.length-1,new kg({times:e,points:n,inTangents:i,outTangents:r})}function rre(e,t,n,i){if(e.length===1&&t.length===1)return new M1(t[0]);switch(n){case Id.STEP:return new R1({times:e,points:t});case Id.CUBICSPLINE:return cVe(e,t);case Id.LINEAR:return i===kA.ROTATION?new B1({times:e,points:t}):new Vg({times:e,points:t})}}function lVe(e,t,n,i,r){let o=[];if(i===kA.WEIGHTS){let a=t.length/r,c,l;for(c=0;c<r;c++){let f=new Array(a),d=c;if(n===Id.CUBICSPLINE)for(l=0;l<a;l+=3)f[l]=t[d],f[l+1]=t[d+r],f[l+2]=t[d+2*r],d+=r*3;else for(l=0;l<a;l++)f[l]=t[d],d+=r;o.push(rre(e,f,n,i))}}else o.push(rre(e,t,n,i));return o}var m6;function uVe(e){let t=e._channel,n=t.sampler,i=n.input,r=n.output,o=n.interpolation,a=t.target.path,c=e._runtimeNode,l=u(c.morphWeights)?c.morphWeights.length:1,f=lVe(i,r,o,a,l);switch(e._splines=f,e._path=a,a){case kA.TRANSLATION:case kA.SCALE:m6=new h;break;case kA.ROTATION:m6=new Le;break;case kA.WEIGHTS:break}}p6.prototype.animate=function(e){let t=this._splines,n=this._path,i=this._runtimeAnimation.model,r=this._runtimeNode;if(n===kA.WEIGHTS){let o=r.morphWeights,s=o.length;for(let a=0;a<s;a++){let c=t[a],l=i.clampAnimations?c.clampTime(e):c.wrapTime(e);o[a]=c.evaluate(l)}}else{if(r.userAnimated)return;{let o=t[0],s=i.clampAnimations?o.clampTime(e):o.wrapTime(e);r[n]=o.evaluate(s,m6)}}};var L1=p6;function _6(e,t,n){this._animation=t,this._name=t.name,this._runtimeChannels=void 0,this._startTime=ee.clone(n.startTime),this._delay=y(n.delay,0),this._stopTime=ee.clone(n.stopTime),this.removeOnStop=y(n.removeOnStop,!1),this._multiplier=y(n.multiplier,1),this._reverse=y(n.reverse,!1),this._loop=y(n.loop,El.NONE),this._animationTime=n.animationTime,this._prevAnimationDelta=void 0,this.start=new ge,this.update=new ge,this.stop=new ge,this._state=Md.STOPPED,this._computedStartTime=void 0,this._duration=void 0;let i=this;this._raiseStartEvent=function(){i.start.raiseEvent(e,i)},this._updateEventTime=0,this._raiseUpdateEvent=function(){i.update.raiseEvent(e,i,i._updateEventTime)},this._raiseStopEvent=function(){i.stop.raiseEvent(e,i)},this._model=e,this._localStartTime=void 0,this._localStopTime=void 0,fVe(this)}Object.defineProperties(_6.prototype,{animation:{get:function(){return this._animation}},name:{get:function(){return this._name}},runtimeChannels:{get:function(){return this._runtimeChannels}},model:{get:function(){return this._model}},localStartTime:{get:function(){return this._localStartTime}},localStopTime:{get:function(){return this._localStopTime}},startTime:{get:function(){return this._startTime}},delay:{get:function(){return this._delay}},stopTime:{get:function(){return this._stopTime}},multiplier:{get:function(){return this._multiplier}},reverse:{get:function(){return this._reverse}},loop:{get:function(){return this._loop}},animationTime:{get:function(){return this._animationTime}}});function fVe(e){let t=Number.MAX_VALUE,n=-Number.MAX_VALUE,i=e._model.sceneGraph,o=e._animation.channels,s=o.length,a=[];for(let c=0;c<s;c++){let l=o[c],f=l.target;if(!u(f))continue;let d=f.node.index,p=i._runtimeNodes[d],g=new L1({channel:l,runtimeAnimation:e,runtimeNode:p}),m=l.sampler.input;t=Math.min(t,m[0]),n=Math.max(n,m[m.length-1]),a.push(g)}e._runtimeChannels=a,e._localStartTime=t,e._localStopTime=n}_6.prototype.animate=function(e){let t=this._runtimeChannels,n=t.length;for(let i=0;i<n;i++)t[i].animate(e)};var N1=_6;function Hp(e){this.animationAdded=new ge,this.animationRemoved=new ge,this.animateWhilePaused=!1,this._model=e,this._runtimeAnimations=[],this._previousTime=void 0}Object.defineProperties(Hp.prototype,{length:{get:function(){return this._runtimeAnimations.length}},model:{get:function(){return this._model}}});function g6(e,t,n){let i=e._model,r=new N1(i,t,n);return e._runtimeAnimations.push(r),e.animationAdded.raiseEvent(i,r),r}Hp.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=e.index;if(u(i))return g6(this,n[i],e);let r=n.length;for(let o=0;o<r;++o)if(n[o].name===e.name){i=o;break}return g6(this,n[i],e)};Hp.prototype.addAll=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=[],r=n.length;for(let o=0;o<r;++o){let s=g6(this,n[o],e);i.push(s)}return i};Hp.prototype.remove=function(e){if(!u(e))return!1;let t=this._runtimeAnimations,n=t.indexOf(e);return n!==-1?(t.splice(n,1),this.animationRemoved.raiseEvent(this._model,e),!0):!1};Hp.prototype.removeAll=function(){let e=this._model,t=this._runtimeAnimations,n=t.length;this._runtimeAnimations.length=0;for(let i=0;i<n;++i)this.animationRemoved.raiseEvent(e,t[i])};Hp.prototype.contains=function(e){return u(e)?this._runtimeAnimations.indexOf(e)!==-1:!1};Hp.prototype.get=function(e){return this._runtimeAnimations[e]};var iV=[];function dVe(e,t,n){return function(){e.animationRemoved.raiseEvent(t,n)}}Hp.prototype.update=function(e){let t=this._runtimeAnimations,n=t.length;if(n===0)return this._previousTime=void 0,!1;if(!this.animateWhilePaused&&ee.equals(e.time,this._previousTime))return!1;this._previousTime=ee.clone(e.time,this._previousTime);let i=!1,r=e.time,o=this._model;for(let s=0;s<n;++s){let a=t[s];u(a._computedStartTime)||(a._computedStartTime=ee.addSeconds(y(a.startTime,r),a.delay,new ee)),u(a._duration)||(a._duration=a.localStopTime*(1/a.multiplier));let c=a._computedStartTime,l=a._duration,f=a.stopTime,d=ee.lessThanOrEquals(c,r),p=u(f)&&ee.greaterThan(r,f),g=0;if(l!==0){let x=ee.secondsDifference(p?f:r,c);g=u(a._animationTime)?a._animationTime(l,x):x/l}let m=a.loop===El.REPEAT||a.loop===El.MIRRORED_REPEAT,A=(d||m&&!u(a.startTime))&&(g<=1||m)&&!p;if(g===a._prevAnimationDelta){let x=a._state===Md.STOPPED;if(A!==x)continue}if(a._prevAnimationDelta=g,A||a._state===Md.ANIMATING){if(A&&a._state===Md.STOPPED&&(a._state=Md.ANIMATING,a.start.numberOfListeners>0&&e.afterRender.push(a._raiseStartEvent)),a.loop===El.REPEAT)g=g-Math.floor(g);else if(a.loop===El.MIRRORED_REPEAT){let C=Math.floor(g),T=g-C;g=C%2===1?1-T:T}a.reverse&&(g=1-g);let x=g*l*a.multiplier;x=P.clamp(x,a.localStartTime,a.localStopTime),a.animate(x),a.update.numberOfListeners>0&&(a._updateEventTime=x,e.afterRender.push(a._raiseUpdateEvent)),i=!0,A||(a._state=Md.STOPPED,a.stop.numberOfListeners>0&&e.afterRender.push(a._raiseStopEvent),a.removeOnStop&&iV.push(a))}}n=iV.length;for(let s=0;s<n;++s){let a=iV[s];t.splice(t.indexOf(a),1),e.afterRender.push(dVe(this,o,a))}return iV.length=0,i};var F1=Hp;function zA(e){this._model=e.model,this._featureTable=e.featureTable,this._featureId=e.featureId,this._color=void 0}Object.defineProperties(zA.prototype,{show:{get:function(){return this._featureTable.getShow(this._featureId)},set:function(e){this._featureTable.setShow(this._featureId,e)}},color:{get:function(){return u(this._color)||(this._color=new z),this._featureTable.getColor(this._featureId,this._color)},set:function(e){this._featureTable.setColor(this._featureId,e)}},primitive:{get:function(){return this._model}},featureTable:{get:function(){return this._featureTable}},featureId:{get:function(){return this._featureId}}});zA.prototype.hasProperty=function(e){return this._featureTable.hasProperty(this._featureId,e)};zA.prototype.getProperty=function(e){return this._featureTable.getProperty(this._featureId,e)};zA.prototype.getPropertyInherited=function(e){return this._featureTable.hasPropertyBySemantic(this._featureId,e)?this._featureTable.getPropertyBySemantic(this._featureId,e):this._featureTable.getProperty(this._featureId,e)};zA.prototype.getPropertyIds=function(e){return this._featureTable.getPropertyIds(e)};zA.prototype.setProperty=function(e,t){return this._featureTable.setProperty(this._featureId,e,t)};var U1=zA;var V1={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};V1.getStyleCommandsNeeded=function(e,t){return t===0?V1.ALL_OPAQUE:t===e?V1.ALL_TRANSLUCENT:V1.OPAQUE_AND_TRANSLUCENT};var Rd=Object.freeze(V1);var zg={GLTF:"GLTF",TILE_GLTF:"TILE_GLTF",TILE_B3DM:"B3DM",TILE_I3DM:"I3DM",TILE_PNTS:"PNTS",TILE_GEOJSON:"TILE_GEOJSON"};zg.is3DTiles=function(e){switch(e){case zg.TILE_GLTF:case zg.TILE_B3DM:case zg.TILE_I3DM:case zg.TILE_PNTS:case zg.TILE_GEOJSON:return!0;case zg.GLTF:return!1}};var Ur=Object.freeze(zg);function wo(e){let t=e.model,n=e.propertyTable;this._propertyTable=n,this._model=t,this._features=void 0,this._featuresLength=0,this._batchTexture=void 0,this._styleCommandsNeededDirty=!1,this._styleCommandsNeeded=Rd.ALL_OPAQUE,hVe(this)}Object.defineProperties(wo.prototype,{batchTexture:{get:function(){return this._batchTexture}},featuresLength:{get:function(){return this._featuresLength}},batchTextureByteLength:{get:function(){return u(this._batchTexture)?this._batchTexture.byteLength:0}},styleCommandsNeededDirty:{get:function(){return this._styleCommandsNeededDirty}}});function hVe(e){let t=e._model,n=Ur.is3DTiles(t.type),i=e._propertyTable.count;if(i===0)return;let r,o=new Array(i);if(n){let s=t.content;for(r=0;r<i;r++)o[r]=new ws(s,r)}else for(r=0;r<i;r++)o[r]=new U1({model:t,featureId:r,featureTable:e});e._features=o,e._featuresLength=i,e._batchTexture=new Uc({featuresLength:i,owner:e,statistics:n?t.content.tileset.statistics:void 0})}wo.prototype.update=function(e){this._styleCommandsNeededDirty=!1,this._batchTexture.update(void 0,e);let t=Rd.getStyleCommandsNeeded(this._featuresLength,this._batchTexture.translucentFeaturesLength);this._styleCommandsNeeded!==t&&(this._styleCommandsNeededDirty=!0,this._styleCommandsNeeded=t)};wo.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};wo.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};wo.prototype.getShow=function(e){return this._batchTexture.getShow(e)};wo.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};wo.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};wo.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};wo.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};wo.prototype.getFeature=function(e){return this._features[e]};wo.prototype.hasProperty=function(e,t){return this._propertyTable.hasProperty(e,t)};wo.prototype.hasPropertyBySemantic=function(e,t){return this._propertyTable.hasPropertyBySemantic(e,t)};wo.prototype.getProperty=function(e,t){return this._propertyTable.getProperty(e,t)};wo.prototype.getPropertyBySemantic=function(e,t){return this._propertyTable.getPropertyBySemantic(e,t)};wo.prototype.getPropertyIds=function(e){return this._propertyTable.getPropertyIds(e)};wo.prototype.setProperty=function(e,t,n){return this._propertyTable.setProperty(e,t,n)};wo.prototype.isClass=function(e,t){return this._propertyTable.isClass(e,t)};wo.prototype.isExactClass=function(e,t){return this._propertyTable.isExactClass(e,t)};wo.prototype.getExactClassName=function(e){return this._propertyTable.getExactClassName(e)};var mVe=new z;wo.prototype.applyStyle=function(e){if(!u(e)){this.setAllColor(Uc.DEFAULT_COLOR_VALUE),this.setAllShow(Uc.DEFAULT_SHOW_VALUE);return}for(let t=0;t<this._featuresLength;t++){let n=this.getFeature(t),i=u(e.color)?y(e.color.evaluateColor(n,mVe),Uc.DEFAULT_COLOR_VALUE):Uc.DEFAULT_COLOR_VALUE,r=u(e.show)?y(e.show.evaluate(n),Uc.DEFAULT_SHOW_VALUE):Uc.DEFAULT_SHOW_VALUE;this.setColor(t,i),this.setShow(t,r)}};wo.prototype.isDestroyed=function(){return!1};wo.prototype.destroy=function(e){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var k1=wo;var z1=`#if defined(HAS_NORMALS) && !defined(HAS_TANGENTS) && !defined(LIGHTING_UNLIT) + #ifdef GL_OES_standard_derivatives + #extension GL_OES_standard_derivatives : enable + #endif +#endif + +czm_modelMaterial defaultModelMaterial() +{ + czm_modelMaterial material; + material.diffuse = vec3(0.0); + material.specular = vec3(1.0); + material.roughness = 1.0; + material.occlusion = 1.0; + material.normalEC = vec3(0.0, 0.0, 1.0); + material.emissive = vec3(0.0); + material.alpha = 1.0; + return material; +} + +vec4 handleAlpha(vec3 color, float alpha) +{ + #ifdef ALPHA_MODE_MASK + if (alpha < u_alphaCutoff) { + discard; + } + #endif + + return vec4(color, alpha); +} + +SelectedFeature selectedFeature; + +void main() +{ + #ifdef HAS_MODEL_SPLITTER + modelSplitterStage(); + #endif + + czm_modelMaterial material = defaultModelMaterial(); + + ProcessedAttributes attributes; + geometryStage(attributes); + + FeatureIds featureIds; + featureIdStage(featureIds, attributes); + + Metadata metadata; + MetadataClass metadataClass; + MetadataStatistics metadataStatistics; + metadataStage(metadata, metadataClass, metadataStatistics, attributes); + + #ifdef HAS_SELECTED_FEATURE_ID + selectedFeatureIdStage(selectedFeature, featureIds); + #endif + + #ifndef CUSTOM_SHADER_REPLACE_MATERIAL + materialStage(material, attributes, selectedFeature); + #endif + + #ifdef HAS_CUSTOM_FRAGMENT_SHADER + customShaderStage(material, attributes, featureIds, metadata, metadataClass, metadataStatistics); + #endif + + lightingStage(material, attributes); + + #ifdef HAS_SELECTED_FEATURE_ID + cpuStylingStage(material, selectedFeature); + #endif + + #ifdef HAS_MODEL_COLOR + modelColorStage(material); + #endif + + #ifdef HAS_PRIMITIVE_OUTLINE + primitiveOutlineStage(material); + #endif + + vec4 color = handleAlpha(material.diffuse, material.alpha); + + #ifdef HAS_CLIPPING_PLANES + modelClippingPlanesStage(color); + #endif + + #if defined(HAS_SILHOUETTE) && defined(HAS_NORMALS) + silhouetteStage(color); + #endif + + out_FragColor = color; +} +`;var H1=`precision highp float; + +czm_modelVertexOutput defaultVertexOutput(vec3 positionMC) { + czm_modelVertexOutput vsOutput; + vsOutput.positionMC = positionMC; + vsOutput.pointSize = 1.0; + return vsOutput; +} + +void main() +{ + // Initialize the attributes struct with all + // attributes except quantized ones. + ProcessedAttributes attributes; + initializeAttributes(attributes); + + // Dequantize the quantized ones and add them to the + // attributes struct. + #ifdef USE_DEQUANTIZATION + dequantizationStage(attributes); + #endif + + #ifdef HAS_MORPH_TARGETS + morphTargetsStage(attributes); + #endif + + #ifdef HAS_SKINNING + skinningStage(attributes); + #endif + + #ifdef HAS_PRIMITIVE_OUTLINE + primitiveOutlineStage(); + #endif + + // Compute the bitangent according to the formula in the glTF spec. + // Normal and tangents can be affected by morphing and skinning, so + // the bitangent should not be computed until their values are finalized. + #ifdef HAS_BITANGENTS + attributes.bitangentMC = normalize(cross(attributes.normalMC, attributes.tangentMC) * attributes.tangentSignMC); + #endif + + FeatureIds featureIds; + featureIdStage(featureIds, attributes); + + #ifdef HAS_SELECTED_FEATURE_ID + SelectedFeature feature; + selectedFeatureIdStage(feature, featureIds); + // Handle any show properties that come from the style. + cpuStylingStage(attributes.positionMC, feature); + #endif + + #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING) + // The scene mode 2D pipeline stage and instancing stage add a different + // model view matrix to accurately project the model to 2D. However, the + // output positions and normals should be transformed by the 3D matrices + // to keep the data the same for the fragment shader. + mat4 modelView = czm_modelView3D; + mat3 normal = czm_normal3D; + #else + // These are used for individual model projection because they will + // automatically change based on the scene mode. + mat4 modelView = czm_modelView; + mat3 normal = czm_normal; + #endif + + // Update the position for this instance in place + #ifdef HAS_INSTANCING + + // The legacy instance stage is used when rendering i3dm models that + // encode instances transforms in world space, as opposed to glTF models + // that use EXT_mesh_gpu_instancing, where instance transforms are encoded + // in object space. + #ifdef USE_LEGACY_INSTANCING + mat4 instanceModelView; + mat3 instanceModelViewInverseTranspose; + + legacyInstancingStage(attributes, instanceModelView, instanceModelViewInverseTranspose); + + modelView = instanceModelView; + normal = instanceModelViewInverseTranspose; + #else + instancingStage(attributes); + #endif + + #ifdef USE_PICKING + v_pickColor = a_pickColor; + #endif + + #endif + + Metadata metadata; + MetadataClass metadataClass; + MetadataStatistics metadataStatistics; + metadataStage(metadata, metadataClass, metadataStatistics, attributes); + + #ifdef HAS_CUSTOM_VERTEX_SHADER + czm_modelVertexOutput vsOutput = defaultVertexOutput(attributes.positionMC); + customShaderStage(vsOutput, attributes, featureIds, metadata, metadataClass, metadataStatistics); + #endif + + // Compute the final position in each coordinate system needed. + // This returns the value that will be assigned to gl_Position. + vec4 positionClip = geometryStage(attributes, modelView, normal); + + #ifdef HAS_SILHOUETTE + silhouetteStage(attributes, positionClip); + #endif + + #ifdef HAS_POINT_CLOUD_SHOW_STYLE + float show = pointCloudShowStylingStage(attributes, metadata); + #else + float show = 1.0; + #endif + + #ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING + show *= pointCloudBackFaceCullingStage(); + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + v_pointCloudColor = pointCloudColorStylingStage(attributes, metadata); + #endif + + #ifdef PRIMITIVE_TYPE_POINTS + #ifdef HAS_CUSTOM_VERTEX_SHADER + gl_PointSize = vsOutput.pointSize; + #elif defined(HAS_POINT_CLOUD_POINT_SIZE_STYLE) || defined(HAS_POINT_CLOUD_ATTENUATION) + gl_PointSize = pointCloudPointSizeStylingStage(attributes, metadata); + #else + gl_PointSize = 1.0; + #endif + + gl_PointSize *= show; + #endif + + gl_Position = show * positionClip; +} +`;function A6(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._command=t,this._model=i,this._runtimePrimitive=n.runtimePrimitive,this._modelMatrix=t.modelMatrix,this._boundingVolume=t.boundingVolume,this._cullFace=t.renderState.cull.face;let r=i.classificationType;this._classificationType=r,this._classifiesTerrain=r!==kn.CESIUM_3D_TILE,this._classifies3DTiles=r!==kn.TERRAIN,this._useDebugWireframe=i._enableDebugWireframe&&i.debugWireframe,this._pickId=n.pickId,this._commandListTerrain=[],this._commandList3DTiles=[],this._commandListIgnoreShow=[],this._commandListDebugWireframe=[],this._commandListTerrainPicking=[],this._commandList3DTilesPicking=[],yVe(this)}function pVe(e){return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:e,frontOperation:{fail:mt.KEEP,zFail:mt.DECREMENT_WRAP,zPass:mt.KEEP},backFunction:e,backOperation:{fail:mt.KEEP,zFail:mt.INCREMENT_WRAP,zPass:mt.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:Wa.LESS_OR_EQUAL},depthMask:!1}}var _Ve={stencilTest:{enabled:!0,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},backFunction:zn.NOT_EQUAL,backOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},gVe={stencilTest:{enabled:!0,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},backFunction:zn.NOT_EQUAL,backOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1},are=[];function yVe(e){let t=e._command,n=are;if(e._useDebugWireframe){t.pass=be.OPAQUE,n.length=0,n.push(t),e._commandListDebugWireframe=G1(e,n,e._commandListDebugWireframe);let o=e._commandListDebugWireframe,s=o.length;for(let a=0;a<s;a++){let c=o[a];c.count*=2,c.offset*=2}return}let r=e.model.allowPicking;if(e._classifiesTerrain){let o=be.TERRAIN_CLASSIFICATION,s=y6(t,o),a=ore(t,o);n.length=0,n.push(s,a),e._commandListTerrain=G1(e,n,e._commandListTerrain),r&&(e._commandListTerrainPicking=sre(e,n,e._commandListTerrainPicking))}if(e._classifies3DTiles){let o=be.CESIUM_3D_TILE_CLASSIFICATION,s=y6(t,o),a=ore(t,o);n.length=0,n.push(s,a),e._commandList3DTiles=G1(e,n,e._commandList3DTiles),r&&(e._commandList3DTilesPicking=sre(e,n,e._commandList3DTilesPicking))}}function G1(e,t,n){let i=e._runtimePrimitive,r=i.batchLengths,o=i.batchOffsets,s=r.length,a=t.length;for(let c=0;c<s;c++){let l=r[c],f=o[c];for(let d=0;d<a;d++){let p=t[d],g=nt.shallowClone(p);g.count=l,g.offset=f,n.push(g)}}return n}function y6(e,t){let n=nt.shallowClone(e);n.cull=!1,n.pass=t;let i=t===be.TERRAIN_CLASSIFICATION?zn.ALWAYS:zn.EQUAL,r=pVe(i);return n.renderState=Ve.fromCache(r),n}function ore(e,t){let n=nt.shallowClone(e);return n.cull=!1,n.pass=t,n.renderState=Ve.fromCache(_Ve),n}var AVe=[];function sre(e,t,n){let i=Ve.fromCache(gVe),r=t[0],o=t[1],s=nt.shallowClone(r);s.cull=!0,s.pickOnly=!0;let a=nt.shallowClone(o);a.cull=!0,a.pickOnly=!0,a.renderState=i,a.pickId=e._pickId;let c=AVe;return c.length=0,c.push(s,a),G1(e,c,n)}Object.defineProperties(A6.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},batchLengths:{get:function(){return this._runtimePrimitive.batchLengths}},batchOffsets:{get:function(){return this._runtimePrimitive.batchOffsets}},model:{get:function(){return this._model}},classificationType:{get:function(){return this._classificationType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=N.clone(e,this._modelMatrix);let t=this._runtimePrimitive.boundingSphere;this._boundingVolume=ae.transform(t,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace=e}}});A6.prototype.pushCommands=function(e,t){let n=e.passes;if(n.render){if(this._useDebugWireframe){t.push.apply(t,this._commandListDebugWireframe);return}if(this._classifiesTerrain&&t.push.apply(t,this._commandListTerrain),this._classifies3DTiles&&t.push.apply(t,this._commandList3DTiles),e.invertClassification&&this._classifies3DTiles){if(this._commandListIgnoreShow.length===0){let r=be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,o=y6(this._command,r),s=are;s.length=0,s.push(o),this._commandListIgnoreShow=G1(this,s,this._commandListIgnoreShow)}t.push.apply(t,this._commandListIgnoreShow)}}return n.pick&&(this._classifiesTerrain&&t.push.apply(t,this._commandListTerrainPicking),this._classifies3DTiles&&t.push.apply(t,this._commandList3DTilesPicking)),t};var W1=A6;function rV(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._model=i;let r=n.runtimePrimitive;this._runtimePrimitive=r;let o=t.pass===be.TRANSLUCENT,a=!r.primitive.material.doubleSided&&!o,c=n.hasSilhouette,l=!o&&!c,f=n.hasSkipLevelOfDetail&&!o,d=c;this._command=t,this._modelMatrix=N.clone(t.modelMatrix),this._boundingVolume=ae.clone(t.boundingVolume),this._modelMatrix2D=new N,this._boundingVolume2D=new ae,this._modelMatrix2DDirty=!1,this._backFaceCulling=t.renderState.cull.enabled,this._cullFace=t.renderState.cull.face,this._shadows=i.shadows,this._debugShowBoundingVolume=t.debugShowBoundingVolume,this._usesBackFaceCulling=a,this._needsTranslucentCommand=l,this._needsSkipLevelOfDetailCommands=f,this._needsSilhouetteCommands=d,this._originalCommand=void 0,this._translucentCommand=void 0,this._skipLodBackfaceCommand=void 0,this._skipLodStencilCommand=void 0,this._silhouetteModelCommand=void 0,this._silhouetteColorCommand=void 0,this._derivedCommands=[],this._has2DCommands=!1,xVe(this)}function Gp(e){this.command=e.command,this.updateShadows=e.updateShadows,this.updateBackFaceCulling=e.updateBackFaceCulling,this.updateCullFace=e.updateCullFace,this.updateDebugShowBoundingVolume=e.updateDebugShowBoundingVolume,this.is2D=y(e.is2D,!1),this.derivedCommand2D=void 0}Gp.clone=function(e){return new Gp({command:e.command,updateShadows:e.updateShadows,updateBackFaceCulling:e.updateBackFaceCulling,updateCullFace:e.updateCullFace,updateDebugShowBoundingVolume:e.updateDebugShowBoundingVolume,is2D:e.is2D,derivedCommand2D:e.derivedCommand2D})};function xVe(e){let t=e._command;t.modelMatrix=e._modelMatrix,t.boundingVolume=e._boundingVolume;let n=e._model,i=e._usesBackFaceCulling,r=e._derivedCommands;e._originalCommand=new Gp({command:t,updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0,is2D:!1}),r.push(e._originalCommand),e._needsTranslucentCommand&&(e._translucentCommand=new Gp({command:wVe(t),updateShadows:!0,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!0}),r.push(e._translucentCommand)),e._needsSkipLevelOfDetailCommands&&(e._skipLodBackfaceCommand=new Gp({command:RVe(t),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:i,updateDebugShowBoundingVolume:!1}),e._skipLodStencilCommand=new Gp({command:BVe(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),r.push(e._skipLodBackfaceCommand),r.push(e._skipLodStencilCommand)),e._needsSilhouetteCommands&&(e._silhouetteModelCommand=new Gp({command:DVe(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),e._silhouetteColorCommand=new Gp({command:IVe(t,n),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!1}),r.push(e._silhouetteModelCommand),r.push(e._silhouetteColorCommand))}Object.defineProperties(rV.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},model:{get:function(){return this._model}},primitiveType:{get:function(){return this._command.primitiveType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=N.clone(e,this._modelMatrix),this._modelMatrix2DDirty=!0,this._boundingVolume=ae.transform(this.runtimePrimitive.boundingSphere,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},shadows:{get:function(){return this._shadows},set:function(e){this._shadows=e,TVe(this)}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){this._backFaceCulling!==e&&(this._backFaceCulling=e,EVe(this))}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace!==e&&(this._cullFace=e,bVe(this))}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolume=e,SVe(this))}}});function CVe(e,t){let n=e._modelMatrix;e._modelMatrix2D=N.clone(n,e._modelMatrix2D),e._modelMatrix2D[13]-=P.sign(n[13])*2*P.PI*t.mapProjection.ellipsoid.maximumRadius,e._boundingVolume2D=ae.transform(e.runtimePrimitive.boundingSphere,e._modelMatrix2D,e._boundingVolume2D)}function TVe(e){let t=e.shadows,n=yn.castShadows(t),i=yn.receiveShadows(t),r=e._derivedCommands;for(let o=0;o<r.length;++o){let s=r[o];if(s.updateShadows){let a=s.command;a.castShadows=n,a.receiveShadows=i}}}function EVe(e){let t=e.backFaceCulling,n=e._derivedCommands;for(let i=0;i<n.length;++i){let r=n[i];if(r.updateBackFaceCulling){let o=r.command,s=We(o.renderState,!0);s.cull.enabled=t,o.renderState=Ve.fromCache(s)}}}function bVe(e){let t=e.cullFace,n=e._derivedCommands;for(let i=0;i<n.length;++i){let r=n[i];if(r.updateCullFace){let o=r.command,s=We(o.renderState,!0);s.cull.face=t,o.renderState=Ve.fromCache(s)}}}function SVe(e){let t=e.debugShowBoundingVolume,n=e._derivedCommands;for(let i=0;i<n.length;++i){let r=n[i];if(r.updateDebugShowBoundingVolume){let o=r.command;o.debugShowBoundingVolume=t}}}rV.prototype.pushCommands=function(e,t){let n=cre(this,e);n&&!this._has2DCommands&&(vVe(this),this._has2DCommands=!0,this._modelMatrix2DDirty=!0),this._modelMatrix2DDirty&&(CVe(this,e),this._modelMatrix2DDirty=!1);let i=this.model.styleCommandsNeeded;if(!(this._needsTranslucentCommand&&u(i)&&(i!==Rd.ALL_OPAQUE&&rE(t,this._translucentCommand,n),i===Rd.ALL_TRANSLUCENT))){if(this._needsSkipLevelOfDetailCommands){let{tileset:r,tile:o}=this._model.content;if(r.hasMixedContent){o._finalResolution||rE(r._backfaceCommands,this._skipLodBackfaceCommand,n),PVe(this,o,n),rE(t,this._skipLodStencilCommand,n);return}}if(this._needsSilhouetteCommands){rE(t,this._silhouetteModelCommand,n);return}return rE(t,this._originalCommand,n),t}};rV.prototype.pushSilhouetteCommands=function(e,t){let n=cre(this,e);return rE(t,this._silhouetteColorCommand,n),t};function rE(e,t,n){e.push(t.command),n&&e.push(t.derivedCommand2D.command)}function cre(e,t){if(t.mode!==ne.SCENE2D||e.model._projectTo2D)return!1;let i=e.model.sceneGraph._boundingSphere2D,r=i.center.y-i.radius,o=i.center.y+i.radius,s=t.mapProjection.ellipsoid.maximumRadius*P.PI;return r<s&&o>s||r<-s&&o>-s}function iE(e,t){if(!u(t))return;let n=Gp.clone(t),i=nt.shallowClone(t.command);return i.modelMatrix=e._modelMatrix2D,i.boundingVolume=e._boundingVolume2D,n.command=i,n.updateShadows=!1,n.is2D=!0,t.derivedCommand2D=n,e._derivedCommands.push(n),n}function vVe(e){iE(e,e._originalCommand),iE(e,e._translucentCommand),iE(e,e._skipLodBackfaceCommand),iE(e,e._skipLodStencilCommand),iE(e,e._silhouetteModelCommand),iE(e,e._silhouetteColorCommand)}function wVe(e){let t=nt.shallowClone(e);t.pass=be.TRANSLUCENT;let n=We(e.renderState,!0);return n.cull.enabled=!1,n.depthMask=!1,n.blending=un.ALPHA_BLEND,t.renderState=Ve.fromCache(n),t}function DVe(e,t){let n=t._silhouetteId%255,i=nt.shallowClone(e),r=We(e.renderState,!0);return r.stencilTest={enabled:!0,frontFunction:te.ALWAYS,backFunction:te.ALWAYS,reference:n,mask:-1,frontOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.REPLACE},backOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.REPLACE}},t.isInvisible()&&(r.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),i.renderState=Ve.fromCache(r),i}function IVe(e,t){let n=t._silhouetteId%255,i=nt.shallowClone(e),r=We(e.renderState,!0);r.cull.enabled=!1,(e.pass===be.TRANSLUCENT||t.silhouetteColor.alpha<1)&&(i.pass=be.TRANSLUCENT,r.depthMask=!1,r.blending=un.ALPHA_BLEND),r.stencilTest={enabled:!0,frontFunction:te.NOTEQUAL,backFunction:te.NOTEQUAL,reference:n,mask:-1,frontOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.KEEP},backOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.KEEP}};let s=We(e.uniformMap);return s.model_silhouettePass=function(){return!0},i.renderState=Ve.fromCache(r),i.uniformMap=s,i.castShadows=!1,i.receiveShadows=!1,i}function PVe(e,t,n){let i=e._skipLodStencilCommand,r=i.command,o=t._selectionDepth,s=OVe(r);if(o!==s){let a=MVe(o),c=We(r.renderState,!0);c.stencilTest.reference=a,r.renderState=Ve.fromCache(c),n&&(i.derivedCommand2D.renderState=c)}}function OVe(e){return(e.renderState.stencilTest.reference&Ft.SKIP_LOD_MASK)>>>Ft.SKIP_LOD_BIT_SHIFT}function MVe(e){return Ft.CESIUM_3D_TILE_MASK|e<<Ft.SKIP_LOD_BIT_SHIFT}function RVe(e){let t=nt.shallowClone(e),n=We(e.renderState,!0);n.cull.enabled=!0,n.cull.face=gi.FRONT,n.colorMask={red:!1,green:!1,blue:!1,alpha:!1},n.polygonOffset={enabled:!0,factor:5,units:5};let i=We(t.uniformMap),r=new H(5,5);return i.u_polygonOffset=function(){return r},t.renderState=Ve.fromCache(n),t.uniformMap=i,t.castShadows=!1,t.receiveShadows=!1,t}function BVe(e){let t=nt.shallowClone(e),n=We(e.renderState,!0),{stencilTest:i}=n;return i.enabled=!0,i.mask=Ft.SKIP_LOD_MASK,i.reference=Ft.CESIUM_3D_TILE_MASK,i.frontFunction=zn.GREATER_OR_EQUAL,i.frontOperation.zPass=mt.REPLACE,i.backFunction=zn.GREATER_OR_EQUAL,i.backOperation.zPass=mt.REPLACE,n.stencilMask=Ft.CESIUM_3D_TILE_MASK|Ft.SKIP_LOD_MASK,t.renderState=Ve.fromCache(n),t}var j1=rV;function LVe(e,t){let n=e.shaderBuilder;n.addVertexLines(H1),n.addFragmentLines(z1);let i=NVe(e),r=new oi({context:t.context,indexBuffer:i,attributes:e.attributes}),o=e.model;o._pipelineResources.push(r);let s=n.buildShaderProgram(t.context);o._pipelineResources.push(s);let a=e.alphaOptions.pass,c=o.sceneGraph,l=t.mode===ne.SCENE3D,f,d;if(!l&&!t.scene3DOnly&&o._projectTo2D)f=N.multiplyTransformation(c._computedModelMatrix,e.runtimeNode.computedTransform,new N),d=e.runtimePrimitive.boundingSphere2D;else{let T=l?c._computedModelMatrix:c._computedModelMatrix2D;f=N.multiplyTransformation(T,e.runtimeNode.computedTransform,new N),d=ae.transform(e.boundingSphere,f,e.boundingSphere)}let p=We(Ve.fromCache(e.renderStateOptions),!0);p.cull.face=Jt.getCullFace(f,e.primitiveType),p=Ve.fromCache(p);let g=u(o.classificationType),m=g?!1:yn.castShadows(o.shadows),A=g?!1:yn.receiveShadows(o.shadows),x=g?void 0:e.pickId,C=new nt({boundingVolume:d,modelMatrix:f,uniformMap:e.uniformMap,renderState:p,vertexArray:r,shaderProgram:s,cull:o.cull,pass:a,count:e.count,owner:o,pickId:x,instanceCount:e.instanceCount,primitiveType:e.primitiveType,debugShowBoundingVolume:o.debugShowBoundingVolume,castShadows:m,receiveShadows:A});return g?new W1({primitiveRenderResources:e,command:C}):new j1({primitiveRenderResources:e,command:C})}function NVe(e){let t=e.wireframeIndexBuffer;if(u(t))return t;let n=e.indices;if(u(n))return n.buffer}var q1=LVe;var lre={name:"TilesetPipelineStage"};lre.process=function(e,t,n){if(t.hasSkipLevelOfDetail(n)){e.shaderBuilder.addDefine("POLYGON_OFFSET",void 0,Te.FRAGMENT);let o={u_polygonOffset:function(){return H.ZERO}};e.uniformMap=_t(o,e.uniformMap),e.hasSkipLevelOfDetail=!0}let i=e.renderStateOptions;i.stencilTest=Ft.setCesium3DTileBit(),i.stencilMask=Ft.CESIUM_3D_TILE_MASK};var Y1=lre;var X1=`vec3 proceduralIBL( + vec3 positionEC, + vec3 normalEC, + vec3 lightDirectionEC, + vec3 lightColorHdr, + czm_pbrParameters pbrParameters +) { + vec3 v = -positionEC; + vec3 positionWC = vec3(czm_inverseView * vec4(positionEC, 1.0)); + vec3 vWC = -normalize(positionWC); + vec3 l = normalize(lightDirectionEC); + vec3 n = normalEC; + vec3 r = normalize(czm_inverseViewRotation * normalize(reflect(v, n))); + + float NdotL = clamp(dot(n, l), 0.001, 1.0); + float NdotV = abs(dot(n, v)) + 0.001; + + // Figure out if the reflection vector hits the ellipsoid + float vertexRadius = length(positionWC); + float horizonDotNadir = 1.0 - min(1.0, czm_ellipsoidRadii.x / vertexRadius); + float reflectionDotNadir = dot(r, normalize(positionWC)); + // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z. + r.x = -r.x; + r = -normalize(czm_temeToPseudoFixed * r); + r.x = -r.x; + + vec3 diffuseColor = pbrParameters.diffuseColor; + float roughness = pbrParameters.roughness; + vec3 specularColor = pbrParameters.f0; + + float inverseRoughness = 1.04 - roughness; + inverseRoughness *= inverseRoughness; + vec3 sceneSkyBox = czm_textureCube(czm_environmentMap, r).rgb * inverseRoughness; + + float atmosphereHeight = 0.05; + float blendRegionSize = 0.1 * ((1.0 - inverseRoughness) * 8.0 + 1.1 - horizonDotNadir); + float blendRegionOffset = roughness * -1.0; + float farAboveHorizon = clamp(horizonDotNadir - blendRegionSize * 0.5 + blendRegionOffset, 1.0e-10 - blendRegionSize, 0.99999); + float aroundHorizon = clamp(horizonDotNadir + blendRegionSize * 0.5, 1.0e-10 - blendRegionSize, 0.99999); + float farBelowHorizon = clamp(horizonDotNadir + blendRegionSize * 1.5, 1.0e-10 - blendRegionSize, 0.99999); + float smoothstepHeight = smoothstep(0.0, atmosphereHeight, horizonDotNadir); + vec3 belowHorizonColor = mix(vec3(0.1, 0.15, 0.25), vec3(0.4, 0.7, 0.9), smoothstepHeight); + vec3 nadirColor = belowHorizonColor * 0.5; + vec3 aboveHorizonColor = mix(vec3(0.9, 1.0, 1.2), belowHorizonColor, roughness * 0.5); + vec3 blueSkyColor = mix(vec3(0.18, 0.26, 0.48), aboveHorizonColor, reflectionDotNadir * inverseRoughness * 0.5 + 0.75); + vec3 zenithColor = mix(blueSkyColor, sceneSkyBox, smoothstepHeight); + vec3 blueSkyDiffuseColor = vec3(0.7, 0.85, 0.9); + float diffuseIrradianceFromEarth = (1.0 - horizonDotNadir) * (reflectionDotNadir * 0.25 + 0.75) * smoothstepHeight; + float diffuseIrradianceFromSky = (1.0 - smoothstepHeight) * (1.0 - (reflectionDotNadir * 0.25 + 0.25)); + vec3 diffuseIrradiance = blueSkyDiffuseColor * clamp(diffuseIrradianceFromEarth + diffuseIrradianceFromSky, 0.0, 1.0); + float notDistantRough = (1.0 - horizonDotNadir * roughness * 0.8); + vec3 specularIrradiance = mix(zenithColor, aboveHorizonColor, smoothstep(farAboveHorizon, aroundHorizon, reflectionDotNadir) * notDistantRough); + specularIrradiance = mix(specularIrradiance, belowHorizonColor, smoothstep(aroundHorizon, farBelowHorizon, reflectionDotNadir) * inverseRoughness); + specularIrradiance = mix(specularIrradiance, nadirColor, smoothstep(farBelowHorizon, 1.0, reflectionDotNadir) * inverseRoughness); + + // Luminance model from page 40 of http://silviojemma.com/public/papers/lighting/spherical-harmonic-lighting.pdf + #ifdef USE_SUN_LUMINANCE + // Angle between sun and zenith + float LdotZenith = clamp(dot(normalize(czm_inverseViewRotation * l), vWC), 0.001, 1.0); + float S = acos(LdotZenith); + // Angle between zenith and current pixel + float NdotZenith = clamp(dot(normalize(czm_inverseViewRotation * n), vWC), 0.001, 1.0); + // Angle between sun and current pixel + float gamma = acos(NdotL); + float numerator = ((0.91 + 10.0 * exp(-3.0 * gamma) + 0.45 * pow(NdotL, 2.0)) * (1.0 - exp(-0.32 / NdotZenith))); + float denominator = (0.91 + 10.0 * exp(-3.0 * S) + 0.45 * pow(LdotZenith,2.0)) * (1.0 - exp(-0.32)); + float luminance = model_luminanceAtZenith * (numerator / denominator); + #endif + + vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; + vec3 iblColor = (diffuseIrradiance * diffuseColor * model_iblFactor.x) + (specularIrradiance * czm_srgbToLinear(specularColor * brdfLut.x + brdfLut.y) * model_iblFactor.y); + float maximumComponent = max(max(lightColorHdr.x, lightColorHdr.y), lightColorHdr.z); + vec3 lightColor = lightColorHdr / max(maximumComponent, 1.0); + iblColor *= lightColor; + + #ifdef USE_SUN_LUMINANCE + iblColor *= luminance; + #endif + + return iblColor; +} + +#if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) +vec3 textureIBL( + vec3 positionEC, + vec3 normalEC, + vec3 lightDirectionEC, + czm_pbrParameters pbrParameters +) { + vec3 diffuseColor = pbrParameters.diffuseColor; + float roughness = pbrParameters.roughness; + vec3 specularColor = pbrParameters.f0; + + vec3 v = -positionEC; + vec3 n = normalEC; + vec3 l = normalize(lightDirectionEC); + vec3 h = normalize(v + l); + + float NdotV = abs(dot(n, v)) + 0.001; + float VdotH = clamp(dot(v, h), 0.0, 1.0); + + const mat3 yUpToZUp = mat3( + -1.0, 0.0, 0.0, + 0.0, 0.0, -1.0, + 0.0, 1.0, 0.0 + ); + vec3 cubeDir = normalize(yUpToZUp * model_iblReferenceFrameMatrix * normalize(reflect(-v, n))); + + #ifdef DIFFUSE_IBL + #ifdef CUSTOM_SPHERICAL_HARMONICS + vec3 diffuseIrradiance = czm_sphericalHarmonics(cubeDir, model_sphericalHarmonicCoefficients); + #else + vec3 diffuseIrradiance = czm_sphericalHarmonics(cubeDir, czm_sphericalHarmonicCoefficients); + #endif + #else + vec3 diffuseIrradiance = vec3(0.0); + #endif + + #ifdef SPECULAR_IBL + vec3 r0 = specularColor.rgb; + float reflectance = max(max(r0.r, r0.g), r0.b); + vec3 r90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0)); + vec3 F = fresnelSchlick2(r0, r90, VdotH); + + vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; + #ifdef CUSTOM_SPECULAR_IBL + vec3 specularIBL = czm_sampleOctahedralProjection(model_specularEnvironmentMaps, model_specularEnvironmentMapsSize, cubeDir, roughness * model_specularEnvironmentMapsMaximumLOD, model_specularEnvironmentMapsMaximumLOD); + #else + vec3 specularIBL = czm_sampleOctahedralProjection(czm_specularEnvironmentMaps, czm_specularEnvironmentMapSize, cubeDir, roughness * czm_specularEnvironmentMapsMaximumLOD, czm_specularEnvironmentMapsMaximumLOD); + #endif + specularIBL *= F * brdfLut.x + brdfLut.y; + #else + vec3 specularIBL = vec3(0.0); + #endif + + return diffuseColor * diffuseIrradiance + specularColor * specularIBL; +} +#endif + +vec3 imageBasedLightingStage( + vec3 positionEC, + vec3 normalEC, + vec3 lightDirectionEC, + vec3 lightColorHdr, + czm_pbrParameters pbrParameters +) { + #if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) + // Environment maps were provided, use them for IBL + return textureIBL( + positionEC, + normalEC, + lightDirectionEC, + pbrParameters + ); + #else + // Use the procedural IBL if there are no environment maps + return proceduralIBL( + positionEC, + normalEC, + lightDirectionEC, + lightColorHdr, + pbrParameters + ); + #endif +}`;var ure={name:"ImageBasedLightingPipelineStage"};ure.process=function(e,t,n){let i=t.imageBasedLighting,r=e.shaderBuilder;r.addDefine("USE_IBL_LIGHTING",void 0,Te.FRAGMENT),r.addUniform("vec2","model_iblFactor",Te.FRAGMENT),xd.isSupported(n.context)&&((i.useSphericalHarmonics||i.useSpecularEnvironmentMaps||i.enabled)&&r.addUniform("mat3","model_iblReferenceFrameMatrix",Te.FRAGMENT),u(i.sphericalHarmonicCoefficients)?(r.addDefine("DIFFUSE_IBL",void 0,Te.FRAGMENT),r.addDefine("CUSTOM_SPHERICAL_HARMONICS",void 0,Te.FRAGMENT),r.addUniform("vec3","model_sphericalHarmonicCoefficients[9]",Te.FRAGMENT)):i.useDefaultSphericalHarmonics&&r.addDefine("DIFFUSE_IBL",void 0,Te.FRAGMENT),u(i.specularEnvironmentMapAtlas)&&i.specularEnvironmentMapAtlas.ready?(r.addDefine("SPECULAR_IBL",void 0,Te.FRAGMENT),r.addDefine("CUSTOM_SPECULAR_IBL",void 0,Te.FRAGMENT),r.addUniform("sampler2D","model_specularEnvironmentMaps",Te.FRAGMENT),r.addUniform("vec2","model_specularEnvironmentMapsSize",Te.FRAGMENT),r.addUniform("float","model_specularEnvironmentMapsMaximumLOD",Te.FRAGMENT)):t.useDefaultSpecularMaps&&r.addDefine("SPECULAR_IBL",void 0,Te.FRAGMENT)),u(i.luminanceAtZenith)&&(r.addDefine("USE_SUN_LUMINANCE",void 0,Te.FRAGMENT),r.addUniform("float","model_luminanceAtZenith",Te.FRAGMENT)),r.addFragmentLines(X1);let o={model_iblFactor:function(){return i.imageBasedLightingFactor},model_iblReferenceFrameMatrix:function(){return t._iblReferenceFrameMatrix},model_luminanceAtZenith:function(){return i.luminanceAtZenith},model_sphericalHarmonicCoefficients:function(){return i.sphericalHarmonicCoefficients},model_specularEnvironmentMaps:function(){return i.specularEnvironmentMapAtlas.texture},model_specularEnvironmentMapsSize:function(){return i.specularEnvironmentMapAtlas.texture.dimensions},model_specularEnvironmentMapsMaximumLOD:function(){return i.specularEnvironmentMapAtlas.maximumMipmapLevel}};e.uniformMap=_t(o,e.uniformMap)};var K1=ure;var FVe=P.EPSILON16;function C6(e){e=y(e,y.EMPTY_OBJECT);let t=e.stage,n=e.runtimeArticulation;this._stage=t,this._runtimeArticulation=n,this._name=t.name,this._type=t.type,this._minimumValue=t.minimumValue,this._maximumValue=t.maximumValue,this._currentValue=t.initialValue}Object.defineProperties(C6.prototype,{stage:{get:function(){return this._stage}},runtimeArticulation:{get:function(){return this._runtimeArticulation}},name:{get:function(){return this._name}},type:{get:function(){return this._type}},minimumValue:{get:function(){return this._minimumValue}},maximumValue:{get:function(){return this._maximumValue}},currentValue:{get:function(){return this._currentValue},set:function(e){e=P.clamp(e,this.minimumValue,this.maximumValue),P.equalsEpsilon(this._currentValue,e,FVe)||(this._currentValue=e,this.runtimeArticulation._dirty=!0)}}});var UVe=new h,x6=new Q;C6.prototype.applyStageToMatrix=function(e){let t=this.type,n=this.currentValue,i=UVe,r;switch(t){case Qa.XROTATE:r=Q.fromRotationX(P.toRadians(n),x6),e=N.multiplyByMatrix3(e,r,e);break;case Qa.YROTATE:r=Q.fromRotationY(P.toRadians(n),x6),e=N.multiplyByMatrix3(e,r,e);break;case Qa.ZROTATE:r=Q.fromRotationZ(P.toRadians(n),x6),e=N.multiplyByMatrix3(e,r,e);break;case Qa.XTRANSLATE:i.x=n,i.y=0,i.z=0,e=N.multiplyByTranslation(e,i,e);break;case Qa.YTRANSLATE:i.x=0,i.y=n,i.z=0,e=N.multiplyByTranslation(e,i,e);break;case Qa.ZTRANSLATE:i.x=0,i.y=0,i.z=n,e=N.multiplyByTranslation(e,i,e);break;case Qa.XSCALE:i.x=n,i.y=1,i.z=1,e=N.multiplyByScale(e,i,e);break;case Qa.YSCALE:i.x=1,i.y=n,i.z=1,e=N.multiplyByScale(e,i,e);break;case Qa.ZSCALE:i.x=1,i.y=1,i.z=n,e=N.multiplyByScale(e,i,e);break;case Qa.UNIFORMSCALE:e=N.multiplyByUniformScale(e,n,e);break;default:break}return e};var J1=C6;function oV(e){e=y(e,y.EMPTY_OBJECT);let t=e.articulation,n=e.sceneGraph;this._articulation=t,this._sceneGraph=n,this._name=t.name,this._runtimeStages=[],this._runtimeStagesByName={},this._runtimeNodes=[],this._dirty=!0,VVe(this)}Object.defineProperties(oV.prototype,{articulation:{get:function(){return this._articulation}},sceneGraph:{get:function(){return this._sceneGraph}},name:{get:function(){return this._name}},runtimeStages:{get:function(){return this._runtimeStages}},runtimeNodes:{get:function(){return this._runtimeNodes}}});function VVe(e){let n=e.articulation.stages,i=n.length,r=e._runtimeStages,o=e._runtimeStagesByName;for(let s=0;s<i;s++){let a=n[s],c=new J1({stage:a,runtimeArticulation:e});r.push(c);let l=a.name;o[l]=c}}oV.prototype.setArticulationStage=function(e,t){let n=this._runtimeStagesByName[e];u(n)&&(n.currentValue=t)};var kVe=new N,zVe=new N;oV.prototype.apply=function(){if(!this._dirty)return;this._dirty=!1;let e=N.clone(N.IDENTITY,kVe),t,n=this._runtimeStages,i=n.length;for(t=0;t<i;t++)e=n[t].applyStageToMatrix(e);let r=this._runtimeNodes,o=r.length;for(t=0;t<o;t++){let s=r[t],a=N.multiplyTransformation(s.originalTransform,e,zVe);s.transform=a}};var Z1=oV;var Q1=`void modelColorStage(inout czm_modelMaterial material) +{ + material.diffuse = mix(material.diffuse, model_color.rgb, model_colorBlend); + float highlight = ceil(model_colorBlend); + material.diffuse *= mix(model_color.rgb, vec3(1.0), highlight); + material.alpha *= model_color.a; +}`;var oE={name:"ModelColorPipelineStage",COLOR_UNIFORM_NAME:"model_color",COLOR_BLEND_UNIFORM_NAME:"model_colorBlend"};oE.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_COLOR",void 0,Te.FRAGMENT),i.addFragmentLines(Q1);let r={},o=t.color;o.alpha===0&&!t.hasSilhouette(n)&&(e.renderStateOptions.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),o.alpha<1&&(e.alphaOptions.pass=be.TRANSLUCENT),i.addUniform("vec4",oE.COLOR_UNIFORM_NAME,Te.FRAGMENT),r[oE.COLOR_UNIFORM_NAME]=function(){return t.color},i.addUniform("float",oE.COLOR_BLEND_UNIFORM_NAME,Te.FRAGMENT),r[oE.COLOR_BLEND_UNIFORM_NAME]=function(){return Za.getColorBlend(t.colorBlendMode,t.colorBlendAmount)},e.uniformMap=_t(r,e.uniformMap)};var Hg=oE;var $1=`#ifdef USE_CLIPPING_PLANES_FLOAT_TEXTURE +vec4 getClippingPlane( + highp sampler2D packedClippingPlanes, + int clippingPlaneNumber, + mat4 transform +) { + int pixY = clippingPlaneNumber / CLIPPING_PLANES_TEXTURE_WIDTH; + int pixX = clippingPlaneNumber - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT); + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + vec4 plane = texture(packedClippingPlanes, vec2(u, v)); + return czm_transformPlane(plane, transform); +} +#else +// Handle uint8 clipping texture instead +vec4 getClippingPlane( + highp sampler2D packedClippingPlanes, + int clippingPlaneNumber, + mat4 transform +) { + int clippingPlaneStartIndex = clippingPlaneNumber * 2; // clipping planes are two pixels each + int pixY = clippingPlaneStartIndex / CLIPPING_PLANES_TEXTURE_WIDTH; + int pixX = clippingPlaneStartIndex - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT); + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; + vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); + vec4 plane; + plane.xyz = czm_octDecode(oct, 65535.0); + plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + pixelWidth, v))); + return czm_transformPlane(plane, transform); +} +#endif + +float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) { + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float pixelWidth = czm_metersPerPixel(position); + + #ifdef UNION_CLIPPING_REGIONS + float clipAmount; // For union planes, we want to get the min distance. So we set the initial value to the first plane distance in the loop below. + #else + float clipAmount = 0.0; + bool clipped = true; + #endif + + for (int i = 0; i < CLIPPING_PLANES_LENGTH; ++i) { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + + #ifdef UNION_CLIPPING_REGIONS + clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); + if (amount <= 0.0) { + discard; + } + #else + clipAmount = max(amount, clipAmount); + clipped = clipped && (amount <= 0.0); + #endif + } + + #ifndef UNION_CLIPPING_REGIONS + if (clipped) { + discard; + } + #endif + + return clipAmount; +} + +void modelClippingPlanesStage(inout vec4 color) +{ + float clipDistance = clip(gl_FragCoord, model_clippingPlanes, model_clippingPlanesMatrix); + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = model_clippingPlanesEdgeStyle.rgb; + float clippingPlanesEdgeWidth = model_clippingPlanesEdgeStyle.a; + + if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) { + color = clippingPlanesEdgeColor; + } +} +`;var fre={name:"ModelClippingPlanesPipelineStage"},HVe=new H;fre.process=function(e,t,n){let i=t.clippingPlanes,r=n.context,o=e.shaderBuilder;o.addDefine("HAS_CLIPPING_PLANES",void 0,Te.FRAGMENT),o.addDefine("CLIPPING_PLANES_LENGTH",i.length,Te.FRAGMENT),i.unionClippingRegions&&o.addDefine("UNION_CLIPPING_REGIONS",void 0,Te.FRAGMENT),ls.useFloatTexture(r)&&o.addDefine("USE_CLIPPING_PLANES_FLOAT_TEXTURE",void 0,Te.FRAGMENT);let s=ls.getTextureResolution(i,r,HVe);o.addDefine("CLIPPING_PLANES_TEXTURE_WIDTH",s.x,Te.FRAGMENT),o.addDefine("CLIPPING_PLANES_TEXTURE_HEIGHT",s.y,Te.FRAGMENT),o.addUniform("sampler2D","model_clippingPlanes",Te.FRAGMENT),o.addUniform("vec4","model_clippingPlanesEdgeStyle",Te.FRAGMENT),o.addUniform("mat4","model_clippingPlanesMatrix",Te.FRAGMENT),o.addFragmentLines($1);let a={model_clippingPlanes:function(){return i.texture},model_clippingPlanesEdgeStyle:function(){let c=z.clone(i.edgeColor);return c.alpha=i.edgeWidth,c},model_clippingPlanesMatrix:function(){return t._clippingPlanesMatrix}};e.uniformMap=_t(a,e.uniformMap)};var eO=fre;function dre(e,t){this._model=e,this._runtimeNode=t}Object.defineProperties(dre.prototype,{name:{get:function(){return this._runtimeNode._name}},id:{get:function(){return this._runtimeNode._id}},show:{get:function(){return this._runtimeNode.show},set:function(e){this._runtimeNode.show=e}},matrix:{get:function(){return this._runtimeNode.transform},set:function(e){u(e)?(this._runtimeNode.transform=e,this._runtimeNode.userAnimated=!0,this._model._userAnimationDirty=!0):(this._runtimeNode.transform=this.originalMatrix,this._runtimeNode.userAnimated=!1)}},originalMatrix:{get:function(){return this._runtimeNode.originalTransform}}});var tO=dre;var nO=`mat4 getInstancingTransform() +{ + mat4 instancingTransform; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform = mat4( + a_instancingTransformRow0.x, a_instancingTransformRow1.x, a_instancingTransformRow2.x, 0.0, // Column 1 + a_instancingTransformRow0.y, a_instancingTransformRow1.y, a_instancingTransformRow2.y, 0.0, // Column 2 + a_instancingTransformRow0.z, a_instancingTransformRow1.z, a_instancingTransformRow2.z, 0.0, // Column 3 + a_instancingTransformRow0.w, a_instancingTransformRow1.w, a_instancingTransformRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation = a_instanceTranslation; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation.x, translation.y, translation.z, 1.0 + ); + #endif + + return instancingTransform; +} + +#ifdef USE_2D_INSTANCING +mat4 getInstancingTransform2D() +{ + mat4 instancingTransform2D; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform2D = mat4( + a_instancingTransform2DRow0.x, a_instancingTransform2DRow1.x, a_instancingTransform2DRow2.x, 0.0, // Column 1 + a_instancingTransform2DRow0.y, a_instancingTransform2DRow1.y, a_instancingTransform2DRow2.y, 0.0, // Column 2 + a_instancingTransform2DRow0.z, a_instancingTransform2DRow1.z, a_instancingTransform2DRow2.z, 0.0, // Column 3 + a_instancingTransform2DRow0.w, a_instancingTransform2DRow1.w, a_instancingTransform2DRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation2D = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation2D = a_instanceTranslation2D; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform2D = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation2D.x, translation2D.y, translation2D.z, 1.0 + ); + #endif + + return instancingTransform2D; +} +#endif +`;var iO=`void instancingStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + attributes.positionMC = (instancingTransform * vec4(positionMC, 1.0)).xyz; + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = (instancingTransform * vec4(normalMC, 0.0)).xyz; + #endif + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var rO=`void legacyInstancingStage( + inout ProcessedAttributes attributes, + out mat4 instanceModelView, + out mat3 instanceModelViewInverseTranspose) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + mat4 instanceModel = instancingTransform * u_instance_nodeTransform; + instanceModelView = u_instance_modifiedModelView; + instanceModelViewInverseTranspose = mat3(u_instance_modifiedModelView * instanceModel); + + attributes.positionMC = (instanceModel * vec4(positionMC, 1.0)).xyz; + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var sV=new N,GVe=new N,WVe=new N,mre={name:"InstancingPipelineStage",_getInstanceTransformsAsMatrices:Are,_transformsToTypedArray:E6};mre.process=function(e,t,n){let i=t.instances,r=i.attributes[0].count,o=e.shaderBuilder;o.addDefine("HAS_INSTANCING"),o.addVertexLines(nO);let s=e.model,a=s.sceneGraph,c=e.runtimeNode,l=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&s._projectTo2D,f=[];oke(e,n,i,f,l),cke(e,n,i,f);let d={};if(i.transformInWorldSpace?(o.addDefine("USE_LEGACY_INSTANCING",void 0,Te.VERTEX),o.addUniform("mat4","u_instance_modifiedModelView",Te.VERTEX),o.addUniform("mat4","u_instance_nodeTransform",Te.VERTEX),d.u_instance_modifiedModelView=function(){let p=N.multiplyTransformation(s.modelMatrix,a.components.transform,sV);return l?N.multiplyTransformation(n.context.uniformState.view3D,p,sV):(n.mode!==ne.SCENE3D&&(p=Mt.basisTo2D(n.mapProjection,p,sV)),N.multiplyTransformation(n.context.uniformState.view,p,sV))},d.u_instance_nodeTransform=function(){return N.multiplyTransformation(a.axisCorrectionMatrix,c.computedTransform,GVe)},o.addVertexLines(rO)):o.addVertexLines(iO),l){o.addDefine("USE_2D_INSTANCING",void 0,Te.VERTEX),o.addUniform("mat4","u_modelView2D",Te.VERTEX);let p=n.context,g=N.fromTranslation(c.instancingReferencePoint2D,new N);d.u_modelView2D=function(){return N.multiplyTransformation(p.uniformState.view,g,WVe)}}e.uniformMap=_t(d,e.uniformMap),e.instanceCount=r,e.attributes.push.apply(e.attributes,f)};var oO=new N,jVe=new h;function qVe(e,t,n,i,r){let o=N.multiplyTransformation(t,e,oO);return o=N.multiplyTransformation(o,n,oO),r=Mt.basisTo2D(i.mapProjection,o,r),r}function YVe(e,t,n,i,r){let o=N.fromTranslation(e,oO),s=N.multiplyTransformation(t,o,oO);s=N.multiplyTransformation(s,n,oO);let a=N.getTranslation(s,jVe);return r=Zi.computeActualWgs84Position(i,a,r),r}function pre(e,t,n){let i=e.model,r=i.sceneGraph;e.runtimeNode.node.instances.transformInWorldSpace?(t=N.multiplyTransformation(i.modelMatrix,r.components.transform,t),n=N.multiplyTransformation(r.axisCorrectionMatrix,e.runtimeNode.computedTransform,n)):(t=N.clone(r.computedModelMatrix,t),t=N.multiplyTransformation(t,e.runtimeNode.computedTransform,t),n=N.clone(N.IDENTITY,n))}var _re=new N,gre=new N,XVe=new N,KVe=new h;function JVe(e,t,n,i){let r=_re,o=gre;pre(t,r,o);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let l=0;l<c;l++){let f=e[l],d=qVe(f,r,o,n,XVe),p=N.getTranslation(d,KVe),g=h.subtract(p,a,p);i[l]=N.setTranslation(d,g,i[l])}return i}function ZVe(e,t,n,i){let r=_re,o=gre;pre(t,r,o);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let l=0;l<c;l++){let f=e[l],d=YVe(f,r,o,n,f);i[l]=h.subtract(d,a,i[l])}return i}var QVe=new h,$Ve=new h;function yre(e,t){let n=e.runtimeNode,i=e.model.sceneGraph.computedModelMatrix,r=N.multiplyByPoint(i,n.instancingTranslationMin,QVe),o=Zi.computeActualWgs84Position(t,r,r),s=N.multiplyByPoint(i,n.instancingTranslationMax,$Ve),a=Zi.computeActualWgs84Position(t,s,s);n.instancingReferencePoint2D=h.lerp(o,a,.5,new h)}function E6(e){let n=e.length,i=new Float32Array(n*12);for(let r=0;r<n;r++){let o=e[r],s=12*r;i[s+0]=o[0],i[s+1]=o[4],i[s+2]=o[8],i[s+3]=o[12],i[s+4]=o[1],i[s+5]=o[5],i[s+6]=o[9],i[s+7]=o[13],i[s+8]=o[2],i[s+9]=o[6],i[s+10]=o[10],i[s+11]=o[14]}return i}function eke(e){let n=e.length,i=new Float32Array(n*3);for(let r=0;r<n;r++){let o=e[r],s=3*r;i[s+0]=o[0],i[s+1]=o[4],i[s+2]=o[8]}return i}var tke=new h,nke=new Le,ike=new h;function Are(e,t,n){let i=new Array(t),r=Jt.getAttributeBySemantic(e,qo.TRANSLATION),o=Jt.getAttributeBySemantic(e,qo.ROTATION),s=Jt.getAttributeBySemantic(e,qo.SCALE),a=new h(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),c=new h(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),l=u(r),f=u(o),d=u(s),p=l?r.typedArray:new Float32Array(t*3),g=f?o.typedArray:new Float32Array(t*4);f&&o.normalized&&(g=qn.dequantize(g,o.componentDatatype,o.type,t));let m;d?m=s.typedArray:(m=new Float32Array(t*3),m.fill(1));for(let x=0;x<t;x++){let C=new h(p[x*3],p[x*3+1],p[x*3+2],tke);h.maximumByComponent(a,C,a),h.minimumByComponent(c,C,c);let T=new Le(g[x*4],g[x*4+1],g[x*4+2],f?g[x*4+3]:1,nke),E=new h(m[x*3],m[x*3+1],m[x*3+2],ike),S=N.fromTranslationQuaternionRotationScale(C,T,E,new N);i[x]=S}let A=n.runtimeNode;return A.instancingTranslationMin=c,A.instancingTranslationMax=a,l&&(r.typedArray=void 0),f&&(o.typedArray=void 0),d&&(s.typedArray=void 0),i}function rke(e,t,n){let i=new Array(t),r=e.typedArray,o=new h(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),s=new h(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);for(let c=0;c<t;c++){let l=new h(r[c*3],r[c*3+1],r[c*3+2]);i[c]=l,h.minimumByComponent(o,l,o),h.maximumByComponent(s,l,s)}let a=n.runtimeNode;return a.instancingTranslationMin=o,a.instancingTranslationMax=s,e.typedArray=void 0,i}function b6(e,t){let n=ht.createVertexBuffer({context:t.context,typedArray:e,usage:Fe.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}function oke(e,t,n,i,r){let o=Jt.getAttributeBySemantic(n,qo.ROTATION);u(o)?ske(e,n,i,t,r):ake(e,n,i,t,r)}function ske(e,t,n,i,r){let o=e.shaderBuilder,s=t.attributes[0].count,a=e.model,c=e.runtimeNode;o.addDefine("HAS_INSTANCE_MATRICES");let l="Transform",f,d=c.instancingTransformsBuffer;if(!u(d)){f=Are(t,s,e);let A=E6(f);d=b6(A,i),a._modelResources.push(d),c.instancingTransformsBuffer=d}if(hre(e,d,n,l),!r)return;let p=We(i);p.mode=ne.COLUMBUS_VIEW,yre(e,p);let g=c.instancingTransformsBuffer2D;if(!u(g)){let A=JVe(f,e,p,f),x=E6(A);g=b6(x,i),a._modelResources.push(g),c.instancingTransformsBuffer2D=g}hre(e,g,n,"Transform2D")}function ake(e,t,n,i,r){let o=e.shaderBuilder,s=e.runtimeNode,a=Jt.getAttributeBySemantic(t,qo.TRANSLATION),c=Jt.getAttributeBySemantic(t,qo.SCALE);if(u(c)){o.addDefine("HAS_INSTANCE_SCALE");let C="Scale";T6(e,c.buffer,c.byteOffset,c.byteStride,n,C)}if(!u(a))return;let l,f=a.typedArray;u(f)?l=rke(a,a.count,e):u(s.instancingTranslationMin)||(s.instancingTranslationMin=a.min,s.instancingTranslationMax=a.max),o.addDefine("HAS_INSTANCE_TRANSLATION");let d="Translation";if(T6(e,a.buffer,a.byteOffset,a.byteStride,n,d),!r)return;let p=We(i);p.mode=ne.COLUMBUS_VIEW,yre(e,p);let g=s.instancingTranslationBuffer2D;if(!u(g)){let C=ZVe(l,e,p,l),T=eke(C);g=b6(T,i),e.model._modelResources.push(g),s.instancingTranslationBuffer2D=g}T6(e,g,0,void 0,n,"Translation2D")}function hre(e,t,n,i){let o=X.getSizeInBytes(X.FLOAT),s=o*12,a=[{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:0,strideInBytes:s,instanceDivisor:1},{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:o*4,strideInBytes:s,instanceDivisor:1},{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:o*8,strideInBytes:s,instanceDivisor:1}],c=e.shaderBuilder;c.addAttribute("vec4",`a_instancing${i}Row0`),c.addAttribute("vec4",`a_instancing${i}Row1`),c.addAttribute("vec4",`a_instancing${i}Row2`),n.push.apply(n,a)}function T6(e,t,n,i,r,o){r.push({index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:3,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:n,strideInBytes:i,instanceDivisor:1}),e.shaderBuilder.addAttribute("vec3",`a_instance${o}`)}function cke(e,t,n,i){let r=n.attributes,o=e.shaderBuilder;for(let s=0;s<r.length;s++){let a=r[s];a.semantic===qo.FEATURE_ID&&(a.setIndex>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=a.setIndex+1),i.push({index:e.attributeIndex++,vertexBuffer:a.buffer,componentsPerAttribute:on.getNumberOfComponents(a.type),componentDatatype:a.componentDatatype,normalize:!1,offsetInBytes:a.byteOffset,strideInBytes:a.byteStride,instanceDivisor:1}),o.addAttribute("float",`a_instanceFeatureId_${a.setIndex}`))}}var sO=mre;var S6={};S6.name="ModelMatrixUpdateStage";S6.update=function(e,t,n){let i=n.mode!==ne.SCENE3D;if(!(i&&t._model._projectTo2D)&&e._transformDirty){let r=i?t._computedModelMatrix2D:t._computedModelMatrix;xre(e,t,r,e.transformToRoot),e._transformDirty=!1}};function xre(e,t,n,i){let r;i=N.multiplyTransformation(i,e.transform,new N),e.updateComputedTransform();let o=e.runtimePrimitives.length;for(r=0;r<o;r++){let c=e.runtimePrimitives[r].drawCommand;c.modelMatrix=N.multiplyTransformation(n,i,c.modelMatrix),c.cullFace=Jt.getCullFace(c.modelMatrix,c.primitiveType)}let s=e.children.length;for(r=0;r<s;r++){let a=t._runtimeNodes[e.children[r]];a._transformToRoot=N.clone(i,a._transformToRoot),xre(a,t,n,i),a._transformDirty=!1}}var aO=S6;var Cre={name:"NodeStatisticsPipelineStage",_countInstancingAttributes:Tre,_countGeneratedBuffers:Ere};Cre.process=function(e,t,n){let i=e.model.statistics,r=t.instances,o=e.runtimeNode;Tre(i,r),Ere(i,o)};function Tre(e,t){if(!u(t))return;let n=t.attributes,i=n.length;for(let r=0;r<i;r++){let o=n[r];u(o.buffer)&&e.addBuffer(o.buffer,!1)}}function Ere(e,t){u(t.instancingTransformsBuffer)&&e.addBuffer(t.instancingTransformsBuffer,!1),u(t.instancingTransformsBuffer2D)&&e.addBuffer(t.instancingTransformsBuffer2D,!1),u(t.instancingTranslationBuffer2D)&&e.addBuffer(t.instancingTranslationBuffer2D,!1)}var cO=Cre;function sE(e){e=y(e,y.EMPTY_OBJECT);let t=e.node,n=e.transform,i=e.transformToRoot,r=e.sceneGraph,o=e.children;this._node=t,this._name=t.name,this._id=t.index,this._sceneGraph=r,this._children=o,this._originalTransform=N.clone(n,this._originalTransform),this._transform=N.clone(n,this._transform),this._transformToRoot=N.clone(i,this._transformToRoot),this._computedTransform=new N,this._transformDirty=!1,this._transformParameters=void 0,this._morphWeights=[],this._runtimeSkin=void 0,this._computedJointMatrices=[],this.show=!0,this.userAnimated=!1,this.pipelineStages=[],this.runtimePrimitives=[],this.updateStages=[],this.instancingTranslationMin=void 0,this.instancingTranslationMax=void 0,this.instancingTransformsBuffer=void 0,this.instancingTransformsBuffer2D=void 0,this.instancingTranslationBuffer2D=void 0,this.instancingReferencePoint2D=void 0,lke(this)}Object.defineProperties(sE.prototype,{node:{get:function(){return this._node}},sceneGraph:{get:function(){return this._sceneGraph}},children:{get:function(){return this._children}},transform:{get:function(){return this._transform},set:function(e){this._transformDirty=!0,this._transform=N.clone(e,this._transform)}},transformToRoot:{get:function(){return this._transformToRoot}},computedTransform:{get:function(){return this._computedTransform}},originalTransform:{get:function(){return this._originalTransform}},translation:{get:function(){return u(this._transformParameters)?this._transformParameters.translation:void 0},set:function(e){let t=this._transformParameters,n=t.translation;h.equals(n,e)||(t.translation=h.clone(e,t.translation),v6(this,t))}},rotation:{get:function(){return u(this._transformParameters)?this._transformParameters.rotation:void 0},set:function(e){let t=this._transformParameters,n=t.rotation;Le.equals(n,e)||(t.rotation=Le.clone(e,t.rotation),v6(this,t))}},scale:{get:function(){return u(this._transformParameters)?this._transformParameters.scale:void 0},set:function(e){let t=this._transformParameters,n=t.scale;h.equals(n,e)||(t.scale=h.clone(e,t.scale),v6(this,t))}},morphWeights:{get:function(){return this._morphWeights},set:function(e){let t=e.length;for(let n=0;n<t;n++)this._morphWeights[n]=e[n]}},runtimeSkin:{get:function(){return this._runtimeSkin}},computedJointMatrices:{get:function(){return this._computedJointMatrices}}});function lke(e){let t=e.transform,n=e.transformToRoot,i=e._computedTransform;e._computedTransform=N.multiply(n,t,i);let r=e.node;u(r.matrix)||(e._transformParameters=new gg(r.translation,r.rotation,r.scale)),u(r.morphWeights)&&(e._morphWeights=r.morphWeights.slice());let o=r.articulationName;if(u(o)){let c=e.sceneGraph._runtimeArticulations[o];u(c)&&c.runtimeNodes.push(e)}}function v6(e,t){e._transformDirty=!0,e._transform=N.fromTranslationRotationScale(t,e._transform)}sE.prototype.getChild=function(e){return this.sceneGraph._runtimeNodes[this.children[e]]};sE.prototype.configurePipeline=function(){let e=this.node,t=this.pipelineStages;t.length=0;let n=this.updateStages;n.length=0,u(e.instances)&&t.push(sO),t.push(cO),n.push(aO)};sE.prototype.updateComputedTransform=function(){this._computedTransform=N.multiply(this._transformToRoot,this._transform,this._computedTransform)};sE.prototype.updateJointMatrices=function(){let e=this._runtimeSkin;if(!u(e))return;e.updateJointMatrices();let t=this._computedJointMatrices,n=e.jointMatrices,i=n.length;for(let r=0;r<i;r++){u(t[r])||(t[r]=new N);let o=N.multiplyTransformation(this.transformToRoot,this.transform,t[r]),s=N.inverseTransformation(o,t[r]);t[r]=N.multiplyTransformation(s,n[r],t[r])}};var lO=sE;var bre={name:"AlphaPipelineStage"};bre.process=function(e,t,n){let i=e.alphaOptions,r=e.model;i.pass=y(i.pass,r.opaquePass);let o=e.renderStateOptions;i.pass===be.TRANSLUCENT&&(o.cull.enabled=!1,o.depthMask=!1,o.blending=un.ALPHA_BLEND);let s=e.shaderBuilder,a=e.uniformMap;u(i.alphaCutoff)&&(s.addDefine("ALPHA_MODE_MASK",void 0,Te.FRAGMENT),s.addUniform("float","u_alphaCutoff",Te.FRAGMENT),a.u_alphaCutoff=function(){return i.alphaCutoff})};var uO=bre;var Sre={name:"BatchTexturePipelineStage"};Sre.process=function(e,t,n){let i=e.shaderBuilder,r={},o=e.model,s=o.featureTables[o.featureTableId],a=s.featuresLength;i.addUniform("int","model_featuresLength"),r.model_featuresLength=function(){return a};let c=s.batchTexture;i.addUniform("sampler2D","model_batchTexture"),r.model_batchTexture=function(){return y(c.batchTexture,c.defaultTexture)},i.addUniform("vec4","model_textureStep"),r.model_textureStep=function(){return c.textureStep},c.textureDimensions.y>1&&(i.addDefine("MULTILINE_BATCH_TEXTURE"),i.addUniform("vec2","model_textureDimensions"),r.model_textureDimensions=function(){return c.textureDimensions}),e.uniformMap=_t(r,e.uniformMap)};var fO=Sre;var vre={name:"ClassificationPipelineStage"};vre.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_CLASSIFICATION",void 0,Te.BOTH);let r=e.runtimePrimitive;u(r.batchLengths)||uke(t,r)};function uke(e,t){let n=Jt.getAttributeBySemantic(e,Tt.POSITION);if(!u(n))throw new de("Primitives must have a position attribute to be used for classification.");let i,r=e.indices,o=u(r);o&&(i=r.typedArray,r.typedArray=void 0);let s=o?r.count:n.count,a=Jt.getAttributeBySemantic(e,Tt.FEATURE_ID,0);if(!u(a)){t.batchLengths=[s],t.batchOffsets=[0];return}let c=a.typedArray;a.typedArray=void 0;let l=[],f=[0],d=o?i[0]:0,p=c[d],g=0;for(let A=1;A<s;A++){let x=o?i[A]:A,C=c[x];if(C!==p){let T=A-g,E=A;l.push(T),f.push(E),g=E,p=C}}let m=s-g;l.push(m),t.batchLengths=l,t.batchOffsets=f}var dO=vre;var hO=`void filterByPassType(inout vec3 positionMC, vec4 featureColor) +{ + bool styleTranslucent = (featureColor.a != 1.0); + // Only render translucent features in the translucent pass (if the style or the original command has translucency). + if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent) + { + // If the model has a translucent silhouette, it needs to render during the silhouette color command, + // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent. + #ifdef HAS_SILHOUETTE + positionMC *= float(model_silhouettePass); + #else + positionMC *= 0.0; + #endif + } + // If the current pass is not the translucent pass and the style is not translucent, don't render the feature. + else if (czm_pass != czm_passTranslucent && styleTranslucent) + { + positionMC *= 0.0; + } +} + +void cpuStylingStage(inout vec3 positionMC, inout SelectedFeature feature) +{ + float show = ceil(feature.color.a); + positionMC *= show; + + #if defined(HAS_SELECTED_FEATURE_ID_ATTRIBUTE) && !defined(HAS_CLASSIFICATION) + filterByPassType(positionMC, feature.color); + #endif +} +`;var mO=`void filterByPassType(vec4 featureColor) +{ + bool styleTranslucent = (featureColor.a != 1.0); + // Only render translucent features in the translucent pass (if the style or the original command has translucency). + if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent) + { + // If the model has a translucent silhouette, it needs to render during the silhouette color command, + // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent. + #ifdef HAS_SILHOUETTE + if(!model_silhouettePass) { + discard; + } + #else + discard; + #endif + } + // If the current pass is not the translucent pass and the style is not translucent, don't render the feature. + else if (czm_pass != czm_passTranslucent && styleTranslucent) + { + discard; + } +} + +void cpuStylingStage(inout czm_modelMaterial material, SelectedFeature feature) +{ + vec4 featureColor = feature.color; + if (featureColor.a == 0.0) + { + discard; + } + + // If a feature ID vertex attribute is used, the pass type filter is applied in the vertex shader. + // So, we only apply in in the fragment shader if the feature ID texture is used. + #if defined(HAS_SELECTED_FEATURE_ID_TEXTURE) && !defined(HAS_CLASSIFICATION) + filterByPassType(featureColor); + #endif + + featureColor = czm_gammaCorrect(featureColor); + + // Classification models compute the diffuse differently. + #ifdef HAS_CLASSIFICATION + material.diffuse = featureColor.rgb * featureColor.a; + #else + float highlight = ceil(model_colorBlend); + material.diffuse *= mix(featureColor.rgb, vec3(1.0), highlight); + #endif + + material.alpha *= featureColor.a; +} +`;var wre={name:"CPUStylingPipelineStage"};wre.process=function(e,t,n){let i=e.model,r=e.shaderBuilder;r.addVertexLines(hO),r.addFragmentLines(mO),r.addDefine("USE_CPU_STYLING",void 0,Te.BOTH),u(i.color)||(r.addUniform("float",Hg.COLOR_BLEND_UNIFORM_NAME,Te.FRAGMENT),e.uniformMap[Hg.COLOR_BLEND_UNIFORM_NAME]=function(){return Za.getColorBlend(i.colorBlendMode,i.colorBlendAmount)}),r.addUniform("bool","model_commandTranslucent",Te.BOTH),e.uniformMap.model_commandTranslucent=function(){return e.alphaOptions.pass===be.TRANSLUCENT}};var pO=wre;var Dre={MODIFY_MATERIAL:"MODIFY_MATERIAL",REPLACE_MATERIAL:"REPLACE_MATERIAL"};Dre.getDefineName=function(e){return`CUSTOM_SHADER_${e}`};var Wp=Object.freeze(Dre);var _O=`void customShaderStage( + inout czm_modelVertexOutput vsOutput, + inout ProcessedAttributes attributes, + FeatureIds featureIds, + Metadata metadata, + MetadataClass metadataClass, + MetadataStatistics metadataStatistics +) { + // VertexInput and initializeInputStruct() are dynamically generated in JS, + // see CustomShaderPipelineStage.js + VertexInput vsInput; + initializeInputStruct(vsInput, attributes); + vsInput.featureIds = featureIds; + vsInput.metadata = metadata; + vsInput.metadataClass = metadataClass; + vsInput.metadataStatistics = metadataStatistics; + vertexMain(vsInput, vsOutput); + attributes.positionMC = vsOutput.positionMC; +} +`;var gO=`void customShaderStage( + inout czm_modelMaterial material, + ProcessedAttributes attributes, + FeatureIds featureIds, + Metadata metadata, + MetadataClass metadataClass, + MetadataStatistics metadataStatistics +) { + // FragmentInput and initializeInputStruct() are dynamically generated in JS, + // see CustomShaderPipelineStage.js + FragmentInput fsInput; + initializeInputStruct(fsInput, attributes); + fsInput.featureIds = featureIds; + fsInput.metadata = metadata; + fsInput.metadataClass = metadataClass; + fsInput.metadataStatistics = metadataStatistics; + fragmentMain(fsInput, material); +} +`;var yO=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) { + initializeFeatureIds(featureIds, attributes); + initializeFeatureIdAliases(featureIds); +} +`;var AO=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) +{ + initializeFeatureIds(featureIds, attributes); + initializeFeatureIdAliases(featureIds); + setFeatureIdVaryings(); +} +`;var Vi={name:"FeatureIdPipelineStage",STRUCT_ID_FEATURE_IDS_VS:"FeatureIdsVS",STRUCT_ID_FEATURE_IDS_FS:"FeatureIdsFS",STRUCT_NAME_FEATURE_IDS:"FeatureIds",FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS:"initializeFeatureIdsVS",FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS:"initializeFeatureIdsFS",FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS:"initializeFeatureIdAliasesVS",FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS:"initializeFeatureIdAliasesFS",FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS:"void initializeFeatureIds(out FeatureIds featureIds, ProcessedAttributes attributes)",FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES:"void initializeFeatureIdAliases(inout FeatureIds featureIds)",FUNCTION_ID_SET_FEATURE_ID_VARYINGS:"setFeatureIdVaryings",FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS:"void setFeatureIdVaryings()"};Vi.process=function(e,t,n){let i=e.shaderBuilder;fke(i);let r=e.runtimeNode.node.instances;u(r)&&dke(e,r,n),hke(e,t,n),i.addVertexLines(AO),i.addFragmentLines(yO)};function fke(e){e.addStruct(Vi.STRUCT_ID_FEATURE_IDS_VS,Vi.STRUCT_NAME_FEATURE_IDS,Te.VERTEX),e.addStruct(Vi.STRUCT_ID_FEATURE_IDS_FS,Vi.STRUCT_NAME_FEATURE_IDS,Te.FRAGMENT),e.addFunction(Vi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,Vi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,Te.VERTEX),e.addFunction(Vi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,Vi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,Te.FRAGMENT),e.addFunction(Vi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,Vi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,Te.VERTEX),e.addFunction(Vi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,Vi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,Te.FRAGMENT),e.addFunction(Vi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,Vi.FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS,Te.VERTEX)}function dke(e,t,n){let i=t.featureIds,r=t.attributes[0].count;for(let o=0;o<i.length;o++){let s=i[o],a=s.positionalLabel;s instanceof Lt.FeatureIdAttribute?mke(e,s,a):Ire(e,s,a,r,1,n);let c=s.label;u(c)&&Pre(e,a,c,Te.BOTH)}}function hke(e,t,n){let i=t.featureIds,o=Jt.getAttributeBySemantic(t,Tt.POSITION).count;for(let s=0;s<i.length;s++){let a=i[s],c=a.positionalLabel,l=Te.BOTH;a instanceof Lt.FeatureIdAttribute?pke(e,a,c):a instanceof Lt.FeatureIdImplicitRange?Ire(e,a,c,o,void 0,n):(_ke(e,a,c,s,n),l=Te.FRAGMENT);let f=a.label;u(f)&&Pre(e,c,f,l)}}function mke(e,t,n){let i=e.shaderBuilder;i.addStructField(Vi.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(Vi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let r=t.setIndex,o=n.replace(/_\d+$/,"_"),s=`a_${o}${r}`,a=`v_${o}${r}`,c=`featureIds.${n} = int(czm_round(${s}));`,l=`featureIds.${n} = int(czm_round(${a}));`;i.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[c]),i.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[l]),i.addVarying("float",a),i.addFunctionLines(Vi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${a} = ${s};`])}function pke(e,t,n){let i=e.shaderBuilder;i.addStructField(Vi.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(Vi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let r=t.setIndex,o=n.replace(/_\d+$/,"_"),s=[`featureIds.${n} = int(czm_round(attributes.${o}${r}));`];i.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,s),i.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,s)}function Ire(e,t,n,i,r,o){gke(e,t,i,r,o);let s=e.shaderBuilder,a=`a_implicit_${n}`;s.addAttribute("float",a);let c=`v_implicit_${n}`;s.addVarying("float",c),s.addStructField(Vi.STRUCT_ID_FEATURE_IDS_VS,"int",n),s.addStructField(Vi.STRUCT_ID_FEATURE_IDS_FS,"int",n),s.addFunctionLines(Vi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${c} = ${a};`]),s.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[`featureIds.${n} = int(czm_round(${a}));`]),s.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[`featureIds.${n} = int(czm_round(${c}));`])}function _ke(e,t,n,i,r){let o=`u_featureIdTexture_${i}`,s=e.uniformMap,a=t.textureReader;s[o]=function(){return y(a.texture,r.context.defaultTexture)};let c=a.channels,l=e.shaderBuilder;l.addStructField(Vi.STRUCT_ID_FEATURE_IDS_FS,"int",n),l.addUniform("sampler2D",o,Te.FRAGMENT);let f=`v_texCoord_${a.texCoord}`,d=`texture(${o}, ${f}).${c}`,p=`featureIds.${n} = czm_unpackUint(${d});`;l.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[p])}function Pre(e,t,n,i){let r=e.shaderBuilder,o=Te.includesVertexShader(i);o&&r.addStructField(Vi.STRUCT_ID_FEATURE_IDS_VS,"int",n),r.addStructField(Vi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let s=[`featureIds.${n} = featureIds.${t};`];o&&r.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,s),r.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,s)}function gke(e,t,n,i,r){let o=e.model,s,a;if(u(t.repeat)){let l=yke(t,n);s=ht.createVertexBuffer({context:r.context,typedArray:l,usage:Fe.STATIC_DRAW}),s.vertexArrayDestroyable=!1,o._pipelineResources.push(s);let f=!1;o.statistics.addBuffer(s,f)}else a=[t.offset];let c={index:e.attributeIndex++,instanceDivisor:i,value:a,vertexBuffer:s,normalize:!1,componentsPerAttribute:1,componentDatatype:X.FLOAT,strideInBytes:X.getSizeInBytes(X.FLOAT),offsetInBytes:0};e.attributes.push(c)}function yke(e,t){let n=e.offset,i=e.repeat,r=new Float32Array(t);for(let o=0;o<t;o++)r[o]=n+Math.floor(o/i);return r}var Gg=Vi;var xO=`void metadataStage( + out Metadata metadata, + out MetadataClass metadataClass, + out MetadataStatistics metadataStatistics, + ProcessedAttributes attributes + ) +{ + initializeMetadata(metadata, metadataClass, metadataStatistics, attributes); +} +`;var CO=`void metadataStage( + out Metadata metadata, + out MetadataClass metadataClass, + out MetadataStatistics metadataStatistics, + ProcessedAttributes attributes + ) +{ + initializeMetadata(metadata, metadataClass, metadataStatistics, attributes); + setMetadataVaryings(); +} +`;var bi={name:"MetadataPipelineStage",STRUCT_ID_METADATA_VS:"MetadataVS",STRUCT_ID_METADATA_FS:"MetadataFS",STRUCT_NAME_METADATA:"Metadata",STRUCT_ID_METADATA_CLASS_VS:"MetadataClassVS",STRUCT_ID_METADATA_CLASS_FS:"MetadataClassFS",STRUCT_NAME_METADATA_CLASS:"MetadataClass",STRUCT_ID_METADATA_STATISTICS_VS:"MetadataStatisticsVS",STRUCT_ID_METADATA_STATISTICS_FS:"MetadataStatisticsFS",STRUCT_NAME_METADATA_STATISTICS:"MetadataStatistics",FUNCTION_ID_INITIALIZE_METADATA_VS:"initializeMetadataVS",FUNCTION_ID_INITIALIZE_METADATA_FS:"initializeMetadataFS",FUNCTION_SIGNATURE_INITIALIZE_METADATA:"void initializeMetadata(out Metadata metadata, out MetadataClass metadataClass, out MetadataStatistics metadataStatistics, ProcessedAttributes attributes)",FUNCTION_ID_SET_METADATA_VARYINGS:"setMetadataVaryings",FUNCTION_SIGNATURE_SET_METADATA_VARYINGS:"void setMetadataVaryings()",METADATA_CLASS_FIELDS:[{specName:"noData",shaderName:"noData"},{specName:"default",shaderName:"defaultValue"},{specName:"min",shaderName:"minValue"},{specName:"max",shaderName:"maxValue"}],METADATA_STATISTICS_FIELDS:[{specName:"min",shaderName:"minValue"},{specName:"max",shaderName:"maxValue"},{specName:"mean",shaderName:"mean",type:"float"},{specName:"median",shaderName:"median"},{specName:"standardDeviation",shaderName:"standardDeviation",type:"float"},{specName:"variance",shaderName:"variance",type:"float"},{specName:"sum",shaderName:"sum"}]};bi.process=function(e,t,n){let{shaderBuilder:i,model:r}=e,{structuralMetadata:o={},content:s}=r,a=s?.tileset.metadataExtension?.statistics,c=Ake(o.propertyAttributes,t,a),l=Cke(o.propertyTextures,a),f=c.concat(l);Eke(i,f),vke(i),i.addVertexLines(CO),i.addFragmentLines(xO);for(let d=0;d<c.length;d++){let p=c[d];wke(e,p)}for(let d=0;d<l.length;d++){let p=l[d];Ike(e,p)}};function Ake(e,t,n){return u(e)?e.flatMap(i=>xke(i,t,n)):[]}function xke(e,t,n){let{getAttributeByName:i,getAttributeInfo:r,sanitizeGlslIdentifier:o}=Jt,s=e.class.id,a=n?.classes[s],c=Object.entries(e.properties),l=new Array(c.length);for(let f=0;f<c.length;f++){let[d,p]=c[f],g=i(t,p.attribute),{glslType:m,variableName:A}=r(g);l[f]={metadataVariable:o(d),property:p,type:p.classProperty.type,glslType:m,variableName:A,propertyStatistics:a?.properties[d],shaderDestination:Te.BOTH}}return l}function Cke(e,t){return u(e)?e.flatMap(n=>Tke(n,t)):[]}function Tke(e,t){let{sanitizeGlslIdentifier:n}=Jt,i=e.class.id,r=t?.classes[i],o=Object.entries(e.properties).filter(([a,c])=>c.isGpuCompatible()),s=new Array(o.length);for(let a=0;a<o.length;a++){let[c,l]=o[a];s[a]={metadataVariable:n(c),property:l,type:l.classProperty.type,glslType:l.getGlslType(),propertyStatistics:r?.properties[c],shaderDestination:Te.FRAGMENT}}return s}function Eke(e,t){let n=new Set,i=new Set;for(let a=0;a<t.length;a++){let{type:c,glslType:l,propertyStatistics:f}=t[a];n.add(l),u(f)&&c!==jt.ENUM&&i.add(l)}let r=bi.METADATA_CLASS_FIELDS;for(let a of n){let c=`${a}MetadataClass`;s(c,a,r)}let o=bi.METADATA_STATISTICS_FIELDS;for(let a of i){let c=`${a}MetadataStatistics`;s(c,a,o)}function s(a,c,l){e.addStruct(a,a,Te.BOTH);for(let f=0;f<l.length;f++){let{shaderName:d}=l[f],p=l[f].type==="float"?Ske(c):c;e.addStructField(a,p,d)}}}var bke={int:"float",ivec2:"vec2",ivec3:"vec3",ivec4:"vec4"};function Ske(e){let t=bke[e];return u(t)?t:e}function vke(e){e.addStruct(bi.STRUCT_ID_METADATA_VS,bi.STRUCT_NAME_METADATA,Te.VERTEX),e.addStruct(bi.STRUCT_ID_METADATA_FS,bi.STRUCT_NAME_METADATA,Te.FRAGMENT),e.addStruct(bi.STRUCT_ID_METADATA_CLASS_VS,bi.STRUCT_NAME_METADATA_CLASS,Te.VERTEX),e.addStruct(bi.STRUCT_ID_METADATA_CLASS_FS,bi.STRUCT_NAME_METADATA_CLASS,Te.FRAGMENT),e.addStruct(bi.STRUCT_ID_METADATA_STATISTICS_VS,bi.STRUCT_NAME_METADATA_STATISTICS,Te.VERTEX),e.addStruct(bi.STRUCT_ID_METADATA_STATISTICS_FS,bi.STRUCT_NAME_METADATA_STATISTICS,Te.FRAGMENT),e.addFunction(bi.FUNCTION_ID_INITIALIZE_METADATA_VS,bi.FUNCTION_SIGNATURE_INITIALIZE_METADATA,Te.VERTEX),e.addFunction(bi.FUNCTION_ID_INITIALIZE_METADATA_FS,bi.FUNCTION_SIGNATURE_INITIALIZE_METADATA,Te.FRAGMENT),e.addFunction(bi.FUNCTION_ID_SET_METADATA_VARYINGS,bi.FUNCTION_SIGNATURE_SET_METADATA_VARYINGS,Te.VERTEX)}function wke(e,t){Dke(e,t),Ore(e.shaderBuilder,t),Mre(e.shaderBuilder,t)}function Dke(e,t){let{shaderBuilder:n}=e,{metadataVariable:i,property:r,glslType:o}=t,s=Bre({valueExpression:`attributes.${t.variableName}`,renderResources:e,glslType:o,metadataVariable:i,shaderDestination:Te.BOTH,property:r});n.addStructField(bi.STRUCT_ID_METADATA_VS,o,i),n.addStructField(bi.STRUCT_ID_METADATA_FS,o,i);let a=`metadata.${i} = ${s};`;n.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_VS,[a]),n.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_FS,[a])}function Ike(e,t){Pke(e,t),Ore(e.shaderBuilder,t),Mre(e.shaderBuilder,t)}function Pke(e,t){let{shaderBuilder:n,uniformMap:i}=e,{metadataVariable:r,glslType:o,property:s}=t,{texCoord:a,channels:c,index:l,texture:f}=s.textureReader,d=`u_propertyTexture_${l}`;i.hasOwnProperty(d)||(n.addUniform("sampler2D",d,Te.FRAGMENT),i[d]=()=>f),n.addStructField(bi.STRUCT_ID_METADATA_FS,o,r);let p=`attributes.texCoord_${a}`,g=`texture(${d}, ${p}).${c}`,m=s.unpackInShader(g),A=Bre({valueExpression:m,renderResources:e,glslType:o,metadataVariable:r,shaderDestination:Te.FRAGMENT,property:s}),x=`metadata.${r} = ${A};`;n.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_FS,[x])}function Ore(e,t){let{classProperty:n}=t.property,{metadataVariable:i,glslType:r,shaderDestination:o}=t,s=Rre(bi.METADATA_CLASS_FIELDS,n,`metadataClass.${i}`,r),a=`${r}MetadataClass`;e.addStructField(bi.STRUCT_ID_METADATA_CLASS_FS,a,i),e.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_FS,s),Te.includesVertexShader(o)&&(e.addStructField(bi.STRUCT_ID_METADATA_CLASS_VS,a,i),e.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_VS,s))}function Mre(e,t){let{propertyStatistics:n}=t;if(!u(n))return;let{metadataVariable:i,type:r,glslType:o}=t;if(r===jt.ENUM)return;let s=bi.METADATA_STATISTICS_FIELDS,a=`metadataStatistics.${i}`,c=Rre(s,n,a,o),l=`${o}MetadataStatistics`;e.addStructField(bi.STRUCT_ID_METADATA_STATISTICS_FS,l,i),e.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_FS,c),Te.includesVertexShader(t.shaderDestination)&&(e.addStructField(bi.STRUCT_ID_METADATA_STATISTICS_VS,l,i),e.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_VS,c))}function Rre(e,t,n,i){function r(o){let s=t[o.specName];if(u(s))return`${n}.${o.shaderName} = ${i}(${s});`}return u(t)?e.map(r).filter(u):[]}function Bre(e){let{valueExpression:t,property:n}=e;if(!n.hasValueTransform)return t;let i=e.metadataVariable,r=`u_${i}_offset`,o=`u_${i}_scale`,{shaderBuilder:s,uniformMap:a}=e.renderResources,{glslType:c,shaderDestination:l}=e;s.addUniform(c,r,l),s.addUniform(c,o,l);let{offset:f,scale:d}=n;return a[r]=()=>f,a[o]=()=>d,`czm_valueTransform(${r}, ${o}, ${t})`}var cf=bi;var Oke={INHERIT:0,OPAQUE:1,TRANSLUCENT:2},Wg=Object.freeze(Oke);var Zs={name:"CustomShaderPipelineStage",STRUCT_ID_ATTRIBUTES_VS:"AttributesVS",STRUCT_ID_ATTRIBUTES_FS:"AttributesFS",STRUCT_NAME_ATTRIBUTES:"Attributes",STRUCT_ID_VERTEX_INPUT:"VertexInput",STRUCT_NAME_VERTEX_INPUT:"VertexInput",STRUCT_ID_FRAGMENT_INPUT:"FragmentInput",STRUCT_NAME_FRAGMENT_INPUT:"FragmentInput",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS:"initializeInputStructVS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS:"void initializeInputStruct(out VertexInput vsInput, ProcessedAttributes attributes)",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS:"initializeInputStructFS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS:"void initializeInputStruct(out FragmentInput fsInput, ProcessedAttributes attributes)",_oneTimeWarning:Ot};Zs.process=function(e,t,n){let i=e.shaderBuilder,r=e.model.customShader;u(r.lightingModel)&&(e.lightingOptions.lightingModel=r.lightingModel);let o=e.alphaOptions;r.translucencyMode===Wg.TRANSLUCENT?o.pass=be.TRANSLUCENT:r.translucencyMode===Wg.OPAQUE&&(o.pass=void 0);let s=Vke(r,t);if(!s.customShaderEnabled)return;if(Gke(i,r,s),s.shouldComputePositionWC&&i.addDefine("COMPUTE_POSITION_WC_CUSTOM_SHADER",void 0,Te.BOTH),u(r.vertexShaderText)&&i.addDefine("HAS_CUSTOM_VERTEX_SHADER",void 0,Te.VERTEX),u(r.fragmentShaderText)){i.addDefine("HAS_CUSTOM_FRAGMENT_SHADER",void 0,Te.FRAGMENT);let l=Wp.getDefineName(r.mode);i.addDefine(l,void 0,Te.FRAGMENT)}let a=r.uniforms;for(let l in a)if(a.hasOwnProperty(l)){let f=a[l];i.addUniform(f.type,l)}let c=r.varyings;for(let l in c)if(c.hasOwnProperty(l)){let f=c[l];i.addVarying(f,l)}e.uniformMap=_t(e.uniformMap,r.uniformMap)};function Mke(e){let t={};for(let n=0;n<e.length;n++){let i=e[n],r=Jt.getAttributeInfo(i);t[r.variableName]=r}return t}var Rke={position:"vec3",normal:"vec3",tangent:"vec3",bitangent:"vec3",texCoord:"vec2",color:"vec4",joints:"ivec4",weights:"vec4"},Bke={position:"vec3(0.0)",normal:"vec3(0.0, 0.0, 1.0)",tangent:"vec3(1.0, 0.0, 0.0)",bitangent:"vec3(0.0, 1.0, 0.0)",texCoord:"vec2(0.0)",color:"vec4(1.0)",joints:"ivec4(0)",weights:"vec4(0.0)"};function Lre(e){let t=e.replace(/_[0-9]+$/,"");t=t.replace(/(MC|EC)$/,"");let n=Rke[t],i=Bke[t];if(u(n))return{attributeField:[n,e],value:i}}function Lke(e,t,n){let i=Nre(t,e.usedVariablesVertex.attributeSet,!1),r=i.addToShader,o=i.missingAttributes,s,a,c=[],l=[];for(s in r)if(r.hasOwnProperty(s)){let d=[r[s].glslType,s];c.push(d),a=`vsInput.attributes.${s} = attributes.${s};`,l.push(a)}for(let f=0;f<o.length;f++){s=o[f];let d=Lre(s);if(!u(d)){Zs._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveVS",`Primitive is missing attribute ${s}, disabling custom vertex shader`);return}c.push(d.attributeField),a=`vsInput.attributes.${s} = ${d.value};`,l.push(a)}n.enabled=!0,n.attributeFields=c,n.initializationLines=l}function Nke(e){let t=[],n=[],i=e.usedVariablesFragment.attributeSet;return i.hasOwnProperty("positionWC")&&(t.push(["vec3","positionWC"]),n.push("fsInput.attributes.positionWC = attributes.positionWC;")),i.hasOwnProperty("positionEC")&&(t.push(["vec3","positionEC"]),n.push("fsInput.attributes.positionEC = attributes.positionEC;")),{attributeFields:t,initializationLines:n}}function Fke(e,t,n){let i=Nre(t,e.usedVariablesFragment.attributeSet,!0),r=i.addToShader,o=i.missingAttributes,s,a,c=[],l=[];for(s in r)if(r.hasOwnProperty(s)){let p=[r[s].glslType,s];c.push(p),a=`fsInput.attributes.${s} = attributes.${s};`,l.push(a)}for(let d=0;d<o.length;d++){s=o[d];let p=Lre(s);if(!u(p)){Zs._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveFS",`Primitive is missing attribute ${s}, disabling custom fragment shader.`);return}c.push(p.attributeField),a=`fsInput.attributes.${s} = ${p.value};`,l.push(a)}let f=Nke(e);n.enabled=!0,n.attributeFields=c.concat(f.attributeFields),n.initializationLines=f.initializationLines.concat(l)}var Uke={positionWC:!0,positionEC:!0};function Nre(e,t,n){let i,r,o={};for(r in e)if(e.hasOwnProperty(r)){let a=e[r];i=r,n&&r==="normalMC"?i="normalEC":n&&r==="tangentMC"&&(i="tangentEC"),t.hasOwnProperty(i)&&(o[i]=a)}let s=[];for(r in t)if(t.hasOwnProperty(r)){if(Uke.hasOwnProperty(r))continue;i=r,n&&r==="normalEC"?i="normalMC":n&&r==="tangentEC"&&(i="tangentMC"),e.hasOwnProperty(i)||s.push(r)}return{addToShader:o,missingAttributes:s}}function Vke(e,t){let n={enabled:!1},i={enabled:!1},r=Mke(t.attributes);u(e.vertexShaderText)&&Lke(e,r,n),u(e.fragmentShaderText)&&Fke(e,r,i);let s=e.usedVariablesFragment.attributeSet.hasOwnProperty("positionWC")&&i.enabled;return{vertexLines:n,fragmentLines:i,vertexLinesEnabled:n.enabled,fragmentLinesEnabled:i.enabled,customShaderEnabled:n.enabled||i.enabled,shouldComputePositionWC:s}}function kke(e,t){let n,i=Zs.STRUCT_ID_ATTRIBUTES_VS;e.addStruct(i,Zs.STRUCT_NAME_ATTRIBUTES,Te.VERTEX);let r=t.attributeFields;for(n=0;n<r.length;n++){let a=r[n],c=a[0],l=a[1];e.addStructField(i,c,l)}i=Zs.STRUCT_ID_VERTEX_INPUT,e.addStruct(i,Zs.STRUCT_NAME_VERTEX_INPUT,Te.VERTEX),e.addStructField(i,Zs.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(i,Gg.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(i,cf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(i,cf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(i,cf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let o=Zs.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS;e.addFunction(o,Zs.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS,Te.VERTEX);let s=t.initializationLines;e.addFunctionLines(o,s)}function zke(e,t){let n,i=Zs.STRUCT_ID_ATTRIBUTES_FS;e.addStruct(i,Zs.STRUCT_NAME_ATTRIBUTES,Te.FRAGMENT);let r,o,s,a=t.attributeFields;for(n=0;n<a.length;n++)r=a[n],o=r[0],s=r[1],e.addStructField(i,o,s);i=Zs.STRUCT_ID_FRAGMENT_INPUT,e.addStruct(i,Zs.STRUCT_NAME_FRAGMENT_INPUT,Te.FRAGMENT),e.addStructField(i,Zs.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(i,Gg.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(i,cf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(i,cf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(i,cf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let c=Zs.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS;e.addFunction(c,Zs.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS,Te.FRAGMENT);let l=t.initializationLines;e.addFunctionLines(c,l)}var Hke=[];function Gke(e,t,n){let i=n.vertexLines,r=Hke;i.enabled&&(kke(e,i),r.length=0,r.push("#line 0",t.vertexShaderText,_O),e.addVertexLines(r));let o=n.fragmentLines;o.enabled&&(zke(e,o),r.length=0,r.push("#line 0",t.fragmentShaderText,gO),e.addFragmentLines(r))}var TO=Zs;var EO={name:"DequantizationPipelineStage",FUNCTION_ID_DEQUANTIZATION_STAGE_VS:"dequantizationStage",FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS:"void dequantizationStage(inout ProcessedAttributes attributes)"};EO.process=function(e,t,n){let i=e.shaderBuilder,r=e.model,o=u(r.classificationType);i.addDefine("USE_DEQUANTIZATION",void 0,Te.VERTEX),i.addFunction(EO.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,EO.FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS,Te.VERTEX);let s=t.attributes;for(let a=0;a<s.length;a++){let c=s[a],l=c.quantization;if(!u(l))continue;let f=c.semantic===Tt.POSITION,d=c.semantic===Tt.TEXCOORD;if(o&&!f&&!d)continue;let p=Jt.getAttributeInfo(c);jke(i,p),Wke(e,p)}};function Wke(e,t){let n=e.shaderBuilder,i=e.uniformMap,r=t.variableName,o=t.attribute.quantization;if(o.octEncoded){let s=`model_normalizationRange_${r}`;n.addUniform("float",s,Te.VERTEX),i[s]=function(){return o.normalizationRange}}else{let s=`model_quantizedVolumeOffset_${r}`,a=`model_quantizedVolumeStepSize_${r}`,c=t.glslType;n.addUniform(c,s,Te.VERTEX),n.addUniform(c,a,Te.VERTEX);let l=o.quantizedVolumeOffset,f=o.quantizedVolumeStepSize;/^color_\d+$/.test(r)&&(l=Fre(l,0),f=Fre(f,1)),i[s]=function(){return l},i[a]=function(){return f}}}function Fre(e,t){return e instanceof se?e:new se(e.x,e.y,e.z,t)}function jke(e,t){let n=t.variableName,i=t.attribute.quantization,r;i.octEncoded?r=qke(n,i):r=Yke(n),e.addFunctionLines(EO.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,[r])}function qke(e,t){let n=`attributes.${e}`,i=`a_quantized_${e}`,r=`model_normalizationRange_${e}`,o=t.octEncodedZXY?".zxy":".xyz";return`${n} = czm_octDecode(${i}, ${r})${o};`}function Yke(e){let t=`attributes.${e}`,n=`a_quantized_${e}`,i=`model_quantizedVolumeOffset_${e}`,r=`model_quantizedVolumeStepSize_${e}`;return`${t} = ${i} + ${n} * ${r};`}var bO=EO;var SO=`void geometryStage(out ProcessedAttributes attributes) +{ + attributes.positionMC = v_positionMC; + attributes.positionEC = v_positionEC; + + #ifdef COMPUTE_POSITION_WC_CUSTOM_SHADER + attributes.positionWC = v_positionWC; + #endif + + #ifdef HAS_NORMALS + // renormalize after interpolation + attributes.normalEC = normalize(v_normalEC); + #endif + + #ifdef HAS_TANGENTS + attributes.tangentEC = normalize(v_tangentEC); + #endif + + #ifdef HAS_BITANGENTS + attributes.bitangentEC = normalize(v_bitangentEC); + #endif + + // Everything else is dynamically generated in GeometryPipelineStage + setDynamicVaryings(attributes); +} +`;var vO=`vec4 geometryStage(inout ProcessedAttributes attributes, mat4 modelView, mat3 normal) +{ + vec4 computedPosition; + + // Compute positions in different coordinate systems + vec3 positionMC = attributes.positionMC; + v_positionMC = positionMC; + v_positionEC = (modelView * vec4(positionMC, 1.0)).xyz; + + #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING) + vec3 position2D = attributes.position2D; + vec3 positionEC = (u_modelView2D * vec4(position2D, 1.0)).xyz; + computedPosition = czm_projection * vec4(positionEC, 1.0); + #else + computedPosition = czm_projection * vec4(v_positionEC, 1.0); + #endif + + // Sometimes the custom shader and/or style needs this + #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE) + // Note that this is a 32-bit position which may result in jitter on small + // scales. + v_positionWC = (czm_model * vec4(positionMC, 1.0)).xyz; + #endif + + #ifdef HAS_NORMALS + v_normalEC = normalize(normal * attributes.normalMC); + #endif + + #ifdef HAS_TANGENTS + v_tangentEC = normalize(normal * attributes.tangentMC); + #endif + + #ifdef HAS_BITANGENTS + v_bitangentEC = normalize(normal * attributes.bitangentMC); + #endif + + // All other varyings need to be dynamically generated in + // GeometryPipelineStage + setDynamicVaryings(attributes); + + return computedPosition; +} +`;var aE=`vec2 computeSt(float featureId) +{ + float stepX = model_textureStep.x; + float centerX = model_textureStep.y; + + #ifdef MULTILINE_BATCH_TEXTURE + float stepY = model_textureStep.z; + float centerY = model_textureStep.w; + + float xId = mod(featureId, model_textureDimensions.x); + float yId = floor(featureId / model_textureDimensions.x); + + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); + #else + return vec2(centerX + (featureId * stepX), 0.5); + #endif +} + +void selectedFeatureIdStage(out SelectedFeature feature, FeatureIds featureIds) +{ + int featureId = featureIds.SELECTED_FEATURE_ID; + + + if (featureId < model_featuresLength) + { + vec2 featureSt = computeSt(float(featureId)); + + feature.id = featureId; + feature.st = featureSt; + feature.color = texture(model_batchTexture, featureSt); + } + // Floating point comparisons can be unreliable in GLSL, so we + // increment the feature ID to make sure it's always greater + // then the model_featuresLength - a condition we check for in the + // pick ID, to avoid sampling the pick texture if the feature ID is + // greater than the number of features. + else + { + feature.id = model_featuresLength + 1; + feature.st = vec2(0.0); + feature.color = vec4(1.0); + } + + #ifdef HAS_NULL_FEATURE_ID + if (featureId == model_nullFeatureId) { + feature.id = featureId; + feature.st = vec2(0.0); + feature.color = vec4(1.0); + } + #endif +} +`;var wO={name:"SelectedFeatureIdPipelineStage",STRUCT_ID_SELECTED_FEATURE:"SelectedFeature",STRUCT_NAME_SELECTED_FEATURE:"SelectedFeature",FUNCTION_ID_FEATURE_VARYINGS_VS:"updateFeatureStructVS",FUNCTION_ID_FEATURE_VARYINGS_FS:"updateFeatureStructFS",FUNCTION_SIGNATURE_UPDATE_FEATURE:"void updateFeatureStruct(inout SelectedFeature feature)"};wO.process=function(e,t,n){let i=e.shaderBuilder;e.hasPropertyTable=!0;let r=e.model,o=e.runtimeNode.node,s=Xke(r,o,t),a=s.shaderDestination;i.addDefine("HAS_SELECTED_FEATURE_ID",void 0,a),i.addDefine("SELECTED_FEATURE_ID",s.variableName,a),i.addDefine(s.featureIdDefine,void 0,a),Kke(i);let c=s.featureIds.nullFeatureId,l=e.uniformMap;u(c)&&(i.addDefine("HAS_NULL_FEATURE_ID",void 0,a),i.addUniform("int","model_nullFeatureId",a),l.model_nullFeatureId=function(){return c}),s.shaderDestination===Te.BOTH&&i.addVertexLines(aE),i.addFragmentLines(aE)};function Ure(e){return e instanceof Lt.FeatureIdTexture?"HAS_SELECTED_FEATURE_ID_TEXTURE":"HAS_SELECTED_FEATURE_ID_ATTRIBUTE"}function Vre(e){return e instanceof Lt.FeatureIdTexture?Te.FRAGMENT:Te.BOTH}function Xke(e,t,n){let i,r;return u(t.instances)&&(r=Jt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),u(r))?(i=y(r.label,r.positionalLabel),{featureIds:r,variableName:i,shaderDestination:Vre(r),featureIdDefine:Ure(r)}):(r=Jt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),i=y(r.label,r.positionalLabel),{featureIds:r,variableName:i,shaderDestination:Vre(r),featureIdDefine:Ure(r)})}function Kke(e){e.addStructField(wO.STRUCT_ID_SELECTED_FEATURE,"int","id"),e.addStructField(wO.STRUCT_ID_SELECTED_FEATURE,"vec2","st"),e.addStructField(wO.STRUCT_ID_SELECTED_FEATURE,"vec4","color")}var jg=wO;var Is={name:"GeometryPipelineStage",STRUCT_ID_PROCESSED_ATTRIBUTES_VS:"ProcessedAttributesVS",STRUCT_ID_PROCESSED_ATTRIBUTES_FS:"ProcessedAttributesFS",STRUCT_NAME_PROCESSED_ATTRIBUTES:"ProcessedAttributes",FUNCTION_ID_INITIALIZE_ATTRIBUTES:"initializeAttributes",FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES:"void initializeAttributes(out ProcessedAttributes attributes)",FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS:"setDynamicVaryingsVS",FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS:"setDynamicVaryingsFS",FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS:"void setDynamicVaryings(inout ProcessedAttributes attributes)"};Is.process=function(e,t,n){let i=e.shaderBuilder,r=e.model;i.addStruct(Is.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"ProcessedAttributes",Te.VERTEX),i.addStruct(Is.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"ProcessedAttributes",Te.FRAGMENT),i.addStruct(jg.STRUCT_ID_SELECTED_FEATURE,jg.STRUCT_NAME_SELECTED_FEATURE,Te.BOTH),i.addFunction(Is.FUNCTION_ID_INITIALIZE_ATTRIBUTES,Is.FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES,Te.VERTEX),i.addVarying("vec3","v_positionWC"),i.addVarying("vec3","v_positionEC"),i.addStructField(Is.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionWC"),i.addStructField(Is.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionEC"),i.addFunction(Is.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,Is.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,Te.VERTEX),i.addFunction(Is.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,Is.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,Te.FRAGMENT),r.type===Ur.TILE_PNTS&&i.addDefine("HAS_SRGB_COLOR",void 0,Te.FRAGMENT);let s=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&r._projectTo2D,a=u(e.runtimeNode.node.instances),c=s&&!a,l=t.attributes.length;for(let f=0;f<l;f++){let d=t.attributes[f],p=on.getAttributeLocationCount(d.type),g=d.semantic===Tt.POSITION,m;p>1?(m=e.attributeIndex,e.attributeIndex+=p):g&&!c?m=0:m=e.attributeIndex++,Jke(e,d,m,p,s,a)}o4e(i,t.attributes),t.primitiveType===Be.POINTS&&i.addDefine("PRIMITIVE_TYPE_POINTS"),i.addVertexLines(vO),i.addFragmentLines(SO)};function Jke(e,t,n,i,r,o){let s=e.shaderBuilder,a=Jt.getAttributeInfo(t),c=r&&!o;i>1?$ke(e,t,n,i):Qke(e,t,n,c),t4e(s,a,c),e4e(s,a),u(t.semantic)&&Zke(s,t),n4e(s,a,r),i4e(s,a,c),r4e(s,a)}function Zke(e,t){let n=t.semantic,i=t.setIndex;switch(n){case Tt.NORMAL:e.addDefine("HAS_NORMALS");break;case Tt.TANGENT:e.addDefine("HAS_TANGENTS");break;case Tt.FEATURE_ID:e.addDefine(`HAS${n}_${i}`);break;case Tt.TEXCOORD:case Tt.COLOR:e.addDefine(`HAS_${n}_${i}`)}}function Qke(e,t,n,i){let r=t.quantization,o,s;u(r)?(o=r.type,s=r.componentDatatype):(o=t.type,s=t.componentDatatype);let a=t.semantic,c=t.setIndex;a===Tt.FEATURE_ID&&c>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=c+1);let l=a===Tt.POSITION,f=l?0:n,d=on.getNumberOfComponents(o),p={index:f,value:u(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:d,componentDatatype:s,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};if(e.attributes.push(p),!l||!i)return;let g=e.runtimePrimitive.positionBuffer2D,m={index:n,vertexBuffer:g,count:t.count,componentsPerAttribute:d,componentDatatype:X.FLOAT,offsetInBytes:0,strideInBytes:void 0,normalize:t.normalized};e.attributes.push(m)}function $ke(e,t,n,i){let r=t.quantization,o,s;u(r)?(o=r.type,s=r.componentDatatype):(o=t.type,s=t.componentDatatype);let a=t.normalized,l=on.getNumberOfComponents(o)/i,f=X.getSizeInBytes(s),d=l*f,p=t.byteStride;for(let g=0;g<i;g++){let m=t.byteOffset+g*d,A={index:n+g,vertexBuffer:t.buffer,componentsPerAttribute:l,componentDatatype:s,offsetInBytes:m,strideInBytes:p,normalize:a};e.attributes.push(A)}}function e4e(e,t){let n=t.variableName,i=`v_${n}`,r;n==="normalMC"?(i="v_normalEC",r=t.glslType):n==="tangentMC"?(r="vec3",i="v_tangentEC"):r=t.glslType,e.addVarying(r,i)}function t4e(e,t,n){let i=t.attribute.semantic,r=t.variableName,o,s;t.isQuantized?(o=`a_quantized_${r}`,s=t.quantizedGlslType):(o=`a_${r}`,s=t.glslType);let a=i===Tt.POSITION;a?e.setPositionAttribute(s,o):e.addAttribute(s,o),a&&n&&e.addAttribute("vec3","a_position2D")}function n4e(e,t,n){let i=Is.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,r=Is.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,o=t.variableName;o==="tangentMC"?(e.addStructField(i,"vec3","tangentMC"),e.addStructField(i,"float","tangentSignMC"),e.addStructField(r,"vec3","tangentEC")):o==="normalMC"?(e.addStructField(i,"vec3","normalMC"),e.addStructField(r,"vec3","normalEC")):(e.addStructField(i,t.glslType,o),e.addStructField(r,t.glslType,o)),o==="positionMC"&&n&&e.addStructField(i,"vec3","position2D")}function i4e(e,t,n){let i=Is.FUNCTION_ID_INITIALIZE_ATTRIBUTES,r=t.variableName;if(r==="positionMC"&&n){let a="attributes.position2D = a_position2D;";e.addFunctionLines(i,[a])}if(t.isQuantized)return;let s=[];r==="tangentMC"?(s.push("attributes.tangentMC = a_tangentMC.xyz;"),s.push("attributes.tangentSignMC = a_tangentMC.w;")):s.push(`attributes.${r} = a_${r};`),e.addFunctionLines(i,s)}function r4e(e,t){let n=t.attribute.semantic,i=t.attribute.setIndex;if(u(n)&&!u(i))return;let r=Is.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,o=t.variableName,s=`v_${o} = attributes.${o};`;e.addFunctionLines(r,[s]),r=Is.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,s=`attributes.${o} = v_${o};`,e.addFunctionLines(r,[s])}function o4e(e,t){let n=!1,i=!1;for(let r=0;r<t.length;r++){let o=t[r];o.semantic===Tt.NORMAL?n=!0:o.semantic===Tt.TANGENT&&(i=!0)}!n||!i||(e.addDefine("HAS_BITANGENTS"),e.addVarying("vec3","v_bitangentEC"),e.addStructField(Is.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"vec3","bitangentMC"),e.addStructField(Is.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","bitangentEC"))}var DO=Is;var IO=`#ifdef LIGHTING_PBR +vec3 computePbrLighting(czm_modelMaterial inputMaterial, ProcessedAttributes attributes) +{ + czm_pbrParameters pbrParameters; + pbrParameters.diffuseColor = inputMaterial.diffuse; + pbrParameters.f0 = inputMaterial.specular; + pbrParameters.roughness = inputMaterial.roughness; + + #ifdef USE_CUSTOM_LIGHT_COLOR + vec3 lightColorHdr = model_lightColorHdr; + #else + vec3 lightColorHdr = czm_lightColorHdr; + #endif + + vec3 color = inputMaterial.diffuse; + #ifdef HAS_NORMALS + color = czm_pbrLighting( + attributes.positionEC, + inputMaterial.normalEC, + czm_lightDirectionEC, + lightColorHdr, + pbrParameters + ); + + #ifdef USE_IBL_LIGHTING + color += imageBasedLightingStage( + attributes.positionEC, + inputMaterial.normalEC, + czm_lightDirectionEC, + lightColorHdr, + pbrParameters + ); + #endif + #endif + + color *= inputMaterial.occlusion; + color += inputMaterial.emissive; + + // In HDR mode, the frame buffer is in linear color space. The + // post-processing stages (see PostProcessStageCollection) will handle + // tonemapping. However, if HDR is not enabled, we must tonemap else large + // values may be clamped to 1.0 + #ifndef HDR + color = czm_acesTonemapping(color); + #endif + + return color; +} +#endif + +void lightingStage(inout czm_modelMaterial material, ProcessedAttributes attributes) +{ + // Even though the lighting will only set the diffuse color, + // pass all other properties so further stages have access to them. + vec3 color = vec3(0.0); + + #ifdef LIGHTING_PBR + color = computePbrLighting(material, attributes); + #else // unlit + color = material.diffuse; + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + // The colors resulting from point cloud styles are adjusted differently. + color = czm_gammaCorrect(color); + #elif !defined(HDR) + // If HDR is not enabled, the frame buffer stores sRGB colors rather than + // linear colors so the linear value must be converted. + color = czm_linearToSrgb(color); + #endif + + material.diffuse = color; +} +`;var s4e={UNLIT:0,PBR:1},Zh=Object.freeze(s4e);var kre={name:"LightingPipelineStage"};kre.process=function(e,t){let n=e.model,i=e.lightingOptions,r=e.shaderBuilder;if(u(n.lightColor)){r.addDefine("USE_CUSTOM_LIGHT_COLOR",void 0,Te.FRAGMENT),r.addUniform("vec3","model_lightColorHdr",Te.FRAGMENT);let s=e.uniformMap;s.model_lightColorHdr=function(){return n.lightColor}}i.lightingModel===Zh.PBR?r.addDefine("LIGHTING_PBR",void 0,Te.FRAGMENT):r.addDefine("LIGHTING_UNLIT",void 0,Te.FRAGMENT),r.addFragmentLines(IO)};var PO=kre;var OO=`// If the style color is white, it implies the feature has not been styled. +bool isDefaultStyleColor(vec3 color) +{ + return all(greaterThan(color, vec3(1.0 - czm_epsilon3))); +} + +vec3 blend(vec3 sourceColor, vec3 styleColor, float styleColorBlend) +{ + vec3 blendColor = mix(sourceColor, styleColor, styleColorBlend); + vec3 color = isDefaultStyleColor(styleColor.rgb) ? sourceColor : blendColor; + return color; +} + +vec2 computeTextureTransform(vec2 texCoord, mat3 textureTransform) +{ + return vec2(textureTransform * vec3(texCoord, 1.0)); +} + +#ifdef HAS_NORMALS +vec3 computeNormal(ProcessedAttributes attributes) +{ + // Geometry normal. This is already normalized + vec3 ng = attributes.normalEC; + + vec3 normal = ng; + #if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME) + vec2 normalTexCoords = TEXCOORD_NORMAL; + #ifdef HAS_NORMAL_TEXTURE_TRANSFORM + normalTexCoords = computeTextureTransform(normalTexCoords, u_normalTextureTransform); + #endif + + // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set + #ifdef HAS_BITANGENTS + vec3 t = attributes.tangentEC; + vec3 b = attributes.bitangentEC; + mat3 tbn = mat3(t, b, ng); + vec3 n = texture(u_normalTexture, normalTexCoords).rgb; + normal = normalize(tbn * (2.0 * n - 1.0)); + #elif (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + // If derivatives are available (not IE 10), compute tangents + vec3 positionEC = attributes.positionEC; + vec3 pos_dx = dFdx(positionEC); + vec3 pos_dy = dFdy(positionEC); + vec3 tex_dx = dFdx(vec3(normalTexCoords,0.0)); + vec3 tex_dy = dFdy(vec3(normalTexCoords,0.0)); + vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t); + t = normalize(t - ng * dot(ng, t)); + vec3 b = normalize(cross(ng, t)); + mat3 tbn = mat3(t, b, ng); + vec3 n = texture(u_normalTexture, normalTexCoords).rgb; + normal = normalize(tbn * (2.0 * n - 1.0)); + #endif + #endif + + #ifdef HAS_DOUBLE_SIDED_MATERIAL + if (czm_backFacing()) { + normal = -normal; + } + #endif + + return normal; +} +#endif + +void materialStage(inout czm_modelMaterial material, ProcessedAttributes attributes, SelectedFeature feature) +{ + #ifdef HAS_NORMALS + material.normalEC = computeNormal(attributes); + #endif + + vec4 baseColorWithAlpha = vec4(1.0); + // Regardless of whether we use PBR, set a base color + #ifdef HAS_BASE_COLOR_TEXTURE + vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR; + + #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM + baseColorTexCoords = computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform); + #endif + + baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords)); + + #ifdef HAS_BASE_COLOR_FACTOR + baseColorWithAlpha *= u_baseColorFactor; + #endif + #elif defined(HAS_BASE_COLOR_FACTOR) + baseColorWithAlpha = u_baseColorFactor; + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + baseColorWithAlpha = v_pointCloudColor; + #elif defined(HAS_COLOR_0) + vec4 color = attributes.color_0; + // .pnts files store colors in the sRGB color space + #ifdef HAS_SRGB_COLOR + color = czm_srgbToLinear(color); + #endif + baseColorWithAlpha *= color; + #endif + + material.diffuse = baseColorWithAlpha.rgb; + material.alpha = baseColorWithAlpha.a; + + #ifdef USE_CPU_STYLING + material.diffuse = blend(material.diffuse, feature.color.rgb, model_colorBlend); + #endif + + #ifdef HAS_OCCLUSION_TEXTURE + vec2 occlusionTexCoords = TEXCOORD_OCCLUSION; + #ifdef HAS_OCCLUSION_TEXTURE_TRANSFORM + occlusionTexCoords = computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform); + #endif + material.occlusion = texture(u_occlusionTexture, occlusionTexCoords).r; + #endif + + #ifdef HAS_EMISSIVE_TEXTURE + vec2 emissiveTexCoords = TEXCOORD_EMISSIVE; + #ifdef HAS_EMISSIVE_TEXTURE_TRANSFORM + emissiveTexCoords = computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform); + #endif + + vec3 emissive = czm_srgbToLinear(texture(u_emissiveTexture, emissiveTexCoords).rgb); + #ifdef HAS_EMISSIVE_FACTOR + emissive *= u_emissiveFactor; + #endif + material.emissive = emissive; + #elif defined(HAS_EMISSIVE_FACTOR) + material.emissive = u_emissiveFactor; + #endif + + #if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS) + #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE + vec2 specularGlossinessTexCoords = TEXCOORD_SPECULAR_GLOSSINESS; + #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE_TRANSFORM + specularGlossinessTexCoords = computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform); + #endif + + vec4 specularGlossiness = czm_srgbToLinear(texture(u_specularGlossinessTexture, specularGlossinessTexCoords)); + vec3 specular = specularGlossiness.rgb; + float glossiness = specularGlossiness.a; + #ifdef HAS_SPECULAR_FACTOR + specular *= u_specularFactor; + #endif + + #ifdef HAS_GLOSSINESS_FACTOR + glossiness *= u_glossinessFactor; + #endif + #else + #ifdef HAS_SPECULAR_FACTOR + vec3 specular = clamp(u_specularFactor, vec3(0.0), vec3(1.0)); + #else + vec3 specular = vec3(1.0); + #endif + + #ifdef HAS_GLOSSINESS_FACTOR + float glossiness = clamp(u_glossinessFactor, 0.0, 1.0); + #else + float glossiness = 1.0; + #endif + #endif + + #ifdef HAS_DIFFUSE_TEXTURE + vec2 diffuseTexCoords = TEXCOORD_DIFFUSE; + #ifdef HAS_DIFFUSE_TEXTURE_TRANSFORM + diffuseTexCoords = computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform); + #endif + + vec4 diffuse = czm_srgbToLinear(texture(u_diffuseTexture, diffuseTexCoords)); + #ifdef HAS_DIFFUSE_FACTOR + diffuse *= u_diffuseFactor; + #endif + #elif defined(HAS_DIFFUSE_FACTOR) + vec4 diffuse = clamp(u_diffuseFactor, vec4(0.0), vec4(1.0)); + #else + vec4 diffuse = vec4(1.0); + #endif + czm_pbrParameters parameters = czm_pbrSpecularGlossinessMaterial( + diffuse.rgb, + specular, + glossiness + ); + material.diffuse = parameters.diffuseColor; + // the specular glossiness extension's alpha overrides anything set + // by the base material. + material.alpha = diffuse.a; + material.specular = parameters.f0; + material.roughness = parameters.roughness; + #elif defined(LIGHTING_PBR) + #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE + vec2 metallicRoughnessTexCoords = TEXCOORD_METALLIC_ROUGHNESS; + #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE_TRANSFORM + metallicRoughnessTexCoords = computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform); + #endif + + vec3 metallicRoughness = texture(u_metallicRoughnessTexture, metallicRoughnessTexCoords).rgb; + float metalness = clamp(metallicRoughness.b, 0.0, 1.0); + float roughness = clamp(metallicRoughness.g, 0.04, 1.0); + #ifdef HAS_METALLIC_FACTOR + metalness *= u_metallicFactor; + #endif + + #ifdef HAS_ROUGHNESS_FACTOR + roughness *= u_roughnessFactor; + #endif + #else + #ifdef HAS_METALLIC_FACTOR + float metalness = clamp(u_metallicFactor, 0.0, 1.0); + #else + float metalness = 1.0; + #endif + + #ifdef HAS_ROUGHNESS_FACTOR + float roughness = clamp(u_roughnessFactor, 0.04, 1.0); + #else + float roughness = 1.0; + #endif + #endif + czm_pbrParameters parameters = czm_pbrMetallicRoughnessMaterial( + material.diffuse, + metalness, + roughness + ); + material.diffuse = parameters.diffuseColor; + material.specular = parameters.f0; + material.roughness = parameters.roughness; + #endif +} +`;var a4e=Lt.Material,w6=Lt.MetallicRoughness,D6=Lt.SpecularGlossiness,zre={name:"MaterialPipelineStage",_processTexture:qg,_processTextureTransform:Hre};zre.process=function(e,t,n){let i=t.material,r=e.model,o=u(r.classificationType),s=o,a=e.uniformMap,c=e.shaderBuilder,l=n.context.defaultTexture,f=n.context.defaultNormalTexture,d=n.context.defaultEmissiveTexture;c4e(i,a,c,l,f,d,s),u(i.specularGlossiness)?l4e(i,a,c,l,s):u4e(i,a,c,l,s);let p=Jt.getAttributeBySemantic(t,Tt.NORMAL),g=e.lightingOptions;i.unlit||!p||o?g.lightingModel=Zh.UNLIT:g.lightingModel=Zh.PBR;let m=r.backFaceCulling&&!i.doubleSided;e.renderStateOptions.cull.enabled=m;let A=e.alphaOptions;i.alphaMode===Xh.BLEND?A.pass=be.TRANSLUCENT:i.alphaMode===Xh.MASK&&(A.alphaCutoff=i.alphaCutoff),c.addFragmentLines(OO),i.doubleSided&&c.addDefine("HAS_DOUBLE_SIDED_MATERIAL",void 0,Te.BOTH)};function Hre(e,t,n,i,r){let o=`HAS_${r}_TEXTURE_TRANSFORM`;e.addDefine(o,void 0,Te.FRAGMENT);let s=`${i}Transform`;e.addUniform("mat3",s,Te.FRAGMENT),t[s]=function(){return n.transform}}function qg(e,t,n,i,r,o){e.addUniform("sampler2D",i,Te.FRAGMENT),t[i]=function(){return y(n.texture,o)};let s=`HAS_${r}_TEXTURE`;e.addDefine(s,void 0,Te.FRAGMENT);let c=`v_texCoord_${n.texCoord}`,l=`TEXCOORD_${r}`;e.addDefine(l,c,Te.FRAGMENT);let f=n.transform;u(f)&&!Q.equals(f,Q.IDENTITY)&&Hre(e,t,n,i,r)}function c4e(e,t,n,i,r,o,s){let a=e.emissiveFactor;if(u(a)&&!h.equals(a,a4e.DEFAULT_EMISSIVE_FACTOR)){n.addUniform("vec3","u_emissiveFactor",Te.FRAGMENT),t.u_emissiveFactor=function(){return e.emissiveFactor},n.addDefine("HAS_EMISSIVE_FACTOR",void 0,Te.FRAGMENT);let f=e.emissiveTexture;u(f)&&!s&&qg(n,t,f,"u_emissiveTexture","EMISSIVE",o)}let c=e.normalTexture;u(c)&&!s&&qg(n,t,c,"u_normalTexture","NORMAL",r);let l=e.occlusionTexture;u(l)&&!s&&qg(n,t,l,"u_occlusionTexture","OCCLUSION",i)}function l4e(e,t,n,i,r){let o=e.specularGlossiness;n.addDefine("USE_SPECULAR_GLOSSINESS",void 0,Te.FRAGMENT);let s=o.diffuseTexture;u(s)&&!r&&qg(n,t,s,"u_diffuseTexture","DIFFUSE",i);let a=o.diffuseFactor;u(a)&&!se.equals(a,D6.DEFAULT_DIFFUSE_FACTOR)&&(n.addUniform("vec4","u_diffuseFactor",Te.FRAGMENT),t.u_diffuseFactor=function(){return o.diffuseFactor},n.addDefine("HAS_DIFFUSE_FACTOR",void 0,Te.FRAGMENT));let c=o.specularGlossinessTexture;u(c)&&!r&&qg(n,t,c,"u_specularGlossinessTexture","SPECULAR_GLOSSINESS",i);let l=o.specularFactor;u(l)&&!h.equals(l,D6.DEFAULT_SPECULAR_FACTOR)&&(n.addUniform("vec3","u_specularFactor",Te.FRAGMENT),t.u_specularFactor=function(){return o.specularFactor},n.addDefine("HAS_SPECULAR_FACTOR",void 0,Te.FRAGMENT));let f=o.glossinessFactor;u(f)&&f!==D6.DEFAULT_GLOSSINESS_FACTOR&&(n.addUniform("float","u_glossinessFactor",Te.FRAGMENT),t.u_glossinessFactor=function(){return o.glossinessFactor},n.addDefine("HAS_GLOSSINESS_FACTOR",void 0,Te.FRAGMENT))}function u4e(e,t,n,i,r){let o=e.metallicRoughness;n.addDefine("USE_METALLIC_ROUGHNESS",void 0,Te.FRAGMENT);let s=o.baseColorTexture;u(s)&&!r&&qg(n,t,s,"u_baseColorTexture","BASE_COLOR",i);let a=o.baseColorFactor;u(a)&&!se.equals(a,w6.DEFAULT_BASE_COLOR_FACTOR)&&(n.addUniform("vec4","u_baseColorFactor",Te.FRAGMENT),t.u_baseColorFactor=function(){return o.baseColorFactor},n.addDefine("HAS_BASE_COLOR_FACTOR",void 0,Te.FRAGMENT));let c=o.metallicRoughnessTexture;u(c)&&!r&&qg(n,t,c,"u_metallicRoughnessTexture","METALLIC_ROUGHNESS",i);let l=o.metallicFactor;u(l)&&l!==w6.DEFAULT_METALLIC_FACTOR&&(n.addUniform("float","u_metallicFactor",Te.FRAGMENT),t.u_metallicFactor=function(){return o.metallicFactor},n.addDefine("HAS_METALLIC_FACTOR",void 0,Te.FRAGMENT));let f=o.roughnessFactor;u(f)&&f!==w6.DEFAULT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_roughnessFactor",Te.FRAGMENT),t.u_roughnessFactor=function(){return o.roughnessFactor},n.addDefine("HAS_ROUGHNESS_FACTOR",void 0,Te.FRAGMENT))}var MO=zre;var RO=`void morphTargetsStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + attributes.positionMC = getMorphedPosition(positionMC); + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = getMorphedNormal(normalMC); + #endif + + #ifdef HAS_TANGENTS + vec3 tangentMC = attributes.tangentMC; + attributes.tangentMC = getMorphedTangent(tangentMC); + #endif +}`;var Ta={name:"MorphTargetsPipelineStage",FUNCTION_ID_GET_MORPHED_POSITION:"getMorphedPosition",FUNCTION_SIGNATURE_GET_MORPHED_POSITION:"vec3 getMorphedPosition(in vec3 position)",FUNCTION_ID_GET_MORPHED_NORMAL:"getMorphedNormal",FUNCTION_SIGNATURE_GET_MORPHED_NORMAL:"vec3 getMorphedNormal(in vec3 normal)",FUNCTION_ID_GET_MORPHED_TANGENT:"getMorphedTangent",FUNCTION_SIGNATURE_GET_MORPHED_TANGENT:"vec3 getMorphedTangent(in vec3 tangent)"};Ta.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_MORPH_TARGETS",void 0,Te.VERTEX),_4e(n);let i=t.morphTargets.length;for(let a=0;a<i;a++){let c=t.morphTargets[a].attributes,l=c.length;for(let f=0;f<l;f++){let d=c[f],p=d.semantic;p!==Tt.POSITION&&p!==Tt.NORMAL&&p!==Tt.TANGENT||(d4e(e,d,e.attributeIndex,a),e.attributeIndex++)}}g4e(n);let o=e.runtimeNode.morphWeights.length;n.addUniform("float",`u_morphWeights[${o}]`,Te.VERTEX),n.addVertexLines(RO);let s={u_morphWeights:function(){return e.runtimeNode.morphWeights}};e.uniformMap=_t(s,e.uniformMap)};var f4e={attributeString:void 0,functionId:void 0};function d4e(e,t,n,i){let r=e.shaderBuilder;h4e(e,t,n);let o=m4e(t,f4e);p4e(r,o,i)}function h4e(e,t,n){let i={index:n,value:u(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,componentsPerAttribute:on.getNumberOfComponents(t.type),componentDatatype:t.componentDatatype,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};e.attributes.push(i)}function m4e(e,t){switch(e.semantic){case Tt.POSITION:t.attributeString="Position",t.functionId=Ta.FUNCTION_ID_GET_MORPHED_POSITION;break;case Tt.NORMAL:t.attributeString="Normal",t.functionId=Ta.FUNCTION_ID_GET_MORPHED_NORMAL;break;case Tt.TANGENT:t.attributeString="Tangent",t.functionId=Ta.FUNCTION_ID_GET_MORPHED_TANGENT;break;default:break}return t}function p4e(e,t,n){let i=t.attributeString,r=`a_target${i}_${n}`,o=`morphed${i} += u_morphWeights[${n}] * a_target${i}_${n};`;e.addAttribute("vec3",r),e.addFunctionLines(t.functionId,[o])}function _4e(e){e.addFunction(Ta.FUNCTION_ID_GET_MORPHED_POSITION,Ta.FUNCTION_SIGNATURE_GET_MORPHED_POSITION,Te.VERTEX);let t="vec3 morphedPosition = position;";e.addFunctionLines(Ta.FUNCTION_ID_GET_MORPHED_POSITION,[t]),e.addFunction(Ta.FUNCTION_ID_GET_MORPHED_NORMAL,Ta.FUNCTION_SIGNATURE_GET_MORPHED_NORMAL,Te.VERTEX);let n="vec3 morphedNormal = normal;";e.addFunctionLines(Ta.FUNCTION_ID_GET_MORPHED_NORMAL,[n]),e.addFunction(Ta.FUNCTION_ID_GET_MORPHED_TANGENT,Ta.FUNCTION_SIGNATURE_GET_MORPHED_TANGENT,Te.VERTEX);let i="vec3 morphedTangent = tangent;";e.addFunctionLines(Ta.FUNCTION_ID_GET_MORPHED_TANGENT,[i])}function g4e(e){let t="return morphedPosition;";e.addFunctionLines(Ta.FUNCTION_ID_GET_MORPHED_POSITION,[t]);let n="return morphedNormal;";e.addFunctionLines(Ta.FUNCTION_ID_GET_MORPHED_NORMAL,[n]);let i="return morphedTangent;";e.addFunctionLines(Ta.FUNCTION_ID_GET_MORPHED_TANGENT,[i])}var BO=Ta;var Gre={name:"PickingPipelineStage"};Gre.process=function(e,t,n){let i=n.context,r=e.runtimeNode,o=e.shaderBuilder,s=e.model,a=r.node.instances;if(e.hasPropertyTable)y4e(e,t,a,i);else if(u(a))A4e(e,i);else{let c=Wre(e),l=i.createPickId(c);s._pipelineResources.push(l),s._pickIds.push(l),o.addUniform("vec4","czm_pickColor",Te.FRAGMENT);let f=e.uniformMap;f.czm_pickColor=function(){return l.color},e.pickId="czm_pickColor"}};function Wre(e,t){let n=e.model;if(u(n.pickObject))return n.pickObject;let i={model:n,node:e.runtimeNode,primitive:e.runtimePrimitive},r;if(Ur.is3DTiles(n.type)){let o=n.content;r={content:o,primitive:o.tileset,detail:i}}else r={primitive:n,detail:i};return r.id=n.id,u(t)&&(r.instanceId=t),r}function y4e(e,t,n){let i=e.model,r,o,s=i.featureIdLabel,a=i.instanceFeatureIdLabel;u(i.featureTableId)?r=i.featureTableId:u(n)?(o=Jt.getFeatureIdsByLabel(n.featureIds,a),r=o.propertyTableId):(o=Jt.getFeatureIdsByLabel(t.featureIds,s),r=o.propertyTableId);let c=i.featureTables[r];e.shaderBuilder.addUniform("sampler2D","model_pickTexture",Te.FRAGMENT);let f=c.batchTexture;e.uniformMap.model_pickTexture=function(){return y(f.pickTexture,f.defaultTexture)},e.pickId="((selectedFeature.id < int(model_featuresLength)) ? texture(model_pickTexture, selectedFeature.st) : vec4(0.0))"}function A4e(e,t){let n=e.instanceCount,i=new Array(n),r=new Uint8Array(n*4),o=e.model,s=o._pipelineResources;for(let d=0;d<n;d++){let p=Wre(e,d),g=t.createPickId(p);s.push(g),i[d]=g;let m=g.color;r[d*4+0]=z.floatToByte(m.red),r[d*4+1]=z.floatToByte(m.green),r[d*4+2]=z.floatToByte(m.blue),r[d*4+3]=z.floatToByte(m.alpha)}o._pickIds=i;let a=ht.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1;let c=!1;o.statistics.addBuffer(a,c),s.push(a);let l={index:e.attributeIndex++,vertexBuffer:a,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0,instanceDivisor:1};e.attributes.push(l);let f=e.shaderBuilder;f.addDefine("USE_PICKING",void 0,Te.BOTH),f.addAttribute("vec4","a_pickColor"),f.addVarying("vec4","v_pickColor"),e.pickId="v_pickColor"}var LO=Gre;var x4e={ADD:0,REPLACE:1},Vr=Object.freeze(x4e);var NO=`float getPointSizeFromAttenuation(vec3 positionEC) { + // Variables are packed into a single vector to minimize gl.uniformXXX() calls + float pointSize = model_pointCloudParameters.x; + float geometricError = model_pointCloudParameters.y; + float depthMultiplier = model_pointCloudParameters.z; + + float depth = -positionEC.z; + return min((geometricError / depth) * depthMultiplier, pointSize); +} + +#ifdef HAS_POINT_CLOUD_SHOW_STYLE +float pointCloudShowStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return float(getShowFromStyle(attributes, metadata, tiles3d_tileset_time)); +} +#endif + +#ifdef HAS_POINT_CLOUD_COLOR_STYLE +vec4 pointCloudColorStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return getColorFromStyle(attributes, metadata, tiles3d_tileset_time); +} +#endif + +#ifdef HAS_POINT_CLOUD_POINT_SIZE_STYLE +float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return float(getPointSizeFromStyle(attributes, metadata, tiles3d_tileset_time)); +} +#elif defined(HAS_POINT_CLOUD_ATTENUATION) +float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + return getPointSizeFromAttenuation(v_positionEC); +} +#endif + +#ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING +float pointCloudBackFaceCullingStage() { + #if defined(HAS_NORMALS) && !defined(HAS_DOUBLE_SIDED_MATERIAL) + // This needs to be computed in eye coordinates so we can't use attributes.normalMC + return step(-v_normalEC.z, 0.0); + #else + return 1.0; + #endif +} +#endif`;var C4e=new se,qre={name:"PointCloudStylingPipelineStage"};qre.process=function(e,t,n){let i=e.shaderBuilder,r=e.model,o=r.style,s=r.structuralMetadata,a=u(s)?s.propertyAttributes:void 0,c=u(r.featureTableId)&&r.featureTables[r.featureTableId].featuresLength>0,l=!u(a)&&c;if(u(o)&&!l){let A=S4e(a),x=v4e(o,A);w4e(i,x);let T=D4e(x).indexOf("normalMC")>=0,E=Jt.getAttributeBySemantic(t,Tt.NORMAL);if(T&&!E)throw new de("Style references the NORMAL semantic but the point cloud does not have normals");i.addDefine("COMPUTE_POSITION_WC_STYLE",void 0,Te.VERTEX),x.styleTranslucent&&(e.alphaOptions.pass=be.TRANSLUCENT)}let f=r.pointCloudShading;f.attenuation&&i.addDefine("HAS_POINT_CLOUD_ATTENUATION",void 0,Te.VERTEX),f.backFaceCulling&&i.addDefine("HAS_POINT_CLOUD_BACK_FACE_CULLING",void 0,Te.VERTEX);let d,p,g;Ur.is3DTiles(r.type)&&(p=!0,d=r.content,g=d.tile.refine===Vr.ADD),i.addUniform("vec4","model_pointCloudParameters",Te.VERTEX),i.addVertexLines(NO);let m=e.uniformMap;m.model_pointCloudParameters=function(){let A=C4e,x=1;p&&(x=g?5:d.tileset.maximumScreenSpaceError),A.x=y(f.maximumAttenuation,x),A.x*=n.pixelRatio;let C=T4e(e,t,f,d);A.y=C*f.geometricErrorScale;let T=n.context,E=n.camera.frustum,S;return n.mode===ne.SCENE2D||E instanceof en?S=Number.POSITIVE_INFINITY:S=T.drawingBufferHeight/n.camera.frustum.sseDenominator,A.z=S,p&&(A.w=d.tileset.timeSinceLoad),A}};var jre=new h;function T4e(e,t,n,i){if(u(i)){let f=i.tile.geometricError;if(f>0)return f}if(u(n.baseResolution))return n.baseResolution;let r=Jt.getAttributeBySemantic(t,Tt.POSITION),o=r.count,s=e.runtimeNode.transform,a=h.subtract(r.max,r.min,jre);a=N.multiplyByPointAsVector(s,a,jre);let c=a.x*a.y*a.z;return P.cbrt(c/o)}var E4e={colorStyleFunction:void 0,showStyleFunction:void 0,pointSizeStyleFunction:void 0,styleTranslucent:!1},b4e={POSITION:"attributes.positionMC",POSITION_ABSOLUTE:"v_positionWC",COLOR:"attributes.color_0",NORMAL:"attributes.normalMC"};function S4e(e){let t=We(b4e);if(!u(e))return t;for(let n=0;n<e.length;n++){let r=e[n].properties;for(let o in r)r.hasOwnProperty(o)&&(t[o]=`metadata.${o}`)}return t}var I6="ProcessedAttributes attributes, Metadata metadata, float tiles3d_tileset_time";function v4e(e,t){let n=E4e,i={translucent:!1};return n.colorStyleFunction=e.getColorShaderFunction(`getColorFromStyle(${I6})`,t,i),n.showStyleFunction=e.getShowShaderFunction(`getShowFromStyle(${I6})`,t,i),n.pointSizeStyleFunction=e.getPointSizeShaderFunction(`getPointSizeFromStyle(${I6})`,t,i),n.styleTranslucent=u(n.colorStyleFunction)&&i.translucent,n}function w4e(e,t){let n=t.colorStyleFunction;u(n)&&(e.addDefine("HAS_POINT_CLOUD_COLOR_STYLE",void 0,Te.BOTH),e.addVertexLines(n),e.addVarying("vec4","v_pointCloudColor"));let i=t.showStyleFunction;u(i)&&(e.addDefine("HAS_POINT_CLOUD_SHOW_STYLE",void 0,Te.VERTEX),e.addVertexLines(i));let r=t.pointSizeStyleFunction;u(r)&&(e.addDefine("HAS_POINT_CLOUD_POINT_SIZE_STYLE",void 0,Te.VERTEX),e.addVertexLines(r))}function P6(e,t){let n=/attributes\.(\w+)/g,i=n.exec(e);for(;i!==null;){let r=i[1];t.indexOf(r)===-1&&t.push(r),i=n.exec(e)}}function D4e(e){let t=e.colorStyleFunction,n=e.showStyleFunction,i=e.pointSizeStyleFunction,r=[];return u(t)&&P6(t,r),u(n)&&P6(n,r),u(i)&&P6(i,r),r}var FO=qre;var UO=`void primitiveOutlineStage() { + v_outlineCoordinates = a_outlineCoordinates; +} +`;var VO=`void primitiveOutlineStage(inout czm_modelMaterial material) { + if (!model_showOutline) { + return; + } + + float outlineX = + texture(model_outlineTexture, vec2(v_outlineCoordinates.x, 0.5)).r; + float outlineY = + texture(model_outlineTexture, vec2(v_outlineCoordinates.y, 0.5)).r; + float outlineZ = + texture(model_outlineTexture, vec2(v_outlineCoordinates.z, 0.5)).r; + float outlineness = max(outlineX, max(outlineY, outlineZ)); + + material.diffuse = mix(material.diffuse, model_outlineColor.rgb, model_outlineColor.a * outlineness); +} + +`;var Yre={name:"PrimitiveOutlinePipelineStage"};Yre.process=function(e,t,n){let i=e.shaderBuilder,r=e.uniformMap;i.addDefine("HAS_PRIMITIVE_OUTLINE",void 0,Te.BOTH),i.addAttribute("vec3","a_outlineCoordinates"),i.addVarying("vec3","v_outlineCoordinates");let o=t.outlineCoordinates,s={index:e.attributeIndex++,vertexBuffer:o.buffer,componentsPerAttribute:on.getNumberOfComponents(o.type),componentDatatype:o.componentDatatype,offsetInBytes:o.byteOffset,strideInBytes:o.byteStride,normalize:o.normalized};e.attributes.push(s),i.addUniform("sampler2D","model_outlineTexture",Te.FRAGMENT);let a=FA.createTexture(n.context);r.model_outlineTexture=function(){return a};let c=e.model;i.addUniform("vec4","model_outlineColor",Te.FRAGMENT),r.model_outlineColor=function(){return c.outlineColor},i.addUniform("bool","model_showOutline",Te.FRAGMENT),r.model_showOutline=function(){return c.showOutline},i.addVertexLines(UO),i.addFragmentLines(VO)};var kO=Yre;var Xre={name:"PrimitiveStatisticsPipelineStage",_countGeometry:Kre,_count2DPositions:Jre,_countMorphTargetAttributes:Zre,_countMaterialTextures:Qre,_countFeatureIdTextures:$re,_countBinaryMetadata:eoe};Xre.process=function(e,t,n){let i=e.model,r=i.statistics;Kre(r,t),Jre(r,e.runtimePrimitive),Zre(r,t),Qre(r,t.material),$re(r,t.featureIds),eoe(r,i)};function Kre(e,t){let n=u(t.indices)?t.indices.count:Jt.getAttributeBySemantic(t,"POSITION").count,i=t.primitiveType;i===Be.POINTS?e.pointsLength+=n:Be.isTriangles(i)&&(e.trianglesLength+=I4e(i,n));let r=t.attributes,o=r.length;for(let c=0;c<o;c++){let l=r[c];if(u(l.buffer)){let f=u(l.typedArray);e.addBuffer(l.buffer,f)}}let s=t.outlineCoordinates;u(s)&&u(s.buffer)&&e.addBuffer(s.buffer,!1);let a=t.indices;if(u(a)&&u(a.buffer)){let c=u(a.typedArray);e.addBuffer(a.buffer,c)}}function I4e(e,t){switch(e){case Be.TRIANGLES:return t/3;case Be.TRIANGLE_STRIP:case Be.TRIANGLE_FAN:return Math.max(t-2,0);default:return 0}}function Jre(e,t){let n=t.positionBuffer2D;u(n)&&e.addBuffer(n,!0)}function Zre(e,t){let n=t.morphTargets;if(!u(n))return;let i=!1,r=n.length;for(let o=0;o<r;o++){let s=n[o].attributes,a=s.length;for(let c=0;c<a;c++){let l=s[c];u(l.buffer)&&e.addBuffer(l.buffer,i)}}}function Qre(e,t){let n=P4e(t),i=n.length;for(let r=0;r<i;r++){let o=n[r];u(o)&&u(o.texture)&&e.addTexture(o.texture)}}function P4e(e){let t=e.metallicRoughness,n=[e.emissiveTexture,e.normalTexture,e.occlusionTexture,t.baseColorTexture,t.metallicRoughnessTexture],i=e.specularGlossiness;return u(i)&&(n.push(i.diffuseTexture),n.push(i.specularGlossinessTexture)),n}function $re(e,t){let n=t.length;for(let i=0;i<n;i++){let r=t[i];if(r instanceof Lt.FeatureIdTexture){let o=r.textureReader;u(o.texture)&&e.addTexture(o.texture)}}}function eoe(e,t){let n=t.structuralMetadata;u(n)&&(O4e(e,n),e.propertyTablesByteLength+=n.propertyTablesByteLength);let i=t.featureTables;if(!u(i))return;let r=i.length;for(let o=0;o<r;o++){let s=i[o];e.addBatchTexture(s.batchTexture)}}function O4e(e,t){let n=t.propertyTextures;if(!u(n))return;let i=n.length;for(let r=0;r<i;r++){let s=n[r].properties;for(let a in s)if(s.hasOwnProperty(a)){let l=s[a].textureReader;u(l.texture)&&e.addTexture(l.texture)}}}var zO=Xre;var M4e=new N,R4e=new N,toe={name:"SceneMode2DPipelineStage"};toe.process=function(e,t,n){let i=Jt.getAttributeBySemantic(t,Tt.POSITION),r=e.shaderBuilder,o=e.model,s=o.sceneGraph.computedModelMatrix,a=e.runtimeNode.computedTransform,c=N.multiplyTransformation(s,a,M4e),l=N4e(e,c,n),f=e.runtimePrimitive;f.boundingSphere2D=l;let d=e.runtimeNode.node.instances;if(u(d))return;if(u(i.typedArray)){let A=V4e(i,c,l,n);f.positionBuffer2D=A,o._modelResources.push(A),i.typedArray=void 0}r.addDefine("USE_2D_POSITIONS",void 0,Te.VERTEX),r.addUniform("mat4","u_modelView2D",Te.VERTEX);let p=N.fromTranslation(l.center,new N),g=n.context,m={u_modelView2D:function(){return N.multiplyTransformation(g.uniformState.view,p,R4e)}};e.uniformMap=_t(m,e.uniformMap)};var B4e=new h,L4e=new h;function N4e(e,t,n){let i=N.multiplyByPoint(t,e.positionMin,B4e),r=Zi.computeActualWgs84Position(n,i,i),o=N.multiplyByPoint(t,e.positionMax,L4e),s=Zi.computeActualWgs84Position(n,o,o);return ae.fromCornerPoints(r,s,new ae)}var noe=new h;function F4e(e,t){let n=e.length,i=new Float32Array(n),r=t.quantizedVolumeOffset,o=t.quantizedVolumeStepSize;for(let s=0;s<n;s+=3){let a=h.fromArray(e,s,noe),c=h.multiplyComponents(a,o,a),l=h.add(c,r,c);i[s]=l.x,i[s+1]=l.y,i[s+2]=l.z}return i}function U4e(e,t,n,i){let r;u(e.quantization)?r=F4e(e.typedArray,e.quantization):r=e.typedArray.slice();let o=e.byteOffset/Float32Array.BYTES_PER_ELEMENT,s=r.length,a=u(e.byteStride)?e.byteStride/Float32Array.BYTES_PER_ELEMENT:3;for(let c=o;c<s;c+=a){let l=h.fromArray(r,c,noe);if(isNaN(l.x)||isNaN(l.y)||isNaN(l.z))continue;let f=N.multiplyByPoint(t,l,l),d=Zi.computeActualWgs84Position(i,f,f),p=h.subtract(d,n,d);r[c]=p.x,r[c+1]=p.y,r[c+2]=p.z}return r}function V4e(e,t,n,i){let r=We(i);r.mode=ne.COLUMBUS_VIEW;let o=n.center,s=U4e(e,t,o,r),a=ht.createVertexBuffer({context:i.context,typedArray:s,usage:Fe.STATIC_DRAW});return a.vertexArrayDestroyable=!1,a}var HO=toe;var GO=`void skinningStage(inout ProcessedAttributes attributes) +{ + mat4 skinningMatrix = getSkinningMatrix(); + mat3 skinningMatrixMat3 = mat3(skinningMatrix); + + vec4 positionMC = vec4(attributes.positionMC, 1.0); + attributes.positionMC = vec3(skinningMatrix * positionMC); + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = skinningMatrixMat3 * normalMC; + #endif + + #ifdef HAS_TANGENTS + vec3 tangentMC = attributes.tangentMC; + attributes.tangentMC = skinningMatrixMat3 * tangentMC; + #endif +}`;var HA={name:"SkinningPipelineStage",FUNCTION_ID_GET_SKINNING_MATRIX:"getSkinningMatrix",FUNCTION_SIGNATURE_GET_SKINNING_MATRIX:"mat4 getSkinningMatrix()"};HA.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_SKINNING",void 0,Te.VERTEX),z4e(n,t);let i=e.runtimeNode,r=i.computedJointMatrices;n.addUniform("mat4",`u_jointMatrices[${r.length}]`,Te.VERTEX),n.addVertexLines(GO);let o={u_jointMatrices:function(){return i.computedJointMatrices}};e.uniformMap=_t(o,e.uniformMap)};function k4e(e){let t=-1,n=e.attributes,i=n.length;for(let r=0;r<i;r++){let o=n[r];(o.semantic===Tt.JOINTS||o.semantic===Tt.WEIGHTS)&&(t=Math.max(t,o.setIndex))}return t}function z4e(e,t){e.addFunction(HA.FUNCTION_ID_GET_SKINNING_MATRIX,HA.FUNCTION_SIGNATURE_GET_SKINNING_MATRIX,Te.VERTEX);let n="mat4 skinnedMatrix = mat4(0);";e.addFunctionLines(HA.FUNCTION_ID_GET_SKINNING_MATRIX,[n]);let i,r,o=["x","y","z","w"],s=k4e(t);for(i=0;i<=s;i++)for(r=0;r<=3;r++){let c=o[r],l=`skinnedMatrix += a_weights_${i}.${c} * u_jointMatrices[int(a_joints_${i}.${c})];`;e.addFunctionLines(HA.FUNCTION_ID_GET_SKINNING_MATRIX,[l])}let a="return skinnedMatrix;";e.addFunctionLines(HA.FUNCTION_ID_GET_SKINNING_MATRIX,[a])}var WO=HA;var O6={};function H4e(e){let t=Ue.createTypedArray(e,e*2),n=e,i=0;for(let r=0;r<n;r+=3)t[i++]=r,t[i++]=r+1,t[i++]=r+1,t[i++]=r+2,t[i++]=r+2,t[i++]=r;return t}function G4e(e,t){let n=t.length,i=Ue.createTypedArray(e,n*2),r=0;for(let o=0;o<n;o+=3){let s=t[o],a=t[o+1],c=t[o+2];i[r++]=s,i[r++]=a,i[r++]=a,i[r++]=c,i[r++]=c,i[r++]=s}return i}function W4e(e){let t=e-2,n=2+t*4,i=Ue.createTypedArray(e,n),r=0;i[r++]=0,i[r++]=1;for(let o=0;o<t;o++)i[r++]=o+1,i[r++]=o+2,i[r++]=o+2,i[r++]=o;return i}function j4e(e,t){let i=t.length-2,r=2+i*4,o=Ue.createTypedArray(e,r),s=0;o[s++]=t[0],o[s++]=t[1];for(let a=0;a<i;a++){let c=t[a],l=t[a+1],f=t[a+2];o[s++]=l,o[s++]=f,o[s++]=f,o[s++]=c}return o}function q4e(e){let t=e-2,n=2+t*4,i=Ue.createTypedArray(e,n),r=0;i[r++]=0,i[r++]=1;for(let o=0;o<t;o++)i[r++]=o+1,i[r++]=o+2,i[r++]=o+2,i[r++]=0;return i}function Y4e(e,t){let i=t.length-2,r=2+i*4,o=Ue.createTypedArray(e,r),s=0,a=t[0];o[s++]=a,o[s++]=t[1];for(let c=0;c<i;c++){let l=t[c+1],f=t[c+2];o[s++]=l,o[s++]=f,o[s++]=f,o[s++]=a}return o}O6.createWireframeIndices=function(e,t,n){let i=u(n);if(e===Be.TRIANGLES)return i?G4e(t,n):H4e(t);if(e===Be.TRIANGLE_STRIP)return i?j4e(t,n):W4e(t);if(e===Be.TRIANGLE_FAN)return i?Y4e(t,n):q4e(t)};O6.getWireframeIndicesCount=function(e,t){return e===Be.TRIANGLES?t*2:e===Be.TRIANGLE_STRIP||e===Be.TRIANGLE_FAN?2+(t-2)*4:t};var cE=O6;var ioe={name:"WireframePipelineStage"};ioe.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_WIREFRAME",void 0,Te.FRAGMENT);let r=e.model,o=X4e(t,e.indices,n);r._pipelineResources.push(o),e.wireframeIndexBuffer=o;let s=!1;r.statistics.addBuffer(o,s);let a=e.primitiveType,c=e.count;e.primitiveType=Be.LINES,e.count=cE.getWireframeIndicesCount(a,c)};function X4e(e,t,n){let r=Jt.getAttributeBySemantic(e,Tt.POSITION).count,o=n.context.webgl2,s;if(u(t)){let f=t.buffer,d=t.count;u(f)&&o?(s=f.sizeInBytes===d?new Uint8Array(d):Ue.createTypedArray(r,d),f.getBufferData(s)):s=t.typedArray}let a=e.primitiveType,c=cE.createWireframeIndices(a,r,s),l=Ue.fromSizeInBytes(c.BYTES_PER_ELEMENT);return ht.createIndexBuffer({context:n.context,typedArray:c,usage:Fe.STATIC_DRAW,indexDatatype:l})}var jO=ioe;function roe(e){e=y(e,y.EMPTY_OBJECT);let t=e.primitive,n=e.node,i=e.model;this.primitive=t,this.node=n,this.model=i,this.pipelineStages=[],this.drawCommand=void 0,this.boundingSphere=void 0,this.boundingSphere2D=void 0,this.positionBuffer2D=void 0,this.batchLengths=void 0,this.batchOffsets=void 0,this.updateStages=[]}roe.prototype.configurePipeline=function(e){let t=this.pipelineStages;t.length=0;let n=this.primitive,i=this.node,r=this.model,o=r.customShader,s=r.style,a=e.context.webgl2,l=e.mode!==ne.SCENE3D&&!e.scene3DOnly&&r._projectTo2D,f=u(n.morphTargets)&&n.morphTargets.length>0,d=u(i.skin),p=u(o),m=!(p&&u(o.fragmentShaderText))||o.mode!==Wp.REPLACE_MATERIAL,A=Jt.hasQuantizedAttributes(n.attributes),x=r.debugWireframe&&Be.isTriangles(n.primitiveType)&&(r._enableDebugWireframe||a),C=r.pointCloudShading,T=u(C)&&C.attenuation,E=u(C)&&C.backFaceCulling,S=n.primitiveType===Be.POINTS&&(u(s)||T||E),v=r._enableShowOutline&&u(n.outlineCoordinates),D=K4e(r,i,n),M=u(r.classificationType);l&&t.push(HO),t.push(DO),x&&t.push(jO),M&&t.push(dO),f&&t.push(BO),d&&t.push(WO),S&&t.push(FO),A&&t.push(bO),m&&t.push(MO),t.push(Gg),t.push(cf),D.hasPropertyTable&&(t.push(jg),t.push(fO),t.push(pO)),p&&t.push(TO),t.push(PO),r.allowPicking&&t.push(LO),v&&t.push(kO),t.push(uO),t.push(zO)};function K4e(e,t,n){let i;return u(t.instances)&&(i=Jt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),u(i))?{hasFeatureIds:!0,hasPropertyTable:u(i.propertyTableId)}:(i=Jt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),u(i)?{hasFeatureIds:!0,hasPropertyTable:u(i.propertyTableId)}:{hasFeatureIds:!1,hasPropertyTable:!1})}var qO=roe;function M6(e){e=y(e,y.EMPTY_OBJECT),this._sceneGraph=e.sceneGraph;let t=e.skin;this._skin=t,this._inverseBindMatrices=void 0,this._joints=[],this._jointMatrices=[],J4e(this)}Object.defineProperties(M6.prototype,{skin:{get:function(){return this._skin}},sceneGraph:{get:function(){return this._sceneGraph}},inverseBindMatrices:{get:function(){return this._inverseBindMatrices}},joints:{get:function(){return this._joints}},jointMatrices:{get:function(){return this._jointMatrices}}});function J4e(e){let t=e.skin,n=t.inverseBindMatrices;e._inverseBindMatrices=n;let i=t.joints,r=i.length,o=e.sceneGraph._runtimeNodes,s=e.joints,a=e._jointMatrices;for(let c=0;c<r;c++){let l=i[c].index,f=o[l];s.push(f);let d=n[c],p=ooe(f,d,new N);a.push(p)}}function ooe(e,t,n){let i=N.multiplyTransformation(e.transformToRoot,e.transform,n);return n=N.multiplyTransformation(i,t,n),n}M6.prototype.updateJointMatrices=function(){let e=this._jointMatrices,t=e.length;for(let n=0;n<t;n++){let i=this.joints[n],r=this.inverseBindMatrices[n];e[n]=ooe(i,r,e[n])}};var YO=M6;function Z4e(){this.pass=void 0,this.alphaCutoff=void 0}var XO=Z4e;function Q4e(e){this.shaderBuilder=new U0,this.model=e,this.uniformMap={},this.alphaOptions=new XO,this.renderStateOptions=Ve.getState(Ve.fromCache({depthTest:{enabled:!0,func:Wa.LESS_OR_EQUAL}})),this.hasSilhouette=!1,this.hasSkipLevelOfDetail=!1}var KO=Q4e;var JO=`void silhouetteStage(inout vec4 color) { + if(model_silhouettePass) { + color = czm_gammaCorrect(model_silhouetteColor); + } +}`;var ZO=`void silhouetteStage(in ProcessedAttributes attributes, inout vec4 positionClip) { + #ifdef HAS_NORMALS + if(model_silhouettePass) { + vec3 normal = normalize(czm_normal3D * attributes.normalMC); + normal.x *= czm_projection[0][0]; + normal.y *= czm_projection[1][1]; + positionClip.xy += normal.xy * positionClip.w * model_silhouetteSize * czm_pixelRatio / czm_viewport.z; + } + #endif +} +`;var aV={name:"ModelSilhouettePipelineStage"};aV.silhouettesLength=0;aV.process=function(e,t,n){u(t._silhouetteId)||(t._silhouetteId=++aV.silhouettesLength);let i=e.shaderBuilder;i.addDefine("HAS_SILHOUETTE",void 0,Te.BOTH),i.addVertexLines(ZO),i.addFragmentLines(JO),i.addUniform("vec4","model_silhouetteColor",Te.FRAGMENT),i.addUniform("float","model_silhouetteSize",Te.VERTEX),i.addUniform("bool","model_silhouettePass",Te.BOTH);let r={model_silhouetteColor:function(){return t.silhouetteColor},model_silhouetteSize:function(){return t.silhouetteSize},model_silhouettePass:function(){return!1}};e.uniformMap=_t(r,e.uniformMap),e.hasSilhouette=!0};var QO=aV;var $O=`void modelSplitterStage() +{ + // Don't split when rendering the shadow map, because it is rendered from + // the perspective of a totally different camera. +#ifndef SHADOW_MAP + if (model_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (model_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif +} +`;var cV={name:"ModelSplitterPipelineStage",SPLIT_DIRECTION_UNIFORM_NAME:"model_splitDirection"};cV.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_SPLITTER",void 0,Te.FRAGMENT),i.addFragmentLines($O);let r={};i.addUniform("float",cV.SPLIT_DIRECTION_UNIFORM_NAME,Te.FRAGMENT),r[cV.SPLIT_DIRECTION_UNIFORM_NAME]=function(){return t.splitDirection},e.uniformMap=_t(r,e.uniformMap)};var eM=cV;function $4e(e,t){this.model=e.model,this.shaderBuilder=e.shaderBuilder.clone(),this.uniformMap=We(e.uniformMap),this.alphaOptions=We(e.alphaOptions),this.renderStateOptions=We(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.runtimeNode=t,this.attributes=[],this.attributeIndex=1,this.featureIdVertexAttributeSetIndex=0,this.instanceCount=0}var tM=$4e;function eze(e){e=y(e,y.EMPTY_OBJECT),this.lightingModel=y(e.lightingModel,Zh.UNLIT)}var nM=eze;function tze(e,t){this.model=e.model,this.runtimeNode=e.runtimeNode,this.attributes=e.attributes.slice(),this.attributeIndex=e.attributeIndex,this.featureIdVertexAttributeSetIndex=e.featureIdVertexAttributeSetIndex,this.uniformMap=We(e.uniformMap),this.alphaOptions=We(e.alphaOptions),this.renderStateOptions=We(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.shaderBuilder=e.shaderBuilder.clone(),this.instanceCount=e.instanceCount,this.runtimePrimitive=t;let n=t.primitive;this.count=u(n.indices)?n.indices.count:Jt.getAttributeBySemantic(n,"POSITION").count,this.hasPropertyTable=!1,this.indices=n.indices,this.wireframeIndexBuffer=void 0,this.primitiveType=n.primitiveType;let i=Jt.getPositionMinMax(n,this.runtimeNode.instancingTranslationMin,this.runtimeNode.instancingTranslationMax);this.positionMin=h.clone(i.min,new h),this.positionMax=h.clone(i.max,new h),this.boundingSphere=ae.fromCornerPoints(this.positionMin,this.positionMax,new ae),this.lightingOptions=new nM,this.pickId=void 0}var iM=tze;function cu(e){e=y(e,y.EMPTY_OBJECT);let t=e.modelComponents;this._model=e.model,this._components=t,this._pipelineStages=[],this._updateStages=[],this._runtimeNodes=[],this._rootNodes=[],this._skinnedNodes=[],this._runtimeSkins=[],this.modelPipelineStages=[],this._boundingSphere=void 0,this._boundingSphere2D=void 0,this._computedModelMatrix=N.clone(N.IDENTITY),this._computedModelMatrix2D=N.clone(N.IDENTITY),this._axisCorrectionMatrix=Jt.getAxisCorrectionMatrix(t.upAxis,t.forwardAxis,new N),this._runtimeArticulations={},nze(this)}Object.defineProperties(cu.prototype,{components:{get:function(){return this._components}},computedModelMatrix:{get:function(){return this._computedModelMatrix}},axisCorrectionMatrix:{get:function(){return this._axisCorrectionMatrix}},boundingSphere:{get:function(){return this._boundingSphere}}});function nze(e){let t=e._components,n=t.scene,r=e._model.modelMatrix;soe(e,r);let o=t.articulations,s=o.length,a=e._runtimeArticulations;for(let T=0;T<s;T++){let E=o[T],S=new Z1({articulation:E,sceneGraph:e}),v=S.name;a[v]=S}let c=t.nodes,l=c.length;e._runtimeNodes=new Array(l);let d=n.nodes.length,p=N.IDENTITY;for(let T=0;T<d;T++){let E=n.nodes[T],S=aoe(e,E,p);e._rootNodes.push(S)}let g=t.skins,m=e._runtimeSkins,A=g.length;for(let T=0;T<A;T++){let E=g[T];m.push(new YO({skin:E,sceneGraph:e}))}let x=e._skinnedNodes,C=x.length;for(let T=0;T<C;T++){let E=x[T],S=e._runtimeNodes[E],D=c[E].skin.index;S._runtimeSkin=m[D],S.updateJointMatrices()}e.applyArticulations()}function soe(e,t){let n=e._components,i=e._model;e._computedModelMatrix=N.multiplyTransformation(t,n.transform,e._computedModelMatrix),e._computedModelMatrix=N.multiplyTransformation(e._computedModelMatrix,e._axisCorrectionMatrix,e._computedModelMatrix),e._computedModelMatrix=N.multiplyByUniformScale(e._computedModelMatrix,i.computedScale,e._computedModelMatrix)}var ize=new h;function rze(e,t){let n=e._computedModelMatrix,i=N.getTranslation(n,ize);if(!h.equals(i,h.ZERO))e._computedModelMatrix2D=Mt.basisTo2D(t.mapProjection,n,e._computedModelMatrix2D);else{let r=e.boundingSphere.center,o=Mt.wgs84To2DModelMatrix(t.mapProjection,r,e._computedModelMatrix2D);e._computedModelMatrix2D=N.multiply(o,n,e._computedModelMatrix2D)}e._boundingSphere2D=ae.transform(e._boundingSphere,e._computedModelMatrix2D,e._boundingSphere2D)}function aoe(e,t,n){let i=[],r=Jt.getNodeTransform(t),o=t.children.length;for(let f=0;f<o;f++){let d=t.children[f],p=N.multiplyTransformation(n,r,new N),g=aoe(e,d,p);i.push(g)}let s=new lO({node:t,transform:r,transformToRoot:n,children:i,sceneGraph:e}),a=t.primitives.length;for(let f=0;f<a;f++)s.runtimePrimitives.push(new qO({primitive:t.primitives[f],node:t,model:e._model}));let c=t.index;e._runtimeNodes[c]=s,u(t.skin)&&e._skinnedNodes.push(c);let l=t.name;if(u(l)){let f=e._model,d=new tO(f,s);f._nodesByName[l]=d}return c}var oze=new h,sze=new h,aze=new h,cze=new h;cu.prototype.buildDrawCommands=function(e){let t=this._model,n=new KO(t);t.statistics.clear(),this.configurePipeline(e);let i=this.modelPipelineStages,r,o,s;for(r=0;r<i.length;r++)i[r].process(n,t,e);let a=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,oze),c=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,sze);for(r=0;r<this._runtimeNodes.length;r++){let l=this._runtimeNodes[r];if(!u(l))continue;l.configurePipeline();let f=l.pipelineStages,d=new tM(n,l);for(o=0;o<f.length;o++)f[o].process(d,l.node,e);let p=l.computedTransform;for(o=0;o<l.runtimePrimitives.length;o++){let g=l.runtimePrimitives[o];g.configurePipeline(e);let m=g.pipelineStages,A=new iM(d,g);for(s=0;s<m.length;s++)m[s].process(A,g.primitive,e);g.boundingSphere=ae.clone(A.boundingSphere,new ae);let x=N.multiplyByPoint(p,A.positionMin,aze),C=N.multiplyByPoint(p,A.positionMax,cze);h.minimumByComponent(a,x,a),h.maximumByComponent(c,C,c);let T=q1(A,e);g.drawCommand=T}}this._boundingSphere=ae.fromCornerPoints(a,c,new ae),this._boundingSphere=ae.transformWithoutScale(this._boundingSphere,this._axisCorrectionMatrix,this._boundingSphere),this._boundingSphere=ae.transform(this._boundingSphere,this._components.transform,this._boundingSphere),t._boundingSphere=ae.transform(this._boundingSphere,t.modelMatrix,t._boundingSphere),t._initialRadius=t._boundingSphere.radius,t._boundingSphere.radius*=t._clampedScale};cu.prototype.configurePipeline=function(e){let t=this.modelPipelineStages;t.length=0;let n=this._model;u(n.color)&&t.push(Hg),!u(n.classificationType)&&(n.imageBasedLighting.enabled&&t.push(K1),n.isClippingEnabled()&&t.push(eO),n.hasSilhouette(e)&&t.push(QO),u(n.splitDirection)&&n.splitDirection!==kc.NONE&&t.push(eM),Ur.is3DTiles(n.type)&&t.push(Y1))};cu.prototype.update=function(e,t){let n,i,r;for(n=0;n<this._runtimeNodes.length;n++){let o=this._runtimeNodes[n];if(!u(o))continue;for(i=0;i<o.updateStages.length;i++)o.updateStages[i].update(o,this,e);let s=e.mode!==ne.SCENE3D&&this._model._projectTo2D;for(t&&!s&&this.updateJointMatrices(),i=0;i<o.runtimePrimitives.length;i++){let a=o.runtimePrimitives[i];for(r=0;r<a.updateStages.length;r++)a.updateStages[r].update(a,this)}}};cu.prototype.updateModelMatrix=function(e,t){soe(this,e),t.mode!==ne.SCENE3D&&rze(this,t);let n=this._rootNodes;for(let i=0;i<n.length;i++){let r=this._runtimeNodes[n[i]];r._transformDirty=!0}};cu.prototype.updateJointMatrices=function(){let e=this._skinnedNodes,t=e.length;for(let n=0;n<t;n++){let i=e[n];this._runtimeNodes[i].updateJointMatrices()}};function coe(e,t,n,i,r){if(n&&!t.show)return;let o=t.children.length;for(let c=0;c<o;c++){let l=t.getChild(c);coe(e,l,n,i,r)}let s=t.runtimePrimitives,a=s.length;for(let c=0;c<a;c++){let l=s[c];i(l,r)}}function lV(e,t,n,i){let r=e._rootNodes,o=r.length;for(let s=0;s<o;s++){let a=r[s],c=e._runtimeNodes[a];coe(e,c,t,n,i)}}var lze={backFaceCulling:void 0};cu.prototype.updateBackFaceCulling=function(e){let t=lze;t.backFaceCulling=e,lV(this,!1,uze,t)};function uze(e,t){let n=e.drawCommand;n.backFaceCulling=t.backFaceCulling}var fze={shadowMode:void 0};cu.prototype.updateShadows=function(e){let t=fze;t.shadowMode=e,lV(this,!1,dze,t)};function dze(e,t){let n=e.drawCommand;n.shadows=t.shadowMode}var hze={debugShowBoundingVolume:void 0};cu.prototype.updateShowBoundingVolume=function(e){let t=hze;t.debugShowBoundingVolume=e,lV(this,!1,mze,t)};function mze(e,t){let n=e.drawCommand;n.debugShowBoundingVolume=t.debugShowBoundingVolume}var loe=[],pze={frameState:void 0,hasSilhouette:void 0};cu.prototype.pushDrawCommands=function(e){let t=loe;t.length=0;let n=pze;n.hasSilhouette=this._model.hasSilhouette(e),n.frameState=e,lV(this,!0,_ze,n),e.commandList.push.apply(e.commandList,t)};function _ze(e,t){let n=t.frameState,i=t.hasSilhouette,r=n.passes,o=loe,s=e.drawCommand;s.pushCommands(n,n.commandList),i&&!r.pick&&s.pushSilhouetteCommands(n,o)}cu.prototype.setArticulationStage=function(e,t){let n=e.split(" ");if(n.length!==2)return;let i=n[0],r=n[1],o=this._runtimeArticulations[i];u(o)&&o.setArticulationStage(r,t)};cu.prototype.applyArticulations=function(){let e=this._runtimeArticulations;for(let t in e)e.hasOwnProperty(t)&&e[t].apply()};var rM=cu;function lE(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap=new Ct}Object.defineProperties(lE.prototype,{batchTexturesByteLength:{get:function(){let e=this._batchTextureIdMap.length,t=this._batchTextureIdMap.values,n=0;for(let i=0;i<e;i++)n+=t[i].byteLength;return n}}});lE.prototype.clear=function(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap.removeAll()};lE.prototype.addBuffer=function(e,t){if(!this._bufferIdSet.hasOwnProperty(e._id)){let n=t?2:1;this.geometryByteLength+=e.sizeInBytes*n}this._bufferIdSet[e._id]=!0};lE.prototype.addTexture=function(e){this._textureIdSet.hasOwnProperty(e._id)||(this.texturesByteLength+=e.sizeInBytes),this._textureIdSet[e._id]=!0};lE.prototype.addBatchTexture=function(e){this._batchTextureIdMap.contains(e._id)||this._batchTextureIdMap.set(e._id,e)};var oM=lE;var hoe=Yi(a3(),1);var uoe={},GA=Uint32Array.BYTES_PER_ELEMENT;uoe.parse=function(e,t){t=y(t,0);let n=new Uint8Array(e),i=new DataView(e);t+=GA;let r=i.getUint32(t,!0);if(r!==1)throw new de(`Only Point Cloud tile version 1 is supported. Version ${r} is not.`);t+=GA,t+=GA;let o=i.getUint32(t,!0);if(o===0)throw new de("Feature table must have a byte length greater than zero");t+=GA;let s=i.getUint32(t,!0);t+=GA;let a=i.getUint32(t,!0);t+=GA;let c=i.getUint32(t,!0);t+=GA;let l=Mr(n,t,o);t+=o;let f=new Uint8Array(e,t,s);t+=s;let d,p;a>0&&(d=Mr(n,t,a),t+=a,c>0&&(p=new Uint8Array(e,t,c),t+=c));let g=new Od(l,f),m=g.getGlobalProperty("POINTS_LENGTH");if(g.featuresLength=m,!u(m))throw new de("Feature table global property: POINTS_LENGTH must be defined");let A=g.getGlobalProperty("RTC_CENTER",X.FLOAT,3);u(A)&&(A=h.unpack(A));let x=gze(g,d);if(x.rtcCenter=A,x.pointsLength=m,!x.hasPositions){let C=yze(g);x.positions=C,x.hasPositions=x.hasPositions||u(C)}if(!x.hasPositions)throw new de("Either POSITION or POSITION_QUANTIZED must be defined.");if(!x.hasNormals){let C=xze(g);x.normals=C,x.hasNormals=x.hasNormals||u(C)}if(!x.hasColors){let C=Aze(g);x.colors=C,x.hasColors=x.hasColors||u(C),x.hasConstantColor=u(x.constantColor),x.isTranslucent=u(C)&&C.isTranslucent}if(!x.hasBatchIds){let C=Cze(g);x.batchIds=C,x.hasBatchIds=x.hasBatchIds||u(C)}if(x.hasBatchIds){let C=g.getGlobalProperty("BATCH_LENGTH");if(!u(C))throw new de("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");x.batchLength=C}return u(p)&&(p=new Uint8Array(p),x.batchTableJson=d,x.batchTableBinary=p),x};function gze(e,t){let n=e.json,i,r,o,s=u(n.extensions)?n.extensions["3DTILES_draco_point_compression"]:void 0,a=u(t)&&u(t.extensions)?t.extensions["3DTILES_draco_point_compression"]:void 0;u(a)&&(o=a.properties);let c,l,f,d,p;if(u(s)){r=s.properties;let m=s.byteOffset,A=s.byteLength;if(!u(r)||!u(m)||!u(A))throw new de("Draco properties, byteOffset, and byteLength must be defined");i=e.buffer.slice(m,m+A),c=u(r.POSITION),l=u(r.RGB)||u(r.RGBA),f=u(r.NORMAL),d=u(r.BATCH_ID),p=u(r.RGBA)}let g;return u(i)&&(g={buffer:i,featureTableProperties:r,batchTableProperties:o,properties:_t(r,o),dequantizeInShader:!0}),{draco:g,hasPositions:c,hasColors:l,isTranslucent:p,hasNormals:f,hasBatchIds:d}}function yze(e){let t=e.json,n;if(u(t.POSITION))return n=e.getPropertyArray("POSITION",X.FLOAT,3),{name:Tt.POSITION,semantic:Tt.POSITION,typedArray:n,isQuantized:!1,componentDatatype:X.FLOAT,type:on.VEC3};if(u(t.POSITION_QUANTIZED)){n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3);let i=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!u(i))throw new de("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let r=(1<<16)-1,o=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!u(o))throw new de("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");return{name:Tt.POSITION,semantic:Tt.POSITION,typedArray:n,isQuantized:!0,componentDatatype:X.FLOAT,type:on.VEC3,quantizedRange:r,quantizedVolumeOffset:h.unpack(o),quantizedVolumeScale:h.unpack(i),quantizedComponentDatatype:X.UNSIGNED_SHORT,quantizedType:on.VEC3}}}function Aze(e){let t=e.json,n;if(u(t.RGBA))return n=e.getPropertyArray("RGBA",X.UNSIGNED_BYTE,4),{name:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC4,normalized:!0,isRGB565:!1,isTranslucent:!0};if(u(t.RGB))return n=e.getPropertyArray("RGB",X.UNSIGNED_BYTE,3),{name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC3,normalized:!0,isRGB565:!1,isTranslucent:!1};if(u(t.RGB565))return n=e.getPropertyArray("RGB565",X.UNSIGNED_SHORT,1),{name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.FLOAT,type:on.VEC3,normalized:!1,isRGB565:!0,isTranslucent:!1};if(u(t.CONSTANT_RGBA)){let i=e.getGlobalProperty("CONSTANT_RGBA",X.UNSIGNED_BYTE,4),r=i[3],o=z.fromBytes(i[0],i[1],i[2],r),s=r<255;return{name:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,constantColor:o,componentDatatype:X.FLOAT,type:on.VEC4,isQuantized:!1,isTranslucent:s}}}function xze(e){let t=e.json,n;if(u(t.NORMAL))return n=e.getPropertyArray("NORMAL",X.FLOAT,3),{name:Tt.NORMAL,semantic:Tt.NORMAL,typedArray:n,octEncoded:!1,octEncodedZXY:!1,componentDatatype:X.FLOAT,type:on.VEC3};if(u(t.NORMAL_OCT16P)){n=e.getPropertyArray("NORMAL_OCT16P",X.UNSIGNED_BYTE,2);let i=8;return{name:Tt.NORMAL,semantic:Tt.NORMAL,typedArray:n,octEncoded:!0,octEncodedZXY:!1,quantizedRange:(1<<i)-1,quantizedType:on.VEC2,quantizedComponentDatatype:X.UNSIGNED_BYTE,componentDatatype:X.FLOAT,type:on.VEC3}}}function Cze(e){let t=e.json;if(u(t.BATCH_ID)){let n=e.getPropertyArray("BATCH_ID",X.UNSIGNED_SHORT,1);return{name:Tt.FEATURE_ID,semantic:Tt.FEATURE_ID,setIndex:0,typedArray:n,componentDatatype:X.fromTypedArray(n),type:on.SCALAR}}}var WA=uoe;var Tze=Lt.Components,Eze=Lt.Scene,bze=Lt.Node,Sze=Lt.Primitive,vze=Lt.Attribute,foe=Lt.Quantization,wze=Lt.FeatureIdAttribute,Dze=Lt.Material,Ize=Lt.MetallicRoughness;function Yg(e){e=y(e,y.EMPTY_OBJECT);let t=e.arrayBuffer,n=y(e.byteOffset,0);this._arrayBuffer=t,this._byteOffset=n,this._loadAttributesFor2D=y(e.loadAttributesFor2D,!1),this._parsedContent=void 0,this._decodePromise=void 0,this._decodedAttributes=void 0,this._promise=void 0,this._error=void 0,this._state=St.UNLOADED,this._buffers=[],this._components=void 0,this._transform=N.IDENTITY}u(Object.create)&&(Yg.prototype=Object.create(or.prototype),Yg.prototype.constructor=Yg);Object.defineProperties(Yg.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},transform:{get:function(){return this._transform}}});Yg.prototype.load=function(){if(u(this._promise))return this._promise;this._parsedContent=WA.parse(this._arrayBuffer,this._byteOffset),this._state=St.PROCESSING,this._promise=Promise.resolve(this)};Yg.prototype.process=function(e){if(u(this._error)){let t=this._error;throw this._error=void 0,t}if(this._state===St.READY)return!0;if(this._state===St.PROCESSING){if(u(this._decodePromise))return!1;this._decodePromise=Pze(this,e.context)}return!1};function Pze(e,t){let i=e._parsedContent.draco,r;if(u(i)?r=Op.decodePointCloud(i,t):r=Promise.resolve(),!!u(r))return e._decodePromise=r,r.then(function(o){if(!e.isDestroyed())return u(o)&&Oze(e,i,o),Hze(e,t),e._state=St.READY,e}).catch(function(o){e.unload(),e._state=St.FAILED;let s="Failed to load Draco pnts";e._error=e.getError(s,o)})}function Oze(e,t,n){e._state=St.READY;let i=e._parsedContent,r;if(u(n.POSITION)){if(r={name:"POSITION",semantic:Tt.POSITION,typedArray:n.POSITION.array,componentDatatype:X.FLOAT,type:on.VEC3,isQuantized:!1},u(n.POSITION.data.quantization)){let a=n.POSITION.data.quantization,c=a.range,l=h.fromElements(c,c,c),f=h.unpack(a.minValues),d=(1<<a.quantizationBits)-1;r.isQuantized=!0,r.quantizedRange=d,r.quantizedVolumeOffset=f,r.quantizedVolumeScale=l,r.quantizedComponentDatatype=d<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT,r.quantizedType=on.VEC3}i.positions=r}if(u(n.NORMAL)){if(r={name:"NORMAL",semantic:Tt.NORMAL,typedArray:n.NORMAL.array,componentDatatype:X.FLOAT,type:on.VEC3,isQuantized:!1,octEncoded:!1,octEncodedZXY:!1},u(n.NORMAL.data.quantization)){let a=(1<<n.NORMAL.data.quantization.quantizationBits)-1;r.quantizedRange=a,r.octEncoded=!0,r.octEncodedZXY=!0,r.quantizedComponentDatatype=X.UNSIGNED_BYTE,r.quantizedType=on.VEC2}i.normals=r}if(u(n.RGBA)?i.colors={name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n.RGBA.array,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC4,normalized:!0,isTranslucent:!0}:u(n.RGB)&&(i.colors={name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n.RGB.array,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC3,normalized:!0,isTranslucent:!1}),u(n.BATCH_ID)){let a=n.BATCH_ID.array;i.batchIds={name:"_FEATURE_ID",semantic:Tt.FEATURE_ID,setIndex:0,typedArray:a,componentDatatype:X.fromTypedArray(a),type:on.SCALAR}}let o=i.batchTableJson,s=t.batchTableProperties;for(let a in s)if(s.hasOwnProperty(a)){let c=n[a];u(o)||(o={}),i.hasDracoBatchTable=!0;let l=c.data;o[a]={byteOffset:l.byteOffset,type:Mze(l.componentsPerAttribute),componentType:Rze(l.componentDatatype),typedArray:c.array}}i.batchTableJson=o}function Mze(e){switch(e){case 1:return"SCALAR";case 2:return"VEC2";case 3:return"VEC3";case 4:return"VEC4"}}function Rze(e){switch(e){case te.BYTE:return"BYTE";case te.UNSIGNED_BYTE:return"UNSIGNED_BYTE";case te.SHORT:return"SHORT";case te.UNSIGNED_SHORT:return"UNSIGNED_SHORT";case te.INT:return"INT";case te.UNSIGNED_INT:return"UNSIGNED_INT";case te.DOUBLE:return"DOUBLE";case te.FLOAT:return"FLOAT"}}function sM(e,t,n){let i=t.typedArray,r;if(t.octEncoded&&(r=new foe,r.octEncoded=t.octEncoded,r.octEncodedZXY=t.octEncodedZXY,r.normalizationRange=t.quantizedRange,r.type=t.quantizedType,r.componentDatatype=t.quantizedComponentDatatype),t.isQuantized){r=new foe;let a=t.quantizedRange;r.normalizationRange=a,r.quantizedVolumeOffset=h.ZERO;let c=t.quantizedVolumeScale;r.quantizedVolumeDimensions=c,r.quantizedVolumeStepSize=h.divideByScalar(c,a,new h),r.componentDatatype=t.quantizedComponentDatatype,r.type=t.quantizedType}let o=new vze;if(o.name=t.name,o.semantic=t.semantic,o.setIndex=t.setIndex,o.componentDatatype=t.componentDatatype,o.type=t.type,o.normalized=y(t.normalized,!1),o.min=t.min,o.max=t.max,o.quantization=r,t.isRGB565&&(i=qn.decodeRGB565(i)),u(t.constantColor)){let a=new Array(4);o.constant=z.pack(t.constantColor,a)}else{let a=ht.createVertexBuffer({typedArray:i,context:n,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,e._buffers.push(a),o.buffer=a}let s=e._loadAttributesFor2D;return o.semantic===Tt.POSITION&&s&&(o.typedArray=i),o}var doe,uV;function Bze(e){if(!u(uV)){doe=new hoe.default(0),uV=new Array(e);for(let t=0;t<e;++t)uV[t]=doe.random()}return uV}var Lze=new h,Nze=new h,Fze=new h;function Uze(e){let t=e.typedArray,n=20,i=t.length/3,r=Math.min(i,n),o=Bze(n),s=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=h.fromElements(s,s,s,Lze),l=h.fromElements(a,a,a,Nze),f,d,p;if(e.isQuantized)c=h.ZERO,l=e.quantizedVolumeScale;else for(f=0;f<r;++f)d=Math.floor(o[f]*i),p=h.unpack(t,d*3,Fze),h.minimumByComponent(c,p,c),h.maximumByComponent(l,p,l);e.min=h.clone(c),e.max=h.clone(l)}var Vze={name:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,constantColor:z.DARKGRAY,componentDatatype:X.FLOAT,type:on.VEC4,isQuantized:!1,isTranslucent:!1};function kze(e,t,n){let i=[],r,o=t.positions;return u(o)&&(Uze(o),r=sM(e,o,n),r.count=t.pointsLength,i.push(r)),u(t.normals)&&(r=sM(e,t.normals,n),i.push(r)),u(t.colors)?(r=sM(e,t.colors,n),i.push(r)):(r=sM(e,Vze,n),i.push(r)),u(t.batchIds)&&(r=sM(e,t.batchIds,n),i.push(r)),i}function zze(e,t){let n=e.batchLength,i=e.pointsLength,r=e.batchTableBinary,o=!u(e.batchIds);if(u(r)||e.hasDracoBatchTable){let s=y(n,i);return Vp({count:s,batchTable:e.batchTableJson,binaryBody:r,parseAsPropertyAttributes:o,customAttributeOutput:t})}return new xa({schema:{},propertyTables:[]})}function Hze(e,t){let n=e._parsedContent,i=new Ize;i.metallicFactor=0,i.roughnessFactor=.9;let r=new Dze;r.metallicRoughness=i;let o=n.colors;u(o)&&o.isTranslucent&&(r.alphaMode=Xh.BLEND);let s=!u(n.normals);r.unlit=s;let a=new Sze;if(a.attributes=kze(e,n,t),a.primitiveType=Be.POINTS,a.material=r,u(n.batchIds)){let g=new wze;g.propertyTableId=0,g.setIndex=0,g.positionalLabel="featureId_0",a.featureIds.push(g)}let c=new bze;c.index=0,c.primitives=[a];let l=new Eze;l.nodes=[c],l.upAxis=dr.Z,l.forwardAxis=dr.X;let f=new Tze;f.scene=l,f.nodes=[c];let d=[];f.structuralMetadata=zze(n,d),d.length>0&&Gze(e,a,d,t),u(n.rtcCenter)&&(f.transform=N.multiplyByTranslation(f.transform,n.rtcCenter,f.transform));let p=n.positions;u(p)&&p.isQuantized&&(f.transform=N.multiplyByTranslation(f.transform,p.quantizedVolumeOffset,f.transform)),e._components=f,e._parsedContent=void 0,e._arrayBuffer=void 0}function Gze(e,t,n,i){let r=t.attributes,o=n.length;for(let s=0;s<o;s++){let a=n[s],c=ht.createVertexBuffer({typedArray:a.typedArray,context:i,usage:Fe.STATIC_DRAW});c.vertexArrayDestroyable=!1,e._buffers.push(c),a.buffer=c,a.typedArray=void 0,r.push(a)}t.propertyAttributeIds=[0]}Yg.prototype.unload=function(){let e=this._buffers;for(let t=0;t<e.length;t++)e[t].destroy();e.length=0,this._components=void 0,this._parsedContent=void 0,this._arrayBuffer=void 0};var uE=Yg;function mr(e){e=y(e,y.EMPTY_OBJECT),this._loader=e.loader,this._resource=e.resource,this.type=y(e.type,Ur.GLTF),this.modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this._modelMatrix=N.clone(this.modelMatrix),this._scale=y(e.scale,1),this._minimumPixelSize=y(e.minimumPixelSize,0),this._maximumScale=e.maximumScale,this._clampedScale=u(this._maximumScale)?Math.min(this._scale,this._maximumScale):this._scale,this._computedScale=this._clampedScale,this._updateModelMatrix=!1,this.referenceMatrix=void 0,this._iblReferenceFrameMatrix=Q.clone(Q.IDENTITY),this._resourcesLoaded=!1,this._drawCommandsBuilt=!1,this._ready=!1,this._customShader=e.customShader,this._content=e.content,this._texturesLoaded=!1,this._defaultTexture=void 0,this._activeAnimations=new F1(this),this._clampAnimations=y(e.clampAnimations,!0),this._userAnimationDirty=!1,this._id=e.id,this._idDirty=!1,this._color=z.clone(e.color),this._colorBlendMode=y(e.colorBlendMode,Za.HIGHLIGHT),this._colorBlendAmount=y(e.colorBlendAmount,.5);let t=y(e.silhouetteColor,z.RED);this._silhouetteColor=z.clone(t),this._silhouetteSize=y(e.silhouetteSize,0),this._silhouetteDirty=!1,this._silhouetteId=void 0,this._cull=y(e.cull,!0),this._opaquePass=y(e.opaquePass,be.OPAQUE),this._allowPicking=y(e.allowPicking,!0),this._show=y(e.show,!0),this._style=void 0,this._styleDirty=!1,this._styleCommandsNeeded=void 0;let n=y(e.featureIdLabel,"featureId_0");typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i,this._featureTables=[],this._featureTableId=void 0,this._featureTableIdDirty=!0,this._pipelineResources=[],this._modelResources=[],this._pickIds=[],this._boundingSphere=new ae,this._initialRadius=void 0,this._heightReference=y(e.heightReference,je.NONE),this._heightDirty=this._heightReference!==je.NONE,this._removeUpdateHeightCallback=void 0,this._clampedModelMatrix=void 0;let r=e.scene;u(r)&&u(r.terrainProviderChanged)&&(this._terrainProviderChangedCallback=r.terrainProviderChanged.addEventListener(function(){this._heightDirty=!0},this)),this._scene=r,this._distanceDisplayCondition=e.distanceDisplayCondition;let o=new Jh(e.pointCloudShading);this._pointCloudShading=o,this._attenuation=o.attenuation,this._pointCloudBackFaceCulling=o.backFaceCulling;let s=e.clippingPlanes;u(s)&&s.owner===void 0?ls.setOwner(s,this,"_clippingPlanes"):this._clippingPlanes=s,this._clippingPlanesState=0,this._clippingPlanesMatrix=N.clone(N.IDENTITY),this._lightColor=h.clone(e.lightColor),this._imageBasedLighting=u(e.imageBasedLighting)?e.imageBasedLighting:new pA,this._shouldDestroyImageBasedLighting=!u(e.imageBasedLighting),this._backFaceCulling=y(e.backFaceCulling,!0),this._backFaceCullingDirty=!1,this._shadows=y(e.shadows,yn.ENABLED),this._shadowsDirty=!1,this._debugShowBoundingVolumeDirty=!1,this._debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this._enableShowOutline=y(e.enableShowOutline,!0),this._debugWireframe=y(e.debugWireframe,!1),this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===Ur.GLTF&&Ot("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltf, otherwise debugWireframe will be ignored.");let a=e.credit;typeof a=="string"&&(a=new wt(a)),this._credit=a,this._resourceCredits=[],this._gltfCredits=[],this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._showCreditsOnScreenDirty=!0,this._splitDirection=y(e.splitDirection,kc.NONE),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,z.BLACK),this._classificationType=e.classificationType,this._statistics=new oM,this._sceneMode=void 0,this._projectTo2D=y(e.projectTo2D,!1),this._skipLevelOfDetail=!1,this._ignoreCommands=y(e.ignoreCommands,!1),this._texturesLoadedPromise=void 0,this._completeLoad=void 0,this._rejectLoad=void 0,this._completeTexturesLoad=void 0,this._rejectTexturesLoad=void 0,u(this._loader._promise)?(this._readyPromise=Promise.resolve(this),this._texturesLoadedPromise=Promise.resolve(this)):(this._readyPromise=new Promise((c,l)=>{this._completeLoad=()=>(c(this),!1),this._rejectLoad=f=>(l(f),!1)}),this._loader instanceof uE?this._texturesLoadedPromise=Promise.resolve(this):this._texturesLoadedPromise=new Promise((c,l)=>{this._completeTexturesLoad=()=>(c(this),!1),this._rejectTexturesLoad=f=>(l(f),!1)}),this._loader.load().catch(c=>{this.isDestroyed()||!u(this._loader)||this._loader.isDestroyed()||(this._rejectLoad=this._rejectLoad(Jt.getError("model",this._resource,c)))})),this._errorEvent=new ge,this._readyEvent=new ge,this._texturesReadyEvent=new ge,this._sceneGraph=void 0,this._nodesByName={},this.pickObject=e.pickObject}function fV(e,t){if(e._errorEvent.numberOfListeners>0){e._errorEvent.raiseEvent(t);return}console.log(t)}function Wze(e,t){let n=e._featureTables,i=t.propertyTables,r=i.length;for(let o=0;o<r;o++){let s=i[o],a=new k1({model:e,propertyTable:s});n.push(a)}return n}function jze(e,t){let n=t._featureIdLabel,i=t._instanceFeatureIdLabel,r,o,s,a;for(r=0;r<e.nodes.length;r++)if(a=e.nodes[r],u(a.instances)&&(s=Jt.getFeatureIdsByLabel(a.instances.featureIds,i),u(s)&&u(s.propertyTableId)))return s.propertyTableId;for(r=0;r<e.nodes.length;r++)for(a=e.nodes[r],o=0;o<a.primitives.length;o++){let c=a.primitives[o],l=Jt.getFeatureIdsByLabel(c.featureIds,n);if(u(l))return l.propertyTableId}if(t._featureTables.length===1)return 0}function B6(e,t){if(!u(e)&&!u(t))return!1;if(u(e)!==u(t))return!0;let n=e.alpha,i=t.alpha;return Math.floor(n)!==Math.floor(i)||Math.ceil(n)!==Math.ceil(i)}Object.defineProperties(mr.prototype,{ready:{get:function(){return this._ready}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},incrementallyLoadTextures:{get:function(){return y(this._loader.incrementallyLoadTextures,!1)}},texturesReadyEvent:{get:function(){return this._texturesReadyEvent}},readyPromise:{get:function(){return $("Model.readyPromise","Model.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Model.fromGltfAsync and Model.readyEvent instead."),this._readyPromise}},texturesLoadedPromise:{get:function(){return $("Model.texturesLoadedPromise","Model.texturesLoadedPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Model.fromGltfAsync and Model.texturesReadyEvent instead."),this._texturesLoadedPromise}},loader:{get:function(){return this._loader}},statistics:{get:function(){return this._statistics}},activeAnimations:{get:function(){return this._activeAnimations}},clampAnimations:{get:function(){return this._clampAnimations},set:function(e){this._clampAnimations=e}},cull:{get:function(){return this._cull}},opaquePass:{get:function(){return this._opaquePass}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){e!==this._pointCloudShading&&this.resetDrawCommands(),this._pointCloudShading=e}},customShader:{get:function(){return this._customShader},set:function(e){e!==this._customShader&&this.resetDrawCommands(),this._customShader=e}},sceneGraph:{get:function(){return this._sceneGraph}},content:{get:function(){return this._content}},heightReference:{get:function(){return this._heightReference},set:function(e){e!==this._heightReference&&(this._heightDirty=!0),this._heightReference=e}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=vt.clone(e,this._distanceDisplayCondition)}},structuralMetadata:{get:function(){return this._sceneGraph.components.structuralMetadata}},featureTableId:{get:function(){return this._featureTableId},set:function(e){this._featureTableId=e}},featureTables:{get:function(){return this._featureTables},set:function(e){this._featureTables=e}},id:{get:function(){return this._id},set:function(e){e!==this._id&&(this._idDirty=!0),this._id=e}},allowPicking:{get:function(){return this._allowPicking}},style:{get:function(){return this._style},set:function(e){this._style=e,this._styleDirty=!0}},color:{get:function(){return this._color},set:function(e){B6(e,this._color)&&this.resetDrawCommands(),this._color=z.clone(e,this._color)}},colorBlendMode:{get:function(){return this._colorBlendMode},set:function(e){this._colorBlendMode=e}},colorBlendAmount:{get:function(){return this._colorBlendAmount},set:function(e){this._colorBlendAmount=e}},silhouetteColor:{get:function(){return this._silhouetteColor},set:function(e){if(!z.equals(e,this._silhouetteColor)){let t=B6(e,this._silhouetteColor);this._silhouetteDirty=this._silhouetteDirty||t}this._silhouetteColor=z.clone(e,this._silhouetteColor)}},silhouetteSize:{get:function(){return this._silhouetteSize},set:function(e){if(e!==this._silhouetteSize){let t=this._silhouetteSize,n=e>0&&t===0||e===0&&t>0;this._silhouetteDirty=this._silhouetteDirty||n,this._backFaceCullingDirty=this._backFaceCullingDirty||n}this._silhouetteSize=e}},boundingSphere:{get:function(){let e=u(this._clampedModelMatrix)?this._clampedModelMatrix:this.modelMatrix;return _oe(this,e),this._boundingSphere}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolumeDirty=!0),this._debugShowBoundingVolume=e}},debugWireframe:{get:function(){return this._debugWireframe},set:function(e){this._debugWireframe!==e&&this.resetDrawCommands(),this._debugWireframe=e,this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===Ur.GLTF&&Ot("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltfAsync, otherwise debugWireframe will be ignored.")}},show:{get:function(){return this._show},set:function(e){this._show=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),e!==this._featureIdLabel&&(this._featureTableIdDirty=!0),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),e!==this._instanceFeatureIdLabel&&(this._featureTableIdDirty=!0),this._instanceFeatureIdLabel=e}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){e!==this._clippingPlanes&&(ls.setOwner(e,this,"_clippingPlanes"),this.resetDrawCommands())}},lightColor:{get:function(){return this._lightColor},set:function(e){u(e)!==u(this._lightColor)&&this.resetDrawCommands(),this._lightColor=h.clone(e,this._lightColor)}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1,this.resetDrawCommands())}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){e!==this._backFaceCulling&&(this._backFaceCullingDirty=!0),this._backFaceCulling=e}},scale:{get:function(){return this._scale},set:function(e){e!==this._scale&&(this._updateModelMatrix=!0),this._scale=e}},computedScale:{get:function(){return this._computedScale}},minimumPixelSize:{get:function(){return this._minimumPixelSize},set:function(e){e!==this._minimumPixelSize&&(this._updateModelMatrix=!0),this._minimumPixelSize=e}},maximumScale:{get:function(){return this._maximumScale},set:function(e){e!==this._maximumScale&&(this._updateModelMatrix=!0),this._maximumScale=e}},shadows:{get:function(){return this._shadows},set:function(e){e!==this._shadows&&(this._shadowsDirty=!0),this._shadows=e}},credit:{get:function(){return this._credit}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen!==e&&(this._showCreditsOnScreenDirty=!0),this._showCreditsOnScreen=e}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&this.resetDrawCommands(),this._splitDirection=e}},classificationType:{get:function(){return this._classificationType}},pickIds:{get:function(){return this._pickIds}},styleCommandsNeeded:{get:function(){return this._styleCommandsNeeded}}});mr.prototype.getNode=function(e){return this._nodesByName[e]};mr.prototype.setArticulationStage=function(e,t){this._sceneGraph.setArticulationStage(e,t)};mr.prototype.applyArticulations=function(){this._sceneGraph.applyArticulations()};mr.prototype.makeStyleDirty=function(){this._styleDirty=!0};mr.prototype.resetDrawCommands=function(){this._drawCommandsBuilt=!1};var qze=new N,Yze=new Q,Xze=new N;mr.prototype.update=function(e){let t=!1;try{t=Kze(this,e)}catch(n){if(this._loader.incrementallyLoadTextures)if(n.name==="TextureError")fV(this,n),this._rejectTexturesLoad=this._rejectTexturesLoad&&this._rejectTexturesLoad(n);else{let i=Jt.getError("model",this._resource,n);fV(this,i),this._rejectLoad=this._rejectLoad&&this._rejectLoad(i)}else{let i=Jt.getError("model",this._resource,n);fV(this,i),this._rejectLoad=this._rejectLoad&&this._rejectLoad(i),this._rejectTexturesLoad=this._rejectTexturesLoad&&this._rejectTexturesLoad(i)}}if(Jze(this,e),Zze(this,e),!this._resourcesLoaded&&t){this._resourcesLoaded=!0;let n=this._loader.components;if(!u(n)){if(this._loader.isUnloaded())return;let o=Jt.getError("model",this._resource,new de("Failed to load model."));fV(o),this._rejectLoad=this._rejectLoad&&this._rejectLoad(o)}let i=n.structuralMetadata;u(i)&&i.propertyTableCount>0&&Wze(this,i);let r=new rM({model:this,modelComponents:n});this._sceneGraph=r,this._gltfCredits=r.components.asset.credits}if(!(!this._resourcesLoaded||e.mode===ne.MORPHING)){if(Qze(this),$ze(this),eHe(this,e),tHe(this),nHe(this,e),iHe(this,e),rHe(this,e),oHe(this,e),this._defaultTexture=e.context.defaultTexture,sHe(this,e),aHe(this,e),cHe(this),lHe(this,e),dHe(this,e),!this._ready){e.afterRender.push(()=>{this._ready=!0,this._readyEvent.raiseEvent(this),this._completeLoad=this._completeLoad&&this._completeLoad(),this._loader.incrementallyLoadTextures||(this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this),this._completeTexturesLoad=this._completeTexturesLoad&&this._completeTexturesLoad())});return}this._loader.incrementallyLoadTextures&&!this._texturesLoaded&&this._loader.texturesLoaded&&(this.resetDrawCommands(),this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this),this._completeTexturesLoad=this._completeTexturesLoad&&this._completeTexturesLoad()),fHe(this),hHe(this,e),mHe(this),pHe(this,e)}};function Kze(e,t){return!e._resourcesLoaded||!e._texturesLoaded?(t.afterRender.push(()=>!0),e._loader.process(t)):!0}function Jze(e,t){u(e._customShader)&&e._customShader.update(t)}function Zze(e,t){e._imageBasedLighting.update(t),e._imageBasedLighting.shouldRegenerateShaders&&e.resetDrawCommands()}function Qze(e){if(!e._featureTableIdDirty)return;e._featureTableIdDirty=!1;let t=e._sceneGraph.components,n=t.structuralMetadata;u(n)&&n.propertyTableCount>0&&(e.featureTableId=jze(t,e),e._styleDirty=!0,e.resetDrawCommands())}function $ze(e){e._styleDirty&&(e.applyStyle(e._style),e._styleDirty=!1)}function eHe(e,t){let n=e._featureTables,i=n.length,r=!1;for(let o=0;o<i;o++)n[o].update(t),n[o].styleCommandsNeededDirty&&(r=!0);r&&poe(e)}function poe(e){let t=e.featureTables[e.featureTableId];e._styleCommandsNeeded=Rd.getStyleCommandsNeeded(t.featuresLength,t.batchTexture.translucentFeaturesLength)}function tHe(e){let t=e.pointCloudShading;t.attenuation!==e._attenuation&&(e.resetDrawCommands(),e._attenuation=t.attenuation),t.backFaceCulling!==e._pointCloudBackFaceCulling&&(e.resetDrawCommands(),e._pointCloudBackFaceCulling=t.backFaceCulling)}function nHe(e,t){e._silhouetteDirty&&(goe(t)&&e.resetDrawCommands(),e._silhouetteDirty=!1)}function iHe(e,t){let n=e.hasSkipLevelOfDetail(t);n!==e._skipLevelOfDetail&&(e.resetDrawCommands(),e._skipLevelOfDetail=n)}function rHe(e,t){let n=0;e.isClippingEnabled()&&(e._clippingPlanes.owner===e&&e._clippingPlanes.update(t),n=e._clippingPlanes.clippingPlanesState),n!==e._clippingPlanesState&&(e.resetDrawCommands(),e._clippingPlanesState=n)}function oHe(e,t){t.mode!==e._sceneMode&&(e._projectTo2D?e.resetDrawCommands():e._updateModelMatrix=!0,e._sceneMode=t.mode)}function sHe(e,t){e._drawCommandsBuilt||(e.destroyPipelineResources(),e._sceneGraph.buildDrawCommands(t),e._drawCommandsBuilt=!0)}function aHe(e,t){N.equals(e.modelMatrix,e._modelMatrix)||(e._updateModelMatrix=!0,e._modelMatrix=N.clone(e.modelMatrix,e._modelMatrix))}var Qh=new h,dV=new me;function cHe(e){if(!e._updateModelMatrix&&!e._heightDirty&&e._minimumPixelSize===0)return;u(e._removeUpdateHeightCallback)&&(e._removeUpdateHeightCallback(),e._removeUpdateHeightCallback=void 0);let t=e._scene;if(!u(t)||!u(t.globe)||e.heightReference===je.NONE){e._clampedModelMatrix=void 0;return}let n=t.globe,i=n.ellipsoid,r=e.modelMatrix;Qh.x=r[12],Qh.y=r[13],Qh.z=r[14];let o=i.cartesianToCartographic(Qh);u(e._clampedModelMatrix)||(e._clampedModelMatrix=N.clone(r,new N));let s=n._surface;e._removeUpdateHeightCallback=s.updateHeight(o,moe(e,i,o));let a=n.getHeight(o);if(u(a)){let c=moe(e,i,o);me.clone(o,dV),dV.height=a,i.cartographicToCartesian(dV,Qh),c(Qh)}e._heightDirty=!1,e._updateModelMatrix=!0}function lHe(e,t){if(!e._updateModelMatrix&&e._minimumPixelSize===0)return;let n=u(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;_oe(e,n),uHe(e,n,t)}function _oe(e,t){e._clampedScale=u(e._maximumScale)?Math.min(e._scale,e._maximumScale):e._scale,e._boundingSphere.center=h.multiplyByScalar(e._sceneGraph.boundingSphere.center,e._clampedScale,e._boundingSphere.center),e._boundingSphere.radius=e._initialRadius*e._clampedScale,e._boundingSphere=ae.transform(e._boundingSphere,t,e._boundingSphere)}function uHe(e,t,n){let i=e.scale;if(e.minimumPixelSize!==0&&!e._projectTo2D){let r=n.context,o=Math.max(r.drawingBufferWidth,r.drawingBufferHeight);N.getTranslation(t,Qh),e._sceneMode!==ne.SCENE3D&&Zi.computeActualWgs84Position(n,Qh,Qh);let s=e._boundingSphere.radius,a=_He(Qh,s,n),c=1/a;Math.min(c*(2*s),o)<e.minimumPixelSize&&(i=e.minimumPixelSize*a/(2*e._initialRadius))}e._computedScale=u(e.maximumScale)?Math.min(e.maximumScale,i):i}function fHe(e){if(!e._idDirty)return;e._idDirty=!1;let t=e._id,n=e._pickIds,i=n.length;for(let r=0;r<i;++r)n[r].object.id=t}function dHe(e,t){let n=u(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix,i=y(e.referenceMatrix,n),r=t.context,o=e._imageBasedLighting;if(o.useSphericalHarmonicCoefficients||o.useSpecularEnvironmentMaps){let s=Yze,a=qze;a=N.multiply(r.uniformState.view3D,i,a),s=N.getMatrix3(a,s),s=Q.getRotation(s,s),e._iblReferenceFrameMatrix=Q.transpose(s,e._iblReferenceFrameMatrix)}if(e.isClippingEnabled()){let s=Xze;s=N.multiply(r.uniformState.view3D,i,s),s=N.multiply(s,e._clippingPlanes.modelMatrix,s),e._clippingPlanesMatrix=N.inverseTranspose(s,e._clippingPlanesMatrix)}}function hHe(e,t){let n=e._sceneGraph;if(e._updateModelMatrix||e._minimumPixelSize!==0){let r=u(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;n.updateModelMatrix(r,t),e._updateModelMatrix=!1}e._backFaceCullingDirty&&(n.updateBackFaceCulling(e._backFaceCulling),e._backFaceCullingDirty=!1),e._shadowsDirty&&(n.updateShadows(e._shadows),e._shadowsDirty=!1),e._debugShowBoundingVolumeDirty&&(n.updateShowBoundingVolume(e._debugShowBoundingVolume),e._debugShowBoundingVolumeDirty=!1);let i=!1;u(e.classificationType)||(i=e._userAnimationDirty||e._activeAnimations.update(t)),n.update(t,i),e._userAnimationDirty=!1}function mHe(e){if(!e._showCreditsOnScreenDirty)return;e._showCreditsOnScreenDirty=!1;let t=e._showCreditsOnScreen;u(e._credit)&&(e._credit.showOnScreen=t);let n=e._resourceCredits,i=n.length;for(let s=0;s<i;s++)n[s].showOnScreen=t;let r=e._gltfCredits,o=r.length;for(let s=0;s<o;s++)r[s].showOnScreen=t}function pHe(e,t){let n=yHe(e,t),i=e.isInvisible(),r=e.hasSilhouette(t),o=e._show&&e._computedScale!==0&&n&&(!i||r),s=t.passes,a=s.render||s.pick&&e.allowPicking;o&&!e._ignoreCommands&&a&&(AHe(e,t),e._sceneGraph.pushDrawCommands(t))}var R6=new ae;function _He(e,t,n){return R6.center=e,R6.radius=t,n.camera.getPixelSize(R6,n.context.drawingBufferWidth,n.context.drawingBufferHeight)}function moe(e,t,n){return function(i){if(e.heightReference===je.RELATIVE_TO_GROUND){let o=t.cartesianToCartographic(i,dV);o.height+=n.height,t.cartographicToCartesian(o,i)}let r=e._clampedModelMatrix;N.clone(e.modelMatrix,r),r[12]=i.x,r[13]=i.y,r[14]=i.z,e._heightDirty=!0}}var gHe=new h;function yHe(e,t){let n=e.distanceDisplayCondition;if(!u(n))return!0;let i=n.near*n.near,r=n.far*n.far,o;if(t.mode===ne.SCENE2D){let a=(t.camera.frustum.right-t.camera.frustum.left)*.5;o=a*a}else{let s=N.getTranslation(e.modelMatrix,gHe);Zi.computeActualWgs84Position(t,s,s),o=h.distanceSquared(s,t.camera.positionWC)}return o>=i&&o<=r}function AHe(e,t){let n=t.creditDisplay,i=e._credit;u(i)&&n.addCreditToNextFrame(i);let r=e._resourceCredits,o=r.length;for(let c=0;c<o;c++)n.addCreditToNextFrame(r[c]);let s=e._gltfCredits,a=s.length;for(let c=0;c<a;c++)n.addCreditToNextFrame(s[c])}mr.prototype.isTranslucent=function(){let e=this.color;return u(e)&&e.alpha>0&&e.alpha<1};mr.prototype.isInvisible=function(){let e=this.color;return u(e)&&e.alpha===0};function goe(e){return e.context.stencilBuffer}mr.prototype.hasSilhouette=function(e){return goe(e)&&this._silhouetteSize>0&&this._silhouetteColor.alpha>0&&!u(this._classificationType)};mr.prototype.hasSkipLevelOfDetail=function(e){if(!Ur.is3DTiles(this.type))return!1;let t=e.context.stencilBuffer,n=this._content.tileset;return t&&n.isSkippingLevelOfDetail};mr.prototype.isClippingEnabled=function(){let e=this._clippingPlanes;return u(e)&&e.enabled&&e.length!==0};mr.prototype.isDestroyed=function(){return!1};mr.prototype.destroy=function(){let e=this._loader;u(e)&&e.destroy();let t=this._featureTables;if(u(t)){let i=t.length;for(let r=0;r<i;r++)t[r].destroy()}this.destroyPipelineResources(),this.destroyModelResources(),u(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),u(this._terrainProviderChangedCallback)&&(this._terrainProviderChangedCallback(),this._terrainProviderChangedCallback=void 0);let n=this._clippingPlanes;u(n)&&!n.isDestroyed()&&n.owner===this&&n.destroy(),this._clippingPlanes=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0,ue(this)};mr.prototype.destroyPipelineResources=function(){let e=this._pipelineResources;for(let t=0;t<e.length;t++)e[t].destroy();this._pipelineResources.length=0,this._pickIds.length=0};mr.prototype.destroyModelResources=function(){let e=this._modelResources;for(let t=0;t<e.length;t++)e[t].destroy();this._modelResources.length=0};mr.fromGltf=function(e){$("Model.fromGltf","Model.fromGltf was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Model.fromGltfAsync instead."),e=y(e,y.EMPTY_OBJECT);let t=y(e.url,e.gltf),n={releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:u(e.classificationType)},i=y(e.basePath,""),r=ve.createIfNeeded(i);u(t.asset)?(n.gltfJson=t,n.baseResource=r,n.gltfResource=r):t instanceof Uint8Array?(n.typedArray=t,n.baseResource=r,n.gltfResource=r):n.gltfResource=ve.createIfNeeded(t);let o=new Kh(n),a=u(e.content)?Ur.TILE_GLTF:Ur.GLTF,c=fE(o,a,e);return c.resource=n.gltfResource,new mr(c)};mr.fromGltfAsync=async function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.url,e.gltf),n={releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:u(e.classificationType)},i=y(e.basePath,""),r=ve.createIfNeeded(i);u(t.asset)?(n.gltfJson=t,n.baseResource=r,n.gltfResource=r):t instanceof Uint8Array?(n.typedArray=t,n.baseResource=r,n.gltfResource=r):n.gltfResource=ve.createIfNeeded(t);let o=new Kh(n),a=u(e.content)?Ur.TILE_GLTF:Ur.GLTF,c=n.gltfResource,l=fE(o,a,e);l.resource=c;try{await o.load()}catch(g){throw o.destroy(),Jt.getError("model",c,g)}let f=e.gltfCallback;u(f)&&f(o.gltfJson);let d=new mr(l),p=d._resource.credits;if(u(p)){let g=p.length;for(let m=0;m<g;m++)d._resourceCredits.push(p[m])}return d};mr.fromB3dm=async function(e){let t={b3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:u(e.classificationType)},n=new D1(t);try{await n.load();let i=fE(n,Ur.TILE_B3DM,e);return new mr(i)}catch(i){throw n.destroy(),i}};mr.fromPnts=async function(e){let t={arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,loadAttributesFor2D:e.projectTo2D},n=new uE(t);try{await n.load();let i=fE(n,Ur.TILE_PNTS,e);return new mr(i)}catch(i){throw n.destroy(),i}};mr.fromI3dm=async function(e){let t={i3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline},n=new O1(t);try{await n.load();let i=fE(n,Ur.TILE_I3DM,e);return new mr(i)}catch(i){throw n.destroy(),i}};mr.fromGeoJson=async function(e){let t={geoJson:e.geoJson},n=new I1(t),i=fE(n,Ur.TILE_GEOJSON,e);return new mr(i)};mr.prototype.applyColorAndShow=function(e){let t=this._color,n=u(e)&&u(e.color),i=u(e)&&u(e.show);this._color=n?e.color.evaluateColor(void 0,this._color):z.clone(z.WHITE,this._color),this._show=i?e.show.evaluate(void 0):!0,B6(t,this._color)&&this.resetDrawCommands()};mr.prototype.applyStyle=function(e){let t=this.type===Ur.TILE_PNTS,n=u(this.featureTableId)&&this.featureTables[this.featureTableId].featuresLength>0,i=u(this.structuralMetadata)?this.structuralMetadata.propertyAttributes:void 0,r=u(i)&&u(i[0]);if(t&&(!n||r)){this.resetDrawCommands();return}n?(this.featureTables[this.featureTableId].applyStyle(e),poe(this,e)):(this.applyColorAndShow(e),this._styleCommandsNeeded=void 0)};function fE(e,t,n){return{loader:e,type:t,resource:n.resource,show:n.show,modelMatrix:n.modelMatrix,scale:n.scale,minimumPixelSize:n.minimumPixelSize,maximumScale:n.maximumScale,id:n.id,allowPicking:n.allowPicking,clampAnimations:n.clampAnimations,shadows:n.shadows,debugShowBoundingVolume:n.debugShowBoundingVolume,enableDebugWireframe:n.enableDebugWireframe,debugWireframe:n.debugWireframe,cull:n.cull,opaquePass:n.opaquePass,customShader:n.customShader,content:n.content,heightReference:n.heightReference,scene:n.scene,distanceDisplayCondition:n.distanceDisplayCondition,color:n.color,colorBlendAmount:n.colorBlendAmount,colorBlendMode:n.colorBlendMode,silhouetteColor:n.silhouetteColor,silhouetteSize:n.silhouetteSize,enableShowOutline:n.enableShowOutline,showOutline:n.showOutline,outlineColor:n.outlineColor,clippingPlanes:n.clippingPlanes,lightColor:n.lightColor,imageBasedLighting:n.imageBasedLighting,backFaceCulling:n.backFaceCulling,credit:n.credit,showCreditsOnScreen:n.showCreditsOnScreen,splitDirection:n.splitDirection,projectTo2D:n.projectTo2D,featureIdLabel:n.featureIdLabel,instanceFeatureIdLabel:n.instanceFeatureIdLabel,pointCloudShading:n.pointCloudShading,classificationType:n.classificationType,pickObject:n.pickObject}}var Bd=mr;function Ps(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this._model=void 0,this._metadata=void 0,this._group=void 0,this._ready=!1,this._resolveContent=void 0,this._readyPromise=void 0}Object.defineProperties(Ps.prototype,{featuresLength:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;return u(t)&&u(t[n])?t[n].featuresLength:0}},pointsLength:{get:function(){return this._model.statistics.pointsLength}},trianglesLength:{get:function(){return this._model.statistics.trianglesLength}},geometryByteLength:{get:function(){return this._model.statistics.geometryByteLength}},texturesByteLength:{get:function(){return this._model.statistics.texturesByteLength}},batchTableByteLength:{get:function(){let e=this._model.statistics;return e.propertyTablesByteLength+e.batchTexturesByteLength}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Model3DTileContent.readyPromise","Model3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Model3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;if(u(t)&&u(t[n]))return t[n]}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Ps.prototype.getFeature=function(e){let t=this._model,n=t.featureTableId;return t.featureTables[n].getFeature(e)};Ps.prototype.hasProperty=function(e,t){let n=this._model,i=n.featureTableId;return u(i)?n.featureTables[i].hasProperty(e,t):!1};Ps.prototype.applyDebugSettings=function(e,t){t=e?t:z.WHITE,this.featuresLength===0?this._model.color=t:u(this.batchTable)&&this.batchTable.setAllColor(t)};Ps.prototype.applyStyle=function(e){this._model.style=e};Ps.prototype.update=function(e,t){let n=this._model,i=this._tile;n.colorBlendAmount=e.colorBlendAmount,n.colorBlendMode=e.colorBlendMode,n.modelMatrix=i.computedTransform,n.customShader=e.customShader,n.featureIdLabel=e.featureIdLabel,n.instanceFeatureIdLabel=e.instanceFeatureIdLabel,n.lightColor=e.lightColor,n.imageBasedLighting=e.imageBasedLighting,n.backFaceCulling=e.backFaceCulling,n.shadows=e.shadows,n.showCreditsOnScreen=e.showCreditsOnScreen,n.splitDirection=e.splitDirection,n.debugWireframe=e.debugWireframe,n.showOutline=e.showOutline,n.outlineColor=e.outlineColor,n.pointCloudShading=e.pointCloudShading;let r=e.clippingPlanes;n.referenceMatrix=e.clippingPlanesOriginMatrix,u(r)&&i.clippingPlanesDirty&&(n._clippingPlanes=r.enabled&&i._isClipped?r:void 0),u(r)&&u(n._clippingPlanes)&&n._clippingPlanes!==r&&(n._clippingPlanes=r,n._clippingPlanesState=0),n.update(t),!this._ready&&n.ready&&(n.activeAnimations.addAll({loop:El.REPEAT}),this._ready=!0,this._resolveContent=this._resolveContent&&this._resolveContent(this))};Ps.prototype.isDestroyed=function(){return!1};Ps.prototype.destroy=function(){return this._model=this._model&&this._model.destroy(),ue(this)};Ps.fromGltf=async function(e,t,n,i){let r=new Ps(e,t,n),s=aM(e,t,r,{gltf:i,basePath:n}),a=e.vectorClassificationOnly?void 0:e.classificationType;s.classificationType=a;let c=await Bd.fromGltfAsync(s);return r._model=c,r._readyPromise=new Promise(l=>{r._resolveContent=l}),r};Ps.fromB3dm=async function(e,t,n,i,r){let o=new Ps(e,t,n),a=aM(e,t,o,{arrayBuffer:i,byteOffset:r,resource:n}),c=e.vectorClassificationOnly?void 0:e.classificationType;a.classificationType=c;let l=await Bd.fromB3dm(a);return o._model=l,o._readyPromise=new Promise(f=>{o._resolveContent=f}),o};Ps.fromI3dm=async function(e,t,n,i,r){let o=new Ps(e,t,n),a=aM(e,t,o,{arrayBuffer:i,byteOffset:r,resource:n}),c=await Bd.fromI3dm(a);return o._model=c,o._readyPromise=new Promise(l=>{o._resolveContent=l}),o};Ps.fromPnts=async function(e,t,n,i,r){let o=new Ps(e,t,n),a=aM(e,t,o,{arrayBuffer:i,byteOffset:r,resource:n}),c=await Bd.fromPnts(a);return o._model=c,o._readyPromise=new Promise(l=>{o._resolveContent=l}),o};Ps.fromGeoJson=async function(e,t,n,i){let r=new Ps(e,t,n),s=aM(e,t,r,{geoJson:i,resource:n}),a=await Bd.fromGeoJson(s);return r._model=a,r._readyPromise=new Promise(c=>{r._resolveContent=c}),r};function aM(e,t,n,i){let r={cull:!1,releaseGltfJson:!0,opaquePass:be.CESIUM_3D_TILE,modelMatrix:t.computedTransform,upAxis:e._modelUpAxis,forwardAxis:e._modelForwardAxis,incrementallyLoadTextures:!1,customShader:e.customShader,content:n,colorBlendMode:e.colorBlendMode,colorBlendAmount:e.colorBlendAmount,lightColor:e.lightColor,imageBasedLighting:e.imageBasedLighting,featureIdLabel:e.featureIdLabel,instanceFeatureIdLabel:e.instanceFeatureIdLabel,pointCloudShading:e.pointCloudShading,clippingPlanes:e.clippingPlanes,backFaceCulling:e.backFaceCulling,shadows:e.shadows,showCreditsOnScreen:e.showCreditsOnScreen,splitDirection:e.splitDirection,enableDebugWireframe:e._enableDebugWireframe,debugWireframe:e.debugWireframe,projectTo2D:e._projectTo2D,enableShowOutline:e._enableShowOutline,showOutline:e.showOutline,outlineColor:e.outlineColor};return _t(i,r)}var $h=Ps;function Ld(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this.featurePropertiesDirty=!1,this._metadata=void 0,this._group=void 0,this._ready=!1,this._readyPromise=Promise.resolve(this)}Object.defineProperties(Ld.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Tileset3DTileContent.readyPromise","Tileset3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Tileset3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Ld.fromJson=function(e,t,n,i){let r=new Ld(e,t,n);return r._tileset.loadTileset(r._resource,i,r._tile),r._ready=!0,r};Ld.prototype.hasProperty=function(e,t){return!1};Ld.prototype.getFeature=function(e){};Ld.prototype.applyDebugSettings=function(e,t){};Ld.prototype.applyStyle=function(e){};Ld.prototype.update=function(e,t){};Ld.prototype.isDestroyed=function(){return!1};Ld.prototype.destroy=function(){return ue(this)};var cM=Ld;var lM=`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif + +uniform sampler2D u_atlas; + +#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_textureCoordinates; +in vec4 v_pickColor; +in vec4 v_color; + +#ifdef SDF +in vec4 v_outlineColor; +in float v_outlineWidth; +#endif + +#ifdef FRAGMENT_DEPTH_CHECK +in vec4 v_textureCoordinateBounds; // the min and max x and y values for the texture coordinates +in vec4 v_originTextureCoordinateAndTranslate; // texture coordinate at the origin, billboard translate (used for label glyphs) +in vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +in mat2 v_rotationMatrix; + +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +float getGlobeDepth(vec2 adjustedST, vec2 depthLookupST, bool applyTranslate, vec2 dimensions, vec2 imageSize) +{ + vec2 lookupVector = imageSize * (depthLookupST - adjustedST); + lookupVector = v_rotationMatrix * lookupVector; + vec2 labelOffset = (dimensions - imageSize) * (depthLookupST - vec2(0.0, v_originTextureCoordinateAndTranslate.y)); // aligns label glyph with bounding rectangle. Will be zero for billboards because dimensions and imageSize will be equal + + vec2 translation = v_originTextureCoordinateAndTranslate.zw; + + if (applyTranslate) + { + // this is only needed for labels where the horizontal origin is not LEFT + // it moves the label back to where the "origin" should be since all label glyphs are set to HorizontalOrigin.LEFT + translation += (dimensions * v_originTextureCoordinateAndTranslate.xy * vec2(1.0, 0.0)); + } + + vec2 st = ((lookupVector - translation + labelOffset) + gl_FragCoord.xy) / czm_viewport.zw; + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + + if (logDepthOrDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif + + +#ifdef SDF + +// Get the distance from the edge of a glyph at a given position sampling an SDF texture. +float getDistance(vec2 position) +{ + return texture(u_atlas, position).r; +} + +// Samples the sdf texture at the given position and produces a color based on the fill color and the outline. +vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smoothing) +{ + float distance = getDistance(position); + + if (outlineWidth > 0.0) + { + // Don't get the outline edge exceed the SDF_EDGE + float outlineEdge = clamp(SDF_EDGE - outlineWidth, 0.0, SDF_EDGE); + float outlineFactor = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + vec4 sdfColor = mix(outlineColor, v_color, outlineFactor); + float alpha = smoothstep(outlineEdge - smoothing, outlineEdge + smoothing, distance); + return vec4(sdfColor.rgb, sdfColor.a * alpha); + } + else + { + float alpha = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + return vec4(v_color.rgb, v_color.a * alpha); + } +} +#endif + +void main() +{ + vec4 color = texture(u_atlas, v_textureCoordinates); + +#ifdef SDF + float outlineWidth = v_outlineWidth; + vec4 outlineColor = v_outlineColor; + + // Get the current distance + float distance = getDistance(v_textureCoordinates); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float smoothing = fwidth(distance); + // Get an offset that is approximately half the distance to the neighbor pixels + // 0.354 is approximately half of 1/sqrt(2) + vec2 sampleOffset = 0.354 * vec2(dFdx(v_textureCoordinates) + dFdy(v_textureCoordinates)); + + // Sample the center point + vec4 center = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); + + // Sample the 4 neighbors + vec4 color1 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color2 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color3 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color4 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + + // Equally weight the center sample and the 4 neighboring samples + color = (center + color1 + color2 + color3 + color4)/5.0; +#else + // If no derivatives available (IE 10?), just do a single sample + float smoothing = 1.0/32.0; + color = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); +#endif + + color = czm_gammaCorrect(color); +#else + color = czm_gammaCorrect(color); + color *= czm_gammaCorrect(v_color); +#endif + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + +#ifdef VECTOR_TILE + color *= u_highlightColor; +#endif + out_FragColor = color; + +#ifdef LOG_DEPTH + czm_writeLogDepth(); +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + float temp = v_compressed.y; + + temp = temp * SHIFT_RIGHT1; + + float temp2 = (temp - floor(temp)) * SHIFT_LEFT1; + bool enableDepthTest = temp2 != 0.0; + bool applyTranslate = floor(temp) != 0.0; + + if (enableDepthTest) { + temp = v_compressed.z; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); + + temp = v_compressed.w; + temp = temp * SHIFT_RIGHT12; + + vec2 imageSize; + imageSize.y = (temp - floor(temp)) * SHIFT_LEFT12; + imageSize.x = floor(temp); + + vec2 adjustedST = v_textureCoordinates - v_textureCoordinateBounds.xy; + adjustedST = adjustedST / vec2(v_textureCoordinateBounds.z - v_textureCoordinateBounds.x, v_textureCoordinateBounds.w - v_textureCoordinateBounds.y); + + float epsilonEyeDepth = v_compressed.x + czm_epsilon1; + float globeDepth1 = getGlobeDepth(adjustedST, v_originTextureCoordinateAndTranslate.xy, applyTranslate, dimensions, imageSize); + + // negative values go into the screen + if (globeDepth1 != 0.0 && globeDepth1 > epsilonEyeDepth) + { + float globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize); // top left corner + if (globeDepth2 != 0.0 && globeDepth2 > epsilonEyeDepth) + { + float globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize); // top right corner + if (globeDepth3 != 0.0 && globeDepth3 > epsilonEyeDepth) + { + discard; + } + } + } + } +#endif + +} +`;var uM=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScale; +in vec4 positionLowAndRotation; +in vec4 compressedAttribute0; // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset) +in vec4 compressedAttribute1; // aligned axis, translucency by distance, image width +in vec4 compressedAttribute2; // label horizontal origin, image height, color, pick color, size in meters, valid aligned axis, 13 bits free +in vec4 eyeOffset; // eye offset in meters, 4 bytes free (texture range) +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec4 pixelOffsetScaleByDistance; // near, nearScale, far, farScale +in vec4 compressedAttribute3; // distance display condition near, far, disableDepthTestDistance, dimensions +in vec2 sdf; // sdf outline color (rgb) and width (w) +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) +in vec4 textureCoordinateBoundsOrLabelTranslate; // the min and max x and y values for the texture coordinates +#endif +#ifdef VECTOR_TILE +in float a_batchId; +#endif + +out vec2 v_textureCoordinates; +#ifdef FRAGMENT_DEPTH_CHECK +out vec4 v_textureCoordinateBounds; +out vec4 v_originTextureCoordinateAndTranslate; +out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +out mat2 v_rotationMatrix; +#endif + +out vec4 v_pickColor; +out vec4 v_color; +#ifdef SDF +out vec4 v_outlineColor; +out float v_outlineWidth; +#endif + +const float UPPER_BOUND = 32768.0; + +const float SHIFT_LEFT16 = 65536.0; +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_LEFT7 = 128.0; +const float SHIFT_LEFT5 = 32.0; +const float SHIFT_LEFT3 = 8.0; +const float SHIFT_LEFT2 = 4.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; +const float SHIFT_RIGHT7 = 1.0 / 128.0; +const float SHIFT_RIGHT5 = 1.0 / 32.0; +const float SHIFT_RIGHT3 = 1.0 / 8.0; +const float SHIFT_RIGHT2 = 1.0 / 4.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +vec4 addScreenSpaceOffset(vec4 positionEC, vec2 imageSize, float scale, vec2 direction, vec2 origin, vec2 translate, vec2 pixelOffset, vec3 alignedAxis, bool validAlignedAxis, float rotation, bool sizeInMeters, out mat2 rotationMatrix, out float mpp) +{ + // Note the halfSize cannot be computed in JavaScript because it is sent via + // compressed vertex attributes that coerce it to an integer. + vec2 halfSize = imageSize * scale * 0.5; + halfSize *= ((direction * 2.0) - 1.0); + + vec2 originTranslate = origin * abs(halfSize); + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + if (validAlignedAxis || rotation != 0.0) + { + float angle = rotation; + if (validAlignedAxis) + { + vec4 projectedAlignedAxis = czm_modelView3D * vec4(alignedAxis, 0.0); + angle += sign(-projectedAlignedAxis.x) * acos(sign(projectedAlignedAxis.y) * (projectedAlignedAxis.y * projectedAlignedAxis.y) / + (projectedAlignedAxis.x * projectedAlignedAxis.x + projectedAlignedAxis.y * projectedAlignedAxis.y)); + } + + float cosTheta = cos(angle); + float sinTheta = sin(angle); + rotationMatrix = mat2(cosTheta, sinTheta, -sinTheta, cosTheta); + halfSize = rotationMatrix * halfSize; + } + else + { + rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); + } +#endif + + mpp = czm_metersPerPixel(positionEC); + positionEC.xy += (originTranslate + halfSize) * czm_branchFreeTernary(sizeInMeters, 1.0, mpp); + positionEC.xy += (translate + pixelOffset) * mpp; + + return positionEC; +} + +#ifdef VERTEX_DEPTH_CHECK +float getGlobeDepth(vec4 positionEC) +{ + vec4 posWC = czm_eyeToWindowCoordinates(positionEC); + + float globeDepth = czm_unpackDepth(texture(czm_globeDepthTexture, posWC.xy / czm_viewport.zw)); + + if (globeDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif +void main() +{ + // Modifying this shader may also require modifications to Billboard._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndScale.xyz; + vec3 positionLow = positionLowAndRotation.xyz; + float scale = positionHighAndScale.w; + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + float rotation = positionLowAndRotation.w; +#else + float rotation = 0.0; +#endif + + float compressed = compressedAttribute0.x; + + vec2 pixelOffset; + pixelOffset.x = floor(compressed * SHIFT_RIGHT7); + compressed -= pixelOffset.x * SHIFT_LEFT7; + pixelOffset.x -= UPPER_BOUND; + + vec2 origin; + origin.x = floor(compressed * SHIFT_RIGHT5); + compressed -= origin.x * SHIFT_LEFT5; + + origin.y = floor(compressed * SHIFT_RIGHT3); + compressed -= origin.y * SHIFT_LEFT3; + +#ifdef FRAGMENT_DEPTH_CHECK + vec2 depthOrigin = origin.xy; +#endif + origin -= vec2(1.0); + + float show = floor(compressed * SHIFT_RIGHT2); + compressed -= show * SHIFT_LEFT2; + +#ifdef INSTANCED + vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w); + vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w); + vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange; +#else + vec2 direction; + direction.x = floor(compressed * SHIFT_RIGHT1); + direction.y = compressed - direction.x * SHIFT_LEFT1; + + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w); +#endif + + float temp = compressedAttribute0.y * SHIFT_RIGHT8; + pixelOffset.y = -(floor(temp) - UPPER_BOUND); + + vec2 translate; + translate.y = (temp - floor(temp)) * SHIFT_LEFT16; + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + translate.x = floor(temp) - UPPER_BOUND; + + translate.y += (temp - floor(temp)) * SHIFT_LEFT8; + translate.y -= UPPER_BOUND; + + temp = compressedAttribute1.x * SHIFT_RIGHT8; + float temp2 = floor(compressedAttribute2.w * SHIFT_RIGHT2); + + vec2 imageSize = vec2(floor(temp), temp2); + +#ifdef FRAGMENT_DEPTH_CHECK + float labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2)); + float applyTranslate = 0.0; + if (labelHorizontalOrigin != 0.0) // is a billboard, so set apply translate to false + { + applyTranslate = 1.0; + labelHorizontalOrigin -= 2.0; + depthOrigin.x = labelHorizontalOrigin + 1.0; + } + + depthOrigin = vec2(1.0) - (depthOrigin * 0.5); +#endif + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) + temp = compressedAttribute3.w; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); +#endif + +#ifdef ALIGNED_AXIS + vec3 alignedAxis = czm_octDecode(floor(compressedAttribute1.y * SHIFT_RIGHT8)); + temp = compressedAttribute2.z * SHIFT_RIGHT5; + bool validAlignedAxis = (temp - floor(temp)) * SHIFT_LEFT1 > 0.0; +#else + vec3 alignedAxis = vec3(0.0); + bool validAlignedAxis = false; +#endif + + vec4 pickColor; + vec4 color; + + temp = compressedAttribute2.y; + temp = temp * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + temp = compressedAttribute2.x; + temp = temp * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + temp = compressedAttribute2.z * SHIFT_RIGHT8; + bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0; + temp = floor(temp) * SHIFT_RIGHT8; + + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor /= 255.0; + + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + +#if defined(FRAGMENT_DEPTH_CHECK) || defined(VERTEX_DEPTH_CHECK) + float eyeDepth = positionEC.z; +#endif + + positionEC = czm_eyeOffset(positionEC, eyeOffset.xyz); + positionEC.xyz *= show; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(EYE_DISTANCE_PIXEL_OFFSET) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + float distanceScale = czm_nearFarScalar(scaleByDistance, lengthSq); + scale *= distanceScale; + translate *= distanceScale; + // push vertex behind near plane for clipping + if (scale == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef EYE_DISTANCE_PIXEL_OFFSET + float pixelOffsetScale = czm_nearFarScalar(pixelOffsetScaleByDistance, lengthSq); + pixelOffset *= pixelOffsetScale; +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = compressedAttribute3.x; + float farSq = compressedAttribute3.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + positionEC.xyz = vec3(0.0); + } +#endif + + mat2 rotationMatrix; + float mpp; + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = compressedAttribute3.z; +#endif + +#ifdef VERTEX_DEPTH_CHECK +if (lengthSq < disableDepthTestDistance) { + float depthsilon = 10.0; + + vec2 labelTranslate = textureCoordinateBoundsOrLabelTranslate.xy; + vec4 pEC1 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth1 = getGlobeDepth(pEC1); + + if (globeDepth1 != 0.0 && pEC1.z + depthsilon < globeDepth1) + { + vec4 pEC2 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0, 1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth2 = getGlobeDepth(pEC2); + + if (globeDepth2 != 0.0 && pEC2.z + depthsilon < globeDepth2) + { + vec4 pEC3 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth3 = getGlobeDepth(pEC3); + if (globeDepth3 != 0.0 && pEC3.z + depthsilon < globeDepth3) + { + positionEC.xyz = vec3(0.0); + } + } + } +} +#endif + + positionEC = addScreenSpaceOffset(positionEC, imageSize, scale, direction, origin, translate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + gl_Position = czm_projection * positionEC; + v_textureCoordinates = textureCoordinates; + +#ifdef LOG_DEPTH + czm_vertexLogDepth(); +#endif + +#ifdef DISABLE_DEPTH_DISTANCE + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = 1.0; +#endif + } + } +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + if (sizeInMeters) { + translate /= mpp; + dimensions /= mpp; + imageSize /= mpp; + } + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + v_rotationMatrix = rotationMatrix; +#else + v_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); +#endif + + float enableDepthCheck = 0.0; + if (lengthSq < disableDepthTestDistance) + { + enableDepthCheck = 1.0; + } + + float dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12)); + float dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12)); + + float iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12)); + float ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12)); + + v_compressed.x = eyeDepth; + v_compressed.y = applyTranslate * SHIFT_LEFT1 + enableDepthCheck; + v_compressed.z = dw * SHIFT_LEFT12 + dh; + v_compressed.w = iw * SHIFT_LEFT12 + ih; + v_originTextureCoordinateAndTranslate.xy = depthOrigin; + v_originTextureCoordinateAndTranslate.zw = translate; + v_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate; + +#endif + +#ifdef SDF + vec4 outlineColor; + float outlineWidth; + + temp = sdf.x; + temp = temp * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + temp = sdf.y; + temp = temp * SHIFT_RIGHT8; + float temp3 = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.a = floor(temp); + outlineColor /= 255.0; + + v_outlineWidth = outlineWidth / 255.0; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency; +#endif + + v_pickColor = pickColor; + + v_color = color; + v_color.a *= translucency; + +} +`;function Si(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,r=e.scaleByDistance,o=e.distanceDisplayCondition;u(n)&&(n=Bt.clone(n)),u(i)&&(i=Bt.clone(i)),u(r)&&(r=Bt.clone(r)),u(o)&&(o=vt.clone(o)),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._pixelOffset=H.clone(y(e.pixelOffset,H.ZERO)),this._translate=new H(0,0),this._eyeOffset=h.clone(y(e.eyeOffset,h.ZERO)),this._heightReference=y(e.heightReference,je.NONE),this._verticalOrigin=y(e.verticalOrigin,Pn.CENTER),this._horizontalOrigin=y(e.horizontalOrigin,_i.CENTER),this._scale=y(e.scale,1),this._color=z.clone(y(e.color,z.WHITE)),this._rotation=y(e.rotation,0),this._alignedAxis=h.clone(y(e.alignedAxis,h.ZERO)),this._width=e.width,this._height=e.height,this._scaleByDistance=r,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._sizeInMeters=y(e.sizeInMeters,!1),this._distanceDisplayCondition=o,this._disableDepthTestDistance=e.disableDepthTestDistance,this._id=e.id,this._collection=y(e.collection,t),this._pickId=void 0,this._pickPrimitive=y(e._pickPrimitive,this),this._billboardCollection=t,this._dirty=!1,this._index=-1,this._batchIndex=void 0,this._imageIndex=-1,this._imageIndexPromise=void 0,this._imageId=void 0,this._image=void 0,this._imageSubRegion=void 0,this._imageWidth=void 0,this._imageHeight=void 0,this._labelDimensions=void 0,this._labelHorizontalOrigin=void 0,this._labelTranslate=void 0;let s=e.image,a=e.imageId;u(s)&&(u(a)||(typeof s=="string"?a=s:u(s.src)?a=s.src:a=Wn()),this._imageId=a,this._image=s),u(e.imageSubRegion)&&(this._imageId=a,this._imageSubRegion=e.imageSubRegion),u(this._billboardCollection._textureAtlas)&&this._loadImage(),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=ne.SCENE3D,this._clusterShow=!0,this._outlineColor=z.clone(y(e.outlineColor,z.BLACK)),this._outlineWidth=y(e.outlineWidth,0),this._updateClamping()}var yoe=Si.SHOW_INDEX=0,mV=Si.POSITION_INDEX=1,Eoe=Si.PIXEL_OFFSET_INDEX=2,xHe=Si.EYE_OFFSET_INDEX=3,CHe=Si.HORIZONTAL_ORIGIN_INDEX=4,THe=Si.VERTICAL_ORIGIN_INDEX=5,EHe=Si.SCALE_INDEX=6,pV=Si.IMAGE_INDEX_INDEX=7,Aoe=Si.COLOR_INDEX=8,bHe=Si.ROTATION_INDEX=9,SHe=Si.ALIGNED_AXIS_INDEX=10,vHe=Si.SCALE_BY_DISTANCE_INDEX=11,wHe=Si.TRANSLUCENCY_BY_DISTANCE_INDEX=12,DHe=Si.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,IHe=Si.DISTANCE_DISPLAY_CONDITION=14,PHe=Si.DISABLE_DEPTH_DISTANCE=15;Si.TEXTURE_COORDINATE_BOUNDS=16;var xoe=Si.SDF_INDEX=17;Si.NUMBER_OF_PROPERTIES=18;function kr(e,t){let n=e._billboardCollection;u(n)&&(n._updateBillboard(e,t),e._dirty=!0)}Object.defineProperties(Si.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,kr(this,yoe))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),this._updateClamping(),kr(this,mV))}},heightReference:{get:function(){return this._heightReference},set:function(e){let t=this._heightReference;e!==t&&(this._heightReference=e,this._updateClamping(),kr(this,mV))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;H.equals(t,e)||(H.clone(e,t),kr(this,Eoe))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Bt.equals(t,e)||(this._scaleByDistance=Bt.clone(e,t),kr(this,vHe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Bt.equals(t,e)||(this._translucencyByDistance=Bt.clone(e,t),kr(this,wHe))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;Bt.equals(t,e)||(this._pixelOffsetScaleByDistance=Bt.clone(e,t),kr(this,DHe))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;h.equals(t,e)||(h.clone(e,t),kr(this,xHe))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,kr(this,CHe))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,kr(this,THe))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,kr(this,EHe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),kr(this,Aoe))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,kr(this,bHe))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){let t=this._alignedAxis;h.equals(t,e)||(h.clone(e,t),kr(this,SHe))}},width:{get:function(){return y(this._width,this._imageWidth)},set:function(e){this._width!==e&&(this._width=e,kr(this,pV))}},height:{get:function(){return y(this._height,this._imageHeight)},set:function(e){this._height!==e&&(this._height=e,kr(this,pV))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,kr(this,Aoe))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){vt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=vt.clone(e,this._distanceDisplayCondition),kr(this,IHe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,kr(this,PHe))}},id:{get:function(){return this._id},set:function(e){this._id=e,u(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,u(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageId},set:function(e){u(e)?typeof e=="string"?this.setImage(e,e):e instanceof ve?this.setImage(e.url,e):u(e.src)?this.setImage(e.src,e):this.setImage(Wn(),e):(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=void 0,this._image=void 0,this._imageIndexPromise=void 0,kr(this,pV))}},ready:{get:function(){return this._imageIndex!==-1}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition),kr(this,mV)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,kr(this,yoe))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),kr(this,xoe))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,kr(this,xoe))}}});Si.prototype.getPickId=function(e){return u(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId};Si.prototype._updateClamping=function(){Si._updateClamping(this._billboardCollection,this)};var fM=new me,Coe=new h;Si._updateClamping=function(e,t){let n=e._scene;if(!u(n)||!u(n.globe))return;let i=n.globe,r=i.ellipsoid,o=i._surface,s=n.frameState.mode,a=s!==t._mode;if(t._mode=s,(t._heightReference===je.NONE||a)&&u(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference===je.NONE||!u(t._position))return;let c=r.cartesianToCartographic(t._position);if(!u(c)){t._actualClampedPosition=void 0;return}u(t._removeCallbackFunc)&&t._removeCallbackFunc();function l(d){if(t._heightReference===je.RELATIVE_TO_GROUND)if(t._mode===ne.SCENE3D){let p=r.cartesianToCartographic(d,fM);p.height+=c.height,r.cartographicToCartesian(p,d)}else d.x+=c.height;t._clampedPosition=h.clone(d,t._clampedPosition)}t._removeCallbackFunc=o.updateHeight(c,l),me.clone(c,fM);let f=i.getHeight(c);u(f)&&(fM.height=f),r.cartographicToCartesian(fM,Coe),l(Coe)};Si.prototype._loadImage=function(){let e=this._billboardCollection._textureAtlas,t=this._imageId,n=this._image,i=this._imageSubRegion,r,o=this;function s(a){if(o._imageId!==t||o._image!==n||!Xe.equals(o._imageSubRegion,i))return;let c=e.textureCoordinates[a];o._imageWidth=e.texture.width*c.width,o._imageHeight=e.texture.height*c.height,o._imageIndex=a,o._ready=!0,o._image=void 0,o._imageIndexPromise=void 0,kr(o,pV)}if(u(n)){let a=e.getImageIndex(t);if(u(a)){s(a);return}r=e.addImage(t,n)}u(i)&&(r=e.addSubRegion(t,i)),this._imageIndexPromise=r,u(r)&&r.then(s).catch(function(a){console.error(`Error loading image for billboard: ${a}`),o._imageIndexPromise=void 0})};Si.prototype.setImage=function(e,t){this._imageId!==e&&(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=e,this._image=t,u(this._billboardCollection._textureAtlas)&&this._loadImage())};Si.prototype.setImageSubRegion=function(e,t){this._imageId===e&&Xe.equals(this._imageSubRegion,t)||(this._imageIndex=-1,this._imageId=e,this._imageSubRegion=Xe.clone(t),u(this._billboardCollection._textureAtlas)&&this._loadImage())};Si.prototype._setTranslate=function(e){let t=this._translate;H.equals(t,e)||(H.clone(e,t),kr(this,Eoe))};Si.prototype._getActualPosition=function(){return u(this._clampedPosition)?this._clampedPosition:this._actualPosition};Si.prototype._setActualPosition=function(e){u(this._clampedPosition)||h.clone(e,this._actualPosition),kr(this,mV)};var Toe=new se;Si._computeActualPosition=function(e,t,n,i){return u(e._clampedPosition)?(n.mode!==e._mode&&e._updateClamping(),e._clampedPosition):n.mode===ne.SCENE3D?t:(N.multiplyByPoint(i,t,Toe),Zi.computeActualWgs84Position(n,Toe))};var boe=new h;Si._computeScreenSpacePosition=function(e,t,n,i,r,o){let s=N.multiplyByPoint(e,t,boe),a=Zi.wgs84WithEyeOffsetToWindowCoordinates(r,s,n,o);if(u(a))return H.add(a,i,a),a};var hV=new H(0,0);Si.prototype.computeScreenSpacePosition=function(e,t){let n=this._billboardCollection;u(t)||(t=new H),H.clone(this._pixelOffset,hV),H.add(hV,this._translate,hV);let i=n.modelMatrix,r=this._position;if(u(this._clampedPosition)&&(r=this._clampedPosition,e.mode!==ne.SCENE3D)){let s=e.mapProjection,a=s.ellipsoid,c=s.unproject(r,fM);r=a.cartographicToCartesian(c,boe),i=N.IDENTITY}return Si._computeScreenSpacePosition(i,r,this._eyeOffset,hV,e,t)};Si.getScreenSpaceBoundingBox=function(e,t,n){let i=e.width,r=e.height,o=e.scale;i*=o,r*=o;let s=t.x;e.horizontalOrigin===_i.RIGHT?s-=i:e.horizontalOrigin===_i.CENTER&&(s-=i*.5);let a=t.y;return e.verticalOrigin===Pn.BOTTOM||e.verticalOrigin===Pn.BASELINE?a-=r:e.verticalOrigin===Pn.CENTER&&(a-=r*.5),u(n)||(n=new Xe),n.x=s,n.y=a,n.width=i,n.height=r,n};Si.prototype.equals=function(e){return this===e||u(e)&&this._id===e._id&&h.equals(this._position,e._position)&&this._imageId===e._imageId&&this._show===e._show&&this._scale===e._scale&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&Xe.equals(this._imageSubRegion,e._imageSubRegion)&&z.equals(this._color,e._color)&&H.equals(this._pixelOffset,e._pixelOffset)&&H.equals(this._translate,e._translate)&&h.equals(this._eyeOffset,e._eyeOffset)&&Bt.equals(this._scaleByDistance,e._scaleByDistance)&&Bt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Bt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&vt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};Si.prototype._destroy=function(){u(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),u(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0};var pr=Si;var OHe={OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2},vr=Object.freeze(OHe);var MHe={FONT_SIZE:48,PADDING:10,RADIUS:8,CUTOFF:.25},Os=Object.freeze(MHe);function jp(e,t,n,i,r){this.bottomLeft=y(e,H.ZERO),this.topRight=y(t,H.ZERO),this.childNode1=n,this.childNode2=i,this.imageIndex=r}var RHe=new H(16,16);function Xg(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.borderWidthInPixels,1),n=y(e.initialSize,RHe);this._context=e.context,this._pixelFormat=y(e.pixelFormat,at.RGBA),this._borderWidthInPixels=t,this._textureCoordinates=[],this._guid=Wn(),this._idHash={},this._indexHash={},this._initialSize=n,this._root=void 0}Object.defineProperties(Xg.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},textureCoordinates:{get:function(){return this._textureCoordinates}},texture:{get:function(){return u(this._texture)||(this._texture=new Rt({context:this._context,width:this._initialSize.x,height:this._initialSize.y,pixelFormat:this._pixelFormat})),this._texture}},numberOfImages:{get:function(){return this._textureCoordinates.length}},guid:{get:function(){return this._guid}}});function BHe(e,t){let n=e._context,i=e.numberOfImages,r=2,o=e._borderWidthInPixels;if(i>0){let s=e._texture.width,a=e._texture.height,c=r*(s+t.width+o),l=r*(a+t.height+o),f=s/c,d=a/l,p=new jp(new H(s+o,o),new H(c,a)),g=new jp(new H,new H(c,a),e._root,p),m=new jp(new H(o,a+o),new H(c,l)),A=new jp(new H,new H(c,l),g,m);for(let T=0;T<e._textureCoordinates.length;T++){let E=e._textureCoordinates[T];u(E)&&(E.x*=f,E.y*=d,E.width*=f,E.height*=d)}let x=new Rt({context:e._context,width:c,height:l,pixelFormat:e._pixelFormat}),C=new Gs({context:n,colorTextures:[e._texture],destroyAttachments:!1});C._bind(),x.copyFromFramebuffer(0,0,0,0,c,l),C._unBind(),C.destroy(),e._texture=e._texture&&e._texture.destroy(),e._texture=x,e._root=A}else{let s=r*(t.width+2*o),a=r*(t.height+2*o);s<e._initialSize.x&&(s=e._initialSize.x),a<e._initialSize.y&&(a=e._initialSize.y),e._texture=e._texture&&e._texture.destroy(),e._texture=new Rt({context:e._context,width:s,height:a,pixelFormat:e._pixelFormat}),e._root=new jp(new H(o,o),new H(s,a))}}function _V(e,t,n){if(u(t)){if(!u(t.childNode1)&&!u(t.childNode2)){if(u(t.imageIndex))return;let i=t.topRight.x-t.bottomLeft.x,r=t.topRight.y-t.bottomLeft.y,o=i-n.width,s=r-n.height;if(o<0||s<0)return;if(o===0&&s===0)return t;if(o>s){t.childNode1=new jp(new H(t.bottomLeft.x,t.bottomLeft.y),new H(t.bottomLeft.x+n.width,t.topRight.y));let a=t.bottomLeft.x+n.width+e._borderWidthInPixels;a<t.topRight.x&&(t.childNode2=new jp(new H(a,t.bottomLeft.y),new H(t.topRight.x,t.topRight.y)))}else{t.childNode1=new jp(new H(t.bottomLeft.x,t.bottomLeft.y),new H(t.topRight.x,t.bottomLeft.y+n.height));let a=t.bottomLeft.y+n.height+e._borderWidthInPixels;a<t.topRight.y&&(t.childNode2=new jp(new H(t.bottomLeft.x,a),new H(t.topRight.x,t.topRight.y)))}return _V(e,t.childNode1,n)}return _V(e,t.childNode1,n)||_V(e,t.childNode2,n)}}function Soe(e,t,n){let i=_V(e,e._root,t);if(u(i)){i.imageIndex=n;let r=e._texture.width,o=e._texture.height,s=i.topRight.x-i.bottomLeft.x,a=i.topRight.y-i.bottomLeft.y,c=i.bottomLeft.x/r,l=i.bottomLeft.y/o,f=s/r,d=a/o;e._textureCoordinates[n]=new Xe(c,l,f,d),e._texture.copyFrom({source:t,xOffset:i.bottomLeft.x,yOffset:i.bottomLeft.y})}else BHe(e,t),Soe(e,t,n);e._guid=Wn()}function voe(e,t){if(!u(e)||e.isDestroyed())return-1;let n=e.numberOfImages;return Soe(e,t,n),n}Xg.prototype.getImageIndex=function(e){return this._indexHash[e]};Xg.prototype.addImageSync=function(e,t){let n=this._indexHash[e];return u(n)||(n=voe(this,t),this._idHash[e]=Promise.resolve(n),this._indexHash[e]=n),n};Xg.prototype.addImage=function(e,t){let n=this._idHash[e];if(u(n))return n;typeof t=="function"?t=t(e):(typeof t=="string"||t instanceof ve)&&(t=ve.createIfNeeded(t).fetchImage());let i=this;return n=Promise.resolve(t).then(function(r){let o=voe(i,r);return i._indexHash[e]=o,o}),this._idHash[e]=n,n};Xg.prototype.addSubRegion=function(e,t){let n=this._idHash[e];if(!u(n))throw new de(`image with id "${e}" not found in the atlas.`);let i=this;return Promise.resolve(n).then(function(r){if(r===-1)return-1;let o=i._texture.width,s=i._texture.height,a=i._textureCoordinates[r],c=a.x+t.x/o,l=a.y+t.y/s,f=t.width/o,d=t.height/s,p=i._textureCoordinates.push(new Xe(c,l,f,d))-1;return i._indexHash[e]=p,i._guid=Wn(),p})};Xg.prototype.isDestroyed=function(){return!1};Xg.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),ue(this)};var Kg=Xg;var LHe=pr.SHOW_INDEX,hM=pr.POSITION_INDEX,woe=pr.PIXEL_OFFSET_INDEX,Doe=pr.EYE_OFFSET_INDEX,NHe=pr.HORIZONTAL_ORIGIN_INDEX,FHe=pr.VERTICAL_ORIGIN_INDEX,UHe=pr.SCALE_INDEX,dM=pr.IMAGE_INDEX_INDEX,Ioe=pr.COLOR_INDEX,VHe=pr.ROTATION_INDEX,kHe=pr.ALIGNED_AXIS_INDEX,Poe=pr.SCALE_BY_DISTANCE_INDEX,Ooe=pr.TRANSLUCENCY_BY_DISTANCE_INDEX,Moe=pr.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX,Roe=pr.DISTANCE_DISPLAY_CONDITION,zHe=pr.DISABLE_DEPTH_DISTANCE,HHe=pr.TEXTURE_COORDINATE_BOUNDS,Boe=pr.SDF_INDEX,z6=pr.NUMBER_OF_PROPERTIES,br,GHe={positionHighAndScale:0,positionLowAndRotation:1,compressedAttribute0:2,compressedAttribute1:3,compressedAttribute2:4,eyeOffset:5,scaleByDistance:6,pixelOffsetScaleByDistance:7,compressedAttribute3:8,textureCoordinateBoundsOrLabelTranslate:9,a_batchId:10,sdf:11},WHe={direction:0,positionHighAndScale:1,positionLowAndRotation:2,compressedAttribute0:3,compressedAttribute1:4,compressedAttribute2:5,eyeOffset:6,scaleByDistance:7,pixelOffsetScaleByDistance:8,compressedAttribute3:9,textureCoordinateBoundsOrLabelTranslate:10,a_batchId:11,sdf:12};function ff(e){e=y(e,y.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._textureAtlasGUID=void 0,this._destroyTextureAtlas=!0,this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!1,this._shaderRotation=!1,this._compiledShaderRotation=!1,this._shaderAlignedAxis=!1,this._compiledShaderAlignedAxis=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderPixelOffsetScaleByDistance=!1,this._compiledShaderPixelOffsetScaleByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._shaderClampToGround=!1,this._compiledShaderClampToGround=!1,this._propertiesChanged=new Uint32Array(z6),this._maxSize=0,this._maxEyeOffset=0,this._maxScale=1,this._maxPixelOffset=0,this._allHorizontalCenter=!0,this._allVerticalCenter=!0,this._allSizedInMeters=!0,this._baseVolume=new ae,this._baseVolumeWC=new ae,this._baseVolume2D=new ae,this._boundingVolume=new ae,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this._modelMatrix=N.clone(N.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowTextureAtlas=y(e.debugShowTextureAtlas,!1),this.blendOption=y(e.blendOption,vr.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW],this._highlightColor=z.clone(z.WHITE);let t=this;this._uniforms={u_atlas:function(){return t._textureAtlas.texture},u_highlightColor:function(){return t._highlightColor}};let n=this._scene;u(n)&&u(n.terrainProviderChanged)&&(this._removeCallbackFunc=n.terrainProviderChanged.addEventListener(function(){let i=this._billboards,r=i.length;for(let o=0;o<r;++o)u(i[o])&&i[o]._updateClamping()},this))}Object.defineProperties(ff.prototype,{length:{get:function(){return H6(this),this._billboards.length}},textureAtlas:{get:function(){return this._textureAtlas},set:function(e){this._textureAtlas!==e&&(this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._textureAtlas=e,this._createVertexArray=!0)}},destroyTextureAtlas:{get:function(){return this._destroyTextureAtlas},set:function(e){this._destroyTextureAtlas=e}}});function Loe(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}ff.prototype.add=function(e){let t=new pr(e,this);return t._index=this._billboards.length,this._billboards.push(t),this._createVertexArray=!0,t};ff.prototype.remove=function(e){return this.contains(e)?(this._billboards[e._index]=void 0,this._billboardsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};ff.prototype.removeAll=function(){Loe(this._billboards),this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!0};function H6(e){if(e._billboardsRemoved){e._billboardsRemoved=!1;let t=[],n=e._billboards,i=n.length;for(let r=0,o=0;r<i;++r){let s=n[r];u(s)&&(s._index=o++,t.push(s))}e._billboards=t}}ff.prototype._updateBillboard=function(e,t){e._dirty||(this._billboardsToUpdate[this._billboardsToUpdateIndex++]=e),++this._propertiesChanged[t]};ff.prototype.contains=function(e){return u(e)&&e._billboardCollection===this};ff.prototype.get=function(e){return H6(this),this._billboards[e]};var L6;function jHe(e){let n=e.cache.billboardCollection_indexBufferBatched;if(u(n))return n;let i=16384*6-6,r=new Uint16Array(i);for(let o=0,s=0;o<i;o+=6,s+=4)r[o]=s,r[o+1]=s+1,r[o+2]=s+2,r[o+3]=s+0,r[o+4]=s+2,r[o+5]=s+3;return n=ht.createIndexBuffer({context:e,typedArray:r,usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferBatched=n,n}function qHe(e){let t=e.cache.billboardCollection_indexBufferInstanced;return u(t)||(t=ht.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferInstanced=t),t}function YHe(e){let t=e.cache.billboardCollection_vertexBufferInstanced;return u(t)||(t=ht.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_vertexBufferInstanced=t),t}ff.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<z6;++i){let r=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==r,e[i]=r}return t};function XHe(e,t,n,i,r,o){let s=[{index:br.positionHighAndScale,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[hM]},{index:br.positionLowAndRotation,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[hM]},{index:br.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[woe]},{index:br.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Ooe]},{index:br.compressedAttribute2,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Ioe]},{index:br.eyeOffset,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Doe]},{index:br.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Poe]},{index:br.pixelOffsetScaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Moe]},{index:br.compressedAttribute3,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Roe]},{index:br.textureCoordinateBoundsOrLabelTranslate,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[HHe]}];i&&s.push({index:br.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:YHe(e)}),u(r)&&s.push({index:br.a_batchId,componentsPerAttribute:1,componentDatatype:X.FLOAT,bufferUsage:Fe.STATIC_DRAW}),o&&s.push({index:br.sdf,componentsPerAttribute:2,componentDatatype:X.FLOAT,usage:n[Boe]});let a=i?t:4*t;return new ap(e,s,a,i)}var N6=new jn;function Noe(e,t,n,i,r){let o,s=i[br.positionHighAndScale],a=i[br.positionLowAndRotation],c=r._getActualPosition();e._mode===ne.SCENE3D&&(ae.expand(e._baseVolume,c,e._baseVolume),e._boundingVolumeDirty=!0),jn.fromCartesian(c,N6);let l=r.scale,f=r.rotation;f!==0&&(e._shaderRotation=!0),e._maxScale=Math.max(e._maxScale,l);let d=N6.high,p=N6.low;e._instanced?(o=r._index,s(o,d.x,d.y,d.z,l),a(o,p.x,p.y,p.z,f)):(o=r._index*4,s(o+0,d.x,d.y,d.z,l),s(o+1,d.x,d.y,d.z,l),s(o+2,d.x,d.y,d.z,l),s(o+3,d.x,d.y,d.z,l),a(o+0,p.x,p.y,p.z,f),a(o+1,p.x,p.y,p.z,f),a(o+2,p.x,p.y,p.z,f),a(o+3,p.x,p.y,p.z,f))}var uf=new H,lf=32768,dE=65536,F6=4096,em=256,KHe=128,JHe=32,ZHe=8,Foe=4,QHe=1/256,Uoe=0,Voe=2,koe=3,zoe=1;function Hoe(e,t,n,i,r){let o,s=i[br.compressedAttribute0],a=r.pixelOffset,c=a.x,l=a.y,f=r._translate,d=f.x,p=f.y;e._maxPixelOffset=Math.max(e._maxPixelOffset,Math.abs(c+d),Math.abs(-l+p));let g=r.horizontalOrigin,m=r._verticalOrigin,A=r.show&&r.clusterShow;r.color.alpha===0&&(A=!1),m===Pn.BASELINE&&(m=Pn.BOTTOM),e._allHorizontalCenter=e._allHorizontalCenter&&g===_i.CENTER,e._allVerticalCenter=e._allVerticalCenter&&m===Pn.CENTER;let x=0,C=0,T=0,E=0,S=r._imageIndex;if(S!==-1){let k=n[S];x=k.x,C=k.y,T=k.width,E=k.height}let v=x+T,D=C+E,M=Math.floor(P.clamp(c,-lf,lf)+lf)*KHe;M+=(g+1)*JHe,M+=(m+1)*ZHe,M+=(A?1:0)*Foe;let O=Math.floor(P.clamp(l,-lf,lf)+lf)*em,B=Math.floor(P.clamp(d,-lf,lf)+lf)*em,L=(P.clamp(p,-lf,lf)+lf)*QHe,_=Math.floor(L),b=Math.floor((L-_)*em);O+=_,B+=b,uf.x=x,uf.y=C;let w=qn.compressTextureCoordinates(uf);uf.x=v;let I=qn.compressTextureCoordinates(uf);uf.y=D;let R=qn.compressTextureCoordinates(uf);uf.x=x;let F=qn.compressTextureCoordinates(uf);e._instanced?(o=r._index,s(o,M,O,B,w)):(o=r._index*4,s(o+0,M+Uoe,O,B,w),s(o+1,M+Voe,O,B,I),s(o+2,M+koe,O,B,R),s(o+3,M+zoe,O,B,F))}function Goe(e,t,n,i,r){let o,s=i[br.compressedAttribute1],a=r.alignedAxis;h.equals(a,h.ZERO)||(e._shaderAlignedAxis=!0);let c=0,l=1,f=1,d=1,p=r.translucencyByDistance;u(p)&&(c=p.near,l=p.nearValue,f=p.far,d=p.farValue,(l!==1||d!==1)&&(e._shaderTranslucencyByDistance=!0));let g=0,m=r._imageIndex;m!==-1&&(g=n[m].width);let A=e._textureAtlas.texture.width,x=Math.round(y(r.width,A*g));e._maxSize=Math.max(e._maxSize,x);let C=P.clamp(x,0,dE),T=0;Math.abs(h.magnitudeSquared(a)-1)<P.EPSILON6&&(T=qn.octEncodeFloat(a)),l=P.clamp(l,0,1),l=l===1?255:l*255|0,C=C*em+l,d=P.clamp(d,0,1),d=d===1?255:d*255|0,T=T*em+d,e._instanced?(o=r._index,s(o,C,T,c,f)):(o=r._index*4,s(o+0,C,T,c,f),s(o+1,C,T,c,f),s(o+2,C,T,c,f),s(o+3,C,T,c,f))}function V6(e,t,n,i,r){let o,s=i[br.compressedAttribute2],a=r.color,c=u(e._batchTable)?z.WHITE:r.getPickId(t.context).color,l=r.sizeInMeters?1:0,f=Math.abs(h.magnitudeSquared(r.alignedAxis)-1)<P.EPSILON6?1:0;e._allSizedInMeters=e._allSizedInMeters&&l===1;let d=0,p=r._imageIndex;p!==-1&&(d=n[p].height);let g=e._textureAtlas.texture.dimensions,m=Math.round(y(r.height,g.y*d));e._maxSize=Math.max(e._maxSize,m);let A=y(r._labelHorizontalOrigin,-2);A+=2;let x=m*Foe+A,C=z.floatToByte(a.red),T=z.floatToByte(a.green),E=z.floatToByte(a.blue),S=C*dE+T*em+E;C=z.floatToByte(c.red),T=z.floatToByte(c.green),E=z.floatToByte(c.blue);let v=C*dE+T*em+E,D=z.floatToByte(a.alpha)*dE+z.floatToByte(c.alpha)*em;D+=l*2+f,e._instanced?(o=r._index,s(o,S,v,D,x)):(o=r._index*4,s(o+0,S,v,D,x),s(o+1,S,v,D,x),s(o+2,S,v,D,x),s(o+3,S,v,D,x))}function k6(e,t,n,i,r){let o,s=i[br.eyeOffset],a=r.eyeOffset,c=a.z;if(r._heightReference!==je.NONE&&(c*=1.005),e._maxEyeOffset=Math.max(e._maxEyeOffset,Math.abs(a.x),Math.abs(a.y),Math.abs(c)),e._instanced){let l=0,f=0,d=r._imageIndex;if(d!==-1){let g=n[d];l=g.width,f=g.height}uf.x=l,uf.y=f;let p=qn.compressTextureCoordinates(uf);o=r._index,s(o,a.x,a.y,c,p)}else o=r._index*4,s(o+0,a.x,a.y,c,0),s(o+1,a.x,a.y,c,0),s(o+2,a.x,a.y,c,0),s(o+3,a.x,a.y,c,0)}function Woe(e,t,n,i,r){let o,s=i[br.scaleByDistance],a=0,c=1,l=1,f=1,d=r.scaleByDistance;u(d)&&(a=d.near,c=d.nearValue,l=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderScaleByDistance=!0)),e._instanced?(o=r._index,s(o,a,c,l,f)):(o=r._index*4,s(o+0,a,c,l,f),s(o+1,a,c,l,f),s(o+2,a,c,l,f),s(o+3,a,c,l,f))}function joe(e,t,n,i,r){let o,s=i[br.pixelOffsetScaleByDistance],a=0,c=1,l=1,f=1,d=r.pixelOffsetScaleByDistance;u(d)&&(a=d.near,c=d.nearValue,l=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderPixelOffsetScaleByDistance=!0)),e._instanced?(o=r._index,s(o,a,c,l,f)):(o=r._index*4,s(o+0,a,c,l,f),s(o+1,a,c,l,f),s(o+2,a,c,l,f),s(o+3,a,c,l,f))}function qoe(e,t,n,i,r){let o,s=i[br.compressedAttribute3],a=0,c=Number.MAX_VALUE,l=r.distanceDisplayCondition;u(l)&&(a=l.near,c=l.far,a*=a,c*=c,e._shaderDistanceDisplayCondition=!0);let f=r.disableDepthTestDistance,d=r.heightReference===je.CLAMP_TO_GROUND&&t.context.depthTexture;u(f)||(f=d?5e3:0),f*=f,(d||f>0)&&(e._shaderDisableDepthDistance=!0,f===Number.POSITIVE_INFINITY&&(f=-1));let p,g;if(u(r._labelDimensions))g=r._labelDimensions.x,p=r._labelDimensions.y;else{let C=0,T=0,E=r._imageIndex;if(E!==-1){let v=n[E];C=v.height,T=v.width}p=Math.round(y(r.height,e._textureAtlas.texture.dimensions.y*C));let S=e._textureAtlas.texture.width;g=Math.round(y(r.width,S*T))}let m=Math.floor(P.clamp(g,0,F6)),A=Math.floor(P.clamp(p,0,F6)),x=m*F6+A;e._instanced?(o=r._index,s(o,a,c,f,x)):(o=r._index*4,s(o+0,a,c,f,x),s(o+1,a,c,f,x),s(o+2,a,c,f,x),s(o+3,a,c,f,x))}function Yoe(e,t,n,i,r){if(r.heightReference===je.CLAMP_TO_GROUND){let m=e._scene,A=t.context,x=t.globeTranslucencyState.translucent,C=u(m.globe)&&m.globe.depthTestAgainstTerrain;e._shaderClampToGround=A.depthTexture&&!x&&C}let o,s=i[br.textureCoordinateBoundsOrLabelTranslate];if(zt.maximumVertexTextureImageUnits>0){let m=0,A=0;u(r._labelTranslate)&&(m=r._labelTranslate.x,A=r._labelTranslate.y),e._instanced?(o=r._index,s(o,m,A,0,0)):(o=r._index*4,s(o+0,m,A,0,0),s(o+1,m,A,0,0),s(o+2,m,A,0,0),s(o+3,m,A,0,0));return}let a=0,c=0,l=0,f=0,d=r._imageIndex;if(d!==-1){let m=n[d];a=m.x,c=m.y,l=m.width,f=m.height}let p=a+l,g=c+f;e._instanced?(o=r._index,s(o,a,c,p,g)):(o=r._index*4,s(o+0,a,c,p,g),s(o+1,a,c,p,g),s(o+2,a,c,p,g),s(o+3,a,c,p,g))}function $He(e,t,n,i,r){if(!u(e._batchTable))return;let o=i[br.a_batchId],s=r._batchIndex,a;e._instanced?(a=r._index,o(a,s)):(a=r._index*4,o(a+0,s),o(a+1,s),o(a+2,s),o(a+3,s))}function Xoe(e,t,n,i,r){if(!e._sdf)return;let o,s=i[br.sdf],a=r.outlineColor,c=r.outlineWidth,l=z.floatToByte(a.red),f=z.floatToByte(a.green),d=z.floatToByte(a.blue),p=l*dE+f*em+d,g=c/Os.RADIUS,m=z.floatToByte(a.alpha)*dE+z.floatToByte(g)*em;e._instanced?(o=r._index,s(o,p,m)):(o=r._index*4,s(o+0,p+Uoe,m),s(o+1,p+Voe,m),s(o+2,p+koe,m),s(o+3,p+zoe,m))}function eGe(e,t,n,i,r){Noe(e,t,n,i,r),Hoe(e,t,n,i,r),Goe(e,t,n,i,r),V6(e,t,n,i,r),k6(e,t,n,i,r),Woe(e,t,n,i,r),joe(e,t,n,i,r),qoe(e,t,n,i,r),Yoe(e,t,n,i,r),$He(e,t,n,i,r),Xoe(e,t,n,i,r)}function U6(e,t,n,i,r,o){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let l=t[c],f=l.position,d=pr._computeActualPosition(l,f,i,r);u(d)&&(l._setActualPosition(d),o?a.push(d):ae.expand(s,d,s))}o&&ae.fromPoints(a,s)}function tGe(e,t){let n=t.mode,i=e._billboards,r=e._billboardsToUpdate,o=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==ne.SCENE3D&&!N.equals(o,e.modelMatrix)?(e._mode=n,N.clone(e.modelMatrix,o),e._createVertexArray=!0,(n===ne.SCENE3D||n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&U6(e,i,i.length,t,o,!0)):n===ne.MORPHING?U6(e,i,i.length,t,o,!0):(n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&U6(e,r,e._billboardsToUpdateIndex,t,o,!1)}function nGe(e,t,n){let i=1;(!e._allSizedInMeters||e._maxPixelOffset!==0)&&(i=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight));let r=i*e._maxScale*e._maxSize*2;e._allHorizontalCenter&&e._allVerticalCenter&&(r*=.5);let o=i*e._maxPixelOffset+e._maxEyeOffset;n.radius+=r+o}function iGe(e,t){let n=`uniform sampler2D billboard_texture; +in vec2 v_textureCoordinates; +void main() +{ + out_FragColor = texture(billboard_texture, v_textureCoordinates); +} +`,i=t.createViewportQuadCommand(n,{uniformMap:{billboard_texture:function(){return e._textureAtlas.texture}}});return i.pass=be.OVERLAY,i}var rGe=[];ff.prototype.update=function(e){if(H6(this),!this.show)return;let t=this._billboards,n=t.length,i=e.context;this._instanced=i.instancedArrays,br=this._instanced?WHe:GHe,L6=this._instanced?qHe:jHe;let r=this._textureAtlas;if(!u(r)){r=this._textureAtlas=new Kg({context:i});for(let O=0;O<n;++O)t[O]._loadImage()}let o=r.textureCoordinates;if(o.length===0)return;tGe(this,e),t=this._billboards,n=t.length;let s=this._billboardsToUpdate,a=this._billboardsToUpdateIndex,c=this._propertiesChanged,l=r.guid,f=this._createVertexArray||this._textureAtlasGUID!==l;this._textureAtlasGUID=l;let d,p=e.passes,g=p.pick;if(f||!g&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let O=0;O<z6;++O)c[O]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=XHe(i,n,this._buffersUsage,this._instanced,this._batchTable,this._sdf),d=this._vaf.writers;for(let O=0;O<n;++O){let B=this._billboards[O];B._dirty=!1,eGe(this,e,o,d,B)}this._vaf.commit(L6(i))}this._billboardsToUpdateIndex=0}else if(a>0){let O=rGe;O.length=0,(c[hM]||c[VHe]||c[UHe])&&O.push(Noe),(c[dM]||c[woe]||c[NHe]||c[FHe]||c[LHe])&&(O.push(Hoe),this._instanced&&O.push(k6)),(c[dM]||c[kHe]||c[Ooe])&&(O.push(Goe),O.push(V6)),(c[dM]||c[Ioe])&&O.push(V6),c[Doe]&&O.push(k6),c[Poe]&&O.push(Woe),c[Moe]&&O.push(joe),(c[Roe]||c[zHe]||c[dM]||c[hM])&&O.push(qoe),(c[dM]||c[hM])&&O.push(Yoe),c[Boe]&&O.push(Xoe);let B=O.length;if(d=this._vaf.writers,a/n>.1){for(let L=0;L<a;++L){let _=s[L];_._dirty=!1;for(let b=0;b<B;++b)O[b](this,e,o,d,_)}this._vaf.commit(L6(i))}else{for(let L=0;L<a;++L){let _=s[L];_._dirty=!1;for(let b=0;b<B;++b)O[b](this,e,o,d,_);this._instanced?this._vaf.subCommit(_._index,1):this._vaf.subCommit(_._index*4,4)}this._vaf.endSubCommits()}this._billboardsToUpdateIndex=0}if(a>n*1.5&&(s.length=n),!u(this._vaf)||!u(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ae.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let m,A=N.IDENTITY;e.mode===ne.SCENE3D?(A=this.modelMatrix,m=ae.clone(this._baseVolumeWC,this._boundingVolume)):m=ae.clone(this._baseVolume2D,this._boundingVolume),nGe(this,e,m);let x=this._blendOption!==this.blendOption;if(this._blendOption=this.blendOption,x){this._blendOption===vr.OPAQUE||this._blendOption===vr.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ve.fromCache({depthTest:{enabled:!0,func:te.LESS},depthMask:!0}):this._rsOpaque=void 0;let O=this._blendOption===vr.TRANSLUCENT;this._blendOption===vr.TRANSLUCENT||this._blendOption===vr.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ve.fromCache({depthTest:{enabled:!0,func:O?te.LEQUAL:te.LESS},depthMask:O,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let C,T,E,S,v,D=zt.maximumVertexTextureImageUnits>0;if(x||this._shaderRotation!==this._compiledShaderRotation||this._shaderAlignedAxis!==this._compiledShaderAlignedAxis||this._shaderScaleByDistance!==this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance!==this._compiledShaderTranslucencyByDistance||this._shaderPixelOffsetScaleByDistance!==this._compiledShaderPixelOffsetScaleByDistance||this._shaderDistanceDisplayCondition!==this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance||this._shaderClampToGround!==this._compiledShaderClampToGround||this._sdf!==this._compiledSDF){C=uM,T=lM,v=[],u(this._batchTable)&&(v.push("VECTOR_TILE"),C=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(C),T=this._batchTable.getFragmentShaderCallback(!1,void 0)(T)),E=new ke({defines:v,sources:[C]}),this._instanced&&E.defines.push("INSTANCED"),this._shaderRotation&&E.defines.push("ROTATION"),this._shaderAlignedAxis&&E.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&E.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&E.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&E.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&E.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&E.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK"));let O=1-Os.CUTOFF;this._sdf&&E.defines.push("SDF");let B=u(this._batchTable)?"VECTOR_TILE":"";this._blendOption===vr.OPAQUE_AND_TRANSLUCENT&&(S=new ke({defines:["OPAQUE",B],sources:[T]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${O}`)),this._sp=Xt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:br}),S=new ke({defines:["TRANSLUCENT",B],sources:[T]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${O}`)),this._spTranslucent=Xt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:br})),this._blendOption===vr.OPAQUE&&(S=new ke({defines:[B],sources:[T]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${O}`)),this._sp=Xt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:br})),this._blendOption===vr.TRANSLUCENT&&(S=new ke({defines:[B],sources:[T]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${O}`)),this._spTranslucent=Xt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:br})),this._compiledShaderRotation=this._shaderRotation,this._compiledShaderAlignedAxis=this._shaderAlignedAxis,this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderPixelOffsetScaleByDistance=this._shaderPixelOffsetScaleByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance,this._compiledShaderClampToGround=this._shaderClampToGround,this._compiledSDF=this._sdf}let M=e.commandList;if(p.render||p.pick){let O=this._colorCommands,B=this._blendOption===vr.OPAQUE,L=this._blendOption===vr.OPAQUE_AND_TRANSLUCENT,_=this._vaf.va,b=_.length,w=this._uniforms,I;u(this._batchTable)?(w=this._batchTable.getUniformMapCallback()(w),I=this._batchTable.getPickId()):I="v_pickColor",O.length=b;let R=L?b*2:b;for(let F=0;F<R;++F){let k=O[F];u(k)||(k=O[F]=new nt);let V=B||L&&F%2===0;k.pass=V||!L?be.OPAQUE:be.TRANSLUCENT,k.owner=this;let G=L?Math.floor(F/2):F;k.boundingVolume=m,k.modelMatrix=A,k.count=_[G].indicesCount,k.shaderProgram=V?this._sp:this._spTranslucent,k.uniformMap=w,k.vertexArray=_[G].va,k.renderState=V?this._rsOpaque:this._rsTranslucent,k.debugShowBoundingVolume=this.debugShowBoundingVolume,k.pickId=I,this._instanced&&(k.count=6,k.instanceCount=n),M.push(k)}this.debugShowTextureAtlas&&(u(this.debugCommand)||(this.debugCommand=iGe(this,e.context)),M.push(this.debugCommand))}};ff.prototype.isDestroyed=function(){return!1};ff.prototype.destroy=function(){return u(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),Loe(this._billboards),ue(this)};var lu=ff;function oGe(e,t,n,i,r){return function(){let o=document.createElement("canvas"),s=r+2*i;o.height=o.width=s;let a=o.getContext("2d");return a.clearRect(0,0,s,s),i!==0&&(a.beginPath(),a.arc(s/2,s/2,s/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=n,a.fill(),e<1&&(a.save(),a.globalCompositeOperation="destination-out",a.beginPath(),a.arc(s/2,s/2,r/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle="black",a.fill(),a.restore())),a.beginPath(),a.arc(s/2,s/2,r/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=t,a.fill(),o}}var jA=oGe;function Qs(e,t,n,i,r){this._content=e,this._billboard=n,this._label=i,this._polyline=r,this._batchId=t,this._billboardImage=void 0,this._billboardColor=void 0,this._billboardOutlineColor=void 0,this._billboardOutlineWidth=void 0,this._billboardSize=void 0,this._pointSize=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._heightOffset=void 0,this._pickIds=new Array(3),hE(this)}var sGe=new me;Object.defineProperties(Qs.prototype,{show:{get:function(){return this._label.show},set:function(e){this._label.show=e,this._billboard.show=e,this._polyline.show=e}},color:{get:function(){return this._color},set:function(e){this._color=z.clone(e,this._color),hE(this)}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=e,hE(this)}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=z.clone(e,this._pointOutlineColor),hE(this)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=e,hE(this)}},labelColor:{get:function(){return this._label.fillColor},set:function(e){this._label.fillColor=e,this._polyline.show=this._label.show&&e.alpha>0}},labelOutlineColor:{get:function(){return this._label.outlineColor},set:function(e){this._label.outlineColor=e}},labelOutlineWidth:{get:function(){return this._label.outlineWidth},set:function(e){this._label.outlineWidth=e}},font:{get:function(){return this._label.font},set:function(e){this._label.font=e}},labelStyle:{get:function(){return this._label.style},set:function(e){this._label.style=e}},labelText:{get:function(){return this._label.text},set:function(e){u(e)||(e=""),this._label.text=e}},backgroundColor:{get:function(){return this._label.backgroundColor},set:function(e){this._label.backgroundColor=e}},backgroundPadding:{get:function(){return this._label.backgroundPadding},set:function(e){this._label.backgroundPadding=e}},backgroundEnabled:{get:function(){return this._label.showBackground},set:function(e){this._label.showBackground=e}},scaleByDistance:{get:function(){return this._label.scaleByDistance},set:function(e){this._label.scaleByDistance=e,this._billboard.scaleByDistance=e}},translucencyByDistance:{get:function(){return this._label.translucencyByDistance},set:function(e){this._label.translucencyByDistance=e,this._billboard.translucencyByDistance=e}},distanceDisplayCondition:{get:function(){return this._label.distanceDisplayCondition},set:function(e){this._label.distanceDisplayCondition=e,this._polyline.distanceDisplayCondition=e,this._billboard.distanceDisplayCondition=e}},heightOffset:{get:function(){return this._heightOffset},set:function(e){let t=y(this._heightOffset,0),n=this._content.tileset.ellipsoid,i=n.cartesianToCartographic(this._billboard.position,sGe);i.height=i.height-t+e;let r=n.cartographicToCartesian(i);this._billboard.position=r,this._label.position=this._billboard.position,this._polyline.positions=[this._polyline.positions[0],r],this._heightOffset=e}},anchorLineEnabled:{get:function(){return this._polyline.show},set:function(e){this._polyline.show=e}},anchorLineColor:{get:function(){return this._polyline.material.uniforms.color},set:function(e){this._polyline.material.uniforms.color=z.clone(e,this._polyline.material.uniforms.color)}},image:{get:function(){return this._billboardImage},set:function(e){let t=this._billboardImage!==e;this._billboardImage=e,t&&hE(this)}},disableDepthTestDistance:{get:function(){return this._label.disableDepthTestDistance},set:function(e){this._label.disableDepthTestDistance=e,this._billboard.disableDepthTestDistance=e}},horizontalOrigin:{get:function(){return this._billboard.horizontalOrigin},set:function(e){this._billboard.horizontalOrigin=e}},verticalOrigin:{get:function(){return this._billboard.verticalOrigin},set:function(e){this._billboard.verticalOrigin=e}},labelHorizontalOrigin:{get:function(){return this._label.horizontalOrigin},set:function(e){this._label.horizontalOrigin=e}},labelVerticalOrigin:{get:function(){return this._label.verticalOrigin},set:function(e){this._label.verticalOrigin=e}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},pickIds:{get:function(){let e=this._pickIds;return e[0]=this._billboard.pickId,e[1]=this._label.pickId,e[2]=this._polyline.pickId,e}}});Qs.defaultColor=z.WHITE;Qs.defaultPointOutlineColor=z.BLACK;Qs.defaultPointOutlineWidth=0;Qs.defaultPointSize=8;function hE(e){let t=e._billboard;if(u(e._billboardImage)&&e._billboardImage!==t.image){t.image=e._billboardImage;return}if(u(e._billboardImage))return;let n=y(e._color,Qs.defaultColor),i=y(e._pointOutlineColor,Qs.defaultPointOutlineColor),r=y(e._pointOutlineWidth,Qs.defaultPointOutlineWidth),o=y(e._pointSize,Qs.defaultPointSize),s=e._billboardColor,a=e._billboardOutlineColor,c=e._billboardOutlineWidth,l=e._billboardSize;if(z.equals(n,s)&&z.equals(i,a)&&r===c&&o===l)return;e._billboardColor=z.clone(n,e._billboardColor),e._billboardOutlineColor=z.clone(i,e._billboardOutlineColor),e._billboardOutlineWidth=r,e._billboardSize=o;let f=n.alpha,d=n.toCssColorString(),p=i.toCssColorString(),g=JSON.stringify([d,o,p,r]);t.setImage(g,jA(f,d,p,r,o))}Qs.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};Qs.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};Qs.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};Qs.prototype.getPropertyInherited=function(e){return ws.getPropertyInherited(this._content,this._batchId,e)};Qs.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};Qs.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};Qs.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};Qs.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var qp=Qs;function aGe(e,t,n,i,r){let o=e.measureText(t);if(!!/\S/.test(t)){let a=document.defaultView.getComputedStyle(e.canvas).getPropertyValue("font-size").replace("px",""),c=document.createElement("canvas"),l=100,f=o.width+l|0,d=3*a,p=d/2;c.width=f,c.height=d;let g=c.getContext("2d");g.font=n,g.fillStyle="white",g.fillRect(0,0,c.width+1,c.height+1),i&&(g.strokeStyle="black",g.lineWidth=e.lineWidth,g.strokeText(t,l/2,p)),r&&(g.fillStyle="black",g.fillText(t,l/2,p));let m=g.getImageData(0,0,f,d).data,A=m.length,x=f*4,C,T,E,S;for(C=0;C<A;++C)if(m[C]!==255){E=C/x|0;break}for(C=A-1;C>=0;--C)if(m[C]!==255){S=C/x|0;break}let v=-1;for(C=0;C<f&&v===-1;++C)for(T=0;T<d;++T){let D=C*4+T*x;if(m[D]!==255||m[D+1]!==255||m[D+2]!==255||m[D+3]!==255){v=C;break}}return{width:o.width,height:S-E,ascent:p-E,descent:S-p,minx:v-l/2}}return{width:o.width,height:0,ascent:0,descent:0,minx:0}}var qA;function cGe(e,t){if(e==="")return;t=y(t,y.EMPTY_OBJECT);let n=y(t.font,"10px sans-serif"),i=y(t.stroke,!1),r=y(t.fill,!0),o=y(t.strokeWidth,1),s=y(t.backgroundColor,z.TRANSPARENT),a=y(t.padding,0),c=a*2,l=document.createElement("canvas");l.width=1,l.height=1,l.style.font=n;let f=l.getContext("2d",{willReadFrequently:!0});u(qA)||(u(f.imageSmoothingEnabled)?qA="imageSmoothingEnabled":u(f.mozImageSmoothingEnabled)?qA="mozImageSmoothingEnabled":u(f.webkitImageSmoothingEnabled)?qA="webkitImageSmoothingEnabled":u(f.msImageSmoothingEnabled)&&(qA="msImageSmoothingEnabled")),f.font=n,f.lineJoin="round",f.lineWidth=o,f[qA]=!1,l.style.visibility="hidden",document.body.appendChild(l);let d=aGe(f,e,n,i,r);l.dimensions=d,document.body.removeChild(l),l.style.visibility="";let p=-d.minx,g=Math.ceil(d.width)+p+c,m=d.height+c,A=m-d.ascent+a,x=m-A+c;if(l.width=g,l.height=m,f.font=n,f.lineJoin="round",f.lineWidth=o,f[qA]=!1,s!==z.TRANSPARENT&&(f.fillStyle=s.toCssColorString(),f.fillRect(0,0,l.width,l.height)),i){let C=y(t.strokeColor,z.BLACK);f.strokeStyle=C.toCssColorString(),f.strokeText(e,p+a,x)}if(r){let C=y(t.fillColor,z.WHITE);f.fillStyle=C.toCssColorString(),f.fillText(e,p+a,x)}return l}var YA=cGe;var ose=Yi(Qoe(),1);var uGe={FILL:0,OUTLINE:1,FILL_AND_OUTLINE:2},zr=Object.freeze(uGe);var $oe={},ese=0,fGe=256,dGe=new z(.165,.165,.165,.8),hGe=new H(7,5),is=Object.freeze({LTR:0,RTL:1,WEAK:2,BRACKETS:3});function XA(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._rebindAllGlyphs=!0}function pM(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._repositionAllGlyphs=!0}function _M(e,t){return document.defaultView.getComputedStyle(e,null).getPropertyValue(t)}function nse(e){let t=$oe[e._font];if(!u(t)){let n=document.createElement("div");n.style.position="absolute",n.style.opacity=0,n.style.font=e._font,document.body.appendChild(n);let i=parseFloat(_M(n,"line-height"));isNaN(i)&&(i=void 0),t={family:_M(n,"font-family"),size:_M(n,"font-size").replace("px",""),style:_M(n,"font-style"),weight:_M(n,"font-weight"),lineHeight:i},document.body.removeChild(n),ese<fGe&&($oe[e._font]=t,ese++)}e._fontFamily=t.family,e._fontSize=t.size,e._fontStyle=t.style,e._fontWeight=t.weight,e._lineHeight=t.lineHeight}function Yp(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,r=e.scaleByDistance,o=e.distanceDisplayCondition;u(n)&&(n=Bt.clone(n)),u(i)&&(i=Bt.clone(i)),u(r)&&(r=Bt.clone(r)),u(o)&&(o=vt.clone(o)),this._renderedText=void 0,this._text=void 0,this._show=y(e.show,!0),this._font=y(e.font,"30px sans-serif"),this._fillColor=z.clone(y(e.fillColor,z.WHITE)),this._outlineColor=z.clone(y(e.outlineColor,z.BLACK)),this._outlineWidth=y(e.outlineWidth,1),this._showBackground=y(e.showBackground,!1),this._backgroundColor=z.clone(y(e.backgroundColor,dGe)),this._backgroundPadding=H.clone(y(e.backgroundPadding,hGe)),this._style=y(e.style,zr.FILL),this._verticalOrigin=y(e.verticalOrigin,Pn.BASELINE),this._horizontalOrigin=y(e.horizontalOrigin,_i.LEFT),this._pixelOffset=H.clone(y(e.pixelOffset,H.ZERO)),this._eyeOffset=h.clone(y(e.eyeOffset,h.ZERO)),this._position=h.clone(y(e.position,h.ZERO)),this._scale=y(e.scale,1),this._id=e.id,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._scaleByDistance=r,this._heightReference=y(e.heightReference,je.NONE),this._distanceDisplayCondition=o,this._disableDepthTestDistance=e.disableDepthTestDistance,this._labelCollection=t,this._glyphs=[],this._backgroundBillboard=void 0,this._batchIndex=void 0,this._rebindAllGlyphs=!0,this._repositionAllGlyphs=!0,this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=void 0,this._clusterShow=!0,this.text=y(e.text,""),this._relativeSize=1,nse(this),this._updateClamping()}Object.defineProperties(Yp.prototype,{show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;let t=this._glyphs;for(let i=0,r=t.length;i<r;i++){let o=t[i].billboard;u(o)&&(o.show=e)}let n=this._backgroundBillboard;u(n)&&(n.show=e)}}},position:{get:function(){return this._position},set:function(e){let t=this._position;if(!h.equals(t,e)){h.clone(e,t);let n=this._glyphs;for(let r=0,o=n.length;r<o;r++){let s=n[r].billboard;u(s)&&(s.position=e)}let i=this._backgroundBillboard;u(i)&&(i.position=e),this._updateClamping()}}},heightReference:{get:function(){return this._heightReference},set:function(e){if(e!==this._heightReference){this._heightReference=e;let t=this._glyphs;for(let i=0,r=t.length;i<r;i++){let o=t[i].billboard;u(o)&&(o.heightReference=e)}let n=this._backgroundBillboard;u(n)&&(n.heightReference=e),pM(this),this._updateClamping()}}},text:{get:function(){return this._text},set:function(e){if(this._text!==e){this._text=e;let t=e.replace(/\u00ad/g,"");this._renderedText=Yp.enableRightToLeftDetection?AGe(t):t,XA(this)}}},font:{get:function(){return this._font},set:function(e){this._font!==e&&(this._font=e,XA(this),nse(this))}},fillColor:{get:function(){return this._fillColor},set:function(e){let t=this._fillColor;z.equals(t,e)||(z.clone(e,t),XA(this))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),XA(this))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,XA(this))}},showBackground:{get:function(){return this._showBackground},set:function(e){this._showBackground!==e&&(this._showBackground=e,XA(this))}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){let t=this._backgroundColor;if(!z.equals(t,e)){z.clone(e,t);let n=this._backgroundBillboard;u(n)&&(n.color=t)}}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){let t=this._backgroundPadding;H.equals(t,e)||(H.clone(e,t),pM(this))}},style:{get:function(){return this._style},set:function(e){this._style!==e&&(this._style=e,XA(this))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;if(!H.equals(t,e)){H.clone(e,t);let n=this._glyphs;for(let r=0,o=n.length;r<o;r++){let s=n[r];u(s.billboard)&&(s.billboard.pixelOffset=e)}let i=this._backgroundBillboard;u(i)&&(i.pixelOffset=e)}}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;if(!Bt.equals(t,e)){this._translucencyByDistance=Bt.clone(e,t);let n=this._glyphs;for(let r=0,o=n.length;r<o;r++){let s=n[r];u(s.billboard)&&(s.billboard.translucencyByDistance=e)}let i=this._backgroundBillboard;u(i)&&(i.translucencyByDistance=e)}}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;if(!Bt.equals(t,e)){this._pixelOffsetScaleByDistance=Bt.clone(e,t);let n=this._glyphs;for(let r=0,o=n.length;r<o;r++){let s=n[r];u(s.billboard)&&(s.billboard.pixelOffsetScaleByDistance=e)}let i=this._backgroundBillboard;u(i)&&(i.pixelOffsetScaleByDistance=e)}}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;if(!Bt.equals(t,e)){this._scaleByDistance=Bt.clone(e,t);let n=this._glyphs;for(let r=0,o=n.length;r<o;r++){let s=n[r];u(s.billboard)&&(s.billboard.scaleByDistance=e)}let i=this._backgroundBillboard;u(i)&&(i.scaleByDistance=e)}}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;if(!h.equals(t,e)){h.clone(e,t);let n=this._glyphs;for(let r=0,o=n.length;r<o;r++){let s=n[r];u(s.billboard)&&(s.billboard.eyeOffset=e)}let i=this._backgroundBillboard;u(i)&&(i.eyeOffset=e)}}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,pM(this))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){if(this._verticalOrigin!==e){this._verticalOrigin=e;let t=this._glyphs;for(let i=0,r=t.length;i<r;i++){let o=t[i];u(o.billboard)&&(o.billboard.verticalOrigin=e)}let n=this._backgroundBillboard;u(n)&&(n.verticalOrigin=e),pM(this)}}},scale:{get:function(){return this._scale},set:function(e){if(this._scale!==e){this._scale=e;let t=this._glyphs;for(let i=0,r=t.length;i<r;i++){let o=t[i];u(o.billboard)&&(o.billboard.scale=e*this._relativeSize)}let n=this._backgroundBillboard;u(n)&&(n.scale=e*this._relativeSize),pM(this)}}},totalScale:{get:function(){return this._scale*this._relativeSize}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){if(!vt.equals(e,this._distanceDisplayCondition)){this._distanceDisplayCondition=vt.clone(e,this._distanceDisplayCondition);let t=this._glyphs;for(let i=0,r=t.length;i<r;i++){let o=t[i];u(o.billboard)&&(o.billboard.distanceDisplayCondition=e)}let n=this._backgroundBillboard;u(n)&&(n.distanceDisplayCondition=e)}}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){if(this._disableDepthTestDistance!==e){this._disableDepthTestDistance=e;let t=this._glyphs;for(let i=0,r=t.length;i<r;i++){let o=t[i];u(o.billboard)&&(o.billboard.disableDepthTestDistance=e)}let n=this._backgroundBillboard;u(n)&&(n.disableDepthTestDistance=e)}}},id:{get:function(){return this._id},set:function(e){if(this._id!==e){this._id=e;let t=this._glyphs;for(let i=0,r=t.length;i<r;i++){let o=t[i];u(o.billboard)&&(o.billboard.id=e)}let n=this._backgroundBillboard;u(n)&&(n.id=e)}}},pickId:{get:function(){if(!(this._glyphs.length===0||!u(this._glyphs[0].billboard)))return this._glyphs[0].billboard.pickId}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition);let t=this._glyphs;for(let i=0,r=t.length;i<r;i++){let o=t[i];u(o.billboard)&&(o.billboard._clampedPosition=e)}let n=this._backgroundBillboard;u(n)&&(n._clampedPosition=e)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){if(this._clusterShow!==e){this._clusterShow=e;let t=this._glyphs;for(let i=0,r=t.length;i<r;i++){let o=t[i];u(o.billboard)&&(o.billboard.clusterShow=e)}let n=this._backgroundBillboard;u(n)&&(n.clusterShow=e)}}}});Yp.prototype._updateClamping=function(){pr._updateClamping(this._labelCollection,this)};Yp.prototype.computeScreenSpacePosition=function(e,t){u(t)||(t=new H);let i=this._labelCollection.modelMatrix,r=u(this._actualClampedPosition)?this._actualClampedPosition:this._position;return pr._computeScreenSpacePosition(i,r,this._eyeOffset,this._pixelOffset,e,t)};Yp.getScreenSpaceBoundingBox=function(e,t,n){let i=0,r=0,o=0,s=0,a=e.totalScale,c=e._backgroundBillboard;if(u(c))i=t.x+c._translate.x,r=t.y-c._translate.y,o=c.width*a,s=c.height*a,e.verticalOrigin===Pn.BOTTOM||e.verticalOrigin===Pn.BASELINE?r-=s:e.verticalOrigin===Pn.CENTER&&(r-=s*.5);else{i=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY;let l=0,f=0,d=e._glyphs,p=d.length;for(let g=0;g<p;++g){let m=d[g],A=m.billboard;if(!u(A))continue;let x=t.x+A._translate.x,C=t.y-A._translate.y,T=m.dimensions.width*a,E=m.dimensions.height*a;e.verticalOrigin===Pn.BOTTOM||e.verticalOrigin===Pn.BASELINE?C-=E:e.verticalOrigin===Pn.CENTER&&(C-=E*.5),e._verticalOrigin===Pn.TOP?C+=Os.PADDING*a:(e._verticalOrigin===Pn.BOTTOM||e._verticalOrigin===Pn.BASELINE)&&(C-=Os.PADDING*a),i=Math.min(i,x),r=Math.min(r,C),l=Math.max(l,x+T),f=Math.max(f,C+E)}o=l-i,s=f-r}return u(n)||(n=new Xe),n.x=i,n.y=r,n.width=o,n.height=s,n};Yp.prototype.equals=function(e){return this===e||u(e)&&this._show===e._show&&this._scale===e._scale&&this._outlineWidth===e._outlineWidth&&this._showBackground===e._showBackground&&this._style===e._style&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&this._renderedText===e._renderedText&&this._font===e._font&&h.equals(this._position,e._position)&&z.equals(this._fillColor,e._fillColor)&&z.equals(this._outlineColor,e._outlineColor)&&z.equals(this._backgroundColor,e._backgroundColor)&&H.equals(this._backgroundPadding,e._backgroundPadding)&&H.equals(this._pixelOffset,e._pixelOffset)&&h.equals(this._eyeOffset,e._eyeOffset)&&Bt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Bt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Bt.equals(this._scaleByDistance,e._scaleByDistance)&&vt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._id===e._id};Yp.prototype.isDestroyed=function(){return!1};Yp.enableRightToLeftDetection=!1;function mGe(e,t){let n=/[a-zA-Z0-9]/,i=/[()[\]{}<>]/,r=[],o="",s=is.LTR,a="",c=e.length;for(let l=0;l<c;++l){let f=e.charAt(l);t.test(f)?a=is.RTL:n.test(f)?a=is.LTR:i.test(f)?a=is.BRACKETS:a=is.WEAK,l===0&&(s=a),s===a&&a!==is.BRACKETS?o+=f:(o!==""&&r.push({Type:s,Word:o}),s=a,o=f)}return r.push({Type:a,Word:o}),r}function pGe(e){return e.split("").reverse().join("")}function gM(e,t,n){return e.slice(0,t)+n+e.slice(t)}function _Ge(e){switch(e){case"(":return")";case")":return"(";case"[":return"]";case"]":return"[";case"{":return"}";case"}":return"{";case"<":return">";case">":return"<"}}var gGe="\u05D0-\u05EA",yGe="\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF",tse=new RegExp(`[${gGe}${yGe}]`);function AGe(e){let t=e.split(` +`),n="";for(let i=0;i<t.length;i++){let r=t[i],o=tse.test(r.charAt(0)),s=mGe(r,tse),a=0,c="";for(let l=0;l<s.length;++l){let f=s[l],d=f.Type===is.BRACKETS?_Ge(f.Word):pGe(f.Word);o?f.Type===is.RTL?(c=d+c,a=0):f.Type===is.LTR?(c=gM(c,a,f.Word),a+=f.Word.length):(f.Type===is.WEAK||f.Type===is.BRACKETS)&&(f.Type===is.WEAK&&s[l-1].Type===is.BRACKETS?c=d+c:s[l-1].Type===is.RTL?(c=d+c,a=0):s.length>l+1?s[l+1].Type===is.RTL?(c=d+c,a=0):(c=gM(c,a,f.Word),a+=f.Word.length):c=gM(c,0,d)):f.Type===is.RTL?c=gM(c,a,d):f.Type===is.LTR?(c+=f.Word,a=c.length):(f.Type===is.WEAK||f.Type===is.BRACKETS)&&(l>0&&s[l-1].Type===is.RTL?s.length>l+1?s[l+1].Type===is.RTL?c=gM(c,a,d):(c+=f.Word,a=c.length):c+=f.Word:(c+=f.Word,a=c.length))}n+=c,i<t.length-1&&(n+=` +`)}return n}var Jg=Yp;var sse=Yi(ise(),1);function CGe(){this.textureInfo=void 0,this.dimensions=void 0,this.billboard=void 0}function TGe(e,t,n){this.labelCollection=e,this.index=t,this.dimensions=n}var EGe=1.2,ase="ID_WHITE_PIXEL",G6=new H(4,4),bGe=new Xe(1,1,1,1);function SGe(e){let t=document.createElement("canvas");t.width=G6.x,t.height=G6.y;let n=t.getContext("2d");n.fillStyle="#fff",n.fillRect(0,0,t.width,t.height),e.addImage(ase,t)}var df={};function vGe(e,t,n,i,r,o,s){return df.font=t,df.fillColor=n,df.strokeColor=i,df.strokeWidth=r,df.padding=Os.PADDING,s===Pn.CENTER?df.textBaseline="middle":s===Pn.TOP?df.textBaseline="top":df.textBaseline="bottom",df.fill=o===zr.FILL||o===zr.FILL_AND_OUTLINE,df.stroke=o===zr.OUTLINE||o===zr.FILL_AND_OUTLINE,df.backgroundColor=z.BLACK,YA(e,df)}function W6(e,t){t.textureInfo=void 0,t.dimensions=void 0;let n=t.billboard;u(n)&&(n.show=!1,n.image=void 0,u(n._removeCallbackFunc)&&(n._removeCallbackFunc(),n._removeCallbackFunc=void 0),e._spareBillboards.push(n),t.billboard=void 0)}function wGe(e,t,n,i){i.index=e.addImageSync(t,n)}var DGe=new sse.default;function IGe(e,t){let n=t._renderedText,i=DGe.splitGraphemes(n),r=i.length,o=t._glyphs,s=o.length,a,c,l;if(t._relativeSize=t._fontSize/Os.FONT_SIZE,r<s)for(c=r;c<s;++c)W6(e,o[c]);o.length=r;let f=t._showBackground&&n.split(` +`).join("").length>0,d=t._backgroundBillboard,p=e._backgroundBillboardCollection;f?(u(d)||(d=p.add({collection:e,image:ase,imageSubRegion:bGe}),t._backgroundBillboard=d),d.color=t._backgroundColor,d.show=t._show,d.position=t._position,d.eyeOffset=t._eyeOffset,d.pixelOffset=t._pixelOffset,d.horizontalOrigin=_i.LEFT,d.verticalOrigin=t._verticalOrigin,d.heightReference=t._heightReference,d.scale=t.totalScale,d.pickPrimitive=t,d.id=t._id,d.translucencyByDistance=t._translucencyByDistance,d.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,d.scaleByDistance=t._scaleByDistance,d.distanceDisplayCondition=t._distanceDisplayCondition,d.disableDepthTestDistance=t._disableDepthTestDistance):u(d)&&(p.remove(d),t._backgroundBillboard=d=void 0);let g=e._glyphTextureCache;for(l=0;l<r;++l){let m=i[l],A=t._verticalOrigin,x=JSON.stringify([m,t._fontFamily,t._fontStyle,t._fontWeight,+A]),C=g[x];if(!u(C)){let T=`${t._fontStyle} ${t._fontWeight} ${Os.FONT_SIZE}px ${t._fontFamily}`,E=vGe(m,T,z.WHITE,z.WHITE,0,zr.FILL,A);if(C=new TGe(e,-1,E.dimensions),g[x]=C,E.width>0&&E.height>0){let S=(0,ose.default)(E,{cutoff:Os.CUTOFF,radius:Os.RADIUS}),v=E.getContext("2d"),D=E.width,M=E.height,O=v.getImageData(0,0,D,M);for(let B=0;B<D;B++)for(let L=0;L<M;L++){let _=L*D+B,b=S[_]*255,w=_*4;O.data[w+0]=b,O.data[w+1]=b,O.data[w+2]=b,O.data[w+3]=b}v.putImageData(O,0,0),m!==" "&&wGe(e._textureAtlas,x,E,C)}}if(a=o[l],u(a)?C.index===-1?W6(e,a):u(a.textureInfo)&&(a.textureInfo=void 0):(a=new CGe,o[l]=a),a.textureInfo=C,a.dimensions=C.dimensions,C.index!==-1){let T=a.billboard,E=e._spareBillboards;u(T)||(E.length>0?T=E.pop():(T=e._billboardCollection.add({collection:e}),T._labelDimensions=new H,T._labelTranslate=new H),a.billboard=T),T.show=t._show,T.position=t._position,T.eyeOffset=t._eyeOffset,T.pixelOffset=t._pixelOffset,T.horizontalOrigin=_i.LEFT,T.verticalOrigin=t._verticalOrigin,T.heightReference=t._heightReference,T.scale=t.totalScale,T.pickPrimitive=t,T.id=t._id,T.image=x,T.translucencyByDistance=t._translucencyByDistance,T.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,T.scaleByDistance=t._scaleByDistance,T.distanceDisplayCondition=t._distanceDisplayCondition,T.disableDepthTestDistance=t._disableDepthTestDistance,T._batchIndex=t._batchIndex,T.outlineColor=t.outlineColor,t.style===zr.FILL_AND_OUTLINE?(T.color=t._fillColor,T.outlineWidth=t.outlineWidth):t.style===zr.FILL?(T.color=t._fillColor,T.outlineWidth=0):t.style===zr.OUTLINE&&(T.color=z.TRANSPARENT,T.outlineWidth=t.outlineWidth)}}t._repositionAllGlyphs=!0}function rse(e,t,n){return t===_i.CENTER?-e/2:t===_i.RIGHT?-(e+n.x):n.x}var ro=new H,PGe=new H;function OGe(e){let t=e._glyphs,n=e._renderedText,i,r,o=0,s=0,a=[],c=Number.NEGATIVE_INFINITY,l=0,f=1,d,p=t.length,g=e._backgroundBillboard,m=H.clone(u(g)?e._backgroundPadding:H.ZERO,PGe);for(m.x/=e._relativeSize,m.y/=e._relativeSize,d=0;d<p;++d)n.charAt(d)===` +`?(a.push(o),++f,o=0):(i=t[d],r=i.dimensions,l=Math.max(l,r.height-r.descent),c=Math.max(c,r.descent),o+=r.width-r.minx,d<p-1&&(o+=t[d+1].dimensions.minx),s=Math.max(s,o));a.push(o);let A=l+c,x=e.totalScale,C=e._horizontalOrigin,T=e._verticalOrigin,E=0,S=a[E],v=rse(S,C,m),D=(u(e._lineHeight)?e._lineHeight:EGe*e._fontSize)/e._relativeSize,M=D*(f-1),O=s,B=A+M;u(g)&&(O+=m.x*2,B+=m.y*2,g._labelHorizontalOrigin=C),ro.x=v*x,ro.y=0;let L=!0,_=0;for(d=0;d<p;++d)if(n.charAt(d)===` +`)++E,_+=D,S=a[E],v=rse(S,C,m),ro.x=v*x,L=!0;else if(i=t[d],r=i.dimensions,T===Pn.TOP?(ro.y=r.height-l-m.y,ro.y+=Os.PADDING):T===Pn.CENTER?ro.y=(M+r.height-l)/2:T===Pn.BASELINE?(ro.y=M,ro.y-=Os.PADDING):(ro.y=M+c+m.y,ro.y-=Os.PADDING),ro.y=(ro.y-r.descent-_)*x,L&&(ro.x-=Os.PADDING*x,L=!1),u(i.billboard)&&(i.billboard._setTranslate(ro),i.billboard._labelDimensions.x=O,i.billboard._labelDimensions.y=B,i.billboard._labelHorizontalOrigin=C),d<p-1){let b=t[d+1];ro.x+=(r.width-r.minx+b.dimensions.minx)*x}if(u(g)&&n.split(` +`).join("").length>0&&(C===_i.CENTER?v=-s/2-m.x:C===_i.RIGHT?v=-(s+m.x*2):v=0,ro.x=v*x,T===Pn.TOP?ro.y=A-l-c:T===Pn.CENTER?ro.y=(A-l)/2-c:T===Pn.BASELINE?ro.y=-m.y-c:ro.y=0,ro.y=ro.y*x,g.width=O,g.height=B,g._setTranslate(ro),g._labelTranslate=H.clone(ro,g._labelTranslate)),e.heightReference===je.CLAMP_TO_GROUND)for(d=0;d<p;++d){i=t[d];let b=i.billboard;u(b)&&(b._labelTranslate=H.clone(ro,b._labelTranslate))}}function cse(e,t){let n=t._glyphs;for(let i=0,r=n.length;i<r;++i)W6(e,n[i]);u(t._backgroundBillboard)&&(e._backgroundBillboardCollection.remove(t._backgroundBillboard),t._backgroundBillboard=void 0),t._labelCollection=void 0,u(t._removeCallbackFunc)&&t._removeCallbackFunc(),ue(t)}function tm(e){e=y(e,y.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._backgroundTextureAtlas=void 0,this._backgroundBillboardCollection=new lu({scene:this._scene}),this._backgroundBillboardCollection.destroyTextureAtlas=!1,this._billboardCollection=new lu({scene:this._scene,batchTable:this._batchTable}),this._billboardCollection.destroyTextureAtlas=!1,this._billboardCollection._sdf=!0,this._spareBillboards=[],this._glyphTextureCache={},this._labels=[],this._labelsToUpdate=[],this._totalGlyphCount=0,this._highlightColor=z.clone(z.WHITE),this.show=y(e.show,!0),this.modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,vr.OPAQUE_AND_TRANSLUCENT)}Object.defineProperties(tm.prototype,{length:{get:function(){return this._labels.length}}});tm.prototype.add=function(e){let t=new Jg(e,this);return this._labels.push(t),this._labelsToUpdate.push(t),t};tm.prototype.remove=function(e){if(u(e)&&e._labelCollection===this){let t=this._labels.indexOf(e);if(t!==-1)return this._labels.splice(t,1),cse(this,e),!0}return!1};tm.prototype.removeAll=function(){let e=this._labels;for(let t=0,n=e.length;t<n;++t)cse(this,e[t]);e.length=0};tm.prototype.contains=function(e){return u(e)&&e._labelCollection===this};tm.prototype.get=function(e){return this._labels[e]};tm.prototype.update=function(e){if(!this.show)return;let t=this._billboardCollection,n=this._backgroundBillboardCollection;t.modelMatrix=this.modelMatrix,t.debugShowBoundingVolume=this.debugShowBoundingVolume,n.modelMatrix=this.modelMatrix,n.debugShowBoundingVolume=this.debugShowBoundingVolume;let i=e.context;u(this._textureAtlas)||(this._textureAtlas=new Kg({context:i}),t.textureAtlas=this._textureAtlas),u(this._backgroundTextureAtlas)||(this._backgroundTextureAtlas=new Kg({context:i,initialSize:G6}),n.textureAtlas=this._backgroundTextureAtlas,SGe(this._backgroundTextureAtlas));let r=this._labelsToUpdate.length;for(let s=0;s<r;++s){let a=this._labelsToUpdate[s];if(a.isDestroyed())continue;let c=a._glyphs.length;a._rebindAllGlyphs&&(IGe(this,a),a._rebindAllGlyphs=!1),a._repositionAllGlyphs&&(OGe(a),a._repositionAllGlyphs=!1);let l=a._glyphs.length-c;this._totalGlyphCount+=l}let o=n.length>0?vr.TRANSLUCENT:this.blendOption;t.blendOption=o,n.blendOption=o,t._highlightColor=this._highlightColor,n._highlightColor=this._highlightColor,this._labelsToUpdate.length=0,n.update(e),t.update(e)};tm.prototype.isDestroyed=function(){return!1};tm.prototype.destroy=function(){return this.removeAll(),this._billboardCollection=this._billboardCollection.destroy(),this._textureAtlas=this._textureAtlas&&this._textureAtlas.destroy(),this._backgroundBillboardCollection=this._backgroundBillboardCollection.destroy(),this._backgroundTextureAtlas=this._backgroundTextureAtlas&&this._backgroundTextureAtlas.destroy(),ue(this)};var nm=tm;var yM=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 position2DHigh; +in vec3 position2DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 prevPosition2DHigh; +in vec3 prevPosition2DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec3 nextPosition2DHigh; +in vec3 nextPosition2DLow; +in vec4 texCoordExpandAndBatchIndex; + +out vec2 v_st; +out float v_width; +out vec4 v_pickColor; +out float v_polylineAngle; + +void main() +{ + float texCoord = texCoordExpandAndBatchIndex.x; + float expandDir = texCoordExpandAndBatchIndex.y; + bool usePrev = texCoordExpandAndBatchIndex.z < 0.0; + float batchTableIndex = texCoordExpandAndBatchIndex.w; + + vec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex); + float width = widthAndShow.x + 0.5; + float show = widthAndShow.y; + + if (width < 1.0) + { + show = 0.0; + } + + vec4 pickColor = batchTable_getPickColor(batchTableIndex); + + vec4 p, prev, next; + if (czm_morphTime == 1.0) + { + p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz); + prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz); + next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz); + } + else if (czm_morphTime == 0.0) + { + p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); + prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy); + next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy); + } + else + { + p = czm_columbusViewMorph( + czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy), + czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz), + czm_morphTime); + prev = czm_columbusViewMorph( + czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy), + czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz), + czm_morphTime); + next = czm_columbusViewMorph( + czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy), + czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz), + czm_morphTime); + } + + #ifdef DISTANCE_DISPLAY_CONDITION + vec3 centerHigh = batchTable_getCenterHigh(batchTableIndex); + vec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex); + vec3 centerLow = centerLowAndRadius.xyz; + float radius = centerLowAndRadius.w; + vec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex); + + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + lengthSq = czm_eyeHeight2D.y; + } + else + { + vec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz); + lengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius); + } + + float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; + float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + show = 0.0; + } + #endif + + float polylineAngle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, polylineAngle); + gl_Position = czm_viewportOrthographic * positionWC * show; + + v_st.s = texCoord; + v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w); + + v_width = width; + v_pickColor = pickColor; + v_polylineAngle = polylineAngle; +} +`;var zc={};zc.numberOfPoints=function(e,t,n){let i=h.distance(e,t);return Math.ceil(i/n)};zc.numberOfPointsRhumbLine=function(e,t,n){let i=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(i/(n*n))))};var MGe=new me;zc.extractHeights=function(e,t){let n=e.length,i=new Array(n);for(let r=0;r<n;r++){let o=e[r];i[r]=t.cartesianToCartographic(o,MGe).height}return i};var RGe=new N,BGe=new h,lse=new h,LGe=new cn(h.UNIT_X,0),use=new h,NGe=new cn(h.UNIT_X,0),FGe=new h,UGe=new h,q6=[];function dse(e,t,n){let i=q6;i.length=e;let r;if(t===n){for(r=0;r<e;r++)i[r]=t;return i}let s=(n-t)/e;for(r=0;r<e;r++){let a=t+r*s;i[r]=a}return i}var AV=new me,yV=new me,Zg=new h,Y6=new h,VGe=new h,j6=new tf,AM=new ga;function kGe(e,t,n,i,r,o,s,a){let c=i.scaleToGeodeticSurface(e,Y6),l=i.scaleToGeodeticSurface(t,VGe),f=zc.numberOfPoints(e,t,n),d=i.cartesianToCartographic(c,AV),p=i.cartesianToCartographic(l,yV),g=dse(f,r,o);j6.setEndPoints(d,p);let m=j6.surfaceDistance/f,A=a;d.height=r;let x=i.cartographicToCartesian(d,Zg);h.pack(x,s,A),A+=3;for(let C=1;C<f;C++){let T=j6.interpolateUsingSurfaceDistance(C*m,yV);T.height=g[C],x=i.cartographicToCartesian(T,Zg),h.pack(x,s,A),A+=3}return A}function zGe(e,t,n,i,r,o,s,a){let c=i.cartesianToCartographic(e,AV),l=i.cartesianToCartographic(t,yV),f=zc.numberOfPointsRhumbLine(c,l,n);c.height=0,l.height=0;let d=dse(f,r,o);AM.ellipsoid.equals(i)||(AM=new ga(void 0,void 0,i)),AM.setEndPoints(c,l);let p=AM.surfaceDistance/f,g=a;c.height=r;let m=i.cartographicToCartesian(c,Zg);h.pack(m,s,g),g+=3;for(let A=1;A<f;A++){let x=AM.interpolateUsingSurfaceDistance(A*p,yV);x.height=d[A],m=i.cartographicToCartesian(x,Zg),h.pack(m,s,g),g+=3}return g}zc.wrapLongitude=function(e,t){let n=[],i=[];if(u(e)&&e.length>0){t=y(t,N.IDENTITY);let r=N.inverseTransformation(t,RGe),o=N.multiplyByPoint(r,h.ZERO,BGe),s=h.normalize(N.multiplyByPointAsVector(r,h.UNIT_Y,lse),lse),a=cn.fromPointNormal(o,s,LGe),c=h.normalize(N.multiplyByPointAsVector(r,h.UNIT_X,use),use),l=cn.fromPointNormal(o,c,NGe),f=1;n.push(h.clone(e[0]));let d=n[0],p=e.length;for(let g=1;g<p;++g){let m=e[g];if(cn.getPointDistance(l,d)<0||cn.getPointDistance(l,m)<0){let A=Ji.lineSegmentPlane(d,m,a,FGe);if(u(A)){let x=h.multiplyByScalar(s,5e-9,UGe);cn.getPointDistance(a,d)<0&&h.negate(x,x),n.push(h.add(A,x,new h)),i.push(f+1),h.negate(x,x),n.push(h.add(A,x,new h)),f=1}}n.push(h.clone(e[g])),f++,d=m}i.push(f)}return{positions:n,lengths:i}};zc.generateArc=function(e){u(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,re.WGS84),r=y(e.height,0),o=Array.isArray(r);if(n<1)return[];if(n===1){let A=i.scaleToGeodeticSurface(t[0],Y6);if(r=o?r[0]:r,r!==0){let x=i.geodeticSurfaceNormal(A,Zg);h.multiplyByScalar(x,r,x),h.add(A,x,A)}return[A.x,A.y,A.z]}let s=e.minDistance;if(!u(s)){let A=y(e.granularity,P.RADIANS_PER_DEGREE);s=P.chordLength(A,i.maximumRadius)}let a=0,c;for(c=0;c<n-1;c++)a+=zc.numberOfPoints(t[c],t[c+1],s);let l=(a+1)*3,f=new Array(l),d=0;for(c=0;c<n-1;c++){let A=t[c],x=t[c+1],C=o?r[c]:r,T=o?r[c+1]:r;d=kGe(A,x,s,i,C,T,f,d)}q6.length=0;let p=t[n-1],g=i.cartesianToCartographic(p,AV);g.height=o?r[n-1]:r;let m=i.cartographicToCartesian(g,Zg);return h.pack(m,f,l-3),f};var fse=new me,HGe=new me;zc.generateRhumbArc=function(e){u(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,re.WGS84),r=y(e.height,0),o=Array.isArray(r);if(n<1)return[];if(n===1){let C=i.scaleToGeodeticSurface(t[0],Y6);if(r=o?r[0]:r,r!==0){let T=i.geodeticSurfaceNormal(C,Zg);h.multiplyByScalar(T,r,T),h.add(C,T,C)}return[C.x,C.y,C.z]}let s=y(e.granularity,P.RADIANS_PER_DEGREE),a=0,c,l=i.cartesianToCartographic(t[0],fse),f;for(c=0;c<n-1;c++)f=i.cartesianToCartographic(t[c+1],HGe),a+=zc.numberOfPointsRhumbLine(l,f,s),l=me.clone(f,fse);let d=(a+1)*3,p=new Array(d),g=0;for(c=0;c<n-1;c++){let C=t[c],T=t[c+1],E=o?r[c]:r,S=o?r[c+1]:r;g=zGe(C,T,s,i,E,S,p,g)}q6.length=0;let m=t[n-1],A=i.cartesianToCartographic(m,AV);A.height=o?r[n-1]:r;let x=i.cartographicToCartesian(A,Zg);return h.pack(x,p,d-3),p};zc.generateCartesianArc=function(e){let t=zc.generateArc(e),n=t.length/3,i=new Array(n);for(let r=0;r<n;r++)i[r]=h.unpack(t,r*3);return i};zc.generateCartesianRhumbArc=function(e){let t=zc.generateRhumbArc(e),n=t.length/3,i=new Array(n);for(let r=0;r<n;r++)i[r]=h.unpack(t,r*3);return i};var Mi=zc;function uu(e,t){e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._width=y(e.width,1),this._loop=y(e.loop,!1),this._distanceDisplayCondition=e.distanceDisplayCondition,this._material=e.material,u(this._material)||(this._material=Gi.fromType(Gi.ColorType,{color:new z(1,1,1,1)}));let n=e.positions;u(n)||(n=[]),this._positions=n,this._actualPositions=Er(n,h.equalsEpsilon),this._loop&&this._actualPositions.length>2&&(this._actualPositions===this._positions&&(this._actualPositions=n.slice()),this._actualPositions.push(h.clone(this._actualPositions[0]))),this._length=this._actualPositions.length,this._id=e.id;let i;u(t)&&(i=N.clone(t.modelMatrix)),this._modelMatrix=i,this._segments=Mi.wrapLongitude(this._actualPositions,i),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(mse),this._polylineCollection=t,this._dirty=!1,this._pickId=void 0,this._boundingVolume=ae.fromPoints(this._actualPositions),this._boundingVolumeWC=ae.transform(this._boundingVolume,this._modelMatrix),this._boundingVolume2D=new ae}var hse=uu.POSITION_INDEX=0,GGe=uu.SHOW_INDEX=1,WGe=uu.WIDTH_INDEX=2,jGe=uu.MATERIAL_INDEX=3,xM=uu.POSITION_SIZE_INDEX=4,qGe=uu.DISTANCE_DISPLAY_CONDITION=5,mse=uu.NUMBER_OF_PROPERTIES=6;function Xp(e,t){++e._propertiesChanged[t];let n=e._polylineCollection;u(n)&&(n._updatePolyline(e,t),e._dirty=!0)}Object.defineProperties(uu.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,Xp(this,GGe))}},positions:{get:function(){return this._positions},set:function(e){let t=Er(e,h.equalsEpsilon);this._loop&&t.length>2&&(t===e&&(t=e.slice()),t.push(h.clone(t[0]))),(this._actualPositions.length!==t.length||this._actualPositions.length!==this._length)&&Xp(this,xM),this._positions=e,this._actualPositions=t,this._length=t.length,this._boundingVolume=ae.fromPoints(this._actualPositions,this._boundingVolume),this._boundingVolumeWC=ae.transform(this._boundingVolume,this._modelMatrix,this._boundingVolumeWC),Xp(this,hse),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,Xp(this,jGe))}},width:{get:function(){return this._width},set:function(e){let t=this._width;e!==t&&(this._width=e,Xp(this,WGe))}},loop:{get:function(){return this._loop},set:function(e){if(e!==this._loop){let t=this._actualPositions;e?t.length>2&&!h.equals(t[0],t[t.length-1])&&(t.length===this._positions.length&&(this._actualPositions=t=this._positions.slice()),t.push(h.clone(t[0]))):t.length>2&&h.equals(t[0],t[t.length-1])&&(t.length-1===this._positions.length?this._actualPositions=this._positions:t.pop()),this._loop=e,Xp(this,xM)}}},id:{get:function(){return this._id},set:function(e){this._id=e,u(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},isDestroyed:{get:function(){return!u(this._polylineCollection)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){vt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=vt.clone(e,this._distanceDisplayCondition),Xp(this,qGe))}}});uu.prototype.update=function(){let e=N.IDENTITY;u(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);let t=this._segments.positions.length,n=this._segments.lengths,i=this._propertiesChanged[hse]>0||this._propertiesChanged[xM]>0;if((!N.equals(e,this._modelMatrix)||i)&&(this._segments=Mi.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=ae.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=N.clone(e,this._modelMatrix),this._segments.positions.length!==t)Xp(this,xM);else{let r=n.length;for(let o=0;o<r;++o)if(n[o]!==this._segments.lengths[o]){Xp(this,xM);break}}};uu.prototype.getPickId=function(e){return u(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._polylineCollection,id:this._id})),this._pickId};uu.prototype._clean=function(){this._dirty=!1;let e=this._propertiesChanged;for(let t=0;t<mse-1;++t)e[t]=0};uu.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._material=this._material&&this._material.destroy(),this._polylineCollection=void 0};var hf=uu;var YGe=hf.SHOW_INDEX,XGe=hf.WIDTH_INDEX,K6=hf.POSITION_INDEX,KGe=hf.MATERIAL_INDEX,pse=hf.POSITION_SIZE_INDEX,JGe=hf.DISTANCE_DISPLAY_CONDITION,Tse=hf.NUMBER_OF_PROPERTIES,Sl={texCoordExpandAndBatchIndex:0,position3DHigh:1,position3DLow:2,position2DHigh:3,position2DLow:4,prevPosition3DHigh:5,prevPosition3DLow:6,prevPosition2DHigh:7,prevPosition2DLow:8,nextPosition3DHigh:9,nextPosition3DLow:10,nextPosition2DHigh:11,nextPosition2DLow:12};function Nd(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this._modelMatrix=N.clone(N.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._opaqueRS=void 0,this._translucentRS=void 0,this._colorCommands=[],this._polylinesUpdated=!1,this._polylinesRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(Tse),this._polylines=[],this._polylineBuckets={},this._positionBufferUsage={bufferUsage:Fe.STATIC_DRAW,frameCount:0},this._mode=void 0,this._polylinesToUpdate=[],this._vertexArrays=[],this._positionBuffer=void 0,this._texCoordExpandAndBatchIndexBuffer=void 0,this._batchTable=void 0,this._createBatchTable=!1,this._useHighlightColor=!1,this._highlightColor=z.clone(z.WHITE);let t=this;this._uniformMap={u_highlightColor:function(){return t._highlightColor}}}Object.defineProperties(Nd.prototype,{length:{get:function(){return J6(this),this._polylines.length}}});Nd.prototype.add=function(e){let t=new hf(e,this);return t._index=this._polylines.length,this._polylines.push(t),this._createVertexArray=!0,this._createBatchTable=!0,t};Nd.prototype.remove=function(e){if(this.contains(e)){if(this._polylinesRemoved=!0,this._createVertexArray=!0,this._createBatchTable=!0,u(e._bucket)){let t=e._bucket;t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()}return e._destroy(),!0}return!1};Nd.prototype.removeAll=function(){Z6(this),wse(this),this._polylineBuckets={},this._polylinesRemoved=!1,this._polylines.length=0,this._polylinesToUpdate.length=0,this._createVertexArray=!0};Nd.prototype.contains=function(e){return u(e)&&e._polylineCollection===this};Nd.prototype.get=function(e){return J6(this),this._polylines[e]};function ZGe(e,t){u(e._batchTable)&&e._batchTable.destroy();let n=[{functionName:"batchTable_getWidthAndShow",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:2},{functionName:"batchTable_getPickColor",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0},{functionName:"batchTable_getCenterHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"batchTable_getCenterLowAndRadius",componentDatatype:X.FLOAT,componentsPerAttribute:4},{functionName:"batchTable_getDistanceDisplayCondition",componentDatatype:X.FLOAT,componentsPerAttribute:2}];e._batchTable=new W0(t,n,e._polylines.length)}var Ese=new jn,bse=new se,Sse=new H;Nd.prototype.update=function(e){if(J6(this),this._polylines.length===0||!this.show)return;i8e(this,e);let t=e.context,n=e.mapProjection,i,r=this._propertiesChanged;if(this._createBatchTable){if(zt.maximumVertexTextureImageUnits===0)throw new de("Vertex texture fetch support is required to render polylines. The maximum number of vertex texture image units must be greater than zero.");ZGe(this,t),this._createBatchTable=!1}if(this._createVertexArray||$Ge(this))yse(this,t,n);else if(this._polylinesUpdated){let c=this._polylinesToUpdate;if(this._mode!==ne.SCENE3D){let l=c.length;for(let f=0;f<l;++f)i=c[f],i.update()}if(r[pse]||r[KGe])yse(this,t,n);else{let l=c.length,f=this._polylineBuckets;for(let d=0;d<l;++d){i=c[d],r=i._propertiesChanged;let p=i._bucket,g=0;for(let m in f)if(f.hasOwnProperty(m)){if(f[m]===p){r[K6]&&p.writeUpdate(g,i,this._positionBuffer,n);break}g+=f[m].lengthOfPositions}if((r[YGe]||r[XGe])&&this._batchTable.setBatchedAttribute(i._index,0,new H(i._width,i._show)),this._batchTable.attributes.length>2){if(r[K6]||r[pse]){let m=e.mode===ne.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,A=jn.fromCartesian(m.center,Ese),x=se.fromElements(A.low.x,A.low.y,A.low.z,m.radius,bse);this._batchTable.setBatchedAttribute(i._index,2,A.high),this._batchTable.setBatchedAttribute(i._index,3,x)}if(r[JGe]){let m=Sse;m.x=0,m.y=Number.MAX_VALUE;let A=i.distanceDisplayCondition;u(A)&&(m.x=A.near,m.y=A.far),this._batchTable.setBatchedAttribute(i._index,4,m)}}i._clean()}}c.length=0,this._polylinesUpdated=!1}r=this._propertiesChanged;for(let c=0;c<Tse;++c)r[c]=0;let o=N.IDENTITY;e.mode===ne.SCENE3D&&(o=this.modelMatrix);let s=e.passes,a=e.morphTime!==0;if((!u(this._opaqueRS)||this._opaqueRS.depthTest.enabled!==a)&&(this._opaqueRS=Ve.fromCache({depthMask:a,depthTest:{enabled:a}})),(!u(this._translucentRS)||this._translucentRS.depthTest.enabled!==a)&&(this._translucentRS=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!a,depthTest:{enabled:a}})),this._batchTable.update(e),s.render||s.pick){let c=this._colorCommands;QGe(this,e,c,o)}};var CM=new ae,_se=new ae;function QGe(e,t,n,i){let r=t.context,o=t.commandList,s=n.length,a=0,c=!0,l=e._vertexArrays,f=e.debugShowBoundingVolume,p=e._batchTable.getUniformMapCallback(),g=l.length;for(let m=0;m<g;++m){let A=l[m],x=A.buckets,C=x.length;for(let T=0;T<C;++T){let E=x[T],S=E.offset,v=E.bucket.shaderProgram,D=E.bucket.polylines,M=D.length,O,B,L=0,_,b;for(let w=0;w<M;++w){let I=D[w],R=t8e(I._material);if(R!==O){if(u(O)&&L>0){let G=B.isTranslucent();a>=s?(_=new nt({owner:e}),n.push(_)):_=n[a],++a,b=_t(p(B._uniforms),e._uniformMap),_.boundingVolume=ae.clone(CM,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=A.va,_.renderState=G?e._translucentRS:e._opaqueRS,_.pass=G?be.TRANSLUCENT:be.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=b,_.count=L,_.offset=S,S+=L,L=0,c=!0,o.push(_)}B=I._material,B.update(r),O=R}let F=I._locatorBuckets,k=F.length;for(let G=0;G<k;++G){let U=F[G];U.locator===E&&(L+=U.count)}let V;t.mode===ne.SCENE3D?V=I._boundingVolumeWC:t.mode===ne.COLUMBUS_VIEW?V=I._boundingVolume2D:t.mode===ne.SCENE2D?u(I._boundingVolume2D)&&(V=ae.clone(I._boundingVolume2D,_se),V.center.x=0):u(I._boundingVolumeWC)&&u(I._boundingVolume2D)&&(V=ae.union(I._boundingVolumeWC,I._boundingVolume2D,_se)),c?(c=!1,ae.clone(V,CM)):ae.union(V,CM,CM)}u(O)&&L>0&&(a>=s?(_=new nt({owner:e}),n.push(_)):_=n[a],++a,b=_t(p(B._uniforms),e._uniformMap),_.boundingVolume=ae.clone(CM,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=A.va,_.renderState=B.isTranslucent()?e._translucentRS:e._opaqueRS,_.pass=B.isTranslucent()?be.TRANSLUCENT:be.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=b,_.count=L,_.offset=S,c=!0,o.push(_)),O=void 0}}n.length=a}Nd.prototype.isDestroyed=function(){return!1};Nd.prototype.destroy=function(){return vse(this),Z6(this),wse(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function $Ge(e){let t=!1,n=e._propertiesChanged,i=e._positionBufferUsage;return n[K6]?(i.bufferUsage!==Fe.STREAM_DRAW&&(t=!0,i.bufferUsage=Fe.STREAM_DRAW),i.frameCount=100):i.bufferUsage!==Fe.STATIC_DRAW&&(i.frameCount===0?(t=!0,i.bufferUsage=Fe.STATIC_DRAW):i.frameCount--),t}var gse=[0,0,0];function yse(e,t,n){e._createVertexArray=!1,Z6(e),vse(e),n8e(e);let i=[[]],r=i[0],o=e._batchTable,s=e._useHighlightColor,a=[0],c=0,l=[[]],f=0,d=e._polylineBuckets,p,g;for(p in d)d.hasOwnProperty(p)&&(g=d[p],g.updateShader(t,o,s),f+=g.lengthOfPositions);if(f>0){let m=e._mode,A=new Float32Array(6*f*3),x=new Float32Array(f*4),C,T=0,E=0,S=0;for(p in d)if(d.hasOwnProperty(p)){g=d[p],g.write(A,x,T,E,S,o,t,n),m===ne.MORPHING&&(u(C)||(C=new Float32Array(6*f*3)),g.writeForMorph(C,T));let b=g.lengthOfPositions;T+=6*b*3,E+=b*4,S+=b*4,c=g.updateIndices(i,a,l,c)}let v=e._positionBufferUsage.bufferUsage,D=Fe.STATIC_DRAW;e._positionBuffer=ht.createVertexBuffer({context:t,typedArray:A,usage:v});let M;u(C)&&(M=ht.createVertexBuffer({context:t,typedArray:C,usage:v})),e._texCoordExpandAndBatchIndexBuffer=ht.createVertexBuffer({context:t,typedArray:x,usage:D});let O=3*Float32Array.BYTES_PER_ELEMENT,B=4*Float32Array.BYTES_PER_ELEMENT,L=0,_=i.length;for(let b=0;b<_;++b)if(r=i[b],r.length>0){let w=new Uint16Array(r),I=ht.createIndexBuffer({context:t,typedArray:w,usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT});L+=a[b];let R=6*(b*(O*P.SIXTY_FOUR_KILOBYTES)-L*O),F=O+R,k=O+F,V=O+k,G=O+V,U=O+G,Y=b*(B*P.SIXTY_FOUR_KILOBYTES)-L*B,W=[{index:Sl.position3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:R,strideInBytes:6*O},{index:Sl.position3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:F,strideInBytes:6*O},{index:Sl.position2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:R,strideInBytes:6*O},{index:Sl.position2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:F,strideInBytes:6*O},{index:Sl.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*O},{index:Sl.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*O},{index:Sl.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*O},{index:Sl.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*O},{index:Sl.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*O},{index:Sl.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*O},{index:Sl.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*O},{index:Sl.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*O},{index:Sl.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:X.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:Y}],Z,j,K,J;m===ne.SCENE3D?(j=e._positionBuffer,Z="vertexBuffer",K=gse,J="value"):m===ne.SCENE2D||m===ne.COLUMBUS_VIEW?(j=gse,Z="value",K=e._positionBuffer,J="vertexBuffer"):(j=M,Z="vertexBuffer",K=e._positionBuffer,J="vertexBuffer"),W[0][Z]=j,W[1][Z]=j,W[2][J]=K,W[3][J]=K,W[4][Z]=j,W[5][Z]=j,W[6][J]=K,W[7][J]=K,W[8][Z]=j,W[9][Z]=j,W[10][J]=K,W[11][J]=K;let _e=new oi({context:t,attributes:W,indexBuffer:I});e._vertexArrays.push({va:_e,buckets:l[b]})}}}function e8e(e,t){return t instanceof Rt?t.id:t}var xV=[];function t8e(e){let t=Gi._uniformList[e.type],n=t.length;xV.length=2*n;let i=0;for(let r=0;r<n;++r){let o=t[r];xV[i]=o,xV[i+1]=e._uniforms[o](),i+=2}return`${e.type}:${JSON.stringify(xV,e8e)}`}function n8e(e){let t=e._mode,n=e._modelMatrix,i=e._polylineBuckets={},r=e._polylines,o=r.length;for(let s=0;s<o;++s){let a=r[s];if(a._actualPositions.length>1){a.update();let c=a.material,l=i[c.type];u(l)||(l=i[c.type]=new im(c,t,n)),l.addPolyline(a)}}}function i8e(e,t){let n=t.mode;(e._mode!==n||!N.equals(e._modelMatrix,e.modelMatrix))&&(e._mode=n,e._modelMatrix=N.clone(e.modelMatrix),e._createVertexArray=!0)}function J6(e){if(e._polylinesRemoved){e._polylinesRemoved=!1;let t=[],n=[],i=0,r,o=e._polylines.length;for(let s=0;s<o;++s)r=e._polylines[s],r.isDestroyed||(r._index=i++,n.push(r),t.push(r));e._polylines=t,e._polylinesToUpdate=n}}function Z6(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)if(!t[i].isDestroyed){let r=t[i]._bucket;u(r)&&(r.shaderProgram=r.shaderProgram&&r.shaderProgram.destroy())}}function vse(e){let t=e._vertexArrays.length;for(let n=0;n<t;++n)e._vertexArrays[n].va.destroy();e._vertexArrays.length=0}Nd.prototype._updatePolyline=function(e,t){this._polylinesUpdated=!0,e._dirty||this._polylinesToUpdate.push(e),++this._propertiesChanged[t]};function wse(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)t[i].isDestroyed||t[i]._destroy()}function X6(e,t,n){this.count=e,this.offset=t,this.bucket=n}function im(e,t,n){this.polylines=[],this.lengthOfPositions=0,this.material=e,this.shaderProgram=void 0,this.mode=t,this.modelMatrix=n}im.prototype.addPolyline=function(e){this.polylines.push(e),e._actualLength=this.getPolylinePositionsLength(e),this.lengthOfPositions+=e._actualLength,e._bucket=this};im.prototype.updateShader=function(e,t,n){if(u(this.shaderProgram))return;let i=["DISTANCE_DISPLAY_CONDITION"];n&&i.push("VECTOR_TILE"),this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&i.push("POLYLINE_DASH"),Ht.isInternetExplorer()||i.push("CLIP_POLYLINE");let r=new ke({defines:i,sources:[`in vec4 v_pickColor; +`,this.material.shaderSource,tA]}),o=t.getVertexShaderCallback()(yM),s=new ke({defines:i,sources:[nu,o]});this.shaderProgram=Xt.fromCache({context:e,vertexShaderSource:s,fragmentShaderSource:r,attributeLocations:Sl})};function Dse(e){return h.dot(h.UNIT_X,e._boundingVolume.center)<0||e._boundingVolume.intersectPlane(cn.ORIGIN_ZX_PLANE)===Qt.INTERSECTING}im.prototype.getPolylinePositionsLength=function(e){let t;if(this.mode===ne.SCENE3D||!Dse(e))return t=e._actualPositions.length,t*4-4;let n=0,i=e._segments.lengths;t=i.length;for(let r=0;r<t;++r)n+=i[r]*4-4;return n};var us=new h,mf=new h,pf=new h,CV=new h,r8e=new se,o8e=new H;im.prototype.write=function(e,t,n,i,r,o,s,a){let c=this.mode,l=a.ellipsoid.maximumRadius*P.PI,f=this.polylines,d=f.length;for(let p=0;p<d;++p){let g=f[p],m=g.width,A=g.show&&m>0,x=g._index,C=this.getSegments(g,a),T=C.positions,E=C.lengths,S=T.length,v=g.getPickId(s).color,D=0,M=0,O;for(let k=0;k<S;++k){k===0?g._loop?O=T[S-2]:(O=CV,h.subtract(T[0],T[1],O),h.add(T[0],O,O)):O=T[k-1],h.clone(O,mf),h.clone(T[k],us),k===S-1?g._loop?O=T[1]:(O=CV,h.subtract(T[S-1],T[S-2],O),h.add(T[S-1],O,O)):O=T[k+1],h.clone(O,pf);let V=E[D];k===M+V&&(M+=V,++D);let G=k-M===0,U=k===M+E[D]-1;c===ne.SCENE2D&&(mf.z=0,us.z=0,pf.z=0),(c===ne.SCENE2D||c===ne.MORPHING)&&(G||U)&&l-Math.abs(us.x)<1&&((us.x<0&&mf.x>0||us.x>0&&mf.x<0)&&h.clone(us,mf),(us.x<0&&pf.x>0||us.x>0&&pf.x<0)&&h.clone(us,pf));let Y=G?2:0,W=U?2:4;for(let Z=Y;Z<W;++Z){jn.writeElements(us,e,n),jn.writeElements(mf,e,n+6),jn.writeElements(pf,e,n+12);let j=Z-2<0?-1:1;t[r]=k/(S-1),t[r+1]=2*(Z%2)-1,t[r+2]=j,t[r+3]=x,n+=6*3,r+=4}}let B=r8e;B.x=z.floatToByte(v.red),B.y=z.floatToByte(v.green),B.z=z.floatToByte(v.blue),B.w=z.floatToByte(v.alpha);let L=o8e;L.x=m,L.y=A?1:0;let _=c===ne.SCENE2D?g._boundingVolume2D:g._boundingVolumeWC,b=jn.fromCartesian(_.center,Ese),w=b.high,I=se.fromElements(b.low.x,b.low.y,b.low.z,_.radius,bse),R=Sse;R.x=0,R.y=Number.MAX_VALUE;let F=g.distanceDisplayCondition;u(F)&&(R.x=F.near,R.y=F.far),o.setBatchedAttribute(x,0,L),o.setBatchedAttribute(x,1,B),o.attributes.length>2&&(o.setBatchedAttribute(x,2,w),o.setBatchedAttribute(x,3,I),o.setBatchedAttribute(x,4,R))}};var s8e=new h,a8e=new h,c8e=new h,Ase=new h;im.prototype.writeForMorph=function(e,t){let n=this.modelMatrix,i=this.polylines,r=i.length;for(let o=0;o<r;++o){let s=i[o],a=s._segments.positions,c=s._segments.lengths,l=a.length,f=0,d=0;for(let p=0;p<l;++p){let g;p===0?s._loop?g=a[l-2]:(g=Ase,h.subtract(a[0],a[1],g),h.add(a[0],g,g)):g=a[p-1],g=N.multiplyByPoint(n,g,a8e);let m=N.multiplyByPoint(n,a[p],s8e),A;p===l-1?s._loop?A=a[1]:(A=Ase,h.subtract(a[l-1],a[l-2],A),h.add(a[l-1],A,A)):A=a[p+1],A=N.multiplyByPoint(n,A,c8e);let x=c[f];p===d+x&&(d+=x,++f);let C=p-d===0,T=p===d+c[f]-1,E=C?2:0,S=T?2:4;for(let v=E;v<S;++v)jn.writeElements(m,e,t),jn.writeElements(g,e,t+6),jn.writeElements(A,e,t+12),t+=6*3}}};var l8e=new Array(1);im.prototype.updateIndices=function(e,t,n,i){let r=n.length-1,o=new X6(0,i,this);n[r].push(o);let s=0,a=e[e.length-1],c=0;a.length>0&&(c=a[a.length-1]+1);let l=this.polylines,f=l.length;for(let d=0;d<f;++d){let p=l[d];p._locatorBuckets=[];let g;if(this.mode===ne.SCENE3D){g=l8e;let A=p._actualPositions.length;if(A>0)g[0]=A;else continue}else g=p._segments.lengths;let m=g.length;if(m>0){let A=0;for(let x=0;x<m;++x){let C=g[x]-1;for(let T=0;T<C;++T)c+4>P.SIXTY_FOUR_KILOBYTES&&(p._locatorBuckets.push({locator:o,count:A}),A=0,t.push(4),a=[],e.push(a),c=0,o.count=s,s=0,i=0,o=new X6(0,0,this),n[++r]=[o]),a.push(c,c+2,c+1),a.push(c+1,c+2,c+3),A+=6,s+=6,i+=6,c+=4}p._locatorBuckets.push({locator:o,count:A}),c+4>P.SIXTY_FOUR_KILOBYTES&&(t.push(0),a=[],e.push(a),c=0,o.count=s,i=0,s=0,o=new X6(0,0,this),n[++r]=[o])}p._clean()}return o.count=s,i};im.prototype.getPolylineStartIndex=function(e){let t=this.polylines,n=0,i=t.length;for(let r=0;r<i;++r){let o=t[r];if(o===e)break;n+=o._actualLength}return n};var mE={positions:void 0,lengths:void 0},xse=new Array(1),u8e=new h,f8e=new me;im.prototype.getSegments=function(e,t){let n=e._actualPositions;if(this.mode===ne.SCENE3D)return xse[0]=n.length,mE.positions=n,mE.lengths=xse,mE;Dse(e)&&(n=e._segments.positions);let i=t.ellipsoid,r=[],o=this.modelMatrix,s=n.length,a,c=u8e;for(let l=0;l<s;++l)a=n[l],c=N.multiplyByPoint(o,a,c),r.push(t.project(i.cartesianToCartographic(c,f8e)));if(r.length>0){e._boundingVolume2D=ae.fromPoints(r,e._boundingVolume2D);let l=e._boundingVolume2D.center;e._boundingVolume2D.center=new h(l.z,l.x,l.y)}return mE.positions=r,mE.lengths=e._segments.lengths,mE};var Cse;im.prototype.writeUpdate=function(e,t,n,i){let r=this.mode,o=i.ellipsoid.maximumRadius*P.PI,s=t._actualLength;if(s){e+=this.getPolylineStartIndex(t);let a=Cse,c=6*s*3;!u(a)||a.length<c?a=Cse=new Float32Array(c):a.length>c&&(a=new Float32Array(a.buffer,0,c));let l=this.getSegments(t,i),f=l.positions,d=l.lengths,p=0,g=0,m=0,A;s=f.length;for(let x=0;x<s;++x){x===0?t._loop?A=f[s-2]:(A=CV,h.subtract(f[0],f[1],A),h.add(f[0],A,A)):A=f[x-1],h.clone(A,mf),h.clone(f[x],us),x===s-1?t._loop?A=f[1]:(A=CV,h.subtract(f[s-1],f[s-2],A),h.add(f[s-1],A,A)):A=f[x+1],h.clone(A,pf);let C=d[g];x===m+C&&(m+=C,++g);let T=x-m===0,E=x===m+d[g]-1;r===ne.SCENE2D&&(mf.z=0,us.z=0,pf.z=0),(r===ne.SCENE2D||r===ne.MORPHING)&&(T||E)&&o-Math.abs(us.x)<1&&((us.x<0&&mf.x>0||us.x>0&&mf.x<0)&&h.clone(us,mf),(us.x<0&&pf.x>0||us.x>0&&pf.x<0)&&h.clone(us,pf));let S=T?2:0,v=E?2:4;for(let D=S;D<v;++D)jn.writeElements(us,a,p),jn.writeElements(mf,a,p+6),jn.writeElements(pf,a,p+12),p+=6*3}n.copyFromArrayView(a,6*3*Float32Array.BYTES_PER_ELEMENT*e)}};var Fd=Nd;function Qg(e){this._positions=e.positions,this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._rectangle=e.rectangle,this._minHeight=e.minimumHeight,this._maxHeight=e.maximumHeight,this._billboardCollection=new lu({batchTable:e.batchTable}),this._labelCollection=new nm({batchTable:e.batchTable}),this._polylineCollection=new Fd,this._polylineCollection._useHighlightColor=!0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Qg.prototype,{ready:{get:function(){return this._ready}},pointsLength:{get:function(){return this._billboardCollection.length}},texturesByteLength:{get:function(){let e=this._billboardCollection.textureAtlas.texture.sizeInBytes,t=this._labelCollection._textureAtlas.texture.sizeInBytes;return e+t}}});function d8e(e,t){let n=e._rectangle,i=e._minHeight,r=e._maxHeight,o=2+le.packedLength+re.packedLength,s=new Float64Array(o),a=0;return s[a++]=i,s[a++]=r,le.pack(n,s,a),a+=le.packedLength,re.pack(t,s,a),s}var h8e=new pi("createVectorTilePoints",5),m8e=new h;function p8e(e,t){let n=e._positions,i=e._packedBuffer;u(i)||(n=e._positions=n.slice(),e._batchIds=e._batchIds.slice(),i=e._packedBuffer=d8e(e,t));let r=[n.buffer,i.buffer],o={positions:n.buffer,packedBuffer:i.buffer},s=h8e.scheduleTask(o,r);if(u(s))return s.then(a=>{if(e.isDestroyed())return;e._positions=new Float64Array(a.positions);let c=e._billboardCollection,l=e._labelCollection,f=e._polylineCollection;n=e._positions;let d=e._batchIds,p=n.length/3;for(let g=0;g<p;++g){let m=d[g],A=h.unpack(n,g*3,m8e),x=c.add();x.position=A,x._batchIndex=m;let C=l.add();C.text=" ",C.position=A,C._batchIndex=m;let T=f.add();T.positions=[h.clone(A),h.clone(A)]}e._positions=void 0,e._packedBuffer=void 0,e._ready=!0}).catch(a=>{e.isDestroyed()||(e._error=a)})}Qg.prototype.createFeatures=function(e,t){let n=this._billboardCollection,i=this._labelCollection,r=this._polylineCollection,o=this._batchIds,s=o.length;for(let a=0;a<s;++a){let c=o[a],l=n.get(a),f=i.get(a),d=r.get(a);t[c]=new qp(e,c,l,f,d)}};Qg.prototype.applyDebugSettings=function(e,t){e?(z.clone(t,this._billboardCollection._highlightColor),z.clone(t,this._labelCollection._highlightColor),z.clone(t,this._polylineCollection._highlightColor)):(z.clone(z.WHITE,this._billboardCollection._highlightColor),z.clone(z.WHITE,this._labelCollection._highlightColor),z.clone(z.WHITE,this._polylineCollection._highlightColor))};function _8e(e,t){let n=e._batchIds,i=n.length;for(let r=0;r<i;++r){let o=n[r],s=t[o];s.show=!0,s.pointSize=qp.defaultPointSize,s.color=qp.defaultColor,s.pointOutlineColor=qp.defaultPointOutlineColor,s.pointOutlineWidth=qp.defaultPointOutlineWidth,s.labelColor=z.WHITE,s.labelOutlineColor=z.WHITE,s.labelOutlineWidth=1,s.font="30px sans-serif",s.labelStyle=zr.FILL,s.labelText=void 0,s.backgroundColor=new z(.165,.165,.165,.8),s.backgroundPadding=new H(7,5),s.backgroundEnabled=!1,s.scaleByDistance=void 0,s.translucencyByDistance=void 0,s.distanceDisplayCondition=void 0,s.heightOffset=0,s.anchorLineEnabled=!1,s.anchorLineColor=z.WHITE,s.image=void 0,s.disableDepthTestDistance=0,s.horizontalOrigin=_i.CENTER,s.verticalOrigin=Pn.CENTER,s.labelHorizontalOrigin=_i.RIGHT,s.labelVerticalOrigin=Pn.BASELINE}}var g8e=new z,y8e=new z,A8e=new z,x8e=new z,C8e=new z,T8e=new z,TM=new Bt,EM=new Bt,Q6=new vt;Qg.prototype.applyStyle=function(e,t){if(!u(e)){_8e(this,t);return}let n=this._batchIds,i=n.length;for(let r=0;r<i;++r){let o=n[r],s=t[o];if(u(e.show)&&(s.show=e.show.evaluate(s)),u(e.pointSize)&&(s.pointSize=e.pointSize.evaluate(s)),u(e.color)&&(s.color=e.color.evaluateColor(s,g8e)),u(e.pointOutlineColor)&&(s.pointOutlineColor=e.pointOutlineColor.evaluateColor(s,y8e)),u(e.pointOutlineWidth)&&(s.pointOutlineWidth=e.pointOutlineWidth.evaluate(s)),u(e.labelColor)&&(s.labelColor=e.labelColor.evaluateColor(s,A8e)),u(e.labelOutlineColor)&&(s.labelOutlineColor=e.labelOutlineColor.evaluateColor(s,x8e)),u(e.labelOutlineWidth)&&(s.labelOutlineWidth=e.labelOutlineWidth.evaluate(s)),u(e.font)&&(s.font=e.font.evaluate(s)),u(e.labelStyle)&&(s.labelStyle=e.labelStyle.evaluate(s)),u(e.labelText)?s.labelText=e.labelText.evaluate(s):s.labelText=void 0,u(e.backgroundColor)&&(s.backgroundColor=e.backgroundColor.evaluateColor(s,C8e)),u(e.backgroundPadding)&&(s.backgroundPadding=e.backgroundPadding.evaluate(s)),u(e.backgroundEnabled)&&(s.backgroundEnabled=e.backgroundEnabled.evaluate(s)),u(e.scaleByDistance)){let a=e.scaleByDistance.evaluate(s);u(a)?(TM.near=a.x,TM.nearValue=a.y,TM.far=a.z,TM.farValue=a.w,s.scaleByDistance=TM):s.scaleByDistance=void 0}else s.scaleByDistance=void 0;if(u(e.translucencyByDistance)){let a=e.translucencyByDistance.evaluate(s);u(a)?(EM.near=a.x,EM.nearValue=a.y,EM.far=a.z,EM.farValue=a.w,s.translucencyByDistance=EM):s.translucencyByDistance=void 0}else s.translucencyByDistance=void 0;if(u(e.distanceDisplayCondition)){let a=e.distanceDisplayCondition.evaluate(s);u(a)?(Q6.near=a.x,Q6.far=a.y,s.distanceDisplayCondition=Q6):s.distanceDisplayCondition=void 0}else s.distanceDisplayCondition=void 0;u(e.heightOffset)&&(s.heightOffset=e.heightOffset.evaluate(s)),u(e.anchorLineEnabled)&&(s.anchorLineEnabled=e.anchorLineEnabled.evaluate(s)),u(e.anchorLineColor)&&(s.anchorLineColor=e.anchorLineColor.evaluateColor(s,T8e)),u(e.image)?s.image=e.image.evaluate(s):s.image=void 0,u(e.disableDepthTestDistance)&&(s.disableDepthTestDistance=e.disableDepthTestDistance.evaluate(s)),u(e.horizontalOrigin)&&(s.horizontalOrigin=e.horizontalOrigin.evaluate(s)),u(e.verticalOrigin)&&(s.verticalOrigin=e.verticalOrigin.evaluate(s)),u(e.labelHorizontalOrigin)&&(s.labelHorizontalOrigin=e.labelHorizontalOrigin.evaluate(s)),u(e.labelVerticalOrigin)&&(s.labelVerticalOrigin=e.labelVerticalOrigin.evaluate(s))}};Qg.prototype.update=function(e){if(!this._ready){if(u(this._promise)||(this._promise=p8e(this,e.mapProjection.ellipsoid)),u(this._error)){let t=this._error;throw this._error=void 0,t}return}this._polylineCollection.update(e),this._billboardCollection.update(e),this._labelCollection.update(e)};Qg.prototype.isDestroyed=function(){return!1};Qg.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._polylineCollection=this._polylineCollection&&this._polylineCollection.destroy(),ue(this)};var bM=Qg;function Kp(e){this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._counts=e.counts,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._batchedPositions=void 0,this._transferrableBatchIds=void 0,this._vertexBatchIds=void 0,this._ellipsoid=y(e.ellipsoid,re.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._polygonMinimumHeights=e.polygonMinimumHeights,this._polygonMaximumHeights=e.polygonMaximumHeights,this._center=y(e.center,h.ZERO),this._rectangle=e.rectangle,this._center=void 0,this._boundingVolume=e.boundingVolume,this._boundingVolumes=void 0,this._batchedIndices=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=kn.BOTH}Object.defineProperties(Kp.prototype,{trianglesLength:{get:function(){return u(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return u(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});function E8e(e){let t=new Float64Array(3+h.packedLength+re.packedLength+le.packedLength),n=0;return t[n++]=e._indices.BYTES_PER_ELEMENT,t[n++]=e._minimumHeight,t[n++]=e._maximumHeight,h.pack(e._center,t,n),n+=h.packedLength,re.pack(e._ellipsoid,t,n),n+=re.packedLength,le.pack(e._rectangle,t,n),t}function b8e(e,t){let n=1,i=t[n++],r=e._boundingVolumes=new Array(i);for(let a=0;a<i;++a)r[a]=On.unpack(t,n),n+=On.packedLength;let o=t[n++],s=e._batchedIndices=new Array(o);for(let a=0;a<o;++a){let c=z.unpack(t,n);n+=z.packedLength;let l=t[n++],f=t[n++],d=t[n++],p=new Array(d);for(let g=0;g<d;++g)p[g]=t[n++];s[a]=new jh({color:c,offset:l,count:f,batchIds:p})}}var S8e=new pi("createVectorTilePolygons",5),v8e=new z;function w8e(e){if(u(e._primitive))return;let t=e._positions,n=e._counts,i=e._indexCounts,r=e._indices,o=e._transferrableBatchIds,s=e._batchTableColors,a=e._packedBuffer;if(!u(s)){t=e._positions=e._positions.slice(),n=e._counts=e._counts.slice(),i=e._indexCounts=e._indexCounts.slice(),r=e._indices=e._indices.slice(),e._center=e._ellipsoid.cartographicToCartesian(le.center(e._rectangle)),o=e._transferrableBatchIds=new Uint32Array(e._batchIds),s=e._batchTableColors=new Uint32Array(o.length);let g=e._batchTable,m=s.length;for(let A=0;A<m;++A){let x=g.getColor(A,v8e);s[A]=x.toRgba()}a=e._packedBuffer=E8e(e)}let c=[t.buffer,n.buffer,i.buffer,r.buffer,o.buffer,s.buffer,a.buffer],l={packedBuffer:a.buffer,positions:t.buffer,counts:n.buffer,indexCounts:i.buffer,indices:r.buffer,batchIds:o.buffer,batchTableColors:s.buffer},f=e._polygonMinimumHeights,d=e._polygonMaximumHeights;u(f)&&u(d)&&(f=f.slice(),d=d.slice(),c.push(f.buffer,d.buffer),l.minimumHeights=f,l.maximumHeights=d);let p=S8e.scheduleTask(l,c);if(u(p))return p.then(g=>{if(e.isDestroyed())return;e._positions=void 0,e._counts=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0;let m=new Float64Array(g.packedBuffer),A=m[0];b8e(e,m),e._indices=Ue.getSizeInBytes(A)===2?new Uint16Array(g.indices):new Uint32Array(g.indices),e._indexOffsets=new Uint32Array(g.indexOffsets),e._indexCounts=new Uint32Array(g.indexCounts),e._batchedPositions=new Float32Array(g.positions),e._vertexBatchIds=new Uint16Array(g.batchIds),D8e(e),e._ready=!0}).catch(g=>{e.isDestroyed()||(e._error=g)})}function D8e(e){u(e._primitive)||(e._primitive=new xA({batchTable:e._batchTable,positions:e._batchedPositions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center}),e._batchTable=void 0,e._batchIds=void 0,e._positions=void 0,e._counts=void 0,e._indices=void 0,e._indexCounts=void 0,e._indexOffsets=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0,e._center=void 0,e._rectangle=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0)}Kp.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};Kp.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};Kp.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};Kp.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};Kp.prototype.update=function(e){if(!this._ready){if(u(this._promise)||(this._promise=w8e(this)),u(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};Kp.prototype.isDestroyed=function(){return!1};Kp.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var SM=Kp;var vM=`in vec4 currentPosition; +in vec4 previousPosition; +in vec4 nextPosition; +in vec2 expandAndWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = u_modifiedModelView * currentPosition; + vec4 prev = u_modifiedModelView * previousPosition; + vec4 next = u_modifiedModelView * nextPosition; + + float angle; + vec4 positionWC = getPolylineWindowCoordinatesEC(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; +} +`;function Ud(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,re.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._boundingVolume=e.boundingVolume,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._currentPositions=void 0,this._previousPositions=void 0,this._nextPositions=void 0,this._expandAndWidth=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Ud.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function I8e(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,r=e._ellipsoid,o=e._center,s=2+le.packedLength+re.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,le.pack(t,a,c),c+=le.packedLength,re.pack(r,a,c),c+=re.packedLength,h.pack(o,a,c),a}var P8e=new pi("createVectorTilePolylines",5),pE={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4};function O8e(e,t){if(u(e._va))return;let n=e._positions,i=e._widths,r=e._counts,o=e._transferrableBatchIds,s=e._packedBuffer;u(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),r=e._counts=r.slice(),o=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=I8e(e));let a=[n.buffer,i.buffer,r.buffer,o.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:r.buffer,batchIds:o.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},l=P8e.scheduleTask(c,a);if(u(l))return l.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._currentPositions=new Float32Array(f.currentPositions),e._previousPositions=new Float32Array(f.previousPositions),e._nextPositions=new Float32Array(f.nextPositions),e._expandAndWidth=new Float32Array(f.expandAndWidth),e._vertexBatchIds=new Uint16Array(f.batchIds);let d=f.indexDatatype;e._indices=d===Ue.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),M8e(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function M8e(e,t){if(!u(e._va)){let n=e._currentPositions,i=e._previousPositions,r=e._nextPositions,o=e._expandAndWidth,s=e._vertexBatchIds,a=e._indices,c=i.byteLength+n.byteLength+r.byteLength;c+=o.byteLength+s.byteLength+a.byteLength,e._trianglesLength=a.length/3,e._geometryByteLength=c;let l=ht.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),f=ht.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),d=ht.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),p=ht.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),g=ht.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),m=ht.createIndexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:a.BYTES_PER_ELEMENT===2?Ue.UNSIGNED_SHORT:Ue.UNSIGNED_INT}),A=[{index:pE.previousPosition,vertexBuffer:l,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:pE.currentPosition,vertexBuffer:f,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:pE.nextPosition,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:pE.expandAndWidth,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:2},{index:pE.a_batchId,vertexBuffer:g,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new oi({context:t,attributes:A,indexBuffer:m}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._currentPositions=void 0,e._previousPositions=void 0,e._nextPositions=void 0,e._expandAndWidth=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var wM=new N,Ise=new h;function R8e(e,t){u(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return N.clone(n,wM),N.multiplyByPoint(wM,e._center,Ise),N.setTranslation(wM,Ise,wM),wM},u_highlightColor:function(){return e._highlightColor}})}function B8e(e){if(u(e._rs))return;let t={enabled:!0,factor:-5,units:-5};e._rs=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!1,depthTest:{enabled:!0},polygonOffset:t})}var L8e=`uniform vec4 u_highlightColor; +void main() +{ + out_FragColor = u_highlightColor; +} +`;function N8e(e,t){if(u(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(vM),r=n.getFragmentShaderCallback(!1,void 0,!1)(L8e),o=new ke({defines:["VECTOR_TILE",Ht.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[nu,i]}),s=new ke({defines:["VECTOR_TILE"],sources:[r]});e._sp=Xt.fromCache({context:t,vertexShaderSource:o,fragmentShaderSource:s,attributeLocations:pE})}function F8e(e,t){if(!u(e._command)){let n=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new nt({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:n,boundingVolume:e._boundingVolume,pass:be.TRANSLUCENT,pickId:e._batchTable.getPickId()})}t.commandList.push(e._command)}Ud.getPolylinePositions=function(e,t){let n=e._batchIds,i=e._decodedPositions,r=e._decodedPositionOffsets;if(!u(n)||!u(i))return;let o,s,a=n.length,c=0,l=0;for(o=0;o<a;++o)n[o]===t&&(c+=r[o+1]-r[o]);if(c===0)return;let f=new Float64Array(c*3);for(o=0;o<a;++o)if(n[o]===t){let d=r[o],p=r[o+1]-d;for(s=0;s<p;++s){let g=(d+s)*3;f[l++]=i[g],f[l++]=i[g+1],f[l++]=i[g+2]}}return f};Ud.prototype.getPositions=function(e){return Ud.getPolylinePositions(this,e)};Ud.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let r=0;r<i;++r){let o=n[r];t[o]=new ws(e,o)}};Ud.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function U8e(e,t){let n=e._batchIds,i=n.length;for(let r=0;r<i;++r){let o=n[r],s=t[o];s.show=!0,s.color=z.WHITE}}var V8e=new z,k8e=z.WHITE,z8e=!0;Ud.prototype.applyStyle=function(e,t){if(!u(e)){U8e(this,t);return}let n=this._batchIds,i=n.length;for(let r=0;r<i;++r){let o=n[r],s=t[o];s.color=u(e.color)?e.color.evaluateColor(s,V8e):k8e,s.show=u(e.show)?e.show.evaluate(s):z8e}};Ud.prototype.update=function(e){let t=e.context;if(!this._ready){if(u(this._promise)||(this._promise=O8e(this,t)),u(this._error)){let i=this._error;throw this._error=void 0,i}return}R8e(this,t),N8e(this,t),B8e(this);let n=e.passes;(n.render||n.pick)&&F8e(this,e)};Ud.prototype.isDestroyed=function(){return!1};Ud.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var KA=Ud;var DM=`in vec3 startEllipsoidNormal; +in vec3 endEllipsoidNormal; +in vec4 startPositionAndHeight; +in vec4 endPositionAndHeight; +in vec4 startFaceNormalAndVertexCorner; +in vec4 endFaceNormalAndHalfWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; +uniform vec2 u_minimumMaximumVectorHeights; + +out vec4 v_startPlaneEC; +out vec4 v_endPlaneEC; +out vec4 v_rightPlaneEC; +out float v_halfWidth; +out vec3 v_volumeUpEC; + +void main() +{ + // vertex corner IDs + // 3-----------7 + // /| left /| + // / | 1 / | + // 2-----------6 5 end + // | / | / + // start |/ right |/ + // 0-----------4 + // + float isEnd = floor(startFaceNormalAndVertexCorner.w * 0.251); // 0 for front, 1 for end + float isTop = floor(startFaceNormalAndVertexCorner.w * mix(0.51, 0.19, isEnd)); // 0 for bottom, 1 for top + + vec3 forward = endPositionAndHeight.xyz - startPositionAndHeight.xyz; + vec3 right = normalize(cross(forward, startEllipsoidNormal)); + + vec4 position = vec4(startPositionAndHeight.xyz, 1.0); + position.xyz += forward * isEnd; + + v_volumeUpEC = czm_normal * normalize(cross(right, forward)); + + // Push for volume height + float offset; + vec3 ellipsoidNormal = mix(startEllipsoidNormal, endEllipsoidNormal, isEnd); + + // offset height to create volume + offset = mix(startPositionAndHeight.w, endPositionAndHeight.w, isEnd); + offset = mix(u_minimumMaximumVectorHeights.y, u_minimumMaximumVectorHeights.x, isTop) - offset; + position.xyz += offset * ellipsoidNormal; + + // move from RTC to EC + position = u_modifiedModelView * position; + right = czm_normal * right; + + // Push for width in a direction that is in the start or end plane and in a plane with right + // N = normalEC ("right-facing" direction for push) + // R = right + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + vec3 scratchNormal = mix(-startFaceNormalAndVertexCorner.xyz, endFaceNormalAndHalfWidth.xyz, isEnd); + scratchNormal = cross(scratchNormal, mix(startEllipsoidNormal, endEllipsoidNormal, isEnd)); + vec3 miterPushNormal = czm_normal * normalize(scratchNormal); + + offset = 2.0 * endFaceNormalAndHalfWidth.w * max(0.0, czm_metersPerPixel(position)); // offset = widthEC + offset = offset / dot(miterPushNormal, right); + position.xyz += miterPushNormal * (offset * sign(0.5 - mod(startFaceNormalAndVertexCorner.w, 2.0))); + + gl_Position = czm_depthClamp(czm_projection * position); + + position = u_modifiedModelView * vec4(startPositionAndHeight.xyz, 1.0); + vec3 startNormalEC = czm_normal * startFaceNormalAndVertexCorner.xyz; + v_startPlaneEC = vec4(startNormalEC, -dot(startNormalEC, position.xyz)); + v_rightPlaneEC = vec4(right, -dot(right, position.xyz)); + + position = u_modifiedModelView * vec4(endPositionAndHeight.xyz, 1.0); + vec3 endNormalEC = czm_normal * endFaceNormalAndHalfWidth.xyz; + v_endPlaneEC = vec4(endNormalEC, -dot(endNormalEC, position.xyz)); + v_halfWidth = endFaceNormalAndHalfWidth.w; +} +`;var IM=`in vec4 v_startPlaneEC; +in vec4 v_endPlaneEC; +in vec4 v_rightPlaneEC; +in float v_halfWidth; +in vec3 v_volumeUpEC; + +uniform vec4 u_highlightColor; +void main() +{ + float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); + + // Discard for sky + if (logDepthOrDepth == 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(0.0, 0.0, 1.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + eyeCoordinate /= eyeCoordinate.w; + + float halfMaxWidth = v_halfWidth * czm_metersPerPixel(eyeCoordinate); + + // Expand halfMaxWidth if direction to camera is almost perpendicular with the volume's up direction + halfMaxWidth += halfMaxWidth * (1.0 - dot(-normalize(eyeCoordinate.xyz), v_volumeUpEC)); + + // Check distance of the eye coordinate against the right-facing plane + float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); + + // Check eye coordinate against the mitering planes + float distanceFromStart = czm_planeDistance(v_startPlaneEC, eyeCoordinate.xyz); + float distanceFromEnd = czm_planeDistance(v_endPlaneEC, eyeCoordinate.xyz); + + if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(logDepthOrDepth, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + out_FragColor = u_highlightColor; + + czm_writeDepthClamp(); +} +`;function Jp(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,re.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._minimumMaximumVectorHeights=new H(si._defaultMinTerrainHeight,si._defaultMaxTerrainHeight),this._boundingVolume=On.fromRectangle(e.rectangle,si._defaultMinTerrainHeight,si._defaultMaxTerrainHeight,this._ellipsoid),this._classificationType=e.classificationType,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._startEllipsoidNormals=void 0,this._endEllipsoidNormals=void 0,this._startPositionAndHeights=void 0,this._startFaceNormalAndVertexCornerIds=void 0,this._endPositionAndHeights=void 0,this._endFaceNormalAndHalfWidths=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Jp.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function H8e(e,t,n){let i=si.getMinimumMaximumHeights(t,n),r=i.minimumTerrainHeight,o=i.maximumTerrainHeight,s=e._minimumMaximumVectorHeights;s.x=r,s.y=o;let a=e._boundingVolume,c=e._rectangle;On.fromRectangle(c,r,o,n,a)}function G8e(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,r=e._ellipsoid,o=e._center,s=2+le.packedLength+re.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,le.pack(t,a,c),c+=le.packedLength,re.pack(r,a,c),c+=re.packedLength,h.pack(o,a,c),a}var W8e=new pi("createVectorTileClampedPolylines"),$g={startEllipsoidNormal:0,endEllipsoidNormal:1,startPositionAndHeight:2,endPositionAndHeight:3,startFaceNormalAndVertexCorner:4,endFaceNormalAndHalfWidth:5,a_batchId:6};function j8e(e,t){if(u(e._va))return;let n=e._positions,i=e._widths,r=e._counts,o=e._transferrableBatchIds,s=e._packedBuffer;u(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),r=e._counts=r.slice(),o=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=G8e(e));let a=[n.buffer,i.buffer,r.buffer,o.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:r.buffer,batchIds:o.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},l=W8e.scheduleTask(c,a);if(u(l))return l.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._startEllipsoidNormals=new Float32Array(f.startEllipsoidNormals),e._endEllipsoidNormals=new Float32Array(f.endEllipsoidNormals),e._startPositionAndHeights=new Float32Array(f.startPositionAndHeights),e._startFaceNormalAndVertexCornerIds=new Float32Array(f.startFaceNormalAndVertexCornerIds),e._endPositionAndHeights=new Float32Array(f.endPositionAndHeights),e._endFaceNormalAndHalfWidths=new Float32Array(f.endFaceNormalAndHalfWidths),e._vertexBatchIds=new Uint16Array(f.vertexBatchIds);let d=f.indexDatatype;e._indices=d===Ue.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),q8e(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function q8e(e,t){if(!u(e._va)){let n=e._startEllipsoidNormals,i=e._endEllipsoidNormals,r=e._startPositionAndHeights,o=e._endPositionAndHeights,s=e._startFaceNormalAndVertexCornerIds,a=e._endFaceNormalAndHalfWidths,c=e._vertexBatchIds,l=e._indices,f=n.byteLength+i.byteLength;f+=r.byteLength+o.byteLength,f+=s.byteLength+a.byteLength,f+=c.byteLength+l.byteLength,e._trianglesLength=l.length/3,e._geometryByteLength=f;let d=ht.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),p=ht.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),g=ht.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),m=ht.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),A=ht.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),x=ht.createVertexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW}),C=ht.createVertexBuffer({context:t,typedArray:c,usage:Fe.STATIC_DRAW}),T=ht.createIndexBuffer({context:t,typedArray:l,usage:Fe.STATIC_DRAW,indexDatatype:l.BYTES_PER_ELEMENT===2?Ue.UNSIGNED_SHORT:Ue.UNSIGNED_INT}),E=[{index:$g.startEllipsoidNormal,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:$g.endEllipsoidNormal,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:$g.startPositionAndHeight,vertexBuffer:g,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:$g.endPositionAndHeight,vertexBuffer:m,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:$g.startFaceNormalAndVertexCorner,vertexBuffer:A,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:$g.endFaceNormalAndHalfWidth,vertexBuffer:x,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:$g.a_batchId,vertexBuffer:C,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new oi({context:t,attributes:E,indexBuffer:T}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._startEllipsoidNormals=void 0,e._endEllipsoidNormals=void 0,e._startPositionAndHeights=void 0,e._startFaceNormalAndVertexCornerIds=void 0,e._endPositionAndHeights=void 0,e._endFaceNormalAndHalfWidths=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var PM=new N,Pse=new h;function Y8e(e,t){u(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return N.clone(n,PM),N.multiplyByPoint(PM,e._center,Pse),N.setTranslation(PM,Pse,PM),PM},u_highlightColor:function(){return e._highlightColor},u_minimumMaximumVectorHeights:function(){return e._minimumMaximumVectorHeights}})}function Ose(e){return Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:zn.EQUAL,frontOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},backFunction:zn.EQUAL,backOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK}})}function X8e(e){u(e._rs)||(e._rs=Ose(!1),e._rs3DTiles=Ose(!0))}function K8e(e,t){if(u(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(DM),r=n.getFragmentShaderCallback(!1,void 0,!0)(IM),o=new ke({defines:["VECTOR_TILE",Ht.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[nu,i]}),s=new ke({defines:["VECTOR_TILE"],sources:[r]});e._sp=Xt.fromCache({context:t,vertexShaderSource:o,fragmentShaderSource:s,attributeLocations:$g})}function J8e(e,t){let n=e._command;if(!u(e._command)){let r=e._batchTable.getUniformMapCallback()(e._uniformMap);n=e._command=new nt({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:r,boundingVolume:e._boundingVolume,pass:be.TERRAIN_CLASSIFICATION,pickId:e._batchTable.getPickId()});let o=nt.shallowClone(n,n.derivedCommands.tileset);o.renderState=e._rs3DTiles,o.pass=be.CESIUM_3D_TILE_CLASSIFICATION,n.derivedCommands.tileset=o}let i=e._classificationType;(i===kn.TERRAIN||i===kn.BOTH)&&t.commandList.push(n),(i===kn.CESIUM_3D_TILE||i===kn.BOTH)&&t.commandList.push(n.derivedCommands.tileset)}Jp.prototype.getPositions=function(e){return KA.getPolylinePositions(this,e)};Jp.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let r=0;r<i;++r){let o=n[r];t[o]=new ws(e,o)}};Jp.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function Z8e(e,t){let n=e._batchIds,i=n.length;for(let r=0;r<i;++r){let o=n[r],s=t[o];s.show=!0,s.color=z.WHITE}}var Q8e=new z,$8e=z.WHITE,e5e=!0;Jp.prototype.applyStyle=function(e,t){if(!u(e)){Z8e(this,t);return}let n=this._batchIds,i=n.length;for(let r=0;r<i;++r){let o=n[r],s=t[o];s.color=u(e.color)?e.color.evaluateColor(s,Q8e):$8e,s.show=u(e.show)?e.show.evaluate(s):e5e}};function t5e(e){return si.initialize().then(function(){H8e(e,e._rectangle,e._ellipsoid)}).catch(t=>{e.isDestroyed()||(e._error=t)})}Jp.prototype.update=function(e){let t=e.context;if(!this._ready){if(u(this._promise)||(this._promise=t5e(this).then(j8e(this,t))),u(this._error)){let i=this._error;throw this._error=void 0,i}return}Y8e(this,t),K8e(this,t),X8e(this);let n=e.passes;(n.render||n.pick)&&J8e(this,e)};Jp.prototype.isDestroyed=function(){return!1};Jp.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var OM=Jp;var $6=32767,n5e=new me,i5e=new h;function r5e(e,t,n,i,r){let o=e.length/3,s=e.subarray(0,o),a=e.subarray(o,2*o),c=e.subarray(2*o,3*o);qn.zigZagDeltaDecode(s,a,c);let l=new Float64Array(e.length);for(let f=0;f<o;++f){let d=s[f],p=a[f],g=c[f],m=P.lerp(t.west,t.east,d/$6),A=P.lerp(t.south,t.north,p/$6),x=P.lerp(n,i,g/$6),C=me.fromRadians(m,A,x,n5e),T=r.cartographicToCartesian(C,i5e);h.pack(T,l,f*3)}return l}var MM=r5e;function rm(e,t,n,i,r){this._tileset=e,this._tile=t,this._resource=n,this._polygons=void 0,this._polylines=void 0,this._points=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,this._resolveContent=void 0,this._readyPromise=new Promise(o=>{this._resolveContent=o}),l5e(this,i,r)}Object.defineProperties(rm.prototype,{featuresLength:{get:function(){return u(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return u(this._points)?this._points.pointsLength:0}},trianglesLength:{get:function(){let e=0;return u(this._polygons)&&(e+=this._polygons.trianglesLength),u(this._polylines)&&(e+=this._polylines.trianglesLength),e}},geometryByteLength:{get:function(){let e=0;return u(this._polygons)&&(e+=this._polygons.geometryByteLength),u(this._polylines)&&(e+=this._polylines.geometryByteLength),e}},texturesByteLength:{get:function(){return u(this._points)?this._points.texturesByteLength:0}},batchTableByteLength:{get:function(){return u(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Vector3DTileContent.readyPromise","Vector3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Vector3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function o5e(e){return function(t,n){u(e._polygons)&&e._polygons.updateCommands(t,n)}}function s5e(e,t){let n,i,r,o,s=y(e.POLYGONS_LENGTH,0),a=y(e.POLYLINES_LENGTH,0),c=y(e.POINTS_LENGTH,0);if(s>0&&u(e.POLYGON_BATCH_IDS)){let p=t.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,p,s)}if(a>0&&u(e.POLYLINE_BATCH_IDS)){let p=t.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,p,a)}if(c>0&&u(e.POINT_BATCH_IDS)){let p=t.byteOffset+e.POINT_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,p,c)}let l=u(n)||u(i)||u(r),f=s>0&&!u(n)||a>0&&!u(i)||c>0&&!u(r);if(l&&f)throw new de("If one group of batch ids is defined, then all batch ids must be defined");if(!u(n)&&!u(i)&&!u(r)){let p=0;if(!u(n)&&s>0)for(n=new Uint16Array(s),o=0;o<s;++o)n[o]=p++;if(!u(i)&&a>0)for(i=new Uint16Array(a),o=0;o<a;++o)i[o]=p++;if(!u(r)&&c>0)for(r=new Uint16Array(c),o=0;o<c;++o)r[o]=p++}return{polygons:n,polylines:i,points:r}}var Vd=Uint32Array.BYTES_PER_ELEMENT;function a5e(e){return new KA(e)}function c5e(e){return new OM(e)}function l5e(e,t,n){n=y(n,0);let i=new Uint8Array(t),r=new DataView(t);n+=Vd;let o=r.getUint32(n,!0);if(o!==1)throw new de(`Only Vector tile version 1 is supported. Version ${o} is not.`);n+=Vd;let s=r.getUint32(n,!0);if(n+=Vd,s===0){e._ready=!0,e._resolveContent(e);return}let a=r.getUint32(n,!0);if(n+=Vd,a===0)throw new de("Feature table must have a byte length greater than zero");let c=r.getUint32(n,!0);n+=Vd;let l=r.getUint32(n,!0);n+=Vd;let f=r.getUint32(n,!0);n+=Vd;let d=r.getUint32(n,!0);n+=Vd;let p=r.getUint32(n,!0);n+=Vd;let g=r.getUint32(n,!0);n+=Vd;let m=r.getUint32(n,!0);n+=Vd;let A=Mr(i,n,a);n+=a;let x=new Uint8Array(t,n,c);n+=c;let C,T;l>0&&(C=Mr(i,n,l),n+=l,f>0&&(T=new Uint8Array(t,n,f),T=new Uint8Array(T),n+=f));let E=y(A.POLYGONS_LENGTH,0),S=y(A.POLYLINES_LENGTH,0),v=y(A.POINTS_LENGTH,0),D=E+S+v,M=new Ep(e,D,C,T,o5e(e));if(e._batchTable=M,D===0)return;let O=new Od(A,x),B=O.getGlobalProperty("REGION");if(!u(B))throw new de("Feature table global property: REGION must be defined");let L=le.unpack(B),_=B[4],b=B[5],w=e._tile.computedTransform,I=O.getGlobalProperty("RTC_CENTER",X.FLOAT,3);u(I)?(I=h.unpack(I),N.multiplyByPoint(w,I,I)):(I=le.center(L),I.height=P.lerp(_,b,.5),I=re.WGS84.cartographicToCartesian(I));let R=s5e(A,x);if(n+=(4-n%4)%4,E>0){O.featuresLength=E;let F=y(O.getPropertyArray("POLYGON_COUNTS",X.UNSIGNED_INT,1),O.getPropertyArray("POLYGON_COUNT",X.UNSIGNED_INT,1));if(!u(F))throw new de("Feature table property: POLYGON_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let k=y(O.getPropertyArray("POLYGON_INDEX_COUNTS",X.UNSIGNED_INT,1),O.getPropertyArray("POLYGON_INDEX_COUNT",X.UNSIGNED_INT,1));if(!u(k))throw new de("Feature table property: POLYGON_INDEX_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let V=F.reduce(function(j,K){return j+K*2},0),G=k.reduce(function(j,K){return j+K},0),U=new Uint32Array(t,n,G);n+=d;let Y=new Uint16Array(t,n,V);n+=p;let W,Z;u(A.POLYGON_MINIMUM_HEIGHTS)&&u(A.POLYGON_MAXIMUM_HEIGHTS)&&(W=O.getPropertyArray("POLYGON_MINIMUM_HEIGHTS",X.FLOAT,1),Z=O.getPropertyArray("POLYGON_MAXIMUM_HEIGHTS",X.FLOAT,1)),e._polygons=new SM({positions:Y,counts:F,indexCounts:k,indices:U,minimumHeight:_,maximumHeight:b,polygonMinimumHeights:W,polygonMaximumHeights:Z,center:I,rectangle:L,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:M,batchIds:R.polygons,modelMatrix:w})}if(S>0){O.featuresLength=S;let F=y(O.getPropertyArray("POLYLINE_COUNTS",X.UNSIGNED_INT,1),O.getPropertyArray("POLYLINE_COUNT",X.UNSIGNED_INT,1));if(!u(F))throw new de("Feature table property: POLYLINE_COUNTS must be defined when POLYLINES_LENGTH is greater than 0");let k=O.getPropertyArray("POLYLINE_WIDTHS",X.UNSIGNED_SHORT,1);if(!u(k)){k=new Uint16Array(S);for(let Z=0;Z<S;++Z)k[Z]=2}let V=F.reduce(function(Z,j){return Z+j*3},0),G=new Uint16Array(t,n,V);n+=g;let U=e._tileset,Y=U.examineVectorLinesFunction;if(u(Y)){let Z=MM(new Uint16Array(G),L,_,b,re.WGS84);u5e(Z,F,R.polylines,M,e.url,Y)}let W=a5e;u(U.classificationType)&&(W=c5e),e._polylines=W({positions:G,widths:k,counts:F,batchIds:R.polylines,minimumHeight:_,maximumHeight:b,center:I,rectangle:L,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:M,classificationType:U.classificationType,keepDecodedPositions:U.vectorKeepDecodedPositions})}if(v>0){let F=new Uint16Array(t,n,v*3);n+=m,e._points=new bM({positions:F,batchIds:R.points,minimumHeight:_,maximumHeight:b,rectangle:L,batchTable:M})}}function e9(e){let t=e.featuresLength;if(!u(e._features)&&t>0){let n=new Array(t);u(e._polygons)&&e._polygons.createFeatures(e,n),u(e._polylines)&&e._polylines.createFeatures(e,n),u(e._points)&&e._points.createFeatures(e,n),e._features=n}}rm.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};rm.prototype.getFeature=function(e){return u(this._features)||e9(this),this._features[e]};rm.prototype.applyDebugSettings=function(e,t){u(this._polygons)&&this._polygons.applyDebugSettings(e,t),u(this._polylines)&&this._polylines.applyDebugSettings(e,t),u(this._points)&&this._points.applyDebugSettings(e,t)};rm.prototype.applyStyle=function(e){u(this._features)||e9(this),u(this._polygons)&&this._polygons.applyStyle(e,this._features),u(this._polylines)&&this._polylines.applyStyle(e,this._features),u(this._points)&&this._points.applyStyle(e,this._features)};rm.prototype.update=function(e,t){let n=!0;u(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(t),n=n&&this._polygons.ready),u(this._polylines)&&(this._polylines.update(t),n=n&&this._polylines.ready),u(this._points)&&(this._points.update(t),n=n&&this._points.ready),u(this._batchTable)&&n&&(u(this._features)||e9(this),this._batchTable.update(e,t),this._ready=!0,this._resolveContent(this))};rm.prototype.getPolylinePositions=function(e){let t=this._polylines;if(u(t))return t.getPositions(e)};rm.prototype.isDestroyed=function(){return!1};rm.prototype.destroy=function(){return this._polygons=this._polygons&&this._polygons.destroy(),this._polylines=this._polylines&&this._polylines.destroy(),this._points=this._points&&this._points.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function u5e(e,t,n,i,r,o){let s=t.length,a=0;for(let c=0;c<s;c++){let l=t[c]*3,f=e.slice(a,a+l);a+=l,o(f,n[c],r,i)}}var RM=rm;var Mse={b3dm:function(e,t,n,i,r){return $h.fromB3dm(e,t,n,i,r)},pnts:function(e,t,n,i,r){return $h.fromPnts(e,t,n,i,r)},i3dm:function(e,t,n,i,r){return $h.fromI3dm(e,t,n,i,r)},cmpt:function(e,t,n,i,r){return UP.fromTileType(e,t,n,i,r,Mse)},externalTileset:function(e,t,n,i){return cM.fromJson(e,t,n,i)},geom:function(e,t,n,i,r){return new kP(e,t,n,i,r)},vctr:function(e,t,n,i,r){return new RM(e,t,n,i,r)},subt:function(e,t,n,i,r){return jT.fromSubtreeJson(e,t,n,void 0,i,r)},subtreeJson:function(e,t,n,i){return jT.fromSubtreeJson(e,t,n,i)},glb:function(e,t,n,i,r){if(i.byteLength<12)throw new de("Invalid glb content");let a=new DataView(i,r).getUint32(8,!0),c=new Uint8Array(i,r,a);return $h.fromGltf(e,t,n,c)},gltf:function(e,t,n,i){return $h.fromGltf(e,t,n,i)},geoJson:function(e,t,n,i){return $h.fromGeoJson(e,t,n,i)}},JA=Mse;var f5e={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},Hr=Object.freeze(f5e);var kd={BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",COMPOSITE:"cmpt",POINT_CLOUD:"pnts",VECTOR:"vctr",GEOMETRY:"geom",GLTF:"gltf",GLTF_BINARY:"glb",IMPLICIT_SUBTREE:"subt",IMPLICIT_SUBTREE_JSON:"subtreeJson",EXTERNAL_TILESET:"externalTileset",MULTIPLE_CONTENT:"multipleContent",GEOJSON:"geoJson",VOXEL_BINARY:"voxl",VOXEL_JSON:"voxelJson"};kd.isBinaryFormat=function(e){switch(e){case kd.BATCHED_3D_MODEL:case kd.INSTANCED_3D_MODEL:case kd.COMPOSITE:case kd.POINT_CLOUD:case kd.VECTOR:case kd.GEOMETRY:case kd.IMPLICIT_SUBTREE:case kd.VOXEL_BINARY:case kd.GLTF_BINARY:return!0;default:return!1}};var fs=Object.freeze(kd);var d5e={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0},_f=Object.freeze(d5e);var Ms={RENDER:0,PICK:1,SHADOW:2,PRELOAD:3,PRELOAD_FLIGHT:4,REQUEST_RENDER_MODE_DEFER_CHECK:5,MOST_DETAILED_PRELOAD:6,MOST_DETAILED_PICK:7,NUMBER_OF_PASSES:8},Zp=new Array(Ms.NUMBER_OF_PASSES);Zp[Ms.RENDER]=Object.freeze({pass:Ms.RENDER,isRender:!0,requestTiles:!0,ignoreCommands:!1});Zp[Ms.PICK]=Object.freeze({pass:Ms.PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});Zp[Ms.SHADOW]=Object.freeze({pass:Ms.SHADOW,isRender:!1,requestTiles:!0,ignoreCommands:!1});Zp[Ms.PRELOAD]=Object.freeze({pass:Ms.SHADOW,isRender:!1,requestTiles:!0,ignoreCommands:!0});Zp[Ms.PRELOAD_FLIGHT]=Object.freeze({pass:Ms.PRELOAD_FLIGHT,isRender:!1,requestTiles:!0,ignoreCommands:!0});Zp[Ms.REQUEST_RENDER_MODE_DEFER_CHECK]=Object.freeze({pass:Ms.REQUEST_RENDER_MODE_DEFER_CHECK,isRender:!1,requestTiles:!0,ignoreCommands:!0});Zp[Ms.MOST_DETAILED_PRELOAD]=Object.freeze({pass:Ms.MOST_DETAILED_PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});Zp[Ms.MOST_DETAILED_PICK]=Object.freeze({pass:Ms.MOST_DETAILED_PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});Ms.getPassOptions=function(e){return Zp[e]};var Br=Object.freeze(Ms);function Qp(e,t){this._tileset=e,this._tile=t,this.featurePropertiesDirty=!1}Object.defineProperties(Qp.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return!0}},readyPromise:{get:function(){return $("Empty3DTileContent.readyPromise","Empty3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Empty3DTileContent.ready to return true instead."),Promise.resolve(this)}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},metadata:{get:function(){},set:function(e){}},batchTable:{get:function(){}},group:{get:function(){},set:function(e){}}});Qp.prototype.hasProperty=function(e,t){return!1};Qp.prototype.getFeature=function(e){};Qp.prototype.applyDebugSettings=function(e,t){};Qp.prototype.applyStyle=function(e){};Qp.prototype.update=function(e,t){};Qp.prototype.isDestroyed=function(){return!1};Qp.prototype.destroy=function(){return ue(this)};var _E=Qp;function $p(e){e=y(e,y.EMPTY_OBJECT);let t=e.content,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties($p.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});$p.prototype.hasProperty=function(e){return Nn.hasProperty(e,this._properties,this._class)};$p.prototype.hasPropertyBySemantic=function(e){return Nn.hasPropertyBySemantic(e,this._properties,this._class)};$p.prototype.getPropertyIds=function(e){return Nn.getPropertyIds(this._properties,this._class,e)};$p.prototype.getProperty=function(e){return Nn.getProperty(e,this._properties,this._class)};$p.prototype.setProperty=function(e,t){return Nn.setProperty(e,t,this._properties,this._class)};$p.prototype.getPropertyBySemantic=function(e){return Nn.getPropertyBySemantic(e,this._properties,this._class)};$p.prototype.setPropertyBySemantic=function(e,t){return Nn.setPropertyBySemantic(e,t,this._properties,this._class)};var BM=$p;function t9(e,t){let n=ni(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!u(n))return;if(!u(e.schema)){t9._oneTimeWarning("findContentMetadata-missing-root-schema","Could not find a metadata schema for content metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(u(n.class)){let r=i[n.class];return new BM({content:n,class:r})}}t9._oneTimeWarning=Ot;var ZA=t9;function h5e(e,t){let n=e.metadataExtension;if(!u(n))return;let i=n.groups,r=ni(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"].group:t.group;if(typeof r=="number")return i[r];let o=n.groupIds.findIndex(function(s){return s===r});return o>=0?i[o]:void 0}var QA=h5e;function e_(e){e=y(e,y.EMPTY_OBJECT);let t=e.tile,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(e_.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});e_.prototype.hasProperty=function(e){return Nn.hasProperty(e,this._properties,this._class)};e_.prototype.hasPropertyBySemantic=function(e){return Nn.hasPropertyBySemantic(e,this._properties,this._class)};e_.prototype.getPropertyIds=function(e){return Nn.getPropertyIds(this._properties,this._class,e)};e_.prototype.getProperty=function(e){return Nn.getProperty(e,this._properties,this._class)};e_.prototype.setProperty=function(e,t){return Nn.setProperty(e,t,this._properties,this._class)};e_.prototype.getPropertyBySemantic=function(e){return Nn.getPropertyBySemantic(e,this._properties,this._class)};e_.prototype.setPropertyBySemantic=function(e,t){return Nn.setPropertyBySemantic(e,t,this._properties,this._class)};var LM=e_;function n9(e,t){let n=ni(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!u(n))return;if(!u(e.schema)){n9._oneTimeWarning("findTileMetadata-missing-root-schema","Could not find a metadata schema for tile metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(u(n.class)){let r=i[n.class];return new LM({tile:n,class:r})}}n9._oneTimeWarning=Ot;var NM=n9;function m5e(e){let t=new Uint8Array(e),n=Td(t);if(n==="glTF"&&(n="glb"),fs.isBinaryFormat(n))return{contentType:n,binaryPayload:t};let i=p5e(t);if(u(i.root))return{contentType:fs.EXTERNAL_TILESET,jsonPayload:i};if(u(i.asset))return{contentType:fs.GLTF,jsonPayload:i};if(u(i.tileAvailability))return{contentType:fs.IMPLICIT_SUBTREE_JSON,jsonPayload:i};if(u(i.type))return{contentType:fs.GEOJSON,jsonPayload:i};if(u(i.voxelTable))return{contentType:fs.VOXEL_JSON,jsonPayload:i};throw new de("Invalid tile content.")}function p5e(e){let t;try{t=Mr(e)}catch{throw new de("Invalid tile content.")}return t}var om=m5e;function zd(e,t,n,i){this._tileset=e,this._tile=t,this._tilesetResource=n,this._contents=[],this._contentsCreated=!1;let r=u(i.contents)?i.contents:i.content;this._innerContentHeaders=r,this._requestsInFlight=0,this._cancelCount=0;let o=this._innerContentHeaders.length;this._arrayFetchPromises=new Array(o),this._requests=new Array(o),this._ready=!1,this._resolveContent=void 0,this._readyPromise=new Promise(s=>{this._resolveContent=s}),this._innerContentResources=new Array(o),this._serverKeys=new Array(o);for(let s=0;s<o;s++){let a=n.getDerivedResource({url:r[s].uri}),c=Ua.getServerKey(a.getUrlComponent());this._innerContentResources[s]=a,this._serverKeys[s]=c}}Object.defineProperties(zd.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)if(e[n].featurePropertiesDirty)return!0;return!1},set:function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},ready:{get:function(){return this._contentsCreated?this._ready:!1}},readyPromise:{get:function(){return $("Multiple3DTileContent.readyPromise","Multiple3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Multiple3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},metadata:{get:function(){},set:function(){}},batchTable:{get:function(){}},group:{get:function(){},set:function(){}},innerContentUrls:{get:function(){return this._innerContentHeaders.map(function(e){return e.uri})}}});function i9(e,t){e._requestsInFlight+=t,e.tileset.statistics.numberOfPendingRequests+=t}function Rse(e,t){e._cancelCount++,e._tile._contentState=t;let n=e.tileset.statistics;n.numberOfPendingRequests-=e._requestsInFlight,n.numberOfAttemptedRequests+=e._requestsInFlight,e._requestsInFlight=0;let i=e._innerContentHeaders.length;e._arrayFetchPromises=new Array(i)}zd.prototype.requestInnerContents=function(){if(!_5e(this._serverKeys)){this.tileset.statistics.numberOfAttemptedRequests+=this._serverKeys.length;return}let e=this._innerContentHeaders;i9(this,e.length);let t=this._cancelCount;for(let n=0;n<e.length;n++)this._arrayFetchPromises[n]=g5e(this,n,t,this._tile._contentState);return y5e(this)};function _5e(e){let t={};for(let n=0;n<e.length;n++){let i=e[n];u(t[i])?t[i]++:t[i]=1}for(let n in t)if(t.hasOwnProperty(n)&&!Ua.serverHasOpenSlots(n,t[n]))return!1;return Ua.heapHasOpenSlots(e.length)}function g5e(e,t,n,i){let r=e._innerContentResources[t].clone(),o=e.tile,s=function(){return o._priority},a=e._serverKeys[t],c=new jr({throttle:!0,throttleByServer:!0,type:es.TILES3D,priorityFunction:s,serverKey:a});r.request=c,e._requests[t]=c;let l=r.fetchArrayBuffer();if(u(l))return l.then(function(f){if(!(n<e._cancelCount)){if(r.request.cancelled||r.request.state===ti.CANCELLED){Rse(e,i);return}return i9(e,-1),f}}).catch(function(f){if(!(n<e._cancelCount)){if(r.request.cancelled||r.request.state===ti.CANCELLED){Rse(e,i);return}i9(e,-1),Bse(e,t,f)}})}async function y5e(e){let t=e._cancelCount,n=await Promise.all(e._arrayFetchPromises);if(t<e._cancelCount)return;let i=n.map((o,s)=>A5e(e,o,s)),r=await Promise.all(i);return e._contentsCreated=!0,e._contents=r.filter(u),r}async function A5e(e,t,n){if(u(t))try{let i=om(t);if(i.contentType===fs.EXTERNAL_TILESET)throw new de("External tilesets are disallowed inside multiple contents");e._disableSkipLevelOfDetail=e._disableSkipLevelOfDetail||i.contentType===fs.GEOMETRY||i.contentType===fs.VECTOR;let r=e._tileset,o=e._innerContentResources[n],s=e._tile,a,c=JA[i.contentType];u(i.binaryPayload)?a=await Promise.resolve(c(r,s,o,i.binaryPayload.buffer,0)):a=await Promise.resolve(c(r,s,o,i.jsonPayload));let l=e._innerContentHeaders[n];if(s.hasImplicitContentMetadata){let d=s.implicitSubtree,p=s.implicitCoordinates;a.metadata=d.getContentMetadataView(p,n)}else s.hasImplicitContent||(a.metadata=ZA(r,l));let f=QA(r,l);return u(f)&&(a.group=new _A({metadata:f})),a}catch(i){Bse(e,n,i)}}function Bse(e,t,n){let i=e._tileset,r=e._innerContentResources[t].url,o=u(n.message)?n.message:n.toString();i.tileFailed.numberOfListeners>0?i.tileFailed.raiseEvent({url:r,message:o}):(console.log(`A content failed to load: ${r}`),console.log(`Error: ${o}`))}zd.prototype.cancelRequests=function(){for(let e=0;e<this._requests.length;e++){let t=this._requests[e];u(t)&&t.cancel()}};zd.prototype.hasProperty=function(e,t){return!1};zd.prototype.getFeature=function(e){};zd.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let r=0;r<i;++r)n[r].applyDebugSettings(e,t)};zd.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};zd.prototype.update=function(e,t){let n=this._contents,i=n.length,r=!0;for(let o=0;o<i;++o)n[o].update(e,t),r=r&&n[o].ready;!this._ready&&r&&(this._ready=!0,this._resolveContent(this))};zd.prototype.isDestroyed=function(){return!1};zd.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var FM=zd;var Gse=Yi(Vse(),1);var L5e=new h,N5e=new h,ey={};ey.computeArea2D=function(e){let t=e.length,n=0;for(let i=t-1,r=0;r<t;i=r++){let o=e[i],s=e[r];n+=o.x*s.y-s.x*o.y}return n*.5};ey.computeWindingOrder2D=function(e){return ey.computeArea2D(e)>0?$o.COUNTER_CLOCKWISE:$o.CLOCKWISE};ey.triangulate=function(e,t){let n=H.packArray(e);return(0,Gse.default)(n,t,2)};var Wse=new h,jse=new h,qse=new h,kse=new h,zse=new h,Hse=new h,t_=new h,Yse=new H,Xse=new H,Kse=new H,yE=new H;ey.computeSubdivision=function(e,t,n,i,r){r=y(r,P.RADIANS_PER_DEGREE);let o=u(i),s=n.slice(0),a,c=t.length,l=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let E=t[a];if(l[d++]=E.x,l[d++]=E.y,l[d++]=E.z,o){let S=i[a];f[p++]=S.x,f[p++]=S.y}}let g=[],m={},A=e.maximumRadius,x=P.chordLength(r,A),C=x*x;for(;s.length>0;){let E=s.pop(),S=s.pop(),v=s.pop(),D=h.fromArray(l,v*3,Wse),M=h.fromArray(l,S*3,jse),O=h.fromArray(l,E*3,qse),B,L,_;o&&(B=H.fromArray(f,v*2,Yse),L=H.fromArray(f,S*2,Xse),_=H.fromArray(f,E*2,Kse));let b=h.multiplyByScalar(h.normalize(D,kse),A,kse),w=h.multiplyByScalar(h.normalize(M,zse),A,zse),I=h.multiplyByScalar(h.normalize(O,Hse),A,Hse),R=h.magnitudeSquared(h.subtract(b,w,t_)),F=h.magnitudeSquared(h.subtract(w,I,t_)),k=h.magnitudeSquared(h.subtract(I,b,t_)),V=Math.max(R,F,k),G,U,Y;V>C?R===V?(G=`${Math.min(v,S)} ${Math.max(v,S)}`,a=m[G],u(a)||(U=h.add(D,M,t_),h.multiplyByScalar(U,.5,U),l.push(U.x,U.y,U.z),a=l.length/3-1,m[G]=a,o&&(Y=H.add(B,L,yE),H.multiplyByScalar(Y,.5,Y),f.push(Y.x,Y.y))),s.push(v,a,E),s.push(a,S,E)):F===V?(G=`${Math.min(S,E)} ${Math.max(S,E)}`,a=m[G],u(a)||(U=h.add(M,O,t_),h.multiplyByScalar(U,.5,U),l.push(U.x,U.y,U.z),a=l.length/3-1,m[G]=a,o&&(Y=H.add(L,_,yE),H.multiplyByScalar(Y,.5,Y),f.push(Y.x,Y.y))),s.push(S,a,v),s.push(a,E,v)):k===V&&(G=`${Math.min(E,v)} ${Math.max(E,v)}`,a=m[G],u(a)||(U=h.add(O,D,t_),h.multiplyByScalar(U,.5,U),l.push(U.x,U.y,U.z),a=l.length/3-1,m[G]=a,o&&(Y=H.add(_,B,yE),H.multiplyByScalar(Y,.5,Y),f.push(Y.x,Y.y))),s.push(E,a,S),s.push(a,v,S)):(g.push(v),g.push(S),g.push(E))}let T={attributes:{position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:l})},indices:g,primitiveType:Be.TRIANGLES};return o&&(T.attributes.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new ut(T)};var F5e=new me,U5e=new me,V5e=new me,c9=new me;ey.computeRhumbLineSubdivision=function(e,t,n,i,r){r=y(r,P.RADIANS_PER_DEGREE);let o=u(i),s=n.slice(0),a,c=t.length,l=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let v=t[a];if(l[d++]=v.x,l[d++]=v.y,l[d++]=v.z,o){let D=i[a];f[p++]=D.x,f[p++]=D.y}}let g=[],m={},A=e.maximumRadius,x=P.chordLength(r,A),C=new ga(void 0,void 0,e),T=new ga(void 0,void 0,e),E=new ga(void 0,void 0,e);for(;s.length>0;){let v=s.pop(),D=s.pop(),M=s.pop(),O=h.fromArray(l,M*3,Wse),B=h.fromArray(l,D*3,jse),L=h.fromArray(l,v*3,qse),_,b,w;o&&(_=H.fromArray(f,M*2,Yse),b=H.fromArray(f,D*2,Xse),w=H.fromArray(f,v*2,Kse));let I=e.cartesianToCartographic(O,F5e),R=e.cartesianToCartographic(B,U5e),F=e.cartesianToCartographic(L,V5e);C.setEndPoints(I,R);let k=C.surfaceDistance;T.setEndPoints(R,F);let V=T.surfaceDistance;E.setEndPoints(F,I);let G=E.surfaceDistance,U=Math.max(k,V,G),Y,W,Z,j,K;U>x?k===U?(Y=`${Math.min(M,D)} ${Math.max(M,D)}`,a=m[Y],u(a)||(W=C.interpolateUsingFraction(.5,c9),Z=(I.height+R.height)*.5,j=h.fromRadians(W.longitude,W.latitude,Z,e,t_),l.push(j.x,j.y,j.z),a=l.length/3-1,m[Y]=a,o&&(K=H.add(_,b,yE),H.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(M,a,v),s.push(a,D,v)):V===U?(Y=`${Math.min(D,v)} ${Math.max(D,v)}`,a=m[Y],u(a)||(W=T.interpolateUsingFraction(.5,c9),Z=(R.height+F.height)*.5,j=h.fromRadians(W.longitude,W.latitude,Z,e,t_),l.push(j.x,j.y,j.z),a=l.length/3-1,m[Y]=a,o&&(K=H.add(b,w,yE),H.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(D,a,M),s.push(a,v,M)):G===U&&(Y=`${Math.min(v,M)} ${Math.max(v,M)}`,a=m[Y],u(a)||(W=E.interpolateUsingFraction(.5,c9),Z=(F.height+I.height)*.5,j=h.fromRadians(W.longitude,W.latitude,Z,e,t_),l.push(j.x,j.y,j.z),a=l.length/3-1,m[Y]=a,o&&(K=H.add(w,_,yE),H.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(v,a,D),s.push(a,M,D)):(g.push(M),g.push(D),g.push(v))}let S={attributes:{position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:l})},indices:g,primitiveType:Be.TRIANGLES};return o&&(S.attributes.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new ut(S)};ey.scaleToGeodeticHeight=function(e,t,n,i){n=y(n,re.WGS84);let r=L5e,o=N5e;if(t=y(t,0),i=y(i,!0),u(e)){let s=e.length;for(let a=0;a<s;a+=3)h.fromArray(e,a,o),i&&(o=n.scaleToGeodeticSurface(o,o)),t!==0&&(r=n.geodeticSurfaceNormal(o,r),h.multiplyByScalar(r,t,r),h.add(o,r,o)),e[a]=o.x,e[a+1]=o.y,e[a+2]=o.z}return e};var ui=ey;var Jse=Math.cos,Zse=Math.sin,k5e=Math.sqrt,u9={};u9.computePosition=function(e,t,n,i,r,o,s){let a=t.radiiSquared,c=e.nwCorner,l=e.boundingRectangle,f=c.latitude-e.granYCos*i+r*e.granXSin,d=Jse(f),p=Zse(f),g=a.z*p,m=c.longitude+i*e.granYSin+r*e.granXCos,A=d*Jse(m),x=d*Zse(m),C=a.x*A,T=a.y*x,E=k5e(C*A+T*x+g*p);if(o.x=C/E,o.y=T/E,o.z=g/E,n){let S=e.stNwCorner;u(S)?(f=S.latitude-e.stGranYCos*i+r*e.stGranXSin,m=S.longitude+i*e.stGranYSin+r*e.stGranXCos,s.x=(m-e.stWest)*e.lonScalar,s.y=(f-e.stSouth)*e.latScalar):(s.x=(m-l.west)*e.lonScalar,s.y=(f-l.south)*e.latScalar)}};var z5e=new er,gf=new h,H5e=new me,vV=new h,l9=new Ii;function Qse(e,t,n,i,r,o,s){let a=Math.cos(t),c=i*a,l=n*a,f=Math.sin(t),d=i*f,p=n*f;gf=l9.project(e,gf),gf=h.subtract(gf,vV,gf);let g=er.fromRotation(t,z5e);gf=er.multiplyByVector(g,gf,gf),gf=h.add(gf,vV,gf),e=l9.unproject(gf,e),o-=1,s-=1;let m=e.latitude,A=m+o*p,x=m-c*s,C=m-c*s+o*p,T=Math.max(m,A,x,C),E=Math.min(m,A,x,C),S=e.longitude,v=S+o*l,D=S+s*d,M=S+s*d+o*l,O=Math.max(S,v,D,M),B=Math.min(S,v,D,M);return{north:T,south:E,east:O,west:B,granYCos:c,granYSin:d,granXCos:l,granXSin:p,nwCorner:e}}u9.computeOptions=function(e,t,n,i,r,o,s){let a=e.east,c=e.west,l=e.north,f=e.south,d=!1,p=!1;l===P.PI_OVER_TWO&&(d=!0),f===-P.PI_OVER_TWO&&(p=!0);let g,m=l-f;c>a?g=P.TWO_PI-c+a:g=a-c;let A=Math.ceil(g/t)+1,x=Math.ceil(m/t)+1,C=g/(A-1),T=m/(x-1),E=le.northwest(e,o),S=le.center(e,H5e);(n!==0||i!==0)&&(S.longitude<E.longitude&&(S.longitude+=P.TWO_PI),vV=l9.project(S,vV));let v=T,D=C,M=0,O=0,B=le.clone(e,r),L={granYCos:v,granYSin:M,granXCos:D,granXSin:O,nwCorner:E,boundingRectangle:B,width:A,height:x,northCap:d,southCap:p};if(n!==0){let _=Qse(E,n,C,T,S,A,x);l=_.north,f=_.south,a=_.east,c=_.west,L.granYCos=_.granYCos,L.granYSin=_.granYSin,L.granXCos=_.granXCos,L.granXSin=_.granXSin,B.north=l,B.south=f,B.east=a,B.west=c}if(i!==0){n=n-i;let _=le.northwest(B,s),b=Qse(_,n,C,T,S,A,x);L.stGranYCos=b.granYCos,L.stGranXCos=b.granXCos,L.stGranYSin=b.granYSin,L.stGranXSin=b.granXSin,L.stNwCorner=_,L.stWest=b.west,L.stSouth=b.south}return L};var ds=u9;var G5e=new ae,W5e=new ae,j5e=new h,q5e=new le;function $se(e,t){let n=e._ellipsoid,i=t.height,r=t.width,o=t.northCap,s=t.southCap,a=i,c=2,l=0,f=4;o&&(c-=1,a-=1,l+=1,f-=2),s&&(c-=1,a-=1,l+=1,f-=2),l+=c*r+2*a-f;let d=new Float64Array(l*3),p=0,g=0,m,A=j5e;if(o)ds.computePosition(t,n,!1,g,0,A),d[p++]=A.x,d[p++]=A.y,d[p++]=A.z;else for(m=0;m<r;m++)ds.computePosition(t,n,!1,g,m,A),d[p++]=A.x,d[p++]=A.y,d[p++]=A.z;for(m=r-1,g=1;g<i;g++)ds.computePosition(t,n,!1,g,m,A),d[p++]=A.x,d[p++]=A.y,d[p++]=A.z;if(g=i-1,!s)for(m=r-2;m>=0;m--)ds.computePosition(t,n,!1,g,m,A),d[p++]=A.x,d[p++]=A.y,d[p++]=A.z;for(m=0,g=i-2;g>0;g--)ds.computePosition(t,n,!1,g,m,A),d[p++]=A.x,d[p++]=A.y,d[p++]=A.z;let x=d.length/3*2,C=Ue.createTypedArray(d.length/3,x),T=0;for(let S=0;S<d.length/3-1;S++)C[T++]=S,C[T++]=S+1;C[T++]=d.length/3-1,C[T++]=0;let E=new ut({attributes:new dn,primitiveType:Be.LINES});return E.attributes.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),E.indices=C,E}function Y5e(e,t){let n=e._surfaceHeight,i=e._extrudedHeight,r=e._ellipsoid,o=i,s=n,a=$se(e,t),c=t.height,l=t.width,f=ui.scaleToGeodeticHeight(a.attributes.position.values,s,r,!1),d=f.length,p=new Float64Array(d*2);p.set(f);let g=ui.scaleToGeodeticHeight(a.attributes.position.values,o,r);p.set(g,d),a.attributes.position.values=p;let m=t.northCap,A=t.southCap,x=4;m&&(x-=1),A&&(x-=1);let C=(p.length/3+x)*2,T=Ue.createTypedArray(p.length/3,C);d=p.length/6;let E=0;for(let v=0;v<d-1;v++)T[E++]=v,T[E++]=v+1,T[E++]=v+d,T[E++]=v+d+1;T[E++]=d-1,T[E++]=0,T[E++]=d+d-1,T[E++]=d,T[E++]=0,T[E++]=d;let S;if(m)S=c-1;else{let v=l-1;T[E++]=v,T[E++]=v+d,S=l+c-2}if(T[E++]=S,T[E++]=S+d,!A){let v=l+S-1;T[E++]=v,T[E]=v+d}return a.indices=T,a}function xE(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.granularity,P.RADIANS_PER_DEGREE),i=y(e.ellipsoid,re.WGS84),r=y(e.rotation,0),o=y(e.height,0),s=y(e.extrudedHeight,o);this._rectangle=le.clone(t),this._granularity=n,this._ellipsoid=i,this._surfaceHeight=Math.max(o,s),this._rotation=r,this._extrudedHeight=Math.min(o,s),this._offsetAttribute=e.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}xE.packedLength=le.packedLength+re.packedLength+5;xE.pack=function(e,t,n){return n=y(n,0),le.pack(e._rectangle,t,n),n+=le.packedLength,re.pack(e._ellipsoid,t,n),n+=re.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._extrudedHeight,t[n]=y(e._offsetAttribute,-1),t};var eae=new le,tae=re.clone(re.UNIT_SPHERE),AE={rectangle:eae,ellipsoid:tae,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};xE.unpack=function(e,t,n){t=y(t,0);let i=le.unpack(e,t,eae);t+=le.packedLength;let r=re.unpack(e,t,tae);t+=re.packedLength;let o=e[t++],s=e[t++],a=e[t++],c=e[t++],l=e[t];return u(n)?(n._rectangle=le.clone(i,n._rectangle),n._ellipsoid=re.clone(r,n._ellipsoid),n._surfaceHeight=s,n._rotation=a,n._extrudedHeight=c,n._offsetAttribute=l===-1?void 0:l,n):(AE.granularity=o,AE.height=s,AE.rotation=a,AE.extrudedHeight=c,AE.offsetAttribute=l===-1?void 0:l,new xE(AE))};var X5e=new me;xE.createGeometry=function(e){let t=e._rectangle,n=e._ellipsoid,i=ds.computeOptions(t,e._granularity,e._rotation,0,q5e,X5e),r,o;if(P.equalsEpsilon(t.north,t.south,P.EPSILON10)||P.equalsEpsilon(t.east,t.west,P.EPSILON10))return;let s=e._surfaceHeight,a=e._extrudedHeight,c=!P.equalsEpsilon(s,a,0,P.EPSILON2),l;if(c){if(r=Y5e(e,i),u(e._offsetAttribute)){let p=r.attributes.position.values.length/3,g=new Uint8Array(p);e._offsetAttribute===nn.TOP?g=g.fill(1,0,p/2):(l=e._offsetAttribute===nn.NONE?0:1,g=g.fill(l)),r.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}let f=ae.fromRectangle3D(t,n,s,W5e),d=ae.fromRectangle3D(t,n,a,G5e);o=ae.union(f,d)}else{if(r=$se(e,i),r.attributes.position.values=ui.scaleToGeodeticHeight(r.attributes.position.values,s,n,!1),u(e._offsetAttribute)){let f=r.attributes.position.values.length;l=e._offsetAttribute===nn.NONE?0:1;let d=new Uint8Array(f/3).fill(l);r.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}o=ae.fromRectangle3D(t,n,s)}return new ut({attributes:r.attributes,indices:r.indices,primitiveType:Be.LINES,boundingSphere:o,offsetAttribute:e._offsetAttribute})};var ex=xE;function TE(e){this.rectangle=le.clone(e.rectangle),this.minimumHeight=y(e.minimumHeight,0),this.maximumHeight=y(e.maximumHeight,0),this.southwestCornerCartesian=new h,this.northeastCornerCartesian=new h,this.westNormal=new h,this.southNormal=new h,this.eastNormal=new h,this.northNormal=new h;let t=y(e.ellipsoid,re.WGS84);$5e(this,e.rectangle,t),this._orientedBoundingBox=void 0,this._boundingSphere=void 0,y(e.computeBoundingVolumes,!0)&&this.computeBoundingVolumes(t)}Object.defineProperties(TE.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});TE.prototype.computeBoundingVolumes=function(e){this._orientedBoundingBox=On.fromRectangle(this.rectangle,this.minimumHeight,this.maximumHeight,e),this._boundingSphere=ae.fromOrientedBoundingBox(this._orientedBoundingBox)};var nae=new h,wV=new h,iae=new h,K5e=new h,J5e=new h,Z5e=new h,Q5e=new h,yf=new me,rae=new cn(h.UNIT_X,0),CE=new vn;function $5e(e,t,n){n.cartographicToCartesian(le.southwest(t),e.southwestCornerCartesian),n.cartographicToCartesian(le.northeast(t),e.northeastCornerCartesian),yf.longitude=t.west,yf.latitude=(t.south+t.north)*.5,yf.height=0;let i=n.cartographicToCartesian(yf,Z5e),r=h.cross(i,h.UNIT_Z,K5e);h.normalize(r,e.westNormal),yf.longitude=t.east;let o=n.cartographicToCartesian(yf,Q5e),s=h.cross(h.UNIT_Z,o,nae);h.normalize(s,e.eastNormal);let a=h.subtract(i,o,nae);h.magnitude(a)===0&&(a=h.clone(r,a));let c=h.normalize(a,J5e),l=t.south,f;if(l>0){yf.longitude=(t.west+t.east)*.5,yf.latitude=l;let A=n.cartographicToCartesian(yf,CE.origin);h.clone(c,CE.direction);let x=cn.fromPointNormal(e.southwestCornerCartesian,e.westNormal,rae);Ji.rayPlane(CE,x,e.southwestCornerCartesian),f=n.geodeticSurfaceNormal(A,wV)}else f=n.geodeticSurfaceNormalCartographic(le.southeast(t),wV);let d=h.cross(f,a,iae);h.normalize(d,e.southNormal);let p=t.north,g;if(p<0){yf.longitude=(t.west+t.east)*.5,yf.latitude=p;let A=n.cartographicToCartesian(yf,CE.origin);h.negate(c,CE.direction);let x=cn.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,rae);Ji.rayPlane(CE,x,e.northeastCornerCartesian),g=n.geodeticSurfaceNormal(A,wV)}else g=n.geodeticSurfaceNormalCartographic(le.northwest(t),wV);let m=h.cross(a,g,iae);h.normalize(m,e.northNormal)}var e6e=new h,t6e=new h,n6e=new h(0,-1,0),i6e=new h(0,0,-1),oae=new h;function r6e(e,t){let n=t.camera,i=n.positionWC,r=n.positionCartographic,o=0;if(!le.contains(e.rectangle,r)){let l=e.southwestCornerCartesian,f=e.northeastCornerCartesian,d=e.westNormal,p=e.southNormal,g=e.eastNormal,m=e.northNormal;t.mode!==ne.SCENE3D&&(l=t.mapProjection.project(le.southwest(e.rectangle),e6e),l.z=l.y,l.y=l.x,l.x=0,f=t.mapProjection.project(le.northeast(e.rectangle),t6e),f.z=f.y,f.y=f.x,f.x=0,d=n6e,g=h.UNIT_Y,p=i6e,m=h.UNIT_Z);let A=h.subtract(i,l,oae),x=h.dot(A,d),C=h.dot(A,p),T=h.subtract(i,f,oae),E=h.dot(T,g),S=h.dot(T,m);x>0?o+=x*x:E>0&&(o+=E*E),C>0?o+=C*C:S>0&&(o+=S*S)}let s,a,c;if(t.mode===ne.SCENE3D?(s=r.height,a=e.minimumHeight,c=e.maximumHeight):(s=i.x,a=0,c=0),s>c){let l=s-c;o+=l*l}else if(s<a){let l=a-s;o+=l*l}return Math.sqrt(o)}TE.prototype.distanceToCamera=function(e){let t=r6e(this,e);if(e.mode===ne.SCENE3D&&u(this._orientedBoundingBox)){let n=Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC));return Math.max(t,n)}return t};TE.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};TE.prototype.createDebugVolume=function(e){let t=new N.clone(N.IDENTITY),n=new ex({rectangle:this.rectangle,height:this.minimumHeight,extrudedHeight:this.maximumHeight}),i=new xt({geometry:n,id:"outline",modelMatrix:t,attributes:{color:kt.fromColor(e)}});return new bn({geometryInstances:i,appearance:new rn({translucent:!1,flat:!0}),asynchronous:!1})};var Af=TE;var zM={},o6e=new h,sae=new h,aae=new h,cae=new h,lae=new On;zM.validOutline=function(e){let n=On.fromPoints(e,lae).halfAxes,i=Q.getColumn(n,0,sae),r=Q.getColumn(n,1,aae),o=Q.getColumn(n,2,cae),s=h.magnitude(i),a=h.magnitude(r),c=h.magnitude(o);return!(s===0&&(a===0||c===0)||a===0&&c===0)};zM.computeProjectTo2DArguments=function(e,t,n,i){let r=On.fromPoints(e,lae),o=r.halfAxes,s=Q.getColumn(o,0,sae),a=Q.getColumn(o,1,aae),c=Q.getColumn(o,2,cae),l=h.magnitude(s),f=h.magnitude(a),d=h.magnitude(c),p=Math.min(l,f,d);if(l===0&&(f===0||d===0)||f===0&&d===0)return!1;let g,m;return(p===f||p===d)&&(g=s),p===l?g=a:p===d&&(m=a),(p===l||p===f)&&(m=c),h.normalize(g,n),h.normalize(m,i),h.clone(r.center,t),!0};function uae(e,t,n,i,r){let o=h.subtract(e,t,o6e),s=h.dot(n,o),a=h.dot(i,o);return H.fromElements(s,a,r)}zM.createProjectPointsTo2DFunction=function(e,t,n){return function(i){let r=new Array(i.length);for(let o=0;o<i.length;o++)r[o]=uae(i[o],e,t,n);return r}};zM.createProjectPointTo2DFunction=function(e,t,n){return function(i,r){return uae(i,e,t,n,r)}};var n_=zM;function ty(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(ty.prototype,{length:{get:function(){return this._length}}});ty.prototype.enqueue=function(e){this._array.push(e),this._length++};ty.prototype.dequeue=function(){if(this._length===0)return;let e=this._array,t=this._offset,n=e[t];return e[t]=void 0,t++,t>10&&t*2>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,n};ty.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};ty.prototype.contains=function(e){return this._array.indexOf(e)!==-1};ty.prototype.clear=function(){this._array.length=this._offset=this._length=0};ty.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var ny=ty;var oo={};oo.computeHierarchyPackedLength=function(e,t){let n=0,i=[e];for(;i.length>0;){let r=i.pop();if(!u(r))continue;n+=2;let o=r.positions,s=r.holes;if(u(o)&&o.length>0&&(n+=o.length*t.packedLength),u(s)){let a=s.length;for(let c=0;c<a;++c)i.push(s[c])}}return n};oo.packPolygonHierarchy=function(e,t,n,i){let r=[e];for(;r.length>0;){let o=r.pop();if(!u(o))continue;let s=o.positions,a=o.holes;if(t[n++]=u(s)?s.length:0,t[n++]=u(a)?a.length:0,u(s)){let c=s.length;for(let l=0;l<c;++l,n+=i.packedLength)i.pack(s[l],t,n)}if(u(a)){let c=a.length;for(let l=0;l<c;++l)r.push(a[l])}}return n};oo.unpackPolygonHierarchy=function(e,t,n){let i=e[t++],r=e[t++],o=new Array(i),s=r>0?new Array(r):void 0;for(let a=0;a<i;++a,t+=n.packedLength)o[a]=n.unpack(e,t);for(let a=0;a<r;++a)s[a]=oo.unpackPolygonHierarchy(e,t,n),t=s[a].startingIndex,delete s[a].startingIndex;return{positions:o,holes:s,startingIndex:t}};var tx=new H;function mae(e,t,n,i){return H.subtract(t,e,tx),H.multiplyByScalar(tx,n/i,tx),H.add(e,tx,tx),[tx.x,tx.y]}var iy=new h;function s6e(e,t,n,i){return h.subtract(t,e,iy),h.multiplyByScalar(iy,n/i,iy),h.add(e,iy,iy),[iy.x,iy.y,iy.z]}oo.subdivideLineCount=function(e,t,n){let r=h.distance(e,t)/n,o=Math.max(0,Math.ceil(P.log2(r)));return Math.pow(2,o)};var f9=new me,d9=new me,a6e=new me,c6e=new h,fae=new ga;oo.subdivideRhumbLineCount=function(e,t,n,i){let r=e.cartesianToCartographic(t,f9),o=e.cartesianToCartographic(n,d9),a=new ga(r,o,e).surfaceDistance/i,c=Math.max(0,Math.ceil(P.log2(a)));return Math.pow(2,c)};oo.subdivideTexcoordLine=function(e,t,n,i,r,o){let s=oo.subdivideLineCount(n,i,r),a=H.distance(e,t),c=a/s,l=o;l.length=s*2;let f=0;for(let d=0;d<s;d++){let p=mae(e,t,d*c,a);l[f++]=p[0],l[f++]=p[1]}return l};oo.subdivideLine=function(e,t,n,i){let r=oo.subdivideLineCount(e,t,n),o=h.distance(e,t),s=o/r;u(i)||(i=[]);let a=i;a.length=r*3;let c=0;for(let l=0;l<r;l++){let f=s6e(e,t,l*s,o);a[c++]=f[0],a[c++]=f[1],a[c++]=f[2]}return a};oo.subdivideTexcoordRhumbLine=function(e,t,n,i,r,o,s){let a=n.cartesianToCartographic(i,f9),c=n.cartesianToCartographic(r,d9);fae.setEndPoints(a,c);let l=fae.surfaceDistance/o,f=Math.max(0,Math.ceil(P.log2(l))),d=Math.pow(2,f),p=H.distance(e,t),g=p/d,m=s;m.length=d*2;let A=0;for(let x=0;x<d;x++){let C=mae(e,t,x*g,p);m[A++]=C[0],m[A++]=C[1]}return m};oo.subdivideRhumbLine=function(e,t,n,i,r){let o=e.cartesianToCartographic(t,f9),s=e.cartesianToCartographic(n,d9),a=new ga(o,s,e),c=a.surfaceDistance/i,l=Math.max(0,Math.ceil(P.log2(c))),f=Math.pow(2,l),d=a.surfaceDistance/f;u(r)||(r=[]);let p=r;p.length=f*3;let g=0;for(let m=0;m<f;m++){let A=a.interpolateUsingSurfaceDistance(m*d,a6e),x=e.cartographicToCartesian(A,c6e);p[g++]=x.x,p[g++]=x.y,p[g++]=x.z}return p};var l6e=new h,u6e=new h,f6e=new h,d6e=new h;oo.scaleToGeodeticHeightExtruded=function(e,t,n,i,r){i=y(i,re.WGS84);let o=l6e,s=u6e,a=f6e,c=d6e;if(u(e)&&u(e.attributes)&&u(e.attributes.position)){let l=e.attributes.position.values,f=l.length/2;for(let d=0;d<f;d+=3)h.fromArray(l,d,a),i.geodeticSurfaceNormal(a,o),c=i.scaleToGeodeticSurface(a,c),s=h.multiplyByScalar(o,n,s),s=h.add(c,s,s),l[d+f]=s.x,l[d+1+f]=s.y,l[d+2+f]=s.z,r&&(c=h.clone(a,c)),s=h.multiplyByScalar(o,t,s),s=h.add(c,s,s),l[d]=s.x,l[d+1]=s.y,l[d+2]=s.z}return e};oo.polygonOutlinesFromHierarchy=function(e,t,n){let i=[],r=new ny;r.enqueue(e);let o,s,a;for(;r.length!==0;){let c=r.dequeue(),l=c.positions;if(t)for(a=l.length,o=0;o<a;o++)n.scaleToGeodeticSurface(l[o],l[o]);if(l=Er(l,h.equalsEpsilon,!0),l.length<3)continue;let f=c.holes?c.holes.length:0;for(o=0;o<f;o++){let d=c.holes[o],p=d.positions;if(t)for(a=p.length,s=0;s<a;++s)n.scaleToGeodeticSurface(p[s],p[s]);if(p=Er(p,h.equalsEpsilon,!0),p.length<3)continue;i.push(p);let g=0;for(u(d.holes)&&(g=d.holes.length),s=0;s<g;s++)r.enqueue(d.holes[s])}i.push(l)}return i};oo.polygonsFromHierarchy=function(e,t,n,i,r){let o=[],s=[],a=new ny;for(a.enqueue(e);a.length!==0;){let c=a.dequeue(),l=c.positions,f=c.holes,d,p;if(i)for(p=l.length,d=0;d<p;d++)r.scaleToGeodeticSurface(l[d],l[d]);if(t||(l=Er(l,h.equalsEpsilon,!0)),l.length<3)continue;let g=n(l);if(!u(g))continue;let m=[],A=ui.computeWindingOrder2D(g);A===$o.CLOCKWISE&&(g.reverse(),l=l.slice().reverse());let x=l.slice(),C=u(f)?f.length:0,T=[],E;for(d=0;d<C;d++){let S=f[d],v=S.positions;if(i)for(p=v.length,E=0;E<p;++E)r.scaleToGeodeticSurface(v[E],v[E]);if(t||(v=Er(v,h.equalsEpsilon,!0)),v.length<3)continue;let D=n(v);if(!u(D))continue;A=ui.computeWindingOrder2D(D),A===$o.CLOCKWISE&&(D.reverse(),v=v.slice().reverse()),T.push(v),m.push(x.length),x=x.concat(v),g=g.concat(D);let M=0;for(u(S.holes)&&(M=S.holes.length),E=0;E<M;E++)a.enqueue(S.holes[E])}o.push({outerRing:l,holes:T}),s.push({positions:x,positions2D:g,holes:m})}return{hierarchy:o,polygons:s}};var h6e=new H,m6e=new h,p6e=new Le,_6e=new Q;oo.computeBoundingRectangle=function(e,t,n,i,r){let o=Le.fromAxisAngle(e,i,p6e),s=Q.fromQuaternion(o,_6e),a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,l=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,d=n.length;for(let p=0;p<d;++p){let g=h.clone(n[p],m6e);Q.multiplyByVector(s,g,g);let m=t(g,h6e);u(m)&&(a=Math.min(a,m.x),c=Math.max(c,m.x),l=Math.min(l,m.y),f=Math.max(f,m.y))}return r.x=a,r.y=l,r.width=c-a,r.height=f-l,r};oo.createGeometryFromPositions=function(e,t,n,i,r,o,s){let a=ui.triangulate(t.positions2D,t.holes);a.length<3&&(a=[0,1,2]);let c=t.positions,l=u(n),f=l?n.positions:void 0;if(r){let d=c.length,p=new Array(d*3),g=0;for(let x=0;x<d;x++){let C=c[x];p[g++]=C.x,p[g++]=C.y,p[g++]=C.z}let m={attributes:{position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:p})},indices:a,primitiveType:Be.TRIANGLES};l&&(m.attributes.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:H.packArray(f)}));let A=new ut(m);return o.normal?Ln.computeNormal(A):A}if(s===Kt.GEODESIC)return ui.computeSubdivision(e,c,a,f,i);if(s===Kt.RHUMB)return ui.computeRhumbLineSubdivision(e,c,a,f,i)};var dae=[],hae=[],g6e=new h,y6e=new h;oo.computeWallGeometry=function(e,t,n,i,r,o){let s,a,c,l,f,d,p,g,m,A=e.length,x=0,C=0,T=u(t),E=T?t.positions:void 0;if(r)for(a=A*3*2,s=new Array(a*2),T&&(m=A*2*2,g=new Array(m*2)),c=0;c<A;c++)l=e[c],f=e[(c+1)%A],s[x]=s[x+a]=l.x,++x,s[x]=s[x+a]=l.y,++x,s[x]=s[x+a]=l.z,++x,s[x]=s[x+a]=f.x,++x,s[x]=s[x+a]=f.y,++x,s[x]=s[x+a]=f.z,++x,T&&(d=E[c],p=E[(c+1)%A],g[C]=g[C+m]=d.x,++C,g[C]=g[C+m]=d.y,++C,g[C]=g[C+m]=p.x,++C,g[C]=g[C+m]=p.y,++C);else{let O=P.chordLength(i,n.maximumRadius),B=0;if(o===Kt.GEODESIC)for(c=0;c<A;c++)B+=oo.subdivideLineCount(e[c],e[(c+1)%A],O);else if(o===Kt.RHUMB)for(c=0;c<A;c++)B+=oo.subdivideRhumbLineCount(n,e[c],e[(c+1)%A],O);for(a=(B+A)*3,s=new Array(a*2),T&&(m=(B+A)*2,g=new Array(m*2)),c=0;c<A;c++){l=e[c],f=e[(c+1)%A];let L,_;T&&(d=E[c],p=E[(c+1)%A]),o===Kt.GEODESIC?(L=oo.subdivideLine(l,f,O,hae),T&&(_=oo.subdivideTexcoordLine(d,p,l,f,O,dae))):o===Kt.RHUMB&&(L=oo.subdivideRhumbLine(n,l,f,O,hae),T&&(_=oo.subdivideTexcoordRhumbLine(d,p,n,l,f,O,dae)));let b=L.length;for(let w=0;w<b;++w,++x)s[x]=L[w],s[x+a]=L[w];if(s[x]=f.x,s[x+a]=f.x,++x,s[x]=f.y,s[x+a]=f.y,++x,s[x]=f.z,s[x+a]=f.z,++x,T){let w=_.length;for(let I=0;I<w;++I,++C)g[C]=_[I],g[C+m]=_[I];g[C]=p.x,g[C+m]=p.x,++C,g[C]=p.y,g[C+m]=p.y,++C}}}A=s.length;let S=Ue.createTypedArray(A/3,A-e.length*6),v=0;for(A/=6,c=0;c<A;c++){let O=c,B=O+1,L=O+A,_=L+1;l=h.fromArray(s,O*3,g6e),f=h.fromArray(s,B*3,y6e),!h.equalsEpsilon(l,f,P.EPSILON10,P.EPSILON10)&&(S[v++]=O,S[v++]=L,S[v++]=B,S[v++]=B,S[v++]=L,S[v++]=_)}let D={attributes:new dn({position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),indices:S,primitiveType:Be.TRIANGLES};return T&&(D.attributes.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),new ut(D)};var Yn=oo;function A6e(e){let t=e.length,n=new Float64Array(t*3),i=Ue.createTypedArray(t,t*2),r=0,o=0;for(let a=0;a<t;a++){let c=e[a];n[r++]=c.x,n[r++]=c.y,n[r++]=c.z,i[o++]=a,i[o++]=(a+1)%t}let s=new dn({position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n})});return new ut({attributes:s,indices:i,primitiveType:Be.LINES})}function nx(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy;this._polygonHierarchy=t,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=Yn.computeHierarchyPackedLength(t,h)+1}nx.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions}};return new nx(t)};nx.pack=function(e,t,n){return n=y(n,0),n=Yn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),t[n]=e.packedLength,t};var x6e={polygonHierarchy:{}};nx.unpack=function(e,t,n){t=y(t,0);let i=Yn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let r=e[t];return u(n)||(n=new nx(x6e)),n._polygonHierarchy=i,n.packedLength=r,n};nx.createGeometry=function(e){let t=e._polygonHierarchy,n=t.positions;if(n=Er(n,h.equalsEpsilon,!0),n.length<3||!n_.validOutline(n))return;let r=Yn.polygonOutlinesFromHierarchy(t,!1);if(r.length===0)return;let o=[];for(let c=0;c<r.length;c++){let l=new xt({geometry:A6e(r[c])});o.push(l)}let s=Ln.combineInstances(o)[0],a=ae.fromPoints(t.positions);return new ut({attributes:s.attributes,indices:s.indices,primitiveType:s.primitiveType,boundingSphere:a})};var xf=nx;var DV=new me;function HM(e){let t=wp.fromToken(e.token),n=y(e.minimumHeight,0),i=y(e.maximumHeight,0),r=y(e.ellipsoid,re.WGS84);this.s2Cell=t,this.minimumHeight=n,this.maximumHeight=i,this.ellipsoid=r;let o=I6e(t,n,i,r);this._boundingPlanes=o;let s=R6e(o);this._vertices=s,this._edgeNormals=new Array(6),this._edgeNormals[0]=x9(o[0],s.slice(0,4));let a;for(a=0;a<4;a++)this._edgeNormals[0][a]=h.negate(this._edgeNormals[0][a],this._edgeNormals[0][a]);for(this._edgeNormals[1]=x9(o[1],s.slice(4,8)),a=0;a<4;a++)this._edgeNormals[2+a]=x9(o[2+a],[s[a%4],s[(a+1)%4],s[4+(a+1)%4],s[4+a]]);for(this._planeVertices=[this._vertices.slice(0,4),this._vertices.slice(4,8)],a=0;a<4;a++)this._planeVertices.push([this._vertices[a%4],this._vertices[(a+1)%4],this._vertices[4+(a+1)%4],this._vertices[4+a]]);let c=t.getCenter();DV=r.cartesianToCartographic(c,DV),DV.height=(i+n)/2,this.center=r.cartographicToCartesian(DV,c),this._boundingSphere=ae.fromPoints(s)}var C6e=new h,T6e=new me,E6e=new h,b6e=new me,S6e=new h,v6e=new h,w6e=new h,D6e=new h;function I6e(e,t,n,i){let r=new Array(6),o=e.getCenter(),s=i.geodeticSurfaceNormal(o,C6e),a=i.cartesianToCartographic(o,T6e);a.height=n;let c=i.cartographicToCartesian(a,E6e),l=cn.fromPointNormal(c,s);r[0]=l;let f=0,d,p=[],g,m;for(d=0;d<4;d++){g=e.getVertex(d),p[d]=g,m=i.cartesianToCartographic(g,b6e),m.height=t;let x=cn.getPointDistance(l,i.cartographicToCartesian(m,S6e));x<f&&(f=x)}let A=cn.clone(l);for(A.normal=h.negate(A.normal,A.normal),A.distance=A.distance*-1+f,r[1]=A,d=0;d<4;d++){g=p[d];let x=p[(d+1)%4],C=i.geodeticSurfaceNormal(g,v6e),T=h.subtract(x,g,D6e),E=h.cross(T,C,w6e);E=h.normalize(E,E),r[2+d]=cn.fromPointNormal(g,E)}return r}var ix=new h,rx=new h,ox=new h,h9=new h,m9=new h,p9=new h,P6e=new h,O6e=new h,M6e=new h,_9=new h,g9=new h,y9=new h,ry=new h,sm=new Q;function pae(e,t,n){ix=e.normal,rx=t.normal,ox=n.normal,h9=h.multiplyByScalar(e.normal,-e.distance,h9),m9=h.multiplyByScalar(t.normal,-t.distance,m9),p9=h.multiplyByScalar(n.normal,-n.distance,p9),_9=h.multiplyByScalar(h.cross(rx,ox,P6e),h.dot(h9,ix),_9),g9=h.multiplyByScalar(h.cross(ox,ix,O6e),h.dot(m9,rx),g9),y9=h.multiplyByScalar(h.cross(ix,rx,M6e),h.dot(p9,ox),y9),sm[0]=ix.x,sm[1]=rx.x,sm[2]=ox.x,sm[3]=ix.y,sm[4]=rx.y,sm[5]=ox.y,sm[6]=ix.z,sm[7]=rx.z,sm[8]=ox.z;let i=Q.determinant(sm);return ry=h.add(_9,g9,ry),ry=h.add(ry,y9,ry),new h(ry.x/i,ry.y/i,ry.z/i)}function R6e(e){let t=new Array(8);for(let n=0;n<4;n++)t[n]=pae(e[0],e[2+(n+3)%4],e[2+n%4]),t[n+4]=pae(e[1],e[2+(n+3)%4],e[2+n%4]);return t}var A9=new h,EE=new h;function x9(e,t){let n=[];for(let i=0;i<4;i++)A9=h.subtract(t[(i+1)%4],t[i],A9),EE=h.cross(e.normal,A9,EE),EE=h.normalize(EE,EE),n[i]=h.clone(EE);return n}Object.defineProperties(HM.prototype,{boundingVolume:{get:function(){return this}},boundingSphere:{get:function(){return this._boundingSphere}}});var C9=new h;HM.prototype.distanceToCamera=function(e){let t=e.camera.positionWC,n=[],i=[],r;cn.getPointDistance(this._boundingPlanes[0],t)>0?(n.push(0),i.push(this._planeVertices[0]),r=this._edgeNormals[0]):cn.getPointDistance(this._boundingPlanes[1],t)>0&&(n.push(1),i.push(this._planeVertices[1]),r=this._edgeNormals[1]);let o,s;for(o=0;o<4;o++)s=2+o,cn.getPointDistance(this._boundingPlanes[s],t)>0&&(n.push(s),i.push(this._planeVertices[s]),r=this._edgeNormals[s]);if(n.length===0)return 0;let a,c;if(n.length===1)return c=this._boundingPlanes[n[0]],a=T9(cn.projectPointOntoPlane(c,t,C9),i[0],c,r),h.distance(a,t);if(n.length===2){if(n[0]===0){let p=[this._vertices[4*n[0]+(n[1]-2)],this._vertices[4*n[0]+(n[1]-2+1)%4]];return a=_ae(t,p[0],p[1]),h.distance(a,t)}let f=Number.MAX_VALUE,d;for(o=0;o<2;o++)c=this._boundingPlanes[n[o]],a=T9(cn.projectPointOntoPlane(c,t,C9),i[o],c,this._edgeNormals[n[o]]),d=h.distanceSquared(a,t),d<f&&(f=d);return Math.sqrt(f)}else if(n.length>3)return a=T9(cn.projectPointOntoPlane(this._boundingPlanes[1],t,C9),this._planeVertices[1],this._boundingPlanes[1],this._edgeNormals[1]),h.distance(a,t);let l=n[1]===2&&n[2]===5?0:1;return n[0]===0?h.distance(t,this._vertices[(n[1]-2+l)%4]):h.distance(t,this._vertices[4+(n[1]-2+l)%4])};var B6e=new h,L6e=new h;function _ae(e,t,n){let i=h.subtract(n,t,B6e),r=h.subtract(e,t,L6e),o=h.dot(i,r);if(o<=0)return t;let s=h.dot(i,i);return o>=s?n:(o=o/s,new h((1-o)*t.x+o*n.x,(1-o)*t.y+o*n.y,(1-o)*t.z+o*n.z))}var N6e=new cn(h.UNIT_X,0);function T9(e,t,n,i){let r=Number.MAX_VALUE,o,s,a;for(let c=0;c<t.length;c++){let l=cn.fromPointNormal(t[c],i[c],N6e);cn.getPointDistance(l,e)<0||(a=_ae(e,t[c],t[(c+1)%4]),o=h.distance(e,a),o<r&&(r=o,s=a))}return u(s)?s:e}HM.prototype.intersectPlane=function(e){let t=0,n=0;for(let i=0;i<this._vertices.length;i++)h.dot(e.normal,this._vertices[i])+e.distance<0?n++:t++;return t===this._vertices.length?Qt.INSIDE:n===this._vertices.length?Qt.OUTSIDE:Qt.INTERSECTING};HM.prototype.createDebugVolume=function(e){let t=new N.clone(N.IDENTITY),n=new xf({polygonHierarchy:{positions:this._planeVertices[0]}}),i=xf.createGeometry(n),r=new xt({geometry:i,id:"outline",modelMatrix:t,attributes:{color:kt.fromColor(e)}}),o=new xf({polygonHierarchy:{positions:this._planeVertices[1]}}),s=xf.createGeometry(o),a=new xt({geometry:s,id:"outline",modelMatrix:t,attributes:{color:kt.fromColor(e)}}),c=[];for(let l=0;l<4;l++){let f=new xf({polygonHierarchy:{positions:this._planeVertices[2+l]}}),d=xf.createGeometry(f);c[l]=new xt({geometry:d,id:"outline",modelMatrix:t,attributes:{color:kt.fromColor(e)}})}return new bn({geometryInstances:[c[0],c[1],c[2],c[3],a,r],appearance:new rn({translucent:!1,flat:!0}),asynchronous:!1})};var GM=HM;var F6e=new h(1,1,1),IV=Math.cos,PV=Math.sin;function bE(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,F6e),n=y(e.innerRadii,t),i=y(e.minimumClock,0),r=y(e.maximumClock,P.TWO_PI),o=y(e.minimumCone,0),s=y(e.maximumCone,P.PI),a=Math.round(y(e.stackPartitions,10)),c=Math.round(y(e.slicePartitions,8)),l=Math.round(y(e.subdivisions,128));this._radii=h.clone(t),this._innerRadii=h.clone(n),this._minimumClock=i,this._maximumClock=r,this._minimumCone=o,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._subdivisions=l,this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}bE.packedLength=2*h.packedLength+8;bE.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),n+=h.packedLength,h.pack(e._innerRadii,t,n),n+=h.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n++]=e._subdivisions,t[n]=y(e._offsetAttribute,-1),t};var gae=new h,yae=new h,i_={radii:gae,innerRadii:yae,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};bE.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,gae);t+=h.packedLength;let r=h.unpack(e,t,yae);t+=h.packedLength;let o=e[t++],s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t];return u(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(r,n._innerRadii),n._minimumClock=o,n._maximumClock=s,n._minimumCone=a,n._maximumCone=c,n._stackPartitions=l,n._slicePartitions=f,n._subdivisions=d,n._offsetAttribute=p===-1?void 0:p,n):(i_.minimumClock=o,i_.maximumClock=s,i_.minimumCone=a,i_.maximumCone=c,i_.stackPartitions=l,i_.slicePartitions=f,i_.subdivisions=d,i_.offsetAttribute=p===-1?void 0:p,new bE(i_))};bE.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,r=e._maximumClock,o=e._minimumCone,s=e._maximumCone,a=e._subdivisions,c=re.fromCartesian3(t),l=e._slicePartitions+1,f=e._stackPartitions+1;l=Math.round(l*Math.abs(r-i)/P.TWO_PI),f=Math.round(f*Math.abs(s-o)/P.PI),l<2&&(l=2),f<2&&(f=2);let d=0,p=1,g=n.x!==t.x||n.y!==t.y||n.z!==t.z,m=!1,A=!1;g&&(p=2,o>0&&(m=!0,d+=l),s<Math.PI&&(A=!0,d+=l));let x=a*p*(f+l),C=new Float64Array(x*3),T=2*(x+d-(l+f)*p),E=Ue.createTypedArray(x,T),S,v,D,M,O=0,B=new Array(f),L=new Array(f);for(S=0;S<f;S++)M=o+S*(s-o)/(f-1),B[S]=PV(M),L[S]=IV(M);let _=new Array(a),b=new Array(a);for(S=0;S<a;S++)D=i+S*(r-i)/(a-1),_[S]=PV(D),b[S]=IV(D);for(S=0;S<f;S++)for(v=0;v<a;v++)C[O++]=t.x*B[S]*b[v],C[O++]=t.y*B[S]*_[v],C[O++]=t.z*L[S];if(g)for(S=0;S<f;S++)for(v=0;v<a;v++)C[O++]=n.x*B[S]*b[v],C[O++]=n.y*B[S]*_[v],C[O++]=n.z*L[S];for(B.length=a,L.length=a,S=0;S<a;S++)M=o+S*(s-o)/(a-1),B[S]=PV(M),L[S]=IV(M);for(_.length=l,b.length=l,S=0;S<l;S++)D=i+S*(r-i)/(l-1),_[S]=PV(D),b[S]=IV(D);for(S=0;S<a;S++)for(v=0;v<l;v++)C[O++]=t.x*B[S]*b[v],C[O++]=t.y*B[S]*_[v],C[O++]=t.z*L[S];if(g)for(S=0;S<a;S++)for(v=0;v<l;v++)C[O++]=n.x*B[S]*b[v],C[O++]=n.y*B[S]*_[v],C[O++]=n.z*L[S];for(O=0,S=0;S<f*p;S++){let R=S*a;for(v=0;v<a-1;v++)E[O++]=R+v,E[O++]=R+v+1}let w=f*a*p;for(S=0;S<l;S++)for(v=0;v<a-1;v++)E[O++]=w+S+v*l,E[O++]=w+S+(v+1)*l;if(g)for(w=f*a*p+l*a,S=0;S<l;S++)for(v=0;v<a-1;v++)E[O++]=w+S+v*l,E[O++]=w+S+(v+1)*l;if(g){let R=f*a*p,F=R+a*l;if(m)for(S=0;S<l;S++)E[O++]=R+S,E[O++]=F+S;if(A)for(R+=a*l-l,F+=a*l-l,S=0;S<l;S++)E[O++]=R+S,E[O++]=F+S}let I=new dn({position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:C})});if(u(e._offsetAttribute)){let R=C.length,F=e._offsetAttribute===nn.NONE?0:1,k=new Uint8Array(R/3).fill(F);I.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:k})}return new ut({attributes:I,indices:E,primitiveType:Be.LINES,boundingSphere:ae.fromEllipsoid(c),offsetAttribute:e._offsetAttribute})};var fu=bE;function SE(e){let t=y(e.radius,1),i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,subdivisions:e.subdivisions};this._ellipsoidGeometry=new fu(i),this._workerName="createSphereOutlineGeometry"}SE.packedLength=fu.packedLength;SE.pack=function(e,t,n){return fu.pack(e._ellipsoidGeometry,t,n)};var U6e=new fu,sx={radius:void 0,radii:new h,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};SE.unpack=function(e,t,n){let i=fu.unpack(e,t,U6e);return sx.stackPartitions=i._stackPartitions,sx.slicePartitions=i._slicePartitions,sx.subdivisions=i._subdivisions,u(n)?(h.clone(i._radii,sx.radii),n._ellipsoidGeometry=new fu(sx),n):(sx.radius=i._radii.x,new SE(sx))};SE.createGeometry=function(e){return fu.createGeometry(e._ellipsoidGeometry)};var r_=SE;function vE(e,t){t===0&&(t=P.EPSILON7),this._boundingSphere=new ae(e,t)}Object.defineProperties(vE.prototype,{center:{get:function(){return this._boundingSphere.center}},radius:{get:function(){return this._boundingSphere.radius}},boundingVolume:{get:function(){return this._boundingSphere}},boundingSphere:{get:function(){return this._boundingSphere}}});vE.prototype.distanceToCamera=function(e){let t=this._boundingSphere;return Math.max(0,h.distance(t.center,e.camera.positionWC)-t.radius)};vE.prototype.intersectPlane=function(e){return ae.intersectPlane(this._boundingSphere,e)};vE.prototype.update=function(e,t){h.clone(e,this._boundingSphere.center),this._boundingSphere.radius=t};vE.prototype.createDebugVolume=function(e){let t=new r_({radius:this.radius}),n=N.fromTranslation(this.center,new N.clone(N.IDENTITY)),i=new xt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:kt.fromColor(e)}});return new bn({geometryInstances:i,appearance:new rn({translucent:!1,flat:!0}),asynchronous:!1})};var o_=vE;var V6e=new h,k6e=new h,z6e=new h,H6e=new h;function ax(e,t,n){n=h.cross(e,t,n);let i=h.magnitude(n);return h.multiplyByScalar(n,P.EPSILON7/i,n)}function E9(e,t){let n=h.normalize(e,H6e),i=h.equalsEpsilon(n,h.UNIT_X,P.EPSILON6)?h.UNIT_Y:h.UNIT_X;return ax(e,i,t)}function Aae(e){let t=Q.getColumn(e,0,V6e),n=Q.getColumn(e,1,k6e),i=Q.getColumn(e,2,z6e),r=h.equals(t,h.ZERO),o=h.equals(n,h.ZERO),s=h.equals(i,h.ZERO);return!r&&!o&&!s?e:r&&o&&s?(e[0]=P.EPSILON7,e[4]=P.EPSILON7,e[8]=P.EPSILON7,e):(r&&!o&&!s?t=ax(n,i,t):!r&&o&&!s?n=ax(t,i,n):!r&&!o&&s?i=ax(n,t,i):r?o?s||(t=E9(i,t),n=ax(i,t,n)):(t=E9(n,t),i=ax(n,t,i)):(n=E9(t,n),i=ax(n,t,i)),Q.setColumn(e,0,t,e),Q.setColumn(e,1,n,e),Q.setColumn(e,2,i,e),e)}function wE(e,t){t=Aae(t),this._orientedBoundingBox=new On(e,t),this._boundingSphere=ae.fromOrientedBoundingBox(this._orientedBoundingBox)}Object.defineProperties(wE.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});wE.prototype.distanceToCamera=function(e){return Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC))};wE.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};wE.prototype.update=function(e,t){h.clone(e,this._orientedBoundingBox.center),t=Aae(t),Q.clone(t,this._orientedBoundingBox.halfAxes),ae.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere)};wE.prototype.createDebugVolume=function(e){let t=new ld({minimum:new h(-1,-1,-1),maximum:new h(1,1,1)}),n=N.fromRotationTranslation(this.boundingVolume.halfAxes,this.boundingVolume.center),i=new xt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:kt.fromColor(e)}});return new bn({geometryInstances:i,appearance:new rn({translucent:!1,flat:!0}),asynchronous:!1})};var Cf=wE;function Zr(e,t,n,i){this._tileset=e,this._header=n;let r=u(n.contents),o=r&&n.contents.length>1||ni(n,"3DTILES_multiple_contents"),s=r&&!o?n.contents[0]:n.content;this._contentHeader=s,this.transform=u(n.transform)?N.unpack(n.transform):N.clone(N.IDENTITY);let a=u(i)?i.computedTransform:e.modelMatrix,c=N.multiply(a,this.transform,new N),l=u(i)?i._initialTransform:N.IDENTITY;this._initialTransform=N.multiply(l,this.transform,new N),this.computedTransform=c,this._boundingVolume=this.createBoundingVolume(n.boundingVolume,c),this._boundingVolume2D=void 0;let f;u(s)&&u(s.boundingVolume)&&(f=this.createBoundingVolume(s.boundingVolume,c)),this._contentBoundingVolume=f,this._contentBoundingVolume2D=void 0;let d;u(n.viewerRequestVolume)&&(d=this.createBoundingVolume(n.viewerRequestVolume,c)),this._viewerRequestVolume=d,this.geometricError=n.geometricError,this._geometricError=n.geometricError,u(this._geometricError)||(this._geometricError=u(i)?i._geometricError:e._geometricError,Zr._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead.")),this.updateGeometricErrorScale();let p;u(n.refine)?((n.refine==="replace"||n.refine==="add")&&Zr._deprecationWarning("lowercase-refine",`This tile uses a lowercase refine "${n.refine}". Instead use "${n.refine.toUpperCase()}".`),p=n.refine.toUpperCase()==="REPLACE"?Vr.REPLACE:Vr.ADD):u(i)?p=i.refine:p=Vr.REPLACE,this.refine=p,this.children=[],this.parent=i;let g,m=!1,A,x,C;if(t=ve.createIfNeeded(t),o)A=Hr.UNLOADED,x=t.clone();else if(u(s)){let v=s.uri;u(s.url)&&(Zr._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),v=s.url),v===""?(Zr._deprecationWarning("contentUriEmpty","content.uri property is an empty string, which creates a circular dependency, making this tileset invalid. Omit the content property instead"),g=new _E(e,this),m=!0,A=Hr.READY):(A=Hr.UNLOADED,x=t.getDerivedResource({url:v}),C=Ua.getServerKey(x.getUrlComponent()))}else g=new _E(e,this),m=!0,A=Hr.READY;this._content=g,this._contentResource=x,this._contentState=A,this._expiredContent=void 0,this._serverKey=C,this.hasEmptyContent=m,this.hasTilesetContent=!1,this.hasImplicitContent=!1,this.hasImplicitContentMetadata=!1,this.hasMultipleContents=o,this.metadata=NM(e,n),this.cacheNode=void 0;let T=n.expire,E,S;u(T)&&(E=T.duration,u(T.date)&&(S=ee.fromIso8601(T.date))),this.expireDuration=E,this.expireDate=S,this.lastStyleTime=0,this._optimChildrenWithinParent=_f.NOT_COMPUTED,this.clippingPlanesDirty=!1,this.priorityDeferred=!1,this.implicitTileset=void 0,this.implicitCoordinates=void 0,this.implicitSubtree=void 0,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._screenSpaceErrorProgressiveResolution=0,this._visibilityPlaneMask=0,this._visible=!1,this._inRequestVolume=!1,this._finalResolution=!0,this._depth=0,this._stackLength=0,this._selectionDepth=0,this._updatedVisibilityFrame=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._clippingPlanesState=0,this._debugBoundingVolume=void 0,this._debugContentBoundingVolume=void 0,this._debugViewerRequestVolume=void 0,this._debugColor=z.fromRandom({alpha:1}),this._debugColorizeTiles=!1,this._priority=0,this._priorityHolder=this,this._priorityProgressiveResolution=!1,this._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1,this._priorityReverseScreenSpaceError=0,this._foveatedFactor=0,this._wasMinPriorityChild=!1,this._loadTimestamp=new ee,this._commandsLength=0,this._color=void 0,this._colorDirty=!1,this._request=void 0}Zr._deprecationWarning=$;Object.defineProperties(Zr.prototype,{tileset:{get:function(){return this._tileset}},content:{get:function(){return this._content}},boundingVolume:{get:function(){return this._boundingVolume}},contentBoundingVolume:{get:function(){return y(this._contentBoundingVolume,this._boundingVolume)}},boundingSphere:{get:function(){return this._boundingVolume.boundingSphere}},isVisible:{get:function(){return this._visible&&this._inRequestVolume}},extras:{get:function(){return this._header.extras}},color:{get:function(){return u(this._color)||(this._color=new z),z.clone(this._color)},set:function(e){this._color=z.clone(e,this._color),this._colorDirty=!0}},hasRenderableContent:{get:function(){return!this.hasEmptyContent&&!this.hasTilesetContent&&!this.hasImplicitContent}},contentAvailable:{get:function(){return this.contentReady&&this.hasRenderableContent||u(this._expiredContent)&&!this.contentFailed}},contentReady:{get:function(){return this._contentState===Hr.READY}},contentUnloaded:{get:function(){return this._contentState===Hr.UNLOADED}},hasUnloadedRenderableContent:{get:function(){return this.hasRenderableContent&&this.contentUnloaded}},contentExpired:{get:function(){return this._contentState===Hr.EXPIRED}},contentFailed:{get:function(){return this._contentState===Hr.FAILED}},commandsLength:{get:function(){return this._commandsLength}}});var oy=new h;function G6e(e,t){let{tileset:n,boundingSphere:i}=e,{radius:r,center:o}=i,{camera:s}=t,a=h.multiplyByScalar(s.directionWC,e._centerZDepth,oy),c=h.add(s.positionWC,a,oy),l=h.subtract(c,o,oy);if(h.magnitude(l)>r){let S=h.normalize(l,oy),v=h.multiplyByScalar(S,r,oy),D=h.add(o,v,oy),M=h.subtract(D,s.positionWC,oy),O=h.normalize(M,oy);e._foveatedFactor=1-Math.abs(h.dot(s.directionWC,O))}else e._foveatedFactor=0;let p=e.refine===Vr.REPLACE,g=n.isSkippingLevelOfDetail;if(p&&!g||!n.foveatedScreenSpaceError||n.foveatedConeSize===1||e._priorityProgressiveResolution&&p&&g||n._pass===Br.PRELOAD_FLIGHT||n._pass===Br.PRELOAD)return!1;let m=1-Math.cos(s.frustum.fov*.5),A=n.foveatedConeSize*m;if(e._foveatedFactor<=A)return!1;let x=m-A,C=P.clamp((e._foveatedFactor-A)/x,0,1),T=n.foveatedInterpolationCallback(n.foveatedMinimumScreenSpaceErrorRelaxation,n.maximumScreenSpaceError,C),E=e._screenSpaceError===0&&u(e.parent)?e.parent._screenSpaceError*.5:e._screenSpaceError;return n.maximumScreenSpaceError-T<=E}var Tae=new ee;Zr.prototype.getScreenSpaceError=function(e,t,n){let i=this._tileset,r=y(n,1),o=u(this.parent)?this.parent.geometricError:i._scaledGeometricError,s=t?o:this.geometricError;if(s===0)return 0;let{camera:a,context:c}=e,l=a.frustum,f=c.drawingBufferWidth,d=c.drawingBufferHeight*r,p;if(e.mode===ne.SCENE2D||l instanceof en){let g=l.offCenterFrustum;u(g)&&(l=g);let m=Math.max(l.top-l.bottom,l.right-l.left)/Math.max(f,d);p=s/m}else{let g=Math.max(this._distanceToCamera,P.EPSILON7),m=l.sseDenominator;if(p=s*d/(g*m),i.dynamicScreenSpaceError){let A=i._dynamicScreenSpaceErrorComputedDensity,x=i.dynamicScreenSpaceErrorFactor,C=P.fog(g,A)*x;p-=C}}return p/=e.pixelRatio,p};function W6e(e,t){if(e.progressiveResolutionHeightFraction<=0||e.progressiveResolutionHeightFraction>.5)return!1;let n=t._screenSpaceErrorProgressiveResolution>e._maximumScreenSpaceError;t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1;let i=t.parent,r=e._maximumScreenSpaceError,o=t._screenSpaceErrorProgressiveResolution<=r,s=u(i)&&i._screenSpaceErrorProgressiveResolution>r;return o&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,n=!0),n}function j6e(e,t){let n=t.parent,r=u(n)&&(!e.isSkippingLevelOfDetail||t._screenSpaceError===0||n.hasTilesetContent||n.hasImplicitContent)?n._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-r}Zr.prototype.updateVisibility=function(e){let{parent:t,tileset:n}=this;if(this._updatedVisibilityFrame===n._updatedVisibilityFrame)return;let i=u(t)?t.computedTransform:n.modelMatrix,r=u(t)?t._visibilityPlaneMask:ts.MASK_INDETERMINATE;this.updateTransform(i),this._distanceToCamera=this.distanceToTile(e),this._centerZDepth=this.distanceToTileCenter(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._screenSpaceErrorProgressiveResolution=this.getScreenSpaceError(e,!1,n.progressiveResolutionHeightFraction),this._visibilityPlaneMask=this.visibility(e,r),this._visible=this._visibilityPlaneMask!==ts.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=j6e(n,this),this._priorityProgressiveResolution=W6e(n,this),this.priorityDeferred=G6e(this,e),this._updatedVisibilityFrame=n._updatedVisibilityFrame};Zr.prototype.updateExpiration=function(){if(u(this.expireDate)&&this.contentReady&&!this.hasEmptyContent&&!this.hasMultipleContents){let e=ee.now(Tae);ee.lessThan(this.expireDate,e)&&(this._contentState=Hr.EXPIRED,this._expiredContent=this._content)}};function q6e(e){if(!u(e.expireDuration))return;let t=ee.now(Tae);ee.addSeconds(t,e.expireDuration,t),u(e.expireDate)?ee.lessThan(e.expireDate,t)&&ee.clone(t,e.expireDate):e.expireDate=ee.clone(t)}function Y6e(e){return function(){return e._priority}}Zr.prototype.requestContent=function(){if(!this.hasEmptyContent)return this.hasMultipleContents?X6e(this):J6e(this)};function X6e(e){let t=e._content,n=e._tileset;if(!u(t)){let r=ni(e._header,"3DTILES_multiple_contents")?e._header.extensions["3DTILES_multiple_contents"]:e._header;t=new FM(n,e,e._contentResource.clone(),r),e._content=t}let i=t.requestInnerContents();if(u(i))return e._contentState=Hr.LOADING,i.then(r=>{if(!e.isDestroyed()&&u(r))return e._contentState=Hr.PROCESSING,t}).catch(r=>{if(!e.isDestroyed())throw e._contentState=Hr.FAILED,r})}async function K6e(e,t,n,i,r){let o=e._contentState;e._contentState=Hr.LOADING,++t.statistics.numberOfPendingRequests;let s;try{s=await r}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;if(n.cancelled||n.state===ti.CANCELLED){e._contentState=o,++t.statistics.numberOfAttemptedRequests;return}throw e._contentState=Hr.FAILED,a}if(e.isDestroyed()){--t.statistics.numberOfPendingRequests;return}if(n.cancelled||n.state===ti.CANCELLED){e._contentState=o,--t.statistics.numberOfPendingRequests,++t.statistics.numberOfAttemptedRequests;return}try{let a=await Z6e(e,s);return--t.statistics.numberOfPendingRequests,e.isDestroyed()?void 0:(i&&(e.expireDate=void 0),e._content=a,e._contentState=Hr.PROCESSING,a)}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;throw e._contentState=Hr.FAILED,a}}function J6e(e){let t=e._contentResource.clone(),n=e.contentExpired;n&&t.setQueryParameters({expired:e.expireDate.toString()});let i=new jr({throttle:!0,throttleByServer:!0,type:es.TILES3D,priorityFunction:Y6e(e),serverKey:e._serverKey});e._request=i,t.request=i;let r=e._tileset,o=t.fetchArrayBuffer();if(!u(o)){++r.statistics.numberOfAttemptedRequests;return}return K6e(e,r,i,n,o)}async function Z6e(e,t){let n=om(t),i=e._tileset;i._disableSkipLevelOfDetail=i._disableSkipLevelOfDetail||n.contentType===fs.GEOMETRY||n.contentType===fs.VECTOR,(n.contentType===fs.IMPLICIT_SUBTREE||n.contentType===fs.IMPLICIT_SUBTREE_JSON)&&(e.hasImplicitContent=!0),n.contentType===fs.EXTERNAL_TILESET&&(e.hasTilesetContent=!0);let r,o=JA[n.contentType];if(e.isDestroyed())return;u(n.binaryPayload)?r=await Promise.resolve(o(i,e,e._contentResource,n.binaryPayload.buffer,0)):r=await Promise.resolve(o(i,e,e._contentResource,n.jsonPayload));let s=e._contentHeader;if(e.hasImplicitContentMetadata){let c=e.implicitSubtree,l=e.implicitCoordinates;r.metadata=c.getContentMetadataView(l,0)}else e.hasImplicitContent||(r.metadata=ZA(i,s));let a=QA(i,s);return u(a)&&(r.group=new _A({metadata:a})),r}Zr.prototype.cancelRequests=function(){this.hasMultipleContents?this._content.cancelRequests():this._request.cancel()};Zr.prototype.unloadContent=function(){this.hasRenderableContent&&(this._content=this._content&&this._content.destroy(),this._contentState=Hr.UNLOADED,this.lastStyleTime=0,this.clippingPlanesDirty=this._clippingPlanesState===0,this._clippingPlanesState=0,this._debugColorizeTiles=!1,this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy())};var Eae=new ae;function S9(e,t){if(t.mode!==ne.SCENE3D&&!u(e._boundingVolume2D)){let n=e._boundingVolume.boundingSphere,i=ae.projectTo2D(n,t.mapProjection,Eae);e._boundingVolume2D=new o_(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._boundingVolume2D:e._boundingVolume}function Q6e(e,t){if(t.mode!==ne.SCENE3D&&!u(e._contentBoundingVolume2D)){let n=e._contentBoundingVolume.boundingSphere,i=ae.projectTo2D(n,t.mapProjection,Eae);e._contentBoundingVolume2D=new o_(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._contentBoundingVolume2D:e._contentBoundingVolume}Zr.prototype.visibility=function(e,t){let n=e.cullingVolume,i=S9(this,e),r=this._tileset,o=r.clippingPlanes;if(u(o)&&o.enabled){let s=o.computeIntersectionWithBoundingVolume(i,r.clippingPlanesOriginMatrix);if(this._isClipped=s!==Qt.INSIDE,s===Qt.OUTSIDE)return ts.MASK_OUTSIDE}return n.computeVisibilityWithPlaneMask(i,t)};Zr.prototype.contentVisibility=function(e){if(!u(this._contentBoundingVolume))return Qt.INSIDE;if(this._visibilityPlaneMask===ts.MASK_INSIDE)return Qt.INSIDE;let t=e.cullingVolume,n=Q6e(this,e),i=this._tileset,r=i.clippingPlanes;if(u(r)&&r.enabled){let o=r.computeIntersectionWithBoundingVolume(n,i.clippingPlanesOriginMatrix);if(this._isClipped=o!==Qt.INSIDE,o===Qt.OUTSIDE)return Qt.OUTSIDE}return t.computeVisibility(n)};Zr.prototype.distanceToTile=function(e){return S9(this,e).distanceToCamera(e)};var $6e=new h;Zr.prototype.distanceToTileCenter=function(e){let n=S9(this,e).boundingVolume,i=h.subtract(n.center,e.camera.positionWC,$6e);return h.dot(e.camera.directionWC,i)};Zr.prototype.insideViewerRequestVolume=function(e){let t=this._viewerRequestVolume;return!u(t)||t.distanceToCamera(e)===0};var bae=new Q,Sae=new h,e9e=new Q,vae=new h,wae=new le,t9e=new On,b9=new N;function n9e(e,t,n){let i=h.fromElements(e[0],e[1],e[2],vae),r=Q.fromArray(e,3,e9e);i=N.multiplyByPoint(t,i,i);let o=N.getMatrix3(t,bae);return r=Q.multiply(o,r,r),u(n)?(n.update(i,r),n):new Cf(i,r)}function i9e(e,t,n,i){let r=le.unpack(e,0,wae),o=e[4],s=e[5],a=On.fromRectangle(r,o,s,re.WGS84,t9e),c=a.center,l=a.halfAxes;t=N.multiplyTransformation(t,N.inverseTransformation(n,b9),b9),c=N.multiplyByPoint(t,c,c);let f=N.getMatrix3(t,bae);return l=Q.multiply(f,l,l),u(i)&&i instanceof Cf?(i.update(c,l),i):new Cf(c,l)}function r9e(e,t,n,i){if(!N.equalsEpsilon(t,n,P.EPSILON8))return i9e(e,t,n,i);if(u(i))return i;let r=le.unpack(e,0,wae);return new Af({rectangle:r,minimumHeight:e[4],maximumHeight:e[5]})}function o9e(e,t,n){let i=h.fromElements(e[0],e[1],e[2],vae),r=e[3];i=N.multiplyByPoint(t,i,i);let o=N.getScale(t,Sae),s=h.maximumComponent(o);return r*=s,u(n)?(n.update(i,r),n):new o_(i,r)}Zr.prototype.createBoundingVolume=function(e,t,n){if(!u(e))throw new de("boundingVolume must be defined");if(ni(e,"3DTILES_bounding_volume_S2"))return new GM(e.extensions["3DTILES_bounding_volume_S2"]);let{box:i,region:r,sphere:o}=e;if(u(i))return n9e(i,t,n);if(u(r))return r9e(r,t,this._initialTransform,n);if(u(o))return o9e(o,t,n);throw new de("boundingVolume must contain a sphere, region, or box")};Zr.prototype.updateTransform=function(e){e=y(e,N.IDENTITY);let t=N.multiplyTransformation(e,this.transform,b9);if(!!N.equals(t,this.computedTransform))return;N.clone(t,this.computedTransform);let i=this._header,r=this._contentHeader;this._boundingVolume=this.createBoundingVolume(i.boundingVolume,this.computedTransform,this._boundingVolume),u(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),u(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(i.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()};Zr.prototype.updateGeometricErrorScale=function(){let e=N.getScale(this.computedTransform,Sae),t=h.maximumComponent(e);if(this.geometricError=this._geometricError*t,!u(this.parent)){let n=this._tileset;n._scaledGeometricError=n._geometricError*t}};function s9e(e,t,n,i){if(!i.isRender)return;let r=u(e._contentHeader)&&u(e._contentHeader.boundingVolume),o=t.debugShowBoundingVolume||t.debugShowContentBoundingVolume&&!r;if(o){let c;e._finalResolution?e.hasRenderableContent?c=z.WHITE:c=z.DARKGRAY:c=z.YELLOW,u(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(c)),e._debugBoundingVolume.update(n);let l=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");l.color=kt.toValue(c,l.color)}else!o&&u(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&r?(u(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(z.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&u(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&u(e._viewerRequestVolume)?(u(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(z.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&u(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());let s=t.debugColorizeTiles&&!e._debugColorizeTiles||u(t._heatmap.tilePropertyName),a=!t.debugColorizeTiles&&e._debugColorizeTiles;s?(t._heatmap.colorize(e,n),e._debugColorizeTiles=!0,e.color=e._debugColor):a&&(e._debugColorizeTiles=!1,e.color=z.WHITE),e._colorDirty&&(e._colorDirty=!1,e._content.applyDebugSettings(!0,e._color)),a&&t.makeStyleDirty()}function a9e(e,t,n){let i=e._expiredContent;if(!e.hasMultipleContents&&u(i)){if(!e.contentReady){try{i.update(t,n)}catch{}return}e._expiredContent.destroy(),e._expiredContent=void 0}if(u(e.content))try{e.content.update(t,n)}catch(r){throw e._contentState=Hr.FAILED,r}}function c9e(e,t){let n=t.clippingPlanes,i=0;u(n)&&e._isClipped&&n.enabled&&(i=n.clippingPlanesState),i!==e._clippingPlanesState&&(e._clippingPlanesState=i,e.clippingPlanesDirty=!0)}Zr.prototype.update=function(e,t,n){let{commandList:i}=t,r=i.length;c9e(this,e),s9e(this,e,t,n),a9e(this,e,t);let o=i.length;this._commandsLength=o-r;for(let s=r;s<o;++s){let a=i[s],c=a.pass===be.TRANSLUCENT;a.depthForTranslucentClassification=c}this.clippingPlanesDirty=!1};var xae=[];Zr.prototype.process=function(e,t){!this.contentExpired&&!this.contentReady&&this._content.ready&&(q6e(this),this._selectedFrame=0,this.lastStyleTime=0,ee.now(this._loadTimestamp),this._contentState=Hr.READY,!this.hasTilesetContent&&!this.hasImplicitContent&&(e._statistics.incrementLoadCounts(this.content),++e._statistics.numberOfTilesWithContentReady,++e._statistics.numberOfLoadedTilesTotal,e._cache.add(this)));let n=t.commandList;t.commandList=xae;try{this._content.update(e,t)}catch(i){throw this._contentState=Hr.FAILED,i}xae.length=0,t.commandList=n};function Cae(e,t,n){let i=e*Math.pow(10,t);return parseInt(i)*Math.pow(10,n)}function OV(e,t,n){return Math.max(P.normalize(e,t,n)-P.EPSILON7,0)}Zr.prototype.updatePriority=function(){let e=this.tileset,t=e.preferLeaves,n=e._minimumPriority,i=e._maximumPriority,r=4,o=1,s=0,a=r,c=s+a,l=r,f=c+l,d=o,p=Math.pow(10,f),g=f+d,m=o,A=Math.pow(10,g),x=g+m,C=Math.pow(10,x),T=OV(this._depth,n.depth,i.depth);T=t?1-T:T;let S=!e.isSkippingLevelOfDetail&&this.refine===Vr.REPLACE?OV(this._priorityHolder._distanceToCamera,n.distance,i.distance):OV(this._priorityReverseScreenSpaceError,n.reverseScreenSpaceError,i.reverseScreenSpaceError),v=Cae(S,a,s),D=this._priorityProgressiveResolution?0:p,M=OV(this._priorityHolder._foveatedFactor,n.foveatedFactor,i.foveatedFactor),O=Cae(M,l,c),B=this.priorityDeferred?A:0,L=e._pass===Br.PRELOAD_FLIGHT?0:C;this._priority=T+v+D+O+B+L};Zr.prototype.isDestroyed=function(){return!1};Zr.prototype.destroy=function(){return this._content=this._content&&this._content.destroy(),this._expiredContent=this._expiredContent&&!this._expiredContent.isDestroyed()&&this._expiredContent.destroy(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy(),ue(this)};var Tf=Zr;function s_(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.group,i=e.class,r=u(n.properties)?n.properties:{};this._class=i,this._properties=r,this._id=t,this._extras=n.extras,this._extensions=n.extensions}Object.defineProperties(s_.prototype,{class:{get:function(){return this._class}},id:{get:function(){return this._id}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});s_.prototype.hasProperty=function(e){return Nn.hasProperty(e,this._properties,this._class)};s_.prototype.hasPropertyBySemantic=function(e){return Nn.hasPropertyBySemantic(e,this._properties,this._class)};s_.prototype.getPropertyIds=function(e){return Nn.getPropertyIds(this._properties,this._class,e)};s_.prototype.getProperty=function(e){return Nn.getProperty(e,this._properties,this._class)};s_.prototype.setProperty=function(e,t){return Nn.setProperty(e,t,this._properties,this._class)};s_.prototype.getPropertyBySemantic=function(e){return Nn.getPropertyBySemantic(e,this._properties,this._class)};s_.prototype.setPropertyBySemantic=function(e,t){return Nn.setPropertyBySemantic(e,t,this._properties,this._class)};var DE=s_;function a_(e){e=y(e,y.EMPTY_OBJECT);let t=e.tileset,n=e.class,i=u(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(a_.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});a_.prototype.hasProperty=function(e){return Nn.hasProperty(e,this._properties,this._class)};a_.prototype.hasPropertyBySemantic=function(e){return Nn.hasPropertyBySemantic(e,this._properties,this._class)};a_.prototype.getPropertyIds=function(e){return Nn.getPropertyIds(this._properties,this._class,e)};a_.prototype.getProperty=function(e){return Nn.getProperty(e,this._properties,this._class)};a_.prototype.setProperty=function(e,t){return Nn.setProperty(e,t,this._properties,this._class)};a_.prototype.getPropertyBySemantic=function(e){return Nn.getPropertyBySemantic(e,this._properties,this._class)};a_.prototype.setPropertyBySemantic=function(e,t){return Nn.setPropertyBySemantic(e,t,this._properties,this._class)};var WM=a_;function Dae(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataJson,n=e.schema,i=y(t.metadata,t.tileset),r;u(i)&&(r=new WM({tileset:i,class:n.classes[i.class]}));let o=[],s=[],a=t.groups;if(Array.isArray(a)){let c=a.length;for(let l=0;l<c;l++){let f=a[l];s.push(new DE({group:f,class:n.classes[f.class]}))}}else if(u(a)){o=Object.keys(a).sort();let c=o.length;for(let l=0;l<c;l++){let f=o[l];if(a.hasOwnProperty(f)){let d=a[f];s.push(new DE({id:f,group:a[f],class:n.classes[d.class]}))}}}this._schema=n,this._groups=s,this._groupIds=o,this._tileset=r,this._statistics=t.statistics,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Dae.prototype,{schema:{get:function(){return this._schema}},groups:{get:function(){return this._groups}},groupIds:{get:function(){return this._groupIds}},tileset:{get:function(){return this._tileset}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var sy=Dae;var Iae={},l9e=new h;Iae.checkChildrenWithinParent=function(e){let t=e.children,n=t.length,i=e.boundingVolume;if(i instanceof Cf||i instanceof Af){let r=i._orientedBoundingBox;e._optimChildrenWithinParent=_f.USE_OPTIMIZATION;for(let o=0;o<n;++o){let a=t[o].boundingVolume;if(!(a instanceof Cf||a instanceof Af)){e._optimChildrenWithinParent=_f.SKIP_OPTIMIZATION;break}let c=a._orientedBoundingBox,l=h.subtract(c.center,r.center,l9e),f=h.magnitude(l);h.divideByScalar(l,f,l);let d=Math.abs(r.halfAxes[0]*l.x)+Math.abs(r.halfAxes[1]*l.y)+Math.abs(r.halfAxes[2]*l.z)+Math.abs(r.halfAxes[3]*l.x)+Math.abs(r.halfAxes[4]*l.y)+Math.abs(r.halfAxes[5]*l.z)+Math.abs(r.halfAxes[6]*l.x)+Math.abs(r.halfAxes[7]*l.y)+Math.abs(r.halfAxes[8]*l.z),p=Math.abs(c.halfAxes[0]*l.x)+Math.abs(c.halfAxes[1]*l.y)+Math.abs(c.halfAxes[2]*l.z)+Math.abs(c.halfAxes[3]*l.x)+Math.abs(c.halfAxes[4]*l.y)+Math.abs(c.halfAxes[5]*l.z)+Math.abs(c.halfAxes[6]*l.x)+Math.abs(c.halfAxes[7]*l.y)+Math.abs(c.halfAxes[8]*l.z);if(d<=p+f){e._optimChildrenWithinParent=_f.SKIP_OPTIMIZATION;break}}}return e._optimChildrenWithinParent===_f.USE_OPTIMIZATION};var jM=Iae;function qM(){this.head=void 0,this.tail=void 0,this._length=0}Object.defineProperties(qM.prototype,{length:{get:function(){return this._length}}});function u9e(e,t,n){this.item=e,this.previous=t,this.next=n}qM.prototype.add=function(e){let t=new u9e(e,this.tail,void 0);return u(this.tail)?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t};function Pae(e,t){u(t.previous)&&u(t.next)?(t.previous.next=t.next,t.next.previous=t.previous):u(t.previous)?(t.previous.next=void 0,e.tail=t.previous):u(t.next)?(t.next.previous=void 0,e.head=t.next):(e.head=void 0,e.tail=void 0),t.next=void 0,t.previous=void 0}qM.prototype.remove=function(e){u(e)&&(Pae(this,e),--this._length)};qM.prototype.splice=function(e,t){if(e===t)return;Pae(this,t);let n=e.next;e.next=t,this.tail===e?this.tail=t:n.previous=t,t.next=n,t.previous=e};var YM=qM;function cx(){this._list=new YM,this._sentinel=this._list.add(),this._trimTiles=!1}cx.prototype.reset=function(){this._list.splice(this._list.tail,this._sentinel)};cx.prototype.touch=function(e){let t=e.cacheNode;u(t)&&this._list.splice(this._sentinel,t)};cx.prototype.add=function(e){u(e.cacheNode)||(e.cacheNode=this._list.add(e))};cx.prototype.unloadTile=function(e,t,n){let i=t.cacheNode;u(i)&&(this._list.remove(i),t.cacheNode=void 0,n(e,t))};cx.prototype.unloadTiles=function(e,t){let n=this._trimTiles;this._trimTiles=!1;let i=this._list,r=e.maximumMemoryUsage*1024*1024,o=this._sentinel,s=i.head;for(;s!==o&&(e.totalMemoryUsageInBytes>r||n);){let a=s.item;s=s.next,this.unloadTile(e,a,t)}};cx.prototype.trim=function(){this._trimTiles=!0};var XM=cx;function MV(e){this.tilePropertyName=e,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE,this._previousMinimum=Number.MAX_VALUE,this._previousMaximum=-Number.MAX_VALUE,this._referenceMinimum={},this._referenceMaximum={}}function w9(e,t){let n;return t==="_loadTimestamp"?n=ee.toDate(e).getTime():n=e,n}MV.prototype.setReferenceMinimumMaximum=function(e,t,n){this._referenceMinimum[n]=w9(e,n),this._referenceMaximum[n]=w9(t,n)};function f9e(e,t){let n=e.tilePropertyName;if(u(n)){let i=w9(t[n],n);return u(i)?(e._maximum=Math.max(i,e._maximum),e._minimum=Math.min(i,e._minimum),i):(e.tilePropertyName=void 0,i)}}var v9=[new z(.1,.1,.1,1),new z(.153,.278,.878,1),new z(.827,.231,.49,1),new z(.827,.188,.22,1),new z(1,.592,.259,1),new z(1,.843,0,1)];MV.prototype.colorize=function(e,t){let n=this.tilePropertyName;if(!u(n)||!e.contentAvailable||e._selectedFrame!==t.frameNumber)return;let i=f9e(this,e),r=this._previousMinimum,o=this._previousMaximum;if(r===Number.MAX_VALUE||o===-Number.MAX_VALUE)return;let s=o-r+P.EPSILON7,c=P.clamp(i-r,0,s)/s,l=v9.length-1,f=c*l,d=Math.floor(f),p=Math.ceil(f),g=f-d,m=v9[d],A=v9[p],x=z.clone(z.WHITE);x.red=P.lerp(m.red,A.red,g),x.green=P.lerp(m.green,A.green,g),x.blue=P.lerp(m.blue,A.blue,g),e._debugColor=x};MV.prototype.resetMinimumMaximum=function(){let e=this.tilePropertyName;if(u(e)){let t=this._referenceMinimum[e],n=this._referenceMaximum[e],i=u(t)&&u(n);this._previousMinimum=i?t:this._minimum,this._previousMaximum=i?n:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}};var KM=MV;function IE(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfPendingRequests=0,this.numberOfTilesProcessing=0,this.numberOfTilesWithContentReady=0,this.numberOfTilesTotal=0,this.numberOfLoadedTilesTotal=0,this.numberOfFeaturesSelected=0,this.numberOfFeaturesLoaded=0,this.numberOfPointsSelected=0,this.numberOfPointsLoaded=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0,this.geometryByteLength=0,this.texturesByteLength=0,this.batchTableByteLength=0}IE.prototype.clear=function(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfFeaturesSelected=0,this.numberOfPointsSelected=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0};function RV(e,t,n,i){let r=t.innerContents,o=t.pointsLength,s=t.trianglesLength,a=t.featuresLength,c=t.geometryByteLength,l=t.texturesByteLength,f=t.batchTableByteLength;if(i?(e.numberOfFeaturesLoaded+=n?-a:a,e.numberOfPointsLoaded+=n?-o:o,e.geometryByteLength+=n?-c:c,e.texturesByteLength+=n?-l:l,e.batchTableByteLength+=n?-f:f):(e.numberOfFeaturesSelected+=n?-a:a,e.numberOfPointsSelected+=n?-o:o,e.numberOfTrianglesSelected+=n?-s:s),u(r)){let d=r.length;for(let p=0;p<d;++p)RV(e,r[p],n,i)}}IE.prototype.incrementSelectionCounts=function(e){RV(this,e,!1,!1)};IE.prototype.incrementLoadCounts=function(e){RV(this,e,!1,!0)};IE.prototype.decrementLoadCounts=function(e){RV(this,e,!0,!0)};IE.clone=function(e,t){t.selected=e.selected,t.visited=e.visited,t.numberOfCommands=e.numberOfCommands,t.selected=e.selected,t.numberOfAttemptedRequests=e.numberOfAttemptedRequests,t.numberOfPendingRequests=e.numberOfPendingRequests,t.numberOfTilesProcessing=e.numberOfTilesProcessing,t.numberOfTilesWithContentReady=e.numberOfTilesWithContentReady,t.numberOfTilesTotal=e.numberOfTilesTotal,t.numberOfFeaturesSelected=e.numberOfFeaturesSelected,t.numberOfFeaturesLoaded=e.numberOfFeaturesLoaded,t.numberOfPointsSelected=e.numberOfPointsSelected,t.numberOfPointsLoaded=e.numberOfPointsLoaded,t.numberOfTrianglesSelected=e.numberOfTrianglesSelected,t.numberOfTilesStyled=e.numberOfTilesStyled,t.numberOfFeaturesStyled=e.numberOfFeaturesStyled,t.numberOfTilesCulledWithChildrenUnion=e.numberOfTilesCulledWithChildrenUnion,t.geometryByteLength=e.geometryByteLength,t.texturesByteLength=e.texturesByteLength,t.batchTableByteLength=e.batchTableByteLength};var c_=IE;function JM(){this._style=void 0,this._styleDirty=!1,this._lastStyleTime=0}Object.defineProperties(JM.prototype,{style:{get:function(){return this._style},set:function(e){e!==this._style&&(this._style=e,this._styleDirty=!0)}}});JM.prototype.makeDirty=function(){this._styleDirty=!0};JM.prototype.resetDirty=function(){this._styleDirty=!1};JM.prototype.applyStyle=function(e){if(!u(e.root)||u(this._style)&&!this._style._ready)return;let t=this._styleDirty;t&&++this._lastStyleTime;let n=this._lastStyleTime,i=e._statistics,r=t?e._selectedTiles:e._selectedTilesToStyle,o=r.length;for(let s=0;s<o;++s){let a=r[s];if(a.lastStyleTime!==n){let c=a.content;a.lastStyleTime=n,c.applyStyle(this._style),i.numberOfFeaturesStyled+=c.featuresLength,++i.numberOfTilesStyled}}};var ZM=JM;function d9e(e,t,n){let i=ni(t,"3DTILES_implicit_tiling")?t.extensions["3DTILES_implicit_tiling"]:t.implicitTiling;this.baseResource=e,this.geometricError=t.geometricError,this.metadataSchema=n;let r=t.boundingVolume;if(!u(r.box)&&!u(r.region)&&!ni(r,"3DTILES_bounding_volume_S2")&&!ni(r,"3DTILES_bounding_volume_cylinder"))throw new de("Only box, region, 3DTILES_bounding_volume_S2, and 3DTILES_bounding_volume_cylinder are supported for implicit tiling");this.boundingVolume=r,this.refine=t.refine,this.subtreeUriTemplate=new ve({url:i.subtrees.uri}),this.contentUriTemplates=[],this.contentHeaders=[];let o=h9e(t);for(let s=0;s<o.length;s++){let a=o[s];this.contentHeaders.push(We(a,!0));let c=new ve({url:a.uri});this.contentUriTemplates.push(c)}this.contentCount=this.contentHeaders.length,this.tileHeader=m9e(t),this.subdivisionScheme=jo[i.subdivisionScheme],this.branchingFactor=jo.getBranchingFactor(this.subdivisionScheme),this.subtreeLevels=i.subtreeLevels,u(i.availableLevels)?this.availableLevels=i.availableLevels:this.availableLevels=i.maximumLevel+1}function h9e(e){if(ni(e,"3DTILES_multiple_contents")){let t=e.extensions["3DTILES_multiple_contents"];return u(t.contents)?t.contents:t.content}return u(e.contents)?e.contents:u(e.content)?[e.content]:[]}function m9e(e){let t=We(e,!0);return u(t.extensions)&&(delete t.extensions["3DTILES_implicit_tiling"],delete t.extensions["3DTILES_multiple_contents"],Object.keys(t.extensions).length===0&&delete t.extensions),delete t.implicitTiling,delete t.contents,delete t.content,t}var ay=d9e;var QM={};function Oae(e){return e=(e^e<<8)&16711935,e=(e^e<<4)&252645135,e=(e^e<<2)&858993459,e=(e^e<<1)&1431655765,e}function D9(e){return e=(e^e<<16)&50331903,e=(e^e<<8)&50393103,e=(e^e<<4)&51130563,e=(e^e<<2)&153391689,e}function Mae(e){return e&=1431655765,e=(e^e>>1)&858993459,e=(e^e>>2)&252645135,e=(e^e>>4)&16711935,e=(e^e>>8)&65535,e}function I9(e){return e&=153391689,e=(e^e>>2)&51130563,e=(e^e>>4)&50393103,e=(e^e>>8)&4278190335,e=(e^e>>16)&1023,e}QM.encode2D=function(e,t){return(Oae(e)|Oae(t)<<1)>>>0};QM.decode2D=function(e,t){return u(t)||(t=new Array(2)),t[0]=Mae(e),t[1]=Mae(e>>1),t};QM.encode3D=function(e,t,n){return D9(e)|D9(t)<<1|D9(n)<<2};QM.decode3D=function(e,t){return u(t)||(t=new Array(3)),t[0]=I9(e),t[1]=I9(e>>1),t[2]=I9(e>>2),t};var cy=QM;function Gr(e){this.subdivisionScheme=e.subdivisionScheme,this.subtreeLevels=e.subtreeLevels,this.level=e.level,this.x=e.x,this.y=e.y,this.z=void 0,e.subdivisionScheme===jo.OCTREE&&(this.z=e.z)}Object.defineProperties(Gr.prototype,{childIndex:{get:function(){let e=0;return e|=this.x&1,e|=(this.y&1)<<1,this.subdivisionScheme===jo.OCTREE&&(e|=(this.z&1)<<2),e}},mortonIndex:{get:function(){return this.subdivisionScheme===jo.OCTREE?cy.encode3D(this.x,this.y,this.z):cy.encode2D(this.x,this.y)}},tileIndex:{get:function(){let e=this.subdivisionScheme===jo.OCTREE?((1<<3*this.level)-1)/7:((1<<2*this.level)-1)/3,t=this.mortonIndex;return e+t}}});Gr.prototype.getDescendantCoordinates=function(e){let t=this.level+e.level,n=(this.x<<e.level)+e.x,i=(this.y<<e.level)+e.y;if(this.subdivisionScheme===jo.OCTREE){let r=(this.z<<e.level)+e.z;return new Gr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:r})}return new Gr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};Gr.prototype.getAncestorCoordinates=function(e){let t=1<<e,n=this.level-e,i=Math.floor(this.x/t),r=Math.floor(this.y/t);if(this.subdivisionScheme===jo.OCTREE){let o=Math.floor(this.z/t);return new Gr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:r,z:o})}return new Gr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:r})};Gr.prototype.getOffsetCoordinates=function(e){let t=e.level-this.level,n=1<<t,i=e.x%n,r=e.y%n;if(this.subdivisionScheme===jo.OCTREE){let o=e.z%n;return new Gr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:r,z:o})}return new Gr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:r})};Gr.prototype.getChildCoordinates=function(e){let t=this.level+1,n=2*this.x+e%2,i=2*this.y+Math.floor(e/2)%2;if(this.subdivisionScheme===jo.OCTREE){let r=2*this.z+Math.floor(e/4)%2;return new Gr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:r})}return new Gr({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};Gr.prototype.getSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels)};Gr.prototype.getParentSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels+this.subtreeLevels)};Gr.prototype.isAncestor=function(e){let t=e.level-this.level;if(t<=0)return!1;let n=e.x>>t,i=e.y>>t,r=this.x===n,o=this.y===i;if(this.subdivisionScheme===jo.OCTREE){let s=e.z>>t,a=this.z===s;return r&&o&&a}return r&&o};Gr.prototype.isEqual=function(e){return this.subdivisionScheme===e.subdivisionScheme&&this.subtreeLevels===e.subtreeLevels&&this.level===e.level&&this.x===e.x&&this.y===e.y&&(this.subdivisionScheme===jo.OCTREE?this.z===e.z:!0)};Gr.prototype.isImplicitTilesetRoot=function(){return this.level===0};Gr.prototype.isSubtreeRoot=function(){return this.level%this.subtreeLevels===0};Gr.prototype.isBottomOfSubtree=function(){return this.level%this.subtreeLevels===this.subtreeLevels-1};Gr.prototype.getTemplateValues=function(){let e={level:this.level,x:this.x,y:this.y};return this.subdivisionScheme===jo.OCTREE&&(e.z=this.z),e};var Rae=[0,0,0];Gr.fromMortonIndex=function(e,t,n,i){let r;return e===jo.OCTREE?(r=cy.decode3D(i,Rae),new Gr({subdivisionScheme:e,subtreeLevels:t,level:n,x:r[0],y:r[1],z:r[2]})):(r=cy.decode2D(i,Rae),new Gr({subdivisionScheme:e,subtreeLevels:t,level:n,x:r[0],y:r[1]}))};Gr.fromTileIndex=function(e,t,n){let i,r,o;return e===jo.OCTREE?(i=Math.floor(P.log2(7*n+1)/3),r=((1<<3*i)-1)/7,o=n-r):(i=Math.floor(P.log2(3*n+1)/2),r=((1<<2*i)-1)/3,o=n-r),Gr.fromMortonIndex(e,t,i,o)};var lx=Gr;function l_(){}l_.selectTiles=function(e,t){fe.throwInstantiationError()};l_.sortChildrenByDistanceToCamera=function(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera};l_.canTraverse=function(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:e._screenSpaceError>e.tileset._maximumScreenSpaceError};l_.selectTile=function(e,t){if(e.contentVisibility(t)===Qt.OUTSIDE)return;let{content:n,tileset:i}=e;n.featurePropertiesDirty?(n.featurePropertiesDirty=!1,e.lastStyleTime=0,i._selectedTilesToStyle.push(e)):e._selectedFrame<t.frameNumber-1&&i._selectedTilesToStyle.push(e),e._selectedFrame=t.frameNumber,i._selectedTiles.push(e)};l_.visitTile=function(e,t){++e.tileset._statistics.visited,e._visitedFrame=t.frameNumber};l_.touchTile=function(e,t){e._touchedFrame!==t.frameNumber&&(e.tileset._cache.touch(e),e._touchedFrame=t.frameNumber)};l_.loadTile=function(e,t){let{tileset:n}=e;if(e._requestedFrame===t.frameNumber||!e.hasUnloadedRenderableContent&&!e.contentExpired||!p9e(e,t))return;let i=t.camera.timeSinceMoved<n.foveatedTimeDelay;e.priorityDeferred&&i||(e._requestedFrame=t.frameNumber,n._requestedTiles.push(e))};function p9e(e,t){let{tileset:n}=e;if(!n._cullRequestsWhileMoving)return!0;let{positionWCDeltaMagnitude:i,positionWCDeltaMagnitudeLastFrame:r}=t.camera,o=i!==0?i:r,s=Math.max(e.boundingSphere.radius*2,1);return n.cullRequestsWhileMovingMultiplier*o/s<1}l_.updateTile=function(e,t){Bae(e,t),e.updateExpiration(),e._wasMinPriorityChild=!1,e._priorityHolder=e,y9e(e),e._shouldSelect=!1,e._finalResolution=!0};function Bae(e,t){if(e.updateVisibility(t),!e.isVisible)return;let n=e.children.length>0;if((e.hasTilesetContent||e.hasImplicitContent)&&n){let o=e.children[0];Bae(o,t),e._visible=o._visible;return}if(_9e(e,t)){e._visible=!1;return}let i=e.refine===Vr.REPLACE,r=e._optimChildrenWithinParent===_f.USE_OPTIMIZATION;if(i&&r&&n&&!g9e(e,t)){++e.tileset._statistics.numberOfTilesCulledWithChildrenUnion,e._visible=!1;return}}function _9e(e,t){let{parent:n,tileset:i}=e;return!u(n)||n.hasTilesetContent||n.hasImplicitContent||n.refine!==Vr.ADD?!1:e.getScreenSpaceError(t,!0)<=i._maximumScreenSpaceError}function g9e(e,t){let n=!1,i=e.children;for(let r=0;r<i.length;++r){let o=i[r];o.updateVisibility(t),n=n||o.isVisible}return n}function y9e(e){let t=e.tileset._minimumPriority,n=e.tileset._maximumPriority,i=e._priorityHolder;n.distance=Math.max(i._distanceToCamera,n.distance),t.distance=Math.min(i._distanceToCamera,t.distance),n.depth=Math.max(e._depth,n.depth),t.depth=Math.min(e._depth,t.depth),n.foveatedFactor=Math.max(i._foveatedFactor,n.foveatedFactor),t.foveatedFactor=Math.min(i._foveatedFactor,t.foveatedFactor),n.reverseScreenSpaceError=Math.max(e._priorityReverseScreenSpaceError,n.reverseScreenSpaceError),t.reverseScreenSpaceError=Math.min(e._priorityReverseScreenSpaceError,t.reverseScreenSpaceError)}var Rs=l_;function Lae(){}var $M={stack:new Fc,stackMaximumLength:0};Lae.selectTiles=function(e,t){e._selectedTiles.length=0,e._requestedTiles.length=0,e.hasMixedContent=!1;let n=!0,i=e.root;if(i.updateVisibility(t),!i.isVisible)return n;let{touchTile:r,visitTile:o}=Rs,s=$M.stack;for(s.push(i);s.length>0;){$M.stackMaximumLength=Math.max($M.stackMaximumLength,s.length);let a=s.pop(),c=a.refine===Vr.ADD,l=a.refine===Vr.REPLACE,f=A9e(a);f&&x9e(a,s,t),(c||l&&!f)&&(C9e(e,a),r(a,t),T9e(a,t),a.hasRenderableContent&&!a.contentAvailable&&(n=!1)),o(a,t)}return $M.stack.trim($M.stackMaximumLength),n};function A9e(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:(e.hasEmptyContent,!0)}function x9e(e,t,n){let{children:i}=e;for(let r=0;r<i.length;++r){let o=i[r];o.updateVisibility(n),o.isVisible&&t.push(o)}}function C9e(e,t){(t.hasUnloadedRenderableContent||t.contentExpired)&&(t._priority=0,e._requestedTiles.push(t))}function T9e(e,t){e.contentAvailable&&e.contentVisibility(t)!==Qt.OUTSIDE&&e.tileset._selectedTiles.push(e)}var eR=Lae;function Nae(){}var tR={stack:new Fc,stackMaximumLength:0},nR={stack:new Fc,stackMaximumLength:0};Nae.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(Rs.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e._maximumScreenSpaceError)return;b9e(n,t),tR.stack.trim(tR.stackMaximumLength),nR.stack.trim(nR.stackMaximumLength);let i=e._requestedTiles;for(let r=0;r<i.length;++r)i[r].updatePriority()};function P9(e,t){e.contentAvailable&&Rs.selectTile(e,t)}function E9e(e,t,n){let i=e.refine===Vr.REPLACE,{tileset:r,children:o}=e,{updateTile:s,loadTile:a,touchTile:c}=Rs;for(let m=0;m<o.length;++m)s(o[m],n);o.sort(Rs.sortChildrenByDistanceToCamera);let l=i&&e.hasRenderableContent,f=!0,d=!1,p=-1,g=Number.MAX_VALUE;for(let m=0;m<o.length;++m){let A=o[m];if(A.isVisible?(t.push(A),A._foveatedFactor<g&&(p=m,g=A._foveatedFactor),d=!0):(l||r.loadSiblings)&&(A._foveatedFactor<g&&(p=m,g=A._foveatedFactor),a(A,n),c(A,n)),l){let x;A._inRequestVolume?A.hasRenderableContent?x=A.contentAvailable:x=S9e(A,n):x=!1,f=f&&x}}if(d||(f=!1),p!==-1&&i){let m=o[p];m._wasMinPriorityChild=!0;let A=(e._wasMinPriorityChild||e===r.root)&&g<=e._priorityHolder._foveatedFactor?e._priorityHolder:e;A._foveatedFactor=Math.min(m._foveatedFactor,A._foveatedFactor),A._distanceToCamera=Math.min(m._distanceToCamera,A._distanceToCamera);for(let x=0;x<o.length;++x)o[x]._priorityHolder=A}return f}function b9e(e,t){let{tileset:n}=e,{canTraverse:i,loadTile:r,visitTile:o,touchTile:s}=Rs,a=tR.stack;for(a.push(e);a.length>0;){tR.stackMaximumLength=Math.max(tR.stackMaximumLength,a.length);let c=a.pop(),l=c.parent,f=!u(l)||l._refines;c._refines=i(c)?E9e(c,a,t)&&f:!1;let d=!c._refines&&f;c.hasRenderableContent?c.refine===Vr.ADD?(P9(c,t),r(c,t)):c.refine===Vr.REPLACE&&(r(c,t),d&&P9(c,t)):(n._emptyTiles.push(c),r(c,t),d&&P9(c,t)),o(c,t),s(c,t)}}function S9e(e,t){let{canTraverse:n,updateTile:i,loadTile:r,touchTile:o}=Rs,s=!0,a=nR.stack;for(a.push(e);a.length>0;){nR.stackMaximumLength=Math.max(nR.stackMaximumLength,a.length);let c=a.pop(),l=c.children,f=l.length,d=!c.hasRenderableContent&&n(c),p=!c.hasRenderableContent&&c.children.length===0;if(!d&&!c.contentAvailable&&!p&&(s=!1),i(c,t),c.isVisible||(r(c,t),o(c,t)),d)for(let g=0;g<f;++g){let m=l[g];a.push(m)}}return s}var iR=Nae;function Fae(){}var rR={stack:new Fc,stackMaximumLength:0},oR={stack:new Fc,stackMaximumLength:0},u_={stack:new Fc,stackMaximumLength:0,ancestorStack:new Fc,ancestorStackMaximumLength:0},v9e=2;Fae.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(Rs.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e._maximumScreenSpaceError)return;M9e(n,t),R9e(n,t),rR.stack.trim(rR.stackMaximumLength),oR.stack.trim(oR.stackMaximumLength),u_.stack.trim(u_.stackMaximumLength),u_.ancestorStack.trim(u_.ancestorStackMaximumLength);let i=e._requestedTiles;for(let r=0;r<i.length;++r)i[r].updatePriority()};function w9e(e,t){let{updateTile:n,touchTile:i,selectTile:r}=Rs,o=oR.stack;for(o.push(e);o.length>0;){oR.stackMaximumLength=Math.max(oR.stackMaximumLength,o.length);let a=o.pop().children;for(let c=0;c<a.length;++c){let l=a[c];l.isVisible&&(l.contentAvailable?(n(l,t),i(l,t),r(l,t)):l._depth-e._depth<v9e&&o.push(l))}}}function BV(e,t){let n=e.contentAvailable?e:e._ancestorWithContentAvailable;u(n)?n._shouldSelect=!0:w9e(e,t)}function D9e(e,t){e._ancestorWithContent=void 0,e._ancestorWithContentAvailable=void 0;let{parent:n}=e;if(!u(n))return;let i=!n.hasUnloadedRenderableContent||n._requestedFrame===t.frameNumber;e._ancestorWithContent=i?n:n._ancestorWithContent,e._ancestorWithContentAvailable=n.contentAvailable?n:n._ancestorWithContentAvailable}function I9e(e,t){let n=t._ancestorWithContent;return!e.immediatelyLoadDesiredLevelOfDetail&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf||u(n)&&t._screenSpaceError<n._screenSpaceError/e.skipScreenSpaceErrorFactor&&t._depth>n._depth+e.skipLevels)}function P9e(e,t,n){let{tileset:i,children:r}=e,{updateTile:o,loadTile:s,touchTile:a}=Rs;for(let l=0;l<r.length;++l)o(r[l],n);r.sort(Rs.sortChildrenByDistanceToCamera);let c=!1;for(let l=0;l<r.length;++l){let f=r[l];f.isVisible?(t.push(f),c=!0):i.loadSiblings&&(s(f,n),a(f,n))}return c}function O9e(e,t){let{tileset:n}=e;return n.immediatelyLoadDesiredLevelOfDetail?!1:u(e._ancestorWithContent)?e._screenSpaceError===0?e.parent._screenSpaceError>t:e._screenSpaceError>t:!0}function M9e(e,t){let{tileset:n}=e,i=n.immediatelyLoadDesiredLevelOfDetail?Number.MAX_VALUE:Math.max(n.baseScreenSpaceError,n.maximumScreenSpaceError),{canTraverse:r,loadTile:o,visitTile:s,touchTile:a}=Rs,c=rR.stack;for(c.push(e);c.length>0;){rR.stackMaximumLength=Math.max(rR.stackMaximumLength,c.length);let l=c.pop();D9e(l,t);let f=l.parent,d=!u(f)||f._refines;l._refines=r(l)?P9e(l,c,t)&&d:!1;let p=!l._refines&&d;l.hasRenderableContent?l.refine===Vr.ADD?(BV(l,t),o(l,t)):l.refine===Vr.REPLACE&&(O9e(l,i)?(o(l,t),p&&BV(l,t)):p?(BV(l,t),o(l,t)):I9e(n,l)&&o(l,t)):(n._emptyTiles.push(l),o(l,t),p&&BV(l,t)),s(l,t),a(l,t)}}function R9e(e,t){let{selectTile:n,canTraverse:i}=Rs,{stack:r,ancestorStack:o}=u_,s;for(r.push(e);r.length>0||o.length>0;){if(u_.stackMaximumLength=Math.max(u_.stackMaximumLength,r.length),u_.ancestorStackMaximumLength=Math.max(u_.ancestorStackMaximumLength,o.length),o.length>0){let l=o.peek();if(l._stackLength===r.length){o.pop(),l!==s&&(l._finalResolution=!1),n(l,t);continue}}let a=r.pop();if(!u(a))continue;let c=i(a);if(a._shouldSelect)if(a.refine===Vr.ADD)n(a,t);else{if(a._selectionDepth=o.length,a._selectionDepth>0&&(a.tileset.hasMixedContent=!0),s=a,!c){n(a,t);continue}o.push(a),a._stackLength=r.length}if(c){let l=a.children;for(let f=0;f<l.length;++f){let d=l[f];d.isVisible&&r.push(d)}}}}var sR=Fae;function Ao(e){e=y(e,y.EMPTY_OBJECT),this._url=void 0,this._basePath=void 0,this._root=void 0,this._resource=void 0,this._asset=void 0,this._properties=void 0,this._geometricError=void 0,this._scaledGeometricError=void 0,this._extensionsUsed=void 0,this._extensions=void 0,this._modelUpAxis=void 0,this._modelForwardAxis=void 0,this._cache=new XM,this._processingQueue=[],this._selectedTiles=[],this._emptyTiles=[],this._requestedTiles=[],this._selectedTilesToStyle=[],this._loadTimestamp=void 0,this._timeSinceLoad=0,this._updatedVisibilityFrame=0,this._updatedModelMatrixFrame=0,this._modelMatrixChanged=!1,this._previousModelMatrix=void 0,this._extras=void 0,this._credits=void 0,this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._cullWithChildrenBounds=y(e.cullWithChildrenBounds,!0),this._allTilesAdditive=!0,this._hasMixedContent=!1,this._stencilClearCommand=void 0,this._backfaceCommands=new Fc,this._maximumScreenSpaceError=y(e.maximumScreenSpaceError,16),this._maximumMemoryUsage=y(e.maximumMemoryUsage,512),this._styleEngine=new ZM,this._styleApplied=!1,this._modelMatrix=u(e.modelMatrix)?N.clone(e.modelMatrix):N.clone(N.IDENTITY),this._statistics=new c_,this._statisticsLast=new c_,this._statisticsPerPass=new Array(Br.NUMBER_OF_PASSES);for(let i=0;i<Br.NUMBER_OF_PASSES;++i)this._statisticsPerPass[i]=new c_;this._requestedTilesInFlight=[],this._maximumPriority={foveatedFactor:-Number.MAX_VALUE,depth:-Number.MAX_VALUE,distance:-Number.MAX_VALUE,reverseScreenSpaceError:-Number.MAX_VALUE},this._minimumPriority={foveatedFactor:Number.MAX_VALUE,depth:Number.MAX_VALUE,distance:Number.MAX_VALUE,reverseScreenSpaceError:Number.MAX_VALUE},this._heatmap=new KM(e.debugHeatmapTilePropertyName),this.cullRequestsWhileMoving=y(e.cullRequestsWhileMoving,!0),this._cullRequestsWhileMoving=!1,this.cullRequestsWhileMovingMultiplier=y(e.cullRequestsWhileMovingMultiplier,60),this.progressiveResolutionHeightFraction=P.clamp(y(e.progressiveResolutionHeightFraction,.3),0,.5),this.preferLeaves=y(e.preferLeaves,!1),this._tilesLoaded=!1,this._initialTilesLoaded=!1,this._tileDebugLabels=void 0,this._classificationType=e.classificationType,this._ellipsoid=y(e.ellipsoid,re.WGS84),this._initialClippingPlanesOriginMatrix=N.IDENTITY,this._clippingPlanesOriginMatrix=void 0,this._clippingPlanesOriginMatrixDirty=!0,this._vectorClassificationOnly=y(e.vectorClassificationOnly,!1),this._vectorKeepDecodedPositions=y(e.vectorKeepDecodedPositions,!1),this.preloadWhenHidden=y(e.preloadWhenHidden,!1),this.preloadFlightDestinations=y(e.preloadFlightDestinations,!0),this._pass=void 0,this.dynamicScreenSpaceError=y(e.dynamicScreenSpaceError,!1),this.foveatedScreenSpaceError=y(e.foveatedScreenSpaceError,!0),this._foveatedConeSize=y(e.foveatedConeSize,.1),this._foveatedMinimumScreenSpaceErrorRelaxation=y(e.foveatedMinimumScreenSpaceErrorRelaxation,0),this.foveatedInterpolationCallback=y(e.foveatedInterpolationCallback,P.lerp),this.foveatedTimeDelay=y(e.foveatedTimeDelay,.2),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorFactor=4,this.dynamicScreenSpaceErrorHeightFalloff=.25,this._dynamicScreenSpaceErrorComputedDensity=0,this.shadows=y(e.shadows,yn.ENABLED),this.show=y(e.show,!0),this.colorBlendMode=gl.HIGHLIGHT,this.colorBlendAmount=.5,this._pointCloudShading=new Jh(e.pointCloudShading),this._pointCloudEyeDomeLighting=new Np,this.loadProgress=new ge,this.allTilesLoaded=new ge,this.initialTilesLoaded=new ge,this.tileLoad=new ge,this.tileUnload=new ge,this.tileFailed=new ge,this.tileVisible=new ge,this.skipLevelOfDetail=y(e.skipLevelOfDetail,!1),this._disableSkipLevelOfDetail=!1,this.baseScreenSpaceError=y(e.baseScreenSpaceError,1024),this.skipScreenSpaceErrorFactor=y(e.skipScreenSpaceErrorFactor,16),this.skipLevels=y(e.skipLevels,1),this.immediatelyLoadDesiredLevelOfDetail=y(e.immediatelyLoadDesiredLevelOfDetail,!1),this.loadSiblings=y(e.loadSiblings,!1),this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,u(e.imageBasedLighting)?(this._imageBasedLighting=e.imageBasedLighting,this._shouldDestroyImageBasedLighting=!1):(this._imageBasedLighting=new pA,this._shouldDestroyImageBasedLighting=!0),this.lightColor=e.lightColor,this.backFaceCulling=y(e.backFaceCulling,!0),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,z.BLACK),this.splitDirection=y(e.splitDirection,kc.NONE),this._projectTo2D=y(e.projectTo2D,!1),this.debugFreezeFrame=y(e.debugFreezeFrame,!1),this.debugColorizeTiles=y(e.debugColorizeTiles,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this.debugWireframe=y(e.debugWireframe,!1),this.debugWireframe===!0&&this._enableDebugWireframe===!1&&Ot("tileset-debug-wireframe-ignored","enableDebugWireframe must be set to true in the Cesium3DTileset constructor, otherwise debugWireframe will be ignored."),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowContentBoundingVolume=y(e.debugShowContentBoundingVolume,!1),this.debugShowViewerRequestVolume=y(e.debugShowViewerRequestVolume,!1),this._tileDebugLabels=void 0,this.debugPickedTileLabelOnly=!1,this.debugPickedTile=void 0,this.debugPickPosition=void 0,this.debugShowGeometricError=y(e.debugShowGeometricError,!1),this.debugShowRenderingStatistics=y(e.debugShowRenderingStatistics,!1),this.debugShowMemoryUsage=y(e.debugShowMemoryUsage,!1),this.debugShowUrl=y(e.debugShowUrl,!1),this.examineVectorLinesFunction=void 0,this._metadataExtension=void 0,this._customShader=e.customShader;let t=y(e.featureIdLabel,"featureId_0");typeof t=="number"&&(t=`featureId_${t}`),this._featureIdLabel=t;let n=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");if(typeof n=="number"&&(n=`instanceFeatureId_${n}`),this._instanceFeatureIdLabel=n,u(e.url)){$("Cesium3DTileset options.url","Cesium3DTileset constructor parameter options.url was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTileset.fromUrl instead.");let i=this,r;this._readyPromise=Promise.resolve(e.url).then(function(o){let s;return r=ve.createIfNeeded(o),i._resource=r,i._credits=r.credits,r.extension==="json"?s=r.getBaseUri(!0):r.isDataUri&&(s=""),i._url=r.url,i._basePath=s,Ao.loadJson(r)}).then(function(o){if(!i.isDestroyed())return zae(r,o).then(s=>(i._metadataExtension=s,o))}).then(function(o){if(i.isDestroyed())return;i._geometricError=o.geometricError,i._scaledGeometricError=o.geometricError,i._root=i.loadTileset(r,o);let s=u(o.asset.gltfUpAxis)?dr.fromName(o.asset.gltfUpAxis):dr.Y,a=y(e.modelUpAxis,s),c=y(e.modelForwardAxis,dr.X),l=o.asset;i._asset=l,i._properties=o.properties,i._extensionsUsed=o.extensionsUsed,i._extensions=o.extensions,i._modelUpAxis=a,i._modelForwardAxis=c,i._extras=o.extras;let f=l.extras;if(u(f)&&u(f.cesium)&&u(f.cesium.credits)){let m=f.cesium.credits,A=i._credits;u(A)||(A=[],i._credits=A);for(let x=0;x<m.length;++x){let C=m[x];A.push(new wt(C.html,i._showCreditsOnScreen))}}let p=i._root.createBoundingVolume(o.root.boundingVolume,N.IDENTITY).boundingSphere.center,g=i._ellipsoid.cartesianToCartographic(p);return u(g)&&g.height>si._defaultMinTerrainHeight&&(i._initialClippingPlanesOriginMatrix=Mt.eastNorthUpToFixedFrame(p)),i._clippingPlanesOriginMatrix=N.clone(i._initialClippingPlanesOriginMatrix),i})}}Object.defineProperties(Ao.prototype,{isCesium3DTileset:{get:function(){return!0}},asset:{get:function(){return this._asset}},extensions:{get:function(){return this._extensions}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){ls.setOwner(e,this,"_clippingPlanes")}},properties:{get:function(){return this._properties}},ready:{get:function(){return $("Cesium3DTileset.ready","Cesium3DTileset.ready was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTileset.fromUrl instead."),u(this._root)}},readyPromise:{get:function(){return $("Cesium3DTileset.readyPromise","Cesium3DTileset.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTileset.fromUrl instead."),this._readyPromise}},tilesLoaded:{get:function(){return this._tilesLoaded}},resource:{get:function(){return this._resource}},basePath:{get:function(){return $("Cesium3DTileset.basePath","Cesium3DTileset.basePath has been deprecated. All tiles are relative to the url of the tileset JSON file that contains them. Use the url property instead."),this._basePath}},style:{get:function(){return this._styleEngine.style},set:function(e){this._styleEngine.style=e}},customShader:{get:function(){return this._customShader},set:function(e){this._customShader=e}},hasMixedContent:{get:function(){return this._hasMixedContent},set:function(e){this._hasMixedContent=e}},isSkippingLevelOfDetail:{get:function(){return this.skipLevelOfDetail&&!u(this._classificationType)&&!this._disableSkipLevelOfDetail&&!this._allTilesAdditive}},metadataExtension:{get:function(){return this._metadataExtension}},metadata:{get:function(){if(u(this._metadataExtension))return this._metadataExtension.tileset}},schema:{get:function(){if(u(this._metadataExtension))return this._metadataExtension.schema}},maximumScreenSpaceError:{get:function(){return this._maximumScreenSpaceError},set:function(e){this._maximumScreenSpaceError=e}},maximumMemoryUsage:{get:function(){return this._maximumMemoryUsage},set:function(e){this._maximumMemoryUsage=e}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){this._pointCloudShading=e}},root:{get:function(){return this._root}},boundingSphere:{get:function(){return this._root.updateTransform(this._modelMatrix),this._root.boundingSphere}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=N.clone(e,this._modelMatrix)}},timeSinceLoad:{get:function(){return this._timeSinceLoad}},totalMemoryUsageInBytes:{get:function(){let e=this._statistics;return e.texturesByteLength+e.geometryByteLength+e.batchTableByteLength}},clippingPlanesOriginMatrix:{get:function(){return u(this._clippingPlanesOriginMatrix)?(this._clippingPlanesOriginMatrixDirty&&(N.multiply(this.root.computedTransform,this._initialClippingPlanesOriginMatrix,this._clippingPlanesOriginMatrix),this._clippingPlanesOriginMatrixDirty=!1),this._clippingPlanesOriginMatrix):N.IDENTITY}},styleEngine:{get:function(){return this._styleEngine}},statistics:{get:function(){return this._statistics}},classificationType:{get:function(){return this._classificationType}},ellipsoid:{get:function(){return this._ellipsoid}},foveatedConeSize:{get:function(){return this._foveatedConeSize},set:function(e){this._foveatedConeSize=e}},foveatedMinimumScreenSpaceErrorRelaxation:{get:function(){return this._foveatedMinimumScreenSpaceErrorRelaxation},set:function(e){this._foveatedMinimumScreenSpaceErrorRelaxation=e}},extras:{get:function(){return this._extras}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1)}},vectorClassificationOnly:{get:function(){return this._vectorClassificationOnly}},vectorKeepDecodedPositions:{get:function(){return this._vectorKeepDecodedPositions}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),this._instanceFeatureIdLabel=e}}});Ao.fromIonAssetId=async function(e,t){let n=await Xs.fromAssetId(e);return Ao.fromUrl(n,t)};Ao.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ve.createIfNeeded(e),i;n.extension==="json"?i=n.getBaseUri(!0):n.isDataUri&&(i="");let r=await Ao.loadJson(n),o=await zae(n,r),s=new Ao(t);s._resource=n,s._url=n.url,s._basePath=i,s._metadataExtension=o,s._geometricError=r.geometricError,s._scaledGeometricError=r.geometricError;let a=r.asset;s._asset=a,s._extras=r.extras;let c=n.credits;u(c)||(c=[]);let l=a.extras;if(u(l)&&u(l.cesium)&&u(l.cesium.credits)){let x=l.cesium.credits;for(let C=0;C<x.length;++C){let T=x[C];c.push(new wt(T.html,s._showCreditsOnScreen))}}s._credits=c;let f=u(r.asset.gltfUpAxis)?dr.fromName(r.asset.gltfUpAxis):dr.Y,d=y(t.modelUpAxis,f),p=y(t.modelForwardAxis,dr.X);s._properties=r.properties,s._extensionsUsed=r.extensionsUsed,s._extensions=r.extensions,s._modelUpAxis=d,s._modelForwardAxis=p,s._root=s.loadTileset(n,r);let m=s._root.createBoundingVolume(r.root.boundingVolume,N.IDENTITY).boundingSphere.center,A=s._ellipsoid.cartesianToCartographic(m);return u(A)&&A.height>si._defaultMinTerrainHeight&&(s._initialClippingPlanesOriginMatrix=Mt.eastNorthUpToFixedFrame(m)),s._clippingPlanesOriginMatrix=N.clone(s._initialClippingPlanesOriginMatrix),s._readyPromise=Promise.resolve(s),s._ready=!0,s};Ao.loadJson=function(e){return ve.createIfNeeded(e).fetchJson()};Ao.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()};Ao.prototype.loadTileset=function(e,t,n){let i=t.asset;if(!u(i))throw new de("Tileset must have an asset property.");if(i.version!=="0.0"&&i.version!=="1.0"&&i.version!=="1.1")throw new de("The tileset must be 3D Tiles version 0.0, 1.0, or 1.1");u(t.extensionsRequired)&&Ao.checkSupportedExtensions(t.extensionsRequired);let r=this._statistics,o=i.tilesetVersion;u(o)&&(this._basePath+=`?v=${o}`,e=e.clone(),e.setQueryParameters({v:o}));let s=Uae(this,e,t.root,n);u(n)&&(n.children.push(s),s._depth=n._depth+1);let a=[];for(a.push(s);a.length>0;){let c=a.pop();++r.numberOfTilesTotal,this._allTilesAdditive=this._allTilesAdditive&&c.refine===Vr.ADD;let l=c._header.children;if(u(l))for(let f=0;f<l.length;++f){let d=l[f],p=Uae(this,e,d,c);c.children.push(p),p._depth=c._depth+1,a.push(p)}this._cullWithChildrenBounds&&jM.checkChildrenWithinParent(c)}return s};function Uae(e,t,n,i){if(!(u(n.implicitTiling)||ni(n,"3DTILES_implicit_tiling")))return new Tf(e,t,n,i);let o=e.schema,s=new ay(t,n,o),a=new lx({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:0,x:0,y:0,z:0}),c=s.subtreeUriTemplate.getDerivedResource({templateValues:a.getTemplateValues()}).url,f=We(n,!0);f.contents=[{uri:c}],delete f.content,delete f.extensions;let d=new Tf(e,t,f,i);return d.implicitTileset=s,d.implicitCoordinates=a,d}async function zae(e,t){let n=ni(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t,i;if(u(n.schemaUri))e=e.getDerivedResource({url:n.schemaUri}),i=Ui.getSchemaLoader({resource:e});else if(u(n.schema))i=Ui.getSchemaLoader({schema:n.schema});else return;await i.load();let r=new sy({schema:i.schema,metadataJson:n});return Ui.unload(i),r}var Vae=new h,B9e=new me,L9e=new N,N9e=new h,F9e=new h,U9e=new h;function V9e(e,t){let n,i,r,o,s,a=t.camera,c=e._root,l=c.contentBoundingVolume;if(l instanceof Af)n=h.normalize(a.positionWC,Vae),i=a.directionWC,r=a.positionCartographic.height,o=l.minimumHeight,s=l.maximumHeight;else{let A=N.inverseTransformation(c.computedTransform,L9e),x=t.mapProjection.ellipsoid,C=l.boundingVolume,T=N.multiplyByPoint(A,C.center,N9e);if(h.magnitude(T)>x.minimumRadius){let E=me.fromCartesian(T,x,B9e);n=h.normalize(a.positionWC,Vae),i=a.directionWC,r=a.positionCartographic.height,o=0,s=E.height*2}else{let E=N.multiplyByPoint(A,a.positionWC,F9e);if(n=h.UNIT_Z,i=N.multiplyByPointAsVector(A,a.directionWC,U9e),i=h.normalize(i,i),r=E.z,l instanceof Cf){let S=c._header.boundingVolume.box[11];o=T.z-S,s=T.z+S}else if(l instanceof o_){let S=C.radius;o=T.z-S,s=T.z+S}}}let f=e.dynamicScreenSpaceErrorHeightFalloff,d=o+(s-o)*f,p=s,g=P.clamp((r-d)/(p-d),0,1),m=1-Math.abs(h.dot(i,n));m=m*(1-g),e._dynamicScreenSpaceErrorComputedDensity=e.dynamicScreenSpaceErrorDensity*m}function k9e(e,t){if(t.hasEmptyContent)return;let{statistics:n}=e,i=t.contentExpired,r=t.requestContent();u(r)&&(r.then(o=>{!u(o)||t.isDestroyed()||e.isDestroyed()||(e._processingQueue.push(t),++n.numberOfTilesProcessing)}).catch(o=>{Hae(o,e,t)}),i&&(t.hasTilesetContent||t.hasImplicitContent?K9e(e,t):(n.decrementLoadCounts(t.content),--n.numberOfTilesWithContentReady)),e._requestedTilesInFlight.push(t))}function z9e(e,t){return e._priority-t._priority}Ao.prototype.postPassesUpdate=function(e){u(this._root)&&(H9e(this,e),Z9e(this,e),this._cache.unloadTiles(this,Wae),this._styleApplied&&this._styleEngine.resetDirty(),this._styleApplied=!1)};Ao.prototype.prePassesUpdate=function(e){if(!u(this._root))return;j9e(this,e);let t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,u(t)&&t.enabled&&t.update(e),u(this._loadTimestamp)||(this._loadTimestamp=ee.clone(e.time)),this._timeSinceLoad=Math.max(ee.secondsDifference(e.time,this._loadTimestamp)*1e3,0),this.dynamicScreenSpaceError&&V9e(this,e),e.newFrame&&this._cache.reset()};function H9e(e,t){let n=e._requestedTilesInFlight,i=0;for(let r=0;r<n.length;++r){let o=n[r],s=t.frameNumber-o._touchedFrame>=1;if(o._contentState!==Hr.LOADING){++i;continue}else if(s){o.cancelRequests(),++i;continue}i>0&&(n[r-i]=o)}n.length-=i}function G9e(e){let t=e._requestedTiles;t.sort(z9e);for(let n=0;n<t.length;++n)k9e(e,t[n])}function Hae(e,t,n){if(t.isDestroyed())return;let i;n.isDestroyed()||(i=n._contentResource.url);let r=u(e.message)?e.message:e.toString();t.tileFailed.numberOfListeners>0?t.tileFailed.raiseEvent({url:i,message:r}):(console.log(`A 3D tile failed to load: ${i}`),console.log(`Error: ${r}`))}function W9e(e){let t=e._processingQueue,n=0;for(let i=0;i<t.length;++i){let r=t[i];if(r.isDestroyed()||r._contentState!==Hr.PROCESSING){++n;continue}n>0&&(t[i-n]=r)}t.length-=n}function j9e(e,t){W9e(e);let n=e._processingQueue,i=e._statistics,r;for(let o=0;o<n.length;++o){r=n[o];try{r.process(e,t),r.contentReady&&(--i.numberOfTilesProcessing,e.tileLoad.raiseEvent(r))}catch(s){--i.numberOfTilesProcessing,Hae(s,e,r)}}}var LV=new h,q9e={maximumFractionDigits:3};function kae(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,q9e):Math.round(t).toLocaleString()}function O9(e){let{halfAxes:t,radius:n,center:i}=e.boundingVolume.boundingVolume,r=h.clone(i,LV);if(u(t))r.x+=.75*(t[0]+t[3]+t[6]),r.y+=.75*(t[1]+t[4]+t[7]),r.z+=.75*(t[2]+t[5]+t[8]);else if(u(n)){let o=h.normalize(i,LV);o=h.multiplyByScalar(o,.75*n,LV),r=h.add(o,i,LV)}return r}function M9(e,t,n){let i="",r=0;if(t.debugShowGeometricError&&(i+=` +Geometric error: ${e.geometricError}`,r++),t.debugShowRenderingStatistics&&(i+=` +Commands: ${e.commandsLength}`,r++,e.content.pointsLength>0&&(i+=` +Points: ${e.content.pointsLength}`,r++),e.content.trianglesLength>0&&(i+=` +Triangles: ${e.content.trianglesLength}`,r++),i+=` +Features: ${e.content.featuresLength}`,r++),t.debugShowMemoryUsage&&(i+=` +Texture Memory: ${kae(e.content.texturesByteLength)}`,i+=` +Geometry Memory: ${kae(e.content.geometryByteLength)}`,r+=2),t.debugShowUrl)if(e.hasMultipleContents){i+=` +Urls:`;let s=e.content.innerContentUrls;for(let a=0;a<s.length;a++)i+=` +- ${s[a]}`;r+=s.length}else i+=` +Url: ${e._contentHeader.uri}`,r++;let o={text:i.substring(1),position:n,font:`${19-r}px sans-serif`,showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY};return t._tileDebugLabels.add(o)}function Y9e(e,t){let n=e._selectedTiles,i=n.length,r=e._emptyTiles,o=r.length;if(e._tileDebugLabels.removeAll(),e.debugPickedTileLabelOnly){if(u(e.debugPickedTile)){let s=u(e.debugPickPosition)?e.debugPickPosition:O9(e.debugPickedTile),a=M9(e.debugPickedTile,e,s);a.pixelOffset=new H(15,-15)}}else{for(let s=0;s<i;++s){let a=n[s];M9(a,e,O9(a))}for(let s=0;s<o;++s){let a=r[s];(a.hasTilesetContent||a.hasImplicitContent)&&M9(a,e,O9(a))}}e._tileDebugLabels.update(t)}function X9e(e,t,n){e._styleEngine.applyStyle(e),e._styleApplied=!0;let{commandList:i,context:r}=t,o=i.length,s=e._selectedTiles,a=e.isSkippingLevelOfDetail&&e._hasMixedContent&&r.stencilBuffer&&s.length>0;e._backfaceCommands.length=0,a&&(u(e._stencilClearCommand)||(e._stencilClearCommand=new ri({stencil:0,pass:be.CESIUM_3D_TILE,renderState:Ve.fromCache({stencilMask:Ft.SKIP_LOD_MASK})})),i.push(e._stencilClearCommand));let{statistics:c,tileVisible:l}=e,f=n.isRender,d=i.length;for(let m=0;m<s.length;++m){let A=s[m];f&&l.raiseEvent(A),A.update(e,t,n),c.incrementSelectionCounts(A.content),++c.selected}let p=e._emptyTiles;for(let m=0;m<p.length;++m)p[m].update(e,t,n);let g=i.length-d;if(e._backfaceCommands.trim(),a){let m=e._backfaceCommands.values,A=m.length;i.length+=A;for(let x=g-1;x>=0;--x)i[d+A+x]=i[d+x];for(let x=0;x<A;++x)i[d+x]=m[x]}g=i.length-o,c.numberOfCommands=g,f&&(e.pointCloudShading.attenuation&&e.pointCloudShading.eyeDomeLighting&&g>0&&e._pointCloudEyeDomeLighting.update(t,o,e.pointCloudShading,e.boundingSphere),e.debugShowGeometricError||e.debugShowRenderingStatistics||e.debugShowMemoryUsage||e.debugShowUrl?(u(e._tileDebugLabels)||(e._tileDebugLabels=new nm),Y9e(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}var Gae=[];function K9e(e,t){let n=t,i=Gae;for(i.push(t);i.length>0;){t=i.pop();let r=t.children;for(let o=0;o<r.length;++o)i.push(r[o]);t!==n&&(J9e(e,t),--e._statistics.numberOfTilesTotal)}n.children=[]}function Wae(e,t){e.tileUnload.raiseEvent(t),e._statistics.decrementLoadCounts(t.content),--e._statistics.numberOfTilesWithContentReady,t.unloadContent()}function J9e(e,t){e._cache.unloadTile(e,t,Wae),t.destroy()}Ao.prototype.trimLoadedTiles=function(){this._cache.trim()};function Z9e(e,t){let n=e._statistics,i=e._statisticsLast,r=n.numberOfPendingRequests,o=n.numberOfTilesProcessing,s=i.numberOfPendingRequests,a=i.numberOfTilesProcessing;c_.clone(n,i);let c=r!==s||o!==a;c&&t.afterRender.push(function(){return e.loadProgress.raiseEvent(r,o),!0}),e._tilesLoaded=n.numberOfPendingRequests===0&&n.numberOfTilesProcessing===0&&n.numberOfAttemptedRequests===0,c&&e._tilesLoaded&&(t.afterRender.push(function(){return e.allTilesLoaded.raiseEvent(),!0}),e._initialTilesLoaded||(e._initialTilesLoaded=!0,t.afterRender.push(function(){return e.initialTilesLoaded.raiseEvent(),!0})))}function Q9e(e){e._heatmap.resetMinimumMaximum(),e._minimumPriority.depth=Number.MAX_VALUE,e._maximumPriority.depth=-Number.MAX_VALUE,e._minimumPriority.foveatedFactor=Number.MAX_VALUE,e._maximumPriority.foveatedFactor=-Number.MAX_VALUE,e._minimumPriority.distance=Number.MAX_VALUE,e._maximumPriority.distance=-Number.MAX_VALUE,e._minimumPriority.reverseScreenSpaceError=Number.MAX_VALUE,e._maximumPriority.reverseScreenSpaceError=-Number.MAX_VALUE}function $9e(e,t){t.frameNumber===e._updatedModelMatrixFrame&&u(e._previousModelMatrix)||(e._updatedModelMatrixFrame=t.frameNumber,e._modelMatrixChanged=!N.equals(e.modelMatrix,e._previousModelMatrix),e._modelMatrixChanged&&(e._previousModelMatrix=N.clone(e.modelMatrix,e._previousModelMatrix)))}function eWe(e,t,n,i){if(t.mode===ne.MORPHING||!u(e._root))return!1;let r=e._statistics;r.clear(),++e._updatedVisibilityFrame,Q9e(e),$9e(e,t),e._cullRequestsWhileMoving=e.cullRequestsWhileMoving&&!e._modelMatrixChanged;let o=e.getTraversal(i).selectTiles(e,t);if(i.requestTiles&&G9e(e),X9e(e,t,i),c_.clone(r,n),i.isRender){let s=e._credits;if(u(s)&&r.selected!==0)for(let a=0;a<s.length;++a){let c=s[a];c.showOnScreen=e._showCreditsOnScreen,t.creditDisplay.addCreditToNextFrame(c)}}return o}Ao.prototype.getTraversal=function(e){let{pass:t}=e;return t===Br.MOST_DETAILED_PRELOAD||t===Br.MOST_DETAILED_PICK?eR:this.isSkippingLevelOfDetail?sR:iR};Ao.prototype.update=function(e){this.updateForPass(e,e.tilesetPassState)};Ao.prototype.updateForPass=function(e,t){let n=t.pass;if(n===Br.PRELOAD&&(!this.preloadWhenHidden||this.show)||n===Br.PRELOAD_FLIGHT&&(!this.preloadFlightDestinations||!this.show&&!this.preloadWhenHidden)||n===Br.REQUEST_RENDER_MODE_DEFER_CHECK&&(!this._cullRequestsWhileMoving&&this.foveatedTimeDelay<=0||!this.show))return;let i=e.commandList,r=e.camera,o=e.cullingVolume;t.ready=!1;let s=Br.getPassOptions(n),a=s.ignoreCommands,c=y(t.commandList,i),l=c.length;e.commandList=c,e.camera=y(t.camera,r),e.cullingVolume=y(t.cullingVolume,o);let f=this._statisticsPerPass[n];(this.show||a)&&(this._pass=n,t.ready=eWe(this,e,f,s)),a&&(c.length=l),e.commandList=i,e.camera=r,e.cullingVolume=o};Ao.prototype.hasExtension=function(e){return u(this._extensionsUsed)?this._extensionsUsed.indexOf(e)>-1:!1};Ao.prototype.isDestroyed=function(){return!1};Ao.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),u(this._root)){let e=Gae;for(e.push(this._root);e.length>0;){let t=e.pop();t.destroy();let n=t.children;for(let i=0;i<n.length;++i)e.push(n[i])}}return this._root=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0,ue(this)};Ao.supportedExtensions={"3DTILES_metadata":!0,"3DTILES_implicit_tiling":!0,"3DTILES_content_gltf":!0,"3DTILES_multiple_contents":!0,"3DTILES_bounding_volume_S2":!0,"3DTILES_batch_table_hierarchy":!0,"3DTILES_draco_point_compression":!0,MAXAR_content_geojson:!0};Ao.checkSupportedExtensions=function(e){for(let t=0;t<e.length;t++)if(!Ao.supportedExtensions[e[t]])throw new de(`Unsupported 3D Tiles Extension: ${e[t]}`)};var Ea=Ao;var tWe=new N;function ly(e,t){t.collectionChanged.addEventListener(ly.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._tilesetHash={},this._entitiesToVisualize=new Ct,this._onCollectionChanged(t,t.values,[],[])}ly.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._tilesetHash,i=this._primitives;for(let r=0,o=t.length;r<o;r++){let s=t[r],a=s._tileset,c,l=n[s.id],f=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),d;if(f&&(d=s.computeModelMatrix(e,tWe),c=ve.createIfNeeded(q.getValueOrUndefined(a._uri,e))),!f){u(l)&&(l.tilesetPrimitive.show=!1);continue}let p=u(l)?l.tilesetPrimitive:void 0;(!u(l)||c.url!==l.url)&&(u(p)&&i.removeAndDestroy(p),delete n[s.id],nWe(c,n,s,i)),u(p)&&(p.show=!0,u(d)&&(p.modelMatrix=d),p.maximumScreenSpaceError=q.getValueOrDefault(a.maximumScreenSpaceError,e,p.maximumScreenSpaceError))}return!0};ly.prototype.isDestroyed=function(){return!1};ly.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(ly.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._tilesetHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)R9(this,e[i],t,n);return ue(this)};ly.prototype.getBoundingSphere=function(e,t){let n=this._tilesetHash[e.id];if(!u(n)||n.loadFail)return lt.FAILED;let i=n.tilesetPrimitive;return u(i)?i.show?(ae.clone(i.boundingSphere,t),lt.DONE):lt.FAILED:lt.PENDING};ly.prototype._onCollectionChanged=function(e,t,n,i){let r,o,s=this._entitiesToVisualize,a=this._tilesetHash,c=this._primitives;for(r=t.length-1;r>-1;r--)o=t[r],u(o._tileset)&&s.set(o.id,o);for(r=i.length-1;r>-1;r--)o=i[r],u(o._tileset)?s.set(o.id,o):(R9(this,o,a,c),s.remove(o.id));for(r=n.length-1;r>-1;r--)o=n[r],R9(this,o,a,c),s.remove(o.id)};function R9(e,t,n,i){let r=n[t.id];u(r)&&(u(r.tilesetPrimitive)&&i.removeAndDestroy(r.tilesetPrimitive),delete n[t.id])}async function nWe(e,t,n,i){t[n.id]={url:e.url,loadFail:!1};try{let r=await Ea.fromUrl(e);if(r.id=n,i.add(r),!u(t[n.id]))return;t[n.id].tilesetPrimitive=r}catch(r){console.error(r),t[n.id].loadFail=!0}}var aR=ly;var iWe=z.WHITE,rWe=z.BLACK,oWe=new H(2,2);function PE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.repeat=e.repeat}Object.defineProperties(PE.prototype,{isConstant:{get:function(){return q.isConstant(this._evenColor)&&q.isConstant(this._oddColor)&&q.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:ce("evenColor"),oddColor:ce("oddColor"),repeat:ce("repeat")});PE.prototype.getType=function(e){return"Checkerboard"};PE.prototype.getValue=function(e,t){return u(t)||(t={}),t.lightColor=q.getValueOrClonedDefault(this._evenColor,e,iWe,t.lightColor),t.darkColor=q.getValueOrClonedDefault(this._oddColor,e,rWe,t.darkColor),t.repeat=q.getValueOrDefault(this._repeat,e,oWe),t};PE.prototype.equals=function(e){return this===e||e instanceof PE&&q.equals(this._evenColor,e._evenColor)&&q.equals(this._oddColor,e._oddColor)&&q.equals(this._repeat,e._repeat)};var OE=PE;var jae={id:void 0};function cR(e){if(e._firing){e._refire=!0;return}if(e._suspendCount===0){let t=e._addedEntities,n=e._removedEntities,i=e._changedEntities;if(i.length!==0||t.length!==0||n.length!==0){e._firing=!0;do{e._refire=!1;let r=t.values.slice(0),o=n.values.slice(0),s=i.values.slice(0);t.removeAll(),n.removeAll(),i.removeAll(),e._collectionChanged.raiseEvent(e,r,o,s)}while(e._refire);e._firing=!1}}}function tc(e){this._owner=e,this._entities=new Ct,this._addedEntities=new Ct,this._removedEntities=new Ct,this._changedEntities=new Ct,this._suspendCount=0,this._collectionChanged=new ge,this._id=Wn(),this._show=!0,this._firing=!1,this._refire=!1}tc.prototype.suspendEvents=function(){this._suspendCount++};tc.prototype.resumeEvents=function(){this._suspendCount--,cR(this)};Object.defineProperties(tc.prototype,{collectionChanged:{get:function(){return this._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._entities.values}},show:{get:function(){return this._show},set:function(e){if(e===this._show)return;this.suspendEvents();let t,n=[],i=this._entities.values,r=i.length;for(t=0;t<r;t++)n.push(i[t].isShowing);for(this._show=e,t=0;t<r;t++){let o=n[t],s=i[t];o!==s.isShowing&&s.definitionChanged.raiseEvent(s,"isShowing",s.isShowing,o)}this.resumeEvents()}},owner:{get:function(){return this._owner}}});tc.prototype.computeAvailability=function(){let e=ze.MAXIMUM_VALUE,t=ze.MINIMUM_VALUE,n=this._entities.values;for(let i=0,r=n.length;i<r;i++){let s=n[i].availability;if(u(s)){let a=s.start,c=s.stop;ee.lessThan(a,e)&&!a.equals(ze.MINIMUM_VALUE)&&(e=a),ee.greaterThan(c,t)&&!c.equals(ze.MAXIMUM_VALUE)&&(t=c)}}return ze.MAXIMUM_VALUE.equals(e)&&(e=ze.MINIMUM_VALUE),ze.MINIMUM_VALUE.equals(t)&&(t=ze.MAXIMUM_VALUE),new xn({start:e,stop:t})};tc.prototype.add=function(e){e instanceof Kr||(e=new Kr(e));let t=e.id,n=this._entities;if(n.contains(t))throw new de(`An entity with id ${t} already exists in this collection.`);return e.entityCollection=this,n.set(t,e),this._removedEntities.remove(t)||this._addedEntities.set(t,e),e.definitionChanged.addEventListener(tc.prototype._onEntityDefinitionChanged,this),cR(this),e};tc.prototype.remove=function(e){return u(e)?this.removeById(e.id):!1};tc.prototype.contains=function(e){return this._entities.get(e.id)===e};tc.prototype.removeById=function(e){if(!u(e))return!1;let n=this._entities.get(e);return this._entities.remove(e)?(this._addedEntities.remove(e)||(this._removedEntities.set(e,n),this._changedEntities.remove(e)),this._entities.remove(e),n.definitionChanged.removeEventListener(tc.prototype._onEntityDefinitionChanged,this),cR(this),!0):!1};tc.prototype.removeAll=function(){let e=this._entities,t=e.length,n=e.values,i=this._addedEntities,r=this._removedEntities;for(let o=0;o<t;o++){let s=n[o],a=s.id,c=i.get(a);u(c)||(s.definitionChanged.removeEventListener(tc.prototype._onEntityDefinitionChanged,this),r.set(a,s))}e.removeAll(),i.removeAll(),this._changedEntities.removeAll(),cR(this)};tc.prototype.getById=function(e){return this._entities.get(e)};tc.prototype.getOrCreateEntity=function(e){let t=this._entities.get(e);return u(t)||(jae.id=e,t=new Kr(jae),this.add(t)),t};tc.prototype._onEntityDefinitionChanged=function(e){let t=e.id;this._addedEntities.contains(t)||this._changedEntities.set(t,e),cR(this)};var Bs=tc;var NV={id:void 0},ME=new Array(2);function B9(e){let t=e.propertyNames,n=t.length;for(let i=0;i<n;i++)e[t[i]]=void 0;e._name=void 0,e._availability=void 0}function qae(e,t,n,i){ME[0]=n,ME[1]=i.id,t[JSON.stringify(ME)]=i.definitionChanged.addEventListener(Io.prototype._onDefinitionChanged,e)}function Yae(e,t,n,i){ME[0]=n,ME[1]=i.id;let r=JSON.stringify(ME);t[r](),t[r]=void 0}function uy(e){if(e._shouldRecomposite=!0,e._suspendCount!==0)return;let t=e._collections,n=t.length,i=e._collectionsCopy,r=i.length,o,s,a,c,l,f=e._composite,d=new Bs(e),p=e._eventHash,g;for(o=0;o<r;o++)for(l=i[o],l.collectionChanged.removeEventListener(Io.prototype._onCollectionChanged,e),a=l.values,g=l.id,c=a.length-1;c>-1;c--)s=a[c],Yae(e,p,g,s);for(o=n-1;o>=0;o--)for(l=t[o],l.collectionChanged.addEventListener(Io.prototype._onCollectionChanged,e),a=l.values,g=l.id,c=a.length-1;c>-1;c--){s=a[c],qae(e,p,g,s);let A=d.getById(s.id);u(A)||(A=f.getById(s.id),u(A)?B9(A):(NV.id=s.id,A=new Kr(NV)),d.add(A)),A.merge(s)}e._collectionsCopy=t.slice(0),f.suspendEvents(),f.removeAll();let m=d.values;for(o=0;o<m.length;o++)f.add(m[o]);f.resumeEvents()}function Io(e,t){this._owner=t,this._composite=new Bs(this),this._suspendCount=0,this._collections=u(e)?e.slice():[],this._collectionsCopy=[],this._id=Wn(),this._eventHash={},uy(this),this._shouldRecomposite=!1}Object.defineProperties(Io.prototype,{collectionChanged:{get:function(){return this._composite._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._composite.values}},owner:{get:function(){return this._owner}}});Io.prototype.addCollection=function(e,t){u(t)?this._collections.splice(t,0,e):(t=this._collections.length,this._collections.push(e)),uy(this)};Io.prototype.removeCollection=function(e){let t=this._collections.indexOf(e);return t!==-1?(this._collections.splice(t,1),uy(this),!0):!1};Io.prototype.removeAllCollections=function(){this._collections.length=0,uy(this)};Io.prototype.containsCollection=function(e){return this._collections.indexOf(e)!==-1};Io.prototype.contains=function(e){return this._composite.contains(e)};Io.prototype.indexOfCollection=function(e){return this._collections.indexOf(e)};Io.prototype.getCollection=function(e){return this._collections[e]};Io.prototype.getCollectionsLength=function(){return this._collections.length};function FV(e,t){return e.indexOf(t)}function Xae(e,t,n){let i=e._collections;if(t=P.clamp(t,0,i.length-1),n=P.clamp(n,0,i.length-1),t===n)return;let r=i[t];i[t]=i[n],i[n]=r,uy(e)}Io.prototype.raiseCollection=function(e){let t=FV(this._collections,e);Xae(this,t,t+1)};Io.prototype.lowerCollection=function(e){let t=FV(this._collections,e);Xae(this,t,t-1)};Io.prototype.raiseCollectionToTop=function(e){let t=FV(this._collections,e);t!==this._collections.length-1&&(this._collections.splice(t,1),this._collections.push(e),uy(this))};Io.prototype.lowerCollectionToBottom=function(e){let t=FV(this._collections,e);t!==0&&(this._collections.splice(t,1),this._collections.splice(0,0,e),uy(this))};Io.prototype.suspendEvents=function(){this._suspendCount++,this._composite.suspendEvents()};Io.prototype.resumeEvents=function(){this._suspendCount--,this._shouldRecomposite&&this._suspendCount===0&&(uy(this),this._shouldRecomposite=!1),this._composite.resumeEvents()};Io.prototype.computeAvailability=function(){return this._composite.computeAvailability()};Io.prototype.getById=function(e){return this._composite.getById(e)};Io.prototype._onCollectionChanged=function(e,t,n){let i=this._collectionsCopy,r=i.length,o=this._composite;o.suspendEvents();let s,a,c,l,f=n.length,d=this._eventHash,p=e.id;for(s=0;s<f;s++){let m=n[s];Yae(this,d,p,m);let A=m.id;for(a=r-1;a>=0;a--)c=i[a].getById(A),u(c)&&(u(l)||(l=o.getById(A),B9(l)),l.merge(c));u(l)||o.removeById(A),l=void 0}let g=t.length;for(s=0;s<g;s++){let m=t[s];qae(this,d,p,m);let A=m.id;for(a=r-1;a>=0;a--)c=i[a].getById(A),u(c)&&(u(l)||(l=o.getById(A),u(l)?B9(l):(NV.id=A,l=new Kr(NV),o.add(l))),l.merge(c));l=void 0}o.resumeEvents()};Io.prototype._onDefinitionChanged=function(e,t,n,i){let r=this._collections,o=this._composite,s=r.length,a=e.id,c=o.getById(a),l=c[t],f=!u(l),d=!0;for(let p=s-1;p>=0;p--){let g=r[p].getById(e.id);if(u(g)){let m=g[t];if(u(m)){if(d)if(d=!1,u(m.merge)&&u(m.clone))l=m.clone(l);else{l=m;break}l.merge(m)}}}f&&c.propertyNames.indexOf(t)===-1&&c.addProperty(t),c[t]=l};var L9=Io;function N9(){this._removalFunctions=[]}N9.prototype.add=function(e,t,n){let i=e.addEventListener(t,n);this._removalFunctions.push(i);let r=this;return function(){i();let o=r._removalFunctions;o.splice(o.indexOf(i),1)}};N9.prototype.removeAll=function(){let e=this._removalFunctions;for(let t=0,n=e.length;t<n;++t)e[t]();e.length=0};var Po=N9;function V9(e,t){return ee.compare(e.start,t.start)}function Oo(e){if(this._intervals=[],this._changedEvent=new ge,u(e)){let t=e.length;for(let n=0;n<t;n++)this.addInterval(e[n])}}Object.defineProperties(Oo.prototype,{changedEvent:{get:function(){return this._changedEvent}},start:{get:function(){let e=this._intervals;return e.length===0?void 0:e[0].start}},isStartIncluded:{get:function(){let e=this._intervals;return e.length===0?!1:e[0].isStartIncluded}},stop:{get:function(){let e=this._intervals,t=e.length;return t===0?void 0:e[t-1].stop}},isStopIncluded:{get:function(){let e=this._intervals,t=e.length;return t===0?!1:e[t-1].isStopIncluded}},length:{get:function(){return this._intervals.length}},isEmpty:{get:function(){return this._intervals.length===0}}});Oo.prototype.equals=function(e,t){if(this===e)return!0;if(!(e instanceof Oo))return!1;let n=this._intervals,i=e._intervals,r=n.length;if(r!==i.length)return!1;for(let o=0;o<r;o++)if(!xn.equals(n[o],i[o],t))return!1;return!0};Oo.prototype.get=function(e){return this._intervals[e]};Oo.prototype.removeAll=function(){this._intervals.length>0&&(this._intervals.length=0,this._changedEvent.raiseEvent(this))};Oo.prototype.findIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t]:void 0};Oo.prototype.findDataForIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t].data:void 0};Oo.prototype.contains=function(e){return this.indexOf(e)>=0};var F9=new xn;Oo.prototype.indexOf=function(e){let t=this._intervals;F9.start=e,F9.stop=e;let n=Pr(t,F9,V9);return n>=0?t[n].isStartIncluded?n:n>0&&t[n-1].stop.equals(e)&&t[n-1].isStopIncluded?n-1:~n:(n=~n,n>0&&n-1<t.length&&xn.contains(t[n-1],e)?n-1:~n)};Oo.prototype.findInterval=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.start,n=e.stop,i=e.isStartIncluded,r=e.isStopIncluded,o=this._intervals;for(let s=0,a=o.length;s<a;s++){let c=o[s];if((!u(t)||c.start.equals(t))&&(!u(n)||c.stop.equals(n))&&(!u(i)||c.isStartIncluded===i)&&(!u(r)||c.isStopIncluded===r))return o[s]}};Oo.prototype.addInterval=function(e,t){if(e.isEmpty)return;let n=this._intervals;if(n.length===0||ee.greaterThan(e.start,n[n.length-1].stop)){n.push(e),this._changedEvent.raiseEvent(this);return}let i=Pr(n,e,V9);i<0?i=~i:i>0&&e.isStartIncluded&&n[i-1].isStartIncluded&&n[i-1].start.equals(e.start)?--i:i<n.length&&!e.isStartIncluded&&n[i].isStartIncluded&&n[i].start.equals(e.start)&&++i;let r;for(i>0&&(r=ee.compare(n[i-1].stop,e.start),(r>0||r===0&&(n[i-1].isStopIncluded||e.isStartIncluded))&&((u(t)?t(n[i-1].data,e.data):n[i-1].data===e.data)?(ee.greaterThan(e.stop,n[i-1].stop)?e=new xn({start:n[i-1].start,stop:e.stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:e.isStopIncluded,data:e.data}):e=new xn({start:n[i-1].start,stop:n[i-1].stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:n[i-1].isStopIncluded||e.stop.equals(n[i-1].stop)&&e.isStopIncluded,data:e.data}),n.splice(i-1,1),--i):(r=ee.compare(n[i-1].stop,e.stop),(r>0||r===0&&n[i-1].isStopIncluded&&!e.isStopIncluded)&&n.splice(i,0,new xn({start:e.stop,stop:n[i-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i-1].isStopIncluded,data:n[i-1].data})),n[i-1]=new xn({start:n[i-1].start,stop:e.start,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:n[i-1].data}))));i<n.length&&(r=ee.compare(e.stop,n[i].start),r>0||r===0&&(e.isStopIncluded||n[i].isStartIncluded));)if(u(t)?t(n[i].data,e.data):n[i].data===e.data)e=new xn({start:e.start,stop:ee.greaterThan(n[i].stop,e.stop)?n[i].stop:e.stop,isStartIncluded:e.isStartIncluded,isStopIncluded:ee.greaterThan(n[i].stop,e.stop)?n[i].isStopIncluded:e.isStopIncluded,data:e.data}),n.splice(i,1);else if(n[i]=new xn({start:e.stop,stop:n[i].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i].isStopIncluded,data:n[i].data}),n[i].isEmpty)n.splice(i,1);else break;n.splice(i,0,e),this._changedEvent.raiseEvent(this)};Oo.prototype.removeInterval=function(e){if(e.isEmpty)return!1;let t=this._intervals,n=Pr(t,e,V9);n<0&&(n=~n);let i=!1;for(n>0&&(ee.greaterThan(t[n-1].stop,e.start)||t[n-1].stop.equals(e.start)&&t[n-1].isStopIncluded&&e.isStartIncluded)&&(i=!0,(ee.greaterThan(t[n-1].stop,e.stop)||t[n-1].isStopIncluded&&!e.isStopIncluded&&t[n-1].stop.equals(e.stop))&&t.splice(n,0,new xn({start:e.stop,stop:t[n-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n-1].isStopIncluded,data:t[n-1].data})),t[n-1]=new xn({start:t[n-1].start,stop:e.start,isStartIncluded:t[n-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:t[n-1].data})),n<t.length&&!e.isStartIncluded&&t[n].isStartIncluded&&e.start.equals(t[n].start)&&(i=!0,t.splice(n,0,new xn({start:t[n].start,stop:t[n].start,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data})),++n);n<t.length&&ee.greaterThan(e.stop,t[n].stop);)i=!0,t.splice(n,1);return n<t.length&&e.stop.equals(t[n].stop)&&(i=!0,!e.isStopIncluded&&t[n].isStopIncluded?n+1<t.length&&t[n+1].start.equals(e.stop)&&t[n].data===t[n+1].data?(t.splice(n,1),t[n]=new xn({start:t[n].start,stop:t[n].stop,isStartIncluded:!0,isStopIncluded:t[n].isStopIncluded,data:t[n].data})):t[n]=new xn({start:e.stop,stop:e.stop,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data}):t.splice(n,1)),n<t.length&&(ee.greaterThan(e.stop,t[n].start)||e.stop.equals(t[n].start)&&e.isStopIncluded&&t[n].isStartIncluded)&&(i=!0,t[n]=new xn({start:e.stop,stop:t[n].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n].isStopIncluded,data:t[n].data})),i&&this._changedEvent.raiseEvent(this),i};Oo.prototype.intersect=function(e,t,n){let i=new Oo,r=0,o=0,s=this._intervals,a=e._intervals;for(;r<s.length&&o<a.length;){let c=s[r],l=a[o];if(ee.lessThan(c.stop,l.start))++r;else if(ee.lessThan(l.stop,c.start))++o;else{if(u(n)||u(t)&&t(c.data,l.data)||!u(t)&&l.data===c.data){let f=xn.intersect(c,l,new xn,n);f.isEmpty||i.addInterval(f,t)}ee.lessThan(c.stop,l.stop)||c.stop.equals(l.stop)&&!c.isStopIncluded&&l.isStopIncluded?++r:++o}}return i};Oo.fromJulianDateArray=function(e,t){u(t)||(t=new Oo);let n=e.julianDates,i=n.length,r=e.dataCallback,o=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=y(e.leadingInterval,!1),c=y(e.trailingInterval,!1),l,f=0;a&&(++f,l=new xn({start:ze.MINIMUM_VALUE,stop:n[0],isStartIncluded:!0,isStopIncluded:!o}),l.data=u(r)?r(l,t.length):t.length,t.addInterval(l));for(let d=0;d<i-1;++d){let p=n[d],g=n[d+1];l=new xn({start:p,stop:g,isStartIncluded:t.length===f?o:!0,isStopIncluded:d===i-2?s:!1}),l.data=u(r)?r(l,t.length):t.length,t.addInterval(l),p=g}return c&&(l=new xn({start:n[i-1],stop:ze.MAXIMUM_VALUE,isStartIncluded:!s,isStopIncluded:!0}),l.data=u(r)?r(l,t.length):t.length,t.addInterval(l)),t};var nc=new Qm,lR=[0,31,28,31,30,31,30,31,31,30,31,30,31];function U9(e,t,n){u(n)||(n=new ee),ee.toGregorianDate(e,nc);let i=nc.millisecond+t.millisecond,r=nc.second+t.second,o=nc.minute+t.minute,s=nc.hour+t.hour,a=nc.day+t.day,c=nc.month+t.month,l=nc.year+t.year;for(i>=1e3&&(r+=Math.floor(i/1e3),i=i%1e3),r>=60&&(o+=Math.floor(r/60),r=r%60),o>=60&&(s+=Math.floor(o/60),o=o%60),s>=24&&(a+=Math.floor(s/24),s=s%24),lR[2]=$m(l)?29:28;a>lR[c]||c>=13;)a>lR[c]&&(a-=lR[c],++c),c>=13&&(--c,l+=Math.floor(c/12),c=c%12,++c),lR[2]=$m(l)?29:28;return nc.millisecond=i,nc.second=r,nc.minute=o,nc.hour=s,nc.day=a,nc.month=c,nc.year=l,ee.fromGregorianDate(nc,n)}var sWe=new ee,aWe=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/;function Kae(e,t){if(!u(e)||e.length===0)return!1;if(t.year=0,t.month=0,t.day=0,t.hour=0,t.minute=0,t.second=0,t.millisecond=0,e[0]==="P"){let n=e.match(aWe);if(!u(n))return!1;if(u(n[1])&&(t.year=Number(n[1].replace(",","."))),u(n[2])&&(t.month=Number(n[2].replace(",","."))),u(n[3])&&(t.day=Number(n[3].replace(",","."))*7),u(n[4])&&(t.day+=Number(n[4].replace(",","."))),u(n[5])&&(t.hour=Number(n[5].replace(",","."))),u(n[6])&&(t.minute=Number(n[6].replace(",","."))),u(n[7])){let i=Number(n[7].replace(",","."));t.second=Math.floor(i),t.millisecond=i%1*1e3}}else e[e.length-1]!=="Z"&&(e+="Z"),ee.toGregorianDate(ee.fromIso8601(e,sWe),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}var uR=new Qm;Oo.fromIso8601=function(e,t){let n=e.iso8601.split("/"),i=ee.fromIso8601(n[0]),r=ee.fromIso8601(n[1]),o=[];if(!Kae(n[2],uR))o.push(i,r);else{let s=ee.clone(i);for(o.push(s);ee.compare(s,r)<0;)s=U9(s,uR),ee.compare(r,s)<=0&&ee.clone(r,s),o.push(s)}return Oo.fromJulianDateArray({julianDates:o,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};Oo.fromIso8601DateArray=function(e,t){return Oo.fromJulianDateArray({julianDates:e.iso8601Dates.map(function(n){return ee.fromIso8601(n)}),isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};Oo.fromIso8601DurationArray=function(e,t){let n=e.epoch,i=e.iso8601Durations,r=y(e.relativeToPrevious,!1),o=[],s,a,c=i.length;for(let l=0;l<c;++l)(Kae(i[l],uR)||l===0)&&(r&&u(a)?s=U9(a,uR):s=U9(n,uR),o.push(s),a=s);return Oo.fromJulianDateArray({julianDates:o,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};var Mo=Oo;function cWe(e,t,n,i){function r(){n.raiseEvent(e)}let o=[];t.removeAll();let s=i.length;for(let a=0;a<s;a++){let c=i.get(a);u(c.data)&&o.indexOf(c.data)===-1&&t.add(c.data.definitionChanged,r)}}function ux(){this._eventHelper=new Po,this._definitionChanged=new ge,this._intervals=new Mo,this._intervals.changedEvent.addEventListener(ux.prototype._intervalsChanged,this)}Object.defineProperties(ux.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});ux.prototype.getValue=function(e,t){let n=this._intervals.findDataForIntervalContainingDate(e);if(u(n))return n.getValue(e,t)};ux.prototype.equals=function(e){return this===e||e instanceof ux&&this._intervals.equals(e._intervals,q.equals)};ux.prototype._intervalsChanged=function(){cWe(this,this._eventHelper,this._definitionChanged,this._intervals),this._definitionChanged.raiseEvent(this)};var ic=ux;function fy(){this._definitionChanged=new ge,this._composite=new ic,this._composite.definitionChanged.addEventListener(fy.prototype._raiseDefinitionChanged,this)}Object.defineProperties(fy.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite._intervals}}});fy.prototype.getType=function(e){let t=this._composite._intervals.findDataForIntervalContainingDate(e);if(u(t))return t.getType(e)};fy.prototype.getValue=function(e,t){let n=this._composite._intervals.findDataForIntervalContainingDate(e);if(u(n))return n.getValue(e,t)};fy.prototype.equals=function(e){return this===e||e instanceof fy&&this._composite.equals(e._composite,q.equals)};fy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var RE=fy;function dy(e){this._referenceFrame=y(e,rr.FIXED),this._definitionChanged=new ge,this._composite=new ic,this._composite.definitionChanged.addEventListener(dy.prototype._raiseDefinitionChanged,this)}Object.defineProperties(dy.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite.intervals}},referenceFrame:{get:function(){return this._referenceFrame},set:function(e){this._referenceFrame=e}}});dy.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,rr.FIXED,t)};dy.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._composite._intervals.findDataForIntervalContainingDate(e);if(u(i))return i.getValueInReferenceFrame(e,t,n)};dy.prototype.equals=function(e){return this===e||e instanceof dy&&this._referenceFrame===e._referenceFrame&&this._composite.equals(e._composite,q.equals)};dy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var $s=dy;var lWe={ROUNDED:0,MITERED:1,BEVELED:2},Ri=Object.freeze(lWe);var ea=[new h,new h],uWe=new h,fWe=new h,dWe=new h,hWe=new h,mWe=new h,pWe=new h,_We=new h,gWe=new h,yWe=new h,BE=new h,UV=new h,fR={},k9=new me;function AWe(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++){let r=e[i];k9=t.cartesianToCartographic(r,k9),n[i]=k9.height,e[i]=t.scaleToGeodeticSurface(r,r)}return n}function z9(e,t,n,i){let r=e[0],o=e[1],s=h.angleBetween(r,o),a=Math.ceil(s/i),c=new Array(a),l;if(t===n){for(l=0;l<a;l++)c[l]=t;return c.push(n),c}let d=(n-t)/a;for(l=1;l<a;l++){let p=t+l*d;c[l]=p}return c[0]=t,c.push(n),c}var VV=new h,kV=new h;function xWe(e,t,n,i){let r=new _a(n,i),o=r.projectPointOntoPlane(h.add(n,e,VV),VV),s=r.projectPointOntoPlane(h.add(n,t,kV),kV),a=H.angleBetween(o,s);return s.x*o.y-s.y*o.x>=0?-a:a}var CWe=new h(-1,0,0),fx=new N,TWe=new N,H9=new Q,EWe=Q.IDENTITY.clone(),bWe=new h,SWe=new se,Jae=new h;function f_(e,t,n,i,r,o,s,a){let c=bWe,l=SWe;fx=Mt.eastNorthUpToFixedFrame(e,r,fx),c=N.multiplyByPointAsVector(fx,CWe,c),c=h.normalize(c,c);let f=xWe(c,t,e,r);H9=Q.fromRotationZ(f,H9),Jae.z=o,fx=N.multiplyTransformation(fx,N.fromRotationTranslation(H9,Jae,TWe),fx);let d=EWe;d[0]=s;for(let p=0;p<a;p++)for(let g=0;g<n.length;g+=3)l=h.fromArray(n,g,l),l=Q.multiplyByVector(d,l,l),l=N.multiplyByPoint(fx,l,l),i.push(l.x,l.y,l.z);return i}var vWe=new h;function G9(e,t,n,i,r,o,s){for(let a=0;a<e.length;a+=3){let c=h.fromArray(e,a,vWe);i=f_(c,t,n,i,r,o[a/3],s,1)}return i}function wWe(e,t){let n=e.length,i=new Array(n*6),r=0,o=t.x+t.width/2,s=t.y+t.height/2,a=e[0];i[r++]=a.x-o,i[r++]=0,i[r++]=a.y-s;for(let c=1;c<n;c++){a=e[c];let l=a.x-o,f=a.y-s;i[r++]=l,i[r++]=0,i[r++]=f,i[r++]=l,i[r++]=0,i[r++]=f}return a=e[0],i[r++]=a.x-o,i[r++]=0,i[r++]=a.y-s,i}function Zae(e,t){let n=e.length,i=new Array(n*3),r=0,o=t.x+t.width/2,s=t.y+t.height/2;for(let a=0;a<n;a++)i[r++]=e[a].x-o,i[r++]=0,i[r++]=e[a].y-s;return i}var Qae=new Le,$ae=new h,ece=new Q;function tce(e,t,n,i,r,o,s,a,c,l){let f=h.angleBetween(h.subtract(t,e,BE),h.subtract(n,e,UV)),d=i===Ri.BEVELED?0:Math.ceil(f/P.toRadians(5)),p;r?p=Q.fromQuaternion(Le.fromAxisAngle(h.negate(e,BE),f/(d+1),Qae),ece):p=Q.fromQuaternion(Le.fromAxisAngle(e,f/(d+1),Qae),ece);let g,m;if(t=h.clone(t,$ae),d>0){let A=l?2:1;for(let x=0;x<d;x++)t=Q.multiplyByVector(p,t,t),g=h.subtract(t,e,BE),g=h.normalize(g,g),r||(g=h.negate(g,g)),m=o.scaleToGeodeticSurface(t,UV),s=f_(m,g,a,s,o,c,1,A)}else g=h.subtract(t,e,BE),g=h.normalize(g,g),r||(g=h.negate(g,g)),m=o.scaleToGeodeticSurface(t,UV),s=f_(m,g,a,s,o,c,1,1),n=h.clone(n,$ae),g=h.subtract(n,e,BE),g=h.normalize(g,g),r||(g=h.negate(g,g)),m=o.scaleToGeodeticSurface(n,UV),s=f_(m,g,a,s,o,c,1,1);return s}fR.removeDuplicatesFromShape=function(e){let t=e.length,n=[];for(let i=t-1,r=0;r<t;i=r++){let o=e[i],s=e[r];H.equals(o,s)||n.push(s)}return n};fR.angleIsGreaterThanPi=function(e,t,n,i){let r=new _a(n,i),o=r.projectPointOntoPlane(h.add(n,e,VV),VV),s=r.projectPointOntoPlane(h.add(n,t,kV),kV);return s.x*o.y-s.y*o.x>=0};var DWe=new h,IWe=new h;fR.computePositions=function(e,t,n,i,r){let o=i._ellipsoid,s=AWe(e,o),a=i._granularity,c=i._cornerType,l=r?wWe(t,n):Zae(t,n),f=r?Zae(t,n):void 0,d=n.height/2,p=n.width/2,g=e.length,m=[],A=r?[]:void 0,x=uWe,C=fWe,T=dWe,E=hWe,S=mWe,v=pWe,D=_We,M=gWe,O=yWe,B=e[0],L=e[1];E=o.geodeticSurfaceNormal(B,E),x=h.subtract(L,B,x),x=h.normalize(x,x),M=h.cross(E,x,M),M=h.normalize(M,M);let _=s[0],b=s[1];r&&(A=f_(B,M,f,A,o,_+d,1,1)),O=h.clone(B,O),B=L,C=h.negate(x,C);let w,I;for(let k=1;k<g-1;k++){let V=r?2:1;if(L=e[k+1],B.equals(L)){Ot("Positions are too close and are considered equivalent with rounding error.");continue}x=h.subtract(L,B,x),x=h.normalize(x,x),T=h.add(x,C,T),T=h.normalize(T,T),E=o.geodeticSurfaceNormal(B,E);let G=h.multiplyByScalar(E,h.dot(x,E),DWe);h.subtract(x,G,G),h.normalize(G,G);let U=h.multiplyByScalar(E,h.dot(C,E),IWe);if(h.subtract(C,U,U),h.normalize(U,U),!P.equalsEpsilon(Math.abs(h.dot(G,U)),1,P.EPSILON7)){T=h.cross(T,E,T),T=h.cross(E,T,T),T=h.normalize(T,T);let W=1/Math.max(.25,h.magnitude(h.cross(T,C,BE))),Z=fR.angleIsGreaterThanPi(x,C,B,o);Z?(S=h.add(B,h.multiplyByScalar(T,W*p,T),S),v=h.add(S,h.multiplyByScalar(M,p,v),v),ea[0]=h.clone(O,ea[0]),ea[1]=h.clone(v,ea[1]),w=z9(ea,_+d,b+d,a),I=Mi.generateArc({positions:ea,granularity:a,ellipsoid:o}),m=G9(I,M,l,m,o,w,1),M=h.cross(E,x,M),M=h.normalize(M,M),D=h.add(S,h.multiplyByScalar(M,p,D),D),c===Ri.ROUNDED||c===Ri.BEVELED?tce(S,v,D,c,Z,o,m,l,b+d,r):(T=h.negate(T,T),m=f_(B,T,l,m,o,b+d,W,V)),O=h.clone(D,O)):(S=h.add(B,h.multiplyByScalar(T,W*p,T),S),v=h.add(S,h.multiplyByScalar(M,-p,v),v),ea[0]=h.clone(O,ea[0]),ea[1]=h.clone(v,ea[1]),w=z9(ea,_+d,b+d,a),I=Mi.generateArc({positions:ea,granularity:a,ellipsoid:o}),m=G9(I,M,l,m,o,w,1),M=h.cross(E,x,M),M=h.normalize(M,M),D=h.add(S,h.multiplyByScalar(M,-p,D),D),c===Ri.ROUNDED||c===Ri.BEVELED?tce(S,v,D,c,Z,o,m,l,b+d,r):m=f_(B,T,l,m,o,b+d,W,V),O=h.clone(D,O)),C=h.negate(x,C)}else m=f_(O,M,l,m,o,_+d,1,1),O=B;_=b,b=s[k+1],B=L}ea[0]=h.clone(O,ea[0]),ea[1]=h.clone(B,ea[1]),w=z9(ea,_+d,b+d,a),I=Mi.generateArc({positions:ea,granularity:a,ellipsoid:o}),m=G9(I,M,l,m,o,w,1),r&&(A=f_(B,M,f,A,o,b+d,1,1)),g=m.length;let R=r?g+A.length:g,F=new Float64Array(R);return F.set(m),r&&F.set(A,g),F};var Hd=fR;var j9={},LE=new h,sce=new h,PWe=new h,nce=new h,Hc=[new h,new h],ace=new h,cce=new h,lce=new h,OWe=new h,MWe=new h,RWe=new h,BWe=new h,LWe=new h,NWe=new h,FWe=new h,ice=new Le,rce=new Q;function zV(e,t,n,i,r){let o=h.angleBetween(h.subtract(t,e,LE),h.subtract(n,e,sce)),s=i===Ri.BEVELED?1:Math.ceil(o/P.toRadians(5))+1,a=s*3,c=new Array(a);c[a-3]=n.x,c[a-2]=n.y,c[a-1]=n.z;let l;r?l=Q.fromQuaternion(Le.fromAxisAngle(h.negate(e,LE),o/s,ice),rce):l=Q.fromQuaternion(Le.fromAxisAngle(e,o/s,ice),rce);let f=0;t=h.clone(t,LE);for(let d=0;d<s;d++)t=Q.multiplyByVector(l,t,t),c[f++]=t.x,c[f++]=t.y,c[f++]=t.z;return c}function UWe(e){let t=ace,n=cce,i=lce,r=e[1];n=h.fromArray(e[1],r.length-3,n),i=h.fromArray(e[0],0,i),t=h.midpoint(n,i,t);let o=zV(t,n,i,Ri.ROUNDED,!1),s=e.length-1,a=e[s-1];r=e[s],n=h.fromArray(a,a.length-3,n),i=h.fromArray(r,0,i),t=h.midpoint(n,i,t);let c=zV(t,n,i,Ri.ROUNDED,!1);return[o,c]}function oce(e,t,n,i){let r=LE;return i?r=h.add(e,t,r):(t=h.negate(t,t),r=h.add(e,t,r)),[r.x,r.y,r.z,n.x,n.y,n.z]}function W9(e,t,n,i){let r=new Array(e.length),o=new Array(e.length),s=h.multiplyByScalar(t,n,LE),a=h.negate(s,sce),c=0,l=e.length-1;for(let f=0;f<e.length;f+=3){let d=h.fromArray(e,f,PWe),p=h.add(d,a,nce);r[c++]=p.x,r[c++]=p.y,r[c++]=p.z;let g=h.add(d,s,nce);o[l--]=g.z,o[l--]=g.y,o[l--]=g.x}return i.push(r,o),i}j9.addAttribute=function(e,t,n,i){let r=t.x,o=t.y,s=t.z;u(n)&&(e[n]=r,e[n+1]=o,e[n+2]=s),u(i)&&(e[i]=s,e[i-1]=o,e[i-2]=r)};var VWe=new h,kWe=new h;j9.computePositions=function(e){let t=e.granularity,n=e.positions,i=e.ellipsoid,r=e.width/2,o=e.cornerType,s=e.saveAttributes,a=ace,c=cce,l=lce,f=OWe,d=MWe,p=RWe,g=BWe,m=LWe,A=NWe,x=FWe,C=[],T=s?[]:void 0,E=s?[]:void 0,S=n[0],v=n[1];c=h.normalize(h.subtract(v,S,c),c),a=i.geodeticSurfaceNormal(S,a),f=h.normalize(h.cross(a,c,f),f),s&&(T.push(f.x,f.y,f.z),E.push(a.x,a.y,a.z)),g=h.clone(S,g),S=v,l=h.negate(c,l);let D,M=[],O,B=n.length;for(O=1;O<B-1;O++){a=i.geodeticSurfaceNormal(S,a),v=n[O+1],c=h.normalize(h.subtract(v,S,c),c),d=h.normalize(h.add(c,l,d),d);let _=h.multiplyByScalar(a,h.dot(c,a),VWe);h.subtract(c,_,_),h.normalize(_,_);let b=h.multiplyByScalar(a,h.dot(l,a),kWe);if(h.subtract(l,b,b),h.normalize(b,b),!P.equalsEpsilon(Math.abs(h.dot(_,b)),1,P.EPSILON7)){d=h.cross(d,a,d),d=h.cross(a,d,d),d=h.normalize(d,d);let I=r/Math.max(.25,h.magnitude(h.cross(d,l,LE))),R=Hd.angleIsGreaterThanPi(c,l,S,i);d=h.multiplyByScalar(d,I,d),R?(m=h.add(S,d,m),x=h.add(m,h.multiplyByScalar(f,r,x),x),A=h.add(m,h.multiplyByScalar(f,r*2,A),A),Hc[0]=h.clone(g,Hc[0]),Hc[1]=h.clone(x,Hc[1]),D=Mi.generateArc({positions:Hc,granularity:t,ellipsoid:i}),C=W9(D,f,r,C),s&&(T.push(f.x,f.y,f.z),E.push(a.x,a.y,a.z)),p=h.clone(A,p),f=h.normalize(h.cross(a,c,f),f),A=h.add(m,h.multiplyByScalar(f,r*2,A),A),g=h.add(m,h.multiplyByScalar(f,r,g),g),o===Ri.ROUNDED||o===Ri.BEVELED?M.push({leftPositions:zV(m,p,A,o,R)}):M.push({leftPositions:oce(S,h.negate(d,d),A,R)})):(A=h.add(S,d,A),x=h.add(A,h.negate(h.multiplyByScalar(f,r,x),x),x),m=h.add(A,h.negate(h.multiplyByScalar(f,r*2,m),m),m),Hc[0]=h.clone(g,Hc[0]),Hc[1]=h.clone(x,Hc[1]),D=Mi.generateArc({positions:Hc,granularity:t,ellipsoid:i}),C=W9(D,f,r,C),s&&(T.push(f.x,f.y,f.z),E.push(a.x,a.y,a.z)),p=h.clone(m,p),f=h.normalize(h.cross(a,c,f),f),m=h.add(A,h.negate(h.multiplyByScalar(f,r*2,m),m),m),g=h.add(A,h.negate(h.multiplyByScalar(f,r,g),g),g),o===Ri.ROUNDED||o===Ri.BEVELED?M.push({rightPositions:zV(A,p,m,o,R)}):M.push({rightPositions:oce(S,d,m,R)})),l=h.negate(c,l)}S=v}a=i.geodeticSurfaceNormal(S,a),Hc[0]=h.clone(g,Hc[0]),Hc[1]=h.clone(S,Hc[1]),D=Mi.generateArc({positions:Hc,granularity:t,ellipsoid:i}),C=W9(D,f,r,C),s&&(T.push(f.x,f.y,f.z),E.push(a.x,a.y,a.z));let L;return o===Ri.ROUNDED&&(L=UWe(C)),{positions:C,corners:M,lefts:T,normals:E,endPositions:L}};var ki=j9;var dce=new h,hce=new h,HV=new h,GV=new h,zWe=new h,mce=new h,hy=new h,NE=new h;function pce(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function Gd(e,t,n,i,r,o){let s=e.normals,a=e.tangents,c=e.bitangents,l=h.normalize(h.cross(n,t,hy),hy);o.normal&&ki.addAttribute(s,t,i,r),o.tangent&&ki.addAttribute(a,l,i,r),o.bitangent&&ki.addAttribute(c,n,i,r)}function _ce(e,t,n){let i=e.positions,r=e.corners,o=e.endPositions,s=e.lefts,a=e.normals,c=new dn,l,f=0,d=0,p,g=0,m;for(p=0;p<i.length;p+=2)m=i[p].length-3,f+=m,g+=m*2,d+=i[p+1].length-3;for(f+=3,d+=3,p=0;p<r.length;p++){l=r[p];let J=r[p].leftPositions;u(J)?(m=J.length,f+=m,g+=m):(m=r[p].rightPositions.length,d+=m,g+=m)}let A=u(o),x;A&&(x=o[0].length-3,f+=x,d+=x,x/=3,g+=x*6);let C=f+d,T=new Float64Array(C),E=t.normal?new Float32Array(C):void 0,S=t.tangent?new Float32Array(C):void 0,v=t.bitangent?new Float32Array(C):void 0,D={normals:E,tangents:S,bitangents:v},M=0,O=C-1,B,L,_,b,w=dce,I=hce,R,F,k=x/2,V=Ue.createTypedArray(C/3,g),G=0;if(A){F=HV,R=GV;let J=o[0];for(w=h.fromArray(a,0,w),I=h.fromArray(s,0,I),p=0;p<k;p++)F=h.fromArray(J,(k-1-p)*3,F),R=h.fromArray(J,(k+p)*3,R),ki.addAttribute(T,R,M),ki.addAttribute(T,F,void 0,O),Gd(D,w,I,M,O,t),L=M/3,b=L+1,B=(O-2)/3,_=B-1,V[G++]=B,V[G++]=L,V[G++]=_,V[G++]=_,V[G++]=L,V[G++]=b,M+=3,O-=3}let U=0,Y=0,W=i[U++],Z=i[U++];T.set(W,M),T.set(Z,O-Z.length+1),I=h.fromArray(s,Y,I);let j,K;for(m=Z.length-3,p=0;p<m;p+=3)j=n.geodeticSurfaceNormal(h.fromArray(W,p,hy),hy),K=n.geodeticSurfaceNormal(h.fromArray(Z,m-p,NE),NE),w=h.normalize(h.add(j,K,w),w),Gd(D,w,I,M,O,t),L=M/3,b=L+1,B=(O-2)/3,_=B-1,V[G++]=B,V[G++]=L,V[G++]=_,V[G++]=_,V[G++]=L,V[G++]=b,M+=3,O-=3;for(j=n.geodeticSurfaceNormal(h.fromArray(W,m,hy),hy),K=n.geodeticSurfaceNormal(h.fromArray(Z,m,NE),NE),w=h.normalize(h.add(j,K,w),w),Y+=3,p=0;p<r.length;p++){let J;l=r[p];let _e=l.leftPositions,xe=l.rightPositions,oe,Ae,he=mce,Se=HV,Ie=GV;if(w=h.fromArray(a,Y,w),u(_e)){for(Gd(D,w,I,void 0,O,t),O-=3,oe=b,Ae=_,J=0;J<_e.length/3;J++)he=h.fromArray(_e,J*3,he),V[G++]=oe,V[G++]=Ae-J-1,V[G++]=Ae-J,ki.addAttribute(T,he,void 0,O),Se=h.fromArray(T,(Ae-J-1)*3,Se),Ie=h.fromArray(T,oe*3,Ie),I=h.normalize(h.subtract(Se,Ie,I),I),Gd(D,w,I,void 0,O,t),O-=3;he=h.fromArray(T,oe*3,he),Se=h.subtract(h.fromArray(T,Ae*3,Se),he,Se),Ie=h.subtract(h.fromArray(T,(Ae-J)*3,Ie),he,Ie),I=h.normalize(h.add(Se,Ie,I),I),Gd(D,w,I,M,void 0,t),M+=3}else{for(Gd(D,w,I,M,void 0,t),M+=3,oe=_,Ae=b,J=0;J<xe.length/3;J++)he=h.fromArray(xe,J*3,he),V[G++]=oe,V[G++]=Ae+J,V[G++]=Ae+J+1,ki.addAttribute(T,he,M),Se=h.fromArray(T,oe*3,Se),Ie=h.fromArray(T,(Ae+J)*3,Ie),I=h.normalize(h.subtract(Se,Ie,I),I),Gd(D,w,I,M,void 0,t),M+=3;he=h.fromArray(T,oe*3,he),Se=h.subtract(h.fromArray(T,(Ae+J)*3,Se),he,Se),Ie=h.subtract(h.fromArray(T,Ae*3,Ie),he,Ie),I=h.normalize(h.negate(h.add(Ie,Se,I),I),I),Gd(D,w,I,void 0,O,t),O-=3}for(W=i[U++],Z=i[U++],W.splice(0,3),Z.splice(Z.length-3,3),T.set(W,M),T.set(Z,O-Z.length+1),m=Z.length-3,Y+=3,I=h.fromArray(s,Y,I),J=0;J<Z.length;J+=3)j=n.geodeticSurfaceNormal(h.fromArray(W,J,hy),hy),K=n.geodeticSurfaceNormal(h.fromArray(Z,m-J,NE),NE),w=h.normalize(h.add(j,K,w),w),Gd(D,w,I,M,O,t),b=M/3,L=b-1,_=(O-2)/3,B=_+1,V[G++]=B,V[G++]=L,V[G++]=_,V[G++]=_,V[G++]=L,V[G++]=b,M+=3,O-=3;M-=3,O+=3}if(w=h.fromArray(a,a.length-3,w),Gd(D,w,I,M,O,t),A){M+=3,O-=3,F=HV,R=GV;let J=o[1];for(p=0;p<k;p++)F=h.fromArray(J,(x-p-1)*3,F),R=h.fromArray(J,p*3,R),ki.addAttribute(T,F,void 0,O),ki.addAttribute(T,R,M),Gd(D,w,I,M,O,t),b=M/3,L=b-1,_=(O-2)/3,B=_+1,V[G++]=B,V[G++]=L,V[G++]=_,V[G++]=_,V[G++]=L,V[G++]=b,M+=3,O-=3}if(c.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T}),t.st){let J=new Float32Array(C/3*2),_e,xe,oe=0;if(A){f/=3,d/=3;let Ae=Math.PI/(x+1);xe=1/(f-x+1),_e=1/(d-x+1);let he,Se=x/2;for(p=Se+1;p<x+1;p++)he=P.PI_OVER_TWO+Ae*p,J[oe++]=_e*(1+Math.cos(he)),J[oe++]=.5*(1+Math.sin(he));for(p=1;p<d-x+1;p++)J[oe++]=p*_e,J[oe++]=0;for(p=x;p>Se;p--)he=P.PI_OVER_TWO-p*Ae,J[oe++]=1-_e*(1+Math.cos(he)),J[oe++]=.5*(1+Math.sin(he));for(p=Se;p>0;p--)he=P.PI_OVER_TWO-Ae*p,J[oe++]=1-xe*(1+Math.cos(he)),J[oe++]=.5*(1+Math.sin(he));for(p=f-x;p>0;p--)J[oe++]=p*xe,J[oe++]=1;for(p=1;p<Se+1;p++)he=P.PI_OVER_TWO+Ae*p,J[oe++]=xe*(1+Math.cos(he)),J[oe++]=.5*(1+Math.sin(he))}else{for(f/=3,d/=3,xe=1/(f-1),_e=1/(d-1),p=0;p<d;p++)J[oe++]=p*_e,J[oe++]=0;for(p=f;p>0;p--)J[oe++]=(p-1)*xe,J[oe++]=1}c.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:J})}return t.normal&&(c.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.normals})),t.tangent&&(c.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.tangents})),t.bitangent&&(c.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.bitangents})),{attributes:c,indices:V}}function HWe(e,t){if(!t.normal&&!t.tangent&&!t.bitangent&&!t.st)return e;let n=e.position.values,i,r;(t.normal||t.bitangent)&&(i=e.normal.values,r=e.bitangent.values);let o=e.position.values.length/18,s=o*3,a=o*2,c=s*2,l;if(t.normal||t.bitangent||t.tangent){let f=t.normal?new Float32Array(s*6):void 0,d=t.tangent?new Float32Array(s*6):void 0,p=t.bitangent?new Float32Array(s*6):void 0,g=dce,m=hce,A=HV,x=GV,C=zWe,T=mce,E=c;for(l=0;l<s;l+=3){let S=E+c;g=h.fromArray(n,l,g),m=h.fromArray(n,l+s,m),A=h.fromArray(n,(l+3)%s,A),m=h.subtract(m,g,m),A=h.subtract(A,g,A),x=h.normalize(h.cross(m,A,x),x),t.normal&&(ki.addAttribute(f,x,S),ki.addAttribute(f,x,S+3),ki.addAttribute(f,x,E),ki.addAttribute(f,x,E+3)),(t.tangent||t.bitangent)&&(T=h.fromArray(i,l,T),t.bitangent&&(ki.addAttribute(p,T,S),ki.addAttribute(p,T,S+3),ki.addAttribute(p,T,E),ki.addAttribute(p,T,E+3)),t.tangent&&(C=h.normalize(h.cross(T,x,C),C),ki.addAttribute(d,C,S),ki.addAttribute(d,C,S+3),ki.addAttribute(d,C,E),ki.addAttribute(d,C,E+3))),E+=6}if(t.normal){for(f.set(i),l=0;l<s;l+=3)f[l+s]=-i[l],f[l+s+1]=-i[l+1],f[l+s+2]=-i[l+2];e.normal.values=f}else e.normal=void 0;if(t.bitangent?(p.set(r),p.set(r,s),e.bitangent.values=p):e.bitangent=void 0,t.tangent){let S=e.tangent.values;d.set(S),d.set(S,s),e.tangent.values=d}}if(t.st){let f=e.st.values,d=new Float32Array(a*6);d.set(f),d.set(f,a);let p=a*2;for(let g=0;g<2;g++){for(d[p++]=f[0],d[p++]=f[1],l=2;l<a;l+=2){let m=f[l],A=f[l+1];d[p++]=m,d[p++]=A,d[p++]=m,d[p++]=A}d[p++]=f[0],d[p++]=f[1]}e.st.values=d}return e}function q9(e,t,n){n[t++]=e[0],n[t++]=e[1],n[t++]=e[2];for(let i=3;i<e.length;i+=3){let r=e[i],o=e[i+1],s=e[i+2];n[t++]=r,n[t++]=o,n[t++]=s,n[t++]=r,n[t++]=o,n[t++]=s}return n[t++]=e[0],n[t++]=e[1],n[t++]=e[2],n}function GWe(e,t){let n=new Pe({position:t.position,normal:t.normal||t.bitangent||e.shadowVolume,tangent:t.tangent,bitangent:t.normal||t.bitangent,st:t.st}),i=e.ellipsoid,r=ki.computePositions(e),o=_ce(r,n,i),s=e.height,a=e.extrudedHeight,c=o.attributes,l=o.indices,f=c.position.values,d=f.length,p=new Float64Array(d*6),g=new Float64Array(d);g.set(f);let m=new Float64Array(d*4);f=ui.scaleToGeodeticHeight(f,s,i),m=q9(f,0,m),g=ui.scaleToGeodeticHeight(g,a,i),m=q9(g,d*2,m),p.set(f),p.set(g,d),p.set(m,d*2),c.position.values=p,c=HWe(c,t);let A,x=d/3;if(e.shadowVolume){let B=c.normal.values;d=B.length;let L=new Float32Array(d*6);for(A=0;A<d;A++)B[A]=-B[A];L.set(B,d),L=q9(B,d*4,L),c.extrudeDirection=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:L}),t.normal||(c.normal=void 0)}if(u(e.offsetAttribute)){let B=new Uint8Array(x*6);if(e.offsetAttribute===nn.TOP)B=B.fill(1,0,x).fill(1,x*2,x*4);else{let L=e.offsetAttribute===nn.NONE?0:1;B=B.fill(L)}c.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:B})}let C=l.length,T=x+x,E=Ue.createTypedArray(p.length/3,C*2+T*3);E.set(l);let S=C;for(A=0;A<C;A+=3){let B=l[A],L=l[A+1],_=l[A+2];E[S++]=_+x,E[S++]=L+x,E[S++]=B+x}let v,D,M,O;for(A=0;A<T;A+=2)v=A+T,D=v+T,M=v+1,O=D+1,E[S++]=v,E[S++]=D,E[S++]=M,E[S++]=M,E[S++]=D,E[S++]=O;return{attributes:c,indices:E}}var uce=new h,dR=new h,bf=new me;function fce(e,t,n,i,r,o){let s=h.subtract(t,e,uce);h.normalize(s,s);let a=n.geodeticSurfaceNormal(e,dR),c=h.cross(s,a,uce);h.multiplyByScalar(c,i,c);let l=r.latitude,f=r.longitude,d=o.latitude,p=o.longitude;h.add(e,c,dR),n.cartesianToCartographic(dR,bf);let g=bf.latitude,m=bf.longitude;l=Math.min(l,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),h.subtract(e,c,dR),n.cartesianToCartographic(dR,bf),g=bf.latitude,m=bf.longitude,l=Math.min(l,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),r.latitude=l,r.longitude=f,o.latitude=d,o.longitude=p}var Ef=new h,hR=new h,vl=new me,wl=new me;function gce(e,t,n,i,r){e=pce(e,t);let o=Er(e,h.equalsEpsilon),s=o.length;if(s<2||n<=0)return new le;let a=n*.5;vl.latitude=Number.POSITIVE_INFINITY,vl.longitude=Number.POSITIVE_INFINITY,wl.latitude=Number.NEGATIVE_INFINITY,wl.longitude=Number.NEGATIVE_INFINITY;let c,l;if(i===Ri.ROUNDED){let p=o[0];h.subtract(p,o[1],Ef),h.normalize(Ef,Ef),h.multiplyByScalar(Ef,a,Ef),h.add(p,Ef,hR),t.cartesianToCartographic(hR,bf),c=bf.latitude,l=bf.longitude,vl.latitude=Math.min(vl.latitude,c),vl.longitude=Math.min(vl.longitude,l),wl.latitude=Math.max(wl.latitude,c),wl.longitude=Math.max(wl.longitude,l)}for(let p=0;p<s-1;++p)fce(o[p],o[p+1],t,a,vl,wl);let f=o[s-1];h.subtract(f,o[s-2],Ef),h.normalize(Ef,Ef),h.multiplyByScalar(Ef,a,Ef),h.add(f,Ef,hR),fce(f,hR,t,a,vl,wl),i===Ri.ROUNDED&&(t.cartesianToCartographic(hR,bf),c=bf.latitude,l=bf.longitude,vl.latitude=Math.min(vl.latitude,c),vl.longitude=Math.min(vl.longitude,l),wl.latitude=Math.max(wl.latitude,c),wl.longitude=Math.max(wl.longitude,l));let d=u(r)?r:new le;return d.north=wl.latitude,d.south=vl.latitude,d.east=wl.longitude,d.west=vl.longitude,d}function h_(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.width,i=y(e.height,0),r=y(e.extrudedHeight,i);this._positions=t,this._ellipsoid=re.clone(y(e.ellipsoid,re.WGS84)),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._width=n,this._height=Math.max(i,r),this._extrudedHeight=Math.min(i,r),this._cornerType=y(e.cornerType,Ri.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createCorridorGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this.packedLength=1+t.length*h.packedLength+re.packedLength+Pe.packedLength+7}h_.pack=function(e,t,n){n=y(n,0);let i=e._positions,r=i.length;t[n++]=r;for(let o=0;o<r;++o,n+=h.packedLength)h.pack(i[o],t,n);return re.pack(e._ellipsoid,t,n),n+=re.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var yce=re.clone(re.UNIT_SPHERE),Ace=new Pe,d_={positions:void 0,ellipsoid:yce,vertexFormat:Ace,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};h_.unpack=function(e,t,n){t=y(t,0);let i=e[t++],r=new Array(i);for(let m=0;m<i;++m,t+=h.packedLength)r[m]=h.unpack(e,t);let o=re.unpack(e,t,yce);t+=re.packedLength;let s=Pe.unpack(e,t,Ace);t+=Pe.packedLength;let a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t++]===1,g=e[t];return u(n)?(n._positions=r,n._ellipsoid=re.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(s,n._vertexFormat),n._width=a,n._height=c,n._extrudedHeight=l,n._cornerType=f,n._granularity=d,n._shadowVolume=p,n._offsetAttribute=g===-1?void 0:g,n):(d_.positions=r,d_.width=a,d_.height=c,d_.extrudedHeight=l,d_.cornerType=f,d_.granularity=d,d_.shadowVolume=p,d_.offsetAttribute=g===-1?void 0:g,new h_(d_))};h_.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.positions,i=e.width,r=y(e.ellipsoid,re.WGS84),o=y(e.cornerType,Ri.ROUNDED);return gce(n,r,i,o,t)};h_.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=pce(t,i);let r=Er(t,h.equalsEpsilon);if(r.length<2||n<=0)return;let o=e._height,s=e._extrudedHeight,a=!P.equalsEpsilon(o,s,0,P.EPSILON2),c=e._vertexFormat,l={ellipsoid:i,positions:r,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!0},f;if(a)l.height=o,l.extrudedHeight=s,l.shadowVolume=e._shadowVolume,l.offsetAttribute=e._offsetAttribute,f=GWe(l,c);else{let g=ki.computePositions(l);if(f=_ce(g,c,i),f.attributes.position.values=ui.scaleToGeodeticHeight(f.attributes.position.values,o,i),u(e._offsetAttribute)){let m=e._offsetAttribute===nn.NONE?0:1,A=f.attributes.position.values.length,x=new Uint8Array(A/3).fill(m);f.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}}let d=f.attributes,p=ae.fromVertices(d.position.values,void 0,3);return c.position||(f.attributes.position.values=void 0),new ut({attributes:d,indices:f.indices,primitiveType:Be.TRIANGLES,boundingSphere:p,offsetAttribute:e._offsetAttribute})};h_.createShadowVolume=function(e,t,n){let i=e._granularity,r=e._ellipsoid,o=t(i,r),s=n(i,r);return new h_({positions:e._positions,width:e._width,cornerType:e._cornerType,ellipsoid:r,granularity:i,extrudedHeight:o,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(h_.prototype,{rectangle:{get:function(){return u(this._rectangle)||(this._rectangle=gce(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}});var dx=h_;var xce=new h,Cce=new h,WWe=new h;function jWe(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function Tce(e,t){let n=[],i=e.positions,r=e.corners,o=e.endPositions,s=new dn,a,c=0,l=0,f,d=0,p;for(f=0;f<i.length;f+=2)p=i[f].length-3,c+=p,d+=p/3*4,l+=i[f+1].length-3;for(c+=3,l+=3,f=0;f<r.length;f++){a=r[f];let R=r[f].leftPositions;u(R)?(p=R.length,c+=p,d+=p/3*2):(p=r[f].rightPositions.length,l+=p,d+=p/3*2)}let g=u(o),m;g&&(m=o[0].length-3,c+=m,l+=m,m/=3,d+=m*4);let A=c+l,x=new Float64Array(A),C=0,T=A-1,E,S,v,D,M,O,B=m/2,L=Ue.createTypedArray(A/3,d+4),_=0;if(L[_++]=C/3,L[_++]=(T-2)/3,g){n.push(C/3),O=xce,M=Cce;let R=o[0];for(f=0;f<B;f++)O=h.fromArray(R,(B-1-f)*3,O),M=h.fromArray(R,(B+f)*3,M),ki.addAttribute(x,M,C),ki.addAttribute(x,O,void 0,T),S=C/3,D=S+1,E=(T-2)/3,v=E-1,L[_++]=E,L[_++]=v,L[_++]=S,L[_++]=D,C+=3,T-=3}let b=0,w=i[b++],I=i[b++];for(x.set(w,C),x.set(I,T-I.length+1),p=I.length-3,n.push(C/3,(T-2)/3),f=0;f<p;f+=3)S=C/3,D=S+1,E=(T-2)/3,v=E-1,L[_++]=E,L[_++]=v,L[_++]=S,L[_++]=D,C+=3,T-=3;for(f=0;f<r.length;f++){let R;a=r[f];let F=a.leftPositions,k=a.rightPositions,V,G=WWe;if(u(F)){for(T-=3,V=v,n.push(D),R=0;R<F.length/3;R++)G=h.fromArray(F,R*3,G),L[_++]=V-R-1,L[_++]=V-R,ki.addAttribute(x,G,void 0,T),T-=3;n.push(V-Math.floor(F.length/6)),t===Ri.BEVELED&&n.push((T-2)/3+1),C+=3}else{for(C+=3,V=D,n.push(v),R=0;R<k.length/3;R++)G=h.fromArray(k,R*3,G),L[_++]=V+R,L[_++]=V+R+1,ki.addAttribute(x,G,C),C+=3;n.push(V+Math.floor(k.length/6)),t===Ri.BEVELED&&n.push(C/3-1),T-=3}for(w=i[b++],I=i[b++],w.splice(0,3),I.splice(I.length-3,3),x.set(w,C),x.set(I,T-I.length+1),p=I.length-3,R=0;R<I.length;R+=3)D=C/3,S=D-1,v=(T-2)/3,E=v+1,L[_++]=E,L[_++]=v,L[_++]=S,L[_++]=D,C+=3,T-=3;C-=3,T+=3,n.push(C/3,(T-2)/3)}if(g){C+=3,T-=3,O=xce,M=Cce;let R=o[1];for(f=0;f<B;f++)O=h.fromArray(R,(m-f-1)*3,O),M=h.fromArray(R,f*3,M),ki.addAttribute(x,O,void 0,T),ki.addAttribute(x,M,C),D=C/3,S=D-1,v=(T-2)/3,E=v+1,L[_++]=E,L[_++]=v,L[_++]=S,L[_++]=D,C+=3,T-=3;n.push(C/3)}else n.push(C/3,(T-2)/3);return L[_++]=C/3,L[_++]=(T-2)/3,s.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:x}),{attributes:s,indices:L,wallIndices:n}}function qWe(e){let t=e.ellipsoid,n=ki.computePositions(e),i=Tce(n,e.cornerType),r=i.wallIndices,o=e.height,s=e.extrudedHeight,a=i.attributes,c=i.indices,l=a.position.values,f=l.length,d=new Float64Array(f);d.set(l);let p=new Float64Array(f*2);if(l=ui.scaleToGeodeticHeight(l,o,t),d=ui.scaleToGeodeticHeight(d,s,t),p.set(l),p.set(d,f),a.position.values=p,f/=3,u(e.offsetAttribute)){let E=new Uint8Array(f*2);if(e.offsetAttribute===nn.TOP)E=E.fill(1,0,f);else{let S=e.offsetAttribute===nn.NONE?0:1;E=E.fill(S)}a.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:E})}let g,m=c.length,A=Ue.createTypedArray(p.length/3,(m+r.length)*2);A.set(c);let x=m;for(g=0;g<m;g+=2){let E=c[g],S=c[g+1];A[x++]=E+f,A[x++]=S+f}let C,T;for(g=0;g<r.length;g++)C=r[g],T=C+f,A[x++]=C,A[x++]=T;return{attributes:a,indices:A}}function mR(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.width,i=y(e.height,0),r=y(e.extrudedHeight,i);this._positions=t,this._ellipsoid=re.clone(y(e.ellipsoid,re.WGS84)),this._width=n,this._height=Math.max(i,r),this._extrudedHeight=Math.min(i,r),this._cornerType=y(e.cornerType,Ri.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._offsetAttribute=e.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+t.length*h.packedLength+re.packedLength+6}mR.pack=function(e,t,n){n=y(n,0);let i=e._positions,r=i.length;t[n++]=r;for(let o=0;o<r;++o,n+=h.packedLength)h.pack(i[o],t,n);return re.pack(e._ellipsoid,t,n),n+=re.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n]=y(e._offsetAttribute,-1),t};var Ece=re.clone(re.UNIT_SPHERE),my={positions:void 0,ellipsoid:Ece,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};mR.unpack=function(e,t,n){t=y(t,0);let i=e[t++],r=new Array(i);for(let p=0;p<i;++p,t+=h.packedLength)r[p]=h.unpack(e,t);let o=re.unpack(e,t,Ece);t+=re.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t];return u(n)?(n._positions=r,n._ellipsoid=re.clone(o,n._ellipsoid),n._width=s,n._height=a,n._extrudedHeight=c,n._cornerType=l,n._granularity=f,n._offsetAttribute=d===-1?void 0:d,n):(my.positions=r,my.width=s,my.height=a,my.extrudedHeight=c,my.cornerType=l,my.granularity=f,my.offsetAttribute=d===-1?void 0:d,new mR(my))};mR.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=jWe(t,i);let r=Er(t,h.equalsEpsilon);if(r.length<2||n<=0)return;let o=e._height,s=e._extrudedHeight,a=!P.equalsEpsilon(o,s,0,P.EPSILON2),c={ellipsoid:i,positions:r,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!1},l;if(a)c.height=o,c.extrudedHeight=s,c.offsetAttribute=e._offsetAttribute,l=qWe(c);else{let p=ki.computePositions(c);if(l=Tce(p,c.cornerType),l.attributes.position.values=ui.scaleToGeodeticHeight(l.attributes.position.values,o,i),u(e._offsetAttribute)){let g=l.attributes.position.values.length,m=e._offsetAttribute===nn.NONE?0:1,A=new Uint8Array(g/3).fill(m);l.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}}let f=l.attributes,d=ae.fromVertices(f.position.values,void 0,3);return new ut({attributes:f,indices:l.indices,primitiveType:Be.LINES,boundingSphere:d,offsetAttribute:e._offsetAttribute})};var pR=mR;var YWe=new ei(0);function Gc(e){ci.call(this,e),this._zIndex=0,this._terrainOffsetProperty=void 0}u(Object.create)&&(Gc.prototype=Object.create(ci.prototype),Gc.prototype.constructor=Gc);Object.defineProperties(Gc.prototype,{zIndex:{get:function(){return this._zIndex}},terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Gc.prototype._isOnTerrain=function(e,t){return this._fillEnabled&&!u(t.height)&&!u(t.extrudedHeight)&&Pc.isSupported(this._scene)};Gc.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight;return t===0||u(n)&&n!==t};Gc.prototype._computeCenter=fe.throwInstantiationError;Gc.prototype._onEntityPropertyChanged=function(e,t,n,i){if(ci.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let r=this._entity[this._geometryPropertyName];if(!u(r))return;u(r.zIndex)&&(u(r.height)||u(r.extrudedHeight))&&Ot(Ot.geometryZIndex),this._zIndex=y(r.zIndex,YWe),u(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let o=r.heightReference,s=r.extrudedHeightReference;if(u(o)||u(s)){let a=new gd(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new hA(this._scene,a,o,s)}};Gc.prototype.destroy=function(){u(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0),ci.prototype.destroy.call(this)};Gc.getGeometryHeight=function(e,t){if(!u(e)){t!==je.NONE&&Ot(Ot.geometryHeightReference);return}return t!==je.CLAMP_TO_GROUND?e:0};Gc.getGeometryExtrudedHeight=function(e,t){if(!u(e)){t!==je.NONE&&Ot(Ot.geometryExtrudedHeightReference);return}return t!==je.CLAMP_TO_GROUND?e:Gc.CLAMP_TO_GROUND};Gc.CLAMP_TO_GROUND="clamp";Gc.computeGeometryOffsetAttribute=function(e,t,n,i){(!u(e)||!u(t))&&(t=je.NONE),(!u(n)||!u(i))&&(i=je.NONE);let r=0;if(t!==je.NONE&&r++,i===je.RELATIVE_TO_GROUND&&r++,r===2)return nn.ALL;if(r===1)return nn.TOP};var Xn=Gc;var bce=new z,Sce=h.ZERO,vce=new h,wce=new le;function XWe(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.cornerType=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.offsetAttribute=void 0}function Wd(e,t){Xn.call(this,{entity:e,scene:t,geometryOptions:new XWe(e),geometryPropertyName:"corridor",observedPropertyNames:["availability","corridor"]}),this._onEntityPropertyChanged(e,"corridor",e.corridor,void 0)}u(Object.create)&&(Wd.prototype=Object.create(Xn.prototype),Wd.prototype.constructor=Wd);Wd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Ut){let r;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(r=this._materialProperty.color.getValue(e,bce)),u(r)||(r=z.WHITE),i.color=kt.fromColor(r)}return u(this._options.offsetAttribute)&&(i.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Sce,vce))),new xt({id:t,geometry:new dx(this._options),attributes:i})};Wd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,bce),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0};return u(this._options.offsetAttribute)&&(r.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Sce,vce))),new xt({id:t,geometry:new pR(this._options),attributes:r})};Wd.prototype._computeCenter=function(e,t){let n=q.getValueOrUndefined(this._entity.corridor.positions,e);if(!(!u(n)||n.length===0))return h.clone(n[Math.floor(n.length/2)],t)};Wd.prototype._isHidden=function(e,t){return!u(t.positions)||!u(t.width)||ci.prototype._isHidden.call(this,e,t)};Wd.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!q.isConstant(t.height)||!q.isConstant(t.extrudedHeight)||!q.isConstant(t.granularity)||!q.isConstant(t.width)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.cornerType)||!q.isConstant(t.zIndex)||this._onTerrain&&!q.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};Wd.prototype._setStaticOptions=function(e,t){let n=q.getValueOrUndefined(t.height,ze.MINIMUM_VALUE),i=q.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,je.NONE),r=q.getValueOrUndefined(t.extrudedHeight,ze.MINIMUM_VALUE),o=q.getValueOrDefault(t.extrudedHeightReference,ze.MINIMUM_VALUE,je.NONE);u(r)&&!u(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Ut?rn.VERTEX_FORMAT:lr.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(ze.MINIMUM_VALUE,s.positions),s.width=t.width.getValue(ze.MINIMUM_VALUE),s.granularity=q.getValueOrUndefined(t.granularity,ze.MINIMUM_VALUE),s.cornerType=q.getValueOrUndefined(t.cornerType,ze.MINIMUM_VALUE),s.offsetAttribute=Xn.computeGeometryOffsetAttribute(n,i,r,o),s.height=Xn.getGeometryHeight(n,i),r=Xn.getGeometryExtrudedHeight(r,o),r===Xn.CLAMP_TO_GROUND&&(r=si.getMinimumMaximumHeights(dx.computeRectangle(s,wce)).minimumTerrainHeight),s.extrudedHeight=r};Wd.DynamicGeometryUpdater=FE;function FE(e,t,n){ai.call(this,e,t,n)}u(Object.create)&&(FE.prototype=Object.create(ai.prototype),FE.prototype.constructor=FE);FE.prototype._isHidden=function(e,t,n){let i=this._options;return!u(i.positions)||!u(i.width)||ai.prototype._isHidden.call(this,e,t,n)};FE.prototype._setOptions=function(e,t,n){let i=this._options,r=q.getValueOrUndefined(t.height,n),o=q.getValueOrDefault(t.heightReference,n,je.NONE),s=q.getValueOrUndefined(t.extrudedHeight,n),a=q.getValueOrDefault(t.extrudedHeightReference,n,je.NONE);u(s)&&!u(r)&&(r=0),i.positions=q.getValueOrUndefined(t.positions,n),i.width=q.getValueOrUndefined(t.width,n),i.granularity=q.getValueOrUndefined(t.granularity,n),i.cornerType=q.getValueOrUndefined(t.cornerType,n),i.offsetAttribute=Xn.computeGeometryOffsetAttribute(r,o,s,a),i.height=Xn.getGeometryHeight(r,o),s=Xn.getGeometryExtrudedHeight(s,a),s===Xn.CLAMP_TO_GROUND&&(s=si.getMinimumMaximumHeights(dx.computeRectangle(i,wce)).minimumTerrainHeight),i.extrudedHeight=s};var _R=Wd;function WV(){fe.throwInstantiationError()}Object.defineProperties(WV.prototype,{name:{get:fe.throwInstantiationError},clock:{get:fe.throwInstantiationError},entities:{get:fe.throwInstantiationError},isLoading:{get:fe.throwInstantiationError},changedEvent:{get:fe.throwInstantiationError},errorEvent:{get:fe.throwInstantiationError},loadingEvent:{get:fe.throwInstantiationError},show:{get:fe.throwInstantiationError},clustering:{get:fe.throwInstantiationError}});WV.prototype.update=function(e){fe.throwInstantiationError()};WV.setLoading=function(e,t){e._isLoading!==t&&(t?e._entityCollection.suspendEvents():e._entityCollection.resumeEvents(),e._isLoading=t,e._loading.raiseEvent(e,t))};var Ro=WV;function am(e,t){this._ellipsoid=e,this._cameraPosition=new h,this._cameraPositionInScaledSpace=new h,this._distanceToLimbInScaledSpaceSquared=0,u(t)&&(this.cameraPosition=t)}Object.defineProperties(am.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),i=h.magnitudeSquared(n)-1;h.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=n,this._distanceToLimbInScaledSpaceSquared=i}}});var Dce=new h;am.prototype.isPointVisible=function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,Dce);return X9(n,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};am.prototype.isScaledSpacePointVisible=function(e){return X9(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var KWe=new h;am.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(e,t){let n=this._ellipsoid,i,r;return u(t)&&t<0&&n.minimumRadius>-t?(r=KWe,r.x=this._cameraPosition.x/(n.radii.x+t),r.y=this._cameraPosition.y/(n.radii.y+t),r.z=this._cameraPosition.z/(n.radii.z+t),i=r.x*r.x+r.y*r.y+r.z*r.z-1):(r=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),X9(e,r,i)};am.prototype.computeHorizonCullingPoint=function(e,t,n){return Oce(this._ellipsoid,e,t,n)};var Ice=re.clone(re.UNIT_SPHERE);am.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,n,i){let r=Pce(this._ellipsoid,n,Ice);return Oce(r,e,t,i)};am.prototype.computeHorizonCullingPointFromVertices=function(e,t,n,i,r){return Mce(this._ellipsoid,e,t,n,i,r)};am.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,n,i,r,o){let s=Pce(this._ellipsoid,r,Ice);return Mce(s,e,t,n,i,o)};var JWe=[];am.prototype.computeHorizonCullingPointFromRectangle=function(e,t,n){let i=le.subsample(e,t,0,JWe),r=ae.fromPoints(i);if(!(h.magnitude(r.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(r.center,i,n)};var ZWe=new h;function Pce(e,t,n){if(u(t)&&t<0&&e.minimumRadius>-t){let i=h.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,ZWe);e=re.fromCartesian3(i,n)}return e}function Oce(e,t,n,i){u(i)||(i=new h);let r=Lce(e,t),o=0;for(let s=0,a=n.length;s<a;++s){let c=n[s],l=Rce(e,c,r);if(l<0)return;o=Math.max(o,l)}return Bce(r,o,i)}var jV=new h;function Mce(e,t,n,i,r,o){u(o)||(o=new h),i=y(i,3),r=y(r,h.ZERO);let s=Lce(e,t),a=0;for(let c=0,l=n.length;c<l;c+=i){jV.x=n[c]+r.x,jV.y=n[c+1]+r.y,jV.z=n[c+2]+r.z;let f=Rce(e,jV,s);if(f<0)return;a=Math.max(a,f)}return Bce(s,a,o)}function X9(e,t,n){let i=t,r=n,o=h.subtract(e,i,Dce),s=-h.dot(o,i);return!(r<0?s>0:s>r&&s*s/h.magnitudeSquared(o)>r)}var QWe=new h,$We=new h;function Rce(e,t,n){let i=e.transformPositionToScaledSpace(t,QWe),r=h.magnitudeSquared(i),o=Math.sqrt(r),s=h.divideByScalar(i,o,$We);r=Math.max(1,r),o=Math.max(1,o);let a=h.dot(s,n),c=h.magnitude(h.cross(s,n,s)),l=1/o,f=Math.sqrt(r-1)*l;return 1/(a*l-c*f)}function Bce(e,t,n){if(!(t<=0||t===1/0||t!==t))return h.multiplyByScalar(e,t,n)}var Y9=new h;function Lce(e,t){return h.equals(t,h.ZERO)?t:(e.transformPositionToScaledSpace(t,Y9),h.normalize(Y9,Y9))}var m_=am;function Bo(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.scaleByDistance,r=e.distanceDisplayCondition;u(n)&&(n=Bt.clone(n)),u(i)&&(i=Bt.clone(i)),u(r)&&(r=vt.clone(r)),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._color=z.clone(y(e.color,z.WHITE)),this._outlineColor=z.clone(y(e.outlineColor,z.TRANSPARENT)),this._outlineWidth=y(e.outlineWidth,0),this._pixelSize=y(e.pixelSize,10),this._scaleByDistance=i,this._translucencyByDistance=n,this._distanceDisplayCondition=r,this._disableDepthTestDistance=y(e.disableDepthTestDistance,0),this._id=e.id,this._collection=y(e.collection,t),this._clusterShow=!0,this._pickId=void 0,this._pointPrimitiveCollection=t,this._dirty=!1,this._index=-1}var Nce=Bo.SHOW_INDEX=0,Vce=Bo.POSITION_INDEX=1,e7e=Bo.COLOR_INDEX=2,t7e=Bo.OUTLINE_COLOR_INDEX=3,n7e=Bo.OUTLINE_WIDTH_INDEX=4,i7e=Bo.PIXEL_SIZE_INDEX=5,r7e=Bo.SCALE_BY_DISTANCE_INDEX=6,o7e=Bo.TRANSLUCENCY_BY_DISTANCE_INDEX=7,s7e=Bo.DISTANCE_DISPLAY_CONDITION_INDEX=8,a7e=Bo.DISABLE_DEPTH_DISTANCE_INDEX=9;Bo.NUMBER_OF_PROPERTIES=10;function Sf(e,t){let n=e._pointPrimitiveCollection;u(n)&&(n._updatePointPrimitive(e,t),e._dirty=!0)}Object.defineProperties(Bo.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Sf(this,Nce))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),Sf(this,Vce))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Bt.equals(t,e)||(this._scaleByDistance=Bt.clone(e,t),Sf(this,r7e))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Bt.equals(t,e)||(this._translucencyByDistance=Bt.clone(e,t),Sf(this,o7e))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,Sf(this,i7e))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),Sf(this,e7e))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),Sf(this,t7e))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Sf(this,n7e))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){vt.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=vt.clone(e,this._distanceDisplayCondition),Sf(this,s7e))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Sf(this,a7e))}},id:{get:function(){return this._id},set:function(e){this._id=e,u(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Sf(this,Nce))}}});Bo.prototype.getPickId=function(e){return u(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId};Bo.prototype._getActualPosition=function(){return this._actualPosition};Bo.prototype._setActualPosition=function(e){h.clone(e,this._actualPosition),Sf(this,Vce)};var Fce=new se;Bo._computeActualPosition=function(e,t,n){return t.mode===ne.SCENE3D?e:(N.multiplyByPoint(n,e,Fce),Zi.computeActualWgs84Position(t,Fce))};var Uce=new se;Bo._computeScreenSpacePosition=function(e,t,n,i){let r=N.multiplyByVector(e,se.fromElements(t.x,t.y,t.z,1,Uce),Uce);return Zi.wgs84ToWindowCoordinates(n,r,i)};Bo.prototype.computeScreenSpacePosition=function(e,t){let n=this._pointPrimitiveCollection;u(t)||(t=new H);let i=n.modelMatrix,r=Bo._computeScreenSpacePosition(i,this._actualPosition,e,t);if(u(r))return r.y=e.canvas.clientHeight-r.y,r};Bo.getScreenSpaceBoundingBox=function(e,t,n){let i=e.pixelSize,r=i*.5,o=t.x-r,s=t.y-r,a=i,c=i;return u(n)||(n=new Xe),n.x=o,n.y=s,n.width=a,n.height=c,n};Bo.prototype.equals=function(e){return this===e||u(e)&&this._id===e._id&&h.equals(this._position,e._position)&&z.equals(this._color,e._color)&&this._pixelSize===e._pixelSize&&this._outlineWidth===e._outlineWidth&&this._show===e._show&&z.equals(this._outlineColor,e._outlineColor)&&Bt.equals(this._scaleByDistance,e._scaleByDistance)&&Bt.equals(this._translucencyByDistance,e._translucencyByDistance)&&vt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};Bo.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0};var Ls=Bo;var py=`in vec4 v_color; +in vec4 v_outlineColor; +in float v_innerPercent; +in float v_pixelDistance; +in vec4 v_pickColor; + +void main() +{ + // The distance in UV space from this fragment to the center of the point, at most 0.5. + float distanceToCenter = length(gl_PointCoord - vec2(0.5)); + // The max distance stops one pixel shy of the edge to leave space for anti-aliasing. + float maxDistance = max(0.0, 0.5 - v_pixelDistance); + float wholeAlpha = 1.0 - smoothstep(maxDistance, 0.5, distanceToCenter); + float innerAlpha = 1.0 - smoothstep(maxDistance * v_innerPercent, 0.5 * v_innerPercent, distanceToCenter); + + vec4 color = mix(v_outlineColor, v_color, innerAlpha); + color.a *= wholeAlpha; + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + + out_FragColor = czm_gammaCorrect(color); + czm_writeLogDepth(); +} +`;var gR=`uniform float u_maxTotalPointSize; + +in vec4 positionHighAndSize; +in vec4 positionLowAndOutline; +in vec4 compressedAttribute0; // color, outlineColor, pick color +in vec4 compressedAttribute1; // show, translucency by distance, some free space +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec3 distanceDisplayConditionAndDisableDepth; // near, far, disableDepthTestDistance + +out vec4 v_color; +out vec4 v_outlineColor; +out float v_innerPercent; +out float v_pixelDistance; +out vec4 v_pickColor; + +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; + +void main() +{ + // Modifying this shader may also require modifications to PointPrimitive._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndSize.xyz; + vec3 positionLow = positionLowAndOutline.xyz; + float outlineWidthBothSides = 2.0 * positionLowAndOutline.w; + float totalSize = positionHighAndSize.w + outlineWidthBothSides; + float outlinePercent = outlineWidthBothSides / totalSize; + // Scale in response to browser-zoom. + totalSize *= czm_pixelRatio; + + float temp = compressedAttribute1.x * SHIFT_RIGHT8; + float show = floor(temp); + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + + /////////////////////////////////////////////////////////////////////////// + + vec4 color; + vec4 outlineColor; + vec4 pickColor; + + // compressedAttribute0.z => pickColor.rgb + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + // compressedAttribute0.x => color.rgb + + temp = compressedAttribute0.x * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + // compressedAttribute0.y => outlineColor.rgb + + temp = compressedAttribute0.y * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + // compressedAttribute0.w => color.a, outlineColor.a, pickColor.a + + temp = compressedAttribute0.w * SHIFT_RIGHT8; + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor = pickColor / 255.0; + + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor /= 255.0; + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + totalSize *= czm_nearFarScalar(scaleByDistance, lengthSq); +#endif + if (totalSize > 0.0) { + // Add padding for anti-aliasing on both sides. + totalSize += 3.0; + } + + // Clamp to max point size. + totalSize = min(totalSize, u_maxTotalPointSize); + // If size is too small, push vertex behind near plane for clipping. + // Note that context.minimumAliasedPointSize "will be at most 1.0". + if (totalSize < 1.0) + { + positionEC.xyz = vec3(0.0); + totalSize = 1.0; + } + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency < 0.004) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = distanceDisplayConditionAndDisableDepth.x; + float farSq = distanceDisplayConditionAndDisableDepth.y; + if (lengthSq < nearSq || lengthSq > farSq) { + // push vertex behind camera to force it to be clipped + positionEC.xyz = vec3(0.0, 0.0, 1.0); + } +#endif + + gl_Position = czm_projection * positionEC; + czm_vertexLogDepth(); + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = distanceDisplayConditionAndDisableDepth.z; + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + czm_vertexLogDepth(vec4(czm_currentFrustum.x)); +#endif + } + } +#endif + + v_color = color; + v_color.a *= translucency * show; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency * show; + + v_innerPercent = 1.0 - outlinePercent; + v_pixelDistance = 2.0 / totalSize; + gl_PointSize = totalSize * show; + gl_Position *= show; + + v_pickColor = pickColor; +} +`;var c7e=Ls.SHOW_INDEX,Z9=Ls.POSITION_INDEX,kce=Ls.COLOR_INDEX,l7e=Ls.OUTLINE_COLOR_INDEX,u7e=Ls.OUTLINE_WIDTH_INDEX,f7e=Ls.PIXEL_SIZE_INDEX,zce=Ls.SCALE_BY_DISTANCE_INDEX,Hce=Ls.TRANSLUCENCY_BY_DISTANCE_INDEX,Gce=Ls.DISTANCE_DISPLAY_CONDITION_INDEX,d7e=Ls.DISABLE_DEPTH_DISTANCE_INDEX,Q9=Ls.NUMBER_OF_PROPERTIES,rc={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepth:5};function vf(e){e=y(e,y.EMPTY_OBJECT),this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._propertiesChanged=new Uint32Array(Q9),this._maxPixelSize=1,this._baseVolume=new ae,this._baseVolumeWC=new ae,this._baseVolume2D=new ae,this._boundingVolume=new ae,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this._modelMatrix=N.clone(N.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,vr.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW];let t=this;this._uniforms={u_maxTotalPointSize:function(){return t._maxTotalPointSize}}}Object.defineProperties(vf.prototype,{length:{get:function(){return $9(this),this._pointPrimitives.length}}});function Wce(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}vf.prototype.add=function(e){let t=new Ls(e,this);return t._index=this._pointPrimitives.length,this._pointPrimitives.push(t),this._createVertexArray=!0,t};vf.prototype.remove=function(e){return this.contains(e)?(this._pointPrimitives[e._index]=null,this._pointPrimitivesRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};vf.prototype.removeAll=function(){Wce(this._pointPrimitives),this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!0};function $9(e){if(e._pointPrimitivesRemoved){e._pointPrimitivesRemoved=!1;let t=[],n=e._pointPrimitives,i=n.length;for(let r=0,o=0;r<i;++r){let s=n[r];s&&(s._index=o++,t.push(s))}e._pointPrimitives=t}}vf.prototype._updatePointPrimitive=function(e,t){e._dirty||(this._pointPrimitivesToUpdate[this._pointPrimitivesToUpdateIndex++]=e),++this._propertiesChanged[t]};vf.prototype.contains=function(e){return u(e)&&e._pointPrimitiveCollection===this};vf.prototype.get=function(e){return $9(this),this._pointPrimitives[e]};vf.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<Q9;++i){let r=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==r,e[i]=r}return t};function h7e(e,t,n){return new ap(e,[{index:rc.positionHighAndSize,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Z9]},{index:rc.positionLowAndShow,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Z9]},{index:rc.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[kce]},{index:rc.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Hce]},{index:rc.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[zce]},{index:rc.distanceDisplayConditionAndDisableDepth,componentsPerAttribute:3,componentDatatype:X.FLOAT,usage:n[Gce]}],t)}var K9=new jn;function jce(e,t,n,i){let r=i._index,o=i._getActualPosition();e._mode===ne.SCENE3D&&(ae.expand(e._baseVolume,o,e._baseVolume),e._boundingVolumeDirty=!0),jn.fromCartesian(o,K9);let s=i.pixelSize,a=i.outlineWidth;e._maxPixelSize=Math.max(e._maxPixelSize,s+a);let c=n[rc.positionHighAndSize],l=K9.high;c(r,l.x,l.y,l.z,s);let f=n[rc.positionLowAndOutline],d=K9.low;f(r,d.x,d.y,d.z,a)}var qV=65536,yR=256;function qce(e,t,n,i){let r=i._index,o=i.color,s=i.getPickId(t).color,a=i.outlineColor,c=z.floatToByte(o.red),l=z.floatToByte(o.green),f=z.floatToByte(o.blue),d=c*qV+l*yR+f;c=z.floatToByte(a.red),l=z.floatToByte(a.green),f=z.floatToByte(a.blue);let p=c*qV+l*yR+f;c=z.floatToByte(s.red),l=z.floatToByte(s.green),f=z.floatToByte(s.blue);let g=c*qV+l*yR+f,m=z.floatToByte(o.alpha)*qV+z.floatToByte(a.alpha)*yR+z.floatToByte(s.alpha),A=n[rc.compressedAttribute0];A(r,d,p,g,m)}function Yce(e,t,n,i){let r=i._index,o=0,s=1,a=1,c=1,l=i.translucencyByDistance;u(l)&&(o=l.near,s=l.nearValue,a=l.far,c=l.farValue,(s!==1||c!==1)&&(e._shaderTranslucencyByDistance=!0));let f=i.show&&i.clusterShow;i.color.alpha===0&&i.outlineColor.alpha===0&&(f=!1),s=P.clamp(s,0,1),s=s===1?255:s*255|0;let d=(f?1:0)*yR+s;c=P.clamp(c,0,1),c=c===1?255:c*255|0;let p=c,g=n[rc.compressedAttribute1];g(r,d,p,o,a)}function Xce(e,t,n,i){let r=i._index,o=n[rc.scaleByDistance],s=0,a=1,c=1,l=1,f=i.scaleByDistance;u(f)&&(s=f.near,a=f.nearValue,c=f.far,l=f.farValue,(a!==1||l!==1)&&(e._shaderScaleByDistance=!0)),o(r,s,a,c,l)}function Kce(e,t,n,i){let r=i._index,o=n[rc.distanceDisplayConditionAndDisableDepth],s=0,a=Number.MAX_VALUE,c=i.distanceDisplayCondition;u(c)&&(s=c.near,a=c.far,s*=s,a*=a,e._shaderDistanceDisplayCondition=!0);let l=i.disableDepthTestDistance;l*=l,l>0&&(e._shaderDisableDepthDistance=!0,l===Number.POSITIVE_INFINITY&&(l=-1)),o(r,s,a,l)}function m7e(e,t,n,i){jce(e,t,n,i),qce(e,t,n,i),Yce(e,t,n,i),Xce(e,t,n,i),Kce(e,t,n,i)}function J9(e,t,n,i,r,o){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let l=t[c],f=l.position,d=Ls._computeActualPosition(f,i,r);u(d)&&(l._setActualPosition(d),o?a.push(d):ae.expand(s,d,s))}o&&ae.fromPoints(a,s)}function p7e(e,t){let n=t.mode,i=e._pointPrimitives,r=e._pointPrimitivesToUpdate,o=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==ne.SCENE3D&&!N.equals(o,e.modelMatrix)?(e._mode=n,N.clone(e.modelMatrix,o),e._createVertexArray=!0,(n===ne.SCENE3D||n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&J9(e,i,i.length,t,o,!0)):n===ne.MORPHING?J9(e,i,i.length,t,o,!0):(n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&J9(e,r,e._pointPrimitivesToUpdateIndex,t,o,!1)}function _7e(e,t,n){let r=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*e._maxPixelSize;n.radius+=r}var g7e=[];vf.prototype.update=function(e){if($9(this),!this.show)return;this._maxTotalPointSize=zt.maximumAliasedPointSize,p7e(this,e);let n=this._pointPrimitives.length,i=this._pointPrimitivesToUpdate,r=this._pointPrimitivesToUpdateIndex,o=this._propertiesChanged,s=this._createVertexArray,a,c=e.context,l=e.passes,f=l.pick;if(s||!f&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let v=0;v<Q9;++v)o[v]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=h7e(c,n,this._buffersUsage),a=this._vaf.writers;for(let v=0;v<n;++v){let D=this._pointPrimitives[v];D._dirty=!1,m7e(this,c,a,D)}this._vaf.commit()}this._pointPrimitivesToUpdateIndex=0}else if(r>0){let v=g7e;v.length=0,(o[Z9]||o[u7e]||o[f7e])&&v.push(jce),(o[kce]||o[l7e])&&v.push(qce),(o[c7e]||o[Hce])&&v.push(Yce),o[zce]&&v.push(Xce),(o[Gce]||o[d7e])&&v.push(Kce);let D=v.length;if(a=this._vaf.writers,r/n>.1){for(let M=0;M<r;++M){let O=i[M];O._dirty=!1;for(let B=0;B<D;++B)v[B](this,c,a,O)}this._vaf.commit()}else{for(let M=0;M<r;++M){let O=i[M];O._dirty=!1;for(let B=0;B<D;++B)v[B](this,c,a,O);this._vaf.subCommit(O._index,1)}this._vaf.endSubCommits()}this._pointPrimitivesToUpdateIndex=0}if(r>n*1.5&&(i.length=n),!u(this._vaf)||!u(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ae.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let d,p=N.IDENTITY;e.mode===ne.SCENE3D?(p=this.modelMatrix,d=ae.clone(this._baseVolumeWC,this._boundingVolume)):d=ae.clone(this._baseVolume2D,this._boundingVolume),_7e(this,e,d);let g=this._blendOption!==this.blendOption;this._blendOption=this.blendOption,g&&(this._blendOption===vr.OPAQUE||this._blendOption===vr.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ve.fromCache({depthTest:{enabled:!0,func:te.LEQUAL},depthMask:!0}):this._rsOpaque=void 0,this._blendOption===vr.TRANSLUCENT||this._blendOption===vr.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ve.fromCache({depthTest:{enabled:!0,func:te.LEQUAL},depthMask:!1,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0),this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let m,A;(g||this._shaderScaleByDistance&&!this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance&&!this._compiledShaderTranslucencyByDistance||this._shaderDistanceDisplayCondition&&!this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance)&&(m=new ke({sources:[gR]}),this._shaderScaleByDistance&&m.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&m.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderDistanceDisplayCondition&&m.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&m.defines.push("DISABLE_DEPTH_DISTANCE"),this._blendOption===vr.OPAQUE_AND_TRANSLUCENT&&(A=new ke({defines:["OPAQUE"],sources:[py]}),this._sp=Xt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:A,attributeLocations:rc}),A=new ke({defines:["TRANSLUCENT"],sources:[py]}),this._spTranslucent=Xt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:A,attributeLocations:rc})),this._blendOption===vr.OPAQUE&&(A=new ke({sources:[py]}),this._sp=Xt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:A,attributeLocations:rc})),this._blendOption===vr.TRANSLUCENT&&(A=new ke({sources:[py]}),this._spTranslucent=Xt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:A,attributeLocations:rc})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);let x,C,T,E,S=e.commandList;if(l.render||f){let v=this._colorCommands,D=this._blendOption===vr.OPAQUE,M=this._blendOption===vr.OPAQUE_AND_TRANSLUCENT;x=this._vaf.va,C=x.length,v.length=C;let O=M?C*2:C;for(E=0;E<O;++E){let B=D||M&&E%2===0;T=v[E],u(T)||(T=v[E]=new nt),T.primitiveType=Be.POINTS,T.pass=B||!M?be.OPAQUE:be.TRANSLUCENT,T.owner=this;let L=M?Math.floor(E/2):E;T.boundingVolume=d,T.modelMatrix=p,T.shaderProgram=B?this._sp:this._spTranslucent,T.uniformMap=this._uniforms,T.vertexArray=x[L].va,T.renderState=B?this._rsOpaque:this._rsTranslucent,T.debugShowBoundingVolume=this.debugShowBoundingVolume,T.pickId="v_pickColor",S.push(T)}}};vf.prototype.isDestroyed=function(){return!1};vf.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),Wce(this._pointPrimitives),ue(this)};var UE=vf;var Jce=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],eW=1,AR=8,hx=class{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");let[n,i]=new Uint8Array(t,0,2);if(n!==219)throw new Error("Data does not appear to be in a KDBush format.");let r=i>>4;if(r!==eW)throw new Error(`Got v${r} data when expected v${eW}.`);let o=Jce[i&15];if(!o)throw new Error("Unrecognized array type.");let[s]=new Uint16Array(t,2,1),[a]=new Uint32Array(t,4,1);return new hx(a,s,o,t)}constructor(t,n=64,i=Float64Array,r){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+n,2),65535),this.ArrayType=i,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;let o=Jce.indexOf(this.ArrayType),s=t*2*this.ArrayType.BYTES_PER_ELEMENT,a=t*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-a%8)%8;if(o<0)throw new Error(`Unexpected typed array class: ${i}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,AR,t),this.coords=new this.ArrayType(this.data,AR+a+c,t*2),this._pos=t*2,this._finished=!0):(this.data=new ArrayBuffer(AR+s+a+c),this.ids=new this.IndexArrayType(this.data,AR,t),this.coords=new this.ArrayType(this.data,AR+a+c,t*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(eW<<4)+o]),new Uint16Array(this.data,2,1)[0]=n,new Uint32Array(this.data,4,1)[0]=t)}add(t,n){let i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=t,this.coords[this._pos++]=n,i}finish(){let t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return nW(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,n,i,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:o,coords:s,nodeSize:a}=this,c=[0,o.length-1,0],l=[];for(;c.length;){let f=c.pop()||0,d=c.pop()||0,p=c.pop()||0;if(d-p<=a){for(let x=p;x<=d;x++){let C=s[2*x],T=s[2*x+1];C>=t&&C<=i&&T>=n&&T<=r&&l.push(o[x])}continue}let g=p+d>>1,m=s[2*g],A=s[2*g+1];m>=t&&m<=i&&A>=n&&A<=r&&l.push(o[g]),(f===0?t<=m:n<=A)&&(c.push(p),c.push(g-1),c.push(1-f)),(f===0?i>=m:r>=A)&&(c.push(g+1),c.push(d),c.push(1-f))}return l}within(t,n,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:r,coords:o,nodeSize:s}=this,a=[0,r.length-1,0],c=[],l=i*i;for(;a.length;){let f=a.pop()||0,d=a.pop()||0,p=a.pop()||0;if(d-p<=s){for(let x=p;x<=d;x++)Zce(o[2*x],o[2*x+1],t,n)<=l&&c.push(r[x]);continue}let g=p+d>>1,m=o[2*g],A=o[2*g+1];Zce(m,A,t,n)<=l&&c.push(r[g]),(f===0?t-i<=m:n-i<=A)&&(a.push(p),a.push(g-1),a.push(1-f)),(f===0?t+i>=m:n+i>=A)&&(a.push(g+1),a.push(d),a.push(1-f))}return c}};function nW(e,t,n,i,r,o){if(r-i<=n)return;let s=i+r>>1;Qce(e,t,s,i,r,o),nW(e,t,n,i,s-1,1-o),nW(e,t,n,s+1,r,1-o)}function Qce(e,t,n,i,r,o){for(;r>i;){if(r-i>600){let l=r-i+1,f=n-i+1,d=Math.log(l),p=.5*Math.exp(2*d/3),g=.5*Math.sqrt(d*p*(l-p)/l)*(f-l/2<0?-1:1),m=Math.max(i,Math.floor(n-f*p/l+g)),A=Math.min(r,Math.floor(n+(l-f)*p/l+g));Qce(e,t,n,m,A,o)}let s=t[2*n+o],a=i,c=r;for(xR(e,t,i,n),t[2*r+o]>s&&xR(e,t,i,r);a<c;){for(xR(e,t,a,c),a++,c--;t[2*a+o]<s;)a++;for(;t[2*c+o]>s;)c--}t[2*i+o]===s?xR(e,t,i,c):(c++,xR(e,t,c,r)),c<=n&&(i=c+1),n<=c&&(r=c-1)}}function xR(e,t,n,i){tW(e,n,i),tW(t,2*n,2*i),tW(t,2*n+1,2*i+1)}function tW(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function Zce(e,t,n,i){let r=e-n,o=t-i;return r*r+o*o}function jd(e){e=y(e,y.EMPTY_OBJECT),this._enabled=y(e.enabled,!1),this._pixelRange=y(e.pixelRange,80),this._minimumClusterSize=y(e.minimumClusterSize,2),this._clusterBillboards=y(e.clusterBillboards,!0),this._clusterLabels=y(e.clusterLabels,!0),this._clusterPoints=y(e.clusterPoints,!0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity={},this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._clusterDirty=!1,this._cluster=void 0,this._removeEventListener=void 0,this._clusterEvent=new ge,this.show=y(e.show,!0)}function $ce(e,t){e.x-=t,e.y-=t,e.width+=t*2,e.height+=t*2}var y7e=new Xe;function ele(e,t,n,i,r){if(u(e._labelCollection)&&i._clusterLabels?r=Jg.getScreenSpaceBoundingBox(e,t,r):u(e._billboardCollection)&&i._clusterBillboards?r=pr.getScreenSpaceBoundingBox(e,t,r):u(e._pointPrimitiveCollection)&&i._clusterPoints&&(r=Ls.getScreenSpaceBoundingBox(e,t,r)),$ce(r,n),i._clusterLabels&&!u(e._labelCollection)&&u(e.id)&&nle(i,e.id.id)&&u(e.id._label)){let o=i._collectionIndicesByEntity[e.id.id].labelIndex,s=i._labelCollection.get(o),a=Jg.getScreenSpaceBoundingBox(s,t,y7e);$ce(a,n),r=Xe.union(r,a,r)}return r}function A7e(e,t){if(e.clusterShow=!0,!u(e._labelCollection)&&u(e.id)&&nle(t,e.id.id)&&u(e.id._label)){let n=t._collectionIndicesByEntity[e.id.id].labelIndex,i=t._labelCollection.get(n);i.clusterShow=!0}}function tle(e,t,n,i){let r={billboard:i._clusterBillboardCollection.add(),label:i._clusterLabelCollection.add(),point:i._clusterPointCollection.add()};r.billboard.show=!1,r.point.show=!1,r.label.show=!0,r.label.text=t.toLocaleString(),r.label.id=n,r.billboard.position=r.label.position=r.point.position=e,i._clusterEvent.raiseEvent(n,r)}function nle(e,t){return u(e)&&u(e._collectionIndicesByEntity[t])&&u(e._collectionIndicesByEntity[t].labelIndex)}function iW(e,t,n,i,r){if(!u(e))return;let o=e.length;for(let s=0;s<o;++s){let a=e.get(s);if(a.clusterShow=!1,!a.show||r._scene.mode===ne.SCENE3D&&!i.isPointVisible(a.position))continue;let c=r._clusterLabels&&u(a._labelCollection),l=r._clusterBillboards&&u(a.id._billboard),f=r._clusterPoints&&u(a.id._point);if(c&&(f||l))continue;let d=a.computeScreenSpacePosition(n);u(d)&&t.push({index:s,collection:e,clustered:!1,coord:d})}}var x7e=new Xe,C7e=new Xe,T7e=new Xe;function E7e(e){return function(t){if(u(t)&&t<.05||!e.enabled)return;let n=e._scene,i=e._labelCollection,r=e._billboardCollection,o=e._pointCollection;if(!u(i)&&!u(r)&&!u(o)||!e._clusterBillboards&&!e._clusterLabels&&!e._clusterPoints)return;let s=e._clusterLabelCollection,a=e._clusterBillboardCollection,c=e._clusterPointCollection;u(s)?s.removeAll():s=e._clusterLabelCollection=new nm({scene:n}),u(a)?a.removeAll():a=e._clusterBillboardCollection=new lu({scene:n}),u(c)?c.removeAll():c=e._clusterPointCollection=new UE;let l=e._pixelRange,f=e._minimumClusterSize,d=e._previousClusters,p=[],g=e._previousHeight,m=n.camera.positionCartographic.height,A=n.mapProjection.ellipsoid,x=n.camera.positionWC,C=new m_(A,x),T=[];e._clusterLabels&&iW(i,T,n,C,e),e._clusterBillboards&&iW(r,T,n,C,e),e._clusterPoints&&iW(o,T,n,C,e);let E,S,v,D,M,O,B,L,_,b,w,I;if(T.length>0){let R=new hx(T.length,64,Uint32Array);for(let F=0;F<T.length;++F)R.add(T[F].coord.x,T[F].coord.y);if(R.finish(),m<g)for(v=d.length,E=0;E<v;++E){let F=d[E];if(!C.isPointVisible(F.position))continue;let k=pr._computeScreenSpacePosition(N.IDENTITY,F.position,h.ZERO,H.ZERO,n);if(!u(k))continue;let V=1-m/g,G=F.width=F.width*V,U=F.height=F.height*V;G=Math.max(G,F.minimumWidth),U=Math.max(U,F.minimumHeight);let Y=k.x-G*.5,W=k.y-U*.5,Z=k.x+G,j=k.y+U;for(M=R.range(Y,W,Z,j),O=M.length,b=0,_=[],S=0;S<O;++S)B=M[S],L=T[B],L.clustered||(++b,w=L.collection,I=L.index,_.push(w.get(I).id));if(b>=f)for(tle(F.position,b,_,e),p.push(F),S=0;S<O;++S)T[M[S]].clustered=!0}for(v=T.length,E=0;E<v;++E){let F=T[E];if(F.clustered)continue;F.clustered=!0,w=F.collection,I=F.index;let k=w.get(I);D=ele(k,F.coord,l,e,x7e);let V=Xe.clone(D,C7e);M=R.range(D.x,D.y,D.x+D.width,D.y+D.height),O=M.length;let G=h.clone(k.position);for(b=1,_=[k.id],S=0;S<O;++S)if(B=M[S],L=T[B],!L.clustered){let U=L.collection.get(L.index),Y=ele(U,L.coord,l,e,T7e);h.add(U.position,G,G),Xe.union(V,Y,V),++b,_.push(U.id)}if(b>=f){let U=h.multiplyByScalar(G,1/b,G);for(tle(U,b,_,e),p.push({position:U,width:V.width,height:V.height,minimumWidth:D.width,minimumHeight:D.height}),S=0;S<O;++S)T[M[S]].clustered=!0}else A7e(k,e)}}s.length===0&&(s.destroy(),e._clusterLabelCollection=void 0),a.length===0&&(a.destroy(),e._clusterBillboardCollection=void 0),c.length===0&&(c.destroy(),e._clusterPointCollection=void 0),e._previousClusters=p,e._previousHeight=m}}jd.prototype._initialize=function(e){this._scene=e;let t=E7e(this);this._cluster=t,this._removeEventListener=e.camera.changed.addEventListener(t)};Object.defineProperties(jd.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabledDirty=e!==this._enabled,this._enabled=e}},pixelRange:{get:function(){return this._pixelRange},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._pixelRange,this._pixelRange=e}},minimumClusterSize:{get:function(){return this._minimumClusterSize},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._minimumClusterSize,this._minimumClusterSize=e}},clusterEvent:{get:function(){return this._clusterEvent}},clusterBillboards:{get:function(){return this._clusterBillboards},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterBillboards,this._clusterBillboards=e}},clusterLabels:{get:function(){return this._clusterLabels},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterLabels,this._clusterLabels=e}},clusterPoints:{get:function(){return this._clusterPoints},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterPoints,this._clusterPoints=e}}});function oW(e,t,n,i){return function(r){let o=this[e];u(this._collectionIndicesByEntity)||(this._collectionIndicesByEntity={});let s=this._collectionIndicesByEntity[r.id];if(u(s)||(s=this._collectionIndicesByEntity[r.id]={billboardIndex:void 0,labelIndex:void 0,pointIndex:void 0}),u(o)&&u(s[i]))return o.get(s[i]);u(o)||(o=this[e]=new t({scene:this._scene}));let a,c,l=this[n];l.length>0?(a=l.pop(),c=o.get(a)):(c=o.add(),a=o.length-1),s[i]=a;let f=this;return Promise.resolve().then(function(){f._clusterDirty=!0}),c}}function sW(e,t){let n=e._collectionIndicesByEntity[t];!u(n.billboardIndex)&&!u(n.labelIndex)&&!u(n.pointIndex)&&delete e._collectionIndicesByEntity[t]}jd.prototype.getLabel=oW("_labelCollection",nm,"_unusedLabelIndices","labelIndex");jd.prototype.removeLabel=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!u(this._labelCollection)||!u(t)||!u(t.labelIndex))return;let n=t.labelIndex;t.labelIndex=void 0,sW(this,e.id);let i=this._labelCollection.get(n);i.show=!1,i.text="",i.id=void 0,this._unusedLabelIndices.push(n),this._clusterDirty=!0};jd.prototype.getBillboard=oW("_billboardCollection",lu,"_unusedBillboardIndices","billboardIndex");jd.prototype.removeBillboard=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!u(this._billboardCollection)||!u(t)||!u(t.billboardIndex))return;let n=t.billboardIndex;t.billboardIndex=void 0,sW(this,e.id);let i=this._billboardCollection.get(n);i.id=void 0,i.show=!1,i.image=void 0,this._unusedBillboardIndices.push(n),this._clusterDirty=!0};jd.prototype.getPoint=oW("_pointCollection",UE,"_unusedPointIndices","pointIndex");jd.prototype.removePoint=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!u(this._pointCollection)||!u(t)||!u(t.pointIndex))return;let n=t.pointIndex;t.pointIndex=void 0,sW(this,e.id);let i=this._pointCollection.get(n);i.show=!1,i.id=void 0,this._unusedPointIndices.push(n),this._clusterDirty=!0};function rW(e){if(!u(e))return;let t=e.length;for(let n=0;n<t;++n)e.get(n).clusterShow=!0}function b7e(e){e.enabled||(u(e._clusterLabelCollection)&&e._clusterLabelCollection.destroy(),u(e._clusterBillboardCollection)&&e._clusterBillboardCollection.destroy(),u(e._clusterPointCollection)&&e._clusterPointCollection.destroy(),e._clusterLabelCollection=void 0,e._clusterBillboardCollection=void 0,e._clusterPointCollection=void 0,rW(e._labelCollection),rW(e._billboardCollection),rW(e._pointCollection))}jd.prototype.update=function(e){if(!this.show)return;let t;u(this._labelCollection)&&this._labelCollection.length>0&&this._labelCollection.get(0)._glyphs.length===0&&(t=e.commandList,e.commandList=[],this._labelCollection.update(e),e.commandList=t),u(this._billboardCollection)&&this._billboardCollection.length>0&&!u(this._billboardCollection.get(0).width)&&(t=e.commandList,e.commandList=[],this._billboardCollection.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,b7e(this),this._clusterDirty=!0),this._clusterDirty&&(this._clusterDirty=!1,this._cluster()),u(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),u(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),u(this._clusterPointCollection)&&this._clusterPointCollection.update(e),u(this._labelCollection)&&this._labelCollection.update(e),u(this._billboardCollection)&&this._billboardCollection.update(e),u(this._pointCollection)&&this._pointCollection.update(e)};jd.prototype.destroy=function(){this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._pointCollection=this._pointCollection&&this._pointCollection.destroy(),this._clusterLabelCollection=this._clusterLabelCollection&&this._clusterLabelCollection.destroy(),this._clusterBillboardCollection=this._clusterBillboardCollection&&this._clusterBillboardCollection.destroy(),this._clusterPointCollection=this._clusterPointCollection&&this._clusterPointCollection.destroy(),u(this._removeEventListener)&&(this._removeEventListener(),this._removeEventListener=void 0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity=void 0,this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._pixelRangeDirty=!1,this._minimumClusterSizeDirty=!1};var du=jd;function aW(e){this._name=e,this._clock=void 0,this._changed=new ge,this._error=new ge,this._isLoading=!1,this._loading=new ge,this._entityCollection=new Bs(this),this._entityCluster=new du}Object.defineProperties(aW.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._changed.raiseEvent(this))}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading},set:function(e){Ro.setLoading(this,e)}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});aW.prototype.update=function(e){return!0};var CR=aW;var ile={};ile.computePositions=function(e,t,n,i,r){let o=e*.5,s=-o,a=i+i,c=r?2*a:a,l=new Float64Array(c*3),f,d=0,p=0,g=r?a*3:0,m=r?(a+i)*3:i*3;for(f=0;f<i;f++){let A=f/i*P.TWO_PI,x=Math.cos(A),C=Math.sin(A),T=x*n,E=C*n,S=x*t,v=C*t;l[p+g]=T,l[p+g+1]=E,l[p+g+2]=s,l[p+m]=S,l[p+m+1]=v,l[p+m+2]=o,p+=3,r&&(l[d++]=T,l[d++]=E,l[d++]=s,l[d++]=S,l[d++]=v,l[d++]=o)}return l};var mx=ile;var cW=new H,S7e=new h,v7e=new h,w7e=new h,D7e=new h;function p_(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,r=y(e.vertexFormat,Pe.DEFAULT),o=y(e.slices,128);this._length=t,this._topRadius=n,this._bottomRadius=i,this._vertexFormat=Pe.clone(r),this._slices=o,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderGeometry"}p_.packedLength=Pe.packedLength+5;p_.pack=function(e,t,n){return n=y(n,0),Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n]=y(e._offsetAttribute,-1),t};var rle=new Pe,VE={vertexFormat:rle,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};p_.unpack=function(e,t,n){t=y(t,0);let i=Pe.unpack(e,t,rle);t+=Pe.packedLength;let r=e[t++],o=e[t++],s=e[t++],a=e[t++],c=e[t];return u(n)?(n._vertexFormat=Pe.clone(i,n._vertexFormat),n._length=r,n._topRadius=o,n._bottomRadius=s,n._slices=a,n._offsetAttribute=c===-1?void 0:c,n):(VE.length=r,VE.topRadius=o,VE.bottomRadius=s,VE.slices=a,VE.offsetAttribute=c===-1?void 0:c,new p_(VE))};p_.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,r=e._vertexFormat,o=e._slices;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=o+o,a=o+s,c=s+s,l=mx.computePositions(t,n,i,o,!0),f=r.st?new Float32Array(c*2):void 0,d=r.normal?new Float32Array(c*3):void 0,p=r.tangent?new Float32Array(c*3):void 0,g=r.bitangent?new Float32Array(c*3):void 0,m,A=r.normal||r.tangent||r.bitangent;if(A){let M=r.tangent||r.bitangent,O=0,B=0,L=0,_=Math.atan2(i-n,t),b=S7e;b.z=Math.sin(_);let w=Math.cos(_),I=w7e,R=v7e;for(m=0;m<o;m++){let F=m/o*P.TWO_PI,k=w*Math.cos(F),V=w*Math.sin(F);A&&(b.x=k,b.y=V,M&&(I=h.normalize(h.cross(h.UNIT_Z,b,I),I)),r.normal&&(d[O++]=b.x,d[O++]=b.y,d[O++]=b.z,d[O++]=b.x,d[O++]=b.y,d[O++]=b.z),r.tangent&&(p[B++]=I.x,p[B++]=I.y,p[B++]=I.z,p[B++]=I.x,p[B++]=I.y,p[B++]=I.z),r.bitangent&&(R=h.normalize(h.cross(b,I,R),R),g[L++]=R.x,g[L++]=R.y,g[L++]=R.z,g[L++]=R.x,g[L++]=R.y,g[L++]=R.z))}for(m=0;m<o;m++)r.normal&&(d[O++]=0,d[O++]=0,d[O++]=-1),r.tangent&&(p[B++]=1,p[B++]=0,p[B++]=0),r.bitangent&&(g[L++]=0,g[L++]=-1,g[L++]=0);for(m=0;m<o;m++)r.normal&&(d[O++]=0,d[O++]=0,d[O++]=1),r.tangent&&(p[B++]=1,p[B++]=0,p[B++]=0),r.bitangent&&(g[L++]=0,g[L++]=1,g[L++]=0)}let x=12*o-12,C=Ue.createTypedArray(c,x),T=0,E=0;for(m=0;m<o-1;m++)C[T++]=E,C[T++]=E+2,C[T++]=E+3,C[T++]=E,C[T++]=E+3,C[T++]=E+1,E+=2;for(C[T++]=s-2,C[T++]=0,C[T++]=1,C[T++]=s-2,C[T++]=1,C[T++]=s-1,m=1;m<o-1;m++)C[T++]=s+m+1,C[T++]=s+m,C[T++]=s;for(m=1;m<o-1;m++)C[T++]=a,C[T++]=a+m,C[T++]=a+m+1;let S=0;if(r.st){let M=Math.max(n,i);for(m=0;m<c;m++){let O=h.fromArray(l,m*3,D7e);f[S++]=(O.x+M)/(2*M),f[S++]=(O.y+M)/(2*M)}}let v=new dn;r.position&&(v.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:l})),r.normal&&(v.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:d})),r.tangent&&(v.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),r.bitangent&&(v.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),r.st&&(v.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),cW.x=t*.5,cW.y=Math.max(i,n);let D=new ae(h.ZERO,H.magnitude(cW));if(u(e._offsetAttribute)){t=l.length;let M=e._offsetAttribute===nn.NONE?0:1,O=new Uint8Array(t/3).fill(M);v.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:O})}return new ut({attributes:v,indices:C,primitiveType:Be.TRIANGLES,boundingSphere:D,offsetAttribute:e._offsetAttribute})};var lW;p_.getUnitCylinder=function(){return u(lW)||(lW=p_.createGeometry(new p_({topRadius:1,bottomRadius:1,length:1,vertexFormat:Pe.POSITION_ONLY}))),lW};var TR=p_;var uW=new H;function kE(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,r=y(e.slices,128),o=Math.max(y(e.numberOfVerticalLines,16),0);this._length=t,this._topRadius=n,this._bottomRadius=i,this._slices=r,this._numberOfVerticalLines=o,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}kE.packedLength=6;kE.pack=function(e,t,n){return n=y(n,0),t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n++]=e._numberOfVerticalLines,t[n]=y(e._offsetAttribute,-1),t};var px={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};kE.unpack=function(e,t,n){t=y(t,0);let i=e[t++],r=e[t++],o=e[t++],s=e[t++],a=e[t++],c=e[t];return u(n)?(n._length=i,n._topRadius=r,n._bottomRadius=o,n._slices=s,n._numberOfVerticalLines=a,n._offsetAttribute=c===-1?void 0:c,n):(px.length=i,px.topRadius=r,px.bottomRadius=o,px.slices=s,px.numberOfVerticalLines=a,px.offsetAttribute=c===-1?void 0:c,new kE(px))};kE.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,r=e._slices,o=e._numberOfVerticalLines;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=r*2,a=mx.computePositions(t,n,i,r,!1),c=r*2,l;if(o>0){let A=Math.min(o,r);l=Math.round(r/A),c+=A}let f=Ue.createTypedArray(s,c*2),d=0,p;for(p=0;p<r-1;p++)f[d++]=p,f[d++]=p+1,f[d++]=p+r,f[d++]=p+1+r;if(f[d++]=r-1,f[d++]=0,f[d++]=r+r-1,f[d++]=r,o>0)for(p=0;p<r;p+=l)f[d++]=p,f[d++]=p+r;let g=new dn;g.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:a}),uW.x=t*.5,uW.y=Math.max(i,n);let m=new ae(h.ZERO,H.magnitude(uW));if(u(e._offsetAttribute)){t=a.length;let A=e._offsetAttribute===nn.NONE?0:1,x=new Uint8Array(t/3).fill(A);g.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}return new ut({attributes:g,indices:f,primitiveType:Be.LINES,boundingSphere:m,offsetAttribute:e._offsetAttribute})};var ER=kE;var ole=h.ZERO,sle=new h,I7e=new h,ale=new z;function P7e(e){this.id=e,this.vertexFormat=void 0,this.length=void 0,this.topRadius=void 0,this.bottomRadius=void 0,this.slices=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function hu(e,t){ci.call(this,{entity:e,scene:t,geometryOptions:new P7e(e),geometryPropertyName:"cylinder",observedPropertyNames:["availability","position","orientation","cylinder"]}),this._onEntityPropertyChanged(e,"cylinder",e.cylinder,void 0)}u(Object.create)&&(hu.prototype=Object.create(ci.prototype),hu.prototype.constructor=hu);Object.defineProperties(hu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});hu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),r=this._distanceDisplayConditionProperty.getValue(e),o=Vn.fromDistanceDisplayCondition(r),s={show:i,distanceDisplayCondition:o,color:void 0,offset:void 0};if(this._materialProperty instanceof Ut){let a;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,ale)),u(a)||(a=z.WHITE),s.color=kt.fromColor(a)}return u(this._options.offsetAttribute)&&(s.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,ole,sle))),new xt({id:t,geometry:new TR(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.mapProjection.ellipsoid),attributes:s})};hu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,ale),r=this._distanceDisplayConditionProperty.getValue(e),o={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(r),offset:void 0};return u(this._options.offsetAttribute)&&(o.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,ole,sle))),new xt({id:t,geometry:new ER(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.mapProjection.ellipsoid),attributes:o})};hu.prototype._computeCenter=function(e,t){return q.getValueOrUndefined(this._entity.position,e,t)};hu.prototype._isHidden=function(e,t){return!u(e.position)||!u(t.length)||!u(t.topRadius)||!u(t.bottomRadius)||ci.prototype._isHidden.call(this,e,t)};hu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!q.isConstant(e.orientation)||!t.length.isConstant||!t.topRadius.isConstant||!t.bottomRadius.isConstant||!q.isConstant(t.slices)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.numberOfVerticalLines)};hu.prototype._setStaticOptions=function(e,t){let n=q.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,je.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Ut?rn.VERTEX_FORMAT:lr.MaterialSupport.TEXTURED.vertexFormat,i.length=t.length.getValue(ze.MINIMUM_VALUE),i.topRadius=t.topRadius.getValue(ze.MINIMUM_VALUE),i.bottomRadius=t.bottomRadius.getValue(ze.MINIMUM_VALUE),i.slices=q.getValueOrUndefined(t.slices,ze.MINIMUM_VALUE),i.numberOfVerticalLines=q.getValueOrUndefined(t.numberOfVerticalLines,ze.MINIMUM_VALUE),i.offsetAttribute=n!==je.NONE?nn.ALL:void 0};hu.prototype._onEntityPropertyChanged=Ap;hu.DynamicGeometryUpdater=zE;function zE(e,t,n){ai.call(this,e,t,n)}u(Object.create)&&(zE.prototype=Object.create(ai.prototype),zE.prototype.constructor=zE);zE.prototype._isHidden=function(e,t,n){let i=this._options,r=q.getValueOrUndefined(e.position,n,I7e);return!u(r)||!u(i.length)||!u(i.topRadius)||!u(i.bottomRadius)||ai.prototype._isHidden.call(this,e,t,n)};zE.prototype._setOptions=function(e,t,n){let i=q.getValueOrDefault(t.heightReference,n,je.NONE),r=this._options;r.length=q.getValueOrUndefined(t.length,n),r.topRadius=q.getValueOrUndefined(t.topRadius,n),r.bottomRadius=q.getValueOrUndefined(t.bottomRadius,n),r.slices=q.getValueOrUndefined(t.slices,n),r.numberOfVerticalLines=q.getValueOrUndefined(t.numberOfVerticalLines,n),r.offsetAttribute=i!==je.NONE?nn.ALL:void 0};var bR=hu;var O7e={UNBOUNDED:0,CLAMPED:1,LOOP_STOP:2},Lo=Object.freeze(O7e);var M7e={TICK_DEPENDENT:0,SYSTEM_CLOCK_MULTIPLIER:1,SYSTEM_CLOCK:2},_r=Object.freeze(M7e);var R7e={NONE:0,HOLD:1,EXTRAPOLATE:2},mu=Object.freeze(R7e);var cle=Yi(Yl(),1);function B7e(e){let t=new cle.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),n}var __=B7e;var L7e=P.factorial;function fW(e,t,n,i,r,o){let s=0,a,c,l;if(i>0){for(c=0;c<r;c++){for(a=!1,l=0;l<o.length&&!a;l++)c===o[l]&&(a=!0);a||(o.push(c),s+=fW(e,t,n,i-1,r,o),o.splice(o.length-1,1))}return s}for(s=1,c=0;c<r;c++){for(a=!1,l=0;l<o.length&&!a;l++)c===o[l]&&(a=!0);a||(s*=e-n[t[c]])}return s}var YV={type:"Hermite"};YV.getRequiredDataPoints=function(e,t){return t=y(t,0),Math.max(Math.floor((e+1)/(t+1)),2)};YV.interpolateOrderZero=function(e,t,n,i,r){u(r)||(r=new Array(i));let o,s,a,c,l,f,d=t.length,p=new Array(i);for(o=0;o<i;o++){r[o]=0;let x=new Array(d);for(p[o]=x,s=0;s<d;s++)x[s]=[]}let g=d,m=new Array(g);for(o=0;o<g;o++)m[o]=o;let A=d-1;for(c=0;c<i;c++){for(s=0;s<g;s++)f=m[s]*i+c,p[c][0].push(n[f]);for(o=1;o<g;o++){let x=!1;for(s=0;s<g-o;s++){let C=t[m[s]],T=t[m[s+o]],E;T-C<=0?(f=m[s]*i+i*o+c,E=n[f],p[c][o].push(E/L7e(o))):(E=p[c][o-1][s+1]-p[c][o-1][s],p[c][o].push(E/(T-C))),x=x||E!==0}x||(A=o-1)}}for(a=0,l=0;a<=l;a++)for(o=a;o<=A;o++){let x=fW(e,m,t,a,o,[]);for(c=0;c<i;c++){let C=p[c][o][0];r[c+a*i]+=C*x}}return r};var N7e=[];YV.interpolate=function(e,t,n,i,r,o,s){let a=i*(o+1);u(s)||(s=new Array(a));for(let C=0;C<a;C++)s[C]=0;let c=t.length,l=new Array(c*(r+1)),f;for(f=0;f<c;f++)for(let C=0;C<r+1;C++)l[f*(r+1)+C]=f;let d=l.length,p=N7e,g=F7e(p,l,t,n,i,r),m=[],A=d*(d+1)/2,x=Math.min(g,o);for(let C=0;C<=x;C++)for(f=C;f<=g;f++){m.length=0;let T=fW(e,l,t,C,f,m),E=Math.floor(f*(1-f)/2)+d*f;for(let S=0;S<i;S++){let v=Math.floor(S*A),D=p[v+E];s[S+C*i]+=D*T}}return s};function F7e(e,t,n,i,r,o){let s,a,c=-1,l=t.length,f=l*(l+1)/2;for(let d=0;d<r;d++){let p=Math.floor(d*f);for(s=0;s<l;s++)a=t[s]*r*(o+1)+d,e[p+s]=i[a];for(let g=1;g<l;g++){let m=0,A=Math.floor(g*(1-g)/2)+l*g,x=!1;for(s=0;s<l-g;s++){let C=n[t[s]],T=n[t[s+g]],E,S;if(T-C<=0)a=t[s]*r*(o+1)+r*g+d,E=i[a],S=E/P.factorial(g),e[p+A+m]=S,m++;else{let v=Math.floor((g-1)*(2-g)/2)+l*(g-1);E=e[p+v+s+1]-e[p+v+s],S=E/(T-C),e[p+A+m]=S,m++}x=x||E!==0}x&&(c=Math.max(c,g))}}return c}var SR=YV;var dW={type:"Lagrange"};dW.getRequiredDataPoints=function(e){return Math.max(e+1,2)};dW.interpolateOrderZero=function(e,t,n,i,r){u(r)||(r=new Array(i));let o,s,a=t.length;for(o=0;o<i;o++)r[o]=0;for(o=0;o<a;o++){let c=1;for(s=0;s<a;s++)if(s!==o){let l=t[o]-t[s];c*=(e-t[s])/l}for(s=0;s<i;s++)r[s]+=c*n[o*i+s]}return r};var vR=dW;var hW={type:"Linear"};hW.getRequiredDataPoints=function(e){return 2};hW.interpolateOrderZero=function(e,t,n,i,r){u(r)||(r=new Array(i));let o,s,a,c=t[0],l=t[1];for(o=0;o<i;o++)s=n[o],a=n[o+i],r[o]=((a-s)*e+l*s-c*a)/(l-c);return r};var _x=hW;function oc(e,t,n){this.clock=y(e,0),this.cone=y(t,0),this.magnitude=y(n,1)}oc.fromCartesian3=function(e,t){let n=e.x,i=e.y,r=e.z,o=n*n+i*i;return u(t)||(t=new oc),t.clock=Math.atan2(i,n),t.cone=Math.atan2(Math.sqrt(o),r),t.magnitude=Math.sqrt(o+r*r),t};oc.clone=function(e,t){if(u(e))return u(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=e.magnitude,t):new oc(e.clock,e.cone,e.magnitude)};oc.normalize=function(e,t){return u(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=1,t):new oc(e.clock,e.cone,1)};oc.equals=function(e,t){return e===t||u(e)&&u(t)&&e.clock===t.clock&&e.cone===t.cone&&e.magnitude===t.magnitude};oc.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||u(e)&&u(t)&&Math.abs(e.clock-t.clock)<=n&&Math.abs(e.cone-t.cone)<=n&&Math.abs(e.magnitude-t.magnitude)<=n};oc.prototype.equals=function(e){return oc.equals(this,e)};oc.prototype.clone=function(e){return oc.clone(this,e)};oc.prototype.equalsEpsilon=function(e,t){return oc.equalsEpsilon(this,e,t)};oc.prototype.toString=function(){return`(${this.clock}, ${this.cone}, ${this.magnitude})`};var wR=oc;var MR=Yi(Yl(),1);var mW;typeof performance<"u"&&typeof performance.now=="function"&&isFinite(performance.now())?mW=function(){return performance.now()}:mW=function(){return Date.now()};var yi=mW;function pW(e){e=y(e,y.EMPTY_OBJECT);let t=e.currentTime,n=e.startTime,i=e.stopTime;u(t)?t=ee.clone(t):u(n)?t=ee.clone(n):u(i)?t=ee.addDays(i,-1,new ee):t=ee.now(),u(n)?n=ee.clone(n):n=ee.clone(t),u(i)?i=ee.clone(i):i=ee.addDays(n,1,new ee),this.startTime=n,this.stopTime=i,this.clockRange=y(e.clockRange,Lo.UNBOUNDED),this.canAnimate=y(e.canAnimate,!0),this.onTick=new ge,this.onStop=new ge,this._currentTime=void 0,this._multiplier=void 0,this._clockStep=void 0,this._shouldAnimate=void 0,this._lastSystemTime=yi(),this.currentTime=t,this.multiplier=y(e.multiplier,1),this.shouldAnimate=y(e.shouldAnimate,!1),this.clockStep=y(e.clockStep,_r.SYSTEM_CLOCK_MULTIPLIER)}Object.defineProperties(pW.prototype,{currentTime:{get:function(){return this._currentTime},set:function(e){ee.equals(this._currentTime,e)||(this._clockStep===_r.SYSTEM_CLOCK&&(this._clockStep=_r.SYSTEM_CLOCK_MULTIPLIER),this._currentTime=e)}},multiplier:{get:function(){return this._multiplier},set:function(e){this._multiplier!==e&&(this._clockStep===_r.SYSTEM_CLOCK&&(this._clockStep=_r.SYSTEM_CLOCK_MULTIPLIER),this._multiplier=e)}},clockStep:{get:function(){return this._clockStep},set:function(e){e===_r.SYSTEM_CLOCK&&(this._multiplier=1,this._shouldAnimate=!0,this._currentTime=ee.now()),this._clockStep=e}},shouldAnimate:{get:function(){return this._shouldAnimate},set:function(e){this._shouldAnimate!==e&&(this._clockStep===_r.SYSTEM_CLOCK&&(this._clockStep=_r.SYSTEM_CLOCK_MULTIPLIER),this._shouldAnimate=e)}}});pW.prototype.tick=function(){let e=yi(),t=ee.clone(this._currentTime);if(this.canAnimate&&this._shouldAnimate){let n=this._clockStep;if(n===_r.SYSTEM_CLOCK)t=ee.now(t);else{let i=this._multiplier;if(n===_r.TICK_DEPENDENT)t=ee.addSeconds(t,i,t);else{let a=e-this._lastSystemTime;t=ee.addSeconds(t,i*(a/1e3),t)}let r=this.clockRange,o=this.startTime,s=this.stopTime;if(r===Lo.CLAMPED)ee.lessThan(t,o)?t=ee.clone(o,t):ee.greaterThan(t,s)&&(t=ee.clone(s,t),this.onStop.raiseEvent(this));else if(r===Lo.LOOP_STOP)for(ee.lessThan(t,o)&&(t=ee.clone(o,t));ee.greaterThan(t,s);)t=ee.addSeconds(o,ee.secondsDifference(t,s),t),this.onStop.raiseEvent(this)}}return this._currentTime=t,this._lastSystemTime=e,this.onTick.raiseEvent(this),t};var qd=pW;function gx(){this._definitionChanged=new ge,this._startTime=void 0,this._stopTime=void 0,this._currentTime=void 0,this._clockRange=void 0,this._clockStep=void 0,this._multiplier=void 0}Object.defineProperties(gx.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},startTime:ml("startTime"),stopTime:ml("stopTime"),currentTime:ml("currentTime"),clockRange:ml("clockRange"),clockStep:ml("clockStep"),multiplier:ml("multiplier")});gx.prototype.clone=function(e){return u(e)||(e=new gx),e.startTime=this.startTime,e.stopTime=this.stopTime,e.currentTime=this.currentTime,e.clockRange=this.clockRange,e.clockStep=this.clockStep,e.multiplier=this.multiplier,e};gx.prototype.equals=function(e){return this===e||u(e)&&ee.equals(this.startTime,e.startTime)&&ee.equals(this.stopTime,e.stopTime)&&ee.equals(this.currentTime,e.currentTime)&&this.clockRange===e.clockRange&&this.clockStep===e.clockStep&&this.multiplier===e.multiplier};gx.prototype.merge=function(e){this.startTime=y(this.startTime,e.startTime),this.stopTime=y(this.stopTime,e.stopTime),this.currentTime=y(this.currentTime,e.currentTime),this.clockRange=y(this.clockRange,e.clockRange),this.clockStep=y(this.clockStep,e.clockStep),this.multiplier=y(this.multiplier,e.multiplier)};gx.prototype.getValue=function(e){return u(e)||(e=new qd),e.startTime=y(this.startTime,e.startTime),e.stopTime=y(this.stopTime,e.stopTime),e.currentTime=y(this.currentTime,e.currentTime),e.clockRange=y(this.clockRange,e.clockRange),e.multiplier=y(this.multiplier,e.multiplier),e.clockStep=y(this.clockStep,e.clockStep),e};var Yd=gx;var U7e=z.WHITE,V7e=.1,k7e=new H(8,8),z7e=new H(0,0),H7e=new H(1,1);function HE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this._cellAlpha=void 0,this._cellAlphaSubscription=void 0,this._lineCount=void 0,this._lineCountSubscription=void 0,this._lineThickness=void 0,this._lineThicknessSubscription=void 0,this._lineOffset=void 0,this._lineOffsetSubscription=void 0,this.color=e.color,this.cellAlpha=e.cellAlpha,this.lineCount=e.lineCount,this.lineThickness=e.lineThickness,this.lineOffset=e.lineOffset}Object.defineProperties(HE.prototype,{isConstant:{get:function(){return q.isConstant(this._color)&&q.isConstant(this._cellAlpha)&&q.isConstant(this._lineCount)&&q.isConstant(this._lineThickness)&&q.isConstant(this._lineOffset)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color"),cellAlpha:ce("cellAlpha"),lineCount:ce("lineCount"),lineThickness:ce("lineThickness"),lineOffset:ce("lineOffset")});HE.prototype.getType=function(e){return"Grid"};HE.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,U7e,t.color),t.cellAlpha=q.getValueOrDefault(this._cellAlpha,e,V7e),t.lineCount=q.getValueOrClonedDefault(this._lineCount,e,k7e,t.lineCount),t.lineThickness=q.getValueOrClonedDefault(this._lineThickness,e,H7e,t.lineThickness),t.lineOffset=q.getValueOrClonedDefault(this._lineOffset,e,z7e,t.lineOffset),t};HE.prototype.equals=function(e){return this===e||e instanceof HE&&q.equals(this._color,e._color)&&q.equals(this._cellAlpha,e._cellAlpha)&&q.equals(this._lineCount,e._lineCount)&&q.equals(this._lineThickness,e._lineThickness)&&q.equals(this._lineOffset,e._lineOffset)};var GE=HE;function WE(e){this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(WE.prototype,{isConstant:{get:function(){return q.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color")});WE.prototype.getType=function(e){return"PolylineArrow"};WE.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,z.WHITE,t.color),t};WE.prototype.equals=function(e){return this===e||e instanceof WE&&q.equals(this._color,e._color)};var jE=WE;var G7e=z.WHITE,W7e=z.TRANSPARENT,j7e=16,q7e=255;function qE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this._gapColor=void 0,this._gapColorSubscription=void 0,this._dashLength=void 0,this._dashLengthSubscription=void 0,this._dashPattern=void 0,this._dashPatternSubscription=void 0,this.color=e.color,this.gapColor=e.gapColor,this.dashLength=e.dashLength,this.dashPattern=e.dashPattern}Object.defineProperties(qE.prototype,{isConstant:{get:function(){return q.isConstant(this._color)&&q.isConstant(this._gapColor)&&q.isConstant(this._dashLength)&&q.isConstant(this._dashPattern)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color"),gapColor:ce("gapColor"),dashLength:ce("dashLength"),dashPattern:ce("dashPattern")});qE.prototype.getType=function(e){return"PolylineDash"};qE.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,G7e,t.color),t.gapColor=q.getValueOrClonedDefault(this._gapColor,e,W7e,t.gapColor),t.dashLength=q.getValueOrDefault(this._dashLength,e,j7e,t.dashLength),t.dashPattern=q.getValueOrDefault(this._dashPattern,e,q7e,t.dashPattern),t};qE.prototype.equals=function(e){return this===e||e instanceof qE&&q.equals(this._color,e._color)&&q.equals(this._gapColor,e._gapColor)&&q.equals(this._dashLength,e._dashLength)&&q.equals(this._dashPattern,e._dashPattern)};var YE=qE;var Y7e=z.WHITE,X7e=.25,K7e=1;function XE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this._glowPower=void 0,this._glowPowerSubscription=void 0,this._taperPower=void 0,this._taperPowerSubscription=void 0,this.color=e.color,this.glowPower=e.glowPower,this.taperPower=e.taperPower}Object.defineProperties(XE.prototype,{isConstant:{get:function(){return q.isConstant(this._color)&&q.isConstant(this._glow)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color"),glowPower:ce("glowPower"),taperPower:ce("taperPower")});XE.prototype.getType=function(e){return"PolylineGlow"};XE.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,Y7e,t.color),t.glowPower=q.getValueOrDefault(this._glowPower,e,X7e,t.glowPower),t.taperPower=q.getValueOrDefault(this._taperPower,e,K7e,t.taperPower),t};XE.prototype.equals=function(e){return this===e||e instanceof XE&&q.equals(this._color,e._color)&&q.equals(this._glowPower,e._glowPower)&&q.equals(this._taperPower,e._taperPower)};var KE=XE;var J7e=z.WHITE,Z7e=z.BLACK,Q7e=1;function JE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this.color=e.color,this.outlineColor=e.outlineColor,this.outlineWidth=e.outlineWidth}Object.defineProperties(JE.prototype,{isConstant:{get:function(){return q.isConstant(this._color)&&q.isConstant(this._outlineColor)&&q.isConstant(this._outlineWidth)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth")});JE.prototype.getType=function(e){return"PolylineOutline"};JE.prototype.getValue=function(e,t){return u(t)||(t={}),t.color=q.getValueOrClonedDefault(this._color,e,J7e,t.color),t.outlineColor=q.getValueOrClonedDefault(this._outlineColor,e,Z7e,t.outlineColor),t.outlineWidth=q.getValueOrDefault(this._outlineWidth,e,Q7e),t};JE.prototype.equals=function(e){return this===e||e instanceof JE&&q.equals(this._color,e._color)&&q.equals(this._outlineColor,e._outlineColor)&&q.equals(this._outlineWidth,e._outlineWidth)};var _y=JE;function g_(e,t){this._value=void 0,this._definitionChanged=new ge,this._eventHelper=new Po,this._referenceFrame=y(t,rr.FIXED),this.setValue(e)}Object.defineProperties(g_.prototype,{isConstant:{get:function(){let e=this._value;if(!u(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!q.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});g_.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,rr.FIXED,t)};g_.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._value;if(!u(i))return;let r=i.length;u(n)||(n=new Array(r));let o=0,s=0;for(;o<r;){let c=i[o].getValueInReferenceFrame(e,t,n[o]);u(c)&&(n[s]=c,s++),o++}return n.length=s,n};g_.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),u(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let r=e[i];u(r)&&t.add(r.definitionChanged,g_.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};g_.prototype.equals=function(e){return this===e||e instanceof g_&&this._referenceFrame===e._referenceFrame&&q.arrayEquals(this._value,e._value)};g_.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var y_=g_;function gy(e){this._value=void 0,this._definitionChanged=new ge,this._eventHelper=new Po,this.setValue(e)}Object.defineProperties(gy.prototype,{isConstant:{get:function(){let e=this._value;if(!u(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!q.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});gy.prototype.getValue=function(e,t){let n=this._value;if(!u(n))return;let i=n.length;u(t)||(t=new Array(i));let r=0,o=0;for(;r<i;){let a=this._value[r].getValue(e,t[r]);u(a)&&(t[o]=a,o++),r++}return t.length=o,t};gy.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),u(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let r=e[i];u(r)&&t.add(r.definitionChanged,gy.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};gy.prototype.equals=function(e){return this===e||e instanceof gy&&q.arrayEquals(this._value,e._value)};gy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var ZE=gy;function yx(e){let t=e._targetProperty;if(!u(t)){let n=e._targetEntity;if(!u(n)){if(n=e._targetCollection.getById(e._targetId),!u(n)){e._targetEntity=e._targetProperty=void 0;return}n.definitionChanged.addEventListener(pu.prototype._onTargetEntityDefinitionChanged,e),e._targetEntity=n}let i=e._targetPropertyNames;t=e._targetEntity;for(let r=0,o=i.length;r<o&&u(t);++r)t=t[i[r]];e._targetProperty=t}return t}function pu(e,t,n){this._targetCollection=e,this._targetId=t,this._targetPropertyNames=n,this._targetProperty=void 0,this._targetEntity=void 0,this._definitionChanged=new ge,e.collectionChanged.addEventListener(pu.prototype._onCollectionChanged,this)}Object.defineProperties(pu.prototype,{isConstant:{get:function(){return q.isConstant(yx(this))}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){let e=yx(this);return u(e)?e.referenceFrame:void 0}},targetId:{get:function(){return this._targetId}},targetCollection:{get:function(){return this._targetCollection}},targetPropertyNames:{get:function(){return this._targetPropertyNames}},resolvedProperty:{get:function(){return yx(this)}}});pu.fromString=function(e,t){let n,i=[],r=!0,o=!1,s="";for(let a=0;a<t.length;++a){let c=t.charAt(a);o?(s+=c,o=!1):c==="\\"?o=!0:r&&c==="#"?(n=s,r=!1,s=""):!r&&c==="."?(i.push(s),s=""):s+=c}return i.push(s),new pu(e,n,i)};pu.prototype.getValue=function(e,t){let n=yx(this);return u(n)?n.getValue(e,t):void 0};pu.prototype.getValueInReferenceFrame=function(e,t,n){let i=yx(this);return u(i)?i.getValueInReferenceFrame(e,t,n):void 0};pu.prototype.getType=function(e){let t=yx(this);return u(t)?t.getType(e):void 0};pu.prototype.equals=function(e){if(this===e)return!0;let t=this._targetPropertyNames,n=e._targetPropertyNames;if(this._targetCollection!==e._targetCollection||this._targetId!==e._targetId||t.length!==n.length)return!1;let i=this._targetPropertyNames.length;for(let r=0;r<i;r++)if(t[r]!==n[r])return!1;return!0};pu.prototype._onTargetEntityDefinitionChanged=function(e,t,n,i){u(this._targetProperty)&&this._targetPropertyNames[0]===t&&(this._targetProperty=void 0,this._definitionChanged.raiseEvent(this))};pu.prototype._onCollectionChanged=function(e,t,n){let i=this._targetEntity;u(i)&&n.indexOf(i)!==-1?(i.definitionChanged.removeEventListener(pu.prototype._onTargetEntityDefinitionChanged,this),this._targetEntity=this._targetProperty=void 0):u(i)||(i=yx(this),u(i)&&this._definitionChanged.raiseEvent(this))};var A_=pu;var $7e={packedLength:1,pack:function(e,t,n){return n=y(n,0),t[n]=e,t},unpack:function(e,t,n){return t=y(t,0),e[t]},convertPackedArrayForInterpolation:function(e,t,n,i){u(i)||(i=[]),t=y(t,0),n=y(n,e.length);let r;for(let o=0,s=n-t+1;o<s;o++){let a=e[t+o];o===0||Math.abs(r-a)<Math.PI?i[o]=a:i[o]=a-P.TWO_PI,r=a}},unpackInterpolationResult:function(e,t,n,i,r){return r=e[0],r<0?r+P.TWO_PI:r}},wf=$7e;var lle={packedLength:1,pack:function(e,t,n){n=y(n,0),t[n]=e},unpack:function(e,t,n){return t=y(t,0),e[t]}};function ule(e,t,n){let i,r=e.length,o=n.length,s=r+o;if(e.length=s,r!==t){let a=r-1;for(i=s-1;i>=t;i--)e[i]=e[a--]}for(i=0;i<o;i++)e[t++]=n[i]}function fle(e,t){return e instanceof ee?e:typeof e=="string"?ee.fromIso8601(e):ee.addSeconds(t,e,new ee)}var _W=[],gW=[];function XV(e,t,n,i,r){let o=0,s,a,c,l,f,d;for(;o<i.length;){f=fle(i[o],e),c=Pr(t,f,ee.compare);let p=0,g=0;if(c<0){for(c=~c,l=c*r,a=void 0,d=t[c];o<i.length&&(f=fle(i[o],e),!(u(a)&&ee.compare(a,f)>=0||u(d)&&ee.compare(f,d)>=0));){for(_W[p++]=f,o=o+1,s=0;s<r;s++)gW[g++]=i[o],o=o+1;a=f}p>0&&(gW.length=g,ule(n,l,gW),_W.length=p,ule(t,c,_W))}else{for(s=0;s<r;s++)o++,n[c*r+s]=i[o];o++}}}function Xd(e,t){let n=e;n===Number&&(n=lle);let i=n.packedLength,r=y(n.packedInterpolationLength,i),o=0,s;if(u(t)){let a=t.length;s=new Array(a);for(let c=0;c<a;c++){let l=t[c];l===Number&&(l=lle);let f=l.packedLength;i+=f,r+=y(l.packedInterpolationLength,f),s[c]=l}o=a}this._type=e,this._innerType=n,this._interpolationDegree=1,this._interpolationAlgorithm=_x,this._numberOfPoints=0,this._times=[],this._values=[],this._xTable=[],this._yTable=[],this._packedLength=i,this._packedInterpolationLength=r,this._updateTableLength=!0,this._interpolationResult=new Array(r),this._definitionChanged=new ge,this._derivativeTypes=t,this._innerDerivativeTypes=s,this._inputOrder=o,this._forwardExtrapolationType=mu.NONE,this._forwardExtrapolationDuration=0,this._backwardExtrapolationType=mu.NONE,this._backwardExtrapolationDuration=0}Object.defineProperties(Xd.prototype,{isConstant:{get:function(){return this._values.length===0}},definitionChanged:{get:function(){return this._definitionChanged}},type:{get:function(){return this._type}},derivativeTypes:{get:function(){return this._derivativeTypes}},interpolationDegree:{get:function(){return this._interpolationDegree}},interpolationAlgorithm:{get:function(){return this._interpolationAlgorithm}},forwardExtrapolationType:{get:function(){return this._forwardExtrapolationType},set:function(e){this._forwardExtrapolationType!==e&&(this._forwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},forwardExtrapolationDuration:{get:function(){return this._forwardExtrapolationDuration},set:function(e){this._forwardExtrapolationDuration!==e&&(this._forwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationType:{get:function(){return this._backwardExtrapolationType},set:function(e){this._backwardExtrapolationType!==e&&(this._backwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationDuration:{get:function(){return this._backwardExtrapolationDuration},set:function(e){this._backwardExtrapolationDuration!==e&&(this._backwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}}});Xd.prototype.getValue=function(e,t){let n=this._times,i=n.length;if(i===0)return;let r,o=this._innerType,s=this._values,a=Pr(n,e,ee.compare);if(a<0){if(a=~a,a===0){let S=n[a];if(r=this._backwardExtrapolationDuration,this._backwardExtrapolationType===mu.NONE||r!==0&&ee.secondsDifference(S,e)>r)return;if(this._backwardExtrapolationType===mu.HOLD)return o.unpack(s,0,t)}if(a>=i){a=i-1;let S=n[a];if(r=this._forwardExtrapolationDuration,this._forwardExtrapolationType===mu.NONE||r!==0&&ee.secondsDifference(e,S)>r)return;if(this._forwardExtrapolationType===mu.HOLD)return a=i-1,o.unpack(s,a*o.packedLength,t)}let c=this._xTable,l=this._yTable,f=this._interpolationAlgorithm,d=this._packedInterpolationLength,p=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;let S=Math.min(f.getRequiredDataPoints(this._interpolationDegree,p),i);S!==this._numberOfPoints&&(this._numberOfPoints=S,c.length=S,l.length=S*d)}let g=this._numberOfPoints-1;if(g<1)return;let m=0,A=i-1;if(A-m+1>=g+1){let S=a-(g/2|0)-1;S<m&&(S=m);let v=S+g;v>A&&(v=A,S=v-g,S<m&&(S=m)),m=S,A=v}let C=A-m+1;for(let S=0;S<C;++S)c[S]=ee.secondsDifference(n[m+S],n[A]);if(u(o.convertPackedArrayForInterpolation))o.convertPackedArrayForInterpolation(s,m,A,l);else{let S=0,v=this._packedLength,D=m*v,M=(A+1)*v;for(;D<M;)l[S]=s[D],D++,S++}let T=ee.secondsDifference(e,n[A]),E;if(p===0||!u(f.interpolate))E=f.interpolateOrderZero(T,c,l,d,this._interpolationResult);else{let S=Math.floor(d/(p+1));E=f.interpolate(T,c,l,S,p,p,this._interpolationResult)}return u(o.unpackInterpolationResult)?o.unpackInterpolationResult(E,s,m,A,t):o.unpack(E,0,t)}return o.unpack(s,a*this._packedLength,t)};Xd.prototype.setInterpolationOptions=function(e){if(!u(e))return;let t=!1,n=e.interpolationAlgorithm,i=e.interpolationDegree;u(n)&&this._interpolationAlgorithm!==n&&(this._interpolationAlgorithm=n,t=!0),u(i)&&this._interpolationDegree!==i&&(this._interpolationDegree=i,t=!0),t&&(this._updateTableLength=!0,this._definitionChanged.raiseEvent(this))};Xd.prototype.addSample=function(e,t,n){let i=this._innerDerivativeTypes,r=u(i),o=this._innerType,s=[];if(s.push(e),o.pack(t,s,s.length),r){let a=i.length;for(let c=0;c<a;c++)i[c].pack(n[c],s,s.length)}XV(void 0,this._times,this._values,s,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};Xd.prototype.addSamples=function(e,t,n){let i=this._innerDerivativeTypes,r=u(i),o=this._innerType,s=e.length,a=[];for(let c=0;c<s;c++)if(a.push(e[c]),o.pack(t[c],a,a.length),r){let l=n[c],f=i.length;for(let d=0;d<f;d++)i[d].pack(l[d],a,a.length)}XV(void 0,this._times,this._values,a,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};Xd.prototype.addSamplesPackedArray=function(e,t){XV(t,this._times,this._values,e,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};Xd.prototype.removeSample=function(e){let t=Pr(this._times,e,ee.compare);return t<0?!1:(dle(this,t,1),!0)};function dle(e,t,n){let i=e._packedLength;e._times.splice(t,n),e._values.splice(t*i,n*i),e._updateTableLength=!0,e._definitionChanged.raiseEvent(e)}Xd.prototype.removeSamples=function(e){let t=this._times,n=Pr(t,e.start,ee.compare);n<0?n=~n:e.isStartIncluded||++n;let i=Pr(t,e.stop,ee.compare);i<0?i=~i:e.isStopIncluded&&++i,dle(this,n,i-n)};Xd.prototype.equals=function(e){if(this===e)return!0;if(!u(e)||this._type!==e._type||this._interpolationDegree!==e._interpolationDegree||this._interpolationAlgorithm!==e._interpolationAlgorithm)return!1;let t=this._derivativeTypes,n=u(t),i=e._derivativeTypes,r=u(i);if(n!==r)return!1;let o,s;if(n){if(s=t.length,s!==i.length)return!1;for(o=0;o<s;o++)if(t[o]!==i[o])return!1}let a=this._times,c=e._times;if(s=a.length,s!==c.length)return!1;for(o=0;o<s;o++)if(!ee.equals(a[o],c[o]))return!1;let l=this._values,f=e._values;for(s=l.length,o=0;o<s;o++)if(l[o]!==f[o])return!1;return!0};Xd._mergeNewSamples=XV;var _u=Xd;function Df(e,t){t=y(t,0);let n;if(t>0){n=new Array(t);for(let i=0;i<t;i++)n[i]=h}this._numberOfDerivatives=t,this._property=new _u(h,n),this._definitionChanged=new ge,this._referenceFrame=y(e,rr.FIXED),this._property._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)}Object.defineProperties(Df.prototype,{isConstant:{get:function(){return this._property.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}},interpolationDegree:{get:function(){return this._property.interpolationDegree}},interpolationAlgorithm:{get:function(){return this._property.interpolationAlgorithm}},numberOfDerivatives:{get:function(){return this._numberOfDerivatives}},forwardExtrapolationType:{get:function(){return this._property.forwardExtrapolationType},set:function(e){this._property.forwardExtrapolationType=e}},forwardExtrapolationDuration:{get:function(){return this._property.forwardExtrapolationDuration},set:function(e){this._property.forwardExtrapolationDuration=e}},backwardExtrapolationType:{get:function(){return this._property.backwardExtrapolationType},set:function(e){this._property.backwardExtrapolationType=e}},backwardExtrapolationDuration:{get:function(){return this._property.backwardExtrapolationDuration},set:function(e){this._property.backwardExtrapolationDuration=e}}});Df.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,rr.FIXED,t)};Df.prototype.getValueInReferenceFrame=function(e,t,n){if(n=this._property.getValue(e,n),u(n))return mp.convertToReferenceFrame(e,n,this._referenceFrame,t,n)};Df.prototype.setInterpolationOptions=function(e){this._property.setInterpolationOptions(e)};Df.prototype.addSample=function(e,t,n){let i=this._numberOfDerivatives;this._property.addSample(e,t,n)};Df.prototype.addSamples=function(e,t,n){this._property.addSamples(e,t,n)};Df.prototype.addSamplesPackedArray=function(e,t){this._property.addSamplesPackedArray(e,t)};Df.prototype.removeSample=function(e){return this._property.removeSample(e)};Df.prototype.removeSamples=function(e){this._property.removeSamples(e)};Df.prototype.equals=function(e){return this===e||e instanceof Df&&q.equals(this._property,e._property)&&this._referenceFrame===e._referenceFrame};var ta=Df;var eje={HORIZONTAL:0,VERTICAL:1},Kd=Object.freeze(eje);var tje=Kd.HORIZONTAL,nje=z.WHITE,ije=z.BLACK,rje=0,oje=1;function QE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._orientation=void 0,this._orientationSubscription=void 0,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._offset=void 0,this._offsetSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.orientation=e.orientation,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.offset=e.offset,this.repeat=e.repeat}Object.defineProperties(QE.prototype,{isConstant:{get:function(){return q.isConstant(this._orientation)&&q.isConstant(this._evenColor)&&q.isConstant(this._oddColor)&&q.isConstant(this._offset)&&q.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},orientation:ce("orientation"),evenColor:ce("evenColor"),oddColor:ce("oddColor"),offset:ce("offset"),repeat:ce("repeat")});QE.prototype.getType=function(e){return"Stripe"};QE.prototype.getValue=function(e,t){return u(t)||(t={}),t.horizontal=q.getValueOrDefault(this._orientation,e,tje)===Kd.HORIZONTAL,t.evenColor=q.getValueOrClonedDefault(this._evenColor,e,nje,t.evenColor),t.oddColor=q.getValueOrClonedDefault(this._oddColor,e,ije,t.oddColor),t.offset=q.getValueOrDefault(this._offset,e,rje),t.repeat=q.getValueOrDefault(this._repeat,e,oje),t};QE.prototype.equals=function(e){return this===e||e instanceof QE&&q.equals(this._orientation,e._orientation)&&q.equals(this._evenColor,e._evenColor)&&q.equals(this._oddColor,e._oddColor)&&q.equals(this._offset,e._offset)&&q.equals(this._repeat,e._repeat)};var $E=QE;function yy(e){this._definitionChanged=new ge,this._intervals=new Mo,this._intervals.changedEvent.addEventListener(yy.prototype._intervalsChanged,this),this._referenceFrame=y(e,rr.FIXED)}Object.defineProperties(yy.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}},referenceFrame:{get:function(){return this._referenceFrame}}});yy.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,rr.FIXED,t)};yy.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._intervals.findDataForIntervalContainingDate(e);if(u(i))return mp.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};yy.prototype.equals=function(e){return this===e||e instanceof yy&&this._intervals.equals(e._intervals,q.equals)&&this._referenceFrame===e._referenceFrame};yy.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var x_=yy;function Ax(){this._definitionChanged=new ge,this._intervals=new Mo,this._intervals.changedEvent.addEventListener(Ax.prototype._intervalsChanged,this)}Object.defineProperties(Ax.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});Ax.prototype.getValue=function(e,t){let n=this._intervals.findDataForIntervalContainingDate(e);return u(n)&&typeof n.clone=="function"?n.clone(t):n};Ax.prototype.equals=function(e){return this===e||e instanceof Ax&&this._intervals.equals(e._intervals,q.equals)};Ax.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var C_=Ax;function eb(e,t){this._position=void 0,this._subscription=void 0,this._definitionChanged=new ge,this._normalize=y(t,!0),this.position=e}Object.defineProperties(eb.prototype,{isConstant:{get:function(){return q.isConstant(this._position)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._position},set:function(e){let t=this._position;t!==e&&(u(t)&&this._subscription(),this._position=e,u(e)&&(this._subscription=e._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)),this._definitionChanged.raiseEvent(this))}},normalize:{get:function(){return this._normalize},set:function(e){this._normalize!==e&&(this._normalize=e,this._definitionChanged.raiseEvent(this))}}});var sje=new h,hle=new h,mle=new ee,yW=1/60;eb.prototype.getValue=function(e,t){return this._getValue(e,t)};eb.prototype._getValue=function(e,t,n){u(t)||(t=new h);let i=this._position;if(q.isConstant(i))return this._normalize?void 0:h.clone(h.ZERO,t);let r=i.getValue(e,sje),o=i.getValue(ee.addSeconds(e,yW,mle),hle);if(!u(r)||!u(o)&&(o=r,r=i.getValue(ee.addSeconds(e,-yW,mle),hle),!u(r)))return;if(h.equals(r,o))return this._normalize?void 0:h.clone(h.ZERO,t);u(n)&&r.clone(n);let s=h.subtract(o,r,t);return this._normalize?h.normalize(s,t):h.divideByScalar(s,yW,t)};eb.prototype.equals=function(e){return this===e||e instanceof eb&&q.equals(this._position,e._position)};var xx=eb;function DR(e,t){this._velocityVectorProperty=new xx(e,!0),this._subscription=void 0,this._ellipsoid=void 0,this._definitionChanged=new ge,this.ellipsoid=y(t,re.WGS84);let n=this;this._velocityVectorProperty.definitionChanged.addEventListener(function(){n._definitionChanged.raiseEvent(n)})}Object.defineProperties(DR.prototype,{isConstant:{get:function(){return q.isConstant(this._velocityVectorProperty)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._velocityVectorProperty.position},set:function(e){this._velocityVectorProperty.position=e}},ellipsoid:{get:function(){return this._ellipsoid},set:function(e){this._ellipsoid!==e&&(this._ellipsoid=e,this._definitionChanged.raiseEvent(this))}}});var ple=new h,aje=new h,_le=new Q;DR.prototype.getValue=function(e,t){let n=this._velocityVectorProperty._getValue(e,aje,ple);if(u(n))return Mt.rotationMatrixFromPositionVelocity(ple,n,this._ellipsoid,_le),Le.fromRotationMatrix(_le,t)};DR.prototype.equals=function(e){return this===e||e instanceof DR&&q.equals(this._velocityVectorProperty,e._velocityVectorProperty)&&(this._ellipsoid===e._ellipsoid||this._ellipsoid.equals(e._ellipsoid))};var IR=DR;function Ay(){}Ay.packedLength=h.packedLength;Ay.unpack=h.unpack;Ay.pack=h.pack;var AW;function PR(e,t){return t[0]==="#"&&(t=AW+t),A_.fromString(e,t)}function gle(e,t,n){if(u(n.reference))return PR(t,n.reference);if(u(n.velocityReference)){let i=PR(t,n.velocityReference);switch(e){case h:case Ay:return new xx(i,e===Ay);case Le:return new IR(i)}}throw new de(`${JSON.stringify(n)} is not valid CZML.`)}function cje(e,t){return new gd(function(n,i){return t(e.getValue(n,i))},e.isConstant)}var zi=new h,Wc=new wR,sc=new me,Cx=new xn,KV=new Le;function lje(e){let t=e.rgbaf;if(u(t))return t;let n=e.rgba;if(!u(n))return;let i=n.length;if(i===z.packedLength)return[z.byteToFloat(n[0]),z.byteToFloat(n[1]),z.byteToFloat(n[2]),z.byteToFloat(n[3])];t=new Array(i);for(let r=0;r<i;r+=5)t[r]=n[r],t[r+1]=z.byteToFloat(n[r+1]),t[r+2]=z.byteToFloat(n[r+2]),t[r+3]=z.byteToFloat(n[r+3]),t[r+4]=z.byteToFloat(n[r+4]);return t}function yle(e,t){let n=y(e.uri,e);return u(t)?t.getDerivedResource({url:n}):ve.createIfNeeded(n)}function uje(e){let t=e.wsen;if(u(t))return t;let n=e.wsenDegrees;if(!u(n))return;let i=n.length;if(i===le.packedLength)return[P.toRadians(n[0]),P.toRadians(n[1]),P.toRadians(n[2]),P.toRadians(n[3])];t=new Array(i);for(let r=0;r<i;r+=5)t[r]=n[r],t[r+1]=P.toRadians(n[r+1]),t[r+2]=P.toRadians(n[r+2]),t[r+3]=P.toRadians(n[r+3]),t[r+4]=P.toRadians(n[r+4]);return t}function fje(e){let t=e.length;if(Wc.magnitude=1,t===2)return Wc.clock=e[0],Wc.cone=e[1],h.fromSpherical(Wc,zi),[zi.x,zi.y,zi.z];let n=new Array(t/3*4);for(let i=0,r=0;i<t;i+=3,r+=4)n[r]=e[i],Wc.clock=e[i+1],Wc.cone=e[i+2],h.fromSpherical(Wc,zi),n[r+1]=zi.x,n[r+2]=zi.y,n[r+3]=zi.z;return n}function dje(e){let t=e.length;if(t===3)return Wc.clock=e[0],Wc.cone=e[1],Wc.magnitude=e[2],h.fromSpherical(Wc,zi),[zi.x,zi.y,zi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],Wc.clock=e[i+1],Wc.cone=e[i+2],Wc.magnitude=e[i+3],h.fromSpherical(Wc,zi),n[i+1]=zi.x,n[i+2]=zi.y,n[i+3]=zi.z;return n}function hje(e){let t=e.length;if(t===3)return sc.longitude=e[0],sc.latitude=e[1],sc.height=e[2],re.WGS84.cartographicToCartesian(sc,zi),[zi.x,zi.y,zi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],sc.longitude=e[i+1],sc.latitude=e[i+2],sc.height=e[i+3],re.WGS84.cartographicToCartesian(sc,zi),n[i+1]=zi.x,n[i+2]=zi.y,n[i+3]=zi.z;return n}function mje(e){let t=e.length;if(t===3)return sc.longitude=P.toRadians(e[0]),sc.latitude=P.toRadians(e[1]),sc.height=e[2],re.WGS84.cartographicToCartesian(sc,zi),[zi.x,zi.y,zi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],sc.longitude=P.toRadians(e[i+1]),sc.latitude=P.toRadians(e[i+2]),sc.height=e[i+3],re.WGS84.cartographicToCartesian(sc,zi),n[i+1]=zi.x,n[i+2]=zi.y,n[i+3]=zi.z;return n}function xW(e){let t=e.cartesian;if(u(t))return t;let n=e.cartesianVelocity;if(u(n))return n;let i=e.unitCartesian;if(u(i))return i;let r=e.unitSpherical;if(u(r))return fje(r);let o=e.spherical;if(u(o))return dje(o);let s=e.cartographicRadians;if(u(s))return hje(s);let a=e.cartographicDegrees;if(u(a))return mje(a);throw new de(`${JSON.stringify(e)} is not a valid CZML interval.`)}function Ale(e,t){h.unpack(e,t,zi),h.normalize(zi,zi),h.pack(zi,e,t)}function pje(e){let t=xW(e);if(t.length===3)return Ale(t,0),t;for(let n=1;n<t.length;n+=4)Ale(t,n);return t}function xle(e,t){Le.unpack(e,t,KV),Le.normalize(KV,KV),Le.pack(KV,e,t)}function _je(e){let t=e.unitQuaternion;if(u(t)){if(t.length===4)return xle(t,0),t;for(let n=1;n<t.length;n+=5)xle(t,n)}return t}function Cle(e){return typeof e=="boolean"?Boolean:typeof e=="number"?Number:typeof e=="string"?String:e.hasOwnProperty("array")?Array:e.hasOwnProperty("boolean")?Boolean:e.hasOwnProperty("boundingRectangle")?Xe:e.hasOwnProperty("cartesian2")?H:e.hasOwnProperty("cartesian")||e.hasOwnProperty("spherical")||e.hasOwnProperty("cartographicRadians")||e.hasOwnProperty("cartographicDegrees")?h:e.hasOwnProperty("unitCartesian")||e.hasOwnProperty("unitSpherical")?Ay:e.hasOwnProperty("rgba")||e.hasOwnProperty("rgbaf")?z:e.hasOwnProperty("arcType")?Kt:e.hasOwnProperty("classificationType")?kn:e.hasOwnProperty("colorBlendMode")?Za:e.hasOwnProperty("cornerType")?Ri:e.hasOwnProperty("heightReference")?je:e.hasOwnProperty("horizontalOrigin")?_i:e.hasOwnProperty("date")?ee:e.hasOwnProperty("labelStyle")?zr:e.hasOwnProperty("number")?Number:e.hasOwnProperty("nearFarScalar")?Bt:e.hasOwnProperty("distanceDisplayCondition")?vt:e.hasOwnProperty("object")||e.hasOwnProperty("value")?Object:e.hasOwnProperty("unitQuaternion")?Le:e.hasOwnProperty("shadowMode")?yn:e.hasOwnProperty("string")?String:e.hasOwnProperty("stripeOrientation")?Kd:e.hasOwnProperty("wsen")||e.hasOwnProperty("wsenDegrees")?le:e.hasOwnProperty("uri")?MR.default:e.hasOwnProperty("verticalOrigin")?Pn:Object}function gje(e,t,n){switch(e){case Kt:return Kt[y(t.arcType,t)];case Array:return t.array;case Boolean:return y(t.boolean,t);case Xe:return t.boundingRectangle;case H:return t.cartesian2;case h:return xW(t);case Ay:return pje(t);case z:return lje(t);case kn:return kn[y(t.classificationType,t)];case Za:return Za[y(t.colorBlendMode,t)];case Ri:return Ri[y(t.cornerType,t)];case je:return je[y(t.heightReference,t)];case _i:return _i[y(t.horizontalOrigin,t)];case Image:return yle(t,n);case ee:return ee.fromIso8601(y(t.date,t));case zr:return zr[y(t.labelStyle,t)];case Number:return y(t.number,t);case Bt:return t.nearFarScalar;case vt:return t.distanceDisplayCondition;case Object:return y(y(t.object,t.value),t);case Le:return _je(t);case wf:return y(t.number,t);case yn:return yn[y(y(t.shadowMode,t.shadows),t)];case String:return y(t.string,t);case Kd:return Kd[y(t.stripeOrientation,t)];case le:return uje(t);case MR.default:return yle(t,n);case Pn:return Pn[y(t.verticalOrigin,t)];default:throw new de(e)}}var yje={HERMITE:SR,LAGRANGE:vR,LINEAR:_x};function JV(e,t){let n=e.interpolationAlgorithm,i=e.interpolationDegree;(u(n)||u(i))&&t.setInterpolationOptions({interpolationAlgorithm:yje[n],interpolationDegree:i});let r=e.forwardExtrapolationType;u(r)&&(t.forwardExtrapolationType=mu[r]);let o=e.forwardExtrapolationDuration;u(o)&&(t.forwardExtrapolationDuration=o);let s=e.backwardExtrapolationType;u(s)&&(t.backwardExtrapolationType=mu[s]);let a=e.backwardExtrapolationDuration;u(a)&&(t.backwardExtrapolationDuration=a)}var Tle={iso8601:void 0};function so(e){if(u(e))return Tle.iso8601=e,xn.fromIso8601(Tle)}function CW(e){let t=ze.MAXIMUM_INTERVAL.clone();return t.data=e,t}function Ele(e){let t=new ic;return t.intervals.addInterval(CW(e)),t}function ble(e){let t=new $s(e.referenceFrame);return t.intervals.addInterval(CW(e)),t}function ZV(e,t,n,i,r,o,s){let a=so(i.interval);u(r)&&(u(a)?a=xn.intersect(a,r,Cx):a=r);let c,l,f,d=!u(i.reference)&&!u(i.velocityReference),p=u(a)&&!a.equals(ze.MAXIMUM_INTERVAL);if(i.delete===!0){if(!p){t[n]=void 0;return}return Lle(t[n],a)}let g=!1;if(d){if(l=gje(e,i,o),!u(l))return;c=y(e.packedLength,1),f=y(l.length,1),g=!u(i.array)&&typeof l!="string"&&f>c&&e!==Object}let m=typeof e.unpack=="function"&&e!==wf;if(!g&&!p){d?t[n]=new ei(m?e.unpack(l,0):l):t[n]=gle(e,s,i);return}let A=t[n],x,C=i.epoch;if(u(C)&&(x=ee.fromIso8601(C)),g&&!p){A instanceof _u||(t[n]=A=new _u(e)),A.addSamplesPackedArray(l,x),JV(i,A);return}let T;if(!g&&p){a=a.clone(),d?a.data=m?e.unpack(l,0):l:a.data=gle(e,s,i),u(A)||(t[n]=A=d?new C_:new ic),d&&A instanceof C_?A.intervals.addInterval(a):A instanceof ic?(d&&(a.data=new ei(a.data)),A.intervals.addInterval(a)):(t[n]=A=Ele(A),d&&(a.data=new ei(a.data)),A.intervals.addInterval(a));return}u(A)||(t[n]=A=new ic),A instanceof ic||(t[n]=A=Ele(A));let E=A.intervals;T=E.findInterval(a),(!u(T)||!(T.data instanceof _u))&&(T=a.clone(),T.data=new _u(e),E.addInterval(T)),T.data.addSamplesPackedArray(l,x),JV(i,T.data)}function Lle(e,t){if(e instanceof _u){e.removeSamples(t);return}else if(e instanceof C_){e.intervals.removeInterval(t);return}else if(e instanceof ic){let n=e.intervals;for(let i=0;i<n.length;++i){let r=xn.intersect(n.get(i),t,Cx);r.isEmpty||Lle(r.data,t)}n.removeInterval(t);return}}function ye(e,t,n,i,r,o,s){if(u(i))if(Array.isArray(i))for(let a=0,c=i.length;a<c;++a)ZV(e,t,n,i[a],r,o,s);else ZV(e,t,n,i,r,o,s)}function Sle(e,t,n,i,r,o){let s=so(n.interval);u(i)&&(u(s)?s=xn.intersect(s,i,Cx):s=i);let a=u(n.cartesianVelocity)?1:0,c=h.packedLength*(a+1),l,f,d=!u(n.reference),p=u(s)&&!s.equals(ze.MAXIMUM_INTERVAL);if(n.delete===!0){if(!p){e[t]=void 0;return}return Nle(e[t],s)}let g,m=!1;if(d&&(u(n.referenceFrame)&&(g=rr[n.referenceFrame]),g=y(g,rr.FIXED),l=xW(n),f=y(l.length,1),m=f>c),!m&&!p){d?e[t]=new Mc(h.unpack(l),g):e[t]=PR(o,n.reference);return}let A=e[t],x,C=n.epoch;if(u(C)&&(x=ee.fromIso8601(C)),m&&!p){(!(A instanceof ta)||u(g)&&A.referenceFrame!==g)&&(e[t]=A=new ta(g,a)),A.addSamplesPackedArray(l,x),JV(n,A);return}let T;if(!m&&p){s=s.clone(),d?s.data=h.unpack(l):s.data=PR(o,n.reference),u(A)||(d?A=new x_(g):A=new $s(g),e[t]=A),d&&A instanceof x_&&u(g)&&A.referenceFrame===g?A.intervals.addInterval(s):A instanceof $s?(d&&(s.data=new Mc(s.data,g)),A.intervals.addInterval(s)):(e[t]=A=ble(A),d&&(s.data=new Mc(s.data,g)),A.intervals.addInterval(s));return}u(A)?A instanceof $s||(e[t]=A=ble(A)):e[t]=A=new $s(g);let E=A.intervals;T=E.findInterval(s),(!u(T)||!(T.data instanceof ta)||u(g)&&T.data.referenceFrame!==g)&&(T=s.clone(),T.data=new ta(g,a),E.addInterval(T)),T.data.addSamplesPackedArray(l,x),JV(n,T.data)}function Nle(e,t){if(e instanceof ta){e.removeSamples(t);return}else if(e instanceof x_){e.intervals.removeInterval(t);return}else if(e instanceof $s){let n=e.intervals;for(let i=0;i<n.length;++i){let r=xn.intersect(n.get(i),t,Cx);r.isEmpty||Nle(r.data,t)}n.removeInterval(t);return}}function Fle(e,t,n,i,r,o){if(u(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)Sle(e,t,n[s],i,r,o);else Sle(e,t,n,i,r,o)}function vle(e,t,n,i){u(n.references)?QV(e,t,n.references,n.interval,i,ZE,ic):(u(n.cartesian2)?n.array=H.unpackArray(n.cartesian2):u(n.cartesian)&&(n.array=H.unpackArray(n.cartesian)),u(n.array)&&ye(Array,e,t,n,void 0,void 0,i))}function wle(e,t,n,i,r,o){let s=so(n.interval);u(i)&&(u(s)?s=xn.intersect(s,i,Cx):s=i);let a=e[t],c,l;if(u(s)){a instanceof RE||(a=new RE,e[t]=a);let d=a.intervals;l=d.findInterval({start:s.start,stop:s.stop}),u(l)?c=l.data:(l=s.clone(),d.addInterval(l))}else c=a;let f;u(n.solidColor)?(c instanceof Ut||(c=new Ut),f=n.solidColor,ye(z,c,"color",f.color,void 0,void 0,o)):u(n.grid)?(c instanceof GE||(c=new GE),f=n.grid,ye(z,c,"color",f.color,void 0,r,o),ye(Number,c,"cellAlpha",f.cellAlpha,void 0,r,o),ye(H,c,"lineCount",f.lineCount,void 0,r,o),ye(H,c,"lineThickness",f.lineThickness,void 0,r,o),ye(H,c,"lineOffset",f.lineOffset,void 0,r,o)):u(n.image)?(c instanceof _g||(c=new _g),f=n.image,ye(Image,c,"image",f.image,void 0,r,o),ye(H,c,"repeat",f.repeat,void 0,r,o),ye(z,c,"color",f.color,void 0,r,o),ye(Boolean,c,"transparent",f.transparent,void 0,r,o)):u(n.stripe)?(c instanceof $E||(c=new $E),f=n.stripe,ye(Kd,c,"orientation",f.orientation,void 0,r,o),ye(z,c,"evenColor",f.evenColor,void 0,r,o),ye(z,c,"oddColor",f.oddColor,void 0,r,o),ye(Number,c,"offset",f.offset,void 0,r,o),ye(Number,c,"repeat",f.repeat,void 0,r,o)):u(n.polylineOutline)?(c instanceof _y||(c=new _y),f=n.polylineOutline,ye(z,c,"color",f.color,void 0,r,o),ye(z,c,"outlineColor",f.outlineColor,void 0,r,o),ye(Number,c,"outlineWidth",f.outlineWidth,void 0,r,o)):u(n.polylineGlow)?(c instanceof KE||(c=new KE),f=n.polylineGlow,ye(z,c,"color",f.color,void 0,r,o),ye(Number,c,"glowPower",f.glowPower,void 0,r,o),ye(Number,c,"taperPower",f.taperPower,void 0,r,o)):u(n.polylineArrow)?(c instanceof jE||(c=new jE),f=n.polylineArrow,ye(z,c,"color",f.color,void 0,void 0,o)):u(n.polylineDash)?(c instanceof YE||(c=new YE),f=n.polylineDash,ye(z,c,"color",f.color,void 0,void 0,o),ye(z,c,"gapColor",f.gapColor,void 0,void 0,o),ye(Number,c,"dashLength",f.dashLength,void 0,r,o),ye(Number,c,"dashPattern",f.dashPattern,void 0,r,o)):u(n.checkerboard)&&(c instanceof OE||(c=new OE),f=n.checkerboard,ye(z,c,"evenColor",f.evenColor,void 0,r,o),ye(z,c,"oddColor",f.oddColor,void 0,r,o),ye(H,c,"repeat",f.repeat,void 0,r,o)),u(l)?l.data=c:e[t]=c}function gu(e,t,n,i,r,o){if(u(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)wle(e,t,n[s],i,r,o);else wle(e,t,n,i,r,o)}function Aje(e,t,n,i){let r=t.name;u(r)&&(e.name=t.name)}function xje(e,t,n,i){let r=t.description;u(r)&&ye(String,e,"description",r,void 0,i,n)}function Cje(e,t,n,i){let r=t.position;u(r)&&Fle(e,"position",r,void 0,i,n)}function Tje(e,t,n,i){let r=t.viewFrom;u(r)&&ye(h,e,"viewFrom",r,void 0,i,n)}function Eje(e,t,n,i){let r=t.orientation;u(r)&&ye(Le,e,"orientation",r,void 0,i,n)}function bje(e,t,n,i){let r=t.properties;if(u(r)){u(e.properties)||(e.properties=new pl);for(let o in r)if(r.hasOwnProperty(o)){e.properties.hasProperty(o)||e.properties.addProperty(o);let s=r[o];if(Array.isArray(s))for(let a=0,c=s.length;a<c;++a)ZV(Cle(s[a]),e.properties,o,s[a],void 0,i,n);else ZV(Cle(s),e.properties,o,s,void 0,i,n)}}}function QV(e,t,n,i,r,o,s){let a=n.map(function(c){return PR(r,c)});if(u(i)){i=so(i);let c=e[t];if(!(c instanceof s)){let l=new s;l.intervals.addInterval(CW(c)),e[t]=c=l}i.data=new o(a),c.intervals.addInterval(i)}else e[t]=new o(a)}function Dle(e,t,n,i){let r=n.references;u(r)?QV(e,t,r,n.interval,i,ZE,ic):ye(Array,e,t,n,void 0,void 0,i)}function Ile(e,t,n,i){if(u(n))if(Array.isArray(n))for(let r=0,o=n.length;r<o;++r)Dle(e,t,n[r],i);else Dle(e,t,n,i)}function Ple(e,t,n,i){let r=n.references;u(r)?QV(e,t,r,n.interval,i,y_,$s):(u(n.cartesian)?n.array=h.unpackArray(n.cartesian):u(n.cartographicRadians)?n.array=h.fromRadiansArrayHeights(n.cartographicRadians):u(n.cartographicDegrees)&&(n.array=h.fromDegreesArrayHeights(n.cartographicDegrees)),u(n.array)&&ye(Array,e,t,n,void 0,void 0,i))}function RR(e,t,n,i){if(u(n))if(Array.isArray(n))for(let r=0,o=n.length;r<o;++r)Ple(e,t,n[r],i);else Ple(e,t,n,i)}function Sje(e){return h.unpackArray(e)}function vje(e){return h.fromRadiansArrayHeights(e)}function wje(e){return h.fromDegreesArrayHeights(e)}function Ole(e,t,n,i){let r=n.references;if(u(r)){let o=r.map(function(s){let a={};return QV(a,"positions",s,n.interval,i,y_,$s),a.positions});e[t]=new y_(o)}else u(n.cartesian)?n.array=n.cartesian.map(Sje):u(n.cartographicRadians)?n.array=n.cartographicRadians.map(vje):u(n.cartographicDegrees)&&(n.array=n.cartographicDegrees.map(wje)),u(n.array)&&ye(Array,e,t,n,void 0,void 0,i)}function Dje(e,t,n,i){if(u(n))if(Array.isArray(n))for(let r=0,o=n.length;r<o;++r)Ole(e,t,n[r],i);else Ole(e,t,n,i)}function Ije(e,t,n,i){if(u(n))if(Array.isArray(n))for(let r=0,o=n.length;r<o;r++)vle(e,t,n[r],i);else vle(e,t,n,i)}function Pje(e,t,n,i){let r=t.availability;if(!u(r))return;let o;if(Array.isArray(r))for(let s=0,a=r.length;s<a;++s)u(o)||(o=new Mo),o.addInterval(so(r[s]));else o=new Mo,o.addInterval(so(r));e.availability=o}function Oje(e,t,n,i,r){u(t)&&ye(Ay,e,"alignedAxis",t,n,i,r)}function Mje(e,t,n,i){let r=t.billboard;if(!u(r))return;let o=so(r.interval),s=e.billboard;u(s)||(e.billboard=s=new Ga),ye(Boolean,s,"show",r.show,o,i,n),ye(Image,s,"image",r.image,o,i,n),ye(Number,s,"scale",r.scale,o,i,n),ye(H,s,"pixelOffset",r.pixelOffset,o,i,n),ye(h,s,"eyeOffset",r.eyeOffset,o,i,n),ye(_i,s,"horizontalOrigin",r.horizontalOrigin,o,i,n),ye(Pn,s,"verticalOrigin",r.verticalOrigin,o,i,n),ye(je,s,"heightReference",r.heightReference,o,i,n),ye(z,s,"color",r.color,o,i,n),ye(wf,s,"rotation",r.rotation,o,i,n),Oje(s,r.alignedAxis,o,i,n),ye(Boolean,s,"sizeInMeters",r.sizeInMeters,o,i,n),ye(Number,s,"width",r.width,o,i,n),ye(Number,s,"height",r.height,o,i,n),ye(Bt,s,"scaleByDistance",r.scaleByDistance,o,i,n),ye(Bt,s,"translucencyByDistance",r.translucencyByDistance,o,i,n),ye(Bt,s,"pixelOffsetScaleByDistance",r.pixelOffsetScaleByDistance,o,i,n),ye(Xe,s,"imageSubRegion",r.imageSubRegion,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n),ye(Number,s,"disableDepthTestDistance",r.disableDepthTestDistance,o,i,n)}function Rje(e,t,n,i){let r=t.box;if(!u(r))return;let o=so(r.interval),s=e.box;u(s)||(e.box=s=new iA),ye(Boolean,s,"show",r.show,o,i,n),ye(h,s,"dimensions",r.dimensions,o,i,n),ye(je,s,"heightReference",r.heightReference,o,i,n),ye(Boolean,s,"fill",r.fill,o,i,n),gu(s,"material",r.material,o,i,n),ye(Boolean,s,"outline",r.outline,o,i,n),ye(z,s,"outlineColor",r.outlineColor,o,i,n),ye(Number,s,"outlineWidth",r.outlineWidth,o,i,n),ye(yn,s,"shadows",r.shadows,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n)}function Bje(e,t,n,i){let r=t.corridor;if(!u(r))return;let o=so(r.interval),s=e.corridor;u(s)||(e.corridor=s=new oA),ye(Boolean,s,"show",r.show,o,i,n),RR(s,"positions",r.positions,n),ye(Number,s,"width",r.width,o,i,n),ye(Number,s,"height",r.height,o,i,n),ye(je,s,"heightReference",r.heightReference,o,i,n),ye(Number,s,"extrudedHeight",r.extrudedHeight,o,i,n),ye(je,s,"extrudedHeightReference",r.extrudedHeightReference,o,i,n),ye(Ri,s,"cornerType",r.cornerType,o,i,n),ye(Number,s,"granularity",r.granularity,o,i,n),ye(Boolean,s,"fill",r.fill,o,i,n),gu(s,"material",r.material,o,i,n),ye(Boolean,s,"outline",r.outline,o,i,n),ye(z,s,"outlineColor",r.outlineColor,o,i,n),ye(Number,s,"outlineWidth",r.outlineWidth,o,i,n),ye(yn,s,"shadows",r.shadows,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n),ye(kn,s,"classificationType",r.classificationType,o,i,n),ye(Number,s,"zIndex",r.zIndex,o,i,n)}function Lje(e,t,n,i){let r=t.cylinder;if(!u(r))return;let o=so(r.interval),s=e.cylinder;u(s)||(e.cylinder=s=new sA),ye(Boolean,s,"show",r.show,o,i,n),ye(Number,s,"length",r.length,o,i,n),ye(Number,s,"topRadius",r.topRadius,o,i,n),ye(Number,s,"bottomRadius",r.bottomRadius,o,i,n),ye(je,s,"heightReference",r.heightReference,o,i,n),ye(Boolean,s,"fill",r.fill,o,i,n),gu(s,"material",r.material,o,i,n),ye(Boolean,s,"outline",r.outline,o,i,n),ye(z,s,"outlineColor",r.outlineColor,o,i,n),ye(Number,s,"outlineWidth",r.outlineWidth,o,i,n),ye(Number,s,"numberOfVerticalLines",r.numberOfVerticalLines,o,i,n),ye(Number,s,"slices",r.slices,o,i,n),ye(yn,s,"shadows",r.shadows,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n)}function Nje(e,t){let n=e.version;if(u(n)&&typeof n=="string"){let o=n.split(".");if(o.length===2){if(o[0]!=="1")throw new de("Cesium only supports CZML version 1.");t._version=n}}if(!u(t._version))throw new de("CZML version information invalid. It is expected to be a property on the document object in the <Major>.<Minor> version format.");let i=t._documentPacket;u(e.name)&&(i.name=e.name);let r=e.clock;if(u(r)){let o=i.clock;u(o)?(o.interval=y(r.interval,o.interval),o.currentTime=y(r.currentTime,o.currentTime),o.range=y(r.range,o.range),o.step=y(r.step,o.step),o.multiplier=y(r.multiplier,o.multiplier)):i.clock={interval:r.interval,currentTime:r.currentTime,range:r.range,step:r.step,multiplier:r.multiplier}}}function Fje(e,t,n,i){let r=t.ellipse;if(!u(r))return;let o=so(r.interval),s=e.ellipse;u(s)||(e.ellipse=s=new aA),ye(Boolean,s,"show",r.show,o,i,n),ye(Number,s,"semiMajorAxis",r.semiMajorAxis,o,i,n),ye(Number,s,"semiMinorAxis",r.semiMinorAxis,o,i,n),ye(Number,s,"height",r.height,o,i,n),ye(je,s,"heightReference",r.heightReference,o,i,n),ye(Number,s,"extrudedHeight",r.extrudedHeight,o,i,n),ye(je,s,"extrudedHeightReference",r.extrudedHeightReference,o,i,n),ye(wf,s,"rotation",r.rotation,o,i,n),ye(wf,s,"stRotation",r.stRotation,o,i,n),ye(Number,s,"granularity",r.granularity,o,i,n),ye(Boolean,s,"fill",r.fill,o,i,n),gu(s,"material",r.material,o,i,n),ye(Boolean,s,"outline",r.outline,o,i,n),ye(z,s,"outlineColor",r.outlineColor,o,i,n),ye(Number,s,"outlineWidth",r.outlineWidth,o,i,n),ye(Number,s,"numberOfVerticalLines",r.numberOfVerticalLines,o,i,n),ye(yn,s,"shadows",r.shadows,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n),ye(kn,s,"classificationType",r.classificationType,o,i,n),ye(Number,s,"zIndex",r.zIndex,o,i,n)}function Uje(e,t,n,i){let r=t.ellipsoid;if(!u(r))return;let o=so(r.interval),s=e.ellipsoid;u(s)||(e.ellipsoid=s=new cA),ye(Boolean,s,"show",r.show,o,i,n),ye(h,s,"radii",r.radii,o,i,n),ye(h,s,"innerRadii",r.innerRadii,o,i,n),ye(Number,s,"minimumClock",r.minimumClock,o,i,n),ye(Number,s,"maximumClock",r.maximumClock,o,i,n),ye(Number,s,"minimumCone",r.minimumCone,o,i,n),ye(Number,s,"maximumCone",r.maximumCone,o,i,n),ye(je,s,"heightReference",r.heightReference,o,i,n),ye(Boolean,s,"fill",r.fill,o,i,n),gu(s,"material",r.material,o,i,n),ye(Boolean,s,"outline",r.outline,o,i,n),ye(z,s,"outlineColor",r.outlineColor,o,i,n),ye(Number,s,"outlineWidth",r.outlineWidth,o,i,n),ye(Number,s,"stackPartitions",r.stackPartitions,o,i,n),ye(Number,s,"slicePartitions",r.slicePartitions,o,i,n),ye(Number,s,"subdivisions",r.subdivisions,o,i,n),ye(yn,s,"shadows",r.shadows,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n)}function Vje(e,t,n,i){let r=t.label;if(!u(r))return;let o=so(r.interval),s=e.label;u(s)||(e.label=s=new md),ye(Boolean,s,"show",r.show,o,i,n),ye(String,s,"text",r.text,o,i,n),ye(String,s,"font",r.font,o,i,n),ye(zr,s,"style",r.style,o,i,n),ye(Number,s,"scale",r.scale,o,i,n),ye(Boolean,s,"showBackground",r.showBackground,o,i,n),ye(z,s,"backgroundColor",r.backgroundColor,o,i,n),ye(H,s,"backgroundPadding",r.backgroundPadding,o,i,n),ye(H,s,"pixelOffset",r.pixelOffset,o,i,n),ye(h,s,"eyeOffset",r.eyeOffset,o,i,n),ye(_i,s,"horizontalOrigin",r.horizontalOrigin,o,i,n),ye(Pn,s,"verticalOrigin",r.verticalOrigin,o,i,n),ye(je,s,"heightReference",r.heightReference,o,i,n),ye(z,s,"fillColor",r.fillColor,o,i,n),ye(z,s,"outlineColor",r.outlineColor,o,i,n),ye(Number,s,"outlineWidth",r.outlineWidth,o,i,n),ye(Bt,s,"translucencyByDistance",r.translucencyByDistance,o,i,n),ye(Bt,s,"pixelOffsetScaleByDistance",r.pixelOffsetScaleByDistance,o,i,n),ye(Bt,s,"scaleByDistance",r.scaleByDistance,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n),ye(Number,s,"disableDepthTestDistance",r.disableDepthTestDistance,o,i,n)}function kje(e,t,n,i){let r=t.model;if(!u(r))return;let o=so(r.interval),s=e.model;u(s)||(e.model=s=new _p),ye(Boolean,s,"show",r.show,o,i,n),ye(MR.default,s,"uri",r.gltf,o,i,n),ye(Number,s,"scale",r.scale,o,i,n),ye(Number,s,"minimumPixelSize",r.minimumPixelSize,o,i,n),ye(Number,s,"maximumScale",r.maximumScale,o,i,n),ye(Boolean,s,"incrementallyLoadTextures",r.incrementallyLoadTextures,o,i,n),ye(Boolean,s,"runAnimations",r.runAnimations,o,i,n),ye(Boolean,s,"clampAnimations",r.clampAnimations,o,i,n),ye(yn,s,"shadows",r.shadows,o,i,n),ye(je,s,"heightReference",r.heightReference,o,i,n),ye(z,s,"silhouetteColor",r.silhouetteColor,o,i,n),ye(Number,s,"silhouetteSize",r.silhouetteSize,o,i,n),ye(z,s,"color",r.color,o,i,n),ye(Za,s,"colorBlendMode",r.colorBlendMode,o,i,n),ye(Number,s,"colorBlendAmount",r.colorBlendAmount,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n);let a,c,l=r.nodeTransformations;if(u(l))if(Array.isArray(l))for(a=0,c=l.length;a<c;++a)Mle(s,l[a],o,i,n);else Mle(s,l,o,i,n);let f=r.articulations;if(u(f))if(Array.isArray(f))for(a=0,c=f.length;a<c;++a)Rle(s,f[a],o,i,n);else Rle(s,f,o,i,n)}function Mle(e,t,n,i,r){let o=so(t.interval);u(n)&&(u(o)?o=xn.intersect(o,n,Cx):o=n);let s=e.nodeTransformations,a=Object.keys(t);for(let c=0,l=a.length;c<l;++c){let f=a[c];if(f==="interval")continue;let d=t[f];if(!u(d))continue;u(s)||(e.nodeTransformations=s=new pl),s.hasProperty(f)||s.addProperty(f);let p=s[f];u(p)||(s[f]=p=new lA),ye(h,p,"translation",d.translation,o,i,r),ye(Le,p,"rotation",d.rotation,o,i,r),ye(h,p,"scale",d.scale,o,i,r)}}function Rle(e,t,n,i,r){let o=so(t.interval);u(n)&&(u(o)?o=xn.intersect(o,n,Cx):o=n);let s=e.articulations,a=Object.keys(t);for(let c=0,l=a.length;c<l;++c){let f=a[c];if(f==="interval")continue;let d=t[f];u(d)&&(u(s)||(e.articulations=s=new pl),s.hasProperty(f)||s.addProperty(f),ye(Number,s,f,d,o,i,r))}}function zje(e,t,n,i){let r=t.path;if(!u(r))return;let o=so(r.interval),s=e.path;u(s)||(e.path=s=new gp),ye(Boolean,s,"show",r.show,o,i,n),ye(Number,s,"leadTime",r.leadTime,o,i,n),ye(Number,s,"trailTime",r.trailTime,o,i,n),ye(Number,s,"width",r.width,o,i,n),ye(Number,s,"resolution",r.resolution,o,i,n),gu(s,"material",r.material,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n)}function Hje(e,t,n,i){let r=t.point;if(!u(r))return;let o=so(r.interval),s=e.point;u(s)||(e.point=s=new fA),ye(Boolean,s,"show",r.show,o,i,n),ye(Number,s,"pixelSize",r.pixelSize,o,i,n),ye(je,s,"heightReference",r.heightReference,o,i,n),ye(z,s,"color",r.color,o,i,n),ye(z,s,"outlineColor",r.outlineColor,o,i,n),ye(Number,s,"outlineWidth",r.outlineWidth,o,i,n),ye(Bt,s,"scaleByDistance",r.scaleByDistance,o,i,n),ye(Bt,s,"translucencyByDistance",r.translucencyByDistance,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n),ye(Number,s,"disableDepthTestDistance",r.disableDepthTestDistance,o,i,n)}function OR(e){this.polygon=e,this._definitionChanged=new ge}Object.defineProperties(OR.prototype,{isConstant:{get:function(){let e=this.polygon._positions,t=this.polygon._holes;return(!u(e)||e.isConstant)&&(!u(t)||t.isConstant)}},definitionChanged:{get:function(){return this._definitionChanged}}});OR.prototype.getValue=function(e,t){let n;u(this.polygon._positions)&&(n=this.polygon._positions.getValue(e));let i;return u(this.polygon._holes)&&(i=this.polygon._holes.getValue(e),u(i)&&(i=i.map(function(r){return new Rc(r)}))),u(t)?(t.positions=n,t.holes=i,t):new Rc(n,i)};OR.prototype.equals=function(e){return this===e||e instanceof OR&&q.equals(this.polygon._positions,e.polygon._positions)&&q.equals(this.polygon._holes,e.polygon._holes)};function Gje(e,t,n,i){let r=t.polygon;if(!u(r))return;let o=so(r.interval),s=e.polygon;u(s)||(e.polygon=s=new pd),ye(Boolean,s,"show",r.show,o,i,n),RR(s,"_positions",r.positions,n),Dje(s,"_holes",r.holes,n),(u(s._positions)||u(s._holes))&&(s.hierarchy=new OR(s)),ye(Number,s,"height",r.height,o,i,n),ye(je,s,"heightReference",r.heightReference,o,i,n),ye(Number,s,"extrudedHeight",r.extrudedHeight,o,i,n),ye(je,s,"extrudedHeightReference",r.extrudedHeightReference,o,i,n),ye(wf,s,"stRotation",r.stRotation,o,i,n),ye(Number,s,"granularity",r.granularity,o,i,n),ye(Boolean,s,"fill",r.fill,o,i,n),gu(s,"material",r.material,o,i,n),ye(Boolean,s,"outline",r.outline,o,i,n),ye(z,s,"outlineColor",r.outlineColor,o,i,n),ye(Number,s,"outlineWidth",r.outlineWidth,o,i,n),ye(Boolean,s,"perPositionHeight",r.perPositionHeight,o,i,n),ye(Boolean,s,"closeTop",r.closeTop,o,i,n),ye(Boolean,s,"closeBottom",r.closeBottom,o,i,n),ye(Kt,s,"arcType",r.arcType,o,i,n),ye(yn,s,"shadows",r.shadows,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n),ye(kn,s,"classificationType",r.classificationType,o,i,n),ye(Number,s,"zIndex",r.zIndex,o,i,n)}function Wje(e){return e?Kt.GEODESIC:Kt.NONE}function jje(e,t,n,i){let r=t.polyline;if(!u(r))return;let o=so(r.interval),s=e.polyline;if(u(s)||(e.polyline=s=new qa),ye(Boolean,s,"show",r.show,o,i,n),RR(s,"positions",r.positions,n),ye(Number,s,"width",r.width,o,i,n),ye(Number,s,"granularity",r.granularity,o,i,n),gu(s,"material",r.material,o,i,n),gu(s,"depthFailMaterial",r.depthFailMaterial,o,i,n),ye(Kt,s,"arcType",r.arcType,o,i,n),ye(Boolean,s,"clampToGround",r.clampToGround,o,i,n),ye(yn,s,"shadows",r.shadows,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n),ye(kn,s,"classificationType",r.classificationType,o,i,n),ye(Number,s,"zIndex",r.zIndex,o,i,n),u(r.followSurface)&&!u(r.arcType)){let a={};ye(Boolean,a,"followSurface",r.followSurface,o,i,n),s.arcType=cje(a.followSurface,Wje)}}function qje(e,t,n,i){let r=t.polylineVolume;if(!u(r))return;let o=so(r.interval),s=e.polylineVolume;u(s)||(e.polylineVolume=s=new dA),RR(s,"positions",r.positions,n),Ije(s,"shape",r.shape,n),ye(Boolean,s,"show",r.show,o,i,n),ye(Ri,s,"cornerType",r.cornerType,o,i,n),ye(Boolean,s,"fill",r.fill,o,i,n),gu(s,"material",r.material,o,i,n),ye(Boolean,s,"outline",r.outline,o,i,n),ye(z,s,"outlineColor",r.outlineColor,o,i,n),ye(Number,s,"outlineWidth",r.outlineWidth,o,i,n),ye(Number,s,"granularity",r.granularity,o,i,n),ye(yn,s,"shadows",r.shadows,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n)}function Yje(e,t,n,i){let r=t.rectangle;if(!u(r))return;let o=so(r.interval),s=e.rectangle;u(s)||(e.rectangle=s=new _d),ye(Boolean,s,"show",r.show,o,i,n),ye(le,s,"coordinates",r.coordinates,o,i,n),ye(Number,s,"height",r.height,o,i,n),ye(je,s,"heightReference",r.heightReference,o,i,n),ye(Number,s,"extrudedHeight",r.extrudedHeight,o,i,n),ye(je,s,"extrudedHeightReference",r.extrudedHeightReference,o,i,n),ye(wf,s,"rotation",r.rotation,o,i,n),ye(wf,s,"stRotation",r.stRotation,o,i,n),ye(Number,s,"granularity",r.granularity,o,i,n),ye(Boolean,s,"fill",r.fill,o,i,n),gu(s,"material",r.material,o,i,n),ye(Boolean,s,"outline",r.outline,o,i,n),ye(z,s,"outlineColor",r.outlineColor,o,i,n),ye(Number,s,"outlineWidth",r.outlineWidth,o,i,n),ye(yn,s,"shadows",r.shadows,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n),ye(kn,s,"classificationType",r.classificationType,o,i,n),ye(Number,s,"zIndex",r.zIndex,o,i,n)}function Xje(e,t,n,i){let r=t.tileset;if(!u(r))return;let o=so(r.interval),s=e.tileset;u(s)||(e.tileset=s=new uA),ye(Boolean,s,"show",r.show,o,i,n),ye(MR.default,s,"uri",r.uri,o,i,n),ye(Number,s,"maximumScreenSpaceError",r.maximumScreenSpaceError,o,i,n)}function Kje(e,t,n,i){let r=t.wall;if(!u(r))return;let o=so(r.interval),s=e.wall;u(s)||(e.wall=s=new yp),ye(Boolean,s,"show",r.show,o,i,n),RR(s,"positions",r.positions,n),Ile(s,"minimumHeights",r.minimumHeights,n),Ile(s,"maximumHeights",r.maximumHeights,n),ye(Number,s,"granularity",r.granularity,o,i,n),ye(Boolean,s,"fill",r.fill,o,i,n),gu(s,"material",r.material,o,i,n),ye(Boolean,s,"outline",r.outline,o,i,n),ye(z,s,"outlineColor",r.outlineColor,o,i,n),ye(Number,s,"outlineWidth",r.outlineWidth,o,i,n),ye(yn,s,"shadows",r.shadows,o,i,n),ye(vt,s,"distanceDisplayCondition",r.distanceDisplayCondition,o,i,n)}function Ble(e,t,n,i,r){let o=e.id;if(u(o)||(o=Wn()),AW=o,!u(r._version)&&o!=="document")throw new de("The first CZML packet is required to be the document object.");if(e.delete===!0)t.removeById(o);else if(o==="document")Nje(e,r);else{let s=t.getOrCreateEntity(o),a=e.parent;u(a)&&(s.parent=t.getOrCreateEntity(a));for(let c=n.length-1;c>-1;c--)n[c](s,e,t,i)}AW=void 0}function Jje(e){let t,n=e._documentPacket.clock;if(!u(n)){if(!u(e._clock)){let r=e._entityCollection.computeAvailability();if(!r.start.equals(ze.MINIMUM_VALUE)){let o=r.start,s=r.stop,a=ee.secondsDifference(s,o),c=Math.round(a/120);return t=new Yd,t.startTime=ee.clone(o),t.stopTime=ee.clone(s),t.clockRange=Lo.LOOP_STOP,t.multiplier=c,t.currentTime=ee.clone(o),t.clockStep=_r.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}u(e._clock)?t=e._clock.clone():(t=new Yd,t.startTime=ze.MINIMUM_VALUE.clone(),t.stopTime=ze.MAXIMUM_VALUE.clone(),t.currentTime=ze.MINIMUM_VALUE.clone(),t.clockRange=Lo.LOOP_STOP,t.clockStep=_r.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1);let i=so(n.interval);return u(i)&&(t.startTime=i.start,t.stopTime=i.stop),u(n.currentTime)&&(t.currentTime=ee.fromIso8601(n.currentTime)),u(n.range)&&(t.clockRange=y(Lo[n.range],Lo.LOOP_STOP)),u(n.step)&&(t.clockStep=y(_r[n.step],_r.SYSTEM_CLOCK_MULTIPLIER)),u(n.multiplier)&&(t.multiplier=n.multiplier),t.equals(e._clock)?!1:(e._clock=t.clone(e._clock),!0)}function Ule(e,t,n,i){n=y(n,y.EMPTY_OBJECT);let r=t,o=n.sourceUri,s=n.credit;if(typeof s=="string"&&(s=new wt(s)),e._credit=s,typeof t=="string"||t instanceof ve){t=ve.createIfNeeded(t),r=t.fetchJson(),o=y(o,t.clone());let a=e._resourceCredits,c=t.credits;if(u(c)){let l=c.length;for(let f=0;f<l;f++)a.push(c[f])}}return o=ve.createIfNeeded(o),Ro.setLoading(e,!0),Promise.resolve(r).then(function(a){return Zje(e,a,o,i)}).catch(function(a){return Ro.setLoading(e,!1),e._error.raiseEvent(e,a),console.log(a),Promise.reject(a)})}function Zje(e,t,n,i){Ro.setLoading(e,!0);let r=e._entityCollection;i&&(e._version=void 0,e._documentPacket=new Vle,r.removeAll()),Dl._processCzml(t,r,n,void 0,e);let o=Jje(e),s=e._documentPacket;return u(s.name)&&e._name!==s.name?(e._name=s.name,o=!0):!u(e._name)&&u(n)&&(e._name=__(n.getUrlComponent()),o=!0),Ro.setLoading(e,!1),o&&e._changed.raiseEvent(e),e}function Vle(){this.name=void 0,this.clock=void 0}function Dl(e){this._name=e,this._changed=new ge,this._error=new ge,this._isLoading=!1,this._loading=new ge,this._clock=void 0,this._documentPacket=new Vle,this._version=void 0,this._entityCollection=new Bs(this),this._entityCluster=new du,this._credit=void 0,this._resourceCredits=[]}Dl.load=function(e,t){return new Dl().load(e,t)};Object.defineProperties(Dl.prototype,{name:{get:function(){return this._name}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});Dl.updaters=[Mje,Rje,Bje,Lje,Fje,Uje,Vje,kje,Aje,xje,zje,Hje,Gje,jje,qje,bje,Yje,Cje,Xje,Tje,Kje,Eje,Pje];Dl.prototype.process=function(e,t){return Ule(this,e,t,!1)};Dl.prototype.load=function(e,t){return Ule(this,e,t,!0)};Dl.prototype.update=function(e){return!0};Dl.processPacketData=ye;Dl.processPositionPacketData=Fle;Dl.processMaterialPacketData=gu;Dl._processCzml=function(e,t,n,i,r){if(i=y(i,Dl.updaters),Array.isArray(e))for(let o=0,s=e.length;o<s;++o)Ble(e[o],t,i,n,r);else Ble(e,t,i,n,r)};var BR=Dl;function jc(){this._dataSources=[],this._dataSourceAdded=new ge,this._dataSourceRemoved=new ge,this._dataSourceMoved=new ge}Object.defineProperties(jc.prototype,{length:{get:function(){return this._dataSources.length}},dataSourceAdded:{get:function(){return this._dataSourceAdded}},dataSourceRemoved:{get:function(){return this._dataSourceRemoved}},dataSourceMoved:{get:function(){return this._dataSourceMoved}}});jc.prototype.add=function(e){let t=this,n=this._dataSources;return Promise.resolve(e).then(function(i){return n===t._dataSources&&(t._dataSources.push(i),t._dataSourceAdded.raiseEvent(t,i)),i})};jc.prototype.remove=function(e,t){t=y(t,!1);let n=this._dataSources.indexOf(e);return n!==-1?(this._dataSources.splice(n,1),this._dataSourceRemoved.raiseEvent(this,e),t&&typeof e.destroy=="function"&&e.destroy(),!0):!1};jc.prototype.removeAll=function(e){e=y(e,!1);let t=this._dataSources;for(let n=0,i=t.length;n<i;++n){let r=t[n];this._dataSourceRemoved.raiseEvent(this,r),e&&typeof r.destroy=="function"&&r.destroy()}this._dataSources=[]};jc.prototype.contains=function(e){return this.indexOf(e)!==-1};jc.prototype.indexOf=function(e){return this._dataSources.indexOf(e)};jc.prototype.get=function(e){return this._dataSources[e]};jc.prototype.getByName=function(e){return this._dataSources.filter(function(t){return t.name===e})};function $V(e,t){return e.indexOf(t)}function kle(e,t,n){let i=e._dataSources,r=i.length-1;if(t=P.clamp(t,0,r),n=P.clamp(n,0,r),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,e.dataSourceMoved.raiseEvent(o,n,t)}jc.prototype.raise=function(e){let t=$V(this._dataSources,e);kle(this,t,t+1)};jc.prototype.lower=function(e){let t=$V(this._dataSources,e);kle(this,t,t-1)};jc.prototype.raiseToTop=function(e){let t=$V(this._dataSources,e);t!==this._dataSources.length-1&&(this._dataSources.splice(t,1),this._dataSources.push(e),this.dataSourceMoved.raiseEvent(e,this._dataSources.length-1,t))};jc.prototype.lowerToBottom=function(e){let t=$V(this._dataSources,e);t!==0&&(this._dataSources.splice(t,1),this._dataSources.splice(0,0,e),this.dataSourceMoved.raiseEvent(e,0,t))};jc.prototype.isDestroyed=function(){return!1};jc.prototype.destroy=function(){return this.removeAll(!0),ue(this)};var LR=jc;function na(e){e=y(e,y.EMPTY_OBJECT),this._primitives=[],this._guid=Wn(),this._zIndex=void 0,this.show=y(e.show,!0),this.destroyPrimitives=y(e.destroyPrimitives,!0)}Object.defineProperties(na.prototype,{length:{get:function(){return this._primitives.length}}});na.prototype.add=function(e,t){let n=u(t),i=e._external=e._external||{},r=i._composites=i._composites||{};return r[this._guid]={collection:this},n?this._primitives.splice(t,0,e):this._primitives.push(e),e};na.prototype.remove=function(e){if(this.contains(e)){let t=this._primitives.indexOf(e);if(t!==-1)return this._primitives.splice(t,1),delete e._external._composites[this._guid],this.destroyPrimitives&&e.destroy(),!0}return!1};na.prototype.removeAndDestroy=function(e){let t=this.remove(e);return t&&!this.destroyPrimitives&&e.destroy(),t};na.prototype.removeAll=function(){let e=this._primitives,t=e.length;for(let n=0;n<t;++n)delete e[n]._external._composites[this._guid],this.destroyPrimitives&&e[n].destroy();this._primitives=[]};na.prototype.contains=function(e){return!!(u(e)&&e._external&&e._external._composites&&e._external._composites[this._guid])};function ek(e,t){return e._primitives.indexOf(t)}na.prototype.raise=function(e){if(u(e)){let t=ek(this,e),n=this._primitives;if(t!==n.length-1){let i=n[t];n[t]=n[t+1],n[t+1]=i}}};na.prototype.raiseToTop=function(e){if(u(e)){let t=ek(this,e),n=this._primitives;t!==n.length-1&&(n.splice(t,1),n.push(e))}};na.prototype.lower=function(e){if(u(e)){let t=ek(this,e),n=this._primitives;if(t!==0){let i=n[t];n[t]=n[t-1],n[t-1]=i}}};na.prototype.lowerToBottom=function(e){if(u(e)){let t=ek(this,e),n=this._primitives;t!==0&&(n.splice(t,1),n.unshift(e))}};na.prototype.get=function(e){return this._primitives[e]};na.prototype.update=function(e){if(!this.show)return;let t=this._primitives;for(let n=0;n<t.length;++n)t[n].update(e)};na.prototype.prePassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];u(i.prePassesUpdate)&&i.prePassesUpdate(e)}};na.prototype.updateForPass=function(e,t){let n=this._primitives;for(let i=0;i<n.length;++i){let r=n[i];u(r.updateForPass)&&r.updateForPass(e,t)}};na.prototype.postPassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];u(i.postPassesUpdate)&&i.postPassesUpdate(e)}};na.prototype.isDestroyed=function(){return!1};na.prototype.destroy=function(){return this.removeAll(),ue(this)};var Il=na;function cm(){this._length=0,this._collections={},this._collectionsArray=[],this.show=!0}Object.defineProperties(cm.prototype,{length:{get:function(){return this._length}}});cm.prototype.add=function(e,t){t=y(t,0);let n=this._collections[t];if(!u(n)){n=new Il({destroyPrimitives:!1}),n._zIndex=t,this._collections[t]=n;let i=this._collectionsArray,r=0;for(;r<i.length&&i[r]._zIndex<t;)r++;i.splice(r,0,n)}return n.add(e),this._length++,e._zIndex=t,e};cm.prototype.set=function(e,t){return t===e._zIndex||(this.remove(e,!0),this.add(e,t)),e};cm.prototype.remove=function(e,t){if(this.contains(e)){let n=e._zIndex,i=this._collections[n],r;return t?r=i.remove(e):r=i.removeAndDestroy(e),r&&this._length--,i.length===0&&(this._collectionsArray.splice(this._collectionsArray.indexOf(i),1),this._collections[n]=void 0,i.destroy()),r}return!1};cm.prototype.removeAll=function(){let e=this._collectionsArray;for(let t=0;t<e.length;t++){let n=e[t];n.destroyPrimitives=!0,n.destroy()}this._collections={},this._collectionsArray=[],this._length=0};cm.prototype.contains=function(e){if(!u(e))return!1;let t=this._collections[e._zIndex];return u(t)&&t.contains(e)};cm.prototype.update=function(e){if(!this.show)return;let t=this._collectionsArray;for(let n=0;n<t.length;n++)t[n].update(e)};cm.prototype.isDestroyed=function(){return!1};cm.prototype.destroy=function(){return this.removeAll(),ue(this)};var NR=cm;function tb(e,t){this._primitives=e,this._orderedGroundPrimitives=t,this._dynamicUpdaters=new Ct}tb.prototype.add=function(e,t){this._dynamicUpdaters.set(t.id,t.createDynamicUpdater(this._primitives,this._orderedGroundPrimitives))};tb.prototype.remove=function(e){let t=e.id,n=this._dynamicUpdaters.get(t);u(n)&&(this._dynamicUpdaters.remove(t),n.destroy())};tb.prototype.update=function(e){let t=this._dynamicUpdaters.values;for(let n=0,i=t.length;n<i;n++)t[n].update(e);return!0};tb.prototype.removeAllPrimitives=function(){let e=this._dynamicUpdaters.values;for(let t=0,n=e.length;t<n;t++)e[t].destroy();this._dynamicUpdaters.removeAll()};tb.prototype.getBoundingSphere=function(e,t){return e=this._dynamicUpdaters.get(e.id),u(e)&&u(e.getBoundingSphere)?e.getBoundingSphere(t):lt.FAILED};var Tx=tb;var EW={},tk=new h,zle=new h,Hle=new Le,Gle=new Q;function nb(e,t,n,i,r,o,s,a,c,l){let f=e+t;h.multiplyByScalar(i,Math.cos(f),tk),h.multiplyByScalar(n,Math.sin(f),zle),h.add(tk,zle,tk);let d=Math.cos(e);d=d*d;let p=Math.sin(e);p=p*p;let m=o/Math.sqrt(s*d+r*p)/a;return Le.fromAxisAngle(tk,m,Hle),Q.fromQuaternion(Hle,Gle),Q.multiplyByVector(Gle,c,l),h.normalize(l,l),h.multiplyByScalar(l,a,l),l}var Wle=new h,jle=new h,TW=new h,Qje=new h;EW.raisePositionsToHeight=function(e,t,n){let i=t.ellipsoid,r=t.height,o=t.extrudedHeight,s=n?e.length/3*2:e.length/3,a=new Float64Array(s*3),c=e.length,l=n?c:0;for(let f=0;f<c;f+=3){let d=f+1,p=f+2,g=h.fromArray(e,f,Wle);i.scaleToGeodeticSurface(g,g);let m=h.clone(g,jle),A=i.geodeticSurfaceNormal(g,Qje),x=h.multiplyByScalar(A,r,TW);h.add(g,x,g),n&&(h.multiplyByScalar(A,o,x),h.add(m,x,m),a[f+l]=m.x,a[d+l]=m.y,a[p+l]=m.z),a[f]=g.x,a[d]=g.y,a[p]=g.z}return a};var $je=new h,eqe=new h,tqe=new h;EW.computeEllipsePositions=function(e,t,n){let i=e.semiMinorAxis,r=e.semiMajorAxis,o=e.rotation,s=e.center,a=e.granularity*8,c=i*i,l=r*r,f=r*i,d=h.magnitude(s),p=h.normalize(s,$je),g=h.cross(h.UNIT_Z,s,eqe);g=h.normalize(g,g);let m=h.cross(p,g,tqe),A=1+Math.ceil(P.PI_OVER_TWO/a),x=P.PI_OVER_TWO/(A-1),C=P.PI_OVER_TWO-A*x;C<0&&(A-=Math.ceil(Math.abs(C)/x));let T=2*(A*(A+2)),E=t?new Array(T*3):void 0,S=0,v=Wle,D=jle,M=A*4*3,O=M-1,B=0,L=n?new Array(M):void 0,_,b,w,I,R;for(C=P.PI_OVER_TWO,v=nb(C,o,m,g,c,f,l,d,p,v),t&&(E[S++]=v.x,E[S++]=v.y,E[S++]=v.z),n&&(L[O--]=v.z,L[O--]=v.y,L[O--]=v.x),C=P.PI_OVER_TWO-x,_=1;_<A+1;++_){if(v=nb(C,o,m,g,c,f,l,d,p,v),D=nb(Math.PI-C,o,m,g,c,f,l,d,p,D),t){for(E[S++]=v.x,E[S++]=v.y,E[S++]=v.z,w=2*_+2,b=1;b<w-1;++b)I=b/(w-1),R=h.lerp(v,D,I,TW),E[S++]=R.x,E[S++]=R.y,E[S++]=R.z;E[S++]=D.x,E[S++]=D.y,E[S++]=D.z}n&&(L[O--]=v.z,L[O--]=v.y,L[O--]=v.x,L[B++]=D.x,L[B++]=D.y,L[B++]=D.z),C=P.PI_OVER_TWO-(_+1)*x}for(_=A;_>1;--_){if(C=P.PI_OVER_TWO-(_-1)*x,v=nb(-C,o,m,g,c,f,l,d,p,v),D=nb(C+Math.PI,o,m,g,c,f,l,d,p,D),t){for(E[S++]=v.x,E[S++]=v.y,E[S++]=v.z,w=2*(_-1)+2,b=1;b<w-1;++b)I=b/(w-1),R=h.lerp(v,D,I,TW),E[S++]=R.x,E[S++]=R.y,E[S++]=R.z;E[S++]=D.x,E[S++]=D.y,E[S++]=D.z}n&&(L[O--]=v.z,L[O--]=v.y,L[O--]=v.x,L[B++]=D.x,L[B++]=D.y,L[B++]=D.z)}C=P.PI_OVER_TWO,v=nb(-C,o,m,g,c,f,l,d,p,v);let F={};return t&&(E[S++]=v.x,E[S++]=v.y,E[S++]=v.z,F.positions=E,F.numPts=A),n&&(L[O--]=v.z,L[O--]=v.y,L[O--]=v.x,F.outerPositions=L),F};var Pl=EW;var ib=new h,bW=new h,SW=new h,qle=new h,hs=new H,Yle=new Q,nqe=new Q,vW=new Le,Xle=new h,Kle=new h,Jle=new h,rk=new me,Zle=new h,Qle=new H,$le=new H;function eue(e,t,n){let i=t.vertexFormat,r=t.center,o=t.semiMajorAxis,s=t.semiMinorAxis,a=t.ellipsoid,c=t.stRotation,l=n?e.length/3*2:e.length/3,f=t.shadowVolume,d=i.st?new Float32Array(l*2):void 0,p=i.normal?new Float32Array(l*3):void 0,g=i.tangent?new Float32Array(l*3):void 0,m=i.bitangent?new Float32Array(l*3):void 0,A=f?new Float32Array(l*3):void 0,x=0,C=Xle,T=Kle,E=Jle,S=new Ii(a),v=S.project(a.cartesianToCartographic(r,rk),Zle),D=a.scaleToGeodeticSurface(r,ib);a.geodeticSurfaceNormal(D,D);let M=Yle,O=nqe;if(c!==0){let R=Le.fromAxisAngle(D,c,vW);M=Q.fromQuaternion(R,M),R=Le.fromAxisAngle(D,-c,vW),O=Q.fromQuaternion(R,O)}else M=Q.clone(Q.IDENTITY,M),O=Q.clone(Q.IDENTITY,O);let B=H.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Qle),L=H.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,$le),_=e.length,b=n?_:0,w=b/3*2;for(let R=0;R<_;R+=3){let F=R+1,k=R+2,V=h.fromArray(e,R,ib);if(i.st){let G=Q.multiplyByVector(M,V,bW),U=S.project(a.cartesianToCartographic(G,rk),SW);h.subtract(U,v,U),hs.x=(U.x+o)/(2*o),hs.y=(U.y+s)/(2*s),B.x=Math.min(hs.x,B.x),B.y=Math.min(hs.y,B.y),L.x=Math.max(hs.x,L.x),L.y=Math.max(hs.y,L.y),n&&(d[x+w]=hs.x,d[x+1+w]=hs.y),d[x++]=hs.x,d[x++]=hs.y}(i.normal||i.tangent||i.bitangent||f)&&(C=a.geodeticSurfaceNormal(V,C),f&&(A[R+b]=-C.x,A[F+b]=-C.y,A[k+b]=-C.z),(i.normal||i.tangent||i.bitangent)&&((i.tangent||i.bitangent)&&(T=h.normalize(h.cross(h.UNIT_Z,C,T),T),Q.multiplyByVector(O,T,T)),i.normal&&(p[R]=C.x,p[F]=C.y,p[k]=C.z,n&&(p[R+b]=-C.x,p[F+b]=-C.y,p[k+b]=-C.z)),i.tangent&&(g[R]=T.x,g[F]=T.y,g[k]=T.z,n&&(g[R+b]=-T.x,g[F+b]=-T.y,g[k+b]=-T.z)),i.bitangent&&(E=h.normalize(h.cross(C,T,E),E),m[R]=E.x,m[F]=E.y,m[k]=E.z,n&&(m[R+b]=E.x,m[F+b]=E.y,m[k+b]=E.z))))}if(i.st){_=d.length;for(let R=0;R<_;R+=2)d[R]=(d[R]-B.x)/(L.x-B.x),d[R+1]=(d[R+1]-B.y)/(L.y-B.y)}let I=new dn;if(i.position){let R=Pl.raisePositionsToHeight(e,t,n);I.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:R})}if(i.st&&(I.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:d})),i.normal&&(I.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),i.tangent&&(I.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),i.bitangent&&(I.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),f&&(I.extrudeDirection=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),n&&u(t.offsetAttribute)){let R=new Uint8Array(l);if(t.offsetAttribute===nn.TOP)R=R.fill(1,0,l/2);else{let F=t.offsetAttribute===nn.NONE?0:1;R=R.fill(F)}I.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:R})}return I}function tue(e){let t=new Array(12*(e*(e+1))-6),n=0,i,r,o,s,a;for(i=0,o=1,s=0;s<3;s++)t[n++]=o++,t[n++]=i,t[n++]=o;for(s=2;s<e+1;++s){for(o=s*(s+1)-1,i=(s-1)*s-1,t[n++]=o++,t[n++]=i,t[n++]=o,r=2*s,a=0;a<r-1;++a)t[n++]=o,t[n++]=i++,t[n++]=i,t[n++]=o++,t[n++]=i,t[n++]=o;t[n++]=o++,t[n++]=i,t[n++]=o}for(r=e*2,++o,++i,s=0;s<r-1;++s)t[n++]=o,t[n++]=i++,t[n++]=i,t[n++]=o++,t[n++]=i,t[n++]=o;for(t[n++]=o,t[n++]=i++,t[n++]=i,t[n++]=o++,t[n++]=i++,t[n++]=i,++i,s=e-1;s>1;--s){for(t[n++]=i++,t[n++]=i,t[n++]=o,r=2*s,a=0;a<r-1;++a)t[n++]=o,t[n++]=i++,t[n++]=i,t[n++]=o++,t[n++]=i,t[n++]=o;t[n++]=i++,t[n++]=i++,t[n++]=o++}for(s=0;s<3;s++)t[n++]=i++,t[n++]=i,t[n++]=o;return t}var Ex=new h;function iqe(e){let t=e.center;Ex=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,Ex),e.height,Ex),Ex=h.add(t,Ex,Ex);let n=new ae(Ex,e.semiMajorAxis),i=Pl.computeEllipsePositions(e,!0,!1),r=i.positions,o=i.numPts,s=eue(r,e,!1),a=tue(o);return a=Ue.createTypedArray(r.length/3,a),{boundingSphere:n,attributes:s,indices:a}}function rqe(e,t){let n=t.vertexFormat,i=t.center,r=t.semiMajorAxis,o=t.semiMinorAxis,s=t.ellipsoid,a=t.height,c=t.extrudedHeight,l=t.stRotation,f=e.length/3*2,d=new Float64Array(f*3),p=n.st?new Float32Array(f*2):void 0,g=n.normal?new Float32Array(f*3):void 0,m=n.tangent?new Float32Array(f*3):void 0,A=n.bitangent?new Float32Array(f*3):void 0,x=t.shadowVolume,C=x?new Float32Array(f*3):void 0,T=0,E=Xle,S=Kle,v=Jle,D=new Ii(s),M=D.project(s.cartesianToCartographic(i,rk),Zle),O=s.scaleToGeodeticSurface(i,ib);s.geodeticSurfaceNormal(O,O);let B=Le.fromAxisAngle(O,l,vW),L=Q.fromQuaternion(B,Yle),_=H.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Qle),b=H.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,$le),w=e.length,I=w/3*2;for(let F=0;F<w;F+=3){let k=F+1,V=F+2,G=h.fromArray(e,F,ib),U;if(n.st){let W=Q.multiplyByVector(L,G,bW),Z=D.project(s.cartesianToCartographic(W,rk),SW);h.subtract(Z,M,Z),hs.x=(Z.x+r)/(2*r),hs.y=(Z.y+o)/(2*o),_.x=Math.min(hs.x,_.x),_.y=Math.min(hs.y,_.y),b.x=Math.max(hs.x,b.x),b.y=Math.max(hs.y,b.y),p[T+I]=hs.x,p[T+1+I]=hs.y,p[T++]=hs.x,p[T++]=hs.y}G=s.scaleToGeodeticSurface(G,G),U=h.clone(G,bW),E=s.geodeticSurfaceNormal(G,E),x&&(C[F+w]=-E.x,C[k+w]=-E.y,C[V+w]=-E.z);let Y=h.multiplyByScalar(E,a,qle);if(G=h.add(G,Y,G),Y=h.multiplyByScalar(E,c,Y),U=h.add(U,Y,U),n.position&&(d[F+w]=U.x,d[k+w]=U.y,d[V+w]=U.z,d[F]=G.x,d[k]=G.y,d[V]=G.z),n.normal||n.tangent||n.bitangent){v=h.clone(E,v);let W=h.fromArray(e,(F+3)%w,qle);h.subtract(W,G,W);let Z=h.subtract(U,G,SW);E=h.normalize(h.cross(Z,W,E),E),n.normal&&(g[F]=E.x,g[k]=E.y,g[V]=E.z,g[F+w]=E.x,g[k+w]=E.y,g[V+w]=E.z),n.tangent&&(S=h.normalize(h.cross(v,E,S),S),m[F]=S.x,m[k]=S.y,m[V]=S.z,m[F+w]=S.x,m[F+1+w]=S.y,m[F+2+w]=S.z),n.bitangent&&(A[F]=v.x,A[k]=v.y,A[V]=v.z,A[F+w]=v.x,A[k+w]=v.y,A[V+w]=v.z)}}if(n.st){w=p.length;for(let F=0;F<w;F+=2)p[F]=(p[F]-_.x)/(b.x-_.x),p[F+1]=(p[F+1]-_.y)/(b.y-_.y)}let R=new dn;if(n.position&&(R.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})),n.st&&(R.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:p})),n.normal&&(R.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),n.tangent&&(R.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),n.bitangent&&(R.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),x&&(R.extrudeDirection=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),u(t.offsetAttribute)){let F=new Uint8Array(f);if(t.offsetAttribute===nn.TOP)F=F.fill(1,0,f/2);else{let k=t.offsetAttribute===nn.NONE?0:1;F=F.fill(k)}R.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:F})}return R}function oqe(e){let t=e.length/3,n=Ue.createTypedArray(t,t*6),i=0;for(let r=0;r<t;r++){let o=r,s=r+t,a=(o+1)%t,c=a+t;n[i++]=o,n[i++]=s,n[i++]=a,n[i++]=a,n[i++]=s,n[i++]=c}return n}var nk=new ae,ik=new ae;function sqe(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,r=h.multiplyByScalar(n.geodeticSurfaceNormal(t,ib),e.height,ib);nk.center=h.add(t,r,nk.center),nk.radius=i,r=h.multiplyByScalar(n.geodeticSurfaceNormal(t,r),e.extrudedHeight,r),ik.center=h.add(t,r,ik.center),ik.radius=i;let o=Pl.computeEllipsePositions(e,!0,!0),s=o.positions,a=o.numPts,c=o.outerPositions,l=ae.union(nk,ik),f=eue(s,e,!0),d=tue(a),p=d.length;d.length=p*2;let g=s.length/3;for(let S=0;S<p;S+=3)d[S+p]=d[S+2]+g,d[S+1+p]=d[S+1]+g,d[S+2+p]=d[S]+g;let m=Ue.createTypedArray(g*2/3,d),A=new ut({attributes:f,indices:m,primitiveType:Be.TRIANGLES}),x=rqe(c,e);d=oqe(c);let C=Ue.createTypedArray(c.length*2/3,d),T=new ut({attributes:x,indices:C,primitiveType:Be.TRIANGLES}),E=Ln.combineInstances([new xt({geometry:A}),new xt({geometry:T})]);return{boundingSphere:l,attributes:E[0].attributes,indices:E[0].indices}}function nue(e,t,n,i,r,o,s){let c=Pl.computeEllipsePositions({center:e,semiMajorAxis:t,semiMinorAxis:n,rotation:i,granularity:r},!1,!0).outerPositions,l=c.length/3,f=new Array(l);for(let p=0;p<l;++p)f[p]=h.fromArray(c,p*3);let d=le.fromCartesianArray(f,o,s);return d.width>P.PI&&(d.north=d.north>0?P.PI_OVER_TWO-P.EPSILON7:d.north,d.south=d.south<0?P.EPSILON7-P.PI_OVER_TWO:d.south,d.east=P.PI,d.west=-P.PI),d}function um(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,re.WGS84),i=e.semiMajorAxis,r=e.semiMinorAxis,o=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.vertexFormat,Pe.DEFAULT),a=y(e.height,0),c=y(e.extrudedHeight,a);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=r,this._ellipsoid=re.clone(n),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._height=Math.max(c,a),this._granularity=o,this._vertexFormat=Pe.clone(s),this._extrudedHeight=Math.min(c,a),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}um.packedLength=h.packedLength+re.packedLength+Pe.packedLength+9;um.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,re.pack(e._ellipsoid,t,n),n+=re.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var iue=new h,rue=new re,oue=new Pe,lm={center:iue,ellipsoid:rue,vertexFormat:oue,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};um.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,iue);t+=h.packedLength;let r=re.unpack(e,t,rue);t+=re.packedLength;let o=Pe.unpack(e,t,oue);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t++],g=e[t++]===1,m=e[t];return u(n)?(n._center=h.clone(i,n._center),n._ellipsoid=re.clone(r,n._ellipsoid),n._vertexFormat=Pe.clone(o,n._vertexFormat),n._semiMajorAxis=s,n._semiMinorAxis=a,n._rotation=c,n._stRotation=l,n._height=f,n._granularity=d,n._extrudedHeight=p,n._shadowVolume=g,n._offsetAttribute=m===-1?void 0:m,n):(lm.height=f,lm.extrudedHeight=p,lm.granularity=d,lm.stRotation=l,lm.rotation=c,lm.semiMajorAxis=s,lm.semiMinorAxis=a,lm.shadowVolume=g,lm.offsetAttribute=m===-1?void 0:m,new um(lm))};um.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.center,i=y(e.ellipsoid,re.WGS84),r=e.semiMajorAxis,o=e.semiMinorAxis,s=y(e.granularity,P.RADIANS_PER_DEGREE),a=y(e.rotation,0);return nue(n,r,o,a,s,i,t)};um.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let r={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,vertexFormat:e._vertexFormat,stRotation:e._stRotation},o;if(i)r.extrudedHeight=n,r.shadowVolume=e._shadowVolume,r.offsetAttribute=e._offsetAttribute,o=sqe(r);else if(o=iqe(r),u(e._offsetAttribute)){let s=o.attributes.position.values.length,a=e._offsetAttribute===nn.NONE?0:1,c=new Uint8Array(s/3).fill(a);o.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new ut({attributes:o.attributes,indices:o.indices,primitiveType:Be.TRIANGLES,boundingSphere:o.boundingSphere,offsetAttribute:e._offsetAttribute})};um.createShadowVolume=function(e,t,n){let i=e._granularity,r=e._ellipsoid,o=t(i,r),s=n(i,r);return new um({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:r,rotation:e._rotation,stRotation:e._stRotation,granularity:i,extrudedHeight:o,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};function aqe(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let i=Pl.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0).outerPositions,r=i.length/3,o=new Array(r);for(let c=0;c<r;++c)o[c]=h.fromArray(i,c*3);let s=e._ellipsoid,a=e.rectangle;return ut._textureCoordinateRotationPoints(o,t,s,a)}Object.defineProperties(um.prototype,{rectangle:{get:function(){return u(this._rectangle)||(this._rectangle=nue(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return u(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=aqe(this)),this._textureCoordinateRotationPoints}}});var qc=um;var sue=new h,bx=new h;function cqe(e){let t=e.center;bx=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,bx),e.height,bx),bx=h.add(t,bx,bx);let n=new ae(bx,e.semiMajorAxis),i=Pl.computeEllipsePositions(e,!1,!0).outerPositions,r=new dn({position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:Pl.raisePositionsToHeight(i,e,!1)})}),o=i.length/3,s=Ue.createTypedArray(o,o*2),a=0;for(let c=0;c<o;++c)s[a++]=c,s[a++]=(c+1)%o;return{boundingSphere:n,attributes:r,indices:s}}var ok=new ae,sk=new ae;function lqe(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,r=h.multiplyByScalar(n.geodeticSurfaceNormal(t,sue),e.height,sue);ok.center=h.add(t,r,ok.center),ok.radius=i,r=h.multiplyByScalar(n.geodeticSurfaceNormal(t,r),e.extrudedHeight,r),sk.center=h.add(t,r,sk.center),sk.radius=i;let o=Pl.computeEllipsePositions(e,!1,!0).outerPositions,s=new dn({position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:Pl.raisePositionsToHeight(o,e,!0)})});o=s.position.values;let a=ae.union(ok,sk),c=o.length/3;if(u(e.offsetAttribute)){let m=new Uint8Array(c);if(e.offsetAttribute===nn.TOP)m=m.fill(1,0,c/2);else{let A=e.offsetAttribute===nn.NONE?0:1;m=m.fill(A)}s.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:m})}let l=y(e.numberOfVerticalLines,16);l=P.clamp(l,0,c/2);let f=Ue.createTypedArray(c,c*2+l*2);c/=2;let d=0,p;for(p=0;p<c;++p)f[d++]=p,f[d++]=(p+1)%c,f[d++]=p+c,f[d++]=(p+1)%c+c;let g;if(l>0){let m=Math.min(l,c);g=Math.round(c/m);let A=Math.min(g*l,c);for(p=0;p<A;p+=g)f[d++]=p,f[d++]=p+c}return{boundingSphere:a,attributes:s,indices:f}}function rb(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,re.WGS84),i=e.semiMajorAxis,r=e.semiMinorAxis,o=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.height,0),a=y(e.extrudedHeight,s);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=r,this._ellipsoid=re.clone(n),this._rotation=y(e.rotation,0),this._height=Math.max(a,s),this._granularity=o,this._extrudedHeight=Math.min(a,s),this._numberOfVerticalLines=Math.max(y(e.numberOfVerticalLines,16),0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}rb.packedLength=h.packedLength+re.packedLength+8;rb.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,re.pack(e._ellipsoid,t,n),n+=re.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._numberOfVerticalLines,t[n]=y(e._offsetAttribute,-1),t};var aue=new h,cue=new re,T_={center:aue,ellipsoid:cue,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};rb.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,aue);t+=h.packedLength;let r=re.unpack(e,t,cue);t+=re.packedLength;let o=e[t++],s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t];return u(n)?(n._center=h.clone(i,n._center),n._ellipsoid=re.clone(r,n._ellipsoid),n._semiMajorAxis=o,n._semiMinorAxis=s,n._rotation=a,n._height=c,n._granularity=l,n._extrudedHeight=f,n._numberOfVerticalLines=d,n._offsetAttribute=p===-1?void 0:p,n):(T_.height=c,T_.extrudedHeight=f,T_.granularity=l,T_.rotation=a,T_.semiMajorAxis=o,T_.semiMinorAxis=s,T_.numberOfVerticalLines=d,T_.offsetAttribute=p===-1?void 0:p,new rb(T_))};rb.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let r={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,numberOfVerticalLines:e._numberOfVerticalLines},o;if(i)r.extrudedHeight=n,r.offsetAttribute=e._offsetAttribute,o=lqe(r);else if(o=cqe(r),u(e._offsetAttribute)){let s=o.attributes.position.values.length,a=e._offsetAttribute===nn.NONE?0:1,c=new Uint8Array(s/3).fill(a);o.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new ut({attributes:o.attributes,indices:o.indices,primitiveType:Be.LINES,boundingSphere:o.boundingSphere,offsetAttribute:e._offsetAttribute})};var yu=rb;var lue=new z,uue=h.ZERO,fue=new h,due=new le;function uqe(e){this.id=e,this.vertexFormat=void 0,this.center=void 0,this.semiMajorAxis=void 0,this.semiMinorAxis=void 0,this.rotation=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function Jd(e,t){Xn.call(this,{entity:e,scene:t,geometryOptions:new uqe(e),geometryPropertyName:"ellipse",observedPropertyNames:["availability","position","ellipse"]}),this._onEntityPropertyChanged(e,"ellipse",e.ellipse,void 0)}u(Object.create)&&(Jd.prototype=Object.create(Xn.prototype),Jd.prototype.constructor=Jd);Jd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Ut){let r;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(r=this._materialProperty.color.getValue(e,lue)),u(r)||(r=z.WHITE),i.color=kt.fromColor(r)}return u(this._options.offsetAttribute)&&(i.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,uue,fue))),new xt({id:t,geometry:new qc(this._options),attributes:i})};Jd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,lue),r=this._distanceDisplayConditionProperty.getValue(e),o={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(r),offset:void 0};return u(this._options.offsetAttribute)&&(o.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,uue,fue))),new xt({id:t,geometry:new yu(this._options),attributes:o})};Jd.prototype._computeCenter=function(e,t){return q.getValueOrUndefined(this._entity.position,e,t)};Jd.prototype._isHidden=function(e,t){let n=e.position;return!u(n)||!u(t.semiMajorAxis)||!u(t.semiMinorAxis)||ci.prototype._isHidden.call(this,e,t)};Jd.prototype._isDynamic=function(e,t){return!e.position.isConstant||!t.semiMajorAxis.isConstant||!t.semiMinorAxis.isConstant||!q.isConstant(t.rotation)||!q.isConstant(t.height)||!q.isConstant(t.extrudedHeight)||!q.isConstant(t.granularity)||!q.isConstant(t.stRotation)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.numberOfVerticalLines)||!q.isConstant(t.zIndex)||this._onTerrain&&!q.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};Jd.prototype._setStaticOptions=function(e,t){let n=q.getValueOrUndefined(t.height,ze.MINIMUM_VALUE),i=q.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,je.NONE),r=q.getValueOrUndefined(t.extrudedHeight,ze.MINIMUM_VALUE),o=q.getValueOrDefault(t.extrudedHeightReference,ze.MINIMUM_VALUE,je.NONE);u(r)&&!u(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Ut?rn.VERTEX_FORMAT:lr.MaterialSupport.TEXTURED.vertexFormat,s.center=e.position.getValue(ze.MINIMUM_VALUE,s.center),s.semiMajorAxis=t.semiMajorAxis.getValue(ze.MINIMUM_VALUE,s.semiMajorAxis),s.semiMinorAxis=t.semiMinorAxis.getValue(ze.MINIMUM_VALUE,s.semiMinorAxis),s.rotation=q.getValueOrUndefined(t.rotation,ze.MINIMUM_VALUE),s.granularity=q.getValueOrUndefined(t.granularity,ze.MINIMUM_VALUE),s.stRotation=q.getValueOrUndefined(t.stRotation,ze.MINIMUM_VALUE),s.numberOfVerticalLines=q.getValueOrUndefined(t.numberOfVerticalLines,ze.MINIMUM_VALUE),s.offsetAttribute=Xn.computeGeometryOffsetAttribute(n,i,r,o),s.height=Xn.getGeometryHeight(n,i),r=Xn.getGeometryExtrudedHeight(r,o),r===Xn.CLAMP_TO_GROUND&&(r=si.getMinimumMaximumHeights(qc.computeRectangle(s,due)).minimumTerrainHeight),s.extrudedHeight=r};Jd.DynamicGeometryUpdater=ob;function ob(e,t,n){ai.call(this,e,t,n)}u(Object.create)&&(ob.prototype=Object.create(ai.prototype),ob.prototype.constructor=ob);ob.prototype._isHidden=function(e,t,n){let i=this._options;return!u(i.center)||!u(i.semiMajorAxis)||!u(i.semiMinorAxis)||ai.prototype._isHidden.call(this,e,t,n)};ob.prototype._setOptions=function(e,t,n){let i=this._options,r=q.getValueOrUndefined(t.height,n),o=q.getValueOrDefault(t.heightReference,n,je.NONE),s=q.getValueOrUndefined(t.extrudedHeight,n),a=q.getValueOrDefault(t.extrudedHeightReference,n,je.NONE);u(s)&&!u(r)&&(r=0),i.center=q.getValueOrUndefined(e.position,n,i.center),i.semiMajorAxis=q.getValueOrUndefined(t.semiMajorAxis,n),i.semiMinorAxis=q.getValueOrUndefined(t.semiMinorAxis,n),i.rotation=q.getValueOrUndefined(t.rotation,n),i.granularity=q.getValueOrUndefined(t.granularity,n),i.stRotation=q.getValueOrUndefined(t.stRotation,n),i.numberOfVerticalLines=q.getValueOrUndefined(t.numberOfVerticalLines,n),i.offsetAttribute=Xn.computeGeometryOffsetAttribute(r,o,s,a),i.height=Xn.getGeometryHeight(r,o),s=Xn.getGeometryExtrudedHeight(s,a),s===Xn.CLAMP_TO_GROUND&&(s=si.getMinimumMaximumHeights(qc.computeRectangle(i,due)).minimumTerrainHeight),i.extrudedHeight=s};var FR=Jd;var fqe=new h,dqe=new h,hqe=new h,mqe=new h,pqe=new h,_qe=new h(1,1,1),hue=Math.cos,mue=Math.sin;function E_(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,_qe),n=y(e.innerRadii,t),i=y(e.minimumClock,0),r=y(e.maximumClock,P.TWO_PI),o=y(e.minimumCone,0),s=y(e.maximumCone,P.PI),a=Math.round(y(e.stackPartitions,64)),c=Math.round(y(e.slicePartitions,64)),l=y(e.vertexFormat,Pe.DEFAULT);this._radii=h.clone(t),this._innerRadii=h.clone(n),this._minimumClock=i,this._maximumClock=r,this._minimumCone=o,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._vertexFormat=Pe.clone(l),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}E_.packedLength=2*h.packedLength+Pe.packedLength+7;E_.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),n+=h.packedLength,h.pack(e._innerRadii,t,n),n+=h.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n]=y(e._offsetAttribute,-1),t};var pue=new h,_ue=new h,gue=new Pe,xy={radii:pue,innerRadii:_ue,vertexFormat:gue,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};E_.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,pue);t+=h.packedLength;let r=h.unpack(e,t,_ue);t+=h.packedLength;let o=Pe.unpack(e,t,gue);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t];return u(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(r,n._innerRadii),n._vertexFormat=Pe.clone(o,n._vertexFormat),n._minimumClock=s,n._maximumClock=a,n._minimumCone=c,n._maximumCone=l,n._stackPartitions=f,n._slicePartitions=d,n._offsetAttribute=p===-1?void 0:p,n):(xy.minimumClock=s,xy.maximumClock=a,xy.minimumCone=c,xy.maximumCone=l,xy.stackPartitions=f,xy.slicePartitions=d,xy.offsetAttribute=p===-1?void 0:p,new E_(xy))};E_.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,r=e._maximumClock,o=e._minimumCone,s=e._maximumCone,a=e._vertexFormat,c=e._slicePartitions+1,l=e._stackPartitions+1;c=Math.round(c*Math.abs(r-i)/P.TWO_PI),l=Math.round(l*Math.abs(s-o)/P.PI),c<2&&(c=2),l<2&&(l=2);let f,d,p=0,g=[o],m=[i];for(f=0;f<l;f++)g.push(o+f*(s-o)/(l-1));for(g.push(s),d=0;d<c;d++)m.push(i+d*(r-i)/(c-1));m.push(r);let A=g.length,x=m.length,C=0,T=1,E=n.x!==t.x||n.y!==t.y||n.z!==t.z,S=!1,v=!1,D=!1;E&&(T=2,o>0&&(S=!0,C+=c-1),s<Math.PI&&(v=!0,C+=c-1),(r-i)%P.TWO_PI?(D=!0,C+=(l-1)*2+1):C+=1);let M=x*A*T,O=new Float64Array(M*3),B=new Array(M).fill(!1),L=new Array(M).fill(!1),_=c*l*T,b=6*(_+C+1-(c+l)*T),w=Ue.createTypedArray(_,b),I=a.normal?new Float32Array(M*3):void 0,R=a.tangent?new Float32Array(M*3):void 0,F=a.bitangent?new Float32Array(M*3):void 0,k=a.st?new Float32Array(M*2):void 0,V=new Array(A),G=new Array(A);for(f=0;f<A;f++)V[f]=mue(g[f]),G[f]=hue(g[f]);let U=new Array(x),Y=new Array(x);for(d=0;d<x;d++)Y[d]=hue(m[d]),U[d]=mue(m[d]);for(f=0;f<A;f++)for(d=0;d<x;d++)O[p++]=t.x*V[f]*Y[d],O[p++]=t.y*V[f]*U[d],O[p++]=t.z*G[f];let W=M/2;if(E)for(f=0;f<A;f++)for(d=0;d<x;d++)O[p++]=n.x*V[f]*Y[d],O[p++]=n.y*V[f]*U[d],O[p++]=n.z*G[f],B[W]=!0,f>0&&f!==A-1&&d!==0&&d!==x-1&&(L[W]=!0),W++;p=0;let Z,j;for(f=1;f<A-2;f++)for(Z=f*x,j=(f+1)*x,d=1;d<x-2;d++)w[p++]=j+d,w[p++]=j+d+1,w[p++]=Z+d+1,w[p++]=j+d,w[p++]=Z+d+1,w[p++]=Z+d;if(E){let pt=A*x;for(f=1;f<A-2;f++)for(Z=pt+f*x,j=pt+(f+1)*x,d=1;d<x-2;d++)w[p++]=j+d,w[p++]=Z+d,w[p++]=Z+d+1,w[p++]=j+d,w[p++]=Z+d+1,w[p++]=j+d+1}let K,J;if(E){if(S)for(J=A*x,f=1;f<x-2;f++)w[p++]=f,w[p++]=f+1,w[p++]=J+f+1,w[p++]=f,w[p++]=J+f+1,w[p++]=J+f;if(v)for(K=A*x-x,J=A*x*T-x,f=1;f<x-2;f++)w[p++]=K+f+1,w[p++]=K+f,w[p++]=J+f,w[p++]=K+f+1,w[p++]=J+f,w[p++]=J+f+1}if(D){for(f=1;f<A-2;f++)J=x*A+x*f,K=x*f,w[p++]=J,w[p++]=K+x,w[p++]=K,w[p++]=J,w[p++]=J+x,w[p++]=K+x;for(f=1;f<A-2;f++)J=x*A+x*(f+1)-1,K=x*(f+1)-1,w[p++]=K+x,w[p++]=J,w[p++]=K,w[p++]=K+x,w[p++]=J+x,w[p++]=J}let _e=new dn;a.position&&(_e.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:O}));let xe=0,oe=0,Ae=0,he=0,Se=M/2,Ie,Ne=re.fromCartesian3(t),qe=re.fromCartesian3(n);if(a.st||a.normal||a.tangent||a.bitangent){for(f=0;f<M;f++){Ie=B[f]?qe:Ne;let pt=h.fromArray(O,f*3,fqe),Gt=Ie.geodeticSurfaceNormal(pt,dqe);if(L[f]&&h.negate(Gt,Gt),a.st){let fn=H.negate(Gt,pqe);k[xe++]=Math.atan2(fn.y,fn.x)/P.TWO_PI+.5,k[xe++]=Math.asin(Gt.z)/Math.PI+.5}if(a.normal&&(I[oe++]=Gt.x,I[oe++]=Gt.y,I[oe++]=Gt.z),a.tangent||a.bitangent){let fn=hqe,ft=0,pn;if(B[f]&&(ft=Se),!S&&f>=ft&&f<ft+x*2?pn=h.UNIT_X:pn=h.UNIT_Z,h.cross(pn,Gt,fn),h.normalize(fn,fn),a.tangent&&(R[Ae++]=fn.x,R[Ae++]=fn.y,R[Ae++]=fn.z),a.bitangent){let Bn=h.cross(Gt,fn,mqe);h.normalize(Bn,Bn),F[he++]=Bn.x,F[he++]=Bn.y,F[he++]=Bn.z}}}a.st&&(_e.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:k})),a.normal&&(_e.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:I})),a.tangent&&(_e.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:R})),a.bitangent&&(_e.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:F}))}if(u(e._offsetAttribute)){let pt=O.length,Gt=e._offsetAttribute===nn.NONE?0:1,fn=new Uint8Array(pt/3).fill(Gt);_e.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:fn})}return new ut({attributes:_e,indices:w,primitiveType:Be.TRIANGLES,boundingSphere:ae.fromEllipsoid(Ne),offsetAttribute:e._offsetAttribute})};var wW;E_.getUnitEllipsoid=function(){return u(wW)||(wW=E_.createGeometry(new E_({radii:new h(1,1,1),vertexFormat:Pe.POSITION_ONLY}))),wW};var Ns=E_;var gqe=new Ut(z.WHITE),DW=h.ZERO,IW=new h,yqe=new h,Aqe=new h,PW=new z,xqe=new h(1,1,1);function Cqe(e){this.id=e,this.vertexFormat=void 0,this.radii=void 0,this.innerRadii=void 0,this.minimumClock=void 0,this.maximumClock=void 0,this.minimumCone=void 0,this.maximumCone=void 0,this.stackPartitions=void 0,this.slicePartitions=void 0,this.subdivisions=void 0,this.offsetAttribute=void 0}function Au(e,t){ci.call(this,{entity:e,scene:t,geometryOptions:new Cqe(e),geometryPropertyName:"ellipsoid",observedPropertyNames:["availability","position","orientation","ellipsoid"]}),this._onEntityPropertyChanged(e,"ellipsoid",e.ellipsoid,void 0)}u(Object.create)&&(Au.prototype=Object.create(ci.prototype),Au.prototype.constructor=Au);Object.defineProperties(Au.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Au.prototype.createFillGeometryInstance=function(e,t,n){let i=this._entity,r=i.isAvailable(e),o,s=new gn(r&&i.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),a=this._distanceDisplayConditionProperty.getValue(e),c=Vn.fromDistanceDisplayCondition(a),l={show:s,distanceDisplayCondition:c,color:void 0,offset:void 0};if(this._materialProperty instanceof Ut){let f;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||r)&&(f=this._materialProperty.color.getValue(e,PW)),u(f)||(f=z.WHITE),o=kt.fromColor(f),l.color=o}return u(this._options.offsetAttribute)&&(l.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,DW,IW))),new xt({id:i,geometry:new Ns(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.mapProjection.ellipsoid,n),attributes:l})};Au.prototype.createOutlineGeometryInstance=function(e,t,n){let i=this._entity,r=i.isAvailable(e),o=q.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,PW),s=this._distanceDisplayConditionProperty.getValue(e),a={show:new gn(r&&i.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(o),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(s),offset:void 0};return u(this._options.offsetAttribute)&&(a.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,DW,IW))),new xt({id:i,geometry:new fu(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.mapProjection.ellipsoid,n),attributes:a})};Au.prototype._computeCenter=function(e,t){return q.getValueOrUndefined(this._entity.position,e,t)};Au.prototype._isHidden=function(e,t){return!u(e.position)||!u(t.radii)||ci.prototype._isHidden.call(this,e,t)};Au.prototype._isDynamic=function(e,t){return!e.position.isConstant||!q.isConstant(e.orientation)||!t.radii.isConstant||!q.isConstant(t.innerRadii)||!q.isConstant(t.stackPartitions)||!q.isConstant(t.slicePartitions)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.minimumClock)||!q.isConstant(t.maximumClock)||!q.isConstant(t.minimumCone)||!q.isConstant(t.maximumCone)||!q.isConstant(t.subdivisions)};Au.prototype._setStaticOptions=function(e,t){let n=q.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,je.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Ut?rn.VERTEX_FORMAT:lr.MaterialSupport.TEXTURED.vertexFormat,i.radii=t.radii.getValue(ze.MINIMUM_VALUE,i.radii),i.innerRadii=q.getValueOrUndefined(t.innerRadii,i.radii),i.minimumClock=q.getValueOrUndefined(t.minimumClock,ze.MINIMUM_VALUE),i.maximumClock=q.getValueOrUndefined(t.maximumClock,ze.MINIMUM_VALUE),i.minimumCone=q.getValueOrUndefined(t.minimumCone,ze.MINIMUM_VALUE),i.maximumCone=q.getValueOrUndefined(t.maximumCone,ze.MINIMUM_VALUE),i.stackPartitions=q.getValueOrUndefined(t.stackPartitions,ze.MINIMUM_VALUE),i.slicePartitions=q.getValueOrUndefined(t.slicePartitions,ze.MINIMUM_VALUE),i.subdivisions=q.getValueOrUndefined(t.subdivisions,ze.MINIMUM_VALUE),i.offsetAttribute=n!==je.NONE?nn.ALL:void 0};Au.prototype._onEntityPropertyChanged=Ap;Au.DynamicGeometryUpdater=UR;function UR(e,t,n){ai.call(this,e,t,n),this._scene=e._scene,this._modelMatrix=new N,this._attributes=void 0,this._outlineAttributes=void 0,this._lastSceneMode=void 0,this._lastShow=void 0,this._lastOutlineShow=void 0,this._lastOutlineWidth=void 0,this._lastOutlineColor=void 0,this._lastOffset=new h,this._material={}}u(Object.create)&&(UR.prototype=Object.create(ai.prototype),UR.prototype.constructor=UR);UR.prototype.update=function(e){let t=this._entity,n=t.ellipsoid;if(!t.isShowing||!t.isAvailable(e)||!q.getValueOrDefault(n.show,e,!0)){u(this._primitive)&&(this._primitive.show=!1),u(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let i=q.getValueOrUndefined(n.radii,e,yqe),r=u(i)?t.computeModelMatrixForHeightReference(e,n.heightReference,i.z*.5,this._scene.mapProjection.ellipsoid,this._modelMatrix):void 0;if(!u(r)||!u(i)){u(this._primitive)&&(this._primitive.show=!1),u(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let o=q.getValueOrDefault(n.fill,e,!0),s=q.getValueOrDefault(n.outline,e,!1),a=q.getValueOrClonedDefault(n.outlineColor,e,z.BLACK,PW),c=Xr.getValue(e,y(n.material,gqe),this._material),l=q.getValueOrUndefined(n.innerRadii,e,Aqe),f=q.getValueOrUndefined(n.minimumClock,e),d=q.getValueOrUndefined(n.maximumClock,e),p=q.getValueOrUndefined(n.minimumCone,e),g=q.getValueOrUndefined(n.maximumCone,e),m=q.getValueOrUndefined(n.stackPartitions,e),A=q.getValueOrUndefined(n.slicePartitions,e),x=q.getValueOrUndefined(n.subdivisions,e),C=q.getValueOrDefault(n.outlineWidth,e,1),T=q.getValueOrDefault(n.heightReference,e,je.NONE),E=T!==je.NONE?nn.ALL:void 0,S=this._scene.mode,v=S===ne.SCENE3D&&T===je.NONE,D=this._options,M=this._geometryUpdater.shadowsProperty.getValue(e),B=this._geometryUpdater.distanceDisplayConditionProperty.getValue(e),L=q.getValueOrDefault(this._geometryUpdater.terrainOffsetProperty,e,DW,IW);if(!v||this._lastSceneMode!==S||!u(this._primitive)||D.stackPartitions!==m||D.slicePartitions!==A||u(l)&&!h.equals(D.innerRadii!==l)||D.minimumClock!==f||D.maximumClock!==d||D.minimumCone!==p||D.maximumCone!==g||D.subdivisions!==x||this._lastOutlineWidth!==C||D.offsetAttribute!==E){let b=this._primitives;if(b.removeAndDestroy(this._primitive),b.removeAndDestroy(this._outlinePrimitive),this._primitive=void 0,this._outlinePrimitive=void 0,this._lastSceneMode=S,this._lastOutlineWidth=C,D.stackPartitions=m,D.slicePartitions=A,D.subdivisions=x,D.offsetAttribute=E,D.radii=h.clone(v?xqe:i,D.radii),u(l))if(v){let F=h.magnitude(i);D.innerRadii=h.fromElements(l.x/F,l.y/F,l.z/F,D.innerRadii)}else D.innerRadii=h.clone(l,D.innerRadii);else D.innerRadii=void 0;D.minimumClock=f,D.maximumClock=d,D.minimumCone=p,D.maximumCone=g;let w=new lr({material:c,translucent:c.isTranslucent(),closed:!0});D.vertexFormat=w.vertexFormat;let I=this._geometryUpdater.createFillGeometryInstance(e,v,this._modelMatrix);this._primitive=b.add(new bn({geometryInstances:I,appearance:w,asynchronous:!1,shadows:M}));let R=this._geometryUpdater.createOutlineGeometryInstance(e,v,this._modelMatrix);this._outlinePrimitive=b.add(new bn({geometryInstances:R,appearance:new rn({flat:!0,translucent:R.attributes.color.value[3]!==255,renderState:{lineWidth:this._geometryUpdater._scene.clampLineWidth(C)}}),asynchronous:!1,shadows:M})),this._lastShow=o,this._lastOutlineShow=s,this._lastOutlineColor=z.clone(a,this._lastOutlineColor),this._lastDistanceDisplayCondition=B,this._lastOffset=h.clone(L,this._lastOffset)}else if(this._primitive.ready){let b=this._primitive,w=this._outlinePrimitive;b.show=!0,w.show=!0,b.appearance.material=c;let I=this._attributes;u(I)||(I=b.getGeometryInstanceAttributes(t),this._attributes=I),o!==this._lastShow&&(I.show=gn.toValue(o,I.show),this._lastShow=o);let R=this._outlineAttributes;u(R)||(R=w.getGeometryInstanceAttributes(t),this._outlineAttributes=R),s!==this._lastOutlineShow&&(R.show=gn.toValue(s,R.show),this._lastOutlineShow=s),z.equals(a,this._lastOutlineColor)||(R.color=kt.toValue(a,R.color),z.clone(a,this._lastOutlineColor)),vt.equals(B,this._lastDistanceDisplayCondition)||(I.distanceDisplayCondition=Vn.toValue(B,I.distanceDisplayCondition),R.distanceDisplayCondition=Vn.toValue(B,R.distanceDisplayCondition),vt.clone(B,this._lastDistanceDisplayCondition)),h.equals(L,this._lastOffset)||(I.offset=Ki.toValue(L,I.offset),R.offset=Ki.toValue(L,I.offset),h.clone(L,this._lastOffset))}v&&(i.x=Math.max(i.x,.001),i.y=Math.max(i.y,.001),i.z=Math.max(i.z,.001),r=N.multiplyByScale(r,i,r),this._primitive.modelMatrix=r,this._outlinePrimitive.modelMatrix=r)};var VR=Au;function sb(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.vertexFormat,Pe.DEFAULT);this._vertexFormat=t,this._workerName="createPlaneGeometry"}sb.packedLength=Pe.packedLength;sb.pack=function(e,t,n){return n=y(n,0),Pe.pack(e._vertexFormat,t,n),t};var yue=new Pe,Tqe={vertexFormat:yue};sb.unpack=function(e,t,n){t=y(t,0);let i=Pe.unpack(e,t,yue);return u(n)?(n._vertexFormat=Pe.clone(i,n._vertexFormat),n):new sb(Tqe)};var ak=new h(-.5,-.5,0),ck=new h(.5,.5,0);sb.createGeometry=function(e){let t=e._vertexFormat,n=new dn,i,r;if(t.position){if(r=new Float64Array(4*3),r[0]=ak.x,r[1]=ak.y,r[2]=0,r[3]=ck.x,r[4]=ak.y,r[5]=0,r[6]=ck.x,r[7]=ck.y,r[8]=0,r[9]=ak.x,r[10]=ck.y,r[11]=0,n.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:r}),t.normal){let o=new Float32Array(12);o[0]=0,o[1]=0,o[2]=1,o[3]=0,o[4]=0,o[5]=1,o[6]=0,o[7]=0,o[8]=1,o[9]=0,o[10]=0,o[11]=1,n.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:o})}if(t.st){let o=new Float32Array(8);o[0]=0,o[1]=0,o[2]=1,o[3]=0,o[4]=1,o[5]=1,o[6]=0,o[7]=1,n.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:o})}if(t.tangent){let o=new Float32Array(12);o[0]=1,o[1]=0,o[2]=0,o[3]=1,o[4]=0,o[5]=0,o[6]=1,o[7]=0,o[8]=0,o[9]=1,o[10]=0,o[11]=0,n.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:o})}if(t.bitangent){let o=new Float32Array(12);o[0]=0,o[1]=1,o[2]=0,o[3]=0,o[4]=1,o[5]=0,o[6]=0,o[7]=1,o[8]=0,o[9]=0,o[10]=1,o[11]=0,n.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:o})}i=new Uint16Array(2*3),i[0]=0,i[1]=1,i[2]=2,i[3]=0,i[4]=2,i[5]=3}return new ut({attributes:n,indices:i,primitiveType:Be.TRIANGLES,boundingSphere:new ae(h.ZERO,Math.sqrt(2))})};var kR=sb;function ab(){this._workerName="createPlaneOutlineGeometry"}ab.packedLength=0;ab.pack=function(e,t){return t};ab.unpack=function(e,t,n){return u(n)?n:new ab};var Cy=new h(-.5,-.5,0),lk=new h(.5,.5,0);ab.createGeometry=function(){let e=new dn,t=new Uint16Array(4*2),n=new Float64Array(4*3);return n[0]=Cy.x,n[1]=Cy.y,n[2]=Cy.z,n[3]=lk.x,n[4]=Cy.y,n[5]=Cy.z,n[6]=lk.x,n[7]=lk.y,n[8]=Cy.z,n[9]=Cy.x,n[10]=lk.y,n[11]=Cy.z,e.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n}),t[0]=0,t[1]=1,t[2]=1,t[3]=2,t[4]=2,t[5]=3,t[6]=3,t[7]=0,new ut({attributes:e,indices:t,primitiveType:Be.LINES,boundingSphere:new ae(h.ZERO,Math.sqrt(2))})};var zR=ab;var Eqe=new h,Aue=new z;function bqe(e){this.id=e,this.vertexFormat=void 0,this.plane=void 0,this.dimensions=void 0}function If(e,t){ci.call(this,{entity:e,scene:t,geometryOptions:new bqe(e),geometryPropertyName:"plane",observedPropertyNames:["availability","position","orientation","plane"]}),this._onEntityPropertyChanged(e,"plane",e.plane,void 0)}u(Object.create)&&(If.prototype=Object.create(ci.prototype),If.prototype.constructor=If);If.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,r,o=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=Vn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Ut){let g;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(g=this._materialProperty.color.getValue(e,Aue)),u(g)||(g=z.WHITE),r=kt.fromColor(g),i={show:o,distanceDisplayCondition:a,color:r}}else i={show:o,distanceDisplayCondition:a};let c=t.plane,l=this._options,f=t.computeModelMatrix(e),d=q.getValueOrDefault(c.plane,e,l.plane),p=q.getValueOrUndefined(c.dimensions,e,l.dimensions);return l.plane=d,l.dimensions=p,f=OW(d,p,f,f),new xt({id:t,geometry:new kR(this._options),modelMatrix:f,attributes:i})};If.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Aue),r=this._distanceDisplayConditionProperty.getValue(e),o=t.plane,s=this._options,a=t.computeModelMatrix(e),c=q.getValueOrDefault(o.plane,e,s.plane),l=q.getValueOrUndefined(o.dimensions,e,s.dimensions);return s.plane=c,s.dimensions=l,a=OW(c,l,a,a),new xt({id:t,geometry:new zR,modelMatrix:a,attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(r)}})};If.prototype._isHidden=function(e,t){return!u(t.plane)||!u(t.dimensions)||!u(e.position)||ci.prototype._isHidden.call(this,e,t)};If.prototype._getIsClosed=function(e){return!1};If.prototype._isDynamic=function(e,t){return!e.position.isConstant||!q.isConstant(e.orientation)||!t.plane.isConstant||!t.dimensions.isConstant||!q.isConstant(t.outlineWidth)};If.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Ut,i=this._options;i.vertexFormat=n?rn.VERTEX_FORMAT:lr.MaterialSupport.TEXTURED.vertexFormat,i.plane=t.plane.getValue(ze.MINIMUM_VALUE,i.plane),i.dimensions=t.dimensions.getValue(ze.MINIMUM_VALUE,i.dimensions)};If.DynamicGeometryUpdater=cb;function cb(e,t,n){ai.call(this,e,t,n)}u(Object.create)&&(cb.prototype=Object.create(ai.prototype),cb.prototype.constructor=cb);cb.prototype._isHidden=function(e,t,n){let i=this._options,r=q.getValueOrUndefined(e.position,n,Eqe);return!u(r)||!u(i.plane)||!u(i.dimensions)||ai.prototype._isHidden.call(this,e,t,n)};cb.prototype._setOptions=function(e,t,n){let i=this._options;i.plane=q.getValueOrDefault(t.plane,n,i.plane),i.dimensions=q.getValueOrUndefined(t.dimensions,n,i.dimensions)};var Sqe=new h,vqe=new h,wqe=new h,Dqe=new h,Iqe=new Q,Pqe=new Q,Oqe=new N;function OW(e,t,n,i){let r=e.normal,o=e.distance,s=h.multiplyByScalar(r,-o,wqe),a=h.clone(h.UNIT_Z,vqe);P.equalsEpsilon(Math.abs(h.dot(a,r)),1,P.EPSILON8)&&(a=h.clone(h.UNIT_Y,a));let c=h.cross(a,r,Sqe);a=h.cross(r,c,a),h.normalize(c,c),h.normalize(a,a);let l=Iqe;Q.setColumn(l,0,c,l),Q.setColumn(l,1,a,l),Q.setColumn(l,2,r,l);let f=h.fromElements(t.x,t.y,1,Dqe),d=Q.multiplyByScale(l,f,Pqe),p=N.fromRotationTranslation(d,s,Oqe);return N.multiplyTransformation(n,p,i)}If.createPrimitiveMatrix=OW;var HR=If;var Mqe=new h,Rqe=new Xe,Bqe=new H,Lqe=new H,Nqe=new h,Fqe=new h,Uqe=new h,GR=new h,Vqe=new h,kqe=new h,xue=new Le,zqe=new Q,Hqe=new Q,Gqe=new h;function Wqe(e,t,n,i,r,o,s,a,c){let l=e.positions,f=ui.triangulate(e.positions2D,e.holes);f.length<3&&(f=[0,1,2]);let d=Ue.createTypedArray(l.length,f.length);d.set(f);let p=zqe;if(i!==0){let _=Le.fromAxisAngle(s,i,xue);if(p=Q.fromQuaternion(_,p),t.tangent||t.bitangent){_=Le.fromAxisAngle(s,-i,xue);let b=Q.fromQuaternion(_,Hqe);a=h.normalize(Q.multiplyByVector(b,a,a),a),t.bitangent&&(c=h.normalize(h.cross(s,a,c),c))}}else p=Q.clone(Q.IDENTITY,p);let g=Lqe;t.st&&(g.x=n.x,g.y=n.y);let m=l.length,A=m*3,x=new Float64Array(A),C=t.normal?new Float32Array(A):void 0,T=t.tangent?new Float32Array(A):void 0,E=t.bitangent?new Float32Array(A):void 0,S=t.st?new Float32Array(m*2):void 0,v=0,D=0,M=0,O=0,B=0;for(let _=0;_<m;_++){let b=l[_];if(x[v++]=b.x,x[v++]=b.y,x[v++]=b.z,t.st)if(u(r)&&r.positions.length===m)S[B++]=r.positions[_].x,S[B++]=r.positions[_].y;else{let w=Q.multiplyByVector(p,b,Mqe),I=o(w,Bqe);H.subtract(I,g,I);let R=P.clamp(I.x/n.width,0,1),F=P.clamp(I.y/n.height,0,1);S[B++]=R,S[B++]=F}t.normal&&(C[D++]=s.x,C[D++]=s.y,C[D++]=s.z),t.tangent&&(T[O++]=a.x,T[O++]=a.y,T[O++]=a.z),t.bitangent&&(E[M++]=c.x,E[M++]=c.y,E[M++]=c.z)}let L=new dn;return t.position&&(L.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:x})),t.normal&&(L.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.tangent&&(L.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),t.bitangent&&(L.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:E})),t.st&&(L.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:S})),new ut({attributes:L,indices:d,primitiveType:Be.TRIANGLES})}function Sx(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy,n=e.textureCoordinates,i=y(e.vertexFormat,Pe.DEFAULT);this._vertexFormat=Pe.clone(i),this._polygonHierarchy=t,this._stRotation=y(e.stRotation,0),this._ellipsoid=re.clone(y(e.ellipsoid,re.WGS84)),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=n,this.packedLength=Yn.computeHierarchyPackedLength(t,h)+Pe.packedLength+re.packedLength+(u(n)?Yn.computeHierarchyPackedLength(n,H):1)+2}Sx.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,textureCoordinates:e.textureCoordinates};return new Sx(t)};Sx.pack=function(e,t,n){return n=y(n,0),n=Yn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),re.pack(e._ellipsoid,t,n),n+=re.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._stRotation,u(e._textureCoordinates)?n=Yn.packPolygonHierarchy(e._textureCoordinates,t,n,H):t[n++]=-1,t[n++]=e.packedLength,t};var jqe=re.clone(re.UNIT_SPHERE),qqe=new Pe,Yqe={polygonHierarchy:{}};Sx.unpack=function(e,t,n){t=y(t,0);let i=Yn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let r=re.unpack(e,t,jqe);t+=re.packedLength;let o=Pe.unpack(e,t,qqe);t+=Pe.packedLength;let s=e[t++],a=e[t]===-1?void 0:Yn.unpackPolygonHierarchy(e,t,H);u(a)?(t=a.startingIndex,delete a.startingIndex):t++;let c=e[t++];return u(n)||(n=new Sx(Yqe)),n._polygonHierarchy=i,n._ellipsoid=re.clone(r,n._ellipsoid),n._vertexFormat=Pe.clone(o,n._vertexFormat),n._stRotation=s,n._textureCoordinates=a,n.packedLength=c,n};Sx.createGeometry=function(e){let t=e._vertexFormat,n=e._polygonHierarchy,i=e._stRotation,r=e._textureCoordinates,o=u(r),s=n.positions;if(s=Er(s,h.equalsEpsilon,!0),s.length<3)return;let a=Nqe,c=Fqe,l=Uqe,f=Vqe,d=kqe;if(!n_.computeProjectTo2DArguments(s,GR,f,d))return;if(a=h.cross(f,d,a),a=h.normalize(a,a),!h.equalsEpsilon(GR,h.ZERO,P.EPSILON6)){let B=e._ellipsoid.geodeticSurfaceNormal(GR,Gqe);h.dot(a,B)<0&&(a=h.negate(a,a),f=h.negate(f,f))}let g=n_.createProjectPointsTo2DFunction(GR,f,d),m=n_.createProjectPointTo2DFunction(GR,f,d);t.tangent&&(c=h.clone(f,c)),t.bitangent&&(l=h.clone(d,l));let A=Yn.polygonsFromHierarchy(n,o,g,!1),x=A.hierarchy,C=A.polygons,T=function(B){return B},E=o?Yn.polygonsFromHierarchy(r,!0,T,!1).polygons:void 0;if(x.length===0)return;s=x[0].outerRing;let S=ae.fromPoints(s),v=Yn.computeBoundingRectangle(a,m,s,i,Rqe),D=[];for(let B=0;B<C.length;B++){let L=new xt({geometry:Wqe(C[B],t,v,i,o?E[B]:void 0,m,a,c,l)});D.push(L)}let M=Ln.combineInstances(D)[0];M.attributes.position.values=new Float64Array(M.attributes.position.values),M.indices=Ue.createTypedArray(M.attributes.position.values.length/3,M.indices);let O=M.attributes;return t.position||delete O.position,new ut({attributes:O,indices:M.indices,primitiveType:M.primitiveType,boundingSphere:S})};var WR=Sx;var Xqe=new me,Cue=new me;function Kqe(e,t,n,i){let o=i.cartesianToCartographic(e,Xqe).height,s=i.cartesianToCartographic(t,Cue);s.height=o,i.cartographicToCartesian(s,t);let a=i.cartesianToCartographic(n,Cue);a.height=o-100,i.cartographicToCartesian(a,n)}var Jqe=new Xe,Zqe=new h,Qqe=new h,$qe=new h,eYe=new h,tYe=new h,nYe=new h,uk=new h,fm=new h,lb=new h,iYe=new H,rYe=new H,oYe=new h,Tue=new Le,sYe=new Q,aYe=new Q;function MW(e){let t=e.vertexFormat,n=e.geometry,i=e.shadowVolume,r=n.attributes.position.values,o=u(n.attributes.st)?n.attributes.st.values:void 0,s=r.length,a=e.wall,c=e.top||a,l=e.bottom||a;if(t.st||t.normal||t.tangent||t.bitangent||i){let f=e.boundingRectangle,d=e.tangentPlane,p=e.ellipsoid,g=e.stRotation,m=e.perPositionHeight,A=iYe;A.x=f.x,A.y=f.y;let x=t.st?new Float32Array(2*(s/3)):void 0,C;t.normal&&(m&&c&&!a?C=n.attributes.normal.values:C=new Float32Array(s));let T=t.tangent?new Float32Array(s):void 0,E=t.bitangent?new Float32Array(s):void 0,S=i?new Float32Array(s):void 0,v=0,D=0,M=Qqe,O=$qe,B=eYe,L=!0,_=sYe,b=aYe;if(g!==0){let R=Le.fromAxisAngle(d._plane.normal,g,Tue);_=Q.fromQuaternion(R,_),R=Le.fromAxisAngle(d._plane.normal,-g,Tue),b=Q.fromQuaternion(R,b)}else _=Q.clone(Q.IDENTITY,_),b=Q.clone(Q.IDENTITY,b);let w=0,I=0;c&&l&&(w=s/2,I=s/3,s/=2);for(let R=0;R<s;R+=3){let F=h.fromArray(r,R,oYe);if(t.st&&!u(o)){let k=Q.multiplyByVector(_,F,Zqe);k=p.scaleToGeodeticSurface(k,k);let V=d.projectPointOntoPlane(k,rYe);H.subtract(V,A,V);let G=P.clamp(V.x/f.width,0,1),U=P.clamp(V.y/f.height,0,1);l&&(x[v+I]=G,x[v+1+I]=U),c&&(x[v]=G,x[v+1]=U),v+=2}if(t.normal||t.tangent||t.bitangent||i){let k=D+1,V=D+2;if(a){if(R+3<s){let G=h.fromArray(r,R+3,tYe);if(L){let U=h.fromArray(r,R+s,nYe);m&&Kqe(F,G,U,p),h.subtract(G,F,G),h.subtract(U,F,U),M=h.normalize(h.cross(U,G,M),M),L=!1}h.equalsEpsilon(G,F,P.EPSILON10)&&(L=!0)}(t.tangent||t.bitangent)&&(B=p.geodeticSurfaceNormal(F,B),t.tangent&&(O=h.normalize(h.cross(B,M,O),O)))}else M=p.geodeticSurfaceNormal(F,M),(t.tangent||t.bitangent)&&(m&&(uk=h.fromArray(C,D,uk),fm=h.cross(h.UNIT_Z,uk,fm),fm=h.normalize(Q.multiplyByVector(b,fm,fm),fm),t.bitangent&&(lb=h.normalize(h.cross(uk,fm,lb),lb))),O=h.cross(h.UNIT_Z,M,O),O=h.normalize(Q.multiplyByVector(b,O,O),O),t.bitangent&&(B=h.normalize(h.cross(M,O,B),B)));t.normal&&(e.wall?(C[D+w]=M.x,C[k+w]=M.y,C[V+w]=M.z):l&&(C[D+w]=-M.x,C[k+w]=-M.y,C[V+w]=-M.z),(c&&!m||a)&&(C[D]=M.x,C[k]=M.y,C[V]=M.z)),i&&(a&&(M=p.geodeticSurfaceNormal(F,M)),S[D+w]=-M.x,S[k+w]=-M.y,S[V+w]=-M.z),t.tangent&&(e.wall?(T[D+w]=O.x,T[k+w]=O.y,T[V+w]=O.z):l&&(T[D+w]=-O.x,T[k+w]=-O.y,T[V+w]=-O.z),c&&(m?(T[D]=fm.x,T[k]=fm.y,T[V]=fm.z):(T[D]=O.x,T[k]=O.y,T[V]=O.z))),t.bitangent&&(l&&(E[D+w]=B.x,E[k+w]=B.y,E[V+w]=B.z),c&&(m?(E[D]=lb.x,E[k]=lb.y,E[V]=lb.z):(E[D]=B.x,E[k]=B.y,E[V]=B.z))),D+=3}}t.st&&!u(o)&&(n.attributes.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:x})),t.normal&&(n.attributes.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.tangent&&(n.attributes.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),t.bitangent&&(n.attributes.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:E})),i&&(n.attributes.extrudeDirection=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:S}))}if(e.extrude&&u(e.offsetAttribute)){let f=r.length/3,d=new Uint8Array(f);if(e.offsetAttribute===nn.TOP)c&&l||a?d=d.fill(1,0,f/2):c&&(d=d.fill(1));else{let p=e.offsetAttribute===nn.NONE?0:1;d=d.fill(p)}n.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return n}var cYe=new me,lYe=new me,Ty={westOverIDL:0,eastOverIDL:0},ub=new tf;function Sue(e,t,n,i,r){if(r=y(r,new le),!u(e)||e.length<3)return r.west=0,r.north=0,r.south=0,r.east=0,r;if(n===Kt.RHUMB)return le.fromCartesianArray(e,t,r);ub.ellipsoid.equals(t)||(ub=new tf(void 0,void 0,t)),r.west=Number.POSITIVE_INFINITY,r.east=Number.NEGATIVE_INFINITY,r.south=Number.POSITIVE_INFINITY,r.north=Number.NEGATIVE_INFINITY,Ty.westOverIDL=Number.POSITIVE_INFINITY,Ty.eastOverIDL=Number.NEGATIVE_INFINITY;let o=1/P.chordLength(i,t.maximumRadius),s=e.length,a=t.cartesianToCartographic(e[0],lYe),c=cYe,l;for(let f=1;f<s;f++)l=c,c=a,a=t.cartesianToCartographic(e[f],l),ub.setEndPoints(c,a),Eue(ub,o,r,Ty);return l=c,c=a,a=t.cartesianToCartographic(e[0],l),ub.setEndPoints(c,a),Eue(ub,o,r,Ty),r.east-r.west>Ty.eastOverIDL-Ty.westOverIDL&&(r.west=Ty.westOverIDL,r.east=Ty.eastOverIDL,r.east>P.PI&&(r.east=r.east-P.TWO_PI),r.west>P.PI&&(r.west=r.west-P.TWO_PI)),r}var uYe=new me;function Eue(e,t,n,i){let r=e.surfaceDistance,o=Math.ceil(r*t),s=o>0?r/(o-1):Number.POSITIVE_INFINITY,a=0;for(let c=0;c<o;c++){let l=e.interpolateUsingSurfaceDistance(a,uYe);a+=s;let f=l.longitude,d=l.latitude;n.west=Math.min(n.west,f),n.east=Math.max(n.east,f),n.south=Math.min(n.south,d),n.north=Math.max(n.north,d);let p=f>=0?f:f+P.TWO_PI;i.westOverIDL=Math.min(i.westOverIDL,p),i.eastOverIDL=Math.max(i.eastOverIDL,p)}}var bue=[];function fYe(e,t,n,i,r,o,s,a,c,l){let f={walls:[]},d;if(s||a){let T=Yn.createGeometryFromPositions(e,t,n,i,o,c,l),E=T.attributes.position.values,S=T.indices,v,D;if(s&&a){let M=E.concat(E);v=M.length/3,D=Ue.createTypedArray(v,S.length*2),D.set(S);let O=S.length,B=v/2;for(d=0;d<O;d+=3){let L=D[d]+B,_=D[d+1]+B,b=D[d+2]+B;D[d+O]=b,D[d+1+O]=_,D[d+2+O]=L}if(T.attributes.position.values=M,o&&c.normal){let L=T.attributes.normal.values;T.attributes.normal.values=new Float32Array(M.length),T.attributes.normal.values.set(L)}if(c.st&&u(n)){let L=T.attributes.st.values;T.attributes.st.values=new Float32Array(v*2),T.attributes.st.values=L.concat(L)}T.indices=D}else if(a){for(v=E.length/3,D=Ue.createTypedArray(v,S.length),d=0;d<S.length;d+=3)D[d]=S[d+2],D[d+1]=S[d+1],D[d+2]=S[d];T.indices=D}f.topAndBottom=new xt({geometry:T})}let p=r.outerRing,g=_a.fromPoints(p,e),m=g.projectPointsOntoPlane(p,bue),A=ui.computeWindingOrder2D(m);A===$o.CLOCKWISE&&(p=p.slice().reverse());let x=Yn.computeWallGeometry(p,n,e,i,o,l);f.walls.push(new xt({geometry:x}));let C=r.holes;for(d=0;d<C.length;d++){let T=C[d];g=_a.fromPoints(T,e),m=g.projectPointsOntoPlane(T,bue),A=ui.computeWindingOrder2D(m),A===$o.COUNTER_CLOCKWISE&&(T=T.slice().reverse()),x=Yn.computeWallGeometry(T,n,e,i,o,l),f.walls.push(new xt({geometry:x}))}return f}function Zd(e){let t=e.polygonHierarchy,n=y(e.vertexFormat,Pe.DEFAULT),i=y(e.ellipsoid,re.WGS84),r=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.stRotation,0),s=e.textureCoordinates,a=y(e.perPositionHeight,!1),c=a&&u(e.extrudedHeight),l=y(e.height,0),f=y(e.extrudedHeight,l);if(!c){let d=Math.max(l,f);f=Math.min(l,f),l=d}this._vertexFormat=Pe.clone(n),this._ellipsoid=re.clone(i),this._granularity=r,this._stRotation=o,this._height=l,this._extrudedHeight=f,this._closeTop=y(e.closeTop,!0),this._closeBottom=y(e.closeBottom,!0),this._polygonHierarchy=t,this._perPositionHeight=a,this._perPositionHeightExtrude=c,this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createPolygonGeometry",this._offsetAttribute=e.offsetAttribute,this._arcType=y(e.arcType,Kt.GEODESIC),this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this._textureCoordinates=s,this.packedLength=Yn.computeHierarchyPackedLength(t,h)+re.packedLength+Pe.packedLength+(s?Yn.computeHierarchyPackedLength(s,H):1)+12}Zd.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,closeTop:e.closeTop,closeBottom:e.closeBottom,offsetAttribute:e.offsetAttribute,arcType:e.arcType,textureCoordinates:e.textureCoordinates};return new Zd(t)};Zd.pack=function(e,t,n){return n=y(n,0),n=Yn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),re.pack(e._ellipsoid,t,n),n+=re.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._stRotation,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._closeTop?1:0,t[n++]=e._closeBottom?1:0,t[n++]=e._shadowVolume?1:0,t[n++]=y(e._offsetAttribute,-1),t[n++]=e._arcType,u(e._textureCoordinates)?n=Yn.packPolygonHierarchy(e._textureCoordinates,t,n,H):t[n++]=-1,t[n++]=e.packedLength,t};var dYe=re.clone(re.UNIT_SPHERE),hYe=new Pe,mYe={polygonHierarchy:{}};Zd.unpack=function(e,t,n){t=y(t,0);let i=Yn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let r=re.unpack(e,t,dYe);t+=re.packedLength;let o=Pe.unpack(e,t,hYe);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++]===1,d=e[t++]===1,p=e[t++]===1,g=e[t++]===1,m=e[t++]===1,A=e[t++],x=e[t++],C=e[t]===-1?void 0:Yn.unpackPolygonHierarchy(e,t,H);u(C)?(t=C.startingIndex,delete C.startingIndex):t++;let T=e[t++];return u(n)||(n=new Zd(mYe)),n._polygonHierarchy=i,n._ellipsoid=re.clone(r,n._ellipsoid),n._vertexFormat=Pe.clone(o,n._vertexFormat),n._height=s,n._extrudedHeight=a,n._granularity=c,n._stRotation=l,n._perPositionHeightExtrude=f,n._perPositionHeight=d,n._closeTop=p,n._closeBottom=g,n._shadowVolume=m,n._offsetAttribute=A===-1?void 0:A,n._arcType=x,n._textureCoordinates=C,n.packedLength=T,n};Zd.computeRectangle=function(e,t){let n=y(e.granularity,P.RADIANS_PER_DEGREE),i=y(e.arcType,Kt.GEODESIC),r=e.polygonHierarchy,o=y(e.ellipsoid,re.WGS84);return Sue(r.positions,o,i,n,t)};Zd.createGeometry=function(e){let t=e._vertexFormat,n=e._ellipsoid,i=e._granularity,r=e._stRotation,o=e._polygonHierarchy,s=e._perPositionHeight,a=e._closeTop,c=e._closeBottom,l=e._arcType,f=e._textureCoordinates,d=u(f),p=o.positions;if(p.length<3)return;let g=_a.fromPoints(p,n),m=Yn.polygonsFromHierarchy(o,d,g.projectPointsOntoPlane.bind(g),!s,n),A=m.hierarchy,x=m.polygons,C=function(w){return w},T=d?Yn.polygonsFromHierarchy(f,!0,C,!1).polygons:void 0;if(A.length===0)return;p=A[0].outerRing;let E=Yn.computeBoundingRectangle(g.plane.normal,g.projectPointOntoPlane.bind(g),p,r,Jqe),S=[],v=e._height,D=e._extrudedHeight,M=e._perPositionHeightExtrude||!P.equalsEpsilon(v,D,0,P.EPSILON2),O={perPositionHeight:s,vertexFormat:t,geometry:void 0,tangentPlane:g,boundingRectangle:E,ellipsoid:n,stRotation:r,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:l},B;if(M)for(O.extrude=!0,O.top=a,O.bottom=c,O.shadowVolume=e._shadowVolume,O.offsetAttribute=e._offsetAttribute,B=0;B<x.length;B++){let w=fYe(n,x[B],d?T[B]:void 0,i,A[B],s,a,c,t,l),I;a&&c?(I=w.topAndBottom,O.geometry=Yn.scaleToGeodeticHeightExtruded(I.geometry,v,D,n,s)):a?(I=w.topAndBottom,I.geometry.attributes.position.values=ui.scaleToGeodeticHeight(I.geometry.attributes.position.values,v,n,!s),O.geometry=I.geometry):c&&(I=w.topAndBottom,I.geometry.attributes.position.values=ui.scaleToGeodeticHeight(I.geometry.attributes.position.values,D,n,!0),O.geometry=I.geometry),(a||c)&&(O.wall=!1,I.geometry=MW(O),S.push(I));let R=w.walls;O.wall=!0;for(let F=0;F<R.length;F++){let k=R[F];O.geometry=Yn.scaleToGeodeticHeightExtruded(k.geometry,v,D,n,s),k.geometry=MW(O),S.push(k)}}else for(B=0;B<x.length;B++){let w=new xt({geometry:Yn.createGeometryFromPositions(n,x[B],d?T[B]:void 0,i,s,t,l)});if(w.geometry.attributes.position.values=ui.scaleToGeodeticHeight(w.geometry.attributes.position.values,v,n,!s),O.geometry=w.geometry,w.geometry=MW(O),u(e._offsetAttribute)){let I=w.geometry.attributes.position.values.length,R=e._offsetAttribute===nn.NONE?0:1,F=new Uint8Array(I/3).fill(R);w.geometry.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:F})}S.push(w)}let L=Ln.combineInstances(S)[0];L.attributes.position.values=new Float64Array(L.attributes.position.values),L.indices=Ue.createTypedArray(L.attributes.position.values.length/3,L.indices);let _=L.attributes,b=ae.fromVertices(_.position.values);return t.position||delete _.position,new ut({attributes:_,indices:L.indices,primitiveType:L.primitiveType,boundingSphere:b,offsetAttribute:e._offsetAttribute})};Zd.createShadowVolume=function(e,t,n){let i=e._granularity,r=e._ellipsoid,o=t(i,r),s=n(i,r);return new Zd({polygonHierarchy:e._polygonHierarchy,ellipsoid:r,stRotation:e._stRotation,granularity:i,perPositionHeight:!1,extrudedHeight:o,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0,arcType:e._arcType})};function pYe(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let n=e._ellipsoid,i=e._polygonHierarchy.positions,r=e.rectangle;return ut._textureCoordinateRotationPoints(i,t,n,r)}Object.defineProperties(Zd.prototype,{rectangle:{get:function(){if(!u(this._rectangle)){let e=this._polygonHierarchy.positions;this._rectangle=Sue(e,this._ellipsoid,this._arcType,this._granularity)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return u(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=pYe(this)),this._textureCoordinateRotationPoints}}});var vx=Zd;var vue=[],fk=[];function _Ye(e,t,n,i,r){let s=_a.fromPoints(t,e).projectPointsOntoPlane(t,vue);ui.computeWindingOrder2D(s)===$o.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,l,f=t.length,d=0;if(i)for(c=new Float64Array(f*2*3),l=0;l<f;l++){let m=t[l],A=t[(l+1)%f];c[d++]=m.x,c[d++]=m.y,c[d++]=m.z,c[d++]=A.x,c[d++]=A.y,c[d++]=A.z}else{let m=0;if(r===Kt.GEODESIC)for(l=0;l<f;l++)m+=Yn.subdivideLineCount(t[l],t[(l+1)%f],n);else if(r===Kt.RHUMB)for(l=0;l<f;l++)m+=Yn.subdivideRhumbLineCount(e,t[l],t[(l+1)%f],n);for(c=new Float64Array(m*3),l=0;l<f;l++){let A;r===Kt.GEODESIC?A=Yn.subdivideLine(t[l],t[(l+1)%f],n,fk):r===Kt.RHUMB&&(A=Yn.subdivideRhumbLine(e,t[l],t[(l+1)%f],n,fk));let x=A.length;for(let C=0;C<x;++C)c[d++]=A[C]}}f=c.length/3;let p=f*2,g=Ue.createTypedArray(f,p);for(d=0,l=0;l<f-1;l++)g[d++]=l,g[d++]=l+1;return g[d++]=f-1,g[d++]=0,new xt({geometry:new ut({attributes:new dn({position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:g,primitiveType:Be.LINES})})}function gYe(e,t,n,i,r){let s=_a.fromPoints(t,e).projectPointsOntoPlane(t,vue);ui.computeWindingOrder2D(s)===$o.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,l,f=t.length,d=new Array(f),p=0;if(i)for(c=new Float64Array(f*2*3*2),l=0;l<f;++l){d[l]=p/3;let x=t[l],C=t[(l+1)%f];c[p++]=x.x,c[p++]=x.y,c[p++]=x.z,c[p++]=C.x,c[p++]=C.y,c[p++]=C.z}else{let x=0;if(r===Kt.GEODESIC)for(l=0;l<f;l++)x+=Yn.subdivideLineCount(t[l],t[(l+1)%f],n);else if(r===Kt.RHUMB)for(l=0;l<f;l++)x+=Yn.subdivideRhumbLineCount(e,t[l],t[(l+1)%f],n);for(c=new Float64Array(x*3*2),l=0;l<f;++l){d[l]=p/3;let C;r===Kt.GEODESIC?C=Yn.subdivideLine(t[l],t[(l+1)%f],n,fk):r===Kt.RHUMB&&(C=Yn.subdivideRhumbLine(e,t[l],t[(l+1)%f],n,fk));let T=C.length;for(let E=0;E<T;++E)c[p++]=C[E]}}f=c.length/(3*2);let g=d.length,m=(f*2+g)*2,A=Ue.createTypedArray(f+g,m);for(p=0,l=0;l<f;++l)A[p++]=l,A[p++]=(l+1)%f,A[p++]=l+f,A[p++]=(l+1)%f+f;for(l=0;l<g;l++){let x=d[l];A[p++]=x,A[p++]=x+f}return new xt({geometry:new ut({attributes:new dn({position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:A,primitiveType:Be.LINES})})}function wx(e){let t=e.polygonHierarchy,n=y(e.ellipsoid,re.WGS84),i=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.perPositionHeight,!1),o=r&&u(e.extrudedHeight),s=y(e.arcType,Kt.GEODESIC),a=y(e.height,0),c=y(e.extrudedHeight,a);if(!o){let l=Math.max(a,c);c=Math.min(a,c),a=l}this._ellipsoid=re.clone(n),this._granularity=i,this._height=a,this._extrudedHeight=c,this._arcType=s,this._polygonHierarchy=t,this._perPositionHeight=r,this._perPositionHeightExtrude=o,this._offsetAttribute=e.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=Yn.computeHierarchyPackedLength(t,h)+re.packedLength+8}wx.pack=function(e,t,n){return n=y(n,0),n=Yn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),re.pack(e._ellipsoid,t,n),n+=re.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._arcType,t[n++]=y(e._offsetAttribute,-1),t[n]=e.packedLength,t};var yYe=re.clone(re.UNIT_SPHERE),AYe={polygonHierarchy:{}};wx.unpack=function(e,t,n){t=y(t,0);let i=Yn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let r=re.unpack(e,t,yYe);t+=re.packedLength;let o=e[t++],s=e[t++],a=e[t++],c=e[t++]===1,l=e[t++]===1,f=e[t++],d=e[t++],p=e[t];return u(n)||(n=new wx(AYe)),n._polygonHierarchy=i,n._ellipsoid=re.clone(r,n._ellipsoid),n._height=o,n._extrudedHeight=s,n._granularity=a,n._perPositionHeight=l,n._perPositionHeightExtrude=c,n._arcType=f,n._offsetAttribute=d===-1?void 0:d,n.packedLength=p,n};wx.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute};return new wx(t)};wx.createGeometry=function(e){let t=e._ellipsoid,n=e._granularity,i=e._polygonHierarchy,r=e._perPositionHeight,o=e._arcType,s=Yn.polygonOutlinesFromHierarchy(i,!r,t);if(s.length===0)return;let a,c=[],l=P.chordLength(n,t.maximumRadius),f=e._height,d=e._extrudedHeight,p=e._perPositionHeightExtrude||!P.equalsEpsilon(f,d,0,P.EPSILON2),g,m;if(p)for(m=0;m<s.length;m++){if(a=gYe(t,s[m],l,r,o),a.geometry=Yn.scaleToGeodeticHeightExtruded(a.geometry,f,d,t,r),u(e._offsetAttribute)){let C=a.geometry.attributes.position.values.length/3,T=new Uint8Array(C);e._offsetAttribute===nn.TOP?T=T.fill(1,0,C/2):(g=e._offsetAttribute===nn.NONE?0:1,T=T.fill(g)),a.geometry.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:T})}c.push(a)}else for(m=0;m<s.length;m++){if(a=_Ye(t,s[m],l,r,o),a.geometry.attributes.position.values=ui.scaleToGeodeticHeight(a.geometry.attributes.position.values,f,t,!r),u(e._offsetAttribute)){let C=a.geometry.attributes.position.values.length;g=e._offsetAttribute===nn.NONE?0:1;let T=new Uint8Array(C/3).fill(g);a.geometry.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:T})}c.push(a)}let A=Ln.combineInstances(c)[0],x=ae.fromVertices(A.attributes.position.values);return new ut({attributes:A.attributes,indices:A.indices,primitiveType:A.primitiveType,boundingSphere:x,offsetAttribute:e._offsetAttribute})};var jR=wx;var wue="Entity polygons cannot have both height and perPositionHeight. height will be ignored",Due="heightReference is not supported for entity polygons with perPositionHeight. heightReference will be ignored",Iue=new z,Pue=h.ZERO,Oue=new h,Mue=new le,xYe=[],CYe=new H;function TYe(e){this.id=e,this.vertexFormat=void 0,this.polygonHierarchy=void 0,this.perPositionHeight=void 0,this.closeTop=void 0,this.closeBottom=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.offsetAttribute=void 0,this.arcType=void 0,this.textureCoordinates=void 0}function xu(e,t){Xn.call(this,{entity:e,scene:t,geometryOptions:new TYe(e),geometryPropertyName:"polygon",observedPropertyNames:["availability","polygon"]}),this._onEntityPropertyChanged(e,"polygon",e.polygon,void 0)}u(Object.create)&&(xu.prototype=Object.create(Xn.prototype),xu.prototype.constructor=xu);xu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Ut){let s;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(s=this._materialProperty.color.getValue(e,Iue)),u(s)||(s=z.WHITE),r.color=kt.fromColor(s)}u(i.offsetAttribute)&&(r.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Pue,Oue)));let o;return i.perPositionHeight&&!u(i.extrudedHeight)?o=new WR(i):o=new vx(i),new xt({id:t,geometry:o,attributes:r})};xu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,r=q.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Iue),o=this._distanceDisplayConditionProperty.getValue(e),s={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(r),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(o),offset:void 0};u(i.offsetAttribute)&&(s.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Pue,Oue)));let a;return i.perPositionHeight&&!u(i.extrudedHeight)?a=new xf(i):a=new jR(i),new xt({id:t,geometry:a,attributes:s})};xu.prototype._computeCenter=function(e,t){let n=q.getValueOrUndefined(this._entity.polygon.hierarchy,e);if(!u(n))return;let i=n.positions;if(i.length===0)return;let r=this._scene.mapProjection.ellipsoid,o=_a.fromPoints(i,r),s=o.projectPointsOntoPlane(i,xYe),a=s.length,c=0,l=a-1,f=new H;for(let p=0;p<a;l=p++){let g=s[p],m=s[l],A=g.x*m.y-m.x*g.y,x=H.add(g,m,CYe);x=H.multiplyByScalar(x,A,x),f=H.add(f,x,f),c+=A}let d=1/(c*3);return f=H.multiplyByScalar(f,d,f),o.projectPointOntoEllipsoid(f,t)};xu.prototype._isHidden=function(e,t){return!u(t.hierarchy)||ci.prototype._isHidden.call(this,e,t)};xu.prototype._isOnTerrain=function(e,t){let n=Xn.prototype._isOnTerrain.call(this,e,t),i=t.perPositionHeight,r=u(i)&&(i.isConstant?i.getValue(ze.MINIMUM_VALUE):!0);return n&&!r};xu.prototype._isDynamic=function(e,t){return!t.hierarchy.isConstant||!q.isConstant(t.height)||!q.isConstant(t.extrudedHeight)||!q.isConstant(t.granularity)||!q.isConstant(t.stRotation)||!q.isConstant(t.textureCoordinates)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.perPositionHeight)||!q.isConstant(t.closeTop)||!q.isConstant(t.closeBottom)||!q.isConstant(t.zIndex)||!q.isConstant(t.arcType)||this._onTerrain&&!q.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};xu.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Ut,i=this._options;i.vertexFormat=n?rn.VERTEX_FORMAT:lr.MaterialSupport.TEXTURED.vertexFormat;let r=t.hierarchy.getValue(ze.MINIMUM_VALUE),o=q.getValueOrUndefined(t.height,ze.MINIMUM_VALUE),s=q.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,je.NONE),a=q.getValueOrUndefined(t.extrudedHeight,ze.MINIMUM_VALUE),c=q.getValueOrDefault(t.extrudedHeightReference,ze.MINIMUM_VALUE,je.NONE),l=q.getValueOrDefault(t.perPositionHeight,ze.MINIMUM_VALUE,!1);o=Xn.getGeometryHeight(o,s);let f;l?(u(o)&&(o=void 0,Ot(wue)),s!==je.NONE&&l&&(o=void 0,Ot(Due))):(u(a)&&!u(o)&&(o=0),f=Xn.computeGeometryOffsetAttribute(o,s,a,c)),i.polygonHierarchy=r,i.granularity=q.getValueOrUndefined(t.granularity,ze.MINIMUM_VALUE),i.stRotation=q.getValueOrUndefined(t.stRotation,ze.MINIMUM_VALUE),i.perPositionHeight=l,i.closeTop=q.getValueOrDefault(t.closeTop,ze.MINIMUM_VALUE,!0),i.closeBottom=q.getValueOrDefault(t.closeBottom,ze.MINIMUM_VALUE,!0),i.offsetAttribute=f,i.height=o,i.arcType=q.getValueOrDefault(t.arcType,ze.MINIMUM_VALUE,Kt.GEODESIC),i.textureCoordinates=q.getValueOrUndefined(t.textureCoordinates,ze.MINIMUM_VALUE),a=Xn.getGeometryExtrudedHeight(a,c),a===Xn.CLAMP_TO_GROUND&&(a=si.getMinimumMaximumHeights(vx.computeRectangle(i,Mue)).minimumTerrainHeight),i.extrudedHeight=a};xu.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight,i=u(n)&&n!==t;return!e.perPositionHeight&&(!i&&t===0||i&&e.closeTop&&e.closeBottom)};xu.DynamicGeometryUpdater=fb;function fb(e,t,n){ai.call(this,e,t,n)}u(Object.create)&&(fb.prototype=Object.create(ai.prototype),fb.prototype.constructor=fb);fb.prototype._isHidden=function(e,t,n){return!u(this._options.polygonHierarchy)||ai.prototype._isHidden.call(this,e,t,n)};fb.prototype._setOptions=function(e,t,n){let i=this._options;i.polygonHierarchy=q.getValueOrUndefined(t.hierarchy,n);let r=q.getValueOrUndefined(t.height,n),o=q.getValueOrDefault(t.heightReference,n,je.NONE),s=q.getValueOrDefault(t.extrudedHeightReference,n,je.NONE),a=q.getValueOrUndefined(t.extrudedHeight,n),c=q.getValueOrUndefined(t.perPositionHeight,n);r=Xn.getGeometryHeight(r,s);let l;c?(u(r)&&(r=void 0,Ot(wue)),o!==je.NONE&&c&&(r=void 0,Ot(Due))):(u(a)&&!u(r)&&(r=0),l=Xn.computeGeometryOffsetAttribute(r,o,a,s)),i.granularity=q.getValueOrUndefined(t.granularity,n),i.stRotation=q.getValueOrUndefined(t.stRotation,n),i.textureCoordinates=q.getValueOrUndefined(t.textureCoordinates,n),i.perPositionHeight=q.getValueOrUndefined(t.perPositionHeight,n),i.closeTop=q.getValueOrDefault(t.closeTop,n,!0),i.closeBottom=q.getValueOrDefault(t.closeBottom,n,!0),i.offsetAttribute=l,i.height=r,i.arcType=q.getValueOrDefault(t.arcType,n,Kt.GEODESIC),a=Xn.getGeometryExtrudedHeight(a,s),a===Xn.CLAMP_TO_GROUND&&(a=si.getMinimumMaximumHeights(vx.computeRectangle(i,Mue)).minimumTerrainHeight),i.extrudedHeight=a};var qR=xu;function EYe(e,t,n,i){let r=new dn;i.position&&(r.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e}));let o=t.length,s=e.length/3,a=(s-o*2)/(o*2),c=ui.triangulate(t),l=(a-1)*o*6+c.length*2,f=Ue.createTypedArray(s,l),d,p,g,m,A,x,C=o*2,T=0;for(d=0;d<a-1;d++){for(p=0;p<o-1;p++)g=p*2+d*o*2,x=g+C,m=g+1,A=m+C,f[T++]=m,f[T++]=g,f[T++]=A,f[T++]=A,f[T++]=g,f[T++]=x;g=o*2-2+d*o*2,m=g+1,A=m+C,x=g+C,f[T++]=m,f[T++]=g,f[T++]=A,f[T++]=A,f[T++]=g,f[T++]=x}if(i.st||i.tangent||i.bitangent){let v=new Float32Array(s*2),D=1/(a-1),M=1/n.height,O=n.height/2,B,L,_=0;for(d=0;d<a;d++){for(B=d*D,L=M*(t[0].y+O),v[_++]=B,v[_++]=L,p=1;p<o;p++)L=M*(t[p].y+O),v[_++]=B,v[_++]=L,v[_++]=B,v[_++]=L;L=M*(t[0].y+O),v[_++]=B,v[_++]=L}for(p=0;p<o;p++)B=0,L=M*(t[p].y+O),v[_++]=B,v[_++]=L;for(p=0;p<o;p++)B=(a-1)*D,L=M*(t[p].y+O),v[_++]=B,v[_++]=L;r.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:new Float32Array(v)})}let E=s-o*2;for(d=0;d<c.length;d+=3){let v=c[d]+E,D=c[d+1]+E,M=c[d+2]+E;f[T++]=v,f[T++]=D,f[T++]=M,f[T++]=M+o,f[T++]=D+o,f[T++]=v+o}let S=new ut({attributes:r,indices:f,boundingSphere:ae.fromVertices(e),primitiveType:Be.TRIANGLES});if(i.normal&&(S=Ln.computeNormal(S)),i.tangent||i.bitangent){try{S=Ln.computeTangentAndBitangent(S)}catch{Ot("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}i.tangent||(S.attributes.tangent=void 0),i.bitangent||(S.attributes.bitangent=void 0),i.st||(S.attributes.st=void 0)}return S}function XR(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=re.clone(y(e.ellipsoid,re.WGS84)),this._cornerType=y(e.cornerType,Ri.ROUNDED),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*H.packedLength,this.packedLength=i+re.packedLength+Pe.packedLength+2}XR.pack=function(e,t,n){n=y(n,0);let i,r=e._positions,o=r.length;for(t[n++]=o,i=0;i<o;++i,n+=h.packedLength)h.pack(r[i],t,n);let s=e._shape;for(o=s.length,t[n++]=o,i=0;i<o;++i,n+=H.packedLength)H.pack(s[i],t,n);return re.pack(e._ellipsoid,t,n),n+=re.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var Rue=re.clone(re.UNIT_SPHERE),Bue=new Pe,YR={polylinePositions:void 0,shapePositions:void 0,ellipsoid:Rue,vertexFormat:Bue,cornerType:void 0,granularity:void 0};XR.unpack=function(e,t,n){t=y(t,0);let i,r=e[t++],o=new Array(r);for(i=0;i<r;++i,t+=h.packedLength)o[i]=h.unpack(e,t);r=e[t++];let s=new Array(r);for(i=0;i<r;++i,t+=H.packedLength)s[i]=H.unpack(e,t);let a=re.unpack(e,t,Rue);t+=re.packedLength;let c=Pe.unpack(e,t,Bue);t+=Pe.packedLength;let l=e[t++],f=e[t];return u(n)?(n._positions=o,n._shape=s,n._ellipsoid=re.clone(a,n._ellipsoid),n._vertexFormat=Pe.clone(c,n._vertexFormat),n._cornerType=l,n._granularity=f,n):(YR.polylinePositions=o,YR.shapePositions=s,YR.cornerType=l,YR.granularity=f,new XR(YR))};var bYe=new Xe;XR.createGeometry=function(e){let t=e._positions,n=Er(t,h.equalsEpsilon),i=e._shape;if(i=Hd.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;ui.computeWindingOrder2D(i)===$o.CLOCKWISE&&i.reverse();let r=Xe.fromPoints(i,bYe),o=Hd.computePositions(n,i,r,e,!0);return EYe(o,i,r,e._vertexFormat)};var KR=XR;function SYe(e,t){let n=new dn;n.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e});let i=t.length,r=n.position.values.length/3,s=e.length/3/i,a=Ue.createTypedArray(r,2*i*(s+1)),c,l,f=0;c=0;let d=c*i;for(l=0;l<i-1;l++)a[f++]=l+d,a[f++]=l+d+1;for(a[f++]=i-1+d,a[f++]=d,c=s-1,d=c*i,l=0;l<i-1;l++)a[f++]=l+d,a[f++]=l+d+1;for(a[f++]=i-1+d,a[f++]=d,c=0;c<s-1;c++){let g=i*c,m=g+i;for(l=0;l<i;l++)a[f++]=l+g,a[f++]=l+m}return new ut({attributes:n,indices:Ue.createTypedArray(r,a),boundingSphere:ae.fromVertices(e),primitiveType:Be.LINES})}function ZR(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=re.clone(y(e.ellipsoid,re.WGS84)),this._cornerType=y(e.cornerType,Ri.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*H.packedLength,this.packedLength=i+re.packedLength+2}ZR.pack=function(e,t,n){n=y(n,0);let i,r=e._positions,o=r.length;for(t[n++]=o,i=0;i<o;++i,n+=h.packedLength)h.pack(r[i],t,n);let s=e._shape;for(o=s.length,t[n++]=o,i=0;i<o;++i,n+=H.packedLength)H.pack(s[i],t,n);return re.pack(e._ellipsoid,t,n),n+=re.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var Lue=re.clone(re.UNIT_SPHERE),JR={polylinePositions:void 0,shapePositions:void 0,ellipsoid:Lue,height:void 0,cornerType:void 0,granularity:void 0};ZR.unpack=function(e,t,n){t=y(t,0);let i,r=e[t++],o=new Array(r);for(i=0;i<r;++i,t+=h.packedLength)o[i]=h.unpack(e,t);r=e[t++];let s=new Array(r);for(i=0;i<r;++i,t+=H.packedLength)s[i]=H.unpack(e,t);let a=re.unpack(e,t,Lue);t+=re.packedLength;let c=e[t++],l=e[t];return u(n)?(n._positions=o,n._shape=s,n._ellipsoid=re.clone(a,n._ellipsoid),n._cornerType=c,n._granularity=l,n):(JR.polylinePositions=o,JR.shapePositions=s,JR.cornerType=c,JR.granularity=l,new ZR(JR))};var vYe=new Xe;ZR.createGeometry=function(e){let t=e._positions,n=Er(t,h.equalsEpsilon),i=e._shape;if(i=Hd.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;ui.computeWindingOrder2D(i)===$o.CLOCKWISE&&i.reverse();let r=Xe.fromPoints(i,vYe),o=Hd.computePositions(n,i,r,e,!1);return SYe(o,i)};var QR=ZR;var Nue=new z;function wYe(e){this.id=e,this.vertexFormat=void 0,this.polylinePositions=void 0,this.shapePositions=void 0,this.cornerType=void 0,this.granularity=void 0}function dm(e,t){ci.call(this,{entity:e,scene:t,geometryOptions:new wYe(e),geometryPropertyName:"polylineVolume",observedPropertyNames:["availability","polylineVolume"]}),this._onEntityPropertyChanged(e,"polylineVolume",e.polylineVolume,void 0)}u(Object.create)&&(dm.prototype=Object.create(ci.prototype),dm.prototype.constructor=dm);dm.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,r,o=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=Vn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Ut){let c;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,Nue)),u(c)||(c=z.WHITE),r=kt.fromColor(c),i={show:o,distanceDisplayCondition:a,color:r}}else i={show:o,distanceDisplayCondition:a};return new xt({id:t,geometry:new KR(this._options),attributes:i})};dm.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Nue),r=this._distanceDisplayConditionProperty.getValue(e);return new xt({id:t,geometry:new QR(this._options),attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(r)}})};dm.prototype._isHidden=function(e,t){return!u(t.positions)||!u(t.shape)||ci.prototype._isHidden.call(this,e,t)};dm.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!t.shape.isConstant||!q.isConstant(t.granularity)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.cornerType)};dm.prototype._setStaticOptions=function(e,t){let n=t.granularity,i=t.cornerType,r=this._options,o=this._materialProperty instanceof Ut;r.vertexFormat=o?rn.VERTEX_FORMAT:lr.MaterialSupport.TEXTURED.vertexFormat,r.polylinePositions=t.positions.getValue(ze.MINIMUM_VALUE,r.polylinePositions),r.shapePositions=t.shape.getValue(ze.MINIMUM_VALUE,r.shape),r.granularity=u(n)?n.getValue(ze.MINIMUM_VALUE):void 0,r.cornerType=u(i)?i.getValue(ze.MINIMUM_VALUE):void 0};dm.DynamicGeometryUpdater=db;function db(e,t,n){ai.call(this,e,t,n)}u(Object.create)&&(db.prototype=Object.create(ai.prototype),db.prototype.constructor=db);db.prototype._isHidden=function(e,t,n){let i=this._options;return!u(i.polylinePositions)||!u(i.shapePositions)||ai.prototype._isHidden.call(this,e,t,n)};db.prototype._setOptions=function(e,t,n){let i=this._options;i.polylinePositions=q.getValueOrUndefined(t.positions,n,i.polylinePositions),i.shapePositions=q.getValueOrUndefined(t.shape,n),i.granularity=q.getValueOrUndefined(t.granularity,n),i.cornerType=q.getValueOrUndefined(t.cornerType,n)};var $R=dm;var RW=new h,Vue=new h,kue=new h,zue=new h,Hue=new le,DYe=new H,IYe=new ae,PYe=new ae;function Gue(e,t){let n=new ut({attributes:new dn,primitiveType:Be.TRIANGLES});return n.attributes.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:t.positions}),e.normal&&(n.attributes.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.normals})),e.tangent&&(n.attributes.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.tangents})),e.bitangent&&(n.attributes.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.bitangents})),n}function OYe(e,t,n,i){let r=e.length,o=t.normal?new Float32Array(r):void 0,s=t.tangent?new Float32Array(r):void 0,a=t.bitangent?new Float32Array(r):void 0,c=0,l=zue,f=kue,d=Vue;if(t.normal||t.tangent||t.bitangent)for(let p=0;p<r;p+=3){let g=h.fromArray(e,p,RW),m=c+1,A=c+2;d=n.geodeticSurfaceNormal(g,d),(t.tangent||t.bitangent)&&(h.cross(h.UNIT_Z,d,f),Q.multiplyByVector(i,f,f),h.normalize(f,f),t.bitangent&&h.normalize(h.cross(d,f,l),l)),t.normal&&(o[c]=d.x,o[m]=d.y,o[A]=d.z),t.tangent&&(s[c]=f.x,s[m]=f.y,s[A]=f.z),t.bitangent&&(a[c]=l.x,a[m]=l.y,a[A]=l.z),c+=3}return Gue(t,{positions:e,normals:o,tangents:s,bitangents:a})}var BW=new h,Wue=new h;function MYe(e,t,n){let i=e.length,r=t.normal?new Float32Array(i):void 0,o=t.tangent?new Float32Array(i):void 0,s=t.bitangent?new Float32Array(i):void 0,a=0,c=0,l=0,f=!0,d=zue,p=kue,g=Vue;if(t.normal||t.tangent||t.bitangent)for(let m=0;m<i;m+=6){let A=h.fromArray(e,m,RW),x=h.fromArray(e,(m+6)%i,BW);if(f){let C=h.fromArray(e,(m+3)%i,Wue);h.subtract(x,A,x),h.subtract(C,A,C),g=h.normalize(h.cross(C,x,g),g),f=!1}h.equalsEpsilon(x,A,P.EPSILON10)&&(f=!0),(t.tangent||t.bitangent)&&(d=n.geodeticSurfaceNormal(A,d),t.tangent&&(p=h.normalize(h.cross(d,g,p),p))),t.normal&&(r[a++]=g.x,r[a++]=g.y,r[a++]=g.z,r[a++]=g.x,r[a++]=g.y,r[a++]=g.z),t.tangent&&(o[c++]=p.x,o[c++]=p.y,o[c++]=p.z,o[c++]=p.x,o[c++]=p.y,o[c++]=p.z),t.bitangent&&(s[l++]=d.x,s[l++]=d.y,s[l++]=d.z,s[l++]=d.x,s[l++]=d.y,s[l++]=d.z)}return Gue(t,{positions:e,normals:r,tangents:o,bitangents:s})}function jue(e,t){let n=e._vertexFormat,i=e._ellipsoid,r=t.height,o=t.width,s=t.northCap,a=t.southCap,c=0,l=r,f=r,d=0;s&&(c=1,f-=1,d+=1),a&&(l-=1,f-=1,d+=1),d+=o*f;let p=n.position?new Float64Array(d*3):void 0,g=n.st?new Float32Array(d*2):void 0,m=0,A=0,x=RW,C=DYe,T=Number.MAX_VALUE,E=Number.MAX_VALUE,S=-Number.MAX_VALUE,v=-Number.MAX_VALUE;for(let b=c;b<l;++b)for(let w=0;w<o;++w)ds.computePosition(t,i,n.st,b,w,x,C),p[m++]=x.x,p[m++]=x.y,p[m++]=x.z,n.st&&(g[A++]=C.x,g[A++]=C.y,T=Math.min(T,C.x),E=Math.min(E,C.y),S=Math.max(S,C.x),v=Math.max(v,C.y));if(s&&(ds.computePosition(t,i,n.st,0,0,x,C),p[m++]=x.x,p[m++]=x.y,p[m++]=x.z,n.st&&(g[A++]=C.x,g[A++]=C.y,T=C.x,E=C.y,S=C.x,v=C.y)),a&&(ds.computePosition(t,i,n.st,r-1,0,x,C),p[m++]=x.x,p[m++]=x.y,p[m]=x.z,n.st&&(g[A++]=C.x,g[A]=C.y,T=Math.min(T,C.x),E=Math.min(E,C.y),S=Math.max(S,C.x),v=Math.max(v,C.y))),n.st&&(T<0||E<0||S>1||v>1))for(let b=0;b<g.length;b+=2)g[b]=(g[b]-T)/(S-T),g[b+1]=(g[b+1]-E)/(v-E);let D=OYe(p,n,i,t.tangentRotationMatrix),M=6*(o-1)*(f-1);s&&(M+=3*(o-1)),a&&(M+=3*(o-1));let O=Ue.createTypedArray(d,M),B=0,L=0,_;for(_=0;_<f-1;++_){for(let b=0;b<o-1;++b){let w=B,I=w+o,R=I+1,F=w+1;O[L++]=w,O[L++]=I,O[L++]=F,O[L++]=F,O[L++]=I,O[L++]=R,++B}++B}if(s||a){let b=d-1,w=d-1;s&&a&&(b=d-2);let I,R;if(B=0,s)for(_=0;_<o-1;_++)I=B,R=I+1,O[L++]=b,O[L++]=I,O[L++]=R,++B;if(a)for(B=(f-1)*o,_=0;_<o-1;_++)I=B,R=I+1,O[L++]=I,O[L++]=w,O[L++]=R,++B}return D.indices=O,n.st&&(D.attributes.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),D}function hb(e,t,n,i,r){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n+2],e[t++]=r[n],e[t++]=r[n+1],e[t]=r[n+2],e}function mb(e,t,n,i){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n],e[t]=i[n+1],e}var LW=new Pe;function RYe(e,t){let n=e._shadowVolume,i=e._offsetAttribute,r=e._vertexFormat,o=e._extrudedHeight,s=e._surfaceHeight,a=e._ellipsoid,c=t.height,l=t.width,f;if(n){let ft=Pe.clone(r,LW);ft.normal=!0,e._vertexFormat=ft}let d=jue(e,t);n&&(e._vertexFormat=r);let p=ui.scaleToGeodeticHeight(d.attributes.position.values,s,a,!1);p=new Float64Array(p);let g=p.length,m=g*2,A=new Float64Array(m);A.set(p);let x=ui.scaleToGeodeticHeight(d.attributes.position.values,o,a);A.set(x,g),d.attributes.position.values=A;let C=r.normal?new Float32Array(m):void 0,T=r.tangent?new Float32Array(m):void 0,E=r.bitangent?new Float32Array(m):void 0,S=r.st?new Float32Array(m/3*2):void 0,v,D;if(r.normal){for(D=d.attributes.normal.values,C.set(D),f=0;f<g;f++)D[f]=-D[f];C.set(D,g),d.attributes.normal.values=C}if(n){D=d.attributes.normal.values,r.normal||(d.attributes.normal=void 0);let ft=new Float32Array(m);for(f=0;f<g;f++)D[f]=-D[f];ft.set(D,g),d.attributes.extrudeDirection=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:ft})}let M,O=u(i);if(O){let ft=g/3*2,pn=new Uint8Array(ft);i===nn.TOP?pn=pn.fill(1,0,ft/2):(M=i===nn.NONE?0:1,pn=pn.fill(M)),d.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:pn})}if(r.tangent){let ft=d.attributes.tangent.values;for(T.set(ft),f=0;f<g;f++)ft[f]=-ft[f];T.set(ft,g),d.attributes.tangent.values=T}if(r.bitangent){let ft=d.attributes.bitangent.values;E.set(ft),E.set(ft,g),d.attributes.bitangent.values=E}r.st&&(v=d.attributes.st.values,S.set(v),S.set(v,g/3*2),d.attributes.st.values=S);let B=d.indices,L=B.length,_=g/3,b=Ue.createTypedArray(m/3,L*2);for(b.set(B),f=0;f<L;f+=3)b[f+L]=B[f+2]+_,b[f+1+L]=B[f+1]+_,b[f+2+L]=B[f]+_;d.indices=b;let w=t.northCap,I=t.southCap,R=c,F=2,k=0,V=4,G=4;w&&(F-=1,R-=1,k+=1,V-=2,G-=1),I&&(F-=1,R-=1,k+=1,V-=2,G-=1),k+=F*l+2*R-V;let U=(k+G)*2,Y=new Float64Array(U*3),W=n?new Float32Array(U*3):void 0,Z=O?new Uint8Array(U):void 0,j=r.st?new Float32Array(U*2):void 0,K=i===nn.TOP;O&&!K&&(M=i===nn.ALL?1:0,Z=Z.fill(M));let J=0,_e=0,xe=0,oe=0,Ae=l*R,he;for(f=0;f<Ae;f+=l)he=f*3,Y=hb(Y,J,he,p,x),J+=6,r.st&&(j=mb(j,_e,f*2,v),_e+=4),n&&(xe+=3,W[xe++]=D[he],W[xe++]=D[he+1],W[xe++]=D[he+2]),K&&(Z[oe++]=1,oe+=1);if(I){let ft=w?Ae+1:Ae;for(he=ft*3,f=0;f<2;f++)Y=hb(Y,J,he,p,x),J+=6,r.st&&(j=mb(j,_e,ft*2,v),_e+=4),n&&(xe+=3,W[xe++]=D[he],W[xe++]=D[he+1],W[xe++]=D[he+2]),K&&(Z[oe++]=1,oe+=1)}else for(f=Ae-l;f<Ae;f++)he=f*3,Y=hb(Y,J,he,p,x),J+=6,r.st&&(j=mb(j,_e,f*2,v),_e+=4),n&&(xe+=3,W[xe++]=D[he],W[xe++]=D[he+1],W[xe++]=D[he+2]),K&&(Z[oe++]=1,oe+=1);for(f=Ae-1;f>0;f-=l)he=f*3,Y=hb(Y,J,he,p,x),J+=6,r.st&&(j=mb(j,_e,f*2,v),_e+=4),n&&(xe+=3,W[xe++]=D[he],W[xe++]=D[he+1],W[xe++]=D[he+2]),K&&(Z[oe++]=1,oe+=1);if(w){let ft=Ae;for(he=ft*3,f=0;f<2;f++)Y=hb(Y,J,he,p,x),J+=6,r.st&&(j=mb(j,_e,ft*2,v),_e+=4),n&&(xe+=3,W[xe++]=D[he],W[xe++]=D[he+1],W[xe++]=D[he+2]),K&&(Z[oe++]=1,oe+=1)}else for(f=l-1;f>=0;f--)he=f*3,Y=hb(Y,J,he,p,x),J+=6,r.st&&(j=mb(j,_e,f*2,v),_e+=4),n&&(xe+=3,W[xe++]=D[he],W[xe++]=D[he+1],W[xe++]=D[he+2]),K&&(Z[oe++]=1,oe+=1);let Se=MYe(Y,r,a);r.st&&(Se.attributes.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:j})),n&&(Se.attributes.extrudeDirection=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:W})),O&&(Se.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:Z}));let Ie=Ue.createTypedArray(U,k*6),Ne,qe,pt,Gt;g=Y.length/3;let fn=0;for(f=0;f<g-1;f+=2){Ne=f,Gt=(Ne+2)%g;let ft=h.fromArray(Y,Ne*3,BW),pn=h.fromArray(Y,Gt*3,Wue);h.equalsEpsilon(ft,pn,P.EPSILON10)||(qe=(Ne+1)%g,pt=(qe+2)%g,Ie[fn++]=Ne,Ie[fn++]=qe,Ie[fn++]=Gt,Ie[fn++]=Gt,Ie[fn++]=qe,Ie[fn++]=pt)}return Se.indices=Ie,Se=Ln.combineInstances([new xt({geometry:d}),new xt({geometry:Se})]),Se[0]}var BYe=[new h,new h,new h,new h],que=new me,LYe=new me;function NW(e,t,n,i,r){if(n===0)return le.clone(e,r);let o=ds.computeOptions(e,t,n,0,Hue,que),s=o.height,a=o.width,c=BYe;return ds.computePosition(o,i,!1,0,0,c[0]),ds.computePosition(o,i,!1,0,a-1,c[1]),ds.computePosition(o,i,!1,s-1,0,c[2]),ds.computePosition(o,i,!1,s-1,a-1,c[3]),le.fromCartesianArray(c,i,r)}function hm(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.height,0),i=y(e.extrudedHeight,n);this._rectangle=le.clone(t),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=re.clone(y(e.ellipsoid,re.WGS84)),this._surfaceHeight=Math.max(n,i),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._extrudedHeight=Math.min(n,i),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createRectangleGeometry",this._offsetAttribute=e.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}hm.packedLength=le.packedLength+re.packedLength+Pe.packedLength+7;hm.pack=function(e,t,n){return n=y(n,0),le.pack(e._rectangle,t,n),n+=le.packedLength,re.pack(e._ellipsoid,t,n),n+=re.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var Yue=new le,Xue=re.clone(re.UNIT_SPHERE),Ey={rectangle:Yue,ellipsoid:Xue,vertexFormat:LW,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};hm.unpack=function(e,t,n){t=y(t,0);let i=le.unpack(e,t,Yue);t+=le.packedLength;let r=re.unpack(e,t,Xue);t+=re.packedLength;let o=Pe.unpack(e,t,LW);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],l=e[t++],f=e[t++],d=e[t++]===1,p=e[t];return u(n)?(n._rectangle=le.clone(i,n._rectangle),n._ellipsoid=re.clone(r,n._ellipsoid),n._vertexFormat=Pe.clone(o,n._vertexFormat),n._granularity=s,n._surfaceHeight=a,n._rotation=c,n._stRotation=l,n._extrudedHeight=f,n._shadowVolume=d,n._offsetAttribute=p===-1?void 0:p,n):(Ey.granularity=s,Ey.height=a,Ey.rotation=c,Ey.stRotation=l,Ey.extrudedHeight=f,Ey.shadowVolume=d,Ey.offsetAttribute=p===-1?void 0:p,new hm(Ey))};hm.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.rectangle,i=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.ellipsoid,re.WGS84),o=y(e.rotation,0);return NW(n,i,o,r,t)};var NYe=new Q,Fue=new Le,FYe=new me;hm.createGeometry=function(e){if(P.equalsEpsilon(e._rectangle.north,e._rectangle.south,P.EPSILON10)||P.equalsEpsilon(e._rectangle.east,e._rectangle.west,P.EPSILON10))return;let t=e._rectangle,n=e._ellipsoid,i=e._rotation,r=e._stRotation,o=e._vertexFormat,s=ds.computeOptions(t,e._granularity,i,r,Hue,que,LYe),a=NYe;if(r!==0||i!==0){let g=le.center(t,FYe),m=n.geodeticSurfaceNormalCartographic(g,BW);Le.fromAxisAngle(m,-r,Fue),Q.fromQuaternion(Fue,a)}else Q.clone(Q.IDENTITY,a);let c=e._surfaceHeight,l=e._extrudedHeight,f=!P.equalsEpsilon(c,l,0,P.EPSILON2);s.lonScalar=1/e._rectangle.width,s.latScalar=1/e._rectangle.height,s.tangentRotationMatrix=a;let d,p;if(t=e._rectangle,f){d=RYe(e,s);let g=ae.fromRectangle3D(t,n,c,PYe),m=ae.fromRectangle3D(t,n,l,IYe);p=ae.union(g,m)}else{if(d=jue(e,s),d.attributes.position.values=ui.scaleToGeodeticHeight(d.attributes.position.values,c,n,!1),u(e._offsetAttribute)){let g=d.attributes.position.values.length,m=e._offsetAttribute===nn.NONE?0:1,A=new Uint8Array(g/3).fill(m);d.attributes.applyOffset=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}p=ae.fromRectangle3D(t,n,c)}return o.position||delete d.attributes.position,new ut({attributes:d.attributes,indices:d.indices,primitiveType:d.primitiveType,boundingSphere:p,offsetAttribute:e._offsetAttribute})};hm.createShadowVolume=function(e,t,n){let i=e._granularity,r=e._ellipsoid,o=t(i,r),s=n(i,r);return new hm({rectangle:e._rectangle,rotation:e._rotation,ellipsoid:r,stRotation:e._stRotation,granularity:i,extrudedHeight:s,height:o,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};var Uue=new le,UYe=[new H,new H,new H],VYe=new er,kYe=new me;function zYe(e){if(e._stRotation===0)return[0,0,0,1,1,0];let t=le.clone(e._rectangle,Uue),n=e._granularity,i=e._ellipsoid,r=e._rotation-e._stRotation,o=NW(t,n,r,i,Uue),s=UYe;s[0].x=o.west,s[0].y=o.south,s[1].x=o.west,s[1].y=o.north,s[2].x=o.east,s[2].y=o.south;let a=e.rectangle,c=er.fromRotation(e._stRotation,VYe),l=le.center(a,kYe);for(let m=0;m<3;++m){let A=s[m];A.x-=l.longitude,A.y-=l.latitude,er.multiplyByVector(c,A,A),A.x+=l.longitude,A.y+=l.latitude,A.x=(A.x-a.west)/a.width,A.y=(A.y-a.south)/a.height}let f=s[0],d=s[1],p=s[2],g=new Array(6);return H.pack(f,g),H.pack(d,g,2),H.pack(p,g,4),g}Object.defineProperties(hm.prototype,{rectangle:{get:function(){return u(this._rotatedRectangle)||(this._rotatedRectangle=NW(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return u(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=zYe(this)),this._textureCoordinateRotationPoints}}});var Dx=hm;var Kue=new z,Jue=h.ZERO,Zue=new h,Que=new le,HYe=new le,GYe=new me;function WYe(e){this.id=e,this.vertexFormat=void 0,this.rectangle=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.rotation=void 0,this.offsetAttribute=void 0}function Qd(e,t){Xn.call(this,{entity:e,scene:t,geometryOptions:new WYe(e),geometryPropertyName:"rectangle",observedPropertyNames:["availability","rectangle"]}),this._onEntityPropertyChanged(e,"rectangle",e.rectangle,void 0)}u(Object.create)&&(Qd.prototype=Object.create(Xn.prototype),Qd.prototype.constructor=Qd);Qd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Ut){let r;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(r=this._materialProperty.color.getValue(e,Kue)),u(r)||(r=z.WHITE),i.color=kt.fromColor(r)}return u(this._options.offsetAttribute)&&(i.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Jue,Zue))),new xt({id:t,geometry:new Dx(this._options),attributes:i})};Qd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Kue),r=this._distanceDisplayConditionProperty.getValue(e),o={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(r),offset:void 0};return u(this._options.offsetAttribute)&&(o.offset=Ki.fromCartesian3(q.getValueOrDefault(this._terrainOffsetProperty,e,Jue,Zue))),new xt({id:t,geometry:new ex(this._options),attributes:o})};Qd.prototype._computeCenter=function(e,t){let n=q.getValueOrUndefined(this._entity.rectangle.coordinates,e,HYe);if(!u(n))return;let i=le.center(n,GYe);return me.toCartesian(i,re.WGS84,t)};Qd.prototype._isHidden=function(e,t){return!u(t.coordinates)||ci.prototype._isHidden.call(this,e,t)};Qd.prototype._isDynamic=function(e,t){return!t.coordinates.isConstant||!q.isConstant(t.height)||!q.isConstant(t.extrudedHeight)||!q.isConstant(t.granularity)||!q.isConstant(t.stRotation)||!q.isConstant(t.rotation)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.zIndex)||this._onTerrain&&!q.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};Qd.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Ut,i=q.getValueOrUndefined(t.height,ze.MINIMUM_VALUE),r=q.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,je.NONE),o=q.getValueOrUndefined(t.extrudedHeight,ze.MINIMUM_VALUE),s=q.getValueOrDefault(t.extrudedHeightReference,ze.MINIMUM_VALUE,je.NONE);u(o)&&!u(i)&&(i=0);let a=this._options;a.vertexFormat=n?rn.VERTEX_FORMAT:lr.MaterialSupport.TEXTURED.vertexFormat,a.rectangle=t.coordinates.getValue(ze.MINIMUM_VALUE,a.rectangle),a.granularity=q.getValueOrUndefined(t.granularity,ze.MINIMUM_VALUE),a.stRotation=q.getValueOrUndefined(t.stRotation,ze.MINIMUM_VALUE),a.rotation=q.getValueOrUndefined(t.rotation,ze.MINIMUM_VALUE),a.offsetAttribute=Xn.computeGeometryOffsetAttribute(i,r,o,s),a.height=Xn.getGeometryHeight(i,r),o=Xn.getGeometryExtrudedHeight(o,s),o===Xn.CLAMP_TO_GROUND&&(o=si.getMinimumMaximumHeights(Dx.computeRectangle(a,Que)).minimumTerrainHeight),a.extrudedHeight=o};Qd.DynamicGeometryUpdater=pb;function pb(e,t,n){ai.call(this,e,t,n)}u(Object.create)&&(pb.prototype=Object.create(ai.prototype),pb.prototype.constructor=pb);pb.prototype._isHidden=function(e,t,n){return!u(this._options.rectangle)||ai.prototype._isHidden.call(this,e,t,n)};pb.prototype._setOptions=function(e,t,n){let i=this._options,r=q.getValueOrUndefined(t.height,n),o=q.getValueOrDefault(t.heightReference,n,je.NONE),s=q.getValueOrUndefined(t.extrudedHeight,n),a=q.getValueOrDefault(t.extrudedHeightReference,n,je.NONE);u(s)&&!u(r)&&(r=0),i.rectangle=q.getValueOrUndefined(t.coordinates,n,i.rectangle),i.granularity=q.getValueOrUndefined(t.granularity,n),i.stRotation=q.getValueOrUndefined(t.stRotation,n),i.rotation=q.getValueOrUndefined(t.rotation,n),i.offsetAttribute=Xn.computeGeometryOffsetAttribute(r,o,s,a),i.height=Xn.getGeometryHeight(r,o),s=Xn.getGeometryExtrudedHeight(s,a),s===Xn.CLAMP_TO_GROUND&&(s=si.getMinimumMaximumHeights(Dx.computeRectangle(i,Que)).minimumTerrainHeight),i.extrudedHeight=s};var eB=Qd;var $ue=new z,jYe=new vt,qYe=new vt,YYe=h.ZERO,XYe=new h;function $d(e,t,n,i,r,o,s){this.translucent=t,this.appearanceType=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=r,this.depthFailMaterial=void 0,this.closed=o,this.shadows=s,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Ct,this.updaters=new Ct,this.updatersWithAttributes=new Ct,this.attributes=new Ct,this.subscriptions=new Ct,this.showsUpdated=new Ct,this.itemsToRemove=[],this.invalidated=!1;let a;u(r)&&(a=r.definitionChanged.addEventListener($d.prototype.onMaterialChanged,this)),this.removeMaterialSubscription=a}$d.prototype.onMaterialChanged=function(){this.invalidated=!0};$d.prototype.isMaterial=function(e){let t=this.depthFailMaterialProperty,n=e.depthFailMaterialProperty;return n===t?!0:u(t)?t.equals(n):!1};$d.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!q.isConstant(e.distanceDisplayConditionProperty)||!q.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(r,o,s,a){o==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};$d.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return u(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};$d.prototype.update=function(e){let t=!0,n=0,i=this.primitive,r=this.primitives,o;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0){u(i)&&(u(this.oldPrimitive)?r.remove(i):this.oldPrimitive=i);let c;u(this.depthFailAppearanceType)&&(u(this.depthFailMaterialProperty)&&(this.depthFailMaterial=Xr.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial)),c=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})),i=new bn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new this.appearanceType({translucent:this.translucent,closed:this.closed}),depthFailAppearance:c,shadows:this.shadows}),r.add(i),t=!1}else{u(i)&&(r.remove(i),i=void 0);let c=this.oldPrimitive;u(c)&&(r.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(u(i)&&i.ready){i.show=!0,u(this.oldPrimitive)&&(r.remove(this.oldPrimitive),this.oldPrimitive=void 0),u(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Ut)&&(this.depthFailMaterial=Xr.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(o=0;o<a;o++){let l=s[o],f=this.geometry.get(l.id),d=this.attributes.get(f.id.id);if(u(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!l.fillMaterialProperty.isConstant||c){let x=l.fillMaterialProperty.color,C=q.getValueOrDefault(x,e,z.WHITE,$ue);z.equals(d._lastColor,C)||(d._lastColor=z.clone(C,d._lastColor),d.color=kt.toValue(C,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=l))}if(u(this.depthFailAppearanceType)&&l.depthFailMaterialProperty instanceof Ut&&(!l.depthFailMaterialProperty.isConstant||c)){let x=l.depthFailMaterialProperty.color,C=q.getValueOrDefault(x,e,z.WHITE,$ue);z.equals(d._lastDepthFailColor,C)||(d._lastDepthFailColor=z.clone(C,d._lastDepthFailColor),d.depthFailColor=kt.toValue(C,d.depthFailColor))}let p=l.entity.isShowing&&(l.hasConstantFill||l.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=l.distanceDisplayConditionProperty;if(!q.isConstant(m)){let x=q.getValueOrDefault(m,e,qYe,jYe);vt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=vt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Vn.toValue(x,d.distanceDisplayCondition))}let A=l.terrainOffsetProperty;if(!q.isConstant(A)){let x=q.getValueOrDefault(A,e,YYe,XYe);h.equals(x,d._lastOffset)||(d._lastOffset=h.clone(x,d._lastOffset),d.offset=Ki.toValue(x,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else u(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};$d.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let r=t[i],o=this.geometry.get(r.id),s=this.attributes.get(o.id.id);u(s)||(s=e.getGeometryInstanceAttributes(o.id),this.attributes.set(o.id.id,s));let a=r.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=gn.toValue(a,s.show),o.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};$d.prototype.contains=function(e){return this.updaters.contains(e.id)};$d.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return lt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?lt.FAILED:(i.boundingSphere.clone(t),lt.DONE)};$d.prototype.destroy=function(){let e=this.primitive,t=this.primitives;u(e)&&t.remove(e);let n=this.oldPrimitive;u(n)&&t.remove(n),u(this.removeMaterialSubscription)&&this.removeMaterialSubscription()};function _b(e,t,n,i,r){this._solidItems=[],this._translucentItems=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=r}_b.prototype.add=function(e,t){let n,i,r=t.createFillGeometryInstance(e);r.attributes.color.value[3]===255?(n=this._solidItems,i=!1):(n=this._translucentItems,i=!0);let o=n.length;for(let a=0;a<o;a++){let c=n[a];if(c.isMaterial(t)){c.add(t,r);return}}let s=new $d(this._primitives,i,this._appearanceType,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);s.add(t,r),n.push(s)};function efe(e,t){let n=e.length;for(let i=n-1;i>=0;i--){let r=e[i];if(r.remove(t))return r.updaters.length===0&&(e.splice(i,1),r.destroy()),!0}return!1}_b.prototype.remove=function(e){efe(this._solidItems,e)||efe(this._translucentItems,e)};function tfe(e,t,n){let i=!1,r=t.length;for(let o=0;o<r;++o){let s=t[o],a=s.itemsToRemove,c=a.length;if(c>0)for(o=0;o<c;o++){let l=a[o];s.remove(l),e.add(n,l),i=!0}}return i}function dk(e,t,n,i){let r=t.length,o;for(o=r-1;o>=0;o--){let s=t[o];if(s.invalidated){t.splice(o,1);let a=s.updaters.values,c=a.length;for(let l=0;l<c;l++)e.add(n,a[l]);s.destroy()}}for(r=t.length,o=0;o<r;++o)i=t[o].update(n)&&i;return i}_b.prototype.update=function(e){let t=dk(this,this._solidItems,e,!0);t=dk(this,this._translucentItems,e,t)&&t;let n=tfe(this,this._solidItems,e),i=tfe(this,this._translucentItems,e);return(n||i)&&(t=dk(this,this._solidItems,e,t)&&t,t=dk(this,this._translucentItems,e,t)&&t),t};function nfe(e,t,n){let i=e.length;for(let r=0;r<i;r++){let o=e[r];if(o.contains(t))return o.getBoundingSphere(t,n)}return lt.FAILED}_b.prototype.getBoundingSphere=function(e,t){let n=nfe(this._solidItems,e,t);return n===lt.FAILED?nfe(this._translucentItems,e,t):n};function ife(e){let t=e.length;for(let n=0;n<t;n++)e[n].destroy();e.length=0}_b.prototype.removeAllPrimitives=function(){ife(this._solidItems),ife(this._translucentItems)};var Pf=_b;var KYe=new vt,JYe=new vt,ZYe=h.ZERO,QYe=new h;function eh(e,t,n,i,r,o,s){this.primitives=e,this.appearanceType=t,this.materialProperty=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=r,this.closed=o,this.shadows=s,this.updaters=new Ct,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Ct,this.material=void 0,this.depthFailMaterial=void 0,this.updatersWithAttributes=new Ct,this.attributes=new Ct,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(eh.prototype.onMaterialChanged,this),this.subscriptions=new Ct,this.showsUpdated=new Ct}eh.prototype.onMaterialChanged=function(){this.invalidated=!0};eh.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty,i=this.depthFailMaterialProperty,r=e.depthFailMaterialProperty;if(n===t&&r===i)return!0;let o=u(t)&&t.equals(n);return o=(!u(i)&&!u(r)||u(i)&&i.equals(r))&&o,o};eh.prototype.add=function(e,t){let n=t.id;if(this.updaters.set(n,t),this.geometry.set(n,t.createFillGeometryInstance(e)),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!q.isConstant(t.distanceDisplayConditionProperty)||!q.isConstant(t.terrainOffsetProperty))this.updatersWithAttributes.set(n,t);else{let i=this;this.subscriptions.set(n,t.entity.definitionChanged.addEventListener(function(r,o,s,a){o==="isShowing"&&i.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};eh.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return u(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};var $Ye=new z;eh.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,r=this.geometry.values,o;if(this.createPrimitive){if(r.length>0){u(n)&&(u(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=Xr.getValue(e,this.materialProperty,this.material);let a;u(this.depthFailMaterialProperty)&&(this.depthFailMaterial=Xr.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),a=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})),n=new bn({show:!1,asynchronous:!0,geometryInstances:r.slice(),appearance:new this.appearanceType({material:this.material,translucent:this.material.isTranslucent(),closed:this.closed}),depthFailAppearance:a,shadows:this.shadows}),i.add(n),t=!1}else{u(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;u(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(u(n)&&n.ready){n.show=!0,u(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=Xr.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,u(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Ut)&&(this.depthFailMaterial=Xr.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length;for(o=0;o<a;o++){let c=s[o],l=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(u(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),u(this.depthFailAppearanceType)&&this.depthFailMaterialProperty instanceof Ut&&!c.depthFailMaterialProperty.isConstant){let x=c.depthFailMaterialProperty.color,C=q.getValueOrDefault(x,e,z.WHITE,$Ye);z.equals(d._lastDepthFailColor,C)||(d._lastDepthFailColor=z.clone(C,d._lastDepthFailColor),d.depthFailColor=kt.toValue(C,d.depthFailColor))}let p=l.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!q.isConstant(m)){let x=q.getValueOrDefault(m,e,JYe,KYe);vt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=vt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Vn.toValue(x,d.distanceDisplayCondition))}let A=c.terrainOffsetProperty;if(!q.isConstant(A)){let x=q.getValueOrDefault(A,e,ZYe,QYe);h.equals(x,d._lastOffset)||(d._lastOffset=h.clone(x,d._lastOffset),d.offset=Ki.toValue(x,d.offset))}}this.updateShows(n)}else u(n)&&!n.ready&&(t=!1);return t};eh.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let r=t[i],o=r.entity,s=this.geometry.get(r.id),a=this.attributes.get(s.id.id);u(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=o.isShowing,l=a.show[0]===1;c!==l&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};eh.prototype.contains=function(e){return this.updaters.contains(e.id)};eh.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return lt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?lt.FAILED:(i.boundingSphere.clone(t),lt.DONE)};eh.prototype.destroy=function(){let e=this.primitive,t=this.primitives;u(e)&&t.remove(e);let n=this.oldPrimitive;u(n)&&t.remove(n),this.removeMaterialSubscription()};function gb(e,t,n,i,r){this._items=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=r}gb.prototype.add=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let s=n[o];if(s.isMaterial(t)){s.add(e,t);return}}let r=new eh(this._primitives,this._appearanceType,t.fillMaterialProperty,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);r.add(e,t),n.push(r)};gb.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let r=t[i];if(r.remove(e)){r.updaters.length===0&&(t.splice(i,1),r.destroy());break}}};gb.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let o=n[t];if(o.invalidated){n.splice(t,1);let s=o.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);o.destroy()}}let r=!0;for(t=0;t<n.length;t++)r=n[t].update(e)&&r;return r};gb.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let r=0;r<i;r++){let o=n[r];if(o.contains(e))return o.getBoundingSphere(e,t)}return lt.FAILED};gb.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var Of=gb;var ofe=Yi(rfe(),1);function hk(){this._tree=new ofe.default}function Ix(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.id=""}Ix.fromRectangleAndId=function(e,t,n){return n.minX=t.west,n.minY=t.south,n.maxX=t.east,n.maxY=t.north,n.id=e,n};hk.prototype.insert=function(e,t){let n=Ix.fromRectangleAndId(e,t,new Ix);this._tree.insert(n)};function eXe(e,t){return e.id===t.id}var tXe=new Ix;hk.prototype.remove=function(e,t){let n=Ix.fromRectangleAndId(e,t,tXe);this._tree.remove(n,eXe)};var nXe=new Ix;hk.prototype.collides=function(e){let t=Ix.fromRectangleAndId("",e,nXe);return this._tree.collides(t)};var Px=hk;var iXe=new z,rXe=new vt,oXe=new vt;function b_(e,t,n,i){this.primitives=e,this.zIndex=i,this.classificationType=t,this.color=n,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Ct,this.updaters=new Ct,this.updatersWithAttributes=new Ct,this.attributes=new Ct,this.subscriptions=new Ct,this.showsUpdated=new Ct,this.itemsToRemove=[],this.isDirty=!1,this.rectangleCollisionCheck=new Px}b_.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};b_.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),this.rectangleCollisionCheck.insert(n,t.geometry.rectangle),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!q.isConstant(e.distanceDisplayConditionProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(r,o,s,a){o==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};b_.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return u(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};b_.prototype.update=function(e){let t=!0,n=0,i=this.primitive,r=this.primitives,o;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)u(i)&&(u(this.oldPrimitive)?r.remove(i):this.oldPrimitive=i),i=new Pc({show:!1,asynchronous:!0,geometryInstances:s.slice(),classificationType:this.classificationType}),r.add(i,this.zIndex),t=!1;else{u(i)&&(r.remove(i),i=void 0);let c=this.oldPrimitive;u(c)&&(r.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(u(i)&&i.ready){i.show=!0,u(this.oldPrimitive)&&(r.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(o=0;o<a;o++){let l=s[o],f=this.geometry.get(l.id),d=this.attributes.get(f.id.id);if(u(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!l.fillMaterialProperty.isConstant||c){let A=l.fillMaterialProperty.color,x=q.getValueOrDefault(A,e,z.WHITE,iXe);z.equals(d._lastColor,x)||(d._lastColor=z.clone(x,d._lastColor),d.color=kt.toValue(x,d.color))}let p=l.entity.isShowing&&(l.hasConstantFill||l.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=l.distanceDisplayConditionProperty;if(!q.isConstant(m)){let A=q.getValueOrDefault(m,e,oXe,rXe);vt.equals(A,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=vt.clone(A,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Vn.toValue(A,d.distanceDisplayCondition))}}this.updateShows(i),this.waitingOnCreate=!1}else u(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};b_.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let r=t[i],o=this.geometry.get(r.id),s=this.attributes.get(o.id.id);u(s)||(s=e.getGeometryInstanceAttributes(o.id),this.attributes.set(o.id.id,s));let a=r.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=gn.toValue(a,s.show),o.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};b_.prototype.contains=function(e){return this.updaters.contains(e.id)};b_.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return lt.PENDING;let i=n.getBoundingSphere(e.entity);return u(i)?(i.clone(t),lt.DONE):lt.FAILED};b_.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;u(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;u(n)&&(e.remove(n),this.oldPrimitive=void 0)};function yb(e,t){this._batches=[],this._primitives=e,this._classificationType=t}yb.prototype.add=function(e,t){let n=t.createFillGeometryInstance(e),i=this._batches,r=q.getValueOrDefault(t.zIndex,0),o,s=i.length;for(let a=0;a<s;++a){let c=i[a];if(c.zIndex===r&&!c.overlapping(n.geometry.rectangle)){o=c;break}}return u(o)||(o=new b_(this._primitives,this._classificationType,n.attributes.color.value,r),i.push(o)),o.add(t,n),o};yb.prototype.remove=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;++i)if(t[i].remove(e))return};yb.prototype.update=function(e){let t,n,i=!0,r=this._batches,o=r.length;for(t=0;t<o;++t)i=r[t].update(e)&&i;for(t=0;t<o;++t){let s=r[t],a=s.itemsToRemove,c=a.length;for(let l=0;l<c;l++){n=a[l],s.remove(n);let f=this.add(e,n);s.isDirty=!0,f.isDirty=!0}}for(t=o-1;t>=0;--t){let s=r[t];s.isDirty&&(i=r[t].update(e)&&i,s.isDirty=!1),s.geometry.length===0&&r.splice(t,1)}return i};yb.prototype.getBoundingSphere=function(e,t){let n=this._batches,i=n.length;for(let r=0;r<i;++r){let o=n[r];if(o.contains(e))return o.getBoundingSphere(e,t)}return lt.FAILED};yb.prototype.removeAllPrimitives=function(){let e=this._batches,t=e.length;for(let n=0;n<t;++n)e[n].removeAllPrimitives()};var Ab=yb;var sXe=new vt,aXe=new vt;function Mf(e,t,n,i,r,o){this.primitives=e,this.classificationType=t,this.appearanceType=n,this.materialProperty=i,this.updaters=new Ct,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Ct,this.material=void 0,this.updatersWithAttributes=new Ct,this.attributes=new Ct,this.invalidated=!1,this.removeMaterialSubscription=i.definitionChanged.addEventListener(Mf.prototype.onMaterialChanged,this),this.subscriptions=new Ct,this.showsUpdated=new Ct,this.usingSphericalTextureCoordinates=r,this.zIndex=o,this.rectangleCollisionCheck=new Px}Mf.prototype.onMaterialChanged=function(){this.invalidated=!0};Mf.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};Mf.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Ut&&t instanceof Ut?!0:u(t)&&t.equals(n)};Mf.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),this.rectangleCollisionCheck.insert(i,n.geometry.rectangle),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!q.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let r=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(o,s,a,c){s==="isShowing"&&r.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};Mf.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return u(i)&&(i(),this.subscriptions.remove(t)),!0}return!1};Mf.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,r=this.geometry.values,o;if(this.createPrimitive){if(r.length>0)u(n)&&(u(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=Xr.getValue(e,this.materialProperty,this.material),n=new Pc({show:!1,asynchronous:!0,geometryInstances:r.slice(),appearance:new this.appearanceType({material:this.material}),classificationType:this.classificationType}),i.add(n,this.zIndex),t=!1;else{u(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;u(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(u(n)&&n.ready){n.show=!0,u(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=Xr.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material;let s=this.updatersWithAttributes.values,a=s.length;for(o=0;o<a;o++){let c=s[o],l=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);u(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d));let p=l.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!q.isConstant(m)){let A=q.getValueOrDefault(m,e,aXe,sXe);vt.equals(A,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=vt.clone(A,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Vn.toValue(A,d.distanceDisplayCondition))}}this.updateShows(n)}else u(n)&&!n.ready&&(t=!1);return t};Mf.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let r=t[i],o=r.entity,s=this.geometry.get(r.id),a=this.attributes.get(s.id.id);u(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=o.isShowing,l=a.show[0]===1;c!==l&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};Mf.prototype.contains=function(e){return this.updaters.contains(e.id)};Mf.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return lt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?lt.FAILED:(i.boundingSphere.clone(t),lt.DONE)};Mf.prototype.destroy=function(){let e=this.primitive,t=this.primitives;u(e)&&t.remove(e);let n=this.oldPrimitive;u(n)&&t.remove(n),this.removeMaterialSubscription()};function xb(e,t,n){this._items=[],this._primitives=e,this._classificationType=t,this._appearanceType=n}xb.prototype.add=function(e,t){let n=this._items,i=n.length,r=t.createFillGeometryInstance(e),o=tu.shouldUseSphericalCoordinates(r.geometry.rectangle),s=q.getValueOrDefault(t.zIndex,0);for(let c=0;c<i;++c){let l=n[c];if(l.isMaterial(t)&&l.usingSphericalTextureCoordinates===o&&l.zIndex===s&&!l.overlapping(r.geometry.rectangle)){l.add(e,t,r);return}}let a=new Mf(this._primitives,this._classificationType,this._appearanceType,t.fillMaterialProperty,o,s);a.add(e,t,r),n.push(a)};xb.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let r=t[i];if(r.remove(e)){r.updaters.length===0&&(t.splice(i,1),r.destroy());break}}};xb.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let o=n[t];if(o.invalidated){n.splice(t,1);let s=o.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);o.destroy()}}let r=!0;for(t=0;t<n.length;t++)r=n[t].update(e)&&r;return r};xb.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let r=0;r<i;r++){let o=n[r];if(o.contains(e))return o.getBoundingSphere(e,t)}return lt.FAILED};xb.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var tB=xb;var cXe=new z,lXe=new vt,uXe=new vt,fXe=h.ZERO,dXe=new h;function S_(e,t,n,i){this.translucent=t,this.width=n,this.shadows=i,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Ct,this.updaters=new Ct,this.updatersWithAttributes=new Ct,this.attributes=new Ct,this.itemsToRemove=[],this.subscriptions=new Ct,this.showsUpdated=new Ct}S_.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantOutline||!e.outlineColorProperty.isConstant||!q.isConstant(e.distanceDisplayConditionProperty)||!q.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(r,o,s,a){o==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};S_.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return u(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};S_.prototype.update=function(e){let t=!0,n=0,i=this.primitive,r=this.primitives,o;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)u(i)&&(u(this.oldPrimitive)?r.remove(i):this.oldPrimitive=i),i=new bn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new rn({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),r.add(i),t=!1;else{u(i)&&(r.remove(i),i=void 0);let c=this.oldPrimitive;u(c)&&(r.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(u(i)&&i.ready){i.show=!0,u(this.oldPrimitive)&&(r.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(o=0;o<a;o++){let l=s[o],f=this.geometry.get(l.id),d=this.attributes.get(f.id.id);if(u(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!l.outlineColorProperty.isConstant||c){let x=l.outlineColorProperty,C=q.getValueOrDefault(x,e,z.WHITE,cXe);z.equals(d._lastColor,C)||(d._lastColor=z.clone(C,d._lastColor),d.color=kt.toValue(C,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=l))}let p=l.entity.isShowing&&(l.hasConstantOutline||l.isOutlineVisible(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=l.distanceDisplayConditionProperty;if(!q.isConstant(m)){let x=q.getValueOrDefault(m,e,uXe,lXe);vt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=vt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Vn.toValue(x,d.distanceDisplayCondition))}let A=l.terrainOffsetProperty;if(!q.isConstant(A)){let x=q.getValueOrDefault(A,e,fXe,dXe);h.equals(x,d._lastOffset)||(d._lastOffset=h.clone(x,d._lastOffset),d.offset=Ki.toValue(x,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else u(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};S_.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let r=t[i],o=this.geometry.get(r.id),s=this.attributes.get(o.id.id);u(s)||(s=e.getGeometryInstanceAttributes(o.id),this.attributes.set(o.id.id,s));let a=r.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=gn.toValue(a,s.show),o.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};S_.prototype.contains=function(e){return this.updaters.contains(e.id)};S_.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return lt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?lt.FAILED:(i.boundingSphere.clone(t),lt.DONE)};S_.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;u(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;u(n)&&(e.remove(n),this.oldPrimitive=void 0)};function Cb(e,t,n){this._primitives=e,this._scene=t,this._shadows=n,this._solidBatches=new Ct,this._translucentBatches=new Ct}Cb.prototype.add=function(e,t){let n=t.createOutlineGeometryInstance(e),i=this._scene.clampLineWidth(t.outlineWidth),r,o;n.attributes.color.value[3]===255?(r=this._solidBatches,o=r.get(i),u(o)||(o=new S_(this._primitives,!1,i,this._shadows),r.set(i,o)),o.add(t,n)):(r=this._translucentBatches,o=r.get(i),u(o)||(o=new S_(this._primitives,!0,i,this._shadows),r.set(i,o)),o.add(t,n))};Cb.prototype.remove=function(e){let t,n=this._solidBatches.values,i=n.length;for(t=0;t<i;t++)if(n[t].remove(e))return;let r=this._translucentBatches.values,o=r.length;for(t=0;t<o;t++)if(r[t].remove(e))return};Cb.prototype.update=function(e){let t,n,i,r,o=this._solidBatches.values,s=o.length,a=this._translucentBatches.values,c=a.length,l,f=!0,d=!1;do{for(d=!1,n=0;n<s;n++){r=o[n],f=r.update(e),l=r.itemsToRemove;let p=l.length;if(p>0)for(d=!0,t=0;t<p;t++)i=l[t],r.remove(i),this.add(e,i)}for(n=0;n<c;n++){r=a[n],f=r.update(e),l=r.itemsToRemove;let p=l.length;if(p>0)for(d=!0,t=0;t<p;t++)i=l[t],r.remove(i),this.add(e,i)}}while(d);return f};Cb.prototype.getBoundingSphere=function(e,t){let n,i=this._solidBatches.values,r=i.length;for(n=0;n<r;n++){let a=i[n];if(a.contains(e))return a.getBoundingSphere(e,t)}let o=this._translucentBatches.values,s=o.length;for(n=0;n<s;n++){let a=o[n];if(a.contains(e))return a.getBoundingSphere(e,t)}return lt.FAILED};Cb.prototype.removeAllPrimitives=function(){let e,t=this._solidBatches.values,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._translucentBatches.values,r=i.length;for(e=0;e<r;e++)i[e].removeAllPrimitives()};var Tb=Cb;var sfe={};function hXe(e,t){return P.equalsEpsilon(e.latitude,t.latitude,P.EPSILON10)&&P.equalsEpsilon(e.longitude,t.longitude,P.EPSILON10)}var mXe=new me,pXe=new me;function _Xe(e,t,n,i){t=Er(t,h.equalsEpsilon);let r=t.length;if(r<2)return;let o=u(i),s=u(n),a=new Array(r),c=new Array(r),l=new Array(r),f=t[0];a[0]=f;let d=e.cartesianToCartographic(f,mXe);s&&(d.height=n[0]),c[0]=d.height,o?l[0]=i[0]:l[0]=0;let p=c[0],g=l[0],m=p===g,A=1;for(let x=1;x<r;++x){let C=t[x],T=e.cartesianToCartographic(C,pXe);s&&(T.height=n[x]),m=m&&T.height===0,hXe(d,T)?d.height<T.height&&(c[A-1]=T.height):(a[A]=C,c[A]=T.height,o?l[A]=i[x]:l[A]=0,m=m&&c[A]===l[A],me.clone(T,d),++A)}if(!(m||A<2))return a.length=A,c.length=A,l.length=A,{positions:a,topHeights:c,bottomHeights:l}}var gXe=new Array(2),yXe=new Array(2),AXe={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};sfe.computePositions=function(e,t,n,i,r,o){let s=_Xe(e,t,n,i);if(!u(s))return;t=s.positions,n=s.topHeights,i=s.bottomHeights;let a=t.length,c=a-2,l,f,d=P.chordLength(r,e.maximumRadius),p=AXe;if(p.minDistance=d,p.ellipsoid=e,o){let g=0,m;for(m=0;m<a-1;m++)g+=Mi.numberOfPoints(t[m],t[m+1],d)+1;l=new Float64Array(g*3),f=new Float64Array(g*3);let A=gXe,x=yXe;p.positions=A,p.height=x;let C=0;for(m=0;m<a-1;m++){A[0]=t[m],A[1]=t[m+1],x[0]=n[m],x[1]=n[m+1];let T=Mi.generateArc(p);l.set(T,C),x[0]=i[m],x[1]=i[m+1],f.set(Mi.generateArc(p),C),C+=T.length}}else p.positions=t,p.height=n,l=new Float64Array(Mi.generateArc(p)),p.height=i,f=new Float64Array(Mi.generateArc(p));return{bottomPositions:f,topPositions:l,numCorners:c}};var Ox=sfe;var VW=new h,mk=new h,xXe=new h,afe=new h,CXe=new h,TXe=new h,EXe=new h;function Mx(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,r=y(e.vertexFormat,Pe.DEFAULT),o=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.ellipsoid,re.WGS84);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._vertexFormat=Pe.clone(r),this._granularity=o,this._ellipsoid=re.clone(s),this._workerName="createWallGeometry";let a=1+t.length*h.packedLength+2;u(i)&&(a+=i.length),u(n)&&(a+=n.length),this.packedLength=a+re.packedLength+Pe.packedLength+1}Mx.pack=function(e,t,n){n=y(n,0);let i,r=e._positions,o=r.length;for(t[n++]=o,i=0;i<o;++i,n+=h.packedLength)h.pack(r[i],t,n);let s=e._minimumHeights;if(o=u(s)?s.length:0,t[n++]=o,u(s))for(i=0;i<o;++i)t[n++]=s[i];let a=e._maximumHeights;if(o=u(a)?a.length:0,t[n++]=o,u(a))for(i=0;i<o;++i)t[n++]=a[i];return re.pack(e._ellipsoid,t,n),n+=re.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n]=e._granularity,t};var cfe=re.clone(re.UNIT_SPHERE),lfe=new Pe,nB={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:cfe,vertexFormat:lfe,granularity:void 0};Mx.unpack=function(e,t,n){t=y(t,0);let i,r=e[t++],o=new Array(r);for(i=0;i<r;++i,t+=h.packedLength)o[i]=h.unpack(e,t);r=e[t++];let s;if(r>0)for(s=new Array(r),i=0;i<r;++i)s[i]=e[t++];r=e[t++];let a;if(r>0)for(a=new Array(r),i=0;i<r;++i)a[i]=e[t++];let c=re.unpack(e,t,cfe);t+=re.packedLength;let l=Pe.unpack(e,t,lfe);t+=Pe.packedLength;let f=e[t];return u(n)?(n._positions=o,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=re.clone(c,n._ellipsoid),n._vertexFormat=Pe.clone(l,n._vertexFormat),n._granularity=f,n):(nB.positions=o,nB.minimumHeights=s,nB.maximumHeights=a,nB.granularity=f,new Mx(nB))};Mx.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,r=e.minimumHeight,o=e.maximumHeight,s=u(r),a=u(o);if(s||a){let l=t.length;n=s?new Array(l):void 0,i=a?new Array(l):void 0;for(let f=0;f<l;++f)s&&(n[f]=r),a&&(i[f]=o)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid,vertexFormat:e.vertexFormat};return new Mx(c)};Mx.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,r=e._vertexFormat,o=e._granularity,s=e._ellipsoid,a=Ox.computePositions(s,t,i,n,o,!0);if(!u(a))return;let c=a.bottomPositions,l=a.topPositions,f=a.numCorners,d=l.length,p=d*2,g=r.position?new Float64Array(p):void 0,m=r.normal?new Float32Array(p):void 0,A=r.tangent?new Float32Array(p):void 0,x=r.bitangent?new Float32Array(p):void 0,C=r.st?new Float32Array(p/3*2):void 0,T=0,E=0,S=0,v=0,D=0,M=EXe,O=TXe,B=CXe,L=!0;d/=3;let _,b=0,w=1/(d-f-1);for(_=0;_<d;++_){let V=_*3,G=h.fromArray(l,V,VW),U=h.fromArray(c,V,mk);if(r.position&&(g[T++]=U.x,g[T++]=U.y,g[T++]=U.z,g[T++]=G.x,g[T++]=G.y,g[T++]=G.z),r.st&&(C[D++]=b,C[D++]=0,C[D++]=b,C[D++]=1),r.normal||r.tangent||r.bitangent){let Y=h.clone(h.ZERO,afe),W=h.subtract(G,s.geodeticSurfaceNormal(G,mk),mk);if(_+1<d&&(Y=h.fromArray(l,V+3,afe)),L){let Z=h.subtract(Y,G,xXe),j=h.subtract(W,G,VW);M=h.normalize(h.cross(j,Z,M),M),L=!1}h.equalsEpsilon(G,Y,P.EPSILON10)?L=!0:(b+=w,r.tangent&&(O=h.normalize(h.subtract(Y,G,O),O)),r.bitangent&&(B=h.normalize(h.cross(M,O,B),B))),r.normal&&(m[E++]=M.x,m[E++]=M.y,m[E++]=M.z,m[E++]=M.x,m[E++]=M.y,m[E++]=M.z),r.tangent&&(A[v++]=O.x,A[v++]=O.y,A[v++]=O.z,A[v++]=O.x,A[v++]=O.y,A[v++]=O.z),r.bitangent&&(x[S++]=B.x,x[S++]=B.y,x[S++]=B.z,x[S++]=B.x,x[S++]=B.y,x[S++]=B.z)}}let I=new dn;r.position&&(I.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:g})),r.normal&&(I.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),r.tangent&&(I.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),r.bitangent&&(I.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),r.st&&(I.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:C}));let R=p/3;p-=6*(f+1);let F=Ue.createTypedArray(R,p),k=0;for(_=0;_<R-2;_+=2){let V=_,G=_+2,U=h.fromArray(g,V*3,VW),Y=h.fromArray(g,G*3,mk);if(h.equalsEpsilon(U,Y,P.EPSILON10))continue;let W=_+1,Z=_+3;F[k++]=W,F[k++]=V,F[k++]=Z,F[k++]=Z,F[k++]=V,F[k++]=G}return new ut({attributes:I,indices:F,primitiveType:Be.TRIANGLES,boundingSphere:new ae.fromVertices(g)})};var iB=Mx;var ufe=new h,ffe=new h;function Rx(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,r=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.ellipsoid,re.WGS84);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._granularity=r,this._ellipsoid=re.clone(o),this._workerName="createWallOutlineGeometry";let s=1+t.length*h.packedLength+2;u(i)&&(s+=i.length),u(n)&&(s+=n.length),this.packedLength=s+re.packedLength+1}Rx.pack=function(e,t,n){n=y(n,0);let i,r=e._positions,o=r.length;for(t[n++]=o,i=0;i<o;++i,n+=h.packedLength)h.pack(r[i],t,n);let s=e._minimumHeights;if(o=u(s)?s.length:0,t[n++]=o,u(s))for(i=0;i<o;++i)t[n++]=s[i];let a=e._maximumHeights;if(o=u(a)?a.length:0,t[n++]=o,u(a))for(i=0;i<o;++i)t[n++]=a[i];return re.pack(e._ellipsoid,t,n),n+=re.packedLength,t[n]=e._granularity,t};var dfe=re.clone(re.UNIT_SPHERE),rB={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:dfe,granularity:void 0};Rx.unpack=function(e,t,n){t=y(t,0);let i,r=e[t++],o=new Array(r);for(i=0;i<r;++i,t+=h.packedLength)o[i]=h.unpack(e,t);r=e[t++];let s;if(r>0)for(s=new Array(r),i=0;i<r;++i)s[i]=e[t++];r=e[t++];let a;if(r>0)for(a=new Array(r),i=0;i<r;++i)a[i]=e[t++];let c=re.unpack(e,t,dfe);t+=re.packedLength;let l=e[t];return u(n)?(n._positions=o,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=re.clone(c,n._ellipsoid),n._granularity=l,n):(rB.positions=o,rB.minimumHeights=s,rB.maximumHeights=a,rB.granularity=l,new Rx(rB))};Rx.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,r=e.minimumHeight,o=e.maximumHeight,s=u(r),a=u(o);if(s||a){let l=t.length;n=s?new Array(l):void 0,i=a?new Array(l):void 0;for(let f=0;f<l;++f)s&&(n[f]=r),a&&(i[f]=o)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid};return new Rx(c)};Rx.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,r=e._granularity,o=e._ellipsoid,s=Ox.computePositions(o,t,i,n,r,!1);if(!u(s))return;let a=s.bottomPositions,c=s.topPositions,l=c.length,f=l*2,d=new Float64Array(f),p=0;l/=3;let g;for(g=0;g<l;++g){let T=g*3,E=h.fromArray(c,T,ufe),S=h.fromArray(a,T,ffe);d[p++]=S.x,d[p++]=S.y,d[p++]=S.z,d[p++]=E.x,d[p++]=E.y,d[p++]=E.z}let m=new dn({position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})}),A=f/3;f=2*A-4+A;let x=Ue.createTypedArray(A,f),C=0;for(g=0;g<A-2;g+=2){let T=g,E=g+2,S=h.fromArray(d,T*3,ufe),v=h.fromArray(d,E*3,ffe);if(h.equalsEpsilon(S,v,P.EPSILON10))continue;let D=g+1,M=g+3;x[C++]=D,x[C++]=T,x[C++]=D,x[C++]=M,x[C++]=T,x[C++]=E}return x[C++]=A-2,x[C++]=A-1,new ut({attributes:m,indices:x,primitiveType:Be.LINES,boundingSphere:new ae.fromVertices(d)})};var oB=Rx;var hfe=new z;function bXe(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.minimumHeights=void 0,this.maximumHeights=void 0,this.granularity=void 0}function th(e,t){ci.call(this,{entity:e,scene:t,geometryOptions:new bXe(e),geometryPropertyName:"wall",observedPropertyNames:["availability","wall"]}),this._onEntityPropertyChanged(e,"wall",e.wall,void 0)}u(Object.create)&&(th.prototype=Object.create(ci.prototype),th.prototype.constructor=th);th.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,r,o=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=Vn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Ut){let c;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,hfe)),u(c)||(c=z.WHITE),r=kt.fromColor(c),i={show:o,distanceDisplayCondition:a,color:r}}else i={show:o,distanceDisplayCondition:a};return new xt({id:t,geometry:new iB(this._options),attributes:i})};th.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=q.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,hfe),r=this._distanceDisplayConditionProperty.getValue(e);return new xt({id:t,geometry:new oB(this._options),attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:kt.fromColor(i),distanceDisplayCondition:Vn.fromDistanceDisplayCondition(r)}})};th.prototype._isHidden=function(e,t){return!u(t.positions)||ci.prototype._isHidden.call(this,e,t)};th.prototype._getIsClosed=function(e){return!1};th.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!q.isConstant(t.minimumHeights)||!q.isConstant(t.maximumHeights)||!q.isConstant(t.outlineWidth)||!q.isConstant(t.granularity)};th.prototype._setStaticOptions=function(e,t){let n=t.minimumHeights,i=t.maximumHeights,r=t.granularity,o=this._materialProperty instanceof Ut,s=this._options;s.vertexFormat=o?rn.VERTEX_FORMAT:lr.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(ze.MINIMUM_VALUE,s.positions),s.minimumHeights=u(n)?n.getValue(ze.MINIMUM_VALUE,s.minimumHeights):void 0,s.maximumHeights=u(i)?i.getValue(ze.MINIMUM_VALUE,s.maximumHeights):void 0,s.granularity=u(r)?r.getValue(ze.MINIMUM_VALUE):void 0};th.DynamicGeometryUpdater=Eb;function Eb(e,t,n){ai.call(this,e,t,n)}u(Object.create)&&(Eb.prototype=Object.create(ai.prototype),Eb.prototype.constructor=Eb);Eb.prototype._isHidden=function(e,t,n){return!u(this._options.positions)||ai.prototype._isHidden.call(this,e,t,n)};Eb.prototype._setOptions=function(e,t,n){let i=this._options;i.positions=q.getValueOrUndefined(t.positions,n,i.positions),i.minimumHeights=q.getValueOrUndefined(t.minimumHeights,n,i.minimumHeights),i.maximumHeights=q.getValueOrUndefined(t.maximumHeights,n,i.maximumHeights),i.granularity=q.getValueOrUndefined(t.granularity,n)};var sB=th;var SXe=[],mfe=[PP,bR,_R,FR,VR,HR,qR,$R,eB,sB];function aB(e,t){this.entity=e,this.scene=t;let n=new Array(mfe.length),i=new ge;function r(s){i.raiseEvent(s)}let o=new Po;for(let s=0;s<n.length;s++){let a=new mfe[s](e,t);o.add(a.geometryChanged,r),n[s]=a}this.updaters=n,this.geometryChanged=i,this.eventHelper=o,this._removeEntitySubscription=e.definitionChanged.addEventListener(aB.prototype._onEntityPropertyChanged,this)}aB.prototype._onEntityPropertyChanged=function(e,t,n,i){let r=this.updaters;for(let o=0;o<r.length;o++)r[o]._onEntityPropertyChanged(e,t,n,i)};aB.prototype.forEach=function(e){let t=this.updaters;for(let n=0;n<t.length;n++)e(t[n])};aB.prototype.destroy=function(){this.eventHelper.removeAll();let e=this.updaters;for(let t=0;t<e.length;t++)e[t].destroy();this._removeEntitySubscription(),ue(this)};function Rf(e,t,n,i){n=y(n,e.primitives),i=y(i,e.groundPrimitives),this._scene=e,this._primitives=n,this._groundPrimitives=i,this._entityCollection=void 0,this._addedObjects=new Ct,this._removedObjects=new Ct,this._changedObjects=new Ct;let r=yn.NUMBER_OF_SHADOW_MODES;this._outlineBatches=new Array(r*2),this._closedColorBatches=new Array(r*2),this._closedMaterialBatches=new Array(r*2),this._openColorBatches=new Array(r*2),this._openMaterialBatches=new Array(r*2);let o=Kr.supportsMaterialsforEntitiesOnTerrain(e);this._supportsMaterialsforEntitiesOnTerrain=o;let s;for(s=0;s<r;++s)this._outlineBatches[s]=new Tb(n,e,s,!1),this._outlineBatches[r+s]=new Tb(n,e,s,!0),this._closedColorBatches[s]=new Pf(n,rn,void 0,!0,s,!0),this._closedColorBatches[r+s]=new Pf(n,rn,void 0,!0,s,!1),this._closedMaterialBatches[s]=new Of(n,lr,void 0,!0,s,!0),this._closedMaterialBatches[r+s]=new Of(n,lr,void 0,!0,s,!1),this._openColorBatches[s]=new Pf(n,rn,void 0,!1,s,!0),this._openColorBatches[r+s]=new Pf(n,rn,void 0,!1,s,!1),this._openMaterialBatches[s]=new Of(n,lr,void 0,!1,s,!0),this._openMaterialBatches[r+s]=new Of(n,lr,void 0,!1,s,!1);let a=kn.NUMBER_OF_CLASSIFICATION_TYPES,c=new Array(a),l=[];if(o)for(s=0;s<a;++s)l.push(new tB(i,s,lr)),c[s]=new Ab(i,s);else for(s=0;s<a;++s)c[s]=new Ab(i,s);this._groundColorBatches=c,this._groundMaterialBatches=l,this._dynamicBatch=new Tx(n,i),this._batches=this._outlineBatches.concat(this._closedColorBatches,this._closedMaterialBatches,this._openColorBatches,this._openMaterialBatches,this._groundColorBatches,this._groundMaterialBatches,this._dynamicBatch),this._subscriptions=new Ct,this._updaterSets=new Ct,this._entityCollection=t,t.collectionChanged.addEventListener(Rf.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,SXe)}Rf.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,r=i.values,o=this._changedObjects,s=o.values,a,c,l,f,d=this;for(a=s.length-1;a>-1;a--)c=s[a],l=c.id,f=this._updaterSets.get(l),f.entity===c?f.forEach(function(A){d._removeUpdater(A),d._insertUpdaterIntoBatch(e,A)}):(r.push(c),n.push(c));for(a=r.length-1;a>-1;a--)c=r[a],l=c.id,f=this._updaterSets.get(l),f.forEach(this._removeUpdater.bind(this)),f.destroy(),this._updaterSets.remove(l),this._subscriptions.get(l)(),this._subscriptions.remove(l);for(a=n.length-1;a>-1;a--)c=n[a],l=c.id,f=new aB(c,this._scene),this._updaterSets.set(l,f),f.forEach(function(A){d._insertUpdaterIntoBatch(e,A)}),this._subscriptions.set(l,f.geometryChanged.addEventListener(Rf._onGeometryChanged,this));t.removeAll(),i.removeAll(),o.removeAll();let p=!0,g=this._batches,m=g.length;for(a=0;a<m;a++)p=g[a].update(e)&&p;return p};var vXe=[],wXe=new ae;Rf.prototype.getBoundingSphere=function(e,t){let n=vXe,i=wXe,r=0,o=lt.DONE,s=this._batches,a=s.length,c=e.id,l=this._updaterSets.get(c).updaters;for(let f=0;f<l.length;f++){let d=l[f];for(let p=0;p<a;p++){if(o=s[p].getBoundingSphere(d,i),o===lt.PENDING)return lt.PENDING;o===lt.DONE&&(n[r]=ae.clone(i,n[r]),r++)}}return r===0?lt.FAILED:(n.length=r,ae.fromBoundingSpheres(n,t),lt.DONE)};Rf.prototype.isDestroyed=function(){return!1};Rf.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Rf.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();this._subscriptions.removeAll();let r=this._updaterSets.values;for(n=r.length,e=0;e<n;e++)r[e].destroy();return this._updaterSets.removeAll(),ue(this)};Rf.prototype._removeUpdater=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;i++)t[i].remove(e)};Rf.prototype._insertUpdaterIntoBatch=function(e,t){if(t.isDynamic){this._dynamicBatch.add(e,t);return}let n;(t.outlineEnabled||t.fillEnabled)&&(n=t.shadowsProperty.getValue(e));let i=yn.NUMBER_OF_SHADOW_MODES;if(t.outlineEnabled&&(u(t.terrainOffsetProperty)?this._outlineBatches[i+n].add(e,t):this._outlineBatches[n].add(e,t)),t.fillEnabled)if(t.onTerrain){let r=t.classificationTypeProperty.getValue(e);t.fillMaterialProperty instanceof Ut?this._groundColorBatches[r].add(e,t):this._groundMaterialBatches[r].add(e,t)}else t.isClosed?t.fillMaterialProperty instanceof Ut?u(t.terrainOffsetProperty)?this._closedColorBatches[i+n].add(e,t):this._closedColorBatches[n].add(e,t):u(t.terrainOffsetProperty)?this._closedMaterialBatches[i+n].add(e,t):this._closedMaterialBatches[n].add(e,t):t.fillMaterialProperty instanceof Ut?u(t.terrainOffsetProperty)?this._openColorBatches[i+n].add(e,t):this._openColorBatches[n].add(e,t):u(t.terrainOffsetProperty)?this._openMaterialBatches[i+n].add(e,t):this._openMaterialBatches[n].add(e,t)};Rf._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,r=i.id;!u(t.get(r))&&!u(n.get(r))&&n.set(r,i)};Rf.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,r=this._removedObjects,o=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(r.set(a,c),o.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,r.remove(a)?o.set(a,c):i.set(a,c)};var cB=Rf;var DXe=1,IXe="30px sans-serif",PXe=zr.FILL,OXe=z.WHITE,MXe=z.BLACK,RXe=1,BXe=!1,LXe=new z(.165,.165,.165,.8),NXe=new H(7,5),FXe=H.ZERO,UXe=h.ZERO,VXe=je.NONE,kXe=_i.CENTER,zXe=Pn.CENTER,HXe=new h,GXe=new z,WXe=new z,jXe=new z,qXe=new H,YXe=new h,XXe=new H,KXe=new Bt,JXe=new Bt,ZXe=new Bt,QXe=new vt;function pfe(e){this.entity=e,this.label=void 0,this.index=void 0}function by(e,t){t.collectionChanged.addEventListener(by.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Ct,this._onCollectionChanged(t,t.values,[],[])}by.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,r=t.length;i<r;i++){let o=t[i],s=o.entity,a=s._label,c,l=o.label,f=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),d;if(f&&(d=q.getValueOrUndefined(s._position,e,HXe),c=q.getValueOrUndefined(a._text,e),f=u(d)&&u(c)),!f){kW(o,s,n);continue}q.isConstant(s._position)||(n._clusterDirty=!0);let p=!1,g=q.getValueOrDefault(a._heightReference,e,VXe);u(l)||(l=n.getLabel(s),l.id=s,o.label=l,p=h.equals(l.position,d)&&l.heightReference===g),l.show=!0,l.position=d,l.text=c,l.scale=q.getValueOrDefault(a._scale,e,DXe),l.font=q.getValueOrDefault(a._font,e,IXe),l.style=q.getValueOrDefault(a._style,e,PXe),l.fillColor=q.getValueOrDefault(a._fillColor,e,OXe,GXe),l.outlineColor=q.getValueOrDefault(a._outlineColor,e,MXe,WXe),l.outlineWidth=q.getValueOrDefault(a._outlineWidth,e,RXe),l.showBackground=q.getValueOrDefault(a._showBackground,e,BXe),l.backgroundColor=q.getValueOrDefault(a._backgroundColor,e,LXe,jXe),l.backgroundPadding=q.getValueOrDefault(a._backgroundPadding,e,NXe,qXe),l.pixelOffset=q.getValueOrDefault(a._pixelOffset,e,FXe,XXe),l.eyeOffset=q.getValueOrDefault(a._eyeOffset,e,UXe,YXe),l.heightReference=g,l.horizontalOrigin=q.getValueOrDefault(a._horizontalOrigin,e,kXe),l.verticalOrigin=q.getValueOrDefault(a._verticalOrigin,e,zXe),l.translucencyByDistance=q.getValueOrUndefined(a._translucencyByDistance,e,KXe),l.pixelOffsetScaleByDistance=q.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,JXe),l.scaleByDistance=q.getValueOrUndefined(a._scaleByDistance,e,ZXe),l.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e,QXe),l.disableDepthTestDistance=q.getValueOrUndefined(a._disableDepthTestDistance,e),p&&l._updateClamping()}return!0};by.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!u(n)||!u(n.label))return lt.FAILED;let i=n.label;return t.center=h.clone(y(i._clampedPosition,i.position),t.center),t.radius=0,lt.DONE};by.prototype.isDestroyed=function(){return!1};by.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(by.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeLabel(e[t]);return ue(this)};by.prototype._onCollectionChanged=function(e,t,n,i){let r,o,s=this._items,a=this._cluster;for(r=t.length-1;r>-1;r--)o=t[r],u(o._label)&&u(o._position)&&s.set(o.id,new pfe(o));for(r=i.length-1;r>-1;r--)o=i[r],u(o._label)&&u(o._position)?s.contains(o.id)||s.set(o.id,new pfe(o)):(kW(s.get(o.id),o,a),s.remove(o.id));for(r=n.length-1;r>-1;r--)o=n[r],kW(s.get(o.id),o,a),s.remove(o.id)};function kW(e,t,n){u(e)&&(e.label=void 0,n.removeLabel(t))}var lB=by;async function $Xe(e,t,n){return await e._readyPromise,nKe(e,t,n)}function eKe(e,t){let n=e[0],i=n.terrainProvider.requestTileGeometry(n.x,n.y,n.level);if(!i)return!1;let r=i.then(iKe(n)).catch(rKe(n));return e.shift(),t.push(r),!0}function tKe(e){return new Promise(function(t){setTimeout(t,e)})}function zW(e,t){return e.length?eKe(e,t)?zW(e,t):tKe(100).then(()=>zW(e,t)):Promise.resolve()}function nKe(e,t,n){let i=e.tilingScheme,r,o=[],s={};for(r=0;r<n.length;++r){let c=i.positionToTileXY(n[r],t);if(!u(c))continue;let l=c.toString();if(!s.hasOwnProperty(l)){let f={x:c.x,y:c.y,level:t,tilingScheme:i,terrainProvider:e,positions:[]};s[l]=f,o.push(f)}s[l].positions.push(n[r])}let a=[];return zW(o,a).then(function(){return Promise.all(a).then(function(){return n})})}function _fe(e,t,n){let i=t.interpolateHeight(n,e.longitude,e.latitude);return i===void 0?!1:(e.height=i,!0)}function iKe(e){let t=e.positions,n=e.tilingScheme.tileXYToRectangle(e.x,e.y,e.level);return function(i){let r=!1;for(let o=0;o<t.length;++o){let s=t[o];if(!_fe(s,i,n)){r=!0;break}}return r?i.createMesh({tilingScheme:e.tilingScheme,x:e.x,y:e.y,level:e.level,throttle:!1}).then(function(){for(let o=0;o<t.length;++o){let s=t[o];_fe(s,i,n)}}):Promise.resolve()}}function rKe(e){let t=e.positions;return function(){for(let n=0;n<t.length;++n){let i=t[n];i.height=void 0}}}var uB=$Xe;var HW=new H;async function gfe(e,t){let n=[],i=[];await e._readyPromise;let r=e.availability,o=[];for(let a=0;a<t.length;++a){let c=t[a],l=r.computeMaximumLevelAtPosition(c);if(i[a]=l,l===0){e.tilingScheme.positionToTileXY(c,1,HW);let d=e.loadTileDataAvailability(HW.x,HW.y,1);u(d)&&o.push(d)}let f=n[l];u(f)||(n[l]=f=[]),f.push(c)}await Promise.all(o),await Promise.all(n.map(function(a,c){if(u(a))return uB(e,c,a)}));let s=[];for(let a=0;a<t.length;++a){let c=t[a];r.computeMaximumLevelAtPosition(c)!==i[a]&&s.push(c)}return s.length>0&&await gfe(e,s),t}var v_=gfe;var oKe=1,sKe=0,aKe=!0,cKe=!0,lKe=yn.ENABLED,uKe=je.NONE,fKe=z.RED,dKe=0,hKe=z.WHITE,mKe=Za.HIGHLIGHT,pKe=.5,_Ke=new H(1,1),gKe=new N,yKe=new N,yfe=new z,Afe=new Array(4),AKe=new h;function mm(e,t){t.collectionChanged.addEventListener(mm.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._modelHash={},this._entitiesToVisualize=new Ct,this._onCollectionChanged(t,t.values,[],[])}async function xKe(e,t,n,i){let r=e._primitives,o=e._modelHash;try{let s=await Bd.fromGltfAsync({url:n,incrementallyLoadTextures:i,scene:e._scene});if(e.isDestroyed()||!u(o[t.id]))return;s.id=t,r.add(s),o[t.id].modelPrimitive=s,s.errorEvent.addEventListener(a=>{u(o[t.id])&&(console.log(a),a.name!=="TextureError"&&s.incrementallyLoadTextures&&(o[t.id].loadFailed=!0))})}catch(s){if(e.isDestroyed()||!u(o[t.id]))return;console.log(s),o[t.id].loadFailed=!0}}mm.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._modelHash,i=this._primitives;for(let r=0,o=t.length;r<o;r++){let s=t[r],a=s._model,c,l=n[s.id],f=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),d;if(f&&(d=s.computeModelMatrix(e,gKe),c=ve.createIfNeeded(q.getValueOrUndefined(a._uri,e)),f=u(d)&&u(c)),!f){u(l)&&l.modelPrimitive&&(l.modelPrimitive.show=!1);continue}if(!u(l)||c.url!==l.url){u(l?.modelPrimitive)&&(i.removeAndDestroy(l.modelPrimitive),delete n[s.id]),l={modelPrimitive:void 0,url:c.url,animationsRunning:!1,nodeTransformationsScratch:{},articulationsScratch:{},loadFailed:!1,modelUpdated:!1,awaitingSampleTerrain:!1,clampedBoundingSphere:void 0,sampleTerrainFailed:!1},n[s.id]=l;let m=q.getValueOrDefault(a._incrementallyLoadTextures,e,aKe);xKe(this,s,c,m)}let p=l.modelPrimitive;if(!u(p))continue;p.show=!0,p.scale=q.getValueOrDefault(a._scale,e,oKe),p.minimumPixelSize=q.getValueOrDefault(a._minimumPixelSize,e,sKe),p.maximumScale=q.getValueOrUndefined(a._maximumScale,e),p.modelMatrix=N.clone(d,p.modelMatrix),p.shadows=q.getValueOrDefault(a._shadows,e,lKe),p.heightReference=q.getValueOrDefault(a._heightReference,e,uKe),p.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e),p.silhouetteColor=q.getValueOrDefault(a._silhouetteColor,e,fKe,yfe),p.silhouetteSize=q.getValueOrDefault(a._silhouetteSize,e,dKe),p.color=q.getValueOrDefault(a._color,e,hKe,yfe),p.colorBlendMode=q.getValueOrDefault(a._colorBlendMode,e,mKe),p.colorBlendAmount=q.getValueOrDefault(a._colorBlendAmount,e,pKe),p.clippingPlanes=q.getValueOrUndefined(a._clippingPlanes,e),p.clampAnimations=q.getValueOrDefault(a._clampAnimations,e,cKe),p.imageBasedLighting.imageBasedLightingFactor=q.getValueOrDefault(a._imageBasedLightingFactor,e,_Ke);let g=q.getValueOrUndefined(a._lightColor,e);if(u(g)&&(z.pack(g,Afe,0),g=h.unpack(Afe,0,AKe)),p.lightColor=g,p.customShader=q.getValueOrUndefined(a._customShader,e),n[s.id].modelUpdated=!0,p.ready){let m=q.getValueOrDefault(a._runAnimations,e,!0);l.animationsRunning!==m&&(m?p.activeAnimations.addAll({loop:El.REPEAT}):p.activeAnimations.removeAll(),l.animationsRunning=m);let A=q.getValueOrUndefined(a._nodeTransformations,e,l.nodeTransformationsScratch);if(u(A)){let T=Object.keys(A);for(let E=0,S=T.length;E<S;++E){let v=T[E],D=A[v];if(!u(D))continue;let M=p.getNode(v);if(!u(M))continue;let O=N.fromTranslationRotationScale(D,yKe);M.matrix=N.multiply(M.originalMatrix,O,O)}}let x=!1,C=q.getValueOrUndefined(a._articulations,e,l.articulationsScratch);if(u(C)){let T=Object.keys(C);for(let E=0,S=T.length;E<S;++E){let v=T[E],D=C[v];u(D)&&(x=!0,p.setArticulationStage(v,D))}}x&&p.applyArticulations()}}return!0};mm.prototype.isDestroyed=function(){return!1};mm.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(mm.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._modelHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)GW(this,e[i],t,n);return ue(this)};mm._sampleTerrainMostDetailed=v_;var bb=new h,xfe=new me;mm.prototype.getBoundingSphere=function(e,t){let n=this._modelHash[e.id];if(!u(n))return lt.FAILED;if(n.loadFailed)return lt.FAILED;let i=n.modelPrimitive;if(!u(i)||!i.show)return lt.PENDING;if(!i.ready||!n.modelUpdated)return lt.PENDING;let o=this._scene.globe,s=u(o)?o.terrainProvider:void 0,a=i.heightReference!==je.NONE;if(u(o)&&a){let c=o.ellipsoid;if(!s._ready)return lt.PENDING;let l=i.modelMatrix;bb.x=l[12],bb.y=l[13],bb.z=l[14];let f=c.cartesianToCartographic(bb);if(!u(s.availability)){i.heightReference===je.CLAMP_TO_GROUND&&(f.height=0);let g=c.cartographicToCartesian(f);return ae.clone(i.boundingSphere,t),t.center=g,lt.DONE}let d=this._modelHash[e.id].clampedBoundingSphere;return this._modelHash[e.id].sampleTerrainFailed?(this._modelHash[e.id].sampleTerrainFailed=!1,lt.FAILED):u(d)?(ae.clone(d,t),this._modelHash[e.id].clampedBoundingSphere=void 0,lt.DONE):(d=new ae,this._modelHash[e.id].awaitingSampleTerrain||(me.clone(f,xfe),this._modelHash[e.id].awaitingSampleTerrain=!0,mm._sampleTerrainMostDetailed(s,[xfe]).then(m=>{if(this.isDestroyed())return;this._modelHash[e.id].awaitingSampleTerrain=!1;let A=m[0];i.heightReference===je.RELATIVE_TO_GROUND&&(A.height+=f.height),c.cartographicToCartesian(A,bb),ae.clone(i.boundingSphere,d),d.center=bb,this._modelHash[e.id].clampedBoundingSphere=ae.clone(d)}).catch(m=>{this.isDestroyed()||(this._modelHash[e.id].sampleTerrainFailed=!0,this._modelHash[e.id].awaitingSampleTerrain=!1)})),lt.PENDING)}return ae.clone(i.boundingSphere,t),lt.DONE};mm.prototype._onCollectionChanged=function(e,t,n,i){let r,o,s=this._entitiesToVisualize,a=this._modelHash,c=this._primitives;for(r=t.length-1;r>-1;r--)o=t[r],u(o._model)&&u(o._position)&&s.set(o.id,o);for(r=i.length-1;r>-1;r--)o=i[r],u(o._model)&&u(o._position)?(CKe(o,a),s.set(o.id,o)):(GW(this,o,a,c),s.remove(o.id));for(r=n.length-1;r>-1;r--)o=n[r],GW(this,o,a,c),s.remove(o.id)};function GW(e,t,n,i){let r=n[t.id];u(r)&&(i.removeAndDestroy(r.modelPrimitive),delete n[t.id])}function CKe(e,t){let n=t[e.id];u(n)&&(n.nodeTransformationsScratch={},n.articulationsScratch={})}var fB=mm;function Sy(e){this._definitionChanged=new ge,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}Object.defineProperties(Sy.prototype,{isConstant:{get:function(){return q.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return u(this._value)?this._value.referenceFrame:rr.FIXED}}});Sy.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,rr.FIXED,t)};Sy.prototype.setValue=function(e){this._value!==e&&(this._value=e,u(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),u(e)&&(this._removeSubscription=e.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))};Sy.prototype.getValueInReferenceFrame=function(e,t,n){if(u(this._value))return n=this._value.getValueInReferenceFrame(e,t,n),u(n)?re.WGS84.scaleToGeodeticSurface(n,n):void 0};Sy.prototype.equals=function(e){return this===e||e instanceof Sy&&this._value===e._value};Sy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var pm=Sy;var TKe=60,EKe=1,Efe=new xn,WW=new xn,jW=new xn;function Cfe(e){this.entity=e,this.polyline=void 0,this.index=void 0,this.updater=void 0}function bKe(e,t,n,i,r,o,s,a,c){let l=a,f;f=e.getValueInReferenceFrame(t,o,c[l]),u(f)&&(c[l++]=f);let d=!u(r)||ee.lessThanOrEquals(r,t)||ee.greaterThanOrEquals(r,n),p=0,g=i.length,m=i[p],A=n,x=!1,C,T,E;for(;p<g;){if(!d&&ee.greaterThanOrEquals(m,r)&&(f=e.getValueInReferenceFrame(r,o,c[l]),u(f)&&(c[l++]=f),d=!0),ee.greaterThan(m,t)&&ee.lessThan(m,A)&&!m.equals(r)&&(f=e.getValueInReferenceFrame(m,o,c[l]),u(f)&&(c[l++]=f)),p<g-1){if(s>0&&!x){let S=i[p+1],v=ee.secondsDifference(S,m);x=v>s,x&&(C=Math.ceil(v/s),T=0,E=v/Math.max(C,2),C=Math.max(C-1,1))}if(x&&T<C){m=ee.addSeconds(m,E,new ee),T++;continue}}x=!1,p++,m=i[p]}return f=e.getValueInReferenceFrame(n,o,c[l]),u(f)&&(c[l++]=f),l}function SKe(e,t,n,i,r,o,s,a){let c,l=0,f=s,d=t,p=Math.max(o,60),g=!u(i)||ee.lessThanOrEquals(i,t)||ee.greaterThanOrEquals(i,n);for(;ee.lessThan(d,n);)!g&&ee.greaterThanOrEquals(d,i)&&(g=!0,c=e.getValueInReferenceFrame(i,r,a[f]),u(c)&&(a[f]=c,f++)),c=e.getValueInReferenceFrame(d,r,a[f]),u(c)&&(a[f]=c,f++),l++,d=ee.addSeconds(t,p*l,new ee);return c=e.getValueInReferenceFrame(n,r,a[f]),u(c)&&(a[f]=c,f++),f}function vKe(e,t,n,i,r,o,s,a){jW.start=t,jW.stop=n;let c=s,l=e.intervals;for(let f=0;f<l.length;f++){let d=l.get(f);if(!xn.intersect(d,jW,Efe).isEmpty){let p=d.start;d.isStartIncluded||(d.isStopIncluded?p=d.stop:p=ee.addSeconds(d.start,ee.secondsDifference(d.stop,d.start)/2,new ee));let g=e.getValueInReferenceFrame(p,r,a[c]);u(g)&&(a[c]=g,c++)}}return c}function wKe(e,t,n,i,r,o,s,a){let c=e.getValueInReferenceFrame(t,r,a[s]);return u(c)&&(a[s++]=c),s}function DKe(e,t,n,i,r,o,s,a){WW.start=t,WW.stop=n;let c=s,l=e.intervals;for(let f=0;f<l.length;f++){let d=l.get(f);if(!xn.intersect(d,WW,Efe).isEmpty){let p=d.start,g=d.stop,m=t;ee.greaterThan(p,m)&&(m=p);let A=n;ee.lessThan(g,A)&&(A=g),c=bfe(d.data,m,A,i,r,o,c,a)}}return c}function bfe(e,t,n,i,r,o,s,a){for(;e instanceof A_;)e=e.resolvedProperty;if(e instanceof ta){let c=e._property._times;s=bKe(e,t,n,c,i,r,o,s,a)}else e instanceof $s?s=DKe(e,t,n,i,r,o,s,a):e instanceof x_?s=vKe(e,t,n,i,r,o,s,a):e instanceof Mc||e instanceof pm&&q.isConstant(e)?s=wKe(e,t,n,i,r,o,s,a):s=SKe(e,t,n,i,r,o,s,a);return s}function Sfe(e,t,n,i,r,o,s){u(s)||(s=[]);let a=bfe(e,t,n,i,r,o,0,s);return s.length=a,s}var Tfe=new Q;function dB(e,t){this._unusedIndexes=[],this._polylineCollection=new Fd,this._scene=e,this._referenceFrame=t,e.primitives.add(this._polylineCollection)}dB.prototype.update=function(e){if(this._referenceFrame===rr.INERTIAL){let t=Mt.computeIcrfToFixedMatrix(e,Tfe);u(t)||(t=Mt.computeTemeToPseudoFixedMatrix(e,Tfe)),N.fromRotationTranslation(t,h.ZERO,this._polylineCollection.modelMatrix)}};dB.prototype.updateObject=function(e,t){let n=t.entity,i=n._path,r=n._position,o,s,a=i._show,c=t.polyline,l=n.isShowing&&n.isAvailable(e)&&(!u(a)||a.getValue(e));if(l){let d=q.getValueOrUndefined(i._leadTime,e),p=q.getValueOrUndefined(i._trailTime,e),g=n._availability,m=u(g),A=u(d),x=u(p);if(l=m||A&&x,l){if(x&&(o=ee.addSeconds(e,-p,new ee)),A&&(s=ee.addSeconds(e,d,new ee)),m){let C=g.start,T=g.stop;(!x||ee.greaterThan(C,o))&&(o=C),(!A||ee.lessThan(T,s))&&(s=T)}l=ee.lessThan(o,s)}}if(!l){u(c)&&(this._unusedIndexes.push(t.index),t.polyline=void 0,c.show=!1,t.index=void 0);return}if(!u(c)){let d=this._unusedIndexes;if(d.length>0){let g=d.pop();c=this._polylineCollection.get(g),t.index=g}else t.index=this._polylineCollection.length,c=this._polylineCollection.add();c.id=n,t.polyline=c}let f=q.getValueOrDefault(i._resolution,e,TKe);c.show=!0,c.positions=Sfe(r,o,s,e,this._referenceFrame,f,c.positions.slice()),c.material=Xr.getValue(e,i._material,c.material),c.width=q.getValueOrDefault(i._width,e,EKe),c.distanceDisplayCondition=q.getValueOrUndefined(i._distanceDisplayCondition,e,c.distanceDisplayCondition)};dB.prototype.removeObject=function(e){let t=e.polyline;u(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0)};dB.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),ue(this)};function vy(e,t){t.collectionChanged.addEventListener(vy.prototype._onCollectionChanged,this),this._scene=e,this._updaters={},this._entityCollection=t,this._items=new Ct,this._onCollectionChanged(t,t.values,[],[])}vy.prototype.update=function(e){let t=this._updaters;for(let i in t)t.hasOwnProperty(i)&&t[i].update(e);let n=this._items.values;if(n.length===0&&u(this._updaters)&&Object.keys(this._updaters).length>0){for(let i in t)t.hasOwnProperty(i)&&t[i].destroy();this._updaters={}}for(let i=0,r=n.length;i<r;i++){let o=n[i],a=o.entity._position,c=o.updater,l=rr.FIXED;this._scene.mode===ne.SCENE3D&&(l=a.referenceFrame);let f=this._updaters[l];if(c===f&&u(f)){f.updateObject(e,o);continue}u(c)&&c.removeObject(o),u(f)||(f=new dB(this._scene,l),f.update(e),this._updaters[l]=f),o.updater=f,u(f)&&f.updateObject(e,o)}return!0};vy.prototype.isDestroyed=function(){return!1};vy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(vy.prototype._onCollectionChanged,this);let e=this._updaters;for(let t in e)e.hasOwnProperty(t)&&e[t].destroy();return ue(this)};vy.prototype._onCollectionChanged=function(e,t,n,i){let r,o,s,a=this._items;for(r=t.length-1;r>-1;r--)o=t[r],u(o._path)&&u(o._position)&&a.set(o.id,new Cfe(o));for(r=i.length-1;r>-1;r--)o=i[r],u(o._path)&&u(o._position)?a.contains(o.id)||a.set(o.id,new Cfe(o)):(s=a.get(o.id),u(s)&&(u(s.updater)&&s.updater.removeObject(s),a.remove(o.id)));for(r=n.length-1;r>-1;r--)o=n[r],s=a.get(o.id),u(s)&&(u(s.updater)&&s.updater.removeObject(s),a.remove(o.id))};vy._subSample=Sfe;var hB=vy;var vfe=z.WHITE,wfe=z.BLACK,Dfe=0,Ife=1,Pfe=0,Ofe=new z,IKe=new h,Mfe=new z,Rfe=new Bt,Bfe=new Bt,Lfe=new vt;function Nfe(e){this.entity=e,this.pointPrimitive=void 0,this.billboard=void 0,this.color=void 0,this.outlineColor=void 0,this.pixelSize=void 0,this.outlineWidth=void 0}function wy(e,t){t.collectionChanged.addEventListener(wy.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Ct,this._onCollectionChanged(t,t.values,[],[])}wy.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,r=t.length;i<r;i++){let o=t[i],s=o.entity,a=s._point,c=o.pointPrimitive,l=o.billboard,f=q.getValueOrDefault(a._heightReference,e,je.NONE),d=s.isShowing&&s.isAvailable(e)&&q.getValueOrDefault(a._show,e,!0),p;if(d&&(p=q.getValueOrUndefined(s._position,e,IKe),d=u(p)),!d){mB(o,s,n);continue}q.isConstant(s._position)||(n._clusterDirty=!0);let g=!1,m=!1;if(f!==je.NONE&&!u(l)?(u(c)&&(mB(o,s,n),c=void 0),l=n.getBillboard(s),l.id=s,l.image=void 0,o.billboard=l,g=!0,m=h.equals(l.position,p)&&l.heightReference===f):f===je.NONE&&!u(c)&&(u(l)&&(mB(o,s,n),l=void 0),c=n.getPoint(s),c.id=s,o.pointPrimitive=c),u(c))c.show=!0,c.position=p,c.scaleByDistance=q.getValueOrUndefined(a._scaleByDistance,e,Rfe),c.translucencyByDistance=q.getValueOrUndefined(a._translucencyByDistance,e,Bfe),c.color=q.getValueOrDefault(a._color,e,vfe,Ofe),c.outlineColor=q.getValueOrDefault(a._outlineColor,e,wfe,Mfe),c.outlineWidth=q.getValueOrDefault(a._outlineWidth,e,Dfe),c.pixelSize=q.getValueOrDefault(a._pixelSize,e,Ife),c.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e,Lfe),c.disableDepthTestDistance=q.getValueOrDefault(a._disableDepthTestDistance,e,Pfe);else if(u(l)){l.show=!0,l.position=p,l.scaleByDistance=q.getValueOrUndefined(a._scaleByDistance,e,Rfe),l.translucencyByDistance=q.getValueOrUndefined(a._translucencyByDistance,e,Bfe),l.distanceDisplayCondition=q.getValueOrUndefined(a._distanceDisplayCondition,e,Lfe),l.disableDepthTestDistance=q.getValueOrDefault(a._disableDepthTestDistance,e,Pfe),l.heightReference=f;let A=q.getValueOrDefault(a._color,e,vfe,Ofe),x=q.getValueOrDefault(a._outlineColor,e,wfe,Mfe),C=Math.round(q.getValueOrDefault(a._outlineWidth,e,Dfe)),T=Math.max(1,Math.round(q.getValueOrDefault(a._pixelSize,e,Ife)));if(C>0?(l.scale=1,g=g||C!==o.outlineWidth||T!==o.pixelSize||!z.equals(A,o.color)||!z.equals(x,o.outlineColor)):(l.scale=T/50,T=50,g=g||C!==o.outlineWidth||!z.equals(A,o.color)||!z.equals(x,o.outlineColor)),g){o.color=z.clone(A,o.color),o.outlineColor=z.clone(x,o.outlineColor),o.pixelSize=T,o.outlineWidth=C;let E=A.alpha,S=A.toCssColorString(),v=x.toCssColorString(),D=JSON.stringify([S,T,v,C]);l.setImage(D,jA(E,S,v,C,T))}m&&l._updateClamping()}}return!0};wy.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!u(n)||!(u(n.pointPrimitive)||u(n.billboard)))return lt.FAILED;if(u(n.pointPrimitive))t.center=h.clone(n.pointPrimitive.position,t.center);else{let i=n.billboard;if(!u(i._clampedPosition))return lt.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,lt.DONE};wy.prototype.isDestroyed=function(){return!1};wy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(wy.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removePoint(e[t]);return ue(this)};wy.prototype._onCollectionChanged=function(e,t,n,i){let r,o,s=this._items,a=this._cluster;for(r=t.length-1;r>-1;r--)o=t[r],u(o._point)&&u(o._position)&&s.set(o.id,new Nfe(o));for(r=i.length-1;r>-1;r--)o=i[r],u(o._point)&&u(o._position)?s.contains(o.id)||s.set(o.id,new Nfe(o)):(mB(s.get(o.id),o,a),s.remove(o.id));for(r=n.length-1;r>-1;r--)o=n[r],mB(s.get(o.id),o,a),s.remove(o.id)};function mB(e,t,n){if(u(e)){let i=e.pointPrimitive;if(u(i)){e.pointPrimitive=void 0,n.removePoint(t);return}let r=e.billboard;u(r)&&(e.billboard=void 0,n.removeBillboard(t))}}var pB=wy;var zfe=[];function PKe(e,t,n,i,r){let o=zfe;o.length=r;let s,a=n.red,c=n.green,l=n.blue,f=n.alpha,d=i.red,p=i.green,g=i.blue,m=i.alpha;if(z.equals(n,i)){for(s=0;s<r;s++)o[s]=z.clone(n);return o}let A=(d-a)/r,x=(p-c)/r,C=(g-l)/r,T=(m-f)/r;for(s=0;s<r;s++)o[s]=new z(a+s*A,c+s*x,l+s*C,f+s*T);return o}function _B(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.width,1),r=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._width=i,this._colorsPerVertex=r,this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._arcType=y(e.arcType,Kt.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=re.clone(y(e.ellipsoid,re.WGS84)),this._workerName="createPolylineGeometry";let o=1+t.length*h.packedLength;o+=u(n)?1+n.length*z.packedLength:1,this.packedLength=o+re.packedLength+Pe.packedLength+4}_B.pack=function(e,t,n){n=y(n,0);let i,r=e._positions,o=r.length;for(t[n++]=o,i=0;i<o;++i,n+=h.packedLength)h.pack(r[i],t,n);let s=e._colors;for(o=u(s)?s.length:0,t[n++]=o,i=0;i<o;++i,n+=z.packedLength)z.pack(s[i],t,n);return re.pack(e._ellipsoid,t,n),n+=re.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._width,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};var Hfe=re.clone(re.UNIT_SPHERE),Gfe=new Pe,Bx={positions:void 0,colors:void 0,ellipsoid:Hfe,vertexFormat:Gfe,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};_B.unpack=function(e,t,n){t=y(t,0);let i,r=e[t++],o=new Array(r);for(i=0;i<r;++i,t+=h.packedLength)o[i]=h.unpack(e,t);r=e[t++];let s=r>0?new Array(r):void 0;for(i=0;i<r;++i,t+=z.packedLength)s[i]=z.unpack(e,t);let a=re.unpack(e,t,Hfe);t+=re.packedLength;let c=Pe.unpack(e,t,Gfe);t+=Pe.packedLength;let l=e[t++],f=e[t++]===1,d=e[t++],p=e[t];return u(n)?(n._positions=o,n._colors=s,n._ellipsoid=re.clone(a,n._ellipsoid),n._vertexFormat=Pe.clone(c,n._vertexFormat),n._width=l,n._colorsPerVertex=f,n._arcType=d,n._granularity=p,n):(Bx.positions=o,Bx.colors=s,Bx.width=l,Bx.colorsPerVertex=f,Bx.arcType=d,Bx.granularity=p,new _B(Bx))};var Ffe=new h,Ufe=new h,Vfe=new h,kfe=new h;_B.createGeometry=function(e){let t=e._width,n=e._vertexFormat,i=e._colors,r=e._colorsPerVertex,o=e._arcType,s=e._granularity,a=e._ellipsoid,c,l,f,d=[],p=Er(e._positions,h.equalsEpsilon,!1,d);if(u(i)&&d.length>0){let R=0,F=d[0];i=i.filter(function(k,V){let G=!1;return r?G=V===F||V===0&&F===1:G=V+1===F,G?(R++,F=d[R],!1):!0})}let g=p.length;if(g<2||t<=0)return;if(o===Kt.GEODESIC||o===Kt.RHUMB){let R,F;o===Kt.GEODESIC?(R=P.chordLength(s,a.maximumRadius),F=Mi.numberOfPoints):(R=s,F=Mi.numberOfPointsRhumbLine);let k=Mi.extractHeights(p,a);if(u(i)){let V=1;for(c=0;c<g-1;++c)V+=F(p[c],p[c+1],R);let G=new Array(V),U=0;for(c=0;c<g-1;++c){let Y=p[c],W=p[c+1],Z=i[c],j=F(Y,W,R);if(r&&c<V){let K=i[c+1],J=PKe(Y,W,Z,K,j),_e=J.length;for(l=0;l<_e;++l)G[U++]=J[l]}else for(l=0;l<j;++l)G[U++]=z.clone(Z)}G[U]=z.clone(i[i.length-1]),i=G,zfe.length=0}o===Kt.GEODESIC?p=Mi.generateCartesianArc({positions:p,minDistance:R,ellipsoid:a,height:k}):p=Mi.generateCartesianRhumbArc({positions:p,granularity:R,ellipsoid:a,height:k})}g=p.length;let m=g*4-4,A=new Float64Array(m*3),x=new Float64Array(m*3),C=new Float64Array(m*3),T=new Float32Array(m*2),E=n.st?new Float32Array(m*2):void 0,S=u(i)?new Uint8Array(m*4):void 0,v=0,D=0,M=0,O=0,B;for(l=0;l<g;++l){l===0?(B=Ffe,h.subtract(p[0],p[1],B),h.add(p[0],B,B)):B=p[l-1],h.clone(B,Vfe),h.clone(p[l],Ufe),l===g-1?(B=Ffe,h.subtract(p[g-1],p[g-2],B),h.add(p[g-1],B,B)):B=p[l+1],h.clone(B,kfe);let R,F;u(S)&&(l!==0&&!r?R=i[l-1]:R=i[l],l!==g-1&&(F=i[l]));let k=l===0?2:0,V=l===g-1?2:4;for(f=k;f<V;++f){h.pack(Ufe,A,v),h.pack(Vfe,x,v),h.pack(kfe,C,v),v+=3;let G=f-2<0?-1:1;if(T[D++]=2*(f%2)-1,T[D++]=G*t,n.st&&(E[M++]=l/(g-1),E[M++]=Math.max(T[D-2],0)),u(S)){let U=f<2?R:F;S[O++]=z.floatToByte(U.red),S[O++]=z.floatToByte(U.green),S[O++]=z.floatToByte(U.blue),S[O++]=z.floatToByte(U.alpha)}}}let L=new dn;L.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:A}),L.prevPosition=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:x}),L.nextPosition=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:C}),L.expandAndWidth=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:T}),n.st&&(L.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:E})),u(S)&&(L.color=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:S,normalize:!0}));let _=Ue.createTypedArray(m,g*6-6),b=0,w=0,I=g-1;for(l=0;l<I;++l)_[w++]=b,_[w++]=b+2,_[w++]=b+1,_[w++]=b+1,_[w++]=b+2,_[w++]=b+3,b+=4;return new ut({attributes:L,indices:_,primitiveType:Be.TRIANGLES,boundingSphere:ae.fromPoints(p),geometryType:Xu.POLYLINES})};var w_=_B;var OKe=new ei(0),pk={},Wfe=new z,MKe=new Ut(z.WHITE),RKe=new ei(!0),BKe=new ei(yn.DISABLED),LKe=new ei(new vt),NKe=new ei(kn.BOTH);function FKe(){this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function UKe(){this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function nh(e,t){this._entity=e,this._scene=t,this._entitySubscription=e.definitionChanged.addEventListener(nh.prototype._onEntityPropertyChanged,this),this._fillEnabled=!1,this._dynamic=!1,this._geometryChanged=new ge,this._showProperty=void 0,this._materialProperty=void 0,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._depthFailMaterialProperty=void 0,this._geometryOptions=new FKe,this._groundGeometryOptions=new UKe,this._id=`polyline-${e.id}`,this._clampToGround=!1,this._supportsPolylinesOnTerrain=Kr.supportsPolylinesOnTerrain(t),this._zIndex=0,this._onEntityPropertyChanged(e,"polyline",e.polyline,void 0)}Object.defineProperties(nh.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!u(this._entity.availability)&&q.isConstant(this._showProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},depthFailMaterialProperty:{get:function(){return this._depthFailMaterialProperty}},outlineEnabled:{value:!1},hasConstantOutline:{value:!0},outlineColorProperty:{value:void 0},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{value:!1},geometryChanged:{get:function(){return this._geometryChanged}},arcType:{get:function(){return this._arcType}},clampToGround:{get:function(){return this._clampToGround&&this._supportsPolylinesOnTerrain}},zIndex:{get:function(){return this._zIndex}}});nh.prototype.isOutlineVisible=function(e){return!1};nh.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e);return y(n,!1)};nh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(n&&t.isShowing&&this._showProperty.getValue(e)),r=this._distanceDisplayConditionProperty.getValue(e),o=Vn.fromDistanceDisplayCondition(r),s={show:i,distanceDisplayCondition:o},a;return this._materialProperty instanceof Ut&&(u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Wfe)),u(a)||(a=z.WHITE),s.color=kt.fromColor(a)),this.clampToGround?new xt({id:t,geometry:new $0(this._groundGeometryOptions),attributes:s}):(u(this._depthFailMaterialProperty)&&this._depthFailMaterialProperty instanceof Ut&&(u(this._depthFailMaterialProperty.color)&&(this._depthFailMaterialProperty.color.isConstant||n)&&(a=this._depthFailMaterialProperty.color.getValue(e,Wfe)),u(a)||(a=z.WHITE),s.depthFailColor=kt.fromColor(a)),new xt({id:t,geometry:new w_(this._geometryOptions),attributes:s}))};nh.prototype.createOutlineGeometryInstance=function(e){};nh.prototype.isDestroyed=function(){return!1};nh.prototype.destroy=function(){this._entitySubscription(),ue(this)};nh.prototype._onEntityPropertyChanged=function(e,t,n,i){if(!(t==="availability"||t==="polyline"))return;let r=this._entity.polyline;if(!u(r)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let o=r.positions,s=r.show;if(u(s)&&s.isConstant&&!s.getValue(ze.MINIMUM_VALUE)||!u(o)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let a=r.zIndex,c=y(r.material,MKe),l=c instanceof Ut;this._materialProperty=c,this._depthFailMaterialProperty=r.depthFailMaterial,this._showProperty=y(s,RKe),this._shadowsProperty=y(r.shadows,BKe),this._distanceDisplayConditionProperty=y(r.distanceDisplayCondition,LKe),this._classificationTypeProperty=y(r.classificationType,NKe),this._fillEnabled=!0,this._zIndex=y(a,OKe);let f=r.width,d=r.arcType,p=r.clampToGround,g=r.granularity;if(!o.isConstant||!q.isConstant(f)||!q.isConstant(d)||!q.isConstant(g)||!q.isConstant(p)||!q.isConstant(a))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{let m=this._geometryOptions,A=o.getValue(ze.MINIMUM_VALUE,m.positions);if(!u(A)||A.length<2){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let x;l&&(!u(this._depthFailMaterialProperty)||this._depthFailMaterialProperty instanceof Ut)?x=Go.VERTEX_FORMAT:x=qs.VERTEX_FORMAT,m.vertexFormat=x,m.positions=A,m.width=u(f)?f.getValue(ze.MINIMUM_VALUE):void 0,m.arcType=u(d)?d.getValue(ze.MINIMUM_VALUE):void 0,m.granularity=u(g)?g.getValue(ze.MINIMUM_VALUE):void 0;let C=this._groundGeometryOptions;C.positions=A,C.width=m.width,C.arcType=m.arcType,C.granularity=m.granularity,this._clampToGround=u(p)?p.getValue(ze.MINIMUM_VALUE):!1,!this._clampToGround&&u(a)&&Ot("Entity polylines must have clampToGround: true when using zIndex. zIndex will be ignored."),this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};nh.prototype.createDynamicUpdater=function(e,t){return new gB(e,t,this)};var Sb={positions:void 0,granularity:void 0,height:void 0,ellipsoid:void 0};function gB(e,t,n){this._line=void 0,this._primitives=e,this._groundPrimitives=t,this._groundPolylinePrimitive=void 0,this._material=void 0,this._geometryUpdater=n,this._positions=[]}function jfe(e){if(u(e._line))return e._line;let t=e._geometryUpdater._scene.id,n=pk[t],i=e._primitives;!u(n)||n.isDestroyed()?(n=new Fd,pk[t]=n,i.add(n)):i.contains(n)||i.add(n);let r=n.add();return r.id=e._geometryUpdater._entity,e._line=r,r}gB.prototype.update=function(e){let t=this._geometryUpdater,n=t._entity,i=n.polyline,r=i.positions,o=q.getValueOrUndefined(r,e,this._positions);t._clampToGround=q.getValueOrDefault(i._clampToGround,e,!1),t._groundGeometryOptions.positions=o,t._groundGeometryOptions.width=q.getValueOrDefault(i._width,e,1),t._groundGeometryOptions.arcType=q.getValueOrDefault(i._arcType,e,Kt.GEODESIC),t._groundGeometryOptions.granularity=q.getValueOrDefault(i._granularity,e,9999);let s=this._groundPrimitives;if(u(this._groundPolylinePrimitive)&&(s.remove(this._groundPolylinePrimitive),this._groundPolylinePrimitive=void 0),t.clampToGround){if(!n.isShowing||!n.isAvailable(e)||!q.getValueOrDefault(i._show,e,!0)||!u(o)||o.length<2)return;let f=t.fillMaterialProperty,d;if(f instanceof Ut)d=new Go;else{let p=Xr.getValue(e,f,this._material);d=new qs({material:p,translucent:p.isTranslucent()}),this._material=p}this._groundPolylinePrimitive=s.add(new hd({geometryInstances:t.createFillGeometryInstance(e),appearance:d,classificationType:t.classificationTypeProperty.getValue(e),asynchronous:!1}),q.getValueOrUndefined(t.zIndex,e)),u(this._line)&&(this._line.show=!1);return}let a=jfe(this);if(!n.isShowing||!n.isAvailable(e)||!q.getValueOrDefault(i._show,e,!0)){a.show=!1;return}if(!u(o)||o.length<2){a.show=!1;return}let c=Kt.GEODESIC;c=q.getValueOrDefault(i._arcType,e,c);let l=t._scene.globe;c!==Kt.NONE&&u(l)&&(Sb.ellipsoid=l.ellipsoid,Sb.positions=o,Sb.granularity=q.getValueOrUndefined(i._granularity,e),Sb.height=Mi.extractHeights(o,l.ellipsoid),c===Kt.GEODESIC?o=Mi.generateCartesianArc(Sb):o=Mi.generateCartesianRhumbArc(Sb)),a.show=!0,a.positions=o.slice(),a.material=Xr.getValue(e,t.fillMaterialProperty,a.material),a.width=q.getValueOrDefault(i._width,e,1),a.distanceDisplayCondition=q.getValueOrUndefined(i._distanceDisplayCondition,e,a.distanceDisplayCondition)};gB.prototype.getBoundingSphere=function(e){if(this._geometryUpdater.clampToGround){let t=this._groundPolylinePrimitive;if(u(t)&&t.show&&t.ready){let n=t.getGeometryInstanceAttributes(this._geometryUpdater._entity);if(u(n)&&u(n.boundingSphere))return ae.clone(n.boundingSphere,e),lt.DONE}return u(t)&&!t.ready?lt.PENDING:lt.DONE}else{let t=jfe(this);if(t.show&&t.positions.length>0)return ae.fromPoints(t.positions,e),lt.DONE}return lt.FAILED};gB.prototype.isDestroyed=function(){return!1};gB.prototype.destroy=function(){let t=this._geometryUpdater._scene.id,n=pk[t];u(n)&&(n.remove(this._line),n.length===0&&(this._primitives.removeAndDestroy(n),delete pk[t])),u(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),ue(this)};var yB=nh;var VKe=new z,kKe=new vt,zKe=new vt;function ih(e,t,n,i,r){let o;n instanceof Ut?o=Go:o=qs,this.orderedGroundPrimitives=e,this.classificationType=t,this.appearanceType=o,this.materialProperty=n,this.updaters=new Ct,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Ct,this.material=void 0,this.updatersWithAttributes=new Ct,this.attributes=new Ct,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(ih.prototype.onMaterialChanged,this),this.subscriptions=new Ct,this.showsUpdated=new Ct,this.zIndex=i,this._asynchronous=r}ih.prototype.onMaterialChanged=function(){this.invalidated=!0};ih.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Ut&&t instanceof Ut?!0:u(t)&&t.equals(n)};ih.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!q.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let r=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(o,s,a,c){s==="isShowing"&&r.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};ih.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return u(n)&&(n(),this.subscriptions.remove(t)),!0}return!1};ih.prototype.update=function(e){let t=!0,n=this.primitive,i=this.orderedGroundPrimitives,r=this.geometry.values,o;if(this.createPrimitive){if(r.length>0)u(n)&&(u(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),n=new hd({show:!1,asynchronous:this._asynchronous,geometryInstances:r.slice(),appearance:new this.appearanceType,classificationType:this.classificationType}),this.appearanceType===qs&&(this.material=Xr.getValue(e,this.materialProperty,this.material),n.appearance.material=this.material),i.add(n,this.zIndex),t=!1;else{u(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;u(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(u(n)&&n.ready){n.show=!0,u(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===qs&&(this.material=Xr.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material);let s=this.updatersWithAttributes.values,a=s.length;for(o=0;o<a;o++){let c=s[o],l=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(u(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!c.fillMaterialProperty.isConstant){let A=c.fillMaterialProperty.color,x=q.getValueOrDefault(A,e,z.WHITE,VKe);z.equals(d._lastColor,x)||(d._lastColor=z.clone(x,d._lastColor),d.color=kt.toValue(x,d.color))}let p=l.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!q.isConstant(m)){let A=q.getValueOrDefault(m,e,zKe,kKe);vt.equals(A,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=vt.clone(A,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Vn.toValue(A,d.distanceDisplayCondition))}}this.updateShows(n)}else u(n)&&!n.ready&&(t=!1);return t};ih.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let r=t[i],o=r.entity,s=this.geometry.get(r.id),a=this.attributes.get(s.id.id);u(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=o.isShowing,l=a.show[0]===1;c!==l&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};ih.prototype.contains=function(e){return this.updaters.contains(e.id)};ih.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return lt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!u(i)||!u(i.boundingSphere)||u(i.show)&&i.show[0]===0?lt.FAILED:(i.boundingSphere.clone(t),lt.DONE)};ih.prototype.destroy=function(){let e=this.primitive,t=this.orderedGroundPrimitives;u(e)&&t.remove(e);let n=this.oldPrimitive;u(n)&&t.remove(n),this.removeMaterialSubscription()};function vb(e,t,n){this._items=[],this._orderedGroundPrimitives=e,this._classificationType=t,this._asynchronous=y(n,!0)}vb.prototype.add=function(e,t){let n=this._items,i=n.length,r=t.createFillGeometryInstance(e),o=q.getValueOrDefault(t.zIndex,0);for(let a=0;a<i;++a){let c=n[a];if(c.isMaterial(t)&&c.zIndex===o){c.add(e,t,r);return}}let s=new ih(this._orderedGroundPrimitives,this._classificationType,t.fillMaterialProperty,o,this._asynchronous);s.add(e,t,r),n.push(s)};vb.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let r=t[i];if(r.remove(e)){r.updaters.length===0&&(t.splice(i,1),r.destroy());break}}};vb.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let o=n[t];if(o.invalidated){n.splice(t,1);let s=o.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);o.destroy()}}let r=!0;for(t=0;t<n.length;t++)r=n[t].update(e)&&r;return r};vb.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let r=0;r<i;r++){let o=n[r];if(o.contains(e))return o.getBoundingSphere(e,t)}return lt.FAILED};vb.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var AB=vb;var HKe=[];function qfe(e,t){let n=e._batches,i=n.length;for(let r=0;r<i;r++)n[r].remove(t)}function Yfe(e,t,n){if(n.isDynamic){e._dynamicBatch.add(t,n);return}if(n.clampToGround&&n.fillEnabled){let s=n.classificationTypeProperty.getValue(t);e._groundBatches[s].add(t,n);return}let i;n.fillEnabled&&(i=n.shadowsProperty.getValue(t));let r=0;u(n.depthFailMaterialProperty)&&(r=n.depthFailMaterialProperty instanceof Ut?1:2);let o;u(i)&&(o=i+r*yn.NUMBER_OF_SHADOW_MODES),n.fillEnabled&&(n.fillMaterialProperty instanceof Ut?e._colorBatches[o].add(t,n):e._materialBatches[o].add(t,n))}function _m(e,t,n,i){i=y(i,e.groundPrimitives),n=y(n,e.primitives),this._scene=e,this._primitives=n,this._entityCollection=void 0,this._addedObjects=new Ct,this._removedObjects=new Ct,this._changedObjects=new Ct;let r,o=yn.NUMBER_OF_SHADOW_MODES;for(this._colorBatches=new Array(o*3),this._materialBatches=new Array(o*3),r=0;r<o;++r)this._colorBatches[r]=new Pf(n,Go,void 0,!1,r),this._materialBatches[r]=new Of(n,qs,void 0,!1,r),this._colorBatches[r+o]=new Pf(n,Go,Go,!1,r),this._materialBatches[r+o]=new Of(n,qs,Go,!1,r),this._colorBatches[r+o*2]=new Pf(n,Go,qs,!1,r),this._materialBatches[r+o*2]=new Of(n,qs,qs,!1,r);this._dynamicBatch=new Tx(n,i);let s=kn.NUMBER_OF_CLASSIFICATION_TYPES;for(this._groundBatches=new Array(s),r=0;r<s;++r)this._groundBatches[r]=new AB(i,r);this._batches=this._colorBatches.concat(this._materialBatches,this._dynamicBatch,this._groundBatches),this._subscriptions=new Ct,this._updaters=new Ct,this._entityCollection=t,t.collectionChanged.addEventListener(_m.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,HKe)}_m.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,r=i.values,o=this._changedObjects,s=o.values,a,c,l,f;for(a=s.length-1;a>-1;a--)c=s[a],l=c.id,f=this._updaters.get(l),f.entity===c?(qfe(this,f),Yfe(this,e,f)):(r.push(c),n.push(c));for(a=r.length-1;a>-1;a--)c=r[a],l=c.id,f=this._updaters.get(l),qfe(this,f),f.destroy(),this._updaters.remove(l),this._subscriptions.get(l)(),this._subscriptions.remove(l);for(a=n.length-1;a>-1;a--)c=n[a],l=c.id,f=new yB(c,this._scene),this._updaters.set(l,f),Yfe(this,e,f),this._subscriptions.set(l,f.geometryChanged.addEventListener(_m._onGeometryChanged,this));t.removeAll(),i.removeAll(),o.removeAll();let d=!0,p=this._batches,g=p.length;for(a=0;a<g;a++)d=p[a].update(e)&&d;return d};var GKe=[],WKe=new ae;_m.prototype.getBoundingSphere=function(e,t){let n=GKe,i=WKe,r=0,o=lt.DONE,s=this._batches,a=s.length,c=this._updaters.get(e.id);for(let l=0;l<a;l++){if(o=s[l].getBoundingSphere(c,i),o===lt.PENDING)return lt.PENDING;o===lt.DONE&&(n[r]=ae.clone(i,n[r]),r++)}return r===0?lt.FAILED:(n.length=r,ae.fromBoundingSpheres(n,t),lt.DONE)};_m.prototype.isDestroyed=function(){return!1};_m.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(_m.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();return this._subscriptions.removeAll(),ue(this)};_m._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,r=i.id;!u(t.get(r))&&!u(n.get(r))&&n.set(r,i)};_m.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,r=this._removedObjects,o=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(r.set(a,c),o.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,r.remove(a)?o.set(a,c):i.set(a,c)};var xB=_m;function Bf(e){Pc.initializeTerrainHeights(),hd.initializeTerrainHeights();let t=e.scene,n=e.dataSourceCollection;this._eventHelper=new Po,this._eventHelper.add(n.dataSourceAdded,this._onDataSourceAdded,this),this._eventHelper.add(n.dataSourceRemoved,this._onDataSourceRemoved,this),this._eventHelper.add(n.dataSourceMoved,this._onDataSourceMoved,this),this._eventHelper.add(t.postRender,this._postRender,this),this._dataSourceCollection=n,this._scene=t,this._visualizersCallback=y(e.visualizersCallback,Bf.defaultVisualizersCallback);let i=!1,r=new Il,o=new Il;n.length>0&&(t.primitives.add(r),t.groundPrimitives.add(o),i=!0),this._primitives=r,this._groundPrimitives=o;for(let l=0,f=n.length;l<f;l++)this._onDataSourceAdded(n,n.get(l));let s=new CR;this._onDataSourceAdded(void 0,s),this._defaultDataSource=s;let a,c;if(!i){let l=this,f=function(){t.primitives.add(r),t.groundPrimitives.add(o),a(),c(),l._removeDefaultDataSourceListener=void 0,l._removeDataSourceCollectionListener=void 0};a=s.entities.collectionChanged.addEventListener(f),c=n.dataSourceAdded.addEventListener(f)}this._removeDefaultDataSourceListener=a,this._removeDataSourceCollectionListener=c,this._ready=!1}Bf.defaultVisualizersCallback=function(e,t,n){let i=n.entities;return[new hI(t,i),new cB(e,i,n._primitives,n._groundPrimitives),new lB(t,i),new fB(e,i),new aR(e,i),new pB(t,i),new hB(e,i),new xB(e,i,n._primitives,n._groundPrimitives)]};Object.defineProperties(Bf.prototype,{scene:{get:function(){return this._scene}},dataSources:{get:function(){return this._dataSourceCollection}},defaultDataSource:{get:function(){return this._defaultDataSource}},ready:{get:function(){return this._ready}}});Bf.prototype.isDestroyed=function(){return!1};Bf.prototype.destroy=function(){this._eventHelper.removeAll();let e=this._dataSourceCollection;for(let t=0,n=e.length;t<n;++t)this._onDataSourceRemoved(this._dataSourceCollection,e.get(t));return this._onDataSourceRemoved(void 0,this._defaultDataSource),u(this._removeDefaultDataSourceListener)?(this._removeDefaultDataSourceListener(),this._removeDataSourceCollectionListener()):(this._scene.primitives.remove(this._primitives),this._scene.groundPrimitives.remove(this._groundPrimitives)),ue(this)};Bf.prototype.update=function(e){if(!si.initialized)return this._ready=!1,!1;let t=!0,n,i,r,o,s=this._dataSourceCollection,a=s.length;for(n=0;n<a;n++){let c=s.get(n);for(u(c.update)&&(t=c.update(e)&&t),r=c._visualizers,o=r.length,i=0;i<o;i++)t=r[i].update(e)&&t}for(r=this._defaultDataSource._visualizers,o=r.length,i=0;i<o;i++)t=r[i].update(e)&&t;return this._ready=t,t};Bf.prototype._postRender=function(){let e=this._scene.frameState,t=this._dataSourceCollection,n=t.length;for(let i=0;i<n;i++){let r=t.get(i),o=r.credit;u(o)&&e.creditDisplay.addCreditToNextFrame(o);let s=r._resourceCredits;if(u(s)){let a=s.length;for(let c=0;c<a;c++)e.creditDisplay.addCreditToNextFrame(s[c])}}};var jKe=[],qKe=new ae;Bf.prototype.getBoundingSphere=function(e,t,n){if(!this._ready)return lt.PENDING;let i,r,o=this._defaultDataSource;if(!o.entities.contains(e)){o=void 0;let p=this._dataSourceCollection;for(r=p.length,i=0;i<r;i++){let g=p.get(i);if(g.entities.contains(e)){o=g;break}}}if(!u(o))return lt.FAILED;let s=jKe,a=qKe,c=0,l=lt.DONE,f=o._visualizers,d=f.length;for(i=0;i<d;i++){let p=f[i];if(u(p.getBoundingSphere)){if(l=f[i].getBoundingSphere(e,a),!t&&l===lt.PENDING)return lt.PENDING;l===lt.DONE&&(s[c]=ae.clone(a,s[c]),c++)}}return c===0?lt.FAILED:(s.length=c,ae.fromBoundingSpheres(s,n),lt.DONE)};Bf.prototype._onDataSourceAdded=function(e,t){let n=this._scene,i=this._primitives,r=this._groundPrimitives,o=i.add(new Il),s=r.add(new NR);t._primitives=o,t._groundPrimitives=s;let a=t.clustering;a._initialize(n),o.add(a),t._visualizers=this._visualizersCallback(n,a,t)};Bf.prototype._onDataSourceRemoved=function(e,t){let n=this._primitives,i=this._groundPrimitives,r=t._primitives,o=t._groundPrimitives,s=t.clustering;r.remove(s);let a=t._visualizers,c=a.length;for(let l=0;l<c;l++)a[l].destroy();n.remove(r),i.remove(o),t._visualizers=void 0};Bf.prototype._onDataSourceMoved=function(e,t,n){let i=this._primitives,r=this._groundPrimitives,o=e._primitives,s=e._groundPrimitives;t===n+1?(i.raise(o),r.raise(s)):t===n-1?(i.lower(o),r.lower(s)):t===0?(i.lowerToBottom(o),r.lowerToBottom(s),i.raise(o),r.raise(s)):(i.raiseToTop(o),r.raiseToTop(s))};var CB=Bf;function qW(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.range=y(n,0)}qW.clone=function(e,t){if(u(e))return u(t)||(t=new qW),t.heading=e.heading,t.pitch=e.pitch,t.range=e.range,t};var Cu=qW;var Xfe=new Q,Kfe=new Q,Jfe=new Q,YKe=new N,_k=new h,Zfe=new h,YW=new h,XW=new h,Qfe=new h,$fe=new h,wb=new ee,XKe=1.25;function KKe(e,t,n,i,r,o,s){let a=e.scene.mode,c=r.getValue(o,e._lastCartesian);if(u(c)){let l=!1,f=!1,d,p,g;if(a===ne.SCENE3D){ee.addSeconds(o,.001,wb);let T=r.getValue(wb,_k);if(u(T)||(ee.addSeconds(o,-.001,wb),T=r.getValue(wb,_k),f=!0),u(T)){let E=Mt.computeFixedToIcrfMatrix(o,Xfe),S=Mt.computeFixedToIcrfMatrix(wb,Kfe),v;!u(E)||!u(S)?(v=Mt.computeTemeToPseudoFixedMatrix(o,Jfe),E=Q.transpose(v,Xfe),S=Mt.computeTemeToPseudoFixedMatrix(wb,Kfe),Q.transpose(S,S)):v=Q.transpose(E,Jfe);let D=Q.multiplyByVector(E,c,Qfe),M=Q.multiplyByVector(S,T,$fe);h.subtract(D,M,XW);let O=h.magnitude(XW)*1e3,B=P.GRAVITATIONALPARAMETER,L=-B/(O*O-2*B/h.magnitude(D));L<0||L>XKe*s.maximumRadius?(d=Zfe,h.normalize(c,d),h.negate(d,d),g=h.clone(h.UNIT_Z,YW),p=h.cross(g,d,_k),h.magnitude(p)>P.EPSILON7&&(h.normalize(d,d),h.normalize(p,p),g=h.cross(d,p,YW),h.normalize(g,g),l=!0)):h.equalsEpsilon(c,T,P.EPSILON7)||(g=Zfe,h.normalize(D,g),h.normalize(M,M),p=h.cross(g,M,YW),f&&(p=h.multiplyByScalar(p,-1,p)),h.equalsEpsilon(p,h.ZERO,P.EPSILON7)||(d=h.cross(p,g,_k),Q.multiplyByVector(v,d,d),Q.multiplyByVector(v,p,p),Q.multiplyByVector(v,g,g),h.normalize(d,d),h.normalize(p,p),h.normalize(g,g),l=!0))}}u(e.boundingSphere)&&(c=e.boundingSphere.center);let m,A,x;i&&(m=h.clone(t.position,XW),A=h.clone(t.direction,Qfe),x=h.clone(t.up,$fe));let C=YKe;l?(C[0]=d.x,C[1]=d.y,C[2]=d.z,C[3]=0,C[4]=p.x,C[5]=p.y,C[6]=p.z,C[7]=0,C[8]=g.x,C[9]=g.y,C[10]=g.z,C[11]=0,C[12]=c.x,C[13]=c.y,C[14]=c.z,C[15]=0):Mt.eastNorthUpToFixedFrame(c,s,C),t._setTransform(C),i&&(h.clone(m,t.position),h.clone(A,t.direction),h.clone(x,t.up),h.cross(A,x,t.right))}if(n){let l=a===ne.SCENE2D||h.equals(e._offset3D,h.ZERO)?void 0:e._offset3D;t.lookAtTransform(t.transform,l)}}function TB(e,t,n){this.entity=e,this.scene=t,this.ellipsoid=y(n,re.WGS84),this.boundingSphere=void 0,this._lastEntity=void 0,this._mode=void 0,this._lastCartesian=new h,this._defaultOffset3D=void 0,this._offset3D=new h}Object.defineProperties(TB,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(e){this._defaultOffset3D=h.clone(e,new h)}}});TB.defaultOffset3D=new h(-14e3,3500,3500);var gk=new Cu,JKe=new h;TB.prototype.update=function(e,t){let n=this.scene,i=this.ellipsoid,r=n.mode;if(r===ne.MORPHING)return;let o=this.entity,s=o.position;if(!u(s))return;let a=o!==this._lastEntity,c=r!==this._mode,l=n.camera,f=a||c,d=!0;if(a){let p=o.viewFrom,g=u(p);if(!g&&u(t)){gk.pitch=-P.PI_OVER_FOUR,gk.range=0;let m=s.getValue(e,JKe);if(u(m)){let A=2-1/Math.max(1,h.magnitude(m)/i.maximumRadius);gk.pitch*=A}l.viewBoundingSphere(t,gk),this.boundingSphere=t,f=!1,d=!1}else(!g||!u(p.getValue(e,this._offset3D)))&&h.clone(TB._defaultOffset3D,this._offset3D)}else!c&&this._mode!==ne.SCENE2D&&h.clone(l.position,this._offset3D);this._lastEntity=o,this._mode=r,KKe(this,l,f,d,s,e,i)};var EB=TB;function SB(){this._cache={}}SB.prototype.fromColor=function(e,t){return yk(void 0,void 0,e,t,this._cache)};SB.prototype.fromUrl=function(e,t,n){return yk(e,void 0,t,n,this._cache)};SB.prototype.fromMakiIconId=function(e,t,n){return yk($t(`Assets/Textures/maki/${encodeURIComponent(e)}.png`),void 0,t,n,this._cache)};SB.prototype.fromText=function(e,t,n){return yk(void 0,e,t,n,this._cache)};var ZKe=new z;function QKe(e,t,n){e.save(),e.scale(n/24,n/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,ZKe).toCssColorString(),e.lineWidth=.846,e.beginPath(),e.moveTo(6.72,.422),e.lineTo(17.28,.422),e.bezierCurveTo(18.553,.422,19.577,1.758,19.577,3.415),e.lineTo(19.577,10.973),e.bezierCurveTo(19.577,12.63,18.553,13.966,17.282,13.966),e.lineTo(14.386,14.008),e.lineTo(11.826,23.578),e.lineTo(9.614,14.008),e.lineTo(6.719,13.965),e.bezierCurveTo(5.446,13.983,4.422,12.629,4.422,10.972),e.lineTo(4.422,3.416),e.bezierCurveTo(4.423,1.76,5.447,.423,6.718,.423),e.closePath(),e.fill(),e.stroke(),e.restore()}function ede(e,t,n){let i=n/2.5,r=i,o=i;t.width>t.height?o=i*(t.height/t.width):t.width<t.height&&(r=i*(t.width/t.height));let s=Math.round((n-r)/2),a=Math.round(7/24*n-o/2);e.globalCompositeOperation="destination-out",e.drawImage(t,s-1,a,r,o),e.drawImage(t,s,a-1,r,o),e.drawImage(t,s+1,a,r,o),e.drawImage(t,s,a+1,r,o),e.globalCompositeOperation="destination-over",e.fillStyle=z.BLACK.toCssColorString(),e.fillRect(s-1,a-1,r+2,o+2),e.globalCompositeOperation="destination-out",e.drawImage(t,s,a,r,o),e.globalCompositeOperation="destination-over",e.fillStyle=z.WHITE.toCssColorString(),e.fillRect(s-1,a-2,r+2,o+2)}var bB=new Array(4);function yk(e,t,n,i,r){bB[0]=e,bB[1]=t,bB[2]=n,bB[3]=i;let o=JSON.stringify(bB),s=r[o];if(u(s))return s;let a=document.createElement("canvas");a.width=i,a.height=i;let c=a.getContext("2d");if(QKe(c,n,i),u(e)){let f=ve.createIfNeeded(e).fetchImage().then(function(d){return ede(c,d,i),r[o]=a,a});return r[o]=f,f}else if(u(t)){let l=YA(t,{font:`bold ${i}px sans-serif`});ede(c,l,i)}return r[o]=a,a}var D_=SB;var ide=Yi(nde(),1);function xk(e){return h.fromDegrees(e[0],e[1],e[2])}var KW={"urn:ogc:def:crs:OGC:1.3:CRS84":xk,"EPSG:4326":xk,"urn:ogc:def:crs:EPSG::4326":xk},rde={},ode={},JW=48,ZW,QW=z.ROYALBLUE,$W=z.YELLOW,e7=2,t7=z.fromBytes(255,255,0,100),n7=!1,$Ke={small:24,medium:48,large:64},eJe=["title","description","marker-size","marker-symbol","marker-color","stroke","stroke-opacity","stroke-width","fill","fill-opacity"];function sde(e,t){let n="";for(let i in e)if(e.hasOwnProperty(i)){if(i===t||eJe.indexOf(i)!==-1)continue;let r=e[i];u(r)&&(typeof r=="object"?n+=`<tr><th>${i}</th><td>${sde(r)}</td></tr>`:n+=`<tr><th>${i}</th><td>${r}</td></tr>`)}return n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function tJe(e,t,n){let i;return function(r,o){return u(i)||(i=e(t,n)),i}}function nJe(e,t){return new gd(tJe(sde,e,t),!0)}function Ck(e,t,n){let i=e.id;if(!u(i)||e.type!=="Feature")i=Wn();else{let s=2,a=i;for(;u(t.getById(a));)a=`${i}_${s}`,s++;i=a}let r=t.getOrCreateEntity(i),o=e.properties;if(u(o)){r.properties=o;let s,a=o.title;if(u(a))r.name=a,s="title";else{let l=Number.MAX_VALUE;for(let f in o)if(o.hasOwnProperty(f)&&o[f]){let d=f.toLowerCase();if(l>1&&d==="title"){l=1,s=f;break}else l>2&&d==="name"?(l=2,s=f):l>3&&/title/i.test(f)?(l=3,s=f):l>4&&/name/i.test(f)&&(l=4,s=f)}u(s)&&(r.name=o[s])}let c=o.description;c!==null&&(r.description=u(c)?new ei(c):n(o,s))}return r}function i7(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++)n[i]=t(e[i]);return n}var ade={Feature:lde,FeatureCollection:iJe,GeometryCollection:ude,LineString:pde,MultiLineString:_de,MultiPoint:hde,MultiPolygon:Ade,Point:dde,Polygon:yde,Topology:xde},cde={GeometryCollection:ude,LineString:pde,MultiLineString:_de,MultiPoint:hde,MultiPolygon:Ade,Point:dde,Polygon:yde,Topology:xde};function lde(e,t,n,i,r){if(t.geometry===null){Ck(t,e._entityCollection,r.describe);return}if(!u(t.geometry))throw new de("feature.geometry is required.");let o=t.geometry.type,s=cde[o];if(!u(s))throw new de(`Unknown geometry type: ${o}`);s(e,t,t.geometry,i,r)}function iJe(e,t,n,i,r){let o=t.features;for(let s=0,a=o.length;s<a;s++)lde(e,o[s],void 0,i,r)}function ude(e,t,n,i,r){let o=n.geometries;for(let s=0,a=o.length;s<a;s++){let c=o[s],l=c.type,f=cde[l];if(!u(f))throw new de(`Unknown geometry type: ${l}`);f(e,t,c,i,r)}}function fde(e,t,n,i,r){let o=r.markerSymbol,s=r.markerColor,a=r.markerSize,c=t.properties;if(u(c)){let g=c["marker-color"];u(g)&&(s=z.fromCssColorString(g)),a=y($Ke[c["marker-size"]],a);let m=c["marker-symbol"];u(m)&&(o=m)}let l;u(o)?o.length===1?l=e._pinBuilder.fromText(o.toUpperCase(),s,a):l=e._pinBuilder.fromMakiIconId(o,s,a):l=e._pinBuilder.fromColor(s,a);let f=new Ga;f.verticalOrigin=new ei(Pn.BOTTOM),i.length===2&&r.clampToGround&&(f.heightReference=je.CLAMP_TO_GROUND);let d=Ck(t,e._entityCollection,r.describe);d.billboard=f,d.position=new Mc(n(i));let p=Promise.resolve(l).then(function(g){f.image=new ei(g)}).catch(function(){f.image=new ei(e._pinBuilder.fromColor(s,a))});e._promises.push(p)}function dde(e,t,n,i,r){fde(e,t,i,n.coordinates,r)}function hde(e,t,n,i,r){let o=n.coordinates;for(let s=0;s<o.length;s++)fde(e,t,i,o[s],r)}function mde(e,t,n,i,r){let o=r.strokeMaterialProperty,s=r.strokeWidthProperty,a=t.properties;if(u(a)){let f=a["stroke-width"];u(f)&&(s=new ei(f));let d,p=a.stroke;u(p)&&(d=z.fromCssColorString(p));let g=a["stroke-opacity"];u(g)&&g!==1&&(u(d)||(d=o.color.getValue().clone()),d.alpha=g),u(d)&&(o=new Ut(d))}let c=Ck(t,e._entityCollection,r.describe),l=new qa;c.polyline=l,l.clampToGround=r.clampToGround,l.material=o,l.width=s,l.positions=new ei(i7(i,n)),l.arcType=Kt.RHUMB}function pde(e,t,n,i,r){mde(e,t,i,n.coordinates,r)}function _de(e,t,n,i,r){let o=n.coordinates;for(let s=0;s<o.length;s++)mde(e,t,i,o[s],r)}function gde(e,t,n,i,r){if(i.length===0||i[0].length===0)return;let o=r.strokeMaterialProperty.color,s=r.fillMaterialProperty,a=r.strokeWidthProperty,c=t.properties;if(u(c)){let g=c["stroke-width"];u(g)&&(a=new ei(g));let m,A=c.stroke;u(A)&&(m=z.fromCssColorString(A));let x=c["stroke-opacity"];u(x)&&x!==1&&(u(m)||(m=o.getValue().clone()),m.alpha=x),u(m)&&(o=new ei(m));let C,T=c.fill,E=s.color.getValue();u(T)&&(C=z.fromCssColorString(T),C.alpha=E.alpha),x=c["fill-opacity"],u(x)&&x!==E.alpha&&(u(C)||(C=E.clone()),C.alpha=x),u(C)&&(s=new Ut(C))}let l=new pd;l.outline=new ei(!0),l.outlineColor=o,l.outlineWidth=a,l.material=s,l.arcType=Kt.RHUMB;let f=[];for(let g=1,m=i.length;g<m;g++)f.push(new Rc(i7(i[g],n)));let d=i[0];l.hierarchy=new ei(new Rc(i7(d,n),f)),d[0].length>2?l.perPositionHeight=new ei(!0):r.clampToGround||(l.height=0);let p=Ck(t,e._entityCollection,r.describe);p.polygon=l}function yde(e,t,n,i,r){gde(e,t,i,n.coordinates,r)}function Ade(e,t,n,i,r){let o=n.coordinates;for(let s=0;s<o.length;s++)gde(e,t,i,o[s],r)}function xde(e,t,n,i,r){for(let o in n.objects)if(n.objects.hasOwnProperty(o)){let s=ide.feature(n,n.objects[o]),a=ade[s.type];a(e,s,s,i,r)}}function Dy(e){this._name=e,this._changed=new ge,this._error=new ge,this._isLoading=!1,this._loading=new ge,this._entityCollection=new Bs(this),this._promises=[],this._pinBuilder=new D_,this._entityCluster=new du,this._credit=void 0,this._resourceCredits=[]}Dy.load=function(e,t){return new Dy().load(e,t)};Object.defineProperties(Dy,{markerSize:{get:function(){return JW},set:function(e){JW=e}},markerSymbol:{get:function(){return ZW},set:function(e){ZW=e}},markerColor:{get:function(){return QW},set:function(e){QW=e}},stroke:{get:function(){return $W},set:function(e){$W=e}},strokeWidth:{get:function(){return e7},set:function(e){e7=e}},fill:{get:function(){return t7},set:function(e){t7=e}},clampToGround:{get:function(){return n7},set:function(e){n7=e}},crsNames:{get:function(){return KW}},crsLinkHrefs:{get:function(){return rde}},crsLinkTypes:{get:function(){return ode}}});Object.defineProperties(Dy.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{value:void 0,writable:!1},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});Dy.prototype.load=function(e,t){return Cde(this,e,t,!0)};Dy.prototype.process=function(e,t){return Cde(this,e,t,!1)};function Cde(e,t,n,i){Ro.setLoading(e,!0),n=y(n,y.EMPTY_OBJECT);let r=n.credit;typeof r=="string"&&(r=new wt(r)),e._credit=r;let o=t,s=n.sourceUri;if(typeof t=="string"||t instanceof ve){t=ve.createIfNeeded(t),o=t.fetchJson(),s=y(s,t.getUrlComponent());let a=e._resourceCredits,c=t.credits;if(u(c)){let l=c.length;for(let f=0;f<l;f++)a.push(c[f])}}return n={describe:y(n.describe,nJe),markerSize:y(n.markerSize,JW),markerSymbol:y(n.markerSymbol,ZW),markerColor:y(n.markerColor,QW),strokeWidthProperty:new ei(y(n.strokeWidth,e7)),strokeMaterialProperty:new Ut(y(n.stroke,$W)),fillMaterialProperty:new Ut(y(n.fill,t7)),clampToGround:y(n.clampToGround,n7)},Promise.resolve(o).then(function(a){return rJe(e,a,n,s,i)}).catch(function(a){throw Ro.setLoading(e,!1),e._error.raiseEvent(e,a),a})}Dy.prototype.update=function(e){return!0};function rJe(e,t,n,i,r){let o;u(i)&&(o=__(i)),u(o)&&e._name!==o&&(e._name=o,e._changed.raiseEvent(e));let s=ade[t.type];if(!u(s))throw new de(`Unsupported GeoJSON object type: ${t.type}`);let a=t.crs,c=a!==null?xk:null;if(u(a)){if(!u(a.properties))throw new de("crs.properties is undefined.");let l=a.properties;if(a.type==="name"){if(c=KW[l.name],!u(c))throw new de(`Unknown crs name: ${l.name}`)}else if(a.type==="link"){let f=rde[l.href];if(u(f)||(f=ode[l.type]),!u(f))throw new de(`Unable to resolve crs link: ${JSON.stringify(l)}`);c=f(l)}else if(a.type==="EPSG"){if(c=KW[`EPSG:${l.code}`],!u(c))throw new de(`Unknown crs EPSG code: ${l.code}`)}else throw new de(`Unknown crs type: ${a.type}`)}return Promise.resolve(c).then(function(l){return r&&e._entityCollection.removeAll(),l!==null&&s(e,t,t,l,n),Promise.all(e._promises).then(function(){return e._promises.length=0,Ro.setLoading(e,!1),e})})}var vB=Dy;var Qde=Yi(b7(),1);var $de;typeof DOMParser<"u"&&($de=new DOMParser);var xQe=new Qde.default({stripPrefix:!1,email:!1,replaceFn:function(e,t){return t.urlMatchType==="scheme"||t.urlMatchType==="www"}}),Vk=32,Wde=2414016,jde=1,qde=16093e3,Yde=.1,CQe=[null,void 0,"http://www.topografix.com/GPX/1/1"],Dr={gpx:CQe};function TQe(e){return new Promise((t,n)=>{let i=new FileReader;i.addEventListener("load",function(){t(i.result)}),i.addEventListener("error",function(){n(i.error)}),i.readAsText(e)})}function S7(e,t){let n=PB(e,"id");return n=u(n)?n:Wn(),t.getOrCreateEntity(n)}function v7(e){let t=Xde(e,"lon"),n=Xde(e,"lat"),i=DB(e,"ele",Dr.gpx);return h.fromDegrees(t,n,i)}function Xde(e,t){if(!u(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function PB(e,t){if(!u(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function My(e,t,n){if(!u(e))return;let i=e.childNodes,r=i.length;for(let o=0;o<r;o++){let s=i[o];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function w7(e,t,n){if(!u(e))return;let i=[],r=e.getElementsByTagName(t),o=r.length;for(let s=0;s<o;s++){let a=r[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function DB(e,t,n){let i=My(e,t,n);if(u(i)){let r=parseFloat(i.textContent);return isNaN(r)?void 0:r}}function Ol(e,t,n){let i=My(e,t,n);if(u(i))return i.textContent.trim()}function ehe(e){let t=new Ga;return t.width=Vk,t.height=Vk,t.scaleByDistance=new Bt(Wde,jde,qde,Yde),t.pixelOffsetScaleByDistance=new Bt(Wde,jde,qde,Yde),t.verticalOrigin=new ei(Pn.BOTTOM),t.image=e,t}function EQe(){let e=new md;return e.translucencyByDistance=new Bt(3e6,1,5e6,0),e.pixelOffset=new H(17,0),e.horizontalOrigin=_i.LEFT,e.font="16px sans-serif",e.style=zr.FILL_AND_OUTLINE,e}function the(e){let t=new qa;return t.width=4,t.material=new _y,t.material.color=u(e)?e:z.RED,t.material.outlineWidth=2,t.material.outlineColor=z.BLACK,t}var Kde={time:{text:"Time",tag:"time"},comment:{text:"Comment",tag:"cmt"},description:{text:"Description",tag:"desc"},source:{text:"Source",tag:"src"},number:{text:"GPS track/route number",tag:"number"},type:{text:"Type",tag:"type"}},IB;typeof document<"u"&&(IB=document.createElement("div"));function D7(e,t){let n,i="",r=Object.keys(Kde),o=r.length;for(n=0;n<o;n++){let f=r[n],d=Kde[f];d.value=y(Ol(e,d.tag,Dr.gpx),""),u(d.value)&&d.value!==""&&(i=`${i}<p>${d.text}: ${d.value}</p>`)}if(!u(i)||i==="")return;i=xQe.link(i),IB.innerHTML=i;let s=IB.querySelectorAll("a");for(n=0;n<s.length;n++)s[n].setAttribute("target","_blank");let a=z.WHITE,c=z.BLACK,l='<div class="cesium-infoBox-description-lighter" style="';return l+="overflow:auto;",l+="word-wrap:break-word;",l+=`background-color:${a.toCssColorString()};`,l+=`color:${c.toCssColorString()};`,l+='">',l+=`${IB.innerHTML}</div>`,IB.innerHTML="",l}function nhe(e,t,n,i){let r=v7(t),o=S7(t,n);o.position=r;let s=u(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",z.RED,Vk);o.billboard=ehe(s);let a=Ol(t,"name",Dr.gpx);o.name=a,o.label=EQe(),o.label.text=a,o.description=D7(t,o),i.clampToGround&&(o.billboard.heightReference=je.CLAMP_TO_GROUND,o.label.heightReference=je.CLAMP_TO_GROUND)}function bQe(e,t,n,i){let r=S7(t,n);r.description=D7(t,r);let o=w7(t,"rtept",Dr.gpx),s=new Array(o.length);for(let a=0;a<o.length;a++)nhe(e,o[a],n,i),s[a]=v7(o[a]);r.polyline=the(i.routeColor),i.clampToGround&&(r.polyline.clampToGround=!0),r.polyline.positions=s}function SQe(e,t,n,i){let r=S7(t,n);r.description=D7(t,r);let o=w7(t,"trkseg",Dr.gpx),s=[],a=[],c,l=!0,f=new ta;for(let d=0;d<o.length;d++)c=vQe(o[d]),s=s.concat(c.positions),c.times.length>0?(a=a.concat(c.times),f.addSamples(a,s),l=l&&!0):l=!1;if(l){let d=u(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",z.RED,Vk);r.billboard=ehe(d),r.position=f,i.clampToGround&&(r.billboard.heightReference=je.CLAMP_TO_GROUND),r.availability=new Mo,r.availability.addInterval(new xn({start:a[0],stop:a[a.length-1]}))}r.polyline=the(i.trackColor),r.polyline.positions=s,i.clampToGround&&(r.polyline.clampToGround=!0)}function vQe(e){let t={positions:[],times:[]},n=w7(e,"trkpt",Dr.gpx),i;for(let r=0;r<n.length;r++){let o=v7(n[r]);t.positions.push(o),i=Ol(n[r],"time",Dr.gpx),u(i)&&t.times.push(ee.fromIso8601(i))}return t}function wQe(e){let t=My(e,"metadata",Dr.gpx);if(u(t)){let n={name:Ol(t,"name",Dr.gpx),desc:Ol(t,"desc",Dr.gpx),author:DQe(t),copyright:PQe(t),link:ihe(t),time:Ol(t,"time",Dr.gpx),keywords:Ol(t,"keywords",Dr.gpx),bounds:OQe(t)};if(u(n.name)||u(n.desc)||u(n.author)||u(n.copyright)||u(n.link)||u(n.time)||u(n.keywords)||u(n.bounds))return n}}function DQe(e){let t=My(e,"author",Dr.gpx);if(u(t)){let n={name:Ol(t,"name",Dr.gpx),email:IQe(t),link:ihe(t)};if(u(n.name)||u(n.email)||u(n.link))return n}}function IQe(e){let t=My(e,"email",Dr.gpx);if(u(t)){let n=Ol(t,"id",Dr.gpx),i=Ol(t,"domain",Dr.gpx);return`${n}@${i}`}}function ihe(e){let t=My(e,"link",Dr.gpx);if(u(t)){let n={href:PB(t,"href"),text:Ol(t,"text",Dr.gpx),mimeType:Ol(t,"type",Dr.gpx)};if(u(n.href)||u(n.text)||u(n.mimeType))return n}}function PQe(e){let t=My(e,"copyright",Dr.gpx);if(u(t)){let n={author:PB(t,"author"),year:Ol(t,"year",Dr.gpx),license:Ol(t,"license",Dr.gpx)};if(u(n.author)||u(n.year)||u(n.license))return n}}function OQe(e){let t=My(e,"bounds",Dr.gpx);if(u(t)){let n={minLat:DB(t,"minlat",Dr.gpx),maxLat:DB(t,"maxlat",Dr.gpx),minLon:DB(t,"minlon",Dr.gpx),maxLon:DB(t,"maxlon",Dr.gpx)};if(u(n.minLat)||u(n.maxLat)||u(n.minLon)||u(n.maxLon))return n}}var Jde={wpt:nhe,rte:bQe,trk:SQe};function MQe(e,t,n,i){let r=Object.keys(Jde),o=r.length;for(let s=0;s<o;s++){let a=r[s],c=Jde[a],l=t.childNodes,f=l.length;for(let d=0;d<f;d++){let p=l[d];p.localName===a&&Dr.gpx.indexOf(p.namespaceURI)!==-1&&c(e,p,n,i)}}}function Zde(e,t,n){let i=e._entityCollection;i.removeAll();let r=t.documentElement,o=PB(r,"version"),s=PB(r,"creator"),a,c=wQe(r);u(c)&&(a=c.name),r.localName==="gpx"?MQe(e,r,i,n):console.log(`GPX - Unsupported node: ${r.localName}`);let l,f=i.computeAvailability(),d=f.start,p=f.stop,g=ee.equals(d,ze.MINIMUM_VALUE),m=ee.equals(p,ze.MAXIMUM_VALUE);if(!g||!m){let x;g&&(x=new Date,x.setHours(0,0,0,0),d=ee.fromDate(x)),m&&(x=new Date,x.setHours(24,0,0,0),p=ee.fromDate(x)),l=new Yd,l.startTime=d,l.stopTime=p,l.currentTime=ee.clone(d),l.clockRange=Lo.LOOP_STOP,l.clockStep=_r.SYSTEM_CLOCK_MULTIPLIER,l.multiplier=Math.round(Math.min(Math.max(ee.secondsDifference(p,d)/60,1),31556900))}let A=!1;return e._name!==a&&(e._name=a,A=!0),e._creator!==s&&(e._creator=s,A=!0),RQe(e._metadata,c)&&(e._metadata=c,A=!0),e._version!==o&&(e._version=o,A=!0),l!==e._clock&&(A=!0,e._clock=l),A&&e._changed.raiseEvent(e),Ro.setLoading(e,!1),e}function RQe(e,t){return!u(e)&&!u(t)?!1:u(e)&&u(t)?e.name!==t.name||e.dec!==t.desc||e.src!==t.src||e.author!==t.author||e.copyright!==t.copyright||e.link!==t.link||e.time!==t.time||e.bounds!==t.bounds:!0}function BQe(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let r=n;if(typeof n=="string"||n instanceof ve){n=ve.createIfNeeded(n),r=n.fetchBlob();let o=e._resourceCredits,s=n.credits;if(u(s)){let a=s.length;for(let c=0;c<a;c++)o.push(s[c])}}return Promise.resolve(r).then(function(o){return o instanceof Blob?TQe(o).then(function(s){let a,c;try{a=$de.parseFromString(s,"application/xml")}catch(l){c=l.toString()}if(u(c)||a.body||a.documentElement.tagName==="parsererror"){let l=u(c)?c:a.documentElement.firstChild.nodeValue;throw l||(l=a.body.innerText),new de(l)}return Zde(e,a,i)}):Zde(e,o,i)}).catch(function(o){return e._error.raiseEvent(e,o),console.log(o),Promise.reject(o)})}function Rb(){this._changed=new ge,this._error=new ge,this._loading=new ge,this._clock=void 0,this._entityCollection=new Bs(this),this._entityCluster=new du,this._name=void 0,this._version=void 0,this._creator=void 0,this._metadata=void 0,this._isLoading=!1,this._pinBuilder=new D_}Rb.load=function(e,t){return new Rb().load(e,t)};Object.defineProperties(Rb.prototype,{name:{get:function(){return this._name}},version:{get:function(){return this._version}},creator:{get:function(){return this._creator}},metadata:{get:function(){return this._metadata}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});Rb.prototype.update=function(e){return!0};Rb.prototype.load=function(e,t){if(!u(e))throw new fe("data is required.");t=y(t,y.EMPTY_OBJECT),Ro.setLoading(this,!0);let n=this._name,i=this;return BQe(this,this._entityCollection,e,t).then(function(){let r,o=i._entityCollection.computeAvailability(),s=o.start,a=o.stop,c=ee.equals(s,ze.MINIMUM_VALUE),l=ee.equals(a,ze.MAXIMUM_VALUE);if(!c||!l){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=ee.fromDate(d)),l&&(d=new Date,d.setHours(24,0,0,0),a=ee.fromDate(d)),r=new Yd,r.startTime=s,r.stopTime=a,r.currentTime=ee.clone(s),r.clockRange=Lo.LOOP_STOP,r.clockStep=_r.SYSTEM_CLOCK_MULTIPLIER,r.multiplier=Math.round(Math.min(Math.max(ee.secondsDifference(a,s)/60,1),31556900))}let f=!1;return r!==i._clock&&(i._clock=r,f=!0),n!==i._name&&(f=!0),f&&i._changed.raiseEvent(i),Ro.setLoading(i,!1),i}).catch(function(r){return Ro.setLoading(i,!1),i._error.raiseEvent(i,r),console.log(r),Promise.reject(r)})};var OB=Rb;function LQe(e,t){this.position=e,this.headingPitchRoll=t}var MB=LQe;var Ume=Yi(b7(),1),qB=Yi(Yl(),1);function qk(e){return Yk(e.map(([t,n])=>new Array(t).fill(n,0,t)))}function Yk(e){return e.reduce((t,n)=>t.concat(Array.isArray(n)?Yk(n):n),[])}var rhe=[0,1,2,3].concat(...qk([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function co(){let e=this;function t(r){let o=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,l=e.stat_desc.max_length,f,d,p,g,m,A,x=0;for(g=0;g<=15;g++)r.bl_count[g]=0;for(o[r.heap[r.heap_max]*2+1]=0,f=r.heap_max+1;f<573;f++)d=r.heap[f],g=o[o[d*2+1]*2+1]+1,g>l&&(g=l,x++),o[d*2+1]=g,!(d>e.max_code)&&(r.bl_count[g]++,m=0,d>=c&&(m=a[d-c]),A=o[d*2],r.opt_len+=A*(g+m),s&&(r.static_len+=A*(s[d*2+1]+m)));if(x!==0){do{for(g=l-1;r.bl_count[g]===0;)g--;r.bl_count[g]--,r.bl_count[g+1]+=2,r.bl_count[l]--,x-=2}while(x>0);for(g=l;g!==0;g--)for(d=r.bl_count[g];d!==0;)p=r.heap[--f],!(p>e.max_code)&&(o[p*2+1]!=g&&(r.opt_len+=(g-o[p*2+1])*o[p*2],o[p*2+1]=g),d--)}}function n(r,o){let s=0;do s|=r&1,r>>>=1,s<<=1;while(--o>0);return s>>>1}function i(r,o,s){let a=[],c=0,l,f,d;for(l=1;l<=15;l++)a[l]=c=c+s[l-1]<<1;for(f=0;f<=o;f++)d=r[f*2+1],d!==0&&(r[f*2]=n(a[d]++,d))}e.build_tree=function(r){let o=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.elems,c,l,f=-1,d;for(r.heap_len=0,r.heap_max=573,c=0;c<a;c++)o[c*2]!==0?(r.heap[++r.heap_len]=f=c,r.depth[c]=0):o[c*2+1]=0;for(;r.heap_len<2;)d=r.heap[++r.heap_len]=f<2?++f:0,o[d*2]=1,r.depth[d]=0,r.opt_len--,s&&(r.static_len-=s[d*2+1]);for(e.max_code=f,c=Math.floor(r.heap_len/2);c>=1;c--)r.pqdownheap(o,c);d=a;do c=r.heap[1],r.heap[1]=r.heap[r.heap_len--],r.pqdownheap(o,1),l=r.heap[1],r.heap[--r.heap_max]=c,r.heap[--r.heap_max]=l,o[d*2]=o[c*2]+o[l*2],r.depth[d]=Math.max(r.depth[c],r.depth[l])+1,o[c*2+1]=o[l*2+1]=d,r.heap[1]=d++,r.pqdownheap(o,1);while(r.heap_len>=2);r.heap[--r.heap_max]=r.heap[1],t(r),i(o,e.max_code,r.bl_count)}}co._length_code=[0,1,2,3,4,5,6,7].concat(...qk([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]));co.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0];co.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576];co.d_code=function(e){return e<256?rhe[e]:rhe[256+(e>>>7)]};co.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];co.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];co.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];co.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Sa(e,t,n,i,r){let o=this;o.static_tree=e,o.extra_bits=t,o.extra_base=n,o.elems=i,o.max_length=r}var NQe=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],FQe=qk([[144,8],[112,9],[24,7],[8,8]]);Sa.static_ltree=Yk(NQe.map((e,t)=>[e,FQe[t]]));var UQe=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],VQe=qk([[30,5]]);Sa.static_dtree=Yk(UQe.map((e,t)=>[e,VQe[t]]));Sa.static_l_desc=new Sa(Sa.static_ltree,co.extra_lbits,256+1,286,15);Sa.static_d_desc=new Sa(Sa.static_dtree,co.extra_dbits,0,30,15);Sa.static_bl_desc=new Sa(null,co.extra_blbits,0,19,7);var kQe=9,zQe=8;function Cm(e,t,n,i,r){let o=this;o.good_length=e,o.max_lazy=t,o.nice_length=n,o.max_chain=i,o.func=r}var she=0,Wk=1,kx=2,oh=[new Cm(0,0,0,0,she),new Cm(4,4,8,4,Wk),new Cm(4,5,16,8,Wk),new Cm(4,6,32,32,Wk),new Cm(4,4,16,16,kx),new Cm(8,16,32,32,kx),new Cm(8,16,128,128,kx),new Cm(8,32,128,256,kx),new Cm(32,128,258,1024,kx),new Cm(32,258,258,4096,kx)],kk=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Lf=0,zk=1,RB=2,Hk=3,HQe=32,I7=42,Gk=113,BB=666,P7=8,GQe=0,O7=1,WQe=2,xo=3,jk=258,Tu=jk+xo+1;function ohe(e,t,n,i){let r=e[t*2],o=e[n*2];return r<o||r==o&&i[t]<=i[n]}function jQe(){let e=this,t,n,i,r,o,s,a,c,l,f,d,p,g,m,A,x,C,T,E,S,v,D,M,O,B,L,_,b,w,I,R,F,k,V=new co,G=new co,U=new co;e.depth=[];let Y,W,Z,j,K,J;e.bl_count=[],e.heap=[],R=[],F=[],k=[];function _e(){l=2*o,d[g-1]=0;for(let Re=0;Re<g-1;Re++)d[Re]=0;L=oh[_].max_lazy,w=oh[_].good_length,I=oh[_].nice_length,B=oh[_].max_chain,v=0,C=0,M=0,T=O=xo-1,S=0,p=0}function xe(){let Re;for(Re=0;Re<286;Re++)R[Re*2]=0;for(Re=0;Re<30;Re++)F[Re*2]=0;for(Re=0;Re<19;Re++)k[Re*2]=0;R[256*2]=1,e.opt_len=e.static_len=0,W=Z=0}function oe(){V.dyn_tree=R,V.stat_desc=Sa.static_l_desc,G.dyn_tree=F,G.stat_desc=Sa.static_d_desc,U.dyn_tree=k,U.stat_desc=Sa.static_bl_desc,K=0,J=0,j=8,xe()}e.pqdownheap=function(Re,it){let Je=e.heap,Ze=Je[it],ot=it<<1;for(;ot<=e.heap_len&&(ot<e.heap_len&&ohe(Re,Je[ot+1],Je[ot],e.depth)&&ot++,!ohe(Re,Ze,Je[ot],e.depth));)Je[it]=Je[ot],it=ot,ot<<=1;Je[it]=Ze};function Ae(Re,it){let Je=-1,Ze,ot=Re[0*2+1],Nt=0,Tn=7,ar=4;ot===0&&(Tn=138,ar=3),Re[(it+1)*2+1]=65535;for(let Cr=0;Cr<=it;Cr++)Ze=ot,ot=Re[(Cr+1)*2+1],!(++Nt<Tn&&Ze==ot)&&(Nt<ar?k[Ze*2]+=Nt:Ze!==0?(Ze!=Je&&k[Ze*2]++,k[16*2]++):Nt<=10?k[17*2]++:k[18*2]++,Nt=0,Je=Ze,ot===0?(Tn=138,ar=3):Ze==ot?(Tn=6,ar=3):(Tn=7,ar=4))}function he(){let Re;for(Ae(R,V.max_code),Ae(F,G.max_code),U.build_tree(e),Re=19-1;Re>=3&&k[co.bl_order[Re]*2+1]===0;Re--);return e.opt_len+=3*(Re+1)+5+5+4,Re}function Se(Re){e.pending_buf[e.pending++]=Re}function Ie(Re){Se(Re&255),Se(Re>>>8&255)}function Ne(Re){Se(Re>>8&255),Se(Re&255&255)}function qe(Re,it){let Je,Ze=it;J>16-Ze?(Je=Re,K|=Je<<J&65535,Ie(K),K=Je>>>16-J,J+=Ze-16):(K|=Re<<J&65535,J+=Ze)}function pt(Re,it){let Je=Re*2;qe(it[Je]&65535,it[Je+1]&65535)}function Gt(Re,it){let Je,Ze=-1,ot,Nt=Re[0*2+1],Tn=0,ar=7,Cr=4;for(Nt===0&&(ar=138,Cr=3),Je=0;Je<=it;Je++)if(ot=Nt,Nt=Re[(Je+1)*2+1],!(++Tn<ar&&ot==Nt)){if(Tn<Cr)do pt(ot,k);while(--Tn!==0);else ot!==0?(ot!=Ze&&(pt(ot,k),Tn--),pt(16,k),qe(Tn-3,2)):Tn<=10?(pt(17,k),qe(Tn-3,3)):(pt(18,k),qe(Tn-11,7));Tn=0,Ze=ot,Nt===0?(ar=138,Cr=3):ot==Nt?(ar=6,Cr=3):(ar=7,Cr=4)}}function fn(Re,it,Je){let Ze;for(qe(Re-257,5),qe(it-1,5),qe(Je-4,4),Ze=0;Ze<Je;Ze++)qe(k[co.bl_order[Ze]*2+1],3);Gt(R,Re-1),Gt(F,it-1)}function ft(){J==16?(Ie(K),K=0,J=0):J>=8&&(Se(K&255),K>>>=8,J-=8)}function pn(){qe(O7<<1,3),pt(256,Sa.static_ltree),ft(),1+j+10-J<9&&(qe(O7<<1,3),pt(256,Sa.static_ltree),ft()),j=7}function Bn(Re,it){let Je,Ze,ot;if(e.dist_buf[W]=Re,e.lc_buf[W]=it&255,W++,Re===0?R[it*2]++:(Z++,Re--,R[(co._length_code[it]+256+1)*2]++,F[co.d_code(Re)*2]++),!(W&8191)&&_>2){for(Je=W*8,Ze=v-C,ot=0;ot<30;ot++)Je+=F[ot*2]*(5+co.extra_dbits[ot]);if(Je>>>=3,Z<Math.floor(W/2)&&Je<Math.floor(Ze/2))return!0}return W==Y-1}function Vt(Re,it){let Je,Ze,ot=0,Nt,Tn;if(W!==0)do Je=e.dist_buf[ot],Ze=e.lc_buf[ot],ot++,Je===0?pt(Ze,Re):(Nt=co._length_code[Ze],pt(Nt+256+1,Re),Tn=co.extra_lbits[Nt],Tn!==0&&(Ze-=co.base_length[Nt],qe(Ze,Tn)),Je--,Nt=co.d_code(Je),pt(Nt,it),Tn=co.extra_dbits[Nt],Tn!==0&&(Je-=co.base_dist[Nt],qe(Je,Tn)));while(ot<W);pt(256,Re),j=Re[256*2+1]}function Qe(){J>8?Ie(K):J>0&&Se(K&255),K=0,J=0}function pe(Re,it,Je){Qe(),j=8,Je&&(Ie(it),Ie(~it)),e.pending_buf.set(c.subarray(Re,Re+it),e.pending),e.pending+=it}function Ee(Re,it,Je){qe((GQe<<1)+(Je?1:0),3),pe(Re,it,!0)}function Ge(Re,it,Je){let Ze,ot,Nt=0;_>0?(V.build_tree(e),G.build_tree(e),Nt=he(),Ze=e.opt_len+3+7>>>3,ot=e.static_len+3+7>>>3,ot<=Ze&&(Ze=ot)):Ze=ot=it+5,it+4<=Ze&&Re!=-1?Ee(Re,it,Je):ot==Ze?(qe((O7<<1)+(Je?1:0),3),Vt(Sa.static_ltree,Sa.static_dtree)):(qe((WQe<<1)+(Je?1:0),3),fn(V.max_code+1,G.max_code+1,Nt+1),Vt(R,F)),xe(),Je&&Qe()}function xi(Re){Ge(C>=0?C:-1,v-C,Re),C=v,t.flush_pending()}function Ci(){let Re,it,Je,Ze;do{if(Ze=l-M-v,Ze===0&&v===0&&M===0)Ze=o;else if(Ze==-1)Ze--;else if(v>=o+o-Tu){c.set(c.subarray(o,o+o),0),D-=o,v-=o,C-=o,Re=g,Je=Re;do it=d[--Je]&65535,d[Je]=it>=o?it-o:0;while(--Re!==0);Re=o,Je=Re;do it=f[--Je]&65535,f[Je]=it>=o?it-o:0;while(--Re!==0);Ze+=o}if(t.avail_in===0)return;Re=t.read_buf(c,v+M,Ze),M+=Re,M>=xo&&(p=c[v]&255,p=(p<<x^c[v+1]&255)&A)}while(M<Tu&&t.avail_in!==0)}function Ir(Re){let it=65535,Je;for(it>i-5&&(it=i-5);;){if(M<=1){if(Ci(),M===0&&Re==0)return Lf;if(M===0)break}if(v+=M,M=0,Je=C+it,(v===0||v>=Je)&&(M=v-Je,v=Je,xi(!1),t.avail_out===0)||v-C>=o-Tu&&(xi(!1),t.avail_out===0))return Lf}return xi(Re==4),t.avail_out===0?Re==4?RB:Lf:Re==4?Hk:zk}function Wr(Re){let it=B,Je=v,Ze,ot,Nt=O,Tn=v>o-Tu?v-(o-Tu):0,ar=I,Cr=a,Ts=v+jk,Jo=c[Je+Nt-1],uo=c[Je+Nt];O>=w&&(it>>=2),ar>M&&(ar=M);do if(Ze=Re,!(c[Ze+Nt]!=uo||c[Ze+Nt-1]!=Jo||c[Ze]!=c[Je]||c[++Ze]!=c[Je+1])){Je+=2,Ze++;do;while(c[++Je]==c[++Ze]&&c[++Je]==c[++Ze]&&c[++Je]==c[++Ze]&&c[++Je]==c[++Ze]&&c[++Je]==c[++Ze]&&c[++Je]==c[++Ze]&&c[++Je]==c[++Ze]&&c[++Je]==c[++Ze]&&Je<Ts);if(ot=jk-(Ts-Je),Je=Ts-jk,ot>Nt){if(D=Re,Nt=ot,ot>=ar)break;Jo=c[Je+Nt-1],uo=c[Je+Nt]}}while((Re=f[Re&Cr]&65535)>Tn&&--it!==0);return Nt<=M?Nt:M}function Co(Re){let it=0,Je;for(;;){if(M<Tu){if(Ci(),M<Tu&&Re==0)return Lf;if(M===0)break}if(M>=xo&&(p=(p<<x^c[v+(xo-1)]&255)&A,it=d[p]&65535,f[v&a]=d[p],d[p]=v),it!==0&&(v-it&65535)<=o-Tu&&b!=2&&(T=Wr(it)),T>=xo)if(Je=Bn(v-D,T-xo),M-=T,T<=L&&M>=xo){T--;do v++,p=(p<<x^c[v+(xo-1)]&255)&A,it=d[p]&65535,f[v&a]=d[p],d[p]=v;while(--T!==0);v++}else v+=T,T=0,p=c[v]&255,p=(p<<x^c[v+1]&255)&A;else Je=Bn(0,c[v]&255),M--,v++;if(Je&&(xi(!1),t.avail_out===0))return Lf}return xi(Re==4),t.avail_out===0?Re==4?RB:Lf:Re==4?Hk:zk}function Vo(Re){let it=0,Je,Ze;for(;;){if(M<Tu){if(Ci(),M<Tu&&Re==0)return Lf;if(M===0)break}if(M>=xo&&(p=(p<<x^c[v+(xo-1)]&255)&A,it=d[p]&65535,f[v&a]=d[p],d[p]=v),O=T,E=D,T=xo-1,it!==0&&O<L&&(v-it&65535)<=o-Tu&&(b!=2&&(T=Wr(it)),T<=5&&(b==1||T==xo&&v-D>4096)&&(T=xo-1)),O>=xo&&T<=O){Ze=v+M-xo,Je=Bn(v-1-E,O-xo),M-=O-1,O-=2;do++v<=Ze&&(p=(p<<x^c[v+(xo-1)]&255)&A,it=d[p]&65535,f[v&a]=d[p],d[p]=v);while(--O!==0);if(S=0,T=xo-1,v++,Je&&(xi(!1),t.avail_out===0))return Lf}else if(S!==0){if(Je=Bn(0,c[v-1]&255),Je&&xi(!1),v++,M--,t.avail_out===0)return Lf}else S=1,v++,M--}return S!==0&&(Je=Bn(0,c[v-1]&255),S=0),xi(Re==4),t.avail_out===0?Re==4?RB:Lf:Re==4?Hk:zk}function Cs(Re){return Re.total_in=Re.total_out=0,Re.msg=null,e.pending=0,e.pending_out=0,n=Gk,r=0,oe(),_e(),0}e.deflateInit=function(Re,it,Je,Ze,ot,Nt){return Ze||(Ze=P7),ot||(ot=zQe),Nt||(Nt=0),Re.msg=null,it==-1&&(it=6),ot<1||ot>kQe||Ze!=P7||Je<9||Je>15||it<0||it>9||Nt<0||Nt>2?-2:(Re.dstate=e,s=Je,o=1<<s,a=o-1,m=ot+7,g=1<<m,A=g-1,x=Math.floor((m+xo-1)/xo),c=new Uint8Array(o*2),f=[],d=[],Y=1<<ot+6,e.pending_buf=new Uint8Array(Y*4),i=Y*4,e.dist_buf=new Uint16Array(Y),e.lc_buf=new Uint8Array(Y),_=it,b=Nt,Cs(Re))},e.deflateEnd=function(){return n!=I7&&n!=Gk&&n!=BB?-2:(e.lc_buf=null,e.dist_buf=null,e.pending_buf=null,d=null,f=null,c=null,e.dstate=null,n==Gk?-3:0)},e.deflateParams=function(Re,it,Je){let Ze=0;return it==-1&&(it=6),it<0||it>9||Je<0||Je>2?-2:(oh[_].func!=oh[it].func&&Re.total_in!==0&&(Ze=Re.deflate(1)),_!=it&&(_=it,L=oh[_].max_lazy,w=oh[_].good_length,I=oh[_].nice_length,B=oh[_].max_chain),b=Je,Ze)},e.deflateSetDictionary=function(Re,it,Je){let Ze=Je,ot,Nt=0;if(!it||n!=I7)return-2;if(Ze<xo)return 0;for(Ze>o-Tu&&(Ze=o-Tu,Nt=Je-Ze),c.set(it.subarray(Nt,Nt+Ze),0),v=Ze,C=Ze,p=c[0]&255,p=(p<<x^c[1]&255)&A,ot=0;ot<=Ze-xo;ot++)p=(p<<x^c[ot+(xo-1)]&255)&A,f[ot&a]=d[p],d[p]=ot;return 0},e.deflate=function(Re,it){let Je,Ze,ot,Nt,Tn;if(it>4||it<0)return-2;if(!Re.next_out||!Re.next_in&&Re.avail_in!==0||n==BB&&it!=4)return Re.msg=kk[2- -2],-2;if(Re.avail_out===0)return Re.msg=kk[2- -5],-5;if(t=Re,Nt=r,r=it,n==I7&&(Ze=P7+(s-8<<4)<<8,ot=(_-1&255)>>1,ot>3&&(ot=3),Ze|=ot<<6,v!==0&&(Ze|=HQe),Ze+=31-Ze%31,n=Gk,Ne(Ze)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return r=-1,0}else if(t.avail_in===0&&it<=Nt&&it!=4)return t.msg=kk[2- -5],-5;if(n==BB&&t.avail_in!==0)return Re.msg=kk[2- -5],-5;if(t.avail_in!==0||M!==0||it!=0&&n!=BB){switch(Tn=-1,oh[_].func){case she:Tn=Ir(it);break;case Wk:Tn=Co(it);break;case kx:Tn=Vo(it);break;default:}if((Tn==RB||Tn==Hk)&&(n=BB),Tn==Lf||Tn==RB)return t.avail_out===0&&(r=-1),0;if(Tn==zk){if(it==1)pn();else if(Ee(0,0,!1),it==3)for(Je=0;Je<g;Je++)d[Je]=0;if(t.flush_pending(),t.avail_out===0)return r=-1,0}}return it!=4?0:1}}function ahe(){let e=this;e.next_in_index=0,e.next_out_index=0,e.avail_in=0,e.total_in=0,e.avail_out=0,e.total_out=0}ahe.prototype={deflateInit:function(e,t){let n=this;return n.dstate=new jQe,t||(t=15),n.dstate.deflateInit(n,e,t)},deflate:function(e){let t=this;return t.dstate?t.dstate.deflate(t,e):-2},deflateEnd:function(){let e=this;if(!e.dstate)return-2;let t=e.dstate.deflateEnd();return e.dstate=null,t},deflateParams:function(e,t){let n=this;return n.dstate?n.dstate.deflateParams(n,e,t):-2},deflateSetDictionary:function(e,t){let n=this;return n.dstate?n.dstate.deflateSetDictionary(n,e,t):-2},read_buf:function(e,t,n){let i=this,r=i.avail_in;return r>n&&(r=n),r===0?0:(i.avail_in-=r,e.set(i.next_in.subarray(i.next_in_index,i.next_in_index+r),t),i.next_in_index+=r,i.total_in+=r,r)},flush_pending:function(){let e=this,t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,e.dstate.pending===0&&(e.dstate.pending_out=0))}};function qQe(e){let t=this,n=new ahe,i=YQe(e&&e.chunkSize?e.chunkSize:64*1024),r=0,o=new Uint8Array(i),s=e?e.level:-1;typeof s>"u"&&(s=-1),n.deflateInit(s),n.next_out=o,t.append=function(a,c){let l,f,d=0,p=0,g=0,m=[];if(a.length){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,l=n.deflate(r),l!=0)throw new Error("deflating: "+n.msg);n.next_out_index&&(n.next_out_index==i?m.push(new Uint8Array(o)):m.push(o.slice(0,n.next_out_index))),g+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=d&&(c(n.next_in_index),d=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return m.length>1?(f=new Uint8Array(g),m.forEach(function(A){f.set(A,p),p+=A.length})):f=m[0]||new Uint8Array(0),f}},t.flush=function(){let a,c,l=0,f=0,d=[];do{if(n.next_out_index=0,n.avail_out=i,a=n.deflate(4),a!=1&&a!=0)throw new Error("deflating: "+n.msg);i-n.avail_out>0&&d.push(o.slice(0,n.next_out_index)),f+=n.next_out_index}while(n.avail_in>0||n.avail_out===0);return n.deflateEnd(),c=new Uint8Array(f),d.forEach(function(p){c.set(p,l),l+=p.length}),c}}function YQe(e){return e+5*(Math.floor(e/16383)+1)}var che=qQe;var Eu=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Dhe=1440,XQe=0,KQe=4,JQe=9,ZQe=5,QQe=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],$Qe=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],e$e=[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],t$e=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],n$e=[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],i$e=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Ry=15;function L7(){let e=this,t,n,i,r,o,s;function a(l,f,d,p,g,m,A,x,C,T,E){let S,v,D,M,O,B,L,_,b,w,I,R,F,k,V;w=0,O=d;do i[l[f+w]]++,w++,O--;while(O!==0);if(i[0]==d)return A[0]=-1,x[0]=0,0;for(_=x[0],B=1;B<=Ry&&i[B]===0;B++);for(L=B,_<B&&(_=B),O=Ry;O!==0&&i[O]===0;O--);for(D=O,_>O&&(_=O),x[0]=_,k=1<<B;B<O;B++,k<<=1)if((k-=i[B])<0)return-3;if((k-=i[O])<0)return-3;for(i[O]+=k,s[1]=B=0,w=1,F=2;--O!==0;)s[F]=B+=i[w],F++,w++;O=0,w=0;do(B=l[f+w])!==0&&(E[s[B]++]=O),w++;while(++O<d);for(d=s[D],s[0]=O=0,w=0,M=-1,R=-_,o[0]=0,I=0,V=0;L<=D;L++)for(S=i[L];S--!==0;){for(;L>R+_;){if(M++,R+=_,V=D-R,V=V>_?_:V,(v=1<<(B=L-R))>S+1&&(v-=S+1,F=L,B<V))for(;++B<V&&!((v<<=1)<=i[++F]);)v-=i[F];if(V=1<<B,T[0]+V>Dhe)return-3;o[M]=I=T[0],T[0]+=V,M!==0?(s[M]=O,r[0]=B,r[1]=_,B=O>>>R-_,r[2]=I-o[M-1]-B,C.set(r,(o[M-1]+B)*3)):A[0]=I}for(r[1]=L-R,w>=d?r[0]=128+64:E[w]<p?(r[0]=E[w]<256?0:32+64,r[2]=E[w++]):(r[0]=m[E[w]-p]+16+64,r[2]=g[E[w++]-p]),v=1<<L-R,B=O>>>R;B<V;B+=v)C.set(r,(I+B)*3);for(B=1<<L-1;O&B;B>>>=1)O^=B;for(O^=B,b=(1<<R)-1;(O&b)!=s[M];)M--,R-=_,b=(1<<R)-1}return k!==0&&D!=1?-5:0}function c(l){let f;for(t||(t=[],n=[],i=new Int32Array(Ry+1),r=[],o=new Int32Array(Ry),s=new Int32Array(Ry+1)),n.length<l&&(n=[]),f=0;f<l;f++)n[f]=0;for(f=0;f<Ry+1;f++)i[f]=0;for(f=0;f<3;f++)r[f]=0;o.set(i.subarray(0,Ry),0),s.set(i.subarray(0,Ry+1),0)}e.inflate_trees_bits=function(l,f,d,p,g){let m;return c(19),t[0]=0,m=a(l,0,19,19,null,null,d,f,p,t,n),m==-3?g.msg="oversubscribed dynamic bit lengths tree":(m==-5||f[0]===0)&&(g.msg="incomplete dynamic bit lengths tree",m=-3),m},e.inflate_trees_dynamic=function(l,f,d,p,g,m,A,x,C){let T;return c(288),t[0]=0,T=a(d,0,l,257,e$e,t$e,m,p,x,t,n),T!=0||p[0]===0?(T==-3?C.msg="oversubscribed literal/length tree":T!=-4&&(C.msg="incomplete literal/length tree",T=-3),T):(c(288),T=a(d,l,f,0,n$e,i$e,A,g,x,t,n),T!=0||g[0]===0&&l>257?(T==-3?C.msg="oversubscribed distance tree":T==-5?(C.msg="incomplete distance tree",T=-3):T!=-4&&(C.msg="empty distance tree with lengths",T=-3),T):0)}}L7.inflate_trees_fixed=function(e,t,n,i){return e[0]=JQe,t[0]=ZQe,n[0]=QQe,i[0]=$Qe,0};var Xk=0,lhe=1,uhe=2,fhe=3,dhe=4,hhe=5,mhe=6,M7=7,phe=8,Kk=9;function r$e(){let e=this,t,n=0,i,r=0,o=0,s=0,a=0,c=0,l=0,f=0,d,p=0,g,m=0;function A(x,C,T,E,S,v,D,M){let O,B,L,_,b,w,I,R,F,k,V,G,U,Y,W,Z;I=M.next_in_index,R=M.avail_in,b=D.bitb,w=D.bitk,F=D.write,k=F<D.read?D.read-F-1:D.end-F,V=Eu[x],G=Eu[C];do{for(;w<20;)R--,b|=(M.read_byte(I++)&255)<<w,w+=8;if(O=b&V,B=T,L=E,Z=(L+O)*3,(_=B[Z])===0){b>>=B[Z+1],w-=B[Z+1],D.win[F++]=B[Z+2],k--;continue}do{if(b>>=B[Z+1],w-=B[Z+1],_&16){for(_&=15,U=B[Z+2]+(b&Eu[_]),b>>=_,w-=_;w<15;)R--,b|=(M.read_byte(I++)&255)<<w,w+=8;O=b&G,B=S,L=v,Z=(L+O)*3,_=B[Z];do if(b>>=B[Z+1],w-=B[Z+1],_&16){for(_&=15;w<_;)R--,b|=(M.read_byte(I++)&255)<<w,w+=8;if(Y=B[Z+2]+(b&Eu[_]),b>>=_,w-=_,k-=U,F>=Y)W=F-Y,F-W>0&&2>F-W?(D.win[F++]=D.win[W++],D.win[F++]=D.win[W++],U-=2):(D.win.set(D.win.subarray(W,W+2),F),F+=2,W+=2,U-=2);else{W=F-Y;do W+=D.end;while(W<0);if(_=D.end-W,U>_){if(U-=_,F-W>0&&_>F-W)do D.win[F++]=D.win[W++];while(--_!==0);else D.win.set(D.win.subarray(W,W+_),F),F+=_,W+=_,_=0;W=0}}if(F-W>0&&U>F-W)do D.win[F++]=D.win[W++];while(--U!==0);else D.win.set(D.win.subarray(W,W+U),F),F+=U,W+=U,U=0;break}else if(!(_&64))O+=B[Z+2],O+=b&Eu[_],Z=(L+O)*3,_=B[Z];else return M.msg="invalid distance code",U=M.avail_in-R,U=w>>3<U?w>>3:U,R+=U,I-=U,w-=U<<3,D.bitb=b,D.bitk=w,M.avail_in=R,M.total_in+=I-M.next_in_index,M.next_in_index=I,D.write=F,-3;while(!0);break}if(_&64)return _&32?(U=M.avail_in-R,U=w>>3<U?w>>3:U,R+=U,I-=U,w-=U<<3,D.bitb=b,D.bitk=w,M.avail_in=R,M.total_in+=I-M.next_in_index,M.next_in_index=I,D.write=F,1):(M.msg="invalid literal/length code",U=M.avail_in-R,U=w>>3<U?w>>3:U,R+=U,I-=U,w-=U<<3,D.bitb=b,D.bitk=w,M.avail_in=R,M.total_in+=I-M.next_in_index,M.next_in_index=I,D.write=F,-3);if(O+=B[Z+2],O+=b&Eu[_],Z=(L+O)*3,(_=B[Z])===0){b>>=B[Z+1],w-=B[Z+1],D.win[F++]=B[Z+2],k--;break}}while(!0)}while(k>=258&&R>=10);return U=M.avail_in-R,U=w>>3<U?w>>3:U,R+=U,I-=U,w-=U<<3,D.bitb=b,D.bitk=w,M.avail_in=R,M.total_in+=I-M.next_in_index,M.next_in_index=I,D.write=F,0}e.init=function(x,C,T,E,S,v){t=Xk,l=x,f=C,d=T,p=E,g=S,m=v,i=null},e.proc=function(x,C,T){let E,S,v,D=0,M=0,O=0,B,L,_,b;for(O=C.next_in_index,B=C.avail_in,D=x.bitb,M=x.bitk,L=x.write,_=L<x.read?x.read-L-1:x.end-L;;)switch(t){case Xk:if(_>=258&&B>=10&&(x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,T=A(l,f,d,p,g,m,x,C),O=C.next_in_index,B=C.avail_in,D=x.bitb,M=x.bitk,L=x.write,_=L<x.read?x.read-L-1:x.end-L,T!=0)){t=T==1?M7:Kk;break}o=l,i=d,r=p,t=lhe;case lhe:for(E=o;M<E;){if(B!==0)T=0;else return x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,x.inflate_flush(C,T);B--,D|=(C.read_byte(O++)&255)<<M,M+=8}if(S=(r+(D&Eu[E]))*3,D>>>=i[S+1],M-=i[S+1],v=i[S],v===0){s=i[S+2],t=mhe;break}if(v&16){a=v&15,n=i[S+2],t=uhe;break}if(!(v&64)){o=v,r=S/3+i[S+2];break}if(v&32){t=M7;break}return t=Kk,C.msg="invalid literal/length code",T=-3,x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,x.inflate_flush(C,T);case uhe:for(E=a;M<E;){if(B!==0)T=0;else return x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,x.inflate_flush(C,T);B--,D|=(C.read_byte(O++)&255)<<M,M+=8}n+=D&Eu[E],D>>=E,M-=E,o=f,i=g,r=m,t=fhe;case fhe:for(E=o;M<E;){if(B!==0)T=0;else return x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,x.inflate_flush(C,T);B--,D|=(C.read_byte(O++)&255)<<M,M+=8}if(S=(r+(D&Eu[E]))*3,D>>=i[S+1],M-=i[S+1],v=i[S],v&16){a=v&15,c=i[S+2],t=dhe;break}if(!(v&64)){o=v,r=S/3+i[S+2];break}return t=Kk,C.msg="invalid distance code",T=-3,x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,x.inflate_flush(C,T);case dhe:for(E=a;M<E;){if(B!==0)T=0;else return x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,x.inflate_flush(C,T);B--,D|=(C.read_byte(O++)&255)<<M,M+=8}c+=D&Eu[E],D>>=E,M-=E,t=hhe;case hhe:for(b=L-c;b<0;)b+=x.end;for(;n!==0;){if(_===0&&(L==x.end&&x.read!==0&&(L=0,_=L<x.read?x.read-L-1:x.end-L),_===0&&(x.write=L,T=x.inflate_flush(C,T),L=x.write,_=L<x.read?x.read-L-1:x.end-L,L==x.end&&x.read!==0&&(L=0,_=L<x.read?x.read-L-1:x.end-L),_===0)))return x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,x.inflate_flush(C,T);x.win[L++]=x.win[b++],_--,b==x.end&&(b=0),n--}t=Xk;break;case mhe:if(_===0&&(L==x.end&&x.read!==0&&(L=0,_=L<x.read?x.read-L-1:x.end-L),_===0&&(x.write=L,T=x.inflate_flush(C,T),L=x.write,_=L<x.read?x.read-L-1:x.end-L,L==x.end&&x.read!==0&&(L=0,_=L<x.read?x.read-L-1:x.end-L),_===0)))return x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,x.inflate_flush(C,T);T=0,x.win[L++]=s,_--,t=Xk;break;case M7:if(M>7&&(M-=8,B++,O--),x.write=L,T=x.inflate_flush(C,T),L=x.write,_=L<x.read?x.read-L-1:x.end-L,x.read!=x.write)return x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,x.inflate_flush(C,T);t=phe;case phe:return T=1,x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,x.inflate_flush(C,T);case Kk:return T=-3,x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,x.inflate_flush(C,T);default:return T=-2,x.bitb=D,x.bitk=M,C.avail_in=B,C.total_in+=O-C.next_in_index,C.next_in_index=O,x.write=L,x.inflate_flush(C,T)}},e.free=function(){}}var _he=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Bb=0,R7=1,ghe=2,yhe=3,Ahe=4,xhe=5,Jk=6,Zk=7,Che=8,zx=9;function o$e(e,t){let n=this,i=Bb,r=0,o=0,s=0,a,c=[0],l=[0],f=new r$e,d=0,p=new Int32Array(Dhe*3),g=0,m=new L7;n.bitk=0,n.bitb=0,n.win=new Uint8Array(t),n.end=t,n.read=0,n.write=0,n.reset=function(A,x){x&&(x[0]=g),i==Jk&&f.free(A),i=Bb,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(e,null),n.inflate_flush=function(A,x){let C,T,E;return T=A.next_out_index,E=n.read,C=(E<=n.write?n.write:n.end)-E,C>A.avail_out&&(C=A.avail_out),C!==0&&x==-5&&(x=0),A.avail_out-=C,A.total_out+=C,A.next_out.set(n.win.subarray(E,E+C),T),T+=C,E+=C,E==n.end&&(E=0,n.write==n.end&&(n.write=0),C=n.write-E,C>A.avail_out&&(C=A.avail_out),C!==0&&x==-5&&(x=0),A.avail_out-=C,A.total_out+=C,A.next_out.set(n.win.subarray(E,E+C),T),T+=C,E+=C),A.next_out_index=T,n.read=E,x},n.proc=function(A,x){let C,T,E,S,v,D,M,O;for(S=A.next_in_index,v=A.avail_in,T=n.bitb,E=n.bitk,D=n.write,M=D<n.read?n.read-D-1:n.end-D;;){let B,L,_,b,w,I,R,F;switch(i){case Bb:for(;E<3;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<<E,E+=8}switch(C=T&7,d=C&1,C>>>1){case 0:T>>>=3,E-=3,C=E&7,T>>>=C,E-=C,i=R7;break;case 1:B=[],L=[],_=[[]],b=[[]],L7.inflate_trees_fixed(B,L,_,b),f.init(B[0],L[0],_[0],0,b[0],0),T>>>=3,E-=3,i=Jk;break;case 2:T>>>=3,E-=3,i=yhe;break;case 3:return T>>>=3,E-=3,i=zx,A.msg="invalid block type",x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x)}break;case R7:for(;E<32;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<<E,E+=8}if((~T>>>16&65535)!=(T&65535))return i=zx,A.msg="invalid stored block lengths",x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);r=T&65535,T=E=0,i=r!==0?ghe:d!==0?Zk:Bb;break;case ghe:if(v===0||M===0&&(D==n.end&&n.read!==0&&(D=0,M=D<n.read?n.read-D-1:n.end-D),M===0&&(n.write=D,x=n.inflate_flush(A,x),D=n.write,M=D<n.read?n.read-D-1:n.end-D,D==n.end&&n.read!==0&&(D=0,M=D<n.read?n.read-D-1:n.end-D),M===0)))return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);if(x=0,C=r,C>v&&(C=v),C>M&&(C=M),n.win.set(A.read_buf(S,C),D),S+=C,v-=C,D+=C,M-=C,(r-=C)!==0)break;i=d!==0?Zk:Bb;break;case yhe:for(;E<14;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<<E,E+=8}if(o=C=T&16383,(C&31)>29||(C>>5&31)>29)return i=zx,A.msg="too many length or distance symbols",x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);if(C=258+(C&31)+(C>>5&31),!a||a.length<C)a=[];else for(O=0;O<C;O++)a[O]=0;T>>>=14,E-=14,s=0,i=Ahe;case Ahe:for(;s<4+(o>>>10);){for(;E<3;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<<E,E+=8}a[_he[s++]]=T&7,T>>>=3,E-=3}for(;s<19;)a[_he[s++]]=0;if(c[0]=7,C=m.inflate_trees_bits(a,c,l,p,A),C!=0)return x=C,x==-3&&(a=null,i=zx),n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);s=0,i=xhe;case xhe:for(;C=o,!(s>=258+(C&31)+(C>>5&31));){let k,V;for(C=c[0];E<C;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<<E,E+=8}if(C=p[(l[0]+(T&Eu[C]))*3+1],V=p[(l[0]+(T&Eu[C]))*3+2],V<16)T>>>=C,E-=C,a[s++]=V;else{for(O=V==18?7:V-14,k=V==18?11:3;E<C+O;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<<E,E+=8}if(T>>>=C,E-=C,k+=T&Eu[O],T>>>=O,E-=O,O=s,C=o,O+k>258+(C&31)+(C>>5&31)||V==16&&O<1)return a=null,i=zx,A.msg="invalid bit length repeat",x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);V=V==16?a[O-1]:0;do a[O++]=V;while(--k!==0);s=O}}if(l[0]=-1,w=[],I=[],R=[],F=[],w[0]=9,I[0]=6,C=o,C=m.inflate_trees_dynamic(257+(C&31),1+(C>>5&31),a,w,I,R,F,p,A),C!=0)return C==-3&&(a=null,i=zx),x=C,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);f.init(w[0],I[0],p,R[0],p,F[0]),i=Jk;case Jk:if(n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,(x=f.proc(n,A,x))!=1)return n.inflate_flush(A,x);if(x=0,f.free(A),S=A.next_in_index,v=A.avail_in,T=n.bitb,E=n.bitk,D=n.write,M=D<n.read?n.read-D-1:n.end-D,d===0){i=Bb;break}i=Zk;case Zk:if(n.write=D,x=n.inflate_flush(A,x),D=n.write,M=D<n.read?n.read-D-1:n.end-D,n.read!=n.write)return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);i=Che;case Che:return x=1,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);case zx:return x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);default:return x=-2,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x)}}},n.free=function(A){n.reset(A,null),n.win=null,p=null},n.set_dictionary=function(A,x,C){n.win.set(A.subarray(x,x+C),0),n.read=n.write=C},n.sync_point=function(){return i==R7?1:0}}var s$e=32,a$e=8,c$e=0,The=1,Ehe=2,bhe=3,She=4,vhe=5,B7=6,LB=7,whe=12,By=13,l$e=[0,0,255,255];function u$e(){let e=this;e.mode=0,e.method=0,e.was=[0],e.need=0,e.marker=0,e.wbits=0;function t(n){return!n||!n.istate?-2:(n.total_in=n.total_out=0,n.msg=null,n.istate.mode=LB,n.istate.blocks.reset(n,null),0)}e.inflateEnd=function(n){return e.blocks&&e.blocks.free(n),e.blocks=null,0},e.inflateInit=function(n,i){return n.msg=null,e.blocks=null,i<8||i>15?(e.inflateEnd(n),-2):(e.wbits=i,n.istate.blocks=new o$e(n,1<<i),t(n),0)},e.inflate=function(n,i){let r,o;if(!n||!n.istate||!n.next_in)return-2;let s=n.istate;for(i=i==KQe?-5:0,r=-5;;)switch(s.mode){case c$e:if(n.avail_in===0)return r;if(r=i,n.avail_in--,n.total_in++,((s.method=n.read_byte(n.next_in_index++))&15)!=a$e){s.mode=By,n.msg="unknown compression method",s.marker=5;break}if((s.method>>4)+8>s.wbits){s.mode=By,n.msg="invalid win size",s.marker=5;break}s.mode=The;case The:if(n.avail_in===0)return r;if(r=i,n.avail_in--,n.total_in++,o=n.read_byte(n.next_in_index++)&255,((s.method<<8)+o)%31!==0){s.mode=By,n.msg="incorrect header check",s.marker=5;break}if(!(o&s$e)){s.mode=LB;break}s.mode=Ehe;case Ehe:if(n.avail_in===0)return r;r=i,n.avail_in--,n.total_in++,s.need=(n.read_byte(n.next_in_index++)&255)<<24&4278190080,s.mode=bhe;case bhe:if(n.avail_in===0)return r;r=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<16&16711680,s.mode=She;case She:if(n.avail_in===0)return r;r=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<8&65280,s.mode=vhe;case vhe:return n.avail_in===0?r:(r=i,n.avail_in--,n.total_in++,s.need+=n.read_byte(n.next_in_index++)&255,s.mode=B7,2);case B7:return s.mode=By,n.msg="need dictionary",s.marker=0,-2;case LB:if(r=s.blocks.proc(n,r),r==-3){s.mode=By,s.marker=0;break}if(r==0&&(r=i),r!=1)return r;r=i,s.blocks.reset(n,s.was),s.mode=whe;case whe:return n.avail_in=0,1;case By:return-3;default:return-2}},e.inflateSetDictionary=function(n,i,r){let o=0,s=r;if(!n||!n.istate||n.istate.mode!=B7)return-2;let a=n.istate;return s>=1<<a.wbits&&(s=(1<<a.wbits)-1,o=r-s),a.blocks.set_dictionary(i,o,s),a.mode=LB,0},e.inflateSync=function(n){let i,r,o,s,a;if(!n||!n.istate)return-2;let c=n.istate;if(c.mode!=By&&(c.mode=By,c.marker=0),(i=n.avail_in)===0)return-5;for(r=n.next_in_index,o=c.marker;i!==0&&o<4;)n.read_byte(r)==l$e[o]?o++:n.read_byte(r)!==0?o=0:o=4-o,r++,i--;return n.total_in+=r-n.next_in_index,n.next_in_index=r,n.avail_in=i,c.marker=o,o!=4?-3:(s=n.total_in,a=n.total_out,t(n),n.total_in=s,n.total_out=a,c.mode=LB,0)},e.inflateSyncPoint=function(n){return!n||!n.istate||!n.istate.blocks?-2:n.istate.blocks.sync_point()}}function Ihe(){}Ihe.prototype={inflateInit:function(e){let t=this;return t.istate=new u$e,e||(e=15),t.istate.inflateInit(t,e)},inflate:function(e){let t=this;return t.istate?t.istate.inflate(t,e):-2},inflateEnd:function(){let e=this;if(!e.istate)return-2;let t=e.istate.inflateEnd(e);return e.istate=null,t},inflateSync:function(){let e=this;return e.istate?e.istate.inflateSync(e):-2},inflateSetDictionary:function(e,t){let n=this;return n.istate?n.istate.inflateSetDictionary(n,e,t):-2},read_byte:function(e){return this.next_in[e]},read_buf:function(e,t){return this.next_in.subarray(e,e+t)}};function f$e(e){let t=this,n=new Ihe,i=e&&e.chunkSize?Math.floor(e.chunkSize*2):128*1024,r=XQe,o=new Uint8Array(i),s=!1;n.inflateInit(),n.next_out=o,t.append=function(a,c){let l=[],f,d,p=0,g=0,m=0;if(a.length!==0){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,n.avail_in===0&&!s&&(n.next_in_index=0,s=!0),f=n.inflate(r),s&&f===-5){if(n.avail_in!==0)throw new Error("inflating: bad input")}else if(f!==0&&f!==1)throw new Error("inflating: "+n.msg);if((s||f===1)&&n.avail_in===a.length)throw new Error("inflating: bad input");n.next_out_index&&(n.next_out_index===i?l.push(new Uint8Array(o)):l.push(o.slice(0,n.next_out_index))),m+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=p&&(c(n.next_in_index),p=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return l.length>1?(d=new Uint8Array(m),l.forEach(function(A){d.set(A,g),g+=A.length})):d=l[0]||new Uint8Array(0),d}},t.flush=function(){n.inflateEnd()}}var Phe=f$e;var d$e={chunkSize:524288,maxWorkers:typeof navigator<"u"&&navigator.hardwareConcurrency||2,terminateWorkerTimeout:5e3,useWebWorkers:!0,workerScripts:void 0},Ml=Object.assign({},d$e);function Qk(){return Ml}function Lb(e){if(e.baseURL!==void 0&&(Ml.baseURL=e.baseURL),e.chunkSize!==void 0&&(Ml.chunkSize=e.chunkSize),e.maxWorkers!==void 0&&(Ml.maxWorkers=e.maxWorkers),e.terminateWorkerTimeout!==void 0&&(Ml.terminateWorkerTimeout=e.terminateWorkerTimeout),e.useWebWorkers!==void 0&&(Ml.useWebWorkers=e.useWebWorkers),e.Deflate!==void 0&&(Ml.Deflate=e.Deflate),e.Inflate!==void 0&&(Ml.Inflate=e.Inflate),e.workerScripts!==void 0){if(e.workerScripts.deflate){if(!Array.isArray(e.workerScripts.deflate))throw new Error("workerScripts.deflate must be an array");Ml.workerScripts||(Ml.workerScripts={}),Ml.workerScripts.deflate=e.workerScripts.deflate}if(e.workerScripts.inflate){if(!Array.isArray(e.workerScripts.inflate))throw new Error("workerScripts.inflate must be an array");Ml.workerScripts||(Ml.workerScripts={}),Ml.workerScripts.inflate=e.workerScripts.inflate}}}var Ohe=[];for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t&1?t=t>>>1^3988292384:t=t>>>1;Ohe[e]=t}var N7=class{constructor(t){this.crc=t||-1}append(t){let n=this.crc|0;for(let i=0,r=t.length|0;i<r;i++)n=n>>>8^Ohe[(n^t[i])&255];this.crc=n}get(){return~this.crc}},Ly=N7;var NB=h$e;function h$e(e){if(typeof TextEncoder>"u"){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}else return new TextEncoder().encode(e)}var Xc={concat(e,t){if(e.length===0||t.length===0)return e.concat(t);let n=e[e.length-1],i=Xc.getPartial(n);return i===32?e.concat(t):Xc._shiftRight(t,i,n|0,e.slice(0,e.length-1))},bitLength(e){let t=e.length;if(t===0)return 0;let n=e[t-1];return(t-1)*32+Xc.getPartial(n)},clamp(e,t){if(e.length*32<t)return e;e=e.slice(0,Math.ceil(t/32));let n=e.length;return t=t&31,n>0&&t&&(e[n-1]=Xc.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return e===32?t:(n?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,i){for(i===void 0&&(i=[]);t>=32;t-=32)i.push(n),n=0;if(t===0)return i.concat(e);for(let s=0;s<e.length;s++)i.push(n|e[s]>>>t),n=e[s]<<32-t;let r=e.length?e[e.length-1]:0,o=Xc.getPartial(r);return i.push(Xc.partial(t+o&31,t+o>32?n:i.pop(),1)),i}},FB={bytes:{fromBits(e){let n=Xc.bitLength(e)/8,i=new Uint8Array(n),r;for(let o=0;o<n;o++)o&3||(r=e[o/4]),i[o]=r>>>24,r<<=8;return i},toBits(e){let t=[],n,i=0;for(n=0;n<e.length;n++)i=i<<8|e[n],(n&3)===3&&(t.push(i),i=0);return n&3&&t.push(Xc.partial(8*(n&3),i)),t}}},F7={};F7.sha1=function(e){e?(this._h=e._h.slice(0),this._buffer=e._buffer.slice(0),this._length=e._length):this.reset()};F7.sha1.prototype={blockSize:512,reset:function(){let e=this;return e._h=this._init.slice(0),e._buffer=[],e._length=0,e},update:function(e){let t=this;typeof e=="string"&&(e=FB.utf8String.toBits(e));let n=t._buffer=Xc.concat(t._buffer,e),i=t._length,r=t._length=i+Xc.bitLength(e);if(r>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");let o=new Uint32Array(n),s=0;for(let a=t.blockSize+i-(t.blockSize+i&t.blockSize-1);a<=r;a+=t.blockSize)t._block(o.subarray(16*s,16*(s+1))),s+=1;return n.splice(0,16*s),t},finalize:function(){let e=this,t=e._buffer,n=e._h;t=Xc.concat(t,[Xc.partial(1,1)]);for(let i=t.length+2;i&15;i++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),n},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:function(e,t,n,i){if(e<=19)return t&n|~t&i;if(e<=39)return t^n^i;if(e<=59)return t&n|t&i|n&i;if(e<=79)return t^n^i},_S:function(e,t){return t<<e|t>>>32-e},_block:function(e){let t=this,n=t._h,i=Array(80);for(let l=0;l<16;l++)i[l]=e[l];let r=n[0],o=n[1],s=n[2],a=n[3],c=n[4];for(let l=0;l<=79;l++){l>=16&&(i[l]=t._S(1,i[l-3]^i[l-8]^i[l-14]^i[l-16]));let f=t._S(5,r)+t._f(l,o,s,a)+c+i[l]+t._key[Math.floor(l/20)]|0;c=a,a=s,s=t._S(30,o),o=r,r=f}n[0]=n[0]+r|0,n[1]=n[1]+o|0,n[2]=n[2]+s|0,n[3]=n[3]+a|0,n[4]=n[4]+c|0}};var U7={};U7.aes=class{constructor(e){let t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();let n=t._tables[0][4],i=t._tables[1],r=e.length,o,s,a,c=1;if(r!==4&&r!==6&&r!==8)throw new Error("invalid aes key size");for(t._key=[s=e.slice(0),a=[]],o=r;o<4*r+28;o++){let l=s[o-1];(o%r===0||r===8&&o%r===4)&&(l=n[l>>>24]<<24^n[l>>16&255]<<16^n[l>>8&255]<<8^n[l&255],o%r===0&&(l=l<<8^l>>>24^c<<24,c=c<<1^(c>>7)*283)),s[o]=s[o-r]^l}for(let l=0;o;l++,o--){let f=s[l&3?o:o-4];o<=4||l<4?a[l]=f:a[l]=i[0][n[f>>>24]]^i[1][n[f>>16&255]]^i[2][n[f>>8&255]]^i[3][n[f&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){let e=this._tables[0],t=this._tables[1],n=e[4],i=t[4],r=[],o=[],s,a,c,l;for(let f=0;f<256;f++)o[(r[f]=f<<1^(f>>7)*283)^f]=f;for(let f=s=0;!n[f];f^=a||1,s=o[s]||1){let d=s^s<<1^s<<2^s<<3^s<<4;d=d>>8^d&255^99,n[f]=d,i[d]=f,l=r[c=r[a=r[f]]];let p=l*16843009^c*65537^a*257^f*16843008,g=r[d]*257^d*16843008;for(let m=0;m<4;m++)e[m][f]=g=g<<24^g>>>8,t[m][d]=p=p<<24^p>>>8}for(let f=0;f<5;f++)e[f]=e[f].slice(0),t[f]=t[f].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");let n=this._key[t],i=n.length/4-2,r=[0,0,0,0],o=this._tables[t],s=o[0],a=o[1],c=o[2],l=o[3],f=o[4],d=e[0]^n[0],p=e[t?3:1]^n[1],g=e[2]^n[2],m=e[t?1:3]^n[3],A=4,x,C,T;for(let E=0;E<i;E++)x=s[d>>>24]^a[p>>16&255]^c[g>>8&255]^l[m&255]^n[A],C=s[p>>>24]^a[g>>16&255]^c[m>>8&255]^l[d&255]^n[A+1],T=s[g>>>24]^a[m>>16&255]^c[d>>8&255]^l[p&255]^n[A+2],m=s[m>>>24]^a[d>>16&255]^c[p>>8&255]^l[g&255]^n[A+3],A+=4,d=x,p=C,g=T;for(let E=0;E<4;E++)r[t?3&-E:E]=f[d>>>24]<<24^f[p>>16&255]<<16^f[g>>8&255]<<8^f[m&255]^n[A++],x=d,d=p,p=g,g=m,m=x;return r}};var Mhe={getRandomValues(e){let t=new Uint32Array(e.buffer),n=i=>{let r=987654321,o=4294967295;return function(){return r=36969*(r&65535)+(r>>16)&o,i=18e3*(i&65535)+(i>>16)&o,(((r<<16)+i&o)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let i=0,r;i<e.length;i+=4){let o=n((r||Math.random())*4294967296);r=o()*987654071,t[i/4]=o()*4294967296|0}return e}},V7={};V7.ctrGladman=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if((e>>24&255)===255){let t=e>>16&255,n=e>>8&255,i=e&255;t===255?(t=0,n===255?(n=0,i===255?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let i;if(!(i=t.length))return[];let r=Xc.bitLength(t);for(let o=0;o<i;o+=4){this.incCounter(n);let s=e.encrypt(n);t[o]^=s[0],t[o+1]^=s[1],t[o+2]^=s[2],t[o+3]^=s[3]}return Xc.clamp(t,r)}};var Nb={importKey(e){return new Nb.hmacSha1(FB.bytes.toBits(e))},pbkdf2(e,t,n,i){if(n=n||1e4,i<0||n<0)throw new Error("invalid params to pbkdf2");let r=(i>>5)+1<<2,o,s,a,c,l,f=new ArrayBuffer(r),d=new DataView(f),p=0,g=Xc;for(t=FB.bytes.toBits(t),l=1;p<(r||1);l++){for(o=s=e.encrypt(g.concat(t,[l])),a=1;a<n;a++)for(s=e.encrypt(s),c=0;c<s.length;c++)o[c]^=s[c];for(a=0;p<(r||1)&&a<o.length;a++)d.setInt32(p,o[a]),p+=4}return f.slice(0,i/8)}};Nb.hmacSha1=class{constructor(e){let t=this,n=t._hash=F7.sha1,i=[[],[]],r=n.prototype.blockSize/32;t._baseHash=[new n,new n],e.length>r&&(e=n.hash(e));for(let o=0;o<r;o++)i[0][o]=e[o]^909522486,i[1][o]=e[o]^1549556828;t._baseHash[0].update(i[0]),t._baseHash[1].update(i[1]),t._resultHash=new n(t._baseHash[0])}reset(){let e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){let t=this;t._updated=!0,t._resultHash.update(e)}digest(){let e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}};var Ub="Invalid pasword",Fb=16,m$e="raw",Rhe={name:"PBKDF2"},p$e={name:"HMAC"},_$e="SHA-1",g$e=Object.assign({hash:p$e},Rhe),Bhe=Object.assign({iterations:1e3,hash:{name:_$e}},Rhe),y$e=["deriveBits"],VB=[8,12,16],UB=[16,24,32],Ny=10,Lhe=[0,0,0,0],t4=typeof crypto<"u",Nhe=t4&&typeof crypto.subtle<"u",Tm=FB.bytes,Fhe=U7.aes,Uhe=V7.ctrGladman,Vhe=Nb.hmacSha1,$k=class{constructor(t,n,i){Object.assign(this,{password:t,signed:n,strength:i-1,pendingInput:new Uint8Array(0)})}async append(t){let n=this;if(n.password){let r=bu(t,0,VB[n.strength]+2);await A$e(n,r,n.password),n.password=null,n.aesCtrGladman=new Uhe(new Fhe(n.keys.key),Array.from(Lhe)),n.hmac=new Vhe(n.keys.authentication),t=bu(t,VB[n.strength]+2)}let i=new Uint8Array(t.length-Ny-(t.length-Ny)%Fb);return khe(n,t,i,0,Ny,!0)}flush(){let t=this,n=t.pendingInput,i=bu(n,0,n.length-Ny),r=bu(n,n.length-Ny),o=new Uint8Array(0);if(i.length){let a=Tm.toBits(i);t.hmac.update(a);let c=t.aesCtrGladman.update(a);o=Tm.fromBits(c)}let s=!0;if(t.signed){let a=bu(Tm.fromBits(t.hmac.digest()),0,Ny);for(let c=0;c<Ny;c++)a[c]!=r[c]&&(s=!1)}return{valid:s,data:o}}},e4=class{constructor(t,n){Object.assign(this,{password:t,strength:n-1,pendingInput:new Uint8Array(0)})}async append(t){let n=this,i=new Uint8Array(0);n.password&&(i=await x$e(n,n.password),n.password=null,n.aesCtrGladman=new Uhe(new Fhe(n.keys.key),Array.from(Lhe)),n.hmac=new Vhe(n.keys.authentication));let r=new Uint8Array(i.length+t.length-t.length%Fb);return r.set(i,0),khe(n,t,r,i.length,0)}flush(){let t=this,n=new Uint8Array(0);if(t.pendingInput.length){let r=t.aesCtrGladman.update(Tm.toBits(t.pendingInput));t.hmac.update(r),n=Tm.fromBits(r)}let i=bu(Tm.fromBits(t.hmac.digest()),0,Ny);return{data:k7(n,i),signature:i}}};function khe(e,t,n,i,r,o){let s=t.length-r;e.pendingInput.length&&(t=k7(e.pendingInput,t),n=b$e(n,s-s%Fb));let a;for(a=0;a<=s-Fb;a+=Fb){let c=Tm.toBits(bu(t,a,a+Fb));o&&e.hmac.update(c);let l=e.aesCtrGladman.update(c);o||e.hmac.update(l),n.set(Tm.fromBits(l),a+i)}return e.pendingInput=bu(t,a),n}async function A$e(e,t,n){await zhe(e,n,bu(t,0,VB[e.strength]));let i=bu(t,VB[e.strength]),r=e.keys.passwordVerification;if(r[0]!=i[0]||r[1]!=i[1])throw new Error(Ub)}async function x$e(e,t){let n=C$e(new Uint8Array(VB[e.strength]));return await zhe(e,t,n),k7(n,e.keys.passwordVerification)}async function zhe(e,t,n){let i=NB(t),r=await T$e(m$e,i,g$e,!1,y$e),o=await E$e(Object.assign({salt:n},Bhe),r,8*(UB[e.strength]*2+2)),s=new Uint8Array(o);e.keys={key:Tm.toBits(bu(s,0,UB[e.strength])),authentication:Tm.toBits(bu(s,UB[e.strength],UB[e.strength]*2)),passwordVerification:bu(s,UB[e.strength]*2)}}function C$e(e){return t4&&typeof crypto.getRandomValues=="function"?crypto.getRandomValues(e):Mhe.getRandomValues(e)}function T$e(e,t,n,i,r){return t4&&Nhe&&typeof crypto.subtle.importKey=="function"?crypto.subtle.importKey(e,t,n,i,r):Nb.importKey(t)}async function E$e(e,t,n){return t4&&Nhe&&typeof crypto.subtle.deriveBits=="function"?await crypto.subtle.deriveBits(e,t,n):Nb.pbkdf2(t,e.salt,Bhe.iterations,n)}function k7(e,t){let n=e;return e.length+t.length&&(n=new Uint8Array(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function b$e(e,t){if(t&&t>e.length){let n=e;e=new Uint8Array(t),e.set(n,0)}return e}function bu(e,t,n){return e.subarray(t,n)}var Vb=12,n4=class{constructor(t,n){let i=this;Object.assign(i,{password:t,passwordVerification:n}),jhe(i,t)}append(t){let n=this;if(n.password){let i=Hhe(n,t.subarray(0,Vb));if(n.password=null,i[Vb-1]!=n.passwordVerification)throw new Error(Ub);t=t.subarray(Vb)}return Hhe(n,t)}flush(){return{valid:!0,data:new Uint8Array(0)}}},i4=class{constructor(t,n){let i=this;Object.assign(i,{password:t,passwordVerification:n}),jhe(i,t)}append(t){let n=this,i,r;if(n.password){n.password=null;let o=crypto.getRandomValues(new Uint8Array(Vb));o[Vb-1]=n.passwordVerification,i=new Uint8Array(t.length+o.length),i.set(Ghe(n,o),0),r=Vb}else i=new Uint8Array(t.length),r=0;return i.set(Ghe(n,t),r),i}flush(){return{data:new Uint8Array(0)}}};function Hhe(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=qhe(e)^t[i],z7(e,n[i]);return n}function Ghe(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=qhe(e)^t[i],z7(e,t[i]);return n}function jhe(e,t){e.keys=[305419896,591751049,878082192],e.crcKey0=new Ly(e.keys[0]),e.crcKey2=new Ly(e.keys[2]);for(let n=0;n<t.length;n++)z7(e,t.charCodeAt(n))}function z7(e,t){e.crcKey0.append([t]),e.keys[0]=~e.crcKey0.get(),e.keys[1]=Whe(e.keys[1]+Yhe(e.keys[0])),e.keys[1]=Whe(Math.imul(e.keys[1],134775813)+1),e.crcKey2.append([e.keys[1]>>>24]),e.keys[2]=~e.crcKey2.get()}function qhe(e){let t=e.keys[2]|2;return Yhe(Math.imul(t,t^1)>>>8)}function Yhe(e){return e&255}function Whe(e){return e&4294967295}var o4="deflate",s4="inflate",r4="Invalid signature",H7=class{constructor(t,{signature:n,password:i,signed:r,compressed:o,zipCrypto:s,passwordVerification:a,encryptionStrength:c},{chunkSize:l}){let f=!!i;Object.assign(this,{signature:n,encrypted:f,signed:r,compressed:o,inflate:o&&new t({chunkSize:l}),crc32:r&&new Ly,zipCrypto:s,decrypt:f&&s?new n4(i,a):new $k(i,r,c)})}async append(t){let n=this;return n.encrypted&&t.length&&(t=await n.decrypt.append(t)),n.compressed&&t.length&&(t=await n.inflate.append(t)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),t}async flush(){let t=this,n,i=new Uint8Array(0);if(t.encrypted){let r=t.decrypt.flush();if(!r.valid)throw new Error(r4);i=r.data}if((!t.encrypted||t.zipCrypto)&&t.signed){let r=new DataView(new Uint8Array(4).buffer);if(n=t.crc32.get(),r.setUint32(0,n),t.signature!=r.getUint32(0,!1))throw new Error(r4)}return t.compressed&&(i=await t.inflate.append(i)||new Uint8Array(0),await t.inflate.flush()),{data:i,signature:n}}},G7=class{constructor(t,{encrypted:n,signed:i,compressed:r,level:o,zipCrypto:s,password:a,passwordVerification:c,encryptionStrength:l},{chunkSize:f}){Object.assign(this,{encrypted:n,signed:i,compressed:r,deflate:r&&new t({level:o||5,chunkSize:f}),crc32:i&&new Ly,zipCrypto:s,encrypt:n&&s?new i4(a,c):new e4(a,l)})}async append(t){let n=this,i=t;return n.compressed&&t.length&&(i=await n.deflate.append(t)),n.encrypted&&i.length&&(i=await n.encrypt.append(i)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),i}async flush(){let t=this,n,i=new Uint8Array(0);if(t.compressed&&(i=await t.deflate.flush()||new Uint8Array(0)),t.encrypted){i=await t.encrypt.append(i);let r=t.encrypt.flush();n=r.signature;let o=new Uint8Array(i.length+r.data.length);o.set(i,0),o.set(r.data,i.length),i=o}return(!t.encrypted||t.zipCrypto)&&t.signed&&(n=t.crc32.get()),{data:i,signature:n}}};function Xhe(e,t,n){if(t.codecType.startsWith(o4))return new G7(e,t,n);if(t.codecType.startsWith(s4))return new H7(e,t,n)}var Khe="init",Jhe="append",W7="flush",S$e="message",Zhe=!0,a4=(e,t,n,i,r,o,s)=>(Object.assign(e,{busy:!0,codecConstructor:t,options:Object.assign({},n),scripts:s,terminate(){e.worker&&!e.busy&&(e.worker.terminate(),e.interface=null)},onTaskFinished(){e.busy=!1,r(e)}}),o?w$e(e,i):v$e(e,i));function v$e(e,t){let n=Xhe(e.codecConstructor,e.options,t);return{async append(i){try{return await n.append(i)}catch(r){throw e.onTaskFinished(),r}},async flush(){try{return await n.flush()}finally{e.onTaskFinished()}},abort(){e.onTaskFinished()}}}function w$e(e,t){let n,i={type:"module"};if(!e.interface){if(!Zhe)e.worker=r(i,t.baseURL);else try{e.worker=r({},t.baseURL)}catch{Zhe=!1,e.worker=r(i,t.baseURL)}e.worker.addEventListener(S$e,a,!1),e.interface={append(c){return o({type:Jhe,data:c})},flush(){return o({type:W7})},abort(){e.onTaskFinished()}}}return e.interface;function r(c,l){let f,d;f=e.scripts[0],typeof f=="function"&&(f=f());try{d=new URL(f,l)}catch{d=f}return new Worker(d,c)}async function o(c){if(!n){let l=e.options,f=e.scripts.slice(1);await s({scripts:f,type:Khe,options:l,config:{chunkSize:t.chunkSize}})}return s(c)}function s(c){let l=e.worker,f=new Promise((d,p)=>n={resolve:d,reject:p});try{if(c.data)try{c.data=c.data.buffer,l.postMessage(c,[c.data])}catch{l.postMessage(c)}else l.postMessage(c)}catch(d){n.reject(d),n=null,e.onTaskFinished()}return f}function a(c){let l=c.data;if(n){let f=l.error,d=l.type;if(f){let p=new Error(f.message);p.stack=f.stack,n.reject(p),n=null,e.onTaskFinished()}else if(d==Khe||d==W7||d==Jhe){let p=l.data;d==W7?(n.resolve({data:new Uint8Array(p),signature:l.signature}),n=null,e.onTaskFinished()):n.resolve(p&&new Uint8Array(p))}}}}var Hx=[],j7=[];function c4(e,t,n){let r=!(!t.compressed&&!t.signed&&!t.encrypted)&&(t.useWebWorkers||t.useWebWorkers===void 0&&n.useWebWorkers),o=r&&n.workerScripts?n.workerScripts[t.codecType]:[];if(Hx.length<n.maxWorkers){let a={};return Hx.push(a),a4(a,e,t,n,s,r,o)}else{let a=Hx.find(c=>!c.busy);return a?(Qhe(a),a4(a,e,t,n,s,r,o)):new Promise(c=>j7.push({resolve:c,codecConstructor:e,options:t,webWorker:r,scripts:o}))}function s(a){if(j7.length){let[{resolve:c,codecConstructor:l,options:f,webWorker:d,scripts:p}]=j7.splice(0,1);c(a4(a,l,f,n,s,d,p))}else a.worker?(Qhe(a),Number.isFinite(n.terminateWorkerTimeout)&&n.terminateWorkerTimeout>=0&&(a.terminateTimeout=setTimeout(()=>{Hx=Hx.filter(c=>c!=a),a.terminate()},n.terminateWorkerTimeout))):Hx=Hx.filter(c=>c!=a)}}function Qhe(e){e.terminateTimeout&&(clearTimeout(e.terminateTimeout),e.terminateTimeout=null)}var eme="Abort error";async function l4(e,t,n,i,r,o,s){let a=Math.max(o.chunkSize,64);return c();async function c(l=0,f=0){let d=s.signal,p=r();if(l<p){q7(d,e);let g=await t.readUint8Array(l+i,Math.min(a,p-l)),m=g.length;q7(d,e);let A=await e.append(g);if(q7(d,e),f+=await $he(n,A),s.onprogress)try{s.onprogress(l+m,p)}catch{}return c(l+a,f)}else{let g=await e.flush();return f+=await $he(n,g.data),{signature:g.signature,length:f}}}}function q7(e,t){if(e&&e.aborted)throw t.abort(),new Error(eme)}async function $he(e,t){return t.length&&await e.writeUint8Array(t),t.length}var Y7="text/plain";var u4=class{constructor(){this.size=0}init(){this.initialized=!0}},f4=class extends u4{},kB=class extends u4{writeUint8Array(t){this.size+=t.length}},d4=class extends f4{constructor(t){super(),this.blobReader=new Gx(new Blob([t],{type:Y7}))}init(){super.init(),this.blobReader.init(),this.size=this.blobReader.size}readUint8Array(t,n){return this.blobReader.readUint8Array(t,n)}},h4=class extends kB{constructor(t){super(),this.encoding=t,this.blob=new Blob([],{type:Y7})}writeUint8Array(t){super.writeUint8Array(t),this.blob=new Blob([this.blob,t.buffer],{type:Y7})}getData(){if(this.blob.text)return this.blob.text();{let t=new FileReader;return new Promise((n,i)=>{t.onload=r=>n(r.target.result),t.onerror=()=>i(t.error),t.readAsText(this.blob,this.encoding)})}}};var m4=class extends kB{constructor(t){super(),this.data="data:"+(t||"")+";base64,",this.pending=[]}writeUint8Array(t){super.writeUint8Array(t);let n=0,i=this.pending,r=this.pending.length;for(this.pending="",n=0;n<Math.floor((r+t.length)/3)*3-r;n++)i+=String.fromCharCode(t[n]);for(;n<t.length;n++)this.pending+=String.fromCharCode(t[n]);i.length>2?this.data+=btoa(i):this.pending=i}getData(){return this.data+btoa(this.pending)}},Gx=class extends f4{constructor(t){super(),this.blob=t,this.size=t.size}async readUint8Array(t,n){if(this.blob.arrayBuffer)return new Uint8Array(await this.blob.slice(t,t+n).arrayBuffer());{let i=new FileReader;return new Promise((r,o)=>{i.onload=s=>r(new Uint8Array(s.target.result)),i.onerror=()=>o(i.error),i.readAsArrayBuffer(this.blob.slice(t,t+n))})}}},kb=class extends kB{constructor(t){super(),this.contentType=t,this.arrayBuffersMaxlength=8,tme(this)}writeUint8Array(t){super.writeUint8Array(t),this.arrayBuffers.length==this.arrayBuffersMaxlength&&nme(this),this.arrayBuffers.push(t.buffer)}getData(){return this.blob||(this.arrayBuffers.length&&nme(this),this.blob=this.pendingBlob,tme(this)),this.blob}};function tme(e){e.pendingBlob=new Blob([],{type:e.contentType}),e.arrayBuffers=[]}function nme(e){e.pendingBlob=new Blob([e.pendingBlob,...e.arrayBuffers],{type:e.contentType}),e.arrayBuffers=[]}var zb="/",X7=new Date(2107,11,31),K7=new Date(1980,0,1);var D$e="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),ime=e=>{let t="";for(let n=0;n<e.length;n++)t+=D$e[e[n]];return t};var p4=I$e;function I$e(e,t){if(t&&t.trim().toLowerCase()=="cp437")return ime(e);if(typeof TextDecoder>"u"){let n=new FileReader;return new Promise((i,r)=>{n.onload=o=>i(o.target.result),n.onerror=()=>r(n.error),n.readAsText(new Blob([e]))})}else return new TextDecoder(t).decode(e)}var P$e=["filename","rawFilename","directory","encrypted","compressedSize","uncompressedSize","lastModDate","rawLastModDate","comment","rawComment","signature","extraField","rawExtraField","bitFlag","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","filenameUTF8","commentUTF8","offset","zip64","compressionMethod","extraFieldNTFS","lastAccessDate","creationDate","extraFieldExtendedTimestamp","version","versionMadeBy","msDosCompatible","internalFileAttribute","externalFileAttribute"],P_=class{constructor(t){P$e.forEach(n=>this[n]=t[n])}};var Q7="File format is not recognized",B$e="End of central directory not found",L$e="End of Zip64 central directory not found",N$e="End of Zip64 central directory locator not found",F$e="Central directory header not found",U$e="Local file header not found",V$e="Zip64 extra field not found",k$e="File contains encrypted entry",z$e="Encryption method not supported",rme="Compression method not supported",ome="utf-8",sme="cp437",ame=["uncompressedSize","compressedSize","offset"],b4=class{constructor(t,n={}){Object.assign(this,{reader:t,options:n,config:Qk()})}async*getEntriesGenerator(t={}){let n=this,i=n.reader;if(i.initialized||await i.init(),i.size<22)throw new Error(Q7);let r=await q$e(i,101010256,i.size,22,65535*16);if(!r)throw new Error(B$e);let o=lc(r),s=ia(o,12),a=ia(o,16),c=Su(o,8),l=0;if(a==4294967295||s==4294967295||c==65535){let g=await Fy(i,r.offset-20,20),m=lc(g);if(ia(m,0)!=117853008)throw new Error(L$e);a=_4(m,8);let A=await Fy(i,a,56),x=lc(A),C=r.offset-20-56;if(ia(x,0)!=101075792&&a!=C){let T=a;a=C,l=a-T,A=await Fy(i,a,56),x=lc(A)}if(ia(x,0)!=101075792)throw new Error(N$e);c=_4(x,32),s=_4(x,40),a-=s}if(a<0||a>=i.size)throw new Error(Q7);let f=0,d=await Fy(i,a,s),p=lc(d);if(s){let g=r.offset-s;if(ia(p,f)!=33639248&&a!=g){let m=a;a=g,l=a-m,d=await Fy(i,a,s),p=lc(d)}}if(a<0||a>=i.size)throw new Error(Q7);for(let g=0;g<c;g++){let m=new ej(i,n.config,n.options);if(ia(p,f)!=33639248)throw new Error(F$e);lme(m,p,f+6);let A=!!m.bitFlag.languageEncodingFlag,x=f+46,C=x+m.filenameLength,T=C+m.extraFieldLength,E=Su(p,f+4),S=(E&0)==0;Object.assign(m,{versionMadeBy:E,msDosCompatible:S,compressedSize:0,uncompressedSize:0,commentLength:Su(p,f+32),directory:S&&(Gb(p,f+38)&16)==16,offset:ia(p,f+42)+l,internalFileAttribute:ia(p,f+34),externalFileAttribute:ia(p,f+38),rawFilename:d.subarray(x,C),filenameUTF8:A,commentUTF8:A,rawExtraField:d.subarray(C,T)});let v=T+m.commentLength;m.rawComment=d.subarray(T,v);let D=Hb(n,t,"filenameEncoding"),M=Hb(n,t,"commentEncoding"),[O,B]=await Promise.all([p4(m.rawFilename,m.filenameUTF8?ome:D||sme),p4(m.rawComment,m.commentUTF8?ome:M||sme)]);m.filename=O,m.comment=B,!m.directory&&m.filename.endsWith(zb)&&(m.directory=!0),await ume(m,m,p,f+6);let L=new P_(m);if(L.getData=(_,b)=>m.getData(_,L,b),f=v,t.onprogress)try{t.onprogress(g+1,c,new P_(m))}catch{}yield L}return!0}async getEntries(t={}){let n=[],i=this.getEntriesGenerator(t),r=i.next();for(;!(await r).done;)n.push((await r).value),r=i.next();return n}async close(){}};var ej=class{constructor(t,n,i){Object.assign(this,{reader:t,config:n,options:i})}async getData(t,n,i={}){let r=this,{reader:o,offset:s,extraFieldAES:a,compressionMethod:c,config:l,bitFlag:f,signature:d,rawLastModDate:p,compressedSize:g}=r,m=r.localDirectory={};o.initialized||await o.init();let A=await Fy(o,s,30),x=lc(A),C=Hb(r,i,"password");if(C=C&&C.length&&C,a&&a.originalCompressionMethod!=99)throw new Error(rme);if(c!=0&&c!=8)throw new Error(rme);if(ia(x,0)!=67324752)throw new Error(U$e);lme(m,x,4),A=await Fy(o,s,30+m.filenameLength+m.extraFieldLength),m.rawExtraField=A.subarray(30+m.filenameLength),await ume(r,m,x,4),n.lastAccessDate=m.lastAccessDate,n.creationDate=m.creationDate;let T=r.encrypted&&m.encrypted,E=T&&!a;if(T){if(!E&&a.strength===void 0)throw new Error(z$e);if(!C)throw new Error(k$e)}let S=await c4(l.Inflate,{codecType:s4,password:C,zipCrypto:E,encryptionStrength:a&&a.strength,signed:Hb(r,i,"checkSignature"),passwordVerification:E&&(f.dataDescriptor?p>>>8&255:d>>>24&255),signature:d,compressed:c!=0,encrypted:T,useWebWorkers:Hb(r,i,"useWebWorkers")},l);t.initialized||await t.init();let v=Hb(r,i,"signal"),D=s+30+m.filenameLength+m.extraFieldLength;return await l4(S,o,t,D,()=>g,l,{onprogress:i.onprogress,signal:v}),t.getData()}};function lme(e,t,n){let i=e.rawBitFlag=Su(t,n+2),r=(i&1)==1,o=ia(t,n+6);Object.assign(e,{encrypted:r,version:Su(t,n),bitFlag:{level:(i&6)>>1,dataDescriptor:(i&8)==8,languageEncodingFlag:(i&2048)==2048},rawLastModDate:o,lastModDate:Y$e(o),filenameLength:Su(t,n+22),extraFieldLength:Su(t,n+24)})}async function ume(e,t,n,i){let r=t.rawExtraField,o=t.extraField=new Map,s=lc(new Uint8Array(r)),a=0;try{for(;a<r.length;){let A=Su(s,a),x=Su(s,a+2);o.set(A,{type:A,data:r.slice(a+4,a+4+x)}),a+=4+x}}catch{}let c=Su(n,i+4);t.signature=ia(n,i+10),t.uncompressedSize=ia(n,i+18),t.compressedSize=ia(n,i+14);let l=o.get(1);l&&(H$e(l,t),t.extraFieldZip64=l);let f=o.get(28789);f&&(await cme(f,"filename","rawFilename",t,e),t.extraFieldUnicodePath=f);let d=o.get(25461);d&&(await cme(d,"comment","rawComment",t,e),t.extraFieldUnicodeComment=d);let p=o.get(39169);p?(G$e(p,t,c),t.extraFieldAES=p):t.compressionMethod=c;let g=o.get(10);g&&(W$e(g,t),t.extraFieldNTFS=g);let m=o.get(21589);m&&(j$e(m,t),t.extraFieldExtendedTimestamp=m)}function H$e(e,t){t.zip64=!0;let n=lc(e.data);e.values=[];for(let r=0;r<Math.floor(e.data.length/8);r++)e.values.push(_4(n,0+r*8));let i=ame.filter(r=>t[r]==4294967295);for(let r=0;r<i.length;r++)e[i[r]]=e.values[r];ame.forEach(r=>{if(t[r]==4294967295)if(e[r]!==void 0)t[r]=e[r];else throw new Error(V$e)})}async function cme(e,t,n,i,r){let o=lc(e.data);e.version=Gb(o,0),e.signature=ia(o,1);let s=new Ly;s.append(r[n]);let a=lc(new Uint8Array(4));a.setUint32(0,s.get(),!0),e[t]=await p4(e.data.subarray(5)),e.valid=!r.bitFlag.languageEncodingFlag&&e.signature==ia(a,0),e.valid&&(i[t]=e[t],i[t+"UTF8"]=!0)}function G$e(e,t,n){let i=lc(e.data);e.vendorVersion=Gb(i,0),e.vendorId=Gb(i,2);let r=Gb(i,4);e.strength=r,e.originalCompressionMethod=n,t.compressionMethod=e.compressionMethod=Su(i,5)}function W$e(e,t){let n=lc(e.data),i=4,r;try{for(;i<e.data.length&&!r;){let o=Su(n,i),s=Su(n,i+2);o==1&&(r=e.data.slice(i+4,i+4+s)),i+=4+s}}catch{}try{if(r&&r.length==24){let o=lc(r),s=o.getBigUint64(0,!0),a=o.getBigUint64(8,!0),c=o.getBigUint64(16,!0);Object.assign(e,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:c});let l=$7(s),f=$7(a),d=$7(c),p={lastModDate:l,lastAccessDate:f,creationDate:d};Object.assign(e,p),Object.assign(t,p)}}catch{}}function j$e(e,t){let n=lc(e.data),i=Gb(n,0),r=[],o=[];(i&1)==1&&(r.push("lastModDate"),o.push("rawLastModDate")),(i&2)==2&&(r.push("lastAccessDate"),o.push("rawLastAccessDate")),(i&4)==4&&(r.push("creationDate"),o.push("rawCreationDate"));let s=1;r.forEach((a,c)=>{if(e.data.length>=s+4){let l=ia(n,s);t[a]=e[a]=new Date(l*1e3);let f=o[c];e[f]=l}s+=4})}async function q$e(e,t,n,i,r){let o=new Uint8Array(4),s=lc(o);X$e(s,0,t);let a=i+r;return await c(i)||await c(Math.min(a,n));async function c(l){let f=n-l,d=await Fy(e,f,l);for(let p=d.length-i;p>=0;p--)if(d[p]==o[0]&&d[p+1]==o[1]&&d[p+2]==o[2]&&d[p+3]==o[3])return{offset:f+p,buffer:d.slice(p,p+i).buffer}}}function Hb(e,t,n){return t[n]===void 0?e.options[n]:t[n]}function Y$e(e){let t=(e&4294901760)>>16,n=e&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(n&63488)>>11,(n&2016)>>5,(n&31)*2,0)}catch{}}function $7(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function Gb(e,t){return e.getUint8(t)}function Su(e,t){return e.getUint16(t,!0)}function ia(e,t){return e.getUint32(t,!0)}function _4(e,t){return Number(e.getBigUint64(t,!0))}function X$e(e,t,n){e.setUint32(t,n,!0)}function lc(e){return new DataView(e.buffer)}function Fy(e,t,n){return e.readUint8Array(t,n)}var $$e="File already exists",eet="Zip file comment exceeds 64KB",tet="File entry comment exceeds 64KB",net="File entry name exceeds 64KB",hme="Version exceeds 65535",iet="The strength must equal 1, 2, or 3",ret="Extra field type exceeds 65535",oet="Extra field data exceeds 64KB",dj="Zip64 is not supported",mme=new Uint8Array([7,0,2,0,65,69,3,0,0]),pme=24,uj=0,w4=class{constructor(t,n={}){Object.assign(this,{writer:t,options:n,config:Qk(),files:new Map,offset:t.size,pendingCompressedSize:0,pendingEntries:[],pendingAddFileCalls:new Set})}async add(t="",n,i={}){let r=this;if(uj<r.config.maxWorkers){uj++;let o;try{return o=set(r,t,n,i),this.pendingAddFileCalls.add(o),await o}finally{this.pendingAddFileCalls.delete(o),uj--;let s=r.pendingEntries.shift();s&&r.add(s.name,s.reader,s.options).then(s.resolve).catch(s.reject)}}else return new Promise((o,s)=>r.pendingEntries.push({name:t,reader:n,options:i,resolve:o,reject:s}))}async close(t=new Uint8Array(0),n={}){for(;this.pendingAddFileCalls.size;)await Promise.all(Array.from(this.pendingAddFileCalls));return await uet(this,t,n),this.writer.getData()}};async function set(e,t,n,i){if(t=t.trim(),i.directory&&!t.endsWith(zb)?t+=zb:i.directory=t.endsWith(zb),e.files.has(t))throw new Error($$e);let r=NB(t);if(r.length>65535)throw new Error(net);let o=i.comment||"",s=NB(o);if(s.length>65535)throw new Error(tet);let a=e.options.version||i.version||0;if(a>65535)throw new Error(hme);let c=e.options.versionMadeBy||i.versionMadeBy||20;if(c>65535)throw new Error(hme);let l=va(e,i,"lastModDate")||new Date,f=va(e,i,"lastAccessDate"),d=va(e,i,"creationDate"),p=va(e,i,"password"),g=va(e,i,"encryptionStrength")||3,m=va(e,i,"zipCrypto");if(p!==void 0&&g!==void 0&&(g<1||g>3))throw new Error(iet);let A=new Uint8Array(0),x=i.extraField;if(x){let F=0,k=0;x.forEach(V=>F+=4+V.length),A=new Uint8Array(F),x.forEach((V,G)=>{if(G>65535)throw new Error(ret);if(V.length>65535)throw new Error(oet);oa(A,new Uint16Array([G]),k),oa(A,new Uint16Array([V.length]),k+2),oa(A,V,k+4),k+=4+V.length})}let C=va(e,i,"extendedTimestamp");C===void 0&&(C=!0);let T=0,E=va(e,i,"keepOrder");E===void 0&&(E=!0);let S=0,v=va(e,i,"msDosCompatible");v===void 0&&(v=!0);let D=va(e,i,"internalFileAttribute")||0,M=va(e,i,"externalFileAttribute")||0;n&&(n.initialized||await n.init(),S=n.size,T=det(S));let O=i.zip64||e.options.zip64||!1;if(e.offset+e.pendingCompressedSize>=4294967295||S>=4294967295||T>=4294967295){if(i.zip64===!1||e.options.zip64===!1||!E)throw new Error(dj);O=!0}e.pendingCompressedSize+=T,await Promise.resolve();let B=va(e,i,"level"),L=va(e,i,"useWebWorkers"),_=va(e,i,"bufferedWrite"),b=va(e,i,"dataDescriptor"),w=va(e,i,"dataDescriptorSignature"),I=va(e,i,"signal");b===void 0&&(b=!0),b&&w===void 0&&(w=!1);let R=await aet(e,t,n,Object.assign({},i,{rawFilename:r,rawComment:s,version:a,versionMadeBy:c,lastModDate:l,lastAccessDate:f,creationDate:d,rawExtraField:A,zip64:O,password:p,level:B,useWebWorkers:L,encryptionStrength:g,extendedTimestamp:C,zipCrypto:m,bufferedWrite:_,keepOrder:E,dataDescriptor:b,dataDescriptorSignature:w,signal:I,msDosCompatible:v,internalFileAttribute:D,externalFileAttribute:M}));return T&&(e.pendingCompressedSize-=T),Object.assign(R,{name:t,comment:o,extraField:x}),new P_(R)}async function aet(e,t,n,i){let r=e.files,o=e.writer,s=Array.from(r.values()).pop(),a={},c,l,f;r.set(t,a);try{let d,p,g;if(i.keepOrder&&(d=s&&s.lock),a.lock=g=new Promise(m=>f=m),i.bufferedWrite||e.lockWrite||!i.dataDescriptor?(p=new kb,p.init(),c=!0):(e.lockWrite=new Promise(m=>l=m),o.initialized||await o.init(),p=o),a=await cet(n,p,e.config,i),a.lock=g,r.set(t,a),a.filename=t,c){let m=0,A=p.getData();await Promise.all([e.lockWrite,d]);let x;do x=Array.from(r.values()).find(C=>C.writingBufferedData),x&&await x.lock;while(x&&x.lock);if(a.writingBufferedData=!0,!i.dataDescriptor){let T=await _me(A,0,26),E=new DataView(T);(!a.encrypted||i.zipCrypto)&&gr(E,14,a.signature),a.zip64?(gr(E,18,4294967295),gr(E,22,4294967295)):(gr(E,18,a.compressedSize),gr(E,22,a.uncompressedSize)),await o.writeUint8Array(new Uint8Array(T)),m=26}await fet(o,A,m),delete a.writingBufferedData}if(a.offset=e.offset,a.zip64){let m=sh(a.rawExtraFieldZip64);Rl(m,20,BigInt(a.offset))}else if(a.offset>=4294967295)throw new Error(dj);return e.offset+=a.length,a}catch(d){throw(c&&a.writingBufferedData||!c&&a.dataWritten)&&(d.corruptedEntry=e.hasCorruptedEntries=!0,a.uncompressedSize&&(e.offset+=a.uncompressedSize)),r.delete(t),d}finally{f(),l&&l()}}async function cet(e,t,n,i){let{rawFilename:r,lastAccessDate:o,creationDate:s,password:a,level:c,zip64:l,zipCrypto:f,dataDescriptor:d,dataDescriptorSignature:p,directory:g,version:m,versionMadeBy:A,rawComment:x,rawExtraField:C,useWebWorkers:T,onprogress:E,signal:S,encryptionStrength:v,extendedTimestamp:D,msDosCompatible:M,internalFileAttribute:O,externalFileAttribute:B}=i,L=!!(a&&a.length),_=c!==0&&!g,b;if(L&&!f){b=new Uint8Array(mme.length+2);let Ne=sh(b);Qr(Ne,0,39169),oa(b,mme,2),D4(Ne,8,v)}else b=new Uint8Array(0);let w,I;if(D){I=new Uint8Array(9+(o?4:0)+(s?4:0));let Ne=sh(I);Qr(Ne,0,21589),Qr(Ne,2,I.length-4);let qe=1+(o?2:0)+(s?4:0);D4(Ne,4,qe),gr(Ne,5,Math.floor(i.lastModDate.getTime()/1e3)),o&&gr(Ne,9,Math.floor(o.getTime()/1e3)),s&&gr(Ne,13,Math.floor(s.getTime()/1e3));try{w=new Uint8Array(36);let pt=sh(w),Gt=fj(i.lastModDate);Qr(pt,0,10),Qr(pt,2,32),Qr(pt,8,1),Qr(pt,10,24),Rl(pt,12,Gt),Rl(pt,20,fj(o)||Gt),Rl(pt,28,fj(s)||Gt)}catch{w=new Uint8Array(0)}}else w=I=new Uint8Array(0);let R={version:m||20,versionMadeBy:A,zip64:l,directory:!!g,filenameUTF8:!0,rawFilename:r,commentUTF8:!0,rawComment:x,rawExtraFieldZip64:l?new Uint8Array(pme+4):new Uint8Array(0),rawExtraFieldExtendedTimestamp:I,rawExtraFieldNTFS:w,rawExtraFieldAES:b,rawExtraField:C,extendedTimestamp:D,msDosCompatible:M,internalFileAttribute:O,externalFileAttribute:B},F=R.uncompressedSize=0,k=2048;d&&(k=k|8);let V=0;_&&(V=8),l&&(R.version=R.version>45?R.version:45),L&&(k=k|1,f||(R.version=R.version>51?R.version:51,V=99,_&&(R.rawExtraFieldAES[9]=8))),R.compressionMethod=V;let G=R.headerArray=new Uint8Array(26),U=sh(G);Qr(U,0,R.version),Qr(U,2,k),Qr(U,4,V);let Y=new Uint32Array(1),W=sh(Y),Z;i.lastModDate<K7?Z=K7:i.lastModDate>X7?Z=X7:Z=i.lastModDate,Qr(W,0,(Z.getHours()<<6|Z.getMinutes())<<5|Z.getSeconds()/2),Qr(W,2,(Z.getFullYear()-1980<<4|Z.getMonth()+1)<<5|Z.getDate());let j=Y[0];gr(U,6,j),Qr(U,22,r.length);let K=b.length+I.length+w.length+R.rawExtraField.length;Qr(U,24,K);let J=new Uint8Array(30+r.length+K),_e=sh(J);gr(_e,0,67324752),oa(J,G,4),oa(J,r,30),oa(J,b,30+r.length),oa(J,I,30+r.length+b.length),oa(J,w,30+r.length+b.length+I.length),oa(J,R.rawExtraField,30+r.length+b.length+I.length+w.length);let xe,oe=0;if(e){let Ne=await c4(n.Deflate,{codecType:o4,level:c,password:a,encryptionStrength:v,zipCrypto:L&&f,passwordVerification:L&&f&&j>>8&255,signed:!0,compressed:_,encrypted:L,useWebWorkers:T},n);await t.writeUint8Array(J),R.dataWritten=!0,xe=await l4(Ne,e,t,0,()=>e.size,n,{onprogress:E,signal:S}),F=R.uncompressedSize=e.size,oe=xe.length}else await t.writeUint8Array(J),R.dataWritten=!0;let Ae=new Uint8Array(0),he,Se=0;if(d&&(Ae=new Uint8Array(l?p?24:20:p?16:12),he=sh(Ae),p&&(Se=4,gr(he,0,134695760))),e){let Ne=xe.signature;if((!L||f)&&Ne!==void 0&&(gr(U,10,Ne),R.signature=Ne,d&&gr(he,Se,Ne)),l){let qe=sh(R.rawExtraFieldZip64);Qr(qe,0,1),Qr(qe,2,pme),gr(U,14,4294967295),Rl(qe,12,BigInt(oe)),gr(U,18,4294967295),Rl(qe,4,BigInt(F)),d&&(Rl(he,Se+4,BigInt(oe)),Rl(he,Se+12,BigInt(F)))}else gr(U,14,oe),gr(U,18,F),d&&(gr(he,Se+4,oe),gr(he,Se+8,F))}d&&await t.writeUint8Array(Ae);let Ie=J.length+oe+Ae.length;return Object.assign(R,{compressedSize:oe,lastModDate:Z,rawLastModDate:j,creationDate:s,lastAccessDate:o,encrypted:L,length:Ie}),R}async function uet(e,t,n){let i=e.writer,r=e.files,o=0,s=0,a=e.offset,c=r.size;for(let[,p]of r)s+=46+p.rawFilename.length+p.rawComment.length+p.rawExtraFieldZip64.length+p.rawExtraFieldAES.length+p.rawExtraFieldExtendedTimestamp.length+p.rawExtraFieldNTFS.length+p.rawExtraField.length;let l=n.zip64||e.options.zip64||!1;if(a>=4294967295||s>=4294967295||c>=65535){if(n.zip64===!1||e.options.zip64===!1)throw new Error(dj);l=!0}let f=new Uint8Array(s+(l?98:22)),d=sh(f);if(t&&t.length)if(t.length<=65535)Qr(d,o+20,t.length);else throw new Error(eet);for(let[p,g]of Array.from(r.values()).entries()){let{rawFilename:m,rawExtraFieldZip64:A,rawExtraFieldAES:x,rawExtraField:C,rawComment:T,versionMadeBy:E,headerArray:S,directory:v,zip64:D,msDosCompatible:M,internalFileAttribute:O,externalFileAttribute:B}=g,L,_;if(g.extendedTimestamp){_=g.rawExtraFieldNTFS,L=new Uint8Array(9);let w=sh(L);Qr(w,0,21589),Qr(w,2,L.length-4),D4(w,4,1),gr(w,5,Math.floor(g.lastModDate.getTime()/1e3))}else _=L=new Uint8Array(0);let b=A.length+x.length+L.length+_.length+C.length;if(gr(d,o,33639248),Qr(d,o+4,E),oa(f,S,o+6),Qr(d,o+30,b),Qr(d,o+32,T.length),gr(d,o+34,O),B?gr(d,o+38,B):v&&M&&D4(d,o+38,16),D?gr(d,o+42,4294967295):gr(d,o+42,g.offset),oa(f,m,o+46),oa(f,A,o+46+m.length),oa(f,x,o+46+m.length+A.length),oa(f,L,o+46+m.length+A.length+x.length),oa(f,_,o+46+m.length+A.length+x.length+L.length),oa(f,C,o+46+m.length+A.length+x.length+L.length+_.length),oa(f,T,o+46+m.length+b),o+=46+m.length+b+T.length,n.onprogress)try{n.onprogress(p+1,r.size,new P_(g))}catch{}}l&&(gr(d,o,101075792),Rl(d,o+4,BigInt(44)),Qr(d,o+12,45),Qr(d,o+14,45),Rl(d,o+24,BigInt(c)),Rl(d,o+32,BigInt(c)),Rl(d,o+40,BigInt(s)),Rl(d,o+48,BigInt(a)),gr(d,o+56,117853008),Rl(d,o+64,BigInt(a)+BigInt(s)),gr(d,o+72,1),c=65535,a=4294967295,s=4294967295,o+=76),gr(d,o,101010256),Qr(d,o+8,c),Qr(d,o+10,c),gr(d,o+12,s),gr(d,o+16,a),await i.writeUint8Array(f),t&&t.length&&await i.writeUint8Array(t)}function _me(e,t,n){if(e.arrayBuffer)return t||n?e.slice(t,n).arrayBuffer():e.arrayBuffer();{let i=new FileReader;return new Promise((r,o)=>{i.onload=s=>r(s.target.result),i.onerror=()=>o(i.error),i.readAsArrayBuffer(t||n?e.slice(t,n):e)})}}async function fet(e,t,n=0){await r();async function r(){if(n<t.size){let o=await _me(t,n,n+536870912);await e.writeUint8Array(new Uint8Array(o)),n+=536870912,await r()}}}function fj(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function va(e,t,n){return t[n]===void 0?e.options[n]:t[n]}function det(e){return e+5*(Math.floor(e/16383)+1)}function D4(e,t,n){e.setUint8(t,n)}function Qr(e,t,n){e.setUint16(t,n,!0)}function gr(e,t,n){e.setUint32(t,n,!0)}function Rl(e,t,n){e.setBigUint64(t,n,!0)}function oa(e,t,n){e.set(t,n)}function sh(e){return new DataView(e.buffer)}Lb({Deflate:che,Inflate:Phe});function het(e){return typeof e=="string"&&(e=document.getElementById(e)),e}var wn=het;function met(e,t){this.position=e,this.headingPitchRange=t}var zB=met;function I4(e,t){this.id=t,this.name=e,this.playlistIndex=0,this.playlist=[],this.tourStart=new ge,this.tourEnd=new ge,this.entryStart=new ge,this.entryEnd=new ge,this._activeEntries=[]}I4.prototype.addPlaylistEntry=function(e){this.playlist.push(e)};I4.prototype.play=function(e,t){u(e.cesiumWidget)&&$("viewer","The viewer parameter has been deprecated in Cesium 1.99. It will be removed in 1.100. Instead of a Viewer, pass a CesiumWidget instead."),this.tourStart.raiseEvent();let n=this;Ame.call(this,e,t,function(i){n.playlistIndex=0,i||yme(n._activeEntries),n.tourEnd.raiseEvent(i)})};I4.prototype.stop=function(){yme(this._activeEntries)};function yme(e){for(let t=e.pop();t!==void 0;t=e.pop())t.stop()}function Ame(e,t,n){let i=this.playlist[this.playlistIndex];if(i){let r=pet.bind(this,e,t,n);if(this._activeEntries.push(i),this.entryStart.raiseEvent(i),i.blocking)i.play(r,e.scene.camera,t);else{let o=this;i.play(function(){o.entryEnd.raiseEvent(i);let s=o._activeEntries.indexOf(i);s>=0&&o._activeEntries.splice(s,1)}),r(e,t,n)}}else u(n)&&n(!1)}function pet(e,t,n,i){let r=this.playlist[this.playlistIndex];if(this.entryEnd.raiseEvent(r,i),i)n(i);else{let o=this._activeEntries.indexOf(r);o>=0&&this._activeEntries.splice(o,1),this.playlistIndex++,Ame.call(this,e,t,n)}}var HB=I4;var ur=Yi(mj(),1),get={LINEAR_NONE:ur.Easing.Linear.None,QUADRATIC_IN:ur.Easing.Quadratic.In,QUADRATIC_OUT:ur.Easing.Quadratic.Out,QUADRATIC_IN_OUT:ur.Easing.Quadratic.InOut,CUBIC_IN:ur.Easing.Cubic.In,CUBIC_OUT:ur.Easing.Cubic.Out,CUBIC_IN_OUT:ur.Easing.Cubic.InOut,QUARTIC_IN:ur.Easing.Quartic.In,QUARTIC_OUT:ur.Easing.Quartic.Out,QUARTIC_IN_OUT:ur.Easing.Quartic.InOut,QUINTIC_IN:ur.Easing.Quintic.In,QUINTIC_OUT:ur.Easing.Quintic.Out,QUINTIC_IN_OUT:ur.Easing.Quintic.InOut,SINUSOIDAL_IN:ur.Easing.Sinusoidal.In,SINUSOIDAL_OUT:ur.Easing.Sinusoidal.Out,SINUSOIDAL_IN_OUT:ur.Easing.Sinusoidal.InOut,EXPONENTIAL_IN:ur.Easing.Exponential.In,EXPONENTIAL_OUT:ur.Easing.Exponential.Out,EXPONENTIAL_IN_OUT:ur.Easing.Exponential.InOut,CIRCULAR_IN:ur.Easing.Circular.In,CIRCULAR_OUT:ur.Easing.Circular.Out,CIRCULAR_IN_OUT:ur.Easing.Circular.InOut,ELASTIC_IN:ur.Easing.Elastic.In,ELASTIC_OUT:ur.Easing.Elastic.Out,ELASTIC_IN_OUT:ur.Easing.Elastic.InOut,BACK_IN:ur.Easing.Back.In,BACK_OUT:ur.Easing.Back.Out,BACK_IN_OUT:ur.Easing.Back.InOut,BOUNCE_IN:ur.Easing.Bounce.In,BOUNCE_OUT:ur.Easing.Bounce.Out,BOUNCE_IN_OUT:ur.Easing.Bounce.InOut},No=Object.freeze(get);function O4(e,t,n){this.type="KmlTourFlyTo",this.blocking=!0,this.activeCamera=null,this.activeCallback=null,this.duration=e,this.view=n,this.flyToMode=t}O4.prototype.play=function(e,t,n){if(this.activeCamera=t,u(e)&&e!==null){let r=this;this.activeCallback=function(o){delete r.activeCallback,delete r.activeCamera,e(u(o)?!1:o)}}let i=this.getCameraOptions(n);if(this.view.headingPitchRoll)t.flyTo(i);else if(this.view.headingPitchRange){let r=new ae(this.view.position);t.flyToBoundingSphere(r,i)}};O4.prototype.stop=function(){u(this.activeCamera)&&this.activeCamera.cancelFlight(),u(this.activeCallback)&&this.activeCallback(!0)};O4.prototype.getCameraOptions=function(e){let t={duration:this.duration};return u(this.activeCallback)&&(t.complete=this.activeCallback),this.flyToMode==="smooth"&&(t.easingFunction=No.LINEAR_NONE),this.view.headingPitchRoll?(t.destination=this.view.position,t.orientation=this.view.headingPitchRoll):this.view.headingPitchRange&&(t.offset=this.view.headingPitchRange),u(e)&&(t=_t(t,e)),t};var WB=O4;function pj(e){this.type="KmlTourWait",this.blocking=!0,this.duration=e,this.timeout=null}pj.prototype.play=function(e){let t=this;this.activeCallback=e,this.timeout=setTimeout(function(){delete t.activeCallback,e(!1)},this.duration*1e3)};pj.prototype.stop=function(){clearTimeout(this.timeout),u(this.activeCallback)&&this.activeCallback(!0)};var jB=pj;var Vme={avi:"video/x-msvideo",bmp:"image/bmp",bz2:"application/x-bzip2",chm:"application/vnd.ms-htmlhelp",css:"text/css",csv:"text/csv",doc:"application/msword",dvi:"application/x-dvi",eps:"application/postscript",flv:"video/x-flv",gif:"image/gif",gz:"application/x-gzip",htm:"text/html",html:"text/html",ico:"image/vnd.microsoft.icon",jnlp:"application/x-java-jnlp-file",jpeg:"image/jpeg",jpg:"image/jpeg",m3u:"audio/x-mpegurl",m4v:"video/mp4",mathml:"application/mathml+xml",mid:"audio/midi",midi:"audio/midi",mov:"video/quicktime",mp3:"audio/mpeg",mp4:"video/mp4",mp4v:"video/mp4",mpeg:"video/mpeg",mpg:"video/mpeg",odp:"application/vnd.oasis.opendocument.presentation",ods:"application/vnd.oasis.opendocument.spreadsheet",odt:"application/vnd.oasis.opendocument.text",ogg:"application/ogg",pdf:"application/pdf",png:"image/png",pps:"application/vnd.ms-powerpoint",ppt:"application/vnd.ms-powerpoint",ps:"application/postscript",qt:"video/quicktime",rdf:"application/rdf+xml",rss:"application/rss+xml",rtf:"application/rtf",svg:"image/svg+xml",swf:"application/x-shockwave-flash",text:"text/plain",tif:"image/tiff",tiff:"image/tiff",txt:"text/plain",wav:"audio/x-wav",wma:"audio/x-ms-wma",wmv:"video/x-ms-wmv",xml:"application/xml",zip:"application/zip",detectFromFilename:function(e){let t=e.toLowerCase();return t=S0(t),Vme[t]}},Tj;typeof DOMParser<"u"&&(Tj=new DOMParser);var yet=new Ume.default({stripPrefix:!1,email:!1,replaceFn:function(e){return e.urlMatchType==="scheme"||e.urlMatchType==="www"}}),Vy=32,Ime=2414016,Pme=1,Ome=16093e3,Mme=.1,Rme=[null,void 0,"http://www.opengis.net/kml/2.2","http://earth.google.com/kml/2.2","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.0"],Bme=["http://www.google.com/kml/ext/2.2"],Aet=["http://www.w3.org/2005/Atom"],Me={kml:Rme,gx:Bme,atom:Aet,kmlgx:Rme.concat(Bme)},Ej={Document:Kme,Folder:Vet,Placemark:ket,NetworkLink:Ket,GroundOverlay:qet,PhotoOverlay:Qme,ScreenOverlay:jet,Tour:Het};function bm(e){this._dataSource=e,this._deferred=Ws(),this._stack=[],this._promises=[],this._timeoutSet=!1,this._used=!1,this._started=0,this._timeThreshold=1e3}Object.defineProperties(bm.prototype,{dataSource:{get:function(){return this._dataSource}}});bm.prototype.addNodes=function(e,t){this._stack.push({nodes:e,index:0,processingData:t}),this._used=!0};bm.prototype.addPromise=function(e){this._promises.push(e)};bm.prototype.wait=function(){let e=this._deferred;return this._used||e.resolve(),Promise.all([e.promise,Promise.all(this._promises)])};bm.prototype.process=function(){let e=this._stack.length===1;return e&&(this._started=Du._getTimestamp()),this._process(e)};bm.prototype._giveUpTime=function(){if(this._timeoutSet)return;this._timeoutSet=!0,this._timeThreshold=50;let e=this;setTimeout(function(){e._timeoutSet=!1,e._started=Du._getTimestamp(),e._process(!0)},0)};bm.prototype._nextNode=function(){let e=this._stack,t=e[e.length-1],n=t.index,i=t.nodes;if(n!==i.length)return++t.index,i[n]};bm.prototype._pop=function(){let e=this._stack;return e.pop(),e.length===0?(this._deferred.resolve(),!1):!0};bm.prototype._process=function(e){let t=this.dataSource,n=this._stack[this._stack.length-1].processingData,i=this._nextNode();for(;u(i);){let r=Ej[i.localName];if(u(r)&&(Me.kml.indexOf(i.namespaceURI)!==-1||Me.gx.indexOf(i.namespaceURI)!==-1)&&(r(t,i,n,this),this._timeoutSet||Du._getTimestamp()>this._started+this._timeThreshold)){this._giveUpTime();return}i=this._nextNode()}this._pop()&&e&&this._process(!0)};function xet(e){let t=e.slice(0,Math.min(4,e.size)),n=Ws(),i=new FileReader;return i.addEventListener("load",function(){n.resolve(new DataView(i.result).getUint32(0,!1)===1347093252)}),i.addEventListener("error",function(){n.reject(i.error)}),i.readAsArrayBuffer(t),n.promise}function Cet(e){let t=Ws(),n=new FileReader;return n.addEventListener("load",function(){t.resolve(n.result)}),n.addEventListener("error",function(){t.reject(n.error)}),n.readAsText(e),t.promise}function kme(e){let t={xsi:"http://www.w3.org/2001/XMLSchema-instance"},n,i,r,o;for(let s in t)t.hasOwnProperty(s)&&(r=RegExp(`[< ]${s}:`),o=`xmlns:${s}=`,r.test(e)&&e.indexOf(o)===-1&&(u(n)||(n=e.substr(0,e.indexOf("<kml")+4),i=e.substr(n.length)),n+=` ${o}"${t[s]}"`));return u(n)&&(e=n+i),e}function zme(e){let t=e.indexOf("xmlns:"),n=e.indexOf(">",t),i,r,o;for(;t!==-1&&t<n;)i=e.slice(t,e.indexOf('"',t)),r=t,t=e.indexOf(i,t+1),t!==-1?(o=e.indexOf('"',e.indexOf('"',t)+1),e=e.slice(0,t-1)+e.slice(o+1,e.length),t=e.indexOf("xmlns:",r-1)):t=e.indexOf("xmlns:",r+1);return e}function Tet(e,t){return Promise.resolve(e.getData(new h4)).then(function(n){n=kme(n),n=zme(n),t.kml=Tj.parseFromString(n,"application/xml")})}function _j(e,t){let n=y(Vme.detectFromFilename(e.filename),"application/octet-stream");return Promise.resolve(e.getData(new m4(n))).then(function(i){t[e.filename]=i})}function vu(e,t,n,i){let r=i.keys,o=new qB.default("."),s=e.querySelectorAll(t);for(let a=0;a<s.length;a++){let c=s[a],l=c.getAttribute(n);if(u(l)){let d=new qB.default(l).absoluteTo(o).toString(),p=r.indexOf(d);if(p!==-1){let g=r[p];c.setAttribute(n,i[g]),t==="a"&&c.getAttribute("download")===null&&c.setAttribute("download",g)}}}}function wu(e,t,n,i){let r=e.querySelectorAll(t);for(let o=0;o<r.length;o++){let s=r[o],a=s.getAttribute(n),c=bj(a,i);u(c)&&s.setAttribute(n,c.url)}}function Hme(e,t,n){let i=ps(e,"id");i=u(i)&&i.length!==0?i:Wn(),u(n)&&(i=n+i);let r=t.getById(i);return u(r)&&(i=Wn(),u(n)&&(i=n+i)),r=t.add(new Kr({id:i})),u(r.kml)||(r.addProperty("kml"),r.kml=new $et),r}function YB(e,t){return e==="absolute"||e==="relativeToGround"||t==="relativeToSeaFloor"}function L4(e,t){if(!u(e))return h.fromDegrees(0,0,0,t);let n=e.match(/[^\s,\n]+/g);if(!u(n))return h.fromDegrees(0,0,0,t);let i=parseFloat(n[0]),r=parseFloat(n[1]),o=parseFloat(n[2]);return i=isNaN(i)?0:i,r=isNaN(r)?0:r,o=isNaN(o)?0:o,h.fromDegrees(i,r,o,t)}function M4(e,t){if(!u(e))return;let n=e.textContent.match(/[^\s\n]+/g);if(!u(n))return;let i=n.length,r=new Array(i),o=0;for(let s=0;s<i;s++)r[o++]=L4(n[s],t);return r}function ky(e,t){if(!u(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function ps(e,t){if(!u(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function Bi(e,t,n){if(!u(e))return;let i=e.childNodes,r=i.length;for(let o=0;o<r;o++){let s=i[o];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function Lme(e,t,n){if(!u(e))return;let i=[],r=e.getElementsByTagNameNS("*",t),o=r.length;for(let s=0;s<o;s++){let a=r[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function ah(e,t,n){if(!u(e))return[];let i=[],r=e.childNodes,o=r.length;for(let s=0;s<o;s++){let a=r[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function ii(e,t,n){let i=Bi(e,t,n);if(u(i)){let r=parseFloat(i.textContent);return isNaN(r)?void 0:r}}function Dn(e,t,n){let i=Bi(e,t,n);if(u(i))return i.textContent.trim()}function ch(e,t,n){let i=Bi(e,t,n);if(u(i)){let r=i.textContent.trim();return r==="1"||/^true$/i.test(r)}}function bj(e,t,n){if(!u(e))return;let i;if(u(n)){e=e.replace(/\\/g,"/");let r=n[e];if(u(r))i=new ve({url:r});else{let o=new qB.default(t.getUrlComponent()),s=new qB.default(e);r=n[s.absoluteTo(o)],u(r)&&(i=new ve({url:r}))}}return u(i)||(i=t.getDerivedResource({url:e})),i}var Bl={maximumRed:void 0,red:void 0,maximumGreen:void 0,green:void 0,maximumBlue:void 0,blue:void 0};function xj(e,t){if(!u(e)||/^\s*$/gm.test(e))return;e[0]==="#"&&(e=e.substring(1));let n=parseInt(e.substring(0,2),16)/255,i=parseInt(e.substring(2,4),16)/255,r=parseInt(e.substring(4,6),16)/255,o=parseInt(e.substring(6,8),16)/255;return t?(o>0?(Bl.maximumRed=o,Bl.red=void 0):(Bl.maximumRed=void 0,Bl.red=0),r>0?(Bl.maximumGreen=r,Bl.green=void 0):(Bl.maximumGreen=void 0,Bl.green=0),i>0?(Bl.maximumBlue=i,Bl.blue=void 0):(Bl.maximumBlue=void 0,Bl.blue=0),Bl.alpha=n,z.fromRandom(Bl)):new z(o,r,i,n)}function jx(e,t,n){let i=Dn(e,t,n);if(u(i))return xj(i,Dn(e,"colorMode",n)==="random")}function Eet(e){let t=Bi(e,"TimeStamp",Me.kmlgx),n=Dn(t,"when",Me.kmlgx);if(!u(t)||!u(n)||n.length===0)return;let i=ee.fromIso8601(n),r=new Mo;return r.addInterval(new xn({start:i,stop:ze.MAXIMUM_VALUE})),r}function bet(e){let t=Bi(e,"TimeSpan",Me.kmlgx);if(!u(t))return;let n,i=Bi(t,"begin",Me.kmlgx),r=u(i)?ee.fromIso8601(i.textContent):void 0,o=Bi(t,"end",Me.kmlgx),s=u(o)?ee.fromIso8601(o.textContent):void 0;if(u(r)&&u(s)){if(ee.lessThan(s,r)){let a=r;r=s,s=a}n=new Mo,n.addInterval(new xn({start:r,stop:s}))}else u(r)?(n=new Mo,n.addInterval(new xn({start:r,stop:ze.MAXIMUM_VALUE}))):u(s)&&(n=new Mo,n.addInterval(new xn({start:ze.MINIMUM_VALUE,stop:s})));return n}function Gme(){let e=new Ga;return e.width=Vy,e.height=Vy,e.scaleByDistance=new Bt(Ime,Pme,Ome,Mme),e.pixelOffsetScaleByDistance=new Bt(Ime,Pme,Ome,Mme),e}function Sj(){let e=new pd;return e.outline=!0,e.outlineColor=z.WHITE,e}function Wme(){let e=new md;return e.translucencyByDistance=new Bt(3e6,1,5e6,0),e.pixelOffset=new H(17,0),e.horizontalOrigin=_i.LEFT,e.font="16px sans-serif",e.style=zr.FILL_AND_OUTLINE,e}function vj(e,t,n,i,r){let o=Dn(e,"href",Me.kml);if(!u(o)||o.length===0)return;if(o.indexOf("root://icons/palette-")===0){let a=o.charAt(21),c=y(ii(e,"x",Me.gx),0),l=y(ii(e,"y",Me.gx),0);c=Math.min(c/32,7),l=7-Math.min(l/32,7);let f=8*l+c;o=`https://maps.google.com/mapfiles/kml/pal${a}/icon${f}.png`}let s=bj(o,n,i);if(r){let a=Dn(e,"refreshMode",Me.kml),c=Dn(e,"viewRefreshMode",Me.kml);a==="onInterval"||a==="onExpire"?Ot(`kml-refreshMode-${a}`,`KML - Unsupported Icon refreshMode: ${a}`):(c==="onStop"||c==="onRegion")&&Ot(`kml-refreshMode-${c}`,`KML - Unsupported Icon viewRefreshMode: ${c}`);let l=y(Dn(e,"viewBoundScale",Me.kml),1),f=c==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",d=y(Dn(e,"viewFormat",Me.kml),f),p=Dn(e,"httpQuery",Me.kml);u(d)&&s.setQueryParameters(Xl(B4(d))),u(p)&&s.setQueryParameters(Xl(B4(p)));let g=t._ellipsoid;return Dj(s,t.camera,t.canvas,l,t._lastCameraView.bbox,g),s}return s}function vet(e,t,n,i,r){let o=ii(t,"scale",Me.kml),s=ii(t,"heading",Me.kml),a=jx(t,"color",Me.kml),c=Bi(t,"Icon",Me.kml),l=vj(c,e,i,r,!1);u(c)&&!u(l)&&(l=!1);let f=ii(c,"x",Me.gx),d=ii(c,"y",Me.gx),p=ii(c,"w",Me.gx),g=ii(c,"h",Me.gx),m=Bi(t,"hotSpot",Me.kml),A=ky(m,"x"),x=ky(m,"y"),C=ps(m,"xunits"),T=ps(m,"yunits"),E=n.billboard;u(E)||(E=Gme(),n.billboard=E),E.image=l,E.scale=o,E.color=a,(u(f)||u(d)||u(p)||u(g))&&(E.imageSubRegion=new Xe(f,d,p,g)),u(s)&&s!==0&&(E.rotation=P.toRadians(-s),E.alignedAxis=h.UNIT_Z),o=y(o,1);let S,v;u(A)&&(C==="pixels"?S=-A*o:C==="insetPixels"?S=(A-Vy)*o:C==="fraction"&&(S=-A*Vy*o),S+=Vy*.5*o),u(x)&&(T==="pixels"?v=x*o:T==="insetPixels"?v=(-x+Vy)*o:T==="fraction"&&(v=x*Vy*o),v-=Vy*.5*o),(u(S)||u(v))&&(E.pixelOffset=new H(S,v))}function R4(e,t,n,i,r){for(let o=0,s=t.childNodes.length;o<s;o++){let a=t.childNodes.item(o);if(a.localName==="IconStyle")vet(e,a,n,i,r);else if(a.localName==="LabelStyle"){let c=n.label;u(c)||(c=Wme(),n.label=c),c.scale=y(ii(a,"scale",Me.kml),c.scale),c.fillColor=y(jx(a,"color",Me.kml),c.fillColor),c.text=n.name}else if(a.localName==="LineStyle"){let c=n.polyline;u(c)||(c=new qa,n.polyline=c),c.width=ii(a,"width",Me.kml),c.material=jx(a,"color",Me.kml),u(jx(a,"outerColor",Me.gx))&&Ot("kml-gx:outerColor","KML - gx:outerColor is not supported in a LineStyle"),u(ii(a,"outerWidth",Me.gx))&&Ot("kml-gx:outerWidth","KML - gx:outerWidth is not supported in a LineStyle"),u(ii(a,"physicalWidth",Me.gx))&&Ot("kml-gx:physicalWidth","KML - gx:physicalWidth is not supported in a LineStyle"),u(ch(a,"labelVisibility",Me.gx))&&Ot("kml-gx:labelVisibility","KML - gx:labelVisibility is not supported in a LineStyle")}else if(a.localName==="PolyStyle"){let c=n.polygon;u(c)||(c=Sj(),n.polygon=c),c.material=y(jx(a,"color",Me.kml),c.material),c.fill=y(ch(a,"fill",Me.kml),c.fill),c.outline=y(ch(a,"outline",Me.kml),c.outline)}else if(a.localName==="BalloonStyle"){let c=y(xj(Dn(a,"bgColor",Me.kml)),z.WHITE),l=y(xj(Dn(a,"textColor",Me.kml)),z.BLACK),f=Dn(a,"text",Me.kml);n.addProperty("balloonStyle"),n.balloonStyle={bgColor:c,textColor:l,text:f}}else if(a.localName==="ListStyle"){let c=Dn(a,"listItemType",Me.kml);(c==="radioFolder"||c==="checkOffOnly")&&Ot(`kml-listStyle-${c}`,`KML - Unsupported ListStyle with listItemType: ${c}`)}}}function wet(e,t,n,i,r){let o=new Kr,s,a=-1,c=t.childNodes,l=c.length;for(let d=0;d<l;d++){let p=c[d];(p.localName==="Style"||p.localName==="StyleMap")&&(a=d)}if(a!==-1){let d=c[a];if(d.localName==="Style")R4(e,d,o,i,r);else{let p=ah(d,"Pair",Me.kml);for(let g=0;g<p.length;g++){let m=p[g],A=Dn(m,"key",Me.kml);if(A==="normal"){let x=Dn(m,"styleUrl",Me.kml);if(u(x))s=n.getById(x),u(s)||(s=n.getById(`#${x}`)),u(s)&&o.merge(s);else{let C=Bi(m,"Style",Me.kml);R4(e,C,o,i,r)}}else Ot(`kml-styleMap-${A}`,`KML - Unsupported StyleMap key: ${A}`)}}}let f=Dn(t,"styleUrl",Me.kml);if(u(f)){let d=f;if(f[0]!=="#"&&f.indexOf("#")!==-1){let p=f.split("#"),g=p[0];d=`${i.getDerivedResource({url:g}).getUrlComponent()}#${p[1]}`}s=n.getById(d),u(s)||(s=n.getById(`#${d}`)),u(s)&&o.merge(s)}return o}function Det(e,t,n){return t.fetchXML().then(function(i){return jme(e,i,n,t,!0)})}function jme(e,t,n,i,r,o){let s,a,c,l,f=Lme(t,"Style",Me.kml);if(u(f)){let A=f.length;for(s=0;s<A;s++)l=f[s],a=ps(l,"id"),u(a)&&(a=`#${a}`,r&&u(i)&&(a=i.getUrlComponent()+a),u(n.getById(a))||(c=new Kr({id:a}),n.add(c),R4(e,l,c,i,o)))}let d=Lme(t,"StyleMap",Me.kml);if(u(d)){let A=d.length;for(s=0;s<A;s++){let x=d[s];if(a=ps(x,"id"),u(a)){let C=ah(x,"Pair",Me.kml);for(let T=0;T<C.length;T++){let E=C[T],S=Dn(E,"key",Me.kml);if(S==="normal"){if(a=`#${a}`,r&&u(i)&&(a=i.getUrlComponent()+a),!u(n.getById(a))){c=n.getOrCreateEntity(a);let v=Dn(E,"styleUrl",Me.kml);if(u(v)){v[0]!=="#"&&(v=`#${v}`),r&&u(i)&&(v=i.getUrlComponent()+v);let D=n.getById(v);u(D)&&c.merge(D)}else l=Bi(E,"Style",Me.kml),R4(e,l,c,i,o)}}else Ot(`kml-styleMap-${S}`,`KML - Unsupported StyleMap key: ${S}`)}}}}let p=[],g=t.getElementsByTagName("styleUrl"),m=g.length;for(s=0;s<m;s++){let A=g[s].textContent;if(A[0]!=="#"){let x=A.split("#");if(x.length===2){let C=x[0],T=i.getDerivedResource({url:C});p.push(Det(e,T,n))}}}return p}function wj(e,t,n){let i=new A_(e,t.id,["position"]),r=new pm(t.position);t.polyline=u(n.polyline)?n.polyline.clone():new qa,t.polyline.positions=new y_([i,r])}function qme(e,t){return!u(e)&&!u(t)||e==="clampToGround"?je.CLAMP_TO_GROUND:e==="relativeToGround"?je.RELATIVE_TO_GROUND:e==="absolute"?je.NONE:t==="clampToSeaFloor"?(Ot("kml-gx:altitudeMode-clampToSeaFloor","KML - <gx:altitudeMode>:clampToSeaFloor is currently not supported, using <kml:altitudeMode>:clampToGround."),je.CLAMP_TO_GROUND):t==="relativeToSeaFloor"?(Ot("kml-gx:altitudeMode-relativeToSeaFloor","KML - <gx:altitudeMode>:relativeToSeaFloor is currently not supported, using <kml:altitudeMode>:relativeToGround."),je.RELATIVE_TO_GROUND):(u(e)?Ot("kml-altitudeMode-unknown",`KML - Unknown <kml:altitudeMode>:${e}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`):Ot("kml-gx:altitudeMode-unknown",`KML - Unknown <gx:altitudeMode>:${t}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`),je.CLAMP_TO_GROUND)}function Iet(e,t,n){return n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround"?e:((u(t)&&t!=="clampToGround"||u(n)&&n!=="clampToSeaFloor")&&Ot("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`),new pm(e))}function Pet(e,t,n,i){if(!u(e))return;if(n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround")return e;(u(t)&&t!=="clampToGround"||u(n)&&n!=="clampToSeaFloor")&&Ot("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`);let r=e.length;for(let o=0;o<r;o++){let s=e[o];i.scaleToGeodeticSurface(s,s)}return e}function N4(e,t,n,i){let r=t.label;u(r)||(r=u(n.label)?n.label.clone():Wme(),t.label=r),r.text=t.name;let o=t.billboard;u(o)||(o=u(n.billboard)?n.billboard.clone():Gme(),t.billboard=o),u(o.image)?o.image.getValue()||(o.image=void 0):o.image=e._pinBuilder.fromColor(z.YELLOW,64);let s=1;u(o.scale)&&(s=o.scale.getValue(),s!==0?r.pixelOffset=new H(s*16+1,0):(r.pixelOffset=void 0,r.horizontalOrigin=void 0)),u(i)&&e._clampToGround&&(o.heightReference=i,r.heightReference=i)}function Yme(e,t){let n=e.path;u(n)||(n=new gp,n.leadTime=0,e.path=n);let i=t.polyline;u(i)&&(n.material=i.material,n.width=i.width)}function Oet(e,t,n,i,r){let o=Dn(n,"coordinates",Me.kml),s=Dn(n,"altitudeMode",Me.kml),a=Dn(n,"altitudeMode",Me.gx),c=ch(n,"extrude",Me.kml),l=e._ellipsoid,f=L4(o,l);return i.position=f,N4(e,i,r,qme(s,a)),c&&YB(s,a)&&wj(t,i,r),!0}function Nme(e,t,n,i,r){let o=Bi(n,"coordinates",Me.kml),s=Dn(n,"altitudeMode",Me.kml),a=Dn(n,"altitudeMode",Me.gx),c=ch(n,"extrude",Me.kml),l=ch(n,"tessellate",Me.kml),f=YB(s,a),d=ii(n,"drawOrder",Me.gx),p=e._ellipsoid,g=M4(o,p),m=r.polyline;if(f&&c){let A=new yp;i.wall=A,A.positions=g;let x=r.polygon;u(x)&&(A.fill=x.fill,A.material=x.material),A.outline=!0,u(m)?(A.outlineColor=u(m.material)?m.material.color:z.WHITE,A.outlineWidth=m.width):u(x)&&(A.outlineColor=u(x.material)?x.material.color:z.WHITE)}else if(e._clampToGround&&!f&&l){let A=new qa;A.clampToGround=!0,i.polyline=A,A.positions=g,u(m)?(A.material=u(m.material)?m.material.color.getValue(ze.MINIMUM_VALUE):z.WHITE,A.width=y(m.width,1)):(A.material=z.WHITE,A.width=1),A.zIndex=d}else u(d)&&Ot("kml-gx:drawOrder","KML - gx:drawOrder is not supported in LineStrings when clampToGround is false"),e._clampToGround&&!l&&Ot("kml-line-tesselate","Ignoring clampToGround for KML lines without the tessellate flag."),m=u(m)?m.clone():new qa,i.polyline=m,m.positions=Pet(g,s,a,p),(!l||f)&&(m.arcType=Kt.NONE);return!0}function Met(e,t,n,i,r){let o=Bi(n,"outerBoundaryIs",Me.kml),s=Bi(o,"LinearRing",Me.kml),a=Bi(s,"coordinates",Me.kml),c=e._ellipsoid,l=M4(a,c),f=ch(n,"extrude",Me.kml),d=Dn(n,"altitudeMode",Me.kml),p=Dn(n,"altitudeMode",Me.gx),g=YB(d,p),m=u(r.polygon)?r.polygon.clone():Sj(),A=r.polyline;if(u(A)&&(m.outlineColor=u(A.material)?A.material.color:z.WHITE,m.outlineWidth=A.width),i.polygon=m,g?(m.perPositionHeight=!0,m.extrudedHeight=f?0:void 0):e._clampToGround||(m.height=0),u(l)){let x=new Rc(l),C=ah(n,"innerBoundaryIs",Me.kml);for(let T=0;T<C.length;T++){s=ah(C[T],"LinearRing",Me.kml);for(let E=0;E<s.length;E++)a=Bi(s[E],"coordinates",Me.kml),l=M4(a,c),u(l)&&x.holes.push(new Rc(l))}m.hierarchy=x}return!0}function Ret(e,t,n,i,r){let o=Dn(n,"altitudeMode",Me.kml),s=Dn(n,"altitudeMode",Me.gx),a=ah(n,"coord",Me.gx),c=ah(n,"angles",Me.gx),l=ah(n,"when",Me.kml),f=ch(n,"extrude",Me.kml),d=YB(o,s),p=e._ellipsoid;c.length>0&&Ot("kml-gx:angles","KML - gx:angles are not supported in gx:Tracks");let g=Math.min(a.length,l.length),m=[],A=[];for(let C=0;C<g;C++){let T=L4(a[C].textContent,p);m.push(T),A.push(ee.fromIso8601(l[C].textContent))}let x=new ta;return x.addSamples(A,m),i.position=x,N4(e,i,r,qme(o,s)),Yme(i,r),i.availability=new Mo,l.length>0&&i.availability.addInterval(new xn({start:A[0],stop:A[A.length-1]})),d&&f&&wj(t,i,r),!0}function Fme(e,t,n,i,r,o,s,a,c){let l=e[0],f=e[e.length-1],d=new ta;d.addSamples(e,t),n.intervals.addInterval(new xn({start:l,stop:f,isStartIncluded:c,isStopIncluded:c,data:Iet(d,s,a)})),i.addInterval(new xn({start:l,stop:f,isStartIncluded:c,isStopIncluded:c})),r.intervals.addInterval(new xn({start:l,stop:f,isStartIncluded:c,isStopIncluded:c,data:o}))}function Bet(e,t,n,i,r){let o=ch(n,"interpolate",Me.gx),s=ah(n,"Track",Me.gx),a,c,l,f=!1,d=new C_,p=new Mo,g=new $s,m=e._ellipsoid;for(let A=0,x=s.length;A<x;A++){let C=s[A],T=ah(C,"when",Me.kml),E=ah(C,"coord",Me.gx),S=Dn(C,"altitudeMode",Me.kml),v=Dn(C,"altitudeMode",Me.gx),D=YB(S,v),M=ch(C,"extrude",Me.kml),O=Math.min(E.length,T.length),B=[];a=[];for(let L=0;L<O;L++){let _=L4(E[L].textContent,m);B.push(_),a.push(ee.fromIso8601(T[L].textContent))}o&&(u(c)&&Fme([c,a[0]],[l,B[0]],g,p,d,!1,"absolute",void 0,!1),c=a[O-1],l=B[B.length-1]),Fme(a,B,g,p,d,D&&M,S,v,!0),f=f||D&&M}return i.availability=p,i.position=g,N4(e,i,r),Yme(i,r),f&&(wj(t,i,r),i.polyline.show=d),!0}var Xme={Point:Oet,LineString:Nme,LinearRing:Nme,Polygon:Met,Track:Ret,MultiTrack:Bet,MultiGeometry:Let,Model:Net};function Let(e,t,n,i,r,o){let s=n.childNodes,a=!1;for(let c=0,l=s.length;c<l;c++){let f=s.item(c),d=Xme[f.localName];if(u(d)){let p=Hme(f,t,o);p.parent=i,p.name=i.name,p.availability=i.availability,p.description=i.description,p.kml=i.kml,d(e,t,f,p,r)&&(a=!0)}}return a}function Net(e,t,n,i,r){return Ot("kml-unsupportedGeometry",`KML - Unsupported geometry: ${n.localName}`),!1}function Fet(e,t){let n=Bi(e,"ExtendedData",Me.kml);if(!u(n))return;u(Bi(n,"SchemaData",Me.kml))&&Ot("kml-schemaData","KML - SchemaData is unsupported"),u(ps(n,"xmlns:prefix"))&&Ot("kml-extendedData","KML - ExtendedData with xmlns:prefix is unsupported");let i={},r=ah(n,"Data",Me.kml);if(u(r)){let o=r.length;for(let s=0;s<o;s++){let a=r[s],c=ps(a,"name");u(c)&&(i[c]={displayName:Dn(a,"displayName",Me.kml),value:Dn(a,"value",Me.kml)})}}t.kml.extendedData=i}var yr;typeof document<"u"&&(yr=document.createElement("div"));function Uet(e,t,n,i,r){let o,s,a,c=t.kml,l=c.extendedData,f=Dn(e,"description",Me.kml),d=y(t.balloonStyle,n.balloonStyle),p=z.WHITE,g=z.BLACK,m=f;u(d)&&(p=y(d.bgColor,z.WHITE),g=y(d.textColor,z.BLACK),m=y(d.text,f));let A;if(u(m)){if(m=m.replace("$[name]",y(t.name,"")),m=m.replace("$[description]",y(f,"")),m=m.replace("$[address]",y(c.address,"")),m=m.replace("$[Snippet]",y(c.snippet,"")),m=m.replace("$[id]",t.id),m=m.replace("$[geDirections]",""),u(l)){let T=m.match(/\$\[.+?\]/g);if(T!==null)for(o=0;o<T.length;o++){let E=T[o],S=E.substr(2,E.length-3),v=/\/displayName$/.test(S);S=S.replace(/\/displayName$/,""),A=l[S],u(A)&&(A=v?A.displayName:A.value),u(A)&&(m=m.replace(E,y(A,"")))}}}else if(u(l)&&(a=Object.keys(l),a.length>0)){for(m='<table class="cesium-infoBox-defaultTable cesium-infoBox-defaultTable-lighter"><tbody>',o=0;o<a.length;o++)s=a[o],A=l[s],m+=`<tr><th>${y(A.displayName,s)}</th><td>${y(A.value,"")}</td></tr>`;m+="</tbody></table>"}if(!u(m))return;m=yet.link(m),yr.innerHTML=m;let x=yr.querySelectorAll("a");for(o=0;o<x.length;o++)x[o].setAttribute("target","_blank");u(i)&&i.keys.length>1&&(vu(yr,"a","href",i),vu(yr,"link","href",i),vu(yr,"area","href",i),vu(yr,"img","src",i),vu(yr,"iframe","src",i),vu(yr,"video","src",i),vu(yr,"audio","src",i),vu(yr,"source","src",i),vu(yr,"track","src",i),vu(yr,"input","src",i),vu(yr,"embed","src",i),vu(yr,"script","src",i),vu(yr,"video","poster",i)),wu(yr,"a","href",r),wu(yr,"link","href",r),wu(yr,"area","href",r),wu(yr,"img","src",r),wu(yr,"iframe","src",r),wu(yr,"video","src",r),wu(yr,"audio","src",r),wu(yr,"source","src",r),wu(yr,"track","src",r),wu(yr,"input","src",r),wu(yr,"embed","src",r),wu(yr,"script","src",r),wu(yr,"video","poster",r);let C='<div class="cesium-infoBox-description-lighter" style="';C+="overflow:auto;",C+="word-wrap:break-word;",C+=`background-color:${p.toCssColorString()};`,C+=`color:${g.toCssColorString()};`,C+='">',C+=`${yr.innerHTML}</div>`,yr.innerHTML="",t.description=C}function F4(e,t,n){let i=n.entityCollection,r=n.parentEntity,o=n.sourceResource,s=n.uriResolver,a=Hme(t,i,n.context),c=a.kml,l=wet(e,t,n.styleCollection,o,s),f=Dn(t,"name",Me.kml);a.name=f,a.parent=r;let d=bet(t);u(d)||(d=Eet(t)),a.availability=d,Pj(a);function p(E){return E?E.show&&p(E.parent):!0}let g=ch(t,"visibility",Me.kml);a.show=p(r)&&y(g,!0);let m=Bi(t,"author",Me.atom),A=c.author;A.name=Dn(m,"name",Me.atom),A.uri=Dn(m,"uri",Me.atom),A.email=Dn(m,"email",Me.atom);let x=Bi(t,"link",Me.atom),C=c.link;C.href=ps(x,"href"),C.hreflang=ps(x,"hreflang"),C.rel=ps(x,"rel"),C.type=ps(x,"type"),C.title=ps(x,"title"),C.length=ps(x,"length"),c.address=Dn(t,"address",Me.kml),c.phoneNumber=Dn(t,"phoneNumber",Me.kml),c.snippet=Dn(t,"Snippet",Me.kml),Fet(t,a),Uet(t,a,l,s,o);let T=e._ellipsoid;return Zme(t,a,T),Jme(t,a,T),u(Bi(t,"Region",Me.kml))&&Ot("kml-region","KML - Placemark Regions are unsupported"),{entity:a,styleEntity:l}}function Kme(e,t,n,i){i.addNodes(t.childNodes,n),i.process()}function Vet(e,t,n,i){let r=F4(e,t,n),o=We(n);o.parentEntity=r.entity,Kme(e,t,o,i)}function ket(e,t,n,i){let r=F4(e,t,n),o=r.entity,s=r.styleEntity,a=!1,c=t.childNodes;for(let l=0,f=c.length;l<f&&!a;l++){let d=c.item(l),p=Xme[d.localName];u(p)&&(p(e,n.entityCollection,d,o,s,o.id),a=!0)}a||(o.merge(s),N4(e,o,s))}var zet={FlyTo:Wet,Wait:Get,SoundCue:gj,AnimatedUpdate:gj,TourControl:gj};function Het(e,t,n,i){let r=Dn(t,"name",Me.kml),o=ps(t,"id"),s=new HB(r,o),a=Bi(t,"Playlist",Me.gx);if(a){let c=e._ellipsoid,l=a.childNodes;for(let f=0;f<l.length;f++){let d=l[f];if(d.localName){let p=zet[d.localName];p?p(s,d,c):console.log(`Unknown KML Tour playlist entry type ${d.localName}`)}}}e._kmlTours.push(s)}function gj(e,t){Ot(`KML Tour unsupported node ${t.localName}`)}function Get(e,t){let n=ii(t,"duration",Me.gx);e.addPlaylistEntry(new jB(n))}function Wet(e,t,n){let i=ii(t,"duration",Me.gx),r=Dn(t,"flyToMode",Me.gx),o={kml:{}};Zme(t,o,n),Jme(t,o,n);let s=o.kml.lookAt||o.kml.camera,a=new WB(i,r,s);e.addPlaylistEntry(a)}function Jme(e,t,n){let i=Bi(e,"Camera",Me.kml);if(u(i)){let r=y(ii(i,"longitude",Me.kml),0),o=y(ii(i,"latitude",Me.kml),0),s=y(ii(i,"altitude",Me.kml),0),a=y(ii(i,"heading",Me.kml),0),c=y(ii(i,"tilt",Me.kml),0),l=y(ii(i,"roll",Me.kml),0),f=h.fromDegrees(r,o,s,n),d=ka.fromDegrees(a,c-90,l);t.kml.camera=new MB(f,d)}}function Zme(e,t,n){let i=Bi(e,"LookAt",Me.kml);if(u(i)){let r=y(ii(i,"longitude",Me.kml),0),o=y(ii(i,"latitude",Me.kml),0),s=y(ii(i,"altitude",Me.kml),0),a=ii(i,"heading",Me.kml),c=ii(i,"tilt",Me.kml),l=y(ii(i,"range",Me.kml),0);c=P.toRadians(y(c,0)),a=P.toRadians(y(a,0));let f=new Cu(a,c-P.PI_OVER_TWO,l),d=h.fromDegrees(r,o,s,n);t.kml.lookAt=new zB(d,f)}}function jet(e,t,n,i){let r=n.screenOverlayContainer;if(!u(r))return;let o=n.sourceResource,s=n.uriResolver,a=Bi(t,"Icon",Me.kml),c=vj(a,e,o,s,!1);if(!u(c))return;let l=document.createElement("img");e._screenOverlays.push(l),l.src=c.url,l.onload=function(){let f=["position: absolute"],d=Bi(t,"screenXY",Me.kml),p=Bi(t,"overlayXY",Me.kml),g=Bi(t,"size",Me.kml),m,A,x,C,T,E;u(g)&&(m=ky(g,"x"),A=ky(g,"y"),x=ps(g,"xunits"),C=ps(g,"yunits"),u(m)&&m!==-1&&m!==0&&(x==="fraction"?T=`width: ${Math.floor(m*100)}%`:x==="pixels"&&(T=`width: ${m}px`),f.push(T)),u(A)&&A!==-1&&A!==0&&(C==="fraction"?E=`height: ${Math.floor(A*100)}%`:C==="pixels"&&(E=`height: ${A}px`),f.push(E))),l.style=f.join(";");let S=0,v=l.height;u(p)&&(m=ky(p,"x"),A=ky(p,"y"),x=ps(p,"xunits"),C=ps(p,"yunits"),u(m)&&(x==="fraction"?S=m*l.width:(x==="pixels"||x==="insetPixels")&&(S=m)),u(A)&&(C==="fraction"?v=A*l.height:(C==="pixels"||C==="insetPixels")&&(v=A))),u(d)&&(m=ky(d,"x"),A=ky(d,"y"),x=ps(d,"xunits"),C=ps(d,"yunits"),u(m)&&(x==="fraction"?T=`left: calc(${Math.floor(m*100)}% - ${S}px)`:x==="pixels"?T=`left: ${m-S}px`:x==="insetPixels"&&(T=`right: ${m-S}px`),f.push(T)),u(A)&&(C==="fraction"?E=`bottom: calc(${Math.floor(A*100)}% - ${v}px)`:C==="pixels"?E=`bottom: ${A-v}px`:C==="insetPixels"&&(E=`top: ${A-v}px`),f.push(E))),l.style=f.join(";")},r.appendChild(l)}function qet(e,t,n,i){let o=F4(e,t,n).entity,s,a=!1,c=e._ellipsoid,l=M4(Bi(t,"LatLonQuad",Me.gx),c),f=ii(t,"drawOrder",Me.kml);if(u(l))s=Sj(),s.hierarchy=new Rc(l),s.zIndex=f,o.polygon=s,a=!0;else{s=new _d,s.zIndex=f,o.rectangle=s;let m=Bi(t,"LatLonBox",Me.kml);if(u(m)){let A=ii(m,"west",Me.kml),x=ii(m,"south",Me.kml),C=ii(m,"east",Me.kml),T=ii(m,"north",Me.kml);u(A)&&(A=P.negativePiToPi(P.toRadians(A))),u(x)&&(x=P.clampToLatitudeRange(P.toRadians(x))),u(C)&&(C=P.negativePiToPi(P.toRadians(C))),u(T)&&(T=P.clampToLatitudeRange(P.toRadians(T))),s.coordinates=new le(A,x,C,T);let E=ii(m,"rotation",Me.kml);if(u(E)){let S=P.toRadians(E);s.rotation=S,s.stRotation=S}}}let d=Bi(t,"Icon",Me.kml),p=vj(d,e,n.sourceResource,n.uriResolver,!0);if(u(p)){a&&Ot("kml-gx:LatLonQuad","KML - gx:LatLonQuad Icon does not support texture projection.");let m=ii(d,"x",Me.gx),A=ii(d,"y",Me.gx),x=ii(d,"w",Me.gx),C=ii(d,"h",Me.gx);(u(m)||u(A)||u(x)||u(C))&&Ot("kml-groundOverlay-xywh","KML - gx:x, gx:y, gx:w, gx:h aren't supported for GroundOverlays"),s.material=p,s.material.color=jx(t,"color",Me.kml),s.material.transparent=!0}else s.material=jx(t,"color",Me.kml);let g=Dn(t,"altitudeMode",Me.kml);u(g)?g==="absolute"?(s.height=ii(t,"altitude",Me.kml),s.zIndex=void 0):g!=="clampToGround"&&Ot("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`):(g=Dn(t,"altitudeMode",Me.gx),g==="relativeToSeaFloor"?(Ot("kml-altitudeMode-relativeToSeaFloor","KML - altitudeMode relativeToSeaFloor is currently not supported, treating as absolute."),s.height=ii(t,"altitude",Me.kml),s.zIndex=void 0):g==="clampToSeaFloor"?Ot("kml-altitudeMode-clampToSeaFloor","KML - altitudeMode clampToSeaFloor is currently not supported, treating as clampToGround."):u(g)&&Ot("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`))}function Qme(e,t,n,i){e._unsupportedNode.raiseEvent(e,n.parentEntity,t,n.entityCollection,n.styleCollection,n.sourceResource,n.uriResolver),Ot(`kml-unsupportedFeature-${t.nodeName}`,`KML - Unsupported feature: ${t.nodeName}`)}var zy={INTERVAL:0,EXPIRE:1,STOP:2};function B4(e){if(!u(e)||e.length===0)return"";let t=e[0];return(t==="&"||t==="?")&&(e=e.substring(1)),e}var Yet=new le,jb=new me,yj=new H,Xet=new h;function Dj(e,t,n,i,r,o){function s(l){return l<-P.PI_OVER_TWO?-P.PI_OVER_TWO:l>P.PI_OVER_TWO?P.PI_OVER_TWO:l}function a(l){return l>P.PI?l-P.TWO_PI:l<-P.PI?l+P.TWO_PI:l}let c=I0(e.queryParameters);if(c=c.replace(/%5B/g,"[").replace(/%5D/g,"]"),u(t)&&t._mode!==ne.MORPHING){let l,f;if(r=y(r,Yet),u(n)&&(yj.x=n.clientWidth*.5,yj.y=n.clientHeight*.5,l=t.pickEllipsoid(yj,o,Xet)),u(l)?f=o.cartesianToCartographic(l,jb):(f=le.center(r,jb),l=o.cartographicToCartesian(f)),u(i)&&!P.equalsEpsilon(i,1,P.EPSILON9)){let C=r.width*i*.5,T=r.height*i*.5;r=new le(a(f.longitude-C),s(f.latitude-T),a(f.longitude+C),s(f.latitude+T))}c=c.replace("[bboxWest]",P.toDegrees(r.west).toString()),c=c.replace("[bboxSouth]",P.toDegrees(r.south).toString()),c=c.replace("[bboxEast]",P.toDegrees(r.east).toString()),c=c.replace("[bboxNorth]",P.toDegrees(r.north).toString());let d=P.toDegrees(f.longitude).toString(),p=P.toDegrees(f.latitude).toString();c=c.replace("[lookatLon]",d),c=c.replace("[lookatLat]",p),c=c.replace("[lookatTilt]",P.toDegrees(t.pitch).toString()),c=c.replace("[lookatHeading]",P.toDegrees(t.heading).toString()),c=c.replace("[lookatRange]",h.distance(t.positionWC,l)),c=c.replace("[lookatTerrainLon]",d),c=c.replace("[lookatTerrainLat]",p),c=c.replace("[lookatTerrainAlt]",f.height.toString()),o.cartesianToCartographic(t.positionWC,jb),c=c.replace("[cameraLon]",P.toDegrees(jb.longitude).toString()),c=c.replace("[cameraLat]",P.toDegrees(jb.latitude).toString()),c=c.replace("[cameraAlt]",P.toDegrees(jb.height).toString());let g=t.frustum,m=g.aspectRatio,A="",x="";if(u(m)){let C=P.toDegrees(g.fov);m>1?(A=C,x=C/m):(x=C,A=C*m)}c=c.replace("[horizFov]",A.toString()),c=c.replace("[vertFov]",x.toString())}else c=c.replace("[bboxWest]","-180"),c=c.replace("[bboxSouth]","-90"),c=c.replace("[bboxEast]","180"),c=c.replace("[bboxNorth]","90"),c=c.replace("[lookatLon]",""),c=c.replace("[lookatLat]",""),c=c.replace("[lookatRange]",""),c=c.replace("[lookatTilt]",""),c=c.replace("[lookatHeading]",""),c=c.replace("[lookatTerrainLon]",""),c=c.replace("[lookatTerrainLat]",""),c=c.replace("[lookatTerrainAlt]",""),c=c.replace("[cameraLon]",""),c=c.replace("[cameraLat]",""),c=c.replace("[cameraAlt]",""),c=c.replace("[horizFov]",""),c=c.replace("[vertFov]","");u(n)?(c=c.replace("[horizPixels]",n.clientWidth),c=c.replace("[vertPixels]",n.clientHeight)):(c=c.replace("[horizPixels]",""),c=c.replace("[vertPixels]","")),c=c.replace("[terrainEnabled]","1"),c=c.replace("[clientVersion]","1"),c=c.replace("[kmlVersion]","2.2"),c=c.replace("[clientName]","Cesium"),c=c.replace("[language]","English"),e.setQueryParameters(Xl(c))}function Ket(e,t,n,i){let o=F4(e,t,n).entity,s=n.sourceResource,a=n.uriResolver,c=Bi(t,"Link",Me.kml);if(u(c)||(c=Bi(t,"Url",Me.kml)),u(c)){let l=Dn(c,"href",Me.kml),f,d;if(u(l)){let p=l;if(l=bj(l,s,n.uriResolver),/^data:/.test(l.getUrlComponent()))/\.kmz/i.test(s.getUrlComponent())||(p=s.getDerivedResource({url:p}));else{if(p=l.clone(),f=Dn(c,"viewRefreshMode",Me.kml),f==="onRegion"){Ot("kml-refrehMode-onRegion","KML - Unsupported viewRefreshMode: onRegion");return}d=y(Dn(c,"viewBoundScale",Me.kml),1);let x=f==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",C=y(Dn(c,"viewFormat",Me.kml),x),T=Dn(c,"httpQuery",Me.kml);u(C)&&l.setQueryParameters(Xl(B4(C))),u(T)&&l.setQueryParameters(Xl(B4(T)));let E=e._ellipsoid;Dj(l,e.camera,e.canvas,d,e._lastCameraView.bbox,E)}let g={sourceUri:p,uriResolver:a,context:o.id,screenOverlayContainer:n.screenOverlayContainer},m=new Bs,A=Ij(e,m,l,g).then(function(x){let C=e._entityCollection,T=m.values;C.suspendEvents();for(let v=0;v<T.length;v++){let D=T[v];u(D.parent)||(D.parent=o,Pj(D)),C.add(D)}C.resumeEvents();let E=Dn(c,"refreshMode",Me.kml),S=y(ii(c,"refreshInterval",Me.kml),0);if(E==="onInterval"&&S>0||E==="onExpire"||f==="onStop"){let v=Bi(x,"NetworkLinkControl",Me.kml),D=u(v),M=ee.now(),O={id:Wn(),href:l,cookie:{},lastUpdated:M,updating:!1,entity:o,viewBoundScale:d,needsUpdate:!1,cameraUpdateTime:M},B=0;if(D&&(O.cookie=Xl(y(Dn(v,"cookie",Me.kml),"")),B=y(ii(v,"minRefreshPeriod",Me.kml),0)),E==="onInterval")D&&(S=Math.max(B,S)),O.refreshMode=zy.INTERVAL,O.time=S;else if(E==="onExpire"){let L;if(D&&(L=Dn(v,"expires",Me.kml)),u(L))try{let _=ee.fromIso8601(L),b=ee.secondsDifference(_,M);b>0&&b<B&&ee.addSeconds(M,B,_),O.refreshMode=zy.EXPIRE,O.time=_}catch{Ot("kml-refreshMode-onInterval-onExpire","KML - NetworkLinkControl expires is not a valid date")}else Ot("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element")}else u(e.camera)?(O.refreshMode=zy.STOP,O.time=y(ii(c,"viewRefreshTime",Me.kml),0)):Ot("kml-refrehMode-onStop-noCamera","A NetworkLink with viewRefreshMode=onStop requires the `camera` property to be defined.");u(O.refreshMode)&&e._networkLinks.set(O.id,O)}}).catch(function(x){Ot(`An error occured during loading ${l.url}`),e._error.raiseEvent(e,x)});i.addPromise(A)}}}function Jet(e,t,n,i){let r=Ej[t.localName];return u(r)?r(e,t,n,i):Qme(e,t,n,i)}function Cj(e,t,n,i,r,o,s){t.removeAll();let a=n.documentElement,c=a.localName==="Document"?a:Bi(a,"Document",Me.kml),l=Dn(c,"name",Me.kml);u(l)||(l=__(i.getUrlComponent())),u(e._name)||(e._name=l);let f=new Du._DeferredLoading(e),d=new Bs(e);return Promise.all(jme(e,n,d,i,!1,r)).then(function(){let p=n.documentElement;if(p.localName==="kml"){let m=p.childNodes;for(let A=0;A<m.length;A++){let x=m[A];if(u(Ej[x.localName])){p=x;break}}}let g={parentEntity:void 0,entityCollection:t,styleCollection:d,sourceResource:i,uriResolver:r,context:s,screenOverlayContainer:o};return t.suspendEvents(),Jet(e,p,g,f),t.resumeEvents(),f.wait().then(function(){return n.documentElement})})}function Zet(e,t,n,i,r){let o=$t("ThirdParty/Workers/z-worker-pako.js");Lb({workerScripts:{deflate:[o,"./pako_deflate.min.js"],inflate:[o,"./pako_inflate.min.js"]}});let s=new b4(new Gx(n));return Promise.resolve(s.getEntries()).then(function(a){let c=[],l={},f;for(let d=0;d<a.length;d++){let p=a[d];p.directory||(/\.kml$/i.test(p.filename)&&(!u(f)||!/\//i.test(p.filename))?(u(f)&&c.push(_j(f,l)),f=p):c.push(_j(p,l)))}return u(f)&&c.push(Tet(f,l)),Promise.all(c).then(function(){if(s.close(),!u(l.kml))throw new de("KMZ file does not contain a KML document.");return l.keys=Object.keys(l),Cj(e,t,l.kml,i,l,r)})})}function Ij(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let r=i.sourceUri,o=i.uriResolver,s=i.context,a=i.screenOverlayContainer,c=n;if(typeof n=="string"||n instanceof ve){n=ve.createIfNeeded(n),c=n.fetchBlob(),r=y(r,n.clone());let l=e._resourceCredits,f=n.credits;if(u(f)){let d=f.length;for(let p=0;p<d;p++)l.push(f[p])}}else r=y(r,ve.DEFAULT.clone());return r=ve.createIfNeeded(r),u(a)&&(a=wn(a)),Promise.resolve(c).then(function(l){return l instanceof Blob?xet(l).then(function(f){return f?Zet(e,t,l,r,a):Cet(l).then(function(d){d=kme(d),d=zme(d);let p,g;try{p=Tj.parseFromString(d,"application/xml")}catch(m){g=m.toString()}if(u(g)||p.body||p.documentElement.tagName==="parsererror"){let m=u(g)?g:p.documentElement.firstChild.nodeValue;throw m||(m=p.body.innerText),new de(m)}return Cj(e,t,p,r,o,a,s)})}):Cj(e,t,l,r,o,a,s)}).catch(function(l){return e._error.raiseEvent(e,l),console.log(l),Promise.reject(l)})}function Du(e){e=y(e,y.EMPTY_OBJECT);let t=e.camera,n=e.canvas;this._changed=new ge,this._error=new ge,this._loading=new ge,this._refresh=new ge,this._unsupportedNode=new ge,this._clock=void 0,this._entityCollection=new Bs(this),this._name=void 0,this._isLoading=!1,this._pinBuilder=new D_,this._networkLinks=new Ct,this._entityCluster=new du,this.canvas=n,this.camera=t,this._lastCameraView={position:u(t)?h.clone(t.positionWC):void 0,direction:u(t)?h.clone(t.directionWC):void 0,up:u(t)?h.clone(t.upWC):void 0,bbox:u(t)?t.computeViewRectangle():le.clone(le.MAX_VALUE)},this._ellipsoid=y(e.ellipsoid,re.WGS84);let i=e.credit;typeof i=="string"&&(i=new wt(i)),this._credit=i,this._resourceCredits=[],this._kmlTours=[],this._screenOverlays=[]}Du.load=function(e,t){return t=y(t,y.EMPTY_OBJECT),new Du(t).load(e,t)};Object.defineProperties(Du.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},refreshEvent:{get:function(){return this._refresh}},unsupportedNodeEvent:{get:function(){return this._unsupportedNode}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}},kmlTours:{get:function(){return this._kmlTours}}});Du.prototype.load=function(e,t){t=y(t,y.EMPTY_OBJECT),Ro.setLoading(this,!0);let n=this._name;this._name=void 0,this._clampToGround=y(t.clampToGround,!1);let i=this;return Ij(this,this._entityCollection,e,t).then(function(){let r,o=i._entityCollection.computeAvailability(),s=o.start,a=o.stop,c=ee.equals(s,ze.MINIMUM_VALUE),l=ee.equals(a,ze.MAXIMUM_VALUE);if(!c||!l){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=ee.fromDate(d)),l&&(d=new Date,d.setHours(24,0,0,0),a=ee.fromDate(d)),r=new Yd,r.startTime=s,r.stopTime=a,r.currentTime=ee.clone(s),r.clockRange=Lo.LOOP_STOP,r.clockStep=_r.SYSTEM_CLOCK_MULTIPLIER,r.multiplier=Math.round(Math.min(Math.max(ee.secondsDifference(a,s)/60,1),31556900))}let f=!1;return r!==i._clock&&(i._clock=r,f=!0),n!==i._name&&(f=!0),f&&i._changed.raiseEvent(i),Ro.setLoading(i,!1),i}).catch(function(r){return Ro.setLoading(i,!1),i._error.raiseEvent(i,r),console.log(r),Promise.reject(r)})};Du.prototype.destroy=function(){for(;this._screenOverlays.length>0;)this._screenOverlays.pop().remove()};function Pj(e){let t=e.parent;if(u(t)){let n=t.availability;if(u(n)){let i=e.availability;u(i)?i.intersect(n):e.availability=n}}}function Qet(e,t,n,i,r){return function(o){if(!i.contains(t.id))return;let s=!1,a=Bi(o,"NetworkLinkControl",Me.kml),c=u(a),l=0;if(c){if(u(Bi(a,"Update",Me.kml))){Ot("kml-networkLinkControl-update","KML - NetworkLinkControl updates aren't supported."),t.updating=!1,i.remove(t.id);return}t.cookie=Xl(y(Dn(a,"cookie",Me.kml),"")),l=y(ii(a,"minRefreshPeriod",Me.kml),0)}let f=ee.now(),d=t.refreshMode;if(d===zy.INTERVAL)u(a)&&(t.time=Math.max(l,t.time));else if(d===zy.EXPIRE){let M;if(u(a)&&(M=Dn(a,"expires",Me.kml)),u(M))try{let O=ee.fromIso8601(M),B=ee.secondsDifference(O,f);B>0&&B<l&&ee.addSeconds(f,l,O),t.time=O}catch{Ot("kml-networkLinkControl-expires","KML - NetworkLinkControl expires is not a valid date"),s=!0}else Ot("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element"),s=!0}let p=t.entity,g=e._entityCollection,m=n.values;function A(M){g.remove(M);let O=M._children,B=O.length;for(let L=0;L<B;++L)A(O[L])}g.suspendEvents();let x=g.values.slice(),C;for(C=0;C<x.length;++C){let M=x[C];M.parent===p&&(M.parent=void 0,A(M))}for(g.resumeEvents(),g.suspendEvents(),C=0;C<m.length;C++){let M=m[C];u(M.parent)||(M.parent=p,Pj(M)),g.add(M)}g.resumeEvents(),s?i.remove(t.id):t.lastUpdated=f;let T=g.computeAvailability(),E=T.start,S=T.stop,v=ee.equals(E,ze.MINIMUM_VALUE),D=ee.equals(S,ze.MAXIMUM_VALUE);if(!v||!D){let M=e._clock;(M.startTime!==E||M.stopTime!==S)&&(M.startTime=E,M.stopTime=S,e._changed.raiseEvent(e))}t.updating=!1,t.needsUpdate=!1,e._refresh.raiseEvent(e,r.getUrlComponent(!0))}}var Aj=new Ct;Du.prototype.update=function(e){let t=this._networkLinks;if(t.length===0)return!0;let n=ee.now(),i=this;Aj.removeAll();function r(f){let d=f._children,p=d.length;for(let g=0;g<p;++g){let m=d[g];Aj.set(m.id,m),r(m)}}let o=!1,s=this._lastCameraView,a=this.camera;u(a)&&!(a.positionWC.equalsEpsilon(s.position,P.EPSILON7)&&a.directionWC.equalsEpsilon(s.direction,P.EPSILON7)&&a.upWC.equalsEpsilon(s.up,P.EPSILON7))&&(s.position=h.clone(a.positionWC),s.direction=h.clone(a.directionWC),s.up=h.clone(a.upWC),s.bbox=a.computeViewRectangle(),o=!0);let c=new Ct,l=!1;return t.values.forEach(function(f){let d=f.entity;if(!Aj.contains(d.id)){if(!f.updating){let p=!1;if(f.refreshMode===zy.INTERVAL?ee.secondsDifference(n,f.lastUpdated)>f.time&&(p=!0):f.refreshMode===zy.EXPIRE?ee.greaterThan(n,f.time)&&(p=!0):f.refreshMode===zy.STOP&&(o&&(f.needsUpdate=!0,f.cameraUpdateTime=n),f.needsUpdate&&ee.secondsDifference(n,f.cameraUpdateTime)>=f.time&&(p=!0)),p){r(d),f.updating=!0;let g=new Bs,m=f.href.clone();m.setQueryParameters(f.cookie);let A=y(i._ellipsoid,re.WGS84);Dj(m,i.camera,i.canvas,f.viewBoundScale,s.bbox,A),Ij(i,g,m,{context:d.id}).then(Qet(i,f,g,c,m)).catch(function(x){let C=`NetworkLink ${f.href} refresh failed: ${x}`;console.log(C),i._error.raiseEvent(i,C)}),l=!0}}c.set(f.id,f)}}),l&&(this._networkLinks=c,this._changed.raiseEvent(this)),!0};function $et(){this.author={name:void 0,uri:void 0,email:void 0},this.link={href:void 0,hreflang:void 0,rel:void 0,type:void 0,title:void 0,length:void 0},this.address=void 0,this.phoneNumber=void 0,this.snippet=void 0,this.extendedData=void 0}Du._DeferredLoading=bm;Du._getTimestamp=yi;var XB=Du;function KB(){fe.throwInstantiationError()}KB.prototype.update=fe.throwInstantiationError;KB.prototype.getBoundingSphere=fe.throwInstantiationError;KB.prototype.isDestroyed=fe.throwInstantiationError;KB.prototype.destroy=fe.throwInstantiationError;var Oj=KB;var Mj=32,ett="http://www.opengis.net/kml/2.2",uh="http://www.google.com/kml/ext/2.2",ttt="http://www.w3.org/2000/xmlns/";function U4(e){this._files={},this._promises=[],this._count=0,this._modelCallback=e}var ntt=/^data:image\/([^,;]+)/;U4.prototype.texture=function(e){let t=this,n;if(typeof e=="string"||e instanceof ve){if(e=ve.createIfNeeded(e),!e.isDataUri)return e.url;let i=e.url.match(ntt);n=`texture_${++this._count}`,u(i)&&(n+=`.${i[1]}`);let r=e.fetchBlob().then(function(o){t._files[n]=o});return this._promises.push(r),n}if(e instanceof HTMLCanvasElement){n=`texture_${++this._count}.png`;let i=new Promise(r=>{e.toBlob(function(o){t._files[n]=o,r()})});return this._promises.push(i),n}return""};function itt(e,t){return function(n){e._files[t]=n}}U4.prototype.model=function(e,t){let n=this._modelCallback;if(!u(n))throw new de("Encountered a model entity while exporting to KML, but no model callback was supplied.");let i={},r=n(e,t,i);for(let o in i)if(i.hasOwnProperty(o)){let s=Promise.resolve(i[o]);this._promises.push(s),s.then(itt(this,o))}return r};Object.defineProperties(U4.prototype,{promise:{get:function(){return Promise.all(this._promises)}},files:{get:function(){return this._files}}});function V4(e){this._time=e}V4.prototype.get=function(e,t,n){let i;return u(e)&&(i=u(e.getValue)?e.getValue(this._time,n):e),y(i,t)};V4.prototype.getColor=function(e,t){let n=this.get(e,t);if(u(n))return Yx(n)};V4.prototype.getMaterialType=function(e){if(u(e))return e.getType(this._time)};function Rj(){this._ids={},this._styles={},this._count=0}Rj.prototype.get=function(e){let t=this._ids,n=e.innerHTML;if(u(t[n]))return t[n];let i=`style-${++this._count}`;return e.setAttribute("id",i),i=`#${i}`,t[n]=i,this._styles[n]=e,i};Rj.prototype.save=function(e){let t=this._styles,n=e.childNodes[0];for(let i in t)t.hasOwnProperty(i)&&e.insertBefore(t[i],n)};function tpe(){this._ids={}}tpe.prototype.get=function(e){if(!u(e))return this.get(Wn());let t=this._ids;return u(t[e])?`${e.toString()}-${++t[e]}`:(t[e]=0,e)};function Bj(e){e=y(e,y.EMPTY_OBJECT);let t=e.entities,n=y(e.kmz,!1),i=Bj._createState(e),r=t.values.filter(function(l){return!u(l.parent)}),o=i.kmlDoc,s=o.documentElement;s.setAttributeNS(ttt,"xmlns:gx",uh);let a=o.createElement("Document");s.appendChild(a),ipe(i,a,r),i.styleCache.save(a);let c=i.externalFileHandler;return c.promise.then(function(){let f=new XMLSerializer().serializeToString(i.kmlDoc);return n?rtt(f,c.files):{kml:f,externalFiles:c.files}})}function rtt(e,t){let n=$t("ThirdParty/Workers/z-worker-pako.js");Lb({workerScripts:{deflate:[n,"./pako_deflate.min.js"],inflate:[n,"./pako_inflate.min.js"]}});let i=new kb,r=new w4(i);return r.add("doc.kml",new d4(e)).then(function(){let o=Object.keys(t);return npe(r,o,t,0)}).then(function(){return r.close()}).then(function(o){return{kmz:o}})}function npe(e,t,n,i){if(t.length===i)return;let r=t[i];return e.add(r,new Gx(n[r])).then(function(){return npe(e,t,n,i+1)})}Bj._createState=function(e){let t=e.entities,n=new Rj,i=t.computeAvailability(),r=u(e.time)?e.time:i.start,o=y(e.defaultAvailability,i),s=y(e.sampleDuration,60);o.start===ze.MINIMUM_VALUE?o.stop===ze.MAXIMUM_VALUE?o=new xn:ee.addSeconds(o.stop,-10*s,o.start):o.stop===ze.MAXIMUM_VALUE&&ee.addSeconds(o.start,10*s,o.stop);let a=new U4(e.modelCallback);return{kmlDoc:document.implementation.createDocument(ett,"kml"),ellipsoid:y(e.ellipsoid,re.WGS84),idManager:new tpe,styleCache:n,externalFileHandler:a,time:r,valueGetter:new V4(r),sampleDuration:s,defaultAvailability:new Mo([o])}};function ipe(e,t,n){let i=e.kmlDoc,r=e.styleCache,o=e.valueGetter,s=e.idManager,a=n.length,c,l,f;for(let d=0;d<a;++d){let p=n[d];c=[],l=[],f=[],ott(e,p,l,f),stt(e,p.polyline,l,f),epe(e,p.rectangle,l,f,c),epe(e,p.polygon,l,f,c),utt(e,p,p.model,l,f);let g,m=p.availability;u(m)&&(g=i.createElement("TimeSpan"),ee.equals(m.start,ze.MINIMUM_VALUE)||g.appendChild(hn(i,"begin",ee.toIso8601(m.start))),ee.equals(m.stop,ze.MAXIMUM_VALUE)||g.appendChild(hn(i,"end",ee.toIso8601(m.stop))));for(let C=0;C<c.length;++C){let T=c[C];T.setAttribute("id",s.get(p.id)),T.appendChild(hn(i,"name",p.name)),T.appendChild(hn(i,"visibility",p.show)),T.appendChild(hn(i,"description",p.description)),u(g)&&T.appendChild(g),t.appendChild(T)}let A=l.length;if(A>0){let C=i.createElement("Placemark");C.setAttribute("id",s.get(p.id));let T=p.name,E=p.label;if(u(E)){let v=i.createElement("LabelStyle"),D=o.get(E.text);T=u(D)&&D.length>0?D:T;let M=o.getColor(E.fillColor);u(M)&&(v.appendChild(hn(i,"color",M)),v.appendChild(hn(i,"colorMode","normal")));let O=o.get(E.scale);u(O)&&v.appendChild(hn(i,"scale",O)),f.push(v)}C.appendChild(hn(i,"name",T)),C.appendChild(hn(i,"visibility",p.show)),C.appendChild(hn(i,"description",p.description)),u(g)&&C.appendChild(g),t.appendChild(C);let S=f.length;if(S>0){let v=i.createElement("Style");for(let D=0;D<S;++D)v.appendChild(f[D]);C.appendChild(hn(i,"styleUrl",r.get(v)))}if(l.length===1)C.appendChild(l[0]);else if(l.length>1){let v=i.createElement("MultiGeometry");for(let D=0;D<A;++D)v.appendChild(l[D]);C.appendChild(v)}}let x=p._children;if(x.length>0){let C=i.createElement("Folder");C.setAttribute("id",s.get(p.id)),C.appendChild(hn(i,"name",p.name)),C.appendChild(hn(i,"visibility",p.show)),C.appendChild(hn(i,"description",p.description)),t.appendChild(C),ipe(e,C,x)}}}var Ll=new h,Kc=new me,lh=new ee;function ott(e,t,n,i){let r=e.kmlDoc,o=e.ellipsoid,s=e.valueGetter,a=y(t.billboard,t.point);if(!u(a)&&!u(t.path))return;let c=t.position;if(!c.isConstant){rpe(e,t,a,n,i);return}s.get(c,void 0,Ll);let l=hn(r,"coordinates",qx(Ll,o)),f=r.createElement("Point"),d=r.createElement("altitudeMode");d.appendChild(Xx(e,a.heightReference)),f.appendChild(d),f.appendChild(l),n.push(f);let p=a instanceof Ga?spe(e,a):ope(e,a);i.push(p)}function rpe(e,t,n,i,r){let o=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter,c,l=t.position,f=!0;l instanceof $s?(c=l.intervals,f=!1):c=y(t.availability,e.defaultAvailability);let d=n instanceof _p,p,g,m,A=[];for(p=0;p<c.length;++p){let C=c.get(p),T=f?l:C.data,E=o.createElement("altitudeMode");T instanceof pm?(T=T._value,E.appendChild(Xx(e,je.CLAMP_TO_GROUND))):u(n)?E.appendChild(Xx(e,n.heightReference)):E.appendChild(Xx(e,je.NONE));let S=[],v=[];if(T.isConstant){a.get(T,void 0,Ll);let M=hn(o,"coordinates",qx(Ll,s));S.push(ee.toIso8601(C.start)),v.push(M),S.push(ee.toIso8601(C.stop)),v.push(M)}else if(T instanceof ta)for(m=T._property._times,g=0;g<m.length;++g)S.push(ee.toIso8601(m[g])),T.getValueInReferenceFrame(m[g],rr.FIXED,Ll),v.push(qx(Ll,s));else if(T instanceof _u){m=T._times;let M=T._values;for(g=0;g<m.length;++g)S.push(ee.toIso8601(m[g])),h.fromArray(M,g*3,Ll),v.push(qx(Ll,s))}else{let M=e.sampleDuration;C.start.clone(lh),C.isStartIncluded||ee.addSeconds(lh,M,lh);let O=C.stop;for(;ee.lessThan(lh,O);)T.getValue(lh,Ll),S.push(ee.toIso8601(lh)),v.push(qx(Ll,s)),ee.addSeconds(lh,M,lh);C.isStopIncluded&&ee.equals(lh,O)&&(T.getValue(lh,Ll),S.push(ee.toIso8601(lh)),v.push(qx(Ll,s)))}let D=o.createElementNS(uh,"Track");D.appendChild(E);for(let M=0;M<S.length;++M){let O=hn(o,"when",S[M]),B=hn(o,"coord",v[M],uh);D.appendChild(O),D.appendChild(B)}d&&D.appendChild(ape(e,n)),A.push(D)}if(A.length===1)i.push(A[0]);else if(A.length>1){let C=o.createElementNS(uh,"MultiTrack");for(p=0;p<A.length;++p)C.appendChild(A[p]);i.push(C)}if(u(n)&&!d){let C=n instanceof Ga?spe(e,n):ope(e,n);r.push(C)}let x=t.path;if(u(x)){let C=a.get(x.width),T=x.material;if(u(T)||u(C)){let E=o.createElement("LineStyle");u(C)&&E.appendChild(hn(o,"width",C)),Lj(e,T,E),r.push(E)}}}function ope(e,t){let n=e.kmlDoc,i=e.valueGetter,r=n.createElement("IconStyle"),o=i.getColor(t.color);u(o)&&(r.appendChild(hn(n,"color",o)),r.appendChild(hn(n,"colorMode","normal")));let s=i.get(t.pixelSize);return u(s)&&r.appendChild(hn(n,"scale",s/Mj)),r}function spe(e,t){let n=e.kmlDoc,i=e.valueGetter,r=e.externalFileHandler,o=n.createElement("IconStyle"),s=i.get(t.image);if(u(s)){s=r.texture(s);let p=n.createElement("Icon");p.appendChild(hn(n,"href",s));let g=i.get(t.imageSubRegion);u(g)&&(p.appendChild(hn(n,"x",g.x,uh)),p.appendChild(hn(n,"y",g.y,uh)),p.appendChild(hn(n,"w",g.width,uh)),p.appendChild(hn(n,"h",g.height,uh))),o.appendChild(p)}let a=i.getColor(t.color);u(a)&&(o.appendChild(hn(n,"color",a)),o.appendChild(hn(n,"colorMode","normal")));let c=i.get(t.scale);u(c)&&o.appendChild(hn(n,"scale",c));let l=i.get(t.pixelOffset);if(u(l)){c=y(c,1),H.divideByScalar(l,c,l);let p=i.get(t.width,Mj),g=i.get(t.height,Mj),m=i.get(t.horizontalOrigin,_i.CENTER);m===_i.CENTER?l.x-=p*.5:m===_i.RIGHT&&(l.x-=p);let A=i.get(t.verticalOrigin,Pn.CENTER);A===Pn.TOP?l.y+=g:A===Pn.CENTER&&(l.y+=g*.5);let x=n.createElement("hotSpot");x.setAttribute("x",-l.x),x.setAttribute("y",l.y),x.setAttribute("xunits","pixels"),x.setAttribute("yunits","pixels"),o.appendChild(x)}let f=i.get(t.rotation),d=i.get(t.alignedAxis);return u(f)&&h.equals(h.UNIT_Z,d)&&(f=P.toDegrees(-f),f===0&&(f=360),o.appendChild(hn(n,"heading",f))),o}function stt(e,t,n,i){let r=e.kmlDoc,o=e.ellipsoid,s=e.valueGetter;if(!u(t))return;let a=r.createElement("LineString"),c=r.createElement("altitudeMode"),l=s.get(t.clampToGround,!1),f;l?(a.appendChild(hn(r,"tessellate",!0)),f=r.createTextNode("clampToGround")):f=r.createTextNode("absolute"),c.appendChild(f),a.appendChild(c);let d=t.positions,p=s.get(d),g=hn(r,"coordinates",qx(p,o));a.appendChild(g);let m=s.get(t.zIndex);l&&u(m)&&a.appendChild(hn(r,"drawOrder",m,uh)),n.push(a);let A=r.createElement("LineStyle"),x=s.get(t.width);u(x)&&A.appendChild(hn(r,"width",x)),Lj(e,t.material,A),i.push(A)}function att(e,t,n){let i=e.kmlDoc,r=e.valueGetter,o=r.get(t.height,0);n>0&&(o=n);let s=t.coordinates,a=r.get(s),c=[],l=[le.northeast,le.southeast,le.southwest,le.northwest];for(let g=0;g<4;++g)l[g](a,Kc),c.push(`${P.toDegrees(Kc.longitude)},${P.toDegrees(Kc.latitude)},${o}`);let f=hn(i,"coordinates",c.join(" ")),d=i.createElement("outerBoundaryIs"),p=i.createElement("LinearRing");return p.appendChild(f),d.appendChild(p),[d]}function $me(e,t,n,i){let r=e.kmlDoc,o=e.ellipsoid,s=[],a=t.length;for(let f=0;f<a;++f)me.fromCartesian(t[f],o,Kc),s.push(`${P.toDegrees(Kc.longitude)},${P.toDegrees(Kc.latitude)},${i?Kc.height:n}`);let c=hn(r,"coordinates",s.join(" ")),l=r.createElement("LinearRing");return l.appendChild(c),l}function ctt(e,t,n){let i=e.kmlDoc,r=e.valueGetter,o=r.get(t.height,0),s=r.get(t.perPositionHeight,!1);!s&&n>0&&(o=n);let a=[],c=t.hierarchy,l=r.get(c),f=Array.isArray(l)?l:l.positions,d=i.createElement("outerBoundaryIs");d.appendChild($me(e,f,o,s)),a.push(d);let p=l.holes;if(u(p)){let g=p.length;for(let m=0;m<g;++m){let A=i.createElement("innerBoundaryIs");A.appendChild($me(e,p[m].positions,o,s)),a.push(A)}}return a}function epe(e,t,n,i,r){let o=e.kmlDoc,s=e.valueGetter;if(!u(t))return;let a=t instanceof _d;if(a&&s.getMaterialType(t.material)==="Image"){ltt(e,t,r);return}let c=o.createElement("Polygon"),l=s.get(t.extrudedHeight,0);l>0&&c.appendChild(hn(o,"extrude",!0));let f=a?att(e,t,l):ctt(e,t,l),d=f.length;for(let x=0;x<d;++x)c.appendChild(f[x]);let p=o.createElement("altitudeMode");p.appendChild(Xx(e,t.heightReference)),c.appendChild(p),n.push(c);let g=o.createElement("PolyStyle"),m=s.get(t.fill,!1);m&&g.appendChild(hn(o,"fill",m)),Lj(e,t.material,g);let A=s.get(t.outline,!1);if(A){g.appendChild(hn(o,"outline",A));let x=o.createElement("LineStyle"),C=s.get(t.outlineWidth,1);x.appendChild(hn(o,"width",C));let T=s.getColor(t.outlineColor,z.BLACK);x.appendChild(hn(o,"color",T)),x.appendChild(hn(o,"colorMode","normal")),i.push(x)}i.push(g)}function ltt(e,t,n){let i=e.kmlDoc,r=e.valueGetter,o=e.externalFileHandler,s=i.createElement("GroundOverlay"),a=i.createElement("altitudeMode");a.appendChild(Xx(e,t.heightReference)),s.appendChild(a);let c=r.get(t.height);u(c)&&s.appendChild(hn(i,"altitude",c));let l=r.get(t.coordinates),f=i.createElement("LatLonBox");f.appendChild(hn(i,"north",P.toDegrees(l.north))),f.appendChild(hn(i,"south",P.toDegrees(l.south))),f.appendChild(hn(i,"east",P.toDegrees(l.east))),f.appendChild(hn(i,"west",P.toDegrees(l.west))),s.appendChild(f);let d=r.get(t.material),p=o.texture(d.image),g=i.createElement("Icon");g.appendChild(hn(i,"href",p)),s.appendChild(g);let m=d.color;u(m)&&s.appendChild(hn(i,"color",Yx(d.color))),n.push(s)}function ape(e,t){let n=e.kmlDoc,i=e.valueGetter,r=e.externalFileHandler,o=n.createElement("Model"),s=i.get(t.scale);if(u(s)){let l=n.createElement("scale");l.appendChild(hn(n,"x",s)),l.appendChild(hn(n,"y",s)),l.appendChild(hn(n,"z",s)),o.appendChild(l)}let a=n.createElement("Link"),c=r.model(t,e.time);return a.appendChild(hn(n,"href",c)),o.appendChild(a),o}function utt(e,t,n,i,r){let o=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter;if(!u(n))return;let c=t.position;if(!c.isConstant){rpe(e,t,n,i,r);return}let l=ape(e,n),f=o.createElement("altitudeMode");f.appendChild(Xx(e,n.heightReference)),l.appendChild(f),a.get(c,void 0,Ll),me.fromCartesian(Ll,s,Kc);let d=o.createElement("Location");d.appendChild(hn(o,"longitude",P.toDegrees(Kc.longitude))),d.appendChild(hn(o,"latitude",P.toDegrees(Kc.latitude))),d.appendChild(hn(o,"altitude",Kc.height)),l.appendChild(d),i.push(l)}function Lj(e,t,n){let i=e.kmlDoc,r=e.valueGetter;if(!u(t))return;let o=r.get(t);if(!u(o))return;let s,a=r.getMaterialType(t),c,l;switch(a){case"Image":s=Yx(z.WHITE);break;case"Color":case"Grid":case"PolylineGlow":case"PolylineArrow":case"PolylineDash":s=Yx(o.color);break;case"PolylineOutline":s=Yx(o.color),c=Yx(o.outlineColor),l=o.outlineWidth,n.appendChild(hn(i,"outerColor",c,uh)),n.appendChild(hn(i,"outerWidth",l,uh));break;case"Stripe":s=Yx(o.oddColor);break}u(s)&&(n.appendChild(hn(i,"color",s)),n.appendChild(hn(i,"colorMode","normal")))}function Xx(e,t){let n=e.kmlDoc,r=e.valueGetter.get(t,je.NONE),o;switch(r){case je.NONE:o=n.createTextNode("absolute");break;case je.CLAMP_TO_GROUND:o=n.createTextNode("clampToGround");break;case je.RELATIVE_TO_GROUND:o=n.createTextNode("relativeToGround");break}return o}function qx(e,t){Array.isArray(e)||(e=[e]);let n=e.length,i=[];for(let r=0;r<n;++r)me.fromCartesian(e[r],t,Kc),i.push(`${P.toDegrees(Kc.longitude)},${P.toDegrees(Kc.latitude)},${Kc.height}`);return i.join(" ")}function hn(e,t,n,i){n=y(n,""),typeof n=="boolean"&&(n=n?"1":"0");let r=u(i)?e.createElementNS(i,t):e.createElement(t),o=n==="string"&&n.indexOf("<")!==-1?e.createCDATASection(n):e.createTextNode(n);return r.appendChild(o),r}function Yx(e){let t="",n=e.toBytes();for(let i=3;i>=0;--i)t+=n[i]<16?`0${n[i].toString(16)}`:n[i].toString(16);return t}var Nj=Bj;function ftt(e){let t,n=e.name,i=e.message;u(n)&&u(i)?t=`${n}: ${i}`:t=e.toString();let r=e.stack;return u(r)&&(t+=` +${r}`),t}var Sm=ftt;var dtt={NONE:0,LERC:1},Ff=Object.freeze(dtt);var htt={NONE:0,BITS12:1},Fs=Object.freeze(htt);var Kx=new h,mtt=new h,Uf=new H,k4=new N,ptt=new N,_tt=Math.pow(2,12);function fc(e,t,n,i,r,o,s,a,c,l){let f=Fs.NONE,d,p;if(u(t)&&u(n)&&u(i)&&u(r)){let g=t.minimum,m=t.maximum,A=h.subtract(m,g,mtt),x=i-n;Math.max(h.maximumComponent(A),x)<_tt-1?f=Fs.BITS12:f=Fs.NONE,d=N.inverseTransformation(r,new N);let T=h.negate(g,Kx);N.multiply(N.fromTranslation(T,k4),d,d);let E=Kx;E.x=1/A.x,E.y=1/A.y,E.z=1/A.z,N.multiply(N.fromScale(E,k4),d,d),p=N.clone(r),N.setTranslation(p,h.ZERO,p),r=N.clone(r,new N);let S=N.fromTranslation(g,k4),v=N.fromScale(A,ptt),D=N.multiply(S,v,k4);N.multiply(r,D,r),N.multiply(p,D,p)}this.quantization=f,this.minimumHeight=n,this.maximumHeight=i,this.center=h.clone(e),this.toScaledENU=d,this.fromScaledENU=r,this.matrix=p,this.hasVertexNormals=o,this.hasWebMercatorT=y(s,!1),this.hasGeodeticSurfaceNormals=y(a,!1),this.exaggeration=y(c,1),this.exaggerationRelativeHeight=y(l,0),this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}fc.prototype.encode=function(e,t,n,i,r,o,s,a){let c=i.x,l=i.y;if(this.quantization===Fs.BITS12){n=N.multiplyByPoint(this.toScaledENU,n,Kx),n.x=P.clamp(n.x,0,1),n.y=P.clamp(n.y,0,1),n.z=P.clamp(n.z,0,1);let f=this.maximumHeight-this.minimumHeight,d=P.clamp((r-this.minimumHeight)/f,0,1);H.fromElements(n.x,n.y,Uf);let p=qn.compressTextureCoordinates(Uf);H.fromElements(n.z,d,Uf);let g=qn.compressTextureCoordinates(Uf);H.fromElements(c,l,Uf);let m=qn.compressTextureCoordinates(Uf);if(e[t++]=p,e[t++]=g,e[t++]=m,this.hasWebMercatorT){H.fromElements(s,0,Uf);let A=qn.compressTextureCoordinates(Uf);e[t++]=A}}else h.subtract(n,this.center,Kx),e[t++]=Kx.x,e[t++]=Kx.y,e[t++]=Kx.z,e[t++]=r,e[t++]=c,e[t++]=l,this.hasWebMercatorT&&(e[t++]=s);return this.hasVertexNormals&&(e[t++]=qn.octPackFloat(o)),this.hasGeodeticSurfaceNormals&&(e[t++]=a.x,e[t++]=a.y,e[t++]=a.z),t};var gtt=new h,cpe=new h;fc.prototype.addGeodeticSurfaceNormals=function(e,t,n){if(this.hasGeodeticSurfaceNormals)return;let i=this.stride,r=e.length/i;this.hasGeodeticSurfaceNormals=!0,this._calculateStrideAndOffsets();let o=this.stride;for(let s=0;s<r;s++){for(let f=0;f<i;f++){let d=s*i+f,p=s*o+f;t[p]=e[d]}let a=this.decodePosition(t,s,gtt),c=n.geodeticSurfaceNormal(a,cpe),l=s*o+this._offsetGeodeticSurfaceNormal;t[l]=c.x,t[l+1]=c.y,t[l+2]=c.z}};fc.prototype.removeGeodeticSurfaceNormals=function(e,t){if(!this.hasGeodeticSurfaceNormals)return;let n=this.stride,i=e.length/n;this.hasGeodeticSurfaceNormals=!1,this._calculateStrideAndOffsets();let r=this.stride;for(let o=0;o<i;o++)for(let s=0;s<r;s++){let a=o*n+s,c=o*r+s;t[c]=e[a]}};fc.prototype.decodePosition=function(e,t,n){if(u(n)||(n=new h),t*=this.stride,this.quantization===Fs.BITS12){let i=qn.decompressTextureCoordinates(e[t],Uf);n.x=i.x,n.y=i.y;let r=qn.decompressTextureCoordinates(e[t+1],Uf);return n.z=r.x,N.multiplyByPoint(this.fromScaledENU,n,n)}return n.x=e[t],n.y=e[t+1],n.z=e[t+2],h.add(n,this.center,n)};fc.prototype.getExaggeratedPosition=function(e,t,n){n=this.decodePosition(e,t,n);let i=this.exaggeration,r=this.exaggerationRelativeHeight;if(i!==1&&this.hasGeodeticSurfaceNormals){let s=this.decodeGeodeticSurfaceNormal(e,t,cpe),a=this.decodeHeight(e,t),c=Dc.getHeight(a,i,r)-a;n.x+=s.x*c,n.y+=s.y*c,n.z+=s.z*c}return n};fc.prototype.decodeTextureCoordinates=function(e,t,n){return u(n)||(n=new H),t*=this.stride,this.quantization===Fs.BITS12?qn.decompressTextureCoordinates(e[t+2],n):H.fromElements(e[t+4],e[t+5],n)};fc.prototype.decodeHeight=function(e,t){return t*=this.stride,this.quantization===Fs.BITS12?qn.decompressTextureCoordinates(e[t+1],Uf).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:e[t+3]};fc.prototype.decodeWebMercatorT=function(e,t){return t*=this.stride,this.quantization===Fs.BITS12?qn.decompressTextureCoordinates(e[t+3],Uf).x:e[t+6]};fc.prototype.getOctEncodedNormal=function(e,t,n){t=t*this.stride+this._offsetVertexNormal;let i=e[t]/256,r=Math.floor(i),o=(i-r)*256;return H.fromElements(r,o,n)};fc.prototype.decodeGeodeticSurfaceNormal=function(e,t,n){return t=t*this.stride+this._offsetGeodeticSurfaceNormal,n.x=e[t],n.y=e[t+1],n.z=e[t+2],n};fc.prototype._calculateStrideAndOffsets=function(){let e=0;switch(this.quantization){case Fs.BITS12:e+=3;break;default:e+=6}this.hasWebMercatorT&&(e+=1),this.hasVertexNormals&&(this._offsetVertexNormal=e,e+=1),this.hasGeodeticSurfaceNormals&&(this._offsetGeodeticSurfaceNormal=e,e+=3),this.stride=e};var z4={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},H4={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};fc.prototype.getAttributes=function(e){let t=X.FLOAT,n=X.getSizeInBytes(t),i=this.stride*n,r=0,o=[];function s(a,c){o.push({index:a,vertexBuffer:e,componentDatatype:t,componentsPerAttribute:c,offsetInBytes:r,strideInBytes:i}),r+=c*n}if(this.quantization===Fs.NONE){s(z4.position3DAndHeight,4);let a=2;a+=this.hasWebMercatorT?1:0,a+=this.hasVertexNormals?1:0,s(z4.textureCoordAndEncodedNormals,a),this.hasGeodeticSurfaceNormals&&s(z4.geodeticSurfaceNormal,3)}else{let a=this.hasWebMercatorT||this.hasVertexNormals,c=this.hasWebMercatorT&&this.hasVertexNormals;s(H4.compressed0,a?4:3),c&&s(H4.compressed1,1),this.hasGeodeticSurfaceNormals&&s(H4.geodeticSurfaceNormal,3)}return o};fc.prototype.getAttributeLocations=function(){return this.quantization===Fs.NONE?z4:H4};fc.clone=function(e,t){if(u(e))return u(t)||(t=new fc),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=h.clone(e.center),t.toScaledENU=N.clone(e.toScaledENU),t.fromScaledENU=N.clone(e.fromScaledENU),t.matrix=N.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t.hasGeodeticSurfaceNormals=e.hasGeodeticSurfaceNormals,t.exaggeration=e.exaggeration,t.exaggerationRelativeHeight=e.exaggerationRelativeHeight,t._calculateStrideAndOffsets(),t};var dc=fc;var vm={};vm.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var Fj=new h,ytt=new N,Att=new h,xtt=new h;vm.computeVertices=function(e){let t=Math.cos,n=Math.sin,i=Math.sqrt,r=Math.atan,o=Math.exp,s=P.PI_OVER_TWO,a=P.toRadians,c=e.heightmap,l=e.width,f=e.height,d=e.skirtHeight,p=d>0,g=y(e.isGeographic,!0),m=y(e.ellipsoid,re.WGS84),A=1/m.maximumRadius,x=le.clone(e.nativeRectangle),C=le.clone(e.rectangle),T,E,S,v;u(C)?(T=C.west,E=C.south,S=C.east,v=C.north):g?(T=a(x.west),E=a(x.south),S=a(x.east),v=a(x.north)):(T=x.west*A,E=s-2*r(o(-x.south*A)),S=x.east*A,v=s-2*r(o(-x.north*A)));let D=e.relativeToCenter,M=u(D);D=M?D:h.ZERO;let O=y(e.includeWebMercatorT,!1),B=y(e.exaggeration,1),L=y(e.exaggerationRelativeHeight,0),b=B!==1,w=y(e.structure,vm.DEFAULT_STRUCTURE),I=y(w.heightScale,vm.DEFAULT_STRUCTURE.heightScale),R=y(w.heightOffset,vm.DEFAULT_STRUCTURE.heightOffset),F=y(w.elementsPerHeight,vm.DEFAULT_STRUCTURE.elementsPerHeight),k=y(w.stride,vm.DEFAULT_STRUCTURE.stride),V=y(w.elementMultiplier,vm.DEFAULT_STRUCTURE.elementMultiplier),G=y(w.isBigEndian,vm.DEFAULT_STRUCTURE.isBigEndian),U=le.computeWidth(x),Y=le.computeHeight(x),W=U/(l-1),Z=Y/(f-1);g||(U*=A,Y*=A);let j=m.radiiSquared,K=j.x,J=j.y,_e=j.z,xe=65536,oe=-65536,Ae=Mt.eastNorthUpToFixedFrame(D,m),he=N.inverseTransformation(Ae,ytt),Se,Ie;O&&(Se=Oi.geodeticLatitudeToMercatorAngle(E),Ie=1/(Oi.geodeticLatitudeToMercatorAngle(v)-Se));let Ne=Att;Ne.x=Number.POSITIVE_INFINITY,Ne.y=Number.POSITIVE_INFINITY,Ne.z=Number.POSITIVE_INFINITY;let qe=xtt;qe.x=Number.NEGATIVE_INFINITY,qe.y=Number.NEGATIVE_INFINITY,qe.z=Number.NEGATIVE_INFINITY;let pt=Number.POSITIVE_INFINITY,Gt=l*f,fn=d>0?l*2+f*2:0,ft=Gt+fn,pn=new Array(ft),Bn=new Array(ft),Vt=new Array(ft),Qe=O?new Array(ft):[],pe=b?new Array(ft):[],Ee=0,Ge=f,xi=0,Ci=l;p&&(--Ee,++Ge,--xi,++Ci);let Ir=1e-5;for(let Ze=Ee;Ze<Ge;++Ze){let ot=Ze;ot<0&&(ot=0),ot>=f&&(ot=f-1);let Nt=x.north-Z*ot;g?Nt=a(Nt):Nt=s-2*r(o(-Nt*A));let Tn=(Nt-E)/(v-E);Tn=P.clamp(Tn,0,1);let ar=Ze===Ee,Cr=Ze===Ge-1;d>0&&(ar?Nt+=Ir*Y:Cr&&(Nt-=Ir*Y));let Ts=t(Nt),Jo=n(Nt),uo=_e*Jo,Di;O&&(Di=(Oi.geodeticLatitudeToMercatorAngle(Nt)-Se)*Ie);for(let zo=xi;zo<Ci;++zo){let Hn=zo;Hn<0&&(Hn=0),Hn>=l&&(Hn=l-1);let In=ot*(l*k)+Hn*k,Gn;if(F===1)Gn=c[In];else{Gn=0;let It;if(G)for(It=0;It<F;++It)Gn=Gn*V+c[In+It];else for(It=F-1;It>=0;--It)Gn=Gn*V+c[In+It]}Gn=Gn*I+R,oe=Math.max(oe,Gn),xe=Math.min(xe,Gn);let $n=x.west+W*Hn;g?$n=a($n):$n=$n*A;let Ma=($n-T)/(S-T);Ma=P.clamp(Ma,0,1);let Nr=ot*l+Hn;if(d>0){let It=zo===xi,cr=zo===Ci-1,os=ar||Cr||It||cr;if((ar||Cr)&&(It||cr))continue;os&&(Gn-=d,It?(Nr=Gt+(f-ot-1),$n-=Ir*U):Cr?Nr=Gt+f+(l-Hn-1):cr?(Nr=Gt+f+l+ot,$n+=Ir*U):ar&&(Nr=Gt+f+l+f+Hn))}let Zo=Ts*t($n),fa=Ts*n($n),fo=K*Zo,Cc=J*fa,jm=1/i(fo*Zo+Cc*fa+uo*Jo),Ra=fo*jm,an=Cc*jm,we=uo*jm,dt=new h;dt.x=Ra+Zo*Gn,dt.y=an+fa*Gn,dt.z=we+Jo*Gn,N.multiplyByPoint(he,dt,Fj),h.minimumByComponent(Fj,Ne,Ne),h.maximumByComponent(Fj,qe,qe),pt=Math.min(pt,Gn),pn[Nr]=dt,Vt[Nr]=new H(Ma,Tn),Bn[Nr]=Gn,O&&(Qe[Nr]=Di),b&&(pe[Nr]=m.geodeticSurfaceNormal(dt))}}let Wr=ae.fromPoints(pn),Co;u(C)&&(Co=On.fromRectangle(C,xe,oe,m));let Vo;M&&(Vo=new m_(m).computeHorizonCullingPointPossiblyUnderEllipsoid(D,pn,xe));let Cs=new fg(Ne,qe,D),Re=new dc(D,Cs,pt,oe,Ae,!1,O,b,B,L),it=new Float32Array(ft*Re.stride),Je=0;for(let Ze=0;Ze<ft;++Ze)Je=Re.encode(it,Je,pn[Ze],Vt[Ze],Bn[Ze],void 0,Qe[Ze],pe[Ze]);return{vertices:it,maximumHeight:oe,minimumHeight:xe,encoding:Re,boundingSphere3D:Wr,orientedBoundingBox:Co,occludeePointInScaledSpace:Vo}};var qb=vm;function Hy(){fe.throwInstantiationError()}Object.defineProperties(Hy.prototype,{credits:{get:fe.throwInstantiationError},waterMask:{get:fe.throwInstantiationError}});Hy.prototype.interpolateHeight=fe.throwInstantiationError;Hy.prototype.isChildAvailable=fe.throwInstantiationError;Hy.prototype.createMesh=fe.throwInstantiationError;Hy.prototype.upsample=fe.throwInstantiationError;Hy.prototype.wasCreatedByUpsampling=fe.throwInstantiationError;Hy.maximumAsynchronousTasks=5;var fh=Hy;function Ctt(e,t,n,i,r,o,s,a,c,l,f,d,p,g,m,A){this.center=e,this.vertices=t,this.stride=y(l,6),this.indices=n,this.indexCountWithoutSkirts=i,this.vertexCountWithoutSkirts=r,this.minimumHeight=o,this.maximumHeight=s,this.boundingSphere3D=a,this.occludeePointInScaledSpace=c,this.orientedBoundingBox=f,this.encoding=d,this.westIndicesSouthToNorth=p,this.southIndicesEastToWest=g,this.eastIndicesNorthToSouth=m,this.northIndicesWestToEast=A}var Vf=Ctt;function Jc(){fe.throwInstantiationError()}Object.defineProperties(Jc.prototype,{errorEvent:{get:fe.throwInstantiationError},credit:{get:fe.throwInstantiationError},tilingScheme:{get:fe.throwInstantiationError},ready:{get:fe.throwInstantiationError},readyPromise:{get:fe.throwInstantiationError},hasWaterMask:{get:fe.throwInstantiationError},hasVertexNormals:{get:fe.throwInstantiationError},availability:{get:fe.throwInstantiationError}});var lpe=[];Jc.getRegularGridIndices=function(e,t){let n=lpe[e];u(n)||(lpe[e]=n=[]);let i=n[t];return u(i)||(e*t<P.SIXTY_FOUR_KILOBYTES?i=n[t]=new Uint16Array((e-1)*(t-1)*6):i=n[t]=new Uint32Array((e-1)*(t-1)*6),hpe(e,t,i,0)),i};var upe=[];Jc.getRegularGridIndicesAndEdgeIndices=function(e,t){let n=upe[e];u(n)||(upe[e]=n=[]);let i=n[t];if(!u(i)){let r=Jc.getRegularGridIndices(e,t),o=dpe(e,t),s=o.westIndicesSouthToNorth,a=o.southIndicesEastToWest,c=o.eastIndicesNorthToSouth,l=o.northIndicesWestToEast;i=n[t]={indices:r,westIndicesSouthToNorth:s,southIndicesEastToWest:a,eastIndicesNorthToSouth:c,northIndicesWestToEast:l}}return i};var fpe=[];Jc.getRegularGridAndSkirtIndicesAndEdgeIndices=function(e,t){let n=fpe[e];u(n)||(fpe[e]=n=[]);let i=n[t];if(!u(i)){let r=e*t,o=(e-1)*(t-1)*6,s=e*2+t*2,a=Math.max(0,s-4)*6,c=r+s,l=o+a,f=dpe(e,t),d=f.westIndicesSouthToNorth,p=f.southIndicesEastToWest,g=f.eastIndicesNorthToSouth,m=f.northIndicesWestToEast,A=Ue.createTypedArray(c,l);hpe(e,t,A,0),Jc.addSkirtIndices(d,p,g,m,r,A,o),i=n[t]={indices:A,westIndicesSouthToNorth:d,southIndicesEastToWest:p,eastIndicesNorthToSouth:g,northIndicesWestToEast:m,indexCountWithoutSkirts:o}}return i};Jc.addSkirtIndices=function(e,t,n,i,r,o,s){let a=r;s=G4(e,a,o,s),a+=e.length,s=G4(t,a,o,s),a+=t.length,s=G4(n,a,o,s),a+=n.length,G4(i,a,o,s)};function dpe(e,t){let n=new Array(t),i=new Array(e),r=new Array(t),o=new Array(e),s;for(s=0;s<e;++s)o[s]=s,i[s]=e*t-1-s;for(s=0;s<t;++s)r[s]=(s+1)*e-1,n[s]=(t-s-1)*e;return{westIndicesSouthToNorth:n,southIndicesEastToWest:i,eastIndicesNorthToSouth:r,northIndicesWestToEast:o}}function hpe(e,t,n,i){let r=0;for(let o=0;o<t-1;++o){for(let s=0;s<e-1;++s){let a=r,c=a+e,l=c+1,f=a+1;n[i++]=a,n[i++]=c,n[i++]=f,n[i++]=f,n[i++]=c,n[i++]=l,++r}++r}}function G4(e,t,n,i){let r=e[0],o=e.length;for(let s=1;s<o;++s){let a=e[s];n[i++]=r,n[i++]=a,n[i++]=t,n[i++]=t,n[i++]=a,n[i++]=t+1,r=a,++t}return i}Jc.heightmapTerrainQuality=.25;Jc.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(e,t,n){return e.maximumRadius*2*Math.PI*Jc.heightmapTerrainQuality/(t*n)};Jc.prototype.requestTileGeometry=fe.throwInstantiationError;Jc.prototype.getLevelMaximumGeometricError=fe.throwInstantiationError;Jc.prototype.getTileDataAvailable=fe.throwInstantiationError;Jc.prototype.loadTileDataAvailability=fe.throwInstantiationError;var Yo=Jc;function O_(e){this._buffer=e.buffer,this._width=e.width,this._height=e.height,this._childTileMask=y(e.childTileMask,15),this._encoding=y(e.encoding,Ff.NONE);let t=qb.DEFAULT_STRUCTURE,n=e.structure;u(n)?n!==t&&(n.heightScale=y(n.heightScale,t.heightScale),n.heightOffset=y(n.heightOffset,t.heightOffset),n.elementsPerHeight=y(n.elementsPerHeight,t.elementsPerHeight),n.stride=y(n.stride,t.stride),n.elementMultiplier=y(n.elementMultiplier,t.elementMultiplier),n.isBigEndian=y(n.isBigEndian,t.isBigEndian)):n=t,this._structure=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._skirtHeight=void 0,this._bufferType=this._encoding===Ff.LERC?Float32Array:this._buffer.constructor,this._mesh=void 0}Object.defineProperties(O_.prototype,{credits:{get:function(){}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}}});var mpe="createVerticesFromHeightmap",Ttt=new pi(mpe),Ett=new pi(mpe,fh.maximumAsynchronousTasks);O_.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,r=e.level,o=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,l=t.tileXYToNativeRectangle(n,i,r),f=t.tileXYToRectangle(n,i,r),d=c.cartographicToCartesian(le.center(f)),p=this._structure,m=Yo.getEstimatedLevelZeroGeometricErrorForAHeightmap(c,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<r);this._skirtHeight=Math.min(m*4,1e3);let x=(a?Ett:Ttt).scheduleTask({heightmap:this._buffer,structure:p,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:l,rectangle:f,relativeToCenter:d,ellipsoid:c,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof Ii,exaggeration:o,exaggerationRelativeHeight:s,encoding:this._encoding});if(!u(x))return;let C=this;return Promise.resolve(x).then(function(T){let E;C._skirtHeight>0?E=Yo.getRegularGridAndSkirtIndicesAndEdgeIndices(T.gridWidth,T.gridHeight):E=Yo.getRegularGridIndicesAndEdgeIndices(T.gridWidth,T.gridHeight);let S=T.gridWidth*T.gridHeight;return C._mesh=new Vf(d,new Float32Array(T.vertices),E.indices,E.indexCountWithoutSkirts,S,T.minimumHeight,T.maximumHeight,ae.clone(T.boundingSphere3D),h.clone(T.occludeePointInScaledSpace),T.numberOfAttributes,On.clone(T.orientedBoundingBox),dc.clone(T.encoding),E.westIndicesSouthToNorth,E.southIndicesEastToWest,E.eastIndicesNorthToSouth,E.northIndicesWestToEast),C._buffer=void 0,C._mesh})};O_.prototype._createMeshSync=function(e){let t=e.tilingScheme,n=e.x,i=e.y,r=e.level,o=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=t.ellipsoid,c=t.tileXYToNativeRectangle(n,i,r),l=t.tileXYToRectangle(n,i,r),f=a.cartographicToCartesian(le.center(l)),d=this._structure,g=Yo.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<r);this._skirtHeight=Math.min(g*4,1e3);let m=qb.computeVertices({heightmap:this._buffer,structure:d,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:c,rectangle:l,relativeToCenter:f,ellipsoid:a,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof Ii,exaggeration:o,exaggerationRelativeHeight:s});this._buffer=void 0;let A;this._skirtHeight>0?A=Yo.getRegularGridAndSkirtIndicesAndEdgeIndices(this._width,this._height):A=Yo.getRegularGridIndicesAndEdgeIndices(this._width,this._height);let x=m.gridWidth*m.gridHeight;return this._mesh=new Vf(f,m.vertices,A.indices,A.indexCountWithoutSkirts,x,m.minimumHeight,m.maximumHeight,m.boundingSphere3D,m.occludeePointInScaledSpace,m.encoding.stride,m.orientedBoundingBox,m.encoding,A.westIndicesSouthToNorth,A.southIndicesEastToWest,A.eastIndicesNorthToSouth,A.northIndicesWestToEast),this._mesh};O_.prototype.interpolateHeight=function(e,t,n){let i=this._width,r=this._height,o=this._structure,s=o.stride,a=o.elementsPerHeight,c=o.elementMultiplier,l=o.isBigEndian,f=o.heightOffset,d=o.heightScale,p=u(this._mesh),g=this._encoding===Ff.LERC;if(!p&&g)return;let A;if(p){let x=this._mesh.vertices,C=this._mesh.encoding;A=ppe(x,C,f,d,e,i,r,t,n)}else A=btt(this._buffer,a,c,s,l,e,i,r,t,n),A=A*d+f;return A};O_.prototype.upsample=function(e,t,n,i,r,o,s){let a=this._mesh;if(!u(a))return;let c=this._width,l=this._height,f=this._structure,d=f.stride,p=new this._bufferType(c*l*d),g=a.vertices,m=a.encoding,A=e.tileXYToRectangle(t,n,i),x=e.tileXYToRectangle(r,o,s),C=f.heightOffset,T=f.heightScale,E=f.elementsPerHeight,S=f.elementMultiplier,v=f.isBigEndian,D=Math.pow(S,E-1);for(let M=0;M<l;++M){let O=P.lerp(x.north,x.south,M/(l-1));for(let B=0;B<c;++B){let L=P.lerp(x.west,x.east,B/(c-1)),_=ppe(g,m,C,T,A,c,l,L,O);_=_<f.lowestEncodedHeight?f.lowestEncodedHeight:_,_=_>f.highestEncodedHeight?f.highestEncodedHeight:_,Stt(p,E,S,D,d,v,M*c+B,_)}}return Promise.resolve(new O_({buffer:p,width:c,height:l,childTileMask:0,structure:this._structure,createdByUpsampling:!0}))};O_.prototype.isChildAvailable=function(e,t,n,i){let r=2;return n!==e*2&&++r,i!==t*2&&(r-=2),(this._childTileMask&1<<r)!==0};O_.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};function btt(e,t,n,i,r,o,s,a,c,l){let f=(c-o.west)*(s-1)/(o.east-o.west),d=(l-o.south)*(a-1)/(o.north-o.south),p=f|0,g=p+1;g>=s&&(g=s-1,p=s-2);let m=d|0,A=m+1;A>=a&&(A=a-1,m=a-2);let x=f-p,C=d-m;m=a-1-m,A=a-1-A;let T=W4(e,t,n,i,r,m*s+p),E=W4(e,t,n,i,r,m*s+g),S=W4(e,t,n,i,r,A*s+p),v=W4(e,t,n,i,r,A*s+g);return _pe(x,C,T,E,S,v)}function ppe(e,t,n,i,r,o,s,a,c){let l=(a-r.west)*(o-1)/(r.east-r.west),f=(c-r.south)*(s-1)/(r.north-r.south),d=l|0,p=d+1;p>=o&&(p=o-1,d=o-2);let g=f|0,m=g+1;m>=s&&(m=s-1,g=s-2);let A=l-d,x=f-g;g=s-1-g,m=s-1-m;let C=(t.decodeHeight(e,g*o+d)-n)/i,T=(t.decodeHeight(e,g*o+p)-n)/i,E=(t.decodeHeight(e,m*o+d)-n)/i,S=(t.decodeHeight(e,m*o+p)-n)/i;return _pe(A,x,C,T,E,S)}function _pe(e,t,n,i,r,o){return t<e?n+e*(i-n)+t*(o-i):n+e*(o-r)+t*(r-n)}function W4(e,t,n,i,r,o){o*=i;let s=0,a;if(r)for(a=0;a<t;++a)s=s*n+e[o+a];else for(a=t-1;a>=0;--a)s=s*n+e[o+a];return s}function Stt(e,t,n,i,r,o,s,a){s*=r;let c;if(o)for(c=0;c<t-1;++c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;else for(c=t-1;c>0;--c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;e[s+c]=a}var wa=O_;function Yb(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=e.tilingScheme,u(this._tilingScheme)||(this._tilingScheme=new Wi({ellipsoid:y(e.ellipsoid,re.WGS84)})),this._levelZeroMaximumGeometricError=Yo.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new ge,this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(Yb.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("EllipsoidTerrainProvider.ready","EllipsoidTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("EllipsoidTerrainProvider.readyPromise","EllipsoidTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});Yb.prototype.requestTileGeometry=function(e,t,n,i){return Promise.resolve(new wa({buffer:new Uint8Array(16*16),width:16,height:16}))};Yb.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Yb.prototype.getTileDataAvailable=function(e,t,n){};Yb.prototype.loadTileDataAvailability=function(e,t,n){};var M_=Yb;var JB=`uniform vec4 u_initialColor; + +#if TEXTURE_UNITS > 0 +uniform sampler2D u_dayTextures[TEXTURE_UNITS]; +uniform vec4 u_dayTextureTranslationAndScale[TEXTURE_UNITS]; +uniform bool u_dayTextureUseWebMercatorT[TEXTURE_UNITS]; + +#ifdef APPLY_ALPHA +uniform float u_dayTextureAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_DAY_NIGHT_ALPHA +uniform float u_dayTextureNightAlpha[TEXTURE_UNITS]; +uniform float u_dayTextureDayAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SPLIT +uniform float u_dayTextureSplit[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_BRIGHTNESS +uniform float u_dayTextureBrightness[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_CONTRAST +uniform float u_dayTextureContrast[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_HUE +uniform float u_dayTextureHue[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SATURATION +uniform float u_dayTextureSaturation[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_GAMMA +uniform float u_dayTextureOneOverGamma[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_IMAGERY_CUTOUT +uniform vec4 u_dayTextureCutoutRectangles[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_COLOR_TO_ALPHA +uniform vec4 u_colorsToAlpha[TEXTURE_UNITS]; +#endif + +uniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS]; +#endif + +#ifdef SHOW_REFLECTIVE_OCEAN +uniform sampler2D u_waterMask; +uniform vec4 u_waterMaskTranslationAndScale; +uniform float u_zoomedOutOceanSpecularIntensity; +#endif + +#ifdef SHOW_OCEAN_WAVES +uniform sampler2D u_oceanNormalMap; +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) +uniform vec2 u_lightingFadeDistance; +#endif + +#ifdef TILE_LIMIT_RECTANGLE +uniform vec4 u_cartographicLimitRectangle; +#endif + +#ifdef GROUND_ATMOSPHERE +uniform vec2 u_nightFadeDistance; +#endif + +#ifdef ENABLE_CLIPPING_PLANES +uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) && defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) +uniform float u_minimumBrightness; +#endif + +#ifdef COLOR_CORRECT +uniform vec3 u_hsbShift; // Hue, saturation, brightness +#endif + +#ifdef HIGHLIGHT_FILL_TILE +uniform vec4 u_fillHighlightColor; +#endif + +#ifdef TRANSLUCENT +uniform vec4 u_frontFaceAlphaByDistance; +uniform vec4 u_backFaceAlphaByDistance; +uniform vec4 u_translucencyRectangle; +#endif + +#ifdef UNDERGROUND_COLOR +uniform vec4 u_undergroundColor; +uniform vec4 u_undergroundColorAlphaByDistance; +#endif + +#ifdef ENABLE_VERTEX_LIGHTING +uniform float u_lambertDiffuseMultiplier; +uniform float u_vertexShadowDarkness; +#endif + +in vec3 v_positionMC; +in vec3 v_positionEC; +in vec3 v_textureCoordinates; +in vec3 v_normalMC; +in vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +in float v_height; +in float v_slope; +in float v_aspect; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +in float v_distance; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) +in vec3 v_atmosphereRayleighColor; +in vec3 v_atmosphereMieColor; +in float v_atmosphereOpacity; +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) || defined(APPLY_MATERIAL) +vec4 alphaBlend(vec4 sourceColor, vec4 destinationColor) +{ + return sourceColor * vec4(sourceColor.aaa, 1.0) + destinationColor * (1.0 - sourceColor.a); +} +#endif + +#ifdef TRANSLUCENT +bool inTranslucencyRectangle() +{ + return + v_textureCoordinates.x > u_translucencyRectangle.x && + v_textureCoordinates.x < u_translucencyRectangle.z && + v_textureCoordinates.y > u_translucencyRectangle.y && + v_textureCoordinates.y < u_translucencyRectangle.w; +} +#endif + +vec4 sampleAndBlend( + vec4 previousColor, + sampler2D textureToSample, + vec2 tileTextureCoordinates, + vec4 textureCoordinateRectangle, + vec4 textureCoordinateTranslationAndScale, + float textureAlpha, + float textureNightAlpha, + float textureDayAlpha, + float textureBrightness, + float textureContrast, + float textureHue, + float textureSaturation, + float textureOneOverGamma, + float split, + vec4 colorToAlpha, + float nightBlend) +{ + // This crazy step stuff sets the alpha to 0.0 if this following condition is true: + // tileTextureCoordinates.s < textureCoordinateRectangle.s || + // tileTextureCoordinates.s > textureCoordinateRectangle.p || + // tileTextureCoordinates.t < textureCoordinateRectangle.t || + // tileTextureCoordinates.t > textureCoordinateRectangle.q + // In other words, the alpha is zero if the fragment is outside the rectangle + // covered by this texture. Would an actual 'if' yield better performance? + vec2 alphaMultiplier = step(textureCoordinateRectangle.st, tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + + alphaMultiplier = step(vec2(0.0), textureCoordinateRectangle.pq - tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + textureAlpha *= mix(textureDayAlpha, textureNightAlpha, nightBlend); +#endif + + vec2 translation = textureCoordinateTranslationAndScale.xy; + vec2 scale = textureCoordinateTranslationAndScale.zw; + vec2 textureCoordinates = tileTextureCoordinates * scale + translation; + vec4 value = texture(textureToSample, textureCoordinates); + vec3 color = value.rgb; + float alpha = value.a; + +#ifdef APPLY_COLOR_TO_ALPHA + vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb); + colorDiff.r = max(max(colorDiff.r, colorDiff.g), colorDiff.b); + alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha); +#endif + +#if !defined(APPLY_GAMMA) + vec4 tempColor = czm_gammaCorrect(vec4(color, alpha)); + color = tempColor.rgb; + alpha = tempColor.a; +#else + color = pow(color, vec3(textureOneOverGamma)); +#endif + +#ifdef APPLY_SPLIT + float splitPosition = czm_splitPosition; + // Split to the left + if (split < 0.0 && gl_FragCoord.x > splitPosition) { + alpha = 0.0; + } + // Split to the right + else if (split > 0.0 && gl_FragCoord.x < splitPosition) { + alpha = 0.0; + } +#endif + +#ifdef APPLY_BRIGHTNESS + color = mix(vec3(0.0), color, textureBrightness); +#endif + +#ifdef APPLY_CONTRAST + color = mix(vec3(0.5), color, textureContrast); +#endif + +#ifdef APPLY_HUE + color = czm_hue(color, textureHue); +#endif + +#ifdef APPLY_SATURATION + color = czm_saturation(color, textureSaturation); +#endif + + float sourceAlpha = alpha * textureAlpha; + float outAlpha = mix(previousColor.a, 1.0, sourceAlpha); + outAlpha += sign(outAlpha) - 1.0; + + vec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha; + + // When rendering imagery for a tile in multiple passes, + // some GPU/WebGL implementation combinations will not blend fragments in + // additional passes correctly if their computation includes an unmasked + // divide-by-zero operation, + // even if it's not in the output or if the output has alpha zero. + // + // For example, without sanitization for outAlpha, + // this renders without artifacts: + // if (outAlpha == 0.0) { outColor = vec3(0.0); } + // + // but using czm_branchFreeTernary will cause portions of the tile that are + // alpha-zero in the additional pass to render as black instead of blending + // with the previous pass: + // outColor = czm_branchFreeTernary(outAlpha == 0.0, vec3(0.0), outColor); + // + // So instead, sanitize against divide-by-zero, + // store this state on the sign of outAlpha, and correct on return. + + return vec4(outColor, max(outAlpha, 0.0)); +} + +vec3 colorCorrect(vec3 rgb) { +#ifdef COLOR_CORRECT + // Convert rgb color to hsb + vec3 hsb = czm_RGBToHSB(rgb); + // Perform hsb shift + hsb.x += u_hsbShift.x; // hue + hsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0); // saturation + hsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0; // brightness + // Convert shifted hsb back to rgb + rgb = czm_HSBToRGB(hsb); +#endif + return rgb; +} + +vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend); +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float specularMapValue, float fade); + +const float fExposure = 2.0; + +vec3 computeEllipsoidPosition() +{ + float mpp = czm_metersPerPixel(vec4(0.0, 0.0, -czm_currentFrustum.x, 1.0), 1.0); + vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0); + xy *= czm_viewport.zw * mpp * 0.5; + + vec3 direction = normalize(vec3(xy, -czm_currentFrustum.x)); + czm_ray ray = czm_ray(vec3(0.0), direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + + vec3 ellipsoidPosition = czm_pointAlongRay(ray, intersection.start); + return (czm_inverseView * vec4(ellipsoidPosition, 1.0)).xyz; +} + +void main() +{ +#ifdef TILE_LIMIT_RECTANGLE + if (v_textureCoordinates.x < u_cartographicLimitRectangle.x || u_cartographicLimitRectangle.z < v_textureCoordinates.x || + v_textureCoordinates.y < u_cartographicLimitRectangle.y || u_cartographicLimitRectangle.w < v_textureCoordinates.y) + { + discard; + } +#endif + +#ifdef ENABLE_CLIPPING_PLANES + float clipDistance = clip(gl_FragCoord, u_clippingPlanes, u_clippingPlanesMatrix); +#endif + +#if defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(HDR) + vec3 normalMC = czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)); // normalized surface normal in model coordinates + vec3 normalEC = czm_normal3D * normalMC; // normalized surface normal in eye coordiantes +#endif + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + float nightBlend = 1.0 - clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0, 0.0, 1.0); +#else + float nightBlend = 0.0; +#endif + + // The clamp below works around an apparent bug in Chrome Canary v23.0.1241.0 + // where the fragment shader sees textures coordinates < 0.0 and > 1.0 for the + // fragments on the edges of tiles even though the vertex shader is outputting + // coordinates strictly in the 0-1 range. + vec4 color = computeDayColor(u_initialColor, clamp(v_textureCoordinates, 0.0, 1.0), nightBlend); + +#ifdef SHOW_TILE_BOUNDARIES + if (v_textureCoordinates.x < (1.0/256.0) || v_textureCoordinates.x > (255.0/256.0) || + v_textureCoordinates.y < (1.0/256.0) || v_textureCoordinates.y > (255.0/256.0)) + { + color = vec4(1.0, 0.0, 0.0, 1.0); + } +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) + float cameraDist; + if (czm_sceneMode == czm_sceneMode2D) + { + cameraDist = max(czm_frustumPlanes.x - czm_frustumPlanes.y, czm_frustumPlanes.w - czm_frustumPlanes.z) * 0.5; + } + else if (czm_sceneMode == czm_sceneModeColumbusView) + { + cameraDist = -czm_view[3].z; + } + else + { + cameraDist = length(czm_view[3]); + } + float fadeOutDist = u_lightingFadeDistance.x; + float fadeInDist = u_lightingFadeDistance.y; + if (czm_sceneMode != czm_sceneMode3D) { + vec3 radii = czm_ellipsoidRadii; + float maxRadii = max(radii.x, max(radii.y, radii.z)); + fadeOutDist -= maxRadii; + fadeInDist -= maxRadii; + } + float fade = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0); +#else + float fade = 0.0; +#endif + +#ifdef SHOW_REFLECTIVE_OCEAN + vec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy; + vec2 waterMaskScale = u_waterMaskTranslationAndScale.zw; + vec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation; + waterMaskTextureCoordinates.y = 1.0 - waterMaskTextureCoordinates.y; + + float mask = texture(u_waterMask, waterMaskTextureCoordinates).r; + + if (mask > 0.0) + { + mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC); + + vec2 ellipsoidTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC); + vec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC.zyx); + + vec2 textureCoordinates = mix(ellipsoidTextureCoordinates, ellipsoidFlippedTextureCoordinates, czm_morphTime * smoothstep(0.9, 0.95, normalMC.z)); + + color = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade); + } +#endif + +#ifdef APPLY_MATERIAL + czm_materialInput materialInput; + materialInput.st = v_textureCoordinates.st; + materialInput.normalEC = normalize(v_normalEC); + materialInput.positionToEyeEC = -v_positionEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalize(v_normalEC)); + materialInput.slope = v_slope; + materialInput.height = v_height; + materialInput.aspect = v_aspect; + czm_material material = czm_getMaterial(materialInput); + vec4 materialColor = vec4(material.diffuse, material.alpha); + color = alphaBlend(materialColor, color); +#endif + +#ifdef ENABLE_VERTEX_LIGHTING + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalize(v_normalEC)) * u_lambertDiffuseMultiplier + u_vertexShadowDarkness, 0.0, 1.0); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#elif defined(ENABLE_DAYNIGHT_SHADING) + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0 + 0.3, 0.0, 1.0); + diffuseIntensity = mix(1.0, diffuseIntensity, fade); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#else + vec4 finalColor = color; +#endif + +#ifdef ENABLE_CLIPPING_PLANES + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = u_clippingPlanesEdgeStyle.rgb; + float clippingPlanesEdgeWidth = u_clippingPlanesEdgeStyle.a; + + if (clipDistance < clippingPlanesEdgeWidth) + { + finalColor = clippingPlanesEdgeColor; + } +#endif + +#ifdef HIGHLIGHT_FILL_TILE + finalColor = vec4(mix(finalColor.rgb, u_fillHighlightColor.rgb, u_fillHighlightColor.a), finalColor.a); +#endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) + if (!czm_backFacing()) + { + bool dynamicLighting = false; + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + + vec3 rayleighColor; + vec3 mieColor; + float opacity; + + vec3 positionWC; + vec3 lightDirection; + + // When the camera is far away (camera distance > nightFadeOutDistance), the scattering is computed in the fragment shader. + // Otherwise, the scattering is computed in the vertex shader. + #ifdef PER_FRAGMENT_GROUND_ATMOSPHERE + positionWC = computeEllipsoidPosition(); + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + computeAtmosphereScattering( + positionWC, + lightDirection, + rayleighColor, + mieColor, + opacity + ); + #else + positionWC = v_positionMC; + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + rayleighColor = v_atmosphereRayleighColor; + mieColor = v_atmosphereMieColor; + opacity = v_atmosphereOpacity; + #endif + + rayleighColor = colorCorrect(rayleighColor); + mieColor = colorCorrect(mieColor); + + vec4 groundAtmosphereColor = computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity); + + // Fog is applied to tiles selected for fog, close to the Earth. + #ifdef FOG + vec3 fogColor = groundAtmosphereColor.rgb; + + // If there is lighting, apply that to the fog. + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float darken = clamp(dot(normalize(czm_viewerPositionWC), atmosphereLightDirection), u_minimumBrightness, 1.0); + fogColor *= darken; + #endif + + #ifndef HDR + fogColor.rgb = czm_acesTonemapping(fogColor.rgb); + fogColor.rgb = czm_inverseGamma(fogColor.rgb); + #endif + + const float modifier = 0.15; + finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, modifier), finalColor.a); + + #else + // The transmittance is based on optical depth i.e. the length of segment of the ray inside the atmosphere. + // This value is larger near the "circumference", as it is further away from the camera. We use it to + // brighten up that area of the ground atmosphere. + const float transmittanceModifier = 0.5; + float transmittance = transmittanceModifier + clamp(1.0 - groundAtmosphereColor.a, 0.0, 1.0); + + vec3 finalAtmosphereColor = finalColor.rgb + groundAtmosphereColor.rgb * transmittance; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float fadeInDist = u_nightFadeDistance.x; + float fadeOutDist = u_nightFadeDistance.y; + + float sunlitAtmosphereIntensity = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.05, 1.0); + float darken = clamp(dot(normalize(positionWC), atmosphereLightDirection), 0.0, 1.0); + vec3 darkenendGroundAtmosphereColor = mix(groundAtmosphereColor.rgb, finalAtmosphereColor.rgb, darken); + + finalAtmosphereColor = mix(darkenendGroundAtmosphereColor, finalAtmosphereColor, sunlitAtmosphereIntensity); + #endif + + #ifndef HDR + finalAtmosphereColor.rgb = vec3(1.0) - exp(-fExposure * finalAtmosphereColor.rgb); + #else + finalAtmosphereColor.rgb = czm_saturation(finalAtmosphereColor.rgb, 1.6); + #endif + + finalColor.rgb = mix(finalColor.rgb, finalAtmosphereColor.rgb, fade); + #endif + } +#endif + +#ifdef UNDERGROUND_COLOR + if (czm_backFacing()) + { + float distanceFromEllipsoid = max(czm_eyeHeight, 0.0); + float distance = max(v_distance - distanceFromEllipsoid, 0.0); + float blendAmount = interpolateByDistance(u_undergroundColorAlphaByDistance, distance); + vec4 undergroundColor = vec4(u_undergroundColor.rgb, u_undergroundColor.a * blendAmount); + finalColor = alphaBlend(undergroundColor, finalColor); + } +#endif + +#ifdef TRANSLUCENT + if (inTranslucencyRectangle()) + { + vec4 alphaByDistance = gl_FrontFacing ? u_frontFaceAlphaByDistance : u_backFaceAlphaByDistance; + finalColor.a *= interpolateByDistance(alphaByDistance, v_distance); + } +#endif + + out_FragColor = finalColor; +} + + +#ifdef SHOW_REFLECTIVE_OCEAN + +float waveFade(float edge0, float edge1, float x) +{ + float y = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); + return pow(1.0 - y, 5.0); +} + +float linearFade(float edge0, float edge1, float x) +{ + return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); +} + +// Based on water rendering by Jonas Wagner: +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +// low altitude wave settings +const float oceanFrequencyLowAltitude = 825000.0; +const float oceanAnimationSpeedLowAltitude = 0.004; +const float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0; +const float oceanSpecularIntensity = 0.5; + +// high altitude wave settings +const float oceanFrequencyHighAltitude = 125000.0; +const float oceanAnimationSpeedHighAltitude = 0.008; +const float oceanOneOverAmplitudeHighAltitude = 1.0 / 2.0; + +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float maskValue, float fade) +{ + vec3 positionToEyeEC = -positionEyeCoordinates; + float positionToEyeECLength = length(positionToEyeEC); + + // The double normalize below works around a bug in Firefox on Android devices. + vec3 normalizedPositionToEyeEC = normalize(normalize(positionToEyeEC)); + + // Fade out the waves as the camera moves far from the surface. + float waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength); + +#ifdef SHOW_OCEAN_WAVES + // high altitude waves + float time = czm_frameNumber * oceanAnimationSpeedHighAltitude; + vec4 noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyHighAltitude, time, 0.0); + vec3 normalTangentSpaceHighAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeHighAltitude); + + // low altitude waves + time = czm_frameNumber * oceanAnimationSpeedLowAltitude; + noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0); + vec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude); + + // blend the 2 wave layers based on distance to surface + float highAltitudeFade = linearFade(0.0, 60000.0, positionToEyeECLength); + float lowAltitudeFade = 1.0 - linearFade(20000.0, 60000.0, positionToEyeECLength); + vec3 normalTangentSpace = + (highAltitudeFade * normalTangentSpaceHighAltitude) + + (lowAltitudeFade * normalTangentSpaceLowAltitude); + normalTangentSpace = normalize(normalTangentSpace); + + // fade out the normal perturbation as we move farther from the water surface + normalTangentSpace.xy *= waveIntensity; + normalTangentSpace = normalize(normalTangentSpace); +#else + vec3 normalTangentSpace = vec3(0.0, 0.0, 1.0); +#endif + + vec3 normalEC = enuToEye * normalTangentSpace; + + const vec3 waveHighlightColor = vec3(0.3, 0.45, 0.6); + + // Use diffuse light to highlight the waves + float diffuseIntensity = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * maskValue; + vec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade); + +#ifdef SHOW_OCEAN_WAVES + // Where diffuse light is low or non-existent, use wave highlights based solely on + // the wave bumpiness and no particular light direction. + float tsPerturbationRatio = normalTangentSpace.z; + vec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity); +#else + vec3 nonDiffuseHighlight = vec3(0.0); +#endif + + // Add specular highlights in 3D, and in all modes when zoomed in. + float specularIntensity = czm_getSpecular(czm_lightDirectionEC, normalizedPositionToEyeEC, normalEC, 10.0); + float surfaceReflectance = mix(0.0, mix(u_zoomedOutOceanSpecularIntensity, oceanSpecularIntensity, waveIntensity), maskValue); + float specular = specularIntensity * surfaceReflectance; + +#ifdef HDR + specular *= 1.4; + + float e = 0.2; + float d = 3.3; + float c = 1.7; + + vec3 color = imageryColor.rgb + (c * (vec3(e) + imageryColor.rgb * d) * (diffuseHighlight + nonDiffuseHighlight + specular)); +#else + vec3 color = imageryColor.rgb + diffuseHighlight + nonDiffuseHighlight + specular; +#endif + + return vec4(color, imageryColor.a); +} + +#endif // #ifdef SHOW_REFLECTIVE_OCEAN +`;var ZB=`#ifdef QUANTIZATION_BITS12 +in vec4 compressed0; +in float compressed1; +#else +in vec4 position3DAndHeight; +in vec4 textureCoordAndEncodedNormals; +#endif + +#ifdef GEODETIC_SURFACE_NORMALS +in vec3 geodeticSurfaceNormal; +#endif + +#ifdef EXAGGERATION +uniform vec2 u_terrainExaggerationAndRelativeHeight; +#endif + +uniform vec3 u_center3D; +uniform mat4 u_modifiedModelView; +uniform mat4 u_modifiedModelViewProjection; +uniform vec4 u_tileRectangle; + +// Uniforms for 2D Mercator projection +uniform vec2 u_southAndNorthLatitude; +uniform vec2 u_southMercatorYAndOneOverHeight; + +out vec3 v_positionMC; +out vec3 v_positionEC; + +out vec3 v_textureCoordinates; +out vec3 v_normalMC; +out vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +out float v_slope; +out float v_aspect; +out float v_height; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +out float v_distance; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) +out vec3 v_atmosphereRayleighColor; +out vec3 v_atmosphereMieColor; +out float v_atmosphereOpacity; +#endif + +// These functions are generated at runtime. +vec4 getPosition(vec3 position, float height, vec2 textureCoordinates); +float get2DYPositionFraction(vec2 textureCoordinates); + +vec4 getPosition3DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return u_modifiedModelViewProjection * vec4(position, 1.0); +} + +float get2DMercatorYPositionFraction(vec2 textureCoordinates) +{ + // The width of a tile at level 11, in radians and assuming a single root tile, is + // 2.0 * czm_pi / pow(2.0, 11.0) + // We want to just linearly interpolate the 2D position from the texture coordinates + // when we're at this level or higher. The constant below is the expression + // above evaluated and then rounded up at the 4th significant digit. + const float maxTileWidth = 0.003068; + float positionFraction = textureCoordinates.y; + float southLatitude = u_southAndNorthLatitude.x; + float northLatitude = u_southAndNorthLatitude.y; + if (northLatitude - southLatitude > maxTileWidth) + { + float southMercatorY = u_southMercatorYAndOneOverHeight.x; + float oneOverMercatorHeight = u_southMercatorYAndOneOverHeight.y; + + float currentLatitude = mix(southLatitude, northLatitude, textureCoordinates.y); + currentLatitude = clamp(currentLatitude, -czm_webMercatorMaxLatitude, czm_webMercatorMaxLatitude); + positionFraction = czm_latitudeToWebMercatorFraction(currentLatitude, southMercatorY, oneOverMercatorHeight); + } + return positionFraction; +} + +float get2DGeographicYPositionFraction(vec2 textureCoordinates) +{ + return textureCoordinates.y; +} + +vec4 getPositionPlanarEarth(vec3 position, float height, vec2 textureCoordinates) +{ + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 rtcPosition2D = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + return u_modifiedModelViewProjection * rtcPosition2D; +} + +vec4 getPosition2DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, 0.0, textureCoordinates); +} + +vec4 getPositionColumbusViewMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, height, textureCoordinates); +} + +vec4 getPositionMorphingMode(vec3 position, float height, vec2 textureCoordinates) +{ + // We do not do RTC while morphing, so there is potential for jitter. + // This is unlikely to be noticeable, though. + vec3 position3DWC = position + u_center3D; + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 position2DWC = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + vec4 morphPosition = czm_columbusViewMorph(position2DWC, vec4(position3DWC, 1.0), czm_morphTime); + return czm_modelViewProjection * morphPosition; +} + +#ifdef QUANTIZATION_BITS12 +uniform vec2 u_minMaxHeight; +uniform mat4 u_scaleAndBias; +#endif + +void main() +{ +#ifdef QUANTIZATION_BITS12 + vec2 xy = czm_decompressTextureCoordinates(compressed0.x); + vec2 zh = czm_decompressTextureCoordinates(compressed0.y); + vec3 position = vec3(xy, zh.x); + float height = zh.y; + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressed0.z); + + height = height * (u_minMaxHeight.y - u_minMaxHeight.x) + u_minMaxHeight.x; + position = (u_scaleAndBias * vec4(position, 1.0)).xyz; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)) && defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = compressed1; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = 0.0; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = compressed0.w; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#else + // A single float per element + vec3 position = position3DAndHeight.xyz; + float height = position3DAndHeight.w; + vec2 textureCoordinates = textureCoordAndEncodedNormals.xy; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)) && defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = textureCoordAndEncodedNormals.w; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = textureCoordAndEncodedNormals.z; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = 0.0; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#endif + + vec3 position3DWC = position + u_center3D; + +#ifdef GEODETIC_SURFACE_NORMALS + vec3 ellipsoidNormal = geodeticSurfaceNormal; +#else + vec3 ellipsoidNormal = normalize(position3DWC); +#endif + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + float exaggeration = u_terrainExaggerationAndRelativeHeight.x; + float relativeHeight = u_terrainExaggerationAndRelativeHeight.y; + float newHeight = (height - relativeHeight) * exaggeration + relativeHeight; + + // stop from going through center of earth + float minRadius = min(min(czm_ellipsoidRadii.x, czm_ellipsoidRadii.y), czm_ellipsoidRadii.z); + newHeight = max(newHeight, -minRadius); + + vec3 offset = ellipsoidNormal * (newHeight - height); + position += offset; + position3DWC += offset; + height = newHeight; +#endif + + gl_Position = getPosition(position, height, textureCoordinates); + + v_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz; + v_positionMC = position3DWC; // position in model coordinates + + v_textureCoordinates = vec3(textureCoordinates, webMercatorT); + +#if defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + vec3 normalMC = czm_octDecode(encodedNormal); + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + vec3 projection = dot(normalMC, ellipsoidNormal) * ellipsoidNormal; + vec3 rejection = normalMC - projection; + normalMC = normalize(projection + rejection * exaggeration); +#endif + + v_normalMC = normalMC; + v_normalEC = czm_normal3D * v_normalMC; +#endif + +#if defined(FOG) || (defined(GROUND_ATMOSPHERE) && !defined(PER_FRAGMENT_GROUND_ATMOSPHERE)) + + bool dynamicLighting = false; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + + vec3 lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(position3DWC)); + + computeAtmosphereScattering( + position3DWC, + lightDirection, + v_atmosphereRayleighColor, + v_atmosphereMieColor, + v_atmosphereOpacity + ); +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) + v_distance = length((czm_modelView3D * vec4(position3DWC, 1.0)).xyz); +#endif + +#ifdef APPLY_MATERIAL + float northPoleZ = czm_ellipsoidRadii.z; + vec3 northPolePositionMC = vec3(0.0, 0.0, northPoleZ); + vec3 vectorEastMC = normalize(cross(northPolePositionMC - v_positionMC, ellipsoidNormal)); + float dotProd = abs(dot(ellipsoidNormal, v_normalMC)); + v_slope = acos(dotProd); + vec3 normalRejected = ellipsoidNormal * dotProd; + vec3 normalProjected = v_normalMC - normalRejected; + vec3 aspectVector = normalize(normalProjected); + v_aspect = acos(dot(aspectVector, vectorEastMC)); + float determ = dot(cross(vectorEastMC, aspectVector), ellipsoidNormal); + v_aspect = czm_branchFreeTernary(determ < 0.0, 2.0 * czm_pi - v_aspect, v_aspect); + v_height = height; +#endif +} +`;var R_=`uniform vec3 u_radiiAndDynamicAtmosphereColor; + +uniform float u_atmosphereLightIntensity; +uniform float u_atmosphereRayleighScaleHeight; +uniform float u_atmosphereMieScaleHeight; +uniform float u_atmosphereMieAnisotropy; +uniform vec3 u_atmosphereRayleighCoefficient; +uniform vec3 u_atmosphereMieCoefficient; + +const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters. +const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled. +const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + +/** + * Rational approximation to tanh(x) +*/ +float approximateTanh(float x) { + float x2 = x * x; + return max(-1.0, min(+1.0, x * (27.0 + x2) / (27.0 + 9.0 * x2))); +} + +/** + * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as + * the transmittance value for the ray. + * + * @param {czm_ray} primaryRay The ray from the camera to the position. + * @param {float} primaryRayLength The length of the primary ray. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + * @glslFunction + */ +void computeScattering( + czm_ray primaryRay, + float primaryRayLength, + vec3 lightDirection, + float atmosphereInnerRadius, + out vec3 rayleighColor, + out vec3 mieColor, + out float opacity +) { + + // Initialize the default scattering amounts to 0. + rayleighColor = vec3(0.0); + mieColor = vec3(0.0); + opacity = 0.0; + + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + + vec3 origin = vec3(0.0); + + // Calculate intersection from the camera to the outer ring of the atmosphere. + czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius); + + // Return empty colors if no intersection with the atmosphere geometry. + if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) { + return; + } + + // To deal with smaller values of PRIMARY_STEPS (e.g. 4) + // we implement a split strategy: sky or horizon. + // For performance reasons, instead of a if/else branch + // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0 + float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength); + // Value close to 0.0: close to the horizon + // Value close to 1.0: above in the sky + float w_stop_gt_lprl = 0.5 * (1.0 + approximateTanh(x)); + + // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere. + float start_0 = primaryRayAtmosphereIntersect.start; + primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0); + // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller. + primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength)); + + // For the number of ray steps, distinguish inside or outside atmosphere (outer space) + // (1) from outer space we have to use more ray steps to get a realistic rendering + // (2) within atmosphere we need fewer steps for faster rendering + float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters + float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + approximateTanh(x_o_a)); + int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled. + int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere. + float rayPositionLength = primaryRayAtmosphereIntersect.start; + // (1) Outside the atmosphere: constant rayStepLength + // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps + float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength; + float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0)); + float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS)); + + vec3 rayleighAccumulation = vec3(0.0); + vec3 mieAccumulation = vec3(0.0); + vec2 opticalDepth = vec2(0.0); + vec2 heightScale = vec2(u_atmosphereRayleighScaleHeight, u_atmosphereMieScaleHeight); + + // Sample positions on the primary ray. + for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) { + + // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= PRIMARY_STEPS) { + break; + } + + // Calculate sample position along viewpoint ray. + vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); + + // Calculate height of sample position above ellipsoid. + float sampleHeight = length(samplePosition) - atmosphereInnerRadius; + + // Calculate and accumulate density of particles at the sample position. + vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; + opticalDepth += sampleDensity; + + // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. + czm_ray lightRay = czm_ray(samplePosition, lightDirection); + czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); + + float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); + float lightPositionLength = 0.0; + + vec2 lightOpticalDepth = vec2(0.0); + + // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. + for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { + + // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (j >= LIGHT_STEPS) { + break; + } + + // Calculate sample position along light ray. + vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); + + // Calculate height of the light sample position above ellipsoid. + float lightHeight = length(lightPosition) - atmosphereInnerRadius; + + // Calculate density of photons at the light sample position. + lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; + + // Increment distance on light ray. + lightPositionLength += lightStepLength; + } + + // Compute attenuation via the primary ray and the light ray. + vec3 attenuation = exp(-((u_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (u_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); + + // Accumulate the scattering. + rayleighAccumulation += sampleDensity.x * attenuation; + mieAccumulation += sampleDensity.y * attenuation; + + // Increment distance on primary ray. + rayPositionLength += (rayStepLength += rayStepLengthIncrease); + } + + // Compute the scattering amount. + rayleighColor = u_atmosphereRayleighCoefficient * rayleighAccumulation; + mieColor = u_atmosphereMieCoefficient * mieAccumulation; + + // Compute the transmittance i.e. how much light is passing through the atmosphere. + opacity = length(exp(-((u_atmosphereMieCoefficient * opticalDepth.y) + (u_atmosphereRayleighCoefficient * opticalDepth.x)))); +} + +vec4 computeAtmosphereColor( + vec3 positionWC, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + + float cosAngle = dot(cameraToPositionWCDirection, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = u_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * u_atmosphereLightIntensity; + + return vec4(color, opacity); +} +`;var Xb=`void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { + + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + float atmosphereInnerRadius = length(positionWC); + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); +} +`;var vtt=new H;function wtt(e,t){let n=e.unionClippingRegions,i=e.length,r=ls.useFloatTexture(t),o=ls.getTextureResolution(e,t,vtt),s=o.x,a=o.y,c=r?Ptt(s,a):Ott(s,a);return c+=` +`,c+=n?Dtt(i):Itt(i),c}function Dtt(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount; + float pixelWidth = czm_metersPerPixel(position); + bool breakAndDiscard = false; + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); + if (amount <= 0.0) + { + breakAndDiscard = true; + break; + } + } + if (breakAndDiscard) { + discard; + } + return clipAmount; +} +`}function Itt(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + bool clipped = true; + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount = 0.0; + float pixelWidth = czm_metersPerPixel(position); + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = max(amount, clipAmount); + clipped = clipped && (amount <= 0.0); + } + if (clipped) + { + discard; + } + return clipAmount; +} +`}function Ptt(e,t){let n=1/e,i=1/t,r=`${n}`;r.indexOf(".")===-1&&(r+=".0");let o=`${i}`;return o.indexOf(".")===-1&&(o+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int pixY = clippingPlaneNumber / ${e}; + int pixX = clippingPlaneNumber - (pixY * ${e}); + float u = (float(pixX) + 0.5) * ${r}; + float v = (float(pixY) + 0.5) * ${o}; + vec4 plane = texture(packedClippingPlanes, vec2(u, v)); + return czm_transformPlane(plane, transform); +} +`}function Ott(e,t){let n=1/e,i=1/t,r=`${n}`;r.indexOf(".")===-1&&(r+=".0");let o=`${i}`;return o.indexOf(".")===-1&&(o+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int clippingPlaneStartIndex = clippingPlaneNumber * 2; + int pixY = clippingPlaneStartIndex / ${e}; + int pixX = clippingPlaneStartIndex - (pixY * ${e}); + float u = (float(pixX) + 0.5) * ${r}; + float v = (float(pixY) + 0.5) * ${o}; + vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; + vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); + vec4 plane; + plane.xyz = czm_octDecode(oct, 65535.0); + plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + ${r}, v))); + return czm_transformPlane(plane, transform); +} +`}var B_=wtt;function Mtt(e,t,n,i,r){this.numberOfDayTextures=e,this.flags=t,this.material=n,this.shaderProgram=i,this.clippingShaderState=r}function Uj(){this.baseVertexShaderSource=void 0,this.baseFragmentShaderSource=void 0,this._shadersByTexturesFlags=[],this.material=void 0}function Rtt(e){let t="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPosition3DMode(position, height, textureCoordinates); }",n="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionColumbusViewMode(position, height, textureCoordinates); }",i="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionMorphingMode(position, height, textureCoordinates); }",r;switch(e){case ne.SCENE3D:r=t;break;case ne.SCENE2D:case ne.COLUMBUS_VIEW:r=n;break;case ne.MORPHING:r=i;break}return r}function Btt(e){return e?"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DMercatorYPositionFraction(textureCoordinates); }":"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DGeographicYPositionFraction(textureCoordinates); }"}Uj.prototype.getShaderProgram=function(e){let t=e.frameState,n=e.surfaceTile,i=e.numberOfDayTextures,r=e.applyBrightness,o=e.applyContrast,s=e.applyHue,a=e.applySaturation,c=e.applyGamma,l=e.applyAlpha,f=e.applyDayNightAlpha,d=e.applySplit,p=e.showReflectiveOcean,g=e.showOceanWaves,m=e.enableLighting,A=e.dynamicAtmosphereLighting,x=e.dynamicAtmosphereLightingFromSun,C=e.showGroundAtmosphere,T=e.perFragmentGroundAtmosphere,E=e.hasVertexNormals,S=e.useWebMercatorProjection,v=e.enableFog,D=e.enableClippingPlanes,M=e.clippingPlanes,O=e.clippedByBoundaries,B=e.hasImageryLayerCutout,L=e.colorCorrect,_=e.highlightFillTile,b=e.colorToAlpha,w=e.hasGeodeticSurfaceNormals,I=e.hasExaggeration,R=e.showUndergroundColor,F=e.translucent,k=0,V="",U=n.renderedMesh.encoding;U.quantization===Fs.BITS12&&(k=1,V="QUANTIZATION_BITS12");let W=0,Z="";O&&(W=1,Z="TILE_LIMIT_RECTANGLE");let j=0,K="";B&&(j=1,K="APPLY_IMAGERY_CUTOUT");let J=t.mode,_e=J|r<<2|o<<3|s<<4|a<<5|c<<6|l<<7|p<<8|g<<9|m<<10|A<<11|x<<12|C<<13|T<<14|E<<15|S<<16|v<<17|k<<18|d<<19|D<<20|W<<21|j<<22|L<<23|_<<24|b<<25|w<<26|I<<27|R<<28|F<<29|f<<30,xe=0;u(M)&&M.length>0&&(xe=D?M.clippingPlanesState:0);let oe=n.surfaceShader;if(u(oe)&&oe.numberOfDayTextures===i&&oe.flags===_e&&oe.material===this.material&&oe.clippingShaderState===xe)return oe.shaderProgram;let Ae=this._shadersByTexturesFlags[i];if(u(Ae)||(Ae=this._shadersByTexturesFlags[i]=[]),oe=Ae[_e],!u(oe)||oe.material!==this.material||oe.clippingShaderState!==xe){let he=this.baseVertexShaderSource.clone(),Se=this.baseFragmentShaderSource.clone();xe!==0&&Se.sources.unshift(B_(M,t.context)),he.defines.push(V),Se.defines.push(`TEXTURE_UNITS ${i}`,Z,K),r&&Se.defines.push("APPLY_BRIGHTNESS"),o&&Se.defines.push("APPLY_CONTRAST"),s&&Se.defines.push("APPLY_HUE"),a&&Se.defines.push("APPLY_SATURATION"),c&&Se.defines.push("APPLY_GAMMA"),l&&Se.defines.push("APPLY_ALPHA"),f&&Se.defines.push("APPLY_DAY_NIGHT_ALPHA"),p&&(Se.defines.push("SHOW_REFLECTIVE_OCEAN"),he.defines.push("SHOW_REFLECTIVE_OCEAN")),g&&Se.defines.push("SHOW_OCEAN_WAVES"),b&&Se.defines.push("APPLY_COLOR_TO_ALPHA"),R&&(he.defines.push("UNDERGROUND_COLOR"),Se.defines.push("UNDERGROUND_COLOR")),F&&(he.defines.push("TRANSLUCENT"),Se.defines.push("TRANSLUCENT")),m&&(E?(he.defines.push("ENABLE_VERTEX_LIGHTING"),Se.defines.push("ENABLE_VERTEX_LIGHTING")):(he.defines.push("ENABLE_DAYNIGHT_SHADING"),Se.defines.push("ENABLE_DAYNIGHT_SHADING"))),A&&(he.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),Se.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),x&&(he.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"),Se.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"))),C&&(he.defines.push("GROUND_ATMOSPHERE"),Se.defines.push("GROUND_ATMOSPHERE"),T&&(he.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"),Se.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"))),he.defines.push("INCLUDE_WEB_MERCATOR_Y"),Se.defines.push("INCLUDE_WEB_MERCATOR_Y"),v&&(he.defines.push("FOG"),Se.defines.push("FOG")),d&&Se.defines.push("APPLY_SPLIT"),D&&Se.defines.push("ENABLE_CLIPPING_PLANES"),L&&Se.defines.push("COLOR_CORRECT"),_&&Se.defines.push("HIGHLIGHT_FILL_TILE"),w&&he.defines.push("GEODETIC_SURFACE_NORMALS"),I&&he.defines.push("EXAGGERATION");let Ie=` vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend) + { + vec4 color = initialColor; +`;B&&(Ie+=` vec4 cutoutAndColorResult; + bool texelUnclipped; +`);for(let qe=0;qe<i;++qe)B?Ie+=` cutoutAndColorResult = u_dayTextureCutoutRectangles[${qe}]; + texelUnclipped = v_textureCoordinates.x < cutoutAndColorResult.x || cutoutAndColorResult.z < v_textureCoordinates.x || v_textureCoordinates.y < cutoutAndColorResult.y || cutoutAndColorResult.w < v_textureCoordinates.y; + cutoutAndColorResult = sampleAndBlend( +`:Ie+=` color = sampleAndBlend( +`,Ie+=` color, + u_dayTextures[${qe}], + u_dayTextureUseWebMercatorT[${qe}] ? textureCoordinates.xz : textureCoordinates.xy, + u_dayTextureTexCoordsRectangle[${qe}], + u_dayTextureTranslationAndScale[${qe}], + ${l?`u_dayTextureAlpha[${qe}]`:"1.0"}, + ${f?`u_dayTextureNightAlpha[${qe}]`:"1.0"}, +${f?`u_dayTextureDayAlpha[${qe}]`:"1.0"}, +${r?`u_dayTextureBrightness[${qe}]`:"0.0"}, + ${o?`u_dayTextureContrast[${qe}]`:"0.0"}, + ${s?`u_dayTextureHue[${qe}]`:"0.0"}, + ${a?`u_dayTextureSaturation[${qe}]`:"0.0"}, + ${c?`u_dayTextureOneOverGamma[${qe}]`:"0.0"}, + ${d?`u_dayTextureSplit[${qe}]`:"0.0"}, + ${b?`u_colorsToAlpha[${qe}]`:"vec4(0.0)"}, + nightBlend ); +`,B&&(Ie+=` color = czm_branchFreeTernary(texelUnclipped, cutoutAndColorResult, color); +`);Ie+=` return color; + }`,Se.sources.push(Ie),he.sources.push(Rtt(J)),he.sources.push(Btt(S));let Ne=Xt.fromCache({context:t.context,vertexShaderSource:he,fragmentShaderSource:Se,attributeLocations:U.getAttributeLocations()});oe=Ae[_e]=new Mtt(i,_e,this.material,Ne,xe)}return n.surfaceShader=oe,oe.shaderProgram};Uj.prototype.destroy=function(){let e,t,n=this._shadersByTexturesFlags;for(let i in n)if(n.hasOwnProperty(i)){let r=n[i];if(!u(r))continue;for(e in r)r.hasOwnProperty(e)&&(t=r[e],u(t)&&t.shaderProgram.destroy())}return ue(this)};var QB=Uj;var Ltt={NONE:-1,PARTIAL:0,FULL:1},lo=Object.freeze(Ltt);function j4(e,t,n,i,r,o,s){this.provider=e,this.message=t,this.x=n,this.y=i,this.level=r,this.timesRetried=y(o,0),this.retry=!1,this.error=s}j4.reportError=function(e,t,n,i,r,o,s,a){let c=e;return u(e)?(c.provider=t,c.message=i,c.x=r,c.y=o,c.level=s,c.retry=!1,c.error=a,++c.timesRetried):c=new j4(t,i,r,o,s,0,a),u(n)&&n.numberOfListeners>0?n.raiseEvent(c):u(t)&&console.log(`An error occurred in "${t.constructor.name}": ${Sm(i)}`),c};j4.reportSuccess=function(e){u(e)&&(e.timesRetried=-1)};var Ai=j4;var Ntt={UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7},fi=Object.freeze(Ntt);var Ftt={START:0,LOADING:1,DONE:2,FAILED:3},Us=Object.freeze(Ftt);var Utt={FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6},Ar=Object.freeze(Utt);function $r(){this.imagery=[],this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new se(0,0,1,1),this.terrainData=void 0,this.vertexArray=void 0,this.tileBoundingRegion=void 0,this.occludeePointInScaledSpace=new h,this.boundingVolumeSourceTile=void 0,this.boundingVolumeIsFromMesh=!1,this.terrainState=Ar.UNLOADED,this.mesh=void 0,this.fill=void 0,this.pickBoundingSphere=new ae,this.surfaceShader=void 0,this.isClipped=!0,this.clippedByBoundaries=!1}Object.defineProperties($r.prototype,{eligibleForUnloading:{get:function(){let e=this.terrainState,n=!(e===Ar.RECEIVING||e===Ar.TRANSFORMING),i=this.imagery;for(let r=0,o=i.length;n&&r<o;++r){let s=i[r];n=!u(s.loadingImagery)||s.loadingImagery.state!==fi.TRANSITIONING}return n}},renderedMesh:{get:function(){if(u(this.vertexArray))return this.mesh;if(u(this.fill))return this.fill.mesh}}});var Vtt=new me;function Vj(e,t,n,i,r,o){let s=e.getExaggeratedPosition(i,r,o);if(u(t)&&t!==ne.SCENE3D){let c=n.ellipsoid.cartesianToCartographic(s,Vtt);s=n.project(c,o),s=h.fromElements(s.z,s.x,s.y,o)}return s}var ktt=new h,ztt=new h,Htt=new h;$r.prototype.pick=function(e,t,n,i,r){let o=this.renderedMesh;if(!u(o))return;let s=o.vertices,a=o.indices,c=o.encoding,l=a.length,f=Number.MAX_VALUE;for(let d=0;d<l;d+=3){let p=a[d],g=a[d+1],m=a[d+2],A=Vj(c,t,n,s,p,ktt),x=Vj(c,t,n,s,g,ztt),C=Vj(c,t,n,s,m,Htt),T=Ji.rayTriangleParametric(e,A,x,C,i);u(T)&&T<f&&T>=0&&(f=T)}return f!==Number.MAX_VALUE?vn.getPoint(e,f,r):void 0};$r.prototype.freeResources=function(){u(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=Ar.UNLOADED,this.mesh=void 0,this.fill=this.fill&&this.fill.destroy();let e=this.imagery;for(let t=0,n=e.length;t<n;++t)e[t].freeResources();this.imagery.length=0,this.freeVertexArray()};$r.prototype.freeVertexArray=function(){$r._freeVertexArray(this.vertexArray),this.vertexArray=void 0,$r._freeVertexArray(this.wireframeVertexArray),this.wireframeVertexArray=void 0};$r.initialize=function(e,t,n){let i=e.data;u(i)||(i=e.data=new $r),e.state===Us.START&&(Gtt(e,t,n),e.state=Us.LOADING)};$r.processStateMachine=function(e,t,n,i,r,o,s){$r.initialize(e,n,i);let a=e.data;if(e.state===Us.LOADING&&Wtt(e,t,n,i,r,o),s)return;let c=e.renderable;e.renderable=u(a.vertexArray);let l=a.terrainState===Ar.READY;e.upsampledFromParent=u(a.terrainData)&&a.terrainData.wasCreatedByUpsampling();let f=a.processImagery(e,n,t);if(l&&f){let d=e._loadedCallbacks,p={};for(let g in d)d.hasOwnProperty(g)&&(d[g](e)||(p[g]=d[g]));e._loadedCallbacks=p,e.state=Us.DONE}c&&(e.renderable=!0)};$r.prototype.processImagery=function(e,t,n,i){let r=e.data,o=e.upsampledFromParent,s=!1,a=!0,c=r.imagery,l,f;for(l=0,f=c.length;l<f;++l){let d=c[l];if(!u(d.loadingImagery)){o=!1;continue}if(d.loadingImagery.state===fi.PLACEHOLDER){let g=d.loadingImagery.imageryLayer;if(g.ready&&g.imageryProvider._ready){d.freeResources(),c.splice(l,1),g._createTileImagerySkeletons(e,t,l),--l,f=c.length;continue}else o=!1}let p=d.processStateMachine(e,n,i);a=a&&p,s=s||p||u(d.readyImagery),o=o&&u(d.loadingImagery)&&(d.loadingImagery.state===fi.FAILED||d.loadingImagery.state===fi.INVALID)}return e.upsampledFromParent=o,e.renderable=e.renderable&&(s||a),a};function gpe(e,t,n,i){let r=e.renderedMesh,o=r.vertices,s=r.encoding,a=o.length/s.stride,c=dc.clone(s);c.hasGeodeticSurfaceNormals=t,c=dc.clone(c);let l=c.stride,f=new Float32Array(a*l);t?s.addGeodeticSurfaceNormals(o,f,n):s.removeGeodeticSurfaceNormals(o,f),r.vertices=f,r.stride=l,r!==e.mesh?($r._freeVertexArray(e.fill.vertexArray),e.fill.vertexArray=$r._createVertexArrayForMesh(i.context,r)):($r._freeVertexArray(e.vertexArray),e.vertexArray=$r._createVertexArrayForMesh(i.context,r)),$r._freeVertexArray(e.wireframeVertexArray),e.wireframeVertexArray=void 0}$r.prototype.addGeodeticSurfaceNormals=function(e,t){gpe(this,!0,e,t)};$r.prototype.removeGeodeticSurfaceNormals=function(e){gpe(this,!1,void 0,e)};$r.prototype.updateExaggeration=function(e,t,n){let i=this,r=i.renderedMesh;if(r===void 0)return;let o=t.terrainExaggeration,s=t.terrainExaggerationRelativeHeight,a=o!==1,c=r.encoding,l=c.exaggeration!==o,f=c.exaggerationRelativeHeight!==s;if(l||f){if(l)if(a&&!c.hasGeodeticSurfaceNormals){let d=e.tilingScheme.ellipsoid;i.addGeodeticSurfaceNormals(d,t)}else!a&&c.hasGeodeticSurfaceNormals&&i.removeGeodeticSurfaceNormals(t);if(c.exaggeration=o,c.exaggerationRelativeHeight=s,n!==void 0){n._tileToUpdateHeights.push(e);let d=e.customData,p=d.length;for(let g=0;g<p;g++){let m=d[g];m.level=-1}}}};function Gtt(e,t,n){let i=t.getTileDataAvailable(e.x,e.y,e.level);if(!u(i)&&u(e.parent)){let r=e.parent,o=r.data;u(o)&&u(o.terrainData)&&(i=o.terrainData.isChildAvailable(r.x,r.y,e.x,e.y))}i===!1&&(e.data.terrainState=Ar.FAILED);for(let r=0,o=n.length;r<o;++r){let s=n.get(r);s.show&&s._createTileImagerySkeletons(e,t)}}function Wtt(e,t,n,i,r,o){let s=e.data,a=e.parent;if(s.terrainState===Ar.FAILED&&a!==void 0&&(a.data!==void 0&&a.data.terrainData!==void 0&&a.data.terrainData.canUpsample!==!1||$r.processStateMachine(a,t,n,i,r,o,!0)),s.terrainState===Ar.FAILED&&jtt(s,e,t,n,e.x,e.y,e.level),s.terrainState===Ar.UNLOADED&&qtt(s,n,e.x,e.y,e.level),s.terrainState===Ar.RECEIVED&&Xtt(s,t,n,e.x,e.y,e.level),s.terrainState===Ar.TRANSFORMED&&(Ktt(s,t.context,n,e.x,e.y,e.level,o),s.updateExaggeration(e,t,r)),s.terrainState>=Ar.RECEIVED&&s.waterMaskTexture===void 0&&n.hasWaterMask)if(s.terrainData.waterMask!==void 0)Ztt(t.context,s);else{let l=s._findAncestorTileWithTerrainData(e);u(l)&&u(l.data.waterMaskTexture)&&(s.waterMaskTexture=l.data.waterMaskTexture,++s.waterMaskTexture.referenceCount,s._computeWaterMaskTranslationAndScale(e,l,s.waterMaskTranslationAndScale))}}function jtt(e,t,n,i,r,o,s){let a=t.parent;if(!a){t.state=Us.FAILED;return}let c=a.data.terrainData,l=a.x,f=a.y,d=a.level;if(!u(c))return;let p=c.upsample(i.tilingScheme,l,f,d,r,o,s);u(p)&&(e.terrainState=Ar.RECEIVING,Promise.resolve(p).then(function(g){e.terrainData=g,e.terrainState=Ar.RECEIVED}).catch(function(){e.terrainState=Ar.FAILED}))}function qtt(e,t,n,i,r){function o(c){e.terrainData=c,e.terrainState=Ar.RECEIVED,e.request=void 0}function s(c){if(e.request.state===ti.CANCELLED){e.terrainData=void 0,e.terrainState=Ar.UNLOADED,e.request=void 0;return}e.terrainState=Ar.FAILED,e.request=void 0;let l=`Failed to obtain terrain tile X: ${n} Y: ${i} Level: ${r}. Error message: "${c}"`;t._requestError=Ai.reportError(t._requestError,t,t.errorEvent,l,n,i,r),t._requestError.retry&&a()}function a(){let c=new jr({throttle:!1,throttleByServer:!0,type:es.TERRAIN});e.request=c;let l=t.requestTileGeometry(n,i,r,c);u(l)?(e.terrainState=Ar.RECEIVING,Promise.resolve(l).then(function(f){o(f)}).catch(function(f){s(f)})):(e.terrainState=Ar.UNLOADED,e.request=void 0)}a()}var Ytt={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0,throttle:!0};function Xtt(e,t,n,i,r,o){let s=n.tilingScheme,a=Ytt;a.tilingScheme=s,a.x=i,a.y=r,a.level=o,a.exaggeration=t.terrainExaggeration,a.exaggerationRelativeHeight=t.terrainExaggerationRelativeHeight,a.throttle=!0;let l=e.terrainData.createMesh(a);u(l)&&(e.terrainState=Ar.TRANSFORMING,Promise.resolve(l).then(function(f){e.mesh=f,e.terrainState=Ar.TRANSFORMED}).catch(function(){e.terrainState=Ar.FAILED}))}$r._createVertexArrayForMesh=function(e,t){let n=t.vertices,i=ht.createVertexBuffer({context:e,typedArray:n,usage:Fe.STATIC_DRAW}),r=t.encoding.getAttributes(i),o=t.indices.indexBuffers||{},s=o[e.id];if(!u(s)||s.isDestroyed()){let a=t.indices;s=ht.createIndexBuffer({context:e,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:Ue.fromSizeInBytes(a.BYTES_PER_ELEMENT)}),s.vertexArrayDestroyable=!1,s.referenceCount=1,o[e.id]=s,t.indices.indexBuffers=o}else++s.referenceCount;return new oi({context:e,attributes:r,indexBuffer:s})};$r._freeVertexArray=function(e){if(u(e)){let t=e.indexBuffer;e.isDestroyed()||e.destroy(),u(t)&&!t.isDestroyed()&&u(t.referenceCount)&&(--t.referenceCount,t.referenceCount===0&&t.destroy())}};function Ktt(e,t,n,i,r,o,s){e.vertexArray=$r._createVertexArrayForMesh(t,e.mesh),e.terrainState=Ar.READY,e.fill=e.fill&&e.fill.destroy(s)}function Jtt(e){let t=e.cache.tile_waterMaskData;if(!u(t)){let n=Rt.create({context:e,pixelFormat:at.LUMINANCE,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});n.referenceCount=1;let i=new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:sn.LINEAR,magnificationFilter:Ti.LINEAR});t={allWaterTexture:n,sampler:i,destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function Ztt(e,t){let n=t.terrainData.waterMask,i=Jtt(e),r,o=n.length;if(o===1)if(n[0]!==0)r=i.allWaterTexture;else return;else{let s=Math.sqrt(o);r=Rt.create({context:e,pixelFormat:at.LUMINANCE,pixelDatatype:Ke.UNSIGNED_BYTE,source:{width:s,height:s,arrayBufferView:n},sampler:i.sampler,flipY:!1}),r.referenceCount=0}++r.referenceCount,t.waterMaskTexture=r,se.fromElements(0,0,1,1,t.waterMaskTranslationAndScale)}$r.prototype._findAncestorTileWithTerrainData=function(e){let t=e.parent;for(;u(t)&&(!u(t.data)||!u(t.data.terrainData)||t.data.terrainData.wasCreatedByUpsampling());)t=t.parent;return t};$r.prototype._computeWaterMaskTranslationAndScale=function(e,t,n){let i=t.rectangle,r=e.rectangle,o=r.width,s=r.height,a=o/i.width,c=s/i.height;return n.x=a*(r.west-i.west)/o,n.y=c*(r.south-i.south)/s,n.z=a,n.w=c,n};var kf=$r;function Gy(e){if(e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,re.WGS84),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,1),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1),this._projection=new Oi(this._ellipsoid),u(e.rectangleSouthwestInMeters)&&u(e.rectangleNortheastInMeters))this._rectangleSouthwestInMeters=e.rectangleSouthwestInMeters,this._rectangleNortheastInMeters=e.rectangleNortheastInMeters;else{let i=this._ellipsoid.maximumRadius*Math.PI;this._rectangleSouthwestInMeters=new H(-i,-i),this._rectangleNortheastInMeters=new H(i,i)}let t=this._projection.unproject(this._rectangleSouthwestInMeters),n=this._projection.unproject(this._rectangleNortheastInMeters);this._rectangle=new le(t.longitude,t.latitude,n.longitude,n.latitude)}Object.defineProperties(Gy.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});Gy.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};Gy.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};Gy.prototype.rectangleToNativeRectangle=function(e,t){let n=this._projection,i=n.project(le.southwest(e)),r=n.project(le.northeast(e));return u(t)?(t.west=i.x,t.south=i.y,t.east=r.x,t.north=r.y,t):new le(i.x,i.y,r.x,r.y)};Gy.prototype.tileXYToNativeRectangle=function(e,t,n,i){let r=this.getNumberOfXTilesAtLevel(n),o=this.getNumberOfYTilesAtLevel(n),s=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/r,a=this._rectangleSouthwestInMeters.x+e*s,c=this._rectangleSouthwestInMeters.x+(e+1)*s,l=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/o,f=this._rectangleNortheastInMeters.y-t*l,d=this._rectangleNortheastInMeters.y-(t+1)*l;return u(i)?(i.west=a,i.south=d,i.east=c,i.north=f,i):new le(a,d,c,f)};Gy.prototype.tileXYToRectangle=function(e,t,n,i){let r=this.tileXYToNativeRectangle(e,t,n,i),o=this._projection,s=o.unproject(new H(r.west,r.south)),a=o.unproject(new H(r.east,r.north));return r.west=s.longitude,r.south=s.latitude,r.east=a.longitude,r.north=a.latitude,r};Gy.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!le.contains(i,e))return;let r=this.getNumberOfXTilesAtLevel(t),o=this.getNumberOfYTilesAtLevel(t),a=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/r,l=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/o,d=this._projection.project(e),p=d.x-this._rectangleSouthwestInMeters.x,g=this._rectangleNortheastInMeters.y-d.y,m=p/a|0;m>=r&&(m=r-1);let A=g/l|0;return A>=o&&(A=o-1),u(n)?(n.x=m,n.y=A,n):new H(m,A)};var Fo=Gy;var kj,ype="AAPKd815e334cb774973b7245e23a67f4d08Js7A8e8xvfBpgnZIzp1jbL3FWJTmx7AKG8wa87OwDcWEu4CxQCNiydpPbGpALiTf",Kb={};Kb.defaultAccessToken=ype;Kb.defaultWorldImageryServer=new ve({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"});Kb.defaultWorldHillshadeServer=new ve({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer"});Kb.defaultWorldOceanServer=new ve({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer"});Kb.getDefaultTokenCredit=function(e){if(e===ype){if(!u(kj)){let t='<b> This application is using a default ArcGIS access token. Please assign <i>Cesium.ArcGisMapService.defaultAccessToken</i> with an API key from your ArcGIS Developer account before using the ArcGIS tile services. You can sign up for a free ArcGIS Developer account at <a href="https://developers.arcgis.com/">https://developers.arcgis.com/</a>.</b>';kj=new wt(t,!0)}return kj}};var Iu=Kb;function zj(e){e=y(e,y.EMPTY_OBJECT),this._pixelsToCheck=e.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;let t=ve.createIfNeeded(e.missingImageUrl),n=this;function i(o){u(o.blob)&&(n._missingImageByteLength=o.blob.size);let s=od(o);if(e.disableCheckIfAllPixelsAreTransparent){let a=!0,c=o.width,l=e.pixelsToCheck;for(let f=0,d=l.length;a&&f<d;++f){let p=l[f],g=p.x*4+p.y*c;s[g+3]>0&&(a=!1)}a&&(s=void 0)}n._missingImagePixels=s,n._isReady=!0}function r(){n._missingImagePixels=void 0,n._isReady=!0}t.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}).then(i).catch(r)}zj.prototype.isReady=function(){return this._isReady};zj.prototype.shouldDiscardImage=function(e){let t=this._pixelsToCheck,n=this._missingImagePixels;if(!u(n)||u(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;let i=od(e),r=e.width;for(let o=0,s=t.length;o<s;++o){let a=t[o],c=a.x*4+a.y*r;for(let l=0;l<4;++l){let f=c+l;if(i[f]!==n[f])return!1}}return!0};var $B=zj;function Hj(){this.name=void 0,this.description=void 0,this.position=void 0,this.data=void 0,this.imageryLayer=void 0}Hj.prototype.configureNameFromProperties=function(e){let t=10,n;for(let i in e)if(e.hasOwnProperty(i)&&e[i]){let r=i.toLowerCase();t>1&&r==="name"?(t=1,n=i):t>2&&r==="title"?(t=2,n=i):t>3&&/name/i.test(i)?(t=3,n=i):t>4&&/title/i.test(i)&&(t=4,n=i)}u(n)&&(this.name=e[n])};Hj.prototype.configureDescriptionFromProperties=function(e){function t(n){let i='<table class="cesium-infoBox-defaultTable">';for(let r in n)if(n.hasOwnProperty(r)){let o=n[r];u(o)&&(typeof o=="object"?i+=`<tr><td>${r}</td><td>${t(o)}</td></tr>`:i+=`<tr><td>${r}</td><td>${o}</td></tr>`)}return i+="</table>",i}this.description=t(e)};var dh=Hj;function Jb(){fe.throwInstantiationError()}Object.defineProperties(Jb.prototype,{ready:{get:fe.throwInstantiationError},readyPromise:{get:fe.throwInstantiationError},rectangle:{get:fe.throwInstantiationError},tileWidth:{get:fe.throwInstantiationError},tileHeight:{get:fe.throwInstantiationError},maximumLevel:{get:fe.throwInstantiationError},minimumLevel:{get:fe.throwInstantiationError},tilingScheme:{get:fe.throwInstantiationError},tileDiscardPolicy:{get:fe.throwInstantiationError},errorEvent:{get:fe.throwInstantiationError},credit:{get:fe.throwInstantiationError},proxy:{get:fe.throwInstantiationError},hasAlphaChannel:{get:fe.throwInstantiationError},defaultAlpha:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultNightAlpha:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultDayAlpha:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultBrightness:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultContrast:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultHue:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultSaturation:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultGamma:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultMinificationFilter:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultMagnificationFilter:{get:fe.throwInstantiationError,set:fe.throwInstantiationError}});Jb.prototype.getTileCredits=function(e,t,n){fe.throwInstantiationError()};Jb.prototype.requestImage=function(e,t,n,i){fe.throwInstantiationError()};Jb.prototype.pickFeatures=function(e,t,n,i,r){fe.throwInstantiationError()};var Qtt=/\.ktx2$/i;Jb.loadImage=function(e,t){let n=ve.createIfNeeded(t);return Qtt.test(n.url)?cl(n):u(e)&&u(e.tileDiscardPolicy)?n.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):n.fetchImage({preferImageBitmap:!0,flipY:!0})};var Zc=Jb;var $tt={SATELLITE:1,OCEANS:2,HILLSHADE:3},hh=Object.freeze($tt);function Gj(e){this.useTiles=y(e.usePreCachedTilesIfAvailable,!0);let t=e.ellipsoid;this.tilingScheme=y(e.tilingScheme,new Wi({ellipsoid:t})),this.rectangle=y(e.rectangle,this.tilingScheme.rectangle),this.ellipsoid=t;let n=e.credit;typeof n=="string"&&(n=new wt(n)),this.credit=n,this.tileCredits=void 0,this.tileDiscardPolicy=e.tileDiscardPolicy,this.tileWidth=y(e.tileWidth,256),this.tileHeight=y(e.tileHeight,256),this.maximumLevel=e.maximumLevel}Gj.prototype.build=function(e){e._useTiles=this.useTiles,e._tilingScheme=this.tilingScheme,e._rectangle=this.rectangle,e._credit=this.credit,e._tileCredits=this.tileCredits,e._tileDiscardPolicy=this.tileDiscardPolicy,e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,this.useTiles&&!u(this.tileDiscardPolicy)&&(e._tileDiscardPolicy=new $B({missingImageUrl:xpe(e,0,0,this.maximumLevel).url,pixelsToCheck:[new H(0,0),new H(200,20),new H(20,200),new H(80,110),new H(160,130)],disableCheckIfAllPixelsAreTransparent:!0})),e._ready=!0};function ent(e,t){let n=e.tileInfo;if(!u(n))t.useTiles=!1;else{if(t.tileWidth=n.rows,t.tileHeight=n.cols,n.spatialReference.wkid===102100||n.spatialReference.wkid===102113)t.tilingScheme=new Fo({ellipsoid:t.ellipsoid});else if(e.tileInfo.spatialReference.wkid===4326)t.tilingScheme=new Wi({ellipsoid:t.ellipsoid});else{let i=`Tile spatial reference WKID ${e.tileInfo.spatialReference.wkid} is not supported.`;throw new de(i)}if(t.maximumLevel=e.tileInfo.lods.length-1,u(e.fullExtent)){if(u(e.fullExtent.spatialReference)&&u(e.fullExtent.spatialReference.wkid))if(e.fullExtent.spatialReference.wkid===102100||e.fullExtent.spatialReference.wkid===102113){let i=new Oi,r=e.fullExtent,o=i.unproject(new h(Math.max(r.xmin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.max(r.ymin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0)),s=i.unproject(new h(Math.min(r.xmax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.min(r.ymax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0));t.rectangle=new le(o.longitude,o.latitude,s.longitude,s.latitude)}else if(e.fullExtent.spatialReference.wkid===4326)t.rectangle=le.fromDegrees(e.fullExtent.xmin,e.fullExtent.ymin,e.fullExtent.xmax,e.fullExtent.ymax);else{let i=`fullExtent.spatialReference WKID ${e.fullExtent.spatialReference.wkid} is not supported.`;throw new de(i)}}else t.rectangle=t.tilingScheme.rectangle;t.useTiles=!0}u(e.copyrightText)&&e.copyrightText.length>0&&(u(t.credit)?t.tileCredits=[new wt(e.copyrightText)]:t.credit=new wt(e.copyrightText))}function tnt(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw u(t)&&u(t.message)&&(i+=`: ${t.message}`),Ai.reportError(void 0,n,u(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new de(i)}async function Ape(e,t,n){let i=e.getDerivedResource({queryParameters:{f:"json"}});try{let r=await i.fetchJson();ent(r,t)}catch(r){tnt(e,r,n)}}function wm(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new Wi({ellipsoid:e.ellipsoid})),this._useTiles=y(e.usePreCachedTilesIfAvailable,!0),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._layers=e.layers,this._credit=e.credit,this._tileCredits=void 0;let t=e.credit;if(typeof t=="string"&&(t=new wt(t)),this.enablePickFeatures=y(e.enablePickFeatures,!0),this._errorEvent=new ge,this._ready=!1,u(e.url)){$("ArcGisMapServerImageryProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGisMapServerImageryProvider.fromUrl instead.");let n=ve.createIfNeeded(e.url);n.appendForwardSlash(),this._tileDiscardPolicy=e.tileDiscardPolicy,u(e.token)&&n.setQueryParameters({token:e.token}),this._resource=n;let i=new Gj(e);i.useTiles?this._readyPromise=Ape(n,i,this).then(()=>(i.build(this),!0)):(i.build(this),this._readyPromise=Promise.resolve(!0))}}wm.fromBasemapType=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n,i,r;switch(e){case hh.SATELLITE:{n=y(t.token,Iu.defaultAccessToken),i=ve.createIfNeeded(y(t.url,Iu.defaultWorldImageryServer)),i.appendForwardSlash();let o=Iu.getDefaultTokenCredit(n);u(o)&&(r=wt.clone(o))}break;case hh.OCEANS:{n=y(t.token,Iu.defaultAccessToken),i=ve.createIfNeeded(y(t.url,Iu.defaultWorldOceanServer)),i.appendForwardSlash();let o=Iu.getDefaultTokenCredit(n);u(o)&&(r=wt.clone(o))}break;case hh.HILLSHADE:{n=y(t.token,Iu.defaultAccessToken),i=ve.createIfNeeded(y(t.url,Iu.defaultWorldHillshadeServer)),i.appendForwardSlash();let o=Iu.getDefaultTokenCredit(n);u(o)&&(r=wt.clone(o))}break;default:}return wm.fromUrl(i,{...t,token:n,credit:r,usePreCachedTilesIfAvailable:!0})};function xpe(e,t,n,i,r){let o;if(e._useTiles)o=e._resource.getDerivedResource({url:`tile/${i}/${n}/${t}`,request:r});else{let s=e._tilingScheme.tileXYToNativeRectangle(t,n,i),c={bbox:`${s.west},${s.south},${s.east},${s.north}`,size:`${e._tileWidth},${e._tileHeight}`,format:"png32",transparent:!0,f:"image"};e._tilingScheme.projection instanceof Ii?(c.bboxSR=4326,c.imageSR=4326):(c.bboxSR=3857,c.imageSR=3857),e.layers&&(c.layers=`show:${e.layers}`),o=e._resource.getDerivedResource({url:"export",request:r,queryParameters:c})}return o}Object.defineProperties(wm.prototype,{url:{get:function(){return this._resource._url}},token:{get:function(){return this._resource.queryParameters.token}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("ArcGisMapServerImageryProvider.ready","ArcGisMapServerImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGisMapServerImageryProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("ArcGisMapServerImageryProvider.readyPromise","ArcGisMapServerImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGisMapServerImageryProvider.fromUrl instead."),this._readyPromise}},credit:{get:function(){return this._credit}},usingPrecachedTiles:{get:function(){return this._useTiles}},hasAlphaChannel:{get:function(){return!0}},layers:{get:function(){return this._layers}},defaultAlpha:{get:function(){return $("ArcGisMapServerImageryProvider.defaultAlpha","ArcGisMapServerImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("ArcGisMapServerImageryProvider.defaultAlpha","ArcGisMapServerImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("ArcGisMapServerImageryProvider.defaultNightAlpha","ArcGisMapServerImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("ArcGisMapServerImageryProvider.defaultNightAlpha","ArcGisMapServerImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("ArcGisMapServerImageryProvider.defaultDayAlpha","ArcGisMapServerImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("ArcGisMapServerImageryProvider.defaultDayAlpha","ArcGisMapServerImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("ArcGisMapServerImageryProvider.defaultBrightness","ArcGisMapServerImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("ArcGisMapServerImageryProvider.defaultBrightness","ArcGisMapServerImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("ArcGisMapServerImageryProvider.defaultContrast","ArcGisMapServerImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("ArcGisMapServerImageryProvider.defaultContrast","ArcGisMapServerImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("ArcGisMapServerImageryProvider.defaultHue","ArcGisMapServerImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("ArcGisMapServerImageryProvider.defaultHue","ArcGisMapServerImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("ArcGisMapServerImageryProvider.defaultSaturation","ArcGisMapServerImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("ArcGisMapServerImageryProvider.defaultSaturation","ArcGisMapServerImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("ArcGisMapServerImageryProvider.defaultGamma","ArcGisMapServerImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("ArcGisMapServerImageryProvider.defaultGamma","ArcGisMapServerImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("ArcGisMapServerImageryProvider.defaultMinificationFilter","ArcGisMapServerImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("ArcGisMapServerImageryProvider.defaultMinificationFilter","ArcGisMapServerImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("ArcGisMapServerImageryProvider.defaultMagnificationFilter","ArcGisMapServerImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("ArcGisMapServerImageryProvider.defaultMagnificationFilter","ArcGisMapServerImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});wm.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ve.createIfNeeded(e);n.appendForwardSlash(),u(t.token)&&n.setQueryParameters({token:t.token});let i=new wm(t);i._resource=n;let r=new Gj(t);return y(t.usePreCachedTilesIfAvailable,!0)&&await Ape(n,r),r.build(i),i._readyPromise=Promise.resolve(!0),i};wm.prototype.getTileCredits=function(e,t,n){return this._tileCredits};wm.prototype.requestImage=function(e,t,n,i){return Zc.loadImage(this,xpe(this,e,t,n,i))};wm.prototype.pickFeatures=function(e,t,n,i,r){if(!this.enablePickFeatures)return;let o=this._tilingScheme.tileXYToNativeRectangle(e,t,n),s,a,c;if(this._tilingScheme.projection instanceof Ii)s=P.toDegrees(i),a=P.toDegrees(r),c="4326";else{let p=this._tilingScheme.projection.project(new me(i,r,0));s=p.x,a=p.y,c="3857"}let l="visible";u(this._layers)&&(l+=`:${this._layers}`);let f={f:"json",tolerance:2,geometryType:"esriGeometryPoint",geometry:`${s},${a}`,mapExtent:`${o.west},${o.south},${o.east},${o.north}`,imageDisplay:`${this._tileWidth},${this._tileHeight},96`,sr:c,layers:l};return this._resource.getDerivedResource({url:"identify",queryParameters:f}).fetchJson().then(function(p){let g=[],m=p.results;if(!u(m))return g;for(let A=0;A<m.length;++A){let x=m[A],C=new dh;if(C.data=x,C.name=x.value,C.properties=x.attributes,C.configureDescriptionFromProperties(x.attributes),x.geometryType==="esriGeometryPoint"&&x.geometry){let T=x.geometry.spatialReference&&x.geometry.spatialReference.wkid?x.geometry.spatialReference.wkid:4326;if(T===4326||T===4283)C.position=me.fromDegrees(x.geometry.x,x.geometry.y,x.geometry.z);else if(T===102100||T===900913||T===3857){let E=new Oi;C.position=E.unproject(new h(x.geometry.x,x.geometry.y,x.geometry.z))}}g.push(C)}return g})};wm._metadataCache={};var Dm=wm;var nnt={AERIAL:"Aerial",AERIAL_WITH_LABELS:"AerialWithLabels",AERIAL_WITH_LABELS_ON_DEMAND:"AerialWithLabelsOnDemand",ROAD:"Road",ROAD_ON_DEMAND:"RoadOnDemand",CANVAS_DARK:"CanvasDark",CANVAS_LIGHT:"CanvasLight",CANVAS_GRAY:"CanvasGray",ORDNANCE_SURVEY:"OrdnanceSurvey",COLLINS_BART:"CollinsBart"},Zb=Object.freeze(nnt);function eL(e){}eL.prototype.isReady=function(){return!0};eL.prototype.shouldDiscardImage=function(e){return eL.EMPTY_IMAGE===e};var q4;Object.defineProperties(eL,{EMPTY_IMAGE:{get:function(){return u(q4)||(q4=new Image,q4.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),q4}}});var Qb=eL;function Wj(e){this.tileWidth=void 0,this.tileHeight=void 0,this.maximumLevel=void 0,this.imageUrlSubdomains=void 0,this.imageUrlTemplate=void 0,this.attributionList=void 0}Wj.prototype.build=function(e){e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,e._imageUrlSubdomains=this.imageUrlSubdomains,e._imageUrlTemplate=this.imageUrlTemplate;let t=e._attributionList=this.attributionList;t||(t=[]),e._attributionList=t;for(let n=0,i=t.length;n<i;++n){let r=t[n];if(r.credit instanceof wt)break;r.credit=new wt(r.attribution);let o=r.coverageAreas;for(let s=0,a=r.coverageAreas.length;s<a;++s){let c=o[s],l=c.bbox;c.bbox=new le(P.toRadians(l[1]),P.toRadians(l[0]),P.toRadians(l[3]),P.toRadians(l[2]))}}e._ready=!0};function int(e,t){if(e.resourceSets.length!==1)throw new de("metadata does not specify one resource in resourceSets");let n=e.resourceSets[0].resources[0];t.tileWidth=n.imageWidth,t.tileHeight=n.imageHeight,t.maximumLevel=n.zoomMax-1,t.imageUrlSubdomains=n.imageUrlSubdomains,t.imageUrlTemplate=n.imageUrl,t.attributionList=n.imageryProviders}function rnt(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw u(t)&&u(t.message)&&(i+=`: ${t.message}`),Ai.reportError(void 0,n,u(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new de(i)}async function Cpe(e,t,n){let i=e.url,r=_s._metadataCache[i];u(r)||(r=e.fetchJsonp("jsonp"),_s._metadataCache[i]=r);try{let o=await r;return int(o,t)}catch(o){rnt(e,o,n)}}function _s(e){if(e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._mapStyle=y(e.mapStyle,Zb.AERIAL),this._culture=y(e.culture,""),this._key=e.key,this._tileDiscardPolicy=e.tileDiscardPolicy,u(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new Qb),this._proxy=e.proxy,this._credit=new wt(`<a href="https://www.microsoft.com/en-us/maps/product/enduserterms"><img src="${_s.logoUrl}" title="Bing Imagery"/></a>`),this._tilingScheme=new Fo({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:e.ellipsoid}),this._tileWidth=void 0,this._tileHeight=void 0,this._maximumLevel=void 0,this._imageUrlTemplate=void 0,this._imageUrlSubdomains=void 0,this._attributionList=void 0,this._errorEvent=new ge,this._ready=!1,u(e.url)){$("BingMapsImageryProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use BingMapsImageryProvider.fromUrl instead.");let t=e.tileProtocol;u(t)?t.length>0&&t[t.length-1]===":"&&(t=t.substr(0,t.length-1)):t=document.location.protocol==="http:"?"http":"https";let n=ve.createIfNeeded(e.url);this._resource=n,n.appendForwardSlash();let i=n.getDerivedResource({url:`REST/v1/Imagery/Metadata/${this._mapStyle}`,queryParameters:{incl:"ImageryProviders",key:e.key,uriScheme:t}}),r=new Wj(e);this._readyPromise=Cpe(i,r,this).then(()=>(r.build(this),!0))}}Object.defineProperties(_s.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},key:{get:function(){return this._key}},mapStyle:{get:function(){return this._mapStyle}},culture:{get:function(){return this._culture}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("BingMapsImageryProvider.ready","BingMapsImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use BingMapsImageryProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("BingMapsImageryProvider.readyPromise","BingMapsImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use BingMapsImageryProvider.fromUrl instead."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}},defaultAlpha:{get:function(){return $("BingMapsImageryProvider.defaultAlpha","BingMapsImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("BingMapsImageryProvider.defaultAlpha","BingMapsImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("BingMapsImageryProvider.defaultNightAlpha","BingMapsImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("BingMapsImageryProvider.defaultNightAlpha","BingMapsImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("BingMapsImageryProvider.defaultDayAlpha","BingMapsImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("BingMapsImageryProvider.defaultDayAlpha","BingMapsImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("BingMapsImageryProvider.defaultBrightness","BingMapsImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("BingMapsImageryProvider.defaultBrightness","BingMapsImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("BingMapsImageryProvider.defaultContrast","BingMapsImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("BingMapsImageryProvider.defaultContrast","BingMapsImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("BingMapsImageryProvider.defaultHue","BingMapsImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("BingMapsImageryProvider.defaultHue","BingMapsImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("BingMapsImageryProvider.defaultSaturation","BingMapsImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("BingMapsImageryProvider.defaultSaturation","BingMapsImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("BingMapsImageryProvider.defaultGamma","BingMapsImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("BingMapsImageryProvider.defaultGamma","BingMapsImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("BingMapsImageryProvider.defaultMinificationFilter","BingMapsImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("BingMapsImageryProvider.defaultMinificationFilter","BingMapsImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("BingMapsImageryProvider.defaultMagnificationFilter","BingMapsImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("BingMapsImageryProvider.defaultMagnificationFilter","BingMapsImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});_s.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.tileProtocol;u(n)?n.length>0&&n[n.length-1]===":"&&(n=n.substr(0,n.length-1)):n=document.location.protocol==="http:"?"http":"https";let i=y(t.mapStyle,Zb.AERIAL),r=ve.createIfNeeded(e);r.appendForwardSlash();let o=r.getDerivedResource({url:`REST/v1/Imagery/Metadata/${i}`,queryParameters:{incl:"ImageryProviders",key:t.key,uriScheme:n}}),s=new _s(t);s._resource=r;let a=new Wj(t);return await Cpe(o,a),a.build(s),s._readyPromise=Promise.resolve(!0),s};var ont=new le;_s.prototype.getTileCredits=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(e,t,n,ont);return cnt(this._attributionList,n,i)};_s.prototype.requestImage=function(e,t,n,i){let r=Zc.loadImage(this,snt(this,e,t,n,i));if(u(r))return r.catch(function(o){return u(o.blob)&&o.blob.size===0?Qb.EMPTY_IMAGE:Promise.reject(o)})};_s.prototype.pickFeatures=function(e,t,n,i,r){};_s.tileXYToQuadKey=function(e,t,n){let i="";for(let r=n;r>=0;--r){let o=1<<r,s=0;e&o&&(s|=1),t&o&&(s|=2),i+=s}return i};_s.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let r=i;r>=0;--r){let o=1<<r,s=+e[i-r];s&1&&(t|=o),s&2&&(n|=o)}return{x:t,y:n,level:i}};_s._logoUrl=void 0;Object.defineProperties(_s,{logoUrl:{get:function(){return u(_s._logoUrl)||(_s._logoUrl=$t("Assets/Images/bing_maps_credit.png")),_s._logoUrl},set:function(e){_s._logoUrl=e}}});function snt(e,t,n,i,r){let o=e._imageUrlTemplate,s=e._imageUrlSubdomains,a=(t+n+i)%s.length;return e._resource.getDerivedResource({url:o,request:r,templateValues:{quadkey:_s.tileXYToQuadKey(t,n,i),subdomain:s[a],culture:e._culture},queryParameters:{n:"z"}})}var ant=new le;function cnt(e,t,n){++t;let i=[];for(let r=0,o=e.length;r<o;++r){let s=e[r],a=s.coverageAreas,c=!1;for(let l=0,f=s.coverageAreas.length;!c&&l<f;++l){let d=a[l];if(t>=d.zoomMin&&t<=d.zoomMax){let p=le.intersection(n,d.bbox,ant);u(p)&&(c=!0)}}c&&i.push(s.credit)}return i}_s._metadataCache={};var $b=_s;var Tpe=/{[^}]+}/g,Yj={x:fnt,y:hnt,z:_nt,s:gnt,reverseX:dnt,reverseY:mnt,reverseZ:pnt,westDegrees:ynt,southDegrees:Ant,eastDegrees:xnt,northDegrees:Cnt,westProjected:Tnt,southProjected:Ent,eastProjected:bnt,northProjected:Snt,width:vnt,height:wnt},Epe=_t(Yj,{i:Dnt,j:Int,reverseI:Pnt,reverseJ:Ont,longitudeDegrees:Rnt,latitudeDegrees:Bnt,longitudeProjected:Lnt,latitudeProjected:Nnt,format:Unt});function Jx(e){if(e=y(e,y.EMPTY_OBJECT),this._errorEvent=new ge,u(e.then)){this._reinitialize(e);return}let t=ve.createIfNeeded(e.url),n=ve.createIfNeeded(e.pickFeaturesUrl);this._resource=t,this._urlSchemeZeroPadding=e.urlSchemeZeroPadding,this._getFeatureInfoFormats=e.getFeatureInfoFormats,this._pickFeaturesResource=n;let i=e.subdomains;Array.isArray(i)?i=i.slice():u(i)&&i.length>0?i=i.split(""):i=["a","b","c"],this._subdomains=i,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new Fo({ellipsoid:e.ellipsoid})),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._rectangle=le.intersection(this._rectangle,this._tilingScheme.rectangle),this._tileDiscardPolicy=e.tileDiscardPolicy;let r=e.credit;typeof r=="string"&&(r=new wt(r)),this._credit=r,this._hasAlphaChannel=y(e.hasAlphaChannel,!0);let o=e.customTags,s=_t(Yj,o),a=_t(Epe,o);this._tags=s,this._pickFeaturesTags=a,this._readyPromise=Promise.resolve(!0),this._ready=!0,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this.enablePickFeatures=y(e.enablePickFeatures,!0)}Object.defineProperties(Jx.prototype,{url:{get:function(){return this._resource.url}},urlSchemeZeroPadding:{get:function(){return this._urlSchemeZeroPadding}},pickFeaturesUrl:{get:function(){return this._pickFeaturesResource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("UrlTemplateImageryProvider.ready","UrlTemplateImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._ready&&u(this._resource)}},readyPromise:{get:function(){return $("UrlTemplateImageryProvider.readyPromise","UrlTemplateImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return this._hasAlphaChannel}},defaultAlpha:{get:function(){return $("UrlTemplateImageryProvider.defaultAlpha","UrlTemplateImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("UrlTemplateImageryProvider.defaultAlpha","UrlTemplateImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("UrlTemplateImageryProvider.defaultNightAlpha","UrlTemplateImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("UrlTemplateImageryProvider.defaultNightAlpha","UrlTemplateImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("UrlTemplateImageryProvider.defaultDayAlpha","UrlTemplateImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("UrlTemplateImageryProvider.defaultDayAlpha","UrlTemplateImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("UrlTemplateImageryProvider.defaultBrightness","UrlTemplateImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("UrlTemplateImageryProvider.defaultBrightness","UrlTemplateImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("UrlTemplateImageryProvider.defaultContrast","UrlTemplateImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("UrlTemplateImageryProvider.defaultContrast","UrlTemplateImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("UrlTemplateImageryProvider.defaultHue","UrlTemplateImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("UrlTemplateImageryProvider.defaultHue","UrlTemplateImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("UrlTemplateImageryProvider.defaultSaturation","UrlTemplateImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("UrlTemplateImageryProvider.defaultSaturation","UrlTemplateImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("UrlTemplateImageryProvider.defaultGamma","UrlTemplateImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("UrlTemplateImageryProvider.defaultGamma","UrlTemplateImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("UrlTemplateImageryProvider.defaultMinificationFilter","UrlTemplateImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("UrlTemplateImageryProvider.defaultMinificationFilter","UrlTemplateImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("UrlTemplateImageryProvider.defaultMagnificationFilter","UrlTemplateImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("UrlTemplateImageryProvider.defaultMagnificationFilter","UrlTemplateImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});Jx.prototype.reinitialize=function(e){return $("UrlTemplateImageryProvider.reinitialize","UrlTemplateImageryProvider.reinitialize was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._reinitialize(e)};Jx.prototype._reinitialize=function(e){let t=this;t._readyPromise=Promise.resolve(e).then(function(n){let i=n.customTags,r=_t(Yj,i),o=_t(Epe,i),s=ve.createIfNeeded(n.url),a=ve.createIfNeeded(n.pickFeaturesUrl);t.enablePickFeatures=y(n.enablePickFeatures,t.enablePickFeatures),t._urlSchemeZeroPadding=y(n.urlSchemeZeroPadding,t.urlSchemeZeroPadding),t._tileDiscardPolicy=n.tileDiscardPolicy,t._getFeatureInfoFormats=n.getFeatureInfoFormats,t._subdomains=n.subdomains,Array.isArray(t._subdomains)?t._subdomains=t._subdomains.slice():u(t._subdomains)&&t._subdomains.length>0?t._subdomains=t._subdomains.split(""):t._subdomains=["a","b","c"],t._tileWidth=y(n.tileWidth,256),t._tileHeight=y(n.tileHeight,256),t._minimumLevel=y(n.minimumLevel,0),t._maximumLevel=n.maximumLevel,t._tilingScheme=y(n.tilingScheme,new Fo({ellipsoid:n.ellipsoid})),t._rectangle=y(n.rectangle,t._tilingScheme.rectangle),t._rectangle=le.intersection(t._rectangle,t._tilingScheme.rectangle),t._hasAlphaChannel=y(n.hasAlphaChannel,!0);let c=n.credit;return typeof c=="string"&&(c=new wt(c)),t._credit=c,t._resource=s,t._tags=r,t._pickFeaturesResource=a,t._pickFeaturesTags=o,t._ready=!0,!0})};Jx.prototype.getTileCredits=function(e,t,n){};Jx.prototype.requestImage=function(e,t,n,i){return Zc.loadImage(this,lnt(this,e,t,n,i))};Jx.prototype.pickFeatures=function(e,t,n,i,r){if(!this.enablePickFeatures||!u(this._pickFeaturesResource)||this._getFeatureInfoFormats.length===0)return;let o=0,s=this;function a(l,f){return l.callback(f)}function c(){if(o>=s._getFeatureInfoFormats.length)return Promise.resolve([]);let l=s._getFeatureInfoFormats[o],f=unt(s,e,t,n,i,r,l.format);return++o,l.type==="json"?f.fetchJson().then(l.callback).catch(c):l.type==="xml"?f.fetchXML().then(l.callback).catch(c):l.type==="text"||l.type==="html"?f.fetchText().then(l.callback).catch(c):f.fetch({responseType:l.format}).then(a.bind(void 0,l)).catch(c)}return c()};var Y4=!1,Pu=new le,X4=!1,tL=new le;function lnt(e,t,n,i,r){Y4=!1,X4=!1;let o=e._resource,s=o.getUrlComponent(!0),a=e._tags,c={},l=s.match(Tpe);return u(l)&&l.forEach(function(f){let d=f.substring(1,f.length-1);u(a[d])&&(c[d]=a[d](e,t,n,i))}),o.getDerivedResource({request:r,templateValues:c})}var jj=!1,tS=new H,qj=!1;function unt(e,t,n,i,r,o,s){Y4=!1,X4=!1,jj=!1,qj=!1;let a=e._pickFeaturesResource,c=a.getUrlComponent(!0),l=e._pickFeaturesTags,f={},d=c.match(Tpe);return u(d)&&d.forEach(function(p){let g=p.substring(1,p.length-1);u(l[g])&&(f[g]=l[g](e,t,n,i,r,o,s))}),a.getDerivedResource({templateValues:f})}function nS(e,t,n){if(e&&e.urlSchemeZeroPadding&&e.urlSchemeZeroPadding.hasOwnProperty(t)){let i=e.urlSchemeZeroPadding[t];if(typeof i=="string"){let r=i.length;r>1&&(n=n.length>=r?n:new Array(r-n.toString().length+1).join("0")+n)}}return n}function fnt(e,t,n,i){return nS(e,"{x}",t)}function dnt(e,t,n,i){let r=e.tilingScheme.getNumberOfXTilesAtLevel(i)-t-1;return nS(e,"{reverseX}",r)}function hnt(e,t,n,i){return nS(e,"{y}",n)}function mnt(e,t,n,i){let r=e.tilingScheme.getNumberOfYTilesAtLevel(i)-n-1;return nS(e,"{reverseY}",r)}function pnt(e,t,n,i){let r=e.maximumLevel,o=u(r)&&i<r?r-i-1:i;return nS(e,"{reverseZ}",o)}function _nt(e,t,n,i){return nS(e,"{z}",i)}function gnt(e,t,n,i){let r=(t+n+i)%e._subdomains.length;return e._subdomains[r]}function K4(e,t,n,i){Y4||(e.tilingScheme.tileXYToRectangle(t,n,i,Pu),Pu.west=P.toDegrees(Pu.west),Pu.south=P.toDegrees(Pu.south),Pu.east=P.toDegrees(Pu.east),Pu.north=P.toDegrees(Pu.north),Y4=!0)}function ynt(e,t,n,i){return K4(e,t,n,i),Pu.west}function Ant(e,t,n,i){return K4(e,t,n,i),Pu.south}function xnt(e,t,n,i){return K4(e,t,n,i),Pu.east}function Cnt(e,t,n,i){return K4(e,t,n,i),Pu.north}function J4(e,t,n,i){X4||(e.tilingScheme.tileXYToNativeRectangle(t,n,i,tL),X4=!0)}function Tnt(e,t,n,i){return J4(e,t,n,i),tL.west}function Ent(e,t,n,i){return J4(e,t,n,i),tL.south}function bnt(e,t,n,i){return J4(e,t,n,i),tL.east}function Snt(e,t,n,i){return J4(e,t,n,i),tL.north}function vnt(e,t,n,i){return e.tileWidth}function wnt(e,t,n,i){return e.tileHeight}function Dnt(e,t,n,i,r,o,s){return Z4(e,t,n,i,r,o),tS.x}function Int(e,t,n,i,r,o,s){return Z4(e,t,n,i,r,o),tS.y}function Pnt(e,t,n,i,r,o,s){return Z4(e,t,n,i,r,o),e.tileWidth-tS.x-1}function Ont(e,t,n,i,r,o,s){return Z4(e,t,n,i,r,o),e.tileHeight-tS.y-1}var Mnt=new le,eS=new h;function Z4(e,t,n,i,r,o,s){if(jj)return;Xj(e,t,n,i,r,o);let a=eS,c=e.tilingScheme.tileXYToNativeRectangle(t,n,i,Mnt);tS.x=e.tileWidth*(a.x-c.west)/c.width|0,tS.y=e.tileHeight*(c.north-a.y)/c.height|0,jj=!0}function Rnt(e,t,n,i,r,o,s){return P.toDegrees(r)}function Bnt(e,t,n,i,r,o,s){return P.toDegrees(o)}function Lnt(e,t,n,i,r,o,s){return Xj(e,t,n,i,r,o),eS.x}function Nnt(e,t,n,i,r,o,s){return Xj(e,t,n,i,r,o),eS.y}var Fnt=new me;function Xj(e,t,n,i,r,o,s){if(!qj){if(e.tilingScheme.projection instanceof Ii)eS.x=P.toDegrees(r),eS.y=P.toDegrees(o);else{let a=Fnt;a.longitude=r,a.latitude=o,e.tilingScheme.projection.project(a,eS)}qj=!0}}function Unt(e,t,n,i,r,o,s){return s}var Vs=Jx;function Ou(e){if(e=y(e,y.EMPTY_OBJECT),u(e.url)){$("TileMapServiceImageryProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use TileMapServiceImageryProvider.fromUrl instead."),this._metadataError=void 0,this._ready=!1;let t,n=this,i=Promise.resolve(e.url).then(function(r){return t=ve.createIfNeeded(r),t.appendForwardSlash(),n._tmsResource=t,n._xmlResource=t.getDerivedResource({url:"tilemapresource.xml"}),Ou._requestMetadata(e,n._tmsResource,n._xmlResource,n)}).catch(r=>Promise.reject(r));Vs.call(this,i),this._promise=i}}Ou._requestMetadata=async function(e,t,n,i){try{let r=await n.fetchXML();return Ou._metadataSuccess(r,e,t,n,i)}catch(r){if(r instanceof Rh)return Ou._metadataFailure(e,t);throw r}};Ou.fromUrl=async function(e,t){let n=ve.createIfNeeded(e);n.appendForwardSlash();let i=n,r=n.getDerivedResource({url:"tilemapresource.xml"});t=y(t,y.EMPTY_OBJECT);let o=await Ou._requestMetadata(t,i,r),s=new Ou;return Vs.call(s,o),s};u(Object.create)&&(Ou.prototype=Object.create(Vs.prototype),Ou.prototype.constructor=Ou);function bpe(e,t){return e.west<t.rectangle.west&&(e.west=t.rectangle.west),e.east>t.rectangle.east&&(e.east=t.rectangle.east),e.south<t.rectangle.south&&(e.south=t.rectangle.south),e.north>t.rectangle.north&&(e.north=t.rectangle.north),e}function Spe(e,t,n){let i=e.positionToTileXY(le.southwest(t),n),r=e.positionToTileXY(le.northeast(t),n);return(Math.abs(r.x-i.x)+1)*(Math.abs(r.y-i.y)+1)>4?0:n}Ou._metadataSuccess=function(e,t,n,i,r){let o=/tileformat/i,s=/tileset/i,a=/tilesets/i,c=/boundingbox/i,l,f,d,p=[],g=e.childNodes[0].childNodes;for(let O=0;O<g.length;O++)if(o.test(g.item(O).nodeName))l=g.item(O);else if(a.test(g.item(O).nodeName)){d=g.item(O);let B=g.item(O).childNodes;for(let L=0;L<B.length;L++)s.test(B.item(L).nodeName)&&p.push(B.item(L))}else c.test(g.item(O).nodeName)&&(f=g.item(O));let m;if(!u(d)||!u(f))throw m=`Unable to find expected tilesets or bbox attributes in ${i.url}.`,u(r)&&Ai.reportError(void 0,r,r.errorEvent,m),new de(m);let A=y(t.fileExtension,l.getAttribute("extension")),x=y(t.tileWidth,parseInt(l.getAttribute("width"),10)),C=y(t.tileHeight,parseInt(l.getAttribute("height"),10)),T=y(t.minimumLevel,parseInt(p[0].getAttribute("order"),10)),E=y(t.maximumLevel,parseInt(p[p.length-1].getAttribute("order"),10)),S=d.getAttribute("profile"),v=t.tilingScheme;if(!u(v))if(S==="geodetic"||S==="global-geodetic")v=new Wi({ellipsoid:t.ellipsoid});else if(S==="mercator"||S==="global-mercator")v=new Fo({ellipsoid:t.ellipsoid});else throw m=`${i.url} specifies an unsupported profile attribute, ${S}.`,u(r)&&Ai.reportError(void 0,r,r.errorEvent,m),new de(m);let D=le.clone(t.rectangle);if(!u(D)){let O,B,L,_;y(t.flipXY,!1)?(L=new H(parseFloat(f.getAttribute("miny")),parseFloat(f.getAttribute("minx"))),_=new H(parseFloat(f.getAttribute("maxy")),parseFloat(f.getAttribute("maxx")))):(L=new H(parseFloat(f.getAttribute("minx")),parseFloat(f.getAttribute("miny"))),_=new H(parseFloat(f.getAttribute("maxx")),parseFloat(f.getAttribute("maxy"))));let w=S==="geodetic"||S==="mercator";if(v.projection instanceof Ii||w)O=me.fromDegrees(L.x,L.y),B=me.fromDegrees(_.x,_.y);else{let I=v.projection;O=I.unproject(L),B=I.unproject(_)}D=new le(O.longitude,O.latitude,B.longitude,B.latitude)}return D=bpe(D,v),T=Spe(v,D,T),{url:n.getDerivedResource({url:`{z}/{x}/{reverseY}.${A}`}),tilingScheme:v,rectangle:D,tileWidth:x,tileHeight:C,minimumLevel:T,maximumLevel:E,tileDiscardPolicy:t.tileDiscardPolicy,credit:t.credit}};Ou._metadataFailure=function(e,t){let n=y(e.fileExtension,"png"),i=y(e.tileWidth,256),r=y(e.tileHeight,256),o=e.maximumLevel,s=u(e.tilingScheme)?e.tilingScheme:new Fo({ellipsoid:e.ellipsoid}),a=y(e.rectangle,s.rectangle);a=bpe(a,s);let c=Spe(s,a,e.minimumLevel);return{url:t.getDerivedResource({url:`{z}/{x}/{reverseY}.${n}`}),tilingScheme:s,rectangle:a,tileWidth:i,tileHeight:r,minimumLevel:c,maximumLevel:o,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit}};var Im=Ou;function Kj(e){this.channel=e.channel,this.ellipsoid=e.ellipsoid,this.tilingScheme=void 0,this.version=void 0}Kj.prototype.build=function(e){e._channel=this.channel,e._version=this.version,e._tilingScheme=this.tilingScheme};function Vnt(e,t){let n;try{n=JSON.parse(e)}catch{n=JSON.parse(e.replace(/([\[\{,])[\n\r ]*([A-Za-z0-9]+)[\n\r ]*:/g,'$1"$2":'))}let i;for(let r=0;r<n.layers.length;r++)if(n.layers[r].id===t.channel){i=n.layers[r];break}if(!u(i)){let r=`Could not find layer with channel (id) of ${t.channel}.`;throw new de(r)}if(!u(i.version)){let r=`Could not find a version in channel (id) ${t.channel}.`;throw new de(r)}if(t.version=i.version,u(n.projection)&&n.projection==="flat")t.tilingScheme=new Wi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new le(-Math.PI,-Math.PI,Math.PI,Math.PI),ellipsoid:t.ellipsoid});else if(!u(n.projection)||n.projection==="mercator")t.tilingScheme=new Fo({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:t.ellipsoid});else{let r=`Unsupported projection ${n.projection}.`;throw new de(r)}return!0}function knt(e,t,n){let i=`An error occurred while accessing ${t.url}.`;throw u(e)&&u(e.message)&&(i+=`: ${e.message}`),Ai.reportError(void 0,n,u(n)?n._errorEvent:void 0,i),new de(i)}async function vpe(e,t,n){try{let i=await e.fetchText();Vnt(i,t)}catch(i){knt(i,e,n)}}function Nl(e){if(e=y(e,{}),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1.9,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._channel=e.channel,this._requestType="ImageryMaps",this._credit=new wt(`<a href="http://www.google.com/enterprise/mapsearth/products/earthenterprise.html"><img src="${Nl.logoUrl}" title="Google Imagery"/></a>`),this._tilingScheme=void 0,this._version=void 0,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=e.maximumLevel,this._errorEvent=new ge,u(e.url)||u(e.channel)){$("GoogleEarthEnterpriseMapsProvider.url","GoogleEarthEnterpriseMapsProvider.url and GoogleEarthEnterpriseMapsProvider.channel were deprecated in CesiumJS 1.104. They will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMapsProvider.fromUrl instead.");let t=e.url,n=y(e.path,"/default_map"),i=ve.createIfNeeded(t).getDerivedResource({url:n[0]==="/"?n.substring(1):n});i.appendForwardSlash(),this._resource=i,this._url=t,this._path=n,this._ready=!1;let r=i.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),o=new Kj(e);this._readyPromise=vpe(r,o,this).then(()=>(o.build(this),this._ready=!0,!0))}}Object.defineProperties(Nl.prototype,{url:{get:function(){return this._url}},path:{get:function(){return this._path}},proxy:{get:function(){return this._resource.proxy}},channel:{get:function(){return this._channel}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},version:{get:function(){return this._version}},requestType:{get:function(){return this._requestType}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.ready","GoogleEarthEnterpriseMapsProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMapsProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.readyPromise","GoogleEarthEnterpriseMapsProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMapsProvider.fromUrl instead."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},defaultAlpha:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultAlpha","GoogleEarthEnterpriseMapsProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultAlpha","GoogleEarthEnterpriseMapsProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultNightAlpha","GoogleEarthEnterpriseMapsProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultNightAlpha","GoogleEarthEnterpriseMapsProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultDayAlpha","GoogleEarthEnterpriseMapsProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultDayAlpha","GoogleEarthEnterpriseMapsProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultBrightness","GoogleEarthEnterpriseMapsProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultBrightness","GoogleEarthEnterpriseMapsProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultContrast","GoogleEarthEnterpriseMapsProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultContrast","GoogleEarthEnterpriseMapsProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultHue","GoogleEarthEnterpriseMapsProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultHue","GoogleEarthEnterpriseMapsProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultSaturation","GoogleEarthEnterpriseMapsProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultSaturation","GoogleEarthEnterpriseMapsProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultGamma","GoogleEarthEnterpriseMapsProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultGamma","GoogleEarthEnterpriseMapsProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultMinificationFilter","GoogleEarthEnterpriseMapsProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultMinificationFilter","GoogleEarthEnterpriseMapsProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultMagnificationFilter","GoogleEarthEnterpriseMapsProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultMagnificationFilter","GoogleEarthEnterpriseMapsProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});Nl.fromUrl=async function(e,t,n){n=y(n,{});let i=y(n.path,"/default_map"),r=ve.createIfNeeded(e).getDerivedResource({url:i[0]==="/"?i.substring(1):i});r.appendForwardSlash();let o=r.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),s=new Kj(n);s.channel=t,await vpe(o,s);let a=new Nl(n);return s.build(a),a._readyPromise=Promise.resolve(!0),a._ready=!0,a._resource=r,a._url=e,a._path=i,a};Nl.prototype.getTileCredits=function(e,t,n){};Nl.prototype.requestImage=function(e,t,n,i){let r=this._resource.getDerivedResource({url:"query",request:i,queryParameters:{request:this._requestType,channel:this._channel,version:this._version,x:e,y:t,z:n+1}});return Zc.loadImage(this,r)};Nl.prototype.pickFeatures=function(e,t,n,i,r){};Nl._logoUrl=void 0;Object.defineProperties(Nl,{logoUrl:{get:function(){return u(Nl._logoUrl)||(Nl._logoUrl=$t("Assets/Images/google_earth_credit.png")),Nl._logoUrl},set:function(e){Nl._logoUrl=e}}});var iS=Nl;var znt=/\/$/,wpe=new wt('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function rS(e){e=y(e,y.EMPTY_OBJECT);let t=e.mapId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=ve.createIfNeeded(y(e.url,"https://{s}.tiles.mapbox.com/v4/"));this._mapId=t,this._accessToken=n;let r=y(e.format,"png");/\./.test(r)||(r=`.${r}`),this._format=r;let o=i.getUrlComponent();znt.test(o)||(o+="/"),o+=`${t}/{z}/{x}/{y}${this._format}`,i.url=o,i.setQueryParameters({access_token:n});let s;u(e.credit)?(s=e.credit,typeof s=="string"&&(s=new wt(s))):s=wpe,this._resource=i,this._imageryProvider=new Vs({url:i,credit:s,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle}),this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(rS.prototype,{url:{get:function(){return this._imageryProvider.url}},ready:{get:function(){return $("MapboxImageryProvider.ready","MapboxImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._imageryProvider.ready}},readyPromise:{get:function(){return $("MapboxImageryProvider.readyPromise","MapboxImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._imageryProvider._readyPromise}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},defaultAlpha:{get:function(){return $("MapboxImageryProvider.defaultAlpha","MapboxImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("MapboxImageryProvider.defaultAlpha","MapboxImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("MapboxImageryProvider.defaultNightAlpha","MapboxImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("MapboxImageryProvider.defaultNightAlpha","MapboxImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("MapboxImageryProvider.defaultDayAlpha","MapboxImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("MapboxImageryProvider.defaultDayAlpha","MapboxImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("MapboxImageryProvider.defaultBrightness","MapboxImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("MapboxImageryProvider.defaultBrightness","MapboxImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("MapboxImageryProvider.defaultContrast","MapboxImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("MapboxImageryProvider.defaultContrast","MapboxImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("MapboxImageryProvider.defaultHue","MapboxImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("MapboxImageryProvider.defaultHue","MapboxImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("MapboxImageryProvider.defaultSaturation","MapboxImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("MapboxImageryProvider.defaultSaturation","MapboxImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("MapboxImageryProvider.defaultGamma","MapboxImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("MapboxImageryProvider.defaultGamma","MapboxImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("MapboxImageryProvider.defaultMinificationFilter","MapboxImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("MapboxImageryProvider.defaultMinificationFilter","MapboxImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("MapboxImageryProvider.defaultMagnificationFilter","MapboxImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("MapboxImageryProvider.defaultMagnificationFilter","MapboxImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});rS.prototype.getTileCredits=function(e,t,n){};rS.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};rS.prototype.pickFeatures=function(e,t,n,i,r){return this._imageryProvider.pickFeatures(e,t,n,i,r)};rS._defaultCredit=wpe;var oS=rS;function Zx(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=y(e.rectangle,le.MAX_VALUE),n=new Wi({rectangle:t,numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});this._tilingScheme=n,this._image=void 0,this._texture=void 0,this._hasError=!1,this._errorEvent=new ge,this._ready=!1;let i=e.credit;typeof i=="string"&&(i=new wt(i)),this._credit=i;let r=ve.createIfNeeded(e.url);if(this._resource=r,u(e.tileWidth)||u(e.tileHeight)){this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight,this._ready=!0,this._readyPromise=Promise.resolve(!0);return}$("SingleTileImageryProvider options","options.tileHeight and options.tileWidth became required in CesiumJS 1.104. Omitting these properties will result in an error in 1.107. Provide options.tileHeight and options.tileWidth, or use SingleTileImageryProvider.fromUrl instead."),this._tileWidth=0,this._tileHeight=0,this._readyPromise=Q4(r,this).then(o=>(Ai.reportSuccess(this._errorEvent),this._image=o,this._tileWidth=o.width,this._tileHeight=o.height,this._ready=!0,!0))}Object.defineProperties(Zx.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return 0}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("SingleTileImageryProvider.ready","SingleTileImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use SingleTileImageryProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("SingleTileImageryProvider.readyPromise","SingleTileImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use SingleTileImageryProvider.fromUrl instead."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},defaultAlpha:{get:function(){return $("SingleTileImageryProvider.defaultAlpha","SingleTileImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("SingleTileImageryProvider.defaultAlpha","SingleTileImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("SingleTileImageryProvider.defaultNightAlpha","SingleTileImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("SingleTileImageryProvider.defaultNightAlpha","SingleTileImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("SingleTileImageryProvider.defaultDayAlpha","SingleTileImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("SingleTileImageryProvider.defaultDayAlpha","SingleTileImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("SingleTileImageryProvider.defaultBrightness","SingleTileImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("SingleTileImageryProvider.defaultBrightness","SingleTileImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("SingleTileImageryProvider.defaultContrast","SingleTileImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("SingleTileImageryProvider.defaultContrast","SingleTileImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("SingleTileImageryProvider.defaultHue","SingleTileImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("SingleTileImageryProvider.defaultHue","SingleTileImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("SingleTileImageryProvider.defaultSaturation","SingleTileImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("SingleTileImageryProvider.defaultSaturation","SingleTileImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("SingleTileImageryProvider.defaultGamma","SingleTileImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("SingleTileImageryProvider.defaultGamma","SingleTileImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("SingleTileImageryProvider.defaultMinificationFilter","SingleTileImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("SingleTileImageryProvider.defaultMinificationFilter","SingleTileImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("SingleTileImageryProvider.defaultMagnificationFilter","SingleTileImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("SingleTileImageryProvider.defaultMagnificationFilter","SingleTileImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});function Hnt(e,t,n,i){let r=`Failed to load image ${e.url}`;u(t)&&u(t.message)&&(r+=`: ${t.message}`);let o=Ai.reportError(i,n,u(n)?n._errorEvent:void 0,r,0,0,0,t);if(o.retry)return Q4(e,n,o);throw u(n)&&(n._hasError=!0),new de(r)}async function Q4(e,t,n){try{return await Zc.loadImage(null,e)}catch(i){return Hnt(e,i,t,n)}}Zx.fromUrl=async function(e,t){let n=ve.createIfNeeded(e),i=await Q4(n);t=y(t,y.EMPTY_OBJECT);let r=new Zx({...t,url:e,tileWidth:i.width,tileHeight:i.height});return r._image=i,r};Zx.prototype.getTileCredits=function(e,t,n){};Zx.prototype.requestImage=async function(e,t,n,i){if(!this._hasError&&!u(this._image)){let r=await Q4(this._resource,this);return this._image=r,Ai.reportSuccess(this._errorEvent),r}return this._image};Zx.prototype.pickFeatures=function(e,t,n,i,r){};var sS=Zx;function Gnt(e,t,n){this.type=e,u(t)||(e==="json"?t="application/json":e==="xml"?t="text/xml":e==="html"?t="text/html":e==="text"&&(t="text/plain")),this.format=t,u(n)||(e==="json"?n=Wnt:e==="xml"?n=Xnt:(e==="html"||e==="text")&&(n=Dpe)),this.callback=n}function Wnt(e){let t=[],n=e.features;for(let i=0;i<n.length;++i){let r=n[i],o=new dh;if(o.data=r,o.properties=r.properties,o.configureNameFromProperties(r.properties),o.configureDescriptionFromProperties(r.properties),u(r.geometry)&&r.geometry.type==="Point"){let s=r.geometry.coordinates[0],a=r.geometry.coordinates[1];o.position=me.fromDegrees(s,a)}t.push(o)}return t}var Jj="http://www.mapinfo.com/mxp",jnt="http://www.esri.com/wms",qnt="http://www.opengis.net/wfs",Ynt="http://www.opengis.net/gml";function Xnt(e){let t=e.documentElement;if(t.localName==="MultiFeatureCollection"&&t.namespaceURI===Jj)return Knt(e);if(t.localName==="FeatureInfoResponse"&&t.namespaceURI===jnt)return Jnt(e);if(t.localName==="FeatureCollection"&&t.namespaceURI===qnt)return Znt(e);if(t.localName==="ServiceExceptionReport")throw new de(new XMLSerializer().serializeToString(t));return t.localName==="msGMLOutput"?Qnt(e):$nt(e)}function Knt(e){let t=[],i=e.documentElement.getElementsByTagNameNS(Jj,"Feature");for(let r=0;r<i.length;++r){let o=i[r],s={},a=o.getElementsByTagNameNS(Jj,"Val");for(let l=0;l<a.length;++l){let f=a[l];if(f.hasAttribute("ref")){let d=f.getAttribute("ref"),p=f.textContent.trim();s[d]=p}}let c=new dh;c.data=o,c.properties=s,c.configureNameFromProperties(s),c.configureDescriptionFromProperties(s),t.push(c)}return t}function Jnt(e){let t=e.documentElement,n=[],i,r=t.getElementsByTagNameNS("*","FIELDS");if(r.length>0)for(let o=0;o<r.length;++o){let s=r[o];i={};let a=s.attributes;for(let c=0;c<a.length;++c){let l=a[c];i[l.name]=l.value}n.push($4(s,i))}else{let o=t.getElementsByTagNameNS("*","FeatureInfo");for(let s=0;s<o.length;++s){let a=o[s];i={};let c=a.childNodes;for(let l=0;l<c.length;++l){let f=c[l];f.nodeType===Node.ELEMENT_NODE&&(i[f.localName]=f.textContent)}n.push($4(a,i))}}return n}function Znt(e){let t=[],i=e.documentElement.getElementsByTagNameNS(Ynt,"featureMember");for(let r=0;r<i.length;++r){let o=i[r],s={};Zj(o,s),t.push($4(o,s))}return t}function Qnt(e){let t=[],n,i=e.documentElement.childNodes;for(let o=0;o<i.length;o++)if(i[o].nodeType===Node.ELEMENT_NODE){n=i[o];break}if(!u(n))throw new de("Unable to find first child of the feature info xml document");let r=n.childNodes;for(let o=0;o<r.length;++o){let s=r[o];if(s.nodeType===Node.ELEMENT_NODE){let a={};Zj(s,a),t.push($4(s,a))}}return t}function Zj(e,t){let n=!0;for(let i=0;i<e.childNodes.length;++i){let r=e.childNodes[i];r.nodeType===Node.ELEMENT_NODE&&(n=!1),!(r.localName==="Point"||r.localName==="LineString"||r.localName==="Polygon"||r.localName==="boundedBy")&&r.hasChildNodes()&&Zj(r,t)&&(t[r.localName]=r.textContent)}return n}function $4(e,t){let n=new dh;return n.data=e,n.properties=t,n.configureNameFromProperties(t),n.configureDescriptionFromProperties(t),n}function $nt(e){let t=new XMLSerializer().serializeToString(e),n=document.createElement("div"),i=document.createElement("pre");i.textContent=t,n.appendChild(i);let r=new dh;return r.data=e,r.description=n.innerHTML,[r]}var eit=/<body>\s*<\/body>/im,tit=/<ServiceExceptionReport([\s\S]*)<\/ServiceExceptionReport>/im,nit=/<title>([\s\S]*)<\/title>/im;function Dpe(e){if(eit.test(e)||tit.test(e))return;let t,n=nit.exec(e);n&&n.length>1&&(t=n[1]);let i=new dh;return i.name=t,i.description=e,i.data=e,[i]}var Qx=Gnt;function nL(e){e=y(e,y.EMPTY_OBJECT),this._tileCache={},this._tilesRequestedForInterval=[];let t=this._clock=e.clock;this._times=e.times,this._requestImageFunction=e.requestImageFunction,this._reloadFunction=e.reloadFunction,this._currentIntervalIndex=-1,t.onTick.addEventListener(this._clockOnTick,this),this._clockOnTick(t)}Object.defineProperties(nL.prototype,{clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._clockOnTick(e),this._reloadFunction())}},times:{get:function(){return this._times},set:function(e){this._times!==e&&(this._times=e,this._clockOnTick(this._clock),this._reloadFunction())}},currentInterval:{get:function(){return this._times.get(this._currentIntervalIndex)}}});nL.prototype.getFromCache=function(e,t,n,i){let r=Ipe(e,t,n),o,s=this._tileCache[this._currentIntervalIndex];if(u(s)&&u(s[r])){let a=s[r];o=a.promise.catch(function(c){throw i.state=a.request.state,c}),delete s[r]}return o};nL.prototype.checkApproachingInterval=function(e,t,n,i){let r=Ipe(e,t,n),o=this._tilesRequestedForInterval,s=Ppe(this),a={key:r,priorityFunction:i.priorityFunction};(!u(s)||!Ope(this,a,s))&&o.push(a),o.length>=512&&o.splice(0,256)};nL.prototype._clockOnTick=function(e){let t=e.currentTime,i=this._times.indexOf(t),r=this._currentIntervalIndex;if(i!==r){let s=this._tileCache[r];for(let a in s)s.hasOwnProperty(a)&&s[a].request.cancel();delete this._tileCache[r],this._tilesRequestedForInterval=[],this._currentIntervalIndex=i,this._reloadFunction();return}let o=Ppe(this);if(u(o)){let s=this._tilesRequestedForInterval,a=!0;for(;a&&s.length!==0;){let c=s.pop();a=Ope(this,c,o),a||s.push(c)}}};function Ipe(e,t,n){return`${e}-${t}-${n}`}function iit(e){let t=e.split("-");if(t.length===3)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function Ppe(e){let t=e._times;if(!u(t))return;let n=e._clock,i=n.currentTime,r=n.canAnimate&&n.shouldAnimate,o=n.multiplier;if(!r&&o!==0)return;let s,a=t.indexOf(i);if(a<0)return;let c=t.get(a);return o>0?(s=ee.secondsDifference(c.stop,i),++a):(s=ee.secondsDifference(c.start,i),--a),s/=o,a>=0&&s<=5?t.get(a):void 0}function Ope(e,t,n){let i=e._times.indexOf(n.start),r=e._tileCache,o=r[i];u(o)||(o=r[i]={});let s=t.key;if(u(o[s]))return!0;let a=iit(s),c=new jr({throttle:!1,throttleByServer:!0,type:es.IMAGERY,priorityFunction:t.priorityFunction}),l=e._requestImageFunction(a.x,a.y,a.level,c,n);return u(l)?(o[s]={promise:l,request:c},!0):!1}var $x=nL;var rit=[3034,3035,3042,3043,3044],oit=[4471,4559];function mh(e){if(e=y(e,y.EMPTY_OBJECT),u(e.times)&&!u(e.clock))throw new fe("options.times was specified, so options.clock is required.");this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._getFeatureInfoUrl=y(e.getFeatureInfoUrl,e.url);let t=ve.createIfNeeded(e.url),n=ve.createIfNeeded(this._getFeatureInfoUrl);t.setQueryParameters(mh.DefaultParameters,!0),n.setQueryParameters(mh.GetFeatureInfoDefaultParameters,!0),u(e.parameters)&&t.setQueryParameters(Mpe(e.parameters)),u(e.getFeatureInfoParameters)&&n.setQueryParameters(Mpe(e.getFeatureInfoParameters));let i=this;this._reload=void 0,u(e.times)&&(this._timeDynamicImagery=new $x({clock:e.clock,times:e.times,requestImageFunction:function(s,a,c,l,f){return Rpe(i,s,a,c,l,f)},reloadFunction:function(){u(i._reload)&&i._reload()}}));let r={};if(r.layers=e.layers,r.bbox="{westProjected},{southProjected},{eastProjected},{northProjected}",r.width="{width}",r.height="{height}",parseFloat(t.queryParameters.version)>=1.3){r.crs=y(e.crs,e.tilingScheme&&e.tilingScheme.projection instanceof Oi?"EPSG:3857":"CRS:84");let s=r.crs.split(":");if(s[0]==="EPSG"&&s.length===2){let a=Number(s[1]);(a>=4e3&&a<5e3&&!oit.includes(a)||rit.includes(a))&&(r.bbox="{southProjected},{westProjected},{northProjected},{eastProjected}")}}else r.srs=y(e.srs,e.tilingScheme&&e.tilingScheme.projection instanceof Oi?"EPSG:3857":"EPSG:4326");t.setQueryParameters(r,!0),n.setQueryParameters(r,!0);let o={query_layers:e.layers,info_format:"{format}"};parseFloat(n.queryParameters.version)>=1.3?(o.i="{i}",o.j="{j}"):(o.x="{i}",o.y="{j}"),n.setQueryParameters(o,!0),this._resource=t,this._pickFeaturesResource=n,this._layers=e.layers,this._tileProvider=new Vs({url:t,pickFeaturesUrl:n,tilingScheme:y(e.tilingScheme,new Wi({ellipsoid:e.ellipsoid})),rectangle:e.rectangle,tileWidth:e.tileWidth,tileHeight:e.tileHeight,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,subdomains:e.subdomains,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit,getFeatureInfoFormats:y(e.getFeatureInfoFormats,mh.DefaultGetFeatureInfoFormats),enablePickFeatures:e.enablePickFeatures}),this._ready=!0,this._readyPromise=Promise.resolve(!0)}function Rpe(e,t,n,i,r,o){let s=u(o)?o.data:void 0,a=e._tileProvider;return u(s)&&a._resource.setQueryParameters(s),a.requestImage(t,n,i,r)}function sit(e,t,n,i,r,o,s){let a=u(s)?s.data:void 0,c=e._tileProvider;return u(a)&&c._pickFeaturesResource.setQueryParameters(a),c.pickFeatures(t,n,i,r,o)}Object.defineProperties(mh.prototype,{url:{get:function(){return this._resource._url}},proxy:{get:function(){return this._resource.proxy}},layers:{get:function(){return this._layers}},tileWidth:{get:function(){return this._tileProvider.tileWidth}},tileHeight:{get:function(){return this._tileProvider.tileHeight}},maximumLevel:{get:function(){return this._tileProvider.maximumLevel}},minimumLevel:{get:function(){return this._tileProvider.minimumLevel}},tilingScheme:{get:function(){return this._tileProvider.tilingScheme}},rectangle:{get:function(){return this._tileProvider.rectangle}},tileDiscardPolicy:{get:function(){return this._tileProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._tileProvider.errorEvent}},ready:{get:function(){return $("WebMapServiceImageryProvider.ready","WebMapServiceImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._tileProvider.ready}},readyPromise:{get:function(){return $("WebMapServiceImageryProvider.readyPromise","WebMapServiceImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._tileProvider.readyPromise}},credit:{get:function(){return this._tileProvider.credit}},hasAlphaChannel:{get:function(){return this._tileProvider.hasAlphaChannel}},enablePickFeatures:{get:function(){return this._tileProvider.enablePickFeatures},set:function(e){this._tileProvider.enablePickFeatures=e}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},getFeatureInfoUrl:{get:function(){return this._getFeatureInfoUrl}},defaultAlpha:{get:function(){return $("WebMapServiceImageryProvider.defaultAlpha","WebMapServiceImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("WebMapServiceImageryProvider.defaultAlpha","WebMapServiceImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("WebMapServiceImageryProvider.defaultNightAlpha","WebMapServiceImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("WebMapServiceImageryProvider.defaultNightAlpha","WebMapServiceImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("WebMapServiceImageryProvider.defaultDayAlpha","WebMapServiceImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("WebMapServiceImageryProvider.defaultDayAlpha","WebMapServiceImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("WebMapServiceImageryProvider.defaultBrightness","WebMapServiceImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("WebMapServiceImageryProvider.defaultBrightness","WebMapServiceImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("WebMapServiceImageryProvider.defaultContrast","WebMapServiceImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("WebMapServiceImageryProvider.defaultContrast","WebMapServiceImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("WebMapServiceImageryProvider.defaultHue","WebMapServiceImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("WebMapServiceImageryProvider.defaultHue","WebMapServiceImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("WebMapServiceImageryProvider.defaultSaturation","WebMapServiceImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("WebMapServiceImageryProvider.defaultSaturation","WebMapServiceImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("WebMapServiceImageryProvider.defaultGamma","WebMapServiceImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("WebMapServiceImageryProvider.defaultGamma","WebMapServiceImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("WebMapServiceImageryProvider.defaultMinificationFilter","WebMapServiceImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("WebMapServiceImageryProvider.defaultMinificationFilter","WebMapServiceImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("WebMapServiceImageryProvider.defaultMagnificationFilter","WebMapServiceImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("WebMapServiceImageryProvider.defaultMagnificationFilter","WebMapServiceImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});mh.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};mh.prototype.requestImage=function(e,t,n,i){let r,o=this._timeDynamicImagery,s;return u(o)&&(s=o.currentInterval,r=o.getFromCache(e,t,n,i)),u(r)||(r=Rpe(this,e,t,n,i,s)),u(r)&&u(o)&&o.checkApproachingInterval(e,t,n,i),r};mh.prototype.pickFeatures=function(e,t,n,i,r){let o=this._timeDynamicImagery,s=u(o)?o.currentInterval:void 0;return sit(this,e,t,n,i,r,s)};mh.DefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"});mh.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"});mh.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new Qx("json","application/json")),Object.freeze(new Qx("xml","text/xml")),Object.freeze(new Qx("text","text/html"))]);function Mpe(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var aS=mh;var ait=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetTile"});function iL(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=ve.createIfNeeded(e.url),n=e.style,i=e.tileMatrixSetID,r=t.url,o=r.match(/{/g);if(!u(o)||o.length===1&&/{s}/.test(r))t.setQueryParameters(ait),this._useKvp=!0;else{let d={style:n,Style:n,TileMatrixSet:i};t.setTemplateValues(d),this._useKvp=!1}this._resource=t,this._layer=e.layer,this._style=n,this._tileMatrixSetID=i,this._tileMatrixLabels=e.tileMatrixLabels,this._format=y(e.format,"image/jpeg"),this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=u(e.tilingScheme)?e.tilingScheme:new Fo({ellipsoid:e.ellipsoid}),this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._dimensions=e.dimensions;let s=this;this._reload=void 0,u(e.times)&&(this._timeDynamicImagery=new $x({clock:e.clock,times:e.times,requestImageFunction:function(d,p,g,m,A){return Bpe(s,d,p,g,m,A)},reloadFunction:function(){u(s._reload)&&s._reload()}})),this._readyPromise=Promise.resolve(!0),this._ready=!0;let a=this._tilingScheme.positionToTileXY(le.southwest(this._rectangle),this._minimumLevel),c=this._tilingScheme.positionToTileXY(le.northeast(this._rectangle),this._minimumLevel),l=(Math.abs(c.x-a.x)+1)*(Math.abs(c.y-a.y)+1);this._errorEvent=new ge;let f=e.credit;this._credit=typeof f=="string"?new wt(f):f,this._subdomains=e.subdomains,Array.isArray(this._subdomains)?this._subdomains=this._subdomains.slice():u(this._subdomains)&&this._subdomains.length>0?this._subdomains=this._subdomains.split(""):this._subdomains=["a","b","c"]}function Bpe(e,t,n,i,r,o){let s=e._tileMatrixLabels,a=u(s)?s[i]:i.toString(),c=e._subdomains,l=e._dimensions,f=u(o)?o.data:void 0,d,p;if(!e._useKvp)p={TileMatrix:a,TileRow:n.toString(),TileCol:t.toString(),s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({request:r}),d.setTemplateValues(p),u(l)&&d.setTemplateValues(l),u(f)&&d.setTemplateValues(f);else{let g={};g.tilematrix=a,g.layer=e._layer,g.style=e._style,g.tilerow=n,g.tilecol=t,g.tilematrixset=e._tileMatrixSetID,g.format=e._format,u(l)&&(g=_t(g,l)),u(f)&&(g=_t(g,f)),p={s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({queryParameters:g,request:r}),d.setTemplateValues(p)}return Zc.loadImage(e,d)}Object.defineProperties(iL.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},format:{get:function(){return this._format}},ready:{get:function(){return $("WebMapTileServiceImageryProvider.ready","WebMapTileServiceImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("WebMapTileServiceImageryProvider.readyPromise","WebMapTileServiceImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},dimensions:{get:function(){return this._dimensions},set:function(e){this._dimensions!==e&&(this._dimensions=e,u(this._reload)&&this._reload())}},defaultAlpha:{get:function(){return $("WebMapTileServiceImageryProvider.defaultAlpha","WebMapTileServiceImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("WebMapTileServiceImageryProvider.defaultAlpha","WebMapTileServiceImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("WebMapTileServiceImageryProvider.defaultNightAlpha","WebMapTileServiceImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("WebMapTileServiceImageryProvider.defaultNightAlpha","WebMapTileServiceImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("WebMapTileServiceImageryProvider.defaultDayAlpha","WebMapTileServiceImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("WebMapTileServiceImageryProvider.defaultDayAlpha","WebMapTileServiceImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("WebMapTileServiceImageryProvider.defaultBrightness","WebMapTileServiceImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("WebMapTileServiceImageryProvider.defaultBrightness","WebMapTileServiceImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("WebMapTileServiceImageryProvider.defaultContrast","WebMapTileServiceImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("WebMapTileServiceImageryProvider.defaultContrast","WebMapTileServiceImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("WebMapTileServiceImageryProvider.defaultHue","WebMapTileServiceImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("WebMapTileServiceImageryProvider.defaultHue","WebMapTileServiceImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("WebMapTileServiceImageryProvider.defaultSaturation","WebMapTileServiceImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("WebMapTileServiceImageryProvider.defaultSaturation","WebMapTileServiceImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("WebMapTileServiceImageryProvider.defaultGamma","WebMapTileServiceImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("WebMapTileServiceImageryProvider.defaultGamma","WebMapTileServiceImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("WebMapTileServiceImageryProvider.defaultMinificationFilter","WebMapTileServiceImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("WebMapTileServiceImageryProvider.defaultMinificationFilter","WebMapTileServiceImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("WebMapTileServiceImageryProvider.defaultMagnificationFilter","WebMapTileServiceImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("WebMapTileServiceImageryProvider.defaultMagnificationFilter","WebMapTileServiceImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});iL.prototype.getTileCredits=function(e,t,n){};iL.prototype.requestImage=function(e,t,n,i){let r,o=this._timeDynamicImagery,s;return u(o)&&(s=o.currentInterval,r=o.getFromCache(e,t,n,i)),u(r)||(r=Bpe(this,e,t,n,i,s)),u(r)&&u(o)&&o.checkApproachingInterval(e,t,n,i),r};iL.prototype.pickFeatures=function(e,t,n,i,r){};var cS=iL;function L_(e){return function(t){return new e(t)}}var cit={ARCGIS_MAPSERVER:L_(Dm),BING:L_($b),GOOGLE_EARTH:L_(iS),MAPBOX:L_(oS),SINGLE_TILE:L_(sS),TMS:L_(Im),URL_TEMPLATE:L_(Vs),WMS:L_(aS),WMTS:L_(cS)},lit={ARCGIS_MAPSERVER:Dm.fromUrl,BING:async(e,t)=>$b.fromUrl(e,t),GOOGLE_EARTH:async(e,t)=>{let n=t.channel;return delete t.channel,iS.fromUrl(e,n,t)},MAPBOX:(e,t)=>new oS({url:e,...t}),SINGLE_TILE:sS.fromUrl,TMS:Im.fromUrl,URL_TEMPLATE:(e,t)=>new Vs({url:e,...t}),WMS:(e,t)=>new aS({url:e,...t}),WMTS:(e,t)=>new cS({url:e,...t})};function Fl(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._ready=!1,this._tileCredits=void 0,this._errorEvent=new ge;let t=e.assetId;u(t)&&($("IonImageryProvider options.assetId","options.assetId was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use IonImageryProvider.fromAssetId instead."),Fl._initialize(this,t,e))}Object.defineProperties(Fl.prototype,{ready:{get:function(){return $("IonImageryProvider.ready","IonImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use IonImageryProvider.fromAssetId instead."),this._ready}},readyPromise:{get:function(){return $("IonImageryProvider.readyPromise","IonImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use IonImageryProvider.fromAssetId instead."),this._readyPromise}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},proxy:{get:function(){}},defaultAlpha:{get:function(){return $("IonImageryProvider.defaultAlpha","IonImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("IonImageryProvider.defaultAlpha","IonImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("IonImageryProvider.defaultNightAlpha","IonImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("IonImageryProvider.defaultNightAlpha","IonImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("IonImageryProvider.defaultDayAlpha","IonImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("IonImageryProvider.defaultDayAlpha","IonImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("IonImageryProvider.defaultBrightness","IonImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("IonImageryProvider.defaultBrightness","IonImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("IonImageryProvider.defaultContrast","IonImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("IonImageryProvider.defaultContrast","IonImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("IonImageryProvider.defaultHue","IonImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("IonImageryProvider.defaultHue","IonImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("IonImageryProvider.defaultSaturation","IonImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("IonImageryProvider.defaultSaturation","IonImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("IonImageryProvider.defaultGamma","IonImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("IonImageryProvider.defaultGamma","IonImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("IonImageryProvider.defaultMinificationFilter","IonImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("IonImageryProvider.defaultMinificationFilter","IonImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("IonImageryProvider.defaultMagnificationFilter","IonImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("IonImageryProvider.defaultMagnificationFilter","IonImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});Fl._initialize=function(e,t,n){let i=Xs._createEndpointResource(t,n),r=t.toString()+n.accessToken+n.server,o=Fl._endpointCache[r];u(o)||(o=i.fetchJson(),Fl._endpointCache[r]=o),e._readyPromise=o.then(function(s){if(s.type!=="IMAGERY")return Promise.reject(new de(`Cesium ion asset ${t} is not an imagery asset.`));let a,c=s.externalType;if(!u(c))a=new Im({url:new Xs(s,i)});else{let l=cit[c];if(!u(l))return Promise.reject(new de(`Unrecognized Cesium ion imagery type: ${c}`));a=l(s.options)}return e._tileCredits=Xs.getCreditsFromEndpoint(s,i),a.errorEvent.addEventListener(function(l){l.provider=e,e._errorEvent.raiseEvent(l)}),e._imageryProvider=a,Promise.resolve(a._readyPromise).then(function(){return e._ready=!0,!0})})};Fl.fromAssetId=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=Xs._createEndpointResource(e,t),i=e.toString()+t.accessToken+t.server,r=Fl._endpointCache[i];u(r)||(r=n.fetchJson(),Fl._endpointCache[i]=r);let o=await r;if(o.type!=="IMAGERY")throw new de(`Cesium ion asset ${e} is not an imagery asset.`);let s,a=o.externalType;if(!u(a))s=await Im.fromUrl(new Xs(o,n));else{let l=lit[a];if(!u(l))throw new de(`Unrecognized Cesium ion imagery type: ${a}`);let f={...o.options},d=f.url;delete f.url,s=await l(d,f)}let c=new Fl(t);return s.errorEvent.addEventListener(function(l){l.provider=c,c._errorEvent.raiseEvent(l)}),c._tileCredits=Xs.getCreditsFromEndpoint(o,n),c._imageryProvider=s,c._ready=!0,c._readyPromise=Promise.resolve(!0),c};Fl.prototype.getTileCredits=function(e,t,n){let i=this._imageryProvider.getTileCredits(e,t,n);return u(i)?this._tileCredits.concat(i):this._tileCredits};Fl.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};Fl.prototype.pickFeatures=function(e,t,n,i,r){return this._imageryProvider.pickFeatures(e,t,n,i,r)};Fl._endpointCache={};var zf=Fl;var uit={AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4},ph=Object.freeze(uit);function fit(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.style,ph.AERIAL);return zf.fromAssetId(t)}var N_=fit;var rL=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(u_texture, v_textureCoordinates); +} +`;var oL=`in vec4 position; +in float webMercatorT; + +uniform vec2 u_textureDimensions; + +out vec2 v_textureCoordinates; + +void main() +{ + v_textureCoordinates = vec2(position.x, webMercatorT); + gl_Position = czm_viewportOrthographic * (position * vec4(u_textureDimensions, 1.0, 1.0)); +} +`;function lS(e,t,n,i,r){if(this.imageryLayer=e,this.x=t,this.y=n,this.level=i,this.request=void 0,i!==0){let o=t/2|0,s=n/2|0,a=i-1;this.parent=e.getImageryFromCache(o,s,a)}this.state=fi.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!u(r)&&e.ready&&e.imageryProvider._ready&&(r=e.imageryProvider.tilingScheme.tileXYToRectangle(t,n,i)),this.rectangle=r}lS.createPlaceholder=function(e){let t=new lS(e,0,0,0);return t.addReference(),t.state=fi.PLACEHOLDER,t};lS.prototype.addReference=function(){++this.referenceCount};lS.prototype.releaseReference=function(){return--this.referenceCount,this.referenceCount===0?(this.imageryLayer.removeImageryFromCache(this),u(this.parent)&&this.parent.releaseReference(),u(this.image)&&u(this.image.destroy)&&this.image.destroy(),u(this.texture)&&this.texture.destroy(),u(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),ue(this),0):this.referenceCount};lS.prototype.processStateMachine=function(e,t,n){this.state===fi.UNLOADED&&!n&&(this.state=fi.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===fi.RECEIVED&&(this.state=fi.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));let i=this.state===fi.READY&&t&&!this.texture;(this.state===fi.TEXTURE_LOADED||i)&&(this.state=fi.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))};var uS=lS;function Qj(e,t,n){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=n}Qj.prototype.freeResources=function(){u(this.readyImagery)&&this.readyImagery.releaseReference(),u(this.loadingImagery)&&this.loadingImagery.releaseReference()};Qj.prototype.processStateMachine=function(e,t,n){let i=this.loadingImagery,r=i.imageryLayer;if(i.processStateMachine(t,!this.useWebMercatorT,n),i.state===fi.READY)return u(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=this.loadingImagery,this.loadingImagery=void 0,this.textureTranslationAndScale=r._calculateTextureTranslationAndScale(e,this),!0;let o=i.parent,s;for(;u(o)&&(o.state!==fi.READY||!this.useWebMercatorT&&!u(o.texture));)o.state!==fi.FAILED&&o.state!==fi.INVALID&&(s=s||o),o=o.parent;return this.readyImagery!==o&&(u(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=o,u(o)&&(o.addReference(),this.textureTranslationAndScale=r._calculateTextureTranslationAndScale(e,this))),i.state===fi.FAILED||i.state===fi.INVALID?u(s)?(s.processStateMachine(t,!this.useWebMercatorT,n),!1):!0:!1};var fS=Qj;function mi(e,t){this._imageryProvider=e,this._readyEvent=new ge,this._errorEvent=new ge,t=y(t,y.EMPTY_OBJECT),e=y(e,y.EMPTY_OBJECT),this.alpha=y(t.alpha,y(e._defaultAlpha,1)),this.nightAlpha=y(t.nightAlpha,y(e._defaultNightAlpha,1)),this.dayAlpha=y(t.dayAlpha,y(e._defaultDayAlpha,1)),this.brightness=y(t.brightness,y(e._defaultBrightness,mi.DEFAULT_BRIGHTNESS)),this.contrast=y(t.contrast,y(e._defaultContrast,mi.DEFAULT_CONTRAST)),this.hue=y(t.hue,y(e._defaultHue,mi.DEFAULT_HUE)),this.saturation=y(t.saturation,y(e._defaultSaturation,mi.DEFAULT_SATURATION)),this.gamma=y(t.gamma,y(e._defaultGamma,mi.DEFAULT_GAMMA)),this.splitDirection=y(t.splitDirection,mi.DEFAULT_SPLIT),this.minificationFilter=y(t.minificationFilter,y(e._defaultMinificationFilter,mi.DEFAULT_MINIFICATION_FILTER)),this.magnificationFilter=y(t.magnificationFilter,y(e._defaultMagnificationFilter,mi.DEFAULT_MAGNIFICATION_FILTER)),this.show=y(t.show,!0),this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=y(t.rectangle,le.MAX_VALUE),this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new fS(uS.createPlaceholder(this)),this._show=!0,this._layerIndex=-1,this._isBaseLayer=!1,this._requestImageError=void 0,this._reprojectComputeCommands=[],this.cutoutRectangle=t.cutoutRectangle,this.colorToAlpha=t.colorToAlpha,this.colorToAlphaThreshold=y(t.colorToAlphaThreshold,mi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD)}Object.defineProperties(mi.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},ready:{get:function(){return u(this._imageryProvider)}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},rectangle:{get:function(){return this._rectangle}}});mi.DEFAULT_BRIGHTNESS=1;mi.DEFAULT_CONTRAST=1;mi.DEFAULT_HUE=0;mi.DEFAULT_SATURATION=1;mi.DEFAULT_GAMMA=1;mi.DEFAULT_SPLIT=kc.NONE;mi.DEFAULT_MINIFICATION_FILTER=sn.LINEAR;mi.DEFAULT_MAGNIFICATION_FILTER=Ti.LINEAR;mi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004;mi.fromProviderAsync=function(e,t){let n=new mi(void 0,t);return _it(n,Promise.resolve(e)),n};mi.fromWorldImagery=function(e){return e=y(e,y.EMPTY_OBJECT),mi.fromProviderAsync(N_({style:e.style}),e)};mi.prototype.isBaseLayer=function(){return this._isBaseLayer};mi.prototype.isDestroyed=function(){return!1};mi.prototype.destroy=function(){return ue(this)};var Fpe=new le,Lpe=new le,$j=new le,Upe=new le;mi.prototype.getViewableRectangle=async function(){$("ImageryLayer.getViewableRectangle","ImageryLayer.getViewableRectangle was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use ImageryLayer.getImageryRectangle instead.");let e=this._imageryProvider,t=this._rectangle;return await e._readyPromise,le.intersection(e.rectangle,t)};mi.prototype.getImageryRectangle=function(){let e=this._imageryProvider,t=this._rectangle;return le.intersection(e.rectangle,t)};mi.prototype._createTileImagerySkeletons=function(e,t,n){let i=e.data;if(!u(t)||u(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel||u(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;u(n)||(n=i.imagery.length);let r=this._imageryProvider;if(!this.ready||!r._ready)return this._skeletonPlaceholder.loadingImagery.addReference(),i.imagery.splice(n,0,this._skeletonPlaceholder),!0;let o=r.tilingScheme.projection instanceof Oi&&e.rectangle.north<Oi.MaximumLatitude&&e.rectangle.south>-Oi.MaximumLatitude,s=le.intersection(r.rectangle,this._rectangle,Fpe),a=le.intersection(e.rectangle,s,Lpe);if(!u(a)){if(!this.isBaseLayer())return!1;let w=s,I=e.rectangle;a=Lpe,I.south>=w.north?a.north=a.south=w.north:I.north<=w.south?a.north=a.south=w.south:(a.south=Math.max(I.south,w.south),a.north=Math.min(I.north,w.north)),I.west>=w.east?a.west=a.east=w.east:I.east<=w.west?a.west=a.east=w.west:(a.west=Math.max(I.west,w.west),a.east=Math.min(I.east,w.east))}let c=0;a.south>0?c=a.south:a.north<0&&(c=a.north);let f=1*t.getLevelMaximumGeometricError(e.level),d=mit(this,f,c);d=Math.max(0,d);let p=r.maximumLevel;if(d>p&&(d=p),u(r.minimumLevel)){let w=r.minimumLevel;d<w&&(d=w)}let g=r.tilingScheme,m=g.positionToTileXY(le.northwest(a),d),A=g.positionToTileXY(le.southeast(a),d),x=e.rectangle.width/512,C=e.rectangle.height/512,T=g.tileXYToRectangle(m.x,m.y,d);Math.abs(T.south-e.rectangle.north)<C&&m.y<A.y&&++m.y,Math.abs(T.east-e.rectangle.west)<x&&m.x<A.x&&++m.x;let E=g.tileXYToRectangle(A.x,A.y,d);Math.abs(E.north-e.rectangle.south)<C&&A.y>m.y&&--A.y,Math.abs(E.west-e.rectangle.east)<x&&A.x>m.x&&--A.x;let S=le.clone(e.rectangle,Upe),v=g.tileXYToRectangle(m.x,m.y,d),D=le.intersection(v,s,$j),M;o?(g.rectangleToNativeRectangle(S,S),g.rectangleToNativeRectangle(v,v),g.rectangleToNativeRectangle(D,D),g.rectangleToNativeRectangle(s,s),M=g.tileXYToNativeRectangle.bind(g),x=S.width/512,C=S.height/512):M=g.tileXYToRectangle.bind(g);let O,B=0,L=1,_;!this.isBaseLayer()&&Math.abs(D.west-S.west)>=x&&(B=Math.min(1,(D.west-S.west)/S.width)),!this.isBaseLayer()&&Math.abs(D.north-S.north)>=C&&(L=Math.max(0,(D.north-S.south)/S.height));let b=L;for(let w=m.x;w<=A.x;w++)if(O=B,v=M(w,m.y,d),D=le.simpleIntersection(v,s,$j),!!u(D)){B=Math.min(1,(D.east-S.west)/S.width),w===A.x&&(this.isBaseLayer()||Math.abs(D.east-S.east)<x)&&(B=1),L=b;for(let I=m.y;I<=A.y;I++){if(_=L,v=M(w,I,d),D=le.simpleIntersection(v,s,$j),!u(D))continue;L=Math.max(0,(D.south-S.south)/S.height),I===A.y&&(this.isBaseLayer()||Math.abs(D.south-S.south)<C)&&(L=0);let R=new se(O,L,B,_),F=this.getImageryFromCache(w,I,d);i.imagery.splice(n,0,new fS(F,R,o)),++n}}return!0};mi.prototype._calculateTextureTranslationAndScale=function(e,t){let n=t.readyImagery.rectangle,i=e.rectangle;if(t.useWebMercatorT){let c=t.readyImagery.imageryLayer.imageryProvider.tilingScheme;n=c.rectangleToNativeRectangle(n,Fpe),i=c.rectangleToNativeRectangle(i,Upe)}let r=i.width,o=i.height,s=r/n.width,a=o/n.height;return new se(s*(i.west-n.west)/r,a*(i.south-n.south)/o,s,a)};mi.prototype._requestImagery=function(e){let t=this._imageryProvider,n=this;function i(s){if(!u(s))return r();e.image=s,e.state=fi.RECEIVED,e.request=void 0,Ai.reportSuccess(n._requestImageError)}function r(s){if(e.request.state===ti.CANCELLED){e.state=fi.UNLOADED,e.request=void 0;return}e.state=fi.FAILED,e.request=void 0;let a=`Failed to obtain image tile X: ${e.x} Y: ${e.y} Level: ${e.level}.`;n._requestImageError=Ai.reportError(n._requestImageError,t,t.errorEvent,a,e.x,e.y,e.level,s),n._requestImageError.retry&&o()}function o(){let s=new jr({throttle:!1,throttleByServer:!0,type:es.IMAGERY});e.request=s,e.state=fi.TRANSITIONING;let a=t.requestImage(e.x,e.y,e.level,s);if(!u(a)){e.state=fi.UNLOADED,e.request=void 0;return}u(t.getTileCredits)&&(e.credits=t.getTileCredits(e.x,e.y,e.level)),a.then(function(c){i(c)}).catch(function(c){r(c)})}o()};mi.prototype._createTextureWebGL=function(e,t){let n=new ln({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),i=t.image;return u(i.internalFormat)?new Rt({context:e,pixelFormat:i.internalFormat,width:i.width,height:i.height,source:{arrayBufferView:i.bufferView},sampler:n}):new Rt({context:e,source:i,pixelFormat:this._imageryProvider.hasAlphaChannel?at.RGBA:at.RGB,sampler:n})};mi.prototype._createTexture=function(e,t){let n=this._imageryProvider,i=t.image;if(u(n.tileDiscardPolicy)){let o=n.tileDiscardPolicy;if(u(o)){if(!o.isReady()){t.state=fi.RECEIVED;return}if(o.shouldDiscardImage(i)){t.state=fi.INVALID;return}}}let r=this._createTextureWebGL(e,t);n.tilingScheme.projection instanceof Oi?t.textureWebMercator=r:t.texture=r,t.image=void 0,t.state=fi.TEXTURE_LOADED};function Npe(e,t,n){return`${e}:${t}:${n}`}mi.prototype._finalizeReprojectTexture=function(e,t){let n=this.minificationFilter,i=this.magnificationFilter;if(n===sn.LINEAR&&i===Ti.LINEAR&&!at.isCompressedFormat(t.pixelFormat)&&P.isPowerOfTwo(t.width)&&P.isPowerOfTwo(t.height)){n=sn.LINEAR_MIPMAP_LINEAR;let o=zt.maximumTextureFilterAnisotropy,s=Math.min(o,y(this._maximumAnisotropy,o)),a=Npe(n,i,s),c=e.cache.imageryLayerMipmapSamplers;u(c)||(c={},e.cache.imageryLayerMipmapSamplers=c);let l=c[a];u(l)||(l=c[a]=new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i,maximumAnisotropy:s})),t.generateMipmap(Fh.NICEST),t.sampler=l}else{let o=Npe(n,i,0),s=e.cache.imageryLayerNonMipmapSamplers;u(s)||(s={},e.cache.imageryLayerNonMipmapSamplers=s);let a=s[o];u(a)||(a=s[o]=new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i})),t.sampler=a}};mi.prototype._reprojectTexture=function(e,t,n){let i=t.textureWebMercator||t.texture,r=t.rectangle,o=e.context;if(n=y(n,!0),n&&!(this._imageryProvider.tilingScheme.projection instanceof Ii)&&r.width/i.width>1e-5){let s=this;t.addReference();let a=new Yu({persists:!0,owner:this,preExecute:function(c){hit(c,o,i,t.rectangle)},postExecute:function(c){t.texture=c,s._finalizeReprojectTexture(o,c),t.state=fi.READY,t.releaseReference()},canceled:function(){t.state=fi.TEXTURE_LOADED,t.releaseReference()}});this._reprojectComputeCommands.push(a)}else n&&(t.texture=i),this._finalizeReprojectTexture(o,i),t.state=fi.READY};mi.prototype.queueReprojectionCommands=function(e){let t=this._reprojectComputeCommands,n=t.length;for(let i=0;i<n;++i)e.commandList.push(t[i]);t.length=0};mi.prototype.cancelReprojections=function(){this._reprojectComputeCommands.forEach(function(e){u(e.canceled)&&e.canceled()}),this._reprojectComputeCommands.length=0};mi.prototype.getImageryFromCache=function(e,t,n,i){let r=Vpe(e,t,n),o=this._imageryCache[r];return u(o)||(o=new uS(this,e,t,n,i),this._imageryCache[r]=o),o.addReference(),o};mi.prototype.removeImageryFromCache=function(e){let t=Vpe(e.x,e.y,e.level);delete this._imageryCache[t]};function Vpe(e,t,n){return JSON.stringify([e,t,n])}var ez={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new H,texture:void 0},dit=Ht.supportsTypedArrays()?new Float32Array(2*64):void 0;function hit(e,t,n,i){let r=t.cache.imageryLayer_reproject;if(!u(r)){r=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){u(this.framebuffer)&&this.framebuffer.destroy(),u(this.vertexArray)&&this.vertexArray.destroy(),u(this.shaderProgram)&&this.shaderProgram.destroy()}};let x=new Float32Array(2*64*2),C=0;for(let D=0;D<64;++D){let M=D/63;x[C++]=0,x[C++]=M,x[C++]=1,x[C++]=M}let T={position:0,webMercatorT:1},E=Yo.getRegularGridIndices(2,64),S=ht.createIndexBuffer({context:t,typedArray:E,usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT});r.vertexArray=new oi({context:t,attributes:[{index:T.position,vertexBuffer:ht.createVertexBuffer({context:t,typedArray:x,usage:Fe.STATIC_DRAW}),componentsPerAttribute:2},{index:T.webMercatorT,vertexBuffer:ht.createVertexBuffer({context:t,sizeInBytes:64*2*4,usage:Fe.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:S});let v=new ke({sources:[oL]});r.shaderProgram=Xt.fromCache({context:t,vertexShaderSource:v,fragmentShaderSource:rL,attributeLocations:T}),r.sampler=new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:sn.LINEAR,magnificationFilter:Ti.LINEAR})}n.sampler=r.sampler;let o=n.width,s=n.height;ez.textureDimensions.x=o,ez.textureDimensions.y=s,ez.texture=n;let a=Math.sin(i.south),c=.5*Math.log((1+a)/(1-a));a=Math.sin(i.north);let f=1/(.5*Math.log((1+a)/(1-a))-c),d=new Rt({context:t,width:o,height:s,pixelFormat:n.pixelFormat,pixelDatatype:n.pixelDatatype,preMultiplyAlpha:n.preMultiplyAlpha});P.isPowerOfTwo(o)&&P.isPowerOfTwo(s)&&d.generateMipmap(Fh.NICEST);let p=i.south,g=i.north,m=dit,A=0;for(let x=0;x<64;++x){let C=x/63,T=P.lerp(p,g,C);a=Math.sin(T);let S=(.5*Math.log((1+a)/(1-a))-c)*f;m[A++]=S,m[A++]=S}r.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(m),e.shaderProgram=r.shaderProgram,e.outputTexture=d,e.uniformMap=ez,e.vertexArray=r.vertexArray}function mit(e,t,n){let i=e._imageryProvider,r=i.tilingScheme,o=r.ellipsoid,s=e._imageryProvider.tilingScheme.projection instanceof Ii?1:Math.cos(n),a=r.rectangle,l=o.maximumRadius*a.width*s/(i.tileWidth*r.getNumberOfXTilesAtLevel(0))/t,f=Math.log(l)/Math.log(2);return Math.round(f)|0}function pit(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function _it(e,t){let n;try{if(n=await Promise.resolve(t),e.isDestroyed())return;e._imageryProvider=n,e._readyEvent.raiseEvent(n)}catch(i){pit(e._errorEvent,i)}}var ks=mi;var git={WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7},_n=git;var kpe={NONE:0,CULLED:1,RENDERED:2,REFINED:3,RENDERED_AND_KICKED:6,REFINED_AND_KICKED:7,CULLED_BUT_NEEDED:9,wasKicked:function(e){return e>=kpe.RENDERED_AND_KICKED},originalResult:function(e){return e&3},kick:function(e){return e|4}},Qn=kpe;function hS(e){this.tile=e,this.frameLastUpdated=void 0,this.westMeshes=[],this.westTiles=[],this.southMeshes=[],this.southTiles=[],this.eastMeshes=[],this.eastTiles=[],this.northMeshes=[],this.northTiles=[],this.southwestMesh=void 0,this.southwestTile=void 0,this.southeastMesh=void 0,this.southeastTile=void 0,this.northwestMesh=void 0,this.northwestTile=void 0,this.northeastMesh=void 0,this.northeastTile=void 0,this.changedThisFrame=!0,this.visitedFrame=void 0,this.enqueuedFrame=void 0,this.mesh=void 0,this.vertexArray=void 0,this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new se}hS.prototype.update=function(e,t,n){this.changedThisFrame&&(Ype(e,t,this.tile,n),this.changedThisFrame=!1)};hS.prototype.destroy=function(e){this._destroyVertexArray(e),u(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};hS.prototype._destroyVertexArray=function(e){u(this.vertexArray)&&(u(e)?e.push(this.vertexArray):kf._freeVertexArray(this.vertexArray),this.vertexArray=void 0)};var yit=new ny;hS.updateFillTiles=function(e,t,n,i){let r=e._quadtree,o=r._levelZeroTiles,s=r._lastSelectionFrameNumber,a=yit;a.clear();for(let l=0;l<t.length;++l){let f=t[l];u(f.data.vertexArray)&&a.enqueue(t[l])}let c=a.dequeue();for(;c!==void 0;){let l=c.findTileToWest(o),f=c.findTileToSouth(o),d=c.findTileToEast(o),p=c.findTileToNorth(o);gs(e,n,c,l,s,_n.EAST,!1,a,i),gs(e,n,c,f,s,_n.NORTH,!1,a,i),gs(e,n,c,d,s,_n.WEST,!1,a,i),gs(e,n,c,p,s,_n.SOUTH,!1,a,i);let g=l.findTileToNorth(o),m=l.findTileToSouth(o),A=d.findTileToNorth(o),x=d.findTileToSouth(o);gs(e,n,c,g,s,_n.SOUTHEAST,!1,a,i),gs(e,n,c,A,s,_n.SOUTHWEST,!1,a,i),gs(e,n,c,m,s,_n.NORTHEAST,!1,a,i),gs(e,n,c,x,s,_n.NORTHWEST,!1,a,i),c=a.dequeue()}};function gs(e,t,n,i,r,o,s,a,c){if(i===void 0)return;let l=i;for(;l&&(l._lastSelectionResultFrame!==r||Qn.wasKicked(l._lastSelectionResult)||Qn.originalResult(l._lastSelectionResult)===Qn.CULLED);){if(s)return;let f=l.parent;if(o>=_n.NORTHWEST&&f!==void 0)switch(o){case _n.NORTHWEST:l=l===f.northwestChild?f:void 0;break;case _n.NORTHEAST:l=l===f.northeastChild?f:void 0;break;case _n.SOUTHWEST:l=l===f.southwestChild?f:void 0;break;case _n.SOUTHEAST:l=l===f.southeastChild?f:void 0;break}else l=f}if(l!==void 0){if(l._lastSelectionResult===Qn.RENDERED){if(u(l.data.vertexArray))return;Ait(e,t,n,l,o,r,a,c);return}if(Qn.originalResult(i._lastSelectionResult)!==Qn.CULLED)switch(o){case _n.WEST:gs(e,t,n,i.northwestChild,r,o,!0,a,c),gs(e,t,n,i.southwestChild,r,o,!0,a,c);break;case _n.EAST:gs(e,t,n,i.southeastChild,r,o,!0,a,c),gs(e,t,n,i.northeastChild,r,o,!0,a,c);break;case _n.SOUTH:gs(e,t,n,i.southwestChild,r,o,!0,a,c),gs(e,t,n,i.southeastChild,r,o,!0,a,c);break;case _n.NORTH:gs(e,t,n,i.northeastChild,r,o,!0,a,c),gs(e,t,n,i.northwestChild,r,o,!0,a,c);break;case _n.NORTHWEST:gs(e,t,n,i.northwestChild,r,o,!0,a,c);break;case _n.NORTHEAST:gs(e,t,n,i.northeastChild,r,o,!0,a,c);break;case _n.SOUTHWEST:gs(e,t,n,i.southwestChild,r,o,!0,a,c);break;case _n.SOUTHEAST:gs(e,t,n,i.southeastChild,r,o,!0,a,c);break;default:throw new fe("Invalid edge")}}}function Ait(e,t,n,i,r,o,s,a){let c=i.data;if(c.fill===void 0)c.fill=new hS(i);else if(c.fill.visitedFrame===o)return;c.fill.enqueuedFrame!==o&&(c.fill.enqueuedFrame=o,c.fill.changedThisFrame=!1,s.enqueue(i)),xit(e,t,n,i,r,a)}function xit(e,t,n,i,r,o){let s=i.data.fill,a,c=n.data.fill;u(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(Ype(e,t,n,o),c.changedThisFrame=!1),a=n.data.fill.mesh):a=n.data.mesh;let l,f;switch(r){case _n.WEST:l=s.westMeshes,f=s.westTiles;break;case _n.SOUTH:l=s.southMeshes,f=s.southTiles;break;case _n.EAST:l=s.eastMeshes,f=s.eastTiles;break;case _n.NORTH:l=s.northMeshes,f=s.northTiles;break;case _n.NORTHWEST:s.changedThisFrame=s.changedThisFrame||s.northwestMesh!==a,s.northwestMesh=a,s.northwestTile=n;return;case _n.NORTHEAST:s.changedThisFrame=s.changedThisFrame||s.northeastMesh!==a,s.northeastMesh=a,s.northeastTile=n;return;case _n.SOUTHWEST:s.changedThisFrame=s.changedThisFrame||s.southwestMesh!==a,s.southwestMesh=a,s.southwestTile=n;return;case _n.SOUTHEAST:s.changedThisFrame=s.changedThisFrame||s.southeastMesh!==a,s.southeastMesh=a,s.southeastTile=n;return}if(n.level<=i.level){s.changedThisFrame=s.changedThisFrame||l[0]!==a||l.length!==1,l[0]=a,f[0]=n,l.length=1,f.length=1;return}let d,p,g,m,A=n.rectangle,x,C=i.rectangle;switch(r){case _n.WEST:for(x=(C.north-C.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.greaterThan(A.north,m.south,x));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.greaterThanOrEquals(A.south,m.north,x));++p);break;case _n.SOUTH:for(x=(C.east-C.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.lessThan(A.west,m.east,x));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.lessThanOrEquals(A.east,m.west,x));++p);break;case _n.EAST:for(x=(C.north-C.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.lessThan(A.south,m.north,x));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.lessThanOrEquals(A.north,m.south,x));++p);break;case _n.NORTH:for(x=(C.east-C.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.greaterThan(A.east,m.west,x));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.greaterThanOrEquals(A.west,m.east,x));++p);break}p-d===1?(s.changedThisFrame=s.changedThisFrame||l[d]!==a,l[d]=a,f[d]=n):(s.changedThisFrame=!0,l.splice(d,p-d,a),f.splice(d,p-d,n))}var eC=new me,Cit=new me,dS=new h,iq=new h,eq=new H,tq=new H,Mu=new H;function az(){this.height=0,this.encodedNormal=new H}function tz(e,t,n,i,r,o,s,a,c){if(u(r))return r;let l;if(u(o)&&u(s))l=(o.height+s.height)*.5;else if(u(o))l=o.height;else if(u(s))l=s.height;else if(u(a))l=a.height;else{let d=e.tile.data.tileBoundingRegion,p=0,g=0;u(d)&&(p=d.minimumHeight,g=d.maximumHeight),l=(p+g)*.5}return Xpe(e,t,n,i,l,c),c}var Tit={minimumHeight:0,maximumHeight:0},Eit=new h,zpe=new az,Hpe=new az,Gpe=new az,Wpe=new az,bit=typeof Uint8Array<"u"?new Uint8Array(9*9):void 0,Sit={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0};function Ype(e,t,n,i){kf.initialize(n,e.terrainProvider,e._imageryLayers);let r=n.data,o=r.fill,s=n.rectangle,a=t.terrainExaggeration,c=t.terrainExaggerationRelativeHeight,l=a!==1,f=n.tilingScheme.ellipsoid,d=iz(o,f,0,1,o.northwestTile,o.northwestMesh,o.northTiles,o.northMeshes,o.westTiles,o.westMeshes,Gpe),p=iz(o,f,0,0,o.southwestTile,o.southwestMesh,o.westTiles,o.westMeshes,o.southTiles,o.southMeshes,zpe),g=iz(o,f,1,0,o.southeastTile,o.southeastMesh,o.southTiles,o.southMeshes,o.eastTiles,o.eastMeshes,Hpe),m=iz(o,f,1,1,o.northeastTile,o.northeastMesh,o.eastTiles,o.eastMeshes,o.northTiles,o.northMeshes,Wpe);d=tz(o,f,0,1,d,p,m,g,Gpe),p=tz(o,f,0,0,p,d,g,m,zpe),g=tz(o,f,1,1,g,p,m,d,Hpe),m=tz(o,f,1,1,m,g,d,p,Wpe);let A=p.height,x=g.height,C=d.height,T=m.height,E=Math.min(A,x,C,T),S=Math.max(A,x,C,T),v=(E+S)*.5,D,M,O=e.getLevelMaximumGeometricError(n.level),B=f.maximumRadius-O,L=Math.acos(B/f.maximumRadius)*4;if(L*=1.5,s.width>L&&S-E<=O){let w=new wa({width:9,height:9,buffer:bit,structure:{heightOffset:S}}),I=Sit;I.tilingScheme=n.tilingScheme,I.x=n.x,I.y=n.y,I.level=n.level,I.exaggeration=a,I.exaggerationRelativeHeight=c,o.mesh=w._createMeshSync(I)}else{let w=l,I=le.center(s,Cit);I.height=v;let R=f.cartographicToCartesian(I,Eit),F=new dc(R,void 0,void 0,void 0,void 0,!0,!0,w,a,c),k=5,V;for(V=o.westMeshes,D=0,M=V.length;D<M;++D)k+=V[D].eastIndicesNorthToSouth.length;for(V=o.southMeshes,D=0,M=V.length;D<M;++D)k+=V[D].northIndicesWestToEast.length;for(V=o.eastMeshes,D=0,M=V.length;D<M;++D)k+=V[D].westIndicesSouthToNorth.length;for(V=o.northMeshes,D=0,M=V.length;D<M;++D)k+=V[D].southIndicesEastToWest.length;let G=Tit;G.minimumHeight=E,G.maximumHeight=S;let U=F.stride,Y=new Float32Array(k*U),W=0,Z=W;W=nz(f,s,F,Y,W,0,1,d.height,d.encodedNormal,1,G),W=oz(o,f,F,Y,W,o.westTiles,o.westMeshes,_n.EAST,G);let j=W;W=nz(f,s,F,Y,W,0,0,p.height,p.encodedNormal,0,G),W=oz(o,f,F,Y,W,o.southTiles,o.southMeshes,_n.NORTH,G);let K=W;W=nz(f,s,F,Y,W,1,0,g.height,g.encodedNormal,0,G),W=oz(o,f,F,Y,W,o.eastTiles,o.eastMeshes,_n.WEST,G);let J=W;W=nz(f,s,F,Y,W,1,1,m.height,m.encodedNormal,1,G),W=oz(o,f,F,Y,W,o.northTiles,o.northMeshes,_n.SOUTH,G),E=G.minimumHeight,S=G.maximumHeight;let _e=On.fromRectangle(s,E,S,n.tilingScheme.ellipsoid),xe=Oi.geodeticLatitudeToMercatorAngle(s.south),oe=1/(Oi.geodeticLatitudeToMercatorAngle(s.north)-xe),Ae=(Oi.geodeticLatitudeToMercatorAngle(I.latitude)-xe)*oe,he=f.geodeticSurfaceNormalCartographic(eC,iq),Se=qn.octEncode(he,eq),Ie=W;F.encode(Y,W*U,_e.center,H.fromElements(.5,.5,Mu),v,Se,Ae,he),++W;let Ne=W,qe=Ne<256?1:2,pt=(Ne-1)*3,Gt=pt*qe,fn=(Y.length-Ne*U)*Float32Array.BYTES_PER_ELEMENT,ft;if(fn>=Gt){let Ee=Ne*U*Float32Array.BYTES_PER_ELEMENT;ft=Ne<256?new Uint8Array(Y.buffer,Ee,pt):new Uint16Array(Y.buffer,Ee,pt)}else ft=Ne<256?new Uint8Array(pt):new Uint16Array(pt);Y=new Float32Array(Y.buffer,0,Ne*U);let pn=0;for(D=0;D<Ne-2;++D)ft[pn++]=Ie,ft[pn++]=D,ft[pn++]=D+1;ft[pn++]=Ie,ft[pn++]=D,ft[pn++]=0;let Bn=[];for(D=j;D>=Z;--D)Bn.push(D);let Vt=[];for(D=K;D>=j;--D)Vt.push(D);let Qe=[];for(D=J;D>=K;--D)Qe.push(D);let pe=[];for(pe.push(0),D=Ie-1;D>=J;--D)pe.push(D);o.mesh=new Vf(F.center,Y,ft,pt,Ne,E,S,ae.fromOrientedBoundingBox(_e),Mit(e,_e.center,s,E,S),F.stride,_e,F,Bn,Vt,Qe,pe)}let _=t.context;o._destroyVertexArray(i),o.vertexArray=kf._createVertexArrayForMesh(_,o.mesh),r.processImagery(n,e.terrainProvider,t,!0);let b=o.waterMaskTexture;if(o.waterMaskTexture=void 0,e.terrainProvider.hasWaterMask){let w=r._findAncestorTileWithTerrainData(n);u(w)&&u(w.data.waterMaskTexture)&&(o.waterMaskTexture=w.data.waterMaskTexture,++o.waterMaskTexture.referenceCount,r._computeWaterMaskTranslationAndScale(n,w,o.waterMaskTranslationAndScale))}u(b)&&(--b.referenceCount,b.referenceCount===0&&b.destroy())}function nz(e,t,n,i,r,o,s,a,c,l,f){let d=eC;d.longitude=P.lerp(t.west,t.east,o),d.latitude=P.lerp(t.south,t.north,s),d.height=a;let p=e.cartographicToCartesian(d,dS),g;n.hasGeodeticSurfaceNormals&&(g=e.geodeticSurfaceNormal(p,iq));let m=tq;return m.x=o,m.y=s,n.encode(i,r*n.stride,p,m,a,c,l,g),f.minimumHeight=Math.min(f.minimumHeight,a),f.maximumHeight=Math.max(f.maximumHeight,a),r+1}var sz=new le;function sL(e,t,n,i){let r=e.rectangle,o=t.rectangle;t.x===0&&n.x===1&&e.x===e.tilingScheme.getNumberOfXTilesAtLevel(e.level)-1?(r=le.clone(e.rectangle,sz),r.west-=P.TWO_PI,r.east-=P.TWO_PI):e.x===0&&n.x===0&&t.x===t.tilingScheme.getNumberOfXTilesAtLevel(t.level)-1&&(r=le.clone(e.rectangle,sz),r.west+=P.TWO_PI,r.east+=P.TWO_PI);let s=r.east-r.west,a=(o.west-r.west)/s,c=(o.east-r.west)/s,l=r.north-r.south,f=(o.south-r.south)/l,d=(o.north-r.south)/l,p=(n.x-a)/(c-a),g=(n.y-f)/(d-f);return Math.abs(p)<Math.EPSILON5?p=0:Math.abs(p-1)<Math.EPSILON5&&(p=1),Math.abs(g)<Math.EPSILON5?g=0:Math.abs(g-1)<Math.EPSILON5&&(g=1),i.x=p,i.y=g,i}var vit=new H;function nq(e,t,n,i,r){let o=e.encoding,s=e.vertices;if(r.height=o.decodeHeight(s,t),o.hasVertexNormals)o.getOctEncodedNormal(s,t,r.encodedNormal);else{let a=r.encodedNormal;a.x=0,a.y=0}}var wit=new H,Dit=new h;function Iit(e,t,n,i,r,o,s,a,c,l){let f=i.encoding,d=i.vertices,p=sL(t,n,f.decodeTextureCoordinates(d,r,Mu),Mu),g=sL(t,n,f.decodeTextureCoordinates(d,o,tq),tq),m;c?m=(s-p.x)/(g.x-p.x):m=(a-p.y)/(g.y-p.y);let A=f.decodeHeight(d,r),x=f.decodeHeight(d,o),C=n.rectangle;eC.longitude=P.lerp(C.west,C.east,s),eC.latitude=P.lerp(C.south,C.north,a),l.height=eC.height=P.lerp(A,x,m);let T;if(f.hasVertexNormals){let E=f.getOctEncodedNormal(d,r,vit),S=f.getOctEncodedNormal(d,o,wit),v=qn.octDecode(E.x,E.y,dS),D=qn.octDecode(S.x,S.y,Dit);T=h.lerp(v,D,m,dS),h.normalize(T,T),qn.octEncode(T,l.encodedNormal)}else T=e.geodeticSurfaceNormalCartographic(eC,dS),qn.octEncode(T,l.encodedNormal)}function Xpe(e,t,n,i,r,o){o.height=r;let s=t.geodeticSurfaceNormalCartographic(eC,dS);qn.octEncode(s,o.encodedNormal)}function iz(e,t,n,i,r,o,s,a,c,l,f){if(qpe(e,t,a,s,!1,n,i,f)||qpe(e,t,l,c,!0,n,i,f))return f;let p;if(rq(r,o))return n===0?i===0?p=o.eastIndicesNorthToSouth[0]:p=o.southIndicesEastToWest[0]:i===0?p=o.northIndicesWestToEast[0]:p=o.westIndicesSouthToNorth[0],nq(o,p,n,i,f),f;let g;if(n===0?i===0?g=rz(e.westMeshes,e.westTiles,_n.EAST,e.southMeshes,e.southTiles,_n.NORTH,n,i):g=rz(e.northMeshes,e.northTiles,_n.SOUTH,e.westMeshes,e.westTiles,_n.EAST,n,i):i===0?g=rz(e.southMeshes,e.southTiles,_n.NORTH,e.eastMeshes,e.eastTiles,_n.WEST,n,i):g=rz(e.eastMeshes,e.eastTiles,_n.WEST,e.northMeshes,e.northTiles,_n.SOUTH,n,i),u(g))return Xpe(e,t,n,i,g,f),f}function rz(e,t,n,i,r,o,s,a){let c=jpe(e,t,!1,n,s,a),l=jpe(i,r,!0,o,s,a);return u(c)&&u(l)?(c+l)*.5:u(c)?c:l}function oz(e,t,n,i,r,o,s,a,c){for(let l=0;l<o.length;++l)r=Pit(e,t,n,i,r,o[l],s[l],a,c);return r}function Pit(e,t,n,i,r,o,s,a,c){let l=o.rectangle;a===_n.EAST&&e.tile.x===0?(l=le.clone(o.rectangle,sz),l.west-=P.TWO_PI,l.east-=P.TWO_PI):a===_n.WEST&&o.x===0&&(l=le.clone(o.rectangle,sz),l.west+=P.TWO_PI,l.east+=P.TWO_PI);let f=e.tile.rectangle,d,p;r>0&&(n.decodeTextureCoordinates(i,r-1,Mu),d=Mu.x,p=Mu.y);let g,m;switch(a){case _n.WEST:g=s.westIndicesSouthToNorth,m=!1;break;case _n.NORTH:g=s.northIndicesWestToEast,m=!0;break;case _n.EAST:g=s.eastIndicesNorthToSouth,m=!1;break;case _n.SOUTH:g=s.southIndicesEastToWest,m=!0;break}let A=o,x=e.tile,C=s.encoding,T=s.vertices,E=n.stride,S,v;C.hasWebMercatorT&&(S=Oi.geodeticLatitudeToMercatorAngle(f.south),v=1/(Oi.geodeticLatitudeToMercatorAngle(f.north)-S));for(let D=0;D<g.length;++D){let M=g[D],O=C.decodeTextureCoordinates(T,M,Mu);sL(A,x,O,O);let B=O.x,L=O.y,_=m?B:L;if(_<0||_>1||Math.abs(B-d)<P.EPSILON5&&Math.abs(L-p)<P.EPSILON5)continue;let b=Math.abs(B)<P.EPSILON5||Math.abs(B-1)<P.EPSILON5,w=Math.abs(L)<P.EPSILON5||Math.abs(L-1)<P.EPSILON5;if(b&&w)continue;let I=C.decodePosition(T,M,dS),R=C.decodeHeight(T,M),F;C.hasVertexNormals?F=C.getOctEncodedNormal(T,M,eq):(F=eq,F.x=0,F.y=0);let k=L;if(C.hasWebMercatorT){let G=P.lerp(f.south,f.north,L);k=(Oi.geodeticLatitudeToMercatorAngle(G)-S)*v}let V;n.hasGeodeticSurfaceNormals&&(V=t.geodeticSurfaceNormal(I,iq)),n.encode(i,r*E,I,O,R,F,k,V),c.minimumHeight=Math.min(c.minimumHeight,R),c.maximumHeight=Math.max(c.maximumHeight,R),++r}return r}function jpe(e,t,n,i,r,o){let s,a,c;n?(s=0,a=e.length,c=1):(s=e.length-1,a=-1,c=-1);for(let l=s;l!==a;l+=c){let f=e[l],d=t[l];if(!rq(d,f))continue;let p;switch(i){case _n.WEST:p=f.westIndicesSouthToNorth;break;case _n.SOUTH:p=f.southIndicesEastToWest;break;case _n.EAST:p=f.eastIndicesNorthToSouth;break;case _n.NORTH:p=f.northIndicesWestToEast;break}let g=p[n?0:p.length-1];if(u(g))return f.encoding.decodeHeight(f.vertices,g)}}function rq(e,t){return u(t)&&(!u(e.data.fill)||!e.data.fill.changedThisFrame)}function qpe(e,t,n,i,r,o,s,a){let c,l,f,d,p,g=i[r?0:n.length-1],m=n[r?0:n.length-1];if(rq(g,m)&&(o===0?s===0?(c=r?m.northIndicesWestToEast:m.eastIndicesNorthToSouth,l=r,f=r):(c=r?m.eastIndicesNorthToSouth:m.southIndicesEastToWest,l=!r,f=!1):s===0?(c=r?m.westIndicesSouthToNorth:m.northIndicesWestToEast,l=!r,f=!0):(c=r?m.southIndicesEastToWest:m.westIndicesSouthToNorth,l=r,f=!r),c.length>0)){d=r?0:c.length-1,p=c[d],m.encoding.decodeTextureCoordinates(m.vertices,p,Mu);let A=sL(g,e.tile,Mu,Mu);if(A.x===o&&A.y===s)return nq(m,p,o,s,a),!0;if(d=Pr(c,l?o:s,function(x,C){m.encoding.decodeTextureCoordinates(m.vertices,x,Mu);let T=sL(g,e.tile,Mu,Mu);return f?l?T.x-o:T.y-s:l?o-T.x:s-T.y}),d<0){if(d=~d,d>0&&d<c.length)return Iit(t,g,e.tile,m,c[d-1],c[d],o,s,l,a),!0}else return nq(m,c[d],o,s,a),!0}return!1}var Oit=[new h,new h,new h,new h];function Mit(e,t,n,i,r,o){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=Oit;return h.fromRadians(n.west,n.south,r,a,c[0]),h.fromRadians(n.east,n.south,r,a,c[1]),h.fromRadians(n.west,n.north,r,a,c[2]),h.fromRadians(n.east,n.north,r,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,o)}var mS=hS;function eo(e){this.lightingFadeOutDistance=65e5,this.lightingFadeInDistance=9e6,this.hasWaterMask=!1,this.oceanNormalMap=void 0,this.zoomedOutOceanSpecularIntensity=.5,this.enableLighting=!1,this.dynamicAtmosphereLighting=!1,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!1,this.shadows=yn.RECEIVE_ONLY,this.vertexShadowDarkness=.3,this.fillHighlightColor=void 0,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this.undergroundColor=void 0,this.undergroundColorAlphaByDistance=void 0,this.lambertDiffuseMultiplier=0,this.materialUniformMap=void 0,this._materialUniformMap=void 0,this._quadtree=void 0,this._terrainProvider=e.terrainProvider,this._imageryLayers=e.imageryLayers,this._surfaceShaderSet=e.surfaceShaderSet,this._renderState=void 0,this._blendRenderState=void 0,this._disableCullingRenderState=void 0,this._disableCullingBlendRenderState=void 0,this._errorEvent=new ge,this._removeLayerAddedListener=this._imageryLayers.layerAdded.addEventListener(eo.prototype._onLayerAdded,this),this._removeLayerRemovedListener=this._imageryLayers.layerRemoved.addEventListener(eo.prototype._onLayerRemoved,this),this._removeLayerMovedListener=this._imageryLayers.layerMoved.addEventListener(eo.prototype._onLayerMoved,this),this._removeLayerShownListener=this._imageryLayers.layerShownOrHidden.addEventListener(eo.prototype._onLayerShownOrHidden,this),this._imageryLayersUpdatedEvent=new ge,this._layerOrderChanged=!1,this._tilesToRenderByTextureCount=[],this._drawCommands=[],this._uniformMaps=[],this._usedDrawCommands=0,this._vertexArraysToDestroy=[],this._debug={wireframe:!1,boundingSphereTile:void 0},this._baseColor=void 0,this._firstPassInitialColor=void 0,this.baseColor=new z(0,0,.5,1),this._clippingPlanes=void 0,this.cartographicLimitRectangle=le.clone(le.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1,this._oldTerrainExaggeration=void 0,this._oldTerrainExaggerationRelativeHeight=void 0}Object.defineProperties(eo.prototype,{baseColor:{get:function(){return this._baseColor},set:function(e){this._baseColor=e,this._firstPassInitialColor=se.fromColor(e,this._firstPassInitialColor)}},quadtree:{get:function(){return this._quadtree},set:function(e){this._quadtree=e}},ready:{get:function(){return u(this._terrainProvider)&&this._terrainProvider._ready&&(this._imageryLayers.length===0||this._imageryLayers.get(0).ready&&this._imageryLayers.get(0).imageryProvider._ready)}},tilingScheme:{get:function(){return this._terrainProvider.tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},imageryLayersUpdatedEvent:{get:function(){return this._imageryLayersUpdatedEvent}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){this._terrainProvider!==e&&(this._terrainProvider=e,u(this._quadtree)&&this._quadtree.invalidateAllTiles())}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){ls.setOwner(e,this,"_clippingPlanes")}}});function Rit(e,t){let n=e.loadingImagery;u(n)||(n=e.readyImagery);let i=t.loadingImagery;return u(i)||(i=t.readyImagery),n.imageryLayer._layerIndex-i.imageryLayer._layerIndex}eo.prototype.update=function(e){this._imageryLayers._update()};function Bit(e,t){let n=t.creditDisplay;u(e._terrainProvider)&&e._terrainProvider._ready&&u(e._terrainProvider.credit)&&n.addCreditToNextFrame(e._terrainProvider.credit);let i=e._imageryLayers;for(let r=0,o=i.length;r<o;++r){let s=i.get(r);s.ready&&s.imageryProvider._ready&&u(s.imageryProvider.credit)&&n.addCreditToNextFrame(s.imageryProvider.credit)}}eo.prototype.initialize=function(e){this._imageryLayers.queueReprojectionCommands(e),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(i){i.data.imagery.sort(Rit)})),Bit(this,e);let t=this._vertexArraysToDestroy,n=t.length;for(let i=0;i<n;++i)kf._freeVertexArray(t[i]);t.length=0};eo.prototype.beginUpdate=function(e){let t=this._tilesToRenderByTextureCount;for(let i=0,r=t.length;i<r;++i){let o=t[i];u(o)&&(o.length=0)}let n=this._clippingPlanes;u(n)&&n.enabled&&n.update(e),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1};eo.prototype.endUpdate=function(e){if(!u(this._renderState)){this._renderState=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:Wa.LESS}}),this._blendRenderState=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:Wa.LESS_OR_EQUAL},blending:un.ALPHA_BLEND});let s=We(this._renderState,!0);s.cull.enabled=!1,this._disableCullingRenderState=Ve.fromCache(s),s=We(this._blendRenderState,!0),s.cull.enabled=!1,this._disableCullingBlendRenderState=Ve.fromCache(s)}this._hasFillTilesThisFrame&&this._hasLoadedTilesThisFrame&&mS.updateFillTiles(this,this._quadtree._tilesToRender,e,this._vertexArraysToDestroy);let t=this.quadtree,n=e.terrainExaggeration,i=e.terrainExaggerationRelativeHeight,r=this._oldTerrainExaggeration!==n||this._oldTerrainExaggerationRelativeHeight!==i;this._oldTerrainExaggeration=n,this._oldTerrainExaggerationRelativeHeight=i,r&&t.forEachLoadedTile(function(s){s.data.updateExaggeration(s,e,t)});let o=this._tilesToRenderByTextureCount;for(let s=0,a=o.length;s<a;++s){let c=o[s];if(u(c))for(let l=0,f=c.length;l<f;++l){let d=c[l],p=d.data.tileBoundingRegion;rrt(this,d,e),e.minimumTerrainHeight=Math.min(e.minimumTerrainHeight,p.minimumHeight)}}};function $pe(e,t){let n=t.globeTranslucencyState;if(n.translucent){let i=e.renderState.blending.enabled;n.pushDerivedCommands(e,i,t)}else t.commandList.push(e)}eo.prototype.updateForPick=function(e){let t=this._drawCommands;for(let n=0,i=this._usedDrawCommands;n<i;++n)$pe(t[n],e)};eo.prototype.cancelReprojections=function(){this._imageryLayers.cancelReprojections()};eo.prototype.getLevelMaximumGeometricError=function(e){return u(this._terrainProvider)?this._terrainProvider.getLevelMaximumGeometricError(e):0};eo.prototype.loadTile=function(e,t){let n=t.data,i=!0,r;u(n)&&(i=n.boundingVolumeSourceTile!==t||t._lastSelectionResult===Qn.CULLED_BUT_NEEDED,r=n.terrainState),kf.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i),n=t.data,i&&r!==t.data.terrainState&&this.computeTileVisibility(t,e,this.quadtree.occluders)!==lo.NONE&&n.boundingVolumeSourceTile===t&&(i=!1,kf.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i))};var Lit=new ae,e_e=new le,Nit=new le,Fit=new me;function lz(e,t){if(t.west<t.east)return t;let n=le.clone(t,Nit);return le.center(e,Fit).longitude>0?n.east=P.PI:n.west=-P.PI,n}function t_e(e,t){if(t.cameraUnderground||t.globeTranslucencyState.translucent)return!0;if(e.backFaceCulling)return!1;let n=e._clippingPlanes;return!!(u(n)&&n.enabled||!le.equals(e.cartographicLimitRectangle,le.MAX_VALUE))}eo.prototype.computeTileVisibility=function(e,t,n){let i=this.computeDistanceToTile(e,t);e._distance=i;let r=t_e(this,t);if(t.fog.enabled&&!r&&P.fog(i,t.fog.density)>=1)return lo.NONE;let o=e.data,s=o.tileBoundingRegion;if(o.boundingVolumeSourceTile===void 0)return lo.PARTIAL;let a=t.cullingVolume,c=s.boundingVolume;u(c)||(c=s.boundingSphere),o.clippedByBoundaries=!1;let l=lz(e.rectangle,this.cartographicLimitRectangle),f=le.simpleIntersection(l,e.rectangle,e_e);if(!u(f))return lo.NONE;if(le.equals(f,e.rectangle)||(o.clippedByBoundaries=!0),t.mode!==ne.SCENE3D&&(c=Lit,ae.fromRectangleWithHeights2D(e.rectangle,t.mapProjection,s.minimumHeight,s.maximumHeight,c),h.fromElements(c.center.z,c.center.x,c.center.y,c.center),t.mode===ne.MORPHING&&u(o.renderedMesh)&&(c=ae.union(s.boundingSphere,c,c))),!u(c))return lo.PARTIAL;let d=this._clippingPlanes;if(u(d)&&d.enabled){let A=d.computeIntersectionWithBoundingVolume(c);if(e.isClipped=A!==Qt.INSIDE,A===Qt.OUTSIDE)return lo.NONE}let p,g=a.computeVisibility(c);if(g===Qt.OUTSIDE?p=lo.NONE:g===Qt.INTERSECTING?p=lo.PARTIAL:g===Qt.INSIDE&&(p=lo.FULL),p===lo.NONE)return p;let m=t.mode===ne.SCENE3D&&t.camera.frustum instanceof en;if(t.mode===ne.SCENE3D&&!m&&u(n)&&!r){let A=o.occludeePointInScaledSpace;return!u(A)||n.ellipsoid.isScaledSpacePointVisiblePossiblyUnderEllipsoid(A,s.minimumHeight)?p:lo.NONE}return p};eo.prototype.canRefine=function(e){return u(e.data.terrainData)?!0:this.terrainProvider.getTileDataAvailable(e.x*2,e.y*2,e.level+1)!==void 0};var Uit=[],Vit=[];eo.prototype.canRenderWithoutLosingDetail=function(e,t){let n=e.data,i=Uit;i.length=this._imageryLayers.length;let r=!1,o=!1,s;u(n)&&(r=n.terrainState===Ar.READY,o=!0,s=n.imagery);let a,c;for(a=0,c=i.length;a<c;++a)i[a]=o;if(u(s))for(a=0,c=s.length;a<c;++a){let d=s[a],p=d.loadingImagery,g=!u(p)||p.state===fi.FAILED||p.state===fi.INVALID,m=(d.loadingImagery||d.readyImagery).imageryLayer._layerIndex;i[m]=g&&i[m]}let l=this.quadtree._lastSelectionFrameNumber,f=Vit;for(f.length=0,f.push(e.southwestChild,e.southeastChild,e.northwestChild,e.northeastChild);f.length>0;){let d=f.pop(),p=d._lastSelectionResultFrame===l?d._lastSelectionResult:Qn.NONE;if(p===Qn.RENDERED){let g=d.data;if(!u(g))continue;if(!r&&d.data.terrainState===Ar.READY)return!1;let m=d.data.imagery;for(a=0,c=m.length;a<c;++a){let A=m[a],x=A.loadingImagery,C=!u(x)||x.state===fi.FAILED||x.state===fi.INVALID,T=(A.loadingImagery||A.readyImagery).imageryLayer._layerIndex;if(C&&!i[T])return!1}}else p===Qn.REFINED&&f.push(d.southwestChild,d.southeastChild,d.northwestChild,d.northeastChild)}return!0};var kit=new h;eo.prototype.computeTileLoadPriority=function(e,t){let n=e.data;if(n===void 0)return 0;let i=n.tileBoundingRegion.boundingVolume;if(i===void 0)return 0;let r=t.camera.positionWC,o=t.camera.directionWC,s=h.subtract(i.center,r,kit),a=h.magnitude(s);return a<P.EPSILON5?0:(h.divideByScalar(s,a,s),(1-h.dot(s,o))*e._distance)};var Kpe=new N,cz=new N,zit=new se,Hit=new se,Git=new se,Wit=new h,Jpe=new h,jit=new h,qit=new h;eo.prototype.showTileThisFrame=function(e,t){let n=0,i=e.data.imagery;for(let a=0,c=i.length;a<c;++a){let l=i[a];u(l.readyImagery)&&l.readyImagery.imageryLayer.alpha!==0&&++n}let r=this._tilesToRenderByTextureCount[n];u(r)||(r=[],this._tilesToRenderByTextureCount[n]=r),r.push(e);let o=e.data;u(o.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;let s=this._debug;++s.tilesRendered,s.texturesRendered+=n};var Yit=[new h,new h,new h,new h];function Zpe(e,t,n,i,r,o){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=Yit;return h.fromRadians(n.west,n.south,r,a,c[0]),h.fromRadians(n.east,n.south,r,a,c[1]),h.fromRadians(n.west,n.north,r,a,c[2]),h.fromRadians(n.east,n.north,r,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,o)}eo.prototype.computeDistanceToTile=function(e,t){Xit(e,this,t);let n=e.data;if(n.boundingVolumeSourceTile===void 0)return 9999999999;let r=n.tileBoundingRegion,o=r.minimumHeight,s=r.maximumHeight;if(n.boundingVolumeSourceTile!==e){let c=t.camera.positionCartographic.height,l=Math.abs(c-o),f=Math.abs(c-s);l>f?(r.minimumHeight=o,r.maximumHeight=o):(r.minimumHeight=s,r.maximumHeight=s)}let a=r.distanceToCamera(t);return r.minimumHeight=o,r.maximumHeight=s,a};function Xit(e,t,n){let i=e.data;i===void 0&&(i=e.data=new kf);let r=e.tilingScheme.ellipsoid;i.tileBoundingRegion===void 0&&(i.tileBoundingRegion=new Af({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:r,minimumHeight:0,maximumHeight:0}));let o=i.tileBoundingRegion,s=o.minimumHeight,a=o.maximumHeight,c=!1,l=e,f=i.mesh,d=i.terrainData;if(f!==void 0&&f.minimumHeight!==void 0&&f.maximumHeight!==void 0)o.minimumHeight=f.minimumHeight,o.maximumHeight=f.maximumHeight,c=!0;else if(d!==void 0&&d._minimumHeight!==void 0&&d._maximumHeight!==void 0)o.minimumHeight=d._minimumHeight,o.maximumHeight=d._maximumHeight;else{o.minimumHeight=Number.NaN,o.maximumHeight=Number.NaN;let p=e.parent;for(;p!==void 0;){let g=p.data;if(g!==void 0){let m=g.mesh,A=g.terrainData;if(m!==void 0&&m.minimumHeight!==void 0&&m.maximumHeight!==void 0){o.minimumHeight=m.minimumHeight,o.maximumHeight=m.maximumHeight;break}else if(A!==void 0&&A._minimumHeight!==void 0&&A._maximumHeight!==void 0){o.minimumHeight=A._minimumHeight,o.maximumHeight=A._maximumHeight;break}}p=p.parent}l=p}if(l!==void 0){let p=n.terrainExaggeration,g=n.terrainExaggerationRelativeHeight;if(p!==1&&(c=!1,o.minimumHeight=Dc.getHeight(o.minimumHeight,p,g),o.maximumHeight=Dc.getHeight(o.maximumHeight,p,g)),c)i.boundingVolumeIsFromMesh||(o._orientedBoundingBox=On.clone(f.orientedBoundingBox,o._orientedBoundingBox),o._boundingSphere=ae.clone(f.boundingSphere3D,o._boundingSphere),i.occludeePointInScaledSpace=h.clone(f.occludeePointInScaledSpace,i.occludeePointInScaledSpace),u(i.occludeePointInScaledSpace)||(i.occludeePointInScaledSpace=Zpe(t,o._orientedBoundingBox.center,e.rectangle,o.minimumHeight,o.maximumHeight,i.occludeePointInScaledSpace)));else{let A=o._orientedBoundingBox===void 0||o._boundingSphere===void 0;(o.minimumHeight!==s||o.maximumHeight!==a||A)&&(o.computeBoundingVolumes(r),i.occludeePointInScaledSpace=Zpe(t,o._orientedBoundingBox.center,e.rectangle,o.minimumHeight,o.maximumHeight,i.occludeePointInScaledSpace))}i.boundingVolumeSourceTile=l,i.boundingVolumeIsFromMesh=c}else i.boundingVolumeSourceTile=void 0,i.boundingVolumeIsFromMesh=!1}eo.prototype.isDestroyed=function(){return!1};eo.prototype.destroy=function(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._removeLayerAddedListener=this._removeLayerAddedListener&&this._removeLayerAddedListener(),this._removeLayerRemovedListener=this._removeLayerRemovedListener&&this._removeLayerRemovedListener(),this._removeLayerMovedListener=this._removeLayerMovedListener&&this._removeLayerMovedListener(),this._removeLayerShownListener=this._removeLayerShownListener&&this._removeLayerShownListener(),ue(this)};function Kit(e,t,n){return function(i){let r,o,s=-1,a=i.data.imagery,c=a.length,l;for(l=0;l<c;++l)if(r=a[l],o=y(r.readyImagery,r.loadingImagery),o.imageryLayer===t){s=l;break}if(s!==-1){let f=s+e;if(r=a[f],o=u(r)?y(r.readyImagery,r.loadingImagery):void 0,!u(o)||o.imageryLayer!==t)return!t._createTileImagerySkeletons(i,n,f);for(l=s;l<f;++l)a[l].freeResources();a.splice(s,e)}return!0}}eo.prototype._onLayerAdded=function(e,t){if(!this.isDestroyed()&&e.show){let n=this._terrainProvider,i=this,r=this._imageryLayersUpdatedEvent,o=function(){e._imageryCache={},i._quadtree.forEachLoadedTile(function(s){if(u(s._loadedCallbacks[e._layerIndex]))return;let a,c=s.data.imagery,l=c.length,f=-1,d=0;for(a=0;a<l;++a){let g=c[a];if(y(g.readyImagery,g.loadingImagery).imageryLayer===e)f===-1&&(f=a),++d;else if(f!==-1)break}if(f===-1)return;let p=f+d;e._createTileImagerySkeletons(s,n,p)&&(s._loadedCallbacks[e._layerIndex]=Kit(d,e,n),s.state=Us.LOADING)})};if(e.ready){let s=e.imageryProvider;s._reload=o}this._quadtree.forEachLoadedTile(function(s){e._createTileImagerySkeletons(s,n)&&(s.state=Us.LOADING,s.level!==0&&(s._lastSelectionResultFrame!==i.quadtree._lastSelectionFrameNumber||s._lastSelectionResult!==Qn.RENDERED)&&(s.renderable=!1))}),this._layerOrderChanged=!0,r.raiseEvent()}};eo.prototype._onLayerRemoved=function(e,t){this._quadtree.forEachLoadedTile(function(n){let i=n.data.imagery,r=-1,o=0;for(let s=0,a=i.length;s<a;++s){let c=i[s],l=c.loadingImagery;if(u(l)||(l=c.readyImagery),l.imageryLayer===e)r===-1&&(r=s),c.freeResources(),++o;else if(r!==-1)break}r!==-1&&i.splice(r,o)}),u(e.imageryProvider)&&(e.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()};eo.prototype._onLayerMoved=function(e,t,n){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()};eo.prototype._onLayerShownOrHidden=function(e,t,n){n?this._onLayerAdded(e,t):this._onLayerRemoved(e,t)};var Jit=new N,Zit=new N;function Qpe(e,t){let n={u_initialColor:function(){return this.properties.initialColor},u_fillHighlightColor:function(){return this.properties.fillHighlightColor},u_zoomedOutOceanSpecularIntensity:function(){return this.properties.zoomedOutOceanSpecularIntensity},u_oceanNormalMap:function(){return this.properties.oceanNormalMap},u_atmosphereLightIntensity:function(){return this.properties.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return this.properties.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return this.properties.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return this.properties.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return this.properties.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return this.properties.atmosphereMieAnisotropy},u_lightingFadeDistance:function(){return this.properties.lightingFadeDistance},u_nightFadeDistance:function(){return this.properties.nightFadeDistance},u_center3D:function(){return this.properties.center3D},u_terrainExaggerationAndRelativeHeight:function(){return this.properties.terrainExaggerationAndRelativeHeight},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){let i=e.context.uniformState.view,r=N.multiplyByPoint(i,this.properties.rtc,Jpe);return N.setTranslation(i,r,Kpe),Kpe},u_modifiedModelViewProjection:function(){let i=e.context.uniformState.view,r=e.context.uniformState.projection,o=N.multiplyByPoint(i,this.properties.rtc,Jpe);return N.setTranslation(i,o,cz),N.multiply(r,cz,cz),cz},u_dayTextures:function(){return this.properties.dayTextures},u_dayTextureTranslationAndScale:function(){return this.properties.dayTextureTranslationAndScale},u_dayTextureTexCoordsRectangle:function(){return this.properties.dayTextureTexCoordsRectangle},u_dayTextureUseWebMercatorT:function(){return this.properties.dayTextureUseWebMercatorT},u_dayTextureAlpha:function(){return this.properties.dayTextureAlpha},u_dayTextureNightAlpha:function(){return this.properties.dayTextureNightAlpha},u_dayTextureDayAlpha:function(){return this.properties.dayTextureDayAlpha},u_dayTextureBrightness:function(){return this.properties.dayTextureBrightness},u_dayTextureContrast:function(){return this.properties.dayTextureContrast},u_dayTextureHue:function(){return this.properties.dayTextureHue},u_dayTextureSaturation:function(){return this.properties.dayTextureSaturation},u_dayTextureOneOverGamma:function(){return this.properties.dayTextureOneOverGamma},u_dayIntensity:function(){return this.properties.dayIntensity},u_southAndNorthLatitude:function(){return this.properties.southAndNorthLatitude},u_southMercatorYAndOneOverHeight:function(){return this.properties.southMercatorYAndOneOverHeight},u_waterMask:function(){return this.properties.waterMask},u_waterMaskTranslationAndScale:function(){return this.properties.waterMaskTranslationAndScale},u_minMaxHeight:function(){return this.properties.minMaxHeight},u_scaleAndBias:function(){return this.properties.scaleAndBias},u_dayTextureSplit:function(){return this.properties.dayTextureSplit},u_dayTextureCutoutRectangles:function(){return this.properties.dayTextureCutoutRectangles},u_clippingPlanes:function(){let i=t._clippingPlanes;return u(i)&&u(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){let i=t._clippingPlanes,r=u(i)?N.multiply(e.context.uniformState.view,i.modelMatrix,Jit):N.IDENTITY;return N.inverseTranspose(r,Zit)},u_clippingPlanesEdgeStyle:function(){let i=this.properties.clippingPlanesEdgeColor;return i.alpha=this.properties.clippingPlanesEdgeWidth,i},u_minimumBrightness:function(){return e.fog.minimumBrightness},u_hsbShift:function(){return this.properties.hsbShift},u_colorsToAlpha:function(){return this.properties.colorsToAlpha},u_frontFaceAlphaByDistance:function(){return this.properties.frontFaceAlphaByDistance},u_backFaceAlphaByDistance:function(){return this.properties.backFaceAlphaByDistance},u_translucencyRectangle:function(){return this.properties.localizedTranslucencyRectangle},u_undergroundColor:function(){return this.properties.undergroundColor},u_undergroundColorAlphaByDistance:function(){return this.properties.undergroundColorAlphaByDistance},u_lambertDiffuseMultiplier:function(){return this.properties.lambertDiffuseMultiplier},u_vertexShadowDarkness:function(){return this.properties.vertexShadowDarkness},properties:{initialColor:new se(0,0,.5,1),fillHighlightColor:new z(0,0,0,0),zoomedOutOceanSpecularIntensity:.5,oceanNormalMap:void 0,lightingFadeDistance:new H(65e5,9e6),nightFadeDistance:new H(1e7,4e7),atmosphereLightIntensity:10,atmosphereRayleighCoefficient:new h(55e-7,13e-6,284e-7),atmosphereMieCoefficient:new h(21e-6,21e-6,21e-6),atmosphereRayleighScaleHeight:1e4,atmosphereMieScaleHeight:3200,atmosphereMieAnisotropy:.9,hsbShift:new h,center3D:void 0,rtc:new h,modifiedModelView:new N,tileRectangle:new se,terrainExaggerationAndRelativeHeight:new H(1,0),dayTextures:[],dayTextureTranslationAndScale:[],dayTextureTexCoordsRectangle:[],dayTextureUseWebMercatorT:[],dayTextureAlpha:[],dayTextureNightAlpha:[],dayTextureDayAlpha:[],dayTextureBrightness:[],dayTextureContrast:[],dayTextureHue:[],dayTextureSaturation:[],dayTextureOneOverGamma:[],dayTextureSplit:[],dayTextureCutoutRectangles:[],dayIntensity:0,colorsToAlpha:[],southAndNorthLatitude:new H,southMercatorYAndOneOverHeight:new H,waterMask:void 0,waterMaskTranslationAndScale:new se,minMaxHeight:new H,scaleAndBias:new N,clippingPlanesEdgeColor:z.clone(z.WHITE),clippingPlanesEdgeWidth:0,localizedCartographicLimitRectangle:new se,frontFaceAlphaByDistance:new se,backFaceAlphaByDistance:new se,localizedTranslucencyRectangle:new se,undergroundColor:z.clone(z.TRANSPARENT),undergroundColorAlphaByDistance:new se,lambertDiffuseMultiplier:0,vertexShadowDarkness:0}};return u(t.materialUniformMap)?_t(n,t.materialUniformMap):n}function Qit(e,t,n){let i=n.data,r,o;if(u(i.vertexArray)?(r=i.mesh,o=i.vertexArray):u(i.fill)&&u(i.fill.vertexArray)&&(r=i.fill.mesh,o=i.fill.vertexArray),!(!u(r)||!u(o))){if(u(i.wireframeVertexArray)){if(i.wireframeVertexArray.mesh===r)return;i.wireframeVertexArray.destroy(),i.wireframeVertexArray=void 0}i.wireframeVertexArray=$it(e,o,r),i.wireframeVertexArray.mesh=r}}function $it(e,t,n){let r={indices:n.indices,primitiveType:Be.TRIANGLES};Ln.toWireframe(r);let o=r.indices,s=ht.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:Ue.fromSizeInBytes(o.BYTES_PER_ELEMENT)});return new oi({context:e,attributes:t._attributes,indexBuffer:s})}var n_e,i_e,uz;(function(){let e=new xt({geometry:ld.fromDimensions({dimensions:new h(2,2,2)})}),t=new xt({geometry:new r_({radius:1})}),n=new N,i,r;function o(s){return new bn({geometryInstances:s,appearance:new rn({translucent:!1,flat:!0}),asynchronous:!1})}n_e=function(s,a){return s===i||(uz(),i=s,n=N.fromRotationTranslation(s.halfAxes,s.center,n),e.modelMatrix=n,e.attributes.color=kt.fromColor(a),r=o(e)),r},i_e=function(s,a){return s===i||(uz(),i=s,n=N.fromTranslation(s.center,n),n=N.multiplyByUniformScale(n,s.radius,n),t.modelMatrix=n,t.attributes.color=kt.fromColor(a),r=o(t)),r},uz=function(){u(r)&&(r.destroy(),r=void 0,i=void 0)}})();var ert=new se(0,0,0,0),trt={frameState:void 0,surfaceTile:void 0,numberOfDayTextures:void 0,applyBrightness:void 0,applyContrast:void 0,applyHue:void 0,applySaturation:void 0,applyGamma:void 0,applyAlpha:void 0,applyDayNightAlpha:void 0,applySplit:void 0,showReflectiveOcean:void 0,showOceanWaves:void 0,enableLighting:void 0,dynamicAtmosphereLighting:void 0,dynamicAtmosphereLightingFromSun:void 0,showGroundAtmosphere:void 0,perFragmentGroundAtmosphere:void 0,hasVertexNormals:void 0,useWebMercatorProjection:void 0,enableFog:void 0,enableClippingPlanes:void 0,clippingPlanes:void 0,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0,hasGeodeticSurfaceNormals:void 0,hasExaggeration:void 0},nrt=z.TRANSPARENT,irt=new Bt;function rrt(e,t,n){let i=t.data;u(i.vertexArray)||(i.fill===void 0&&(i.fill=new mS(t)),i.fill.update(e,n));let r=n.creditDisplay,o=i.terrainData;if(u(o)&&u(o.credits)){let Qe=o.credits;for(let pe=0,Ee=Qe.length;pe<Ee;++pe)r.addCreditToNextFrame(Qe[pe])}let s=zt.maximumTextureImageUnits,a=i.waterMaskTexture,c=i.waterMaskTranslationAndScale;!u(a)&&u(i.fill)&&(a=i.fill.waterMaskTexture,c=i.fill.waterMaskTranslationAndScale);let l=n.cameraUnderground,f=n.globeTranslucencyState,d=f.translucent,p=f.frontFaceAlphaByDistance,g=f.backFaceAlphaByDistance,m=f.rectangle,A=y(e.undergroundColor,nrt),x=y(e.undergroundColorAlphaByDistance,irt),C=t_e(e,n)&&n.mode===ne.SCENE3D&&A.alpha>0&&(x.nearValue>0||x.farValue>0),T=e.lambertDiffuseMultiplier,E=e.vertexShadowDarkness,S=e.hasWaterMask&&u(a),v=e.oceanNormalMap,D=S&&u(v),M=u(e.terrainProvider)&&e.terrainProvider._ready&&e.terrainProvider.hasVertexNormals,O=n.fog.enabled&&n.fog.renderable&&!l,B=e.showGroundAtmosphere&&n.mode===ne.SCENE3D,L=yn.castShadows(e.shadows)&&!d,_=yn.receiveShadows(e.shadows)&&!d,b=e.hueShift,w=e.saturationShift,I=e.brightnessShift,R=!(P.equalsEpsilon(b,0,P.EPSILON7)&&P.equalsEpsilon(w,0,P.EPSILON7)&&P.equalsEpsilon(I,0,P.EPSILON7)),F=!1;if(B){let Qe=h.magnitude(n.camera.positionWC),pe=e.nightFadeOutDistance;F=Qe>pe}S&&--s,D&&--s,u(n.shadowState)&&n.shadowState.shadowsEnabled&&--s,u(e.clippingPlanes)&&e.clippingPlanes.enabled&&--s,s-=f.numberOfTextureUniforms;let k=i.renderedMesh,V=k.center,G=k.encoding,U=i.tileBoundingRegion,Y=n.terrainExaggeration,W=n.terrainExaggerationRelativeHeight,Z=Y!==1,j=G.hasGeodeticSurfaceNormals,K=zit,J=0,_e=0,xe=0,oe=0,Ae=!1;if(n.mode!==ne.SCENE3D){let Qe=n.mapProjection,pe=Qe.project(le.southwest(t.rectangle),jit),Ee=Qe.project(le.northeast(t.rectangle),qit);if(K.x=pe.x,K.y=pe.y,K.z=Ee.x,K.w=Ee.y,n.mode!==ne.MORPHING&&(V=Wit,V.x=0,V.y=(K.z+K.x)*.5,V.z=(K.w+K.y)*.5,K.x-=V.y,K.y-=V.z,K.z-=V.y,K.w-=V.z),n.mode===ne.SCENE2D&&G.quantization===Fs.BITS12){let Ge=1/(Math.pow(2,12)-1)*.5,xi=(K.z-K.x)*Ge,Ci=(K.w-K.y)*Ge;K.x-=xi,K.y-=Ci,K.z+=xi,K.w+=Ci}Qe instanceof Oi&&(J=t.rectangle.south,_e=t.rectangle.north,xe=Oi.geodeticLatitudeToMercatorAngle(J),oe=1/(Oi.geodeticLatitudeToMercatorAngle(_e)-xe),Ae=!0)}let he=trt;he.frameState=n,he.surfaceTile=i,he.showReflectiveOcean=S,he.showOceanWaves=D,he.enableLighting=e.enableLighting,he.dynamicAtmosphereLighting=e.dynamicAtmosphereLighting,he.dynamicAtmosphereLightingFromSun=e.dynamicAtmosphereLightingFromSun,he.showGroundAtmosphere=B,he.atmosphereLightIntensity=e.atmosphereLightIntensity,he.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,he.atmosphereMieCoefficient=e.atmosphereMieCoefficient,he.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,he.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,he.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,he.perFragmentGroundAtmosphere=F,he.hasVertexNormals=M,he.useWebMercatorProjection=Ae,he.clippedByBoundaries=i.clippedByBoundaries,he.hasGeodeticSurfaceNormals=j,he.hasExaggeration=Z;let Se=i.imagery,Ie=0,Ne=Se.length,qe=e.showSkirts&&!l&&!d,pt=e.backFaceCulling&&!l&&!d,Gt=pt?e._renderState:e._disableCullingRenderState,fn=pt?e._blendRenderState:e._disableCullingBlendRenderState,ft=Gt,pn=e._firstPassInitialColor,Bn=n.context;if(u(e._debug.boundingSphereTile)||uz(),e._materialUniformMap!==e.materialUniformMap){e._materialUniformMap=e.materialUniformMap;let Qe=e._drawCommands.length;for(let pe=0;pe<Qe;++pe)e._uniformMaps[pe]=Qpe(n,e)}do{let Qe=0,pe,Ee;if(e._drawCommands.length<=e._usedDrawCommands?(pe=new nt,pe.owner=t,pe.cull=!1,pe.boundingVolume=new ae,pe.orientedBoundingBox=void 0,Ee=Qpe(n,e),e._drawCommands.push(pe),e._uniformMaps.push(Ee)):(pe=e._drawCommands[e._usedDrawCommands],Ee=e._uniformMaps[e._usedDrawCommands]),pe.owner=t,++e._usedDrawCommands,t===e._debug.boundingSphereTile){let Nr=U.boundingVolume,Zo=U.boundingSphere;u(Nr)?n_e(Nr,z.RED).update(n):u(Zo)&&i_e(Zo,z.RED).update(n)}let Ge=Ee.properties;se.clone(pn,Ge.initialColor),Ge.oceanNormalMap=v,Ge.lightingFadeDistance.x=e.lightingFadeOutDistance,Ge.lightingFadeDistance.y=e.lightingFadeInDistance,Ge.nightFadeDistance.x=e.nightFadeOutDistance,Ge.nightFadeDistance.y=e.nightFadeInDistance,Ge.atmosphereLightIntensity=e.atmosphereLightIntensity,Ge.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,Ge.atmosphereMieCoefficient=e.atmosphereMieCoefficient,Ge.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,Ge.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,Ge.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,Ge.zoomedOutOceanSpecularIntensity=e.zoomedOutOceanSpecularIntensity;let xi=l?g:p,Ci=l?p:g;u(xi)&&(se.fromElements(xi.near,xi.nearValue,xi.far,xi.farValue,Ge.frontFaceAlphaByDistance),se.fromElements(Ci.near,Ci.nearValue,Ci.far,Ci.farValue,Ge.backFaceAlphaByDistance)),se.fromElements(x.near,x.nearValue,x.far,x.farValue,Ge.undergroundColorAlphaByDistance),z.clone(A,Ge.undergroundColor),Ge.lambertDiffuseMultiplier=T,Ge.vertexShadowDarkness=E;let Ir=!u(i.vertexArray)&&u(e.fillHighlightColor)&&e.fillHighlightColor.alpha>0;Ir&&z.clone(e.fillHighlightColor,Ge.fillHighlightColor),Ge.terrainExaggerationAndRelativeHeight.x=Y,Ge.terrainExaggerationAndRelativeHeight.y=W,Ge.center3D=k.center,h.clone(V,Ge.rtc),se.clone(K,Ge.tileRectangle),Ge.southAndNorthLatitude.x=J,Ge.southAndNorthLatitude.y=_e,Ge.southMercatorYAndOneOverHeight.x=xe,Ge.southMercatorYAndOneOverHeight.y=oe;let Wr=Hit,Co=lz(t.rectangle,e.cartographicLimitRectangle),Vo=Git,Cs=lz(t.rectangle,m);h.fromElements(b,w,I,Ge.hsbShift);let Re=t.rectangle,it=1/Re.width,Je=1/Re.height;Wr.x=(Co.west-Re.west)*it,Wr.y=(Co.south-Re.south)*Je,Wr.z=(Co.east-Re.west)*it,Wr.w=(Co.north-Re.south)*Je,se.clone(Wr,Ge.localizedCartographicLimitRectangle),Vo.x=(Cs.west-Re.west)*it,Vo.y=(Cs.south-Re.south)*Je,Vo.z=(Cs.east-Re.west)*it,Vo.w=(Cs.north-Re.south)*Je,se.clone(Vo,Ge.localizedTranslucencyRectangle);let Ze=O&&P.fog(t._distance,n.fog.density)>P.EPSILON3;R=R&&(Ze||B);let ot=!1,Nt=!1,Tn=!1,ar=!1,Cr=!1,Ts=!1,Jo=!1,uo=!1,Di=!1,zo=!1;for(;Qe<s&&Ie<Ne;){let Nr=Se[Ie],Zo=Nr.readyImagery;if(++Ie,!u(Zo)||Zo.imageryLayer.alpha===0)continue;let fa=Nr.useWebMercatorT?Zo.textureWebMercator:Zo.texture,fo=Zo.imageryLayer;u(Nr.textureTranslationAndScale)||(Nr.textureTranslationAndScale=fo._calculateTextureTranslationAndScale(t,Nr)),Ge.dayTextures[Qe]=fa,Ge.dayTextureTranslationAndScale[Qe]=Nr.textureTranslationAndScale,Ge.dayTextureTexCoordsRectangle[Qe]=Nr.textureCoordinateRectangle,Ge.dayTextureUseWebMercatorT[Qe]=Nr.useWebMercatorT,Ge.dayTextureAlpha[Qe]=fo.alpha,Ts=Ts||Ge.dayTextureAlpha[Qe]!==1,Ge.dayTextureNightAlpha[Qe]=fo.nightAlpha,Jo=Jo||Ge.dayTextureNightAlpha[Qe]!==1,Ge.dayTextureDayAlpha[Qe]=fo.dayAlpha,Jo=Jo||Ge.dayTextureDayAlpha[Qe]!==1,Ge.dayTextureBrightness[Qe]=fo.brightness,ot=ot||Ge.dayTextureBrightness[Qe]!==ks.DEFAULT_BRIGHTNESS,Ge.dayTextureContrast[Qe]=fo.contrast,Nt=Nt||Ge.dayTextureContrast[Qe]!==ks.DEFAULT_CONTRAST,Ge.dayTextureHue[Qe]=fo.hue,Tn=Tn||Ge.dayTextureHue[Qe]!==ks.DEFAULT_HUE,Ge.dayTextureSaturation[Qe]=fo.saturation,ar=ar||Ge.dayTextureSaturation[Qe]!==ks.DEFAULT_SATURATION,Ge.dayTextureOneOverGamma[Qe]=1/fo.gamma,Cr=Cr||Ge.dayTextureOneOverGamma[Qe]!==1/ks.DEFAULT_GAMMA,Ge.dayTextureSplit[Qe]=fo.splitDirection,uo=uo||Ge.dayTextureSplit[Qe]!==0;let Cc=Ge.dayTextureCutoutRectangles[Qe];if(u(Cc)||(Cc=Ge.dayTextureCutoutRectangles[Qe]=new se),se.clone(se.ZERO,Cc),u(fo.cutoutRectangle)){let Ra=lz(Re,fo.cutoutRectangle),an=le.simpleIntersection(Ra,Re,e_e);Di=u(an)||Di,Cc.x=(Ra.west-Re.west)*it,Cc.y=(Ra.south-Re.south)*Je,Cc.z=(Ra.east-Re.west)*it,Cc.w=(Ra.north-Re.south)*Je}let td=Ge.colorsToAlpha[Qe];u(td)||(td=Ge.colorsToAlpha[Qe]=new se);let jm=u(fo.colorToAlpha)&&fo.colorToAlphaThreshold>0;if(zo=zo||jm,jm){let Ra=fo.colorToAlpha;td.x=Ra.red,td.y=Ra.green,td.z=Ra.blue,td.w=fo.colorToAlphaThreshold}else td.w=-1;if(u(Zo.credits)){let Ra=Zo.credits;for(let an=0,we=Ra.length;an<we;++an)r.addCreditToNextFrame(Ra[an])}++Qe}Ge.dayTextures.length=Qe,Ge.waterMask=a,se.clone(c,Ge.waterMaskTranslationAndScale),Ge.minMaxHeight.x=G.minimumHeight,Ge.minMaxHeight.y=G.maximumHeight,N.clone(G.matrix,Ge.scaleAndBias);let Hn=e._clippingPlanes,In=u(Hn)&&Hn.enabled&&t.isClipped;In&&(Ge.clippingPlanesEdgeColor=z.clone(Hn.edgeColor,Ge.clippingPlanesEdgeColor),Ge.clippingPlanesEdgeWidth=Hn.edgeWidth),he.numberOfDayTextures=Qe,he.applyBrightness=ot,he.applyContrast=Nt,he.applyHue=Tn,he.applySaturation=ar,he.applyGamma=Cr,he.applyAlpha=Ts,he.applyDayNightAlpha=Jo,he.applySplit=uo,he.enableFog=Ze,he.enableClippingPlanes=In,he.clippingPlanes=Hn,he.hasImageryLayerCutout=Di,he.colorCorrect=R,he.highlightFillTile=Ir,he.colorToAlpha=zo,he.showUndergroundColor=C,he.translucent=d;let Gn=i.renderedMesh.indices.length;qe||(Gn=i.renderedMesh.indexCountWithoutSkirts),pe.shaderProgram=e._surfaceShaderSet.getShaderProgram(he),pe.castShadows=L,pe.receiveShadows=_,pe.renderState=ft,pe.primitiveType=Be.TRIANGLES,pe.vertexArray=i.vertexArray||i.fill.vertexArray,pe.count=Gn,pe.uniformMap=Ee,pe.pass=be.GLOBE,e._debug.wireframe&&(Qit(Bn,e,t),u(i.wireframeVertexArray)&&(pe.vertexArray=i.wireframeVertexArray,pe.primitiveType=Be.LINES,pe.count=Gn*2));let $n=pe.boundingVolume,Ma=pe.orientedBoundingBox;n.mode!==ne.SCENE3D?(ae.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,U.minimumHeight,U.maximumHeight,$n),h.fromElements($n.center.z,$n.center.x,$n.center.y,$n.center),n.mode===ne.MORPHING&&($n=ae.union(U.boundingSphere,$n,$n))):(pe.boundingVolume=ae.clone(U.boundingSphere,$n),pe.orientedBoundingBox=On.clone(U.boundingVolume,Ma)),pe.dirty=!0,d&&f.updateDerivedCommands(pe,n),$pe(pe,n),ft=fn,pn=ert}while(Ie<Ne)}var aL=eo;function r_e(){this._enabled=!1,this._frontFaceAlpha=1,this._frontFaceAlphaByDistance=void 0,this._backFaceAlpha=1,this._backFaceAlphaByDistance=void 0,this._rectangle=le.clone(le.MAX_VALUE)}Object.defineProperties(r_e.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabled=e}},frontFaceAlpha:{get:function(){return this._frontFaceAlpha},set:function(e){this._frontFaceAlpha=e}},frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance},set:function(e){this._frontFaceAlphaByDistance=Bt.clone(e,this._frontFaceAlphaByDistance)}},backFaceAlpha:{get:function(){return this._backFaceAlpha},set:function(e){this._backFaceAlpha=e}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance},set:function(e){this._backFaceAlphaByDistance=Bt.clone(e,this._backFaceAlphaByDistance)}},rectangle:{get:function(){return this._rectangle},set:function(e){u(e)||(e=le.clone(le.MAX_VALUE)),le.clone(e,this._rectangle)}}});var cL=r_e;function ys(){this._layers=[],this.layerAdded=new ge,this.layerRemoved=new ge,this.layerMoved=new ge,this.layerShownOrHidden=new ge}Object.defineProperties(ys.prototype,{length:{get:function(){return this._layers.length}}});ys.prototype.add=function(e,t){u(t)?this._layers.splice(t,0,e):(t=this._layers.length,this._layers.push(e)),this._update(),this.layerAdded.raiseEvent(e,t);let i=e.readyEvent.addEventListener(()=>{this.layerShownOrHidden.raiseEvent(e,e._layerIndex,e.show),i()})};ys.prototype.addImageryProvider=function(e,t){let n=new ks(e);return this.add(n,t),n};ys.prototype.remove=function(e,t){t=y(t,!0);let n=this._layers.indexOf(e);return n!==-1?(this._layers.splice(n,1),this._update(),this.layerRemoved.raiseEvent(e,n),t&&e.destroy(),!0):!1};ys.prototype.removeAll=function(e){e=y(e,!0);let t=this._layers;for(let n=0,i=t.length;n<i;n++){let r=t[n];this.layerRemoved.raiseEvent(r,n),e&&r.destroy()}this._layers=[]};ys.prototype.contains=function(e){return this.indexOf(e)!==-1};ys.prototype.indexOf=function(e){return this._layers.indexOf(e)};ys.prototype.get=function(e){return this._layers[e]};function fz(e,t){return e.indexOf(t)}function o_e(e,t,n){let i=e._layers;if(t=P.clamp(t,0,i.length-1),n=P.clamp(n,0,i.length-1),t===n)return;let r=i[t];i[t]=i[n],i[n]=r,e._update(),e.layerMoved.raiseEvent(r,n,t)}ys.prototype.raise=function(e){let t=fz(this._layers,e);o_e(this,t,t+1)};ys.prototype.lower=function(e){let t=fz(this._layers,e);o_e(this,t,t-1)};ys.prototype.raiseToTop=function(e){let t=fz(this._layers,e);t!==this._layers.length-1&&(this._layers.splice(t,1),this._layers.push(e),this._update(),this.layerMoved.raiseEvent(e,this._layers.length-1,t))};ys.prototype.lowerToBottom=function(e){let t=fz(this._layers,e);t!==0&&(this._layers.splice(t,1),this._layers.splice(0,0,e),this._update(),this.layerMoved.raiseEvent(e,0,t))};var ort=new le;function s_e(e,t,n,i){let r=e.globe._surface._tilesToRender,o;for(let a=0;!u(o)&&a<r.length;++a){let c=r[a];le.contains(c.rectangle,t)&&(o=c)}if(!u(o))return;let s=o.data.imagery;for(let a=s.length-1;a>=0;--a){let c=s[a],l=c.readyImagery;if(!u(l)||!l.imageryLayer.ready)continue;let f=l.imageryLayer.imageryProvider;if(n&&!u(f.pickFeatures)||!le.contains(l.rectangle,t))continue;let d=ort,p=1/1024;d.west=P.lerp(o.rectangle.west,o.rectangle.east,c.textureCoordinateRectangle.x-p),d.east=P.lerp(o.rectangle.west,o.rectangle.east,c.textureCoordinateRectangle.z+p),d.south=P.lerp(o.rectangle.south,o.rectangle.north,c.textureCoordinateRectangle.y-p),d.north=P.lerp(o.rectangle.south,o.rectangle.north,c.textureCoordinateRectangle.w+p),le.contains(d,t)&&i(l)}}ys.prototype.pickImageryLayers=function(e,t){let n=t.globe.pick(e,t);if(!u(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),r=[];if(s_e(t,i,!1,function(o){r.push(o.imageryLayer)}),r.length!==0)return r};ys.prototype.pickImageryLayerFeatures=function(e,t){let n=t.globe.pick(e,t);if(!u(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),r=[],o=[];if(s_e(t,i,!0,function(s){if(!s.imageryLayer.ready)return;let c=s.imageryLayer.imageryProvider.pickFeatures(s.x,s.y,s.level,i.longitude,i.latitude);u(c)&&(r.push(c),o.push(s.imageryLayer))}),r.length!==0)return Promise.all(r).then(function(s){let a=[];for(let c=0;c<s.length;++c){let l=s[c],f=o[c];if(u(l)&&l.length>0)for(let d=0;d<l.length;++d){let p=l[d];p.imageryLayer=f,u(p.position)||(p.position=i),a.push(p)}}return a})};ys.prototype.queueReprojectionCommands=function(e){let t=this._layers;for(let n=0,i=t.length;n<i;++n)t[n].queueReprojectionCommands(e)};ys.prototype.cancelReprojections=function(){let e=this._layers;for(let t=0,n=e.length;t<n;++t)e[t].cancelReprojections()};ys.prototype.isDestroyed=function(){return!1};ys.prototype.destroy=function(){return this.removeAll(!0),ue(this)};ys.prototype._update=function(){let e=!0,t=this._layers,n,i,r,o;for(r=0,o=t.length;r<o;++r)i=t[r],i._layerIndex=r,i.show?(i._isBaseLayer=e,e=!1):i._isBaseLayer=!1,i.show!==i._show&&(u(i._show)&&(u(n)||(n=[]),n.push(i)),i._show=i.show);if(u(n))for(r=0,o=n.length;r<o;++r)i=n[r],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)};var lL=ys;function a_e(e){this._ellipsoid=new m_(e.ellipsoid,h.ZERO)}Object.defineProperties(a_e.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var uL=a_e;function Qc(e){this._tilingScheme=e.tilingScheme,this._x=e.x,this._y=e.y,this._level=e.level,this._parent=e.parent,this._rectangle=this._tilingScheme.tileXYToRectangle(this._x,this._y,this._level),this._southwestChild=void 0,this._southeastChild=void 0,this._northwestChild=void 0,this._northeastChild=void 0,this.replacementPrevious=void 0,this.replacementNext=void 0,this._distance=0,this._loadPriority=0,this._customData=[],this._frameUpdated=void 0,this._lastSelectionResult=Qn.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this.state=Us.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}Qc.createLevelZeroTiles=function(e){let t=e.getNumberOfXTilesAtLevel(0),n=e.getNumberOfYTilesAtLevel(0),i=new Array(t*n),r=0;for(let o=0;o<n;++o)for(let s=0;s<t;++s)i[r++]=new Qc({tilingScheme:e,x:s,y:o,level:0});return i};Qc.prototype._updateCustomData=function(e,t,n){let i=this.customData,r,o,s;if(u(t)&&u(n)){for(i=i.filter(function(a){return n.indexOf(a)===-1}),this._customData=i,s=this._rectangle,r=0;r<t.length;++r)o=t[r],le.contains(s,o.positionCartographic)&&i.push(o);this._frameUpdated=e}else{let a=this._parent;if(u(a)&&this._frameUpdated!==a._frameUpdated){i.length=0,s=this._rectangle;let c=a.customData;for(r=0;r<c.length;++r)o=c[r],le.contains(s,o.positionCartographic)&&i.push(o);this._frameUpdated=a._frameUpdated}}};Object.defineProperties(Qc.prototype,{tilingScheme:{get:function(){return this._tilingScheme}},x:{get:function(){return this._x}},y:{get:function(){return this._y}},level:{get:function(){return this._level}},parent:{get:function(){return this._parent}},rectangle:{get:function(){return this._rectangle}},children:{get:function(){return[this.northwestChild,this.northeastChild,this.southwestChild,this.southeastChild]}},southwestChild:{get:function(){return u(this._southwestChild)||(this._southwestChild=new Qc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2+1,level:this.level+1,parent:this})),this._southwestChild}},southeastChild:{get:function(){return u(this._southeastChild)||(this._southeastChild=new Qc({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2+1,level:this.level+1,parent:this})),this._southeastChild}},northwestChild:{get:function(){return u(this._northwestChild)||(this._northwestChild=new Qc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2,level:this.level+1,parent:this})),this._northwestChild}},northeastChild:{get:function(){return u(this._northeastChild)||(this._northeastChild=new Qc({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2,level:this.level+1,parent:this})),this._northeastChild}},customData:{get:function(){return this._customData}},needsLoading:{get:function(){return this.state<Us.DONE}},eligibleForUnloading:{get:function(){let e=!0;return u(this.data)&&(e=this.data.eligibleForUnloading,u(e)||(e=!0)),e}}});Qc.prototype.findLevelZeroTile=function(e,t,n){let i=this.tilingScheme.getNumberOfXTilesAtLevel(0);if(t<0?t+=i:t>=i&&(t-=i),!(n<0||n>=this.tilingScheme.getNumberOfYTilesAtLevel(0)))return e.filter(function(r){return r.x===t&&r.y===n})[0]};Qc.prototype.findTileToWest=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x-1,this.y);if(t.southeastChild===this)return t.southwestChild;if(t.northeastChild===this)return t.northwestChild;let n=t.findTileToWest(e);if(n!==void 0)return t.southwestChild===this?n.southeastChild:n.northeastChild};Qc.prototype.findTileToEast=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x+1,this.y);if(t.southwestChild===this)return t.southeastChild;if(t.northwestChild===this)return t.northeastChild;let n=t.findTileToEast(e);if(n!==void 0)return t.southeastChild===this?n.southwestChild:n.northwestChild};Qc.prototype.findTileToSouth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y+1);if(t.northwestChild===this)return t.southwestChild;if(t.northeastChild===this)return t.southeastChild;let n=t.findTileToSouth(e);if(n!==void 0)return t.southwestChild===this?n.northwestChild:n.northeastChild};Qc.prototype.findTileToNorth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y-1);if(t.southwestChild===this)return t.northwestChild;if(t.southeastChild===this)return t.northeastChild;let n=t.findTileToNorth(e);if(n!==void 0)return t.northwestChild===this?n.southwestChild:n.southeastChild};Qc.prototype.freeResources=function(){this.state=Us.START,this.renderable=!1,this.upsampledFromParent=!1,u(this.data)&&u(this.data.freeResources)&&this.data.freeResources(),dz(this._southwestChild),this._southwestChild=void 0,dz(this._southeastChild),this._southeastChild=void 0,dz(this._northwestChild),this._northwestChild=void 0,dz(this._northeastChild),this._northeastChild=void 0};function dz(e){u(e)&&e.freeResources()}var fL=Qc;function hz(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}hz.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head};hz.prototype.trimTiles=function(e){let t=this.tail,n=!0;for(;n&&u(this._lastBeforeStartOfFrame)&&this.count>e&&u(t);){n=t!==this._lastBeforeStartOfFrame;let i=t.replacementPrevious;t.eligibleForUnloading&&(t.freeResources(),c_e(this,t)),t=i}};function c_e(e,t){let n=t.replacementPrevious,i=t.replacementNext;t===e._lastBeforeStartOfFrame&&(e._lastBeforeStartOfFrame=i),t===e.head?e.head=i:n.replacementNext=i,t===e.tail?e.tail=n:i.replacementPrevious=n,t.replacementPrevious=void 0,t.replacementNext=void 0,--e.count}hz.prototype.markTileRendered=function(e){let t=this.head;if(t===e){e===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=e.replacementNext);return}if(++this.count,!u(t)){e.replacementPrevious=void 0,e.replacementNext=void 0,this.head=e,this.tail=e;return}(u(e.replacementPrevious)||u(e.replacementNext))&&c_e(this,e),e.replacementPrevious=void 0,e.replacementNext=t,t.replacementPrevious=e,this.head=e};var dL=hz;function Hf(e){this._tileProvider=e.tileProvider,this._tileProvider.quadtree=this,this._debug={enableDebugOutput:!1,maxDepth:0,maxDepthVisited:0,tilesVisited:0,tilesCulled:0,tilesRendered:0,tilesWaitingForChildren:0,lastMaxDepth:-1,lastMaxDepthVisited:-1,lastTilesVisited:-1,lastTilesCulled:-1,lastTilesRendered:-1,lastTilesWaitingForChildren:-1,suspendLodUpdate:!1};let n=this._tileProvider.tilingScheme.ellipsoid;this._tilesToRender=[],this._tileLoadQueueHigh=[],this._tileLoadQueueMedium=[],this._tileLoadQueueLow=[],this._tileReplacementQueue=new dL,this._levelZeroTiles=void 0,this._loadQueueTimeSlice=5,this._tilesInvalidated=!1,this._addHeightCallbacks=[],this._removeHeightCallbacks=[],this._tileToUpdateHeights=[],this._lastTileIndex=0,this._updateHeightsTimeSlice=2,this._cameraPositionCartographic=void 0,this._cameraReferenceFrameOriginCartographic=void 0,this.maximumScreenSpaceError=y(e.maximumScreenSpaceError,2),this.tileCacheSize=y(e.tileCacheSize,100),this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this._occluders=new uL({ellipsoid:n}),this._tileLoadProgressEvent=new ge,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}Object.defineProperties(Hf.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}});Hf.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0};function srt(e){let t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,u_e(e);let n=e._levelZeroTiles;if(u(n))for(let i=0;i<n.length;++i){let o=n[i].customData,s=o.length;for(let a=0;a<s;++a){let c=o[a];c.level=0,e._addHeightCallbacks.push(c)}n[i].freeResources()}e._levelZeroTiles=void 0,e._tileProvider.cancelReprojections()}Hf.prototype.forEachLoadedTile=function(e){let t=this._tileReplacementQueue.head;for(;u(t);)t.state!==Us.START&&e(t),t=t.replacementNext};Hf.prototype.forEachRenderedTile=function(e){let t=this._tilesToRender;for(let n=0,i=t.length;n<i;++n)e(t[n])};Hf.prototype.updateHeight=function(e,t){let n=this,i={positionOnEllipsoidSurface:void 0,positionCartographic:e,level:-1,callback:t};return i.removeFunc=function(){let r=n._addHeightCallbacks,o=r.length;for(let s=0;s<o;++s)if(r[s]===i){r.splice(s,1);break}n._removeHeightCallbacks.push(i),i.callback&&(i.callback=void 0)},n._addHeightCallbacks.push(i),i.removeFunc};Hf.prototype.update=function(e){u(this._tileProvider.update)&&this._tileProvider.update(e)};function u_e(e){let t=e._debug;t.maxDepth=0,t.maxDepthVisited=0,t.tilesVisited=0,t.tilesCulled=0,t.tilesRendered=0,t.tilesWaitingForChildren=0,e._tileLoadQueueHigh.length=0,e._tileLoadQueueMedium.length=0,e._tileLoadQueueLow.length=0}Hf.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(srt(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),u_e(this),!this._debug.suspendLodUpdate&&this._tileReplacementQueue.markStartOfRenderFrame())};Hf.prototype.render=function(e){let t=e.passes,n=this._tileProvider;t.render&&(n.beginUpdate(e),urt(this,e),xrt(this,e),n.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&n.updateForPick(e)};function art(e,t){let n=e._tileLoadQueueHigh.length+e._tileLoadQueueMedium.length+e._tileLoadQueueLow.length;if(n!==e._lastTileLoadQueueLength||e._tilesInvalidated){let r=ge.prototype.raiseEvent.bind(e._tileLoadProgressEvent,n);t.afterRender.push(()=>(r(),!0)),e._lastTileLoadQueueLength=n}let i=e._debug;i.enableDebugOutput&&!i.suspendLodUpdate&&(i.maxDepth=e._tilesToRender.reduce(function(r,o){return Math.max(r,o.level)},-1),i.tilesRendered=e._tilesToRender.length,(i.tilesVisited!==i.lastTilesVisited||i.tilesRendered!==i.lastTilesRendered||i.tilesCulled!==i.lastTilesCulled||i.maxDepth!==i.lastMaxDepth||i.tilesWaitingForChildren!==i.lastTilesWaitingForChildren||i.maxDepthVisited!==i.lastMaxDepthVisited)&&(console.log(`Visited ${i.tilesVisited}, Rendered: ${i.tilesRendered}, Culled: ${i.tilesCulled}, Max Depth Rendered: ${i.maxDepth}, Max Depth Visited: ${i.maxDepthVisited}, Waiting for children: ${i.tilesWaitingForChildren}`),i.lastTilesVisited=i.tilesVisited,i.lastTilesRendered=i.tilesRendered,i.lastTilesCulled=i.tilesCulled,i.lastMaxDepth=i.maxDepth,i.lastTilesWaitingForChildren=i.tilesWaitingForChildren,i.lastMaxDepthVisited=i.maxDepthVisited))}Hf.prototype.endFrame=function(e){!e.passes.render||e.mode===ne.MORPHING||(_rt(this,e),Art(this,e),art(this,e))};Hf.prototype.isDestroyed=function(){return!1};Hf.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var mL,l_e=new me;function crt(e,t){let n=le.center(e.rectangle,l_e),i=n.longitude-mL.longitude,r=n.latitude-mL.latitude;n=le.center(t.rectangle,l_e);let o=n.longitude-mL.longitude,s=n.latitude-mL.latitude;return i*i+r*r-(o*o+s*s)}var lrt=new h,hL=[];function urt(e,t){let n=e._debug;if(n.suspendLodUpdate)return;let i=e._tilesToRender;i.length=0;let r,o=e._tileProvider;if(!u(e._levelZeroTiles))if(o.ready){let A=o.tilingScheme;e._levelZeroTiles=fL.createLevelZeroTiles(A);let x=e._levelZeroTiles.length;if(hL.length<x)for(hL=new Array(x),r=0;r<x;++r)hL[r]===void 0&&(hL[r]=new pL)}else return;e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;let s,a=e._levelZeroTiles,c=a.length>1?e._occluders:void 0;mL=t.camera.positionCartographic,a.sort(crt);let l=e._addHeightCallbacks,f=e._removeHeightCallbacks,d=t.frameNumber,p;if(l.length>0||f.length>0){for(r=0,p=a.length;r<p;++r)s=a[r],s._updateCustomData(d,l,f);l.length=0,f.length=0}let g=t.camera;e._cameraPositionCartographic=g.positionCartographic;let m=N.getTranslation(g.transform,lrt);for(e._cameraReferenceFrameOriginCartographic=e.tileProvider.tilingScheme.ellipsoid.cartesianToCartographic(m,e._cameraReferenceFrameOriginCartographic),r=0,p=a.length;r<p;++r)s=a[r],e._tileReplacementQueue.markTileRendered(s),s.renderable?Da(e,s,o,t,c,!1,hL[r]):(F_(e,e._tileLoadQueueHigh,s,t),++n.tilesWaitingForChildren);e._lastSelectionFrameNumber=d}function F_(e,t,n,i){n.needsLoading&&(e.tileProvider.computeTileLoadPriority!==void 0&&(n._loadPriority=e.tileProvider.computeTileLoadPriority(n,i)),t.push(n))}function pL(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function f_e(){this.southwest=new pL,this.southeast=new pL,this.northwest=new pL,this.northeast=new pL}f_e.prototype.combine=function(e){let t=this.southwest,n=this.southeast,i=this.northwest,r=this.northeast;e.allAreRenderable=t.allAreRenderable&&n.allAreRenderable&&i.allAreRenderable&&r.allAreRenderable,e.anyWereRenderedLastFrame=t.anyWereRenderedLastFrame||n.anyWereRenderedLastFrame||i.anyWereRenderedLastFrame||r.anyWereRenderedLastFrame,e.notYetRenderableCount=t.notYetRenderableCount+n.notYetRenderableCount+i.notYetRenderableCount+r.notYetRenderableCount};var aq=new Array(31);for(let e=0;e<aq.length;++e)aq[e]=new f_e;function frt(e,t,n,i,r){let o=e._debug;++o.tilesVisited,e._tileReplacementQueue.markTileRendered(n),n._updateCustomData(t.frameNumber),n.level>o.maxDepthVisited&&(o.maxDepthVisited=n.level);let s=mrt(e,t,n)<e.maximumScreenSpaceError,a=n.southwestChild,c=n.southeastChild,l=n.northwestChild,f=n.northeastChild,d=e._lastSelectionFrameNumber,p=n._lastSelectionResultFrame===d?n._lastSelectionResult:Qn.NONE,g=e.tileProvider;if(s||i){let m=Qn.originalResult(p)===Qn.RENDERED,A=Qn.originalResult(p)===Qn.CULLED||p===Qn.NONE,x=n.state===Us.DONE,C=m||A||x;if(C||u(g.canRenderWithoutLosingDetail)&&(C=g.canRenderWithoutLosingDetail(n)),C){s&&F_(e,e._tileLoadQueueMedium,n,t),mz(e,n),r.allAreRenderable=n.renderable,r.anyWereRenderedLastFrame=p===Qn.RENDERED,r.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Qn.RENDERED,r.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}i=!0,s&&F_(e,e._tileLoadQueueHigh,n,t)}if(g.canRefine(n)){if(a.upsampledFromParent&&c.upsampledFromParent&&l.upsampledFromParent&&f.upsampledFromParent){mz(e,n),F_(e,e._tileLoadQueueMedium,n,t),e._tileReplacementQueue.markTileRendered(a),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(l),e._tileReplacementQueue.markTileRendered(f),r.allAreRenderable=n.renderable,r.anyWereRenderedLastFrame=p===Qn.RENDERED,r.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Qn.RENDERED,r.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Qn.REFINED;let A=e._tilesToRender.length,x=e._tileLoadQueueLow.length,C=e._tileLoadQueueMedium.length,T=e._tileLoadQueueHigh.length,E=e._tileToUpdateHeights.length;if(drt(e,a,c,l,f,t,i,r),A!==e._tilesToRender.length){let S=r.allAreRenderable,v=r.anyWereRenderedLastFrame,D=r.notYetRenderableCount,M=!1;if(!S&&!v){let O=e._tilesToRender;for(let L=A;L<O.length;++L){let _=O[L];for(;_!==void 0&&_._lastSelectionResult!==Qn.KICKED&&_!==n;)_._lastSelectionResult=Qn.kick(_._lastSelectionResult),_=_.parent}e._tilesToRender.length=A,e._tileToUpdateHeights.length=E,mz(e,n),n._lastSelectionResult=Qn.RENDERED;let B=p===Qn.RENDERED;!B&&D>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=x,e._tileLoadQueueMedium.length=C,e._tileLoadQueueHigh.length=T,F_(e,e._tileLoadQueueMedium,n,t),r.notYetRenderableCount=n.renderable?0:1,M=!0),r.allAreRenderable=n.renderable,r.anyWereRenderedLastFrame=B,B||e._tileToUpdateHeights.push(n),++o.tilesWaitingForChildren}e.preloadAncestors&&!M&&F_(e,e._tileLoadQueueLow,n,t)}return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Qn.RENDERED,mz(e,n),F_(e,e._tileLoadQueueHigh,n,t),r.allAreRenderable=n.renderable,r.anyWereRenderedLastFrame=p===Qn.RENDERED,r.notYetRenderableCount=n.renderable?0:1}function drt(e,t,n,i,r,o,s,a){let c=o.camera.positionCartographic,l=e._tileProvider,f=e._occluders,d=aq[t.level],p=d.southwest,g=d.southeast,m=d.northwest,A=d.northeast;c.longitude<t.rectangle.east?c.latitude<t.rectangle.north?(Da(e,t,l,o,f,s,p),Da(e,n,l,o,f,s,g),Da(e,i,l,o,f,s,m),Da(e,r,l,o,f,s,A)):(Da(e,i,l,o,f,s,m),Da(e,t,l,o,f,s,p),Da(e,r,l,o,f,s,A),Da(e,n,l,o,f,s,g)):c.latitude<t.rectangle.north?(Da(e,n,l,o,f,s,g),Da(e,t,l,o,f,s,p),Da(e,r,l,o,f,s,A),Da(e,i,l,o,f,s,m)):(Da(e,r,l,o,f,s,A),Da(e,i,l,o,f,s,m),Da(e,n,l,o,f,s,g),Da(e,t,l,o,f,s,p)),d.combine(a)}function hrt(e,t){let n=t.rectangle;return u(e._cameraPositionCartographic)&&le.contains(n,e._cameraPositionCartographic)||u(e._cameraReferenceFrameOriginCartographic)&&le.contains(n,e._cameraReferenceFrameOriginCartographic)}function Da(e,t,n,i,r,o,s){if(n.computeTileVisibility(t,i,r)!==lo.NONE)return frt(e,i,t,o,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,hrt(e,t)){(!u(t.data)||!u(t.data.vertexArray))&&F_(e,e._tileLoadQueueMedium,t,i);let a=e._lastSelectionFrameNumber,c=t._lastSelectionResultFrame===a?t._lastSelectionResult:Qn.NONE;c!==Qn.CULLED_BUT_NEEDED&&c!==Qn.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=Qn.CULLED_BUT_NEEDED}else e.preloadSiblings||t.level===0?(F_(e,e._tileLoadQueueLow,t,i),t._lastSelectionResult=Qn.CULLED):t._lastSelectionResult=Qn.CULLED;t._lastSelectionResultFrame=i.frameNumber}function mrt(e,t,n){if(t.mode===ne.SCENE2D||t.camera.frustum instanceof en||t.camera.frustum instanceof So)return prt(e,t,n);let i=e._tileProvider.getLevelMaximumGeometricError(n.level),r=n._distance,o=t.context.drawingBufferHeight,s=t.camera.frustum.sseDenominator,a=i*o/(r*s);return t.fog.enabled&&(a-=P.fog(r,t.fog.density)*t.fog.sse),a/=t.pixelRatio,a}function prt(e,t,n){let r=t.camera.frustum,o=r.offCenterFrustum;u(o)&&(r=o);let s=t.context,a=s.drawingBufferWidth,c=s.drawingBufferHeight,l=e._tileProvider.getLevelMaximumGeometricError(n.level),f=Math.max(r.top-r.bottom,r.right-r.left)/Math.max(a,c),d=l/f;return t.fog.enabled&&t.mode!==ne.SCENE2D&&(d-=P.fog(n._distance,t.fog.density)*t.fog.sse),d/=t.pixelRatio,d}function mz(e,t){e._tilesToRender.push(t)}function _rt(e,t){let n=e._tileLoadQueueHigh,i=e._tileLoadQueueMedium,r=e._tileLoadQueueLow;if(n.length===0&&i.length===0&&r.length===0)return;e._tileReplacementQueue.trimTiles(e.tileCacheSize);let o=yi()+e._loadQueueTimeSlice,s=e._tileProvider,a=oq(e,t,s,o,n,!1);a=oq(e,t,s,o,i,a),oq(e,t,s,o,r,a)}function grt(e,t){return e._loadPriority-t._loadPriority}function oq(e,t,n,i,r,o){n.computeTileLoadPriority!==void 0&&r.sort(grt);for(let s=0,a=r.length;s<a&&(yi()<i||!o);++s){let c=r[s];e._tileReplacementQueue.markTileRendered(c),n.loadTile(t,c),o=!0}return o}var pS=new vn,sq=new me,Wy=new h,yrt=[];function Art(e,t){if(!e.tileProvider.ready)return;let n=yrt;n.length=0;let i=e._tileToUpdateHeights,r=yi(),o=e._updateHeightsTimeSlice,s=r+o,a=t.mode,c=t.mapProjection,l=e.tileProvider.tilingScheme.ellipsoid,f;for(;i.length>0;){let d=i[0];if(!u(d.data)||!u(d.data.mesh)){let A=d._lastSelectionResultFrame===e._lastSelectionFrameNumber?d._lastSelectionResult:Qn.NONE;(A===Qn.RENDERED||A===Qn.CULLED_BUT_NEEDED)&&n.push(d),i.shift(),e._lastTileIndex=0;continue}let p=d.customData,g=p.length,m=!1;for(f=e._lastTileIndex;f<g;++f){let A=p[f],x=d.data.terrainData,C=u(x)&&x.wasCreatedByUpsampling();if(d.level>A.level&&!C){if(u(A.positionOnEllipsoidSurface)||(A.positionOnEllipsoidSurface=h.fromRadians(A.positionCartographic.longitude,A.positionCartographic.latitude,0,l)),a===ne.SCENE3D){let E=l.geodeticSurfaceNormal(A.positionOnEllipsoidSurface,pS.direction),S=l.getSurfaceNormalIntersectionWithZAxis(A.positionOnEllipsoidSurface,11500,pS.origin);if(!u(S)){let v=0;u(d.data.tileBoundingRegion)&&(v=d.data.tileBoundingRegion.minimumHeight);let D=Math.min(v,-11500),M=h.multiplyByScalar(E,Math.abs(D)+1,Wy);h.subtract(A.positionOnEllipsoidSurface,M,pS.origin)}}else me.clone(A.positionCartographic,sq),sq.height=-11500,c.project(sq,Wy),h.fromElements(Wy.z,Wy.x,Wy.y,Wy),h.clone(Wy,pS.origin),h.clone(h.UNIT_X,pS.direction);let T=d.data.pick(pS,a,c,!1,Wy);u(T)&&(u(A.callback)&&A.callback(T),A.level=d.level)}if(yi()>=s){m=!0;break}}if(m){e._lastTileIndex=f;break}else e._lastTileIndex=0,i.shift()}for(f=0;f<n.length;f++)i.push(n[f])}function xrt(e,t){let n=e._tileProvider,i=e._tilesToRender;for(let r=0,o=i.length;r<o;++r){let s=i[r];n.showTileThisFrame(s,t)}}var _L=Hf;function _h(e){e=y(e,re.WGS84);let t=new M_({ellipsoid:e}),n=new lL;this._ellipsoid=e,this._imageryLayerCollection=n,this._surfaceShaderSet=new QB,this._material=void 0,this._surface=new _L({tileProvider:new aL({terrainProvider:t,imageryLayers:n,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=t,this._terrainProviderChanged=new ge,this._undergroundColor=z.clone(z.BLACK),this._undergroundColorAlphaByDistance=new Bt(e.maximumRadius/1e3,0,e.maximumRadius/5,1),this._translucency=new cL,lq(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new ve({url:$t("Assets/Textures/waterNormalsSmall.jpg")}),this.maximumScreenSpaceError=2,this.tileCacheSize=100,this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this.fillHighlightColor=void 0,this.enableLighting=!1,this.lambertDiffuseMultiplier=.9,this.dynamicAtmosphereLighting=!0,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!0,this.atmosphereLightIntensity=10,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.lightingFadeOutDistance=1e7,this.lightingFadeInDistance=2e7,this.nightFadeOutDistance=1e7,this.nightFadeInDistance=5e7,this.showWaterEffect=!0,this.depthTestAgainstTerrain=!1,this.shadows=yn.RECEIVE_ONLY,this.atmosphereHueShift=0,this.atmosphereSaturationShift=0,this.atmosphereBrightnessShift=0,this.terrainExaggeration=1,this.terrainExaggerationRelativeHeight=0,this.showSkirts=!0,this.backFaceCulling=!0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0,this.vertexShadowDarkness=.3}Object.defineProperties(_h.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},imageryLayers:{get:function(){return this._imageryLayerCollection}},imageryLayersUpdatedEvent:{get:function(){return this._surface.tileProvider.imageryLayersUpdatedEvent}},tilesLoaded:{get:function(){return u(this._surface)?this._surface.tileProvider.ready&&this._surface._tileLoadQueueHigh.length===0&&this._surface._tileLoadQueueMedium.length===0&&this._surface._tileLoadQueueLow.length===0:!0}},baseColor:{get:function(){return this._surface.tileProvider.baseColor},set:function(e){this._surface.tileProvider.baseColor=e}},clippingPlanes:{get:function(){return this._surface.tileProvider.clippingPlanes},set:function(e){this._surface.tileProvider.clippingPlanes=e}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){u(e)||(e=le.clone(le.MAX_VALUE)),this._surface.tileProvider.cartographicLimitRectangle=e}},oceanNormalMapUrl:{get:function(){return this._oceanNormalMapResource.url},set:function(e){this._oceanNormalMapResource.url=e,this._oceanNormalMapResourceDirty=!0}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){e!==this._terrainProvider&&(this._terrainProvider=e,this._terrainProviderChanged.raiseEvent(e),u(this._material)&&lq(this))}},terrainProviderChanged:{get:function(){return this._terrainProviderChanged}},tileLoadProgressEvent:{get:function(){return this._surface.tileLoadProgressEvent}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,lq(this))}},undergroundColor:{get:function(){return this._undergroundColor},set:function(e){this._undergroundColor=z.clone(e,this._undergroundColor)}},undergroundColorAlphaByDistance:{get:function(){return this._undergroundColorAlphaByDistance},set:function(e){this._undergroundColorAlphaByDistance=Bt.clone(e,this._undergroundColorAlphaByDistance)}},translucency:{get:function(){return this._translucency}}});function lq(e){let t=[],n=u(e._material)&&(e._material.shaderSource.match(/slope/)||e._material.shaderSource.match("normalEC")),i=[R_,Xb];u(e._material)&&(!n||e._terrainProvider.requestVertexNormals)?(i.push(e._material.shaderSource),t.push("APPLY_MATERIAL"),e._surface._tileProvider.materialUniformMap=e._material._uniforms):e._surface._tileProvider.materialUniformMap=void 0,i.push(JB),e._surfaceShaderSet.baseVertexShaderSource=new ke({sources:[R_,Xb,ZB],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new ke({sources:i,defines:t}),e._surfaceShaderSet.material=e._material}function Crt(e){return function(t,n){let i=ae.distanceSquaredTo(t.pickBoundingSphere,e),r=ae.distanceSquaredTo(n.pickBoundingSphere,e);return i-r}}var Trt=[],Ert={start:0,stop:0};_h.prototype.pickWorldCoordinates=function(e,t,n,i){n=y(n,!0);let r=t.mode,o=t.mapProjection,s=Trt;s.length=0;let a=this._surface._tilesToRender,c=a.length,l,f;for(f=0;f<c;++f){l=a[f];let p=l.data;if(!u(p))continue;let g=p.pickBoundingSphere;if(r!==ne.SCENE3D)p.pickBoundingSphere=g=ae.fromRectangleWithHeights2D(l.rectangle,o,p.tileBoundingRegion.minimumHeight,p.tileBoundingRegion.maximumHeight,g),h.fromElements(g.center.z,g.center.x,g.center.y,g.center);else if(u(p.renderedMesh))ae.clone(p.tileBoundingRegion.boundingSphere,g);else continue;let m=Ji.raySphere(e,g,Ert);u(m)&&s.push(p)}s.sort(Crt(e.origin));let d;for(c=s.length,f=0;f<c&&(d=s[f].pick(e,t.mode,t.mapProjection,n,i),!u(d));++f);return d};var brt=new me;_h.prototype.pick=function(e,t,n){if(n=this.pickWorldCoordinates(e,t,!0,n),u(n)&&t.mode!==ne.SCENE3D){n=h.fromElements(n.y,n.z,n.x,n);let i=t.mapProjection.unproject(n,brt);n=t.globe.ellipsoid.cartographicToCartesian(i,n)}return n};var Srt=new h,d_e=new h,vrt=new me,wrt=new vn;function cq(e,t){return u(e)&&le.contains(e.rectangle,t)?e:void 0}_h.prototype.getHeight=function(e){let t=this._surface._levelZeroTiles;if(!u(t))return;let n,i,r=t.length;for(i=0;i<r&&(n=t[i],!le.contains(n.rectangle,e));++i);if(i>=r)return;let o=n;for(;u(n);)n=cq(n._southwestChild,e)||cq(n._southeastChild,e)||cq(n._northwestChild,e)||n._northeastChild,u(n)&&u(n.data)&&u(n.data.renderedMesh)&&(o=n);if(n=o,!u(n)||!u(n.data)||!u(n.data.renderedMesh))return;let s=this._surface._tileProvider.tilingScheme.projection,a=this._surface._tileProvider.tilingScheme.ellipsoid,c=h.fromRadians(e.longitude,e.latitude,0,a,Srt),l=wrt,f=a.geodeticSurfaceNormal(c,l.direction),d=a.getSurfaceNormalIntersectionWithZAxis(c,11500,l.origin);if(!u(d)){let g;u(n.data.tileBoundingRegion)&&(g=n.data.tileBoundingRegion.minimumHeight);let m=Math.min(y(g,0),-11500),A=h.multiplyByScalar(f,Math.abs(m)+1,d_e);h.subtract(c,A,l.origin)}let p=n.data.pick(l,void 0,s,!1,d_e);if(u(p))return a.cartesianToCartographic(p,vrt).height};_h.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)};_h.prototype.beginFrame=function(e){let t=this._surface,n=t.tileProvider,i=this.terrainProvider,r=this.showWaterEffect&&u(i)&&i.hasWaterMask&&i._ready&&i.hasWaterMask;if(r&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;let a=this._oceanNormalMapResource,c=a.url;if(u(c)){let l=this;a.fetchImage().then(function(f){c===l._oceanNormalMapResource.url&&(l._oceanNormalMap=l._oceanNormalMap&&l._oceanNormalMap.destroy(),l._oceanNormalMap=new Rt({context:e.context,source:f}))})}else this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy()}let o=e.passes,s=e.mode;o.render&&(this.showGroundAtmosphere?this._zoomedOutOceanSpecularIntensity=.4:this._zoomedOutOceanSpecularIntensity=.5,t.maximumScreenSpaceError=this.maximumScreenSpaceError,t.tileCacheSize=this.tileCacheSize,t.loadingDescendantLimit=this.loadingDescendantLimit,t.preloadAncestors=this.preloadAncestors,t.preloadSiblings=this.preloadSiblings,n.terrainProvider=this.terrainProvider,n.lightingFadeOutDistance=this.lightingFadeOutDistance,n.lightingFadeInDistance=this.lightingFadeInDistance,n.nightFadeOutDistance=this.nightFadeOutDistance,n.nightFadeInDistance=this.nightFadeInDistance,n.zoomedOutOceanSpecularIntensity=s===ne.SCENE3D?this._zoomedOutOceanSpecularIntensity:0,n.hasWaterMask=r,n.oceanNormalMap=this._oceanNormalMap,n.enableLighting=this.enableLighting,n.dynamicAtmosphereLighting=this.dynamicAtmosphereLighting,n.dynamicAtmosphereLightingFromSun=this.dynamicAtmosphereLightingFromSun,n.showGroundAtmosphere=this.showGroundAtmosphere,n.atmosphereLightIntensity=this.atmosphereLightIntensity,n.atmosphereRayleighCoefficient=this.atmosphereRayleighCoefficient,n.atmosphereMieCoefficient=this.atmosphereMieCoefficient,n.atmosphereRayleighScaleHeight=this.atmosphereRayleighScaleHeight,n.atmosphereMieScaleHeight=this.atmosphereMieScaleHeight,n.atmosphereMieAnisotropy=this.atmosphereMieAnisotropy,n.shadows=this.shadows,n.hueShift=this.atmosphereHueShift,n.saturationShift=this.atmosphereSaturationShift,n.brightnessShift=this.atmosphereBrightnessShift,n.fillHighlightColor=this.fillHighlightColor,n.showSkirts=this.showSkirts,n.backFaceCulling=this.backFaceCulling,n.vertexShadowDarkness=this.vertexShadowDarkness,n.undergroundColor=this._undergroundColor,n.undergroundColorAlphaByDistance=this._undergroundColorAlphaByDistance,n.lambertDiffuseMultiplier=this.lambertDiffuseMultiplier,t.beginFrame(e))};_h.prototype.render=function(e){this.show&&(u(this._material)&&this._material.update(e.context),this._surface.render(e))};_h.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)};_h.prototype.isDestroyed=function(){return!1};_h.prototype.destroy=function(){return this._surfaceShaderSet=this._surfaceShaderSet&&this._surfaceShaderSet.destroy(),this._surface=this._surface&&this._surface.destroy(),this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy(),ue(this)};var gL=_h;function Drt(e,t,n,i){this.rightAscension=e,this.declination=t,this.rotation=n,this.rotationRate=i}var yL=Drt;var v_e={},Irt=32.184,Prt=2451545,h_e=-.0529921,m_e=-.1059842,p_e=13.0120009,__e=13.3407154,g_e=.9856003,y_e=26.4057084,A_e=13.064993,x_e=.3287146,C_e=1.7484877,T_e=-.1589763,E_e=.0036096,b_e=.1643573,S_e=12.9590088,uq=new ee;v_e.ComputeMoon=function(e,t){u(e)||(e=ee.now()),uq=ee.addSeconds(e,Irt,uq);let n=ee.totalDays(uq)-Prt,i=n/Zn.DAYS_PER_JULIAN_CENTURY,r=(125.045+h_e*n)*P.RADIANS_PER_DEGREE,o=(250.089+m_e*n)*P.RADIANS_PER_DEGREE,s=(260.008+p_e*n)*P.RADIANS_PER_DEGREE,a=(176.625+__e*n)*P.RADIANS_PER_DEGREE,c=(357.529+g_e*n)*P.RADIANS_PER_DEGREE,l=(311.589+y_e*n)*P.RADIANS_PER_DEGREE,f=(134.963+A_e*n)*P.RADIANS_PER_DEGREE,d=(276.617+x_e*n)*P.RADIANS_PER_DEGREE,p=(34.226+C_e*n)*P.RADIANS_PER_DEGREE,g=(15.134+T_e*n)*P.RADIANS_PER_DEGREE,m=(119.743+E_e*n)*P.RADIANS_PER_DEGREE,A=(239.961+b_e*n)*P.RADIANS_PER_DEGREE,x=(25.053+S_e*n)*P.RADIANS_PER_DEGREE,C=Math.sin(r),T=Math.sin(o),E=Math.sin(s),S=Math.sin(a),v=Math.sin(c),D=Math.sin(l),M=Math.sin(f),O=Math.sin(d),B=Math.sin(p),L=Math.sin(g),_=Math.sin(m),b=Math.sin(A),w=Math.sin(x),I=Math.cos(r),R=Math.cos(o),F=Math.cos(s),k=Math.cos(a),V=Math.cos(c),G=Math.cos(l),U=Math.cos(f),Y=Math.cos(d),W=Math.cos(p),Z=Math.cos(g),j=Math.cos(m),K=Math.cos(A),J=Math.cos(x),_e=(269.9949+.0031*i-3.8787*C-.1204*T+.07*E-.0172*S+.0072*D-.0052*L+.0043*w)*P.RADIANS_PER_DEGREE,xe=(66.5392+.013*i+1.5419*I+.0239*R-.0278*F+.0068*k-.0029*G+9e-4*U+8e-4*Z-9e-4*J)*P.RADIANS_PER_DEGREE,oe=(38.3213+13.17635815*n-14e-13*n*n+3.561*C+.1208*T-.0642*E+.0158*S+.0252*v-.0066*D-.0047*M-.0046*O+.0028*B+.0052*L+.004*_+.0019*b-.0044*w)*P.RADIANS_PER_DEGREE,Ae=(13.17635815-14e-13*(2*n)+3.561*I*h_e+.1208*R*m_e-.0642*F*p_e+.0158*k*__e+.0252*V*g_e-.0066*G*y_e-.0047*U*A_e-.0046*Y*x_e+.0028*W*C_e+.0052*Z*T_e+.004*j*E_e+.0019*K*b_e-.0044*J*S_e)/86400*P.RADIANS_PER_DEGREE;return u(t)||(t=new yL),t.rightAscension=_e,t.declination=xe,t.rotation=oe,t.rotationRate=Ae,t};var AL=v_e;function w_e(e){(!u(e)||typeof e!="function")&&(e=AL.ComputeMoon),this._computeFunction=e}var Ort=new h,Mrt=new h,Rrt=new h;function Brt(e,t,n){let i=Ort;i.x=Math.cos(e+P.PI_OVER_TWO),i.y=Math.sin(e+P.PI_OVER_TWO),i.z=0;let r=Math.cos(t),o=Rrt;o.x=r*Math.cos(e),o.y=r*Math.sin(e),o.z=Math.sin(t);let s=h.cross(o,i,Mrt);return u(n)||(n=new Q),n[0]=i.x,n[1]=s.x,n[2]=o.x,n[3]=i.y,n[4]=s.y,n[5]=o.y,n[6]=i.z,n[7]=s.z,n[8]=o.z,n}var Lrt=new Q,Nrt=new Le;w_e.prototype.evaluate=function(e,t){u(e)||(e=ee.now());let n=this._computeFunction(e),i=Brt(n.rightAscension,n.declination,t),r=P.zeroToTwoPi(n.rotation),o=Le.fromAxisAngle(h.UNIT_Z,r,Nrt),s=Q.fromQuaternion(Le.conjugate(o,o),Lrt);return Q.multiply(s,i,i)};var xL=w_e;var _S=`uniform vec3 u_radii; +uniform vec3 u_oneOverEllipsoidRadiiSquared; + +in vec3 v_positionEC; + +vec4 computeEllipsoidColor(czm_ray ray, float intersection, float side) +{ + vec3 positionEC = czm_pointAlongRay(ray, intersection); + vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz; + vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared)); + vec3 sphericalNormal = normalize(positionMC / u_radii); + vec3 normalMC = geodeticNormal * side; // normalized surface normal (always facing the viewer) in model coordinates + vec3 normalEC = normalize(czm_normal * normalMC); // normalized surface normal in eye coordiantes + + vec2 st = czm_ellipsoidWgs84TextureCoordinates(sphericalNormal); + vec3 positionToEyeEC = -positionEC; + + czm_materialInput materialInput; + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = (positionMC + u_radii) / u_radii; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef ONLY_SUN_LIGHTING + return czm_private_phong(normalize(positionToEyeEC), material, czm_sunDirectionEC); +#else + return czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} + +void main() +{ + // PERFORMANCE_TODO: When dynamic branching is available, compute ratio of maximum and minimum radii + // in the vertex shader. Only when it is larger than some constant, march along the ray. + // Otherwise perform one intersection test which will be the common case. + + // Test if the ray intersects a sphere with the ellipsoid's maximum radius. + // For very oblate ellipsoids, using the ellipsoid's radii for an intersection test + // may cause false negatives. This will discard fragments before marching the ray forward. + float maxRadius = max(u_radii.x, max(u_radii.y, u_radii.z)) * 1.5; + vec3 direction = normalize(v_positionEC); + vec3 ellipsoidCenter = czm_modelView[3].xyz; + + float t1 = -1.0; + float t2 = -1.0; + + float b = -2.0 * dot(direction, ellipsoidCenter); + float c = dot(ellipsoidCenter, ellipsoidCenter) - maxRadius * maxRadius; + + float discriminant = b * b - 4.0 * c; + if (discriminant >= 0.0) { + t1 = (-b - sqrt(discriminant)) * 0.5; + t2 = (-b + sqrt(discriminant)) * 0.5; + } + + if (t1 < 0.0 && t2 < 0.0) { + discard; + } + + float t = min(t1, t2); + if (t < 0.0) { + t = 0.0; + } + + // March ray forward to intersection with larger sphere and find + czm_ray ray = czm_ray(t * direction, direction); + + vec3 ellipsoid_inverseRadii = vec3(1.0 / u_radii.x, 1.0 / u_radii.y, 1.0 / u_radii.z); + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii); + + if (czm_isEmpty(intersection)) + { + discard; + } + + // If the viewer is outside, compute outsideFaceColor, with normals facing outward. + vec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0); + + // If the viewer either is inside or can see inside, compute insideFaceColor, with normals facing inward. + vec4 insideFaceColor = (outsideFaceColor.a < 1.0) ? computeEllipsoidColor(ray, intersection.stop, -1.0) : vec4(0.0); + + out_FragColor = mix(insideFaceColor, outsideFaceColor, outsideFaceColor.a); + out_FragColor.a = 1.0 - (1.0 - insideFaceColor.a) * (1.0 - outsideFaceColor.a); + +#if (defined(WRITE_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + t = (intersection.start != 0.0) ? intersection.start : intersection.stop; + vec3 positionEC = czm_pointAlongRay(ray, t); + vec4 positionCC = czm_projection * vec4(positionEC, 1.0); +#ifdef LOG_DEPTH + czm_writeLogDepth(1.0 + positionCC.w); +#else + float z = positionCC.z / positionCC.w; + + float n = czm_depthRange.near; + float f = czm_depthRange.far; + + gl_FragDepth = (z * (f - n) + f + n) * 0.5; +#endif +#endif +} +`;var gS=`in vec3 position; + +uniform vec3 u_radii; + +out vec3 v_positionEC; + +void main() +{ + // In the vertex data, the cube goes from (-1.0, -1.0, -1.0) to (1.0, 1.0, 1.0) in model coordinates. + // Scale to consider the radii. We could also do this once on the CPU when using the BoxGeometry, + // but doing it here allows us to change the radii without rewriting the vertex data, and + // allows all ellipsoids to reuse the same vertex data. + vec4 p = vec4(u_radii * position, 1.0); + + v_positionEC = (czm_modelView * p).xyz; // position in eye coordinates + gl_Position = czm_modelViewProjection * p; // position in clip coordinates + + // With multi-frustum, when the ellipsoid primitive is positioned on the intersection of two frustums + // and close to terrain, the terrain (writes depth) in the closest frustum can overwrite part of the + // ellipsoid (does not write depth) that was rendered in the farther frustum. + // + // Here, we clamp the depth in the vertex shader to avoid being overwritten; however, this creates + // artifacts since some fragments can be alpha blended twice. This is solved by only rendering + // the ellipsoid in the closest frustum to the viewer. + gl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far); + + czm_vertexLogDepth(); +} +`;var fq={position:0};function pz(e){e=y(e,y.EMPTY_OBJECT),this.center=h.clone(y(e.center,h.ZERO)),this._center=new h,this.radii=h.clone(e.radii),this._radii=new h,this._oneOverEllipsoidRadiiSquared=new h,this._boundingSphere=new ae,this.modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this._modelMatrix=new N,this._computedModelMatrix=new N,this.show=y(e.show,!0),this.material=y(e.material,Gi.fromType(Gi.ColorType)),this._material=void 0,this._translucent=void 0,this.id=e.id,this._id=void 0,this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.onlySunLighting=y(e.onlySunLighting,!1),this._onlySunLighting=!1,this._depthTestEnabled=y(e.depthTestEnabled,!0),this._useLogDepth=!1,this._sp=void 0,this._rs=void 0,this._va=void 0,this._pickSP=void 0,this._pickId=void 0,this._colorCommand=new nt({owner:y(e._owner,this)}),this._pickCommand=new nt({owner:y(e._owner,this),pickOnly:!0});let t=this;this._uniforms={u_radii:function(){return t.radii},u_oneOverEllipsoidRadiiSquared:function(){return t._oneOverEllipsoidRadiiSquared}},this._pickUniforms={czm_pickColor:function(){return t._pickId.color}}}function Frt(e){let t=e.cache.ellipsoidPrimitive_vertexArray;if(u(t))return t;let n=fl.createGeometry(fl.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Pe.POSITION_ONLY}));return t=oi.fromGeometry({context:e,geometry:n,attributeLocations:fq,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=t,t}pz.prototype.update=function(e){if(!this.show||e.mode!==ne.SCENE3D||!u(this.center)||!u(this.radii))return;let t=e.context,n=this.material.isTranslucent(),i=this._translucent!==n;(!u(this._rs)||i)&&(this._translucent=n,this._rs=Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},depthTest:{enabled:this._depthTestEnabled},depthMask:!n&&t.fragmentDepth,blending:n?un.ALPHA_BLEND:void 0})),u(this._va)||(this._va=Frt(t));let r=!1,o=this.radii;if(!h.equals(this._radii,o)){h.clone(o,this._radii);let A=this._oneOverEllipsoidRadiiSquared;A.x=1/(o.x*o.x),A.y=1/(o.y*o.y),A.z=1/(o.z*o.z),r=!0}(!N.equals(this.modelMatrix,this._modelMatrix)||!h.equals(this.center,this._center))&&(N.clone(this.modelMatrix,this._modelMatrix),h.clone(this.center,this._center),N.multiplyByTranslation(this.modelMatrix,this.center,this._computedModelMatrix),r=!0),r&&(h.clone(h.ZERO,this._boundingSphere.center),this._boundingSphere.radius=h.maximumComponent(o),ae.transform(this._boundingSphere,this._computedModelMatrix,this._boundingSphere));let s=this._material!==this.material;this._material=this.material,this._material.update(t);let a=this.onlySunLighting!==this._onlySunLighting;this._onlySunLighting=this.onlySunLighting;let c=e.useLogDepth,l=this._useLogDepth!==c;this._useLogDepth=c;let f=this._colorCommand,d,p;(s||a||i||l)&&(d=new ke({sources:[gS]}),p=new ke({sources:[this.material.shaderSource,_S]}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._sp=Xt.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:fq}),f.vertexArray=this._va,f.renderState=this._rs,f.shaderProgram=this._sp,f.uniformMap=_t(this._uniforms,this.material._uniforms),f.executeInClosestFrustum=n);let g=e.commandList,m=e.passes;if(m.render&&(f.boundingVolume=this._boundingSphere,f.debugShowBoundingVolume=this.debugShowBoundingVolume,f.modelMatrix=this._computedModelMatrix,f.pass=n?be.TRANSLUCENT:be.OPAQUE,g.push(f)),m.pick){let A=this._pickCommand;(!u(this._pickId)||this._id!==this.id)&&(this._id=this.id,this._pickId=this._pickId&&this._pickId.destroy(),this._pickId=t.createPickId({primitive:this,id:this.id})),(s||a||!u(this._pickSP)||l)&&(d=new ke({sources:[gS]}),p=new ke({sources:[this.material.shaderSource,_S],pickColorQualifier:"uniform"}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._pickSP=Xt.replaceCache({context:t,shaderProgram:this._pickSP,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:fq}),A.vertexArray=this._va,A.renderState=this._rs,A.shaderProgram=this._pickSP,A.uniformMap=_t(_t(this._uniforms,this._pickUniforms),this.material._uniforms),A.executeInClosestFrustum=n),A.boundingVolume=this._boundingSphere,A.modelMatrix=this._computedModelMatrix,A.pass=n?be.TRANSLUCENT:be.OPAQUE,g.push(A)}};pz.prototype.isDestroyed=function(){return!1};pz.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._pickSP=this._pickSP&&this._pickSP.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var CL=pz;function TL(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureUrl;u(t)||(t=$t("Assets/Textures/moonSmall.jpg")),this.show=y(e.show,!0),this.textureUrl=t,this._ellipsoid=y(e.ellipsoid,re.MOON),this.onlySunLighting=y(e.onlySunLighting,!0),this._ellipsoidPrimitive=new CL({radii:this.ellipsoid.radii,material:Gi.fromType(Gi.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new xL}Object.defineProperties(TL.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var _z=new Q,Urt=new Q,Vrt=new h,gz=[];TL.prototype.update=function(e){if(!this.show)return;let t=this._ellipsoidPrimitive;t.material.uniforms.image=this.textureUrl,t.onlySunLighting=this.onlySunLighting;let n=e.time;u(Mt.computeIcrfToFixedMatrix(n,_z))||Mt.computeTemeToPseudoFixedMatrix(n,_z);let i=this._axes.evaluate(n,Urt);Q.transpose(i,i),Q.multiply(_z,i,i);let r=ag.computeMoonPositionInEarthInertialFrame(n,Vrt);Q.multiplyByVector(_z,r,r),N.fromRotationTranslation(i,r,t.modelMatrix);let o=e.commandList;return e.commandList=gz,gz.length=0,t.update(e),e.commandList=o,gz.length===1?gz[0]:void 0};TL.prototype.isDestroyed=function(){return!1};TL.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),ue(this)};var EL=TL;var dq=[],hq=[];function krt(e,t,n,i,r,o){let s=r-i+1,a=o-r,c=dq,l=hq,f,d;for(f=0;f<s;++f)c[f]=e[i+f];for(d=0;d<a;++d)l[d]=e[r+d+1];f=0,d=0;for(let p=i;p<=o;++p){let g=c[f],m=l[d];f<s&&(d>=a||t(g,m,n)<=0)?(e[p]=g,++f):d<a&&(e[p]=m,++d)}}function mq(e,t,n,i,r){if(i>=r)return;let o=Math.floor((i+r)*.5);mq(e,t,n,i,o),mq(e,t,n,o+1,r),krt(e,t,n,i,o,r)}function zrt(e,t,n){let i=e.length,r=Math.ceil(i*.5);dq.length=r,hq.length=r,mq(e,t,n,0,i-1),dq.length=0,hq.length=0}var U_=zrt;function hc(e,t){this._occluderPosition=h.clone(e.center),this._occluderRadius=e.radius,this._horizonDistance=0,this._horizonPlaneNormal=void 0,this._horizonPlanePosition=void 0,this._cameraPosition=void 0,this.cameraPosition=t}var yz=new h;Object.defineProperties(hc.prototype,{position:{get:function(){return this._occluderPosition}},radius:{get:function(){return this._occluderRadius}},cameraPosition:{set:function(e){e=h.clone(e,this._cameraPosition);let t=h.subtract(this._occluderPosition,e,yz),n=h.magnitudeSquared(t),i=this._occluderRadius*this._occluderRadius,r,o,s;if(n>i){r=Math.sqrt(n-i),n=1/Math.sqrt(n),o=h.multiplyByScalar(t,n,yz);let a=r*r*n;s=h.add(e,h.multiplyByScalar(o,a,yz),yz)}else r=Number.MAX_VALUE;this._horizonDistance=r,this._horizonPlaneNormal=o,this._horizonPlanePosition=s,this._cameraPosition=e}}});hc.fromBoundingSphere=function(e,t,n){return u(n)?(h.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=t,n):new hc(e,t)};var I_e=new h;hc.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){let t=h.subtract(e,this._occluderPosition,I_e),n=this._occluderRadius;if(n=h.magnitudeSquared(t)-n*n,n>0)return n=Math.sqrt(n)+this._horizonDistance,t=h.subtract(e,this._cameraPosition,t),n*n>h.magnitudeSquared(t)}return!1};var Hrt=new h;hc.prototype.isBoundingSphereVisible=function(e){let t=h.clone(e.center,Hrt),n=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,I_e),r=this._occluderRadius-n;if(r=h.magnitudeSquared(i)-r*r,n<this._occluderRadius)return r>0?(r=Math.sqrt(r)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i),r*r+n*n>h.magnitudeSquared(i)):!1;if(r>0){i=h.subtract(t,this._cameraPosition,i);let o=h.magnitudeSquared(i),s=this._occluderRadius*this._occluderRadius,a=n*n;return(this._horizonDistance*this._horizonDistance+s)*a>o*s?!0:(r=Math.sqrt(r)+this._horizonDistance,r*r+a>o)}return!0}return!1};var Grt=new h;hc.prototype.computeVisibility=function(e){let t=h.clone(e.center),n=e.radius;if(n>this._occluderRadius)return lo.FULL;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,Grt),r=this._occluderRadius-n,o=h.magnitudeSquared(i);if(r=o-r*r,r>0){r=Math.sqrt(r)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i);let s=h.magnitudeSquared(i);return r*r+n*n<s?lo.NONE:(r=this._occluderRadius+n,r=o-r*r,r>0?(r=Math.sqrt(r)+this._horizonDistance,s<r*r+n*n?lo.FULL:lo.PARTIAL):(i=h.subtract(t,this._horizonPlanePosition,i),h.dot(i,this._horizonPlaneNormal)>-n?lo.PARTIAL:lo.FULL))}}return lo.NONE};var Az=new h;hc.computeOccludeePoint=function(e,t,n){let i=h.clone(t),r=h.clone(e.center),o=e.radius,s=n.length,a=h.normalize(h.subtract(i,r,Az),Az),c=-h.dot(a,r),l=hc._anyRotationVector(r,a,c),f=hc._horizonToPlaneNormalDotProduct(e,a,c,l,n[0]);if(!f)return;let d;for(let g=1;g<s;++g){if(d=hc._horizonToPlaneNormalDotProduct(e,a,c,l,n[g]),!d)return;d<f&&(f=d)}if(f<.0017453283658983088)return;let p=o/f;return h.add(r,h.multiplyByScalar(a,p,Az),Az)};var Wrt=[];hc.computeOccludeePointFromRectangle=function(e,t){t=y(t,re.WGS84);let n=le.subsample(e,t,0,Wrt),i=ae.fromPoints(n),r=h.ZERO;if(!h.equals(r,i.center))return hc.computeOccludeePoint(new ae(r,t.minimumRadius),i.center,n)};var jrt=new h;hc._anyRotationVector=function(e,t,n){let i=h.abs(t,jrt),r=i.x>i.y?0:1;(r===0&&i.z>i.x||r===1&&i.z>i.y)&&(r=2);let o=new h,s;r===0?(i.x=e.x,i.y=e.y+1,i.z=e.z+1,s=h.UNIT_X):r===1?(i.x=e.x+1,i.y=e.y,i.z=e.z+1,s=h.UNIT_Y):(i.x=e.x+1,i.y=e.y+1,i.z=e.z,s=h.UNIT_Z);let a=(h.dot(t,i)+n)/-h.dot(t,s);return h.normalize(h.subtract(h.add(i,h.multiplyByScalar(s,a,o),i),e,i),i)};var qrt=new h;hc._rotationVector=function(e,t,n,i,r){let o=h.subtract(i,e,qrt);if(o=h.normalize(o,o),h.dot(t,o)<.9999999847691291){let s=h.cross(t,o,o);if(h.magnitude(s)>P.EPSILON13)return h.normalize(s,new h)}return r};var pq=new h,Yrt=new h,xz=new h,D_e=new h;hc._horizonToPlaneNormalDotProduct=function(e,t,n,i,r){let o=h.clone(r,pq),s=h.clone(e.center,Yrt),a=e.radius,c=h.subtract(s,o,xz),l=h.magnitudeSquared(c),f=a*a;if(l<f)return!1;let d=l-f,p=Math.sqrt(d),m=1/Math.sqrt(l),x=p*m*p;c=h.normalize(c,c);let C=h.add(o,h.multiplyByScalar(c,x,D_e),D_e),T=Math.sqrt(d-x*x),E=this._rotationVector(s,t,n,o,i),S=h.fromElements(E.x*E.x*c.x+(E.x*E.y-E.z)*c.y+(E.x*E.z+E.y)*c.z,(E.x*E.y+E.z)*c.x+E.y*E.y*c.y+(E.y*E.z-E.x)*c.z,(E.x*E.z-E.y)*c.x+(E.y*E.z+E.x)*c.y+E.z*E.z*c.z,pq);S=h.normalize(S,S);let v=h.multiplyByScalar(S,T,pq);E=h.normalize(h.subtract(h.add(C,v,xz),s,xz),xz);let D=h.dot(t,E);E=h.normalize(h.subtract(h.subtract(C,v,E),s,E),E);let M=h.dot(t,E);return D<M?D:M};var bL=hc;function Pm(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new ts,this._perspectiveMatrix=new N,this._infinitePerspective=new N}function _q(e){let t=e.top,n=e.bottom,i=e.right,r=e.left,o=e.near,s=e.far;(t!==e._top||n!==e._bottom||r!==e._left||i!==e._right||o!==e._near||s!==e._far)&&(e._left=r,e._right=i,e._top=t,e._bottom=n,e._near=o,e._far=s,e._perspectiveMatrix=N.computePerspectiveOffCenter(r,i,n,t,o,s,e._perspectiveMatrix),e._infinitePerspective=N.computeInfinitePerspectiveOffCenter(r,i,n,t,o,e._infinitePerspective))}Object.defineProperties(Pm.prototype,{projectionMatrix:{get:function(){return _q(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return _q(this),this._infinitePerspective}}});var Xrt=new h,Krt=new h,Jrt=new h,Zrt=new h;Pm.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,r=this.top,o=this.bottom,s=this.right,a=this.left,c=this.near,l=this.far,f=h.cross(t,n,Xrt),d=Krt;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=Jrt;h.multiplyByScalar(t,l,p),h.add(e,p,p);let g=Zrt;h.multiplyByScalar(f,a,g),h.add(d,g,g),h.subtract(g,e,g),h.normalize(g,g),h.cross(g,n,g),h.normalize(g,g);let m=i[0];return u(m)||(m=i[0]=new se),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(f,s,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(n,g,g),h.normalize(g,g),m=i[1],u(m)||(m=i[1]=new se),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(n,o,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(f,g,g),h.normalize(g,g),m=i[2],u(m)||(m=i[2]=new se),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(n,r,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(g,f,g),h.normalize(g,g),m=i[3],u(m)||(m=i[3]=new se),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),m=i[4],u(m)||(m=i[4]=new se),m.x=t.x,m.y=t.y,m.z=t.z,m.w=-h.dot(t,d),h.negate(t,g),m=i[5],u(m)||(m=i[5]=new se),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,p),this._cullingVolume};Pm.prototype.getPixelDimensions=function(e,t,n,i,r){_q(this);let o=1/this.near,s=this.top*o,a=2*i*n*s/t;s=this.right*o;let c=2*i*n*s/e;return r.x=c,r.y=a,r};Pm.prototype.clone=function(e){return u(e)||(e=new Pm),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};Pm.prototype.equals=function(e){return u(e)&&e instanceof Pm&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};Pm.prototype.equalsEpsilon=function(e,t,n){return e===this||u(e)&&e instanceof Pm&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var $c=Pm;function Ul(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new $c,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this.xOffset=y(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=y(e.yOffset,0),this._yOffset=this.yOffset}Ul.packedLength=6;Ul.pack=function(e,t,n){return n=y(n,0),t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};Ul.unpack=function(e,t,n){return t=y(t,0),u(n)||(n=new Ul),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function gh(e){let t=e._offCenterFrustum;(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset)&&(e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset,t.top=e.near*Math.tan(.5*e._fovy),t.bottom=-t.top,t.right=e.aspectRatio*t.top,t.left=-t.right,t.near=e.near,t.far=e.far,t.right+=e.xOffset,t.left+=e.xOffset,t.top+=e.yOffset,t.bottom+=e.yOffset)}Object.defineProperties(Ul.prototype,{projectionMatrix:{get:function(){return gh(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return gh(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return gh(this),this._fovy}},sseDenominator:{get:function(){return gh(this),this._sseDenominator}},offCenterFrustum:{get:function(){return gh(this),this._offCenterFrustum}}});Ul.prototype.computeCullingVolume=function(e,t,n){return gh(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};Ul.prototype.getPixelDimensions=function(e,t,n,i,r){return gh(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,r)};Ul.prototype.clone=function(e){return u(e)||(e=new Ul),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};Ul.prototype.equals=function(e){return!u(e)||!(e instanceof Ul)?!1:(gh(this),gh(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};Ul.prototype.equalsEpsilon=function(e,t,n){return!u(e)||!(e instanceof Ul)?!1:(gh(this),gh(e),P.equalsEpsilon(this.fov,e.fov,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var wi=Ul;var SL=`in vec2 v_textureCoordinates; +const float M_PI = 3.141592653589793; + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +vec3 importanceSampleGGX(vec2 xi, float roughness, vec3 N) +{ + float a = roughness * roughness; + float phi = 2.0 * M_PI * xi.x; + float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (a * a - 1.0) * xi.y)); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangentX = normalize(cross(upVector, N)); + vec3 tangentY = cross(N, tangentX); + return tangentX * H.x + tangentY * H.y + N * H.z; +} + +float G1_Smith(float NdotV, float k) +{ + return NdotV / (NdotV * (1.0 - k) + k); +} + +float G_Smith(float roughness, float NdotV, float NdotL) +{ + float k = roughness * roughness / 2.0; + return G1_Smith(NdotV, k) * G1_Smith(NdotL, k); +} + +vec2 integrateBrdf(float roughness, float NdotV) +{ + vec3 V = vec3(sqrt(1.0 - NdotV * NdotV), 0.0, NdotV); + float A = 0.0; + float B = 0.0; + const int NumSamples = 1024; + for (int i = 0; i < NumSamples; i++) + { + vec2 xi = hammersley2D(i, NumSamples); + vec3 H = importanceSampleGGX(xi, roughness, vec3(0.0, 0.0, 1.0)); + vec3 L = 2.0 * dot(V, H) * H - V; + float NdotL = clamp(L.z, 0.0, 1.0); + float NdotH = clamp(H.z, 0.0, 1.0); + float VdotH = clamp(dot(V, H), 0.0, 1.0); + if (NdotL > 0.0) + { + float G = G_Smith(roughness, NdotV, NdotL); + float G_Vis = G * VdotH / (NdotH * NdotV); + float Fc = pow(1.0 - VdotH, 5.0); + A += (1.0 - Fc) * G_Vis; + B += Fc * G_Vis; + } + } + return vec2(A, B) / float(NumSamples); +} + +void main() +{ + out_FragColor = vec4(integrateBrdf(v_textureCoordinates.y, v_textureCoordinates.x), 0.0, 1.0); +} +`;function vL(){this._colorTexture=void 0,this._drawCommand=void 0}Object.defineProperties(vL.prototype,{colorTexture:{get:function(){return this._colorTexture}}});function Qrt(e,t,n){let i=t.createViewportQuadCommand(SL,{framebuffer:n,renderState:Ve.fromCache({viewport:new Xe(0,0,256,256)})});e._drawCommand=i}vL.prototype.update=function(e){if(!u(this._colorTexture)){let t=e.context,n=new Rt({context:t,width:256,height:256,pixelFormat:at.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,sampler:ln.NEAREST});this._colorTexture=n;let i=new Gs({context:t,colorTextures:[n],destroyAttachments:!1});Qrt(this,t,i),this._drawCommand.execute(t),i.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}};vL.prototype.isDestroyed=function(){return!1};vL.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),ue(this)};var wL=vL;var R_e={};function $rt(e,t,n){let i,r,o;if(e instanceof wi){let s=Math.tan(.5*e.fovy);return i=e.near,r=e.near*s,o=e.aspectRatio*r,Math.max(t*i/o,n*i/r)}else if(e instanceof $c)return i=e.near,r=e.top,o=e.right,Math.max(t*i/o,n*i/r);return Math.max(t,n)}var eot=new h,P_e=new h;function B_e(e,t,n,i){if(u(i)&&n(.5)>i){let r=n(0),o=n(1),s=n(.5),a=s-r,c=s-o;return function(l){let f=n(l);if(l<=.5){let p=(f-r)/a;return P.lerp(e,-P.PI_OVER_TWO,p)}let d=(f-o)/c;return P.lerp(-P.PI_OVER_TWO,t,1-d)}}return function(r){return P.lerp(e,t,r)}}function yq(e,t,n,i,r){let o=r,s=Math.max(n,i);if(!u(o)){let a=e.position,c=t,l=e.up,f=e.right,d=e.frustum,p=h.subtract(a,c,eot),g=h.magnitude(h.multiplyByScalar(l,h.dot(p,l),P_e)),m=h.magnitude(h.multiplyByScalar(f,h.dot(p,f),P_e));o=Math.min($rt(d,g,m)*.2,1e9)}if(s<o){let l=-Math.pow((o-n)*1e6,.125),f=Math.pow((o-i)*1e6,1/8);return function(d){let p=d*(f-l)+l;return-Math.pow(p,8)/1e6+o}}return function(a){return P.lerp(n,i,a)}}function DL(e,t){return P.equalsEpsilon(e,P.TWO_PI,P.EPSILON11)&&(e=0),t>e+Math.PI?e+=P.TWO_PI:t<e-Math.PI&&(e-=P.TWO_PI),e}var L_e=new h;function tot(e,t,n,i,r,o,s,a){let c=e.camera,l=h.clone(c.position,L_e),f=c.pitch,d=DL(c.heading,i),p=DL(c.roll,o),g=yq(c,n,l.z,n.z,s),m=B_e(f,r,g,a);function A(x){let C=x.time/t;c.setView({orientation:{heading:P.lerp(d,i,C),pitch:m(C),roll:P.lerp(p,o,C)}}),H.lerp(l,n,C,c.position),c.position.z=g(C)}return A}function not(e,t){e.longitude<t.longitude?e.longitude+=P.TWO_PI:t.longitude+=P.TWO_PI}function iot(e,t){let n=e.longitude-t.longitude;n<-P.PI?e.longitude+=P.TWO_PI:n>P.PI&&(t.longitude+=P.TWO_PI)}var rot=new me,oot=new me;function sot(e,t,n,i,r,o,s,a,c,l){let f=e.camera,p=e.mapProjection.ellipsoid,g=me.clone(f.positionCartographic,rot),m=f.pitch,A=DL(f.heading,i),x=DL(f.roll,o),C=p.cartesianToCartographic(n,oot);g.longitude=P.zeroToTwoPi(g.longitude),C.longitude=P.zeroToTwoPi(C.longitude);let T=!1;if(u(a)){let D=P.zeroToTwoPi(a),M=Math.min(g.longitude,C.longitude),O=Math.max(g.longitude,C.longitude),B=D>=M&&D<=O;if(u(c)){let L=Math.abs(g.longitude-C.longitude),_=P.TWO_PI-L;(B?L:_)<(B?_:L)*c&&!B&&(T=!0)}else B||(T=!0)}T?not(g,C):iot(g,C);let E=yq(f,n,g.height,C.height,s),S=B_e(m,r,E,l);function v(){let D=g.longitude,M=C.longitude,O=g.latitude,B=C.latitude;return function(_){let b=_.time/t,w=h.fromRadians(P.lerp(D,M,b),P.lerp(O,B,b),E(b),p);f.setView({destination:w,orientation:{heading:P.lerp(A,i,b),pitch:S(b),roll:P.lerp(x,o,b)}})}}return v()}function aot(e,t,n,i,r,o,s){let a=e.camera,c=h.clone(a.position,L_e),l=DL(a.heading,i),f=a.frustum.right-a.frustum.left,d=yq(a,n,f,n.z,s);function p(g){let m=g.time/t;a.setView({orientation:{heading:P.lerp(l,i,m)}}),H.lerp(c,n,m,a.position);let A=d(m),x=a.frustum,C=x.top/x.right,T=(A-(x.right-x.left))*.5;x.right+=T,x.left-=T,x.top=C*x.right,x.bottom=-x.top}return p}var O_e=new me,cot=new h;function gq(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function M_e(e,t){function n(){typeof t=="function"&&t(),e.enableInputs=!0}return n}R_e.createTween=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.destination,i=e.mode;if(i===ne.MORPHING)return gq();let r=y(t.convert,!0),o=e.mapProjection,s=o.ellipsoid,a=t.maximumHeight,c=t.flyOverLongitude,l=t.flyOverLongitudeWeight,f=t.pitchAdjustHeight,d=t.easingFunction;r&&i!==ne.SCENE3D&&(s.cartesianToCartographic(n,O_e),n=o.project(O_e,cot));let p=e.camera,g=t.endTransform;u(g)&&p._setTransform(g);let m=t.duration;u(m)||(m=Math.ceil(h.distance(p.position,n)/1e6)+2,m=Math.min(m,3));let A=y(t.heading,0),x=y(t.pitch,-P.PI_OVER_TWO),C=y(t.roll,0),T=e.screenSpaceCameraController;T.enableInputs=!1;let E=M_e(T,t.complete),S=M_e(T,t.cancel),v=p.frustum,D=e.mode===ne.SCENE2D;if(D=D&&H.equalsEpsilon(p.position,n,P.EPSILON6),D=D&&P.equalsEpsilon(Math.max(v.right-v.left,v.top-v.bottom),n.z,P.EPSILON6),D=D||e.mode!==ne.SCENE2D&&h.equalsEpsilon(n,p.position,P.EPSILON10),D=D&&P.equalsEpsilon(P.negativePiToPi(A),P.negativePiToPi(p.heading),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(x),P.negativePiToPi(p.pitch),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(C),P.negativePiToPi(p.roll),P.EPSILON10),D)return gq(E,S);let M=new Array(4);if(M[ne.SCENE2D]=aot,M[ne.SCENE3D]=sot,M[ne.COLUMBUS_VIEW]=tot,m<=0)return gq(function(){M[i](e,1,n,A,x,C,a,c,l,f)({time:1}),typeof E=="function"&&E()},S);let O=M[i](e,m,n,A,x,C,a,c,l,f);if(!u(d)){let B=p.positionCartographic.height,L=i===ne.SCENE3D?s.cartesianToCartographic(n).height:n.z;B>L&&B>11500?d=No.CUBIC_OUT:d=No.QUINTIC_IN_OUT}return{duration:m,easingFunction:d,startObject:{time:0},stopObject:{time:m},update:O,complete:E,cancel:S}};var IL=R_e;var lot={ROTATE:0,INFINITE_SCROLL:1},Vl=Object.freeze(lot);function Zt(e){this._scene=e,this._transform=N.clone(N.IDENTITY),this._invTransform=N.clone(N.IDENTITY),this._actualTransform=N.clone(N.IDENTITY),this._actualInvTransform=N.clone(N.IDENTITY),this._transformChanged=!1,this.position=new h,this._position=new h,this._positionWC=new h,this._positionCartographic=new me,this._oldPositionWC=void 0,this.positionWCDeltaMagnitude=0,this.positionWCDeltaMagnitudeLastFrame=0,this.timeSinceMoved=0,this._lastMovedTimestamp=0,this.direction=new h,this._direction=new h,this._directionWC=new h,this.up=new h,this._up=new h,this._upWC=new h,this.right=new h,this._right=new h,this._rightWC=new h,this.frustum=new wi,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60),this.defaultMoveAmount=1e5,this.defaultLookAmount=Math.PI/60,this.defaultRotateAmount=Math.PI/3600,this.defaultZoomAmount=1e5,this.constrainedAxis=void 0,this.maximumZoomFactor=1.5,this._moveStart=new ge,this._moveEnd=new ge,this._changed=new ge,this._changedPosition=void 0,this._changedDirection=void 0,this._changedFrustum=void 0,this._changedHeading=void 0,this.percentageChanged=.5,this._viewMatrix=new N,this._invViewMatrix=new N,G_e(this),this._mode=ne.SCENE3D,this._modeChanged=!0;let t=e.mapProjection;this._projection=t,this._maxCoord=t.project(new me(Math.PI,P.PI_OVER_TWO)),this._max2Dfrustum=void 0,tge(this,Zt.DEFAULT_VIEW_RECTANGLE,this.position,!0);let n=h.magnitude(this.position);n+=n*Zt.DEFAULT_VIEW_FACTOR,h.normalize(this.position,this.position),h.multiplyByScalar(this.position,n,this.position)}Zt.TRANSFORM_2D=new N(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);Zt.TRANSFORM_2D_INVERSE=N.inverseTransformation(Zt.TRANSFORM_2D,new N);Zt.DEFAULT_VIEW_RECTANGLE=le.fromDegrees(-95,-20,-70,90);Zt.DEFAULT_VIEW_FACTOR=.5;Zt.DEFAULT_OFFSET=new Cu(0,-P.PI_OVER_FOUR,0);function G_e(e){N.computeView(e._position,e._direction,e._up,e._right,e._viewMatrix),N.multiply(e._viewMatrix,e._actualInvTransform,e._viewMatrix),N.inverseTransformation(e._viewMatrix,e._invViewMatrix)}function uot(e){if(!u(e._oldPositionWC))e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC);else{e.positionWCDeltaMagnitudeLastFrame=e.positionWCDeltaMagnitude;let t=h.subtract(e.positionWC,e._oldPositionWC,e._oldPositionWC);e.positionWCDeltaMagnitude=h.magnitude(t),e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC),e.positionWCDeltaMagnitude>0?(e.timeSinceMoved=0,e._lastMovedTimestamp=yi()):e.timeSinceMoved=Math.max(yi()-e._lastMovedTimestamp,0)/1e3}}Zt.prototype.canPreloadFlight=function(){return u(this._currentFlight)&&this._mode!==ne.SCENE2D};Zt.prototype._updateCameraChanged=function(){let e=this;if(uot(e),e._changed.numberOfListeners===0)return;let t=e.percentageChanged,n=e.heading;u(e._changedHeading)||(e._changedHeading=n);let i=Math.abs(e._changedHeading-n)%P.TWO_PI;i=i>P.PI?P.TWO_PI-i:i;let r=i/Math.PI;if(r>t&&(e._changed.raiseEvent(r),e._changedHeading=n),e._mode===ne.SCENE2D){if(!u(e._changedFrustum)){e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone();return}let l=e.position,f=e._changedPosition,d=e.frustum,p=e._changedFrustum,g=l.x+d.left,m=l.x+d.right,A=f.x+p.left,x=f.x+p.right,C=l.y+d.bottom,T=l.y+d.top,E=f.y+p.bottom,S=f.y+p.top,v=Math.max(g,A),D=Math.min(m,x),M=Math.max(C,E),O=Math.min(T,S),B;if(v>=D||M>=T)B=1;else{let L=p;g<A&&m>x&&C<E&&T>S&&(L=d),B=1-(D-v)*(O-M)/((L.right-L.left)*(L.top-L.bottom))}B>t&&(e._changed.raiseEvent(B),e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum));return}if(!u(e._changedDirection)){e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection);return}let o=P.acosClamped(h.dot(e.directionWC,e._changedDirection)),s;u(e.frustum.fovy)?s=o/(e.frustum.fovy*.5):s=o;let c=h.distance(e.positionWC,e._changedPosition)/e.positionCartographic.height;(s>t||c>t)&&(e._changed.raiseEvent(Math.max(s,c)),e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection))};function fot(e){Mt.basisTo2D(e._projection,e._transform,e._actualTransform)}var dot=new me,hot=new h,Cz=new h,mot=new se,pot=new se,_ot=new se,got=new se,yot=new se;function Aot(e){let t=e._projection,n=t.ellipsoid,i=N.getColumn(e._transform,3,mot),r=n.cartesianToCartographic(i,dot),o=t.project(r,hot),s=pot;s.x=o.z,s.y=o.x,s.z=o.y,s.w=1;let a=se.clone(se.UNIT_X,yot),c=se.add(N.getColumn(e._transform,0,Cz),i,Cz);n.cartesianToCartographic(c,r),t.project(r,o);let l=_ot;l.x=o.z,l.y=o.x,l.z=o.y,l.w=0,h.subtract(l,s,l),l.x=0;let f=got;if(h.magnitudeSquared(l)>P.EPSILON10)h.cross(a,l,f);else{let d=se.add(N.getColumn(e._transform,1,Cz),i,Cz);n.cartesianToCartographic(d,r),t.project(r,o),f.x=o.z,f.y=o.x,f.z=o.y,f.w=0,h.subtract(f,s,f),f.x=0,h.magnitudeSquared(f)<P.EPSILON10&&(se.clone(se.UNIT_Y,l),se.clone(se.UNIT_Z,f))}h.cross(f,a,l),h.normalize(l,l),h.cross(a,l,f),h.normalize(f,f),N.setColumn(e._actualTransform,0,l,e._actualTransform),N.setColumn(e._actualTransform,1,f,e._actualTransform),N.setColumn(e._actualTransform,2,a,e._actualTransform),N.setColumn(e._actualTransform,3,s,e._actualTransform)}var Aq=new h;function pc(e){let t=e._mode,n=!1,i=0;t===ne.SCENE2D&&(i=e.frustum.right-e.frustum.left,n=i!==e._positionCartographic.height);let r=e._position,o=!h.equals(r,e.position)||n;o&&(r=h.clone(e.position,e._position));let s=e._direction,a=!h.equals(s,e.direction);a&&(h.normalize(e.direction,e.direction),s=h.clone(e.direction,e._direction));let c=e._up,l=!h.equals(c,e.up);l&&(h.normalize(e.up,e.up),c=h.clone(e.up,e._up));let f=e._right,d=!h.equals(f,e.right);d&&(h.normalize(e.right,e.right),f=h.clone(e.right,e._right));let p=e._transformChanged||e._modeChanged;e._transformChanged=!1,p&&(N.inverseTransformation(e._transform,e._invTransform),e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D?N.equals(N.IDENTITY,e._transform)?N.clone(Zt.TRANSFORM_2D,e._actualTransform):e._mode===ne.COLUMBUS_VIEW?fot(e):Aot(e):N.clone(e._transform,e._actualTransform),N.inverseTransformation(e._actualTransform,e._actualInvTransform),e._modeChanged=!1);let g=e._actualTransform;if(o||p)if(e._positionWC=N.multiplyByPoint(g,r,e._positionWC),t===ne.SCENE3D||t===ne.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{let m=Aq;m.x=e._positionWC.y,m.y=e._positionWC.z,m.z=e._positionWC.x,t===ne.SCENE2D&&(m.z=i),e._projection.unproject(m,e._positionCartographic)}if(a||l||d){let m=h.dot(s,h.cross(c,f,Aq));if(Math.abs(1-m)>P.EPSILON2){let A=1/h.magnitudeSquared(c),x=h.dot(c,s)*A,C=h.multiplyByScalar(s,x,Aq);c=h.normalize(h.subtract(c,C,e._up),e._up),h.clone(c,e.up),f=h.cross(s,c,e._right),h.clone(f,e.right)}}(a||p)&&(e._directionWC=N.multiplyByPointAsVector(g,s,e._directionWC),h.normalize(e._directionWC,e._directionWC)),(l||p)&&(e._upWC=N.multiplyByPointAsVector(g,c,e._upWC),h.normalize(e._upWC,e._upWC)),(d||p)&&(e._rightWC=N.multiplyByPointAsVector(g,f,e._rightWC),h.normalize(e._rightWC,e._rightWC)),(o||a||l||d||p)&&G_e(e)}function W_e(e,t){let n;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)?n=Math.atan2(t.y,t.x)-P.PI_OVER_TWO:n=Math.atan2(e.y,e.x)-P.PI_OVER_TWO,P.TWO_PI-P.zeroToTwoPi(n)}function j_e(e){return P.PI_OVER_TWO-P.acosClamped(e.z)}function q_e(e,t,n){let i=0;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)||(i=Math.atan2(-n.z,t.z),i=P.zeroToTwoPi(i+P.TWO_PI)),i}var bz=new N,Sz=new N;Object.defineProperties(Zt.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return pc(this),this._invTransform}},viewMatrix:{get:function(){return pc(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return pc(this),this._invViewMatrix}},positionCartographic:{get:function(){return pc(this),this._positionCartographic}},positionWC:{get:function(){return pc(this),this._positionWC}},directionWC:{get:function(){return pc(this),this._directionWC}},upWC:{get:function(){return pc(this),this._upWC}},rightWC:{get:function(){return pc(this),this._rightWC}},heading:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=N.clone(this._transform,bz),n=Mt.eastNorthUpToFixedFrame(this.positionWC,e,Sz);this._setTransform(n);let i=W_e(this.direction,this.up);return this._setTransform(t),i}}},pitch:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=N.clone(this._transform,bz),n=Mt.eastNorthUpToFixedFrame(this.positionWC,e,Sz);this._setTransform(n);let i=j_e(this.direction);return this._setTransform(t),i}}},roll:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=N.clone(this._transform,bz),n=Mt.eastNorthUpToFixedFrame(this.positionWC,e,Sz);this._setTransform(n);let i=q_e(this.direction,this.up,this.right);return this._setTransform(t),i}}},moveStart:{get:function(){return this._moveStart}},moveEnd:{get:function(){return this._moveEnd}},changed:{get:function(){return this._changed}}});Zt.prototype.update=function(e){let t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==ne.MORPHING,t=this._mode===ne.SCENE2D),t){let n=this._max2Dfrustum=this.frustum.clone(),i=2,r=n.top/n.right;n.right=this._maxCoord.x*i,n.left=-n.right,n.top=r*n.right,n.bottom=-n.top}this._mode===ne.SCENE2D&&J_e(this,this.position)};var xot=new h,Cot=new h,Tot=new h;Zt.prototype._setTransform=function(e){let t=h.clone(this.positionWC,xot),n=h.clone(this.upWC,Cot),i=h.clone(this.directionWC,Tot);N.clone(e,this._transform),this._transformChanged=!0,pc(this);let r=this._actualInvTransform;N.multiplyByPoint(r,t,this.position),N.multiplyByPointAsVector(r,i,this.direction),N.multiplyByPointAsVector(r,n,this.up),h.cross(this.direction,this.up,this.right),pc(this)};var Eot=new H,bot=new vn,Sot=new h,vot=new h;function Y_e(e){if(!N.equals(N.IDENTITY,e.transform))return h.magnitude(e.position);let t=e._scene,n=t.globe,i=Eot;i.x=t.drawingBufferWidth/2,i.y=t.drawingBufferHeight/2;let r;if(u(n)){let a=e.getPickRay(i,bot);r=n.pickWorldCoordinates(a,t,!0,Sot)}let o;t.pickPositionSupported&&(o=t.pickPositionWorldCoordinates(i,vot));let s;if(u(r)||u(o)){let a=u(o)?h.distance(o,e.positionWC):Number.POSITIVE_INFINITY,c=u(r)?h.distance(r,e.positionWC):Number.POSITIVE_INFINITY;s=Math.min(a,c)}else s=Math.max(e.positionCartographic.height,0);return s}Zt.prototype._adjustOrthographicFrustum=function(e){this.frustum instanceof en&&(!e&&this._positionCartographic.height<15e4||(this.frustum.width=Y_e(this)))};var vz=new h,bq=new N,wot=new N,Sq=new Le,vq=new Q,X_e=new me;function Dot(e,t,n){let i=N.clone(e.transform,bq),r=Mt.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,wot);e._setTransform(r),h.clone(h.ZERO,e.position),n.heading=n.heading-P.PI_OVER_TWO;let o=Le.fromHeadingPitchRoll(n,Sq),s=Q.fromQuaternion(o,vq);Q.getColumn(s,0,e.direction),Q.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(i),e._adjustOrthographicFrustum(!0)}function Iot(e,t,n,i){let r=N.clone(e.transform,bq);if(e._setTransform(N.IDENTITY),!h.equals(t,e.positionWC)){if(i){let a=e._projection,c=a.ellipsoid.cartesianToCartographic(t,X_e);t=a.project(c,vz)}h.clone(t,e.position)}n.heading=n.heading-P.PI_OVER_TWO;let o=Le.fromHeadingPitchRoll(n,Sq),s=Q.fromQuaternion(o,vq);Q.getColumn(s,0,e.direction),Q.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(r),e._adjustOrthographicFrustum(!0)}function Pot(e,t,n,i){let r=N.clone(e.transform,bq);if(e._setTransform(N.IDENTITY),!h.equals(t,e.positionWC)){if(i){let c=e._projection,l=c.ellipsoid.cartesianToCartographic(t,X_e);t=c.project(l,vz)}H.clone(t,e.position);let o=-t.z*.5,s=-o,a=e.frustum;if(s>o){let c=a.top/a.right;a.right=s,a.left=o,a.top=a.right*c,a.bottom=-a.top}}if(e._scene.mapMode2D===Vl.ROTATE){n.heading=n.heading-P.PI_OVER_TWO,n.pitch=-P.PI_OVER_TWO,n.roll=0;let o=Le.fromHeadingPitchRoll(n,Sq),s=Q.fromQuaternion(o,vq);Q.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right)}e._setTransform(r)}var Oot=new h,Mot=new h,Rot=new h;function K_e(e,t,n,i){let r=h.clone(n.direction,Oot),o=h.clone(n.up,Mot);if(e._scene.mode===ne.SCENE3D){let a=e._projection.ellipsoid,c=Mt.eastNorthUpToFixedFrame(t,a,bz),l=N.inverseTransformation(c,Sz);N.multiplyByPointAsVector(l,r,r),N.multiplyByPointAsVector(l,o,o)}let s=h.cross(r,o,Rot);return i.heading=W_e(r,o),i.pitch=j_e(r),i.roll=q_e(r,o,s),i}var Eq={destination:void 0,orientation:{direction:void 0,up:void 0,heading:void 0,pitch:void 0,roll:void 0},convert:void 0,endTransform:void 0},yS=new ka;Zt.prototype.setView=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.orientation,y.EMPTY_OBJECT),n=this._mode;if(n===ne.MORPHING)return;u(e.endTransform)&&this._setTransform(e.endTransform);let i=y(e.convert,!0),r=y(e.destination,h.clone(this.positionWC,vz));u(r)&&u(r.west)&&(r=this.getRectangleCameraCoordinates(r,vz),i=!1),u(t.direction)&&(t=K_e(this,r,t,Eq.orientation)),yS.heading=y(t.heading,0),yS.pitch=y(t.pitch,-P.PI_OVER_TWO),yS.roll=y(t.roll,0),n===ne.SCENE3D?Dot(this,r,yS):n===ne.SCENE2D?Pot(this,r,yS,i):Iot(this,r,yS,i)};var Bot=new h;Zt.prototype.flyHome=function(e){let t=this._mode;if(t===ne.MORPHING&&this._scene.completeMorph(),t===ne.SCENE2D)this.flyTo({destination:Zt.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:N.IDENTITY});else if(t===ne.SCENE3D){let n=this.getRectangleCameraCoordinates(Zt.DEFAULT_VIEW_RECTANGLE),i=h.magnitude(n);i+=i*Zt.DEFAULT_VIEW_FACTOR,h.normalize(n,n),h.multiplyByScalar(n,i,n),this.flyTo({destination:n,duration:e,endTransform:N.IDENTITY})}else if(t===ne.COLUMBUS_VIEW){let n=this._projection.ellipsoid.maximumRadius,i=new h(0,-1,1);i=h.multiplyByScalar(h.normalize(i,i),5*n,i),this.flyTo({destination:i,duration:e,orientation:{heading:0,pitch:-Math.acos(h.normalize(i,Bot).z),roll:0},endTransform:N.IDENTITY,convert:!1})}};Zt.prototype.worldToCameraCoordinates=function(e,t){return u(t)||(t=new se),pc(this),N.multiplyByVector(this._actualInvTransform,e,t)};Zt.prototype.worldToCameraCoordinatesPoint=function(e,t){return u(t)||(t=new h),pc(this),N.multiplyByPoint(this._actualInvTransform,e,t)};Zt.prototype.worldToCameraCoordinatesVector=function(e,t){return u(t)||(t=new h),pc(this),N.multiplyByPointAsVector(this._actualInvTransform,e,t)};Zt.prototype.cameraToWorldCoordinates=function(e,t){return u(t)||(t=new se),pc(this),N.multiplyByVector(this._actualTransform,e,t)};Zt.prototype.cameraToWorldCoordinatesPoint=function(e,t){return u(t)||(t=new h),pc(this),N.multiplyByPoint(this._actualTransform,e,t)};Zt.prototype.cameraToWorldCoordinatesVector=function(e,t){return u(t)||(t=new h),pc(this),N.multiplyByPointAsVector(this._actualTransform,e,t)};function J_e(e,t){let n=e._scene.mapMode2D===Vl.ROTATE,i=e._maxCoord.x,r=e._maxCoord.y,o,s;n?(s=i,o=-s):(s=t.x-i*2,o=t.x+i*2),t.x>i&&(t.x=s),t.x<-i&&(t.x=o),t.y>r&&(t.y=r),t.y<-r&&(t.y=-r)}var N_e=new h;Zt.prototype.move=function(e,t){let n=this.position;h.multiplyByScalar(e,t,N_e),h.add(n,N_e,n),this._mode===ne.SCENE2D&&J_e(this,n),this._adjustOrthographicFrustum(!0)};Zt.prototype.moveForward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?wz(this,e):this.move(this.direction,e)};Zt.prototype.moveBackward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?wz(this,-e):this.move(this.direction,-e)};Zt.prototype.moveUp=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,e)};Zt.prototype.moveDown=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,-e)};Zt.prototype.moveRight=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,e)};Zt.prototype.moveLeft=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,-e)};Zt.prototype.lookLeft=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,-e)};Zt.prototype.lookRight=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,e)};Zt.prototype.lookUp=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,-e)};Zt.prototype.lookDown=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,e)};var Lot=new Le,Not=new Q;Zt.prototype.look=function(e,t){let n=y(t,this.defaultLookAmount),i=Le.fromAxisAngle(e,-n,Lot),r=Q.fromQuaternion(i,Not),o=this.direction,s=this.up,a=this.right;Q.multiplyByVector(r,o,o),Q.multiplyByVector(r,s,s),Q.multiplyByVector(r,a,a)};Zt.prototype.twistLeft=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,e)};Zt.prototype.twistRight=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,-e)};var Fot=new Le,Uot=new Q;Zt.prototype.rotate=function(e,t){let n=y(t,this.defaultRotateAmount),i=Le.fromAxisAngle(e,-n,Fot),r=Q.fromQuaternion(i,Uot);Q.multiplyByVector(r,this.position,this.position),Q.multiplyByVector(r,this.direction,this.direction),Q.multiplyByVector(r,this.up,this.up),h.cross(this.direction,this.up,this.right),h.cross(this.right,this.direction,this.up),this._adjustOrthographicFrustum(!1)};Zt.prototype.rotateDown=function(e){e=y(e,this.defaultRotateAmount),Z_e(this,e)};Zt.prototype.rotateUp=function(e){e=y(e,this.defaultRotateAmount),Z_e(this,-e)};var Vot=new h,kot=new h,zot=new h,F_e=new h;function Z_e(e,t){let n=e.position;if(u(e.constrainedAxis)&&!h.equalsEpsilon(e.position,h.ZERO,P.EPSILON2)){let i=h.normalize(n,Vot),r=h.equalsEpsilon(i,e.constrainedAxis,P.EPSILON2),o=h.equalsEpsilon(i,h.negate(e.constrainedAxis,F_e),P.EPSILON2);if(!r&&!o){let s=h.normalize(e.constrainedAxis,kot),a=h.dot(i,s),c=P.acosClamped(a);t>0&&t>c&&(t=c-P.EPSILON4),a=h.dot(i,h.negate(s,F_e)),c=P.acosClamped(a),t<0&&-t>c&&(t=-c+P.EPSILON4);let l=h.cross(s,i,zot);e.rotate(l,t)}else(r&&t<0||o&&t>0)&&e.rotate(e.right,t)}else e.rotate(e.right,t)}Zt.prototype.rotateRight=function(e){e=y(e,this.defaultRotateAmount),Q_e(this,-e)};Zt.prototype.rotateLeft=function(e){e=y(e,this.defaultRotateAmount),Q_e(this,e)};function Q_e(e,t){u(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function wz(e,t){let n=e.frustum,i;if(t=t*.5,Math.abs(n.top)+Math.abs(n.bottom)>Math.abs(n.left)+Math.abs(n.right)){let r=n.top-t,o=n.bottom+t,s=e._maxCoord.y;e._scene.mapMode2D===Vl.ROTATE&&(s*=e.maximumZoomFactor),o>s&&(o=s,r=-s),r<=o&&(r=1,o=-1),i=n.right/n.top,n.top=r,n.bottom=o,n.right=n.top*i,n.left=-n.right}else{let r=n.right-t,o=n.left+t,s=e._maxCoord.x;e._scene.mapMode2D===Vl.ROTATE&&(s*=e.maximumZoomFactor),r>s&&(r=s,o=-s),r<=o&&(r=1,o=-1),i=n.top/n.right,n.right=r,n.left=o,n.top=n.right*i,n.bottom=-n.top}}function $_e(e,t){e.move(e.direction,t)}Zt.prototype.zoomIn=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?wz(this,e):$_e(this,e)};Zt.prototype.zoomOut=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?wz(this,-e):$_e(this,-e)};Zt.prototype.getMagnitude=function(){if(this._mode===ne.SCENE3D)return h.magnitude(this.position);if(this._mode===ne.COLUMBUS_VIEW)return Math.abs(this.position.z);if(this._mode===ne.SCENE2D)return Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom)};var Hot=new N;Zt.prototype.lookAt=function(e,t){let n=Mt.eastNorthUpToFixedFrame(e,re.WGS84,Hot);this.lookAtTransform(n,t)};var Got=new h,Wot=new Le,jot=new Le,qot=new Q;function ege(e,t,n){t=P.clamp(t,-P.PI_OVER_TWO,P.PI_OVER_TWO),e=P.zeroToTwoPi(e)-P.PI_OVER_TWO;let i=Le.fromAxisAngle(h.UNIT_Y,-t,Wot),r=Le.fromAxisAngle(h.UNIT_Z,-e,jot),o=Le.multiply(r,i,r),s=Q.fromQuaternion(o,qot),a=h.clone(h.UNIT_X,Got);return Q.multiplyByVector(s,a,a),h.negate(a,a),h.multiplyByScalar(a,n,a),a}Zt.prototype.lookAtTransform=function(e,t){if(this._setTransform(e),!u(t))return;let n;if(u(t.heading)?n=ege(t.heading,t.pitch,t.range):n=t,this._mode===ne.SCENE2D){H.clone(H.ZERO,this.position),h.negate(n,this.up),this.up.z=0,h.magnitudeSquared(this.up)<P.EPSILON10&&h.clone(h.UNIT_Y,this.up),h.normalize(this.up,this.up),this._setTransform(N.IDENTITY),h.negate(h.UNIT_Z,this.direction),h.cross(this.direction,this.up,this.right),h.normalize(this.right,this.right);let i=this.frustum,r=i.top/i.right;i.right=h.magnitude(n)*.5,i.left=-i.right,i.top=r*i.right,i.bottom=-i.top,this._setTransform(e);return}h.clone(n,this.position),h.negate(this.position,this.direction),h.normalize(this.direction,this.direction),h.cross(this.direction,h.UNIT_Z,this.right),h.magnitudeSquared(this.right)<P.EPSILON10&&h.clone(h.UNIT_X,this.right),h.normalize(this.right,this.right),h.cross(this.right,this.direction,this.up),h.normalize(this.up,this.up),this._adjustOrthographicFrustum(!0)};var PL=new me,Yot=new me,Xot=new h,Kot=new h,Jot=new h,Zot=new h,Qot=new h,$ot=new h,est=new h,xq=new h,tst={direction:new h,right:new h,up:new h},U_e;function mc(e,t,n,i){return Math.abs(h.dot(t,n))/i-h.dot(e,n)}function tge(e,t,n,i){let r=e._projection.ellipsoid,o=i?e:tst,s=t.north,a=t.south,c=t.east,l=t.west;l>c&&(c+=P.TWO_PI);let f=(l+c)*.5,d;if(a<-P.PI_OVER_TWO+P.RADIANS_PER_DEGREE&&s>P.PI_OVER_TWO-P.RADIANS_PER_DEGREE)d=0;else{let B=PL;B.longitude=f,B.latitude=s,B.height=0;let L=Yot;L.longitude=f,L.latitude=a,L.height=0;let _=U_e;(!u(_)||_.ellipsoid!==r)&&(U_e=_=new tf(void 0,void 0,r)),_.setEndPoints(B,L),d=_.interpolateUsingFraction(.5,PL).latitude}let p=PL;p.longitude=f,p.latitude=d,p.height=0;let g=r.cartographicToCartesian(p,est),m=PL;m.longitude=c,m.latitude=s;let A=r.cartographicToCartesian(m,Xot);m.longitude=l;let x=r.cartographicToCartesian(m,Jot);m.longitude=f;let C=r.cartographicToCartesian(m,Qot);m.latitude=a;let T=r.cartographicToCartesian(m,$ot);m.longitude=c;let E=r.cartographicToCartesian(m,Zot);m.longitude=l;let S=r.cartographicToCartesian(m,Kot);h.subtract(x,g,x),h.subtract(E,g,E),h.subtract(A,g,A),h.subtract(S,g,S),h.subtract(C,g,C),h.subtract(T,g,T);let v=r.geodeticSurfaceNormal(g,o.direction);h.negate(v,v);let D=h.cross(v,h.UNIT_Z,o.right);h.normalize(D,D);let M=h.cross(D,v,o.up),O;if(e.frustum instanceof en){let B=Math.max(h.distance(A,x),h.distance(E,S)),L=Math.max(h.distance(A,E),h.distance(x,S)),_,b,w=e.frustum._offCenterFrustum,I=w.right/w.top,R=L*I;B>R?(_=B,b=_/I):(b=L,_=R),O=Math.max(_,b)}else{let B=Math.tan(e.frustum.fovy*.5),L=e.frustum.aspectRatio*B;if(O=Math.max(mc(v,M,x,B),mc(v,M,E,B),mc(v,M,A,B),mc(v,M,S,B),mc(v,M,C,B),mc(v,M,T,B),mc(v,D,x,L),mc(v,D,E,L),mc(v,D,A,L),mc(v,D,S,L),mc(v,D,C,L),mc(v,D,T,L)),a<0&&s>0){let _=PL;_.longitude=l,_.latitude=0,_.height=0;let b=r.cartographicToCartesian(_,xq);h.subtract(b,g,b),O=Math.max(O,mc(v,M,b,B),mc(v,D,b,L)),_.longitude=c,b=r.cartographicToCartesian(_,xq),h.subtract(b,g,b),O=Math.max(O,mc(v,M,b,B),mc(v,D,b,L))}}return h.add(g,h.multiplyByScalar(v,-O,xq),n)}var nst=new me,ist=new h,rst=new h;function ost(e,t,n){let i=e._projection;t.west>t.east&&(t=le.MAX_VALUE);let r=e._actualTransform,o=e._actualInvTransform,s=nst;s.longitude=t.east,s.latitude=t.north;let a=i.project(s,ist);N.multiplyByPoint(r,a,a),N.multiplyByPoint(o,a,a),s.longitude=t.west,s.latitude=t.south;let c=i.project(s,rst);if(N.multiplyByPoint(r,c,c),N.multiplyByPoint(o,c,c),n.x=(a.x-c.x)*.5+c.x,n.y=(a.y-c.y)*.5+c.y,u(e.frustum.fovy)){let l=Math.tan(e.frustum.fovy*.5),f=e.frustum.aspectRatio*l;n.z=Math.max((a.x-c.x)/f,(a.y-c.y)/l)*.5}else{let l=a.x-c.x,f=a.y-c.y;n.z=Math.max(l,f)}return n}var sst=new me,ast=new h,cst=new h;function lst(e,t,n){let i=e._projection,r=t.east;t.west>t.east&&(e._scene.mapMode2D===Vl.INFINITE_SCROLL?r+=P.TWO_PI:(t=le.MAX_VALUE,r=t.east));let o=sst;o.longitude=r,o.latitude=t.north;let s=i.project(o,ast);o.longitude=t.west,o.latitude=t.south;let a=i.project(o,cst),c=Math.abs(s.x-a.x)*.5,l=Math.abs(s.y-a.y)*.5,f,d,p=e.frustum.right/e.frustum.top,g=l*p;return c>g?(f=c,d=f/p):(d=l,f=g),l=Math.max(2*f,2*d),n.x=(s.x-a.x)*.5+a.x,n.y=(s.y-a.y)*.5+a.y,o=i.unproject(n,o),o.height=l,n=i.project(o,n),n}Zt.prototype.getRectangleCameraCoordinates=function(e,t){let n=this._mode;if(u(t)||(t=new h),n===ne.SCENE3D)return tge(this,e,t);if(n===ne.COLUMBUS_VIEW)return ost(this,e,t);if(n===ne.SCENE2D)return lst(this,e,t)};var ust=new vn;function fst(e,t,n,i){n=y(n,re.WGS84);let r=e.getPickRay(t,ust),o=Ji.rayEllipsoid(r,n);if(!o)return;let s=o.start>0?o.start:o.stop;return vn.getPoint(r,s,i)}var dst=new vn;function hst(e,t,n,i){let o=e.getPickRay(t,dst).origin;o=h.fromElements(o.y,o.z,0,o);let s=n.unproject(o);if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO))return n.ellipsoid.cartographicToCartesian(s,i)}var mst=new vn;function pst(e,t,n,i){let r=e.getPickRay(t,mst),o=-r.origin.x/r.direction.x;vn.getPoint(r,o,i);let s=n.unproject(new h(i.y,i.z,0));if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO||s.longitude<-Math.PI||s.longitude>Math.PI))return n.ellipsoid.cartographicToCartesian(s,i)}Zt.prototype.pickEllipsoid=function(e,t,n){let i=this._scene.canvas;if(!(i.clientWidth===0||i.clientHeight===0)){if(u(n)||(n=new h),t=y(t,re.WGS84),this._mode===ne.SCENE3D)n=fst(this,e,t,n);else if(this._mode===ne.SCENE2D)n=hst(this,e,this._projection,n);else if(this._mode===ne.COLUMBUS_VIEW)n=pst(this,e,this._projection,n);else return;return n}};var _st=new h,gst=new h,yst=new h;function Ast(e,t,n){let i=e._scene.canvas,r=i.clientWidth,o=i.clientHeight,s=Math.tan(e.frustum.fovy*.5),a=e.frustum.aspectRatio*s,c=e.frustum.near,l=2/r*t.x-1,f=2/o*(o-t.y)-1,d=e.positionWC;h.clone(d,n.origin);let p=h.multiplyByScalar(e.directionWC,c,_st);h.add(d,p,p);let g=h.multiplyByScalar(e.rightWC,l*c*a,gst),m=h.multiplyByScalar(e.upWC,f*c*s,yst),A=h.add(p,g,n.direction);return h.add(A,m,A),h.subtract(A,d,A),h.normalize(A,A),n}var Tz=new h;function xst(e,t,n){let i=e._scene.canvas,r=i.clientWidth,o=i.clientHeight,s=e.frustum,a=s.offCenterFrustum;u(a)&&(s=a);let c=2/r*t.x-1;c*=(s.right-s.left)*.5;let l=2/o*(o-t.y)-1;l*=(s.top-s.bottom)*.5;let f=n.origin;return h.clone(e.position,f),h.multiplyByScalar(e.right,c,Tz),h.add(Tz,f,f),h.multiplyByScalar(e.up,l,Tz),h.add(Tz,f,f),h.clone(e.directionWC,n.direction),(e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D)&&h.fromElements(n.origin.z,n.origin.x,n.origin.y,n.origin),n}Zt.prototype.getPickRay=function(e,t){u(t)||(t=new vn);let n=this._scene.canvas;if(n.clientWidth<=0||n.clientHeight<=0)return;let i=this.frustum;return u(i.aspectRatio)&&u(i.fov)&&u(i.near)?Ast(this,e,t):xst(this,e,t)};var Cst=new h,Tst=new h;Zt.prototype.distanceToBoundingSphere=function(e){let t=h.subtract(this.positionWC,e.center,Cst),n=h.multiplyByScalar(this.directionWC,h.dot(t,this.directionWC),Tst);return Math.max(0,h.magnitude(n)-e.radius)};var Est=new H;Zt.prototype.getPixelSize=function(e,t,n){let i=this.distanceToBoundingSphere(e),r=this.frustum.getPixelDimensions(t,n,i,this._scene.pixelRatio,Est);return Math.max(r.x,r.y)};function bst(e,t,n,i,r,o){let s=h.clone(t);n.y>i?s.y-=n.y-i:n.y<-i&&(s.y+=-i-n.y),n.z>r?s.z-=n.z-r:n.z<-r&&(s.z+=-r-n.z);function a(c){let l=h.lerp(t,s,c.time,new h);e.worldToCameraCoordinatesPoint(l,e.position)}return{easingFunction:No.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:o,update:a}}var Sst=new h,V_e=new h,vst=new h,wst=new h;function Dst(e,t){let n=e.position,i=e.direction,r=e.worldToCameraCoordinatesVector(h.UNIT_X,Sst),o=-h.dot(r,n)/h.dot(r,i),s=h.add(n,h.multiplyByScalar(i,o,V_e),V_e);e.cameraToWorldCoordinatesPoint(s,s),n=e.cameraToWorldCoordinatesPoint(e.position,vst);let a=Math.tan(e.frustum.fovy*.5),c=e.frustum.aspectRatio*a,l=h.magnitude(h.subtract(n,s,wst)),f=c*l,d=a*l,p=e._maxCoord.x,g=e._maxCoord.y,m=Math.max(f-p,p),A=Math.max(d-g,g);if(n.z<-m||n.z>m||n.y<-A||n.y>A){let x=s.y<-m||s.y>m,C=s.z<-A||s.z>A;if(x||C)return bst(e,n,s,m,A,t)}}Zt.prototype.createCorrectPositionTween=function(e){if(this._mode===ne.COLUMBUS_VIEW)return Dst(this,e)};var Ist=new h,zs={destination:void 0,heading:void 0,pitch:void 0,roll:void 0,duration:void 0,complete:void 0,cancel:void 0,endTransform:void 0,maximumHeight:void 0,easingFunction:void 0};Zt.prototype.cancelFlight=function(){u(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)};Zt.prototype.completeFlight=function(){if(u(this._currentFlight)){this._currentFlight.cancelTween();let e={destination:void 0,orientation:{heading:void 0,pitch:void 0,roll:void 0}};e.destination=zs.destination,e.orientation.heading=zs.heading,e.orientation.pitch=zs.pitch,e.orientation.roll=zs.roll,this.setView(e),u(this._currentFlight.complete)&&this._currentFlight.complete(),this._currentFlight=void 0}};Zt.prototype.flyTo=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.destination;if(this._mode===ne.MORPHING)return;this.cancelFlight();let i=t instanceof le;i&&(t=this.getRectangleCameraCoordinates(t,Ist));let r=y(e.orientation,y.EMPTY_OBJECT);if(u(r.direction)&&(r=K_e(this,t,r,Eq.orientation)),u(e.duration)&&e.duration<=0){let f=Eq;f.destination=e.destination,f.orientation.heading=r.heading,f.orientation.pitch=r.pitch,f.orientation.roll=r.roll,f.convert=e.convert,f.endTransform=e.endTransform,this.setView(f),typeof e.complete=="function"&&e.complete();return}let o=this,s;zs.destination=t,zs.heading=r.heading,zs.pitch=r.pitch,zs.roll=r.roll,zs.duration=e.duration,zs.complete=function(){s===o._currentFlight&&(o._currentFlight=void 0),u(e.complete)&&e.complete()},zs.cancel=e.cancel,zs.endTransform=e.endTransform,zs.convert=i?!1:e.convert,zs.maximumHeight=e.maximumHeight,zs.pitchAdjustHeight=e.pitchAdjustHeight,zs.flyOverLongitude=e.flyOverLongitude,zs.flyOverLongitudeWeight=e.flyOverLongitudeWeight,zs.easingFunction=e.easingFunction;let a=this._scene,c=IL.createTween(a,zs);if(c.duration===0){typeof c.complete=="function"&&c.complete();return}s=a.tweens.add(c),this._currentFlight=s;let l=this._scene.preloadFlightCamera;this._mode!==ne.SCENE2D&&(u(l)||(l=Zt.clone(this)),l.setView({destination:t,orientation:r}),this._scene.preloadFlightCullingVolume=l.frustum.computeCullingVolume(l.positionWC,l.directionWC,l.upWC))};function Pst(e,t){let n=e.frustum,i=Math.tan(n.fovy*.5),r=n.aspectRatio*i;return Math.max(t/r,t/i)}function Ost(e,t){let n=e.frustum,i=n.offCenterFrustum;u(i)&&(n=i);let r,o,s=n.right/n.top,a=t*s;return t>a?(r=t,o=r/s):(o=t,r=a),Math.max(r,o)*1.5}var Mst=100;function nge(e,t,n){n=Cu.clone(u(n)?n:Zt.DEFAULT_OFFSET);let i=e._scene.screenSpaceCameraController.minimumZoomDistance,r=e._scene.screenSpaceCameraController.maximumZoomDistance,o=n.range;if(!u(o)||o===0){let s=t.radius;s===0?n.range=Mst:e.frustum instanceof en||e._mode===ne.SCENE2D?n.range=Ost(e,s):n.range=Pst(e,s),n.range=P.clamp(n.range,i,r)}return n}Zt.prototype.viewBoundingSphere=function(e,t){t=nge(this,e,t),this.lookAt(e.center,t)};var Rst=new N,Bst=new h,Lst=new h,Nst=new h,Fst=new h,Ust=new se,Vst=new Le,kst=new Q;Zt.prototype.flyToBoundingSphere=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=this._mode===ne.SCENE2D||this._mode===ne.COLUMBUS_VIEW;this._setTransform(N.IDENTITY);let i=nge(this,e,t.offset),r;n?r=h.multiplyByScalar(h.UNIT_Z,i.range,Bst):r=ege(i.heading,i.pitch,i.range);let o=Mt.eastNorthUpToFixedFrame(e.center,re.WGS84,Rst);N.multiplyByPoint(o,r,r);let s,a;if(!n){if(s=h.subtract(e.center,r,Lst),h.normalize(s,s),a=N.multiplyByPointAsVector(o,h.UNIT_Z,Nst),1-Math.abs(h.dot(s,a))<P.EPSILON6){let l=Le.fromAxisAngle(s,i.heading,Vst),f=Q.fromQuaternion(l,kst);h.fromCartesian4(N.getColumn(o,1,Ust),a),Q.multiplyByVector(f,a,a)}let c=h.cross(s,a,Fst);h.cross(c,s,a),h.normalize(a,a)}this.flyTo({destination:r,orientation:{direction:s,up:a},duration:t.duration,complete:t.complete,cancel:t.cancel,endTransform:t.endTransform,maximumHeight:t.maximumHeight,easingFunction:t.easingFunction,flyOverLongitude:t.flyOverLongitude,flyOverLongitudeWeight:t.flyOverLongitudeWeight,pitchAdjustHeight:t.pitchAdjustHeight})};var k_e=new h,z_e=new h,Cq=new h,H_e=new h,OL=[new h,new h,new h,new h];function zst(e,t){let n=t.radii,i=e.positionWC,r=h.multiplyComponents(t.oneOverRadii,i,k_e),o=h.magnitude(r),s=h.normalize(r,z_e),a,c;h.equalsEpsilon(s,h.UNIT_Z,P.EPSILON10)?(a=new h(0,1,0),c=new h(0,0,1)):(a=h.normalize(h.cross(h.UNIT_Z,s,Cq),Cq),c=h.normalize(h.cross(s,a,H_e),H_e));let l=Math.sqrt(h.magnitudeSquared(r)-1),f=h.multiplyByScalar(s,1/o,k_e),d=l/o,p=h.multiplyByScalar(a,d,z_e),g=h.multiplyByScalar(c,d,Cq),m=h.add(f,g,OL[0]);h.subtract(m,p,m),h.multiplyComponents(n,m,m);let A=h.subtract(f,g,OL[1]);h.subtract(A,p,A),h.multiplyComponents(n,A,A);let x=h.subtract(f,g,OL[2]);h.add(x,p,x),h.multiplyComponents(n,x,x);let C=h.add(f,g,OL[3]);return h.add(C,p,C),h.multiplyComponents(n,C,C),OL}var Tq=new H,Hst=new h,jy=[new me,new me,new me,new me];function Ez(e,t,n,i,r,o){Tq.x=e,Tq.y=t;let s=i.pickEllipsoid(Tq,r,Hst);return u(s)?(jy[n]=r.cartesianToCartographic(s,jy[n]),1):(jy[n]=r.cartesianToCartographic(o[n],jy[n]),0)}Zt.prototype.computeViewRectangle=function(e,t){e=y(e,re.WGS84);let n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),i=new ae(h.ZERO,e.maximumRadius);if(n.computeVisibility(i)===Qt.OUTSIDE)return;let o=this._scene.canvas,s=o.clientWidth,a=o.clientHeight,c=0,l=zst(this,e);if(c+=Ez(0,0,0,this,e,l),c+=Ez(0,a,1,this,e,l),c+=Ez(s,a,2,this,e,l),c+=Ez(s,0,3,this,e,l),c<2)return le.MAX_VALUE;t=le.fromCartographicArray(jy,t);let f=0,d=jy[3].longitude;for(let p=0;p<4;++p){let g=jy[p].longitude,m=Math.abs(g-d);m>P.PI?f+=P.TWO_PI-m:f+=m,d=g}return P.equalsEpsilon(Math.abs(f),P.TWO_PI,P.EPSILON9)&&(t.west=-P.PI,t.east=P.PI,jy[0].latitude>=0?t.north=P.PI_OVER_TWO:t.south=-P.PI_OVER_TWO),t};Zt.prototype.switchToPerspectiveFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof wi)return;let e=this._scene;this.frustum=new wi,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60)};Zt.prototype.switchToOrthographicFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof en)return;let e=Y_e(this),t=this._scene;this.frustum=new en,this.frustum.aspectRatio=t.drawingBufferWidth/t.drawingBufferHeight,this.frustum.width=e};Zt.clone=function(e,t){return u(t)||(t=new Zt(e._scene)),h.clone(e.position,t.position),h.clone(e.direction,t.direction),h.clone(e.up,t.up),h.clone(e.right,t.right),N.clone(e._transform,t.transform),t._transformChanged=!0,t.frustum=e.frustum.clone(),t};var fr=Zt;function Gst(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}var Gf=Gst;var age=Yi(Yl(),1),ige=576,Wst=100,ML="#ffffff",wq="#48b";function cge(e,t){this.credit=e,this.count=y(t,1)}function lge(e,t){let n=e.length;for(let i=0;i<n;i++){let r=e[i];if(wt.equals(r,t))return!0}return!1}function jst(e){let t=e._previousCesiumCredit,n=e._currentCesiumCredit;wt.equals(n,t)||(u(t)&&e._cesiumCreditContainer.removeChild(t.element),u(n)&&e._cesiumCreditContainer.appendChild(n.element),e._previousCesiumCredit=n)}var uge="cesium-credit-delimiter";function rge(e){let t=document.createElement("span");return t.textContent=e,t.className=uge,t}function oge(e,t){if(u(t)){let n=document.createElement(t);n._creditId=e._creditId,n.appendChild(e),e=n}return e}function sge(e,t,n,i){let r=e.childNodes,o=-1;t.sort(function(s,a){return a.count-s.count});for(let s=0;s<t.length;++s){let a=t[s].credit;if(u(a)){if(o=s,u(n)&&(o*=2,s>0)){let l=o-1;if(r.length<=l)e.appendChild(rge(n));else{let f=r[l];f.className!==uge&&e.replaceChild(rge(n),f)}}let c=a.element;if(r.length<=o)e.appendChild(oge(c,i));else{let l=r[o];l._creditId!==a._id&&e.replaceChild(oge(c,i),l)}}}for(++o;o<r.length;)e.removeChild(r[o])}function qst(e){let t=e._lightboxCredits,n=e.viewport.clientWidth,i=e.viewport.clientHeight;n!==e._lastViewportWidth&&(n<ige?(t.className="cesium-credit-lightbox cesium-credit-lightbox-mobile",t.style.marginTop="0"):(t.className="cesium-credit-lightbox cesium-credit-lightbox-expanded",t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`),e._lastViewportWidth=n),n>=ige&&i!==e._lastViewportHeight&&(t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`,e._lastViewportHeight=i)}function _c(e,t){let n=`${e} {`;for(let i in t)t.hasOwnProperty(i)&&(n+=`${i}: ${t[i]}; `);return n+=` } +`,n}function Yst(e){let t="";t+=_c(".cesium-credit-lightbox-overlay",{display:"none","z-index":"1",position:"absolute",top:"0",left:"0",width:"100%",height:"100%","background-color":"rgba(80, 80, 80, 0.8)"}),t+=_c(".cesium-credit-lightbox",{"background-color":"#303336",color:ML,position:"relative","min-height":`${Wst}px`,margin:"auto"}),t+=_c(".cesium-credit-lightbox > ul > li a, .cesium-credit-lightbox > ul > li a:visited",{color:ML}),t+=_c(".cesium-credit-lightbox > ul > li a:hover",{color:wq}),t+=_c(".cesium-credit-lightbox.cesium-credit-lightbox-expanded",{border:"1px solid #444","border-radius":"5px","max-width":"370px"}),t+=_c(".cesium-credit-lightbox.cesium-credit-lightbox-mobile",{height:"100%",width:"100%"}),t+=_c(".cesium-credit-lightbox-title",{padding:"20px 20px 0 20px"}),t+=_c(".cesium-credit-lightbox-close",{"font-size":"18pt",cursor:"pointer",position:"absolute",top:"0",right:"6px",color:ML}),t+=_c(".cesium-credit-lightbox-close:hover",{color:wq}),t+=_c(".cesium-credit-lightbox > ul",{margin:"0",padding:"12px 20px 12px 40px","font-size":"13px"}),t+=_c(".cesium-credit-lightbox > ul > li",{"padding-bottom":"6px"}),t+=_c(".cesium-credit-lightbox > ul > li *",{padding:"0",margin:"0"}),t+=_c(".cesium-credit-expand-link",{"padding-left":"5px",cursor:"pointer","text-decoration":"underline",color:ML}),t+=_c(".cesium-credit-expand-link:hover",{color:wq}),t+=_c(".cesium-credit-text",{color:ML}),t+=_c(".cesium-credit-textContainer *, .cesium-credit-logoContainer *",{display:"inline"});function n(o){if(o.shadowRoot)return o.shadowRoot;if(o.getRootNode){let s=o.getRootNode();if(s instanceof ShadowRoot)return s}}let i=y(n(e),document.head),r=document.createElement("style");r.innerHTML=t,i.appendChild(r)}function Lr(e,t,n){let i=this;n=y(n,document.body);let r=document.createElement("div");r.className="cesium-credit-lightbox-overlay",n.appendChild(r);let o=document.createElement("div");o.className="cesium-credit-lightbox",r.appendChild(o);function s(m){o.contains(m.target)||i.hideLightbox()}r.addEventListener("click",s,!1);let a=document.createElement("div");a.className="cesium-credit-lightbox-title",a.textContent="Data provided by:",o.appendChild(a);let c=document.createElement("a");c.onclick=this.hideLightbox.bind(this),c.innerHTML="×",c.className="cesium-credit-lightbox-close",o.appendChild(c);let l=document.createElement("ul");o.appendChild(l);let f=document.createElement("div");f.className="cesium-credit-logoContainer",f.style.display="inline",e.appendChild(f);let d=document.createElement("div");d.className="cesium-credit-textContainer",d.style.display="inline",e.appendChild(d);let p=document.createElement("a");p.className="cesium-credit-expand-link",p.onclick=this.showLightbox.bind(this),p.textContent="Data attribution",e.appendChild(p),Yst(e);let g=wt.clone(Lr.cesiumCredit);this._delimiter=y(t," \u2022 "),this._screenContainer=d,this._cesiumCreditContainer=f,this._lastViewportHeight=void 0,this._lastViewportWidth=void 0,this._lightboxCredits=o,this._creditList=l,this._lightbox=r,this._hideLightbox=s,this._expandLink=p,this._expanded=!1,this._staticCredits=[],this._cesiumCredit=g,this._previousCesiumCredit=void 0,this._currentCesiumCredit=g,this._creditDisplayElementPool=[],this._creditDisplayElementIndex=0,this._currentFrameCredits={screenCredits:new Ct,lightboxCredits:new Ct},this._defaultCredit=void 0,this.viewport=n,this.container=e}function fge(e,t,n,i){i=y(i,1);let r=t.get(n.id);if(u(r))r.count<Number.MAX_VALUE&&(r.count+=i);else{let o=e._creditDisplayElementPool,s=e._creditDisplayElementPoolIndex;s<o.length?(r=o[s],r.credit=n,r.count=i):(r=new cge(n,i),o.push(r)),++e._creditDisplayElementPoolIndex,t.set(n.id,r)}}Lr.prototype.addCredit=function(e){$("CreditDisplay.addCredit","CreditDisplay.addCredit was deprecated in CesiumJS 1.105. It will be removed in CesiumJS 1.107. Use CreditDisplay.addCreditToNextFrame instead."),this.addCreditToNextFrame(e)};Lr.prototype.addCreditToNextFrame=function(e){if(e._isIon){u(this._defaultCredit)||(this._defaultCredit=wt.clone(dge())),this._currentCesiumCredit=this._defaultCredit;return}let t;e.showOnScreen?t=this._currentFrameCredits.screenCredits:t=this._currentFrameCredits.lightboxCredits,fge(this,t,e)};Lr.prototype.addDefaultCredit=function(e){$("CreditDisplay.addDefaultCredit","CreditDisplay.addDefaultCredit was deprecated in CesiumJS 1.105. It will be removed in CesiumJS 1.107. Use CreditDisplay.addStaticCredit instead.");let t=this._staticCredits;lge(t,e)||(e.showOnScreen=!0,t.push(e))};Lr.prototype.addStaticCredit=function(e){let t=this._staticCredits;lge(t,e)||t.push(e)};Lr.prototype.removeStaticCredit=function(e){let t=this._staticCredits,n=t.indexOf(e);n!==-1&&t.splice(n,1)};Lr.prototype.removeDefaultCredit=function(e){$("CreditDisplay.removeDefaultCredit","CreditDisplay.removeDefaultCredit was deprecated in CesiumJS 1.105. It will be removed in CesiumJS 1.107. Use CreditDisplay.addStaticCredit instead."),this.removeStaticCredit(e)};Lr.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0};Lr.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1};Lr.prototype.update=function(){this._expanded&&qst(this)};Lr.prototype.beginFrame=function(){let e=this._currentFrameCredits;this._creditDisplayElementPoolIndex=0;let t=e.screenCredits,n=e.lightboxCredits;t.removeAll(),n.removeAll();let i=this._staticCredits;for(let r=0;r<i.length;++r){let o=i[r],s=o.showOnScreen?t:n;o._isIon&&wt.equals(Lr.cesiumCredit,this._cesiumCredit)||fge(this,s,o,Number.MAX_VALUE)}wt.equals(Lr.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=wt.clone(Lr.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit};Lr.prototype.endFrame=function(){let e=this._currentFrameCredits.screenCredits.values;sge(this._screenContainer,e,this._delimiter,void 0);let t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",sge(this._creditList,t,void 0,"li"),jst(this)};Lr.prototype.destroy=function(){return this._lightbox.removeEventListener("click",this._hideLightbox,!1),this.container.removeChild(this._cesiumCreditContainer),this.container.removeChild(this._screenContainer),this.container.removeChild(this._expandLink),this.viewport.removeChild(this._lightbox),ue(this)};Lr.prototype.isDestroyed=function(){return!1};Lr._cesiumCredit=void 0;Lr._cesiumCreditInitialized=!1;var Dz;function dge(){if(!u(Dz)){let e=$t("Assets/Images/ion-credit.png");e.indexOf("http://")!==0&&e.indexOf("https://")!==0&&e.indexOf("data:")!==0&&(e=new age.default(e).path()),Dz=new wt(`<a href="https://cesium.com/" target="_blank"><img src="${e}" title="Cesium ion"/></a>`,!0)}return Lr._cesiumCreditInitialized||(Lr._cesiumCredit=Dz,Lr._cesiumCreditInitialized=!0),Dz}Object.defineProperties(Lr,{cesiumCredit:{get:function(){return dge(),Lr._cesiumCredit},set:function(e){Lr._cesiumCredit=e,Lr._cesiumCreditInitialized=!0}}});Lr.CreditDisplayElement=cge;var RL=Lr;var Iz=0,Xst=1;function tC(e){let t=e.frustum,n=e.orientation,i=e.origin,r=y(e.vertexFormat,Pe.DEFAULT),o=y(e._drawNearPlane,!0),s,a;t instanceof wi?(s=Iz,a=wi.packedLength):t instanceof en&&(s=Xst,a=en.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Le.clone(n),this._drawNearPlane=o,this._vertexFormat=r,this._workerName="createFrustumGeometry",this.packedLength=2+a+h.packedLength+Le.packedLength+Pe.packedLength}tC.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,r=e._frustum;return t[n++]=i,i===Iz?(wi.pack(r,t,n),n+=wi.packedLength):(en.pack(r,t,n),n+=en.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Le.pack(e._orientation,t,n),n+=Le.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n]=e._drawNearPlane?1:0,t};var Kst=new wi,Jst=new en,Zst=new Le,Qst=new h,$st=new Pe;tC.unpack=function(e,t,n){t=y(t,0);let i=e[t++],r;i===Iz?(r=wi.unpack(e,t,Kst),t+=wi.packedLength):(r=en.unpack(e,t,Jst),t+=en.packedLength);let o=h.unpack(e,t,Qst);t+=h.packedLength;let s=Le.unpack(e,t,Zst);t+=Le.packedLength;let a=Pe.unpack(e,t,$st);t+=Pe.packedLength;let c=e[t]===1;if(!u(n))return new tC({frustum:r,origin:o,orientation:s,vertexFormat:a,_drawNearPlane:c});let l=i===n._frustumType?n._frustum:void 0;return n._frustum=r.clone(l),n._frustumType=i,n._origin=h.clone(o,n._origin),n._orientation=Le.clone(s,n._orientation),n._vertexFormat=Pe.clone(a,n._vertexFormat),n._drawNearPlane=c,n};function AS(e,t,n,i,r,o,s,a){let c=e/3*2;for(let l=0;l<4;++l)u(t)&&(t[e]=o.x,t[e+1]=o.y,t[e+2]=o.z),u(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),u(i)&&(i[e]=a.x,i[e+1]=a.y,i[e+2]=a.z),e+=3;r[c]=0,r[c+1]=0,r[c+2]=1,r[c+3]=0,r[c+4]=1,r[c+5]=1,r[c+6]=0,r[c+7]=1}var eat=new Q,tat=new N,Dq=new N,hge=new h,mge=new h,pge=new h,nat=new h,iat=new h,rat=new h,qy=new Array(3),BL=new Array(4);BL[0]=new se(-1,-1,1,1);BL[1]=new se(1,-1,1,1);BL[2]=new se(1,1,1,1);BL[3]=new se(-1,1,1,1);var _ge=new Array(4);for(let e=0;e<4;++e)_ge[e]=new se;tC._computeNearFarPlanes=function(e,t,n,i,r,o,s,a){let c=Q.fromQuaternion(t,eat),l=y(o,hge),f=y(s,mge),d=y(a,pge);l=Q.getColumn(c,0,l),f=Q.getColumn(c,1,f),d=Q.getColumn(c,2,d),h.normalize(l,l),h.normalize(f,f),h.normalize(d,d),h.negate(l,l);let p=N.computeView(e,d,f,l,tat),g,m,A=i.projectionMatrix;if(n===Iz){let x=N.multiply(A,p,Dq);m=N.inverse(x,Dq)}else g=N.inverseTransformation(p,Dq);u(m)?(qy[0]=i.near,qy[1]=i.far):(qy[0]=0,qy[1]=i.near,qy[2]=i.far);for(let x=0;x<2;++x)for(let C=0;C<4;++C){let T=se.clone(BL[C],_ge[C]);if(u(m)){T=N.multiplyByVector(m,T,T);let E=1/T.w;h.multiplyByScalar(T,E,T),h.subtract(T,e,T),h.normalize(T,T);let S=h.dot(d,T);h.multiplyByScalar(T,qy[x]/S,T),h.add(T,e,T)}else{let E=i.offCenterFrustum;u(E)&&(i=E);let S=qy[x],v=qy[x+1];T.x=(T.x*(i.right-i.left)+i.left+i.right)*.5,T.y=(T.y*(i.top-i.bottom)+i.bottom+i.top)*.5,T.z=(T.z*(S-v)-S-v)*.5,T.w=1,N.multiplyByVector(g,T,T)}r[12*x+C*3]=T.x,r[12*x+C*3+1]=T.y,r[12*x+C*3+2]=T.z}};tC.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,r=e._orientation,o=e._drawNearPlane,s=e._vertexFormat,a=o?6:5,c=new Float64Array(3*4*6);tC._computeNearFarPlanes(i,r,t,n,c);let l=3*4*2;c[l]=c[3*4],c[l+1]=c[3*4+1],c[l+2]=c[3*4+2],c[l+3]=c[0],c[l+4]=c[1],c[l+5]=c[2],c[l+6]=c[3*3],c[l+7]=c[3*3+1],c[l+8]=c[3*3+2],c[l+9]=c[3*7],c[l+10]=c[3*7+1],c[l+11]=c[3*7+2],l+=3*4,c[l]=c[3*5],c[l+1]=c[3*5+1],c[l+2]=c[3*5+2],c[l+3]=c[3],c[l+4]=c[3+1],c[l+5]=c[3+2],c[l+6]=c[0],c[l+7]=c[1],c[l+8]=c[2],c[l+9]=c[3*4],c[l+10]=c[3*4+1],c[l+11]=c[3*4+2],l+=3*4,c[l]=c[3],c[l+1]=c[3+1],c[l+2]=c[3+2],c[l+3]=c[3*5],c[l+4]=c[3*5+1],c[l+5]=c[3*5+2],c[l+6]=c[3*6],c[l+7]=c[3*6+1],c[l+8]=c[3*6+2],c[l+9]=c[3*2],c[l+10]=c[3*2+1],c[l+11]=c[3*2+2],l+=3*4,c[l]=c[3*2],c[l+1]=c[3*2+1],c[l+2]=c[3*2+2],c[l+3]=c[3*6],c[l+4]=c[3*6+1],c[l+5]=c[3*6+2],c[l+6]=c[3*7],c[l+7]=c[3*7+1],c[l+8]=c[3*7+2],c[l+9]=c[3*3],c[l+10]=c[3*3+1],c[l+11]=c[3*3+2],o||(c=c.subarray(3*4));let f=new dn({position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})});if(u(s.normal)||u(s.tangent)||u(s.bitangent)||u(s.st)){let p=u(s.normal)?new Float32Array(12*a):void 0,g=u(s.tangent)?new Float32Array(3*4*a):void 0,m=u(s.bitangent)?new Float32Array(3*4*a):void 0,A=u(s.st)?new Float32Array(2*4*a):void 0,x=hge,C=mge,T=pge,E=h.negate(x,nat),S=h.negate(C,iat),v=h.negate(T,rat);l=0,o&&(AS(l,p,g,m,A,v,x,C),l+=3*4),AS(l,p,g,m,A,T,E,C),l+=3*4,AS(l,p,g,m,A,E,v,C),l+=3*4,AS(l,p,g,m,A,S,v,E),l+=3*4,AS(l,p,g,m,A,x,T,C),l+=3*4,AS(l,p,g,m,A,C,T,E),u(p)&&(f.normal=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),u(g)&&(f.tangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),u(m)&&(f.bitangent=new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),u(A)&&(f.st=new De({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:A}))}let d=new Uint16Array(6*a);for(let p=0;p<a;++p){let g=p*6,m=p*4;d[g]=m,d[g+1]=m+1,d[g+2]=m+2,d[g+3]=m,d[g+4]=m+2,d[g+5]=m+3}return new ut({attributes:f,indices:d,primitiveType:Be.TRIANGLES,boundingSphere:ae.fromVertices(c)})};var nC=tC;var Iq=0,oat=1;function LL(e){let t=e.frustum,n=e.orientation,i=e.origin,r=y(e._drawNearPlane,!0),o,s;t instanceof wi?(o=Iq,s=wi.packedLength):t instanceof en&&(o=oat,s=en.packedLength),this._frustumType=o,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Le.clone(n),this._drawNearPlane=r,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+s+h.packedLength+Le.packedLength}LL.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,r=e._frustum;return t[n++]=i,i===Iq?(wi.pack(r,t,n),n+=wi.packedLength):(en.pack(r,t,n),n+=en.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Le.pack(e._orientation,t,n),n+=Le.packedLength,t[n]=e._drawNearPlane?1:0,t};var sat=new wi,aat=new en,cat=new Le,lat=new h;LL.unpack=function(e,t,n){t=y(t,0);let i=e[t++],r;i===Iq?(r=wi.unpack(e,t,sat),t+=wi.packedLength):(r=en.unpack(e,t,aat),t+=en.packedLength);let o=h.unpack(e,t,lat);t+=h.packedLength;let s=Le.unpack(e,t,cat);t+=Le.packedLength;let a=e[t]===1;if(!u(n))return new LL({frustum:r,origin:o,orientation:s,_drawNearPlane:a});let c=i===n._frustumType?n._frustum:void 0;return n._frustum=r.clone(c),n._frustumType=i,n._origin=h.clone(o,n._origin),n._orientation=Le.clone(s,n._orientation),n._drawNearPlane=a,n};LL.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,r=e._orientation,o=e._drawNearPlane,s=new Float64Array(3*4*2);nC._computeNearFarPlanes(i,r,t,n,s);let a=new dn({position:new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),c,l,f=o?2:1,d=new Uint16Array(8*(f+1)),p=o?0:1;for(;p<2;++p)c=o?p*8:0,l=p*4,d[c]=l,d[c+1]=l+1,d[c+2]=l+1,d[c+3]=l+2,d[c+4]=l+2,d[c+5]=l+3,d[c+6]=l+3,d[c+7]=l;for(p=0;p<2;++p)c=(f+p)*8,l=p*4,d[c]=l,d[c+1]=l+4,d[c+2]=l+1,d[c+3]=l+5,d[c+4]=l+2,d[c+5]=l+6,d[c+6]=l+3,d[c+7]=l+7;return new ut({attributes:a,indices:d,primitiveType:Be.LINES,boundingSphere:ae.fromVertices(s)})};var NL=LL;function Pz(e){e=y(e,y.EMPTY_OBJECT),this._camera=e.camera,this._frustumSplits=e.frustumSplits,this._color=y(e.color,z.CYAN),this._updateOnChange=y(e.updateOnChange,!0),this.show=y(e.show,!0),this.id=e.id,this._id=void 0,this._outlinePrimitives=[],this._planesPrimitives=[]}var uat=new h,fat=new Q,dat=new Le,hat=new wi,mat=new $c,pat=new en,_at=new So,gat=new z,yat=[1,1e5];Pz.prototype.update=function(e){if(!this.show)return;let t=this._planesPrimitives,n=this._outlinePrimitives,i,r;if(this._updateOnChange){for(r=t.length,i=0;i<r;++i)n[i]=n[i]&&n[i].destroy(),t[i]=t[i]&&t[i].destroy();t.length=0,n.length=0}if(t.length===0){let o=this._camera,s=o.frustum,a;s instanceof wi?a=hat:s instanceof $c?a=mat:s instanceof en?a=pat:a=_at,a=s.clone(a);let c,l=this._frustumSplits;!u(l)||l.length<=1?(l=yat,l[0]=this._camera.frustum.near,l[1]=this._camera.frustum.far,c=1):c=l.length-1;let f=o.positionWC,d=o.directionWC,p=o.upWC,g=o.rightWC;g=h.negate(g,uat);let m=fat;Q.setColumn(m,0,g,m),Q.setColumn(m,1,p,m),Q.setColumn(m,2,d,m);let A=Le.fromRotationMatrix(m,dat);for(t.length=n.length=c,i=0;i<c;++i)a.near=l[i],a.far=l[i+1],t[i]=new bn({geometryInstances:new xt({geometry:new nC({origin:f,orientation:A,frustum:a,_drawNearPlane:i===0}),attributes:{color:kt.fromColor(z.fromAlpha(this._color,.1,gat))},id:this.id,pickPrimitive:this}),appearance:new rn({translucent:!0,flat:!0}),asynchronous:!1}),n[i]=new bn({geometryInstances:new xt({geometry:new NL({origin:f,orientation:A,frustum:a,_drawNearPlane:i===0}),attributes:{color:kt.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new rn({translucent:!1,flat:!0}),asynchronous:!1})}for(r=t.length,i=0;i<r;++i)n[i].update(e),t[i].update(e)};Pz.prototype.isDestroyed=function(){return!1};Pz.prototype.destroy=function(){let e=this._planesPrimitives.length;for(let t=0;t<e;++t)this._outlinePrimitives[t]=this._outlinePrimitives[t]&&this._outlinePrimitives[t].destroy(),this._planesPrimitives[t]=this._planesPrimitives[t]&&this._planesPrimitives[t].destroy();return ue(this)};var Om=Pz;var FL=`in vec4 positionEC; + +void main() +{ + vec3 position; + vec3 direction; + if (czm_orthographicIn3D == 1.0) + { + vec2 uv = (gl_FragCoord.xy - czm_viewport.xy) / czm_viewport.zw; + vec2 minPlane = vec2(czm_frustumPlanes.z, czm_frustumPlanes.y); // left, bottom + vec2 maxPlane = vec2(czm_frustumPlanes.w, czm_frustumPlanes.x); // right, top + position = vec3(mix(minPlane, maxPlane, uv), 0.0); + direction = vec3(0.0, 0.0, -1.0); + } + else + { + position = vec3(0.0); + direction = normalize(positionEC.xyz); + } + + czm_ray ray = czm_ray(position, direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + if (!czm_isEmpty(intersection)) + { + out_FragColor = vec4(1.0, 1.0, 0.0, 1.0); + } + else + { + discard; + } + + czm_writeLogDepth(); +} +`;var UL=`in vec4 position; + +out vec4 positionEC; + +void main() +{ + positionEC = czm_modelView * position; + gl_Position = czm_projection * positionEC; + + czm_vertexLogDepth(); +} +`;function kL(e){this._rs=void 0,this._sp=void 0,this._va=void 0,this._command=void 0,this._mode=void 0,this._useLogDepth=!1,this._ellipsoidOffset=y(e,0)}var VL=Ht.supportsTypedArrays()?new Float32Array(12):[],gge=new h,yge=new h,Pq=new h,Age=new h,Oz=new h;function Aat(e,t){let n=e.radii,i=t.camera,r,o,s;if(i.frustum instanceof en)r=h.ZERO,o=i.rightWC,s=i.upWC;else{let d=i.positionWC,p=h.multiplyComponents(e.oneOverRadii,d,gge),g=h.normalize(p,yge),m=h.normalize(h.cross(h.UNIT_Z,p,Pq),Pq),A=h.normalize(h.cross(g,m,Age),Age),x=h.magnitude(p),C=Math.sqrt(x*x-1);r=h.multiplyByScalar(g,1/x,gge);let T=C/x;o=h.multiplyByScalar(m,T,yge),s=h.multiplyByScalar(A,T,Pq)}let a=h.add(r,s,Oz);h.subtract(a,o,a),h.multiplyComponents(n,a,a),h.pack(a,VL,0);let c=h.subtract(r,s,Oz);h.subtract(c,o,c),h.multiplyComponents(n,c,c),h.pack(c,VL,3);let l=h.add(r,s,Oz);h.add(l,o,l),h.multiplyComponents(n,l,l),h.pack(l,VL,6);let f=h.subtract(r,s,Oz);return h.add(f,o,f),h.multiplyComponents(n,f,f),h.pack(f,VL,9),VL}kL.prototype.update=function(e){if(this._mode=e.mode,e.mode!==ne.SCENE3D)return;let t=e.context,n=e.mapProjection.ellipsoid.radii,i=new re(n.x+this._ellipsoidOffset,n.y+this._ellipsoidOffset,n.z+this._ellipsoidOffset),r=e.useLogDepth;if(u(this._command)||(this._rs=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new nt({renderState:this._rs,boundingVolume:new ae(h.ZERO,i.maximumRadius),pass:be.OPAQUE,owner:this})),!u(this._sp)||this._useLogDepth!==r){this._useLogDepth=r;let s=new ke({sources:[UL]}),a=new ke({sources:[FL]});r&&(a.defines.push("LOG_DEPTH"),s.defines.push("LOG_DEPTH")),this._sp=Xt.replaceCache({shaderProgram:this._sp,context:t,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}let o=Aat(i,e);if(u(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(o);else{let s=new ut({attributes:{position:new De({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:o})},indices:[0,1,2,2,1,3],primitiveType:Be.TRIANGLES});this._va=oi.fromGeometry({context:t,geometry:s,attributeLocations:{position:0},bufferUsage:Fe.DYNAMIC_DRAW}),this._command.vertexArray=this._va}};kL.prototype.execute=function(e,t){this._mode===ne.SCENE3D&&this._command.execute(e,t)};kL.prototype.isDestroyed=function(){return!1};kL.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()};var zL=kL;function HL(){}var xat=/\bgl_FragDepth\b/,Cat=/\bdiscard\b/;function Tat(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"depthOnly");if(!u(n)){let i=t._attributeLocations,r=t.fragmentShaderSource,o,s=!1,a=r.sources,c=a.length;for(o=0;o<c;++o)if(xat.test(a[o])||Cat.test(a[o])){s=!0;break}let l=!1,f=r.defines;for(c=f.length,o=0;o<c;++o)if(f[o]==="LOG_DEPTH"){l=!0;break}let d;!s&&!l?(d=`void main() +{ + out_FragColor = vec4(1.0); +} +`,r=new ke({sources:[d]})):!s&&l&&(d=`void main() +{ + out_FragColor = vec4(1.0); + czm_writeLogDepth(); +} +`,r=new ke({defines:["LOG_DEPTH"],sources:[d]})),n=e.shaderCache.createDerivedShaderProgram(t,"depthOnly",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:r,attributeLocations:i})}return n}function Eat(e,t){let n=e._depthOnlyRenderStateCache,i=n[t.id];if(!u(i)){let r=Ve.getState(t);r.depthMask=!0,r.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i=Ve.fromCache(r),n[t.id]=i}return i}HL.createDepthOnlyDerivedCommand=function(e,t,n,i){u(i)||(i={});let r,o;return u(i.depthOnlyCommand)&&(r=i.depthOnlyCommand.shaderProgram,o=i.depthOnlyCommand.renderState),i.depthOnlyCommand=nt.shallowClone(t,i.depthOnlyCommand),!u(r)||i.shaderProgramId!==t.shaderProgram.id?(i.depthOnlyCommand.shaderProgram=Tat(n,t.shaderProgram),i.depthOnlyCommand.renderState=Eat(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.depthOnlyCommand.shaderProgram=r,i.depthOnlyCommand.renderState=o),i};var bat=/\s+czm_writeLogDepth\(/,Sat=/\s+czm_vertexLogDepth\(/;function vat(e,t){if(t.fragmentShaderSource.defines.indexOf("LOG_DEPTH_READ_ONLY")>=0)return t;let i=e.shaderCache.getDerivedShaderProgram(t,"logDepth");if(!u(i)){let r=t._attributeLocations,o=t.vertexShaderSource.clone(),s=t.fragmentShaderSource.clone();o.defines=u(o.defines)?o.defines.slice(0):[],o.defines.push("LOG_DEPTH"),s.defines=u(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");let a,c,l=!1,f=o.sources,d=f.length;for(a=0;a<d;++a)if(Sat.test(f[a])){l=!0;break}if(!l){for(a=0;a<d;++a)f[a]=ke.replaceMain(f[a],"czm_log_depth_main");c=` + +void main() +{ + czm_log_depth_main(); + czm_vertexLogDepth(); +} +`,f.push(c)}for(f=s.sources,d=f.length,l=!1,a=0;a<d;++a)bat.test(f[a])&&(l=!0);s.defines.indexOf("LOG_DEPTH_WRITE")!==-1&&(l=!0);let p="";if(!l){for(a=0;a<d;a++)f[a]=ke.replaceMain(f[a],"czm_log_depth_main");p+=` +void main() +{ + czm_log_depth_main(); + czm_writeLogDepth(); +} +`}f.push(p),i=e.shaderCache.createDerivedShaderProgram(t,"logDepth",{vertexShaderSource:o,fragmentShaderSource:s,attributeLocations:r})}return i}HL.createLogDepthCommand=function(e,t,n){u(n)||(n={});let i;return u(n.command)&&(i=n.command.shaderProgram),n.command=nt.shallowClone(e,n.command),!u(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=vat(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};function wat(e,t,n){let i=e.shaderCache.getDerivedShaderProgram(t,"pick");if(!u(i)){let r=t._attributeLocations,o=t.fragmentShaderSource,s=o.sources,a=s.length,c=`void main() +{ + czm_non_pick_main(); + if (out_FragColor.a == 0.0) { + discard; + } + out_FragColor = ${n}; +} +`,l=new Array(a+1);for(let f=0;f<a;++f)l[f]=ke.replaceMain(s[f],"czm_non_pick_main");l[a]=c,o=new ke({sources:l,defines:o.defines}),i=e.shaderCache.createDerivedShaderProgram(t,"pick",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:r})}return i}function Dat(e,t){let n=e.picking.pickRenderStateCache,i=n[t.id];if(!u(i)){let r=Ve.getState(t);r.blending.enabled=!1,r.depthMask=!0,i=Ve.fromCache(r),n[t.id]=i}return i}HL.createPickDerivedCommand=function(e,t,n,i){u(i)||(i={});let r,o;return u(i.pickCommand)&&(r=i.pickCommand.shaderProgram,o=i.pickCommand.renderState),i.pickCommand=nt.shallowClone(t,i.pickCommand),!u(r)||i.shaderProgramId!==t.shaderProgram.id?(i.pickCommand.shaderProgram=wat(n,t.shaderProgram,t.pickId),i.pickCommand.renderState=Dat(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.pickCommand.shaderProgram=r,i.pickCommand.renderState=o),i};function Iat(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"HDR");if(!u(n)){let i=t._attributeLocations,r=t.vertexShaderSource.clone(),o=t.fragmentShaderSource.clone();r.defines=u(r.defines)?r.defines.slice(0):[],r.defines.push("HDR"),o.defines=u(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),n=e.shaderCache.createDerivedShaderProgram(t,"HDR",{vertexShaderSource:r,fragmentShaderSource:o,attributeLocations:i})}return n}HL.createHdrCommand=function(e,t,n){u(n)||(n={});let i;return u(n.command)&&(i=n.command.shaderProgram),n.command=nt.shallowClone(e,n.command),!u(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=Iat(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};var V_=HL;function Mz(e){this._scene=e,this._lastAlpha=void 0,this._lastBeta=void 0,this._lastGamma=void 0,this._alpha=void 0,this._beta=void 0,this._gamma=void 0;let t=this;function n(i){let r=i.alpha;if(!u(r)){t._alpha=void 0,t._beta=void 0,t._gamma=void 0;return}t._alpha=P.toRadians(r),t._beta=P.toRadians(i.beta),t._gamma=P.toRadians(i.gamma)}window.addEventListener("deviceorientation",n,!1),this._removeListener=function(){window.removeEventListener("deviceorientation",n,!1)}}var Pat=new Le,xge=new Le,Oat=new Q;function Mat(e,t,n,i){let r=e.direction,o=e.right,s=e.up,a=Le.fromAxisAngle(r,n,xge),c=Le.fromAxisAngle(o,i,Pat),l=Le.multiply(c,a,c),f=Le.fromAxisAngle(s,t,xge);Le.multiply(f,l,l);let d=Q.fromQuaternion(l,Oat);Q.multiplyByVector(d,o,o),Q.multiplyByVector(d,s,s),Q.multiplyByVector(d,r,r)}Mz.prototype.update=function(){if(!u(this._alpha))return;u(this._lastAlpha)||(this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma);let e=this._lastAlpha-this._alpha,t=this._lastBeta-this._beta,n=this._lastGamma-this._gamma;Mat(this._scene.camera,-e,t,n),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma};Mz.prototype.isDestroyed=function(){return!1};Mz.prototype.destroy=function(){return this._removeListener(),ue(this)};var GL=Mz;function Cge(){this.enabled=!0,this.renderable=!0,this.density=2e-4,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}var Rz=[359.393,800.749,1275.6501,2151.1192,3141.7763,4777.5198,6281.2493,12364.307,15900.765,49889.0549,78026.8259,99260.7344,120036.3873,151011.0158,156091.1953,203849.3112,274866.9803,319916.3149,493552.0528,628733.5874],Mm=[2e-5,2e-4,1e-4,7e-5,5e-5,4e-5,3e-5,19e-6,1e-5,85e-7,62e-7,58e-7,53e-7,52e-7,51e-7,42e-7,4e-6,34e-7,26e-7,22e-7];for(let e=0;e<Mm.length;++e)Mm[e]*=1e6;var Tge=Mm[1],Oq=Mm[Mm.length-1];for(let e=0;e<Mm.length;++e)Mm[e]=(Mm[e]-Oq)/(Tge-Oq);var sa=0;function Rat(e){let t=Rz,n=t.length;if(e<t[0])return sa=0,sa;if(e>t[n-1])return sa=n-2,sa;if(e>=t[sa]){if(sa+1<n&&e<t[sa+1])return sa;if(sa+2<n&&e<t[sa+2])return++sa,sa}else if(sa-1>=0&&e>=t[sa-1])return--sa,sa;let i;for(i=0;i<n-2&&!(e>=t[i]&&e<t[i+1]);++i);return sa=i,sa}var Bat=new h;Cge.prototype.update=function(e){if(!(e.fog.enabled=this.enabled))return;e.fog.renderable=this.renderable;let n=e.camera,i=n.positionCartographic;if(!u(i)||i.height>8e5||e.mode!==ne.SCENE3D){e.fog.enabled=!1;return}let r=i.height,o=Rat(r),s=P.clamp((r-Rz[o])/(Rz[o+1]-Rz[o]),0,1),a=P.lerp(Mm[o],Mm[o+1],s),c=this.density*1e6,l=c/Tge*Oq;a=a*(c-l)*1e-6;let f=h.normalize(n.positionWC,Bat),d=Math.abs(h.dot(n.directionWC,f));a*=1-d,e.fog.density=a,e.fog.sse=this.screenSpaceErrorFactor,e.fog.minimumBrightness=this.minimumBrightness};var WL=Cge;function Lat(e,t,n){this.context=e,this.commandList=[],this.shadowMaps=[],this.brdfLutGenerator=void 0,this.environmentMap=void 0,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this.specularEnvironmentMapsMaximumLOD=void 0,this.mode=ne.SCENE3D,this.morphTime=ne.getMorphTime(ne.SCENE3D),this.frameNumber=0,this.newFrame=!1,this.time=void 0,this.jobScheduler=n,this.mapProjection=void 0,this.camera=void 0,this.cameraUnderground=!1,this.globeTranslucencyState=void 0,this.cullingVolume=void 0,this.occluder=void 0,this.maximumScreenSpaceError=void 0,this.pixelRatio=1,this.passes={render:!1,pick:!1,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=t,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,density:void 0,sse:void 0,minimumBrightness:void 0},this.terrainExaggeration=1,this.terrainExaggerationRelativeHeight=0,this.shadowState={shadowsEnabled:!0,shadowMaps:[],lightShadowMaps:[],nearPlane:1,farPlane:5e3,closestObjectSize:1e3,lastDirtyTime:0,outOfView:!0},this.splitPosition=0,this.frustumSplits=[],this.backgroundColor=void 0,this.light=void 0,this.minimumDisableDepthTestDistance=void 0,this.invertClassification=!1,this.invertClassificationColor=void 0,this.useLogDepth=!1,this.tilesetPassState=void 0,this.minimumTerrainHeight=0}var jL=Lat;var aa={OPAQUE_FRONT_FACE:0,OPAQUE_BACK_FACE:1,DEPTH_ONLY_FRONT_FACE:2,DEPTH_ONLY_BACK_FACE:3,DEPTH_ONLY_FRONT_AND_BACK_FACE:4,TRANSLUCENT_FRONT_FACE:5,TRANSLUCENT_BACK_FACE:6,TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:7,TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:8,PICK_FRONT_FACE:9,PICK_BACK_FACE:10,DERIVED_COMMANDS_MAXIMUM_LENGTH:11},iC=aa.DERIVED_COMMANDS_MAXIMUM_LENGTH,Mge=["opaqueFrontFaceCommand","opaqueBackFaceCommand","depthOnlyFrontFaceCommand","depthOnlyBackFaceCommand","depthOnlyFrontAndBackFaceCommand","translucentFrontFaceCommand","translucentBackFaceCommand","translucentFrontFaceManualDepthTestCommand","translucentBackFaceManualDepthTestCommand","pickFrontFaceCommand","pickBackFaceCommand"];function rC(){this._frontFaceAlphaByDistance=new Bt(0,1,0,1),this._backFaceAlphaByDistance=new Bt(0,1,0,1),this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._requiresManualDepthTest=!1,this._sunVisibleThroughGlobe=!1,this._environmentVisible=!1,this._useDepthPlane=!1,this._numberOfTextureUniforms=0,this._globeTranslucencyFramebuffer=void 0,this._rectangle=le.clone(le.MAX_VALUE),this._derivedCommandKey=0,this._derivedCommandsDirty=!1,this._derivedCommandPacks=void 0,this._derivedCommandTypes=new Array(iC),this._derivedBlendCommandTypes=new Array(iC),this._derivedPickCommandTypes=new Array(iC),this._derivedCommandTypesToUpdate=new Array(iC),this._derivedCommandsLength=0,this._derivedBlendCommandsLength=0,this._derivedPickCommandsLength=0,this._derivedCommandsToUpdateLength=0}Object.defineProperties(rC.prototype,{frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance}},translucent:{get:function(){return this._frontFaceTranslucent}},sunVisibleThroughGlobe:{get:function(){return this._sunVisibleThroughGlobe}},environmentVisible:{get:function(){return this._environmentVisible}},useDepthPlane:{get:function(){return this._useDepthPlane}},numberOfTextureUniforms:{get:function(){return this._numberOfTextureUniforms}},rectangle:{get:function(){return this._rectangle}}});rC.prototype.update=function(e){let t=e.globe;if(!u(t)||!t.show){this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._sunVisibleThroughGlobe=!0,this._environmentVisible=!0,this._useDepthPlane=!1;return}this._frontFaceAlphaByDistance=Ege(t.translucency.enabled,t.translucency.frontFaceAlpha,t.translucency.frontFaceAlphaByDistance,this._frontFaceAlphaByDistance),this._backFaceAlphaByDistance=Ege(t.translucency.enabled,t.translucency.backFaceAlpha,t.translucency.backFaceAlphaByDistance,this._backFaceAlphaByDistance),this._frontFaceTranslucent=bge(t.translucency.enabled,this._frontFaceAlphaByDistance,t),this._backFaceTranslucent=bge(t.translucency.enabled,this._backFaceAlphaByDistance,t),this._requiresManualDepthTest=Vat(this,e,t),this._sunVisibleThroughGlobe=Nat(this,e),this._environmentVisible=Fat(this,e),this._useDepthPlane=Uat(this,e),this._numberOfTextureUniforms=kat(this),this._rectangle=le.clone(t.translucency.rectangle,this._rectangle),zat(this,e)};function Ege(e,t,n,i){return e?u(n)?(Bt.clone(n,i),i.nearValue*=t,i.farValue*=t,i):(i.nearValue=t,i.farValue=t,i):(i.nearValue=1,i.farValue=1,i)}function bge(e,t,n){return e&&(n.baseColor.alpha<1||t.nearValue<1||t.farValue<1)}function Nat(e,t){let n=e._frontFaceTranslucent,i=e._backFaceTranslucent;return n&&(t.cameraUnderground||i)}function Fat(e,t){return!t.cameraUnderground||e._frontFaceTranslucent}function Uat(e,t){return!t.cameraUnderground&&!e._frontFaceTranslucent}function Vat(e,t,n){return e._frontFaceTranslucent&&!e._backFaceTranslucent&&!n.depthTestAgainstTerrain&&t.mode!==ne.SCENE2D&&t.context.depthTexture}function kat(e){let t=0;return e._frontFaceTranslucent&&++t,e._requiresManualDepthTest&&++t,t}function zat(e,t){e._derivedCommandsLength=Mq(e,t,!1,!1,e._derivedCommandTypes),e._derivedBlendCommandsLength=Mq(e,t,!0,!1,e._derivedBlendCommandTypes),e._derivedPickCommandsLength=Mq(e,t,!1,!0,e._derivedPickCommandTypes);let n,i=0;for(n=0;n<e._derivedCommandsLength;++n)i|=1<<e._derivedCommandTypes[n];for(n=0;n<e._derivedBlendCommandsLength;++n)i|=1<<e._derivedBlendCommandTypes[n];for(n=0;n<e._derivedPickCommandsLength;++n)i|=1<<e._derivedPickCommandTypes[n];let r=0;for(n=0;n<iC;++n)(i&1<<n)>0&&(e._derivedCommandTypesToUpdate[r++]=n);e._derivedCommandsToUpdateLength=r;let o=i!==e._derivedCommandKey;e._derivedCommandKey=i,e._derivedCommandsDirty=o,!u(e._derivedCommandPacks)&&e._frontFaceTranslucent&&(e._derivedCommandPacks=nct())}function Mq(e,t,n,i,r){let o=0,s=e._frontFaceTranslucent,a=e._backFaceTranslucent;if(!s)return o;let c=t.cameraUnderground,l=e._requiresManualDepthTest,f=i?aa.PICK_FRONT_FACE:l?aa.TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:aa.TRANSLUCENT_FRONT_FACE,d=i?aa.PICK_BACK_FACE:l?aa.TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:aa.TRANSLUCENT_BACK_FACE;return t.mode===ne.SCENE2D?(r[o++]=aa.DEPTH_ONLY_FRONT_FACE,r[o++]=f,o):(a?(n||(r[o++]=aa.DEPTH_ONLY_FRONT_AND_BACK_FACE),c?(r[o++]=f,r[o++]=d):(r[o++]=d,r[o++]=f)):c?(n||(r[o++]=aa.DEPTH_ONLY_BACK_FACE),r[o++]=aa.OPAQUE_FRONT_FACE,r[o++]=d):(n||(r[o++]=aa.DEPTH_ONLY_FRONT_FACE),r[o++]=aa.OPAQUE_BACK_FACE,r[o++]=f),o)}function Wf(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function Sge(e,t){return e.indexOf(t)>-1}function Hat(e,t){Wf(e.defines,"TRANSLUCENT"),Wf(t.defines,"TRANSLUCENT")}function Gat(e,t){Wf(e.defines,"GROUND_ATMOSPHERE"),Wf(t.defines,"GROUND_ATMOSPHERE"),Wf(e.defines,"FOG"),Wf(t.defines,"FOG"),Wf(e.defines,"TRANSLUCENT"),Wf(t.defines,"TRANSLUCENT")}function Rq(e,t){if(Sge(t.defines,"TILE_LIMIT_RECTANGLE")||Sge(t.defines,"ENABLE_CLIPPING_PLANES"))return;let n=`void main() +{ + out_FragColor = vec4(1.0); +} +`;t.sources=[n]}function Bq(e,t){let n=t.sources,i=n.length;for(let o=0;o<i;++o)n[o]=ke.replaceMain(n[o],"czm_globe_translucency_main");let r=` + +uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; +#ifdef MANUAL_DEPTH_TEST + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + if (logDepthOrDepth != 0.0) + { + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + float depthEC = eyeCoordinate.z / eyeCoordinate.w; + if (v_positionEC.z < depthEC) + { + discard; + } + } +#endif + czm_globe_translucency_main(); + vec4 classificationColor = texture(u_classificationTexture, st); + if (classificationColor.a > 0.0) + { + // Reverse premultiplication process to get the correct composited result of the classification primitives + classificationColor.rgb /= classificationColor.a; + } + out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a); +} +`;n.push(r)}function Rge(e,t){Bq(e,t),Wf(e.defines,"GROUND_ATMOSPHERE"),Wf(t.defines,"GROUND_ATMOSPHERE"),Wf(e.defines,"FOG"),Wf(t.defines,"FOG")}function Wat(e,t){Bq(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function jat(e,t){Rge(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function vge(e,t){let n=`uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; + vec4 pickColor = texture(u_classificationTexture, st); + if (pickColor == vec4(0.0)) + { + discard; + } + out_FragColor = pickColor; +} +`;t.sources=[n]}function qat(e,t,n,i,r,o){if(!u(r))return t;if(!i&&u(n))return n;let s=e.shaderCache.getDerivedShaderProgram(t,o);if(!u(s)){let a=t._attributeLocations,c=t.vertexShaderSource.clone(),l=t.fragmentShaderSource.clone();c.defines=u(c.defines)?c.defines.slice(0):[],l.defines=u(l.defines)?l.defines.slice(0):[],r(c,l),s=e.shaderCache.createDerivedShaderProgram(t,o,{vertexShaderSource:c,fragmentShaderSource:l,attributeLocations:a})}return s}function Yat(e){e.cull.face=gi.BACK,e.cull.enabled=!0}function Xat(e){e.cull.face=gi.FRONT,e.cull.enabled=!0}function Kat(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Jat(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Zat(e){e.cull.enabled=!1,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function wge(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function Dge(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function Qat(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.blending.enabled=!1}function $at(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.blending.enabled=!1}function ect(e,t,n,i,r){if(!u(i))return e;if(!n&&u(t))return t;let o=r[e.id];if(!u(o)){let s=Ve.getState(e);i(s),o=Ve.fromCache(s),r[e.id]=o}return o}function xS(e){return{u_classificationTexture:function(){return e._globeTranslucencyFramebuffer.classificationTexture}}}function tct(e,t,n,i,r){return u(r)?!i&&u(n)?n:_t(t,r(e),!1):t}function yh(e){this.pass=e.pass,this.pickOnly=e.pickOnly,this.getShaderProgramFunction=e.getShaderProgramFunction,this.getRenderStateFunction=e.getRenderStateFunction,this.getUniformMapFunction=e.getUniformMapFunction,this.renderStateCache={}}function nct(){return[new yh({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:Hat,getRenderStateFunction:Yat,getUniformMapFunction:void 0}),new yh({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:Gat,getRenderStateFunction:Xat,getUniformMapFunction:void 0}),new yh({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:Rq,getRenderStateFunction:Kat,getUniformMapFunction:void 0}),new yh({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:Rq,getRenderStateFunction:Jat,getUniformMapFunction:void 0}),new yh({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:Rq,getRenderStateFunction:Zat,getUniformMapFunction:void 0}),new yh({pass:be.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Bq,getRenderStateFunction:wge,getUniformMapFunction:xS}),new yh({pass:be.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Rge,getRenderStateFunction:Dge,getUniformMapFunction:xS}),new yh({pass:be.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Wat,getRenderStateFunction:wge,getUniformMapFunction:xS}),new yh({pass:be.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:jat,getRenderStateFunction:Dge,getUniformMapFunction:xS}),new yh({pass:be.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:vge,getRenderStateFunction:Qat,getUniformMapFunction:xS}),new yh({pass:be.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:vge,getRenderStateFunction:$at,getUniformMapFunction:xS})]}var Ige=new Array(iC),Pge=new Array(iC);rC.prototype.updateDerivedCommands=function(e,t){let n=this._derivedCommandTypesToUpdate,i=this._derivedCommandsToUpdateLength;if(i!==0){for(let r=0;r<i;++r)Pge[r]=this._derivedCommandPacks[n[r]],Ige[r]=Mge[n[r]];ict(this,e,i,n,Ige,Pge,t)}};function ict(e,t,n,i,r,o,s){let a=t.derivedCommands.globeTranslucency,c=e._derivedCommandsDirty;if(t.dirty||!u(a)||c){t.dirty=!1,u(a)||(a={},t.derivedCommands.globeTranslucency=a);let l=s.frameNumber,f=y(a.uniformMapDirtyFrame,0),d=y(a.shaderProgramDirtyFrame,0),p=y(a.renderStateDirtyFrame,0),g=a.uniformMap!==t.uniformMap,m=a.shaderProgramId!==t.shaderProgram.id,A=a.renderStateId!==t.renderState.id;g&&(a.uniformMapDirtyFrame=l),m&&(a.shaderProgramDirtyFrame=l),A&&(a.renderStateDirtyFrame=l),a.uniformMap=t.uniformMap,a.shaderProgramId=t.shaderProgram.id,a.renderStateId=t.renderState.id;for(let x=0;x<n;++x){let C=o[x],T=i[x],E=r[x],S=a[E],v,D,M;u(S)?(v=S.uniformMap,D=S.shaderProgram,M=S.renderState):(v=void 0,D=void 0,M=void 0),S=nt.shallowClone(t,S),a[E]=S;let O=y(S.derivedCommands.uniformMapDirtyFrame,0),B=y(S.derivedCommands.shaderProgramDirtyFrame,0),L=y(S.derivedCommands.renderStateDirtyFrame,0),_=g||O<f,b=m||B<d,w=A||L<p;_&&(S.derivedCommands.uniformMapDirtyFrame=l),b&&(S.derivedCommands.shaderProgramDirtyFrame=l),w&&(S.derivedCommands.renderStateDirtyFrame=l),S.derivedCommands.type=T,S.pass=C.pass,S.pickOnly=C.pickOnly,S.uniformMap=tct(e,t.uniformMap,v,_,C.getUniformMapFunction),S.shaderProgram=qat(s.context,t.shaderProgram,D,b,C.getShaderProgramFunction,E),S.renderState=ect(t.renderState,M,w,C.getRenderStateFunction,C.renderStateCache)}}}rC.prototype.pushDerivedCommands=function(e,t,n){let i=n.passes.pick;if(i&&t)return;let r=this._derivedCommandTypes,o=this._derivedCommandsLength;if(i?(r=this._derivedPickCommandTypes,o=this._derivedPickCommandsLength):t&&(r=this._derivedBlendCommandTypes,o=this._derivedBlendCommandsLength),o===0){n.commandList.push(e);return}let s=e.derivedCommands.globeTranslucency;for(let a=0;a<o;++a){let c=Mge[r[a]];n.commandList.push(s[c])}};function Bge(e,t,n,i,r,o,s){for(let a=0;a<t;++a){let c=e[a],l=c.derivedCommands.type;(!u(s)||s.indexOf(l)>-1)&&n(c,i,r,o)}}function Oge(e,t,n,i,r,o){for(let s=0;s<t;++s)n(e[s],i,r,o)}var rct=[aa.OPAQUE_FRONT_FACE,aa.OPAQUE_BACK_FACE],oct=[aa.DEPTH_ONLY_FRONT_FACE,aa.DEPTH_ONLY_BACK_FACE,aa.DEPTH_ONLY_FRONT_AND_BACK_FACE];rC.prototype.executeGlobeCommands=function(e,t,n,i,r){let o=i.context,s=e.commands[be.GLOBE],a=e.indices[be.GLOBE];a!==0&&(this._globeTranslucencyFramebuffer=n,n.clearClassification(o,r),Bge(s,a,t,i,o,r,rct))};rC.prototype.executeGlobeClassificationCommands=function(e,t,n,i,r){let o=i.context,s=e.commands[be.GLOBE],a=e.indices[be.GLOBE],c=e.commands[be.TERRAIN_CLASSIFICATION],l=e.indices[be.TERRAIN_CLASSIFICATION];if(a===0||l===0)return;let f=this._frontFaceTranslucent,d=this._backFaceTranslucent;if((!f||!d)&&Oge(c,l,t,i,o,r),!f&&!d)return;this._globeTranslucencyFramebuffer=n;let p=o.uniformState.globeDepthTexture,g=r.framebuffer;if(r.framebuffer=n.classificationFramebuffer,Bge(s,a,t,i,o,r,oct),o.depthTexture){let m=n.packDepth(o,r);o.uniformState.globeDepthTexture=m}Oge(c,l,t,i,o,r),o.uniformState.globeDepthTexture=p,r.framebuffer=g};var qL=rC;var kl=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(colorTexture, v_textureCoordinates); +} +`;function Rm(){this._numSamples=1,this.previousFramebuffer=void 0,this._previousFramebuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this._fbo=new di({depthStencil:!0,createDepthAttachments:!1}),this._fboClassified=new di({depthStencil:!0,createDepthAttachments:!1}),this._rsUnclassified=void 0,this._rsClassified=void 0,this._unclassifiedCommand=void 0,this._classifiedCommand=void 0,this._translucentCommand=void 0,this._clearColorCommand=new ri({color:new z(0,0,0,0),owner:this}),this._clearCommand=new ri({color:new z(0,0,0,0),depth:1,stencil:0});let e=this;this._uniformMap={colorTexture:function(){return e._fbo.getColorTexture()},depthTexture:function(){return e._depthStencilTexture},classifiedTexture:function(){return e._fboClassified.getColorTexture()}}}Object.defineProperties(Rm.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}});Rm.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var sct={depthMask:!1,stencilTest:{enabled:!0,frontFunction:zn.EQUAL,frontOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},backFunction:zn.NEVER,reference:0,mask:Ft.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},act={depthMask:!1,stencilTest:{enabled:!0,frontFunction:zn.NOT_EQUAL,frontOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},backFunction:zn.NEVER,reference:0,mask:Ft.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},cct={depthMask:!0,depthTest:{enabled:!0},stencilTest:Ft.setCesium3DTileBit(),stencilMask:Ft.CESIUM_3D_TILE_MASK,blending:un.ALPHA_BLEND},lct=`uniform sampler2D colorTexture; +uniform sampler2D depthTexture; +uniform sampler2D classifiedTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } + bool isClassified = all(equal(texture(classifiedTexture, v_textureCoordinates), vec4(0.0))); +#ifdef UNCLASSIFIED + vec4 highlightColor = czm_invertClassificationColor; + if (isClassified) + { + discard; + } +#else + vec4 highlightColor = vec4(1.0); + if (!isClassified) + { + discard; + } +#endif + out_FragColor = color * highlightColor; + gl_FragDepth = texture(depthTexture, v_textureCoordinates).r; +} +`,uct=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } +#ifdef UNCLASSIFIED + out_FragColor = color * czm_invertClassificationColor; +#else + out_FragColor = color; +#endif +} +`;Rm.prototype.update=function(e,t,n){let i=this._fbo.getColorTexture(),r=this.previousFramebuffer!==this._previousFramebuffer;this._previousFramebuffer=this.previousFramebuffer;let o=this._numSamples!==t,s=e.drawingBufferWidth,a=e.drawingBufferHeight,c=!u(i)||i.width!==s||i.height!==a;if((c||r||o)&&(this._numSamples=t,this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),u(this._previousFramebuffer)||(this._depthStencilTexture=new Rt({context:e,width:s,height:a,pixelFormat:at.DEPTH_STENCIL,pixelDatatype:Ke.UNSIGNED_INT_24_8}),t>1&&(this._depthStencilRenderbuffer=new Zl({context:e,width:s,height:a,format:Ec.DEPTH24_STENCIL8,numSamples:t})))),!u(this._fbo.framebuffer)||c||r||o){this._fbo.destroy(),this._fboClassified.destroy();let l,f;u(this._previousFramebuffer)?(l=n.getDepthStencilTexture(),f=n.getDepthStencilRenderbuffer()):(l=this._depthStencilTexture,f=this._depthStencilRenderbuffer),this._fbo.setDepthStencilTexture(l),u(f)&&this._fbo.setDepthStencilRenderbuffer(f),this._fbo.update(e,s,a,t),u(this._previousFramebuffer)||(this._fboClassified.setDepthStencilTexture(l),this._fboClassified.update(e,s,a))}if(u(this._rsUnclassified)||(this._rsUnclassified=Ve.fromCache(sct),this._rsClassified=Ve.fromCache(act),this._rsDefault=Ve.fromCache(cct)),!u(this._unclassifiedCommand)||r||o){u(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());let l=u(this._previousFramebuffer)?uct:lct,f=new ke({defines:["UNCLASSIFIED"],sources:[l]}),d=new ke({sources:[l]});this._unclassifiedCommand=e.createViewportQuadCommand(f,{renderState:u(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(d,{renderState:u(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),u(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),u(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(kl,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}};Rm.prototype.prepareTextures=function(e,t){this._fbo._numSamples>1&&this._fbo.prepareTextures(e,t)};Rm.prototype.clear=function(e,t){u(this._previousFramebuffer)?this._fbo.clear(e,this._clearColorCommand,t):(this._fbo.clear(e,this._clearCommand,t),this._fboClassified.clear(e,this._clearCommand,t))};Rm.prototype.executeClassified=function(e,t){if(!u(this._previousFramebuffer)){let n=t.framebuffer;this.prepareTextures(e,!0),t.framebuffer=this._fboClassified.framebuffer,this._translucentCommand.execute(e,t),t.framebuffer=n}this._classifiedCommand.execute(e,t)};Rm.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)};Rm.prototype.isDestroyed=function(){return!1};Rm.prototype.destroy=function(){return this._fbo.destroy(),this._fboClassified.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),u(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),ue(this)};var CS=Rm;function Bz(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}Object.defineProperties(Bz.prototype,{total:{get:function(){return this._total}}});function Yy(e){let t=new Array(Aa.NUMBER_OF_JOB_TYPES);t[Aa.TEXTURE]=new Bz(u(e)?e[Aa.TEXTURE]:10),t[Aa.PROGRAM]=new Bz(u(e)?e[Aa.PROGRAM]:10),t[Aa.BUFFER]=new Bz(u(e)?e[Aa.BUFFER]:30);let n=t.length,i,r=0;for(i=0;i<n;++i)r+=t[i].total;let o=new Array(n);for(i=0;i<n;++i)o[i]=!1;this._totalBudget=r,this._totalUsedThisFrame=0,this._budgets=t,this._executedThisFrame=o}Yy.getTimestamp=yi;Object.defineProperties(Yy.prototype,{totalBudget:{get:function(){return this._totalBudget}}});Yy.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget};Yy.prototype.resetBudgets=function(){let e=this._budgets,t=e.length;for(let n=0;n<t;++n){let i=e[n];i.starvedLastFrame=i.starvedThisFrame,i.starvedThisFrame=!1,i.usedThisFrame=0,i.stolenFromMeThisFrame=0}this._totalUsedThisFrame=0};Yy.prototype.execute=function(e,t){let n=this._budgets,i=n[t],r=this._executedThisFrame[t];if(this._totalUsedThisFrame>=this._totalBudget&&r)return i.starvedThisFrame=!0,!1;let o;if(i.usedThisFrame+i.stolenFromMeThisFrame>=i.total){let c=n.length,l;for(l=0;l<c&&(o=n[l],!(o.usedThisFrame+o.stolenFromMeThisFrame<o.total&&!o.starvedLastFrame));++l);if(l===c&&r)return!1;r&&(i.starvedThisFrame=!0)}let s=Yy.getTimestamp();e.execute();let a=Yy.getTimestamp()-s;return this._totalUsedThisFrame+=a,o?o.stolenFromMeThisFrame+=a:i.usedThisFrame+=a,this._executedThisFrame[t]=!0,!0};var YL=Yy;function Lz(e){e=y(e,y.EMPTY_OBJECT);let t=wn(e.container);this._container=t;let n=document.createElement("div");n.className="cesium-performanceDisplay";let i=document.createElement("div");i.className="cesium-performanceDisplay-fps",this._fpsText=document.createTextNode(""),i.appendChild(this._fpsText);let r=document.createElement("div");r.className="cesium-performanceDisplay-ms",this._msText=document.createTextNode(""),r.appendChild(this._msText),n.appendChild(r),n.appendChild(i),this._container.appendChild(n),this._lastFpsSampleTime=yi(),this._lastMsSampleTime=yi(),this._fpsFrameCount=0,this._msFrameCount=0,this._throttled=!1;let o=document.createElement("div");o.className="cesium-performanceDisplay-throttled",this._throttledText=document.createTextNode(""),o.appendChild(this._throttledText),n.appendChild(o)}Object.defineProperties(Lz.prototype,{throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(e?this._throttledText.nodeValue="(throttled)":this._throttledText.nodeValue="",this._throttled=e)}}});Lz.prototype.update=function(e){let t=yi(),n=y(e,!0);this._fpsFrameCount++;let i=t-this._lastFpsSampleTime;if(i>1e3){let o="N/A";n&&(o=this._fpsFrameCount*1e3/i|0),this._fpsText.nodeValue=`${o} FPS`,this._lastFpsSampleTime=t,this._fpsFrameCount=0}this._msFrameCount++;let r=t-this._lastMsSampleTime;if(r>200){let o="N/A";n&&(o=(r/this._msFrameCount).toFixed(2)),this._msText.nodeValue=`${o} MS`,this._lastMsSampleTime=t,this._msFrameCount=0}};Lz.prototype.destroy=function(){return ue(this)};var k_=Lz;function oC(){this._framebuffer=new di,this._textureToCopy=void 0,this._copyDepthCommand=void 0}Object.defineProperties(oC.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function fct(e,t,n){let i=n.width,r=n.height;e._framebuffer.update(t,i,r)}function dct(e,t,n){if(!u(e._copyDepthCommand)){let i=`uniform highp sampler2D u_texture; +in vec2 v_textureCoordinates; +void main() +{ + out_FragColor = czm_packDepth(texture(u_texture, v_textureCoordinates).r); +} +`;e._copyDepthCommand=t.createViewportQuadCommand(i,{renderState:Ve.fromCache(),uniformMap:{u_texture:function(){return e._textureToCopy}},owner:e})}e._textureToCopy=n,e._copyDepthCommand.framebuffer=e.framebuffer}oC.prototype.update=function(e,t){fct(this,e,t),dct(this,e,t)};var hct=new se,mct=new se(1,1/255,1/65025,1/16581375);oC.prototype.getDepth=function(e,t,n){if(!u(this.framebuffer))return;let i=e.readPixels({x:t,y:n,width:1,height:1,framebuffer:this.framebuffer}),r=se.unpack(i,0,hct);return se.divideByScalar(r,255,r),se.dot(r,mct)};oC.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)};oC.prototype.isDestroyed=function(){return!1};oC.prototype.destroy=function(){return this._framebuffer.destroy(),u(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=u(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy()),ue(this)};var XL=oC;function pct(e,t){this.near=y(e,0),this.far=y(t,0);let n=be.NUMBER_OF_PASSES,i=new Array(n),r=new Array(n);for(let o=0;o<n;++o)i[o]=[],r[o]=0;this.commands=i,this.indices=r}var KL=pct;var Xy=`uniform highp sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = czm_packDepth(texture(u_depthTexture, v_textureCoordinates).r); +} +`;function Bm(){this._picking=!1,this._numSamples=1,this._tempCopyDepthTexture=void 0,this._pickColorFramebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._outputFramebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._copyDepthFramebuffer=new di,this._tempCopyDepthFramebuffer=new di,this._updateDepthFramebuffer=new di({createColorAttachments:!1,createDepthAttachments:!1,depthStencil:!0}),this._clearGlobeColorCommand=void 0,this._copyColorCommand=void 0,this._copyDepthCommand=void 0,this._tempCopyDepthCommand=void 0,this._updateDepthCommand=void 0,this._viewport=new Xe,this._rs=void 0,this._rsBlend=void 0,this._rsUpdate=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0,this._clearGlobeDepth=void 0}Object.defineProperties(Bm.prototype,{colorFramebufferManager:{get:function(){return this._picking?this._pickColorFramebuffer:this._outputFramebuffer}},framebuffer:{get:function(){return this.colorFramebufferManager.framebuffer}},depthStencilTexture:{get:function(){return this.colorFramebufferManager.getDepthStencilTexture()}},picking:{get:function(){return this._picking},set:function(e){this._picking=e}}});function _ct(e){e._pickColorFramebuffer.destroy(),e._outputFramebuffer.destroy(),e._copyDepthFramebuffer.destroy(),e._tempCopyDepthFramebuffer.destroy(),e._updateDepthFramebuffer.destroy()}function Lge(e,t,n,i,r){e._viewport.width=n,e._viewport.height=i;let o=!Xe.equals(e._viewport,r.viewport),s=o!==e._useScissorTest;e._useScissorTest=o,Xe.equals(e._scissorRectangle,r.viewport)||(e._scissorRectangle=Xe.clone(r.viewport,e._scissorRectangle),s=!0),(!u(e._rs)||!Xe.equals(e._viewport,e._rs.viewport)||s)&&(e._rs=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}}),e._rsBlend=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND}),e._rsUpdate=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:zn.EQUAL,frontOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},backFunction:zn.NEVER,reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK}})),u(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(Xy,{uniformMap:{u_depthTexture:function(){return e.colorFramebufferManager.getDepthStencilTexture()}},owner:e})),e._copyDepthCommand.framebuffer=e._copyDepthFramebuffer.framebuffer,e._copyDepthCommand.renderState=e._rs,u(e._copyColorCommand)||(e._copyColorCommand=t.createViewportQuadCommand(kl,{uniformMap:{colorTexture:function(){return e.colorFramebufferManager.getColorTexture()}},owner:e})),e._copyColorCommand.renderState=e._rs,u(e._tempCopyDepthCommand)||(e._tempCopyDepthCommand=t.createViewportQuadCommand(Xy,{uniformMap:{u_depthTexture:function(){return e._tempCopyDepthTexture}},owner:e})),e._tempCopyDepthCommand.framebuffer=e._tempCopyDepthFramebuffer.framebuffer,e._tempCopyDepthCommand.renderState=e._rs,u(e._updateDepthCommand)||(e._updateDepthCommand=t.createViewportQuadCommand(kl,{uniformMap:{colorTexture:function(){return e._tempCopyDepthFramebuffer.getColorTexture()}},owner:e})),e._updateDepthCommand.framebuffer=e._updateDepthFramebuffer.framebuffer,e._updateDepthCommand.renderState=e._rsUpdate,u(e._clearGlobeColorCommand)||(e._clearGlobeColorCommand=new ri({color:new z(0,0,0,0),stencil:0,owner:e})),e._clearGlobeColorCommand.framebuffer=e.framebuffer}Bm.prototype.update=function(e,t,n,i,r,o){let s=n.width,a=n.height,c=r?e.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT:Ke.UNSIGNED_BYTE;this._numSamples=i,this.picking?this._pickColorFramebuffer.update(e,s,a):this._outputFramebuffer.update(e,s,a,i,c),this._copyDepthFramebuffer.update(e,s,a),Lge(this,e,s,a,t),e.uniformState.globeDepthTexture=void 0,this._useHdr=r,this._clearGlobeDepth=o};Bm.prototype.prepareColorTextures=function(e,t){!this.picking&&this._numSamples>1&&this._outputFramebuffer.prepareTextures(e,t)};Bm.prototype.executeCopyDepth=function(e,t){u(this._copyDepthCommand)&&(this.prepareColorTextures(e),this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._copyDepthFramebuffer.getColorTexture())};Bm.prototype.executeUpdateDepth=function(e,t,n,i){let r=u(i)?i:t.framebuffer.depthStencilTexture;if(n||r!==this.colorFramebufferManager.getDepthStencilTexture()){if(u(this._updateDepthCommand)){if(!u(this._updateDepthFramebuffer.framebuffer)||this._updateDepthFramebuffer.getDepthStencilTexture()!==r||this._updateDepthFramebuffer.getColorTexture()!==this._copyDepthFramebuffer.getColorTexture()){let o=this._copyDepthFramebuffer.getColorTexture().width,s=this._copyDepthFramebuffer.getColorTexture().height;this._tempCopyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.update(e,o,s);let a=this._copyDepthFramebuffer.getColorTexture();this._updateDepthFramebuffer.setColorTexture(a,0),this._updateDepthFramebuffer.setDepthStencilTexture(r),this._updateDepthFramebuffer.update(e,o,s),Lge(this,e,o,s,t)}this._tempCopyDepthTexture=r,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)}return}u(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t)};Bm.prototype.executeCopyColor=function(e,t){u(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)};Bm.prototype.clear=function(e,t,n){let i=this._clearGlobeColorCommand;u(i)&&(z.clone(n,i.color),this.colorFramebufferManager.clear(e,i,t))};Bm.prototype.isDestroyed=function(){return!1};Bm.prototype.destroy=function(){return _ct(this),u(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),u(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy()),u(this._tempCopyDepthCommand)&&(this._tempCopyDepthCommand.shaderProgram=this._tempCopyDepthCommand.shaderProgram.destroy()),u(this._updateDepthCommand)&&(this._updateDepthCommand.shaderProgram=this._updateDepthCommand.shaderProgram.destroy()),ue(this)};var JL=Bm;function sC(){this._framebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._packedDepthFramebuffer=new di,this._renderState=void 0,this._packedDepthCommand=void 0,this._clearCommand=void 0,this._viewport=new Xe,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0}Object.defineProperties(sC.prototype,{classificationTexture:{get:function(){return this._framebuffer.getColorTexture()}},classificationFramebuffer:{get:function(){return this._framebuffer.framebuffer}},packedDepthFramebuffer:{get:function(){return this._packedDepthFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._framebuffer.getDepthStencilTexture()}},depthStencilRenderbuffer:{get:function(){return this._framebuffer.getDepthStencilRenderbuffer()}},packedDepthTexture:{get:function(){return this._packedDepthFramebuffer.getColorTexture()}}});function gct(e){e._framebuffer.destroy(),e._packedDepthFramebuffer.destroy()}function yct(e,t,n,i,r){let o=r?t.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT:Ke.UNSIGNED_BYTE;e._framebuffer.update(t,n,i,1,o),e._packedDepthFramebuffer.update(t,n,i)}function Act(e,t,n,i,r){e._viewport.width=n,e._viewport.height=i;let o=!Xe.equals(e._viewport,r.viewport),s=o!==e._useScissorTest;e._useScissorTest=o,Xe.equals(e._scissorRectangle,r.viewport)||(e._scissorRectangle=Xe.clone(r.viewport,e._scissorRectangle),s=!0),(!u(e._renderState)||!Xe.equals(e._viewport,e._renderState.viewport)||s)&&(e._renderState=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),u(e._packedDepthCommand)||(e._packedDepthCommand=t.createViewportQuadCommand(Xy,{uniformMap:{u_depthTexture:function(){return e.depthStencilTexture}},owner:e})),u(e._clearCommand)||(e._clearCommand=new ri({color:new z(0,0,0,0),depth:1,stencil:0,owner:e})),e._packedDepthCommand.framebuffer=e._packedDepthFramebuffer.framebuffer,e._packedDepthCommand.renderState=e._renderState,e._clearCommand.framebuffer=e.classificationFramebuffer,e._clearCommand.renderState=e._renderState}sC.prototype.updateAndClear=function(e,t,n,i){let r=t.width,o=t.height;yct(this,n,r,o,e),Act(this,n,r,o,i),this._useHdr=e};sC.prototype.clearClassification=function(e,t){this._clearCommand.execute(e,t)};sC.prototype.packDepth=function(e,t){return this._packedDepthCommand.execute(e,t),this.packedDepthTexture};sC.prototype.isDestroyed=function(){return!1};sC.prototype.destroy=function(){return gct(this),ue(this)};var ZL=sC;var TS=`#ifdef MRT +layout (location = 0) out vec4 out_FragData_0; +layout (location = 1) out vec4 out_FragData_1; +#else +layout (location = 0) out vec4 out_FragColor; +#endif + +uniform vec4 u_bgColor; +uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + if (texture(u_depthTexture, v_textureCoordinates).r < 1.0) + { +#ifdef MRT + out_FragData_0 = u_bgColor; + out_FragData_1 = vec4(u_bgColor.a); +#else + out_FragColor = u_bgColor; +#endif + return; + } + + discard; +} +`;var QL=`/** + * Compositing for Weighted Blended Order-Independent Transparency. See: + * - http://jcgt.org/published/0002/02/09/ + * - http://casual-effects.blogspot.com/2014/03/weighted-blended-order-independent.html + */ + +uniform sampler2D u_opaque; +uniform sampler2D u_accumulation; +uniform sampler2D u_revealage; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 opaque = texture(u_opaque, v_textureCoordinates); + vec4 accum = texture(u_accumulation, v_textureCoordinates); + float r = texture(u_revealage, v_textureCoordinates).r; + +#ifdef MRT + vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a); +#else + vec4 transparent = vec4(accum.rgb / clamp(accum.a, 1e-4, 5e4), r); +#endif + + out_FragColor = (1.0 - transparent.a) * transparent + transparent.a * opaque; + + if (opaque != czm_backgroundColor) + { + out_FragColor.a = 1.0; + } +} +`;function z_(e){this._numSamples=1,this._translucentMultipassSupport=!1,this._translucentMRTSupport=!1;let t=e.colorBufferFloat&&e.depthTexture&&e.floatBlend;this._translucentMRTSupport=e.drawBuffers&&t,this._translucentMultipassSupport=!this._translucentMRTSupport&&t,this._opaqueFBO=void 0,this._opaqueTexture=void 0,this._depthStencilTexture=void 0,this._accumulationTexture=void 0,this._translucentFBO=new di({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._alphaFBO=new di({createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._adjustTranslucentFBO=new di({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1}),this._adjustAlphaFBO=new di({createColorAttachments:!1}),this._opaqueClearCommand=new ri({color:new z(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new ri({color:new z(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new ri({color:new z(0,0,0,0),owner:this}),this._alphaClearCommand=new ri({color:new z(1,1,1,1),owner:this}),this._translucentRenderStateCache={},this._alphaRenderStateCache={},this._compositeCommand=void 0,this._adjustTranslucentCommand=void 0,this._adjustAlphaCommand=void 0,this._viewport=new Xe,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function Nge(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function Lq(e){e._translucentFBO.destroy(),e._alphaFBO.destroy(),e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO.destroy()}function Fge(e){Nge(e),Lq(e)}function xct(e,t,n,i){Nge(e),e._accumulationTexture=new Rt({context:t,width:n,height:i,pixelFormat:at.RGBA,pixelDatatype:Ke.FLOAT});let r=new Float32Array(n*i*4);e._revealageTexture=new Rt({context:t,pixelFormat:at.RGBA,pixelDatatype:Ke.FLOAT,source:{arrayBufferView:r,width:n,height:i},flipY:!1})}function Cct(e,t){Lq(e);let n=te.FRAMEBUFFER_COMPLETE,i=!0,{width:r,height:o}=e._accumulationTexture;if(e._translucentMRTSupport&&(e._translucentFBO.setColorTexture(e._accumulationTexture,0),e._translucentFBO.setColorTexture(e._revealageTexture,1),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,r,o),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture,0),e._adjustTranslucentFBO.setColorTexture(e._revealageTexture,1),e._adjustTranslucentFBO.update(t,r,o),(e._translucentFBO.status!==n||e._adjustTranslucentFBO.status!==n)&&(Lq(e),e._translucentMRTSupport=!1)),!e._translucentMRTSupport){e._translucentFBO.setColorTexture(e._accumulationTexture),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,r,o),e._alphaFBO.setColorTexture(e._revealageTexture),e._alphaFBO.setDepthStencilTexture(e._depthStencilTexture),e._alphaFBO.update(t,r,o),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture),e._adjustTranslucentFBO.update(t,r,o),e._adjustAlphaFBO.setColorTexture(e._revealageTexture),e._adjustAlphaFBO.update(t,r,o);let s=e._translucentFBO.status===n,a=e._alphaFBO.status===n,c=e._adjustTranslucentFBO.status===n,l=e._adjustAlphaFBO.status===n;(!s||!a||!c||!l)&&(Fge(e),e._translucentMultipassSupport=!1,i=!1)}return i}z_.prototype.update=function(e,t,n,i,r){if(!this.isSupported())return;this._opaqueFBO=n,this._opaqueTexture=n.getColorTexture(0),this._depthStencilTexture=n.getDepthStencilTexture();let{width:o,height:s}=this._opaqueTexture,a=this._accumulationTexture,c=!u(a)||a.width!==o||a.height!==s||i!==this._useHDR,l=this._numSamples!==r;if((c||l)&&(this._numSamples=r,xct(this,e,o,s)),(!u(this._translucentFBO.framebuffer)||c||l)&&!Cct(this,e))return;this._useHDR=i;let f=this,d,p;u(this._compositeCommand)||(d=new ke({sources:[QL]}),this._translucentMRTSupport&&d.defines.push("MRT"),p={u_opaque:function(){return f._opaqueTexture},u_accumulation:function(){return f._accumulationTexture},u_revealage:function(){return f._revealageTexture}},this._compositeCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})),u(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(d=new ke({defines:["MRT"],sources:[TS]}),p={u_bgColor:function(){return f._translucentMRTClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})):this._translucentMultipassSupport&&(d=new ke({sources:[TS]}),p={u_bgColor:function(){return f._translucentMultipassClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}),p={u_bgColor:function(){return f._alphaClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustAlphaCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}))),this._viewport.width=o,this._viewport.height=s;let g=!Xe.equals(this._viewport,t.viewport),m=g!==this._useScissorTest;this._useScissorTest=g,Xe.equals(this._scissorRectangle,t.viewport)||(this._scissorRectangle=Xe.clone(t.viewport,this._scissorRectangle),m=!0),(!u(this._rs)||!Xe.equals(this._viewport,this._rs.viewport)||m)&&(this._rs=Ve.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),u(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),u(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)};var Tct={enabled:!0,color:new z(0,0,0,0),equationRgb:pa.ADD,equationAlpha:pa.ADD,functionSourceRgb:Sr.ONE,functionDestinationRgb:Sr.ONE,functionSourceAlpha:Sr.ZERO,functionDestinationAlpha:Sr.ONE_MINUS_SOURCE_ALPHA},Ect={enabled:!0,color:new z(0,0,0,0),equationRgb:pa.ADD,equationAlpha:pa.ADD,functionSourceRgb:Sr.ONE,functionDestinationRgb:Sr.ONE,functionSourceAlpha:Sr.ONE,functionDestinationAlpha:Sr.ONE},bct={enabled:!0,color:new z(0,0,0,0),equationRgb:pa.ADD,equationAlpha:pa.ADD,functionSourceRgb:Sr.ZERO,functionDestinationRgb:Sr.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:Sr.ZERO,functionDestinationAlpha:Sr.ONE_MINUS_SOURCE_ALPHA};function Nq(e,t,n,i){let r=n[i.id];if(!u(r)){let o=Ve.getState(i);o.depthMask=!1,o.blending=t,r=Ve.fromCache(o),n[i.id]=r}return r}function Sct(e,t,n){return Nq(t,Tct,e._translucentRenderStateCache,n)}function vct(e,t,n){return Nq(t,Ect,e._translucentRenderStateCache,n)}function wct(e,t,n){return Nq(t,bct,e._alphaRenderStateCache,n)}var Dct=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragData_0 = vec4(Ci * wzi, ai); + out_FragData_1 = vec4(ai * wzi); +`,Ict=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragColor = vec4(Ci, ai) * wzi; +`,Pct=` float ai = czm_out_FragColor.a; + out_FragColor = vec4(ai); +`;function Fq(e,t,n,i){let{shaderCache:r}=e,o=r.getDerivedShaderProgram(t,n);if(u(o))return o;let s=t._attributeLocations,a=t.fragmentShaderSource.clone();a.sources=a.sources.map(function(f){return ke.replaceMain(f,"czm_translucent_main").replace(/out_FragColor/g,"czm_out_FragColor").replace(/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,"").replace(/\bdiscard\b/g,"czm_discard = true").replace(/czm_phong/g,"czm_translucentPhong")}),a.sources.splice(0,0,`vec4 czm_out_FragColor; +bool czm_discard = false; +`);let c=[...i.matchAll(/out_FragData_(\d+)/g)],l="";for(let f=0;f<c.length;f++){let d=c[f];l=`layout (location = ${d[1]}) out vec4 ${d[0]}; +${l}`}return a.sources.push(l),a.sources.push(`void main() +{ + czm_translucent_main(); + if (czm_discard) + { + discard; + } +${i}} +`),r.createDerivedShaderProgram(t,n,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:a,attributeLocations:s})}function Oct(e,t){return Fq(e,t,"translucentMRT",Dct)}function Mct(e,t){return Fq(e,t,"translucentMultipass",Ict)}function Rct(e,t){return Fq(e,t,"alphaMultipass",Pct)}z_.prototype.createDerivedCommands=function(e,t,n){if(u(n)||(n={}),this._translucentMRTSupport){let a,c;return u(n.translucentCommand)&&(a=n.translucentCommand.shaderProgram,c=n.translucentCommand.renderState),n.translucentCommand=nt.shallowClone(e,n.translucentCommand),!u(a)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=Oct(t,e.shaderProgram),n.translucentCommand.renderState=Sct(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=a,n.translucentCommand.renderState=c),n}let i,r,o,s;return u(n.translucentCommand)&&(i=n.translucentCommand.shaderProgram,r=n.translucentCommand.renderState,o=n.alphaCommand.shaderProgram,s=n.alphaCommand.renderState),n.translucentCommand=nt.shallowClone(e,n.translucentCommand),n.alphaCommand=nt.shallowClone(e,n.alphaCommand),!u(i)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=Mct(t,e.shaderProgram),n.translucentCommand.renderState=vct(this,t,e.renderState),n.alphaCommand.shaderProgram=Rct(t,e.shaderProgram),n.alphaCommand.renderState=wct(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=i,n.translucentCommand.renderState=r,n.alphaCommand.shaderProgram=o,n.alphaCommand.renderState=s),n};function Bct(e,t,n,i,r,o){let s,a,c,{context:l,frameState:f}=t,{useLogDepth:d,shadowState:p}=f,g=t._hdr,m=i.framebuffer,A=p.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(l,i),i.framebuffer=e._adjustAlphaFBO.framebuffer,e._adjustAlphaCommand.execute(l,i);let x=e._opaqueFBO.framebuffer;for(i.framebuffer=e._translucentFBO.framebuffer,c=0;c<r.length;++c)s=r[c],s=d?s.derivedCommands.logDepth.command:s,s=g?s.derivedCommands.hdr.command:s,a=A&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,l,i,x);for(u(o)&&(s=o.unclassifiedCommand,a=A&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,l,i,x)),i.framebuffer=e._alphaFBO.framebuffer,c=0;c<r.length;++c)s=r[c],s=d?s.derivedCommands.logDepth.command:s,s=g?s.derivedCommands.hdr.command:s,a=A&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,l,i,x);u(o)&&(s=o.unclassifiedCommand,a=A&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,l,i,x)),i.framebuffer=m}function Lct(e,t,n,i,r,o){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:l}=a,f=t._hdr,d=i.framebuffer,p=l.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;let m,A;for(let x=0;x<r.length;++x)m=r[x],m=c?m.derivedCommands.logDepth.command:m,m=f?m.derivedCommands.hdr.command:m,A=p&&m.receiveShadows?m.derivedCommands.oit.shadows.translucentCommand:m.derivedCommands.oit.translucentCommand,n(A,t,s,i,g);u(o)&&(m=o.unclassifiedCommand,A=p&&m.receiveShadows?m.derivedCommands.oit.shadows.translucentCommand:m.derivedCommands.oit.translucentCommand,n(A,t,s,i,g)),i.framebuffer=d}z_.prototype.executeCommands=function(e,t,n,i,r){if(this._translucentMRTSupport){Lct(this,e,t,n,i,r);return}Bct(this,e,t,n,i,r)};z_.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)};z_.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this._opaqueFBO.framebuffer,z.clone(n,this._opaqueClearCommand.color),this._opaqueClearCommand.execute(e,t),t.framebuffer=this._translucentFBO.framebuffer,(this._translucentMRTSupport?this._translucentMRTClearCommand:this._translucentMultipassClearCommand).execute(e,t),this._translucentMultipassSupport&&(t.framebuffer=this._alphaFBO.framebuffer,this._alphaClearCommand.execute(e,t)),t.framebuffer=i};z_.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport};z_.prototype.isDestroyed=function(){return!1};z_.prototype.destroy=function(){return Fge(this),u(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),u(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),u(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),ue(this)};var $L=z_;function eN(){this._framebuffer=new di({color:!1,depthStencil:!0,supportsDepthTexture:!0}),this._passState=void 0}Object.defineProperties(eN.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function Nct(e){e._framebuffer.destroy()}function Fct(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i);let r=new Ha(t);r.blendingEnabled=!1,r.scissorTest={enabled:!0,rectangle:new Xe},r.viewport=new Xe,e._passState=r}eN.prototype.update=function(e,t,n){let i=n.width,r=n.height;this._framebuffer.isDirty(i,r)&&Fct(this,e);let o=this.framebuffer,s=this._passState;return s.framebuffer=o,s.viewport.width=i,s.viewport.height=r,s.scissorTest.rectangle.x=t.x,s.scissorTest.rectangle.y=r-t.y,s.scissorTest.rectangle.width=1,s.scissorTest.rectangle.height=1,s};eN.prototype.isDestroyed=function(){return!1};eN.prototype.destroy=function(){return Nct(this),ue(this)};var tN=eN;function iN(e){let t=new Ha(e);t.blendingEnabled=!1,t.scissorTest={enabled:!0,rectangle:new Xe},t.viewport=new Xe,this._context=e,this._fb=new di({depthStencil:!0}),this._passState=t,this._width=0,this._height=0}iN.prototype.begin=function(e,t){let n=this._context,i=t.width,r=t.height;return Xe.clone(e,this._passState.scissorTest.rectangle),this._width=i,this._height=r,this._fb.update(n,i,r),this._passState.framebuffer=this._fb.framebuffer,this._passState.viewport.width=i,this._passState.viewport.height=r,this._passState};var nN=new z;iN.prototype.end=function(e){let t=y(e.width,1),n=y(e.height,1),i=this._context,r=i.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),o=Math.max(t,n),s=o*o,a=Math.floor(t*.5),c=Math.floor(n*.5),l=0,f=0,d=0,p=-1;for(let g=0;g<s;++g){if(-a<=l&&l<=a&&-c<=f&&f<=c){let m=4*((c-f)*t+l+a);nN.red=z.byteToFloat(r[m]),nN.green=z.byteToFloat(r[m+1]),nN.blue=z.byteToFloat(r[m+2]),nN.alpha=z.byteToFloat(r[m+3]);let A=i.getObjectByPickColor(nN);if(u(A))return A}if(l===f||l<0&&-l===f||l>0&&l===1-f){let m=d;d=-p,p=m}l+=d,f+=p}};iN.prototype.isDestroyed=function(){return!1};iN.prototype.destroy=function(){return this._fb.destroy(),ue(this)};var rN=iN;function H_(){this._numSamples=1,this._colorFramebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._idFramebuffer=new di({depthStencil:!0,supportsDepthTexture:!0}),this._idClearColor=new z(0,0,0,0),this._clearCommand=new ri({color:new z(0,0,0,0),depth:1,owner:this})}function Uct(e){e._colorFramebuffer.destroy(),e._idFramebuffer.destroy()}Object.defineProperties(H_.prototype,{framebuffer:{get:function(){return this._colorFramebuffer.framebuffer}},idFramebuffer:{get:function(){return this._idFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._colorFramebuffer.getDepthStencilTexture()}}});H_.prototype.update=function(e,t,n,i){let r=t.width,o=t.height,s=n?e.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT:Ke.UNSIGNED_BYTE;this._numSamples=i,this._colorFramebuffer.update(e,r,o,i,s),this._idFramebuffer.update(e,r,o)};H_.prototype.clear=function(e,t,n){z.clone(n,this._clearCommand.color),z.clone(this._idClearColor,this._clearCommand.color),this._colorFramebuffer.clear(e,this._clearCommand,t),this._idFramebuffer.clear(e,this._clearCommand,t)};H_.prototype.getFramebuffer=function(){return this._colorFramebuffer.framebuffer};H_.prototype.getIdFramebuffer=function(){return this._idFramebuffer.framebuffer};H_.prototype.prepareColorTextures=function(e){this._numSamples>1&&this._colorFramebuffer.prepareTextures(e)};H_.prototype.isDestroyed=function(){return!1};H_.prototype.destroy=function(){return Uct(this),ue(this)};var aC=H_;function cC(){}cC.getShadowCastShaderKeyword=function(e,t,n,i){return`castShadow ${e} ${t} ${n} ${i}`};cC.createShadowCastVertexShader=function(e,t,n){let i=e.defines.slice(0),r=e.sources.slice(0);i.push("SHADOW_MAP"),n&&i.push("GENERATE_POSITION");let o=ke.findPositionVarying(e),s=u(o);if(t&&!s){let a=r.length;for(let l=0;l<a;++l)r[l]=ke.replaceMain(r[l],"czm_shadow_cast_main");let c=`out vec3 v_positionEC; +void main() +{ + czm_shadow_cast_main(); + v_positionEC = (czm_inverseProjection * gl_Position).xyz; +}`;r.push(c)}return new ke({defines:i,sources:r})};cC.createShadowCastFragmentShader=function(e,t,n,i){let r=e.defines.slice(0),o=e.sources.slice(0);r.push("SHADOW_MAP");let s=ke.findPositionVarying(e),a=u(s);a||(s="v_positionEC");let c=o.length;for(let f=0;f<c;++f)o[f]=ke.replaceMain(o[f],"czm_shadow_cast_main");let l="";return t&&(a||(l+=`in vec3 v_positionEC; +`),l+=`uniform vec4 shadowMap_lightPositionEC; +`),i?l+=`void main() +{ +`:l+=`void main() +{ + czm_shadow_cast_main(); + if (out_FragColor.a == 0.0) + { + discard; + } +`,t?l+=` float distance = length(${s}); + if (distance >= shadowMap_lightPositionEC.w) + { + discard; + } + distance /= shadowMap_lightPositionEC.w; // radius + out_FragColor = czm_packDepth(distance); +`:n?l+=` out_FragColor = vec4(1.0); +`:l+=` out_FragColor = czm_packDepth(gl_FragCoord.z); +`,l+=`} +`,o.push(l),new ke({defines:r,sources:o})};cC.getShadowReceiveShaderKeyword=function(e,t,n,i){let r=e._usesDepthTexture,o=e._polygonOffsetSupported,s=e._isPointLight,a=e._isSpotLight,c=e._numberOfCascades>1,l=e.debugCascadeColors,f=e.softShadows;return`receiveShadow ${r}${o}${s}${a}${c}${l}${f}${t}${n}${i}`};cC.createShadowReceiveVertexShader=function(e,t,n){let i=e.defines.slice(0),r=e.sources.slice(0);return i.push("SHADOW_MAP"),t&&(n?i.push("GENERATE_POSITION_AND_NORMAL"):i.push("GENERATE_POSITION")),new ke({defines:i,sources:r})};cC.createShadowReceiveFragmentShader=function(e,t,n,i,r){let o=ke.findNormalVarying(e),s=!i&&u(o)||i&&r,a=ke.findPositionVarying(e),c=u(a),l=t._usesDepthTexture,f=t._polygonOffsetSupported,d=t._isPointLight,p=t._isSpotLight,g=t._numberOfCascades>1,m=t.debugCascadeColors,A=t.softShadows,x=d?t._pointBias:i?t._terrainBias:t._primitiveBias,C=e.defines.slice(0),T=e.sources.slice(0),E=T.length;for(let D=0;D<E;++D)T[D]=ke.replaceMain(T[D],"czm_shadow_receive_main");d?C.push("USE_CUBE_MAP_SHADOW"):l&&C.push("USE_SHADOW_DEPTH_TEXTURE"),A&&!d&&C.push("USE_SOFT_SHADOWS"),g&&n&&i&&(s?C.push("ENABLE_VERTEX_LIGHTING"):C.push("ENABLE_DAYNIGHT_SHADING")),n&&x.normalShading&&s&&(C.push("USE_NORMAL_SHADING"),x.normalShadingSmooth>0&&C.push("USE_NORMAL_SHADING_SMOOTH"));let S="";d?S+=`uniform samplerCube shadowMap_textureCube; +`:S+=`uniform sampler2D shadowMap_texture; +`;let v;return c?v=` return vec4(${a}, 1.0); +`:v=`#ifndef LOG_DEPTH + return czm_windowToEyeCoordinates(gl_FragCoord); +#else + return vec4(v_logPositionEC, 1.0); +#endif +`,S+=`uniform mat4 shadowMap_matrix; +uniform vec3 shadowMap_lightDirectionEC; +uniform vec4 shadowMap_lightPositionEC; +uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness; +uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth; +#ifdef LOG_DEPTH +in vec3 v_logPositionEC; +#endif +vec4 getPositionEC() +{ +${v}} +vec3 getNormalEC() +{ +${s?` return normalize(${o}); +`:` return vec3(1.0); +`}} +void applyNormalOffset(inout vec4 positionEC, vec3 normalEC, float nDotL) +{ +${x.normalOffset&&s?` float normalOffset = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.x; + float normalOffsetScale = 1.0 - nDotL; + vec3 offset = normalOffset * normalOffsetScale * normalEC; + positionEC.xyz += offset; +`:""}} +`,S+=`void main() +{ + czm_shadow_receive_main(); + vec4 positionEC = getPositionEC(); + vec3 normalEC = getNormalEC(); + float depth = -positionEC.z; +`,S+=` czm_shadowParameters shadowParameters; + shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy; + shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z; + shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w; + shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w; +`,i?S+=` shadowParameters.depthBias *= max(depth * 0.01, 1.0); +`:f||(S+=` shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015); +`),d?S+=` vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz; + float distance = length(directionEC); + directionEC = normalize(directionEC); + float radius = shadowMap_lightPositionEC.w; + // Stop early if the fragment is beyond the point light radius + if (distance > radius) + { + return; + } + vec3 directionWC = czm_inverseViewRotation * directionEC; + shadowParameters.depth = distance / radius; + shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + shadowParameters.texCoords = directionWC; + float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters); +`:p?S+=` vec3 directionEC = normalize(positionEC.xyz - shadowMap_lightPositionEC.xyz); + float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Spot light uses a perspective projection, so perform the perspective divide + shadowPosition /= shadowPosition.w; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`:g?S+=` float maxDepth = shadowMap_cascadeSplits[1].w; + // Stop early if the eye depth exceeds the last cascade + if (depth > maxDepth) + { + return; + } + // Get the cascade based on the eye-space depth + vec4 weights = czm_cascadeWeights(depth); + // Apply normal offset + float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + // Transform position into the cascade + vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC; + // Get visibility + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); + // Fade out shadows that are far away + float shadowMapMaximumDistance = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.z; + float fade = max((depth - shadowMapMaximumDistance * 0.8) / (shadowMapMaximumDistance * 0.2), 0.0); + visibility = mix(visibility, 1.0, fade); +${m?` // Draw cascade colors for debugging + out_FragColor *= czm_cascadeColor(weights); +`:""}`:S+=` float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`,S+=` out_FragColor.rgb *= visibility; +} +`,T.push(S),new ke({defines:C,sources:T})};var Lm=cC;function Nm(e){e=y(e,y.EMPTY_OBJECT);let t=e.context;this._enabled=y(e.enabled,!0),this._softShadows=y(e.softShadows,!1),this._normalOffset=y(e.normalOffset,!0),this.dirty=!0,this.fromLightSource=y(e.fromLightSource,!0),this.darkness=y(e.darkness,.3),this._darkness=this.darkness,this.fadingEnabled=y(e.fadingEnabled,!0),this.maximumDistance=y(e.maximumDistance,5e3),this._outOfView=!1,this._outOfViewPrevious=!1,this._needsUpdate=!0;let n=!0;(Ht.isInternetExplorer()||Ht.isEdge()||(Ht.isChrome()||Ht.isFirefox())&&Ht.isWindows()&&!t.depthTexture)&&(n=!1),this._polygonOffsetSupported=n,this._terrainBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.5,normalShading:!0,normalShadingSmooth:.3,depthBias:1e-4},this._primitiveBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.1,normalShading:!0,normalShadingSmooth:.05,depthBias:2e-5},this._pointBias={polygonOffset:!1,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:0,normalShading:!0,normalShadingSmooth:.1,depthBias:5e-4},this._depthAttachment=void 0,this._colorAttachment=void 0,this._shadowMapMatrix=new N,this._shadowMapTexture=void 0,this._lightDirectionEC=new h,this._lightPositionEC=new se,this._distance=0,this._lightCamera=e.lightCamera,this._shadowMapCamera=new Nz,this._shadowMapCullingVolume=void 0,this._sceneCamera=void 0,this._boundingSphere=new ae,this._isPointLight=y(e.isPointLight,!1),this._pointLightRadius=y(e.pointLightRadius,100),this._cascadesEnabled=this._isPointLight?!1:y(e.cascadesEnabled,!0),this._numberOfCascades=this._cascadesEnabled?y(e.numberOfCascades,4):0,this._fitNearFar=!0,this._maximumCascadeDistances=[25,150,700,Number.MAX_VALUE],this._textureSize=new H,this._isSpotLight=!1,this._cascadesEnabled?this._shadowMapCamera.frustum=new So:u(this._lightCamera.frustum.fov)&&(this._isSpotLight=!0),this._cascadeSplits=[new se,new se],this._cascadeMatrices=[new N,new N,new N,new N],this._cascadeDistances=new se;let i;this._isPointLight?i=6:this._cascadesEnabled?i=this._numberOfCascades:i=1,this._passes=new Array(i);for(let r=0;r<i;++r)this._passes[r]=new Vct(t);this.debugShow=!1,this.debugFreezeFrame=!1,this._debugFreezeFrame=!1,this._debugCascadeColors=!1,this._debugLightFrustum=void 0,this._debugCameraFrustum=void 0,this._debugCascadeFrustums=new Array(this._numberOfCascades),this._debugShadowViewCommand=void 0,this._usesDepthTexture=t.depthTexture,this._isPointLight&&(this._usesDepthTexture=!1),this._primitiveRenderState=void 0,this._terrainRenderState=void 0,this._pointRenderState=void 0,Vq(this),this._clearCommand=new ri({depth:1,color:new z}),this._clearPassState=new Ha(t),this._size=y(e.size,2048),this.size=this._size}Nm.MAXIMUM_DISTANCE=2e4;function Vct(e){this.camera=new Nz,this.passState=new Ha(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function Uq(e,t){return Ve.fromCache({cull:{enabled:!0,face:gi.BACK},depthTest:{enabled:!0},colorMask:{red:e,green:e,blue:e,alpha:e},depthMask:!0,polygonOffset:{enabled:t.polygonOffset,factor:t.polygonOffsetFactor,units:t.polygonOffsetUnits}})}function Vq(e){let t=!e._usesDepthTexture;e._primitiveRenderState=Uq(t,e._primitiveBias),e._terrainRenderState=Uq(t,e._terrainBias),e._pointRenderState=Uq(t,e._pointBias)}Nm.prototype.debugCreateRenderStates=function(){Vq(this)};Object.defineProperties(Nm.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this.dirty=this._enabled!==e,this._enabled=e}},normalOffset:{get:function(){return this._normalOffset},set:function(e){this.dirty=this._normalOffset!==e,this._normalOffset=e,this._terrainBias.normalOffset=e,this._primitiveBias.normalOffset=e,this._pointBias.normalOffset=e}},softShadows:{get:function(){return this._softShadows},set:function(e){this.dirty=this._softShadows!==e,this._softShadows=e}},size:{get:function(){return this._size},set:function(e){jct(this,e)}},outOfView:{get:function(){return this._outOfView}},shadowMapCullingVolume:{get:function(){return this._shadowMapCullingVolume}},passes:{get:function(){return this._passes}},isPointLight:{get:function(){return this._isPointLight}},debugCascadeColors:{get:function(){return this._debugCascadeColors},set:function(e){this.dirty=this._debugCascadeColors!==e,this._debugCascadeColors=e}}});function kq(e){let t=e._passes.length;for(let n=0;n<t;++n){let i=e._passes[n],r=i.framebuffer;u(r)&&!r.isDestroyed()&&r.destroy(),i.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function kct(e,t){let n=new Zl({context:t,width:e._textureSize.x,height:e._textureSize.y,format:Ec.DEPTH_COMPONENT16}),i=new Rt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:at.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,sampler:ln.NEAREST}),r=new Gs({context:t,depthRenderbuffer:n,colorTextures:[i],destroyAttachments:!1}),o=e._passes.length;for(let s=0;s<o;++s){let a=e._passes[s];a.framebuffer=r,a.passState.framebuffer=r}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function zct(e,t){let n=new Rt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:at.DEPTH_STENCIL,pixelDatatype:Ke.UNSIGNED_INT_24_8,sampler:ln.NEAREST}),i=new Gs({context:t,depthStencilTexture:n,destroyAttachments:!1}),r=e._passes.length;for(let o=0;o<r;++o){let s=e._passes[o];s.framebuffer=i,s.passState.framebuffer=i}e._shadowMapTexture=n,e._depthAttachment=n}function Hct(e,t){let n=new Zl({context:t,width:e._textureSize.x,height:e._textureSize.y,format:Ec.DEPTH_COMPONENT16}),i=new za({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:at.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,sampler:ln.NEAREST}),r=[i.negativeX,i.negativeY,i.negativeZ,i.positiveX,i.positiveY,i.positiveZ];for(let o=0;o<6;++o){let s=new Gs({context:t,depthRenderbuffer:n,colorTextures:[r[o]],destroyAttachments:!1}),a=e._passes[o];a.framebuffer=s,a.passState.framebuffer=s}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function kge(e,t){e._isPointLight?Hct(e,t):e._usesDepthTexture?zct(e,t):kct(e,t)}function Gct(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==te.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,Vq(e),kq(e),kge(e,t))}function Wct(e,t){(!u(e._passes[0].framebuffer)||e._shadowMapTexture.width!==e._textureSize.x)&&(kq(e),kge(e,t),Gct(e,t),zge(e,t))}function zge(e,t,n){n=y(n,0),(e._isPointLight||n===0)&&(e._clearCommand.framebuffer=e._passes[n].framebuffer,e._clearCommand.execute(t,e._clearPassState))}function jct(e,t){e._size=t;let n=e._passes,i=n.length,r=e._textureSize;if(e._isPointLight){t=zt.maximumCubeMapSize>=t?t:zt.maximumCubeMapSize,r.x=t,r.y=t;let o=new Xe(0,0,t,t);n[0].passState.viewport=o,n[1].passState.viewport=o,n[2].passState.viewport=o,n[3].passState.viewport=o,n[4].passState.viewport=o,n[5].passState.viewport=o}else i===1?(t=zt.maximumTextureSize>=t?t:zt.maximumTextureSize,r.x=t,r.y=t,n[0].passState.viewport=new Xe(0,0,t,t)):i===4&&(t=zt.maximumTextureSize>=t*2?t:zt.maximumTextureSize/2,r.x=t*2,r.y=t*2,n[0].passState.viewport=new Xe(0,0,t,t),n[1].passState.viewport=new Xe(t,0,t,t),n[2].passState.viewport=new Xe(0,t,t,t),n[3].passState.viewport=new Xe(t,t,t,t));e._clearPassState.viewport=new Xe(0,0,r.x,r.y);for(let o=0;o<i;++o){let s=n[o],a=s.passState.viewport,c=a.x/r.x,l=a.y/r.y,f=a.width/r.x,d=a.height/r.y;s.textureOffsets=new N(f,0,0,c,0,d,0,l,0,0,1,0,0,0,0,1)}}var qct=new Xe;function Yct(e,t){let n;e._isPointLight?n=`uniform samplerCube shadowMap_textureCube; +in vec2 v_textureCoordinates; +void main() +{ + vec2 uv = v_textureCoordinates; + vec3 dir; + + if (uv.y < 0.5) + { + if (uv.x < 0.333) + { + dir.x = -1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 1.0; + } + else if (uv.x < 0.666) + { + dir.y = -1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 1.0; + } + else + { + dir.z = -1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 1.0; + } + } + else + { + if (uv.x < 0.333) + { + dir.x = 1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 3.0; + } + else if (uv.x < 0.666) + { + dir.y = 1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 3.0; + } + else + { + dir.z = 1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 3.0; + } + } + + float shadow = czm_unpackDepth(czm_textureCube(shadowMap_textureCube, dir)); + out_FragColor = vec4(vec3(shadow), 1.0); +} +`:n=`uniform sampler2D shadowMap_texture; +in vec2 v_textureCoordinates; +void main() +{ +${e._usesDepthTexture?` float shadow = texture(shadowMap_texture, v_textureCoordinates).r; +`:` float shadow = czm_unpackDepth(texture(shadowMap_texture, v_textureCoordinates)); +`} out_FragColor = vec4(vec3(shadow), 1.0); +} +`;let i=t.createViewportQuadCommand(n,{uniformMap:{shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture}}});return i.pass=be.OVERLAY,i}function Xct(e,t){let n=t.context,i=t.context.drawingBufferWidth,r=t.context.drawingBufferHeight,o=Math.min(i,r)*.3,s=qct;s.x=i-o,s.y=0,s.width=o,s.height=o;let a=e._debugShadowViewCommand;u(a)||(a=Yct(e,n),e._debugShadowViewCommand=a),(!u(a.renderState)||!Xe.equals(a.renderState.viewport,s))&&(a.renderState=Ve.fromCache({viewport:Xe.clone(s)})),t.commandList.push(e._debugShadowViewCommand)}var Fm=new Array(8);Fm[0]=new se(-1,-1,-1,1);Fm[1]=new se(1,-1,-1,1);Fm[2]=new se(1,1,-1,1);Fm[3]=new se(-1,1,-1,1);Fm[4]=new se(-1,-1,1,1);Fm[5]=new se(1,-1,1,1);Fm[6]=new se(1,1,1,1);Fm[7]=new se(-1,1,1,1);var Ky=new N,zq=new Array(8);for(let e=0;e<8;++e)zq[e]=new se;function Kct(e,t){let n=new xt({geometry:new ld({minimum:new h(-.5,-.5,-.5),maximum:new h(.5,.5,.5)}),attributes:{color:kt.fromColor(t)}}),i=new xt({geometry:new r_({radius:.5}),attributes:{color:kt.fromColor(t)}});return new bn({geometryInstances:[n,i],appearance:new rn({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}var Jct=[z.RED,z.GREEN,z.BLUE,z.MAGENTA],Zct=new h;function Qct(e,t){Xct(e,t);let n=e.debugFreezeFrame&&!e._debugFreezeFrame;if(e._debugFreezeFrame=e.debugFreezeFrame,e.debugFreezeFrame&&(n&&(e._debugCameraFrustum=e._debugCameraFrustum&&e._debugCameraFrustum.destroy(),e._debugCameraFrustum=new Om({camera:e._sceneCamera,color:z.CYAN,updateOnChange:!1})),e._debugCameraFrustum.update(t)),e._cascadesEnabled){if(e.debugFreezeFrame){n&&(e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=new Om({camera:e._shadowMapCamera,color:z.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t);for(let i=0;i<e._numberOfCascades;++i)n&&(e._debugCascadeFrustums[i]=e._debugCascadeFrustums[i]&&e._debugCascadeFrustums[i].destroy(),e._debugCascadeFrustums[i]=new Om({camera:e._passes[i].camera,color:Jct[i],updateOnChange:!1})),e._debugCascadeFrustums[i].update(t)}}else if(e._isPointLight){if(!u(e._debugLightFrustum)||e._needsUpdate){let i=e._shadowMapCamera.positionWC,r=Le.IDENTITY,o=e._pointLightRadius*2,s=h.fromElements(o,o,o,Zct),a=N.fromTranslationQuaternionRotationScale(i,r,s,Ky);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=Kct(a,z.YELLOW)}e._debugLightFrustum.update(t)}else(!u(e._debugLightFrustum)||e._needsUpdate)&&(e._debugLightFrustum=new Om({camera:e._shadowMapCamera,color:z.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function Nz(){this.viewMatrix=new N,this.inverseViewMatrix=new N,this.frustum=void 0,this.positionCartographic=new me,this.positionWC=new h,this.directionWC=h.clone(h.UNIT_Z),this.upWC=h.clone(h.UNIT_Y),this.rightWC=h.clone(h.UNIT_X),this.viewProjectionMatrix=new N}Nz.prototype.clone=function(e){N.clone(e.viewMatrix,this.viewMatrix),N.clone(e.inverseViewMatrix,this.inverseViewMatrix),this.frustum=e.frustum.clone(this.frustum),me.clone(e.positionCartographic,this.positionCartographic),h.clone(e.positionWC,this.positionWC),h.clone(e.directionWC,this.directionWC),h.clone(e.upWC,this.upWC),h.clone(e.rightWC,this.rightWC)};var $ct=new N(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);Nz.prototype.getViewProjection=function(){let e=this.viewMatrix,t=this.frustum.projectionMatrix;return N.multiply(t,e,this.viewProjectionMatrix),N.multiply($ct,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var elt=new Array(5),tlt=new wi,nlt=new Array(4),Hge=new h,Gge=new h;function ilt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,r=i.frustum.near,o=i.frustum.far,s=e._numberOfCascades,a,c=o-r,l=o/r,f=.9,d=!1;t.shadowState.closestObjectSize<200&&(d=!0,f=.9);let p=nlt,g=elt;for(g[0]=r,g[s]=o,a=0;a<s;++a){let L=(a+1)/s,_=r*Math.pow(l,L),b=r+c*L,w=P.lerp(b,_,f);g[a+1]=w,p[a]=w-g[a]}if(d){for(a=0;a<s;++a)p[a]=Math.min(p[a],e._maximumCascadeDistances[a]);let L=g[0];for(a=0;a<s-1;++a)L+=p[a],g[a+1]=L}se.unpack(g,0,e._cascadeSplits[0]),se.unpack(g,1,e._cascadeSplits[1]),se.unpack(p,0,e._cascadeDistances);let m=n.frustum,A=m.left,x=m.right,C=m.bottom,T=m.top,E=m.near,S=m.far,v=n.positionWC,D=n.directionWC,M=n.upWC,O=i.frustum.clone(tlt),B=n.getViewProjection();for(a=0;a<s;++a){O.near=g[a],O.far=g[a+1];let L=N.multiply(O.projectionMatrix,i.viewMatrix,Ky),_=N.inverse(L,Ky),b=N.multiply(B,_,Ky),w=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,Hge),I=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,Gge);for(let G=0;G<8;++G){let U=se.clone(Fm[G],zq[G]);N.multiplyByVector(b,U,U),h.divideByScalar(U,U.w,U),h.minimumByComponent(U,w,w),h.maximumByComponent(U,I,I)}w.x=Math.max(w.x,0),w.y=Math.max(w.y,0),w.z=0,I.x=Math.min(I.x,1),I.y=Math.min(I.y,1),I.z=Math.min(I.z,1);let R=e._passes[a],F=R.camera;F.clone(n);let k=F.frustum;k.left=A+w.x*(x-A),k.right=A+I.x*(x-A),k.bottom=C+w.y*(T-C),k.top=C+I.y*(T-C),k.near=E+w.z*(S-E),k.far=E+I.z*(S-E),R.cullingVolume=F.frustum.computeCullingVolume(v,D,M);let V=e._cascadeMatrices[a];N.multiply(F.getViewProjection(),i.inverseViewMatrix,V),N.multiply(R.textureOffsets,V,V)}}var rlt=new N,olt=new h,slt=new h,Uge=new h;function alt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,r=N.multiply(i.frustum.projectionMatrix,i.viewMatrix,Ky),o=N.inverse(r,Ky),s=n.directionWC,a=i.directionWC;h.equalsEpsilon(s,a,P.EPSILON10)&&(a=i.upWC);let c=h.cross(s,a,olt);a=h.cross(c,s,slt),h.normalize(a,a),h.normalize(c,c);let l=h.fromElements(0,0,0,Uge),f=N.computeView(l,s,a,c,rlt),d=N.multiply(f,o,Ky),p=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,Hge),g=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,Gge);for(let S=0;S<8;++S){let v=se.clone(Fm[S],zq[S]);N.multiplyByVector(d,v,v),h.divideByScalar(v,v.w,v),h.minimumByComponent(v,p,p),h.maximumByComponent(v,g,g)}g.z+=1e3,p.z-=10;let m=Uge;m.x=-(.5*(p.x+g.x)),m.y=-(.5*(p.y+g.y)),m.z=-g.z;let A=N.fromTranslation(m,Ky);f=N.multiply(A,f,f);let x=.5*(g.x-p.x),C=.5*(g.y-p.y),T=g.z-p.z,E=n.frustum;E.left=-x,E.right=x,E.bottom=-C,E.top=C,E.near=.01,E.far=T,N.clone(f,n.viewMatrix),N.inverse(f,n.inverseViewMatrix),N.getTranslation(n.inverseViewMatrix,n.positionWC),t.mapProjection.ellipsoid.cartesianToCartographic(n.positionWC,n.positionCartographic),h.clone(s,n.directionWC),h.clone(a,n.upWC),h.clone(c,n.rightWC)}var clt=[new h(-1,0,0),new h(0,-1,0),new h(0,0,-1),new h(1,0,0),new h(0,1,0),new h(0,0,1)],llt=[new h(0,-1,0),new h(0,0,-1),new h(0,-1,0),new h(0,-1,0),new h(0,0,1),new h(0,-1,0)],ult=[new h(0,0,1),new h(1,0,0),new h(-1,0,0),new h(0,0,-1),new h(1,0,0),new h(1,0,0)];function flt(e,t){let n=new wi;n.fov=P.PI_OVER_TWO,n.near=1,n.far=e._pointLightRadius,n.aspectRatio=1;for(let i=0;i<6;++i){let r=e._passes[i].camera;r.positionWC=e._shadowMapCamera.positionWC,r.positionCartographic=t.mapProjection.ellipsoid.cartesianToCartographic(r.positionWC,r.positionCartographic),r.directionWC=clt[i],r.upWC=llt[i],r.rightWC=ult[i],N.computeView(r.positionWC,r.directionWC,r.upWC,r.rightWC,r.viewMatrix),N.inverse(r.viewMatrix,r.inverseViewMatrix),r.frustum=n}}var dlt=new h,hlt=new h,Wge=new ae,Vge=Wge.center;function mlt(e,t){let n=e._sceneCamera,i=e._shadowMapCamera,r=Wge;if(e._cascadesEnabled){if(n.frustum.near>=e.maximumDistance){e._outOfView=!0,e._needsUpdate=!1;return}let o=t.mapProjection.ellipsoid.geodeticSurfaceNormal(n.positionWC,dlt),s=h.negate(i.directionWC,hlt),a=h.dot(o,s);if(e.fadingEnabled){let c=P.clamp(a/.1,0,1);e._darkness=P.lerp(1,e.darkness,c)}else e._darkness=e.darkness;if(a<0){e._outOfView=!0,e._needsUpdate=!1;return}e._needsUpdate=!0,e._outOfView=!1}else if(e._isPointLight)r.center=i.positionWC,r.radius=e._pointLightRadius,e._outOfView=t.cullingVolume.computeVisibility(r)===Qt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(r),ae.clone(r,e._boundingSphere);else{let o=i.frustum.far/2,s=h.add(i.positionWC,h.multiplyByScalar(i.directionWC,o,Vge),Vge);r.center=s,r.radius=o,e._outOfView=t.cullingVolume.computeVisibility(r)===Qt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(r),ae.clone(r,e._boundingSphere)}}function plt(e,t){let n=t.camera,i=e._lightCamera,r=e._sceneCamera,o=e._shadowMapCamera;e._cascadesEnabled?h.clone(i.directionWC,o.directionWC):e._isPointLight?h.clone(i.positionWC,o.positionWC):o.clone(i);let s=e._lightDirectionEC;N.multiplyByPointAsVector(n.viewMatrix,o.directionWC,s),h.normalize(s,s),h.negate(s,s),N.multiplyByPoint(n.viewMatrix,o.positionWC,e._lightPositionEC),e._lightPositionEC.w=e._pointLightRadius;let a,c;e._fitNearFar?(a=Math.min(t.shadowState.nearPlane,e.maximumDistance),c=Math.min(t.shadowState.farPlane,e.maximumDistance),c=Math.max(c,a+1)):(a=n.frustum.near,c=e.maximumDistance),e._sceneCamera=fr.clone(n,r),n.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=a,e._sceneCamera.frustum.far=c,e._distance=c-a,mlt(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}Nm.prototype.update=function(e){if(plt(this,e),this._needsUpdate)if(Wct(this,e.context),this._isPointLight&&flt(this,e),this._cascadesEnabled&&(alt(this,e),this._numberOfCascades>1&&ilt(this,e)),this._isPointLight)this._shadowMapCullingVolume=ts.fromBoundingSphere(this._boundingSphere);else{let t=this._shadowMapCamera,n=t.positionWC,i=t.directionWC,r=t.upWC;this._shadowMapCullingVolume=t.frustum.computeCullingVolume(n,i,r),this._passes.length===1&&this._passes[0].camera.clone(t)}if(this._passes.length===1){let t=this._sceneCamera.inverseViewMatrix;N.multiply(this._shadowMapCamera.getViewProjection(),t,this._shadowMapMatrix)}this.debugShow&&Qct(this,e)};Nm.prototype.updatePass=function(e,t){zge(this,e,t)};var _lt=new H;function jge(e,t,n){let i=e._isPointLight?e._pointBias:n?e._terrainBias:e._primitiveBias,r={shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture},shadowMap_matrix:function(){return e._shadowMapMatrix},shadowMap_cascadeSplits:function(){return e._cascadeSplits},shadowMap_cascadeMatrices:function(){return e._cascadeMatrices},shadowMap_lightDirectionEC:function(){return e._lightDirectionEC},shadowMap_lightPositionEC:function(){return e._lightPositionEC},shadowMap_cascadeDistances:function(){return e._cascadeDistances},shadowMap_texelSizeDepthBiasAndNormalShadingSmooth:function(){let o=_lt;return o.x=1/e._textureSize.x,o.y=1/e._textureSize.y,se.fromElements(o.x,o.y,i.depthBias,i.normalShadingSmooth,this.combinedUniforms1)},shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness:function(){return se.fromElements(i.normalOffsetScale,e._distance,e.maximumDistance,e._darkness,this.combinedUniforms2)},combinedUniforms1:new se,combinedUniforms2:new se};return _t(t,r,!1)}function glt(e,t,n,i,r,o){let s,a,c;if(u(o)&&(s=o.shaderProgram,a=o.renderState,c=o.uniformMap),o=nt.shallowClone(n,o),o.castShadows=!0,o.receiveShadows=!1,!u(s)||r!==n.shaderProgram.id||t){let l=n.shaderProgram,f=n.pass===be.GLOBE,d=n.pass!==be.TRANSLUCENT,p=e._isPointLight,g=e._usesDepthTexture,m=Lm.getShadowCastShaderKeyword(p,f,g,d);if(s=i.shaderCache.getDerivedShaderProgram(l,m),!u(s)){let x=l.vertexShaderSource,C=l.fragmentShaderSource,T=Lm.createShadowCastVertexShader(x,p,f),E=Lm.createShadowCastFragmentShader(C,p,g,d);s=i.shaderCache.createDerivedShaderProgram(l,m,{vertexShaderSource:T,fragmentShaderSource:E,attributeLocations:l._attributeLocations})}a=e._primitiveRenderState,p?a=e._pointRenderState:f&&(a=e._terrainRenderState),n.renderState.cull.enabled||(a=We(a,!1),a.cull=We(a.cull,!1),a.cull.enabled=!1,a=Ve.fromCache(a)),c=jge(e,n.uniformMap,f)}return o.shaderProgram=s,o.renderState=a,o.uniformMap=c,o}Nm.createReceiveDerivedCommand=function(e,t,n,i,r){u(r)||(r={});let o=e.length>0,s=t.shaderProgram,a=s.vertexShaderSource,c=s.fragmentShaderSource,l=t.pass===be.GLOBE,f=!1;if(l&&(f=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&o){let d,p;u(r.receiveCommand)&&(d=r.receiveCommand.shaderProgram,p=r.receiveCommand.uniformMap),r.receiveCommand=nt.shallowClone(t,r.receiveCommand),r.castShadows=!1,r.receiveShadows=!0;let g=r.receiveShaderCastShadows!==t.castShadows,m=r.receiveShaderProgramId!==t.shaderProgram.id;if(!u(d)||m||n||g){let A=Lm.getShadowReceiveShaderKeyword(e[0],t.castShadows,l,f);if(d=i.shaderCache.getDerivedShaderProgram(s,A),!u(d)){let x=Lm.createShadowReceiveVertexShader(a,l,f),C=Lm.createShadowReceiveFragmentShader(c,e[0],t.castShadows,l,f);d=i.shaderCache.createDerivedShaderProgram(s,A,{vertexShaderSource:x,fragmentShaderSource:C,attributeLocations:s._attributeLocations})}p=jge(e[0],t.uniformMap,l)}r.receiveCommand.shaderProgram=d,r.receiveCommand.uniformMap=p,r.receiveShaderProgramId=t.shaderProgram.id,r.receiveShaderCastShadows=t.castShadows}return r};Nm.createCastDerivedCommand=function(e,t,n,i,r){if(u(r)||(r={}),t.castShadows){let o=r.castCommands;u(o)||(o=r.castCommands=[]);let s=r.castShaderProgramId,a=e.length;o.length=a;for(let c=0;c<a;++c)o[c]=glt(e[c],n,t,i,s,o[c]);r.castShaderProgramId=t.shaderProgram.id}return r};Nm.prototype.isDestroyed=function(){return!1};Nm.prototype.destroy=function(){kq(this),this._debugLightFrustum=this._debugLightFrustum&&this._debugLightFrustum.destroy(),this._debugCameraFrustum=this._debugCameraFrustum&&this._debugCameraFrustum.destroy(),this._debugShadowViewCommand=this._debugShadowViewCommand&&this._debugShadowViewCommand.shaderProgram&&this._debugShadowViewCommand.shaderProgram.destroy();for(let e=0;e<this._numberOfCascades;++e)this._debugCascadeFrustums[e]=this._debugCascadeFrustums[e]&&this._debugCascadeFrustums[e].destroy();return ue(this)};var G_=Nm;var oN=`uniform sampler2D u_opaqueDepthTexture; +uniform sampler2D u_translucentDepthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float opaqueDepth = texture(u_opaqueDepthTexture, v_textureCoordinates).r; + float translucentDepth = texture(u_translucentDepthTexture, v_textureCoordinates).r; + translucentDepth = czm_branchFreeTernary(translucentDepth > opaqueDepth, 1.0, translucentDepth); + out_FragColor = czm_packDepth(translucentDepth); +} +`;var lC=`uniform sampler2D colorTexture; + +#ifdef DEBUG_SHOW_DEPTH +uniform sampler2D u_packedTranslucentDepth; +#endif + +in vec2 v_textureCoordinates; + +void main() +{ +#ifdef DEBUG_SHOW_DEPTH + if (v_textureCoordinates.x < 0.5) + { + out_FragColor.rgb = vec3(czm_unpackDepth(texture(u_packedTranslucentDepth, v_textureCoordinates))); + out_FragColor.a = 1.0; + } +#else + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef PICK + if (color == vec4(0.0)) + { + discard; + } +#else + // Reverse premultiplication process to get the correct composited result of the classification primitives + color.rgb /= color.a; +#endif + out_FragColor = color; +#endif +} +`;var ylt=!1;function Jy(e){this._drawClassificationFBO=new di({createDepthAttachments:!1}),this._accumulationFBO=new di({createDepthAttachments:!1}),this._packFBO=new di,this._opaqueDepthStencilTexture=void 0,this._textureToComposite=void 0,this._translucentDepthStencilTexture=void 0,this._packDepthCommand=void 0,this._accumulateCommand=void 0,this._compositeCommand=void 0,this._copyCommand=void 0,this._clearColorCommand=new ri({color:new z(0,0,0,0),owner:this}),this._clearDepthStencilCommand=new ri({depth:1,stencil:0,owner:this}),this._supported=e.depthTexture,this._viewport=new Xe,this._rsDepth=void 0,this._rsAccumulate=void 0,this._rsComp=void 0,this._useScissorTest=void 0,this._scissorRectangle=void 0,this._hasTranslucentDepth=!1,this._frustumsDrawn=0}Object.defineProperties(Jy.prototype,{hasTranslucentDepth:{get:function(){return this._hasTranslucentDepth}}});function qge(e){e._textureToComposite=void 0,e._translucentDepthStencilTexture=e._translucentDepthStencilTexture&&!e._translucentDepthStencilTexture.isDestroyed()&&e._translucentDepthStencilTexture.destroy()}function Yge(e){e._drawClassificationFBO.destroy(),e._accumulationFBO.destroy(),e._packFBO.destroy()}function Alt(e,t,n,i){qge(e),e._translucentDepthStencilTexture=new Rt({context:t,width:n,height:i,pixelFormat:at.DEPTH_STENCIL,pixelDatatype:Ke.UNSIGNED_INT_24_8,sampler:ln.NEAREST})}function xlt(e,t,n,i){Yge(e),e._drawClassificationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._drawClassificationFBO.update(t,n,i),e._accumulationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._accumulationFBO.update(t,n,i),e._packFBO.update(t,n,i)}function Clt(e,t,n,i){if(!e.isSupported())return;e._opaqueDepthStencilTexture=i;let r=e._opaqueDepthStencilTexture.width,o=e._opaqueDepthStencilTexture.height;e._drawClassificationFBO.isDirty(r,o)&&(Alt(e,t,r,o),xlt(e,t,r,o));let s,a;if(u(e._packDepthCommand)||(s=new ke({sources:[oN]}),a={u_opaqueDepthTexture:function(){return e._opaqueDepthStencilTexture},u_translucentDepthTexture:function(){return e._translucentDepthStencilTexture}},e._packDepthCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),!u(e._compositeCommand)){s=new ke({sources:[lC]}),a={colorTexture:function(){return e._textureToComposite}},ylt&&(s.defines=["DEBUG_SHOW_DEPTH"],a.u_packedTranslucentDepth=function(){return e._packFBO.getColorTexture()}),e._compositeCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e});let f=e._compositeCommand,d=f.shaderProgram,p=t.shaderCache.createDerivedShaderProgram(d,"pick",{vertexShaderSource:d.vertexShaderSource,fragmentShaderSource:new ke({sources:s.sources,defines:["PICK"]}),attributeLocations:d._attributeLocations}),g=nt.shallowClone(f);g.shaderProgram=p,f.derivedCommands.pick=g}u(e._copyCommand)||(s=new ke({sources:[lC]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._copyCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),u(e._accumulateCommand)||(s=new ke({sources:[lC]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._accumulateCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),e._viewport.width=r,e._viewport.height=o;let c=!Xe.equals(e._viewport,n.viewport),l=c!==e._useScissorTest;e._useScissorTest=c,Xe.equals(e._scissorRectangle,n.viewport)||(e._scissorRectangle=Xe.clone(n.viewport,e._scissorRectangle),l=!0),(!u(e._rsDepth)||!Xe.equals(e._viewport,e._rsDepth.viewport)||l)&&(e._rsDepth=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),u(e._packDepthCommand)&&(e._packDepthCommand.renderState=e._rsDepth),(!u(e._rsAccumulate)||!Xe.equals(e._viewport,e._rsAccumulate.viewport)||l)&&(e._rsAccumulate=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:zn.EQUAL,reference:Ft.CESIUM_3D_TILE_MASK}})),u(e._accumulateCommand)&&(e._accumulateCommand.renderState=e._rsAccumulate),(!u(e._rsComp)||!Xe.equals(e._viewport,e._rsComp.viewport)||l)&&(e._rsComp=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND})),u(e._compositeCommand)&&(e._compositeCommand.renderState=e._rsComp,e._compositeCommand.derivedCommands.pick.renderState=e._rsComp)}Jy.prototype.executeTranslucentCommands=function(e,t,n,i,r){let o=i.length,s,a,c=e.frameState.useLogDepth,l=e.context,f=n.framebuffer;for(a=0;a<o;++a)if(s=i[a],s=c?s.derivedCommands.logDepth.command:s,s.depthForTranslucentClassification){this._hasTranslucentDepth=!0;break}if(this._hasTranslucentDepth){for(Clt(this,l,n,r),n.framebuffer=this._drawClassificationFBO.framebuffer,this._clearDepthStencilCommand.execute(l,n),a=0;a<o;++a){if(s=i[a],s=c?s.derivedCommands.logDepth.command:s,!s.depthForTranslucentClassification)continue;let d=s.derivedCommands.depth.depthOnlyCommand;t(d,e,l,n)}this._frustumsDrawn+=this._hasTranslucentDepth?1:0,this._hasTranslucentDepth&&(n.framebuffer=this._packFBO.framebuffer,this._packDepthCommand.execute(l,n)),n.framebuffer=f}};Jy.prototype.executeClassificationCommands=function(e,t,n,i){if(!this._hasTranslucentDepth)return;let r=e.context,o=r.uniformState,s=n.framebuffer;this._frustumsDrawn===2&&(n.framebuffer=this._accumulationFBO.framebuffer,this._copyCommand.execute(r,n)),n.framebuffer=this._drawClassificationFBO.framebuffer,this._frustumsDrawn>1&&this._clearColorCommand.execute(r,n),o.updatePass(be.CESIUM_3D_TILE_CLASSIFICATION);let a=o.globeDepthTexture;o.globeDepthTexture=this._packFBO.getColorTexture();let c=i.commands[be.CESIUM_3D_TILE_CLASSIFICATION],l=i.indices[be.CESIUM_3D_TILE_CLASSIFICATION];for(let f=0;f<l;++f)t(c[f],e,r,n);o.globeDepthTexture=a,n.framebuffer=s,this._frustumsDrawn!==1&&(n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(r,n),n.framebuffer=s)};Jy.prototype.execute=function(e,t){if(!this._hasTranslucentDepth)return;this._frustumsDrawn===1?this._textureToComposite=this._drawClassificationFBO.getColorTexture():this._textureToComposite=this._accumulationFBO.getColorTexture(),(e.frameState.passes.pick?this._compositeCommand.derivedCommands.pick:this._compositeCommand).execute(e.context,t),Tlt(this,e,t)};function Tlt(e,t,n){if(!e._hasTranslucentDepth)return;let i=n.framebuffer;n.framebuffer=e._drawClassificationFBO.framebuffer,e._clearColorCommand.execute(t._context,n),n.framebuffer=i,e._frustumsDrawn>1&&(n.framebuffer=e._accumulationFBO.framebuffer,e._clearColorCommand.execute(t._context,n)),e._hasTranslucentDepth=!1,e._frustumsDrawn=0}Jy.prototype.isSupported=function(){return this._supported};Jy.prototype.isDestroyed=function(){return!1};Jy.prototype.destroy=function(){return qge(this),Yge(this),u(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),u(this._packDepthCommand)&&(this._packDepthCommand.shaderProgram=this._packDepthCommand.shaderProgram&&this._packDepthCommand.shaderProgram.destroy()),ue(this)};var sN=Jy;function Elt(){this.command=void 0,this.near=void 0,this.far=void 0}function Fz(e,t,n){let i=e.context,r;i.depthTexture&&(r=new JL);let o;e._useOIT&&i.depthTexture&&(o=new $L(i));let s=new Ha(i);s.viewport=Xe.clone(n),this.camera=t,this._cameraClone=fr.clone(t),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=n,this.passState=s,this.pickFramebuffer=new rN(i),this.pickDepthFramebuffer=new tN,this.sceneFramebuffer=new aC,this.globeDepth=r,this.globeTranslucencyFramebuffer=new ZL,this.oit=o,this.translucentTileClassification=new sN(i),this.pickDepths=[],this.frustumCommandsList=[],this.debugFrustumStatistics=void 0,this._commandExtents=[]}var Xge=new h,Kge=new h;function blt(e,t){let n=Math.max(Math.abs(e.x),Math.abs(t.x)),i=Math.max(Math.abs(e.y),Math.abs(t.y)),r=Math.max(Math.abs(e.z),Math.abs(t.z));return Math.max(Math.max(n,i),r)}function Slt(e,t,n){let i=1/Math.max(1,blt(e.position,t.position));return h.multiplyByScalar(e.position,i,Xge),h.multiplyByScalar(t.position,i,Kge),h.equalsEpsilon(Xge,Kge,n)&&h.equalsEpsilon(e.direction,t.direction,n)&&h.equalsEpsilon(e.up,t.up,n)&&h.equalsEpsilon(e.right,t.right,n)&&N.equalsEpsilon(e.transform,t.transform,n)&&e.frustum.equalsEpsilon(t.frustum,n)}Fz.prototype.checkForCameraUpdates=function(e){let t=this.camera,n=this._cameraClone;return Slt(t,n,P.EPSILON15)?(this._cameraStartFired&&yi()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=yi(),fr.clone(t,n),!0)};function vlt(e,t,n,i){let r=t.frameState,o=r.camera,s=r.useLogDepth?t.logarithmicDepthFarToNearRatio:t.farToNearRatio,a=t.mode===ne.SCENE2D,c=t.nearToFarDistance2D;i*=1+P.EPSILON2,n=Math.min(Math.max(n,o.frustum.near),o.frustum.far),i=Math.max(Math.min(i,o.frustum.far),n);let l;a?(i=Math.min(i,o.position.z+t.nearToFarDistance2D),n=Math.min(n,i),l=Math.ceil(Math.max(1,i-n)/t.nearToFarDistance2D)):l=Math.ceil(Math.log(i/n)/Math.log(s));let f=e.frustumCommandsList;f.length=l;for(let d=0;d<l;++d){let p,g;a?(p=Math.min(i-c,n+d*c),g=Math.min(i,p+c)):(p=Math.max(n,Math.pow(s,d)*n),g=Math.min(i,s*p));let m=f[d];u(m)?(m.near=p,m.far=g):m=f[d]=new KL(p,g)}}function wlt(e,t,n,i,r){t.debugShowFrustums&&(n.debugOverlappingFrustums=0);let o=e.frustumCommandsList,s=o.length;for(let a=0;a<s;++a){let c=o[a],l=c.near,f=c.far;if(i>f)continue;if(r<l)break;let d=n.pass,p=c.indices[d]++;if(c.commands[d][p]=n,t.debugShowFrustums&&(n.debugOverlappingFrustums|=1<<a),n.executeInClosestFrustum)break}if(t.debugShowFrustums){let a=e.debugFrustumStatistics.commandsInFrustums;a[n.debugOverlappingFrustums]=u(a[n.debugOverlappingFrustums])?a[n.debugOverlappingFrustums]+1:1,++e.debugFrustumStatistics.totalCommands}t.updateDerivedCommands(n)}var Jge=new ts,Dlt=new Sc;Fz.prototype.createPotentiallyVisibleSet=function(e){let t=e.frameState,n=t.camera,i=n.directionWC,r=n.positionWC,o=e._computeCommandList,s=e._overlayCommandList,a=t.commandList;e.debugShowFrustums&&(this.debugFrustumStatistics={totalCommands:0,commandsInFrustums:{}});let c=this.frustumCommandsList,l=c.length,f=be.NUMBER_OF_PASSES;for(let b=0;b<l;++b)for(let w=0;w<f;++w)c[b].indices[w]=0;o.length=0,s.length=0;let d=this._commandExtents,p=d.length,g=0,m=+Number.MAX_VALUE,A=-Number.MAX_VALUE,x=t.shadowState.shadowsEnabled,C=+Number.MAX_VALUE,T=-Number.MAX_VALUE,E=Number.MAX_VALUE,S=t.mode===ne.SCENE3D?t.occluder:void 0,v=t.cullingVolume,D=Jge.planes;for(let b=0;b<5;++b)D[b]=v.planes[b];v=Jge;let M=a.length;for(let b=0;b<M;++b){let w=a[b],I=w.pass;if(I===be.COMPUTE)o.push(w);else if(I===be.OVERLAY)s.push(w);else{let R,F,k=w.boundingVolume;if(u(k)){if(!e.isVisible(w,v,S))continue;let G=k.computePlaneDistances(r,i,Dlt);if(R=G.start,F=G.stop,m=Math.min(m,R),A=Math.max(A,F),x&&w.receiveShadows&&R<G_.MAXIMUM_DISTANCE&&!(I===be.GLOBE&&R<-100&&F>100)){let U=F-R;I!==be.GLOBE&&R<100&&(E=Math.min(E,U)),C=Math.min(C,R),T=Math.max(T,F)}}else w instanceof ri?(R=n.frustum.near,F=n.frustum.far):(R=n.frustum.near,F=n.frustum.far,m=Math.min(m,R),A=Math.max(A,F));let V=d[g];u(V)||(V=d[g]=new Elt),V.command=w,V.near=R,V.far=F,g++}}x&&(C=Math.min(Math.max(C,n.frustum.near),n.frustum.far),T=Math.max(Math.min(T,n.frustum.far),C)),x&&(t.shadowState.nearPlane=C,t.shadowState.farPlane=T,t.shadowState.closestObjectSize=E),vlt(this,e,m,A);let O,B;for(O=0;O<g;O++)B=d[O],wlt(this,e,B.command,B.near,B.far);if(g<p)for(O=g;O<p&&(B=d[O],!!u(B.command));O++)B.command=void 0;let L=c.length,_=t.frustumSplits;_.length=L+1;for(let b=0;b<L;++b)_[b]=c[b].near,b===L-1&&(_[b+1]=c[b].far)};Fz.prototype.destroy=function(){this.pickFramebuffer=this.pickFramebuffer&&this.pickFramebuffer.destroy(),this.pickDepthFramebuffer=this.pickDepthFramebuffer&&this.pickDepthFramebuffer.destroy(),this.sceneFramebuffer=this.sceneFramebuffer&&this.sceneFramebuffer.destroy(),this.globeDepth=this.globeDepth&&this.globeDepth.destroy(),this.oit=this.oit&&this.oit.destroy(),this.translucentTileClassification=this.translucentTileClassification&&this.translucentTileClassification.destroy(),this.globeTranslucencyFramebuffer=this.globeTranslucencyFramebuffer&&this.globeTranslucencyFramebuffer.destroy();let e,t=this.pickDepths,n=t.length;for(e=0;e<n;++e)t[e].destroy()};var uC=Fz;var Qge=.1,Ilt=new Gf({pass:Br.MOST_DETAILED_PRELOAD}),Plt=new Gf({pass:Br.MOST_DETAILED_PICK}),Hq=new Gf({pass:Br.PICK});function Ia(e){this._mostDetailedRayPicks=[],this.pickRenderStateCache={},this._pickPositionCache={},this._pickPositionCacheDirty=!1;let t=new Xe(0,0,1,1),n=new fr(e);n.frustum=new en({width:Qge,aspectRatio:1,near:.1}),this._pickOffscreenView=new uC(e,n,t)}Ia.prototype.update=function(){this._pickPositionCacheDirty=!0};Ia.prototype.getPickDepth=function(e,t){let n=e.view.pickDepths,i=n[t];return u(i)||(i=new XL,n[t]=i),i};var Olt=new So,Mlt=new h,Uz=new h,Rlt=new H,Blt=new N;function Llt(e,t,n,i,r){let o=e.camera,s=o.frustum,a=s.offCenterFrustum;u(a)&&(s=a);let c=2*(t.x-r.x)/r.width-1;c*=(s.right-s.left)*.5;let l=2*(r.height-t.y-r.y)/r.height-1;l*=(s.top-s.bottom)*.5;let f=N.clone(o.transform,Blt);o._setTransform(N.IDENTITY);let d=h.clone(o.position,Mlt);h.multiplyByScalar(o.right,c,Uz),h.add(Uz,d,d),h.multiplyByScalar(o.up,l,Uz),h.add(Uz,d,d),o._setTransform(f),e.mode===ne.SCENE2D&&h.fromElements(d.z,d.x,d.y,d);let p=s.getPixelDimensions(r.width,r.height,1,1,Rlt),g=Olt;return g.right=p.x*.5,g.left=-g.right,g.top=p.y*.5,g.bottom=-g.top,g.near=s.near,g.far=s.far,g.computeCullingVolume(d,o.directionWC,o.upWC)}var Nlt=new $c,Flt=new H;function Ult(e,t,n,i,r){let o=e.camera,s=o.frustum,a=s.near,c=Math.tan(s.fovy*.5),l=s.aspectRatio*c,f=2*(t.x-r.x)/r.width-1,d=2*(r.height-t.y-r.y)/r.height-1,p=f*a*l,g=d*a*c,m=s.getPixelDimensions(r.width,r.height,1,1,Flt),A=m.x*n*.5,x=m.y*i*.5,C=Nlt;return C.top=g+x,C.bottom=g-x,C.right=p+A,C.left=p-A,C.near=a,C.far=s.far,C.computeCullingVolume(o.positionWC,o.directionWC,o.upWC)}function $ge(e,t,n,i,r){let o=e.camera.frustum;return o instanceof en||o instanceof So?Llt(e,t,n,i,r):Ult(e,t,n,i,r)}var ES=3,aN=3,Um=new Xe(0,0,ES,aN),eye=new H,Gq=new z(0,0,0,0);Ia.prototype.pick=function(e,t,n,i){ES=y(n,3),aN=y(i,ES);let r=e.context,o=r.uniformState,s=e.frameState,a=e.defaultView;e.view=a;let c=a.viewport;c.x=0,c.y=0,c.width=r.drawingBufferWidth,c.height=r.drawingBufferHeight;let l=a.passState;l.viewport=Xe.clone(c,l.viewport);let f=Zi.transformWindowToDrawingBuffer(e,t,eye);e.jobScheduler.disableThisFrame(),e.updateFrameState(),s.cullingVolume=$ge(e,f,ES,aN,c),s.invertClassification=!1,s.passes.pick=!0,s.tilesetPassState=Hq,o.update(s),e.updateEnvironment(),Um.x=f.x-(ES-1)*.5,Um.y=e.drawingBufferHeight-f.y-(aN-1)*.5,Um.width=ES,Um.height=aN,l=a.pickFramebuffer.begin(Um,a.viewport),e.updateAndExecuteCommands(l,Gq),e.resolveFramebuffers(l);let d=a.pickFramebuffer.end(Um);return r.endFrame(),d};function Vlt(e,t){let n=e.context,i=e.frameState,r=e.environmentState,o=e.defaultView;e.view=o;let s=o.viewport;s.x=0,s.y=0,s.width=n.drawingBufferWidth,s.height=n.drawingBufferHeight;let a=o.passState;a.viewport=Xe.clone(s,a.viewport),e.clearPasses(i.passes),i.passes.pick=!0,i.passes.depth=!0,i.cullingVolume=$ge(e,t,1,1,s),i.tilesetPassState=Hq,e.updateEnvironment(),r.renderTranslucentDepthForPick=!0,a=o.pickDepthFramebuffer.update(n,t,s),e.updateAndExecuteCommands(a,Gq),e.resolveFramebuffers(a),n.endFrame()}var klt=new wi,zlt=new $c,Hlt=new en,Glt=new So;Ia.prototype.pickPositionWorldCoordinates=function(e,t,n){if(!e.useDepthPicking)return;let i=t.toString();if(this._pickPositionCacheDirty)this._pickPositionCache={},this._pickPositionCacheDirty=!1;else if(this._pickPositionCache.hasOwnProperty(i))return h.clone(this._pickPositionCache[i],n);let r=e.frameState,o=e.context,s=o.uniformState,a=e.defaultView;e.view=a;let c=Zi.transformWindowToDrawingBuffer(e,t,eye);e.pickTranslucentDepth?Vlt(e,c):(e.updateFrameState(),s.update(r),e.updateEnvironment()),c.y=e.drawingBufferHeight-c.y;let l=e.camera,f;u(l.frustum.fov)?f=l.frustum.clone(klt):u(l.frustum.infiniteProjectionMatrix)?f=l.frustum.clone(zlt):u(l.frustum.width)?f=l.frustum.clone(Hlt):f=l.frustum.clone(Glt);let d=a.frustumCommandsList,p=d.length;for(let g=0;g<p;++g){let A=this.getPickDepth(e,g).getDepth(o,c.x,c.y);if(u(A)&&A>0&&A<1){let x=d[g],C;return e.mode===ne.SCENE2D?(C=l.position.z,l.position.z=C-x.near+1,f.far=Math.max(1,x.far-x.near),f.near=1,s.update(r),s.updateFrustum(f)):(f.near=x.near*(g!==0?e.opaqueFrustumNearOffset:1),f.far=x.far,s.updateFrustum(f)),n=Zi.drawingBufferToWgs84Coordinates(e,c,A,n),e.mode===ne.SCENE2D&&(l.position.z=C,s.update(r)),this._pickPositionCache[i]=h.clone(n),n}}this._pickPositionCache[i]=void 0};var Wlt=new me;Ia.prototype.pickPosition=function(e,t,n){if(n=this.pickPositionWorldCoordinates(e,t,n),u(n)&&e.mode!==ne.SCENE3D){h.fromElements(n.y,n.z,n.x,n);let i=e.mapProjection,r=i.ellipsoid,o=i.unproject(n,Wlt);r.cartographicToCartesian(o,n)}return n};function tye(e,t){let n,i,r=[],o=[],s=[],a=[];u(e)||(e=Number.MAX_VALUE);let c=t();for(;u(c);){let l=c.object,f=c.position,d=c.exclude;if(u(f)&&!u(l)){r.push(c);break}if(!u(l)||!u(l.primitive)||!d&&(r.push(c),0>=--e))break;let p=l.primitive,g=!1;typeof p.getGeometryInstanceAttributes=="function"&&u(l.id)&&(i=p.getGeometryInstanceAttributes(l.id),u(i)&&u(i.show)&&(g=!0,i.show=gn.toValue(!1,i.show),s.push(i))),l instanceof ws&&(g=!0,l.show=!1,a.push(l)),g||(p.show=!1,o.push(p)),c=t()}for(n=0;n<o.length;++n)o[n].show=!0;for(n=0;n<s.length;++n)i=s[n],i.show=gn.toValue(!0,i.show);for(n=0;n<a.length;++n)a[n].show=!0;return r}Ia.prototype.drillPick=function(e,t,n,i,r){let o=this;return tye(n,function(){let c=o.pick(e,t,i,r);if(u(c))return{object:c,position:void 0,exclude:!1}}).map(function(c){return c.object})};var Zge=new h,jlt=new h;function qlt(e,t,n){this.ray=e,this.width=t,this.tilesets=n,this.ready=!1;let i=this;this.promise=new Promise(r=>{i._completePick=()=>{r()}})}function nye(e,t,n,i){let r=t.direction,o=h.mostOrthogonalAxis(r,Zge),s=h.cross(r,o,Zge),a=h.cross(r,s,jlt);return i.position=t.origin,i.direction=r,i.up=a,i.right=s,i.frustum.width=y(n,Qge),i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC)}function Ylt(e,t,n){let i=t.frameState,r=n.ray,o=n.width,s=n.tilesets,a=e._pickOffscreenView.camera,c=nye(e,r,o,a),l=Ilt;l.camera=a,l.cullingVolume=c;let f=!0,d=s.length;for(let p=0;p<d;++p){let g=s[p];g.show&&t.primitives.contains(g)&&(g.updateForPass(i,l),f=f&&l.ready)}return f&&n._completePick(),f}Ia.prototype.updateMostDetailedRayPicks=function(e){let t=this._mostDetailedRayPicks;for(let n=0;n<t.length;++n)Ylt(this,e,t[n])&&t.splice(n--,1)};function iye(e,t,n){let i=e.length;for(let r=0;r<i;++r){let o=e.get(r);o.show&&(u(o.isCesium3DTileset)?(!u(t)||t.indexOf(o)===-1)&&n.push(o):o instanceof Il&&iye(o,t,n))}}function Vz(e,t,n,i,r,o){let s=[];if(iye(t.primitives,i,s),s.length===0)return Promise.resolve(o());let a=new qlt(n,r,s);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return o()})}function Xlt(e,t){return!u(e)||!u(t)||t.length===0?!1:t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1}function Klt(e,t,n,i,r,o,s){let a=t.context,c=a.uniformState,l=t.frameState,f=e._pickOffscreenView;t.view=f,nye(e,n,r,f.camera),Um=Xe.clone(f.viewport,Um);let d=f.pickFramebuffer.begin(Um,f.viewport);t.jobScheduler.disableThisFrame(),t.updateFrameState(),l.invertClassification=!1,l.passes.pick=!0,l.passes.offscreen=!0,s?l.tilesetPassState=Plt:l.tilesetPassState=Hq,c.update(l),t.updateEnvironment(),t.updateAndExecuteCommands(d,Gq),t.resolveFramebuffers(d);let p,g=f.pickFramebuffer.end(Um);if(t.context.depthTexture){let m=f.frustumCommandsList.length;for(let A=0;A<m;++A){let C=e.getPickDepth(t,A).getDepth(a,0,0);if(u(C)&&C>0&&C<1){let T=f.frustumCommandsList[A],E=T.near*(A!==0?t.opaqueFrustumNearOffset:1),S=T.far,v=E+C*(S-E);p=vn.getPoint(n,v);break}}}if(t.view=t.defaultView,a.endFrame(),u(g)||u(p))return{object:g,position:p,exclude:!u(p)&&o||Xlt(g,i)}}function rye(e,t,n,i,r,o,s,a){return tye(i,function(){return Klt(e,t,n,r,o,s,a)})}function bS(e,t,n,i,r,o,s){let a=rye(e,t,n,1,i,r,o,s);if(a.length>0)return a[0]}function oye(e,t,n,i,r,o,s,a){return rye(e,t,n,i,r,o,s,a)}function kz(e,t){return new Promise((n,i)=>{t.then(function(r){let o=e.postRender.addEventListener(function(){o(),n(r)});e.requestRender()}).catch(function(r){i(r)})})}Ia.prototype.pickFromRay=function(e,t,n,i){return bS(this,e,t,n,i,!1,!1)};Ia.prototype.drillPickFromRay=function(e,t,n,i,r){return oye(this,e,t,n,i,r,!1,!1)};Ia.prototype.pickFromRayMostDetailed=function(e,t,n,i){let r=this;return t=vn.clone(t),n=u(n)?n.slice():n,kz(e,Vz(r,e,t,n,i,function(){return bS(r,e,t,n,i,!1,!0)}))};Ia.prototype.drillPickFromRayMostDetailed=function(e,t,n,i,r){let o=this;return t=vn.clone(t),i=u(i)?i.slice():i,kz(e,Vz(o,e,t,i,r,function(){return oye(o,e,t,n,i,r,!1,!0)}))};var Jlt=new h,Zlt=new h,Qlt=new vn,sye=new me;function Wq(e,t){let n=e.globe,i=u(n)?n.ellipsoid:e.mapProjection.ellipsoid,r=si._defaultMaxTerrainHeight,o=i.geodeticSurfaceNormalCartographic(t,Zlt),s=me.toCartesian(t,i,Jlt),a=Qlt;a.origin=s,a.direction=o;let c=new vn;return vn.getPoint(a,r,c.origin),h.negate(o,c.direction),c}function aye(e,t){let n=e.globe,i=u(n)?n.ellipsoid:e.mapProjection.ellipsoid,r=me.fromCartesian(t,i,sye);return Wq(e,r)}function cye(e,t){let n=e.globe,i=u(n)?n.ellipsoid:e.mapProjection.ellipsoid;return me.fromCartesian(t,i,sye).height}function $lt(e,t,n,i,r){let o=Wq(t,n);return Vz(e,t,o,i,r,function(){let s=bS(e,t,o,i,r,!0,!0);if(u(s))return cye(t,s.position)})}function eut(e,t,n,i,r,o){let s=aye(t,n);return Vz(e,t,s,i,r,function(){let a=bS(e,t,s,i,r,!0,!0);if(u(a))return h.clone(a.position,o)})}Ia.prototype.sampleHeight=function(e,t,n,i){let r=Wq(e,t),o=bS(this,e,r,n,i,!0,!1);if(u(o))return cye(e,o.position)};Ia.prototype.clampToHeight=function(e,t,n,i,r){let o=aye(e,t),s=bS(this,e,o,n,i,!0,!1);if(u(s))return h.clone(s.position,r)};Ia.prototype.sampleHeightMostDetailed=function(e,t,n,i){n=u(n)?n.slice():n;let r=t.length,o=new Array(r);for(let s=0;s<r;++s)o[s]=$lt(this,e,t[s],n,i);return kz(e,Promise.all(o).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c].height=s[c];return t}))};Ia.prototype.clampToHeightMostDetailed=function(e,t,n,i){n=u(n)?n.slice():n;let r=t.length,o=new Array(r);for(let s=0;s<r;++s)o[s]=eut(this,e,t[s],n,i,t[s]);return kz(e,Promise.all(o).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c]=s[c];return t}))};Ia.prototype.destroy=function(){this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy()};var cN=Ia;var lN=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + color /= texture(autoExposure, vec2(0.5)).r; +#endif + color = czm_acesTonemapping(color); + color = czm_inverseGamma(color); + + out_FragColor = vec4(color, fragmentColor.a); +} +`;var uN=`uniform sampler2D randomTexture; +uniform sampler2D depthTexture; +uniform float intensity; +uniform float bias; +uniform float lengthCap; +uniform float stepSize; +uniform float frustumLength; + +in vec2 v_textureCoordinates; + +vec4 clipToEye(vec2 uv, float depth) +{ + vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); + vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0); + posEC = posEC / posEC.w; + return posEC; +} + +//Reconstruct Normal Without Edge Removation +vec3 getNormalXEdge(vec3 posInCamera, float depthU, float depthD, float depthL, float depthR, vec2 pixelSize) +{ + vec4 posInCameraUp = clipToEye(v_textureCoordinates - vec2(0.0, pixelSize.y), depthU); + vec4 posInCameraDown = clipToEye(v_textureCoordinates + vec2(0.0, pixelSize.y), depthD); + vec4 posInCameraLeft = clipToEye(v_textureCoordinates - vec2(pixelSize.x, 0.0), depthL); + vec4 posInCameraRight = clipToEye(v_textureCoordinates + vec2(pixelSize.x, 0.0), depthR); + + vec3 up = posInCamera.xyz - posInCameraUp.xyz; + vec3 down = posInCameraDown.xyz - posInCamera.xyz; + vec3 left = posInCamera.xyz - posInCameraLeft.xyz; + vec3 right = posInCameraRight.xyz - posInCamera.xyz; + + vec3 DX = length(left) < length(right) ? left : right; + vec3 DY = length(up) < length(down) ? up : down; + + return normalize(cross(DY, DX)); +} + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + vec4 posInCamera = clipToEye(v_textureCoordinates, depth); + + if (posInCamera.z > frustumLength) + { + out_FragColor = vec4(1.0); + return; + } + + vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; + float depthU = czm_readDepth(depthTexture, v_textureCoordinates - vec2(0.0, pixelSize.y)); + float depthD = czm_readDepth(depthTexture, v_textureCoordinates + vec2(0.0, pixelSize.y)); + float depthL = czm_readDepth(depthTexture, v_textureCoordinates - vec2(pixelSize.x, 0.0)); + float depthR = czm_readDepth(depthTexture, v_textureCoordinates + vec2(pixelSize.x, 0.0)); + vec3 normalInCamera = getNormalXEdge(posInCamera.xyz, depthU, depthD, depthL, depthR, pixelSize); + + float ao = 0.0; + vec2 sampleDirection = vec2(1.0, 0.0); + float gapAngle = 90.0 * czm_radiansPerDegree; + + // RandomNoise + float randomVal = texture(randomTexture, v_textureCoordinates / pixelSize / 255.0).x; + + //Loop for each direction + for (int i = 0; i < 4; i++) + { + float newGapAngle = gapAngle * (float(i) + randomVal); + float cosVal = cos(newGapAngle); + float sinVal = sin(newGapAngle); + + //Rotate Sampling Direction + vec2 rotatedSampleDirection = vec2(cosVal * sampleDirection.x - sinVal * sampleDirection.y, sinVal * sampleDirection.x + cosVal * sampleDirection.y); + float localAO = 0.0; + float localStepSize = stepSize; + + //Loop for each step + for (int j = 0; j < 6; j++) + { + vec2 newCoords = v_textureCoordinates + rotatedSampleDirection * localStepSize * pixelSize; + + //Exception Handling + if(newCoords.x > 1.0 || newCoords.y > 1.0 || newCoords.x < 0.0 || newCoords.y < 0.0) + { + break; + } + + float stepDepthInfo = czm_readDepth(depthTexture, newCoords); + vec4 stepPosInCamera = clipToEye(newCoords, stepDepthInfo); + vec3 diffVec = stepPosInCamera.xyz - posInCamera.xyz; + float len = length(diffVec); + + if (len > lengthCap) + { + break; + } + + float dotVal = clamp(dot(normalInCamera, normalize(diffVec)), 0.0, 1.0 ); + float weight = len / lengthCap; + weight = 1.0 - weight * weight; + + if (dotVal < bias) + { + dotVal = 0.0; + } + + localAO = max(localAO, dotVal * weight); + localStepSize += stepSize; + } + ao += localAO; + } + + ao /= 4.0; + ao = 1.0 - clamp(ao, 0.0, 1.0); + ao = pow(ao, intensity); + out_FragColor = vec4(vec3(ao), 1.0); +} +`;var fN=`uniform sampler2D colorTexture; +uniform sampler2D ambientOcclusionTexture; +uniform bool ambientOcclusionOnly; +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec4 ao = texture(ambientOcclusionTexture, v_textureCoordinates); + out_FragColor = ambientOcclusionOnly ? ao : ao * color; +} +`;var dN=`uniform sampler2D colorTexture; +uniform float gradations; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = vec4(rgb, 1.0); + return; + } +#endif + float luminance = czm_luminance(rgb); + float darkness = luminance * gradations; + darkness = (darkness - fract(darkness)) / gradations; + out_FragColor = vec4(vec3(darkness), 1.0); +} +`;var hN=`uniform sampler2D colorTexture; +uniform sampler2D bloomTexture; +uniform bool glowOnly; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = color; + return; + } +#endif + + vec4 bloom = texture(bloomTexture, v_textureCoordinates); + out_FragColor = glowOnly ? bloom : bloom + color; +} +`;var mN=`uniform sampler2D colorTexture; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 target = vec3(0.0); + out_FragColor = vec4(mix(target, rgb, brightness), 1.0); +} +`;var pN=`uniform sampler2D colorTexture; +uniform float contrast; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 sceneColor = texture(colorTexture, v_textureCoordinates).xyz; + sceneColor = czm_RGBToHSB(sceneColor); + sceneColor.z += brightness; + sceneColor = czm_HSBToRGB(sceneColor); + + float factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast)); + sceneColor = factor * (sceneColor - vec3(0.5)) + vec3(0.5); + out_FragColor = vec4(sceneColor, 1.0); +} +`;var _N=`uniform sampler2D colorTexture; +uniform sampler2D blurTexture; +uniform sampler2D depthTexture; +uniform float focalDistance; + +in vec2 v_textureCoordinates; + +vec4 toEye(vec2 uv, float depth) +{ + vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); + vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0); + posInCamera = posInCamera / posInCamera.w; + return posInCamera; +} + +float computeDepthBlur(float depth) +{ + float f; + if (depth < focalDistance) + { + f = (focalDistance - depth) / (focalDistance - czm_currentFrustum.x); + } + else + { + f = (depth - focalDistance) / (czm_currentFrustum.y - focalDistance); + f = pow(f, 0.1); + } + f *= f; + f = clamp(f, 0.0, 1.0); + return pow(f, 0.5); +} + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + vec4 posInCamera = toEye(v_textureCoordinates, depth); + float d = computeDepthBlur(-posInCamera.z); + out_FragColor = mix(texture(colorTexture, v_textureCoordinates), texture(blurTexture, v_textureCoordinates), d); +} +`;var gN=`uniform sampler2D depthTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + out_FragColor = vec4(vec3(depth), 1.0); +} +`;var yN=`uniform sampler2D depthTexture; +uniform float length; +uniform vec4 color; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float directions[3]; + directions[0] = -1.0; + directions[1] = 0.0; + directions[2] = 1.0; + + float scalars[3]; + scalars[0] = 3.0; + scalars[1] = 10.0; + scalars[2] = 3.0; + + float padx = czm_pixelRatio / czm_viewport.z; + float pady = czm_pixelRatio / czm_viewport.w; + +#ifdef CZM_SELECTED_FEATURE + bool selected = false; + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + selected = selected || czm_selected(vec2(-padx, dir * pady)); + selected = selected || czm_selected(vec2(padx, dir * pady)); + selected = selected || czm_selected(vec2(dir * padx, -pady)); + selected = selected || czm_selected(vec2(dir * padx, pady)); + if (selected) + { + break; + } + } + if (!selected) + { + out_FragColor = vec4(color.rgb, 0.0); + return; + } +#endif + + float horizEdge = 0.0; + float vertEdge = 0.0; + + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + float scale = scalars[i]; + + horizEdge -= texture(depthTexture, v_textureCoordinates + vec2(-padx, dir * pady)).x * scale; + horizEdge += texture(depthTexture, v_textureCoordinates + vec2(padx, dir * pady)).x * scale; + + vertEdge -= texture(depthTexture, v_textureCoordinates + vec2(dir * padx, -pady)).x * scale; + vertEdge += texture(depthTexture, v_textureCoordinates + vec2(dir * padx, pady)).x * scale; + } + + float len = sqrt(horizEdge * horizEdge + vertEdge * vertEdge); + out_FragColor = vec4(color.rgb, len > length ? color.a : 0.0); +} +`;var AN=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +// See slides 142 and 143: +// http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#endif + + const float A = 0.22; // shoulder strength + const float B = 0.30; // linear strength + const float C = 0.10; // linear angle + const float D = 0.20; // toe strength + const float E = 0.01; // toe numerator + const float F = 0.30; // toe denominator + + const float white = 11.2; // linear white point value + + vec3 c = ((color * (A * color + C * B) + D * E) / (color * ( A * color + B) + D * F)) - E / F; + float w = ((white * (A * white + C * B) + D * E) / (white * ( A * white + B) + D * F)) - E / F; + + c = czm_inverseGamma(c / w); + out_FragColor = vec4(c, fragmentColor.a); +} +`;var xN=`in vec2 v_textureCoordinates; + +uniform sampler2D colorTexture; + +const float fxaaQualitySubpix = 0.5; +const float fxaaQualityEdgeThreshold = 0.125; +const float fxaaQualityEdgeThresholdMin = 0.0833; + +void main() +{ + vec2 fxaaQualityRcpFrame = vec2(1.0) / czm_viewport.zw; + vec4 color = FxaaPixelShader( + v_textureCoordinates, + colorTexture, + fxaaQualityRcpFrame, + fxaaQualitySubpix, + fxaaQualityEdgeThreshold, + fxaaQualityEdgeThresholdMin); + float alpha = texture(colorTexture, v_textureCoordinates).a; + out_FragColor = vec4(color.rgb, alpha); +} +`;var Zy=`#define SAMPLES 8 + +uniform float delta; +uniform float sigma; +uniform float direction; // 0.0 for x direction, 1.0 for y direction + +uniform sampler2D colorTexture; + +#ifdef USE_STEP_SIZE +uniform float stepSize; +#else +uniform vec2 step; +#endif + +in vec2 v_textureCoordinates; + +// Incremental Computation of the Gaussian: +// https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch40.html + +void main() +{ + vec2 st = v_textureCoordinates; + vec2 dir = vec2(1.0 - direction, direction); + +#ifdef USE_STEP_SIZE + vec2 step = vec2(stepSize * (czm_pixelRatio / czm_viewport.zw)); +#else + vec2 step = step; +#endif + + vec3 g; + g.x = 1.0 / (sqrt(czm_twoPi) * sigma); + g.y = exp((-0.5 * delta * delta) / (sigma * sigma)); + g.z = g.y * g.y; + + vec4 result = texture(colorTexture, st) * g.x; + for (int i = 1; i < SAMPLES; ++i) + { + g.xy *= g.yz; + + vec2 offset = float(i) * dir * step; + result += texture(colorTexture, st - offset) * g.x; + result += texture(colorTexture, st + offset) * g.x; + } + + out_FragColor = result; +} +`;var CN=`uniform sampler2D colorTexture; +uniform sampler2D dirtTexture; +uniform sampler2D starTexture; +uniform vec2 dirtTextureDimensions; +uniform float distortion; +uniform float ghostDispersal; +uniform float haloWidth; +uniform float dirtAmount; +uniform float earthRadius; +uniform float intensity; + +in vec2 v_textureCoordinates; + +// whether it is in space or not +// 6500000.0 is empirical value +#define DISTANCE_TO_SPACE 6500000.0 + +// return ndc from world coordinate biased earthRadius +vec4 getNDCFromWC(vec3 WC, float earthRadius) +{ + vec4 positionEC = czm_view * vec4(WC, 1.0); + positionEC = vec4(positionEC.x + earthRadius, positionEC.y, positionEC.z, 1.0); + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + return czm_viewportOrthographic * vec4(positionWC.xy, -positionWC.z, 1.0); +} + +// Check if current pixel is included Earth +// if then mask it gradually +float isInEarth(vec2 texcoord, vec2 sceneSize) +{ + vec2 NDC = texcoord * 2.0 - 1.0; + vec4 earthPosSC = getNDCFromWC(vec3(0.0), 0.0); + vec4 earthPosSCEdge = getNDCFromWC(vec3(0.0), earthRadius * 1.5); + NDC.xy -= earthPosSC.xy; + + float X = abs(NDC.x) * sceneSize.x; + float Y = abs(NDC.y) * sceneSize.y; + + return clamp(0.0, 1.0, max(sqrt(X * X + Y * Y) / max(abs(earthPosSCEdge.x * sceneSize.x), 1.0) - 0.8 , 0.0)); +} + +// For Chromatic effect +vec4 textureDistorted(sampler2D tex, vec2 texcoord, vec2 direction, vec3 distortion, bool isSpace) +{ + vec2 sceneSize = czm_viewport.zw; + vec3 color; + if(isSpace) + { + color.r = isInEarth(texcoord + direction * distortion.r, sceneSize) * texture(tex, texcoord + direction * distortion.r).r; + color.g = isInEarth(texcoord + direction * distortion.g, sceneSize) * texture(tex, texcoord + direction * distortion.g).g; + color.b = isInEarth(texcoord + direction * distortion.b, sceneSize) * texture(tex, texcoord + direction * distortion.b).b; + } + else + { + color.r = texture(tex, texcoord + direction * distortion.r).r; + color.g = texture(tex, texcoord + direction * distortion.g).g; + color.b = texture(tex, texcoord + direction * distortion.b).b; + } + return vec4(clamp(color, 0.0, 1.0), 0.0); +} + +void main(void) +{ + vec4 originalColor = texture(colorTexture, v_textureCoordinates); + vec3 rgb = originalColor.rgb; + bool isSpace = length(czm_viewerPositionWC.xyz) > DISTANCE_TO_SPACE; + + // Sun position + vec4 sunPos = czm_morphTime == 1.0 ? vec4(czm_sunPositionWC, 1.0) : vec4(czm_sunPositionColumbusView.zxy, 1.0); + vec4 sunPositionEC = czm_view * sunPos; + vec4 sunPositionWC = czm_eyeToWindowCoordinates(sunPositionEC); + sunPos = czm_viewportOrthographic * vec4(sunPositionWC.xy, -sunPositionWC.z, 1.0); + + // If sun is not in the screen space, use original color. + if(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1))) + { + // Lens flare is disabled when not in space until #5932 is fixed. + // https://github.com/CesiumGS/cesium/issues/5932 + out_FragColor = originalColor; + return; + } + + vec2 texcoord = vec2(1.0) - v_textureCoordinates; + vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; + vec2 invPixelSize = 1.0 / pixelSize; + vec3 distortionVec = pixelSize.x * vec3(-distortion, 0.0, distortion); + + // ghost vector to image centre: + vec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal; + vec3 direction = normalize(vec3(ghostVec, 0.0)); + + // sample ghosts: + vec4 result = vec4(0.0); + vec4 ghost = vec4(0.0); + for (int i = 0; i < 4; ++i) + { + vec2 offset = fract(texcoord + ghostVec * float(i)); + // Only bright spots from the centre of the source image + ghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace); + } + result += ghost; + + // sample halo + vec2 haloVec = normalize(ghostVec) * haloWidth; + float weightForHalo = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5)); + weightForHalo = pow(1.0 - weightForHalo, 5.0); + + result += textureDistorted(colorTexture, texcoord + haloVec, direction.xy, distortionVec, isSpace) * weightForHalo * 1.5; + + // dirt on lens + vec2 dirtTexCoords = (v_textureCoordinates * invPixelSize) / dirtTextureDimensions; + if (dirtTexCoords.x > 1.0) + { + dirtTexCoords.x = mod(floor(dirtTexCoords.x), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.x) : fract(dirtTexCoords.x); + } + if (dirtTexCoords.y > 1.0) + { + dirtTexCoords.y = mod(floor(dirtTexCoords.y), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.y) : fract(dirtTexCoords.y); + } + result += dirtAmount * texture(dirtTexture, dirtTexCoords); + + // Rotating starburst texture's coordinate + // dot(czm_view[0].xyz, vec3(0.0, 0.0, 1.0)) + dot(czm_view[1].xyz, vec3(0.0, 1.0, 0.0)) + float camrot = czm_view[0].z + czm_view[1].y; + float cosValue = cos(camrot); + float sinValue = sin(camrot); + mat3 rotation = mat3( + cosValue, -sinValue, 0.0, + sinValue, cosValue, 0.0, + 0.0, 0.0, 1.0 + ); + + vec3 st1 = vec3(v_textureCoordinates * 2.0 - vec2(1.0), 1.0); + vec3 st2 = vec3((rotation * st1).xy, 1.0); + vec3 st3 = st2 * 0.5 + vec3(0.5); + vec2 lensStarTexcoord = st3.xy; + float weightForLensFlare = length(vec3(sunPos.xy, 0.0)); + float oneMinusWeightForLensFlare = max(1.0 - weightForLensFlare, 0.0); + + if (!isSpace) + { + result *= oneMinusWeightForLensFlare * intensity * 0.2; + } + else + { + result *= oneMinusWeightForLensFlare * intensity; + result *= texture(starTexture, lensStarTexcoord) * pow(weightForLensFlare, 1.0) * max((1.0 - length(vec3(st1.xy, 0.0))), 0.0) * 2.0; + } + + result += texture(colorTexture, v_textureCoordinates); + + out_FragColor = result; +} +`;var TN=`uniform sampler2D colorTexture; +uniform vec3 white; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +// See equation 4: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#endif + color = (color * (1.0 + color / white)) / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var EN=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +float rand(vec2 co) +{ + return fract(sin(dot(co.xy ,vec2(12.9898, 78.233))) * 43758.5453); +} + +void main(void) +{ + float noiseValue = rand(v_textureCoordinates + sin(czm_frameNumber)) * 0.1; + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 green = vec3(0.0, 1.0, 0.0); + out_FragColor = vec4((noiseValue + rgb) * green, 1.0); +} +`;var bN=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +// See equation 3: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#endif + color = color / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var SN=`uniform sampler2D colorTexture; +uniform sampler2D silhouetteTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 silhouetteColor = texture(silhouetteTexture, v_textureCoordinates); + vec4 color = texture(colorTexture, v_textureCoordinates); + out_FragColor = mix(color, silhouetteColor, silhouetteColor.a); +} +`;/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */var vN=`/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS \`\`AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// NVIDIA GameWorks Graphics Samples GitHub link: https://github.com/NVIDIAGameWorks/GraphicsSamples +// Original FXAA 3.11 shader link: https://github.com/NVIDIAGameWorks/GraphicsSamples/blob/master/samples/es3-kepler/FXAA/FXAA3_11.h + +// Steps used to integrate into Cesium: +// * The following defines are set: +// #define FXAA_PC 1 +// #define FXAA_WEBGL_1 1 +// #define FXAA_GREEN_AS_LUMA 1 +// #define FXAA_EARLY_EXIT 1 +// #define FXAA_GLSL_120 1 +// * All other preprocessor directives besides the FXAA_QUALITY__P* directives were removed. +// * Double underscores are invalid for preprocessor directives so replace them with a single underscore. Replace +// /FXAA_QUALITY__P(.*)/g with /FXAA_QUALITY__P$1/. +// * There are no implicit conversions from ivec* to vec* so replace: +// #define FxaaInt2 ivec2 +// with +// #define FxaaInt2 vec2 +// * The texture2DLod function is only available in vertex shaders so replace: +// #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) +// #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) +// with +// #define FxaaTexTop(t, p) texture(t, p) +// #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) +// * FXAA_QUALITY_PRESET is prepended in the javascript code. We may want to expose that setting in the future. +// * The following parameters to FxaaPixelShader are unused and can be removed: +// fxaaConsolePosPos +// fxaaConsoleRcpFrameOpt +// fxaaConsoleRcpFrameOpt2 +// fxaaConsole360RcpFrameOpt2 +// fxaaConsoleEdgeSharpness +// fxaaConsoleEdgeThreshold +// fxaaConsoleEdgeThresholdMi +// fxaaConsole360ConstDir + +// +// Choose the quality preset. +// This needs to be compiled into the shader as it effects code. +// Best option to include multiple presets is to +// in each shader define the preset, then include this file. +// +// OPTIONS +// ----------------------------------------------------------------------- +// 10 to 15 - default medium dither (10=fastest, 15=highest quality) +// 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) +// 39 - no dither, very expensive +// +// NOTES +// ----------------------------------------------------------------------- +// 12 = slightly faster then FXAA 3.9 and higher edge quality (default) +// 13 = about same speed as FXAA 3.9 and better than 12 +// 23 = closest to FXAA 3.9 visually and performance wise +// _ = the lowest digit is directly related to performance +// _ = the highest digit is directly related to style +// +//#define FXAA_QUALITY_PRESET 12 + + +#if (FXAA_QUALITY_PRESET == 10) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 3.0 + #define FXAA_QUALITY_P2 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 11) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 3.0 + #define FXAA_QUALITY_P3 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 12) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 4.0 + #define FXAA_QUALITY_P4 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 13) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 4.0 + #define FXAA_QUALITY_P5 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 14) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 4.0 + #define FXAA_QUALITY_P6 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 15) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 20) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 2.0 + #define FXAA_QUALITY_P2 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 21) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 22) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 23) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 24) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 3.0 + #define FXAA_QUALITY_P6 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 25) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 26) + #define FXAA_QUALITY_PS 9 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 4.0 + #define FXAA_QUALITY_P8 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 27) + #define FXAA_QUALITY_PS 10 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 4.0 + #define FXAA_QUALITY_P9 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 28) + #define FXAA_QUALITY_PS 11 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 4.0 + #define FXAA_QUALITY_P10 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 29) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 39) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.0 + #define FXAA_QUALITY_P2 1.0 + #define FXAA_QUALITY_P3 1.0 + #define FXAA_QUALITY_P4 1.0 + #define FXAA_QUALITY_P5 1.5 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif + +#define FxaaBool bool +#define FxaaFloat float +#define FxaaFloat2 vec2 +#define FxaaFloat3 vec3 +#define FxaaFloat4 vec4 +#define FxaaHalf float +#define FxaaHalf2 vec2 +#define FxaaHalf3 vec3 +#define FxaaHalf4 vec4 +#define FxaaInt2 vec2 +#define FxaaTex sampler2D + +#define FxaaSat(x) clamp(x, 0.0, 1.0) +#define FxaaTexTop(t, p) texture(t, p) +#define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) + +FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; } + +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin +) { +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #define lumaM rgbyM.y + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; +/*--------------------------------------------------------------------------*/ + if(earlyExit) + return rgbyM; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0/range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; +/*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; +/*--------------------------------------------------------------------------*/ + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + if(horzSpan) lengthSign = fxaaQualityRcpFrame.y; + FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM; +/*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if(pairN) lengthSign = -lengthSign; + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if(!horzSpan) posB.x += lengthSign * 0.5; + if( horzSpan) posB.y += lengthSign * 0.5; +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY_P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY_P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY_P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY_P0; + FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); +/*--------------------------------------------------------------------------*/ + if(!pairN) lumaNN = lumaSS; + FxaaFloat gradientScaled = gradient * 1.0/4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; +/*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1; + FxaaBool doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1; +/*--------------------------------------------------------------------------*/ + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 3) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 4) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 5) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 6) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 7) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 8) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 9) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 10) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 11) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 12) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12; +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } +/*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if(!horzSpan) dstN = posM.y - posN.y; + if(!horzSpan) dstP = posP.y - posM.y; +/*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0/spanLength; +/*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; +/*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign; + if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign; + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); +} +`;function fC(){this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._ready=!1,this._name="czm_autoexposure",this._logDepthChanged=void 0,this._useLogDepth=void 0,this._framebuffers=void 0,this._previousLuminance=new di,this._commands=void 0,this._clearCommand=void 0,this._minMaxLuminance=new H,this.enabled=!0,this._enabled=!0,this.minimumLuminance=.1,this.maximumLuminance=10}Object.defineProperties(fC.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){let e=this._framebuffers;if(u(e))return e[e.length-1].getColorTexture(0)}}});function lye(e){let t=e._framebuffers;if(!u(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].destroy();e._framebuffers=void 0,e._previousLuminance.destroy(),e._previousLuminance=void 0}function tut(e,t){lye(e);let n=e._width,i=e._height,r=t.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT,o=Math.ceil(Math.log(Math.max(n,i))/Math.log(3)),s=new Array(o);for(let c=0;c<o;++c)n=Math.max(Math.ceil(n/3),1),i=Math.max(Math.ceil(i/3),1),s[c]=new di,s[c].update(t,n,i,1,r);let a=s[o-1].getColorTexture(0);e._previousLuminance.update(t,a.width,a.height,1,r),e._framebuffers=s}function uye(e){let t=e._commands;if(!u(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].shaderProgram.destroy();e._commands=void 0}function nut(e,t){let n;if(t===0)n={colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions}};else{let i=e._framebuffers[t-1].getColorTexture(0);n={colorTexture:function(){return i},colorTextureDimensions:function(){return i.dimensions}}}return n.minMaxLuminance=function(){return e._minMaxLuminance},n.previousLuminance=function(){return e._previousLuminance.getColorTexture(0)},n}function iut(e,t){let n=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +float sampleTexture(vec2 offset) { +`;return e===0?n+=` vec4 color = texture(colorTexture, v_textureCoordinates + offset); + return czm_luminance(color.rgb); +`:n+=` return texture(colorTexture, v_textureCoordinates + offset).r; +`,n+=`} + +`,n+=`uniform vec2 colorTextureDimensions; +uniform vec2 minMaxLuminance; +uniform sampler2D previousLuminance; +void main() { + float color = 0.0; + float xStep = 1.0 / colorTextureDimensions.x; + float yStep = 1.0 / colorTextureDimensions.y; + int count = 0; + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + vec2 offset; + offset.x = -xStep + float(i) * xStep; + offset.y = -yStep + float(j) * yStep; + if (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) { + continue; + } + color += sampleTexture(offset); + ++count; + } + } + if (count > 0) { + color /= float(count); + } +`,e===t-1&&(n+=` float previous = texture(previousLuminance, vec2(0.5)).r; + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); + color = previous + (color - previous) / (60.0 * 1.5); + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); +`),n+=` out_FragColor = vec4(color); +} +`,n}function rut(e,t){uye(e);let n=e._framebuffers,i=n.length,r=new Array(i);for(let o=0;o<i;++o)r[o]=t.createViewportQuadCommand(iut(o,i),{framebuffer:n[o].framebuffer,uniformMap:nut(e,o)});e._commands=r}fC.prototype.clear=function(e){let t=this._framebuffers;if(!u(t))return;let n=this._clearCommand;u(n)||(n=this._clearCommand=new ri({color:new z(0,0,0,0),framebuffer:void 0}));let i=t.length;for(let r=0;r<i;++r)t[r].clear(e,n)};fC.prototype.update=function(e){let t=e.drawingBufferWidth,n=e.drawingBufferHeight;(t!==this._width||n!==this._height)&&(this._width=t,this._height=n,tut(this,e),rut(this,e),this._ready||(this._ready=!0)),this._minMaxLuminance.x=this.minimumLuminance,this._minMaxLuminance.y=this.maximumLuminance;let i=this._framebuffers,r=i[i.length-1];i[i.length-1]=this._previousLuminance,this._commands[this._commands.length-1].framebuffer=this._previousLuminance.framebuffer,this._previousLuminance=r};fC.prototype.execute=function(e,t){this._colorTexture=t;let n=this._commands;if(!u(n))return;let i=n.length;for(let r=0;r<i;++r)n[r].execute(e)};fC.prototype.isDestroyed=function(){return!1};fC.prototype.destroy=function(){return lye(this),uye(this),ue(this)};var wN=fC;var out={NEAREST:0,LINEAR:1},Ru=out;function dC(e){e=y(e,y.EMPTY_OBJECT);let t=e.fragmentShader,n=y(e.textureScale,1),i=y(e.pixelFormat,at.RGBA);this._fragmentShader=t,this._uniforms=e.uniforms,this._textureScale=n,this._forcePowerOfTwo=y(e.forcePowerOfTwo,!1),this._sampleMode=y(e.sampleMode,Ru.NEAREST),this._pixelFormat=i,this._pixelDatatype=y(e.pixelDatatype,Ke.UNSIGNED_BYTE),this._clearColor=y(e.clearColor,z.BLACK),this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._idTexture=void 0,this._actualUniforms={},this._dirtyUniforms=[],this._texturesToRelease=[],this._texturesToCreate=[],this._texturePromise=void 0;let r=new Ha;r.scissorTest={enabled:!0,rectangle:u(e.scissorRectangle)?Xe.clone(e.scissorRectangle):new Xe},this._passState=r,this._ready=!1;let o=e.name;u(o)||(o=Wn()),this._name=o,this._logDepthChanged=void 0,this._useLogDepth=void 0,this._selectedIdTexture=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0,this._textureCache=void 0,this._index=void 0,this.enabled=!0,this._enabled=!0}Object.defineProperties(dC.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},fragmentShader:{get:function(){return this._fragmentShader}},uniforms:{get:function(){return this._uniforms}},textureScale:{get:function(){return this._textureScale}},forcePowerOfTwo:{get:function(){return this._forcePowerOfTwo}},sampleMode:{get:function(){return this._sampleMode}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},clearColor:{get:function(){return this._clearColor}},scissorRectangle:{get:function(){return this._passState.scissorTest.rectangle}},outputTexture:{get:function(){if(u(this._textureCache)){let e=this._textureCache.getFramebuffer(this._name);if(u(e))return e.getColorTexture(0)}}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});var sut=/uniform\s+sampler2D\s+depthTexture/g;dC.prototype._isSupported=function(e){return!sut.test(this._fragmentShader)||e.depthTexture};function aut(e,t,n){let i=t[n];return(typeof i=="string"||i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement||i instanceof ImageData)&&e._dirtyUniforms.push(n),{get:function(){return t[n]},set:function(r){let o=t[n];t[n]=r;let s=e._actualUniforms,a=s[n];u(a)&&a!==o&&a instanceof Rt&&!u(e._textureCache.getStageByName(n))&&(e._texturesToRelease.push(a),delete s[n],delete s[`${n}Dimensions`]),o instanceof Rt&&e._texturesToRelease.push(o),typeof r=="string"||r instanceof HTMLCanvasElement||r instanceof HTMLImageElement||r instanceof HTMLVideoElement||r instanceof ImageData?e._dirtyUniforms.push(n):s[n]=r}}}function cut(e,t){return function(){let n=e._actualUniforms[t];return typeof n=="function"?n():n}}function lut(e,t){return function(){let n=e[t]();if(u(n))return n.dimensions}}function uut(e){if(u(e._uniformMap))return;let t={},n={},i=e._uniforms,r=e._actualUniforms;for(let o in i)if(i.hasOwnProperty(o)){typeof i[o]!="function"?(t[o]=cut(e,o),n[o]=aut(e,i,o)):(t[o]=i[o],n[o]=i[o]),r[o]=i[o];let s=t[o]();(typeof s=="string"||s instanceof Rt||s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement)&&(t[`${o}Dimensions`]=lut(t,o))}e._uniforms={},Object.defineProperties(e._uniforms,n),e._uniformMap=_t(t,{colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions},depthTexture:function(){return e._depthTexture},depthTextureDimensions:function(){return e._depthTexture.dimensions},czm_idTexture:function(){return e._idTexture},czm_selectedIdTexture:function(){return e._selectedIdTexture},czm_selectedIdTextureStep:function(){return 1/e._selectedIdTexture.width}})}function fut(e,t){if(u(e._command)&&!e._logDepthChanged&&!e._selectedDirty)return;let n=e._fragmentShader;if(u(e._selectedIdTexture)){let r=e._selectedIdTexture.width;n=n.replace(/in\s+vec2\s+v_textureCoordinates;/g,""),n=`#define CZM_SELECTED_FEATURE +uniform sampler2D czm_idTexture; +uniform sampler2D czm_selectedIdTexture; +uniform float czm_selectedIdTextureStep; +in vec2 v_textureCoordinates; +bool czm_selected(vec2 offset) +{ + bool selected = false; + vec4 id = texture(czm_idTexture, v_textureCoordinates + offset); + for (int i = 0; i < ${r}; ++i) + { + vec4 selectedId = texture(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5)); + if (all(equal(id, selectedId))) + { + return true; + } + } + return false; +} + +bool czm_selected() +{ + return czm_selected(vec2(0.0)); +} + +${n}`}let i=new ke({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[n]});e._command=t.createViewportQuadCommand(i,{uniformMap:e._uniformMap,owner:e})}function dut(e){let t=e._sampleMode,n,i;t===Ru.LINEAR?(n=sn.LINEAR,i=Ti.LINEAR):(n=sn.NEAREST,i=Ti.NEAREST);let r=e._sampler;(!u(r)||r.minificationFilter!==n||r.magnificationFilter!==i)&&(e._sampler=new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i}))}function hut(e,t){return function(n){e._texturesToCreate.push({name:t,source:n})}}function mut(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function put(e,t){let n,i,r,o=e._texturesToRelease,s=o.length;for(n=0;n<s;++n)i=o[n],i=i&&i.destroy();o.length=0;let a=e._texturesToCreate;for(s=a.length,n=0;n<s;++n){let d=a[n];r=d.name;let p=d.source;e._actualUniforms[r]=new Rt({context:t,source:p})}a.length=0;let c=e._dirtyUniforms;if(c.length===0&&!u(e._texturePromise)){e._ready=!0;return}if(c.length===0||u(e._texturePromise))return;s=c.length;let l=e._uniforms,f=[];for(n=0;n<s;++n){r=c[n];let d=l[r],p=e._textureCache.getStageByName(d);if(u(p))e._actualUniforms[r]=mut(e,d);else if(typeof d=="string"){let g=new ve({url:d});f.push(g.fetchImage().then(hut(e,r)))}else e._texturesToCreate.push({name:r,source:d})}c.length=0,f.length>0?(e._ready=!1,e._texturePromise=Promise.all(f).then(function(){e._ready=!0,e._texturePromise=void 0})):e._ready=!0}function fye(e){u(e._command)&&(e._command.shaderProgram=e._command.shaderProgram&&e._command.shaderProgram.destroy(),e._command=void 0),e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy();let t=e._textureCache;if(!u(t))return;let n=e._uniforms,i=e._actualUniforms;for(let r in i)i.hasOwnProperty(r)&&i[r]instanceof Rt&&(u(t.getStageByName(n[r]))||i[r].destroy(),e._dirtyUniforms.push(r))}function _ut(e){let t=u(e._selected)?e._selected.length:0,n=u(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,u(e._selected)&&u(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):u(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&u(e._combinedSelected)){if(!u(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let r=0;r<t;++r)if(e._combinedSelected[r]!==e._combinedSelectedShadow[r])return!0}return i}function gut(e,t){if(!e._selectedDirty)return;e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;let n=e._combinedSelected;if(!u(n))return;let i,r,o=0,s=n.length;for(i=0;i<s;++i)r=n[i],u(r.pickIds)?o+=r.pickIds.length:u(r.pickId)&&++o;if(s===0||o===0){let f=new Uint8Array(4);f[0]=255,f[1]=255,f[2]=255,f[3]=255,e._selectedIdTexture=new Rt({context:t,pixelFormat:at.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:f,width:1,height:1},sampler:ln.NEAREST});return}let a,c=0,l=new Uint8Array(o*4);for(i=0;i<s;++i)if(r=n[i],u(r.pickIds)){let f=r.pickIds,d=f.length;for(let p=0;p<d;++p)a=f[p].color,l[c]=z.floatToByte(a.red),l[c+1]=z.floatToByte(a.green),l[c+2]=z.floatToByte(a.blue),l[c+3]=z.floatToByte(a.alpha),c+=4}else u(r.pickId)&&(a=r.pickId.color,l[c]=z.floatToByte(a.red),l[c+1]=z.floatToByte(a.green),l[c+2]=z.floatToByte(a.blue),l[c+3]=z.floatToByte(a.alpha),c+=4);e._selectedIdTexture=new Rt({context:t,pixelFormat:at.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:l,width:o,height:1},sampler:ln.NEAREST})}dC.prototype.update=function(e,t){if(this.enabled!==this._enabled&&!this.enabled&&fye(this),this._enabled=this.enabled,!this._enabled||(this._logDepthChanged=t!==this._useLogDepth,this._useLogDepth=t,this._selectedDirty=_ut(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=u(this._selected)?this._selected.length:0,this._parentSelectedLength=u(this._parentSelected)?this._parentSelected.length:0,gut(this,e),uut(this),put(this,e),fut(this,e),dut(this),this._selectedDirty=!1,!this._ready))return;let n=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=n,!u(n))return;let i=n.getColorTexture(0),r;(i.width!==e.drawingBufferWidth||i.height!==e.drawingBufferHeight)&&(r=this._renderState,(!u(r)||i.width!==r.viewport.width||i.height!==r.viewport.height)&&(this._renderState=Ve.fromCache({viewport:new Xe(0,0,i.width,i.height)}))),this._command.renderState=r};dC.prototype.execute=function(e,t,n,i){if(!u(this._command)||!u(this._command.framebuffer)||!this._ready||!this._enabled)return;this._colorTexture=t,this._depthTexture=n,this._idTexture=i,ln.equals(this._colorTexture.sampler,this._sampler)||(this._colorTexture.sampler=this._sampler);let r=this.scissorRectangle.width>0&&this.scissorRectangle.height>0?this._passState:void 0;u(r)&&(r.context=e),this._command.execute(e,r)};dC.prototype.isDestroyed=function(){return!1};dC.prototype.destroy=function(){return fye(this),ue(this)};var xr=dC;function hC(e){e=y(e,y.EMPTY_OBJECT),this._stages=e.stages,this._inputPreviousStageTexture=y(e.inputPreviousStageTexture,!0);let t=e.name;u(t)||(t=Wn()),this._name=t,this._uniforms=e.uniforms,this._textureCache=void 0,this._index=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0}Object.defineProperties(hC.prototype,{ready:{get:function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)if(!e[n].ready)return!1;return!0}},name:{get:function(){return this._name}},enabled:{get:function(){return this._stages[0].enabled},set:function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)t[i].enabled=e}},uniforms:{get:function(){return this._uniforms}},inputPreviousStageTexture:{get:function(){return this._inputPreviousStageTexture}},length:{get:function(){return this._stages.length}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});hC.prototype._isSupported=function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)if(!t[i]._isSupported(e))return!1;return!0};hC.prototype.get=function(e){return this._stages[e]};function yut(e){let t=u(e._selected)?e._selected.length:0,n=u(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,u(e._selected)&&u(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):u(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&u(e._combinedSelected)){if(!u(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let r=0;r<t;++r)if(e._combinedSelected[r]!==e._combinedSelectedShadow[r])return!0}return i}hC.prototype.update=function(e,t){this._selectedDirty=yut(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=u(this._selected)?this._selected.length:0,this._parentSelectedLength=u(this._parentSelected)?this._parentSelected.length:0;let n=this._stages,i=n.length;for(let r=0;r<i;++r){let o=n[r];this._selectedDirty&&(o.parentSelected=this._combinedSelected),o.update(e,t)}};hC.prototype.isDestroyed=function(){return!1};hC.prototype.destroy=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var el=hC;var Uo={};function zz(e){let r=`#define USE_STEP_SIZE +${Zy}`,o=new xr({name:`${e}_x_direction`,fragmentShader:r,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:Ru.LINEAR}),s=new xr({name:`${e}_y_direction`,fragmentShader:r,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:Ru.LINEAR}),a={};return Object.defineProperties(a,{delta:{get:function(){return o.uniforms.delta},set:function(c){let l=o.uniforms,f=s.uniforms;l.delta=f.delta=c}},sigma:{get:function(){return o.uniforms.sigma},set:function(c){let l=o.uniforms,f=s.uniforms;l.sigma=f.sigma=c}},stepSize:{get:function(){return o.uniforms.stepSize},set:function(c){let l=o.uniforms,f=s.uniforms;l.stepSize=f.stepSize=c}}}),new el({name:e,stages:[o,s],uniforms:a})}Uo.createBlurStage=function(){return zz("czm_blur")};Uo.createDepthOfFieldStage=function(){let e=zz("czm_depth_of_field_blur"),t=new xr({name:"czm_depth_of_field_composite",fragmentShader:_N,uniforms:{focalDistance:5,blurTexture:e.name}}),n={};return Object.defineProperties(n,{focalDistance:{get:function(){return t.uniforms.focalDistance},set:function(i){t.uniforms.focalDistance=i}},delta:{get:function(){return e.uniforms.delta},set:function(i){e.uniforms.delta=i}},sigma:{get:function(){return e.uniforms.sigma},set:function(i){e.uniforms.sigma=i}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(i){e.uniforms.stepSize=i}}}),new el({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};Uo.isDepthOfFieldSupported=function(e){return e.context.depthTexture};Uo.createEdgeDetectionStage=function(){let e=Wn();return new xr({name:`czm_edge_detection_${e}`,fragmentShader:yN,uniforms:{length:.25,color:z.clone(z.BLACK)}})};Uo.isEdgeDetectionSupported=function(e){return e.context.depthTexture};function Aut(e){if(!u(e))return Uo.createEdgeDetectionStage();let t=new el({name:"czm_edge_detection_multiple",stages:e,inputPreviousStageTexture:!1}),n={},i="",r="";for(let a=0;a<e.length;++a)i+=`uniform sampler2D edgeTexture${a}; +`,r+=` vec4 edge${a} = texture(edgeTexture${a}, v_textureCoordinates); + if (edge${a}.a > 0.0) + { + color = edge${a}; + break; + } +`,n[`edgeTexture${a}`]=e[a].name;let o=`${i}in vec2 v_textureCoordinates; +void main() { + vec4 color = vec4(0.0); + for (int i = 0; i < ${e.length}; i++) + { +${r} } + out_FragColor = color; +} +`,s=new xr({name:"czm_edge_detection_combine",fragmentShader:o,uniforms:n});return new el({name:"czm_edge_detection_composite",stages:[t,s]})}Uo.createSilhouetteStage=function(e){let t=Aut(e),n=new xr({name:"czm_silhouette_color_edges",fragmentShader:SN,uniforms:{silhouetteTexture:t.name}});return new el({name:"czm_silhouette",stages:[t,n],inputPreviousStageTexture:!1,uniforms:t.uniforms})};Uo.isSilhouetteSupported=function(e){return e.context.depthTexture};Uo.createBloomStage=function(){let e=new xr({name:"czm_bloom_contrast_bias",fragmentShader:pN,uniforms:{contrast:128,brightness:-.3}}),t=zz("czm_bloom_blur"),n=new el({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),i=new xr({name:"czm_bloom_generate_composite",fragmentShader:hN,uniforms:{glowOnly:!1,bloomTexture:n.name}}),r={};return Object.defineProperties(r,{glowOnly:{get:function(){return i.uniforms.glowOnly},set:function(o){i.uniforms.glowOnly=o}},contrast:{get:function(){return e.uniforms.contrast},set:function(o){e.uniforms.contrast=o}},brightness:{get:function(){return e.uniforms.brightness},set:function(o){e.uniforms.brightness=o}},delta:{get:function(){return t.uniforms.delta},set:function(o){t.uniforms.delta=o}},sigma:{get:function(){return t.uniforms.sigma},set:function(o){t.uniforms.sigma=o}},stepSize:{get:function(){return t.uniforms.stepSize},set:function(o){t.uniforms.stepSize=o}}}),new el({name:"czm_bloom",stages:[n,i],inputPreviousStageTexture:!1,uniforms:r})};Uo.createAmbientOcclusionStage=function(){let e=new xr({name:"czm_ambient_occlusion_generate",fragmentShader:uN,uniforms:{intensity:3,bias:.1,lengthCap:.26,stepSize:1.95,frustumLength:1e3,randomTexture:void 0}}),t=zz("czm_ambient_occlusion_blur");t.uniforms.stepSize=.86;let n=new el({name:"czm_ambient_occlusion_generate_blur",stages:[e,t]}),i=new xr({name:"czm_ambient_occlusion_composite",fragmentShader:fN,uniforms:{ambientOcclusionOnly:!1,ambientOcclusionTexture:n.name}}),r={};return Object.defineProperties(r,{intensity:{get:function(){return e.uniforms.intensity},set:function(o){e.uniforms.intensity=o}},bias:{get:function(){return e.uniforms.bias},set:function(o){e.uniforms.bias=o}},lengthCap:{get:function(){return e.uniforms.lengthCap},set:function(o){e.uniforms.lengthCap=o}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(o){e.uniforms.stepSize=o}},frustumLength:{get:function(){return e.uniforms.frustumLength},set:function(o){e.uniforms.frustumLength=o}},randomTexture:{get:function(){return e.uniforms.randomTexture},set:function(o){e.uniforms.randomTexture=o}},delta:{get:function(){return t.uniforms.delta},set:function(o){t.uniforms.delta=o}},sigma:{get:function(){return t.uniforms.sigma},set:function(o){t.uniforms.sigma=o}},blurStepSize:{get:function(){return t.uniforms.stepSize},set:function(o){t.uniforms.stepSize=o}},ambientOcclusionOnly:{get:function(){return i.uniforms.ambientOcclusionOnly},set:function(o){i.uniforms.ambientOcclusionOnly=o}}}),new el({name:"czm_ambient_occlusion",stages:[n,i],inputPreviousStageTexture:!1,uniforms:r})};Uo.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var xut=`#define FXAA_QUALITY_PRESET 39 +${vN} +${xN}`;Uo.createFXAAStage=function(){return new xr({name:"czm_FXAA",fragmentShader:xut,sampleMode:Ru.LINEAR})};Uo.createAcesTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=lN,new xr({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0}})};Uo.createFilmicTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=AN,new xr({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0}})};Uo.createReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=bN,new xr({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0}})};Uo.createModifiedReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=TN,new xr({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:z.WHITE,autoExposure:void 0}})};Uo.createAutoExposureStage=function(){return new wN};Uo.createBlackAndWhiteStage=function(){return new xr({name:"czm_black_and_white",fragmentShader:dN,uniforms:{gradations:5}})};Uo.createBrightnessStage=function(){return new xr({name:"czm_brightness",fragmentShader:mN,uniforms:{brightness:.5}})};Uo.createNightVisionStage=function(){return new xr({name:"czm_night_vision",fragmentShader:EN})};Uo.createDepthViewStage=function(){return new xr({name:"czm_depth_view",fragmentShader:gN})};Uo.createLensFlareStage=function(){return new xr({name:"czm_lens_flare",fragmentShader:CN,uniforms:{dirtTexture:$t("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:$t("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,dirtAmount:.4,earthRadius:re.WGS84.maximumRadius}})};var jf=Uo;function W_(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function IN(e){for(;u(e.length);)e=e.get(e.length-1);return e.name}function jq(e,t,n,i,r){if(!i.enabled||!i._isSupported(t))return r;let o=n[i.name]={};if(u(r)){let a=e.getStageByName(r);o[IN(a)]=!0}let s=i.uniforms;if(u(s)){let a=Object.getOwnPropertyNames(s),c=a.length;for(let l=0;l<c;++l){let f=s[a[l]];if(typeof f=="string"){let d=e.getStageByName(f);u(d)&&(o[IN(d)]=!0)}}}return i.name}function DN(e,t,n,i,r){if(u(i.enabled)&&!i.enabled||u(i._isSupported)&&!i._isSupported(t))return r;let o=r,s=!u(i.inputPreviousStageTexture)||i.inputPreviousStageTexture,a=r,c=i.length;for(let d=0;d<c;++d){let p=i.get(d);u(p.length)?a=DN(e,t,n,p,r):a=jq(e,t,n,p,r),s&&(r=a)}let l,f;if(s)for(l=1;l<c;++l)f=IN(i.get(l)),u(n[f])||(n[f]={}),n[f][o]=!0;else for(l=1;l<c;++l){f=IN(i.get(l));let d=n[f];for(let p=0;p<l;++p)d[IN(i.get(p))]=!0}return a}function Cut(e,t){let n={};if(u(e.ambientOcclusion)){let i=e.ambientOcclusion,r=e.bloom,o=e._tonemapping,s=e.fxaa,a=DN(e,t,n,i,void 0);a=DN(e,t,n,r,a),a=jq(e,t,n,o,a),a=DN(e,t,n,e,a),jq(e,t,n,s,a)}else DN(e,t,n,e,void 0);return n}function Tut(e,t,n){let r=e._collection.getStageByName(t),o=r._textureScale,s=r._forcePowerOfTwo,a=r._pixelFormat,c=r._pixelDatatype,l=r._clearColor,f,d,p=e._framebuffers,g=p.length;for(f=0;f<g;++f){if(d=p[f],o!==d.textureScale||s!==d.forcePowerOfTwo||a!==d.pixelFormat||c!==d.pixelDatatype||!z.equals(l,d.clearColor))continue;let m=d.stages,A=m.length,x=!1;for(let C=0;C<A;++C)if(n[m[C]]){x=!0;break}if(!x)break}return u(d)&&f<g?(d.stages.push(t),d):(d={textureScale:o,forcePowerOfTwo:s,pixelFormat:a,pixelDatatype:c,clearColor:l,stages:[t],buffer:new di({pixelFormat:a,pixelDatatype:c}),clear:void 0},p.push(d),d)}function Eut(e,t){let n=Cut(e._collection,t);for(let i in n)n.hasOwnProperty(i)&&(e._stageNameToFramebuffer[i]=Tut(e,i,n[i]))}function qq(e){let t=e._framebuffers,n=t.length;for(let i=0;i<n;++i)t[i].buffer.destroy()}function but(e,t){let n=e._width,i=e._height,r=e._framebuffers,o=r.length;for(let s=0;s<o;++s){let a=r[s],c=a.textureScale,l=Math.ceil(n*c),f=Math.ceil(i*c),d=Math.min(l,f);a.forcePowerOfTwo&&(P.isPowerOfTwo(d)||(d=P.nextPowerOfTwo(d)),l=d,f=d),a.buffer.update(t,l,f),a.clear=new ri({color:a.clearColor,framebuffer:a.buffer.framebuffer})}}W_.prototype.updateDependencies=function(){this._updateDependencies=!0};W_.prototype.update=function(e){let t=this._collection,n=this._updateDependencies,i=u(t.ambientOcclusion)&&t.ambientOcclusion.enabled&&t.ambientOcclusion._isSupported(e),r=u(t.bloom)&&t.bloom.enabled&&t.bloom._isSupported(e),o=u(t._tonemapping)&&t._tonemapping.enabled&&t._tonemapping._isSupported(e),s=u(t.fxaa)&&t.fxaa.enabled&&t.fxaa._isSupported(e),a=!u(t._activeStages)||t._activeStages.length>0||i||r||o||s;if((n||!a&&this._framebuffers.length>0)&&(qq(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),!n&&!a)return;this._framebuffers.length===0&&Eut(this,e);let c=e.drawingBufferWidth,l=e.drawingBufferHeight,f=this._width!==c||this._height!==l;!n&&!f||(this._width=c,this._height=l,this._updateDependencies=!1,qq(this),but(this,e))};W_.prototype.clear=function(e){let t=this._framebuffers;for(let n=0;n<t.length;++n)t[n].clear.execute(e)};W_.prototype.getStageByName=function(e){return this._collection.getStageByName(e)};W_.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)};W_.prototype.getFramebuffer=function(e){let t=this._stageNameToFramebuffer[e];if(u(t))return t.buffer.framebuffer};W_.prototype.isDestroyed=function(){return!1};W_.prototype.destroy=function(){return qq(this),ue(this)};var mC=W_;var PN={REINHARD:0,MODIFIED_REINHARD:1,FILMIC:2,ACES:3,validate:function(e){return e===PN.REINHARD||e===PN.MODIFIED_REINHARD||e===PN.FILMIC||e===PN.ACES}},Qy=Object.freeze(PN);var Yq=[];function tl(){let e=jf.createFXAAStage(),t=jf.createAmbientOcclusionStage(),n=jf.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=jf.createAutoExposureStage(),this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=Qy.ACES;let i=this._tonemapping;e.enabled=!1,t.enabled=!1,n.enabled=!1,i.enabled=!1;let r=new mC(this),o={},s=Yq;for(s.push(e,t,n,i);s.length>0;){let c=s.pop();o[c.name]=c,c._textureCache=r;let l=c.length;if(u(l))for(let f=0;f<l;++f)s.push(c.get(f))}this._stages=[],this._activeStages=[],this._previousActiveStages=[],this._randomTexture=void 0;let a=this;t.uniforms.randomTexture=function(){return a._randomTexture},this._ao=t,this._bloom=n,this._fxaa=e,this._aoEnabled=void 0,this._bloomEnabled=void 0,this._tonemappingEnabled=void 0,this._fxaaEnabled=void 0,this._activeStagesChanged=!1,this._stagesRemoved=!1,this._textureCacheDirty=!1,this._stageNames=o,this._textureCache=r}Object.defineProperties(tl.prototype,{ready:{get:function(){let e=!1,t=this._stages,n=t.length;for(let a=n-1;a>=0;--a){let c=t[a];e=e||c.ready&&c.enabled}let i=this._fxaa,r=this._ao,o=this._bloom,s=this._tonemapping;return e=e||i.ready&&i.enabled,e=e||r.ready&&r.enabled,e=e||o.ready&&o.enabled,e=e||s.ready&&s.enabled,e}},fxaa:{get:function(){return this._fxaa}},ambientOcclusion:{get:function(){return this._ao}},bloom:{get:function(){return this._bloom}},length:{get:function(){return Xq(this),this._stages.length}},outputTexture:{get:function(){let e=this._fxaa;if(e.enabled&&e.ready)return this.getOutputTexture(e.name);let t=this._stages,n=t.length;for(let s=n-1;s>=0;--s){let a=t[s];if(u(a)&&a.ready&&a.enabled)return this.getOutputTexture(a.name)}let i=this._tonemapping;if(i.enabled&&i.ready)return this.getOutputTexture(i.name);let r=this._bloom;if(r.enabled&&r.ready)return this.getOutputTexture(r.name);let o=this._ao;if(o.enabled&&o.ready)return this.getOutputTexture(o.name)}},hasSelected:{get:function(){let e=this._stages.slice();for(;e.length>0;){let t=e.pop();if(!u(t))continue;if(u(t.selected))return!0;let n=t.length;if(u(n))for(let i=0;i<n;++i)e.push(t.get(i))}return!1}},tonemapper:{get:function(){return this._tonemapper},set:function(e){if(this._tonemapper===e)return;u(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());let t=this._autoExposureEnabled,n;switch(e){case Qy.REINHARD:n=jf.createReinhardTonemappingStage(t);break;case Qy.MODIFIED_REINHARD:n=jf.createModifiedReinhardTonemappingStage(t);break;case Qy.FILMIC:n=jf.createFilmicTonemappingStage(t);break;default:n=jf.createAcesTonemappingStage(t);break}if(t){let i=this._autoExposure;n.uniforms.autoExposure=function(){return i.outputTexture}}this._tonemapper=e,this._tonemapping=n,u(this._stageNames)&&(this._stageNames[n.name]=n,n._textureCache=this._textureCache),this._textureCacheDirty=!0}}});function Xq(e){if(!e._stagesRemoved)return;e._stagesRemoved=!1;let t=[],n=e._stages,i=n.length;for(let r=0,o=0;r<i;++r){let s=n[r];s&&(s._index=o++,t.push(s))}e._stages=t}tl.prototype.add=function(e){let t=this._stageNames,n=Yq;for(n.push(e);n.length>0;){let r=n.pop();t[r.name]=r,r._textureCache=this._textureCache;let o=r.length;if(u(o))for(let s=0;s<o;++s)n.push(r.get(s))}let i=this._stages;return e._index=i.length,i.push(e),this._textureCacheDirty=!0,e};tl.prototype.remove=function(e){if(!this.contains(e))return!1;let t=this._stageNames,n=Yq;for(n.push(e);n.length>0;){let i=n.pop();delete t[i.name];let r=i.length;if(u(r))for(let o=0;o<r;++o)n.push(i.get(o))}return this._stages[e._index]=void 0,this._stagesRemoved=!0,this._textureCacheDirty=!0,e._index=void 0,e._textureCache=void 0,e.destroy(),!0};tl.prototype.contains=function(e){return u(e)&&u(e._index)&&e._textureCache===this._textureCache};tl.prototype.get=function(e){return Xq(this),this._stages[e]};tl.prototype.removeAll=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)this.remove(e[n]);e.length=0};tl.prototype.getStageByName=function(e){return this._stageNames[e]};tl.prototype.update=function(e,t,n){Xq(this);let i=this._activeStages,r=this._activeStages=this._previousActiveStages;this._previousActiveStages=i;let o=this._stages,s=r.length=o.length,a,c,l=0;for(a=0;a<s;++a)c=o[a],c.ready&&c.enabled&&c._isSupported(e)&&(r[l++]=c);r.length=l;let f=l!==i.length;if(!f){for(a=0;a<l;++a)if(r[a]!==i[a]){f=!0;break}}let d=this._ao,p=this._bloom,g=this._autoExposure,m=this._tonemapping,A=this._fxaa;m.enabled=n;let x=d.enabled&&d._isSupported(e),C=p.enabled&&p._isSupported(e),T=m.enabled&&m._isSupported(e),E=A.enabled&&A._isSupported(e);if((f||this._textureCacheDirty||x!==this._aoEnabled||C!==this._bloomEnabled||T!==this._tonemappingEnabled||E!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._aoEnabled=x,this._bloomEnabled=C,this._tonemappingEnabled=T,this._fxaaEnabled=E,this._textureCacheDirty=!1),u(this._randomTexture)&&!x&&(this._randomTexture.destroy(),this._randomTexture=void 0),!u(this._randomTexture)&&x){s=256*256*3;let S=new Uint8Array(s);for(a=0;a<s;a+=3)S[a]=Math.floor(Math.random()*255);this._randomTexture=new Rt({context:e,pixelFormat:at.RGB,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:S,width:256,height:256},sampler:new ln({wrapS:Sn.REPEAT,wrapT:Sn.REPEAT,minificationFilter:sn.NEAREST,magnificationFilter:Ti.NEAREST})})}for(this._textureCache.update(e),A.update(e,t),d.update(e,t),p.update(e,t),m.update(e,t),this._autoExposureEnabled&&g.update(e,t),s=o.length,a=0;a<s;++a)o[a].update(e,t);for(l=0,a=0;a<s;++a)c=o[a],c.ready&&c.enabled&&c._isSupported(e)&&l++;f=l!==r.length,f&&this.update(e,t,n)};tl.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)};function pC(e){for(;u(e.length);)e=e.get(e.length-1);return e.outputTexture}tl.prototype.getOutputTexture=function(e){let t=this.getStageByName(e);if(u(t))return pC(t)};function Vm(e,t,n,i,r){if(u(e.execute)){e.execute(t,n,i,r);return}let o=e.length,s;if(e.inputPreviousStageTexture)for(Vm(e.get(0),t,n,i,r),s=1;s<o;++s)Vm(e.get(s),t,pC(e.get(s-1)),i,r);else for(s=0;s<o;++s)Vm(e.get(s),t,n,i,r)}tl.prototype.execute=function(e,t,n,i){let r=this._activeStages,o=r.length,s=this._fxaa,a=this._ao,c=this._bloom,l=this._autoExposure,f=this._tonemapping,d=a.enabled&&a._isSupported(e),p=c.enabled&&c._isSupported(e),g=this._autoExposureEnabled,m=f.enabled&&f._isSupported(e),A=s.enabled&&s._isSupported(e);if(!A&&!d&&!p&&!m&&o===0)return;let x=t;d&&a.ready&&(Vm(a,e,x,n,i),x=pC(a)),p&&c.ready&&(Vm(c,e,x,n,i),x=pC(c)),g&&l.ready&&Vm(l,e,x,n,i),m&&f.ready&&(Vm(f,e,x,n,i),x=pC(f));let C=x;if(o>0){Vm(r[0],e,x,n,i);for(let T=1;T<o;++T)Vm(r[T],e,pC(r[T-1]),n,i);C=pC(r[o-1])}A&&s.ready&&Vm(s,e,C,n,i)};tl.prototype.copy=function(e,t){if(!u(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(kl,{uniformMap:{colorTexture:function(){return n.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};tl.prototype.isDestroyed=function(){return!1};tl.prototype.destroy=function(){return this._fxaa.destroy(),this._ao.destroy(),this._bloom.destroy(),this._autoExposure.destroy(),this._tonemapping.destroy(),this.removeAll(),this._textureCache=this._textureCache&&this._textureCache.destroy(),ue(this)};var ON=tl;var Sut={SHIFT:0,CTRL:1,ALT:2},ca=Object.freeze(Sut);var vut={LEFT_DOWN:0,LEFT_UP:1,LEFT_CLICK:2,LEFT_DOUBLE_CLICK:3,RIGHT_DOWN:5,RIGHT_UP:6,RIGHT_CLICK:7,MIDDLE_DOWN:10,MIDDLE_UP:11,MIDDLE_CLICK:12,MOUSE_MOVE:15,WHEEL:16,PINCH_START:17,PINCH_END:18,PINCH_MOVE:19},An=Object.freeze(vut);function $y(e,t,n){let i=e._element;if(i===document)return n.x=t.clientX,n.y=t.clientY,n;let r=i.getBoundingClientRect();return n.x=t.clientX-r.left,n.y=t.clientY-r.top,n}function eY(e,t){let n=e;return u(t)&&(n+=`+${t}`),n}function _C(e){if(e.shiftKey)return ca.SHIFT;if(e.ctrlKey)return ca.CTRL;if(e.altKey)return ca.ALT}var As={LEFT:0,MIDDLE:1,RIGHT:2};function Bu(e,t,n,i){function r(o){i(e,o)}Ht.isInternetExplorer()?n.addEventListener(t,r,!1):n.addEventListener(t,r,{capture:!1,passive:!1}),e._removalFunctions.push(function(){n.removeEventListener(t,r,!1)})}function wut(e){let t=e._element,n=u(t.disableRootEvents)?t:document;Ht.supportsPointerEvents()?(Bu(e,"pointerdown",t,Rut),Bu(e,"pointerup",t,Cye),Bu(e,"pointermove",t,But),Bu(e,"pointercancel",t,Cye)):(Bu(e,"mousedown",t,Tye),Bu(e,"mouseup",n,Eye),Bu(e,"mousemove",n,bye),Bu(e,"touchstart",t,Out),Bu(e,"touchend",n,_ye),Bu(e,"touchmove",n,Mut),Bu(e,"touchcancel",n,_ye)),Bu(e,"dblclick",t,Iut);let i;"onwheel"in t?i="wheel":document.onmousewheel!==void 0?i="mousewheel":i="DOMMouseScroll",Bu(e,i,t,Put)}function Dut(e){let t=e._removalFunctions;for(let n=0;n<t.length;++n)t[n]()}var dye={position:new H};function tY(e){e._lastSeenTouchEvent=yi()}function nY(e){return yi()-e._lastSeenTouchEvent>Ah.mouseEmulationIgnoreMilliseconds}function $q(e,t,n){let i=e.x-t.x,r=e.y-t.y;return Math.sqrt(i*i+r*r)<n}function Tye(e,t){if(!nY(e))return;let n=t.button;e._buttonDown[n]=!0;let i;if(n===As.LEFT)i=An.LEFT_DOWN;else if(n===As.MIDDLE)i=An.MIDDLE_DOWN;else if(n===As.RIGHT)i=An.RIGHT_DOWN;else return;let r=$y(e,t,e._primaryPosition);H.clone(r,e._primaryStartPosition),H.clone(r,e._primaryPreviousPosition);let o=_C(t),s=e.getInputAction(i,o);u(s)&&(H.clone(r,dye.position),s(dye),t.preventDefault())}var hye={position:new H},mye={position:new H};function Kq(e,t,n,i){let r=_C(i),o=e.getInputAction(t,r),s=e.getInputAction(n,r);if(u(o)||u(s)){let a=$y(e,i,e._primaryPosition);if(u(o)&&(H.clone(a,hye.position),o(hye)),u(s)){let c=e._primaryStartPosition;$q(c,a,e._clickPixelTolerance)&&(H.clone(a,mye.position),s(mye))}}}function Eye(e,t){if(!nY(e))return;let n=t.button;n!==As.LEFT&&n!==As.MIDDLE&&n!==As.RIGHT||(e._buttonDown[As.LEFT]&&(Kq(e,An.LEFT_UP,An.LEFT_CLICK,t),e._buttonDown[As.LEFT]=!1),e._buttonDown[As.MIDDLE]&&(Kq(e,An.MIDDLE_UP,An.MIDDLE_CLICK,t),e._buttonDown[As.MIDDLE]=!1),e._buttonDown[As.RIGHT]&&(Kq(e,An.RIGHT_UP,An.RIGHT_CLICK,t),e._buttonDown[As.RIGHT]=!1))}var Jq={startPosition:new H,endPosition:new H};function bye(e,t){if(!nY(e))return;let n=_C(t),i=$y(e,t,e._primaryPosition),r=e._primaryPreviousPosition,o=e.getInputAction(An.MOUSE_MOVE,n);u(o)&&(H.clone(r,Jq.startPosition),H.clone(i,Jq.endPosition),o(Jq)),H.clone(i,r),(e._buttonDown[As.LEFT]||e._buttonDown[As.MIDDLE]||e._buttonDown[As.RIGHT])&&t.preventDefault()}var pye={position:new H};function Iut(e,t){let n=t.button,i;if(n===As.LEFT)i=An.LEFT_DOUBLE_CLICK;else return;let r=_C(t),o=e.getInputAction(i,r);u(o)&&($y(e,t,pye.position),o(pye))}function Put(e,t){let n;if(u(t.deltaY)){let o=t.deltaMode;o===t.DOM_DELTA_PIXEL?n=-t.deltaY:o===t.DOM_DELTA_LINE?n=-t.deltaY*40:n=-t.deltaY*120}else t.detail>0?n=t.detail*-120:n=t.wheelDelta;if(!u(n))return;let i=_C(t),r=e.getInputAction(An.WHEEL,i);u(r)&&(r(n),t.preventDefault())}function Out(e,t){tY(e);let n=t.changedTouches,i,r=n.length,o,s,a=e._positions;for(i=0;i<r;++i)o=n[i],s=o.identifier,a.set(s,$y(e,o,new H));Hz(e,t);let c=e._previousPositions;for(i=0;i<r;++i)o=n[i],s=o.identifier,c.set(s,H.clone(a.get(s)))}function _ye(e,t){tY(e);let n=t.changedTouches,i,r=n.length,o,s,a=e._positions;for(i=0;i<r;++i)o=n[i],s=o.identifier,a.remove(s);Hz(e,t);let c=e._previousPositions;for(i=0;i<r;++i)o=n[i],s=o.identifier,c.remove(s)}var gye={position:new H},Zq={position1:new H,position2:new H},yye={position:new H},Aye={position:new H},xye={position:new H};function Hz(e,t){let n=_C(t),i=e._positions,r=i.length,o,s,a=e._isPinching;if(r!==1&&e._buttonDown[As.LEFT]){if(e._buttonDown[As.LEFT]=!1,u(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),o=e.getInputAction(An.LEFT_UP,n),u(o)&&(H.clone(e._primaryPosition,yye.position),o(yye)),r===0&&!e._isTouchHolding&&(s=e.getInputAction(An.LEFT_CLICK,n),u(s))){let c=e._primaryStartPosition,l=e._previousPositions.values[0];$q(c,l,e._clickPixelTolerance)&&(H.clone(e._primaryPosition,Aye.position),s(Aye))}e._isTouchHolding=!1}if(r===0&&a&&(e._isPinching=!1,o=e.getInputAction(An.PINCH_END,n),u(o)&&o()),r===1&&!a){let c=i.values[0];H.clone(c,e._primaryPosition),H.clone(c,e._primaryStartPosition),H.clone(c,e._primaryPreviousPosition),e._buttonDown[As.LEFT]=!0,o=e.getInputAction(An.LEFT_DOWN,n),u(o)&&(H.clone(c,gye.position),o(gye)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,s=e.getInputAction(An.RIGHT_CLICK,n),u(s))){let l=e._primaryStartPosition,f=e._previousPositions.values[0];$q(l,f,e._holdPixelTolerance)&&(H.clone(e._primaryPosition,xye.position),s(xye))}},Ah.touchHoldDelayMilliseconds),t.preventDefault()}r===2&&!a&&(e._isPinching=!0,o=e.getInputAction(An.PINCH_START,n),u(o)&&(H.clone(i.values[0],Zq.position1),H.clone(i.values[1],Zq.position2),o(Zq),t.preventDefault()))}function Mut(e,t){tY(e);let n=t.changedTouches,i,r=n.length,o,s,a=e._positions;for(i=0;i<r;++i){o=n[i],s=o.identifier;let l=a.get(s);u(l)&&$y(e,o,l)}Sye(e,t);let c=e._previousPositions;for(i=0;i<r;++i)o=n[i],s=o.identifier,H.clone(a.get(s),c.get(s))}var Qq={startPosition:new H,endPosition:new H},MN={distance:{startPosition:new H,endPosition:new H},angleAndHeight:{startPosition:new H,endPosition:new H}};function Sye(e,t){let n=_C(t),i=e._positions,r=e._previousPositions,o=i.length,s;if(o===1&&e._buttonDown[As.LEFT]){let a=i.values[0];H.clone(a,e._primaryPosition);let c=e._primaryPreviousPosition;s=e.getInputAction(An.MOUSE_MOVE,n),u(s)&&(H.clone(c,Qq.startPosition),H.clone(a,Qq.endPosition),s(Qq)),H.clone(a,c),t.preventDefault()}else if(o===2&&e._isPinching&&(s=e.getInputAction(An.PINCH_MOVE,n),u(s))){let a=i.values[0],c=i.values[1],l=r.values[0],f=r.values[1],d=c.x-a.x,p=c.y-a.y,g=Math.sqrt(d*d+p*p)*.25,m=f.x-l.x,A=f.y-l.y,x=Math.sqrt(m*m+A*A)*.25,C=(c.y+a.y)*.125,T=(f.y+l.y)*.125,E=Math.atan2(p,d),S=Math.atan2(A,m);H.fromElements(0,x,MN.distance.startPosition),H.fromElements(0,g,MN.distance.endPosition),H.fromElements(S,T,MN.angleAndHeight.startPosition),H.fromElements(E,C,MN.angleAndHeight.endPosition),s(MN)}}function Rut(e,t){if(t.target.setPointerCapture(t.pointerId),t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.set(i,$y(e,t,new H)),Hz(e,t),e._previousPositions.set(i,H.clone(n.get(i)))}else Tye(e,t)}function Cye(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.remove(i),Hz(e,t),e._previousPositions.remove(i)}else Eye(e,t)}function But(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId,r=n.get(i);if(!u(r))return;$y(e,t,r),Sye(e,t);let o=e._previousPositions;H.clone(n.get(i),o.get(i))}else bye(e,t)}function Ah(e){this._inputEvents={},this._buttonDown={LEFT:!1,MIDDLE:!1,RIGHT:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-Ah.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new H,this._primaryPosition=new H,this._primaryPreviousPosition=new H,this._positions=new Ct,this._previousPositions=new Ct,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=y(e,document),wut(this)}Ah.prototype.setInputAction=function(e,t,n){let i=eY(t,n);this._inputEvents[i]=e};Ah.prototype.getInputAction=function(e,t){let n=eY(e,t);return this._inputEvents[n]};Ah.prototype.removeInputAction=function(e,t){let n=eY(e,t);delete this._inputEvents[n]};Ah.prototype.isDestroyed=function(){return!1};Ah.prototype.destroy=function(){return Dut(this),ue(this)};Ah.mouseEmulationIgnoreMilliseconds=800;Ah.touchHoldDelayMilliseconds=1500;var Lu=Ah;function gC(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}gC.prototype.completeMorph=function(){u(this._completeMorph)&&this._completeMorph()};gC.prototype.morphTo2D=function(e,t){u(this._completeMorph)&&this._completeMorph();let n=this._scene;this._previousMode=n.mode,this._morphToOrthographic=n.camera.frustum instanceof en,!(this._previousMode===ne.SCENE2D||this._previousMode===ne.MORPHING)&&(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE2D,!0),n._mode=ne.MORPHING,n.camera._setTransform(N.IDENTITY),this._previousMode===ne.COLUMBUS_VIEW?hft(this,e):xft(this,e,t),e===0&&u(this._completeMorph)&&this._completeMorph())};var Lut=new h,Nut=new h,Fut=new h,Uut=new h,Vut=new h,kut=new h,zut=new h,Hut=new me,Gut=new N,Wut=new wi,jut=new en,qut={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};gC.prototype.morphToColumbusView=function(e,t){u(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,this._previousMode===ne.COLUMBUS_VIEW||this._previousMode===ne.MORPHING)return;this._scene.morphStart.raiseEvent(this,this._previousMode,ne.COLUMBUS_VIEW,!0),n.camera._setTransform(N.IDENTITY);let i=Lut,r=Nut,o=Fut;if(e>0)i.x=0,i.y=-1,i.z=1,i=h.multiplyByScalar(h.normalize(i,i),5*t.maximumRadius,i),h.negate(h.normalize(i,r),r),h.cross(h.UNIT_X,r,o);else{let l=n.camera;if(this._previousMode===ne.SCENE2D)h.clone(l.position,i),i.z=l.frustum.right-l.frustum.left,h.negate(h.UNIT_Z,r),h.clone(h.UNIT_Y,o);else{h.clone(l.positionWC,i),h.clone(l.directionWC,r),h.clone(l.upWC,o);let f=t.scaleToGeodeticSurface(i,zut),d=Mt.eastNorthUpToFixedFrame(f,t,Gut);N.inverseTransformation(d,d),n.mapProjection.project(t.cartesianToCartographic(i,Hut),i),N.multiplyByPointAsVector(d,r,r),N.multiplyByPointAsVector(d,o,o)}}let s;this._morphToOrthographic?(s=jut,s.width=n.camera.frustum.right-n.camera.frustum.left,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(s=Wut,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,s.fov=P.toRadians(60));let a=qut;a.position=i,a.direction=r,a.up=o,a.frustum=s;let c=Tft(a);RN(this,c),this._previousMode===ne.SCENE2D?Cft(this,e,a,c):(a.position2D=N.multiplyByPoint(fr.TRANSFORM_2D,i,Uut),a.direction2D=N.multiplyByPointAsVector(fr.TRANSFORM_2D,r,Vut),a.up2D=N.multiplyByPointAsVector(fr.TRANSFORM_2D,o,kut),n._mode=ne.MORPHING,Nye(this,e,a,c)),e===0&&u(this._completeMorph)&&this._completeMorph()};var oY={position:new h,direction:new h,up:new h,frustum:void 0},wye=new wi;gC.prototype.morphTo3D=function(e,t){u(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,!(this._previousMode===ne.SCENE3D||this._previousMode===ne.MORPHING)){if(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE3D,!0),n._mode=ne.MORPHING,n.camera._setTransform(N.IDENTITY),this._previousMode===ne.SCENE2D)ift(this,e,t);else{let i;e>0?(i=oY,h.fromDegrees(0,0,5*t.maximumRadius,t,i.position),h.negate(i.position,i.direction),h.normalize(i.direction,i.direction),h.clone(h.UNIT_Z,i.up)):i=Dye(this,t);let r,o=n.camera;o.frustum instanceof en?r=o.frustum.clone():(r=wye,r.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,r.fov=P.toRadians(60)),i.frustum=r;let s=Uye(i);RN(this,s),rY(this,e,i,s)}e===0&&u(this._completeMorph)&&this._completeMorph()}};gC.prototype.isDestroyed=function(){return!1};gC.prototype.destroy=function(){return Gz(this),ue(this)};function RN(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new Lu(e._scene.canvas);let n=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=n,e._morphHandler.setInputAction(n,An.LEFT_DOWN),e._morphHandler.setInputAction(n,An.MIDDLE_DOWN),e._morphHandler.setInputAction(n,An.RIGHT_DOWN),e._morphHandler.setInputAction(n,An.WHEEL)}}function Gz(e){let t=e._currentTweens;for(let n=0;n<t.length;++n)t[n].cancelTween();e._currentTweens.length=0,e._morphHandler=e._morphHandler&&e._morphHandler.destroy()}var Yut=new me,Xut=new h,Kut=new N;function Dye(e,t){let n=e._scene,i=n.camera,r=oY,o=r.position,s=r.direction,a=r.up,c=n.mapProjection.unproject(i.position,Yut);t.cartographicToCartesian(c,o);let l=t.scaleToGeodeticSurface(o,Xut),f=Mt.eastNorthUpToFixedFrame(l,t,Kut);return N.multiplyByPointAsVector(f,i.direction,s),N.multiplyByPointAsVector(f,i.up,a),r}var Jut=new h,Zut=new h,Qut=new h,$ut=new h,eft=new h,tft=new h;function rY(e,t,n,i){t*=.5;let r=e._scene,o=r.camera,s=h.clone(o.position,Jut),a=h.clone(o.direction,Zut),c=h.clone(o.up,Qut),l=N.multiplyByPoint(fr.TRANSFORM_2D_INVERSE,n.position,$ut),f=N.multiplyByPointAsVector(fr.TRANSFORM_2D_INVERSE,n.direction,eft),d=N.multiplyByPointAsVector(fr.TRANSFORM_2D_INVERSE,n.up,tft);function p(m){qf(s,l,m.time,o.position),qf(a,f,m.time,o.direction),qf(c,d,m.time,o.up),h.cross(o.direction,o.up,o.right),h.normalize(o.right,o.right)}let g=r.tweens.add({duration:t,easingFunction:No.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){Fye(e,r,0,1,t,i)}});e._currentTweens.push(g)}var nft=new en,Iye=new h,Pye=new h,Oye=new h,sY=new h,Mye=new h,Rye=new h;function ift(e,t,n){t/=3;let i=e._scene,r=i.camera,o;t>0?(o=oY,h.fromDegrees(0,0,5*n.maximumRadius,n,o.position),h.negate(o.position,o.direction),h.normalize(o.direction,o.direction),h.clone(h.UNIT_Z,o.up)):(r.position.z=r.frustum.right-r.frustum.left,o=Dye(e,n));let s;e._morphToOrthographic?(s=nft,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.width=r.frustum.right-r.frustum.left):(s=wye,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.fov=P.toRadians(60)),o.frustum=s;let a=Uye(o);RN(e,a);let c;e._morphToOrthographic?c=function(){rY(e,t,o,a)}:c=function(){Lye(e,t,o,function(){rY(e,t,o,a)})},t>0?(i._mode=ne.SCENE2D,r.flyTo({duration:t,destination:h.fromDegrees(0,0,5*n.maximumRadius,n,sY),complete:function(){i._mode=ne.MORPHING,c()}})):c()}function qf(e,t,n,i){return h.lerp(e,t,n,i)}function Bye(e,t,n,i,r){let o=e._scene,s=o.camera;if(s.frustum instanceof en)return;let a=s.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,l=n.position.z*Math.tan(a*.5);s.frustum.far=l/Math.tan(c*.5)+1e7;function f(p){s.frustum.fov=P.lerp(a,c,p.time);let g=l/Math.tan(s.frustum.fov*.5);i(s,g)}let d=o.tweens.add({duration:t,easingFunction:No.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){s.frustum=n.frustum.clone(),r(e)}});e._currentTweens.push(d)}var rft=new h,oft=new h,sft=new h,iY=new h,aft=new h,cft=new h,lft=new So,uft=new vn,fft=new h,dft={position:void 0,direction:void 0,up:void 0,frustum:void 0};function hft(e,t){t*=.5;let n=e._scene,i=n.camera,r=h.clone(i.position,rft),o=h.clone(i.direction,oft),s=h.clone(i.up,sft),a=h.negate(h.UNIT_Z,aft),c=h.clone(h.UNIT_Y,cft),l=iY;if(t>0)h.clone(h.ZERO,iY),l.z=5*n.mapProjection.ellipsoid.maximumRadius;else{h.clone(r,iY);let x=uft;N.multiplyByPoint(fr.TRANSFORM_2D,r,x.origin),N.multiplyByPointAsVector(fr.TRANSFORM_2D,o,x.direction);let C=n.globe;if(u(C)){let T=C.pickWorldCoordinates(x,n,!0,fft);u(T)&&(N.multiplyByPoint(fr.TRANSFORM_2D_INVERSE,T,l),l.z+=h.distance(r,l))}}let f=lft;f.right=l.z*.5,f.left=-f.right,f.top=f.right*(n.drawingBufferHeight/n.drawingBufferWidth),f.bottom=-f.top;let d=dft;d.position=l,d.direction=a,d.up=c,d.frustum=f;let p=Vye(d);RN(e,p);function g(x){qf(r,l,x.time,i.position),qf(o,a,x.time,i.direction),qf(s,c,x.time,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i._adjustOrthographicFrustum(!0)}function m(x,C){x.position.z=C}let A=n.tweens.add({duration:t,easingFunction:No.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){Bye(e,t,d,m,p)}});e._currentTweens.push(A)}var vye=new me,mft={position:new h,direction:new h,up:new h,position2D:new h,direction2D:new h,up2D:new h,frustum:new So},pft={position:new h,direction:new h,up:new h,frustum:void 0},_ft=new h,gft=new vn,yft=new N,Aft=new h;function xft(e,t,n){t*=.5;let i=e._scene,r=i.camera,o=mft;if(t>0)h.clone(h.ZERO,o.position),o.position.z=5*n.maximumRadius,h.negate(h.UNIT_Z,o.direction),h.clone(h.UNIT_Y,o.up);else{n.cartesianToCartographic(r.positionWC,vye),i.mapProjection.project(vye,o.position),h.negate(h.UNIT_Z,o.direction),h.clone(h.UNIT_Y,o.up);let d=gft;h.clone(o.position2D,d.origin);let p=h.clone(r.directionWC,d.direction),g=n.scaleToGeodeticSurface(r.positionWC,Aft),m=Mt.eastNorthUpToFixedFrame(g,n,yft);N.inverseTransformation(m,m),N.multiplyByPointAsVector(m,p,p),N.multiplyByPointAsVector(fr.TRANSFORM_2D,p,p);let A=i.globe;if(u(A)){let x=A.pickWorldCoordinates(d,i,!0,_ft);if(u(x)){let C=h.distance(o.position2D,x);x.x+=C,h.clone(x,o.position2D)}}}function s(d,p){d.position.x=p}N.multiplyByPoint(fr.TRANSFORM_2D,o.position,o.position2D),N.multiplyByPointAsVector(fr.TRANSFORM_2D,o.direction,o.direction2D),N.multiplyByPointAsVector(fr.TRANSFORM_2D,o.up,o.up2D);let a=o.frustum;a.right=o.position.z*.5,a.left=-a.right,a.top=a.right*(i.drawingBufferHeight/i.drawingBufferWidth),a.bottom=-a.top;let c=pft;N.multiplyByPoint(fr.TRANSFORM_2D_INVERSE,o.position2D,c.position),h.clone(o.direction,c.direction),h.clone(o.up,c.up),c.frustum=a;let l=Vye(c);RN(e,l);function f(){Bye(e,t,o,s,l)}Nye(e,t,o,f)}function Lye(e,t,n,i){let r=e._scene,o=r.camera,s=o.frustum.right-o.frustum.left;o.frustum=n.frustum.clone();let a=o.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,l=s*Math.tan(a*.5);o.frustum.far=l/Math.tan(c*.5)+1e7,o.frustum.fov=c;function f(p){o.frustum.fov=P.lerp(c,a,p.time),o.position.z=l/Math.tan(o.frustum.fov*.5)}let d=r.tweens.add({duration:t,easingFunction:No.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){i(e)}});e._currentTweens.push(d)}function Cft(e,t,n,i){t*=.5;let r=e._scene,o=r.camera,s=h.clone(n.position,sY),a=h.clone(n.direction,Mye),c=h.clone(n.up,Rye);r._mode=ne.MORPHING;function l(){o.frustum=n.frustum.clone();let f=h.clone(o.position,Iye),d=h.clone(o.direction,Pye),p=h.clone(o.up,Oye);f.z=s.z;function g(A){qf(f,s,A.time,o.position),qf(d,a,A.time,o.direction),qf(p,c,A.time,o.up),h.cross(o.direction,o.up,o.right),h.normalize(o.right,o.right)}let m=r.tweens.add({duration:t,easingFunction:No.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){i(e)}});e._currentTweens.push(m)}e._morphToOrthographic?l():Lye(e,0,n,l)}function Nye(e,t,n,i){let r=e._scene,o=r.camera,s=h.clone(o.position,Iye),a=h.clone(o.direction,Pye),c=h.clone(o.up,Oye),l=h.clone(n.position2D,sY),f=h.clone(n.direction2D,Mye),d=h.clone(n.up2D,Rye);function p(m){qf(s,l,m.time,o.position),qf(a,f,m.time,o.direction),qf(c,d,m.time,o.up),h.cross(o.direction,o.up,o.right),h.normalize(o.right,o.right),o._adjustOrthographicFrustum(!0)}let g=r.tweens.add({duration:t,easingFunction:No.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){Fye(e,r,1,0,t,i)}});e._currentTweens.push(g)}function Fye(e,t,n,i,r,o){let s={object:t,property:"morphTime",startValue:n,stopValue:i,duration:r,easingFunction:No.QUARTIC_OUT};u(o)&&(s.complete=function(){o(e)});let a=t.tweens.addProperty(s);e._currentTweens.push(a)}function Uye(e){return function(t){let n=t._scene;n._mode=ne.SCENE3D,n.morphTime=ne.getMorphTime(ne.SCENE3D),Gz(t);let i=n.camera;(t._previousMode!==ne.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone());let r=i.frustum;n.frameState.useLogDepth&&(r.near=.1,r.far=1e10);let o=u(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE3D,o)}}function Vye(e){return function(t){let n=t._scene;n._mode=ne.SCENE2D,n.morphTime=ne.getMorphTime(ne.SCENE2D),Gz(t);let i=n.camera;h.clone(e.position,i.position),i.position.z=n.mapProjection.ellipsoid.maximumRadius*2,h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone();let r=u(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE2D,r)}}function Tft(e){return function(t){let n=t._scene;n._mode=ne.COLUMBUS_VIEW,n.morphTime=ne.getMorphTime(ne.COLUMBUS_VIEW),Gz(t);let i=n.camera;(t._previousModeMode!==ne.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right));let r=i.frustum;n.frameState.useLogDepth&&(r.near=.1,r.far=1e10);let o=u(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.COLUMBUS_VIEW,o)}}var BN=gC;var Eft={LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4},Li=Object.freeze(Eft);function gc(e,t){let n=e;return u(t)&&(n+=`+${t}`),n}function bft(e,t){H.clone(e.distance.startPosition,t.distance.startPosition),H.clone(e.distance.endPosition,t.distance.endPosition),H.clone(e.angleAndHeight.startPosition,t.angleAndHeight.startPosition),H.clone(e.angleAndHeight.endPosition,t.angleAndHeight.endPosition)}function kye(e,t,n){let i=gc(Li.PINCH,t),r=e._update,o=e._isDown,s=e._eventStartPosition,a=e._pressTime,c=e._releaseTime;r[i]=!0,o[i]=!1,s[i]=new H;let l=e._movement[i];u(l)||(l=e._movement[i]={}),l.distance={startPosition:new H,endPosition:new H},l.angleAndHeight={startPosition:new H,endPosition:new H},l.prevAngle=0,e._eventHandler.setInputAction(function(f){e._buttonsDown++,o[i]=!0,a[i]=new Date,H.lerp(f.position1,f.position2,.5,s[i])},An.PINCH_START,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),o[i]=!1,c[i]=new Date},An.PINCH_END,t),e._eventHandler.setInputAction(function(f){if(o[i]){r[i]?(bft(f,l),r[i]=!1,l.prevAngle=l.angleAndHeight.startPosition.x):(H.clone(f.distance.endPosition,l.distance.endPosition),H.clone(f.angleAndHeight.endPosition,l.angleAndHeight.endPosition));let d=l.angleAndHeight.endPosition.x,p=l.prevAngle,g=Math.PI*2;for(;d>=p+Math.PI;)d-=g;for(;d<p-Math.PI;)d+=g;l.angleAndHeight.endPosition.x=-d*n.clientWidth/12,l.angleAndHeight.startPosition.x=-p*n.clientWidth/12}},An.PINCH_MOVE,t)}function zye(e,t){let n=gc(Li.WHEEL,t),i=e._pressTime,r=e._releaseTime,o=e._update;o[n]=!0;let s=e._movement[n];u(s)||(s=e._movement[n]={});let a=e._lastMovement[n];u(a)||(a=e._lastMovement[n]={startPosition:new H,endPosition:new H,valid:!1}),s.startPosition=new H,H.clone(H.ZERO,s.startPosition),s.endPosition=new H,e._eventHandler.setInputAction(function(c){let l=7.5*P.toRadians(c);i[n]=r[n]=new Date,s.endPosition.x=0,s.endPosition.y=l,H.clone(s.endPosition,a.endPosition),a.valid=!0,o[n]=!1},An.WHEEL,t)}function SS(e,t,n){let i=gc(n,t),r=e._isDown,o=e._eventStartPosition,s=e._pressTime,a=e._releaseTime;r[i]=!1,o[i]=new H;let c=e._lastMovement[i];u(c)||(c=e._lastMovement[i]={startPosition:new H,endPosition:new H,valid:!1});let l,f;n===Li.LEFT_DRAG?(l=An.LEFT_DOWN,f=An.LEFT_UP):n===Li.RIGHT_DRAG?(l=An.RIGHT_DOWN,f=An.RIGHT_UP):n===Li.MIDDLE_DRAG&&(l=An.MIDDLE_DOWN,f=An.MIDDLE_UP),e._eventHandler.setInputAction(function(d){e._buttonsDown++,c.valid=!1,r[i]=!0,s[i]=new Date,H.clone(d.position,o[i])},l,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),r[i]=!1,a[i]=new Date},f,t)}function Hye(e,t){H.clone(e.startPosition,t.startPosition),H.clone(e.endPosition,t.endPosition)}function Gye(e,t){let n=e._update,i=e._movement,r=e._lastMovement,o=e._isDown;for(let s in Li)if(Li.hasOwnProperty(s)){let a=Li[s];if(u(a)){let c=gc(a,t);n[c]=!0,u(e._lastMovement[c])||(e._lastMovement[c]={startPosition:new H,endPosition:new H,valid:!1}),u(e._movement[c])||(e._movement[c]={startPosition:new H,endPosition:new H})}}e._eventHandler.setInputAction(function(s){for(let a in Li)if(Li.hasOwnProperty(a)){let c=Li[a];if(u(c)){let l=gc(c,t);o[l]&&(n[l]?(Hye(i[l],r[l]),r[l].valid=!0,Hye(s,i[l]),n[l]=!1):H.clone(s.endPosition,i[l].endPosition))}}H.clone(s.endPosition,e._currentMousePosition)},An.MOUSE_MOVE,t)}function Yf(e){this._eventHandler=new Lu(e),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new H,zye(this,void 0),kye(this,void 0,e),SS(this,void 0,Li.LEFT_DRAG),SS(this,void 0,Li.RIGHT_DRAG),SS(this,void 0,Li.MIDDLE_DRAG),Gye(this,void 0);for(let t in ca)if(ca.hasOwnProperty(t)){let n=ca[t];u(n)&&(zye(this,n),kye(this,n,e),SS(this,n,Li.LEFT_DRAG),SS(this,n,Li.RIGHT_DRAG),SS(this,n,Li.MIDDLE_DRAG),Gye(this,n))}}Object.defineProperties(Yf.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){let e=!this._update[gc(Li.WHEEL)]||!this._update[gc(Li.WHEEL,ca.SHIFT)]||!this._update[gc(Li.WHEEL,ca.CTRL)]||!this._update[gc(Li.WHEEL,ca.ALT)];return this._buttonsDown>0||e}}});Yf.prototype.isMoving=function(e,t){let n=gc(e,t);return!this._update[n]};Yf.prototype.getMovement=function(e,t){let n=gc(e,t);return this._movement[n]};Yf.prototype.getLastMovement=function(e,t){let n=gc(e,t),i=this._lastMovement[n];if(i.valid)return i};Yf.prototype.isButtonDown=function(e,t){let n=gc(e,t);return this._isDown[n]};Yf.prototype.getStartMousePosition=function(e,t){if(e===Li.WHEEL)return this._currentMousePosition;let n=gc(e,t);return this._eventStartPosition[n]};Yf.prototype.getButtonPressTime=function(e,t){let n=gc(e,t);return this._pressTime[n]};Yf.prototype.getButtonReleaseTime=function(e,t){let n=gc(e,t);return this._releaseTime[n]};Yf.prototype.reset=function(){for(let e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)};Yf.prototype.isDestroyed=function(){return!1};Yf.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),ue(this)};var LN=Yf;var Wye=Yi(mj(),1);function Wz(e,t,n,i,r,o,s,a,c,l){this._tweens=e,this._tweenjs=t,this._startObject=We(n),this._stopObject=We(i),this._duration=r,this._delay=o,this._easingFunction=s,this._update=a,this._complete=c,this.cancel=l,this.needsStart=!0}Object.defineProperties(Wz.prototype,{startObject:{get:function(){return this._startObject}},stopObject:{get:function(){return this._stopObject}},duration:{get:function(){return this._duration}},delay:{get:function(){return this._delay}},easingFunction:{get:function(){return this._easingFunction}},update:{get:function(){return this._update}},complete:{get:function(){return this._complete}},tweenjs:{get:function(){return this._tweenjs}}});Wz.prototype.cancelTween=function(){this._tweens.remove(this)};function xh(){this._tweens=[]}Object.defineProperties(xh.prototype,{length:{get:function(){return this._tweens.length}}});xh.prototype.add=function(e){if(e=y(e,y.EMPTY_OBJECT),e.duration===0)return u(e.complete)&&e.complete(),new Wz(this);let t=e.duration/Zn.SECONDS_PER_MILLISECOND,n=y(e.delay,0),i=n/Zn.SECONDS_PER_MILLISECOND,r=y(e.easingFunction,No.LINEAR_NONE),o=e.startObject,s=new Wye.Tween(o);s.to(We(e.stopObject),t),s.delay(i),s.easing(r),u(e.update)&&s.onUpdate(function(){e.update(o)}),s.onComplete(y(e.complete,null)),s.repeat(y(e._repeat,0));let a=new Wz(this,s,e.startObject,e.stopObject,e.duration,n,r,e.update,e.complete,e.cancel);return this._tweens.push(a),a};xh.prototype.addProperty=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.object,n=e.property,i=e.startValue,r=e.stopValue;function o(s){t[n]=s.value}return this.add({startObject:{value:i},stopObject:{value:r},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:o,complete:e.complete,cancel:e.cancel,_repeat:e._repeat})};xh.prototype.addAlpha=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.material,n=[];for(let r in t.uniforms)t.uniforms.hasOwnProperty(r)&&u(t.uniforms[r])&&u(t.uniforms[r].alpha)&&n.push(r);function i(r){let o=n.length;for(let s=0;s<o;++s)t.uniforms[n[s]].alpha=r.alpha}return this.add({startObject:{alpha:y(e.startValue,0)},stopObject:{alpha:y(e.stopValue,1)},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:i,complete:e.complete,cancel:e.cancel})};xh.prototype.addOffsetIncrement=function(e){e=y(e,y.EMPTY_OBJECT);let n=e.material.uniforms;return this.addProperty({object:n,property:"offset",startValue:n.offset,stopValue:n.offset+1,duration:e.duration,delay:e.delay,easingFunction:e.easingFunction,update:e.update,cancel:e.cancel,_repeat:1/0})};xh.prototype.remove=function(e){if(!u(e))return!1;let t=this._tweens.indexOf(e);return t!==-1?(e.tweenjs.stop(),u(e.cancel)&&e.cancel(),this._tweens.splice(t,1),!0):!1};xh.prototype.removeAll=function(){let e=this._tweens;for(let t=0;t<e.length;++t){let n=e[t];n.tweenjs.stop(),u(n.cancel)&&n.cancel()}e.length=0};xh.prototype.contains=function(e){return u(e)&&this._tweens.indexOf(e)!==-1};xh.prototype.get=function(e){return this._tweens[e]};xh.prototype.update=function(e){let t=this._tweens,n=0;for(e=u(e)?e/Zn.SECONDS_PER_MILLISECOND:yi();n<t.length;){let i=t[n],r=i.tweenjs;i.needsStart?(i.needsStart=!1,r.start(e)):r.update(e)?n++:(r.stop(),t.splice(n,1))}};var yC=xh;function FN(e){this.enableInputs=!0,this.enableTranslate=!0,this.enableZoom=!0,this.enableRotate=!0,this.enableTilt=!0,this.enableLook=!0,this.inertiaSpin=.9,this.inertiaTranslate=.9,this.inertiaZoom=.8,this.maximumMovementRatio=.1,this.bounceAnimationTime=3,this.minimumZoomDistance=1,this.maximumZoomDistance=Number.POSITIVE_INFINITY,this.translateEventTypes=Li.LEFT_DRAG,this.zoomEventTypes=[Li.RIGHT_DRAG,Li.WHEEL,Li.PINCH],this.rotateEventTypes=Li.LEFT_DRAG,this.tiltEventTypes=[Li.MIDDLE_DRAG,Li.PINCH,{eventType:Li.LEFT_DRAG,modifier:ca.CTRL},{eventType:Li.RIGHT_DRAG,modifier:ca.CTRL}],this.lookEventTypes={eventType:Li.LEFT_DRAG,modifier:ca.SHIFT},this.minimumPickingTerrainHeight=15e4,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight,this.minimumPickingTerrainDistanceWithInertia=4e3,this.minimumCollisionTerrainHeight=15e3,this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight,this.minimumTrackBallHeight=75e5,this._minimumTrackBallHeight=this.minimumTrackBallHeight,this.enableCollisionDetection=!0,this._scene=e,this._globe=void 0,this._ellipsoid=void 0,this._aggregator=new LN(e.canvas),this._lastInertiaSpinMovement=void 0,this._lastInertiaZoomMovement=void 0,this._lastInertiaTranslateMovement=void 0,this._lastInertiaTiltMovement=void 0,this._inertiaDisablers={_lastInertiaZoomMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement","_lastInertiaTiltMovement"],_lastInertiaTiltMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement"]},this._tweens=new yC,this._tween=void 0,this._horizontalRotationAxis=void 0,this._tiltCenterMousePosition=new H(-1,-1),this._tiltCenter=new h,this._rotateMousePosition=new H(-1,-1),this._rotateStartPosition=new h,this._strafeStartPosition=new h,this._strafeMousePosition=new H,this._strafeEndMousePosition=new H,this._zoomMouseStart=new H(-1,-1),this._zoomWorldPosition=new h,this._useZoomWorldPosition=!1,this._tiltCVOffMap=!1,this._looking=!1,this._rotating=!1,this._strafing=!1,this._zoomingOnVector=!1,this._zoomingUnderground=!1,this._rotatingZoom=!1,this._adjustedHeightForTerrain=!1,this._cameraUnderground=!1;let t=e.mapProjection;this._maxCoord=t.project(new me(Math.PI,P.PI_OVER_TWO)),this._zoomFactor=5,this._rotateFactor=void 0,this._rotateRateRangeAdjustment=void 0,this._maximumRotateRate=1.77,this._minimumRotateRate=1/5e3,this._minimumZoomRate=20,this._maximumZoomRate=5906376272e3,this._minimumUndergroundPickDistance=2e3,this._maximumUndergroundPickDistance=1e4}function Sft(e,t){if(e<0)return 0;let n=(1-t)*25;return Math.exp(-n*e)}function vft(e){return H.equalsEpsilon(e.startPosition,e.endPosition,P.EPSILON14)}var wft=.4;function Dft(e,t,n,i,r,o,s){let a=o[s];u(a)||(a=o[s]={startPosition:new H,endPosition:new H,motion:new H,inertiaEnabled:!0});let c=e.getButtonPressTime(t,n),l=e.getButtonReleaseTime(t,n),f=c&&l&&(l.getTime()-c.getTime())/1e3,p=l&&(new Date().getTime()-l.getTime())/1e3;if(c&&l&&f<wft){let g=Sft(p,i),m=e.getLastMovement(t,n);if(!u(m)||vft(m)||!a.inertiaEnabled||(a.motion.x=(m.endPosition.x-m.startPosition.x)*.5,a.motion.y=(m.endPosition.y-m.startPosition.y)*.5,a.startPosition=H.clone(m.startPosition,a.startPosition),a.endPosition=H.multiplyByScalar(a.motion,g,a.endPosition),a.endPosition=H.add(a.startPosition,a.endPosition,a.endPosition),isNaN(a.endPosition.x)||isNaN(a.endPosition.y)||H.distance(a.startPosition,a.endPosition)<.5))return;if(!e.isButtonDown(t,n)){let A=e.getStartMousePosition(t,n);r(o,A,a)}}}function Ift(e,t){if(u(t)){let n=e[t];u(n)&&(n.inertiaEnabled=!0);let i=e._inertiaDisablers[t];if(u(i)){let r=i.length;for(let o=0;o<r;++o)n=e[i[o]],u(n)&&(n.inertiaEnabled=!1)}}}var jye=[];function nl(e,t,n,i,r,o){if(!u(n))return;let s=e._aggregator;Array.isArray(n)||(jye[0]=n,n=jye);let a=n.length;for(let c=0;c<a;++c){let l=n[c],f=u(l.eventType)?l.eventType:l,d=l.modifier,p=s.isMoving(f,d)&&s.getMovement(f,d),g=s.getStartMousePosition(f,d);e.enableInputs&&t&&(p?(i(e,g,p),Ift(e,o)):r<1&&Dft(s,f,d,r,i,e,o))}}var jz=new vn,Pft=new h,Oft=new H,Mft=new h,Rft=new H,Bft=new h,Lft=new h,Nft=new h,Fft=new h,Uft=new h,Vft=new h,kft=new h,zft=new h,Hft=new h,Gft=new h,Wft=new h,jft=new h,qft=new h,Yft=new h,Xft=new h,AC=new h,qye=new h,Yye=new h,aY={orientation:new ka};function pY(e,t,n,i,r,o){let s=1;u(o)&&(s=P.clamp(Math.abs(o),.25,1));let a=n.endPosition.y-n.startPosition.y,l=a>0?e.minimumZoomDistance*s:0,f=e.maximumZoomDistance,d=r-l,p=i*d;p=P.clamp(p,e._minimumZoomRate,e._maximumZoomRate);let g=a/e._scene.canvas.clientHeight;g=Math.min(g,e.maximumMovementRatio);let m=p*g;if(e.enableCollisionDetection||e.minimumZoomDistance===0||!u(e._globe)){if(m>0&&Math.abs(r-l)<1||m<0&&Math.abs(r-f)<1)return;r-m<l?m=r-l-1:r-m>f&&(m=r-f)}let A=e._scene,x=A.camera,C=A.mode,T=aY.orientation;if(T.heading=x.heading,T.pitch=x.pitch,T.roll=x.roll,x.frustum instanceof en){Math.abs(m)>0&&(x.zoomIn(m),x._adjustOrthographicFrustum(!0));return}let E=y(n.inertiaEnabled,H.equals(t,e._zoomMouseStart)),S=e._zoomingOnVector,v=e._rotatingZoom,D;if(E||(e._zoomMouseStart=H.clone(t,e._zoomMouseStart),u(e._globe)&&(C===ne.SCENE2D?(D=x.getPickRay(t,jz).origin,D=h.fromElements(D.y,D.z,D.x)):D=e0(e,t,Pft)),u(D)?(e._useZoomWorldPosition=!0,e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition)):e._useZoomWorldPosition=!1,S=e._zoomingOnVector=!1,v=e._rotatingZoom=!1,e._zoomingUnderground=e._cameraUnderground),!e._useZoomWorldPosition){x.zoomIn(m);return}let M=C===ne.COLUMBUS_VIEW;if(x.positionCartographic.height<2e6&&(v=!0),!E||v){if(C===ne.SCENE2D){let O=e._zoomWorldPosition,B=x.position;if(!h.equals(O,B)&&x.positionCartographic.height<e._maxCoord.x*2){let L=x.position.x,_=h.subtract(O,B,Mft);h.normalize(_,_);let b=h.distance(O,B)*m/(x.getMagnitude()*.5);x.move(_,b*.5),(x.position.x<0&&L>0||x.position.x>0&&L<0)&&(D=x.getPickRay(t,jz).origin,D=h.fromElements(D.y,D.z,D.x),e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition))}}else if(C===ne.SCENE3D){let O=h.normalize(x.position,Uft);if(e._cameraUnderground||e._zoomingUnderground||x.positionCartographic.height<3e3&&Math.abs(h.dot(x.direction,O))<.6)M=!0;else{let B=A.canvas,L=Rft;L.x=B.clientWidth/2,L.y=B.clientHeight/2;let _=e0(e,L,Bft);if(!u(_))M=!0;else if(x.positionCartographic.height<1e6)if(h.dot(x.direction,O)>=-.5)M=!0;else{let b=kft;h.clone(x.position,b);let w=e._zoomWorldPosition,I=Vft;if(I=h.normalize(w,I),h.dot(I,O)<0)return;let R=Xft,F=Gft;h.clone(x.direction,F),h.add(b,h.multiplyByScalar(F,1e3,AC),R);let k=Wft,V=jft;h.subtract(w,b,k),h.normalize(k,V);let G=h.dot(O,V);if(G>=0){e._zoomMouseStart.x=-1;return}let U=Math.acos(-G),Y=h.magnitude(b),W=h.magnitude(w),Z=Y-m,j=h.magnitude(k),K=Math.asin(P.clamp(j/W*Math.sin(U),-1,1)),J=Math.asin(P.clamp(Z/W*Math.sin(U),-1,1)),_e=K-J+U,xe=zft;h.normalize(b,xe);let oe=Hft;oe=h.cross(V,xe,oe),oe=h.normalize(oe,oe),h.normalize(h.cross(xe,oe,AC),F),h.multiplyByScalar(h.normalize(R,AC),h.magnitude(R)-m,R),h.normalize(b,b),h.multiplyByScalar(b,Z,b);let Ae=qft;h.multiplyByScalar(h.add(h.multiplyByScalar(xe,Math.cos(_e)-1,qye),h.multiplyByScalar(F,Math.sin(_e),Yye),AC),Z,Ae),h.add(b,Ae,b),h.normalize(R,xe),h.normalize(h.cross(xe,oe,AC),F);let he=Yft;h.multiplyByScalar(h.add(h.multiplyByScalar(xe,Math.cos(_e)-1,qye),h.multiplyByScalar(F,Math.sin(_e),Yye),AC),h.magnitude(R),he),h.add(R,he,R),h.clone(b,x.position),h.normalize(h.subtract(R,b,AC),x.direction),h.clone(x.direction,x.direction),h.cross(x.direction,x.up,x.right),h.cross(x.right,x.direction,x.up),x.setView(aY);return}else{let b=h.normalize(_,Lft),w=h.normalize(e._zoomWorldPosition,Nft),I=h.dot(w,b);if(I>0&&I<1){let R=P.acosClamped(I),F=h.cross(w,b,Fft),k=Math.abs(R)>P.toRadians(20)?x.positionCartographic.height*.75:x.positionCartographic.height-m,V=m/k;x.rotate(F,R*V)}}}}e._rotatingZoom=!M}if(!E&&M||S){let O,B=Zi.wgs84ToWindowCoordinates(A,e._zoomWorldPosition,Oft);C!==ne.COLUMBUS_VIEW&&H.equals(t,e._zoomMouseStart)&&u(B)?O=x.getPickRay(B,jz):O=x.getPickRay(t,jz);let L=O.direction;(C===ne.COLUMBUS_VIEW||C===ne.SCENE2D)&&h.fromElements(L.y,L.z,L.x,L),x.move(L,m),e._zoomingOnVector=!0}else x.zoomIn(m);e._cameraUnderground||x.setView(aY)}var Kft=new vn,Jft=new vn,Zft=new h;function Qft(e,t,n){let r=e._scene.camera,o=r.getPickRay(n.startPosition,Kft).origin,s=r.getPickRay(n.endPosition,Jft).origin;o=h.fromElements(o.y,o.z,o.x,o),s=h.fromElements(s.y,s.z,s.x,s);let a=h.subtract(o,s,Zft),c=h.magnitude(a);c>0&&(h.normalize(a,a),r.move(a,c))}function Xye(e,t,n){u(n.distance)&&(n=n.distance);let r=e._scene.camera;pY(e,t,n,e._zoomFactor,r.getMagnitude())}var $ft=new H,edt=new H;function Kye(e,t,n){if(u(n.angleAndHeight)){tdt(e,t,n.angleAndHeight);return}let i=e._scene,r=i.camera,o=i.canvas,s=o.clientWidth,a=o.clientHeight,c=$ft;c.x=2/s*n.startPosition.x-1,c.y=2/a*(a-n.startPosition.y)-1,c=H.normalize(c,c);let l=edt;l.x=2/s*n.endPosition.x-1,l.y=2/a*(a-n.endPosition.y)-1,l=H.normalize(l,l);let f=P.acosClamped(c.x);c.y<0&&(f=P.TWO_PI-f);let d=P.acosClamped(l.x);l.y<0&&(d=P.TWO_PI-d);let p=d-f;r.twistRight(p)}function tdt(e,t,n){let i=e._rotateFactor*e._rotateRateRangeAdjustment;i>e._maximumRotateRate&&(i=e._maximumRotateRate),i<e._minimumRotateRate&&(i=e._minimumRotateRate);let r=e._scene,o=r.camera,s=r.canvas,a=(n.endPosition.x-n.startPosition.x)/s.clientWidth;a=Math.min(a,e.maximumMovementRatio);let c=i*a*Math.PI*4;o.twistRight(c)}function ndt(e){let t=e._scene.mapMode2D===Vl.ROTATE;N.equals(N.IDENTITY,e._scene.camera.transform)?(nl(e,e.enableTranslate,e.translateEventTypes,Qft,e.inertiaTranslate,"_lastInertiaTranslateMovement"),nl(e,e.enableZoom,e.zoomEventTypes,Xye,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&nl(e,e.enableRotate,e.tiltEventTypes,Kye,e.inertiaSpin,"_lastInertiaTiltMovement")):(nl(e,e.enableZoom,e.zoomEventTypes,Xye,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&nl(e,e.enableRotate,e.translateEventTypes,Kye,e.inertiaSpin,"_lastInertiaSpinMovement"))}var t0e=new vn,idt=new h,rdt=new h;function e0(e,t,n){let i=e._scene,r=e._globe,o=i.camera;if(!u(r))return;let s=!e._cameraUnderground,a;i.pickPositionSupported&&(a=i.pickPositionWorldCoordinates(t,idt));let c=o.getPickRay(t,t0e),l=r.pickWorldCoordinates(c,i,s,rdt),f=u(a)?h.distance(a,o.positionWC):Number.POSITIVE_INFINITY,d=u(l)?h.distance(l,o.positionWC):Number.POSITIVE_INFINITY;return f<d?h.clone(a,n):h.clone(l,n)}var odt=new me;function Zz(e){let t=e._ellipsoid,n=e._scene,i=n.camera,r=n.mode,o=0;if(r===ne.SCENE3D){let c=t.cartesianToCartographic(i.position,odt);u(c)&&(o=c.height)}else o=i.position.z;let s=y(e._scene.globeHeight,0);return Math.abs(s-o)}var sdt=new h;function n0e(e,t){let n=t.origin,i=t.direction,r=Zz(e),o=h.normalize(n,sdt),s=Math.abs(h.dot(o,i));return s=Math.max(s,.5)*2,r*s}function i0e(e,t,n,i){let r=h.distance(t.origin,n),o=Zz(e),s=P.clamp(o*5,e._minimumUndergroundPickDistance,e._maximumUndergroundPickDistance);return r>s&&(r=Math.min(r,o/5),r=Math.max(r,100)),vn.getPoint(t,r,i)}function r0e(e,t,n,i){let r;return u(n)?(r=h.distance(t.origin,n),r>e._maximumUndergroundPickDistance&&(r=Zz(e))):r=Zz(e),vn.getPoint(t,r,i)}var adt=new H;function o0e(e,t){let n=t.endPosition,i=H.subtract(t.endPosition,t.startPosition,adt),r=e._strafeEndMousePosition;H.add(r,i,r),t.endPosition=r,_Y(e,t,e._strafeStartPosition),t.endPosition=n}var Jye=new vn,cdt=new vn,cY=new h,ldt=new h,udt=new h,fdt=new h,ddt=new cn(h.UNIT_X,0),hdt=new H,mdt=new H;function pdt(e,t,n){if(h.equals(t,e._translateMousePosition)||(e._looking=!1),h.equals(t,e._strafeMousePosition)||(e._strafing=!1),e._looking){Fu(e,t,n);return}if(e._strafing){o0e(e,n);return}let r=e._scene.camera,o=e._cameraUnderground,s=H.clone(n.startPosition,hdt),a=H.clone(n.endPosition,mdt),c=r.getPickRay(s,Jye),l=h.clone(h.ZERO,fdt),f=h.UNIT_X,d;if(r.position.z<e._minimumPickingTerrainHeight&&(d=e0(e,s,cY),u(d)&&(l.x=d.x)),o||l.x>r.position.z&&u(d)){let E=d;o&&(E=r0e(e,c,d,cY)),H.clone(t,e._strafeMousePosition),H.clone(t,e._strafeEndMousePosition),h.clone(E,e._strafeStartPosition),e._strafing=!0,_Y(e,n,e._strafeStartPosition);return}let p=cn.fromPointNormal(l,f,ddt);c=r.getPickRay(s,Jye);let g=Ji.rayPlane(c,p,cY),m=r.getPickRay(a,cdt),A=Ji.rayPlane(m,p,ldt);if(!u(g)||!u(A)){e._looking=!0,Fu(e,t,n),H.clone(t,e._translateMousePosition);return}let x=h.subtract(g,A,udt),C=x.x;x.x=x.y,x.y=x.z,x.z=C;let T=h.magnitude(x);T>P.EPSILON6&&(h.normalize(x,x),r.move(x,T))}var s0e=new H,Yz=new vn,Xz=new h,_dt=new h,a0e=new N,gdt=new N,ydt=new h,Adt=new cn(h.UNIT_X,0),lY=new h,dY=new me,c0e=new N,xdt=new Le,Cdt=new Q,Kz=new h;function Tdt(e,t,n){if(u(n.angleAndHeight)&&(n=n.angleAndHeight),H.equals(t,e._tiltCenterMousePosition)||(e._tiltCVOffMap=!1,e._looking=!1),e._looking){Fu(e,t,n);return}let r=e._scene.camera;e._tiltCVOffMap||!e.onMap()||Math.abs(r.position.z)>e._minimumPickingTerrainHeight?(e._tiltCVOffMap=!0,Edt(e,t,n)):bdt(e,t,n)}function Edt(e,t,n){let i=e._scene,r=i.camera,o=i.canvas,s=s0e;s.x=o.clientWidth/2,s.y=o.clientHeight/2;let a=r.getPickRay(s,Yz),c=h.UNIT_X,l=a.origin,f=a.direction,d,p=h.dot(c,f);if(Math.abs(p)>P.EPSILON6&&(d=-h.dot(c,l)/p),!u(d)||d<=0){e._looking=!0,Fu(e,t,n),H.clone(t,e._tiltCenterMousePosition);return}let g=h.multiplyByScalar(f,d,Xz);h.add(l,g,g);let m=i.mapProjection,A=m.ellipsoid;h.fromElements(g.y,g.z,g.x,g);let x=m.unproject(g,dY);A.cartographicToCartesian(x,g);let C=Mt.eastNorthUpToFixedFrame(g,A,a0e),T=e._globe,E=e._ellipsoid;e._globe=void 0,e._ellipsoid=re.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let S=N.clone(r.transform,c0e);r._setTransform(C),Nu(e,t,n,h.UNIT_Z),r._setTransform(S),e._globe=T,e._ellipsoid=E;let v=E.maximumRadius;e._rotateFactor=1/v,e._rotateRateRangeAdjustment=v}function bdt(e,t,n){let i=e._scene,r=i.camera,o=e._cameraUnderground,s,a,c=h.UNIT_X;if(H.equals(t,e._tiltCenterMousePosition))s=h.clone(e._tiltCenter,Xz);else{if(r.position.z<e._minimumPickingTerrainHeight&&(s=e0(e,t,Xz)),!u(s)){a=r.getPickRay(t,Yz);let _=a.origin,b=a.direction,w,I=h.dot(c,b);if(Math.abs(I)>P.EPSILON6&&(w=-h.dot(c,_)/I),!u(w)||w<=0){e._looking=!0,Fu(e,t,n),H.clone(t,e._tiltCenterMousePosition);return}s=h.multiplyByScalar(b,w,Xz),h.add(_,s,s)}o&&(u(a)||(a=r.getPickRay(t,Yz)),i0e(e,a,s,s)),H.clone(t,e._tiltCenterMousePosition),h.clone(s,e._tiltCenter)}let l=i.canvas,f=s0e;f.x=l.clientWidth/2,f.y=e._tiltCenterMousePosition.y,a=r.getPickRay(f,Yz);let d=h.clone(h.ZERO,ydt);d.x=s.x;let p=cn.fromPointNormal(d,c,Adt),g=Ji.rayPlane(a,p,_dt),m=r._projection,A=m.ellipsoid;h.fromElements(s.y,s.z,s.x,s);let x=m.unproject(s,dY);A.cartographicToCartesian(x,s);let C=Mt.eastNorthUpToFixedFrame(s,A,a0e),T;u(g)?(h.fromElements(g.y,g.z,g.x,g),x=m.unproject(g,dY),A.cartographicToCartesian(x,g),T=Mt.eastNorthUpToFixedFrame(g,A,gdt)):T=C;let E=e._globe,S=e._ellipsoid;e._globe=void 0,e._ellipsoid=re.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=h.UNIT_Z,D=N.clone(r.transform,c0e);r._setTransform(C);let M=h.cross(h.UNIT_Z,h.normalize(r.position,lY),lY),O=h.dot(r.right,M);if(Nu(e,t,n,v,!1,!0),r._setTransform(T),O<0){let _=n.startPosition.y-n.endPosition.y;(o&&_<0||!o&&_>0)&&(v=void 0);let b=r.constrainedAxis;r.constrainedAxis=void 0,Nu(e,t,n,v,!0,!1),r.constrainedAxis=b}else Nu(e,t,n,v,!0,!1);if(u(r.constrainedAxis)){let _=h.cross(r.direction,r.constrainedAxis,Kz);h.equalsEpsilon(_,h.ZERO,P.EPSILON6)||(h.dot(_,r.right)<0&&h.negate(_,_),h.cross(_,r.direction,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.up,r.up),h.normalize(r.right,r.right))}r._setTransform(D),e._globe=E,e._ellipsoid=S;let B=S.maximumRadius;e._rotateFactor=1/B,e._rotateRateRangeAdjustment=B;let L=h.clone(r.positionWC,lY);if(e.enableCollisionDetection&&AY(e),!h.equals(r.positionWC,L)){r._setTransform(T),r.worldToCameraCoordinatesPoint(L,L);let _=h.magnitudeSquared(L);h.magnitudeSquared(r.position)>_&&(h.normalize(r.position,r.position),h.multiplyByScalar(r.position,Math.sqrt(_),r.position));let b=h.angleBetween(L,r.position),w=h.cross(L,r.position,L);h.normalize(w,w);let I=Le.fromAxisAngle(w,b,xdt),R=Q.fromQuaternion(I,Cdt);Q.multiplyByVector(R,r.direction,r.direction),Q.multiplyByVector(R,r.up,r.up),h.cross(r.direction,r.up,r.right),h.cross(r.right,r.direction,r.up),r._setTransform(D)}}var l0e=new H,u0e=new vn,f0e=new h;function Sdt(e,t,n){u(n.distance)&&(n=n.distance);let i=e._scene,r=i.camera,o=i.canvas,s=e._cameraUnderground,a;s?a=t:(a=l0e,a.x=o.clientWidth/2,a.y=o.clientHeight/2);let c=r.getPickRay(a,u0e),l=c.origin,f=c.direction,d=r.position.z,p;d<e._minimumPickingTerrainHeight&&(p=e0(e,a,f0e));let g;if(u(p)&&(g=h.distance(l,p)),s){let m=n0e(e,c,d);u(g)?g=Math.min(g,m):g=m}if(!u(g)){let m=h.UNIT_X;g=-h.dot(m,l)/h.dot(m,f)}pY(e,t,n,e._zoomFactor,g)}function vdt(e){let n=e._scene.camera;if(!N.equals(N.IDENTITY,n.transform))nl(e,e.enableRotate,e.rotateEventTypes,Nu,e.inertiaSpin,"_lastInertiaSpinMovement"),nl(e,e.enableZoom,e.zoomEventTypes,d0e,e.inertiaZoom,"_lastInertiaZoomMovement");else{let i=e._tweens;if(e._aggregator.anyButtonDown&&i.removeAll(),nl(e,e.enableTilt,e.tiltEventTypes,Tdt,e.inertiaSpin,"_lastInertiaTiltMovement"),nl(e,e.enableTranslate,e.translateEventTypes,pdt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),nl(e,e.enableZoom,e.zoomEventTypes,Sdt,e.inertiaZoom,"_lastInertiaZoomMovement"),nl(e,e.enableLook,e.lookEventTypes,Fu),!e._aggregator.anyButtonDown&&!i.contains(e._tween)){let r=n.createCorrectPositionTween(e.bounceAnimationTime);u(r)&&(e._tween=i.add(r))}i.update()}}var wdt=new vn,Ddt=new cn(h.UNIT_X,0),Idt=new h,Pdt=new h,Odt=new h;function _Y(e,t,n){let i=e._scene,r=i.camera,o=r.getPickRay(t.endPosition,wdt),s=h.clone(r.direction,Pdt);i.mode===ne.COLUMBUS_VIEW&&h.fromElements(s.z,s.x,s.y,s);let a=cn.fromPointNormal(n,s,Ddt),c=Ji.rayPlane(o,a,Idt);u(c)&&(s=h.subtract(n,c,s),i.mode===ne.COLUMBUS_VIEW&&h.fromElements(s.y,s.z,s.x,s),h.add(r.position,s,r.position))}var Zye=new h,Mdt=new me,hY=new h,mY=new re,Rdt=new h,Bdt=new h;function Ldt(e,t,n){let r=e._scene.camera,o=e._cameraUnderground,s=e._ellipsoid;if(!N.equals(r.transform,N.IDENTITY)){Nu(e,t,n);return}let a,c,l=s.geodeticSurfaceNormal(r.position,Rdt);if(H.equals(t,e._rotateMousePosition)){if(e._looking)Fu(e,t,n,l);else if(e._rotating)Nu(e,t,n);else if(e._strafing)o0e(e,n);else{if(h.magnitude(r.position)<h.magnitude(e._rotateStartPosition))return;a=h.magnitude(e._rotateStartPosition),c=hY,c.x=c.y=c.z=a,s=re.fromCartesian3(c,mY),fY(e,t,n,s)}return}e._looking=!1,e._rotating=!1,e._strafing=!1;let f=s.cartesianToCartographic(r.positionWC,Mdt).height,d=e._globe;if(u(d)&&f<e._minimumPickingTerrainHeight){let p=e0(e,n.startPosition,Odt);if(u(p)){let g=!1,m=r.getPickRay(n.startPosition,t0e);if(o)g=!0,r0e(e,m,p,p);else{let A=s.geodeticSurfaceNormal(p,Bdt);Math.abs(h.dot(m.direction,A))<.05?g=!0:g=h.magnitude(r.position)<h.magnitude(p)}g?(H.clone(t,e._strafeEndMousePosition),h.clone(p,e._strafeStartPosition),e._strafing=!0,_Y(e,n,e._strafeStartPosition)):(a=h.magnitude(p),c=hY,c.x=c.y=c.z=a,s=re.fromCartesian3(c,mY),fY(e,t,n,s),h.clone(p,e._rotateStartPosition))}else e._looking=!0,Fu(e,t,n,l)}else u(r.pickEllipsoid(n.startPosition,e._ellipsoid,Zye))?(fY(e,t,n,e._ellipsoid),h.clone(Zye,e._rotateStartPosition)):f>e._minimumTrackBallHeight?(e._rotating=!0,Nu(e,t,n)):(e._looking=!0,Fu(e,t,n,l));H.clone(t,e._rotateMousePosition)}function Nu(e,t,n,i,r,o){r=y(r,!1),o=y(o,!1);let s=e._scene,a=s.camera,c=s.canvas,l=a.constrainedAxis;u(i)&&(a.constrainedAxis=i);let f=h.magnitude(a.position),d=e._rotateFactor*(f-e._rotateRateRangeAdjustment);d>e._maximumRotateRate&&(d=e._maximumRotateRate),d<e._minimumRotateRate&&(d=e._minimumRotateRate);let p=(n.startPosition.x-n.endPosition.x)/c.clientWidth,g=(n.startPosition.y-n.endPosition.y)/c.clientHeight;p=Math.min(p,e.maximumMovementRatio),g=Math.min(g,e.maximumMovementRatio);let m=d*p*Math.PI*2,A=d*g*Math.PI;r||a.rotateRight(m),o||a.rotateUp(A),a.constrainedAxis=l}var Ndt=se.clone(se.UNIT_W),Fdt=se.clone(se.UNIT_W),qz=new h,uY=new h,Udt=new h,Vdt=new h,kdt=new H,zdt=new H;function fY(e,t,n,i){let o=e._scene.camera,s=H.clone(n.startPosition,kdt),a=H.clone(n.endPosition,zdt),c=o.pickEllipsoid(s,i,Ndt),l=o.pickEllipsoid(a,i,Fdt);if(!u(c)||!u(l)){e._rotating=!0,Nu(e,t,n);return}if(c=o.worldToCameraCoordinates(c,c),l=o.worldToCameraCoordinates(l,l),u(o.constrainedAxis)){let f=o.constrainedAxis,d=h.mostOrthogonalAxis(f,qz);h.cross(d,f,d),h.normalize(d,d);let p=h.cross(f,d,uY),g=h.magnitude(c),m=h.dot(f,c),A=Math.acos(m/g),x=h.multiplyByScalar(f,m,Udt);h.subtract(c,x,x),h.normalize(x,x);let C=h.magnitude(l),T=h.dot(f,l),E=Math.acos(T/C),S=h.multiplyByScalar(f,T,Vdt);h.subtract(l,S,S),h.normalize(S,S);let v=Math.acos(h.dot(x,d));h.dot(x,p)<0&&(v=P.TWO_PI-v);let D=Math.acos(h.dot(S,d));h.dot(S,p)<0&&(D=P.TWO_PI-D);let M=v-D,O;h.equalsEpsilon(f,o.position,P.EPSILON2)?O=o.right:O=h.cross(f,o.position,qz);let B=h.cross(f,O,qz),L=h.dot(B,h.subtract(c,f,uY)),_=h.dot(B,h.subtract(l,f,uY)),b;L>0&&_>0?b=E-A:L>0&&_<=0?h.dot(o.position,f)>0?b=-A-E:b=A+E:b=A-E,o.rotateRight(M),o.rotateUp(b)}else{h.normalize(c,c),h.normalize(l,l);let f=h.dot(c,l),d=h.cross(c,l,qz);if(f<1&&!h.equalsEpsilon(d,h.ZERO,P.EPSILON14)){let p=Math.acos(f);o.rotate(d,p)}}}var Hdt=new h,Gdt=new me,Qye=0;function d0e(e,t,n){u(n.distance)&&(n=n.distance);let i=n.inertiaEnabled,r=e._ellipsoid,o=e._scene,s=o.camera,a=o.canvas,c=e._cameraUnderground,l;c?l=t:(l=l0e,l.x=a.clientWidth/2,l.y=a.clientHeight/2);let f=s.getPickRay(l,u0e),d,p=r.cartesianToCartographic(s.position,Gdt).height,g=Math.abs(Qye)<e.minimumPickingTerrainDistanceWithInertia;(i?g:p<e._minimumPickingTerrainHeight)&&(d=e0(e,l,f0e));let A;if(u(d)&&(A=h.distance(f.origin,d),Qye=A),c){let C=n0e(e,f,p);u(A)?A=Math.min(A,C):A=C}u(A)||(A=p);let x=h.normalize(s.position,Hdt);pY(e,t,n,e._zoomFactor,A,h.dot(x,s.direction))}var h0e=new H,Jz=new vn,NN=new h,Wdt=new h,m0e=new N,jdt=new N,p0e=new N,qdt=new Le,Ydt=new Q,gY=new me,yY=new h;function Xdt(e,t,n){let r=e._scene.camera;if(!N.equals(r.transform,N.IDENTITY))return;if(u(n.angleAndHeight)&&(n=n.angleAndHeight),H.equals(t,e._tiltCenterMousePosition)||(e._tiltOnEllipsoid=!1,e._looking=!1),e._looking){let a=e._ellipsoid.geodeticSurfaceNormal(r.position,yY);Fu(e,t,n,a);return}let s=e._ellipsoid.cartesianToCartographic(r.position,gY);e._tiltOnEllipsoid||s.height>e._minimumCollisionTerrainHeight?(e._tiltOnEllipsoid=!0,Jdt(e,t,n)):Zdt(e,t,n)}var Kdt=new me;function Jdt(e,t,n){let i=e._ellipsoid,r=e._scene,o=r.camera,s=e.minimumZoomDistance*.25,a=i.cartesianToCartographic(o.positionWC,Kdt).height;if(a-s-1<P.EPSILON3&&n.endPosition.y-n.startPosition.y<0)return;let c=r.canvas,l=h0e;l.x=c.clientWidth/2,l.y=c.clientHeight/2;let f=o.getPickRay(l,Jz),d,p=Ji.rayEllipsoid(f,i);if(u(p))d=vn.getPoint(f,p.start,NN);else if(a>e._minimumTrackBallHeight){let T=Ji.grazingAltitudeLocation(f,i);if(!u(T))return;let E=i.cartesianToCartographic(T,gY);E.height=0,d=i.cartographicToCartesian(E,NN)}else{e._looking=!0;let T=e._ellipsoid.geodeticSurfaceNormal(o.position,yY);Fu(e,t,n,T),H.clone(t,e._tiltCenterMousePosition);return}let g=Mt.eastNorthUpToFixedFrame(d,i,m0e),m=e._globe,A=e._ellipsoid;e._globe=void 0,e._ellipsoid=re.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let x=N.clone(o.transform,p0e);o._setTransform(g),Nu(e,t,n,h.UNIT_Z),o._setTransform(x),e._globe=m,e._ellipsoid=A;let C=A.maximumRadius;e._rotateFactor=1/C,e._rotateRateRangeAdjustment=C}function Zdt(e,t,n){let i=e._ellipsoid,r=e._scene,o=r.camera,s=e._cameraUnderground,a,c,l;if(H.equals(t,e._tiltCenterMousePosition))a=h.clone(e._tiltCenter,NN);else{if(a=e0(e,t,NN),!u(a)){if(c=o.getPickRay(t,Jz),l=Ji.rayEllipsoid(c,i),!u(l)){if(i.cartesianToCartographic(o.position,gY).height<=e._minimumTrackBallHeight){e._looking=!0;let b=e._ellipsoid.geodeticSurfaceNormal(o.position,yY);Fu(e,t,n,b),H.clone(t,e._tiltCenterMousePosition)}return}a=vn.getPoint(c,l.start,NN)}s&&(u(c)||(c=o.getPickRay(t,Jz)),i0e(e,c,a,a)),H.clone(t,e._tiltCenterMousePosition),h.clone(a,e._tiltCenter)}let f=r.canvas,d=h0e;d.x=f.clientWidth/2,d.y=e._tiltCenterMousePosition.y,c=o.getPickRay(d,Jz);let p=h.magnitude(a),g=h.fromElements(p,p,p,hY),m=re.fromCartesian3(g,mY);if(l=Ji.rayEllipsoid(c,m),!u(l))return;let A=h.magnitude(c.origin)>p?l.start:l.stop,x=vn.getPoint(c,A,Wdt),C=Mt.eastNorthUpToFixedFrame(a,i,m0e),T=Mt.eastNorthUpToFixedFrame(x,m,jdt),E=e._globe,S=e._ellipsoid;e._globe=void 0,e._ellipsoid=re.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=h.UNIT_Z,D=N.clone(o.transform,p0e);o._setTransform(T);let M=h.cross(x,o.positionWC,Kz);if(h.dot(o.rightWC,M)<0){let _=n.startPosition.y-n.endPosition.y;(s&&_<0||!s&&_>0)&&(v=void 0);let b=o.constrainedAxis;o.constrainedAxis=void 0,Nu(e,t,n,v,!0,!1),o.constrainedAxis=b}else Nu(e,t,n,v,!0,!1);if(o._setTransform(C),Nu(e,t,n,v,!1,!0),u(o.constrainedAxis)){let _=h.cross(o.direction,o.constrainedAxis,Kz);h.equalsEpsilon(_,h.ZERO,P.EPSILON6)||(h.dot(_,o.right)<0&&h.negate(_,_),h.cross(_,o.direction,o.up),h.cross(o.direction,o.up,o.right),h.normalize(o.up,o.up),h.normalize(o.right,o.right))}o._setTransform(D),e._globe=E,e._ellipsoid=S;let B=S.maximumRadius;e._rotateFactor=1/B,e._rotateRateRangeAdjustment=B;let L=h.clone(o.positionWC,Kz);if(e.enableCollisionDetection&&AY(e),!h.equals(o.positionWC,L)){o._setTransform(T),o.worldToCameraCoordinatesPoint(L,L);let _=h.magnitudeSquared(L);h.magnitudeSquared(o.position)>_&&(h.normalize(o.position,o.position),h.multiplyByScalar(o.position,Math.sqrt(_),o.position));let b=h.angleBetween(L,o.position),w=h.cross(L,o.position,L);h.normalize(w,w);let I=Le.fromAxisAngle(w,b,qdt),R=Q.fromQuaternion(I,Ydt);Q.multiplyByVector(R,o.direction,o.direction),Q.multiplyByVector(R,o.up,o.up),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up),o._setTransform(D)}}var Qdt=new H,$dt=new H,$ye=new vn,e0e=new vn,eht=new h,tht=new h;function Fu(e,t,n,i){let o=e._scene.camera,s=Qdt;s.x=n.startPosition.x,s.y=0;let a=$dt;a.x=n.endPosition.x,a.y=0;let c=o.getPickRay(s,$ye),l=o.getPickRay(a,e0e),f=0,d,p;o.frustum instanceof en?(d=c.origin,p=l.origin,h.add(o.direction,d,d),h.add(o.direction,p,p),h.subtract(d,o.position,d),h.subtract(p,o.position,p),h.normalize(d,d),h.normalize(p,p)):(d=c.direction,p=l.direction);let g=h.dot(d,p);g<1&&(f=Math.acos(g)),f=n.startPosition.x>n.endPosition.x?-f:f;let m=e._horizontalRotationAxis;if(u(i)?o.look(i,-f):u(m)?o.look(m,-f):o.lookLeft(f),s.x=0,s.y=n.startPosition.y,a.x=0,a.y=n.endPosition.y,c=o.getPickRay(s,$ye),l=o.getPickRay(a,e0e),f=0,o.frustum instanceof en?(d=c.origin,p=l.origin,h.add(o.direction,d,d),h.add(o.direction,p,p),h.subtract(d,o.position,d),h.subtract(p,o.position,p),h.normalize(d,d),h.normalize(p,p)):(d=c.direction,p=l.direction),g=h.dot(d,p),g<1&&(f=Math.acos(g)),f=n.startPosition.y>n.endPosition.y?-f:f,i=y(i,m),u(i)){let A=o.direction,x=h.negate(i,eht),C=h.equalsEpsilon(A,i,P.EPSILON2),T=h.equalsEpsilon(A,x,P.EPSILON2);if(!C&&!T){g=h.dot(A,i);let E=P.acosClamped(g);f>0&&f>E&&(f=E-P.EPSILON4),g=h.dot(A,x),E=P.acosClamped(g),f<0&&-f>E&&(f=-E+P.EPSILON4);let S=h.cross(i,A,tht);o.look(S,f)}else(C&&f<0||T&&f>0)&&o.look(o.right,-f)}else o.lookUp(f)}function nht(e){nl(e,e.enableRotate,e.rotateEventTypes,Ldt,e.inertiaSpin,"_lastInertiaSpinMovement"),nl(e,e.enableZoom,e.zoomEventTypes,d0e,e.inertiaZoom,"_lastInertiaZoomMovement"),nl(e,e.enableTilt,e.tiltEventTypes,Xdt,e.inertiaSpin,"_lastInertiaTiltMovement"),nl(e,e.enableLook,e.lookEventTypes,Fu)}var iht=new N,rht=new me;function AY(e){e._adjustedHeightForTerrain=!0;let t=e._scene,n=t.mode,i=t.globe;if(!u(i)||n===ne.SCENE2D||n===ne.MORPHING)return;let r=t.camera,o=i.ellipsoid,s=t.mapProjection,a,c;N.equals(r.transform,N.IDENTITY)||(a=N.clone(r.transform,iht),c=h.magnitude(r.position),r._setTransform(N.IDENTITY));let l=rht;n===ne.SCENE3D?o.cartesianToCartographic(r.position,l):s.unproject(r.position,l);let f=!1;if(l.height<e._minimumCollisionTerrainHeight){let d=e._scene.globeHeight;if(u(d)){let p=d+e.minimumZoomDistance;l.height<p&&(l.height=p,n===ne.SCENE3D?o.cartographicToCartesian(l,r.position):s.project(l,r.position),f=!0)}}u(a)&&(r._setTransform(a),f&&(h.normalize(r.position,r.position),h.negate(r.position,r.direction),h.multiplyByScalar(r.position,Math.max(c,e.minimumZoomDistance),r.position),h.normalize(r.direction,r.direction),h.cross(r.direction,r.up,r.right),h.cross(r.right,r.direction,r.up)))}FN.prototype.onMap=function(){let e=this._scene,t=e.mode,n=e.camera;return t===ne.COLUMBUS_VIEW?Math.abs(n.position.x)-this._maxCoord.x<0&&Math.abs(n.position.y)-this._maxCoord.y<0:!0};var oht=new h,sht=new h;FN.prototype.update=function(){let e=this._scene,t=e.camera,n=e.globe,i=e.mode;N.equals(t.transform,N.IDENTITY)?(this._globe=n,this._ellipsoid=u(this._globe)?this._globe.ellipsoid:e.mapProjection.ellipsoid):(this._globe=void 0,this._ellipsoid=re.UNIT_SPHERE);let r=u(this._globe)?this._globe.terrainExaggeration:1,o=u(this._globe)?this._globe.terrainExaggerationRelativeHeight:0;this._minimumCollisionTerrainHeight=Dc.getHeight(this.minimumCollisionTerrainHeight,r,o),this._minimumPickingTerrainHeight=Dc.getHeight(this.minimumPickingTerrainHeight,r,o),this._minimumTrackBallHeight=Dc.getHeight(this.minimumTrackBallHeight,r,o),this._cameraUnderground=e.cameraUnderground&&u(this._globe);let s=this._ellipsoid.maximumRadius;this._rotateFactor=1/s,this._rotateRateRangeAdjustment=s,this._adjustedHeightForTerrain=!1;let a=h.clone(t.positionWC,oht),c=h.clone(t.directionWC,sht);i===ne.SCENE2D?ndt(this):i===ne.COLUMBUS_VIEW?(this._horizontalRotationAxis=h.UNIT_Z,vdt(this)):i===ne.SCENE3D&&(this._horizontalRotationAxis=void 0,nht(this)),this.enableCollisionDetection&&!this._adjustedHeightForTerrain&&(!h.equals(a,t.positionWC)||!h.equals(c,t.directionWC))&&AY(this),this._aggregator.reset()};FN.prototype.isDestroyed=function(){return!1};FN.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),ue(this)};var UN=FN;var VN=`uniform sampler2D colorTexture; +uniform sampler2D colorTexture2; + +uniform vec2 center; +uniform float radius; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color0 = texture(colorTexture, v_textureCoordinates); + vec4 color1 = texture(colorTexture2, v_textureCoordinates); + + float x = length(gl_FragCoord.xy - center) / radius; + float t = smoothstep(0.5, 0.8, x); + out_FragColor = mix(color0 + color1, color1, t); +} +`;var kN=`uniform sampler2D colorTexture; + +uniform float avgLuminance; +uniform float threshold; +uniform float offset; + +in vec2 v_textureCoordinates; + +float key(float avg) +{ + float guess = 1.5 - (1.5 / (avg * 0.1 + 1.0)); + return max(0.0, guess) + 0.1; +} + +// See section 9. "The bright-pass filter" of Realtime HDR Rendering +// http://www.cg.tuwien.ac.at/research/publications/2007/Luksch_2007_RHR/Luksch_2007_RHR-RealtimeHDR%20.pdf + +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec3 xyz = czm_RGBToXYZ(color.rgb); + float luminance = xyz.r; + + float scaledLum = key(avgLuminance) * luminance / avgLuminance; + float brightLum = max(scaledLum - threshold, 0.0); + float brightness = brightLum / (offset + brightLum); + + xyz.r = brightness; + out_FragColor = vec4(czm_XYZToRGB(xyz), 1.0); +} +`;function j_(){this._sceneFramebuffer=new aC;let e=.125,t=new Array(6);t[0]=new xr({fragmentShader:kl,textureScale:e,forcePowerOfTwo:!0,sampleMode:Ru.LINEAR});let n=t[1]=new xr({fragmentShader:kN,uniforms:{avgLuminance:.5,threshold:.25,offset:.1},textureScale:e,forcePowerOfTwo:!0}),i=this;this._delta=1,this._sigma=2,this._blurStep=new H,t[2]=new xr({fragmentShader:Zy,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:0},textureScale:e,forcePowerOfTwo:!0}),t[3]=new xr({fragmentShader:Zy,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:1},textureScale:e,forcePowerOfTwo:!0}),t[4]=new xr({fragmentShader:kl,sampleMode:Ru.LINEAR}),this._uCenter=new H,this._uRadius=void 0,t[5]=new xr({fragmentShader:VN,uniforms:{center:function(){return i._uCenter},radius:function(){return i._uRadius},colorTexture2:function(){return i._sceneFramebuffer.framebuffer.getColorTexture(0)}}}),this._stages=new el({stages:t});let r=new mC(this),o=t.length;for(let s=0;s<o;++s)t[s]._textureCache=r;this._textureCache=r,this.length=t.length}j_.prototype.get=function(e){return this._stages.get(e)};j_.prototype.getStageByName=function(e){let t=this._stages.length;for(let n=0;n<t;++n){let i=this._stages.get(n);if(i.name===e)return i}};var aht=new se,_0e=new H,cht=new H,g0e=new N;function lht(e,t,n){let i=t.uniformState,r=i.sunPositionWC,o=i.view,s=i.viewProjection,a=i.projection,c=N.computeViewportTransformation(n,0,1,g0e),l=N.multiplyByPoint(o,r,aht),f=Mt.pointToGLWindowCoordinates(s,c,r,_0e);l.x+=P.SOLAR_RADIUS;let d=Mt.pointToGLWindowCoordinates(a,c,l,l),p=H.magnitude(H.subtract(d,f,d))*30*2,g=cht;g.x=p,g.y=p,e._uCenter=H.clone(f,e._uCenter),e._uRadius=Math.max(g.x,g.y)*.15;let m=t.drawingBufferWidth,A=t.drawingBufferHeight,x=e._stages,C=x.get(0),T=C.outputTexture.width,E=C.outputTexture.height,S=new Xe;S.width=T,S.height=E,c=N.computeViewportTransformation(S,0,1,g0e),f=Mt.pointToGLWindowCoordinates(s,c,r,_0e),g.x*=T/m,g.y*=E/A;let v=C.scissorRectangle;v.x=Math.max(f.x-g.x*.5,0),v.y=Math.max(f.y-g.y*.5,0),v.width=Math.min(g.x,m),v.height=Math.min(g.y,A);for(let D=1;D<4;++D)Xe.clone(v,x.get(D).scissorRectangle)}j_.prototype.clear=function(e,t,n){this._sceneFramebuffer.clear(e,t,n),this._textureCache.clear(e)};j_.prototype.update=function(e){let t=e.context,n=e.viewport,i=this._sceneFramebuffer;i.update(t,n);let r=i.framebuffer;return this._textureCache.update(t),this._stages.update(t,!1),lht(this,t,n),r};j_.prototype.execute=function(e){let t=this._sceneFramebuffer.framebuffer.getColorTexture(0),n=this._stages,i=n.length;n.get(0).execute(e,t);for(let r=1;r<i;++r)n.get(r).execute(e,n.get(r-1).outputTexture)};j_.prototype.copy=function(e,t){if(!u(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(kl,{uniformMap:{colorTexture:function(){return n._stages.get(n._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};j_.prototype.isDestroyed=function(){return!1};j_.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),ue(this)};var zN=j_;function y0e(){this._cachedShowFrustumsShaders={}}function uht(e){let t={},n=e.vertexAttributes;for(let i in n)n.hasOwnProperty(i)&&(t[i]=n[i].index);return t}function fht(e,t){let n=e.context,i=t,r=i.fragmentShaderSource.clone(),o=[];r.sources=r.sources.map(function(f){f=ke.replaceMain(f,"czm_Debug_main");let d=/out_FragData_(\d+)/g,p;for(;(p=d.exec(f))!==null;)o.indexOf(p[1])===-1&&o.push(p[1]);return f});let s=o.length,a="";a+=`uniform vec3 debugShowCommandsColor; +`,a+=`uniform vec3 debugShowFrustumsColor; +`,a+=`void main() +{ + czm_Debug_main(); +`;let c;if(s>0)for(c=0;c<s;++c)a+=` out_FragData_${o[c]}.rgb *= debugShowCommandsColor; +`,a+=` out_FragData_${o[c]}.rgb *= debugShowFrustumsColor; +`;else a+=` out_FragColor.rgb *= debugShowCommandsColor; +`,a+=` out_FragColor.rgb *= debugShowFrustumsColor; +`;a+="}",r.sources.push(a);let l=uht(i);return Xt.fromCache({context:n,vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:r,attributeLocations:l})}var HN=new z;function dht(e,t){let n;return u(t.uniformMap)?n=t.uniformMap:n={},u(n.debugShowCommandsColor)||u(n.debugShowFrustumsColor)||(n.debugShowCommandsColor=function(){return e.debugShowCommands?(u(t._debugColor)||(t._debugColor=z.fromRandom()),t._debugColor):z.WHITE},n.debugShowFrustumsColor=function(){return e.debugShowFrustums?(HN.red=t.debugOverlappingFrustums&1<<0?1:0,HN.green=t.debugOverlappingFrustums&1<<1?1:0,HN.blue=t.debugOverlappingFrustums&1<<2?1:0,HN.alpha=1,HN):z.WHITE}),n}var hht=new nt;y0e.prototype.executeDebugShowFrustumsCommand=function(e,t,n){let i=t.shaderProgram.id,r=this._cachedShowFrustumsShaders[i];u(r)||(r=fht(e,t.shaderProgram),this._cachedShowFrustumsShaders[i]=r);let o=nt.shallowClone(t,hht);o.shaderProgram=r,o.uniformMap=dht(e,t),o.execute(e.context,n)};var GN=y0e;var $z=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};function ji(e){e=y(e,y.EMPTY_OBJECT);let t=e.canvas,n=e.creditContainer,i=e.creditViewport,r=We(e.contextOptions),o=u(n),s=new sI(t,r);o||(n=document.createElement("div"),n.style.position="absolute",n.style.bottom="0",n.style["text-shadow"]="0 0 2px #000000",n.style.color="#ffffff",n.style["font-size"]="10px",n.style["padding-right"]="5px",t.parentNode.appendChild(n)),u(i)||(i=t.parentNode),this._id=Wn(),this._jobScheduler=new YL,this._frameState=new jL(s,new RL(n," \u2022 ",i),this._jobScheduler),this._frameState.scene3DOnly=y(e.scene3DOnly,!1),this._removeCreditContainer=!o,this._creditContainer=n,this._canvas=t,this._context=s,this._computeEngine=new dv(s),this._globe=void 0,this._globeTranslucencyState=new qL,this._primitives=new Il,this._groundPrimitives=new Il,this._globeHeight=void 0,this._cameraUnderground=!1,this._logDepthBuffer=s.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new yC,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=y(e.orderIndependentTranslucency,!0),this._executeOITFunction=void 0,this._depthPlane=new zL(e.depthPlaneEllipsoidOffset),this._clearColorCommand=new ri({color:new z,stencil:0,owner:this}),this._depthClearCommand=new ri({depth:1,owner:this}),this._stencilClearCommand=new ri({stencil:0}),this._classificationStencilClearCommand=new ri({stencil:0,renderState:Ve.fromCache({stencilMask:Ft.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._transitioner=new BN(this),this._preUpdate=new ge,this._postUpdate=new ge,this._renderError=new ge,this._preRender=new ge,this._postRender=new ge,this._minimumDisableDepthTestDistance=0,this._debugInspector=new GN,this._msaaSamples=y(e.msaaSamples,1),this.rethrowRenderErrors=!1,this.completeMorphOnUserInput=!0,this.morphStart=new ge,this.morphComplete=new ge,this.skyBox=void 0,this.skyAtmosphere=void 0,this.sun=void 0,this.sunBloom=!0,this._sunBloom=void 0,this.moon=void 0,this.backgroundColor=z.clone(z.BLACK),this._mode=ne.SCENE3D,this._mapProjection=u(e.mapProjection)?e.mapProjection:new Ii,this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,this.debugCommandFilter=void 0,this.debugShowCommands=!1,this.debugShowFrustums=!1,this.debugShowFramesPerSecond=!1,this.debugShowDepthFrustum=1,this.debugShowFrustumPlanes=!1,this._debugShowFrustumPlanes=!1,this._debugFrustumPlanes=void 0,this.useDepthPicking=!0,this.pickTranslucentDepth=!1,this.cameraEventWaitTime=500,this.fog=new WL,this._shadowMapCamera=new fr(this),this.shadowMap=new G_({context:s,lightCamera:this._shadowMapCamera,enabled:y(e.shadows,!1)}),this.invertClassification=!1,this.invertClassificationColor=z.clone(z.WHITE),this._actualInvertClassificationColor=z.clone(this._invertClassificationColor),this._invertClassification=new CS,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new ON,this._brdfLutGenerator=new wL,this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new UN(this),this._cameraUnderground=!1,this._mapMode2D=y(e.mapMode2D,Vl.INFINITE_SCROLL),this._environmentState={skyBoxCommand:void 0,skyAtmosphereCommand:void 0,sunDrawCommand:void 0,sunComputeCommand:void 0,moonCommand:void 0,isSunVisible:!1,isMoonVisible:!1,isReadyForAtmosphere:!1,isSkyAtmosphereVisible:!1,clearGlobeDepth:!1,useDepthPlane:!1,renderTranslucentDepthForPick:!1,originalFramebuffer:void 0,useGlobeDepthFramebuffer:!1,useOIT:!1,useInvertClassification:!1,usePostProcess:!1,usePostProcessSelected:!1,useWebVR:!1},this._useWebVR=!1,this._cameraVR=void 0,this._aspectRatioVR=void 0,this.requestRenderMode=y(e.requestRenderMode,!1),this._renderRequested=!0,this.maximumRenderTimeChange=y(e.maximumRenderTimeChange,0),this._lastRenderTime=void 0,this._frameRateMonitor=void 0,this._removeRequestListenerCallback=Ua.requestCompletedEvent.addEventListener($z(this)),this._removeTaskProcessorListenerCallback=pi.taskCompletedEvent.addEventListener($z(this)),this._removeGlobeCallbacks=[],this._removeTerrainProviderReadyListener=void 0;let a=new Xe(0,0,s.drawingBufferWidth,s.drawingBufferHeight),c=new fr(this);this._logDepthBuffer&&(c.frustum.near=.1,c.frustum.far=1e10),this.preloadFlightCamera=new fr(this),this.preloadFlightCullingVolume=void 0,this._picking=new cN(this),this._defaultView=new uC(this,c,a),this._view=this._defaultView,this._hdr=void 0,this._hdrDirty=void 0,this.highDynamicRange=!1,this.gamma=2.2,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this._specularEnvironmentMapAtlas=void 0,this.light=new op,T0e(this,0,ee.now()),this.updateFrameState(),this.initializeFrame()}function mht(e,t){for(let i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;let n=[];u(t)&&(n.push(t.imageryLayersUpdatedEvent.addEventListener($z(e))),n.push(t.terrainProviderChanged.addEventListener($z(e)))),e._removeGlobeCallbacks=n}Object.defineProperties(ji.prototype,{canvas:{get:function(){return this._canvas}},drawingBufferHeight:{get:function(){return this._context.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._context.drawingBufferWidth}},maximumAliasedLineWidth:{get:function(){return zt.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return zt.maximumCubeMapSize}},pickPositionSupported:{get:function(){return this._context.depthTexture}},sampleHeightSupported:{get:function(){return this._context.depthTexture}},clampToHeightSupported:{get:function(){return this._context.depthTexture}},invertClassificationSupported:{get:function(){return this._context.depthTexture}},specularEnvironmentMapsSupported:{get:function(){return xd.isSupported(this._context)}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,mht(this,e)}},primitives:{get:function(){return this._primitives}},groundPrimitives:{get:function(){return this._groundPrimitives}},camera:{get:function(){return this._view.camera},set:function(e){this._view.camera=e}},view:{get:function(){return this._view},set:function(e){this._view=e}},defaultView:{get:function(){return this._defaultView}},picking:{get:function(){return this._picking}},screenSpaceCameraController:{get:function(){return this._screenSpaceCameraController}},mapProjection:{get:function(){return this._mapProjection}},jobScheduler:{get:function(){return this._jobScheduler}},frameState:{get:function(){return this._frameState}},environmentState:{get:function(){return this._environmentState}},tweens:{get:function(){return this._tweens}},imageryLayers:{get:function(){if(u(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(u(this.globe))return this.globe.terrainProvider},set:function(e){this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),u(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(u(this.globe))return this.globe.terrainProviderChanged}},preUpdate:{get:function(){return this._preUpdate}},postUpdate:{get:function(){return this._postUpdate}},renderError:{get:function(){return this._renderError}},preRender:{get:function(){return this._preRender}},postRender:{get:function(){return this._postRender}},lastRenderTime:{get:function(){return this._lastRenderTime}},context:{get:function(){return this._context}},debugFrustumStatistics:{get:function(){return this._view.debugFrustumStatistics}},scene3DOnly:{get:function(){return this._frameState.scene3DOnly}},orderIndependentTranslucency:{get:function(){return this._useOIT}},id:{get:function(){return this._id}},mode:{get:function(){return this._mode},set:function(e){e===ne.SCENE2D?this.morphTo2D(0):e===ne.SCENE3D?this.morphTo3D(0):e===ne.COLUMBUS_VIEW&&this.morphToColumbusView(0),this._mode=e}},frustumCommandsList:{get:function(){return this._view.frustumCommandsList}},numberOfFrustums:{get:function(){return this._view.frustumCommandsList.length}},useWebVR:{get:function(){return this._useWebVR},set:function(e){this._useWebVR=e,this._useWebVR?(this._frameState.creditDisplay.container.style.visibility="hidden",this._cameraVR=new fr(this),u(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new GL(this)),this._aspectRatioVR=this.camera.frustum.aspectRatio):(this._frameState.creditDisplay.container.style.visibility="visible",this._cameraVR=void 0,this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this.camera.frustum.aspectRatio=this._aspectRatioVR,this.camera.frustum.xOffset=0)}},mapMode2D:{get:function(){return this._mapMode2D}},splitPosition:{get:function(){return this._frameState.splitPosition},set:function(e){this._frameState.splitPosition=e}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance},set:function(e){this._minimumDisableDepthTestDistance=e}},logarithmicDepthBuffer:{get:function(){return this._logDepthBuffer},set:function(e){e=this._context.fragmentDepth&&e,this._logDepthBuffer!==e&&(this._logDepthBuffer=e,this._logDepthBufferDirty=!0)}},gamma:{get:function(){return this._context.uniformState.gamma},set:function(e){this._context.uniformState.gamma=e}},highDynamicRange:{get:function(){return this._hdr},set:function(e){let t=this._context,n=e&&t.depthTexture&&(t.colorBufferFloat||t.colorBufferHalfFloat);this._hdrDirty=n!==this._hdr,this._hdr=n}},highDynamicRangeSupported:{get:function(){let e=this._context;return e.depthTexture&&(e.colorBufferFloat||e.colorBufferHalfFloat)}},cameraUnderground:{get:function(){return this._cameraUnderground}},msaaSamples:{get:function(){return this._msaaSamples},set:function(e){e=Math.min(e,zt.maximumSamples),this._msaaSamples=e}},msaaSupported:{get:function(){return this._context.msaa}},pixelRatio:{get:function(){return this._frameState.pixelRatio},set:function(e){this._frameState.pixelRatio=e}},opaqueFrustumNearOffset:{get:function(){return .9999}},globeHeight:{get:function(){return this._globeHeight}}});ji.prototype.getCompressedTextureFormatSupported=function(e){let t=this.context;return(e==="WEBGL_compressed_texture_s3tc"||e==="s3tc")&&t.s3tc||(e==="WEBGL_compressed_texture_pvrtc"||e==="pvrtc")&&t.pvrtc||(e==="WEBGL_compressed_texture_etc"||e==="etc")&&t.etc||(e==="WEBGL_compressed_texture_etc1"||e==="etc1")&&t.etc1||(e==="WEBGL_compressed_texture_astc"||e==="astc")&&t.astc||(e==="EXT_texture_compression_bptc"||e==="bc7")&&t.bc7};function A0e(e,t,n){let i=e._frameState,r=e._context,o=e._view.oit,s=i.shadowState.lightShadowMaps,a=i.shadowState.lightShadowsEnabled,c=t.derivedCommands;u(t.pickId)&&(c.picking=V_.createPickDerivedCommand(e,t,r,c.picking)),t.pickOnly||(c.depth=V_.createDepthOnlyDerivedCommand(e,t,r,c.depth)),c.originalCommand=t,e._hdr&&(c.hdr=V_.createHdrCommand(t,r,c.hdr),t=c.hdr.command,c=t.derivedCommands),a&&t.receiveShadows&&(c.shadows=G_.createReceiveDerivedCommand(s,t,n,r,c.shadows)),t.pass===be.TRANSLUCENT&&u(o)&&o.isSupported()&&(a&&t.receiveShadows?(c.oit=u(c.oit)?c.oit:{},c.oit.shadows=o.createDerivedCommands(c.shadows.receiveCommand,r,c.oit.shadows)):c.oit=o.createDerivedCommands(t,r,c.oit))}ji.prototype.updateDerivedCommands=function(e){if(!u(e.derivedCommands))return;let t=this._frameState,n=this._context,i=!1,r=t.shadowState.lastDirtyTime;e.lastDirtyTime!==r&&(e.lastDirtyTime=r,e.dirty=!0,i=!0);let o=t.useLogDepth,s=this._hdr,a=e.derivedCommands,c=u(a.logDepth),l=u(a.hdr),f=u(a.originalCommand),d=o&&!c,p=s&&!l,g=(!o||!s)&&!f;if(e.dirty=e.dirty||d||p||g,e.dirty){e.dirty=!1;let m=t.shadowState.shadowMaps;t.shadowState.shadowsEnabled&&e.castShadows&&(a.shadows=G_.createCastDerivedCommand(m,e,i,n,a.shadows)),(c||d)&&(a.logDepth=V_.createLogDepthCommand(e,n,a.logDepth),A0e(this,a.logDepth.command,i)),(f||g)&&A0e(this,e,i)}};var pht=new Gf({pass:Br.RENDER}),xY=new Gf({pass:Br.PRELOAD}),CY=new Gf({pass:Br.PRELOAD_FLIGHT}),_ht=new Gf({pass:Br.REQUEST_RENDER_MODE_DEFER_CHECK}),x0e=new ae,TY;function ght(e){let t=e.globe;if(e._mode===ne.SCENE3D&&u(t)&&t.show&&!e._cameraUnderground&&!e._globeTranslucencyState.translucent){let n=t.ellipsoid,i=e.frameState.minimumTerrainHeight;return x0e.radius=n.minimumRadius+i,TY=bL.fromBoundingSphere(x0e,e.camera.positionWC,TY),TY}}ji.prototype.clearPasses=function(e){e.render=!1,e.pick=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1};function T0e(e,t,n){let i=e._frameState;i.frameNumber=t,i.time=ee.clone(n,i.time)}ji.prototype.updateFrameState=function(){let e=this.camera,t=this._frameState;t.commandList.length=0,t.shadowMaps.length=0,t.brdfLutGenerator=this._brdfLutGenerator,t.environmentMap=this.skyBox&&this.skyBox._cubeMap,t.mode=this._mode,t.morphTime=this.morphTime,t.mapProjection=this.mapProjection,t.camera=e,t.cullingVolume=e.frustum.computeCullingVolume(e.positionWC,e.directionWC,e.upWC),t.occluder=ght(this),t.minimumTerrainHeight=0,t.minimumDisableDepthTestDistance=this._minimumDisableDepthTestDistance,t.invertClassification=this.invertClassification,t.useLogDepth=this._logDepthBuffer&&!(this.camera.frustum instanceof en||this.camera.frustum instanceof So),t.light=this.light,t.cameraUnderground=this._cameraUnderground,t.globeTranslucencyState=this._globeTranslucencyState,u(this.globe)&&(t.terrainExaggeration=this.globe.terrainExaggeration,t.terrainExaggerationRelativeHeight=this.globe.terrainExaggerationRelativeHeight),u(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready?(t.specularEnvironmentMaps=this._specularEnvironmentMapAtlas.texture,t.specularEnvironmentMapsMaximumLOD=this._specularEnvironmentMapAtlas.maximumMipmapLevel):(t.specularEnvironmentMaps=void 0,t.specularEnvironmentMapsMaximumLOD=void 0),t.sphericalHarmonicCoefficients=this.sphericalHarmonicCoefficients,this._actualInvertClassificationColor=z.clone(this.invertClassificationColor,this._actualInvertClassificationColor),CS.isTranslucencySupported(this._context)||(this._actualInvertClassificationColor.alpha=1),t.invertClassificationColor=this._actualInvertClassificationColor,u(this.globe)?t.maximumScreenSpaceError=this.globe.maximumScreenSpaceError:t.maximumScreenSpaceError=2,this.clearPasses(t.passes),t.tilesetPassState=void 0};ji.prototype.isVisible=function(e,t,n){return u(e)&&(!u(e.boundingVolume)||!e.cull||t.computeVisibility(e.boundingVolume)!==Qt.OUTSIDE&&(!u(n)||!e.occlude||!e.boundingVolume.isOccluded(n)))};var Qz=new N(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);Qz=N.inverseTransformation(Qz,Qz);function yht(e,t,n,i){let r=t._frameState,o=r.context,s=e.boundingVolume;u(t._debugVolume)&&t._debugVolume.destroy();let a,c=h.clone(s.center);if(r.mode!==ne.SCENE3D){c=N.multiplyByPoint(Qz,c,c);let p=r.mapProjection,g=p.unproject(c);c=p.ellipsoid.cartographicToCartesian(g)}if(u(s.radius)){let p=s.radius;a=Ln.toWireframe(Ns.createGeometry(new Ns({radii:new h(p,p,p),vertexFormat:rn.FLAT_VERTEX_FORMAT}))),t._debugVolume=new bn({geometryInstances:new xt({geometry:a,modelMatrix:N.fromTranslation(c),attributes:{color:new kt(1,0,0,1)}}),appearance:new rn({flat:!0,translucent:!1}),asynchronous:!1})}else{let p=s.halfAxes;a=Ln.toWireframe(fl.createGeometry(fl.fromDimensions({dimensions:new h(2,2,2),vertexFormat:rn.FLAT_VERTEX_FORMAT}))),t._debugVolume=new bn({geometryInstances:new xt({geometry:a,modelMatrix:N.fromRotationTranslation(p,c,new N),attributes:{color:new kt(1,0,0,1)}}),appearance:new rn({flat:!0,translucent:!1}),asynchronous:!1})}let l=r.commandList,f=r.commandList=[];t._debugVolume.update(r),e=f[0],r.useLogDepth&&(e=V_.createLogDepthCommand(e,o).command);let d;u(i)&&(d=n.framebuffer,n.framebuffer=i),e.execute(o,n),u(d)&&(n.framebuffer=d),r.commandList=l}function Pa(e,t,n,i,r){let o=t._frameState;if(u(t.debugCommandFilter)&&!t.debugCommandFilter(e))return;if(e instanceof ri){e.execute(n,i);return}e.debugShowBoundingVolume&&u(e.boundingVolume)&&yht(e,t,i,r),o.useLogDepth&&u(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);let s=o.passes;if(!s.pick&&!s.depth&&t._hdr&&u(e.derivedCommands)&&u(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),s.pick||s.depth){if(s.pick&&!s.depth&&u(e.derivedCommands.picking)){e=e.derivedCommands.picking.pickCommand,e.execute(n,i);return}else if(u(e.derivedCommands.depth)){e=e.derivedCommands.depth.depthOnlyCommand,e.execute(n,i);return}}if(t.debugShowCommands||t.debugShowFrustums){t._debugInspector.executeDebugShowFrustumsCommand(t,e,i);return}o.shadowState.lightShadowsEnabled&&e.receiveShadows&&u(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(n,i):e.execute(n,i)}function WN(e,t,n,i){let r=t._frameState,o=e.derivedCommands;u(o)&&(r.useLogDepth&&u(o.logDepth)&&(e=o.logDepth.command),o=e.derivedCommands,u(o.picking)?(e=o.picking.pickCommand,e.execute(n,i)):u(o.depth)&&(e=o.depth.depthOnlyCommand,e.execute(n,i)))}function E0e(e,t,n){return t.boundingVolume.distanceSquaredTo(n)-e.boundingVolume.distanceSquaredTo(n)}function Aht(e,t,n){return e.boundingVolume.distanceSquaredTo(n)-t.boundingVolume.distanceSquaredTo(n)+P.EPSILON12}function xht(e,t,n,i,r){let o=e.context;U_(i,E0e,e.camera.positionWC),u(r)&&t(r.unclassifiedCommand,e,o,n);let s=i.length;for(let a=0;a<s;++a)t(i[a],e,o,n)}function Cht(e,t,n,i,r){let o=e.context;U_(i,Aht,e.camera.positionWC),u(r)&&t(r.unclassifiedCommand,e,o,n);let s=i.length;for(let a=0;a<s;++a)t(i[a],e,o,n)}function Tht(e,t,n,i){let r=e.context;U_(i,E0e,e.camera.positionWC);let o=i.length;for(let s=0;s<o;++s)t(i[s],e,r,n)}var Eht=new wi,bht=new $c,Sht=new en,vht=new So;function EY(e,t){let n=e.camera,i=e.context,r=e.frameState,o=i.uniformState;o.updateCamera(n);let s;u(n.frustum.fov)?s=n.frustum.clone(Eht):u(n.frustum.infiniteProjectionMatrix)?s=n.frustum.clone(bht):u(n.frustum.width)?s=n.frustum.clone(Sht):s=n.frustum.clone(vht),s.near=n.frustum.near,s.far=n.frustum.far,o.updateFrustum(s),o.updatePass(be.ENVIRONMENT);let a=r.passes,c=a.pick,l=e._environmentState,f=e._view,d=l.renderTranslucentDepthForPick,p=l.useWebVR;if(!c){let b=l.skyBoxCommand;if(u(b)&&Pa(b,e,i,t),l.isSkyAtmosphereVisible&&Pa(l.skyAtmosphereCommand,e,i,t),l.isSunVisible&&(l.sunDrawCommand.execute(i,t),e.sunBloom&&!p)){let w;l.useGlobeDepthFramebuffer?w=f.globeDepth.framebuffer:l.usePostProcess?w=f.sceneFramebuffer.framebuffer:w=l.originalFramebuffer,e._sunPostProcess.execute(i),e._sunPostProcess.copy(i,w),t.framebuffer=w}l.isMoonVisible&&l.moonCommand.execute(i,t)}let g;l.useOIT?(u(e._executeOITFunction)||(e._executeOITFunction=function(b,w,I,R,F){f.globeDepth.prepareColorTextures(i),f.oit.executeCommands(b,w,I,R,F)}),g=e._executeOITFunction):a.render?g=xht:g=Cht;let m=f.frustumCommandsList,A=m.length,x=l.clearGlobeDepth,C=l.useDepthPlane,T=e._globeTranslucencyState,E=T.translucent,S=e._view.globeTranslucencyFramebuffer,v=e._depthClearCommand,D=e._stencilClearCommand,M=e._classificationStencilClearCommand,O=e._depthPlane,B=l.usePostProcessSelected,L=n.position.z,_;for(let b=0;b<A;++b){let w=A-b-1,I=m[w];e.mode===ne.SCENE2D?(n.position.z=L-I.near+1,s.far=Math.max(1,I.far-I.near),s.near=1,o.update(r),o.updateFrustum(s)):(s.near=w!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,o.updateFrustum(s)),v.execute(i,t),i.stencilBuffer&&D.execute(i,t),o.updatePass(be.GLOBE);let R=I.commands[be.GLOBE],F=I.indices[be.GLOBE];if(E)T.executeGlobeCommands(I,Pa,S,e,t);else for(_=0;_<F;++_)Pa(R[_],e,i,t);let k=f.globeDepth;if(u(k)&&l.useGlobeDepthFramebuffer&&k.executeCopyDepth(i,t),!l.renderTranslucentDepthForPick)if(o.updatePass(be.TERRAIN_CLASSIFICATION),R=I.commands[be.TERRAIN_CLASSIFICATION],F=I.indices[be.TERRAIN_CLASSIFICATION],E)T.executeGlobeClassificationCommands(I,Pa,S,e,t);else for(_=0;_<F;++_)Pa(R[_],e,i,t);if(x&&(v.execute(i,t),C&&O.execute(i,t)),!l.useInvertClassification||c||l.renderTranslucentDepthForPick){for(o.updatePass(be.CESIUM_3D_TILE),R=I.commands[be.CESIUM_3D_TILE],F=I.indices[be.CESIUM_3D_TILE],_=0;_<F;++_)Pa(R[_],e,i,t);if(F>0&&(u(k)&&l.useGlobeDepthFramebuffer&&(k.prepareColorTextures(i,x),k.executeUpdateDepth(i,t,x,k.depthStencilTexture)),!l.renderTranslucentDepthForPick))for(o.updatePass(be.CESIUM_3D_TILE_CLASSIFICATION),R=I.commands[be.CESIUM_3D_TILE_CLASSIFICATION],F=I.indices[be.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<F;++_)Pa(R[_],e,i,t)}else{e._invertClassification.clear(i,t);let Y=t.framebuffer;for(t.framebuffer=e._invertClassification._fbo.framebuffer,o.updatePass(be.CESIUM_3D_TILE),R=I.commands[be.CESIUM_3D_TILE],F=I.indices[be.CESIUM_3D_TILE],_=0;_<F;++_)Pa(R[_],e,i,t);for(u(k)&&l.useGlobeDepthFramebuffer&&(e._invertClassification.prepareTextures(i),k.executeUpdateDepth(i,t,x,e._invertClassification._fbo.getDepthStencilTexture())),o.updatePass(be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),R=I.commands[be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],F=I.indices[be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],_=0;_<F;++_)Pa(R[_],e,i,t);for(t.framebuffer=Y,e._invertClassification.executeClassified(i,t),r.invertClassificationColor.alpha===1&&e._invertClassification.executeUnclassified(i,t),F>0&&i.stencilBuffer&&M.execute(i,t),o.updatePass(be.CESIUM_3D_TILE_CLASSIFICATION),R=I.commands[be.CESIUM_3D_TILE_CLASSIFICATION],F=I.indices[be.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<F;++_)Pa(R[_],e,i,t)}for(F>0&&i.stencilBuffer&&D.execute(i,t),o.updatePass(be.VOXELS),R=I.commands[be.VOXELS],F=I.indices[be.VOXELS],R.length=F,Tht(e,Pa,t,R),o.updatePass(be.OPAQUE),R=I.commands[be.OPAQUE],F=I.indices[be.OPAQUE],_=0;_<F;++_)Pa(R[_],e,i,t);w!==0&&e.mode!==ne.SCENE2D&&(s.near=I.near,o.updateFrustum(s));let V;if(!c&&l.useInvertClassification&&r.invertClassificationColor.alpha<1&&(V=e._invertClassification),o.updatePass(be.TRANSLUCENT),R=I.commands[be.TRANSLUCENT],R.length=I.indices[be.TRANSLUCENT],g(e,Pa,t,R,V),I.indices[be.CESIUM_3D_TILE_CLASSIFICATION]>0&&f.translucentTileClassification.isSupported()&&(f.translucentTileClassification.executeTranslucentCommands(e,Pa,t,R,k.depthStencilTexture),f.translucentTileClassification.executeClassificationCommands(e,Pa,t,I)),i.depthTexture&&e.useDepthPicking&&(l.useGlobeDepthFramebuffer||d)){let Y=k.depthStencilTexture,W=e._picking.getPickDepth(e,w);W.update(i,Y),W.executeCopyDepth(i,t)}if(c||!B)continue;let U=t.framebuffer;if(t.framebuffer=f.sceneFramebuffer.getIdFramebuffer(),s.near=w!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,o.updateFrustum(s),o.updatePass(be.GLOBE),R=I.commands[be.GLOBE],F=I.indices[be.GLOBE],E)T.executeGlobeCommands(I,WN,S,e,t);else for(_=0;_<F;++_)WN(R[_],e,i,t);for(x&&(v.framebuffer=t.framebuffer,v.execute(i,t),v.framebuffer=void 0),x&&C&&O.execute(i,t),o.updatePass(be.CESIUM_3D_TILE),R=I.commands[be.CESIUM_3D_TILE],F=I.indices[be.CESIUM_3D_TILE],_=0;_<F;++_)WN(R[_],e,i,t);for(o.updatePass(be.OPAQUE),R=I.commands[be.OPAQUE],F=I.indices[be.OPAQUE],_=0;_<F;++_)WN(R[_],e,i,t);for(o.updatePass(be.TRANSLUCENT),R=I.commands[be.TRANSLUCENT],F=I.indices[be.TRANSLUCENT],_=0;_<F;++_)WN(R[_],e,i,t);t.framebuffer=U}}function b0e(e){e.context.uniformState.updatePass(be.COMPUTE);let n=e._environmentState.sunComputeCommand;u(n)&&n.execute(e._computeEngine);let i=e._computeCommandList,r=i.length;for(let o=0;o<r;++o)i[o].execute(e._computeEngine)}function wht(e,t){e.context.uniformState.updatePass(be.OVERLAY);let i=e.context,r=e._overlayCommandList,o=r.length;for(let s=0;s<o;++s)r[s].execute(i,t)}function Dht(e,t,n){let i=n.shadowMapCullingVolume,r=n.isPointLight,o=n.passes,s=o.length,a=t.length;for(let c=0;c<a;++c){let l=t[c];if(e.updateDerivedCommands(l),l.castShadows&&(l.pass===be.GLOBE||l.pass===be.CESIUM_3D_TILE||l.pass===be.OPAQUE||l.pass===be.TRANSLUCENT)&&e.isVisible(l,i))if(r)for(let f=0;f<s;++f)o[f].commandList.push(l);else if(s===1)o[0].commandList.push(l);else{let f=!1;for(let d=s-1;d>=0;--d){let p=o[d].cullingVolume;if(e.isVisible(l,p))o[d].commandList.push(l),f=!0;else if(f)break}}}}function S0e(e){let t=e.frameState,n=t.shadowState.shadowMaps,i=n.length;if(!t.shadowState.shadowsEnabled)return;let r=e.context,o=r.uniformState;for(let s=0;s<i;++s){let a=n[s];if(a.outOfView)continue;let c=a.passes,l=c.length;for(let d=0;d<l;++d)c[d].commandList.length=0;let f=e.frameState.commandList;Dht(e,f,a);for(let d=0;d<l;++d){let p=a.passes[d];o.updateCamera(p.camera),a.updatePass(r,d);let g=p.commandList.length;for(let m=0;m<g;++m){let A=p.commandList[m];o.updatePass(A.pass),Pa(A.derivedCommands.shadows.castCommands[s],e,r,p.passState)}}}}var Iht=new h;ji.prototype.updateAndExecuteCommands=function(e,t){let i=this._frameState.mode;this._environmentState.useWebVR?Pht(this,e,t):i!==ne.SCENE2D||this._mapMode2D===Vl.ROTATE?t0(!0,this,e,t):(bY(this,e,t),Vht(this,e))};function Pht(e,t,n){let i=e._view,r=i.camera,s=e._environmentState.renderTranslucentDepthForPick;bY(e,t,n),v0e(e),i.createPotentiallyVisibleSet(e),b0e(e),s||S0e(e);let a=t.viewport;a.x=0,a.y=0,a.width=a.width*.5;let c=fr.clone(r,e._cameraVR);c.frustum=r.frustum;let l=r.frustum.near,f=l*y(e.focalLength,5),d=y(e.eyeSeparation,f/30),p=h.multiplyByScalar(c.right,d*.5,Iht);r.frustum.aspectRatio=a.width/a.height;let g=.5*d*l/f;h.add(c.position,p,r.position),r.frustum.xOffset=g,EY(e,t),a.x=a.width,h.subtract(c.position,p,r.position),r.frustum.xOffset=-g,EY(e,t),fr.clone(c,r)}var Oht=new me(Math.PI,P.PI_OVER_TWO),Mht=new h,Rht=new h,Bht=new N,Lht=new N,Nht=new h,Fht=new h,Uht=new Xe;function Vht(e,t){let n=e.context,i=e.frameState,r=e.camera,o=t.viewport,s=Xe.clone(o,Uht);t.viewport=s;let a=Oht,c=Mht;e.mapProjection.project(a,c);let f=h.clone(r.position,Rht),d=N.clone(r.transform,Lht),p=r.frustum.clone();r._setTransform(N.IDENTITY);let g=N.computeViewportTransformation(s,0,1,Bht),m=r.frustum.projectionMatrix,A=r.positionWC.y,x=h.fromElements(P.sign(A)*c.x-A,0,-r.positionWC.x,Nht),C=Mt.pointToGLWindowCoordinates(m,g,x,Fht);C.x=Math.floor(C.x);let T=s.x,E=s.width;if(A===0||C.x<=T||C.x>=T+E)t0(!0,e,t);else if(Math.abs(T+E*.5-C.x)<1)s.width=C.x-s.x,r.position.x*=P.sign(r.position.x),r.frustum.right=0,i.cullingVolume=r.frustum.computeCullingVolume(r.positionWC,r.directionWC,r.upWC),n.uniformState.update(i),t0(!0,e,t),s.x=C.x,r.position.x=-r.position.x,r.frustum.right=-r.frustum.left,r.frustum.left=0,i.cullingVolume=r.frustum.computeCullingVolume(r.positionWC,r.directionWC,r.upWC),n.uniformState.update(i),t0(!1,e,t);else if(C.x>T+E*.5){s.width=C.x-T;let S=r.frustum.right;r.frustum.right=c.x-A,i.cullingVolume=r.frustum.computeCullingVolume(r.positionWC,r.directionWC,r.upWC),n.uniformState.update(i),t0(!0,e,t),s.x=C.x,s.width=T+E-C.x,r.position.x=-r.position.x,r.frustum.left=-r.frustum.right,r.frustum.right=S-r.frustum.right*2,i.cullingVolume=r.frustum.computeCullingVolume(r.positionWC,r.directionWC,r.upWC),n.uniformState.update(i),t0(!1,e,t)}else{s.x=C.x,s.width=T+E-C.x;let S=r.frustum.left;r.frustum.left=-c.x-A,i.cullingVolume=r.frustum.computeCullingVolume(r.positionWC,r.directionWC,r.upWC),n.uniformState.update(i),t0(!0,e,t),s.x=T,s.width=C.x-T,r.position.x=-r.position.x,r.frustum.right=-r.frustum.left,r.frustum.left=S-r.frustum.left*2,i.cullingVolume=r.frustum.computeCullingVolume(r.positionWC,r.directionWC,r.upWC),n.uniformState.update(i),t0(!1,e,t)}r._setTransform(d),h.clone(f,r.position),r.frustum=p.clone(),t.viewport=o}function t0(e,t,n,i){let r=t._environmentState,o=t._view,s=r.renderTranslucentDepthForPick;e||(t.frameState.commandList.length=0),v0e(t),o.createPotentiallyVisibleSet(t),e&&(u(i)&&bY(t,n,i),b0e(t),s||S0e(t)),EY(t,n)}var C0e=new ts;ji.prototype.updateEnvironment=function(){let e=this._frameState,t=this._view,n=this._environmentState,i=e.passes.render,r=e.passes.offscreen,o=this.skyAtmosphere,s=this.globe,a=this._globeTranslucencyState;if(!i||this._mode!==ne.SCENE2D&&t.camera.frustum instanceof en||!a.environmentVisible)n.skyAtmosphereCommand=void 0,n.skyBoxCommand=void 0,n.sunDrawCommand=void 0,n.sunComputeCommand=void 0,n.moonCommand=void 0;else{u(o)?(u(s)&&(o.setDynamicAtmosphereColor(s.enableLighting&&s.dynamicAtmosphereLighting,s.dynamicAtmosphereLightingFromSun),n.isReadyForAtmosphere=n.isReadyForAtmosphere||s._surface._tilesToRender.length>0),n.skyAtmosphereCommand=o.update(e,s),u(n.skyAtmosphereCommand)&&this.updateDerivedCommands(n.skyAtmosphereCommand)):n.skyAtmosphereCommand=void 0,n.skyBoxCommand=u(this.skyBox)?this.skyBox.update(e,this._hdr):void 0;let A=u(this.sun)?this.sun.update(e,t.passState,this._hdr):void 0;n.sunDrawCommand=u(A)?A.drawCommand:void 0,n.sunComputeCommand=u(A)?A.computeCommand:void 0,n.moonCommand=u(this.moon)?this.moon.update(e):void 0}let c=n.clearGlobeDepth=u(s)&&s.show&&(!s.depthTestAgainstTerrain||this.mode===ne.SCENE2D);(n.useDepthPlane=c&&this.mode===ne.SCENE3D&&a.useDepthPlane)&&this._depthPlane.update(e),n.renderTranslucentDepthForPick=!1,n.useWebVR=this._useWebVR&&this.mode!==ne.SCENE2D&&!r;let f=e.mode===ne.SCENE3D&&!a.sunVisibleThroughGlobe?e.occluder:void 0,d=e.cullingVolume,p=C0e.planes;for(let A=0;A<5;++A)p[A]=d.planes[A];d=C0e,n.isSkyAtmosphereVisible=u(n.skyAtmosphereCommand)&&n.isReadyForAtmosphere,n.isSunVisible=this.isVisible(n.sunDrawCommand,d,f),n.isMoonVisible=this.isVisible(n.moonCommand,d,f);let g=this.specularEnvironmentMaps,m=this._specularEnvironmentMapAtlas;u(g)&&(!u(m)||m.url!==g)?(m=m&&m.destroy(),this._specularEnvironmentMapAtlas=new xd(g)):!u(g)&&u(m)&&(m.destroy(),this._specularEnvironmentMapAtlas=void 0),u(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.update(e)};function kht(e){let t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new Om({camera:e.camera,updateOnChange:!1,frustumSplits:t.frustumSplits}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),u(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function zht(e){let t=e._frameState,n=t.shadowMaps,i=n.length,r=i>0&&!t.passes.pick&&e.mode===ne.SCENE3D;if(r!==t.shadowState.shadowsEnabled&&(++t.shadowState.lastDirtyTime,t.shadowState.shadowsEnabled=r),t.shadowState.lightShadowsEnabled=!1,!!r){for(let o=0;o<i;++o)if(n[o]!==t.shadowState.shadowMaps[o]){++t.shadowState.lastDirtyTime;break}t.shadowState.shadowMaps.length=0,t.shadowState.lightShadowMaps.length=0;for(let o=0;o<i;++o){let s=n[o];s.update(t),t.shadowState.shadowMaps.push(s),s.fromLightSource&&(t.shadowState.lightShadowMaps.push(s),t.shadowState.lightShadowsEnabled=!0),s.dirty&&(++t.shadowState.lastDirtyTime,s.dirty=!1)}}}function v0e(e){let t=e._frameState;e._groundPrimitives.update(t),e._primitives.update(t),kht(e),zht(e),e._globe&&e._globe.render(t)}function bY(e,t,n){let i=e._context,r=e._frameState,o=e._environmentState,s=e._view,c=e._frameState.passes.pick;u(s.globeDepth)&&(s.globeDepth.picking=c);let l=o.useWebVR;o.originalFramebuffer=t.framebuffer,u(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!l?e._sunPostProcess=new zN:u(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!u(e.sun)&&u(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy(),e._sunBloom=!1);let f=e._clearColorCommand;z.clone(n,f.color),f.execute(i,t);let d=o.useGlobeDepthFramebuffer=u(s.globeDepth);d&&(s.globeDepth.update(i,t,s.viewport,e.msaaSamples,e._hdr,o.clearGlobeDepth),s.globeDepth.clear(i,t,n));let p=s.oit,g=o.useOIT=!c&&u(p)&&p.isSupported();g&&(p.update(i,t,s.globeDepth.colorFramebufferManager,e._hdr,e.msaaSamples),p.clear(i,t,n),o.useOIT=p.isSupported());let m=e.postProcessStages,A=o.usePostProcess=!c&&(e._hdr||m.length>0||m.ambientOcclusion.enabled||m.fxaa.enabled||m.bloom.enabled);if(o.usePostProcessSelected=!1,A&&(s.sceneFramebuffer.update(i,s.viewport,e._hdr,e.msaaSamples),s.sceneFramebuffer.clear(i,t,n),m.update(i,r.useLogDepth,e._hdr),m.clear(i),A=o.usePostProcess=m.ready,o.usePostProcessSelected=A&&m.hasSelected),o.isSunVisible&&e.sunBloom&&!l?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(i,t,n)):d?t.framebuffer=s.globeDepth.framebuffer:A&&(t.framebuffer=s.sceneFramebuffer.framebuffer),u(t.framebuffer)&&f.execute(i,t),o.useInvertClassification=!c&&u(t.framebuffer)&&e.invertClassification){let C;if(e.frameState.invertClassificationColor.alpha===1&&o.useGlobeDepthFramebuffer&&(C=s.globeDepth.framebuffer),u(C)||i.depthTexture){if(e._invertClassification.previousFramebuffer=C,e._invertClassification.update(i,e.msaaSamples,s.globeDepth.colorFramebufferManager),e._invertClassification.clear(i,t),e.frameState.invertClassificationColor.alpha<1&&g){let T=e._invertClassification.unclassifiedCommand,E=T.derivedCommands;E.oit=p.createDerivedCommands(T,i,E.oit)}}else o.useInvertClassification=!1}e._globeTranslucencyState.translucent&&s.globeTranslucencyFramebuffer.updateAndClear(e._hdr,s.viewport,i,t)}ji.prototype.resolveFramebuffers=function(e){let t=this._context,n=this._environmentState,i=this._view,r=i.globeDepth;u(r)&&r.prepareColorTextures(t);let o=n.useOIT,s=n.useGlobeDepthFramebuffer,a=n.usePostProcess,c=n.originalFramebuffer,l=s?r.colorFramebufferManager:void 0,f=i.sceneFramebuffer._colorFramebuffer,d=i.sceneFramebuffer.idFramebuffer;o&&(e.framebuffer=a?f.framebuffer:c,i.oit.execute(t,e));let p=i.translucentTileClassification;if(p.hasTranslucentDepth&&p.isSupported()&&p.execute(this,e),a){i.sceneFramebuffer.prepareColorTextures(t);let g=f;s&&!o&&(g=l);let m=this.postProcessStages,A=g.getColorTexture(0),x=d.getColorTexture(0),C=y(l,f).getDepthStencilTexture();m.execute(t,A,C,x),m.copy(t,c)}!o&&!a&&s&&(e.framebuffer=c,r.executeCopyColor(t,e))};function Hht(e){let t=e._frameState.afterRender;for(let n=0,i=t.length;n<i;++n)t[n]()&&e.requestRender();t.length=0}function Ght(e){let t=e._globe,i=e.camera.positionCartographic;if(u(t)&&t.show&&u(i))return t.getHeight(i)}function Wht(e){let t=e.camera,n=e._mode,i=e.globe,r=e._screenSpaceCameraController,o=t.positionCartographic;if(!u(o))return!1;if(!r.onMap()&&o.height<0)return!0;if(!u(i)||!i.show||n===ne.SCENE2D||n===ne.MORPHING)return!1;let s=e._globeHeight;return u(s)&&o.height<s}ji.prototype.initializeFrame=function(){this._shaderFrameCount++===120&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._globeHeight=Ght(this),this._cameraUnderground=Wht(this),this._globeTranslucencyState.update(this),this._screenSpaceCameraController.update(),u(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};function jht(e,t){if(e.debugShowFramesPerSecond){if(!u(e._performanceDisplay)){let n=document.createElement("div");n.className="cesium-performanceDisplay-defaultContainer",e._canvas.parentNode.appendChild(n);let r=new k_({container:n});e._performanceDisplay=r,e._performanceContainer=n}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else u(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function qht(e){e._jobScheduler.resetBudgets();let t=e._frameState;e.primitives.prePassesUpdate(t),u(e.globe)&&e.globe.update(t),e._picking.update(),t.creditDisplay.update()}function Yht(e){let t=e._frameState;e.primitives.postPassesUpdate(t),Ua.update()}var Xht=new z;function Kht(e){let t=e._frameState,n=e.context,i=n.uniformState,r=e._defaultView;e._view=r,e.updateFrameState(),t.passes.render=!0,t.passes.postProcess=e.postProcessStages.hasSelected,t.tilesetPassState=pht;let o=y(e.backgroundColor,z.BLACK);e._hdr&&(o=z.clone(o,Xht),o.red=Math.pow(o.red,e.gamma),o.green=Math.pow(o.green,e.gamma),o.blue=Math.pow(o.blue,e.gamma)),t.backgroundColor=o,e.fog.update(t),i.update(t);let s=e.shadowMap;u(s)&&s.enabled&&(!u(e.light)||e.light instanceof op?h.negate(i.sunDirectionWC,e._shadowMapCamera.direction):h.clone(e.light.direction,e._shadowMapCamera.direction),t.shadowMaps.push(s)),e._computeCommandList.length=0,e._overlayCommandList.length=0;let a=r.viewport;a.x=0,a.y=0,a.width=n.drawingBufferWidth,a.height=n.drawingBufferHeight;let c=r.passState;c.framebuffer=void 0,c.blendingEnabled=void 0,c.scissorTest=void 0,c.viewport=Xe.clone(a,c.viewport),u(e.globe)&&e.globe.beginFrame(t),e.updateEnvironment(),e.updateAndExecuteCommands(c,o),e.resolveFramebuffers(c),c.framebuffer=void 0,wht(e,c),u(e.globe)&&(e.globe.endFrame(t),e.globe.tilesLoaded||(e._renderRequested=!0)),n.endFrame()}function xC(e,t){try{t(e)}catch(n){if(e._renderError.raiseEvent(e,n),e.rethrowRenderErrors)throw n}}function Jht(e){return e._picking.updateMostDetailedRayPicks(e)}ji.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);let t=this._frameState;t.newFrame=!1,u(e)||(e=ee.now());let n=this._view.checkForCameraUpdates(this),i=!this.requestRenderMode||this._renderRequested||n||this._logDepthBufferDirty||this._hdrDirty||this.mode===ne.MORPHING;if(!i&&u(this.maximumRenderTimeChange)&&u(this._lastRenderTime)){let r=Math.abs(ee.secondsDifference(this._lastRenderTime,e));i=i||r>this.maximumRenderTimeChange}if(i){this._lastRenderTime=ee.clone(e,this._lastRenderTime),this._renderRequested=!1,this._logDepthBufferDirty=!1,this._hdrDirty=!1;let r=P.incrementWrap(t.frameNumber,15e6,1);T0e(this,r,e),t.newFrame=!0}xC(this,qht),this.primitives.show&&(xC(this,Jht),xC(this,Zht),xC(this,Qht),i||xC(this,$ht)),this._postUpdate.raiseEvent(this,e),i&&(this._preRender.raiseEvent(this,e),t.creditDisplay.beginFrame(),xC(this,Kht)),jht(this,i),xC(this,Yht),Hht(this),i&&(this._postRender.raiseEvent(this,e),t.creditDisplay.endFrame())};ji.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)};ji.prototype.requestRender=function(){this._renderRequested=!0};ji.prototype.clampLineWidth=function(e){return Math.max(zt.minimumAliasedLineWidth,Math.min(e,zt.maximumAliasedLineWidth))};ji.prototype.pick=function(e,t,n){return this._picking.pick(this,e,t,n)};ji.prototype.pickPositionWorldCoordinates=function(e,t){return this._picking.pickPositionWorldCoordinates(this,e,t)};ji.prototype.pickPosition=function(e,t){return this._picking.pickPosition(this,e,t)};ji.prototype.drillPick=function(e,t,n,i){return this._picking.drillPick(this,e,t,n,i)};function Zht(e){let t=e._frameState;xY.camera=t.camera,xY.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,xY)}function Qht(e){let t=e._frameState;if(!t.camera.canPreloadFlight())return;CY.camera=e.preloadFlightCamera,CY.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,CY)}function $ht(e){e.primitives.updateForPass(e._frameState,_ht)}ji.prototype.pickFromRay=function(e,t,n){return this._picking.pickFromRay(this,e,t,n)};ji.prototype.drillPickFromRay=function(e,t,n,i){return this._picking.drillPickFromRay(this,e,t,n,i)};ji.prototype.pickFromRayMostDetailed=function(e,t,n){return this._picking.pickFromRayMostDetailed(this,e,t,n)};ji.prototype.drillPickFromRayMostDetailed=function(e,t,n,i){return this._picking.drillPickFromRayMostDetailed(this,e,t,n,i)};ji.prototype.sampleHeight=function(e,t,n){return this._picking.sampleHeight(this,e,t,n)};ji.prototype.clampToHeight=function(e,t,n,i){return this._picking.clampToHeight(this,e,t,n,i)};ji.prototype.sampleHeightMostDetailed=function(e,t,n){return this._picking.sampleHeightMostDetailed(this,e,t,n)};ji.prototype.clampToHeightMostDetailed=function(e,t,n){return this._picking.clampToHeightMostDetailed(this,e,t,n)};ji.prototype.cartesianToCanvasCoordinates=function(e,t){return Zi.wgs84ToWindowCoordinates(this,e,t)};ji.prototype.completeMorph=function(){this._transitioner.completeMorph()};ji.prototype.morphTo2D=function(e){let t,n=this.globe;u(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphTo2D(e,t)};ji.prototype.morphToColumbusView=function(e){let t,n=this.globe;u(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphToColumbusView(e,t)};ji.prototype.morphTo3D=function(e){let t,n=this.globe;u(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphTo3D(e,t)};function emt(e,t){if(e._removeTerrainProviderReadyListener=e._removeTerrainProviderReadyListener&&e._removeTerrainProviderReadyListener(),t.ready){u(e.globe)&&(e.globe.terrainProvider=t.provider);return}e.globe.terrainProvider=void 0,e._removeTerrainProviderReadyListener=t.readyEvent.addEventListener(n=>{u(e)&&u(e.globe)&&(e.globe.terrainProvider=n),e._removeTerrainProviderReadyListener()})}ji.prototype.setTerrain=function(e){return emt(this,e),e};ji.prototype.isDestroyed=function(){return!1};ji.prototype.destroy=function(){this._tweens.removeAll(),this._computeEngine=this._computeEngine&&this._computeEngine.destroy(),this._screenSpaceCameraController=this._screenSpaceCameraController&&this._screenSpaceCameraController.destroy(),this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this._primitives=this._primitives&&this._primitives.destroy(),this._groundPrimitives=this._groundPrimitives&&this._groundPrimitives.destroy(),this._globe=this._globe&&this._globe.destroy(),this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),this.skyBox=this.skyBox&&this.skyBox.destroy(),this.skyAtmosphere=this.skyAtmosphere&&this.skyAtmosphere.destroy(),this._debugSphere=this._debugSphere&&this._debugSphere.destroy(),this.sun=this.sun&&this.sun.destroy(),this._sunPostProcess=this._sunPostProcess&&this._sunPostProcess.destroy(),this._depthPlane=this._depthPlane&&this._depthPlane.destroy(),this._transitioner=this._transitioner&&this._transitioner.destroy(),this._debugFrustumPlanes=this._debugFrustumPlanes&&this._debugFrustumPlanes.destroy(),this._brdfLutGenerator=this._brdfLutGenerator&&this._brdfLutGenerator.destroy(),this._picking=this._picking&&this._picking.destroy(),this._defaultView=this._defaultView&&this._defaultView.destroy(),this._view=void 0,this._removeCreditContainer&&this._canvas.parentNode.removeChild(this._creditContainer),this.postProcessStages=this.postProcessStages&&this.postProcessStages.destroy(),this._context=this._context&&this._context.destroy(),this._frameState.creditDisplay=this._frameState.creditDisplay&&this._frameState.creditDisplay.destroy(),u(this._performanceDisplay)&&(this._performanceDisplay=this._performanceDisplay&&this._performanceDisplay.destroy(),this._performanceContainer.parentNode.removeChild(this._performanceContainer)),this._removeRequestListenerCallback(),this._removeTaskProcessorListenerCallback();for(let e=0;e<this._removeGlobeCallbacks.length;++e)this._removeGlobeCallbacks[e]();return this._removeGlobeCallbacks.length=0,ue(this)};var jN=ji;var vS=`float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} + +vec3 getLightDirection(vec3 positionWC) +{ + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirection = + positionWC * float(lightEnum == 0.0) + + czm_lightDirectionWC * float(lightEnum == 1.0) + + czm_sunDirectionWC * float(lightEnum == 2.0); + return normalize(lightDirection); +} + +void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity, out float underTranslucentGlobe) +{ + float ellipsoidRadiiDifference = czm_ellipsoidRadii.x - czm_ellipsoidRadii.z; + + // Adjustment to the atmosphere radius applied based on the camera height. + float distanceAdjustMin = czm_ellipsoidRadii.x / 4.0; + float distanceAdjustMax = czm_ellipsoidRadii.x; + float distanceAdjustModifier = ellipsoidRadiiDifference / 2.0; + float distanceAdjust = distanceAdjustModifier * clamp((czm_eyeHeight - distanceAdjustMin) / (distanceAdjustMax - distanceAdjustMin), 0.0, 1.0); + + // Since atmosphere scattering assumes the atmosphere is a spherical shell, we compute an inner radius of the atmosphere best fit + // for the position on the ellipsoid. + float radiusAdjust = (ellipsoidRadiiDifference / 4.0) + distanceAdjust; + float atmosphereInnerRadius = (length(czm_viewerPositionWC) - czm_eyeHeight) - radiusAdjust; + + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + underTranslucentGlobe = 0.0; + + // Brighten the sky atmosphere under the Earth's atmosphere when translucency is enabled. + #if defined(GLOBE_TRANSLUCENT) + + // Check for intersection with the inner radius of the atmopshere. + czm_raySegment primaryRayEarthIntersect = czm_raySphereIntersectionInterval(primaryRay, vec3(0.0), atmosphereInnerRadius + radiusAdjust); + if (primaryRayEarthIntersect.start > 0.0 && primaryRayEarthIntersect.stop > 0.0) { + + // Compute position on globe. + vec3 direction = normalize(positionWC); + czm_ray ellipsoidRay = czm_ray(positionWC, -direction); + czm_raySegment ellipsoidIntersection = czm_rayEllipsoidIntersectionInterval(ellipsoidRay, vec3(0.0), czm_ellipsoidInverseRadii); + vec3 onEarth = positionWC - (direction * ellipsoidIntersection.start); + + // Control the color using the camera angle. + float angle = dot(normalize(czm_viewerPositionWC), normalize(onEarth)); + + // Control the opacity using the distance from Earth. + opacity = interpolateByDistance(vec4(0.0, 1.0, czm_ellipsoidRadii.x, 0.0), length(czm_viewerPositionWC - onEarth)); + vec3 horizonColor = vec3(0.1, 0.2, 0.3); + vec3 nearColor = vec3(0.0); + + rayleighColor = mix(nearColor, horizonColor, exp(-angle) * opacity); + + // Set the traslucent flag to avoid alpha adjustment in computeFinalColor funciton. + underTranslucentGlobe = 1.0; + return; + } + #endif + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); + + // Alter the opacity based on how close the viewer is to the ground. + // (0.0 = At edge of atmosphere, 1.0 = On ground) + float cameraHeight = czm_eyeHeight + atmosphereInnerRadius; + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + opacity = clamp((atmosphereOuterRadius - cameraHeight) / (atmosphereOuterRadius - atmosphereInnerRadius), 0.0, 1.0); + + // Alter alpha based on time of day (0.0 = night , 1.0 = day) + float nightAlpha = (u_radiiAndDynamicAtmosphereColor.z != 0.0) ? clamp(dot(normalize(positionWC), lightDirection), 0.0, 1.0) : 1.0; + opacity *= pow(nightAlpha, 0.5); +} +`;var qN=`in vec3 v_outerPositionWC; + +uniform vec3 u_hsbShift; + +#ifndef PER_FRAGMENT_ATMOSPHERE +in vec3 v_mieColor; +in vec3 v_rayleighColor; +in float v_opacity; +in float v_translucent; +#endif + +void main (void) +{ + vec3 lightDirection = getLightDirection(v_outerPositionWC); + + vec3 mieColor; + vec3 rayleighColor; + float opacity; + float translucent; + + #ifdef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + v_outerPositionWC, + lightDirection, + rayleighColor, + mieColor, + opacity, + translucent + ); + #else + mieColor = v_mieColor; + rayleighColor = v_rayleighColor; + opacity = v_opacity; + translucent = v_translucent; + #endif + + vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity); + + #ifndef HDR + color.rgb = czm_acesTonemapping(color.rgb); + color.rgb = czm_inverseGamma(color.rgb); + #endif + + #ifdef COLOR_CORRECT + // Convert rgb color to hsb + vec3 hsb = czm_RGBToHSB(color.rgb); + // Perform hsb shift + hsb.x += u_hsbShift.x; // hue + hsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0); // saturation + hsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0; // brightness + // Convert shifted hsb back to rgb + color.rgb = czm_HSBToRGB(hsb); + #endif + + // For the parts of the sky atmosphere that are not behind a translucent globe, + // we mix in the default opacity so that the sky atmosphere still appears at distance. + // This is needed because the opacity in the sky atmosphere is initially adjusted based + // on the camera height. + if (translucent == 0.0) { + color.a = mix(color.b, 1.0, color.a) * smoothstep(0.0, 1.0, czm_morphTime); + } + + out_FragColor = color; +} +`;var YN=`in vec4 position; + +out vec3 v_outerPositionWC; + +#ifndef PER_FRAGMENT_ATMOSPHERE +out vec3 v_mieColor; +out vec3 v_rayleighColor; +out float v_opacity; +out float v_translucent; +#endif + +void main(void) +{ + vec4 positionWC = czm_model * position; + vec3 lightDirection = getLightDirection(positionWC.xyz); + + #ifndef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + positionWC.xyz, + lightDirection, + v_rayleighColor, + v_mieColor, + v_opacity, + v_translucent + ); + #endif + + v_outerPositionWC = positionWC.xyz; + gl_Position = czm_modelViewProjection * position; +} +`;function wS(e){e=y(e,re.WGS84),this.show=!0,this.perFragmentAtmosphere=!1,this._ellipsoid=e;let t=1.025,n=h.multiplyByScalar(e.radii,t,new h);this._scaleMatrix=N.fromScale(n),this._modelMatrix=new N,this._command=new nt({owner:this,modelMatrix:this._modelMatrix}),this._spSkyFromSpace=void 0,this._spSkyFromAtmosphere=void 0,this._flags=void 0,this.atmosphereLightIntensity=50,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this._hueSaturationBrightness=new h;let i=new h;i.x=e.maximumRadius*t,i.y=e.maximumRadius,i.z=0,this._radiiAndDynamicAtmosphereColor=i;let r=this;this._command.uniformMap={u_radiiAndDynamicAtmosphereColor:function(){return r._radiiAndDynamicAtmosphereColor},u_hsbShift:function(){return r._hueSaturationBrightness.x=r.hueShift,r._hueSaturationBrightness.y=r.saturationShift,r._hueSaturationBrightness.z=r.brightnessShift,r._hueSaturationBrightness},u_atmosphereLightIntensity:function(){return r.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return r.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return r.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return r.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return r.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return r.atmosphereMieAnisotropy}}}Object.defineProperties(wS.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});wS.prototype.setDynamicAtmosphereColor=function(e,t){let n=e?t?2:1:0;this._radiiAndDynamicAtmosphereColor.z=n};var SY=new N;wS.prototype.update=function(e,t){if(!this.show)return;let n=e.mode;if(n!==ne.SCENE3D&&n!==ne.MORPHING||!e.passes.render)return;let i=N.fromRotationTranslation(e.context.uniformState.inverseViewRotation,h.ZERO,SY),r=N.multiplyTransformation(i,dr.Y_UP_TO_Z_UP,SY),o=N.multiply(this._scaleMatrix,r,SY);N.clone(o,this._modelMatrix);let s=e.context,a=tmt(this),c=e.globeTranslucencyState.translucent,l=this.perFragmentAtmosphere||c||!u(t)||!t.show,f=this._command;if(!u(f.vertexArray)){let p=Ns.createGeometry(new Ns({radii:new h(1,1,1),slicePartitions:256,stackPartitions:256,vertexFormat:Pe.POSITION_ONLY}));f.vertexArray=oi.fromGeometry({context:s,geometry:p,attributeLocations:Ln.createAttributeLocations(p),bufferUsage:Fe.STATIC_DRAW}),f.renderState=Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},blending:un.ALPHA_BLEND,depthMask:!1})}let d=a|l<<2|c<<3;if(d!==this._flags){this._flags=d;let p=[];a&&p.push("COLOR_CORRECT"),l&&p.push("PER_FRAGMENT_ATMOSPHERE"),c&&p.push("GLOBE_TRANSLUCENT");let g=new ke({defines:p,sources:[R_,vS,YN]}),m=new ke({defines:p,sources:[R_,vS,qN]});this._spSkyAtmosphere=Xt.fromCache({context:s,vertexShaderSource:g,fragmentShaderSource:m}),f.shaderProgram=this._spSkyAtmosphere}return f};function tmt(e){return!(P.equalsEpsilon(e.hueShift,0,P.EPSILON7)&&P.equalsEpsilon(e.saturationShift,0,P.EPSILON7)&&P.equalsEpsilon(e.brightnessShift,0,P.EPSILON7))}wS.prototype.isDestroyed=function(){return!1};wS.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyAtmosphere=this._spSkyAtmosphere&&this._spSkyAtmosphere.destroy(),ue(this)};var XN=wS;var KN=`uniform samplerCube u_cubeMap; + +in vec3 v_texCoord; + +void main() +{ + vec4 color = czm_textureCube(u_cubeMap, normalize(v_texCoord)); + out_FragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime); +} +`;var JN=`in vec3 position; + +out vec3 v_texCoord; + +void main() +{ + vec3 p = czm_viewRotation * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position)); + gl_Position = czm_projection * vec4(p, 1.0); + v_texCoord = position.xyz; +} +`;function eH(e){this.sources=e.sources,this._sources=void 0,this.show=y(e.show,!0),this._command=new nt({modelMatrix:N.clone(N.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}eH.prototype.update=function(e,t){let n=this;if(!this.show||e.mode!==ne.SCENE3D&&e.mode!==ne.MORPHING||!e.passes.render)return;let i=e.context;if(this._sources!==this.sources){this._sources=this.sources;let o=this.sources;typeof o.positiveX=="string"?fI(i,this._sources).then(function(s){n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=s}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new za({context:i,source:o}))}let r=this._command;if(!u(r.vertexArray)){r.uniformMap={u_cubeMap:function(){return n._cubeMap}};let o=fl.createGeometry(fl.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Pe.POSITION_ONLY})),s=this._attributeLocations=Ln.createAttributeLocations(o);r.vertexArray=oi.fromGeometry({context:i,geometry:o,attributeLocations:s,bufferUsage:Fe.STATIC_DRAW}),r.renderState=Ve.fromCache({blending:un.ALPHA_BLEND})}if(!u(r.shaderProgram)||this._useHdr!==t){let o=new ke({defines:[t?"HDR":""],sources:[KN]});r.shaderProgram=Xt.fromCache({context:i,vertexShaderSource:JN,fragmentShaderSource:o,attributeLocations:this._attributeLocations}),this._useHdr=t}if(u(this._cubeMap))return r};eH.prototype.isDestroyed=function(){return!1};eH.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),ue(this)};var ZN=eH;var QN=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color = texture(u_texture, v_textureCoordinates); + out_FragColor = czm_gammaCorrect(color); +} +`;var $N=`uniform float u_radiusTS; + +in vec2 v_textureCoordinates; + +vec2 rotate(vec2 p, vec2 direction) +{ + return vec2(p.x * direction.x - p.y * direction.y, p.x * direction.y + p.y * direction.x); +} + +vec4 addBurst(vec2 position, vec2 direction, float lengthScalar) +{ + vec2 rotatedPosition = rotate(position, direction) * vec2(25.0, 0.75); + float radius = length(rotatedPosition) * lengthScalar; + float burst = 1.0 - smoothstep(0.0, 0.55, radius); + return vec4(burst); +} + +void main() +{ + float lengthScalar = 2.0 / sqrt(2.0); + vec2 position = v_textureCoordinates - vec2(0.5); + float radius = length(position) * lengthScalar; + float surface = step(radius, u_radiusTS); + vec4 color = vec4(vec2(1.0), surface + 0.2, surface); + + float glow = 1.0 - smoothstep(0.0, 0.55, radius); + color.ba += mix(vec2(0.0), vec2(1.0), glow) * 0.75; + + vec4 burst = vec4(0.0); + + // The following loop has been manually unrolled for speed, to + // avoid sin() and cos(). + // + //for (float i = 0.4; i < 3.2; i += 1.047) { + // vec2 direction = vec2(sin(i), cos(i)); + // burst += 0.4 * addBurst(position, direction, lengthScalar); + // + // direction = vec2(sin(i - 0.08), cos(i - 0.08)); + // burst += 0.3 * addBurst(position, direction, lengthScalar); + //} + + burst += 0.4 * addBurst(position, vec2(0.38942, 0.92106), lengthScalar); // angle == 0.4 + burst += 0.4 * addBurst(position, vec2(0.99235, 0.12348), lengthScalar); // angle == 0.4 + 1.047 + burst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar); // angle == 0.4 + 1.047 * 2.0 + + burst += 0.3 * addBurst(position, vec2(0.31457, 0.94924), lengthScalar); // angle == 0.4 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.97931, 0.20239), lengthScalar); // angle == 0.4 + 1.047 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar); // angle == 0.4 + 1.047 * 2.0 - 0.08 + + // End of manual loop unrolling. + + color += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15; + + out_FragColor = clamp(color, vec4(0.0), vec4(1.0)); +} +`;var eF=`in vec2 direction; + +uniform float u_size; + +out vec2 v_textureCoordinates; + +void main() +{ + vec4 position; + if (czm_morphTime == 1.0) + { + position = vec4(czm_sunPositionWC, 1.0); + } + else + { + position = vec4(czm_sunPositionColumbusView.zxy, 1.0); + } + + vec4 positionEC = czm_view * position; + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + + vec2 halfSize = vec2(u_size * 0.5); + halfSize *= ((direction * 2.0) - 1.0); + + gl_Position = czm_viewportOrthographic * vec4(positionWC.xy + halfSize, -positionWC.z, 1.0); + + v_textureCoordinates = direction; +} +`;function nF(){this.show=!0,this._drawCommand=new nt({primitiveType:Be.TRIANGLES,boundingVolume:new ae,owner:this}),this._commands={drawCommand:this._drawCommand,computeCommand:void 0},this._boundingVolume=new ae,this._boundingVolume2D=new ae,this._texture=void 0,this._drawingBufferWidth=void 0,this._drawingBufferHeight=void 0,this._radiusTS=void 0,this._size=void 0,this.glowFactor=1,this._glowFactorDirty=!1,this._useHdr=void 0;let e=this;this._uniformMap={u_texture:function(){return e._texture},u_size:function(){return e._size}}}Object.defineProperties(nF.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var nmt=new H,imt=new H,rmt=new se,tF=new se;nF.prototype.update=function(e,t,n){if(!this.show)return;let i=e.mode;if(i===ne.SCENE2D||i===ne.MORPHING||!e.passes.render)return;let r=e.context,o=t.viewport.width,s=t.viewport.height;if(!u(this._texture)||o!==this._drawingBufferWidth||s!==this._drawingBufferHeight||this._glowFactorDirty||n!==this._useHdr){this._texture=this._texture&&this._texture.destroy(),this._drawingBufferWidth=o,this._drawingBufferHeight=s,this._glowFactorDirty=!1,this._useHdr=n;let S=Math.max(o,s);S=Math.pow(2,Math.ceil(Math.log(S)/Math.log(2))-2),S=Math.max(1,S);let v=n?r.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT:Ke.UNSIGNED_BYTE;this._texture=new Rt({context:r,width:S,height:S,pixelFormat:at.RGBA,pixelDatatype:v}),this._glowLengthTS=this._glowFactor*5,this._radiusTS=1/(1+2*this._glowLengthTS)*.5;let D=this,M={u_radiusTS:function(){return D._radiusTS}};this._commands.computeCommand=new Yu({fragmentShaderSource:$N,outputTexture:this._texture,uniformMap:M,persists:!1,owner:this,postExecute:function(){D._commands.computeCommand=void 0}})}let a=this._drawCommand;if(!u(a.vertexArray)){let S={direction:0},v=new Uint8Array(4*2);v[0]=0,v[1]=0,v[2]=255,v[3]=0,v[4]=255,v[5]=255,v[6]=0,v[7]=255;let D=ht.createVertexBuffer({context:r,typedArray:v,usage:Fe.STATIC_DRAW}),M=[{index:S.direction,vertexBuffer:D,componentsPerAttribute:2,normalize:!0,componentDatatype:X.UNSIGNED_BYTE}],O=ht.createIndexBuffer({context:r,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT});a.vertexArray=new oi({context:r,attributes:M,indexBuffer:O}),a.shaderProgram=Xt.fromCache({context:r,vertexShaderSource:eF,fragmentShaderSource:QN,attributeLocations:S}),a.renderState=Ve.fromCache({blending:un.ALPHA_BLEND}),a.uniformMap=this._uniformMap}let c=r.uniformState.sunPositionWC,l=r.uniformState.sunPositionColumbusView,f=this._boundingVolume,d=this._boundingVolume2D;h.clone(c,f.center),d.center.x=l.z,d.center.y=l.x,d.center.z=l.y,f.radius=P.SOLAR_RADIUS+P.SOLAR_RADIUS*this._glowLengthTS,d.radius=f.radius,i===ne.SCENE3D?ae.clone(f,a.boundingVolume):i===ne.COLUMBUS_VIEW&&ae.clone(d,a.boundingVolume);let p=Zi.computeActualWgs84Position(e,c,tF),g=h.magnitude(h.subtract(p,e.camera.position,tF)),m=r.uniformState.projection,A=rmt;A.x=0,A.y=0,A.z=-g,A.w=1;let x=N.multiplyByVector(m,A,tF),C=Zi.clipToGLWindowCoordinates(t.viewport,x,nmt);A.x=P.SOLAR_RADIUS;let T=N.multiplyByVector(m,A,tF),E=Zi.clipToGLWindowCoordinates(t.viewport,T,imt);return this._size=H.magnitude(H.subtract(E,C,tF)),this._size=2*this._size*(1+2*this._glowLengthTS),this._size=Math.ceil(this._size),this._commands};nF.prototype.isDestroyed=function(){return!1};nF.prototype.destroy=function(){let e=this._drawCommand;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._texture=this._texture&&this._texture.destroy(),ue(this)};var iF=nF;function DS(e){return $t(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}function omt(e){e._renderLoopRunning=!0;let t=0;function n(i){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{let r=e._targetFrameRate;if(!u(r))e.resize(),e.render(),requestAnimationFrame(n);else{let o=1e3/r,s=i-t;s>o&&(e.resize(),e.render(),t=i-s%o),requestAnimationFrame(n)}}catch(r){if(e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors){let o="An error occurred while rendering. Rendering has stopped.";e.showErrorPanel(o,void 0,r)}}else e._renderLoopRunning=!1}requestAnimationFrame(n)}function w0e(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,u(e._scene)&&(e._scene.pixelRatio=t),t}function D0e(e){let t=e._canvas,n=t.clientWidth,i=t.clientHeight,r=w0e(e);e._canvasClientWidth=n,e._canvasClientHeight=i,n*=r,i*=r,t.width=n,t.height=i,e._canRender=n!==0&&i!==0,e._lastDevicePixelRatio=window.devicePixelRatio}function I0e(e){let t=e._canvas,n=t.width,i=t.height;if(n!==0&&i!==0){let r=e._scene.camera.frustum;u(r.aspectRatio)?r.aspectRatio=n/i:(r.top=r.right*(i/n),r.bottom=-r.top)}}function CC(e,t){e=wn(e),t=y(t,y.EMPTY_OBJECT);let n=document.createElement("div");n.className="cesium-widget",e.appendChild(n);let i=document.createElement("canvas"),r=Ht.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=r,r&&(i.style.imageRendering=Ht.imageRenderingValue()),i.oncontextmenu=function(){return!1},i.onselectstart=function(){return!1};function o(){i!==i.ownerDocument.activeElement&&i.ownerDocument.activeElement.blur()}y(t.blurActiveElementOnCanvasFocus,!0)&&(i.addEventListener("mousedown",o),i.addEventListener("pointerdown",o)),n.appendChild(i);let a=document.createElement("div");a.className="cesium-widget-credits";let c=u(t.creditContainer)?wn(t.creditContainer):n;c.appendChild(a);let l=u(t.creditViewport)?wn(t.creditViewport):n,f=y(t.showRenderLoopErrors,!0),d=y(t.useBrowserRecommendedResolution,!0);this._element=n,this._container=e,this._canvas=i,this._canvasClientWidth=0,this._canvasClientHeight=0,this._lastDevicePixelRatio=0,this._creditViewport=l,this._creditContainer=c,this._innerCreditContainer=a,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=f,this._resolutionScale=1,this._useBrowserRecommendedResolution=d,this._forceResize=!1,this._clock=u(t.clock)?t.clock:new qd,D0e(this);try{let p=new jN({canvas:i,contextOptions:t.contextOptions,creditContainer:a,creditViewport:l,mapProjection:t.mapProjection,orderIndependentTranslucency:t.orderIndependentTranslucency,scene3DOnly:y(t.scene3DOnly,!1),shadows:t.shadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples});this._scene=p,p.camera.constrainedAxis=h.UNIT_Z,w0e(this),I0e(this);let g=y(p.mapProjection.ellipsoid,re.WGS84),m=t.globe;u(m)||(m=new gL(g)),m!==!1&&(p.globe=m,p.globe.shadows=y(t.terrainShadows,yn.RECEIVE_ONLY));let A=t.skyBox;u(A)||(A=new ZN({sources:{positiveX:DS("px"),negativeX:DS("mx"),positiveY:DS("py"),negativeY:DS("my"),positiveZ:DS("pz"),negativeZ:DS("mz")}})),A!==!1&&(p.skyBox=A,p.sun=new iF,p.moon=new EL);let x=t.skyAtmosphere;u(x)||(x=new XN(g)),x!==!1&&(p.skyAtmosphere=x),u(t.imageryProvider)&&$("CesiumWidget options.imageryProvider","options.imageryProvider was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use options.baseLayer instead.");let C=t.baseLayer;t.globe!==!1&&C!==!1&&t.imageryProvider!==!1&&(u(t.imageryProvider)&&!u(C)&&(C=new ks(t.imageryProvider)),u(C)||(C=ks.fromWorldImagery()),p.imageryLayers.add(C)),u(t.terrainProvider)&&t.globe!==!1&&(p.terrainProvider=t.terrainProvider),u(t.terrain)&&t.globe!==!1&&p.setTerrain(t.terrain),this._screenSpaceEventHandler=new Lu(i),u(t.sceneMode)&&(t.sceneMode===ne.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===ne.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void 0,this.useDefaultRenderLoop=y(t.useDefaultRenderLoop,!0),this._targetFrameRate=void 0,this.targetFrameRate=t.targetFrameRate;let T=this;this._onRenderError=function(E,S){if(T._useDefaultRenderLoop=!1,T._renderLoopRunning=!1,T._showRenderLoopErrors){let v="An error occurred while rendering. Rendering has stopped.";T.showErrorPanel(v,void 0,S)}},p.renderError.addEventListener(this._onRenderError)}catch(p){if(f){let g="Error constructing CesiumWidget.",m='Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:';this.showErrorPanel(g,m,p)}throw p}}Object.defineProperties(CC.prototype,{container:{get:function(){return this._container}},canvas:{get:function(){return this._canvas}},creditContainer:{get:function(){return this._creditContainer}},creditViewport:{get:function(){return this._creditViewport}},scene:{get:function(){return this._scene}},imageryLayers:{get:function(){return this._scene.imageryLayers}},terrainProvider:{get:function(){return this._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},creditDisplay:{get:function(){return this._scene.frameState.creditDisplay}},camera:{get:function(){return this._scene.camera}},clock:{get:function(){return this._clock}},screenSpaceEventHandler:{get:function(){return this._screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._targetFrameRate},set:function(e){this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&omt(this))}},resolutionScale:{get:function(){return this._resolutionScale},set:function(e){this._resolutionScale!==e&&(this._resolutionScale=e,this._forceResize=!0)}},useBrowserRecommendedResolution:{get:function(){return this._useBrowserRecommendedResolution},set:function(e){this._useBrowserRecommendedResolution!==e&&(this._useBrowserRecommendedResolution=e,this._forceResize=!0)}}});CC.prototype.showErrorPanel=function(e,t,n){let i=this._element,r=document.createElement("div");r.className="cesium-widget-errorPanel";let o=document.createElement("div");o.className="cesium-widget-errorPanel-content",r.appendChild(o);let s=document.createElement("div");s.className="cesium-widget-errorPanel-header",s.appendChild(document.createTextNode(e)),o.appendChild(s);let a=document.createElement("div");a.className="cesium-widget-errorPanel-scroll",o.appendChild(a);function c(){a.style.maxHeight=`${Math.max(Math.round(i.clientHeight*.9-100),30)}px`}c(),u(window.addEventListener)&&window.addEventListener("resize",c,!1);let l=u(t),f=u(n);if(l||f){let g=document.createElement("div");if(g.className="cesium-widget-errorPanel-message",a.appendChild(g),f){let m=Sm(n);l||(typeof n=="string"&&(n=new Error(n)),t=Sm({name:n.name,message:n.message}),m=n.stack),typeof console<"u"&&console.error(`${e} +${t} +${m}`);let A=document.createElement("div");A.className="cesium-widget-errorPanel-message-details collapsed";let x=document.createElement("span");x.className="cesium-widget-errorPanel-more-details",x.appendChild(document.createTextNode("See more...")),A.appendChild(x),A.onclick=function(C){A.removeChild(x),A.appendChild(document.createTextNode(m)),A.className="cesium-widget-errorPanel-message-details",o.className="cesium-widget-errorPanel-content expanded",A.onclick=void 0},a.appendChild(A)}g.innerHTML=`<p>${t}</p>`}let d=document.createElement("div");d.className="cesium-widget-errorPanel-buttonPanel",o.appendChild(d);let p=document.createElement("button");p.setAttribute("type","button"),p.className="cesium-button",p.appendChild(document.createTextNode("OK")),p.onclick=function(){u(c)&&u(window.removeEventListener)&&window.removeEventListener("resize",c,!1),i.removeChild(r)},d.appendChild(p),i.appendChild(r)};CC.prototype.isDestroyed=function(){return!1};CC.prototype.destroy=function(){u(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),ue(this)};CC.prototype.resize=function(){let e=this._canvas;!this._forceResize&&this._canvasClientWidth===e.clientWidth&&this._canvasClientHeight===e.clientHeight&&this._lastDevicePixelRatio===window.devicePixelRatio||(this._forceResize=!1,D0e(this),I0e(this),this._scene.requestRender())};CC.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();let e=this._clock.tick();this._scene.render(e)}else this._clock.tick()};var rF=CC;var oF=`uniform sampler2D u_noiseTexture; +uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +in vec2 v_offset; +in vec3 v_maximumSize; +in vec4 v_color; +in float v_slice; +in float v_brightness; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec2 voxelToUV(vec3 voxelIndex) { + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + + float textureSliceWidthSquared = textureSliceWidth * textureSliceWidth; + vec2 inverseNoiseTextureDimensions = vec2(noiseTextureRows / textureSliceWidthSquared, + inverseNoiseTextureRows / textureSliceWidth); + vec3 wrappedIndex = wrapVec(voxelIndex, textureSliceWidth); + float column = mod(wrappedIndex.z, textureSliceWidth * inverseNoiseTextureRows); + float row = floor(wrappedIndex.z / textureSliceWidth * noiseTextureRows); + + float xPixelCoord = wrappedIndex.x + column * textureSliceWidth; + float yPixelCoord = wrappedIndex.y + row * textureSliceWidth; + return vec2(xPixelCoord, yPixelCoord) * inverseNoiseTextureDimensions; +} + +// Interpolate a voxel with its neighbor (along the positive X-axis) +vec4 lerpSamplesX(vec3 voxelIndex, float x) { + vec2 uv0 = voxelToUV(voxelIndex); + vec2 uv1 = voxelToUV(voxelIndex + vec3(1.0, 0.0, 0.0)); + vec4 sample0 = texture(u_noiseTexture, uv0); + vec4 sample1 = texture(u_noiseTexture, uv1); + return mix(sample0, sample1, x); +} + +vec4 sampleNoiseTexture(vec3 position) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 recenteredPos = position + vec3(textureSliceWidth / 2.0); + vec3 lerpValue = fract(recenteredPos); + vec3 voxelIndex = floor(recenteredPos); + + vec4 xLerp00 = lerpSamplesX(voxelIndex, lerpValue.x); + vec4 xLerp01 = lerpSamplesX(voxelIndex + vec3(0.0, 0.0, 1.0), lerpValue.x); + vec4 xLerp10 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 0.0), lerpValue.x); + vec4 xLerp11 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 1.0), lerpValue.x); + + vec4 yLerp0 = mix(xLerp00, xLerp10, lerpValue.y); + vec4 yLerp1 = mix(xLerp01, xLerp11, lerpValue.y); + return mix(yLerp0, yLerp1, lerpValue.z); +} + +// Intersection with a unit sphere with radius 0.5 at center (0, 0, 0). +bool intersectSphere(vec3 origin, vec3 dir, float slice, + out vec3 point, out vec3 normal) { + float A = dot(dir, dir); + float B = dot(origin, dir); + float C = dot(origin, origin) - 0.25; + float discriminant = (B * B) - (A * C); + if(discriminant < 0.0) { + return false; + } + float root = sqrt(discriminant); + float t = (-B - root) / A; + if(t < 0.0) { + t = (-B + root) / A; + } + point = origin + t * dir; + + if(slice >= 0.0) { + point.z = (slice / 2.0) - 0.5; + if(length(point) > 0.5) { + return false; + } + } + + normal = normalize(point); + point -= czm_epsilon2 * normal; + return true; +} + +// Transforms the ray origin and direction into unit sphere space, +// then transforms the result back into the ellipsoid's space. +bool intersectEllipsoid(vec3 origin, vec3 dir, vec3 center, vec3 scale, float slice, + out vec3 point, out vec3 normal) { + if(scale.x <= 0.01 || scale.y < 0.01 || scale.z < 0.01) { + return false; + } + + vec3 o = (origin - center) / scale; + vec3 d = dir / scale; + vec3 p, n; + bool intersected = intersectSphere(o, d, slice, p, n); + if(intersected) { + point = (p * scale) + center; + normal = n; + } + return intersected; +} + +// Assume that if phase shift is being called for octave i, +// the frequency is of i - 1. This saves us from doing extra +// division / multiplication operations. +vec2 phaseShift2D(vec2 p, vec2 freq) { + return (czm_pi / 2.0) * sin(freq.yx * p.yx); +} + +vec2 phaseShift3D(vec3 p, vec2 freq) { + return phaseShift2D(p.xy, freq) + czm_pi * vec2(sin(freq.x * p.z)); +} + +// The cloud texture function derived from Gardner's 1985 paper, +// "Visual Simulation of Clouds." +// https://www.cs.drexel.edu/~david/Classes/Papers/p297-gardner.pdf +const float T0 = 0.6; // contrast of the texture pattern +const float k = 0.1; // computed to produce a maximum value of 1 +const float C0 = 0.8; // coefficient +const float FX0 = 0.6; // frequency X +const float FY0 = 0.6; // frequency Y +const int octaves = 5; + +float T(vec3 point) { + vec2 sum = vec2(0.0); + float Ci = C0; + vec2 FXY = vec2(FX0, FY0); + vec2 PXY = vec2(0.0); + for(int i = 1; i <= octaves; i++) { + PXY = phaseShift3D(point, FXY); + Ci *= 0.707; + FXY *= 2.0; + vec2 sinTerm = sin(FXY * point.xy + PXY); + sum += Ci * sinTerm + vec2(T0); + } + return k * sum.x * sum.y; +} + +const float a = 0.5; // fraction of surface reflection due to ambient or scattered light, +const float t = 0.4; // fraction of texture shading +const float s = 0.25; // fraction of specular reflection + +float I(float Id, float Is, float It) { + return (1.0 - a) * ((1.0 - t) * ((1.0 - s) * Id + s * Is) + t * It) + a; +} + +const vec3 lightDir = normalize(vec3(0.2, -1.0, 0.7)); + +vec4 drawCloud(vec3 rayOrigin, vec3 rayDir, vec3 cloudCenter, vec3 cloudScale, float cloudSlice, + float brightness) { + vec3 cloudPoint, cloudNormal; + if(!intersectEllipsoid(rayOrigin, rayDir, cloudCenter, cloudScale, cloudSlice, + cloudPoint, cloudNormal)) { + return vec4(0.0); + } + + float Id = clamp(dot(cloudNormal, -lightDir), 0.0, 1.0); // diffuse reflection + float Is = max(pow(dot(-lightDir, -rayDir), 2.0), 0.0); // specular reflection + float It = T(cloudPoint); // texture function + float intensity = I(Id, Is, It); + vec3 color = vec3(intensity * clamp(brightness, 0.1, 1.0)); + + vec4 noise = sampleNoiseTexture(u_noiseDetail * cloudPoint); + float W = noise.x; + float W2 = noise.y; + float W3 = noise.z; + + // The dot product between the cloud's normal and the ray's direction is greatest + // in the center of the ellipsoid's surface. It decreases towards the edge. + // Thus, it is used to blur the areas leading to the edges of the ellipsoid, + // so that no harsh lines appear. + + // The first (and biggest) layer of worley noise is then subtracted from this. + // The final result is scaled up so that the base cloud is not too translucent. + float ndDot = clamp(dot(cloudNormal, -rayDir), 0.0, 1.0); + float TR = pow(ndDot, 3.0) - W; // translucency + TR *= 1.3; + + // Subtracting the second and third layers of worley noise is more complicated. + // If these layers of noise were simply subtracted from the current translucency, + // the shape derived from the first layer of noise would be completely deleted. + // The erosion of this noise should thus be constricted to the edges of the cloud. + // However, because the edges of the ellipsoid were already blurred away, mapping + // the noise to (1.0 - ndDot) will have no impact on most of the cloud's appearance. + // The value of (0.5 - ndDot) provides the best compromise. + float minusDot = 0.5 - ndDot; + + // Even with the previous calculation, subtracting the second layer of wnoise + // erode too much of the cloud. The addition of it, however, will detailed + // volume to the cloud. As long as the noise is only added and not subtracted, + // the results are aesthetically pleasing. + + // The minusDot product is mapped in a way that it is larger at the edges of + // the ellipsoid, so a subtraction and min operation are used instead of + // an addition and max one. + TR -= min(minusDot * W2, 0.0); + + // The third level of worley noise is subtracted from the result, with some + // modifications. First, a scalar is added to minusDot so that the noise + // starts affecting the shape farther away from the center of the ellipsoid's + // surface. Then, it is scaled down so its impact is not too intense. + TR -= 0.8 * (minusDot + 0.25) * W3; + + // The texture function's shading does not correlate with the shape of the cloud + // produced by the layers of noise, so an extra shading scalar is calculated. + // The darkest areas of the cloud are assigned to be where the noise erodes + // the cloud the most. This is then interpolated based on the translucency + // and the diffuse shading term of that point in the cloud. + float shading = mix(1.0 - 0.8 * W * W, 1.0, Id * TR); + + // To avoid values that are too dark, this scalar is increased by a small amount + // and clamped so it never goes to zero. + shading = clamp(shading + 0.2, 0.3, 1.0); + + // Finally, the contrast of the cloud's color is increased. + vec3 finalColor = mix(vec3(0.5), shading * color, 1.15); + return vec4(finalColor, clamp(TR, 0.0, 1.0)) * v_color; +} + +void main() { +#ifdef DEBUG_BILLBOARDS + out_FragColor = vec4(0.0, 0.5, 0.5, 1.0); +#endif + // To avoid calculations with high values, + // we raycast from an arbitrarily smaller space. + vec2 coordinate = v_maximumSize.xy * v_offset; + + vec3 ellipsoidScale = 0.82 * v_maximumSize; + vec3 ellipsoidCenter = vec3(0.0); + + float zOffset = max(ellipsoidScale.z - 10.0, 0.0); + vec3 eye = vec3(0, 0, -10.0 - zOffset); + vec3 rayDir = normalize(vec3(coordinate, 1.0) - eye); + vec3 rayOrigin = eye; +#ifdef DEBUG_ELLIPSOIDS + vec3 point, normal; + if(intersectEllipsoid(rayOrigin, rayDir, ellipsoidCenter, ellipsoidScale, v_slice, + point, normal)) { + out_FragColor = v_brightness * v_color; + } +#else +#ifndef DEBUG_BILLBOARDS + vec4 cloud = drawCloud(rayOrigin, rayDir, + ellipsoidCenter, ellipsoidScale, v_slice, v_brightness); + if(cloud.w < 0.01) { + discard; + } + out_FragColor = cloud; +#endif +#endif +} +`;var sF=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScaleX; +in vec4 positionLowAndScaleY; +in vec4 packedAttribute0; +in vec4 packedAttribute1; +in vec4 color; + +out vec2 v_offset; +out vec3 v_maximumSize; +out vec4 v_color; +out float v_slice; +out float v_brightness; + +void main() { + // Unpack attributes. + vec3 positionHigh = positionHighAndScaleX.xyz; + vec3 positionLow = positionLowAndScaleY.xyz; + vec2 scale = vec2(positionHighAndScaleX.w, positionLowAndScaleY.w); + + float show = packedAttribute0.x; + float brightness = packedAttribute0.y; + vec2 coordinates = packedAttribute0.wz; + vec3 maximumSize = packedAttribute1.xyz; + float slice = packedAttribute1.w; + +#ifdef INSTANCED + vec2 dir = direction; +#else + vec2 dir = coordinates; +#endif + + vec2 offset = dir - vec2(0.5, 0.5); + vec2 scaledOffset = scale * offset; + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + positionEC.xy += scaledOffset; + + positionEC.xyz *= show; + gl_Position = czm_projection * positionEC; + + v_offset = offset; + v_maximumSize = maximumSize; + v_color = color; + v_slice = slice; + v_brightness = brightness; +} +`;var aF=`uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +uniform vec3 u_noiseOffset; +in vec2 v_position; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec3 random3(vec3 p) { + float dot1 = dot(p, vec3(127.1, 311.7, 932.8)); + float dot2 = dot(p, vec3(269.5, 183.3, 421.4)); + return fract(vec3(sin(dot1 - dot2), cos(dot1 * dot2), dot1 * dot2)); +} + +// Frequency corresponds to cell size. +// The higher the frequency, the smaller the cell size. +vec3 getWorleyCellPoint(vec3 centerCell, vec3 offset, float freq) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 cell = centerCell + offset; + cell = wrapVec(cell, textureSliceWidth / u_noiseDetail); + cell += floor(u_noiseOffset / u_noiseDetail); + vec3 p = offset + random3(cell); + return p; +} + +float worleyNoise(vec3 p, float freq) { + vec3 centerCell = floor(p * freq); + vec3 pointInCell = fract(p * freq); + float shortestDistance = 1000.0; + + for(float z = -1.0; z <= 1.0; z++) { + for(float y = -1.0; y <= 1.0; y++) { + for(float x = -1.0; x <= 1.0; x++) { + vec3 offset = vec3(x, y, z); + vec3 point = getWorleyCellPoint(centerCell, offset, freq); + + float distance = length(pointInCell - point); + if(distance < shortestDistance) { + shortestDistance = distance; + } + } + } + } + + return shortestDistance; +} + +const float MAX_FBM_ITERATIONS = 10.0; + +float worleyFBMNoise(vec3 p, float octaves, float scale) { + float noise = 0.0; + float freq = 1.0; + float persistence = 0.625; + for(float i = 0.0; i < MAX_FBM_ITERATIONS; i++) { + if(i >= octaves) { + break; + } + + noise += worleyNoise(p * scale, freq * scale) * persistence; + persistence *= 0.5; + freq *= 2.0; + } + return noise; +} + +void main() { + float textureSliceWidth = u_noiseTextureDimensions.x; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + float x = mod(v_position.x, textureSliceWidth); + float y = mod(v_position.y, textureSliceWidth); + float sliceRow = floor(v_position.y / textureSliceWidth); + float z = floor(v_position.x / textureSliceWidth) + sliceRow * inverseNoiseTextureRows * textureSliceWidth; + + vec3 position = vec3(x, y, z); + position /= u_noiseDetail; + float worley0 = clamp(worleyFBMNoise(position, 3.0, 1.0), 0.0, 1.0); + float worley1 = clamp(worleyFBMNoise(position, 3.0, 2.0), 0.0, 1.0); + float worley2 = clamp(worleyFBMNoise(position, 3.0, 3.0), 0.0, 1.0); + out_FragColor = vec4(worley0, worley1, worley2, 1.0); +} +`;var cF=`uniform vec3 u_noiseTextureDimensions; +in vec2 position; + +out vec2 v_position; + +void main() +{ + gl_Position = vec4(position, 0.1, 1.0); + + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + vec2 transformedPos = (position * 0.5) + vec2(0.5); + transformedPos *= textureSliceWidth; + transformedPos.x *= textureSliceWidth * inverseNoiseTextureRows; + transformedPos.y *= noiseTextureRows; + v_position = transformedPos; +} +`;var lF=` +in vec2 v_textureCoordinates; + +void main() +{ + czm_materialInput materialInput; + + materialInput.s = v_textureCoordinates.s; + materialInput.st = v_textureCoordinates; + materialInput.str = vec3(v_textureCoordinates, 0.0); + materialInput.normalEC = vec3(0.0, 0.0, -1.0); + + czm_material material = czm_getMaterial(materialInput); + + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +} +`;var smt=new h(1,1,1);function vY(e){e=y(e,smt),this._dimensions=h.clone(e)}Object.defineProperties(vY.prototype,{dimensions:{get:function(){return this._dimensions},set:function(e){h.clone(e,this._dimensions)}}});var amt=new h;vY.prototype.emit=function(e){let t=this._dimensions,n=h.multiplyByScalar(t,.5,amt),i=P.randomBetween(-n.x,n.x),r=P.randomBetween(-n.y,n.y),o=P.randomBetween(-n.z,n.z);e.position=h.fromElements(i,r,o,e.position),e.velocity=h.normalize(e.position,e.velocity)};var wY=vY;function q_(){this.featurePropertiesDirty=!1}Object.defineProperties(q_.prototype,{featuresLength:{get:function(){fe.throwInstantiationError()}},pointsLength:{get:function(){fe.throwInstantiationError()}},trianglesLength:{get:function(){fe.throwInstantiationError()}},geometryByteLength:{get:function(){fe.throwInstantiationError()}},texturesByteLength:{get:function(){fe.throwInstantiationError()}},batchTableByteLength:{get:function(){fe.throwInstantiationError()}},innerContents:{get:function(){fe.throwInstantiationError()}},ready:{get:function(){fe.throwInstantiationError()}},readyPromise:{get:function(){fe.throwInstantiationError()}},tileset:{get:function(){fe.throwInstantiationError()}},tile:{get:function(){fe.throwInstantiationError()}},url:{get:function(){fe.throwInstantiationError()}},batchTable:{get:function(){fe.throwInstantiationError()}},metadata:{get:function(){fe.throwInstantiationError()},set:function(e){fe.throwInstantiationError()}},group:{get:function(){fe.throwInstantiationError()},set:function(e){fe.throwInstantiationError()}}});q_.prototype.hasProperty=function(e,t){fe.throwInstantiationError()};q_.prototype.getFeature=function(e){fe.throwInstantiationError()};q_.prototype.applyDebugSettings=function(e,t){fe.throwInstantiationError()};q_.prototype.applyStyle=function(e){fe.throwInstantiationError()};q_.prototype.update=function(e,t){fe.throwInstantiationError()};q_.prototype.isDestroyed=function(){fe.throwInstantiationError()};q_.prototype.destroy=function(){fe.throwInstantiationError()};var DY=q_;function IS(e,t){this._conditionsExpression=We(e,!0),this._conditions=e.conditions,this._runtimeConditions=void 0,lmt(this,t)}Object.defineProperties(IS.prototype,{conditionsExpression:{get:function(){return this._conditionsExpression}}});function cmt(e,t){this.condition=e,this.expression=t}function lmt(e,t){let n=[],i=e._conditions;if(!u(i))return;let r=i.length;for(let o=0;o<r;++o){let s=i[o],a=String(s[0]),c=String(s[1]);n.push(new cmt(new of(a,t),new of(c,t)))}e._runtimeConditions=n}IS.prototype.evaluate=function(e,t){let n=this._runtimeConditions;if(!u(n))return;let i=n.length;for(let r=0;r<i;++r){let o=n[r];if(o.condition.evaluate(e))return o.expression.evaluate(e,t)}};IS.prototype.evaluateColor=function(e,t){let n=this._runtimeConditions;if(!u(n))return;let i=n.length;for(let r=0;r<i;++r){let o=n[r];if(o.condition.evaluate(e))return o.expression.evaluateColor(e,t)}};IS.prototype.getShaderFunction=function(e,t,n,i){let r=this._runtimeConditions;if(!u(r)||r.length===0)return;let o="",s=r.length;for(let a=0;a<s;++a){let c=r[a],l=c.condition.getShaderExpression(t,n),f=c.expression.getShaderExpression(t,n);o+=` ${a===0?"if":"else if"} (${l}) + { + return ${f}; + } +`}return o=`${i} ${e} +{ +${o} return ${i}(1.0); +} +`,o};IS.prototype.getVariables=function(){let e=[],t=this._runtimeConditions;if(!u(t)||t.length===0)return e;let n=t.length;for(let i=0;i<n;++i){let r=t[i];e.push.apply(e,r.condition.getVariables()),e.push.apply(e,r.expression.getVariables())}return e=e.filter(function(i,r,o){return o.indexOf(i)===r}),e};var uF=IS;function n0(e){this._style={},this._ready=!1,this._show=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._labelColor=void 0,this._labelOutlineColor=void 0,this._labelOutlineWidth=void 0,this._font=void 0,this._labelStyle=void 0,this._labelText=void 0,this._backgroundColor=void 0,this._backgroundPadding=void 0,this._backgroundEnabled=void 0,this._scaleByDistance=void 0,this._translucencyByDistance=void 0,this._distanceDisplayCondition=void 0,this._heightOffset=void 0,this._anchorLineEnabled=void 0,this._anchorLineColor=void 0,this._image=void 0,this._disableDepthTestDistance=void 0,this._horizontalOrigin=void 0,this._verticalOrigin=void 0,this._labelHorizontalOrigin=void 0,this._labelVerticalOrigin=void 0,this._meta=void 0,this._colorShaderFunction=void 0,this._showShaderFunction=void 0,this._pointSizeShaderFunction=void 0,this._colorShaderFunctionReady=!1,this._showShaderFunctionReady=!1,this._pointSizeShaderFunctionReady=!1,this._colorShaderTranslucent=!1,umt(this,e)}function umt(e,t){t=y(We(t,!0),e._style),e._style=t,e.show=t.show,e.color=t.color,e.pointSize=t.pointSize,e.pointOutlineColor=t.pointOutlineColor,e.pointOutlineWidth=t.pointOutlineWidth,e.labelColor=t.labelColor,e.labelOutlineColor=t.labelOutlineColor,e.labelOutlineWidth=t.labelOutlineWidth,e.labelStyle=t.labelStyle,e.font=t.font,e.labelText=t.labelText,e.backgroundColor=t.backgroundColor,e.backgroundPadding=t.backgroundPadding,e.backgroundEnabled=t.backgroundEnabled,e.scaleByDistance=t.scaleByDistance,e.translucencyByDistance=t.translucencyByDistance,e.distanceDisplayCondition=t.distanceDisplayCondition,e.heightOffset=t.heightOffset,e.anchorLineEnabled=t.anchorLineEnabled,e.anchorLineColor=t.anchorLineColor,e.image=t.image,e.disableDepthTestDistance=t.disableDepthTestDistance,e.horizontalOrigin=t.horizontalOrigin,e.verticalOrigin=t.verticalOrigin,e.labelHorizontalOrigin=t.labelHorizontalOrigin,e.labelVerticalOrigin=t.labelVerticalOrigin;let n={};if(u(t.meta)){let i=t.defines,r=y(t.meta,y.EMPTY_OBJECT);for(let o in r)r.hasOwnProperty(o)&&(n[o]=new of(r[o],i))}e._meta=n,e._ready=!0}function to(e,t){let n=y(e._style,y.EMPTY_OBJECT).defines;if(u(t)){if(typeof t=="boolean"||typeof t=="number")return new of(String(t));if(typeof t=="string")return new of(t,n);if(u(t.conditions))return new uF(t,n)}else return;return t}function no(e){if(u(e)){if(u(e.expression))return e.expression;if(u(e.conditionsExpression))return We(e.conditionsExpression,!0)}else return;return e}Object.defineProperties(n0.prototype,{style:{get:function(){return this._style}},show:{get:function(){return this._show},set:function(e){this._show=to(this,e),this._style.show=no(this._show),this._showShaderFunctionReady=!1}},color:{get:function(){return this._color},set:function(e){this._color=to(this,e),this._style.color=no(this._color),this._colorShaderFunctionReady=!1}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=to(this,e),this._style.pointSize=no(this._pointSize),this._pointSizeShaderFunctionReady=!1}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=to(this,e),this._style.pointOutlineColor=no(this._pointOutlineColor)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=to(this,e),this._style.pointOutlineWidth=no(this._pointOutlineWidth)}},labelColor:{get:function(){return this._labelColor},set:function(e){this._labelColor=to(this,e),this._style.labelColor=no(this._labelColor)}},labelOutlineColor:{get:function(){return this._labelOutlineColor},set:function(e){this._labelOutlineColor=to(this,e),this._style.labelOutlineColor=no(this._labelOutlineColor)}},labelOutlineWidth:{get:function(){return this._labelOutlineWidth},set:function(e){this._labelOutlineWidth=to(this,e),this._style.labelOutlineWidth=no(this._labelOutlineWidth)}},font:{get:function(){return this._font},set:function(e){this._font=to(this,e),this._style.font=no(this._font)}},labelStyle:{get:function(){return this._labelStyle},set:function(e){this._labelStyle=to(this,e),this._style.labelStyle=no(this._labelStyle)}},labelText:{get:function(){return this._labelText},set:function(e){this._labelText=to(this,e),this._style.labelText=no(this._labelText)}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=to(this,e),this._style.backgroundColor=no(this._backgroundColor)}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){this._backgroundPadding=to(this,e),this._style.backgroundPadding=no(this._backgroundPadding)}},backgroundEnabled:{get:function(){return this._backgroundEnabled},set:function(e){this._backgroundEnabled=to(this,e),this._style.backgroundEnabled=no(this._backgroundEnabled)}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){this._scaleByDistance=to(this,e),this._style.scaleByDistance=no(this._scaleByDistance)}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){this._translucencyByDistance=to(this,e),this._style.translucencyByDistance=no(this._translucencyByDistance)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=to(this,e),this._style.distanceDisplayCondition=no(this._distanceDisplayCondition)}},heightOffset:{get:function(){return this._heightOffset},set:function(e){this._heightOffset=to(this,e),this._style.heightOffset=no(this._heightOffset)}},anchorLineEnabled:{get:function(){return this._anchorLineEnabled},set:function(e){this._anchorLineEnabled=to(this,e),this._style.anchorLineEnabled=no(this._anchorLineEnabled)}},anchorLineColor:{get:function(){return this._anchorLineColor},set:function(e){this._anchorLineColor=to(this,e),this._style.anchorLineColor=no(this._anchorLineColor)}},image:{get:function(){return this._image},set:function(e){this._image=to(this,e),this._style.image=no(this._image)}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance=to(this,e),this._style.disableDepthTestDistance=no(this._disableDepthTestDistance)}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin=to(this,e),this._style.horizontalOrigin=no(this._horizontalOrigin)}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin=to(this,e),this._style.verticalOrigin=no(this._verticalOrigin)}},labelHorizontalOrigin:{get:function(){return this._labelHorizontalOrigin},set:function(e){this._labelHorizontalOrigin=to(this,e),this._style.labelHorizontalOrigin=no(this._labelHorizontalOrigin)}},labelVerticalOrigin:{get:function(){return this._labelVerticalOrigin},set:function(e){this._labelVerticalOrigin=to(this,e),this._style.labelVerticalOrigin=no(this._labelVerticalOrigin)}},meta:{get:function(){return this._meta},set:function(e){this._meta=e}}});n0.fromUrl=function(e){return ve.createIfNeeded(e).fetchJson(e).then(function(n){return new n0(n)})};n0.prototype.getColorShaderFunction=function(e,t,n){return this._colorShaderFunctionReady?(n.translucent=this._colorShaderTranslucent,this._colorShaderFunction):(this._colorShaderFunctionReady=!0,u(this.color)&&u(this.color.getShaderFunction)?this._colorShaderFunction=this.color.getShaderFunction(e,t,n,"vec4"):this._colorShaderFunction=void 0,this._colorShaderTranslucent=n.translucent,this._colorShaderFunction)};n0.prototype.getShowShaderFunction=function(e,t,n){return this._showShaderFunctionReady?this._showShaderFunction:(this._showShaderFunctionReady=!0,u(this.show)&&u(this.show.getShaderFunction)?this._showShaderFunction=this.show.getShaderFunction(e,t,n,"bool"):this._showShaderFunction=void 0,this._showShaderFunction)};n0.prototype.getPointSizeShaderFunction=function(e,t,n){return this._pointSizeShaderFunctionReady?this._pointSizeShaderFunction:(this._pointSizeShaderFunctionReady=!0,u(this.pointSize)&&u(this.pointSize.getShaderFunction)?this._pointSizeShaderFunction=this.pointSize.getShaderFunction(e,t,n,"float"):this._pointSizeShaderFunction=void 0,this._pointSizeShaderFunction)};n0.prototype.getVariables=function(){let e=[];return u(this.color)&&u(this.color.getVariables)&&e.push.apply(e,this.color.getVariables()),u(this.show)&&u(this.show.getVariables)&&e.push.apply(e,this.show.getVariables()),u(this.pointSize)&&u(this.pointSize.getVariables)&&e.push.apply(e,this.pointSize.getVariables()),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var Y_=n0;function Ch(e){this._comparator=e.comparator,this._maximumLength=e.maximumLength,this._array=u(e.maximumLength)?new Array(e.maximumLength):[],this._length=0}Object.defineProperties(Ch.prototype,{length:{get:function(){return this._length}},maximumLength:{get:function(){return this._maximumLength},set:function(e){if(u(e)){for(;this._length>e;)this.removeMinimum();this._array.length=e}this._maximumLength=e}},internalArray:{get:function(){return this._array}},comparator:{get:function(){return this._comparator}}});Ch.prototype.clone=function(){let e=this._maximumLength,t=this._comparator,n=this._array,i=this._length,r=new Ch({comparator:t,maximumLength:e});r._length=i;for(let o=0;o<i;o++)r._array[o]=n[o];return r};Ch.prototype.reset=function(){this._length=0;let e=this._maximumLength;if(u(e))for(let t=0;t<e;t++)this._array[t]=void 0;else this._array.length=0};Ch.prototype.resort=function(){let e=this._length;for(let t=0;t<e;t++)P0e(this,t)};Ch.prototype.insert=function(e){let t,n=this._maximumLength;if(u(n)){if(n===0)return;if(this._length===n){let r=this._array[0];if(this._comparator(e,r)<=0)return e;t=this.removeMinimum()}}let i=this._length;return this._array[i]=e,this._length++,P0e(this,i),t};Ch.prototype.removeMinimum=function(){let e=this._length;if(e===0)return;this._length--;let t=this._array[0];return e>=2&&(this._array[0]=this._array[e-1],O0e(this,0)),this._array[e-1]=void 0,t};Ch.prototype.removeMaximum=function(){let e=this._length;if(e===0)return;this._length--;let t;if(e<=2)t=this._array[e-1];else{let n=IY(this,1,2)?1:2;t=this._array[n],this._array[n]=this._array[e-1],e>=4&&O0e(this,n)}return this._array[e-1]=void 0,t};Ch.prototype.getMinimum=function(){if(this._length!==0)return this._array[0]};Ch.prototype.getMaximum=function(){let e=this._length;if(e!==0)return e<=2?this._array[e-1]:this._array[IY(this,1,2)?1:2]};function tH(e,t,n){let i=e._array,r=i[t];i[t]=i[n],i[n]=r}function fF(e,t,n){return e._comparator(e._array[t],e._array[n])<0}function IY(e,t,n){return e._comparator(e._array[t],e._array[n])>0}function P0e(e,t){if(t===0)return;let n=Math.floor(P.log2(t+1))%2===0,i=Math.floor((t-1)/2),r=fF(e,t,i);for(r!==n&&(tH(e,t,i),t=i);t>=3;){let o=Math.floor((t-3)/4);if(fF(e,t,o)!==r)break;tH(e,t,o),t=o}}function O0e(e,t){let n=e._length,i=Math.floor(P.log2(t+1))%2===0,r;for(;(r=2*t+1)<n;){let o=r,s=r+1;if(s<n){fF(e,s,o)===i&&(o=s);let a=2*r+1,c=Math.max(Math.min(n-a,4),0);for(let l=0;l<c;l++){let f=a+l;fF(e,f,o)===i&&(o=f)}}if(fF(e,o,t)===i&&(tH(e,o,t),o!==r&&o!==s)){let a=Math.floor((o-1)/2);IY(e,o,a)===i&&tH(e,o,a)}t=o}}var TC=Ch;function dF(e){e=y(e,y.EMPTY_OBJECT),this._maximumSubtreeCount=y(e.maximumSubtreeCount,0),this._subtreeRequestCounter=0,this._queue=new TC({comparator:dF.comparator})}dF.prototype.addSubtree=function(e){let t=new fmt(e,this._subtreeRequestCounter);this._subtreeRequestCounter++,this._queue.insert(t);let n=e.implicitCoordinates;if(n.level>0){let i=n.getParentSubtreeCoordinates(),r=this.find(i)}if(this._maximumSubtreeCount>0)for(;this._queue.length>this._maximumSubtreeCount&&this._queue.getMinimum()!==t;)this._queue.removeMinimum()};dF.prototype.find=function(e){let t=this._queue,n=t.internalArray,i=t.length;for(let r=0;r<i;r++){let o=n[r],a=o.subtree.implicitCoordinates;if(e.isEqual(a))return o.subtree}};dF.comparator=function(e,t){let n=e.subtree.implicitCoordinates,i=t.subtree.implicitCoordinates;return n.isAncestor(i)?1:i.isAncestor(n)?-1:e.stamp-t.stamp};function fmt(e,t){this.subtree=e,this.stamp=t}var hF=dF;function zl(){this.orientedBoundingBox=new On,this.boundingSphere=new ae,this.boundTransform=new N,this.shapeTransform=new N,this._minBounds=h.clone(zl.DefaultMinBounds,new h),this._maxBounds=h.clone(zl.DefaultMaxBounds,new h),this.shaderUniforms={renderMinBounds:new h,renderMaxBounds:new h,boxUvToShapeUvScale:new h,boxUvToShapeUvTranslate:new h},this.shaderDefines={BOX_INTERSECTION_INDEX:void 0,BOX_HAS_SHAPE_BOUNDS:void 0},this.shaderMaximumIntersectionsLength=0}var dmt=new h,PY=new h,hmt=new Q,mmt=new h,pmt=new h,_mt=new h,gmt=new h,M0e=N.fromRotationTranslation(Q.fromUniformScale(.5,new Q),new h(.5,.5,.5),new N);zl.prototype.update=function(e,t,n,i,r){i=y(i,zl.DefaultMinBounds),r=y(r,zl.DefaultMaxBounds);let o=zl.DefaultMinBounds,s=zl.DefaultMaxBounds;t=this._minBounds=h.clamp(t,o,s,this._minBounds),n=this._maxBounds=h.clamp(n,o,s,this._maxBounds),i=h.clamp(i,o,s,mmt),r=h.clamp(r,o,s,pmt);let a=h.clamp(t,i,r,_mt),c=h.clamp(n,i,r,gmt),l=N.getScale(e,PY);if(a.x>c.x||a.y>c.y||a.z>c.z||(a.x===c.x)+(a.y===c.y)+(a.z===c.z)>=2||i.x>r.x||i.y>r.y||i.z>r.z||l.x===0||l.y===0||l.z===0)return!1;this.shapeTransform=N.clone(e,this.shapeTransform),this.orientedBoundingBox=R0e(a,c,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=N.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ae.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let{shaderUniforms:f,shaderDefines:d}=this;for(let m in d)d.hasOwnProperty(m)&&(d[m]=void 0);let p=!h.equals(t,o)||!h.equals(n,s),g=0;if(d.BOX_INTERSECTION_INDEX=g,g+=1,f.renderMinBounds=N.multiplyByPoint(M0e,a,f.renderMinBounds),f.renderMaxBounds=N.multiplyByPoint(M0e,c,f.renderMaxBounds),p){d.BOX_HAS_SHAPE_BOUNDS=!0;let m=t,A=n;f.boxUvToShapeUvScale=h.fromElements(2/(m.x===A.x?1:A.x-m.x),2/(m.y===A.y?1:A.y-m.y),2/(m.z===A.z?1:A.z-m.z),f.boxUvToShapeUvScale),f.boxUvToShapeUvTranslate=h.fromElements(-f.boxUvToShapeUvScale.x*(m.x*.5+.5),-f.boxUvToShapeUvScale.y*(m.y*.5+.5),-f.boxUvToShapeUvScale.z*(m.z*.5+.5),f.boxUvToShapeUvTranslate)}return this.shaderMaximumIntersectionsLength=g,!0};var ymt=new h,Amt=new h;zl.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,r){let o=this._minBounds,s=this._maxBounds,a=1/Math.pow(2,e),c=h.fromElements(P.lerp(o.x,s.x,a*t),P.lerp(o.y,s.y,a*n),P.lerp(o.z,s.z,a*i),ymt),l=h.fromElements(P.lerp(o.x,s.x,a*(t+1)),P.lerp(o.y,s.y,a*(n+1)),P.lerp(o.z,s.z,a*(i+1)),Amt);return R0e(c,l,this.shapeTransform,r)};zl.prototype.computeApproximateStepSize=function(e){return 1/h.maximumComponent(e)};zl.DefaultMinBounds=Object.freeze(new h(-1,-1,-1));zl.DefaultMaxBounds=Object.freeze(new h(1,1,1));function R0e(e,t,n,i){let r=zl.DefaultMinBounds,o=zl.DefaultMaxBounds;if(h.equals(e,r)&&h.equals(t,o))i.center=N.getTranslation(n,i.center),i.halfAxes=N.getMatrix3(n,i.halfAxes);else{let a=N.getScale(n,PY),c=h.midpoint(e,t,dmt);i.center=N.multiplyByPoint(n,c,i.center),a=h.fromElements(a.x*.5*(t.x-e.x),a.y*.5*(t.y-e.y),a.z*.5*(t.z-e.z),PY);let l=N.getRotation(n,hmt);i.halfAxes=Q.setScale(l,a,i.halfAxes)}return i}var km=zl;function nH(e){this._resource=e,this._metadataTable=void 0}Object.defineProperties(nH.prototype,{metadataTable:{get:function(){return this._metadataTable}}});nH.fromJson=async function(e,t,n,i){let r;u(t)?r={json:t,binary:void 0}:r=Cmt(n);let o=await xmt(e,r.json,r.binary),s={},a=r.json.bufferViews.length;for(let d=0;d<a;++d){let p=r.json.bufferViews[d],g=p.byteOffset,m=g+p.byteLength,x=o[p.buffer].subarray(g,m);s[d]=x}let c=r.json.voxelTable,l=r.json.propertyTables[c],f=new nH(e);return f._metadataTable=new yl({count:l.count,properties:l.properties,class:i.classes[l.class],bufferViews:s}),f};function xmt(e,t,n){let i=t.buffers.length,r=new Array(i);for(let o=0;o<i;o++){let s=t.buffers[o];if(u(s.uri)){let c=e.getDerivedResource({url:s.uri});r[o]=c.fetchArrayBuffer().then(function(l){return new Uint8Array(l)})}else r[o]=Promise.resolve(n)}return Promise.all(r)}function Cmt(e){let n=new DataView(e.buffer,e.byteOffset),i=8,r=n.getUint32(i,!0);i+=8;let o=n.getUint32(i,!0);i+=8;let s=Mr(e,i,r);i+=r;let a=e.subarray(i,i+o);return{json:s,binary:a}}var mF=nH;function Xo(){this.orientedBoundingBox=new On,this.boundingSphere=new ae,this.boundTransform=new N,this.shapeTransform=new N,this._minimumRadius=Xo.DefaultMinBounds.x,this._maximumRadius=Xo.DefaultMaxBounds.x,this._minimumHeight=Xo.DefaultMinBounds.y,this._maximumHeight=Xo.DefaultMaxBounds.y,this._minimumAngle=Xo.DefaultMinBounds.z,this._maximumAngle=Xo.DefaultMaxBounds.z,this.shaderUniforms={cylinderUvToRenderBoundsScale:new h,cylinderUvToRenderBoundsTranslate:new h,cylinderUvToRenderRadiusMin:0,cylinderRenderAngleMinMax:new H,cylinderUvToShapeUvRadius:new H,cylinderUvToShapeUvHeight:new H,cylinderUvToShapeUvAngle:new H,cylinderShapeUvAngleMinMax:new H,cylinderShapeUvAngleRangeZeroMid:0},this.shaderDefines={CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MAX:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MIN:void 0,CYLINDER_INTERSECTION_INDEX_ANGLE:void 0},this.shaderMaximumIntersectionsLength=0}var L0e=new h,Tmt=new h,Emt=new h,bmt=new Q,Smt=new N,vmt=new N,wmt=N.fromRotationTranslation(Q.fromUniformScale(2,new Q),new h(-1,-1,-1),new N);Xo.prototype.update=function(e,t,n,i,r){i=y(i,Xo.DefaultMinBounds),r=y(r,Xo.DefaultMaxBounds);let o=Xo.DefaultMinBounds.x,s=Xo.DefaultMaxBounds.x,a=Xo.DefaultMinBounds.y,c=Xo.DefaultMaxBounds.y,l=Xo.DefaultMinBounds.z,f=Xo.DefaultMaxBounds.z,d=f-l,p=.5*d,g=P.EPSILON10,m=P.EPSILON3,A=P.EPSILON10,x=P.clamp(t.x,o,s),C=P.clamp(n.x,o,s),T=P.clamp(i.x,o,s),E=P.clamp(r.x,o,s),S=Math.max(x,T),v=Math.min(C,E),D=P.clamp(t.y,a,c),M=P.clamp(n.y,a,c),O=P.clamp(i.y,a,c),B=P.clamp(r.y,a,c),L=Math.max(D,O),_=Math.min(M,B),b=P.negativePiToPi(t.z),w=P.negativePiToPi(n.z),I=P.negativePiToPi(i.z),R=P.negativePiToPi(r.z),F=Math.max(b,I),k=Math.min(w,R),V=N.getScale(e,L0e);if(v===0||S>v||L>_||P.equalsEpsilon(V.x,0,void 0,g)||P.equalsEpsilon(V.y,0,void 0,g)||P.equalsEpsilon(V.z,0,void 0,g))return!1;this._minimumRadius=x,this._maximumRadius=C,this._minimumHeight=D,this._maximumHeight=M,this._minimumAngle=b,this._maximumAngle=w,this.shapeTransform=N.clone(e,this.shapeTransform),this.orientedBoundingBox=MY(S,v,L,_,F,k,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=N.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ae.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let Y=x===o&&C===s,W=D===a&&M===c,Z=w<b,j=w-b+Z*d,K=j>p+A&&j<d-A,J=j>A&&j<p-A,_e=j>=p-A&&j<=p+A,xe=j<=A,oe=K||J||_e||xe,Ae=P.equalsEpsilon(b,l,void 0,m),he=P.equalsEpsilon(w,f,void 0,m),Se=v===s,Ie=S===o,Ne=L===a&&_===c,qe=k<F,pt=k-F+qe*d,Gt=pt>p+A&&pt<d-A,fn=pt>A&&pt<p-A,ft=pt>=p-A&&pt<=p+A,pn=pt<=A,Bn=Gt||fn||ft||pn,Vt=this.shaderUniforms,Qe=this.shaderDefines;for(let Ee in Qe)Qe.hasOwnProperty(Ee)&&(Qe[Ee]=void 0);let pe=0;if(Qe.CYLINDER_INTERSECTION_INDEX_RADIUS_MAX=pe,pe+=1,Ie||(Qe.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN=!0,Qe.CYLINDER_INTERSECTION_INDEX_RADIUS_MIN=pe,pe+=1,Vt.cylinderUvToRenderRadiusMin=v/S),Se||(Qe.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX=!0),S===v&&(Qe.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT=!0),Ne||(Qe.CYLINDER_HAS_RENDER_BOUNDS_HEIGHT=!0),L===_&&(Qe.CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT=!0),D===M&&(Qe.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT=!0),x===C&&(Qe.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT=!0),!Y){Qe.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS=!0;let Ee=1/(C-x),Ge=x/(x-C);Vt.cylinderUvToShapeUvRadius=H.fromElements(Ee,Ge,Vt.cylinderUvToShapeUvRadius)}if(!W){Qe.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT=!0;let Ee=2/(M-D),Ge=(D+1)/(D-M);Vt.cylinderUvToShapeUvHeight=H.fromElements(Ee,Ge,Vt.cylinderUvToShapeUvHeight)}if(!Se||!Ne){let Ee=.5*(_-L),Ge=h.fromElements(1/v,1/v,1/(Ee===0?1:Ee),Emt),xi=h.fromElements(0,0,-Ge.z*.5*(L+_),Tmt),Ci=N.fromRotationTranslation(Q.fromScale(Ge,bmt),xi,Smt),Ir=N.multiplyTransformation(Ci,wmt,vmt);Vt.cylinderUvToRenderBoundsScale=N.getScale(Ir,Vt.cylinderUvToRenderBoundsScale),Vt.cylinderUvToRenderBoundsTranslate=N.getTranslation(Ir,Vt.cylinderUvToRenderBoundsTranslate)}if(Z&&(Qe.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED=!0),Bn&&(Qe.CYLINDER_HAS_RENDER_BOUNDS_ANGLE=!0,Qe.CYLINDER_INTERSECTION_INDEX_ANGLE=pe,Gt?(Qe.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF=!0,pe+=1):fn?(Qe.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF=!0,pe+=2):ft?(Qe.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF=!0,pe+=1):pn&&(Qe.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0,pe+=2),Vt.cylinderRenderAngleMinMax=H.fromElements(F,k,Vt.cylinderAngleMinMax)),oe){Qe.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE=!0,xe&&(Qe.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0),Ae&&(Qe.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY=!0),he&&(Qe.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY=!0);let Ee=(b-l)/d,Ge=(w-l)/d,xi=1-j/d;Vt.cylinderShapeUvAngleMinMax=H.fromElements(Ee,Ge,Vt.cylinderShapeUvAngleMinMax),Vt.cylinderShapeUvAngleRangeZeroMid=(Ge+.5*xi)%1;let Ci=d/j,Ir=-(b-l)/j;Vt.cylinderUvToShapeUvAngle=H.fromElements(Ci,Ir,Vt.cylinderUvToShapeUvAngle)}return this.shaderMaximumIntersectionsLength=pe,!0};Xo.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,r){let o=this._minimumRadius,s=this._maximumRadius,a=this._minimumHeight,c=this._maximumHeight,l=this._minimumAngle,f=this._maximumAngle,d=1/Math.pow(2,e),p=P.lerp(o,s,t*d),g=P.lerp(o,s,(t+1)*d),m=P.lerp(a,c,n*d),A=P.lerp(a,c,(n+1)*d),x=P.lerp(l,f,i*d),C=P.lerp(l,f,(i+1)*d);return MY(p,g,m,A,x,C,this.shapeTransform,r)};var Dmt=new On,Imt=new h,Pmt=new h,Omt=new h;Xo.prototype.computeApproximateStepSize=function(e){let t=this.shapeTransform,n=this._minimumRadius,i=this._maximumRadius,r=this._minimumHeight,o=this._maximumHeight,s=this._minimumAngle,a=this._maximumAngle,c=1-1/e.x,l=1-1/e.y,f=1-1/e.z,d=P.lerp(n,i,c),p=P.lerp(r,o,l),g=P.lerp(s,a,f),C=MY(d,i,p,o,g,a,t,Dmt),T=Q.getScale(C.halfAxes,Imt),E=N.getScale(t,Pmt),S=h.divideComponents(T,E,Omt);return h.minimumComponent(S)};Xo.DefaultMinBounds=Object.freeze(new h(0,-1,-P.PI));Xo.DefaultMaxBounds=Object.freeze(new h(1,1,+P.PI));var Mmt=5,Rmt=new Array(Mmt),Bmt=new h,Lmt=new Q,Nmt=new N,Fmt=new N,Umt=new N,OY=new N,Vmt=new h,kmt=new h,zmt=new h,N0e=new Array(8);for(let e=0;e<8;e++)N0e[e]=new h;function B0e(e,t,n){return Math.abs(se.dot(e,t))<n}function Hmt(e){let t=N.getColumn(e,0,Vmt),n=N.getColumn(e,1,kmt),i=N.getColumn(e,2,zmt),r=P.EPSILON4;return B0e(t,n,r)&&B0e(n,i,r)}function Gmt(e,t){let n=N0e;h.fromElements(-.5,-.5,-.5,n[0]),h.fromElements(-.5,-.5,.5,n[1]),h.fromElements(-.5,.5,-.5,n[2]),h.fromElements(-.5,.5,.5,n[3]),h.fromElements(.5,-.5,-.5,n[4]),h.fromElements(.5,-.5,.5,n[5]),h.fromElements(.5,.5,-.5,n[6]),h.fromElements(.5,.5,.5,n[7]);for(let i=0;i<8;++i)N.multiplyByPoint(e,n[i],n[i]);return On.fromPoints(n,t)}function MY(e,t,n,i,r,o,s,a){let c=Xo.DefaultMinBounds,l=Xo.DefaultMaxBounds,f=c.x,d=l.x,p=c.y,g=l.y,m=c.z,A=l.z;if(e===f&&t===d&&n===p&&i===g&&r===m&&o===A)return a.center=N.getTranslation(s,a.center),a.halfAxes=N.getMatrix3(s,a.halfAxes),a;o<r&&(o+=P.TWO_PI);let C=o-r,T=r+C*.5,E=Rmt,S=0;E[S++]=r,E[S++]=o,E[S++]=T,C>P.PI&&(E[S++]=T-P.PI_OVER_TWO,E[S++]=T+P.PI_OVER_TWO);let v=1,D=1,M=-1,O=-1;for(let Z=0;Z<S;++Z){let j=E[Z]-T,K=Math.cos(j),J=Math.sin(j),_e=K*e,xe=J*e,oe=K*t,Ae=J*t;v=Math.min(v,_e),D=Math.min(D,xe),v=Math.min(v,oe),D=Math.min(D,Ae),M=Math.max(M,_e),O=Math.max(O,xe),M=Math.max(M,oe),O=Math.max(O,Ae)}let B=M-v,L=O-D,_=i-n,b=(v+M)*.5,w=(D+O)*.5,I=(n+i)*.5,R=h.fromElements(b,w,I,Bmt),F=Q.fromRotationZ(T,Lmt),k=h.fromElements(B,L,_,L0e),V=N.fromScale(k,Umt),G=N.fromRotation(F,Fmt),U=N.fromTranslation(R,Nmt),Y=N.multiplyTransformation(G,N.multiplyTransformation(U,V,OY),OY),W=N.multiplyTransformation(s,Y,OY);return Hmt(W)?On.fromTransformation(W,a):Gmt(W,a)}var zm=Xo;function Hl(){this.orientedBoundingBox=new On,this.boundingSphere=new ae,this.boundTransform=new N,this.shapeTransform=new N,this._rectangle=new le,this._minimumHeight=Hl.DefaultMinBounds.z,this._maximumHeight=Hl.DefaultMaxBounds.z,this._ellipsoid=new re,this._translation=new h,this._rotation=new Q,this.shaderUniforms={ellipsoidRadiiUv:new h,ellipsoidInverseRadiiSquaredUv:new h,ellipsoidRenderLongitudeMinMax:new H,ellipsoidShapeUvLongitudeMinMaxMid:new h,ellipsoidUvToShapeUvLongitude:new H,ellipsoidUvToShapeUvLatitude:new H,ellipsoidRenderLatitudeCosSqrHalfMinMax:new H,ellipsoidInverseHeightDifferenceUv:0,ellipseInnerRadiiUv:new H,ellipsoidInverseInnerScaleUv:0,ellipsoidInverseOuterScaleUv:0},this.shaderDefines={ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT:void 0,ELLIPSOID_IS_SPHERE:void 0,ELLIPSOID_INTERSECTION_INDEX_LONGITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN:void 0},this.shaderMaximumIntersectionsLength=0}var Wmt=new h,jmt=new Q,F0e=new h,U0e=new h,V0e=new h,k0e=new h,qmt=new le;Hl.prototype.update=function(e,t,n,i,r){i=y(i,Hl.DefaultMinBounds),r=y(r,Hl.DefaultMaxBounds);let o=Hl.DefaultMinBounds.x,s=Hl.DefaultMaxBounds.x,a=s-o,c=.5*a,l=Hl.DefaultMinBounds.y,f=Hl.DefaultMaxBounds.y,d=f-l,p=P.EPSILON10,g=P.EPSILON3,m=P.EPSILON10,A=P.EPSILON10,x=P.EPSILON3,C=P.clamp(t.x,o,s),T=P.clamp(n.x,o,s),E=P.clamp(i.x,o,s),S=P.clamp(r.x,o,s),v=Math.max(C,E),D=Math.min(T,S),M=P.clamp(t.y,l,f),O=P.clamp(n.y,l,f),B=P.clamp(i.y,l,f),L=P.clamp(r.y,l,f),_=Math.max(M,B),b=Math.min(O,L),w=N.getScale(e,Wmt),I=w.x===w.y&&w.y===w.z,R=h.minimumComponent(w),F=Math.max(t.z,-R),k=Math.max(n.z,-R),V=Math.max(i.z,-R),G=Math.max(r.z,-R),U=Math.max(F,V),Y=Math.min(k,G),W=h.add(w,h.fromElements(F,F,F,U0e),U0e),Z=h.add(w,h.fromElements(k,k,k,F0e),F0e),j=h.maximumComponent(Z),K=h.add(w,h.fromElements(U,U,U,k0e),k0e),J=h.add(w,h.fromElements(Y,Y,Y,V0e),V0e);if(_>b||_===f||b===l||U>Y||P.equalsEpsilon(J,h.ZERO,void 0,p))return!1;this._rectangle=le.fromRadians(C,M,T,O),this._translation=N.getTranslation(e,this._translation),this._rotation=N.getRotation(e,this._rotation),this._ellipsoid=re.fromCartesian3(w,this._ellipsoid),this._minimumHeight=F,this._maximumHeight=k;let _e=le.fromRadians(v,_,D,b,qmt);this.orientedBoundingBox=z0e(_e,U,Y,this._ellipsoid,this._translation,this._rotation,this.orientedBoundingBox),this.shapeTransform=N.fromRotationTranslation(Q.setScale(this._rotation,Z,jmt),this._translation,this.shapeTransform),this.boundTransform=N.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ae.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let xe=D<v,oe=D-v+xe*a,Ae=oe<=m,he=oe>c+m&&oe<a-m,Se=oe>=c-m&&oe<=c+m,Ie=oe>m&&oe<c-m,Ne=Ae||he||Se||Ie,qe=T<C,pt=T-C+qe*a,Gt=pt<=m,fn=pt>c+m&&pt<a-m,ft=pt>=c-m&&pt<=c+m,pn=pt>m&&pt<c-m,Bn=Gt||fn||ft||pn,Vt=b<-x,Qe=b>=-x&&b<=+x,pe=b>+x&&b<f-A,Ee=Vt||Qe||pe,Ge=_>l+A&&_<-x,xi=_>=-x&&_<=+x,Ci=_>+x,Ir=Ge||xi||Ci,Wr=Ee||Ir,Co=O-M,Vo=O<-x,Cs=O>=-x&&O<=+x,Re=O>+x&&O<f-A,it=Vo||Cs||Re,Je=M>l+A&&M<-x,Ze=M>=-x&&M<=+x,ot=M>+x,Tn=it||(Je||Ze||ot),ar=!h.equals(K,h.ZERO),Cr=!h.equals(J,h.ZERO),Ts=ar||Cr,Jo=Y-U,uo=!h.equals(W,h.ZERO),Di=!h.equals(Z,h.ZERO),zo=uo||Di,Hn=this.shaderUniforms,In=this.shaderDefines;for(let $n in In)In.hasOwnProperty($n)&&(In[$n]=void 0);Hn.ellipsoidRadiiUv=h.divideByScalar(Z,j,Hn.ellipsoidRadiiUv),Hn.ellipsoidInverseRadiiSquaredUv=h.divideComponents(h.ONE,h.multiplyComponents(Hn.ellipsoidRadiiUv,Hn.ellipsoidRadiiUv,Hn.ellipsoidInverseRadiiSquaredUv),Hn.ellipsoidInverseRadiiSquaredUv);let Gn=0;if(In.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX=Gn,Gn+=1,Ts&&(Jo===0&&(In.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT=!0),ar&&(In.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN=!0,In.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN=Gn,Gn+=1,Hn.ellipsoidInverseInnerScaleUv=j/(j-(k-U))),Cr&&(In.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX=!0,Hn.ellipsoidInverseOuterScaleUv=j/(j-(k-Y)))),zo){if(uo){In.ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN=!0;let $n=(k-F)/j;Hn.ellipsoidInverseHeightDifferenceUv=1/$n,Hn.ellipseInnerRadiiUv=H.fromElements(Hn.ellipsoidRadiiUv.x*(1-$n),Hn.ellipsoidRadiiUv.z*(1-$n),Hn.ellipseInnerRadiiUv)}F===k&&(In.ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT=!0)}if(Ne&&(In.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE=!0,In.ELLIPSOID_INTERSECTION_INDEX_LONGITUDE=Gn,he?(In.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF=!0,Gn+=1):Ie?(In.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF=!0,Gn+=2):Se?(In.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF=!0,Gn+=1):Ae&&(In.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO=!0,Gn+=2),Hn.ellipsoidRenderLongitudeMinMax=H.fromElements(v,D,Hn.ellipsoidRenderLongitudeMinMax)),Bn){In.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE=!0,T<C&&(In.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED=!0);let Ma=a/pt,Nr=-(C-o)/pt;Hn.ellipsoidUvToShapeUvLongitude=H.fromElements(Ma,Nr,Hn.ellipsoidUvToShapeUvLongitude)}if(Ne){let $n=P.equalsEpsilon(v,o,void 0,g),Ma=P.equalsEpsilon(D,s,void 0,g);$n&&(In.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY=!0),Ma&&(In.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY=!0);let Nr=(C-o)/a,Zo=(T-o)/a,fa=(D-o)/a,fo=1-oe/a,Cc=(fa+.5*fo)%1;Hn.ellipsoidShapeUvLongitudeMinMaxMid=h.fromElements(Nr,Zo,Cc,Hn.ellipsoidShapeUvLongitudeMinMaxMid)}if(Wr){In.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE=!0,Ir&&(In.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN=!0,In.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN=Gn,Ge?(In.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF=!0,Gn+=1):xi?(In.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF=!0,Gn+=1):Ci&&(In.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF=!0,Gn+=2)),Ee&&(In.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX=!0,In.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX=Gn,Vt?(In.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF=!0,Gn+=2):Qe?(In.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF=!0,Gn+=1):pe&&(In.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF=!0,Gn+=1)),_===b&&(In.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO=!0);let $n=Math.pow(Math.cos(P.PI_OVER_TWO-Math.abs(_)),2),Ma=Math.pow(Math.cos(P.PI_OVER_TWO-Math.abs(b)),2);Hn.ellipsoidRenderLatitudeCosSqrHalfMinMax=H.fromElements($n,Ma,Hn.ellipsoidRenderLatitudeCosSqrHalfMinMax)}if(Tn){In.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE=!0,M===O&&(In.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO=!0);let $n=d/Co,Ma=(l-M)/Co;Hn.ellipsoidUvToShapeUvLatitude=H.fromElements($n,Ma,Hn.ellipsoidUvToShapeUvLatitude)}return I&&(In.ELLIPSOID_IS_SPHERE=!0),this.shaderMaximumIntersectionsLength=Gn,!0};var Ymt=new le;Hl.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,r){let o=1/Math.pow(2,e),s=t*o,a=(t+1)*o,c=n*o,l=(n+1)*o,f=i*o,d=(i+1)*o,p=le.subsection(this._rectangle,s,c,a,l,Ymt),g=P.lerp(this._minimumHeight,this._maximumHeight,f),m=P.lerp(this._minimumHeight,this._maximumHeight,d);return z0e(p,g,m,this._ellipsoid,this._translation,this._rotation,r)};Hl.prototype.computeApproximateStepSize=function(e){let n=this._ellipsoid.maximumRadius,i=this._minimumHeight,r=this._maximumHeight;return .5*((r-i)/(n+r))/e.z};function z0e(e,t,n,i,r,o,s){return s=On.fromRectangle(e,t,n,i,s),s.center=h.add(s.center,r,s.center),s.halfAxes=Q.multiply(s.halfAxes,o,s.halfAxes),s}Hl.DefaultMinBounds=Object.freeze(new h(-P.PI,-P.PI_OVER_TWO,-Number.MAX_VALUE));Hl.DefaultMaxBounds=Object.freeze(new h(+P.PI,+P.PI_OVER_TWO,+Number.MAX_VALUE));var EC=Hl;var Uu={BOX:"BOX",ELLIPSOID:"ELLIPSOID",CYLINDER:"CYLINDER"};Uu.getMinBounds=function(e){switch(e){case Uu.BOX:return km.DefaultMinBounds;case Uu.ELLIPSOID:return EC.DefaultMinBounds;case Uu.CYLINDER:return zm.DefaultMinBounds}};Uu.getMaxBounds=function(e){switch(e){case Uu.BOX:return km.DefaultMaxBounds;case Uu.ELLIPSOID:return EC.DefaultMaxBounds;case Uu.CYLINDER:return zm.DefaultMaxBounds}};Uu.getShapeConstructor=function(e){switch(e){case Uu.BOX:return km;case Uu.ELLIPSOID:return EC;case Uu.CYLINDER:return zm}};var qi=Object.freeze(Uu);function pF(e){e=y(e,y.EMPTY_OBJECT),this._ready=!1,this.shapeTransform=void 0,this.globalTransform=void 0,this.shape=void 0,this.minBounds=void 0,this.maxBounds=void 0,this.dimensions=void 0,this.paddingBefore=void 0,this.paddingAfter=void 0,this.names=void 0,this.types=void 0,this.componentTypes=void 0,this.minimumValues=void 0,this.maximumValues=void 0,this.maximumTileCount=void 0,this._implicitTileset=void 0,this._subtreeCache=new hF;let t=this,n;u(e.url)&&($("Cesium3DTilesVoxelProvider options.url","Cesium3DTilesVoxelProvider constructor parameter options.url was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead."),this._readyPromise=Promise.resolve(e.url).then(function(i){let r=ve.createIfNeeded(i);return r.fetchJson().then(function(o){return n=o,W0e(n),q0e(n,r).load()}).then(function(o){let s=n.root,a=s.content.extensions["3DTILES_content_voxels"],c=a.class,l=ni(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,f=o.schema,d=new sy({metadataJson:l,schema:f});Y0e(t,d,c);let p=new ay(r,s,f),{shape:g,minBounds:m,maxBounds:A,shapeTransform:x,globalTransform:C}=j0e(s);t.shape=g,t.minBounds=m,t.maxBounds=A,t.dimensions=h.unpack(a.dimensions),t.shapeTransform=x,t.globalTransform=C,t.maximumTileCount=G0e(d);let T,E;return u(a.padding)&&(T=h.unpack(a.padding.before),E=h.unpack(a.padding.after)),t.paddingBefore=T,t.paddingAfter=E,t._implicitTileset=p,Ui.unload(o),t._ready=!0,t})}))}Object.defineProperties(pF.prototype,{readyPromise:{get:function(){return $("Cesium3DTilesVoxelProvider.readyPromise","Cesium3DTilesVoxelProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead."),this._readyPromise}},ready:{get:function(){return $("Cesium3DTilesVoxelProvider.ready","Cesium3DTilesVoxelProvider.ready was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead."),this._ready}}});pF.fromUrl=async function(e){let t=ve.createIfNeeded(e),n=await t.fetchJson();W0e(n);let i=q0e(n,t);await i.load();let r=n.root,o=r.content.extensions["3DTILES_content_voxels"],s=o.class,a=ni(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,c=i.schema,l=new sy({metadataJson:a,schema:c}),f=new pF;Y0e(f,l,s);let d=new ay(t,r,c),{shape:p,minBounds:g,maxBounds:m,shapeTransform:A,globalTransform:x}=j0e(r);f.shape=p,f.minBounds=g,f.maxBounds=m,f.dimensions=h.unpack(o.dimensions),f.shapeTransform=A,f.globalTransform=x,f.maximumTileCount=G0e(l);let C,T;return u(o.padding)&&(C=h.unpack(o.padding.before),T=h.unpack(o.padding.after)),f.paddingBefore=C,f.paddingAfter=T,f._implicitTileset=d,Ui.unload(i),f._ready=!0,f._readyPromise=Promise.resolve(f),f};function G0e(e){if(u(e.tileset))return e.tileset.getPropertyBySemantic(RA.TILESET_TILE_COUNT)}function W0e(e){let t=e.root;if(!u(t.content))throw new de("Root must have content");if(!ni(t.content,"3DTILES_content_voxels"))throw new de("Root tile content must have 3DTILES_content_voxels extension");if(!ni(t,"3DTILES_implicit_tiling")&&!u(t.implicitTiling))throw new de("Root tile must have implicit tiling");if(!u(e.schema)&&!u(e.schemaUri)&&!ni(e,"3DTILES_metadata"))throw new de("Tileset must have a metadata schema")}function j0e(e){let t=e.boundingVolume,n;if(u(e.transform)?n=N.unpack(e.transform):n=N.clone(N.IDENTITY),u(t.box))return Kmt(t.box,n);if(u(t.region))return Xmt(t.region);if(ni(t,"3DTILES_bounding_volume_cylinder"))return Jmt(t.extensions["3DTILES_bounding_volume_cylinder"].cylinder,n);throw new de("Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider")}function Xmt(e){let t=e[0],n=e[1],i=e[2],r=e[3],o=e[4],s=e[5],a=N.fromScale(re.WGS84.radii),c=t,l=i,f=n,d=r,p=o,g=s,m=new h(c,f,p),A=new h(l,d,g);return{shape:qi.ELLIPSOID,minBounds:m,maxBounds:A,shapeTransform:a,globalTransform:N.clone(N.IDENTITY)}}function Kmt(e,t){let n=On.unpack(e),i=N.fromRotationTranslation(n.halfAxes,n.center);return{shape:qi.BOX,minBounds:h.clone(km.DefaultMinBounds),maxBounds:h.clone(km.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function Jmt(e,t){let n=On.unpack(e),i=N.fromRotationTranslation(n.halfAxes,n.center);return{shape:qi.CYLINDER,minBounds:h.clone(zm.DefaultMinBounds),maxBounds:h.clone(zm.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function q0e(e,t){let{schemaUri:n,schema:i}=e;return u(n)?Ui.getSchemaLoader({resource:t.getDerivedResource({url:n})}):Ui.getSchemaLoader({schema:i})}function Y0e(e,t,n){let{schema:i,statistics:r}=t,o=r?.classes[n],s=i.classes[n].properties,a=Object.entries(s).map(([d,p])=>{let{type:g,componentType:m}=p,A=o?.properties[d].min,x=o?.properties[d].max,C=jt.getComponentCount(g),T=H0e(A,C),E=H0e(x,C);return{id:d,type:g,componentType:m,minValue:T,maxValue:E}});e.names=a.map(d=>d.id),e.types=a.map(d=>d.type),e.componentTypes=a.map(d=>d.componentType);let c=a.map(d=>d.minValue),l=a.map(d=>d.maxValue),f=c.some(u);e.minimumValues=f?c:void 0,e.maximumValues=f?l:void 0}function H0e(e,t){if(!u(e))return;let n=Array.isArray(e)?e:[e];return Array.from({length:t},(i,r)=>n[r])}async function Zmt(e,t){let n=e.contentUriTemplates[0].getDerivedResource({templateValues:t.getTemplateValues()}),i=e.baseResource.getDerivedResource({url:n.url}),r=await i.fetchArrayBuffer(),o=om(r);return await mF.fromJson(i,o.jsonPayload,o.binaryPayload,e.metadataSchema)}async function Qmt(e,t){let n=e._implicitTileset,i=e._subtreeCache,r=i.find(t);if(u(r))return r;let o=n.subtreeUriTemplate.getDerivedResource({templateValues:t.getTemplateValues()}),s=n.baseResource.getDerivedResource({url:o.url}),a=await s.fetchArrayBuffer();if(r=i.find(t),u(r))return r;let c=om(a);return r=await MA.fromSubtreeJson(s,c.jsonPayload,c.binaryPayload,n,t),i.addSubtree(r),r}pF.prototype.requestData=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.tileLevel,0),n=y(e.tileX,0),i=y(e.tileY,0),r=y(e.tileZ,0);if(y(e.keyframe,0)!==0)return;let s=this._implicitTileset,a=this.names,c=new lx({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:t,x:n,y:i,z:r}),l=c.isSubtreeRoot()&&c.level>0,f=l?c.getParentSubtreeCoordinates():c.getSubtreeCoordinates();return Qmt(this,f).then(function(p){return(l?p.childSubtreeIsAvailableAtCoordinates(c):p.tileIsAvailableAtCoordinates(c))?Zmt(s,c):Promise.reject("Tile is not available")}).then(function(p){return a.map(function(g){return p.metadataTable.getPropertyTypedArray(g)})})};var RY=pF;function BY(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(BY.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});BY.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,this._radius),i=n*Math.cos(t),r=n*Math.sin(t),o=0;e.position=h.fromElements(i,r,o,e.position),e.velocity=h.clone(h.UNIT_Z,e.velocity)};var _F=BY;var LY={CUMULUS:0};LY.validate=function(e){return e===LY.CUMULUS};var PS=Object.freeze(LY);function Th(e,t){if(e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),!u(e.scale)&&u(e.maximumSize))this._maximumSize=h.clone(e.maximumSize),this._scale=new H(this._maximumSize.x,this._maximumSize.y);else{this._scale=H.clone(y(e.scale,new H(20,12)));let n=new h(this._scale.x,this._scale.y,Math.min(this._scale.x,this._scale.y)/1.5);this._maximumSize=h.clone(y(e.maximumSize,n))}this._slice=y(e.slice,-1),this._color=z.clone(y(e.color,z.WHITE)),this._brightness=y(e.brightness,1),this._cloudCollection=t,this._index=-1}var $mt=Th.SHOW_INDEX=0,ept=Th.POSITION_INDEX=1,tpt=Th.SCALE_INDEX=2,npt=Th.MAXIMUM_SIZE_INDEX=3,ipt=Th.SLICE_INDEX=4,rpt=Th.BRIGHTNESS_INDEX=5,opt=Th.COLOR_INDEX=6;Th.NUMBER_OF_PROPERTIES=7;function bC(e,t){let n=e._cloudCollection;u(n)&&(n._updateCloud(e,t),e._dirty=!0)}Object.defineProperties(Th.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,bC(this,$mt))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),bC(this,ept))}},scale:{get:function(){return this._scale},set:function(e){let t=this._scale;H.equals(t,e)||(H.clone(e,t),bC(this,tpt))}},maximumSize:{get:function(){return this._maximumSize},set:function(e){let t=this._maximumSize;h.equals(t,e)||(h.clone(e,t),bC(this,npt))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),bC(this,opt))}},slice:{get:function(){return this._slice},set:function(e){this._slice!==e&&(this._slice=e,bC(this,ipt))}},brightness:{get:function(){return this._brightness},set:function(e){this._brightness!==e&&(this._brightness=e,bC(this,rpt))}}});Th.prototype._destroy=function(){this._cloudCollection=void 0};var Vu=Th;var ku,iH=new h,spt={positionHighAndScaleX:0,positionLowAndScaleY:1,packedAttribute0:2,packedAttribute1:3,color:4},apt={direction:0,positionHighAndScaleX:1,positionLowAndScaleY:2,packedAttribute0:3,packedAttribute1:4,color:5},cpt=Vu.SHOW_INDEX,lpt=Vu.POSITION_INDEX,upt=Vu.SCALE_INDEX,fpt=Vu.MAXIMUM_SIZE_INDEX,dpt=Vu.SLICE_INDEX,hpt=Vu.BRIGHTNESS_INDEX,mpt=Vu.NUMBER_OF_PROPERTIES,ppt=Vu.COLOR_INDEX;function Eh(e){e=y(e,y.EMPTY_OBJECT),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(mpt),this._noiseTexture=void 0,this._textureSliceWidth=128,this._noiseTextureRows=4,this.noiseDetail=y(e.noiseDetail,16),this.noiseOffset=h.clone(y(e.noiseOffset,h.ZERO)),this._loading=!1,this._ready=!1;let t=this;this._uniforms={u_noiseTexture:function(){return t._noiseTexture},u_noiseTextureDimensions:X0e(t),u_noiseDetail:function(){return t.noiseDetail}},this._vaNoise=void 0,this._spNoise=void 0,this._spCreated=!1,this._sp=void 0,this._rs=void 0,this.show=y(e.show,!0),this._colorCommands=[],this.debugBillboards=y(e.debugBillboards,!1),this._compiledDebugBillboards=!1,this.debugEllipsoids=y(e.debugEllipsoids,!1),this._compiledDebugEllipsoids=!1}function X0e(e){return function(){return iH.x=e._textureSliceWidth,iH.y=e._noiseTextureRows,iH.z=1/e._noiseTextureRows,iH}}Object.defineProperties(Eh.prototype,{length:{get:function(){return FY(this),this._clouds.length}}});function K0e(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Eh.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.cloudType,PS.CUMULUS),n;return t===PS.CUMULUS&&(n=new Vu(e,this),n._index=this._clouds.length,this._clouds.push(n),this._createVertexArray=!0),n};Eh.prototype.remove=function(e){return this.contains(e)?(this._clouds[e._index]=void 0,this._cloudsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Eh.prototype.removeAll=function(){K0e(this._clouds),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!0};function FY(e){if(e._cloudsRemoved){e._cloudsRemoved=!1;let t=[],n=e._clouds,i=n.length;for(let r=0,o=0;r<i;++r){let s=n[r];u(s)&&(n._index=o++,t.push(s))}e._clouds=t}}Eh.prototype._updateCloud=function(e,t){e._dirty||(this._cloudsToUpdate[this._cloudsToUpdateIndex++]=e),++this._propertiesChanged[t]};Eh.prototype.contains=function(e){return u(e)&&e._cloudCollection===this};Eh.prototype.get=function(e){return FY(this),this._clouds[e]};var _pt=new Float32Array([-1,-1,1,-1,1,1,-1,1]),gpt=new Uint16Array([0,1,2,0,2,3]);function ypt(e){let t=ht.createVertexBuffer({context:e,typedArray:_pt,usage:Fe.STATIC_DRAW}),n=ht.createIndexBuffer({context:e,typedArray:gpt,usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT}),i=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT}];return new oi({context:e,attributes:i,indexBuffer:n})}var UY;function Apt(e){let n=e.cache.cloudCollection_indexBufferBatched;if(u(n))return n;let i=16384*6-6,r=new Uint16Array(i);for(let o=0,s=0;o<i;o+=6,s+=4)r[o]=s,r[o+1]=s+1,r[o+2]=s+2,r[o+3]=s,r[o+4]=s+2,r[o+5]=s+3;return n=ht.createIndexBuffer({context:e,typedArray:r,usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferBatched=n,n}function xpt(e){let t=e.cache.cloudCollection_indexBufferInstanced;return u(t)||(t=ht.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ue.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferInstanced=t),t}function Cpt(e){let t=e.cache.cloudCollection_vertexBufferInstanced;return u(t)||(t=ht.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_vertexBufferInstanced=t),t}function Tpt(e,t,n){let i=[{index:ku.positionHighAndScaleX,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:ku.positionLowAndScaleY,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:ku.packedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:ku.packedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:ku.color,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,usage:Fe.STATIC_DRAW}];n&&i.push({index:ku.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:Cpt(e)});let r=n?t:4*t;return new ap(e,i,r,n)}var NY=new jn;function J0e(e,t,n,i){let r,o=n[ku.positionHighAndScaleX],s=n[ku.positionLowAndScaleY],a=i.position;jn.fromCartesian(a,NY);let c=i.scale,l=NY.high,f=NY.low;e._instanced?(r=i._index,o(r,l.x,l.y,l.z,c.x),s(r,f.x,f.y,f.z,c.y)):(r=i._index*4,o(r+0,l.x,l.y,l.z,c.x),o(r+1,l.x,l.y,l.z,c.x),o(r+2,l.x,l.y,l.z,c.x),o(r+3,l.x,l.y,l.z,c.x),s(r+0,f.x,f.y,f.z,c.y),s(r+1,f.x,f.y,f.z,c.y),s(r+2,f.x,f.y,f.z,c.y),s(r+3,f.x,f.y,f.z,c.y))}function Z0e(e,t,n,i){let r,o=n[ku.packedAttribute0],s=i.show,a=i.brightness;e._instanced?(r=i._index,o(r,s,a,0,0)):(r=i._index*4,o(r+0,s,a,0,0),o(r+1,s,a,1,0),o(r+2,s,a,1,1),o(r+3,s,a,0,1))}function Q0e(e,t,n,i){let r,o=n[ku.packedAttribute1],s=i.maximumSize,a=i.slice;e._instanced?(r=i._index,o(r,s.x,s.y,s.z,a)):(r=i._index*4,o(r+0,s.x,s.y,s.z,a),o(r+1,s.x,s.y,s.z,a),o(r+2,s.x,s.y,s.z,a),o(r+3,s.x,s.y,s.z,a))}function $0e(e,t,n,i){let r,o=n[ku.color],s=i.color,a=z.floatToByte(s.red),c=z.floatToByte(s.green),l=z.floatToByte(s.blue),f=z.floatToByte(s.alpha);e._instanced?(r=i._index,o(r,a,c,l,f)):(r=i._index*4,o(r+0,a,c,l,f),o(r+1,a,c,l,f),o(r+2,a,c,l,f),o(r+3,a,c,l,f))}function Ept(e,t,n,i){J0e(e,t,n,i),Z0e(e,t,n,i),Q0e(e,t,n,i),$0e(e,t,n,i)}function bpt(e,t,n,i){let r=e,o=r._textureSliceWidth,s=r._noiseTextureRows,a=t.context;r._vaNoise=ypt(a),r._spNoise=Xt.fromCache({context:a,vertexShaderSource:n,fragmentShaderSource:i,attributeLocations:{position:0}});let c=r.noiseDetail,l=r.noiseOffset;r._noiseTexture=new Rt({context:a,width:o*o/s,height:o*s,pixelDatatype:Ke.UNSIGNED_BYTE,pixelFormat:at.RGBA,sampler:new ln({wrapS:Sn.REPEAT,wrapT:Sn.REPEAT,minificationFilter:sn.NEAREST,magnificationFilter:Ti.NEAREST})});let f=new Yu({vertexArray:r._vaNoise,shaderProgram:r._spNoise,outputTexture:r._noiseTexture,uniformMap:{u_noiseTextureDimensions:X0e(r),u_noiseDetail:function(){return c},u_noiseOffset:function(){return l}},persists:!1,owner:e,postExecute:function(d){r._ready=!0,r._loading=!1}});t.commandList.push(f),r._loading=!0}function Spt(e,t){let n=e,i=t.context;n._createVertexArray=!1,n._vaf=n._vaf&&n._vaf.destroy();let r=e._clouds,o=r.length;if(o>0){n._vaf=Tpt(i,o,n._instanced);let s=n._vaf.writers,a;for(a=0;a<o;++a){let c=r[a];Ept(e,t,s,c)}n._vaf.commit(UY(i))}}var vpt=[];function wpt(e,t){let n=t.context,i=e,o=i._clouds.length,s=i._cloudsToUpdate,a=i._cloudsToUpdateIndex,c=i._propertiesChanged,l=vpt;l.length=0,(c[lpt]||c[upt])&&l.push(J0e),(c[cpt]||c[hpt])&&l.push(Z0e),(c[fpt]||c[dpt])&&l.push(Q0e),c[ppt]&&l.push($0e);let f=l.length,d=i._vaf.writers,p,g,m;if(a/o>.1){for(p=0;p<a;++p)for(g=s[p],g._dirty=!1,m=0;m<f;++m)l[m](e,t,d,g);i._vaf.commit(UY(n))}else{for(p=0;p<a;++p){for(g=s[p],g._dirty=!1,m=0;m<f;++m)l[m](e,t,d,g);i._instanced?i._vaf.subCommit(g._index,1):i._vaf.subCommit(g._index*4,4)}i._vaf.endSubCommits()}i._cloudsToUpdateIndex=0}function Dpt(e,t,n,i){let r=t.context,o=e,s=new ke({defines:[],sources:[n]});o._instanced&&s.defines.push("INSTANCED");let a=new ke({defines:[],sources:[i]});o.debugBillboards&&a.defines.push("DEBUG_BILLBOARDS"),o.debugEllipsoids&&a.defines.push("DEBUG_ELLIPSOIDS"),o._sp=Xt.replaceCache({context:r,shaderProgram:o._sp,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:ku}),o._rs=Ve.fromCache({depthTest:{enabled:!0,func:te.LESS},depthMask:!1,blending:un.ALPHA_BLEND}),o._spCreated=!0,o._compiledDebugBillboards=o.debugBillboards,o._compiledDebugEllipsoids=o.debugEllipsoids}function Ipt(e,t){let n=e,i=t.passes,r=n._uniforms,o=t.commandList;if(i.render){let s=n._colorCommands,a=n._vaf.va,c=a.length;s.length=c;for(let l=0;l<c;l++){let f=s[l];u(f)||(f=s[l]=new nt),f.pass=be.TRANSLUCENT,f.owner=e,f.uniformMap=r,f.count=a[l].indicesCount,f.vertexArray=a[l].va,f.shaderProgram=n._sp,f.renderState=n._rs,n._instanced&&(f.count=6,f.instanceCount=n._clouds.length),o.push(f)}}}Eh.prototype.update=function(e){if(FY(this),!this.show)return;let t=this.debugBillboards||this.debugEllipsoids;this._ready=t?!0:u(this._noiseTexture),!this._ready&&!this._loading&&!t&&bpt(this,e,cF,aF),this._instanced=e.context.instancedArrays,ku=this._instanced?apt:spt,UY=this._instanced?xpt:Apt;let i=this._clouds.length,r=this._cloudsToUpdate,o=this._cloudsToUpdateIndex;this._createVertexArray?Spt(this,e):o>0&&wpt(this,e),o>i*1.5&&(r.length=i),!(!u(this._vaf)||!u(this._vaf.va)||!this._ready&!t)&&((!this._spCreated||this.debugBillboards!==this._compiledDebugBillboards||this.debugEllipsoids!==this._compiledDebugEllipsoids)&&Dpt(this,e,sF,oF),Ipt(this,e))};Eh.prototype.isDestroyed=function(){return!1};Eh.prototype.destroy=function(){return this._noiseTexture=this._noiseTexture&&this._noiseTexture.destroy(),this._sp=this._sp&&this._sp.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),K0e(this._clouds),ue(this)};var VY=Eh;var Ppt=P.toRadians(30);function kY(e){this._angle=y(e,Ppt)}Object.defineProperties(kY.prototype,{angle:{get:function(){return this._angle},set:function(e){this._angle=e}}});kY.prototype.emit=function(e){let t=Math.tan(this._angle),n=P.randomBetween(0,P.TWO_PI),i=P.randomBetween(0,t),r=i*Math.cos(n),o=i*Math.sin(n),s=1;e.velocity=h.fromElements(r,o,s,e.velocity),h.normalize(e.velocity,e.velocity),e.position=h.clone(h.ZERO,e.position)};var zY=kY;function gF(e){e=y(e,y.EMPTY_OBJECT);let t=e.attributeName,n=e.perInstanceAttribute;u(n)||(n=!1);let i=y(e.glslDatatype,"vec3"),r=`v_${t}`,o;if(t==="normal"||t==="tangent"||t==="bitangent")o=`vec4 getColor() { return vec4((${r} + vec3(1.0)) * 0.5, 1.0); } +`;else switch(t==="st"&&(i="vec2"),i){case"float":o=`vec4 getColor() { return vec4(vec3(${r}), 1.0); } +`;break;case"vec2":o=`vec4 getColor() { return vec4(${r}, 0.0, 1.0); } +`;break;case"vec3":o=`vec4 getColor() { return vec4(${r}, 1.0); } +`;break;case"vec4":o=`vec4 getColor() { return ${r}; } +`;break}let s=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; +${n?"":`in ${i} ${t}; +`}out ${i} ${r}; +void main() +{ +vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow); +${n?`${r} = czm_batchTable_${t}(batchId); +`:`${r} = ${t}; +`}gl_Position = czm_modelViewProjectionRelativeToEye * p; +}`,a=`in ${i} ${r}; +${o} +void main() +{ +out_FragColor = getColor(); +}`;this.material=void 0,this.translucent=y(e.translucent,!1),this._vertexShaderSource=y(e.vertexShaderSource,s),this._fragmentShaderSource=y(e.fragmentShaderSource,a),this._renderState=nr.getDefaultRenderState(!1,!1,e.renderState),this._closed=y(e.closed,!1),this._attributeName=t,this._glslDatatype=i}Object.defineProperties(gF.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},attributeName:{get:function(){return this._attributeName}},glslDatatype:{get:function(){return this._glslDatatype}}});gF.prototype.getFragmentShaderSource=nr.prototype.getFragmentShaderSource;gF.prototype.isTranslucent=nr.prototype.isTranslucent;gF.prototype.getRenderState=nr.prototype.getRenderState;var HY=gF;function rH(e){e=y(e,y.EMPTY_OBJECT),this.length=y(e.length,1e7),this._length=void 0,this.width=y(e.width,2),this._width=void 0,this.show=y(e.show,!0),this.modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this._modelMatrix=new N,this.id=e.id,this._id=void 0,this._primitive=void 0}rH.prototype.update=function(e){if(this.show){if(!u(this._primitive)||!N.equals(this._modelMatrix,this.modelMatrix)||this._length!==this.length||this._width!==this.width||this._id!==this.id){this._modelMatrix=N.clone(this.modelMatrix,this._modelMatrix),this._length=this.length,this._width=this.width,this._id=this.id,u(this._primitive)&&this._primitive.destroy(),this.modelMatrix[12]===0&&this.modelMatrix[13]===0&&this.modelMatrix[14]===0&&(this.modelMatrix[14]=.01);let t=new xt({geometry:new w_({positions:[h.ZERO,h.UNIT_X],width:this.width,vertexFormat:Go.VERTEX_FORMAT,colors:[z.RED,z.RED],arcType:Kt.NONE}),modelMatrix:N.multiplyByUniformScale(this.modelMatrix,this.length,new N),id:this.id,pickPrimitive:this}),n=new xt({geometry:new w_({positions:[h.ZERO,h.UNIT_Y],width:this.width,vertexFormat:Go.VERTEX_FORMAT,colors:[z.GREEN,z.GREEN],arcType:Kt.NONE}),modelMatrix:N.multiplyByUniformScale(this.modelMatrix,this.length,new N),id:this.id,pickPrimitive:this}),i=new xt({geometry:new w_({positions:[h.ZERO,h.UNIT_Z],width:this.width,vertexFormat:Go.VERTEX_FORMAT,colors:[z.BLUE,z.BLUE],arcType:Kt.NONE}),modelMatrix:N.multiplyByUniformScale(this.modelMatrix,this.length,new N),id:this.id,pickPrimitive:this});this._primitive=new bn({geometryInstances:[t,n,i],appearance:new Go,asynchronous:!1})}this._primitive.update(e)}};rH.prototype.isDestroyed=function(){return!1};rH.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var yF=rH;function Opt(e){this.direction=h.clone(e.direction),this.color=z.clone(y(e.color,z.WHITE)),this.intensity=y(e.intensity,1)}var GY=Opt;var AF=`in vec3 v_positionMC; +in vec3 v_positionEC; +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0))); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + materialInput.s = v_st.s; + materialInput.st = v_st; + materialInput.str = vec3(v_st, 0.0); + + // Convert tangent space material normal to eye space + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC); + + // Convert view vector to world space + vec3 positionToEyeEC = -v_positionEC; + materialInput.positionToEyeEC = positionToEyeEC; + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var xF=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec2 st; +in float batchId; + +out vec3 v_positionMC; +out vec3 v_positionEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionMC = position3DHigh + position3DLow; // position in model coordinates + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function SC(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.aboveGround,!1);this.material=u(e.material)?e.material:Gi.fromType(Gi.ColorType),this.translucent=y(e.translucent,!0),this._vertexShaderSource=y(e.vertexShaderSource,xF),this._fragmentShaderSource=y(e.fragmentShaderSource,AF),this._renderState=nr.getDefaultRenderState(t,!n,e.renderState),this._closed=!1,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,n),this._aboveGround=n}Object.defineProperties(SC.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return SC.VERTEX_FORMAT}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}},aboveGround:{get:function(){return this._aboveGround}}});SC.VERTEX_FORMAT=Pe.POSITION_AND_ST;SC.prototype.getFragmentShaderSource=nr.prototype.getFragmentShaderSource;SC.prototype.isTranslucent=nr.prototype.isTranslucent;SC.prototype.getRenderState=nr.prototype.getRenderState;var WY=SC;function Gl(e){this._scene=e.scene,this.samplingWindow=y(e.samplingWindow,Gl.defaultSettings.samplingWindow),this.quietPeriod=y(e.quietPeriod,Gl.defaultSettings.quietPeriod),this.warmupPeriod=y(e.warmupPeriod,Gl.defaultSettings.warmupPeriod),this.minimumFrameRateDuringWarmup=y(e.minimumFrameRateDuringWarmup,Gl.defaultSettings.minimumFrameRateDuringWarmup),this.minimumFrameRateAfterWarmup=y(e.minimumFrameRateAfterWarmup,Gl.defaultSettings.minimumFrameRateAfterWarmup),this._lowFrameRate=new ge,this._nominalFrameRate=new ge,this._frameTimes=[],this._needsQuietPeriod=!0,this._quietPeriodEndTime=0,this._warmupPeriodEndTime=0,this._frameRateIsLow=!1,this._lastFramesPerSecond=void 0,this._pauseCount=0;let t=this;this._preUpdateRemoveListener=this._scene.preUpdate.addEventListener(function(r,o){Mpt(t,o)}),this._hiddenPropertyName=document.hidden!==void 0?"hidden":document.mozHidden!==void 0?"mozHidden":document.msHidden!==void 0?"msHidden":document.webkitHidden!==void 0?"webkitHidden":void 0;let n=document.hidden!==void 0?"visibilitychange":document.mozHidden!==void 0?"mozvisibilitychange":document.msHidden!==void 0?"msvisibilitychange":document.webkitHidden!==void 0?"webkitvisibilitychange":void 0;function i(){Rpt(t)}this._visibilityChangeRemoveListener=void 0,u(n)&&(document.addEventListener(n,i,!1),this._visibilityChangeRemoveListener=function(){document.removeEventListener(n,i,!1)})}Gl.defaultSettings={samplingWindow:5,quietPeriod:2,warmupPeriod:5,minimumFrameRateDuringWarmup:4,minimumFrameRateAfterWarmup:8};Gl.fromScene=function(e){return(!u(e._frameRateMonitor)||e._frameRateMonitor.isDestroyed())&&(e._frameRateMonitor=new Gl({scene:e})),e._frameRateMonitor};Object.defineProperties(Gl.prototype,{scene:{get:function(){return this._scene}},lowFrameRate:{get:function(){return this._lowFrameRate}},nominalFrameRate:{get:function(){return this._nominalFrameRate}},lastFramesPerSecond:{get:function(){return this._lastFramesPerSecond}}});Gl.prototype.pause=function(){++this._pauseCount,this._pauseCount===1&&(this._frameTimes.length=0,this._lastFramesPerSecond=void 0)};Gl.prototype.unpause=function(){--this._pauseCount,this._pauseCount<=0&&(this._pauseCount=0,this._needsQuietPeriod=!0)};Gl.prototype.isDestroyed=function(){return!1};Gl.prototype.destroy=function(){return this._preUpdateRemoveListener(),u(this._visibilityChangeRemoveListener)&&this._visibilityChangeRemoveListener(),ue(this)};function Mpt(e,t){if(e._pauseCount>0)return;let n=yi();if(e._needsQuietPeriod)e._needsQuietPeriod=!1,e._frameTimes.length=0,e._quietPeriodEndTime=n+e.quietPeriod/Zn.SECONDS_PER_MILLISECOND,e._warmupPeriodEndTime=e._quietPeriodEndTime+(e.warmupPeriod+e.samplingWindow)/Zn.SECONDS_PER_MILLISECOND;else if(n>=e._quietPeriodEndTime){e._frameTimes.push(n);let i=n-e.samplingWindow/Zn.SECONDS_PER_MILLISECOND;if(e._frameTimes.length>=2&&e._frameTimes[0]<=i){for(;e._frameTimes.length>=2&&e._frameTimes[1]<i;)e._frameTimes.shift();let r=(n-e._frameTimes[0])/(e._frameTimes.length-1);e._lastFramesPerSecond=1e3/r;let o=1e3/(n>e._warmupPeriodEndTime?e.minimumFrameRateAfterWarmup:e.minimumFrameRateDuringWarmup);r>o?e._frameRateIsLow||(e._frameRateIsLow=!0,e._needsQuietPeriod=!0,e.lowFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond)):e._frameRateIsLow&&(e._frameRateIsLow=!1,e._needsQuietPeriod=!0,e.nominalFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond))}}}function Rpt(e){document[e._hiddenPropertyName]?e.pause():e.unpause()}var CF=Gl;var Bpt=1953029805,Lpt=2917034100;function jY(e,t){if(jY.passThroughDataForTesting)return t;let n=e.byteLength;if(n===0||n%4!==0)throw new de("The length of key must be greater than 0 and a multiple of 4.");let i=new DataView(t),r=i.getUint32(0,!0);if(r===Bpt||r===Lpt)return t;let o=new DataView(e),s=0,a=t.byteLength,c=a-a%8,l=n,f,d=8;for(;s<c;)for(d=(d+8)%24,f=d;s<c&&f<l;)i.setUint32(s,i.getUint32(s,!0)^o.getUint32(f,!0),!0),i.setUint32(s+4,i.getUint32(s+4,!0)^o.getUint32(f+4,!0),!0),s+=8,f+=24;if(s<a)for(f>=l&&(d=(d+8)%24,f=d);s<a;)i.setUint8(s,i.getUint8(s)^o.getUint8(f)),s++,f++}jY.passThroughDataForTesting=!1;var TF=jY;var zpt=Yi(qY(),1);function Npt(e,t){return(e&t)!==0}var yc=Npt;var Fpt=[1,2,4,8],eAe=15,Upt=16,Vpt=64,kpt=128;function Hm(e,t,n,i,r,o){this._bits=e,this.cnodeVersion=t,this.imageryVersion=n,this.terrainVersion=i,this.imageryProvider=r,this.terrainProvider=o,this.ancestorHasTerrain=!1,this.terrainState=void 0}Hm.clone=function(e,t){return u(t)?(t._bits=e._bits,t.cnodeVersion=e.cnodeVersion,t.imageryVersion=e.imageryVersion,t.terrainVersion=e.terrainVersion,t.imageryProvider=e.imageryProvider,t.terrainProvider=e.terrainProvider):t=new Hm(e._bits,e.cnodeVersion,e.imageryVersion,e.terrainVersion,e.imageryProvider,e.terrainProvider),t.ancestorHasTerrain=e.ancestorHasTerrain,t.terrainState=e.terrainState,t};Hm.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()};Hm.prototype.hasSubtree=function(){return yc(this._bits,Upt)};Hm.prototype.hasImagery=function(){return yc(this._bits,Vpt)};Hm.prototype.hasTerrain=function(){return yc(this._bits,kpt)};Hm.prototype.hasChildren=function(){return yc(this._bits,eAe)};Hm.prototype.hasChild=function(e){return yc(this._bits,Fpt[e])};Hm.prototype.getChildBitmask=function(){return this._bits&eAe};var EF=Hm;function Hpt(e){let t=e.length,n=new ArrayBuffer(t),i=new Uint8Array(n);for(let r=0;r<t;++r)i[r]=e.charCodeAt(r);return n}var Gpt=Hpt(`E\xF4\xBD\vy\xE2jE"\x92,\xCDq\xF8IFgQ\0B%\xC6\xE8a,f)\b\xC64\xDCjb%y +wmi\xD6\xF0\x9Ck\x93\xA1\xBDNu\xE0A[\xDF@V\f\xD9\xBBr\x9B\x81|3S\xEEOl\xD4q\xB0{\xC0\x7FEVZ\xADwUe\v3\x92*\xACl5\xC50s\xF83>mF8J\xB4\xDD\xF0.\xDDu\xDA\x8CDt"\xFAa"\f3"So\xAF9D\v\x8C9\xD99L\xB9\xBF\x7F\xAB\\\x8CP_\x9F"ux\xE9\x07q\x91h;\xC1\xC4\x9B\x7F\xF0<VqH\x82'UfYNe\x98u\xA3aF}a?A\0\x9F\xD7\xB44M\xCE\x87F\xB0\xD5\xB8\x8A'{\x8B\xDC+\xBBMg0\xC8\xD1\xF6\\\x8FP\xFA[/F\x9Bn5/'C.\xEB +\f^\xA5s\x1Be4\xE5l.jC'c#U\xA9?q{gC}:\xAF\xCD\xE2TU\x9C\xFDK\xC6\xE2\x9F/(\xED\xCB\\\xC6-f\x07\x88\xA7;/*"N\xB0k.\xDD\r\x95}}G\xBAC\xB2\xB2+>M\xAA>}\xE6\xCEI\x89\xC6\xE6x\fa1-\xA4O\xA5~q \x88\xEC\r1\xE8N\v\0nPh}=\b\r\x95\xA6n\xA3h\x97$[k\xF3#\xF3\xB6s\xB3\r\v@\xC0\x9F\xD8Q]\xFA".j\xDFI\0\xB9\xA0wU\xC6\xEFj\xBF{GL\x7F\x83\xEE\xDC\xDCF\x85\xA9\xADS\x07+S4\x07\xFF\x94Y\xE48\xE81\x83N\xB9XFk\xCB-#\x86\x92p\x005\x88"\xCF1\xB2&/\xE7\xC3u-6,rt\xB0#G\xB7\xD3\xD1&\x857r\xE2\0\x8CD\xCF\xDA3-\xDE\`\x86i#i*|\xCDKQ\r\x95T9w.)\xEA\x1B\xA6P\xA2j\x8FoP\x99\\>T\xFB\xEFP[\v\x07E\x89m(w7\xDB\x8EJfJo\x99 \xE5p\xE2\xB9q~\fmI-z\xFEr\xC7\xF2Y0\x8F\xBB]s\xE5\xC9 \xEAx\xEC \x90\xF0\x8A\x7FB|G\`\xB0\xBD&\xB7q\xB6\xC7\x9F\xD13\x82=\xD3\xAB\xEEc\x99\xC8+S\xA0D\\q\xC6\xCCD2O<\xCA\xC0)=R\xD3aX\xA9}e\xB4\xDC\xCF\r\xF4=\xF1\b\xA9B\xDA# \xD8\xBF^PI\xF8M\xC0\xCBGLO\xF7{+\xD8\xC51\x92;\xB5o\xDCl\r\x92\x88\xD1\x9E\xDB?\xE2\xE9\xDA_\xD4\x84\xE2FaZ\xDEU\xCF\xA4\0\xBE\xFD\xCEg\xF1Ji\x97\xE6 H\xD8]\x7F~\xAEq N\xAE\xC0V\xA9\x91<\x82r\xE7v\xEC)I\xD6]-\x83\xE3\xDB6\xA9;f\x97\x87j\xD5\xB6=P^R\xB9K\xC7sWx\xC9\xF4.Y\x07\x95\x93o\xD0KW>''\xC7\`\xDB;\xED\x9ASD>?\x8D\x92mw\xA2 +\xEB?R\xA8\xC6U^1I7\x85\xF4\xC5&-\xA9\xBF\x8B'T\xDA\xC3j \xE5*x\xB0\xD6\x90pr\xAA\x8Bh\xBD\x88\xF7_H\xB1~\xC0XL?f\xF9>\xE1e\xC0p\xA7\xCF8i\xAF\xF0VldI\x9C'\xADxtO\xC2\x87\xDEV9\0\xDAw\v\xCB-\x1B\x89\xFB5O\xF5\bQ\`\xC1 +ZGM&30x\xDA\xC0\x9CFG\xE2[y\`In7gS +>\xE9\xECF9\xB2\xF14\r\xC6\x84Sun\xE1\fY\xD9\xDE)\x85{II\xA5wy\xBEIV.6\xE7\v:\xBBOb{\xD2M1\x95/\xBD8{\xA8O!\xE1\xECFpv\x95})"x\x88 +\x90\xDD\x9D\\\xDA\xDEQ\xCF\xF0\xFCYRe|3\xDF\xF3H\xDA\xBB*u\xDB\`\xB2\xD4\xFC\xED\x1B\xEC\x7F5\xA8\xFF(1\x07-\xC8\xDC\x88F|\x8A["`);function zu(e){if(this.imageryPresent=!0,this.protoImagery=void 0,this.terrainPresent=!0,this.negativeAltitudeExponentBias=32,this.negativeAltitudeThreshold=P.EPSILON12,this.providers={},this.key=void 0,this._resource=void 0,this._quadPacketVersion=1,this._tileInfo={},this._subtreePromises={},this._readyPromise=Promise.resolve(!0),u(e)){$("GoogleEarthEnterpriseMetadata options.url","GoogleEarthEnterpriseMetadata constructor parmeter resourceOrUrl was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMetadata.fromUrl instead.");let t=e;typeof t!="string"&&!(t instanceof ve)&&(t=e.url);let n=ve.createIfNeeded(t);n.appendForwardSlash(),this._resource=n;let i=this;this._readyPromise=nAe(this).then(function(){return i.getQuadTreePacket("",i._quadPacketVersion)}).then(function(){return!0}).catch(function(r){let o=`An error occurred while accessing ${JY(i,"",1).url}.`;return Promise.reject(new de(o))})}}Object.defineProperties(zu.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},resource:{get:function(){return this._resource}},readyPromise:{get:function(){return $("GoogleEarthEnterpriseMetadata.readyPromise","GoogleEarthEnterpriseMetadata.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMetadata.fromUrl instead."),this._readyPromise}}});zu.fromUrl=async function(e){let t=e;typeof t!="string"&&!(t instanceof ve)&&(t=e.url);let n=ve.createIfNeeded(t);n.appendForwardSlash();let i=new zu;i._resource=n;try{await nAe(i),await i.getQuadTreePacket("",i._quadPacketVersion)}catch(r){let o=`An error occurred while accessing ${JY(i,"",1).url}: ${r}`;throw new de(o)}return i};zu.tileXYToQuadKey=function(e,t,n){let i="";for(let r=n;r>=0;--r){let o=1<<r,s=0;yc(t,o)?yc(e,o)&&(s|=1):(s|=2,yc(e,o)||(s|=1)),i+=s}return i};zu.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let r=i;r>=0;--r){let o=1<<r,s=+e[i-r];yc(s,2)?yc(s,1)||(t|=o):(n|=o,yc(s,1)&&(t|=o))}return{x:t,y:n,level:i}};zu.prototype.isValid=function(e){let t=this.getTileInformationFromQuadKey(e);if(u(t))return t!==null;let n=!0,i=e,r;for(;i.length>1;)if(r=i.substring(i.length-1),i=i.substring(0,i.length-1),t=this.getTileInformationFromQuadKey(i),u(t)){!t.hasSubtree()&&!t.hasChild(parseInt(r))&&(n=!1);break}else if(t===null){n=!1;break}return n};var tAe=new pi("decodeGoogleEarthEnterprisePacket");zu.prototype.getQuadTreePacket=function(e,t,n){t=y(t,1),e=y(e,"");let r=JY(this,e,t,n).fetchArrayBuffer();if(!u(r))return;let o=this._tileInfo,s=this.key;return r.then(function(a){return tAe.scheduleTask({buffer:a,quadKey:e,type:"Metadata",key:s},[a]).then(function(l){let f,d=-1;if(e!==""){d=e.length+1;let m=l[e];f=o[e],f._bits|=m._bits,delete l[e]}let p=Object.keys(l);p.sort(function(m,A){return m.length-A.length});let g=p.length;for(let m=0;m<g;++m){let A=p[m];if(l[A]!==null){let C=EF.clone(l[A]),T=A.length;if(T===d)C.setParent(f);else if(T>1){let E=o[A.substring(0,A.length-1)];C.setParent(E)}o[A]=C}else o[A]=null}})})};zu.prototype.populateSubtree=function(e,t,n,i){let r=zu.tileXYToQuadKey(e,t,n);return KY(this,r,i)};function KY(e,t,n){let i=e._tileInfo,r=t,o=i[r];if(u(o)&&(!o.hasSubtree()||o.hasChildren()))return o;for(;o===void 0&&r.length>1;)r=r.substring(0,r.length-1),o=i[r];let s,a=e._subtreePromises,c=a[r];if(u(c))return c.then(function(){return s=new jr({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),KY(e,t,s)});if(!u(o)||!o.hasSubtree())return Promise.reject(new de(`Couldn't load metadata for tile ${t}`));if(c=e.getQuadTreePacket(r,o.cnodeVersion,n),!!u(c))return a[r]=c,c.then(function(){return s=new jr({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),KY(e,t,s)}).finally(function(){delete a[r]})}zu.prototype.getTileInformation=function(e,t,n){let i=zu.tileXYToQuadKey(e,t,n);return this._tileInfo[i]};zu.prototype.getTileInformationFromQuadKey=function(e){return this._tileInfo[e]};function JY(e,t,n,i){return e._resource.getDerivedResource({url:`flatfile?q2-0${t}-q.${n.toString()}`,request:i})}var YY,XY;function nAe(e){let t=e._resource.getDerivedResource({url:"dbRoot.v5",queryParameters:{output:"proto"}});if(!u(XY)){let n=$t("ThirdParty/google-earth-dbroot-parser.js"),i=window.cesiumGoogleEarthDbRootParser;XY=D0(n).then(function(){YY=window.cesiumGoogleEarthDbRootParser(zpt),u(i)?window.cesiumGoogleEarthDbRootParser=i:delete window.cesiumGoogleEarthDbRootParser})}return XY.then(function(){return t.fetchArrayBuffer()}).then(function(n){let i=YY.EncryptedDbRootProto.decode(new Uint8Array(n)),r=i.encryptionData,o=r.byteOffset,s=o+r.byteLength,a=e.key=r.buffer.slice(o,s);r=i.dbrootData,o=r.byteOffset,s=o+r.byteLength;let c=r.buffer.slice(o,s);return tAe.scheduleTask({buffer:c,type:"DbRoot",key:a},[c])}).then(function(n){let i=YY.DbRootProto.decode(new Uint8Array(n.buffer));if(e.imageryPresent=y(i.imageryPresent,e.imageryPresent),e.protoImagery=i.protoImagery,e.terrainPresent=y(i.terrainPresent,e.terrainPresent),u(i.endSnippet)&&u(i.endSnippet.model)){let a=i.endSnippet.model;e.negativeAltitudeExponentBias=y(a.negativeAltitudeExponentBias,e.negativeAltitudeExponentBias),e.negativeAltitudeThreshold=y(a.compressedNegativeAltitudeThreshold,e.negativeAltitudeThreshold)}u(i.databaseVersion)&&(e._quadPacketVersion=y(i.databaseVersion.quadtreeVersion,e._quadPacketVersion));let r=e.providers,o=y(i.providerInfo,[]),s=o.length;for(let a=0;a<s;++a){let c=o[a],l=c.copyrightString;u(l)&&(r[c.providerId]=new wt(l.value))}}).catch(function(){console.log(`Failed to retrieve ${t.url}. Using defaults.`),e.key=Gpt})}var bh=zu;var iAe=Yi(qY(),1);function ZY(){this._image=new Image}ZY.prototype.isReady=function(){return!0};ZY.prototype.shouldDiscardImage=function(e){return e===this._image};function vC(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=new Wi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new le(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new wt(t)),this._credit=t,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=23,u(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new ZY),this._errorEvent=new ge,this._ready=!1;let n=this,i,r;if(u(e.url)){$("GoogleEarthEnterpriseImageryProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead.");let o=ve.createIfNeeded(e.url);r=new bh(o)}u(e.metadata)&&($("GoogleEarthEnterpriseImageryProvider options.metadata","options.metadata was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead."),r=e.metadata),this._metadata=r,u(r)&&(this._readyPromise=r.readyPromise.then(function(o){if(!r.imageryPresent){let s=new de(`The server ${r.url} doesn't have imagery`);return i=Ai.reportError(i,n,n._errorEvent,s.message,void 0,void 0,void 0,s),Promise.reject(s)}return Ai.reportSuccess(i),n._ready=o,o}).catch(function(o){return i=Ai.reportError(i,n,n._errorEvent,o.message,void 0,void 0,void 0,o),Promise.reject(o)}))}Object.defineProperties(vC.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.ready","GoogleEarthEnterpriseImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead."),this._ready}},readyPromise:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.readyPromise","GoogleEarthEnterpriseImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}},defaultAlpha:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultAlpha","GoogleEarthEnterpriseImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultAlpha","GoogleEarthEnterpriseImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultNightAlpha","GoogleEarthEnterpriseImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultNightAlpha","GoogleEarthEnterpriseImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultDayAlpha","GoogleEarthEnterpriseImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultDayAlpha","GoogleEarthEnterpriseImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultBrightness","GoogleEarthEnterpriseImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultBrightness","GoogleEarthEnterpriseImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultContrast","GoogleEarthEnterpriseImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultContrast","GoogleEarthEnterpriseImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultHue","GoogleEarthEnterpriseImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultHue","GoogleEarthEnterpriseImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultSaturation","GoogleEarthEnterpriseImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultSaturation","GoogleEarthEnterpriseImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultGamma","GoogleEarthEnterpriseImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultGamma","GoogleEarthEnterpriseImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultMinificationFilter","GoogleEarthEnterpriseImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultMinificationFilter","GoogleEarthEnterpriseImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultMagnificationFilter","GoogleEarthEnterpriseImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultMagnificationFilter","GoogleEarthEnterpriseImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});vC.fromMetadata=function(e,t){if(!e.imageryPresent)throw new de(`The server ${e.url} doesn't have imagery`);let n=new vC(t);return n._metadata=e,n._ready=!0,n._readyPromise=Promise.resolve(!0),n};vC.prototype.getTileCredits=function(e,t,n){let i=this._metadata,r=i.getTileInformation(e,t,n);if(u(r)){let o=i.providers[r.imageryProvider];if(u(o))return[o]}};vC.prototype.requestImage=function(e,t,n,i){let r=this._tileDiscardPolicy._image,o=this._metadata,s=bh.tileXYToQuadKey(e,t,n),a=o.getTileInformation(e,t,n);if(!u(a)){if(o.isValid(s)){let l=new jr({throttle:i.throttle,throttleByServer:i.throttleByServer,type:i.type,priorityFunction:i.priorityFunction});o.populateSubtree(e,t,n,l);return}return Promise.resolve(r)}if(!a.hasImagery())return Promise.resolve(r);let c=Wpt(this,a,e,t,n,i).fetchArrayBuffer();if(u(c))return c.then(function(l){TF(o.key,l);let f=new Uint8Array(l),d,p=o.protoImagery;if((!u(p)||!p)&&(d=jpt(f)),!u(d)&&(!u(p)||p)){let g=qpt(f);d=g.imageType,f=g.imageData}return!u(d)||!u(f)?r:SA({uint8Array:f,format:d,flipY:!0})})};vC.prototype.pickFeatures=function(e,t,n,i,r){};function Wpt(e,t,n,i,r,o){let s=bh.tileXYToQuadKey(n,i,r),a=t.imageryVersion;return a=u(a)&&a>0?a:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1-0${s}-i.${a.toString()}`,request:o})}function jpt(e){let t="JFIF";if(e[6]===t.charCodeAt(0)&&e[7]===t.charCodeAt(1)&&e[8]===t.charCodeAt(2)&&e[9]===t.charCodeAt(3))return"image/jpeg";let n="PNG";if(e[1]===n.charCodeAt(0)&&e[2]===n.charCodeAt(1)&&e[3]===n.charCodeAt(2))return"image/png"}function qpt(e){let t=iAe.Reader.create(e),n=t.len,i={};for(;t.pos<n;){let s=t.uint32(),a;switch(s>>>3){case 1:i.imageType=t.uint32();break;case 2:i.imageData=t.bytes();break;case 3:i.alphaType=t.uint32();break;case 4:i.imageAlpha=t.bytes();break;case 5:if(a=i.copyrightIds,u(a)||(a=i.copyrightIds=[]),(s&7)===2){let c=t.uint32()+t.pos;for(;t.pos<c;)a.push(t.uint32())}else a.push(t.uint32());break;default:t.skipType(s&7);break}}let r=i.imageType;if(u(r))switch(r){case 0:i.imageType="image/jpeg";break;case 4:i.imageType="image/png";break;default:throw new de("GoogleEarthEnterpriseImageryProvider: Unsupported image type.")}let o=i.alphaType;return u(o)&&o!==0&&(console.log("GoogleEarthEnterpriseImageryProvider: External alpha not supported."),delete i.alphaType,delete i.imageAlpha),i}var QY=vC;var Ypt=new z(1,1,1,.4),Xpt=new z(0,1,0,.05),Kpt=new z(0,.5,0,.2);function wC(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tilingScheme=u(e.tilingScheme)?e.tilingScheme:new Wi({ellipsoid:e.ellipsoid}),this._cells=y(e.cells,8),this._color=y(e.color,Ypt),this._glowColor=y(e.glowColor,Xpt),this._glowWidth=y(e.glowWidth,6),this._backgroundColor=y(e.backgroundColor,Kpt),this._errorEvent=new ge,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._canvasSize=y(e.canvasSize,256),this._canvas=this._createGridCanvas(),this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(wC.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("GridImageryProvider.ready","GridImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("GridImageryProvider.readyPromise","GridImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}},defaultAlpha:{get:function(){return $("GridImageryProvider.defaultAlpha","GridImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("GridImageryProvider.defaultAlpha","GridImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("GridImageryProvider.defaultNightAlpha","GridImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("GridImageryProvider.defaultNightAlpha","GridImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("GridImageryProvider.defaultDayAlpha","GridImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("GridImageryProvider.defaultDayAlpha","GridImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("GridImageryProvider.defaultBrightness","GridImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("GridImageryProvider.defaultBrightness","GridImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("GridImageryProvider.defaultContrast","GridImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("GridImageryProvider.defaultContrast","GridImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("GridImageryProvider.defaultHue","GridImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("GridImageryProvider.defaultHue","GridImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("GridImageryProvider.defaultSaturation","GridImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("GridImageryProvider.defaultSaturation","GridImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("GridImageryProvider.defaultGamma","GridImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("GridImageryProvider.defaultGamma","GridImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("GridImageryProvider.defaultMinificationFilter","GridImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("GridImageryProvider.defaultMinificationFilter","GridImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("GridImageryProvider.defaultMagnificationFilter","GridImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("GridImageryProvider.defaultMagnificationFilter","GridImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});wC.prototype._drawGrid=function(e){let n=this._canvasSize;for(let i=0;i<=this._cells;++i){let o=1+i/this._cells*(n-1);e.moveTo(o,0),e.lineTo(o,n),e.moveTo(0,o),e.lineTo(n,o)}e.stroke()};wC.prototype._createGridCanvas=function(){let e=document.createElement("canvas");e.width=this._canvasSize,e.height=this._canvasSize;let t=0,n=this._canvasSize,i=e.getContext("2d"),r=this._backgroundColor.toCssColorString();i.fillStyle=r,i.fillRect(t,t,n,n);let o=this._glowColor.toCssColorString();i.strokeStyle=o,i.lineWidth=this._glowWidth,i.strokeRect(t,t,n,n),this._drawGrid(i),i.lineWidth=this._glowWidth*.5,i.strokeRect(t,t,n,n),this._drawGrid(i);let s=this._color.toCssColorString();return i.strokeStyle=s,i.lineWidth=2,i.strokeRect(t,t,n,n),i.lineWidth=1,this._drawGrid(i),e};wC.prototype.getTileCredits=function(e,t,n){};wC.prototype.requestImage=function(e,t,n,i){return Promise.resolve(this._canvas)};wC.prototype.pickFeatures=function(e,t,n,i,r){};var $Y=wC;function eX(e,t){this._parent=e,this._dataProvider=e._dataProvider,this._layer=e._layer,u(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${t}`}):this._resource=this._parent.resource.getDerivedResource({url:t})}Object.defineProperties(eX.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}}});eX.prototype.load=async function(){return this._data=await DC.loadJson(this._resource,this._dataProvider._traceFetches),this._data};var bF=eX;function OS(e,t){this._storageInfo=t,this._parent=e,this._dataProvider=e._dataProvider;let n=`attributes/${t.key}/0`;u(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${n}`}):this._resource=this._parent.resource.getDerivedResource({url:n})}Object.defineProperties(OS.prototype,{resource:{get:function(){return this._resource}},header:{get:function(){return this._header}},values:{get:function(){return u(this._values)&&u(this._values.attributeValues)?this._values.attributeValues:[]}},name:{get:function(){return this._storageInfo.name}}});function Jpt(e){return e==="UInt8"||e==="Int8"?1:e==="UInt16"||e==="Int16"?2:e==="UInt32"||e==="Int32"||e==="Oid32"||e==="Float32"?4:e==="UInt64"||e==="Int64"||e==="Float64"?8:0}OS.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){let n=new DataView(t),i=!0;if(n.getUint8(0)==="{".charCodeAt(0)&&new TextDecoder().decode(t).includes("404")&&(i=!1,console.error(`Failed to load: ${e.resource.url}`)),i){e._data=t;let r=e._parseHeader(n),o=Jpt(e._storageInfo.attributeValues.valueType);o>0&&(r=Math.ceil(r/o)*o),e._parseBody(n,r)}})};OS.prototype._parseValue=function(e,t,n){let i;if(t==="UInt8")i=e.getUint8(n),n+=1;else if(t==="Int8")i=e.getInt8(n),n+=1;else if(t==="UInt16")i=e.getUint16(n,!0),n+=2;else if(t==="Int16")i=e.getInt16(n,!0),n+=2;else if(t==="UInt32")i=e.getUint32(n,!0),n+=4;else if(t==="Oid32")i=e.getUint32(n,!0),n+=4;else if(t==="Int32")i=e.getInt32(n,!0),n+=4;else if(t==="UInt64"){let r=e.getUint32(n,!0),o=e.getUint32(n+4,!0);i=r+Math.pow(2,32)*o,n+=8}else if(t==="Int64"){let r=e.getUint32(n,!0),o=e.getUint32(n+4,!0);o<Math.pow(2,31)?i=r+Math.pow(2,32)*o:i=r+Math.pow(2,32)*(o-Math.pow(2,32)),n+=8}else t==="Float32"?(i=e.getFloat32(n,!0),n+=4):t==="Float64"?(i=e.getFloat64(n,!0),n+=8):t==="String"&&(i=String.fromCharCode(e.getUint8(n)),n+=1);return{value:i,offset:n}};OS.prototype._parseHeader=function(e){let t=0;this._header={};for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n],r=this._parseValue(e,i.valueType,t);this._header[i.property]=r.value,t=r.offset}return t};OS.prototype._parseBody=function(e,t){this._values={};for(let n=0;n<this._storageInfo.ordering.length;n++){let i=this._storageInfo.ordering[n],r=this._storageInfo[i];if(u(r)){this._values[i]=[];for(let o=0;o<this._header.count;++o)if(r.valueType!=="String"){let s=this._parseValue(e,r.valueType,t);this._values[i].push(s.value),t=s.offset}else{let s=this._values.attributeByteCounts[o],a="";for(let c=0;c<s;++c){let l=this._parseValue(e,r.valueType,t);l.value.charCodeAt(0)!==0&&(a+=l.value),t=l.offset}this._values[i].push(a)}}}};var SF=OS;function vF(e,t){let n=e._dataProvider,i=e._layer,r;u(e._nodeIndex)?r=i.resource.getDerivedResource({url:`nodes/${e._data.mesh.geometry.resource}/${t}`}):r=e.resource.getDerivedResource({url:t}),this._parent=e,this._dataProvider=n,this._layer=i,this._resource=r,this._customAttributes=void 0}Object.defineProperties(vF.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},customAttributes:{get:function(){return this._customAttributes}}});vF.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){return e._data=t,t})};var Zpt=new h,Qpt=new h,$pt=new h,e_t=new h,t_t=new h;function tX(e,t,n,i){let r=h.subtract(i,n,Zpt),o=h.cross(r,h.subtract(e,n,Qpt),e_t),s=h.cross(r,h.subtract(t,n,$pt),t_t);return h.dot(o,s)>=0}var n_t=new h,i_t=new h,r_t=new h,o_t=new h,s_t=new h,a_t=new h,c_t=new h,l_t=new h,u_t=new h,f_t=new h;vF.prototype.getClosestPointIndexOnTriangle=function(e,t,n){if(u(this._customAttributes)&&u(this._customAttributes.positions)){let i=new h(e,t,n);i.x-=this._customAttributes.cartesianCenter.x,i.y-=this._customAttributes.cartesianCenter.y,i.z-=this._customAttributes.cartesianCenter.z,Q.multiplyByVector(this._customAttributes.parentRotation,i,i);let r=Number.MAX_VALUE,o,s,a,c,l=this._customAttributes.positions,f=this._customAttributes.indices,d;u(f)?d=f.length:d=l.length/3;for(let p=0;p<d;p++){let g,m,A;u(f)?(g=f[p],m=f[p+1],A=f[p+2]):(g=p*3,m=p*3+1,A=p*3+2);let x=h.fromElements(l[g*3],l[g*3+1],l[g*3+2],n_t),C=h.fromElements(l[m*3],l[m*3+1],l[m*3+2],i_t),T=new h(l[A*3],l[A*3+1],l[A*3+2],r_t);if(!tX(i,x,C,T)||!tX(i,C,x,T)||!tX(i,T,x,C))continue;let E=h.subtract(C,x,o_t),S=h.subtract(T,x,s_t),v=h.cross(E,S,a_t);if(h.magnitude(v)===0)continue;let D=h.normalize(v,c_t),M=h.subtract(i,x,l_t),O=Math.abs(h.dot(M,D));if(O<r){r=O,o=p;let B=h.magnitudeSquared(h.subtract(i,x,M)),L=h.magnitudeSquared(h.subtract(i,C,u_t)),_=h.magnitudeSquared(h.subtract(i,T,f_t));B<L&&B<_?(a=g,c=x,s=B):L<_?(a=m,c=C,s=L):(a=A,c=T,s=_)}}if(u(o))return{index:a,distanceSquared:s,distance:Math.sqrt(s),queriedPosition:i,closestPosition:h.clone(c)}}return{index:-1,distanceSquared:Number.Infinity,distance:Number.Infinity}};vF.prototype._generateGltf=function(e,t,n,i,r,o){let s={pbrMetallicRoughness:{metallicFactor:0},doubleSided:!0,name:"Material"},a=!1,c,l="";if(u(this._parent._data.mesh)&&u(this._layer._data.materialDefinitions)){let A=this._parent._data.mesh.material.definition;if(A>=0&&A<this._layer._data.materialDefinitions.length&&(c=this._layer._data.materialDefinitions[A],s=c,u(s.pbrMetallicRoughness)&&u(s.pbrMetallicRoughness.baseColorTexture))){a=!0,s.pbrMetallicRoughness.baseColorTexture.index=0;let x="0";if(u(this._layer._data.textureSetDefinitions))for(let C=0;C<this._layer._data.textureSetDefinitions.length;C++){let T=this._layer._data.textureSetDefinitions[C];for(let E=0;E<T.formats.length;E++){let S=T.formats[E];if(S.format==="jpg"){x=S.name;break}}}u(this._parent._data.mesh)&&this._parent._data.mesh.material.resource>=0&&(l=this._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.material.resource}/textures/${x}`}).url)}}else u(this._parent._data.textureData)&&(a=!0,l=this._parent.resource.getDerivedResource({url:`${this._parent._data.textureData[0].href}`}).url,s.pbrMetallicRoughness.baseColorTexture={index:0});let f=[],d=[],p=[];return a&&(f=[{sampler:0,source:0}],d=[{uri:l}],p=[{magFilter:9729,minFilter:9986,wrapS:10497,wrapT:10497}]),{scene:0,scenes:[{nodes:e}],nodes:t,meshes:n,buffers:i,bufferViews:r,accessors:o,materials:[s],textures:f,images:d,samplers:p,asset:{version:"2.0"}}};var MS=vF;function Wl(e,t,n){let i,r,o,s;n?(i=0,r=e):(i=e._level+1,r=e._layer),typeof t=="number"?o=t:s=e.resource.getDerivedResource({url:`${t}/`}),this._parent=e,this._dataProvider=e._dataProvider,this._isRoot=n,this._level=i,this._layer=r,this._nodeIndex=o,this._resource=s,this._isLoading=!1,this._tile=void 0,this._data=void 0,this._geometryData=[],this._featureData=[],this._fields={},this._children=[],this._childrenReadyPromise=void 0,this._globalTransform=void 0,this._inverseGlobalTransform=void 0,this._inverseRotationMatrix=void 0}Object.defineProperties(Wl.prototype,{resource:{get:function(){return this._resource}},layer:{get:function(){return this._layer}},parent:{get:function(){return this._parent}},children:{get:function(){return this._children}},geometryData:{get:function(){return this._geometryData}},featureData:{get:function(){return this._featureData}},fields:{get:function(){return this._fields}},tile:{get:function(){return this._tile}},data:{get:function(){return this._data}}});Wl.prototype.load=async function(){let e=this;function t(){if(!e._isRoot){let r=e._create3DTileDefinition();e._tile=new Tf(e._layer._tileset,e._dataProvider.resource,r,e._parent._tile),e._tile._i3sNode=e}}if(!u(this._nodeIndex)){let r=await DC.loadJson(this._resource,this._dataProvider._traceFetches);e._data=r,t();return}let n=await this._layer._getNodeInNodePages(this._nodeIndex);e._data=n;let i;e._isRoot?i="nodes/root/":u(n.mesh)&&(i=`../${n.mesh.geometry.resource}/`),u(i)&&(e._resource=e._parent.resource.getDerivedResource({url:i})),t()};Wl.prototype.loadFields=function(){let e=this._layer._data.attributeStorageInfo,t=this;function n(r,o){let s=new SF(t,r[o]);return t._fields[s._storageInfo.name]=s,s.load()}let i=[];if(u(e))for(let r=0;r<e.length;r++)i.push(n(e,r));return Promise.all(i)};Wl.prototype.getFieldsForPickedPosition=function(e){let t=this.geometryData[0];if(!u(t.customAttributes.featureIndex))return{};let n=t.getClosestPointIndexOnTriangle(e.x,e.y,e.z);if(n.index===-1||n.index>t.customAttributes.featureIndex.length)return{};let i=t.customAttributes.featureIndex[n.index];return this.getFieldsForFeature(i)};Wl.prototype.getFieldsForFeature=function(e){let t={};for(let n in this.fields)if(this.fields.hasOwnProperty(n)){let i=this.fields[n];e>=0&&e<i.values.length&&(t[i.name]=i.values[e])}return t};Wl.prototype._loadChildren=function(){let e=this;if(u(this._childrenReadyPromise))return this._childrenReadyPromise;let t=[];if(u(e._data.children))for(let n=0;n<e._data.children.length;n++){let i=e._data.children[n],r=new Wl(e,y(i.href,i),!1);e._children.push(r),t.push(r.load())}return this._childrenReadyPromise=Promise.all(t).then(function(){for(let n=0;n<e._children.length;n++)e._tile.children.push(e._children[n]._tile)}),this._childrenReadyPromise};Wl.prototype._loadGeometryData=function(){let e=[];if(u(this._data.geometryData))for(let t=0;t<this._data.geometryData.length;t++){let n=new MS(this,this._data.geometryData[t].href);this._geometryData.push(n),e.push(n.load())}else if(u(this._data.mesh)){let t=this._layer._findBestGeometryBuffers(this._data.mesh.geometry.definition,["position","uv0"]),n=`./geometries/${t.bufferIndex}/`,i=new MS(this,n);i._geometryDefinitions=t.definition,i._geometryBufferInfo=t.geometryBufferInfo,this._geometryData.push(i),e.push(i.load())}return Promise.all(e)};Wl.prototype._loadFeatureData=function(){let e=[];if(u(this._data.featureData))for(let t=0;t<this._data.featureData.length;t++){let n=new bF(this,this._data.featureData[t].href);this._featureData.push(n),e.push(n.load())}return Promise.all(e)};Wl.prototype._clearGeometryData=function(){this._geometryData=[]};Wl.prototype._create3DTileDefinition=function(){let e=this._data.obb,t=this._data.mbs;if(!u(e)&&!u(t)){console.error("Failed to load I3S node. Bounding volume is required.");return}let n;if(u(e)?n=me.fromDegrees(e.center[0],e.center[1],e.center[2]):n=me.fromDegrees(t[0],t[1],t[2]),u(this._dataProvider._geoidDataList)&&u(n))for(let C=0;C<this._dataProvider._geoidDataList.length;C++){let T=this._dataProvider._geoidDataList[C],E=T.projection.project(n);if(E.x>T.nativeExtent.west&&E.x<T.nativeExtent.east&&E.y>T.nativeExtent.south&&E.y<T.nativeExtent.north){n.height+=h_t(E.x,E.y,T);break}}let i={},r,o=0;u(e)?(i={box:[0,0,0,e.halfSize[0],0,0,0,e.halfSize[1],0,0,0,e.halfSize[2]]},o=Math.max(Math.max(this._data.obb.halfSize[0],this._data.obb.halfSize[1]),this._data.obb.halfSize[2]),r=re.WGS84.cartographicToCartesian(n)):(i={sphere:[0,0,0,t[3]]},r=re.WGS84.cartographicToCartesian(n),o=this._data.mbs[3]),o*=2;let s=1/0;if(u(this._data.lodThreshold))if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThresholdSQ"){let C=Math.sqrt(this._data.lodThreshold/(Math.PI*.25));s=o/C}else if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThreshold"){let C=this._data.lodThreshold;s=o/C}else console.error("Invalid lodSelectionMetricType in Layer");else if(u(this._data.lodSelection))for(let C=0;C<this._data.lodSelection.length;C++)this._data.lodSelection[C].metricType==="maxScreenThreshold"&&(s=o/this._data.lodSelection[C].maxError);s===1/0&&(s=1e5);let a=s*16,c=new ka(0,0,0),l=Mt.headingPitchRollQuaternion(r,c);u(this._data.obb)&&(l=new Le(this._data.obb.quaternion[0],this._data.obb.quaternion[1],this._data.obb.quaternion[2],this._data.obb.quaternion[3]));let f=Q.fromQuaternion(l),d=Q.inverse(f,new Q),p=new N(f[0],f[1],f[2],0,f[3],f[4],f[5],0,f[6],f[7],f[8],0,r.x,r.y,r.z,1),g=N.inverse(p,new N),m=N.clone(p);u(this._parent._globalTransform)&&N.multiply(p,this._parent._inverseGlobalTransform,m),this._globalTransform=p,this._inverseGlobalTransform=g,this._inverseRotationMatrix=d;let A=[];for(let C=0;C<this._children.length;C++)A.push(this._children[C]._create3DTileDefinition());return{children:A,refine:"REPLACE",boundingVolume:i,transform:[m[0],m[4],m[8],m[12],m[1],m[5],m[9],m[13],m[2],m[6],m[10],m[14],m[3],m[7],m[11],m[15]],content:{uri:u(this._resource)?this._resource.url:void 0},geometricError:a}};Wl.prototype._createI3SDecoderTask=async function(e,t){let n=t.geometryData._parent._data,i=t.geometryData._parent._inverseRotationMatrix,r=0,o=0,s=0;u(n.obb)?(r=n.obb.center[0],o=n.obb.center[1],s=n.obb.center[2]):u(n.mbs)&&(r=n.mbs[0],o=n.mbs[1],s=n.mbs[2]);let a=Q.fromRotationX(-P.PI_OVER_TWO),c=new Q;Q.multiply(a,i,c);let l=me.fromDegrees(r,o,s),f=re.WGS84.cartographicToCartesian(l),d={binaryData:t.geometryData._data,featureData:u(t.featureData)&&u(t.featureData[0])?t.featureData[0].data:void 0,schema:t.defaultGeometrySchema,bufferInfo:t.geometryData._geometryBufferInfo,ellipsoidRadiiSquare:re.WGS84.radiiSquared,url:t.url,geoidDataList:t.geometryData._dataProvider._geoidDataList,cartographicCenter:l,cartesianCenter:f,parentRotation:c},p=[];return e.scheduleTask(d,p)};Wl.prototype._createContentURL=async function(){let e={scene:0,scenes:[{nodes:[0]}],nodes:[{name:"singleNode"}],meshes:[],buffers:[],bufferViews:[],accessors:[],materials:[],textures:[],images:[],samplers:[],asset:{version:"2.0"}},t=await this._dataProvider.getDecoderTaskProcessor(),n=[this._loadGeometryData()];this._dataProvider.legacyVersion16&&n.push(this._loadFeatureData());let i=this;return Promise.all(n).then(function(){let r=Promise.resolve();if(u(i._geometryData)&&i._geometryData.length>0){let o={geometryData:i._geometryData[0],featureData:i._featureData,defaultGeometrySchema:i._layer._data.store.defaultGeometrySchema,url:i._geometryData[0].resource.url,tile:i._tile},s=i._createI3SDecoderTask(t,o);if(!u(s))return;r=s.then(function(a){e=o.geometryData._generateGltf(a.meshData.nodesInScene,a.meshData.nodes,a.meshData.meshes,a.meshData.buffers,a.meshData.bufferViews,a.meshData.accessors),i._geometryData[0]._customAttributes=a.meshData._customAttributes})}return r.then(function(){let o=i._dataProvider._binarizeGltf(e),s=new Blob([o],{type:"application/binary"});return URL.createObjectURL(s)})})};Tf.prototype._hookedRequestContent=Tf.prototype.requestContent;Tf.prototype.requestContent=function(){if(!this.tileset._isI3STileSet)return this._hookedRequestContent();if(!this._isLoading)return this._isLoading=!0,this._i3sNode._createContentURL().then(e=>{if(!u(e)){this._isLoading=!1;return}return this._contentResource=new ve({url:e}),this._hookedRequestContent()}).then(e=>(this._isLoading=!1,e))};function d_t(e,t,n,i,r,o){let s=n*(1-e)+i*e,a=r*(1-e)+o*e;return s*(1-t)+a*t}function oH(e,t,n,i){let r=e+t*n;return i[r]}function h_t(e,t,n){let i=n.nativeExtent,r=(e-i.west)/(i.east-i.west)*(n.width-1),o=(t-i.south)/(i.north-i.south)*(n.height-1),s=Math.floor(r),a=Math.floor(o);r-=s,o-=a;let c=s<n.width?s+1:s,l=a<n.height?a+1:a;a=n.height-1-a,l=n.height-1-l;let f=oH(s,a,n.width,n.buffer),d=oH(c,a,n.width,n.buffer),p=oH(s,l,n.width,n.buffer),g=oH(c,l,n.width,n.buffer),m=d_t(r,o,f,d,p,g);return m=m*n.scale+n.offset,m}Object.defineProperties(Tf.prototype,{i3sNode:{get:function(){return this._i3sNode}}});var RS=Wl;function Xf(e,t,n){this._dataProvider=e,u(t.href)||(t.href=`./layers/${n}`);let i=this._dataProvider.resource.getUrlComponent(),r="";i.match(/layers\/\d/)?r=`${i}`.replace(/\/+$/,""):r=`${i}`.replace(/\/?$/,"/").concat(`${t.href}`),this._version=t.store.version;let o=this._version.split(".");this._majorVersion=parseInt(o[0]),this._minorVersion=o.length>1?parseInt(o[1]):0,this._resource=new ve({url:r}),this._resource.setQueryParameters(this._dataProvider.resource.queryParameters),this._resource.appendForwardSlash(),this._data=t,this._rootNode=void 0,this._nodePages={},this._nodePageFetches={},this._extent=void 0,this._tileset=void 0,this._geometryDefinitions=void 0,this._computeGeometryDefinitions(!0),this._computeExtent()}Object.defineProperties(Xf.prototype,{resource:{get:function(){return this._resource}},rootNode:{get:function(){return this._rootNode}},tileset:{get:function(){return this._tileset}},data:{get:function(){return this._data}},version:{get:function(){return this._version}},majorVersion:{get:function(){return this._majorVersion}},minorVersion:{get:function(){return this._minorVersion}},legacyVersion16:{get:function(){if(u(this.version))return this.majorVersion<1||this.majorVersion===1&&this.minorVersion<=6}}});Xf.prototype.load=async function(){if(this._data.spatialReference.wkid!==4326)throw new de(`Unsupported spatial reference: ${this._data.spatialReference.wkid}`);if(await this._dataProvider.loadGeoidData(),await this._loadRootNode(),await this._create3DTileset(),this._rootNode._tile=this._tileset._root,this._tileset._root._i3sNode=this._rootNode,this.legacyVersion16)return this._rootNode._loadChildren()};Xf.prototype._computeGeometryDefinitions=function(e){if(this._geometryDefinitions=[],u(this._data.geometryDefinitions))for(let t=0;t<this._data.geometryDefinitions.length;t++){let n=[],i=this._data.geometryDefinitions[t].geometryBuffers;for(let r=0;r<i.length;r++){let o=i[r],s=[],a=!1;if(u(o.compressedAttributes)&&e){a=!0;let c=o.compressedAttributes.attributes;for(let l=0;l<c.length;l++)s.push(c[l])}else for(let c in o)c!=="offset"&&s.push(c);n.push({compressed:a,attributes:s,index:i.indexOf(o)})}n.sort(function(r,o){return r.compressed&&!o.compressed?-1:!r.compressed&&o.compressed?1:r.attributes.length-o.attributes.length}),this._geometryDefinitions.push(n)}};Xf.prototype._findBestGeometryBuffers=function(e,t){let n=this._geometryDefinitions[e];if(u(n))for(let i=0;i<n.length;++i){let r=n[i],o=!1,s=r.attributes;for(let a=0;a<t.length;a++)if(!s.includes(t[a])){o=!0;break}if(!o)return{bufferIndex:r.index,definition:n,geometryBufferInfo:r}}return 0};Xf.prototype._loadRootNode=function(){if(u(this._data.nodePages)){let e=0;u(this._data.nodePages.rootIndex)&&(e=this._data.nodePages.rootIndex),this._rootNode=new RS(this,e,!0)}else this._rootNode=new RS(this,this._data.store.rootNode,!0);return this._rootNode.load()};Xf.prototype._getNodeInNodePages=function(e){let t=Math.floor(e/this._data.nodePages.nodesPerPage),n=e%this._data.nodePages.nodesPerPage,i=this;return this._loadNodePage(t).then(function(){return i._nodePages[t][n]})};Xf._fetchJson=function(e){return e.fetchJson()};Xf.prototype._loadNodePage=function(e){let t=this;if(!u(this._nodePageFetches[e])){let n=this.resource.getDerivedResource({url:`nodepages/${e}/`}),i=Xf._fetchJson(n).then(function(r){return u(r.error)&&r.error.code!==200?Promise.reject(r.error):(t._nodePages[e]=r.nodes,r)});this._nodePageFetches[e]=i}return this._nodePageFetches[e]};Xf.prototype._computeExtent=function(){u(this._data.fullExtent)?this._extent=le.fromDegrees(this._data.fullExtent.xmin,this._data.fullExtent.ymin,this._data.fullExtent.xmax,this._data.fullExtent.ymax):u(this._data.store.extent)&&(this._extent=le.fromDegrees(this._data.store.extent[0],this._data.store.extent[1],this._data.store.extent[2],this._data.store.extent[3]))};Xf.prototype._create3DTileset=async function(){let e={asset:{version:"1.0"},geometricError:Number.MAX_VALUE,root:this._rootNode._create3DTileDefinition()},t=new Blob([JSON.stringify(e)],{type:"application/json"}),n=URL.createObjectURL(t),i={};if(u(this._dataProvider._cesium3dTilesetOptions))for(let r in this._dataProvider._cesium3dTilesetOptions)this._dataProvider._cesium3dTilesetOptions.hasOwnProperty(r)&&(i[r]=this._dataProvider._cesium3dTilesetOptions[r]);this._tileset=await Ea.fromUrl(n,i),this._tileset.show=this._dataProvider.show,this._tileset._isI3STileSet=!0,this._tileset.tileUnload.addEventListener(function(r){r._i3sNode._clearGeometryData(),URL.revokeObjectURL(r._contentResource._url),r._contentResource=r._i3sNode.resource}),this._tileset.tileVisible.addEventListener(function(r){u(r._i3sNode)&&r._i3sNode._loadChildren()})};var i0=Xf;var oAe=Yi(rAe(),1);function rs(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._show=y(e.show,!0),this._geoidTiledTerrainProvider=e.geoidTiledTerrainProvider,this._traceFetches=y(e.traceFetches,!1),this._cesium3dTilesetOptions=y(e.cesium3dTilesetOptions,y.EMPTY_OBJECT),this._layers=[],this._data=void 0,this._extent=void 0,this._geoidDataPromise=void 0,this._geoidDataList=void 0,this._decoderTaskProcessor=void 0,this._taskProcessorReadyPromise=void 0,u(e.url)&&($("I3SDataProvider options.url","I3SDataProvider constructor parameter options.url was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use I3SDataProvider.fromUrl instead."),this._readyPromise=void 0,this._ready=!1,this._resource=ve.createIfNeeded(e.url),this._load())}Object.defineProperties(rs.prototype,{name:{get:function(){return this._name}},show:{get:function(){return this._show},set:function(e){this._show=e;for(let t=0;t<this._layers.length;t++)u(this._layers[t]._tileset)&&(this._layers[t]._tileset.show=this._show)}},traceFetches:{get:function(){return this._traceFetches},set:function(e){this._traceFetches=e}},geoidTiledTerrainProvider:{get:function(){return this._geoidTiledTerrainProvider}},layers:{get:function(){return this._layers}},data:{get:function(){return this._data}},extent:{get:function(){return this._extent}},readyPromise:{get:function(){return $("I3SDataProvider.readyPromise","I3SDataProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use I3SDataProvider.fromUrl instead."),this._readyPromise}},ready:{get:function(){return $("I3SDataProvider.ready","I3SDataProvider.ready was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use I3SDataProvider.fromUrl instead."),this._ready}},resource:{get:function(){return this._resource}}});rs.prototype.destroy=function(){for(let e=0;e<this._layers.length;e++)u(this._layers[e]._tileset)&&this._layers[e]._tileset.destroy();return ue(this)};rs.prototype.isDestroyed=function(){return!1};rs.prototype.update=function(e){for(let t=0;t<this._layers.length;t++)u(this._layers[t]._tileset)&&this._layers[t]._tileset.update(e)};rs.prototype.prePassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)u(this._layers[t]._tileset)&&this._layers[t]._tileset.prePassesUpdate(e)};rs.prototype.postPassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)u(this._layers[t]._tileset)&&this._layers[t]._tileset.postPassesUpdate(e)};rs.prototype.updateForPass=function(e,t){for(let n=0;n<this._layers.length;n++)u(this._layers[n]._tileset)&&this._layers[n]._tileset.updateForPass(e,t)};rs.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ve.createIfNeeded(e),i=await rs.loadJson(n),r=new rs(t);if(r._resource=n,r._data=i,u(i.layers))for(let s=0;s<i.layers.length;s++){let a=new i0(r,i.layers[s],s);r._layers.push(a)}else{let s=new i0(r,i,i.id);r._layers.push(s)}r._computeExtent();let o=[];for(let s=0;s<r._layers.length;s++)o.push(r._layers[s].load());return await Promise.all(o),r._ready=!0,r._readyPromise=Promise.resolve(r),r};rs.prototype._load=function(){let e=this;return this._readyPromise=rs.loadJson(this._resource,this._traceFetches).then(function(t){if(e._data=t,u(t.layers))for(let i=0;i<t.layers.length;i++){let r=new i0(e,t.layers[i],i);e._layers.push(r)}else{let i=new i0(e,t,t.id);e._layers.push(i)}e._computeExtent();let n=[];for(let i=0;i<e._layers.length;i++)n.push(e._layers[i].load());return Promise.all(n).then(function(){return e._ready=!0,e})}),this._readyPromise};rs._fetchJson=function(e){return e.fetchJson()};rs.loadJson=async function(e,t){t&&console.log("I3S FETCH:",e.url);let n=await rs._fetchJson(e);if(u(n.error)){if(console.error("Failed to fetch I3S ",e.url),u(n.error.message)&&console.error(n.error.message),u(n.error.details))for(let i=0;i<n.error.details.length;i++)console.log(n.error.details[i]);throw new de(n.error)}return n};rs.prototype._loadBinary=function(e){return this._traceFetches&&console.log("I3S FETCH:",e.url),e.fetchArrayBuffer()};rs.prototype._binarizeGltf=function(e){let n=new TextEncoder().encode(JSON.stringify(e)),i=new Uint8Array(n.byteLength+20),r={magic:new Uint8Array(i.buffer,0,4),version:new Uint32Array(i.buffer,4,1),length:new Uint32Array(i.buffer,8,1),chunkLength:new Uint32Array(i.buffer,12,1),chunkType:new Uint32Array(i.buffer,16,1),chunkData:new Uint8Array(i.buffer,20,n.byteLength)};return r.magic[0]="g".charCodeAt(),r.magic[1]="l".charCodeAt(),r.magic[2]="T".charCodeAt(),r.magic[3]="F".charCodeAt(),r.version[0]=2,r.length[0]=i.byteLength,r.chunkLength[0]=n.byteLength,r.chunkType[0]=1313821514,r.chunkData.set(n),i};rs.prototype.getDecoderTaskProcessor=function(){if(u(this._taskProcessorReadyPromise))return this._taskProcessorReadyPromise;if(!u(this._decoderTaskProcessor)){let e=new pi("decodeI3S");this._taskProcessorReadyPromise=e.initWebAssemblyModule({modulePath:"ThirdParty/Workers/draco_decoder_nodejs.js",wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(()=>e),this._decoderTaskProcessor=e}return this._taskProcessorReadyPromise};function m_t(e,t){return __t(e,t)}var p_t=new H;function __t(e,t){let n=e.tilingScheme,i=[],r={},o=e._lodCount,s=me.fromRadians(t.west,t.north),a=me.fromRadians(t.east,t.south),c=n.positionToTileXY(s,o),l=n.positionToTileXY(a,o);for(let d=c.x;d<=l.x;d++)for(let p=c.y;p<=l.y;p++){let g=H.fromElements(d,p,p_t),m=g.toString();if(!r.hasOwnProperty(m)){let A={x:g.x,y:g.y,level:o,tilingScheme:n,terrainProvider:e,positions:[]};r[m]=A,i.push(A)}}let f=[];for(let d=0;d<i.length;++d){let p=i[d],g=p.terrainProvider.requestTileGeometry(p.x,p.y,p.level);f.push(g)}return Promise.all(f).then(function(d){let p=[];for(let g=0;g<d.length;g++){let m={tilingScheme:n,x:i[g].x,y:i[g].y,level:i[g].level},A=d[g],x="Geographic";n._projection instanceof Oi&&(x="WebMercator");let C={projectionType:x,projection:n._projection,nativeExtent:n.tileXYToNativeRectangle(m.x,m.y,m.level),height:A._height,width:A._width,scale:A._structure.heightScale,offset:A._structure.heightOffset};if(A._encoding===Ff.LERC){let T=oAe.default.decode(A._buffer);C.buffer=T.pixels[0]}else C.buffer=A._buffer;p.push(C)}return p})}async function g_t(e){let t=e._geoidTiledTerrainProvider;if(!u(t)){console.log("No Geoid Terrain service provided - no geoid conversion will be performed.");return}try{let n=await m_t(t,e._extent);e._geoidDataList=n}catch{console.log("Error retrieving Geoid Terrain tiles - no geoid conversion will be performed.")}}rs.prototype.loadGeoidData=async function(){return u(this._geoidDataPromise)?this._geoidDataPromise:(this._geoidDataPromise=g_t(this),this._geoidDataPromise)};rs.prototype._computeExtent=function(){let e;for(let t=0;t<this._layers.length;t++)if(u(this._layers[t]._extent)){let n=this._layers[t]._extent;u(e)?le.union(e,n,e):e=le.clone(n)}this._extent=e};var DC=rs;var sAe=Object.freeze({UNLOADED:0,RECEIVING:1,RECEIVED:2,LOADED:3,FAILED:4,UNAVAILABLE:5});function aH(e,t){this.spatialNode=e,this.keyframe=t,this.state=sAe.UNLOADED,this.metadatas=[],this.megatextureIndex=-1,this.priority=-Number.MAX_VALUE,this.highPriorityFrameNumber=-1}aH.priorityComparator=function(e,t){return e.priority-t.priority};aH.searchComparator=function(e,t){return e.keyframe-t.keyframe};aH.LoadState=sAe;var Qi=aH;function aAe(){}Object.defineProperties(aAe.prototype,{color:{get:fe.throwInstantiationError},intensity:{get:fe.throwInstantiationError}});var nX=aAe;var y_t=/\/$/,cAe=new wt('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function BS(e){e=y(e,y.EMPTY_OBJECT);let t=e.styleId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=ve.createIfNeeded(y(e.url,"https://api.mapbox.com/styles/v1/"));this._styleId=t,this._accessToken=n;let r=y(e.tilesize,512);this._tilesize=r;let o=y(e.username,"mapbox");this._username=o;let s=u(e.scaleFactor)?"@2x":"",a=i.getUrlComponent();y_t.test(a)||(a+="/"),a+=`${this._username}/${t}/tiles/${this._tilesize}/{z}/{x}/{y}${s}`,i.url=a,i.setQueryParameters({access_token:n});let c;u(e.credit)?(c=e.credit,typeof c=="string"&&(c=new wt(c))):c=cAe,this._resource=i,this._imageryProvider=new Vs({url:i,credit:c,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle}),this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(BS.prototype,{url:{get:function(){return this._imageryProvider.url}},ready:{get:function(){return $("MapboxStyleImageryProvider.ready","MapboxStyleImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._imageryProvider.ready}},readyPromise:{get:function(){return $("MapboxStyleImageryProvider.readyPromise","MapboxStyleImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._imageryProvider.readyPromise}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},defaultAlpha:{get:function(){return $("MapboxStyleImageryProvider.defaultAlpha","MapboxStyleImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("MapboxStyleImageryProvider.defaultAlpha","MapboxStyleImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("MapboxStyleImageryProvider.defaultNightAlpha","MapboxStyleImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("MapboxStyleImageryProvider.defaultNightAlpha","MapboxStyleImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("MapboxStyleImageryProvider.defaultDayAlpha","MapboxStyleImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("MapboxStyleImageryProvider.defaultDayAlpha","MapboxStyleImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("MapboxStyleImageryProvider.defaultBrightness","MapboxStyleImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("MapboxStyleImageryProvider.defaultBrightness","MapboxStyleImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("MapboxStyleImageryProvider.defaultContrast","MapboxStyleImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("MapboxStyleImageryProvider.defaultContrast","MapboxStyleImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("MapboxStyleImageryProvider.defaultHue","MapboxStyleImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("MapboxStyleImageryProvider.defaultHue","MapboxStyleImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("MapboxStyleImageryProvider.defaultSaturation","MapboxStyleImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("MapboxStyleImageryProvider.defaultSaturation","MapboxStyleImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("MapboxStyleImageryProvider.defaultGamma","MapboxStyleImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("MapboxStyleImageryProvider.defaultGamma","MapboxStyleImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("MapboxStyleImageryProvider.defaultMinificationFilter","MapboxStyleImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("MapboxStyleImageryProvider.defaultMinificationFilter","MapboxStyleImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("MapboxStyleImageryProvider.defaultMagnificationFilter","MapboxStyleImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("MapboxStyleImageryProvider.defaultMagnificationFilter","MapboxStyleImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});BS.prototype.getTileCredits=function(e,t,n){};BS.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};BS.prototype.pickFeatures=function(e,t,n,i,r){return this._imageryProvider.pickFeatures(e,t,n,i,r)};BS._defaultCredit=cAe;var iX=BS;function r0(e,t,n,i,r){i===tn.UNSIGNED_SHORT&&(i=tn.FLOAT32);let o=e.floatingPointTexture;if(i===tn.FLOAT32&&!o)throw new de("Floating point texture not supported");let s;i===tn.FLOAT32||i===tn.FLOAT64?s=Ke.FLOAT:i===tn.UINT8&&(s=Ke.UNSIGNED_BYTE);let a;n===1?a=e.webgl2?at.RED:at.LUMINANCE:n===2?a=e.webgl2?at.RG:at.LUMINANCE_ALPHA:n===3?a=at.RGB:n===4&&(a=at.RGBA);let c=512*1024*1024,l=128*1024*1024;r=Math.min(y(r,l),c);let f=zt.maximumTextureSize,d=tn.getSizeInBytes(i),p=Math.floor(r/(n*d)),g=Math.min(f,P.previousPowerOfTwo(Math.floor(Math.sqrt(p)))),m=Math.ceil(Math.sqrt(t.x)),A=Math.ceil(t.z/m),x=m*t.x,C=A*t.y,T=Math.floor(g/x),E=Math.floor(g/C);if(T===0||E===0)throw new de("Tileset is too large to fit into megatexture");this.channelCount=n,this.componentType=i,this.voxelCountPerTile=h.clone(t,new h),this.maximumTileCount=T*E,this.regionCountPerMegatexture=new H(T,E),this.voxelCountPerRegion=new H(x,C),this.sliceCountPerRegion=new H(m,A),this.voxelSizeUv=new H(1/g,1/g),this.sliceSizeUv=new H(t.x/g,t.y/g),this.regionSizeUv=new H(x/g,C/g),this.texture=new Rt({context:e,pixelFormat:a,pixelDatatype:s,flipY:!1,width:g,height:g,sampler:new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:sn.LINEAR,magnificationFilter:Ti.LINEAR})});let S=tn.toComponentDatatype(i);this.tileVoxelDataTemp=X.createTypedArray(S,x*C*n),this.nodes=new Array(this.maximumTileCount);for(let v=0;v<this.maximumTileCount;v++)this.nodes[v]=new A_t(v);for(let v=0;v<this.maximumTileCount;v++){let D=this.nodes[v];D.previousNode=v>0?this.nodes[v-1]:void 0,D.nextNode=v<this.maximumTileCount-1?this.nodes[v+1]:void 0}this.occupiedList=void 0,this.emptyList=this.nodes[0],this.occupiedCount=0}function A_t(e){this.index=e,this.nextNode=void 0,this.previousNode=void 0}r0.prototype.add=function(e){if(this.isFull())throw new fe("Trying to add when there are no empty spots");let t=this.emptyList;this.emptyList=this.emptyList.nextNode,u(this.emptyList)&&(this.emptyList.previousNode=void 0),t.nextNode=this.occupiedList,u(t.nextNode)&&(t.nextNode.previousNode=t),this.occupiedList=t;let n=t.index;return this.writeDataToTexture(n,e),this.occupiedCount++,n};r0.prototype.remove=function(e){if(e<0||e>=this.maximumTileCount)throw new fe("Megatexture index out of bounds");let t=this.nodes[e];u(t.previousNode)&&(t.previousNode.nextNode=t.nextNode),u(t.nextNode)&&(t.nextNode.previousNode=t.previousNode),t.nextNode=this.emptyList,u(t.nextNode)&&(t.nextNode.previousNode=t),t.previousNode=void 0,this.emptyList=t,this.occupiedCount--};r0.prototype.isFull=function(){return this.emptyList===void 0};r0.getApproximateTextureMemoryByteLength=function(e,t,n,i){i===tn.UNSIGNED_SHORT&&(i=tn.FLOAT32);let r=tn.getSizeInBytes(i),o=e*t.x*t.y*t.z,s=Math.ceil(Math.sqrt(t.z)),a=Math.ceil(t.z/s),c=s*t.x,l=a*t.y,f=P.previousPowerOfTwo(Math.floor(Math.sqrt(o)));for(;;){let p=Math.floor(f/c),g=Math.floor(f/l);if(p*g>=e)break;f*=2}return f*f*n*r};r0.prototype.writeDataToTexture=function(e,t){let n=t.constructor===Uint16Array?new Float32Array(t):t,i=this.voxelCountPerTile,r=this.sliceCountPerRegion,o=this.voxelCountPerRegion,s=this.channelCount,a=this.tileVoxelDataTemp;for(let A=0;A<i.z;A++){let x=A%r.x*i.x,C=Math.floor(A/r.x)*i.y;for(let T=0;T<i.y;T++)for(let E=0;E<i.x;E++){let S=A*i.y*i.x+T*i.x+E,v=(C+T)*o.x+(x+E);for(let D=0;D<s;D++)a[v*s+D]=n[S*s+D]}}let c=this.regionCountPerMegatexture,l=o.x,f=o.y,d=e%c.x*o.x,p=Math.floor(e/c.x)*o.y,m={source:{arrayBufferView:a,width:l,height:f},xOffset:d,yOffset:p};this.texture.copyFrom(m)};r0.prototype.isDestroyed=function(){return!1};r0.prototype.destroy=function(){return this.texture=this.texture&&this.texture.destroy(),ue(this)};var LS=r0;function rX(e){}rX.prototype.isReady=function(){return!0};rX.prototype.shouldDiscardImage=function(e){return!1};var oX=rX;var x_t=new wt("MapQuest, Open Street Map and contributors, CC-BY-SA");function cH(e){e=y(e,y.EMPTY_OBJECT);let t=ve.createIfNeeded(y(e.url,"https://a.tile.openstreetmap.org/"));t.appendForwardSlash(),t.url+=`{z}/{x}/{y}.${y(e.fileExtension,"png")}`;let n=new Fo({ellipsoid:e.ellipsoid}),i=256,r=256,o=y(e.minimumLevel,0),s=e.maximumLevel,a=y(e.rectangle,n.rectangle),c=n.positionToTileXY(le.southwest(a),o),l=n.positionToTileXY(le.northeast(a),o),f=(Math.abs(l.x-c.x)+1)*(Math.abs(l.y-c.y)+1),d=y(e.credit,x_t);typeof d=="string"&&(d=new wt(d)),Vs.call(this,{url:t,credit:d,tilingScheme:n,tileWidth:i,tileHeight:r,minimumLevel:o,maximumLevel:s,rectangle:a})}u(Object.create)&&(cH.prototype=Object.create(Vs.prototype),cH.prototype.constructor=cH);var IC=cH;var C_t=new H(1,1);function sX(e){e=y(e,y.EMPTY_OBJECT),this.mass=y(e.mass,1),this.position=h.clone(y(e.position,h.ZERO)),this.velocity=h.clone(y(e.velocity,h.ZERO)),this.life=y(e.life,Number.MAX_VALUE),this.image=e.image,this.startColor=z.clone(y(e.startColor,z.WHITE)),this.endColor=z.clone(y(e.endColor,z.WHITE)),this.startScale=y(e.startScale,1),this.endScale=y(e.endScale,1),this.imageSize=H.clone(y(e.imageSize,C_t)),this._age=0,this._normalizedAge=0,this._billboard=void 0}Object.defineProperties(sX.prototype,{age:{get:function(){return this._age}},normalizedAge:{get:function(){return this._normalizedAge}}});var lAe=new h;sX.prototype.update=function(e,t){return h.multiplyByScalar(this.velocity,e,lAe),h.add(this.position,lAe,this.position),u(t)&&t(this,e),this._age+=e,this.life===Number.MAX_VALUE?this._normalizedAge=0:this._normalizedAge=this._age/this.life,this._age<=this.life};var NS=sX;function uAe(e){e=y(e,y.EMPTY_OBJECT),this.time=y(e.time,0),this.minimum=y(e.minimum,0),this.maximum=y(e.maximum,50),this._complete=!1}Object.defineProperties(uAe.prototype,{complete:{get:function(){return this._complete}}});var aX=uAe;function fAe(e){}fAe.prototype.emit=function(e){fe.throwInstantiationError()};var cX=fAe;var dAe=new H(1,1);function wF(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.updateCallback=e.updateCallback,this.loop=y(e.loop,!0),this.image=y(e.image,void 0);let t=e.emitter;u(t)||(t=new _F(.5)),this._emitter=t,this._bursts=e.bursts,this._modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this._emitterModelMatrix=N.clone(y(e.emitterModelMatrix,N.IDENTITY)),this._matrixDirty=!0,this._combinedMatrix=new N,this._startColor=z.clone(y(e.color,y(e.startColor,z.WHITE))),this._endColor=z.clone(y(e.color,y(e.endColor,z.WHITE))),this._startScale=y(e.scale,y(e.startScale,1)),this._endScale=y(e.scale,y(e.endScale,1)),this._emissionRate=y(e.emissionRate,5),this._minimumSpeed=y(e.speed,y(e.minimumSpeed,1)),this._maximumSpeed=y(e.speed,y(e.maximumSpeed,1)),this._minimumParticleLife=y(e.particleLife,y(e.minimumParticleLife,5)),this._maximumParticleLife=y(e.particleLife,y(e.maximumParticleLife,5)),this._minimumMass=y(e.mass,y(e.minimumMass,1)),this._maximumMass=y(e.mass,y(e.maximumMass,1)),this._minimumImageSize=H.clone(y(e.imageSize,y(e.minimumImageSize,dAe))),this._maximumImageSize=H.clone(y(e.imageSize,y(e.maximumImageSize,dAe))),this._sizeInMeters=y(e.sizeInMeters,!1),this._lifetime=y(e.lifetime,Number.MAX_VALUE),this._billboardCollection=void 0,this._particles=[],this._particlePool=[],this._previousTime=void 0,this._currentTime=0,this._carryOver=0,this._complete=new ge,this._isComplete=!1,this._updateParticlePool=!0,this._particleEstimate=0}Object.defineProperties(wF.prototype,{emitter:{get:function(){return this._emitter},set:function(e){this._emitter=e}},bursts:{get:function(){return this._bursts},set:function(e){this._bursts=e,this._updateParticlePool=!0}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!N.equals(this._modelMatrix,e),N.clone(e,this._modelMatrix)}},emitterModelMatrix:{get:function(){return this._emitterModelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!N.equals(this._emitterModelMatrix,e),N.clone(e,this._emitterModelMatrix)}},startColor:{get:function(){return this._startColor},set:function(e){z.clone(e,this._startColor)}},endColor:{get:function(){return this._endColor},set:function(e){z.clone(e,this._endColor)}},startScale:{get:function(){return this._startScale},set:function(e){this._startScale=e}},endScale:{get:function(){return this._endScale},set:function(e){this._endScale=e}},emissionRate:{get:function(){return this._emissionRate},set:function(e){this._emissionRate=e,this._updateParticlePool=!0}},minimumSpeed:{get:function(){return this._minimumSpeed},set:function(e){this._minimumSpeed=e}},maximumSpeed:{get:function(){return this._maximumSpeed},set:function(e){this._maximumSpeed=e}},minimumParticleLife:{get:function(){return this._minimumParticleLife},set:function(e){this._minimumParticleLife=e}},maximumParticleLife:{get:function(){return this._maximumParticleLife},set:function(e){this._maximumParticleLife=e,this._updateParticlePool=!0}},minimumMass:{get:function(){return this._minimumMass},set:function(e){this._minimumMass=e}},maximumMass:{get:function(){return this._maximumMass},set:function(e){this._maximumMass=e}},minimumImageSize:{get:function(){return this._minimumImageSize},set:function(e){this._minimumImageSize=e}},maximumImageSize:{get:function(){return this._maximumImageSize},set:function(e){this._maximumImageSize=e}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters=e}},lifetime:{get:function(){return this._lifetime},set:function(e){this._lifetime=e}},complete:{get:function(){return this._complete}},isComplete:{get:function(){return this._isComplete}}});function T_t(e){let t=e._emissionRate,n=e._maximumParticleLife,i=0,r=e._bursts;if(u(r)){let d=r.length;for(let p=0;p<d;++p)i+=r[p].maximum}let o=e._billboardCollection,s=e.image,a=Math.ceil(t*n+i),c=e._particles,l=e._particlePool,f=Math.max(a-c.length-l.length,0);for(let d=0;d<f;++d){let p=new NS;p._billboard=o.add({image:s,show:!1}),l.push(p)}e._particleEstimate=a}function E_t(e){let t=e._particlePool.pop();return u(t)||(t=new NS),t}function b_t(e,t){e._particlePool.push(t)}function S_t(e){let t=e._particles,n=e._particlePool,i=e._billboardCollection,r=t.length,o=n.length,s=e._particleEstimate,a=o-Math.max(s-r-o,0);for(let c=a;c<o;++c){let l=n[c];i.remove(l._billboard)}n.length=a}function v_t(e){u(e._billboard)&&(e._billboard.show=!1)}function hAe(e,t){let n=t._billboard;u(n)||(n=t._billboard=e._billboardCollection.add({image:t.image})),n.width=t.imageSize.x,n.height=t.imageSize.y,n.position=t.position,n.sizeInMeters=e.sizeInMeters,n.show=!0;let i=P.lerp(t.startColor.red,t.endColor.red,t.normalizedAge),r=P.lerp(t.startColor.green,t.endColor.green,t.normalizedAge),o=P.lerp(t.startColor.blue,t.endColor.blue,t.normalizedAge),s=P.lerp(t.startColor.alpha,t.endColor.alpha,t.normalizedAge);n.color=new z(i,r,o,s),n.scale=P.lerp(t.startScale,t.endScale,t.normalizedAge)}function w_t(e,t){t.startColor=z.clone(e._startColor,t.startColor),t.endColor=z.clone(e._endColor,t.endColor),t.startScale=e._startScale,t.endScale=e._endScale,t.image=e.image,t.life=P.randomBetween(e._minimumParticleLife,e._maximumParticleLife),t.mass=P.randomBetween(e._minimumMass,e._maximumMass),t.imageSize.x=P.randomBetween(e._minimumImageSize.x,e._maximumImageSize.x),t.imageSize.y=P.randomBetween(e._minimumImageSize.y,e._maximumImageSize.y),t._normalizedAge=0,t._age=0;let n=P.randomBetween(e._minimumSpeed,e._maximumSpeed);h.multiplyByScalar(t.velocity,n,t.velocity),e._particles.push(t)}function D_t(e,t){if(e._isComplete)return 0;t=P.mod(t,e._lifetime);let n=t*e._emissionRate,i=Math.floor(n);if(e._carryOver+=n-i,e._carryOver>1&&(i++,e._carryOver-=1),u(e.bursts)){let r=e.bursts.length;for(let o=0;o<r;o++){let s=e.bursts[o],a=e._currentTime;u(s)&&!s._complete&&a>s.time&&(i+=P.randomBetween(s.minimum,s.maximum),s._complete=!0)}}return i}var lH=new h;wF.prototype.update=function(e){if(!this.show)return;u(this._billboardCollection)||(this._billboardCollection=new lu),this._updateParticlePool&&(T_t(this),this._updateParticlePool=!1);let t=0;this._previousTime&&(t=ee.secondsDifference(e.time,this._previousTime)),t<0&&(t=0);let n=this._particles,i=this._emitter,r=this.updateCallback,o,s,a=n.length;for(o=0;o<a;++o)s=n[o],s.update(t,r)?hAe(this,s):(v_t(s),b_t(this,s),n[o]=n[a-1],--o,--a);n.length=a;let c=D_t(this,t);if(c>0&&u(i)){this._matrixDirty&&(this._combinedMatrix=N.multiply(this.modelMatrix,this.emitterModelMatrix,this._combinedMatrix),this._matrixDirty=!1);let l=this._combinedMatrix;for(o=0;o<c;o++)s=E_t(this),this._emitter.emit(s),h.add(s.position,s.velocity,lH),N.multiplyByPoint(l,lH,lH),s.position=N.multiplyByPoint(l,s.position,s.position),h.subtract(lH,s.position,s.velocity),h.normalize(s.velocity,s.velocity),w_t(this,s),hAe(this,s)}if(this._billboardCollection.update(e),this._previousTime=ee.clone(e.time,this._previousTime),this._currentTime+=t,this._lifetime!==Number.MAX_VALUE&&this._currentTime>this._lifetime)if(this.loop){if(this._currentTime=P.mod(this._currentTime,this._lifetime),this.bursts){let l=this.bursts.length;for(o=0;o<l;o++)this.bursts[o]._complete=!1}}else this._isComplete=!0,this._complete.raiseEvent(this);e.frameNumber%120===0&&S_t(this)};wF.prototype.isDestroyed=function(){return!1};wF.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),ue(this)};var lX=wF;var _Ae=Yi(a3(),1);function I_t(e,t,n){return` float clipDistance = clip(gl_FragCoord, ${e}, ${t}); + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = ${n}.rgb; + float clippingPlanesEdgeWidth = ${n}.a; + if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) + { + out_FragColor = clippingPlanesEdgeColor; + } +`}var DF=I_t;var P_t={modifyFragmentShader:function(t){return t=ke.replaceMain(t,"czm_splitter_main"),t+=`uniform float czm_splitDirection; +void main() +{ +#ifndef SHADOW_MAP + if (czm_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (czm_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif + czm_splitter_main(); +} +`,t},addUniforms:function(t,n){n.czm_splitDirection=function(){return t.splitDirection}}},FS=P_t;var PC={NEEDS_DECODE:0,DECODING:1,READY:2,FAILED:3};function IF(e){this._parsedContent=void 0,this._drawCommand=void 0,this._isTranslucent=!1,this._styleTranslucent=!1,this._constantColor=z.clone(z.DARKGRAY),this._highlightColor=z.clone(z.WHITE),this._pointSize=1,this._rtcCenter=void 0,this._quantizedVolumeScale=void 0,this._quantizedVolumeOffset=void 0,this._styleableShaderAttributes=void 0,this._isQuantized=!1,this._isOctEncoded16P=!1,this._isRGB565=!1,this._hasColors=!1,this._hasNormals=!1,this._hasBatchIds=!1,this._decodingState=PC.READY,this._dequantizeInShader=!0,this._isQuantizedDraco=!1,this._isOctEncodedDraco=!1,this._quantizedRange=0,this._octEncodedRange=0,this.backFaceCulling=!1,this._backFaceCulling=!1,this.normalShading=!0,this._normalShading=!0,this._opaqueRenderState=void 0,this._translucentRenderState=void 0,this._mode=void 0,this._ready=!1,this._pointsLength=0,this._geometryByteLength=0,this._vertexShaderLoaded=e.vertexShaderLoaded,this._fragmentShaderLoaded=e.fragmentShaderLoaded,this._uniformMapLoaded=e.uniformMapLoaded,this._batchTableLoaded=e.batchTableLoaded,this._pickIdLoaded=e.pickIdLoaded,this._opaquePass=y(e.opaquePass,be.OPAQUE),this._cull=y(e.cull,!0),this.style=void 0,this._style=void 0,this.styleDirty=!1,this.modelMatrix=N.clone(N.IDENTITY),this._modelMatrix=N.clone(N.IDENTITY),this.time=0,this.shadows=yn.ENABLED,this._boundingSphere=void 0,this.clippingPlanes=void 0,this.isClipped=!1,this.clippingPlanesDirty=!1,this.clippingPlanesOriginMatrix=void 0,this.attenuation=!1,this._attenuation=!1,this.geometricError=0,this.geometricErrorScale=1,this.maximumAttenuation=this._pointSize,this.splitDirection=y(e.splitDirection,kc.NONE),this._splittingEnabled=!1,this._error=void 0,O_t(this,e)}Object.defineProperties(IF.prototype,{pointsLength:{get:function(){return this._pointsLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}},color:{get:function(){return z.clone(this._highlightColor)},set:function(e){this._highlightColor=z.clone(e,this._highlightColor)}},boundingSphere:{get:function(){if(u(this._drawCommand))return this._drawCommand.boundingVolume},set:function(e){this._boundingSphere=ae.clone(e,this._boundingSphere)}}});function O_t(e,t){let n=WA.parse(t.arrayBuffer,t.byteOffset);if(e._parsedContent=n,e._rtcCenter=n.rtcCenter,e._hasNormals=n.hasNormals,e._hasColors=n.hasColors,e._hasBatchIds=n.hasBatchIds,e._isTranslucent=n.isTranslucent,!n.hasBatchIds&&u(n.batchTableBinary)&&(n.styleableProperties=Ep.getBinaryProperties(n.pointsLength,n.batchTableJson,n.batchTableBinary)),u(n.draco)){let a=n.draco;e._decodingState=PC.NEEDS_DECODE,a.dequantizeInShader=e._dequantizeInShader}let i=n.positions;u(i)&&(e._isQuantized=i.isQuantized,e._quantizedVolumeScale=i.quantizedVolumeScale,e._quantizedVolumeOffset=i.quantizedVolumeOffset,e._quantizedRange=i.quantizedRange);let r=n.normals;u(r)&&(e._isOctEncoded16P=r.octEncoded);let o=n.colors;u(o)&&(u(o.constantColor)&&(e._constantColor=z.clone(o.constantColor,e._constantColor),e._hasColors=!1),e._isRGB565=o.isRGB565);let s=n.batchIds;u(n.batchIds)&&(s.name="BATCH_ID",s.semantic="BATCH_ID",s.setIndex=void 0),n.hasBatchIds&&e._batchTableLoaded(n.batchLength,n.batchTableJson,n.batchTableBinary),e._pointsLength=n.pointsLength}var M_t=new h,R_t=new h,B_t=new h,mAe,uH;function L_t(e){if(!u(uH)){mAe=new _Ae.default(0),uH=new Array(e);for(let t=0;t<e;++t)uH[t]=mAe.random()}return uH}function N_t(e){let n=e.length/3,i=Math.min(n,20),r=L_t(20),o=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=h.fromElements(o,o,o,M_t),c=h.fromElements(s,s,s,R_t);for(let f=0;f<i;++f){let d=Math.floor(r[f]*n),p=h.unpack(e,d*3,B_t);h.minimumByComponent(a,p,a),h.maximumByComponent(c,p,c)}let l=ae.fromCornerPoints(a,c);return l.radius+=P.EPSILON2,l}function pAe(e,t){let n=X.fromTypedArray(e);return n===X.INT||n===X.UNSIGNED_INT||n===X.DOUBLE?(Ot("Cast pnts property to floats",`Point cloud property "${t}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),new Float32Array(e)):e}var F_t=new se,U_t=new se,V_t=new z,gAe=0,fH=1,mX=2,yAe=3,k_t=4,uX=new N,z_t=new N;function H_t(e,t){let n=t.context,i=e._parsedContent,r=e._pointsLength,o=i.positions,s=i.colors,a=i.normals,c=i.batchIds,l=i.styleableProperties,f=u(l),d=e._isQuantized,p=e._isQuantizedDraco,g=e._isOctEncoded16P,m=e._isOctEncodedDraco,A=e._quantizedRange,x=e._octEncodedRange,C=e._isRGB565,T=e._isTranslucent,E=e._hasColors,S=e._hasNormals,v=e._hasBatchIds,D,M,O=[],B={};if(e._styleableShaderAttributes=B,f){let V=k_t;for(let G in l)if(l.hasOwnProperty(G)){let U=l[G],Y=pAe(U.typedArray,G);D=U.componentCount,M=X.fromTypedArray(Y);let W=ht.createVertexBuffer({context:n,typedArray:Y,usage:Fe.STATIC_DRAW});e._geometryByteLength+=W.sizeInBytes;let Z={index:V,vertexBuffer:W,componentsPerAttribute:D,componentDatatype:M,normalize:!1,offsetInBytes:0,strideInBytes:0};O.push(Z),B[G]={location:V,componentCount:D},++V}}let L=ht.createVertexBuffer({context:n,typedArray:o.typedArray,usage:Fe.STATIC_DRAW});e._geometryByteLength+=L.sizeInBytes;let _;E&&(_=ht.createVertexBuffer({context:n,typedArray:s.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=_.sizeInBytes);let b;S&&(b=ht.createVertexBuffer({context:n,typedArray:a.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=b.sizeInBytes);let w;v&&(c.typedArray=pAe(c.typedArray,"batchIds"),w=ht.createVertexBuffer({context:n,typedArray:c.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=w.sizeInBytes);let I=[];if(d?M=X.UNSIGNED_SHORT:p?M=A<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT:M=X.FLOAT,I.push({index:gAe,vertexBuffer:L,componentsPerAttribute:3,componentDatatype:M,normalize:!1,offsetInBytes:0,strideInBytes:0}),e._cull&&(d||p?e._boundingSphere=ae.fromCornerPoints(h.ZERO,e._quantizedVolumeScale):e._boundingSphere=N_t(o.typedArray)),E)if(C)I.push({index:fH,vertexBuffer:_,componentsPerAttribute:1,componentDatatype:X.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0});else{let V=T?4:3;I.push({index:fH,vertexBuffer:_,componentsPerAttribute:V,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0})}S&&(g?(D=2,M=X.UNSIGNED_BYTE):m?(D=2,M=x<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT):(D=3,M=X.FLOAT),I.push({index:mX,vertexBuffer:b,componentsPerAttribute:D,componentDatatype:M,normalize:!1,offsetInBytes:0,strideInBytes:0})),v&&I.push({index:yAe,vertexBuffer:w,componentsPerAttribute:1,componentDatatype:X.fromTypedArray(c.typedArray),normalize:!1,offsetInBytes:0,strideInBytes:0}),f&&(I=I.concat(O));let R=new oi({context:n,attributes:I}),F={depthTest:{enabled:!0}},k={depthTest:{enabled:!0},depthMask:!1,blending:un.ALPHA_BLEND};e._opaquePass===be.CESIUM_3D_TILE&&(F.stencilTest=Ft.setCesium3DTileBit(),F.stencilMask=Ft.CESIUM_3D_TILE_MASK,k.stencilTest=Ft.setCesium3DTileBit(),k.stencilMask=Ft.CESIUM_3D_TILE_MASK),e._opaqueRenderState=Ve.fromCache(F),e._translucentRenderState=Ve.fromCache(k),e._drawCommand=new nt({boundingVolume:new ae,cull:e._cull,modelMatrix:new N,primitiveType:Be.POINTS,vertexArray:R,count:r,shaderProgram:void 0,uniformMap:void 0,renderState:T?e._translucentRenderState:e._opaqueRenderState,pass:T?be.TRANSLUCENT:e._opaquePass,owner:e,castShadows:!1,receiveShadows:!1,pickId:e._pickIdLoaded()})}function G_t(e,t){let n=t.context,i=e._isQuantized,r=e._isQuantizedDraco,o=e._isOctEncodedDraco,s={u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier:function(){let a=F_t;if(a.x=e._attenuation?e.maximumAttenuation:e._pointSize,a.x*=t.pixelRatio,a.y=e.time,e._attenuation){let c=t.camera.frustum,l;t.mode===ne.SCENE2D||c instanceof en?l=Number.POSITIVE_INFINITY:l=n.drawingBufferHeight/t.camera.frustum.sseDenominator,a.z=e.geometricError*e.geometricErrorScale,a.w=l}return a},u_highlightColor:function(){return e._highlightColor},u_constantColor:function(){return e._constantColor},u_clippingPlanes:function(){let a=e.clippingPlanes;return e.isClipped?a.texture:n.defaultTexture},u_clippingPlanesEdgeStyle:function(){let a=e.clippingPlanes;if(!u(a))return z.TRANSPARENT;let c=z.clone(a.edgeColor,V_t);return c.alpha=a.edgeWidth,c},u_clippingPlanesMatrix:function(){let a=e.clippingPlanes;if(!u(a))return N.IDENTITY;let c=y(e.clippingPlanesOriginMatrix,e._modelMatrix);N.multiply(n.uniformState.view3D,c,uX);let l=N.multiply(uX,a.modelMatrix,uX);return N.inverseTranspose(l,z_t)}};FS.addUniforms(e,s),(i||r||o)&&(s=_t(s,{u_quantizedVolumeScaleAndOctEncodedRange:function(){let a=U_t;if(u(e._quantizedVolumeScale)){let c=h.clone(e._quantizedVolumeScale,a);h.divideByScalar(c,e._quantizedRange,a)}return a.w=e._octEncodedRange,a}})),u(e._uniformMapLoaded)&&(s=e._uniformMapLoaded(s)),e._drawCommand.uniformMap=s}function fX(e,t){let n=/czm_3dtiles_property_(\d+)/g,i=n.exec(e);for(;i!==null;){let r=parseInt(i[1]);t.indexOf(r)===-1&&t.push(r),i=n.exec(e)}}function dX(e,t){e=e.slice(e.indexOf(` +`));let n=/czm_3dtiles_builtin_property_(\w+)/g,i=n.exec(e);for(;i!==null;){let r=i[1];t.indexOf(r)===-1&&t.push(r),i=n.exec(e)}}function hX(e,t){let n=e.numberOfAttributes;for(let i=0;i<n;++i){let r=e.getAttribute(i);if(r.index===t)return r}}var W_t={POSITION:"czm_3dtiles_builtin_property_POSITION",POSITION_ABSOLUTE:"czm_3dtiles_builtin_property_POSITION_ABSOLUTE",COLOR:"czm_3dtiles_builtin_property_COLOR",NORMAL:"czm_3dtiles_builtin_property_NORMAL"};function j_t(e,t,n){let i,r,o,s=t.context,a=u(n),c=e._isQuantized,l=e._isQuantizedDraco,f=e._isOctEncoded16P,d=e._isOctEncodedDraco,p=e._isRGB565,g=e._isTranslucent,m=e._hasColors,A=e._hasNormals,x=e._hasBatchIds,C=e._backFaceCulling,T=e._normalShading,E=e._drawCommand.vertexArray,S=e.clippingPlanes,v=e._attenuation,D,M,O,B=g,L=We(W_t),_={},b=e._styleableShaderAttributes;for(r in b)b.hasOwnProperty(r)&&(o=b[r],L[r]=`czm_3dtiles_property_${o.location}`,_[o.location]=o);if(a){let oe={translucent:!1},Ae="(vec3 czm_3dtiles_builtin_property_POSITION, vec3 czm_3dtiles_builtin_property_POSITION_ABSOLUTE, vec4 czm_3dtiles_builtin_property_COLOR, vec3 czm_3dtiles_builtin_property_NORMAL)";D=n.getColorShaderFunction(`getColorFromStyle${Ae}`,L,oe),M=n.getShowShaderFunction(`getShowFromStyle${Ae}`,L,oe),O=n.getPointSizeShaderFunction(`getPointSizeFromStyle${Ae}`,L,oe),u(D)&&oe.translucent&&(B=!0)}e._styleTranslucent=B;let w=u(D),I=u(M),R=u(O),F=e.isClipped,k=[],V=[];w&&(fX(D,k),dX(D,V)),I&&(fX(M,k),dX(M,V)),R&&(fX(O,k),dX(O,V));let G=V.indexOf("COLOR")>=0,U=V.indexOf("NORMAL")>=0;if(U&&!A)throw new de("Style references the NORMAL semantic but the point cloud does not have normals");for(r in b)if(b.hasOwnProperty(r)){o=b[r];let oe=k.indexOf(o.location)>=0,Ae=hX(E,o.location);Ae.enabled=oe}let Y=m&&(!w||G);if(m){let oe=hX(E,fH);oe.enabled=Y}let W=A&&(T||C||U);if(A){let oe=hX(E,mX);oe.enabled=W}let Z={a_position:gAe};Y&&(Z.a_color=fH),W&&(Z.a_normal=mX),x&&(Z.a_batchId=yAe);let j="",K=k.length;for(i=0;i<K;++i){let oe=k[i];o=_[oe];let Ae=o.componentCount,he=`czm_3dtiles_property_${oe}`,Se;Ae===1?Se="float":Se=`vec${Ae}`,j+=`in ${Se} ${he}; +`,Z[he]=o.location}G_t(e,t);let J=`in vec3 a_position; +out vec4 v_color; +uniform vec4 u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier; +uniform vec4 u_constantColor; +uniform vec4 u_highlightColor; +`;J+=`float u_pointSize; +float tiles3d_tileset_time; +`,v&&(J+=`float u_geometricError; +float u_depthMultiplier; +`),J+=j,Y&&(g?J+=`in vec4 a_color; +`:p?J+=`in float a_color; +const float SHIFT_RIGHT_11 = 1.0 / 2048.0; +const float SHIFT_RIGHT_5 = 1.0 / 32.0; +const float SHIFT_LEFT_11 = 2048.0; +const float SHIFT_LEFT_5 = 32.0; +const float NORMALIZE_6 = 1.0 / 64.0; +const float NORMALIZE_5 = 1.0 / 32.0; +`:J+=`in vec3 a_color; +`),W&&(f||d?J+=`in vec2 a_normal; +`:J+=`in vec3 a_normal; +`),x&&(J+=`in float a_batchId; +`),(c||l||d)&&(J+=`uniform vec4 u_quantizedVolumeScaleAndOctEncodedRange; +`),w&&(J+=D),I&&(J+=M),R&&(J+=O),J+=`void main() +{ + u_pointSize = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.x; + tiles3d_tileset_time = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.y; +`,v&&(J+=` u_geometricError = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.z; + u_depthMultiplier = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.w; +`),Y?g?J+=` vec4 color = a_color; +`:p?J+=` float compressed = a_color; + float r = floor(compressed * SHIFT_RIGHT_11); + compressed -= r * SHIFT_LEFT_11; + float g = floor(compressed * SHIFT_RIGHT_5); + compressed -= g * SHIFT_LEFT_5; + float b = compressed; + vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5); + vec4 color = vec4(rgb, 1.0); +`:J+=` vec4 color = vec4(a_color, 1.0); +`:J+=` vec4 color = u_constantColor; +`,c||l?J+=` vec3 position = a_position * u_quantizedVolumeScaleAndOctEncodedRange.xyz; +`:J+=` vec3 position = a_position; +`,J+=` vec3 position_absolute = vec3(czm_model * vec4(position, 1.0)); +`,W?(f?J+=` vec3 normal = czm_octDecode(a_normal); +`:d?J+=` vec3 normal = czm_octDecode(a_normal, u_quantizedVolumeScaleAndOctEncodedRange.w).zxy; +`:J+=` vec3 normal = a_normal; +`,J+=` vec3 normalEC = czm_normal * normal; +`):J+=` vec3 normal = vec3(1.0); +`,w&&(J+=` color = getColorFromStyle(position, position_absolute, color, normal); +`),I&&(J+=` float show = float(getShowFromStyle(position, position_absolute, color, normal)); +`),R?J+=` gl_PointSize = getPointSizeFromStyle(position, position_absolute, color, normal) * czm_pixelRatio; +`:v?J+=` vec4 positionEC = czm_modelView * vec4(position, 1.0); + float depth = -positionEC.z; + gl_PointSize = min((u_geometricError / depth) * u_depthMultiplier, u_pointSize); +`:J+=` gl_PointSize = u_pointSize; +`,J+=` color = color * u_highlightColor; +`,W&&T&&(J+=` float diffuseStrength = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC); + diffuseStrength = max(diffuseStrength, 0.4); + color.xyz *= diffuseStrength * czm_lightColor; +`),J+=` v_color = color; + gl_Position = czm_modelViewProjection * vec4(position, 1.0); +`,W&&C&&(J+=` float visible = step(-normalEC.z, 0.0); + gl_Position *= visible; + gl_PointSize *= visible; +`),I&&(J+=` gl_Position.w *= float(show); + gl_PointSize *= float(show); +`),J+=`} +`;let _e=`in vec4 v_color; +`;F&&(_e+=`uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +`,_e+=` +`,_e+=B_(S,s),_e+=` +`),_e+=`void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +`,F&&(_e+=DF("u_clippingPlanes","u_clippingPlanesMatrix","u_clippingPlanesEdgeStyle")),_e+=`} +`,e.splitDirection!==kc.NONE&&(_e=FS.modifyFragmentShader(_e)),u(e._vertexShaderLoaded)&&(J=e._vertexShaderLoaded(J)),u(e._fragmentShaderLoaded)&&(_e=e._fragmentShaderLoaded(_e));let xe=e._drawCommand;u(xe.shaderProgram)&&xe.shaderProgram.destroy(),xe.shaderProgram=Xt.fromCache({context:s,vertexShaderSource:J,fragmentShaderSource:_e,attributeLocations:Z});try{xe.shaderProgram._bind()}catch{throw new de("Error generating style shader: this may be caused by a type mismatch, index out-of-bounds, or other syntax error.")}}function q_t(e,t){if(e._decodingState===PC.READY)return!1;if(e._decodingState===PC.NEEDS_DECODE){let n=e._parsedContent,i=n.draco,r=Op.decodePointCloud(i,t);u(r)&&(e._decodingState=PC.DECODING,r.then(function(o){e._decodingState=PC.READY;let s=u(o.POSITION)?o.POSITION.array:void 0,a=u(o.RGB)?o.RGB.array:void 0,c=u(o.RGBA)?o.RGBA.array:void 0,l=u(o.NORMAL)?o.NORMAL.array:void 0,f=u(o.BATCH_ID)?o.BATCH_ID.array:void 0,d=u(s)&&u(o.POSITION.data.quantization),p=u(l)&&u(o.NORMAL.data.quantization);if(d){let x=o.POSITION.data.quantization,C=x.range;e._quantizedVolumeScale=h.fromElements(C,C,C),e._quantizedVolumeOffset=h.unpack(x.minValues),e._quantizedRange=(1<<x.quantizationBits)-1,e._isQuantizedDraco=!0}p&&(e._octEncodedRange=(1<<o.NORMAL.data.quantization.quantizationBits)-1,e._isOctEncodedDraco=!0);let g=n.styleableProperties,m=i.batchTableProperties;for(let x in m)if(m.hasOwnProperty(x)){let C=o[x];u(g)||(g={}),g[x]={typedArray:C.array,componentCount:C.data.componentsPerAttribute}}u(s)&&(n.positions={typedArray:s});let A=y(c,a);u(A)&&(n.colors={typedArray:A}),u(l)&&(n.normals={typedArray:l}),u(f)&&(n.batchIds={typedArray:f}),n.styleableProperties=g}).catch(function(o){e._decodingState=PC.FAILED,e._error=o}))}return!0}var Y_t=new se,X_t=new h;IF.prototype.update=function(e){let t=e.context;if(u(this._error)){let l=this._error;throw this._error=void 0,l}if(q_t(this,t))return;let i=!1,r=!N.equals(this._modelMatrix,this.modelMatrix);if(this._mode!==e.mode&&(this._mode=e.mode,r=!0),u(this._drawCommand)||(H_t(this,e),r=!0,i=!0,this._ready=!0,this._parsedContent=void 0),r){N.clone(this.modelMatrix,this._modelMatrix);let l=this._drawCommand.modelMatrix;if(N.clone(this._modelMatrix,l),u(this._rtcCenter)&&N.multiplyByTranslation(l,this._rtcCenter,l),u(this._quantizedVolumeOffset)&&N.multiplyByTranslation(l,this._quantizedVolumeOffset,l),e.mode!==ne.SCENE3D){let d=e.mapProjection,p=N.getColumn(l,3,Y_t);se.equals(p,se.UNIT_W)||Mt.basisTo2D(d,l,l)}let f=this._drawCommand.boundingVolume;if(ae.clone(this._boundingSphere,f),this._cull){let d=f.center;N.multiplyByPoint(l,d,d);let p=N.getScale(l,X_t);f.radius*=h.maximumComponent(p)}}this.clippingPlanesDirty&&(this.clippingPlanesDirty=!1,i=!0),this._attenuation!==this.attenuation&&(this._attenuation=this.attenuation,i=!0),this.backFaceCulling!==this._backFaceCulling&&(this._backFaceCulling=this.backFaceCulling,i=!0),this.normalShading!==this._normalShading&&(this._normalShading=this.normalShading,i=!0),(this._style!==this.style||this.styleDirty)&&(this._style=this.style,this.styleDirty=!1,i=!0);let o=this.splitDirection!==kc.NONE;this._splittingEnabled!==o&&(this._splittingEnabled=o,i=!0),i&&j_t(this,e,this._style),this._drawCommand.castShadows=yn.castShadows(this.shadows),this._drawCommand.receiveShadows=yn.receiveShadows(this.shadows);let s=this._highlightColor.alpha<1||this._constantColor.alpha<1||this._styleTranslucent;this._drawCommand.renderState=s?this._translucentRenderState:this._opaqueRenderState,this._drawCommand.pass=s?be.TRANSLUCENT:this._opaquePass;let a=e.commandList,c=e.passes;(c.render||c.pick)&&a.push(this._drawCommand)};IF.prototype.isDestroyed=function(){return!1};IF.prototype.destroy=function(){let e=this._drawCommand;return u(e)&&(e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),ue(this)};var PF=IF;function Hu(){fe.throwInstantiationError()}Hu.computeDefaultLevelZeroMaximumGeometricError=function(e){return e.ellipsoid.maximumRadius*2*Math.PI*.25/(65*e.getNumberOfXTilesAtLevel(0))};Object.defineProperties(Hu.prototype,{quadtree:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},ready:{get:fe.throwInstantiationError},tilingScheme:{get:fe.throwInstantiationError},errorEvent:{get:fe.throwInstantiationError}});Hu.prototype.update=fe.throwInstantiationError;Hu.prototype.beginUpdate=fe.throwInstantiationError;Hu.prototype.endUpdate=fe.throwInstantiationError;Hu.prototype.getLevelMaximumGeometricError=fe.throwInstantiationError;Hu.prototype.loadTile=fe.throwInstantiationError;Hu.prototype.computeTileVisibility=fe.throwInstantiationError;Hu.prototype.showTileThisFrame=fe.throwInstantiationError;Hu.prototype.computeDistanceToTile=fe.throwInstantiationError;Hu.prototype.isDestroyed=fe.throwInstantiationError;Hu.prototype.destroy=fe.throwInstantiationError;var pX=Hu;function Kf(e,t,n,i,r,o,s){this.children=void 0,this.parent=r,this.level=e,this.x=t,this.y=n,this.z=i,this.keyframeNodes=[],this.renderableKeyframeNodes=[],this.renderableKeyframeNodeLerp=0,this.renderableKeyframeNodePrevious=void 0,this.renderableKeyframeNodeNext=void 0,this.orientedBoundingBox=new On,this.approximateVoxelSize=0,this.screenSpaceError=0,this.visitedFrameNumber=-1,this.computeBoundingVolumes(o,s)}var K_t=new h;Kf.prototype.computeBoundingVolumes=function(e,t){this.orientedBoundingBox=e.computeOrientedBoundingBoxForTile(this.level,this.x,this.y,this.z,this.orientedBoundingBox);let n=Q.getScale(this.orientedBoundingBox.halfAxes,K_t),i=2*h.maximumComponent(n);this.approximateVoxelSize=i/h.minimumComponent(t)};Kf.prototype.constructChildNodes=function(e,t){let{level:n,x:i,y:r,z:o}=this,s=i*2,a=r*2,c=o*2,l=a+1,f=s+1,d=c+1,p=n+1,g=[[p,s,a,c],[p,f,a,c],[p,s,l,c],[p,f,l,c],[p,s,a,d],[p,f,a,d],[p,s,l,d],[p,f,l,d]];this.children=g.map(([m,A,x,C])=>new Kf(m,A,x,C,this,e,t))};Kf.prototype.visibility=function(e,t){let n=this.orientedBoundingBox;return e.cullingVolume.computeVisibilityWithPlaneMask(n,t)};Kf.prototype.computeScreenSpaceError=function(e,t){let n=this.orientedBoundingBox,i=Math.sqrt(n.distanceSquaredTo(e));i=Math.max(i,P.EPSILON7);let r=this.approximateVoxelSize,o=t*(r/i);this.screenSpaceError=o};var AAe={keyframe:0};function OF(e,t){return AAe.keyframe=e,Pr(t,AAe,Qi.searchComparator)}Kf.prototype.computeSurroundingRenderableKeyframeNodes=function(e){let t=this,n=t.level,i=Math.floor(e),r=Math.ceil(e),o,s,a=+Number.MAX_VALUE,c=+Number.MAX_VALUE;for(;u(t);){let{renderableKeyframeNodes:d}=t;if(d.length>=1){let p=J_t(i,d),g=d[p],m=r===i||i<g.keyframe?p:Math.min(p+1,d.length-1),A=d[m],x=i-g.keyframe,C=xAe(n-t.level,x);C<a&&(a=C,o=g);let T=A.keyframe-r,E=xAe(n-t.level,T);if(E<c&&(c=E,s=A),x===0&&T===0)break}t=t.parent}if(this.renderableKeyframeNodePrevious=o,this.renderableKeyframeNodeNext=s,!u(o)||!u(s))return;let l=o.keyframe,f=s.keyframe;this.renderableKeyframeNodeLerp=l===f?0:P.clamp((e-l)/(f-l),0,1)};function J_t(e,t){let n=OF(e,t);return n<0?P.clamp(~n-1,0,t.length-1):n}function xAe(e,t){let n=Math.exp(e*4),i=t>=0?1:-200;return e*n+t*i}Kf.prototype.isVisited=function(e){return this.visitedFrameNumber===e};Kf.prototype.createKeyframeNode=function(e){let t=OF(e,this.keyframeNodes);if(t<0){t=~t;let n=new Qi(this,e);this.keyframeNodes.splice(t,0,n)}};Kf.prototype.destroyKeyframeNode=function(e,t){let n=e.keyframe,i=OF(n,this.keyframeNodes);if(i<0)throw new fe("Keyframe node does not exist.");if(this.keyframeNodes.splice(i,1),e.megatextureIndex!==-1){for(let o=0;o<t.length;o++)t[o].remove(e.megatextureIndex);let r=OF(n,this.renderableKeyframeNodes);if(r<0)throw new fe("Renderable keyframe node does not exist.");this.renderableKeyframeNodes.splice(r,1)}e.spatialNode=void 0,e.state=Qi.LoadState.UNLOADED,e.metadatas={},e.megatextureIndex=-1,e.priority=-Number.MAX_VALUE,e.highPriorityFrameNumber=-1};Kf.prototype.addKeyframeNodeToMegatextures=function(e,t){if(e.state!==Qi.LoadState.RECEIVED||e.megatextureIndex!==-1||e.metadatas.length!==t.length)throw new fe("Keyframe node cannot be added to megatexture");for(let r=0;r<t.length;r++){let o=t[r];e.megatextureIndex=o.add(e.metadatas[r]),e.metadatas[r]=void 0}e.state=Qi.LoadState.LOADED;let n=this.renderableKeyframeNodes,i=OF(e.keyframe,n);if(i>=0)throw new fe("Keyframe already renderable");i=~i,n.splice(i,0,e)};Kf.prototype.isRenderable=function(e){let t=this.renderableKeyframeNodePrevious,n=this.renderableKeyframeNodeNext,i=this.level;return u(t)&&u(n)&&(t.spatialNode.level===i||n.spatialNode.level===i)&&this.visitedFrameNumber===e};var MF=Kf;function _X(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(_X.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});_X.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,P.PI),i=P.randomBetween(0,this._radius),r=i*Math.cos(t)*Math.sin(n),o=i*Math.sin(t)*Math.sin(n),s=i*Math.cos(n);e.position=h.fromElements(r,o,s,e.position),e.velocity=h.normalize(e.position,e.velocity)};var gX=_X;function RF(){}RF.prototype.evaluate=function(e,t){fe.throwInstantiationError()};RF.prototype.evaluateColor=function(e,t){fe.throwInstantiationError()};RF.prototype.getShaderFunction=function(e,t,n,i){fe.throwInstantiationError()};RF.prototype.getVariables=function(){fe.throwInstantiationError()};var yX=RF;var dH={};dH.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,r,o){u(o)?o.length=0:o=[];let s,a,c;t?(s=n<e,a=i<e,c=r<e):(s=n>e,a=i>e,c=r>e);let l=s+a+c,f,d,p,g,m,A;return l===1?s?(f=(e-n)/(i-n),d=(e-n)/(r-n),o.push(1),o.push(2),d!==1&&(o.push(-1),o.push(0),o.push(2),o.push(d)),f!==1&&(o.push(-1),o.push(0),o.push(1),o.push(f))):a?(p=(e-i)/(r-i),g=(e-i)/(n-i),o.push(2),o.push(0),g!==1&&(o.push(-1),o.push(1),o.push(0),o.push(g)),p!==1&&(o.push(-1),o.push(1),o.push(2),o.push(p))):c&&(m=(e-r)/(n-r),A=(e-r)/(i-r),o.push(0),o.push(1),A!==1&&(o.push(-1),o.push(2),o.push(1),o.push(A)),m!==1&&(o.push(-1),o.push(2),o.push(0),o.push(m))):l===2?!s&&n!==e?(g=(e-i)/(n-i),m=(e-r)/(n-r),o.push(0),o.push(-1),o.push(1),o.push(0),o.push(g),o.push(-1),o.push(2),o.push(0),o.push(m)):!a&&i!==e?(A=(e-r)/(i-r),f=(e-n)/(i-n),o.push(1),o.push(-1),o.push(2),o.push(1),o.push(A),o.push(-1),o.push(0),o.push(1),o.push(f)):!c&&r!==e&&(d=(e-n)/(r-n),p=(e-i)/(r-i),o.push(2),o.push(-1),o.push(0),o.push(2),o.push(d),o.push(-1),o.push(1),o.push(2),o.push(p)):l!==3&&(o.push(0),o.push(1),o.push(2)),o};dH.computeBarycentricCoordinates=function(e,t,n,i,r,o,s,a,c){let l=n-s,f=s-r,d=o-a,p=i-a,g=1/(d*l+f*p),m=t-a,A=e-s,x=(d*A+f*m)*g,C=(-p*A+l*m)*g,T=1-x-C;return u(c)?(c.x=x,c.y=C,c.z=T,c):new h(x,C,T)};dH.computeLineSegmentLineSegmentIntersection=function(e,t,n,i,r,o,s,a,c){let l=(s-r)*(t-o)-(a-o)*(e-r),f=(n-e)*(t-o)-(i-t)*(e-r),d=(a-o)*(n-e)-(s-r)*(i-t);if(d===0)return;let p=l/d,g=f/d;if(p>=0&&p<=1&&g>=0&&g<=1)return u(c)||(c=new H),c.x=e+p*(n-e),c.y=t+p*(i-t),c};var X_=dH;function o0(e){this._quantizedVertices=e.quantizedVertices,this._encodedNormals=e.encodedNormals,this._indices=e.indices,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._boundingSphere=e.boundingSphere,this._orientedBoundingBox=e.orientedBoundingBox,this._horizonOcclusionPoint=e.horizonOcclusionPoint,this._credits=e.credits;let t=this._quantizedVertices.length/3,n=this._uValues=this._quantizedVertices.subarray(0,t),i=this._vValues=this._quantizedVertices.subarray(t,2*t);this._heightValues=this._quantizedVertices.subarray(2*t,3*t);function r(s,a){return i[s]-i[a]}function o(s,a){return n[s]-n[a]}this._westIndices=mH(e.westIndices,r,t),this._southIndices=mH(e.southIndices,o,t),this._eastIndices=mH(e.eastIndices,r,t),this._northIndices=mH(e.northIndices,o,t),this._westSkirtHeight=e.westSkirtHeight,this._southSkirtHeight=e.southSkirtHeight,this._eastSkirtHeight=e.eastSkirtHeight,this._northSkirtHeight=e.northSkirtHeight,this._childTileMask=y(e.childTileMask,15),this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._mesh=void 0}Object.defineProperties(o0.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return u(this._mesh)}}});var hH=[];function mH(e,t,n){hH.length=e.length;let i=!1;for(let r=0,o=e.length;r<o;++r)hH[r]=e[r],i=i||r>0&&t(e[r-1],e[r])>0;return i?(hH.sort(t),Ue.createTypedArray(n,hH)):e}var CAe="createVerticesFromQuantizedTerrainMesh",Z_t=new pi(CAe),Q_t=new pi(CAe,fh.maximumAsynchronousTasks);o0.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,r=e.level,o=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,l=t.tileXYToRectangle(n,i,r),d=(a?Q_t:Z_t).scheduleTask({minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,quantizedVertices:this._quantizedVertices,octEncodedNormals:this._encodedNormals,includeWebMercatorT:!0,indices:this._indices,westIndices:this._westIndices,southIndices:this._southIndices,eastIndices:this._eastIndices,northIndices:this._northIndices,westSkirtHeight:this._westSkirtHeight,southSkirtHeight:this._southSkirtHeight,eastSkirtHeight:this._eastSkirtHeight,northSkirtHeight:this._northSkirtHeight,rectangle:l,relativeToCenter:this._boundingSphere.center,ellipsoid:c,exaggeration:o,exaggerationRelativeHeight:s});if(!u(d))return;let p=this;return Promise.resolve(d).then(function(g){let m=p._quantizedVertices.length/3,A=m+p._westIndices.length+p._southIndices.length+p._eastIndices.length+p._northIndices.length,x=Ue.createTypedArray(A,g.indices),C=new Float32Array(g.vertices),T=g.center,E=g.minimumHeight,S=g.maximumHeight,v=p._boundingSphere,D=p._orientedBoundingBox,M=y(h.clone(g.occludeePointInScaledSpace),p._horizonOcclusionPoint),O=g.vertexStride,B=dc.clone(g.encoding);return p._mesh=new Vf(T,C,x,g.indexCountWithoutSkirts,m,E,S,v,M,O,D,B,g.westIndicesSouthToNorth,g.southIndicesEastToWest,g.eastIndicesNorthToSouth,g.northIndicesWestToEast),p._quantizedVertices=void 0,p._encodedNormals=void 0,p._indices=void 0,p._uValues=void 0,p._vValues=void 0,p._heightValues=void 0,p._westIndices=void 0,p._southIndices=void 0,p._eastIndices=void 0,p._northIndices=void 0,p._mesh})};var $_t=new pi("upsampleQuantizedTerrainMesh",fh.maximumAsynchronousTasks);o0.prototype.upsample=function(e,t,n,i,r,o,s){let a=this._mesh;if(!u(this._mesh))return;let c=t*2!==r,l=n*2===o,f=e.ellipsoid,d=e.tileXYToRectangle(r,o,s),p=$_t.scheduleTask({vertices:a.vertices,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:l,childRectangle:d,ellipsoid:f});if(!u(p))return;let g=Math.min(this._westSkirtHeight,this._eastSkirtHeight);g=Math.min(g,this._southSkirtHeight),g=Math.min(g,this._northSkirtHeight);let m=c?g*.5:this._westSkirtHeight,A=l?g*.5:this._southSkirtHeight,x=c?this._eastSkirtHeight:g*.5,C=l?this._northSkirtHeight:g*.5,T=this._credits;return Promise.resolve(p).then(function(E){let S=new Uint16Array(E.vertices),v=Ue.createTypedArray(S.length/3,E.indices),D;return u(E.encodedNormals)&&(D=new Uint8Array(E.encodedNormals)),new o0({quantizedVertices:S,indices:v,encodedNormals:D,minimumHeight:E.minimumHeight,maximumHeight:E.maximumHeight,boundingSphere:ae.clone(E.boundingSphere),orientedBoundingBox:On.clone(E.orientedBoundingBox),horizonOcclusionPoint:h.clone(E.horizonOcclusionPoint),westIndices:E.westIndices,southIndices:E.southIndices,eastIndices:E.eastIndices,northIndices:E.northIndices,westSkirtHeight:m,southSkirtHeight:A,eastSkirtHeight:x,northSkirtHeight:C,childTileMask:0,credits:T,createdByUpsampling:!0})})};var AX=32767,TAe=new h;o0.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1);i*=AX;let r=P.clamp((n-e.south)/e.height,0,1);return r*=AX,u(this._mesh)?igt(this,i,r):rgt(this,i,r)};function EAe(e,t,n,i,r,o,s,a){let c=Math.min(n,r,s),l=Math.max(n,r,s),f=Math.min(i,o,a),d=Math.max(i,o,a);return e>=c&&e<=l&&t>=f&&t<=d}var egt=new H,tgt=new H,ngt=new H;function igt(e,t,n){let i=e._mesh,r=i.vertices,o=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let l=s[a],f=s[a+1],d=s[a+2],p=o.decodeTextureCoordinates(r,l,egt),g=o.decodeTextureCoordinates(r,f,tgt),m=o.decodeTextureCoordinates(r,d,ngt);if(EAe(t,n,p.x,p.y,g.x,g.y,m.x,m.y)){let A=X_.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,TAe);if(A.x>=-1e-15&&A.y>=-1e-15&&A.z>=-1e-15){let x=o.decodeHeight(r,l),C=o.decodeHeight(r,f),T=o.decodeHeight(r,d);return A.x*x+A.y*C+A.z*T}}}}function rgt(e,t,n){let i=e._uValues,r=e._vValues,o=e._heightValues,s=e._indices;for(let a=0,c=s.length;a<c;a+=3){let l=s[a],f=s[a+1],d=s[a+2],p=i[l],g=i[f],m=i[d],A=r[l],x=r[f],C=r[d];if(EAe(t,n,p,A,g,x,m,C)){let T=X_.computeBarycentricCoordinates(t,n,p,A,g,x,m,C,TAe);if(T.x>=-1e-15&&T.y>=-1e-15&&T.z>=-1e-15){let E=T.x*o[l]+T.y*o[f]+T.z*o[d];return P.lerp(e._minimumHeight,e._maximumHeight,E/AX)}}}}o0.prototype.isChildAvailable=function(e,t,n,i){let r=2;return n!==e*2&&++r,i!==t*2&&(r-=2),(this._childTileMask&1<<r)!==0};o0.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var OC=o0;function kS(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}var MC=new le;function ogt(e,t,n,i){let r=i.length;for(let o=0;o<r;++o){let s=i[o];if(s.x===t&&s.y===n&&s.level===e)return!0}return!1}kS.prototype.addAvailableTileRange=function(e,t,n,i,r){let o=this._tilingScheme,s=this._rootNodes;if(e===0)for(let p=n;p<=r;++p)for(let g=t;g<=i;++g)ogt(e,g,p,s)||s.push(new US(o,void 0,0,g,p));o.tileXYToRectangle(t,n,e,MC);let a=MC.west,c=MC.north;o.tileXYToRectangle(i,r,e,MC);let l=MC.east,f=MC.south,d=new ugt(e,a,f,l,c);for(let p=0;p<s.length;++p){let g=s[p];xX(g.extent,d)&&fgt(this._maximumLevel,g,d)}};kS.prototype.computeMaximumLevelAtPosition=function(e){let t;for(let n=0;n<this._rootNodes.length;++n){let i=this._rootNodes[n];if(VS(i.extent,e)){t=i;break}}return u(t)?BF(void 0,t,e):-1};var sgt=[],agt=[],cgt=new le,lgt=new le;kS.prototype.computeBestAvailableLevelOverRectangle=function(e){let t=sgt;t.length=0,e.east<e.west?(t.push(le.fromRadians(-Math.PI,e.south,e.east,e.north,cgt)),t.push(le.fromRadians(e.west,e.south,Math.PI,e.north,lgt))):t.push(e);let n=agt;n.length=0;let i;for(i=0;i<this._rootNodes.length;++i)LF(n,this._rootNodes[i],t);for(i=n.length-1;i>=0;--i)if(u(n[i])&&n[i].length===0)return i;return 0};var bAe=new me;kS.prototype.isTileAvailable=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(t,n,e,MC);return le.center(i,bAe),this.computeMaximumLevelAtPosition(bAe)>=e};kS.prototype.computeChildMaskForTile=function(e,t,n){let i=e+1;if(i>=this._maximumLevel)return 0;let r=0;return r|=this.isTileAvailable(i,2*t,2*n+1)?1:0,r|=this.isTileAvailable(i,2*t+1,2*n+1)?2:0,r|=this.isTileAvailable(i,2*t,2*n)?4:0,r|=this.isTileAvailable(i,2*t+1,2*n)?8:0,r};function US(e,t,n,i,r){this.tilingScheme=e,this.parent=t,this.level=n,this.x=i,this.y=r,this.extent=e.tileXYToRectangle(i,r,n),this.rectangles=[],this._sw=void 0,this._se=void 0,this._nw=void 0,this._ne=void 0}Object.defineProperties(US.prototype,{nw:{get:function(){return this._nw||(this._nw=new US(this.tilingScheme,this,this.level+1,this.x*2,this.y*2)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new US(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new US(this.tilingScheme,this,this.level+1,this.x*2,this.y*2+1)),this._sw}},se:{get:function(){return this._se||(this._se=new US(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2+1)),this._se}}});function ugt(e,t,n,i,r){this.level=e,this.west=t,this.south=n,this.east=i,this.north=r}function xX(e,t){let n=Math.max(e.west,t.west),i=Math.max(e.south,t.south),r=Math.min(e.east,t.east),o=Math.min(e.north,t.north);return i<o&&n<r}function fgt(e,t,n){for(;t.level<e;)if(pH(t.nw.extent,n))t=t.nw;else if(pH(t.ne.extent,n))t=t.ne;else if(pH(t.sw.extent,n))t=t.sw;else if(pH(t.se.extent,n))t=t.se;else break;if(t.rectangles.length===0||t.rectangles[t.rectangles.length-1].level<=n.level)t.rectangles.push(n);else{let i=Pr(t.rectangles,n.level,dgt);i<0&&(i=~i),t.rectangles.splice(i,0,n)}}function dgt(e,t){return e.level-t}function pH(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function VS(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function BF(e,t,n){let i=0,r=!1;for(;!r;){let o=t._nw&&VS(t._nw.extent,n),s=t._ne&&VS(t._ne.extent,n),a=t._sw&&VS(t._sw.extent,n),c=t._se&&VS(t._se.extent,n);if(o+s+a+c>1){o&&(i=Math.max(i,BF(t,t._nw,n))),s&&(i=Math.max(i,BF(t,t._ne,n))),a&&(i=Math.max(i,BF(t,t._sw,n))),c&&(i=Math.max(i,BF(t,t._se,n)));break}else o?t=t._nw:s?t=t._ne:a?t=t._sw:c?t=t._se:r=!0}for(;t!==e;){let o=t.rectangles;for(let s=o.length-1;s>=0&&o[s].level>i;--s){let a=o[s];VS(a,n)&&(i=a.level)}t=t.parent}return i}function LF(e,t,n){if(!t)return;let i,r=!1;for(i=0;i<n.length;++i)r=r||xX(t.extent,n[i]);if(!r)return;let o=t.rectangles;for(i=0;i<o.length;++i){let s=o[i];e[s.level]||(e[s.level]=n),e[s.level]=hgt(e[s.level],s)}LF(e,t._nw,n),LF(e,t._ne,n),LF(e,t._sw,n),LF(e,t._se,n)}function hgt(e,t){let n=[];for(let i=0;i<e.length;++i){let r=e[i];xX(r,t)?(r.west<t.west&&n.push(new le(r.west,r.south,t.west,r.north)),r.east>t.east&&n.push(new le(t.east,r.south,r.east,r.north)),r.south<t.south&&n.push(new le(Math.max(t.west,r.west),r.south,Math.min(t.east,r.east),t.south)),r.north>t.north&&n.push(new le(Math.max(t.west,r.west),t.north,Math.min(t.east,r.east),r.north))):n.push(r)}return n}var Sh=kS;function mgt(e){this.resource=e.resource,this.version=e.version,this.isHeightmap=e.isHeightmap,this.tileUrlTemplates=e.tileUrlTemplates,this.availability=e.availability,this.hasVertexNormals=e.hasVertexNormals,this.hasWaterMask=e.hasWaterMask,this.hasMetadata=e.hasMetadata,this.availabilityLevels=e.availabilityLevels,this.availabilityTilesLoaded=e.availabilityTilesLoaded,this.littleEndianExtensionSize=e.littleEndianExtensionSize,this.availabilityPromiseCache={}}function EX(e){this.requestVertexNormals=y(e.requestVertexNormals,!1),this.requestWaterMask=y(e.requestWaterMask,!1),this.requestMetadata=y(e.requestMetadata,!0),this.ellipsoid=e.ellipsoid,this.heightmapWidth=65,this.heightmapStructure=void 0,this.hasWaterMask=!1,this.hasMetadata=!1,this.hasVertexNormals=!1,this.scheme=void 0,this.lastResource=void 0,this.layerJsonResource=void 0,this.previousError=void 0,this.availability=void 0,this.tilingScheme=void 0,this.levelZeroMaximumGeometricError=void 0,this.heightmapStructure=void 0,this.layers=[],this.attribution="",this.overallAvailability=[],this.overallMaxZoom=0,this.tileCredits=[]}EX.prototype.build=function(e){e._heightmapWidth=this.heightmapWidth,e._scheme=this.scheme;let t=u(this.lastResource.credits)?this.lastResource.credits:[];e._tileCredits=t.concat(this.tileCredits),e._availability=this.availability,e._tilingScheme=this.tilingScheme,e._requestWaterMask=this.requestWaterMask,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._heightmapStructure=this.heightmapStructure,e._layers=this.layers,e._hasWaterMask=this.hasWaterMask,e._hasVertexNormals=this.hasVertexNormals,e._hasMetadata=this.hasMetadata,e._ready=!0};async function vAe(e,t,n){if(!t.format){let A="The tile format is not specified in the layer.json file.";throw e.previousError=Ai.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,A),new de(A)}if(!t.tiles||t.tiles.length===0){let A="The layer.json file does not specify any tile URL templates.";throw e.previousError=Ai.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,A),new de(A)}let i=!1,r=!1,o=!1,s=!0,a=!1;if(t.format==="heightmap-1.0")a=!0,u(e.heightmapStructure)||(e.heightmapStructure={heightScale:1/5,heightOffset:-1e3,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1,lowestEncodedHeight:0,highestEncodedHeight:256*256-1}),r=!0,e.requestWaterMask=!0;else if(t.format.indexOf("quantized-mesh-1.")!==0){let A=`The tile format "${t.format}" is invalid or not supported.`;throw e.previousError=Ai.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,A),new de(A)}let c=t.tiles,l=t.maxzoom;if(e.overallMaxZoom=Math.max(e.overallMaxZoom,l),!t.projection||t.projection==="EPSG:4326")e.tilingScheme=new Wi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else if(t.projection==="EPSG:3857")e.tilingScheme=new Fo({numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else{let A=`The projection "${t.projection}" is invalid or not supported.`;throw e.previousError=Ai.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,A),new de(A)}if(e.levelZeroMaximumGeometricError=Yo.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.heightmapWidth,e.tilingScheme.getNumberOfXTilesAtLevel(0)),!t.scheme||t.scheme==="tms"||t.scheme==="slippyMap")e.scheme=t.scheme;else{let A=`The scheme "${t.scheme}" is invalid or not supported.`;throw e.previousError=Ai.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,A),new de(A)}let f;u(t.extensions)&&t.extensions.indexOf("octvertexnormals")!==-1?i=!0:u(t.extensions)&&t.extensions.indexOf("vertexnormals")!==-1&&(i=!0,s=!1),u(t.extensions)&&t.extensions.indexOf("watermask")!==-1&&(r=!0),u(t.extensions)&&t.extensions.indexOf("metadata")!==-1&&(o=!0);let d=t.metadataAvailability,p=t.available,g;if(u(p)&&!u(d)){g=new Sh(e.tilingScheme,p.length);for(let A=0;A<p.length;++A){let x=p[A],C=e.tilingScheme.getNumberOfYTilesAtLevel(A);u(e.overallAvailability[A])||(e.overallAvailability[A]=[]);for(let T=0;T<x.length;++T){let E=x[T],S=C-E.endY-1,v=C-E.startY-1;e.overallAvailability[A].push([E.startX,S,E.endX,v]),g.addAvailableTileRange(A,E.startX,S,E.endX,v)}}}else u(d)&&(f=new Sh(e.tilingScheme,l),g=new Sh(e.tilingScheme,l),e.overallAvailability[0]=[[0,0,1,0]],g.addAvailableTileRange(0,0,0,1,0));e.hasWaterMask=e.hasWaterMask||r,e.hasVertexNormals=e.hasVertexNormals||i,e.hasMetadata=e.hasMetadata||o,u(t.attribution)&&(e.attribution.length>0&&(e.attribution+=" "),e.attribution+=t.attribution),e.layers.push(new mgt({resource:e.lastResource,version:t.version,isHeightmap:a,tileUrlTemplates:c,availability:g,hasVertexNormals:i,hasWaterMask:r,hasMetadata:o,availabilityLevels:d,availabilityTilesLoaded:f,littleEndianExtensionSize:s}));let m=t.parentUrl;return u(m)?u(g)?(e.lastResource=e.lastResource.getDerivedResource({url:m}),e.lastResource.appendForwardSlash(),e.layerJsonResource=e.lastResource.getDerivedResource({url:"layer.json"}),await _H(e),!0):(console.log("A layer.json can't have a parentUrl if it does't have an available array."),!0):!0}function pgt(e,t,n){let i=`An error occurred while accessing ${e.layerJsonResource.url}.`;if(u(t)&&(i+=` +${t.message}`),e.previousError=Ai.reportError(e.previousError,n,u(n)?n._errorEvent:void 0,i),e.previousError.retry)return _H(e,n);throw new de(i)}async function _gt(e,t,n){await vAe(e,t,n);let i=e.overallAvailability.length;if(i>0){let r=e.availability=new Sh(e.tilingScheme,e.overallMaxZoom);for(let o=0;o<i;++o){let s=e.overallAvailability[o];for(let a=0;a<s.length;++a){let c=s[a];r.addAvailableTileRange(o,c[0],c[1],c[2],c[3])}}}if(e.attribution.length>0){let r=new wt(e.attribution);e.tileCredits.push(r)}return!0}async function _H(e,t){try{let n=await e.layerJsonResource.fetchJson();return _gt(e,n,t)}catch(n){return u(n)&&n.statusCode===404?(await vAe(e,{tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]},t),!0):pgt(e,n,t)}}function Gu(e){e=y(e,y.EMPTY_OBJECT),this._heightmapWidth=void 0,this._heightmapStructure=void 0,this._hasWaterMask=!1,this._hasVertexNormals=!1,this._hasMetadata=!1,this._scheme=void 0,this._ellipsoid=e.ellipsoid,this._requestVertexNormals=y(e.requestVertexNormals,!1),this._requestWaterMask=y(e.requestWaterMask,!1),this._requestMetadata=y(e.requestMetadata,!0),this._errorEvent=new ge;let t=e.credit;typeof t=="string"&&(t=new wt(t)),this._credit=t,this._availability=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._layers=void 0,this._ready=!1,this._tileCredits=void 0,this._readyPromise=Promise.resolve(!0),u(e.url)&&($("CesiumTerrainProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."),this._readyPromise=Gu._initializeReadyPromise(e,this))}Gu._initializeReadyPromise=async function(e,t){let n=await Promise.resolve(e.url),i=new EX(e),r=ve.createIfNeeded(n);return r.appendForwardSlash(),i.lastResource=r,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await _H(i,t),i.build(t),!0};var CX={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};function SAe(e){return!u(e)||e.length===0?{Accept:"application/vnd.quantized-mesh,application/octet-stream;q=0.9,*/*;q=0.01"}:{Accept:`application/vnd.quantized-mesh;extensions=${e.join("-")},application/octet-stream;q=0.9,*/*;q=0.01`}}function ggt(e,t,n,i,r){let o=new Uint16Array(t,0,e._heightmapWidth*e._heightmapWidth);return new wa({buffer:o,childTileMask:new Uint8Array(t,o.byteLength,1)[0],waterMask:new Uint8Array(t,o.byteLength+1,t.byteLength-o.byteLength-1),width:e._heightmapWidth,height:e._heightmapWidth,structure:e._heightmapStructure,credits:e._tileCredits})}function ygt(e,t,n,i,r,o){let s=o.littleEndianExtensionSize,a=0,c=3,l=c+1,f=Float64Array.BYTES_PER_ELEMENT*c,d=Float64Array.BYTES_PER_ELEMENT*l,p=3,g=Uint16Array.BYTES_PER_ELEMENT*p,m=3,A=Uint16Array.BYTES_PER_ELEMENT,x=A*m,C=new DataView(t),T=new h(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0));a+=f;let E=C.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let S=C.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let v=new ae(new h(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0)),C.getFloat64(a+f,!0));a+=d;let D=new h(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0));a+=f;let M=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let O=new Uint16Array(t,a,M*3);a+=M*g,M>64*1024&&(A=Uint32Array.BYTES_PER_ELEMENT,x=A*m);let B=O.subarray(0,M),L=O.subarray(M,2*M),_=O.subarray(M*2,3*M);qn.zigZagDeltaDecode(B,L,_),a%A!==0&&(a+=A-a%A);let b=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let w=Ue.createTypedArrayFromArrayBuffer(M,t,a,b*m);a+=b*x;let I=0,R=w.length;for(let oe=0;oe<R;++oe){let Ae=w[oe];w[oe]=I-Ae,Ae===0&&++I}let F=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let k=Ue.createTypedArrayFromArrayBuffer(M,t,a,F);a+=F*A;let V=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let G=Ue.createTypedArrayFromArrayBuffer(M,t,a,V);a+=V*A;let U=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let Y=Ue.createTypedArrayFromArrayBuffer(M,t,a,U);a+=U*A;let W=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let Z=Ue.createTypedArrayFromArrayBuffer(M,t,a,W);a+=W*A;let j,K;for(;a<C.byteLength;){let oe=C.getUint8(a,!0);a+=Uint8Array.BYTES_PER_ELEMENT;let Ae=C.getUint32(a,s);if(a+=Uint32Array.BYTES_PER_ELEMENT,oe===CX.OCT_VERTEX_NORMALS&&e._requestVertexNormals)j=new Uint8Array(t,a,M*2);else if(oe===CX.WATER_MASK&&e._requestWaterMask)K=new Uint8Array(t,a,Ae);else if(oe===CX.METADATA&&e._requestMetadata){let he=C.getUint32(a,!0);if(he>0){let Ie=Mr(new Uint8Array(t),a+Uint32Array.BYTES_PER_ELEMENT,he).available;if(u(Ie))for(let Ne=0;Ne<Ie.length;++Ne){let qe=n+Ne+1,pt=Ie[Ne],Gt=e._tilingScheme.getNumberOfYTilesAtLevel(qe);for(let fn=0;fn<pt.length;++fn){let ft=pt[fn],pn=Gt-ft.endY-1,Bn=Gt-ft.startY-1;e.availability.addAvailableTileRange(qe,ft.startX,pn,ft.endX,Bn),o.availability.addAvailableTileRange(qe,ft.startX,pn,ft.endX,Bn)}}}o.availabilityTilesLoaded.addAvailableTileRange(n,i,r,i,r)}a+=Ae}let J=e.getLevelMaximumGeometricError(n)*5,_e=e._tilingScheme.tileXYToRectangle(i,r,n),xe=On.fromRectangle(_e,E,S,e._tilingScheme.ellipsoid);return new OC({center:T,minimumHeight:E,maximumHeight:S,boundingSphere:v,orientedBoundingBox:xe,horizonOcclusionPoint:D,quantizedVertices:O,encodedNormals:j,indices:w,westIndices:k,southIndices:G,eastIndices:Y,northIndices:Z,westSkirtHeight:J,southSkirtHeight:J,eastSkirtHeight:J,northSkirtHeight:J,childTileMask:e.availability.computeChildMaskForTile(n,i,r),waterMask:K,credits:e._tileCredits})}Gu.prototype.requestTileGeometry=function(e,t,n,i){let r=this._layers,o,s=r.length;if(s===1)o=r[0];else for(let a=0;a<s;++a){let c=r[a];if(!u(c.availability)||c.availability.isTileAvailable(n,e,t)){o=c;break}}return wAe(this,e,t,n,o,i)};function wAe(e,t,n,i,r,o){if(!u(r))return Promise.reject(new de("Terrain tile doesn't exist"));let s=r.tileUrlTemplates;if(s.length===0)return;let a;!e._scheme||e._scheme==="tms"?a=e._tilingScheme.getNumberOfYTilesAtLevel(i)-n-1:a=n;let c=[];e._requestVertexNormals&&r.hasVertexNormals&&c.push(r.littleEndianExtensionSize?"octvertexnormals":"vertexnormals"),e._requestWaterMask&&r.hasWaterMask&&c.push("watermask"),e._requestMetadata&&r.hasMetadata&&c.push("metadata");let l,f,d=s[(t+a+i)%s.length],p=r.resource;u(p._ionEndpoint)&&!u(p._ionEndpoint.externalType)?(c.length!==0&&(f={extensions:c.join("-")}),l=SAe(void 0)):l=SAe(c);let g=p.getDerivedResource({url:d,templateValues:{version:r.version,z:i,x:t,y:a},queryParameters:f,headers:l,request:o}).fetchArrayBuffer();if(u(g))return g.then(function(m){return u(m)?u(e._heightmapStructure)?ggt(e,m,i,t,n):ygt(e,m,i,t,n,r):Promise.reject(new de("Mesh buffer doesn't exist."))})}Object.defineProperties(Gu.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("CesiumTerrainProvider.ready","CesiumTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("CesiumTerrainProvider.readyPromise","CesiumTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."),this._readyPromise}},hasWaterMask:{get:function(){return this._hasWaterMask&&this._requestWaterMask}},hasVertexNormals:{get:function(){return this._hasVertexNormals&&this._requestVertexNormals}},hasMetadata:{get:function(){return this._hasMetadata&&this._requestMetadata}},requestVertexNormals:{get:function(){return this._requestVertexNormals}},requestWaterMask:{get:function(){return this._requestWaterMask}},requestMetadata:{get:function(){return this._requestMetadata}},availability:{get:function(){return this._availability}}});Gu.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Gu.fromIonAssetId=async function(e,t){let n=await Xs.fromAssetId(e);return Gu.fromUrl(n,t)};Gu.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=ve.createIfNeeded(e);n.appendForwardSlash();let i=new EX(t);i.lastResource=n,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await _H(i);let r=new Gu(t);return i.build(r),r};Gu.prototype.getTileDataAvailable=function(e,t,n){if(!u(this._availability))return;if(n>this._availability._maximumLevel)return!1;if(this._availability.isTileAvailable(n,e,t))return!0;if(!this._hasMetadata)return!1;let i=this._layers,r=i.length;for(let o=0;o<r;++o)if(DAe(this,e,t,n,i[o],o===0).result)return;return!1};Gu.prototype.loadTileDataAvailability=function(e,t,n){if(!u(this._availability)||n>this._availability._maximumLevel||this._availability.isTileAvailable(n,e,t)||!this._hasMetadata)return;let i=this._layers,r=i.length;for(let o=0;o<r;++o){let s=DAe(this,e,t,n,i[o],o===0);if(u(s.promise))return s.promise}};function TX(e,t,n,i){if(i===0)return;let r=e.availabilityLevels,o=i%r===0?i-r:(i/r|0)*r,s=1<<i-o,a=t/s|0,c=n/s|0;return{level:o,x:a,y:c}}function DAe(e,t,n,i,r,o){if(!u(r.availabilityLevels))return{result:!1};let s,a=function(){delete r.availabilityPromiseCache[s]},c=r.availabilityTilesLoaded,l=r.availability,f=TX(r,t,n,i);for(;u(f);){if(l.isTileAvailable(f.level,f.x,f.y)&&!c.isTileAvailable(f.level,f.x,f.y)){let d;if(!o&&(s=`${f.level}-${f.x}-${f.y}`,d=r.availabilityPromiseCache[s],!u(d))){let p=new jr({throttle:!1,throttleByServer:!0,type:es.TERRAIN});d=wAe(e,f.x,f.y,f.level,r,p),u(d)&&(r.availabilityPromiseCache[s]=d,d.then(a))}return{result:!0,promise:d}}f=TX(r,f.x,f.y,f.level)}return{result:!1}}Gu._getAvailabilityTile=TX;var s0=Gu;function Agt(e){return e=y(e,y.EMPTY_OBJECT),s0.fromIonAssetId(1,{requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1)})}var RC=Agt;function gH(e){this._ready=!1,this._provider=void 0,this._errorEvent=new ge,this._readyEvent=new ge,Cgt(this,e)}Object.defineProperties(gH.prototype,{errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}}});gH.fromWorldTerrain=function(e){return new gH(RC(e))};function xgt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function Cgt(e,t){let n;try{n=await Promise.resolve(t),e._provider=n,e._ready=!0,e._readyEvent.raiseEvent(n)}catch(i){xgt(e._errorEvent,i)}}var NF=gH;function zS(){}zS.prototype.boundingVolume=void 0;zS.prototype.boundingSphere=void 0;zS.prototype.distanceToCamera=function(e){fe.throwInstantiationError()};zS.prototype.intersectPlane=function(e){fe.throwInstantiationError()};zS.prototype.createDebugVolume=function(e){fe.throwInstantiationError()};var bX=zS;function FF(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=u(e.tilingScheme)?e.tilingScheme:new Wi({ellipsoid:e.ellipsoid}),this._color=y(e.color,z.YELLOW),this._errorEvent=new ge,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._ready=!0,this._readyPromise=Promise.resolve(!0),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0}Object.defineProperties(FF.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("TileCoordinatesImageryProvider.ready","TileCoordinatesImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("TileCoordinatesImageryProvider.readyPromise","TileCoordinatesImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}},defaultAlpha:{get:function(){return $("TileCoordinatesImageryProvider.defaultAlpha","TileCoordinatesImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("TileCoordinatesImageryProvider.defaultAlpha","TileCoordinatesImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("TileCoordinatesImageryProvider.defaultNightAlpha","TileCoordinatesImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("TileCoordinatesImageryProvider.defaultNightAlpha","TileCoordinatesImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("TileCoordinatesImageryProvider.defaultDayAlpha","TileCoordinatesImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("TileCoordinatesImageryProvider.defaultDayAlpha","TileCoordinatesImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("TileCoordinatesImageryProvider.defaultBrightness","TileCoordinatesImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("TileCoordinatesImageryProvider.defaultBrightness","TileCoordinatesImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("TileCoordinatesImageryProvider.defaultContrast","TileCoordinatesImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("TileCoordinatesImageryProvider.defaultContrast","TileCoordinatesImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("TileCoordinatesImageryProvider.defaultHue","TileCoordinatesImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("TileCoordinatesImageryProvider.defaultHue","TileCoordinatesImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("TileCoordinatesImageryProvider.defaultSaturation","TileCoordinatesImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("TileCoordinatesImageryProvider.defaultSaturation","TileCoordinatesImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("TileCoordinatesImageryProvider.defaultGamma","TileCoordinatesImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("TileCoordinatesImageryProvider.defaultGamma","TileCoordinatesImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("TileCoordinatesImageryProvider.defaultMinificationFilter","TileCoordinatesImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("TileCoordinatesImageryProvider.defaultMinificationFilter","TileCoordinatesImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("TileCoordinatesImageryProvider.defaultMagnificationFilter","TileCoordinatesImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("TileCoordinatesImageryProvider.defaultMagnificationFilter","TileCoordinatesImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});FF.prototype.getTileCredits=function(e,t,n){};FF.prototype.requestImage=function(e,t,n,i){let r=document.createElement("canvas");r.width=256,r.height=256;let o=r.getContext("2d"),s=this._color.toCssColorString();return o.strokeStyle=s,o.lineWidth=2,o.strokeRect(1,1,255,255),o.font="bold 25px Arial",o.textAlign="center",o.fillStyle=s,o.fillText(`L: ${n}`,124,86),o.fillText(`X: ${e}`,124,136),o.fillText(`Y: ${t}`,124,186),Promise.resolve(r)};FF.prototype.pickFeatures=function(e,t,n,i,r){};var UF=FF;function SX(e){fe.throwInstantiationError()}SX.prototype.isReady=fe.throwInstantiationError;SX.prototype.shouldDiscardImage=fe.throwInstantiationError;var vX=SX;var Tgt={START:0,LOADING:1,READY:2,UPSAMPLED_ONLY:3},wX=Object.freeze(Tgt);function LC(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this.shadows=y(e.shadows,yn.ENABLED),this.maximumMemoryUsage=y(e.maximumMemoryUsage,256),this.shading=new Jh(e.shading),this.style=e.style,this.frameFailed=new ge,this.frameChanged=new ge,this._clock=e.clock,this._intervals=e.intervals,this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,this._pointCloudEyeDomeLighting=new Np,this._loadTimestamp=void 0,this._clippingPlanesState=0,this._styleDirty=!1,this._pickId=void 0,this._totalMemoryUsageInBytes=0,this._frames=[],this._previousInterval=void 0,this._nextInterval=void 0,this._lastRenderedFrame=void 0,this._clockMultiplier=0,this._resolveReadyPromise=void 0;let t=this;this._readyPromise=new Promise(function(n){t._resolveReadyPromise=n}),this._runningSum=0,this._runningLength=0,this._runningIndex=0,this._runningSamples=new Array(5).fill(0),this._runningAverage=0}Object.defineProperties(LC.prototype,{clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){ls.setOwner(e,this,"_clippingPlanes")}},totalMemoryUsageInBytes:{get:function(){return this._totalMemoryUsageInBytes}},boundingSphere:{get:function(){if(u(this._lastRenderedFrame))return this._lastRenderedFrame.pointCloud.boundingSphere}},readyPromise:{get:function(){return $("TimeDynamicPointCloud.readyPromise","TimeDynamicPointCloud.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use TimeDynamicPointCloud.frameFailed instead."),this._readyPromise}}});function Egt(e){return`uniform vec4 czm_pickColor; +${e}`}function bgt(e){return function(t){return _t(t,{czm_pickColor:function(){return e._pickId.color}})}}function Sgt(){return"czm_pickColor"}LC.prototype.makeStyleDirty=function(){this._styleDirty=!0};LC.prototype._getAverageLoadTime=function(){return this._runningLength===0?.05:this._runningAverage};var vgt=new ee;function IX(e){let t=e._clock,n=t.canAnimate&&t.shouldAnimate,i=t.multiplier;return n?i:0}function BC(e,t){return e._intervals.indexOf(t.start)}function wgt(e,t){let n=e._intervals,i=e._clock,r=IX(e);if(r===0)return;let o=e._getAverageLoadTime(),s=ee.addSeconds(i.currentTime,o*r,vgt),a=n.indexOf(s),c=BC(e,t);return a===c&&(r>=0?++a:--a),n.get(a)}function Dgt(e){let t=e._intervals,i=e._clock.currentTime,r=t.indexOf(i);return t.get(r)}function Igt(e,t,n){let i=IX(e),r=BC(e,t),o=BC(e,n);return i>=0?r>=o:r<=o}function PAe(e,t){return function(n){let i=u(n.message)?n.message:n.toString();e.frameFailed.numberOfListeners>0?e.frameFailed.raiseEvent({uri:t,message:i}):(console.log(`A frame failed to load: ${t}`),console.log(`Error: ${i}`))}}function Pgt(e,t,n){let i=BC(e,t),r=e._frames,o=r[i];if(!u(o)){let s=t.data.transform,a=u(s)?N.fromArray(s):void 0,c=t.data.uri;o={pointCloud:void 0,transform:a,timestamp:yi(),sequential:!0,ready:!1,touchedFrameNumber:n.frameNumber,uri:c},r[i]=o,ve.fetchArrayBuffer({url:c}).then(function(l){o.pointCloud=new PF({arrayBuffer:l,cull:!0,fragmentShaderLoaded:Egt,uniformMapLoaded:bgt(e),pickIdLoaded:Sgt})}).catch(PAe(e,c))}return o}function Ogt(e,t){e._runningSum+=t,e._runningSum-=e._runningSamples[e._runningIndex],e._runningSamples[e._runningIndex]=t,e._runningLength=Math.min(e._runningLength+1,e._runningSamples.length),e._runningIndex=(e._runningIndex+1)%e._runningSamples.length,e._runningAverage=e._runningSum/e._runningLength}function Mgt(e,t,n,i){t.touchedFrameNumber<i.frameNumber-1&&(t.sequential=!1);let r=t.pointCloud;if(u(r)&&!t.ready){let o=i.commandList,s=o.length;if(OAe(e,t,n,i),r.ready&&(t.ready=!0,e._totalMemoryUsageInBytes+=r.geometryByteLength,o.length=s,t.sequential)){let a=(yi()-t.timestamp)/1e3;Ogt(e,a)}}t.touchedFrameNumber=i.frameNumber}var Rgt=new N;function Bgt(e,t){let n=e.shading;return u(n)&&u(n.baseResolution)?n.baseResolution:u(t.boundingSphere)?P.cbrt(t.boundingSphere.volume()/t.pointsLength):0}function Lgt(e){let t=e.shading;return u(t)&&u(t.maximumAttenuation)?t.maximumAttenuation:10}var Ngt=new Jh;function OAe(e,t,n,i){let r=y(e.shading,Ngt),o=t.pointCloud,s=y(t.transform,N.IDENTITY);o.modelMatrix=N.multiplyTransformation(e.modelMatrix,s,Rgt),o.style=e.style,o.time=n.timeSinceLoad,o.shadows=e.shadows,o.clippingPlanes=e._clippingPlanes,o.isClipped=n.isClipped,o.attenuation=r.attenuation,o.backFaceCulling=r.backFaceCulling,o.normalShading=r.normalShading,o.geometricError=Bgt(e,o),o.geometricErrorScale=r.geometricErrorScale,o.maximumAttenuation=Lgt(e);try{o.update(i)}catch(a){PAe(e,t.uri)(a)}t.touchedFrameNumber=i.frameNumber}function DX(e,t,n,i){let r=Pgt(e,t,i);Mgt(e,r,n,i)}function Fgt(e){return function(t){return t.touchedFrameNumber<e.frameNumber}}function MAe(e,t){let n=e._frames,i=n.length;for(let r=0;r<i;++r){let o=n[r];if(u(o)&&(!u(t)||t(o))){let s=o.pointCloud;o.ready&&(e._totalMemoryUsageInBytes-=s.geometryByteLength),u(s)&&s.destroy(),o===e._lastRenderedFrame&&(e._lastRenderedFrame=void 0),n[r]=void 0}}}function Ugt(e,t){let n=BC(e,t),i=e._frames[n];if(u(i)&&i.ready)return i}function IAe(e,t,n,i,r){return u(n)?n.ready?!0:(DX(e,t,i,r),n.ready):!1}function Vgt(e,t,n,i,r){let o,s,a,c=e._intervals,l=e._frames,f=BC(e,n),d=BC(e,t);if(f>=d){for(o=f;o>=d;--o)if(s=c.get(o),a=l[o],IAe(e,s,a,i,r))return s}else for(o=f;o<=d;++o)if(s=c.get(o),a=l[o],IAe(e,s,a,i,r))return s;return t}function kgt(e,t,n){let i=e._frames,r=i.length;for(let o=0;o<r;++o){let s=i[o];u(s)&&u(s.pointCloud)&&(s.pointCloud.clippingPlanesDirty=t,s.pointCloud.styleDirty=n)}}var HS={timeSinceLoad:0,isClipped:!1,clippingPlanesDirty:!1};LC.prototype.update=function(e){if(e.mode===ne.MORPHING||!this.show)return;u(this._pickId)||(this._pickId=e.context.createPickId({primitive:this})),u(this._loadTimestamp)||(this._loadTimestamp=ee.clone(e.time));let t=Math.max(ee.secondsDifference(e.time,this._loadTimestamp)*1e3,0),n=this._clippingPlanes,i=0,r=!1,o=u(n)&&n.enabled;o&&(n.update(e),i=n.clippingPlanesState),this._clippingPlanesState!==i&&(this._clippingPlanesState=i,r=!0);let s=this._styleDirty;this._styleDirty=!1,(r||s)&&kgt(this,r,s),HS.timeSinceLoad=t,HS.isClipped=o;let a=this.shading,c=this._pointCloudEyeDomeLighting,l=e.commandList,f=l.length,d=this._previousInterval,p=this._nextInterval,g=Dgt(this);if(!u(g))return;let m=!1,A=IX(this),x=A===0;A!==this._clockMultiplier&&(m=!0,this._clockMultiplier=A),(!u(d)||x)&&(d=g),(!u(p)||m||Igt(this,g,p))&&(p=wgt(this,g)),d=Vgt(this,d,g,HS,e);let C=Ugt(this,d);u(C)||(DX(this,d,HS,e),C=this._lastRenderedFrame),u(C)&&OAe(this,C,HS,e),u(p)&&DX(this,p,HS,e);let T=this;u(C)&&!u(this._lastRenderedFrame)&&e.afterRender.push(function(){return T._resolveReadyPromise(T),!0}),u(C)&&C!==this._lastRenderedFrame&&T.frameChanged.numberOfListeners>0&&e.afterRender.push(function(){return T.frameChanged.raiseEvent(T),!0}),this._previousInterval=d,this._nextInterval=p,this._lastRenderedFrame=C;let E=this._totalMemoryUsageInBytes,S=this.maximumMemoryUsage*1024*1024;E>S&&MAe(this,Fgt(e));let D=l.length-f;u(a)&&a.attenuation&&a.eyeDomeLighting&&D>0&&c.update(e,f,a,this.boundingSphere)};LC.prototype.isDestroyed=function(){return!1};LC.prototype.destroy=function(){return MAe(this),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var GS=LC;function yH(e,t){this.show=!0,u(e)||(e=new Xe),this.rectangle=Xe.clone(e),u(t)||(t=Gi.fromType(Gi.ColorType,{color:new z(1,1,1,1)})),this.material=t,this._material=void 0,this._overlayCommand=void 0,this._rs=void 0}yH.prototype.update=function(e){if(!this.show)return;let t=this._rs;if((!u(t)||!Xe.equals(t.viewport,this.rectangle))&&(this._rs=Ve.fromCache({blending:un.ALPHA_BLEND,viewport:this.rectangle})),e.passes.render){let i=e.context;if(this._material!==this.material||!u(this._overlayCommand)){this._material=this.material,u(this._overlayCommand)&&this._overlayCommand.shaderProgram.destroy();let r=new ke({sources:[this._material.shaderSource,lF]});this._overlayCommand=i.createViewportQuadCommand(r,{renderState:this._rs,uniformMap:this._material._uniforms,owner:this}),this._overlayCommand.pass=be.OVERLAY}this._material.update(i),this._overlayCommand.renderState=this._rs,this._overlayCommand.uniformMap=this._material._uniforms,e.commandList.push(this._overlayCommand)}};yH.prototype.isDestroyed=function(){return!1};yH.prototype.destroy=function(){return u(this._overlayCommand)&&(this._overlayCommand.shaderProgram=this._overlayCommand.shaderProgram&&this._overlayCommand.shaderProgram.destroy()),ue(this)};var PX=yH;var VF=`// See Intersection.glsl for the definition of intersectScene +// See IntersectionUtils.glsl for the definition of nextIntersection +// See convertUvToBox.glsl, convertUvToCylinder.glsl, or convertUvToEllipsoid.glsl +// for the definition of convertUvToShapeUvSpace. The appropriate function is +// selected based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See Octree.glsl for the definitions of TraversalData, SampleData, +// traverseOctreeFromBeginning, and traverseOctreeFromExisting +// See Megatexture.glsl for the definition of accumulatePropertiesFromMegatexture + +#define STEP_COUNT_MAX 1000 // Harcoded value because GLSL doesn't like variable length loops +#define ALPHA_ACCUM_MAX 0.98 // Must be > 0.0 and <= 1.0 + +uniform mat3 u_transformDirectionViewToLocal; +uniform vec3 u_cameraPositionUv; +uniform float u_stepSize; + +#if defined(PICKING) + uniform vec4 u_pickColor; +#endif + +#if defined(JITTER) +float hash(vec2 p) +{ + vec3 p3 = fract(vec3(p.xyx) * 50.0); // magic number = hashscale + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); +} +#endif + +vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection) { +#if defined(SHAPE_BOX) + Box voxelBox = constructVoxelBox(sampleData.tileCoords, sampleData.tileUv); + RayShapeIntersection voxelIntersection = intersectBox(viewRay, voxelBox); + vec4 entry = shapeIntersection.entry.w >= voxelIntersection.entry.w ? shapeIntersection.entry : voxelIntersection.entry; + float exit = min(voxelIntersection.exit.w, shapeIntersection.exit.w); + float dt = (exit - entry.w) * RAY_SCALE; + return vec4(normalize(entry.xyz), dt); +#else + float dimAtLevel = pow(2.0, float(sampleData.tileCoords.w)); + return vec4(viewRay.dir, u_stepSize / dimAtLevel); +#endif +} + +void main() +{ + vec4 fragCoord = gl_FragCoord; + vec2 screenCoord = (fragCoord.xy - czm_viewport.xy) / czm_viewport.zw; // [0,1] + vec3 eyeDirection = normalize(czm_windowToEyeCoordinates(fragCoord).xyz); + vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case + vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case + vec3 viewPosUv = u_cameraPositionUv; + #if defined(SHAPE_BOX) + vec3 dInv = 1.0 / viewDirUv; + Ray viewRayUv = Ray(viewPosUv, viewDirUv, dInv); + #else + Ray viewRayUv = Ray(viewPosUv, viewDirUv); + #endif + + Intersections ix; + RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix); + + // Exit early if the scene was completely missed. + if (shapeIntersection.entry.w == NO_HIT) { + discard; + } + + float currT = shapeIntersection.entry.w * RAY_SCALE; + float endT = shapeIntersection.exit.w; + vec3 positionUv = viewPosUv + currT * viewDirUv; + vec3 positionUvShapeSpace = convertUvToShapeUvSpace(positionUv); + + // Traverse the tree from the start position + TraversalData traversalData; + SampleData sampleDatas[SAMPLE_COUNT]; + traverseOctreeFromBeginning(positionUvShapeSpace, traversalData, sampleDatas); + vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection); + + #if defined(JITTER) + float noise = hash(screenCoord); // [0,1] + currT += noise * step.w; + positionUv += noise * step.w * viewDirUv; + #endif + + FragmentInput fragmentInput; + #if defined(STATISTICS) + setStatistics(fragmentInput.metadata.statistics); + #endif + + vec4 colorAccum =vec4(0.0); + + for (int stepCount = 0; stepCount < STEP_COUNT_MAX; ++stepCount) { + // Read properties from the megatexture based on the traversal state + Properties properties = accumulatePropertiesFromMegatexture(sampleDatas); + + // Prepare the custom shader inputs + copyPropertiesToMetadata(properties, fragmentInput.metadata); + fragmentInput.voxel.positionUv = positionUv; + fragmentInput.voxel.positionShapeUv = positionUvShapeSpace; + fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv; + fragmentInput.voxel.viewDirUv = viewDirUv; + fragmentInput.voxel.viewDirWorld = viewDirWorld; + fragmentInput.voxel.surfaceNormal = step.xyz; + fragmentInput.voxel.travelDistance = step.w; + + // Run the custom shader + czm_modelMaterial materialOutput; + fragmentMain(fragmentInput, materialOutput); + + // Sanitize the custom shader output + vec4 color = vec4(materialOutput.diffuse, materialOutput.alpha); + color.rgb = max(color.rgb, vec3(0.0)); + color.a = clamp(color.a, 0.0, 1.0); + + // Pre-multiplied alpha blend + colorAccum += (1.0 - colorAccum.a) * vec4(color.rgb * color.a, color.a); + + // Stop traversing if the alpha has been fully saturated + if (colorAccum.a > ALPHA_ACCUM_MAX) { + colorAccum.a = ALPHA_ACCUM_MAX; + break; + } + + if (step.w == 0.0) { + // Shape is infinitely thin. The ray may have hit the edge of a + // foreground voxel. Step ahead slightly to check for more voxels + step.w == 0.00001; + } + + // Keep raymarching + currT += step.w; + positionUv += step.w * viewDirUv; + + // Check if there's more intersections. + if (currT > endT) { + #if (INTERSECTION_COUNT == 1) + break; + #else + shapeIntersection = nextIntersection(ix); + if (shapeIntersection.entry.w == NO_HIT) { + break; + } else { + // Found another intersection. Resume raymarching there + currT = shapeIntersection.entry.w * RAY_SCALE; + endT = shapeIntersection.exit.w; + positionUv = viewPosUv + currT * viewDirUv; + } + #endif + } + + // Traverse the tree from the current ray position. + // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step. + positionUvShapeSpace = convertUvToShapeUvSpace(positionUv); + traverseOctreeFromExisting(positionUvShapeSpace, traversalData, sampleDatas); + step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection); + } + + // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1] + colorAccum.a /= ALPHA_ACCUM_MAX; + + #if defined(PICKING) + // If alpha is 0.0 there is nothing to pick + if (colorAccum.a == 0.0) { + discard; + } + out_FragColor = u_pickColor; + #else + out_FragColor = colorAccum; + #endif +} +`;var kF=`in vec2 position; + +uniform vec4 u_ndcSpaceAxisAlignedBoundingBox; + +void main() { + vec2 aabbMin = u_ndcSpaceAxisAlignedBoundingBox.xy; + vec2 aabbMax = u_ndcSpaceAxisAlignedBoundingBox.zw; + vec2 translation = 0.5 * (aabbMax + aabbMin); + vec2 scale = 0.5 * (aabbMax - aabbMin); + gl_Position = vec4(position * scale + translation, 0.0, 1.0); +} +`;var zF=`/* Intersection defines +#define INTERSECTION_COUNT ### +*/ + +#define NO_HIT (-czm_infinity) +#define INF_HIT (czm_infinity * 0.5) +#define RAY_SHIFT (0.000003163) +#define RAY_SCALE (1.003163) + +struct Ray { + vec3 pos; + vec3 dir; +#if defined(SHAPE_BOX) + vec3 dInv; +#endif +}; + +struct RayShapeIntersection { + vec4 entry; + vec4 exit; +}; + +struct Intersections { + // Don't access these member variables directly - call the functions instead. + + // Store an array of ray-surface intersections. Each intersection is composed of: + // .xyz for the surface normal at the intersection point + // .w for the T value + // The scale of the normal encodes the shape intersection type: + // length(intersection.xyz) = 1: positive shape entry + // length(intersection.xyz) = 2: positive shape exit + // length(intersection.xyz) = 3: negative shape entry + // length(intersection.xyz) = 4: negative shape exit + // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections, + // so we need twice as many to track ray-*surface* intersections + vec4 intersections[INTERSECTION_COUNT * 2]; + + #if (INTERSECTION_COUNT > 1) + // Maintain state for future nextIntersection calls + int index; + int surroundCount; + bool surroundIsPositive; + #endif +}; + +RayShapeIntersection getFirstIntersection(in Intersections ix) +{ + return RayShapeIntersection(ix.intersections[0], ix.intersections[1]); +} + +vec4 encodeIntersectionType(vec4 intersection, int index, bool entry) +{ + float scale = float(index > 0) * 2.0 + float(!entry) + 1.0; + return vec4(intersection.xyz * scale, intersection.w); +} + +// Use defines instead of real functions because WebGL1 cannot access array with non-constant index. +#define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t)) +#define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y) +#define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection) (ix).intersections[(index)] = intersection; +#define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false) + +#if (INTERSECTION_COUNT > 1) +void initializeIntersections(inout Intersections ix) { + // Sort the intersections from min T to max T with bubble sort. + // Note: If this sorting function changes, some of the intersection test may + // need to be updated. Search for "bubble sort" to find those areas. + const int sortPasses = INTERSECTION_COUNT * 2 - 1; + for (int n = sortPasses; n > 0; --n) { + for (int i = 0; i < sortPasses; ++i) { + // The loop should be: for (i = 0; i < n; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= n) { break; } + + vec4 intersect0 = ix.intersections[i + 0]; + vec4 intersect1 = ix.intersections[i + 1]; + + bool inOrder = intersect0.w <= intersect1.w; + + ix.intersections[i + 0] = inOrder ? intersect0 : intersect1; + ix.intersections[i + 1] = inOrder ? intersect1 : intersect0; + } + } + + // Prepare initial state for nextIntersection + ix.index = 0; + ix.surroundCount = 0; + ix.surroundIsPositive = false; +} +#endif + +#if (INTERSECTION_COUNT > 1) +RayShapeIntersection nextIntersection(inout Intersections ix) { + vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT); + RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection); + + const int passCount = INTERSECTION_COUNT * 2; + + if (ix.index == passCount) { + return shapeIntersection; + } + + for (int i = 0; i < passCount; ++i) { + // The loop should be: for (i = ix.index; i < passCount; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to continue instead. + if (i < ix.index) { + continue; + } + + ix.index = i + 1; + + surfaceIntersection = ix.intersections[i]; + int intersectionType = int(length(surfaceIntersection.xyz) - 0.5); + bool currShapeIsPositive = intersectionType < 2; + bool enter = intMod(intersectionType, 2) == 0; + + ix.surroundCount += enter ? +1 : -1; + ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive; + + // entering positive or exiting negative + if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) { + shapeIntersection.entry = surfaceIntersection; + } + + // exiting positive or entering negative after being inside positive + bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0; + bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive; + if (exitPositive || enterNegativeFromPositive) { + shapeIntersection.exit = surfaceIntersection; + + // entry and exit have been found, so the loop can stop + if (exitPositive) { + // After exiting positive shape there is nothing left to intersect, so jump to the end index. + ix.index = passCount; + } + break; + } + } + + return shapeIntersection; +} +#endif + +// NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1 +`;var HF=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, +// setIntersectionPair, INF_HIT, NO_HIT + +/* intersectDepth defines (set in Scene/VoxelRenderResources.js) +#define DEPTH_INTERSECTION_INDEX ### +*/ + +uniform mat4 u_transformPositionViewToUv; + +void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) { + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord)); + if (logDepthOrDepth != 0.0) { + // Calculate how far the ray must travel before it hits the depth buffer. + vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth); + eyeCoordinateDepth /= eyeCoordinateDepth.w; + vec3 depthPositionUv = vec3(u_transformPositionViewToUv * eyeCoordinateDepth); + float t = dot(depthPositionUv - ray.pos, ray.dir); + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(t, +INF_HIT)); + } else { + // There's no depth at this location. + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(NO_HIT)); + } +} +`;var GF=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, INF_HIT, +// NO_HIT, setIntersectionPair + +/* Clipping plane defines (set in Scene/VoxelRenderResources.js) +#define CLIPPING_PLANES_UNION +#define CLIPPING_PLANES_COUNT +#define CLIPPING_PLANES_INTERSECTION_INDEX +*/ + +uniform sampler2D u_clippingPlanesTexture; +uniform mat4 u_clippingPlanesMatrix; + +// Plane is in Hessian Normal Form +vec4 intersectPlane(in Ray ray, in vec4 plane) { + vec3 n = plane.xyz; // normal + float w = plane.w; // -dot(pointOnPlane, normal) + + float a = dot(ray.pos, n); + float b = dot(ray.dir, n); + float t = -(w + a) / b; + + return vec4(n, t); +} + +void intersectClippingPlanes(in Ray ray, inout Intersections ix) { + vec4 backSide = vec4(-ray.dir, -INF_HIT); + vec4 farSide = vec4(ray.dir, +INF_HIT); + RayShapeIntersection clippingVolume; + + #if (CLIPPING_PLANES_COUNT == 1) + // Union and intersection are the same when there's one clipping plane, and the code + // is more simplified. + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + bool reflects = dot(ray.dir, intersection.xyz) < 0.0; + clippingVolume.entry = reflects ? backSide : intersection; + clippingVolume.exit = reflects ? intersection : farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #elif defined(CLIPPING_PLANES_UNION) + vec4 firstTransmission = vec4(ray.dir, +INF_HIT); + vec4 lastReflection = vec4(-ray.dir, -INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission; + } else { + lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection; + } + } + clippingVolume.entry = backSide; + clippingVolume.exit = lastReflection; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume); + clippingVolume.entry = firstTransmission; + clippingVolume.exit = farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume); + #else // intersection + vec4 lastTransmission = vec4(ray.dir, -INF_HIT); + vec4 firstReflection = vec4(-ray.dir, +INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission; + } else { + firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection; + } + } + if (lastTransmission.w < firstReflection.w) { + clippingVolume.entry = lastTransmission; + clippingVolume.exit = firstReflection; + } else { + clippingVolume.entry = vec4(-ray.dir, NO_HIT); + clippingVolume.exit = vec4(ray.dir, NO_HIT); + } + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #endif +} +`;var WF=`// See IntersectionUtils.glsl for the definitions of Ray and NO_HIT +// See convertUvToBox.glsl for the definition of convertShapeUvToUvSpace + +/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_INTERSECTION_INDEX ### // always 0 +*/ + +uniform vec3 u_renderMinBounds; +uniform vec3 u_renderMaxBounds; + +struct Box { + vec3 p0; + vec3 p1; +}; + +Box constructVoxelBox(in ivec4 octreeCoords, in vec3 tileUv) +{ + // Find the min/max cornerpoints of the voxel in tile coordinates + vec3 tileOrigin = vec3(octreeCoords.xyz); + vec3 numSamples = vec3(u_dimensions); + vec3 voxelSize = 1.0 / numSamples; + vec3 coordP0 = floor(tileUv * numSamples) * voxelSize + tileOrigin; + vec3 coordP1 = coordP0 + voxelSize; + + // Transform to the UV coordinates of the scaled tileset + float tileSize = 1.0 / pow(2.0, float(octreeCoords.w)); + vec3 p0 = convertShapeUvToUvSpace(coordP0 * tileSize); + vec3 p1 = convertShapeUvToUvSpace(coordP1 * tileSize); + + return Box(p0, p1); +} + +vec3 getBoxNormal(in Box box, in Ray ray, in float t) +{ + vec3 hitPoint = ray.pos + t * ray.dir; + vec3 lower = step(hitPoint, box.p0); + vec3 upper = step(box.p1, hitPoint); + return normalize(upper - lower); +} + +// Find the distances along a ray at which the ray intersects an axis-aligned box +// See https://tavianator.com/2011/ray_box.html +RayShapeIntersection intersectBox(in Ray ray, in Box box) +{ + // Consider the box as the intersection of the space between 3 pairs of parallel planes + // Compute the distance along the ray to each plane + vec3 t0 = (box.p0 - ray.pos) * ray.dInv; + vec3 t1 = (box.p1 - ray.pos) * ray.dInv; + + // Identify candidate entries/exits based on distance from ray.pos + vec3 entries = min(t0, t1); + vec3 exits = max(t0, t1); + + // The actual box intersection points are the furthest entry and the closest exit + float entryT = max(max(entries.x, entries.y), entries.z); + float exitT = min(min(exits.x, exits.y), exits.z); + + vec3 entryNormal = getBoxNormal(box, ray, entryT - RAY_SHIFT); + vec3 exitNormal = getBoxNormal(box, ray, exitT + RAY_SHIFT); + + if (entryT > exitT) { + entryT = NO_HIT; + exitT = NO_HIT; + } + + return RayShapeIntersection(vec4(entryNormal, entryT), vec4(exitNormal, exitT)); +} + +void intersectShape(in Ray ray, inout Intersections ix) +{ + RayShapeIntersection intersection = intersectBox(ray, Box(u_renderMinBounds, u_renderMaxBounds)); + setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection); +} +`;var jF=`// See IntersectionUtils.glsl for the definitions of Ray, setIntersection, +// setIntersectionPair + +/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_RENDER_BOUNDS_HEIGHT +#define CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO + +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED + +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MAX +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MIN +#define CYLINDER_INTERSECTION_INDEX_ANGLE +*/ + +// Cylinder uniforms +#if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX) || defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT) + uniform vec3 u_cylinderUvToRenderBoundsScale; + uniform vec3 u_cylinderUvToRenderBoundsTranslate; +#endif +#if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) && !defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) + uniform float u_cylinderUvToRenderRadiusMin; +#endif +#if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE) + uniform vec2 u_cylinderRenderAngleMinMax; +#endif + +vec4 intersectHalfPlane(Ray ray, float angle) { + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 planeDirection = vec2(cos(angle), sin(angle)); + vec2 planeNormal = vec2(planeDirection.y, -planeDirection.x); + + float a = dot(o, planeNormal); + float b = dot(d, planeNormal); + float t = -a / b; + + vec2 p = o + t * d; + bool outside = dot(p, planeDirection) < 0.0; + if (outside) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + + return vec4(-INF_HIT, t, t, +INF_HIT); +} + +#define POSITIVE_HIT vec2(t, +INF_HIT); +#define NEGATIVE_HIT vec2(-INF_HIT, t); + +vec2 intersectHalfSpace(Ray ray, float angle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n = vec2(sin(angle), -cos(angle)); + + float a = dot(o, n); + float b = dot(d, n); + float t = -a / b; + float s = sign(a); + + // Half space cuts right through the camera, pick the side to intersect + if (a == 0.0) { + if (b >= 0.0) { + return POSITIVE_HIT; + } else { + return NEGATIVE_HIT; + } + } + + if (t >= 0.0 != s >= 0.0) { + return POSITIVE_HIT; + } else { + return NEGATIVE_HIT; + } +} + +vec2 intersectRegularWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n1 = vec2(sin(minAngle), -cos(minAngle)); + vec2 n2 = vec2(-sin(maxAngle), cos(maxAngle)); + + float a1 = dot(o, n1); + float a2 = dot(o, n2); + float b1 = dot(d, n1); + float b2 = dot(d, n2); + + float t1 = -a1 / b1; + float t2 = -a2 / b2; + float s1 = sign(a1); + float s2 = sign(a2); + + float tmin = min(t1, t2); + float tmax = max(t1, t2); + float smin = tmin == t1 ? s1 : s2; + float smax = tmin == t1 ? s2 : s1; + + bool e = tmin >= 0.0; + bool f = tmax >= 0.0; + bool g = smin >= 0.0; + bool h = smax >= 0.0; + + if (e != g && f == h) return vec2(tmin, tmax); + else if (e == g && f == h) return vec2(-INF_HIT, tmin); + else if (e != g && f != h) return vec2(tmax, +INF_HIT); + else return vec2(NO_HIT); +} + +vec4 intersectFlippedWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 planeIntersectMin = intersectHalfSpace(ray, minAngle); + vec2 planeIntersectMax = intersectHalfSpace(ray, maxAngle + czm_pi); + return vec4(planeIntersectMin, planeIntersectMax); +} + +vec2 intersectUnitCylinder(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float a = dot(d.xy, d.xy); + float b = dot(o.xy, d.xy); + float c = dot(o.xy, o.xy) - 1.0; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float ta = (-b - det) / a; + float tb = (-b + det) / a; + float t1 = min(ta, tb); + float t2 = max(ta, tb); + + float z1 = o.z + t1 * d.z; + float z2 = o.z + t2 * d.z; + + if (abs(z1) >= 1.0) + { + float tCap = (sign(z1) - o.z) / d.z; + t1 = abs(b + a * tCap) < det ? tCap : NO_HIT; + } + + if (abs(z2) >= 1.0) + { + float tCap = (sign(z2) - o.z) / d.z; + t2 = abs(b + a * tCap) < det ? tCap : NO_HIT; + } + + return vec2(t1, t2); +} + +vec2 intersectUnitCircle(Ray ray) { + vec3 o = ray.pos; + vec3 d = ray.dir; + + float t = -o.z / d.z; + vec2 zPlanePos = o.xy + d.xy * t; + float distSqr = dot(zPlanePos, zPlanePos); + + if (distSqr > 1.0) { + return vec2(NO_HIT); + } + + return vec2(t, t); +} + +vec2 intersectInfiniteUnitCylinder(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float a = dot(d.xy, d.xy); + float b = dot(o.xy, d.xy); + float c = dot(o.xy, o.xy) - 1.0; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = (-b - det) / a; + float t2 = (-b + det) / a; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + return vec2(tmin, tmax); +} + +void intersectShape(Ray ray, inout Intersections ix) +{ + #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX) || defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT) + ray.pos = ray.pos * u_cylinderUvToRenderBoundsScale + u_cylinderUvToRenderBoundsTranslate; + ray.dir *= u_cylinderUvToRenderBoundsScale; + #else + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + #endif + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT) + vec2 outerIntersect = intersectUnitCircle(ray); + #else + vec2 outerIntersect = intersectUnitCylinder(ray); + #endif + + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MAX, outerIntersect); + + if (outerIntersect.x == NO_HIT) { + return; + } + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) + // When the cylinder is perfectly thin it's necessary to sandwich the + // inner cylinder intersection inside the outer cylinder intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the cylinder to be invisible because it will think the ray + // is still inside the inner (negative) cylinder after exiting the + // outer (positive) cylinder. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + vec2 innerIntersect = intersectInfiniteUnitCylinder(ray); + setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter + setIntersection(ix, 1, innerIntersect.x, false, true); // negative, enter + setIntersection(ix, 2, innerIntersect.y, false, false); // negative, exit + setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) + Ray innerRay = Ray(ray.pos * u_cylinderUvToRenderRadiusMin, ray.dir * u_cylinderUvToRenderRadiusMin); + vec2 innerIntersect = intersectInfiniteUnitCylinder(innerRay); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MIN, innerIntersect); + #endif + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF) + vec2 wedgeIntersect = intersectRegularWedge(ray, u_cylinderRenderAngleMinMax.x, u_cylinderRenderAngleMinMax.y); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF) + vec4 wedgeIntersect = intersectFlippedWedge(ray, u_cylinderRenderAngleMinMax.x, u_cylinderRenderAngleMinMax.y); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersect.zw); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF) + vec2 wedgeIntersect = intersectHalfSpace(ray, u_cylinderRenderAngleMinMax.x); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) + vec4 wedgeIntersect = intersectHalfPlane(ray, u_cylinderRenderAngleMinMax.x); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersect.zw); + #endif +} +`;var qF=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, +// setIntersection, setIntersectionPair, INF_HIT, NO_HIT + +/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX +#define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN +#define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT +#define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN +*/ + +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidRenderLongitudeMinMax; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) + uniform vec2 u_ellipsoidRenderLatitudeCosSqrHalfMinMax; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX) + uniform float u_ellipsoidInverseOuterScaleUv; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN) + uniform float u_ellipsoidInverseInnerScaleUv; +#endif + +vec2 intersectZPlane(Ray ray) +{ + float o = ray.pos.z; + float d = ray.dir.z; + float t = -o / d; + float s = sign(o); + + if (t >= 0.0 != s >= 0.0) return vec2(t, +INF_HIT); + else return vec2(-INF_HIT, t); +} + +vec4 intersectHalfPlane(Ray ray, float angle) { + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 planeDirection = vec2(cos(angle), sin(angle)); + vec2 planeNormal = vec2(planeDirection.y, -planeDirection.x); + + float a = dot(o, planeNormal); + float b = dot(d, planeNormal); + float t = -a / b; + + vec2 p = o + t * d; + bool outside = dot(p, planeDirection) < 0.0; + if (outside) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + + return vec4(-INF_HIT, t, t, +INF_HIT); +} + +vec2 intersectHalfSpace(Ray ray, float angle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n = vec2(sin(angle), -cos(angle)); + + float a = dot(o, n); + float b = dot(d, n); + float t = -a / b; + float s = sign(a); + + if (t >= 0.0 != s >= 0.0) return vec2(t, +INF_HIT); + else return vec2(-INF_HIT, t); +} + +vec2 intersectRegularWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n1 = vec2(sin(minAngle), -cos(minAngle)); + vec2 n2 = vec2(-sin(maxAngle), cos(maxAngle)); + + float a1 = dot(o, n1); + float a2 = dot(o, n2); + float b1 = dot(d, n1); + float b2 = dot(d, n2); + + float t1 = -a1 / b1; + float t2 = -a2 / b2; + float s1 = sign(a1); + float s2 = sign(a2); + + float tmin = min(t1, t2); + float tmax = max(t1, t2); + float smin = tmin == t1 ? s1 : s2; + float smax = tmin == t1 ? s2 : s1; + + bool e = tmin >= 0.0; + bool f = tmax >= 0.0; + bool g = smin >= 0.0; + bool h = smax >= 0.0; + + if (e != g && f == h) return vec2(tmin, tmax); + else if (e == g && f == h) return vec2(-INF_HIT, tmin); + else if (e != g && f != h) return vec2(tmax, +INF_HIT); + else return vec2(NO_HIT); +} + +vec4 intersectFlippedWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 planeIntersectMin = intersectHalfSpace(ray, minAngle); + vec2 planeIntersectMax = intersectHalfSpace(ray, maxAngle + czm_pi); + return vec4(planeIntersectMin, planeIntersectMax); +} + +vec2 intersectUnitSphere(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float b = dot(d, o); + float c = dot(o, o) - 1.0; + float det = b * b - c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = -b - det; + float t2 = -b + det; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + return vec2(tmin, tmax); +} + +vec2 intersectUnitSphereUnnormalizedDirection(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float a = dot(d, d); + float b = dot(d, o); + float c = dot(o, o) - 1.0; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = (-b - det) / a; + float t2 = (-b + det) / a; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + return vec2(tmin, tmax); +} + +vec2 intersectDoubleEndedCone(Ray ray, float cosSqrHalfAngle) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + float a = d.z * d.z - dot(d, d) * cosSqrHalfAngle; + float b = d.z * o.z - dot(o, d) * cosSqrHalfAngle; + float c = o.z * o.z - dot(o, o) * cosSqrHalfAngle; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = (-b - det) / a; + float t2 = (-b + det) / a; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + return vec2(tmin, tmax); +} + +vec4 intersectFlippedCone(Ray ray, float cosSqrHalfAngle) { + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + if (intersect.x == NO_HIT) { + return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + } + + vec3 o = ray.pos; + vec3 d = ray.dir; + float tmin = intersect.x; + float tmax = intersect.y; + float zmin = o.z + tmin * d.z; + float zmax = o.z + tmax * d.z; + + // One interval + if (zmin < 0.0 && zmax < 0.0) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + else if (zmin < 0.0) return vec4(-INF_HIT, tmax, NO_HIT, NO_HIT); + else if (zmax < 0.0) return vec4(tmin, +INF_HIT, NO_HIT, NO_HIT); + // Two intervals + else return vec4(-INF_HIT, tmin, tmax, +INF_HIT); +} + +vec2 intersectRegularCone(Ray ray, float cosSqrHalfAngle) { + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + if (intersect.x == NO_HIT) { + return vec2(NO_HIT); + } + + vec3 o = ray.pos; + vec3 d = ray.dir; + float tmin = intersect.x; + float tmax = intersect.y; + float zmin = o.z + tmin * d.z; + float zmax = o.z + tmax * d.z; + + if (zmin < 0.0 && zmax < 0.0) return vec2(NO_HIT); + else if (zmin < 0.0) return vec2(tmax, +INF_HIT); + else if (zmax < 0.0) return vec2(-INF_HIT, tmin); + else return vec2(tmin, tmax); +} + +void intersectShape(in Ray ray, inout Intersections ix) { + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX) + Ray outerRay = Ray(ray.pos * u_ellipsoidInverseOuterScaleUv, ray.dir * u_ellipsoidInverseOuterScaleUv); + #else + Ray outerRay = ray; + #endif + + // Outer ellipsoid + vec2 outerIntersect = intersectUnitSphereUnnormalizedDirection(outerRay); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect); + + // Exit early if the outer ellipsoid was missed. + if (outerIntersect.x == NO_HIT) { + return; + } + + // Inner ellipsoid + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT) + // When the ellipsoid is perfectly thin it's necessary to sandwich the + // inner ellipsoid intersection inside the outer ellipsoid intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the ellipsoid to be invisible because it will think the ray + // is still inside the inner (negative) ellipsoid after exiting the + // outer (positive) ellipsoid. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter + setIntersection(ix, 1, outerIntersect.x, false, true); // negative, enter + setIntersection(ix, 2, outerIntersect.y, false, false); // negative, exit + setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN) + Ray innerRay = Ray(ray.pos * u_ellipsoidInverseInnerScaleUv, ray.dir * u_ellipsoidInverseInnerScaleUv); + vec2 innerIntersect = intersectUnitSphereUnnormalizedDirection(innerRay); + + if (innerIntersect == vec2(NO_HIT)) { + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN, innerIntersect); + } else { + // When the ellipsoid is very large and thin it's possible for floating + // point math to cause the ray to intersect the inner ellipsoid before + // the outer ellipsoid. To prevent this from happening, clamp innerIntersect + // to outerIntersect and sandwhich the intersections like described above. + // + // In theory a similar fix is needed for cylinders, however it's more + // complicated to implement because the inner shape is allowed to be + // intersected first. + innerIntersect.x = max(innerIntersect.x, outerIntersect.x); + innerIntersect.y = min(innerIntersect.y, outerIntersect.y); + setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter + setIntersection(ix, 1, innerIntersect.x, false, true); // negative, enter + setIntersection(ix, 2, innerIntersect.y, false, false); // negative, exit + setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit + } + #endif + + // Flip the ray because the intersection function expects a cone growing towards +Z. + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) + Ray flippedRay = outerRay; + flippedRay.dir.z *= -1.0; + flippedRay.pos.z *= -1.0; + #endif + + // Bottom cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) + vec2 bottomConeIntersection = intersectRegularCone(flippedRay, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) + vec2 bottomConeIntersection = intersectZPlane(flippedRay); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) + vec4 bottomConeIntersection = intersectFlippedCone(ray, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 0, bottomConeIntersection.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 1, bottomConeIntersection.zw); + #endif + + // Top cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) + vec4 topConeIntersection = intersectFlippedCone(flippedRay, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 0, topConeIntersection.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 1, topConeIntersection.zw); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF) + vec2 topConeIntersection = intersectZPlane(ray); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) + vec2 topConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #endif + + // Wedge + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) + vec4 wedgeIntersect = intersectHalfPlane(ray, u_ellipsoidRenderLongitudeMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersect.zw); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF) + vec2 wedgeIntersect = intersectRegularWedge(ray, u_ellipsoidRenderLongitudeMinMax.x, u_ellipsoidRenderLongitudeMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF) + vec2 wedgeIntersect = intersectHalfSpace(ray, u_ellipsoidRenderLongitudeMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF) + vec4 wedgeIntersect = intersectFlippedWedge(ray, u_ellipsoidRenderLongitudeMinMax.x, u_ellipsoidRenderLongitudeMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersect.zw); + #endif +} +`;var NC=`// Main intersection function for Voxel scenes. +// See IntersectBox.glsl, IntersectCylinder.glsl, or IntersectEllipsoid.glsl +// for the definition of intersectShape. The appropriate function is selected +// based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See also IntersectClippingPlane.glsl and IntersectDepth.glsl. +// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, +// getFirstIntersection, initializeIntersections, nextIntersection. + +/* Intersection defines (set in Scene/VoxelRenderResources.js) +#define INTERSECTION_COUNT ### +*/ + +RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, out Intersections ix) { + // Do a ray-shape intersection to find the exact starting and ending points. + intersectShape(ray, ix); + + // Exit early if the positive shape was completely missed or behind the ray. + RayShapeIntersection intersection = getFirstIntersection(ix); + if (intersection.entry.w == NO_HIT) { + // Positive shape was completely missed - so exit early. + return intersection; + } + + // Clipping planes + #if defined(CLIPPING_PLANES) + intersectClippingPlanes(ray, ix); + #endif + + // Depth + #if defined(DEPTH_TEST) + intersectDepth(screenCoord, ray, ix); + #endif + + // Find the first intersection that's in front of the ray + #if (INTERSECTION_COUNT > 1) + initializeIntersections(ix); + for (int i = 0; i < INTERSECTION_COUNT; ++i) { + intersection = nextIntersection(ix); + if (intersection.exit.w > 0.0) { + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + break; + } + } + #else + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + #endif + + return intersection; +} +`;var YF=`/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_HAS_SHAPE_BOUNDS +*/ + +#if defined(BOX_HAS_SHAPE_BOUNDS) + uniform vec3 u_boxUvToShapeUvScale; + uniform vec3 u_boxUvToShapeUvTranslate; +#endif + +vec3 convertUvToShapeUvSpace(in vec3 positionUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return positionUv * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate; +#else + return positionUv; +#endif +} + +vec3 convertShapeUvToUvSpace(in vec3 shapeUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return (shapeUv - u_boxUvToShapeUvTranslate) / u_boxUvToShapeUvScale; +#else + return shapeUv; +#endif +} +`;var XF=`/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED +*/ + +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + uniform vec2 u_cylinderUvToShapeUvRadius; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + uniform vec2 u_cylinderUvToShapeUvHeight; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + uniform vec2 u_cylinderUvToShapeUvAngle; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + uniform vec2 u_cylinderShapeUvAngleMinMax; +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + uniform float u_cylinderShapeUvAngleRangeZeroMid; +#endif + +vec3 convertUvToShapeUvSpace(in vec3 positionUv) { + vec3 positionLocal = positionUv * 2.0 - 1.0; // [-1,+1] + + // Compute radius + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT) + float radius = 1.0; + #else + float radius = length(positionLocal.xy); // [0,1] + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + radius = radius * u_cylinderUvToShapeUvRadius.x + u_cylinderUvToShapeUvRadius.y; // x = scale, y = offset + #endif + #endif + + // Compute height + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT) + float height = 1.0; + #else + float height = positionUv.z; // [0,1] + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + height = height * u_cylinderUvToShapeUvHeight.x + u_cylinderUvToShapeUvHeight.y; // x = scale, y = offset + #endif + #endif + + // Compute angle + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) + float angle = 1.0; + #else + float angle = (atan(positionLocal.y, positionLocal.x) + czm_pi) / czm_twoPi; // [0,1] + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + // Comparing against u_cylinderShapeUvAngleMinMax has precision problems. u_cylinderShapeUvAngleRangeZeroMid is more conservative. + angle += float(angle < u_cylinderShapeUvAngleRangeZeroMid); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) + angle = angle > u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.x : angle; + #elif defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + angle = angle < u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.y : angle; + #endif + + angle = angle * u_cylinderUvToShapeUvAngle.x + u_cylinderUvToShapeUvAngle.y; // x = scale, y = offset + #endif + #endif + + return vec3(radius, height, angle); +} +`;var KF=`/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN +#define ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT +#define ELLIPSOID_IS_SPHERE +*/ + +uniform vec3 u_ellipsoidRadiiUv; // [0,1] +#if !defined(ELLIPSOID_IS_SPHERE) + uniform vec3 u_ellipsoidInverseRadiiSquaredUv; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) || defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + uniform vec3 u_ellipsoidShapeUvLongitudeMinMaxMid; +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLongitude; // x = scale, y = offset +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLatitude; // x = scale, y = offset +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) && !defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT) + uniform float u_ellipsoidInverseHeightDifferenceUv; + uniform vec2 u_ellipseInnerRadiiUv; // [0,1] +#endif + +// robust iterative solution without trig functions +// https://github.com/0xfaded/ellipse_demo/issues/1 +// https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse +// Pro: Good when radii.x ~= radii.y +// Con: Breaks at pos.x ~= 0.0, especially inside the ellipse +// Con: Inaccurate with exterior points and thin ellipses +float ellipseDistanceIterative (vec2 pos, vec2 radii) { + vec2 p = abs(pos); + vec2 invRadii = 1.0 / radii; + vec2 a = vec2(1.0, -1.0) * (radii.x * radii.x - radii.y * radii.y) * invRadii; + vec2 t = vec2(0.70710678118); // sqrt(2) / 2 + vec2 v = radii * t; + + const int iterations = 3; + for (int i = 0; i < iterations; ++i) { + vec2 e = a * pow(t, vec2(3.0)); + vec2 q = normalize(p - e) * length(v - e); + t = normalize((q + e) * invRadii); + v = radii * t; + } + return length(v * sign(pos) - pos) * sign(p.y - v.y); +} + +vec3 convertUvToShapeUvSpace(in vec3 positionUv) { + // Compute position and normal. + // Convert positionUv [0,1] to local space [-1,+1] to "normalized" cartesian space [-a,+a] where a = (radii + height) / (max(radii) + height). + // A point on the largest ellipsoid axis would be [-1,+1] and everything else would be smaller. + vec3 positionLocal = positionUv * 2.0 - 1.0; + #if defined(ELLIPSOID_IS_SPHERE) + vec3 posEllipsoid = positionLocal * u_ellipsoidRadiiUv.x; + vec3 normal = normalize(posEllipsoid); + #else + vec3 posEllipsoid = positionLocal * u_ellipsoidRadiiUv; + vec3 normal = normalize(posEllipsoid * u_ellipsoidInverseRadiiSquaredUv); // geodetic surface normal + #endif + + // Compute longitude + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) + float longitude = 1.0; + #else + float longitude = (atan(normal.y, normal.x) + czm_pi) / czm_twoPi; + + // Correct the angle when max < min + // Technically this should compare against min longitude - but it has precision problems so compare against the middle of empty space. + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + longitude += float(longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) + longitude = longitude > u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.x : longitude; + #endif + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) + longitude = longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.y : longitude; + #endif + + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + longitude = longitude * u_ellipsoidUvToShapeUvLongitude.x + u_ellipsoidUvToShapeUvLongitude.y; + #endif + #endif + + // Compute latitude + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO) + float latitude = 1.0; + #else + float latitude = (asin(normal.z) + czm_piOverTwo) / czm_pi; + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + latitude = latitude * u_ellipsoidUvToShapeUvLatitude.x + u_ellipsoidUvToShapeUvLatitude.y; + #endif + #endif + + // Compute height + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT) + // TODO: This breaks down when minBounds == maxBounds. To fix it, this + // function would have to know if ray is intersecting the front or back of the shape + // and set the shape space position to 1 (front) or 0 (back) accordingly. + float height = 1.0; + #else + #if defined(ELLIPSOID_IS_SPHERE) + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) + float height = (length(posEllipsoid) - u_ellipseInnerRadiiUv.x) * u_ellipsoidInverseHeightDifferenceUv; + #else + float height = length(posEllipsoid); + #endif + #else + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) + // Convert the 3D position to a 2D position relative to the ellipse (radii.x, radii.z) (assuming radii.x == radii.y which is true for WGS84). + // This is an optimization so that math can be done with ellipses instead of ellipsoids. + vec2 posEllipse = vec2(length(posEllipsoid.xy), posEllipsoid.z); + float height = ellipseDistanceIterative(posEllipse, u_ellipseInnerRadiiUv) * u_ellipsoidInverseHeightDifferenceUv; + #else + // TODO: this is probably not correct + float height = length(posEllipsoid); + #endif + #endif + #endif + + return vec3(longitude, latitude, height); +} +`;var JF=`// These octree flags must be in sync with GpuOctreeFlag in VoxelTraversal.js +#define OCTREE_FLAG_INTERNAL 0 +#define OCTREE_FLAG_LEAF 1 +#define OCTREE_FLAG_PACKED_LEAF_FROM_PARENT 2 + +#define OCTREE_MAX_LEVELS 32 // Harcoded value because GLSL doesn't like variable length loops + +uniform sampler2D u_octreeInternalNodeTexture; +uniform vec2 u_octreeInternalNodeTexelSizeUv; +uniform int u_octreeInternalNodeTilesPerRow; +#if (SAMPLE_COUNT > 1) +uniform sampler2D u_octreeLeafNodeTexture; +uniform vec2 u_octreeLeafNodeTexelSizeUv; +uniform int u_octreeLeafNodeTilesPerRow; +#endif + +struct OctreeNodeData { + int data; + int flag; +}; + +struct TraversalData { + ivec4 octreeCoords; + int parentOctreeIndex; +}; + +struct SampleData { + int megatextureIndex; + ivec4 tileCoords; + vec3 tileUv; + #if (SAMPLE_COUNT > 1) + float weight; + #endif +}; + +// Integer mod: For WebGL1 only +int intMod(in int a, in int b) { + return a - (b * (a / b)); +} +int normU8_toInt(in float value) { + return int(value * 255.0); +} +int normU8x2_toInt(in vec2 value) { + return int(value.x * 255.0) + 256 * int(value.y * 255.0); +} +float normU8x2_toFloat(in vec2 value) { + return float(normU8x2_toInt(value)) / 65535.0; +} + +OctreeNodeData getOctreeNodeData(in vec2 octreeUv) { + vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv); + + OctreeNodeData data; + data.data = normU8x2_toInt(texData.xy); + data.flag = normU8x2_toInt(texData.zw); + return data; +} + +OctreeNodeData getOctreeChildData(in int parentOctreeIndex, in ivec3 childCoord) { + int childIndex = childCoord.z * 4 + childCoord.y * 2 + childCoord.x; + int octreeCoordX = intMod(parentOctreeIndex, u_octreeInternalNodeTilesPerRow) * 9 + 1 + childIndex; + int octreeCoordY = parentOctreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + return getOctreeNodeData(octreeUv); +} + +int getOctreeParentIndex(in int octreeIndex) { + int octreeCoordX = intMod(octreeIndex, u_octreeInternalNodeTilesPerRow) * 9; + int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv); + int parentOctreeIndex = normU8x2_toInt(parentData.xy); + return parentOctreeIndex; +} + +/** +* Convert a position in the uv-space of the tileset bounding shape +* into the uv-space of a tile within the tileset +*/ +vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) { + // PERFORMANCE_IDEA: use bit-shifting (only in WebGL2) + float dimAtLevel = pow(2.0, float(octreeCoords.w)); + return shapePosition * dimAtLevel - vec3(octreeCoords.xyz); +} + +void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) { + sampleData.megatextureIndex = data.data; + sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; +} + +#if (SAMPLE_COUNT > 1) +void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) { + int leafIndex = data.data; + int leafNodeTexelCount = 2; + // Adding 0.5 moves to the center of the texel + float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5; + float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5; + + // Get an interpolation weight and a flag to determine whether to read the parent texture + vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY); + vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0); + float lerp = normU8x2_toFloat(leafData0.xy); + sampleDatas[0].weight = 1.0 - lerp; + sampleDatas[1].weight = lerp; + // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT + sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + + // Get megatexture indices for both samples + vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY); + vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1); + sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy); + sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw); +} +#endif + +OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) { + float sizeAtLevel = 1.0 / pow(2.0, float(traversalData.octreeCoords.w)); + vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel; + vec3 end = start + vec3(sizeAtLevel); + OctreeNodeData childData; + + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + // Find out which octree child contains the position + // 0 if before center, 1 if after + vec3 center = 0.5 * (start + end); + vec3 childCoord = step(center, shapePosition); + + // Get octree coords for the next level down + ivec4 octreeCoords = traversalData.octreeCoords; + traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1); + + childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord)); + + if (childData.flag != OCTREE_FLAG_INTERNAL) { + // leaf tile - stop traversing + break; + } + + // interior tile - keep going deeper + start = mix(start, center, childCoord); + end = mix(center, end, childCoord); + traversalData.parentOctreeIndex = childData.data; + } + + return childData; +} + +/** +* Transform a given position to an octree tile coordinate and a position within that tile, +* and find the corresponding megatexture index and texture coordinates +*/ +void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) { + traversalData.octreeCoords = ivec4(0); + traversalData.parentOctreeIndex = 0; + + OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0)); + if (nodeData.flag != OCTREE_FLAG_LEAF) { + nodeData = traverseOctreeDownwards(shapePosition, traversalData); + } + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} + +bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) { + return clamp(v, minVal, maxVal) == v; +} + +bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) { + vec3 tileUv = getTileUv(shapePosition, octreeCoords); + bool inside = inRange(tileUv, vec3(0.0), vec3(1.0)); + // Assume (!) the position is always inside the root tile. + return inside || octreeCoords.w == 0; +} + +void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) { + if (insideTile(shapePosition, traversalData.octreeCoords)) { + for (int i = 0; i < SAMPLE_COUNT; i++) { + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + } + return; + } + + // Go up tree until we find a parent tile containing shapePosition + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + traversalData.octreeCoords.xyz /= 2; + traversalData.octreeCoords.w -= 1; + + if (insideTile(shapePosition, traversalData.octreeCoords)) { + break; + } + + traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex); + } + + // Go down tree + OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData); + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} +`;var ZF=`// See Octree.glsl for the definitions of SampleData and intMod + +/* Megatexture defines (set in Scene/VoxelRenderResources.js) +#define SAMPLE_COUNT ### +#define NEAREST_SAMPLING +#define PADDING +*/ + +uniform ivec2 u_megatextureSliceDimensions; // number of slices per tile, in two dimensions +uniform ivec2 u_megatextureTileDimensions; // number of tiles per megatexture, in two dimensions +uniform vec2 u_megatextureVoxelSizeUv; +uniform vec2 u_megatextureSliceSizeUv; +uniform vec2 u_megatextureTileSizeUv; + +uniform ivec3 u_dimensions; // does not include padding +#if defined(PADDING) + uniform ivec3 u_paddingBefore; + uniform ivec3 u_paddingAfter; +#endif + +// Integer min, max, clamp: For WebGL1 only +int intMin(int a, int b) { + return a <= b ? a : b; +} +int intMax(int a, int b) { + return a >= b ? a : b; +} +int intClamp(int v, int minVal, int maxVal) { + return intMin(intMax(v, minVal), maxVal); +} + +vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale) +{ + int indexX = intMod(index, dimensions.x); + int indexY = index / dimensions.x; + return vec2(indexX, indexY) * uvScale; +} + +/* + How is 3D data stored in a 2D megatexture? + + In this example there is only one loaded tile and it has 2x2x2 voxels (8 voxels total). + The data is sliced by Z. The data at Z = 0 is placed in texels (0,0), (0,1), (1,0), (1,1) and + the data at Z = 1 is placed in texels (2,0), (2,1), (3,0), (3,1). + Note that there could be empty space in the megatexture because it's a power of two. + + 0 1 2 3 + +---+---+---+---+ + | | | | | 3 + +---+---+---+---+ + | | | | | 2 + +-------+-------+ + |010|110|011|111| 1 + |--- ---|--- ---| + |000|100|001|101| 0 + +-------+-------+ + + When doing linear interpolation the megatexture needs to be sampled twice: once for + the Z slice above the voxel coordinate and once for the slice below. The two slices + are interpolated with fract(coord.z - 0.5). For example, a Z coordinate of 1.0 is + halfway between two Z slices so the interpolation factor is 0.5. Below is a side view + of the 3D voxel grid with voxel coordinates on the left side. + + 2 +---+ + |001| + 1 +-z-+ + |000| + 0 +---+ + + When doing nearest neighbor the megatexture only needs to be sampled once at the closest Z slice. +*/ + +Properties getPropertiesFromMegatexture(in SampleData sampleData) { + vec3 tileUv = clamp(sampleData.tileUv, vec3(0.0), vec3(1.0)); // TODO is the clamp necessary? + int tileIndex = sampleData.megatextureIndex; + vec3 voxelCoord = tileUv * vec3(u_dimensions); + ivec3 voxelDimensions = u_dimensions; + + #if defined(PADDING) + voxelDimensions += u_paddingBefore + u_paddingAfter; + voxelCoord += vec3(u_paddingBefore); + #endif + + #if defined(NEAREST_SAMPLING) + // Round to the center of the nearest voxel + voxelCoord = floor(voxelCoord) + vec3(0.5); + #endif + + // Tile location + vec2 tileUvOffset = index1DTo2DTexcoord(tileIndex, u_megatextureTileDimensions, u_megatextureTileSizeUv); + + // Slice location + float slice = voxelCoord.z - 0.5; + int sliceIndex = int(floor(slice)); + int sliceIndex0 = intClamp(sliceIndex, 0, voxelDimensions.z - 1); + vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + + // Voxel location + vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(voxelDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv; + + // Final location in the megatexture + vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset; + + #if defined(NEAREST_SAMPLING) + return getPropertiesFromMegatextureAtUv(uv0); + #else + float sliceLerp = fract(slice); + int sliceIndex1 = intMin(sliceIndex + 1, voxelDimensions.z - 1); + vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset; + Properties properties0 = getPropertiesFromMegatextureAtUv(uv0); + Properties properties1 = getPropertiesFromMegatextureAtUv(uv1); + return mixProperties(properties0, properties1, sliceLerp); + #endif +} + +// Convert an array of sample datas to a final weighted properties. +Properties accumulatePropertiesFromMegatexture(in SampleData sampleDatas[SAMPLE_COUNT]) { + #if (SAMPLE_COUNT == 1) + return getPropertiesFromMegatexture(sampleDatas[0]); + #else + // When more than one sample is taken the accumulator needs to start at 0 + Properties properties = clearProperties(); + for (int i = 0; i < SAMPLE_COUNT; ++i) { + float weight = sampleDatas[i].weight; + + // Avoid reading the megatexture when the weight is 0 as it can be costly. + if (weight > 0.0) { + Properties tempProperties = getPropertiesFromMegatexture(sampleDatas[i]); + tempProperties = scaleProperties(tempProperties, weight); + properties = sumProperties(properties, tempProperties); + } + } + return properties; + #endif +} +`;function zgt(e){let t=new U0;this.shaderBuilder=t;let n=e._customShader,i=_t(e._uniformMap,n.uniformMap);e._uniformMap=i;let r=n.uniforms;for(let p in r)if(r.hasOwnProperty(p)){let g=r[p];t.addUniform(g.type,p,Te.FRAGMENT)}t.addUniform("sampler2D","u_megatextureTextures[METADATA_COUNT]",Te.FRAGMENT),this.uniformMap=i;let o=e._clippingPlanes,s=u(o)&&o.enabled?o.length:0;this.clippingPlanes=o,this.clippingPlanesLength=s,t.addVertexLines([kF]),t.addFragmentLines([n.fragmentShaderText,"#line 0",JF,zF,ZF]),s>0&&(t.addDefine("CLIPPING_PLANES",void 0,Te.FRAGMENT),t.addDefine("CLIPPING_PLANES_COUNT",s,Te.FRAGMENT),o.unionClippingRegions&&t.addDefine("CLIPPING_PLANES_UNION",void 0,Te.FRAGMENT),t.addFragmentLines([GF])),e._depthTest&&(t.addDefine("DEPTH_TEST",void 0,Te.FRAGMENT),t.addFragmentLines([HF]));let a=e._provider.shape;a==="BOX"?(t.addDefine("SHAPE_BOX",void 0,Te.FRAGMENT),t.addFragmentLines([YF,WF,NC])):a==="CYLINDER"?t.addFragmentLines([jF,NC,XF]):a==="ELLIPSOID"&&t.addFragmentLines([qF,NC,KF]),t.addFragmentLines([VF]);let c=e._shape,l=c.shaderDefines;for(let p in l)if(l.hasOwnProperty(p)){let g=l[p];u(g)&&(g=g===!0?void 0:g,t.addDefine(p,g,Te.FRAGMENT))}let f=c.shaderMaximumIntersectionsLength;s>0&&(t.addDefine("CLIPPING_PLANES_INTERSECTION_INDEX",f,Te.FRAGMENT),s===1?f+=1:o.unionClippingRegions?f+=2:f+=1),e._depthTest&&(t.addDefine("DEPTH_INTERSECTION_INDEX",f,Te.FRAGMENT),f+=1),t.addDefine("INTERSECTION_COUNT",f,Te.FRAGMENT),(!h.equals(e.paddingBefore,h.ZERO)||!h.equals(e.paddingAfter,h.ZERO))&&t.addDefine("PADDING",void 0,Te.FRAGMENT),e._useLogDepth&&t.addDefine("LOG_DEPTH_READ_ONLY",void 0,Te.FRAGMENT),e._jitter&&t.addDefine("JITTER",void 0,Te.FRAGMENT),e._nearestSampling&&t.addDefine("NEAREST_SAMPLING",void 0,Te.FRAGMENT);let d=e._traversal;t.addDefine("SAMPLE_COUNT",`${d._sampleCount}`,Te.FRAGMENT)}var QF=zgt;function Hgt(e,t){let{shaderBuilder:n}=e,{names:i,types:r,componentTypes:o,minimumValues:s,maximumValues:a}=t._provider,c=r.length,l=u(s)&&u(a);n.addDefine("METADATA_COUNT",c,Te.FRAGMENT),l&&n.addDefine("STATISTICS",void 0,Te.FRAGMENT);for(let O=0;O<c;O++){let B=i[O],L=r[O],_=`PropertyStatistics_${B}`,b=`PropertyStatistics_${B}`;n.addStruct(_,b,Te.FRAGMENT);let w=AH(L);n.addStructField(_,w,"min"),n.addStructField(_,w,"max")}let f="Statistics",d="Statistics",p="statistics";n.addStruct(f,d,Te.FRAGMENT);for(let O=0;O<c;O++){let B=i[O],L=`PropertyStatistics_${B}`,_=B;n.addStructField(f,L,_)}let g="Metadata",m="Metadata",A="metadata";n.addStruct(g,m,Te.FRAGMENT),n.addStructField(g,d,p);for(let O=0;O<c;O++){let B=i[O],L=r[O],_=AH(L);n.addStructField(g,_,B)}for(let O=0;O<c;O++){let B=i[O],L=r[O],_=Wgt(L),b=`VoxelProperty_${B}`,w=`VoxelProperty_${B}`;n.addStruct(b,w,Te.FRAGMENT),n.addStructField(b,_,"partialDerivativeLocal"),n.addStructField(b,_,"partialDerivativeWorld"),n.addStructField(b,_,"partialDerivativeView"),n.addStructField(b,_,"partialDerivativeValid")}let x="Voxel",C="Voxel",T="voxel";n.addStruct(x,C,Te.FRAGMENT);for(let O=0;O<c;O++){let B=i[O],L=`VoxelProperty_${B}`;n.addStructField(x,L,B)}n.addStructField(x,"vec3","positionEC"),n.addStructField(x,"vec3","positionUv"),n.addStructField(x,"vec3","positionShapeUv"),n.addStructField(x,"vec3","positionUvLocal"),n.addStructField(x,"vec3","viewDirUv"),n.addStructField(x,"vec3","viewDirWorld"),n.addStructField(x,"vec3","surfaceNormal"),n.addStructField(x,"float","travelDistance");let E="FragmentInput",S="FragmentInput";n.addStruct(E,S,Te.FRAGMENT),n.addStructField(E,m,A),n.addStructField(E,C,T);let v="Properties",D="Properties",M="properties";n.addStruct(v,D,Te.FRAGMENT);for(let O=0;O<c;O++){let B=i[O],L=r[O],_=AH(L);n.addStructField(v,_,B)}{let O="clearProperties";n.addFunction(O,`${D} clearProperties()`,Te.FRAGMENT),n.addFunctionLines(O,[`${D} ${M};`]);for(let B=0;B<c;B++){let L=i[B],_=r[B],b=o[B],w=AH(_,b);n.addFunctionLines(O,[`${M}.${L} = ${w}(0.0);`])}n.addFunctionLines(O,[`return ${M};`])}{let O="sumProperties";n.addFunction(O,`${D} sumProperties(${D} propertiesA, ${D} propertiesB)`,Te.FRAGMENT),n.addFunctionLines(O,[`${D} ${M};`]);for(let B=0;B<c;B++){let L=i[B];n.addFunctionLines(O,[`${M}.${L} = propertiesA.${L} + propertiesB.${L};`])}n.addFunctionLines(O,[`return ${M};`])}{let O="scaleProperties";n.addFunction(O,`${D} scaleProperties(${D} ${M}, float scale)`,Te.FRAGMENT),n.addFunctionLines(O,[`${D} scaledProperties = ${M};`]);for(let B=0;B<c;B++){let L=i[B];n.addFunctionLines(O,[`scaledProperties.${L} *= scale;`])}n.addFunctionLines(O,["return scaledProperties;"])}{let O="mixProperties";n.addFunction(O,`${D} mixProperties(${D} propertiesA, ${D} propertiesB, float mixFactor)`,Te.FRAGMENT),n.addFunctionLines(O,[`${D} ${M};`]);for(let B=0;B<c;B++){let L=i[B];n.addFunctionLines(O,[`${M}.${L} = mix(propertiesA.${L}, propertiesB.${L}, mixFactor);`])}n.addFunctionLines(O,[`return ${M};`])}{let O="copyPropertiesToMetadata";n.addFunction(O,`void copyPropertiesToMetadata(in ${D} ${M}, inout ${m} ${A})`,Te.FRAGMENT);for(let B=0;B<c;B++){let L=i[B];n.addFunctionLines(O,[`${A}.${L} = ${M}.${L};`])}}if(l){let O="setStatistics";n.addFunction(O,`void setStatistics(inout ${d} ${p})`,Te.FRAGMENT);for(let B=0;B<c;B++){let L=i[B],_=r[B],b=jt.getComponentCount(_);for(let w=0;w<b;w++){let I=jgt(_,w),R=s[B][w],F=a[B][w];n.addFunctionLines(O,[`${p}.${L}.min${I} = ${RAe(R)};`,`${p}.${L}.max${I} = ${RAe(F)};`])}}}{let O="getPropertiesFromMegatextureAtUv";n.addFunction(O,`${D} getPropertiesFromMegatextureAtUv(vec2 texcoord)`,Te.FRAGMENT),n.addFunctionLines(O,[`${D} ${M};`]);for(let B=0;B<c;B++){let L=i[B],_=r[B],b=o[B],w=Ggt(_,b);n.addFunctionLines(O,[`properties.${L} = texture(u_megatextureTextures[${B}], texcoord)${w};`])}n.addFunctionLines(O,[`return ${M};`])}}function AH(e){if(e===jt.SCALAR)return"float";if(e===jt.VEC2)return"vec2";if(e===jt.VEC3)return"vec3";if(e===jt.VEC4)return"vec4"}function Ggt(e){if(e===jt.SCALAR)return".r";if(e===jt.VEC2)return".ra";if(e===jt.VEC3)return".rgb";if(e===jt.VEC4)return""}function Wgt(e){if(e===jt.SCALAR)return"vec3";if(e===jt.VEC2)return"mat2";if(e===jt.VEC3)return"mat3";if(e===jt.VEC4)return"mat4"}function RAe(e){let t=e.toString();return t.indexOf(".")===-1&&(t=`${e}.0`),t}function jgt(e,t){return e===jt.SCALAR?"":`[${t}]`}var $F=Hgt;function qgt(e,t){let n=new QF(e);$F(n,e);let{shaderBuilder:i,clippingPlanes:r,clippingPlanesLength:o}=n;if(o>0){let m="getClippingPlane",A=B_(r,t),x=0,C=A.indexOf(")")+1,T=A.indexOf("{",C)+1,E=A.indexOf("}",T),S=A.slice(x,C),v=A.slice(T,E);i.addFunction(m,S,Te.FRAGMENT),i.addFunctionLines(m,[v])}let s=i.clone();s.addDefine("PICKING",void 0,Te.FRAGMENT);let a=i.buildShaderProgram(t),c=s.buildShaderProgram(t),l=Ve.fromCache({cull:{enabled:!0,face:gi.BACK},depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}),f=t.getViewportQuadVertexArray(),d=e._depthTest,p=new nt({vertexArray:f,primitiveType:Be.TRIANGLES,renderState:l,shaderProgram:a,uniformMap:n.uniformMap,modelMatrix:e._compoundModelMatrix,pass:be.VOXELS,executeInClosestFrustum:!0,owner:this,cull:d,occlude:d}),g=nt.shallowClone(p,new nt);if(g.shaderProgram=c,g.pickOnly=!0,u(e._drawCommand)){let m=e._drawCommand;m.shaderProgram=m.shaderProgram&&m.shaderProgram.destroy()}if(u(e._drawCommandPick)){let m=e._drawCommandPick;m.shaderProgram=m.shaderProgram&&m.shaderProgram.destroy()}e._drawCommand=p,e._drawCommandPick=g}var e2=qgt;function a0(e,t,n,i,r,o,s){this._primitive=e;let a=i.length;this.megatextures=new Array(a);for(let A=0;A<a;A++){let x=i[A],C=jt.getComponentCount(x),T=r[A];this.megatextures[A]=new LS(t,n,C,T,s)}let c=this.megatextures[0].maximumTileCount;this._simultaneousRequestCount=0,this._debugPrint=!1,this._frameNumber=0;let l=e._shape;this.rootNode=new MF(0,0,0,0,void 0,l,n),this._priorityQueue=new TC({maximumLength:c,comparator:Qi.priorityComparator}),this._highPriorityKeyframeNodes=new Array(c),this._keyframeNodesInMegatexture=new Array(c),this._keyframeCount=o,this._sampleCount=void 0,this._keyframeLocation=0,this._binaryTreeKeyframeWeighting=new Array(o);let f=this._binaryTreeKeyframeWeighting;f[0]=0,f[o-1]=0,OX(f,1,o-2,0);let d=9,p=2048,g=Math.floor(p/d),m=Math.ceil(c/g);this.internalNodeTexture=new Rt({context:t,pixelFormat:at.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,flipY:!1,width:p,height:m,sampler:new ln({minificationFilter:sn.NEAREST,magnificationFilter:Ti.NEAREST})}),this.internalNodeTilesPerRow=g,this.internalNodeTexelSizeUv=new H(1/p,1/m),this.leafNodeTexture=void 0,this.leafNodeTilesPerRow=void 0,this.leafNodeTexelSizeUv=new H}function OX(e,t,n,i){if(t>n)return;let r=Math.floor((t+n)/2);e[r]=i,OX(e,t,r-1,i+1),OX(e,r+1,n,i+1)}a0.simultaneousRequestCountMaximum=50;a0.prototype.update=function(e,t,n,i){let r=this._primitive,o=e.context,s=this.megatextures[0].maximumTileCount,a=this._keyframeCount,c=r._levelBlendFactor,l=c>0,f=a>1,d=(l?2:1)*(f?2:1);this._sampleCount=d;let p=d>=2;if(p&&!u(this.leafNodeTexture)){let T=Math.floor(512),E=Math.ceil(s/T);this.leafNodeTexture=new Rt({context:o,pixelFormat:at.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,flipY:!1,width:1024,height:E,sampler:new ln({minificationFilter:sn.NEAREST,magnificationFilter:Ti.NEAREST})}),this.leafNodeTexelSizeUv=H.fromElements(1/1024,1/E,this.leafNodeTexelSizeUv),this.leafNodeTilesPerRow=T}else!p&&u(this.leafNodeTexture)&&(this.leafNodeTexture=this.leafNodeTexture.destroy());if(this._keyframeLocation=P.clamp(t,0,a-1),n&&BAe(this,this.rootNode),i)return;this._frameNumber=e.frameNumber;let g=yi();Kgt(this,e);let m=yi();Zgt(this,d,c);let A=yi();if(this._debugPrint){let x=m-g,C=A-m,T=A-g;Jgt(this,x,C,T)}};a0.prototype.isRenderable=function(e){return e.isRenderable(this._frameNumber)};a0.prototype.isDestroyed=function(){return!1};a0.prototype.destroy=function(){let e=this.megatextures,t=e.length;for(let n=0;n<t;n++)e[n]=e[n]&&e[n].destroy();return this.internalNodeTexture=this.internalNodeTexture&&this.internalNodeTexture.destroy(),this.leafNodeTexture=this.leafNodeTexture&&this.leafNodeTexture.destroy(),ue(this)};function BAe(e,t){let n=e._primitive,i=n._shape,r=n._provider.dimensions;if(t.computeBoundingVolumes(i,r),u(t.children))for(let o=0;o<8;o++){let s=t.children[o];BAe(e,s)}}function Ygt(e,t){if(e._simultaneousRequestCount>=a0.simultaneousRequestCountMaximum)return;let n=e._primitive,i=n._provider;function r(l){e._simultaneousRequestCount--;let f=n._provider.types.length;if(!u(l))t.state=Qi.LoadState.UNAVAILABLE;else if(l===Qi.LoadState.FAILED)t.state=Qi.LoadState.FAILED;else if(!Array.isArray(l)||l.length!==f)t.state=Qi.LoadState.FAILED;else{let d=e.megatextures;for(let p=0;p<f;p++){let{voxelCountPerTile:g,channelCount:m}=d[p],{x:A,y:x,z:C}=g,T=A*x*C,E=l[p],S=T*m;if(E.length===S)t.metadatas[p]=E,t.state=Qi.LoadState.RECEIVED;else{t.state=Qi.LoadState.FAILED;break}}}}function o(){e._simultaneousRequestCount--,t.state=Qi.LoadState.FAILED}let{keyframe:s,spatialNode:a}=t,c=i.requestData({tileLevel:a.level,tileX:a.x,tileY:a.y,tileZ:a.z,keyframe:s});u(c)?(e._simultaneousRequestCount++,t.state=Qi.LoadState.RECEIVING,c.then(r).catch(o)):t.state=Qi.LoadState.FAILED}function Xgt(e){return e/(1+e)}function Kgt(e,t){let n=e._frameNumber,i=e._primitive,r=i._shape,{dimensions:o}=i,s=i.screenSpaceError,a=e._priorityQueue,c=e._keyframeLocation,l=e._keyframeCount,f=e.rootNode,{camera:d,context:p,pixelRatio:g}=t,{positionWC:m,frustum:A}=d,C=p.drawingBufferHeight/g/A.sseDenominator;function T(b,w,I){let R=Math.min(Math.abs(w-b),Math.abs(w-I)),F=Math.max(b,l-I-1,1),k=Math.pow(1-R/F,4),V=Math.exp(-e._binaryTreeKeyframeWeighting[w]);return P.lerp(V,k,.15+.85*k)}function E(b,w){if(b.computeScreenSpaceError(m,C),w=b.visibility(t,w),w===ts.MASK_OUTSIDE)return;b.visitedFrameNumber=n;let I=P.clamp(Math.floor(c),0,l-2),R=I+1;if(l===1)b.createKeyframeNode(0);else if(b.keyframeNodes.length!==l)for(let U=0;U<l;U++)b.createKeyframeNode(U);let F=Xgt(b.screenSpaceError),k=!1,V=b.keyframeNodes;for(let U=0;U<V.length;U++){let Y=V[U];Y.priority=10*F+T(I,Y.keyframe,R),Y.state!==Qi.LoadState.UNAVAILABLE&&Y.state!==Qi.LoadState.FAILED&&Y.priority!==-Number.MAX_VALUE&&a.insert(Y),Y.state===Qi.LoadState.LOADED&&(k=!0)}if(b.screenSpaceError<s||!k){b.children=void 0;return}u(b.children)||b.constructChildNodes(r,o);for(let U=0;U<8;U++){let Y=b.children[U];E(Y,w)}}a.reset(),E(f,ts.MASK_INDETERMINATE);let S=e._highPriorityKeyframeNodes,v=0,D;for(;a.length>0;)D=a.removeMaximum(),D.highPriorityFrameNumber=n,S[v]=D,v++;let M=e._keyframeNodesInMegatexture,O=e.megatextures[0],B=O.occupiedCount;M.length=B,M.sort(function(b,w){return b.highPriorityFrameNumber===w.highPriorityFrameNumber?w.priority-b.priority:w.highPriorityFrameNumber-b.highPriorityFrameNumber});let L=0,_=0;for(let b=0;b<v;b++)if(D=S[b],!(D.state===Qi.LoadState.LOADED||D.spatialNode===void 0)&&(D.state===Qi.LoadState.UNLOADED&&Ygt(e,D),D.state===Qi.LoadState.RECEIVED)){let w=0;if(O.isFull()){w=B-1-L,L++;let I=M[w];I.spatialNode.destroyKeyframeNode(I,e.megatextures)}else w=B+_,_++;D.spatialNode.addKeyframeNodeToMegatextures(D,e.megatextures),M[w]=D}}function Jgt(e,t,n,i){let r=e._keyframeCount,o=e.rootNode,s=Object.keys(Qi.LoadState).length,a=new Array(s),c=new Array(s),l=0;for(let C=0;C<s;C++){let T=new Array(r);a[C]=T;for(let E=0;E<r;E++)T[E]=0;c[C]=0}function f(C){let T=C.keyframeNodes;for(let E=0;E<T.length;E++){let S=T[E],v=S.keyframe,D=S.state;a[D][v]+=1,c[D]+=1,l++}if(u(C.children))for(let E=0;E<8;E++){let S=C.children[E];f(S)}}f(o);let d=`KEYFRAMES: ${a[Qi.LoadState.LOADED]}`,p=`UNLOADED: ${c[Qi.LoadState.UNLOADED]} | RECEIVING: ${c[Qi.LoadState.RECEIVING]} | RECEIVED: ${c[Qi.LoadState.RECEIVED]} | LOADED: ${c[Qi.LoadState.LOADED]} | FAILED: ${c[Qi.LoadState.FAILED]} | UNAVAILABLE: ${c[Qi.LoadState.UNAVAILABLE]} | TOTAL: ${l}`,g=Math.round(t*100)/100,m=Math.round(n*100)/100,A=Math.round(i*100)/100,x=`LOAD: ${g} | OCT: ${m} | ALL: ${A}`;console.log(`${d} || ${p} || ${x}`)}var xH={INTERNAL:0,LEAF:1,PACKED_LEAF_FROM_PARENT:2};function Zgt(e,t,n){let i=e._primitive._screenSpaceError,r=e._keyframeLocation,o=e._frameNumber,s=t>=2,a=0,c=0,l=[],f=[];function d(g,m,A,x,C){let T=!1;if(u(g.children))for(let E=0;E<8;E++){let S=g.children[E];S.computeSurroundingRenderableKeyframeNodes(r),S.isRenderable(o)&&(T=!0)}if(T){l[C]=xH.INTERNAL<<16|m,l[A]=x,a++,x=m,C=x*9+1;for(let E=0;E<8;E++){let S=g.children[E];m=a,A=m*9+0,d(S,m,A,x,C+E)}}else{if(s){let E=c*5,S=g.renderableKeyframeNodePrevious,v=g.level-S.spatialNode.level,D=S.spatialNode.parent,M=u(D)?D.renderableKeyframeNodePrevious:S,O=Qgt(g,i,n),B=v,L=1,_=S.megatextureIndex,b=M.megatextureIndex;f[E+0]=O,f[E+1]=B,f[E+2]=L,f[E+3]=_,f[E+4]=b,l[C]=xH.LEAF<<16|c}else{let E=g.renderableKeyframeNodePrevious,v=g.level-E.spatialNode.level===0?xH.LEAF:xH.PACKED_LEAF_FROM_PARENT;l[C]=v<<16|E.megatextureIndex}c++}}let p=e.rootNode;p.computeSurroundingRenderableKeyframeNodes(r),p.isRenderable(o)&&d(p,0,0,0,0),$gt(l,9,e.internalNodeTilesPerRow,e.internalNodeTexture),s&&eyt(f,2,e.leafNodeTilesPerRow,e.leafNodeTexture)}function Qgt(e,t,n){if(e.parent===void 0)return 0;let i=e.screenSpaceError,r=e.parent.screenSpaceError,s=((t-i)/(r-i)+n-1)/n;return P.clamp(s,0,1)}function $gt(e,t,n,i){let r=at.componentsLength(i.pixelFormat),o=Math.ceil(e.length/t),s=Math.max(1,t*Math.min(o,n)),a=Math.max(1,Math.ceil(o/n)),c=new Uint8Array(s*a*r);for(let d=0;d<e.length;d++){let p=e[d],g=d*r;for(let m=0;m<r;m++)c[g+m]=p>>>m*8&255}let f={source:{arrayBufferView:c,width:s,height:a},xOffset:0,yOffset:0};i.copyFrom(f)}function eyt(e,t,n,i){let r=at.componentsLength(i.pixelFormat),o=5,s=Math.ceil(e.length/o),a=Math.max(1,t*Math.min(s,n)),c=Math.max(1,Math.ceil(s/n)),l=new Uint8Array(a*c*r);for(let p=0;p<s;p++){let g=e[p*o+0],m=e[p*o+1],A=e[p*o+2],x=e[p*o+3],C=e[p*o+4],T=P.clamp(Math.floor(65536*g),0,65535);l[p*8+0]=T>>>0&255,l[p*8+1]=T>>>8&255,l[p*8+2]=m&255,l[p*8+3]=A&255,l[p*8+4]=x>>>0&255,l[p*8+5]=x>>>8&255,l[p*8+6]=C>>>0&255,l[p*8+7]=C>>>8&255}let d={source:{arrayBufferView:l,width:a,height:c},xOffset:0,yOffset:0};i.copyFrom(d)}a0.getApproximateTextureMemoryByteLength=function(e,t,n,i){let r=0,o=n.length;for(let s=0;s<o;s++){let a=n[s],c=i[s],l=jt.getComponentCount(a);r+=LS.getApproximateTextureMemoryByteLength(e,t,l,c)}return r};var WS=a0;var tyt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",MAT2:"mat2",MAT3:"mat3",MAT4:"mat4",SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube"},jS=Object.freeze(tyt);function nyt(e,t,n){let i=new Uint8ClampedArray(e.buffer),r=new ImageData(i,t,n),o=document.createElement("canvas");return o.width=t,o.height=n,o.getContext("2d").putImageData(r,0,0),o}var t2=nyt;function qS(){this._defaultTexture=void 0,this._textures={},this._loadedImages=[],this._lastUpdatedFrame=-1}qS.prototype.getTexture=function(e){return this._textures[e]};function iyt(e,t,n){n.resource.fetchImage().then(function(i){e._loadedImages.push({id:t,image:i,textureUniform:n})}).catch(function(){let i=e._textures[t];u(i)&&i!==e._defaultTexture&&i.destroy(),e._textures[t]=e._defaultTexture})}qS.prototype.loadTexture2D=function(e,t){u(t.typedArray)?this._loadedImages.push({id:e,textureUniform:t}):iyt(this,e,t)};function ryt(e,t,n){let{id:i,textureUniform:r,image:o}=t,s=n.webgl2?CH(r,o,n):oyt(r,o,n),a=e._textures[i];u(a)&&a!==n.defaultTexture&&a.destroy(),e._textures[i]=s}function CH(e,t,n){let{typedArray:i,sampler:r}=e,o=u(i)?NAe(e,n):new Rt({context:n,source:t,sampler:r});return LAe(r)&&o.generateMipmap(),o}function oyt(e,t,n){let{typedArray:i,sampler:r}=e,o=LAe(r),s=r.wrapS===Sn.REPEAT||r.wrapS===Sn.MIRRORED_REPEAT||r.wrapT===Sn.REPEAT||r.wrapT===Sn.MIRRORED_REPEAT,{width:a,height:c}=u(i)?e:t,l=[a,c].every(P.isPowerOfTwo);if((o||s)&&!l)if(u(i)){if(e.pixelDatatype===Ke.UNSIGNED_BYTE){let d=t2(i,a,c),p=Mg(d);return CH({sampler:r},p,n)}}else{let d=Mg(t);return CH(e,d,n)}else return CH(e,t,n);return o?console.warn("Texture requires resizing for mipmaps but pixelDataType cannot be resized. The texture may be rendered incorrectly."):s&&console.warn("Texture requires resizing for wrapping but pixelDataType cannot be resized. The texture may be rendered incorrectly."),NAe(e,n)}function LAe(e){return[sn.NEAREST_MIPMAP_NEAREST,sn.NEAREST_MIPMAP_LINEAR,sn.LINEAR_MIPMAP_NEAREST,sn.LINEAR_MIPMAP_LINEAR].includes(e.minificationFilter)}function NAe(e,t){let{pixelFormat:n,pixelDatatype:i,width:r,height:o,typedArray:s,sampler:a}=e;return new Rt({context:t,pixelFormat:n,pixelDatatype:i,source:{arrayBufferView:s,width:r,height:o},sampler:a,flipY:!1})}qS.prototype.update=function(e){if(e.frameNumber===this._lastUpdatedFrame)return;this._lastUpdatedFrame=e.frameNumber;let t=e.context;this._defaultTexture=t.defaultTexture;let n=this._loadedImages;for(let i=0;i<n.length;i++){let r=n[i];ryt(this,r,t)}n.length=0};qS.prototype.isDestroyed=function(){return!1};qS.prototype.destroy=function(){let e=this._textures;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];n!==this._defaultTexture&&n.destroy()}return ue(this)};var n2=qS;function i2(e){e=y(e,y.EMPTY_OBJECT),this.mode=y(e.mode,Wp.MODIFY_MATERIAL),this.lightingModel=e.lightingModel,this.uniforms=y(e.uniforms,y.EMPTY_OBJECT),this.varyings=y(e.varyings,y.EMPTY_OBJECT),this.vertexShaderText=e.vertexShaderText,this.fragmentShaderText=e.fragmentShaderText,this.translucencyMode=y(e.translucencyMode,Wg.INHERIT),this._textureManager=new n2,this._defaultTexture=void 0,this.uniformMap=syt(this),this.usedVariablesVertex={attributeSet:{},featureIdSet:{},metadataSet:{}},this.usedVariablesFragment={attributeSet:{},featureIdSet:{},metadataSet:{},materialSet:{}},lyt(this),uyt(this)}function syt(e){let t=e.uniforms,n={};for(let i in t)if(t.hasOwnProperty(i)){let r=t[i];r.type===jS.SAMPLER_2D?(e._textureManager.loadTexture2D(i,r.value),n[i]=ayt(e,i)):n[i]=cyt(e,i)}return n}function ayt(e,t){return function(){return y(e._textureManager.getTexture(t),e._defaultTexture)}}function cyt(e,t){return function(){return e.uniforms[t].value}}function FC(e,t,n){let i;for(;(i=t.exec(e))!==null;){let r=i[1];n[r]=!0}}function lyt(e){let t=/[vf]sInput\.attributes\.(\w+)/g,n=/[vf]sInput\.featureIds\.(\w+)/g,i=/[vf]sInput\.metadata.(\w+)/g,r,o=e.vertexShaderText;u(o)&&(r=e.usedVariablesVertex.attributeSet,FC(o,t,r),r=e.usedVariablesVertex.featureIdSet,FC(o,n,r),r=e.usedVariablesVertex.metadataSet,FC(o,i,r));let s=e.fragmentShaderText;if(u(s)){r=e.usedVariablesFragment.attributeSet,FC(s,t,r),r=e.usedVariablesFragment.featureIdSet,FC(s,n,r),r=e.usedVariablesFragment.metadataSet,FC(s,i,r);let a=/material\.(\w+)/g,c=e.usedVariablesFragment.materialSet;FC(s,a,c)}}function FAe(e){let t=/^.*MC$/,n=/^.*WC$/,i=/^.*EC$/;return t.test(e)?`${e} (model coordinates)`:n.test(e)?`${e} (Cartesian world coordinates)`:i.test(e)?`${e} (eye coordinates)`:e}function Ac(e,t,n,i){if(e.hasOwnProperty(t)){let r=`${FAe(t)} is not available in the ${i} shader. Did you mean ${FAe(n)} instead?`;throw new fe(r)}}function uyt(e){let t=e.usedVariablesVertex.attributeSet;Ac(t,"position","positionMC","vertex"),Ac(t,"normal","normalMC","vertex"),Ac(t,"tangent","tangentMC","vertex"),Ac(t,"bitangent","bitangentMC","vertex"),Ac(t,"positionWC","positionMC","vertex"),Ac(t,"positionEC","positionMC","vertex"),Ac(t,"normalEC","normalMC","vertex"),Ac(t,"tangentEC","tangentMC","vertex"),Ac(t,"bitangentEC","bitangentMC","vertex");let n=e.usedVariablesFragment.attributeSet;Ac(n,"position","positionEC","fragment"),Ac(n,"normal","normalEC","fragment"),Ac(n,"tangent","tangentEC","fragment"),Ac(n,"bitangent","bitangentEC","fragment"),Ac(n,"normalMC","normalEC","fragment"),Ac(n,"tangentMC","tangentEC","fragment"),Ac(n,"bitangentMC","bitangentEC","fragment")}i2.prototype.setUniform=function(e,t){let n=this.uniforms[e];n.type===jS.SAMPLER_2D?this._textureManager.loadTexture2D(e,t):u(t.clone)?n.value=t.clone(n.value):n.value=t};i2.prototype.update=function(e){this._defaultTexture=e.context.defaultTexture,this._textureManager.update(e)};i2.prototype.isDestroyed=function(){return!1};i2.prototype.destroy=function(){this._textureManager=this._textureManager&&this._textureManager.destroy(),ue(this)};var UC=i2;function Gm(e){e=y(e,y.EMPTY_OBJECT),this._ready=!1,this._provider=y(e.provider,Gm.DefaultProvider),this._traversal=void 0,this._shape=void 0,this._shapeVisible=!1,this._paddingBefore=new h,this._paddingAfter=new h,this._minBounds=new h,this._minBoundsOld=new h,this._maxBounds=new h,this._maxBoundsOld=new h,this._minClippingBounds=new h,this._minClippingBoundsOld=new h,this._maxClippingBounds=new h,this._maxClippingBoundsOld=new h,this._clippingPlanes=void 0,this._clippingPlanesState=0,this._clippingPlanesEnabled=!1,this._modelMatrix=N.clone(y(e.modelMatrix,N.IDENTITY)),this._compoundModelMatrix=new N,this._compoundModelMatrixOld=new N,this._customShader=y(e.customShader,Gm.DefaultCustomShader),this._customShaderCompilationEvent=new ge,this._shaderDirty=!0,this._drawCommand=void 0,this._drawCommandPick=void 0,this._pickId=void 0,this._clock=e.clock,this._transformPositionWorldToUv=new N,this._transformPositionUvToWorld=new N,this._transformDirectionWorldToLocal=new Q,this._transformNormalLocalToWorld=new Q,this._stepSizeUv=1,this._jitter=!0,this._nearestSampling=!1,this._levelBlendFactor=0,this._stepSizeMultiplier=1,this._depthTest=!0,this._useLogDepth=void 0,this._screenSpaceError=4,this._debugPolylines=new Fd,this._debugDraw=!1,this._disableRender=!1,this._disableUpdate=!1,this._uniforms={octreeInternalNodeTexture:void 0,octreeInternalNodeTilesPerRow:0,octreeInternalNodeTexelSizeUv:new H,octreeLeafNodeTexture:void 0,octreeLeafNodeTilesPerRow:0,octreeLeafNodeTexelSizeUv:new H,megatextureTextures:[],megatextureSliceDimensions:new H,megatextureTileDimensions:new H,megatextureVoxelSizeUv:new H,megatextureSliceSizeUv:new H,megatextureTileSizeUv:new H,dimensions:new h,paddingBefore:new h,paddingAfter:new h,transformPositionViewToUv:new N,transformPositionUvToView:new N,transformDirectionViewToLocal:new Q,transformNormalLocalToWorld:new Q,cameraPositionUv:new h,ndcSpaceAxisAlignedBoundingBox:new se,clippingPlanesTexture:void 0,clippingPlanesMatrix:new N,stepSize:0,pickColor:new z},this._shapeDefinesOld={},this._uniformMap={};let t=this._uniforms,n=this._uniformMap;for(let r in t)if(t.hasOwnProperty(r)){let o=`u_${r}`;n[o]=function(){return t[r]}}let i=this._provider;this._completeLoad=function(r,o){},this._readyPromise=fyt(this,i)}async function fyt(e,t){let n=new Promise(function(a){e._completeLoad=function(c,l){l.afterRender.push(function(){return c._ready=!0,a(c),!0})}});u(t._readyPromise)&&!t._ready&&await t._readyPromise;let{shape:i,minBounds:r=qi.getMinBounds(i),maxBounds:o=qi.getMaxBounds(i)}=t;e.minBounds=r,e.maxBounds=o,e.minClippingBounds=qi.getMinBounds(i),e.maxClippingBounds=qi.getMaxBounds(i),VAe(e,t);let s=qi.getShapeConstructor(i);return e._shape=new s,e._shapeVisible=kAe(e,e._shape,t),n}Object.defineProperties(Gm.prototype,{ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("VoxelPrimitive.readyPromise","VoxelPrimitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for VoxelPrimitive.ready to return true instead."),this._readyPromise}},provider:{get:function(){return this._provider}},boundingSphere:{get:function(){return this._shape.boundingSphere}},orientedBoundingBox:{get:function(){return this.shape.orientedBoundingBox}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=N.clone(e,this._modelMatrix)}},shape:{get:function(){return this._provider.shape}},dimensions:{get:function(){return this._provider.dimensions}},minimumValues:{get:function(){return this._provider.minimumValues}},maximumValues:{get:function(){return this._provider.maximumValues}},show:{get:function(){return!this._disableRender},set:function(e){this._disableRender=!e}},disableUpdate:{get:function(){return this._disableUpdate},set:function(e){this._disableUpdate=e}},debugDraw:{get:function(){return this._debugDraw},set:function(e){this._debugDraw=e}},depthTest:{get:function(){return this._depthTest},set:function(e){this._depthTest!==e&&(this._depthTest=e,this._shaderDirty=!0)}},jitter:{get:function(){return this._jitter},set:function(e){this._jitter!==e&&(this._jitter=e,this._shaderDirty=!0)}},nearestSampling:{get:function(){return this._nearestSampling},set:function(e){this._nearestSampling!==e&&(this._nearestSampling=e,this._shaderDirty=!0)}},levelBlendFactor:{get:function(){return this._levelBlendFactor},set:function(e){this._levelBlendFactor=P.clamp(e,0,1)}},screenSpaceError:{get:function(){return this._screenSpaceError},set:function(e){this._screenSpaceError=e}},stepSize:{get:function(){return this._stepSizeMultiplier},set:function(e){this._stepSizeMultiplier=e}},minBounds:{get:function(){return this._minBounds},set:function(e){this._minBounds=h.clone(e,this._minBounds)}},maxBounds:{get:function(){return this._maxBounds},set:function(e){this._maxBounds=h.clone(e,this._maxBounds)}},minClippingBounds:{get:function(){return this._minClippingBounds},set:function(e){this._minClippingBounds=h.clone(e,this._minClippingBounds)}},maxClippingBounds:{get:function(){return this._maxClippingBounds},set:function(e){this._maxClippingBounds=h.clone(e,this._maxClippingBounds)}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){ls.setOwner(e,this,"_clippingPlanes")}},customShader:{get:function(){return this._customShader},set:function(e){if(this._customShader!==e){let t=this._uniformMap,i=this._customShader.uniformMap;for(let r in i)i.hasOwnProperty(r)&&delete t[r];u(e)?this._customShader=e:this._customShader=Gm.DefaultCustomShader,this._shaderDirty=!0}}},customShaderCompilationEvent:{get:function(){return this._customShaderCompilationEvent}}});var dyt=new h,hyt=new se,myt=new se,pyt=new h,_yt=new h,gyt=new Q,yyt=new Q,Ayt=new N,xyt=new N,Cyt=new N,Tyt=N.fromRotationTranslation(Q.fromUniformScale(.5,new Q),new h(.5,.5,.5),new N),Eyt=N.fromRotationTranslation(Q.fromUniformScale(2,new Q),new h(-1,-1,-1),new N);Gm.prototype.update=function(e){let t=this._provider;if(this._customShader.update(e),u(t._ready)&&!t._ready||!u(this._shape))return;let n=e.context;if(!this._ready){byt(this,t,n),this._completeLoad(this,e);return}let i=VAe(this,t),r=this._shape;if(i&&(this._shapeVisible=kAe(this,r,t),wyt(this,r)&&(this._shaderDirty=!0)),!this._shapeVisible)return;let o=Dyt(t.timeIntervalCollection,this._clock),s=this._traversal,a=s._sampleCount;if(s.update(e,o,i,this._disableUpdate),a!==s._sampleCount&&(this._shaderDirty=!0),!s.isRenderable(s.rootNode)||(this._debugDraw&&Nyt(this,e),this._disableRender))return;this._useLogDepth!==e.useLogDepth&&(this._useLogDepth=e.useLogDepth,this._shaderDirty=!0),Iyt(this,e)&&(this._shaderDirty=!0);let l=s.leafNodeTexture,f=this._uniforms;u(l)&&(f.octreeLeafNodeTexture=s.leafNodeTexture,f.octreeLeafNodeTexelSizeUv=H.clone(s.leafNodeTexelSizeUv,f.octreeLeafNodeTexelSizeUv),f.octreeLeafNodeTilesPerRow=s.leafNodeTilesPerRow),this._shaderDirty&&(e2(this,n),this._shaderDirty=!1);let d=n.uniformState.viewProjection,p=r.orientedBoundingBox,g=Myt(p,d,myt);if(g.x===1||g.y===1||g.z===-1||g.w===-1)return;f.ndcSpaceAxisAlignedBoundingBox=se.clone(g,f.ndcSpaceAxisAlignedBoundingBox);let A=n.uniformState.inverseView;f.transformPositionViewToUv=N.multiplyTransformation(this._transformPositionWorldToUv,A,f.transformPositionViewToUv);let x=n.uniformState.view;f.transformPositionUvToView=N.multiplyTransformation(x,this._transformPositionUvToWorld,f.transformPositionUvToView);let C=n.uniformState.inverseViewRotation;f.transformDirectionViewToLocal=Q.multiply(this._transformDirectionWorldToLocal,C,f.transformDirectionViewToLocal),f.transformNormalLocalToWorld=Q.clone(this._transformNormalLocalToWorld,f.transformNormalLocalToWorld);let T=e.camera.positionWC;f.cameraPositionUv=N.multiplyByPoint(this._transformPositionWorldToUv,T,f.cameraPositionUv),f.stepSize=this._stepSizeUv*this._stepSizeMultiplier;let E=e.passes.pick?this._drawCommandPick:this._drawCommand;E.boundingVolume=r.boundingSphere,e.commandList.push(E)};function byt(e,t,n){let i=e._uniforms;e._pickId=n.createPickId({primitive:e}),i.pickColor=z.clone(e._pickId.color,i.pickColor);let{shaderDefines:r,shaderUniforms:o}=e._shape;e._shapeDefinesOld=We(r,!0);let s=e._uniformMap;for(let a in o)if(o.hasOwnProperty(a)){let c=`u_${a}`;s[c]=function(){return o[a]}}i.dimensions=h.clone(t.dimensions,i.dimensions),e._paddingBefore=h.clone(y(t.paddingBefore,h.ZERO),e._paddingBefore),i.paddingBefore=h.clone(e._paddingBefore,i.paddingBefore),e._paddingAfter=h.clone(y(t.paddingAfter,h.ZERO),e._paddingBefore),i.paddingAfter=h.clone(e._paddingAfter,i.paddingAfter),e._traversal=Syt(e,t,n),vyt(e._traversal,i)}function VAe(e,t){let n=y(t.shapeTransform,N.IDENTITY),i=y(t.globalTransform,N.IDENTITY);return N.multiplyTransformation(i,e._modelMatrix,e._compoundModelMatrix),N.multiplyTransformation(e._compoundModelMatrix,n,e._compoundModelMatrix),r2(e,"_compoundModelMatrix","_compoundModelMatrixOld")+r2(e,"_minBounds","_minBoundsOld")+r2(e,"_maxBounds","_maxBoundsOld")+r2(e,"_minClippingBounds","_minClippingBoundsOld")+r2(e,"_maxClippingBounds","_maxClippingBoundsOld")>0}function r2(e,t,n){let i=e[t],r=e[n],o=!i.equals(r);return o&&i.clone(r),o?1:0}function kAe(e,t,n){if(!t.update(e._compoundModelMatrix,e.minBounds,e.maxBounds,e.minClippingBounds,e.maxClippingBounds))return!1;let r=t.shapeTransform,o=N.inverse(r,Ayt),s=N.getRotation(r,gyt),a=N.getScale(r,pyt),c=h.maximumComponent(a),l=h.divideByScalar(a,c,_yt),f=Q.multiplyByScale(s,l,yyt),d=n.dimensions;return e._stepSizeUv=t.computeApproximateStepSize(d),e._transformPositionWorldToUv=N.multiplyTransformation(Tyt,o,e._transformPositionWorldToUv),e._transformPositionUvToWorld=N.multiplyTransformation(r,Eyt,e._transformPositionUvToWorld),e._transformDirectionWorldToLocal=N.getMatrix3(o,e._transformDirectionWorldToLocal),e._transformNormalLocalToWorld=Q.inverseTranspose(f,e._transformNormalLocalToWorld),!0}function Syt(e,t,n){let i=h.clone(t.dimensions,dyt);h.add(i,e._paddingBefore,i),h.add(i,e._paddingAfter,i);let r=t.maximumTileCount,o=u(r)?WS.getApproximateTextureMemoryByteLength(r,i,t.types,t.componentTypes):void 0,s=y(t.keyframeCount,1);return new WS(e,n,i,t.types,t.componentTypes,s,o)}function vyt(e,t){t.octreeInternalNodeTexture=e.internalNodeTexture,t.octreeInternalNodeTexelSizeUv=H.clone(e.internalNodeTexelSizeUv,t.octreeInternalNodeTexelSizeUv),t.octreeInternalNodeTilesPerRow=e.internalNodeTilesPerRow;let n=e.megatextures,i=n[0],r=n.length;t.megatextureTextures=new Array(r);for(let o=0;o<r;o++)t.megatextureTextures[o]=n[o].texture;t.megatextureSliceDimensions=H.clone(i.sliceCountPerRegion,t.megatextureSliceDimensions),t.megatextureTileDimensions=H.clone(i.regionCountPerMegatexture,t.megatextureTileDimensions),t.megatextureVoxelSizeUv=H.clone(i.voxelSizeUv,t.megatextureVoxelSizeUv),t.megatextureSliceSizeUv=H.clone(i.sliceSizeUv,t.megatextureSliceSizeUv),t.megatextureTileSizeUv=H.clone(i.regionSizeUv,t.megatextureTileSizeUv)}function wyt(e,t){let n=t.shaderDefines,i=Object.keys(n).some(r=>n[r]!==e._shapeDefinesOld[r]);return i&&(e._shapeDefinesOld=We(n,!0)),i}function Dyt(e,t){if(!u(e)||!u(t))return 0;let n=t.currentTime,i,r=e.indexOf(n);r>=0?i=e.get(r):(r=~r,r===e.length?(r=e.length-1,i=e.get(r),n=i.stop):(i=e.get(r),n=i.start));let o=ee.secondsDifference(i.stop,i.start),a=ee.secondsDifference(n,i.start)/o;return r+a}function Iyt(e,t){let n=e.clippingPlanes;if(!u(n))return!1;n.update(t);let{clippingPlanesState:i,enabled:r}=n;if(r){let o=e._uniforms;o.clippingPlanesTexture=n.texture,o.clippingPlanesMatrix=N.transpose(N.multiplyTransformation(N.inverse(n.modelMatrix,o.clippingPlanesMatrix),e._transformPositionUvToWorld,o.clippingPlanesMatrix),o.clippingPlanesMatrix)}return e._clippingPlanesState===i&&e._clippingPlanesEnabled===r?!1:(e._clippingPlanesState=i,e._clippingPlanesEnabled=r,!0)}Gm.prototype.isDestroyed=function(){return!1};Gm.prototype.destroy=function(){let e=this._drawCommand;u(e)&&(e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy());let t=this._drawCommandPick;return u(t)&&(t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()),this._pickId=this._pickId&&this._pickId.destroy(),this._traversal=this._traversal&&this._traversal.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),ue(this)};var UAe=new Array(new se(-1,-1,-1,1),new se(1,-1,-1,1),new se(-1,1,-1,1),new se(1,1,-1,1),new se(-1,-1,1,1),new se(1,-1,1,1),new se(-1,1,1,1),new se(1,1,1,1)),Pyt=new Array(1,2,4,0,3,5,0,3,6,1,2,7,0,5,6,1,4,7,2,4,7,3,5,6),Oyt=new Array(new se,new se,new se,new se,new se,new se,new se,new se);function Myt(e,t,n){let i=N.fromRotationTranslation(e.halfAxes,e.center,xyt),r=N.multiply(t,i,Cyt),o=+Number.MAX_VALUE,s=-Number.MAX_VALUE,a=+Number.MAX_VALUE,c=-Number.MAX_VALUE,l,f=Oyt,d=UAe.length;for(l=0;l<d;l++)N.multiplyByVector(r,UAe[l],f[l]);for(l=0;l<d;l++){let p=f[l];if(p.z>=-p.w){let g=p.x/p.w,m=p.y/p.w;o=Math.min(o,g),s=Math.max(s,g),a=Math.min(a,m),c=Math.max(c,m)}else for(let g=0;g<3;g++){let m=Pyt[l*3+g],A=f[m];if(A.z>=-A.w){let x=p.z+p.w,C=A.z+A.w,T=x/(x-C),E=se.lerp(p,A,T,hyt),S=E.x/E.w,v=E.y/E.w;o=Math.min(o,S),s=Math.max(s,S),a=Math.min(a,v),c=Math.max(c,v)}}}return o=P.clamp(o,-1,1),a=P.clamp(a,-1,1),s=P.clamp(s,-1,1),c=P.clamp(c,-1,1),n=se.fromElements(o,a,s,c,n),n}var MX=3e7,Ryt=new h(MX,0,0),Byt=new h(0,MX,0),Lyt=new h(0,0,MX);function Nyt(e,t){let n=e._traversal,i=e._debugPolylines;i.removeAll();function r(c,l,f,d){i.add({positions:[c,l],width:d,material:Gi.fromType("Color",{color:f})})}function o(c,l,f){let d=c.computeCorners();r(d[0],d[1],l,f),r(d[2],d[3],l,f),r(d[4],d[5],l,f),r(d[6],d[7],l,f),r(d[0],d[2],l,f),r(d[4],d[6],l,f),r(d[1],d[3],l,f),r(d[5],d[7],l,f),r(d[0],d[4],l,f),r(d[2],d[6],l,f),r(d[1],d[5],l,f),r(d[3],d[7],l,f)}function s(c){if(!n.isRenderable(c))return;let l=c.level,d=Math.max(1,5/Math.pow(2,l)),g=[z.RED,z.LIME,z.BLUE][l%3];if(o(c.orientedBoundingBox,g,d),u(c.children))for(let m=0;m<8;m++)s(c.children[m])}o(e._shape.orientedBoundingBox,z.WHITE,5),s(n.rootNode);let a=10;r(h.ZERO,Ryt,z.RED,a),r(h.ZERO,Byt,z.LIME,a),r(h.ZERO,Lyt,z.BLUE,a),i.update(t)}Gm.DefaultCustomShader=new UC({fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) +{ + material.diffuse = vec3(1.0); + material.alpha = 1.0; +}`});function zAe(){this.ready=!0,this.shape=qi.BOX,this.dimensions=new h(1,1,1),this.names=["data"],this.types=[jt.SCALAR],this.componentTypes=[tn.FLOAT32],this.maximumTileCount=1}zAe.prototype.requestData=function(e){if(!((u(e)?y(e.tileLevel,0):0)>=1))return Promise.resolve([new Float32Array(1)])};Gm.DefaultProvider=new zAe;var YS=Gm;function RX(){fe.throwInstantiationError()}Object.defineProperties(RX.prototype,{ready:{get:fe.throwInstantiationError},readyPromise:{get:fe.throwInstantiationError},globalTransform:{get:fe.throwInstantiationError},shapeTransform:{get:fe.throwInstantiationError},shape:{get:fe.throwInstantiationError},minBounds:{get:fe.throwInstantiationError},maxBounds:{get:fe.throwInstantiationError},dimensions:{get:fe.throwInstantiationError},paddingBefore:{get:fe.throwInstantiationError},paddingAfter:{get:fe.throwInstantiationError},names:{get:fe.throwInstantiationError},types:{get:fe.throwInstantiationError},componentTypes:{get:fe.throwInstantiationError},minimumValues:{get:fe.throwInstantiationError},maximumValues:{get:fe.throwInstantiationError},maximumTileCount:{get:fe.throwInstantiationError},keyframeCount:{get:fe.throwInstantiationError},timeIntervalCollection:{get:fe.throwInstantiationError}});RX.prototype.requestData=fe.throwInstantiationError;var BX=RX;function VC(){fe.throwInstantiationError()}Object.defineProperties(VC.prototype,{orientedBoundingBox:{get:fe.throwInstantiationError},boundingSphere:{get:fe.throwInstantiationError},boundTransform:{get:fe.throwInstantiationError},shapeTransform:{get:fe.throwInstantiationError},shaderUniforms:{get:fe.throwInstantiationError},shaderDefines:{get:fe.throwInstantiationError},shaderMaximumIntersectionsLength:{get:fe.throwInstantiationError}});VC.prototype.update=fe.throwInstantiationError;VC.prototype.computeOrientedBoundingBoxForTile=fe.throwInstantiationError;VC.prototype.computeApproximateStepSize=fe.throwInstantiationError;VC.DefaultMinBounds=fe.throwInstantiationError;VC.DefaultMaxBounds=fe.throwInstantiationError;var LX=VC;async function NX(e,t){let n=t.terrainProvider,i=t.mapProjection,r=i.ellipsoid,o,s=t.camera.getRectangleCameraCoordinates(e);if(t.mode===ne.SCENE3D?o=r.cartesianToCartographic(s):o=i.unproject(s),!u(n))return o;await n._readyPromise;let a=n.availability;if(!u(a)||t.mode===ne.SCENE2D)return o;let c=[le.center(e),le.southeast(e),le.southwest(e),le.northeast(e),le.northwest(e)],l=await NX._sampleTerrainMostDetailed(n,c),f=!1,d=l.reduce(function(g,m){return u(m.height)?(f=!0,Math.max(m.height,g)):g},-Number.MAX_VALUE),p=o;return f&&(p.height+=d),p}NX._sampleTerrainMostDetailed=v_;var kC=NX;var Fyt=new z,Uyt=new z,Vyt=new z,kyt=new z,HAe=new se,o2=new Uint8Array(4);function GAe(e,t,n,i){let r=t.height===n.height?0:(e-t.height)/(n.height-t.height);return z.lerp(t.color,n.color,r,i)}function TH(e,t){return{height:e,color:z.clone(t)}}function WAe(e){return e=e.filter(function(t,n,i){let r=n>0,o=n<i.length-1,s=r?t.height===i[n-1].height:!0,a=o?t.height===i[n+1].height:!0;return!s||!a}),e=e.filter(function(t,n,i){let r=n>0,o=n<i.length-1,s=r?z.equals(t.color,i[n-1].color):!1,a=o?z.equals(t.color,i[n+1].color):!1;return!s||!a}),e=e.filter(function(t,n,i){let r=n>0,o=r?z.equals(t.color,i[n-1].color):!1,s=r?t.height===i[n-1].height:!0;return!o||!s}),e}function zyt(e){let t,n,i=[],r=e.length;for(t=0;t<r;t++){let o=e[t],s=o.entries,a=s.length,c=[];for(n=0;n<a;n++){let g=s[n],m=P.clamp(g.height,jl._minimumHeight,jl._maximumHeight),A=z.clone(g.color,Fyt);A.red*=A.alpha,A.green*=A.alpha,A.blue*=A.alpha,c.push(TH(m,A))}let l=!0,f=!0;for(n=0;n<a-1;n++){let g=c[n+0],m=c[n+1];l=l&&g.height<=m.height,f=f&&g.height>=m.height}f?c=c.reverse():l||U_(c,function(g,m){return P.sign(g.height-m.height)});let d=y(o.extendDownwards,!1),p=y(o.extendUpwards,!1);c.length===1&&!d&&!p&&(d=!0,p=!0),d&&c.splice(0,0,TH(jl._minimumHeight,c[0].color)),p&&c.splice(c.length,0,TH(jl._maximumHeight,c[c.length-1].color)),c=WAe(c),i.push(c)}return i}function Hyt(e){let t=zyt(e),n=[],i=[],r;function o(l,f){n.push(TH(l,f))}function s(l,f,d){let p=z.multiplyByScalar(d,1-f.alpha,kyt);p=z.add(p,f,p),o(l,p)}let a=t.length;for(r=0;r<a;r++){let l=t[r],f=0,d=0;i=n,n=[];let p=l.length,g=i.length;for(;f<p||d<g;){let m=f<p?l[f]:void 0,A=f>0?l[f-1]:void 0,x=f<p-1?l[f+1]:void 0,C=d<g?i[d]:void 0,T=d>0?i[d-1]:void 0,E=d<g-1?i[d+1]:void 0;if(u(m)&&u(C)&&m.height===C.height){let S=u(E)&&C.height===E.height,v=!u(T),D=!u(E),M=u(x)&&m.height===x.height,O=!u(A),B=!u(x);S?M?(s(m.height,m.color,C.color),s(m.height,x.color,E.color)):O?(o(m.height,C.color),s(m.height,m.color,E.color)):B?(s(m.height,m.color,C.color),o(m.height,E.color)):(s(m.height,m.color,C.color),s(m.height,m.color,E.color)):v?M?(o(m.height,m.color),s(m.height,x.color,C.color)):B?(o(m.height,m.color),o(m.height,C.color)):(O||o(m.height,m.color),s(m.height,m.color,C.color)):D?M?(s(m.height,m.color,C.color),o(m.height,x.color)):O?(o(m.height,C.color),o(m.height,m.color)):B?s(m.height,m.color,C.color):(s(m.height,m.color,C.color),o(m.height,m.color)):M?(s(m.height,m.color,C.color),s(m.height,x.color,C.color)):O?(o(m.height,C.color),s(m.height,m.color,C.color)):B?(s(m.height,m.color,C.color),o(m.height,C.color)):s(m.height,m.color,C.color),f+=M?2:1,d+=S?2:1}else if(u(m)&&u(C)&&u(T)&&m.height<C.height){let S=GAe(m.height,T,C,Vyt);u(A)?u(x)?s(m.height,m.color,S):(s(m.height,m.color,S),o(m.height,S)):(o(m.height,S),s(m.height,m.color,S)),f++}else if(u(C)&&u(m)&&u(A)&&C.height<m.height){let S=GAe(C.height,A,m,Uyt);u(T)?u(E)?s(C.height,S,C.color):(s(C.height,S,C.color),o(C.height,S)):(o(C.height,S),s(C.height,S,C.color)),d++}else u(m)&&(!u(C)||m.height<C.height)?(u(C)&&!u(T)&&!u(x)?(o(m.height,m.color),o(m.height,jl._emptyColor),o(C.height,jl._emptyColor)):(!u(C)&&u(T)&&!u(A)&&(o(T.height,jl._emptyColor),o(m.height,jl._emptyColor)),o(m.height,m.color)),f++):u(C)&&(!u(m)||C.height<m.height)&&(o(C.height,C.color),d++)}}return WAe(n)}function jl(e){let{scene:t,layers:n}=y(e,y.EMPTY_OBJECT),{context:i}=t,r=Hyt(n),o=r.length,s,a,c;if(!jl._useFloatTexture(i)){a=Ke.UNSIGNED_BYTE,c=at.RGBA,s=new Uint8Array(o*4);for(let g=0;g<o;g++)se.packFloat(r[g].height,HAe),se.pack(HAe,s,g*4)}else{a=Ke.FLOAT,c=i.webgl2?at.RED:at.LUMINANCE,s=new Float32Array(o);for(let g=0;g<o;g++)s[g]=r[g].height}let f=Rt.create({context:i,pixelFormat:c,pixelDatatype:a,source:{arrayBufferView:s,width:o,height:1},sampler:new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:sn.NEAREST,magnificationFilter:Ti.NEAREST})}),d=new Uint8Array(o*4);for(let g=0;g<o;g++)r[g].color.toBytes(o2),d[g*4+0]=o2[0],d[g*4+1]=o2[1],d[g*4+2]=o2[2],d[g*4+3]=o2[3];let p=Rt.create({context:i,pixelFormat:at.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:d,width:o,height:1},sampler:new ln({wrapS:Sn.CLAMP_TO_EDGE,wrapT:Sn.CLAMP_TO_EDGE,minificationFilter:sn.LINEAR,magnificationFilter:Ti.LINEAR})});return Gi.fromType("ElevationBand",{heights:f,colors:p})}jl._useFloatTexture=function(e){return e.floatingPointTexture};jl._maximumHeight=5906376425472;jl._minimumHeight=-5906376425472;jl._emptyColor=new z(0,0,0,0);var FX=jl;function Gyt(e){$("createOsmBuildings","createOsmBuildings was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use createOsmBuildingsAsync instead."),e=_t(e,{url:Xs.fromAssetId(96188)});let t=new Ea(e),n=e.style;if(!u(n)){let i=y(e.defaultColor,z.WHITE).toCssColorString();n=new Y_({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var UX=Gyt;async function Wyt(e){let t=await Ea.fromIonAssetId(96188,e);e=y(e,y.EMPTY_OBJECT);let n=e.style;if(!u(n)){let i=y(e.defaultColor,z.WHITE).toCssColorString();n=new Y_({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var VX=Wyt;function jyt(e){e=y(e,y.EMPTY_OBJECT);let t=[],n=e.geometry;(!u(n.attributes)||!u(n.primitiveType))&&(n=n.constructor.createGeometry(n));let i=n.attributes,r=N.clone(y(e.modelMatrix,N.IDENTITY)),o=y(e.length,1e4);if(u(i.normal)&&t.push(new xt({geometry:Ln.createLineSegmentsForVectors(n,"normal",o),attributes:{color:new kt(1,0,0,1)},modelMatrix:r})),u(i.tangent)&&t.push(new xt({geometry:Ln.createLineSegmentsForVectors(n,"tangent",o),attributes:{color:new kt(0,1,0,1)},modelMatrix:r})),u(i.bitangent)&&t.push(new xt({geometry:Ln.createLineSegmentsForVectors(n,"bitangent",o),attributes:{color:new kt(0,0,1,1)},modelMatrix:r})),t.length>0)return new bn({asynchronous:!1,geometryInstances:t,appearance:new rn({flat:!0,translucent:!1})})}var kX=jyt;function qyt(e){$("createWorldImagery","createWorldImagery was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use createWorldImageryAsync instead."),e=y(e,y.EMPTY_OBJECT);let t=y(e.style,ph.AERIAL),n=new zf;return zf._initialize(n,t,e),n}var zX=qyt;var Yyt=15;function HX(e){this.ellipsoid=y(e.ellipsoid,re.WGS84),this.credit=void 0,this.tilingScheme=void 0,this.height=void 0,this.width=void 0,this.encoding=void 0,this.lodCount=void 0,this.hasAvailability=!1,this.tilesAvailable=void 0,this.tilesAvailabilityLoaded=void 0,this.levelZeroMaximumGeometricError=void 0,this.terrainDataStructure=void 0}HX.prototype.build=function(e){e._credit=this.credit,e._tilingScheme=this.tilingScheme,e._height=this.height,e._width=this.width,e._encoding=this.encoding,e._lodCount=this.lodCount,e._hasAvailability=this.hasAvailability,e._tilesAvailable=this.tilesAvailable,e._tilesAvailabilityLoaded=this.tilesAvailabilityLoaded,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._terrainDataStructure=this.terrainDataStructure,e._ready=!0};function Xyt(e,t){let n=t.copyrightText;u(n)&&(e.credit=new wt(n));let i=t.spatialReference,r=y(i.latestWkid,i.wkid),o=t.extent,s={ellipsoid:e.ellipsoid};if(r===4326)s.rectangle=le.fromDegrees(o.xmin,o.ymin,o.xmax,o.ymax),e.tilingScheme=new Wi(s);else if(r===3857){let l=Math.PI*e.ellipsoid.maximumRadius;t.extent.xmax>l&&(t.extent.xmax=l),t.extent.ymax>l&&(t.extent.ymax=l),t.extent.xmin<-l&&(t.extent.xmin=-l),t.extent.ymin<-l&&(t.extent.ymin=-l),s.rectangleSouthwestInMeters=new H(o.xmin,o.ymin),s.rectangleNortheastInMeters=new H(o.xmax,o.ymax),e.tilingScheme=new Fo(s)}else throw new de("Invalid spatial reference");let a=t.tileInfo;if(!u(a))throw new de("tileInfo is required");e.width=a.rows+1,e.height=a.cols+1,e.encoding=a.format==="LERC"?Ff.LERC:Ff.NONE,e.lodCount=a.lods.length-1,(e.hasAvailability=t.capabilities.indexOf("Tilemap")!==-1)&&(e.tilesAvailable=new Sh(e.tilingScheme,e.lodCount),e.tilesAvailable.addAvailableTileRange(0,0,0,e.tilingScheme.getNumberOfXTilesAtLevel(0),e.tilingScheme.getNumberOfYTilesAtLevel(0)),e.tilesAvailabilityLoaded=new Sh(e.tilingScheme,e.lodCount)),e.levelZeroMaximumGeometricError=Yo.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.width,e.tilingScheme.getNumberOfXTilesAtLevel(0)),t.bandCount>1&&console.log("ArcGISTiledElevationTerrainProvider: Terrain data has more than 1 band. Using the first one."),u(t.minValues)&&u(t.maxValues)?e.terrainDataStructure={elementMultiplier:1,lowestEncodedHeight:t.minValues[0],highestEncodedHeight:t.maxValues[0]}:e.terrainDataStructure={elementMultiplier:1}}async function jAe(e,t,n){try{let i=await t.fetchJson();Xyt(e,i)}catch(i){let r=`An error occurred while accessing ${t}.`;throw Ai.reportError(void 0,n,u(n)?n._errorEvent:void 0,r),i}}function c0(e){e=y(e,y.EMPTY_OBJECT),this._resource=void 0,this._credit=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._maxLevel=void 0,this._terrainDataStructure=void 0,this._width=void 0,this._height=void 0,this._encoding=void 0,this._lodCount=void 0;let t=e.token;if(this._hasAvailability=!1,this._tilesAvailable=void 0,this._tilesAvailabilityLoaded=void 0,this._availableCache={},this._ready=!1,this._errorEvent=new ge,u(e.url)){$("ArcGISTiledElevationTerrainProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead.");let n=this,i=new HX(e);this._readyPromise=Promise.resolve(e.url).then(async function(r){let o=ve.createIfNeeded(r);o.appendForwardSlash(),u(t)&&(o=o.getDerivedResource({queryParameters:{token:t}})),n._resource=o;let s=o.getDerivedResource({queryParameters:{f:"pjson"}});return await jAe(i,s,n),i.build(n),!0})}}Object.defineProperties(c0.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("ArcGISTiledElevationTerrainProvider.ready","ArcGISTiledElevationTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("ArcGISTiledElevationTerrainProvider.readyPromise","ArcGISTiledElevationTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead."),this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){return this._tilesAvailable}}});c0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=ve.createIfNeeded(e);n.appendForwardSlash(),u(t.token)&&(n=n.getDerivedResource({queryParameters:{token:t.token}}));let i=n.getDerivedResource({queryParameters:{f:"pjson"}}),r=new HX(t);await jAe(r,i);let o=new c0(t);return r.build(o),o._resource=n,o};c0.prototype.requestTileGeometry=function(e,t,n,i){let r=this._resource.getDerivedResource({url:`tile/${n}/${t}/${e}`,request:i}),o=this._hasAvailability,s=Promise.resolve(!0),a;if(o&&!u(GX(this,n+1,e*2,t*2))){let d=qAe(this,n+1,e*2,t*2);s=d.promise,a=d.request}let c=r.fetchArrayBuffer();if(!u(c)||!u(s))return;let l=this,f=this._tilesAvailable;return Promise.all([c,s]).then(function(d){return new wa({buffer:d[0],width:l._width,height:l._height,childTileMask:o?f.computeChildMaskForTile(n,e,t):Yyt,structure:l._terrainDataStructure,encoding:l._encoding})}).catch(function(d){return u(a)&&a.state===ti.CANCELLED?(i.cancel(),i.deferred.promise.finally(function(){return i.state=ti.CANCELLED,Promise.reject(d)})):Promise.reject(d)})};function GX(e,t,n,i){if(!e._hasAvailability)return;let r=e._tilesAvailabilityLoaded,o=e._tilesAvailable;if(t>e._lodCount)return!1;if(o.isTileAvailable(t,n,i))return!0;if(r.isTileAvailable(t,n,i))return!1}c0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};c0.prototype.getTileDataAvailable=function(e,t,n){if(!this._hasAvailability)return;let i=GX(this,n,e,t);if(u(i))return i;qAe(this,n,e,t)};c0.prototype.loadTileDataAvailability=function(e,t,n){};function Kyt(e,t,n,i){let r=t-1,o=n-1,s=i[e.y*t+e.x],a=[],c={startX:e.x,startY:e.y,endX:0,endY:0},l=new H(e.x+1,e.y+1),f=!1,d=!1;for(;!(f&&d);){let p=l.x,g=d?l.y+1:l.y;if(!f){for(let m=e.y;m<g;++m)if(i[m*t+l.x]!==s){f=!0;break}f?(a.push(new H(l.x,e.y)),--l.x,--p,c.endX=l.x):l.x===r?(c.endX=l.x,f=!0):++l.x}if(!d){let m=l.y*t;for(let A=e.x;A<=p;++A)if(i[m+A]!==s){d=!0;break}d?(a.push(new H(e.x,l.y)),--l.y,c.endY=l.y):l.y===o?(c.endY=l.y,d=!0):++l.y}}return{endingIndices:a,range:c,value:s}}function Jyt(e,t,n,i,r){let o=[];if(r.every(function(c){return c===r[0]}))return r[0]===1&&o.push({startX:e,startY:t,endX:e+n-1,endY:t+i-1}),o;let a=[new H(0,0)];for(;a.length>0;){let c=a.pop(),l=Kyt(c,n,i,r);if(l.value===1){let d=l.range;d.startX+=e,d.endX+=e,d.startY+=t,d.endY+=t,o.push(d)}let f=l.endingIndices;f.length>0&&(a=a.concat(f))}return o}function qAe(e,t,n,i){if(!e._hasAvailability)return{};let r=Math.floor(n/128)*128,o=Math.floor(i/128)*128,s=Math.min(1<<t,128),a=`tilemap/${t}/${o}/${r}/${s}/${s}`,c=e._availableCache;if(u(c[a]))return c[a];let l=new jr({throttle:!1,throttleByServer:!0,type:es.TERRAIN}),d=e._resource.getDerivedResource({url:a,request:l}).fetchJson();return u(d)?(d=d.then(function(p){let g=Jyt(r,o,s,s,p.data);e._tilesAvailabilityLoaded.addAvailableTileRange(t,r,o,r+s,o+s);let m=e._tilesAvailable;for(let A=0;A<g.length;++A){let x=g[A];m.addAvailableTileRange(t,x.startX,x.startY,x.endX,x.endY)}return GX(e,t,n,i)}),c[a]={promise:d,request:l},d=d.finally(function(p){return delete c[a],p}),{promise:d,request:l}):{}}var WX=c0;var YAe="https://dev.virtualearth.net/REST/v1/Locations";function jX(e){e=y(e,y.EMPTY_OBJECT);let t=e.key;this._key=t;let n={key:t};u(e.culture)&&(n.culture=e.culture),this._resource=new ve({url:YAe,queryParameters:n}),this._credit=new wt('<img src="http://dev.virtualearth.net/Branding/logo_powered_by.png"/>',!1)}Object.defineProperties(jX.prototype,{url:{get:function(){return YAe}},key:{get:function(){return this._key}},credit:{get:function(){return this._credit}}});jX.prototype.geocode=async function(e){return this._resource.getDerivedResource({queryParameters:{query:e}}).fetchJsonp("jsonp").then(function(n){return n.resourceSets.length===0?[]:n.resourceSets[0].resources.map(function(r){let o=r.bbox,s=o[0],a=o[1],c=o[2],l=o[3];return{displayName:r.name,destination:le.fromDegrees(a,s,l,c)}})})};var qX=jX;function YX(){}Object.defineProperties(YX.prototype,{credit:{get:function(){}}});YX.prototype.geocode=function(e){let t=e.match(/[^\s,\n]+/g);if(t.length===2||t.length===3){let n=+t[0],i=+t[1],r=t.length===3?+t[2]:300;if(isNaN(n)&&isNaN(i)){let o=/^(\d+.?\d*)([nsew])/i;for(let s=0;s<t.length;++s){let a=t[s].match(o);o.test(t[s])&&a.length===3&&(/^[ns]/i.test(a[2])?i=/^[n]/i.test(a[2])?+a[1]:-a[1]:/^[ew]/i.test(a[2])&&(n=/^[e]/i.test(a[2])?+a[1]:-a[1]))}}if(!isNaN(n)&&!isNaN(i)&&!isNaN(r)){let o={displayName:e,destination:h.fromDegrees(n,i,r)};return Promise.resolve([o])}}return Promise.resolve([])};var s2=YX;var Zyt=new se,XAe=new h,XS=new h;function Qyt(e){let t=e.points,n=e.times;if(t.length<3){let i=n[0],r=1/(n[1]-i),o=t[0],s=t[1];return function(a,c){u(c)||(c=new h);let l=(a-i)*r;return h.lerp(o,s,l,c)}}return function(i,r){u(r)||(r=new h);let o=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[o])/(n[o+1]-n[o]),a=Zyt;a.z=s,a.y=s*s,a.x=a.y*s,a.w=1;let c,l,f,d,p;return o===0?(c=t[0],l=t[1],f=e.firstTangent,d=h.subtract(t[2],c,XAe),h.multiplyByScalar(d,.5,d),p=N.multiplyByVector(kg.hermiteCoefficientMatrix,a,a)):o===t.length-2?(c=t[o],l=t[o+1],d=e.lastTangent,f=h.subtract(l,t[o-1],XAe),h.multiplyByScalar(f,.5,f),p=N.multiplyByVector(kg.hermiteCoefficientMatrix,a,a)):(c=t[o-1],l=t[o],f=t[o+1],d=t[o+2],p=N.multiplyByVector(l0.catmullRomCoefficientMatrix,a,a)),r=h.multiplyByScalar(c,p.x,r),h.multiplyByScalar(l,p.y,XS),h.add(r,XS,r),h.multiplyByScalar(f,p.z,XS),h.add(r,XS,r),h.multiplyByScalar(d,p.w,XS),h.add(r,XS,r)}}var $yt=new h,e0t=new h;function l0(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.firstTangent,r=e.lastTangent;if(t.length>2&&(u(i)||(i=$yt,h.multiplyByScalar(t[1],2,i),h.subtract(i,t[2],i),h.subtract(i,t[0],i),h.multiplyByScalar(i,.5,i)),!u(r))){let o=t.length-1;r=e0t,h.multiplyByScalar(t[o-1],2,r),h.subtract(t[o],r,r),h.add(r,t[o-2],r),h.multiplyByScalar(r,.5,r)}this._times=n,this._points=t,this._firstTangent=h.clone(i),this._lastTangent=h.clone(r),this._evaluateFunction=Qyt(this),this._lastTimeIndex=0}Object.defineProperties(l0.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},firstTangent:{get:function(){return this._firstTangent}},lastTangent:{get:function(){return this._lastTangent}}});l0.catmullRomCoefficientMatrix=new N(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0);l0.prototype.findTimeInterval=sr.prototype.findTimeInterval;l0.prototype.wrapTime=sr.prototype.wrapTime;l0.prototype.clampTime=sr.prototype.clampTime;l0.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var XX=l0;function K_(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new qc(n),this._workerName="createCircleGeometry"}K_.packedLength=qc.packedLength;K_.pack=function(e,t,n){return qc.pack(e._ellipseGeometry,t,n)};var t0t=new qc({center:new h,semiMajorAxis:1,semiMinorAxis:1}),xc={center:new h,radius:void 0,ellipsoid:re.clone(re.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new Pe,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};K_.unpack=function(e,t,n){let i=qc.unpack(e,t,t0t);return xc.center=h.clone(i._center,xc.center),xc.ellipsoid=re.clone(i._ellipsoid,xc.ellipsoid),xc.height=i._height,xc.extrudedHeight=i._extrudedHeight,xc.granularity=i._granularity,xc.vertexFormat=Pe.clone(i._vertexFormat,xc.vertexFormat),xc.stRotation=i._stRotation,xc.shadowVolume=i._shadowVolume,u(n)?(xc.semiMajorAxis=i._semiMajorAxis,xc.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new qc(xc),n):(xc.radius=i._semiMajorAxis,new K_(xc))};K_.createGeometry=function(e){return qc.createGeometry(e._ellipseGeometry)};K_.createShadowVolume=function(e,t,n){let i=e._ellipseGeometry._granularity,r=e._ellipseGeometry._ellipsoid,o=t(i,r),s=n(i,r);return new K_({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:r,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:o,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(K_.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var KX=K_;function KS(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new yu(n),this._workerName="createCircleOutlineGeometry"}KS.packedLength=yu.packedLength;KS.pack=function(e,t,n){return yu.pack(e._ellipseGeometry,t,n)};var n0t=new yu({center:new h,semiMajorAxis:1,semiMinorAxis:1}),Wu={center:new h,radius:void 0,ellipsoid:re.clone(re.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};KS.unpack=function(e,t,n){let i=yu.unpack(e,t,n0t);return Wu.center=h.clone(i._center,Wu.center),Wu.ellipsoid=re.clone(i._ellipsoid,Wu.ellipsoid),Wu.height=i._height,Wu.extrudedHeight=i._extrudedHeight,Wu.granularity=i._granularity,Wu.numberOfVerticalLines=i._numberOfVerticalLines,u(n)?(Wu.semiMajorAxis=i._semiMajorAxis,Wu.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new yu(Wu),n):(Wu.radius=i._semiMajorAxis,new KS(Wu))};KS.createGeometry=function(e){return yu.createGeometry(e._ellipseGeometry)};var JX=KS;function JS(e){e=y(e,y.EMPTY_OBJECT),this._callback=e.callback,this._tilingScheme=e.tilingScheme,u(this._tilingScheme)||(this._tilingScheme=new Wi({ellipsoid:y(e.ellipsoid,re.WGS84)})),this._width=e.width,this._height=e.height;let t=Math.max(this._width,this._height);this._levelZeroMaximumGeometricError=Yo.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,t,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new ge;let n=e.credit;typeof n=="string"&&(n=new wt(n)),this._credit=n,this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(JS.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("CustomHeightmapTerrainProvider.ready","CustomHeightmapTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("CustomHeightmapTerrainProvider.readyPromise","CustomHeightmapTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});JS.prototype.requestTileGeometry=function(e,t,n,i){let r=this._callback(e,t,n);if(!u(r))return;let o=this._width,s=this._height;return Promise.resolve(r).then(function(a){let c=a;return Array.isArray(c)&&(c=new Float64Array(c)),new wa({buffer:c,width:o,height:s})})};JS.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};JS.prototype.getTileDataAvailable=function(e,t,n){};JS.prototype.loadTileDataAvailability=function(e,t,n){};var ZX=JS;function KAe(e){this.proxy=e}KAe.prototype.getURL=function(e){let t=this.proxy.indexOf("?")===-1?"?":"";return this.proxy+t+encodeURIComponent(e)};var QX=KAe;var i0t={SEARCH:0,AUTOCOMPLETE:1},u0=Object.freeze(i0t);function EH(){fe.throwInstantiationError()}Object.defineProperties(EH.prototype,{credit:{get:fe.throwInstantiationError}});EH.getCreditsFromResult=function(e){if(u(e.attributions))return e.attributions.map(wt.getIonCredit)};EH.prototype.geocode=fe.throwInstantiationError;var ZS=EH;function JAe(){fe.throwInstantiationError()}JAe.createGeometry=function(e){fe.throwInstantiationError()};var $X=JAe;function zC(e){e=y(e,y.EMPTY_OBJECT),this._buffer=e.buffer,this._credits=e.credits,this._negativeAltitudeExponentBias=e.negativeAltitudeExponentBias,this._negativeElevationThreshold=e.negativeElevationThreshold;let t=y(e.childTileMask,15),n=t&3;n|=t&4?8:0,n|=t&8?4:0,this._childTileMask=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._skirtHeight=void 0,this._bufferType=this._buffer.constructor,this._mesh=void 0,this._minimumHeight=void 0,this._maximumHeight=void 0}Object.defineProperties(zC.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var $Ae="createVerticesFromGoogleEarthEnterpriseBuffer",r0t=new pi($Ae),o0t=new pi($Ae,fh.maximumAsynchronousTasks),ZAe=new le,eK=new le;zC.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,r=e.level,o=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid;t.tileXYToNativeRectangle(n,i,r,ZAe),t.tileXYToRectangle(n,i,r,eK);let l=c.cartographicToCartesian(le.center(eK)),d=40075.16/(1<<r);this._skirtHeight=Math.min(d*8,1e3);let g=(a?o0t:r0t).scheduleTask({buffer:this._buffer,nativeRectangle:ZAe,rectangle:eK,relativeToCenter:l,ellipsoid:c,skirtHeight:this._skirtHeight,exaggeration:o,exaggerationRelativeHeight:s,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!u(g))return;let m=this;return g.then(function(A){return m._mesh=new Vf(l,new Float32Array(A.vertices),new Uint16Array(A.indices),A.indexCountWithoutSkirts,A.vertexCountWithoutSkirts,A.minimumHeight,A.maximumHeight,ae.clone(A.boundingSphere3D),h.clone(A.occludeePointInScaledSpace),A.numberOfAttributes,On.clone(A.orientedBoundingBox),dc.clone(A.encoding),A.westIndicesSouthToNorth,A.southIndicesEastToWest,A.eastIndicesNorthToSouth,A.northIndicesWestToEast),m._minimumHeight=A.minimumHeight,m._maximumHeight=A.maximumHeight,m._buffer=void 0,m._mesh})};zC.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1),r=P.clamp((n-e.south)/e.height,0,1);return u(this._mesh)?u0t(this,i,r):h0t(this,i,r,e)};var s0t=new pi("upsampleQuantizedTerrainMesh",fh.maximumAsynchronousTasks);zC.prototype.upsample=function(e,t,n,i,r,o,s){let a=this._mesh;if(!u(this._mesh))return;let c=t*2!==r,l=n*2===o,f=e.ellipsoid,d=e.tileXYToRectangle(r,o,s),p=s0t.scheduleTask({vertices:a.vertices,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:l,childRectangle:d,ellipsoid:f});if(!u(p))return;let g=this;return p.then(function(m){let A=new Uint16Array(m.vertices),x=Ue.createTypedArray(A.length/3,m.indices),C=g._skirtHeight;return new OC({quantizedVertices:A,indices:x,minimumHeight:m.minimumHeight,maximumHeight:m.maximumHeight,boundingSphere:ae.clone(m.boundingSphere),orientedBoundingBox:On.clone(m.orientedBoundingBox),horizonOcclusionPoint:h.clone(m.horizonOcclusionPoint),westIndices:m.westIndices,southIndices:m.southIndices,eastIndices:m.eastIndices,northIndices:m.northIndices,westSkirtHeight:C,southSkirtHeight:C,eastSkirtHeight:C,northSkirtHeight:C,childTileMask:0,createdByUpsampling:!0,credits:g._credits})})};zC.prototype.isChildAvailable=function(e,t,n,i){let r=2;return n!==e*2&&++r,i!==t*2&&(r-=2),(this._childTileMask&1<<r)!==0};zC.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var a0t=new H,c0t=new H,l0t=new H,exe=new h;function u0t(e,t,n){let i=e._mesh,r=i.vertices,o=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let l=s[a],f=s[a+1],d=s[a+2],p=o.decodeTextureCoordinates(r,l,a0t),g=o.decodeTextureCoordinates(r,f,c0t),m=o.decodeTextureCoordinates(r,d,l0t),A=X_.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,exe);if(A.x>=-1e-15&&A.y>=-1e-15&&A.z>=-1e-15){let x=o.decodeHeight(r,l),C=o.decodeHeight(r,f),T=o.decodeHeight(r,d);return A.x*x+A.y*C+A.z*T}}}var f0t=Uint16Array.BYTES_PER_ELEMENT,QAe=Uint32Array.BYTES_PER_ELEMENT,tK=Int32Array.BYTES_PER_ELEMENT,d0t=Float32Array.BYTES_PER_ELEMENT,nK=Float64Array.BYTES_PER_ELEMENT;function h0t(e,t,n,i){let r=e._buffer,o=0,s=0,a=0;n>.5?(t>.5?(o=2,s=.5):o=3,a=.5):t>.5&&(o=1,s=.5);let c=new DataView(r),l=0;for(let v=0;v<o;++v)l+=c.getUint32(l,!0),l+=QAe;l+=QAe,l+=2*nK;let f=P.toRadians(c.getFloat64(l,!0)*180);l+=nK;let d=P.toRadians(c.getFloat64(l,!0)*180);l+=nK;let p=i.width/f/2,g=i.height/d/2,m=c.getInt32(l,!0);l+=tK;let A=c.getInt32(l,!0)*3;l+=tK,l+=tK;let x=new Array(m),C=new Array(m),T=new Array(m),E;for(E=0;E<m;++E)x[E]=s+c.getUint8(l++)*p,C[E]=a+c.getUint8(l++)*g,T[E]=c.getFloat32(l,!0)*6371010,l+=d0t;let S=new Array(A);for(E=0;E<A;++E)S[E]=c.getUint16(l,!0),l+=f0t;for(E=0;E<A;E+=3){let v=S[E],D=S[E+1],M=S[E+2],O=x[v],B=x[D],L=x[M],_=C[v],b=C[D],w=C[M],I=X_.computeBarycentricCoordinates(t,n,O,_,B,b,L,w,exe);if(I.x>=-1e-15&&I.y>=-1e-15&&I.z>=-1e-15)return I.x*T[v]+I.y*T[D]+I.z*T[M]}}var QS=zC;var Jf={UNKNOWN:0,NONE:1,SELF:2,PARENT:3},bH=new ee;function SH(){this._terrainCache={},this._lastTidy=ee.now()}SH.prototype.add=function(e,t){this._terrainCache[e]={buffer:t,timestamp:ee.now()}};SH.prototype.get=function(e){let n=this._terrainCache[e];if(u(n))return delete this._terrainCache[e],n.buffer};SH.prototype.tidy=function(){if(ee.now(bH),ee.secondsDifference(bH,this._lastTidy)>10){let e=this._terrainCache,t=Object.keys(e),n=t.length;for(let i=0;i<n;++i){let r=t[i],o=e[r];ee.secondsDifference(bH,o.timestamp)>10&&delete e[r]}ee.clone(bH,this._lastTidy)}};function f0(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=new Wi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new le(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;if(typeof t=="string"&&(t=new wt(t)),this._credit=t,this._levelZeroMaximumGeometricError=40075.16,this._terrainCache=new SH,this._terrainPromises={},this._terrainRequests={},this._errorEvent=new ge,this._ready=!1,u(e.url)){$("GoogleEarthEnterpriseTerrainProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseTerrainProvider.fromMetadata instead.");let n=ve.createIfNeeded(e.url),i=this,r;this._readyPromise=bh.fromUrl(n).then(o=>{if(!o.terrainPresent){let s=new de(`The server ${o.url} doesn't have terrain`);return Promise.reject(s)}return Ai.reportSuccess(r),i._metadata=o,i._ready=!0,!0}).catch(o=>{throw r=Ai.reportError(r,i,i._errorEvent,o.message,void 0,void 0,void 0,o),o})}else if(u(e.metadata)){$("GoogleEarthEnterpriseTerrainProvider options.metadata","options.metadata was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseTerrainProvider.fromMetadata instead.");let n=e.metadata;this._metadata=n;let i=this;this._readyPromise=Promise.resolve(this._metadata._readyPromise).then(()=>{if(!n.terrainPresent)throw new de(`The server ${n.url} doesn't have terrain`);i._ready=!0})}}Object.defineProperties(f0.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tilingScheme:{get:function(){return this._tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("GoogleEarthEnterpriseTerrainProvider.ready","GoogleEarthEnterpriseTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._ready}},readyPromise:{get:function(){return $("GoogleEarthEnterpriseTerrainProvider.readyPromise","GoogleEarthEnterpriseTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){return this._credit}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});f0.fromMetadata=function(e,t){if(!e.terrainPresent)throw new de(`The server ${e.url} doesn't have terrain`);let n=new f0(t);return n._metadata=e,n._readyPromise=Promise.resolve(!0),n._ready=!0,n};var m0t=new pi("decodeGoogleEarthEnterprisePacket");function txe(e,t,n){let i=t.getChildBitmask();if(t.terrainState===Jf.PARENT){i=0;for(let r=0;r<4;++r){let o=n.getTileInformationFromQuadKey(e+r.toString());u(o)&&o.hasTerrain()&&(i|=1<<r)}}return i}f0.prototype.requestTileGeometry=function(e,t,n,i){let r=bh.tileXYToQuadKey(e,t,n),o=this._terrainCache,s=this._metadata,a=s.getTileInformationFromQuadKey(r);if(!u(a))return Promise.reject(new de("Terrain tile doesn't exist"));let c=a.terrainState;u(c)||(c=a.terrainState=Jf.UNKNOWN);let l=o.get(r);if(u(l)){let C=s.providers[a.terrainProvider];return Promise.resolve(new QS({buffer:l,childTileMask:txe(r,a,s),credits:u(C)?[C]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold}))}if(o.tidy(),a.ancestorHasTerrain){if(c===Jf.NONE)return Promise.reject(new de("Terrain tile doesn't exist"))}else return Promise.resolve(new wa({buffer:new Uint8Array(16*16),width:16,height:16}));let f,d=r,p=-1;switch(c){case Jf.SELF:p=a.terrainVersion;break;case Jf.PARENT:d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),p=f.terrainVersion;break;case Jf.UNKNOWN:a.hasTerrain()?p=a.terrainVersion:(d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),u(f)&&f.hasTerrain()&&(p=f.terrainVersion));break}if(p<0)return Promise.reject(new de("Terrain tile doesn't exist"));let g=this._terrainPromises,m=this._terrainRequests,A,x;if(u(g[d]))A=g[d],x=m[d];else{x=i;let C=p0t(this,d,p,x).fetchArrayBuffer();if(!u(C))return;A=C.then(function(T){return u(T)?m0t.scheduleTask({buffer:T,type:"Terrain",key:s.key},[T]).then(function(E){let S=s.getTileInformationFromQuadKey(d);S.terrainState=Jf.SELF,o.add(d,E[0]);let v=S.terrainProvider,D=E.length-1;for(let M=0;M<D;++M){let O=d+M.toString(),B=s.getTileInformationFromQuadKey(O);u(B)&&(o.add(O,E[M+1]),B.terrainState=Jf.PARENT,B.terrainProvider===0&&(B.terrainProvider=v))}}):Promise.reject(new de("Failed to load terrain."))}),g[d]=A,m[d]=x,A=A.finally(function(){delete g[d],delete m[d]})}return A.then(function(){let C=o.get(r);if(u(C)){let T=s.providers[a.terrainProvider];return new QS({buffer:C,childTileMask:txe(r,a,s),credits:u(T)?[T]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold})}return Promise.reject(new de("Failed to load terrain."))}).catch(function(C){return x.state===ti.CANCELLED?(i.state=x.state,Promise.reject(C)):(a.terrainState=Jf.NONE,Promise.reject(C))})};f0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};f0.prototype.getTileDataAvailable=function(e,t,n){let i=this._metadata,r=bh.tileXYToQuadKey(e,t,n),o=i.getTileInformation(e,t,n);if(o===null)return!1;if(u(o)){if(!o.ancestorHasTerrain)return!0;let s=o.terrainState;if(s===Jf.NONE)return!1;if((!u(s)||s===Jf.UNKNOWN)&&(o.terrainState=Jf.UNKNOWN,!o.hasTerrain())){r=r.substring(0,r.length-1);let a=i.getTileInformationFromQuadKey(r);if(!u(a)||!a.hasTerrain())return!1}return!0}if(i.isValid(r)){let s=new jr({throttle:!1,throttleByServer:!0,type:es.TERRAIN});i.populateSubtree(e,t,n,s)}return!1};f0.prototype.loadTileDataAvailability=function(e,t,n){};function p0t(e,t,n,i){return n=u(n)&&n>0?n:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1c-0${t}-t.${n.toString()}`,request:i})}var iK=f0;var a2={};a2.type=void 0;a2.getRequiredDataPoints=fe.throwInstantiationError;a2.interpolateOrderZero=fe.throwInstantiationError;a2.interpolate=fe.throwInstantiationError;var rK=a2;function oK(e){this._url=ve.createIfNeeded(e),this._url.appendForwardSlash()}Object.defineProperties(oK.prototype,{url:{get:function(){return this._url}},credit:{get:function(){}}});oK.prototype.geocode=async function(e,t){return this._url.getDerivedResource({url:t===u0.AUTOCOMPLETE?"autocomplete":"search",queryParameters:{text:e}}).fetchJson().then(function(i){return i.features.map(function(r){let o,s=r.bbox;if(u(s))o=le.fromDegrees(s[0],s[1],s[2],s[3]);else{let a=r.geometry.coordinates[0],c=r.geometry.coordinates[1];o=h.fromDegrees(a,c)}return{displayName:r.properties.label,destination:o,attributions:i.attributions}})})};var c2=oK;function sK(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.accessToken,Cd.defaultAccessToken),n=ve.createIfNeeded(y(e.server,Cd.defaultServer));n.appendForwardSlash();let i=Cd.getDefaultTokenCredit(t);u(i)&&e.scene.frameState.creditDisplay.addStaticCredit(wt.clone(i));let r=n.getDerivedResource({url:"v1/geocode"});u(t)&&r.appendQueryParameters({access_token:t}),this._accessToken=t,this._server=n,this._pelias=new c2(r)}Object.defineProperties(sK.prototype,{credit:{get:function(){}}});sK.prototype.geocode=async function(e,t){return this._pelias.geocode(e,t)};var l2=sK;function vH(){fe.throwInstantiationError()}Object.defineProperties(vH.prototype,{ellipsoid:{get:fe.throwInstantiationError}});vH.prototype.project=fe.throwInstantiationError;vH.prototype.unproject=fe.throwInstantiationError;var aK=vH;function $S(e){e=y(e,y.EMPTY_OBJECT);let t=e.weights,n=e.times;this._times=n,this._weights=t,this._count=t.length/n.length,this._lastTimeIndex=0}Object.defineProperties($S.prototype,{times:{get:function(){return this._times}},weights:{get:function(){return this._weights}}});$S.prototype.findTimeInterval=sr.prototype.findTimeInterval;$S.prototype.wrapTime=sr.prototype.wrapTime;$S.prototype.clampTime=sr.prototype.clampTime;$S.prototype.evaluate=function(e,t){let n=this.weights,i=this.times,r=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),o=(e-i[r])/(i[r+1]-i[r]);u(t)||(t=new Array(this._count));for(let s=0;s<this._count;s++){let a=r*this._count+s;t[s]=n[a]*(1-o)+n[a+this._count]*o}return t};var cK=$S;function lK(e,t,n){e=ve.createIfNeeded(e),e.appendForwardSlash(),e.setQueryParameters({key:t}),this._url=e,this._params=y(n,{}),this._credit=new wt('Geodata copyright <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',!1)}Object.defineProperties(lK.prototype,{url:{get:function(){return this._url}},params:{get:function(){return this._params}},credit:{get:function(){return this._credit}}});lK.prototype.geocode=async function(e){return this._url.getDerivedResource({url:"json",queryParameters:_t(this._params,{q:e})}).fetchJson().then(function(n){return n.results.map(function(i){let r,o=i.bounds;if(u(o))r=le.fromDegrees(o.southwest.lng,o.southwest.lat,o.northeast.lng,o.northeast.lat);else{let s=i.geometry.lat,a=i.geometry.lng;r=h.fromDegrees(s,a)}return{displayName:i.formatted,destination:r}})})};var uK=lK;var _0t={packedLength:void 0,pack:fe.throwInstantiationError,unpack:fe.throwInstantiationError},fK=_0t;var g0t={packedInterpolationLength:void 0,convertPackedArrayForInterpolation:fe.throwInstantiationError,unpackInterpolationResult:fe.throwInstantiationError},dK=g0t;function nxe(){fe.throwInstantiationError()}nxe.prototype.getURL=fe.throwInstantiationError;var hK=nxe;function y0t(e,t,n,i,r,o,s){let a=Mi.numberOfPoints(e,t,r),c,l=n.red,f=n.green,d=n.blue,p=n.alpha,g=i.red,m=i.green,A=i.blue,x=i.alpha;if(z.equals(n,i)){for(c=0;c<a;c++)o[s++]=z.floatToByte(l),o[s++]=z.floatToByte(f),o[s++]=z.floatToByte(d),o[s++]=z.floatToByte(p);return s}let C=(g-l)/a,T=(m-f)/a,E=(A-d)/a,S=(x-p)/a,v=s;for(c=0;c<a;c++)o[v++]=z.floatToByte(l+c*C),o[v++]=z.floatToByte(f+c*T),o[v++]=z.floatToByte(d+c*E),o[v++]=z.floatToByte(p+c*S);return v}function u2(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._colorsPerVertex=i,this._arcType=y(e.arcType,Kt.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=y(e.ellipsoid,re.WGS84),this._workerName="createSimplePolylineGeometry";let r=1+t.length*h.packedLength;r+=u(n)?1+n.length*z.packedLength:1,this.packedLength=r+re.packedLength+3}u2.pack=function(e,t,n){n=y(n,0);let i,r=e._positions,o=r.length;for(t[n++]=o,i=0;i<o;++i,n+=h.packedLength)h.pack(r[i],t,n);let s=e._colors;for(o=u(s)?s.length:0,t[n++]=o,i=0;i<o;++i,n+=z.packedLength)z.pack(s[i],t,n);return re.pack(e._ellipsoid,t,n),n+=re.packedLength,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};u2.unpack=function(e,t,n){t=y(t,0);let i,r=e[t++],o=new Array(r);for(i=0;i<r;++i,t+=h.packedLength)o[i]=h.unpack(e,t);r=e[t++];let s=r>0?new Array(r):void 0;for(i=0;i<r;++i,t+=z.packedLength)s[i]=z.unpack(e,t);let a=re.unpack(e,t);t+=re.packedLength;let c=e[t++]===1,l=e[t++],f=e[t];return u(n)?(n._positions=o,n._colors=s,n._ellipsoid=a,n._colorsPerVertex=c,n._arcType=l,n._granularity=f,n):new u2({positions:o,colors:s,ellipsoid:a,colorsPerVertex:c,arcType:l,granularity:f})};var wH=new Array(2),DH=new Array(2),A0t={positions:wH,height:DH,ellipsoid:void 0,minDistance:void 0,granularity:void 0};u2.createGeometry=function(e){let t=e._positions,n=e._colors,i=e._colorsPerVertex,r=e._arcType,o=e._granularity,s=e._ellipsoid,a=P.chordLength(o,s.maximumRadius),c=u(n)&&!i,l,f=t.length,d,p,g,m,A=0;if(r===Kt.GEODESIC||r===Kt.RHUMB){let S,v,D;r===Kt.GEODESIC?(S=P.chordLength(o,s.maximumRadius),v=Mi.numberOfPoints,D=Mi.generateArc):(S=o,v=Mi.numberOfPointsRhumbLine,D=Mi.generateRhumbArc);let M=Mi.extractHeights(t,s),O=A0t;if(r===Kt.GEODESIC?O.minDistance=a:O.granularity=o,O.ellipsoid=s,c){let B=0;for(l=0;l<f-1;l++)B+=v(t[l],t[l+1],S)+1;d=new Float64Array(B*3),g=new Uint8Array(B*4),O.positions=wH,O.height=DH;let L=0;for(l=0;l<f-1;++l){wH[0]=t[l],wH[1]=t[l+1],DH[0]=M[l],DH[1]=M[l+1];let _=D(O);if(u(n)){let b=_.length/3;m=n[l];for(let w=0;w<b;++w)g[L++]=z.floatToByte(m.red),g[L++]=z.floatToByte(m.green),g[L++]=z.floatToByte(m.blue),g[L++]=z.floatToByte(m.alpha)}d.set(_,A),A+=_.length}}else if(O.positions=t,O.height=M,d=new Float64Array(D(O)),u(n)){for(g=new Uint8Array(d.length/3*4),l=0;l<f-1;++l){let L=t[l],_=t[l+1],b=n[l],w=n[l+1];A=y0t(L,_,b,w,a,g,A)}let B=n[f-1];g[A++]=z.floatToByte(B.red),g[A++]=z.floatToByte(B.green),g[A++]=z.floatToByte(B.blue),g[A++]=z.floatToByte(B.alpha)}}else{p=c?f*2-2:f,d=new Float64Array(p*3),g=u(n)?new Uint8Array(p*4):void 0;let S=0,v=0;for(l=0;l<f;++l){let D=t[l];if(c&&l>0&&(h.pack(D,d,S),S+=3,m=n[l-1],g[v++]=z.floatToByte(m.red),g[v++]=z.floatToByte(m.green),g[v++]=z.floatToByte(m.blue),g[v++]=z.floatToByte(m.alpha)),c&&l===f-1)break;h.pack(D,d,S),S+=3,u(n)&&(m=n[l],g[v++]=z.floatToByte(m.red),g[v++]=z.floatToByte(m.green),g[v++]=z.floatToByte(m.blue),g[v++]=z.floatToByte(m.alpha))}}let x=new dn;x.position=new De({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),u(n)&&(x.color=new De({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:g,normalize:!0})),p=d.length/3;let C=(p-1)*2,T=Ue.createTypedArray(p,C),E=0;for(l=0;l<p-1;++l)T[E++]=l,T[E++]=l+1;return new ut({attributes:x,indices:T,primitiveType:Be.LINES,boundingSphere:ae.fromPoints(t)})};var mK=u2;function ev(e){let t=y(e.radius,1),i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new Ns(i),this._workerName="createSphereGeometry"}ev.packedLength=Ns.packedLength;ev.pack=function(e,t,n){return Ns.pack(e._ellipsoidGeometry,t,n)};var x0t=new Ns,d0={radius:void 0,radii:new h,vertexFormat:new Pe,stackPartitions:void 0,slicePartitions:void 0};ev.unpack=function(e,t,n){let i=Ns.unpack(e,t,x0t);return d0.vertexFormat=Pe.clone(i._vertexFormat,d0.vertexFormat),d0.stackPartitions=i._stackPartitions,d0.slicePartitions=i._slicePartitions,u(n)?(h.clone(i._radii,d0.radii),n._ellipsoidGeometry=new Ns(d0),n):(d0.radius=i._radii.x,new ev(d0))};ev.createGeometry=function(e){return Ns.createGeometry(e._ellipsoidGeometry)};var pK=ev;function h0(e){}Object.defineProperties(h0.prototype,{ellipsoid:{get:fe.throwInstantiationError},rectangle:{get:fe.throwInstantiationError},projection:{get:fe.throwInstantiationError}});h0.prototype.getNumberOfXTilesAtLevel=fe.throwInstantiationError;h0.prototype.getNumberOfYTilesAtLevel=fe.throwInstantiationError;h0.prototype.rectangleToNativeRectangle=fe.throwInstantiationError;h0.prototype.tileXYToNativeRectangle=fe.throwInstantiationError;h0.prototype.tileXYToRectangle=fe.throwInstantiationError;h0.prototype.positionToTileXY=fe.throwInstantiationError;var _K=h0;function C0t(e,t){this.rectangle=e,this.maxLevel=t}function gK(e){this.ellipsoid=y(e.ellipsoid,re.WGS84),this.tilingScheme=void 0,this.heightmapWidth=void 0,this.heightmapHeight=void 0,this.levelZeroMaximumGeometricError=void 0,this.rectangles=[]}gK.prototype.build=function(e){e._tilingScheme=this.tilingScheme,e._heightmapWidth=this.heightmapWidth,e._heightmapHeight=this.heightmapHeight,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._rectangles=this.rectangles,e._ready=!0};function T0t(e,t){let n=t.getElementsByTagName("SRS")[0].textContent;if(n==="EPSG:4326")e.tilingScheme=new Wi({ellipsoid:e.ellipsoid});else throw new de(`SRS ${n} is not supported`);let i=t.getElementsByTagName("TileFormat")[0];e.heightmapWidth=parseInt(i.getAttribute("width"),10),e.heightmapHeight=parseInt(i.getAttribute("height"),10),e.levelZeroMaximumGeometricError=Yo.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.ellipsoid,Math.min(e.heightmapWidth,e.heightmapHeight),e.tilingScheme.getNumberOfXTilesAtLevel(0));let r=t.getElementsByTagName("DataExtent");for(let o=0;o<r.length;++o){let s=r[o],a=P.toRadians(parseFloat(s.getAttribute("minx"))),c=P.toRadians(parseFloat(s.getAttribute("miny"))),l=P.toRadians(parseFloat(s.getAttribute("maxx"))),f=P.toRadians(parseFloat(s.getAttribute("maxy"))),d=parseInt(s.getAttribute("maxlevel"),10);e.rectangles.push(new C0t(new le(a,c,l,f),d))}}function E0t(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw u(t)&&u(t.message)&&(i=`${i}: ${t.message}`),Ai.reportError(void 0,n,u(n)?n._errorEvent:void 0,i),new de(i)}async function ixe(e,t,n){try{let i=await t.fetchXML();T0t(e,i)}catch(i){E0t(t,i,n)}}function m0(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new ge,this._ready=!1,this._terrainDataStructure={heightScale:1/1e3,heightOffset:-1e3,elementsPerHeight:3,stride:4,elementMultiplier:256,isBigEndian:!0,lowestEncodedHeight:0,highestEncodedHeight:256*256*256-1};let t=e.credit;if(typeof t=="string"&&(t=new wt(t)),this._credit=t,this._tilingScheme=void 0,this._rectangles=[],u(e.url)){$("VRTheWorldTerrainProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. VRTheWorldTerrainProvider.fromUrl instead.");let n=this,i=new gK(e),r=ve.createIfNeeded(e.url);this._resource=r,this._readyPromise=ixe(i,r,n).then(()=>(i.build(n),!0))}}Object.defineProperties(m0.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("VRTheWorldTerrainProvider.ready","VRTheWorldTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use VRTheWorldTerrainProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("VRTheWorldTerrainProvider.readyPromise","VRTheWorldTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use VRTheWorldTerrainProvider.fromUrl instead."),this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});m0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=new gK(t),i=ve.createIfNeeded(e);await ixe(n,i);let r=new m0(t);return n.build(r),r._resource=i,r};m0.prototype.requestTileGeometry=function(e,t,n,i){let r=this._tilingScheme.getNumberOfYTilesAtLevel(n),s=this._resource.getDerivedResource({url:`${n}/${e}/${r-t-1}.tif`,queryParameters:{cesium:!0},request:i}).fetchImage({preferImageBitmap:!0});if(!u(s))return;let a=this;return Promise.resolve(s).then(function(c){return new wa({buffer:od(c),width:a._heightmapWidth,height:a._heightmapHeight,childTileMask:b0t(a,e,t,n),structure:a._terrainDataStructure})})};m0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};var rxe=new le;function b0t(e,t,n,i){let r=e._tilingScheme,o=e._rectangles,s=r.tileXYToRectangle(t,n,i),a=0;for(let c=0;c<o.length&&a!==15;++c){let l=o[c];if(l.maxLevel<=i)continue;let f=l.rectangle,d=le.intersection(f,s,rxe);u(d)&&(IH(r,f,t*2,n*2,i+1)&&(a|=4),IH(r,f,t*2+1,n*2,i+1)&&(a|=8),IH(r,f,t*2,n*2+1,i+1)&&(a|=1),IH(r,f,t*2+1,n*2+1,i+1)&&(a|=2))}return a}function IH(e,t,n,i,r){let o=e.tileXYToRectangle(n,i,r);return u(le.intersection(o,t,rxe))}m0.prototype.getTileDataAvailable=function(e,t,n){};m0.prototype.loadTileDataAvailability=function(e,t,n){};var yK=m0;function HC(e){e=y(e,y.EMPTY_OBJECT),this._clock=void 0,this._element=void 0,this._clockSubscription=void 0,this._seekFunction=void 0,this._lastPlaybackRate=void 0,this.clock=e.clock,this.element=e.element,this.epoch=y(e.epoch,ze.MINIMUM_VALUE),this.tolerance=y(e.tolerance,1),this._seeking=!1,this._seekFunction=void 0,this._firstTickAfterSeek=!1}Object.defineProperties(HC.prototype,{clock:{get:function(){return this._clock},set:function(e){let t=this._clock;t!==e&&(u(t)&&(this._clockSubscription(),this._clockSubscription=void 0),u(e)&&(this._clockSubscription=e.onTick.addEventListener(HC.prototype._onTick,this)),this._clock=e)}},element:{get:function(){return this._element},set:function(e){let t=this._element;t!==e&&(u(t)&&t.removeEventListener("seeked",this._seekFunction,!1),u(e)&&(this._seeking=!1,this._seekFunction=S0t(this),e.addEventListener("seeked",this._seekFunction,!1)),this._element=e,this._seeking=!1,this._firstTickAfterSeek=!1)}}});HC.prototype.destroy=function(){return this.element=void 0,this.clock=void 0,ue(this)};HC.prototype.isDestroyed=function(){return!1};HC.prototype._trySetPlaybackRate=function(e){if(this._lastPlaybackRate===e.multiplier)return;let t=this._element;try{t.playbackRate=e.multiplier}catch{t.playbackRate=0}this._lastPlaybackRate=e.multiplier};HC.prototype._onTick=function(e){let t=this._element;if(!u(t)||t.readyState<2)return;let n=t.paused,i=e.shouldAnimate;if(i===n&&(i?t.play():t.pause()),this._seeking||this._firstTickAfterSeek){this._firstTickAfterSeek=!1;return}this._trySetPlaybackRate(e);let r=e.currentTime,o=y(this.epoch,ze.MINIMUM_VALUE),s=ee.secondsDifference(r,o),a=t.duration,c,l=t.currentTime;t.loop?(s=s%a,s<0&&(s=a-s),c=s):s>a?c=a:s<0?c=0:c=s;let f=i?y(this.tolerance,1):.001;Math.abs(c-l)>f&&(this._seeking=!0,t.currentTime=c)};function S0t(e){return function(){e._seeking=!1,e._firstTickAfterSeek=!0}}var AK=HC;var v0t={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033},xK=Object.freeze(v0t);function w0t(e){$("createWorldTerrain","createWorldTerrain was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use createWorldTerrainAsync instead."),e=y(e,y.EMPTY_OBJECT);let t=new s0({requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1)});return t._readyPromise=s0._initializeReadyPromise({url:Xs.fromAssetId(1),requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1)},t),t}var CK=w0t;var D0t=new h;function I0t(e,t,n,i){let r=j0(e,t,n,i,D0t);return u(r)?r.x>0&&r.y>0&&r.z>0:!1}var TK=I0t;function P0t(e){switch(e){case te.FLOAT:return"float";case te.FLOAT_VEC2:return"vec2";case te.FLOAT_VEC3:return"vec3";case te.FLOAT_VEC4:return"vec4";case te.FLOAT_MAT2:return"mat2";case te.FLOAT_MAT3:return"mat3";case te.FLOAT_MAT4:return"mat4";case te.SAMPLER_2D:return"sampler2D";case te.BOOL:return"bool"}}var EK=P0t;function O0t(e,t,n){return function(){n.apply(e,arguments),t.apply(e,arguments)}}var f2=O0t;var bK=`uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float z_window = czm_unpackDepth(texture(u_depthTexture, v_textureCoordinates)); + z_window = czm_reverseLogDepth(z_window); + float n_range = czm_depthRange.near; + float f_range = czm_depthRange.far; + float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range); + float scale = pow(z_ndc * 0.5 + 0.5, 8.0); + out_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0); +} +`;function M0t(e){e=y(e,y.EMPTY_OBJECT),this.typedArray=e.typedArray,this.width=e.width,this.height=e.height,this.pixelFormat=y(e.pixelFormat,at.RGBA),this.pixelDatatype=y(e.pixelDatatype,Ke.UNSIGNED_BYTE);let t=e.url;typeof t=="string"&&(t=ve.createIfNeeded(t)),this.resource=t;let i=y(e.repeat,!0)?Sn.REPEAT:Sn.CLAMP_TO_EDGE;this.sampler=new ln({wrapS:i,wrapT:i,minificationFilter:e.minificationFilter,magnificationFilter:e.magnificationFilter,maximumAnisotropy:e.maximumAnisotropy})}var SK=M0t;var R0t={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",MAT2:"mat2",MAT3:"mat2",MAT4:"mat4"},vK=Object.freeze(R0t);function B0t(e,t,n){let i;try{return i=e(t,n),i}catch(r){return Promise.reject(r)}}function L0t(e){let t;return function(n){let i=n.data,r=[],o={id:i.id,result:void 0,error:void 0};return Promise.resolve(B0t(e,i.parameters,r)).then(function(s){o.result=s}).catch(function(s){s instanceof Error?o.error={name:s.name,message:s.message,stack:s.stack}:o.error=s}).finally(function(){u(t)||(t=y(self.webkitPostMessage,self.postMessage)),i.canTransferArrayBuffer||(r.length=0);try{t(o,r)}catch(s){o.result=void 0,o.error=`postMessage failed with error: ${Sm(s)} + with responseMessage: ${JSON.stringify(o)}`,t(o)}})}}var wK=L0t;globalThis.CESIUM_VERSION="1.105";var d2;typeof ko<"u"&&(d2=ko);(function(){/*! + * Knockout JavaScript library v3.5.1 + * (c) The Knockout.js team - http://knockoutjs.com/ + * License: MIT (http://www.opensource.org/licenses/mit-license.php) + */(function(){(function(e){var t=this||(0,eval)("this"),n=t.document,i=t.navigator,r=t.jQuery,o=t.JSON;r||typeof jQuery>"u"||(r=jQuery),function(s){s(t.ko={})}(function(s,a){function c(_,b){return _===null||typeof _ in A?_===b:!1}function l(_,b){var w;return function(){w||(w=m.a.setTimeout(function(){w=e,_()},b))}}function f(_,b){var w;return function(){clearTimeout(w),w=m.a.setTimeout(_,b)}}function d(_,b){b&&b!=="change"?b==="beforeChange"?this.pc(_):this.gb(_,b):this.qc(_)}function p(_,b){b!==null&&b.s&&b.s()}function g(_,b){var w=this.qd,I=w[S];I.ra||(this.Qb&&this.mb[b]?(w.uc(b,_,this.mb[b]),this.mb[b]=null,--this.Qb):I.I[b]||w.uc(b,_,I.J?{da:_}:w.$c(_)),_.Ja&&_.gd())}var m=typeof s<"u"?s:{};m.b=function(_,b){for(var w=_.split("."),I=m,R=0;R<w.length-1;R++)I=I[w[R]];I[w[w.length-1]]=b},m.L=function(_,b,w){_[b]=w},m.version="3.5.1",m.b("version",m.version),m.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1},m.a=function(){function _(j,K){for(var J in j)R.call(j,J)&&K(J,j[J])}function b(j,K){if(K)for(var J in K)R.call(K,J)&&(j[J]=K[J]);return j}function w(j,K){return j.__proto__=K,j}function I(j,K,J,_e){var xe=j[K].match(W)||[];m.a.D(J.match(W),function(oe){m.a.Na(xe,oe,_e)}),j[K]=xe.join(" ")}var R=Object.prototype.hasOwnProperty,F={__proto__:[]}instanceof Array,k=typeof Symbol=="function",V={},G={};V[i&&/Firefox\/2/i.test(i.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],V.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),_(V,function(j,K){if(K.length)for(var J=0,_e=K.length;J<_e;J++)G[K[J]]=j});var U={propertychange:!0},Y=n&&function(){for(var j=3,K=n.createElement("div"),J=K.getElementsByTagName("i");K.innerHTML="<!--[if gt IE "+ ++j+"]><i></i><![endif]-->",J[0];);return 4<j?j:e}(),W=/\S+/g,Z;return{Jc:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],D:function(j,K,J){for(var _e=0,xe=j.length;_e<xe;_e++)K.call(J,j[_e],_e,j)},A:typeof Array.prototype.indexOf=="function"?function(j,K){return Array.prototype.indexOf.call(j,K)}:function(j,K){for(var J=0,_e=j.length;J<_e;J++)if(j[J]===K)return J;return-1},Lb:function(j,K,J){for(var _e=0,xe=j.length;_e<xe;_e++)if(K.call(J,j[_e],_e,j))return j[_e];return e},Pa:function(j,K){var J=m.a.A(j,K);0<J?j.splice(J,1):J===0&&j.shift()},wc:function(j){var K=[];return j&&m.a.D(j,function(J){0>m.a.A(K,J)&&K.push(J)}),K},Mb:function(j,K,J){var _e=[];if(j)for(var xe=0,oe=j.length;xe<oe;xe++)_e.push(K.call(J,j[xe],xe));return _e},jb:function(j,K,J){var _e=[];if(j)for(var xe=0,oe=j.length;xe<oe;xe++)K.call(J,j[xe],xe)&&_e.push(j[xe]);return _e},Nb:function(j,K){if(K instanceof Array)j.push.apply(j,K);else for(var J=0,_e=K.length;J<_e;J++)j.push(K[J]);return j},Na:function(j,K,J){var _e=m.a.A(m.a.bc(j),K);0>_e?J&&j.push(K):J||j.splice(_e,1)},Ba:F,extend:b,setPrototypeOf:w,Ab:F?w:b,P:_,Ga:function(j,K,J){if(!j)return j;var _e={},xe;for(xe in j)R.call(j,xe)&&(_e[xe]=K.call(J,j[xe],xe,j));return _e},Tb:function(j){for(;j.firstChild;)m.removeNode(j.firstChild)},Yb:function(j){j=m.a.la(j);for(var K=(j[0]&&j[0].ownerDocument||n).createElement("div"),J=0,_e=j.length;J<_e;J++)K.appendChild(m.oa(j[J]));return K},Ca:function(j,K){for(var J=0,_e=j.length,xe=[];J<_e;J++){var oe=j[J].cloneNode(!0);xe.push(K?m.oa(oe):oe)}return xe},va:function(j,K){if(m.a.Tb(j),K)for(var J=0,_e=K.length;J<_e;J++)j.appendChild(K[J])},Xc:function(j,K){var J=j.nodeType?[j]:j;if(0<J.length){for(var _e=J[0],xe=_e.parentNode,oe=0,Ae=K.length;oe<Ae;oe++)xe.insertBefore(K[oe],_e);for(oe=0,Ae=J.length;oe<Ae;oe++)m.removeNode(J[oe])}},Ua:function(j,K){if(j.length){for(K=K.nodeType===8&&K.parentNode||K;j.length&&j[0].parentNode!==K;)j.splice(0,1);for(;1<j.length&&j[j.length-1].parentNode!==K;)j.length--;if(1<j.length){var J=j[0],_e=j[j.length-1];for(j.length=0;J!==_e;)j.push(J),J=J.nextSibling;j.push(_e)}}return j},Zc:function(j,K){7>Y?j.setAttribute("selected",K):j.selected=K},Db:function(j){return j===null||j===e?"":j.trim?j.trim():j.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Ud:function(j,K){return j=j||"",K.length>j.length?!1:j.substring(0,K.length)===K},vd:function(j,K){if(j===K)return!0;if(j.nodeType===11)return!1;if(K.contains)return K.contains(j.nodeType!==1?j.parentNode:j);if(K.compareDocumentPosition)return(K.compareDocumentPosition(j)&16)==16;for(;j&&j!=K;)j=j.parentNode;return!!j},Sb:function(j){return m.a.vd(j,j.ownerDocument.documentElement)},kd:function(j){return!!m.a.Lb(j,m.a.Sb)},R:function(j){return j&&j.tagName&&j.tagName.toLowerCase()},Ac:function(j){return m.onError?function(){try{return j.apply(this,arguments)}catch(K){throw m.onError&&m.onError(K),K}}:j},setTimeout:function(j,K){return setTimeout(m.a.Ac(j),K)},Gc:function(j){setTimeout(function(){throw m.onError&&m.onError(j),j},0)},B:function(j,K,J){var _e=m.a.Ac(J);if(J=U[K],m.options.useOnlyNativeEvents||J||!r)if(J||typeof j.addEventListener!="function")if(typeof j.attachEvent<"u"){var xe=function(Ae){_e.call(j,Ae)},oe="on"+K;j.attachEvent(oe,xe),m.a.K.za(j,function(){j.detachEvent(oe,xe)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else j.addEventListener(K,_e,!1);else Z||(Z=typeof r(j).on=="function"?"on":"bind"),r(j)[Z](K,_e)},Fb:function(j,K){if(!j||!j.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var J;if(m.a.R(j)==="input"&&j.type&&K.toLowerCase()=="click"?(J=j.type,J=J=="checkbox"||J=="radio"):J=!1,m.options.useOnlyNativeEvents||!r||J)if(typeof n.createEvent=="function")if(typeof j.dispatchEvent=="function")J=n.createEvent(G[K]||"HTMLEvents"),J.initEvent(K,!0,!0,t,0,0,0,0,0,!1,!1,!1,!1,0,j),j.dispatchEvent(J);else throw Error("The supplied element doesn't support dispatchEvent");else if(J&&j.click)j.click();else if(typeof j.fireEvent<"u")j.fireEvent("on"+K);else throw Error("Browser doesn't support triggering events");else r(j).trigger(K)},f:function(j){return m.O(j)?j():j},bc:function(j){return m.O(j)?j.v():j},Eb:function(j,K,J){var _e;K&&(typeof j.classList=="object"?(_e=j.classList[J?"add":"remove"],m.a.D(K.match(W),function(xe){_e.call(j.classList,xe)})):typeof j.className.baseVal=="string"?I(j.className,"baseVal",K,J):I(j,"className",K,J))},Bb:function(j,K){var J=m.a.f(K);(J===null||J===e)&&(J="");var _e=m.h.firstChild(j);!_e||_e.nodeType!=3||m.h.nextSibling(_e)?m.h.va(j,[j.ownerDocument.createTextNode(J)]):_e.data=J,m.a.Ad(j)},Yc:function(j,K){if(j.name=K,7>=Y)try{var J=j.name.replace(/[&<>'"]/g,function(_e){return"&#"+_e.charCodeAt(0)+";"});j.mergeAttributes(n.createElement("<input name='"+J+"'/>"),!1)}catch{}},Ad:function(j){9<=Y&&(j=j.nodeType==1?j:j.parentNode,j.style&&(j.style.zoom=j.style.zoom))},wd:function(j){if(Y){var K=j.style.width;j.style.width=0,j.style.width=K}},Pd:function(j,K){j=m.a.f(j),K=m.a.f(K);for(var J=[],_e=j;_e<=K;_e++)J.push(_e);return J},la:function(j){for(var K=[],J=0,_e=j.length;J<_e;J++)K.push(j[J]);return K},Da:function(j){return k?Symbol(j):j},Zd:Y===6,$d:Y===7,W:Y,Lc:function(j,K){for(var J=m.a.la(j.getElementsByTagName("input")).concat(m.a.la(j.getElementsByTagName("textarea"))),_e=typeof K=="string"?function(Ae){return Ae.name===K}:function(Ae){return K.test(Ae.name)},xe=[],oe=J.length-1;0<=oe;oe--)_e(J[oe])&&xe.push(J[oe]);return xe},Nd:function(j){return typeof j=="string"&&(j=m.a.Db(j))?o&&o.parse?o.parse(j):new Function("return "+j)():null},hc:function(j,K,J){if(!o||!o.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return o.stringify(m.a.f(j),K,J)},Od:function(j,K,J){J=J||{};var _e=J.params||{},xe=J.includeFields||this.Jc,oe=j;if(typeof j=="object"&&m.a.R(j)==="form")for(var oe=j.action,Ae=xe.length-1;0<=Ae;Ae--)for(var he=m.a.Lc(j,xe[Ae]),Se=he.length-1;0<=Se;Se--)_e[he[Se].name]=he[Se].value;K=m.a.f(K);var Ie=n.createElement("form");Ie.style.display="none",Ie.action=oe,Ie.method="post";for(var Ne in K)j=n.createElement("input"),j.type="hidden",j.name=Ne,j.value=m.a.hc(m.a.f(K[Ne])),Ie.appendChild(j);_(_e,function(qe,pt){var Gt=n.createElement("input");Gt.type="hidden",Gt.name=qe,Gt.value=pt,Ie.appendChild(Gt)}),n.body.appendChild(Ie),J.submitter?J.submitter(Ie):Ie.submit(),setTimeout(function(){Ie.parentNode.removeChild(Ie)},0)}}}(),m.b("utils",m.a),m.b("utils.arrayForEach",m.a.D),m.b("utils.arrayFirst",m.a.Lb),m.b("utils.arrayFilter",m.a.jb),m.b("utils.arrayGetDistinctValues",m.a.wc),m.b("utils.arrayIndexOf",m.a.A),m.b("utils.arrayMap",m.a.Mb),m.b("utils.arrayPushAll",m.a.Nb),m.b("utils.arrayRemoveItem",m.a.Pa),m.b("utils.cloneNodes",m.a.Ca),m.b("utils.createSymbolOrString",m.a.Da),m.b("utils.extend",m.a.extend),m.b("utils.fieldsIncludedWithJsonPost",m.a.Jc),m.b("utils.getFormFields",m.a.Lc),m.b("utils.objectMap",m.a.Ga),m.b("utils.peekObservable",m.a.bc),m.b("utils.postJson",m.a.Od),m.b("utils.parseJson",m.a.Nd),m.b("utils.registerEventHandler",m.a.B),m.b("utils.stringifyJson",m.a.hc),m.b("utils.range",m.a.Pd),m.b("utils.toggleDomNodeCssClass",m.a.Eb),m.b("utils.triggerEvent",m.a.Fb),m.b("utils.unwrapObservable",m.a.f),m.b("utils.objectForEach",m.a.P),m.b("utils.addOrRemoveItem",m.a.Na),m.b("utils.setTextContent",m.a.Bb),m.b("unwrap",m.a.f),Function.prototype.bind||(Function.prototype.bind=function(_){var b=this;if(arguments.length===1)return function(){return b.apply(_,arguments)};var w=Array.prototype.slice.call(arguments,1);return function(){var I=w.slice(0);return I.push.apply(I,arguments),b.apply(_,I)}}),m.a.g=new function(){var _=0,b="__ko__"+new Date().getTime(),w={},I,R;return m.a.W?(I=function(F,k){var V=F[b];if(!V||V==="null"||!w[V]){if(!k)return e;V=F[b]="ko"+_++,w[V]={}}return w[V]},R=function(F){var k=F[b];return k?(delete w[k],F[b]=null,!0):!1}):(I=function(F,k){var V=F[b];return!V&&k&&(V=F[b]={}),V},R=function(F){return F[b]?(delete F[b],!0):!1}),{get:function(F,k){var V=I(F,!1);return V&&V[k]},set:function(F,k,V){(F=I(F,V!==e))&&(F[k]=V)},Ub:function(F,k,V){return F=I(F,!0),F[k]||(F[k]=V)},clear:R,Z:function(){return _+++b}}},m.b("utils.domData",m.a.g),m.b("utils.domData.clear",m.a.g.clear),m.a.K=new function(){function _(k,V){var G=m.a.g.get(k,I);return G===e&&V&&(G=[],m.a.g.set(k,I,G)),G}function b(k){var V=_(k,!1);if(V)for(var V=V.slice(0),G=0;G<V.length;G++)V[G](k);m.a.g.clear(k),m.a.K.cleanExternalData(k),F[k.nodeType]&&w(k.childNodes,!0)}function w(k,V){for(var G=[],U,Y=0;Y<k.length;Y++)if((!V||k[Y].nodeType===8)&&(b(G[G.length]=U=k[Y]),k[Y]!==U))for(;Y--&&m.a.A(G,k[Y])==-1;);}var I=m.a.g.Z(),R={1:!0,8:!0,9:!0},F={1:!0,9:!0};return{za:function(k,V){if(typeof V!="function")throw Error("Callback must be a function");_(k,!0).push(V)},yb:function(k,V){var G=_(k,!1);G&&(m.a.Pa(G,V),G.length==0&&m.a.g.set(k,I,e))},oa:function(k){return m.u.G(function(){R[k.nodeType]&&(b(k),F[k.nodeType]&&w(k.getElementsByTagName("*")))}),k},removeNode:function(k){m.oa(k),k.parentNode&&k.parentNode.removeChild(k)},cleanExternalData:function(k){r&&typeof r.cleanData=="function"&&r.cleanData([k])}}},m.oa=m.a.K.oa,m.removeNode=m.a.K.removeNode,m.b("cleanNode",m.oa),m.b("removeNode",m.removeNode),m.b("utils.domNodeDisposal",m.a.K),m.b("utils.domNodeDisposal.addDisposeCallback",m.a.K.za),m.b("utils.domNodeDisposal.removeDisposeCallback",m.a.K.yb),function(){var _=[0,"",""],b=[1,"<table>","</table>"],w=[3,"<table><tbody><tr>","</tr></tbody></table>"],I=[1,"<select multiple='multiple'>","</select>"],R={thead:b,tbody:b,tfoot:b,tr:[2,"<table><tbody>","</tbody></table>"],td:w,th:w,option:I,optgroup:I},F=8>=m.a.W;m.a.ua=function(k,V){var G;if(r){if(r.parseHTML)G=r.parseHTML(k,V)||[];else if((G=r.clean([k],V))&&G[0]){for(var U=G[0];U.parentNode&&U.parentNode.nodeType!==11;)U=U.parentNode;U.parentNode&&U.parentNode.removeChild(U)}}else{(G=V)||(G=n);var U=G.parentWindow||G.defaultView||t,Y=m.a.Db(k).toLowerCase(),W=G.createElement("div"),Z;for(Z=(Y=Y.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&R[Y[1]]||_,Y=Z[0],Z="ignored<div>"+Z[1]+k+Z[2]+"</div>",typeof U.innerShiv=="function"?W.appendChild(U.innerShiv(Z)):(F&&G.body.appendChild(W),W.innerHTML=Z,F&&W.parentNode.removeChild(W));Y--;)W=W.lastChild;G=m.a.la(W.lastChild.childNodes)}return G},m.a.Md=function(k,V){var G=m.a.ua(k,V);return G.length&&G[0].parentElement||m.a.Yb(G)},m.a.fc=function(k,V){if(m.a.Tb(k),V=m.a.f(V),V!==null&&V!==e)if(typeof V!="string"&&(V=V.toString()),r)r(k).html(V);else for(var G=m.a.ua(V,k.ownerDocument),U=0;U<G.length;U++)k.appendChild(G[U])}}(),m.b("utils.parseHtmlFragment",m.a.ua),m.b("utils.setHtml",m.a.fc),m.aa=function(){function _(w,I){if(w){if(w.nodeType==8){var R=m.aa.Uc(w.nodeValue);R!=null&&I.push({ud:w,Kd:R})}else if(w.nodeType==1)for(var R=0,F=w.childNodes,k=F.length;R<k;R++)_(F[R],I)}}var b={};return{Xb:function(w){if(typeof w!="function")throw Error("You can only pass a function to ko.memoization.memoize()");var I=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return b[I]=w,"<!--[ko_memo:"+I+"]-->"},bd:function(w,I){var R=b[w];if(R===e)throw Error("Couldn't find any memo with ID "+w+". Perhaps it's already been unmemoized.");try{return R.apply(null,I||[]),!0}finally{delete b[w]}},cd:function(w,I){var R=[];_(w,R);for(var F=0,k=R.length;F<k;F++){var V=R[F].ud,G=[V];I&&m.a.Nb(G,I),m.aa.bd(R[F].Kd,G),V.nodeValue="",V.parentNode&&V.parentNode.removeChild(V)}},Uc:function(w){return(w=w.match(/^\[ko_memo\:(.*?)\]$/))?w[1]:null}}}(),m.b("memoization",m.aa),m.b("memoization.memoize",m.aa.Xb),m.b("memoization.unmemoize",m.aa.bd),m.b("memoization.parseMemoText",m.aa.Uc),m.b("memoization.unmemoizeDomNodeAndDescendants",m.aa.cd),m.na=function(){function _(){if(R){for(var V=R,G=0,U;k<R;)if(U=I[k++]){if(k>V){if(5e3<=++G){k=R,m.a.Gc(Error("'Too much recursion' after processing "+G+" task groups."));break}V=R}try{U()}catch(Y){m.a.Gc(Y)}}}}function b(){_(),k=R=I.length=0}var w,I=[],R=0,F=1,k=0;return t.MutationObserver?w=function(V){var G=n.createElement("div");return new MutationObserver(V).observe(G,{attributes:!0}),function(){G.classList.toggle("foo")}}(b):w=n&&"onreadystatechange"in n.createElement("script")?function(V){var G=n.createElement("script");G.onreadystatechange=function(){G.onreadystatechange=null,n.documentElement.removeChild(G),G=null,V()},n.documentElement.appendChild(G)}:function(V){setTimeout(V,0)},{scheduler:w,zb:function(V){return R||m.na.scheduler(b),I[R++]=V,F++},cancel:function(V){V=V-(F-R),V>=k&&V<R&&(I[V]=null)},resetForTesting:function(){var V=R-k;return k=R=I.length=0,V},Sd:_}}(),m.b("tasks",m.na),m.b("tasks.schedule",m.na.zb),m.b("tasks.runEarly",m.na.Sd),m.Ta={throttle:function(_,b){_.throttleEvaluation=b;var w=null;return m.$({read:_,write:function(I){clearTimeout(w),w=m.a.setTimeout(function(){_(I)},b)}})},rateLimit:function(_,b){var w,I,R;typeof b=="number"?w=b:(w=b.timeout,I=b.method),_.Hb=!1,R=typeof I=="function"?I:I=="notifyWhenChangesStop"?f:l,_.ub(function(F){return R(F,w,b)})},deferred:function(_,b){if(b!==!0)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");_.Hb||(_.Hb=!0,_.ub(function(w){var I,R=!1;return function(){if(!R){m.na.cancel(I),I=m.na.zb(w);try{R=!0,_.notifySubscribers(e,"dirty")}finally{R=!1}}}}))},notify:function(_,b){_.equalityComparer=b=="always"?null:c}};var A={undefined:1,boolean:1,number:1,string:1};m.b("extenders",m.Ta),m.ic=function(_,b,w){this.da=_,this.lc=b,this.mc=w,this.Ib=!1,this.fb=this.Jb=null,m.L(this,"dispose",this.s),m.L(this,"disposeWhenNodeIsRemoved",this.l)},m.ic.prototype.s=function(){this.Ib||(this.fb&&m.a.K.yb(this.Jb,this.fb),this.Ib=!0,this.mc(),this.da=this.lc=this.mc=this.Jb=this.fb=null)},m.ic.prototype.l=function(_){this.Jb=_,m.a.K.za(_,this.fb=this.s.bind(this))},m.T=function(){m.a.Ab(this,x),x.qb(this)};var x={qb:function(_){_.U={change:[]},_.sc=1},subscribe:function(_,b,w){var I=this;w=w||"change";var R=new m.ic(I,b?_.bind(b):_,function(){m.a.Pa(I.U[w],R),I.hb&&I.hb(w)});return I.Qa&&I.Qa(w),I.U[w]||(I.U[w]=[]),I.U[w].push(R),R},notifySubscribers:function(_,b){if(b=b||"change",b==="change"&&this.Gb(),this.Wa(b)){var w=b==="change"&&this.ed||this.U[b].slice(0);try{m.u.xc();for(var I=0,R;R=w[I];++I)R.Ib||R.lc(_)}finally{m.u.end()}}},ob:function(){return this.sc},Dd:function(_){return this.ob()!==_},Gb:function(){++this.sc},ub:function(_){var b=this,w=m.O(b),I,R,F,k,V;b.gb||(b.gb=b.notifySubscribers,b.notifySubscribers=d);var G=_(function(){b.Ja=!1,w&&k===b&&(k=b.nc?b.nc():b());var U=R||V&&b.sb(F,k);V=R=I=!1,U&&b.gb(F=k)});b.qc=function(U,Y){Y&&b.Ja||(V=!Y),b.ed=b.U.change.slice(0),b.Ja=I=!0,k=U,G()},b.pc=function(U){I||(F=U,b.gb(U,"beforeChange"))},b.rc=function(){V=!0},b.gd=function(){b.sb(F,b.v(!0))&&(R=!0)}},Wa:function(_){return this.U[_]&&this.U[_].length},Bd:function(_){if(_)return this.U[_]&&this.U[_].length||0;var b=0;return m.a.P(this.U,function(w,I){w!=="dirty"&&(b+=I.length)}),b},sb:function(_,b){return!this.equalityComparer||!this.equalityComparer(_,b)},toString:function(){return"[object Object]"},extend:function(_){var b=this;return _&&m.a.P(_,function(w,I){var R=m.Ta[w];typeof R=="function"&&(b=R(b,I)||b)}),b}};m.L(x,"init",x.qb),m.L(x,"subscribe",x.subscribe),m.L(x,"extend",x.extend),m.L(x,"getSubscriptionsCount",x.Bd),m.a.Ba&&m.a.setPrototypeOf(x,Function.prototype),m.T.fn=x,m.Qc=function(_){return _!=null&&typeof _.subscribe=="function"&&typeof _.notifySubscribers=="function"},m.b("subscribable",m.T),m.b("isSubscribable",m.Qc),m.S=m.u=function(){function _(F){w.push(I),I=F}function b(){I=w.pop()}var w=[],I,R=0;return{xc:_,end:b,cc:function(F){if(I){if(!m.Qc(F))throw Error("Only subscribable things can act as dependencies");I.od.call(I.pd,F,F.fd||(F.fd=++R))}},G:function(F,k,V){try{return _(),F.apply(k,V||[])}finally{b()}},qa:function(){if(I)return I.o.qa()},Va:function(){if(I)return I.o.Va()},Ya:function(){if(I)return I.Ya},o:function(){if(I)return I.o}}}(),m.b("computedContext",m.S),m.b("computedContext.getDependenciesCount",m.S.qa),m.b("computedContext.getDependencies",m.S.Va),m.b("computedContext.isInitial",m.S.Ya),m.b("computedContext.registerDependency",m.S.cc),m.b("ignoreDependencies",m.Yd=m.u.G);var C=m.a.Da("_latestValue");m.ta=function(_){function b(){return 0<arguments.length?(b.sb(b[C],arguments[0])&&(b.ya(),b[C]=arguments[0],b.xa()),this):(m.u.cc(b),b[C])}return b[C]=_,m.a.Ba||m.a.extend(b,m.T.fn),m.T.fn.qb(b),m.a.Ab(b,T),m.options.deferUpdates&&m.Ta.deferred(b,!0),b};var T={equalityComparer:c,v:function(){return this[C]},xa:function(){this.notifySubscribers(this[C],"spectate"),this.notifySubscribers(this[C])},ya:function(){this.notifySubscribers(this[C],"beforeChange")}};m.a.Ba&&m.a.setPrototypeOf(T,m.T.fn);var E=m.ta.Ma="__ko_proto__";T[E]=m.ta,m.O=function(_){if((_=typeof _=="function"&&_[E])&&_!==T[E]&&_!==m.o.fn[E])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!_},m.Za=function(_){return typeof _=="function"&&(_[E]===T[E]||_[E]===m.o.fn[E]&&_.Nc)},m.b("observable",m.ta),m.b("isObservable",m.O),m.b("isWriteableObservable",m.Za),m.b("isWritableObservable",m.Za),m.b("observable.fn",T),m.L(T,"peek",T.v),m.L(T,"valueHasMutated",T.xa),m.L(T,"valueWillMutate",T.ya),m.Ha=function(_){if(_=_||[],typeof _!="object"||!("length"in _))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");return _=m.ta(_),m.a.Ab(_,m.Ha.fn),_.extend({trackArrayChanges:!0})},m.Ha.fn={remove:function(_){for(var b=this.v(),w=[],I=typeof _!="function"||m.O(_)?function(k){return k===_}:_,R=0;R<b.length;R++){var F=b[R];if(I(F)){if(w.length===0&&this.ya(),b[R]!==F)throw Error("Array modified during remove; cannot remove item");w.push(F),b.splice(R,1),R--}}return w.length&&this.xa(),w},removeAll:function(_){if(_===e){var b=this.v(),w=b.slice(0);return this.ya(),b.splice(0,b.length),this.xa(),w}return _?this.remove(function(I){return 0<=m.a.A(_,I)}):[]},destroy:function(_){var b=this.v(),w=typeof _!="function"||m.O(_)?function(F){return F===_}:_;this.ya();for(var I=b.length-1;0<=I;I--){var R=b[I];w(R)&&(R._destroy=!0)}this.xa()},destroyAll:function(_){return _===e?this.destroy(function(){return!0}):_?this.destroy(function(b){return 0<=m.a.A(_,b)}):[]},indexOf:function(_){var b=this();return m.a.A(b,_)},replace:function(_,b){var w=this.indexOf(_);0<=w&&(this.ya(),this.v()[w]=b,this.xa())},sorted:function(_){var b=this().slice(0);return _?b.sort(_):b.sort()},reversed:function(){return this().slice(0).reverse()}},m.a.Ba&&m.a.setPrototypeOf(m.Ha.fn,m.ta.fn),m.a.D("pop push reverse shift sort splice unshift".split(" "),function(_){m.Ha.fn[_]=function(){var b=this.v();this.ya(),this.zc(b,_,arguments);var w=b[_].apply(b,arguments);return this.xa(),w===b?this:w}}),m.a.D(["slice"],function(_){m.Ha.fn[_]=function(){var b=this();return b[_].apply(b,arguments)}}),m.Pc=function(_){return m.O(_)&&typeof _.remove=="function"&&typeof _.push=="function"},m.b("observableArray",m.Ha),m.b("isObservableArray",m.Pc),m.Ta.trackArrayChanges=function(_,b){function w(){function W(){if(V){var Z=[].concat(_.v()||[]),j;_.Wa("arrayChange")&&((!R||1<V)&&(R=m.a.Pb(G,Z,_.Ob)),j=R),G=Z,R=null,V=0,j&&j.length&&_.notifySubscribers(j,"arrayChange")}}I?W():(I=!0,k=_.subscribe(function(){++V},null,"spectate"),G=[].concat(_.v()||[]),R=null,F=_.subscribe(W))}if(_.Ob={},b&&typeof b=="object"&&m.a.extend(_.Ob,b),_.Ob.sparse=!0,!_.zc){var I=!1,R=null,F,k,V=0,G,U=_.Qa,Y=_.hb;_.Qa=function(W){U&&U.call(_,W),W==="arrayChange"&&w()},_.hb=function(W){Y&&Y.call(_,W),W!=="arrayChange"||_.Wa("arrayChange")||(F&&F.s(),k&&k.s(),k=F=null,I=!1,G=e)},_.zc=function(W,Z,j){function K(Ie,Ne,qe){return J[J.length]={status:Ie,value:Ne,index:qe}}if(I&&!V){var J=[],_e=W.length,xe=j.length,oe=0;switch(Z){case"push":oe=_e;case"unshift":for(Z=0;Z<xe;Z++)K("added",j[Z],oe+Z);break;case"pop":oe=_e-1;case"shift":_e&&K("deleted",W[oe],oe);break;case"splice":Z=Math.min(Math.max(0,0>j[0]?_e+j[0]:j[0]),_e);for(var _e=xe===1?_e:Math.min(Z+(j[1]||0),_e),xe=Z+xe-2,oe=Math.max(_e,xe),Ae=[],he=[],Se=2;Z<oe;++Z,++Se)Z<_e&&he.push(K("deleted",W[Z],Z)),Z<xe&&Ae.push(K("added",j[Se],Z));m.a.Kc(he,Ae);break;default:return}R=J}}}};var S=m.a.Da("_state");m.o=m.$=function(_,b,w){function I(){if(0<arguments.length){if(typeof R=="function")R.apply(F.nb,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return F.ra||m.u.cc(I),(F.ka||F.J&&I.Xa())&&I.ha(),F.X}if(typeof _=="object"?w=_:(w=w||{},_&&(w.read=_)),typeof w.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var R=w.write,F={X:e,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:w.read,nb:b||w.owner,l:w.disposeWhenNodeIsRemoved||w.l||null,Sa:w.disposeWhen||w.Sa,Rb:null,I:{},V:0,Ic:null};return I[S]=F,I.Nc=typeof R=="function",m.a.Ba||m.a.extend(I,m.T.fn),m.T.fn.qb(I),m.a.Ab(I,v),w.pure?(F.wb=!0,F.J=!0,m.a.extend(I,D)):w.deferEvaluation&&m.a.extend(I,M),m.options.deferUpdates&&m.Ta.deferred(I,!0),F.l&&(F.jc=!0,F.l.nodeType||(F.l=null)),F.J||w.deferEvaluation||I.ha(),F.l&&I.ja()&&m.a.K.za(F.l,F.Rb=function(){I.s()}),I};var v={equalityComparer:c,qa:function(){return this[S].V},Va:function(){var _=[];return m.a.P(this[S].I,function(b,w){_[w.Ka]=w.da}),_},Vb:function(_){if(!this[S].V)return!1;var b=this.Va();return m.a.A(b,_)!==-1?!0:!!m.a.Lb(b,function(w){return w.Vb&&w.Vb(_)})},uc:function(_,b,w){if(this[S].wb&&b===this)throw Error("A 'pure' computed must not be called recursively");this[S].I[_]=w,w.Ka=this[S].V++,w.La=b.ob()},Xa:function(){var _,b,w=this[S].I;for(_ in w)if(Object.prototype.hasOwnProperty.call(w,_)&&(b=w[_],this.Ia&&b.da.Ja||b.da.Dd(b.La)))return!0},Jd:function(){this.Ia&&!this[S].rb&&this.Ia(!1)},ja:function(){var _=this[S];return _.ka||0<_.V},Rd:function(){this.Ja?this[S].ka&&(this[S].sa=!0):this.Hc()},$c:function(_){if(_.Hb){var b=_.subscribe(this.Jd,this,"dirty"),w=_.subscribe(this.Rd,this);return{da:_,s:function(){b.s(),w.s()}}}return _.subscribe(this.Hc,this)},Hc:function(){var _=this,b=_.throttleEvaluation;b&&0<=b?(clearTimeout(this[S].Ic),this[S].Ic=m.a.setTimeout(function(){_.ha(!0)},b)):_.Ia?_.Ia(!0):_.ha(!0)},ha:function(_){var b=this[S],w=b.Sa,I=!1;if(!b.rb&&!b.ra){if(b.l&&!m.a.Sb(b.l)||w&&w()){if(!b.jc){this.s();return}}else b.jc=!1;b.rb=!0;try{I=this.zd(_)}finally{b.rb=!1}return I}},zd:function(_){var b=this[S],I=!1,w=b.wb?e:!b.V,I={qd:this,mb:b.I,Qb:b.V};m.u.xc({pd:I,od:g,o:this,Ya:w}),b.I={},b.V=0;var R=this.yd(b,I);return b.V?I=this.sb(b.X,R):(this.s(),I=!0),I&&(b.J?this.Gb():this.notifySubscribers(b.X,"beforeChange"),b.X=R,this.notifySubscribers(b.X,"spectate"),!b.J&&_&&this.notifySubscribers(b.X),this.rc&&this.rc()),w&&this.notifySubscribers(b.X,"awake"),I},yd:function(_,b){try{var w=_.Wc;return _.nb?w.call(_.nb):w()}finally{m.u.end(),b.Qb&&!_.J&&m.a.P(b.mb,p),_.sa=_.ka=!1}},v:function(_){var b=this[S];return(b.ka&&(_||!b.V)||b.J&&this.Xa())&&this.ha(),b.X},ub:function(_){m.T.fn.ub.call(this,_),this.nc=function(){return this[S].J||(this[S].sa?this.ha():this[S].ka=!1),this[S].X},this.Ia=function(b){this.pc(this[S].X),this[S].ka=!0,b&&(this[S].sa=!0),this.qc(this,!b)}},s:function(){var _=this[S];!_.J&&_.I&&m.a.P(_.I,function(b,w){w.s&&w.s()}),_.l&&_.Rb&&m.a.K.yb(_.l,_.Rb),_.I=e,_.V=0,_.ra=!0,_.sa=!1,_.ka=!1,_.J=!1,_.l=e,_.Sa=e,_.Wc=e,this.Nc||(_.nb=e)}},D={Qa:function(_){var b=this,w=b[S];if(!w.ra&&w.J&&_=="change"){if(w.J=!1,w.sa||b.Xa())w.I=null,w.V=0,b.ha()&&b.Gb();else{var I=[];m.a.P(w.I,function(R,F){I[F.Ka]=R}),m.a.D(I,function(R,F){var k=w.I[R],V=b.$c(k.da);V.Ka=F,V.La=k.La,w.I[R]=V}),b.Xa()&&b.ha()&&b.Gb()}w.ra||b.notifySubscribers(w.X,"awake")}},hb:function(_){var b=this[S];b.ra||_!="change"||this.Wa("change")||(m.a.P(b.I,function(w,I){I.s&&(b.I[w]={da:I.da,Ka:I.Ka,La:I.La},I.s())}),b.J=!0,this.notifySubscribers(e,"asleep"))},ob:function(){var _=this[S];return _.J&&(_.sa||this.Xa())&&this.ha(),m.T.fn.ob.call(this)}},M={Qa:function(_){_!="change"&&_!="beforeChange"||this.v()}};m.a.Ba&&m.a.setPrototypeOf(v,m.T.fn);var O=m.ta.Ma;v[O]=m.o,m.Oc=function(_){return typeof _=="function"&&_[O]===v[O]},m.Fd=function(_){return m.Oc(_)&&_[S]&&_[S].wb},m.b("computed",m.o),m.b("dependentObservable",m.o),m.b("isComputed",m.Oc),m.b("isPureComputed",m.Fd),m.b("computed.fn",v),m.L(v,"peek",v.v),m.L(v,"dispose",v.s),m.L(v,"isActive",v.ja),m.L(v,"getDependenciesCount",v.qa),m.L(v,"getDependencies",v.Va),m.xb=function(_,b){return typeof _=="function"?m.o(_,b,{pure:!0}):(_=m.a.extend({},_),_.pure=!0,m.o(_,b))},m.b("pureComputed",m.xb),function(){function _(I,R,F){if(F=F||new w,I=R(I),typeof I!="object"||I===null||I===e||I instanceof RegExp||I instanceof Date||I instanceof String||I instanceof Number||I instanceof Boolean)return I;var k=I instanceof Array?[]:{};return F.save(I,k),b(I,function(V){var G=R(I[V]);switch(typeof G){case"boolean":case"number":case"string":case"function":k[V]=G;break;case"object":case"undefined":var U=F.get(G);k[V]=U!==e?U:_(G,R,F)}}),k}function b(I,R){if(I instanceof Array){for(var F=0;F<I.length;F++)R(F);typeof I.toJSON=="function"&&R("toJSON")}else for(F in I)R(F)}function w(){this.keys=[],this.values=[]}m.ad=function(I){if(arguments.length==0)throw Error("When calling ko.toJS, pass the object you want to convert.");return _(I,function(R){for(var F=0;m.O(R)&&10>F;F++)R=R();return R})},m.toJSON=function(I,R,F){return I=m.ad(I),m.a.hc(I,R,F)},w.prototype={constructor:w,save:function(I,R){var F=m.a.A(this.keys,I);0<=F?this.values[F]=R:(this.keys.push(I),this.values.push(R))},get:function(I){return I=m.a.A(this.keys,I),0<=I?this.values[I]:e}}}(),m.b("toJS",m.ad),m.b("toJSON",m.toJSON),m.Wd=function(_,b,w){function I(R){var F=m.xb(_,w).extend({ma:"always"}),k=F.subscribe(function(V){V&&(k.s(),R(V))});return F.notifySubscribers(F.v()),k}return typeof Promise!="function"||b?I(b.bind(w)):new Promise(I)},m.b("when",m.Wd),function(){m.w={M:function(_){switch(m.a.R(_)){case"option":return _.__ko__hasDomDataOptionValue__===!0?m.a.g.get(_,m.c.options.$b):7>=m.a.W?_.getAttributeNode("value")&&_.getAttributeNode("value").specified?_.value:_.text:_.value;case"select":return 0<=_.selectedIndex?m.w.M(_.options[_.selectedIndex]):e;default:return _.value}},cb:function(_,b,w){switch(m.a.R(_)){case"option":typeof b=="string"?(m.a.g.set(_,m.c.options.$b,e),"__ko__hasDomDataOptionValue__"in _&&delete _.__ko__hasDomDataOptionValue__,_.value=b):(m.a.g.set(_,m.c.options.$b,b),_.__ko__hasDomDataOptionValue__=!0,_.value=typeof b=="number"?b:"");break;case"select":(b===""||b===null)&&(b=e);for(var I=-1,R=0,F=_.options.length,k;R<F;++R)if(k=m.w.M(_.options[R]),k==b||k===""&&b===e){I=R;break}(w||0<=I||b===e&&1<_.size)&&(_.selectedIndex=I,m.a.W===6&&m.a.setTimeout(function(){_.selectedIndex=I},0));break;default:(b===null||b===e)&&(b=""),_.value=b}}}}(),m.b("selectExtensions",m.w),m.b("selectExtensions.readValue",m.w.M),m.b("selectExtensions.writeValue",m.w.cb),m.m=function(){function _(V){V=m.a.Db(V),V.charCodeAt(0)===123&&(V=V.slice(1,-1)),V+=` +,`;var G=[],U=V.match(I),Y,W=[],Z=0;if(1<U.length){for(var j=0,K;K=U[j];++j){var J=K.charCodeAt(0);if(J===44){if(0>=Z){G.push(Y&&W.length?{key:Y,value:W.join("")}:{unknown:Y||W.join("")}),Y=Z=0,W=[];continue}}else if(J===58){if(!Z&&!Y&&W.length===1){Y=W.pop();continue}}else{if(J===47&&1<K.length&&(K.charCodeAt(1)===47||K.charCodeAt(1)===42))continue;J===47&&j&&1<K.length?(J=U[j-1].match(R))&&!F[J[0]]&&(V=V.substr(V.indexOf(K)+1),U=V.match(I),j=-1,K="/"):J===40||J===123||J===91?++Z:J===41||J===125||J===93?--Z:Y||W.length||J!==34&&J!==39||(K=K.slice(1,-1))}W.push(K)}if(0<Z)throw Error("Unbalanced parentheses, braces, or brackets")}return G}var b=["true","false","null","undefined"],w=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,I=RegExp(`"(?:\\\\.|[^"])*"|'(?:\\\\.|[^'])*'|\`(?:\\\\.|[^\`])*\`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.* +|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,"'\`{}()/:[\\]]*[^\\s,"'\`{}()/:[\\]]|[^\\s]`,"g"),R=/[\])"'A-Za-z0-9_$]+$/,F={in:1,return:1,typeof:1},k={};return{Ra:[],wa:k,ac:_,vb:function(V,G){function U(J,_e){var xe;if(!j){var oe=m.getBindingHandler(J);if(oe&&oe.preprocess&&!(_e=oe.preprocess(_e,J,U)))return;(oe=k[J])&&(xe=_e,0<=m.a.A(b,xe)?xe=!1:(oe=xe.match(w),xe=oe===null?!1:oe[1]?"Object("+oe[1]+")"+oe[2]:xe),oe=xe),oe&&W.push("'"+(typeof k[J]=="string"?k[J]:J)+"':function(_z){"+xe+"=_z}")}Z&&(_e="function(){return "+_e+" }"),Y.push("'"+J+"':"+_e)}G=G||{};var Y=[],W=[],Z=G.valueAccessors,j=G.bindingParams,K=typeof V=="string"?_(V):V;return m.a.D(K,function(J){U(J.key||J.unknown,J.value)}),W.length&&U("_ko_property_writers","{"+W.join(",")+" }"),Y.join(",")},Id:function(V,G){for(var U=0;U<V.length;U++)if(V[U].key==G)return!0;return!1},eb:function(V,G,U,Y,W){V&&m.O(V)?!m.Za(V)||W&&V.v()===Y||V(Y):(V=G.get("_ko_property_writers"))&&V[U]&&V[U](Y)}}}(),m.b("expressionRewriting",m.m),m.b("expressionRewriting.bindingRewriteValidators",m.m.Ra),m.b("expressionRewriting.parseObjectLiteral",m.m.ac),m.b("expressionRewriting.preProcessBindings",m.m.vb),m.b("expressionRewriting._twoWayBindings",m.m.wa),m.b("jsonExpressionRewriting",m.m),m.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",m.m.vb),function(){function _(U){return U.nodeType==8&&F.test(R?U.text:U.nodeValue)}function b(U){return U.nodeType==8&&k.test(R?U.text:U.nodeValue)}function w(U,Y){for(var W=U,Z=1,j=[];W=W.nextSibling;){if(b(W)&&(m.a.g.set(W,G,!0),Z--,Z===0))return j;j.push(W),_(W)&&Z++}if(!Y)throw Error("Cannot find closing comment tag to match: "+U.nodeValue);return null}function I(U,Y){var W=w(U,Y);return W?0<W.length?W[W.length-1].nextSibling:U.nextSibling:null}var R=n&&n.createComment("test").text==="<!--test-->",F=R?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,k=R?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,V={ul:!0,ol:!0},G="__ko_matchedEndComment__";m.h={ea:{},childNodes:function(U){return _(U)?w(U):U.childNodes},Ea:function(U){if(_(U)){U=m.h.childNodes(U);for(var Y=0,W=U.length;Y<W;Y++)m.removeNode(U[Y])}else m.a.Tb(U)},va:function(U,Y){if(_(U)){m.h.Ea(U);for(var W=U.nextSibling,Z=0,j=Y.length;Z<j;Z++)W.parentNode.insertBefore(Y[Z],W)}else m.a.va(U,Y)},Vc:function(U,Y){var W;_(U)?(W=U.nextSibling,U=U.parentNode):W=U.firstChild,W?Y!==W&&U.insertBefore(Y,W):U.appendChild(Y)},Wb:function(U,Y,W){W?(W=W.nextSibling,_(U)&&(U=U.parentNode),W?Y!==W&&U.insertBefore(Y,W):U.appendChild(Y)):m.h.Vc(U,Y)},firstChild:function(U){if(_(U))return!U.nextSibling||b(U.nextSibling)?null:U.nextSibling;if(U.firstChild&&b(U.firstChild))throw Error("Found invalid end comment, as the first child of "+U);return U.firstChild},nextSibling:function(U){if(_(U)&&(U=I(U)),U.nextSibling&&b(U.nextSibling)){var Y=U.nextSibling;if(b(Y)&&!m.a.g.get(Y,G))throw Error("Found end comment without a matching opening comment, as child of "+U);return null}return U.nextSibling},Cd:_,Vd:function(U){return(U=(R?U.text:U.nodeValue).match(F))?U[1]:null},Sc:function(U){if(V[m.a.R(U)]){var Y=U.firstChild;if(Y)do if(Y.nodeType===1){var W;W=Y.firstChild;var Z=null;if(W)do if(Z)Z.push(W);else if(_(W)){var j=I(W,!0);j?W=j:Z=[W]}else b(W)&&(Z=[W]);while(W=W.nextSibling);if(W=Z)for(Z=Y.nextSibling,j=0;j<W.length;j++)Z?U.insertBefore(W[j],Z):U.appendChild(W[j])}while(Y=Y.nextSibling)}}}}(),m.b("virtualElements",m.h),m.b("virtualElements.allowedBindings",m.h.ea),m.b("virtualElements.emptyNode",m.h.Ea),m.b("virtualElements.insertAfter",m.h.Wb),m.b("virtualElements.prepend",m.h.Vc),m.b("virtualElements.setDomNodeChildren",m.h.va),function(){m.ga=function(){this.nd={}},m.a.extend(m.ga.prototype,{nodeHasBindings:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind")!=null||m.j.getComponentNameForNode(_);case 8:return m.h.Cd(_);default:return!1}},getBindings:function(_,b){var w=this.getBindingsString(_,b),w=w?this.parseBindingsString(w,b,_):null;return m.j.tc(w,_,b,!1)},getBindingAccessors:function(_,b){var w=this.getBindingsString(_,b),w=w?this.parseBindingsString(w,b,_,{valueAccessors:!0}):null;return m.j.tc(w,_,b,!0)},getBindingsString:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind");case 8:return m.h.Vd(_);default:return null}},parseBindingsString:function(_,b,w,I){try{var R=this.nd,F=_+(I&&I.valueAccessors||""),k;if(!(k=R[F])){var V,G="with($context){with($data||{}){return{"+m.m.vb(_,I)+"}}}";V=new Function("$context","$element",G),k=R[F]=V}return k(b,w)}catch(U){throw U.message=`Unable to parse bindings. +Bindings value: `+_+` +Message: `+U.message,U}}}),m.ga.instance=new m.ga}(),m.b("bindingProvider",m.ga),function(){function _(oe){var Ae=(oe=m.a.g.get(oe,xe))&&oe.N;Ae&&(oe.N=null,Ae.Tc())}function b(oe,Ae,he){this.node=oe,this.yc=Ae,this.kb=[],this.H=!1,Ae.N||m.a.K.za(oe,_),he&&he.N&&(he.N.kb.push(oe),this.Kb=he)}function w(oe){return function(){return oe}}function I(oe){return oe()}function R(oe){return m.a.Ga(m.u.G(oe),function(Ae,he){return function(){return oe()[he]}})}function F(oe,Ae,he){return typeof oe=="function"?R(oe.bind(null,Ae,he)):m.a.Ga(oe,w)}function k(oe,Ae){return R(this.getBindings.bind(this,oe,Ae))}function V(oe,Ae){var he=m.h.firstChild(Ae);if(he){var Se,Ie=m.ga.instance,Ne=Ie.preprocessNode;if(Ne){for(;Se=he;)he=m.h.nextSibling(Se),Ne.call(Ie,Se);he=m.h.firstChild(Ae)}for(;Se=he;)he=m.h.nextSibling(Se),G(oe,Se)}m.i.ma(Ae,m.i.H)}function G(oe,Ae){var he=oe,Se=Ae.nodeType===1;Se&&m.h.Sc(Ae),(Se||m.ga.instance.nodeHasBindings(Ae))&&(he=Y(Ae,null,oe).bindingContextForDescendants),he&&!J[m.a.R(Ae)]&&V(he,Ae)}function U(oe){var Ae=[],he={},Se=[];return m.a.P(oe,function Ie(Ne){if(!he[Ne]){var qe=m.getBindingHandler(Ne);qe&&(qe.after&&(Se.push(Ne),m.a.D(qe.after,function(pt){if(oe[pt]){if(m.a.A(Se,pt)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+Se.join(", "));Ie(pt)}}),Se.length--),Ae.push({key:Ne,Mc:qe})),he[Ne]=!0}}),Ae}function Y(oe,Ae,he){var Se=m.a.g.Ub(oe,xe,{}),Ie=Se.hd;if(!Ae){if(Ie)throw Error("You cannot apply bindings multiple times to the same element.");Se.hd=!0}Ie||(Se.context=he),Se.Zb||(Se.Zb={});var Ne;if(Ae&&typeof Ae!="function")Ne=Ae;else{var qe=m.ga.instance,pt=qe.getBindingAccessors||k,Gt=m.$(function(){return(Ne=Ae?Ae(he,oe):pt.call(qe,oe,he))&&(he[Z]&&he[Z](),he[K]&&he[K]()),Ne},null,{l:oe});Ne&&Gt.ja()||(Gt=null)}var fn=he,ft;if(Ne){var pn=function(){return m.a.Ga(Gt?Gt():Ne,I)},Bn=Gt?function(Vt){return function(){return I(Gt()[Vt])}}:function(Vt){return Ne[Vt]};pn.get=function(Vt){return Ne[Vt]&&I(Bn(Vt))},pn.has=function(Vt){return Vt in Ne},m.i.H in Ne&&m.i.subscribe(oe,m.i.H,function(){var Vt=(0,Ne[m.i.H])();if(Vt){var Qe=m.h.childNodes(oe);Qe.length&&Vt(Qe,m.Ec(Qe[0]))}}),m.i.pa in Ne&&(fn=m.i.Cb(oe,he),m.i.subscribe(oe,m.i.pa,function(){var Vt=(0,Ne[m.i.pa])();Vt&&m.h.firstChild(oe)&&Vt(oe)})),Se=U(Ne),m.a.D(Se,function(Vt){var Qe=Vt.Mc.init,pe=Vt.Mc.update,Ee=Vt.key;if(oe.nodeType===8&&!m.h.ea[Ee])throw Error("The binding '"+Ee+"' cannot be used with virtual elements");try{typeof Qe=="function"&&m.u.G(function(){var Ge=Qe(oe,Bn(Ee),pn,fn.$data,fn);if(Ge&&Ge.controlsDescendantBindings){if(ft!==e)throw Error("Multiple bindings ("+ft+" and "+Ee+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");ft=Ee}}),typeof pe=="function"&&m.$(function(){pe(oe,Bn(Ee),pn,fn.$data,fn)},null,{l:oe})}catch(Ge){throw Ge.message='Unable to process binding "'+Ee+": "+Ne[Ee]+`" +Message: `+Ge.message,Ge}})}return Se=ft===e,{shouldBindDescendants:Se,bindingContextForDescendants:Se&&fn}}function W(oe,Ae){return oe&&oe instanceof m.fa?oe:new m.fa(oe,e,e,Ae)}var Z=m.a.Da("_subscribable"),j=m.a.Da("_ancestorBindingInfo"),K=m.a.Da("_dataDependency");m.c={};var J={script:!0,textarea:!0,template:!0};m.getBindingHandler=function(oe){return m.c[oe]};var _e={};m.fa=function(oe,Ae,he,Se,Ie){function Ne(){var Bn=fn?Gt():Gt,Vt=m.a.f(Bn);return Ae?(m.a.extend(qe,Ae),j in Ae&&(qe[j]=Ae[j])):(qe.$parents=[],qe.$root=Vt,qe.ko=m),qe[Z]=ft,pt?Vt=qe.$data:(qe.$rawData=Bn,qe.$data=Vt),he&&(qe[he]=Vt),Se&&Se(qe,Ae,Vt),Ae&&Ae[Z]&&!m.S.o().Vb(Ae[Z])&&Ae[Z](),pn&&(qe[K]=pn),qe.$data}var qe=this,pt=oe===_e,Gt=pt?e:oe,fn=typeof Gt=="function"&&!m.O(Gt),ft,pn=Ie&&Ie.dataDependency;Ie&&Ie.exportDependencies?Ne():(ft=m.xb(Ne),ft.v(),ft.ja()?ft.equalityComparer=null:qe[Z]=e)},m.fa.prototype.createChildContext=function(oe,Ae,he,Se){if(!Se&&Ae&&typeof Ae=="object"&&(Se=Ae,Ae=Se.as,he=Se.extend),Ae&&Se&&Se.noChildContext){var Ie=typeof oe=="function"&&!m.O(oe);return new m.fa(_e,this,null,function(Ne){he&&he(Ne),Ne[Ae]=Ie?oe():oe},Se)}return new m.fa(oe,this,Ae,function(Ne,qe){Ne.$parentContext=qe,Ne.$parent=qe.$data,Ne.$parents=(qe.$parents||[]).slice(0),Ne.$parents.unshift(Ne.$parent),he&&he(Ne)},Se)},m.fa.prototype.extend=function(oe,Ae){return new m.fa(_e,this,null,function(he){m.a.extend(he,typeof oe=="function"?oe(he):oe)},Ae)};var xe=m.a.g.Z();b.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)},b.prototype.sd=function(oe){m.a.Pa(this.kb,oe),!this.kb.length&&this.H&&this.Cc()},b.prototype.Cc=function(){this.H=!0,this.yc.N&&!this.kb.length&&(this.yc.N=null,m.a.K.yb(this.node,_),m.i.ma(this.node,m.i.pa),this.Tc())},m.i={H:"childrenComplete",pa:"descendantsComplete",subscribe:function(oe,Ae,he,Se,Ie){var Ne=m.a.g.Ub(oe,xe,{});return Ne.Fa||(Ne.Fa=new m.T),Ie&&Ie.notifyImmediately&&Ne.Zb[Ae]&&m.u.G(he,Se,[oe]),Ne.Fa.subscribe(he,Se,Ae)},ma:function(oe,Ae){var he=m.a.g.get(oe,xe);if(he&&(he.Zb[Ae]=!0,he.Fa&&he.Fa.notifySubscribers(oe,Ae),Ae==m.i.H)){if(he.N)he.N.Cc();else if(he.N===e&&he.Fa&&he.Fa.Wa(m.i.pa))throw Error("descendantsComplete event not supported for bindings on this node")}},Cb:function(oe,Ae){var he=m.a.g.Ub(oe,xe,{});return he.N||(he.N=new b(oe,he,Ae[j])),Ae[j]==he?Ae:Ae.extend(function(Se){Se[j]=he})}},m.Td=function(oe){return(oe=m.a.g.get(oe,xe))&&oe.context},m.ib=function(oe,Ae,he){return oe.nodeType===1&&m.h.Sc(oe),Y(oe,Ae,W(he))},m.ld=function(oe,Ae,he){return he=W(he),m.ib(oe,F(Ae,he,oe),he)},m.Oa=function(oe,Ae){Ae.nodeType!==1&&Ae.nodeType!==8||V(W(oe),Ae)},m.vc=function(oe,Ae,he){if(!r&&t.jQuery&&(r=t.jQuery),2>arguments.length){if(Ae=n.body,!Ae)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!Ae||Ae.nodeType!==1&&Ae.nodeType!==8)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");G(W(oe,he),Ae)},m.Dc=function(oe){return!oe||oe.nodeType!==1&&oe.nodeType!==8?e:m.Td(oe)},m.Ec=function(oe){return(oe=m.Dc(oe))?oe.$data:e},m.b("bindingHandlers",m.c),m.b("bindingEvent",m.i),m.b("bindingEvent.subscribe",m.i.subscribe),m.b("bindingEvent.startPossiblyAsyncContentBinding",m.i.Cb),m.b("applyBindings",m.vc),m.b("applyBindingsToDescendants",m.Oa),m.b("applyBindingAccessorsToNode",m.ib),m.b("applyBindingsToNode",m.ld),m.b("contextFor",m.Dc),m.b("dataFor",m.Ec)}(),function(_){function b(k,V){var G=Object.prototype.hasOwnProperty.call(R,k)?R[k]:_,U;G?G.subscribe(V):(G=R[k]=new m.T,G.subscribe(V),w(k,function(Y,W){var Z=!(!W||!W.synchronous);F[k]={definition:Y,Gd:Z},delete R[k],U||Z?G.notifySubscribers(Y):m.na.zb(function(){G.notifySubscribers(Y)})}),U=!0)}function w(k,V){I("getConfig",[k],function(G){G?I("loadComponent",[k,G],function(U){V(U,G)}):V(null,null)})}function I(k,V,G,U){U||(U=m.j.loaders.slice(0));var Y=U.shift();if(Y){var W=Y[k];if(W){var Z=!1;if(W.apply(Y,V.concat(function(j){Z?G(null):j!==null?G(j):I(k,V,G,U)}))!==_&&(Z=!0,!Y.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else I(k,V,G,U)}else G(null)}var R={},F={};m.j={get:function(k,V){var G=Object.prototype.hasOwnProperty.call(F,k)?F[k]:_;G?G.Gd?m.u.G(function(){V(G.definition)}):m.na.zb(function(){V(G.definition)}):b(k,V)},Bc:function(k){delete F[k]},oc:I},m.j.loaders=[],m.b("components",m.j),m.b("components.get",m.j.get),m.b("components.clearCachedDefinition",m.j.Bc)}(),function(){function _(G,U,Y,W){function Z(){--K===0&&W(j)}var j={},K=2,J=Y.template;Y=Y.viewModel,J?R(U,J,function(_e){m.j.oc("loadTemplate",[G,_e],function(xe){j.template=xe,Z()})}):Z(),Y?R(U,Y,function(_e){m.j.oc("loadViewModel",[G,_e],function(xe){j[V]=xe,Z()})}):Z()}function b(G,U,Y){if(typeof U=="function")Y(function(Z){return new U(Z)});else if(typeof U[V]=="function")Y(U[V]);else if("instance"in U){var W=U.instance;Y(function(){return W})}else"viewModel"in U?b(G,U.viewModel,Y):G("Unknown viewModel value: "+U)}function w(G){switch(m.a.R(G)){case"script":return m.a.ua(G.text);case"textarea":return m.a.ua(G.value);case"template":if(I(G.content))return m.a.Ca(G.content.childNodes)}return m.a.Ca(G.childNodes)}function I(G){return t.DocumentFragment?G instanceof DocumentFragment:G&&G.nodeType===11}function R(G,U,Y){typeof U.require=="string"?a||t.require?(a||t.require)([U.require],function(W){W&&typeof W=="object"&&W.Xd&&W.default&&(W=W.default),Y(W)}):G("Uses require, but no AMD loader is present"):Y(U)}function F(G){return function(U){throw Error("Component '"+G+"': "+U)}}var k={};m.j.register=function(G,U){if(!U)throw Error("Invalid configuration for "+G);if(m.j.tb(G))throw Error("Component "+G+" is already registered");k[G]=U},m.j.tb=function(G){return Object.prototype.hasOwnProperty.call(k,G)},m.j.unregister=function(G){delete k[G],m.j.Bc(G)},m.j.Fc={getConfig:function(G,U){U(m.j.tb(G)?k[G]:null)},loadComponent:function(G,U,Y){var W=F(G);R(W,U,function(Z){_(G,W,Z,Y)})},loadTemplate:function(G,U,Y){if(G=F(G),typeof U=="string")Y(m.a.ua(U));else if(U instanceof Array)Y(U);else if(I(U))Y(m.a.la(U.childNodes));else if(U.element)if(U=U.element,t.HTMLElement?U instanceof HTMLElement:U&&U.tagName&&U.nodeType===1)Y(w(U));else if(typeof U=="string"){var W=n.getElementById(U);W?Y(w(W)):G("Cannot find element with ID "+U)}else G("Unknown element type: "+U);else G("Unknown template value: "+U)},loadViewModel:function(G,U,Y){b(F(G),U,Y)}};var V="createViewModel";m.b("components.register",m.j.register),m.b("components.isRegistered",m.j.tb),m.b("components.unregister",m.j.unregister),m.b("components.defaultLoader",m.j.Fc),m.j.loaders.push(m.j.Fc),m.j.dd=k}(),function(){function _(w,I){var R=w.getAttribute("params");if(R){var R=b.parseBindingsString(R,I,w,{valueAccessors:!0,bindingParams:!0}),R=m.a.Ga(R,function(V){return m.o(V,null,{l:w})}),F=m.a.Ga(R,function(V){var G=V.v();return V.ja()?m.o({read:function(){return m.a.f(V())},write:m.Za(G)&&function(U){V()(U)},l:w}):G});return Object.prototype.hasOwnProperty.call(F,"$raw")||(F.$raw=R),F}return{$raw:{}}}m.j.getComponentNameForNode=function(w){var I=m.a.R(w);if(m.j.tb(I)&&(I.indexOf("-")!=-1||""+w=="[object HTMLUnknownElement]"||8>=m.a.W&&w.tagName===I))return I},m.j.tc=function(w,I,R,F){if(I.nodeType===1){var k=m.j.getComponentNameForNode(I);if(k){if(w=w||{},w.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var V={name:k,params:_(I,R)};w.component=F?function(){return V}:V}}return w};var b=new m.ga;9>m.a.W&&(m.j.register=function(w){return function(I){return w.apply(this,arguments)}}(m.j.register),n.createDocumentFragment=function(w){return function(){var I=w(),R=m.j.dd,F;for(F in R);return I}}(n.createDocumentFragment))}(),function(){function _(I,R,F){if(R=R.template,!R)throw Error("Component '"+I+"' has no template");I=m.a.Ca(R),m.h.va(F,I)}function b(I,R,F){var k=I.createViewModel;return k?k.call(I,R,F):R}var w=0;m.c.component={init:function(I,R,F,k,V){function G(){var j=U&&U.dispose;typeof j=="function"&&j.call(U),W&&W.s(),Y=U=W=null}var U,Y,W,Z=m.a.la(m.h.childNodes(I));return m.h.Ea(I),m.a.K.za(I,G),m.o(function(){var j=m.a.f(R()),K,J;if(typeof j=="string"?K=j:(K=m.a.f(j.name),J=m.a.f(j.params)),!K)throw Error("No component name specified");var _e=m.i.Cb(I,V),xe=Y=++w;m.j.get(K,function(oe){if(Y===xe){if(G(),!oe)throw Error("Unknown component '"+K+"'");_(K,oe,I);var Ae=b(oe,J,{element:I,templateNodes:Z});oe=_e.createChildContext(Ae,{extend:function(he){he.$component=Ae,he.$componentTemplateNodes=Z}}),Ae&&Ae.koDescendantsComplete&&(W=m.i.subscribe(I,m.i.pa,Ae.koDescendantsComplete,Ae)),U=Ae,m.Oa(oe,I)}})},null,{l:I}),{controlsDescendantBindings:!0}}},m.h.ea.component=!0}();var B={class:"className",for:"htmlFor"};m.c.attr={update:function(_,b){var w=m.a.f(b())||{};m.a.P(w,function(I,R){R=m.a.f(R);var F=I.indexOf(":"),F="lookupNamespaceURI"in _&&0<F&&_.lookupNamespaceURI(I.substr(0,F)),k=R===!1||R===null||R===e;k?F?_.removeAttributeNS(F,I):_.removeAttribute(I):R=R.toString(),8>=m.a.W&&I in B?(I=B[I],k?_.removeAttribute(I):_[I]=R):k||(F?_.setAttributeNS(F,I,R):_.setAttribute(I,R)),I==="name"&&m.a.Yc(_,k?"":R)})}},function(){m.c.checked={after:["value","attr"],init:function(_,b,w){function I(){var j=_.checked,K=F();if(!m.S.Ya()&&(j||!V&&!m.S.qa())){var J=m.u.G(b);if(U){var _e=Y?J.v():J,xe=Z;Z=K,xe!==K?j&&(m.a.Na(_e,K,!0),m.a.Na(_e,xe,!1)):m.a.Na(_e,K,j),Y&&m.Za(J)&&J(_e)}else k&&(K===e?K=j:j||(K=e)),m.m.eb(J,w,"checked",K,!0)}}function R(){var j=m.a.f(b()),K=F();U?(_.checked=0<=m.a.A(j,K),Z=K):_.checked=k&&K===e?!!j:F()===j}var F=m.xb(function(){if(w.has("checkedValue"))return m.a.f(w.get("checkedValue"));if(W)return w.has("value")?m.a.f(w.get("value")):_.value}),k=_.type=="checkbox",V=_.type=="radio";if(k||V){var G=b(),U=k&&m.a.f(G)instanceof Array,Y=!(U&&G.push&&G.splice),W=V||U,Z=U?F():e;V&&!_.name&&m.c.uniqueName.init(_,function(){return!0}),m.o(I,null,{l:_}),m.a.B(_,"click",I),m.o(R,null,{l:_}),G=e}}},m.m.wa.checked=!0,m.c.checkedValue={update:function(_,b){_.value=m.a.f(b())}}}(),m.c.class={update:function(_,b){var w=m.a.Db(m.a.f(b()));m.a.Eb(_,_.__ko__cssValue,!1),_.__ko__cssValue=w,m.a.Eb(_,w,!0)}},m.c.css={update:function(_,b){var w=m.a.f(b());w!==null&&typeof w=="object"?m.a.P(w,function(I,R){R=m.a.f(R),m.a.Eb(_,I,R)}):m.c.class.update(_,b)}},m.c.enable={update:function(_,b){var w=m.a.f(b());w&&_.disabled?_.removeAttribute("disabled"):w||_.disabled||(_.disabled=!0)}},m.c.disable={update:function(_,b){m.c.enable.update(_,function(){return!m.a.f(b())})}},m.c.event={init:function(_,b,w,I,R){var F=b()||{};m.a.P(F,function(k){typeof k=="string"&&m.a.B(_,k,function(V){var G,U=b()[k];if(U){try{var Y=m.a.la(arguments);I=R.$data,Y.unshift(I),G=U.apply(I,Y)}finally{G!==!0&&(V.preventDefault?V.preventDefault():V.returnValue=!1)}w.get(k+"Bubble")===!1&&(V.cancelBubble=!0,V.stopPropagation&&V.stopPropagation())}})})}},m.c.foreach={Rc:function(_){return function(){var b=_(),w=m.a.bc(b);return!w||typeof w.length=="number"?{foreach:b,templateEngine:m.ba.Ma}:(m.a.f(b),{foreach:w.data,as:w.as,noChildContext:w.noChildContext,includeDestroyed:w.includeDestroyed,afterAdd:w.afterAdd,beforeRemove:w.beforeRemove,afterRender:w.afterRender,beforeMove:w.beforeMove,afterMove:w.afterMove,templateEngine:m.ba.Ma})}},init:function(_,b){return m.c.template.init(_,m.c.foreach.Rc(b))},update:function(_,b,w,I,R){return m.c.template.update(_,m.c.foreach.Rc(b),w,I,R)}},m.m.Ra.foreach=!1,m.h.ea.foreach=!0,m.c.hasfocus={init:function(_,b,w){function I(k){_.__ko_hasfocusUpdating=!0;var V=_.ownerDocument;if("activeElement"in V){var G;try{G=V.activeElement}catch{G=V.body}k=G===_}V=b(),m.m.eb(V,w,"hasfocus",k,!0),_.__ko_hasfocusLastValue=k,_.__ko_hasfocusUpdating=!1}var R=I.bind(null,!0),F=I.bind(null,!1);m.a.B(_,"focus",R),m.a.B(_,"focusin",R),m.a.B(_,"blur",F),m.a.B(_,"focusout",F),_.__ko_hasfocusLastValue=!1},update:function(_,b){var w=!!m.a.f(b());_.__ko_hasfocusUpdating||_.__ko_hasfocusLastValue===w||(w?_.focus():_.blur(),!w&&_.__ko_hasfocusLastValue&&_.ownerDocument.body.focus(),m.u.G(m.a.Fb,null,[_,w?"focusin":"focusout"]))}},m.m.wa.hasfocus=!0,m.c.hasFocus=m.c.hasfocus,m.m.wa.hasFocus="hasfocus",m.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(_,b){m.a.fc(_,b())}},function(){function _(b,w,I){m.c[b]={init:function(R,F,k,V,G){var U,Y,W={},Z,j,K;if(w){V=k.get("as");var J=k.get("noChildContext");K=!(V&&J),W={as:V,noChildContext:J,exportDependencies:K}}return j=(Z=k.get("completeOn")=="render")||k.has(m.i.pa),m.o(function(){var _e=m.a.f(F()),xe=!I!=!_e,oe=!Y,Ae;(K||xe!==U)&&(j&&(G=m.i.Cb(R,G)),xe&&((!w||K)&&(W.dataDependency=m.S.o()),Ae=w?G.createChildContext(typeof _e=="function"?_e:F,W):m.S.qa()?G.extend(null,W):G),oe&&m.S.qa()&&(Y=m.a.Ca(m.h.childNodes(R),!0)),xe?(oe||m.h.va(R,m.a.Ca(Y)),m.Oa(Ae,R)):(m.h.Ea(R),Z||m.i.ma(R,m.i.H)),U=xe)},null,{l:R}),{controlsDescendantBindings:!0}}},m.m.Ra[b]=!1,m.h.ea[b]=!0}_("if"),_("ifnot",!1,!0),_("with",!0)}(),m.c.let={init:function(_,b,w,I,R){return b=R.extend(b),m.Oa(b,_),{controlsDescendantBindings:!0}}},m.h.ea.let=!0;var L={};m.c.options={init:function(_){if(m.a.R(_)!=="select")throw Error("options binding applies only to SELECT elements");for(;0<_.length;)_.remove(0);return{controlsDescendantBindings:!0}},update:function(_,b,w){function I(){return m.a.jb(_.options,function(J){return J.selected})}function R(J,_e,xe){var oe=typeof _e;return oe=="function"?_e(J):oe=="string"?J[_e]:xe}function F(J,_e){if(j&&U)m.i.ma(_,m.i.H);else if(Z.length){var xe=0<=m.a.A(Z,m.w.M(_e[0]));m.a.Zc(_e[0],xe),j&&!xe&&m.u.G(m.a.Fb,null,[_,"change"])}}var k=_.multiple,V=_.length!=0&&k?_.scrollTop:null,G=m.a.f(b()),U=w.get("valueAllowUnset")&&w.has("value"),Y=w.get("optionsIncludeDestroyed");b={};var W,Z=[];U||(k?Z=m.a.Mb(I(),m.w.M):0<=_.selectedIndex&&Z.push(m.w.M(_.options[_.selectedIndex]))),G&&(typeof G.length>"u"&&(G=[G]),W=m.a.jb(G,function(J){return Y||J===e||J===null||!m.a.f(J._destroy)}),w.has("optionsCaption")&&(G=m.a.f(w.get("optionsCaption")),G!==null&&G!==e&&W.unshift(L)));var j=!1;if(b.beforeRemove=function(J){_.removeChild(J)},G=F,w.has("optionsAfterRender")&&typeof w.get("optionsAfterRender")=="function"&&(G=function(J,_e){F(0,_e),m.u.G(w.get("optionsAfterRender"),null,[_e[0],J!==L?J:e])}),m.a.ec(_,W,function(J,_e,xe){return xe.length&&(Z=!U&&xe[0].selected?[m.w.M(xe[0])]:[],j=!0),_e=_.ownerDocument.createElement("option"),J===L?(m.a.Bb(_e,w.get("optionsCaption")),m.w.cb(_e,e)):(xe=R(J,w.get("optionsValue"),J),m.w.cb(_e,m.a.f(xe)),J=R(J,w.get("optionsText"),xe),m.a.Bb(_e,J)),[_e]},b,G),!U){var K;k?K=Z.length&&I().length<Z.length:K=Z.length&&0<=_.selectedIndex?m.w.M(_.options[_.selectedIndex])!==Z[0]:Z.length||0<=_.selectedIndex,K&&m.u.G(m.a.Fb,null,[_,"change"])}(U||m.S.Ya())&&m.i.ma(_,m.i.H),m.a.wd(_),V&&20<Math.abs(V-_.scrollTop)&&(_.scrollTop=V)}},m.c.options.$b=m.a.g.Z(),m.c.selectedOptions={init:function(_,b,w){function I(){var k=b(),V=[];m.a.D(_.getElementsByTagName("option"),function(G){G.selected&&V.push(m.w.M(G))}),m.m.eb(k,w,"selectedOptions",V)}function R(){var k=m.a.f(b()),V=_.scrollTop;k&&typeof k.length=="number"&&m.a.D(_.getElementsByTagName("option"),function(G){var U=0<=m.a.A(k,m.w.M(G));G.selected!=U&&m.a.Zc(G,U)}),_.scrollTop=V}if(m.a.R(_)!="select")throw Error("selectedOptions binding applies only to SELECT elements");var F;m.i.subscribe(_,m.i.H,function(){F?I():(m.a.B(_,"change",I),F=m.o(R,null,{l:_}))},null,{notifyImmediately:!0})},update:function(){}},m.m.wa.selectedOptions=!0,m.c.style={update:function(_,b){var w=m.a.f(b()||{});m.a.P(w,function(I,R){if(R=m.a.f(R),(R===null||R===e||R===!1)&&(R=""),r)r(_).css(I,R);else if(/^--/.test(I))_.style.setProperty(I,R);else{I=I.replace(/-(\w)/g,function(k,V){return V.toUpperCase()});var F=_.style[I];_.style[I]=R,R===F||_.style[I]!=F||isNaN(R)||(_.style[I]=R+"px")}})}},m.c.submit={init:function(_,b,w,I,R){if(typeof b()!="function")throw Error("The value for a submit binding must be a function");m.a.B(_,"submit",function(F){var k,V=b();try{k=V.call(R.$data,_)}finally{k!==!0&&(F.preventDefault?F.preventDefault():F.returnValue=!1)}})}},m.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(_,b){m.a.Bb(_,b())}},m.h.ea.text=!0,function(){if(t&&t.navigator){var _=function(W){if(W)return parseFloat(W[1])},b=t.navigator.userAgent,w,I,R,F,k;(w=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(k=_(b.match(/Edge\/([^ ]+)$/)))||_(b.match(/Chrome\/([^ ]+)/))||(I=_(b.match(/Version\/([^ ]+) Safari/)))||(R=_(b.match(/Firefox\/([^ ]+)/)))||(F=m.a.W||_(b.match(/MSIE ([^ ]+)/)))||(F=_(b.match(/rv:([^ )]+)/)))}if(8<=F&&10>F)var V=m.a.g.Z(),G=m.a.g.Z(),U=function(W){var Z=this.activeElement;(Z=Z&&m.a.g.get(Z,G))&&Z(W)},Y=function(W,Z){var j=W.ownerDocument;m.a.g.get(j,V)||(m.a.g.set(j,V,!0),m.a.B(j,"selectionchange",U)),m.a.g.set(W,G,Z)};m.c.textInput={init:function(W,Z,j){function K(Ne,qe){m.a.B(W,Ne,qe)}function J(){var Ne=m.a.f(Z());(Ne===null||Ne===e)&&(Ne=""),he!==e&&Ne===he?m.a.setTimeout(J,4):W.value!==Ne&&(Ie=!0,W.value=Ne,Ie=!1,oe=W.value)}function _e(){Ae||(he=W.value,Ae=m.a.setTimeout(xe,4))}function xe(){clearTimeout(Ae),he=Ae=e;var Ne=W.value;oe!==Ne&&(oe=Ne,m.m.eb(Z(),j,"textInput",Ne))}var oe=W.value,Ae,he,Se=m.a.W==9?_e:xe,Ie=!1;F&&K("keypress",xe),11>F&&K("propertychange",function(Ne){Ie||Ne.propertyName!=="value"||Se(Ne)}),F==8&&(K("keyup",xe),K("keydown",xe)),Y&&(Y(W,Se),K("dragend",_e)),(!F||9<=F)&&K("input",Se),5>I&&m.a.R(W)==="textarea"?(K("keydown",_e),K("paste",_e),K("cut",_e)):11>w?K("keydown",_e):4>R?(K("DOMAutoComplete",xe),K("dragdrop",xe),K("drop",xe)):k&&W.type==="number"&&K("keydown",_e),K("change",xe),K("blur",xe),m.o(J,null,{l:W})}},m.m.wa.textInput=!0,m.c.textinput={preprocess:function(W,Z,j){j("textInput",W)}}}(),m.c.uniqueName={init:function(_,b){if(b()){var w="ko_unique_"+ ++m.c.uniqueName.rd;m.a.Yc(_,w)}}},m.c.uniqueName.rd=0,m.c.using={init:function(_,b,w,I,R){var F;return w.has("as")&&(F={as:w.get("as"),noChildContext:w.get("noChildContext")}),b=R.createChildContext(b,F),m.Oa(b,_),{controlsDescendantBindings:!0}}},m.h.ea.using=!0,m.c.value={init:function(_,b,w){var I=m.a.R(_),R=I=="input";if(!R||_.type!="checkbox"&&_.type!="radio"){var F=[],k=w.get("valueUpdate"),V=!1,G=null;k&&(typeof k=="string"?F=[k]:F=m.a.wc(k),m.a.Pa(F,"change"));var U=function(){G=null,V=!1;var Z=b(),j=m.w.M(_);m.m.eb(Z,w,"value",j)};!m.a.W||!R||_.type!="text"||_.autocomplete=="off"||_.form&&_.form.autocomplete=="off"||m.a.A(F,"propertychange")!=-1||(m.a.B(_,"propertychange",function(){V=!0}),m.a.B(_,"focus",function(){V=!1}),m.a.B(_,"blur",function(){V&&U()})),m.a.D(F,function(Z){var j=U;m.a.Ud(Z,"after")&&(j=function(){G=m.w.M(_),m.a.setTimeout(U,0)},Z=Z.substring(5)),m.a.B(_,Z,j)});var Y;if(Y=R&&_.type=="file"?function(){var Z=m.a.f(b());Z===null||Z===e||Z===""?_.value="":m.u.G(U)}:function(){var Z=m.a.f(b()),j=m.w.M(_);G!==null&&Z===G?m.a.setTimeout(Y,0):(Z!==j||j===e)&&(I==="select"?(j=w.get("valueAllowUnset"),m.w.cb(_,Z,j),j||Z===m.w.M(_)||m.u.G(U)):m.w.cb(_,Z))},I==="select"){var W;m.i.subscribe(_,m.i.H,function(){W?w.get("valueAllowUnset")?Y():U():(m.a.B(_,"change",U),W=m.o(Y,null,{l:_}))},null,{notifyImmediately:!0})}else m.a.B(_,"change",U),m.o(Y,null,{l:_})}else m.ib(_,{checkedValue:b})},update:function(){}},m.m.wa.value=!0,m.c.visible={update:function(_,b){var w=m.a.f(b()),I=_.style.display!="none";w&&!I?_.style.display="":!w&&I&&(_.style.display="none")}},m.c.hidden={update:function(_,b){m.c.visible.update(_,function(){return!m.a.f(b())})}},function(_){m.c[_]={init:function(b,w,I,R,F){return m.c.event.init.call(this,b,function(){var k={};return k[_]=w(),k},I,R,F)}}}("click"),m.ca=function(){},m.ca.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource")},m.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock")},m.ca.prototype.makeTemplateSource=function(_,b){if(typeof _=="string"){b=b||n;var w=b.getElementById(_);if(!w)throw Error("Cannot find template with ID "+_);return new m.C.F(w)}if(_.nodeType==1||_.nodeType==8)return new m.C.ia(_);throw Error("Unknown template type: "+_)},m.ca.prototype.renderTemplate=function(_,b,w,I){return _=this.makeTemplateSource(_,I),this.renderTemplateSource(_,b,w,I)},m.ca.prototype.isTemplateRewritten=function(_,b){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(_,b).data("isRewritten")},m.ca.prototype.rewriteTemplate=function(_,b,w){_=this.makeTemplateSource(_,w),b=b(_.text()),_.text(b),_.data("isRewritten",!0)},m.b("templateEngine",m.ca),m.kc=function(){function _(I,R,F,k){I=m.m.ac(I);for(var V=m.m.Ra,G=0;G<I.length;G++){var U=I[G].key;if(Object.prototype.hasOwnProperty.call(V,U)){var Y=V[U];if(typeof Y=="function"){if(U=Y(I[G].value))throw Error(U)}else if(!Y)throw Error("This template engine does not support the '"+U+"' binding within its templates")}}return F="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+m.m.vb(I,{valueAccessors:!0})+" } })()},'"+F.toLowerCase()+"')",k.createJavaScriptEvaluatorBlock(F)+R}var b=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,w=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(I,R,F){R.isTemplateRewritten(I,F)||R.rewriteTemplate(I,function(k){return m.kc.Ld(k,R)},F)},Ld:function(I,R){return I.replace(b,function(F,k,V,G,U){return _(U,k,V,R)}).replace(w,function(F,k){return _(k,"<!-- ko -->","#comment",R)})},md:function(I,R){return m.aa.Xb(function(F,k){var V=F.nextSibling;V&&V.nodeName.toLowerCase()===R&&m.ib(V,I,k)})}}}(),m.b("__tr_ambtns",m.kc.md),function(){m.C={},m.C.F=function(w){if(this.F=w){var I=m.a.R(w);this.ab=I==="script"?1:I==="textarea"?2:I=="template"&&w.content&&w.content.nodeType===11?3:4}},m.C.F.prototype.text=function(){var w=this.ab===1?"text":this.ab===2?"value":"innerHTML";if(arguments.length==0)return this.F[w];var I=arguments[0];w==="innerHTML"?m.a.fc(this.F,I):this.F[w]=I};var _=m.a.g.Z()+"_";m.C.F.prototype.data=function(w){if(arguments.length===1)return m.a.g.get(this.F,_+w);m.a.g.set(this.F,_+w,arguments[1])};var b=m.a.g.Z();m.C.F.prototype.nodes=function(){var w=this.F;if(arguments.length==0){var I=m.a.g.get(w,b)||{},R=I.lb||(this.ab===3?w.content:this.ab===4?w:e);if(!R||I.jd){var F=this.text();F&&F!==I.bb&&(R=m.a.Md(F,w.ownerDocument),m.a.g.set(w,b,{lb:R,bb:F,jd:!0}))}return R}I=arguments[0],this.ab!==e&&this.text(""),m.a.g.set(w,b,{lb:I})},m.C.ia=function(w){this.F=w},m.C.ia.prototype=new m.C.F,m.C.ia.prototype.constructor=m.C.ia,m.C.ia.prototype.text=function(){if(arguments.length==0){var w=m.a.g.get(this.F,b)||{};return w.bb===e&&w.lb&&(w.bb=w.lb.innerHTML),w.bb}m.a.g.set(this.F,b,{bb:arguments[0]})},m.b("templateSources",m.C),m.b("templateSources.domElement",m.C.F),m.b("templateSources.anonymousTemplate",m.C.ia)}(),function(){function _(G,U,Y){var W;for(U=m.h.nextSibling(U);G&&(W=G)!==U;)G=m.h.nextSibling(W),Y(W,G)}function b(G,U){if(G.length){var Y=G[0],W=G[G.length-1],Z=Y.parentNode,j=m.ga.instance,K=j.preprocessNode;if(K){if(_(Y,W,function(J,_e){var xe=J.previousSibling,oe=K.call(j,J);oe&&(J===Y&&(Y=oe[0]||_e),J===W&&(W=oe[oe.length-1]||xe))}),G.length=0,!Y)return;Y===W?G.push(Y):(G.push(Y,W),m.a.Ua(G,Z))}_(Y,W,function(J){J.nodeType!==1&&J.nodeType!==8||m.vc(U,J)}),_(Y,W,function(J){J.nodeType!==1&&J.nodeType!==8||m.aa.cd(J,[U])}),m.a.Ua(G,Z)}}function w(G){return G.nodeType?G:0<G.length?G[0]:null}function I(G,U,Y,W,Z){Z=Z||{};var j=(G&&w(G)||Y||{}).ownerDocument,K=Z.templateEngine||F;if(m.kc.xd(Y,K,j),Y=K.renderTemplate(Y,W,Z,j),typeof Y.length!="number"||0<Y.length&&typeof Y[0].nodeType!="number")throw Error("Template engine must return an array of DOM nodes");switch(j=!1,U){case"replaceChildren":m.h.va(G,Y),j=!0;break;case"replaceNode":m.a.Xc(G,Y),j=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+U)}return j&&(b(Y,W),Z.afterRender&&m.u.G(Z.afterRender,null,[Y,W[Z.as||"$data"]]),U=="replaceChildren"&&m.i.ma(G,m.i.H)),Y}function R(G,U,Y){return m.O(G)?G():typeof G=="function"?G(U,Y):G}var F;m.gc=function(G){if(G!=e&&!(G instanceof m.ca))throw Error("templateEngine must inherit from ko.templateEngine");F=G},m.dc=function(G,U,Y,W,Z){if(Y=Y||{},(Y.templateEngine||F)==e)throw Error("Set a template engine before calling renderTemplate");if(Z=Z||"replaceChildren",W){var j=w(W);return m.$(function(){var J=U&&U instanceof m.fa?U:new m.fa(U,null,null,null,{exportDependencies:!0}),K=R(G,J.$data,J),J=I(W,Z,K,J,Y);Z=="replaceNode"&&(W=J,j=w(W))},null,{Sa:function(){return!j||!m.a.Sb(j)},l:j&&Z=="replaceNode"?j.parentNode:j})}return m.aa.Xb(function(K){m.dc(G,U,Y,K,"replaceNode")})},m.Qd=function(G,U,Y,W,Z){function j(he,Se){m.u.G(m.a.ec,null,[W,he,J,Y,K,Se]),m.i.ma(W,m.i.H)}function K(he,Se){b(Se,_e),Y.afterRender&&Y.afterRender(Se,he),_e=null}function J(he,Se){_e=Z.createChildContext(he,{as:xe,noChildContext:Y.noChildContext,extend:function(Ne){Ne.$index=Se,xe&&(Ne[xe+"Index"]=Se)}});var Ie=R(G,he,_e);return I(W,"ignoreTargetNode",Ie,_e,Y)}var _e,xe=Y.as,oe=Y.includeDestroyed===!1||m.options.foreachHidesDestroyed&&!Y.includeDestroyed;if(oe||Y.beforeRemove||!m.Pc(U))return m.$(function(){var he=m.a.f(U)||[];typeof he.length>"u"&&(he=[he]),oe&&(he=m.a.jb(he,function(Se){return Se===e||Se===null||!m.a.f(Se._destroy)})),j(he)},null,{l:W});j(U.v());var Ae=U.subscribe(function(he){j(U(),he)},null,"arrayChange");return Ae.l(W),Ae};var k=m.a.g.Z(),V=m.a.g.Z();m.c.template={init:function(G,U){var Y=m.a.f(U());if(typeof Y=="string"||"name"in Y)m.h.Ea(G);else if("nodes"in Y){if(Y=Y.nodes||[],m.O(Y))throw Error('The "nodes" option must be a plain, non-observable array.');var W=Y[0]&&Y[0].parentNode;W&&m.a.g.get(W,V)||(W=m.a.Yb(Y),m.a.g.set(W,V,!0)),new m.C.ia(G).nodes(W)}else if(Y=m.h.childNodes(G),0<Y.length)W=m.a.Yb(Y),new m.C.ia(G).nodes(W);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:function(G,U,Y,W,Z){var j=U();U=m.a.f(j),Y=!0,W=null,typeof U=="string"?U={}:(j="name"in U?U.name:G,"if"in U&&(Y=m.a.f(U.if)),Y&&"ifnot"in U&&(Y=!m.a.f(U.ifnot)),Y&&!j&&(Y=!1)),"foreach"in U?W=m.Qd(j,Y&&U.foreach||[],U,G,Z):Y?(Y=Z,"data"in U&&(Y=Z.createChildContext(U.data,{as:U.as,noChildContext:U.noChildContext,exportDependencies:!0})),W=m.dc(j,Y,U,G)):m.h.Ea(G),Z=W,(U=m.a.g.get(G,k))&&typeof U.s=="function"&&U.s(),m.a.g.set(G,k,!Z||Z.ja&&!Z.ja()?e:Z)}},m.m.Ra.template=function(G){return G=m.m.ac(G),G.length==1&&G[0].unknown||m.m.Id(G,"name")?null:"This template engine does not support anonymous templates nested within its templates"},m.h.ea.template=!0}(),m.b("setTemplateEngine",m.gc),m.b("renderTemplate",m.dc),m.a.Kc=function(_,b,w){if(_.length&&b.length){var I,R,F,k,V;for(I=R=0;(!w||I<w)&&(k=_[R]);++R){for(F=0;V=b[F];++F)if(k.value===V.value){k.moved=V.index,V.moved=k.index,b.splice(F,1),I=F=0;break}I+=F}}},m.a.Pb=function(){function _(b,w,I,R,F){var k=Math.min,V=Math.max,G=[],U,Y=b.length,W,Z=w.length,j=Z-Y||1,K=Y+Z+1,J,_e,xe;for(U=0;U<=Y;U++)for(_e=J,G.push(J=[]),xe=k(Z,U+j),W=V(0,U-1);W<=xe;W++)J[W]=W?U?b[U-1]===w[W-1]?_e[W-1]:k(_e[W]||K,J[W-1]||K)+1:W+1:U+1;for(k=[],V=[],j=[],U=Y,W=Z;U||W;)Z=G[U][W]-1,W&&Z===G[U][W-1]?V.push(k[k.length]={status:I,value:w[--W],index:W}):U&&Z===G[U-1][W]?j.push(k[k.length]={status:R,value:b[--U],index:U}):(--W,--U,F.sparse||k.push({status:"retained",value:w[W]}));return m.a.Kc(j,V,!F.dontLimitMoves&&10*Y),k.reverse()}return function(b,w,I){return I=typeof I=="boolean"?{dontLimitMoves:I}:I||{},b=b||[],w=w||[],b.length<w.length?_(b,w,"added","deleted",I):_(w,b,"deleted","added",I)}}(),m.b("utils.compareArrays",m.a.Pb),function(){function _(I,R,F,k,V){var G=[],U=m.$(function(){var Y=R(F,V,m.a.Ua(G,I))||[];0<G.length&&(m.a.Xc(G,Y),k&&m.u.G(k,null,[F,Y,V])),G.length=0,m.a.Nb(G,Y)},null,{l:I,Sa:function(){return!m.a.kd(G)}});return{Y:G,$:U.ja()?U:e}}var b=m.a.g.Z(),w=m.a.g.Z();m.a.ec=function(I,R,F,k,V,G){function U(Vt){Ie={Aa:Vt,pb:m.ta(_e++)},K.push(Ie),j||Se.push(Ie)}function Y(Vt){Ie=Z[Vt],_e!==Ie.pb.v()&&he.push(Ie),Ie.pb(_e++),m.a.Ua(Ie.Y,I),K.push(Ie)}function W(Vt,Qe){if(Vt)for(var pe=0,Ee=Qe.length;pe<Ee;pe++)m.a.D(Qe[pe].Y,function(Ge){Vt(Ge,pe,Qe[pe].Aa)})}R=R||[],typeof R.length>"u"&&(R=[R]),k=k||{};var Z=m.a.g.get(I,b),j=!Z,K=[],J=0,_e=0,xe=[],oe=[],Ae=[],he=[],Se=[],Ie,Ne=0;if(j)m.a.D(R,U);else{if(!G||Z&&Z._countWaitingForRemove){var qe=m.a.Mb(Z,function(Vt){return Vt.Aa});G=m.a.Pb(qe,R,{dontLimitMoves:k.dontLimitMoves,sparse:!0})}for(var qe=0,pt,Gt,fn;pt=G[qe];qe++)switch(Gt=pt.moved,fn=pt.index,pt.status){case"deleted":for(;J<fn;)Y(J++);Gt===e&&(Ie=Z[J],Ie.$&&(Ie.$.s(),Ie.$=e),m.a.Ua(Ie.Y,I).length&&(k.beforeRemove&&(K.push(Ie),Ne++,Ie.Aa===w?Ie=null:Ae.push(Ie)),Ie&&xe.push.apply(xe,Ie.Y))),J++;break;case"added":for(;_e<fn;)Y(J++);Gt!==e?(oe.push(K.length),Y(Gt)):U(pt.value)}for(;_e<R.length;)Y(J++);K._countWaitingForRemove=Ne}m.a.g.set(I,b,K),W(k.beforeMove,he),m.a.D(xe,k.beforeRemove?m.oa:m.removeNode);var ft,pn,Bn;try{Bn=I.ownerDocument.activeElement}catch{}if(oe.length)for(;(qe=oe.shift())!=e;){for(Ie=K[qe],ft=e;qe;)if((pn=K[--qe].Y)&&pn.length){ft=pn[pn.length-1];break}for(R=0;J=Ie.Y[R];ft=J,R++)m.h.Wb(I,J,ft)}for(qe=0;Ie=K[qe];qe++){for(Ie.Y||m.a.extend(Ie,_(I,F,Ie.Aa,V,Ie.pb)),R=0;J=Ie.Y[R];ft=J,R++)m.h.Wb(I,J,ft);!Ie.Ed&&V&&(V(Ie.Aa,Ie.Y,Ie.pb),Ie.Ed=!0,ft=Ie.Y[Ie.Y.length-1])}for(Bn&&I.ownerDocument.activeElement!=Bn&&Bn.focus(),W(k.beforeRemove,Ae),qe=0;qe<Ae.length;++qe)Ae[qe].Aa=w;W(k.afterMove,he),W(k.afterAdd,Se)}}(),m.b("utils.setDomNodeChildrenFromArrayMapping",m.a.ec),m.ba=function(){this.allowTemplateRewriting=!1},m.ba.prototype=new m.ca,m.ba.prototype.constructor=m.ba,m.ba.prototype.renderTemplateSource=function(_,b,w,I){return(b=!(9>m.a.W)&&_.nodes?_.nodes():null)?m.a.la(b.cloneNode(!0).childNodes):(_=_.text(),m.a.ua(_,I))},m.ba.Ma=new m.ba,m.gc(m.ba.Ma),m.b("nativeTemplateEngine",m.ba),function(){m.$a=function(){var b=this.Hd=function(){if(!r||!r.tmpl)return 0;try{if(0<=r.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch{}return 1}();this.renderTemplateSource=function(w,I,R,F){if(F=F||n,R=R||{},2>b)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var k=w.data("precompiled");return k||(k=w.text()||"",k=r.template(null,"{{ko_with $item.koBindingContext}}"+k+"{{/ko_with}}"),w.data("precompiled",k)),w=[I.$data],I=r.extend({koBindingContext:I},R.templateOptions),I=r.tmpl(k,w,I),I.appendTo(F.createElement("div")),r.fragments={},I},this.createJavaScriptEvaluatorBlock=function(w){return"{{ko_code ((function() { return "+w+" })()) }}"},this.addTemplate=function(w,I){n.write("<script type='text/html' id='"+w+"'>"+I+"</script>")},0<b&&(r.tmpl.tag.ko_code={open:"__.push($1 || '');"},r.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},m.$a.prototype=new m.ca,m.$a.prototype.constructor=m.$a;var _=new m.$a;0<_.Hd&&m.gc(_),m.b("jqueryTmplTemplateEngine",m.$a)}()})})()})()})();var N0t=ko;typeof window<"u"?(ko=window.ko,typeof d2<"u"?window.ko=d2:delete window.ko):(ko=global.ko,typeof d2<"u"?global.ko=d2:delete global.ko);var GC=N0t;/** + * @license + * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5 + * Copyright (c) Steve Sanderson + * MIT license + */var DK="__knockoutObservables",IK="__knockoutSubscribable";function oxe(e,t){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,i=sxe(e,!0);return t=t||Object.getOwnPropertyNames(e),t.forEach(function(r){if(!(r===DK||r===IK)&&!(r in i)){var o=e[r],s=o instanceof Array,a=n.isObservable(o)?o:s?n.observableArray(o):n.observable(o);Object.defineProperty(e,r,{configurable:!0,enumerable:!0,get:a,set:n.isWriteableObservable(a)?a:void 0}),i[r]=a,s&&U0t(n,a)}}),e}function sxe(e,t){var n=e[DK];return!n&&t&&(n={},Object.defineProperty(e,DK,{value:n})),n}function F0t(e,t,n){var i=this,r={owner:e,deferEvaluation:!0};if(typeof n=="function")r.read=n;else{if("value"in n)throw new Error('For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.');if(typeof n.get!="function")throw new Error('For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".');r.read=n.get,r.write=n.set}return e[t]=i.computed(r),oxe.call(i,e,[t]),e}function U0t(e,t){var n=null;e.computed(function(){n&&(n.dispose(),n=null);var i=t();i instanceof Array&&(n=V0t(e,t,i))})}function V0t(e,t,n){var i=k0t(e,n);return i.subscribe(t)}function k0t(e,t){var n=t[IK];if(!n){n=new e.subscribable,Object.defineProperty(t,IK,{value:n});var i={};z0t(t,n,i),H0t(e,t,n,i)}return n}function z0t(e,t,n){["pop","push","reverse","shift","sort","splice","unshift"].forEach(function(i){var r=e[i];e[i]=function(){var o=r.apply(this,arguments);return n.pause!==!0&&t.notifySubscribers(this),o}})}function H0t(e,t,n,i){["remove","removeAll","destroy","destroyAll","replace"].forEach(function(r){Object.defineProperty(t,r,{enumerable:!1,value:function(){var o;i.pause=!0;try{o=e.observableArray.fn[r].apply(e.observableArray(t),arguments)}finally{i.pause=!1}return n.notifySubscribers(t),o}})})}function axe(e,t){if(!e)return null;var n=sxe(e,!1);return n&&n[t]||null}function G0t(e,t){var n=axe(e,t);n&&n.valueHasMutated()}function W0t(e){e.track=oxe,e.getObservable=axe,e.valueHasMutated=G0t,e.defineProperty=F0t}var h2={attachToKo:W0t};var cxe="http://www.w3.org/2000/svg",lxe="cesium-svgPath-svg",j0t={register:function(e){e.bindingHandlers.cesiumSvgPath={init:function(t,n){let i=document.createElementNS(cxe,"svg:svg");i.setAttribute("class",lxe);let r=document.createElementNS(cxe,"path");return i.appendChild(r),e.virtualElements.setDomNodeChildren(t,[i]),e.computed({read:function(){let o=e.unwrap(n());r.setAttribute("d",e.unwrap(o.path));let s=e.unwrap(o.width),a=e.unwrap(o.height);i.setAttribute("width",s),i.setAttribute("height",a),i.setAttribute("viewBox",`0 0 ${s} ${a}`),o.css&&i.setAttribute("class",`${lxe} ${e.unwrap(o.css)}`)},disposeWhenNodeIsRemoved:t}),{controlsDescendantBindings:!0}}},e.virtualElements.allowedBindings.cesiumSvgPath=!0}},m2=j0t;h2.attachToKo(GC);m2.register(GC);var Ce=GC;function p2(e){u(e)||(e=new qd),this._clock=e,this._eventHelper=new Po,this._eventHelper.add(e.onTick,this.synchronize,this),this.systemTime=Ce.observable(ee.now()),this.systemTime.equalityComparer=ee.equals,this.startTime=Ce.observable(e.startTime),this.startTime.equalityComparer=ee.equals,this.startTime.subscribe(function(t){e.startTime=t,this.synchronize()},this),this.stopTime=Ce.observable(e.stopTime),this.stopTime.equalityComparer=ee.equals,this.stopTime.subscribe(function(t){e.stopTime=t,this.synchronize()},this),this.currentTime=Ce.observable(e.currentTime),this.currentTime.equalityComparer=ee.equals,this.currentTime.subscribe(function(t){e.currentTime=t,this.synchronize()},this),this.multiplier=Ce.observable(e.multiplier),this.multiplier.subscribe(function(t){e.multiplier=t,this.synchronize()},this),this.clockStep=Ce.observable(e.clockStep),this.clockStep.subscribe(function(t){e.clockStep=t,this.synchronize()},this),this.clockRange=Ce.observable(e.clockRange),this.clockRange.subscribe(function(t){e.clockRange=t,this.synchronize()},this),this.canAnimate=Ce.observable(e.canAnimate),this.canAnimate.subscribe(function(t){e.canAnimate=t,this.synchronize()},this),this.shouldAnimate=Ce.observable(e.shouldAnimate),this.shouldAnimate.subscribe(function(t){e.shouldAnimate=t,this.synchronize()},this),Ce.track(this,["systemTime","startTime","stopTime","currentTime","multiplier","clockStep","clockRange","canAnimate","shouldAnimate"])}Object.defineProperties(p2.prototype,{clock:{get:function(){return this._clock}}});p2.prototype.synchronize=function(){let e=this._clock;this.systemTime=ee.now(),this.startTime=e.startTime,this.stopTime=e.stopTime,this.currentTime=e.currentTime,this.multiplier=e.multiplier,this.clockStep=e.clockStep,this.clockRange=e.clockRange,this.canAnimate=e.canAnimate,this.shouldAnimate=e.shouldAnimate};p2.prototype.isDestroyed=function(){return!1};p2.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var _2=p2;function q0t(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,fe.throwInstantiationError()}var PK=q0t;var g2={};g2.createCheckbox=function(e,t,n){let i=document.createElement("div"),r=document.createElement("label"),o=document.createElement("input");o.type="checkbox";let s=`checked: ${t}`;return u(n)&&(s+=`, enable: ${n}`),o.setAttribute("data-bind",s),r.appendChild(o),r.appendChild(document.createTextNode(e)),i.appendChild(r),i};g2.createSection=function(e,t,n,i){let r=document.createElement("div");r.className="cesium-cesiumInspector-section",r.setAttribute("data-bind",`css: { "cesium-cesiumInspector-section-collapsed": !${n} }`),e.appendChild(r);let o=document.createElement("h3");o.className="cesium-cesiumInspector-sectionHeader",o.appendChild(document.createTextNode(t)),o.setAttribute("data-bind",`click: ${i}`),r.appendChild(o);let s=document.createElement("div");return s.className="cesium-cesiumInspector-sectionContent",r.appendChild(s),s};g2.createRangeInput=function(e,t,n,i,r,o){o=y(o,t);let s=document.createElement("input");s.setAttribute("data-bind",`value: ${o}`),s.type="number";let a=document.createElement("input");a.type="range",a.min=n,a.max=i,a.step=y(r,"any"),a.setAttribute("data-bind",`valueUpdate: "input", value: ${t}`);let c=document.createElement("div");c.appendChild(a);let l=document.createElement("div");return l.className="cesium-cesiumInspector-slider",l.appendChild(document.createTextNode(e)),l.appendChild(s),l.appendChild(c),l};g2.createButton=function(e,t,n){let i=document.createElement("button");i.type="button",i.textContent=e,i.className="cesium-cesiumInspector-pickButton";let r=`click: ${t}`;return u(n)&&(r+=`, css: {"cesium-cesiumInspector-pickButtonHighlight" : ${n}}`),i.setAttribute("data-bind",r),i};var Oa=g2;function uxe(e,t){this._command=e,t=y(t,y.EMPTY_OBJECT),this.toggled=y(t.toggled,!1),this.tooltip=y(t.tooltip,""),Ce.track(this,["toggled","tooltip"])}Object.defineProperties(uxe.prototype,{command:{get:function(){return this._command}}});var p0=uxe;function Y0t(e,t){t=y(t,!0);let n=new ge,i=new ge;function r(){let o={args:arguments,cancel:!1},s;return n.raiseEvent(o),o.cancel||(s=e.apply(null,arguments),i.raiseEvent(s)),s}return r.canExecute=t,Ce.track(r,["canExecute"]),Object.defineProperties(r,{beforeExecute:{value:n},afterExecute:{value:i}}),r}var Cn=Y0t;function X0t(e,t,n,i,r){return n.call(i,e[t]),Ce.getObservable(e,t).subscribe(n,i,r)}var la=X0t;var WC="http://www.w3.org/2000/svg",hxe="http://www.w3.org/1999/xlink",PH,y2=z.fromCssColorString("rgba(247,250,255,0.384)"),OH=z.fromCssColorString("rgba(143,191,255,0.216)"),OK=z.fromCssColorString("rgba(153,197,255,0.098)"),MH=z.fromCssColorString("rgba(255,255,255,0.086)"),K0t=z.fromCssColorString("rgba(255,255,255,0.267)"),J0t=z.fromCssColorString("rgba(255,255,255,0)"),fxe=z.fromCssColorString("rgba(66,67,68,0.3)"),dxe=z.fromCssColorString("rgba(0,0,0,0.5)");function _0(e){return z.fromCssColorString(window.getComputedStyle(e).getPropertyValue("color"))}var A2={animation_pathReset:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z"},animation_pathPause:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M13,5.5,7.5,5.5,7.5,25.5,13,25.5zM24.5,5.5,19,5.5,19,25.5,24.5,25.5z"},animation_pathPlay:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathPlayReverse:{tagName:"path",transform:"translate(16,16) scale(-0.85,0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathLoop:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z"},animation_pathClock:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-15.5)",d:"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z"},animation_pathWingButton:{tagName:"path",d:"m 4.5,0.5 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 13.71875,0 C 22.478584,27.272785 27.273681,22.511272 32.5,18.25 l 0,-13.75 c 0,-2.216 -1.784,-4 -4,-4 l -24,0 z"},animation_pathPointer:{tagName:"path",d:"M-15,-65,-15,-55,15,-55,15,-65,0,-95z"},animation_pathSwooshFX:{tagName:"path",d:"m 85,0 c 0,16.617 -4.813944,35.356 -13.131081,48.4508 h 6.099803 c 8.317138,-13.0948 13.13322,-28.5955 13.13322,-45.2124 0,-46.94483 -38.402714,-85.00262 -85.7743869,-85.00262 -1.0218522,0 -2.0373001,0.0241 -3.0506131,0.0589 45.958443,1.59437 82.723058,35.77285 82.723058,81.70532 z"}};function vh(e){let t=document.createElementNS(WC,e.tagName);for(let n in e)if(e.hasOwnProperty(n)&&n!=="tagName")if(n==="children"){let i=e.children.length;for(let r=0;r<i;++r)t.appendChild(vh(e.children[r]))}else n.indexOf("xlink:")===0?t.setAttributeNS(hxe,n.substring(6),e[n]):n==="textContent"?t.textContent=e[n]:t.setAttribute(n,e[n]);return t}function MK(e,t,n){let i=document.createElementNS(WC,"text");i.setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("class","cesium-animation-svgText");let r=document.createElementNS(WC,"tspan");return r.textContent=n,i.appendChild(r),i}function Z0t(e,t,n){e.setAttribute("transform",`translate(100,100) rotate(${n})`),t.setAttribute("transform",`rotate(${n})`)}var RH=new z;function Ko(e,t){let n=t.alpha,i=1-n;return RH.red=e.red*i+t.red*n,RH.green=e.green*i+t.green*n,RH.blue=e.blue*i+t.blue*n,RH.toCssColorString()}function RK(e,t,n){let i=A2[n],r={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{tagName:"rect",class:"cesium-animation-buttonGlow",width:32,height:32,rx:2,ry:2},{tagName:"rect",class:"cesium-animation-buttonMain",width:32,height:32,rx:4,ry:4},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return vh(r)}function Q0t(e,t,n){let i=A2[n],r=A2.animation_pathWingButton,o={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{class:"cesium-animation-buttonGlow",id:"animation_pathWingButton",tagName:r.tagName,d:r.d},{class:"cesium-animation-buttonMain",id:"animation_pathWingButton",tagName:r.tagName,d:r.d},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return vh(o)}function $0t(e,t){let n=e._viewModel,i=n.shuttleRingDragging;if(!(i&&PH!==e))if(t.type==="mousedown"||i&&t.type==="mousemove"||t.type==="touchstart"&&t.touches.length===1||i&&t.type==="touchmove"&&t.touches.length===1){let r=e._centerX,o=e._centerY,a=e._svgNode.getBoundingClientRect(),c,l;if(t.type==="touchstart"||t.type==="touchmove"?(c=t.touches[0].clientX,l=t.touches[0].clientY):(c=t.clientX,l=t.clientY),!i&&(c>a.right||c<a.left||l<a.top||l>a.bottom))return;let f=e._shuttleRingPointer.getBoundingClientRect(),d=c-r-a.left,p=l-o-a.top,g=Math.atan2(p,d)*180/Math.PI+90;g>180&&(g-=360);let m=n.shuttleRingAngle;i||c<f.right&&c>f.left&&l>f.top&&l<f.bottom?(PH=e,n.shuttleRingDragging=!0,n.shuttleRingAngle=g):g<m?n.slower():g>m&&n.faster(),t.preventDefault()}else e===PH&&(PH=void 0),n.shuttleRingDragging=!1}function J_(e,t){this._viewModel=t,this.svgElement=e,this._enabled=void 0,this._toggled=void 0;let n=this;this._clickFunction=function(){let i=n._viewModel.command;i.canExecute&&i()},e.addEventListener("click",this._clickFunction,!0),this._subscriptions=[la(t,"toggled",this.setToggled,this),la(t,"tooltip",this.setTooltip,this),la(t.command,"canExecute",this.setEnabled,this)]}J_.prototype.destroy=function(){this.svgElement.removeEventListener("click",this._clickFunction,!0);let e=this._subscriptions;for(let t=0,n=e.length;t<n;t++)e[t].dispose();ue(this)};J_.prototype.isDestroyed=function(){return!1};J_.prototype.setEnabled=function(e){if(this._enabled!==e){if(this._enabled=e,!e){this.svgElement.setAttribute("class","cesium-animation-buttonDisabled");return}if(this._toggled){this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled");return}this.svgElement.setAttribute("class","cesium-animation-rectButton")}};J_.prototype.setToggled=function(e){this._toggled!==e&&(this._toggled=e,this._enabled&&(e?this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled"):this.svgElement.setAttribute("class","cesium-animation-rectButton")))};J_.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e};function tv(e,t){e=wn(e),this._viewModel=t,this._container=e,this._centerX=0,this._centerY=0,this._defsElement=void 0,this._svgNode=void 0,this._topG=void 0,this._lastHeight=void 0,this._lastWidth=void 0;let n=e.ownerDocument,i=document.createElement("style");i.textContent=".cesium-animation-rectButton .cesium-animation-buttonGlow { filter: url(#animation_blurred); }.cesium-animation-rectButton .cesium-animation-buttonMain { fill: url(#animation_buttonNormal); }.cesium-animation-buttonToggled .cesium-animation-buttonMain { fill: url(#animation_buttonToggled); }.cesium-animation-rectButton:hover .cesium-animation-buttonMain { fill: url(#animation_buttonHovered); }.cesium-animation-buttonDisabled .cesium-animation-buttonMain { fill: url(#animation_buttonDisabled); }.cesium-animation-shuttleRingG .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshGradient); }.cesium-animation-shuttleRingG:hover .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshHovered); }.cesium-animation-shuttleRingPointer { fill: url(#animation_shuttleRingPointerGradient); }.cesium-animation-shuttleRingPausePointer { fill: url(#animation_shuttleRingPointerPaused); }.cesium-animation-knobOuter { fill: url(#animation_knobOuter); }.cesium-animation-knobInner { fill: url(#animation_knobInner); }",n.head.insertBefore(i,n.head.childNodes[0]);let r=document.createElement("div");r.className="cesium-animation-theme",r.innerHTML='<div class="cesium-animation-themeNormal"></div><div class="cesium-animation-themeHover"></div><div class="cesium-animation-themeSelect"></div><div class="cesium-animation-themeDisabled"></div><div class="cesium-animation-themeKnob"></div><div class="cesium-animation-themePointer"></div><div class="cesium-animation-themeSwoosh"></div><div class="cesium-animation-themeSwooshHover"></div>',this._theme=r,this._themeNormal=r.childNodes[0],this._themeHover=r.childNodes[1],this._themeSelect=r.childNodes[2],this._themeDisabled=r.childNodes[3],this._themeKnob=r.childNodes[4],this._themePointer=r.childNodes[5],this._themeSwoosh=r.childNodes[6],this._themeSwooshHover=r.childNodes[7];let o=document.createElementNS(WC,"svg:svg");this._svgNode=o,o.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",hxe);let s=document.createElementNS(WC,"g");this._topG=s,this._realtimeSVG=new J_(Q0t(3,4,"animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new J_(RK(44,99,"animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new J_(RK(124,99,"animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new J_(RK(84,99,"animation_pathPause"),t.pauseViewModel);let a=document.createElementNS(WC,"g");a.appendChild(this._realtimeSVG.svgElement),a.appendChild(this._playReverseSVG.svgElement),a.appendChild(this._playForwardSVG.svgElement),a.appendChild(this._pauseSVG.svgElement);let c=vh({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=c;let l=A2.animation_pathSwooshFX,f=A2.animation_pathPointer,d=vh({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:l.tagName,transform:"translate(100,97) scale(-1,1)",id:"animation_pathSwooshFX",d:l.d},{tagName:l.tagName,transform:"translate(100,97)",id:"animation_pathSwooshFX",d:l.d},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=d,this._shuttleRingPointer=vh({class:"cesium-animation-shuttleRingPointer",id:"animation_pathPointer",tagName:f.tagName,d:f.d});let p=vh({tagName:"g",transform:"translate(100,100)"});this._knobOuter=vh({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});let g=61,m=vh({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:g});this._knobDate=MK(0,-24,""),this._knobTime=MK(0,-7,""),this._knobStatus=MK(0,-41,"");let A=vh({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:g}),x=document.createElementNS(WC,"g");x.setAttribute("class","cesium-animation-shuttleRingG"),e.appendChild(r),s.appendChild(x),s.appendChild(p),s.appendChild(a),x.appendChild(c),x.appendChild(d),x.appendChild(this._shuttleRingPointer),p.appendChild(this._knobOuter),p.appendChild(m),p.appendChild(this._knobDate),p.appendChild(this._knobTime),p.appendChild(this._knobStatus),p.appendChild(A),o.appendChild(s),e.appendChild(o);let C=this;function T(M){$0t(C,M)}this._mouseCallback=T,c.addEventListener("mousedown",T,!0),c.addEventListener("touchstart",T,!0),d.addEventListener("mousedown",T,!0),d.addEventListener("touchstart",T,!0),n.addEventListener("mousemove",T,!0),n.addEventListener("touchmove",T,!0),n.addEventListener("mouseup",T,!0),n.addEventListener("touchend",T,!0),n.addEventListener("touchcancel",T,!0),this._shuttleRingPointer.addEventListener("mousedown",T,!0),this._shuttleRingPointer.addEventListener("touchstart",T,!0),this._knobOuter.addEventListener("mousedown",T,!0),this._knobOuter.addEventListener("touchstart",T,!0);let E=this._knobTime.childNodes[0],S=this._knobDate.childNodes[0],v=this._knobStatus.childNodes[0],D;this._subscriptions=[la(t.pauseViewModel,"toggled",function(M){D!==M&&(D=M,D?C._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):C._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),la(t,"shuttleRingAngle",function(M){Z0t(C._shuttleRingPointer,C._knobOuter,M)}),la(t,"dateLabel",function(M){S.textContent!==M&&(S.textContent=M)}),la(t,"timeLabel",function(M){E.textContent!==M&&(E.textContent=M)}),la(t,"multiplierLabel",function(M){v.textContent!==M&&(v.textContent=M)})],this.applyThemeChanges(),this.resize()}Object.defineProperties(tv.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});tv.prototype.isDestroyed=function(){return!1};tv.prototype.destroy=function(){u(this._observer)&&(this._observer.disconnect(),this._observer=void 0);let e=this._container.ownerDocument,t=this._mouseCallback;this._shuttleRingBackPanel.removeEventListener("mousedown",t,!0),this._shuttleRingBackPanel.removeEventListener("touchstart",t,!0),this._shuttleRingSwooshG.removeEventListener("mousedown",t,!0),this._shuttleRingSwooshG.removeEventListener("touchstart",t,!0),e.removeEventListener("mousemove",t,!0),e.removeEventListener("touchmove",t,!0),e.removeEventListener("mouseup",t,!0),e.removeEventListener("touchend",t,!0),e.removeEventListener("touchcancel",t,!0),this._shuttleRingPointer.removeEventListener("mousedown",t,!0),this._shuttleRingPointer.removeEventListener("touchstart",t,!0),this._knobOuter.removeEventListener("mousedown",t,!0),this._knobOuter.removeEventListener("touchstart",t,!0),this._container.removeChild(this._svgNode),this._container.removeChild(this._theme),this._realtimeSVG.destroy(),this._playReverseSVG.destroy(),this._playForwardSVG.destroy(),this._pauseSVG.destroy();let n=this._subscriptions;for(let i=0,r=n.length;i<r;i++)n[i].dispose();return ue(this)};tv.prototype.resize=function(){let e=this._container.clientWidth,t=this._container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;let n=this._svgNode,i=200,r=132,o=e,s=t;e===0&&t===0?(o=i,s=r):e===0?(s=t,o=i*(t/r)):t===0&&(o=e,s=r*(e/i));let a=o/i,c=s/r;n.style.cssText=`width: ${o}px; height: ${s}px; position: absolute; bottom: 0; left: 0; overflow: hidden;`,n.setAttribute("width",o),n.setAttribute("height",s),n.setAttribute("viewBox",`0 0 ${o} ${s}`),this._topG.setAttribute("transform",`scale(${a},${c})`),this._centerX=Math.max(1,100*a),this._centerY=Math.max(1,100*c),this._lastHeight=e,this._lastWidth=t};tv.prototype.applyThemeChanges=function(){let e=this._container.ownerDocument;if(!e.body.contains(this._container)){if(u(this._observer))return;let f=this;f._observer=new MutationObserver(function(){e.body.contains(f._container)&&(f._observer.disconnect(),f._observer=void 0,f.applyThemeChanges())}),f._observer.observe(e,{childList:!0,subtree:!0});return}let t=_0(this._themeNormal),n=_0(this._themeHover),i=_0(this._themeSelect),r=_0(this._themeDisabled),o=_0(this._themeKnob),s=_0(this._themePointer),a=_0(this._themeSwoosh),c=_0(this._themeSwooshHover),l=vh({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Ko(t,y2)},{tagName:"stop",offset:"12%","stop-color":Ko(t,OH)},{tagName:"stop",offset:"46%","stop-color":Ko(t,OK)},{tagName:"stop",offset:"81%","stop-color":Ko(t,MH)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Ko(n,y2)},{tagName:"stop",offset:"12%","stop-color":Ko(n,OH)},{tagName:"stop",offset:"46%","stop-color":Ko(n,OK)},{tagName:"stop",offset:"81%","stop-color":Ko(n,MH)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Ko(i,y2)},{tagName:"stop",offset:"12%","stop-color":Ko(i,OH)},{tagName:"stop",offset:"46%","stop-color":Ko(i,OK)},{tagName:"stop",offset:"81%","stop-color":Ko(i,MH)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Ko(r,K0t)},{tagName:"stop",offset:"75%","stop-color":Ko(r,J0t)}]},{id:"animation_blurred",tagName:"filter",width:"200%",height:"200%",x:"-50%",y:"-50%",children:[{tagName:"feGaussianBlur",stdDeviation:4,in:"SourceGraphic"}]},{id:"animation_shuttleRingSwooshGradient",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":a.toCssColorString()}]},{id:"animation_shuttleRingSwooshHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":c.toCssColorString()}]},{id:"animation_shuttleRingPointerGradient",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"40%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"60%","stop-color":Ko(s,dxe)},{tagName:"stop",offset:"100%","stop-color":Ko(s,dxe)}]},{id:"animation_shuttleRingPointerPaused",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":"#CCC"},{tagName:"stop",offset:"40%","stop-color":"#CCC"},{tagName:"stop",offset:"60%","stop-color":"#555"},{tagName:"stop",offset:"100%","stop-color":"#555"}]},{id:"animation_knobOuter",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Ko(o,y2)},{tagName:"stop",offset:"60%","stop-color":Ko(o,fxe)},{tagName:"stop",offset:"85%","stop-color":Ko(o,OH)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Ko(o,fxe)},{tagName:"stop",offset:"60%","stop-color":Ko(o,y2)},{tagName:"stop",offset:"85%","stop-color":Ko(o,MH)}]}]});u(this._defsElement)?this._svgNode.replaceChild(l,this._defsElement):this._svgNode.appendChild(l),this._defsElement=l};var x2=tv;var eAt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],g0=15,nv=105;function mxe(e,t){return e-t}function BK(e,t){let n=Pr(t,e,mxe);return n<0?~n:n}function tAt(e,t){if(Math.abs(e)<=g0)return e/g0;let n=g0,i=nv,r,o=0,s;return e>0?(r=Math.log(t[t.length-1]),s=(r-o)/(i-n),Math.exp(o+s*(e-n))):(r=Math.log(-t[0]),s=(r-o)/(i-n),-Math.exp(o+s*(Math.abs(e)-n)))}function nAt(e,t,n){if(n.clockStep===_r.SYSTEM_CLOCK)return g0;if(Math.abs(e)<=1)return e*g0;let i=t[t.length-1];e>i?e=i:e<-i&&(e=-i);let r=g0,o=nv,s,a=0,c;return e>0?(s=Math.log(i),c=(s-a)/(o-r),(Math.log(e)-a)/c+r):(s=Math.log(-t[0]),c=(s-a)/(o-r),-((Math.log(Math.abs(e))-a)/c+r))}function Zf(e){let t=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=Zf.defaultDateFormatter,this._timeFormatter=Zf.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,Ce.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(Zf.defaultTicks),this.timeLabel=void 0,Ce.defineProperty(this,"timeLabel",function(){return t._timeFormatter(t._clockViewModel.currentTime,t)}),this.dateLabel=void 0,Ce.defineProperty(this,"dateLabel",function(){return t._dateFormatter(t._clockViewModel.currentTime,t)}),this.multiplierLabel=void 0,Ce.defineProperty(this,"multiplierLabel",function(){let s=t._clockViewModel;if(s.clockStep===_r.SYSTEM_CLOCK)return"Today";let a=s.multiplier;return a%1===0?`${a.toFixed(0)}x`:`${a.toFixed(3).replace(/0{0,3}$/,"")}x`}),this.shuttleRingAngle=void 0,Ce.defineProperty(this,"shuttleRingAngle",{get:function(){return nAt(e.multiplier,t._allShuttleRingTicks,e)},set:function(s){s=Math.max(Math.min(s,nv),-nv);let a=t._allShuttleRingTicks,c=t._clockViewModel;if(c.clockStep=_r.SYSTEM_CLOCK_MULTIPLIER,Math.abs(s)===nv){c.multiplier=s>0?a[a.length-1]:a[0];return}let l=tAt(s,a);if(t.snapToTicks)l=a[BK(l,a)];else if(l!==0){let f=Math.abs(l);if(f>100){let d=f.toFixed(0).length-2,p=Math.pow(10,d);l=Math.round(l/p)*p|0}else f>g0?l=Math.round(l):f>1?l=+l.toFixed(1):f>0&&(l=+l.toFixed(2))}c.multiplier=l}}),this._canAnimate=void 0,Ce.defineProperty(this,"_canAnimate",function(){let s=t._clockViewModel,a=s.clockRange;if(t.shuttleRingDragging||a===Lo.UNBOUNDED)return!0;let c=s.multiplier,l=s.currentTime,f=s.startTime,d=!1;if(a===Lo.LOOP_STOP)d=ee.greaterThan(l,f)||l.equals(f)&&c>0;else{let p=s.stopTime;d=ee.greaterThan(l,f)&&ee.lessThan(l,p)||l.equals(f)&&c>0||l.equals(p)&&c<0}return d||(s.shouldAnimate=!1),d}),this._isSystemTimeAvailable=void 0,Ce.defineProperty(this,"_isSystemTimeAvailable",function(){let s=t._clockViewModel;if(s.clockRange===Lo.UNBOUNDED)return!0;let c=s.systemTime;return ee.greaterThanOrEquals(c,s.startTime)&&ee.lessThanOrEquals(c,s.stopTime)}),this._isAnimating=void 0,Ce.defineProperty(this,"_isAnimating",function(){return t._clockViewModel.shouldAnimate&&(t._canAnimate||t.shuttleRingDragging)});let n=Cn(function(){let s=t._clockViewModel;s.shouldAnimate?s.shouldAnimate=!1:t._canAnimate&&(s.shouldAnimate=!0)});this._pauseViewModel=new p0(n,{toggled:Ce.computed(function(){return!t._isAnimating}),tooltip:"Pause"});let i=Cn(function(){let s=t._clockViewModel,a=s.multiplier;a>0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playReverseViewModel=new p0(i,{toggled:Ce.computed(function(){return t._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});let r=Cn(function(){let s=t._clockViewModel,a=s.multiplier;a<0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playForwardViewModel=new p0(r,{toggled:Ce.computed(function(){return t._isAnimating&&e.multiplier>0&&e.clockStep!==_r.SYSTEM_CLOCK}),tooltip:"Play Forward"});let o=Cn(function(){t._clockViewModel.clockStep=_r.SYSTEM_CLOCK},Ce.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new p0(o,{toggled:Ce.computed(function(){return e.clockStep===_r.SYSTEM_CLOCK}),tooltip:Ce.computed(function(){return t._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=Cn(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,l=BK(c,a)-1;l>=0&&(s.multiplier=a[l])}),this._faster=Cn(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,l=BK(c,a)+1;l<a.length&&(s.multiplier=a[l])})}Zf.defaultDateFormatter=function(e,t){let n=ee.toGregorianDate(e);return`${eAt[n.month-1]} ${n.day} ${n.year}`};Zf.defaultTicks=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800];Zf.defaultTimeFormatter=function(e,t){let n=ee.toGregorianDate(e),i=Math.round(n.millisecond);return Math.abs(t._clockViewModel.multiplier)<1?`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")}.${i.toString().padStart(3,"0")}`:`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")} UTC`};Zf.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)};Zf.prototype.setShuttleRingTicks=function(e){let t,n,i,r={},o=this._sortedFilteredPositiveTicks;for(o.length=0,t=0,n=e.length;t<n;++t)i=e[t],r.hasOwnProperty(i)||(r[i]=!0,o.push(i));o.sort(mxe);let s=[];for(n=o.length,t=n-1;t>=0;--t)i=o[t],i!==0&&s.push(-i);Array.prototype.push.apply(s,o),this._allShuttleRingTicks=s};Object.defineProperties(Zf.prototype,{slower:{get:function(){return this._slower}},faster:{get:function(){return this._faster}},clockViewModel:{get:function(){return this._clockViewModel}},pauseViewModel:{get:function(){return this._pauseViewModel}},playReverseViewModel:{get:function(){return this._playReverseViewModel}},playForwardViewModel:{get:function(){return this._playForwardViewModel}},playRealtimeViewModel:{get:function(){return this._playRealtimeViewModel}},dateFormatter:{get:function(){return this._dateFormatter},set:function(e){this._dateFormatter=e}},timeFormatter:{get:function(){return this._timeFormatter},set:function(e){this._timeFormatter=e}}});Zf._maxShuttleRingAngle=nv;Zf._realtimeShuttleRingAngle=g0;var C2=Zf;function pxe(e){e=y(e,y.EMPTY_OBJECT);let t=e.globe,n=y(e.imageryProviderViewModels,[]),i=y(e.terrainProviderViewModels,[]);this._globe=t,this.imageryProviderViewModels=n.slice(0),this.terrainProviderViewModels=i.slice(0),this.dropDownVisible=!1,Ce.track(this,["imageryProviderViewModels","terrainProviderViewModels","dropDownVisible"]);let r=Ce.getObservable(this,"imageryProviderViewModels"),o=Ce.pureComputed(function(){let d=r(),p={},g;for(g=0;g<d.length;g++){let x=d[g],C=x.category;u(p[C])?p[C].push(x):p[C]=[x]}let m=Object.keys(p),A=[];for(g=0;g<m.length;g++){let x=m[g];A.push({name:x,providers:p[x]})}return A});this._imageryProviders=o;let s=Ce.getObservable(this,"terrainProviderViewModels"),a=Ce.pureComputed(function(){let d=s(),p={},g;for(g=0;g<d.length;g++){let x=d[g],C=x.category;u(p[C])?p[C].push(x):p[C]=[x]}let m=Object.keys(p),A=[];for(g=0;g<m.length;g++){let x=m[g];A.push({name:x,providers:p[x]})}return A});this._terrainProviders=a,this.buttonTooltip=void 0,Ce.defineProperty(this,"buttonTooltip",function(){let d=this.selectedImagery,p=this.selectedTerrain,g=u(d)?d.name:void 0,m=u(p)?p.name:void 0;return u(g)&&u(m)?`${g} +${m}`:u(g)?g:m}),this.buttonImageUrl=void 0,Ce.defineProperty(this,"buttonImageUrl",function(){let d=this.selectedImagery;if(u(d))return d.iconUrl}),this.selectedImagery=void 0;let c=Ce.observable();this._currentImageryLayers=[],Ce.defineProperty(this,"selectedImagery",{get:function(){return c()},set:function(d){if(c()===d){this.dropDownVisible=!1;return}let p,g=this._currentImageryLayers,m=g.length,A=this._globe.imageryLayers,x=!1;for(p=0;p<m;p++){let C=A.length;for(let T=0;T<C;T++){let E=A.get(T);if(E===g[p]){A.remove(E),x=!0;break}}}if(u(d)){let C=d.creationCommand();if(Array.isArray(C)){let T=C.length;for(this._currentImageryLayers=[],p=T-1;p>=0;p--){let E=ks.fromProviderAsync(C[p]);A.add(E,0),this._currentImageryLayers.push(E)}}else{this._currentImageryLayers=[];let T=ks.fromProviderAsync(C);if(T.name=d.name,x)A.add(T,0);else{let E=A.get(0);u(E)&&A.remove(E),A.add(T,0)}this._currentImageryLayers.push(T)}}c(d),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;let l=Ce.observable();Ce.defineProperty(this,"selectedTerrain",{get:function(){return l()},set:function(d){if(l()===d){this.dropDownVisible=!1;return}let p;u(d)&&(p=d.creationCommand());let g=!1,m=this._globe.terrainProviderChanged.addEventListener(()=>{g=!0,m()}),x=new NF(Promise.resolve(p)).readyEvent.addEventListener(C=>{g||(this._globe.depthTestAgainstTerrain=!(C instanceof M_),this._globe.terrainProvider=C,x())});l(d),this.dropDownVisible=!1}});let f=this;this._toggleDropDown=Cn(function(){f.dropDownVisible=!f.dropDownVisible}),this.selectedImagery=y(e.selectedImageryProviderViewModel,n[0]),this.selectedTerrain=y(e.selectedTerrainProviderViewModel,i[0])}Object.defineProperties(pxe.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}});var T2=pxe;function BH(e,t){e=wn(e);let n=new T2(t),i=document.createElement("button");i.type="button",i.className="cesium-button cesium-toolbar-button",i.setAttribute("data-bind","attr: { title: buttonTooltip },click: toggleDropDown"),e.appendChild(i);let r=document.createElement("img");r.setAttribute("draggable","false"),r.className="cesium-baseLayerPicker-selected",r.setAttribute("data-bind","attr: { src: buttonImageUrl }, visible: !!buttonImageUrl"),i.appendChild(r);let o=document.createElement("div");o.className="cesium-baseLayerPicker-dropDown",o.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-dropDown-visible" : dropDownVisible }'),e.appendChild(o);let s=document.createElement("div");s.className="cesium-baseLayerPicker-sectionTitle",s.setAttribute("data-bind","visible: imageryProviderViewModels.length > 0"),s.innerHTML="Imagery",o.appendChild(s);let a=document.createElement("div");a.className="cesium-baseLayerPicker-section",a.setAttribute("data-bind","foreach: _imageryProviders"),o.appendChild(a);let c=document.createElement("div");c.className="cesium-baseLayerPicker-category",a.appendChild(c);let l=document.createElement("div");l.className="cesium-baseLayerPicker-categoryTitle",l.setAttribute("data-bind","text: name"),c.appendChild(l);let f=document.createElement("div");f.className="cesium-baseLayerPicker-choices",f.setAttribute("data-bind","foreach: providers"),c.appendChild(f);let d=document.createElement("div");d.className="cesium-baseLayerPicker-item",d.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedImagery },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedImagery = $data; }'),f.appendChild(d);let p=document.createElement("img");p.className="cesium-baseLayerPicker-itemIcon",p.setAttribute("data-bind","attr: { src: iconUrl }"),p.setAttribute("draggable","false"),d.appendChild(p);let g=document.createElement("div");g.className="cesium-baseLayerPicker-itemLabel",g.setAttribute("data-bind","text: name"),d.appendChild(g);let m=document.createElement("div");m.className="cesium-baseLayerPicker-sectionTitle",m.setAttribute("data-bind","visible: terrainProviderViewModels.length > 0"),m.innerHTML="Terrain",o.appendChild(m);let A=document.createElement("div");A.className="cesium-baseLayerPicker-section",A.setAttribute("data-bind","foreach: _terrainProviders"),o.appendChild(A);let x=document.createElement("div");x.className="cesium-baseLayerPicker-category",A.appendChild(x);let C=document.createElement("div");C.className="cesium-baseLayerPicker-categoryTitle",C.setAttribute("data-bind","text: name"),x.appendChild(C);let T=document.createElement("div");T.className="cesium-baseLayerPicker-choices",T.setAttribute("data-bind","foreach: providers"),x.appendChild(T);let E=document.createElement("div");E.className="cesium-baseLayerPicker-item",E.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),T.appendChild(E);let S=document.createElement("img");S.className="cesium-baseLayerPicker-itemIcon",S.setAttribute("data-bind","attr: { src: iconUrl }"),S.setAttribute("draggable","false"),E.appendChild(S);let v=document.createElement("div");v.className="cesium-baseLayerPicker-itemLabel",v.setAttribute("data-bind","text: name"),E.appendChild(v),Ce.applyBindings(n,i),Ce.applyBindings(n,o),this._viewModel=n,this._container=e,this._element=i,this._dropPanel=o,this._closeDropDown=function(D){i.contains(D.target)||o.contains(D.target)||(n.dropDownVisible=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(BH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});BH.prototype.isDestroyed=function(){return!1};BH.prototype.destroy=function(){return Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Ce.cleanNode(this._element),Ce.cleanNode(this._dropPanel),this._container.removeChild(this._element),this._container.removeChild(this._dropPanel),ue(this)};var E2=BH;function _xe(e){let t=e.creationFunction;u(t.canExecute)||(t=Cn(t)),this._creationCommand=t,this.name=e.name,this.tooltip=e.tooltip,this.iconUrl=e.iconUrl,this._category=y(e.category,""),Ce.track(this,["name","tooltip","iconUrl"])}Object.defineProperties(_xe.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}});var xs=_xe;function iAt(){let e=[];return e.push(new xs({name:"Bing Maps Aerial",iconUrl:$t("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return N_({style:ph.AERIAL})}})),e.push(new xs({name:"Bing Maps Aerial with Labels",iconUrl:$t("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return N_({style:ph.AERIAL_WITH_LABELS})}})),e.push(new xs({name:"Bing Maps Roads",iconUrl:$t("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return N_({style:ph.ROAD})}})),e.push(new xs({name:"ArcGIS World Imagery",iconUrl:$t("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png"),tooltip:`ArcGIS World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 nin select communities). For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9`,category:"Other",creationFunction:function(){return Dm.fromBasemapType(hh.SATELLITE,{enablePickFeatures:!1})}})),e.push(new xs({name:"ArcGIS World Hillshade",iconUrl:$t("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png"),tooltip:`ArcGIS World Hillshade map portrays elevation as an artistic hillshade. This map is designed to be used as a backdrop for topographical, soil, hydro, landcover or other outdoor recreational maps. The map was compiled from a variety of sources from several data providers. The basemap has global coverage down to a scale of ~1:72k. In select areas of the United States and Europe, coverage is available down to ~1:9k. For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1b243539f4514b6ba35e7d995890db1d`,category:"Other",creationFunction:function(){return Dm.fromBasemapType(hh.HILLSHADE,{enablePickFeatures:!1})}})),e.push(new xs({name:"Esri World Ocean",iconUrl:$t("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png"),tooltip:`ArcGIS World Ocean map is designed to be used as a base map by marine GIS professionals and as a reference map by anyone interested in ocean data. The base map features marine bathymetry. Land features include inland waters and roads overlaid on land cover and shaded relief imagery. The map was compiled from a variety of best available sources from several data providers, including General Bathymetric Chart of the Oceans GEBCO_08 Grid, National Oceanic and Atmospheric Administration (NOAA), and National Geographic, Garmin, HERE, Geonames.org, and Esri, and various other contributors. The base map currently provides coverage for the world down to a scale of ~1:577k, and coverage down to 1:72k in US coastal areas, and various other areas. Coverage down to ~ 1:9k is available limited areas based on regional hydrographic survey data. The base map was designed and developed by Esri. For more information on this map, including our terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1e126e7520f9466c9ca28b8f28b5e500`,category:"Other",creationFunction:function(){return Dm.fromBasemapType(hh.OCEANS,{enablePickFeatures:!1})}})),e.push(new xs({name:"Open\xADStreet\xADMap",iconUrl:$t("Widgets/Images/ImageryProviders/openStreetMap.png"),tooltip:`OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world. +http://www.openstreetmap.org`,category:"Other",creationFunction:function(){return new IC({url:"https://a.tile.openstreetmap.org/"})}})),e.push(new xs({name:"Stamen Watercolor",iconUrl:$t("Widgets/Images/ImageryProviders/stamenWatercolor.png"),tooltip:`Reminiscent of hand drawn maps, Stamen watercolor maps apply raster effect area washes and organic edges over a paper texture to add warm pop to any map. +http://maps.stamen.com`,category:"Other",creationFunction:function(){return new IC({url:"https://stamen-tiles.a.ssl.fastly.net/watercolor/",credit:"Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA."})}})),e.push(new xs({name:"Stamen Toner",iconUrl:$t("Widgets/Images/ImageryProviders/stamenToner.png"),tooltip:`A high contrast black and white map. +http://maps.stamen.com`,category:"Other",creationFunction:function(){return new IC({url:"https://stamen-tiles.a.ssl.fastly.net/toner/",credit:"Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA."})}})),e.push(new xs({name:"Sentinel-2",iconUrl:$t("Widgets/Images/ImageryProviders/sentinel-2.png"),tooltip:"Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).",category:"Cesium ion",creationFunction:function(){return zf.fromAssetId(3954)}})),e.push(new xs({name:"Blue Marble",iconUrl:$t("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return zf.fromAssetId(3845)}})),e.push(new xs({name:"Earth at night",iconUrl:$t("Widgets/Images/ImageryProviders/earthAtNight.png"),tooltip:"The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.",category:"Cesium ion",creationFunction:function(){return zf.fromAssetId(3812)}})),e.push(new xs({name:"Natural Earth\xA0II",iconUrl:$t("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:`Natural Earth II, darkened for contrast. +http://www.naturalearthdata.com/`,category:"Cesium ion",creationFunction:function(){return Im.fromUrl($t("Assets/Textures/NaturalEarthII"))}})),e}var b2=iAt;function rAt(){let e=[];return e.push(new xs({name:"WGS84 Ellipsoid",iconUrl:$t("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new M_}})),e.push(new xs({name:"Cesium World Terrain",iconUrl:$t("Widgets/Images/TerrainProviders/CesiumWorldTerrain.png"),tooltip:"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion",category:"Cesium ion",creationFunction:function(){return RC({requestWaterMask:!0,requestVertexNormals:!0})}})),e}var S2=rAt;function oAt(e){return function(t){let n=e._scene.pick(t.position);u(n)&&n.primitive instanceof Ea&&(e.tileset=n.primitive),e.pickActive=!1}}function yxe(e,t){t?e._eventHandler.setInputAction(function(n){let i=e._scene.pick(n.endPosition);u(i)&&i.primitive instanceof Ea&&(e.tileset=i.primitive)},An.MOUSE_MOVE):(e._eventHandler.removeInputAction(An.MOUSE_MOVE),e.picking=e.picking)}var sAt={maximumFractionDigits:3};function v2(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,sAt):Math.round(t).toLocaleString()}function w2(e,t){if(!u(e))return"";let n=t?e._statisticsPerPass[Br.PICK]:e._statisticsPerPass[Br.RENDER],i='<ul class="cesium-cesiumInspector-statistics">';return i+=`<li><strong>Visited: </strong>${n.visited.toLocaleString()}</li><li><strong>Selected: </strong>${n.selected.toLocaleString()}</li><li><strong>Commands: </strong>${n.numberOfCommands.toLocaleString()}</li>`,i+="</ul>",t||(i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Requests: </strong>${n.numberOfPendingRequests.toLocaleString()}</li><li><strong>Attempted: </strong>${n.numberOfAttemptedRequests.toLocaleString()}</li><li><strong>Processing: </strong>${n.numberOfTilesProcessing.toLocaleString()}</li><li><strong>Content Ready: </strong>${n.numberOfTilesWithContentReady.toLocaleString()}</li><li><strong>Total: </strong>${n.numberOfTilesTotal.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Features Selected: </strong>${n.numberOfFeaturesSelected.toLocaleString()}</li><li><strong>Features Loaded: </strong>${n.numberOfFeaturesLoaded.toLocaleString()}</li><li><strong>Points Selected: </strong>${n.numberOfPointsSelected.toLocaleString()}</li><li><strong>Points Loaded: </strong>${n.numberOfPointsLoaded.toLocaleString()}</li><li><strong>Triangles Selected: </strong>${n.numberOfTrianglesSelected.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Tiles styled: </strong>${n.numberOfTilesStyled.toLocaleString()}</li><li><strong>Features styled: </strong>${n.numberOfFeaturesStyled.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Children Union Culled: </strong>${n.numberOfTilesCulledWithChildrenUnion.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Geometry Memory (MB): </strong>${v2(n.geometryByteLength)}</li><li><strong>Texture Memory (MB): </strong>${v2(n.texturesByteLength)}</li><li><strong>Batch Table Memory (MB): </strong>${v2(n.batchTableByteLength)}</li>`,i+="</ul>"),i}function Axe(){let e=Ui.statistics;return` + <ul class="cesium-cesiumInspector-statistics"> + <li><strong>Geometry Memory (MB): </strong>${v2(e.geometryByteLength)}</li> + <li><strong>Texture Memory (MB): </strong>${v2(e.texturesByteLength)}</li> + </ul> + `}var aAt=[{text:"Highlight",value:gl.HIGHLIGHT},{text:"Replace",value:gl.REPLACE},{text:"Mix",value:gl.MIX}],gxe=new z(1,1,0,.4),cAt=new z,LH=new z;function ua(e,t){let n=this,i=e.canvas;this._eventHandler=new Lu(i),this._scene=e,this._performanceContainer=t,this._canvas=i,this._performanceDisplay=new k_({container:t}),this._statisticsText="",this._pickStatisticsText="",this._resourceCacheStatisticsText="",this._editorError="",this.performance=!1,this.showStatistics=!0,this.showPickStatistics=!0,this.showResourceCacheStatistics=!1,this.inspectorVisible=!0,this.tilesetVisible=!1,this.displayVisible=!1,this.updateVisible=!1,this.loggingVisible=!1,this.styleVisible=!1,this.tileDebugLabelsVisible=!1,this.optimizationVisible=!1,this.styleString="{}",this.hasEnabledWireframe=!1,this._tileset=void 0,this._feature=void 0,this._tile=void 0,Ce.track(this,["performance","inspectorVisible","_statisticsText","_pickStatisticsText","_resourceCacheStatisticsText","_editorError","showPickStatistics","showStatistics","showResourceCacheStatistics","tilesetVisible","displayVisible","updateVisible","loggingVisible","styleVisible","optimizationVisible","tileDebugLabelsVisible","styleString","_feature","_tile","_tileset","hasEnabledWireframe"]),this._properties=Ce.observable({}),this.properties=[],Ce.defineProperty(this,"properties",function(){let U=[],Y=n._properties();for(let W in Y)Y.hasOwnProperty(W)&&U.push(W);return U});let r=Ce.observable();Ce.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return r()},set:function(U){r(U),u(n._tileset)&&(n._tileset.dynamicScreenSpaceError=U)}}),this.dynamicScreenSpaceError=!1;let o=Ce.observable();Ce.defineProperty(this,"colorBlendMode",{get:function(){return o()},set:function(U){o(U),u(n._tileset)&&(n._tileset.colorBlendMode=U,n._scene.requestRender())}}),this.colorBlendMode=gl.HIGHLIGHT;let s=Ce.observable(),a=Ce.observable();Ce.defineProperty(this,"picking",{get:function(){return a()},set:function(U){a(U),U?n._eventHandler.setInputAction(function(Y){let W=e.pick(Y.endPosition);if(W instanceof ws?(n.feature=W,n.tile=W.content.tile):u(W)&&u(W.content)?(n.feature=void 0,n.tile=W.content.tile):(n.feature=void 0,n.tile=void 0),!!u(n._tileset)){if(s&&u(W)&&u(W.content)){let Z;e.pickPositionSupported&&(Z=e.pickPosition(Y.endPosition),u(Z)&&(n._tileset.debugPickPosition=Z)),n._tileset.debugPickedTile=W.content.tile}else n._tileset.debugPickedTile=void 0;n._scene.requestRender()}},An.MOUSE_MOVE):(n.feature=void 0,n.tile=void 0,n._eventHandler.removeInputAction(An.MOUSE_MOVE))}}),this.picking=!0;let c=Ce.observable();Ce.defineProperty(this,"colorize",{get:function(){return c()},set:function(U){c(U),u(n._tileset)&&(n._tileset.debugColorizeTiles=U,n._scene.requestRender())}}),this.colorize=!1;let l=Ce.observable();Ce.defineProperty(this,"wireframe",{get:function(){return l()},set:function(U){l(U),u(n._tileset)&&(n._tileset.debugWireframe=U,n._scene.requestRender())}}),this.wireframe=!1;let f=Ce.observable();Ce.defineProperty(this,"showBoundingVolumes",{get:function(){return f()},set:function(U){f(U),u(n._tileset)&&(n._tileset.debugShowBoundingVolume=U,n._scene.requestRender())}}),this.showBoundingVolumes=!1;let d=Ce.observable();Ce.defineProperty(this,"showContentBoundingVolumes",{get:function(){return d()},set:function(U){d(U),u(n._tileset)&&(n._tileset.debugShowContentBoundingVolume=U,n._scene.requestRender())}}),this.showContentBoundingVolumes=!1;let p=Ce.observable();Ce.defineProperty(this,"showRequestVolumes",{get:function(){return p()},set:function(U){p(U),u(n._tileset)&&(n._tileset.debugShowViewerRequestVolume=U,n._scene.requestRender())}}),this.showRequestVolumes=!1;let g=Ce.observable();Ce.defineProperty(this,"freezeFrame",{get:function(){return g()},set:function(U){g(U),u(n._tileset)&&(n._tileset.debugFreezeFrame=U,n._scene.debugShowFrustumPlanes=U,n._scene.requestRender())}}),this.freezeFrame=!1,Ce.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return s()},set:function(U){s(U),u(n._tileset)&&(n._tileset.debugPickedTileLabelOnly=U,n._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;let m=Ce.observable();Ce.defineProperty(this,"showGeometricError",{get:function(){return m()},set:function(U){m(U),u(n._tileset)&&(n._tileset.debugShowGeometricError=U,n._scene.requestRender())}}),this.showGeometricError=!1;let A=Ce.observable();Ce.defineProperty(this,"showRenderingStatistics",{get:function(){return A()},set:function(U){A(U),u(n._tileset)&&(n._tileset.debugShowRenderingStatistics=U,n._scene.requestRender())}}),this.showRenderingStatistics=!1;let x=Ce.observable();Ce.defineProperty(this,"showMemoryUsage",{get:function(){return x()},set:function(U){x(U),u(n._tileset)&&(n._tileset.debugShowMemoryUsage=U,n._scene.requestRender())}}),this.showMemoryUsage=!1;let C=Ce.observable();Ce.defineProperty(this,"showUrl",{get:function(){return C()},set:function(U){C(U),u(n._tileset)&&(n._tileset.debugShowUrl=U,n._scene.requestRender())}}),this.showUrl=!1;let T=Ce.observable();Ce.defineProperty(this,"maximumScreenSpaceError",{get:function(){return T()},set:function(U){U=Number(U),isNaN(U)||(T(U),u(n._tileset)&&(n._tileset.maximumScreenSpaceError=U))}}),this.maximumScreenSpaceError=16;let E=Ce.observable();Ce.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return E()},set:function(U){U=Number(U),isNaN(U)||(E(U),u(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=U))}}),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,Ce.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(E(),1/6)},set:function(U){E(Math.pow(U,6))}});let S=Ce.observable();Ce.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return S()},set:function(U){U=Number(U),isNaN(U)||(S(U),u(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorFactor=U))}}),this.dynamicScreenSpaceErrorFactor=4;let v=oAt(this),D=Ce.observable();Ce.defineProperty(this,"pickActive",{get:function(){return D()},set:function(U){D(U),U?n._eventHandler.setInputAction(v,An.LEFT_CLICK):n._eventHandler.removeInputAction(An.LEFT_CLICK)}});let M=Ce.observable();Ce.defineProperty(this,"pointCloudShading",{get:function(){return M()},set:function(U){M(U),u(n._tileset)&&(n._tileset.pointCloudShading.attenuation=U)}}),this.pointCloudShading=!1;let O=Ce.observable();Ce.defineProperty(this,"geometricErrorScale",{get:function(){return O()},set:function(U){U=Number(U),isNaN(U)||(O(U),u(n._tileset)&&(n._tileset.pointCloudShading.geometricErrorScale=U))}}),this.geometricErrorScale=1;let B=Ce.observable();Ce.defineProperty(this,"maximumAttenuation",{get:function(){return B()},set:function(U){U=Number(U),isNaN(U)||(B(U),u(n._tileset)&&(n._tileset.pointCloudShading.maximumAttenuation=U===0?void 0:U))}}),this.maximumAttenuation=0;let L=Ce.observable();Ce.defineProperty(this,"baseResolution",{get:function(){return L()},set:function(U){U=Number(U),isNaN(U)||(L(U),u(n._tileset)&&(n._tileset.pointCloudShading.baseResolution=U===0?void 0:U))}}),this.baseResolution=0;let _=Ce.observable();Ce.defineProperty(this,"eyeDomeLighting",{get:function(){return _()},set:function(U){_(U),u(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLighting=U)}}),this.eyeDomeLighting=!1;let b=Ce.observable();Ce.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return b()},set:function(U){U=Number(U),isNaN(U)||(b(U),u(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingStrength=U))}}),this.eyeDomeLightingStrength=1;let w=Ce.observable();Ce.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return w()},set:function(U){U=Number(U),isNaN(U)||(w(U),u(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingRadius=U))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;let I=Ce.observable();Ce.defineProperty(this,"skipLevelOfDetail",{get:function(){return I()},set:function(U){I(U),u(n._tileset)&&(n._tileset.skipLevelOfDetail=U)}}),this.skipLevelOfDetail=!0;let R=Ce.observable();Ce.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return R()},set:function(U){U=Number(U),isNaN(U)||(R(U),u(n._tileset)&&(n._tileset.skipScreenSpaceErrorFactor=U))}}),this.skipScreenSpaceErrorFactor=16;let F=Ce.observable();Ce.defineProperty(this,"baseScreenSpaceError",{get:function(){return F()},set:function(U){U=Number(U),isNaN(U)||(F(U),u(n._tileset)&&(n._tileset.baseScreenSpaceError=U))}}),this.baseScreenSpaceError=1024;let k=Ce.observable();Ce.defineProperty(this,"skipLevels",{get:function(){return k()},set:function(U){U=Number(U),isNaN(U)||(k(U),u(n._tileset)&&(n._tileset.skipLevels=U))}}),this.skipLevels=1;let V=Ce.observable();Ce.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return V()},set:function(U){V(U),u(n._tileset)&&(n._tileset.immediatelyLoadDesiredLevelOfDetail=U)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;let G=Ce.observable();Ce.defineProperty(this,"loadSiblings",{get:function(){return G()},set:function(U){G(U),u(n._tileset)&&(n._tileset.loadSiblings=U)}}),this.loadSiblings=!1,this._style=void 0,this._shouldStyle=!1,this._definedProperties=["properties","dynamicScreenSpaceError","colorBlendMode","picking","colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","maximumScreenSpaceError","dynamicScreenSpaceErrorDensity","baseScreenSpaceError","skipScreenSpaceErrorFactor","skipLevelOfDetail","skipLevels","immediatelyLoadDesiredLevelOfDetail","loadSiblings","dynamicScreenSpaceErrorDensitySliderValue","dynamicScreenSpaceErrorFactor","pickActive","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl","pointCloudShading","geometricErrorScale","maximumAttenuation","baseResolution","eyeDomeLighting","eyeDomeLightingStrength","eyeDomeLightingRadius"],this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()}),u(this._tileset)||yxe(this,!0)}Object.defineProperties(ua.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},statisticsText:{get:function(){return this._statisticsText}},pickStatisticsText:{get:function(){return this._pickStatisticsText}},resourceCacheStatisticsText:{get:function(){return this._resourceCacheStatisticsText}},colorBlendModes:{get:function(){return aAt}},editorError:{get:function(){return this._editorError}},tileset:{get:function(){return this._tileset},set:function(e){if(this._tileset=e,this._style=void 0,this.styleString="{}",this.feature=void 0,this.tile=void 0,u(e)){let t=this;e._readyPromise.then(function(o){t.isDestroyed()||t._properties(o.properties)});let n=["colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl"],i=n.length;for(let o=0;o<i;++o){let s=n[o];this[s]=this[s]}this.maximumScreenSpaceError=e.maximumScreenSpaceError,this.dynamicScreenSpaceError=e.dynamicScreenSpaceError,this.dynamicScreenSpaceErrorDensity=e.dynamicScreenSpaceErrorDensity,this.dynamicScreenSpaceErrorFactor=e.dynamicScreenSpaceErrorFactor,this.colorBlendMode=e.colorBlendMode,this.skipLevelOfDetail=e.skipLevelOfDetail,this.skipScreenSpaceErrorFactor=e.skipScreenSpaceErrorFactor,this.baseScreenSpaceError=e.baseScreenSpaceError,this.skipLevels=e.skipLevels,this.immediatelyLoadDesiredLevelOfDetail=e.immediatelyLoadDesiredLevelOfDetail,this.loadSiblings=e.loadSiblings,this.hasEnabledWireframe=e._enableDebugWireframe;let r=e.pointCloudShading;this.pointCloudShading=r.attenuation,this.geometricErrorScale=r.geometricErrorScale,this.maximumAttenuation=r.maximumAttenuation?r.maximumAttenuation:0,this.baseResolution=r.baseResolution?r.baseResolution:0,this.eyeDomeLighting=r.eyeDomeLighting,this.eyeDomeLightingStrength=r.eyeDomeLightingStrength,this.eyeDomeLightingRadius=r.eyeDomeLightingRadius,this._scene.requestRender()}else this._properties({});this._statisticsText=w2(e,!1),this._pickStatisticsText=w2(e,!0),this._resourceCacheStatisticsText=Axe(),yxe(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature===e)return;let t=this._feature;u(t)&&!t.content.isDestroyed()&&(!this.colorize&&u(this._style)?t.color=u(this._style.color)?this._style.color.evaluateColor(t,cAt):z.WHITE:t.color=LH,this._scene.requestRender()),u(e)&&(z.clone(e.color,LH),e.color=gxe,this._scene.requestRender()),this._feature=e}},tile:{get:function(){return this._tile},set:function(e){if(this._tile===e)return;let t=this._tile;u(t)&&!t.isDestroyed()&&!LK(t.content)&&(t.color=LH,this._scene.requestRender()),u(e)&&!LK(e.content)&&(z.clone(e.color,LH),e.color=gxe,this._scene.requestRender()),this._tile=e}}});function LK(e){if(!u(e))return!1;if(e.featuresLength>0)return!0;let t=e.innerContents;if(u(t)){let n=t.length;for(let i=0;i<n;++i)if(!LK(t[i]))return!1;return!0}return!1}ua.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive};ua.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};ua.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible};ua.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};ua.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible};ua.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible};ua.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible};ua.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible};ua.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible};ua.prototype.trimTilesCache=function(){u(this._tileset)&&this._tileset.trimLoadedTiles()};ua.prototype.compileStyle=function(){let e=this._tileset;if(!(!u(e)||this.styleString===JSON.stringify(e.style))){this._editorError="";try{this.styleString.length===0&&(this.styleString="{}"),this._style=new Y_(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(t){this._editorError=t.toString()}this.feature=this._feature,this.tile=this._tile}};ua.prototype.styleEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,r=n.selectionEnd,o=r,a=n.value.slice(i,r).split(` +`),c=a.length,l;if(t.shiftKey)for(l=0;l<c;++l)a[l][0]===" "&&(a[l][1]===" "?(a[l]=a[l].substr(2),o-=2):(a[l]=a[l].substr(1),o-=1));else for(l=0;l<c;++l)a[l]=` ${a[l]}`,o+=2;let f=a.join(` +`);n.value=n.value.slice(0,i)+f+n.value.slice(r),n.selectionStart=i!==r?i:o,n.selectionEnd=o}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileStyle();return!0};ua.prototype._update=function(){let e=this._tileset;if(this.performance&&this._performanceDisplay.update(),u(e)){if(e.isDestroyed()){this.tile=void 0,this.feature=void 0,this.tileset=void 0;return}let t=e.style;this._style!==e.style&&(this._shouldStyle?(e.style=this._style,this._shouldStyle=!1):(this._style=t,this.styleString=JSON.stringify(t.style,null," ")))}this.showStatistics&&(this._statisticsText=w2(e,!1),this._pickStatisticsText=w2(e,!0),this._resourceCacheStatisticsText=Axe())};ua.prototype.isDestroyed=function(){return!1};ua.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();let e=this;return this._definedProperties.forEach(function(t){Ce.getObservable(e,t).dispose()}),ue(this)};ua.getStatistics=w2;var D2=ua;function NH(e,t){e=wn(e);let n=document.createElement("div"),i=document.createElement("div");i.setAttribute("data-bind","visible: performance");let r=new D2(t,i);this._viewModel=r,this._container=e,this._element=n;let o=document.createElement("div");o.textContent="3D Tiles Inspector",o.className="cesium-cesiumInspector-button",o.setAttribute("data-bind","click: toggleInspector"),n.appendChild(o),n.className="cesium-cesiumInspector cesium-3DTilesInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",n.appendChild(s);let a=Oa.createSection,c=Oa.createCheckbox,l=Oa.createRangeInput,f=Oa.createButton,d=a(s,"Tileset","tilesetVisible","toggleTileset"),p=a(s,"Display","displayVisible","toggleDisplay"),g=a(s,"Update","updateVisible","toggleUpdate"),m=a(s,"Logging","loggingVisible","toggleLogging"),A=a(s,"Tile Debug Labels","tileDebugLabelsVisible","toggleTileDebugLabels"),x=a(s,"Style","styleVisible","toggleStyle"),C=a(s,"Optimization","optimizationVisible","toggleOptimization"),T=document.createElement("div");T.className="field-group";let E=document.createElement("label");E.className="field-label",E.appendChild(document.createTextNode("Properties: "));let S=document.createElement("div");S.setAttribute("data-bind","text: properties"),T.appendChild(E),T.appendChild(S),d.appendChild(T),d.appendChild(f("Pick Tileset","togglePickTileset","pickActive")),d.appendChild(f("Trim Tiles Cache","trimTilesCache")),d.appendChild(c("Enable Picking","picking")),p.appendChild(c("Colorize","colorize"));let v=p.appendChild(c("Wireframe","wireframe","_tileset === undefined || hasEnabledWireframe")),D=document.createElement("p");D.setAttribute("data-bind","visible: _tileset !== undefined && !hasEnabledWireframe"),D.setAttribute("class","cesium-3DTilesInspector-disabledElementsInfo"),D.innerText="Set enableDebugWireframe to true in the tileset constructor to enable this option.",v.appendChild(D),p.appendChild(c("Bounding Volumes","showBoundingVolumes")),p.appendChild(c("Content Volumes","showContentBoundingVolumes")),p.appendChild(c("Request Volumes","showRequestVolumes")),p.appendChild(c("Point Cloud Shading","pointCloudShading"));let M=document.createElement("div");M.setAttribute("data-bind","visible: pointCloudShading"),M.appendChild(l("Geometric Error Scale","geometricErrorScale",0,2,.01)),M.appendChild(l("Maximum Attenuation","maximumAttenuation",0,32,1)),M.appendChild(l("Base Resolution","baseResolution",0,1,.01)),M.appendChild(c("Eye Dome Lighting (EDL)","eyeDomeLighting")),p.appendChild(M);let O=document.createElement("div");O.setAttribute("data-bind","visible: eyeDomeLighting"),O.appendChild(l("EDL Strength","eyeDomeLightingStrength",0,2,.1)),O.appendChild(l("EDL Radius","eyeDomeLightingRadius",0,4,.1)),M.appendChild(O),g.appendChild(c("Freeze Frame","freezeFrame")),g.appendChild(c("Dynamic Screen Space Error","dynamicScreenSpaceError"));let B=document.createElement("div");B.appendChild(l("Maximum Screen Space Error","maximumScreenSpaceError",0,128,1)),g.appendChild(B);let L=document.createElement("div");L.setAttribute("data-bind","visible: dynamicScreenSpaceError"),L.appendChild(l("Screen Space Error Density","dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"dynamicScreenSpaceErrorDensity")),L.appendChild(l("Screen Space Error Factor","dynamicScreenSpaceErrorFactor",1,10,.1)),g.appendChild(L),m.appendChild(c("Performance","performance")),m.appendChild(i),m.appendChild(c("Statistics","showStatistics"));let _=document.createElement("div");_.className="cesium-3dTilesInspector-statistics",_.setAttribute("data-bind","html: statisticsText, visible: showStatistics"),m.appendChild(_),m.appendChild(c("Pick Statistics","showPickStatistics"));let b=document.createElement("div");b.className="cesium-3dTilesInspector-statistics",b.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),m.appendChild(b),m.appendChild(c("Resource Cache Statistics","showResourceCacheStatistics"));let w=document.createElement("div");w.className="cesium-3dTilesInspector-statistics",w.setAttribute("data-bind","html: resourceCacheStatisticsText, visible: showResourceCacheStatistics"),m.appendChild(w);let I=document.createElement("div");x.appendChild(I),I.appendChild(document.createTextNode("Color Blend Mode: "));let R=document.createElement("select");R.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),I.appendChild(R);let F=document.createElement("textarea");F.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),I.className="cesium-cesiumInspector-styleEditor",I.appendChild(F);let k=f("Compile (Ctrl+Enter)","compileStyle");I.appendChild(k);let V=document.createElement("div");V.className="cesium-cesiumInspector-error",V.setAttribute("data-bind","text: editorError"),I.appendChild(V),A.appendChild(c("Show Picked Only","showOnlyPickedTileDebugLabel")),A.appendChild(c("Geometric Error","showGeometricError")),A.appendChild(c("Rendering Statistics","showRenderingStatistics")),A.appendChild(c("Memory Usage (MB)","showMemoryUsage")),A.appendChild(c("Url","showUrl")),C.appendChild(c("Skip Tile LODs","skipLevelOfDetail"));let G=document.createElement("div");G.appendChild(l("Skip SSE Factor","skipScreenSpaceErrorFactor",1,50,1)),C.appendChild(G);let U=document.createElement("div");U.appendChild(l("SSE before skipping LOD","baseScreenSpaceError",0,4096,1)),C.appendChild(U);let Y=document.createElement("div");Y.appendChild(l("Min. levels to skip","skipLevels",0,10,1)),C.appendChild(Y),C.appendChild(c("Load only tiles that meet the max SSE.","immediatelyLoadDesiredLevelOfDetail")),C.appendChild(c("Load siblings of visible tiles","loadSiblings")),Ce.applyBindings(r,n)}Object.defineProperties(NH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});NH.prototype.isDestroyed=function(){return!1};NH.prototype.destroy=function(){return Ce.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var I2=NH;function lAt(e){let t;if(u(e)){t="Command Statistics";let n=e.commandsInFrustums;for(let i in n)if(n.hasOwnProperty(i)){let r=parseInt(i,10),o;if(r===7)o="1, 2 and 3";else{let s=[];for(let a=2;a>=0;a--){let c=Math.pow(2,a);r>=c&&(s.push(a+1),r-=c)}o=s.reverse().join(" and ")}t+=`<br>    ${n[i]} in frustum ${o}`}t+=`<br>Total: ${e.totalCommands}`}return t}function NK(e,t,n){let i=Math.min(n,t);return i=Math.max(i,e),i}var uAt=new vn,fAt=new h;function P2(e,t){let n=this,i=e.canvas,r=new Lu(i);this._eventHandler=r,this._scene=e,this._canvas=i,this._primitive=void 0,this._tile=void 0,this._modelMatrixPrimitive=void 0,this._performanceDisplay=void 0,this._performanceContainer=t;let o=this._scene.globe;o.depthTestAgainstTerrain=!0,this.frustums=!1,this.frustumPlanes=!1,this.performance=!1,this.shaderCacheText="",this.primitiveBoundingSphere=!1,this.primitiveReferenceFrame=!1,this.filterPrimitive=!1,this.tileBoundingSphere=!1,this.filterTile=!1,this.wireframe=!1,this.depthFrustum=1,this._numberOfFrustums=1,this.suspendUpdates=!1,this.tileCoordinates=!1,this.frustumStatisticText=!1,this.tileText="",this.hasPickedPrimitive=!1,this.hasPickedTile=!1,this.pickPrimitiveActive=!1,this.pickTileActive=!1,this.dropDownVisible=!0,this.generalVisible=!0,this.primitivesVisible=!1,this.terrainVisible=!1,this.depthFrustumText="",Ce.track(this,["frustums","frustumPlanes","performance","shaderCacheText","primitiveBoundingSphere","primitiveReferenceFrame","filterPrimitive","tileBoundingSphere","filterTile","wireframe","depthFrustum","suspendUpdates","tileCoordinates","frustumStatisticText","tileText","hasPickedPrimitive","hasPickedTile","pickPrimitiveActive","pickTileActive","dropDownVisible","generalVisible","primitivesVisible","terrainVisible","depthFrustumText"]),this._toggleDropDown=Cn(function(){n.dropDownVisible=!n.dropDownVisible}),this._toggleGeneral=Cn(function(){n.generalVisible=!n.generalVisible}),this._togglePrimitives=Cn(function(){n.primitivesVisible=!n.primitivesVisible}),this._toggleTerrain=Cn(function(){n.terrainVisible=!n.terrainVisible}),this._frustumsSubscription=Ce.getObservable(this,"frustums").subscribe(function(l){n._scene.debugShowFrustums=l,n._scene.requestRender()}),this._frustumPlanesSubscription=Ce.getObservable(this,"frustumPlanes").subscribe(function(l){n._scene.debugShowFrustumPlanes=l,n._scene.requestRender()}),this._performanceSubscription=Ce.getObservable(this,"performance").subscribe(function(l){l?n._performanceDisplay=new k_({container:n._performanceContainer}):n._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=Cn(function(){return n._primitive.debugShowBoundingVolume=n.primitiveBoundingSphere,n._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=Ce.getObservable(this,"primitiveBoundingSphere").subscribe(function(){n._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=Cn(function(){if(n.primitiveReferenceFrame){let l=n._primitive.modelMatrix;n._modelMatrixPrimitive=new yF({modelMatrix:l}),n._scene.primitives.add(n._modelMatrixPrimitive)}else u(n._modelMatrixPrimitive)&&(n._scene.primitives.remove(n._modelMatrixPrimitive),n._modelMatrixPrimitive=void 0);return n._scene.requestRender(),!0}),this._primitiveReferenceFrameSubscription=Ce.getObservable(this,"primitiveReferenceFrame").subscribe(function(){n._showPrimitiveReferenceFrame()}),this._doFilterPrimitive=Cn(function(){return n.filterPrimitive?n._scene.debugCommandFilter=function(l){return u(n._modelMatrixPrimitive)&&l.owner===n._modelMatrixPrimitive._primitive?!0:u(n._primitive)?l.owner===n._primitive||l.owner===n._primitive._billboardCollection||l.owner.primitive===n._primitive:!1}:n._scene.debugCommandFilter=void 0,!0}),this._filterPrimitiveSubscription=Ce.getObservable(this,"filterPrimitive").subscribe(function(){n._doFilterPrimitive(),n._scene.requestRender()}),this._wireframeSubscription=Ce.getObservable(this,"wireframe").subscribe(function(l){o._surface.tileProvider._debug.wireframe=l,n._scene.requestRender()}),this._depthFrustumSubscription=Ce.getObservable(this,"depthFrustum").subscribe(function(l){n._scene.debugShowDepthFrustum=l,n._scene.requestRender()}),this._incrementDepthFrustum=Cn(function(){let l=n.depthFrustum+1;return n.depthFrustum=NK(1,n._numberOfFrustums,l),n._scene.requestRender(),!0}),this._decrementDepthFrustum=Cn(function(){let l=n.depthFrustum-1;return n.depthFrustum=NK(1,n._numberOfFrustums,l),n._scene.requestRender(),!0}),this._suspendUpdatesSubscription=Ce.getObservable(this,"suspendUpdates").subscribe(function(l){o._surface._debug.suspendLodUpdate=l,l||(n.filterTile=!1)});let s;this._showTileCoordinates=Cn(function(){return n.tileCoordinates&&!u(s)?s=e.imageryLayers.addImageryProvider(new UF({tilingScheme:e.terrainProvider.tilingScheme})):!n.tileCoordinates&&u(s)&&(e.imageryLayers.remove(s),s=void 0),!0}),this._tileCoordinatesSubscription=Ce.getObservable(this,"tileCoordinates").subscribe(function(){n._showTileCoordinates(),n._scene.requestRender()}),this._tileBoundingSphereSubscription=Ce.getObservable(this,"tileBoundingSphere").subscribe(function(){n._showTileBoundingSphere(),n._scene.requestRender()}),this._showTileBoundingSphere=Cn(function(){return n.tileBoundingSphere?o._surface.tileProvider._debug.boundingSphereTile=n._tile:o._surface.tileProvider._debug.boundingSphereTile=void 0,n._scene.requestRender(),!0}),this._doFilterTile=Cn(function(){return n.filterTile?(n.suspendUpdates=!0,o._surface._tilesToRender=[],u(n._tile)&&n._tile.renderable&&o._surface._tilesToRender.push(n._tile)):n.suspendUpdates=!1,!0}),this._filterTileSubscription=Ce.getObservable(this,"filterTile").subscribe(function(){n.doFilterTile(),n._scene.requestRender()});function a(l){let f=n._scene.pick({x:l.position.x,y:l.position.y});u(f)&&(n.primitive=u(f.collection)?f.collection:f.primitive),n._scene.requestRender(),n.pickPrimitiveActive=!1}this._pickPrimitive=Cn(function(){n.pickPrimitiveActive=!n.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=Ce.getObservable(this,"pickPrimitiveActive").subscribe(function(l){l?r.setInputAction(a,An.LEFT_CLICK):r.removeInputAction(An.LEFT_CLICK)});function c(l){let f,d=o.ellipsoid,p=n._scene.camera.getPickRay(l.position,uAt),g=o.pick(p,n._scene,fAt);if(u(g)){let m=d.cartesianToCartographic(g),A=o._surface.tileProvider._tilesToRenderByTextureCount;for(let x=0;!f&&x<A.length;++x){let C=A[x];if(u(C))for(let T=0;!f&&T<C.length;++T){let E=C[T];le.contains(E.rectangle,m)&&(f=E)}}}n.tile=f,n.pickTileActive=!1}this._pickTile=Cn(function(){n.pickTileActive=!n.pickTileActive}),this._pickTileActiveSubscription=Ce.getObservable(this,"pickTileActive").subscribe(function(l){l?r.setInputAction(c,An.LEFT_CLICK):r.removeInputAction(An.LEFT_CLICK)}),this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()})}Object.defineProperties(P2.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},toggleDropDown:{get:function(){return this._toggleDropDown}},showPrimitiveBoundingSphere:{get:function(){return this._showPrimitiveBoundingSphere}},showPrimitiveReferenceFrame:{get:function(){return this._showPrimitiveReferenceFrame}},doFilterPrimitive:{get:function(){return this._doFilterPrimitive}},incrementDepthFrustum:{get:function(){return this._incrementDepthFrustum}},decrementDepthFrustum:{get:function(){return this._decrementDepthFrustum}},showTileCoordinates:{get:function(){return this._showTileCoordinates}},showTileBoundingSphere:{get:function(){return this._showTileBoundingSphere}},doFilterTile:{get:function(){return this._doFilterTile}},toggleGeneral:{get:function(){return this._toggleGeneral}},togglePrimitives:{get:function(){return this._togglePrimitives}},toggleTerrain:{get:function(){return this._toggleTerrain}},pickPrimitive:{get:function(){return this._pickPrimitive}},pickTile:{get:function(){return this._pickTile}},selectParent:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){let e=this;return Cn(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(e){let t=this._primitive;e!==t&&(this.hasPickedPrimitive=!0,u(t)&&(t.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,u(this._modelMatrixPrimitive)&&(this._scene.primitives.remove(this._modelMatrixPrimitive),this._modelMatrixPrimitive=void 0),this._primitive=e,e.show=!1,setTimeout(function(){e.show=!0},50),this.showPrimitiveBoundingSphere(),this.showPrimitiveReferenceFrame(),this.doFilterPrimitive())}},tile:{get:function(){return this._tile},set:function(e){if(u(e)){this.hasPickedTile=!0;let t=this._tile;if(e!==t){this.tileText=`L: ${e.level} X: ${e.x} Y: ${e.y}`,this.tileText+=`<br>SW corner: ${e.rectangle.west}, ${e.rectangle.south}`,this.tileText+=`<br>NE corner: ${e.rectangle.east}, ${e.rectangle.north}`;let n=e.data;u(n)&&u(n.tileBoundingRegion)?this.tileText+=`<br>Min: ${n.tileBoundingRegion.minimumHeight} Max: ${n.tileBoundingRegion.maximumHeight}`:this.tileText+="<br>(Tile is not loaded)"}this._tile=e,this.showTileBoundingSphere(),this.doFilterTile()}else this.hasPickedTile=!1,this._tile=void 0}}});P2.prototype._update=function(){this.frustums&&(this.frustumStatisticText=lAt(this._scene.debugFrustumStatistics));let e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=NK(1,e,this.depthFrustum),this.depthFrustumText=`${this.depthFrustum} of ${e}`,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText=`Cached shaders: ${this._scene.context.shaderCache.numberOfShaders}`};P2.prototype.isDestroyed=function(){return!1};P2.prototype.destroy=function(){return this._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),ue(this)};var O2=P2;function FH(e,t){e=wn(e);let n=document.createElement("div"),i=new O2(t,n);this._viewModel=i,this._container=e;let r=document.createElement("div");this._element=r;let o=document.createElement("div");o.textContent="Cesium Inspector",o.className="cesium-cesiumInspector-button",o.setAttribute("data-bind","click: toggleDropDown"),r.appendChild(o),r.className="cesium-cesiumInspector",r.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : dropDownVisible, "cesium-cesiumInspector-hidden" : !dropDownVisible }'),e.appendChild(this._element);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",r.appendChild(s);let a=Oa.createSection,c=Oa.createCheckbox,l=a(s,"General","generalVisible","toggleGeneral"),f=c("Show Frustums","frustums"),d=document.createElement("div");d.className="cesium-cesiumInspector-frustumStatistics",d.setAttribute("data-bind","visible: frustums, html: frustumStatisticText"),f.appendChild(d),l.appendChild(f),l.appendChild(c("Show Frustum Planes","frustumPlanes")),l.appendChild(c("Performance Display","performance")),n.className="cesium-cesiumInspector-performanceDisplay",l.appendChild(n);let p=document.createElement("div");p.className="cesium-cesiumInspector-shaderCache",p.setAttribute("data-bind","html: shaderCacheText"),l.appendChild(p);let g=document.createElement("div");l.appendChild(g);let m=document.createElement("span");m.setAttribute("data-bind",'html: "     Frustum:"'),g.appendChild(m);let A=document.createElement("span");A.setAttribute("data-bind","text: depthFrustumText"),g.appendChild(A);let x=document.createElement("input");x.type="button",x.value="-",x.className="cesium-cesiumInspector-pickButton",x.setAttribute("data-bind","click: decrementDepthFrustum"),g.appendChild(x);let C=document.createElement("input");C.type="button",C.value="+",C.className="cesium-cesiumInspector-pickButton",C.setAttribute("data-bind","click: incrementDepthFrustum"),g.appendChild(C);let T=a(s,"Primitives","primitivesVisible","togglePrimitives"),E=document.createElement("div");E.className="cesium-cesiumInspector-pickSection",T.appendChild(E);let S=document.createElement("input");S.type="button",S.value="Pick a primitive",S.className="cesium-cesiumInspector-pickButton",S.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');let v=document.createElement("div");v.className="cesium-cesiumInspector-center",v.appendChild(S),E.appendChild(v),E.appendChild(c("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),E.appendChild(c("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=c("Show only selected","filterPrimitive","hasPickedPrimitive"),E.appendChild(this._primitiveOnly);let D=a(s,"Terrain","terrainVisible","toggleTerrain"),M=document.createElement("div");M.className="cesium-cesiumInspector-pickSection",D.appendChild(M);let O=document.createElement("input");O.type="button",O.value="Pick a tile",O.className="cesium-cesiumInspector-pickButton",O.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickTileActive}, click: pickTile'),v=document.createElement("div"),v.appendChild(O),v.className="cesium-cesiumInspector-center",M.appendChild(v);let B=document.createElement("div");M.appendChild(B);let L=document.createElement("input");L.type="button",L.value="Parent",L.className="cesium-cesiumInspector-pickButton",L.setAttribute("data-bind","click: selectParent");let _=document.createElement("input");_.type="button",_.value="NW",_.className="cesium-cesiumInspector-pickButton",_.setAttribute("data-bind","click: selectNW");let b=document.createElement("input");b.type="button",b.value="NE",b.className="cesium-cesiumInspector-pickButton",b.setAttribute("data-bind","click: selectNE");let w=document.createElement("input");w.type="button",w.value="SW",w.className="cesium-cesiumInspector-pickButton",w.setAttribute("data-bind","click: selectSW");let I=document.createElement("input");I.type="button",I.value="SE",I.className="cesium-cesiumInspector-pickButton",I.setAttribute("data-bind","click: selectSE");let R=document.createElement("div");R.className="cesium-cesiumInspector-tileText",B.className="cesium-cesiumInspector-frustumStatistics",B.appendChild(R),B.setAttribute("data-bind","visible: hasPickedTile"),R.setAttribute("data-bind","html: tileText");let F=document.createElement("div");F.className="cesium-cesiumInspector-relativeText",F.textContent="Select relative:",B.appendChild(F);let k=document.createElement("table"),V=document.createElement("tr"),G=document.createElement("tr"),U=document.createElement("td");U.appendChild(L);let Y=document.createElement("td");Y.appendChild(_);let W=document.createElement("td");W.appendChild(b),V.appendChild(U),V.appendChild(Y),V.appendChild(W);let Z=document.createElement("td"),j=document.createElement("td");j.appendChild(w);let K=document.createElement("td");K.appendChild(I),G.appendChild(Z),G.appendChild(j),G.appendChild(K),k.appendChild(V),k.appendChild(G),B.appendChild(k),M.appendChild(c("Show bounding volume","tileBoundingSphere","hasPickedTile")),M.appendChild(c("Show only selected","filterTile","hasPickedTile")),D.appendChild(c("Wireframe","wireframe")),D.appendChild(c("Suspend LOD update","suspendUpdates")),D.appendChild(c("Show tile coordinates","tileCoordinates")),Ce.applyBindings(i,this._element)}Object.defineProperties(FH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});FH.prototype.isDestroyed=function(){return!1};FH.prototype.destroy=function(){return Ce.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var M2=FH;function UH(e,t){u(t)||(t=document.body),t=wn(t);let n=this,i=Ce.observable(ho.fullscreen),r=Ce.observable(ho.enabled),o=t.ownerDocument;this.isFullscreen=void 0,Ce.defineProperty(this,"isFullscreen",{get:function(){return i()}}),this.isFullscreenEnabled=void 0,Ce.defineProperty(this,"isFullscreenEnabled",{get:function(){return r()},set:function(s){r(s&&ho.enabled)}}),this.tooltip=void 0,Ce.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?i()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=Cn(function(){ho.fullscreen?ho.exitFullscreen():ho.requestFullscreen(n._fullscreenElement)},Ce.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=y(wn(e),o.body),this._callback=function(){i(ho.fullscreen)},o.addEventListener(ho.changeEventName,this._callback)}Object.defineProperties(UH.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}});UH.prototype.isDestroyed=function(){return!1};UH.prototype.destroy=function(){document.removeEventListener(ho.changeEventName,this._callback),ue(this)};var R2=UH;var dAt="M 83.96875 17.5625 L 83.96875 17.59375 L 76.65625 24.875 L 97.09375 24.96875 L 76.09375 45.96875 L 81.9375 51.8125 L 102.78125 30.9375 L 102.875 51.15625 L 110.15625 43.875 L 110.1875 17.59375 L 83.96875 17.5625 z M 44.125 17.59375 L 17.90625 17.625 L 17.9375 43.90625 L 25.21875 51.1875 L 25.3125 30.96875 L 46.15625 51.8125 L 52 45.96875 L 31 25 L 51.4375 24.90625 L 44.125 17.59375 z M 46.0625 76.03125 L 25.1875 96.875 L 25.09375 76.65625 L 17.8125 83.9375 L 17.8125 110.21875 L 44 110.25 L 51.3125 102.9375 L 30.90625 102.84375 L 51.875 81.875 L 46.0625 76.03125 z M 82 76.15625 L 76.15625 82 L 97.15625 103 L 76.71875 103.0625 L 84.03125 110.375 L 110.25 110.34375 L 110.21875 84.0625 L 102.9375 76.8125 L 102.84375 97 L 82 76.15625 z",hAt="M 104.34375 17.5625 L 83.5 38.4375 L 83.40625 18.21875 L 76.125 25.5 L 76.09375 51.78125 L 102.3125 51.8125 L 102.3125 51.78125 L 109.625 44.5 L 89.1875 44.40625 L 110.1875 23.40625 L 104.34375 17.5625 z M 23.75 17.59375 L 17.90625 23.4375 L 38.90625 44.4375 L 18.5 44.53125 L 25.78125 51.8125 L 52 51.78125 L 51.96875 25.53125 L 44.6875 18.25 L 44.625 38.46875 L 23.75 17.59375 z M 25.6875 76.03125 L 18.375 83.3125 L 38.78125 83.40625 L 17.8125 104.40625 L 23.625 110.25 L 44.5 89.375 L 44.59375 109.59375 L 51.875 102.3125 L 51.875 76.0625 L 25.6875 76.03125 z M 102.375 76.15625 L 76.15625 76.1875 L 76.1875 102.4375 L 83.46875 109.71875 L 83.5625 89.53125 L 104.40625 110.375 L 110.25 104.53125 L 89.25 83.53125 L 109.6875 83.46875 L 102.375 76.15625 z";function VH(e,t){e=wn(e);let n=new R2(t,e);n._exitFullScreenPath=hAt,n._enterFullScreenPath=dAt;let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-fullscreenButton",i.setAttribute("data-bind","attr: { title: tooltip },click: command,enable: isFullscreenEnabled,cesiumSvgPath: { path: isFullscreen ? _exitFullScreenPath : _enterFullScreenPath, width: 128, height: 128 }"),e.appendChild(i),Ce.applyBindings(n,i),this._container=e,this._viewModel=n,this._element=i}Object.defineProperties(VH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});VH.prototype.isDestroyed=function(){return!1};VH.prototype.destroy=function(){return this._viewModel.destroy(),Ce.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var B2=VH;function xxe(e,t){this._scene=e,this._duration=t;let n=this;this._command=Cn(function(){n._scene.camera.flyHome(n._duration)}),this.tooltip="View Home",Ce.track(this,["tooltip"])}Object.defineProperties(xxe.prototype,{scene:{get:function(){return this._scene}},command:{get:function(){return this._command}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}}});var L2=xxe;function kH(e,t,n){e=wn(e);let i=new L2(t,n);i._svgPath="M14,4l-10,8.75h20l-4.25-3.7188v-4.6562h-2.812v2.1875l-2.938-2.5625zm-7.0938,9.906v10.094h14.094v-10.094h-14.094zm2.1876,2.313h3.3122v4.25h-3.3122v-4.25zm5.8442,1.281h3.406v6.438h-3.406v-6.438z";let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-home-button",r.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 28, height: 28 }"),e.appendChild(r),Ce.applyBindings(i,r),this._container=e,this._viewModel=i,this._element=r}Object.defineProperties(kH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});kH.prototype.isDestroyed=function(){return!1};kH.prototype.destroy=function(){return Ce.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var N2=kH;var Cxe=1e3;function Qf(e){u(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[new s2,new l2({scene:e.scene})],this._viewContainer=e.container,this._scene=e.scene,this._flightDuration=e.flightDuration,this._searchText="",this._isSearchInProgress=!1,this._wasGeocodeCancelled=!1,this._previousCredits=[],this._complete=new ge,this._suggestions=[],this._selectedSuggestion=void 0,this._showSuggestions=!0,this._handleArrowDown=Exe,this._handleArrowUp=Txe;let t=this;this._suggestionsVisible=Ce.pureComputed(function(){let r=Ce.getObservable(t,"_suggestions")().length>0,o=Ce.getObservable(t,"_showSuggestions")();return r&&o}),this._searchCommand=Cn(function(i){if(i=y(i,u0.SEARCH),t._focusTextbox=!1,u(t._selectedSuggestion))return t.activateSuggestion(t._selectedSuggestion),!1;if(t.hideSuggestions(),t.isSearchInProgress)AAt(t);else return gAt(t,t._geocoderServices,i)}),this.deselectSuggestion=function(){t._selectedSuggestion=void 0},this.handleKeyDown=function(i,r){let o=r.key==="ArrowDown"||r.key==="Down"||r.keyCode===40,s=r.key==="ArrowUp"||r.key==="Up"||r.keyCode===38;return(o||s)&&r.preventDefault(),!0},this.handleKeyUp=function(i,r){let o=r.key==="ArrowDown"||r.key==="Down"||r.keyCode===40,s=r.key==="ArrowUp"||r.key==="Up"||r.keyCode===38,a=r.key==="Enter"||r.keyCode===13;return s?Txe(t):o?Exe(t):a&&t._searchCommand(),!0},this.activateSuggestion=function(i){t.hideSuggestions(),t._searchText=i.displayName;let r=i.destination;vxe(t),t.destinationFound(t,r)},this.hideSuggestions=function(){t._showSuggestions=!1,t._selectedSuggestion=void 0},this.showSuggestions=function(){t._showSuggestions=!0},this.handleMouseover=function(i,r){i!==t._selectedSuggestion&&(t._selectedSuggestion=i)},this.keepExpanded=!1,this.autoComplete=y(e.autocomplete,!0),this.destinationFound=y(e.destinationFound,Qf.flyToDestination),this._focusTextbox=!1,Ce.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);let n=Ce.getObservable(this,"_searchText");n.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=n.subscribe(function(){Qf._updateSearchSuggestions(t)}),this.isSearchInProgress=void 0,Ce.defineProperty(this,"isSearchInProgress",{get:function(){return this._isSearchInProgress}}),this.searchText=void 0,Ce.defineProperty(this,"searchText",{get:function(){return this.isSearchInProgress?"Searching...":this._searchText},set:function(i){this._searchText=i}}),this.flightDuration=void 0,Ce.defineProperty(this,"flightDuration",{get:function(){return this._flightDuration},set:function(i){this._flightDuration=i}})}Object.defineProperties(Qf.prototype,{complete:{get:function(){return this._complete}},scene:{get:function(){return this._scene}},search:{get:function(){return this._searchCommand}},selectedSuggestion:{get:function(){return this._selectedSuggestion}},suggestions:{get:function(){return this._suggestions}}});Qf.prototype.destroy=function(){this._suggestionSubscription.dispose()};function Txe(e){if(e._suggestions.length===0)return;let t=e._suggestions.indexOf(e._selectedSuggestion);if(t===-1||t===0){e._selectedSuggestion=void 0;return}let n=t-1;e._selectedSuggestion=e._suggestions[n],Qf._adjustSuggestionsScroll(e,n)}function Exe(e){if(e._suggestions.length===0)return;let t=e._suggestions.length,i=(e._suggestions.indexOf(e._selectedSuggestion)+1)%t;e._selectedSuggestion=e._suggestions[i],Qf._adjustSuggestionsScroll(e,i)}function mAt(e,t){let n=u(t)?t.availability:void 0;return u(n)?v_(t,[e]).then(function(i){return e=i[0],e.height+=Cxe,e}):(e.height+=Cxe,Promise.resolve(e))}function pAt(e,t){let n=e._scene,r=n.mapProjection.ellipsoid,o=n.camera,s=n.terrainProvider,a=t,c;return t instanceof le?P.equalsEpsilon(t.south,t.north,P.EPSILON7)&&P.equalsEpsilon(t.east,t.west,P.EPSILON7)?t=le.center(t):c=kC(t,n):t=r.cartesianToCartographic(t),u(c)||(c=mAt(t,s)),c.then(function(l){a=r.cartographicToCartesian(l)}).finally(function(){o.flyTo({destination:a,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:N.IDENTITY})})}async function _At(e,t,n){try{return{state:"fulfilled",value:await e.geocode(t,n),credits:e.credit}}catch(i){return{state:"rejected",reason:i}}}async function gAt(e,t,n){let i=e._searchText;if(Sxe(i)){e.showSuggestions();return}e._isSearchInProgress=!0,e._wasGeocodeCancelled=!1;let r,o;for(r=0;r<t.length;r++){if(e._wasGeocodeCancelled)return;if(o=await _At(t[r],i,n),u(o)&&o.state==="fulfilled"&&o.value.length>0)break}if(e._wasGeocodeCancelled)return;e._isSearchInProgress=!1,UK(e);let s=o.value;if(o.state==="fulfilled"&&u(s)&&s.length>0){e._searchText=s[0].displayName,e.destinationFound(e,s[0].destination);let a=bxe(e,ZS.getCreditsFromResult(s[0]));u(a)||FK(e,t[r].credit);return}e._searchText=`${i} (not found)`}function FK(e,t){u(t)&&!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&(e._scene.frameState.creditDisplay.addStaticCredit(t),e._previousCredits.push(t))}function bxe(e,t){return u(t)&&t.forEach(n=>FK(e,n)),t}function UK(e){!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&e._previousCredits.forEach(t=>{e._scene.frameState.creditDisplay.removeStaticCredit(t)}),e._previousCredits.length=0}function yAt(e,t){let n=wn(e._viewContainer),i=n.getElementsByClassName("search-results")[0],o=n.getElementsByTagName("li")[t];if(t===0){i.scrollTop=0;return}let s=o.offsetTop;s+o.clientHeight>i.clientHeight?i.scrollTop=s+o.clientHeight:s<i.scrollTop&&(i.scrollTop=s)}function AAt(e){e._isSearchInProgress&&(e._isSearchInProgress=!1,e._wasGeocodeCancelled=!0)}function Sxe(e){return/^\s*$/.test(e)}function vxe(e){Ce.getObservable(e,"_suggestions").removeAll()}async function xAt(e){if(!e.autoComplete)return;let t=e._searchText;if(vxe(e),UK(e),!Sxe(t))for(let n of e._geocoderServices){let i=await n.geocode(t,u0.AUTOCOMPLETE);if(e._suggestions=e._suggestions.concat(i),i.length>0){let r=!0;i.forEach(o=>{let s=ZS.getCreditsFromResult(o);r=r&&!u(s),bxe(e,s)}),r&&FK(e,n.credit)}if(e._suggestions.length>=5)return}}Qf.flyToDestination=pAt;Qf._updateSearchSuggestions=xAt;Qf._adjustSuggestionsScroll=yAt;Qf.prototype.isDestroyed=function(){return!1};Qf.prototype.destroy=function(){return UK(this),ue(this)};var F2=Qf;var CAt="M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",TAt="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z";function zH(e){let t=wn(e.container),n=new F2(e);n._startSearchPath=CAt,n._stopSearchPath=TAt;let i=document.createElement("form");i.setAttribute("data-bind","submit: search");let r=document.createElement("input");r.type="search",r.className="cesium-geocoder-input",r.setAttribute("placeholder","Enter an address or landmark..."),r.setAttribute("data-bind",'textInput: searchText,disable: isSearchInProgress,event: { keyup: handleKeyUp, keydown: handleKeyDown, mouseover: deselectSuggestion },css: { "cesium-geocoder-input-wide" : keepExpanded || searchText.length > 0 },hasFocus: _focusTextbox'),this._onTextBoxFocus=function(){setTimeout(function(){r.select()},0)},r.addEventListener("focus",this._onTextBoxFocus,!1),i.appendChild(r),this._textBox=r;let o=document.createElement("span");o.className="cesium-geocoder-searchButton",o.setAttribute("data-bind","click: search,cesiumSvgPath: { path: isSearchInProgress ? _stopSearchPath : _startSearchPath, width: 32, height: 32 }"),i.appendChild(o),t.appendChild(i);let s=document.createElement("div");s.className="search-results",s.setAttribute("data-bind","visible: _suggestionsVisible");let a=document.createElement("ul");a.setAttribute("data-bind","foreach: _suggestions");let c=document.createElement("li");a.appendChild(c),c.setAttribute("data-bind","text: $data.displayName, click: $parent.activateSuggestion, event: { mouseover: $parent.handleMouseover}, css: { active: $data === $parent._selectedSuggestion }"),s.appendChild(a),t.appendChild(s),Ce.applyBindings(n,i),Ce.applyBindings(n,s),this._container=t,this._searchSuggestionsContainer=s,this._viewModel=n,this._form=i,this._onInputBegin=function(l){let f=l.target;typeof l.composedPath=="function"&&(f=l.composedPath()[0]),t.contains(f)||(n._focusTextbox=!1,n.hideSuggestions())},this._onInputEnd=function(l){n._focusTextbox=!0,n.showSuggestions()},Ht.supportsPointerEvents()?(document.addEventListener("pointerdown",this._onInputBegin,!0),t.addEventListener("pointerup",this._onInputEnd,!0),t.addEventListener("pointercancel",this._onInputEnd,!0)):(document.addEventListener("mousedown",this._onInputBegin,!0),t.addEventListener("mouseup",this._onInputEnd,!0),document.addEventListener("touchstart",this._onInputBegin,!0),t.addEventListener("touchend",this._onInputEnd,!0),t.addEventListener("touchcancel",this._onInputEnd,!0))}Object.defineProperties(zH.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}});zH.prototype.isDestroyed=function(){return!1};zH.prototype.destroy=function(){let e=this._container;return Ht.supportsPointerEvents()?(document.removeEventListener("pointerdown",this._onInputBegin,!0),e.removeEventListener("pointerup",this._onInputEnd,!0)):(document.removeEventListener("mousedown",this._onInputBegin,!0),e.removeEventListener("mouseup",this._onInputEnd,!0),document.removeEventListener("touchstart",this._onInputBegin,!0),e.removeEventListener("touchend",this._onInputEnd,!0)),this._viewModel.destroy(),Ce.cleanNode(this._form),Ce.cleanNode(this._searchSuggestionsContainer),e.removeChild(this._form),e.removeChild(this._searchSuggestionsContainer),this._textBox.removeEventListener("focus",this._onTextBoxFocus,!1),ue(this)};var U2=zH;var EAt="M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4853444 22.104033 11.423165 24.0625 13.84375 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 8.975298 28.305952 7.03125 25.875 7.03125 L 13.84375 7.03125 z",bAt="M 27.34375 1.65625 L 5.28125 27.9375 L 8.09375 30.3125 L 30.15625 4.03125 L 27.34375 1.65625 z M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4724893 20.232036 9.5676108 20.7379 9.75 21.21875 L 21.65625 7.03125 L 13.84375 7.03125 z M 28.21875 7.71875 L 14.53125 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 9.8371439 29.456025 8.4902779 28.21875 7.71875 z";function VK(){this._cameraClicked=new ge,this._closeClicked=new ge,this.maxHeight=500,this.enableCamera=!1,this.isCameraTracking=!1,this.showInfo=!1,this.titleText="",this.description="",Ce.track(this,["showInfo","titleText","description","maxHeight","enableCamera","isCameraTracking"]),this._loadingIndicatorHtml='<div class="cesium-infoBox-loadingContainer"><span class="cesium-infoBox-loading"></span></div>',this.cameraIconPath=void 0,Ce.defineProperty(this,"cameraIconPath",{get:function(){return!this.enableCamera||this.isCameraTracking?bAt:EAt}}),Ce.defineProperty(this,"_bodyless",{get:function(){return!u(this.description)||this.description.length===0}})}VK.prototype.maxHeightOffset=function(e){return`${this.maxHeight-e}px`};Object.defineProperties(VK.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}});var V2=VK;function HH(e){e=wn(e);let t=document.createElement("div");t.className="cesium-infoBox",t.setAttribute("data-bind",'css: { "cesium-infoBox-visible" : showInfo, "cesium-infoBox-bodyless" : _bodyless }'),e.appendChild(t);let n=document.createElement("div");n.className="cesium-infoBox-title",n.setAttribute("data-bind","text: titleText"),t.appendChild(n);let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-infoBox-camera",i.setAttribute("data-bind",'attr: { title: "Focus camera on object" },click: function () { cameraClicked.raiseEvent(this); },enable: enableCamera,cesiumSvgPath: { path: cameraIconPath, width: 32, height: 32 }'),t.appendChild(i);let r=document.createElement("button");r.type="button",r.className="cesium-infoBox-close",r.setAttribute("data-bind","click: function () { closeClicked.raiseEvent(this); }"),r.innerHTML="×",t.appendChild(r);let o=document.createElement("iframe");o.className="cesium-infoBox-iframe",o.setAttribute("sandbox","allow-same-origin allow-popups allow-forms"),o.setAttribute("data-bind","style : { maxHeight : maxHeightOffset(40) }"),o.setAttribute("allowfullscreen",!0),t.appendChild(o);let s=new V2;Ce.applyBindings(s,t),this._container=e,this._element=t,this._frame=o,this._viewModel=s,this._descriptionSubscription=void 0;let a=this;o.addEventListener("load",function(){let c=o.contentDocument,l=c.createElement("link");l.href=$t("Widgets/InfoBox/InfoBoxDescription.css"),l.rel="stylesheet",l.type="text/css";let f=c.createElement("div");f.className="cesium-infoBox-description",c.head.appendChild(l),c.body.appendChild(f),a._descriptionSubscription=la(s,"description",function(d){o.style.height="5px",f.innerHTML=d;let p=null,g=f.firstElementChild;if(g!==null&&f.childNodes.length===1){let A=window.getComputedStyle(g);if(A!==null){let x=A["background-color"],C=z.fromCssColorString(x);u(C)&&C.alpha!==0&&(p=A["background-color"])}}t.style["background-color"]=p;let m=f.getBoundingClientRect().height;o.style.height=`${m}px`})}),o.setAttribute("src","about:blank")}Object.defineProperties(HH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}});HH.prototype.isDestroyed=function(){return!1};HH.prototype.destroy=function(){let e=this._container;return Ce.cleanNode(this._element),e.removeChild(this._element),u(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),ue(this)};var k2=HH;function wxe(){this.showInstructions=!1;let e=this;this._command=Cn(function(){e.showInstructions=!e.showInstructions}),this._showClick=Cn(function(){e._touch=!1}),this._showTouch=Cn(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",Ce.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties(wxe.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});var z2=wxe;function GH(e){let t=wn(e.container),n=new z2,i=y(e.instructionsInitiallyVisible,!1);n.showInstructions=i,n._svgPath="M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z";let r=document.createElement("span");r.className="cesium-navigationHelpButton-wrapper",t.appendChild(r);let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button cesium-navigation-help-button",o.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 32, height: 32 }"),r.appendChild(o);let s=document.createElement("div");s.className="cesium-navigation-help",s.setAttribute("data-bind",'css: { "cesium-navigation-help-visible" : showInstructions}'),r.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-navigation-button cesium-navigation-button-left",a.setAttribute("data-bind",'click: showClick, css: {"cesium-navigation-button-selected": !_touch, "cesium-navigation-button-unselected": _touch}');let c=document.createElement("img");c.src=$t("Widgets/Images/NavigationHelp/Mouse.svg"),c.className="cesium-navigation-button-icon",c.style.width="25px",c.style.height="25px",a.appendChild(c),a.appendChild(document.createTextNode("Mouse"));let l=document.createElement("button");l.type="button",l.className="cesium-navigation-button cesium-navigation-button-right",l.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');let f=document.createElement("img");f.src=$t("Widgets/Images/NavigationHelp/Touch.svg"),f.className="cesium-navigation-button-icon",f.style.width="25px",f.style.height="25px",l.appendChild(f),l.appendChild(document.createTextNode("Touch")),s.appendChild(a),s.appendChild(l);let d=document.createElement("div");d.className="cesium-click-navigation-help cesium-navigation-help-instructions",d.setAttribute("data-bind",'css: { "cesium-click-navigation-help-visible" : !_touch}'),d.innerHTML=` <table> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/MouseLeft.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">Left click + drag</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/MouseRight.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Right click + drag, or</div> <div class="cesium-navigation-help-details">Mouse wheel scroll</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/MouseMiddle.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Rotate view</div> <div class="cesium-navigation-help-details">Middle click + drag, or</div> <div class="cesium-navigation-help-details">CTRL + Left/Right click + drag</div> </td> </tr> </table>`,s.appendChild(d);let p=document.createElement("div");p.className="cesium-touch-navigation-help cesium-navigation-help-instructions",p.setAttribute("data-bind",'css: { "cesium-touch-navigation-help-visible" : _touch}'),p.innerHTML=` <table> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchDrag.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">One finger drag</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchZoom.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Two finger pinch</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchTilt.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Tilt view</div> <div class="cesium-navigation-help-details">Two finger drag, same direction</div> </td> </tr> <tr> <td><img src="${$t("Widgets/Images/NavigationHelp/TouchRotate.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-tilt">Rotate view</div> <div class="cesium-navigation-help-details">Two finger drag, opposite direction</div> </td> </tr> </table>`,s.appendChild(p),Ce.applyBindings(n,r),this._container=t,this._viewModel=n,this._wrapper=r,this._closeInstructions=function(g){r.contains(g.target)||(n.showInstructions=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(GH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});GH.prototype.isDestroyed=function(){return!1};GH.prototype.destroy=function(){return Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),Ce.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var H2=GH;function kK(e){this._scene=e.scene,this.lowFrameRateMessage=y(e.lowFrameRateMessage,"This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers."),this.lowFrameRateMessageDismissed=!1,this.showingLowFrameRateMessage=!1,Ce.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);let t=this;this._dismissMessage=Cn(function(){t.showingLowFrameRateMessage=!1,t.lowFrameRateMessageDismissed=!0});let n=CF.fromScene(e.scene);this._unsubscribeLowFrameRate=n.lowFrameRate.addEventListener(function(){t.lowFrameRateMessageDismissed||(t.showingLowFrameRateMessage=!0)}),this._unsubscribeNominalFrameRate=n.nominalFrameRate.addEventListener(function(){t.showingLowFrameRateMessage=!1})}Object.defineProperties(kK.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}});kK.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),ue(this)};var G2=kK;function WH(e){let t=wn(e.container),n=new G2(e),i=document.createElement("div");i.className="cesium-performance-watchdog-message-area",i.setAttribute("data-bind","visible: showingLowFrameRateMessage");let r=document.createElement("button");r.setAttribute("type","button"),r.className="cesium-performance-watchdog-message-dismiss",r.innerHTML="×",r.setAttribute("data-bind","click: dismissMessage"),i.appendChild(r);let o=document.createElement("div");o.className="cesium-performance-watchdog-message",o.setAttribute("data-bind","html: lowFrameRateMessage"),i.appendChild(o),t.appendChild(i),Ce.applyBindings(n,i),this._container=t,this._viewModel=n,this._element=i}Object.defineProperties(WH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});WH.prototype.isDestroyed=function(){return!1};WH.prototype.destroy=function(){return this._viewModel.destroy(),Ce.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var W2=WH;function jH(e){this._scene=e,this._orthographic=e.camera.frustum instanceof en,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=e.mode,Ce.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);let t=this;Ce.defineProperty(this,"selectedTooltip",function(){return t._orthographic?t.tooltipOrthographic:t.tooltipPerspective}),this._toggleDropDown=Cn(function(){t.sceneMode===ne.SCENE2D||t._flightInProgress||(t.dropDownVisible=!t.dropDownVisible)}),this._eventHelper=new Po,this._eventHelper.add(e.morphComplete,function(n,i,r,o){t.sceneMode=r,t._orthographic=r===ne.SCENE2D||t._scene.camera.frustum instanceof en}),this._eventHelper.add(e.preRender,function(){t._flightInProgress=u(e.camera._currentFlight)}),this._switchToPerspective=Cn(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToPerspectiveFrustum(),t._orthographic=!1,t.dropDownVisible=!1)}),this._switchToOrthographic=Cn(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToOrthographicFrustum(),t._orthographic=!0,t.dropDownVisible=!1)}),this._sceneMode=ne}Object.defineProperties(jH.prototype,{scene:{get:function(){return this._scene}},toggleDropDown:{get:function(){return this._toggleDropDown}},switchToPerspective:{get:function(){return this._switchToPerspective}},switchToOrthographic:{get:function(){return this._switchToOrthographic}},isOrthographicProjection:{get:function(){return this._orthographic}}});jH.prototype.isDestroyed=function(){return!1};jH.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var j2=jH;var SAt="M 28.15625,10.4375 9.125,13.21875 13.75,43.25 41.75,55.09375 50.8125,37 54.5,11.9375 z m 0.125,3 19.976451,0.394265 L 43.03125,16.875 22.6875,14.28125 z M 50.971746,15.705477 47.90625,36.03125 42.53125,46 44.84375,19.3125 z M 12.625,16.03125 l 29.15625,3.6875 -2.65625,31 L 16.4375,41.125 z",vAt="m 31.560594,6.5254438 -20.75,12.4687502 0.1875,24.5625 22.28125,11.8125 19.5,-12 0.65625,-0.375 0,-0.75 0.0312,-23.21875 z m 0.0625,3.125 16.65625,9.5000002 -16.125,10.28125 -17.34375,-9.71875 z m 18.96875,11.1875002 0.15625,20.65625 -17.46875,10.59375 0.15625,-20.28125 z m -37.0625,1.25 17.21875,9.625 -0.15625,19.21875 -16.9375,-9 z";function qH(e,t){e=wn(e);let n=new j2(t);n._perspectivePath=SAt,n._orthographicPath=vAt;let i=document.createElement("span");i.className="cesium-projectionPicker-wrapper cesium-toolbar-button",e.appendChild(i);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button",r.setAttribute("data-bind",'css: { "cesium-projectionPicker-buttonPerspective": !_orthographic, "cesium-projectionPicker-buttonOrthographic": _orthographic, "cesium-button-disabled" : sceneMode === _sceneMode.SCENE2D || _flightInProgress, "cesium-projectionPicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),r.innerHTML='<!-- ko cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64, css: "cesium-projectionPicker-iconPerspective" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64, css: "cesium-projectionPicker-iconOrthographic" } --><!-- /ko -->',i.appendChild(r);let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",o.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && _orthographic), "cesium-projectionPicker-none" : !_orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible },attr: { title: tooltipPerspective },click: switchToPerspective,cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64 }'),i.appendChild(o);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && !_orthographic), "cesium-projectionPicker-none" : _orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible},attr: { title: tooltipOrthographic },click: switchToOrthographic,cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64 }'),i.appendChild(s),Ce.applyBindings(n,i),this._viewModel=n,this._container=e,this._wrapper=i,this._closeDropDown=function(a){i.contains(a.target)||(n.dropDownVisible=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(qH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});qH.prototype.isDestroyed=function(){return!1};qH.prototype.destroy=function(){return this._viewModel.destroy(),Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Ce.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var q2=qH;function YH(e,t){this._scene=e;let n=this,i=function(r,o,s,a){n.sceneMode=s,n.dropDownVisible=!1};this._eventHelper=new Po,this._eventHelper.add(e.morphStart,i),this._duration=y(t,2),this.sceneMode=e.mode,this.dropDownVisible=!1,this.tooltip2D="2D",this.tooltip3D="3D",this.tooltipColumbusView="Columbus View",Ce.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,Ce.defineProperty(this,"selectedTooltip",function(){let r=n.sceneMode;return r===ne.SCENE2D?n.tooltip2D:r===ne.SCENE3D?n.tooltip3D:n.tooltipColumbusView}),this._toggleDropDown=Cn(function(){n.dropDownVisible=!n.dropDownVisible}),this._morphTo2D=Cn(function(){e.morphTo2D(n._duration)}),this._morphTo3D=Cn(function(){e.morphTo3D(n._duration)}),this._morphToColumbusView=Cn(function(){e.morphToColumbusView(n._duration)}),this._sceneMode=ne}Object.defineProperties(YH.prototype,{scene:{get:function(){return this._scene}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}},toggleDropDown:{get:function(){return this._toggleDropDown}},morphTo2D:{get:function(){return this._morphTo2D}},morphTo3D:{get:function(){return this._morphTo3D}},morphToColumbusView:{get:function(){return this._morphToColumbusView}}});YH.prototype.isDestroyed=function(){return!1};YH.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var Y2=YH;var wAt="m 32.401392,4.9330437 c -7.087603,0 -14.096095,2.884602 -19.10793,7.8946843 -5.0118352,5.010083 -7.9296167,11.987468 -7.9296167,19.072999 0,7.085531 2.9177815,14.097848 7.9296167,19.107931 4.837653,4.835961 11.541408,7.631372 18.374354,7.82482 0.05712,0.01231 0.454119,0.139729 0.454119,0.139729 l 0.03493,-0.104797 c 0.08246,7.84e-4 0.162033,0.03493 0.244525,0.03493 0.08304,0 0.161515,-0.03414 0.244526,-0.03493 l 0.03493,0.104797 c 0,0 0.309474,-0.129487 0.349323,-0.139729 6.867765,-0.168094 13.582903,-2.965206 18.444218,-7.82482 2.558195,-2.5573 4.551081,-5.638134 5.903547,-8.977584 1.297191,-3.202966 2.02607,-6.661489 2.02607,-10.130347 0,-6.237309 -2.366261,-12.31219 -6.322734,-17.116794 -0.0034,-0.02316 0.0049,-0.04488 0,-0.06986 -0.01733,-0.08745 -0.104529,-0.278855 -0.104797,-0.279458 -5.31e-4,-0.0012 -0.522988,-0.628147 -0.523984,-0.62878 -3.47e-4,-2.2e-4 -0.133444,-0.03532 -0.244525,-0.06987 C 51.944299,13.447603 51.751076,13.104317 51.474391,12.827728 46.462556,7.8176457 39.488996,4.9330437 32.401392,4.9330437 z m -2.130866,3.5281554 0.104797,9.6762289 c -4.111695,-0.08361 -7.109829,-0.423664 -9.257041,-0.943171 1.198093,-2.269271 2.524531,-4.124404 3.91241,-5.414496 2.167498,-2.0147811 3.950145,-2.8540169 5.239834,-3.3185619 z m 2.794579,0 c 1.280302,0.4754953 3.022186,1.3285948 5.065173,3.2486979 1.424667,1.338973 2.788862,3.303645 3.982275,5.728886 -2.29082,0.403367 -5.381258,0.621049 -8.942651,0.698645 L 33.065105,8.4611991 z m 5.728886,0.2445256 c 4.004072,1.1230822 7.793098,3.1481363 10.724195,6.0782083 0.03468,0.03466 0.07033,0.06991 0.104797,0.104797 -0.45375,0.313891 -0.923054,0.663002 -1.956205,1.082899 -0.647388,0.263114 -1.906242,0.477396 -2.829511,0.733577 -1.382296,-2.988132 -3.027146,-5.368585 -4.785716,-7.0213781 -0.422866,-0.397432 -0.835818,-0.6453247 -1.25756,-0.9781032 z m -15.33525,0.7685092 c -0.106753,0.09503 -0.207753,0.145402 -0.31439,0.244526 -1.684973,1.5662541 -3.298068,3.8232211 -4.680919,6.5672591 -0.343797,-0.14942 -1.035052,-0.273198 -1.292493,-0.419186 -0.956528,-0.542427 -1.362964,-1.022024 -1.537018,-1.292493 -0.0241,-0.03745 -0.01868,-0.0401 -0.03493,-0.06986 2.250095,-2.163342 4.948824,-3.869984 7.859752,-5.0302421 z m -9.641296,7.0912431 c 0.464973,0.571618 0.937729,1.169056 1.956205,1.746612 0.349907,0.198425 1.107143,0.335404 1.537018,0.523983 -1.20166,3.172984 -1.998037,7.051901 -2.165798,11.772162 C 14.256557,30.361384 12.934823,30.161483 12.280427,29.90959 10.644437,29.279855 9.6888882,28.674891 9.1714586,28.267775 8.6540289,27.860658 8.6474751,27.778724 8.6474751,27.778724 l -0.069864,0.03493 C 9.3100294,23.691285 11.163248,19.798527 13.817445,16.565477 z m 37.552149,0.523984 c 2.548924,3.289983 4.265057,7.202594 4.890513,11.318043 -0.650428,0.410896 -1.756876,1.001936 -3.563088,1.606882 -1.171552,0.392383 -3.163859,0.759153 -4.960377,1.117832 -0.04367,-4.752703 -0.784809,-8.591423 -1.88634,-11.807094 0.917574,-0.263678 2.170552,-0.486495 2.864443,-0.76851 1.274693,-0.518066 2.003942,-1.001558 2.654849,-1.467153 z m -31.439008,2.619917 c 2.487341,0.672766 5.775813,1.137775 10.479669,1.222628 l 0.104797,10.689263 0,0.03493 0,0.733577 c -5.435005,-0.09059 -9.512219,-0.519044 -12.610536,-1.117831 0.106127,-4.776683 0.879334,-8.55791 2.02607,-11.562569 z m 23.264866,0.31439 c 1.073459,3.067541 1.833795,6.821314 1.816476,11.702298 -3.054474,0.423245 -7.062018,0.648559 -11.702298,0.698644 l 0,-0.838373 -0.104796,-10.654331 c 4.082416,-0.0864 7.404468,-0.403886 9.990618,-0.908238 z M 8.2632205,30.922625 c 0.7558676,0.510548 1.5529563,1.013339 3.0041715,1.57195 0.937518,0.360875 2.612202,0.647642 3.91241,0.978102 0.112814,3.85566 0.703989,7.107756 1.606883,9.920754 -1.147172,-0.324262 -2.644553,-0.640648 -3.423359,-0.978102 -1.516688,-0.657177 -2.386627,-1.287332 -2.864443,-1.71168 -0.477816,-0.424347 -0.489051,-0.489051 -0.489051,-0.489051 L 9.8002387,40.319395 C 8.791691,37.621767 8.1584238,34.769583 8.1584238,31.900727 c 0,-0.330153 0.090589,-0.648169 0.1047967,-0.978102 z m 48.2763445,0.419186 c 0.0047,0.188973 0.06986,0.36991 0.06986,0.558916 0,2.938869 -0.620228,5.873558 -1.676747,8.628261 -0.07435,0.07583 -0.06552,0.07411 -0.454119,0.349323 -0.606965,0.429857 -1.631665,1.042044 -3.318562,1.676747 -1.208528,0.454713 -3.204964,0.850894 -5.135038,1.25756 0.84593,-2.765726 1.41808,-6.005357 1.606883,-9.815957 2.232369,-0.413371 4.483758,-0.840201 5.938479,-1.327425 1.410632,-0.472457 2.153108,-0.89469 2.96924,-1.327425 z m -38.530252,2.864443 c 3.208141,0.56697 7.372279,0.898588 12.575603,0.978103 l 0.174662,9.885821 c -4.392517,-0.06139 -8.106722,-0.320566 -10.863925,-0.803441 -1.051954,-2.664695 -1.692909,-6.043794 -1.88634,-10.060483 z m 26.793022,0.31439 c -0.246298,3.923551 -0.877762,7.263679 -1.816476,9.885822 -2.561957,0.361954 -5.766249,0.560708 -9.431703,0.62878 l -0.174661,-9.815957 c 4.491734,-0.04969 8.334769,-0.293032 11.42284,-0.698645 z M 12.035901,44.860585 c 0.09977,0.04523 0.105535,0.09465 0.209594,0.139729 1.337656,0.579602 3.441099,1.058072 5.589157,1.537018 1.545042,3.399208 3.548524,5.969402 5.589157,7.789888 -3.034411,-1.215537 -5.871615,-3.007978 -8.174142,-5.309699 -1.245911,-1.245475 -2.271794,-2.662961 -3.213766,-4.156936 z m 40.69605,0 c -0.941972,1.493975 -1.967855,2.911461 -3.213765,4.156936 -2.74253,2.741571 -6.244106,4.696717 -9.955686,5.868615 0.261347,-0.241079 0.507495,-0.394491 0.768509,-0.663713 1.674841,-1.727516 3.320792,-4.181056 4.645987,-7.265904 2.962447,-0.503021 5.408965,-1.122293 7.161107,-1.781544 0.284034,-0.106865 0.337297,-0.207323 0.593848,-0.31439 z m -31.404076,2.305527 c 2.645807,0.376448 5.701178,0.649995 9.466635,0.698645 l 0.139729,7.789888 c -1.38739,-0.480844 -3.316218,-1.29837 -5.659022,-3.388427 -1.388822,-1.238993 -2.743668,-3.0113 -3.947342,-5.100106 z m 20.365491,0.104797 c -1.04872,2.041937 -2.174337,3.779068 -3.353494,4.995309 -1.853177,1.911459 -3.425515,2.82679 -4.611055,3.353494 l -0.139729,-7.789887 c 3.13091,-0.05714 5.728238,-0.278725 8.104278,-0.558916 z",DAt="m 2.9825053,17.550598 0,1.368113 0,26.267766 0,1.368113 1.36811,0 54.9981397,0 1.36811,0 0,-1.368113 0,-26.267766 0,-1.368113 -1.36811,0 -54.9981397,0 -1.36811,0 z m 2.73623,2.736226 10.3292497,0 0,10.466063 -10.3292497,0 0,-10.466063 z m 13.0654697,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 10.32926,0 0,10.466063 -10.32926,0 0,-10.466063 z m -41.9326497,13.202288 10.3292497,0 0,10.329252 -10.3292497,0 0,-10.329252 z m 13.0654697,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 10.32926,0 0,10.329252 -10.32926,0 0,-10.329252 z",IAt="m 14.723969,17.675598 -0.340489,0.817175 -11.1680536,26.183638 -0.817175,1.872692 2.076986,0 54.7506996,0 2.07698,0 -0.81717,-1.872692 -11.16805,-26.183638 -0.34049,-0.817175 -0.91933,0 -32.414586,0 -0.919322,0 z m 1.838643,2.723916 6.196908,0 -2.928209,10.418977 -7.729111,0 4.460412,-10.418977 z m 9.02297,0 4.903049,0 0,10.418977 -7.831258,0 2.928209,-10.418977 z m 7.626964,0 5.584031,0 2.62176,10.418977 -8.205791,0 0,-10.418977 z m 8.410081,0 5.51593,0 4.46042,10.418977 -7.38863,0 -2.58772,-10.418977 z m -30.678091,13.142892 8.103649,0 -2.89416,10.282782 -9.6018026,0 4.3923136,-10.282782 z m 10.929711,0 8.614384,0 0,10.282782 -11.508544,0 2.89416,-10.282782 z m 11.338299,0 8.852721,0 2.58772,10.282782 -11.440441,0 0,-10.282782 z m 11.678781,0 7.86531,0 4.39231,10.282782 -9.6699,0 -2.58772,-10.282782 z";function XH(e,t,n){e=wn(e);let i=new Y2(t,n);i._globePath=wAt,i._flatMapPath=DAt,i._columbusViewPath=IAt;let r=document.createElement("span");r.className="cesium-sceneModePicker-wrapper cesium-toolbar-button",e.appendChild(r);let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button",o.setAttribute("data-bind",'css: { "cesium-sceneModePicker-button2D": sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-button3D": sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-buttonColumbusView": sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),o.innerHTML='<!-- ko cesiumSvgPath: { path: _globePath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon3D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon2D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-iconColumbusView" } --><!-- /ko -->',r.appendChild(o);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE3D)) || (!dropDownVisible && (sceneMode === _sceneMode.SCENE3D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip3D },click: morphTo3D,cesiumSvgPath: { path: _globePath, width: 64, height: 64 }'),r.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",a.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE2D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip2D },click: morphTo2D,cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64 }'),r.appendChild(a);let c=document.createElement("button");c.type="button",c.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",c.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.COLUMBUS_VIEW)) || (!dropDownVisible && (sceneMode === _sceneMode.COLUMBUS_VIEW)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-hidden" : !dropDownVisible},attr: { title: tooltipColumbusView },click: morphToColumbusView,cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64 }'),r.appendChild(c),Ce.applyBindings(i,r),this._viewModel=i,this._container=e,this._wrapper=r,this._closeDropDown=function(l){r.contains(l.target)||(i.dropDownVisible=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(XH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});XH.prototype.isDestroyed=function(){return!1};XH.prototype.destroy=function(){return this._viewModel.destroy(),Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Ce.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var X2=XH;var PAt=new H,KH="-1000px";function K2(e,t,n){this._scene=e,this._screenPositionX=KH,this._screenPositionY=KH,this._tweens=e.tweens,this._container=y(n,document.body),this._selectionIndicatorElement=t,this._scale=1,this.position=void 0,this.showSelection=!1,Ce.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,Ce.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&u(this.position)}}),Ce.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(i,r){return Zi.wgs84ToWindowCoordinates(e,i,r)}}K2.prototype.update=function(){if(this.showSelection&&u(this.position)){let e=this.computeScreenSpacePosition(this.position,PAt);if(!u(e))this._screenPositionX=KH,this._screenPositionY=KH;else{let t=this._container,n=t.parentNode.clientWidth,i=t.parentNode.clientHeight,r=this._selectionIndicatorElement.clientWidth,o=r*.5;e.x=Math.min(Math.max(e.x,-r),n+r)-o,e.y=Math.min(Math.max(e.y,-r),i+r)-o,this._screenPositionX=`${Math.floor(e.x+.25)}px`,this._screenPositionY=`${Math.floor(e.y+.25)}px`}}};K2.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:No.EXPONENTIAL_OUT})};K2.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:No.EXPONENTIAL_OUT})};Object.defineProperties(K2.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});var J2=K2;function JH(e,t){e=wn(e),this._container=e;let n=document.createElement("div");n.className="cesium-selection-wrapper",n.setAttribute("data-bind",'style: { "top" : _screenPositionY, "left" : _screenPositionX },css: { "cesium-selection-wrapper-visible" : isVisible }'),e.appendChild(n),this._element=n;let i="http://www.w3.org/2000/svg",r="M -34 -34 L -34 -11.25 L -30 -15.25 L -30 -30 L -15.25 -30 L -11.25 -34 L -34 -34 z M 11.25 -34 L 15.25 -30 L 30 -30 L 30 -15.25 L 34 -11.25 L 34 -34 L 11.25 -34 z M -34 11.25 L -34 34 L -11.25 34 L -15.25 30 L -30 30 L -30 15.25 L -34 11.25 z M 34 11.25 L 30 15.25 L 30 30 L 15.25 30 L 11.25 34 L 34 34 L 34 11.25 z",o=document.createElementNS(i,"svg:svg");o.setAttribute("width",160),o.setAttribute("height",160),o.setAttribute("viewBox","0 0 160 160");let s=document.createElementNS(i,"g");s.setAttribute("transform","translate(80,80)"),o.appendChild(s);let a=document.createElementNS(i,"path");a.setAttribute("data-bind","attr: { transform: _transform }"),a.setAttribute("d",r),s.appendChild(a),n.appendChild(o);let c=new J2(t,this._element,this._container);this._viewModel=c,Ce.applyBindings(this._viewModel,this._element)}Object.defineProperties(JH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});JH.prototype.isDestroyed=function(){return!1};JH.prototype.destroy=function(){let e=this._container;return Ce.cleanNode(this._element),e.removeChild(this._element),ue(this)};var Z2=JH;function jC(e,t,n){this._color=e,this._height=t,this._base=y(n,0)}jC.prototype.getHeight=function(){return this._height};jC.prototype.getBase=function(){return this._base};jC.prototype.getStartTime=function(){return this._start};jC.prototype.getStopTime=function(){return this._stop};jC.prototype.setRange=function(e,t){this._start=e,this._stop=t};jC.prototype.render=function(e){let t="";if(this._start&&this._stop&&this._color){let n=ee.secondsDifference(this._start,e.epochJulian),i=Math.round(e.timeBarWidth*e.getAlpha(n)),r=ee.secondsDifference(this._stop,e.epochJulian),o=Math.round(e.timeBarWidth*e.getAlpha(r))-i;i<0&&(o+=i,i=0),i+o>e.timeBarWidth&&(o=e.timeBarWidth-i),o>0&&(t=`<span class="cesium-timeline-highlight" style="left: ${i.toString()}px; width: ${o.toString()}px; bottom: ${this._base.toString()}px; height: ${this._height}px; background-color: ${this._color};"></span>`)}return t};var Q2=jC;function Dxe(e,t,n,i){this.interval=e,this.height=t,this.color=n||new z(.5,.5,.5,1),this.backgroundColor=i||new z(0,0,0,0)}Dxe.prototype.render=function(e,t){let n=this.interval.start,i=this.interval.stop,r=t.startJulian,o=ee.addSeconds(t.startJulian,t.duration,new ee);if(ee.lessThan(n,r)&&ee.greaterThan(i,o))e.fillStyle=this.color.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height);else if(ee.lessThanOrEquals(n,o)&&ee.greaterThanOrEquals(i,r)){let s,a,c;for(s=0;s<t.timeBarWidth;++s){let l=ee.addSeconds(t.startJulian,s/t.timeBarWidth*t.duration,new ee);!u(a)&&ee.greaterThanOrEquals(l,n)?a=s:!u(c)&&ee.greaterThanOrEquals(l,i)&&(c=s)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height),u(a)&&(u(c)||(c=t.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(a,t.y,Math.max(c-a,1),this.height))}};var $2=Dxe;var zK=1e12,$f={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},il={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},y0=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800,1296e3,2592e3,5184e3,7776e3,15552e3,31536e3,63072e3,126144e3,15768e4,31536e4,63072e4,126144e4,15768e5,31536e5,63072e5,126144e5,15768e6,31536e6],OAt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function rl(e,t){e=wn(e);let n=e.ownerDocument;this.container=e;let i=n.createElement("div");i.className="cesium-timeline-main",e.appendChild(i),this._topDiv=i,this._endJulian=void 0,this._epochJulian=void 0,this._lastXPos=void 0,this._scrubElement=void 0,this._startJulian=void 0,this._timeBarSecondsSpan=void 0,this._clock=t,this._scrubJulian=t.currentTime,this._mainTicSpan=-1,this._mouseMode=$f.none,this._touchMode=il.none,this._touchState={centerX:0,spanX:0},this._mouseX=0,this._timelineDrag=0,this._timelineDragLocation=void 0,this._lastHeight=void 0,this._lastWidth=void 0,this._topDiv.innerHTML='<div class="cesium-timeline-bar"></div><div class="cesium-timeline-trackContainer"><canvas class="cesium-timeline-tracks" width="10" height="1"></canvas></div><div class="cesium-timeline-needle"></div><span class="cesium-timeline-ruler"></span>',this._timeBarEle=this._topDiv.childNodes[0],this._trackContainer=this._topDiv.childNodes[1],this._trackListEle=this._topDiv.childNodes[1].childNodes[0],this._needleEle=this._topDiv.childNodes[2],this._rulerEle=this._topDiv.childNodes[3],this._context=this._trackListEle.getContext("2d"),this._trackList=[],this._highlightRanges=[],this.zoomTo(t.startTime,t.stopTime),this._onMouseDown=MAt(this),this._onMouseUp=RAt(this),this._onMouseMove=BAt(this),this._onMouseWheel=LAt(this),this._onTouchStart=NAt(this),this._onTouchMove=UAt(this),this._onTouchEnd=FAt(this);let r=this._timeBarEle;n.addEventListener("mouseup",this._onMouseUp,!1),n.addEventListener("mousemove",this._onMouseMove,!1),r.addEventListener("mousedown",this._onMouseDown,!1),r.addEventListener("DOMMouseScroll",this._onMouseWheel,!1),r.addEventListener("mousewheel",this._onMouseWheel,!1),r.addEventListener("touchstart",this._onTouchStart,!1),r.addEventListener("touchmove",this._onTouchMove,!1),r.addEventListener("touchend",this._onTouchEnd,!1),r.addEventListener("touchcancel",this._onTouchEnd,!1),this._topDiv.oncontextmenu=function(){return!1},t.onTick.addEventListener(this.updateFromClock,this),this.updateFromClock()}rl.prototype.addEventListener=function(e,t,n){this._topDiv.addEventListener(e,t,n)};rl.prototype.removeEventListener=function(e,t,n){this._topDiv.removeEventListener(e,t,n)};rl.prototype.isDestroyed=function(){return!1};rl.prototype.destroy=function(){this._clock.onTick.removeEventListener(this.updateFromClock,this);let e=this.container.ownerDocument;e.removeEventListener("mouseup",this._onMouseUp,!1),e.removeEventListener("mousemove",this._onMouseMove,!1);let t=this._timeBarEle;t.removeEventListener("mousedown",this._onMouseDown,!1),t.removeEventListener("DOMMouseScroll",this._onMouseWheel,!1),t.removeEventListener("mousewheel",this._onMouseWheel,!1),t.removeEventListener("touchstart",this._onTouchStart,!1),t.removeEventListener("touchmove",this._onTouchMove,!1),t.removeEventListener("touchend",this._onTouchEnd,!1),t.removeEventListener("touchcancel",this._onTouchEnd,!1),this.container.removeChild(this._topDiv),ue(this)};rl.prototype.addHighlightRange=function(e,t,n){let i=new Q2(e,t,n);return this._highlightRanges.push(i),this.resize(),i};rl.prototype.addTrack=function(e,t,n,i){let r=new $2(e,t,n,i);return this._trackList.push(r),this._lastHeight=void 0,this.resize(),r};rl.prototype.zoomTo=function(e,t){if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=ee.secondsDifference(t,e),this._clock&&this._clock.clockRange!==Lo.UNBOUNDED){let i=this._clock.startTime,r=this._clock.stopTime,o=ee.secondsDifference(r,i),s=ee.secondsDifference(i,this._startJulian),a=ee.secondsDifference(r,this._endJulian);this._timeBarSecondsSpan>=o?(this._timeBarSecondsSpan=o,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):s>0?(this._endJulian=ee.addSeconds(this._endJulian,s,new ee),this._startJulian=i,this._timeBarSecondsSpan=ee.secondsDifference(this._endJulian,this._startJulian)):a<0&&(this._startJulian=ee.addSeconds(this._startJulian,a,new ee),this._endJulian=r,this._timeBarSecondsSpan=ee.secondsDifference(this._endJulian,this._startJulian))}this._makeTics();let n=document.createEvent("Event");n.initEvent("setzoom",!0,!0),n.startJulian=this._startJulian,n.endJulian=this._endJulian,n.epochJulian=this._epochJulian,n.totalSpan=this._timeBarSecondsSpan,n.mainTicSpan=this._mainTicSpan,this._topDiv.dispatchEvent(n)};rl.prototype.zoomFrom=function(e){let t=ee.secondsDifference(this._scrubJulian,this._startJulian);e>1||t<0||t>this._timeBarSecondsSpan?t=this._timeBarSecondsSpan*.5:t+=t-this._timeBarSecondsSpan*.5;let n=this._timeBarSecondsSpan-t;this.zoomTo(ee.addSeconds(this._startJulian,t-t*e,new ee),ee.addSeconds(this._endJulian,n*e-n,new ee))};function HK(e){return e<10?`0${e.toString()}`:e.toString()}rl.prototype.makeLabel=function(e){let t=ee.toGregorianDate(e),n=t.millisecond,i=" UTC";if(n>0&&this._timeBarSecondsSpan<3600){for(i=Math.floor(n).toString();i.length<3;)i=`0${i}`;i=`.${i}`}return`${OAt[t.month-1]} ${t.day} ${t.year} ${HK(t.hour)}:${HK(t.minute)}:${HK(t.second)}${i}`};rl.prototype.smallestTicInPixels=7;rl.prototype._makeTics=function(){let e=this._timeBarEle,t=ee.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan),i=n-8,r,o=this;this._needleEle.style.left=`${n.toString()}px`;let s="",a=.01,c=31536e6,l=1e-10,f=0,d=this._timeBarSecondsSpan;d<a?(d=a,this._timeBarSecondsSpan=a,this._endJulian=ee.addSeconds(this._startJulian,a,new ee)):d>c&&(d=c,this._timeBarSecondsSpan=c,this._endJulian=ee.addSeconds(this._startJulian,c,new ee));let p=this._timeBarEle.clientWidth;p<10&&(p=10);let g=this._startJulian,m=Math.min(d/p*1e-5,.4),A,x=ee.toGregorianDate(g);d>31536e4?A=ee.fromDate(new Date(Date.UTC(Math.floor(x.year/100)*100,0))):d>31536e3?A=ee.fromDate(new Date(Date.UTC(Math.floor(x.year/10)*10,0))):d>86400?A=ee.fromDate(new Date(Date.UTC(x.year,0))):A=ee.fromDate(new Date(Date.UTC(x.year,x.month,x.day)));let C=ee.secondsDifference(this._startJulian,ee.addSeconds(A,m,new ee)),T=C+d;this._epochJulian=A;function E(U){return Math.floor(C/U)*U}function S(U,Y){return Math.ceil(U/Y+.5)*Y}function v(U){return(U-C)/d}function D(U,Y){return U-Y*Math.round(U/Y)}this._rulerEle.innerHTML=this.makeLabel(ee.addSeconds(this._endJulian,-a,new ee));let M=this._rulerEle.offsetWidth+20;M<30&&(M=180);let O=f;f-=l;let B={startTime:C,startJulian:g,epochJulian:A,duration:d,timeBarWidth:p,getAlpha:v};this._highlightRanges.forEach(function(U){s+=U.render(B)});let L=0,_=0,b=0,w=M/p;w>1&&(w=1),w*=this._timeBarSecondsSpan;let I=-1,R=-1,F=y0.length,k;for(k=0;k<F;++k){let U=y0[k];if(++I,L=U,U>w&&U>f)break;R<0&&p*(U/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(R=I)}if(I>0){for(;I>0;)if(--I,Math.abs(D(L,y0[I]))<1e-5){y0[I]>=f&&(_=y0[I]);break}if(R>=0)for(;R<I;){if(Math.abs(D(_,y0[R]))<1e-5&&y0[R]>=f){b=y0[R];break}++R}}f=O,f>l&&b<1e-5&&Math.abs(f-L)>l&&(b=f,f<=L+l&&(_=0));let V=-999999,G;if(p*(b/this._timeBarSecondsSpan)>=3)for(r=E(b);r<=T;r=S(r,b))s+=`<span class="cesium-timeline-ticTiny" style="left: ${Math.round(p*v(r)).toString()}px;"></span>`;if(p*(_/this._timeBarSecondsSpan)>=3)for(r=E(_);r<=T;r=S(r,_))s+=`<span class="cesium-timeline-ticSub" style="left: ${Math.round(p*v(r)).toString()}px;"></span>`;if(p*(L/this._timeBarSecondsSpan)>=2){this._mainTicSpan=L,T+=L,r=E(L);let U=ee.computeTaiMinusUtc(A);for(;r<=T;){let Y=ee.addSeconds(g,r-C,new ee);if(L>2.1){let K=ee.computeTaiMinusUtc(Y);Math.abs(K-U)>.1&&(r+=K-U,Y=ee.addSeconds(g,r-C,new ee))}let W=Math.round(p*v(r)),Z=this.makeLabel(Y);this._rulerEle.innerHTML=Z,G=this._rulerEle.offsetWidth,G<10&&(G=M);let j=W-(G/2-1);j>V?(V=j+G+5,s+=`<span class="cesium-timeline-ticMain" style="left: ${W.toString()}px;"></span><span class="cesium-timeline-ticLabel" style="left: ${j.toString()}px;">${Z}</span>`):s+=`<span class="cesium-timeline-ticSub" style="left: ${W.toString()}px;"></span>`,r=S(r,L)}}else this._mainTicSpan=-1;s+=`<span class="cesium-timeline-icon16" style="left:${i}px;bottom:0;background-position: 0 0;"></span>`,e.innerHTML=s,this._scrubElement=e.lastChild,this._context.clearRect(0,0,this._trackListEle.width,this._trackListEle.height),B.y=0,this._trackList.forEach(function(U){U.render(o._context,B),B.y+=U.height})};rl.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;let e=this._scrubElement;if(u(this._scrubElement)){let t=ee.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan);this._lastXPos!==n&&(this._lastXPos=n,e.style.left=`${n-8}px`,this._needleEle.style.left=`${n}px`)}u(this._timelineDragLocation)&&(this._setTimeBarTime(this._timelineDragLocation,this._timelineDragLocation*this._timeBarSecondsSpan/this._topDiv.clientWidth),this.zoomTo(ee.addSeconds(this._startJulian,this._timelineDrag,new ee),ee.addSeconds(this._endJulian,this._timelineDrag,new ee)))};rl.prototype._setTimeBarTime=function(e,t){if(e=Math.round(e),this._scrubJulian=ee.addSeconds(this._startJulian,t,new ee),this._scrubElement){let i=e-8;this._scrubElement.style.left=`${i.toString()}px`,this._needleEle.style.left=`${e.toString()}px`}let n=document.createEvent("Event");n.initEvent("settime",!0,!0),n.clientX=e,n.timeSeconds=t,n.timeJulian=this._scrubJulian,n.clock=this._clock,this._topDiv.dispatchEvent(n)};function MAt(e){return function(t){e._mouseMode!==$f.touchOnly&&(t.button===0?(e._mouseMode=$f.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,t.button===2?e._mouseMode=$f.zoom:e._mouseMode=$f.slide)),t.preventDefault()}}function RAt(e){return function(t){e._mouseMode=$f.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function BAt(e){return function(t){let n;if(e._mouseMode===$f.scrub){t.preventDefault();let i=t.clientX-e._topDiv.getBoundingClientRect().left;i<0?(e._timelineDragLocation=0,e._timelineDrag=-.01*e._timeBarSecondsSpan):i>e._topDiv.clientWidth?(e._timelineDragLocation=e._topDiv.clientWidth,e._timelineDrag=.01*e._timeBarSecondsSpan):(e._timelineDragLocation=void 0,e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))}else if(e._mouseMode===$f.slide){if(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0){let i=n*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(ee.addSeconds(e._startJulian,i,new ee),ee.addSeconds(e._endJulian,i,new ee))}}else e._mouseMode===$f.zoom&&(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0&&e.zoomFrom(Math.pow(1.01,n)))}}function LAt(e){return function(t){let n=t.wheelDeltaY||t.wheelDelta||-t.detail;zK=Math.max(Math.min(Math.abs(n),zK),1),n/=zK,e.zoomFrom(Math.pow(1.05,-n))}}function NAt(e){return function(t){let n=t.touches.length,i,r,o=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=$f.touchOnly,n===1?(i=ee.secondsDifference(e._scrubJulian,e._startJulian),r=Math.round(i*e._topDiv.clientWidth/e._timeBarSecondsSpan+o),Math.abs(t.touches[0].clientX-r)<50?(e._touchMode=il.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=n===1?"-16px 0":"0 0")):(e._touchMode=il.singleTap,e._touchState.centerX=t.touches[0].clientX-o)):n===2?(e._touchMode=il.slideZoom,e._touchState.centerX=(t.touches[0].clientX+t.touches[1].clientX)*.5-o,e._touchState.spanX=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):e._touchMode=il.ignore}}function FAt(e){return function(t){let n=t.touches.length,i=e._topDiv.getBoundingClientRect().left;e._touchMode===il.singleTap?(e._touchMode=il.scrub,e._onTouchMove(t)):e._touchMode===il.scrub&&e._onTouchMove(t),e._mouseMode=$f.touchOnly,n!==1?e._touchMode=n>0?il.ignore:il.none:e._touchMode===il.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-i),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function UAt(e){return function(t){let n,i,r,o,s,a,c=1,l=e._topDiv.getBoundingClientRect().left;e._touchMode===il.singleTap&&(e._touchMode=il.slideZoom),e._mouseMode=$f.touchOnly,e._touchMode===il.scrub?(t.preventDefault(),t.changedTouches.length===1&&(i=t.changedTouches[0].clientX-l,i>=0&&i<=e._topDiv.clientWidth&&e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===il.slideZoom&&(r=t.touches.length,r===2?(o=(t.touches[0].clientX+t.touches[1].clientX)*.5-l,s=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):r===1&&(o=t.touches[0].clientX-l,s=0),u(o)&&(s>0&&e._touchState.spanX>0?(c=e._touchState.spanX/s,a=ee.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-o*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new ee)):(n=e._touchState.centerX-o,a=ee.addSeconds(e._startJulian,n*e._timeBarSecondsSpan/e._topDiv.clientWidth,new ee)),e.zoomTo(a,ee.addSeconds(a,e._timeBarSecondsSpan*c,new ee)),e._touchState.centerX=o,e._touchState.spanX=s))}}rl.prototype.resize=function(){let e=this.container.clientWidth,t=this.container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;this._trackContainer.style.height=`${t}px`;let n=1;this._trackList.forEach(function(i){n+=i.height}),this._trackListEle.style.height=`${n.toString()}px`,this._trackListEle.width=this._trackListEle.clientWidth,this._trackListEle.height=n,this._makeTics(),this._lastXPos=void 0,this._lastWidth=e,this._lastHeight=t};var e3=rl;var Pxe=Yi(Ixe(),1);function VAt(e){let t=!1,n=window.screen;return u(n)&&(u(n.lockOrientation)?t=n.lockOrientation(e):u(n.mozLockOrientation)?t=n.mozLockOrientation(e):u(n.msLockOrientation)?t=n.msLockOrientation(e):u(n.orientation&&n.orientation.lock)&&(t=n.orientation.lock(e))),t}function Oxe(){let e=window.screen;u(e)&&(u(e.unlockOrientation)?e.unlockOrientation():u(e.mozUnlockOrientation)?e.mozUnlockOrientation():u(e.msUnlockOrientation)?e.msUnlockOrientation():u(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function kAt(e,t,n,i){i()||(n()?(t.useWebVR=!1,e._locked&&(Oxe(),e._locked=!1),e._noSleep.disable(),ho.exitFullscreen(),n(!1)):(ho.fullscreen||ho.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=VAt("landscape")),t.useWebVR=!0,n(!0)))}function ZH(e,t){let n=this,i=Ce.observable(ho.enabled),r=Ce.observable(!1);this.isVRMode=void 0,Ce.defineProperty(this,"isVRMode",{get:function(){return r()}}),this.isVREnabled=void 0,Ce.defineProperty(this,"isVREnabled",{get:function(){return i()},set:function(s){i(s&&ho.enabled)}}),this.tooltip=void 0,Ce.defineProperty(this,"tooltip",function(){return i()?r()?"Exit VR mode":"Enter VR mode":"VR mode is unavailable"});let o=Ce.observable(!1);this._isOrthographic=void 0,Ce.defineProperty(this,"_isOrthographic",{get:function(){return o()}}),this._eventHelper=new Po,this._eventHelper.add(e.preRender,function(){o(e.camera.frustum instanceof en)}),this._locked=!1,this._noSleep=new Pxe.default,this._command=Cn(function(){kAt(n,e,r,o)},Ce.getObservable(this,"isVREnabled")),this._vrElement=y(wn(t),document.body),this._callback=function(){!ho.fullscreen&&r()&&(e.useWebVR=!1,n._locked&&(Oxe(),n._locked=!1),n._noSleep.disable(),r(!1))},document.addEventListener(ho.changeEventName,this._callback)}Object.defineProperties(ZH.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}});ZH.prototype.isDestroyed=function(){return!1};ZH.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(ho.changeEventName,this._callback),ue(this)};var n3=ZH;var zAt="M 5.3125 6.375 C 4.008126 6.375 2.96875 7.4141499 2.96875 8.71875 L 2.96875 19.5 C 2.96875 20.8043 4.008126 21.875 5.3125 21.875 L 13.65625 21.875 C 13.71832 20.0547 14.845166 18.59375 16.21875 18.59375 C 17.592088 18.59375 18.71881 20.0552 18.78125 21.875 L 27.09375 21.875 C 28.398125 21.875 29.4375 20.8043 29.4375 19.5 L 29.4375 8.71875 C 29.4375 7.4141499 28.398125 6.375 27.09375 6.375 L 5.3125 6.375 z M 9.625 10.4375 C 11.55989 10.4375 13.125 12.03385 13.125 13.96875 C 13.125 15.90365 11.55989 17.46875 9.625 17.46875 C 7.69011 17.46875 6.125 15.90365 6.125 13.96875 C 6.125 12.03385 7.69011 10.4375 9.625 10.4375 z M 22.46875 10.4375 C 24.40364 10.4375 25.96875 12.03385 25.96875 13.96875 C 25.96875 15.90365 24.40364 17.46875 22.46875 17.46875 C 20.53386 17.46875 18.96875 15.90365 18.96875 13.96875 C 18.96875 12.03385 20.53386 10.4375 22.46875 10.4375 z",HAt="M 25.770585,2.4552065 C 15.72282,13.962707 10.699956,19.704407 8.1768352,22.580207 c -1.261561,1.4379 -1.902282,2.1427 -2.21875,2.5 -0.141624,0.1599 -0.208984,0.2355 -0.25,0.2813 l 0.6875,0.75 c 10e-5,-10e-5 0.679191,0.727 0.6875,0.7187 0.01662,-0.016 0.02451,-0.024 0.03125,-0.031 0.01348,-0.014 0.04013,-0.038 0.0625,-0.062 0.04474,-0.05 0.120921,-0.1315 0.28125,-0.3126 0.320657,-0.3619 0.956139,-1.0921 2.2187499,-2.5312 2.5252219,-2.8781 7.5454589,-8.6169 17.5937499,-20.1250005 l -1.5,-1.3125 z m -20.5624998,3.9063 c -1.304375,0 -2.34375,1.0391 -2.34375,2.3437 l 0,10.8125005 c 0,1.3043 1.039375,2.375 2.34375,2.375 l 2.25,0 c 1.9518039,-2.2246 7.4710958,-8.5584 13.5624998,-15.5312005 l -15.8124998,0 z m 21.1249998,0 c -1.855467,2.1245 -2.114296,2.4005 -3.59375,4.0936995 1.767282,0.1815 3.15625,1.685301 3.15625,3.500001 0,1.9349 -1.56511,3.5 -3.5,3.5 -1.658043,0 -3.043426,-1.1411 -3.40625,-2.6875 -1.089617,1.2461 -2.647139,2.9988 -3.46875,3.9375 0.191501,-0.062 0.388502,-0.094 0.59375,-0.094 1.373338,0 2.50006,1.4614 2.5625,3.2812 l 8.3125,0 c 1.304375,0 2.34375,-1.0707 2.34375,-2.375 l 0,-10.8125005 c 0,-1.3046 -1.039375,-2.3437 -2.34375,-2.3437 l -0.65625,0 z M 9.5518351,10.423906 c 1.9348899,0 3.4999999,1.596401 3.4999999,3.531301 0,1.9349 -1.56511,3.5 -3.4999999,3.5 -1.9348899,0 -3.4999999,-1.5651 -3.4999999,-3.5 0,-1.9349 1.56511,-3.531301 3.4999999,-3.531301 z m 4.2187499,10.312601 c -0.206517,0.2356 -0.844218,0.9428 -1.03125,1.1562 l 0.8125,0 c 0.01392,-0.4081 0.107026,-0.7968 0.21875,-1.1562 z";function QH(e,t,n){e=wn(e);let i=new n3(t,n);i._exitVRPath=HAt,i._enterVRPath=zAt;let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-vrButton",r.setAttribute("data-bind",'css: { "cesium-button-disabled" : _isOrthographic }, attr: { title: tooltip },click: command,enable: isVREnabled,cesiumSvgPath: { path: isVRMode ? _exitVRPath : _enterVRPath, width: 32, height: 32 }'),e.appendChild(r),Ce.applyBindings(i,r),this._container=e,this._viewModel=i,this._element=r}Object.defineProperties(QH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});QH.prototype.isDestroyed=function(){return!1};QH.prototype.destroy=function(){return this._viewModel.destroy(),Ce.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var i3=QH;var A0=new ae;function Bxe(e){let t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function GAt(e){let t=e.getPropertyIds(),n="";return t.forEach(function(i){let r=e.getProperty(i);u(r)&&(n+=`<tr><th>${i}</th><td>${r}</td></tr>`)}),n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function WAt(e){let t,n=[],i=e.getPropertyIds();for(t=0;t<i.length;t++){let o=i[t];/^name$/i.test(o)?n[0]=e.getProperty(o):/name/i.test(o)?n[1]=e.getProperty(o):/^title$/i.test(o)?n[2]=e.getProperty(o):/^(id|identifier)$/i.test(o)?n[3]=e.getProperty(o):/element/i.test(o)?n[4]=e.getProperty(o):/(id|identifier)$/i.test(o)&&(n[5]=e.getProperty(o))}let r=n.length;for(t=0;t<r;t++){let o=n[t];if(u(o)&&o!=="")return o}return"Unnamed Feature"}function Mxe(e,t){let n=e.scene.pick(t.position);if(u(n)){let i=y(n.id,n.primitive.id);if(i instanceof Kr)return i;if(n instanceof ws)return new Kr({name:WAt(n),description:GAt(n),feature:n})}if(u(e.scene.globe))return YAt(e,t.position)}var jAt=new ee;function Lxe(e,t,n){if(u(n)){let i=n.clock;if(u(i)&&(i.getValue(t),u(e))){let r=i.startTime,o=i.stopTime;ee.equals(r,o)&&(o=ee.addSeconds(r,P.EPSILON2,jAt)),e.updateFromClock(),e.zoomTo(r,o)}}}var qAt=new h;function YAt(e,t){let n=e.scene,i=n.camera.getPickRay(t),r=n.imageryLayers.pickImageryLayerFeatures(i,n);if(!u(r))return;let o=new Kr({id:"Loading...",description:"Loading feature information..."});return r.then(function(s){if(e.selectedEntity!==o)return;if(!u(s)||s.length===0){e.selectedEntity=Rxe();return}let a=s[0],c=new Kr({id:a.name,description:a.description});if(u(a.position)){let l=e.scene.globe.ellipsoid.cartographicToCartesian(a.position,qAt);c.position=new Mc(l)}e.selectedEntity=c},function(){e.selectedEntity===o&&(e.selectedEntity=Rxe())}),o}function Rxe(){return new Kr({id:"None",description:"No features found."})}function XAt(e,t){let n=e._geocoder,i=e._homeButton,r=e._sceneModePicker,o=e._projectionPicker,s=e._baseLayerPicker,a=e._animation,c=e._timeline,l=e._fullscreenButton,f=e._infoBox,d=e._selectionIndicator,p=t?"hidden":"visible";if(u(n)&&(n.container.style.visibility=p),u(i)&&(i.container.style.visibility=p),u(r)&&(r.container.style.visibility=p),u(o)&&(o.container.style.visibility=p),u(s)&&(s.container.style.visibility=p),u(a)&&(a.container.style.visibility=p),u(c)&&(c.container.style.visibility=p),u(l)&&l.viewModel.isFullscreenEnabled&&(l.container.style.visibility=p),u(f)&&(f.container.style.visibility=p),u(d)&&(d.container.style.visibility=p),e._container){let g=t||!u(l)?0:l.container.clientWidth;e._vrButton.container.style.right=`${g}px`,e.forceResize()}}function Ni(e,t){e=wn(e),t=y(t,y.EMPTY_OBJECT);let n=(!u(t.globe)||t.globe!==!1)&&(!u(t.baseLayerPicker)||t.baseLayerPicker!==!1),i=this,r=document.createElement("div");r.className="cesium-viewer",e.appendChild(r);let o=document.createElement("div");o.className="cesium-viewer-cesiumWidgetContainer",r.appendChild(o);let s=document.createElement("div");s.className="cesium-viewer-bottom",r.appendChild(s);let a=y(t.scene3DOnly,!1),c,l,f=!1;u(t.clockViewModel)?(l=t.clockViewModel,c=l.clock):(c=new qd,l=new _2(c),f=!0),u(t.shouldAnimate)&&(c.shouldAnimate=t.shouldAnimate);let d=new rF(o,{baseLayer:n||u(t.baseLayer)||u(t.imageryProvider)?!1:void 0,clock:c,skyBox:t.skyBox,skyAtmosphere:t.skyAtmosphere,sceneMode:t.sceneMode,mapProjection:t.mapProjection,globe:t.globe,orderIndependentTranslucency:t.orderIndependentTranslucency,contextOptions:t.contextOptions,useDefaultRenderLoop:t.useDefaultRenderLoop,targetFrameRate:t.targetFrameRate,showRenderLoopErrors:t.showRenderLoopErrors,useBrowserRecommendedResolution:t.useBrowserRecommendedResolution,creditContainer:u(t.creditContainer)?t.creditContainer:s,creditViewport:t.creditViewport,scene3DOnly:a,shadows:t.shadows,terrainShadows:t.terrainShadows,mapMode2D:t.mapMode2D,blurActiveElementOnCanvasFocus:t.blurActiveElementOnCanvasFocus,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples}),p=t.dataSources,g=!1;u(p)||(p=new LR,g=!0);let m=d.scene,A=new CB({scene:m,dataSourceCollection:p}),x=new Po;x.add(c.onTick,Ni.prototype._onTick,this),x.add(m.morphStart,Ni.prototype._clearTrackedObject,this);let C;if(!u(t.selectionIndicator)||t.selectionIndicator!==!1){let W=document.createElement("div");W.className="cesium-viewer-selectionIndicatorContainer",r.appendChild(W),C=new Z2(W,m)}let T;if(!u(t.infoBox)||t.infoBox!==!1){let W=document.createElement("div");W.className="cesium-viewer-infoBoxContainer",r.appendChild(W),T=new k2(W);let Z=T.viewModel;x.add(Z.cameraClicked,Ni.prototype._onInfoBoxCameraClicked,this),x.add(Z.closeClicked,Ni.prototype._onInfoBoxClockClicked,this)}let E=document.createElement("div");E.className="cesium-viewer-toolbar",r.appendChild(E);let S;if(!u(t.geocoder)||t.geocoder!==!1){let W=document.createElement("div");W.className="cesium-viewer-geocoderContainer",E.appendChild(W);let Z;u(t.geocoder)&&typeof t.geocoder!="boolean"&&(Z=Array.isArray(t.geocoder)?t.geocoder:[t.geocoder]),S=new U2({container:W,geocoderServices:Z,scene:m}),x.add(S.viewModel.search.beforeExecute,Ni.prototype._clearObjects,this)}let v;(!u(t.homeButton)||t.homeButton!==!1)&&(v=new N2(E,m),u(S)&&x.add(v.viewModel.command.afterExecute,function(){let W=S.viewModel;W.searchText="",W.isSearchInProgress&&W.search()}),x.add(v.viewModel.command.beforeExecute,Ni.prototype._clearTrackedObject,this));let D;!a&&(!u(t.sceneModePicker)||t.sceneModePicker!==!1)&&(D=new X2(E,m));let M;t.projectionPicker&&(M=new q2(E,m));let O,B;if(n){let W=y(t.imageryProviderViewModels,b2()),Z=y(t.terrainProviderViewModels,S2());O=new E2(E,{globe:m.globe,imageryProviderViewModels:W,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:Z,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel}),B=E.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}u(t.imageryProvider)&&t.imageryProvider!==!1&&($("Viewer options.imageryProvider","options.imageryProvider was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use options.baseLayer instead."),n&&(O.viewModel.selectedImagery=void 0),m.imageryLayers.removeAll(),m.imageryLayers.addImageryProvider(t.imageryProvider)),u(t.baseLayer)&&t.baseLayer!==!1&&(n&&(O.viewModel.selectedImagery=void 0),m.imageryLayers.removeAll(),m.imageryLayers.add(t.baseLayer)),u(t.terrainProvider)&&(n&&(O.viewModel.selectedTerrain=void 0),m.terrainProvider=t.terrainProvider),u(t.terrain)&&(n&&(O.viewModel.selectedTerrain=void 0,m.globe.depthTestAgainstTerrain=!0),m.setTerrain(t.terrain));let L;if(!u(t.navigationHelpButton)||t.navigationHelpButton!==!1){let W=!0;try{if(u(window.localStorage)){let Z=window.localStorage.getItem("cesium-hasSeenNavHelp");u(Z)&&Z?W=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch{}L=new H2({container:E,instructionsInitiallyVisible:y(t.navigationInstructionsInitiallyVisible,W)})}let _;if(!u(t.animation)||t.animation!==!1){let W=document.createElement("div");W.className="cesium-viewer-animationContainer",r.appendChild(W),_=new x2(W,new C2(l))}let b;if(!u(t.timeline)||t.timeline!==!1){let W=document.createElement("div");W.className="cesium-viewer-timelineContainer",r.appendChild(W),b=new e3(W,c),b.addEventListener("settime",Bxe,!1),b.zoomTo(c.startTime,c.stopTime)}let w,I,R;(!u(t.fullscreenButton)||t.fullscreenButton!==!1)&&(R=document.createElement("div"),R.className="cesium-viewer-fullscreenContainer",r.appendChild(R),w=new B2(R,t.fullscreenElement),I=la(w.viewModel,"isFullscreenEnabled",function(W){R.style.display=W?"block":"none",u(b)&&(b.container.style.right=`${R.clientWidth}px`,b.resize())}));let F,k,V;if(t.vrButton){let W=document.createElement("div");W.className="cesium-viewer-vrContainer",r.appendChild(W),F=new i3(W,m,t.fullScreenElement),k=la(F.viewModel,"isVREnabled",function(Z){W.style.display=Z?"block":"none",u(w)&&(W.style.right=`${R.clientWidth}px`),u(b)&&(b.container.style.right=`${W.clientWidth}px`,b.resize())}),V=la(F.viewModel,"isVRMode",function(Z){XAt(i,Z)})}this._baseLayerPickerDropDown=B,this._fullscreenSubscription=I,this._vrSubscription=k,this._vrModeSubscription=V,this._dataSourceChangedListeners={},this._automaticallyTrackDataSourceClocks=y(t.automaticallyTrackDataSourceClocks,!0),this._container=e,this._bottomContainer=s,this._element=r,this._cesiumWidget=d,this._selectionIndicator=C,this._infoBox=T,this._dataSourceCollection=p,this._destroyDataSourceCollection=g,this._dataSourceDisplay=A,this._clockViewModel=l,this._destroyClockViewModel=f,this._toolbar=E,this._homeButton=v,this._sceneModePicker=D,this._projectionPicker=M,this._baseLayerPicker=O,this._navigationHelpButton=L,this._animation=_,this._timeline=b,this._fullscreenButton=w,this._vrButton=F,this._geocoder=S,this._eventHelper=x,this._lastWidth=0,this._lastHeight=0,this._allowDataSourcesToSuspendAnimation=!0,this._entityView=void 0,this._enableInfoOrSelection=u(T)||u(C),this._clockTrackedDataSource=void 0,this._trackedEntity=void 0,this._needTrackedEntityUpdate=!1,this._selectedEntity=void 0,this._zoomIsFlight=!1,this._zoomTarget=void 0,this._zoomPromise=void 0,this._zoomOptions=void 0,this._selectedEntityChanged=new ge,this._trackedEntityChanged=new ge,Ce.track(this,["_trackedEntity","_selectedEntity","_clockTrackedDataSource"]),x.add(p.dataSourceAdded,Ni.prototype._onDataSourceAdded,this),x.add(p.dataSourceRemoved,Ni.prototype._onDataSourceRemoved,this),x.add(m.postUpdate,Ni.prototype.resize,this),x.add(m.postRender,Ni.prototype._postRender,this);let G=p.length;for(let W=0;W<G;W++)this._dataSourceAdded(p,p.get(W));this._dataSourceAdded(void 0,A.defaultDataSource),x.add(p.dataSourceAdded,Ni.prototype._dataSourceAdded,this),x.add(p.dataSourceRemoved,Ni.prototype._dataSourceRemoved,this);function U(W){let Z=Mxe(i,W);u(Z)?q.getValueOrUndefined(Z.position,i.clock.currentTime)?i.trackedEntity=Z:i.zoomTo(Z):u(i.trackedEntity)&&(i.trackedEntity=void 0)}function Y(W){i.selectedEntity=Mxe(i,W)}d.screenSpaceEventHandler.setInputAction(Y,An.LEFT_CLICK),d.screenSpaceEventHandler.setInputAction(U,An.LEFT_DOUBLE_CLICK)}Object.defineProperties(Ni.prototype,{container:{get:function(){return this._container}},creditDisplay:{get:function(){return this._cesiumWidget.creditDisplay}},bottomContainer:{get:function(){return this._bottomContainer}},cesiumWidget:{get:function(){return this._cesiumWidget}},selectionIndicator:{get:function(){return this._selectionIndicator}},infoBox:{get:function(){return this._infoBox}},geocoder:{get:function(){return this._geocoder}},homeButton:{get:function(){return this._homeButton}},sceneModePicker:{get:function(){return this._sceneModePicker}},projectionPicker:{get:function(){return this._projectionPicker}},baseLayerPicker:{get:function(){return this._baseLayerPicker}},navigationHelpButton:{get:function(){return this._navigationHelpButton}},animation:{get:function(){return this._animation}},timeline:{get:function(){return this._timeline}},fullscreenButton:{get:function(){return this._fullscreenButton}},vrButton:{get:function(){return this._vrButton}},dataSourceDisplay:{get:function(){return this._dataSourceDisplay}},entities:{get:function(){return this._dataSourceDisplay.defaultDataSource.entities}},dataSources:{get:function(){return this._dataSourceCollection}},canvas:{get:function(){return this._cesiumWidget.canvas}},scene:{get:function(){return this._cesiumWidget.scene}},shadows:{get:function(){return this.scene.shadowMap.enabled},set:function(e){this.scene.shadowMap.enabled=e}},terrainShadows:{get:function(){return this.scene.globe.shadows},set:function(e){this.scene.globe.shadows=e}},shadowMap:{get:function(){return this.scene.shadowMap}},imageryLayers:{get:function(){return this.scene.imageryLayers}},terrainProvider:{get:function(){return this.scene.terrainProvider},set:function(e){this.scene.terrainProvider=e}},camera:{get:function(){return this.scene.camera}},postProcessStages:{get:function(){return this.scene.postProcessStages}},clock:{get:function(){return this._clockViewModel.clock}},clockViewModel:{get:function(){return this._clockViewModel}},screenSpaceEventHandler:{get:function(){return this._cesiumWidget.screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._cesiumWidget.targetFrameRate},set:function(e){this._cesiumWidget.targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._cesiumWidget.useDefaultRenderLoop},set:function(e){this._cesiumWidget.useDefaultRenderLoop=e}},resolutionScale:{get:function(){return this._cesiumWidget.resolutionScale},set:function(e){this._cesiumWidget.resolutionScale=e}},useBrowserRecommendedResolution:{get:function(){return this._cesiumWidget.useBrowserRecommendedResolution},set:function(e){this._cesiumWidget.useBrowserRecommendedResolution=e}},allowDataSourcesToSuspendAnimation:{get:function(){return this._allowDataSourcesToSuspendAnimation},set:function(e){this._allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._trackedEntity},set:function(e){if(this._trackedEntity!==e){this._trackedEntity=e,$H(this);let t=this.scene,n=t.mode;!u(e)||!u(e.position)?(this._needTrackedEntityUpdate=!1,(n===ne.COLUMBUS_VIEW||n===ne.SCENE2D)&&(t.screenSpaceCameraController.enableTranslate=!0),(n===ne.COLUMBUS_VIEW||n===ne.SCENE3D)&&(t.screenSpaceCameraController.enableTilt=!0),this._entityView=void 0,this.camera.lookAtTransform(N.IDENTITY)):this._needTrackedEntityUpdate=!0,this._trackedEntityChanged.raiseEvent(e),this.scene.requestRender()}}},selectedEntity:{get:function(){return this._selectedEntity},set:function(e){if(this._selectedEntity!==e){this._selectedEntity=e;let t=u(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;u(e)?u(t)&&t.animateAppear():u(t)&&t.animateDepart(),this._selectedEntityChanged.raiseEvent(e)}}},selectedEntityChanged:{get:function(){return this._selectedEntityChanged}},trackedEntityChanged:{get:function(){return this._trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._clockTrackedDataSource},set:function(e){this._clockTrackedDataSource!==e&&(this._clockTrackedDataSource=e,Lxe(this._timeline,this.clock,e))}}});Ni.prototype.extend=function(e,t){e(this,t)};Ni.prototype.resize=function(){let e=this._cesiumWidget,t=this._container,n=t.clientWidth,i=t.clientHeight,r=u(this._animation),o=u(this._timeline);if(e.resize(),n===this._lastWidth&&i===this._lastHeight)return;let s=i-125,a=this._baseLayerPickerDropDown;if(u(a)&&(a.style.maxHeight=`${s}px`),u(this._geocoder)){let g=this._geocoder.searchSuggestionsContainer;g.style.maxHeight=`${s}px`}u(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);let c=this._timeline,l,f=0,d=0,p=0;if(r&&window.getComputedStyle(this._animation.container).visibility!=="hidden"){let g=this._lastWidth;l=this._animation.container,n>900?(f=169,g<=900&&(l.style.width="169px",l.style.height="112px",this._animation.resize())):n>=600?(f=136,(g<600||g>900)&&(l.style.width="136px",l.style.height="90px",this._animation.resize())):(f=106,(g>600||g===0)&&(l.style.width="106px",l.style.height="70px",this._animation.resize())),d=f+5}if(o&&window.getComputedStyle(this._timeline.container).visibility!=="hidden"){let g=this._fullscreenButton,m=this._vrButton,A=c.container,x=A.style;p=A.clientHeight+3,x.left=`${f}px`;let C=0;u(g)&&(C+=g.container.clientWidth),u(m)&&(C+=m.container.clientWidth),x.right=`${C}px`,c.resize()}this._bottomContainer.style.left=`${d}px`,this._bottomContainer.style.bottom=`${p}px`,this._lastWidth=n,this._lastHeight=i};Ni.prototype.forceResize=function(){this._lastWidth=0,this.resize()};Ni.prototype.render=function(){this._cesiumWidget.render()};Ni.prototype.isDestroyed=function(){return!1};Ni.prototype.destroy=function(){let e;this.screenSpaceEventHandler.removeInputAction(An.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(An.LEFT_DOUBLE_CLICK);let t=this.dataSources,n=t.length;for(e=0;e<n;e++)this._dataSourceRemoved(t,t.get(e));return this._dataSourceRemoved(void 0,this._dataSourceDisplay.defaultDataSource),this._container.removeChild(this._element),this._element.removeChild(this._toolbar),this._eventHelper.removeAll(),u(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),u(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),u(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),u(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),u(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),u(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),u(this._timeline)&&(this._timeline.removeEventListener("settime",Bxe,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),u(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),u(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),u(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),u(this._selectionIndicator)&&(this._element.removeChild(this._selectionIndicator.container),this._selectionIndicator=this._selectionIndicator.destroy()),this._destroyClockViewModel&&(this._clockViewModel=this._clockViewModel.destroy()),this._dataSourceDisplay=this._dataSourceDisplay.destroy(),this._cesiumWidget=this._cesiumWidget.destroy(),this._destroyDataSourceCollection&&(this._dataSourceCollection=this._dataSourceCollection.destroy()),ue(this)};Ni.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Ni.prototype._onEntityCollectionChanged,this)};Ni.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Ni.prototype._onEntityCollectionChanged,this),u(this.trackedEntity)&&n.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0),u(this.selectedEntity)&&n.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)};Ni.prototype._onTick=function(e){let t=e.currentTime,n=this._dataSourceDisplay.update(t);this._allowDataSourcesToSuspendAnimation&&(this._clockViewModel.canAnimate=n);let i=this._entityView;if(u(i)){let f=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(f,!1,A0)===lt.DONE&&i.update(t,A0)}let r,o=!1,s=this.selectedEntity,a=u(s)&&this._enableInfoOrSelection;a&&s.isShowing&&s.isAvailable(t)&&(this._dataSourceDisplay.getBoundingSphere(s,!0,A0)!==lt.FAILED?r=A0.center:u(s.position)&&(r=s.position.getValue(t,r)),o=u(r));let c=u(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;u(c)&&(c.position=h.clone(r,c.position),c.showSelection=a&&o,c.update());let l=u(this._infoBox)?this._infoBox.viewModel:void 0;u(l)&&(l.showInfo=a,l.enableCamera=o,l.isCameraTracking=this.trackedEntity===this.selectedEntity,a?(l.titleText=y(s.name,s.id),l.description=q.getValueOrDefault(s.description,t,"")):(l.titleText="",l.description=""))};Ni.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let r=0;r<i;r++){let o=n[r];this.trackedEntity===o&&(this.trackedEntity=void 0),this.selectedEntity===o&&(this.selectedEntity=void 0)}};Ni.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{let n=this.selectedEntity.position;u(n)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}};Ni.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Ni.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0};Ni.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0};Ni.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&Lxe(this.timeline,this.clock,e)};Ni.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Ni.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Ni.prototype._onDataSourceRemoved=function(e,t){let n=this.clockTrackedDataSource===t,i=t.entities.id;if(this._dataSourceChangedListeners[i](),this._dataSourceChangedListeners[i]=void 0,n){let r=e.length;this._automaticallyTrackDataSourceClocks&&r>0?this.clockTrackedDataSource=e.get(r-1):this.clockTrackedDataSource=void 0}};Ni.prototype.zoomTo=function(e,t){return Nxe(this,e,{offset:t},!1)};Ni.prototype.flyTo=function(e,t){return Nxe(this,e,t,!0)};function Nxe(e,t,n,i){$H(e);let r=new Promise(o=>{e._completeZoom=function(s){o(s)}});return e._zoomPromise=r,e._zoomIsFlight=i,e._zoomOptions=n,Promise.resolve(t).then(function(o){if(e._zoomPromise===r){if(o instanceof ks){let s;u(o.imageryProvider)?s=o.imageryProvider._readyPromise.then(()=>o.getImageryRectangle()):s=new Promise(a=>{let c=o.readyEvent.addEventListener(()=>{c(),a(o.getImageryRectangle())})}),s.then(function(a){return kC(a,e.scene)}).then(function(a){e._zoomPromise===r&&(e._zoomTarget=a)});return}if(o instanceof Ea||o instanceof GS||o instanceof YS){e._zoomTarget=o;return}if(o.isLoading&&u(o.loadingEvent)){let s=o.loadingEvent.addEventListener(function(){s(),e._zoomPromise===r&&(e._zoomTarget=o.entities.values.slice(0))});return}if(Array.isArray(o)){e._zoomTarget=o.slice(0);return}o=y(o.values,o),u(o.entities)&&(o=o.entities.values),Array.isArray(o)?e._zoomTarget=o.slice(0):e._zoomTarget=[o]}}),e.scene.requestRender(),r}function iv(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function $H(e){let t=e._zoomPromise;u(t)&&(iv(e),e._completeZoom(!1))}Ni.prototype._postRender=function(){KAt(this),JAt(this)};function KAt(e){let t=e._zoomTarget;if(!u(t)||e.scene.mode===ne.MORPHING)return;let n=e.scene,i=n.camera,r=y(e._zoomOptions,{}),o;if(t instanceof Ea||t instanceof YS)return t._readyPromise.then(function(){let l=t.boundingSphere;u(r.offset)||(r.offset=new Cu(0,-.5,l.radius)),o={offset:r.offset,duration:r.duration,maximumHeight:r.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(t.boundingSphere,o):(i.viewBoundingSphere(l,r.offset),i.lookAtTransform(N.IDENTITY),e._completeZoom(!0)),iv(e)}).catch(()=>{$H(e)});if(t instanceof GS)return t._readyPromise.then(function(){let l=t.boundingSphere;u(r.offset)||(r.offset=new Cu(0,-.5,l.radius)),o={offset:r.offset,duration:r.duration,maximumHeight:r.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(l,o):(i.viewBoundingSphere(l,r.offset),i.lookAtTransform(N.IDENTITY),e._completeZoom(!0)),iv(e)});if(t instanceof me){o={destination:n.mapProjection.ellipsoid.cartographicToCartesian(t),duration:r.duration,maximumHeight:r.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyTo(o):(i.setView(o),e._completeZoom(!0)),iv(e);return}let s=t,a=[];for(let l=0,f=s.length;l<f;l++){let d=e._dataSourceDisplay.getBoundingSphere(s[l],!1,A0);if(d===lt.PENDING)return;d!==lt.FAILED&&a.push(ae.clone(A0))}if(a.length===0){$H(e);return}e.trackedEntity=void 0;let c=ae.fromBoundingSpheres(a);e._zoomIsFlight?(iv(e),i.flyToBoundingSphere(c,{duration:r.duration,maximumHeight:r.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)},offset:r.offset})):(i.viewBoundingSphere(c,r.offset),i.lookAtTransform(N.IDENTITY),iv(e),e._completeZoom(!0))}function JAt(e){if(!e._needTrackedEntityUpdate)return;let t=e._trackedEntity,n=e.clock.currentTime,i=q.getValueOrUndefined(t.position,n);if(!u(i))return;let r=e.scene,o=e._dataSourceDisplay.getBoundingSphere(t,!1,A0);if(o===lt.PENDING)return;let s=r.mode;(s===ne.COLUMBUS_VIEW||s===ne.SCENE2D)&&(r.screenSpaceCameraController.enableTranslate=!1),(s===ne.COLUMBUS_VIEW||s===ne.SCENE3D)&&(r.screenSpaceCameraController.enableTilt=!1);let a=o!==lt.FAILED?A0:void 0;e._entityView=new EB(t,r,r.mapProjection.ellipsoid),e._entityView.update(n,a),e._needTrackedEntityUpdate=!1}var WK=Ni;function ZAt(e){let t=document.createElement("div");t.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(t);let n=new I2(t,e.scene);Object.defineProperties(e,{cesium3DTilesInspector:{get:function(){return n}}})}var jK=ZAt;function QAt(e){let t=document.createElement("div");t.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(t);let n=new M2(t,e.scene);Object.defineProperties(e,{cesiumInspector:{get:function(){return n}}})}var qK=QAt;function $At(e,t){t=y(t,y.EMPTY_OBJECT);let n=!0,i=y(t.flyToOnDrop,!0),r=new ge,o=y(t.clearOnDrop,!0),s=y(t.dropTarget,e.container),a=y(t.clampToGround,!0),c=t.proxy;s=wn(s),Object.defineProperties(e,{dropTarget:{get:function(){return s},set:function(f){Fxe(s,l),s=f,YK(s,l)}},dropEnabled:{get:function(){return n},set:function(f){f!==n&&(f?YK(s,l):Fxe(s,l),n=f)}},dropError:{get:function(){return r}},clearOnDrop:{get:function(){return o},set:function(f){o=f}},flyToOnDrop:{get:function(){return i},set:function(f){i=f}},proxy:{get:function(){return c},set:function(f){c=f}},clampToGround:{get:function(){return a},set:function(f){a=f}}});function l(f){qC(f),o&&(e.entities.removeAll(),e.dataSources.removeAll());let d=f.dataTransfer.files,p=d.length;for(let g=0;g<p;g++){let m=d[g],A=new FileReader;A.onload=ext(e,m,c,a),A.onerror=txt(e,m),A.readAsText(m)}}YK(s,l),e.destroy=f2(e,e.destroy,function(){e.dropEnabled=!1}),e._handleDrop=l}function qC(e){e.stopPropagation(),e.preventDefault()}function Fxe(e,t){let n=e;u(n)&&(n.removeEventListener("drop",t,!1),n.removeEventListener("dragenter",qC,!1),n.removeEventListener("dragover",qC,!1),n.removeEventListener("dragexit",qC,!1))}function YK(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",qC,!1),e.addEventListener("dragover",qC,!1),e.addEventListener("dragexit",qC,!1)}function ext(e,t,n,i){let r=e.scene;return function(o){let s=t.name;try{let a;if(/\.czml$/i.test(s))a=BR.load(JSON.parse(o.target.result),{sourceUri:s});else if(/\.geojson$/i.test(s)||/\.json$/i.test(s)||/\.topojson$/i.test(s))a=vB.load(JSON.parse(o.target.result),{sourceUri:s,clampToGround:i});else if(/\.(kml|kmz)$/i.test(s))a=XB.load(t,{sourceUri:s,proxy:n,camera:r.camera,canvas:r.canvas,clampToGround:i,screenOverlayContainer:e.container});else if(/\.gpx$/i.test(s))a=OB.load(t,{sourceUri:s,proxy:n});else{e.dropError.raiseEvent(e,s,`Unrecognized file: ${s}`);return}u(a)&&e.dataSources.add(a).then(function(c){e.flyToOnDrop&&e.flyTo(c)}).catch(function(c){e.dropError.raiseEvent(e,s,c)})}catch(a){e.dropError.raiseEvent(e,s,a)}}}function txt(e,t){return function(n){e.dropError.raiseEvent(e,t.name,n.target.error)}}var XK=$At;function nxt(e,t){t=y(t,y.EMPTY_OBJECT);let n=new W2({scene:e.scene,container:e.bottomContainer,lowFrameRateMessage:t.lowFrameRateMessage});Object.defineProperties(e,{performanceWatchdog:{get:function(){return n}}})}var KK=nxt;function Uxe(e){let t=e.split(` +`),n;for(n=0;n<t.length&&!t[n].match(/\S/);n++);if(n===t.length)return"";let i="",r=/^\s*/,s=t[n].match(r)[0].length;for(let a=n;a<t.length;a++){let c=t[a];c.match(r)[0].length>=s&&(c=c.slice(s)),i+=`${c} +`}return i}function ed(e){this._scene=e,this._voxelPrimitive=void 0,this._customShaderCompilationRemoveCallback=void 0,this._definedProperties=[],this._getPrimitiveFunctions=[],this._modelMatrixReady=!1;let t=this;function n(r){let{name:o,initialValue:s}=r;t._definedProperties.push(o);let a=r.setPrimitiveFunction;a===!0&&(a=function(f){t._voxelPrimitive[o]=f});let c=r.getPrimitiveFunction;c===!0&&(c=function(){t[o]=t._voxelPrimitive[o]}),u(c)&&t._getPrimitiveFunctions.push(c);let l=Ce.observable();return Ce.defineProperty(t,o,{get:function(){return l()},set:function(f){typeof s=="number"&&typeof f=="string"&&(f=Number(f),isNaN(f)&&(f=s)),typeof s=="boolean"&&typeof f=="number"&&(f=f===1),l(f),u(a)&&u(t._voxelPrimitive)&&(a(f),e.requestRender())}}),t[o]=s,l}function i(r,o){return function(s){let a=t._voxelPrimitive[r].clone();a[o]=s,t._voxelPrimitive[r]=a}}n({name:"inspectorVisible",initialValue:!0}),n({name:"displayVisible",initialValue:!1}),n({name:"transformVisible",initialValue:!1}),n({name:"boundsVisible",initialValue:!1}),n({name:"clippingVisible",initialValue:!1}),n({name:"shaderVisible",initialValue:!1}),n({name:"shaderString",initialValue:"",getPrimitiveFunction:function(){let r=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=Uxe(r)}}),n({name:"shaderCompilationMessage",initialValue:""}),n({name:"shaderCompilationSuccess",initialValue:!0}),n({name:"depthTest",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"show",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"disableUpdate",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"debugDraw",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"jitter",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"nearestSampling",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"screenSpaceError",initialValue:4,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"stepSize",initialValue:1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"shapeIsBox",getPrimitiveFunction:function(){let r=t._voxelPrimitive.shape;t.shapeIsBox=r===qi.BOX}}),n({name:"shapeIsEllipsoid",getPrimitiveFunction:function(){let r=t._voxelPrimitive.shape;t.shapeIsEllipsoid=r===qi.ELLIPSOID}}),n({name:"shapeIsCylinder",getPrimitiveFunction:function(){let r=t._voxelPrimitive.shape;t.shapeIsCylinder=r===qi.CYLINDER}}),n({name:"boundsBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMaxX=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsBoxMinX",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMinX=t._voxelPrimitive.minBounds.x}}),n({name:"boundsBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMaxY=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsBoxMinY",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMinY=t._voxelPrimitive.minBounds.y}}),n({name:"boundsBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMaxZ=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsBoxMinZ",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMinZ=t._voxelPrimitive.minBounds.z}}),n({name:"boundsEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLongitude=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLongitude=t._voxelPrimitive.minBounds.x}}),n({name:"boundsEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLatitude=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLatitude=t._voxelPrimitive.minBounds.y}}),n({name:"boundsEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxHeight=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMinHeight=t._voxelPrimitive.minBounds.z}}),n({name:"boundsCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMaxRadius=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMinRadius=t._voxelPrimitive.minBounds.x}}),n({name:"boundsCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMaxHeight=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMinHeight=t._voxelPrimitive.minBounds.y}}),n({name:"boundsCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMaxAngle=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMinAngle=t._voxelPrimitive.minBounds.z}}),n({name:"clippingBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMaxX=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingBoxMinX",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMinX=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMaxY=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingBoxMinY",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMinY=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMaxZ=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingBoxMinZ",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMinZ=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLongitude=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLongitude=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLatitude=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLatitude=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxHeight=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMinHeight=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMaxRadius=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMinRadius=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMaxHeight=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMinHeight=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMaxAngle=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMinAngle=t._voxelPrimitive.minClippingBounds.z}}),n({name:"translationX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Wm(t)},getPrimitiveFunction:function(){t.translationX=N.getTranslation(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"translationY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Wm(t)},getPrimitiveFunction:function(){t.translationY=N.getTranslation(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"translationZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Wm(t)},getPrimitiveFunction:function(){t.translationZ=N.getTranslation(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"scaleX",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Wm(t)},getPrimitiveFunction:function(){t.scaleX=N.getScale(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"scaleY",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Wm(t)},getPrimitiveFunction:function(){t.scaleY=N.getScale(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"scaleZ",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Wm(t)},getPrimitiveFunction:function(){t.scaleZ=N.getScale(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"angleX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Wm(t)}}),n({name:"angleY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Wm(t)}}),n({name:"angleZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Wm(t)}})}var ixt=new h,rxt=new h,oxt=new ka,sxt=new Q;function Wm(e){let t=h.fromElements(e.translationX,e.translationY,e.translationZ,ixt),n=h.fromElements(e.scaleX,e.scaleY,e.scaleZ,rxt),i=oxt;i.heading=e.angleX,i.pitch=e.angleY,i.roll=e.angleZ;let r=Q.fromHeadingPitchRoll(i,sxt),o=Q.multiplyByScale(r,n,r);e._voxelPrimitive.modelMatrix=N.fromRotationTranslation(o,t,e._voxelPrimitive.modelMatrix)}Object.defineProperties(ed.prototype,{scene:{get:function(){return this._scene}},voxelPrimitive:{get:function(){return this._voxelPrimitive},set:function(e){if(u(this._customShaderCompilationRemoveCallback)&&this._customShaderCompilationRemoveCallback(),u(e)){this._voxelPrimitive=e;let t=this;t._voxelPrimitive._readyPromise.then(function(){t._customShaderCompilationRemoveCallback=t._voxelPrimitive.customShaderCompilationEvent.addEventListener(function(n){let i=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=Uxe(i),u(n)?(t.shaderCompilationMessage=n.message,t.shaderCompilationSuccess=!1):(t.shaderCompilationMessage="Shader compiled successfully!",t.shaderCompilationSuccess=!0)}),t._modelMatrixReady=!1;for(let n=0;n<t._getPrimitiveFunctions.length;n++)t._getPrimitiveFunctions[n]();t._modelMatrixReady=!0,Wm(t)})}}}});ed.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};ed.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};ed.prototype.toggleTransform=function(){this.transformVisible=!this.transformVisible};ed.prototype.toggleBounds=function(){this.boundsVisible=!this.boundsVisible};ed.prototype.toggleClipping=function(){this.clippingVisible=!this.clippingVisible};ed.prototype.toggleShader=function(){this.shaderVisible=!this.shaderVisible};ed.prototype.compileShader=function(){u(this._voxelPrimitive)&&(this._voxelPrimitive.customShader=new UC({fragmentShaderText:this.shaderString,uniforms:this._voxelPrimitive.customShader.uniforms}))};ed.prototype.shaderEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,r=n.selectionEnd,o=r,a=n.value.slice(i,r).split(` +`),c=a.length,l;if(t.shiftKey)for(l=0;l<c;++l)a[l][0]===" "&&(a[l][1]===" "?(a[l]=a[l].substr(2),o-=2):(a[l]=a[l].substr(1),o-=1));else for(l=0;l<c;++l)a[l]=` ${a[l]}`,o+=2;let f=a.join(` +`);n.value=n.value.slice(0,i)+f+n.value.slice(r),n.selectionStart=i!==r?i:o,n.selectionEnd=o}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileShader();return!0};ed.prototype.isDestroyed=function(){return!1};ed.prototype.destroy=function(){let e=this;return this._definedProperties.forEach(function(t){Ce.getObservable(e,t).dispose()}),ue(this)};var r3=ed;function eG(e,t){e=wn(e);let n=document.createElement("div"),i=new r3(t);this._viewModel=i,this._container=e,this._element=n;let r=document.createElement("div");r.textContent="Voxel Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleInspector"),n.appendChild(r),n.className="cesium-cesiumInspector cesium-VoxelInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let o=document.createElement("div");o.className="cesium-cesiumInspector-dropDown",n.appendChild(o);let s=Oa.createSection,a=Oa.createCheckbox,c=Oa.createRangeInput,l=Oa.createButton,f=s(o,"Display","displayVisible","toggleDisplay"),d=s(o,"Transform","transformVisible","toggleTransform"),p=s(o,"Bounds","boundsVisible","toggleBounds"),g=s(o,"Clipping","clippingVisible","toggleClipping"),m=s(o,"Shader","shaderVisible","toggleShader");f.appendChild(a("Depth Test","depthTest")),f.appendChild(a("Show","show")),f.appendChild(a("Disable Update","disableUpdate")),f.appendChild(a("Debug Draw","debugDraw")),f.appendChild(a("Jitter","jitter")),f.appendChild(a("Nearest Sampling","nearestSampling")),f.appendChild(c("Screen Space Error","screenSpaceError",0,128)),f.appendChild(c("Step Size","stepSize",0,2));let A=10,x=10,C=P.PI;d.appendChild(c("Translation X","translationX",-A,+A)),d.appendChild(c("Translation Y","translationY",-A,+A)),d.appendChild(c("Translation Z","translationZ",-A,+A)),d.appendChild(c("Scale X","scaleX",0,+x)),d.appendChild(c("Scale Y","scaleY",0,+x)),d.appendChild(c("Scale Z","scaleZ",0,+x)),d.appendChild(c("Heading","angleX",-C,+C)),d.appendChild(c("Pitch","angleY",-C,+C)),d.appendChild(c("Roll","angleZ",-C,+C));let T=qi.getMinBounds(qi.BOX),E=qi.getMaxBounds(qi.BOX),S=h.fromElements(qi.getMinBounds(qi.ELLIPSOID).x,qi.getMinBounds(qi.ELLIPSOID).y,-re.WGS84.maximumRadius,new h),v=h.fromElements(qi.getMaxBounds(qi.ELLIPSOID).x,qi.getMaxBounds(qi.ELLIPSOID).y,1e7,new h),D=qi.getMinBounds(qi.CYLINDER),M=qi.getMaxBounds(qi.CYLINDER);rv("Max X","Min X","Max Y","Min Y","Max Z","Min Z","boundsBoxMaxX","boundsBoxMinX","boundsBoxMaxY","boundsBoxMinY","boundsBoxMaxZ","boundsBoxMinZ",T,E,"shapeIsBox",p),rv("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","boundsEllipsoidMaxLongitude","boundsEllipsoidMinLongitude","boundsEllipsoidMaxLatitude","boundsEllipsoidMinLatitude","boundsEllipsoidMaxHeight","boundsEllipsoidMinHeight",S,v,"shapeIsEllipsoid",p),rv("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","boundsCylinderMaxRadius","boundsCylinderMinRadius","boundsCylinderMaxHeight","boundsCylinderMinHeight","boundsCylinderMaxAngle","boundsCylinderMinAngle",D,M,"shapeIsCylinder",p),rv("Max X","Min X","Max Y","Min Y","Max Z","Min Z","clippingBoxMaxX","clippingBoxMinX","clippingBoxMaxY","clippingBoxMinY","clippingBoxMaxZ","clippingBoxMinZ",T,E,"shapeIsBox",g),rv("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","clippingEllipsoidMaxLongitude","clippingEllipsoidMinLongitude","clippingEllipsoidMaxLatitude","clippingEllipsoidMinLatitude","clippingEllipsoidMaxHeight","clippingEllipsoidMinHeight",S,v,"shapeIsEllipsoid",g),rv("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","clippingCylinderMaxRadius","clippingCylinderMinRadius","clippingCylinderMaxHeight","clippingCylinderMinHeight","clippingCylinderMaxAngle","clippingCylinderMinAngle",D,M,"shapeIsCylinder",g);let O=document.createElement("div");m.appendChild(O);let B=document.createElement("textarea");B.setAttribute("data-bind","textInput: shaderString, event: { keydown: shaderEditorKeyPress }"),O.className="cesium-cesiumInspector-styleEditor",O.appendChild(B);let L=l("Compile (Ctrl+Enter)","compileShader");O.appendChild(L);let _=document.createElement("label");_.style.display="block",_.setAttribute("data-bind","text: shaderCompilationMessage, style: {color: shaderCompilationSuccess ? 'green' : 'red'}"),O.appendChild(_),Ce.applyBindings(i,n)}Object.defineProperties(eG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});eG.prototype.isDestroyed=function(){return!1};eG.prototype.destroy=function(){return Ce.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};function rv(e,t,n,i,r,o,s,a,c,l,f,d,p,g,m,A){let x=Oa.createRangeInput,C=p,T=g,E=A.appendChild(document.createElement("div"));E.setAttribute("data-bind",`if: ${m}`),E.appendChild(x(e,s,C.x,T.x)),E.appendChild(x(t,a,C.x,T.x)),E.appendChild(x(n,c,C.y,T.y)),E.appendChild(x(i,l,C.y,T.y)),E.appendChild(x(r,f,C.z,T.z)),E.appendChild(x(o,d,C.z,T.z))}var o3=eG;function axt(e){let t=document.createElement("div");t.className="cesium-viewer-voxelInspectorContainer",e.container.appendChild(t);let n=new o3(t,e.scene);Object.defineProperties(e,{voxelInspector:{get:function(){return n}}})}var JK=axt;globalThis.CESIUM_VERSION="1.105";var cxt="1.105";0&&(module.exports={AlphaMode,AlphaPipelineStage,Animation,AnimationViewModel,Appearance,ApproximateTerrainHeights,ArcGISTiledElevationTerrainProvider,ArcGisBaseMapType,ArcGisMapServerImageryProvider,ArcGisMapService,ArcType,ArticulationStageType,AssociativeArray,AttributeCompression,AttributeType,AutoExposure,AutomaticUniforms,Axis,AxisAlignedBoundingBox,B3dmLoader,B3dmParser,BaseLayerPicker,BaseLayerPickerViewModel,BatchTable,BatchTableHierarchy,BatchTexture,BatchTexturePipelineStage,Billboard,BillboardCollection,BillboardGraphics,BillboardVisualizer,BingMapsGeocoderService,BingMapsImageryProvider,BingMapsStyle,BlendEquation,BlendFunction,BlendOption,BlendingState,BoundingRectangle,BoundingSphere,BoundingSphereState,BoxEmitter,BoxGeometry,BoxGeometryUpdater,BoxGraphics,BoxOutlineGeometry,BrdfLutGenerator,Buffer,BufferLoader,BufferUsage,CPUStylingPipelineStage,CallbackProperty,Camera,CameraEventAggregator,CameraEventType,CameraFlightPath,Cartesian2,Cartesian3,Cartesian4,Cartographic,CartographicGeocoderService,CatmullRomSpline,Cesium3DContentGroup,Cesium3DTile,Cesium3DTileBatchTable,Cesium3DTileColorBlendMode,Cesium3DTileContent,Cesium3DTileContentFactory,Cesium3DTileContentState,Cesium3DTileContentType,Cesium3DTileFeature,Cesium3DTileFeatureTable,Cesium3DTileOptimizationHint,Cesium3DTileOptimizations,Cesium3DTilePass,Cesium3DTilePassState,Cesium3DTilePointFeature,Cesium3DTileRefine,Cesium3DTileStyle,Cesium3DTileStyleEngine,Cesium3DTilesInspector,Cesium3DTilesInspectorViewModel,Cesium3DTilesVoxelProvider,Cesium3DTileset,Cesium3DTilesetBaseTraversal,Cesium3DTilesetCache,Cesium3DTilesetGraphics,Cesium3DTilesetHeatmap,Cesium3DTilesetMetadata,Cesium3DTilesetMostDetailedTraversal,Cesium3DTilesetSkipTraversal,Cesium3DTilesetStatistics,Cesium3DTilesetTraversal,Cesium3DTilesetVisualizer,CesiumInspector,CesiumInspectorViewModel,CesiumTerrainProvider,CesiumWidget,Check,CheckerboardMaterialProperty,CircleEmitter,CircleGeometry,CircleOutlineGeometry,ClassificationModelDrawCommand,ClassificationPipelineStage,ClassificationPrimitive,ClassificationType,ClearCommand,ClippingPlane,ClippingPlaneCollection,Clock,ClockRange,ClockStep,ClockViewModel,CloudCollection,CloudType,Color,ColorBlendMode,ColorGeometryInstanceAttribute,ColorMaterialProperty,Command,ComponentDatatype,Composite3DTileContent,CompositeEntityCollection,CompositeMaterialProperty,CompositePositionProperty,CompositeProperty,CompressedTextureBuffer,ComputeCommand,ComputeEngine,ConditionsExpression,ConeEmitter,ConstantPositionProperty,ConstantProperty,ConstantSpline,ContentMetadata,Context,ContextLimits,CoplanarPolygonGeometry,CoplanarPolygonGeometryLibrary,CoplanarPolygonOutlineGeometry,CornerType,CorridorGeometry,CorridorGeometryLibrary,CorridorGeometryUpdater,CorridorGraphics,CorridorOutlineGeometry,Credit,CreditDisplay,CubeMap,CubeMapFace,CubicRealPolynomial,CullFace,CullingVolume,CumulusCloud,CustomDataSource,CustomHeightmapTerrainProvider,CustomShader,CustomShaderMode,CustomShaderPipelineStage,CustomShaderTranslucencyMode,CylinderGeometry,CylinderGeometryLibrary,CylinderGeometryUpdater,CylinderGraphics,CylinderOutlineGeometry,CzmlDataSource,DataSource,DataSourceClock,DataSourceCollection,DataSourceDisplay,DebugAppearance,DebugCameraPrimitive,DebugInspector,DebugModelMatrixPrimitive,DefaultProxy,DepthFunction,DepthPlane,DequantizationPipelineStage,DerivedCommand,DeveloperError,DeviceOrientationCameraController,DirectionalLight,DiscardEmptyTileImagePolicy,DiscardMissingTileImagePolicy,DistanceDisplayCondition,DistanceDisplayConditionGeometryInstanceAttribute,DoubleEndedPriorityQueue,DoublyLinkedList,DracoLoader,DrawCommand,DynamicGeometryBatch,DynamicGeometryUpdater,EarthOrientationParameters,EarthOrientationParametersSample,EasingFunction,EllipseGeometry,EllipseGeometryLibrary,EllipseGeometryUpdater,EllipseGraphics,EllipseOutlineGeometry,Ellipsoid,EllipsoidGeodesic,EllipsoidGeometry,EllipsoidGeometryUpdater,EllipsoidGraphics,EllipsoidOutlineGeometry,EllipsoidPrimitive,EllipsoidRhumbLine,EllipsoidSurfaceAppearance,EllipsoidTangentPlane,EllipsoidTerrainProvider,EllipsoidalOccluder,Empty3DTileContent,EncodedCartesian3,Entity,EntityCluster,EntityCollection,EntityView,Event,EventHelper,Expression,ExpressionNodeType,ExtrapolationType,FeatureDetection,FeatureIdPipelineStage,Fog,ForEach,FrameRateMonitor,FrameState,Framebuffer,FramebufferManager,FrustumCommands,FrustumGeometry,FrustumOutlineGeometry,Fullscreen,FullscreenButton,FullscreenButtonViewModel,GeoJsonDataSource,GeoJsonLoader,GeocodeType,Geocoder,GeocoderService,GeocoderViewModel,GeographicProjection,GeographicTilingScheme,Geometry,Geometry3DTileContent,GeometryAttribute,GeometryAttributes,GeometryFactory,GeometryInstance,GeometryInstanceAttribute,GeometryOffsetAttribute,GeometryPipeline,GeometryPipelineStage,GeometryType,GeometryUpdater,GeometryVisualizer,GetFeatureInfoFormat,Globe,GlobeDepth,GlobeSurfaceShaderSet,GlobeSurfaceTile,GlobeSurfaceTileProvider,GlobeTranslucency,GlobeTranslucencyFramebuffer,GlobeTranslucencyState,GltfBufferViewLoader,GltfDracoLoader,GltfImageLoader,GltfIndexBufferLoader,GltfJsonLoader,GltfLoader,GltfLoaderUtil,GltfStructuralMetadataLoader,GltfTextureLoader,GltfVertexBufferLoader,GoogleEarthEnterpriseImageryProvider,GoogleEarthEnterpriseMapsProvider,GoogleEarthEnterpriseMetadata,GoogleEarthEnterpriseTerrainData,GoogleEarthEnterpriseTerrainProvider,GoogleEarthEnterpriseTileInformation,GpxDataSource,GregorianDate,GridImageryProvider,GridMaterialProperty,GroundGeometryUpdater,GroundPolylineGeometry,GroundPolylinePrimitive,GroundPrimitive,GroupMetadata,HeadingPitchRange,HeadingPitchRoll,Heap,HeightReference,HeightmapEncoding,HeightmapTerrainData,HeightmapTessellator,HermitePolynomialApproximation,HermiteSpline,HilbertOrder,HomeButton,HomeButtonViewModel,HorizontalOrigin,I3SDataProvider,I3SFeature,I3SField,I3SGeometry,I3SLayer,I3SNode,I3dmLoader,I3dmParser,Iau2000Orientation,Iau2006XysData,Iau2006XysSample,IauOrientationAxes,IauOrientationParameters,ImageBasedLighting,ImageBasedLightingPipelineStage,ImageMaterialProperty,Imagery,ImageryLayer,ImageryLayerCollection,ImageryLayerFeatureInfo,ImageryProvider,ImageryState,Implicit3DTileContent,ImplicitAvailabilityBitstream,ImplicitMetadataView,ImplicitSubdivisionScheme,ImplicitSubtree,ImplicitSubtreeCache,ImplicitSubtreeMetadata,ImplicitTileCoordinates,ImplicitTileset,IndexDatatype,InfoBox,InfoBoxViewModel,InspectorShared,InstanceAttributeSemantic,InstancingPipelineStage,InterpolationAlgorithm,InterpolationType,Intersect,IntersectionTests,Intersections2D,Interval,InvertClassification,Ion,IonGeocoderService,IonImageryProvider,IonResource,IonWorldImageryStyle,Iso8601,JobScheduler,JobType,JsonMetadataTable,JulianDate,KTX2Transcoder,KeyboardEventModifier,KeyframeNode,KmlCamera,KmlDataSource,KmlLookAt,KmlTour,KmlTourFlyTo,KmlTourWait,Label,LabelCollection,LabelGraphics,LabelStyle,LabelVisualizer,LagrangePolynomialApproximation,LeapSecond,Light,LightingModel,LightingPipelineStage,LinearApproximation,LinearSpline,ManagedArray,MapMode2D,MapProjection,MapboxImageryProvider,MapboxStyleImageryProvider,Material,MaterialAppearance,MaterialPipelineStage,MaterialProperty,Math,Matrix2,Matrix3,Matrix4,Megatexture,MetadataClass,MetadataClassProperty,MetadataComponentType,MetadataEntity,MetadataEnum,MetadataEnumValue,MetadataPipelineStage,MetadataSchema,MetadataSchemaLoader,MetadataSemantic,MetadataTable,MetadataTableProperty,MetadataType,MipmapHint,Model,Model3DTileContent,ModelAlphaOptions,ModelAnimation,ModelAnimationChannel,ModelAnimationCollection,ModelAnimationLoop,ModelAnimationState,ModelArticulation,ModelArticulationStage,ModelClippingPlanesPipelineStage,ModelColorPipelineStage,ModelComponents,ModelDrawCommand,ModelFeature,ModelFeatureTable,ModelGraphics,ModelLightingOptions,ModelMatrixUpdateStage,ModelNode,ModelRenderResources,ModelRuntimeNode,ModelRuntimePrimitive,ModelSceneGraph,ModelSilhouettePipelineStage,ModelSkin,ModelSplitterPipelineStage,ModelStatistics,ModelType,ModelUtility,ModelVisualizer,Moon,MorphTargetsPipelineStage,MorphWeightSpline,MortonOrder,Multiple3DTileContent,MultisampleFramebuffer,NavigationHelpButton,NavigationHelpButtonViewModel,NearFarScalar,NeverTileDiscardPolicy,NodeRenderResources,NodeStatisticsPipelineStage,NodeTransformationProperty,OIT,Occluder,OctahedralProjectedCubeMap,OffsetGeometryInstanceAttribute,OpenCageGeocoderService,OpenStreetMapImageryProvider,OrderedGroundPrimitiveCollection,OrientedBoundingBox,OrthographicFrustum,OrthographicOffCenterFrustum,Packable,PackableForInterpolation,Particle,ParticleBurst,ParticleEmitter,ParticleSystem,Pass,PassState,PathGraphics,PathVisualizer,PeliasGeocoderService,PerInstanceColorAppearance,PerformanceDisplay,PerformanceWatchdog,PerformanceWatchdogViewModel,PerspectiveFrustum,PerspectiveOffCenterFrustum,PickDepth,PickDepthFramebuffer,PickFramebuffer,Picking,PickingPipelineStage,PinBuilder,PixelDatatype,PixelFormat,Plane,PlaneGeometry,PlaneGeometryUpdater,PlaneGraphics,PlaneOutlineGeometry,PntsLoader,PntsParser,PointCloud,PointCloudEyeDomeLighting,PointCloudShading,PointCloudStylingPipelineStage,PointGraphics,PointPrimitive,PointPrimitiveCollection,PointVisualizer,PolygonGeometry,PolygonGeometryLibrary,PolygonGeometryUpdater,PolygonGraphics,PolygonHierarchy,PolygonOutlineGeometry,PolygonPipeline,Polyline,PolylineArrowMaterialProperty,PolylineCollection,PolylineColorAppearance,PolylineDashMaterialProperty,PolylineGeometry,PolylineGeometryUpdater,PolylineGlowMaterialProperty,PolylineGraphics,PolylineMaterialAppearance,PolylineOutlineMaterialProperty,PolylinePipeline,PolylineVisualizer,PolylineVolumeGeometry,PolylineVolumeGeometryLibrary,PolylineVolumeGeometryUpdater,PolylineVolumeGraphics,PolylineVolumeOutlineGeometry,PositionProperty,PositionPropertyArray,PostProcessStage,PostProcessStageCollection,PostProcessStageComposite,PostProcessStageLibrary,PostProcessStageSampleMode,PostProcessStageTextureCache,Primitive,PrimitiveCollection,PrimitiveLoadPlan,PrimitiveOutlineGenerator,PrimitiveOutlinePipelineStage,PrimitivePipeline,PrimitiveRenderResources,PrimitiveState,PrimitiveStatisticsPipelineStage,PrimitiveType,ProjectionPicker,ProjectionPickerViewModel,Property,PropertyArray,PropertyAttribute,PropertyAttributeProperty,PropertyBag,PropertyTable,PropertyTexture,PropertyTextureProperty,ProviderViewModel,Proxy,QuadraticRealPolynomial,QuadtreeOccluders,QuadtreePrimitive,QuadtreeTile,QuadtreeTileLoadState,QuadtreeTileProvider,QuantizedMeshTerrainData,QuarticRealPolynomial,Quaternion,QuaternionSpline,Queue,Ray,Rectangle,RectangleCollisionChecker,RectangleGeometry,RectangleGeometryLibrary,RectangleGeometryUpdater,RectangleGraphics,RectangleOutlineGeometry,ReferenceFrame,ReferenceProperty,RenderState,Renderbuffer,RenderbufferFormat,Request,RequestErrorEvent,RequestScheduler,RequestState,RequestType,Resource,ResourceCache,ResourceCacheKey,ResourceCacheStatistics,ResourceLoader,ResourceLoaderState,Rotation,RuntimeError,S2Cell,SDFSettings,SampledPositionProperty,SampledProperty,Sampler,ScaledPositionProperty,Scene,SceneFramebuffer,SceneMode,SceneMode2DPipelineStage,SceneModePicker,SceneModePickerViewModel,SceneTransforms,SceneTransitioner,ScreenSpaceCameraController,ScreenSpaceEventHandler,ScreenSpaceEventType,SelectedFeatureIdPipelineStage,SelectionIndicator,SelectionIndicatorViewModel,ShaderBuilder,ShaderCache,ShaderDestination,ShaderFunction,ShaderProgram,ShaderSource,ShaderStruct,ShadowMap,ShadowMapShader,ShadowMode,ShadowVolumeAppearance,ShowGeometryInstanceAttribute,Simon1994PlanetaryPositions,SimplePolylineGeometry,SingleTileImageryProvider,SkinningPipelineStage,SkyAtmosphere,SkyBox,SpatialNode,SphereEmitter,SphereGeometry,SphereOutlineGeometry,Spherical,Spline,SplitDirection,Splitter,StaticGeometryColorBatch,StaticGeometryPerMaterialBatch,StaticGroundGeometryColorBatch,StaticGroundGeometryPerMaterialBatch,StaticGroundPolylinePerMaterialBatch,StaticOutlineGeometryBatch,StencilConstants,StencilFunction,StencilOperation,SteppedSpline,StripeMaterialProperty,StripeOrientation,StructuralMetadata,StyleCommandsNeeded,StyleExpression,Sun,SunLight,SunPostProcess,SupportedImageFormats,SvgPathBindingHandler,TaskProcessor,Terrain,TerrainData,TerrainEncoding,TerrainExaggeration,TerrainFillMesh,TerrainMesh,TerrainOffsetProperty,TerrainProvider,TerrainQuantization,TerrainState,Texture,TextureAtlas,TextureCache,TextureMagnificationFilter,TextureManager,TextureMinificationFilter,TextureUniform,TextureWrap,TileAvailability,TileBoundingRegion,TileBoundingS2Cell,TileBoundingSphere,TileBoundingVolume,TileCoordinatesImageryProvider,TileDiscardPolicy,TileEdge,TileImagery,TileMapServiceImageryProvider,TileMetadata,TileOrientedBoundingBox,TileProviderError,TileReplacementQueue,TileSelectionResult,TileState,Tileset3DTileContent,TilesetMetadata,TilesetPipelineStage,TilingScheme,TimeConstants,TimeDynamicImagery,TimeDynamicPointCloud,TimeInterval,TimeIntervalCollection,TimeIntervalCollectionPositionProperty,TimeIntervalCollectionProperty,TimeStandard,Timeline,TimelineHighlightRange,TimelineTrack,Tipsify,ToggleButtonViewModel,Tonemapper,Transforms,TranslationRotationScale,TranslucentTileClassification,TridiagonalSystemSolver,TrustedServers,TweenCollection,UniformState,UniformType,UrlTemplateImageryProvider,VERSION,VRButton,VRButtonViewModel,VRTheWorldTerrainProvider,VaryingType,Vector3DTileBatch,Vector3DTileClampedPolylines,Vector3DTileContent,Vector3DTileGeometry,Vector3DTilePoints,Vector3DTilePolygons,Vector3DTilePolylines,Vector3DTilePrimitive,VelocityOrientationProperty,VelocityVectorProperty,VertexArray,VertexArrayFacade,VertexAttributeSemantic,VertexFormat,VerticalOrigin,VideoSynchronizer,View,Viewer,ViewportQuad,Visibility,Visualizer,VoxelBoxShape,VoxelContent,VoxelCylinderShape,VoxelEllipsoidShape,VoxelInspector,VoxelInspectorViewModel,VoxelPrimitive,VoxelProvider,VoxelRenderResources,VoxelShape,VoxelShapeType,VoxelTraversal,VulkanConstants,WallGeometry,WallGeometryLibrary,WallGeometryUpdater,WallGraphics,WallOutlineGeometry,WebGLConstants,WebMapServiceImageryProvider,WebMapTileServiceImageryProvider,WebMercatorProjection,WebMercatorTilingScheme,WindingOrder,WireframeIndexGenerator,WireframePipelineStage,_shadersAcesTonemappingStage,_shadersAdditiveBlend,_shadersAdjustTranslucentFS,_shadersAllMaterialAppearanceFS,_shadersAllMaterialAppearanceVS,_shadersAmbientOcclusionGenerate,_shadersAmbientOcclusionModulate,_shadersAspectRampMaterial,_shadersAtmosphereCommon,_shadersBasicMaterialAppearanceFS,_shadersBasicMaterialAppearanceVS,_shadersBillboardCollectionFS,_shadersBillboardCollectionVS,_shadersBlackAndWhite,_shadersBloomComposite,_shadersBrdfLutGeneratorFS,_shadersBrightPass,_shadersBrightness,_shadersBumpMapMaterial,_shadersCPUStylingStageFS,_shadersCPUStylingStageVS,_shadersCheckerboardMaterial,_shadersCloudCollectionFS,_shadersCloudCollectionVS,_shadersCloudNoiseFS,_shadersCloudNoiseVS,_shadersCompareAndPackTranslucentDepth,_shadersCompositeOITFS,_shadersCompositeTranslucentClassification,_shadersContrastBias,_shadersCustomShaderStageFS,_shadersCustomShaderStageVS,_shadersCzmBuiltins,_shadersDepthOfField,_shadersDepthPlaneFS,_shadersDepthPlaneVS,_shadersDepthView,_shadersDepthViewPacked,_shadersDotMaterial,_shadersEdgeDetection,_shadersElevationBandMaterial,_shadersElevationContourMaterial,_shadersElevationRampMaterial,_shadersEllipsoidFS,_shadersEllipsoidSurfaceAppearanceFS,_shadersEllipsoidSurfaceAppearanceVS,_shadersEllipsoidVS,_shadersFXAA,_shadersFXAA3_11,_shadersFadeMaterial,_shadersFeatureIdStageFS,_shadersFeatureIdStageVS,_shadersFilmicTonemapping,_shadersGaussianBlur1D,_shadersGeometryStageFS,_shadersGeometryStageVS,_shadersGlobeFS,_shadersGlobeVS,_shadersGridMaterial,_shadersGroundAtmosphere,_shadersHSBToRGB,_shadersHSLToRGB,_shadersImageBasedLightingStageFS,_shadersInstancingStageCommon,_shadersInstancingStageVS,_shadersIntersectBox,_shadersIntersectClippingPlanes,_shadersIntersectCylinder,_shadersIntersectDepth,_shadersIntersectEllipsoid,_shadersIntersection,_shadersIntersectionUtils,_shadersLegacyInstancingStageVS,_shadersLensFlare,_shadersLightingStageFS,_shadersMaterialStageFS,_shadersMegatexture,_shadersMetadataStageFS,_shadersMetadataStageVS,_shadersModelClippingPlanesStageFS,_shadersModelColorStageFS,_shadersModelFS,_shadersModelSilhouetteStageFS,_shadersModelSilhouetteStageVS,_shadersModelSplitterStageFS,_shadersModelVS,_shadersModifiedReinhardTonemapping,_shadersMorphTargetsStageVS,_shadersNightVision,_shadersNormalMapMaterial,_shadersOctahedralProjectionAtlasFS,_shadersOctahedralProjectionFS,_shadersOctahedralProjectionVS,_shadersOctree,_shadersPassThrough,_shadersPassThroughDepth,_shadersPerInstanceColorAppearanceFS,_shadersPerInstanceColorAppearanceVS,_shadersPerInstanceFlatColorAppearanceFS,_shadersPerInstanceFlatColorAppearanceVS,_shadersPointCloudEyeDomeLighting,_shadersPointCloudStylingStageVS,_shadersPointPrimitiveCollectionFS,_shadersPointPrimitiveCollectionVS,_shadersPolylineArrowMaterial,_shadersPolylineColorAppearanceVS,_shadersPolylineCommon,_shadersPolylineDashMaterial,_shadersPolylineFS,_shadersPolylineGlowMaterial,_shadersPolylineMaterialAppearanceVS,_shadersPolylineOutlineMaterial,_shadersPolylineShadowVolumeFS,_shadersPolylineShadowVolumeMorphFS,_shadersPolylineShadowVolumeMorphVS,_shadersPolylineShadowVolumeVS,_shadersPolylineVS,_shadersPrimitiveOutlineStageFS,_shadersPrimitiveOutlineStageVS,_shadersRGBToHSB,_shadersRGBToHSL,_shadersRGBToXYZ,_shadersReinhardTonemapping,_shadersReprojectWebMercatorFS,_shadersReprojectWebMercatorVS,_shadersRimLightingMaterial,_shadersSelectedFeatureIdStageCommon,_shadersShadowVolumeAppearanceFS,_shadersShadowVolumeAppearanceVS,_shadersShadowVolumeFS,_shadersSilhouette,_shadersSkinningStageVS,_shadersSkyAtmosphereCommon,_shadersSkyAtmosphereFS,_shadersSkyAtmosphereVS,_shadersSkyBoxFS,_shadersSkyBoxVS,_shadersSlopeRampMaterial,_shadersStripeMaterial,_shadersSunFS,_shadersSunTextureFS,_shadersSunVS,_shadersTexturedMaterialAppearanceFS,_shadersTexturedMaterialAppearanceVS,_shadersVector3DTileClampedPolylinesFS,_shadersVector3DTileClampedPolylinesVS,_shadersVector3DTilePolylinesVS,_shadersVectorTileVS,_shadersViewportQuadFS,_shadersViewportQuadVS,_shadersVoxelFS,_shadersVoxelVS,_shadersWater,_shadersXYZToRGB,_shadersacesTonemapping,_shadersalphaWeight,_shadersantialias,_shadersapproximateSphericalCoordinates,_shadersbackFacing,_shadersbranchFreeTernary,_shaderscascadeColor,_shaderscascadeDistance,_shaderscascadeMatrix,_shaderscascadeWeights,_shaderscolumbusViewMorph,_shaderscomputePosition,_shadersconvertUvToBox,_shadersconvertUvToCylinder,_shadersconvertUvToEllipsoid,_shaderscosineAndSine,_shadersdecompressTextureCoordinates,_shadersdefaultPbrMaterial,_shadersdegreesPerRadian,_shadersdepthClamp,_shadersdepthRange,_shadersdepthRangeStruct,_shaderseastNorthUpToEyeCoordinates,_shadersellipsoidContainsPoint,_shadersellipsoidWgs84TextureCoordinates,_shadersepsilon1,_shadersepsilon2,_shadersepsilon3,_shadersepsilon4,_shadersepsilon5,_shadersepsilon6,_shadersepsilon7,_shadersequalsEpsilon,_shaderseyeOffset,_shaderseyeToWindowCoordinates,_shadersfastApproximateAtan,_shadersfog,_shadersgammaCorrect,_shadersgeodeticSurfaceNormal,_shadersgetDefaultMaterial,_shadersgetLambertDiffuse,_shadersgetSpecular,_shadersgetWaterNoise,_shadershue,_shadersinfinity,_shadersinverseGamma,_shadersisEmpty,_shadersisFull,_shaderslatitudeToWebMercatorFraction,_shaderslineDistance,_shaderslinearToSrgb,_shadersluminance,_shadersmaterial,_shadersmaterialInput,_shadersmetersPerPixel,_shadersmodelMaterial,_shadersmodelToWindowCoordinates,_shadersmodelVertexOutput,_shadersmultiplyWithColorBalance,_shadersnearFarScalar,_shadersoctDecode,_shadersoneOverPi,_shadersoneOverTwoPi,_shaderspackDepth,_shaderspassCesium3DTile,_shaderspassCesium3DTileClassification,_shaderspassCesium3DTileClassificationIgnoreShow,_shaderspassClassification,_shaderspassCompute,_shaderspassEnvironment,_shaderspassGlobe,_shaderspassOpaque,_shaderspassOverlay,_shaderspassTerrainClassification,_shaderspassTranslucent,_shaderspassVoxels,_shaderspbrLighting,_shaderspbrMetallicRoughnessMaterial,_shaderspbrParameters,_shaderspbrSpecularGlossinessMaterial,_shadersphong,_shaderspi,_shaderspiOverFour,_shaderspiOverSix,_shaderspiOverThree,_shaderspiOverTwo,_shadersplaneDistance,_shaderspointAlongRay,_shadersradiansPerDegree,_shadersray,_shadersrayEllipsoidIntersectionInterval,_shadersraySegment,_shadersraySphereIntersectionInterval,_shadersreadDepth,_shadersreadNonPerspective,_shadersreverseLogDepth,_shadersround,_shaderssampleOctahedralProjection,_shaderssaturation,_shaderssceneMode2D,_shaderssceneMode3D,_shaderssceneModeColumbusView,_shaderssceneModeMorphing,_shadersshadowDepthCompare,_shadersshadowParameters,_shadersshadowVisibility,_shaderssignNotZero,_shaderssolarRadius,_shaderssphericalHarmonics,_shaderssrgbToLinear,_shaderstangentToEyeSpaceMatrix,_shaderstextureCube,_shadersthreePiOver2,_shaderstransformPlane,_shaderstranslateRelativeToEye,_shaderstranslucentPhong,_shaderstranspose,_shaderstwoPi,_shadersunpackDepth,_shadersunpackFloat,_shadersunpackUint,_shadersvalueTransform,_shadersvertexLogDepth,_shaderswebMercatorMaxLatitude,_shaderswindowToEyeCoordinates,_shaderswriteDepthClamp,_shaderswriteLogDepth,_shaderswriteNonPerspective,addBuffer,addDefaults,addExtensionsRequired,addExtensionsUsed,addPipelineExtras,addToArray,appendForwardSlash,arrayRemoveDuplicates,barycentricCoordinates,binarySearch,buildDrawCommand,buildModuleUrl,buildVoxelDrawCommands,clone,combine,computeFlyToLocationForRectangle,createBillboardPointCallback,createCommand,createDefaultImageryProviderViewModels,createDefaultTerrainProviderViewModels,createElevationBandMaterial,createGuid,createMaterialPropertyDescriptor,createOsmBuildings,createOsmBuildingsAsync,createPropertyDescriptor,createRawPropertyDescriptor,createTangentSpaceDebugPrimitive,createTaskProcessorWorker,createUniform,createUniformArray,createWorldImagery,createWorldImageryAsync,createWorldTerrain,createWorldTerrainAsync,decodeGoogleEarthEnterpriseData,decodeVectorPolylinePositions,defaultValue,defer,defined,demodernizeShader,deprecationWarning,destroyObject,exportKml,findAccessorMinMax,findContentMetadata,findGroupMetadata,findTileMetadata,forEachTextureInMaterial,formatError,freezeRenderState,getAbsoluteUri,getAccessorByteStride,getBaseUri,getBinaryAccessor,getClipAndStyleCode,getClippingFunction,getComponentReader,getElement,getExtensionFromUri,getFilenameFromUri,getImageFromTypedArray,getImagePixels,getJsonFromTypedArray,getMagic,getStringFromTypedArray,getTimestamp,hasExtension,heightReferenceOnEntityPropertyChanged,isBitSet,isBlobUri,isCrossOriginUrl,isDataUri,isLeapYear,knockout,knockout_3_5_1,knockout_es5,loadAndExecuteScript,loadCubeMap,loadImageFromTypedArray,loadKTX2,mergeSort,moveTechniqueRenderStates,moveTechniquesToExtension,numberOfComponentsForType,objectToQuery,oneTimeWarning,parseBatchTable,parseBoundingVolumeSemantics,parseFeatureMetadataLegacy,parseGlb,parseResponseHeaders,parseStructuralMetadata,pointInsideTriangle,preprocess3DTileContent,processVoxelProperties,queryToObject,readAccessorPacked,removeExtension,removeExtensionsRequired,removeExtensionsUsed,removePipelineExtras,removeUnusedElements,resizeImageToNextPowerOfTwo,sampleTerrain,sampleTerrainMostDetailed,scaleToGeodeticSurface,subdivideArray,subscribeAndEvaluate,updateAccessorComponentTypes,updateVersion,usesExtension,viewerCesium3DTilesInspectorMixin,viewerCesiumInspectorMixin,viewerDragDropMixin,viewerPerformanceWatchdogMixin,viewerVoxelInspectorMixin,webGLConstantToGlslType,wrapFunction,writeTextToCanvas}); diff --git a/public/static/Cesium/index.js b/public/static/Cesium/index.js new file mode 100644 index 0000000..58e46ed --- /dev/null +++ b/public/static/Cesium/index.js @@ -0,0 +1,14506 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.105 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var _xe=Object.create;var _X=Object.defineProperty;var gxe=Object.getOwnPropertyDescriptor;var yxe=Object.getOwnPropertyNames;var Axe=Object.getPrototypeOf,xxe=Object.prototype.hasOwnProperty;var jI=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var Nc=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Cxe=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of yxe(t))!xxe.call(e,o)&&o!==n&&_X(e,o,{get:()=>t[o],enumerable:!(i=gxe(t,o))||i.enumerable});return e};var ar=(e,t,n)=>(n=e!=null?_xe(Axe(e)):{},Cxe(t||!e||!e.__esModule?_X(n,"default",{value:e,enumerable:!0}):n,e));var YI=Nc(($yt,yX)=>{var xh=function(e){e==null&&(e=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,e.constructor==Array?this.init_by_array(e,e.length):this.init_seed(e)};xh.prototype.init_seed=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(((e&4294901760)>>>16)*1812433253<<16)+(e&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};xh.prototype.init_by_array=function(e,t){var n,i,o;for(this.init_seed(19650218),n=1,i=0,o=this.N>t?this.N:t;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1664525<<16)+(r&65535)*1664525)+e[i]+i,this.mt[n]>>>=0,n++,i++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1),i>=t&&(i=0)}for(o=this.N-1;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1566083941<<16)+(r&65535)*1566083941)-n,this.mt[n]>>>=0,n++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1)}this.mt[0]=2147483648};xh.prototype.random_int=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_seed(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[e&1];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[e&1];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[e&1],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0};xh.prototype.random_int31=function(){return this.random_int()>>>1};xh.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};xh.prototype.random=function(){return this.random_int()*(1/4294967296)};xh.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};xh.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)};yX.exports=xh});var UK=Nc((wx,vx)=>{/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof wx=="object"&&wx&&!wx.nodeType&&wx,n=typeof vx=="object"&&vx&&!vx.nodeType&&vx,i=typeof global=="object"&&global;(i.global===i||i.window===i||i.self===i)&&(e=i);var o,r=2147483647,s=36,a=1,c=26,u=38,f=700,d=72,p=128,g="-",h=/^xn--/,A=/[^\x20-\x7E]/,x=/[\x2E\u3002\uFF0E\uFF61]/g,C={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},T=s-a,E=Math.floor,S=String.fromCharCode,v;function D(V){throw new RangeError(C[V])}function O(V,G){for(var U=V.length,q=[];U--;)q[U]=G(V[U]);return q}function M(V,G){var U=V.split("@"),q="";U.length>1&&(q=U[0]+"@",V=U[1]),V=V.replace(x,".");var Y=V.split("."),Q=O(Y,G).join(".");return q+Q}function L(V){for(var G=[],U=0,q=V.length,Y,Q;U<q;)Y=V.charCodeAt(U++),Y>=55296&&Y<=56319&&U<q?(Q=V.charCodeAt(U++),(Q&64512)==56320?G.push(((Y&1023)<<10)+(Q&1023)+65536):(G.push(Y),U--)):G.push(Y);return G}function N(V){return O(V,function(G){var U="";return G>65535&&(G-=65536,U+=S(G>>>10&1023|55296),G=56320|G&1023),U+=S(G),U}).join("")}function _(V){return V-48<10?V-22:V-65<26?V-65:V-97<26?V-97:s}function b(V,G){return V+22+75*(V<26)-((G!=0)<<5)}function w(V,G,U){var q=0;for(V=U?E(V/f):V>>1,V+=E(V/G);V>T*c>>1;q+=s)V=E(V/T);return E(q+(T+1)*V/(V+u))}function I(V){var G=[],U=V.length,q,Y=0,Q=p,W=d,K,J,_e,xe,se,Ae,me,Se,Ie;for(K=V.lastIndexOf(g),K<0&&(K=0),J=0;J<K;++J)V.charCodeAt(J)>=128&&D("not-basic"),G.push(V.charCodeAt(J));for(_e=K>0?K+1:0;_e<U;){for(xe=Y,se=1,Ae=s;_e>=U&&D("invalid-input"),me=_(V.charCodeAt(_e++)),(me>=s||me>E((r-Y)/se))&&D("overflow"),Y+=me*se,Se=Ae<=W?a:Ae>=W+c?c:Ae-W,!(me<Se);Ae+=s)Ie=s-Se,se>E(r/Ie)&&D("overflow"),se*=Ie;q=G.length+1,W=w(Y-xe,q,xe==0),E(Y/q)>r-Q&&D("overflow"),Q+=E(Y/q),Y%=q,G.splice(Y++,0,Q)}return N(G)}function R(V){var G,U,q,Y,Q,W,K,J,_e,xe,se,Ae=[],me,Se,Ie,Ue;for(V=L(V),me=V.length,G=p,U=0,Q=d,W=0;W<me;++W)se=V[W],se<128&&Ae.push(S(se));for(q=Y=Ae.length,Y&&Ae.push(g);q<me;){for(K=r,W=0;W<me;++W)se=V[W],se>=G&&se<K&&(K=se);for(Se=q+1,K-G>E((r-U)/Se)&&D("overflow"),U+=(K-G)*Se,G=K,W=0;W<me;++W)if(se=V[W],se<G&&++U>r&&D("overflow"),se==G){for(J=U,_e=s;xe=_e<=Q?a:_e>=Q+c?c:_e-Q,!(J<xe);_e+=s)Ue=J-xe,Ie=s-xe,Ae.push(S(b(xe+Ue%Ie,0))),J=E(Ue/Ie);Ae.push(S(b(J,0))),Q=w(U,Se,q==Y),U=0,++q}++U,++G}return Ae.join("")}function F(V){return M(V,function(G){return h.test(G)?I(G.slice(4).toLowerCase()):G})}function k(V){return M(V,function(G){return A.test(G)?"xn--"+R(G):G})}if(o={version:"1.3.2",ucs2:{decode:L,encode:N},decode:I,encode:R,toASCII:k,toUnicode:F},typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return o});else if(t&&n)if(vx.exports==t)n.exports=o;else for(v in o)o.hasOwnProperty(v)&&(t[v]=o[v]);else e.punycode=o})(wx)});var kK=Nc((VK,TP)=>{/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof TP=="object"&&TP.exports?TP.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(VK,function(e){"use strict";var t=e&&e.IPv6;function n(o){var r=o.toLowerCase(),s=r.split(":"),a=s.length,c=8;s[0]===""&&s[1]===""&&s[2]===""?(s.shift(),s.shift()):s[0]===""&&s[1]===""?s.shift():s[a-1]===""&&s[a-2]===""&&s.pop(),a=s.length,s[a-1].indexOf(".")!==-1&&(c=7);var u;for(u=0;u<a&&s[u]!=="";u++);if(u<c)for(s.splice(u,1,"0000");s.length<c;)s.splice(u,0,"0000");for(var f,d=0;d<c;d++){f=s[d].split("");for(var p=0;p<3&&(f[0]==="0"&&f.length>1);p++)f.splice(0,1);s[d]=f.join("")}var g=-1,h=0,A=0,x=-1,C=!1;for(d=0;d<c;d++)C?s[d]==="0"?A+=1:(C=!1,A>h&&(g=x,h=A)):s[d]==="0"&&(C=!0,x=d,A=1);A>h&&(g=x,h=A),h>1&&s.splice(g,h,""),a=s.length;var T="";for(s[0]===""&&(T=":"),d=0;d<a&&(T+=s[d],d!==a-1);d++)T+=":";return s[a-1]===""&&(T+=":"),T}function i(){return e.IPv6===this&&(e.IPv6=t),this}return{best:n,noConflict:i}})});var HK=Nc((zK,EP)=>{/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof EP=="object"&&EP.exports?EP.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(zK,function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(r+1,o)+" ")>=0:!1},is:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r>=0)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(0,o)+" ")>=0:!1},get:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return null;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return null;var s=n.list[i.slice(o+1)];return!s||s.indexOf(" "+i.slice(r+1,o)+" ")<0?null:i.slice(r+1)},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n})});var bl=Nc((GK,bP)=>{/*! + * URI.js - Mutating URLs + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof bP=="object"&&bP.exports?bP.exports=t(UK(),kK(),HK()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(GK,function(e,t,n,i){"use strict";var o=i&&i.URI;function r(b,w){var I=arguments.length>=1,R=arguments.length>=2;if(!(this instanceof r))return I?R?new r(b,w):new r(b):new r;if(b===void 0){if(I)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?b=location.href+"":b=""}if(b===null&&I)throw new TypeError("null is not a valid argument for URI");return this.href(b),w!==void 0?this.absoluteTo(w):this}function s(b){return/^[0-9]+$/.test(b)}r.version="1.19.11";var a=r.prototype,c=Object.prototype.hasOwnProperty;function u(b){return b.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function f(b){return b===void 0?"Undefined":String(Object.prototype.toString.call(b)).slice(8,-1)}function d(b){return f(b)==="Array"}function p(b,w){var I={},R,F;if(f(w)==="RegExp")I=null;else if(d(w))for(R=0,F=w.length;R<F;R++)I[w[R]]=!0;else I[w]=!0;for(R=0,F=b.length;R<F;R++){var k=I&&I[b[R]]!==void 0||!I&&w.test(b[R]);k&&(b.splice(R,1),F--,R--)}return b}function g(b,w){var I,R;if(d(w)){for(I=0,R=w.length;I<R;I++)if(!g(b,w[I]))return!1;return!0}var F=f(w);for(I=0,R=b.length;I<R;I++)if(F==="RegExp"){if(typeof b[I]=="string"&&b[I].match(w))return!0}else if(b[I]===w)return!0;return!1}function h(b,w){if(!d(b)||!d(w)||b.length!==w.length)return!1;b.sort(),w.sort();for(var I=0,R=b.length;I<R;I++)if(b[I]!==w[I])return!1;return!0}function A(b){var w=/^\/+|\/+$/g;return b.replace(w,"")}r._parts=function(){return{protocol:null,username:null,password:null,hostname:null,urn:null,port:null,path:null,query:null,fragment:null,preventInvalidHostname:r.preventInvalidHostname,duplicateQueryParameters:r.duplicateQueryParameters,escapeQuerySpace:r.escapeQuerySpace}},r.preventInvalidHostname=!1,r.duplicateQueryParameters=!1,r.escapeQuerySpace=!0,r.protocol_expression=/^[a-z][a-z0-9.+-]*$/i,r.idn_expression=/[^a-z0-9\._-]/i,r.punycode_expression=/(xn--)/i,r.ip4_expression=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,r.ip6_expression=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,r.find_uri_expression=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig,r.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},r.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,r.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},r.hostProtocols=["http","https"],r.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,r.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},r.getDomAttribute=function(b){if(!(!b||!b.nodeName)){var w=b.nodeName.toLowerCase();if(!(w==="input"&&b.type!=="image"))return r.domAttributes[w]}};function x(b){return escape(b)}function C(b){return encodeURIComponent(b).replace(/[!'()*]/g,x).replace(/\*/g,"%2A")}r.encode=C,r.decode=decodeURIComponent,r.iso8859=function(){r.encode=escape,r.decode=unescape},r.unicode=function(){r.encode=C,r.decode=decodeURIComponent},r.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},r.encodeQuery=function(b,w){var I=r.encode(b+"");return w===void 0&&(w=r.escapeQuerySpace),w?I.replace(/%20/g,"+"):I},r.decodeQuery=function(b,w){b+="",w===void 0&&(w=r.escapeQuerySpace);try{return r.decode(w?b.replace(/\+/g,"%20"):b)}catch{return b}};var T={encode:"encode",decode:"decode"},E,S=function(b,w){return function(I){try{return r[w](I+"").replace(r.characters[b][w].expression,function(R){return r.characters[b][w].map[R]})}catch{return I}}};for(E in T)r[E+"PathSegment"]=S("pathname",T[E]),r[E+"UrnPathSegment"]=S("urnpath",T[E]);var v=function(b,w,I){return function(R){var F;I?F=function(U){return r[w](r[I](U))}:F=r[w];for(var k=(R+"").split(b),V=0,G=k.length;V<G;V++)k[V]=F(k[V]);return k.join(b)}};r.decodePath=v("/","decodePathSegment"),r.decodeUrnPath=v(":","decodeUrnPathSegment"),r.recodePath=v("/","encodePathSegment","decode"),r.recodeUrnPath=v(":","encodeUrnPathSegment","decode"),r.encodeReserved=S("reserved","encode"),r.parse=function(b,w){var I;return w||(w={preventInvalidHostname:r.preventInvalidHostname}),b=b.replace(r.leading_whitespace_expression,""),b=b.replace(r.ascii_tab_whitespace,""),I=b.indexOf("#"),I>-1&&(w.fragment=b.substring(I+1)||null,b=b.substring(0,I)),I=b.indexOf("?"),I>-1&&(w.query=b.substring(I+1)||null,b=b.substring(0,I)),b=b.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),b=b.replace(/^[/\\]{2,}/i,"//"),b.substring(0,2)==="//"?(w.protocol=null,b=b.substring(2),b=r.parseAuthority(b,w)):(I=b.indexOf(":"),I>-1&&(w.protocol=b.substring(0,I)||null,w.protocol&&!w.protocol.match(r.protocol_expression)?w.protocol=void 0:b.substring(I+1,I+3).replace(/\\/g,"/")==="//"?(b=b.substring(I+3),b=r.parseAuthority(b,w)):(b=b.substring(I+1),w.urn=!0))),w.path=b,w},r.parseHost=function(b,w){b||(b=""),b=b.replace(/\\/g,"/");var I=b.indexOf("/"),R,F;if(I===-1&&(I=b.length),b.charAt(0)==="[")R=b.indexOf("]"),w.hostname=b.substring(1,R)||null,w.port=b.substring(R+2,I)||null,w.port==="/"&&(w.port=null);else{var k=b.indexOf(":"),V=b.indexOf("/"),G=b.indexOf(":",k+1);G!==-1&&(V===-1||G<V)?(w.hostname=b.substring(0,I)||null,w.port=null):(F=b.substring(0,I).split(":"),w.hostname=F[0]||null,w.port=F[1]||null)}return w.hostname&&b.substring(I).charAt(0)!=="/"&&(I++,b="/"+b),w.preventInvalidHostname&&r.ensureValidHostname(w.hostname,w.protocol),w.port&&r.ensureValidPort(w.port),b.substring(I)||"/"},r.parseAuthority=function(b,w){return b=r.parseUserinfo(b,w),r.parseHost(b,w)},r.parseUserinfo=function(b,w){var I=b,R=b.indexOf("\\");R!==-1&&(b=b.replace(/\\/g,"/"));var F=b.indexOf("/"),k=b.lastIndexOf("@",F>-1?F:b.length-1),V;return k>-1&&(F===-1||k<F)?(V=b.substring(0,k).split(":"),w.username=V[0]?r.decode(V[0]):null,V.shift(),w.password=V[0]?r.decode(V.join(":")):null,b=I.substring(k+1)):(w.username=null,w.password=null),b},r.parseQuery=function(b,w){if(!b)return{};if(b=b.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!b)return{};for(var I={},R=b.split("&"),F=R.length,k,V,G,U=0;U<F;U++)k=R[U].split("="),V=r.decodeQuery(k.shift(),w),G=k.length?r.decodeQuery(k.join("="),w):null,V!=="__proto__"&&(c.call(I,V)?((typeof I[V]=="string"||I[V]===null)&&(I[V]=[I[V]]),I[V].push(G)):I[V]=G);return I},r.build=function(b){var w="",I=!1;return b.protocol&&(w+=b.protocol+":"),!b.urn&&(w||b.hostname)&&(w+="//",I=!0),w+=r.buildAuthority(b)||"",typeof b.path=="string"&&(b.path.charAt(0)!=="/"&&I&&(w+="/"),w+=b.path),typeof b.query=="string"&&b.query&&(w+="?"+b.query),typeof b.fragment=="string"&&b.fragment&&(w+="#"+b.fragment),w},r.buildHost=function(b){var w="";if(b.hostname)r.ip6_expression.test(b.hostname)?w+="["+b.hostname+"]":w+=b.hostname;else return"";return b.port&&(w+=":"+b.port),w},r.buildAuthority=function(b){return r.buildUserinfo(b)+r.buildHost(b)},r.buildUserinfo=function(b){var w="";return b.username&&(w+=r.encode(b.username)),b.password&&(w+=":"+r.encode(b.password)),w&&(w+="@"),w},r.buildQuery=function(b,w,I){var R="",F,k,V,G;for(k in b)if(k!=="__proto__"&&c.call(b,k))if(d(b[k]))for(F={},V=0,G=b[k].length;V<G;V++)b[k][V]!==void 0&&F[b[k][V]+""]===void 0&&(R+="&"+r.buildQueryParameter(k,b[k][V],I),w!==!0&&(F[b[k][V]+""]=!0));else b[k]!==void 0&&(R+="&"+r.buildQueryParameter(k,b[k],I));return R.substring(1)},r.buildQueryParameter=function(b,w,I){return r.encodeQuery(b,I)+(w!==null?"="+r.encodeQuery(w,I):"")},r.addQuery=function(b,w,I){if(typeof w=="object")for(var R in w)c.call(w,R)&&r.addQuery(b,R,w[R]);else if(typeof w=="string"){if(b[w]===void 0){b[w]=I;return}else typeof b[w]=="string"&&(b[w]=[b[w]]);d(I)||(I=[I]),b[w]=(b[w]||[]).concat(I)}else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter")},r.setQuery=function(b,w,I){if(typeof w=="object")for(var R in w)c.call(w,R)&&r.setQuery(b,R,w[R]);else if(typeof w=="string")b[w]=I===void 0?null:I;else throw new TypeError("URI.setQuery() accepts an object, string as the name parameter")},r.removeQuery=function(b,w,I){var R,F,k;if(d(w))for(R=0,F=w.length;R<F;R++)b[w[R]]=void 0;else if(f(w)==="RegExp")for(k in b)w.test(k)&&(b[k]=void 0);else if(typeof w=="object")for(k in w)c.call(w,k)&&r.removeQuery(b,k,w[k]);else if(typeof w=="string")I!==void 0?f(I)==="RegExp"?!d(b[w])&&I.test(b[w])?b[w]=void 0:b[w]=p(b[w],I):b[w]===String(I)&&(!d(I)||I.length===1)?b[w]=void 0:d(b[w])&&(b[w]=p(b[w],I)):b[w]=void 0;else throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter")},r.hasQuery=function(b,w,I,R){switch(f(w)){case"String":break;case"RegExp":for(var F in b)if(c.call(b,F)&&w.test(F)&&(I===void 0||r.hasQuery(b,F,I)))return!0;return!1;case"Object":for(var k in w)if(c.call(w,k)&&!r.hasQuery(b,k,w[k]))return!1;return!0;default:throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter")}switch(f(I)){case"Undefined":return w in b;case"Boolean":var V=!!(d(b[w])?b[w].length:b[w]);return I===V;case"Function":return!!I(b[w],w,b);case"Array":if(!d(b[w]))return!1;var G=R?g:h;return G(b[w],I);case"RegExp":return d(b[w])?R?g(b[w],I):!1:!!(b[w]&&b[w].match(I));case"Number":I=String(I);case"String":return d(b[w])?R?g(b[w],I):!1:b[w]===I;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter")}},r.joinPaths=function(){for(var b=[],w=[],I=0,R=0;R<arguments.length;R++){var F=new r(arguments[R]);b.push(F);for(var k=F.segment(),V=0;V<k.length;V++)typeof k[V]=="string"&&w.push(k[V]),k[V]&&I++}if(!w.length||!I)return new r("");var G=new r("").segment(w);return(b[0].path()===""||b[0].path().slice(0,1)==="/")&&G.path("/"+G.path()),G.normalize()},r.commonPath=function(b,w){var I=Math.min(b.length,w.length),R;for(R=0;R<I;R++)if(b.charAt(R)!==w.charAt(R)){R--;break}return R<1?b.charAt(0)===w.charAt(0)&&b.charAt(0)==="/"?"/":"":((b.charAt(R)!=="/"||w.charAt(R)!=="/")&&(R=b.substring(0,R).lastIndexOf("/")),b.substring(0,R+1))},r.withinString=function(b,w,I){I||(I={});var R=I.start||r.findUri.start,F=I.end||r.findUri.end,k=I.trim||r.findUri.trim,V=I.parens||r.findUri.parens,G=/[a-z0-9-]=["']?$/i;for(R.lastIndex=0;;){var U=R.exec(b);if(!U)break;var q=U.index;if(I.ignoreHtml){var Y=b.slice(Math.max(q-3,0),q);if(Y&&G.test(Y))continue}for(var Q=q+b.slice(q).search(F),W=b.slice(q,Q),K=-1;;){var J=V.exec(W);if(!J)break;var _e=J.index+J[0].length;K=Math.max(K,_e)}if(K>-1?W=W.slice(0,K)+W.slice(K).replace(k,""):W=W.replace(k,""),!(W.length<=U[0].length)&&!(I.ignore&&I.ignore.test(W))){Q=q+W.length;var xe=w(W,q,Q,b);if(xe===void 0){R.lastIndex=Q;continue}xe=String(xe),b=b.slice(0,q)+xe+b.slice(Q),R.lastIndex=q+xe.length}}return R.lastIndex=0,b},r.ensureValidHostname=function(b,w){var I=!!b,R=!!w,F=!1;if(R&&(F=g(r.hostProtocols,w)),F&&!I)throw new TypeError("Hostname cannot be empty, if protocol is "+w);if(b&&b.match(r.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(b).match(r.invalid_hostname_characters))throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-:_]')}},r.ensureValidPort=function(b){if(b){var w=Number(b);if(!(s(w)&&w>0&&w<65536))throw new TypeError('Port "'+b+'" is not a valid port')}},r.noConflict=function(b){if(b){var w={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(w.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(w.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(w.SecondLevelDomains=i.SecondLevelDomains.noConflict()),w}else i.URI===this&&(i.URI=o);return this},a.build=function(b){return b===!0?this._deferred_build=!0:(b===void 0||this._deferred_build)&&(this._string=r.build(this._parts),this._deferred_build=!1),this},a.clone=function(){return new r(this)},a.valueOf=a.toString=function(){return this.build(!1)._string};function D(b){return function(w,I){return w===void 0?this._parts[b]||"":(this._parts[b]=w||null,this.build(!I),this)}}function O(b,w){return function(I,R){return I===void 0?this._parts[b]||"":(I!==null&&(I=I+"",I.charAt(0)===w&&(I=I.substring(1))),this._parts[b]=I,this.build(!R),this)}}a.protocol=D("protocol"),a.username=D("username"),a.password=D("password"),a.hostname=D("hostname"),a.port=D("port"),a.query=O("query","?"),a.fragment=O("fragment","#"),a.search=function(b,w){var I=this.query(b,w);return typeof I=="string"&&I.length?"?"+I:I},a.hash=function(b,w){var I=this.fragment(b,w);return typeof I=="string"&&I.length?"#"+I:I},a.pathname=function(b,w){if(b===void 0||b===!0){var I=this._parts.path||(this._parts.hostname?"/":"");return b?(this._parts.urn?r.decodeUrnPath:r.decodePath)(I):I}else return this._parts.urn?this._parts.path=b?r.recodeUrnPath(b):"":this._parts.path=b?r.recodePath(b):"/",this.build(!w),this},a.path=a.pathname,a.href=function(b,w){var I;if(b===void 0)return this.toString();this._string="",this._parts=r._parts();var R=b instanceof r,F=typeof b=="object"&&(b.hostname||b.path||b.pathname);if(b.nodeName){var k=r.getDomAttribute(b);b=b[k]||"",F=!1}if(!R&&F&&b.pathname!==void 0&&(b=b.toString()),typeof b=="string"||b instanceof String)this._parts=r.parse(String(b),this._parts);else if(R||F){var V=R?b._parts:b;for(I in V)I!=="query"&&c.call(this._parts,I)&&(this._parts[I]=V[I]);V.query&&this.query(V.query,!1)}else throw new TypeError("invalid input");return this.build(!w),this},a.is=function(b){var w=!1,I=!1,R=!1,F=!1,k=!1,V=!1,G=!1,U=!this._parts.urn;switch(this._parts.hostname&&(U=!1,I=r.ip4_expression.test(this._parts.hostname),R=r.ip6_expression.test(this._parts.hostname),w=I||R,F=!w,k=F&&n&&n.has(this._parts.hostname),V=F&&r.idn_expression.test(this._parts.hostname),G=F&&r.punycode_expression.test(this._parts.hostname)),b.toLowerCase()){case"relative":return U;case"absolute":return!U;case"domain":case"name":return F;case"sld":return k;case"ip":return w;case"ip4":case"ipv4":case"inet4":return I;case"ip6":case"ipv6":case"inet6":return R;case"idn":return V;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return G}return null};var M=a.protocol,L=a.port,N=a.hostname;a.protocol=function(b,w){if(b&&(b=b.replace(/:(\/\/)?$/,""),!b.match(r.protocol_expression)))throw new TypeError('Protocol "'+b+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return M.call(this,b,w)},a.scheme=a.protocol,a.port=function(b,w){return this._parts.urn?b===void 0?"":this:(b!==void 0&&(b===0&&(b=null),b&&(b+="",b.charAt(0)===":"&&(b=b.substring(1)),r.ensureValidPort(b))),L.call(this,b,w))},a.hostname=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b!==void 0){var I={preventInvalidHostname:this._parts.preventInvalidHostname},R=r.parseHost(b,I);if(R!=="/")throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-]');b=I.hostname,this._parts.preventInvalidHostname&&r.ensureValidHostname(b,this._parts.protocol)}return N.call(this,b,w)},a.origin=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0){var I=this.protocol(),R=this.authority();return R?(I?I+"://":"")+this.authority():""}else{var F=r(b);return this.protocol(F.protocol()).authority(F.authority()).build(!w),this}},a.host=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0)return this._parts.hostname?r.buildHost(this._parts):"";var I=r.parseHost(b,this._parts);if(I!=="/")throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.authority=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0)return this._parts.hostname?r.buildAuthority(this._parts):"";var I=r.parseAuthority(b,this._parts);if(I!=="/")throw new TypeError('Hostname "'+b+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.userinfo=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0){var I=r.buildUserinfo(this._parts);return I&&I.substring(0,I.length-1)}else return b[b.length-1]!=="@"&&(b+="@"),r.parseUserinfo(b,this._parts),this.build(!w),this},a.resource=function(b,w){var I;return b===void 0?this.path()+this.search()+this.hash():(I=r.parse(b),this._parts.path=I.path,this._parts.query=I.query,this._parts.fragment=I.fragment,this.build(!w),this)},a.subdomain=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,I)||""}else{var R=this._parts.hostname.length-this.domain().length,F=this._parts.hostname.substring(0,R),k=new RegExp("^"+u(F));if(b&&b.charAt(b.length-1)!=="."&&(b+="."),b.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return b&&r.ensureValidHostname(b,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(k,b),this.build(!w),this}},a.domain=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(typeof b=="boolean"&&(w=b,b=void 0),b===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.match(/\./g);if(I&&I.length<2)return this._parts.hostname;var R=this._parts.hostname.length-this.tld(w).length-1;return R=this._parts.hostname.lastIndexOf(".",R-1)+1,this._parts.hostname.substring(R)||""}else{if(!b)throw new TypeError("cannot set domain empty");if(b.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(r.ensureValidHostname(b,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=b;else{var F=new RegExp(u(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(F,b)}return this.build(!w),this}},a.tld=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(typeof b=="boolean"&&(w=b,b=void 0),b===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.lastIndexOf("."),R=this._parts.hostname.substring(I+1);return w!==!0&&n&&n.list[R.toLowerCase()]&&n.get(this._parts.hostname)||R}else{var F;if(b)if(b.match(/[^a-zA-Z0-9-]/))if(n&&n.is(b))F=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(F,b);else throw new TypeError('TLD "'+b+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");F=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(F,b)}else throw new TypeError("cannot set TLD empty");return this.build(!w),this}},a.directory=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0||b===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var I=this._parts.path.length-this.filename().length-1,R=this._parts.path.substring(0,I)||(this._parts.hostname?"/":"");return b?r.decodePath(R):R}else{var F=this._parts.path.length-this.filename().length,k=this._parts.path.substring(0,F),V=new RegExp("^"+u(k));return this.is("relative")||(b||(b="/"),b.charAt(0)!=="/"&&(b="/"+b)),b&&b.charAt(b.length-1)!=="/"&&(b+="/"),b=r.recodePath(b),this._parts.path=this._parts.path.replace(V,b),this.build(!w),this}},a.filename=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(typeof b!="string"){if(!this._parts.path||this._parts.path==="/")return"";var I=this._parts.path.lastIndexOf("/"),R=this._parts.path.substring(I+1);return b?r.decodePathSegment(R):R}else{var F=!1;b.charAt(0)==="/"&&(b=b.substring(1)),b.match(/\.?\//)&&(F=!0);var k=new RegExp(u(this.filename())+"$");return b=r.recodePath(b),this._parts.path=this._parts.path.replace(k,b),F?this.normalizePath(w):this.build(!w),this}},a.suffix=function(b,w){if(this._parts.urn)return b===void 0?"":this;if(b===void 0||b===!0){if(!this._parts.path||this._parts.path==="/")return"";var I=this.filename(),R=I.lastIndexOf("."),F,k;return R===-1?"":(F=I.substring(R+1),k=/^[a-z0-9%]+$/i.test(F)?F:"",b?r.decodePathSegment(k):k)}else{b.charAt(0)==="."&&(b=b.substring(1));var V=this.suffix(),G;if(V)b?G=new RegExp(u(V)+"$"):G=new RegExp(u("."+V)+"$");else{if(!b)return this;this._parts.path+="."+r.recodePath(b)}return G&&(b=r.recodePath(b),this._parts.path=this._parts.path.replace(G,b)),this.build(!w),this}},a.segment=function(b,w,I){var R=this._parts.urn?":":"/",F=this.path(),k=F.substring(0,1)==="/",V=F.split(R);if(b!==void 0&&typeof b!="number"&&(I=w,w=b,b=void 0),b!==void 0&&typeof b!="number")throw new Error('Bad segment "'+b+'", must be 0-based integer');if(k&&V.shift(),b<0&&(b=Math.max(V.length+b,0)),w===void 0)return b===void 0?V:V[b];if(b===null||V[b]===void 0)if(d(w)){V=[];for(var G=0,U=w.length;G<U;G++)!w[G].length&&(!V.length||!V[V.length-1].length)||(V.length&&!V[V.length-1].length&&V.pop(),V.push(A(w[G])))}else(w||typeof w=="string")&&(w=A(w),V[V.length-1]===""?V[V.length-1]=w:V.push(w));else w?V[b]=A(w):V.splice(b,1);return k&&V.unshift(""),this.path(V.join(R),I)},a.segmentCoded=function(b,w,I){var R,F,k;if(typeof b!="number"&&(I=w,w=b,b=void 0),w===void 0){if(R=this.segment(b,w,I),!d(R))R=R!==void 0?r.decode(R):void 0;else for(F=0,k=R.length;F<k;F++)R[F]=r.decode(R[F]);return R}if(!d(w))w=typeof w=="string"||w instanceof String?r.encode(w):w;else for(F=0,k=w.length;F<k;F++)w[F]=r.encode(w[F]);return this.segment(b,w,I)};var _=a.query;return a.query=function(b,w){if(b===!0)return r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof b=="function"){var I=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace),R=b.call(this,I);return this._parts.query=r.buildQuery(R||I,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!w),this}else return b!==void 0&&typeof b!="string"?(this._parts.query=r.buildQuery(b,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!w),this):_.call(this,b,w)},a.setQuery=function(b,w,I){var R=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof b=="string"||b instanceof String)R[b]=w!==void 0?w:null;else if(typeof b=="object")for(var F in b)c.call(b,F)&&(R[F]=b[F]);else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");return this._parts.query=r.buildQuery(R,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof b!="string"&&(I=w),this.build(!I),this},a.addQuery=function(b,w,I){var R=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.addQuery(R,b,w===void 0?null:w),this._parts.query=r.buildQuery(R,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof b!="string"&&(I=w),this.build(!I),this},a.removeQuery=function(b,w,I){var R=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.removeQuery(R,b,w),this._parts.query=r.buildQuery(R,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof b!="string"&&(I=w),this.build(!I),this},a.hasQuery=function(b,w,I){var R=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.hasQuery(R,b,w,I)},a.setSearch=a.setQuery,a.addSearch=a.addQuery,a.removeSearch=a.removeQuery,a.hasSearch=a.hasQuery,a.normalize=function(){return this._parts.urn?this.normalizeProtocol(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build():this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build()},a.normalizeProtocol=function(b){return typeof this._parts.protocol=="string"&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!b)),this},a.normalizeHostname=function(b){return this._parts.hostname&&(this.is("IDN")&&e?this._parts.hostname=e.toASCII(this._parts.hostname):this.is("IPv6")&&t&&(this._parts.hostname=t.best(this._parts.hostname)),this._parts.hostname=this._parts.hostname.toLowerCase(),this.build(!b)),this},a.normalizePort=function(b){return typeof this._parts.protocol=="string"&&this._parts.port===r.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!b)),this},a.normalizePath=function(b){var w=this._parts.path;if(!w)return this;if(this._parts.urn)return this._parts.path=r.recodeUrnPath(this._parts.path),this.build(!b),this;if(this._parts.path==="/")return this;w=r.recodePath(w);var I,R="",F,k;for(w.charAt(0)!=="/"&&(I=!0,w="/"+w),(w.slice(-3)==="/.."||w.slice(-2)==="/.")&&(w+="/"),w=w.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),I&&(R=w.substring(1).match(/^(\.\.\/)+/)||"",R&&(R=R[0]));F=w.search(/\/\.\.(\/|$)/),F!==-1;){if(F===0){w=w.substring(3);continue}k=w.substring(0,F).lastIndexOf("/"),k===-1&&(k=F),w=w.substring(0,k)+w.substring(F+3)}return I&&this.is("relative")&&(w=R+w.substring(1)),this._parts.path=w,this.build(!b),this},a.normalizePathname=a.normalizePath,a.normalizeQuery=function(b){return typeof this._parts.query=="string"&&(this._parts.query.length?this.query(r.parseQuery(this._parts.query,this._parts.escapeQuerySpace)):this._parts.query=null,this.build(!b)),this},a.normalizeFragment=function(b){return this._parts.fragment||(this._parts.fragment=null,this.build(!b)),this},a.normalizeSearch=a.normalizeQuery,a.normalizeHash=a.normalizeFragment,a.iso8859=function(){var b=r.encode,w=r.decode;r.encode=escape,r.decode=decodeURIComponent;try{this.normalize()}finally{r.encode=b,r.decode=w}return this},a.unicode=function(){var b=r.encode,w=r.decode;r.encode=C,r.decode=unescape;try{this.normalize()}finally{r.encode=b,r.decode=w}return this},a.readable=function(){var b=this.clone();b.username("").password("").normalize();var w="";if(b._parts.protocol&&(w+=b._parts.protocol+"://"),b._parts.hostname&&(b.is("punycode")&&e?(w+=e.toUnicode(b._parts.hostname),b._parts.port&&(w+=":"+b._parts.port)):w+=b.host()),b._parts.hostname&&b._parts.path&&b._parts.path.charAt(0)!=="/"&&(w+="/"),w+=b.path(!0),b._parts.query){for(var I="",R=0,F=b._parts.query.split("&"),k=F.length;R<k;R++){var V=(F[R]||"").split("=");I+="&"+r.decodeQuery(V[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),V[1]!==void 0&&(I+="="+r.decodeQuery(V[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"))}w+="?"+I.substring(1)}return w+=r.decodeQuery(b.hash(),!0),w},a.absoluteTo=function(b){var w=this.clone(),I=["protocol","username","password","hostname","port"],R,F,k;if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(b instanceof r||(b=new r(b)),w._parts.protocol||(w._parts.protocol=b._parts.protocol,this._parts.hostname))return w;for(F=0;k=I[F];F++)w._parts[k]=b._parts[k];return w._parts.path?(w._parts.path.substring(-2)===".."&&(w._parts.path+="/"),w.path().charAt(0)!=="/"&&(R=b.directory(),R=R||(b.path().indexOf("/")===0?"/":""),w._parts.path=(R?R+"/":"")+w._parts.path,w.normalizePath())):(w._parts.path=b._parts.path,w._parts.query||(w._parts.query=b._parts.query)),w.build(),w},a.relativeTo=function(b){var w=this.clone().normalize(),I,R,F,k,V;if(w._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(b=new r(b).normalize(),I=w._parts,R=b._parts,k=w.path(),V=b.path(),k.charAt(0)!=="/")throw new Error("URI is already relative");if(V.charAt(0)!=="/")throw new Error("Cannot calculate a URI relative to another relative URI");if(I.protocol===R.protocol&&(I.protocol=null),I.username!==R.username||I.password!==R.password||I.protocol!==null||I.username!==null||I.password!==null)return w.build();if(I.hostname===R.hostname&&I.port===R.port)I.hostname=null,I.port=null;else return w.build();if(k===V)return I.path="",w.build();if(F=r.commonPath(k,V),!F)return w.build();var G=R.path.substring(F.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../");return I.path=G+I.path.substring(F.length)||"./",w.build()},a.equals=function(b){var w=this.clone(),I=new r(b),R={},F={},k={},V,G,U;if(w.normalize(),I.normalize(),w.toString()===I.toString())return!0;if(V=w.query(),G=I.query(),w.query(""),I.query(""),w.toString()!==I.toString()||V.length!==G.length)return!1;R=r.parseQuery(V,this._parts.escapeQuerySpace),F=r.parseQuery(G,this._parts.escapeQuerySpace);for(U in R)if(c.call(R,U)){if(d(R[U])){if(!h(R[U],F[U]))return!1}else if(R[U]!==F[U])return!1;k[U]=!0}for(U in F)if(c.call(F,U)&&!k[U])return!1;return!0},a.preventInvalidHostname=function(b){return this._parts.preventInvalidHostname=!!b,this},a.duplicateQueryParameters=function(b){return this._parts.duplicateQueryParameters=!!b,this},a.escapeQuerySpace=function(b){return this._parts.escapeQuerySpace=!!b,this},r})});var H$=Nc((q8,X8)=>{/*! @license DOMPurify 3.0.2 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.2/LICENSE */(function(e,t){typeof q8=="object"&&typeof X8<"u"?X8.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.DOMPurify=t())})(q8,function(){"use strict";let{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:i,getOwnPropertyDescriptor:o}=Object,{freeze:r,seal:s,create:a}=Object,{apply:c,construct:u}=typeof Reflect<"u"&&Reflect;c||(c=function(ke,ft,pt){return ke.apply(ft,pt)}),r||(r=function(ke){return ke}),s||(s=function(ke){return ke}),u||(u=function(ke,ft){return new ke(...ft)});let f=v(Array.prototype.forEach),d=v(Array.prototype.pop),p=v(Array.prototype.push),g=v(String.prototype.toLowerCase),h=v(String.prototype.toString),A=v(String.prototype.match),x=v(String.prototype.replace),C=v(String.prototype.indexOf),T=v(String.prototype.trim),E=v(RegExp.prototype.test),S=D(TypeError);function v(Re){return function(ke){for(var ft=arguments.length,pt=new Array(ft>1?ft-1:0),rt=1;rt<ft;rt++)pt[rt-1]=arguments[rt];return c(Re,ke,pt)}}function D(Re){return function(){for(var ke=arguments.length,ft=new Array(ke),pt=0;pt<ke;pt++)ft[pt]=arguments[pt];return u(Re,ft)}}function O(Re,ke,ft){ft=ft||g,t&&t(Re,null);let pt=ke.length;for(;pt--;){let rt=ke[pt];if(typeof rt=="string"){let un=ft(rt);un!==rt&&(n(ke)||(ke[pt]=un),rt=un)}Re[rt]=!0}return Re}function M(Re){let ke=a(null);for(let[ft,pt]of e(Re))ke[ft]=pt;return ke}function L(Re,ke){for(;Re!==null;){let pt=o(Re,ke);if(pt){if(pt.get)return v(pt.get);if(typeof pt.value=="function")return v(pt.value)}Re=i(Re)}function ft(pt){return console.warn("fallback value for",pt),null}return ft}let N=r(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),_=r(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),b=r(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),w=r(["animate","color-profile","cursor","discard","fedropshadow","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),I=r(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),R=r(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),F=r(["#text"]),k=r(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),V=r(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),G=r(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),U=r(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),q=s(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Y=s(/<%[\w\W]*|[\w\W]*%>/gm),Q=s(/\${[\w\W]*}/gm),W=s(/^data-[\-\w.\u00B7-\uFFFF]/),K=s(/^aria-[\-\w]+$/),J=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),_e=s(/^(?:\w+script|data):/i),xe=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),se=s(/^html$/i);var Ae=Object.freeze({__proto__:null,MUSTACHE_EXPR:q,ERB_EXPR:Y,TMPLIT_EXPR:Q,DATA_ATTR:W,ARIA_ATTR:K,IS_ALLOWED_URI:J,IS_SCRIPT_OR_DATA:_e,ATTR_WHITESPACE:xe,DOCTYPE_NAME:se});let me=()=>typeof window>"u"?null:window,Se=function(ke,ft){if(typeof ke!="object"||typeof ke.createPolicy!="function")return null;let pt=null,rt="data-tt-policy-suffix";ft.currentScript&&ft.currentScript.hasAttribute(rt)&&(pt=ft.currentScript.getAttribute(rt));let un="dompurify"+(pt?"#"+pt:"");try{return ke.createPolicy(un,{createHTML(Mn){return Mn},createScriptURL(Mn){return Mn}})}catch{return console.warn("TrustedTypes policy "+un+" could not be created."),null}};function Ie(){let Re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:me(),ke=Tn=>Ie(Tn);if(ke.version="3.0.2",ke.removed=[],!Re||!Re.document||Re.document.nodeType!==9)return ke.isSupported=!1,ke;let ft=Re.document,{document:pt}=Re,{DocumentFragment:rt,HTMLTemplateElement:un,Node:Mn,Element:Wt,NodeFilter:Ze,NamedNodeMap:pe=Re.NamedNodeMap||Re.MozNamedAttrMap,HTMLFormElement:Ee,DOMParser:je,trustedTypes:fi}=Re,hi=Wt.prototype,Jo=L(hi,"cloneNode"),vs=L(hi,"nextSibling"),Ds=L(hi,"childNodes"),vr=L(hi,"parentNode");if(typeof un=="function"){let Tn=pt.createElement("template");Tn.content&&Tn.content.ownerDocument&&(pt=Tn.content.ownerDocument)}let vo=Se(fi,ft),Be=vo?vo.createHTML(""):"",{implementation:st,createNodeIterator:Qe,createDocumentFragment:$e,getElementsByTagName:_t}=pt,{importNode:kt}=ft,on={};ke.isSupported=typeof e=="function"&&typeof vr=="function"&&st&&typeof st.createHTMLDocument<"u";let{MUSTACHE_EXPR:Yi,ERB_EXPR:fo,TMPLIT_EXPR:Jr,DATA_ATTR:Zr,ARIA_ATTR:rr,IS_SCRIPT_OR_DATA:ki,ATTR_WHITESPACE:kr}=Ae,{IS_ALLOWED_URI:Nn}=Ae,cn=null,Gn=O({},[...N,..._,...b,...I,...F]),gn=null,Ca=O({},[...k,...V,...G,...U]),Wn=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Dr=null,vf=null,sr=!0,Ta=!0,Df=!1,gh=!0,zr=!1,nc=!1,Fy=!1,jd=!1,us=!1,$p=!1,dx=!1,DH=!0,tX=!1,axe="user-content-",IH=!0,Ub=!1,mx={},hx=null,nX=O({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),iX=null,oX=O({},["audio","video","img","source","image","track"]),PH=null,rX=O({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),zI="http://www.w3.org/1998/Math/MathML",HI="http://www.w3.org/2000/svg",yh="http://www.w3.org/1999/xhtml",px=yh,OH=!1,MH=null,cxe=O({},[zI,HI,yh],h),Uy,lxe=["application/xhtml+xml","text/html"],uxe="text/html",Is,_x=null,fxe=pt.createElement("form"),sX=function(De){return De instanceof RegExp||De instanceof Function},RH=function(De){_x&&_x===De||((!De||typeof De!="object")&&(De={}),De=M(De),Uy=lxe.indexOf(De.PARSER_MEDIA_TYPE)===-1?Uy=uxe:Uy=De.PARSER_MEDIA_TYPE,Is=Uy==="application/xhtml+xml"?h:g,cn="ALLOWED_TAGS"in De?O({},De.ALLOWED_TAGS,Is):Gn,gn="ALLOWED_ATTR"in De?O({},De.ALLOWED_ATTR,Is):Ca,MH="ALLOWED_NAMESPACES"in De?O({},De.ALLOWED_NAMESPACES,h):cxe,PH="ADD_URI_SAFE_ATTR"in De?O(M(rX),De.ADD_URI_SAFE_ATTR,Is):rX,iX="ADD_DATA_URI_TAGS"in De?O(M(oX),De.ADD_DATA_URI_TAGS,Is):oX,hx="FORBID_CONTENTS"in De?O({},De.FORBID_CONTENTS,Is):nX,Dr="FORBID_TAGS"in De?O({},De.FORBID_TAGS,Is):{},vf="FORBID_ATTR"in De?O({},De.FORBID_ATTR,Is):{},mx="USE_PROFILES"in De?De.USE_PROFILES:!1,sr=De.ALLOW_ARIA_ATTR!==!1,Ta=De.ALLOW_DATA_ATTR!==!1,Df=De.ALLOW_UNKNOWN_PROTOCOLS||!1,gh=De.ALLOW_SELF_CLOSE_IN_ATTR!==!1,zr=De.SAFE_FOR_TEMPLATES||!1,nc=De.WHOLE_DOCUMENT||!1,us=De.RETURN_DOM||!1,$p=De.RETURN_DOM_FRAGMENT||!1,dx=De.RETURN_TRUSTED_TYPE||!1,jd=De.FORCE_BODY||!1,DH=De.SANITIZE_DOM!==!1,tX=De.SANITIZE_NAMED_PROPS||!1,IH=De.KEEP_CONTENT!==!1,Ub=De.IN_PLACE||!1,Nn=De.ALLOWED_URI_REGEXP||J,px=De.NAMESPACE||yh,Wn=De.CUSTOM_ELEMENT_HANDLING||{},De.CUSTOM_ELEMENT_HANDLING&&sX(De.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Wn.tagNameCheck=De.CUSTOM_ELEMENT_HANDLING.tagNameCheck),De.CUSTOM_ELEMENT_HANDLING&&sX(De.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Wn.attributeNameCheck=De.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),De.CUSTOM_ELEMENT_HANDLING&&typeof De.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Wn.allowCustomizedBuiltInElements=De.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),zr&&(Ta=!1),$p&&(us=!0),mx&&(cn=O({},[...F]),gn=[],mx.html===!0&&(O(cn,N),O(gn,k)),mx.svg===!0&&(O(cn,_),O(gn,V),O(gn,U)),mx.svgFilters===!0&&(O(cn,b),O(gn,V),O(gn,U)),mx.mathMl===!0&&(O(cn,I),O(gn,G),O(gn,U))),De.ADD_TAGS&&(cn===Gn&&(cn=M(cn)),O(cn,De.ADD_TAGS,Is)),De.ADD_ATTR&&(gn===Ca&&(gn=M(gn)),O(gn,De.ADD_ATTR,Is)),De.ADD_URI_SAFE_ATTR&&O(PH,De.ADD_URI_SAFE_ATTR,Is),De.FORBID_CONTENTS&&(hx===nX&&(hx=M(hx)),O(hx,De.FORBID_CONTENTS,Is)),IH&&(cn["#text"]=!0),nc&&O(cn,["html","head","body"]),cn.table&&(O(cn,["tbody"]),delete Dr.tbody),r&&r(De),_x=De)},aX=O({},["mi","mo","mn","ms","mtext"]),cX=O({},["foreignobject","desc","title","annotation-xml"]),dxe=O({},["title","style","font","a","script"]),GI=O({},_);O(GI,b),O(GI,w);let BH=O({},I);O(BH,R);let mxe=function(De){let Ct=vr(De);(!Ct||!Ct.tagName)&&(Ct={namespaceURI:px,tagName:"template"});let Xt=g(De.tagName),To=g(Ct.tagName);return MH[De.namespaceURI]?De.namespaceURI===HI?Ct.namespaceURI===yh?Xt==="svg":Ct.namespaceURI===zI?Xt==="svg"&&(To==="annotation-xml"||aX[To]):!!GI[Xt]:De.namespaceURI===zI?Ct.namespaceURI===yh?Xt==="math":Ct.namespaceURI===HI?Xt==="math"&&cX[To]:!!BH[Xt]:De.namespaceURI===yh?Ct.namespaceURI===HI&&!cX[To]||Ct.namespaceURI===zI&&!aX[To]?!1:!BH[Xt]&&(dxe[Xt]||!GI[Xt]):!!(Uy==="application/xhtml+xml"&&MH[De.namespaceURI]):!1},Vy=function(De){p(ke.removed,{element:De});try{De.parentNode.removeChild(De)}catch{De.remove()}},LH=function(De,Ct){try{p(ke.removed,{attribute:Ct.getAttributeNode(De),from:Ct})}catch{p(ke.removed,{attribute:null,from:Ct})}if(Ct.removeAttribute(De),De==="is"&&!gn[De])if(us||$p)try{Vy(Ct)}catch{}else try{Ct.setAttribute(De,"")}catch{}},lX=function(De){let Ct,Xt;if(jd)De="<remove></remove>"+De;else{let Cu=A(De,/^[\r\n\t ]+/);Xt=Cu&&Cu[0]}Uy==="application/xhtml+xml"&&px===yh&&(De='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+De+"</body></html>");let To=vo?vo.createHTML(De):De;if(px===yh)try{Ct=new je().parseFromString(To,Uy)}catch{}if(!Ct||!Ct.documentElement){Ct=st.createDocument(px,"template",null);try{Ct.documentElement.innerHTML=OH?Be:To}catch{}}let Ps=Ct.body||Ct.documentElement;return De&&Xt&&Ps.insertBefore(pt.createTextNode(Xt),Ps.childNodes[0]||null),px===yh?_t.call(Ct,nc?"html":"body")[0]:nc?Ct.documentElement:Ps},uX=function(De){return Qe.call(De.ownerDocument||De,De,Ze.SHOW_ELEMENT|Ze.SHOW_COMMENT|Ze.SHOW_TEXT,null,!1)},hxe=function(De){return De instanceof Ee&&(typeof De.nodeName!="string"||typeof De.textContent!="string"||typeof De.removeChild!="function"||!(De.attributes instanceof pe)||typeof De.removeAttribute!="function"||typeof De.setAttribute!="function"||typeof De.namespaceURI!="string"||typeof De.insertBefore!="function"||typeof De.hasChildNodes!="function")},WI=function(De){return typeof Mn=="object"?De instanceof Mn:De&&typeof De=="object"&&typeof De.nodeType=="number"&&typeof De.nodeName=="string"},Ah=function(De,Ct,Xt){on[De]&&f(on[De],To=>{To.call(ke,Ct,Xt,_x)})},fX=function(De){let Ct;if(Ah("beforeSanitizeElements",De,null),hxe(De))return Vy(De),!0;let Xt=Is(De.nodeName);if(Ah("uponSanitizeElement",De,{tagName:Xt,allowedTags:cn}),De.hasChildNodes()&&!WI(De.firstElementChild)&&(!WI(De.content)||!WI(De.content.firstElementChild))&&E(/<[/\w]/g,De.innerHTML)&&E(/<[/\w]/g,De.textContent))return Vy(De),!0;if(!cn[Xt]||Dr[Xt]){if(!Dr[Xt]&&mX(Xt)&&(Wn.tagNameCheck instanceof RegExp&&E(Wn.tagNameCheck,Xt)||Wn.tagNameCheck instanceof Function&&Wn.tagNameCheck(Xt)))return!1;if(IH&&!hx[Xt]){let To=vr(De)||De.parentNode,Ps=Ds(De)||De.childNodes;if(Ps&&To){let Cu=Ps.length;for(let hr=Cu-1;hr>=0;--hr)To.insertBefore(Jo(Ps[hr],!0),vs(De))}}return Vy(De),!0}return De instanceof Wt&&!mxe(De)||(Xt==="noscript"||Xt==="noembed")&&E(/<\/no(script|embed)/i,De.innerHTML)?(Vy(De),!0):(zr&&De.nodeType===3&&(Ct=De.textContent,Ct=x(Ct,Yi," "),Ct=x(Ct,fo," "),Ct=x(Ct,Jr," "),De.textContent!==Ct&&(p(ke.removed,{element:De.cloneNode()}),De.textContent=Ct)),Ah("afterSanitizeElements",De,null),!1)},dX=function(De,Ct,Xt){if(DH&&(Ct==="id"||Ct==="name")&&(Xt in pt||Xt in fxe))return!1;if(!(Ta&&!vf[Ct]&&E(Zr,Ct))){if(!(sr&&E(rr,Ct))){if(!gn[Ct]||vf[Ct]){if(!(mX(De)&&(Wn.tagNameCheck instanceof RegExp&&E(Wn.tagNameCheck,De)||Wn.tagNameCheck instanceof Function&&Wn.tagNameCheck(De))&&(Wn.attributeNameCheck instanceof RegExp&&E(Wn.attributeNameCheck,Ct)||Wn.attributeNameCheck instanceof Function&&Wn.attributeNameCheck(Ct))||Ct==="is"&&Wn.allowCustomizedBuiltInElements&&(Wn.tagNameCheck instanceof RegExp&&E(Wn.tagNameCheck,Xt)||Wn.tagNameCheck instanceof Function&&Wn.tagNameCheck(Xt))))return!1}else if(!PH[Ct]){if(!E(Nn,x(Xt,kr,""))){if(!((Ct==="src"||Ct==="xlink:href"||Ct==="href")&&De!=="script"&&C(Xt,"data:")===0&&iX[De])){if(!(Df&&!E(ki,x(Xt,kr,"")))){if(Xt)return!1}}}}}}return!0},mX=function(De){return De.indexOf("-")>0},hX=function(De){let Ct,Xt,To,Ps;Ah("beforeSanitizeAttributes",De,null);let{attributes:Cu}=De;if(!Cu)return;let hr={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:gn};for(Ps=Cu.length;Ps--;){Ct=Cu[Ps];let{name:Yd,namespaceURI:NH}=Ct;if(Xt=Yd==="value"?Ct.value:T(Ct.value),To=Is(Yd),hr.attrName=To,hr.attrValue=Xt,hr.keepAttr=!0,hr.forceKeepAttr=void 0,Ah("uponSanitizeAttribute",De,hr),Xt=hr.attrValue,hr.forceKeepAttr||(LH(Yd,De),!hr.keepAttr))continue;if(!gh&&E(/\/>/i,Xt)){LH(Yd,De);continue}zr&&(Xt=x(Xt,Yi," "),Xt=x(Xt,fo," "),Xt=x(Xt,Jr," "));let pX=Is(De.nodeName);if(dX(pX,To,Xt)){if(tX&&(To==="id"||To==="name")&&(LH(Yd,De),Xt=axe+Xt),vo&&typeof fi=="object"&&typeof fi.getAttributeType=="function"&&!NH)switch(fi.getAttributeType(pX,To)){case"TrustedHTML":Xt=vo.createHTML(Xt);break;case"TrustedScriptURL":Xt=vo.createScriptURL(Xt);break}try{NH?De.setAttributeNS(NH,Yd,Xt):De.setAttribute(Yd,Xt),d(ke.removed)}catch{}}}Ah("afterSanitizeAttributes",De,null)},pxe=function Tn(De){let Ct,Xt=uX(De);for(Ah("beforeSanitizeShadowDOM",De,null);Ct=Xt.nextNode();)Ah("uponSanitizeShadowNode",Ct,null),!fX(Ct)&&(Ct.content instanceof rt&&Tn(Ct.content),hX(Ct));Ah("afterSanitizeShadowDOM",De,null)};return ke.sanitize=function(Tn){let De=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ct,Xt,To,Ps;if(OH=!Tn,OH&&(Tn="<!-->"),typeof Tn!="string"&&!WI(Tn)){if(typeof Tn.toString!="function")throw S("toString is not a function");if(Tn=Tn.toString(),typeof Tn!="string")throw S("dirty is not a string, aborting")}if(!ke.isSupported)return Tn;if(Fy||RH(De),ke.removed=[],typeof Tn=="string"&&(Ub=!1),Ub){if(Tn.nodeName){let Yd=Is(Tn.nodeName);if(!cn[Yd]||Dr[Yd])throw S("root node is forbidden and cannot be sanitized in-place")}}else if(Tn instanceof Mn)Ct=lX("<!---->"),Xt=Ct.ownerDocument.importNode(Tn,!0),Xt.nodeType===1&&Xt.nodeName==="BODY"||Xt.nodeName==="HTML"?Ct=Xt:Ct.appendChild(Xt);else{if(!us&&!zr&&!nc&&Tn.indexOf("<")===-1)return vo&&dx?vo.createHTML(Tn):Tn;if(Ct=lX(Tn),!Ct)return us?null:dx?Be:""}Ct&&jd&&Vy(Ct.firstChild);let Cu=uX(Ub?Tn:Ct);for(;To=Cu.nextNode();)fX(To)||(To.content instanceof rt&&pxe(To.content),hX(To));if(Ub)return Tn;if(us){if($p)for(Ps=$e.call(Ct.ownerDocument);Ct.firstChild;)Ps.appendChild(Ct.firstChild);else Ps=Ct;return(gn.shadowroot||gn.shadowrootmod)&&(Ps=kt.call(ft,Ps,!0)),Ps}let hr=nc?Ct.outerHTML:Ct.innerHTML;return nc&&cn["!doctype"]&&Ct.ownerDocument&&Ct.ownerDocument.doctype&&Ct.ownerDocument.doctype.name&&E(se,Ct.ownerDocument.doctype.name)&&(hr="<!DOCTYPE "+Ct.ownerDocument.doctype.name+`> +`+hr),zr&&(hr=x(hr,Yi," "),hr=x(hr,fo," "),hr=x(hr,Jr," ")),vo&&dx?vo.createHTML(hr):hr},ke.setConfig=function(Tn){RH(Tn),Fy=!0},ke.clearConfig=function(){_x=null,Fy=!1},ke.isValidAttribute=function(Tn,De,Ct){_x||RH({});let Xt=Is(Tn),To=Is(De);return dX(Xt,To,Ct)},ke.addHook=function(Tn,De){typeof De=="function"&&(on[Tn]=on[Tn]||[],p(on[Tn],De))},ke.removeHook=function(Tn){if(on[Tn])return d(on[Tn])},ke.removeHooks=function(Tn){on[Tn]&&(on[Tn]=[])},ke.removeAllHooks=function(){on={}},ke}var Ue=Ie();return Ue})});var $ie=Nc((Bhn,Qie)=>{"use strict";Qie.exports=_He;var Iw=1e20;function _He(e,t){t||(t={});var n=t.cutoff==null?.25:t.cutoff,i=t.radius==null?8:t.radius,o=t.channel||0,r,s,a,c,u,f,d,p,g,h,A;if(ArrayBuffer.isView(e)||Array.isArray(e)){if(!t.width||!t.height)throw Error("For raw data width and height should be provided by options");r=t.width,s=t.height,c=e,t.stride?f=t.stride:f=Math.floor(e.length/r/s)}else window.HTMLCanvasElement&&e instanceof window.HTMLCanvasElement?(p=e,d=p.getContext("2d"),r=p.width,s=p.height,g=d.getImageData(0,0,r,s),c=g.data,f=4):window.CanvasRenderingContext2D&&e instanceof window.CanvasRenderingContext2D?(p=e.canvas,d=e,r=p.width,s=p.height,g=d.getImageData(0,0,r,s),c=g.data,f=4):window.ImageData&&e instanceof window.ImageData&&(g=e,r=e.width,s=e.height,c=g.data,f=4);if(a=Math.max(r,s),window.Uint8ClampedArray&&c instanceof window.Uint8ClampedArray||window.Uint8Array&&c instanceof window.Uint8Array)for(u=c,c=Array(r*s),h=0,A=Math.floor(u.length/f);h<A;h++)c[h]=u[h*f+o]/255;else if(f!==1)throw Error("Raw data can have only 1 value per pixel");var x=Array(r*s),C=Array(r*s),T=Array(a),E=Array(a),S=Array(a+1),v=Array(a);for(h=0,A=r*s;h<A;h++){var D=c[h];x[h]=D===1?0:D===0?Iw:Math.pow(Math.max(0,.5-D),2),C[h]=D===1?Iw:D===0?0:Math.pow(Math.max(0,D-.5),2)}Jie(x,r,s,T,E,v,S),Jie(C,r,s,T,E,v,S);var O=window.Float32Array?new Float32Array(r*s):new Array(r*s);for(h=0,A=r*s;h<A;h++)O[h]=Math.min(Math.max(1-((x[h]-C[h])/i+n),0),1);return O}function Jie(e,t,n,i,o,r,s){for(var a=0;a<t;a++){for(var c=0;c<n;c++)i[c]=e[c*t+a];for(Zie(i,o,r,s,n),c=0;c<n;c++)e[c*t+a]=o[c]}for(c=0;c<n;c++){for(a=0;a<t;a++)i[a]=e[c*t+a];for(Zie(i,o,r,s,t),a=0;a<t;a++)e[c*t+a]=Math.sqrt(o[a])}}function Zie(e,t,n,i,o){n[0]=0,i[0]=-Iw,i[1]=+Iw;for(var r=1,s=0;r<o;r++){for(var a=(e[r]+r*r-(e[n[s]]+n[s]*n[s]))/(2*r-2*n[s]);a<=i[s];)s--,a=(e[r]+r*r-(e[n[s]]+n[s]*n[s]))/(2*r-2*n[s]);s++,n[s]=r,i[s]=a,i[s+1]=+Iw}for(r=0,s=0;r<o;r++){for(;i[s+1]<r;)s++;t[r]=(r-n[s])*(r-n[s])+e[n[s]]}}});var ooe=Nc((Zhn,MN)=>{function vHe(){var e=0,t=1,n=2,i=3,o=4,r=5,s=6,a=7,c=8,u=9,f=10,d=11,p=12,g=13,h=14,A=15,x=16,C=17,T=0,E=1,S=2,v=3,D=4;function O(_,b){return 55296<=_.charCodeAt(b)&&_.charCodeAt(b)<=56319&&56320<=_.charCodeAt(b+1)&&_.charCodeAt(b+1)<=57343}function M(_,b){b===void 0&&(b=0);var w=_.charCodeAt(b);if(55296<=w&&w<=56319&&b<_.length-1){var I=w,R=_.charCodeAt(b+1);return 56320<=R&&R<=57343?(I-55296)*1024+(R-56320)+65536:I}if(56320<=w&&w<=57343&&b>=1){var I=_.charCodeAt(b-1),R=w;return 55296<=I&&I<=56319?(I-55296)*1024+(R-56320)+65536:R}return w}function L(_,b,w){var I=[_].concat(b).concat([w]),R=I[I.length-2],F=w,k=I.lastIndexOf(h);if(k>1&&I.slice(1,k).every(function(U){return U==i})&&[i,g,C].indexOf(_)==-1)return S;var V=I.lastIndexOf(o);if(V>0&&I.slice(1,V).every(function(U){return U==o})&&[p,o].indexOf(R)==-1)return I.filter(function(U){return U==o}).length%2==1?v:D;if(R==e&&F==t)return T;if(R==n||R==e||R==t)return F==h&&b.every(function(U){return U==i})?S:E;if(F==n||F==e||F==t)return E;if(R==s&&(F==s||F==a||F==u||F==f))return T;if((R==u||R==a)&&(F==a||F==c))return T;if((R==f||R==c)&&F==c)return T;if(F==i||F==A)return T;if(F==r)return T;if(R==p)return T;var G=I.indexOf(i)!=-1?I.lastIndexOf(i)-1:I.length-2;return[g,C].indexOf(I[G])!=-1&&I.slice(G+1,-1).every(function(U){return U==i})&&F==h||R==A&&[x,C].indexOf(F)!=-1?T:b.indexOf(o)!=-1?S:R==o&&F==o?T:E}this.nextBreak=function(_,b){if(b===void 0&&(b=0),b<0)return 0;if(b>=_.length-1)return _.length;for(var w=N(M(_,b)),I=[],R=b+1;R<_.length;R++)if(!O(_,R-1)){var F=N(M(_,R));if(L(w,I,F))return R;I.push(F)}return _.length},this.splitGraphemes=function(_){for(var b=[],w=0,I;(I=this.nextBreak(_,w))<_.length;)b.push(_.slice(w,I)),w=I;return w<_.length&&b.push(_.slice(w)),b},this.iterateGraphemes=function(_){var b=0,w={next:function(){var I,R;return(R=this.nextBreak(_,b))<_.length?(I=_.slice(b,R),b=R,{value:I,done:!1}):b<_.length?(I=_.slice(b),b=_.length,{value:I,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(w[Symbol.iterator]=function(){return w}),w},this.countGraphemes=function(_){for(var b=0,w=0,I;(I=this.nextBreak(_,w))<_.length;)w=I,b++;return w<_.length&&b++,b};function N(_){return 1536<=_&&_<=1541||_==1757||_==1807||_==2274||_==3406||_==69821||70082<=_&&_<=70083||_==72250||72326<=_&&_<=72329||_==73030?p:_==13?e:_==10?t:0<=_&&_<=9||11<=_&&_<=12||14<=_&&_<=31||127<=_&&_<=159||_==173||_==1564||_==6158||_==8203||8206<=_&&_<=8207||_==8232||_==8233||8234<=_&&_<=8238||8288<=_&&_<=8292||_==8293||8294<=_&&_<=8303||55296<=_&&_<=57343||_==65279||65520<=_&&_<=65528||65529<=_&&_<=65531||113824<=_&&_<=113827||119155<=_&&_<=119162||_==917504||_==917505||917506<=_&&_<=917535||917632<=_&&_<=917759||918e3<=_&&_<=921599?n:768<=_&&_<=879||1155<=_&&_<=1159||1160<=_&&_<=1161||1425<=_&&_<=1469||_==1471||1473<=_&&_<=1474||1476<=_&&_<=1477||_==1479||1552<=_&&_<=1562||1611<=_&&_<=1631||_==1648||1750<=_&&_<=1756||1759<=_&&_<=1764||1767<=_&&_<=1768||1770<=_&&_<=1773||_==1809||1840<=_&&_<=1866||1958<=_&&_<=1968||2027<=_&&_<=2035||2070<=_&&_<=2073||2075<=_&&_<=2083||2085<=_&&_<=2087||2089<=_&&_<=2093||2137<=_&&_<=2139||2260<=_&&_<=2273||2275<=_&&_<=2306||_==2362||_==2364||2369<=_&&_<=2376||_==2381||2385<=_&&_<=2391||2402<=_&&_<=2403||_==2433||_==2492||_==2494||2497<=_&&_<=2500||_==2509||_==2519||2530<=_&&_<=2531||2561<=_&&_<=2562||_==2620||2625<=_&&_<=2626||2631<=_&&_<=2632||2635<=_&&_<=2637||_==2641||2672<=_&&_<=2673||_==2677||2689<=_&&_<=2690||_==2748||2753<=_&&_<=2757||2759<=_&&_<=2760||_==2765||2786<=_&&_<=2787||2810<=_&&_<=2815||_==2817||_==2876||_==2878||_==2879||2881<=_&&_<=2884||_==2893||_==2902||_==2903||2914<=_&&_<=2915||_==2946||_==3006||_==3008||_==3021||_==3031||_==3072||3134<=_&&_<=3136||3142<=_&&_<=3144||3146<=_&&_<=3149||3157<=_&&_<=3158||3170<=_&&_<=3171||_==3201||_==3260||_==3263||_==3266||_==3270||3276<=_&&_<=3277||3285<=_&&_<=3286||3298<=_&&_<=3299||3328<=_&&_<=3329||3387<=_&&_<=3388||_==3390||3393<=_&&_<=3396||_==3405||_==3415||3426<=_&&_<=3427||_==3530||_==3535||3538<=_&&_<=3540||_==3542||_==3551||_==3633||3636<=_&&_<=3642||3655<=_&&_<=3662||_==3761||3764<=_&&_<=3769||3771<=_&&_<=3772||3784<=_&&_<=3789||3864<=_&&_<=3865||_==3893||_==3895||_==3897||3953<=_&&_<=3966||3968<=_&&_<=3972||3974<=_&&_<=3975||3981<=_&&_<=3991||3993<=_&&_<=4028||_==4038||4141<=_&&_<=4144||4146<=_&&_<=4151||4153<=_&&_<=4154||4157<=_&&_<=4158||4184<=_&&_<=4185||4190<=_&&_<=4192||4209<=_&&_<=4212||_==4226||4229<=_&&_<=4230||_==4237||_==4253||4957<=_&&_<=4959||5906<=_&&_<=5908||5938<=_&&_<=5940||5970<=_&&_<=5971||6002<=_&&_<=6003||6068<=_&&_<=6069||6071<=_&&_<=6077||_==6086||6089<=_&&_<=6099||_==6109||6155<=_&&_<=6157||6277<=_&&_<=6278||_==6313||6432<=_&&_<=6434||6439<=_&&_<=6440||_==6450||6457<=_&&_<=6459||6679<=_&&_<=6680||_==6683||_==6742||6744<=_&&_<=6750||_==6752||_==6754||6757<=_&&_<=6764||6771<=_&&_<=6780||_==6783||6832<=_&&_<=6845||_==6846||6912<=_&&_<=6915||_==6964||6966<=_&&_<=6970||_==6972||_==6978||7019<=_&&_<=7027||7040<=_&&_<=7041||7074<=_&&_<=7077||7080<=_&&_<=7081||7083<=_&&_<=7085||_==7142||7144<=_&&_<=7145||_==7149||7151<=_&&_<=7153||7212<=_&&_<=7219||7222<=_&&_<=7223||7376<=_&&_<=7378||7380<=_&&_<=7392||7394<=_&&_<=7400||_==7405||_==7412||7416<=_&&_<=7417||7616<=_&&_<=7673||7675<=_&&_<=7679||_==8204||8400<=_&&_<=8412||8413<=_&&_<=8416||_==8417||8418<=_&&_<=8420||8421<=_&&_<=8432||11503<=_&&_<=11505||_==11647||11744<=_&&_<=11775||12330<=_&&_<=12333||12334<=_&&_<=12335||12441<=_&&_<=12442||_==42607||42608<=_&&_<=42610||42612<=_&&_<=42621||42654<=_&&_<=42655||42736<=_&&_<=42737||_==43010||_==43014||_==43019||43045<=_&&_<=43046||43204<=_&&_<=43205||43232<=_&&_<=43249||43302<=_&&_<=43309||43335<=_&&_<=43345||43392<=_&&_<=43394||_==43443||43446<=_&&_<=43449||_==43452||_==43493||43561<=_&&_<=43566||43569<=_&&_<=43570||43573<=_&&_<=43574||_==43587||_==43596||_==43644||_==43696||43698<=_&&_<=43700||43703<=_&&_<=43704||43710<=_&&_<=43711||_==43713||43756<=_&&_<=43757||_==43766||_==44005||_==44008||_==44013||_==64286||65024<=_&&_<=65039||65056<=_&&_<=65071||65438<=_&&_<=65439||_==66045||_==66272||66422<=_&&_<=66426||68097<=_&&_<=68099||68101<=_&&_<=68102||68108<=_&&_<=68111||68152<=_&&_<=68154||_==68159||68325<=_&&_<=68326||_==69633||69688<=_&&_<=69702||69759<=_&&_<=69761||69811<=_&&_<=69814||69817<=_&&_<=69818||69888<=_&&_<=69890||69927<=_&&_<=69931||69933<=_&&_<=69940||_==70003||70016<=_&&_<=70017||70070<=_&&_<=70078||70090<=_&&_<=70092||70191<=_&&_<=70193||_==70196||70198<=_&&_<=70199||_==70206||_==70367||70371<=_&&_<=70378||70400<=_&&_<=70401||_==70460||_==70462||_==70464||_==70487||70502<=_&&_<=70508||70512<=_&&_<=70516||70712<=_&&_<=70719||70722<=_&&_<=70724||_==70726||_==70832||70835<=_&&_<=70840||_==70842||_==70845||70847<=_&&_<=70848||70850<=_&&_<=70851||_==71087||71090<=_&&_<=71093||71100<=_&&_<=71101||71103<=_&&_<=71104||71132<=_&&_<=71133||71219<=_&&_<=71226||_==71229||71231<=_&&_<=71232||_==71339||_==71341||71344<=_&&_<=71349||_==71351||71453<=_&&_<=71455||71458<=_&&_<=71461||71463<=_&&_<=71467||72193<=_&&_<=72198||72201<=_&&_<=72202||72243<=_&&_<=72248||72251<=_&&_<=72254||_==72263||72273<=_&&_<=72278||72281<=_&&_<=72283||72330<=_&&_<=72342||72344<=_&&_<=72345||72752<=_&&_<=72758||72760<=_&&_<=72765||_==72767||72850<=_&&_<=72871||72874<=_&&_<=72880||72882<=_&&_<=72883||72885<=_&&_<=72886||73009<=_&&_<=73014||_==73018||73020<=_&&_<=73021||73023<=_&&_<=73029||_==73031||92912<=_&&_<=92916||92976<=_&&_<=92982||94095<=_&&_<=94098||113821<=_&&_<=113822||_==119141||119143<=_&&_<=119145||119150<=_&&_<=119154||119163<=_&&_<=119170||119173<=_&&_<=119179||119210<=_&&_<=119213||119362<=_&&_<=119364||121344<=_&&_<=121398||121403<=_&&_<=121452||_==121461||_==121476||121499<=_&&_<=121503||121505<=_&&_<=121519||122880<=_&&_<=122886||122888<=_&&_<=122904||122907<=_&&_<=122913||122915<=_&&_<=122916||122918<=_&&_<=122922||125136<=_&&_<=125142||125252<=_&&_<=125258||917536<=_&&_<=917631||917760<=_&&_<=917999?i:127462<=_&&_<=127487?o:_==2307||_==2363||2366<=_&&_<=2368||2377<=_&&_<=2380||2382<=_&&_<=2383||2434<=_&&_<=2435||2495<=_&&_<=2496||2503<=_&&_<=2504||2507<=_&&_<=2508||_==2563||2622<=_&&_<=2624||_==2691||2750<=_&&_<=2752||_==2761||2763<=_&&_<=2764||2818<=_&&_<=2819||_==2880||2887<=_&&_<=2888||2891<=_&&_<=2892||_==3007||3009<=_&&_<=3010||3014<=_&&_<=3016||3018<=_&&_<=3020||3073<=_&&_<=3075||3137<=_&&_<=3140||3202<=_&&_<=3203||_==3262||3264<=_&&_<=3265||3267<=_&&_<=3268||3271<=_&&_<=3272||3274<=_&&_<=3275||3330<=_&&_<=3331||3391<=_&&_<=3392||3398<=_&&_<=3400||3402<=_&&_<=3404||3458<=_&&_<=3459||3536<=_&&_<=3537||3544<=_&&_<=3550||3570<=_&&_<=3571||_==3635||_==3763||3902<=_&&_<=3903||_==3967||_==4145||4155<=_&&_<=4156||4182<=_&&_<=4183||_==4228||_==6070||6078<=_&&_<=6085||6087<=_&&_<=6088||6435<=_&&_<=6438||6441<=_&&_<=6443||6448<=_&&_<=6449||6451<=_&&_<=6456||6681<=_&&_<=6682||_==6741||_==6743||6765<=_&&_<=6770||_==6916||_==6965||_==6971||6973<=_&&_<=6977||6979<=_&&_<=6980||_==7042||_==7073||7078<=_&&_<=7079||_==7082||_==7143||7146<=_&&_<=7148||_==7150||7154<=_&&_<=7155||7204<=_&&_<=7211||7220<=_&&_<=7221||_==7393||7410<=_&&_<=7411||_==7415||43043<=_&&_<=43044||_==43047||43136<=_&&_<=43137||43188<=_&&_<=43203||43346<=_&&_<=43347||_==43395||43444<=_&&_<=43445||43450<=_&&_<=43451||43453<=_&&_<=43456||43567<=_&&_<=43568||43571<=_&&_<=43572||_==43597||_==43755||43758<=_&&_<=43759||_==43765||44003<=_&&_<=44004||44006<=_&&_<=44007||44009<=_&&_<=44010||_==44012||_==69632||_==69634||_==69762||69808<=_&&_<=69810||69815<=_&&_<=69816||_==69932||_==70018||70067<=_&&_<=70069||70079<=_&&_<=70080||70188<=_&&_<=70190||70194<=_&&_<=70195||_==70197||70368<=_&&_<=70370||70402<=_&&_<=70403||_==70463||70465<=_&&_<=70468||70471<=_&&_<=70472||70475<=_&&_<=70477||70498<=_&&_<=70499||70709<=_&&_<=70711||70720<=_&&_<=70721||_==70725||70833<=_&&_<=70834||_==70841||70843<=_&&_<=70844||_==70846||_==70849||71088<=_&&_<=71089||71096<=_&&_<=71099||_==71102||71216<=_&&_<=71218||71227<=_&&_<=71228||_==71230||_==71340||71342<=_&&_<=71343||_==71350||71456<=_&&_<=71457||_==71462||72199<=_&&_<=72200||_==72249||72279<=_&&_<=72280||_==72343||_==72751||_==72766||_==72873||_==72881||_==72884||94033<=_&&_<=94078||_==119142||_==119149?r:4352<=_&&_<=4447||43360<=_&&_<=43388?s:4448<=_&&_<=4519||55216<=_&&_<=55238?a:4520<=_&&_<=4607||55243<=_&&_<=55291?c:_==44032||_==44060||_==44088||_==44116||_==44144||_==44172||_==44200||_==44228||_==44256||_==44284||_==44312||_==44340||_==44368||_==44396||_==44424||_==44452||_==44480||_==44508||_==44536||_==44564||_==44592||_==44620||_==44648||_==44676||_==44704||_==44732||_==44760||_==44788||_==44816||_==44844||_==44872||_==44900||_==44928||_==44956||_==44984||_==45012||_==45040||_==45068||_==45096||_==45124||_==45152||_==45180||_==45208||_==45236||_==45264||_==45292||_==45320||_==45348||_==45376||_==45404||_==45432||_==45460||_==45488||_==45516||_==45544||_==45572||_==45600||_==45628||_==45656||_==45684||_==45712||_==45740||_==45768||_==45796||_==45824||_==45852||_==45880||_==45908||_==45936||_==45964||_==45992||_==46020||_==46048||_==46076||_==46104||_==46132||_==46160||_==46188||_==46216||_==46244||_==46272||_==46300||_==46328||_==46356||_==46384||_==46412||_==46440||_==46468||_==46496||_==46524||_==46552||_==46580||_==46608||_==46636||_==46664||_==46692||_==46720||_==46748||_==46776||_==46804||_==46832||_==46860||_==46888||_==46916||_==46944||_==46972||_==47e3||_==47028||_==47056||_==47084||_==47112||_==47140||_==47168||_==47196||_==47224||_==47252||_==47280||_==47308||_==47336||_==47364||_==47392||_==47420||_==47448||_==47476||_==47504||_==47532||_==47560||_==47588||_==47616||_==47644||_==47672||_==47700||_==47728||_==47756||_==47784||_==47812||_==47840||_==47868||_==47896||_==47924||_==47952||_==47980||_==48008||_==48036||_==48064||_==48092||_==48120||_==48148||_==48176||_==48204||_==48232||_==48260||_==48288||_==48316||_==48344||_==48372||_==48400||_==48428||_==48456||_==48484||_==48512||_==48540||_==48568||_==48596||_==48624||_==48652||_==48680||_==48708||_==48736||_==48764||_==48792||_==48820||_==48848||_==48876||_==48904||_==48932||_==48960||_==48988||_==49016||_==49044||_==49072||_==49100||_==49128||_==49156||_==49184||_==49212||_==49240||_==49268||_==49296||_==49324||_==49352||_==49380||_==49408||_==49436||_==49464||_==49492||_==49520||_==49548||_==49576||_==49604||_==49632||_==49660||_==49688||_==49716||_==49744||_==49772||_==49800||_==49828||_==49856||_==49884||_==49912||_==49940||_==49968||_==49996||_==50024||_==50052||_==50080||_==50108||_==50136||_==50164||_==50192||_==50220||_==50248||_==50276||_==50304||_==50332||_==50360||_==50388||_==50416||_==50444||_==50472||_==50500||_==50528||_==50556||_==50584||_==50612||_==50640||_==50668||_==50696||_==50724||_==50752||_==50780||_==50808||_==50836||_==50864||_==50892||_==50920||_==50948||_==50976||_==51004||_==51032||_==51060||_==51088||_==51116||_==51144||_==51172||_==51200||_==51228||_==51256||_==51284||_==51312||_==51340||_==51368||_==51396||_==51424||_==51452||_==51480||_==51508||_==51536||_==51564||_==51592||_==51620||_==51648||_==51676||_==51704||_==51732||_==51760||_==51788||_==51816||_==51844||_==51872||_==51900||_==51928||_==51956||_==51984||_==52012||_==52040||_==52068||_==52096||_==52124||_==52152||_==52180||_==52208||_==52236||_==52264||_==52292||_==52320||_==52348||_==52376||_==52404||_==52432||_==52460||_==52488||_==52516||_==52544||_==52572||_==52600||_==52628||_==52656||_==52684||_==52712||_==52740||_==52768||_==52796||_==52824||_==52852||_==52880||_==52908||_==52936||_==52964||_==52992||_==53020||_==53048||_==53076||_==53104||_==53132||_==53160||_==53188||_==53216||_==53244||_==53272||_==53300||_==53328||_==53356||_==53384||_==53412||_==53440||_==53468||_==53496||_==53524||_==53552||_==53580||_==53608||_==53636||_==53664||_==53692||_==53720||_==53748||_==53776||_==53804||_==53832||_==53860||_==53888||_==53916||_==53944||_==53972||_==54e3||_==54028||_==54056||_==54084||_==54112||_==54140||_==54168||_==54196||_==54224||_==54252||_==54280||_==54308||_==54336||_==54364||_==54392||_==54420||_==54448||_==54476||_==54504||_==54532||_==54560||_==54588||_==54616||_==54644||_==54672||_==54700||_==54728||_==54756||_==54784||_==54812||_==54840||_==54868||_==54896||_==54924||_==54952||_==54980||_==55008||_==55036||_==55064||_==55092||_==55120||_==55148||_==55176?u:44033<=_&&_<=44059||44061<=_&&_<=44087||44089<=_&&_<=44115||44117<=_&&_<=44143||44145<=_&&_<=44171||44173<=_&&_<=44199||44201<=_&&_<=44227||44229<=_&&_<=44255||44257<=_&&_<=44283||44285<=_&&_<=44311||44313<=_&&_<=44339||44341<=_&&_<=44367||44369<=_&&_<=44395||44397<=_&&_<=44423||44425<=_&&_<=44451||44453<=_&&_<=44479||44481<=_&&_<=44507||44509<=_&&_<=44535||44537<=_&&_<=44563||44565<=_&&_<=44591||44593<=_&&_<=44619||44621<=_&&_<=44647||44649<=_&&_<=44675||44677<=_&&_<=44703||44705<=_&&_<=44731||44733<=_&&_<=44759||44761<=_&&_<=44787||44789<=_&&_<=44815||44817<=_&&_<=44843||44845<=_&&_<=44871||44873<=_&&_<=44899||44901<=_&&_<=44927||44929<=_&&_<=44955||44957<=_&&_<=44983||44985<=_&&_<=45011||45013<=_&&_<=45039||45041<=_&&_<=45067||45069<=_&&_<=45095||45097<=_&&_<=45123||45125<=_&&_<=45151||45153<=_&&_<=45179||45181<=_&&_<=45207||45209<=_&&_<=45235||45237<=_&&_<=45263||45265<=_&&_<=45291||45293<=_&&_<=45319||45321<=_&&_<=45347||45349<=_&&_<=45375||45377<=_&&_<=45403||45405<=_&&_<=45431||45433<=_&&_<=45459||45461<=_&&_<=45487||45489<=_&&_<=45515||45517<=_&&_<=45543||45545<=_&&_<=45571||45573<=_&&_<=45599||45601<=_&&_<=45627||45629<=_&&_<=45655||45657<=_&&_<=45683||45685<=_&&_<=45711||45713<=_&&_<=45739||45741<=_&&_<=45767||45769<=_&&_<=45795||45797<=_&&_<=45823||45825<=_&&_<=45851||45853<=_&&_<=45879||45881<=_&&_<=45907||45909<=_&&_<=45935||45937<=_&&_<=45963||45965<=_&&_<=45991||45993<=_&&_<=46019||46021<=_&&_<=46047||46049<=_&&_<=46075||46077<=_&&_<=46103||46105<=_&&_<=46131||46133<=_&&_<=46159||46161<=_&&_<=46187||46189<=_&&_<=46215||46217<=_&&_<=46243||46245<=_&&_<=46271||46273<=_&&_<=46299||46301<=_&&_<=46327||46329<=_&&_<=46355||46357<=_&&_<=46383||46385<=_&&_<=46411||46413<=_&&_<=46439||46441<=_&&_<=46467||46469<=_&&_<=46495||46497<=_&&_<=46523||46525<=_&&_<=46551||46553<=_&&_<=46579||46581<=_&&_<=46607||46609<=_&&_<=46635||46637<=_&&_<=46663||46665<=_&&_<=46691||46693<=_&&_<=46719||46721<=_&&_<=46747||46749<=_&&_<=46775||46777<=_&&_<=46803||46805<=_&&_<=46831||46833<=_&&_<=46859||46861<=_&&_<=46887||46889<=_&&_<=46915||46917<=_&&_<=46943||46945<=_&&_<=46971||46973<=_&&_<=46999||47001<=_&&_<=47027||47029<=_&&_<=47055||47057<=_&&_<=47083||47085<=_&&_<=47111||47113<=_&&_<=47139||47141<=_&&_<=47167||47169<=_&&_<=47195||47197<=_&&_<=47223||47225<=_&&_<=47251||47253<=_&&_<=47279||47281<=_&&_<=47307||47309<=_&&_<=47335||47337<=_&&_<=47363||47365<=_&&_<=47391||47393<=_&&_<=47419||47421<=_&&_<=47447||47449<=_&&_<=47475||47477<=_&&_<=47503||47505<=_&&_<=47531||47533<=_&&_<=47559||47561<=_&&_<=47587||47589<=_&&_<=47615||47617<=_&&_<=47643||47645<=_&&_<=47671||47673<=_&&_<=47699||47701<=_&&_<=47727||47729<=_&&_<=47755||47757<=_&&_<=47783||47785<=_&&_<=47811||47813<=_&&_<=47839||47841<=_&&_<=47867||47869<=_&&_<=47895||47897<=_&&_<=47923||47925<=_&&_<=47951||47953<=_&&_<=47979||47981<=_&&_<=48007||48009<=_&&_<=48035||48037<=_&&_<=48063||48065<=_&&_<=48091||48093<=_&&_<=48119||48121<=_&&_<=48147||48149<=_&&_<=48175||48177<=_&&_<=48203||48205<=_&&_<=48231||48233<=_&&_<=48259||48261<=_&&_<=48287||48289<=_&&_<=48315||48317<=_&&_<=48343||48345<=_&&_<=48371||48373<=_&&_<=48399||48401<=_&&_<=48427||48429<=_&&_<=48455||48457<=_&&_<=48483||48485<=_&&_<=48511||48513<=_&&_<=48539||48541<=_&&_<=48567||48569<=_&&_<=48595||48597<=_&&_<=48623||48625<=_&&_<=48651||48653<=_&&_<=48679||48681<=_&&_<=48707||48709<=_&&_<=48735||48737<=_&&_<=48763||48765<=_&&_<=48791||48793<=_&&_<=48819||48821<=_&&_<=48847||48849<=_&&_<=48875||48877<=_&&_<=48903||48905<=_&&_<=48931||48933<=_&&_<=48959||48961<=_&&_<=48987||48989<=_&&_<=49015||49017<=_&&_<=49043||49045<=_&&_<=49071||49073<=_&&_<=49099||49101<=_&&_<=49127||49129<=_&&_<=49155||49157<=_&&_<=49183||49185<=_&&_<=49211||49213<=_&&_<=49239||49241<=_&&_<=49267||49269<=_&&_<=49295||49297<=_&&_<=49323||49325<=_&&_<=49351||49353<=_&&_<=49379||49381<=_&&_<=49407||49409<=_&&_<=49435||49437<=_&&_<=49463||49465<=_&&_<=49491||49493<=_&&_<=49519||49521<=_&&_<=49547||49549<=_&&_<=49575||49577<=_&&_<=49603||49605<=_&&_<=49631||49633<=_&&_<=49659||49661<=_&&_<=49687||49689<=_&&_<=49715||49717<=_&&_<=49743||49745<=_&&_<=49771||49773<=_&&_<=49799||49801<=_&&_<=49827||49829<=_&&_<=49855||49857<=_&&_<=49883||49885<=_&&_<=49911||49913<=_&&_<=49939||49941<=_&&_<=49967||49969<=_&&_<=49995||49997<=_&&_<=50023||50025<=_&&_<=50051||50053<=_&&_<=50079||50081<=_&&_<=50107||50109<=_&&_<=50135||50137<=_&&_<=50163||50165<=_&&_<=50191||50193<=_&&_<=50219||50221<=_&&_<=50247||50249<=_&&_<=50275||50277<=_&&_<=50303||50305<=_&&_<=50331||50333<=_&&_<=50359||50361<=_&&_<=50387||50389<=_&&_<=50415||50417<=_&&_<=50443||50445<=_&&_<=50471||50473<=_&&_<=50499||50501<=_&&_<=50527||50529<=_&&_<=50555||50557<=_&&_<=50583||50585<=_&&_<=50611||50613<=_&&_<=50639||50641<=_&&_<=50667||50669<=_&&_<=50695||50697<=_&&_<=50723||50725<=_&&_<=50751||50753<=_&&_<=50779||50781<=_&&_<=50807||50809<=_&&_<=50835||50837<=_&&_<=50863||50865<=_&&_<=50891||50893<=_&&_<=50919||50921<=_&&_<=50947||50949<=_&&_<=50975||50977<=_&&_<=51003||51005<=_&&_<=51031||51033<=_&&_<=51059||51061<=_&&_<=51087||51089<=_&&_<=51115||51117<=_&&_<=51143||51145<=_&&_<=51171||51173<=_&&_<=51199||51201<=_&&_<=51227||51229<=_&&_<=51255||51257<=_&&_<=51283||51285<=_&&_<=51311||51313<=_&&_<=51339||51341<=_&&_<=51367||51369<=_&&_<=51395||51397<=_&&_<=51423||51425<=_&&_<=51451||51453<=_&&_<=51479||51481<=_&&_<=51507||51509<=_&&_<=51535||51537<=_&&_<=51563||51565<=_&&_<=51591||51593<=_&&_<=51619||51621<=_&&_<=51647||51649<=_&&_<=51675||51677<=_&&_<=51703||51705<=_&&_<=51731||51733<=_&&_<=51759||51761<=_&&_<=51787||51789<=_&&_<=51815||51817<=_&&_<=51843||51845<=_&&_<=51871||51873<=_&&_<=51899||51901<=_&&_<=51927||51929<=_&&_<=51955||51957<=_&&_<=51983||51985<=_&&_<=52011||52013<=_&&_<=52039||52041<=_&&_<=52067||52069<=_&&_<=52095||52097<=_&&_<=52123||52125<=_&&_<=52151||52153<=_&&_<=52179||52181<=_&&_<=52207||52209<=_&&_<=52235||52237<=_&&_<=52263||52265<=_&&_<=52291||52293<=_&&_<=52319||52321<=_&&_<=52347||52349<=_&&_<=52375||52377<=_&&_<=52403||52405<=_&&_<=52431||52433<=_&&_<=52459||52461<=_&&_<=52487||52489<=_&&_<=52515||52517<=_&&_<=52543||52545<=_&&_<=52571||52573<=_&&_<=52599||52601<=_&&_<=52627||52629<=_&&_<=52655||52657<=_&&_<=52683||52685<=_&&_<=52711||52713<=_&&_<=52739||52741<=_&&_<=52767||52769<=_&&_<=52795||52797<=_&&_<=52823||52825<=_&&_<=52851||52853<=_&&_<=52879||52881<=_&&_<=52907||52909<=_&&_<=52935||52937<=_&&_<=52963||52965<=_&&_<=52991||52993<=_&&_<=53019||53021<=_&&_<=53047||53049<=_&&_<=53075||53077<=_&&_<=53103||53105<=_&&_<=53131||53133<=_&&_<=53159||53161<=_&&_<=53187||53189<=_&&_<=53215||53217<=_&&_<=53243||53245<=_&&_<=53271||53273<=_&&_<=53299||53301<=_&&_<=53327||53329<=_&&_<=53355||53357<=_&&_<=53383||53385<=_&&_<=53411||53413<=_&&_<=53439||53441<=_&&_<=53467||53469<=_&&_<=53495||53497<=_&&_<=53523||53525<=_&&_<=53551||53553<=_&&_<=53579||53581<=_&&_<=53607||53609<=_&&_<=53635||53637<=_&&_<=53663||53665<=_&&_<=53691||53693<=_&&_<=53719||53721<=_&&_<=53747||53749<=_&&_<=53775||53777<=_&&_<=53803||53805<=_&&_<=53831||53833<=_&&_<=53859||53861<=_&&_<=53887||53889<=_&&_<=53915||53917<=_&&_<=53943||53945<=_&&_<=53971||53973<=_&&_<=53999||54001<=_&&_<=54027||54029<=_&&_<=54055||54057<=_&&_<=54083||54085<=_&&_<=54111||54113<=_&&_<=54139||54141<=_&&_<=54167||54169<=_&&_<=54195||54197<=_&&_<=54223||54225<=_&&_<=54251||54253<=_&&_<=54279||54281<=_&&_<=54307||54309<=_&&_<=54335||54337<=_&&_<=54363||54365<=_&&_<=54391||54393<=_&&_<=54419||54421<=_&&_<=54447||54449<=_&&_<=54475||54477<=_&&_<=54503||54505<=_&&_<=54531||54533<=_&&_<=54559||54561<=_&&_<=54587||54589<=_&&_<=54615||54617<=_&&_<=54643||54645<=_&&_<=54671||54673<=_&&_<=54699||54701<=_&&_<=54727||54729<=_&&_<=54755||54757<=_&&_<=54783||54785<=_&&_<=54811||54813<=_&&_<=54839||54841<=_&&_<=54867||54869<=_&&_<=54895||54897<=_&&_<=54923||54925<=_&&_<=54951||54953<=_&&_<=54979||54981<=_&&_<=55007||55009<=_&&_<=55035||55037<=_&&_<=55063||55065<=_&&_<=55091||55093<=_&&_<=55119||55121<=_&&_<=55147||55149<=_&&_<=55175||55177<=_&&_<=55203?f:_==9757||_==9977||9994<=_&&_<=9997||_==127877||127938<=_&&_<=127940||_==127943||127946<=_&&_<=127948||128066<=_&&_<=128067||128070<=_&&_<=128080||_==128110||128112<=_&&_<=128120||_==128124||128129<=_&&_<=128131||128133<=_&&_<=128135||_==128170||128372<=_&&_<=128373||_==128378||_==128400||128405<=_&&_<=128406||128581<=_&&_<=128583||128587<=_&&_<=128591||_==128675||128692<=_&&_<=128694||_==128704||_==128716||129304<=_&&_<=129308||129310<=_&&_<=129311||_==129318||129328<=_&&_<=129337||129341<=_&&_<=129342||129489<=_&&_<=129501?g:127995<=_&&_<=127999?h:_==8205?A:_==9792||_==9794||9877<=_&&_<=9878||_==9992||_==10084||_==127752||_==127806||_==127859||_==127891||_==127908||_==127912||_==127979||_==127981||_==128139||128187<=_&&_<=128188||_==128295||_==128300||_==128488||_==128640||_==128658?x:128102<=_&&_<=128105?C:d}return this}typeof MN<"u"&&MN.exports&&(MN.exports=vHe)});var koe=Nc((V0n,M6)=>{"use strict";M6.exports=QN;M6.exports.default=QN;function QN(e,t,n){n=n||2;var i=t&&t.length,o=i?t[0]*n:e.length,r=Foe(e,0,o,n,!0),s=[];if(!r||r.next===r.prev)return s;var a,c,u,f,d,p,g;if(i&&(r=O8e(e,t,r,n)),e.length>80*n){a=u=e[0],c=f=e[1];for(var h=n;h<o;h+=n)d=e[h],p=e[h+1],d<a&&(a=d),p<c&&(c=p),d>u&&(u=d),p>f&&(f=p);g=Math.max(u-a,f-c),g=g!==0?32767/g:0}return zw(r,s,n,a,c,g,0),s}function Foe(e,t,n,i,o){var r,s;if(o===O6(e,t,n,i)>0)for(r=t;r<n;r+=i)s=Noe(r,e[r],e[r+1],s);else for(r=n-i;r>=t;r-=i)s=Noe(r,e[r],e[r+1],s);return s&&$N(s,s.next)&&(Gw(s),s=s.next),s}function k0(e,t){if(!e)return e;t||(t=e);var n=e,i;do if(i=!1,!n.steiner&&($N(n,n.next)||Tr(n.prev,n,n.next)===0)){if(Gw(n),n=t=n.prev,n===n.next)break;i=!0}else n=n.next;while(i||n!==t);return t}function zw(e,t,n,i,o,r,s){if(e){!s&&r&&N8e(e,i,o,r);for(var a=e,c,u;e.prev!==e.next;){if(c=e.prev,u=e.next,r?D8e(e,i,o,r):v8e(e)){t.push(c.i/n|0),t.push(e.i/n|0),t.push(u.i/n|0),Gw(e),e=u.next,a=u.next;continue}if(e=u,e===a){s?s===1?(e=I8e(k0(e),t,n),zw(e,t,n,i,o,r,2)):s===2&&P8e(e,t,n,i,o,r):zw(k0(e),t,n,i,o,r,1);break}}}}function v8e(e){var t=e.prev,n=e,i=e.next;if(Tr(t,n,i)>=0)return!1;for(var o=t.x,r=n.x,s=i.x,a=t.y,c=n.y,u=i.y,f=o<r?o<s?o:s:r<s?r:s,d=a<c?a<u?a:u:c<u?c:u,p=o>r?o>s?o:s:r>s?r:s,g=a>c?a>u?a:u:c>u?c:u,h=i.next;h!==t;){if(h.x>=f&&h.x<=p&&h.y>=d&&h.y<=g&&hT(o,a,r,c,s,u,h.x,h.y)&&Tr(h.prev,h,h.next)>=0)return!1;h=h.next}return!0}function D8e(e,t,n,i){var o=e.prev,r=e,s=e.next;if(Tr(o,r,s)>=0)return!1;for(var a=o.x,c=r.x,u=s.x,f=o.y,d=r.y,p=s.y,g=a<c?a<u?a:u:c<u?c:u,h=f<d?f<p?f:p:d<p?d:p,A=a>c?a>u?a:u:c>u?c:u,x=f>d?f>p?f:p:d>p?d:p,C=I6(g,h,t,n,i),T=I6(A,x,t,n,i),E=e.prevZ,S=e.nextZ;E&&E.z>=C&&S&&S.z<=T;){if(E.x>=g&&E.x<=A&&E.y>=h&&E.y<=x&&E!==o&&E!==s&&hT(a,f,c,d,u,p,E.x,E.y)&&Tr(E.prev,E,E.next)>=0||(E=E.prevZ,S.x>=g&&S.x<=A&&S.y>=h&&S.y<=x&&S!==o&&S!==s&&hT(a,f,c,d,u,p,S.x,S.y)&&Tr(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;E&&E.z>=C;){if(E.x>=g&&E.x<=A&&E.y>=h&&E.y<=x&&E!==o&&E!==s&&hT(a,f,c,d,u,p,E.x,E.y)&&Tr(E.prev,E,E.next)>=0)return!1;E=E.prevZ}for(;S&&S.z<=T;){if(S.x>=g&&S.x<=A&&S.y>=h&&S.y<=x&&S!==o&&S!==s&&hT(a,f,c,d,u,p,S.x,S.y)&&Tr(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function I8e(e,t,n){var i=e;do{var o=i.prev,r=i.next.next;!$N(o,r)&&Uoe(o,i,i.next,r)&&Hw(o,r)&&Hw(r,o)&&(t.push(o.i/n|0),t.push(i.i/n|0),t.push(r.i/n|0),Gw(i),Gw(i.next),i=e=r),i=i.next}while(i!==e);return k0(i)}function P8e(e,t,n,i,o,r){var s=e;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&V8e(s,a)){var c=Voe(s,a);s=k0(s,s.next),c=k0(c,c.next),zw(s,t,n,i,o,r,0),zw(c,t,n,i,o,r,0);return}a=a.next}s=s.next}while(s!==e)}function O8e(e,t,n,i){var o=[],r,s,a,c,u;for(r=0,s=t.length;r<s;r++)a=t[r]*i,c=r<s-1?t[r+1]*i:e.length,u=Foe(e,a,c,i,!1),u===u.next&&(u.steiner=!0),o.push(U8e(u));for(o.sort(M8e),r=0;r<o.length;r++)n=R8e(o[r],n);return n}function M8e(e,t){return e.x-t.x}function R8e(e,t){var n=B8e(e,t);if(!n)return t;var i=Voe(n,e);return k0(i,i.next),k0(n,n.next)}function B8e(e,t){var n=t,i=e.x,o=e.y,r=-1/0,s;do{if(o<=n.y&&o>=n.next.y&&n.next.y!==n.y){var a=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(a<=i&&a>r&&(r=a,s=n.x<n.next.x?n:n.next,a===i))return s}n=n.next}while(n!==t);if(!s)return null;var c=s,u=s.x,f=s.y,d=1/0,p;n=s;do i>=n.x&&n.x>=u&&i!==n.x&&hT(o<f?i:r,o,u,f,o<f?r:i,o,n.x,n.y)&&(p=Math.abs(o-n.y)/(i-n.x),Hw(n,e)&&(p<d||p===d&&(n.x>s.x||n.x===s.x&&L8e(s,n)))&&(s=n,d=p)),n=n.next;while(n!==c);return s}function L8e(e,t){return Tr(e.prev,e,t.prev)<0&&Tr(t.next,e,e.next)<0}function N8e(e,t,n,i){var o=e;do o.z===0&&(o.z=I6(o.x,o.y,t,n,i)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,F8e(o)}function F8e(e){var t,n,i,o,r,s,a,c,u=1;do{for(n=e,e=null,r=null,s=0;n;){for(s++,i=n,a=0,t=0;t<u&&(a++,i=i.nextZ,!!i);t++);for(c=u;a>0||c>0&&i;)a!==0&&(c===0||!i||n.z<=i.z)?(o=n,n=n.nextZ,a--):(o=i,i=i.nextZ,c--),r?r.nextZ=o:e=o,o.prevZ=r,r=o;n=i}r.nextZ=null,u*=2}while(s>1);return e}function I6(e,t,n,i,o){return e=(e-n)*o|0,t=(t-i)*o|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function U8e(e){var t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function hT(e,t,n,i,o,r,s,a){return(o-s)*(t-a)>=(e-s)*(r-a)&&(e-s)*(i-a)>=(n-s)*(t-a)&&(n-s)*(r-a)>=(o-s)*(i-a)}function V8e(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!k8e(e,t)&&(Hw(e,t)&&Hw(t,e)&&z8e(e,t)&&(Tr(e.prev,e,t.prev)||Tr(e,t.prev,t))||$N(e,t)&&Tr(e.prev,e,e.next)>0&&Tr(t.prev,t,t.next)>0)}function Tr(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function $N(e,t){return e.x===t.x&&e.y===t.y}function Uoe(e,t,n,i){var o=ZN(Tr(e,t,n)),r=ZN(Tr(e,t,i)),s=ZN(Tr(n,i,e)),a=ZN(Tr(n,i,t));return!!(o!==r&&s!==a||o===0&&JN(e,n,t)||r===0&&JN(e,i,t)||s===0&&JN(n,e,i)||a===0&&JN(n,t,i))}function JN(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function ZN(e){return e>0?1:e<0?-1:0}function k8e(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Uoe(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function Hw(e,t){return Tr(e.prev,e,e.next)<0?Tr(e,t,e.next)>=0&&Tr(e,e.prev,t)>=0:Tr(e,t,e.prev)<0||Tr(e,e.next,t)<0}function z8e(e,t){var n=e,i=!1,o=(e.x+t.x)/2,r=(e.y+t.y)/2;do n.y>r!=n.next.y>r&&n.next.y!==n.y&&o<(n.next.x-n.x)*(r-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e);return i}function Voe(e,t){var n=new P6(e.i,e.x,e.y),i=new P6(t.i,t.x,t.y),o=e.next,r=t.prev;return e.next=t,t.prev=e,n.next=o,o.prev=n,i.next=n,n.prev=i,r.next=i,i.prev=r,i}function Noe(e,t,n,i){var o=new P6(e,t,n);return i?(o.next=i.next,o.prev=i,i.next.prev=o,i.next=o):(o.prev=o,o.next=o),o}function Gw(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function P6(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}QN.deviation=function(e,t,n,i){var o=t&&t.length,r=o?t[0]*n:e.length,s=Math.abs(O6(e,0,r,n));if(o)for(var a=0,c=t.length;a<c;a++){var u=t[a]*n,f=a<c-1?t[a+1]*n:e.length;s-=Math.abs(O6(e,u,f,n))}var d=0;for(a=0;a<i.length;a+=3){var p=i[a]*n,g=i[a+1]*n,h=i[a+2]*n;d+=Math.abs((e[p]-e[h])*(e[g+1]-e[p+1])-(e[p]-e[g])*(e[h+1]-e[p+1]))}return s===0&&d===0?0:Math.abs((d-s)/s)};function O6(e,t,n,i){for(var o=0,r=t,s=n-i;r<n;r+=i)o+=(e[s]-e[r])*(e[r+1]+e[s+1]),s=r;return o}QN.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},i=0,o=0;o<e.length;o++){for(var r=0;r<e[o].length;r++)for(var s=0;s<t;s++)n.vertices.push(e[o][r][s]);o>0&&(i+=e[o-1].length,n.holes.push(i))}return n}});var sle=Nc((aW,cW)=>{(function(e,t){typeof aW=="object"&&typeof cW<"u"?cW.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self).RBush=t()})(aW,function(){"use strict";function e(x,C,T,E,S){(function v(D,O,M,L,N){for(;L>M;){if(L-M>600){var _=L-M+1,b=O-M+1,w=Math.log(_),I=.5*Math.exp(2*w/3),R=.5*Math.sqrt(w*I*(_-I)/_)*(b-_/2<0?-1:1),F=Math.max(M,Math.floor(O-b*I/_+R)),k=Math.min(L,Math.floor(O+(_-b)*I/_+R));v(D,O,F,k,N)}var V=D[O],G=M,U=L;for(t(D,M,O),N(D[L],V)>0&&t(D,M,L);G<U;){for(t(D,G,U),G++,U--;N(D[G],V)<0;)G++;for(;N(D[U],V)>0;)U--}N(D[M],V)===0?t(D,M,U):t(D,++U,L),U<=O&&(M=U+1),O<=U&&(L=U-1)}})(x,C,T||0,E||x.length-1,S||n)}function t(x,C,T){var E=x[C];x[C]=x[T],x[T]=E}function n(x,C){return x<C?-1:x>C?1:0}var i=function(x){x===void 0&&(x=9),this._maxEntries=Math.max(4,x),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function o(x,C,T){if(!T)return C.indexOf(x);for(var E=0;E<C.length;E++)if(T(x,C[E]))return E;return-1}function r(x,C){s(x,0,x.children.length,C,x)}function s(x,C,T,E,S){S||(S=h(null)),S.minX=1/0,S.minY=1/0,S.maxX=-1/0,S.maxY=-1/0;for(var v=C;v<T;v++){var D=x.children[v];a(S,x.leaf?E(D):D)}return S}function a(x,C){return x.minX=Math.min(x.minX,C.minX),x.minY=Math.min(x.minY,C.minY),x.maxX=Math.max(x.maxX,C.maxX),x.maxY=Math.max(x.maxY,C.maxY),x}function c(x,C){return x.minX-C.minX}function u(x,C){return x.minY-C.minY}function f(x){return(x.maxX-x.minX)*(x.maxY-x.minY)}function d(x){return x.maxX-x.minX+(x.maxY-x.minY)}function p(x,C){return x.minX<=C.minX&&x.minY<=C.minY&&C.maxX<=x.maxX&&C.maxY<=x.maxY}function g(x,C){return C.minX<=x.maxX&&C.minY<=x.maxY&&C.maxX>=x.minX&&C.maxY>=x.minY}function h(x){return{children:x,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function A(x,C,T,E,S){for(var v=[C,T];v.length;)if(!((T=v.pop())-(C=v.pop())<=E)){var D=C+Math.ceil((T-C)/E/2)*E;e(x,D,C,T,S),v.push(C,D,D,T)}}return i.prototype.all=function(){return this._all(this.data,[])},i.prototype.search=function(x){var C=this.data,T=[];if(!g(x,C))return T;for(var E=this.toBBox,S=[];C;){for(var v=0;v<C.children.length;v++){var D=C.children[v],O=C.leaf?E(D):D;g(x,O)&&(C.leaf?T.push(D):p(x,O)?this._all(D,T):S.push(D))}C=S.pop()}return T},i.prototype.collides=function(x){var C=this.data;if(!g(x,C))return!1;for(var T=[];C;){for(var E=0;E<C.children.length;E++){var S=C.children[E],v=C.leaf?this.toBBox(S):S;if(g(x,v)){if(C.leaf||p(x,v))return!0;T.push(S)}}C=T.pop()}return!1},i.prototype.load=function(x){if(!x||!x.length)return this;if(x.length<this._minEntries){for(var C=0;C<x.length;C++)this.insert(x[C]);return this}var T=this._build(x.slice(),0,x.length-1,0);if(this.data.children.length)if(this.data.height===T.height)this._splitRoot(this.data,T);else{if(this.data.height<T.height){var E=this.data;this.data=T,T=E}this._insert(T,this.data.height-T.height-1,!0)}else this.data=T;return this},i.prototype.insert=function(x){return x&&this._insert(x,this.data.height-1),this},i.prototype.clear=function(){return this.data=h([]),this},i.prototype.remove=function(x,C){if(!x)return this;for(var T,E,S,v=this.data,D=this.toBBox(x),O=[],M=[];v||O.length;){if(v||(v=O.pop(),E=O[O.length-1],T=M.pop(),S=!0),v.leaf){var L=o(x,v.children,C);if(L!==-1)return v.children.splice(L,1),O.push(v),this._condense(O),this}S||v.leaf||!p(v,D)?E?(T++,v=E.children[T],S=!1):v=null:(O.push(v),M.push(T),T=0,E=v,v=v.children[0])}return this},i.prototype.toBBox=function(x){return x},i.prototype.compareMinX=function(x,C){return x.minX-C.minX},i.prototype.compareMinY=function(x,C){return x.minY-C.minY},i.prototype.toJSON=function(){return this.data},i.prototype.fromJSON=function(x){return this.data=x,this},i.prototype._all=function(x,C){for(var T=[];x;)x.leaf?C.push.apply(C,x.children):T.push.apply(T,x.children),x=T.pop();return C},i.prototype._build=function(x,C,T,E){var S,v=T-C+1,D=this._maxEntries;if(v<=D)return r(S=h(x.slice(C,T+1)),this.toBBox),S;E||(E=Math.ceil(Math.log(v)/Math.log(D)),D=Math.ceil(v/Math.pow(D,E-1))),(S=h([])).leaf=!1,S.height=E;var O=Math.ceil(v/D),M=O*Math.ceil(Math.sqrt(D));A(x,C,T,M,this.compareMinX);for(var L=C;L<=T;L+=M){var N=Math.min(L+M-1,T);A(x,L,N,O,this.compareMinY);for(var _=L;_<=N;_+=O){var b=Math.min(_+O-1,N);S.children.push(this._build(x,_,b,E-1))}}return r(S,this.toBBox),S},i.prototype._chooseSubtree=function(x,C,T,E){for(;E.push(C),!C.leaf&&E.length-1!==T;){for(var S=1/0,v=1/0,D=void 0,O=0;O<C.children.length;O++){var M=C.children[O],L=f(M),N=(_=x,b=M,(Math.max(b.maxX,_.maxX)-Math.min(b.minX,_.minX))*(Math.max(b.maxY,_.maxY)-Math.min(b.minY,_.minY))-L);N<v?(v=N,S=L<S?L:S,D=M):N===v&&L<S&&(S=L,D=M)}C=D||C.children[0]}var _,b;return C},i.prototype._insert=function(x,C,T){var E=T?x:this.toBBox(x),S=[],v=this._chooseSubtree(E,this.data,C,S);for(v.children.push(x),a(v,E);C>=0&&S[C].children.length>this._maxEntries;)this._split(S,C),C--;this._adjustParentBBoxes(E,S,C)},i.prototype._split=function(x,C){var T=x[C],E=T.children.length,S=this._minEntries;this._chooseSplitAxis(T,S,E);var v=this._chooseSplitIndex(T,S,E),D=h(T.children.splice(v,T.children.length-v));D.height=T.height,D.leaf=T.leaf,r(T,this.toBBox),r(D,this.toBBox),C?x[C-1].children.push(D):this._splitRoot(T,D)},i.prototype._splitRoot=function(x,C){this.data=h([x,C]),this.data.height=x.height+1,this.data.leaf=!1,r(this.data,this.toBBox)},i.prototype._chooseSplitIndex=function(x,C,T){for(var E,S,v,D,O,M,L,N=1/0,_=1/0,b=C;b<=T-C;b++){var w=s(x,0,b,this.toBBox),I=s(x,b,T,this.toBBox),R=(S=w,v=I,D=void 0,O=void 0,M=void 0,L=void 0,D=Math.max(S.minX,v.minX),O=Math.max(S.minY,v.minY),M=Math.min(S.maxX,v.maxX),L=Math.min(S.maxY,v.maxY),Math.max(0,M-D)*Math.max(0,L-O)),F=f(w)+f(I);R<N?(N=R,E=b,_=F<_?F:_):R===N&&F<_&&(_=F,E=b)}return E||T-C},i.prototype._chooseSplitAxis=function(x,C,T){var E=x.leaf?this.compareMinX:c,S=x.leaf?this.compareMinY:u;this._allDistMargin(x,C,T,E)<this._allDistMargin(x,C,T,S)&&x.children.sort(E)},i.prototype._allDistMargin=function(x,C,T,E){x.children.sort(E);for(var S=this.toBBox,v=s(x,0,C,S),D=s(x,T-C,T,S),O=d(v)+d(D),M=C;M<T-C;M++){var L=x.children[M];a(v,x.leaf?S(L):L),O+=d(v)}for(var N=T-C-1;N>=C;N--){var _=x.children[N];a(D,x.leaf?S(_):_),O+=d(D)}return O},i.prototype._adjustParentBBoxes=function(x,C,T){for(var E=T;E>=0;E--)a(C[E],x)},i.prototype._condense=function(x){for(var C=x.length-1,T=void 0;C>=0;C--)x[C].children.length===0?C>0?(T=x[C-1].children).splice(T.indexOf(x[C]),1):this.clear():r(x[C],this.toBBox)},i})});var QY=Nc((exports,module)=>{/*! + * protobuf.js v7.2.3 (c) 2016, daniel wirtz + * compiled mon, 27 mar 2023 18:08:22 utc + * licensed under the bsd-3-clause license + * see: https://github.com/dcodeio/protobuf.js for details + */(function(undefined){"use strict";(function(t,n,i){function o(s){var a=n[s];return a||t[s][0].call(a=n[s]={exports:{}},o,a,a.exports),a.exports}var r=o(i[0]);r.util.global.protobuf=r,typeof define=="function"&&define.amd&&define(["long"],function(s){return s&&s.isLong&&(r.util.Long=s,r.configure()),r}),typeof module=="object"&&module&&module.exports&&(module.exports=r)})({1:[function(e,t,n){"use strict";t.exports=i;function i(o,r){for(var s=new Array(arguments.length-1),a=0,c=2,u=!0;c<arguments.length;)s[a++]=arguments[c++];return new Promise(function(d,p){s[a]=function(h){if(u)if(u=!1,h)p(h);else{for(var A=new Array(arguments.length-1),x=0;x<A.length;)A[x++]=arguments[x];d.apply(null,A)}};try{o.apply(r||null,s)}catch(g){u&&(u=!1,p(g))}})}},{}],2:[function(e,t,n){"use strict";var i=n;i.length=function(u){var f=u.length;if(!f)return 0;for(var d=0;--f%4>1&&u.charAt(f)==="=";)++d;return Math.ceil(u.length*3)/4-d};for(var o=new Array(64),r=new Array(123),s=0;s<64;)r[o[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;i.encode=function(u,f,d){for(var p=null,g=[],h=0,A=0,x;f<d;){var C=u[f++];switch(A){case 0:g[h++]=o[C>>2],x=(C&3)<<4,A=1;break;case 1:g[h++]=o[x|C>>4],x=(C&15)<<2,A=2;break;case 2:g[h++]=o[x|C>>6],g[h++]=o[C&63],A=0;break}h>8191&&((p||(p=[])).push(String.fromCharCode.apply(String,g)),h=0)}return A&&(g[h++]=o[x],g[h++]=61,A===1&&(g[h++]=61)),p?(h&&p.push(String.fromCharCode.apply(String,g.slice(0,h))),p.join("")):String.fromCharCode.apply(String,g.slice(0,h))};var a="invalid encoding";i.decode=function(u,f,d){for(var p=d,g=0,h,A=0;A<u.length;){var x=u.charCodeAt(A++);if(x===61&&g>1)break;if((x=r[x])===undefined)throw Error(a);switch(g){case 0:h=x,g=1;break;case 1:f[d++]=h<<2|(x&48)>>4,h=x,g=2;break;case 2:f[d++]=(h&15)<<4|(x&60)>>2,h=x,g=3;break;case 3:f[d++]=(h&3)<<6|x,g=0;break}}if(g===1)throw Error(a);return d-p},i.test=function(u){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(u)}},{}],3:[function(e,t,n){"use strict";t.exports=i;function i(){this._listeners={}}i.prototype.on=function(r,s,a){return(this._listeners[r]||(this._listeners[r]=[])).push({fn:s,ctx:a||this}),this},i.prototype.off=function(r,s){if(r===undefined)this._listeners={};else if(s===undefined)this._listeners[r]=[];else for(var a=this._listeners[r],c=0;c<a.length;)a[c].fn===s?a.splice(c,1):++c;return this},i.prototype.emit=function(r){var s=this._listeners[r];if(s){for(var a=[],c=1;c<arguments.length;)a.push(arguments[c++]);for(c=0;c<s.length;)s[c].fn.apply(s[c++].ctx,a)}return this}},{}],4:[function(e,t,n){"use strict";t.exports=i(i);function i(c){return typeof Float32Array<"u"?function(){var u=new Float32Array([-0]),f=new Uint8Array(u.buffer),d=f[3]===128;function p(x,C,T){u[0]=x,C[T]=f[0],C[T+1]=f[1],C[T+2]=f[2],C[T+3]=f[3]}function g(x,C,T){u[0]=x,C[T]=f[3],C[T+1]=f[2],C[T+2]=f[1],C[T+3]=f[0]}c.writeFloatLE=d?p:g,c.writeFloatBE=d?g:p;function h(x,C){return f[0]=x[C],f[1]=x[C+1],f[2]=x[C+2],f[3]=x[C+3],u[0]}function A(x,C){return f[3]=x[C],f[2]=x[C+1],f[1]=x[C+2],f[0]=x[C+3],u[0]}c.readFloatLE=d?h:A,c.readFloatBE=d?A:h}():function(){function u(d,p,g,h){var A=p<0?1:0;if(A&&(p=-p),p===0)d(1/p>0?0:2147483648,g,h);else if(isNaN(p))d(2143289344,g,h);else if(p>34028234663852886e22)d((A<<31|2139095040)>>>0,g,h);else if(p<11754943508222875e-54)d((A<<31|Math.round(p/1401298464324817e-60))>>>0,g,h);else{var x=Math.floor(Math.log(p)/Math.LN2),C=Math.round(p*Math.pow(2,-x)*8388608)&8388607;d((A<<31|x+127<<23|C)>>>0,g,h)}}c.writeFloatLE=u.bind(null,o),c.writeFloatBE=u.bind(null,r);function f(d,p,g){var h=d(p,g),A=(h>>31)*2+1,x=h>>>23&255,C=h&8388607;return x===255?C?NaN:A*(1/0):x===0?A*1401298464324817e-60*C:A*Math.pow(2,x-150)*(C+8388608)}c.readFloatLE=f.bind(null,s),c.readFloatBE=f.bind(null,a)}(),typeof Float64Array<"u"?function(){var u=new Float64Array([-0]),f=new Uint8Array(u.buffer),d=f[7]===128;function p(x,C,T){u[0]=x,C[T]=f[0],C[T+1]=f[1],C[T+2]=f[2],C[T+3]=f[3],C[T+4]=f[4],C[T+5]=f[5],C[T+6]=f[6],C[T+7]=f[7]}function g(x,C,T){u[0]=x,C[T]=f[7],C[T+1]=f[6],C[T+2]=f[5],C[T+3]=f[4],C[T+4]=f[3],C[T+5]=f[2],C[T+6]=f[1],C[T+7]=f[0]}c.writeDoubleLE=d?p:g,c.writeDoubleBE=d?g:p;function h(x,C){return f[0]=x[C],f[1]=x[C+1],f[2]=x[C+2],f[3]=x[C+3],f[4]=x[C+4],f[5]=x[C+5],f[6]=x[C+6],f[7]=x[C+7],u[0]}function A(x,C){return f[7]=x[C],f[6]=x[C+1],f[5]=x[C+2],f[4]=x[C+3],f[3]=x[C+4],f[2]=x[C+5],f[1]=x[C+6],f[0]=x[C+7],u[0]}c.readDoubleLE=d?h:A,c.readDoubleBE=d?A:h}():function(){function u(d,p,g,h,A,x){var C=h<0?1:0;if(C&&(h=-h),h===0)d(0,A,x+p),d(1/h>0?0:2147483648,A,x+g);else if(isNaN(h))d(0,A,x+p),d(2146959360,A,x+g);else if(h>17976931348623157e292)d(0,A,x+p),d((C<<31|2146435072)>>>0,A,x+g);else{var T;if(h<22250738585072014e-324)T=h/5e-324,d(T>>>0,A,x+p),d((C<<31|T/4294967296)>>>0,A,x+g);else{var E=Math.floor(Math.log(h)/Math.LN2);E===1024&&(E=1023),T=h*Math.pow(2,-E),d(T*4503599627370496>>>0,A,x+p),d((C<<31|E+1023<<20|T*1048576&1048575)>>>0,A,x+g)}}}c.writeDoubleLE=u.bind(null,o,0,4),c.writeDoubleBE=u.bind(null,r,4,0);function f(d,p,g,h,A){var x=d(h,A+p),C=d(h,A+g),T=(C>>31)*2+1,E=C>>>20&2047,S=4294967296*(C&1048575)+x;return E===2047?S?NaN:T*(1/0):E===0?T*5e-324*S:T*Math.pow(2,E-1075)*(S+4503599627370496)}c.readDoubleLE=f.bind(null,s,0,4),c.readDoubleBE=f.bind(null,a,4,0)}(),c}function o(c,u,f){u[f]=c&255,u[f+1]=c>>>8&255,u[f+2]=c>>>16&255,u[f+3]=c>>>24}function r(c,u,f){u[f]=c>>>24,u[f+1]=c>>>16&255,u[f+2]=c>>>8&255,u[f+3]=c&255}function s(c,u){return(c[u]|c[u+1]<<8|c[u+2]<<16|c[u+3]<<24)>>>0}function a(c,u){return(c[u]<<24|c[u+1]<<16|c[u+2]<<8|c[u+3])>>>0}},{}],5:[function(require,module,exports){"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}},{}],6:[function(e,t,n){"use strict";t.exports=i;function i(o,r,s){var a=s||8192,c=a>>>1,u=null,f=a;return function(p){if(p<1||p>c)return o(p);f+p>a&&(u=o(a),f=0);var g=r.call(u,f,f+=p);return f&7&&(f=(f|7)+1),g}}},{}],7:[function(e,t,n){"use strict";var i=n;i.length=function(r){for(var s=0,a=0,c=0;c<r.length;++c)a=r.charCodeAt(c),a<128?s+=1:a<2048?s+=2:(a&64512)===55296&&(r.charCodeAt(c+1)&64512)===56320?(++c,s+=4):s+=3;return s},i.read=function(r,s,a){var c=a-s;if(c<1)return"";for(var u=null,f=[],d=0,p;s<a;)p=r[s++],p<128?f[d++]=p:p>191&&p<224?f[d++]=(p&31)<<6|r[s++]&63:p>239&&p<365?(p=((p&7)<<18|(r[s++]&63)<<12|(r[s++]&63)<<6|r[s++]&63)-65536,f[d++]=55296+(p>>10),f[d++]=56320+(p&1023)):f[d++]=(p&15)<<12|(r[s++]&63)<<6|r[s++]&63,d>8191&&((u||(u=[])).push(String.fromCharCode.apply(String,f)),d=0);return u?(d&&u.push(String.fromCharCode.apply(String,f.slice(0,d))),u.join("")):String.fromCharCode.apply(String,f.slice(0,d))},i.write=function(r,s,a){for(var c=a,u,f,d=0;d<r.length;++d)u=r.charCodeAt(d),u<128?s[a++]=u:u<2048?(s[a++]=u>>6|192,s[a++]=u&63|128):(u&64512)===55296&&((f=r.charCodeAt(d+1))&64512)===56320?(u=65536+((u&1023)<<10)+(f&1023),++d,s[a++]=u>>18|240,s[a++]=u>>12&63|128,s[a++]=u>>6&63|128,s[a++]=u&63|128):(s[a++]=u>>12|224,s[a++]=u>>6&63|128,s[a++]=u&63|128);return a-c}},{}],8:[function(e,t,n){"use strict";var i=n;i.build="minimal",i.Writer=e(16),i.BufferWriter=e(17),i.Reader=e(9),i.BufferReader=e(10),i.util=e(15),i.rpc=e(12),i.roots=e(11),i.configure=o;function o(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}o()},{10:10,11:11,12:12,15:15,16:16,17:17,9:9}],9:[function(e,t,n){"use strict";t.exports=c;var i=e(15),o,r=i.LongBits,s=i.utf8;function a(h,A){return RangeError("index out of range: "+h.pos+" + "+(A||1)+" > "+h.len)}function c(h){this.buf=h,this.pos=0,this.len=h.length}var u=typeof Uint8Array<"u"?function(A){if(A instanceof Uint8Array||Array.isArray(A))return new c(A);throw Error("illegal buffer")}:function(A){if(Array.isArray(A))return new c(A);throw Error("illegal buffer")},f=function(){return i.Buffer?function(x){return(c.create=function(T){return i.Buffer.isBuffer(T)?new o(T):u(T)})(x)}:u};c.create=f(),c.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,c.prototype.uint32=function(){var A=4294967295;return function(){if(A=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(A=(A|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(A=(A|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(A=(A|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(A=(A|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return A;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return A}}(),c.prototype.int32=function(){return this.uint32()|0},c.prototype.sint32=function(){var A=this.uint32();return A>>>1^-(A&1)|0};function d(){var h=new r(0,0),A=0;if(this.len-this.pos>4){for(;A<4;++A)if(h.lo=(h.lo|(this.buf[this.pos]&127)<<A*7)>>>0,this.buf[this.pos++]<128)return h;if(h.lo=(h.lo|(this.buf[this.pos]&127)<<28)>>>0,h.hi=(h.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return h;A=0}else{for(;A<3;++A){if(this.pos>=this.len)throw a(this);if(h.lo=(h.lo|(this.buf[this.pos]&127)<<A*7)>>>0,this.buf[this.pos++]<128)return h}return h.lo=(h.lo|(this.buf[this.pos++]&127)<<A*7)>>>0,h}if(this.len-this.pos>4){for(;A<5;++A)if(h.hi=(h.hi|(this.buf[this.pos]&127)<<A*7+3)>>>0,this.buf[this.pos++]<128)return h}else for(;A<5;++A){if(this.pos>=this.len)throw a(this);if(h.hi=(h.hi|(this.buf[this.pos]&127)<<A*7+3)>>>0,this.buf[this.pos++]<128)return h}throw Error("invalid varint encoding")}c.prototype.bool=function(){return this.uint32()!==0};function p(h,A){return(h[A-4]|h[A-3]<<8|h[A-2]<<16|h[A-1]<<24)>>>0}c.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)|0};function g(){if(this.pos+8>this.len)throw a(this,8);return new r(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}c.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var A=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,A},c.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var A=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,A},c.prototype.bytes=function(){var A=this.uint32(),x=this.pos,C=this.pos+A;if(C>this.len)throw a(this,A);return this.pos+=A,Array.isArray(this.buf)?this.buf.slice(x,C):x===C?new this.buf.constructor(0):this._slice.call(this.buf,x,C)},c.prototype.string=function(){var A=this.bytes();return s.read(A,0,A.length)},c.prototype.skip=function(A){if(typeof A=="number"){if(this.pos+A>this.len)throw a(this,A);this.pos+=A}else do if(this.pos>=this.len)throw a(this);while(this.buf[this.pos++]&128);return this},c.prototype.skipType=function(h){switch(h){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(h=this.uint32()&7)!==4;)this.skipType(h);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+h+" at offset "+this.pos)}return this},c._configure=function(h){o=h,c.create=f(),o._configure();var A=i.Long?"toLong":"toNumber";i.merge(c.prototype,{int64:function(){return d.call(this)[A](!1)},uint64:function(){return d.call(this)[A](!0)},sint64:function(){return d.call(this).zzDecode()[A](!1)},fixed64:function(){return g.call(this)[A](!0)},sfixed64:function(){return g.call(this)[A](!1)}})}},{15:15}],10:[function(e,t,n){"use strict";t.exports=r;var i=e(9);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(s){i.call(this,s)}r._configure=function(){o.Buffer&&(r.prototype._slice=o.Buffer.prototype.slice)},r.prototype.string=function(){var a=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+a,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+a,this.len))},r._configure()},{15:15,9:9}],11:[function(e,t,n){"use strict";t.exports={}},{}],12:[function(e,t,n){"use strict";var i=n;i.Service=e(13)},{13:13}],13:[function(e,t,n){"use strict";t.exports=o;var i=e(15);(o.prototype=Object.create(i.EventEmitter.prototype)).constructor=o;function o(r,s,a){if(typeof r!="function")throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=r,this.requestDelimited=!!s,this.responseDelimited=!!a}o.prototype.rpcCall=function r(s,a,c,u,f){if(!u)throw TypeError("request must be specified");var d=this;if(!f)return i.asPromise(r,d,s,a,c,u);if(!d.rpcImpl)return setTimeout(function(){f(Error("already ended"))},0),undefined;try{return d.rpcImpl(s,a[d.requestDelimited?"encodeDelimited":"encode"](u).finish(),function(g,h){if(g)return d.emit("error",g,s),f(g);if(h===null)return d.end(!0),undefined;if(!(h instanceof c))try{h=c[d.responseDelimited?"decodeDelimited":"decode"](h)}catch(A){return d.emit("error",A,s),f(A)}return d.emit("data",h,s),f(null,h)})}catch(p){return d.emit("error",p,s),setTimeout(function(){f(p)},0),undefined}},o.prototype.end=function(s){return this.rpcImpl&&(s||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{15:15}],14:[function(e,t,n){"use strict";t.exports=o;var i=e(15);function o(c,u){this.lo=c>>>0,this.hi=u>>>0}var r=o.zero=new o(0,0);r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1};var s=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(u){if(u===0)return r;var f=u<0;f&&(u=-u);var d=u>>>0,p=(u-d)/4294967296>>>0;return f&&(p=~p>>>0,d=~d>>>0,++d>4294967295&&(d=0,++p>4294967295&&(p=0))),new o(d,p)},o.from=function(u){if(typeof u=="number")return o.fromNumber(u);if(i.isString(u))if(i.Long)u=i.Long.fromString(u);else return o.fromNumber(parseInt(u,10));return u.low||u.high?new o(u.low>>>0,u.high>>>0):r},o.prototype.toNumber=function(u){if(!u&&this.hi>>>31){var f=~this.lo+1>>>0,d=~this.hi>>>0;return f||(d=d+1>>>0),-(f+d*4294967296)}return this.lo+this.hi*4294967296},o.prototype.toLong=function(u){return i.Long?new i.Long(this.lo|0,this.hi|0,!!u):{low:this.lo|0,high:this.hi|0,unsigned:!!u}};var a=String.prototype.charCodeAt;o.fromHash=function(u){return u===s?r:new o((a.call(u,0)|a.call(u,1)<<8|a.call(u,2)<<16|a.call(u,3)<<24)>>>0,(a.call(u,4)|a.call(u,5)<<8|a.call(u,6)<<16|a.call(u,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var u=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^u)>>>0,this.lo=(this.lo<<1^u)>>>0,this},o.prototype.zzDecode=function(){var u=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^u)>>>0,this.hi=(this.hi>>>1^u)>>>0,this},o.prototype.length=function(){var u=this.lo,f=(this.lo>>>28|this.hi<<4)>>>0,d=this.hi>>>24;return d===0?f===0?u<16384?u<128?1:2:u<2097152?3:4:f<16384?f<128?5:6:f<2097152?7:8:d<128?9:10}},{15:15}],15:[function(e,t,n){"use strict";var i=n;i.asPromise=e(1),i.base64=e(2),i.EventEmitter=e(3),i.float=e(4),i.inquire=e(5),i.utf8=e(7),i.pool=e(6),i.LongBits=e(14),i.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node),i.global=i.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(a){return typeof a=="number"&&isFinite(a)&&Math.floor(a)===a},i.isString=function(a){return typeof a=="string"||a instanceof String},i.isObject=function(a){return a&&typeof a=="object"},i.isset=i.isSet=function(a,c){var u=a[c];return u!=null&&a.hasOwnProperty(c)?typeof u!="object"||(Array.isArray(u)?u.length:Object.keys(u).length)>0:!1},i.Buffer=function(){try{var s=i.inquire("buffer").Buffer;return s.prototype.utf8Write?s:null}catch{return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(a){return typeof a=="number"?i.Buffer?i._Buffer_allocUnsafe(a):new i.Array(a):i.Buffer?i._Buffer_from(a):typeof Uint8Array>"u"?a:new Uint8Array(a)},i.Array=typeof Uint8Array<"u"?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(a){return a?i.LongBits.from(a).toHash():i.LongBits.zeroHash},i.longFromHash=function(a,c){var u=i.LongBits.fromHash(a);return i.Long?i.Long.fromBits(u.lo,u.hi,c):u.toNumber(!!c)};function o(s,a,c){for(var u=Object.keys(a),f=0;f<u.length;++f)(s[u[f]]===undefined||!c)&&(s[u[f]]=a[u[f]]);return s}i.merge=o,i.lcFirst=function(a){return a.charAt(0).toLowerCase()+a.substring(1)};function r(s){function a(c,u){if(!(this instanceof a))return new a(c,u);Object.defineProperty(this,"message",{get:function(){return c}}),Error.captureStackTrace?Error.captureStackTrace(this,a):Object.defineProperty(this,"stack",{value:new Error().stack||""}),u&&o(this,u)}return a.prototype=Object.create(Error.prototype,{constructor:{value:a,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return s},set:undefined,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),a}i.newError=r,i.ProtocolError=r("ProtocolError"),i.oneOfGetter=function(a){for(var c={},u=0;u<a.length;++u)c[a[u]]=1;return function(){for(var f=Object.keys(this),d=f.length-1;d>-1;--d)if(c[f[d]]===1&&this[f[d]]!==undefined&&this[f[d]]!==null)return f[d]}},i.oneOfSetter=function(a){return function(c){for(var u=0;u<a.length;++u)a[u]!==c&&delete this[a[u]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var s=i.Buffer;if(!s){i._Buffer_from=i._Buffer_allocUnsafe=null;return}i._Buffer_from=s.from!==Uint8Array.from&&s.from||function(c,u){return new s(c,u)},i._Buffer_allocUnsafe=s.allocUnsafe||function(c){return new s(c)}}},{1:1,14:14,2:2,3:3,4:4,5:5,6:6,7:7}],16:[function(e,t,n){"use strict";t.exports=d;var i=e(15),o,r=i.LongBits,s=i.base64,a=i.utf8;function c(E,S,v){this.fn=E,this.len=S,this.next=undefined,this.val=v}function u(){}function f(E){this.head=E.head,this.tail=E.tail,this.len=E.len,this.next=E.states}function d(){this.len=0,this.head=new c(u,0,0),this.tail=this.head,this.states=null}var p=function(){return i.Buffer?function(){return(d.create=function(){return new o})()}:function(){return new d}};d.create=p(),d.alloc=function(S){return new i.Array(S)},i.Array!==Array&&(d.alloc=i.pool(d.alloc,i.Array.prototype.subarray)),d.prototype._push=function(S,v,D){return this.tail=this.tail.next=new c(S,v,D),this.len+=v,this};function g(E,S,v){S[v]=E&255}function h(E,S,v){for(;E>127;)S[v++]=E&127|128,E>>>=7;S[v]=E}function A(E,S){this.len=E,this.next=undefined,this.val=S}A.prototype=Object.create(c.prototype),A.prototype.fn=h,d.prototype.uint32=function(S){return this.len+=(this.tail=this.tail.next=new A((S=S>>>0)<128?1:S<16384?2:S<2097152?3:S<268435456?4:5,S)).len,this},d.prototype.int32=function(S){return S<0?this._push(x,10,r.fromNumber(S)):this.uint32(S)},d.prototype.sint32=function(S){return this.uint32((S<<1^S>>31)>>>0)};function x(E,S,v){for(;E.hi;)S[v++]=E.lo&127|128,E.lo=(E.lo>>>7|E.hi<<25)>>>0,E.hi>>>=7;for(;E.lo>127;)S[v++]=E.lo&127|128,E.lo=E.lo>>>7;S[v++]=E.lo}d.prototype.uint64=function(S){var v=r.from(S);return this._push(x,v.length(),v)},d.prototype.int64=d.prototype.uint64,d.prototype.sint64=function(S){var v=r.from(S).zzEncode();return this._push(x,v.length(),v)},d.prototype.bool=function(S){return this._push(g,1,S?1:0)};function C(E,S,v){S[v]=E&255,S[v+1]=E>>>8&255,S[v+2]=E>>>16&255,S[v+3]=E>>>24}d.prototype.fixed32=function(S){return this._push(C,4,S>>>0)},d.prototype.sfixed32=d.prototype.fixed32,d.prototype.fixed64=function(S){var v=r.from(S);return this._push(C,4,v.lo)._push(C,4,v.hi)},d.prototype.sfixed64=d.prototype.fixed64,d.prototype.float=function(S){return this._push(i.float.writeFloatLE,4,S)},d.prototype.double=function(S){return this._push(i.float.writeDoubleLE,8,S)};var T=i.Array.prototype.set?function(S,v,D){v.set(S,D)}:function(S,v,D){for(var O=0;O<S.length;++O)v[D+O]=S[O]};d.prototype.bytes=function(S){var v=S.length>>>0;if(!v)return this._push(g,1,0);if(i.isString(S)){var D=d.alloc(v=s.length(S));s.decode(S,D,0),S=D}return this.uint32(v)._push(T,v,S)},d.prototype.string=function(S){var v=a.length(S);return v?this.uint32(v)._push(a.write,v,S):this._push(g,1,0)},d.prototype.fork=function(){return this.states=new f(this),this.head=this.tail=new c(u,0,0),this.len=0,this},d.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(u,0,0),this.len=0),this},d.prototype.ldelim=function(){var S=this.head,v=this.tail,D=this.len;return this.reset().uint32(D),D&&(this.tail.next=S.next,this.tail=v,this.len+=D),this},d.prototype.finish=function(){for(var S=this.head.next,v=this.constructor.alloc(this.len),D=0;S;)S.fn(S.val,v,D),D+=S.len,S=S.next;return v},d._configure=function(E){o=E,d.create=p(),o._configure()}},{15:15}],17:[function(e,t,n){"use strict";t.exports=r;var i=e(16);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(){i.call(this)}r._configure=function(){r.alloc=o._Buffer_allocUnsafe,r.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&o.Buffer.prototype.set.name==="set"?function(c,u,f){u.set(c,f)}:function(c,u,f){if(c.copy)c.copy(u,f,0,c.length);else for(var d=0;d<c.length;)u[f++]=c[d++]}},r.prototype.bytes=function(c){o.isString(c)&&(c=o._Buffer_from(c,"base64"));var u=c.length>>>0;return this.uint32(u),u&&this._push(r.writeBytesBuffer,u,c),this};function s(a,c,u){a.length<40?o.utf8.write(a,c,u):c.utf8Write?c.utf8Write(a,u):c.write(a,u)}r.prototype.string=function(c){var u=o.Buffer.byteLength(c);return this.uint32(u),u&&this._push(s,u,c),this},r._configure()},{15:15,16:16}]},{},[8])})()});var Cye=Nc((gxi,T4)=>{/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var e=function(){var o={};o.defaultNoDataValue=-34027999387901484e22,o.decode=function(f,d){d=d||{};var p=d.encodedMaskData||d.encodedMaskData===null,g=c(f,d.inputOffset||0,p),h=d.noDataValue!==null?d.noDataValue:o.defaultNoDataValue,A=r(g,d.pixelType||Float32Array,d.encodedMaskData,h,d.returnMask),x={width:g.width,height:g.height,pixelData:A.resultPixels,minValue:A.minValue,maxValue:g.pixels.maxValue,noDataValue:h};return A.resultMask&&(x.maskData=A.resultMask),d.returnEncodedMask&&g.mask&&(x.encodedMaskData=g.mask.bitset?g.mask.bitset:null),d.returnFileInfo&&(x.fileInfo=s(g),d.computeUsedBitDepths&&(x.fileInfo.bitDepths=a(g))),x};var r=function(f,d,p,g,h){var A=0,x=f.pixels.numBlocksX,C=f.pixels.numBlocksY,T=Math.floor(f.width/x),E=Math.floor(f.height/C),S=2*f.maxZError,v=Number.MAX_VALUE,D;p=p||(f.mask?f.mask.bitset:null);var O,M;O=new d(f.width*f.height),h&&p&&(M=new Uint8Array(f.width*f.height));for(var L=new Float32Array(T*E),N,_,b=0;b<=C;b++){var w=b!==C?E:f.height%C;if(w!==0)for(var I=0;I<=x;I++){var R=I!==x?T:f.width%x;if(R!==0){var F=b*f.width*E+I*T,k=f.width-R,V=f.pixels.blocks[A],G,U,q;V.encoding<2?(V.encoding===0?G=V.rawData:(u(V.stuffedData,V.bitsPerPixel,V.numValidPixels,V.offset,S,L,f.pixels.maxValue),G=L),U=0):V.encoding===2?q=0:q=V.offset;var Y;if(p)for(_=0;_<w;_++){for(F&7&&(Y=p[F>>3],Y<<=F&7),N=0;N<R;N++)F&7||(Y=p[F>>3]),Y&128?(M&&(M[F]=1),D=V.encoding<2?G[U++]:q,v=v>D?D:v,O[F++]=D):(M&&(M[F]=0),O[F++]=g),Y<<=1;F+=k}else if(V.encoding<2)for(_=0;_<w;_++){for(N=0;N<R;N++)D=G[U++],v=v>D?D:v,O[F++]=D;F+=k}else for(v=v>q?q:v,_=0;_<w;_++){for(N=0;N<R;N++)O[F++]=q;F+=k}if(V.encoding===1&&U!==V.numValidPixels)throw"Block and Mask do not match";A++}}}return{resultPixels:O,resultMask:M,minValue:v}},s=function(f){return{fileIdentifierString:f.fileIdentifierString,fileVersion:f.fileVersion,imageType:f.imageType,height:f.height,width:f.width,maxZError:f.maxZError,eofOffset:f.eofOffset,mask:f.mask?{numBlocksX:f.mask.numBlocksX,numBlocksY:f.mask.numBlocksY,numBytes:f.mask.numBytes,maxValue:f.mask.maxValue}:null,pixels:{numBlocksX:f.pixels.numBlocksX,numBlocksY:f.pixels.numBlocksY,numBytes:f.pixels.numBytes,maxValue:f.pixels.maxValue,noDataValue:f.noDataValue}}},a=function(f){for(var d=f.pixels.numBlocksX*f.pixels.numBlocksY,p={},g=0;g<d;g++){var h=f.pixels.blocks[g];h.encoding===0?p.float32=!0:h.encoding===1?p[h.bitsPerPixel]=!0:p[0]=!0}return Object.keys(p)},c=function(f,d,p){var g={},h=new Uint8Array(f,d,10);if(g.fileIdentifierString=String.fromCharCode.apply(null,h),g.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+g.fileIdentifierString;d+=10;var A=new DataView(f,d,24);if(g.fileVersion=A.getInt32(0,!0),g.imageType=A.getInt32(4,!0),g.height=A.getUint32(8,!0),g.width=A.getUint32(12,!0),g.maxZError=A.getFloat64(16,!0),d+=24,!p)if(A=new DataView(f,d,16),g.mask={},g.mask.numBlocksY=A.getUint32(0,!0),g.mask.numBlocksX=A.getUint32(4,!0),g.mask.numBytes=A.getUint32(8,!0),g.mask.maxValue=A.getFloat32(12,!0),d+=16,g.mask.numBytes>0){var x=new Uint8Array(Math.ceil(g.width*g.height/8));A=new DataView(f,d,g.mask.numBytes);var C=A.getInt16(0,!0),T=2,E=0;do{if(C>0)for(;C--;)x[E++]=A.getUint8(T++);else{var S=A.getUint8(T++);for(C=-C;C--;)x[E++]=S}C=A.getInt16(T,!0),T+=2}while(T<g.mask.numBytes);if(C!==-32768||E<x.length)throw"Unexpected end of mask RLE encoding";g.mask.bitset=x,d+=g.mask.numBytes}else g.mask.numBytes|g.mask.numBlocksY|g.mask.maxValue||(g.mask.bitset=new Uint8Array(Math.ceil(g.width*g.height/8)));A=new DataView(f,d,16),g.pixels={},g.pixels.numBlocksY=A.getUint32(0,!0),g.pixels.numBlocksX=A.getUint32(4,!0),g.pixels.numBytes=A.getUint32(8,!0),g.pixels.maxValue=A.getFloat32(12,!0),d+=16;var v=g.pixels.numBlocksX,D=g.pixels.numBlocksY,O=v+(g.width%v>0?1:0),M=D+(g.height%D>0?1:0);g.pixels.blocks=new Array(O*M);for(var L=0,N=0;N<M;N++)for(var _=0;_<O;_++){var b=0,w=f.byteLength-d;A=new DataView(f,d,Math.min(10,w));var I={};g.pixels.blocks[L++]=I;var R=A.getUint8(0);if(b++,I.encoding=R&63,I.encoding>3)throw"Invalid block encoding ("+I.encoding+")";if(I.encoding===2){d++;continue}if(R!==0&&R!==2){if(R>>=6,I.offsetType=R,R===2)I.offset=A.getInt8(1),b++;else if(R===1)I.offset=A.getInt16(1,!0),b+=2;else if(R===0)I.offset=A.getFloat32(1,!0),b+=4;else throw"Invalid block offset type";if(I.encoding===1)if(R=A.getUint8(b),b++,I.bitsPerPixel=R&63,R>>=6,I.numValidPixelsType=R,R===2)I.numValidPixels=A.getUint8(b),b++;else if(R===1)I.numValidPixels=A.getUint16(b,!0),b+=2;else if(R===0)I.numValidPixels=A.getUint32(b,!0),b+=4;else throw"Invalid valid pixel count type"}if(d+=b,I.encoding!==3){var F,k;if(I.encoding===0){var V=(g.pixels.numBytes-1)/4;if(V!==Math.floor(V))throw"uncompressed block has invalid length";F=new ArrayBuffer(V*4),k=new Uint8Array(F),k.set(new Uint8Array(f,d,V*4));var G=new Float32Array(F);I.rawData=G,d+=V*4}else if(I.encoding===1){var U=Math.ceil(I.numValidPixels*I.bitsPerPixel/8),q=Math.ceil(U/4);F=new ArrayBuffer(q*4),k=new Uint8Array(F),k.set(new Uint8Array(f,d,U)),I.stuffedData=new Uint32Array(F),d+=U}}}return g.eofOffset=d,g},u=function(f,d,p,g,h,A,x){var C=(1<<d)-1,T=0,E,S=0,v,D,O=Math.ceil((x-g)/h),M=f.length*4-Math.ceil(d*p/8);for(f[f.length-1]<<=8*M,E=0;E<p;E++){if(S===0&&(D=f[T++],S=32),S>=d)v=D>>>S-d&C,S-=d;else{var L=d-S;v=(D&C)<<L&C,D=f[T++],S=32-L,v+=D>>>S}A[E]=v<O?g+v*h:x}return A};return o}(),t=function(){"use strict";var o={unstuff:function(c,u,f,d,p,g,h,A){var x=(1<<f)-1,C=0,T,E=0,S,v,D,O,M=c.length*4-Math.ceil(f*d/8);if(c[c.length-1]<<=8*M,p)for(T=0;T<d;T++)E===0&&(v=c[C++],E=32),E>=f?(S=v>>>E-f&x,E-=f):(D=f-E,S=(v&x)<<D&x,v=c[C++],E=32-D,S+=v>>>E),u[T]=p[S];else for(O=Math.ceil((A-g)/h),T=0;T<d;T++)E===0&&(v=c[C++],E=32),E>=f?(S=v>>>E-f&x,E-=f):(D=f-E,S=(v&x)<<D&x,v=c[C++],E=32-D,S+=v>>>E),u[T]=S<O?g+S*h:A},unstuffLUT:function(c,u,f,d,p,g){var h=(1<<u)-1,A=0,x=0,C=0,T=0,E=0,S,v=[],D=c.length*4-Math.ceil(u*f/8);c[c.length-1]<<=8*D;var O=Math.ceil((g-d)/p);for(x=0;x<f;x++)T===0&&(S=c[A++],T=32),T>=u?(E=S>>>T-u&h,T-=u):(C=u-T,E=(S&h)<<C&h,S=c[A++],T=32-C,E+=S>>>T),v[x]=E<O?d+E*p:g;return v.unshift(d),v},unstuff2:function(c,u,f,d,p,g,h,A){var x=(1<<f)-1,C=0,T,E=0,S=0,v,D,O;if(p)for(T=0;T<d;T++)E===0&&(D=c[C++],E=32,S=0),E>=f?(v=D>>>S&x,E-=f,S+=f):(O=f-E,v=D>>>S&x,D=c[C++],E=32-O,v|=(D&(1<<O)-1)<<f-O,S=O),u[T]=p[v];else{var M=Math.ceil((A-g)/h);for(T=0;T<d;T++)E===0&&(D=c[C++],E=32,S=0),E>=f?(v=D>>>S&x,E-=f,S+=f):(O=f-E,v=D>>>S&x,D=c[C++],E=32-O,v|=(D&(1<<O)-1)<<f-O,S=O),u[T]=v<M?g+v*h:A}return u},unstuffLUT2:function(c,u,f,d,p,g){var h=(1<<u)-1,A=0,x=0,C=0,T=0,E=0,S=0,v,D=[],O=Math.ceil((g-d)/p);for(x=0;x<f;x++)T===0&&(v=c[A++],T=32,S=0),T>=u?(E=v>>>S&h,T-=u,S+=u):(C=u-T,E=v>>>S&h,v=c[A++],T=32-C,E|=(v&(1<<C)-1)<<u-C,S=C),D[x]=E<O?d+E*p:g;return D.unshift(d),D},originalUnstuff:function(c,u,f,d){var p=(1<<f)-1,g=0,h,A=0,x,C,T,E=c.length*4-Math.ceil(f*d/8);for(c[c.length-1]<<=8*E,h=0;h<d;h++)A===0&&(C=c[g++],A=32),A>=f?(x=C>>>A-f&p,A-=f):(T=f-A,x=(C&p)<<T&p,C=c[g++],A=32-T,x+=C>>>A),u[h]=x;return u},originalUnstuff2:function(c,u,f,d){var p=(1<<f)-1,g=0,h,A=0,x=0,C,T,E;for(h=0;h<d;h++)A===0&&(T=c[g++],A=32,x=0),A>=f?(C=T>>>x&p,A-=f,x+=f):(E=f-A,C=T>>>x&p,T=c[g++],A=32-E,C|=(T&(1<<E)-1)<<f-E,x=E),u[h]=C;return u}},r={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(c){for(var u=65535,f=65535,d=c.length,p=Math.floor(d/2),g=0;p;){var h=p>=359?359:p;p-=h;do u+=c[g++]<<8,f+=u+=c[g++];while(--h);u=(u&65535)+(u>>>16),f=(f&65535)+(f>>>16)}return d&1&&(f+=u+=c[g]<<8),u=(u&65535)+(u>>>16),f=(f&65535)+(f>>>16),(f<<16|u)>>>0},readHeaderInfo:function(c,u){var f=u.ptr,d=new Uint8Array(c,f,6),p={};if(p.fileIdentifierString=String.fromCharCode.apply(null,d),p.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+p.fileIdentifierString;f+=6;var g=new DataView(c,f,8),h=g.getInt32(0,!0);p.fileVersion=h,f+=4,h>=3&&(p.checksum=g.getUint32(4,!0),f+=4),g=new DataView(c,f,12),p.height=g.getUint32(0,!0),p.width=g.getUint32(4,!0),f+=8,h>=4?(p.numDims=g.getUint32(8,!0),f+=4):p.numDims=1,g=new DataView(c,f,40),p.numValidPixel=g.getUint32(0,!0),p.microBlockSize=g.getInt32(4,!0),p.blobSize=g.getInt32(8,!0),p.imageType=g.getInt32(12,!0),p.maxZError=g.getFloat64(16,!0),p.zMin=g.getFloat64(24,!0),p.zMax=g.getFloat64(32,!0),f+=40,u.headerInfo=p,u.ptr=f;var A,x;if(h>=3&&(x=h>=4?52:48,A=this.computeChecksumFletcher32(new Uint8Array(c,f-x,p.blobSize-14)),A!==p.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(c,u){var f=u.headerInfo,d=this.getDataTypeArray(f.imageType),p=f.numDims*this.getDataTypeSize(f.imageType),g=this.readSubArray(c,u.ptr,d,p),h=this.readSubArray(c,u.ptr+p,d,p);u.ptr+=2*p;var A,x=!0;for(A=0;A<f.numDims;A++)if(g[A]!==h[A]){x=!1;break}return f.minValues=g,f.maxValues=h,x},readSubArray:function(c,u,f,d){var p;if(f===Uint8Array)p=new Uint8Array(c,u,d);else{var g=new ArrayBuffer(d),h=new Uint8Array(g);h.set(new Uint8Array(c,u,d)),p=new f(g)}return p},readMask:function(c,u){var f=u.ptr,d=u.headerInfo,p=d.width*d.height,g=d.numValidPixel,h=new DataView(c,f,4),A={};if(A.numBytes=h.getUint32(0,!0),f+=4,(g===0||p===g)&&A.numBytes!==0)throw"invalid mask";var x,C;if(g===0)x=new Uint8Array(Math.ceil(p/8)),A.bitset=x,C=new Uint8Array(p),u.pixels.resultMask=C,f+=A.numBytes;else if(A.numBytes>0){x=new Uint8Array(Math.ceil(p/8)),h=new DataView(c,f,A.numBytes);var T=h.getInt16(0,!0),E=2,S=0,v=0;do{if(T>0)for(;T--;)x[S++]=h.getUint8(E++);else for(v=h.getUint8(E++),T=-T;T--;)x[S++]=v;T=h.getInt16(E,!0),E+=2}while(E<A.numBytes);if(T!==-32768||S<x.length)throw"Unexpected end of mask RLE encoding";C=new Uint8Array(p);var D=0,O=0;for(O=0;O<p;O++)O&7?(D=x[O>>3],D<<=O&7):D=x[O>>3],D&128&&(C[O]=1);u.pixels.resultMask=C,A.bitset=x,f+=A.numBytes}return u.ptr=f,u.mask=A,!0},readDataOneSweep:function(c,u,f){var d=u.ptr,p=u.headerInfo,g=p.numDims,h=p.width*p.height,A=p.imageType,x=p.numValidPixel*r.getDataTypeSize(A)*g,C,T=u.pixels.resultMask;if(f===Uint8Array)C=new Uint8Array(c,d,x);else{var E=new ArrayBuffer(x),S=new Uint8Array(E);S.set(new Uint8Array(c,d,x)),C=new f(E)}if(C.length===h*g)u.pixels.resultPixels=C;else{u.pixels.resultPixels=new f(h*g);var v=0,D=0,O=0,M=0;if(g>1)for(O=0;O<g;O++)for(M=O*h,D=0;D<h;D++)T[D]&&(u.pixels.resultPixels[M+D]=C[v++]);else for(D=0;D<h;D++)T[D]&&(u.pixels.resultPixels[D]=C[v++])}return d+=x,u.ptr=d,!0},readHuffmanTree:function(c,u){var f=this.HUFFMAN_LUT_BITS_MAX,d=new DataView(c,u.ptr,16);u.ptr+=16;var p=d.getInt32(0,!0);if(p<2)throw"unsupported Huffman version";var g=d.getInt32(4,!0),h=d.getInt32(8,!0),A=d.getInt32(12,!0);if(h>=A)return!1;var x=new Uint32Array(A-h);r.decodeBits(c,u,x);var C=[],T,E,S,v;for(T=h;T<A;T++)E=T-(T<g?0:g),C[E]={first:x[T-h],second:null};var D=c.byteLength-u.ptr,O=Math.ceil(D/4),M=new ArrayBuffer(O*4),L=new Uint8Array(M);L.set(new Uint8Array(c,u.ptr,D));var N=new Uint32Array(M),_=0,b,w=0;for(b=N[0],T=h;T<A;T++)E=T-(T<g?0:g),v=C[E].first,v>0&&(C[E].second=b<<_>>>32-v,32-_>=v?(_+=v,_===32&&(_=0,w++,b=N[w])):(_+=v-32,w++,b=N[w],C[E].second|=b>>>32-_));var I=0,R=0,F=new s;for(T=0;T<C.length;T++)C[T]!==void 0&&(I=Math.max(I,C[T].first));I>=f?R=f:R=I,I>=30&&console.log("WARning, large NUM LUT BITS IS "+I);var k=[],V,G,U,q,Y,Q;for(T=h;T<A;T++)if(E=T-(T<g?0:g),v=C[E].first,v>0)if(V=[v,E],v<=R)for(G=C[E].second<<R-v,U=1<<R-v,S=0;S<U;S++)k[G|S]=V;else for(G=C[E].second,Q=F,q=v-1;q>=0;q--)Y=G>>>q&1,Y?(Q.right||(Q.right=new s),Q=Q.right):(Q.left||(Q.left=new s),Q=Q.left),q===0&&!Q.val&&(Q.val=V[1]);return{decodeLut:k,numBitsLUTQick:R,numBitsLUT:I,tree:F,stuffedData:N,srcPtr:w,bitPos:_}},readHuffman:function(c,u,f){var d=u.headerInfo,p=d.numDims,g=u.headerInfo.height,h=u.headerInfo.width,A=h*g,x=this.readHuffmanTree(c,u),C=x.decodeLut,T=x.tree,E=x.stuffedData,S=x.srcPtr,v=x.bitPos,D=x.numBitsLUTQick,O=x.numBitsLUT,M=u.headerInfo.imageType===0?128:0,L,N,_,b=u.pixels.resultMask,w,I,R,F,k,V,G,U=0;v>0&&(S++,v=0);var q=E[S],Y=u.encodeMode===1,Q=new f(A*p),W=Q,K;for(K=0;K<d.numDims;K++){if(p>1&&(W=new f(Q.buffer,A*K,A),U=0),u.headerInfo.numValidPixel===h*g)for(V=0,F=0;F<g;F++)for(k=0;k<h;k++,V++){if(N=0,w=q<<v>>>32-D,I=w,32-v<D&&(w|=E[S+1]>>>64-v-D,I=w),C[I])N=C[I][1],v+=C[I][0];else for(w=q<<v>>>32-O,I=w,32-v<O&&(w|=E[S+1]>>>64-v-O,I=w),L=T,G=0;G<O;G++)if(R=w>>>O-G-1&1,L=R?L.right:L.left,!(L.left||L.right)){N=L.val,v=v+G+1;break}v>=32&&(v-=32,S++,q=E[S]),_=N-M,Y?(k>0?_+=U:F>0?_+=W[V-h]:_+=U,_&=255,W[V]=_,U=_):W[V]=_}else for(V=0,F=0;F<g;F++)for(k=0;k<h;k++,V++)if(b[V]){if(N=0,w=q<<v>>>32-D,I=w,32-v<D&&(w|=E[S+1]>>>64-v-D,I=w),C[I])N=C[I][1],v+=C[I][0];else for(w=q<<v>>>32-O,I=w,32-v<O&&(w|=E[S+1]>>>64-v-O,I=w),L=T,G=0;G<O;G++)if(R=w>>>O-G-1&1,L=R?L.right:L.left,!(L.left||L.right)){N=L.val,v=v+G+1;break}v>=32&&(v-=32,S++,q=E[S]),_=N-M,Y?(k>0&&b[V-1]?_+=U:F>0&&b[V-h]?_+=W[V-h]:_+=U,_&=255,W[V]=_,U=_):W[V]=_}u.ptr=u.ptr+(S+1)*4+(v>0?4:0)}u.pixels.resultPixels=Q},decodeBits:function(c,u,f,d,p){{var g=u.headerInfo,h=g.fileVersion,A=0,x=new DataView(c,u.ptr,5),C=x.getUint8(0);A++;var T=C>>6,E=T===0?4:3-T,S=(C&32)>0,v=C&31,D=0;if(E===1)D=x.getUint8(A),A++;else if(E===2)D=x.getUint16(A,!0),A+=2;else if(E===4)D=x.getUint32(A,!0),A+=4;else throw"Invalid valid pixel count type";var O=2*g.maxZError,M,L,N,_,b,w,I,R,F,k,V=g.numDims>1?g.maxValues[p]:g.zMax;if(S){for(u.counter.lut++,R=x.getUint8(A),F=v,A++,_=Math.ceil((R-1)*v/8),b=Math.ceil(_/4),L=new ArrayBuffer(b*4),N=new Uint8Array(L),u.ptr+=A,N.set(new Uint8Array(c,u.ptr,_)),I=new Uint32Array(L),u.ptr+=_,k=0;R-1>>>k;)k++;_=Math.ceil(D*k/8),b=Math.ceil(_/4),L=new ArrayBuffer(b*4),N=new Uint8Array(L),N.set(new Uint8Array(c,u.ptr,_)),M=new Uint32Array(L),u.ptr+=_,h>=3?w=o.unstuffLUT2(I,v,R-1,d,O,V):w=o.unstuffLUT(I,v,R-1,d,O,V),h>=3?o.unstuff2(M,f,k,D,w):o.unstuff(M,f,k,D,w)}else u.counter.bitstuffer++,k=v,u.ptr+=A,k>0&&(_=Math.ceil(D*k/8),b=Math.ceil(_/4),L=new ArrayBuffer(b*4),N=new Uint8Array(L),N.set(new Uint8Array(c,u.ptr,_)),M=new Uint32Array(L),u.ptr+=_,h>=3?d==null?o.originalUnstuff2(M,f,k,D):o.unstuff2(M,f,k,D,!1,d,O,V):d==null?o.originalUnstuff(M,f,k,D):o.unstuff(M,f,k,D,!1,d,O,V))}},readTiles:function(c,u,f){var d=u.headerInfo,p=d.width,g=d.height,h=d.microBlockSize,A=d.imageType,x=r.getDataTypeSize(A),C=Math.ceil(p/h),T=Math.ceil(g/h);u.pixels.numBlocksY=T,u.pixels.numBlocksX=C,u.pixels.ptr=0;var E=0,S=0,v=0,D=0,O=0,M=0,L=0,N=0,_=0,b=0,w=0,I=0,R=0,F=0,k=0,V=0,G,U,q,Y,Q,W,K=new f(h*h),J=g%h||h,_e=p%h||h,xe,se,Ae=d.numDims,me,Se=u.pixels.resultMask,Ie=u.pixels.resultPixels;for(v=0;v<T;v++)for(O=v!==T-1?h:J,D=0;D<C;D++)for(M=D!==C-1?h:_e,w=v*p*h+D*h,I=p-M,me=0;me<Ae;me++){if(Ae>1&&(Ie=new f(u.pixels.resultPixels.buffer,p*g*me*x,p*g)),L=c.byteLength-u.ptr,G=new DataView(c,u.ptr,Math.min(10,L)),U={},V=0,N=G.getUint8(0),V++,_=N>>6&255,b=N>>2&15,b!==(D*h>>3&15))throw"integrity issue";if(W=N&3,W>3)throw u.ptr+=V,"Invalid block encoding ("+W+")";if(W===2){u.counter.constant++,u.ptr+=V;continue}else if(W===0){if(u.counter.uncompressed++,u.ptr+=V,R=O*M*x,F=c.byteLength-u.ptr,R=R<F?R:F,q=new ArrayBuffer(R%x===0?R:R+x-R%x),Y=new Uint8Array(q),Y.set(new Uint8Array(c,u.ptr,R)),Q=new f(q),k=0,Se)for(E=0;E<O;E++){for(S=0;S<M;S++)Se[w]&&(Ie[w]=Q[k++]),w++;w+=I}else for(E=0;E<O;E++){for(S=0;S<M;S++)Ie[w++]=Q[k++];w+=I}u.ptr+=k*x}else if(xe=r.getDataTypeUsed(A,_),se=r.getOnePixel(U,V,xe,G),V+=r.getDataTypeSize(xe),W===3)if(u.ptr+=V,u.counter.constantoffset++,Se)for(E=0;E<O;E++){for(S=0;S<M;S++)Se[w]&&(Ie[w]=se),w++;w+=I}else for(E=0;E<O;E++){for(S=0;S<M;S++)Ie[w++]=se;w+=I}else if(u.ptr+=V,r.decodeBits(c,u,K,se,me),V=0,Se)for(E=0;E<O;E++){for(S=0;S<M;S++)Se[w]&&(Ie[w]=K[V++]),w++;w+=I}else for(E=0;E<O;E++){for(S=0;S<M;S++)Ie[w++]=K[V++];w+=I}}},formatFileInfo:function(c){return{fileIdentifierString:c.headerInfo.fileIdentifierString,fileVersion:c.headerInfo.fileVersion,imageType:c.headerInfo.imageType,height:c.headerInfo.height,width:c.headerInfo.width,numValidPixel:c.headerInfo.numValidPixel,microBlockSize:c.headerInfo.microBlockSize,blobSize:c.headerInfo.blobSize,maxZError:c.headerInfo.maxZError,pixelType:r.getPixelType(c.headerInfo.imageType),eofOffset:c.eofOffset,mask:c.mask?{numBytes:c.mask.numBytes}:null,pixels:{numBlocksX:c.pixels.numBlocksX,numBlocksY:c.pixels.numBlocksY,maxValue:c.headerInfo.zMax,minValue:c.headerInfo.zMin,noDataValue:c.noDataValue}}},constructConstantSurface:function(c){var u=c.headerInfo.zMax,f=c.headerInfo.numDims,d=c.headerInfo.height*c.headerInfo.width,p=d*f,g=0,h=0,A=0,x=c.pixels.resultMask;if(x)if(f>1)for(g=0;g<f;g++)for(A=g*d,h=0;h<d;h++)x[h]&&(c.pixels.resultPixels[A+h]=u);else for(h=0;h<d;h++)x[h]&&(c.pixels.resultPixels[h]=u);else if(c.pixels.resultPixels.fill)c.pixels.resultPixels.fill(u);else for(h=0;h<p;h++)c.pixels.resultPixels[h]=u},getDataTypeArray:function(c){var u;switch(c){case 0:u=Int8Array;break;case 1:u=Uint8Array;break;case 2:u=Int16Array;break;case 3:u=Uint16Array;break;case 4:u=Int32Array;break;case 5:u=Uint32Array;break;case 6:u=Float32Array;break;case 7:u=Float64Array;break;default:u=Float32Array}return u},getPixelType:function(c){var u;switch(c){case 0:u="S8";break;case 1:u="U8";break;case 2:u="S16";break;case 3:u="U16";break;case 4:u="S32";break;case 5:u="U32";break;case 6:u="F32";break;case 7:u="F64";break;default:u="F32"}return u},isValidPixelValue:function(c,u){if(u==null)return!1;var f;switch(c){case 0:f=u>=-128&&u<=127;break;case 1:f=u>=0&&u<=255;break;case 2:f=u>=-32768&&u<=32767;break;case 3:f=u>=0&&u<=65536;break;case 4:f=u>=-2147483648&&u<=2147483647;break;case 5:f=u>=0&&u<=4294967296;break;case 6:f=u>=-34027999387901484e22&&u<=34027999387901484e22;break;case 7:f=u>=5e-324&&u<=17976931348623157e292;break;default:f=!1}return f},getDataTypeSize:function(c){var u=0;switch(c){case 0:case 1:u=1;break;case 2:case 3:u=2;break;case 4:case 5:case 6:u=4;break;case 7:u=8;break;default:u=c}return u},getDataTypeUsed:function(c,u){var f=c;switch(c){case 2:case 4:f=c-u;break;case 3:case 5:f=c-2*u;break;case 6:u===0?f=c:u===1?f=2:f=1;break;case 7:u===0?f=c:f=c-2*u+1;break;default:f=c;break}return f},getOnePixel:function(c,u,f,d){var p=0;switch(f){case 0:p=d.getInt8(u);break;case 1:p=d.getUint8(u);break;case 2:p=d.getInt16(u,!0);break;case 3:p=d.getUint16(u,!0);break;case 4:p=d.getInt32(u,!0);break;case 5:p=d.getUInt32(u,!0);break;case 6:p=d.getFloat32(u,!0);break;case 7:p=d.getFloat64(u,!0);break;default:throw"the decoder does not understand this pixel type"}return p}},s=function(c,u,f){this.val=c,this.left=u,this.right=f},a={decode:function(c,u){u=u||{};var f=u.noDataValue,d=0,p={};if(p.ptr=u.inputOffset||0,p.pixels={},!!r.readHeaderInfo(c,p)){var g=p.headerInfo,h=g.fileVersion,A=r.getDataTypeArray(g.imageType);r.readMask(c,p),g.numValidPixel!==g.width*g.height&&!p.pixels.resultMask&&(p.pixels.resultMask=u.maskData);var x=g.width*g.height;if(p.pixels.resultPixels=new A(x*g.numDims),p.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},g.numValidPixel!==0)if(g.zMax===g.zMin)r.constructConstantSurface(p);else if(h>=4&&r.checkMinMaxRanges(c,p))r.constructConstantSurface(p);else{var C=new DataView(c,p.ptr,2),T=C.getUint8(0);if(p.ptr++,T)r.readDataOneSweep(c,p,A);else if(h>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var E=C.getUint8(1);if(p.ptr++,p.encodeMode=E,E>2||h<4&&E>1)throw"Invalid Huffman flag "+E;E?r.readHuffman(c,p,A):r.readTiles(c,p,A)}else r.readTiles(c,p,A)}p.eofOffset=p.ptr;var S;u.inputOffset?(S=p.headerInfo.blobSize+u.inputOffset-p.ptr,Math.abs(S)>=1&&(p.eofOffset=u.inputOffset+p.headerInfo.blobSize)):(S=p.headerInfo.blobSize-p.ptr,Math.abs(S)>=1&&(p.eofOffset=p.headerInfo.blobSize));var v={width:g.width,height:g.height,pixelData:p.pixels.resultPixels,minValue:g.zMin,maxValue:g.zMax,validPixelCount:g.numValidPixel,dimCount:g.numDims,dimStats:{minValues:g.minValues,maxValues:g.maxValues},maskData:p.pixels.resultMask};if(p.pixels.resultMask&&r.isValidPixelValue(g.imageType,f)){var D=p.pixels.resultMask;for(d=0;d<x;d++)D[d]||(v.pixelData[d]=f);v.noDataValue=f}return p.noDataValue=f,u.returnFileInfo&&(v.fileInfo=r.formatFileInfo(p)),v}},getBandCount:function(c){var u=0,f=0,d={};for(d.ptr=0,d.pixels={};f<c.byteLength-58;)r.readHeaderInfo(c,d),f+=d.headerInfo.blobSize,u++,d.ptr=f;return u}};return a}(),n=function(){var o=new ArrayBuffer(4),r=new Uint8Array(o),s=new Uint32Array(o);return s[0]=1,r[0]===1}(),i={decode:function(o,r){if(!n)throw"Big endian system is not supported.";r=r||{};var s=r.inputOffset||0,a=new Uint8Array(o,s,10),c=String.fromCharCode.apply(null,a),u,f;if(c.trim()==="CntZImage")u=e,f=1;else if(c.substring(0,5)==="Lerc2")u=t,f=2;else throw"Unexpected file identifier string: "+c;for(var d=0,p=o.byteLength-10,g,h=[],A,x,C={width:0,height:0,pixels:[],pixelType:r.pixelType,mask:null,statistics:[]};s<p;){var T=u.decode(o,{inputOffset:s,encodedMaskData:g,maskData:x,returnMask:d===0,returnEncodedMask:d===0,returnFileInfo:!0,pixelType:r.pixelType||null,noDataValue:r.noDataValue||null});s=T.fileInfo.eofOffset,d===0&&(g=T.encodedMaskData,x=T.maskData,C.width=T.width,C.height=T.height,C.dimCount=T.dimCount||1,C.pixelType=T.pixelType||T.fileInfo.pixelType,C.mask=T.maskData),f>1&&T.fileInfo.mask&&T.fileInfo.mask.numBytes>0&&h.push(T.maskData),d++,C.pixels.push(T.pixelData),C.statistics.push({minValue:T.minValue,maxValue:T.maxValue,noDataValue:T.noDataValue,dimStats:T.dimStats})}var E,S,v;if(f>1&&h.length>1){for(v=C.width*C.height,C.bandMasks=h,x=new Uint8Array(v),x.set(h[0]),E=1;E<h.length;E++)for(A=h[E],S=0;S<v;S++)x[S]=x[S]&A[S];C.maskData=x}return C}};typeof define=="function"&&define.amd?define([],function(){return i}):typeof T4<"u"&&T4.exports?T4.exports=i:this.Lerc=i})()});var GAe=Nc((zYi,HAe)=>{HAe.exports={webm:"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK",mp4:"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"}});var jAe=Nc((HYi,WAe)=>{var{webm:Ayt,mp4:xyt}=GAe(),Zq=()=>typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,Qq=()=>"wakeLock"in navigator,$q=class{constructor(){if(this.enabled=!1,Qq()){this._wakeLock=null;let t=()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()};document.addEventListener("visibilitychange",t),document.addEventListener("fullscreenchange",t)}else Zq()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",Ayt),this._addSourceToVideo(this.noSleepVideo,"mp4",xyt),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())})}))}_addSourceToVideo(t,n,i){var o=document.createElement("source");o.src=i,o.type=`video/${n}`,t.appendChild(o)}get isEnabled(){return this.enabled}enable(){return Qq()?navigator.wakeLock.request("screen").then(t=>{this._wakeLock=t,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",()=>{console.log("Wake Lock released.")})}).catch(t=>{throw this.enabled=!1,console.error(`${t.name}, ${t.message}`),t}):Zq()?(this.disable(),console.warn(` + NoSleep enabled for older iOS devices. This can interrupt + active or long-running network requests from completing successfully. + See https://github.com/richtr/NoSleep.js/issues/15 for more details. + `),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(n=>(this.enabled=!0,n)).catch(n=>{throw this.enabled=!1,n})}disable(){Qq()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):Zq()?this.noSleepTimer&&(console.warn(` + NoSleep now disabled for older iOS devices. + `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}};WAe.exports=$q});function Txe(e){return e!=null}var l=Txe;function ky(e){this.name="DeveloperError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(ky.prototype=Object.create(Error.prototype),ky.prototype.constructor=ky);ky.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` +${this.stack.toString()}`),e};ky.throwInstantiationError=function(){throw new ky("This function defines an interface and should not be called directly.")};var fe=ky;var Qr={};Qr.typeOf={};function Exe(e){return`${e} is required, actual value was undefined`}function gx(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}Qr.defined=function(e,t){if(!l(t))throw new fe(Exe(e))};Qr.typeOf.func=function(e,t){if(typeof t!="function")throw new fe(gx(typeof t,"function",e))};Qr.typeOf.string=function(e,t){if(typeof t!="string")throw new fe(gx(typeof t,"string",e))};Qr.typeOf.number=function(e,t){if(typeof t!="number")throw new fe(gx(typeof t,"number",e))};Qr.typeOf.number.lessThan=function(e,t,n){if(Qr.typeOf.number(e,t),t>=n)throw new fe(`Expected ${e} to be less than ${n}, actual value was ${t}`)};Qr.typeOf.number.lessThanOrEquals=function(e,t,n){if(Qr.typeOf.number(e,t),t>n)throw new fe(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)};Qr.typeOf.number.greaterThan=function(e,t,n){if(Qr.typeOf.number(e,t),t<=n)throw new fe(`Expected ${e} to be greater than ${n}, actual value was ${t}`)};Qr.typeOf.number.greaterThanOrEquals=function(e,t,n){if(Qr.typeOf.number(e,t),t<n)throw new fe(`Expected ${e} to be greater than or equal to ${n}, actual value was ${t}`)};Qr.typeOf.object=function(e,t){if(typeof t!="object")throw new fe(gx(typeof t,"object",e))};Qr.typeOf.bool=function(e,t){if(typeof t!="boolean")throw new fe(gx(typeof t,"boolean",e))};Qr.typeOf.bigint=function(e,t){if(typeof t!="bigint")throw new fe(gx(typeof t,"bigint",e))};Qr.typeOf.number.equals=function(e,t,n,i){if(Qr.typeOf.number(e,n),Qr.typeOf.number(t,i),n!==i)throw new fe(`${e} must be equal to ${t}, the actual values are ${n} and ${i}`)};var El=Qr;function gX(e,t){return e??t}gX.EMPTY_OBJECT=Object.freeze({});var y=gX;var FH=ar(YI(),1);var ct={};ct.EPSILON1=.1;ct.EPSILON2=.01;ct.EPSILON3=.001;ct.EPSILON4=1e-4;ct.EPSILON5=1e-5;ct.EPSILON6=1e-6;ct.EPSILON7=1e-7;ct.EPSILON8=1e-8;ct.EPSILON9=1e-9;ct.EPSILON10=1e-10;ct.EPSILON11=1e-11;ct.EPSILON12=1e-12;ct.EPSILON13=1e-13;ct.EPSILON14=1e-14;ct.EPSILON15=1e-15;ct.EPSILON16=1e-16;ct.EPSILON17=1e-17;ct.EPSILON18=1e-18;ct.EPSILON19=1e-19;ct.EPSILON20=1e-20;ct.EPSILON21=1e-21;ct.GRAVITATIONALPARAMETER=3986004418e5;ct.SOLAR_RADIUS=6955e5;ct.LUNAR_RADIUS=1737400;ct.SIXTY_FOUR_KILOBYTES=64*1024;ct.FOUR_GIGABYTES=4*1024*1024*1024;ct.sign=y(Math.sign,function(t){return t=+t,t===0||t!==t?t:t>0?1:-1});ct.signNotZero=function(e){return e<0?-1:1};ct.toSNorm=function(e,t){return t=y(t,255),Math.round((ct.clamp(e,-1,1)*.5+.5)*t)};ct.fromSNorm=function(e,t){return t=y(t,255),ct.clamp(e,0,t)/t*2-1};ct.normalize=function(e,t,n){return n=Math.max(n-t,0),n===0?0:ct.clamp((e-t)/n,0,1)};ct.sinh=y(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2});ct.cosh=y(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2});ct.lerp=function(e,t,n){return(1-n)*e+n*t};ct.PI=Math.PI;ct.ONE_OVER_PI=1/Math.PI;ct.PI_OVER_TWO=Math.PI/2;ct.PI_OVER_THREE=Math.PI/3;ct.PI_OVER_FOUR=Math.PI/4;ct.PI_OVER_SIX=Math.PI/6;ct.THREE_PI_OVER_TWO=3*Math.PI/2;ct.TWO_PI=2*Math.PI;ct.ONE_OVER_TWO_PI=1/(2*Math.PI);ct.RADIANS_PER_DEGREE=Math.PI/180;ct.DEGREES_PER_RADIAN=180/Math.PI;ct.RADIANS_PER_ARCSECOND=ct.RADIANS_PER_DEGREE/3600;ct.toRadians=function(e){return e*ct.RADIANS_PER_DEGREE};ct.toDegrees=function(e){return e*ct.DEGREES_PER_RADIAN};ct.convertLongitudeRange=function(e){let t=ct.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n};ct.clampToLatitudeRange=function(e){return ct.clamp(e,-1*ct.PI_OVER_TWO,ct.PI_OVER_TWO)};ct.negativePiToPi=function(e){return e>=-ct.PI&&e<=ct.PI?e:ct.zeroToTwoPi(e+ct.PI)-ct.PI};ct.zeroToTwoPi=function(e){if(e>=0&&e<=ct.TWO_PI)return e;let t=ct.mod(e,ct.TWO_PI);return Math.abs(t)<ct.EPSILON14&&Math.abs(e)>ct.EPSILON14?ct.TWO_PI:t};ct.mod=function(e,t){return ct.sign(e)===ct.sign(t)&&Math.abs(e)<Math.abs(t)?e:(e%t+t)%t};ct.equalsEpsilon=function(e,t,n,i){n=y(n,0),i=y(i,n);let o=Math.abs(e-t);return o<=i||o<=n*Math.max(Math.abs(e),Math.abs(t))};ct.lessThan=function(e,t,n){return e-t<-n};ct.lessThanOrEquals=function(e,t,n){return e-t<n};ct.greaterThan=function(e,t,n){return e-t>n};ct.greaterThanOrEquals=function(e,t,n){return e-t>-n};var qI=[1];ct.factorial=function(e){let t=qI.length;if(e>=t){let n=qI[t-1];for(let i=t;i<=e;i++){let o=n*i;qI.push(o),n=o}}return qI[e]};ct.incrementWrap=function(e,t,n){return n=y(n,0),++e,e>t&&(e=n),e};ct.isPowerOfTwo=function(e){return e!==0&&(e&e-1)===0};ct.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e,e};ct.previousPowerOfTwo=function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e|=e>>32,e=(e>>>0)-(e>>>1),e};ct.clamp=function(e,t,n){return e<t?t:e>n?n:e};var AX=new FH.default;ct.setRandomNumberSeed=function(e){AX=new FH.default(e)};ct.nextRandomNumber=function(){return AX.random()};ct.randomBetween=function(e,t){return ct.nextRandomNumber()*(t-e)+e};ct.acosClamped=function(e){return Math.acos(ct.clamp(e,-1,1))};ct.asinClamped=function(e){return Math.asin(ct.clamp(e,-1,1))};ct.chordLength=function(e,t){return 2*t*Math.sin(e*.5)};ct.logBase=function(e,t){return Math.log(e)/Math.log(t)};ct.cbrt=y(Math.cbrt,function(t){let n=Math.pow(Math.abs(t),.3333333333333333);return t<0?-n:n});ct.log2=y(Math.log2,function(t){return Math.log(t)*Math.LOG2E});ct.fog=function(e,t){let n=e*t;return 1-Math.exp(-(n*n))};ct.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)};ct.fastApproximateAtan2=function(e,t){let n,i=Math.abs(e);n=Math.abs(t);let o=Math.max(i,n);n=Math.min(i,n);let r=n/o;return i=ct.fastApproximateAtan(r),i=Math.abs(t)>Math.abs(e)?ct.PI_OVER_TWO-i:i,i=e<0?ct.PI-i:i,i=t<0?-i:i,i};var P=ct;function tt(e,t,n){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0)}tt.fromSpherical=function(e,t){l(t)||(t=new tt);let n=e.clock,i=e.cone,o=y(e.magnitude,1),r=o*Math.sin(i);return t.x=r*Math.cos(n),t.y=r*Math.sin(n),t.z=o*Math.cos(i),t};tt.fromElements=function(e,t,n,i){return l(i)?(i.x=e,i.y=t,i.z=n,i):new tt(e,t,n)};tt.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new tt(e.x,e.y,e.z)};tt.fromCartesian4=tt.clone;tt.packedLength=3;tt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t};tt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new tt),n.x=e[t++],n.y=e[t++],n.z=e[t],n};tt.packArray=function(e,t){let n=e.length,i=n*3;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)tt.pack(e[o],t,o*3);return t};tt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/3:t=new Array(n/3);for(let i=0;i<n;i+=3){let o=i/3;t[o]=tt.unpack(e,i,t[o])}return t};tt.fromArray=tt.unpack;tt.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)};tt.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)};tt.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n};tt.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n};tt.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y),s=P.clamp(e.z,t.z,n.z);return i.x=o,i.y=r,i.z=s,i};tt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z};tt.magnitude=function(e){return Math.sqrt(tt.magnitudeSquared(e))};var KI=new tt;tt.distance=function(e,t){return tt.subtract(e,t,KI),tt.magnitude(KI)};tt.distanceSquared=function(e,t){return tt.subtract(e,t,KI),tt.magnitudeSquared(KI)};tt.normalize=function(e,t){let n=tt.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t};tt.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z};tt.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n};tt.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n};tt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n};tt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n};tt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n};tt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n};tt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t};tt.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var xX=new tt;tt.lerp=function(e,t,n,i){return tt.multiplyByScalar(t,n,xX),i=tt.multiplyByScalar(e,1-n,i),tt.add(xX,i,i)};var XI=new tt,UH=new tt;tt.angleBetween=function(e,t){tt.normalize(e,XI),tt.normalize(t,UH);let n=tt.dot(XI,UH),i=tt.magnitude(tt.cross(XI,UH,XI));return Math.atan2(i,n)};var bxe=new tt;tt.mostOrthogonalAxis=function(e,t){let n=tt.normalize(e,bxe);return tt.abs(n,n),n.x<=n.y?n.x<=n.z?t=tt.clone(tt.UNIT_X,t):t=tt.clone(tt.UNIT_Z,t):n.y<=n.z?t=tt.clone(tt.UNIT_Y,t):t=tt.clone(tt.UNIT_Z,t),t};tt.projectVector=function(e,t,n){let i=tt.dot(e,t)/tt.dot(t,t);return tt.multiplyByScalar(t,i,n)};tt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z};tt.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]};tt.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)&&P.equalsEpsilon(e.z,t.z,n,i)};tt.cross=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=t.x,a=t.y,c=t.z,u=o*c-r*a,f=r*s-i*c,d=i*a-o*s;return n.x=u,n.y=f,n.z=d,n};tt.midpoint=function(e,t,n){return n.x=(e.x+t.x)*.5,n.y=(e.y+t.y)*.5,n.z=(e.z+t.z)*.5,n};tt.fromDegrees=function(e,t,n,i,o){return e=P.toRadians(e),t=P.toRadians(t),tt.fromRadians(e,t,n,i,o)};var Tu=new tt,yx=new tt,Sxe=new tt(6378137*6378137,6378137*6378137,6356752314245179e-9*6356752314245179e-9);tt.fromRadians=function(e,t,n,i,o){n=y(n,0);let r=l(i)?i.radiiSquared:Sxe,s=Math.cos(t);Tu.x=s*Math.cos(e),Tu.y=s*Math.sin(e),Tu.z=Math.sin(t),Tu=tt.normalize(Tu,Tu),tt.multiplyComponents(r,Tu,yx);let a=Math.sqrt(tt.dot(Tu,yx));return yx=tt.divideByScalar(yx,a,yx),Tu=tt.multiplyByScalar(Tu,n,Tu),l(o)||(o=new tt),tt.add(yx,Tu,o)};tt.fromDegreesArray=function(e,t,n){let i=e.length;l(n)?n.length=i/2:n=new Array(i/2);for(let o=0;o<i;o+=2){let r=e[o],s=e[o+1],a=o/2;n[a]=tt.fromDegrees(r,s,0,t,n[a])}return n};tt.fromRadiansArray=function(e,t,n){let i=e.length;l(n)?n.length=i/2:n=new Array(i/2);for(let o=0;o<i;o+=2){let r=e[o],s=e[o+1],a=o/2;n[a]=tt.fromRadians(r,s,0,t,n[a])}return n};tt.fromDegreesArrayHeights=function(e,t,n){let i=e.length;l(n)?n.length=i/3:n=new Array(i/3);for(let o=0;o<i;o+=3){let r=e[o],s=e[o+1],a=e[o+2],c=o/3;n[c]=tt.fromDegrees(r,s,a,t,n[c])}return n};tt.fromRadiansArrayHeights=function(e,t,n){let i=e.length;l(n)?n.length=i/3:n=new Array(i/3);for(let o=0;o<i;o+=3){let r=e[o],s=e[o+1],a=e[o+2],c=o/3;n[c]=tt.fromRadians(r,s,a,t,n[c])}return n};tt.ZERO=Object.freeze(new tt(0,0,0));tt.ONE=Object.freeze(new tt(1,1,1));tt.UNIT_X=Object.freeze(new tt(1,0,0));tt.UNIT_Y=Object.freeze(new tt(0,1,0));tt.UNIT_Z=Object.freeze(new tt(0,0,1));tt.prototype.clone=function(e){return tt.clone(this,e)};tt.prototype.equals=function(e){return tt.equals(this,e)};tt.prototype.equalsEpsilon=function(e,t,n){return tt.equalsEpsilon(this,e,t,n)};tt.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z})`};var m=tt;function At(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}At.fromElements=function(e,t,n,i,o){return l(o)?(o.x=e,o.y=t,o.z=n,o.w=i,o):new At(e,t,n,i)};At.fromColor=function(e,t){return l(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new At(e.red,e.green,e.blue,e.alpha)};At.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new At(e.x,e.y,e.z,e.w)};At.packedLength=4;At.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};At.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new At),n.x=e[t++],n.y=e[t++],n.z=e[t++],n.w=e[t],n};At.packArray=function(e,t){let n=e.length,i=n*4;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)At.pack(e[o],t,o*4);return t};At.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=At.unpack(e,i,t[o])}return t};At.fromArray=At.unpack;At.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)};At.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)};At.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n};At.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n};At.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y),s=P.clamp(e.z,t.z,n.z),a=P.clamp(e.w,t.w,n.w);return i.x=o,i.y=r,i.z=s,i.w=a,i};At.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};At.magnitude=function(e){return Math.sqrt(At.magnitudeSquared(e))};var JI=new At;At.distance=function(e,t){return At.subtract(e,t,JI),At.magnitude(JI)};At.distanceSquared=function(e,t){return At.subtract(e,t,JI),At.magnitudeSquared(JI)};At.normalize=function(e,t){let n=At.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t};At.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};At.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n};At.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n};At.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};At.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};At.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};At.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};At.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};At.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var CX=new At;At.lerp=function(e,t,n,i){return At.multiplyByScalar(t,n,CX),i=At.multiplyByScalar(e,1-n,i),At.add(CX,i,i)};var wxe=new At;At.mostOrthogonalAxis=function(e,t){let n=At.normalize(e,wxe);return At.abs(n,n),n.x<=n.y?n.x<=n.z?n.x<=n.w?t=At.clone(At.UNIT_X,t):t=At.clone(At.UNIT_W,t):n.z<=n.w?t=At.clone(At.UNIT_Z,t):t=At.clone(At.UNIT_W,t):n.y<=n.z?n.y<=n.w?t=At.clone(At.UNIT_Y,t):t=At.clone(At.UNIT_W,t):n.z<=n.w?t=At.clone(At.UNIT_Z,t):t=At.clone(At.UNIT_W,t),t};At.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};At.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]};At.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)&&P.equalsEpsilon(e.z,t.z,n,i)&&P.equalsEpsilon(e.w,t.w,n,i)};At.ZERO=Object.freeze(new At(0,0,0,0));At.ONE=Object.freeze(new At(1,1,1,1));At.UNIT_X=Object.freeze(new At(1,0,0,0));At.UNIT_Y=Object.freeze(new At(0,1,0,0));At.UNIT_Z=Object.freeze(new At(0,0,1,0));At.UNIT_W=Object.freeze(new At(0,0,0,1));At.prototype.clone=function(e){return At.clone(this,e)};At.prototype.equals=function(e){return At.equals(this,e)};At.prototype.equalsEpsilon=function(e,t,n){return At.equalsEpsilon(this,e,t,n)};At.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var VH=new Float32Array(1),Ea=new Uint8Array(VH.buffer),vxe=new Uint32Array([287454020]),Dxe=new Uint8Array(vxe.buffer),TX=Dxe[0]===68;At.packFloat=function(e,t){return l(t)||(t=new At),VH[0]=e,TX?(t.x=Ea[0],t.y=Ea[1],t.z=Ea[2],t.w=Ea[3]):(t.x=Ea[3],t.y=Ea[2],t.z=Ea[1],t.w=Ea[0]),t};At.unpackFloat=function(e){return TX?(Ea[0]=e.x,Ea[1]=e.y,Ea[2]=e.z,Ea[3]=e.w):(Ea[0]=e.w,Ea[1]=e.z,Ea[2]=e.y,Ea[3]=e.x),VH[0]};var re=At;function nt(e,t,n,i,o,r,s,a,c){this[0]=y(e,0),this[1]=y(i,0),this[2]=y(s,0),this[3]=y(t,0),this[4]=y(o,0),this[5]=y(a,0),this[6]=y(n,0),this[7]=y(r,0),this[8]=y(c,0)}nt.packedLength=9;nt.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t};nt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new nt),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n};nt.packArray=function(e,t){let n=e.length,i=n*9;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)nt.pack(e[o],t,o*9);return t};nt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/9:t=new Array(n/9);for(let i=0;i<n;i+=9){let o=i/9;t[o]=nt.unpack(e,i,t[o])}return t};nt.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new nt(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])};nt.fromArray=nt.unpack;nt.fromColumnMajorArray=function(e,t){return nt.clone(e,t)};nt.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new nt(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])};nt.fromQuaternion=function(e,t){let n=e.x*e.x,i=e.x*e.y,o=e.x*e.z,r=e.x*e.w,s=e.y*e.y,a=e.y*e.z,c=e.y*e.w,u=e.z*e.z,f=e.z*e.w,d=e.w*e.w,p=n-s-u+d,g=2*(i-f),h=2*(o+c),A=2*(i+f),x=-n+s-u+d,C=2*(a-r),T=2*(o-c),E=2*(a+r),S=-n-s+u+d;return l(t)?(t[0]=p,t[1]=A,t[2]=T,t[3]=g,t[4]=x,t[5]=E,t[6]=h,t[7]=C,t[8]=S,t):new nt(p,g,h,A,x,C,T,E,S)};nt.fromHeadingPitchRoll=function(e,t){let n=Math.cos(-e.pitch),i=Math.cos(-e.heading),o=Math.cos(e.roll),r=Math.sin(-e.pitch),s=Math.sin(-e.heading),a=Math.sin(e.roll),c=n*i,u=-o*s+a*r*i,f=a*s+o*r*i,d=n*s,p=o*i+a*r*s,g=-a*i+o*r*s,h=-r,A=a*n,x=o*n;return l(t)?(t[0]=c,t[1]=d,t[2]=h,t[3]=u,t[4]=p,t[5]=A,t[6]=f,t[7]=g,t[8]=x,t):new nt(c,u,f,d,p,g,h,A,x)};nt.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new nt(e.x,0,0,0,e.y,0,0,0,e.z)};nt.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new nt(e,0,0,0,e,0,0,0,e)};nt.fromCrossProduct=function(e,t){return l(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new nt(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)};nt.fromRotationX=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new nt(1,0,0,0,n,-i,0,i,n)};nt.fromRotationY=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new nt(n,0,i,0,1,0,-i,0,n)};nt.fromRotationZ=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new nt(n,-i,0,i,n,0,0,0,1)};nt.toArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]};nt.getElementIndex=function(e,t){return e*3+t};nt.getColumn=function(e,t,n){let i=t*3,o=e[i],r=e[i+1],s=e[i+2];return n.x=o,n.y=r,n.z=s,n};nt.setColumn=function(e,t,n,i){i=nt.clone(e,i);let o=t*3;return i[o]=n.x,i[o+1]=n.y,i[o+2]=n.z,i};nt.getRow=function(e,t,n){let i=e[t],o=e[t+3],r=e[t+6];return n.x=i,n.y=o,n.z=r,n};nt.setRow=function(e,t,n,i){return i=nt.clone(e,i),i[t]=n.x,i[t+3]=n.y,i[t+6]=n.z,i};var Ixe=new m;nt.setScale=function(e,t,n){let i=nt.getScale(e,Ixe),o=t.x/i.x,r=t.y/i.y,s=t.z/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3]*r,n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*s,n[7]=e[7]*s,n[8]=e[8]*s,n};var Pxe=new m;nt.setUniformScale=function(e,t,n){let i=nt.getScale(e,Pxe),o=t/i.x,r=t/i.y,s=t/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3]*r,n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*s,n[7]=e[7]*s,n[8]=e[8]*s,n};var kH=new m;nt.getScale=function(e,t){return t.x=m.magnitude(m.fromElements(e[0],e[1],e[2],kH)),t.y=m.magnitude(m.fromElements(e[3],e[4],e[5],kH)),t.z=m.magnitude(m.fromElements(e[6],e[7],e[8],kH)),t};var EX=new m;nt.getMaximumScale=function(e){return nt.getScale(e,EX),m.maximumComponent(EX)};var Oxe=new m;nt.setRotation=function(e,t,n){let i=nt.getScale(e,Oxe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=t[3]*i.y,n[4]=t[4]*i.y,n[5]=t[5]*i.y,n[6]=t[6]*i.z,n[7]=t[7]*i.z,n[8]=t[8]*i.z,n};var Mxe=new m;nt.getRotation=function(e,t){let n=nt.getScale(e,Mxe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[3]/n.y,t[4]=e[4]/n.y,t[5]=e[5]/n.y,t[6]=e[6]/n.z,t[7]=e[7]/n.z,t[8]=e[8]/n.z,t};nt.multiply=function(e,t,n){let i=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],o=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],r=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],s=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],a=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],c=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],u=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],f=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],d=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=i,n[1]=o,n[2]=r,n[3]=s,n[4]=a,n[5]=c,n[6]=u,n[7]=f,n[8]=d,n};nt.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n};nt.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n};nt.multiplyByVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[3]*o+e[6]*r,a=e[1]*i+e[4]*o+e[7]*r,c=e[2]*i+e[5]*o+e[8]*r;return n.x=s,n.y=a,n.z=c,n};nt.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n};nt.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n};nt.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n};nt.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t};nt.transpose=function(e,t){let n=e[0],i=e[3],o=e[6],r=e[1],s=e[4],a=e[7],c=e[2],u=e[5],f=e[8];return t[0]=n,t[1]=i,t[2]=o,t[3]=r,t[4]=s,t[5]=a,t[6]=c,t[7]=u,t[8]=f,t};function Rxe(e){let t=0;for(let n=0;n<9;++n){let i=e[n];t+=i*i}return Math.sqrt(t)}var zH=[1,0,0],HH=[2,2,1];function Bxe(e){let t=0;for(let n=0;n<3;++n){let i=e[nt.getElementIndex(HH[n],zH[n])];t+=2*i*i}return Math.sqrt(t)}function Lxe(e,t){let n=P.EPSILON15,i=0,o=1;for(let u=0;u<3;++u){let f=Math.abs(e[nt.getElementIndex(HH[u],zH[u])]);f>i&&(o=u,i=f)}let r=1,s=0,a=zH[o],c=HH[o];if(Math.abs(e[nt.getElementIndex(c,a)])>n){let u=e[nt.getElementIndex(c,c)],f=e[nt.getElementIndex(a,a)],d=e[nt.getElementIndex(c,a)],p=(u-f)/2/d,g;p<0?g=-1/(-p+Math.sqrt(1+p*p)):g=1/(p+Math.sqrt(1+p*p)),r=1/Math.sqrt(1+g*g),s=g*r}return t=nt.clone(nt.IDENTITY,t),t[nt.getElementIndex(a,a)]=t[nt.getElementIndex(c,c)]=r,t[nt.getElementIndex(c,a)]=s,t[nt.getElementIndex(a,c)]=-s,t}var ZI=new nt,bX=new nt;nt.computeEigenDecomposition=function(e,t){let n=P.EPSILON20,i=10,o=0,r=0;l(t)||(t={});let s=t.unitary=nt.clone(nt.IDENTITY,t.unitary),a=t.diagonal=nt.clone(e,t.diagonal),c=n*Rxe(a);for(;r<i&&Bxe(a)>c;)Lxe(a,ZI),nt.transpose(ZI,bX),nt.multiply(a,ZI,a),nt.multiply(bX,a,a),nt.multiply(s,ZI,s),++o>2&&(++r,o=0);return t};nt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t};nt.determinant=function(e){let t=e[0],n=e[3],i=e[6],o=e[1],r=e[4],s=e[7],a=e[2],c=e[5],u=e[8];return t*(r*u-c*s)+o*(c*i-n*u)+a*(n*s-r*i)};nt.inverse=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[3],s=e[4],a=e[5],c=e[6],u=e[7],f=e[8],d=nt.determinant(e);t[0]=s*f-u*a,t[1]=u*o-i*f,t[2]=i*a-s*o,t[3]=c*a-r*f,t[4]=n*f-c*o,t[5]=r*o-n*a,t[6]=r*u-c*s,t[7]=c*i-n*u,t[8]=n*s-r*i;let p=1/d;return nt.multiplyByScalar(t,p,t)};var Nxe=new nt;nt.inverseTranspose=function(e,t){return nt.inverse(nt.transpose(e,Nxe),t)};nt.equals=function(e,t){return e===t||l(e)&&l(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]};nt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n};nt.IDENTITY=Object.freeze(new nt(1,0,0,0,1,0,0,0,1));nt.ZERO=Object.freeze(new nt(0,0,0,0,0,0,0,0,0));nt.COLUMN0ROW0=0;nt.COLUMN0ROW1=1;nt.COLUMN0ROW2=2;nt.COLUMN1ROW0=3;nt.COLUMN1ROW1=4;nt.COLUMN1ROW2=5;nt.COLUMN2ROW0=6;nt.COLUMN2ROW1=7;nt.COLUMN2ROW2=8;Object.defineProperties(nt.prototype,{length:{get:function(){return nt.packedLength}}});nt.prototype.clone=function(e){return nt.clone(this,e)};nt.prototype.equals=function(e){return nt.equals(this,e)};nt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]};nt.prototype.equalsEpsilon=function(e,t){return nt.equalsEpsilon(this,e,t)};nt.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]}) +(${this[1]}, ${this[4]}, ${this[7]}) +(${this[2]}, ${this[5]}, ${this[8]})`};var Z=nt;function Vb(e){this.name="RuntimeError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(Vb.prototype=Object.create(Error.prototype),Vb.prototype.constructor=Vb);Vb.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` +${this.stack.toString()}`),e};var de=Vb;function et(e,t,n,i,o,r,s,a,c,u,f,d,p,g,h,A){this[0]=y(e,0),this[1]=y(o,0),this[2]=y(c,0),this[3]=y(p,0),this[4]=y(t,0),this[5]=y(r,0),this[6]=y(u,0),this[7]=y(g,0),this[8]=y(n,0),this[9]=y(s,0),this[10]=y(f,0),this[11]=y(h,0),this[12]=y(i,0),this[13]=y(a,0),this[14]=y(d,0),this[15]=y(A,0)}et.packedLength=16;et.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t};et.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new et),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n};et.packArray=function(e,t){let n=e.length,i=n*16;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)et.pack(e[o],t,o*16);return t};et.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/16:t=new Array(n/16);for(let i=0;i<n;i+=16){let o=i/16;t[o]=et.unpack(e,i,t[o])}return t};et.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new et(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])};et.fromArray=et.unpack;et.fromColumnMajorArray=function(e,t){return et.clone(e,t)};et.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new et(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])};et.fromRotationTranslation=function(e,t,n){return t=y(t,m.ZERO),l(n)?(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=0,n[4]=e[3],n[5]=e[4],n[6]=e[5],n[7]=0,n[8]=e[6],n[9]=e[7],n[10]=e[8],n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,n):new et(e[0],e[3],e[6],t.x,e[1],e[4],e[7],t.y,e[2],e[5],e[8],t.z,0,0,0,1)};et.fromTranslationQuaternionRotationScale=function(e,t,n,i){l(i)||(i=new et);let o=n.x,r=n.y,s=n.z,a=t.x*t.x,c=t.x*t.y,u=t.x*t.z,f=t.x*t.w,d=t.y*t.y,p=t.y*t.z,g=t.y*t.w,h=t.z*t.z,A=t.z*t.w,x=t.w*t.w,C=a-d-h+x,T=2*(c-A),E=2*(u+g),S=2*(c+A),v=-a+d-h+x,D=2*(p-f),O=2*(u-g),M=2*(p+f),L=-a-d+h+x;return i[0]=C*o,i[1]=S*o,i[2]=O*o,i[3]=0,i[4]=T*r,i[5]=v*r,i[6]=M*r,i[7]=0,i[8]=E*s,i[9]=D*s,i[10]=L*s,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,i};et.fromTranslationRotationScale=function(e,t){return et.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)};et.fromTranslation=function(e,t){return et.fromRotationTranslation(Z.IDENTITY,e,t)};et.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new et(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)};et.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new et(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};et.fromRotation=function(e,t){return l(t)||(t=new et),t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t};var Ax=new m,xx=new m,kb=new m;et.fromCamera=function(e,t){let n=e.position,i=e.direction,o=e.up;m.normalize(i,Ax),m.normalize(m.cross(Ax,o,xx),xx),m.normalize(m.cross(xx,Ax,kb),kb);let r=xx.x,s=xx.y,a=xx.z,c=Ax.x,u=Ax.y,f=Ax.z,d=kb.x,p=kb.y,g=kb.z,h=n.x,A=n.y,x=n.z,C=r*-h+s*-A+a*-x,T=d*-h+p*-A+g*-x,E=c*h+u*A+f*x;return l(t)?(t[0]=r,t[1]=d,t[2]=-c,t[3]=0,t[4]=s,t[5]=p,t[6]=-u,t[7]=0,t[8]=a,t[9]=g,t[10]=-f,t[11]=0,t[12]=C,t[13]=T,t[14]=E,t[15]=1,t):new et(r,s,a,C,d,p,g,T,-c,-u,-f,E,0,0,0,1)};et.computePerspectiveFieldOfView=function(e,t,n,i,o){let s=1/Math.tan(e*.5),a=s/t,c=(i+n)/(n-i),u=2*i*n/(n-i);return o[0]=a,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=-1,o[12]=0,o[13]=0,o[14]=u,o[15]=0,o};et.computeOrthographicOffCenter=function(e,t,n,i,o,r,s){let a=1/(t-e),c=1/(i-n),u=1/(r-o),f=-(t+e)*a,d=-(i+n)*c,p=-(r+o)*u;return a*=2,c*=2,u*=-2,s[0]=a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=c,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=u,s[11]=0,s[12]=f,s[13]=d,s[14]=p,s[15]=1,s};et.computePerspectiveOffCenter=function(e,t,n,i,o,r,s){let a=2*o/(t-e),c=2*o/(i-n),u=(t+e)/(t-e),f=(i+n)/(i-n),d=-(r+o)/(r-o),p=-1,g=-2*r*o/(r-o);return s[0]=a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=c,s[6]=0,s[7]=0,s[8]=u,s[9]=f,s[10]=d,s[11]=p,s[12]=0,s[13]=0,s[14]=g,s[15]=0,s};et.computeInfinitePerspectiveOffCenter=function(e,t,n,i,o,r){let s=2*o/(t-e),a=2*o/(i-n),c=(t+e)/(t-e),u=(i+n)/(i-n),f=-1,d=-1,p=-2*o;return r[0]=s,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=a,r[6]=0,r[7]=0,r[8]=c,r[9]=u,r[10]=f,r[11]=d,r[12]=0,r[13]=0,r[14]=p,r[15]=0,r};et.computeViewportTransformation=function(e,t,n,i){l(i)||(i=new et),e=y(e,y.EMPTY_OBJECT);let o=y(e.x,0),r=y(e.y,0),s=y(e.width,0),a=y(e.height,0);t=y(t,0),n=y(n,1);let c=s*.5,u=a*.5,f=(n-t)*.5,d=c,p=u,g=f,h=o+c,A=r+u,x=t+f,C=1;return i[0]=d,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=p,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=g,i[11]=0,i[12]=h,i[13]=A,i[14]=x,i[15]=C,i};et.computeView=function(e,t,n,i,o){return o[0]=i.x,o[1]=n.x,o[2]=-t.x,o[3]=0,o[4]=i.y,o[5]=n.y,o[6]=-t.y,o[7]=0,o[8]=i.z,o[9]=n.z,o[10]=-t.z,o[11]=0,o[12]=-m.dot(i,e),o[13]=-m.dot(n,e),o[14]=m.dot(t,e),o[15]=1,o};et.toArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]};et.getElementIndex=function(e,t){return e*4+t};et.getColumn=function(e,t,n){let i=t*4,o=e[i],r=e[i+1],s=e[i+2],a=e[i+3];return n.x=o,n.y=r,n.z=s,n.w=a,n};et.setColumn=function(e,t,n,i){i=et.clone(e,i);let o=t*4;return i[o]=n.x,i[o+1]=n.y,i[o+2]=n.z,i[o+3]=n.w,i};et.getRow=function(e,t,n){let i=e[t],o=e[t+4],r=e[t+8],s=e[t+12];return n.x=i,n.y=o,n.z=r,n.w=s,n};et.setRow=function(e,t,n,i){return i=et.clone(e,i),i[t]=n.x,i[t+4]=n.y,i[t+8]=n.z,i[t+12]=n.w,i};et.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var Fxe=new m;et.setScale=function(e,t,n){let i=et.getScale(e,Fxe),o=t.x/i.x,r=t.y/i.y,s=t.z/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3],n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*r,n[7]=e[7],n[8]=e[8]*s,n[9]=e[9]*s,n[10]=e[10]*s,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var Uxe=new m;et.setUniformScale=function(e,t,n){let i=et.getScale(e,Uxe),o=t/i.x,r=t/i.y,s=t/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3],n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*r,n[7]=e[7],n[8]=e[8]*s,n[9]=e[9]*s,n[10]=e[10]*s,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var GH=new m;et.getScale=function(e,t){return t.x=m.magnitude(m.fromElements(e[0],e[1],e[2],GH)),t.y=m.magnitude(m.fromElements(e[4],e[5],e[6],GH)),t.z=m.magnitude(m.fromElements(e[8],e[9],e[10],GH)),t};var SX=new m;et.getMaximumScale=function(e){return et.getScale(e,SX),m.maximumComponent(SX)};var Vxe=new m;et.setRotation=function(e,t,n){let i=et.getScale(e,Vxe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=e[3],n[4]=t[3]*i.y,n[5]=t[4]*i.y,n[6]=t[5]*i.y,n[7]=e[7],n[8]=t[6]*i.z,n[9]=t[7]*i.z,n[10]=t[8]*i.z,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var kxe=new m;et.getRotation=function(e,t){let n=et.getScale(e,kxe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[4]/n.y,t[4]=e[5]/n.y,t[5]=e[6]/n.y,t[6]=e[8]/n.z,t[7]=e[9]/n.z,t[8]=e[10]/n.z,t};et.multiply=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[3],a=e[4],c=e[5],u=e[6],f=e[7],d=e[8],p=e[9],g=e[10],h=e[11],A=e[12],x=e[13],C=e[14],T=e[15],E=t[0],S=t[1],v=t[2],D=t[3],O=t[4],M=t[5],L=t[6],N=t[7],_=t[8],b=t[9],w=t[10],I=t[11],R=t[12],F=t[13],k=t[14],V=t[15],G=i*E+a*S+d*v+A*D,U=o*E+c*S+p*v+x*D,q=r*E+u*S+g*v+C*D,Y=s*E+f*S+h*v+T*D,Q=i*O+a*M+d*L+A*N,W=o*O+c*M+p*L+x*N,K=r*O+u*M+g*L+C*N,J=s*O+f*M+h*L+T*N,_e=i*_+a*b+d*w+A*I,xe=o*_+c*b+p*w+x*I,se=r*_+u*b+g*w+C*I,Ae=s*_+f*b+h*w+T*I,me=i*R+a*F+d*k+A*V,Se=o*R+c*F+p*k+x*V,Ie=r*R+u*F+g*k+C*V,Ue=s*R+f*F+h*k+T*V;return n[0]=G,n[1]=U,n[2]=q,n[3]=Y,n[4]=Q,n[5]=W,n[6]=K,n[7]=J,n[8]=_e,n[9]=xe,n[10]=se,n[11]=Ae,n[12]=me,n[13]=Se,n[14]=Ie,n[15]=Ue,n};et.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n};et.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n};et.multiplyTransformation=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],u=e[8],f=e[9],d=e[10],p=e[12],g=e[13],h=e[14],A=t[0],x=t[1],C=t[2],T=t[4],E=t[5],S=t[6],v=t[8],D=t[9],O=t[10],M=t[12],L=t[13],N=t[14],_=i*A+s*x+u*C,b=o*A+a*x+f*C,w=r*A+c*x+d*C,I=i*T+s*E+u*S,R=o*T+a*E+f*S,F=r*T+c*E+d*S,k=i*v+s*D+u*O,V=o*v+a*D+f*O,G=r*v+c*D+d*O,U=i*M+s*L+u*N+p,q=o*M+a*L+f*N+g,Y=r*M+c*L+d*N+h;return n[0]=_,n[1]=b,n[2]=w,n[3]=0,n[4]=I,n[5]=R,n[6]=F,n[7]=0,n[8]=k,n[9]=V,n[10]=G,n[11]=0,n[12]=U,n[13]=q,n[14]=Y,n[15]=1,n};et.multiplyByMatrix3=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],u=e[8],f=e[9],d=e[10],p=t[0],g=t[1],h=t[2],A=t[3],x=t[4],C=t[5],T=t[6],E=t[7],S=t[8],v=i*p+s*g+u*h,D=o*p+a*g+f*h,O=r*p+c*g+d*h,M=i*A+s*x+u*C,L=o*A+a*x+f*C,N=r*A+c*x+d*C,_=i*T+s*E+u*S,b=o*T+a*E+f*S,w=r*T+c*E+d*S;return n[0]=v,n[1]=D,n[2]=O,n[3]=0,n[4]=M,n[5]=L,n[6]=N,n[7]=0,n[8]=_,n[9]=b,n[10]=w,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};et.multiplyByTranslation=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=i*e[0]+o*e[4]+r*e[8]+e[12],a=i*e[1]+o*e[5]+r*e[9]+e[13],c=i*e[2]+o*e[6]+r*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=s,n[13]=a,n[14]=c,n[15]=e[15],n};et.multiplyByScale=function(e,t,n){let i=t.x,o=t.y,r=t.z;return i===1&&o===1&&r===1?et.clone(e,n):(n[0]=i*e[0],n[1]=i*e[1],n[2]=i*e[2],n[3]=e[3],n[4]=o*e[4],n[5]=o*e[5],n[6]=o*e[6],n[7]=e[7],n[8]=r*e[8],n[9]=r*e[9],n[10]=r*e[10],n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n)};et.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3],n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7],n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};et.multiplyByVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=t.w,a=e[0]*i+e[4]*o+e[8]*r+e[12]*s,c=e[1]*i+e[5]*o+e[9]*r+e[13]*s,u=e[2]*i+e[6]*o+e[10]*r+e[14]*s,f=e[3]*i+e[7]*o+e[11]*r+e[15]*s;return n.x=a,n.y=c,n.z=u,n.w=f,n};et.multiplyByPointAsVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[4]*o+e[8]*r,a=e[1]*i+e[5]*o+e[9]*r,c=e[2]*i+e[6]*o+e[10]*r;return n.x=s,n.y=a,n.z=c,n};et.multiplyByPoint=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[4]*o+e[8]*r+e[12],a=e[1]*i+e[5]*o+e[9]*r+e[13],c=e[2]*i+e[6]*o+e[10]*r+e[14];return n.x=s,n.y=a,n.z=c,n};et.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n};et.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t};et.transpose=function(e,t){let n=e[1],i=e[2],o=e[3],r=e[6],s=e[7],a=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=i,t[9]=r,t[10]=e[10],t[11]=e[14],t[12]=o,t[13]=s,t[14]=a,t[15]=e[15],t};et.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t};et.equals=function(e,t){return e===t||l(e)&&l(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]};et.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n};et.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t};et.getMatrix3=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var zxe=new Z,Hxe=new Z,Gxe=new re,Wxe=new re(0,0,0,1);et.inverse=function(e,t){let n=e[0],i=e[4],o=e[8],r=e[12],s=e[1],a=e[5],c=e[9],u=e[13],f=e[2],d=e[6],p=e[10],g=e[14],h=e[3],A=e[7],x=e[11],C=e[15],T=p*C,E=g*x,S=d*C,v=g*A,D=d*x,O=p*A,M=f*C,L=g*h,N=f*x,_=p*h,b=f*A,w=d*h,I=T*a+v*c+D*u-(E*a+S*c+O*u),R=E*s+M*c+_*u-(T*s+L*c+N*u),F=S*s+L*a+b*u-(v*s+M*a+w*u),k=O*s+N*a+w*c-(D*s+_*a+b*c),V=E*i+S*o+O*r-(T*i+v*o+D*r),G=T*n+L*o+N*r-(E*n+M*o+_*r),U=v*n+M*i+w*r-(S*n+L*i+b*r),q=D*n+_*i+b*o-(O*n+N*i+w*o);T=o*u,E=r*c,S=i*u,v=r*a,D=i*c,O=o*a,M=n*u,L=r*s,N=n*c,_=o*s,b=n*a,w=i*s;let Y=T*A+v*x+D*C-(E*A+S*x+O*C),Q=E*h+M*x+_*C-(T*h+L*x+N*C),W=S*h+L*A+b*C-(v*h+M*A+w*C),K=O*h+N*A+w*x-(D*h+_*A+b*x),J=S*p+O*g+E*d-(D*g+T*d+v*p),_e=N*g+T*f+L*p-(M*p+_*g+E*f),xe=M*d+w*g+v*f-(b*g+S*f+L*d),se=b*p+D*f+_*d-(N*d+w*p+O*f),Ae=n*I+i*R+o*F+r*k;if(Math.abs(Ae)<P.EPSILON21){if(Z.equalsEpsilon(et.getMatrix3(e,zxe),Hxe,P.EPSILON7)&&re.equals(et.getRow(e,3,Gxe),Wxe))return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=0,t[11]=0,t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=1,t;throw new de("matrix is not invertible because its determinate is zero.")}return Ae=1/Ae,t[0]=I*Ae,t[1]=R*Ae,t[2]=F*Ae,t[3]=k*Ae,t[4]=V*Ae,t[5]=G*Ae,t[6]=U*Ae,t[7]=q*Ae,t[8]=Y*Ae,t[9]=Q*Ae,t[10]=W*Ae,t[11]=K*Ae,t[12]=J*Ae,t[13]=_e*Ae,t[14]=xe*Ae,t[15]=se*Ae,t};et.inverseTransformation=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[4],s=e[5],a=e[6],c=e[8],u=e[9],f=e[10],d=e[12],p=e[13],g=e[14],h=-n*d-i*p-o*g,A=-r*d-s*p-a*g,x=-c*d-u*p-f*g;return t[0]=n,t[1]=r,t[2]=c,t[3]=0,t[4]=i,t[5]=s,t[6]=u,t[7]=0,t[8]=o,t[9]=a,t[10]=f,t[11]=0,t[12]=h,t[13]=A,t[14]=x,t[15]=1,t};var jxe=new et;et.inverseTranspose=function(e,t){return et.inverse(et.transpose(e,jxe),t)};et.IDENTITY=Object.freeze(new et(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));et.ZERO=Object.freeze(new et(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));et.COLUMN0ROW0=0;et.COLUMN0ROW1=1;et.COLUMN0ROW2=2;et.COLUMN0ROW3=3;et.COLUMN1ROW0=4;et.COLUMN1ROW1=5;et.COLUMN1ROW2=6;et.COLUMN1ROW3=7;et.COLUMN2ROW0=8;et.COLUMN2ROW1=9;et.COLUMN2ROW2=10;et.COLUMN2ROW3=11;et.COLUMN3ROW0=12;et.COLUMN3ROW1=13;et.COLUMN3ROW2=14;et.COLUMN3ROW3=15;Object.defineProperties(et.prototype,{length:{get:function(){return et.packedLength}}});et.prototype.clone=function(e){return et.clone(this,e)};et.prototype.equals=function(e){return et.equals(this,e)};et.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]};et.prototype.equalsEpsilon=function(e,t){return et.equalsEpsilon(this,e,t)};et.prototype.toString=function(){return`(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]}) +(${this[1]}, ${this[5]}, ${this[9]}, ${this[13]}) +(${this[2]}, ${this[6]}, ${this[10]}, ${this[14]}) +(${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`};var B=et;var Yxe={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGBA_ASTC_4x4_WEBGL:37808,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_BPTC_UNORM:36492,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047},te=Object.freeze(Yxe);var qxe=new m;function Ht(e){this._size=e.size,this._datatype=e.datatype,this.getValue=e.getValue}var Os={};Os[te.FLOAT]="float";Os[te.FLOAT_VEC2]="vec2";Os[te.FLOAT_VEC3]="vec3";Os[te.FLOAT_VEC4]="vec4";Os[te.INT]="int";Os[te.INT_VEC2]="ivec2";Os[te.INT_VEC3]="ivec3";Os[te.INT_VEC4]="ivec4";Os[te.BOOL]="bool";Os[te.BOOL_VEC2]="bvec2";Os[te.BOOL_VEC3]="bvec3";Os[te.BOOL_VEC4]="bvec4";Os[te.FLOAT_MAT2]="mat2";Os[te.FLOAT_MAT3]="mat3";Os[te.FLOAT_MAT4]="mat4";Os[te.SAMPLER_2D]="sampler2D";Os[te.SAMPLER_CUBE]="samplerCube";Ht.prototype.getDeclaration=function(e){let t=`uniform ${Os[this._datatype]} ${e}`,n=this._size;return n===1?t+=";":t+=`[${n.toString()}];`,t};var Xxe={czm_viewport:new Ht({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.viewportCartesian4}}),czm_viewportOrthographic:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewportOrthographic}}),czm_viewportTransformation:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewportTransformation}}),czm_globeDepthTexture:new Ht({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.globeDepthTexture}}),czm_model:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.model}}),czm_inverseModel:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModel}}),czm_view:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.view}}),czm_view3D:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.view3D}}),czm_viewRotation:new Ht({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.viewRotation}}),czm_viewRotation3D:new Ht({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.viewRotation3D}}),czm_inverseView:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseView}}),czm_inverseView3D:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseView3D}}),czm_inverseViewRotation:new Ht({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation}}),czm_inverseViewRotation3D:new Ht({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation3D}}),czm_projection:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.projection}}),czm_inverseProjection:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseProjection}}),czm_infiniteProjection:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.infiniteProjection}}),czm_modelView:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelView}}),czm_modelView3D:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelView3D}}),czm_modelViewRelativeToEye:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewRelativeToEye}}),czm_inverseModelView:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelView}}),czm_inverseModelView3D:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelView3D}}),czm_viewProjection:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewProjection}}),czm_inverseViewProjection:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseViewProjection}}),czm_modelViewProjection:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewProjection}}),czm_inverseModelViewProjection:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelViewProjection}}),czm_modelViewProjectionRelativeToEye:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewProjectionRelativeToEye}}),czm_modelViewInfiniteProjection:new Ht({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewInfiniteProjection}}),czm_orthographicIn3D:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.orthographicIn3D?1:0}}),czm_normal:new Ht({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.normal}}),czm_normal3D:new Ht({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.normal3D}}),czm_inverseNormal:new Ht({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseNormal}}),czm_inverseNormal3D:new Ht({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseNormal3D}}),czm_eyeHeight:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.eyeHeight}}),czm_eyeHeight2D:new Ht({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.eyeHeight2D}}),czm_entireFrustum:new Ht({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.entireFrustum}}),czm_currentFrustum:new Ht({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.currentFrustum}}),czm_frustumPlanes:new Ht({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.frustumPlanes}}),czm_farDepthFromNearPlusOne:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.farDepthFromNearPlusOne}}),czm_log2FarDepthFromNearPlusOne:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.log2FarDepthFromNearPlusOne}}),czm_oneOverLog2FarDepthFromNearPlusOne:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.oneOverLog2FarDepthFromNearPlusOne}}),czm_sunPositionWC:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunPositionWC}}),czm_sunPositionColumbusView:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunPositionColumbusView}}),czm_sunDirectionEC:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunDirectionEC}}),czm_sunDirectionWC:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunDirectionWC}}),czm_moonDirectionEC:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.moonDirectionEC}}),czm_lightDirectionEC:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightDirectionEC}}),czm_lightDirectionWC:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightDirectionWC}}),czm_lightColor:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightColor}}),czm_lightColorHdr:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightColorHdr}}),czm_encodedCameraPositionMCHigh:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCHigh}}),czm_encodedCameraPositionMCLow:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCLow}}),czm_viewerPositionWC:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return B.getTranslation(e.inverseView,qxe)}}),czm_frameNumber:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.frameNumber}}),czm_morphTime:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.morphTime}}),czm_sceneMode:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.mode}}),czm_pass:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.pass}}),czm_backgroundColor:new Ht({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.backgroundColor}}),czm_brdfLut:new Ht({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.brdfLut}}),czm_environmentMap:new Ht({size:1,datatype:te.SAMPLER_CUBE,getValue:function(e){return e.environmentMap}}),czm_specularEnvironmentMaps:new Ht({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.specularEnvironmentMaps}}),czm_specularEnvironmentMapSize:new Ht({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.specularEnvironmentMapsDimensions}}),czm_specularEnvironmentMapsMaximumLOD:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.specularEnvironmentMapsMaximumLOD}}),czm_sphericalHarmonicCoefficients:new Ht({size:9,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sphericalHarmonicCoefficients}}),czm_temeToPseudoFixed:new Ht({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.temeToPseudoFixedMatrix}}),czm_pixelRatio:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.pixelRatio}}),czm_fogDensity:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.fogDensity}}),czm_splitPosition:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.splitPosition}}),czm_geometricToleranceOverMeter:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.geometricToleranceOverMeter}}),czm_minimumDisableDepthTestDistance:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.minimumDisableDepthTestDistance}}),czm_invertClassificationColor:new Ht({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.invertClassificationColor}}),czm_gamma:new Ht({size:1,datatype:te.FLOAT,getValue:function(e){return e.gamma}}),czm_ellipsoidRadii:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.radii}}),czm_ellipsoidInverseRadii:new Ht({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.oneOverRadii}})},e_=Xxe;function Kxe(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var jn=Kxe;function Jxe(){return!0}function Zxe(e,t){t=y(t,"This object was destroyed, i.e., destroy() was called.");function n(){}for(let i in e)typeof e[i]=="function"&&(e[i]=n);e.isDestroyed=Jxe}var ue=Zxe;var fs={UNSIGNED_BYTE:te.UNSIGNED_BYTE,UNSIGNED_SHORT:te.UNSIGNED_SHORT,UNSIGNED_INT:te.UNSIGNED_INT};fs.getSizeInBytes=function(e){switch(e){case fs.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case fs.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case fs.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}};fs.fromSizeInBytes=function(e){switch(e){case 2:return fs.UNSIGNED_SHORT;case 4:return fs.UNSIGNED_INT;case 1:return fs.UNSIGNED_BYTE}};fs.validate=function(e){return l(e)&&(e===fs.UNSIGNED_BYTE||e===fs.UNSIGNED_SHORT||e===fs.UNSIGNED_INT)};fs.createTypedArray=function(e,t){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)};fs.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)};fs.fromTypedArray=function(e){if(e instanceof Uint8Array)return fs.UNSIGNED_BYTE;if(e instanceof Uint16Array)return fs.UNSIGNED_SHORT;if(e instanceof Uint32Array)return fs.UNSIGNED_INT};var Ve=Object.freeze(fs);var QI={STREAM_DRAW:te.STREAM_DRAW,STATIC_DRAW:te.STATIC_DRAW,DYNAMIC_DRAW:te.DYNAMIC_DRAW,validate:function(e){return e===QI.STREAM_DRAW||e===QI.STATIC_DRAW||e===QI.DYNAMIC_DRAW}},Fe=Object.freeze(QI);function Eu(e){e=y(e,y.EMPTY_OBJECT);let t=e.context._gl,n=e.bufferTarget,i=e.typedArray,o=e.sizeInBytes,r=e.usage,s=l(i);s&&(o=i.byteLength);let a=t.createBuffer();t.bindBuffer(n,a),t.bufferData(n,s?i:o,r),t.bindBuffer(n,null),this._id=jn(),this._gl=t,this._webgl2=e.context._webgl2,this._bufferTarget=n,this._sizeInBytes=o,this._usage=r,this._buffer=a,this.vertexArrayDestroyable=!0}Eu.createVertexBuffer=function(e){return new Eu({context:e.context,bufferTarget:te.ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage})};Eu.createIndexBuffer=function(e){let t=e.context,n=e.indexDatatype,i=Ve.getSizeInBytes(n),o=new Eu({context:t,bufferTarget:te.ELEMENT_ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage}),r=o.sizeInBytes/i;return Object.defineProperties(o,{indexDatatype:{get:function(){return n}},bytesPerIndex:{get:function(){return i}},numberOfIndices:{get:function(){return r}}}),o};Object.defineProperties(Eu.prototype,{sizeInBytes:{get:function(){return this._sizeInBytes}},usage:{get:function(){return this._usage}}});Eu.prototype._getBuffer=function(){return this._buffer};Eu.prototype.copyFromArrayView=function(e,t){t=y(t,0);let n=this._gl,i=this._bufferTarget;n.bindBuffer(i,this._buffer),n.bufferSubData(i,t,e),n.bindBuffer(i,null)};Eu.prototype.copyFromBuffer=function(e,t,n,i){let o=te.COPY_READ_BUFFER,r=te.COPY_WRITE_BUFFER,s=this._gl;s.bindBuffer(r,this._buffer),s.bindBuffer(o,e._buffer),s.copyBufferSubData(o,r,t,n,i),s.bindBuffer(r,null),s.bindBuffer(o,null)};Eu.prototype.getBufferData=function(e,t,n,i){t=y(t,0),n=y(n,0);let o=this._gl,r=te.COPY_READ_BUFFER;o.bindBuffer(r,this._buffer),o.getBufferSubData(r,t,e,n,i),o.bindBuffer(r,null)};Eu.prototype.isDestroyed=function(){return!1};Eu.prototype.destroy=function(){return this._gl.deleteBuffer(this._buffer),ue(this)};var mt=Eu;var t_,pr={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},Fc={};Object.defineProperties(Fc,{element:{get:function(){if(Fc.supportsFullscreen())return document[pr.fullscreenElement]}},changeEventName:{get:function(){if(Fc.supportsFullscreen())return pr.fullscreenchange}},errorEventName:{get:function(){if(Fc.supportsFullscreen())return pr.fullscreenerror}},enabled:{get:function(){if(Fc.supportsFullscreen())return document[pr.fullscreenEnabled]}},fullscreen:{get:function(){if(Fc.supportsFullscreen())return Fc.element!==null}}});Fc.supportsFullscreen=function(){if(l(t_))return t_;t_=!1;let e=document.body;if(typeof e.requestFullscreen=="function")return pr.requestFullscreen="requestFullscreen",pr.exitFullscreen="exitFullscreen",pr.fullscreenEnabled="fullscreenEnabled",pr.fullscreenElement="fullscreenElement",pr.fullscreenchange="fullscreenchange",pr.fullscreenerror="fullscreenerror",t_=!0,t_;let t=["webkit","moz","o","ms","khtml"],n;for(let i=0,o=t.length;i<o;++i){let r=t[i];n=`${r}RequestFullscreen`,typeof e[n]=="function"?(pr.requestFullscreen=n,t_=!0):(n=`${r}RequestFullScreen`,typeof e[n]=="function"&&(pr.requestFullscreen=n,t_=!0)),n=`${r}ExitFullscreen`,typeof document[n]=="function"?pr.exitFullscreen=n:(n=`${r}CancelFullScreen`,typeof document[n]=="function"&&(pr.exitFullscreen=n)),n=`${r}FullscreenEnabled`,document[n]!==void 0?pr.fullscreenEnabled=n:(n=`${r}FullScreenEnabled`,document[n]!==void 0&&(pr.fullscreenEnabled=n)),n=`${r}FullscreenElement`,document[n]!==void 0?pr.fullscreenElement=n:(n=`${r}FullScreenElement`,document[n]!==void 0&&(pr.fullscreenElement=n)),n=`${r}fullscreenchange`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenChange"),pr.fullscreenchange=n),n=`${r}fullscreenerror`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenError"),pr.fullscreenerror=n)}return t_};Fc.requestFullscreen=function(e,t){Fc.supportsFullscreen()&&e[pr.requestFullscreen]({vrDisplay:t})};Fc.exitFullscreen=function(){Fc.supportsFullscreen()&&document[pr.exitFullscreen]()};Fc._names=pr;var _r=Fc;var ba;typeof navigator<"u"?ba=navigator:ba={};function zy(e){let t=e.split(".");for(let n=0,i=t.length;n<i;++n)t[n]=parseInt(t[n],10);return t}var $I,wX;function KH(){if(!l($I)&&($I=!1,!rP())){let e=/ Chrome\/([\.0-9]+)/.exec(ba.userAgent);e!==null&&($I=!0,wX=zy(e[1]))}return $I}function Qxe(){return KH()&&wX}var eP,vX;function DX(){if(!l(eP)&&(eP=!1,!KH()&&!rP()&&/ Safari\/[\.0-9]+/.test(ba.userAgent))){let e=/ Version\/([\.0-9]+)/.exec(ba.userAgent);e!==null&&(eP=!0,vX=zy(e[1]))}return eP}function $xe(){return DX()&&vX}var tP,qH;function IX(){if(!l(tP)){tP=!1;let e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(ba.userAgent);e!==null&&(tP=!0,qH=zy(e[1]),qH.isNightly=!!e[2])}return tP}function eCe(){return IX()&&qH}var zb,XH;function PX(){if(!l(zb)){zb=!1;let e;ba.appName==="Microsoft Internet Explorer"?(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(ba.userAgent),e!==null&&(zb=!0,XH=zy(e[1]))):ba.appName==="Netscape"&&(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(ba.userAgent),e!==null&&(zb=!0,XH=zy(e[1])))}return zb}function tCe(){return PX()&&XH}var nP,OX;function rP(){if(!l(nP)){nP=!1;let e=/ Edg\/([\.0-9]+)/.exec(ba.userAgent);e!==null&&(nP=!0,OX=zy(e[1]))}return nP}function nCe(){return rP()&&OX}var iP,MX;function JH(){if(!l(iP)){iP=!1;let e=/Firefox\/([\.0-9]+)/.exec(ba.userAgent);e!==null&&(iP=!0,MX=zy(e[1]))}return iP}var WH;function iCe(){return l(WH)||(WH=/Windows/i.test(ba.appVersion)),WH}var jH;function oCe(){return l(jH)||(jH=navigator.platform==="iPhone"||navigator.platform==="iPod"||navigator.platform==="iPad"),jH}function rCe(){return JH()&&MX}var YH;function sCe(){return l(YH)||(YH=!JH()&&typeof PointerEvent<"u"&&(!l(ba.pointerEnabled)||ba.pointerEnabled)),YH}var RX,oP;function BX(){if(!l(oP)){let e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");let t=e.style.imageRendering;oP=l(t)&&t!=="",oP&&(RX=t)}return oP}function aCe(){return BX()?RX:void 0}function ic(){return ic._result}ic._promise=void 0;ic._result=void 0;ic.initialize=function(){return l(ic._promise)||(ic._promise=new Promise(e=>{let t=new Image;t.onload=function(){ic._result=t.width>0&&t.height>0,e(ic._result)},t.onerror=function(){ic._result=!1,e(ic._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),ic._promise};Object.defineProperties(ic,{initialized:{get:function(){return l(ic._result)}}});var Cx=[];typeof ArrayBuffer<"u"&&(Cx.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&Cx.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&Cx.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&Cx.push(BigInt64Array),typeof BigUint64Array<"u"&&Cx.push(BigUint64Array));var If={isChrome:KH,chromeVersion:Qxe,isSafari:DX,safariVersion:$xe,isWebkit:IX,webkitVersion:eCe,isInternetExplorer:PX,internetExplorerVersion:tCe,isEdge:rP,edgeVersion:nCe,isFirefox:JH,firefoxVersion:rCe,isWindows:iCe,isIPadOrIOS:oCe,hardwareConcurrency:y(ba.hardwareConcurrency,3),supportsPointerEvents:sCe,supportsImageRenderingPixelated:BX,supportsWebP:ic,imageRenderingValue:aCe,typedArrayTypes:Cx};If.supportsBasis=function(e){return If.supportsWebAssembly()&&e.context.supportsBasis};If.supportsFullscreen=function(){return _r.supportsFullscreen()};If.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};If.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};If.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};If.supportsBigInt=function(){return typeof BigInt<"u"};If.supportsWebWorkers=function(){return typeof Worker<"u"};If.supportsWebAssembly=function(){return typeof WebAssembly<"u"};If.supportsWebgl2=function(e){return e.context.webgl2};var Gt=If;function ZH(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function ie(e,t,n,i){this.red=y(e,1),this.green=y(t,1),this.blue=y(n,1),this.alpha=y(i,1)}ie.fromCartesian4=function(e,t){return l(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new ie(e.x,e.y,e.z,e.w)};ie.fromBytes=function(e,t,n,i,o){return e=ie.byteToFloat(y(e,255)),t=ie.byteToFloat(y(t,255)),n=ie.byteToFloat(y(n,255)),i=ie.byteToFloat(y(i,255)),l(o)?(o.red=e,o.green=t,o.blue=n,o.alpha=i,o):new ie(e,t,n,i)};ie.fromAlpha=function(e,t,n){return l(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new ie(e.red,e.green,e.blue,t)};var QH,$H,Ch;Gt.supportsTypedArrays()&&(QH=new ArrayBuffer(4),$H=new Uint32Array(QH),Ch=new Uint8Array(QH));ie.fromRgba=function(e,t){return $H[0]=e,ie.fromBytes(Ch[0],Ch[1],Ch[2],Ch[3],t)};ie.fromHsl=function(e,t,n,i,o){e=y(e,0)%1,t=y(t,0),n=y(n,0),i=y(i,1);let r=n,s=n,a=n;if(t!==0){let c;n<.5?c=n*(1+t):c=n+t-n*t;let u=2*n-c;r=ZH(u,c,e+1/3),s=ZH(u,c,e),a=ZH(u,c,e-1/3)}return l(o)?(o.red=r,o.green=s,o.blue=a,o.alpha=i,o):new ie(r,s,a,i)};ie.fromRandom=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.red;if(!l(n)){let s=y(e.minimumRed,0),a=y(e.maximumRed,1);n=s+P.nextRandomNumber()*(a-s)}let i=e.green;if(!l(i)){let s=y(e.minimumGreen,0),a=y(e.maximumGreen,1);i=s+P.nextRandomNumber()*(a-s)}let o=e.blue;if(!l(o)){let s=y(e.minimumBlue,0),a=y(e.maximumBlue,1);o=s+P.nextRandomNumber()*(a-s)}let r=e.alpha;if(!l(r)){let s=y(e.minimumAlpha,0),a=y(e.maximumAlpha,1);r=s+P.nextRandomNumber()*(a-s)}return l(t)?(t.red=n,t.green=i,t.blue=o,t.alpha=r,t):new ie(n,i,o,r)};var cCe=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,lCe=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,uCe=/^rgba?\(\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)(?:\s*,\s*([0-9.]+))?\s*\)$/i,fCe=/^hsla?\(\s*([0-9.]+)\s*,\s*([0-9.]+%)\s*,\s*([0-9.]+%)(?:\s*,\s*([0-9.]+))?\s*\)$/i;ie.fromCssColorString=function(e,t){l(t)||(t=new ie),e=e.replace(/\s/g,"");let n=ie[e.toUpperCase()];if(l(n))return ie.clone(n,t),t;let i=cCe.exec(e);return i!==null?(t.red=parseInt(i[1],16)/15,t.green=parseInt(i[2],16)/15,t.blue=parseInt(i[3],16)/15,t.alpha=parseInt(y(i[4],"f"),16)/15,t):(i=lCe.exec(e),i!==null?(t.red=parseInt(i[1],16)/255,t.green=parseInt(i[2],16)/255,t.blue=parseInt(i[3],16)/255,t.alpha=parseInt(y(i[4],"ff"),16)/255,t):(i=uCe.exec(e),i!==null?(t.red=parseFloat(i[1])/(i[1].substr(-1)==="%"?100:255),t.green=parseFloat(i[2])/(i[2].substr(-1)==="%"?100:255),t.blue=parseFloat(i[3])/(i[3].substr(-1)==="%"?100:255),t.alpha=parseFloat(y(i[4],"1.0")),t):(i=fCe.exec(e),i!==null?ie.fromHsl(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(y(i[4],"1.0")),t):(t=void 0,t))))};ie.packedLength=4;ie.pack=function(e,t,n){return n=y(n,0),t[n++]=e.red,t[n++]=e.green,t[n++]=e.blue,t[n]=e.alpha,t};ie.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ie),n.red=e[t++],n.green=e[t++],n.blue=e[t++],n.alpha=e[t],n};ie.byteToFloat=function(e){return e/255};ie.floatToByte=function(e){return e===1?255:e*256|0};ie.clone=function(e,t){if(l(e))return l(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new ie(e.red,e.green,e.blue,e.alpha)};ie.equals=function(e,t){return e===t||l(e)&&l(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha};ie.equalsArray=function(e,t,n){return e.red===t[n]&&e.green===t[n+1]&&e.blue===t[n+2]&&e.alpha===t[n+3]};ie.prototype.clone=function(e){return ie.clone(this,e)};ie.prototype.equals=function(e){return ie.equals(this,e)};ie.prototype.equalsEpsilon=function(e,t){return this===e||l(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t};ie.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};ie.prototype.toCssColorString=function(){let e=ie.floatToByte(this.red),t=ie.floatToByte(this.green),n=ie.floatToByte(this.blue);return this.alpha===1?`rgb(${e},${t},${n})`:`rgba(${e},${t},${n},${this.alpha})`};ie.prototype.toCssHexString=function(){let e=ie.floatToByte(this.red).toString(16);e.length<2&&(e=`0${e}`);let t=ie.floatToByte(this.green).toString(16);t.length<2&&(t=`0${t}`);let n=ie.floatToByte(this.blue).toString(16);if(n.length<2&&(n=`0${n}`),this.alpha<1){let i=ie.floatToByte(this.alpha).toString(16);return i.length<2&&(i=`0${i}`),`#${e}${t}${n}${i}`}return`#${e}${t}${n}`};ie.prototype.toBytes=function(e){let t=ie.floatToByte(this.red),n=ie.floatToByte(this.green),i=ie.floatToByte(this.blue),o=ie.floatToByte(this.alpha);return l(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=o,e):[t,n,i,o]};ie.prototype.toRgba=function(){return Ch[0]=ie.floatToByte(this.red),Ch[1]=ie.floatToByte(this.green),Ch[2]=ie.floatToByte(this.blue),Ch[3]=ie.floatToByte(this.alpha),$H[0]};ie.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t};ie.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t};ie.prototype.withAlpha=function(e,t){return ie.fromAlpha(this,e,t)};ie.add=function(e,t,n){return n.red=e.red+t.red,n.green=e.green+t.green,n.blue=e.blue+t.blue,n.alpha=e.alpha+t.alpha,n};ie.subtract=function(e,t,n){return n.red=e.red-t.red,n.green=e.green-t.green,n.blue=e.blue-t.blue,n.alpha=e.alpha-t.alpha,n};ie.multiply=function(e,t,n){return n.red=e.red*t.red,n.green=e.green*t.green,n.blue=e.blue*t.blue,n.alpha=e.alpha*t.alpha,n};ie.divide=function(e,t,n){return n.red=e.red/t.red,n.green=e.green/t.green,n.blue=e.blue/t.blue,n.alpha=e.alpha/t.alpha,n};ie.mod=function(e,t,n){return n.red=e.red%t.red,n.green=e.green%t.green,n.blue=e.blue%t.blue,n.alpha=e.alpha%t.alpha,n};ie.lerp=function(e,t,n,i){return i.red=P.lerp(e.red,t.red,n),i.green=P.lerp(e.green,t.green,n),i.blue=P.lerp(e.blue,t.blue,n),i.alpha=P.lerp(e.alpha,t.alpha,n),i};ie.multiplyByScalar=function(e,t,n){return n.red=e.red*t,n.green=e.green*t,n.blue=e.blue*t,n.alpha=e.alpha*t,n};ie.divideByScalar=function(e,t,n){return n.red=e.red/t,n.green=e.green/t,n.blue=e.blue/t,n.alpha=e.alpha/t,n};ie.ALICEBLUE=Object.freeze(ie.fromCssColorString("#F0F8FF"));ie.ANTIQUEWHITE=Object.freeze(ie.fromCssColorString("#FAEBD7"));ie.AQUA=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.AQUAMARINE=Object.freeze(ie.fromCssColorString("#7FFFD4"));ie.AZURE=Object.freeze(ie.fromCssColorString("#F0FFFF"));ie.BEIGE=Object.freeze(ie.fromCssColorString("#F5F5DC"));ie.BISQUE=Object.freeze(ie.fromCssColorString("#FFE4C4"));ie.BLACK=Object.freeze(ie.fromCssColorString("#000000"));ie.BLANCHEDALMOND=Object.freeze(ie.fromCssColorString("#FFEBCD"));ie.BLUE=Object.freeze(ie.fromCssColorString("#0000FF"));ie.BLUEVIOLET=Object.freeze(ie.fromCssColorString("#8A2BE2"));ie.BROWN=Object.freeze(ie.fromCssColorString("#A52A2A"));ie.BURLYWOOD=Object.freeze(ie.fromCssColorString("#DEB887"));ie.CADETBLUE=Object.freeze(ie.fromCssColorString("#5F9EA0"));ie.CHARTREUSE=Object.freeze(ie.fromCssColorString("#7FFF00"));ie.CHOCOLATE=Object.freeze(ie.fromCssColorString("#D2691E"));ie.CORAL=Object.freeze(ie.fromCssColorString("#FF7F50"));ie.CORNFLOWERBLUE=Object.freeze(ie.fromCssColorString("#6495ED"));ie.CORNSILK=Object.freeze(ie.fromCssColorString("#FFF8DC"));ie.CRIMSON=Object.freeze(ie.fromCssColorString("#DC143C"));ie.CYAN=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.DARKBLUE=Object.freeze(ie.fromCssColorString("#00008B"));ie.DARKCYAN=Object.freeze(ie.fromCssColorString("#008B8B"));ie.DARKGOLDENROD=Object.freeze(ie.fromCssColorString("#B8860B"));ie.DARKGRAY=Object.freeze(ie.fromCssColorString("#A9A9A9"));ie.DARKGREEN=Object.freeze(ie.fromCssColorString("#006400"));ie.DARKGREY=ie.DARKGRAY;ie.DARKKHAKI=Object.freeze(ie.fromCssColorString("#BDB76B"));ie.DARKMAGENTA=Object.freeze(ie.fromCssColorString("#8B008B"));ie.DARKOLIVEGREEN=Object.freeze(ie.fromCssColorString("#556B2F"));ie.DARKORANGE=Object.freeze(ie.fromCssColorString("#FF8C00"));ie.DARKORCHID=Object.freeze(ie.fromCssColorString("#9932CC"));ie.DARKRED=Object.freeze(ie.fromCssColorString("#8B0000"));ie.DARKSALMON=Object.freeze(ie.fromCssColorString("#E9967A"));ie.DARKSEAGREEN=Object.freeze(ie.fromCssColorString("#8FBC8F"));ie.DARKSLATEBLUE=Object.freeze(ie.fromCssColorString("#483D8B"));ie.DARKSLATEGRAY=Object.freeze(ie.fromCssColorString("#2F4F4F"));ie.DARKSLATEGREY=ie.DARKSLATEGRAY;ie.DARKTURQUOISE=Object.freeze(ie.fromCssColorString("#00CED1"));ie.DARKVIOLET=Object.freeze(ie.fromCssColorString("#9400D3"));ie.DEEPPINK=Object.freeze(ie.fromCssColorString("#FF1493"));ie.DEEPSKYBLUE=Object.freeze(ie.fromCssColorString("#00BFFF"));ie.DIMGRAY=Object.freeze(ie.fromCssColorString("#696969"));ie.DIMGREY=ie.DIMGRAY;ie.DODGERBLUE=Object.freeze(ie.fromCssColorString("#1E90FF"));ie.FIREBRICK=Object.freeze(ie.fromCssColorString("#B22222"));ie.FLORALWHITE=Object.freeze(ie.fromCssColorString("#FFFAF0"));ie.FORESTGREEN=Object.freeze(ie.fromCssColorString("#228B22"));ie.FUCHSIA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.GAINSBORO=Object.freeze(ie.fromCssColorString("#DCDCDC"));ie.GHOSTWHITE=Object.freeze(ie.fromCssColorString("#F8F8FF"));ie.GOLD=Object.freeze(ie.fromCssColorString("#FFD700"));ie.GOLDENROD=Object.freeze(ie.fromCssColorString("#DAA520"));ie.GRAY=Object.freeze(ie.fromCssColorString("#808080"));ie.GREEN=Object.freeze(ie.fromCssColorString("#008000"));ie.GREENYELLOW=Object.freeze(ie.fromCssColorString("#ADFF2F"));ie.GREY=ie.GRAY;ie.HONEYDEW=Object.freeze(ie.fromCssColorString("#F0FFF0"));ie.HOTPINK=Object.freeze(ie.fromCssColorString("#FF69B4"));ie.INDIANRED=Object.freeze(ie.fromCssColorString("#CD5C5C"));ie.INDIGO=Object.freeze(ie.fromCssColorString("#4B0082"));ie.IVORY=Object.freeze(ie.fromCssColorString("#FFFFF0"));ie.KHAKI=Object.freeze(ie.fromCssColorString("#F0E68C"));ie.LAVENDER=Object.freeze(ie.fromCssColorString("#E6E6FA"));ie.LAVENDAR_BLUSH=Object.freeze(ie.fromCssColorString("#FFF0F5"));ie.LAWNGREEN=Object.freeze(ie.fromCssColorString("#7CFC00"));ie.LEMONCHIFFON=Object.freeze(ie.fromCssColorString("#FFFACD"));ie.LIGHTBLUE=Object.freeze(ie.fromCssColorString("#ADD8E6"));ie.LIGHTCORAL=Object.freeze(ie.fromCssColorString("#F08080"));ie.LIGHTCYAN=Object.freeze(ie.fromCssColorString("#E0FFFF"));ie.LIGHTGOLDENRODYELLOW=Object.freeze(ie.fromCssColorString("#FAFAD2"));ie.LIGHTGRAY=Object.freeze(ie.fromCssColorString("#D3D3D3"));ie.LIGHTGREEN=Object.freeze(ie.fromCssColorString("#90EE90"));ie.LIGHTGREY=ie.LIGHTGRAY;ie.LIGHTPINK=Object.freeze(ie.fromCssColorString("#FFB6C1"));ie.LIGHTSEAGREEN=Object.freeze(ie.fromCssColorString("#20B2AA"));ie.LIGHTSKYBLUE=Object.freeze(ie.fromCssColorString("#87CEFA"));ie.LIGHTSLATEGRAY=Object.freeze(ie.fromCssColorString("#778899"));ie.LIGHTSLATEGREY=ie.LIGHTSLATEGRAY;ie.LIGHTSTEELBLUE=Object.freeze(ie.fromCssColorString("#B0C4DE"));ie.LIGHTYELLOW=Object.freeze(ie.fromCssColorString("#FFFFE0"));ie.LIME=Object.freeze(ie.fromCssColorString("#00FF00"));ie.LIMEGREEN=Object.freeze(ie.fromCssColorString("#32CD32"));ie.LINEN=Object.freeze(ie.fromCssColorString("#FAF0E6"));ie.MAGENTA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.MAROON=Object.freeze(ie.fromCssColorString("#800000"));ie.MEDIUMAQUAMARINE=Object.freeze(ie.fromCssColorString("#66CDAA"));ie.MEDIUMBLUE=Object.freeze(ie.fromCssColorString("#0000CD"));ie.MEDIUMORCHID=Object.freeze(ie.fromCssColorString("#BA55D3"));ie.MEDIUMPURPLE=Object.freeze(ie.fromCssColorString("#9370DB"));ie.MEDIUMSEAGREEN=Object.freeze(ie.fromCssColorString("#3CB371"));ie.MEDIUMSLATEBLUE=Object.freeze(ie.fromCssColorString("#7B68EE"));ie.MEDIUMSPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FA9A"));ie.MEDIUMTURQUOISE=Object.freeze(ie.fromCssColorString("#48D1CC"));ie.MEDIUMVIOLETRED=Object.freeze(ie.fromCssColorString("#C71585"));ie.MIDNIGHTBLUE=Object.freeze(ie.fromCssColorString("#191970"));ie.MINTCREAM=Object.freeze(ie.fromCssColorString("#F5FFFA"));ie.MISTYROSE=Object.freeze(ie.fromCssColorString("#FFE4E1"));ie.MOCCASIN=Object.freeze(ie.fromCssColorString("#FFE4B5"));ie.NAVAJOWHITE=Object.freeze(ie.fromCssColorString("#FFDEAD"));ie.NAVY=Object.freeze(ie.fromCssColorString("#000080"));ie.OLDLACE=Object.freeze(ie.fromCssColorString("#FDF5E6"));ie.OLIVE=Object.freeze(ie.fromCssColorString("#808000"));ie.OLIVEDRAB=Object.freeze(ie.fromCssColorString("#6B8E23"));ie.ORANGE=Object.freeze(ie.fromCssColorString("#FFA500"));ie.ORANGERED=Object.freeze(ie.fromCssColorString("#FF4500"));ie.ORCHID=Object.freeze(ie.fromCssColorString("#DA70D6"));ie.PALEGOLDENROD=Object.freeze(ie.fromCssColorString("#EEE8AA"));ie.PALEGREEN=Object.freeze(ie.fromCssColorString("#98FB98"));ie.PALETURQUOISE=Object.freeze(ie.fromCssColorString("#AFEEEE"));ie.PALEVIOLETRED=Object.freeze(ie.fromCssColorString("#DB7093"));ie.PAPAYAWHIP=Object.freeze(ie.fromCssColorString("#FFEFD5"));ie.PEACHPUFF=Object.freeze(ie.fromCssColorString("#FFDAB9"));ie.PERU=Object.freeze(ie.fromCssColorString("#CD853F"));ie.PINK=Object.freeze(ie.fromCssColorString("#FFC0CB"));ie.PLUM=Object.freeze(ie.fromCssColorString("#DDA0DD"));ie.POWDERBLUE=Object.freeze(ie.fromCssColorString("#B0E0E6"));ie.PURPLE=Object.freeze(ie.fromCssColorString("#800080"));ie.RED=Object.freeze(ie.fromCssColorString("#FF0000"));ie.ROSYBROWN=Object.freeze(ie.fromCssColorString("#BC8F8F"));ie.ROYALBLUE=Object.freeze(ie.fromCssColorString("#4169E1"));ie.SADDLEBROWN=Object.freeze(ie.fromCssColorString("#8B4513"));ie.SALMON=Object.freeze(ie.fromCssColorString("#FA8072"));ie.SANDYBROWN=Object.freeze(ie.fromCssColorString("#F4A460"));ie.SEAGREEN=Object.freeze(ie.fromCssColorString("#2E8B57"));ie.SEASHELL=Object.freeze(ie.fromCssColorString("#FFF5EE"));ie.SIENNA=Object.freeze(ie.fromCssColorString("#A0522D"));ie.SILVER=Object.freeze(ie.fromCssColorString("#C0C0C0"));ie.SKYBLUE=Object.freeze(ie.fromCssColorString("#87CEEB"));ie.SLATEBLUE=Object.freeze(ie.fromCssColorString("#6A5ACD"));ie.SLATEGRAY=Object.freeze(ie.fromCssColorString("#708090"));ie.SLATEGREY=ie.SLATEGRAY;ie.SNOW=Object.freeze(ie.fromCssColorString("#FFFAFA"));ie.SPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FF7F"));ie.STEELBLUE=Object.freeze(ie.fromCssColorString("#4682B4"));ie.TAN=Object.freeze(ie.fromCssColorString("#D2B48C"));ie.TEAL=Object.freeze(ie.fromCssColorString("#008080"));ie.THISTLE=Object.freeze(ie.fromCssColorString("#D8BFD8"));ie.TOMATO=Object.freeze(ie.fromCssColorString("#FF6347"));ie.TURQUOISE=Object.freeze(ie.fromCssColorString("#40E0D0"));ie.VIOLET=Object.freeze(ie.fromCssColorString("#EE82EE"));ie.WHEAT=Object.freeze(ie.fromCssColorString("#F5DEB3"));ie.WHITE=Object.freeze(ie.fromCssColorString("#FFFFFF"));ie.WHITESMOKE=Object.freeze(ie.fromCssColorString("#F5F5F5"));ie.YELLOW=Object.freeze(ie.fromCssColorString("#FFFF00"));ie.YELLOWGREEN=Object.freeze(ie.fromCssColorString("#9ACD32"));ie.TRANSPARENT=Object.freeze(new ie(0,0,0,0));var z=ie;function sP(e){e=y(e,y.EMPTY_OBJECT),this.color=e.color,this.depth=e.depth,this.stencil=e.stencil,this.renderState=e.renderState,this.framebuffer=e.framebuffer,this.owner=e.owner,this.pass=e.pass}sP.ALL=Object.freeze(new sP({color:new z(0,0,0,0),depth:1,stencil:0}));sP.prototype.execute=function(e,t){e.clear(this,t)};var oi=sP;var dCe={ENVIRONMENT:0,COMPUTE:1,GLOBE:2,TERRAIN_CLASSIFICATION:3,CESIUM_3D_TILE:4,CESIUM_3D_TILE_CLASSIFICATION:5,CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW:6,OPAQUE:7,TRANSLUCENT:8,VOXELS:9,OVERLAY:10,NUMBER_OF_PASSES:11},be=Object.freeze(dCe);function LX(e){e=y(e,y.EMPTY_OBJECT),this.vertexArray=e.vertexArray,this.fragmentShaderSource=e.fragmentShaderSource,this.shaderProgram=e.shaderProgram,this.uniformMap=e.uniformMap,this.outputTexture=e.outputTexture,this.preExecute=e.preExecute,this.postExecute=e.postExecute,this.canceled=e.canceled,this.persists=y(e.persists,!1),this.pass=be.COMPUTE,this.owner=e.owner}LX.prototype.execute=function(e){e.execute(this)};var Pf=LX;function Ot(e,t){this.x=y(e,0),this.y=y(t,0)}Ot.fromElements=function(e,t,n){return l(n)?(n.x=e,n.y=t,n):new Ot(e,t)};Ot.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t):new Ot(e.x,e.y)};Ot.fromCartesian3=Ot.clone;Ot.fromCartesian4=Ot.clone;Ot.packedLength=2;Ot.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n]=e.y,t};Ot.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Ot),n.x=e[t++],n.y=e[t],n};Ot.packArray=function(e,t){let n=e.length,i=n*2;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Ot.pack(e[o],t,o*2);return t};Ot.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/2:t=new Array(n/2);for(let i=0;i<n;i+=2){let o=i/2;t[o]=Ot.unpack(e,i,t[o])}return t};Ot.fromArray=Ot.unpack;Ot.maximumComponent=function(e){return Math.max(e.x,e.y)};Ot.minimumComponent=function(e){return Math.min(e.x,e.y)};Ot.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n};Ot.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n};Ot.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y);return i.x=o,i.y=r,i};Ot.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y};Ot.magnitude=function(e){return Math.sqrt(Ot.magnitudeSquared(e))};var aP=new Ot;Ot.distance=function(e,t){return Ot.subtract(e,t,aP),Ot.magnitude(aP)};Ot.distanceSquared=function(e,t){return Ot.subtract(e,t,aP),Ot.magnitudeSquared(aP)};Ot.normalize=function(e,t){let n=Ot.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t};Ot.dot=function(e,t){return e.x*t.x+e.y*t.y};Ot.cross=function(e,t){return e.x*t.y-e.y*t.x};Ot.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n};Ot.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n};Ot.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n};Ot.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n};Ot.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n};Ot.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n};Ot.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t};Ot.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var NX=new Ot;Ot.lerp=function(e,t,n,i){return Ot.multiplyByScalar(t,n,NX),i=Ot.multiplyByScalar(e,1-n,i),Ot.add(NX,i,i)};var FX=new Ot,UX=new Ot;Ot.angleBetween=function(e,t){return Ot.normalize(e,FX),Ot.normalize(t,UX),P.acosClamped(Ot.dot(FX,UX))};var mCe=new Ot;Ot.mostOrthogonalAxis=function(e,t){let n=Ot.normalize(e,mCe);return Ot.abs(n,n),n.x<=n.y?t=Ot.clone(Ot.UNIT_X,t):t=Ot.clone(Ot.UNIT_Y,t),t};Ot.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y};Ot.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]};Ot.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)};Ot.ZERO=Object.freeze(new Ot(0,0));Ot.ONE=Object.freeze(new Ot(1,1));Ot.UNIT_X=Object.freeze(new Ot(1,0));Ot.UNIT_Y=Object.freeze(new Ot(0,1));Ot.prototype.clone=function(e){return Ot.clone(this,e)};Ot.prototype.equals=function(e){return Ot.equals(this,e)};Ot.prototype.equalsEpsilon=function(e,t,n){return Ot.equalsEpsilon(this,e,t,n)};Ot.prototype.toString=function(){return`(${this.x}, ${this.y})`};var H=Ot;var hCe=new m,pCe=new m;function _Ce(e,t,n,i,o){let r=e.x,s=e.y,a=e.z,c=t.x,u=t.y,f=t.z,d=r*r*c*c,p=s*s*u*u,g=a*a*f*f,h=d+p+g,A=Math.sqrt(1/h),x=m.multiplyByScalar(e,A,hCe);if(h<i)return isFinite(A)?m.clone(x,o):void 0;let C=n.x,T=n.y,E=n.z,S=pCe;S.x=x.x*C*2,S.y=x.y*T*2,S.z=x.z*E*2;let v=(1-A)*m.magnitude(e)/(.5*m.magnitude(S)),D=0,O,M,L,N,_,b,w,I,R,F,k;do{v-=D,L=1/(1+v*C),N=1/(1+v*T),_=1/(1+v*E),b=L*L,w=N*N,I=_*_,R=b*L,F=w*N,k=I*_,O=d*b+p*w+g*I-1,M=d*R*C+p*F*T+g*k*E;let V=-2*M;D=O/V}while(Math.abs(O)>P.EPSILON12);return l(o)?(o.x=r*L,o.y=s*N,o.z=a*_,o):new m(r*L,s*N,a*_)}var Tx=_Ce;function Hr(e,t,n){this.longitude=y(e,0),this.latitude=y(t,0),this.height=y(n,0)}Hr.fromRadians=function(e,t,n,i){return n=y(n,0),l(i)?(i.longitude=e,i.latitude=t,i.height=n,i):new Hr(e,t,n)};Hr.fromDegrees=function(e,t,n,i){return e=P.toRadians(e),t=P.toRadians(t),Hr.fromRadians(e,t,n,i)};var gCe=new m,yCe=new m,ACe=new m,xCe=new m(1/6378137,1/6378137,1/6356752314245179e-9),CCe=new m(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9)),TCe=P.EPSILON1;Hr.fromCartesian=function(e,t,n){let i=l(t)?t.oneOverRadii:xCe,o=l(t)?t.oneOverRadiiSquared:CCe,r=l(t)?t._centerToleranceSquared:TCe,s=Tx(e,i,o,r,yCe);if(!l(s))return;let a=m.multiplyComponents(s,o,gCe);a=m.normalize(a,a);let c=m.subtract(e,s,ACe),u=Math.atan2(a.y,a.x),f=Math.asin(a.z),d=P.sign(m.dot(c,e))*m.magnitude(c);return l(n)?(n.longitude=u,n.latitude=f,n.height=d,n):new Hr(u,f,d)};Hr.toCartesian=function(e,t,n){return m.fromRadians(e.longitude,e.latitude,e.height,t,n)};Hr.clone=function(e,t){if(l(e))return l(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new Hr(e.longitude,e.latitude,e.height)};Hr.equals=function(e,t){return e===t||l(e)&&l(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height};Hr.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n};Hr.ZERO=Object.freeze(new Hr(0,0,0));Hr.prototype.clone=function(e){return Hr.clone(this,e)};Hr.prototype.equals=function(e){return Hr.equals(this,e)};Hr.prototype.equalsEpsilon=function(e,t){return Hr.equalsEpsilon(this,e,t)};Hr.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var he=Hr;function kX(e,t,n,i){t=y(t,0),n=y(n,0),i=y(i,0),e._radii=new m(t,n,i),e._radiiSquared=new m(t*t,n*n,i*i),e._radiiToTheFourth=new m(t*t*t*t,n*n*n*n,i*i*i*i),e._oneOverRadii=new m(t===0?0:1/t,n===0?0:1/n,i===0?0:1/i),e._oneOverRadiiSquared=new m(t===0?0:1/(t*t),n===0?0:1/(n*n),i===0?0:1/(i*i)),e._minimumRadius=Math.min(t,n,i),e._maximumRadius=Math.max(t,n,i),e._centerToleranceSquared=P.EPSILON1,e._radiiSquared.z!==0&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function qi(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,kX(this,e,t,n)}Object.defineProperties(qi.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}});qi.clone=function(e,t){if(!l(e))return;let n=e._radii;return l(t)?(m.clone(n,t._radii),m.clone(e._radiiSquared,t._radiiSquared),m.clone(e._radiiToTheFourth,t._radiiToTheFourth),m.clone(e._oneOverRadii,t._oneOverRadii),m.clone(e._oneOverRadiiSquared,t._oneOverRadiiSquared),t._minimumRadius=e._minimumRadius,t._maximumRadius=e._maximumRadius,t._centerToleranceSquared=e._centerToleranceSquared,t):new qi(n.x,n.y,n.z)};qi.fromCartesian3=function(e,t){return l(t)||(t=new qi),l(e)&&kX(t,e.x,e.y,e.z),t};qi.WGS84=Object.freeze(new qi(6378137,6378137,6356752314245179e-9));qi.UNIT_SPHERE=Object.freeze(new qi(1,1,1));qi.MOON=Object.freeze(new qi(P.LUNAR_RADIUS,P.LUNAR_RADIUS,P.LUNAR_RADIUS));qi.prototype.clone=function(e){return qi.clone(this,e)};qi.packedLength=m.packedLength;qi.pack=function(e,t,n){return n=y(n,0),m.pack(e._radii,t,n),t};qi.unpack=function(e,t,n){t=y(t,0);let i=m.unpack(e,t);return qi.fromCartesian3(i,n)};qi.prototype.geocentricSurfaceNormal=m.normalize;qi.prototype.geodeticSurfaceNormalCartographic=function(e,t){let n=e.longitude,i=e.latitude,o=Math.cos(i),r=o*Math.cos(n),s=o*Math.sin(n),a=Math.sin(i);return l(t)||(t=new m),t.x=r,t.y=s,t.z=a,m.normalize(t,t)};qi.prototype.geodeticSurfaceNormal=function(e,t){if(!m.equalsEpsilon(e,m.ZERO,P.EPSILON14))return l(t)||(t=new m),t=m.multiplyComponents(e,this._oneOverRadiiSquared,t),m.normalize(t,t)};var ECe=new m,bCe=new m;qi.prototype.cartographicToCartesian=function(e,t){let n=ECe,i=bCe;this.geodeticSurfaceNormalCartographic(e,n),m.multiplyComponents(this._radiiSquared,n,i);let o=Math.sqrt(m.dot(n,i));return m.divideByScalar(i,o,i),m.multiplyByScalar(n,e.height,n),l(t)||(t=new m),m.add(i,n,t)};qi.prototype.cartographicArrayToCartesianArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;i++)t[i]=this.cartographicToCartesian(e[i],t[i]);return t};var SCe=new m,wCe=new m,vCe=new m;qi.prototype.cartesianToCartographic=function(e,t){let n=this.scaleToGeodeticSurface(e,wCe);if(!l(n))return;let i=this.geodeticSurfaceNormal(n,SCe),o=m.subtract(e,n,vCe),r=Math.atan2(i.y,i.x),s=Math.asin(i.z),a=P.sign(m.dot(o,e))*m.magnitude(o);return l(t)?(t.longitude=r,t.latitude=s,t.height=a,t):new he(r,s,a)};qi.prototype.cartesianArrayToCartographicArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;++i)t[i]=this.cartesianToCartographic(e[i],t[i]);return t};qi.prototype.scaleToGeodeticSurface=function(e,t){return Tx(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)};qi.prototype.scaleToGeocentricSurface=function(e,t){l(t)||(t=new m);let n=e.x,i=e.y,o=e.z,r=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*r.x+i*i*r.y+o*o*r.z);return m.multiplyByScalar(e,s,t)};qi.prototype.transformPositionToScaledSpace=function(e,t){return l(t)||(t=new m),m.multiplyComponents(e,this._oneOverRadii,t)};qi.prototype.transformPositionFromScaledSpace=function(e,t){return l(t)||(t=new m),m.multiplyComponents(e,this._radii,t)};qi.prototype.equals=function(e){return this===e||l(e)&&m.equals(this._radii,e._radii)};qi.prototype.toString=function(){return this._radii.toString()};qi.prototype.getSurfaceNormalIntersectionWithZAxis=function(e,t,n){t=y(t,0);let i=this._squaredXOverSquaredZ;if(l(n)||(n=new m),n.x=0,n.y=0,n.z=e.z*(1-i),!(Math.abs(n.z)>=this._radii.z-t))return n};var DCe=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],ICe=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function VX(e,t,n){let i=.5*(t+e),o=.5*(t-e),r=0;for(let s=0;s<5;s++){let a=o*DCe[s];r+=ICe[s]*(n(i+a)+n(i-a))}return r*=o,r}qi.prototype.surfaceArea=function(e){let t=e.west,n=e.east,i=e.south,o=e.north;for(;n<t;)n+=P.TWO_PI;let r=this._radiiSquared,s=r.x,a=r.y,c=r.z,u=s*a;return VX(i,o,function(f){let d=Math.cos(f),p=Math.sin(f);return Math.cos(f)*VX(t,n,function(g){let h=Math.cos(g),A=Math.sin(g);return Math.sqrt(u*p*p+c*(a*h*h+s*A*A)*d*d)})})};var oe=qi;function cP(e){this._ellipsoid=y(e,oe.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(cP.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});cP.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=e.latitude*n,r=e.height;return l(t)?(t.x=i,t.y=o,t.z=r,t):new m(i,o,r)};cP.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=e.y*n,r=e.z;return l(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new he(i,o,r)};var Di=cP;var PCe={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},$t=Object.freeze(PCe);function Fn(e,t,n,i){this.west=y(e,0),this.south=y(t,0),this.east=y(n,0),this.north=y(i,0)}Object.defineProperties(Fn.prototype,{width:{get:function(){return Fn.computeWidth(this)}},height:{get:function(){return Fn.computeHeight(this)}}});Fn.packedLength=4;Fn.pack=function(e,t,n){return n=y(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t};Fn.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Fn),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n};Fn.computeWidth=function(e){let t=e.east,n=e.west;return t<n&&(t+=P.TWO_PI),t-n};Fn.computeHeight=function(e){return e.north-e.south};Fn.fromDegrees=function(e,t,n,i,o){return e=P.toRadians(y(e,0)),t=P.toRadians(y(t,0)),n=P.toRadians(y(n,0)),i=P.toRadians(y(i,0)),l(o)?(o.west=e,o.south=t,o.east=n,o.north=i,o):new Fn(e,t,n,i)};Fn.fromRadians=function(e,t,n,i,o){return l(o)?(o.west=y(e,0),o.south=y(t,0),o.east=y(n,0),o.north=y(i,0),o):new Fn(e,t,n,i)};Fn.fromCartographicArray=function(e,t){let n=Number.MAX_VALUE,i=-Number.MAX_VALUE,o=Number.MAX_VALUE,r=-Number.MAX_VALUE,s=Number.MAX_VALUE,a=-Number.MAX_VALUE;for(let c=0,u=e.length;c<u;c++){let f=e[c];n=Math.min(n,f.longitude),i=Math.max(i,f.longitude),s=Math.min(s,f.latitude),a=Math.max(a,f.latitude);let d=f.longitude>=0?f.longitude:f.longitude+P.TWO_PI;o=Math.min(o,d),r=Math.max(r,d)}return i-n>r-o&&(n=o,i=r,i>P.PI&&(i=i-P.TWO_PI),n>P.PI&&(n=n-P.TWO_PI)),l(t)?(t.west=n,t.south=s,t.east=i,t.north=a,t):new Fn(n,s,i,a)};Fn.fromCartesianArray=function(e,t,n){t=y(t,oe.WGS84);let i=Number.MAX_VALUE,o=-Number.MAX_VALUE,r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=Number.MAX_VALUE,c=-Number.MAX_VALUE;for(let u=0,f=e.length;u<f;u++){let d=t.cartesianToCartographic(e[u]);i=Math.min(i,d.longitude),o=Math.max(o,d.longitude),a=Math.min(a,d.latitude),c=Math.max(c,d.latitude);let p=d.longitude>=0?d.longitude:d.longitude+P.TWO_PI;r=Math.min(r,p),s=Math.max(s,p)}return o-i>s-r&&(i=r,o=s,o>P.PI&&(o=o-P.TWO_PI),i>P.PI&&(i=i-P.TWO_PI)),l(n)?(n.west=i,n.south=a,n.east=o,n.north=c,n):new Fn(i,a,o,c)};Fn.clone=function(e,t){if(l(e))return l(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new Fn(e.west,e.south,e.east,e.north)};Fn.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n};Fn.prototype.clone=function(e){return Fn.clone(this,e)};Fn.prototype.equals=function(e){return Fn.equals(this,e)};Fn.equals=function(e,t){return e===t||l(e)&&l(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north};Fn.prototype.equalsEpsilon=function(e,t){return Fn.equalsEpsilon(this,e,t)};Fn.validate=function(e){};Fn.southwest=function(e,t){return l(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new he(e.west,e.south)};Fn.northwest=function(e,t){return l(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new he(e.west,e.north)};Fn.northeast=function(e,t){return l(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new he(e.east,e.north)};Fn.southeast=function(e,t){return l(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new he(e.east,e.south)};Fn.center=function(e,t){let n=e.east,i=e.west;n<i&&(n+=P.TWO_PI);let o=P.negativePiToPi((i+n)*.5),r=(e.south+e.north)*.5;return l(t)?(t.longitude=o,t.latitude=r,t.height=0,t):new he(o,r)};Fn.intersection=function(e,t,n){let i=e.east,o=e.west,r=t.east,s=t.west;i<o&&r>0?i+=P.TWO_PI:r<s&&i>0&&(r+=P.TWO_PI),i<o&&s<0?s+=P.TWO_PI:r<s&&o<0&&(o+=P.TWO_PI);let a=P.negativePiToPi(Math.max(o,s)),c=P.negativePiToPi(Math.min(i,r));if((e.west<e.east||t.west<t.east)&&c<=a)return;let u=Math.max(e.south,t.south),f=Math.min(e.north,t.north);if(!(u>=f))return l(n)?(n.west=a,n.south=u,n.east=c,n.north=f,n):new Fn(a,u,c,f)};Fn.simpleIntersection=function(e,t,n){let i=Math.max(e.west,t.west),o=Math.max(e.south,t.south),r=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(o>=s||i>=r))return l(n)?(n.west=i,n.south=o,n.east=r,n.north=s,n):new Fn(i,o,r,s)};Fn.union=function(e,t,n){l(n)||(n=new Fn);let i=e.east,o=e.west,r=t.east,s=t.west;i<o&&r>0?i+=P.TWO_PI:r<s&&i>0&&(r+=P.TWO_PI),i<o&&s<0?s+=P.TWO_PI:r<s&&o<0&&(o+=P.TWO_PI);let a=P.negativePiToPi(Math.min(o,s)),c=P.negativePiToPi(Math.max(i,r));return n.west=a,n.south=Math.min(e.south,t.south),n.east=c,n.north=Math.max(e.north,t.north),n};Fn.expand=function(e,t,n){return l(n)||(n=new Fn),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n};Fn.contains=function(e,t){let n=t.longitude,i=t.latitude,o=e.west,r=e.east;return r<o&&(r+=P.TWO_PI,n<0&&(n+=P.TWO_PI)),(n>o||P.equalsEpsilon(n,o,P.EPSILON14))&&(n<r||P.equalsEpsilon(n,r,P.EPSILON14))&&i>=e.south&&i<=e.north};var OCe=new he;Fn.subsample=function(e,t,n,i){t=y(t,oe.WGS84),n=y(n,0),l(i)||(i=[]);let o=0,r=e.north,s=e.south,a=e.east,c=e.west,u=OCe;u.height=n,u.longitude=c,u.latitude=r,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=a,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.latitude=s,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=c,i[o]=t.cartographicToCartesian(u,i[o]),o++,r<0?u.latitude=r:s>0?u.latitude=s:u.latitude=0;for(let f=1;f<8;++f)u.longitude=-Math.PI+f*P.PI_OVER_TWO,Fn.contains(e,u)&&(i[o]=t.cartographicToCartesian(u,i[o]),o++);return u.latitude===0&&(u.longitude=c,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=a,i[o]=t.cartographicToCartesian(u,i[o]),o++),i.length=o,i};Fn.subsection=function(e,t,n,i,o,r){if(l(r)||(r=new Fn),e.west<=e.east){let a=e.east-e.west;r.west=e.west+t*a,r.east=e.west+i*a}else{let a=P.TWO_PI+e.east-e.west;r.west=P.negativePiToPi(e.west+t*a),r.east=P.negativePiToPi(e.west+i*a)}let s=e.north-e.south;return r.south=e.south+n*s,r.north=e.south+o*s,t===1&&(r.west=e.east),i===1&&(r.east=e.east),n===1&&(r.south=e.north),o===1&&(r.north=e.north),r};Fn.MAX_VALUE=Object.freeze(new Fn(-Math.PI,-P.PI_OVER_TWO,Math.PI,P.PI_OVER_TWO));var le=Fn;function gr(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.width=y(n,0),this.height=y(i,0)}gr.packedLength=4;gr.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.width,t[n]=e.height,t};gr.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new gr),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n};gr.fromPoints=function(e,t){if(l(t)||(t=new gr),!l(e)||e.length===0)return t.x=0,t.y=0,t.width=0,t.height=0,t;let n=e.length,i=e[0].x,o=e[0].y,r=e[0].x,s=e[0].y;for(let a=1;a<n;a++){let c=e[a],u=c.x,f=c.y;i=Math.min(u,i),r=Math.max(u,r),o=Math.min(f,o),s=Math.max(f,s)}return t.x=i,t.y=o,t.width=r-i,t.height=s-o,t};var MCe=new Di,RCe=new he,BCe=new he;gr.fromRectangle=function(e,t,n){if(l(n)||(n=new gr),!l(e))return n.x=0,n.y=0,n.width=0,n.height=0,n;t=y(t,MCe);let i=t.project(le.southwest(e,RCe)),o=t.project(le.northeast(e,BCe));return H.subtract(o,i,o),n.x=i.x,n.y=i.y,n.width=o.x,n.height=o.y,n};gr.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new gr(e.x,e.y,e.width,e.height)};gr.union=function(e,t,n){l(n)||(n=new gr);let i=Math.min(e.x,t.x),o=Math.min(e.y,t.y),r=Math.max(e.x+e.width,t.x+t.width),s=Math.max(e.y+e.height,t.y+t.height);return n.x=i,n.y=o,n.width=r-i,n.height=s-o,n};gr.expand=function(e,t,n){n=gr.clone(e,n);let i=t.x-n.x,o=t.y-n.y;return i>n.width?n.width=i:i<0&&(n.width-=i,n.x=t.x),o>n.height?n.height=o:o<0&&(n.height-=o,n.y=t.y),n};gr.intersect=function(e,t){let n=e.x,i=e.y,o=t.x,r=t.y;return n>o+t.width||n+e.width<o||i+e.height<r||i>r+t.height?$t.OUTSIDE:$t.INTERSECTING};gr.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height};gr.prototype.clone=function(e){return gr.clone(this,e)};gr.prototype.intersect=function(e){return gr.intersect(this,e)};gr.prototype.equals=function(e){return gr.equals(this,e)};var Ke=gr;var na={POINTS:te.POINTS,LINES:te.LINES,LINE_LOOP:te.LINE_LOOP,LINE_STRIP:te.LINE_STRIP,TRIANGLES:te.TRIANGLES,TRIANGLE_STRIP:te.TRIANGLE_STRIP,TRIANGLE_FAN:te.TRIANGLE_FAN};na.isLines=function(e){return e===na.LINES||e===na.LINE_LOOP||e===na.LINE_STRIP};na.isTriangles=function(e){return e===na.TRIANGLES||e===na.TRIANGLE_STRIP||e===na.TRIANGLE_FAN};na.validate=function(e){return e===na.POINTS||e===na.LINES||e===na.LINE_LOOP||e===na.LINE_STRIP||e===na.TRIANGLES||e===na.TRIANGLE_STRIP||e===na.TRIANGLE_FAN};var Le=Object.freeze(na);var Ex=`in vec4 position; +in vec2 textureCoordinates; + +out vec2 v_textureCoordinates; + +void main() +{ + gl_Position = position; + v_textureCoordinates = textureCoordinates; +} +`;var cr={CULL:1,OCCLUDE:2,EXECUTE_IN_CLOSEST_FRUSTUM:4,DEBUG_SHOW_BOUNDING_VOLUME:8,CAST_SHADOWS:16,RECEIVE_SHADOWS:32,PICK_ONLY:64,DEPTH_FOR_TRANSLUCENT_CLASSIFICATION:128};function Hb(e){e=y(e,y.EMPTY_OBJECT),this._boundingVolume=e.boundingVolume,this._orientedBoundingBox=e.orientedBoundingBox,this._modelMatrix=e.modelMatrix,this._primitiveType=y(e.primitiveType,Le.TRIANGLES),this._vertexArray=e.vertexArray,this._count=e.count,this._offset=y(e.offset,0),this._instanceCount=y(e.instanceCount,0),this._shaderProgram=e.shaderProgram,this._uniformMap=e.uniformMap,this._renderState=e.renderState,this._framebuffer=e.framebuffer,this._pass=e.pass,this._owner=e.owner,this._debugOverlappingFrustums=0,this._pickId=e.pickId,this._flags=0,this.cull=y(e.cull,!0),this.occlude=y(e.occlude,!0),this.executeInClosestFrustum=y(e.executeInClosestFrustum,!1),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.castShadows=y(e.castShadows,!1),this.receiveShadows=y(e.receiveShadows,!1),this.pickOnly=y(e.pickOnly,!1),this.depthForTranslucentClassification=y(e.depthForTranslucentClassification,!1),this.dirty=!0,this.lastDirtyTime=0,this.derivedCommands={}}function Sa(e,t){return(e._flags&t)===t}function n_(e,t,n){n?e._flags|=t:e._flags&=~t}Object.defineProperties(Hb.prototype,{boundingVolume:{get:function(){return this._boundingVolume},set:function(e){this._boundingVolume!==e&&(this._boundingVolume=e,this.dirty=!0)}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox},set:function(e){this._orientedBoundingBox!==e&&(this._orientedBoundingBox=e,this.dirty=!0)}},cull:{get:function(){return Sa(this,cr.CULL)},set:function(e){Sa(this,cr.CULL)!==e&&(n_(this,cr.CULL,e),this.dirty=!0)}},occlude:{get:function(){return Sa(this,cr.OCCLUDE)},set:function(e){Sa(this,cr.OCCLUDE)!==e&&(n_(this,cr.OCCLUDE,e),this.dirty=!0)}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix!==e&&(this._modelMatrix=e,this.dirty=!0)}},primitiveType:{get:function(){return this._primitiveType},set:function(e){this._primitiveType!==e&&(this._primitiveType=e,this.dirty=!0)}},vertexArray:{get:function(){return this._vertexArray},set:function(e){this._vertexArray!==e&&(this._vertexArray=e,this.dirty=!0)}},count:{get:function(){return this._count},set:function(e){this._count!==e&&(this._count=e,this.dirty=!0)}},offset:{get:function(){return this._offset},set:function(e){this._offset!==e&&(this._offset=e,this.dirty=!0)}},instanceCount:{get:function(){return this._instanceCount},set:function(e){this._instanceCount!==e&&(this._instanceCount=e,this.dirty=!0)}},shaderProgram:{get:function(){return this._shaderProgram},set:function(e){this._shaderProgram!==e&&(this._shaderProgram=e,this.dirty=!0)}},castShadows:{get:function(){return Sa(this,cr.CAST_SHADOWS)},set:function(e){Sa(this,cr.CAST_SHADOWS)!==e&&(n_(this,cr.CAST_SHADOWS,e),this.dirty=!0)}},receiveShadows:{get:function(){return Sa(this,cr.RECEIVE_SHADOWS)},set:function(e){Sa(this,cr.RECEIVE_SHADOWS)!==e&&(n_(this,cr.RECEIVE_SHADOWS,e),this.dirty=!0)}},uniformMap:{get:function(){return this._uniformMap},set:function(e){this._uniformMap!==e&&(this._uniformMap=e,this.dirty=!0)}},renderState:{get:function(){return this._renderState},set:function(e){this._renderState!==e&&(this._renderState=e,this.dirty=!0)}},framebuffer:{get:function(){return this._framebuffer},set:function(e){this._framebuffer!==e&&(this._framebuffer=e,this.dirty=!0)}},pass:{get:function(){return this._pass},set:function(e){this._pass!==e&&(this._pass=e,this.dirty=!0)}},executeInClosestFrustum:{get:function(){return Sa(this,cr.EXECUTE_IN_CLOSEST_FRUSTUM)},set:function(e){Sa(this,cr.EXECUTE_IN_CLOSEST_FRUSTUM)!==e&&(n_(this,cr.EXECUTE_IN_CLOSEST_FRUSTUM,e),this.dirty=!0)}},owner:{get:function(){return this._owner},set:function(e){this._owner!==e&&(this._owner=e,this.dirty=!0)}},debugShowBoundingVolume:{get:function(){return Sa(this,cr.DEBUG_SHOW_BOUNDING_VOLUME)},set:function(e){Sa(this,cr.DEBUG_SHOW_BOUNDING_VOLUME)!==e&&(n_(this,cr.DEBUG_SHOW_BOUNDING_VOLUME,e),this.dirty=!0)}},debugOverlappingFrustums:{get:function(){return this._debugOverlappingFrustums},set:function(e){this._debugOverlappingFrustums!==e&&(this._debugOverlappingFrustums=e,this.dirty=!0)}},pickId:{get:function(){return this._pickId},set:function(e){this._pickId!==e&&(this._pickId=e,this.dirty=!0)}},pickOnly:{get:function(){return Sa(this,cr.PICK_ONLY)},set:function(e){Sa(this,cr.PICK_ONLY)!==e&&(n_(this,cr.PICK_ONLY,e),this.dirty=!0)}},depthForTranslucentClassification:{get:function(){return Sa(this,cr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)},set:function(e){Sa(this,cr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)!==e&&(n_(this,cr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION,e),this.dirty=!0)}}});Hb.shallowClone=function(e,t){if(l(e))return l(t)||(t=new Hb),t._boundingVolume=e._boundingVolume,t._orientedBoundingBox=e._orientedBoundingBox,t._modelMatrix=e._modelMatrix,t._primitiveType=e._primitiveType,t._vertexArray=e._vertexArray,t._count=e._count,t._offset=e._offset,t._instanceCount=e._instanceCount,t._shaderProgram=e._shaderProgram,t._uniformMap=e._uniformMap,t._renderState=e._renderState,t._framebuffer=e._framebuffer,t._pass=e._pass,t._owner=e._owner,t._debugOverlappingFrustums=e._debugOverlappingFrustums,t._pickId=e._pickId,t._flags=e._flags,t.dirty=!0,t.lastDirtyTime=0,t};Hb.prototype.execute=function(e,t){e.draw(this,t)};var it=Hb;var Ei={UNSIGNED_BYTE:te.UNSIGNED_BYTE,UNSIGNED_SHORT:te.UNSIGNED_SHORT,UNSIGNED_INT:te.UNSIGNED_INT,FLOAT:te.FLOAT,HALF_FLOAT:te.HALF_FLOAT_OES,UNSIGNED_INT_24_8:te.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:te.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:te.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:te.UNSIGNED_SHORT_5_6_5};Ei.toWebGLConstant=function(e,t){switch(e){case Ei.UNSIGNED_BYTE:return te.UNSIGNED_BYTE;case Ei.UNSIGNED_SHORT:return te.UNSIGNED_SHORT;case Ei.UNSIGNED_INT:return te.UNSIGNED_INT;case Ei.FLOAT:return te.FLOAT;case Ei.HALF_FLOAT:return t.webgl2?te.HALF_FLOAT:te.HALF_FLOAT_OES;case Ei.UNSIGNED_INT_24_8:return te.UNSIGNED_INT_24_8;case Ei.UNSIGNED_SHORT_4_4_4_4:return te.UNSIGNED_SHORT_4_4_4_4;case Ei.UNSIGNED_SHORT_5_5_5_1:return te.UNSIGNED_SHORT_5_5_5_1;case Ei.UNSIGNED_SHORT_5_6_5:return Ei.UNSIGNED_SHORT_5_6_5}};Ei.isPacked=function(e){return e===Ei.UNSIGNED_INT_24_8||e===Ei.UNSIGNED_SHORT_4_4_4_4||e===Ei.UNSIGNED_SHORT_5_5_5_1||e===Ei.UNSIGNED_SHORT_5_6_5};Ei.sizeInBytes=function(e){switch(e){case Ei.UNSIGNED_BYTE:return 1;case Ei.UNSIGNED_SHORT:case Ei.UNSIGNED_SHORT_4_4_4_4:case Ei.UNSIGNED_SHORT_5_5_5_1:case Ei.UNSIGNED_SHORT_5_6_5:case Ei.HALF_FLOAT:return 2;case Ei.UNSIGNED_INT:case Ei.FLOAT:case Ei.UNSIGNED_INT_24_8:return 4}};Ei.validate=function(e){return e===Ei.UNSIGNED_BYTE||e===Ei.UNSIGNED_SHORT||e===Ei.UNSIGNED_INT||e===Ei.FLOAT||e===Ei.HALF_FLOAT||e===Ei.UNSIGNED_INT_24_8||e===Ei.UNSIGNED_SHORT_4_4_4_4||e===Ei.UNSIGNED_SHORT_5_5_5_1||e===Ei.UNSIGNED_SHORT_5_6_5};var Je=Object.freeze(Ei);var at={DEPTH_COMPONENT:te.DEPTH_COMPONENT,DEPTH_STENCIL:te.DEPTH_STENCIL,ALPHA:te.ALPHA,RED:te.RED,RG:te.RG,RGB:te.RGB,RGBA:te.RGBA,LUMINANCE:te.LUMINANCE,LUMINANCE_ALPHA:te.LUMINANCE_ALPHA,RGB_DXT1:te.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:te.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:te.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:te.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:te.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:te.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:te.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:te.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:te.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:te.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:te.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:te.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:te.COMPRESSED_RGBA_BPTC_UNORM};at.componentsLength=function(e){switch(e){case at.RGB:return 3;case at.RGBA:return 4;case at.LUMINANCE_ALPHA:case at.RG:return 2;case at.ALPHA:case at.RED:case at.LUMINANCE:return 1;default:return 1}};at.validate=function(e){return e===at.DEPTH_COMPONENT||e===at.DEPTH_STENCIL||e===at.ALPHA||e===at.RED||e===at.RG||e===at.RGB||e===at.RGBA||e===at.LUMINANCE||e===at.LUMINANCE_ALPHA||e===at.RGB_DXT1||e===at.RGBA_DXT1||e===at.RGBA_DXT3||e===at.RGBA_DXT5||e===at.RGB_PVRTC_4BPPV1||e===at.RGB_PVRTC_2BPPV1||e===at.RGBA_PVRTC_4BPPV1||e===at.RGBA_PVRTC_2BPPV1||e===at.RGBA_ASTC||e===at.RGB_ETC1||e===at.RGB8_ETC2||e===at.RGBA8_ETC2_EAC||e===at.RGBA_BC7};at.isColorFormat=function(e){return e===at.ALPHA||e===at.RGB||e===at.RGBA||e===at.LUMINANCE||e===at.LUMINANCE_ALPHA};at.isDepthFormat=function(e){return e===at.DEPTH_COMPONENT||e===at.DEPTH_STENCIL};at.isCompressedFormat=function(e){return e===at.RGB_DXT1||e===at.RGBA_DXT1||e===at.RGBA_DXT3||e===at.RGBA_DXT5||e===at.RGB_PVRTC_4BPPV1||e===at.RGB_PVRTC_2BPPV1||e===at.RGBA_PVRTC_4BPPV1||e===at.RGBA_PVRTC_2BPPV1||e===at.RGBA_ASTC||e===at.RGB_ETC1||e===at.RGB8_ETC2||e===at.RGBA8_ETC2_EAC||e===at.RGBA_BC7};at.isDXTFormat=function(e){return e===at.RGB_DXT1||e===at.RGBA_DXT1||e===at.RGBA_DXT3||e===at.RGBA_DXT5};at.isPVRTCFormat=function(e){return e===at.RGB_PVRTC_4BPPV1||e===at.RGB_PVRTC_2BPPV1||e===at.RGBA_PVRTC_4BPPV1||e===at.RGBA_PVRTC_2BPPV1};at.isASTCFormat=function(e){return e===at.RGBA_ASTC};at.isETC1Format=function(e){return e===at.RGB_ETC1};at.isETC2Format=function(e){return e===at.RGB8_ETC2||e===at.RGBA8_ETC2_EAC};at.isBC7Format=function(e){return e===at.RGBA_BC7};at.compressedTextureSizeInBytes=function(e,t,n){switch(e){case at.RGB_DXT1:case at.RGBA_DXT1:case at.RGB_ETC1:case at.RGB8_ETC2:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*8;case at.RGBA_DXT3:case at.RGBA_DXT5:case at.RGBA_ASTC:case at.RGBA8_ETC2_EAC:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*16;case at.RGB_PVRTC_4BPPV1:case at.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(n,8)*4+7)/8);case at.RGB_PVRTC_2BPPV1:case at.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(n,8)*2+7)/8);case at.RGBA_BC7:return Math.ceil(t/4)*Math.ceil(n/4)*16;default:return 0}};at.textureSizeInBytes=function(e,t,n,i){let o=at.componentsLength(e);return Je.isPacked(t)&&(o=1),o*Je.sizeInBytes(t)*n*i};at.alignmentInBytes=function(e,t,n){let i=at.textureSizeInBytes(e,t,n,1)%4;return i===0?4:i===2?2:1};at.createTypedArray=function(e,t,n,i){let o,r=Je.sizeInBytes(t);r===Uint8Array.BYTES_PER_ELEMENT?o=Uint8Array:r===Uint16Array.BYTES_PER_ELEMENT?o=Uint16Array:r===Float32Array.BYTES_PER_ELEMENT&&t===Je.FLOAT?o=Float32Array:o=Uint32Array;let s=at.componentsLength(e)*n*i;return new o(s)};at.flipY=function(e,t,n,i,o){if(o===1)return e;let r=at.createTypedArray(t,n,i,o),s=at.componentsLength(t),a=i*s;for(let c=0;c<o;++c){let u=c*i*s,f=(o-c-1)*i*s;for(let d=0;d<a;++d)r[f+d]=e[u+d]}return r};at.toInternalFormat=function(e,t,n){if(!n.webgl2)return e;if(e===at.DEPTH_STENCIL)return te.DEPTH24_STENCIL8;if(e===at.DEPTH_COMPONENT){if(t===Je.UNSIGNED_SHORT)return te.DEPTH_COMPONENT16;if(t===Je.UNSIGNED_INT)return te.DEPTH_COMPONENT24}if(t===Je.FLOAT)switch(e){case at.RGBA:return te.RGBA32F;case at.RGB:return te.RGB32F;case at.RG:return te.RG32F;case at.RED:return te.R32F}if(t===Je.HALF_FLOAT)switch(e){case at.RGBA:return te.RGBA16F;case at.RGB:return te.RGB16F;case at.RG:return te.RG16F;case at.RED:return te.R16F}return e};var lt=Object.freeze(at);var lr={_maximumCombinedTextureImageUnits:0,_maximumCubeMapSize:0,_maximumFragmentUniformVectors:0,_maximumTextureImageUnits:0,_maximumRenderbufferSize:0,_maximumTextureSize:0,_maximumVaryingVectors:0,_maximumVertexAttributes:0,_maximumVertexTextureImageUnits:0,_maximumVertexUniformVectors:0,_minimumAliasedLineWidth:0,_maximumAliasedLineWidth:0,_minimumAliasedPointSize:0,_maximumAliasedPointSize:0,_maximumViewportWidth:0,_maximumViewportHeight:0,_maximumTextureFilterAnisotropy:0,_maximumDrawBuffers:0,_maximumColorAttachments:0,_maximumSamples:0,_highpFloatSupported:!1,_highpIntSupported:!1};Object.defineProperties(lr,{maximumCombinedTextureImageUnits:{get:function(){return lr._maximumCombinedTextureImageUnits}},maximumCubeMapSize:{get:function(){return lr._maximumCubeMapSize}},maximumFragmentUniformVectors:{get:function(){return lr._maximumFragmentUniformVectors}},maximumTextureImageUnits:{get:function(){return lr._maximumTextureImageUnits}},maximumRenderbufferSize:{get:function(){return lr._maximumRenderbufferSize}},maximumTextureSize:{get:function(){return lr._maximumTextureSize}},maximumVaryingVectors:{get:function(){return lr._maximumVaryingVectors}},maximumVertexAttributes:{get:function(){return lr._maximumVertexAttributes}},maximumVertexTextureImageUnits:{get:function(){return lr._maximumVertexTextureImageUnits}},maximumVertexUniformVectors:{get:function(){return lr._maximumVertexUniformVectors}},minimumAliasedLineWidth:{get:function(){return lr._minimumAliasedLineWidth}},maximumAliasedLineWidth:{get:function(){return lr._maximumAliasedLineWidth}},minimumAliasedPointSize:{get:function(){return lr._minimumAliasedPointSize}},maximumAliasedPointSize:{get:function(){return lr._maximumAliasedPointSize}},maximumViewportWidth:{get:function(){return lr._maximumViewportWidth}},maximumViewportHeight:{get:function(){return lr._maximumViewportHeight}},maximumTextureFilterAnisotropy:{get:function(){return lr._maximumTextureFilterAnisotropy}},maximumDrawBuffers:{get:function(){return lr._maximumDrawBuffers}},maximumColorAttachments:{get:function(){return lr._maximumColorAttachments}},maximumSamples:{get:function(){return lr._maximumSamples}},highpFloatSupported:{get:function(){return lr._highpFloatSupported}},highpIntSupported:{get:function(){return lr._highpIntSupported}}});var zt=lr;function eG(e,t,n){let i=e._gl;i.framebufferTexture2D(i.FRAMEBUFFER,t,n._target,n._texture,0)}function lP(e,t,n){let i=e._gl;i.framebufferRenderbuffer(i.FRAMEBUFFER,t,i.RENDERBUFFER,n._getRenderbuffer())}function Of(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=zt.maximumColorAttachments;this._gl=n,this._framebuffer=n.createFramebuffer(),this._colorTextures=[],this._colorRenderbuffers=[],this._activeColorAttachments=[],this._depthTexture=void 0,this._depthRenderbuffer=void 0,this._stencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this.destroyAttachments=y(e.destroyAttachments,!0);let o=l(e.depthTexture)||l(e.depthRenderbuffer),r=l(e.depthStencilTexture)||l(e.depthStencilRenderbuffer);this._bind();let s,a,c,u,f;if(l(e.colorTextures)){let d=e.colorTextures;for(u=this._colorTextures.length=this._activeColorAttachments.length=d.length,c=0;c<u;++c)s=d[c],f=this._gl.COLOR_ATTACHMENT0+c,eG(this,f,s),this._activeColorAttachments[c]=f,this._colorTextures[c]=s}if(l(e.colorRenderbuffers)){let d=e.colorRenderbuffers;for(u=this._colorRenderbuffers.length=this._activeColorAttachments.length=d.length,c=0;c<u;++c)a=d[c],f=this._gl.COLOR_ATTACHMENT0+c,lP(this,f,a),this._activeColorAttachments[c]=f,this._colorRenderbuffers[c]=a}l(e.depthTexture)&&(s=e.depthTexture,eG(this,this._gl.DEPTH_ATTACHMENT,s),this._depthTexture=s),l(e.depthRenderbuffer)&&(a=e.depthRenderbuffer,lP(this,this._gl.DEPTH_ATTACHMENT,a),this._depthRenderbuffer=a),l(e.stencilRenderbuffer)&&(a=e.stencilRenderbuffer,lP(this,this._gl.STENCIL_ATTACHMENT,a),this._stencilRenderbuffer=a),l(e.depthStencilTexture)&&(s=e.depthStencilTexture,eG(this,this._gl.DEPTH_STENCIL_ATTACHMENT,s),this._depthStencilTexture=s),l(e.depthStencilRenderbuffer)&&(a=e.depthStencilRenderbuffer,lP(this,this._gl.DEPTH_STENCIL_ATTACHMENT,a),this._depthStencilRenderbuffer=a),this._unBind()}Object.defineProperties(Of.prototype,{status:{get:function(){this._bind();let e=this._gl.checkFramebufferStatus(this._gl.FRAMEBUFFER);return this._unBind(),e}},numberOfColorAttachments:{get:function(){return this._activeColorAttachments.length}},depthTexture:{get:function(){return this._depthTexture}},depthRenderbuffer:{get:function(){return this._depthRenderbuffer}},stencilRenderbuffer:{get:function(){return this._stencilRenderbuffer}},depthStencilTexture:{get:function(){return this._depthStencilTexture}},depthStencilRenderbuffer:{get:function(){return this._depthStencilRenderbuffer}},hasDepthAttachment:{get:function(){return!!(this.depthTexture||this.depthRenderbuffer||this.depthStencilTexture||this.depthStencilRenderbuffer)}}});Of.prototype._bind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,this._framebuffer)};Of.prototype._unBind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,null)};Of.prototype.bindDraw=function(){let e=this._gl;e.bindFramebuffer(e.DRAW_FRAMEBUFFER,this._framebuffer)};Of.prototype.bindRead=function(){let e=this._gl;e.bindFramebuffer(e.READ_FRAMEBUFFER,this._framebuffer)};Of.prototype._getActiveColorAttachments=function(){return this._activeColorAttachments};Of.prototype.getColorTexture=function(e){return this._colorTextures[e]};Of.prototype.getColorRenderbuffer=function(e){return this._colorRenderbuffers[e]};Of.prototype.isDestroyed=function(){return!1};Of.prototype.destroy=function(){if(this.destroyAttachments){let e=0,t=this._colorTextures,n=t.length;for(;e<n;++e){let o=t[e];l(o)&&o.destroy()}let i=this._colorRenderbuffers;for(n=i.length,e=0;e<n;++e){let o=i[e];l(o)&&o.destroy()}this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy(),this._stencilRenderbuffer=this._stencilRenderbuffer&&this._stencilRenderbuffer.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()}return this._gl.deleteFramebuffer(this._framebuffer),ue(this)};var ia=Of;var uP={CLOCKWISE:te.CW,COUNTER_CLOCKWISE:te.CCW};uP.validate=function(e){return e===uP.CLOCKWISE||e===uP.COUNTER_CLOCKWISE};var $r=Object.freeze(uP);function zX(e){if(typeof e!="object"||e===null)return e;let t,n=Object.keys(e);for(let i=0;i<n.length;i++)t=n[i],e.hasOwnProperty(t)&&t!=="_applyFunctions"&&(e[t]=zX(e[t]));return Object.freeze(e)}var HX=zX;function Xd(e){let t=y(e,y.EMPTY_OBJECT),n=y(t.cull,y.EMPTY_OBJECT),i=y(t.polygonOffset,y.EMPTY_OBJECT),o=y(t.scissorTest,y.EMPTY_OBJECT),r=y(o.rectangle,y.EMPTY_OBJECT),s=y(t.depthRange,y.EMPTY_OBJECT),a=y(t.depthTest,y.EMPTY_OBJECT),c=y(t.colorMask,y.EMPTY_OBJECT),u=y(t.blending,y.EMPTY_OBJECT),f=y(u.color,y.EMPTY_OBJECT),d=y(t.stencilTest,y.EMPTY_OBJECT),p=y(d.frontOperation,y.EMPTY_OBJECT),g=y(d.backOperation,y.EMPTY_OBJECT),h=y(t.sampleCoverage,y.EMPTY_OBJECT),A=t.viewport;this.frontFace=y(t.frontFace,$r.COUNTER_CLOCKWISE),this.cull={enabled:y(n.enabled,!1),face:y(n.face,te.BACK)},this.lineWidth=y(t.lineWidth,1),this.polygonOffset={enabled:y(i.enabled,!1),factor:y(i.factor,0),units:y(i.units,0)},this.scissorTest={enabled:y(o.enabled,!1),rectangle:Ke.clone(r)},this.depthRange={near:y(s.near,0),far:y(s.far,1)},this.depthTest={enabled:y(a.enabled,!1),func:y(a.func,te.LESS)},this.colorMask={red:y(c.red,!0),green:y(c.green,!0),blue:y(c.blue,!0),alpha:y(c.alpha,!0)},this.depthMask=y(t.depthMask,!0),this.stencilMask=y(t.stencilMask,-1),this.blending={enabled:y(u.enabled,!1),color:new z(y(f.red,0),y(f.green,0),y(f.blue,0),y(f.alpha,0)),equationRgb:y(u.equationRgb,te.FUNC_ADD),equationAlpha:y(u.equationAlpha,te.FUNC_ADD),functionSourceRgb:y(u.functionSourceRgb,te.ONE),functionSourceAlpha:y(u.functionSourceAlpha,te.ONE),functionDestinationRgb:y(u.functionDestinationRgb,te.ZERO),functionDestinationAlpha:y(u.functionDestinationAlpha,te.ZERO)},this.stencilTest={enabled:y(d.enabled,!1),frontFunction:y(d.frontFunction,te.ALWAYS),backFunction:y(d.backFunction,te.ALWAYS),reference:y(d.reference,0),mask:y(d.mask,-1),frontOperation:{fail:y(p.fail,te.KEEP),zFail:y(p.zFail,te.KEEP),zPass:y(p.zPass,te.KEEP)},backOperation:{fail:y(g.fail,te.KEEP),zFail:y(g.zFail,te.KEEP),zPass:y(g.zPass,te.KEEP)}},this.sampleCoverage={enabled:y(h.enabled,!1),value:y(h.value,1),invert:y(h.invert,!1)},this.viewport=l(A)?new Ke(A.x,A.y,A.width,A.height):void 0,this.id=0,this._applyFunctions=[]}var LCe=0,qd={};Xd.fromCache=function(e){let t=JSON.stringify(e),n=qd[t];if(l(n))return++n.referenceCount,n.state;let i=new Xd(e),o=JSON.stringify(i);return n=qd[o],l(n)||(i.id=LCe++,n={referenceCount:0,state:i},qd[o]=n),++n.referenceCount,qd[t]={referenceCount:1,state:n.state},n.state};Xd.removeFromCache=function(e){let t=new Xd(e),n=JSON.stringify(t),i=qd[n],o=JSON.stringify(e),r=qd[o];l(r)&&(--r.referenceCount,r.referenceCount===0&&(delete qd[o],l(i)&&--i.referenceCount)),l(i)&&i.referenceCount===0&&delete qd[n]};Xd.getCache=function(){return qd};Xd.clearCache=function(){qd={}};function Hy(e,t,n){n?e.enable(t):e.disable(t)}function GX(e,t){e.frontFace(t.frontFace)}function WX(e,t){let n=t.cull,i=n.enabled;Hy(e,e.CULL_FACE,i),i&&e.cullFace(n.face)}function jX(e,t){e.lineWidth(t.lineWidth)}function YX(e,t){let n=t.polygonOffset,i=n.enabled;Hy(e,e.POLYGON_OFFSET_FILL,i),i&&e.polygonOffset(n.factor,n.units)}function qX(e,t,n){let i=t.scissorTest,o=l(n.scissorTest)?n.scissorTest.enabled:i.enabled;if(Hy(e,e.SCISSOR_TEST,o),o){let r=l(n.scissorTest)?n.scissorTest.rectangle:i.rectangle;e.scissor(r.x,r.y,r.width,r.height)}}function XX(e,t){let n=t.depthRange;e.depthRange(n.near,n.far)}function KX(e,t){let n=t.depthTest,i=n.enabled;Hy(e,e.DEPTH_TEST,i),i&&e.depthFunc(n.func)}function JX(e,t){let n=t.colorMask;e.colorMask(n.red,n.green,n.blue,n.alpha)}function ZX(e,t){e.depthMask(t.depthMask)}function QX(e,t){e.stencilMask(t.stencilMask)}function NCe(e,t){e.blendColor(t.red,t.green,t.blue,t.alpha)}function $X(e,t,n){let i=t.blending,o=l(n.blendingEnabled)?n.blendingEnabled:i.enabled;Hy(e,e.BLEND,o),o&&(NCe(e,i.color),e.blendEquationSeparate(i.equationRgb,i.equationAlpha),e.blendFuncSeparate(i.functionSourceRgb,i.functionDestinationRgb,i.functionSourceAlpha,i.functionDestinationAlpha))}function eK(e,t){let n=t.stencilTest,i=n.enabled;if(Hy(e,e.STENCIL_TEST,i),i){let o=n.frontFunction,r=n.backFunction,s=n.reference,a=n.mask;e.stencilFunc(o,s,a),e.stencilFuncSeparate(e.BACK,r,s,a),e.stencilFuncSeparate(e.FRONT,o,s,a);let c=n.frontOperation,u=c.fail,f=c.zFail,d=c.zPass;e.stencilOpSeparate(e.FRONT,u,f,d);let p=n.backOperation,g=p.fail,h=p.zFail,A=p.zPass;e.stencilOpSeparate(e.BACK,g,h,A)}}function tK(e,t){let n=t.sampleCoverage,i=n.enabled;Hy(e,e.SAMPLE_COVERAGE,i),i&&e.sampleCoverage(n.value,n.invert)}var FCe=new Ke;function nK(e,t,n){let i=y(t.viewport,n.viewport);l(i)||(i=FCe,i.width=n.context.drawingBufferWidth,i.height=n.context.drawingBufferHeight),n.context.uniformState.viewport=i,e.viewport(i.x,i.y,i.width,i.height)}Xd.apply=function(e,t,n){GX(e,t),WX(e,t),jX(e,t),YX(e,t),XX(e,t),KX(e,t),JX(e,t),ZX(e,t),QX(e,t),eK(e,t),tK(e,t),qX(e,t,n),$X(e,t,n),nK(e,t,n)};function UCe(e,t){let n=[];return e.frontFace!==t.frontFace&&n.push(GX),(e.cull.enabled!==t.cull.enabled||e.cull.face!==t.cull.face)&&n.push(WX),e.lineWidth!==t.lineWidth&&n.push(jX),(e.polygonOffset.enabled!==t.polygonOffset.enabled||e.polygonOffset.factor!==t.polygonOffset.factor||e.polygonOffset.units!==t.polygonOffset.units)&&n.push(YX),(e.depthRange.near!==t.depthRange.near||e.depthRange.far!==t.depthRange.far)&&n.push(XX),(e.depthTest.enabled!==t.depthTest.enabled||e.depthTest.func!==t.depthTest.func)&&n.push(KX),(e.colorMask.red!==t.colorMask.red||e.colorMask.green!==t.colorMask.green||e.colorMask.blue!==t.colorMask.blue||e.colorMask.alpha!==t.colorMask.alpha)&&n.push(JX),e.depthMask!==t.depthMask&&n.push(ZX),e.stencilMask!==t.stencilMask&&n.push(QX),(e.stencilTest.enabled!==t.stencilTest.enabled||e.stencilTest.frontFunction!==t.stencilTest.frontFunction||e.stencilTest.backFunction!==t.stencilTest.backFunction||e.stencilTest.reference!==t.stencilTest.reference||e.stencilTest.mask!==t.stencilTest.mask||e.stencilTest.frontOperation.fail!==t.stencilTest.frontOperation.fail||e.stencilTest.frontOperation.zFail!==t.stencilTest.frontOperation.zFail||e.stencilTest.backOperation.fail!==t.stencilTest.backOperation.fail||e.stencilTest.backOperation.zFail!==t.stencilTest.backOperation.zFail||e.stencilTest.backOperation.zPass!==t.stencilTest.backOperation.zPass)&&n.push(eK),(e.sampleCoverage.enabled!==t.sampleCoverage.enabled||e.sampleCoverage.value!==t.sampleCoverage.value||e.sampleCoverage.invert!==t.sampleCoverage.invert)&&n.push(tK),n}Xd.partialApply=function(e,t,n,i,o,r){if(t!==n){let f=n._applyFunctions[t.id];l(f)||(f=UCe(t,n),n._applyFunctions[t.id]=f);let d=f.length;for(let p=0;p<d;++p)f[p](e,n)}let s=l(i.scissorTest)?i.scissorTest:t.scissorTest,a=l(o.scissorTest)?o.scissorTest:n.scissorTest;(s!==a||r)&&qX(e,n,o);let c=l(i.blendingEnabled)?i.blendingEnabled:t.blending.enabled,u=l(o.blendingEnabled)?o.blendingEnabled:n.blending.enabled;(c!==u||u&&t.blending!==n.blending)&&$X(e,n,o),(t!==n||i!==o||i.context!==o.context)&&nK(e,n,o)};Xd.getState=function(e){return{frontFace:e.frontFace,cull:{enabled:e.cull.enabled,face:e.cull.face},lineWidth:e.lineWidth,polygonOffset:{enabled:e.polygonOffset.enabled,factor:e.polygonOffset.factor,units:e.polygonOffset.units},scissorTest:{enabled:e.scissorTest.enabled,rectangle:Ke.clone(e.scissorTest.rectangle)},depthRange:{near:e.depthRange.near,far:e.depthRange.far},depthTest:{enabled:e.depthTest.enabled,func:e.depthTest.func},colorMask:{red:e.colorMask.red,green:e.colorMask.green,blue:e.colorMask.blue,alpha:e.colorMask.alpha},depthMask:e.depthMask,stencilMask:e.stencilMask,blending:{enabled:e.blending.enabled,color:z.clone(e.blending.color),equationRgb:e.blending.equationRgb,equationAlpha:e.blending.equationAlpha,functionSourceRgb:e.blending.functionSourceRgb,functionSourceAlpha:e.blending.functionSourceAlpha,functionDestinationRgb:e.blending.functionDestinationRgb,functionDestinationAlpha:e.blending.functionDestinationAlpha},stencilTest:{enabled:e.stencilTest.enabled,frontFunction:e.stencilTest.frontFunction,backFunction:e.stencilTest.backFunction,reference:e.stencilTest.reference,mask:e.stencilTest.mask,frontOperation:{fail:e.stencilTest.frontOperation.fail,zFail:e.stencilTest.frontOperation.zFail,zPass:e.stencilTest.frontOperation.zPass},backOperation:{fail:e.stencilTest.backOperation.fail,zFail:e.stencilTest.backOperation.zFail,zPass:e.stencilTest.backOperation.zPass}},sampleCoverage:{enabled:e.sampleCoverage.enabled,value:e.sampleCoverage.value,invert:e.sampleCoverage.invert},viewport:l(e.viewport)?Ke.clone(e.viewport):void 0}};var ze=Xd;function qt(e,t,n,i){this[0]=y(e,0),this[1]=y(n,0),this[2]=y(t,0),this[3]=y(i,0)}qt.packedLength=4;qt.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t};qt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new qt),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n};qt.packArray=function(e,t){let n=e.length,i=n*4;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)qt.pack(e[o],t,o*4);return t};qt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=qt.unpack(e,i,t[o])}return t};qt.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new qt(e[0],e[2],e[1],e[3])};qt.fromArray=qt.unpack;qt.fromColumnMajorArray=function(e,t){return qt.clone(e,t)};qt.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new qt(e[0],e[1],e[2],e[3])};qt.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new qt(e.x,0,0,e.y)};qt.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new qt(e,0,0,e)};qt.fromRotation=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new qt(n,-i,i,n)};qt.toArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]};qt.getElementIndex=function(e,t){return e*2+t};qt.getColumn=function(e,t,n){let i=t*2,o=e[i],r=e[i+1];return n.x=o,n.y=r,n};qt.setColumn=function(e,t,n,i){i=qt.clone(e,i);let o=t*2;return i[o]=n.x,i[o+1]=n.y,i};qt.getRow=function(e,t,n){let i=e[t],o=e[t+2];return n.x=i,n.y=o,n};qt.setRow=function(e,t,n,i){return i=qt.clone(e,i),i[t]=n.x,i[t+2]=n.y,i};var VCe=new H;qt.setScale=function(e,t,n){let i=qt.getScale(e,VCe),o=t.x/i.x,r=t.y/i.y;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*r,n[3]=e[3]*r,n};var kCe=new H;qt.setUniformScale=function(e,t,n){let i=qt.getScale(e,kCe),o=t/i.x,r=t/i.y;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*r,n[3]=e[3]*r,n};var iK=new H;qt.getScale=function(e,t){return t.x=H.magnitude(H.fromElements(e[0],e[1],iK)),t.y=H.magnitude(H.fromElements(e[2],e[3],iK)),t};var oK=new H;qt.getMaximumScale=function(e){return qt.getScale(e,oK),H.maximumComponent(oK)};var zCe=new H;qt.setRotation=function(e,t,n){let i=qt.getScale(e,zCe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.y,n[3]=t[3]*i.y,n};var HCe=new H;qt.getRotation=function(e,t){let n=qt.getScale(e,HCe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.y,t[3]=e[3]/n.y,t};qt.multiply=function(e,t,n){let i=e[0]*t[0]+e[2]*t[1],o=e[0]*t[2]+e[2]*t[3],r=e[1]*t[0]+e[3]*t[1],s=e[1]*t[2]+e[3]*t[3];return n[0]=i,n[1]=r,n[2]=o,n[3]=s,n};qt.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n};qt.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n};qt.multiplyByVector=function(e,t,n){let i=e[0]*t.x+e[2]*t.y,o=e[1]*t.x+e[3]*t.y;return n.x=i,n.y=o,n};qt.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};qt.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n};qt.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};qt.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t};qt.transpose=function(e,t){let n=e[0],i=e[2],o=e[1],r=e[3];return t[0]=n,t[1]=i,t[2]=o,t[3]=r,t};qt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t};qt.equals=function(e,t){return e===t||l(e)&&l(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]};qt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]};qt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n};qt.IDENTITY=Object.freeze(new qt(1,0,0,1));qt.ZERO=Object.freeze(new qt(0,0,0,0));qt.COLUMN0ROW0=0;qt.COLUMN0ROW1=1;qt.COLUMN1ROW0=2;qt.COLUMN1ROW1=3;Object.defineProperties(qt.prototype,{length:{get:function(){return qt.packedLength}}});qt.prototype.clone=function(e){return qt.clone(this,e)};qt.prototype.equals=function(e){return qt.equals(this,e)};qt.prototype.equalsEpsilon=function(e,t){return qt.equalsEpsilon(this,e,t)};qt.prototype.toString=function(){return`(${this[0]}, ${this[2]}) +(${this[1]}, ${this[3]})`};var eo=qt;function GCe(e,t,n,i){switch(t.type){case e.FLOAT:return new rK(e,t,n,i);case e.FLOAT_VEC2:return new sK(e,t,n,i);case e.FLOAT_VEC3:return new aK(e,t,n,i);case e.FLOAT_VEC4:return new cK(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new tG(e,t,n,i);case e.INT:case e.BOOL:return new lK(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new uK(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new fK(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new dK(e,t,n,i);case e.FLOAT_MAT2:return new mK(e,t,n,i);case e.FLOAT_MAT3:return new hK(e,t,n,i);case e.FLOAT_MAT4:return new pK(e,t,n,i);default:throw new de(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function rK(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}rK.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1f(this._location,this.value))};function sK(e,t,n,i){this.name=n,this.value=void 0,this._value=new H,this._gl=e,this._location=i}sK.prototype.set=function(){let e=this.value;H.equals(e,this._value)||(H.clone(e,this._value),this._gl.uniform2f(this._location,e.x,e.y))};function aK(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}aK.prototype.set=function(){let e=this.value;l(e.red)?z.equals(e,this._value)||(this._value=z.clone(e,this._value),this._gl.uniform3f(this._location,e.red,e.green,e.blue)):l(e.x)&&(m.equals(e,this._value)||(this._value=m.clone(e,this._value),this._gl.uniform3f(this._location,e.x,e.y,e.z)))};function cK(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}cK.prototype.set=function(){let e=this.value;l(e.red)?z.equals(e,this._value)||(this._value=z.clone(e,this._value),this._gl.uniform4f(this._location,e.red,e.green,e.blue,e.alpha)):l(e.x)&&(re.equals(e,this._value)||(this._value=re.clone(e,this._value),this._gl.uniform4f(this._location,e.x,e.y,e.z,e.w)))};function tG(e,t,n,i){this.name=n,this.value=void 0,this._gl=e,this._location=i,this.textureUnitIndex=void 0}tG.prototype.set=function(){let e=this._gl;e.activeTexture(e.TEXTURE0+this.textureUnitIndex);let t=this.value;e.bindTexture(t._target,t._texture)};tG.prototype._setSampler=function(e){return this.textureUnitIndex=e,this._gl.uniform1i(this._location,e),e+1};function lK(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}lK.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1i(this._location,this.value))};function uK(e,t,n,i){this.name=n,this.value=void 0,this._value=new H,this._gl=e,this._location=i}uK.prototype.set=function(){let e=this.value;H.equals(e,this._value)||(H.clone(e,this._value),this._gl.uniform2i(this._location,e.x,e.y))};function fK(e,t,n,i){this.name=n,this.value=void 0,this._value=new m,this._gl=e,this._location=i}fK.prototype.set=function(){let e=this.value;m.equals(e,this._value)||(m.clone(e,this._value),this._gl.uniform3i(this._location,e.x,e.y,e.z))};function dK(e,t,n,i){this.name=n,this.value=void 0,this._value=new re,this._gl=e,this._location=i}dK.prototype.set=function(){let e=this.value;re.equals(e,this._value)||(re.clone(e,this._value),this._gl.uniform4i(this._location,e.x,e.y,e.z,e.w))};var WCe=new Float32Array(4);function mK(e,t,n,i){this.name=n,this.value=void 0,this._value=new eo,this._gl=e,this._location=i}mK.prototype.set=function(){if(!eo.equalsArray(this.value,this._value,0)){eo.clone(this.value,this._value);let e=eo.toArray(this.value,WCe);this._gl.uniformMatrix2fv(this._location,!1,e)}};var jCe=new Float32Array(9);function hK(e,t,n,i){this.name=n,this.value=void 0,this._value=new Z,this._gl=e,this._location=i}hK.prototype.set=function(){if(!Z.equalsArray(this.value,this._value,0)){Z.clone(this.value,this._value);let e=Z.toArray(this.value,jCe);this._gl.uniformMatrix3fv(this._location,!1,e)}};var YCe=new Float32Array(16);function pK(e,t,n,i){this.name=n,this.value=void 0,this._value=new B,this._gl=e,this._location=i}pK.prototype.set=function(){if(!B.equalsArray(this.value,this._value,0)){B.clone(this.value,this._value);let e=B.toArray(this.value,YCe);this._gl.uniformMatrix4fv(this._location,!1,e)}};var fP=GCe;function qCe(e,t,n,i){switch(t.type){case e.FLOAT:return new _K(e,t,n,i);case e.FLOAT_VEC2:return new gK(e,t,n,i);case e.FLOAT_VEC3:return new yK(e,t,n,i);case e.FLOAT_VEC4:return new AK(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new nG(e,t,n,i);case e.INT:case e.BOOL:return new xK(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new CK(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new TK(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new EK(e,t,n,i);case e.FLOAT_MAT2:return new bK(e,t,n,i);case e.FLOAT_MAT3:return new SK(e,t,n,i);case e.FLOAT_MAT4:return new wK(e,t,n,i);default:throw new de(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function _K(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o),this._gl=e,this._location=i[0]}_K.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1;for(let o=0;o<t;++o){let r=e[o];r!==n[o]&&(n[o]=r,i=!0)}i&&this._gl.uniform1fv(this._location,n)};function gK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*2),this._gl=e,this._location=i[0]}gK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];H.equalsArray(s,n,o)||(H.pack(s,n,o),i=!0),o+=2}i&&this._gl.uniform2fv(this._location,n)};function yK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*3),this._gl=e,this._location=i[0]}yK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];l(s.red)?(s.red!==n[o]||s.green!==n[o+1]||s.blue!==n[o+2])&&(n[o]=s.red,n[o+1]=s.green,n[o+2]=s.blue,i=!0):l(s.x)&&(m.equalsArray(s,n,o)||(m.pack(s,n,o),i=!0)),o+=3}i&&this._gl.uniform3fv(this._location,n)};function AK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*4),this._gl=e,this._location=i[0]}AK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];l(s.red)?z.equalsArray(s,n,o)||(z.pack(s,n,o),i=!0):l(s.x)&&(re.equalsArray(s,n,o)||(re.pack(s,n,o),i=!0)),o+=4}i&&this._gl.uniform4fv(this._location,n)};function nG(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o),this._gl=e,this._locations=i,this.textureUnitIndex=void 0}nG.prototype.set=function(){let e=this._gl,t=e.TEXTURE0+this.textureUnitIndex,n=this.value,i=n.length;for(let o=0;o<i;++o){let r=n[o];e.activeTexture(t+o),e.bindTexture(r._target,r._texture)}};nG.prototype._setSampler=function(e){this.textureUnitIndex=e;let t=this._locations,n=t.length;for(let i=0;i<n;++i){let o=e+i;this._gl.uniform1i(t[i],o)}return e+n};function xK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o),this._gl=e,this._location=i[0]}xK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1;for(let o=0;o<t;++o){let r=e[o];r!==n[o]&&(n[o]=r,i=!0)}i&&this._gl.uniform1iv(this._location,n)};function CK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*2),this._gl=e,this._location=i[0]}CK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];H.equalsArray(s,n,o)||(H.pack(s,n,o),i=!0),o+=2}i&&this._gl.uniform2iv(this._location,n)};function TK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*3),this._gl=e,this._location=i[0]}TK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];m.equalsArray(s,n,o)||(m.pack(s,n,o),i=!0),o+=3}i&&this._gl.uniform3iv(this._location,n)};function EK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*4),this._gl=e,this._location=i[0]}EK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];re.equalsArray(s,n,o)||(re.pack(s,n,o),i=!0),o+=4}i&&this._gl.uniform4iv(this._location,n)};function bK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*4),this._gl=e,this._location=i[0]}bK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];eo.equalsArray(s,n,o)||(eo.pack(s,n,o),i=!0),o+=4}i&&this._gl.uniformMatrix2fv(this._location,!1,n)};function SK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*9),this._gl=e,this._location=i[0]}SK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];Z.equalsArray(s,n,o)||(Z.pack(s,n,o),i=!0),o+=9}i&&this._gl.uniformMatrix3fv(this._location,!1,n)};function wK(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*16),this._gl=e,this._location=i[0]}wK.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];B.equalsArray(s,n,o)||(B.pack(s,n,o),i=!0),o+=16}i&&this._gl.uniformMatrix4fv(this._location,!1,n)};var dP=qCe;var XCe=0;function Th(e){let t=e.vertexShaderText,n=e.fragmentShaderText;typeof spector<"u"&&(t=t.replace(/^#line/gm,"//#line"),n=n.replace(/^#line/gm,"//#line"));let i=KCe(t,n);this._gl=e.gl,this._logShaderCompilation=e.logShaderCompilation,this._debugShaders=e.debugShaders,this._attributeLocations=e.attributeLocations,this._program=void 0,this._numberOfVertexAttributes=void 0,this._vertexAttributes=void 0,this._uniformsByName=void 0,this._uniforms=void 0,this._automaticUniforms=void 0,this._manualUniforms=void 0,this._duplicateUniformNames=i.duplicateUniformNames,this._cachedShader=void 0,this.maximumTextureUnitIndex=void 0,this._vertexShaderSource=e.vertexShaderSource,this._vertexShaderText=e.vertexShaderText,this._fragmentShaderSource=e.fragmentShaderSource,this._fragmentShaderText=i.fragmentShaderText,this.id=XCe++}Th.fromCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.getShaderProgram(e)};Th.replaceCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.replaceShaderProgram(e)};Object.defineProperties(Th.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},vertexAttributes:{get:function(){return mP(this),this._vertexAttributes}},numberOfVertexAttributes:{get:function(){return mP(this),this._numberOfVertexAttributes}},allUniforms:{get:function(){return mP(this),this._uniformsByName}}});function vK(e){let t=[],n=e.match(/uniform.*?(?![^{]*})(?=[=\[;])/g);if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o].trim(),s=r.slice(r.lastIndexOf(" ")+1);t.push(s)}}return t}function KCe(e,t){let n={};if(!zt.highpFloatSupported||!zt.highpIntSupported){let i,o,r,s,a=vK(e),c=vK(t),u=a.length,f=c.length;for(i=0;i<u;i++)for(o=0;o<f;o++)if(a[i]===c[o]){r=a[i],s=`czm_mediump_${r}`;let d=new RegExp(`${r}\\b`,"g");t=t.replace(d,s),n[s]=r}}return{fragmentShaderText:t,duplicateUniformNames:n}}var Kd="[Cesium WebGL] ";function JCe(e,t){let n=t._vertexShaderText,i=t._fragmentShaderText,o=e.createShader(e.VERTEX_SHADER);e.shaderSource(o,n),e.compileShader(o);let r=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(r,i),e.compileShader(r);let s=e.createProgram();e.attachShader(s,o),e.attachShader(s,r);let a=t._attributeLocations;if(l(a))for(let p in a)a.hasOwnProperty(p)&&e.bindAttribLocation(s,a[p],p);e.linkProgram(s);let c;if(e.getProgramParameter(s,e.LINK_STATUS))return t._logShaderCompilation&&(c=e.getShaderInfoLog(o),l(c)&&c.length>0&&console.log(`${Kd}Vertex shader compile log: ${c}`),c=e.getShaderInfoLog(r),l(c)&&c.length>0&&console.log(`${Kd}Fragment shader compile log: ${c}`),c=e.getProgramInfoLog(s),l(c)&&c.length>0&&console.log(`${Kd}Shader program link log: ${c}`)),e.deleteShader(o),e.deleteShader(r),s;let u,f=t._debugShaders;throw e.getShaderParameter(r,e.COMPILE_STATUS)?e.getShaderParameter(o,e.COMPILE_STATUS)?(c=e.getProgramInfoLog(s),console.error(`${Kd}Shader program link log: ${c}`),d(o,"vertex"),d(r,"fragment"),u=`Program failed to link. Link log: ${c}`):(c=e.getShaderInfoLog(o),console.error(`${Kd}Vertex shader compile log: ${c}`),console.error(`${Kd} Vertex shader source: +${n}`),u=`Vertex shader failed to compile. Compile log: ${c}`):(c=e.getShaderInfoLog(r),console.error(`${Kd}Fragment shader compile log: ${c}`),console.error(`${Kd} Fragment shader source: +${i}`),u=`Fragment shader failed to compile. Compile log: ${c}`),e.deleteShader(o),e.deleteShader(r),e.deleteProgram(s),new de(u);function d(p,g){if(!l(f))return;let h=f.getTranslatedShaderSource(p);if(h===""){console.error(`${Kd}${g} shader translation failed.`);return}console.error(`${Kd}Translated ${g} shaderSource: +${h}`)}}function ZCe(e,t,n){let i={};for(let o=0;o<n;++o){let r=e.getActiveAttrib(t,o),s=e.getAttribLocation(t,r.name);i[r.name]={name:r.name,type:r.type,index:s}}return i}function QCe(e,t){let n={},i=[],o=[],r=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(let s=0;s<r;++s){let a=e.getActiveUniform(t,s),c="[0]",u=a.name.indexOf(c,a.name.length-c.length)!==-1?a.name.slice(0,a.name.length-3):a.name;if(u.indexOf("gl_")!==0)if(a.name.indexOf("[")<0){let f=e.getUniformLocation(t,u);if(f!==null){let d=fP(e,a,u,f);n[u]=d,i.push(d),d._setSampler&&o.push(d)}}else{let f,d,p,g,h=u.indexOf("[");if(h>=0){if(f=n[u.slice(0,h)],!l(f))continue;d=f._locations,d.length<=1&&(p=f.value,g=e.getUniformLocation(t,u),g!==null&&(d.push(g),p.push(e.getUniform(t,g))))}else{d=[];for(let A=0;A<a.size;++A)g=e.getUniformLocation(t,`${u}[${A}]`),g!==null&&d.push(g);f=dP(e,a,u,d),n[u]=f,i.push(f),f._setSampler&&o.push(f)}}}return{uniformsByName:n,uniforms:i,samplerUniforms:o}}function $Ce(e,t){let n=[],i=[];for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=o,a=e._duplicateUniformNames[s];l(a)&&(r.name=a,s=a);let c=e_[s];l(c)?n.push({uniform:r,automaticUniform:c}):i.push(r)}return{automaticUniforms:n,manualUniforms:i}}function eTe(e,t,n){e.useProgram(t);let i=0,o=n.length;for(let r=0;r<o;++r)i=n[r]._setSampler(i);return e.useProgram(null),i}function mP(e){l(e._program)||DK(e)}function DK(e){let t=e._program,n=e._gl,i=JCe(n,e,e._debugShaders),o=n.getProgramParameter(i,n.ACTIVE_ATTRIBUTES),r=QCe(n,i),s=$Ce(e,r.uniformsByName);e._program=i,e._numberOfVertexAttributes=o,e._vertexAttributes=ZCe(n,i,o),e._uniformsByName=r.uniformsByName,e._uniforms=r.uniforms,e._automaticUniforms=s.automaticUniforms,e._manualUniforms=s.manualUniforms,e.maximumTextureUnitIndex=eTe(n,i,r.samplerUniforms),t&&e._gl.deleteProgram(t),typeof spector<"u"&&(e._program.__SPECTOR_rebuildProgram=function(a,c,u,f){let d=e._vertexShaderText,p=e._fragmentShaderText,g=/ ! = /g;e._vertexShaderText=a.replace(g," != "),e._fragmentShaderText=c.replace(g," != ");try{DK(e),u(e._program)}catch(h){e._vertexShaderText=d,e._fragmentShaderText=p;let x=/(?:Compile|Link) error: ([^]*)/.exec(h.message);f(x?x[1]:h.message)}})}Th.prototype._bind=function(){mP(this),this._gl.useProgram(this._program)};Th.prototype._setUniforms=function(e,t,n){let i,o;if(l(e)){let a=this._manualUniforms;for(i=a.length,o=0;o<i;++o){let c=a[o];c.value=e[c.name]()}}let r=this._automaticUniforms;for(i=r.length,o=0;o<i;++o){let a=r[o];a.uniform.value=a.automaticUniform.getValue(t)}let s=this._uniforms;for(i=s.length,o=0;o<i;++o)s[o].set();if(n){let a=this._gl,c=this._program;a.validateProgram(c)}};Th.prototype.isDestroyed=function(){return!1};Th.prototype.destroy=function(){this._cachedShader.cache.releaseShaderProgram(this)};Th.prototype.finalDestroy=function(){return this._gl.deleteProgram(this._program),ue(this)};var Jt=Th;function hP(e){this._context=e}var Gb,tTe=new it({primitiveType:Le.TRIANGLES}),nTe=new oi({color:new z(0,0,0,0)});function iTe(e,t){return new ia({context:e,colorTextures:[t],destroyAttachments:!1})}function oTe(e,t){return Jt.fromCache({context:e,vertexShaderSource:Ex,fragmentShaderSource:t,attributeLocations:{position:0,textureCoordinates:1}})}function rTe(e,t){return(!l(Gb)||Gb.viewport.width!==e||Gb.viewport.height!==t)&&(Gb=ze.fromCache({viewport:new Ke(0,0,e,t)})),Gb}hP.prototype.execute=function(e){l(e.preExecute)&&e.preExecute(e);let t=e.outputTexture,n=t.width,i=t.height,o=this._context,r=l(e.vertexArray)?e.vertexArray:o.getViewportQuadVertexArray(),s=l(e.shaderProgram)?e.shaderProgram:oTe(o,e.fragmentShaderSource),a=iTe(o,t),c=rTe(n,i),u=e.uniformMap,f=nTe;f.framebuffer=a,f.renderState=c,f.execute(o);let d=tTe;d.vertexArray=r,d.renderState=c,d.shaderProgram=s,d.uniformMap=u,d.framebuffer=a,d.execute(o),a.destroy(),e.persists||(s.destroy(),l(e.vertexArray)&&r.destroy()),l(e.postExecute)&&e.postExecute(t)};hP.prototype.isDestroyed=function(){return!1};hP.prototype.destroy=function(){return ue(this)};var pP=hP;var En={BYTE:te.BYTE,UNSIGNED_BYTE:te.UNSIGNED_BYTE,SHORT:te.SHORT,UNSIGNED_SHORT:te.UNSIGNED_SHORT,INT:te.INT,UNSIGNED_INT:te.UNSIGNED_INT,FLOAT:te.FLOAT,DOUBLE:te.DOUBLE};En.getSizeInBytes=function(e){switch(e){case En.BYTE:return Int8Array.BYTES_PER_ELEMENT;case En.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case En.SHORT:return Int16Array.BYTES_PER_ELEMENT;case En.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case En.INT:return Int32Array.BYTES_PER_ELEMENT;case En.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case En.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case En.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}};En.fromTypedArray=function(e){if(e instanceof Int8Array)return En.BYTE;if(e instanceof Uint8Array)return En.UNSIGNED_BYTE;if(e instanceof Int16Array)return En.SHORT;if(e instanceof Uint16Array)return En.UNSIGNED_SHORT;if(e instanceof Int32Array)return En.INT;if(e instanceof Uint32Array)return En.UNSIGNED_INT;if(e instanceof Float32Array)return En.FLOAT;if(e instanceof Float64Array)return En.DOUBLE};En.validate=function(e){return l(e)&&(e===En.BYTE||e===En.UNSIGNED_BYTE||e===En.SHORT||e===En.UNSIGNED_SHORT||e===En.INT||e===En.UNSIGNED_INT||e===En.FLOAT||e===En.DOUBLE)};En.createTypedArray=function(e,t){switch(e){case En.BYTE:return new Int8Array(t);case En.UNSIGNED_BYTE:return new Uint8Array(t);case En.SHORT:return new Int16Array(t);case En.UNSIGNED_SHORT:return new Uint16Array(t);case En.INT:return new Int32Array(t);case En.UNSIGNED_INT:return new Uint32Array(t);case En.FLOAT:return new Float32Array(t);case En.DOUBLE:return new Float64Array(t)}};En.createArrayBufferView=function(e,t,n,i){switch(n=y(n,0),i=y(i,(t.byteLength-n)/En.getSizeInBytes(e)),e){case En.BYTE:return new Int8Array(t,n,i);case En.UNSIGNED_BYTE:return new Uint8Array(t,n,i);case En.SHORT:return new Int16Array(t,n,i);case En.UNSIGNED_SHORT:return new Uint16Array(t,n,i);case En.INT:return new Int32Array(t,n,i);case En.UNSIGNED_INT:return new Uint32Array(t,n,i);case En.FLOAT:return new Float32Array(t,n,i);case En.DOUBLE:return new Float64Array(t,n,i)}};En.fromName=function(e){switch(e){case"BYTE":return En.BYTE;case"UNSIGNED_BYTE":return En.UNSIGNED_BYTE;case"SHORT":return En.SHORT;case"UNSIGNED_SHORT":return En.UNSIGNED_SHORT;case"INT":return En.INT;case"UNSIGNED_INT":return En.UNSIGNED_INT;case"FLOAT":return En.FLOAT;case"DOUBLE":return En.DOUBLE}};var X=Object.freeze(En);var IK={};function Wb(e,t){l(IK[e])||(IK[e]=!0,console.warn(y(t,e)))}Wb.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.";Wb.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";Wb.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";Wb.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";var Mt=Wb;function sTe(e,t){Mt(e,t)}var $=sTe;var aTe={NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3},Mf=Object.freeze(aTe);function ot(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}var jb=new m;ot.fromAxisAngle=function(e,t,n){let i=t/2,o=Math.sin(i);jb=m.normalize(e,jb);let r=jb.x*o,s=jb.y*o,a=jb.z*o,c=Math.cos(i);return l(n)?(n.x=r,n.y=s,n.z=a,n.w=c,n):new ot(r,s,a,c)};var cTe=[1,2,0],lTe=new Array(3);ot.fromRotationMatrix=function(e,t){let n,i,o,r,s,a=e[Z.COLUMN0ROW0],c=e[Z.COLUMN1ROW1],u=e[Z.COLUMN2ROW2],f=a+c+u;if(f>0)n=Math.sqrt(f+1),s=.5*n,n=.5/n,i=(e[Z.COLUMN1ROW2]-e[Z.COLUMN2ROW1])*n,o=(e[Z.COLUMN2ROW0]-e[Z.COLUMN0ROW2])*n,r=(e[Z.COLUMN0ROW1]-e[Z.COLUMN1ROW0])*n;else{let d=cTe,p=0;c>a&&(p=1),u>a&&u>c&&(p=2);let g=d[p],h=d[g];n=Math.sqrt(e[Z.getElementIndex(p,p)]-e[Z.getElementIndex(g,g)]-e[Z.getElementIndex(h,h)]+1);let A=lTe;A[p]=.5*n,n=.5/n,s=(e[Z.getElementIndex(h,g)]-e[Z.getElementIndex(g,h)])*n,A[g]=(e[Z.getElementIndex(g,p)]+e[Z.getElementIndex(p,g)])*n,A[h]=(e[Z.getElementIndex(h,p)]+e[Z.getElementIndex(p,h)])*n,i=-A[0],o=-A[1],r=-A[2]}return l(t)?(t.x=i,t.y=o,t.z=r,t.w=s,t):new ot(i,o,r,s)};var PK=new ot,OK=new ot,iG=new ot,MK=new ot;ot.fromHeadingPitchRoll=function(e,t){return MK=ot.fromAxisAngle(m.UNIT_X,e.roll,PK),iG=ot.fromAxisAngle(m.UNIT_Y,-e.pitch,t),t=ot.multiply(iG,MK,iG),OK=ot.fromAxisAngle(m.UNIT_Z,-e.heading,PK),ot.multiply(OK,t,t)};var _P=new m,oG=new m,Rf=new ot,RK=new ot,gP=new ot;ot.packedLength=4;ot.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};ot.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ot),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};ot.packedInterpolationLength=3;ot.convertPackedArrayForInterpolation=function(e,t,n,i){ot.unpack(e,n*4,gP),ot.conjugate(gP,gP);for(let o=0,r=n-t+1;o<r;o++){let s=o*3;ot.unpack(e,(t+o)*4,Rf),ot.multiply(Rf,gP,Rf),Rf.w<0&&ot.negate(Rf,Rf),ot.computeAxis(Rf,_P);let a=ot.computeAngle(Rf);l(i)||(i=[]),i[s]=_P.x*a,i[s+1]=_P.y*a,i[s+2]=_P.z*a}};ot.unpackInterpolationResult=function(e,t,n,i,o){l(o)||(o=new ot),m.fromArray(e,0,oG);let r=m.magnitude(oG);return ot.unpack(t,i*4,RK),r===0?ot.clone(ot.IDENTITY,Rf):ot.fromAxisAngle(oG,r,Rf),ot.multiply(Rf,RK,o)};ot.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new ot(e.x,e.y,e.z,e.w)};ot.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t};ot.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};ot.magnitude=function(e){return Math.sqrt(ot.magnitudeSquared(e))};ot.normalize=function(e,t){let n=1/ot.magnitude(e),i=e.x*n,o=e.y*n,r=e.z*n,s=e.w*n;return t.x=i,t.y=o,t.z=r,t.w=s,t};ot.inverse=function(e,t){let n=ot.magnitudeSquared(e);return t=ot.conjugate(e,t),ot.multiplyByScalar(t,1/n,t)};ot.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};ot.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};ot.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};ot.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};ot.multiply=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=e.w,a=t.x,c=t.y,u=t.z,f=t.w,d=s*a+i*f+o*u-r*c,p=s*c-i*u+o*f+r*a,g=s*u+i*c-o*a+r*f,h=s*f-i*a-o*c-r*u;return n.x=d,n.y=p,n.z=g,n.w=h,n};ot.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};ot.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};ot.computeAxis=function(e,t){let n=e.w;if(Math.abs(n-1)<P.EPSILON6)return t.x=t.y=t.z=0,t;let i=1/Math.sqrt(1-n*n);return t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t};ot.computeAngle=function(e){return Math.abs(e.w-1)<P.EPSILON6?0:2*Math.acos(e.w)};var rG=new ot;ot.lerp=function(e,t,n,i){return rG=ot.multiplyByScalar(t,n,rG),i=ot.multiplyByScalar(e,1-n,i),ot.add(rG,i,i)};var BK=new ot,sG=new ot,aG=new ot;ot.slerp=function(e,t,n,i){let o=ot.dot(e,t),r=t;if(o<0&&(o=-o,r=BK=ot.negate(t,BK)),1-o<P.EPSILON6)return ot.lerp(e,r,n,i);let s=Math.acos(o);return sG=ot.multiplyByScalar(e,Math.sin((1-n)*s),sG),aG=ot.multiplyByScalar(r,Math.sin(n*s),aG),i=ot.add(sG,aG,i),ot.multiplyByScalar(i,1/Math.sin(s),i)};ot.log=function(e,t){let n=P.acosClamped(e.w),i=0;return n!==0&&(i=n/Math.sin(n)),m.multiplyByScalar(e,i,t)};ot.exp=function(e,t){let n=m.magnitude(e),i=0;return n!==0&&(i=Math.sin(n)/n),t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t.w=Math.cos(n),t};var uTe=new m,fTe=new m,Yb=new ot,bx=new ot;ot.computeInnerQuadrangle=function(e,t,n,i){let o=ot.conjugate(t,Yb);ot.multiply(o,n,bx);let r=ot.log(bx,uTe);ot.multiply(o,e,bx);let s=ot.log(bx,fTe);return m.add(r,s,r),m.multiplyByScalar(r,.25,r),m.negate(r,r),ot.exp(r,Yb),ot.multiply(t,Yb,i)};ot.squad=function(e,t,n,i,o,r){let s=ot.slerp(e,t,o,Yb),a=ot.slerp(n,i,o,bx);return ot.slerp(s,a,2*o*(1-o),r)};var dTe=new ot,LK=1.9011074535173003,yP=Gt.supportsTypedArrays()?new Float32Array(8):[],AP=Gt.supportsTypedArrays()?new Float32Array(8):[],Eh=Gt.supportsTypedArrays()?new Float32Array(8):[],bh=Gt.supportsTypedArrays()?new Float32Array(8):[];for(let e=0;e<7;++e){let t=e+1,n=2*t+1;yP[e]=1/(t*n),AP[e]=t/n}yP[7]=LK/(8*17);AP[7]=LK*8/17;ot.fastSlerp=function(e,t,n,i){let o=ot.dot(e,t),r;o>=0?r=1:(r=-1,o=-o);let s=o-1,a=1-n,c=n*n,u=a*a;for(let g=7;g>=0;--g)Eh[g]=(yP[g]*c-AP[g])*s,bh[g]=(yP[g]*u-AP[g])*s;let f=r*n*(1+Eh[0]*(1+Eh[1]*(1+Eh[2]*(1+Eh[3]*(1+Eh[4]*(1+Eh[5]*(1+Eh[6]*(1+Eh[7])))))))),d=a*(1+bh[0]*(1+bh[1]*(1+bh[2]*(1+bh[3]*(1+bh[4]*(1+bh[5]*(1+bh[6]*(1+bh[7])))))))),p=ot.multiplyByScalar(e,d,dTe);return ot.multiplyByScalar(t,f,i),ot.add(p,i,i)};ot.fastSquad=function(e,t,n,i,o,r){let s=ot.fastSlerp(e,t,o,Yb),a=ot.fastSlerp(n,i,o,bx);return ot.fastSlerp(s,a,2*o*(1-o),r)};ot.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};ot.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n};ot.ZERO=Object.freeze(new ot(0,0,0,0));ot.IDENTITY=Object.freeze(new ot(0,0,0,1));ot.prototype.clone=function(e){return ot.clone(this,e)};ot.prototype.equals=function(e){return ot.equals(this,e)};ot.prototype.equalsEpsilon=function(e,t){return ot.equalsEpsilon(this,e,t)};ot.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Ne=ot;function mTe(e,t,n){let i=0,o=e.length-1,r,s;for(;i<=o;){if(r=~~((i+o)/2),s=n(e[r],t),s<0){i=r+1;continue}if(s>0){o=r-1;continue}return r}return~(o+1)}var Do=mTe;function hTe(e,t,n,i,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=o}var Gy=hTe;function pTe(e,t,n,i,o,r,s,a){this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=o,this.second=r,this.millisecond=s,this.isLeapSecond=a}var i_=pTe;function _Te(e){return e%4===0&&e%100!==0||e%400===0}var o_=_Te;function gTe(e,t){this.julianDate=e,this.offset=t}var zi=gTe;var yTe={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1},Zn=Object.freeze(yTe);var ATe={UTC:0,TAI:1},Jn=Object.freeze(ATe);var FK=new i_,cG=[31,28,31,30,31,30,31,31,30,31,30,31],lG=29;function uG(e,t){return wt.compare(e.julianDate,t.julianDate)}var Sx=new zi;function CP(e){Sx.julianDate=e;let t=wt.leapSeconds,n=Do(t,Sx,uG);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&wt.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),wt.addSeconds(e,i,e)}function NK(e,t){Sx.julianDate=e;let n=wt.leapSeconds,i=Do(n,Sx,uG);if(i<0&&(i=~i),i===0)return wt.addSeconds(e,-n[0].offset,t);if(i>=n.length)return wt.addSeconds(e,-n[i-1].offset,t);let o=wt.secondsDifference(n[i].julianDate,e);if(o===0)return wt.addSeconds(e,-n[i].offset,t);if(!(o<=1))return wt.addSeconds(e,-n[--i].offset,t)}function r_(e,t,n){let i=t/Zn.SECONDS_PER_DAY|0;return e+=i,t-=Zn.SECONDS_PER_DAY*i,t<0&&(e--,t+=Zn.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function fG(e,t,n,i,o,r,s){let a=(t-14)/12|0,c=e+4800+a,u=(1461*c/4|0)+(367*(t-2-12*a)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;i=i-12,i<0&&(i+=24);let f=r+(i*Zn.SECONDS_PER_HOUR+o*Zn.SECONDS_PER_MINUTE+s*Zn.SECONDS_PER_MILLISECOND);return f>=43200&&(u-=1),[u,f]}var xTe=/^(\d{4})$/,CTe=/^(\d{4})-(\d{2})$/,TTe=/^(\d{4})-?(\d{3})$/,ETe=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,bTe=/^(\d{4})-?(\d{2})-?(\d{2})$/,dG=/([Z+\-])?(\d{2})?:?(\d{2})?$/,STe=/^(\d{2})(\.\d+)?/.source+dG.source,wTe=/^(\d{2}):?(\d{2})(\.\d+)?/.source+dG.source,vTe=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+dG.source;function wt(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=y(e,0),t=y(t,0),n=y(n,Jn.UTC);let i=e|0;t=t+(e-i)*Zn.SECONDS_PER_DAY,r_(i,t,this),n===Jn.UTC&&CP(this)}wt.fromGregorianDate=function(e,t){let n=fG(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return l(t)?(r_(n[0],n[1],t),CP(t),t):new wt(n[0],n[1],Jn.UTC)};wt.fromDate=function(e,t){let n=fG(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return l(t)?(r_(n[0],n[1],t),CP(t),t):new wt(n[0],n[1],Jn.UTC)};wt.fromIso8601=function(e,t){e=e.replace(",",".");let n=e.split("T"),i,o=1,r=1,s=0,a=0,c=0,u=0,f=n[0],d=n[1],p,g;if(n=f.match(bTe),n!==null)i=+n[1],o=+n[2],r=+n[3];else if(n=f.match(CTe),n!==null)i=+n[1],o=+n[2];else if(n=f.match(xTe),n!==null)i=+n[1];else{let C;if(n=f.match(TTe),n!==null)i=+n[1],C=+n[2],g=o_(i);else if(n=f.match(ETe),n!==null){i=+n[1];let T=+n[2],E=+n[3]||0,S=new Date(Date.UTC(i,0,4));C=T*7+E-S.getUTCDay()-3}p=new Date(Date.UTC(i,0,1)),p.setUTCDate(C),o=p.getUTCMonth()+1,r=p.getUTCDate()}g=o_(i);let h;if(l(d)){n=d.match(vTe),n!==null?(s=+n[1],a=+n[2],c=+n[3],u=+(n[4]||0)*1e3,h=5):(n=d.match(wTe),n!==null?(s=+n[1],a=+n[2],c=+(n[3]||0)*60,h=4):(n=d.match(STe),n!==null&&(s=+n[1],a=+(n[2]||0)*60,h=3)));let C=n[h],T=+n[h+1],E=+(n[h+2]||0);switch(C){case"+":s=s-T,a=a-E;break;case"-":s=s+T,a=a+E;break;case"Z":break;default:a=a+new Date(Date.UTC(i,o-1,r,s,a)).getTimezoneOffset();break}}let A=c===60;for(A&&c--;a>=60;)a-=60,s++;for(;s>=24;)s-=24,r++;for(p=g&&o===2?lG:cG[o-1];r>p;)r-=p,o++,o>12&&(o-=12,i++),p=g&&o===2?lG:cG[o-1];for(;a<0;)a+=60,s--;for(;s<0;)s+=24,r--;for(;r<1;)o--,o<1&&(o+=12,i--),p=g&&o===2?lG:cG[o-1],r+=p;let x=fG(i,o,r,s,a,c,u);return l(t)?(r_(x[0],x[1],t),CP(t)):t=new wt(x[0],x[1],Jn.UTC),A&&wt.addSeconds(t,1,t),t};wt.now=function(e){return wt.fromDate(new Date,e)};var xP=new wt(0,0,Jn.TAI);wt.toGregorianDate=function(e,t){let n=!1,i=NK(e,xP);l(i)||(wt.addSeconds(e,-1,xP),i=NK(xP,xP),n=!0);let o=i.dayNumber,r=i.secondsOfDay;r>=43200&&(o+=1);let s=o+68569|0,a=4*s/146097|0;s=s-((146097*a+3)/4|0)|0;let c=4e3*(s+1)/1461001|0;s=s-(1461*c/4|0)+31|0;let u=80*s/2447|0,f=s-(2447*u/80|0)|0;s=u/11|0;let d=u+2-12*s|0,p=100*(a-49)+c+s|0,g=r/Zn.SECONDS_PER_HOUR|0,h=r-g*Zn.SECONDS_PER_HOUR,A=h/Zn.SECONDS_PER_MINUTE|0;h=h-A*Zn.SECONDS_PER_MINUTE;let x=h|0,C=(h-x)/Zn.SECONDS_PER_MILLISECOND;return g+=12,g>23&&(g-=24),n&&(x+=1),l(t)?(t.year=p,t.month=d,t.day=f,t.hour=g,t.minute=A,t.second=x,t.millisecond=C,t.isLeapSecond=n,t):new i_(p,d,f,g,A,x,C,n)};wt.toDate=function(e){let t=wt.toGregorianDate(e,FK),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))};wt.toIso8601=function(e,t){let n=wt.toGregorianDate(e,FK),i=n.year,o=n.month,r=n.day,s=n.hour,a=n.minute,c=n.second,u=n.millisecond;i===1e4&&o===1&&r===1&&s===0&&a===0&&c===0&&u===0&&(i=9999,o=12,r=31,s=24);let f;return!l(t)&&u!==0?(f=(u*.01).toString().replace(".",""),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`):!l(t)||t===0?`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}Z`:(f=(u*.01).toFixed(t).replace(".","").slice(0,t),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`)};wt.clone=function(e,t){if(l(e))return l(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new wt(e.dayNumber,e.secondsOfDay,Jn.TAI)};wt.compare=function(e,t){let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};wt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};wt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(wt.secondsDifference(e,t))<=n};wt.totalDays=function(e){return e.dayNumber+e.secondsOfDay/Zn.SECONDS_PER_DAY};wt.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*Zn.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};wt.daysDifference=function(e,t){let n=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/Zn.SECONDS_PER_DAY;return n+i};wt.computeTaiMinusUtc=function(e){Sx.julianDate=e;let t=wt.leapSeconds,n=Do(t,Sx,uG);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};wt.addSeconds=function(e,t,n){return r_(e.dayNumber,e.secondsOfDay+t,n)};wt.addMinutes=function(e,t,n){let i=e.secondsOfDay+t*Zn.SECONDS_PER_MINUTE;return r_(e.dayNumber,i,n)};wt.addHours=function(e,t,n){let i=e.secondsOfDay+t*Zn.SECONDS_PER_HOUR;return r_(e.dayNumber,i,n)};wt.addDays=function(e,t,n){let i=e.dayNumber+t;return r_(i,e.secondsOfDay,n)};wt.lessThan=function(e,t){return wt.compare(e,t)<0};wt.lessThanOrEquals=function(e,t){return wt.compare(e,t)<=0};wt.greaterThan=function(e,t){return wt.compare(e,t)>0};wt.greaterThanOrEquals=function(e,t){return wt.compare(e,t)>=0};wt.prototype.clone=function(e){return wt.clone(this,e)};wt.prototype.equals=function(e){return wt.equals(this,e)};wt.prototype.equalsEpsilon=function(e,t){return wt.equalsEpsilon(this,e,t)};wt.prototype.toString=function(){return wt.toIso8601(this)};wt.leapSeconds=[new zi(new wt(2441317,43210,Jn.TAI),10),new zi(new wt(2441499,43211,Jn.TAI),11),new zi(new wt(2441683,43212,Jn.TAI),12),new zi(new wt(2442048,43213,Jn.TAI),13),new zi(new wt(2442413,43214,Jn.TAI),14),new zi(new wt(2442778,43215,Jn.TAI),15),new zi(new wt(2443144,43216,Jn.TAI),16),new zi(new wt(2443509,43217,Jn.TAI),17),new zi(new wt(2443874,43218,Jn.TAI),18),new zi(new wt(2444239,43219,Jn.TAI),19),new zi(new wt(2444786,43220,Jn.TAI),20),new zi(new wt(2445151,43221,Jn.TAI),21),new zi(new wt(2445516,43222,Jn.TAI),22),new zi(new wt(2446247,43223,Jn.TAI),23),new zi(new wt(2447161,43224,Jn.TAI),24),new zi(new wt(2447892,43225,Jn.TAI),25),new zi(new wt(2448257,43226,Jn.TAI),26),new zi(new wt(2448804,43227,Jn.TAI),27),new zi(new wt(2449169,43228,Jn.TAI),28),new zi(new wt(2449534,43229,Jn.TAI),29),new zi(new wt(2450083,43230,Jn.TAI),30),new zi(new wt(2450630,43231,Jn.TAI),31),new zi(new wt(2451179,43232,Jn.TAI),32),new zi(new wt(2453736,43233,Jn.TAI),33),new zi(new wt(2454832,43234,Jn.TAI),34),new zi(new wt(2456109,43235,Jn.TAI),35),new zi(new wt(2457204,43236,Jn.TAI),36),new zi(new wt(2457754,43237,Jn.TAI),37)];var ee=wt;var iJ=ar(bl(),1);function DTe(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var SP=DTe;function WK(e,t){if(e===null||typeof e!="object")return e;t=y(t,!1);let n=new e.constructor;for(let i in e)if(e.hasOwnProperty(i)){let o=e[i];t&&(o=WK(o,t)),n[i]=o}return n}var Ye=WK;function jK(e,t,n){n=y(n,!1);let i={},o=l(e),r=l(t),s,a,c;if(o)for(s in e)e.hasOwnProperty(s)&&(a=e[s],r&&n&&typeof a=="object"&&t.hasOwnProperty(s)?(c=t[s],typeof c=="object"?i[s]=jK(a,c,n):i[s]=a):i[s]=a);if(r)for(s in t)t.hasOwnProperty(s)&&!i.hasOwnProperty(s)&&(c=t[s],i[s]=c);return i}var gt=jK;function ITe(){let e,t,n=new Promise(function(i,o){e=i,t=o});return{resolve:e,reject:t,promise:n}}var oa=ITe;var YK=ar(bl(),1);function mG(e,t){let n;return typeof document<"u"&&(n=document),mG._implementation(e,t,n)}mG._implementation=function(e,t,n){if(!l(t)){if(typeof n>"u")return e;t=y(n.baseURI,n.location.href)}let i=new YK.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var s_=mG;var qK=ar(bl(),1);function PTe(e,t){let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new qK.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var wP=PTe;var XK=ar(bl(),1);function OTe(e){let t=new XK.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),i=n.lastIndexOf("."),i===-1?n="":n=n.substr(i+1),n}var Dx=OTe;var KK={};function MTe(e,t,n){l(t)||(t=e.width),l(n)||(n=e.height);let i=KK[t];l(i)||(i={},KK[t]=i);let o=i[n];if(!l(o)){let r=document.createElement("canvas");r.width=t,r.height=n,o=r.getContext("2d",{willReadFrequently:!0}),o.globalCompositeOperation="copy",i[n]=o}return o.drawImage(e,0,0,t,n),o.getImageData(0,0,t,n).data}var Jd=MTe;var RTe=/^blob:/i;function BTe(e){return RTe.test(e)}var Ix=BTe;var Zd;function LTe(e){l(Zd)||(Zd=document.createElement("a")),Zd.href=window.location.href;let t=Zd.host,n=Zd.protocol;return Zd.href=e,Zd.href=Zd.href,n!==Zd.protocol||t!==Zd.host}var Px=LTe;var NTe=/^data:/i;function FTe(e){return NTe.test(e)}var a_=FTe;function UTe(e){let t=document.createElement("script");return t.async=!0,t.src=e,new Promise((n,i)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");let o=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,o.removeChild(t),n()},t.onerror=function(r){i(r)},o.appendChild(t)})}var Ox=UTe;function VTe(e){let t="";for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=`${encodeURIComponent(n)}=`;if(Array.isArray(i))for(let r=0,s=i.length;r<s;++r)t+=`${o+encodeURIComponent(i[r])}&`;else t+=`${o+encodeURIComponent(i)}&`}return t=t.slice(0,-1),t}var Mx=VTe;function kTe(e){let t={};if(e==="")return t;let n=e.replace(/\+/g,"%20").split(/[&;]/);for(let i=0,o=n.length;i<o;++i){let r=n[i].split("="),s=decodeURIComponent(r[0]),a=r[1];l(a)?a=decodeURIComponent(a):a="";let c=t[s];typeof c=="string"?t[s]=[c,a]:Array.isArray(c)?c.push(a):t[s]=a}return t}var bu=kTe;var zTe={UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5},ti=Object.freeze(zTe);var HTe={TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3},es=Object.freeze(HTe);function vP(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.throttleByServer,!1),n=y(e.throttle,!1);this.url=e.url,this.requestFunction=e.requestFunction,this.cancelFunction=e.cancelFunction,this.priorityFunction=e.priorityFunction,this.priority=y(e.priority,0),this.throttle=n,this.throttleByServer=t,this.type=y(e.type,es.OTHER),this.serverKey=e.serverKey,this.state=ti.UNISSUED,this.deferred=void 0,this.cancelled=!1}vP.prototype.cancel=function(){this.cancelled=!0};vP.prototype.clone=function(e){return l(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=ti.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new vP(this)};var Zo=vP;function GTe(e){let t={};if(!e)return t;let n=e.split(`\r +`);for(let i=0;i<n.length;++i){let o=n[i],r=o.indexOf(": ");if(r>0){let s=o.substring(0,r),a=o.substring(r+2);t[s]=a}}return t}var DP=GTe;function JK(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=DP(this.responseHeaders))}JK.prototype.toString=function(){let e="Request has failed.";return l(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var Sh=JK;var PP=ar(bl(),1);function qb(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties(qb.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});qb.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};qb.prototype.removeEventListener=function(e,t){let n=this._listeners,i=this._scopes,o=-1;for(let r=0;r<n.length;r++)if(n[r]===e&&i[r]===t){o=r;break}return o!==-1?(this._insideRaiseEvent?(this._toRemove.push(o),n[o]=void 0,i[o]=void 0):(n.splice(o,1),i.splice(o,1)),!0):!1};function WTe(e,t){return t-e}qb.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;let e,t=this._listeners,n=this._scopes,i=t.length;for(e=0;e<i;e++){let r=t[e];l(r)&&t[e].apply(n[e],arguments)}let o=this._toRemove;if(i=o.length,i>0){for(o.sort(WTe),e=0;e<i;e++){let r=o[e];t.splice(r,1),n.splice(r,1)}o.length=0}this._insideRaiseEvent=!1};var ge=qb;function Wy(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}Object.defineProperties(Wy.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){let t=this._length;if(e<t){let n=this._array;for(let i=e;i<t;++i)n[i]=void 0;this._length=e,n.length=e}this._maximumLength=e}},comparator:{get:function(){return this._comparator}}});function hG(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}Wy.prototype.reserve=function(e){e=y(e,this._length),this._array.length=e};Wy.prototype.heapify=function(e){e=y(e,0);let t=this._length,n=this._comparator,i=this._array,o=-1,r=!0;for(;r;){let s=2*(e+1),a=s-1;a<t&&n(i[a],i[e])<0?o=a:o=e,s<t&&n(i[s],i[o])<0&&(o=s),o!==e?(hG(i,o,e),e=o):r=!1}};Wy.prototype.resort=function(){let e=this._length;for(let t=Math.ceil(e/2);t>=0;--t)this.heapify(t)};Wy.prototype.insert=function(e){let t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);o!==0;){let s=Math.floor((o-1)/2);if(n(t[o],t[s])<0)hG(t,o,s),o=s;else break}let r;return l(i)&&this._length>i&&(r=t[i],this._length=i),r};Wy.prototype.pop=function(e){if(e=y(e,0),this._length===0)return;let t=this._array,n=t[e];return hG(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var IP=Wy;function jTe(e,t){return e.priority-t.priority}var Xi={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},Rx=20,wa=new IP({comparator:jTe});wa.maximumLength=Rx;wa.reserve(Rx);var Qd=[],wh={},YTe=typeof document<"u"?new PP.default(document.location.href):new PP.default,OP=new ge;function No(){}No.maximumRequests=50;No.maximumRequestsPerServer=6;No.requestsByServer={"api.cesium.com:443":18,"assets.ion.cesium.com:443":18,"ibasemaps-api.arcgis.com:443":18};No.throttleRequests=!0;No.debugShowStatistics=!1;No.requestCompletedEvent=OP;Object.defineProperties(No,{statistics:{get:function(){return Xi}},priorityHeapLength:{get:function(){return Rx},set:function(e){if(e<Rx)for(;wa.length>e;){let t=wa.pop();jy(t)}Rx=e,wa.maximumLength=e,wa.reserve(e)}}});function ZK(e){l(e.priorityFunction)&&(e.priority=e.priorityFunction())}No.serverHasOpenSlots=function(e,t){t=y(t,1);let n=y(No.requestsByServer[e],No.maximumRequestsPerServer);return wh[e]+t<=n};No.heapHasOpenSlots=function(e){return wa.length+e<=Rx};function QK(e){return e.state===ti.UNISSUED&&(e.state=ti.ISSUED,e.deferred=oa()),e.deferred.promise}function qTe(e){return function(t){if(e.state===ti.CANCELLED)return;let n=e.deferred;--Xi.numberOfActiveRequests,--wh[e.serverKey],OP.raiseEvent(),e.state=ti.RECEIVED,e.deferred=void 0,n.resolve(t)}}function XTe(e){return function(t){e.state!==ti.CANCELLED&&(++Xi.numberOfFailedRequests,--Xi.numberOfActiveRequests,--wh[e.serverKey],OP.raiseEvent(t),e.state=ti.FAILED,e.deferred.reject(t))}}function $K(e){let t=QK(e);return e.state=ti.ACTIVE,Qd.push(e),++Xi.numberOfActiveRequests,++Xi.numberOfActiveRequestsEver,++wh[e.serverKey],e.requestFunction().then(qTe(e)).catch(XTe(e)),t}function jy(e){let t=e.state===ti.ACTIVE;if(e.state=ti.CANCELLED,++Xi.numberOfCancelledRequests,l(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--Xi.numberOfActiveRequests,--wh[e.serverKey],++Xi.numberOfCancelledActiveRequests),l(e.cancelFunction)&&e.cancelFunction()}No.update=function(){let e,t,n=0,i=Qd.length;for(e=0;e<i;++e){if(t=Qd[e],t.cancelled&&jy(t),t.state!==ti.ACTIVE){++n;continue}n>0&&(Qd[e-n]=t)}Qd.length-=n;let o=wa.internalArray,r=wa.length;for(e=0;e<r;++e)ZK(o[e]);wa.resort();let s=Math.max(No.maximumRequests-Qd.length,0),a=0;for(;a<s&&wa.length>0;){if(t=wa.pop(),t.cancelled){jy(t);continue}if(t.throttleByServer&&!No.serverHasOpenSlots(t.serverKey)){jy(t);continue}$K(t),++a}KTe()};No.getServerKey=function(e){let t=new PP.default(e);t.scheme()===""&&(t=t.absoluteTo(YTe),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=wh[n];return l(i)||(wh[n]=0),n};No.request=function(e){if(a_(e.url)||Ix(e.url))return OP.raiseEvent(),e.state=ti.RECEIVED,e.requestFunction();if(++Xi.numberOfAttemptedRequests,l(e.serverKey)||(e.serverKey=No.getServerKey(e.url)),No.throttleRequests&&e.throttleByServer&&!No.serverHasOpenSlots(e.serverKey))return;if(!No.throttleRequests||!e.throttle)return $K(e);if(Qd.length>=No.maximumRequests)return;ZK(e);let t=wa.insert(e);if(l(t)){if(t===e)return;jy(t)}return QK(e)};function KTe(){No.debugShowStatistics&&(Xi.numberOfActiveRequests===0&&Xi.lastNumberOfActiveRequests>0&&(Xi.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${Xi.numberOfAttemptedRequests}`),Xi.numberOfAttemptedRequests=0),Xi.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${Xi.numberOfCancelledRequests}`),Xi.numberOfCancelledRequests=0),Xi.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${Xi.numberOfCancelledActiveRequests}`),Xi.numberOfCancelledActiveRequests=0),Xi.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${Xi.numberOfFailedRequests}`),Xi.numberOfFailedRequests=0)),Xi.lastNumberOfActiveRequests=Xi.numberOfActiveRequests)}No.clearForSpecs=function(){for(;wa.length>0;){let t=wa.pop();jy(t)}let e=Qd.length;for(let t=0;t<e;++t)jy(Qd[t]);Qd.length=0,wh={},Xi.numberOfAttemptedRequests=0,Xi.numberOfActiveRequests=0,Xi.numberOfCancelledRequests=0,Xi.numberOfCancelledActiveRequests=0,Xi.numberOfFailedRequests=0,Xi.numberOfActiveRequestsEver=0,Xi.lastNumberOfActiveRequests=0};No.numberOfActiveRequestsByServer=function(e){return wh[e]};No.requestHeap=wa;var oc=No;var eJ=ar(bl(),1);var Xb={},Bx={};Xb.add=function(e,t){let n=`${e.toLowerCase()}:${t}`;l(Bx[n])||(Bx[n]=!0)};Xb.remove=function(e,t){let n=`${e.toLowerCase()}:${t}`;l(Bx[n])&&delete Bx[n]};function JTe(e){let t=new eJ.default(e);t.normalize();let n=t.authority();if(n.length!==0){if(t.authority(n),n.indexOf("@")!==-1&&(n=n.split("@")[1]),n.indexOf(":")===-1){let i=t.scheme();if(i.length===0&&(i=window.location.protocol,i=i.substring(0,i.length-1)),i==="http")n+=":80";else if(i==="https")n+=":443";else return}return n}}Xb.contains=function(e){let t=JTe(e);return!!(l(t)&&l(Bx[t]))};Xb.clear=function(){Bx={}};var Kb=Xb;var oJ=function(){try{let e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob",e.responseType==="blob"}catch{return!1}}();function St(e){e=y(e,y.EMPTY_OBJECT),typeof e=="string"&&(e={url:e}),this._url=void 0,this._templateValues=$d(e.templateValues,{}),this._queryParameters=$d(e.queryParameters,{}),this.headers=$d(e.headers,{}),this.request=y(e.request,new Zo),this.proxy=e.proxy,this.retryCallback=e.retryCallback,this.retryAttempts=y(e.retryAttempts,0),this._retryCount=0,y(e.parseUrl,!0)?this.parseUrl(e.url,!0,!0):this._url=e.url}function $d(e,t){return l(e)?Ye(e):t}St.createIfNeeded=function(e){return e instanceof St?e.getDerivedResource({request:e.request}):typeof e!="string"?e:new St({url:e})};var Lx;St.supportsImageBitmapOptions=function(){if(l(Lx))return Lx;if(typeof createImageBitmap!="function")return Lx=Promise.resolve(!1),Lx;let e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC";return Lx=St.fetchBlob({url:e}).then(function(t){let n={imageOrientation:"flipY",premultiplyAlpha:"none",colorSpaceConversion:"none"};return Promise.all([createImageBitmap(t,n),createImageBitmap(t)])}).then(function(t){let n=Jd(t[0]),i=Jd(t[1]);return n[1]!==i[1]}).catch(function(){return!1}),Lx};Object.defineProperties(St,{isBlobSupported:{get:function(){return oJ}}});Object.defineProperties(St.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(e){this.parseUrl(e,!1,!1)}},extension:{get:function(){return Dx(this._url)}},isDataUri:{get:function(){return a_(this._url)}},isBlobUri:{get:function(){return Ix(this._url)}},isCrossOriginUrl:{get:function(){return Px(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}});St.prototype.toString=function(){return this.getUrlComponent(!0,!0)};St.prototype.parseUrl=function(e,t,n,i){let o=new iJ.default(e),r=ZTe(o.query());this._queryParameters=t?RP(r,this.queryParameters,n):r,o.search(""),o.fragment(""),l(i)&&o.scheme()===""&&(o=o.absoluteTo(s_(i))),this._url=o.toString()};function ZTe(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:bu(e)}function RP(e,t,n){if(!n)return gt(e,t);let i=Ye(e,!0);for(let o in t)if(t.hasOwnProperty(o)){let r=i[o],s=t[o];l(r)?(Array.isArray(r)||(r=i[o]=[r]),i[o]=r.concat(s)):i[o]=Array.isArray(s)?s.slice():s}return i}St.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${QTe(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let i=this._templateValues;return Object.keys(i).length>0&&(n=n.replace(/{(.*?)}/g,function(o,r){let s=i[r];return l(s)?encodeURIComponent(s):o})),t&&l(this.proxy)&&(n=this.proxy.getURL(n)),n};function QTe(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!l(e[t[0]])?`?${t[0]}`:`?${Mx(e)}`}St.prototype.setQueryParameters=function(e,t){t?this._queryParameters=RP(this._queryParameters,e,!1):this._queryParameters=RP(e,this._queryParameters,!1)};St.prototype.appendQueryParameters=function(e){this._queryParameters=RP(e,this._queryParameters,!0)};St.prototype.setTemplateValues=function(e,t){t?this._templateValues=gt(this._templateValues,e):this._templateValues=gt(e,this._templateValues)};St.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,l(e.url)){let n=y(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return l(e.queryParameters)&&(t._queryParameters=gt(e.queryParameters,t.queryParameters)),l(e.templateValues)&&(t._templateValues=gt(e.templateValues,t.templateValues)),l(e.headers)&&(t.headers=gt(e.headers,t.headers)),l(e.proxy)&&(t.proxy=e.proxy),l(e.request)&&(t.request=e.request),l(e.retryCallback)&&(t.retryCallback=e.retryCallback),l(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};St.prototype.retryOnError=function(e){let t=this.retryCallback;if(typeof t!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(t(this,e)).then(function(i){return++n._retryCount,i})};St.prototype.clone=function(e){return l(e)?(e._url=this._url,e._queryParameters=Ye(this._queryParameters),e._templateValues=Ye(this._templateValues),e.headers=Ye(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new St({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1})};St.prototype.getBaseUri=function(e){return wP(this.getUrlComponent(e),e)};St.prototype.appendForwardSlash=function(){this._url=SP(this._url)};St.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};St.fetchArrayBuffer=function(e){return new St(e).fetchArrayBuffer()};St.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};St.fetchBlob=function(e){return new St(e).fetchBlob()};St.prototype.fetchImage=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.preferImageBitmap,!1),n=y(e.preferBlob,!1),i=y(e.flipY,!1),o=y(e.skipColorSpaceConversion,!1);if(_G(this.request),!oJ||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return pG({resource:this,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:t});let r=this.fetchBlob();if(!l(r))return;let s,a,c,u;return St.supportsImageBitmapOptions().then(function(f){return s=f,a=s&&t,r}).then(function(f){if(!l(f))return;if(u=f,a)return St.createImageBitmapFromBlob(f,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o});let d=window.URL.createObjectURL(f);return c=new St({url:d}),pG({resource:c,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:!1})}).then(function(f){if(l(f))return f.blob=u,a||window.URL.revokeObjectURL(c.url),f}).catch(function(f){return l(c)&&window.URL.revokeObjectURL(c.url),f.blob=u,Promise.reject(f)})};function pG(e){let t=e.resource,n=e.flipY,i=e.skipColorSpaceConversion,o=e.preferImageBitmap,r=t.request;r.url=t.url,r.requestFunction=function(){let a=!1;!t.isDataUri&&!t.isBlobUri&&(a=t.isCrossOriginUrl);let c=oa();return St._Implementations.createImage(r,a,c,n,i,o),c.promise};let s=oc.request(r);if(l(s))return s.catch(function(a){return r.state!==ti.FAILED?Promise.reject(a):t.retryOnError(a).then(function(c){return c?(r.state=ti.UNISSUED,r.deferred=void 0,pG({resource:t,flipY:n,skipColorSpaceConversion:i,preferImageBitmap:o})):Promise.reject(a)})})}St.fetchImage=function(e){return new St(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};St.prototype.fetchText=function(){return this.fetch({responseType:"text"})};St.fetchText=function(e){return new St(e).fetchText()};St.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(l(e))return e.then(function(t){if(l(t))return JSON.parse(t)})};St.fetchJson=function(e){return new St(e).fetchJson()};St.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};St.fetchXML=function(e){return new St(e).fetchXML()};St.prototype.fetchJsonp=function(e){e=y(e,"callback"),_G(this.request);let t;do t=`loadJsonp${P.nextRandomNumber().toString().substring(2,8)}`;while(l(window[t]));return rJ(this,e,t)};function rJ(e,t,n){let i={};i[t]=n,e.setQueryParameters(i);let o=e.request,r=e.url;o.url=r,o.requestFunction=function(){let a=oa();return window[n]=function(c){a.resolve(c);try{delete window[n]}catch{window[n]=void 0}},St._Implementations.loadAndExecuteScript(r,n,a),a.promise};let s=oc.request(o);if(l(s))return s.catch(function(a){return o.state!==ti.FAILED?Promise.reject(a):e.retryOnError(a).then(function(c){return c?(o.state=ti.UNISSUED,o.deferred=void 0,rJ(e,t,n)):Promise.reject(a)})})}St.fetchJsonp=function(e){return new St(e).fetchJsonp(e.callbackParameterName)};St.prototype._makeRequest=function(e){let t=this;_G(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let r=e.responseType,s=gt(e.headers,t.headers),a=e.overrideMimeType,c=e.method,u=e.data,f=oa(),d=St._Implementations.loadWithXhr(i,r,c,u,s,f,a);return l(d)&&l(d.abort)&&(n.cancelFunction=function(){d.abort()}),f.promise};let o=oc.request(n);if(l(o))return o.then(function(r){return n.cancelFunction=void 0,r}).catch(function(r){return n.cancelFunction=void 0,n.state!==ti.FAILED?Promise.reject(r):t.retryOnError(r).then(function(s){return s?(n.state=ti.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)})})};function _G(e){if(e.state===ti.ISSUED||e.state===ti.ACTIVE)throw new de("The Resource is already being fetched.");e.state=ti.UNISSUED,e.deferred=void 0}var $Te=/^data:(.*?)(;base64)?,(.*)$/;function MP(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function tJ(e,t){let n=MP(e,t),i=new ArrayBuffer(n.length),o=new Uint8Array(i);for(let r=0;r<n.length;r++)o[r]=n.charCodeAt(r);return i}function eEe(e,t){t=y(t,"");let n=e[1],i=!!e[2],o=e[3],r,s;switch(t){case"":case"text":return MP(i,o);case"arraybuffer":return tJ(i,o);case"blob":return r=tJ(i,o),new Blob([r],{type:n});case"document":return s=new DOMParser,s.parseFromString(MP(i,o),n);case"json":return JSON.parse(MP(i,o));default:}}St.prototype.fetch=function(e){return e=$d(e,{}),e.method="GET",this._makeRequest(e)};St.fetch=function(e){return new St(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};St.prototype.delete=function(e){return e=$d(e,{}),e.method="DELETE",this._makeRequest(e)};St.delete=function(e){return new St(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})};St.prototype.head=function(e){return e=$d(e,{}),e.method="HEAD",this._makeRequest(e)};St.head=function(e){return new St(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};St.prototype.options=function(e){return e=$d(e,{}),e.method="OPTIONS",this._makeRequest(e)};St.options=function(e){return new St(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};St.prototype.post=function(e,t){return El.defined("data",e),t=$d(t,{}),t.method="POST",t.data=e,this._makeRequest(t)};St.post=function(e){return new St(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};St.prototype.put=function(e,t){return El.defined("data",e),t=$d(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)};St.put=function(e){return new St(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};St.prototype.patch=function(e,t){return El.defined("data",e),t=$d(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)};St.patch=function(e){return new St(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};St._Implementations={};St._Implementations.loadImageElement=function(e,t,n){let i=new Image;i.onload=function(){i.naturalWidth===0&&i.naturalHeight===0&&i.width===0&&i.height===0&&(i.width=300,i.height=150),n.resolve(i)},i.onerror=function(o){n.reject(o)},t&&(Kb.contains(e)?i.crossOrigin="use-credentials":i.crossOrigin=""),i.src=e};St._Implementations.createImage=function(e,t,n,i,o,r){let s=e.url;St.supportsImageBitmapOptions().then(function(a){if(!(a&&r)){St._Implementations.loadImageElement(s,t,n);return}let c="blob",u="GET",f=oa(),d=St._Implementations.loadWithXhr(s,c,u,void 0,void 0,f,void 0,void 0,void 0);return l(d)&&l(d.abort)&&(e.cancelFunction=function(){d.abort()}),f.promise.then(function(p){if(!l(p)){n.reject(new de(`Successfully retrieved ${s} but it contained no content.`));return}return St.createImageBitmapFromBlob(p,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o})}).then(function(p){n.resolve(p)})}).catch(function(a){n.reject(a)})};St.createImageBitmapFromBlob=function(e,t){return El.defined("options",t),El.typeOf.bool("options.flipY",t.flipY),El.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),El.typeOf.bool("options.skipColorSpaceConversion",t.skipColorSpaceConversion),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:t.skipColorSpaceConversion?"none":"default"})};function nJ(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function tEe(e,t,n,i,o,r,s){let a,c;Promise.all([import("url"),import("zlib")]).then(([u,f])=>(a=u.parse(e),c=f,a.protocol==="https:"?import("https"):import("http"))).then(u=>{let f={protocol:a.protocol,hostname:a.hostname,port:a.port,path:a.path,query:a.query,method:n,headers:o};u.request(f).on("response",function(d){if(d.statusCode<200||d.statusCode>=300){r.reject(new Sh(d.statusCode,d,d.headers));return}let p=[];d.on("data",function(g){p.push(g)}),d.on("end",function(){let g=Buffer.concat(p);d.headers["content-encoding"]==="gzip"?c.gunzip(g,function(h,A){h?r.reject(new de("Error decompressing response.")):r.resolve(nJ(A,t))}):r.resolve(nJ(g,t))})}).on("error",function(d){r.reject(new Sh)}).end()})}var nEe=typeof XMLHttpRequest>"u";St._Implementations.loadWithXhr=function(e,t,n,i,o,r,s){let a=$Te.exec(e);if(a!==null){r.resolve(eEe(a,t));return}if(nEe){tEe(e,t,n,i,o,r,s);return}let c=new XMLHttpRequest;if(Kb.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),l(s)&&l(c.overrideMimeType)&&c.overrideMimeType(s),l(o))for(let f in o)o.hasOwnProperty(f)&&c.setRequestHeader(f,o[f]);l(t)&&(c.responseType=t);let u=!1;return typeof e=="string"&&(u=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),c.onload=function(){if((c.status<200||c.status>=300)&&!(u&&c.status===0)){r.reject(new Sh(c.status,c.response,c.getAllResponseHeaders()));return}let f=c.response,d=c.responseType;if(n==="HEAD"||n==="OPTIONS"){let g=c.getAllResponseHeaders().trim().split(/[\r\n]+/),h={};g.forEach(function(A){let x=A.split(": "),C=x.shift();h[C]=x.join(": ")}),r.resolve(h);return}if(c.status===204)r.resolve();else if(l(f)&&(!l(t)||d===t))r.resolve(f);else if(t==="json"&&typeof f=="string")try{r.resolve(JSON.parse(f))}catch(p){r.reject(p)}else(d===""||d==="document")&&l(c.responseXML)&&c.responseXML.hasChildNodes()?r.resolve(c.responseXML):(d===""||d==="text")&&l(c.responseText)?r.resolve(c.responseText):r.reject(new de("Invalid XMLHttpRequest response type."))},c.onerror=function(f){r.reject(new Sh)},c.send(i),c};St._Implementations.loadAndExecuteScript=function(e,t,n){return Ox(e,t).catch(function(i){n.reject(i)})};St._DefaultImplementations={};St._DefaultImplementations.createImage=St._Implementations.createImage;St._DefaultImplementations.loadWithXhr=St._Implementations.loadWithXhr;St._DefaultImplementations.loadAndExecuteScript=St._Implementations.loadAndExecuteScript;St.DEFAULT=Object.freeze(new St({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var we=St;function Zb(e){e=y(e,y.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=y(e.addNewLeapSeconds,!0),l(e.data)?sJ(this,e.data):sJ(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}Zb.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new de(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new Zb({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};Zb.NONE=Object.freeze({compute:function(e,t){return l(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new Gy(0,0,0,0,0),t}});Zb.prototype.compute=function(e,t){if(!l(this._samples))return;if(l(t)||(t=new Gy(0,0,0,0,0)),this._samples.length===0)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;let n=this._dates,i=this._lastIndex,o=0,r=0;if(l(i)){let a=n[i],c=n[i+1],u=ee.lessThanOrEquals(a,e),f=!l(c),d=f||ee.greaterThanOrEquals(c,e);if(u&&d)return o=i,!f&&c.equals(e)&&++o,r=o+1,cJ(this,n,this._samples,e,o,r,t),t}let s=Do(n,e,ee.compare,this._dateColumn);return s>=0?(s<n.length-1&&n[s+1].equals(e)&&++s,o=s,r=s):(r=~s,o=r-1,o<0&&(o=0)),this._lastIndex=o,cJ(this,n,this._samples,e,o,r,t),t};function iEe(e,t){return ee.compare(e.julianDate,t)}function sJ(e,t){if(!l(t.columnNames))throw new de("Error in loaded EOP data: The columnNames property is required.");if(!l(t.samples))throw new de("Error in loaded EOP data: The samples property is required.");let n=t.columnNames.indexOf("modifiedJulianDateUtc"),i=t.columnNames.indexOf("xPoleWanderRadians"),o=t.columnNames.indexOf("yPoleWanderRadians"),r=t.columnNames.indexOf("ut1MinusUtcSeconds"),s=t.columnNames.indexOf("xCelestialPoleOffsetRadians"),a=t.columnNames.indexOf("yCelestialPoleOffsetRadians"),c=t.columnNames.indexOf("taiMinusUtcSeconds");if(n<0||i<0||o<0||r<0||s<0||a<0||c<0)throw new de("Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");let u=e._samples=t.samples,f=e._dates=[];e._dateColumn=n,e._xPoleWanderRadiansColumn=i,e._yPoleWanderRadiansColumn=o,e._ut1MinusUtcSecondsColumn=r,e._xCelestialPoleOffsetRadiansColumn=s,e._yCelestialPoleOffsetRadiansColumn=a,e._taiMinusUtcSecondsColumn=c,e._columnCount=t.columnNames.length,e._lastIndex=void 0;let d,p=e._addNewLeapSeconds;for(let g=0,h=u.length;g<h;g+=e._columnCount){let A=u[g+n],x=u[g+c],C=A+Zn.MODIFIED_JULIAN_DATE_DIFFERENCE,T=new ee(C,x,Jn.TAI);if(f.push(T),p){if(x!==d&&l(d)){let E=ee.leapSeconds,S=Do(E,T,iEe);if(S<0){let v=new zi(T,x);E.splice(~S,0,v)}}d=x}}}function aJ(e,t,n,i,o){let r=n*i;o.xPoleWander=t[r+e._xPoleWanderRadiansColumn],o.yPoleWander=t[r+e._yPoleWanderRadiansColumn],o.xPoleOffset=t[r+e._xCelestialPoleOffsetRadiansColumn],o.yPoleOffset=t[r+e._yCelestialPoleOffsetRadiansColumn],o.ut1MinusUtc=t[r+e._ut1MinusUtcSecondsColumn]}function Jb(e,t,n){return t+e*(n-t)}function cJ(e,t,n,i,o,r,s){let a=e._columnCount;if(r>t.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;let c=t[o],u=t[r];if(c.equals(u)||i.equals(c))return aJ(e,n,o,a,s),s;if(i.equals(u))return aJ(e,n,r,a,s),s;let f=ee.secondsDifference(i,c)/ee.secondsDifference(u,c),d=o*a,p=r*a,g=n[d+e._ut1MinusUtcSecondsColumn],h=n[p+e._ut1MinusUtcSecondsColumn],A=h-g;if(A>.5||A<-.5){let x=n[d+e._taiMinusUtcSecondsColumn],C=n[p+e._taiMinusUtcSecondsColumn];x!==C&&(u.equals(i)?g=h:h-=C-x)}return s.xPoleWander=Jb(f,n[d+e._xPoleWanderRadiansColumn],n[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=Jb(f,n[d+e._yPoleWanderRadiansColumn],n[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=Jb(f,n[d+e._xCelestialPoleOffsetRadiansColumn],n[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=Jb(f,n[d+e._yCelestialPoleOffsetRadiansColumn],n[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=Jb(f,g,h),s}var BP=Zb;function va(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.roll=y(n,0)}va.fromQuaternion=function(e,t){l(t)||(t=new va);let n=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),o=2*(e.w*e.x+e.y*e.z),r=1-2*(e.y*e.y+e.z*e.z),s=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(s,r),t.roll=Math.atan2(o,i),t.pitch=-P.asinClamped(n),t};va.fromDegrees=function(e,t,n,i){return l(i)||(i=new va),i.heading=e*P.RADIANS_PER_DEGREE,i.pitch=t*P.RADIANS_PER_DEGREE,i.roll=n*P.RADIANS_PER_DEGREE,i};va.clone=function(e,t){if(l(e))return l(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new va(e.heading,e.pitch,e.roll)};va.equals=function(e,t){return e===t||l(e)&&l(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};va.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.heading,t.heading,n,i)&&P.equalsEpsilon(e.pitch,t.pitch,n,i)&&P.equalsEpsilon(e.roll,t.roll,n,i)};va.prototype.clone=function(e){return va.clone(this,e)};va.prototype.equals=function(e){return va.equals(this,e)};va.prototype.equalsEpsilon=function(e,t,n){return va.equalsEpsilon(this,e,t,n)};va.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var rc=va;var lJ=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function oEe(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t<n;++t){let i=e[t].getAttribute("src"),o=lJ.exec(i);if(o!==null)return o[1]}}var Nx;function uJ(e){return typeof document>"u"?e:(l(Nx)||(Nx=document.createElement("a")),Nx.href=e,Nx.href=Nx.href,Nx.href)}var Yy;function fJ(){if(l(Yy))return Yy;let e;return typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(jI.toUrl)?e=s_("..",qy("Core/buildModuleUrl.js")):e=oEe(),Yy=new we({url:uJ(e)}),Yy.appendForwardSlash(),Yy}function rEe(e){return uJ(jI.toUrl(`../${e}`))}function dJ(e){return fJ().getDerivedResource({url:e}).url}var LP;function qy(e){return l(LP)||(typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(jI.toUrl)?LP=rEe:LP=dJ),LP(e)}qy._cesiumScriptRegex=lJ;qy._buildModuleUrlFromBaseUrl=dJ;qy._clearBaseResource=function(){Yy=void 0};qy.setBaseUrl=function(e){Yy=we.DEFAULT.getDerivedResource({url:e})};qy.getCesiumBaseUrl=fJ;var en=qy;function sEe(e,t,n){this.x=e,this.y=t,this.s=n}var Fx=sEe;function AG(e){e=y(e,y.EMPTY_OBJECT),this._xysFileUrlTemplate=we.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=y(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=y(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new ee(this._sampleZeroJulianEphemerisDate,0,Jn.TAI),this._stepSizeDays=y(e.stepSizeDays,1),this._samplesPerXysFile=y(e.samplesPerXysFile,1e3),this._totalSamples=y(e.totalSamples,27426),this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),o=Math.pow(this._stepSizeDays,t);for(let r=0;r<=t;++r){n[r]=o,i[r]=r*this._stepSizeDays;for(let s=0;s<=t;++s)s!==r&&(n[r]*=r-s);n[r]=1/n[r]}this._work=new Array(t+1),this._coef=new Array(t+1)}var aEe=new ee(0,0,Jn.TAI);function gG(e,t,n){let i=aEe;return i.dayNumber=t,i.secondsOfDay=n,ee.daysDifference(i,e._sampleZeroDateTT)}AG.prototype.preload=function(e,t,n,i){let o=gG(this,e,t),r=gG(this,n,i),s=o/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);let a=r/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;a>=this._totalSamples&&(a=this._totalSamples-1);let c=s/this._samplesPerXysFile|0,u=a/this._samplesPerXysFile|0,f=[];for(let d=c;d<=u;++d)f.push(yG(this,d));return Promise.all(f)};AG.prototype.computeXysRadians=function(e,t,n){let i=gG(this,e,t);if(i<0)return;let o=i/this._stepSizeDays|0;if(o>=this._totalSamples)return;let r=this._interpolationOrder,s=o-(r/2|0);s<0&&(s=0);let a=s+r;a>=this._totalSamples&&(a=this._totalSamples-1,s=a-r,s<0&&(s=0));let c=!1,u=this._samples;if(l(u[s*3])||(yG(this,s/this._samplesPerXysFile|0),c=!0),l(u[a*3])||(yG(this,a/this._samplesPerXysFile|0),c=!0),c)return;l(n)?(n.x=0,n.y=0,n.s=0):n=new Fx(0,0,0);let f=i-s*this._stepSizeDays,d=this._work,p=this._denominators,g=this._coef,h=this._xTable,A,x;for(A=0;A<=r;++A)d[A]=f-h[A];for(A=0;A<=r;++A){for(g[A]=1,x=0;x<=r;++x)x!==A&&(g[A]*=d[x]);g[A]*=p[A];let C=(s+A)*3;n.x+=g[A]*u[C++],n.y+=g[A]*u[C++],n.s+=g[A]*u[C]}return n};function yG(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,i=e._xysFileUrlTemplate;l(i)?n=i.getDerivedResource({templateValues:{0:t}}):n=new we({url:en(`Assets/IAU2006_XYS/IAU2006_XYS_${t}.json`)});let o=n.fetchJson().then(function(r){e._chunkDownloadsInProgress[t]=!1;let s=e._samples,a=r.samples,c=t*e._samplesPerXysFile*3;for(let u=0,f=a.length;u<f;++u)s[c+u]=a[u]});return e._chunkDownloadsInProgress[t]=o,o}var NP=AG;var Hi={},xG={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},Ux={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},CG={},Uc={east:new m,north:new m,up:new m,west:new m,south:new m,down:new m},c_=new m,l_=new m,u_=new m;Hi.localFrameToFixedFrameGenerator=function(e,t){if(!xG.hasOwnProperty(e)||!xG[e].hasOwnProperty(t))throw new fe("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=xG[e][t],i,o=e+t;return l(CG[o])?i=CG[o]:(i=function(r,s,a){if(l(a)||(a=new B),m.equalsEpsilon(r,m.ZERO,P.EPSILON14))m.unpack(Ux[e],0,c_),m.unpack(Ux[t],0,l_),m.unpack(Ux[n],0,u_);else if(P.equalsEpsilon(r.x,0,P.EPSILON14)&&P.equalsEpsilon(r.y,0,P.EPSILON14)){let c=P.sign(r.z);m.unpack(Ux[e],0,c_),e!=="east"&&e!=="west"&&m.multiplyByScalar(c_,c,c_),m.unpack(Ux[t],0,l_),t!=="east"&&t!=="west"&&m.multiplyByScalar(l_,c,l_),m.unpack(Ux[n],0,u_),n!=="east"&&n!=="west"&&m.multiplyByScalar(u_,c,u_)}else{s=y(s,oe.WGS84),s.geodeticSurfaceNormal(r,Uc.up);let c=Uc.up,u=Uc.east;u.x=-r.y,u.y=r.x,u.z=0,m.normalize(u,Uc.east),m.cross(c,u,Uc.north),m.multiplyByScalar(Uc.up,-1,Uc.down),m.multiplyByScalar(Uc.east,-1,Uc.west),m.multiplyByScalar(Uc.north,-1,Uc.south),c_=Uc[e],l_=Uc[t],u_=Uc[n]}return a[0]=c_.x,a[1]=c_.y,a[2]=c_.z,a[3]=0,a[4]=l_.x,a[5]=l_.y,a[6]=l_.z,a[7]=0,a[8]=u_.x,a[9]=u_.y,a[10]=u_.z,a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a},CG[o]=i),i};Hi.eastNorthUpToFixedFrame=Hi.localFrameToFixedFrameGenerator("east","north");Hi.northEastDownToFixedFrame=Hi.localFrameToFixedFrameGenerator("north","east");Hi.northUpEastToFixedFrame=Hi.localFrameToFixedFrameGenerator("north","up");Hi.northWestUpToFixedFrame=Hi.localFrameToFixedFrameGenerator("north","west");var cEe=new Ne,lEe=new m(1,1,1),uEe=new B;Hi.headingPitchRollToFixedFrame=function(e,t,n,i,o){i=y(i,Hi.eastNorthUpToFixedFrame);let r=Ne.fromHeadingPitchRoll(t,cEe),s=B.fromTranslationQuaternionRotationScale(m.ZERO,r,lEe,uEe);return o=i(e,n,o),B.multiply(o,s,o)};var fEe=new B,dEe=new Z;Hi.headingPitchRollQuaternion=function(e,t,n,i,o){let r=Hi.headingPitchRollToFixedFrame(e,t,n,i,fEe),s=B.getMatrix3(r,dEe);return Ne.fromRotationMatrix(s,o)};var mEe=new m(1,1,1),hEe=new m,mJ=new B,pEe=new B,_Ee=new Z,gEe=new Ne;Hi.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=y(t,oe.WGS84),n=y(n,Hi.eastNorthUpToFixedFrame),l(i)||(i=new rc);let o=B.getTranslation(e,hEe);if(m.equals(o,m.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;let r=B.inverseTransformation(n(o,t,mJ),mJ),s=B.setScale(e,mEe,pEe);s=B.setTranslation(s,m.ZERO,s),r=B.multiply(r,s,r);let a=Ne.fromRotationMatrix(B.getMatrix3(r,_Ee),gEe);return a=Ne.normalize(a,a),rc.fromQuaternion(a,i)};var yEe=6*3600+41*60+50.54841,AEe=8640184812866e-6,xEe=.093104,CEe=-62e-7,TEe=11772758384668e-32,EEe=72921158553e-15,bEe=P.TWO_PI/86400,FP=new ee;Hi.computeTemeToPseudoFixedMatrix=function(e,t){FP=ee.addSeconds(e,-ee.computeTaiMinusUtc(e),FP);let n=FP.dayNumber,i=FP.secondsOfDay,o,r=n-2451545;i>=43200?o=(r+.5)/Zn.DAYS_PER_JULIAN_CENTURY:o=(r-.5)/Zn.DAYS_PER_JULIAN_CENTURY;let a=(yEe+o*(AEe+o*(xEe+o*CEe)))*bEe%P.TWO_PI,c=EEe+TEe*(n-24515455e-1),u=(i+Zn.SECONDS_PER_DAY*.5)%Zn.SECONDS_PER_DAY,f=a+c*u,d=Math.cos(f),p=Math.sin(f);return l(t)?(t[0]=d,t[1]=-p,t[2]=0,t[3]=p,t[4]=d,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new Z(d,p,0,-p,d,0,0,0,1)};Hi.iau2006XysData=new NP;Hi.earthOrientationParameters=BP.NONE;var bG=32.184,SEe=2451545;Hi.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+bG,i=e.stop.dayNumber,o=e.stop.secondsOfDay+bG;return Hi.iau2006XysData.preload(t,n,i,o)};Hi.computeIcrfToFixedMatrix=function(e,t){l(t)||(t=new Z);let n=Hi.computeFixedToIcrfMatrix(e,t);if(l(n))return Z.transpose(n,t)};var wEe=new Fx(0,0,0),vEe=new Gy(0,0,0,0,0,0),TG=new Z,EG=new Z;Hi.computeFixedToIcrfMatrix=function(e,t){l(t)||(t=new Z);let n=Hi.earthOrientationParameters.compute(e,vEe);if(!l(n))return;let i=e.dayNumber,o=e.secondsOfDay+bG,r=Hi.iau2006XysData.computeXysRadians(i,o,wEe);if(!l(r))return;let s=r.x+n.xPoleOffset,a=r.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-s*s-a*a)),u=TG;u[0]=1-c*s*s,u[3]=-c*s*a,u[6]=s,u[1]=-c*s*a,u[4]=1-c*a*a,u[7]=a,u[2]=-s,u[5]=-a,u[8]=1-c*(s*s+a*a);let f=Z.fromRotationZ(-r.s,EG),d=Z.multiply(u,f,TG),p=e.dayNumber,g=e.secondsOfDay-ee.computeTaiMinusUtc(e)+n.ut1MinusUtc,h=p-2451545,A=g/Zn.SECONDS_PER_DAY,x=.779057273264+A+.00273781191135448*(h+A);x=x%1*P.TWO_PI;let C=Z.fromRotationZ(x,EG),T=Z.multiply(d,C,TG),E=Math.cos(n.xPoleWander),S=Math.cos(n.yPoleWander),v=Math.sin(n.xPoleWander),D=Math.sin(n.yPoleWander),O=i-SEe+o/Zn.SECONDS_PER_DAY;O/=36525;let M=-47e-6*O*P.RADIANS_PER_DEGREE/3600,L=Math.cos(M),N=Math.sin(M),_=EG;return _[0]=E*L,_[1]=E*N,_[2]=v,_[3]=-S*N+D*v*L,_[4]=S*L+D*v*N,_[5]=-D*E,_[6]=-D*N-S*v*L,_[7]=D*L-S*v*N,_[8]=S*E,Z.multiply(T,_,t)};var DEe=new re;Hi.pointToWindowCoordinates=function(e,t,n,i){return i=Hi.pointToGLWindowCoordinates(e,t,n,i),i.y=2*t[5]-i.y,i};Hi.pointToGLWindowCoordinates=function(e,t,n,i){l(i)||(i=new H);let o=DEe;return B.multiplyByVector(e,re.fromElements(n.x,n.y,n.z,1,o),o),re.multiplyByScalar(o,1/o.w,o),B.multiplyByVector(t,o,o),H.fromCartesian4(o,i)};var IEe=new m,PEe=new m,OEe=new m;Hi.rotationMatrixFromPositionVelocity=function(e,t,n,i){let o=y(n,oe.WGS84).geodeticSurfaceNormal(e,IEe),r=m.cross(t,o,PEe);m.equalsEpsilon(r,m.ZERO,P.EPSILON6)&&(r=m.clone(m.UNIT_X,r));let s=m.cross(r,t,OEe);return m.normalize(s,s),m.cross(t,s,r),m.negate(r,r),m.normalize(r,r),l(i)||(i=new Z),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=r.x,i[4]=r.y,i[5]=r.z,i[6]=s.x,i[7]=s.y,i[8]=s.z,i};var hJ=new B(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),pJ=new he,_J=new m,MEe=new m,REe=new Z,SG=new B,gJ=new B;Hi.basisTo2D=function(e,t,n){let i=B.getTranslation(t,MEe),o=e.ellipsoid,r=o.cartesianToCartographic(i,pJ),s=e.project(r,_J);m.fromElements(s.z,s.x,s.y,s);let a=Hi.eastNorthUpToFixedFrame(i,o,SG),c=B.inverseTransformation(a,gJ),u=B.getMatrix3(t,REe),f=B.multiplyByMatrix3(c,u,n);return B.multiply(hJ,f,n),B.setTranslation(n,s,n),n};Hi.wgs84To2DModelMatrix=function(e,t,n){let i=e.ellipsoid,o=Hi.eastNorthUpToFixedFrame(t,i,SG),r=B.inverseTransformation(o,gJ),s=i.cartesianToCartographic(t,pJ),a=e.project(s,_J);m.fromElements(a.z,a.x,a.y,a);let c=B.fromTranslation(a,SG);return B.multiply(hJ,r,n),B.multiply(c,n,n),n};var Rt=Hi;function wG(e){e=y(e,y.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=y(e.primitiveType,Le.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=y(e.geometryType,Mf.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}wG.computeNumberOfVertices=function(e){let t=-1;for(let n in e.attributes)if(e.attributes.hasOwnProperty(n)&&l(e.attributes[n])&&l(e.attributes[n].values)){let i=e.attributes[n];t=i.values.length/i.componentsPerAttribute}return t};var BEe=new he,LEe=new m,yJ=new B,NEe=[new he,new he,new he],FEe=[new H,new H,new H],UEe=[new H,new H,new H],VEe=new m,kEe=new Ne,zEe=new B,HEe=new eo;wG._textureCoordinateRotationPoints=function(e,t,n,i){let o,r=le.center(i,BEe),s=he.toCartesian(r,n,LEe),a=Rt.eastNorthUpToFixedFrame(s,n,yJ),c=B.inverse(a,yJ),u=FEe,f=NEe;f[0].longitude=i.west,f[0].latitude=i.south,f[1].longitude=i.west,f[1].latitude=i.north,f[2].longitude=i.east,f[2].latitude=i.south;let d=VEe;for(o=0;o<3;o++)he.toCartesian(f[o],n,d),d=B.multiplyByPointAsVector(c,d,d),u[o].x=d.x,u[o].y=d.y;let p=Ne.fromAxisAngle(m.UNIT_Z,-t,kEe),g=Z.fromQuaternion(p,zEe),h=e.length,A=Number.POSITIVE_INFINITY,x=Number.POSITIVE_INFINITY,C=Number.NEGATIVE_INFINITY,T=Number.NEGATIVE_INFINITY;for(o=0;o<h;o++)d=B.multiplyByPointAsVector(c,e[o],d),d=Z.multiplyByVector(g,d,d),A=Math.min(A,d.x),x=Math.min(x,d.y),C=Math.max(C,d.x),T=Math.max(T,d.y);let E=eo.fromRotation(t,HEe),S=UEe;S[0].x=A,S[0].y=x,S[1].x=A,S[1].y=T,S[2].x=C,S[2].y=x;let v=u[0],D=u[2].x-v.x,O=u[1].y-v.y;for(o=0;o<3;o++){let b=S[o];eo.multiplyByVector(E,b,b),b.x=(b.x-v.x)/D,b.y=(b.y-v.y)/O}let M=S[0],L=S[1],N=S[2],_=new Array(6);return H.pack(M,_),H.pack(L,_,2),H.pack(N,_,4),_};var dt=wG;function GEe(e){e=y(e,y.EMPTY_OBJECT),this.componentDatatype=e.componentDatatype,this.componentsPerAttribute=e.componentsPerAttribute,this.normalize=y(e.normalize,!1),this.values=e.values}var ve=GEe;function Vx(e,t,n,i,o){this._format=e,this._datatype=t,this._width=n,this._height=i,this._buffer=o}Object.defineProperties(Vx.prototype,{internalFormat:{get:function(){return this._format}},pixelDatatype:{get:function(){return this._datatype}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},bufferView:{get:function(){return this._buffer}}});Vx.clone=function(e){if(l(e))return new Vx(e._format,e._datatype,e._width,e._height,e._buffer)};Vx.prototype.clone=function(){return Vx.clone(this)};var UP=Vx;var AJ=ar(bl(),1);function xJ(){if(!l(ra._canTransferArrayBuffer)){let e=new Worker(TJ("Workers/transferTypedArrayTest.js"));e.postMessage=y(e.webkitPostMessage,e.postMessage);let t=99,n=new Int8Array([t]);try{e.postMessage({array:n},[n.buffer])}catch{return ra._canTransferArrayBuffer=!1,ra._canTransferArrayBuffer}let i=oa();e.onmessage=function(o){let r=o.data.array,s=l(r)&&r[0]===t;i.resolve(s),e.terminate(),ra._canTransferArrayBuffer=s},ra._canTransferArrayBuffer=i.promise}return ra._canTransferArrayBuffer}var DG=new ge;function CJ(e,t){--e._activeTasks;let n=t.id;if(!l(n))return;let i=e._deferreds,o=i[n];if(l(t.error)){let r=t.error;r.name==="RuntimeError"?(r=new de(t.error.message),r.stack=t.error.stack):r.name==="DeveloperError"&&(r=new fe(t.error.message),r.stack=t.error.stack),DG.raiseEvent(r),o.reject(r)}else DG.raiseEvent(),o.resolve(t.result);delete i[n]}function TJ(e){let t=en(e);if(Px(t)){let n=`importScripts("${t}");`,i;try{i=new Blob([n],{type:"application/javascript"})}catch{let s=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,a=new s;a.append(n),i=a.getBlob("application/javascript")}t=(window.URL||window.webkitURL).createObjectURL(i)}return t}var vG;function WEe(){return l(vG)||(vG=TJ("Workers/cesiumWorkerBootstrapper.js")),vG}function EJ(e){let t=new Worker(WEe());t.postMessage=y(t.webkitPostMessage,t.postMessage);let n={loaderConfig:{paths:{Workers:en("Workers")},baseUrl:en.getCesiumBaseUrl().url},workerModule:e._workerPath};return t.postMessage(n),t.onmessage=function(i){CJ(e,i.data)},t}function jEe(e,t){let n={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!Gt.supportsWebAssembly()){if(!l(t.fallbackModulePath))throw new de(`This browser does not support Web Assembly, and no backup module was provided for ${e._workerPath}`);return n.modulePath=en(t.fallbackModulePath),Promise.resolve(n)}return n.modulePath=en(t.modulePath),n.wasmBinaryFile=en(t.wasmBinaryFile),we.fetchArrayBuffer({url:n.wasmBinaryFile}).then(function(i){return n.wasmBinary=i,n})}function ra(e,t){let n=new AJ.default(e);this._workerPath=n.scheme().length!==0&&n.fragment().length===0?e:ra._workerModulePrefix+e,this._maximumActiveTasks=y(t,Number.POSITIVE_INFINITY),this._activeTasks=0,this._deferreds={},this._nextID=0}var YEe=[];ra.prototype.scheduleTask=function(e,t){if(l(this._worker)||(this._worker=EJ(this)),this._activeTasks>=this._maximumActiveTasks)return;++this._activeTasks;let n=this;return Promise.resolve(xJ()).then(function(i){l(t)?i||(t.length=0):t=YEe;let o=n._nextID++,r=oa();return n._deferreds[o]=r,n._worker.postMessage({id:o,parameters:e,canTransferArrayBuffer:i},t),r.promise})};ra.prototype.initWebAssemblyModule=function(e){l(this._worker)||(this._worker=EJ(this));let t=oa(),n=this,i=this._worker;return jEe(this,e).then(function(o){return Promise.resolve(xJ()).then(function(r){let s,a=o.wasmBinary;l(a)&&r&&(s=[a]),i.onmessage=function(c){i.onmessage=function(u){CJ(n,u.data)},t.resolve(c.data)},i.postMessage({webAssemblyConfig:o},s)})}),t.promise};ra.prototype.isDestroyed=function(){return!1};ra.prototype.destroy=function(){return l(this._worker)&&this._worker.terminate(),ue(this)};ra.taskCompletedEvent=DG;ra._defaultWorkerModulePrefix="Workers/";ra._workerModulePrefix=ra._defaultWorkerModulePrefix;ra._canTransferArrayBuffer=void 0;var pi=ra;function vh(){}vh._transcodeTaskProcessor=new pi("transcodeKTX2",Number.POSITIVE_INFINITY);vh._readyPromise=void 0;function qEe(){let e=vh._transcodeTaskProcessor.initWebAssemblyModule({modulePath:"ThirdParty/Workers/basis_transcoder.js",wasmBinaryFile:"ThirdParty/basis_transcoder.wasm"}).then(function(){return vh._transcodeTaskProcessor});vh._readyPromise=e}vh.transcode=function(e,t){return l(vh._readyPromise)||qEe(),vh._readyPromise.then(function(n){let i;if(e instanceof ArrayBuffer){let o=new Uint8Array(e);return i={supportedTargetFormats:t,ktx2Buffer:o},n.scheduleTask(i,[e])}return i={supportedTargetFormats:t,ktx2Buffer:e},n.scheduleTask(i,[e.buffer])}).then(function(n){let i=n.length,o=Object.keys(n[0]),r=o.length,s;for(s=0;s<i;s++){let a=n[s];for(let c=0;c<r;c++){let u=a[o[c]];a[o[c]]=new UP(u.internalFormat,u.datatype,u.width,u.height,u.levelBuffer)}}if(r===1){for(s=0;s<i;++s)n[s]=n[s][o[0]];i===1&&(n=n[0])}return n}).catch(function(n){throw n})};var VP=vh;var bJ;SJ.setKTX2SupportedFormats=function(e,t,n,i,o,r){bJ={s3tc:e,pvrtc:t,astc:n,etc:i,etc1:o,bc7:r}};function SJ(e){let t;return e instanceof ArrayBuffer||ArrayBuffer.isView(e)?t=Promise.resolve(e):t=we.createIfNeeded(e).fetchArrayBuffer(),t.then(function(n){return VP.transcode(n,bJ)})}var Sl=SJ;function kP(e,t,n,i,o,r,s,a,c,u,f){this._context=e,this._texture=t,this._textureTarget=n,this._targetFace=i,this._pixelDatatype=s,this._internalFormat=o,this._pixelFormat=r,this._size=a,this._preMultiplyAlpha=c,this._flipY=u,this._initialized=f}Object.defineProperties(kP.prototype,{pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},_target:{get:function(){return this._targetFace}}});kP.prototype.copyFrom=function(e){let t=y(e.xOffset,0),n=y(e.yOffset,0),i=e.source,o=this._context._gl,r=this._textureTarget,s=this._targetFace;o.activeTexture(o.TEXTURE0),o.bindTexture(r,this._texture);let a=i.width,c=i.height,u=i.arrayBufferView,f=this._size,d=this._pixelFormat,p=this._internalFormat,g=this._pixelDatatype,h=this._preMultiplyAlpha,A=this._flipY,x=y(e.skipColorSpaceConversion,!1),C=4;l(u)&&(C=lt.alignmentInBytes(d,g,a)),o.pixelStorei(o.UNPACK_ALIGNMENT,C),x?o.pixelStorei(o.UNPACK_COLORSPACE_CONVERSION_WEBGL,o.NONE):o.pixelStorei(o.UNPACK_COLORSPACE_CONVERSION_WEBGL,o.BROWSER_DEFAULT_WEBGL);let T=!1;if(!this._initialized){if(t===0&&n===0&&a===f&&c===f)l(u)?(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),A&&(u=lt.flipY(u,d,g,f,f)),o.texImage2D(s,0,p,f,f,0,d,Je.toWebGLConstant(g,this._context),u)):(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,h),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,A),o.texImage2D(s,0,p,d,Je.toWebGLConstant(g,this._context),i)),T=!0;else{o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1);let E=lt.createTypedArray(d,g,f,f);o.texImage2D(s,0,p,f,f,0,d,Je.toWebGLConstant(g,this._context),E)}this._initialized=!0}T||(l(u)?(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),A&&(u=lt.flipY(u,d,g,a,c)),o.texSubImage2D(s,0,t,n,a,c,d,Je.toWebGLConstant(g,this._context),u)):(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,h),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,A),o.texSubImage2D(s,0,t,n,d,Je.toWebGLConstant(g,this._context),i))),o.bindTexture(r,null)};kP.prototype.copyFromFramebuffer=function(e,t,n,i,o,r){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),o=y(o,this._size),r=y(r,this._size);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(this._targetFace,0,e,t,n,i,o,r),s.bindTexture(a,null),this._initialized=!0};var Dh=kP;var zP={DONT_CARE:te.DONT_CARE,FASTEST:te.FASTEST,NICEST:te.NICEST,validate:function(e){return e===zP.DONT_CARE||e===zP.FASTEST||e===zP.NICEST}},Ih=Object.freeze(zP);var HP={NEAREST:te.NEAREST,LINEAR:te.LINEAR};HP.validate=function(e){return e===HP.NEAREST||e===HP.LINEAR};var bi=Object.freeze(HP);var f_={NEAREST:te.NEAREST,LINEAR:te.LINEAR,NEAREST_MIPMAP_NEAREST:te.NEAREST_MIPMAP_NEAREST,LINEAR_MIPMAP_NEAREST:te.LINEAR_MIPMAP_NEAREST,NEAREST_MIPMAP_LINEAR:te.NEAREST_MIPMAP_LINEAR,LINEAR_MIPMAP_LINEAR:te.LINEAR_MIPMAP_LINEAR};f_.validate=function(e){return e===f_.NEAREST||e===f_.LINEAR||e===f_.NEAREST_MIPMAP_NEAREST||e===f_.LINEAR_MIPMAP_NEAREST||e===f_.NEAREST_MIPMAP_LINEAR||e===f_.LINEAR_MIPMAP_LINEAR};var ln=Object.freeze(f_);var GP={CLAMP_TO_EDGE:te.CLAMP_TO_EDGE,REPEAT:te.REPEAT,MIRRORED_REPEAT:te.MIRRORED_REPEAT,validate:function(e){return e===GP.CLAMP_TO_EDGE||e===GP.REPEAT||e===GP.MIRRORED_REPEAT}},Dn=Object.freeze(GP);function Qb(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.wrapS,Dn.CLAMP_TO_EDGE),n=y(e.wrapT,Dn.CLAMP_TO_EDGE),i=y(e.minificationFilter,ln.LINEAR),o=y(e.magnificationFilter,bi.LINEAR),r=l(e.maximumAnisotropy)?e.maximumAnisotropy:1;this._wrapS=t,this._wrapT=n,this._minificationFilter=i,this._magnificationFilter=o,this._maximumAnisotropy=r}Object.defineProperties(Qb.prototype,{wrapS:{get:function(){return this._wrapS}},wrapT:{get:function(){return this._wrapT}},minificationFilter:{get:function(){return this._minificationFilter}},magnificationFilter:{get:function(){return this._magnificationFilter}},maximumAnisotropy:{get:function(){return this._maximumAnisotropy}}});Qb.equals=function(e,t){return e===t||l(e)&&l(t)&&e._wrapS===t._wrapS&&e._wrapT===t._wrapT&&e._minificationFilter===t._minificationFilter&&e._magnificationFilter===t._magnificationFilter&&e._maximumAnisotropy===t._maximumAnisotropy};Qb.NEAREST=Object.freeze(new Qb({wrapS:Dn.CLAMP_TO_EDGE,wrapT:Dn.CLAMP_TO_EDGE,minificationFilter:ln.NEAREST,magnificationFilter:bi.NEAREST}));var dn=Qb;function $b(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.source,i,o;if(l(n)){let T=[n.positiveX,n.negativeX,n.positiveY,n.negativeY,n.positiveZ,n.negativeZ];i=T[0].width,o=T[0].height}else i=e.width,o=e.height;let r=i,s=y(e.pixelDatatype,Je.UNSIGNED_BYTE),a=y(e.pixelFormat,lt.RGBA),c=lt.toInternalFormat(a,s,t),u=lt.textureSizeInBytes(a,s,r,r)*6,f=e.preMultiplyAlpha||a===lt.RGB||a===lt.LUMINANCE,d=y(e.flipY,!0),p=y(e.skipColorSpaceConversion,!1),g=t._gl,h=g.TEXTURE_CUBE_MAP,A=g.createTexture();g.activeTexture(g.TEXTURE0),g.bindTexture(h,A);function x(T,E,S,v,D){let O=E.arrayBufferView;l(O)||(O=E.bufferView);let M=4;l(O)&&(M=lt.alignmentInBytes(a,s,i)),g.pixelStorei(g.UNPACK_ALIGNMENT,M),D?g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.NONE):g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.BROWSER_DEFAULT_WEBGL),l(O)?(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1),v&&(O=lt.flipY(O,a,s,r,r)),g.texImage2D(T,0,c,r,r,0,a,Je.toWebGLConstant(s,t),O)):(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,S),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,v),g.texImage2D(T,0,c,a,Je.toWebGLConstant(s,t),E))}l(n)?(x(g.TEXTURE_CUBE_MAP_POSITIVE_X,n.positiveX,f,d,p),x(g.TEXTURE_CUBE_MAP_NEGATIVE_X,n.negativeX,f,d,p),x(g.TEXTURE_CUBE_MAP_POSITIVE_Y,n.positiveY,f,d,p),x(g.TEXTURE_CUBE_MAP_NEGATIVE_Y,n.negativeY,f,d,p),x(g.TEXTURE_CUBE_MAP_POSITIVE_Z,n.positiveZ,f,d,p),x(g.TEXTURE_CUBE_MAP_NEGATIVE_Z,n.negativeZ,f,d,p)):(g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_X,0,c,r,r,0,a,Je.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_X,0,c,r,r,0,a,Je.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_Y,0,c,r,r,0,a,Je.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_Y,0,c,r,r,0,a,Je.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_POSITIVE_Z,0,c,r,r,0,a,Je.toWebGLConstant(s,t),null),g.texImage2D(g.TEXTURE_CUBE_MAP_NEGATIVE_Z,0,c,r,r,0,a,Je.toWebGLConstant(s,t),null)),g.bindTexture(h,null),this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=h,this._texture=A,this._pixelFormat=a,this._pixelDatatype=s,this._size=r,this._hasMipmap=!1,this._sizeInBytes=u,this._preMultiplyAlpha=f,this._flipY=d,this._sampler=void 0;let C=l(n);this._positiveX=new Dh(t,A,h,g.TEXTURE_CUBE_MAP_POSITIVE_X,c,a,s,r,f,d,C),this._negativeX=new Dh(t,A,h,g.TEXTURE_CUBE_MAP_NEGATIVE_X,c,a,s,r,f,d,C),this._positiveY=new Dh(t,A,h,g.TEXTURE_CUBE_MAP_POSITIVE_Y,c,a,s,r,f,d,C),this._negativeY=new Dh(t,A,h,g.TEXTURE_CUBE_MAP_NEGATIVE_Y,c,a,s,r,f,d,C),this._positiveZ=new Dh(t,A,h,g.TEXTURE_CUBE_MAP_POSITIVE_Z,c,a,s,r,f,d,C),this._negativeZ=new Dh(t,A,h,g.TEXTURE_CUBE_MAP_NEGATIVE_Z,c,a,s,r,f,d,C),this.sampler=l(e.sampler)?e.sampler:new dn}Object.defineProperties($b.prototype,{positiveX:{get:function(){return this._positiveX}},negativeX:{get:function(){return this._negativeX}},positiveY:{get:function(){return this._positiveY}},negativeY:{get:function(){return this._negativeY}},positiveZ:{get:function(){return this._positiveZ}},negativeZ:{get:function(){return this._negativeZ}},sampler:{get:function(){return this._sampler},set:function(e){let t=e.minificationFilter,n=e.magnificationFilter,i=t===ln.NEAREST_MIPMAP_NEAREST||t===ln.NEAREST_MIPMAP_LINEAR||t===ln.LINEAR_MIPMAP_NEAREST||t===ln.LINEAR_MIPMAP_LINEAR,o=this._context,r=this._pixelDatatype;(r===Je.FLOAT&&!o.textureFloatLinear||r===Je.HALF_FLOAT&&!o.textureHalfFloatLinear)&&(t=i?ln.NEAREST_MIPMAP_NEAREST:ln.NEAREST,n=bi.NEAREST);let s=o._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.texParameteri(a,s.TEXTURE_MIN_FILTER,t),s.texParameteri(a,s.TEXTURE_MAG_FILTER,n),s.texParameteri(a,s.TEXTURE_WRAP_S,e.wrapS),s.texParameteri(a,s.TEXTURE_WRAP_T,e.wrapT),l(this._textureFilterAnisotropic)&&s.texParameteri(a,this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,e.maximumAnisotropy),s.bindTexture(a,null),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},width:{get:function(){return this._size}},height:{get:function(){return this._size}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*4/3):this._sizeInBytes}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},_target:{get:function(){return this._textureTarget}}});$b.prototype.generateMipmap=function(e){e=y(e,Ih.DONT_CARE),this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};$b.prototype.isDestroyed=function(){return!1};$b.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),this._positiveX=ue(this._positiveX),this._negativeX=ue(this._negativeX),this._positiveY=ue(this._positiveY),this._negativeY=ue(this._negativeY),this._positiveZ=ue(this._positiveZ),this._negativeZ=ue(this._negativeZ),ue(this)};var sc=$b;function XEe(e){this.context=e,this.framebuffer=void 0,this.blendingEnabled=void 0,this.scissorTest=void 0,this.viewport=void 0}var ac=XEe;var WP=`/** + * A built-in GLSL floating-point constant for converting radians to degrees. + * + * @alias czm_degreesPerRadian + * @glslConstant + * + * @see CesiumMath.DEGREES_PER_RADIAN + * + * @example + * // GLSL declaration + * const float czm_degreesPerRadian = ...; + * + * // Example + * float deg = czm_degreesPerRadian * rad; + */ +const float czm_degreesPerRadian = 57.29577951308232; +`;var jP=`/** + * A built-in GLSL vec2 constant for defining the depth range. + * This is a workaround to a bug where IE11 does not implement gl_DepthRange. + * + * @alias czm_depthRange + * @glslConstant + * + * @example + * // GLSL declaration + * float depthRangeNear = czm_depthRange.near; + * float depthRangeFar = czm_depthRange.far; + * + */ +const czm_depthRangeStruct czm_depthRange = czm_depthRangeStruct(0.0, 1.0); +`;var YP=`/** + * 0.1 + * + * @name czm_epsilon1 + * @glslConstant + */ +const float czm_epsilon1 = 0.1; +`;var qP=`/** + * 0.01 + * + * @name czm_epsilon2 + * @glslConstant + */ +const float czm_epsilon2 = 0.01; +`;var XP=`/** + * 0.001 + * + * @name czm_epsilon3 + * @glslConstant + */ +const float czm_epsilon3 = 0.001; +`;var KP=`/** + * 0.0001 + * + * @name czm_epsilon4 + * @glslConstant + */ +const float czm_epsilon4 = 0.0001; +`;var JP=`/** + * 0.00001 + * + * @name czm_epsilon5 + * @glslConstant + */ +const float czm_epsilon5 = 0.00001; +`;var ZP=`/** + * 0.000001 + * + * @name czm_epsilon6 + * @glslConstant + */ +const float czm_epsilon6 = 0.000001; +`;var QP=`/** + * 0.0000001 + * + * @name czm_epsilon7 + * @glslConstant + */ +const float czm_epsilon7 = 0.0000001; +`;var $P=`/** + * DOC_TBA + * + * @name czm_infinity + * @glslConstant + */ +const float czm_infinity = 5906376272000.0; // Distance from the Sun to Pluto in meters. TODO: What is best given lowp, mediump, and highp? +`;var e1=`/** + * A built-in GLSL floating-point constant for <code>1/pi</code>. + * + * @alias czm_oneOverPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverPi = ...; + * + * // Example + * float pi = 1.0 / czm_oneOverPi; + */ +const float czm_oneOverPi = 0.3183098861837907; +`;var t1=`/** + * A built-in GLSL floating-point constant for <code>1/2pi</code>. + * + * @alias czm_oneOverTwoPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_TWO_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverTwoPi = ...; + * + * // Example + * float pi = 2.0 * czm_oneOverTwoPi; + */ +const float czm_oneOverTwoPi = 0.15915494309189535; +`;var n1=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE} + * + * @name czm_passCesium3DTile + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTile = 4.0; +`;var i1=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION} + * + * @name czm_passCesium3DTileClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassification = 5.0; +`;var o1=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW} + * + * @name czm_passCesium3DTileClassificationIgnoreShow + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassificationIgnoreShow = 6.0; +`;var r1=`/** + * The automatic GLSL constant for {@link Pass#CLASSIFICATION} + * + * @name czm_passClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passClassification = 7.0; +`;var s1=`/** + * The automatic GLSL constant for {@link Pass#COMPUTE} + * + * @name czm_passCompute + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCompute = 1.0; +`;var a1=`/** + * The automatic GLSL constant for {@link Pass#ENVIRONMENT} + * + * @name czm_passEnvironment + * @glslConstant + * + * @see czm_pass + */ +const float czm_passEnvironment = 0.0; +`;var c1=`/** + * The automatic GLSL constant for {@link Pass#GLOBE} + * + * @name czm_passGlobe + * @glslConstant + * + * @see czm_pass + */ +const float czm_passGlobe = 2.0; +`;var l1=`/** + * The automatic GLSL constant for {@link Pass#OPAQUE} + * + * @name czm_passOpaque + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOpaque = 7.0; +`;var u1=`/** + * The automatic GLSL constant for {@link Pass#OVERLAY} + * + * @name czm_passOverlay + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOverlay = 10.0; +`;var f1=`/** + * The automatic GLSL constant for {@link Pass#TERRAIN_CLASSIFICATION} + * + * @name czm_passTerrainClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTerrainClassification = 3.0; +`;var d1=`/** + * The automatic GLSL constant for {@link Pass#TRANSLUCENT} + * + * @name czm_passTranslucent + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTranslucent = 8.0; +`;var m1=`/** + * The automatic GLSL constant for {@link Pass#VOXELS} + * + * @name czm_passVoxels + * @glslConstant + * + * @see czm_pass + */ +const float czm_passVoxels = 9.0; +`;var h1=`/** + * A built-in GLSL floating-point constant for <code>Math.PI</code>. + * + * @alias czm_pi + * @glslConstant + * + * @see CesiumMath.PI + * + * @example + * // GLSL declaration + * const float czm_pi = ...; + * + * // Example + * float twoPi = 2.0 * czm_pi; + */ +const float czm_pi = 3.141592653589793; +`;var p1=`/** + * A built-in GLSL floating-point constant for <code>pi/4</code>. + * + * @alias czm_piOverFour + * @glslConstant + * + * @see CesiumMath.PI_OVER_FOUR + * + * @example + * // GLSL declaration + * const float czm_piOverFour = ...; + * + * // Example + * float pi = 4.0 * czm_piOverFour; + */ +const float czm_piOverFour = 0.7853981633974483; +`;var _1=`/** + * A built-in GLSL floating-point constant for <code>pi/6</code>. + * + * @alias czm_piOverSix + * @glslConstant + * + * @see CesiumMath.PI_OVER_SIX + * + * @example + * // GLSL declaration + * const float czm_piOverSix = ...; + * + * // Example + * float pi = 6.0 * czm_piOverSix; + */ +const float czm_piOverSix = 0.5235987755982988; +`;var g1=`/** + * A built-in GLSL floating-point constant for <code>pi/3</code>. + * + * @alias czm_piOverThree + * @glslConstant + * + * @see CesiumMath.PI_OVER_THREE + * + * @example + * // GLSL declaration + * const float czm_piOverThree = ...; + * + * // Example + * float pi = 3.0 * czm_piOverThree; + */ +const float czm_piOverThree = 1.0471975511965976; +`;var y1=`/** + * A built-in GLSL floating-point constant for <code>pi/2</code>. + * + * @alias czm_piOverTwo + * @glslConstant + * + * @see CesiumMath.PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_piOverTwo = ...; + * + * // Example + * float pi = 2.0 * czm_piOverTwo; + */ +const float czm_piOverTwo = 1.5707963267948966; +`;var A1=`/** + * A built-in GLSL floating-point constant for converting degrees to radians. + * + * @alias czm_radiansPerDegree + * @glslConstant + * + * @see CesiumMath.RADIANS_PER_DEGREE + * + * @example + * // GLSL declaration + * const float czm_radiansPerDegree = ...; + * + * // Example + * float rad = czm_radiansPerDegree * deg; + */ +const float czm_radiansPerDegree = 0.017453292519943295; +`;var x1=`/** + * The constant identifier for the 2D {@link SceneMode} + * + * @name czm_sceneMode2D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode2D = 2.0; +`;var C1=`/** + * The constant identifier for the 3D {@link SceneMode} + * + * @name czm_sceneMode3D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode3D = 3.0; +`;var T1=`/** + * The constant identifier for the Columbus View {@link SceneMode} + * + * @name czm_sceneModeColumbusView + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneModeColumbusView = 1.0; +`;var E1=`/** + * The constant identifier for the Morphing {@link SceneMode} + * + * @name czm_sceneModeMorphing + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + */ +const float czm_sceneModeMorphing = 0.0; +`;var b1=`/** + * A built-in GLSL floating-point constant for one solar radius. + * + * @alias czm_solarRadius + * @glslConstant + * + * @see CesiumMath.SOLAR_RADIUS + * + * @example + * // GLSL declaration + * const float czm_solarRadius = ...; + */ +const float czm_solarRadius = 695500000.0; +`;var S1=`/** + * A built-in GLSL floating-point constant for <code>3pi/2</code>. + * + * @alias czm_threePiOver2 + * @glslConstant + * + * @see CesiumMath.THREE_PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_threePiOver2 = ...; + * + * // Example + * float pi = (2.0 / 3.0) * czm_threePiOver2; + */ +const float czm_threePiOver2 = 4.71238898038469; +`;var w1=`/** + * A built-in GLSL floating-point constant for <code>2pi</code>. + * + * @alias czm_twoPi + * @glslConstant + * + * @see CesiumMath.TWO_PI + * + * @example + * // GLSL declaration + * const float czm_twoPi = ...; + * + * // Example + * float pi = czm_twoPi / 2.0; + */ +const float czm_twoPi = 6.283185307179586; +`;var v1=`/** + * The maximum latitude, in radians, both North and South, supported by a Web Mercator + * (EPSG:3857) projection. Technically, the Mercator projection is defined + * for any latitude up to (but not including) 90 degrees, but it makes sense + * to cut it off sooner because it grows exponentially with increasing latitude. + * The logic behind this particular cutoff value, which is the one used by + * Google Maps, Bing Maps, and Esri, is that it makes the projection + * square. That is, the rectangle is equal in the X and Y directions. + * + * The constant value is computed as follows: + * czm_pi * 0.5 - (2.0 * atan(exp(-czm_pi))) + * + * @name czm_webMercatorMaxLatitude + * @glslConstant + */ +const float czm_webMercatorMaxLatitude = 1.4844222297453324; +`;var D1=`/** + * @name czm_depthRangeStruct + * @glslStruct + */ +struct czm_depthRangeStruct +{ + float near; + float far; +}; +`;var I1=`/** + * Holds material information that can be used for lighting. Returned by all czm_getMaterial functions. + * + * @name czm_material + * @glslStruct + * + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} specular Intensity of incoming light reflecting in a single direction. + * @property {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * @property {vec3} normal Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {vec3} emission Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + */ +struct czm_material +{ + vec3 diffuse; + float specular; + float shininess; + vec3 normal; + vec3 emission; + float alpha; +}; +`;var P1=`/** + * Used as input to every material's czm_getMaterial function. + * + * @name czm_materialInput + * @glslStruct + * + * @property {float} s 1D texture coordinates. + * @property {vec2} st 2D texture coordinates. + * @property {vec3} str 3D texture coordinates. + * @property {vec3} normalEC Unperturbed surface normal in eye coordinates. + * @property {mat3} tangentToEyeMatrix Matrix for converting a tangent space normal to eye space. + * @property {vec3} positionToEyeEC Vector from the fragment to the eye in eye coordinates. The magnitude is the distance in meters from the fragment to the eye. + * @property {float} height The height of the terrain in meters above or below the WGS84 ellipsoid. Only available for globe materials. + * @property {float} slope The slope of the terrain in radians. 0 is flat; pi/2 is vertical. Only available for globe materials. + * @property {float} aspect The aspect of the terrain in radians. 0 is East, pi/2 is North, pi is West, 3pi/2 is South. Only available for globe materials. + */ +struct czm_materialInput +{ + float s; + vec2 st; + vec3 str; + vec3 normalEC; + mat3 tangentToEyeMatrix; + vec3 positionToEyeEC; + float height; + float slope; + float aspect; +}; +`;var O1=`/** + * Struct for representing a material for a {@link Model}. The model + * rendering pipeline will pass this struct between material, custom shaders, + * and lighting stages. This is not to be confused with {@link czm_material} + * which is used by the older Fabric materials system, although they are similar. + * <p> + * All color values (diffuse, specular, emissive) are in linear color space. + * </p> + * + * @name czm_modelMaterial + * @glslStruct + * + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + * @property {vec3} specular Color of reflected light at normal incidence in PBR materials. This is sometimes referred to as f0 in the literature. + * @property {float} roughness A number from 0.0 to 1.0 representing how rough the surface is. Values near 0.0 produce glossy surfaces, while values near 1.0 produce rough surfaces. + * @property {vec3} normalEC Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {float} occlusion Ambient occlusion recieved at this point on the material. 1.0 means fully lit, 0.0 means fully occluded. + * @property {vec3} emissive Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + */ +struct czm_modelMaterial { + vec3 diffuse; + float alpha; + vec3 specular; + float roughness; + vec3 normalEC; + float occlusion; + vec3 emissive; +}; +`;var M1=`/** + * Struct for representing the output of a custom vertex shader. + * + * @name czm_modelVertexOutput + * @glslStruct + * + * @see {@link CustomShader} + * @see {@link Model} + * + * @property {vec3} positionMC The position of the vertex in model coordinates + * @property {float} pointSize A custom value for gl_PointSize. This is only used for point primitives. + */ +struct czm_modelVertexOutput { + vec3 positionMC; + float pointSize; +}; +`;var R1=`/** + * Parameters for {@link czm_pbrLighting} + * + * @name czm_material + * @glslStruct + * + * @property {vec3} diffuseColor the diffuse color of the material for the lambert term of the rendering equation + * @property {float} roughness a value from 0.0 to 1.0 that indicates how rough the surface of the material is. + * @property {vec3} f0 The reflectance of the material at normal incidence + */ +struct czm_pbrParameters +{ + vec3 diffuseColor; + float roughness; + vec3 f0; +}; +`;var B1=`/** + * DOC_TBA + * + * @name czm_ray + * @glslStruct + */ +struct czm_ray +{ + vec3 origin; + vec3 direction; +}; +`;var L1=`/** + * DOC_TBA + * + * @name czm_raySegment + * @glslStruct + */ +struct czm_raySegment +{ + float start; + float stop; +}; + +/** + * DOC_TBA + * + * @name czm_emptyRaySegment + * @glslConstant + */ +const czm_raySegment czm_emptyRaySegment = czm_raySegment(-czm_infinity, -czm_infinity); + +/** + * DOC_TBA + * + * @name czm_fullRaySegment + * @glslConstant + */ +const czm_raySegment czm_fullRaySegment = czm_raySegment(0.0, czm_infinity); +`;var N1=`struct czm_shadowParameters +{ +#ifdef USE_CUBE_MAP_SHADOW + vec3 texCoords; +#else + vec2 texCoords; +#endif + + float depthBias; + float depth; + float nDotL; + vec2 texelStepSize; + float normalShadingSmooth; + float darkness; +}; +`;var F1=`/** + * Converts an HSB color (hue, saturation, brightness) to RGB + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_HSBToRGB + * @glslFunction + * + * @param {vec3} hsb The color in HSB. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_HSB2RGB = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + +vec3 czm_HSBToRGB(vec3 hsb) +{ + vec3 p = abs(fract(hsb.xxx + K_HSB2RGB.xyz) * 6.0 - K_HSB2RGB.www); + return hsb.z * mix(K_HSB2RGB.xxx, clamp(p - K_HSB2RGB.xxx, 0.0, 1.0), hsb.y); +} +`;var U1=`/** + * Converts an HSL color (hue, saturation, lightness) to RGB + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_HSLToRGB + * @glslFunction + * + * @param {vec3} rgb The color in HSL. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 hueToRGB(float hue) +{ + float r = abs(hue * 6.0 - 3.0) - 1.0; + float g = 2.0 - abs(hue * 6.0 - 2.0); + float b = 2.0 - abs(hue * 6.0 - 4.0); + return clamp(vec3(r, g, b), 0.0, 1.0); +} + +vec3 czm_HSLToRGB(vec3 hsl) +{ + vec3 rgb = hueToRGB(hsl.x); + float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y; + return (rgb - 0.5) * c + hsl.z; +} +`;var V1=`/** + * Converts an RGB color to HSB (hue, saturation, brightness) + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_RGBToHSB + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_RGB2HSB = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + +vec3 czm_RGBToHSB(vec3 rgb) +{ + vec4 p = mix(vec4(rgb.bg, K_RGB2HSB.wz), vec4(rgb.gb, K_RGB2HSB.xy), step(rgb.b, rgb.g)); + vec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r)); + + float d = q.x - min(q.w, q.y); + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + czm_epsilon7)), d / (q.x + czm_epsilon7), q.x); +} +`;var k1=`/** + * Converts an RGB color to HSL (hue, saturation, lightness) + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_RGBToHSL + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSL. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 RGBtoHCV(vec3 rgb) +{ + // Based on work by Sam Hocevar and Emil Persson + vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0) : vec4(rgb.gb, 0.0, -1.0 / 3.0); + vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx); + float c = q.x - min(q.w, q.y); + float h = abs((q.w - q.y) / (6.0 * c + czm_epsilon7) + q.z); + return vec3(h, c, q.x); +} + +vec3 czm_RGBToHSL(vec3 rgb) +{ + vec3 hcv = RGBtoHCV(rgb); + float l = hcv.z - hcv.y * 0.5; + float s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + czm_epsilon7); + return vec3(hcv.x, s, l); +} +`;var z1=`/** + * Converts an RGB color to CIE Yxy. + * <p>The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + * </p> + * + * @name czm_RGBToXYZ + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in CIE Yxy. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_RGBToXYZ(vec3 rgb) +{ + const mat3 RGB2XYZ = mat3(0.4124, 0.2126, 0.0193, + 0.3576, 0.7152, 0.1192, + 0.1805, 0.0722, 0.9505); + vec3 xyz = RGB2XYZ * rgb; + vec3 Yxy; + Yxy.r = xyz.g; + float temp = dot(vec3(1.0), xyz); + Yxy.gb = xyz.rg / temp; + return Yxy; +} +`;var H1=`/** + * Converts a CIE Yxy color to RGB. + * <p>The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + * </p> + * + * @name czm_XYZToRGB + * @glslFunction + * + * @param {vec3} Yxy The color in CIE Yxy. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_XYZToRGB(vec3 Yxy) +{ + const mat3 XYZ2RGB = mat3( 3.2405, -0.9693, 0.0556, + -1.5371, 1.8760, -0.2040, + -0.4985, 0.0416, 1.0572); + vec3 xyz; + xyz.r = Yxy.r * Yxy.g / Yxy.b; + xyz.g = Yxy.r; + xyz.b = Yxy.r * (1.0 - Yxy.g - Yxy.b) / Yxy.b; + + return XYZ2RGB * xyz; +} +`;var G1=`// See: +// https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/ + +vec3 czm_acesTonemapping(vec3 color) { + float g = 0.985; + float a = 0.065; + float b = 0.0001; + float c = 0.433; + float d = 0.238; + + color = (color * (color + a) - b) / (color * (g * color + c) + d); + + color = clamp(color, 0.0, 1.0); + + return color; +} +`;var W1=`/** + * @private + */ +float czm_alphaWeight(float a) +{ + float z = (gl_FragCoord.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + + // See Weighted Blended Order-Independent Transparency for examples of different weighting functions: + // http://jcgt.org/published/0002/02/09/ + return pow(a + 0.01, 4.0) + max(1e-2, min(3.0 * 1e3, 0.003 / (1e-5 + pow(abs(z) / 200.0, 4.0)))); +} +`;var j1=`/** + * Procedural anti-aliasing by blurring two colors that meet at a sharp edge. + * + * @name czm_antialias + * @glslFunction + * + * @param {vec4} color1 The color on one side of the edge. + * @param {vec4} color2 The color on the other side of the edge. + * @param {vec4} currentcolor The current color, either <code>color1</code> or <code>color2</code>. + * @param {float} dist The distance to the edge in texture coordinates. + * @param {float} [fuzzFactor=0.1] Controls the blurriness between the two colors. + * @returns {vec4} The anti-aliased color. + * + * @example + * // GLSL declarations + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor); + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist); + * + * // get the color for a material that has a sharp edge at the line y = 0.5 in texture space + * float dist = abs(textureCoordinates.t - 0.5); + * vec4 currentColor = mix(bottomColor, topColor, step(0.5, textureCoordinates.t)); + * vec4 color = czm_antialias(bottomColor, topColor, currentColor, dist, 0.1); + */ +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor) +{ + float val1 = clamp(dist / fuzzFactor, 0.0, 1.0); + float val2 = clamp((dist - 0.5) / fuzzFactor, 0.0, 1.0); + val1 = val1 * (1.0 - val2); + val1 = val1 * val1 * (3.0 - (2.0 * val1)); + val1 = pow(val1, 0.5); //makes the transition nicer + + vec4 midColor = (color1 + color2) * 0.5; + return mix(midColor, currentColor, val1); +} + +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist) +{ + return czm_antialias(color1, color2, currentColor, dist, 0.1); +} +`;var Y1=`/** + * Approximately computes spherical coordinates given a normal. + * Uses approximate inverse trigonometry for speed and consistency, + * since inverse trigonometry can differ from vendor-to-vendor and when compared with the CPU. + * + * @name czm_approximateSphericalCoordinates + * @glslFunction + * + * @param {vec3} normal arbitrary-length normal. + * + * @returns {vec2} Approximate latitude and longitude spherical coordinates. + */ +vec2 czm_approximateSphericalCoordinates(vec3 normal) { + // Project into plane with vertical for latitude + float latitudeApproximation = czm_fastApproximateAtan(sqrt(normal.x * normal.x + normal.y * normal.y), normal.z); + float longitudeApproximation = czm_fastApproximateAtan(normal.x, normal.y); + return vec2(latitudeApproximation, longitudeApproximation); +} +`;var q1=`/** + * Determines if the fragment is back facing + * + * @name czm_backFacing + * @glslFunction + * + * @returns {bool} <code>true</code> if the fragment is back facing; otherwise, <code>false</code>. + */ +bool czm_backFacing() +{ + // !gl_FrontFacing doesn't work as expected on Mac/Intel so use the more verbose form instead. See https://github.com/CesiumGS/cesium/pull/8494. + return gl_FrontFacing == false; +} +`;var X1=`/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a float expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {float} a Value to return if the comparison is true. + * @param {float} b Value to return if the comparison is false. + * + * @returns {float} equivalent of comparison ? a : b + */ +float czm_branchFreeTernary(bool comparison, float a, float b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec2 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec2} a Value to return if the comparison is true. + * @param {vec2} b Value to return if the comparison is false. + * + * @returns {vec2} equivalent of comparison ? a : b + */ +vec2 czm_branchFreeTernary(bool comparison, vec2 a, vec2 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec3 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec3 czm_branchFreeTernary(bool comparison, vec3 a, vec3 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec4 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec4 czm_branchFreeTernary(bool comparison, vec4 a, vec4 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} +`;var K1=` +vec4 czm_cascadeColor(vec4 weights) +{ + return vec4(1.0, 0.0, 0.0, 1.0) * weights.x + + vec4(0.0, 1.0, 0.0, 1.0) * weights.y + + vec4(0.0, 0.0, 1.0, 1.0) * weights.z + + vec4(1.0, 0.0, 1.0, 1.0) * weights.w; +} +`;var J1=` +uniform vec4 shadowMap_cascadeDistances; + +float czm_cascadeDistance(vec4 weights) +{ + return dot(shadowMap_cascadeDistances, weights); +} +`;var Z1=` +uniform mat4 shadowMap_cascadeMatrices[4]; + +mat4 czm_cascadeMatrix(vec4 weights) +{ + return shadowMap_cascadeMatrices[0] * weights.x + + shadowMap_cascadeMatrices[1] * weights.y + + shadowMap_cascadeMatrices[2] * weights.z + + shadowMap_cascadeMatrices[3] * weights.w; +} +`;var Q1=` +uniform vec4 shadowMap_cascadeSplits[2]; + +vec4 czm_cascadeWeights(float depthEye) +{ + // One component is set to 1.0 and all others set to 0.0. + vec4 near = step(shadowMap_cascadeSplits[0], vec4(depthEye)); + vec4 far = step(depthEye, shadowMap_cascadeSplits[1]); + return near * far; +} +`;var $1=`/** + * DOC_TBA + * + * @name czm_columbusViewMorph + * @glslFunction + */ +vec4 czm_columbusViewMorph(vec4 position2D, vec4 position3D, float time) +{ + // Just linear for now. + vec3 p = mix(position2D.xyz, position3D.xyz, time); + return vec4(p, 1.0); +} +`;var eO=`/** + * Returns a position in model coordinates relative to eye taking into + * account the current scene mode: 3D, 2D, or Columbus view. + * <p> + * This uses standard position attributes, <code>position3DHigh</code>, + * <code>position3DLow</code>, <code>position2DHigh</code>, and <code>position2DLow</code>, + * and should be used when writing a vertex shader for an {@link Appearance}. + * </p> + * + * @name czm_computePosition + * @glslFunction + * + * @returns {vec4} The position relative to eye. + * + * @example + * vec4 p = czm_computePosition(); + * v_positionEC = (czm_modelViewRelativeToEye * p).xyz; + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * + * @see czm_translateRelativeToEye + */ +vec4 czm_computePosition(); +`;var tO=`/** + * @private + */ +vec2 cordic(float angle) +{ +// Scale the vector by the appropriate factor for the 24 iterations to follow. + vec2 vector = vec2(6.0725293500888267e-1, 0.0); +// Iteration 1 + float sense = (angle < 0.0) ? -1.0 : 1.0; + // float factor = sense * 1.0; // 2^-0 + mat2 rotation = mat2(1.0, sense, -sense, 1.0); + vector = rotation * vector; + angle -= sense * 7.8539816339744828e-1; // atan(2^-0) +// Iteration 2 + sense = (angle < 0.0) ? -1.0 : 1.0; + float factor = sense * 5.0e-1; // 2^-1 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.6364760900080609e-1; // atan(2^-1) +// Iteration 3 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.5e-1; // 2^-2 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4497866312686414e-1; // atan(2^-2) +// Iteration 4 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.25e-1; // 2^-3 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2435499454676144e-1; // atan(2^-3) +// Iteration 5 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.25e-2; // 2^-4 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.2418809995957350e-2; // atan(2^-4) +// Iteration 6 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.125e-2; // 2^-5 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.1239833430268277e-2; // atan(2^-5) +// Iteration 7 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.5625e-2; // 2^-6 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5623728620476831e-2; // atan(2^-6) +// Iteration 8 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.8125e-3; // 2^-7 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.8123410601011111e-3; // atan(2^-7) +// Iteration 9 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.90625e-3; // 2^-8 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.9062301319669718e-3; // atan(2^-8) +// Iteration 10 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.953125e-3; // 2^-9 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9531225164788188e-3; // atan(2^-9) +// Iteration 11 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.765625e-4; // 2^-10 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.7656218955931946e-4; // atan(2^-10) +// Iteration 12 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.8828125e-4; // 2^-11 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.8828121119489829e-4; // atan(2^-11) +// Iteration 13 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.44140625e-4; // 2^-12 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4414062014936177e-4; // atan(2^-12) +// Iteration 14 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.220703125e-4; // 2^-13 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2207031189367021e-4; // atan(2^-13) +// Iteration 15 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.103515625e-5; // 2^-14 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.1035156174208773e-5; // atan(2^-14) +// Iteration 16 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.0517578125e-5; // 2^-15 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.0517578115526096e-5; // atan(2^-15) +// Iteration 17 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.52587890625e-5; // 2^-16 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5258789061315762e-5; // atan(2^-16) +// Iteration 18 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.62939453125e-6; // 2^-17 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.6293945311019700e-6; // atan(2^-17) +// Iteration 19 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.814697265625e-6; // 2^-18 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.8146972656064961e-6; // atan(2^-18) +// Iteration 20 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.9073486328125e-6; // 2^-19 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9073486328101870e-6; // atan(2^-19) +// Iteration 21 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.5367431640625e-7; // 2^-20 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.5367431640596084e-7; // atan(2^-20) +// Iteration 22 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.76837158203125e-7; // 2^-21 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.7683715820308884e-7; // atan(2^-21) +// Iteration 23 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.384185791015625e-7; // 2^-22 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.3841857910155797e-7; // atan(2^-22) +// Iteration 24 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.1920928955078125e-7; // 2^-23 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; +// angle -= sense * 1.1920928955078068e-7; // atan(2^-23) + + return vector; +} + +/** + * Computes the cosine and sine of the provided angle using the CORDIC algorithm. + * + * @name czm_cosineAndSine + * @glslFunction + * + * @param {float} angle The angle in radians. + * + * @returns {vec2} The resulting cosine of the angle (as the x coordinate) and sine of the angle (as the y coordinate). + * + * @example + * vec2 v = czm_cosineAndSine(czm_piOverSix); + * float cosine = v.x; + * float sine = v.y; + */ +vec2 czm_cosineAndSine(float angle) +{ + if (angle < -czm_piOverTwo || angle > czm_piOverTwo) + { + if (angle < 0.0) + { + return -cordic(angle + czm_pi); + } + else + { + return -cordic(angle - czm_pi); + } + } + else + { + return cordic(angle); + } +} +`;var nO=`/** + * Decompresses texture coordinates that were packed into a single float. + * + * @name czm_decompressTextureCoordinates + * @glslFunction + * + * @param {float} encoded The compressed texture coordinates. + * @returns {vec2} The decompressed texture coordinates. + */ + vec2 czm_decompressTextureCoordinates(float encoded) + { + float temp = encoded / 4096.0; + float xZeroTo4095 = floor(temp); + float stx = xZeroTo4095 / 4095.0; + float sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0; + return vec2(stx, sty); + } +`;var iO=`/** + * Get default parameters for physically based rendering. These defaults + * describe a rough dielectric (non-metal) surface (e.g. rough plastic). + * + * @return {czm_pbrParameters} Default parameters for {@link czm_pbrLighting} + */ +czm_pbrParameters czm_defaultPbrMaterial() +{ + czm_pbrParameters results; + results.diffuseColor = vec3(1.0); + results.roughness = 1.0; + + const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04); + results.f0 = REFLECTANCE_DIELECTRIC; + return results; +} +`;var oO=`// emulated noperspective +#if (__VERSION__ == 300 || defined(GL_EXT_frag_depth)) && !defined(LOG_DEPTH) +out float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP, which is not available in WebGL 1 or 2. + * GL_DEPTH_CLAMP clamps geometry that is outside the near and far planes, + * capping the shadow volume. More information here: + * https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_clamp.txt. + * + * When GL_EXT_frag_depth is available we emulate GL_DEPTH_CLAMP by ensuring + * no geometry gets clipped by setting the clip space z value to 0.0 and then + * sending the unaltered screen space z value (using emulated noperspective + * interpolation) to the frag shader where it is clamped to [0,1] and then + * written with gl_FragDepth (see czm_writeDepthClamp). This technique is based on: + * https://stackoverflow.com/questions/5960757/how-to-emulate-gl-depth-clamp-nv. + * + * When GL_EXT_frag_depth is not available, which is the case on some mobile + * devices, we must attempt to fix this only in the vertex shader. + * The approach is to clamp the z value to the far plane, which closes the + * shadow volume but also distorts the geometry, so there can still be artifacts + * on frustum seams. + * + * @name czm_depthClamp + * @glslFunction + * + * @param {vec4} coords The vertex in clip coordinates. + * @returns {vec4} The modified vertex. + * + * @example + * gl_Position = czm_depthClamp(czm_modelViewProjection * vec4(position, 1.0)); + * + * @see czm_writeDepthClamp + */ +vec4 czm_depthClamp(vec4 coords) +{ +#ifndef LOG_DEPTH +#if __VERSION__ == 300 || defined(GL_EXT_frag_depth) + v_WindowZ = (0.5 * (coords.z / coords.w) + 0.5) * coords.w; + coords.z = 0.0; +#else + coords.z = min(coords.z, coords.w); +#endif +#endif + return coords; +} +`;var rO=`/** + * Computes a 3x3 rotation matrix that transforms vectors from an ellipsoid's east-north-up coordinate system + * to eye coordinates. In east-north-up coordinates, x points east, y points north, and z points along the + * surface normal. East-north-up can be used as an ellipsoid's tangent space for operations such as bump mapping. + * <br /><br /> + * The ellipsoid is assumed to be centered at the model coordinate's origin. + * + * @name czm_eastNorthUpToEyeCoordinates + * @glslFunction + * + * @param {vec3} positionMC The position on the ellipsoid in model coordinates. + * @param {vec3} normalEC The normalized ellipsoid surface normal, at <code>positionMC</code>, in eye coordinates. + * + * @returns {mat3} A 3x3 rotation matrix that transforms vectors from the east-north-up coordinate system to eye coordinates. + * + * @example + * // Transform a vector defined in the east-north-up coordinate + * // system, (0, 0, 1) which is the surface normal, to eye + * // coordinates. + * mat3 m = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + * vec3 normalEC = m * vec3(0.0, 0.0, 1.0); + */ +mat3 czm_eastNorthUpToEyeCoordinates(vec3 positionMC, vec3 normalEC) +{ + vec3 tangentMC = normalize(vec3(-positionMC.y, positionMC.x, 0.0)); // normalized surface tangent in model coordinates + vec3 tangentEC = normalize(czm_normal3D * tangentMC); // normalized surface tangent in eye coordiantes + vec3 bitangentEC = normalize(cross(normalEC, tangentEC)); // normalized surface bitangent in eye coordinates + + return mat3( + tangentEC.x, tangentEC.y, tangentEC.z, + bitangentEC.x, bitangentEC.y, bitangentEC.z, + normalEC.x, normalEC.y, normalEC.z); +} +`;var sO=`/** + * DOC_TBA + * + * @name czm_ellipsoidContainsPoint + * @glslFunction + * + */ +bool czm_ellipsoidContainsPoint(vec3 ellipsoid_inverseRadii, vec3 point) +{ + vec3 scaled = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(point, 1.0)).xyz; + return (dot(scaled, scaled) <= 1.0); +} +`;var aO=`/** + * DOC_TBA + * + * @name czm_ellipsoidWgs84TextureCoordinates + * @glslFunction + */ +vec2 czm_ellipsoidWgs84TextureCoordinates(vec3 normal) +{ + return vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5); +} +`;var cO=`/** + * Compares <code>left</code> and <code>right</code> componentwise. Returns <code>true</code> + * if they are within <code>epsilon</code> and <code>false</code> otherwise. The inputs + * <code>left</code> and <code>right</code> can be <code>float</code>s, <code>vec2</code>s, + * <code>vec3</code>s, or <code>vec4</code>s. + * + * @name czm_equalsEpsilon + * @glslFunction + * + * @param {} left The first vector. + * @param {} right The second vector. + * @param {float} epsilon The epsilon to use for equality testing. + * @returns {bool} <code>true</code> if the components are within <code>epsilon</code> and <code>false</code> otherwise. + * + * @example + * // GLSL declarations + * bool czm_equalsEpsilon(float left, float right, float epsilon); + * bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon); + * bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon); + * bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon); + */ +bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec4(epsilon))); +} + +bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec3(epsilon))); +} + +bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec2(epsilon))); +} + +bool czm_equalsEpsilon(float left, float right, float epsilon) { + return (abs(left - right) <= epsilon); +} +`;var lO=`/** + * DOC_TBA + * + * @name czm_eyeOffset + * @glslFunction + * + * @param {vec4} positionEC DOC_TBA. + * @param {vec3} eyeOffset DOC_TBA. + * + * @returns {vec4} DOC_TBA. + */ +vec4 czm_eyeOffset(vec4 positionEC, vec3 eyeOffset) +{ + // This equation is approximate in x and y. + vec4 p = positionEC; + vec4 zEyeOffset = normalize(p) * eyeOffset.z; + p.xy += eyeOffset.xy + zEyeOffset.xy; + p.z += zEyeOffset.z; + return p; +} +`;var uO=`/** + * Transforms a position from eye to window coordinates. The transformation + * from eye to clip coordinates is done using {@link czm_projection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of <code>near = 0</code> and <code>far = 1</code>. + * <br /><br /> + * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + * + * @name czm_eyeToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in eye coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_projection + * @see czm_viewportTransformation + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + */ +vec4 czm_eyeToWindowCoordinates(vec4 positionEC) +{ + vec4 q = czm_projection * positionEC; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var fO=`/** + * Approxiamtes atan over the range [0, 1]. Safe to flip output for negative input. + * + * Based on Michal Drobot's approximation from ShaderFastLibs, which in turn is based on + * "Efficient approximations for the arctangent function," Rajan, S. Sichun Wang Inkol, R. Joyal, A., May 2006. + * Adapted from ShaderFastLibs under MIT License. + * + * Chosen for the following characteristics over range [0, 1]: + * - basically no error at 0 and 1, important for getting around range limit (naive atan2 via atan requires infinite range atan) + * - no visible artifacts from first-derivative discontinuities, unlike latitude via range-reduced sqrt asin approximations (at equator) + * + * The original code is x * (-0.1784 * abs(x) - 0.0663 * x * x + 1.0301); + * Removed the abs() in here because it isn't needed, the input range is guaranteed as [0, 1] by how we're approximating atan2. + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between 0 and 1 inclusive. + * + * @returns {float} Approximation of atan(x) + */ +float czm_fastApproximateAtan(float x) { + return x * (-0.1784 * x - 0.0663 * x * x + 1.0301); +} + +/** + * Approximation of atan2. + * + * Range reduction math based on nvidia's cg reference implementation for atan2: http://developer.download.nvidia.com/cg/atan2.html + * However, we replaced their atan curve with Michael Drobot's (see above). + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between -1 and 1 inclusive. + * @param {float} y Value between -1 and 1 inclusive. + * + * @returns {float} Approximation of atan2(x, y) + */ +float czm_fastApproximateAtan(float x, float y) { + // atan approximations are usually only reliable over [-1, 1], or, in our case, [0, 1] due to modifications. + // So range-reduce using abs and by flipping whether x or y is on top. + float t = abs(x); // t used as swap and atan result. + float opposite = abs(y); + float adjacent = max(t, opposite); + opposite = min(t, opposite); + + t = czm_fastApproximateAtan(opposite / adjacent); + + // Undo range reduction + t = czm_branchFreeTernary(abs(y) > abs(x), czm_piOverTwo - t, t); + t = czm_branchFreeTernary(x < 0.0, czm_pi - t, t); + t = czm_branchFreeTernary(y < 0.0, -t, t); + return t; +} +`;var dO=`/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-(scalar * scalar)); + return mix(color, fogColor, fog); +} + +/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * @param {float} fogModifierConstant A constant to modify the appearance of fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor, float fogModifierConstant) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-((fogModifierConstant * scalar + fogModifierConstant) * (scalar * (1.0 + fogModifierConstant)))); + return mix(color, fogColor, fog); +} +`;var mO=`/** + * Converts a color from RGB space to linear space. + * + * @name czm_gammaCorrect + * @glslFunction + * + * @param {vec3} color The color in RGB space. + * @returns {vec3} The color in linear space. + */ +vec3 czm_gammaCorrect(vec3 color) { +#ifdef HDR + color = pow(color, vec3(czm_gamma)); +#endif + return color; +} + +vec4 czm_gammaCorrect(vec4 color) { +#ifdef HDR + color.rgb = pow(color.rgb, vec3(czm_gamma)); +#endif + return color; +} +`;var hO=`/** + * DOC_TBA + * + * @name czm_geodeticSurfaceNormal + * @glslFunction + * + * @param {vec3} positionOnEllipsoid DOC_TBA + * @param {vec3} ellipsoidCenter DOC_TBA + * @param {vec3} oneOverEllipsoidRadiiSquared DOC_TBA + * + * @returns {vec3} DOC_TBA. + */ +vec3 czm_geodeticSurfaceNormal(vec3 positionOnEllipsoid, vec3 ellipsoidCenter, vec3 oneOverEllipsoidRadiiSquared) +{ + return normalize((positionOnEllipsoid - ellipsoidCenter) * oneOverEllipsoidRadiiSquared); +} +`;var pO=`/** + * An czm_material with default values. Every material's czm_getMaterial + * should use this default material as a base for the material it returns. + * The default normal value is given by materialInput.normalEC. + * + * @name czm_getDefaultMaterial + * @glslFunction + * + * @param {czm_materialInput} input The input used to construct the default material. + * + * @returns {czm_material} The default material. + * + * @see czm_materialInput + * @see czm_material + * @see czm_getMaterial + */ +czm_material czm_getDefaultMaterial(czm_materialInput materialInput) +{ + czm_material material; + material.diffuse = vec3(0.0); + material.specular = 0.0; + material.shininess = 1.0; + material.normal = materialInput.normalEC; + material.emission = vec3(0.0); + material.alpha = 1.0; + return material; +} +`;var _O=`/** + * Calculates the intensity of diffusely reflected light. + * + * @name czm_getLambertDiffuse + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * + * @returns {float} The intensity of the diffuse reflection. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getLambertDiffuse(vec3 lightDirectionEC, vec3 normalEC) +{ + return max(dot(lightDirectionEC, normalEC), 0.0); +} +`;var gO=`/** + * Calculates the specular intensity of reflected light. + * + * @name czm_getSpecular + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} toEyeEC Unit vector pointing to the eye position in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * @param {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * + * @returns {float} The intensity of the specular highlight. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getSpecular(vec3 lightDirectionEC, vec3 toEyeEC, vec3 normalEC, float shininess) +{ + vec3 toReflectedLight = reflect(-lightDirectionEC, normalEC); + float specular = max(dot(toReflectedLight, toEyeEC), 0.0); + + // pow has undefined behavior if both parameters <= 0. + // Prevent this by making sure shininess is at least czm_epsilon2. + return pow(specular, max(shininess, czm_epsilon2)); +} +`;var yO=`/** + * @private + */ +vec4 czm_getWaterNoise(sampler2D normalMap, vec2 uv, float time, float angleInRadians) +{ + float cosAngle = cos(angleInRadians); + float sinAngle = sin(angleInRadians); + + // time dependent sampling directions + vec2 s0 = vec2(1.0/17.0, 0.0); + vec2 s1 = vec2(-1.0/29.0, 0.0); + vec2 s2 = vec2(1.0/101.0, 1.0/59.0); + vec2 s3 = vec2(-1.0/109.0, -1.0/57.0); + + // rotate sampling direction by specified angle + s0 = vec2((cosAngle * s0.x) - (sinAngle * s0.y), (sinAngle * s0.x) + (cosAngle * s0.y)); + s1 = vec2((cosAngle * s1.x) - (sinAngle * s1.y), (sinAngle * s1.x) + (cosAngle * s1.y)); + s2 = vec2((cosAngle * s2.x) - (sinAngle * s2.y), (sinAngle * s2.x) + (cosAngle * s2.y)); + s3 = vec2((cosAngle * s3.x) - (sinAngle * s3.y), (sinAngle * s3.x) + (cosAngle * s3.y)); + + vec2 uv0 = (uv/103.0) + (time * s0); + vec2 uv1 = uv/107.0 + (time * s1) + vec2(0.23); + vec2 uv2 = uv/vec2(897.0, 983.0) + (time * s2) + vec2(0.51); + vec2 uv3 = uv/vec2(991.0, 877.0) + (time * s3) + vec2(0.71); + + uv0 = fract(uv0); + uv1 = fract(uv1); + uv2 = fract(uv2); + uv3 = fract(uv3); + vec4 noise = (texture(normalMap, uv0)) + + (texture(normalMap, uv1)) + + (texture(normalMap, uv2)) + + (texture(normalMap, uv3)); + + // average and scale to between -1 and 1 + return ((noise / 4.0) - 0.5) * 2.0; +} +`;var AO=`/** + * Adjusts the hue of a color. + * + * @name czm_hue + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the hue of the color in radians. + * + * @returns {float} The color with the hue adjusted. + * + * @example + * vec3 adjustHue = czm_hue(color, czm_pi); // The same as czm_hue(color, -czm_pi) + */ +vec3 czm_hue(vec3 rgb, float adjustment) +{ + const mat3 toYIQ = mat3(0.299, 0.587, 0.114, + 0.595716, -0.274453, -0.321263, + 0.211456, -0.522591, 0.311135); + const mat3 toRGB = mat3(1.0, 0.9563, 0.6210, + 1.0, -0.2721, -0.6474, + 1.0, -1.107, 1.7046); + + vec3 yiq = toYIQ * rgb; + float hue = atan(yiq.z, yiq.y) + adjustment; + float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y); + + vec3 color = vec3(yiq.x, chroma * cos(hue), chroma * sin(hue)); + return toRGB * color; +} +`;var xO=`/** + * Converts a color in linear space to RGB space. + * + * @name czm_inverseGamma + * @glslFunction + * + * @param {vec3} color The color in linear space. + * @returns {vec3} The color in RGB space. + */ +vec3 czm_inverseGamma(vec3 color) { + return pow(color, vec3(1.0 / czm_gamma)); +} +`;var CO=`/** + * Determines if a time interval is empty. + * + * @name czm_isEmpty + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isEmpty(czm_raySegment interval) +{ + return (interval.stop < 0.0); +} +`;var TO=`/** + * Determines if a time interval is empty. + * + * @name czm_isFull + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isFull(czm_raySegment interval) +{ + return (interval.start == 0.0 && interval.stop == czm_infinity); +} +`;var EO=`/** + * Computes the fraction of a Web Wercator rectangle at which a given geodetic latitude is located. + * + * @name czm_latitudeToWebMercatorFraction + * @glslFunction + * + * @param {float} latitude The geodetic latitude, in radians. + * @param {float} southMercatorY The Web Mercator coordinate of the southern boundary of the rectangle. + * @param {float} oneOverMercatorHeight The total height of the rectangle in Web Mercator coordinates. + * + * @returns {float} The fraction of the rectangle at which the latitude occurs. If the latitude is the southern + * boundary of the rectangle, the return value will be zero. If it is the northern boundary, the return + * value will be 1.0. Latitudes in between are mapped according to the Web Mercator projection. + */ +float czm_latitudeToWebMercatorFraction(float latitude, float southMercatorY, float oneOverMercatorHeight) +{ + float sinLatitude = sin(latitude); + float mercatorY = 0.5 * log((1.0 + sinLatitude) / (1.0 - sinLatitude)); + + return (mercatorY - southMercatorY) * oneOverMercatorHeight; +} +`;var bO=`/** + * Computes distance from an point in 2D to a line in 2D. + * + * @name czm_lineDistance + * @glslFunction + * + * param {vec2} point1 A point along the line. + * param {vec2} point2 A point along the line. + * param {vec2} point A point that may or may not be on the line. + * returns {float} The distance from the point to the line. + */ +float czm_lineDistance(vec2 point1, vec2 point2, vec2 point) { + return abs((point2.y - point1.y) * point.x - (point2.x - point1.x) * point.y + point2.x * point1.y - point2.y * point1.x) / distance(point2, point1); +} +`;var SO=`/** + * Converts a linear RGB color to an sRGB color. + * + * @param {vec3|vec4} linearIn The color in linear color space. + * @returns {vec3|vec4} The color in sRGB color space. The vector type matches the input. + */ +vec3 czm_linearToSrgb(vec3 linearIn) +{ + return pow(linearIn, vec3(1.0/2.2)); +} + +vec4 czm_linearToSrgb(vec4 linearIn) +{ + vec3 srgbOut = pow(linearIn.rgb, vec3(1.0/2.2)); + return vec4(srgbOut, linearIn.a); +} +`;var wO=`/** + * Computes the luminance of a color. + * + * @name czm_luminance + * @glslFunction + * + * @param {vec3} rgb The color. + * + * @returns {float} The luminance. + * + * @example + * float light = czm_luminance(vec3(0.0)); // 0.0 + * float dark = czm_luminance(vec3(1.0)); // ~1.0 + */ +float czm_luminance(vec3 rgb) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + return dot(rgb, W); +} +`;var vO=`/** + * Computes the size of a pixel in meters at a distance from the eye. + * <p> + * Use this version when passing in a custom pixel ratio. For example, passing in 1.0 will return meters per native device pixel. + * </p> + * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * @param {float} pixelRatio The scaling factor from pixel space to coordinate space + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC, float pixelRatio) +{ + float width = czm_viewport.z; + float height = czm_viewport.w; + float pixelWidth; + float pixelHeight; + + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + if (czm_sceneMode == czm_sceneMode2D || czm_orthographicIn3D == 1.0) + { + float frustumWidth = right - left; + float frustumHeight = top - bottom; + pixelWidth = frustumWidth / width; + pixelHeight = frustumHeight / height; + } + else + { + float distanceToPixel = -positionEC.z; + float inverseNear = 1.0 / czm_currentFrustum.x; + float tanTheta = top * inverseNear; + pixelHeight = 2.0 * distanceToPixel * tanTheta / height; + tanTheta = right * inverseNear; + pixelWidth = 2.0 * distanceToPixel * tanTheta / width; + } + + return max(pixelWidth, pixelHeight) * pixelRatio; +} + +/** + * Computes the size of a pixel in meters at a distance from the eye. + * <p> + * Use this version when scaling by pixel ratio. + * </p> + * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC) +{ + return czm_metersPerPixel(positionEC, czm_pixelRatio); +} +`;var DO=`/** + * Transforms a position from model to window coordinates. The transformation + * from model to clip coordinates is done using {@link czm_modelViewProjection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of <code>near = 0</code> and <code>far = 1</code>. + * <br /><br /> + * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + * <br /><br /> + * This function should not be confused with {@link czm_viewportOrthographic}, + * which is an orthographic projection matrix that transforms from window + * coordinates to clip coordinates. + * + * @name czm_modelToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in model coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_eyeToWindowCoordinates + * @see czm_modelViewProjection + * @see czm_viewportTransformation + * @see czm_viewportOrthographic + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_modelToWindowCoordinates(positionMC); + */ +vec4 czm_modelToWindowCoordinates(vec4 position) +{ + vec4 q = czm_modelViewProjection * position; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var IO=`/** + * DOC_TBA + * + * @name czm_multiplyWithColorBalance + * @glslFunction + */ +vec3 czm_multiplyWithColorBalance(vec3 left, vec3 right) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + + vec3 target = left * right; + float leftLuminance = dot(left, W); + float rightLuminance = dot(right, W); + float targetLuminance = dot(target, W); + + return ((leftLuminance + rightLuminance) / (2.0 * targetLuminance)) * target; +} +`;var PO=`/** + * Computes a value that scales with distance. The scaling is clamped at the near and + * far distances, and does not extrapolate. This function works with the + * {@link NearFarScalar} JavaScript class. + * + * @name czm_nearFarScalar + * @glslFunction + * + * @param {vec4} nearFarScalar A vector with 4 components: Near distance (x), Near value (y), Far distance (z), Far value (w). + * @param {float} cameraDistSq The square of the current distance from the camera. + * + * @returns {float} The value at this distance. + */ +float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq) +{ + float valueAtMin = nearFarScalar.y; + float valueAtMax = nearFarScalar.w; + float nearDistanceSq = nearFarScalar.x * nearFarScalar.x; + float farDistanceSq = nearFarScalar.z * nearFarScalar.z; + + float t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq); + + t = pow(clamp(t, 0.0, 1.0), 0.2); + + return mix(valueAtMin, valueAtMax, t); +} +`;var OO=` /** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @param {float} range The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits. + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded, float range) + { + if (encoded.x == 0.0 && encoded.y == 0.0) { + return vec3(0.0, 0.0, 0.0); + } + + encoded = encoded / range * 2.0 - 1.0; + vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y)); + if (v.z < 0.0) + { + v.xy = (1.0 - abs(v.yx)) * czm_signNotZero(v.xy); + } + + return normalize(v); + } + +/** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded) + { + return czm_octDecode(encoded, 255.0); + } + + /** + * Decodes a unit-length vector in 'oct' encoding packed into a floating-point number to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {float} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(float encoded) + { + float temp = encoded / 256.0; + float x = floor(temp); + float y = (temp - x) * 256.0; + return czm_octDecode(vec2(x, y)); + } + +/** + * Decodes three unit-length vectors in 'oct' encoding packed into two floating-point numbers to normalized 3-component Cartesian vectors. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The packed oct-encoded, unit-length vectors. + * @param {vec3} vector1 One decoded and normalized vector. + * @param {vec3} vector2 One decoded and normalized vector. + * @param {vec3} vector3 One decoded and normalized vector. + */ + void czm_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3) + { + float temp = encoded.x / 65536.0; + float x = floor(temp); + float encodedFloat1 = (temp - x) * 65536.0; + + temp = encoded.y / 65536.0; + float y = floor(temp); + float encodedFloat2 = (temp - y) * 65536.0; + + vector1 = czm_octDecode(encodedFloat1); + vector2 = czm_octDecode(encodedFloat2); + vector3 = czm_octDecode(vec2(x, y)); + } + +`;var MO=`/** + * Packs a depth value into a vec3 that can be represented by unsigned bytes. + * + * @name czm_packDepth + * @glslFunction + * + * @param {float} depth The floating-point depth. + * @returns {vec3} The packed depth. + */ +vec4 czm_packDepth(float depth) +{ + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth; + enc = fract(enc); + enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0); + return enc; +} +`;var RO=`vec3 lambertianDiffuse(vec3 diffuseColor) +{ + return diffuseColor / czm_pi; +} + +vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH) +{ + return f0 + (f90 - f0) * pow(clamp(1.0 - VdotH, 0.0, 1.0), 5.0); +} + +float smithVisibilityG1(float NdotV, float roughness) +{ + // this is the k value for direct lighting. + // for image based lighting it will be roughness^2 / 2 + float k = (roughness + 1.0) * (roughness + 1.0) / 8.0; + return NdotV / (NdotV * (1.0 - k) + k); +} + +float smithVisibilityGGX(float roughness, float NdotL, float NdotV) +{ + return ( + smithVisibilityG1(NdotL, roughness) * + smithVisibilityG1(NdotV, roughness) + ); +} + +float GGX(float roughness, float NdotH) +{ + float roughnessSquared = roughness * roughness; + float f = (NdotH * roughnessSquared - NdotH) * NdotH + 1.0; + return roughnessSquared / (czm_pi * f * f); +} + +/** + * Compute the diffuse and specular contributions using physically based + * rendering. This function only handles direct lighting. + * <p> + * This function only handles the lighting calculations. Metallic/roughness + * and specular/glossy must be handled separately. See {@czm_pbrMetallicRoughnessMaterial}, {@czm_pbrSpecularGlossinessMaterial} and {@czm_defaultPbrMaterial} + * </p> + * + * @name czm_pbrlighting + * @glslFunction + * + * @param {vec3} positionEC The position of the fragment in eye coordinates + * @param {vec3} normalEC The surface normal in eye coordinates + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} lightColorHdr radiance of the light source. This is a HDR value. + * @param {czm_pbrParameters} The computed PBR parameters. + * @return {vec3} The computed HDR color + * + * @example + * czm_pbrParameters pbrParameters = czm_pbrMetallicRoughnessMaterial( + * baseColor, + * metallic, + * roughness + * ); + * vec3 color = czm_pbrlighting( + * positionEC, + * normalEC, + * lightDirectionEC, + * lightColorHdr, + * pbrParameters); + */ +vec3 czm_pbrLighting( + vec3 positionEC, + vec3 normalEC, + vec3 lightDirectionEC, + vec3 lightColorHdr, + czm_pbrParameters pbrParameters +) +{ + vec3 v = -normalize(positionEC); + vec3 l = normalize(lightDirectionEC); + vec3 h = normalize(v + l); + vec3 n = normalEC; + float NdotL = clamp(dot(n, l), 0.001, 1.0); + float NdotV = abs(dot(n, v)) + 0.001; + float NdotH = clamp(dot(n, h), 0.0, 1.0); + float LdotH = clamp(dot(l, h), 0.0, 1.0); + float VdotH = clamp(dot(v, h), 0.0, 1.0); + + vec3 f0 = pbrParameters.f0; + float reflectance = max(max(f0.r, f0.g), f0.b); + vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0)); + vec3 F = fresnelSchlick2(f0, f90, VdotH); + + float alpha = pbrParameters.roughness; + float G = smithVisibilityGGX(alpha, NdotL, NdotV); + float D = GGX(alpha, NdotH); + vec3 specularContribution = F * G * D / (4.0 * NdotL * NdotV); + + vec3 diffuseColor = pbrParameters.diffuseColor; + // F here represents the specular contribution + vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor); + + // Lo = (diffuse + specular) * Li * NdotL + return (diffuseContribution + specularContribution) * NdotL * lightColorHdr; +} +`;var BO=`/** + * Compute parameters for physically based rendering using the + * metallic/roughness workflow. All inputs are linear; sRGB texture values must + * be decoded beforehand + * + * @name czm_pbrMetallicRoughnessMaterial + * @glslFunction + * + * @param {vec3} baseColor For dielectrics, this is the base color. For metals, this is the f0 value (reflectance at normal incidence) + * @param {float} metallic 0.0 indicates dielectric. 1.0 indicates metal. Values in between are allowed (e.g. to model rust or dirt); + * @param {float} roughness A value between 0.0 and 1.0 + * @return {czm_pbrParameters} parameters to pass into {@link czm_pbrLighting} + */ +czm_pbrParameters czm_pbrMetallicRoughnessMaterial( + vec3 baseColor, + float metallic, + float roughness +) +{ + czm_pbrParameters results; + + // roughness is authored as perceptual roughness + // square it to get material roughness + roughness = clamp(roughness, 0.0, 1.0); + results.roughness = roughness * roughness; + + // dielectrics use f0 = 0.04, metals use albedo as f0 + metallic = clamp(metallic, 0.0, 1.0); + const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04); + vec3 f0 = mix(REFLECTANCE_DIELECTRIC, baseColor, metallic); + results.f0 = f0; + + // diffuse only applies to dielectrics. + results.diffuseColor = baseColor * (1.0 - f0) * (1.0 - metallic); + + return results; +} +`;var LO=`/** + * Compute parameters for physically based rendering using the + * specular/glossy workflow. All inputs are linear; sRGB texture values must + * be decoded beforehand + * + * @name czm_pbrSpecularGlossinessMaterial + * @glslFunction + * + * @param {vec3} diffuse The diffuse color for dielectrics (non-metals) + * @param {vec3} specular The reflectance at normal incidence (f0) + * @param {float} glossiness A number from 0.0 to 1.0 indicating how smooth the surface is. + * @return {czm_pbrParameters} parameters to pass into {@link czm_pbrLighting} + */ +czm_pbrParameters czm_pbrSpecularGlossinessMaterial( + vec3 diffuse, + vec3 specular, + float glossiness +) +{ + czm_pbrParameters results; + + // glossiness is the opposite of roughness, but easier for artists to use. + float roughness = 1.0 - glossiness; + results.roughness = roughness * roughness; + + results.diffuseColor = diffuse * (1.0 - max(max(specular.r, specular.g), specular.b)); + results.f0 = specular; + + return results; +} +`;var NO=`float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material) +{ + return czm_getLambertDiffuse(lightDirectionEC, material.normal); +} + +float czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material) +{ + return czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess); +} + +/** + * Computes a color using the Phong lighting model. + * + * @name czm_phong + * @glslFunction + * + * @param {vec3} toEye A normalized vector from the fragment to the eye in eye coordinates. + * @param {czm_material} material The fragment's material. + * + * @returns {vec4} The computed color. + * + * @example + * vec3 positionToEyeEC = // ... + * czm_material material = // ... + * vec3 lightDirectionEC = // ... + * out_FragColor = czm_phong(normalize(positionToEyeEC), material, lightDirectionEC); + * + * @see czm_getMaterial + */ +vec4 czm_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down) + float diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material); + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material); + } + + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} + +vec4 czm_private_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + float diffuse = czm_private_getLambertDiffuseOfMaterial(lightDirectionEC, material); + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + vec3 ambient = vec3(0.0); + vec3 color = ambient + material.emission; + color += material.diffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var FO=`/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec4} plane A Plane in Hessian Normal Form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec4 plane, vec3 point) { + return (dot(plane.xyz, point) + plane.w); +} + +/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec3} planeNormal Normal for a plane in Hessian Normal Form. See Plane.js + * param {float} planeDistance Distance for a plane in Hessian Normal form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec3 planeNormal, float planeDistance, vec3 point) { + return (dot(planeNormal, point) + planeDistance); +} +`;var UO=`/** + * Computes the point along a ray at the given time. <code>time</code> can be positive, negative, or zero. + * + * @name czm_pointAlongRay + * @glslFunction + * + * @param {czm_ray} ray The ray to compute the point along. + * @param {float} time The time along the ray. + * + * @returns {vec3} The point along the ray at the given time. + * + * @example + * czm_ray ray = czm_ray(vec3(0.0), vec3(1.0, 0.0, 0.0)); // origin, direction + * vec3 v = czm_pointAlongRay(ray, 2.0); // (2.0, 0.0, 0.0) + */ +vec3 czm_pointAlongRay(czm_ray ray, float time) +{ + return ray.origin + (time * ray.direction); +} +`;var VO=`/** + * DOC_TBA + * + * @name czm_rayEllipsoidIntersectionInterval + * @glslFunction + */ +czm_raySegment czm_rayEllipsoidIntersectionInterval(czm_ray ray, vec3 ellipsoid_center, vec3 ellipsoid_inverseRadii) +{ + // ray and ellipsoid center in eye coordinates. radii in model coordinates. + vec3 q = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.origin, 1.0)).xyz; + vec3 w = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.direction, 0.0)).xyz; + + q = q - ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ellipsoid_center, 1.0)).xyz; + + float q2 = dot(q, q); + float qw = dot(q, w); + + if (q2 > 1.0) // Outside ellipsoid. + { + if (qw >= 0.0) // Looking outward or tangent (0 intersections). + { + return czm_emptyRaySegment; + } + else // qw < 0.0. + { + float qw2 = qw * qw; + float difference = q2 - 1.0; // Positively valued. + float w2 = dot(w, w); + float product = w2 * difference; + + if (qw2 < product) // Imaginary roots (0 intersections). + { + return czm_emptyRaySegment; + } + else if (qw2 > product) // Distinct roots (2 intersections). + { + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Avoid cancellation. + float root0 = temp / w2; + float root1 = difference / temp; + if (root0 < root1) + { + czm_raySegment i = czm_raySegment(root0, root1); + return i; + } + else + { + czm_raySegment i = czm_raySegment(root1, root0); + return i; + } + } + else // qw2 == product. Repeated roots (2 intersections). + { + float root = sqrt(difference / w2); + czm_raySegment i = czm_raySegment(root, root); + return i; + } + } + } + else if (q2 < 1.0) // Inside ellipsoid (2 intersections). + { + float difference = q2 - 1.0; // Negatively valued. + float w2 = dot(w, w); + float product = w2 * difference; // Negatively valued. + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Positively valued. + czm_raySegment i = czm_raySegment(0.0, temp / w2); + return i; + } + else // q2 == 1.0. On ellipsoid. + { + if (qw < 0.0) // Looking inward. + { + float w2 = dot(w, w); + czm_raySegment i = czm_raySegment(0.0, -qw / w2); + return i; + } + else // qw >= 0.0. Looking outward or tangent. + { + return czm_emptyRaySegment; + } + } +} +`;var kO=`/** + * Compute the intersection interval of a ray with a sphere. + * + * @name czm_raySphereIntersectionInterval + * @glslFunction + * + * @param {czm_ray} ray The ray. + * @param {vec3} center The center of the sphere. + * @param {float} radius The radius of the sphere. + * @return {czm_raySegment} The intersection interval of the ray with the sphere. + */ +czm_raySegment czm_raySphereIntersectionInterval(czm_ray ray, vec3 center, float radius) +{ + vec3 o = ray.origin; + vec3 d = ray.direction; + + vec3 oc = o - center; + + float a = dot(d, d); + float b = 2.0 * dot(d, oc); + float c = dot(oc, oc) - (radius * radius); + + float det = (b * b) - (4.0 * a * c); + + if (det < 0.0) { + return czm_emptyRaySegment; + } + + float sqrtDet = sqrt(det); + + float t0 = (-b - sqrtDet) / (2.0 * a); + float t1 = (-b + sqrtDet) / (2.0 * a); + + czm_raySegment result = czm_raySegment(t0, t1); + return result; +} +`;var zO=`float czm_readDepth(sampler2D depthTexture, vec2 texCoords) +{ + return czm_reverseLogDepth(texture(depthTexture, texCoords).r); +} +`;var HO=`/** + * Reads a value previously transformed with {@link czm_writeNonPerspective} + * by dividing it by \`w\`, the value used in the perspective divide. + * This function is intended to be called in a fragment shader to access a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The value should have been + * previously written in the vertex shader with a call to + * {@link czm_writeNonPerspective}. + * + * @name czm_readNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The non-perspective value to be read. + * @param {float} oneOverW One over the perspective divide value, \`w\`. Usually this is simply \`gl_FragCoord.w\`. + * @returns {float|vec2|vec3|vec4} The usable value. + */ +float czm_readNonPerspective(float value, float oneOverW) { + return value * oneOverW; +} + +vec2 czm_readNonPerspective(vec2 value, float oneOverW) { + return value * oneOverW; +} + +vec3 czm_readNonPerspective(vec3 value, float oneOverW) { + return value * oneOverW; +} + +vec4 czm_readNonPerspective(vec4 value, float oneOverW) { + return value * oneOverW; +} +`;var GO=`float czm_reverseLogDepth(float logZ) +{ +#ifdef LOG_DEPTH + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = logZ * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = pow(2.0, log2Depth) - 1.0; + return far * (1.0 - near / (depthFromNear + near)) / (far - near); +#endif + return logZ; +} +`;var WO=`/** + * Round a floating point value. This function exists because round() doesn't + * exist in GLSL 1.00. + * + * @param {float|vec2|vec3|vec4} value The value to round + * @param {float|vec2|vec3|vec3} The rounded value. The type matches the input. + */ +float czm_round(float value) { + return floor(value + 0.5); +} + +vec2 czm_round(vec2 value) { + return floor(value + 0.5); +} + +vec3 czm_round(vec3 value) { + return floor(value + 0.5); +} + +vec4 czm_round(vec4 value) { + return floor(value + 0.5); +} +`;var jO=`/** + * Samples the 4 neighboring pixels and return the weighted average. + * + * @private + */ +vec3 czm_sampleOctahedralProjectionWithFiltering(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod) +{ + direction /= dot(vec3(1.0), abs(direction)); + vec2 rev = abs(direction.zx) - vec2(1.0); + vec2 neg = vec2(direction.x < 0.0 ? rev.x : -rev.x, + direction.z < 0.0 ? rev.y : -rev.y); + vec2 uv = direction.y < 0.0 ? neg : direction.xz; + vec2 coord = 0.5 * uv + vec2(0.5); + vec2 pixel = 1.0 / textureSize; + + if (lod > 0.0) + { + // Each subseqeuent mip level is half the size + float scale = 1.0 / pow(2.0, lod); + float offset = ((textureSize.y + 1.0) / textureSize.x); + + coord.x *= offset; + coord *= scale; + + coord.x += offset + pixel.x; + coord.y += (1.0 - (1.0 / pow(2.0, lod - 1.0))) + pixel.y * (lod - 1.0) * 2.0; + } + else + { + coord.x *= (textureSize.y / textureSize.x); + } + + // Do bilinear filtering + #ifndef OES_texture_float_linear + vec3 color1 = texture(projectedMap, coord + vec2(0.0, pixel.y)).rgb; + vec3 color2 = texture(projectedMap, coord + vec2(pixel.x, 0.0)).rgb; + vec3 color3 = texture(projectedMap, coord + pixel).rgb; + vec3 color4 = texture(projectedMap, coord).rgb; + + vec2 texturePosition = coord * textureSize; + + float fu = fract(texturePosition.x); + float fv = fract(texturePosition.y); + + vec3 average1 = mix(color4, color2, fu); + vec3 average2 = mix(color1, color3, fu); + + vec3 color = mix(average1, average2, fv); + #else + vec3 color = texture(projectedMap, coord).rgb; + #endif + + return color; +} + + +/** + * Samples from a cube map that has been projected using an octahedral projection from the given direction. + * + * @name czm_sampleOctahedralProjection + * @glslFunction + * + * @param {sampler2D} projectedMap The texture with the octahedral projected cube map. + * @param {vec2} textureSize The width and height dimensions in pixels of the projected map. + * @param {vec3} direction The normalized direction used to sample the cube map. + * @param {float} lod The level of detail to sample. + * @param {float} maxLod The maximum level of detail. + * @returns {vec3} The color of the cube map at the direction. + */ +vec3 czm_sampleOctahedralProjection(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod, float maxLod) { + float currentLod = floor(lod + 0.5); + float nextLod = min(currentLod + 1.0, maxLod); + + vec3 colorCurrentLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, currentLod); + vec3 colorNextLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, nextLod); + + return mix(colorNextLod, colorCurrentLod, nextLod - lod); +} +`;var YO=`/** + * Adjusts the saturation of a color. + * + * @name czm_saturation + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the saturation of the color. + * + * @returns {float} The color with the saturation adjusted. + * + * @example + * vec3 greyScale = czm_saturation(color, 0.0); + * vec3 doubleSaturation = czm_saturation(color, 2.0); + */ +vec3 czm_saturation(vec3 rgb, float adjustment) +{ + // Algorithm from Chapter 16 of OpenGL Shading Language + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + vec3 intensity = vec3(dot(rgb, W)); + return mix(intensity, rgb, adjustment); +} +`;var qO=` +float czm_sampleShadowMap(highp samplerCube shadowMap, vec3 d) +{ + return czm_unpackDepth(czm_textureCube(shadowMap, d)); +} + +float czm_sampleShadowMap(highp sampler2D shadowMap, vec2 uv) +{ +#ifdef USE_SHADOW_DEPTH_TEXTURE + return texture(shadowMap, uv).r; +#else + return czm_unpackDepth(texture(shadowMap, uv)); +#endif +} + +float czm_shadowDepthCompare(samplerCube shadowMap, vec3 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} + +float czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} +`;var XO=` +float czm_private_shadowVisibility(float visibility, float nDotL, float normalShadingSmooth, float darkness) +{ +#ifdef USE_NORMAL_SHADING +#ifdef USE_NORMAL_SHADING_SMOOTH + float strength = clamp(nDotL / normalShadingSmooth, 0.0, 1.0); +#else + float strength = step(0.0, nDotL); +#endif + visibility *= strength; +#endif + + visibility = max(visibility, darkness); + return visibility; +} + +#ifdef USE_CUBE_MAP_SHADOW +float czm_shadowVisibility(samplerCube shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec3 uvw = shadowParameters.texCoords; + + depth -= depthBias; + float visibility = czm_shadowDepthCompare(shadowMap, uvw, depth); + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#else +float czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec2 uv = shadowParameters.texCoords; + + depth -= depthBias; +#ifdef USE_SOFT_SHADOWS + vec2 texelStepSize = shadowParameters.texelStepSize; + float radius = 1.0; + float dx0 = -texelStepSize.x * radius; + float dy0 = -texelStepSize.y * radius; + float dx1 = texelStepSize.x * radius; + float dy1 = texelStepSize.y * radius; + float visibility = ( + czm_shadowDepthCompare(shadowMap, uv, depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth) + ) * (1.0 / 9.0); +#else + float visibility = czm_shadowDepthCompare(shadowMap, uv, depth); +#endif + + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#endif +`;var KO=`/** + * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative. This is similar to the GLSL + * built-in function <code>sign</code> except that returns 1.0 instead of 0.0 when the input value is 0.0. + * + * @name czm_signNotZero + * @glslFunction + * + * @param {} value The value for which to determine the sign. + * @returns {} 1.0 if the value is positive or zero, -1.0 if the value is negative. + */ +float czm_signNotZero(float value) +{ + return value >= 0.0 ? 1.0 : -1.0; +} + +vec2 czm_signNotZero(vec2 value) +{ + return vec2(czm_signNotZero(value.x), czm_signNotZero(value.y)); +} + +vec3 czm_signNotZero(vec3 value) +{ + return vec3(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z)); +} + +vec4 czm_signNotZero(vec4 value) +{ + return vec4(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z), czm_signNotZero(value.w)); +} +`;var JO=`/** + * Computes a color from the third order spherical harmonic coefficients and a normalized direction vector. + * <p> + * The order of the coefficients is [L00, L1_1, L10, L11, L2_2, L2_1, L20, L21, L22]. + * </p> + * + * @name czm_sphericalHarmonics + * @glslFunction + * + * @param {vec3} normal The normalized direction. + * @param {vec3[9]} coefficients The third order spherical harmonic coefficients. + * @returns {vec3} The color at the direction. + * + * @see https://graphics.stanford.edu/papers/envmap/envmap.pdf + */ +vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9]) +{ + vec3 L00 = coefficients[0]; + vec3 L1_1 = coefficients[1]; + vec3 L10 = coefficients[2]; + vec3 L11 = coefficients[3]; + vec3 L2_2 = coefficients[4]; + vec3 L2_1 = coefficients[5]; + vec3 L20 = coefficients[6]; + vec3 L21 = coefficients[7]; + vec3 L22 = coefficients[8]; + + float x = normal.x; + float y = normal.y; + float z = normal.z; + + return + L00 + + L1_1 * y + + L10 * z + + L11 * x + + L2_2 * (y * x) + + L2_1 * (y * z) + + L20 * (3.0 * z * z - 1.0) + + L21 * (z * x) + + L22 * (x * x - y * y); +} +`;var ZO=`/** + * Converts an sRGB color to a linear RGB color. + * + * @param {vec3|vec4} srgbIn The color in sRGB space + * @returns {vec3|vec4} The color in linear color space. The vector type matches the input. + */ +vec3 czm_srgbToLinear(vec3 srgbIn) +{ + return pow(srgbIn, vec3(2.2)); +} + +vec4 czm_srgbToLinear(vec4 srgbIn) +{ + vec3 linearOut = pow(srgbIn.rgb, vec3(2.2)); + return vec4(linearOut, srgbIn.a); +} +`;var QO=`/** + * Creates a matrix that transforms vectors from tangent space to eye space. + * + * @name czm_tangentToEyeSpaceMatrix + * @glslFunction + * + * @param {vec3} normalEC The normal vector in eye coordinates. + * @param {vec3} tangentEC The tangent vector in eye coordinates. + * @param {vec3} bitangentEC The bitangent vector in eye coordinates. + * + * @returns {mat3} The matrix that transforms from tangent space to eye space. + * + * @example + * mat3 tangentToEye = czm_tangentToEyeSpaceMatrix(normalEC, tangentEC, bitangentEC); + * vec3 normal = tangentToEye * texture(normalMap, st).xyz; + */ +mat3 czm_tangentToEyeSpaceMatrix(vec3 normalEC, vec3 tangentEC, vec3 bitangentEC) +{ + vec3 normal = normalize(normalEC); + vec3 tangent = normalize(tangentEC); + vec3 bitangent = normalize(bitangentEC); + return mat3(tangent.x , tangent.y , tangent.z, + bitangent.x, bitangent.y, bitangent.z, + normal.x , normal.y , normal.z); +} +`;var $O=`/** + * A wrapper around the texture (WebGL2) / textureCube (WebGL1) + * function to allow for WebGL 1 support. + * + * @name czm_textureCube + * @glslFunction + * + * @param {samplerCube} sampler The sampler. + * @param {vec3} p The coordinates to sample the texture at. + */ +vec4 czm_textureCube(samplerCube sampler, vec3 p) { +#if __VERSION__ == 300 + return texture(sampler, p); +#else + return textureCube(sampler, p); +#endif +}`;var eM=`/** + * Transforms a plane. + * + * @name czm_transformPlane + * @glslFunction + * + * @param {vec4} plane The plane in Hessian Normal Form. + * @param {mat4} transform The inverse-transpose of a transformation matrix. + */ +vec4 czm_transformPlane(vec4 plane, mat4 transform) { + vec4 transformedPlane = transform * plane; + // Convert the transformed plane to Hessian Normal Form + float normalMagnitude = length(transformedPlane.xyz); + return transformedPlane / normalMagnitude; +} +`;var tM=`/** + * Translates a position (or any <code>vec3</code>) that was encoded with {@link EncodedCartesian3}, + * and then provided to the shader as separate <code>high</code> and <code>low</code> bits to + * be relative to the eye. As shown in the example, the position can then be transformed in eye + * or clip coordinates using {@link czm_modelViewRelativeToEye} or {@link czm_modelViewProjectionRelativeToEye}, + * respectively. + * <p> + * This technique, called GPU RTE, eliminates jittering artifacts when using large coordinates as + * described in {@link http://help.agi.com/AGIComponents/html/BlogPrecisionsPrecisions.htm|Precisions, Precisions}. + * </p> + * + * @name czm_translateRelativeToEye + * @glslFunction + * + * @param {vec3} high The position's high bits. + * @param {vec3} low The position's low bits. + * @returns {vec3} The position translated to be relative to the camera's position. + * + * @example + * in vec3 positionHigh; + * in vec3 positionLow; + * + * void main() + * { + * vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * } + * + * @see czm_modelViewRelativeToEye + * @see czm_modelViewProjectionRelativeToEye + * @see czm_computePosition + * @see EncodedCartesian3 + */ +vec4 czm_translateRelativeToEye(vec3 high, vec3 low) +{ + vec3 highDifference = high - czm_encodedCameraPositionMCHigh; + vec3 lowDifference = low - czm_encodedCameraPositionMCLow; + + return vec4(highDifference + lowDifference, 1.0); +} +`;var nM=`/** + * @private + */ +vec4 czm_translucentPhong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down and horizon views) + float diffuse = czm_getLambertDiffuse(vec3(0.0, 0.0, 1.0), material.normal); + + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_getLambertDiffuse(vec3(0.0, 1.0, 0.0), material.normal); + } + + diffuse = clamp(diffuse, 0.0, 1.0); + + float specular = czm_getSpecular(lightDirectionEC, toEye, material.normal, material.shininess); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var iM=`/** + * Returns the transpose of the matrix. The input <code>matrix</code> can be + * a <code>mat2</code>, <code>mat3</code>, or <code>mat4</code>. + * + * @name czm_transpose + * @glslFunction + * + * @param {} matrix The matrix to transpose. + * + * @returns {} The transposed matrix. + * + * @example + * // GLSL declarations + * mat2 czm_transpose(mat2 matrix); + * mat3 czm_transpose(mat3 matrix); + * mat4 czm_transpose(mat4 matrix); + * + * // Transpose a 3x3 rotation matrix to find its inverse. + * mat3 eastNorthUpToEye = czm_eastNorthUpToEyeCoordinates( + * positionMC, normalEC); + * mat3 eyeToEastNorthUp = czm_transpose(eastNorthUpToEye); + */ +mat2 czm_transpose(mat2 matrix) +{ + return mat2( + matrix[0][0], matrix[1][0], + matrix[0][1], matrix[1][1]); +} + +mat3 czm_transpose(mat3 matrix) +{ + return mat3( + matrix[0][0], matrix[1][0], matrix[2][0], + matrix[0][1], matrix[1][1], matrix[2][1], + matrix[0][2], matrix[1][2], matrix[2][2]); +} + +mat4 czm_transpose(mat4 matrix) +{ + return mat4( + matrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0], + matrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1], + matrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2], + matrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]); +} +`;var oM=`/** + * Unpacks a vec4 depth value to a float in [0, 1) range. + * + * @name czm_unpackDepth + * @glslFunction + * + * @param {vec4} packedDepth The packed depth. + * + * @returns {float} The floating-point depth in [0, 1) range. + */ + float czm_unpackDepth(vec4 packedDepth) + { + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)); + } +`;var rM=`/** + * Unpack an IEEE 754 single-precision float that is packed as a little-endian unsigned normalized vec4. + * + * @name czm_unpackFloat + * @glslFunction + * + * @param {vec4} packedFloat The packed float. + * + * @returns {float} The floating-point depth in arbitrary range. + */ +float czm_unpackFloat(vec4 packedFloat) +{ + // Convert to [0.0, 255.0] and round to integer + packedFloat = floor(packedFloat * 255.0 + 0.5); + float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0; + float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0; + if (exponent == -127.0) + { + return 0.0; + } + float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000); + float result = sign * exp2(exponent - 23.0) * mantissa; + return result; +} +`;var sM=`/** + * Unpack unsigned integers of 1-4 bytes. in WebGL 1, there is no uint type, + * so the return value is an int. + * <p> + * There are also precision limitations in WebGL 1. highp int is still limited + * to 24 bits. Above the value of 2^24 = 16777216, precision loss may occur. + * </p> + * + * @param {float|vec2|vec3|vec4} packed The packed value. For vectors, the components are listed in little-endian order. + * + * @return {int} The unpacked value. + */ + int czm_unpackUint(float packedValue) { + float rounded = czm_round(packedValue * 255.0); + return int(rounded); + } + + int czm_unpackUint(vec2 packedValue) { + vec2 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec2(1.0, 256.0))); + } + + int czm_unpackUint(vec3 packedValue) { + vec3 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec3(1.0, 256.0, 65536.0))); + } + + int czm_unpackUint(vec4 packedValue) { + vec4 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec4(1.0, 256.0, 65536.0, 16777216.0))); + } +`;var aM=`/** + * Transform metadata values following the EXT_structural_metadata spec + * by multiplying by scale and adding the offset. Operations are always + * performed component-wise, even for matrices. + * + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} offset The offset to add + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} scale The scale factor to multiply + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} value The original value. + * + * @return {float|vec2|vec3|vec4|mat2|mat3|mat4} The transformed value of the same scalar/vector/matrix type as the input. + */ +float czm_valueTransform(float offset, float scale, float value) { + return scale * value + offset; +} + +vec2 czm_valueTransform(vec2 offset, vec2 scale, vec2 value) { + return scale * value + offset; +} + +vec3 czm_valueTransform(vec3 offset, vec3 scale, vec3 value) { + return scale * value + offset; +} + +vec4 czm_valueTransform(vec4 offset, vec4 scale, vec4 value) { + return scale * value + offset; +} + +mat2 czm_valueTransform(mat2 offset, mat2 scale, mat2 value) { + return matrixCompMult(scale, value) + offset; +} + +mat3 czm_valueTransform(mat3 offset, mat3 scale, mat3 value) { + return matrixCompMult(scale, value) + offset; +} + +mat4 czm_valueTransform(mat4 offset, mat4 scale, mat4 value) { + return matrixCompMult(scale, value) + offset; +} +`;var cM=`#ifdef LOG_DEPTH +// 1.0 at the near plane, increasing linearly from there. +out float v_depthFromNearPlusOne; +#ifdef SHADOW_MAP +out vec3 v_logPositionEC; +#endif +#endif + +vec4 czm_updatePositionDepth(vec4 coords) { +#if defined(LOG_DEPTH) + +#ifdef SHADOW_MAP + vec3 logPositionEC = (czm_inverseProjection * coords).xyz; + v_logPositionEC = logPositionEC; +#endif + + // With the very high far/near ratios used with the logarithmic depth + // buffer, floating point rounding errors can cause linear depth values + // to end up on the wrong side of the far plane, even for vertices that + // are really nowhere near it. Since we always write a correct logarithmic + // depth value in the fragment shader anyway, we just need to make sure + // such errors don't cause the primitive to be clipped entirely before + // we even get to the fragment shader. + coords.z = clamp(coords.z / coords.w, -1.0, 1.0) * coords.w; +#endif + + return coords; +} + +/** + * Writes the logarithmic depth to gl_Position using the already computed gl_Position. + * + * @name czm_vertexLogDepth + * @glslFunction + */ +void czm_vertexLogDepth() +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (gl_Position.w - czm_currentFrustum.x) + 1.0; + gl_Position = czm_updatePositionDepth(gl_Position); +#endif +} + +/** + * Writes the logarithmic depth to gl_Position using the provided clip coordinates. + * <p> + * An example use case for this function would be moving the vertex in window coordinates + * before converting back to clip coordinates. Use the original vertex clip coordinates. + * </p> + * @name czm_vertexLogDepth + * @glslFunction + * + * @param {vec4} clipCoords The vertex in clip coordinates. + * + * @example + * czm_vertexLogDepth(czm_projection * vec4(positionEyeCoordinates, 1.0)); + */ +void czm_vertexLogDepth(vec4 clipCoords) +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (clipCoords.w - czm_currentFrustum.x) + 1.0; + czm_updatePositionDepth(clipCoords); +#endif +} +`;var lM=`vec4 czm_screenToEyeCoordinates(vec4 screenCoordinate) +{ + // Reconstruct NDC coordinates + float x = 2.0 * screenCoordinate.x - 1.0; + float y = 2.0 * screenCoordinate.y - 1.0; + float z = (screenCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + vec4 q = vec4(x, y, z, 1.0); + + // Reverse the perspective division to obtain clip coordinates. + q /= screenCoordinate.w; + + // Reverse the projection transformation to obtain eye coordinates. + if (!(czm_inverseProjection == mat4(0.0))) // IE and Edge sometimes do something weird with != between mat4s + { + q = czm_inverseProjection * q; + } + else + { + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + + q.x = (q.x * (right - left) + left + right) * 0.5; + q.y = (q.y * (top - bottom) + bottom + top) * 0.5; + q.z = (q.z * (near - far) - near - far) * 0.5; + q.w = 1.0; + } + + return q; +} + +/** + * Transforms a position from window to eye coordinates. + * The transform from window to normalized device coordinates is done using components + * of (@link czm_viewport} and {@link czm_viewportTransformation} instead of calculating + * the inverse of <code>czm_viewportTransformation</code>. The transformation from + * normalized device coordinates to clip coordinates is done using <code>fragmentCoordinate.w</code>, + * which is expected to be the scalar used in the perspective divide. The transformation + * from clip to eye coordinates is done using {@link czm_inverseProjection}. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec4} fragmentCoordinate The position in window coordinates to transform. + * + * @returns {vec4} The transformed position in eye coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @example + * vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord); + */ +vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate) +{ + vec2 screenCoordXY = (fragmentCoordinate.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(vec4(screenCoordXY, fragmentCoordinate.zw)); +} + +vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth) +{ + // See reverseLogDepth.glsl. This is separate to re-use the pow. +#if defined(LOG_DEPTH) || defined(LOG_DEPTH_READ_ONLY) + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = pow(2.0, log2Depth) - 1.0; + float depthFromCamera = depthFromNear + near; + vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); + eyeCoordinate.w = 1.0 / depthFromCamera; // Better precision + return eyeCoordinate; +#else + vec4 screenCoord = vec4(screenCoordinateXY, depthOrLogDepth, 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); +#endif + return eyeCoordinate; +} + +/** + * Transforms a position given as window x/y and a depth or a log depth from window to eye coordinates. + * This function produces more accurate results for window positions with log depth than + * conventionally unpacking the log depth using czm_reverseLogDepth and using the standard version + * of czm_windowToEyeCoordinates. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec2} fragmentCoordinateXY The XY position in window coordinates to transform. + * @param {float} depthOrLogDepth A depth or log depth for the fragment. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @returns {vec4} The transformed position in eye coordinates. + */ +vec4 czm_windowToEyeCoordinates(vec2 fragmentCoordinateXY, float depthOrLogDepth) +{ + vec2 screenCoordXY = (fragmentCoordinateXY.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(screenCoordXY, depthOrLogDepth); +} +`;var uM=`// emulated noperspective +#if !defined(LOG_DEPTH) +in float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP. Clamps a fragment to the near and far plane + * by writing the fragment's depth. See czm_depthClamp for more details. + * + * @name czm_writeDepthClamp + * @glslFunction + * + * @example + * out_FragColor = color; + * czm_writeDepthClamp(); + * + * @see czm_depthClamp + */ +void czm_writeDepthClamp() +{ +#if (!defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + gl_FragDepth = clamp(v_WindowZ * gl_FragCoord.w, 0.0, 1.0); +#endif +} +`;var fM=`#ifdef LOG_DEPTH +in float v_depthFromNearPlusOne; + +#ifdef POLYGON_OFFSET +uniform vec2 u_polygonOffset; +#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif +#endif + +#endif + +/** + * Writes the fragment depth to the logarithmic depth buffer. + * <p> + * Use this when the vertex shader does not call {@link czm_vertexlogDepth}, for example, when + * ray-casting geometry using a full screen quad. + * </p> + * @name czm_writeLogDepth + * @glslFunction + * + * @param {float} depth The depth coordinate, where 1.0 is on the near plane and + * depth increases in eye-space units from there + * + * @example + * czm_writeLogDepth((czm_projection * v_positionEyeCoordinates).w + 1.0); + */ +void czm_writeLogDepth(float depth) +{ +#if (defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + // Discard the vertex if it's not between the near and far planes. + // We allow a bit of epsilon on the near plane comparison because a 1.0 + // from the vertex shader (indicating the vertex should be _on_ the near + // plane) will not necessarily come here as exactly 1.0. + if (depth <= 0.9999999 || depth > czm_farDepthFromNearPlusOne) { + discard; + } + +#ifdef POLYGON_OFFSET + // Polygon offset: m * factor + r * units + float factor = u_polygonOffset[0]; + float units = u_polygonOffset[1]; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + // This factor doesn't work in IE 10 + if (factor != 0.0) { + // m = sqrt(dZdX^2 + dZdY^2); + float x = dFdx(depth); + float y = dFdy(depth); + float m = sqrt(x * x + y * y); + + // Apply the factor before computing the log depth. + depth += m * factor; + } +#endif + +#endif + + gl_FragDepth = log2(depth) * czm_oneOverLog2FarDepthFromNearPlusOne; + +#ifdef POLYGON_OFFSET + // Apply the units after the log depth. + gl_FragDepth += czm_epsilon7 * units; +#endif + +#endif +} + +/** + * Writes the fragment depth to the logarithmic depth buffer. + * <p> + * Use this when the vertex shader calls {@link czm_vertexlogDepth}. + * </p> + * + * @name czm_writeLogDepth + * @glslFunction + */ +void czm_writeLogDepth() { +#ifdef LOG_DEPTH + czm_writeLogDepth(v_depthFromNearPlusOne); +#endif +} +`;var dM=`/** + * Transforms a value for non-perspective interpolation by multiplying + * it by w, the value used in the perspective divide. This function is + * intended to be called in a vertex shader to compute the value of a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The fragment shader + * must call {@link czm_readNonPerspective} to retrieve the final + * non-perspective value. + * + * @name czm_writeNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The value to be interpolated without accounting for perspective. + * @param {float} w The perspective divide value. Usually this is the computed \`gl_Position.w\`. + * @returns {float|vec2|vec3|vec4} The transformed value, intended to be stored in a \`varying\` and read in the + * fragment shader with {@link czm_readNonPerspective}. + */ +float czm_writeNonPerspective(float value, float w) { + return value * w; +} + +vec2 czm_writeNonPerspective(vec2 value, float w) { + return value * w; +} + +vec3 czm_writeNonPerspective(vec3 value, float w) { + return value * w; +} + +vec4 czm_writeNonPerspective(vec4 value, float w) { + return value * w; +} +`;var kx={czm_degreesPerRadian:WP,czm_depthRange:jP,czm_epsilon1:YP,czm_epsilon2:qP,czm_epsilon3:XP,czm_epsilon4:KP,czm_epsilon5:JP,czm_epsilon6:ZP,czm_epsilon7:QP,czm_infinity:$P,czm_oneOverPi:e1,czm_oneOverTwoPi:t1,czm_passCesium3DTile:n1,czm_passCesium3DTileClassification:i1,czm_passCesium3DTileClassificationIgnoreShow:o1,czm_passClassification:r1,czm_passCompute:s1,czm_passEnvironment:a1,czm_passGlobe:c1,czm_passOpaque:l1,czm_passOverlay:u1,czm_passTerrainClassification:f1,czm_passTranslucent:d1,czm_passVoxels:m1,czm_pi:h1,czm_piOverFour:p1,czm_piOverSix:_1,czm_piOverThree:g1,czm_piOverTwo:y1,czm_radiansPerDegree:A1,czm_sceneMode2D:x1,czm_sceneMode3D:C1,czm_sceneModeColumbusView:T1,czm_sceneModeMorphing:E1,czm_solarRadius:b1,czm_threePiOver2:S1,czm_twoPi:w1,czm_webMercatorMaxLatitude:v1,czm_depthRangeStruct:D1,czm_material:I1,czm_materialInput:P1,czm_modelMaterial:O1,czm_modelVertexOutput:M1,czm_pbrParameters:R1,czm_ray:B1,czm_raySegment:L1,czm_shadowParameters:N1,czm_HSBToRGB:F1,czm_HSLToRGB:U1,czm_RGBToHSB:V1,czm_RGBToHSL:k1,czm_RGBToXYZ:z1,czm_XYZToRGB:H1,czm_acesTonemapping:G1,czm_alphaWeight:W1,czm_antialias:j1,czm_approximateSphericalCoordinates:Y1,czm_backFacing:q1,czm_branchFreeTernary:X1,czm_cascadeColor:K1,czm_cascadeDistance:J1,czm_cascadeMatrix:Z1,czm_cascadeWeights:Q1,czm_columbusViewMorph:$1,czm_computePosition:eO,czm_cosineAndSine:tO,czm_decompressTextureCoordinates:nO,czm_defaultPbrMaterial:iO,czm_depthClamp:oO,czm_eastNorthUpToEyeCoordinates:rO,czm_ellipsoidContainsPoint:sO,czm_ellipsoidWgs84TextureCoordinates:aO,czm_equalsEpsilon:cO,czm_eyeOffset:lO,czm_eyeToWindowCoordinates:uO,czm_fastApproximateAtan:fO,czm_fog:dO,czm_gammaCorrect:mO,czm_geodeticSurfaceNormal:hO,czm_getDefaultMaterial:pO,czm_getLambertDiffuse:_O,czm_getSpecular:gO,czm_getWaterNoise:yO,czm_hue:AO,czm_inverseGamma:xO,czm_isEmpty:CO,czm_isFull:TO,czm_latitudeToWebMercatorFraction:EO,czm_lineDistance:bO,czm_linearToSrgb:SO,czm_luminance:wO,czm_metersPerPixel:vO,czm_modelToWindowCoordinates:DO,czm_multiplyWithColorBalance:IO,czm_nearFarScalar:PO,czm_octDecode:OO,czm_packDepth:MO,czm_pbrLighting:RO,czm_pbrMetallicRoughnessMaterial:BO,czm_pbrSpecularGlossinessMaterial:LO,czm_phong:NO,czm_planeDistance:FO,czm_pointAlongRay:UO,czm_rayEllipsoidIntersectionInterval:VO,czm_raySphereIntersectionInterval:kO,czm_readDepth:zO,czm_readNonPerspective:HO,czm_reverseLogDepth:GO,czm_round:WO,czm_sampleOctahedralProjection:jO,czm_saturation:YO,czm_shadowDepthCompare:qO,czm_shadowVisibility:XO,czm_signNotZero:KO,czm_sphericalHarmonics:JO,czm_srgbToLinear:ZO,czm_tangentToEyeSpaceMatrix:QO,czm_textureCube:$O,czm_transformPlane:eM,czm_translateRelativeToEye:tM,czm_translucentPhong:nM,czm_transpose:iM,czm_unpackDepth:oM,czm_unpackFloat:rM,czm_unpackUint:sM,czm_valueTransform:aM,czm_vertexLogDepth:cM,czm_windowToEyeCoordinates:lM,czm_writeDepthClamp:uM,czm_writeLogDepth:fM,czm_writeNonPerspective:dM};function KEe(e,t){let n=e;return n=n.replaceAll("version 300 es",""),n=n.replaceAll(/(texture\()/g,"texture2D("),t?(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"varying $2"),/out_FragData_(\d+)/.test(n)&&(n=`#extension GL_EXT_draw_buffers : enable +${n}`,n=n.replaceAll(/layout\s+\(location\s*=\s*\d+\)\s*out\s+vec4\s+out_FragData_\d+;/g,""),n=n.replaceAll(/out_FragData_(\d+)/g,"gl_FragData[$1]")),n=n.replaceAll(/layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,""),n=n.replaceAll(/out_FragColor/g,"gl_FragColor"),n=n.replaceAll(/out_FragColor\[(\d+)\]/g,"gl_FragColor[$1]"),/gl_FragDepth/.test(n)&&(n=`#extension GL_EXT_frag_depth : enable +${n}`,n=n.replaceAll(/gl_FragDepth/g,"gl_FragDepthEXT"))):(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"attribute $2"),n=n.replaceAll(/(out)\s+(vec\d|mat\d|float)\s+([\w]+);/g,"varying $2 $3;")),n=`#version 100 +${n}`,n}var mM=KEe;function wJ(e){return e=e.replace(/\/\/.*/g,""),e.replace(/\/\*\*[\s\S]*?\*\//gm,function(t){let n=t.match(/\n/gm).length,i="";for(let o=0;o<n;++o)i+=` +`;return i})}function vJ(e,t,n){let i;for(let o=0;o<n.length;++o)n[o].name===e&&(i=n[o]);return l(i)||(t=wJ(t),i={name:e,glslSource:t,dependsOn:[],requiredBy:[],evaluated:!1},n.push(i)),i}function DJ(e,t){if(e.evaluated)return;e.evaluated=!0;let n=e.glslSource.match(/\bczm_[a-zA-Z0-9_]*/g);l(n)&&n!==null&&(n=n.filter(function(i,o){return n.indexOf(i)===o}),n.forEach(function(i){if(i!==e.name&&ds._czmBuiltinsAndUniforms.hasOwnProperty(i)){let o=vJ(i,ds._czmBuiltinsAndUniforms[i],t);e.dependsOn.push(o),o.requiredBy.push(e),DJ(o,t)}}))}function JEe(e){let t=[],n=[];for(;e.length>0;){let o=e.pop();n.push(o),o.requiredBy.length===0&&t.push(o)}for(;t.length>0;){let o=t.shift();e.push(o);for(let r=0;r<o.dependsOn.length;++r){let s=o.dependsOn[r],a=s.requiredBy.indexOf(o);s.requiredBy.splice(a,1),s.requiredBy.length===0&&t.push(s)}}let i=[];for(let o=0;o<n.length;++o)n[o].requiredBy.length!==0&&i.push(n[o])}function ZEe(e){let t=[],n=vJ("main",e,t);DJ(n,t),JEe(t);let i="";for(let o=t.length-1;o>=0;--o)i=`${i+t[o].glslSource} +`;return i.replace(n.glslSource,"")}function IJ(e,t,n){let i,o,r="",s=e.sources;if(l(s))for(i=0,o=s.length;i<o;++i)r+=` +#line 0 +${s[i]}`;r=wJ(r);let a;r=r.replace(/#version\s+(.*?)\n/gm,function(A,x){return a=x,` +`});let c=[];r=r.replace(/#extension.*\n/gm,function(A){return c.push(A),` +`}),r=r.replace(/precision\s(lowp|mediump|highp)\s(float|int);/,"");let u=e.pickColorQualifier;l(u)&&(r=ds.createPickFragmentShaderSource(r,u));let f="",d=c.length;for(i=0;i<d;i++)f+=c[i];t&&(f+=`#ifdef GL_FRAGMENT_PRECISION_HIGH + precision highp float; + precision highp int; +#else + precision mediump float; + precision mediump int; + #define highp mediump +#endif + +`);let p=e.defines;if(l(p))for(i=0,o=p.length;i<o;++i){let A=p[i];A.length!==0&&(f+=`#define ${A} +`)}n.textureFloatLinear&&(f+=`#define OES_texture_float_linear + +`),n.floatingPointTexture&&(f+=`#define OES_texture_float + +`);let g="";e.includeBuiltIns&&(g=ZEe(r)),f+=` +#line 0 +`;let h=g+r;return n.webgl2&&t&&!/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g.test(h)&&!/czm_out_FragColor/g.test(h)&&/out_FragColor/g.test(h)&&(f+=`layout(location = 0) out vec4 out_FragColor; + +`),f+=g,f+=r,n.webgl2?f=`#version 300 es +${f}`:f=mM(f,t),f}function ds(e){e=y(e,y.EMPTY_OBJECT);let t=e.pickColorQualifier;this.defines=l(e.defines)?e.defines.slice(0):[],this.sources=l(e.sources)?e.sources.slice(0):[],this.pickColorQualifier=t,this.includeBuiltIns=y(e.includeBuiltIns,!0)}ds.prototype.clone=function(){return new ds({sources:this.sources,defines:this.defines,pickColorQualifier:this.pickColorQualifier,includeBuiltIns:this.includeBuiltIns})};ds.replaceMain=function(e,t){return t=`void ${t}()`,e.replace(/void\s+main\s*\(\s*(?:void)?\s*\)/g,t)};ds.prototype.getCacheKey=function(){let t=this.defines.slice().sort().join(","),n=this.pickColorQualifier,i=this.includeBuiltIns,o=this.sources.join(` +`);return`${t}:${n}:${i}:${o}`};ds.prototype.createCombinedVertexShader=function(e){return IJ(this,!1,e)};ds.prototype.createCombinedFragmentShader=function(e){return IJ(this,!0,e)};ds._czmBuiltinsAndUniforms={};for(let e in kx)kx.hasOwnProperty(e)&&(ds._czmBuiltinsAndUniforms[e]=kx[e]);for(let e in e_)if(e_.hasOwnProperty(e)){let t=e_[e];typeof t.getDeclaration=="function"&&(ds._czmBuiltinsAndUniforms[e]=t.getDeclaration(e))}ds.createPickVertexShaderSource=function(e){return`${ds.replaceMain(e,"czm_old_main")} +in vec4 pickColor; +out vec4 czm_pickColor; +void main() +{ + czm_old_main(); + czm_pickColor = pickColor; +}`};ds.createPickFragmentShaderSource=function(e,t){let n=ds.replaceMain(e,"czm_old_main"),i=`${t} vec4 czm_pickColor; +void main() +{ + czm_old_main(); + if (out_FragColor.a == 0.0) { + discard; + } + out_FragColor = czm_pickColor; +}`;return`${n} +${i}`};function QEe(e,t){let n=e.defines,i=n.length;for(let o=0;o<i;++o)if(n[o]===t)return!0;return!1}function PJ(e,t){let n=e.sources,i=n.length;for(let o=0;o<i;++o)if(n[o].indexOf(t)!==-1)return!0;return!1}function OJ(e,t){let n=t.length;for(let i=0;i<n;++i){let o=t[i];if(PJ(e,o))return o}}var $Ee=["v_normalEC","v_normal"];ds.findNormalVarying=function(e){return PJ(e,"#ifdef HAS_NORMALS")?QEe(e,"HAS_NORMALS")?"v_normalEC":void 0:OJ(e,$Ee)};var ebe=["v_positionEC"];ds.findPositionVarying=function(e){return OJ(e,ebe)};var He=ds;function Bf(e){this._context=e,this._shaders={},this._numberOfShaders=0,this._shadersToRelease={}}Object.defineProperties(Bf.prototype,{numberOfShaders:{get:function(){return this._numberOfShaders}}});Bf.prototype.replaceShaderProgram=function(e){return l(e.shaderProgram)&&e.shaderProgram.destroy(),this.getShaderProgram(e)};function tbe(e){let t=Object.keys(e).sort();return JSON.stringify(e,t)}Bf.prototype.getShaderProgram=function(e){let t=e.vertexShaderSource,n=e.fragmentShaderSource,i=e.attributeLocations;typeof t=="string"&&(t=new He({sources:[t]})),typeof n=="string"&&(n=new He({sources:[n]}));let o=t.getCacheKey(),r=n.getCacheKey(),s=l(i)?tbe(i):"",a=`${o}:${r}:${s}`,c;if(l(this._shaders[a]))c=this._shaders[a],delete this._shadersToRelease[a];else{let u=this._context,f=t.createCombinedVertexShader(u),d=n.createCombinedFragmentShader(u),p=new Jt({gl:u._gl,logShaderCompilation:u.logShaderCompilation,debugShaders:u.debugShaders,vertexShaderSource:t,vertexShaderText:f,fragmentShaderSource:n,fragmentShaderText:d,attributeLocations:i});c={cache:this,shaderProgram:p,keyword:a,derivedKeywords:[],count:0},p._cachedShader=c,this._shaders[a]=c,++this._numberOfShaders}return++c.count,c.shaderProgram};Bf.prototype.replaceDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=this._shaders[o];if(l(r)){IG(this,r);let s=i.derivedKeywords.indexOf(t);s>-1&&i.derivedKeywords.splice(s,1)}return this.createDerivedShaderProgram(e,t,n)};Bf.prototype.getDerivedShaderProgram=function(e,t){let n=e._cachedShader,i=t+n.keyword,o=this._shaders[i];if(l(o))return o.shaderProgram};Bf.prototype.createDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=n.vertexShaderSource,s=n.fragmentShaderSource,a=n.attributeLocations;typeof r=="string"&&(r=new He({sources:[r]})),typeof s=="string"&&(s=new He({sources:[s]}));let c=this._context,u=r.createCombinedVertexShader(c),f=s.createCombinedFragmentShader(c),d=new Jt({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:r,vertexShaderText:u,fragmentShaderSource:s,fragmentShaderText:f,attributeLocations:a}),p={cache:this,shaderProgram:d,keyword:o,derivedKeywords:[],count:0};return i.derivedKeywords.push(t),d._cachedShader=p,this._shaders[o]=p,d};function IG(e,t){let n=t.derivedKeywords,i=n.length;for(let o=0;o<i;++o){let r=n[o]+t.keyword,s=e._shaders[r];IG(e,s)}delete e._shaders[t.keyword],t.shaderProgram.finalDestroy()}Bf.prototype.destroyReleasedShaderPrograms=function(){let e=this._shadersToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];IG(this,n),--this._numberOfShaders}this._shadersToRelease={}};Bf.prototype.releaseShaderProgram=function(e){if(l(e)){let t=e._cachedShader;t&&--t.count===0&&(this._shadersToRelease[t.keyword]=t)}};Bf.prototype.isDestroyed=function(){return!1};Bf.prototype.destroy=function(){let e=this._shaders;for(let t in e)e.hasOwnProperty(t)&&e[t].shaderProgram.finalDestroy();return ue(this)};var hM=Bf;function Lf(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.width,i=e.height,o=e.source;l(o)&&(l(n)||(n=y(o.videoWidth,o.width)),l(i)||(i=y(o.videoHeight,o.height)));let r=y(e.pixelFormat,lt.RGBA),s=y(e.pixelDatatype,Je.UNSIGNED_BYTE),a=lt.toInternalFormat(r,s,t),c=lt.isCompressedFormat(a),u=e.preMultiplyAlpha||r===lt.RGB||r===lt.LUMINANCE,f=y(e.flipY,!0),d=y(e.skipColorSpaceConversion,!1),p=!0,g=t._gl,h=g.TEXTURE_2D,A=g.createTexture();g.activeTexture(g.TEXTURE0),g.bindTexture(h,A);let x=4;if(l(o)&&l(o.arrayBufferView)&&!c&&(x=lt.alignmentInBytes(r,s,n)),g.pixelStorei(g.UNPACK_ALIGNMENT,x),d?g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.NONE):g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.BROWSER_DEFAULT_WEBGL),l(o))if(l(o.arrayBufferView)){g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1);let T=o.arrayBufferView,E,S,v;if(c){if(g.compressedTexImage2D(h,0,a,n,i,0,T),l(o.mipLevels))for(S=n,v=i,E=0;E<o.mipLevels.length;++E)S=Math.floor(S/2)|0,S<1&&(S=1),v=Math.floor(v/2)|0,v<1&&(v=1),g.compressedTexImage2D(h,E+1,a,S,v,0,o.mipLevels[E])}else if(f&&(T=lt.flipY(T,r,s,n,i)),g.texImage2D(h,0,a,n,i,0,r,Je.toWebGLConstant(s,t),T),l(o.mipLevels))for(S=n,v=i,E=0;E<o.mipLevels.length;++E)S=Math.floor(S/2)|0,S<1&&(S=1),v=Math.floor(v/2)|0,v<1&&(v=1),g.texImage2D(h,E+1,a,S,v,0,r,Je.toWebGLConstant(s,t),o.mipLevels[E])}else l(o.framebuffer)?(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,!1),o.framebuffer!==t.defaultFramebuffer&&o.framebuffer._bind(),g.copyTexImage2D(h,0,a,o.xOffset,o.yOffset,n,i,0),o.framebuffer!==t.defaultFramebuffer&&o.framebuffer._unBind()):(g.pixelStorei(g.UNPACK_PREMULTIPLY_ALPHA_WEBGL,u),g.pixelStorei(g.UNPACK_FLIP_Y_WEBGL,f),g.texImage2D(h,0,a,r,Je.toWebGLConstant(s,t),o));else g.texImage2D(h,0,a,n,i,0,r,Je.toWebGLConstant(s,t),null),p=!1;g.bindTexture(h,null);let C;c?C=lt.compressedTextureSizeInBytes(r,n,i):C=lt.textureSizeInBytes(r,s,n,i),this._id=jn(),this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=h,this._texture=A,this._internalFormat=a,this._pixelFormat=r,this._pixelDatatype=s,this._width=n,this._height=i,this._dimensions=new H(n,i),this._hasMipmap=!1,this._sizeInBytes=C,this._preMultiplyAlpha=u,this._flipY=f,this._initialized=p,this._sampler=void 0,this.sampler=l(e.sampler)?e.sampler:new dn}Lf.create=function(e){return new Lf(e)};Lf.fromFramebuffer=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,i=y(e.pixelFormat,lt.RGB),o=y(e.framebufferXOffset,0),r=y(e.framebufferYOffset,0),s=y(e.width,n.drawingBufferWidth),a=y(e.height,n.drawingBufferHeight),c=e.framebuffer;return new Lf({context:t,width:s,height:a,pixelFormat:i,source:{framebuffer:l(c)?c:t.defaultFramebuffer,xOffset:o,yOffset:r,width:s,height:a}})};Object.defineProperties(Lf.prototype,{id:{get:function(){return this._id}},sampler:{get:function(){return this._sampler},set:function(e){let t=e.minificationFilter,n=e.magnificationFilter,i=this._context,o=this._pixelFormat,r=this._pixelDatatype,s=t===ln.NEAREST_MIPMAP_NEAREST||t===ln.NEAREST_MIPMAP_LINEAR||t===ln.LINEAR_MIPMAP_NEAREST||t===ln.LINEAR_MIPMAP_LINEAR;(r===Je.FLOAT&&!i.textureFloatLinear||r===Je.HALF_FLOAT&&!i.textureHalfFloatLinear)&&(t=s?ln.NEAREST_MIPMAP_NEAREST:ln.NEAREST,n=bi.NEAREST),i.webgl2&<.isDepthFormat(o)&&(t=ln.NEAREST,n=bi.NEAREST);let a=i._gl,c=this._textureTarget;a.activeTexture(a.TEXTURE0),a.bindTexture(c,this._texture),a.texParameteri(c,a.TEXTURE_MIN_FILTER,t),a.texParameteri(c,a.TEXTURE_MAG_FILTER,n),a.texParameteri(c,a.TEXTURE_WRAP_S,e.wrapS),a.texParameteri(c,a.TEXTURE_WRAP_T,e.wrapT),l(this._textureFilterAnisotropic)&&a.texParameteri(c,this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,e.maximumAnisotropy),a.bindTexture(c,null),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},dimensions:{get:function(){return this._dimensions}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*4/3):this._sizeInBytes}},_target:{get:function(){return this._textureTarget}}});Lf.prototype.copyFrom=function(e){let t=y(e.xOffset,0),n=y(e.yOffset,0),i=e.source,o=this._context,r=o._gl,s=this._textureTarget;r.activeTexture(r.TEXTURE0),r.bindTexture(s,this._texture);let a=i.width,c=i.height,u=i.arrayBufferView,f=this._width,d=this._height,p=this._internalFormat,g=this._pixelFormat,h=this._pixelDatatype,A=this._preMultiplyAlpha,x=this._flipY,C=y(e.skipColorSpaceConversion,!1),T=4;l(u)&&(T=lt.alignmentInBytes(g,h,a)),r.pixelStorei(r.UNPACK_ALIGNMENT,T),C?r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,r.NONE):r.pixelStorei(r.UNPACK_COLORSPACE_CONVERSION_WEBGL,r.BROWSER_DEFAULT_WEBGL);let E=!1;if(!this._initialized){if(t===0&&n===0&&a===f&&c===d)l(u)?(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),x&&(u=lt.flipY(u,g,h,f,d)),r.texImage2D(s,0,p,f,d,0,g,Je.toWebGLConstant(h,o),u)):(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,A),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,x),r.texImage2D(s,0,p,g,Je.toWebGLConstant(h,o),i)),E=!0;else{r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1);let S=lt.createTypedArray(g,h,f,d);r.texImage2D(s,0,p,f,d,0,g,Je.toWebGLConstant(h,o),S)}this._initialized=!0}E||(l(u)?(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),x&&(u=lt.flipY(u,g,h,a,c)),r.texSubImage2D(s,0,t,n,a,c,g,Je.toWebGLConstant(h,o),u)):(r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,A),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,x),r.texSubImage2D(s,0,t,n,g,Je.toWebGLConstant(h,o),i))),r.bindTexture(s,null)};Lf.prototype.copyFromFramebuffer=function(e,t,n,i,o,r){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),o=y(o,this._width),r=y(r,this._height);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(a,0,e,t,n,i,o,r),s.bindTexture(a,null),this._initialized=!0};Lf.prototype.generateMipmap=function(e){e=y(e,Ih.DONT_CARE),this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};Lf.prototype.isDestroyed=function(){return!1};Lf.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),ue(this)};var Bt=Lf;function Xy(){this._textures={},this._numberOfTextures=0,this._texturesToRelease={}}Object.defineProperties(Xy.prototype,{numberOfTextures:{get:function(){return this._numberOfTextures}}});Xy.prototype.getTexture=function(e){let t=this._textures[e];if(l(t))return delete this._texturesToRelease[e],++t.count,t.texture};Xy.prototype.addTexture=function(e,t){let n={texture:t,count:1};t.finalDestroy=t.destroy;let i=this;t.destroy=function(){--n.count===0&&(i._texturesToRelease[e]=n)},this._textures[e]=n,++this._numberOfTextures};Xy.prototype.destroyReleasedTextures=function(){let e=this._texturesToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];delete this._textures[t],n.texture.finalDestroy(),--this._numberOfTextures}this._texturesToRelease={}};Xy.prototype.isDestroyed=function(){return!1};Xy.prototype.destroy=function(){let e=this._textures;for(let t in e)e.hasOwnProperty(t)&&e[t].texture.finalDestroy();return ue(this)};var pM=Xy;function em(){this.high=m.clone(m.ZERO),this.low=m.clone(m.ZERO)}em.encode=function(e,t){l(t)||(t={high:0,low:0});let n;return e>=0?(n=Math.floor(e/65536)*65536,t.high=n,t.low=e-n):(n=Math.floor(-e/65536)*65536,t.high=-n,t.low=e+n),t};var Ph={high:0,low:0};em.fromCartesian=function(e,t){l(t)||(t=new em);let n=t.high,i=t.low;return em.encode(e.x,Ph),n.x=Ph.high,i.x=Ph.low,em.encode(e.y,Ph),n.y=Ph.high,i.y=Ph.low,em.encode(e.z,Ph),n.z=Ph.high,i.z=Ph.low,t};var PG=new em;em.writeElements=function(e,t,n){em.fromCartesian(e,PG);let i=PG.high,o=PG.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=o.x,t[n+4]=o.y,t[n+5]=o.z};var Yn=em;function ms(e,t){this.normal=m.clone(e),this.distance=t}ms.fromPointNormal=function(e,t,n){let i=-m.dot(t,e);return l(n)?(m.clone(t,n.normal),n.distance=i,n):new ms(t,i)};var nbe=new m;ms.fromCartesian4=function(e,t){let n=m.fromCartesian4(e,nbe),i=e.w;return l(t)?(m.clone(n,t.normal),t.distance=i,t):new ms(n,i)};ms.getPointDistance=function(e,t){return m.dot(e.normal,t)+e.distance};var ibe=new m;ms.projectPointOntoPlane=function(e,t,n){l(n)||(n=new m);let i=ms.getPointDistance(e,t),o=m.multiplyByScalar(e.normal,i,ibe);return m.subtract(t,o,n)};var obe=new B,rbe=new re,sbe=new m;ms.transform=function(e,t,n){let i=e.normal,o=e.distance,r=B.inverseTranspose(t,obe),s=re.fromElements(i.x,i.y,i.z,o,rbe);s=B.multiplyByVector(r,s,s);let a=m.fromCartesian4(s,sbe);return s=re.divideByScalar(s,m.magnitude(a),s),ms.fromCartesian4(s,n)};ms.clone=function(e,t){return l(t)?(m.clone(e.normal,t.normal),t.distance=e.distance,t):new ms(e.normal,e.distance)};ms.equals=function(e,t){return e.distance===t.distance&&m.equals(e.normal,t.normal)};ms.ORIGIN_XY_PLANE=Object.freeze(new ms(m.UNIT_Z,0));ms.ORIGIN_YZ_PLANE=Object.freeze(new ms(m.UNIT_X,0));ms.ORIGIN_ZX_PLANE=Object.freeze(new ms(m.UNIT_Y,0));var fn=ms;function Su(e){this.planes=y(e,[])}var eS=[new m,new m,new m];m.clone(m.UNIT_X,eS[0]);m.clone(m.UNIT_Y,eS[1]);m.clone(m.UNIT_Z,eS[2]);var d_=new m,abe=new m,MJ=new fn(new m(1,0,0),0);Su.fromBoundingSphere=function(e,t){l(t)||(t=new Su);let n=eS.length,i=t.planes;i.length=2*n;let o=e.center,r=e.radius,s=0;for(let a=0;a<n;++a){let c=eS[a],u=i[s],f=i[s+1];l(u)||(u=i[s]=new re),l(f)||(f=i[s+1]=new re),m.multiplyByScalar(c,-r,d_),m.add(o,d_,d_),u.x=c.x,u.y=c.y,u.z=c.z,u.w=-m.dot(c,d_),m.multiplyByScalar(c,r,d_),m.add(o,d_,d_),f.x=-c.x,f.y=-c.y,f.z=-c.z,f.w=-m.dot(m.negate(c,abe),d_),s+=2}return t};Su.prototype.computeVisibility=function(e){let t=this.planes,n=!1;for(let i=0,o=t.length;i<o;++i){let r=e.intersectPlane(fn.fromCartesian4(t[i],MJ));if(r===$t.OUTSIDE)return $t.OUTSIDE;r===$t.INTERSECTING&&(n=!0)}return n?$t.INTERSECTING:$t.INSIDE};Su.prototype.computeVisibilityWithPlaneMask=function(e,t){if(t===Su.MASK_OUTSIDE||t===Su.MASK_INSIDE)return t;let n=Su.MASK_INSIDE,i=this.planes;for(let o=0,r=i.length;o<r;++o){let s=o<31?1<<o:0;if(o<31&&!(t&s))continue;let a=e.intersectPlane(fn.fromCartesian4(i[o],MJ));if(a===$t.OUTSIDE)return Su.MASK_OUTSIDE;a===$t.INTERSECTING&&(n|=s)}return n};Su.MASK_OUTSIDE=4294967295;Su.MASK_INSIDE=0;Su.MASK_INDETERMINATE=2147483647;var ts=Su;function tm(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new ts,this._orthographicMatrix=new B}function RJ(e){(e.top!==e._top||e.bottom!==e._bottom||e.left!==e._left||e.right!==e._right||e.near!==e._near||e.far!==e._far)&&(e._left=e.left,e._right=e.right,e._top=e.top,e._bottom=e.bottom,e._near=e.near,e._far=e.far,e._orthographicMatrix=B.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix))}Object.defineProperties(tm.prototype,{projectionMatrix:{get:function(){return RJ(this),this._orthographicMatrix}}});var cbe=new m,lbe=new m,ube=new m,OG=new m;tm.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,u=this.far,f=m.cross(t,n,cbe);m.normalize(f,f);let d=lbe;m.multiplyByScalar(t,c,d),m.add(e,d,d);let p=ube;m.multiplyByScalar(f,a,p),m.add(d,p,p);let g=i[0];return l(g)||(g=i[0]=new re),g.x=f.x,g.y=f.y,g.z=f.z,g.w=-m.dot(f,p),m.multiplyByScalar(f,s,p),m.add(d,p,p),g=i[1],l(g)||(g=i[1]=new re),g.x=-f.x,g.y=-f.y,g.z=-f.z,g.w=-m.dot(m.negate(f,OG),p),m.multiplyByScalar(n,r,p),m.add(d,p,p),g=i[2],l(g)||(g=i[2]=new re),g.x=n.x,g.y=n.y,g.z=n.z,g.w=-m.dot(n,p),m.multiplyByScalar(n,o,p),m.add(d,p,p),g=i[3],l(g)||(g=i[3]=new re),g.x=-n.x,g.y=-n.y,g.z=-n.z,g.w=-m.dot(m.negate(n,OG),p),g=i[4],l(g)||(g=i[4]=new re),g.x=t.x,g.y=t.y,g.z=t.z,g.w=-m.dot(t,d),m.multiplyByScalar(t,u,p),m.add(e,p,p),g=i[5],l(g)||(g=i[5]=new re),g.x=-t.x,g.y=-t.y,g.z=-t.z,g.w=-m.dot(m.negate(t,OG),p),this._cullingVolume};tm.prototype.getPixelDimensions=function(e,t,n,i,o){RJ(this);let r=this.right-this.left,s=this.top-this.bottom,a=i*r/e,c=i*s/t;return o.x=a,o.y=c,o};tm.prototype.clone=function(e){return l(e)||(e=new tm),e.left=this.left,e.right=this.right,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};tm.prototype.equals=function(e){return l(e)&&e instanceof tm&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};tm.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof tm&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var Ir=tm;function Vc(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new Ir,this.width=e.width,this._width=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far}Vc.packedLength=4;Vc.pack=function(e,t,n){return n=y(n,0),t[n++]=e.width,t[n++]=e.aspectRatio,t[n++]=e.near,t[n]=e.far,t};Vc.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Vc),n.width=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t],n};function m_(e){let t=e._offCenterFrustum;if(e.width!==e._width||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far){e._aspectRatio=e.aspectRatio,e._width=e.width,e._near=e.near,e._far=e.far;let n=1/e.aspectRatio;t.right=e.width*.5,t.left=-t.right,t.top=n*t.right,t.bottom=-t.top,t.near=e.near,t.far=e.far}}Object.defineProperties(Vc.prototype,{projectionMatrix:{get:function(){return m_(this),this._offCenterFrustum.projectionMatrix}},offCenterFrustum:{get:function(){return m_(this),this._offCenterFrustum}}});Vc.prototype.computeCullingVolume=function(e,t,n){return m_(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};Vc.prototype.getPixelDimensions=function(e,t,n,i,o){return m_(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};Vc.prototype.clone=function(e){return l(e)||(e=new Vc),e.aspectRatio=this.aspectRatio,e.width=this.width,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._width=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};Vc.prototype.equals=function(e){return!l(e)||!(e instanceof Vc)?!1:(m_(this),m_(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};Vc.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof Vc)?!1:(m_(this),m_(e),P.equalsEpsilon(this.width,e.width,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var tn=Vc;var MG={};function fbe(e){let t=6.239996+.0172019696544*e;return .001657*Math.sin(t+.01671*Math.sin(t))}var dbe=32.184,mbe=2451545;function QJ(e,t){t=ee.addSeconds(e,dbe,t);let n=ee.totalDays(t)-mbe;return t=ee.addSeconds(t,fbe(n),t),t}var _M=new ee(2451545,0,Jn.TAI),hbe=1e3,wu=P.RADIANS_PER_DEGREE,wl=P.RADIANS_PER_ARCSECOND,sa=14959787e4,BJ=new Z;function $J(e,t,n,i,o,r,s){n<0&&(n=-n,o+=P.PI);let a=e*(1-t),c=i-o,u=o,f=_be(r-i,t),d=pbe(t,0);Cbe(c,n,u,BJ);let p=a*(1+t),g=Math.cos(f),h=Math.sin(f),A=1+t*g,x=p/A;return l(s)?(s.x=x*g,s.y=x*h,s.z=0):s=new m(x*g,x*h,0),Z.multiplyByVector(BJ,s,s)}function pbe(e,t){return e<=t?"Circular":e<1-t?"Elliptical":e<=1+t?"Parabolic":"Hyperbolic"}function _be(e,t){let n=Abe(e,t);return xbe(n,t)}var gbe=50,ybe=P.EPSILON8;function Abe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.TWO_PI;let i=e+t*Math.sin(e)/(1-Math.sin(e+t)+Math.sin(e)),o=Number.MAX_VALUE,r;for(r=0;r<gbe&&Math.abs(o-i)>ybe;++r){o=i;let s=o-t*Math.sin(o)-e,a=1-t*Math.cos(o);i=o-s/a}return o=i+n*P.TWO_PI,o}function xbe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.TWO_PI;let i=Math.cos(e)-t,o=Math.sin(e)*Math.sqrt(1-t*t),r=Math.atan2(o,i);return r=P.zeroToTwoPi(r),e<0&&(r-=P.TWO_PI),r+=n*P.TWO_PI,r}function Cbe(e,t,n,i){let o=Math.cos(e),r=Math.sin(e),s=Math.cos(t),a=Math.sin(t),c=Math.cos(n),u=Math.sin(n);return l(i)?(i[0]=c*o-u*r*s,i[1]=u*o+c*r*s,i[2]=r*a,i[3]=-c*r-u*o*s,i[4]=-u*r+c*o*s,i[5]=o*a,i[6]=u*a,i[7]=-c*a,i[8]=s):i=new Z(c*o-u*r*s,-c*r-u*o*s,u*a,u*o+c*r*s,-u*r+c*o*s,-c*a,r*a,o*a,s),i}var Tbe=1.0000010178*sa,Ebe=100.46645683*wu,bbe=129597742283429e-5*wl,LJ=16002,NJ=21863,FJ=32004,UJ=10931,VJ=14529,kJ=16368,zJ=15318,HJ=32794,Sbe=64*1e-7*sa,wbe=-152*1e-7*sa,vbe=62*1e-7*sa,Dbe=-8*1e-7*sa,Ibe=32*1e-7*sa,Pbe=-41*1e-7*sa,Obe=19*1e-7*sa,Mbe=-11*1e-7*sa,Rbe=-150*1e-7*sa,Bbe=-46*1e-7*sa,Lbe=68*1e-7*sa,Nbe=54*1e-7*sa,Fbe=14*1e-7*sa,Ube=24*1e-7*sa,Vbe=-28*1e-7*sa,kbe=22*1e-7*sa,GJ=10,WJ=16002,jJ=21863,YJ=10931,qJ=1473,XJ=32004,KJ=4387,JJ=73,zbe=-325*1e-7,Hbe=-322*1e-7,Gbe=-79*1e-7,Wbe=232*1e-7,jbe=-52*1e-7,Ybe=97*1e-7,qbe=55*1e-7,Xbe=-41*1e-7,Kbe=-105*1e-7,Jbe=-137*1e-7,Zbe=258*1e-7,Qbe=35*1e-7,$be=-116*1e-7,eSe=-88*1e-7,tSe=-112*1e-7,nSe=-80*1e-7,zx=new ee(0,0,Jn.TAI);function iSe(e,t){QJ(e,zx);let i=(zx.dayNumber-_M.dayNumber+(zx.secondsOfDay-_M.secondsOfDay)/Zn.SECONDS_PER_DAY)/(Zn.DAYS_PER_JULIAN_CENTURY*10),o=.3595362*i,r=Tbe+Sbe*Math.cos(LJ*o)+Rbe*Math.sin(LJ*o)+wbe*Math.cos(NJ*o)+Bbe*Math.sin(NJ*o)+vbe*Math.cos(FJ*o)+Lbe*Math.sin(FJ*o)+Dbe*Math.cos(UJ*o)+Nbe*Math.sin(UJ*o)+Ibe*Math.cos(VJ*o)+Fbe*Math.sin(VJ*o)+Pbe*Math.cos(kJ*o)+Ube*Math.sin(kJ*o)+Obe*Math.cos(zJ*o)+Vbe*Math.sin(zJ*o)+Mbe*Math.cos(HJ*o)+kbe*Math.sin(HJ*o),s=Ebe+bbe*i+zbe*Math.cos(GJ*o)+Kbe*Math.sin(GJ*o)+Hbe*Math.cos(WJ*o)+Jbe*Math.sin(WJ*o)+Gbe*Math.cos(jJ*o)+Zbe*Math.sin(jJ*o)+Wbe*Math.cos(YJ*o)+Qbe*Math.sin(YJ*o)+jbe*Math.cos(qJ*o)+$be*Math.sin(qJ*o)+Ybe*Math.cos(XJ*o)+eSe*Math.sin(XJ*o)+qbe*Math.cos(KJ*o)+tSe*Math.sin(KJ*o)+Xbe*Math.cos(JJ*o)+nSe*Math.sin(JJ*o),a=.0167086342-.0004203654*i,c=102.93734808*wu+11612.3529*wl*i,u=469.97289*wl*i,f=174.87317577*wu-8679.27034*wl*i;return $J(r,a,u,c,f,s,t)}function eZ(e,t){QJ(e,zx);let i=(zx.dayNumber-_M.dayNumber+(zx.secondsOfDay-_M.secondsOfDay)/Zn.SECONDS_PER_DAY)/Zn.DAYS_PER_JULIAN_CENTURY,o=i*i,r=o*i,s=r*i,a=383397.7725+.004*i,c=.055545526-16e-9*i,u=5.15668983*wu,f=-8e-5*i+.02966*o-42e-6*r-13e-8*s,d=83.35324312*wu,p=146434202669e-4*i-38.2702*o-.045047*r+21301e-8*s,g=125.04455501*wu,h=-69679193631e-4*i+6.3602*o+.007625*r-3586e-8*s,A=218.31664563*wu,x=17325593434847e-4*i-6.391*o+.006588*r-3169e-8*s,C=297.85019547*wu+wl*(1602961601209e-3*i-6.3706*o+.006593*r-3169e-8*s),T=93.27209062*wu+wl*(17395272628478e-4*i-12.7512*o-.001037*r+417e-8*s),E=134.96340251*wu+wl*(17179159232178e-4*i+31.8792*o+.051635*r-2447e-7*s),S=357.52910918*wu+wl*(1295965810481e-4*i-.5532*o+136e-6*r-1149e-8*s),v=310.17137918*wu-wl*(6967051436e-3*i+6.2068*o+.007618*r-3219e-8*s),D=2*C,O=4*C,M=6*C,L=2*E,N=3*E,_=4*E,b=2*T;a+=3400.4*Math.cos(D)-635.6*Math.cos(D-E)-235.6*Math.cos(E)+218.1*Math.cos(D-S)+181*Math.cos(D+E),c+=.014216*Math.cos(D-E)+.008551*Math.cos(D-L)-.001383*Math.cos(E)+.001356*Math.cos(D+E)-.001147*Math.cos(O-N)-914e-6*Math.cos(O-L)+869e-6*Math.cos(D-S-E)-627e-6*Math.cos(D)-394e-6*Math.cos(O-_)+282e-6*Math.cos(D-S-L)-279e-6*Math.cos(C-E)-236e-6*Math.cos(L)+231e-6*Math.cos(O)+229e-6*Math.cos(M-_)-201e-6*Math.cos(L-b),f+=486.26*Math.cos(D-b)-40.13*Math.cos(D)+37.51*Math.cos(b)+25.73*Math.cos(L-b)+19.97*Math.cos(D-S-b),p+=-55609*Math.sin(D-E)-34711*Math.sin(D-L)-9792*Math.sin(E)+9385*Math.sin(O-N)+7505*Math.sin(O-L)+5318*Math.sin(D+E)+3484*Math.sin(O-_)-3417*Math.sin(D-S-E)-2530*Math.sin(M-_)-2376*Math.sin(D)-2075*Math.sin(D-N)-1883*Math.sin(L)-1736*Math.sin(M-5*E)+1626*Math.sin(S)-1370*Math.sin(M-N),h+=-5392*Math.sin(D-b)-540*Math.sin(S)-441*Math.sin(D)+423*Math.sin(b)-288*Math.sin(L-b),x+=-3332.9*Math.sin(D)+1197.4*Math.sin(D-E)-662.5*Math.sin(S)+396.3*Math.sin(E)-218*Math.sin(D-S);let w=2*v,I=3*v;f+=46.997*Math.cos(v)*i-.614*Math.cos(D-b+v)*i+.614*Math.cos(D-b-v)*i-.0297*Math.cos(w)*o-.0335*Math.cos(v)*o+.0012*Math.cos(D-b+w)*o-16e-5*Math.cos(v)*r+4e-5*Math.cos(I)*r+4e-5*Math.cos(w)*r;let R=2.116*Math.sin(v)*i-.111*Math.sin(D-b-v)*i-.0015*Math.sin(v)*o;p+=R,x+=R,h+=-520.77*Math.sin(v)*i+13.66*Math.sin(D-b+v)*i+1.12*Math.sin(D-v)*i-1.06*Math.sin(b-v)*i+.66*Math.sin(w)*o+.371*Math.sin(v)*o-.035*Math.sin(D-b+w)*o-.015*Math.sin(D-b+v)*o+.0014*Math.sin(v)*r-.0011*Math.sin(I)*r-9e-4*Math.sin(w)*r,a*=hbe;let F=u+f*wl,k=d+p*wl,V=A+x*wl,G=g+h*wl;return $J(a,c,F,k,G,V,t)}var ZJ=.012300034,oSe=ZJ/(ZJ+1)*-1;function rSe(e,t){return t=eZ(e,t),m.multiplyByScalar(t,oSe,t)}var tZ=new Z(1.0000000000000002,5619723173785822e-31,4690511510146299e-34,-5154129427414611e-31,.9174820620691819,-.39777715593191376,-223970096136568e-30,.39777715593191376,.9174820620691819),tS=new m;MG.computeSunPositionInEarthInertialFrame=function(e,t){return l(e)||(e=ee.now()),l(t)||(t=new m),tS=iSe(e,tS),t=m.negate(tS,t),rSe(e,tS),m.subtract(t,tS,t),Z.multiplyByVector(tZ,t,t),t};MG.computeMoonPositionInEarthInertialFrame=function(e,t){return l(e)||(e=ee.now()),t=eZ(e,t),Z.multiplyByVector(tZ,t,t),t};var Ky=MG;var gM={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};gM.getMorphTime=function(e){return e===gM.SCENE3D?1:e===gM.MORPHING?void 0:0};var ne=Object.freeze(gM);function sSe(e){e=y(e,y.EMPTY_OBJECT),this.color=z.clone(y(e.color,z.WHITE)),this.intensity=y(e.intensity,2)}var h_=sSe;function Hx(){this.globeDepthTexture=void 0,this.gamma=void 0,this._viewport=new Ke,this._viewportCartesian4=new re,this._viewportDirty=!1,this._viewportOrthographicMatrix=B.clone(B.IDENTITY),this._viewportTransformation=B.clone(B.IDENTITY),this._model=B.clone(B.IDENTITY),this._view=B.clone(B.IDENTITY),this._inverseView=B.clone(B.IDENTITY),this._projection=B.clone(B.IDENTITY),this._infiniteProjection=B.clone(B.IDENTITY),this._entireFrustum=new H,this._currentFrustum=new H,this._frustumPlanes=new re,this._farDepthFromNearPlusOne=void 0,this._log2FarDepthFromNearPlusOne=void 0,this._oneOverLog2FarDepthFromNearPlusOne=void 0,this._frameState=void 0,this._temeToPseudoFixed=Z.clone(B.IDENTITY),this._view3DDirty=!0,this._view3D=new B,this._inverseView3DDirty=!0,this._inverseView3D=new B,this._inverseModelDirty=!0,this._inverseModel=new B,this._inverseTransposeModelDirty=!0,this._inverseTransposeModel=new Z,this._viewRotation=new Z,this._inverseViewRotation=new Z,this._viewRotation3D=new Z,this._inverseViewRotation3D=new Z,this._inverseProjectionDirty=!0,this._inverseProjection=new B,this._modelViewDirty=!0,this._modelView=new B,this._modelView3DDirty=!0,this._modelView3D=new B,this._modelViewRelativeToEyeDirty=!0,this._modelViewRelativeToEye=new B,this._inverseModelViewDirty=!0,this._inverseModelView=new B,this._inverseModelView3DDirty=!0,this._inverseModelView3D=new B,this._viewProjectionDirty=!0,this._viewProjection=new B,this._inverseViewProjectionDirty=!0,this._inverseViewProjection=new B,this._modelViewProjectionDirty=!0,this._modelViewProjection=new B,this._inverseModelViewProjectionDirty=!0,this._inverseModelViewProjection=new B,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewProjectionRelativeToEye=new B,this._modelViewInfiniteProjectionDirty=!0,this._modelViewInfiniteProjection=new B,this._normalDirty=!0,this._normal=new Z,this._normal3DDirty=!0,this._normal3D=new Z,this._inverseNormalDirty=!0,this._inverseNormal=new Z,this._inverseNormal3DDirty=!0,this._inverseNormal3D=new Z,this._encodedCameraPositionMCDirty=!0,this._encodedCameraPositionMC=new Yn,this._cameraPosition=new m,this._sunPositionWC=new m,this._sunPositionColumbusView=new m,this._sunDirectionWC=new m,this._sunDirectionEC=new m,this._moonDirectionEC=new m,this._lightDirectionWC=new m,this._lightDirectionEC=new m,this._lightColor=new m,this._lightColorHdr=new m,this._pass=void 0,this._mode=void 0,this._mapProjection=void 0,this._ellipsoid=void 0,this._cameraDirection=new m,this._cameraRight=new m,this._cameraUp=new m,this._frustum2DWidth=0,this._eyeHeight=0,this._eyeHeight2D=new H,this._pixelRatio=1,this._orthographicIn3D=!1,this._backgroundColor=new z,this._brdfLut=void 0,this._environmentMap=void 0,this._sphericalHarmonicCoefficients=void 0,this._specularEnvironmentMaps=void 0,this._specularEnvironmentMapsDimensions=new H,this._specularEnvironmentMapsMaximumLOD=void 0,this._fogDensity=void 0,this._invertClassificationColor=void 0,this._splitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}Object.defineProperties(Hx.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(e){if(!Ke.equals(e,this._viewport)){Ke.clone(e,this._viewport);let t=this._viewport,n=this._viewportCartesian4;n.x=t.x,n.y=t.y,n.z=t.width,n.w=t.height,this._viewportDirty=!0}}},viewportCartesian4:{get:function(){return this._viewportCartesian4}},viewportOrthographic:{get:function(){return nZ(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return nZ(this),this._viewportTransformation}},model:{get:function(){return this._model},set:function(e){B.clone(e,this._model),this._modelView3DDirty=!0,this._inverseModelView3DDirty=!0,this._inverseModelDirty=!0,this._inverseTransposeModelDirty=!0,this._modelViewDirty=!0,this._inverseModelViewDirty=!0,this._modelViewRelativeToEyeDirty=!0,this._inverseModelViewDirty=!0,this._modelViewProjectionDirty=!0,this._inverseModelViewProjectionDirty=!0,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewInfiniteProjectionDirty=!0,this._normalDirty=!0,this._inverseNormalDirty=!0,this._normal3DDirty=!0,this._inverseNormal3DDirty=!0,this._encodedCameraPositionMCDirty=!0}},inverseModel:{get:function(){return this._inverseModelDirty&&(this._inverseModelDirty=!1,B.inverse(this._model,this._inverseModel)),this._inverseModel}},inverseTransposeModel:{get:function(){let e=this._inverseTransposeModel;return this._inverseTransposeModelDirty&&(this._inverseTransposeModelDirty=!1,B.getMatrix3(this.inverseModel,e),Z.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return RG(this),this._view3D}},viewRotation:{get:function(){return RG(this),this._viewRotation}},viewRotation3D:{get:function(){return RG(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return rZ(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return rZ(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return _Se(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return gSe(this),this._modelView}},modelView3D:{get:function(){return ySe(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return bSe(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return ASe(this),this._inverseModelView}},inverseModelView3D:{get:function(){return xSe(this),this._inverseModelView3D}},viewProjection:{get:function(){return CSe(this),this._viewProjection}},inverseViewProjection:{get:function(){return TSe(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return ESe(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return SSe(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return wSe(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return vSe(this),this._modelViewInfiniteProjection}},normal:{get:function(){return DSe(this),this._normal}},normal3D:{get:function(){return ISe(this),this._normal3D}},inverseNormal:{get:function(){return PSe(this),this._inverseNormal}},inverseNormal3D:{get:function(){return OSe(this),this._inverseNormal3D}},entireFrustum:{get:function(){return this._entireFrustum}},currentFrustum:{get:function(){return this._currentFrustum}},frustumPlanes:{get:function(){return this._frustumPlanes}},farDepthFromNearPlusOne:{get:function(){return this._farDepthFromNearPlusOne}},log2FarDepthFromNearPlusOne:{get:function(){return this._log2FarDepthFromNearPlusOne}},oneOverLog2FarDepthFromNearPlusOne:{get:function(){return this._oneOverLog2FarDepthFromNearPlusOne}},eyeHeight:{get:function(){return this._eyeHeight}},eyeHeight2D:{get:function(){return this._eyeHeight2D}},sunPositionWC:{get:function(){return this._sunPositionWC}},sunPositionColumbusView:{get:function(){return this._sunPositionColumbusView}},sunDirectionWC:{get:function(){return this._sunDirectionWC}},sunDirectionEC:{get:function(){return this._sunDirectionEC}},moonDirectionEC:{get:function(){return this._moonDirectionEC}},lightDirectionWC:{get:function(){return this._lightDirectionWC}},lightDirectionEC:{get:function(){return this._lightDirectionEC}},lightColor:{get:function(){return this._lightColor}},lightColorHdr:{get:function(){return this._lightColorHdr}},encodedCameraPositionMCHigh:{get:function(){return oZ(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return oZ(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},pixelRatio:{get:function(){return this._pixelRatio}},fogDensity:{get:function(){return this._fogDensity}},geometricToleranceOverMeter:{get:function(){return this._geometricToleranceOverMeter}},pass:{get:function(){return this._pass}},backgroundColor:{get:function(){return this._backgroundColor}},brdfLut:{get:function(){return this._brdfLut}},environmentMap:{get:function(){return this._environmentMap}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps}},specularEnvironmentMapsDimensions:{get:function(){return this._specularEnvironmentMapsDimensions}},specularEnvironmentMapsMaximumLOD:{get:function(){return this._specularEnvironmentMapsMaximumLOD}},splitPosition:{get:function(){return this._splitPosition}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance}},invertClassificationColor:{get:function(){return this._invertClassificationColor}},orthographicIn3D:{get:function(){return this._orthographicIn3D}},ellipsoid:{get:function(){return y(this._ellipsoid,oe.WGS84)}}});function aSe(e,t){B.clone(t,e._view),B.getMatrix3(t,e._viewRotation),e._view3DDirty=!0,e._inverseView3DDirty=!0,e._modelViewDirty=!0,e._modelView3DDirty=!0,e._modelViewRelativeToEyeDirty=!0,e._inverseModelViewDirty=!0,e._inverseModelView3DDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0,e._modelViewInfiniteProjectionDirty=!0,e._normalDirty=!0,e._inverseNormalDirty=!0,e._normal3DDirty=!0,e._inverseNormal3DDirty=!0}function cSe(e,t){B.clone(t,e._inverseView),B.getMatrix3(t,e._inverseViewRotation)}function lSe(e,t){B.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function uSe(e,t){B.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}function fSe(e,t){m.clone(t.positionWC,e._cameraPosition),m.clone(t.directionWC,e._cameraDirection),m.clone(t.rightWC,e._cameraRight),m.clone(t.upWC,e._cameraUp);let n=t.positionCartographic;l(n)?e._eyeHeight=n.height:e._eyeHeight=-e._ellipsoid.maximumRadius,e._encodedCameraPositionMCDirty=!0}var nS=new Z,dSe=new he;function mSe(e,t){l(Rt.computeIcrfToFixedMatrix(t.time,nS))||(nS=Rt.computeTemeToPseudoFixedMatrix(t.time,nS));let n=Ky.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);Z.multiplyByVector(nS,n,n),m.normalize(n,e._sunDirectionWC),n=Z.multiplyByVector(e.viewRotation3D,n,e._sunDirectionEC),m.normalize(n,n),n=Ky.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),Z.multiplyByVector(nS,n,n),Z.multiplyByVector(e.viewRotation3D,n,n),m.normalize(n,n);let i=t.mapProjection,r=i.ellipsoid.cartesianToCartographic(e._sunPositionWC,dSe);i.project(r,e._sunPositionColumbusView)}Hx.prototype.updateCamera=function(e){aSe(this,e.viewMatrix),cSe(this,e.inverseViewMatrix),fSe(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==ne.SCENE2D&&e.frustum instanceof tn};Hx.prototype.updateFrustum=function(e){lSe(this,e.projectionMatrix),l(e.infiniteProjectionMatrix)&&uSe(this,e.infiniteProjectionMatrix),this._currentFrustum.x=e.near,this._currentFrustum.y=e.far,this._farDepthFromNearPlusOne=e.far-e.near+1,this._log2FarDepthFromNearPlusOne=P.log2(this._farDepthFromNearPlusOne),this._oneOverLog2FarDepthFromNearPlusOne=1/this._log2FarDepthFromNearPlusOne;let t=e.offCenterFrustum;l(t)&&(e=t),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right};Hx.prototype.updatePass=function(e){this._pass=e};var hSe=[],pSe=new h_;Hx.prototype.update=function(e){this._mode=e.mode,this._mapProjection=e.mapProjection,this._ellipsoid=e.mapProjection.ellipsoid,this._pixelRatio=e.pixelRatio;let t=e.camera;this.updateCamera(t),e.mode===ne.SCENE2D?(this._frustum2DWidth=t.frustum.right-t.frustum.left,this._eyeHeight2D.x=this._frustum2DWidth*.5,this._eyeHeight2D.y=this._eyeHeight2D.x*this._eyeHeight2D.x):(this._frustum2DWidth=0,this._eyeHeight2D.x=0,this._eyeHeight2D.y=0),mSe(this,e);let n=y(e.light,pSe);n instanceof h_?(this._lightDirectionWC=m.clone(this._sunDirectionWC,this._lightDirectionWC),this._lightDirectionEC=m.clone(this._sunDirectionEC,this._lightDirectionEC)):(this._lightDirectionWC=m.normalize(m.negate(n.direction,this._lightDirectionWC),this._lightDirectionWC),this._lightDirectionEC=Z.multiplyByVector(this.viewRotation3D,this._lightDirectionWC,this._lightDirectionEC));let i=n.color,o=m.fromElements(i.red,i.green,i.blue,this._lightColorHdr);o=m.multiplyByScalar(o,n.intensity,o);let r=m.maximumComponent(o);r>1?m.divideByScalar(o,r,this._lightColor):m.clone(o,this._lightColor);let s=e.brdfLutGenerator,a=l(s)?s.colorTexture:void 0;this._brdfLut=a,this._environmentMap=y(e.environmentMap,e.context.defaultCubeMap),this._sphericalHarmonicCoefficients=y(e.sphericalHarmonicCoefficients,hSe),this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,l(this._specularEnvironmentMaps)&&H.clone(this._specularEnvironmentMaps.dimensions,this._specularEnvironmentMapsDimensions),this._fogDensity=e.fog.density,this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=Rt.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._splitPosition=e.splitPosition*e.context.drawingBufferWidth;let c=t.frustum.fov,u=this._viewport,f;l(c)?u.height>u.width?f=Math.tan(.5*c)*2/u.height:f=Math.tan(.5*c)*2/u.width:f=1/Math.max(u.width,u.height),this._geometricToleranceOverMeter=f*e.maximumScreenSpaceError,z.clone(e.backgroundColor,this._backgroundColor),this._minimumDisableDepthTestDistance=e.minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance*=this._minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance===Number.POSITIVE_INFINITY&&(this._minimumDisableDepthTestDistance=-1)};function nZ(e){if(e._viewportDirty){let t=e._viewport;B.computeOrthographicOffCenter(t.x,t.x+t.width,t.y,t.y+t.height,0,1,e._viewportOrthographicMatrix),B.computeViewportTransformation(t,0,1,e._viewportTransformation),e._viewportDirty=!1}}function _Se(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode!==ne.SCENE2D&&e._mode!==ne.MORPHING&&!e._orthographicIn3D?B.inverse(e._projection,e._inverseProjection):B.clone(B.ZERO,e._inverseProjection))}function gSe(e){e._modelViewDirty&&(e._modelViewDirty=!1,B.multiplyTransformation(e._view,e._model,e._modelView))}function ySe(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,B.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function ASe(e){e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,B.inverse(e.modelView,e._inverseModelView))}function xSe(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,B.inverse(e.modelView3D,e._inverseModelView3D))}function CSe(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,B.multiply(e._projection,e._view,e._viewProjection))}function TSe(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,B.inverse(e.viewProjection,e._inverseViewProjection))}function ESe(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,B.multiply(e._projection,e.modelView,e._modelViewProjection))}function bSe(e){if(e._modelViewRelativeToEyeDirty){e._modelViewRelativeToEyeDirty=!1;let t=e.modelView,n=e._modelViewRelativeToEye;n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=0,n[13]=0,n[14]=0,n[15]=t[15]}}function SSe(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,B.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function wSe(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,B.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function vSe(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,B.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function DSe(e){if(e._normalDirty){e._normalDirty=!1;let t=e._normal;B.getMatrix3(e.inverseModelView,t),Z.getRotation(t,t),Z.transpose(t,t)}}function ISe(e){if(e._normal3DDirty){e._normal3DDirty=!1;let t=e._normal3D;B.getMatrix3(e.inverseModelView3D,t),Z.getRotation(t,t),Z.transpose(t,t)}}function PSe(e){e._inverseNormalDirty&&(e._inverseNormalDirty=!1,B.getMatrix3(e.inverseModelView,e._inverseNormal),Z.getRotation(e._inverseNormal,e._inverseNormal))}function OSe(e){e._inverseNormal3DDirty&&(e._inverseNormal3DDirty=!1,B.getMatrix3(e.inverseModelView3D,e._inverseNormal3D),Z.getRotation(e._inverseNormal3D,e._inverseNormal3D))}var iZ=new m;function oZ(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,B.multiplyByPoint(e.inverseModel,e._cameraPosition,iZ),Yn.fromCartesian(iZ,e._encodedCameraPositionMC))}var MSe=new m,RSe=new m,BSe=new m,LSe=new m,NSe=new he,FSe=new m,USe=new B;function VSe(e,t,n,i,o,r,s,a){let c=MSe;c.x=e.y,c.y=e.z,c.z=e.x;let u=RSe;u.x=n.y,u.y=n.z,u.z=n.x;let f=BSe;f.x=i.y,f.y=i.z,f.z=i.x;let d=LSe;d.x=t.y,d.y=t.z,d.z=t.x,r===ne.SCENE2D&&(c.z=o*.5);let p=s.unproject(c,NSe);p.longitude=P.clamp(p.longitude,-Math.PI,Math.PI),p.latitude=P.clamp(p.latitude,-P.PI_OVER_TWO,P.PI_OVER_TWO);let g=s.ellipsoid,h=g.cartographicToCartesian(p,FSe),A=Rt.eastNorthUpToFixedFrame(h,g,USe);return B.multiplyByPointAsVector(A,u,u),B.multiplyByPointAsVector(A,f,f),B.multiplyByPointAsVector(A,d,d),l(a)||(a=new B),a[0]=u.x,a[1]=f.x,a[2]=-d.x,a[3]=0,a[4]=u.y,a[5]=f.y,a[6]=-d.y,a[7]=0,a[8]=u.z,a[9]=f.z,a[10]=-d.z,a[11]=0,a[12]=-m.dot(u,h),a[13]=-m.dot(f,h),a[14]=m.dot(d,h),a[15]=1,a}function RG(e){e._view3DDirty&&(e._mode===ne.SCENE3D?B.clone(e._view,e._view3D):VSe(e._cameraPosition,e._cameraDirection,e._cameraRight,e._cameraUp,e._frustum2DWidth,e._mode,e._mapProjection,e._view3D),B.getMatrix3(e._view3D,e._viewRotation3D),e._view3DDirty=!1)}function rZ(e){e._inverseView3DDirty&&(B.inverseTransformation(e.view3D,e._inverseView3D),B.getMatrix3(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}var yM=Hx;function kSe(e,t,n,i){let o=l(t.vertexBuffer),r=l(t.value),s=t.value?t.value.length:t.componentsPerAttribute,a={index:y(t.index,n),enabled:y(t.enabled,!0),vertexBuffer:t.vertexBuffer,value:r?t.value.slice(0):void 0,componentsPerAttribute:s,componentDatatype:y(t.componentDatatype,X.FLOAT),normalize:y(t.normalize,!1),offsetInBytes:y(t.offsetInBytes,0),strideInBytes:y(t.strideInBytes,0),instanceDivisor:y(t.instanceDivisor,0)};if(o)a.vertexAttrib=function(c){let u=this.index;c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer._getBuffer()),c.vertexAttribPointer(u,this.componentsPerAttribute,this.componentDatatype,this.normalize,this.strideInBytes,this.offsetInBytes),c.enableVertexAttribArray(u),this.instanceDivisor>0&&(i.glVertexAttribDivisor(u,this.instanceDivisor),i._vertexAttribDivisors[u]=this.instanceDivisor,i._previousDrawInstanced=!0)},a.disableVertexAttribArray=function(c){c.disableVertexAttribArray(this.index),this.instanceDivisor>0&&i.glVertexAttribDivisor(n,0)};else{switch(a.componentsPerAttribute){case 1:a.vertexAttrib=function(c){c.vertexAttrib1fv(this.index,this.value)};break;case 2:a.vertexAttrib=function(c){c.vertexAttrib2fv(this.index,this.value)};break;case 3:a.vertexAttrib=function(c){c.vertexAttrib3fv(this.index,this.value)};break;case 4:a.vertexAttrib=function(c){c.vertexAttrib4fv(this.index,this.value)};break}a.disableVertexAttribArray=function(c){}}e.push(a)}function aZ(e,t,n){for(let i=0;i<t.length;++i){let o=t[i];o.enabled&&o.vertexAttrib(e)}l(n)&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n._getBuffer())}function Oh(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,i=e.attributes,o=e.indexBuffer,r,s=[],a=1,c=!1,u=!1,f=i.length;for(r=0;r<f;++r)kSe(s,i[r],r,t);for(f=s.length,r=0;r<f;++r){let p=s[r];if(l(p.vertexBuffer)&&p.instanceDivisor===0){let g=p.strideInBytes||p.componentsPerAttribute*X.getSizeInBytes(p.componentDatatype);a=p.vertexBuffer.sizeInBytes/g;break}}for(r=0;r<f;++r)s[r].instanceDivisor>0&&(c=!0),l(s[r].value)&&(u=!0);let d;t.vertexArrayObject&&(d=t.glCreateVertexArray(),t.glBindVertexArray(d),aZ(n,s,o),t.glBindVertexArray(null)),this._numberOfVertices=a,this._hasInstancedAttributes=c,this._hasConstantAttributes=u,this._context=t,this._gl=n,this._vao=d,this._attributes=s,this._indexBuffer=o}function sZ(e){return e.values.length/e.componentsPerAttribute}function zSe(e){return X.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function HSe(e){let t,n,i,o=[];for(n in e)e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)&&(o.push(n),e[n].componentDatatype===X.DOUBLE&&(e[n].componentDatatype=X.FLOAT,e[n].values=X.createTypedArray(X.FLOAT,e[n].values)));let r,s=o.length;if(s>0)for(r=sZ(e[o[0]]),t=1;t<s;++t){let u=sZ(e[o[t]]);if(u!==r)throw new de(`Each attribute list must have the same number of vertices. Attribute ${o[t]} has a different number of vertices (${u.toString()}) than attribute ${o[0]} (${r.toString()}).`)}o.sort(function(u,f){return X.getSizeInBytes(e[f].componentDatatype)-X.getSizeInBytes(e[u].componentDatatype)});let a=0,c={};for(t=0;t<s;++t)n=o[t],i=e[n],c[n]=a,a+=zSe(i);if(a>0){let u=X.getSizeInBytes(e[o[0]].componentDatatype),f=a%u;f!==0&&(a+=u-f);let d=r*a,p=new ArrayBuffer(d),g={};for(t=0;t<s;++t){n=o[t];let h=X.getSizeInBytes(e[n].componentDatatype);g[n]={pointer:X.createTypedArray(e[n].componentDatatype,p),index:c[n]/h,strideInComponentType:a/h}}for(t=0;t<r;++t)for(let h=0;h<s;++h){n=o[h],i=e[n];let A=i.values,x=g[n],C=x.pointer,T=i.componentsPerAttribute;for(let E=0;E<T;++E)C[x.index+E]=A[t*T+E];x.index+=x.strideInComponentType}return{buffer:p,offsetsInBytes:c,vertexSizeInBytes:a}}}Oh.fromGeometry=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=y(e.geometry,y.EMPTY_OBJECT),i=y(e.bufferUsage,Fe.DYNAMIC_DRAW),o=y(e.attributeLocations,y.EMPTY_OBJECT),r=y(e.interleave,!1),s=e.vertexArrayAttributes,a,c,u,f=l(s)?s:[],d=n.attributes;if(r){let h=HSe(d);if(l(h)){u=mt.createVertexBuffer({context:t,typedArray:h.buffer,usage:i});let A=h.offsetsInBytes,x=h.vertexSizeInBytes;for(a in d)d.hasOwnProperty(a)&&l(d[a])&&(c=d[a],l(c.values)?f.push({index:o[a],vertexBuffer:u,componentDatatype:c.componentDatatype,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize,offsetInBytes:A[a],strideInBytes:x}):f.push({index:o[a],value:c.value,componentDatatype:c.componentDatatype,normalize:c.normalize}))}}else for(a in d)if(d.hasOwnProperty(a)&&l(d[a])){c=d[a];let h=c.componentDatatype;h===X.DOUBLE&&(h=X.FLOAT),u=void 0,l(c.values)&&(u=mt.createVertexBuffer({context:t,typedArray:X.createTypedArray(h,c.values),usage:i})),f.push({index:o[a],vertexBuffer:u,value:c.value,componentDatatype:h,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize})}let p,g=n.indices;return l(g)&&(dt.computeNumberOfVertices(n)>=P.SIXTY_FOUR_KILOBYTES&&t.elementIndexUint?p=mt.createIndexBuffer({context:t,typedArray:new Uint32Array(g),usage:i,indexDatatype:Ve.UNSIGNED_INT}):p=mt.createIndexBuffer({context:t,typedArray:new Uint16Array(g),usage:i,indexDatatype:Ve.UNSIGNED_SHORT})),new Oh({context:t,attributes:f,indexBuffer:p})};Object.defineProperties(Oh.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}});Oh.prototype.getAttribute=function(e){return this._attributes[e]};function GSe(e){let t=e._context,n=e._hasInstancedAttributes;if(!n&&!t._previousDrawInstanced)return;t._previousDrawInstanced=n;let i=t._vertexAttribDivisors,o=e._attributes,r=zt.maximumVertexAttributes,s;if(n){let a=o.length;for(s=0;s<a;++s){let c=o[s];if(c.enabled){let u=c.instanceDivisor,f=c.index;u!==i[f]&&(t.glVertexAttribDivisor(f,u),i[f]=u)}}}else for(s=0;s<r;++s)i[s]>0&&(t.glVertexAttribDivisor(s,0),i[s]=0)}function WSe(e,t){let n=e._attributes,i=n.length;for(let o=0;o<i;++o){let r=n[o];r.enabled&&l(r.value)&&r.vertexAttrib(t)}}Oh.prototype._bind=function(){l(this._vao)?(this._context.glBindVertexArray(this._vao),this._context.instancedArrays&&GSe(this),this._hasConstantAttributes&&WSe(this,this._gl)):aZ(this._gl,this._attributes,this._indexBuffer)};Oh.prototype._unBind=function(){if(l(this._vao))this._context.glBindVertexArray(null);else{let e=this._attributes,t=this._gl;for(let n=0;n<e.length;++n){let i=e[n];i.enabled&&i.disableVertexAttribArray(t)}this._indexBuffer&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)}};Oh.prototype.isDestroyed=function(){return!1};Oh.prototype.destroy=function(){let e=this._attributes;for(let n=0;n<e.length;++n){let i=e[n].vertexBuffer;l(i)&&!i.isDestroyed()&&i.vertexArrayDestroyable&&i.destroy()}let t=this._indexBuffer;return l(t)&&!t.isDestroyed()&&t.vertexArrayDestroyable&&t.destroy(),l(this._vao)&&this._context.glDeleteVertexArray(this._vao),ue(this)};var ri=Oh;function vl(e,t){let{getWebGLStub:n,requestWebgl1:i,webgl:o={},allowTextureFilterAnisotropic:r=!0}=y(t,{});o.alpha=y(o.alpha,!1),o.stencil=y(o.stencil,!0),o.powerPreference=y(o.powerPreference,"high-performance");let s=l(n)?n(e,o):jSe(e,o,i),c=typeof WebGL2RenderingContext<"u"&&s instanceof WebGL2RenderingContext;this._canvas=e,this._originalGLContext=s,this._gl=s,this._webgl2=c,this._id=jn(),this.validateFramebuffer=!1,this.validateShaderProgram=!1,this.logShaderCompilation=!1,this._throwOnWebGLError=!1,this._shaderCache=new hM(this),this._textureCache=new pM;let u=s;this._stencilBits=u.getParameter(u.STENCIL_BITS),zt._maximumCombinedTextureImageUnits=u.getParameter(u.MAX_COMBINED_TEXTURE_IMAGE_UNITS),zt._maximumCubeMapSize=u.getParameter(u.MAX_CUBE_MAP_TEXTURE_SIZE),zt._maximumFragmentUniformVectors=u.getParameter(u.MAX_FRAGMENT_UNIFORM_VECTORS),zt._maximumTextureImageUnits=u.getParameter(u.MAX_TEXTURE_IMAGE_UNITS),zt._maximumRenderbufferSize=u.getParameter(u.MAX_RENDERBUFFER_SIZE),zt._maximumTextureSize=u.getParameter(u.MAX_TEXTURE_SIZE),zt._maximumVaryingVectors=u.getParameter(u.MAX_VARYING_VECTORS),zt._maximumVertexAttributes=u.getParameter(u.MAX_VERTEX_ATTRIBS),zt._maximumVertexTextureImageUnits=u.getParameter(u.MAX_VERTEX_TEXTURE_IMAGE_UNITS),zt._maximumVertexUniformVectors=u.getParameter(u.MAX_VERTEX_UNIFORM_VECTORS),zt._maximumSamples=this._webgl2?u.getParameter(u.MAX_SAMPLES):0;let f=u.getParameter(u.ALIASED_LINE_WIDTH_RANGE);zt._minimumAliasedLineWidth=f[0],zt._maximumAliasedLineWidth=f[1];let d=u.getParameter(u.ALIASED_POINT_SIZE_RANGE);zt._minimumAliasedPointSize=d[0],zt._maximumAliasedPointSize=d[1];let p=u.getParameter(u.MAX_VIEWPORT_DIMS);zt._maximumViewportWidth=p[0],zt._maximumViewportHeight=p[1];let g=u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_FLOAT);zt._highpFloatSupported=g.precision!==0;let h=u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_INT);zt._highpIntSupported=h.rangeMax!==0,this._antialias=u.getContextAttributes().antialias,this._standardDerivatives=!!yr(u,["OES_standard_derivatives"]),this._blendMinmax=!!yr(u,["EXT_blend_minmax"]),this._elementIndexUint=!!yr(u,["OES_element_index_uint"]),this._depthTexture=!!yr(u,["WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"]),this._fragDepth=!!yr(u,["EXT_frag_depth"]),this._debugShaders=yr(u,["WEBGL_debug_shaders"]),this._textureFloat=!!yr(u,["OES_texture_float"]),this._textureHalfFloat=!!yr(u,["OES_texture_half_float"]),this._textureFloatLinear=!!yr(u,["OES_texture_float_linear"]),this._textureHalfFloatLinear=!!yr(u,["OES_texture_half_float_linear"]),this._colorBufferFloat=!!yr(u,["EXT_color_buffer_float","WEBGL_color_buffer_float"]),this._floatBlend=!!yr(u,["EXT_float_blend"]),this._colorBufferHalfFloat=!!yr(u,["EXT_color_buffer_half_float"]),this._s3tc=!!yr(u,["WEBGL_compressed_texture_s3tc","MOZ_WEBGL_compressed_texture_s3tc","WEBKIT_WEBGL_compressed_texture_s3tc"]),this._pvrtc=!!yr(u,["WEBGL_compressed_texture_pvrtc","WEBKIT_WEBGL_compressed_texture_pvrtc"]),this._astc=!!yr(u,["WEBGL_compressed_texture_astc"]),this._etc=!!yr(u,["WEBG_compressed_texture_etc"]),this._etc1=!!yr(u,["WEBGL_compressed_texture_etc1"]),this._bc7=!!yr(u,["EXT_texture_compression_bptc"]),Sl.setKTX2SupportedFormats(this._s3tc,this._pvrtc,this._astc,this._etc,this._etc1,this._bc7);let A=r?yr(u,["EXT_texture_filter_anisotropic","WEBKIT_EXT_texture_filter_anisotropic"]):void 0;this._textureFilterAnisotropic=A,zt._maximumTextureFilterAnisotropy=l(A)?u.getParameter(A.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1;let x,C,T,E,S,v,D,O,M,L;if(c){let w=this;x=function(){return w._gl.createVertexArray()},C=function(I){w._gl.bindVertexArray(I)},T=function(I){w._gl.deleteVertexArray(I)},E=function(I,R,F,k,V){u.drawElementsInstanced(I,R,F,k,V)},S=function(I,R,F,k){u.drawArraysInstanced(I,R,F,k)},v=function(I,R){u.vertexAttribDivisor(I,R)},D=function(I){u.drawBuffers(I)}}else O=yr(u,["OES_vertex_array_object"]),l(O)&&(x=function(){return O.createVertexArrayOES()},C=function(w){O.bindVertexArrayOES(w)},T=function(w){O.deleteVertexArrayOES(w)}),M=yr(u,["ANGLE_instanced_arrays"]),l(M)&&(E=function(w,I,R,F,k){M.drawElementsInstancedANGLE(w,I,R,F,k)},S=function(w,I,R,F){M.drawArraysInstancedANGLE(w,I,R,F)},v=function(w,I){M.vertexAttribDivisorANGLE(w,I)}),L=yr(u,["WEBGL_draw_buffers"]),l(L)&&(D=function(w){L.drawBuffersWEBGL(w)});this.glCreateVertexArray=x,this.glBindVertexArray=C,this.glDeleteVertexArray=T,this.glDrawElementsInstanced=E,this.glDrawArraysInstanced=S,this.glVertexAttribDivisor=v,this.glDrawBuffers=D,this._vertexArrayObject=!!O,this._instancedArrays=!!M,this._drawBuffers=!!L,zt._maximumDrawBuffers=this.drawBuffers?u.getParameter(te.MAX_DRAW_BUFFERS):1,zt._maximumColorAttachments=this.drawBuffers?u.getParameter(te.MAX_COLOR_ATTACHMENTS):1,this._clearColor=new z(0,0,0,0),this._clearDepth=1,this._clearStencil=0;let N=new yM,_=new ac(this),b=ze.fromCache();this._defaultPassState=_,this._defaultRenderState=b,this._defaultTexture=void 0,this._defaultEmissiveTexture=void 0,this._defaultNormalTexture=void 0,this._defaultCubeMap=void 0,this._us=N,this._currentRenderState=b,this._currentPassState=_,this._currentFramebuffer=void 0,this._maxFrameTextureUnitIndex=0,this._vertexAttribDivisors=[],this._previousDrawInstanced=!1;for(let w=0;w<zt._maximumVertexAttributes;w++)this._vertexAttribDivisors.push(0);this._pickObjects={},this._nextPickColor=new Uint32Array(1),this.options={getWebGLStub:n,requestWebgl1:i,webgl:o,allowTextureFilterAnisotropic:r},this.cache={},ze.apply(u,b,_)}function jSe(e,t,n){if(typeof WebGLRenderingContext>"u")throw new de("The browser does not support WebGL. Visit http://get.webgl.org.");!n&&!(typeof WebGL2RenderingContext<"u")&&(n=!0);let o=n?"webgl":"webgl2",r=e.getContext(o,t);if(!l(r))throw new de("The browser supports WebGL, but initialization failed.");return r}function YSe(e,t){let n="WebGL Error: ";switch(t){case e.INVALID_ENUM:n+="INVALID_ENUM";break;case e.INVALID_VALUE:n+="INVALID_VALUE";break;case e.INVALID_OPERATION:n+="INVALID_OPERATION";break;case e.OUT_OF_MEMORY:n+="OUT_OF_MEMORY";break;case e.CONTEXT_LOST_WEBGL:n+="CONTEXT_LOST_WEBGL lost";break;default:n+=`Unknown (${t})`}return n}function qSe(e,t,n,i){let o=`${YSe(e,i)}: ${t.name}(`;for(let r=0;r<n.length;++r)r!==0&&(o+=", "),o+=n[r];return o+=");",o}function XSe(e,t,n){let i=e.getError();if(i!==e.NO_ERROR)throw new de(qSe(e,t,n,i))}function KSe(e,t,n){return{get:function(){let i=e[t];return n(e,`get: ${t}`,i),e[t]},set:function(i){e[t]=i,n(e,`set: ${t}`,i)}}}function JSe(e,t){if(!l(t))return e;function n(o){return function(){let r=o.apply(e,arguments);return t(e,o,arguments),r}}let i={};for(let o in e){let r=e[o];r instanceof Function?i[o]=n(r):Object.defineProperty(i,o,KSe(e,o,t))}return i}function yr(e,t){let n=t.length;for(let i=0;i<n;++i){let o=e.getExtension(t[i]);if(o)return o}}var ZSe={};Object.defineProperties(vl.prototype,{id:{get:function(){return this._id}},webgl2:{get:function(){return this._webgl2}},canvas:{get:function(){return this._canvas}},shaderCache:{get:function(){return this._shaderCache}},textureCache:{get:function(){return this._textureCache}},uniformState:{get:function(){return this._us}},stencilBits:{get:function(){return this._stencilBits}},stencilBuffer:{get:function(){return this._stencilBits>=8}},antialias:{get:function(){return this._antialias}},msaa:{get:function(){return this._webgl2}},standardDerivatives:{get:function(){return this._standardDerivatives||this._webgl2}},floatBlend:{get:function(){return this._floatBlend}},blendMinmax:{get:function(){return this._blendMinmax||this._webgl2}},elementIndexUint:{get:function(){return this._elementIndexUint||this._webgl2}},depthTexture:{get:function(){return this._depthTexture||this._webgl2}},floatingPointTexture:{get:function(){return this._webgl2||this._textureFloat}},halfFloatingPointTexture:{get:function(){return this._webgl2||this._textureHalfFloat}},textureFloatLinear:{get:function(){return this._textureFloatLinear}},textureHalfFloatLinear:{get:function(){return this._webgl2&&this._textureFloatLinear||!this._webgl2&&this._textureHalfFloatLinear}},textureFilterAnisotropic:{get:function(){return!!this._textureFilterAnisotropic}},s3tc:{get:function(){return this._s3tc}},pvrtc:{get:function(){return this._pvrtc}},astc:{get:function(){return this._astc}},etc:{get:function(){return this._etc}},etc1:{get:function(){return this._etc1}},bc7:{get:function(){return this._bc7}},supportsBasis:{get:function(){return this._s3tc||this._pvrtc||this._astc||this._etc||this._etc1||this._bc7}},vertexArrayObject:{get:function(){return this._vertexArrayObject||this._webgl2}},fragmentDepth:{get:function(){return this._fragDepth||this._webgl2}},instancedArrays:{get:function(){return this._instancedArrays||this._webgl2}},colorBufferFloat:{get:function(){return this._colorBufferFloat}},colorBufferHalfFloat:{get:function(){return this._webgl2&&this._colorBufferFloat||!this._webgl2&&this._colorBufferHalfFloat}},drawBuffers:{get:function(){return this._drawBuffers||this._webgl2}},debugShaders:{get:function(){return this._debugShaders}},throwOnWebGLError:{get:function(){return this._throwOnWebGLError},set:function(e){this._throwOnWebGLError=e,this._gl=JSe(this._originalGLContext,e?XSe:void 0)}},defaultTexture:{get:function(){return this._defaultTexture===void 0&&(this._defaultTexture=new Bt({context:this,source:{width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])},flipY:!1})),this._defaultTexture}},defaultEmissiveTexture:{get:function(){return this._defaultEmissiveTexture===void 0&&(this._defaultEmissiveTexture=new Bt({context:this,pixelFormat:lt.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([0,0,0])},flipY:!1})),this._defaultEmissiveTexture}},defaultNormalTexture:{get:function(){return this._defaultNormalTexture===void 0&&(this._defaultNormalTexture=new Bt({context:this,pixelFormat:lt.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([128,128,255])},flipY:!1})),this._defaultNormalTexture}},defaultCubeMap:{get:function(){if(this._defaultCubeMap===void 0){let e={width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])};this._defaultCubeMap=new sc({context:this,source:{positiveX:e,negativeX:e,positiveY:e,negativeY:e,positiveZ:e,negativeZ:e},flipY:!1})}return this._defaultCubeMap}},drawingBufferHeight:{get:function(){return this._gl.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._gl.drawingBufferWidth}},defaultFramebuffer:{get:function(){return ZSe}}});function cZ(e,t,n,i){let o=e._currentRenderState,r=e._currentPassState;e._currentRenderState=t,e._currentPassState=n,ze.partialApply(e._gl,o,t,r,n,i)}var BG;typeof WebGLRenderingContext<"u"&&(BG=[te.BACK]);function LG(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;let n=BG;if(l(t))t._bind(),n=t._getActiveColorAttachments();else{let i=e._gl;i.bindFramebuffer(i.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(n)}}var QSe=new oi;vl.prototype.clear=function(e,t){e=y(e,QSe),t=y(t,this._defaultPassState);let n=this._gl,i=0,o=e.color,r=e.depth,s=e.stencil;l(o)&&(z.equals(this._clearColor,o)||(z.clone(o,this._clearColor),n.clearColor(o.red,o.green,o.blue,o.alpha)),i|=n.COLOR_BUFFER_BIT),l(r)&&(r!==this._clearDepth&&(this._clearDepth=r,n.clearDepth(r)),i|=n.DEPTH_BUFFER_BIT),l(s)&&(s!==this._clearStencil&&(this._clearStencil=s,n.clearStencil(s)),i|=n.STENCIL_BUFFER_BIT);let a=y(e.renderState,this._defaultRenderState);cZ(this,a,t,!0);let c=y(e.framebuffer,t.framebuffer);LG(this,c),n.clear(i)};function $Se(e,t,n,i,o){LG(e,t),cZ(e,o,n,!1),i._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,i.maximumTextureUnitIndex)}function ewe(e,t,n,i){let o=t._primitiveType,r=t._vertexArray,s=t._offset,a=t._count,c=t.instanceCount;e._us.model=y(t._modelMatrix,B.IDENTITY),n._setUniforms(i,e._us,e.validateShaderProgram),r._bind();let u=r.indexBuffer;l(u)?(s=s*u.bytesPerIndex,a=y(a,u.numberOfIndices),c===0?e._gl.drawElements(o,a,u.indexDatatype,s):e.glDrawElementsInstanced(o,a,u.indexDatatype,s,c)):(a=y(a,r.numberOfVertices),c===0?e._gl.drawArrays(o,s,a):e.glDrawArraysInstanced(o,s,a,c)),r._unBind()}vl.prototype.draw=function(e,t,n,i){t=y(t,this._defaultPassState);let o=y(e._framebuffer,t.framebuffer),r=y(e._renderState,this._defaultRenderState);n=y(n,e._shaderProgram),i=y(i,e._uniformMap),$Se(this,o,t,n,r),ewe(this,e,n,i)};vl.prototype.endFrame=function(){let e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);let t=BG;this.drawBuffers&&this.glDrawBuffers(t);let n=this._maxFrameTextureUnitIndex;this._maxFrameTextureUnitIndex=0;for(let i=0;i<n;++i)e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,null),e.bindTexture(e.TEXTURE_CUBE_MAP,null)};vl.prototype.readPixels=function(e){let t=this._gl;e=y(e,y.EMPTY_OBJECT);let n=Math.max(y(e.x,0),0),i=Math.max(y(e.y,0),0),o=y(e.width,t.drawingBufferWidth),r=y(e.height,t.drawingBufferHeight),s=e.framebuffer,a=Je.UNSIGNED_BYTE;l(s)&&s.numberOfColorAttachments>0&&(a=s.getColorTexture(0).pixelDatatype);let c=lt.createTypedArray(lt.RGBA,a,o,r);return LG(this,s),t.readPixels(n,i,o,r,lt.RGBA,Je.toWebGLConstant(a,this),c),c};var lZ={position:0,textureCoordinates:1};vl.prototype.getViewportQuadVertexArray=function(){let e=this.cache.viewportQuad_vertexArray;if(!l(e)){let t=new dt({attributes:{position:new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1]}),textureCoordinates:new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[0,0,1,0,1,1,0,1]})},indices:new Uint16Array([0,1,2,0,2,3]),primitiveType:Le.TRIANGLES});e=ri.fromGeometry({context:this,geometry:t,attributeLocations:lZ,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e};vl.prototype.createViewportQuadCommand=function(e,t){return t=y(t,y.EMPTY_OBJECT),new it({vertexArray:this.getViewportQuadVertexArray(),primitiveType:Le.TRIANGLES,renderState:t.renderState,shaderProgram:Jt.fromCache({context:this,vertexShaderSource:Ex,fragmentShaderSource:e,attributeLocations:lZ}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})};vl.prototype.getObjectByPickColor=function(e){return this._pickObjects[e.toRgba()]};function NG(e,t,n){this._pickObjects=e,this.key=t,this.color=n}Object.defineProperties(NG.prototype,{object:{get:function(){return this._pickObjects[this.key]},set:function(e){this._pickObjects[this.key]=e}}});NG.prototype.destroy=function(){delete this._pickObjects[this.key]};vl.prototype.createPickId=function(e){++this._nextPickColor[0];let t=this._nextPickColor[0];if(t===0)throw new de("Out of unique Pick IDs.");return this._pickObjects[t]=e,new NG(this._pickObjects,t,z.fromRgba(t))};vl.prototype.isDestroyed=function(){return!1};vl.prototype.destroy=function(){let e=this.cache;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];l(n.destroy)&&n.destroy()}return this._shaderCache=this._shaderCache.destroy(),this._textureCache=this._textureCache.destroy(),this._defaultTexture=this._defaultTexture&&this._defaultTexture.destroy(),this._defaultEmissiveTexture=this._defaultEmissiveTexture&&this._defaultEmissiveTexture.destroy(),this._defaultNormalTexture=this._defaultNormalTexture&&this._defaultNormalTexture.destroy(),this._defaultCubeMap=this._defaultCubeMap&&this._defaultCubeMap.destroy(),ue(this)};vl._deprecationWarning=$;var AM=vl;function Gx(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=e.width,i=e.height;this._width=n,this._height=i;let o=e.colorRenderbuffers,r=e.colorTextures;if(l(o)!==l(r))throw new fe("Both color renderbuffer and texture attachments must be provided.");let s=e.depthStencilRenderbuffer,a=e.depthStencilTexture;if(l(s)!==l(a))throw new fe("Both depth-stencil renderbuffer and texture attachments must be provided.");this._renderFramebuffer=new ia({context:t,colorRenderbuffers:o,depthStencilRenderbuffer:s,destroyAttachments:e.destroyAttachments}),this._colorFramebuffer=new ia({context:t,colorTextures:r,depthStencilTexture:a,destroyAttachments:e.destroyAttachments})}Gx.prototype.getRenderFramebuffer=function(){return this._renderFramebuffer};Gx.prototype.getColorFramebuffer=function(){return this._colorFramebuffer};Gx.prototype.blitFramebuffers=function(e,t){this._renderFramebuffer.bindRead(),this._colorFramebuffer.bindDraw();let n=e._gl,i=0;this._colorFramebuffer._colorTextures.length>0&&(i|=n.COLOR_BUFFER_BIT),l(this._colorFramebuffer.depthStencilTexture)&&(i|=n.DEPTH_BUFFER_BIT|(t?n.STENCIL_BUFFER_BIT:0)),n.blitFramebuffer(0,0,this._width,this._height,0,0,this._width,this._height,i,n.NEAREST),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null)};Gx.prototype.isDestroyed=function(){return!1};Gx.prototype.destroy=function(){return this._renderFramebuffer.destroy(),this._colorFramebuffer.destroy(),ue(this)};var xM=Gx;var kc={RGBA4:te.RGBA4,RGBA8:te.RGBA8,RGBA16F:te.RGBA16F,RGBA32F:te.RGBA32F,RGB5_A1:te.RGB5_A1,RGB565:te.RGB565,DEPTH_COMPONENT16:te.DEPTH_COMPONENT16,STENCIL_INDEX8:te.STENCIL_INDEX8,DEPTH_STENCIL:te.DEPTH_STENCIL,DEPTH24_STENCIL8:te.DEPTH24_STENCIL8,validate:function(e){return e===kc.RGBA4||e===kc.RGBA8||e===kc.RGBA16F||e===kc.RGBA32F||e===kc.RGB5_A1||e===kc.RGB565||e===kc.DEPTH_COMPONENT16||e===kc.STENCIL_INDEX8||e===kc.DEPTH_STENCIL||e===kc.DEPTH24_STENCIL8},getColorFormat:function(e){return e===te.FLOAT?kc.RGBA32F:e===te.HALF_FLOAT_OES?kc.RGBA16F:kc.RGBA8}},zc=Object.freeze(kc);function iS(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=zt.maximumRenderbufferSize,o=y(e.format,zc.RGBA4),r=l(e.width)?e.width:n.drawingBufferWidth,s=l(e.height)?e.height:n.drawingBufferHeight,a=y(e.numSamples,1);this._gl=n,this._format=o,this._width=r,this._height=s,this._renderbuffer=this._gl.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,this._renderbuffer),a>1?n.renderbufferStorageMultisample(n.RENDERBUFFER,a,o,r,s):n.renderbufferStorage(n.RENDERBUFFER,o,r,s),n.bindRenderbuffer(n.RENDERBUFFER,null)}Object.defineProperties(iS.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});iS.prototype._getRenderbuffer=function(){return this._renderbuffer};iS.prototype.isDestroyed=function(){return!1};iS.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),ue(this)};var vu=iS;function ns(e){e=y(e,y.EMPTY_OBJECT),this._numSamples=y(e.numSamples,1),this._colorAttachmentsLength=y(e.colorAttachmentsLength,1),this._color=y(e.color,!0),this._depth=y(e.depth,!1),this._depthStencil=y(e.depthStencil,!1),this._supportsDepthTexture=y(e.supportsDepthTexture,!1),this._createColorAttachments=y(e.createColorAttachments,!0),this._createDepthAttachments=y(e.createDepthAttachments,!0),this._pixelDatatype=e.pixelDatatype,this._pixelFormat=e.pixelFormat,this._width=void 0,this._height=void 0,this._framebuffer=void 0,this._multisampleFramebuffer=void 0,this._colorTextures=void 0,this._color&&(this._colorTextures=new Array(this._colorAttachmentsLength),this._colorRenderbuffers=new Array(this._colorAttachmentsLength)),this._colorRenderbuffer=void 0,this._depthStencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthRenderbuffer=void 0,this._depthTexture=void 0,this._attachmentsDirty=!1}Object.defineProperties(ns.prototype,{framebuffer:{get:function(){return this._numSamples>1?this._multisampleFramebuffer.getRenderFramebuffer():this._framebuffer}},numSamples:{get:function(){return this._numSamples}},status:{get:function(){return this.framebuffer.status}}});ns.prototype.isDirty=function(e,t,n,i,o){n=y(n,1);let r=this._width!==e||this._height!==t,s=this._numSamples!==n,a=l(i)&&this._pixelDatatype!==i||l(o)&&this._pixelFormat!==o,c=n===1?l(this._framebuffer):l(this._multisampleFramebuffer);return this._attachmentsDirty||r||s||a||!c||this._color&&!l(this._colorTextures[0])};ns.prototype.update=function(e,t,n,i,o,r){if(i=e.msaa?y(i,1):1,o=y(o,this._color?y(this._pixelDatatype,Je.UNSIGNED_BYTE):void 0),r=y(r,this._color?y(this._pixelFormat,lt.RGBA):void 0),this.isDirty(t,n,i,o,r)){if(this.destroy(),this._width=t,this._height=n,this._numSamples=i,this._pixelDatatype=o,this._pixelFormat=r,this._attachmentsDirty=!1,this._color&&this._createColorAttachments){for(let s=0;s<this._colorAttachmentsLength;++s)if(this._colorTextures[s]=new Bt({context:e,width:t,height:n,pixelFormat:r,pixelDatatype:o,sampler:dn.NEAREST}),this._numSamples>1){let a=zc.getColorFormat(o);this._colorRenderbuffers[s]=new vu({context:e,width:t,height:n,format:a,numSamples:this._numSamples})}}this._depthStencil&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?(this._depthStencilTexture=new Bt({context:e,width:t,height:n,pixelFormat:lt.DEPTH_STENCIL,pixelDatatype:Je.UNSIGNED_INT_24_8,sampler:dn.NEAREST}),this._numSamples>1&&(this._depthStencilRenderbuffer=new vu({context:e,width:t,height:n,format:zc.DEPTH24_STENCIL8,numSamples:this._numSamples}))):this._depthStencilRenderbuffer=new vu({context:e,width:t,height:n,format:zc.DEPTH_STENCIL})),this._depth&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?this._depthTexture=new Bt({context:e,width:t,height:n,pixelFormat:lt.DEPTH_COMPONENT,pixelDatatype:Je.UNSIGNED_INT,sampler:dn.NEAREST}):this._depthRenderbuffer=new vu({context:e,width:t,height:n,format:zc.DEPTH_COMPONENT16})),this._numSamples>1?this._multisampleFramebuffer=new xM({context:e,width:this._width,height:this._height,colorTextures:this._colorTextures,colorRenderbuffers:this._colorRenderbuffers,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1}):this._framebuffer=new ia({context:e,colorTextures:this._colorTextures,depthTexture:this._depthTexture,depthRenderbuffer:this._depthRenderbuffer,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1})}};ns.prototype.getColorTexture=function(e){return e=y(e,0),this._colorTextures[e]};ns.prototype.setColorTexture=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorTextures[t],this._colorTextures[t]=e};ns.prototype.getColorRenderbuffer=function(e){return e=y(e,0),this._colorRenderbuffers[e]};ns.prototype.setColorRenderbuffer=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorRenderbuffers[t],this._colorRenderbuffers[t]=e};ns.prototype.getDepthRenderbuffer=function(){return this._depthRenderbuffer};ns.prototype.setDepthRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthRenderbuffer,this._depthRenderbuffer=e};ns.prototype.getDepthTexture=function(){return this._depthTexture};ns.prototype.setDepthTexture=function(e){this._attachmentsDirty=e!==this._depthTexture,this._depthTexture=e};ns.prototype.getDepthStencilRenderbuffer=function(){return this._depthStencilRenderbuffer};ns.prototype.setDepthStencilRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthStencilRenderbuffer,this._depthStencilRenderbuffer=e};ns.prototype.getDepthStencilTexture=function(){return this._depthStencilTexture};ns.prototype.setDepthStencilTexture=function(e){this._attachmentsDirty=e!==this._depthStencilTexture,this._depthStencilTexture=e};ns.prototype.prepareTextures=function(e,t){this._numSamples>1&&this._multisampleFramebuffer.blitFramebuffers(e,t)};ns.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this.framebuffer,t.execute(e,n),t.framebuffer=i};ns.prototype.destroyFramebuffer=function(){this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._multisampleFramebuffer=this._multisampleFramebuffer&&this._multisampleFramebuffer.destroy()};ns.prototype.destroy=function(){if(this._color){let e,t=this._colorTextures.length;for(e=0;e<t;++e){let n=this._colorTextures[e];this._createColorAttachments&&l(n)&&!n.isDestroyed()&&(this._colorTextures[e].destroy(),this._colorTextures[e]=void 0),l(n)&&n.isDestroyed()&&(this._colorTextures[e]=void 0);let i=this._colorRenderbuffers[e];this._createColorAttachments&&l(i)&&!i.isDestroyed()&&(this._colorRenderbuffers[e].destroy(),this._colorRenderbuffers[e]=void 0),l(i)&&i.isDestroyed()&&(this._colorRenderbuffers[e]=void 0)}}this._depthStencil&&(this._createDepthAttachments&&(this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()),l(this._depthStencilTexture)&&this._depthStencilTexture.isDestroyed()&&(this._depthStencilTexture=void 0),l(this._depthStencilRenderbuffer)&&this._depthStencilRenderbuffer.isDestroyed()&&(this._depthStencilRenderbuffer=void 0)),this._depth&&(this._createDepthAttachments&&(this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy()),l(this._depthTexture)&&this._depthTexture.isDestroyed()&&(this._depthTexture=void 0),l(this._depthRenderbuffer)&&this._depthRenderbuffer.isDestroyed()&&(this._depthRenderbuffer=void 0)),this.destroyFramebuffer()};var mi=ns;var Jy={VERTEX:0,FRAGMENT:1,BOTH:2};Jy.includesVertexShader=function(e){return e===Jy.VERTEX||e===Jy.BOTH};Jy.includesFragmentShader=function(e){return e===Jy.FRAGMENT||e===Jy.BOTH};var Te=Object.freeze(Jy);function FG(e){this.name=e,this.fields=[]}FG.prototype.addField=function(e,t){let n=` ${e} ${t};`;this.fields.push(n)};FG.prototype.generateGlslLines=function(){let e=this.fields;return e.length===0&&(e=[" float _empty;"]),[].concat(`struct ${this.name}`,"{",e,"};")};var CM=FG;function UG(e){this.signature=e,this.body=[]}UG.prototype.addLines=function(e){let t=this.body;if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;i++)t.push(` ${e[i]}`)}else t.push(` ${e}`)};UG.prototype.generateGlslLines=function(){return[].concat(this.signature,"{",this.body,"}")};var TM=UG;function cc(){this._positionAttributeLine=void 0,this._nextAttributeLocation=1,this._attributeLocations={},this._attributeLines=[],this._structs={},this._functions={},this._vertexShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]},this._fragmentShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]}}Object.defineProperties(cc.prototype,{attributeLocations:{get:function(){return this._attributeLocations}}});cc.prototype.addDefine=function(e,t,n){n=y(n,Te.BOTH);let i=e;l(t)&&(i+=` ${t.toString()}`),Te.includesVertexShader(n)&&this._vertexShaderParts.defineLines.push(i),Te.includesFragmentShader(n)&&this._fragmentShaderParts.defineLines.push(i)};cc.prototype.addStruct=function(e,t,n){this._structs[e]=new CM(t),Te.includesVertexShader(n)&&this._vertexShaderParts.structIds.push(e),Te.includesFragmentShader(n)&&this._fragmentShaderParts.structIds.push(e)};cc.prototype.addStructField=function(e,t,n){this._structs[e].addField(t,n)};cc.prototype.addFunction=function(e,t,n){this._functions[e]=new TM(t),Te.includesVertexShader(n)&&this._vertexShaderParts.functionIds.push(e),Te.includesFragmentShader(n)&&this._fragmentShaderParts.functionIds.push(e)};cc.prototype.addFunctionLines=function(e,t){this._functions[e].addLines(t)};cc.prototype.addUniform=function(e,t,n){n=y(n,Te.BOTH);let i=`uniform ${e} ${t};`;Te.includesVertexShader(n)&&this._vertexShaderParts.uniformLines.push(i),Te.includesFragmentShader(n)&&this._fragmentShaderParts.uniformLines.push(i)};cc.prototype.setPositionAttribute=function(e,t){return this._positionAttributeLine=`in ${e} ${t};`,this._attributeLocations[t]=0,0};cc.prototype.addAttribute=function(e,t){let n=`in ${e} ${t};`;this._attributeLines.push(n);let i=this._nextAttributeLocation;return this._attributeLocations[t]=i,this._nextAttributeLocation+=nwe(e),i};cc.prototype.addVarying=function(e,t){let n=`${e} ${t};`;this._vertexShaderParts.varyingLines.push(`out ${n}`),this._fragmentShaderParts.varyingLines.push(`in ${n}`)};cc.prototype.addVertexLines=function(e){let t=this._vertexShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};cc.prototype.addFragmentLines=function(e){let t=this._fragmentShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};cc.prototype.buildShaderProgram=function(e){let t=l(this._positionAttributeLine)?[this._positionAttributeLine]:[],n=twe(this),i=iwe(this),o=t.concat(this._attributeLines,this._vertexShaderParts.uniformLines,this._vertexShaderParts.varyingLines,n.vertexLines,i.vertexLines,this._vertexShaderParts.shaderLines).join(` +`),r=new He({defines:this._vertexShaderParts.defineLines,sources:[o]}),s=this._fragmentShaderParts.uniformLines.concat(this._fragmentShaderParts.varyingLines,n.fragmentLines,i.fragmentLines,this._fragmentShaderParts.shaderLines).join(` +`),a=new He({defines:this._fragmentShaderParts.defineLines,sources:[s]});return Jt.fromCache({context:e,vertexShaderSource:r,fragmentShaderSource:a,attributeLocations:this._attributeLocations})};cc.prototype.clone=function(){return Ye(this,!0)};function twe(e){let t=[],n=[],i,o=e._vertexShaderParts.structIds,r,s,a;for(i=0;i<o.length;i++)r=o[i],s=e._structs[r],a=s.generateGlslLines(),t.push.apply(t,a);for(o=e._fragmentShaderParts.structIds,i=0;i<o.length;i++)r=o[i],s=e._structs[r],a=s.generateGlslLines(),n.push.apply(n,a);return{vertexLines:t,fragmentLines:n}}function nwe(e){switch(e){case"mat2":return 2;case"mat3":return 3;case"mat4":return 4;default:return 1}}function iwe(e){let t=[],n=[],i,o=e._vertexShaderParts.functionIds,r,s,a;for(i=0;i<o.length;i++)r=o[i],s=e._functions[r],a=s.generateGlslLines(),t.push.apply(t,a);for(o=e._fragmentShaderParts.functionIds,i=0;i<o.length;i++)r=o[i],s=e._functions[r],a=s.generateGlslLines(),n.push.apply(n,a);return{vertexLines:t,fragmentLines:n}}var Wx=cc;function hs(e,t,n,i){let o=hs._verifyAttributes(t);n=y(n,0);let r=[],s={},a,c,u=o.length;for(let d=0;d<u;++d){let p=o[d];if(p.vertexBuffer){r.push(p);continue}c=p.usage,a=s[c],l(a)||(a=s[c]=[]),a.push(p)}function f(d,p){return X.getSizeInBytes(p.componentDatatype)-X.getSizeInBytes(d.componentDatatype)}this._allBuffers=[];for(c in s)if(s.hasOwnProperty(c)){a=s[c],a.sort(f);let d=hs._vertexSizeInBytes(a),p=a[0].usage,g={vertexSizeInBytes:d,vertexBuffer:void 0,usage:p,needsCommit:!1,arrayBuffer:void 0,arrayViews:hs._createArrayViews(a,d)};this._allBuffers.push(g)}this._size=0,this._instanced=y(i,!1),this._precreated=r,this._context=e,this.writers=void 0,this.va=void 0,this.resize(n)}hs._verifyAttributes=function(e){let t=[];for(let i=0;i<e.length;++i){let o=e[i],r={index:y(o.index,i),enabled:y(o.enabled,!0),componentsPerAttribute:o.componentsPerAttribute,componentDatatype:y(o.componentDatatype,X.FLOAT),normalize:y(o.normalize,!1),vertexBuffer:o.vertexBuffer,usage:y(o.usage,Fe.STATIC_DRAW)};t.push(r)}let n=new Array(t.length);for(let i=0;i<t.length;++i){let r=t[i].index;n[r]=!0}return t};hs._vertexSizeInBytes=function(e){let t=0,n=e.length;for(let s=0;s<n;++s){let a=e[s];t+=a.componentsPerAttribute*X.getSizeInBytes(a.componentDatatype)}let i=n>0?X.getSizeInBytes(e[0].componentDatatype):0,o=i>0?t%i:0,r=o===0?0:i-o;return t+=r,t};hs._createArrayViews=function(e,t){let n=[],i=0,o=e.length;for(let r=0;r<o;++r){let s=e[r],a=s.componentDatatype;n.push({index:s.index,enabled:s.enabled,componentsPerAttribute:s.componentsPerAttribute,componentDatatype:a,normalize:s.normalize,offsetInBytes:i,vertexSizeInComponentType:t/X.getSizeInBytes(a),view:void 0}),i+=s.componentsPerAttribute*X.getSizeInBytes(a)}return n};hs.prototype.resize=function(e){this._size=e;let t=this._allBuffers;this.writers=[];for(let n=0,i=t.length;n<i;++n){let o=t[n];hs._resize(o,this._size),hs._appendWriters(this.writers,o)}VG(this)};hs._resize=function(e,t){if(e.vertexSizeInBytes>0){let n=new ArrayBuffer(t*e.vertexSizeInBytes);if(l(e.arrayBuffer)){let r=new Uint8Array(n),s=new Uint8Array(e.arrayBuffer),a=s.length;for(let c=0;c<a;++c)r[c]=s[c]}let i=e.arrayViews,o=i.length;for(let r=0;r<o;++r){let s=i[r];s.view=X.createArrayBufferView(s.componentDatatype,n,s.offsetInBytes)}e.arrayBuffer=n}};var owe=[function(e,t,n){return function(i,o){t[i*n]=o,e.needsCommit=!0}},function(e,t,n){return function(i,o,r){let s=i*n;t[s]=o,t[s+1]=r,e.needsCommit=!0}},function(e,t,n){return function(i,o,r,s){let a=i*n;t[a]=o,t[a+1]=r,t[a+2]=s,e.needsCommit=!0}},function(e,t,n){return function(i,o,r,s,a){let c=i*n;t[c]=o,t[c+1]=r,t[c+2]=s,t[c+3]=a,e.needsCommit=!0}}];hs._appendWriters=function(e,t){let n=t.arrayViews,i=n.length;for(let o=0;o<i;++o){let r=n[o];e[r.index]=owe[r.componentsPerAttribute-1](t,r.view,r.vertexSizeInComponentType)}};hs.prototype.commit=function(e){let t=!1,n=this._allBuffers,i,o,r;for(o=0,r=n.length;o<r;++o)i=n[o],t=rwe(this,i)||t;if(t||!l(this.va)){VG(this);let s=this.va=[],a=P.SIXTY_FOUR_KILOBYTES-4,c=l(e)&&!this._instanced?Math.ceil(this._size/a):1;for(let u=0;u<c;++u){let f=[];for(o=0,r=n.length;o<r;++o){i=n[o];let d=u*(i.vertexSizeInBytes*a);hs._appendAttributes(f,i,d,this._instanced)}f=f.concat(this._precreated),s.push({va:new ri({context:this._context,attributes:f,indexBuffer:e}),indicesCount:1.5*(u!==c-1?a:this._size%a)})}}};function rwe(e,t){if(t.needsCommit&&t.vertexSizeInBytes>0){t.needsCommit=!1;let n=t.vertexBuffer,i=e._size*t.vertexSizeInBytes,o=l(n);if(!o||n.sizeInBytes<i)return o&&n.destroy(),t.vertexBuffer=mt.createVertexBuffer({context:e._context,typedArray:t.arrayBuffer,usage:t.usage}),t.vertexBuffer.vertexArrayDestroyable=!1,!0;t.vertexBuffer.copyFromArrayView(t.arrayBuffer)}return!1}hs._appendAttributes=function(e,t,n,i){let o=t.arrayViews,r=o.length;for(let s=0;s<r;++s){let a=o[s];e.push({index:a.index,enabled:a.enabled,componentsPerAttribute:a.componentsPerAttribute,componentDatatype:a.componentDatatype,normalize:a.normalize,vertexBuffer:t.vertexBuffer,offsetInBytes:n+a.offsetInBytes,strideInBytes:t.vertexSizeInBytes,instanceDivisor:i?1:0})}};hs.prototype.subCommit=function(e,t){let n=this._allBuffers;for(let i=0,o=n.length;i<o;++i)swe(n[i],e,t)};function swe(e,t,n){if(e.needsCommit&&e.vertexSizeInBytes>0){let i=e.vertexSizeInBytes*t,o=e.vertexSizeInBytes*n;e.vertexBuffer.copyFromArrayView(new Uint8Array(e.arrayBuffer,i,o),i)}}hs.prototype.endSubCommits=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t)e[t].needsCommit=!1};function VG(e){let t=e.va;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].va.destroy();e.va=void 0}hs.prototype.isDestroyed=function(){return!1};hs.prototype.destroy=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t){let i=e[t];i.vertexBuffer=i.vertexBuffer&&i.vertexBuffer.destroy()}return VG(this),ue(this)};var p_=hs;function awe(e,t,n){let i={flipY:!0,skipColorSpaceConversion:n,preferImageBitmap:!0},o=[we.createIfNeeded(t.positiveX).fetchImage(i),we.createIfNeeded(t.negativeX).fetchImage(i),we.createIfNeeded(t.positiveY).fetchImage(i),we.createIfNeeded(t.negativeY).fetchImage(i),we.createIfNeeded(t.positiveZ).fetchImage(i),we.createIfNeeded(t.negativeZ).fetchImage(i)];return Promise.all(o).then(function(r){return new sc({context:e,source:{positiveX:r[0],negativeX:r[1],positiveY:r[2],negativeY:r[3],positiveZ:r[4],negativeZ:r[5]}})})}var EM=awe;function __(e){this._value=void 0,this._hasClone=!1,this._hasEquals=!1,this._definitionChanged=new ge,this.setValue(e)}Object.defineProperties(__.prototype,{isConstant:{value:!0},definitionChanged:{get:function(){return this._definitionChanged}}});__.prototype.getValue=function(e,t){return this._hasClone?this._value.clone(t):this._value};__.prototype.setValue=function(e){let t=this._value;if(t!==e){let n=l(e),i=n&&typeof e.clone=="function",o=n&&typeof e.equals=="function";(!o||!e.equals(t))&&(this._hasClone=i,this._hasEquals=o,this._value=i?e.clone(this._value):e,this._definitionChanged.raiseEvent(this))}};__.prototype.equals=function(e){return this===e||e instanceof __&&(!this._hasEquals&&this._value===e._value||this._hasEquals&&this._value.equals(e._value))};__.prototype.valueOf=function(){return this._value};__.prototype.toString=function(){return String(this._value)};var $n=__;function cwe(e,t,n,i,o){return{configurable:i,get:function(){return this[t]},set:function(r){let s=this[t],a=this[n];l(a)&&(a(),this[n]=void 0),r!==void 0&&(!l(r)||!l(r.getValue))&&l(o)&&(r=o(r)),s!==r&&(this[t]=r,this._definitionChanged.raiseEvent(this,e,r,s)),l(r)&&l(r.definitionChanged)&&(this[n]=r.definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this,e,r,r)},this))}}}function lwe(e){return new $n(e)}function uwe(e,t,n){return cwe(e,`_${e.toString()}`,`_${e.toString()}Subscription`,y(t,!1),y(n,lwe))}var ce=uwe;function oS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._image=void 0,this._imageSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._alignedAxis=void 0,this._alignedAxisSubscription=void 0,this._sizeInMeters=void 0,this._sizeInMetersSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._imageSubRegion=void 0,this._imageSubRegionSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(oS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),image:ce("image"),scale:ce("scale"),pixelOffset:ce("pixelOffset"),eyeOffset:ce("eyeOffset"),horizontalOrigin:ce("horizontalOrigin"),verticalOrigin:ce("verticalOrigin"),heightReference:ce("heightReference"),color:ce("color"),rotation:ce("rotation"),alignedAxis:ce("alignedAxis"),sizeInMeters:ce("sizeInMeters"),width:ce("width"),height:ce("height"),scaleByDistance:ce("scaleByDistance"),translucencyByDistance:ce("translucencyByDistance"),pixelOffsetScaleByDistance:ce("pixelOffsetScaleByDistance"),imageSubRegion:ce("imageSubRegion"),distanceDisplayCondition:ce("distanceDisplayCondition"),disableDepthTestDistance:ce("disableDepthTestDistance")});oS.prototype.clone=function(e){return l(e)?(e.show=this._show,e.image=this._image,e.scale=this._scale,e.pixelOffset=this._pixelOffset,e.eyeOffset=this._eyeOffset,e.horizontalOrigin=this._horizontalOrigin,e.verticalOrigin=this._verticalOrigin,e.heightReference=this._heightReference,e.color=this._color,e.rotation=this._rotation,e.alignedAxis=this._alignedAxis,e.sizeInMeters=this._sizeInMeters,e.width=this._width,e.height=this._height,e.scaleByDistance=this._scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.pixelOffsetScaleByDistance=this._pixelOffsetScaleByDistance,e.imageSubRegion=this._imageSubRegion,e.distanceDisplayCondition=this._distanceDisplayCondition,e.disableDepthTestDistance=this._disableDepthTestDistance,e):new oS(this)};oS.prototype.merge=function(e){this.show=y(this._show,e.show),this.image=y(this._image,e.image),this.scale=y(this._scale,e.scale),this.pixelOffset=y(this._pixelOffset,e.pixelOffset),this.eyeOffset=y(this._eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this._horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this._verticalOrigin,e.verticalOrigin),this.heightReference=y(this._heightReference,e.heightReference),this.color=y(this._color,e.color),this.rotation=y(this._rotation,e.rotation),this.alignedAxis=y(this._alignedAxis,e.alignedAxis),this.sizeInMeters=y(this._sizeInMeters,e.sizeInMeters),this.width=y(this._width,e.width),this.height=y(this._height,e.height),this.scaleByDistance=y(this._scaleByDistance,e.scaleByDistance),this.translucencyByDistance=y(this._translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this._pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.imageSubRegion=y(this._imageSubRegion,e.imageSubRegion),this.distanceDisplayCondition=y(this._distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this._disableDepthTestDistance,e.disableDepthTestDistance)};var lc=oS;function Zy(){this._array=[],this._hash={}}Object.defineProperties(Zy.prototype,{length:{get:function(){return this._array.length}},values:{get:function(){return this._array}}});Zy.prototype.contains=function(e){return l(this._hash[e])};Zy.prototype.set=function(e,t){let n=this._hash[e];t!==n&&(this.remove(e),this._hash[e]=t,this._array.push(t))};Zy.prototype.get=function(e){return this._hash[e]};Zy.prototype.remove=function(e){let t=this._hash[e],n=l(t);if(n){let i=this._array;i.splice(i.indexOf(t),1),delete this._hash[e]}return n};Zy.prototype.removeAll=function(){let e=this._array;e.length>0&&(this._hash={},e.length=0)};var Et=Zy;function Dl(e,t){e=y(e,0),this._near=e,t=y(t,Number.MAX_VALUE),this._far=t}Object.defineProperties(Dl.prototype,{near:{get:function(){return this._near},set:function(e){this._near=e}},far:{get:function(){return this._far},set:function(e){this._far=e}}});Dl.packedLength=2;Dl.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n]=e.far,t};Dl.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Dl),n.near=e[t++],n.far=e[t],n};Dl.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.far===t.far};Dl.clone=function(e,t){if(l(e))return l(t)||(t=new Dl),t.near=e.near,t.far=e.far,t};Dl.prototype.clone=function(e){return Dl.clone(this,e)};Dl.prototype.equals=function(e){return Dl.equals(this,e)};var Dt=Dl;function Du(e,t,n,i){this.near=y(e,0),this.nearValue=y(t,0),this.far=y(n,1),this.farValue=y(i,0)}Du.clone=function(e,t){if(l(e))return l(t)?(t.near=e.near,t.nearValue=e.nearValue,t.far=e.far,t.farValue=e.farValue,t):new Du(e.near,e.nearValue,e.far,e.farValue)};Du.packedLength=4;Du.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n++]=e.nearValue,t[n++]=e.far,t[n]=e.farValue,t};Du.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Du),n.near=e[t++],n.nearValue=e[t++],n.far=e[t++],n.farValue=e[t],n};Du.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.nearValue===t.nearValue&&e.far===t.far&&e.farValue===t.farValue};Du.prototype.clone=function(e){return Du.clone(this,e)};Du.prototype.equals=function(e){return Du.equals(this,e)};var Lt=Du;var fwe={NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2},qe=Object.freeze(fwe);var dwe={CENTER:0,LEFT:1,RIGHT:-1},_i=Object.freeze(dwe);var mwe={CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1},Rn=Object.freeze(mwe);var hwe={DONE:0,PENDING:1,FAILED:2},ut=Object.freeze(hwe);function Nf(){fe.throwInstantiationError()}Object.defineProperties(Nf.prototype,{isConstant:{get:fe.throwInstantiationError},definitionChanged:{get:fe.throwInstantiationError}});Nf.prototype.getValue=fe.throwInstantiationError;Nf.prototype.equals=fe.throwInstantiationError;Nf.equals=function(e,t){return e===t||l(e)&&e.equals(t)};Nf.arrayEquals=function(e,t){if(e===t)return!0;if(!l(e)||!l(t)||e.length!==t.length)return!1;let n=e.length;for(let i=0;i<n;i++)if(!Nf.equals(e[i],t[i]))return!1;return!0};Nf.isConstant=function(e){return!l(e)||e.isConstant};Nf.getValueOrUndefined=function(e,t,n){return l(e)?e.getValue(t,n):void 0};Nf.getValueOrDefault=function(e,t,n,i){return l(e)?y(e.getValue(t,i),n):n};Nf.getValueOrClonedDefault=function(e,t,n,i){let o;return l(e)&&(o=e.getValue(t,i)),l(o)||(o=n.clone(o)),o};var j=Nf;var pwe=z.WHITE,_we=m.ZERO,gwe=qe.NONE,ywe=H.ZERO,Awe=1,xwe=0,Cwe=m.ZERO,Twe=_i.CENTER,Ewe=Rn.CENTER,bwe=!1,Swe=new m,wwe=new z,vwe=new m,Dwe=new H,Iwe=new Lt,Pwe=new Lt,Owe=new Lt,Mwe=new Ke,Rwe=new Dt;function uZ(e){this.entity=e,this.billboard=void 0,this.textureValue=void 0}function g_(e,t){t.collectionChanged.addEventListener(g_.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}g_.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._billboard,c,u=r.billboard,f=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),d;if(f&&(d=j.getValueOrUndefined(s._position,e,Swe),c=j.getValueOrUndefined(a._image,e),f=l(d)&&l(c)),!f){kG(r,s,n);continue}j.isConstant(s._position)||(n._clusterDirty=!0),l(u)||(u=n.getBillboard(s),u.id=s,u.image=void 0,r.billboard=u),u.show=f,(!l(u.image)||r.textureValue!==c)&&(u.image=c,r.textureValue=c),u.position=d,u.color=j.getValueOrDefault(a._color,e,pwe,wwe),u.eyeOffset=j.getValueOrDefault(a._eyeOffset,e,_we,vwe),u.heightReference=j.getValueOrDefault(a._heightReference,e,gwe),u.pixelOffset=j.getValueOrDefault(a._pixelOffset,e,ywe,Dwe),u.scale=j.getValueOrDefault(a._scale,e,Awe),u.rotation=j.getValueOrDefault(a._rotation,e,xwe),u.alignedAxis=j.getValueOrDefault(a._alignedAxis,e,Cwe),u.horizontalOrigin=j.getValueOrDefault(a._horizontalOrigin,e,Twe),u.verticalOrigin=j.getValueOrDefault(a._verticalOrigin,e,Ewe),u.width=j.getValueOrUndefined(a._width,e),u.height=j.getValueOrUndefined(a._height,e),u.scaleByDistance=j.getValueOrUndefined(a._scaleByDistance,e,Iwe),u.translucencyByDistance=j.getValueOrUndefined(a._translucencyByDistance,e,Pwe),u.pixelOffsetScaleByDistance=j.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,Owe),u.sizeInMeters=j.getValueOrDefault(a._sizeInMeters,e,bwe),u.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e,Rwe),u.disableDepthTestDistance=j.getValueOrUndefined(a._disableDepthTestDistance,e);let p=j.getValueOrUndefined(a._imageSubRegion,e,Mwe);l(p)&&u.setImageSubRegion(u._imageId,p)}return!0};g_.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!l(n.billboard))return ut.FAILED;let i=n.billboard;if(i.heightReference===qe.NONE)t.center=m.clone(i.position,t.center);else{if(!l(i._clampedPosition))return ut.PENDING;t.center=m.clone(i._clampedPosition,t.center)}return t.radius=0,ut.DONE};g_.prototype.isDestroyed=function(){return!1};g_.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(g_.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeBillboard(e[t]);return ue(this)};g_.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._billboard)&&l(r._position)&&s.set(r.id,new uZ(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._billboard)&&l(r._position)?s.contains(r.id)||s.set(r.id,new uZ(r)):(kG(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],kG(s.get(r.id),r,a),s.remove(r.id)};function kG(e,t,n){l(e)&&(e.billboard=void 0,n.removeBillboard(t))}var bM=g_;function Bwe(e,t){this.start=y(e,0),this.stop=y(t,0)}var Hc=Bwe;function pn(e,t){this.center=m.clone(y(e,m.ZERO)),this.radius=y(t,0)}var GG=new m,WG=new m,jG=new m,YG=new m,qG=new m,XG=new m,KG=new m,Ms=new m,JG=new m,ZG=new m,QG=new m,$G=new m,Lwe=4/3*P.PI;pn.fromPoints=function(e,t){if(l(t)||(t=new pn),!l(e)||e.length===0)return t.center=m.clone(m.ZERO,t.center),t.radius=0,t;let n=m.clone(e[0],KG),i=m.clone(n,GG),o=m.clone(n,WG),r=m.clone(n,jG),s=m.clone(n,YG),a=m.clone(n,qG),c=m.clone(n,XG),u=e.length,f;for(f=1;f<u;f++){m.clone(e[f],n);let M=n.x,L=n.y,N=n.z;M<i.x&&m.clone(n,i),M>s.x&&m.clone(n,s),L<o.y&&m.clone(n,o),L>a.y&&m.clone(n,a),N<r.z&&m.clone(n,r),N>c.z&&m.clone(n,c)}let d=m.magnitudeSquared(m.subtract(s,i,Ms)),p=m.magnitudeSquared(m.subtract(a,o,Ms)),g=m.magnitudeSquared(m.subtract(c,r,Ms)),h=i,A=s,x=d;p>x&&(x=p,h=o,A=a),g>x&&(x=g,h=r,A=c);let C=JG;C.x=(h.x+A.x)*.5,C.y=(h.y+A.y)*.5,C.z=(h.z+A.z)*.5;let T=m.magnitudeSquared(m.subtract(A,C,Ms)),E=Math.sqrt(T),S=ZG;S.x=i.x,S.y=o.y,S.z=r.z;let v=QG;v.x=s.x,v.y=a.y,v.z=c.z;let D=m.midpoint(S,v,$G),O=0;for(f=0;f<u;f++){m.clone(e[f],n);let M=m.magnitude(m.subtract(n,D,Ms));M>O&&(O=M);let L=m.magnitudeSquared(m.subtract(n,C,Ms));if(L>T){let N=Math.sqrt(L);E=(E+N)*.5,T=E*E;let _=N-E;C.x=(E*C.x+_*n.x)/N,C.y=(E*C.y+_*n.y)/N,C.z=(E*C.z+_*n.z)/N}}return E<O?(m.clone(C,t.center),t.radius=E):(m.clone(D,t.center),t.radius=O),t};var Nwe=new Di,Fwe=new m,Uwe=new m,zG=new he,HG=new he;pn.fromRectangle2D=function(e,t,n){return pn.fromRectangleWithHeights2D(e,t,0,0,n)};pn.fromRectangleWithHeights2D=function(e,t,n,i,o){if(l(o)||(o=new pn),!l(e))return o.center=m.clone(m.ZERO,o.center),o.radius=0,o;t=y(t,Nwe),le.southwest(e,zG),zG.height=n,le.northeast(e,HG),HG.height=i;let r=t.project(zG,Fwe),s=t.project(HG,Uwe),a=s.x-r.x,c=s.y-r.y,u=s.z-r.z;o.radius=Math.sqrt(a*a+c*c+u*u)*.5;let f=o.center;return f.x=r.x+a*.5,f.y=r.y+c*.5,f.z=r.z+u*.5,o};var Vwe=[];pn.fromRectangle3D=function(e,t,n,i){if(t=y(t,oe.WGS84),n=y(n,0),l(i)||(i=new pn),!l(e))return i.center=m.clone(m.ZERO,i.center),i.radius=0,i;let o=le.subsample(e,t,n,Vwe);return pn.fromPoints(o,i)};pn.fromVertices=function(e,t,n,i){if(l(i)||(i=new pn),!l(e)||e.length===0)return i.center=m.clone(m.ZERO,i.center),i.radius=0,i;t=y(t,m.ZERO),n=y(n,3);let o=KG;o.x=e[0]+t.x,o.y=e[1]+t.y,o.z=e[2]+t.z;let r=m.clone(o,GG),s=m.clone(o,WG),a=m.clone(o,jG),c=m.clone(o,YG),u=m.clone(o,qG),f=m.clone(o,XG),d=e.length,p;for(p=0;p<d;p+=n){let N=e[p]+t.x,_=e[p+1]+t.y,b=e[p+2]+t.z;o.x=N,o.y=_,o.z=b,N<r.x&&m.clone(o,r),N>c.x&&m.clone(o,c),_<s.y&&m.clone(o,s),_>u.y&&m.clone(o,u),b<a.z&&m.clone(o,a),b>f.z&&m.clone(o,f)}let g=m.magnitudeSquared(m.subtract(c,r,Ms)),h=m.magnitudeSquared(m.subtract(u,s,Ms)),A=m.magnitudeSquared(m.subtract(f,a,Ms)),x=r,C=c,T=g;h>T&&(T=h,x=s,C=u),A>T&&(T=A,x=a,C=f);let E=JG;E.x=(x.x+C.x)*.5,E.y=(x.y+C.y)*.5,E.z=(x.z+C.z)*.5;let S=m.magnitudeSquared(m.subtract(C,E,Ms)),v=Math.sqrt(S),D=ZG;D.x=r.x,D.y=s.y,D.z=a.z;let O=QG;O.x=c.x,O.y=u.y,O.z=f.z;let M=m.midpoint(D,O,$G),L=0;for(p=0;p<d;p+=n){o.x=e[p]+t.x,o.y=e[p+1]+t.y,o.z=e[p+2]+t.z;let N=m.magnitude(m.subtract(o,M,Ms));N>L&&(L=N);let _=m.magnitudeSquared(m.subtract(o,E,Ms));if(_>S){let b=Math.sqrt(_);v=(v+b)*.5,S=v*v;let w=b-v;E.x=(v*E.x+w*o.x)/b,E.y=(v*E.y+w*o.y)/b,E.z=(v*E.z+w*o.z)/b}}return v<L?(m.clone(E,i.center),i.radius=v):(m.clone(M,i.center),i.radius=L),i};pn.fromEncodedCartesianVertices=function(e,t,n){if(l(n)||(n=new pn),!l(e)||!l(t)||e.length!==t.length||e.length===0)return n.center=m.clone(m.ZERO,n.center),n.radius=0,n;let i=KG;i.x=e[0]+t[0],i.y=e[1]+t[1],i.z=e[2]+t[2];let o=m.clone(i,GG),r=m.clone(i,WG),s=m.clone(i,jG),a=m.clone(i,YG),c=m.clone(i,qG),u=m.clone(i,XG),f=e.length,d;for(d=0;d<f;d+=3){let L=e[d]+t[d],N=e[d+1]+t[d+1],_=e[d+2]+t[d+2];i.x=L,i.y=N,i.z=_,L<o.x&&m.clone(i,o),L>a.x&&m.clone(i,a),N<r.y&&m.clone(i,r),N>c.y&&m.clone(i,c),_<s.z&&m.clone(i,s),_>u.z&&m.clone(i,u)}let p=m.magnitudeSquared(m.subtract(a,o,Ms)),g=m.magnitudeSquared(m.subtract(c,r,Ms)),h=m.magnitudeSquared(m.subtract(u,s,Ms)),A=o,x=a,C=p;g>C&&(C=g,A=r,x=c),h>C&&(C=h,A=s,x=u);let T=JG;T.x=(A.x+x.x)*.5,T.y=(A.y+x.y)*.5,T.z=(A.z+x.z)*.5;let E=m.magnitudeSquared(m.subtract(x,T,Ms)),S=Math.sqrt(E),v=ZG;v.x=o.x,v.y=r.y,v.z=s.z;let D=QG;D.x=a.x,D.y=c.y,D.z=u.z;let O=m.midpoint(v,D,$G),M=0;for(d=0;d<f;d+=3){i.x=e[d]+t[d],i.y=e[d+1]+t[d+1],i.z=e[d+2]+t[d+2];let L=m.magnitude(m.subtract(i,O,Ms));L>M&&(M=L);let N=m.magnitudeSquared(m.subtract(i,T,Ms));if(N>E){let _=Math.sqrt(N);S=(S+_)*.5,E=S*S;let b=_-S;T.x=(S*T.x+b*i.x)/_,T.y=(S*T.y+b*i.y)/_,T.z=(S*T.z+b*i.z)/_}}return S<M?(m.clone(T,n.center),n.radius=S):(m.clone(O,n.center),n.radius=M),n};pn.fromCornerPoints=function(e,t,n){l(n)||(n=new pn);let i=m.midpoint(e,t,n.center);return n.radius=m.distance(i,t),n};pn.fromEllipsoid=function(e,t){return l(t)||(t=new pn),m.clone(m.ZERO,t.center),t.radius=e.maximumRadius,t};var kwe=new m;pn.fromBoundingSpheres=function(e,t){if(l(t)||(t=new pn),!l(e)||e.length===0)return t.center=m.clone(m.ZERO,t.center),t.radius=0,t;let n=e.length;if(n===1)return pn.clone(e[0],t);if(n===2)return pn.union(e[0],e[1],t);let i=[],o;for(o=0;o<n;o++)i.push(e[o].center);t=pn.fromPoints(i,t);let r=t.center,s=t.radius;for(o=0;o<n;o++){let a=e[o];s=Math.max(s,m.distance(r,a.center,kwe)+a.radius)}return t.radius=s,t};var zwe=new m,Hwe=new m,Gwe=new m;pn.fromOrientedBoundingBox=function(e,t){l(t)||(t=new pn);let n=e.halfAxes,i=Z.getColumn(n,0,zwe),o=Z.getColumn(n,1,Hwe),r=Z.getColumn(n,2,Gwe);return m.add(i,o,i),m.add(i,r,i),t.center=m.clone(e.center,t.center),t.radius=m.magnitude(i),t};var Wwe=new m,jwe=new m;pn.fromTransformation=function(e,t){l(t)||(t=new pn);let n=B.getTranslation(e,Wwe),i=B.getScale(e,jwe),o=.5*m.magnitude(i);return t.center=m.clone(n,t.center),t.radius=o,t};pn.clone=function(e,t){if(l(e))return l(t)?(t.center=m.clone(e.center,t.center),t.radius=e.radius,t):new pn(e.center,e.radius)};pn.packedLength=4;pn.pack=function(e,t,n){n=y(n,0);let i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t};pn.unpack=function(e,t,n){t=y(t,0),l(n)||(n=new pn);let i=n.center;return i.x=e[t++],i.y=e[t++],i.z=e[t++],n.radius=e[t],n};var Ywe=new m,qwe=new m;pn.union=function(e,t,n){l(n)||(n=new pn);let i=e.center,o=e.radius,r=t.center,s=t.radius,a=m.subtract(r,i,Ywe),c=m.magnitude(a);if(o>=c+s)return e.clone(n),n;if(s>=c+o)return t.clone(n),n;let u=(o+c+s)*.5,f=m.multiplyByScalar(a,(-o+u)/c,qwe);return m.add(f,i,f),m.clone(f,n.center),n.radius=u,n};var Xwe=new m;pn.expand=function(e,t,n){n=pn.clone(e,n);let i=m.magnitude(m.subtract(t,n.center,Xwe));return i>n.radius&&(n.radius=i),n};pn.intersectPlane=function(e,t){let n=e.center,i=e.radius,o=t.normal,r=m.dot(o,n)+t.distance;return r<-i?$t.OUTSIDE:r<i?$t.INTERSECTING:$t.INSIDE};pn.transform=function(e,t,n){return l(n)||(n=new pn),n.center=B.multiplyByPoint(t,e.center,n.center),n.radius=B.getMaximumScale(t)*e.radius,n};var Kwe=new m;pn.distanceSquaredTo=function(e,t){let n=m.subtract(e.center,t,Kwe),i=m.magnitude(n)-e.radius;return i<=0?0:i*i};pn.transformWithoutScale=function(e,t,n){return l(n)||(n=new pn),n.center=B.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var Jwe=new m;pn.computePlaneDistances=function(e,t,n,i){l(i)||(i=new Hc);let o=m.subtract(e.center,t,Jwe),r=m.dot(n,o);return i.start=r-e.radius,i.stop=r+e.radius,i};var fZ=new m,Zwe=new m,Qwe=new m,$we=new m,eve=new m,tve=new he,dZ=new Array(8);for(let e=0;e<8;++e)dZ[e]=new m;var nve=new Di;pn.projectTo2D=function(e,t,n){t=y(t,nve);let i=t.ellipsoid,o=e.center,r=e.radius,s;m.equals(o,m.ZERO)?s=m.clone(m.UNIT_X,fZ):s=i.geodeticSurfaceNormal(o,fZ);let a=m.cross(m.UNIT_Z,s,Zwe);m.normalize(a,a);let c=m.cross(s,a,Qwe);m.normalize(c,c),m.multiplyByScalar(s,r,s),m.multiplyByScalar(c,r,c),m.multiplyByScalar(a,r,a);let u=m.negate(c,eve),f=m.negate(a,$we),d=dZ,p=d[0];m.add(s,c,p),m.add(p,a,p),p=d[1],m.add(s,c,p),m.add(p,f,p),p=d[2],m.add(s,u,p),m.add(p,f,p),p=d[3],m.add(s,u,p),m.add(p,a,p),m.negate(s,s),p=d[4],m.add(s,c,p),m.add(p,a,p),p=d[5],m.add(s,c,p),m.add(p,f,p),p=d[6],m.add(s,u,p),m.add(p,f,p),p=d[7],m.add(s,u,p),m.add(p,a,p);let g=d.length;for(let C=0;C<g;++C){let T=d[C];m.add(o,T,T);let E=i.cartesianToCartographic(T,tve);t.project(E,T)}n=pn.fromPoints(d,n),o=n.center;let h=o.x,A=o.y,x=o.z;return o.x=x,o.y=h,o.z=A,n};pn.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)};pn.equals=function(e,t){return e===t||l(e)&&l(t)&&m.equals(e.center,t.center)&&e.radius===t.radius};pn.prototype.intersectPlane=function(e){return pn.intersectPlane(this,e)};pn.prototype.distanceSquaredTo=function(e){return pn.distanceSquaredTo(this,e)};pn.prototype.computePlaneDistances=function(e,t,n){return pn.computePlaneDistances(this,e,t,n)};pn.prototype.isOccluded=function(e){return pn.isOccluded(this,e)};pn.prototype.equals=function(e){return pn.equals(this,e)};pn.prototype.clone=function(e){return pn.clone(this,e)};pn.prototype.volume=function(){let e=this.radius;return Lwe*e*e*e};var ae=pn;function ive(e){e=y(e,y.EMPTY_OBJECT),this.position=e.position,this.normal=e.normal,this.st=e.st,this.bitangent=e.bitangent,this.tangent=e.tangent,this.color=e.color}var _n=ive;var ove={NONE:0,TOP:1,ALL:2},rn=Object.freeze(ove);function Gr(e){e=y(e,y.EMPTY_OBJECT),this.position=y(e.position,!1),this.normal=y(e.normal,!1),this.st=y(e.st,!1),this.bitangent=y(e.bitangent,!1),this.tangent=y(e.tangent,!1),this.color=y(e.color,!1)}Gr.POSITION_ONLY=Object.freeze(new Gr({position:!0}));Gr.POSITION_AND_NORMAL=Object.freeze(new Gr({position:!0,normal:!0}));Gr.POSITION_NORMAL_AND_ST=Object.freeze(new Gr({position:!0,normal:!0,st:!0}));Gr.POSITION_AND_ST=Object.freeze(new Gr({position:!0,st:!0}));Gr.POSITION_AND_COLOR=Object.freeze(new Gr({position:!0,color:!0}));Gr.ALL=Object.freeze(new Gr({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0}));Gr.DEFAULT=Gr.POSITION_NORMAL_AND_ST;Gr.packedLength=6;Gr.pack=function(e,t,n){return n=y(n,0),t[n++]=e.position?1:0,t[n++]=e.normal?1:0,t[n++]=e.st?1:0,t[n++]=e.tangent?1:0,t[n++]=e.bitangent?1:0,t[n]=e.color?1:0,t};Gr.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Gr),n.position=e[t++]===1,n.normal=e[t++]===1,n.st=e[t++]===1,n.tangent=e[t++]===1,n.bitangent=e[t++]===1,n.color=e[t]===1,n};Gr.clone=function(e,t){if(l(e))return l(t)||(t=new Gr),t.position=e.position,t.normal=e.normal,t.st=e.st,t.tangent=e.tangent,t.bitangent=e.bitangent,t.color=e.color,t};var Pe=Gr;var rve=new m;function Il(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum,i=y(e.vertexFormat,Pe.DEFAULT);this._minimum=m.clone(t),this._maximum=m.clone(n),this._vertexFormat=i,this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxGeometry"}Il.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=m.multiplyByScalar(t,.5,new m);return new Il({minimum:m.negate(n,new m),maximum:n,vertexFormat:e.vertexFormat,offsetAttribute:e.offsetAttribute})};Il.fromAxisAlignedBoundingBox=function(e){return new Il({minimum:e.minimum,maximum:e.maximum})};Il.packedLength=2*m.packedLength+Pe.packedLength+1;Il.pack=function(e,t,n){return n=y(n,0),m.pack(e._minimum,t,n),m.pack(e._maximum,t,n+m.packedLength),Pe.pack(e._vertexFormat,t,n+2*m.packedLength),t[n+2*m.packedLength+Pe.packedLength]=y(e._offsetAttribute,-1),t};var hZ=new m,pZ=new m,_Z=new Pe,mZ={minimum:hZ,maximum:pZ,vertexFormat:_Z,offsetAttribute:void 0};Il.unpack=function(e,t,n){t=y(t,0);let i=m.unpack(e,t,hZ),o=m.unpack(e,t+m.packedLength,pZ),r=Pe.unpack(e,t+2*m.packedLength,_Z),s=e[t+2*m.packedLength+Pe.packedLength];return l(n)?(n._minimum=m.clone(i,n._minimum),n._maximum=m.clone(o,n._maximum),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._offsetAttribute=s===-1?void 0:s,n):(mZ.offsetAttribute=s===-1?void 0:s,new Il(mZ))};Il.createGeometry=function(e){let t=e._minimum,n=e._maximum,i=e._vertexFormat;if(m.equals(t,n))return;let o=new _n,r,s;if(i.position&&(i.st||i.normal||i.tangent||i.bitangent)){if(i.position&&(s=new Float64Array(6*4*3),s[0]=t.x,s[1]=t.y,s[2]=n.z,s[3]=n.x,s[4]=t.y,s[5]=n.z,s[6]=n.x,s[7]=n.y,s[8]=n.z,s[9]=t.x,s[10]=n.y,s[11]=n.z,s[12]=t.x,s[13]=t.y,s[14]=t.z,s[15]=n.x,s[16]=t.y,s[17]=t.z,s[18]=n.x,s[19]=n.y,s[20]=t.z,s[21]=t.x,s[22]=n.y,s[23]=t.z,s[24]=n.x,s[25]=t.y,s[26]=t.z,s[27]=n.x,s[28]=n.y,s[29]=t.z,s[30]=n.x,s[31]=n.y,s[32]=n.z,s[33]=n.x,s[34]=t.y,s[35]=n.z,s[36]=t.x,s[37]=t.y,s[38]=t.z,s[39]=t.x,s[40]=n.y,s[41]=t.z,s[42]=t.x,s[43]=n.y,s[44]=n.z,s[45]=t.x,s[46]=t.y,s[47]=n.z,s[48]=t.x,s[49]=n.y,s[50]=t.z,s[51]=n.x,s[52]=n.y,s[53]=t.z,s[54]=n.x,s[55]=n.y,s[56]=n.z,s[57]=t.x,s[58]=n.y,s[59]=n.z,s[60]=t.x,s[61]=t.y,s[62]=t.z,s[63]=n.x,s[64]=t.y,s[65]=t.z,s[66]=n.x,s[67]=t.y,s[68]=n.z,s[69]=t.x,s[70]=t.y,s[71]=n.z,o.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})),i.normal){let u=new Float32Array(72);u[0]=0,u[1]=0,u[2]=1,u[3]=0,u[4]=0,u[5]=1,u[6]=0,u[7]=0,u[8]=1,u[9]=0,u[10]=0,u[11]=1,u[12]=0,u[13]=0,u[14]=-1,u[15]=0,u[16]=0,u[17]=-1,u[18]=0,u[19]=0,u[20]=-1,u[21]=0,u[22]=0,u[23]=-1,u[24]=1,u[25]=0,u[26]=0,u[27]=1,u[28]=0,u[29]=0,u[30]=1,u[31]=0,u[32]=0,u[33]=1,u[34]=0,u[35]=0,u[36]=-1,u[37]=0,u[38]=0,u[39]=-1,u[40]=0,u[41]=0,u[42]=-1,u[43]=0,u[44]=0,u[45]=-1,u[46]=0,u[47]=0,u[48]=0,u[49]=1,u[50]=0,u[51]=0,u[52]=1,u[53]=0,u[54]=0,u[55]=1,u[56]=0,u[57]=0,u[58]=1,u[59]=0,u[60]=0,u[61]=-1,u[62]=0,u[63]=0,u[64]=-1,u[65]=0,u[66]=0,u[67]=-1,u[68]=0,u[69]=0,u[70]=-1,u[71]=0,o.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}if(i.st){let u=new Float32Array(48);u[0]=0,u[1]=0,u[2]=1,u[3]=0,u[4]=1,u[5]=1,u[6]=0,u[7]=1,u[8]=1,u[9]=0,u[10]=0,u[11]=0,u[12]=0,u[13]=1,u[14]=1,u[15]=1,u[16]=0,u[17]=0,u[18]=1,u[19]=0,u[20]=1,u[21]=1,u[22]=0,u[23]=1,u[24]=1,u[25]=0,u[26]=0,u[27]=0,u[28]=0,u[29]=1,u[30]=1,u[31]=1,u[32]=1,u[33]=0,u[34]=0,u[35]=0,u[36]=0,u[37]=1,u[38]=1,u[39]=1,u[40]=0,u[41]=0,u[42]=1,u[43]=0,u[44]=1,u[45]=1,u[46]=0,u[47]=1,o.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:u})}if(i.tangent){let u=new Float32Array(72);u[0]=1,u[1]=0,u[2]=0,u[3]=1,u[4]=0,u[5]=0,u[6]=1,u[7]=0,u[8]=0,u[9]=1,u[10]=0,u[11]=0,u[12]=-1,u[13]=0,u[14]=0,u[15]=-1,u[16]=0,u[17]=0,u[18]=-1,u[19]=0,u[20]=0,u[21]=-1,u[22]=0,u[23]=0,u[24]=0,u[25]=1,u[26]=0,u[27]=0,u[28]=1,u[29]=0,u[30]=0,u[31]=1,u[32]=0,u[33]=0,u[34]=1,u[35]=0,u[36]=0,u[37]=-1,u[38]=0,u[39]=0,u[40]=-1,u[41]=0,u[42]=0,u[43]=-1,u[44]=0,u[45]=0,u[46]=-1,u[47]=0,u[48]=-1,u[49]=0,u[50]=0,u[51]=-1,u[52]=0,u[53]=0,u[54]=-1,u[55]=0,u[56]=0,u[57]=-1,u[58]=0,u[59]=0,u[60]=1,u[61]=0,u[62]=0,u[63]=1,u[64]=0,u[65]=0,u[66]=1,u[67]=0,u[68]=0,u[69]=1,u[70]=0,u[71]=0,o.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}if(i.bitangent){let u=new Float32Array(72);u[0]=0,u[1]=1,u[2]=0,u[3]=0,u[4]=1,u[5]=0,u[6]=0,u[7]=1,u[8]=0,u[9]=0,u[10]=1,u[11]=0,u[12]=0,u[13]=1,u[14]=0,u[15]=0,u[16]=1,u[17]=0,u[18]=0,u[19]=1,u[20]=0,u[21]=0,u[22]=1,u[23]=0,u[24]=0,u[25]=0,u[26]=1,u[27]=0,u[28]=0,u[29]=1,u[30]=0,u[31]=0,u[32]=1,u[33]=0,u[34]=0,u[35]=1,u[36]=0,u[37]=0,u[38]=1,u[39]=0,u[40]=0,u[41]=1,u[42]=0,u[43]=0,u[44]=1,u[45]=0,u[46]=0,u[47]=1,u[48]=0,u[49]=0,u[50]=1,u[51]=0,u[52]=0,u[53]=1,u[54]=0,u[55]=0,u[56]=1,u[57]=0,u[58]=0,u[59]=1,u[60]=0,u[61]=0,u[62]=1,u[63]=0,u[64]=0,u[65]=1,u[66]=0,u[67]=0,u[68]=1,u[69]=0,u[70]=0,u[71]=1,o.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}r=new Uint16Array(6*2*3),r[0]=0,r[1]=1,r[2]=2,r[3]=0,r[4]=2,r[5]=3,r[6]=4+2,r[7]=4+1,r[8]=4+0,r[9]=4+3,r[10]=4+2,r[11]=4+0,r[12]=8+0,r[13]=8+1,r[14]=8+2,r[15]=8+0,r[16]=8+2,r[17]=8+3,r[18]=12+2,r[19]=12+1,r[20]=12+0,r[21]=12+3,r[22]=12+2,r[23]=12+0,r[24]=16+2,r[25]=16+1,r[26]=16+0,r[27]=16+3,r[28]=16+2,r[29]=16+0,r[30]=20+0,r[31]=20+1,r[32]=20+2,r[33]=20+0,r[34]=20+2,r[35]=20+3}else s=new Float64Array(8*3),s[0]=t.x,s[1]=t.y,s[2]=t.z,s[3]=n.x,s[4]=t.y,s[5]=t.z,s[6]=n.x,s[7]=n.y,s[8]=t.z,s[9]=t.x,s[10]=n.y,s[11]=t.z,s[12]=t.x,s[13]=t.y,s[14]=n.z,s[15]=n.x,s[16]=t.y,s[17]=n.z,s[18]=n.x,s[19]=n.y,s[20]=n.z,s[21]=t.x,s[22]=n.y,s[23]=n.z,o.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s}),r=new Uint16Array(6*2*3),r[0]=4,r[1]=5,r[2]=6,r[3]=4,r[4]=6,r[5]=7,r[6]=1,r[7]=0,r[8]=3,r[9]=1,r[10]=3,r[11]=2,r[12]=1,r[13]=6,r[14]=5,r[15]=1,r[16]=2,r[17]=6,r[18]=2,r[19]=3,r[20]=7,r[21]=2,r[22]=7,r[23]=6,r[24]=3,r[25]=0,r[26]=4,r[27]=3,r[28]=4,r[29]=7,r[30]=0,r[31]=1,r[32]=5,r[33]=0,r[34]=5,r[35]=4;let a=m.subtract(n,t,rve),c=m.magnitude(a)*.5;if(l(e._offsetAttribute)){let u=s.length,f=e._offsetAttribute===rn.NONE?0:1,d=new Uint8Array(u/3).fill(f);o.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return new dt({attributes:o,indices:r,primitiveType:Le.TRIANGLES,boundingSphere:new ae(m.ZERO,c),offsetAttribute:e._offsetAttribute})};var e8;Il.getUnitBox=function(){return l(e8)||(e8=Il.createGeometry(Il.fromDimensions({dimensions:new m(1,1,1),vertexFormat:Pe.POSITION_ONLY}))),e8};var Pl=Il;var sve=new m;function nm(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum;this._min=m.clone(t),this._max=m.clone(n),this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxOutlineGeometry"}nm.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=m.multiplyByScalar(t,.5,new m);return new nm({minimum:m.negate(n,new m),maximum:n,offsetAttribute:e.offsetAttribute})};nm.fromAxisAlignedBoundingBox=function(e){return new nm({minimum:e.minimum,maximum:e.maximum})};nm.packedLength=2*m.packedLength+1;nm.pack=function(e,t,n){return n=y(n,0),m.pack(e._min,t,n),m.pack(e._max,t,n+m.packedLength),t[n+m.packedLength*2]=y(e._offsetAttribute,-1),t};var yZ=new m,AZ=new m,gZ={minimum:yZ,maximum:AZ,offsetAttribute:void 0};nm.unpack=function(e,t,n){t=y(t,0);let i=m.unpack(e,t,yZ),o=m.unpack(e,t+m.packedLength,AZ),r=e[t+m.packedLength*2];return l(n)?(n._min=m.clone(i,n._min),n._max=m.clone(o,n._max),n._offsetAttribute=r===-1?void 0:r,n):(gZ.offsetAttribute=r===-1?void 0:r,new nm(gZ))};nm.createGeometry=function(e){let t=e._min,n=e._max;if(m.equals(t,n))return;let i=new _n,o=new Uint16Array(12*2),r=new Float64Array(8*3);r[0]=t.x,r[1]=t.y,r[2]=t.z,r[3]=n.x,r[4]=t.y,r[5]=t.z,r[6]=n.x,r[7]=n.y,r[8]=t.z,r[9]=t.x,r[10]=n.y,r[11]=t.z,r[12]=t.x,r[13]=t.y,r[14]=n.z,r[15]=n.x,r[16]=t.y,r[17]=n.z,r[18]=n.x,r[19]=n.y,r[20]=n.z,r[21]=t.x,r[22]=n.y,r[23]=n.z,i.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:r}),o[0]=4,o[1]=5,o[2]=5,o[3]=6,o[4]=6,o[5]=7,o[6]=7,o[7]=4,o[8]=0,o[9]=1,o[10]=1,o[11]=2,o[12]=2,o[13]=3,o[14]=3,o[15]=0,o[16]=0,o[17]=4,o[18]=1,o[19]=5,o[20]=2,o[21]=6,o[22]=3,o[23]=7;let s=m.subtract(n,t,sve),a=m.magnitude(s)*.5;if(l(e._offsetAttribute)){let c=r.length,u=e._offsetAttribute===rn.NONE?0:1,f=new Uint8Array(c/3).fill(u);i.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}return new dt({attributes:i,indices:o,primitiveType:Le.LINES,boundingSphere:new ae(m.ZERO,a),offsetAttribute:e._offsetAttribute})};var im=nm;function jx(e,t,n,i){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,1),this.value=new Uint8Array([z.floatToByte(e),z.floatToByte(t),z.floatToByte(n),z.floatToByte(i)])}Object.defineProperties(jx.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 4}},normalize:{get:function(){return!0}}});jx.fromColor=function(e){return new jx(e.red,e.green,e.blue,e.alpha)};jx.toValue=function(e,t){return l(t)?e.toBytes(t):new Uint8Array(e.toBytes())};jx.equals=function(e,t){return e===t||l(e)&&l(t)&&e.value[0]===t.value[0]&&e.value[1]===t.value[1]&&e.value[2]===t.value[2]&&e.value[3]===t.value[3]};var Vt=jx;function rS(e,t){e=y(e,0),t=y(t,Number.MAX_VALUE),this.value=new Float32Array([e,t])}Object.defineProperties(rS.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 2}},normalize:{get:function(){return!1}}});rS.fromDistanceDisplayCondition=function(e){return new rS(e.near,e.far)};rS.toValue=function(e,t){return l(t)?(t[0]=e.near,t[1]=e.far,t):new Float32Array([e.near,e.far])};var kn=rS;function ave(e){e=y(e,y.EMPTY_OBJECT),this.geometry=e.geometry,this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=y(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}var Tt=ave;function Fo(e){e=y(e,y.EMPTY_OBJECT),this.start=l(e.start)?ee.clone(e.start):new ee,this.stop=l(e.stop)?ee.clone(e.stop):new ee,this.data=e.data,this.isStartIncluded=y(e.isStartIncluded,!0),this.isStopIncluded=y(e.isStopIncluded,!0)}Object.defineProperties(Fo.prototype,{isEmpty:{get:function(){let e=ee.compare(this.stop,this.start);return e<0||e===0&&(!this.isStartIncluded||!this.isStopIncluded)}}});var Yx={start:void 0,stop:void 0,isStartIncluded:void 0,isStopIncluded:void 0,data:void 0};Fo.fromIso8601=function(e,t){let n=e.iso8601.split("/");if(n.length!==2)throw new fe("options.iso8601 is an invalid ISO 8601 interval.");let i=ee.fromIso8601(n[0]),o=ee.fromIso8601(n[1]),r=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=e.data;return l(t)?(t.start=i,t.stop=o,t.isStartIncluded=r,t.isStopIncluded=s,t.data=a,t):(Yx.start=i,Yx.stop=o,Yx.isStartIncluded=r,Yx.isStopIncluded=s,Yx.data=a,new Fo(Yx))};Fo.toIso8601=function(e,t){return`${ee.toIso8601(e.start,t)}/${ee.toIso8601(e.stop,t)}`};Fo.clone=function(e,t){if(l(e))return l(t)?(t.start=e.start,t.stop=e.stop,t.isStartIncluded=e.isStartIncluded,t.isStopIncluded=e.isStopIncluded,t.data=e.data,t):new Fo(e)};Fo.equals=function(e,t,n){return e===t||l(e)&&l(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&ee.equals(e.start,t.start)&&ee.equals(e.stop,t.stop)&&(e.data===t.data||l(n)&&n(e.data,t.data)))};Fo.equalsEpsilon=function(e,t,n,i){return n=y(n,0),e===t||l(e)&&l(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&ee.equalsEpsilon(e.start,t.start,n)&&ee.equalsEpsilon(e.stop,t.stop,n)&&(e.data===t.data||l(i)&&i(e.data,t.data)))};Fo.intersect=function(e,t,n,i){if(!l(t))return Fo.clone(Fo.EMPTY,n);let o=e.start,r=e.stop,s=t.start,a=t.stop,c=ee.greaterThanOrEquals(s,o)&&ee.greaterThanOrEquals(r,s),u=!c&&ee.lessThanOrEquals(s,o)&&ee.lessThanOrEquals(o,a);if(!c&&!u)return Fo.clone(Fo.EMPTY,n);let f=e.isStartIncluded,d=e.isStopIncluded,p=t.isStartIncluded,g=t.isStopIncluded,h=ee.lessThan(r,a);return l(n)||(n=new Fo),n.start=c?s:o,n.isStartIncluded=f&&p||!ee.equals(s,o)&&(c&&p||u&&f),n.stop=h?r:a,n.isStopIncluded=h?d:d&&g||!ee.equals(a,r)&&g,n.data=l(i)?i(e.data,t.data):e.data,n};Fo.contains=function(e,t){if(e.isEmpty)return!1;let n=ee.compare(e.start,t);if(n===0)return e.isStartIncluded;let i=ee.compare(t,e.stop);return i===0?e.isStopIncluded:n<0&&i<0};Fo.prototype.clone=function(e){return Fo.clone(this,e)};Fo.prototype.equals=function(e,t){return Fo.equals(this,e,t)};Fo.prototype.equalsEpsilon=function(e,t,n){return Fo.equalsEpsilon(this,e,t,n)};Fo.prototype.toString=function(){return Fo.toIso8601(this)};Fo.EMPTY=Object.freeze(new Fo({start:new ee,stop:new ee,isStartIncluded:!1,isStopIncluded:!1}));var bn=Fo;var xZ=Object.freeze(ee.fromIso8601("0000-01-01T00:00:00Z")),CZ=Object.freeze(ee.fromIso8601("9999-12-31T24:00:00Z")),cve=Object.freeze(new bn({start:xZ,stop:CZ})),lve={MINIMUM_VALUE:xZ,MAXIMUM_VALUE:CZ,MAXIMUM_INTERVAL:cve},Ge=lve;function sS(e,t,n){e=y(e,0),t=y(t,0),n=y(n,0),this.value=new Float32Array([e,t,n])}Object.defineProperties(sS.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}});sS.fromCartesian3=function(e){return new sS(e.x,e.y,e.z)};sS.toValue=function(e,t){return l(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t};var Ki=sS;function SM(e){e=y(e,!0),this.value=SM.toValue(e)}Object.defineProperties(SM.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 1}},normalize:{get:function(){return!1}}});SM.toValue=function(e,t){return l(t)?(t[0]=e,t):new Uint8Array([e])};var An=SM;var wM=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec3 v_tangentEC; +in vec3 v_bitangentEC; +in vec2 v_st; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + mat3 tangentToEyeMatrix = czm_tangentToEyeSpaceMatrix(v_normalEC, v_tangentEC, v_bitangentEC); + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = tangentToEyeMatrix; + materialInput.positionToEyeEC = positionToEyeEC; + materialInput.st = v_st; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var vM=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec3 tangent; +in vec3 bitangent; +in vec2 st; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec3 v_tangentEC; +out vec3 v_bitangentEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_tangentEC = czm_normal * tangent; // tangent in eye coordinates + v_bitangentEC = czm_normal * bitangent; // bitangent in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var DM=`in vec3 v_positionEC; +in vec3 v_normalEC; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var IM=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var PM=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec2 v_st; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + materialInput.st = v_st; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var OM=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec2 st; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var uve={ADD:te.FUNC_ADD,SUBTRACT:te.FUNC_SUBTRACT,REVERSE_SUBTRACT:te.FUNC_REVERSE_SUBTRACT,MIN:te.MIN,MAX:te.MAX},Da=Object.freeze(uve);var fve={ZERO:te.ZERO,ONE:te.ONE,SOURCE_COLOR:te.SRC_COLOR,ONE_MINUS_SOURCE_COLOR:te.ONE_MINUS_SRC_COLOR,DESTINATION_COLOR:te.DST_COLOR,ONE_MINUS_DESTINATION_COLOR:te.ONE_MINUS_DST_COLOR,SOURCE_ALPHA:te.SRC_ALPHA,ONE_MINUS_SOURCE_ALPHA:te.ONE_MINUS_SRC_ALPHA,DESTINATION_ALPHA:te.DST_ALPHA,ONE_MINUS_DESTINATION_ALPHA:te.ONE_MINUS_DST_ALPHA,CONSTANT_COLOR:te.CONSTANT_COLOR,ONE_MINUS_CONSTANT_COLOR:te.ONE_MINUS_CONSTANT_COLOR,CONSTANT_ALPHA:te.CONSTANT_ALPHA,ONE_MINUS_CONSTANT_ALPHA:te.ONE_MINUS_CONSTANT_ALPHA,SOURCE_ALPHA_SATURATE:te.SRC_ALPHA_SATURATE},Eo=Object.freeze(fve);var dve={DISABLED:Object.freeze({enabled:!1}),ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:Da.ADD,equationAlpha:Da.ADD,functionSourceRgb:Eo.SOURCE_ALPHA,functionSourceAlpha:Eo.ONE,functionDestinationRgb:Eo.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:Eo.ONE_MINUS_SOURCE_ALPHA}),PRE_MULTIPLIED_ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:Da.ADD,equationAlpha:Da.ADD,functionSourceRgb:Eo.ONE,functionSourceAlpha:Eo.ONE,functionDestinationRgb:Eo.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:Eo.ONE_MINUS_SOURCE_ALPHA}),ADDITIVE_BLEND:Object.freeze({enabled:!0,equationRgb:Da.ADD,equationAlpha:Da.ADD,functionSourceRgb:Eo.SOURCE_ALPHA,functionSourceAlpha:Eo.ONE,functionDestinationRgb:Eo.ONE,functionDestinationAlpha:Eo.ONE})},mn=Object.freeze(dve);var mve={FRONT:te.FRONT,BACK:te.BACK,FRONT_AND_BACK:te.FRONT_AND_BACK},gi=Object.freeze(mve);function qx(e){e=y(e,y.EMPTY_OBJECT),this.material=e.material,this.translucent=y(e.translucent,!0),this._vertexShaderSource=e.vertexShaderSource,this._fragmentShaderSource=e.fragmentShaderSource,this._renderState=e.renderState,this._closed=y(e.closed,!1)}Object.defineProperties(qx.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}}});qx.prototype.getFragmentShaderSource=function(){let e=[];return this.flat&&e.push("#define FLAT"),this.faceForward&&e.push("#define FACE_FORWARD"),l(this.material)&&e.push(this.material.shaderSource),e.push(this.fragmentShaderSource),e.join(` +`)};qx.prototype.isTranslucent=function(){return l(this.material)&&this.material.isTranslucent()||!l(this.material)&&this.translucent};qx.prototype.getRenderState=function(){let e=this.isTranslucent(),t=Ye(this.renderState,!1);return e?(t.depthMask=!1,t.blending=mn.ALPHA_BLEND):t.depthMask=!0,t};qx.getDefaultRenderState=function(e,t,n){let i={depthTest:{enabled:!0}};return e&&(i.depthMask=!1,i.blending=mn.ALPHA_BLEND),t&&(i.cull={enabled:!0,face:gi.BACK}),l(n)&&(i=gt(n,i,!0)),i};var to=qx;var MM=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.aspect / (2.0 * czm_pi), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var RM=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + vec2 centerPixel = fract(repeat * st); + float centerBump = texture(image, centerPixel).channel; + + float imageWidth = float(imageDimensions.x); + vec2 rightPixel = fract(repeat * (st + vec2(1.0 / imageWidth, 0.0))); + float rightBump = texture(image, rightPixel).channel; + + float imageHeight = float(imageDimensions.y); + vec2 leftPixel = fract(repeat * (st + vec2(0.0, 1.0 / imageHeight))); + float topBump = texture(image, leftPixel).channel; + + vec3 normalTangentSpace = normalize(vec3(centerBump - rightBump, centerBump - topBump, clamp(1.0 - strength, 0.1, 1.0))); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + material.diffuse = vec3(0.01); + + return material; +} +`;var BM=`uniform vec4 lightColor; +uniform vec4 darkColor; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights + float b = mod(floor(repeat.s * st.s) + floor(repeat.t * st.t), 2.0); // 0.0 or 1.0 + + // Find the distance from the closest separator (region between two colors) + float scaledWidth = fract(repeat.s * st.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(repeat.t * st.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + float value = min(scaledWidth, scaledHeight); + + vec4 currentColor = mix(lightColor, darkColor, b); + vec4 color = czm_antialias(lightColor, darkColor, currentColor, value, 0.03); + + color = czm_gammaCorrect(color); + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var LM=`uniform vec4 lightColor; +uniform vec4 darkColor; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights + float b = smoothstep(0.3, 0.32, length(fract(repeat * materialInput.st) - 0.5)); // 0.0 or 1.0 + + vec4 color = mix(lightColor, darkColor, b); + color = czm_gammaCorrect(color); + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var NM=`uniform sampler2D heights; +uniform sampler2D colors; + +// This material expects heights to be sorted from lowest to highest. + +float getHeight(int idx, float invTexSize) +{ + vec2 uv = vec2((float(idx) + 0.5) * invTexSize, 0.5); +#ifdef OES_texture_float + return texture(heights, uv).x; +#else + return czm_unpackFloat(texture(heights, uv)); +#endif +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float height = materialInput.height; + float invTexSize = 1.0 / float(heightsDimensions.x); + + float minHeight = getHeight(0, invTexSize); + float maxHeight = getHeight(heightsDimensions.x - 1, invTexSize); + + // early-out when outside the height range + if (height < minHeight || height > maxHeight) { + material.diffuse = vec3(0.0); + material.alpha = 0.0; + return material; + } + + // Binary search to find heights above and below. + int idxBelow = 0; + int idxAbove = heightsDimensions.x; + float heightBelow = minHeight; + float heightAbove = maxHeight; + + // while loop not allowed, so use for loop with max iterations. + // maxIterations of 16 supports a texture size up to 65536 (2^16). + const int maxIterations = 16; + for (int i = 0; i < maxIterations; i++) { + if (idxBelow >= idxAbove - 1) { + break; + } + + int idxMid = (idxBelow + idxAbove) / 2; + float heightTex = getHeight(idxMid, invTexSize); + + if (height > heightTex) { + idxBelow = idxMid; + heightBelow = heightTex; + } else { + idxAbove = idxMid; + heightAbove = heightTex; + } + } + + float lerper = heightBelow == heightAbove ? 1.0 : (height - heightBelow) / (heightAbove - heightBelow); + vec2 colorUv = vec2(invTexSize * (float(idxBelow) + 0.5 + lerper), 0.5); + vec4 color = texture(colors, colorUv); + + // undo preumultiplied alpha + if (color.a > 0.0) + { + color.rgb /= color.a; + } + + color.rgb = czm_gammaCorrect(color.rgb); + + material.diffuse = color.rgb; + material.alpha = color.a; + return material; +} +`;var FM=`#ifdef GL_OES_standard_derivatives + #extension GL_OES_standard_derivatives : enable +#endif + +uniform vec4 color; +uniform float spacing; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float distanceToContour = mod(materialInput.height, spacing); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float dxc = abs(dFdx(materialInput.height)); + float dyc = abs(dFdy(materialInput.height)); + float dF = max(dxc, dyc) * czm_pixelRatio * width; + float alpha = (distanceToContour < dF) ? 1.0 : 0.0; +#else + // If no derivatives available (IE 10?), use pixel ratio + float alpha = (distanceToContour < (czm_pixelRatio * width)) ? 1.0 : 0.0; +#endif + + vec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha * color.a)); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var UM=`uniform sampler2D image; +uniform float minimumHeight; +uniform float maximumHeight; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + float scaledHeight = clamp((materialInput.height - minimumHeight) / (maximumHeight - minimumHeight), 0.0, 1.0); + vec4 rampColor = texture(image, vec2(scaledHeight, 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var VM=`uniform vec4 fadeInColor; +uniform vec4 fadeOutColor; +uniform float maximumDistance; +uniform bool repeat; +uniform vec2 fadeDirection; +uniform vec2 time; + +float getTime(float t, float coord) +{ + float scalar = 1.0 / maximumDistance; + float q = distance(t, coord) * scalar; + if (repeat) + { + float r = distance(t, coord + 1.0) * scalar; + float s = distance(t, coord - 1.0) * scalar; + q = min(min(r, s), q); + } + return clamp(q, 0.0, 1.0); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float s = getTime(time.x, st.s) * fadeDirection.s; + float t = getTime(time.y, st.t) * fadeDirection.t; + + float u = length(vec2(s, t)); + vec4 color = mix(fadeInColor, fadeOutColor, u); + + color = czm_gammaCorrect(color); + material.emission = color.rgb; + material.alpha = color.a; + + return material; +} +`;var kM=`#ifdef GL_OES_standard_derivatives + #extension GL_OES_standard_derivatives : enable +#endif + +uniform vec4 color; +uniform float cellAlpha; +uniform vec2 lineCount; +uniform vec2 lineThickness; +uniform vec2 lineOffset; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + float scaledWidth = fract(lineCount.s * st.s - lineOffset.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(lineCount.t * st.t - lineOffset.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + + float value; + + // Fuzz Factor - Controls blurriness of lines +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + const float fuzz = 1.2; + vec2 thickness = (lineThickness * czm_pixelRatio) - 1.0; + + // From "3D Engine Design for Virtual Globes" by Cozzi and Ring, Listing 4.13. + vec2 dx = abs(dFdx(st)); + vec2 dy = abs(dFdy(st)); + vec2 dF = vec2(max(dx.s, dy.s), max(dx.t, dy.t)) * lineCount; + value = min( + smoothstep(dF.s * thickness.s, dF.s * (fuzz + thickness.s), scaledWidth), + smoothstep(dF.t * thickness.t, dF.t * (fuzz + thickness.t), scaledHeight)); +#else + // If no derivatives available (IE 10?), revert to view-dependent fuzz + const float fuzz = 0.05; + + vec2 range = 0.5 - (lineThickness * 0.05); + value = min( + 1.0 - smoothstep(range.s, range.s + fuzz, scaledWidth), + 1.0 - smoothstep(range.t, range.t + fuzz, scaledHeight)); +#endif + + // Edges taken from RimLightingMaterial.glsl + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float dRim = 1.0 - abs(dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC))); + float sRim = smoothstep(0.8, 1.0, dRim); + value *= (1.0 - sRim); + + vec4 halfColor; + halfColor.rgb = color.rgb * 0.5; + halfColor.a = color.a * (1.0 - ((1.0 - cellAlpha) * value)); + halfColor = czm_gammaCorrect(halfColor); + material.diffuse = halfColor.rgb; + material.emission = halfColor.rgb; + material.alpha = halfColor.a; + + return material; +} +`;var zM=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec4 textureValue = texture(image, fract(repeat * materialInput.st)); + vec3 normalTangentSpace = textureValue.channels; + normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0; + normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0); + normalTangentSpace = normalize(normalTangentSpace); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + + return material; +} +`;var HM=`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif + +uniform vec4 color; + +float getPointOnLine(vec2 p0, vec2 p1, float x) +{ + float slope = (p0.y - p1.y) / (p0.x - p1.x); + return slope * (x - p0.x) + p0.y; +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float base = 1.0 - abs(fwidth(st.s)) * 10.0 * czm_pixelRatio; +#else + // If no derivatives available (IE 10?), 2.5% of the line will be the arrow head + float base = 0.975; +#endif + + vec2 center = vec2(1.0, 0.5); + float ptOnUpperLine = getPointOnLine(vec2(base, 1.0), center, st.s); + float ptOnLowerLine = getPointOnLine(vec2(base, 0.0), center, st.s); + + float halfWidth = 0.15; + float s = step(0.5 - halfWidth, st.t); + s *= 1.0 - step(0.5 + halfWidth, st.t); + s *= 1.0 - step(base, st.s); + + float t = step(base, materialInput.st.s); + t *= 1.0 - step(ptOnUpperLine, st.t); + t *= step(ptOnLowerLine, st.t); + + // Find the distance from the closest separator (region between two colors) + float dist; + if (st.s < base) + { + float d1 = abs(st.t - (0.5 - halfWidth)); + float d2 = abs(st.t - (0.5 + halfWidth)); + dist = min(d1, d2); + } + else + { + float d1 = czm_infinity; + if (st.t < 0.5 - halfWidth && st.t > 0.5 + halfWidth) + { + d1 = abs(st.s - base); + } + float d2 = abs(st.t - ptOnUpperLine); + float d3 = abs(st.t - ptOnLowerLine); + dist = min(min(d1, d2), d3); + } + + vec4 outsideColor = vec4(0.0); + vec4 currentColor = mix(outsideColor, color, clamp(s + t, 0.0, 1.0)); + vec4 outColor = czm_antialias(outsideColor, color, currentColor, dist); + + outColor = czm_gammaCorrect(outColor); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + return material; +} +`;var GM=`uniform vec4 color; +uniform vec4 gapColor; +uniform float dashLength; +uniform float dashPattern; +in float v_polylineAngle; + +const float maskLength = 16.0; + +mat2 rotate(float rad) { + float c = cos(rad); + float s = sin(rad); + return mat2( + c, s, + -s, c + ); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy; + + // Get the relative position within the dash from 0 to 1 + float dashPosition = fract(pos.x / (dashLength * czm_pixelRatio)); + // Figure out the mask index. + float maskIndex = floor(dashPosition * maskLength); + // Test the bit mask. + float maskTest = floor(dashPattern / pow(2.0, maskIndex)); + vec4 fragColor = (mod(maskTest, 2.0) < 1.0) ? gapColor : color; + if (fragColor.a < 0.005) { // matches 0/255 and 1/255 + discard; + } + + fragColor = czm_gammaCorrect(fragColor); + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + return material; +} +`;var WM=`uniform vec4 color; +uniform float glowPower; +uniform float taperPower; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5); + + if (taperPower <= 0.99999) { + glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5)); + } + + vec4 fragColor; + fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb); + fragColor.a = clamp(0.0, 1.0, glow) * color.a; + fragColor = czm_gammaCorrect(fragColor); + + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + + return material; +} +`;var jM=`uniform vec4 color; +uniform vec4 outlineColor; +uniform float outlineWidth; + +in float v_width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float halfInteriorWidth = 0.5 * (v_width - outlineWidth) / v_width; + float b = step(0.5 - halfInteriorWidth, st.t); + b *= 1.0 - step(0.5 + halfInteriorWidth, st.t); + + // Find the distance from the closest separator (region between two colors) + float d1 = abs(st.t - (0.5 - halfInteriorWidth)); + float d2 = abs(st.t - (0.5 + halfInteriorWidth)); + float dist = min(d1, d2); + + vec4 currentColor = mix(outlineColor, color, b); + vec4 outColor = czm_antialias(outlineColor, color, currentColor, dist); + outColor = czm_gammaCorrect(outColor); + + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var YM=`uniform vec4 color; +uniform vec4 rimColor; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC)); + float s = smoothstep(1.0 - width, 1.0, d); + + vec4 outColor = czm_gammaCorrect(color); + vec4 outRimColor = czm_gammaCorrect(rimColor); + + material.diffuse = outColor.rgb; + material.emission = outRimColor.rgb * s; + material.alpha = mix(outColor.a, outRimColor.a, s); + + return material; +} +`;var qM=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.slope / (czm_pi / 2.0), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var XM=`uniform vec4 evenColor; +uniform vec4 oddColor; +uniform float offset; +uniform float repeat; +uniform bool horizontal; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // Based on the Stripes Fragment Shader in the Orange Book (11.1.2) + float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal)); + float value = fract((coord - offset) * (repeat * 0.5)); + float dist = min(value, min(abs(value - 0.5), 1.0 - value)); + + vec4 currentColor = mix(evenColor, oddColor, step(0.5, value)); + vec4 color = czm_antialias(evenColor, oddColor, currentColor, dist); + color = czm_gammaCorrect(color); + + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var KM=`// Thanks for the contribution Jonas +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +uniform sampler2D specularMap; +uniform sampler2D normalMap; +uniform vec4 baseWaterColor; +uniform vec4 blendColor; +uniform float frequency; +uniform float animationSpeed; +uniform float amplitude; +uniform float specularIntensity; +uniform float fadeFactor; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float time = czm_frameNumber * animationSpeed; + + // fade is a function of the distance from the fragment and the frequency of the waves + float fade = max(1.0, (length(materialInput.positionToEyeEC) / 10000000000.0) * frequency * fadeFactor); + + float specularMapValue = texture(specularMap, materialInput.st).r; + + // note: not using directional motion at this time, just set the angle to 0.0; + vec4 noise = czm_getWaterNoise(normalMap, materialInput.st * frequency, time, 0.0); + vec3 normalTangentSpace = noise.xyz * vec3(1.0, 1.0, (1.0 / amplitude)); + + // fade out the normal perturbation as we move further from the water surface + normalTangentSpace.xy /= fade; + + // attempt to fade out the normal perturbation as we approach non water areas (low specular map value) + normalTangentSpace = mix(vec3(0.0, 0.0, 50.0), normalTangentSpace, specularMapValue); + + normalTangentSpace = normalize(normalTangentSpace); + + // get ratios for alignment of the new normal vector with a vector perpendicular to the tangent plane + float tsPerturbationRatio = clamp(dot(normalTangentSpace, vec3(0.0, 0.0, 1.0)), 0.0, 1.0); + + // fade out water effect as specular map value decreases + material.alpha = mix(blendColor.a, baseWaterColor.a, specularMapValue) * specularMapValue; + + // base color is a blend of the water and non-water color based on the value from the specular map + // may need a uniform blend factor to better control this + material.diffuse = mix(blendColor.rgb, baseWaterColor.rgb, specularMapValue); + + // diffuse highlights are based on how perturbed the normal is + material.diffuse += (0.1 * tsPerturbationRatio); + + material.diffuse = material.diffuse; + + material.normal = normalize(materialInput.tangentToEyeMatrix * normalTangentSpace); + + material.specular = specularIntensity; + material.shininess = 10.0; + + return material; +} +`;function Xe(e){this.type=void 0,this.shaderSource=void 0,this.materials=void 0,this.uniforms=void 0,this._uniforms=void 0,this.translucent=void 0,this._minificationFilter=y(e.minificationFilter,ln.LINEAR),this._magnificationFilter=y(e.magnificationFilter,bi.LINEAR),this._strict=void 0,this._template=void 0,this._count=void 0,this._texturePaths={},this._loadedImages=[],this._loadedCubeMaps=[],this._textures={},this._updateFunctions=[],this._defaultTexture=void 0,hve(e,this),Object.defineProperties(this,{type:{value:this.type,writable:!1}}),l(Xe._uniformList[this.type])||(Xe._uniformList[this.type]=Object.keys(this._uniforms))}Xe._uniformList={};Xe.fromType=function(e,t){let n=new Xe({fabric:{type:e}});if(l(t))for(let i in t)t.hasOwnProperty(i)&&(n.uniforms[i]=t[i]);return n};Xe.prototype.isTranslucent=function(){if(l(this.translucent))return typeof this.translucent=="function"?this.translucent():this.translucent;let e=!0,t=this._translucentFunctions,n=t.length;for(let i=0;i<n;++i){let o=t[i];if(typeof o=="function"?e=e&&o():e=e&&o,!e)break}return e};Xe.prototype.update=function(e){this._defaultTexture=e.defaultTexture;let t,n,i=this._loadedImages,o=i.length;for(t=0;t<o;++t){let c=i[t];n=c.id;let u=c.image,f;Array.isArray(u)&&(f=u.slice(1,u.length).map(function(A){return A.bufferView}),u=u[0]);let d=new dn({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter}),p;l(u.internalFormat)?p=new Bt({context:e,pixelFormat:u.internalFormat,width:u.width,height:u.height,source:{arrayBufferView:u.bufferView,mipLevels:f},sampler:d}):p=new Bt({context:e,source:u,sampler:d});let g=this._textures[n];l(g)&&g!==this._defaultTexture&&g.destroy(),this._textures[n]=p;let h=`${n}Dimensions`;if(this.uniforms.hasOwnProperty(h)){let A=this.uniforms[h];A.x=p._width,A.y=p._height}}i.length=0;let r=this._loadedCubeMaps;for(o=r.length,t=0;t<o;++t){let c=r[t];n=c.id;let u=c.images,f=new sc({context:e,source:{positiveX:u[0],negativeX:u[1],positiveY:u[2],negativeY:u[3],positiveZ:u[4],negativeZ:u[5]},sampler:new dn({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter})});this._textures[n]=f}r.length=0;let s=this._updateFunctions;for(o=s.length,t=0;t<o;++t)s[t](this,e);let a=this.materials;for(let c in a)a.hasOwnProperty(c)&&a[c].update(e)};Xe.prototype.isDestroyed=function(){return!1};Xe.prototype.destroy=function(){let e=this._textures;for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];i!==this._defaultTexture&&i.destroy()}let t=this.materials;for(let n in t)t.hasOwnProperty(n)&&t[n].destroy();return ue(this)};function hve(e,t){e=y(e,y.EMPTY_OBJECT),t._strict=y(e.strict,!1),t._count=y(e.count,0),t._template=Ye(y(e.fabric,y.EMPTY_OBJECT)),t._template.uniforms=Ye(y(t._template.uniforms,y.EMPTY_OBJECT)),t._template.materials=Ye(y(t._template.materials,y.EMPTY_OBJECT)),t.type=l(t._template.type)?t._template.type:jn(),t.shaderSource="",t.materials={},t.uniforms={},t._uniforms={},t._translucentFunctions=[];let n,i=Xe._materialCache.getMaterial(t.type);if(l(i)){let r=Ye(i.fabric,!0);t._template=gt(t._template,r,!0),n=i.translucent}yve(t),l(i)||Xe._materialCache.addMaterial(t.type,t),xve(t),bve(t),wve(t);let o=t._translucentFunctions.length===0?!0:void 0;if(n=y(n,o),n=y(e.translucent,n),l(n))if(typeof n=="function"){let r=function(){return n(t)};t._translucentFunctions.push(r)}else t._translucentFunctions.push(n)}function t8(e,t,n,i){if(l(e)){for(let o in e)if(e.hasOwnProperty(o)){let r=t.indexOf(o)!==-1;(i&&!r||!i&&r)&&n(o,t)}}}function TZ(e,t){}function pve(e,t){}var _ve=["type","materials","uniforms","components","source"],gve=["diffuse","specular","shininess","normal","emission","alpha"];function yve(e){let t=e._template,n=t.uniforms,i=t.materials,o=t.components;t8(t,_ve,TZ,!0),t8(o,gve,TZ,!0);let r=[];for(let s in i)i.hasOwnProperty(s)&&r.push(s);t8(n,r,pve,!1)}function Ave(e,t){let n=t._template.materials;for(let i in n)if(n.hasOwnProperty(i)&&e.indexOf(i)>-1)return!0;return!1}function xve(e){let t=e._template.components,n=e._template.source;if(l(n))e.shaderSource+=`${n} +`;else{if(e.shaderSource+=`czm_material czm_getMaterial(czm_materialInput materialInput) +{ +`,e.shaderSource+=`czm_material material = czm_getDefaultMaterial(materialInput); +`,l(t)){let i=Object.keys(e._template.materials).length>0;for(let o in t)if(t.hasOwnProperty(o))if(o==="diffuse"||o==="emission"){let s=i&&Ave(t[o],e)?t[o]:`czm_gammaCorrect(${t[o]})`;e.shaderSource+=`material.${o} = ${s}; +`}else o==="alpha"?e.shaderSource+=`material.alpha = ${t.alpha}; +`:e.shaderSource+=`material.${o} = ${t[o]}; +`}e.shaderSource+=`return material; +} +`}}var EZ={mat2:eo,mat3:Z,mat4:B},Cve=/\.ktx2$/i;function Tve(e){let t;return function(n,i){let o=n.uniforms,r=o[e],s=t!==r,a=!l(r)||r===Xe.DefaultImageId;t=r;let c=n._textures[e],u,f;if(r instanceof HTMLVideoElement){if(r.readyState>=2){if(s&&l(c)&&(c!==i.defaultTexture&&c.destroy(),c=void 0),!l(c)||c===i.defaultTexture){let p=new dn({minificationFilter:n._minificationFilter,magnificationFilter:n._magnificationFilter});c=new Bt({context:i,source:r,sampler:p}),n._textures[e]=c;return}c.copyFrom({source:r})}else l(c)||(n._textures[e]=i.defaultTexture);return}if(r instanceof Bt&&r!==c){n._texturePaths[e]=void 0;let p=n._textures[e];l(p)&&p!==n._defaultTexture&&p.destroy(),n._textures[e]=r,u=`${e}Dimensions`,o.hasOwnProperty(u)&&(f=o[u],f.x=r._width,f.y=r._height);return}if(s&&l(c)&&a&&(c!==n._defaultTexture&&c.destroy(),c=void 0),l(c)||(n._texturePaths[e]=void 0,c=n._textures[e]=n._defaultTexture,u=`${e}Dimensions`,o.hasOwnProperty(u)&&(f=o[u],f.x=c._width,f.y=c._height)),a)return;let d=r instanceof we;if(!l(n._texturePaths[e])||d&&r.url!==n._texturePaths[e].url||!d&&r!==n._texturePaths[e]){if(typeof r=="string"||d){let p=d?r:we.createIfNeeded(r),g;Cve.test(p.url)?g=Sl(p.url):g=p.fetchImage(),Promise.resolve(g).then(function(h){n._loadedImages.push({id:e,image:h})}).catch(function(){l(c)&&c!==n._defaultTexture&&c.destroy(),n._textures[e]=n._defaultTexture})}else(r instanceof HTMLCanvasElement||r instanceof HTMLImageElement)&&n._loadedImages.push({id:e,image:r});n._texturePaths[e]=r}}}function Eve(e){return function(t,n){let i=t.uniforms[e];if(i instanceof sc){let r=t._textures[e];r!==t._defaultTexture&&r.destroy(),t._texturePaths[e]=void 0,t._textures[e]=i;return}if(l(t._textures[e])||(t._texturePaths[e]=void 0,t._textures[e]=n.defaultCubeMap),i===Xe.DefaultCubeMapId)return;let o=i.positiveX+i.negativeX+i.positiveY+i.negativeY+i.positiveZ+i.negativeZ;if(o!==t._texturePaths[e]){let r=[we.createIfNeeded(i.positiveX).fetchImage(),we.createIfNeeded(i.negativeX).fetchImage(),we.createIfNeeded(i.positiveY).fetchImage(),we.createIfNeeded(i.negativeY).fetchImage(),we.createIfNeeded(i.positiveZ).fetchImage(),we.createIfNeeded(i.negativeZ).fetchImage()];Promise.all(r).then(function(s){t._loadedCubeMaps.push({id:e,images:s})}),t._texturePaths[e]=o}}}function bve(e){let t=e._template.uniforms;for(let n in t)t.hasOwnProperty(n)&&bZ(e,n)}function bZ(e,t){let n=e._strict,i=e._template.uniforms,o=i[t],r=Sve(o),s;if(r==="channels")s=aS(e,t,o,!1);else{if(r==="sampler2D"){let u=`${t}Dimensions`;vve(e,u)>0&&(i[u]={type:"ivec3",x:1,y:1},bZ(e,u))}if(!new RegExp(`uniform\\s+${r}\\s+${t}\\s*;`).test(e.shaderSource)){let u=`uniform ${r} ${t};`;e.shaderSource=u+e.shaderSource}let c=`${t}_${e._count++}`;if(s=aS(e,t,c),e.uniforms[t]=o,r==="sampler2D")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(Tve(t));else if(r==="samplerCube")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(Eve(t));else if(r.indexOf("mat")!==-1){let u=new EZ[r];e._uniforms[c]=function(){return EZ[r].fromColumnMajorArray(e.uniforms[t],u)}}else e._uniforms[c]=function(){return e.uniforms[t]}}}function Sve(e){let t=e.type;if(!l(t)){let n=typeof e;if(n==="number")t="float";else if(n==="boolean")t="bool";else if(n==="string"||e instanceof we||e instanceof HTMLCanvasElement||e instanceof HTMLImageElement)/^([rgba]){1,4}$/i.test(e)?t="channels":e===Xe.DefaultCubeMapId?t="samplerCube":t="sampler2D";else if(n==="object")if(Array.isArray(e))(e.length===4||e.length===9||e.length===16)&&(t=`mat${Math.sqrt(e.length)}`);else{let i=0;for(let o in e)e.hasOwnProperty(o)&&(i+=1);i>=2&&i<=4?t=`vec${i}`:i===6&&(t="samplerCube")}}return t}function wve(e){let t=e._strict,n=e._template.materials;for(let i in n)if(n.hasOwnProperty(i)){let o=new Xe({strict:t,fabric:n[i],count:e._count});e._count=o._count,e._uniforms=gt(e._uniforms,o._uniforms,!0),e.materials[i]=o,e._translucentFunctions=e._translucentFunctions.concat(o._translucentFunctions);let r="czm_getMaterial",s=`${r}_${e._count++}`;aS(o,r,s),e.shaderSource=o.shaderSource+e.shaderSource;let a=`${s}(materialInput)`,c=aS(e,i,a)}}function aS(e,t,n,i){i=y(i,!0);let o=0,r="([\\w])?",s=`([\\w${i?".":""}])?`,a=new RegExp(s+t+r,"g");return e.shaderSource=e.shaderSource.replace(a,function(c,u,f){return u||f?c:(o+=1,n)}),o}function vve(e,t,n){return aS(e,t,t,n)}Xe._materialCache={_materials:{},addMaterial:function(e,t){this._materials[e]=t},getMaterial:function(e){return this._materials[e]}};Xe.DefaultImageId="czm_defaultImage";Xe.DefaultCubeMapId="czm_defaultCubeMap";Xe.ColorType="Color";Xe._materialCache.addMaterial(Xe.ColorType,{fabric:{type:Xe.ColorType,uniforms:{color:new z(1,0,0,.5)},components:{diffuse:"color.rgb",alpha:"color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});Xe.ImageType="Image";Xe._materialCache.addMaterial(Xe.ImageType,{fabric:{type:Xe.ImageType,uniforms:{image:Xe.DefaultImageId,repeat:new H(1,1),color:new z(1,1,1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).rgb * color.rgb",alpha:"texture(image, fract(repeat * materialInput.st)).a * color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});Xe.DiffuseMapType="DiffuseMap";Xe._materialCache.addMaterial(Xe.DiffuseMapType,{fabric:{type:Xe.DiffuseMapType,uniforms:{image:Xe.DefaultImageId,channels:"rgb",repeat:new H(1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});Xe.AlphaMapType="AlphaMap";Xe._materialCache.addMaterial(Xe.AlphaMapType,{fabric:{type:Xe.AlphaMapType,uniforms:{image:Xe.DefaultImageId,channel:"a",repeat:new H(1,1)},components:{alpha:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!0});Xe.SpecularMapType="SpecularMap";Xe._materialCache.addMaterial(Xe.SpecularMapType,{fabric:{type:Xe.SpecularMapType,uniforms:{image:Xe.DefaultImageId,channel:"r",repeat:new H(1,1)},components:{specular:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!1});Xe.EmissionMapType="EmissionMap";Xe._materialCache.addMaterial(Xe.EmissionMapType,{fabric:{type:Xe.EmissionMapType,uniforms:{image:Xe.DefaultImageId,channels:"rgb",repeat:new H(1,1)},components:{emission:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});Xe.BumpMapType="BumpMap";Xe._materialCache.addMaterial(Xe.BumpMapType,{fabric:{type:Xe.BumpMapType,uniforms:{image:Xe.DefaultImageId,channel:"r",strength:.8,repeat:new H(1,1)},source:RM},translucent:!1});Xe.NormalMapType="NormalMap";Xe._materialCache.addMaterial(Xe.NormalMapType,{fabric:{type:Xe.NormalMapType,uniforms:{image:Xe.DefaultImageId,channels:"rgb",strength:.8,repeat:new H(1,1)},source:zM},translucent:!1});Xe.GridType="Grid";Xe._materialCache.addMaterial(Xe.GridType,{fabric:{type:Xe.GridType,uniforms:{color:new z(0,1,0,1),cellAlpha:.1,lineCount:new H(8,8),lineThickness:new H(1,1),lineOffset:new H(0,0)},source:kM},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.cellAlpha<1}});Xe.StripeType="Stripe";Xe._materialCache.addMaterial(Xe.StripeType,{fabric:{type:Xe.StripeType,uniforms:{horizontal:!0,evenColor:new z(1,1,1,.5),oddColor:new z(0,0,1,.5),offset:0,repeat:5},source:XM},translucent:function(e){let t=e.uniforms;return t.evenColor.alpha<1||t.oddColor.alpha<1}});Xe.CheckerboardType="Checkerboard";Xe._materialCache.addMaterial(Xe.CheckerboardType,{fabric:{type:Xe.CheckerboardType,uniforms:{lightColor:new z(1,1,1,.5),darkColor:new z(0,0,0,.5),repeat:new H(5,5)},source:BM},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});Xe.DotType="Dot";Xe._materialCache.addMaterial(Xe.DotType,{fabric:{type:Xe.DotType,uniforms:{lightColor:new z(1,1,0,.75),darkColor:new z(0,1,1,.75),repeat:new H(5,5)},source:LM},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});Xe.WaterType="Water";Xe._materialCache.addMaterial(Xe.WaterType,{fabric:{type:Xe.WaterType,uniforms:{baseWaterColor:new z(.2,.3,.6,1),blendColor:new z(0,1,.699,1),specularMap:Xe.DefaultImageId,normalMap:Xe.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1},source:KM},translucent:function(e){let t=e.uniforms;return t.baseWaterColor.alpha<1||t.blendColor.alpha<1}});Xe.RimLightingType="RimLighting";Xe._materialCache.addMaterial(Xe.RimLightingType,{fabric:{type:Xe.RimLightingType,uniforms:{color:new z(1,0,0,.7),rimColor:new z(1,1,1,.4),width:.3},source:YM},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.rimColor.alpha<1}});Xe.FadeType="Fade";Xe._materialCache.addMaterial(Xe.FadeType,{fabric:{type:Xe.FadeType,uniforms:{fadeInColor:new z(1,0,0,1),fadeOutColor:new z(0,0,0,0),maximumDistance:.5,repeat:!0,fadeDirection:{x:!0,y:!0},time:new H(.5,.5)},source:VM},translucent:function(e){let t=e.uniforms;return t.fadeInColor.alpha<1||t.fadeOutColor.alpha<1}});Xe.PolylineArrowType="PolylineArrow";Xe._materialCache.addMaterial(Xe.PolylineArrowType,{fabric:{type:Xe.PolylineArrowType,uniforms:{color:new z(1,1,1,1)},source:HM},translucent:!0});Xe.PolylineDashType="PolylineDash";Xe._materialCache.addMaterial(Xe.PolylineDashType,{fabric:{type:Xe.PolylineDashType,uniforms:{color:new z(1,0,1,1),gapColor:new z(0,0,0,0),dashLength:16,dashPattern:255},source:GM},translucent:!0});Xe.PolylineGlowType="PolylineGlow";Xe._materialCache.addMaterial(Xe.PolylineGlowType,{fabric:{type:Xe.PolylineGlowType,uniforms:{color:new z(0,.5,1,1),glowPower:.25,taperPower:1},source:WM},translucent:!0});Xe.PolylineOutlineType="PolylineOutline";Xe._materialCache.addMaterial(Xe.PolylineOutlineType,{fabric:{type:Xe.PolylineOutlineType,uniforms:{color:new z(1,1,1,1),outlineColor:new z(1,0,0,1),outlineWidth:1},source:jM},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.outlineColor.alpha<1}});Xe.ElevationContourType="ElevationContour";Xe._materialCache.addMaterial(Xe.ElevationContourType,{fabric:{type:Xe.ElevationContourType,uniforms:{spacing:100,color:new z(1,0,0,1),width:1},source:FM},translucent:!1});Xe.ElevationRampType="ElevationRamp";Xe._materialCache.addMaterial(Xe.ElevationRampType,{fabric:{type:Xe.ElevationRampType,uniforms:{image:Xe.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:UM},translucent:!1});Xe.SlopeRampMaterialType="SlopeRamp";Xe._materialCache.addMaterial(Xe.SlopeRampMaterialType,{fabric:{type:Xe.SlopeRampMaterialType,uniforms:{image:Xe.DefaultImageId},source:qM},translucent:!1});Xe.AspectRampMaterialType="AspectRamp";Xe._materialCache.addMaterial(Xe.AspectRampMaterialType,{fabric:{type:Xe.AspectRampMaterialType,uniforms:{image:Xe.DefaultImageId},source:MM},translucent:!1});Xe.ElevationBandType="ElevationBand";Xe._materialCache.addMaterial(Xe.ElevationBandType,{fabric:{type:Xe.ElevationBandType,uniforms:{heights:Xe.DefaultImageId,colors:Xe.DefaultImageId},source:NM},translucent:!0});var Gi=Xe;function Qy(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.materialSupport,Qy.MaterialSupport.TEXTURED);this.material=l(e.material)?e.material:Gi.fromType(Gi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,i.vertexShaderSource),this._fragmentShaderSource=y(e.fragmentShaderSource,i.fragmentShaderSource),this._renderState=to.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._materialSupport=i,this._vertexFormat=i.vertexFormat,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,!n)}Object.defineProperties(Qy.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},materialSupport:{get:function(){return this._materialSupport}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});Qy.prototype.getFragmentShaderSource=to.prototype.getFragmentShaderSource;Qy.prototype.isTranslucent=to.prototype.isTranslucent;Qy.prototype.getRenderState=to.prototype.getRenderState;Qy.MaterialSupport={BASIC:Object.freeze({vertexFormat:Pe.POSITION_AND_NORMAL,vertexShaderSource:IM,fragmentShaderSource:DM}),TEXTURED:Object.freeze({vertexFormat:Pe.POSITION_NORMAL_AND_ST,vertexShaderSource:OM,fragmentShaderSource:PM}),ALL:Object.freeze({vertexFormat:Pe.ALL,vertexShaderSource:vM,fragmentShaderSource:wM})};var ro=Qy;var JM=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec4 v_color; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + vec4 color = czm_gammaCorrect(v_color); + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +} +`;var ZM=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec4 color; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var Xx=`in vec4 v_color; + +void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +} +`;var QM=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function Mh(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.flat,!1),o=i?QM:ZM,r=i?Xx:JM,s=i?Mh.FLAT_VERTEX_FORMAT:Mh.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,o),this._fragmentShaderSource=y(e.fragmentShaderSource,r),this._renderState=to.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=s,this._flat=i,this._faceForward=y(e.faceForward,!n)}Object.defineProperties(Mh.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});Mh.VERTEX_FORMAT=Pe.POSITION_AND_NORMAL;Mh.FLAT_VERTEX_FORMAT=Pe.POSITION_ONLY;Mh.prototype.getFragmentShaderSource=to.prototype.getFragmentShaderSource;Mh.prototype.isTranslucent=to.prototype.isTranslucent;Mh.prototype.getRenderState=to.prototype.getRenderState;var sn=Mh;function Kx(e){this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(Kx.prototype,{isConstant:{get:function(){return j.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color")});Kx.prototype.getType=function(e){return"Color"};Kx.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,z.WHITE,t.color),t};Kx.prototype.equals=function(e){return this===e||e instanceof Kx&&j.equals(this._color,e._color)};var Ut=Kx;function y_(e){e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,oe.WGS84),this._rectangle=y(e.rectangle,le.MAX_VALUE),this._projection=new Di(this._ellipsoid),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(y_.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});y_.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};y_.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};y_.prototype.rectangleToNativeRectangle=function(e,t){let n=P.toDegrees(e.west),i=P.toDegrees(e.south),o=P.toDegrees(e.east),r=P.toDegrees(e.north);return l(t)?(t.west=n,t.south=i,t.east=o,t.north=r,t):new le(n,i,o,r)};y_.prototype.tileXYToNativeRectangle=function(e,t,n,i){let o=this.tileXYToRectangle(e,t,n,i);return o.west=P.toDegrees(o.west),o.south=P.toDegrees(o.south),o.east=P.toDegrees(o.east),o.north=P.toDegrees(o.north),o};y_.prototype.tileXYToRectangle=function(e,t,n,i){let o=this._rectangle,r=this.getNumberOfXTilesAtLevel(n),s=this.getNumberOfYTilesAtLevel(n),a=o.width/r,c=e*a+o.west,u=(e+1)*a+o.west,f=o.height/s,d=o.north-t*f,p=o.north-(t+1)*f;return l(i)||(i=new le(c,p,u,d)),i.west=c,i.south=p,i.east=u,i.north=d,i};y_.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!le.contains(i,e))return;let o=this.getNumberOfXTilesAtLevel(t),r=this.getNumberOfYTilesAtLevel(t),s=i.width/o,a=i.height/r,c=e.longitude;i.east<i.west&&(c+=P.TWO_PI);let u=(c-i.west)/s|0;u>=o&&(u=o-1);let f=(i.north-e.latitude)/a|0;return f>=r&&(f=r-1),l(n)?(n.x=u,n.y=f,n):new H(u,f)};var Wi=y_;var SZ=new m,wZ=new m,vZ=new he,n8=new m,Dve=new m,DZ=new ae,Ive=new Wi,cS=[new he,new he,new he,new he],lS=new H,Pr={};Pr.initialize=function(){let e=Pr._initPromise;return l(e)||(e=we.fetchJson(en("Assets/approximateTerrainHeights.json")).then(function(t){Pr._terrainHeights=t}),Pr._initPromise=e),e};Pr.getMinimumMaximumHeights=function(e,t){t=y(t,oe.WGS84);let n=IZ(e),i=Pr._defaultMinTerrainHeight,o=Pr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Pr._terrainHeights[r];l(s)&&(i=s[0],o=s[1]),t.cartographicToCartesian(le.northeast(e,vZ),SZ),t.cartographicToCartesian(le.southwest(e,vZ),wZ),m.midpoint(wZ,SZ,n8);let a=t.scaleToGeodeticSurface(n8,Dve);if(l(a)){let c=m.distance(n8,a);i=Math.min(i,-c)}else i=Pr._defaultMinTerrainHeight}return i=Math.max(Pr._defaultMinTerrainHeight,i),{minimumTerrainHeight:i,maximumTerrainHeight:o}};Pr.getBoundingSphere=function(e,t){t=y(t,oe.WGS84);let n=IZ(e),i=Pr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Pr._terrainHeights[r];l(s)&&(i=s[1])}let o=ae.fromRectangle3D(e,t,0);return ae.fromRectangle3D(e,t,i,DZ),ae.union(o,DZ,o)};function IZ(e){he.fromRadians(e.east,e.north,0,cS[0]),he.fromRadians(e.west,e.north,0,cS[1]),he.fromRadians(e.east,e.south,0,cS[2]),he.fromRadians(e.west,e.south,0,cS[3]);let t=0,n=0,i=0,o=0,r=Pr._terrainHeightsMaxLevel,s;for(s=0;s<=r;++s){let a=!1;for(let c=0;c<4;++c){let u=cS[c];if(Ive.positionToTileXY(u,s,lS),c===0)i=lS.x,o=lS.y;else if(i!==lS.x||o!==lS.y){a=!0;break}}if(a)break;t=i,n=o}if(s!==0)return{x:t,y:n,level:s>r?r:s-1}}Pr._terrainHeightsMaxLevel=6;Pr._defaultMaxTerrainHeight=9e3;Pr._defaultMinTerrainHeight=-1e5;Pr._terrainHeights=void 0;Pr._initPromise=void 0;Object.defineProperties(Pr,{initialized:{get:function(){return l(Pr._terrainHeights)}}});var si=Pr;function uc(e,t,n){this.minimum=m.clone(y(e,m.ZERO)),this.maximum=m.clone(y(t,m.ZERO)),l(n)?n=m.clone(n):n=m.midpoint(this.minimum,this.maximum,new m),this.center=n}uc.fromCorners=function(e,t,n){return l(n)||(n=new uc),n.minimum=m.clone(e,n.minimum),n.maximum=m.clone(t,n.maximum),n.center=m.midpoint(e,t,n.center),n};uc.fromPoints=function(e,t){if(l(t)||(t=new uc),!l(e)||e.length===0)return t.minimum=m.clone(m.ZERO,t.minimum),t.maximum=m.clone(m.ZERO,t.maximum),t.center=m.clone(m.ZERO,t.center),t;let n=e[0].x,i=e[0].y,o=e[0].z,r=e[0].x,s=e[0].y,a=e[0].z,c=e.length;for(let d=1;d<c;d++){let p=e[d],g=p.x,h=p.y,A=p.z;n=Math.min(g,n),r=Math.max(g,r),i=Math.min(h,i),s=Math.max(h,s),o=Math.min(A,o),a=Math.max(A,a)}let u=t.minimum;u.x=n,u.y=i,u.z=o;let f=t.maximum;return f.x=r,f.y=s,f.z=a,t.center=m.midpoint(u,f,t.center),t};uc.clone=function(e,t){if(l(e))return l(t)?(t.minimum=m.clone(e.minimum,t.minimum),t.maximum=m.clone(e.maximum,t.maximum),t.center=m.clone(e.center,t.center),t):new uc(e.minimum,e.maximum,e.center)};uc.equals=function(e,t){return e===t||l(e)&&l(t)&&m.equals(e.center,t.center)&&m.equals(e.minimum,t.minimum)&&m.equals(e.maximum,t.maximum)};var $M=new m;uc.intersectPlane=function(e,t){$M=m.subtract(e.maximum,e.minimum,$M);let n=m.multiplyByScalar($M,.5,$M),i=t.normal,o=n.x*Math.abs(i.x)+n.y*Math.abs(i.y)+n.z*Math.abs(i.z),r=m.dot(e.center,i)+t.distance;return r-o>0?$t.INSIDE:r+o<0?$t.OUTSIDE:$t.INTERSECTING};uc.prototype.clone=function(e){return uc.clone(this,e)};uc.prototype.intersectPlane=function(e){return uc.intersectPlane(this,e)};uc.prototype.equals=function(e){return uc.equals(this,e)};var $y=uc;var i8={};i8.computeDiscriminant=function(e,t,n){return t*t-4*e*n};function PZ(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}i8.computeRealRoots=function(e,t,n){let i;if(e===0)return t===0?[]:[-n/t];if(t===0){if(n===0)return[0,0];let c=Math.abs(n),u=Math.abs(e);if(c<u&&c/u<P.EPSILON14)return[0,0];if(c>u&&u/c<P.EPSILON14)return[];if(i=-n/e,i<0)return[];let f=Math.sqrt(i);return[-f,f]}else if(n===0)return i=-t/e,i<0?[i,0]:[0,i];let o=t*t,r=4*e*n,s=PZ(o,-r,P.EPSILON14);if(s<0)return[];let a=-.5*PZ(t,P.sign(t)*Math.sqrt(s),P.EPSILON14);return t>0?[a/e,n/a]:[n/a,a/e]};var Gc=i8;var r8={};r8.computeDiscriminant=function(e,t,n,i){let o=e*e,r=t*t,s=n*n,a=i*i;return 18*e*t*n*i+r*s-27*o*a-4*(e*s*n+r*t*i)};function o8(e,t,n,i){let o=e,r=t/3,s=n/3,a=i,c=o*s,u=r*a,f=r*r,d=s*s,p=o*s-f,g=o*a-r*s,h=r*a-d,A=4*p*h-g*g,x,C;if(A<0){let q,Y,Q;f*u>=c*d?(q=o,Y=p,Q=-2*r*p+o*g):(q=a,Y=h,Q=-a*g+2*s*h);let K=-(Q<0?-1:1)*Math.abs(q)*Math.sqrt(-A);C=-Q+K;let J=C/2,_e=J<0?-Math.pow(-J,1/3):Math.pow(J,1/3),xe=C===K?-_e:-Y/_e;return x=Y<=0?_e+xe:-Q/(_e*_e+xe*xe+Y),f*u>=c*d?[(x-r)/o]:[-a/(x+s)]}let T=p,E=-2*r*p+o*g,S=h,v=-a*g+2*s*h,D=Math.sqrt(A),O=Math.sqrt(3)/2,M=Math.abs(Math.atan2(o*D,-E)/3);x=2*Math.sqrt(-T);let L=Math.cos(M);C=x*L;let N=x*(-L/2-O*Math.sin(M)),_=C+N>2*r?C-r:N-r,b=o,w=_/b;M=Math.abs(Math.atan2(a*D,-v)/3),x=2*Math.sqrt(-S),L=Math.cos(M),C=x*L,N=x*(-L/2-O*Math.sin(M));let I=-a,R=C+N<2*s?C+s:N+s,F=I/R,k=b*R,V=-_*R-b*I,G=_*I,U=(s*V-r*G)/(-r*V+s*k);return w<=U?w<=F?U<=F?[w,U,F]:[w,F,U]:[F,w,U]:w<=F?[U,w,F]:U<=F?[U,F,w]:[F,U,w]}r8.computeRealRoots=function(e,t,n,i){let o,r;if(e===0)return Gc.computeRealRoots(t,n,i);if(t===0){if(n===0){if(i===0)return[0,0,0];r=-i/e;let s=r<0?-Math.pow(-r,1/3):Math.pow(r,1/3);return[s,s,s]}else if(i===0)return o=Gc.computeRealRoots(e,0,n),o.Length===0?[0]:[o[0],0,o[1]];return o8(e,0,n,i)}else{if(n===0)return i===0?(r=-t/e,r<0?[r,0,0]:[0,0,r]):o8(e,t,0,i);if(i===0)return o=Gc.computeRealRoots(e,t,n),o.length===0?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]}return o8(e,t,n,i)};var Jx=r8;var s8={};s8.computeDiscriminant=function(e,t,n,i,o){let r=e*e,s=r*e,a=t*t,c=a*t,u=n*n,f=u*n,d=i*i,p=d*i,g=o*o,h=g*o;return a*u*d-4*c*p-4*e*f*d+18*e*t*n*p-27*r*d*d+256*s*h+o*(18*c*n*i-4*a*f+16*e*u*u-80*e*t*u*i-6*e*a*d+144*r*n*d)+g*(144*e*a*n-27*a*a-128*r*u-192*r*t*i)};function Ff(e,t,n,i){let o=e*e,r=t-3*o/8,s=n-t*e/2+o*e/8,a=i-n*e/4+t*o/16-3*o*o/256,c=Jx.computeRealRoots(1,2*r,r*r-4*a,-s*s);if(c.length>0){let u=-e/4,f=c[c.length-1];if(Math.abs(f)<P.EPSILON14){let d=Gc.computeRealRoots(1,r,a);if(d.length===2){let p=d[0],g=d[1],h;if(p>=0&&g>=0){let A=Math.sqrt(p),x=Math.sqrt(g);return[u-x,u-A,u+A,u+x]}else{if(p>=0&&g<0)return h=Math.sqrt(p),[u-h,u+h];if(p<0&&g>=0)return h=Math.sqrt(g),[u-h,u+h]}}return[]}else if(f>0){let d=Math.sqrt(f),p=(r+f-s/d)/2,g=(r+f+s/d)/2,h=Gc.computeRealRoots(1,d,p),A=Gc.computeRealRoots(1,-d,g);return h.length!==0?(h[0]+=u,h[1]+=u,A.length!==0?(A[0]+=u,A[1]+=u,h[1]<=A[0]?[h[0],h[1],A[0],A[1]]:A[1]<=h[0]?[A[0],A[1],h[0],h[1]]:h[0]>=A[0]&&h[1]<=A[1]?[A[0],h[0],h[1],A[1]]:A[0]>=h[0]&&A[1]<=h[1]?[h[0],A[0],A[1],h[1]]:h[0]>A[0]&&h[0]<A[1]?[A[0],h[0],A[1],h[1]]:[h[0],A[0],h[1],A[1]]):h):A.length!==0?(A[0]+=u,A[1]+=u,A):[]}}return[]}function uS(e,t,n,i){let o=n*n,r=t*t,s=e*e,a=-2*t,c=n*e+r-4*i,u=s*i-n*t*e+o,f=Jx.computeRealRoots(1,a,c,u);if(f.length>0){let d=f[0],p=t-d,g=p*p,h=e/2,A=p/2,x=g-4*i,C=g+4*Math.abs(i),T=s-4*d,E=s+4*Math.abs(d),S,v;if(d<0||x*E<T*C){let b=Math.sqrt(T);S=b/2,v=b===0?0:(e*A-n)/b}else{let b=Math.sqrt(x);S=b===0?0:(e*A-n)/b,v=b/2}let D,O;h===0&&S===0?(D=0,O=0):P.sign(h)===P.sign(S)?(D=h+S,O=d/D):(O=h-S,D=d/O);let M,L;A===0&&v===0?(M=0,L=0):P.sign(A)===P.sign(v)?(M=A+v,L=i/M):(L=A-v,M=i/L);let N=Gc.computeRealRoots(1,D,M),_=Gc.computeRealRoots(1,O,L);if(N.length!==0)return _.length!==0?N[1]<=_[0]?[N[0],N[1],_[0],_[1]]:_[1]<=N[0]?[_[0],_[1],N[0],N[1]]:N[0]>=_[0]&&N[1]<=_[1]?[_[0],N[0],N[1],_[1]]:_[0]>=N[0]&&_[1]<=N[1]?[N[0],_[0],_[1],N[1]]:N[0]>_[0]&&N[0]<_[1]?[_[0],N[0],_[1],N[1]]:[N[0],_[0],N[1],_[1]]:N;if(_.length!==0)return _}return[]}s8.computeRealRoots=function(e,t,n,i,o){if(Math.abs(e)<P.EPSILON15)return Jx.computeRealRoots(t,n,i,o);let r=t/e,s=n/e,a=i/e,c=o/e,u=r<0?1:0;switch(u+=s<0?u+1:u,u+=a<0?u+1:u,u+=c<0?u+1:u,u){case 0:return Ff(r,s,a,c);case 1:return uS(r,s,a,c);case 2:return uS(r,s,a,c);case 3:return Ff(r,s,a,c);case 4:return Ff(r,s,a,c);case 5:return uS(r,s,a,c);case 6:return Ff(r,s,a,c);case 7:return Ff(r,s,a,c);case 8:return uS(r,s,a,c);case 9:return Ff(r,s,a,c);case 10:return Ff(r,s,a,c);case 11:return uS(r,s,a,c);case 12:return Ff(r,s,a,c);case 13:return Ff(r,s,a,c);case 14:return Ff(r,s,a,c);case 15:return Ff(r,s,a,c);default:return}};var eR=s8;function tR(e,t){t=m.clone(y(t,m.ZERO)),m.equals(t,m.ZERO)||m.normalize(t,t),this.origin=m.clone(y(e,m.ZERO)),this.direction=t}tR.clone=function(e,t){if(l(e))return l(t)?(t.origin=m.clone(e.origin),t.direction=m.clone(e.direction),t):new tR(e.origin,e.direction)};tR.getPoint=function(e,t,n){return l(n)||(n=new m),n=m.multiplyByScalar(e.direction,t,n),m.add(e.origin,n,n)};var In=tR;var Qo={};Qo.rayPlane=function(e,t,n){l(n)||(n=new m);let i=e.origin,o=e.direction,r=t.normal,s=m.dot(r,o);if(Math.abs(s)<P.EPSILON15)return;let a=(-t.distance-m.dot(r,i))/s;if(!(a<0))return n=m.multiplyByScalar(o,a,n),m.add(i,n,n)};var Pve=new m,Ove=new m,UZ=new m,OZ=new m,MZ=new m;Qo.rayTriangleParametric=function(e,t,n,i,o){o=y(o,!1);let r=e.origin,s=e.direction,a=m.subtract(n,t,Pve),c=m.subtract(i,t,Ove),u=m.cross(s,c,UZ),f=m.dot(a,u),d,p,g,h,A;if(o){if(f<P.EPSILON6||(d=m.subtract(r,t,OZ),g=m.dot(d,u),g<0||g>f)||(p=m.cross(d,a,MZ),h=m.dot(s,p),h<0||g+h>f))return;A=m.dot(c,p)/f}else{if(Math.abs(f)<P.EPSILON6)return;let x=1/f;if(d=m.subtract(r,t,OZ),g=m.dot(d,u)*x,g<0||g>1||(p=m.cross(d,a,MZ),h=m.dot(s,p)*x,h<0||g+h>1))return;A=m.dot(c,p)*x}return A};Qo.rayTriangle=function(e,t,n,i,o,r){let s=Qo.rayTriangleParametric(e,t,n,i,o);if(!(!l(s)||s<0))return l(r)||(r=new m),m.multiplyByScalar(e.direction,s,r),m.add(e.origin,r,r)};var Mve=new In;Qo.lineSegmentTriangle=function(e,t,n,i,o,r,s){let a=Mve;m.clone(e,a.origin),m.subtract(t,e,a.direction),m.normalize(a.direction,a.direction);let c=Qo.rayTriangleParametric(a,n,i,o,r);if(!(!l(c)||c<0||c>m.distance(e,t)))return l(s)||(s=new m),m.multiplyByScalar(a.direction,c,s),m.add(a.origin,s,s)};function Rve(e,t,n,i){let o=t*t-4*e*n;if(o<0)return;if(o>0){let s=1/(2*e),a=Math.sqrt(o),c=(-t+a)*s,u=(-t-a)*s;return c<u?(i.root0=c,i.root1=u):(i.root0=u,i.root1=c),i}let r=-t/(2*e);if(r!==0)return i.root0=i.root1=r,i}var Bve={root0:0,root1:0};function VZ(e,t,n){l(n)||(n=new Hc);let i=e.origin,o=e.direction,r=t.center,s=t.radius*t.radius,a=m.subtract(i,r,UZ),c=m.dot(o,o),u=2*m.dot(o,a),f=m.magnitudeSquared(a)-s,d=Rve(c,u,f,Bve);if(l(d))return n.start=d.root0,n.stop=d.root1,n}Qo.raySphere=function(e,t,n){if(n=VZ(e,t,n),!(!l(n)||n.stop<0))return n.start=Math.max(n.start,0),n};var Lve=new In;Qo.lineSegmentSphere=function(e,t,n,i){let o=Lve;m.clone(e,o.origin);let r=m.subtract(t,e,o.direction),s=m.magnitude(r);if(m.normalize(r,r),i=VZ(o,n,i),!(!l(i)||i.stop<0||i.start>s))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,s),i};var Nve=new m,Fve=new m;Qo.rayEllipsoid=function(e,t){let n=t.oneOverRadii,i=m.multiplyComponents(n,e.origin,Nve),o=m.multiplyComponents(n,e.direction,Fve),r=m.magnitudeSquared(i),s=m.dot(i,o),a,c,u,f,d;if(r>1){if(s>=0)return;let p=s*s;if(a=r-1,c=m.magnitudeSquared(o),u=c*a,p<u)return;if(p>u){f=s*s-u,d=-s+Math.sqrt(f);let h=d/c,A=a/d;return h<A?new Hc(h,A):{start:A,stop:h}}let g=Math.sqrt(a/c);return new Hc(g,g)}else if(r<1)return a=r-1,c=m.magnitudeSquared(o),u=c*a,f=s*s-u,d=-s+Math.sqrt(f),new Hc(0,d/c);if(s<0)return c=m.magnitudeSquared(o),new Hc(0,-s/c)};function e0(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}function Uve(e,t,n,i,o){let r=i*i,s=o*o,a=(e[Z.COLUMN1ROW1]-e[Z.COLUMN2ROW2])*s,c=o*(i*e0(e[Z.COLUMN1ROW0],e[Z.COLUMN0ROW1],P.EPSILON15)+t.y),u=e[Z.COLUMN0ROW0]*r+e[Z.COLUMN2ROW2]*s+i*t.x+n,f=s*e0(e[Z.COLUMN2ROW1],e[Z.COLUMN1ROW2],P.EPSILON15),d=o*(i*e0(e[Z.COLUMN2ROW0],e[Z.COLUMN0ROW2])+t.z),p,g=[];if(d===0&&f===0){if(p=Gc.computeRealRoots(a,c,u),p.length===0)return g;let M=p[0],L=Math.sqrt(Math.max(1-M*M,0));if(g.push(new m(i,o*M,o*-L)),g.push(new m(i,o*M,o*L)),p.length===2){let N=p[1],_=Math.sqrt(Math.max(1-N*N,0));g.push(new m(i,o*N,o*-_)),g.push(new m(i,o*N,o*_))}return g}let h=d*d,A=f*f,x=a*a,C=d*f,T=x+A,E=2*(c*a+C),S=2*u*a+c*c-A+h,v=2*(u*c-C),D=u*u-h;if(T===0&&E===0&&S===0&&v===0)return g;p=eR.computeRealRoots(T,E,S,v,D);let O=p.length;if(O===0)return g;for(let M=0;M<O;++M){let L=p[M],N=L*L,_=Math.max(1-N,0),b=Math.sqrt(_),w;P.sign(a)===P.sign(u)?w=e0(a*N+u,c*L,P.EPSILON12):P.sign(u)===P.sign(c*L)?w=e0(a*N,c*L+u,P.EPSILON12):w=e0(a*N+c*L,u,P.EPSILON12);let I=e0(f*L,d,P.EPSILON15),R=w*I;R<0?g.push(new m(i,o*L,o*b)):R>0?g.push(new m(i,o*L,o*-b)):b!==0?(g.push(new m(i,o*L,o*-b)),g.push(new m(i,o*L,o*b)),++M):g.push(new m(i,o*L,o*b))}return g}var a8=new m,RZ=new m,BZ=new m,nR=new m,Vve=new m,kve=new Z,zve=new Z,Hve=new Z,Gve=new Z,Wve=new Z,LZ=new Z,NZ=new Z,FZ=new m,jve=new m,Yve=new he;Qo.grazingAltitudeLocation=function(e,t){let n=e.origin,i=e.direction;if(!m.equals(n,m.ZERO)){let D=t.geodeticSurfaceNormal(n,a8);if(m.dot(i,D)>=0)return n}let o=l(this.rayEllipsoid(e,t)),r=t.transformPositionToScaledSpace(i,a8),s=m.normalize(r,r),a=m.mostOrthogonalAxis(r,nR),c=m.normalize(m.cross(a,s,RZ),RZ),u=m.normalize(m.cross(s,c,BZ),BZ),f=kve;f[0]=s.x,f[1]=s.y,f[2]=s.z,f[3]=c.x,f[4]=c.y,f[5]=c.z,f[6]=u.x,f[7]=u.y,f[8]=u.z;let d=Z.transpose(f,zve),p=Z.fromScale(t.radii,Hve),g=Z.fromScale(t.oneOverRadii,Gve),h=Wve;h[0]=0,h[1]=-i.z,h[2]=i.y,h[3]=i.z,h[4]=0,h[5]=-i.x,h[6]=-i.y,h[7]=i.x,h[8]=0;let A=Z.multiply(Z.multiply(d,g,LZ),h,LZ),x=Z.multiply(Z.multiply(A,p,NZ),f,NZ),C=Z.multiplyByVector(A,n,Vve),T=Uve(x,m.negate(C,a8),0,0,1),E,S,v=T.length;if(v>0){let D=m.clone(m.ZERO,jve),O=Number.NEGATIVE_INFINITY;for(let L=0;L<v;++L){E=Z.multiplyByVector(p,Z.multiplyByVector(f,T[L],FZ),FZ);let N=m.normalize(m.subtract(E,n,nR),nR),_=m.dot(N,i);_>O&&(O=_,D=m.clone(E,D))}let M=t.cartesianToCartographic(D,Yve);return O=P.clamp(O,0,1),S=m.magnitude(m.subtract(D,n,nR))*Math.sqrt(1-O*O),S=o?-S:S,M.height=S,t.cartographicToCartesian(M,new m)}};var qve=new m;Qo.lineSegmentPlane=function(e,t,n,i){l(i)||(i=new m);let o=m.subtract(t,e,qve),r=n.normal,s=m.dot(r,o);if(Math.abs(s)<P.EPSILON6)return;let a=m.dot(r,e),c=-(n.distance+a)/s;if(!(c<0||c>1))return m.multiplyByScalar(o,c,i),m.add(e,i,i),i};Qo.trianglePlaneIntersection=function(e,t,n,i){let o=i.normal,r=i.distance,s=m.dot(o,e)+r<0,a=m.dot(o,t)+r<0,c=m.dot(o,n)+r<0,u=0;u+=s?1:0,u+=a?1:0,u+=c?1:0;let f,d;if((u===1||u===2)&&(f=new m,d=new m),u===1){if(s)return Qo.lineSegmentPlane(e,t,i,f),Qo.lineSegmentPlane(e,n,i,d),{positions:[e,t,n,f,d],indices:[0,3,4,1,2,4,1,4,3]};if(a)return Qo.lineSegmentPlane(t,n,i,f),Qo.lineSegmentPlane(t,e,i,d),{positions:[e,t,n,f,d],indices:[1,3,4,2,0,4,2,4,3]};if(c)return Qo.lineSegmentPlane(n,e,i,f),Qo.lineSegmentPlane(n,t,i,d),{positions:[e,t,n,f,d],indices:[2,3,4,0,1,4,0,4,3]}}else if(u===2)if(s)if(a){if(!c)return Qo.lineSegmentPlane(e,n,i,f),Qo.lineSegmentPlane(t,n,i,d),{positions:[e,t,n,f,d],indices:[0,1,4,0,4,3,2,3,4]}}else return Qo.lineSegmentPlane(n,t,i,f),Qo.lineSegmentPlane(e,t,i,d),{positions:[e,t,n,f,d],indices:[2,0,4,2,4,3,1,3,4]};else return Qo.lineSegmentPlane(t,e,i,f),Qo.lineSegmentPlane(n,e,i,d),{positions:[e,t,n,f,d],indices:[1,2,4,1,4,3,0,3,4]}};var Ji=Qo;var c8=new re;function om(e,t){t=y(t,oe.WGS84),e=t.scaleToGeodeticSurface(e);let n=Rt.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=m.fromCartesian4(B.getColumn(n,0,c8)),this._yAxis=m.fromCartesian4(B.getColumn(n,1,c8));let i=m.fromCartesian4(B.getColumn(n,2,c8));this._plane=fn.fromPointNormal(e,i)}Object.defineProperties(om.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var Xve=new $y;om.fromPoints=function(e,t){let n=$y.fromPoints(e,Xve);return new om(n.center,t)};var kZ=new In,iR=new m;om.prototype.projectPointOntoPlane=function(e,t){let n=kZ;n.origin=e,m.normalize(e,n.direction);let i=Ji.rayPlane(n,this._plane,iR);if(l(i)||(m.negate(n.direction,n.direction),i=Ji.rayPlane(n,this._plane,iR)),l(i)){let o=m.subtract(i,this._origin,i),r=m.dot(this._xAxis,o),s=m.dot(this._yAxis,o);return l(t)?(t.x=r,t.y=s,t):new H(r,s)}};om.prototype.projectPointsOntoPlane=function(e,t){l(t)||(t=[]);let n=0,i=e.length;for(let o=0;o<i;o++){let r=this.projectPointOntoPlane(e[o],t[n]);l(r)&&(t[n]=r,n++)}return t.length=n,t};om.prototype.projectPointToNearestOnPlane=function(e,t){l(t)||(t=new H);let n=kZ;n.origin=e,m.clone(this._plane.normal,n.direction);let i=Ji.rayPlane(n,this._plane,iR);l(i)||(m.negate(n.direction,n.direction),i=Ji.rayPlane(n,this._plane,iR));let o=m.subtract(i,this._origin,i),r=m.dot(this._xAxis,o),s=m.dot(this._yAxis,o);return t.x=r,t.y=s,t};om.prototype.projectPointsToNearestOnPlane=function(e,t){l(t)||(t=[]);let n=e.length;t.length=n;for(let i=0;i<n;i++)t[i]=this.projectPointToNearestOnPlane(e[i],t[i]);return t};var Kve=new m;om.prototype.projectPointOntoEllipsoid=function(e,t){l(t)||(t=new m);let n=this._ellipsoid,i=this._origin,o=this._xAxis,r=this._yAxis,s=Kve;return m.multiplyByScalar(o,e.x,s),t=m.add(i,s,t),m.multiplyByScalar(r,e.y,s),m.add(t,s,t),n.scaleToGeocentricSurface(t,t),t};om.prototype.projectPointsOntoEllipsoid=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;++i)t[i]=this.projectPointOntoEllipsoid(e[i],t[i]);return t};var Ia=om;function Ii(e,t){this.center=m.clone(y(e,m.ZERO)),this.halfAxes=Z.clone(y(t,Z.ZERO))}Ii.packedLength=m.packedLength+Z.packedLength;Ii.pack=function(e,t,n){return n=y(n,0),m.pack(e.center,t,n),Z.pack(e.halfAxes,t,n+m.packedLength),t};Ii.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Ii),m.unpack(e,t,n.center),Z.unpack(e,t+m.packedLength,n.halfAxes),n};var Jve=new m,Zve=new m,Qve=new m,$ve=new m,eDe=new m,tDe=new m,nDe=new Z,iDe={unitary:new Z,diagonal:new Z};Ii.fromPoints=function(e,t){if(l(t)||(t=new Ii),!l(e)||e.length===0)return t.halfAxes=Z.ZERO,t.center=m.ZERO,t;let n,i=e.length,o=m.clone(e[0],Jve);for(n=1;n<i;n++)m.add(o,e[n],o);let r=1/i;m.multiplyByScalar(o,r,o);let s=0,a=0,c=0,u=0,f=0,d=0,p;for(n=0;n<i;n++)p=m.subtract(e[n],o,Zve),s+=p.x*p.x,a+=p.x*p.y,c+=p.x*p.z,u+=p.y*p.y,f+=p.y*p.z,d+=p.z*p.z;s*=r,a*=r,c*=r,u*=r,f*=r,d*=r;let g=nDe;g[0]=s,g[1]=a,g[2]=c,g[3]=a,g[4]=u,g[5]=f,g[6]=c,g[7]=f,g[8]=d;let h=Z.computeEigenDecomposition(g,iDe),A=Z.clone(h.unitary,t.halfAxes),x=Z.getColumn(A,0,$ve),C=Z.getColumn(A,1,eDe),T=Z.getColumn(A,2,tDe),E=-Number.MAX_VALUE,S=-Number.MAX_VALUE,v=-Number.MAX_VALUE,D=Number.MAX_VALUE,O=Number.MAX_VALUE,M=Number.MAX_VALUE;for(n=0;n<i;n++)p=e[n],E=Math.max(m.dot(x,p),E),S=Math.max(m.dot(C,p),S),v=Math.max(m.dot(T,p),v),D=Math.min(m.dot(x,p),D),O=Math.min(m.dot(C,p),O),M=Math.min(m.dot(T,p),M);x=m.multiplyByScalar(x,.5*(D+E),x),C=m.multiplyByScalar(C,.5*(O+S),C),T=m.multiplyByScalar(T,.5*(M+v),T);let L=m.add(x,C,t.center);m.add(L,T,L);let N=Qve;return N.x=E-D,N.y=S-O,N.z=v-M,m.multiplyByScalar(N,.5,N),Z.multiplyByScale(t.halfAxes,N,t.halfAxes),t};var YZ=new m,oDe=new m;function zZ(e,t,n,i,o,r,s,a,c,u,f){l(f)||(f=new Ii);let d=f.halfAxes;Z.setColumn(d,0,t,d),Z.setColumn(d,1,n,d),Z.setColumn(d,2,i,d);let p=YZ;p.x=(o+r)/2,p.y=(s+a)/2,p.z=(c+u)/2;let g=oDe;g.x=(r-o)/2,g.y=(a-s)/2,g.z=(u-c)/2;let h=f.center;return p=Z.multiplyByVector(d,p,p),m.add(e,p,h),Z.multiplyByScale(d,g,d),f}var HZ=new he,rDe=new m,sDe=new he,aDe=new he,cDe=new he,lDe=new he,uDe=new he,fDe=new m,GZ=new m,dDe=new m,WZ=new m,mDe=new m,hDe=new H,pDe=new H,_De=new H,gDe=new H,yDe=new H,ADe=new m,xDe=new m,CDe=new m,TDe=new m,EDe=new H,bDe=new m,SDe=new m,wDe=new m,vDe=new fn(m.UNIT_X,0);Ii.fromRectangle=function(e,t,n,i,o){t=y(t,0),n=y(n,0),i=y(i,oe.WGS84);let r,s,a,c,u,f,d;if(e.width<=P.PI){let O=le.center(e,HZ),M=i.cartographicToCartesian(O,rDe),L=new Ia(M,i);d=L.plane;let N=O.longitude,_=e.south<0&&e.north>0?0:O.latitude,b=he.fromRadians(N,e.north,n,sDe),w=he.fromRadians(e.west,e.north,n,aDe),I=he.fromRadians(e.west,_,n,cDe),R=he.fromRadians(e.west,e.south,n,lDe),F=he.fromRadians(N,e.south,n,uDe),k=i.cartographicToCartesian(b,fDe),V=i.cartographicToCartesian(w,GZ),G=i.cartographicToCartesian(I,dDe),U=i.cartographicToCartesian(R,WZ),q=i.cartographicToCartesian(F,mDe),Y=L.projectPointToNearestOnPlane(k,hDe),Q=L.projectPointToNearestOnPlane(V,pDe),W=L.projectPointToNearestOnPlane(G,_De),K=L.projectPointToNearestOnPlane(U,gDe),J=L.projectPointToNearestOnPlane(q,yDe);return r=Math.min(Q.x,W.x,K.x),s=-r,c=Math.max(Q.y,Y.y),a=Math.min(K.y,J.y),w.height=R.height=t,V=i.cartographicToCartesian(w,GZ),U=i.cartographicToCartesian(R,WZ),u=Math.min(fn.getPointDistance(d,V),fn.getPointDistance(d,U)),f=n,zZ(L.origin,L.xAxis,L.yAxis,L.zAxis,r,s,a,c,u,f,o)}let p=e.south>0,g=e.north<0,h=p?e.south:g?e.north:0,A=le.center(e,HZ).longitude,x=m.fromRadians(A,h,n,i,ADe);x.z=0;let T=Math.abs(x.x)<P.EPSILON10&&Math.abs(x.y)<P.EPSILON10?m.UNIT_X:m.normalize(x,xDe),E=m.UNIT_Z,S=m.cross(T,E,CDe);d=fn.fromPointNormal(x,T,vDe);let v=m.fromRadians(A+P.PI_OVER_TWO,h,n,i,TDe);s=m.dot(fn.projectPointOntoPlane(d,v,EDe),S),r=-s,c=m.fromRadians(0,e.north,g?t:n,i,bDe).z,a=m.fromRadians(0,e.south,p?t:n,i,SDe).z;let D=m.fromRadians(e.east,h,n,i,wDe);return u=fn.getPointDistance(d,D),f=0,zZ(x,S,E,T,r,s,a,c,u,f,o)};Ii.fromTransformation=function(e,t){return l(t)||(t=new Ii),t.center=B.getTranslation(e,t.center),t.halfAxes=B.getMatrix3(e,t.halfAxes),t.halfAxes=Z.multiplyByScalar(t.halfAxes,.5,t.halfAxes),t};Ii.clone=function(e,t){if(l(e))return l(t)?(m.clone(e.center,t.center),Z.clone(e.halfAxes,t.halfAxes),t):new Ii(e.center,e.halfAxes)};Ii.intersectPlane=function(e,t){let n=e.center,i=t.normal,o=e.halfAxes,r=i.x,s=i.y,a=i.z,c=Math.abs(r*o[Z.COLUMN0ROW0]+s*o[Z.COLUMN0ROW1]+a*o[Z.COLUMN0ROW2])+Math.abs(r*o[Z.COLUMN1ROW0]+s*o[Z.COLUMN1ROW1]+a*o[Z.COLUMN1ROW2])+Math.abs(r*o[Z.COLUMN2ROW0]+s*o[Z.COLUMN2ROW1]+a*o[Z.COLUMN2ROW2]),u=m.dot(i,n)+t.distance;return u<=-c?$t.OUTSIDE:u>=c?$t.INSIDE:$t.INTERSECTING};var qZ=new m,XZ=new m,KZ=new m,DDe=new m,jZ=new m,IDe=new m;Ii.distanceSquaredTo=function(e,t){let n=m.subtract(t,e.center,YZ),i=e.halfAxes,o=Z.getColumn(i,0,qZ),r=Z.getColumn(i,1,XZ),s=Z.getColumn(i,2,KZ),a=m.magnitude(o),c=m.magnitude(r),u=m.magnitude(s),f=!0,d=!0,p=!0;a>0?m.divideByScalar(o,a,o):f=!1,c>0?m.divideByScalar(r,c,r):d=!1,u>0?m.divideByScalar(s,u,s):p=!1;let g=!f+!d+!p,h,A,x;if(g===1){let S=o;h=r,A=s,d?p||(S=s,A=o):(S=r,h=o),x=m.cross(h,A,jZ),S===o?o=x:S===r?r=x:S===s&&(s=x)}else if(g===2){h=o,d?h=r:p&&(h=s);let S=m.UNIT_Y;S.equalsEpsilon(h,P.EPSILON3)&&(S=m.UNIT_X),A=m.cross(h,S,DDe),m.normalize(A,A),x=m.cross(h,A,jZ),m.normalize(x,x),h===o?(r=A,s=x):h===r?(s=A,o=x):h===s&&(o=A,r=x)}else g===3&&(o=m.UNIT_X,r=m.UNIT_Y,s=m.UNIT_Z);let C=IDe;C.x=m.dot(n,o),C.y=m.dot(n,r),C.z=m.dot(n,s);let T=0,E;return C.x<-a?(E=C.x+a,T+=E*E):C.x>a&&(E=C.x-a,T+=E*E),C.y<-c?(E=C.y+c,T+=E*E):C.y>c&&(E=C.y-c,T+=E*E),C.z<-u?(E=C.z+u,T+=E*E):C.z>u&&(E=C.z-u,T+=E*E),T};var PDe=new m,ODe=new m;Ii.computePlaneDistances=function(e,t,n,i){l(i)||(i=new Hc);let o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=e.center,a=e.halfAxes,c=Z.getColumn(a,0,qZ),u=Z.getColumn(a,1,XZ),f=Z.getColumn(a,2,KZ),d=m.add(c,u,PDe);m.add(d,f,d),m.add(d,s,d);let p=m.subtract(d,t,ODe),g=m.dot(n,p);return o=Math.min(g,o),r=Math.max(g,r),m.add(s,c,d),m.add(d,u,d),m.subtract(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),m.add(s,c,d),m.subtract(d,u,d),m.add(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),m.add(s,c,d),m.subtract(d,u,d),m.subtract(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),m.subtract(s,c,d),m.add(d,u,d),m.add(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),m.subtract(s,c,d),m.add(d,u,d),m.subtract(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),m.subtract(s,c,d),m.subtract(d,u,d),m.add(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),m.subtract(s,c,d),m.subtract(d,u,d),m.subtract(d,f,d),m.subtract(d,t,p),g=m.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),i.start=o,i.stop=r,i};var MDe=new m,RDe=new m,BDe=new m;Ii.computeCorners=function(e,t){l(t)||(t=[new m,new m,new m,new m,new m,new m,new m,new m]);let n=e.center,i=e.halfAxes,o=Z.getColumn(i,0,MDe),r=Z.getColumn(i,1,RDe),s=Z.getColumn(i,2,BDe);return m.clone(n,t[0]),m.subtract(t[0],o,t[0]),m.subtract(t[0],r,t[0]),m.subtract(t[0],s,t[0]),m.clone(n,t[1]),m.subtract(t[1],o,t[1]),m.subtract(t[1],r,t[1]),m.add(t[1],s,t[1]),m.clone(n,t[2]),m.subtract(t[2],o,t[2]),m.add(t[2],r,t[2]),m.subtract(t[2],s,t[2]),m.clone(n,t[3]),m.subtract(t[3],o,t[3]),m.add(t[3],r,t[3]),m.add(t[3],s,t[3]),m.clone(n,t[4]),m.add(t[4],o,t[4]),m.subtract(t[4],r,t[4]),m.subtract(t[4],s,t[4]),m.clone(n,t[5]),m.add(t[5],o,t[5]),m.subtract(t[5],r,t[5]),m.add(t[5],s,t[5]),m.clone(n,t[6]),m.add(t[6],o,t[6]),m.add(t[6],r,t[6]),m.subtract(t[6],s,t[6]),m.clone(n,t[7]),m.add(t[7],o,t[7]),m.add(t[7],r,t[7]),m.add(t[7],s,t[7]),t};var LDe=new Z;Ii.computeTransformation=function(e,t){l(t)||(t=new B);let n=e.center,i=Z.multiplyByUniformScale(e.halfAxes,2,LDe);return B.fromRotationTranslation(i,n,t)};var NDe=new ae;Ii.isOccluded=function(e,t){let n=ae.fromOrientedBoundingBox(e,NDe);return!t.isBoundingSphereVisible(n)};Ii.prototype.intersectPlane=function(e){return Ii.intersectPlane(this,e)};Ii.prototype.distanceSquaredTo=function(e){return Ii.distanceSquaredTo(this,e)};Ii.prototype.computePlaneDistances=function(e,t,n){return Ii.computePlaneDistances(this,e,t,n)};Ii.prototype.computeCorners=function(e){return Ii.computeCorners(this,e)};Ii.prototype.computeTransformation=function(e){return Ii.computeTransformation(this,e)};Ii.prototype.isOccluded=function(e){return Ii.isOccluded(this,e)};Ii.equals=function(e,t){return e===t||l(e)&&l(t)&&m.equals(e.center,t.center)&&Z.equals(e.halfAxes,t.halfAxes)};Ii.prototype.clone=function(e){return Ii.clone(this,e)};Ii.prototype.equals=function(e){return Ii.equals(this,e)};var Bn=Ii;var oR={};oR.getHeight=function(e,t,n){return(e-n)*t+n};var FDe=new m;oR.getPosition=function(e,t,n,i,o){let r=t.cartesianToCartographic(e,FDe),s=oR.getHeight(r.height,n,i);return m.fromRadians(r.longitude,r.latitude,s,t,o)};var Wc=oR;var rR=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; + +#ifdef EXTRUDED_GEOMETRY +in vec3 extrudeDirection; + +uniform float u_globeMinimumAltitude; +#endif // EXTRUDED_GEOMETRY + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif // PER_INSTANCE_COLOR + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL +out vec4 v_sphericalExtents; +#else // SPHERICAL +out vec2 v_inversePlaneExtents; +out vec4 v_westPlane; +out vec4 v_southPlane; +#endif // SPHERICAL +out vec3 v_uvMinAndSphericalLongitudeRotation; +out vec3 v_uMaxAndInverseDistance; +out vec3 v_vMaxAndInverseDistance; +#endif // TEXTURE_COORDINATES + +void main() +{ + vec4 position = czm_computePosition(); + +#ifdef EXTRUDED_GEOMETRY + float delta = min(u_globeMinimumAltitude, czm_geometricToleranceOverMeter * length(position.xyz)); + delta *= czm_sceneMode == czm_sceneMode3D ? 1.0 : 0.0; + + //extrudeDirection is zero for the top layer + position = position + vec4(extrudeDirection * delta, 0.0); +#endif + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL + v_sphericalExtents = czm_batchTable_sphericalExtents(batchId); + v_uvMinAndSphericalLongitudeRotation.z = czm_batchTable_longitudeRotation(batchId); +#else // SPHERICAL +#ifdef COLUMBUS_VIEW_2D + vec4 planes2D_high = czm_batchTable_planes2D_HIGH(batchId); + vec4 planes2D_low = czm_batchTable_planes2D_LOW(batchId); + + // If the primitive is split across the IDL (planes2D_high.x > planes2D_high.w): + // - If this vertex is on the east side of the IDL (position3DLow.y > 0.0, comparison with position3DHigh may produce artifacts) + // - existing "east" is on the wrong side of the world, far away (planes2D_high/low.w) + // - so set "east" as beyond the eastmost extent of the projection (idlSplitNewPlaneHiLow) + vec2 idlSplitNewPlaneHiLow = vec2(EAST_MOST_X_HIGH - (WEST_MOST_X_HIGH - planes2D_high.w), EAST_MOST_X_LOW - (WEST_MOST_X_LOW - planes2D_low.w)); + bool idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y > 0.0; + planes2D_high.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.w); + planes2D_low.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.w); + + // - else, if this vertex is on the west side of the IDL (position3DLow.y < 0.0) + // - existing "west" is on the wrong side of the world, far away (planes2D_high/low.x) + // - so set "west" as beyond the westmost extent of the projection (idlSplitNewPlaneHiLow) + idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y < 0.0; + idlSplitNewPlaneHiLow = vec2(WEST_MOST_X_HIGH - (EAST_MOST_X_HIGH - planes2D_high.x), WEST_MOST_X_LOW - (EAST_MOST_X_LOW - planes2D_low.x)); + planes2D_high.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.x); + planes2D_low.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.x); + + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.xy), vec3(0.0, planes2D_low.xy))).xyz; + vec3 northWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.x, planes2D_high.z), vec3(0.0, planes2D_low.x, planes2D_low.z))).xyz; + vec3 southEastCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.w, planes2D_high.y), vec3(0.0, planes2D_low.w, planes2D_low.y))).xyz; +#else // COLUMBUS_VIEW_2D + // 3D case has smaller "plane extents," so planes encoded as a 64 bit position and 2 vec3s for distances/direction + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(czm_batchTable_southWest_HIGH(batchId), czm_batchTable_southWest_LOW(batchId))).xyz; + vec3 northWestCorner = czm_normal * czm_batchTable_northward(batchId) + southWestCorner; + vec3 southEastCorner = czm_normal * czm_batchTable_eastward(batchId) + southWestCorner; +#endif // COLUMBUS_VIEW_2D + + vec3 eastWard = southEastCorner - southWestCorner; + float eastExtent = length(eastWard); + eastWard /= eastExtent; + + vec3 northWard = northWestCorner - southWestCorner; + float northExtent = length(northWard); + northWard /= northExtent; + + v_westPlane = vec4(eastWard, -dot(eastWard, southWestCorner)); + v_southPlane = vec4(northWard, -dot(northWard, southWestCorner)); + v_inversePlaneExtents = vec2(1.0 / eastExtent, 1.0 / northExtent); +#endif // SPHERICAL + vec4 uvMinAndExtents = czm_batchTable_uvMinAndExtents(batchId); + vec4 uMaxVmax = czm_batchTable_uMaxVmax(batchId); + + v_uMaxAndInverseDistance = vec3(uMaxVmax.xy, uvMinAndExtents.z); + v_vMaxAndInverseDistance = vec3(uMaxVmax.zw, uvMinAndExtents.w); + v_uvMinAndSphericalLongitudeRotation.xy = uvMinAndExtents.xy; +#endif // TEXTURE_COORDINATES + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif + + gl_Position = czm_depthClamp(czm_modelViewProjectionRelativeToEye * position); +} +`;var t0=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +void main(void) +{ +#ifdef VECTOR_TILE + out_FragColor = czm_gammaCorrect(u_highlightColor); +#else + out_FragColor = vec4(1.0); +#endif + czm_writeDepthClamp(); +} +`;var JZ={TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2};JZ.NUMBER_OF_CLASSIFICATION_TYPES=3;var zn=Object.freeze(JZ);var UDe={NEVER:te.NEVER,LESS:te.LESS,EQUAL:te.EQUAL,LESS_OR_EQUAL:te.LEQUAL,GREATER:te.GREATER,NOT_EQUAL:te.NOTEQUAL,GREATER_OR_EQUAL:te.GEQUAL,ALWAYS:te.ALWAYS},fc=Object.freeze(UDe);function VDe(e,t){let n=[],i=e.length,o=0;for(;o<i;){let r=Math.ceil((i-o)/t--);n.push(e.slice(o,o+r)),o+=r}return n}var sR=VDe;function Rh(e,t,n){if(this._attributes=t,this._numberOfInstances=n,t.length===0)return;let i=kDe(t),o=e.floatingPointTexture,r=i===Je.FLOAT&&!o,s=zDe(t,r),a=HDe(s,t,r),c=Math.floor(zt.maximumTextureSize/a),u=Math.min(n,c),f=a*u,d=Math.ceil(n/u),p=1/f,g=p*.5,h=1/d,A=h*.5;this._textureDimensions=new H(f,d),this._textureStep=new re(p,g,h,A),this._pixelDatatype=r?Je.UNSIGNED_BYTE:i,this._packFloats=r,this._offsets=s,this._stride=a,this._texture=void 0;let x=4*f*d;this._batchValues=i===Je.FLOAT&&!r?new Float32Array(x):new Uint8Array(x),this._batchValuesDirty=!1}Object.defineProperties(Rh.prototype,{attributes:{get:function(){return this._attributes}},numberOfInstances:{get:function(){return this._numberOfInstances}}});function kDe(e){let t=!1,n=e.length;for(let i=0;i<n;++i)if(e[i].componentDatatype!==X.UNSIGNED_BYTE){t=!0;break}return t?Je.FLOAT:Je.UNSIGNED_BYTE}function QZ(e,t){let n=e[t].componentsPerAttribute;return n===2?H:n===3?m:n===4?re:Number}function zDe(e,t){let n=new Array(e.length),i=0,o=e.length;for(let r=0;r<o;++r){let a=e[r].componentDatatype;n[r]=i,a!==X.UNSIGNED_BYTE&&t?i+=4:++i}return n}function HDe(e,t,n){let i=e.length,o=e[i-1];return t[i-1].componentDatatype!==X.UNSIGNED_BYTE&&n?o+4:o+1}var fS=new re;function GDe(e,t,n){let i=re.unpack(e,t,fS),o=re.unpackFloat(i);i=re.unpack(e,t+4,fS);let r=re.unpackFloat(i);i=re.unpack(e,t+8,fS);let s=re.unpackFloat(i);i=re.unpack(e,t+12,fS);let a=re.unpackFloat(i);return re.fromElements(o,r,s,a,n)}function WDe(e,t,n){let i=re.packFloat(e.x,fS);re.pack(i,t,n),i=re.packFloat(e.y,i),re.pack(i,t,n+4),i=re.packFloat(e.z,i),re.pack(i,t,n+8),i=re.packFloat(e.w,i),re.pack(i,t,n+12)}var ZZ=new re;Rh.prototype.getBatchedAttribute=function(e,t,n){let i=this._attributes,o=this._offsets[t],s=4*this._stride*e+4*o,a;this._packFloats&&i[t].componentDatatype!==Je.UNSIGNED_BYTE?a=GDe(this._batchValues,s,ZZ):a=re.unpack(this._batchValues,s,ZZ);let c=QZ(i,t);return l(c.fromCartesian4)?c.fromCartesian4(a,n):l(c.clone)?c.clone(a,n):a.x};var jDe=[void 0,void 0,new H,new m,new re],YDe=new re;Rh.prototype.setBatchedAttribute=function(e,t,n){let i=this._attributes,o=jDe[i[t].componentsPerAttribute],r=this.getBatchedAttribute(e,t,o),s=QZ(this._attributes,t);if(l(s.equals)?s.equals(r,n):r===n)return;let c=YDe;c.x=l(n.x)?n.x:n,c.y=l(n.y)?n.y:0,c.z=l(n.z)?n.z:0,c.w=l(n.w)?n.w:0;let u=this._offsets[t],d=4*this._stride*e+4*u;this._packFloats&&i[t].componentDatatype!==Je.UNSIGNED_BYTE?WDe(c,this._batchValues,d):re.pack(c,this._batchValues,d),this._batchValuesDirty=!0};function qDe(e,t){let n=e._textureDimensions;e._texture=new Bt({context:t,pixelFormat:lt.RGBA,pixelDatatype:e._pixelDatatype,width:n.x,height:n.y,sampler:dn.NEAREST,flipY:!1})}function XDe(e){let t=e._textureDimensions;e._texture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}Rh.prototype.update=function(e){l(this._texture)&&!this._batchValuesDirty||this._attributes.length===0||(this._batchValuesDirty=!1,l(this._texture)||qDe(this,e.context),XDe(this))};Rh.prototype.getUniformMapCallback=function(){let e=this;return function(t){return e._attributes.length===0?t:gt(t,{batchTexture:function(){return e._texture},batchTextureDimensions:function(){return e._textureDimensions},batchTextureStep:function(){return e._textureStep}})}};function KDe(e){let t=e._stride;return e._textureDimensions.y===1?`uniform vec4 batchTextureStep; +vec2 computeSt(float batchId) +{ + float stepX = batchTextureStep.x; + float centerX = batchTextureStep.y; + float numberOfAttributes = float(${t}); + return vec2(centerX + (batchId * numberOfAttributes * stepX), 0.5); +} +`:`uniform vec4 batchTextureStep; +uniform vec2 batchTextureDimensions; +vec2 computeSt(float batchId) +{ + float stepX = batchTextureStep.x; + float centerX = batchTextureStep.y; + float stepY = batchTextureStep.z; + float centerY = batchTextureStep.w; + float numberOfAttributes = float(${t}); + float xId = mod(batchId * numberOfAttributes, batchTextureDimensions.x); + float yId = floor(batchId * numberOfAttributes / batchTextureDimensions.x); + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); +} +`}function JDe(e){return e===1?"float":`vec${e}`}function ZDe(e){return e===1?".x":e===2?".xy":e===3?".xyz":""}function QDe(e,t){let i=e._attributes[t],o=i.componentsPerAttribute,r=i.functionName,s=JDe(o),a=ZDe(o),c=e._offsets[t],u=`${s} ${r}(float batchId) +{ + vec2 st = computeSt(batchId); + st.x += batchTextureStep.x * float(${c}); +`;return e._packFloats&&i.componentDatatype!==Je.UNSIGNED_BYTE?u+=`vec4 textureValue; +textureValue.x = czm_unpackFloat(texture(batchTexture, st)); +textureValue.y = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x, 0.0))); +textureValue.z = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 2.0, 0.0))); +textureValue.w = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 3.0, 0.0))); +`:u+=` vec4 textureValue = texture(batchTexture, st); +`,u+=` ${s} value = textureValue${a}; +`,e._pixelDatatype===Je.UNSIGNED_BYTE&&i.componentDatatype===X.UNSIGNED_BYTE&&!i.normalize?u+=`value *= 255.0; +`:e._pixelDatatype===Je.FLOAT&&i.componentDatatype===X.UNSIGNED_BYTE&&i.normalize&&(u+=`value /= 255.0; +`),u+=` return value; +} +`,u}Rh.prototype.getVertexShaderCallback=function(){let e=this._attributes;if(e.length===0)return function(i){return i};let t=`uniform highp sampler2D batchTexture; +`;t+=`${KDe(this)} +`;let n=e.length;for(let i=0;i<n;++i)t+=QDe(this,i);return function(i){let o=i.indexOf("void main"),r=i.substring(0,o),s=i.substring(o);return`${r} +${t} +${s}`}};Rh.prototype.isDestroyed=function(){return!1};Rh.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),ue(this)};var Zx=Rh;var Zi={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};Zi.getMathType=function(e){switch(e){case Zi.SCALAR:return Number;case Zi.VEC2:return H;case Zi.VEC3:return m;case Zi.VEC4:return re;case Zi.MAT2:return eo;case Zi.MAT3:return Z;case Zi.MAT4:return B}};Zi.getNumberOfComponents=function(e){switch(e){case Zi.SCALAR:return 1;case Zi.VEC2:return 2;case Zi.VEC3:return 3;case Zi.VEC4:case Zi.MAT2:return 4;case Zi.MAT3:return 9;case Zi.MAT4:return 16}};Zi.getAttributeLocationCount=function(e){switch(e){case Zi.SCALAR:case Zi.VEC2:case Zi.VEC3:case Zi.VEC4:return 1;case Zi.MAT2:return 2;case Zi.MAT3:return 3;case Zi.MAT4:return 4}};Zi.getGlslType=function(e){switch(e){case Zi.SCALAR:return"float";case Zi.VEC2:return"vec2";case Zi.VEC3:return"vec3";case Zi.VEC4:return"vec4";case Zi.MAT2:return"mat2";case Zi.MAT3:return"mat3";case Zi.MAT4:return"mat4"}};var an=Object.freeze(Zi);var $Z=1/256,eQ=256,mo={};mo.octEncodeInRange=function(e,t,n){if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){let i=n.x,o=n.y;n.x=(1-Math.abs(o))*P.signNotZero(i),n.y=(1-Math.abs(i))*P.signNotZero(o)}return n.x=P.toSNorm(n.x,t),n.y=P.toSNorm(n.y,t),n};mo.octEncode=function(e,t){return mo.octEncodeInRange(e,255,t)};var dS=new H,tQ=new Uint8Array(1);function aR(e){return tQ[0]=e,tQ[0]}mo.octEncodeToCartesian4=function(e,t){return mo.octEncodeInRange(e,65535,dS),t.x=aR(dS.x*$Z),t.y=aR(dS.x),t.z=aR(dS.y*$Z),t.w=aR(dS.y),t};mo.octDecodeInRange=function(e,t,n,i){if(i.x=P.fromSNorm(e,n),i.y=P.fromSNorm(t,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){let o=i.x;i.x=(1-Math.abs(i.y))*P.signNotZero(o),i.y=(1-Math.abs(o))*P.signNotZero(i.y)}return m.normalize(i,i)};mo.octDecode=function(e,t,n){return mo.octDecodeInRange(e,t,255,n)};mo.octDecodeFromCartesian4=function(e,t){let n=e.x,i=e.y,o=e.z,r=e.w,s=n*eQ+i,a=o*eQ+r;return mo.octDecodeInRange(s,a,65535,t)};mo.octPackFloat=function(e){return 256*e.x+e.y};var u8=new H;mo.octEncodeFloat=function(e){return mo.octEncode(e,u8),mo.octPackFloat(u8)};mo.octDecodeFloat=function(e,t){let n=e/256,i=Math.floor(n),o=(n-i)*256;return mo.octDecode(i,o,t)};mo.octPack=function(e,t,n,i){let o=mo.octEncodeFloat(e),r=mo.octEncodeFloat(t),s=mo.octEncode(n,u8);return i.x=65536*s.x+o,i.y=65536*s.y+r,i};mo.octUnpack=function(e,t,n,i){let o=e.x/65536,r=Math.floor(o),s=(o-r)*65536;o=e.y/65536;let a=Math.floor(o),c=(o-a)*65536;mo.octDecodeFloat(s,t),mo.octDecodeFloat(c,n),mo.octDecode(r,a,i)};mo.compressTextureCoordinates=function(e){let t=e.x*4095|0,n=e.y*4095|0;return 4096*t+n};mo.decompressTextureCoordinates=function(e,t){let n=e/4096,i=Math.floor(n);return t.x=i/4095,t.y=(e-i*4096)/4095,t};function l8(e){return e>>1^-(e&1)}mo.zigZagDeltaDecode=function(e,t,n){let i=e.length,o=0,r=0,s=0;for(let a=0;a<i;++a)o+=l8(e[a]),r+=l8(t[a]),e[a]=o,t[a]=r,l(n)&&(s+=l8(n[a]),n[a]=s)};mo.dequantize=function(e,t,n,i){let o=an.getNumberOfComponents(n),r;switch(t){case X.BYTE:r=127;break;case X.UNSIGNED_BYTE:r=255;break;case X.SHORT:r=32767;break;case X.UNSIGNED_SHORT:r=65535;break;case X.INT:r=2147483647;break;case X.UNSIGNED_INT:r=4294967295;break}let s=new Float32Array(i*o);for(let a=0;a<i;a++)for(let c=0;c<o;c++){let u=a*o+c;s[u]=Math.max(e[u]/r,-1)}return s};mo.decodeRGB565=function(e,t){let n=e.length;l(t)||(t=new Float32Array(n*3));let i=(1<<5)-1,o=(1<<6)-1,r=1/31,s=1/63;for(let a=0;a<n;a++){let c=e[a],u=c>>11,f=c>>5&o,d=c&i,p=3*a;t[p]=u*r,t[p+1]=f*s,t[p+2]=d*r}return t};var qn=mo;var nQ=new m,iQ=new m,oQ=new m;function $De(e,t,n,i,o){l(o)||(o=new m);let r,s,a,c,u,f,d,p;if(l(t.z)){if(m.equalsEpsilon(e,t,P.EPSILON14))return m.clone(m.UNIT_X,o);if(m.equalsEpsilon(e,n,P.EPSILON14))return m.clone(m.UNIT_Y,o);if(m.equalsEpsilon(e,i,P.EPSILON14))return m.clone(m.UNIT_Z,o);r=m.subtract(n,t,nQ),s=m.subtract(i,t,iQ),a=m.subtract(e,t,oQ),c=m.dot(r,r),u=m.dot(r,s),f=m.dot(r,a),d=m.dot(s,s),p=m.dot(s,a)}else{if(H.equalsEpsilon(e,t,P.EPSILON14))return m.clone(m.UNIT_X,o);if(H.equalsEpsilon(e,n,P.EPSILON14))return m.clone(m.UNIT_Y,o);if(H.equalsEpsilon(e,i,P.EPSILON14))return m.clone(m.UNIT_Z,o);r=H.subtract(n,t,nQ),s=H.subtract(i,t,iQ),a=H.subtract(e,t,oQ),c=H.dot(r,r),u=H.dot(r,s),f=H.dot(r,a),d=H.dot(s,s),p=H.dot(s,a)}o.y=d*f-u*p,o.z=c*p-u*f;let g=c*d-u*u;if(g!==0)return o.y/=g,o.z/=g,o.x=1-o.y-o.z,o}var Qx=$De;var f8={};f8.calculateACMR=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o=t.length;if(!l(n)){n=0;let a=0,c=t[a];for(;a<o;)c>n&&(n=c),++a,c=t[a]}let r=[];for(let a=0;a<n+1;a++)r[a]=0;let s=i+1;for(let a=0;a<o;++a)s-r[t[a]]>i&&(r[t[a]]=s,++s);return(s-i+1)/(o/3)};f8.tipsify=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o;function r(_,b,w,I){for(;b.length>=1;){let R=b[b.length-1];if(b.splice(b.length-1,1),_[R].numLiveTriangles>0)return R}for(;o<I;){if(_[o].numLiveTriangles>0)return++o,o-1;++o}return-1}function s(_,b,w,I,R,F,k){let V=-1,G,U=-1,q=0;for(;q<w.length;){let Y=w[q];I[Y].numLiveTriangles&&(G=0,R-I[Y].timeStamp+2*I[Y].numLiveTriangles<=b&&(G=R-I[Y].timeStamp),(G>U||U===-1)&&(U=G,V=Y)),++q}return V===-1?r(I,F,_,k):V}let a=t.length,c=0,u=0,f=t[u],d=a;if(l(n))c=n+1;else{for(;u<d;)f>c&&(c=f),++u,f=t[u];if(c===-1)return 0;++c}let p=[],g;for(g=0;g<c;g++)p[g]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};u=0;let h=0;for(;u<d;)p[t[u]].vertexTriangles.push(h),++p[t[u]].numLiveTriangles,p[t[u+1]].vertexTriangles.push(h),++p[t[u+1]].numLiveTriangles,p[t[u+2]].vertexTriangles.push(h),++p[t[u+2]].numLiveTriangles,++h,u+=3;let A=0,x=i+1;o=1;let C=[],T=[],E,S,v=0,D=[],O=a/3,M=[];for(g=0;g<O;g++)M[g]=!1;let L,N;for(;A!==-1;){C=[],S=p[A],N=S.vertexTriangles.length;for(let _=0;_<N;++_)if(h=S.vertexTriangles[_],!M[h]){M[h]=!0,u=h+h+h;for(let b=0;b<3;++b)L=t[u],C.push(L),T.push(L),D[v]=L,++v,E=p[L],--E.numLiveTriangles,x-E.timeStamp>i&&(E.timeStamp=x,++x),++u}A=s(t,i,C,p,x,T,c)}return D};var cR=f8;var dc={};function pR(e,t,n,i,o){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=o,e[t++]=o,e[t]=n}function eIe(e){let t=e.length,n=t/3*6,i=Ve.createTypedArray(t,n),o=0;for(let r=0;r<t;r+=3,o+=6)pR(i,o,e[r],e[r+1],e[r+2]);return i}function tIe(e){let t=e.length;if(t>=3){let n=(t-2)*6,i=Ve.createTypedArray(t,n);pR(i,0,e[0],e[1],e[2]);let o=6;for(let r=3;r<t;++r,o+=6)pR(i,o,e[r-1],e[r],e[r-2]);return i}return new Uint16Array}function nIe(e){if(e.length>0){let t=e.length-1,n=(t-1)*6,i=Ve.createTypedArray(t,n),o=e[0],r=0;for(let s=1;s<t;++s,r+=6)pR(i,r,o,e[s],e[s+1]);return i}return new Uint16Array}dc.toWireframe=function(e){let t=e.indices;if(l(t)){switch(e.primitiveType){case Le.TRIANGLES:e.indices=eIe(t);break;case Le.TRIANGLE_STRIP:e.indices=tIe(t);break;case Le.TRIANGLE_FAN:e.indices=nIe(t);break}e.primitiveType=Le.LINES}return e};dc.createLineSegmentsForVectors=function(e,t,n){t=y(t,"normal"),n=y(n,1e4);let i=e.attributes.position.values,o=e.attributes[t].values,r=i.length,s=new Float64Array(2*r),a=0;for(let f=0;f<r;f+=3)s[a++]=i[f],s[a++]=i[f+1],s[a++]=i[f+2],s[a++]=i[f]+o[f]*n,s[a++]=i[f+1]+o[f+1]*n,s[a++]=i[f+2]+o[f+2]*n;let c,u=e.boundingSphere;return l(u)&&(c=new ae(u.center,u.radius+n)),new dt({attributes:{position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})},primitiveType:Le.LINES,boundingSphere:c})};dc.createAttributeLocations=function(e){let t=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},o=0,r,s=t.length;for(r=0;r<s;++r){let a=t[r];l(n[a])&&(i[a]=o++)}for(let a in n)n.hasOwnProperty(a)&&!l(i[a])&&(i[a]=o++);return i};dc.reorderForPreVertexCache=function(e){let t=dt.computeNumberOfVertices(e),n=e.indices;if(l(n)){let i=new Int32Array(t);for(let p=0;p<t;p++)i[p]=-1;let o=n,r=o.length,s=Ve.createTypedArray(t,r),a=0,c=0,u=0,f;for(;a<r;)f=i[o[a]],f!==-1?s[c]=f:(f=o[a],i[f]=u,s[c]=u,++u),++a,++c;e.indices=s;let d=e.attributes;for(let p in d)if(d.hasOwnProperty(p)&&l(d[p])&&l(d[p].values)){let g=d[p],h=g.values,A=0,x=g.componentsPerAttribute,C=X.createTypedArray(g.componentDatatype,u*x);for(;A<t;){let T=i[A];if(T!==-1)for(let E=0;E<x;E++)C[x*T+E]=h[x*A+E];++A}g.values=C}}return e};dc.reorderForPostVertexCache=function(e,t){let n=e.indices;if(e.primitiveType===Le.TRIANGLES&&l(n)){let i=n.length,o=0;for(let r=0;r<i;r++)n[r]>o&&(o=n[r]);e.indices=cR.tipsify({indices:n,maximumIndex:o,cacheSize:t})}return e};function rQ(e){let t={};for(let n in e)if(e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)){let i=e[n];t[n]=new ve({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function iIe(e,t,n){for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];for(let r=0;r<o.componentsPerAttribute;++r)e[i].values.push(o.values[n*o.componentsPerAttribute+r])}}dc.fitToUnsignedShortIndices=function(e){let t=[],n=dt.computeNumberOfVertices(e);if(l(e.indices)&&n>=P.SIXTY_FOUR_KILOBYTES){let i=[],o=[],r=0,s=rQ(e.attributes),a=e.indices,c=a.length,u;e.primitiveType===Le.TRIANGLES?u=3:e.primitiveType===Le.LINES?u=2:e.primitiveType===Le.POINTS&&(u=1);for(let f=0;f<c;f+=u){for(let d=0;d<u;++d){let p=a[f+d],g=i[p];l(g)||(g=r++,i[p]=g,iIe(s,e.attributes,p)),o.push(g)}r+u>=P.SIXTY_FOUR_KILOBYTES&&(t.push(new dt({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],o=[],r=0,s=rQ(e.attributes))}o.length!==0&&t.push(new dt({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var sQ=new m,oIe=new he;dc.projectTo2D=function(e,t,n,i,o){let r=e.attributes[t];o=l(o)?o:new Di;let s=o.ellipsoid,a=r.values,c=new Float64Array(a.length),u=0;for(let f=0;f<a.length;f+=3){let d=m.fromArray(a,f,sQ),p=s.cartesianToCartographic(d,oIe),g=o.project(p,sQ);c[u++]=g.x,c[u++]=g.y,c[u++]=g.z}return e.attributes[n]=r,e.attributes[i]=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c}),delete e.attributes[t],e};var d8={high:0,low:0};dc.encodeAttribute=function(e,t,n,i){let o=e.attributes[t],r=o.values,s=r.length,a=new Float32Array(s),c=new Float32Array(s);for(let f=0;f<s;++f)Yn.encode(r[f],d8),a[f]=d8.high,c[f]=d8.low;let u=o.componentsPerAttribute;return e.attributes[n]=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:u,values:a}),e.attributes[i]=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:u,values:c}),delete e.attributes[t],e};var Vf=new m;function m8(e,t){if(l(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)m.unpack(n,o,Vf),B.multiplyByPoint(e,Vf,Vf),m.pack(Vf,n,o)}}function h8(e,t){if(l(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)m.unpack(n,o,Vf),Z.multiplyByVector(e,Vf,Vf),Vf=m.normalize(Vf,Vf),m.pack(Vf,n,o)}}var lR=new B,uR=new Z;dc.transformToWorldCoordinates=function(e){let t=e.modelMatrix;if(B.equals(t,B.IDENTITY))return e;let n=e.geometry.attributes;m8(t,n.position),m8(t,n.prevPosition),m8(t,n.nextPosition),(l(n.normal)||l(n.tangent)||l(n.bitangent))&&(B.inverse(t,lR),B.transpose(lR,lR),B.getMatrix3(lR,uR),h8(uR,n.normal),h8(uR,n.tangent),h8(uR,n.bitangent));let i=e.geometry.boundingSphere;return l(i)&&(e.geometry.boundingSphere=ae.transform(i,t,i)),e.modelMatrix=B.clone(B.IDENTITY),e};function rIe(e,t){let n=e.length,i={},o=e[0][t].attributes,r;for(r in o)if(o.hasOwnProperty(r)&&l(o[r])&&l(o[r].values)){let s=o[r],a=s.values.length,c=!0;for(let u=1;u<n;++u){let f=e[u][t].attributes[r];if(!l(f)||s.componentDatatype!==f.componentDatatype||s.componentsPerAttribute!==f.componentsPerAttribute||s.normalize!==f.normalize){c=!1;break}a+=f.values.length}c&&(i[r]=new ve({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:X.createTypedArray(s.componentDatatype,a)}))}return i}var sIe=new m;function p8(e,t){let n=e.length,i,o,r,s,a=e[0].modelMatrix,c=l(e[0][t].indices),u=e[0][t].primitiveType,f=rIe(e,t),d,p,g;for(i in f)if(f.hasOwnProperty(i))for(d=f[i].values,s=0,o=0;o<n;++o)for(p=e[o][t].attributes[i].values,g=p.length,r=0;r<g;++r)d[s++]=p[r];let h;if(c){let T=0;for(o=0;o<n;++o)T+=e[o][t].indices.length;let E=dt.computeNumberOfVertices(new dt({attributes:f,primitiveType:Le.POINTS})),S=Ve.createTypedArray(E,T),v=0,D=0;for(o=0;o<n;++o){let O=e[o][t].indices,M=O.length;for(s=0;s<M;++s)S[v++]=D+O[s];D+=dt.computeNumberOfVertices(e[o][t])}h=S}let A=new m,x=0,C;for(o=0;o<n;++o){if(C=e[o][t].boundingSphere,!l(C)){A=void 0;break}m.add(C.center,A,A)}if(l(A))for(m.divideByScalar(A,n,A),o=0;o<n;++o){C=e[o][t].boundingSphere;let T=m.magnitude(m.subtract(C.center,A,sIe))+C.radius;T>x&&(x=T)}return new dt({attributes:f,indices:h,primitiveType:u,boundingSphere:l(A)?new ae(A,x):void 0})}dc.combineInstances=function(e){let t=[],n=[],i=e.length;for(let r=0;r<i;++r){let s=e[r];l(s.geometry)?t.push(s):l(s.westHemisphereGeometry)&&l(s.eastHemisphereGeometry)&&n.push(s)}let o=[];return t.length>0&&o.push(p8(t,"geometry")),n.length>0&&(o.push(p8(n,"westHemisphereGeometry")),o.push(p8(n,"eastHemisphereGeometry"))),o};var Iu=new m,mS=new m,$x=new m,eC=new m;dc.computeNormal=function(e){let t=e.indices,n=e.attributes,i=n.position.values,o=n.position.values.length/3,r=t.length,s=new Array(o),a=new Array(r/3),c=new Array(r),u;for(u=0;u<o;u++)s[u]={indexOffset:0,count:0,currentCount:0};let f=0;for(u=0;u<r;u+=3){let h=t[u],A=t[u+1],x=t[u+2],C=h*3,T=A*3,E=x*3;mS.x=i[C],mS.y=i[C+1],mS.z=i[C+2],$x.x=i[T],$x.y=i[T+1],$x.z=i[T+2],eC.x=i[E],eC.y=i[E+1],eC.z=i[E+2],s[h].count++,s[A].count++,s[x].count++,m.subtract($x,mS,$x),m.subtract(eC,mS,eC),a[f]=m.cross($x,eC,new m),f++}let d=0;for(u=0;u<o;u++)s[u].indexOffset+=d,d+=s[u].count;f=0;let p;for(u=0;u<r;u+=3){p=s[t[u]];let h=p.indexOffset+p.currentCount;c[h]=f,p.currentCount++,p=s[t[u+1]],h=p.indexOffset+p.currentCount,c[h]=f,p.currentCount++,p=s[t[u+2]],h=p.indexOffset+p.currentCount,c[h]=f,p.currentCount++,f++}let g=new Float32Array(o*3);for(u=0;u<o;u++){let h=u*3;if(p=s[u],m.clone(m.ZERO,Iu),p.count>0){for(f=0;f<p.count;f++)m.add(Iu,a[c[p.indexOffset+f]],Iu);m.equalsEpsilon(m.ZERO,Iu,P.EPSILON10)&&m.clone(a[c[p.indexOffset]],Iu)}m.equalsEpsilon(m.ZERO,Iu,P.EPSILON10)&&(Iu.z=1),m.normalize(Iu,Iu),g[h]=Iu.x,g[h+1]=Iu.y,g[h+2]=Iu.z}return e.attributes.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e};var aIe=new m,aQ=new m,cIe=new m;dc.computeTangentAndBitangent=function(e){let t=e.attributes,n=e.indices,i=e.attributes.position.values,o=e.attributes.normal.values,r=e.attributes.st.values,s=e.attributes.position.values.length/3,a=n.length,c=new Array(s*3),u;for(u=0;u<c.length;u++)c[u]=0;let f,d,p;for(u=0;u<a;u+=3){let A=n[u],x=n[u+1],C=n[u+2];f=A*3,d=x*3,p=C*3;let T=A*2,E=x*2,S=C*2,v=i[f],D=i[f+1],O=i[f+2],M=r[T],L=r[T+1],N=r[E+1]-L,_=r[S+1]-L,b=1/((r[E]-M)*_-(r[S]-M)*N),w=(_*(i[d]-v)-N*(i[p]-v))*b,I=(_*(i[d+1]-D)-N*(i[p+1]-D))*b,R=(_*(i[d+2]-O)-N*(i[p+2]-O))*b;c[f]+=w,c[f+1]+=I,c[f+2]+=R,c[d]+=w,c[d+1]+=I,c[d+2]+=R,c[p]+=w,c[p+1]+=I,c[p+2]+=R}let g=new Float32Array(s*3),h=new Float32Array(s*3);for(u=0;u<s;u++){f=u*3,d=f+1,p=f+2;let A=m.fromArray(o,f,aIe),x=m.fromArray(c,f,cIe),C=m.dot(A,x);m.multiplyByScalar(A,C,aQ),m.normalize(m.subtract(x,aQ,x),x),g[f]=x.x,g[d]=x.y,g[p]=x.z,m.normalize(m.cross(A,x,x),x),h[f]=x.x,h[d]=x.y,h[p]=x.z}return e.attributes.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e.attributes.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:h}),e};var hS=new H,Uf=new m,cQ=new m,lQ=new m,fR=new H;dc.compressVertices=function(e){let t=e.attributes.extrudeDirection,n,i;if(l(t)){let D=t.values;i=D.length/3;let O=new Float32Array(i*2),M=0;for(n=0;n<i;++n){if(m.fromArray(D,n*3,Uf),m.equals(Uf,m.ZERO)){M+=2;continue}fR=qn.octEncodeInRange(Uf,65535,fR),O[M++]=fR.x,O[M++]=fR.y}return e.attributes.compressedAttributes=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:O}),delete e.attributes.extrudeDirection,e}let o=e.attributes.normal,r=e.attributes.st,s=l(o),a=l(r);if(!s&&!a)return e;let c=e.attributes.tangent,u=e.attributes.bitangent,f=l(c),d=l(u),p,g,h,A;s&&(p=o.values),a&&(g=r.values),f&&(h=c.values),d&&(A=u.values),i=(s?p.length:g.length)/(s?3:2);let T=i,E=a&&s?2:1;E+=f||d?1:0,T*=E;let S=new Float32Array(T),v=0;for(n=0;n<i;++n){a&&(H.fromArray(g,n*2,hS),S[v++]=qn.compressTextureCoordinates(hS));let D=n*3;s&&l(h)&&l(A)?(m.fromArray(p,D,Uf),m.fromArray(h,D,cQ),m.fromArray(A,D,lQ),qn.octPack(Uf,cQ,lQ,hS),S[v++]=hS.x,S[v++]=hS.y):(s&&(m.fromArray(p,D,Uf),S[v++]=qn.octEncodeFloat(Uf)),f&&(m.fromArray(h,D,Uf),S[v++]=qn.octEncodeFloat(Uf)),d&&(m.fromArray(A,D,Uf),S[v++]=qn.octEncodeFloat(Uf)))}return e.attributes.compressedAttributes=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:E,values:S}),s&&delete e.attributes.normal,a&&delete e.attributes.st,d&&delete e.attributes.bitangent,f&&delete e.attributes.tangent,e};function lIe(e){if(l(e.indices))return e;let t=dt.computeNumberOfVertices(e),n=Ve.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function uIe(e){let t=dt.computeNumberOfVertices(e),n=Ve.createTypedArray(t,(t-2)*3);n[0]=1,n[1]=0,n[2]=2;let i=3;for(let o=3;o<t;++o)n[i++]=o-1,n[i++]=0,n[i++]=o;return e.indices=n,e.primitiveType=Le.TRIANGLES,e}function fIe(e){let t=dt.computeNumberOfVertices(e),n=Ve.createTypedArray(t,(t-2)*3);n[0]=0,n[1]=1,n[2]=2,t>3&&(n[3]=0,n[4]=2,n[5]=3);let i=6;for(let o=3;o<t-1;o+=2)n[i++]=o,n[i++]=o-1,n[i++]=o+1,o+2<t&&(n[i++]=o,n[i++]=o+1,n[i++]=o+2);return e.indices=n,e.primitiveType=Le.TRIANGLES,e}function dIe(e){if(l(e.indices))return e;let t=dt.computeNumberOfVertices(e),n=Ve.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function mIe(e){let t=dt.computeNumberOfVertices(e),n=Ve.createTypedArray(t,(t-1)*2);n[0]=0,n[1]=1;let i=2;for(let o=2;o<t;++o)n[i++]=o-1,n[i++]=o;return e.indices=n,e.primitiveType=Le.LINES,e}function hIe(e){let t=dt.computeNumberOfVertices(e),n=Ve.createTypedArray(t,t*2);n[0]=0,n[1]=1;let i=2;for(let o=2;o<t;++o)n[i++]=o-1,n[i++]=o;return n[i++]=t-1,n[i]=0,e.indices=n,e.primitiveType=Le.LINES,e}function pIe(e){switch(e.primitiveType){case Le.TRIANGLE_FAN:return uIe(e);case Le.TRIANGLE_STRIP:return fIe(e);case Le.TRIANGLES:return lIe(e);case Le.LINE_STRIP:return mIe(e);case Le.LINE_LOOP:return hIe(e);case Le.LINES:return dIe(e)}return e}function A_(e,t){Math.abs(e.y)<P.EPSILON6&&(t?e.y=-P.EPSILON6:e.y=P.EPSILON6)}function _Ie(e,t,n){if(e.y!==0&&t.y!==0&&n.y!==0){A_(e,e.y<0),A_(t,t.y<0),A_(n,n.y<0);return}let i=Math.abs(e.y),o=Math.abs(t.y),r=Math.abs(n.y),s;i>o?i>r?s=P.sign(e.y):s=P.sign(n.y):o>r?s=P.sign(t.y):s=P.sign(n.y);let a=s<0;A_(e,a),A_(t,a),A_(n,a)}var uQ=new m;function Pu(e,t,n,i){m.add(e,m.multiplyByScalar(m.subtract(t,e,uQ),e.y/(e.y-t.y),uQ),n),m.clone(n,i),A_(n,!0),A_(i,!1)}var n0=new m,i0=new m,o0=new m,r0=new m,_8={positions:new Array(7),indices:new Array(3*3)};function gIe(e,t,n){if(e.x>=0||t.x>=0||n.x>=0)return;_Ie(e,t,n);let i=e.y<0,o=t.y<0,r=n.y<0,s=0;s+=i?1:0,s+=o?1:0,s+=r?1:0;let a=_8.indices;s===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,i?(Pu(e,t,n0,o0),Pu(e,n,i0,r0),a[0]=0,a[3]=1,a[4]=2,a[6]=1):o?(Pu(t,n,n0,o0),Pu(t,e,i0,r0),a[0]=1,a[3]=2,a[4]=0,a[6]=2):r&&(Pu(n,e,n0,o0),Pu(n,t,i0,r0),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):s===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,i?o?r||(Pu(n,e,n0,o0),Pu(n,t,i0,r0),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(Pu(t,n,n0,o0),Pu(t,e,i0,r0),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(Pu(e,t,n0,o0),Pu(e,n,i0,r0),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let c=_8.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,(s===1||s===2)&&(c[3]=n0,c[4]=i0,c[5]=o0,c[6]=r0,c.length=7),_8}function fQ(e,t){let n=e.attributes;if(n.position.values.length===0)return;for(let o in n)if(n.hasOwnProperty(o)&&l(n[o])&&l(n[o].values)){let r=n[o];r.values=X.createTypedArray(r.componentDatatype,r.values)}let i=dt.computeNumberOfVertices(e);return e.indices=Ve.createTypedArray(i,e.indices),t&&(e.boundingSphere=ae.fromVertices(n.position.values)),e}function nC(e){let t=e.attributes,n={};for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];n[i]=new ve({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:[]})}return new dt({attributes:n,indices:[],primitiveType:e.primitiveType})}function x8(e,t,n){let i=l(e.geometry.boundingSphere);t=fQ(t,i),n=fQ(n,i),l(n)&&!l(t)?e.geometry=n:!l(n)&&l(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function C8(e,t){let n=new e,i=new e,o=new e;return function(r,s,a,c,u,f,d,p){let g=e.fromArray(u,r*t,n),h=e.fromArray(u,s*t,i),A=e.fromArray(u,a*t,o);e.multiplyByScalar(g,c.x,g),e.multiplyByScalar(h,c.y,h),e.multiplyByScalar(A,c.z,A);let x=e.add(g,h,g);e.add(x,A,x),p&&e.normalize(x,x),e.pack(x,f,d*t)}}var yIe=C8(re,4),hR=C8(m,3),gQ=C8(H,2),AIe=function(e,t,n,i,o,r,s){let a=o[e]*i.x,c=o[t]*i.y,u=o[n]*i.z;r[s]=a+c+u>P.EPSILON6?1:0},pS=new m,g8=new m,y8=new m,xIe=new m;function dR(e,t,n,i,o,r,s,a,c,u,f,d,p,g,h,A){if(!l(r)&&!l(s)&&!l(a)&&!l(c)&&!l(u)&&g===0)return;let x=m.fromArray(o,e*3,pS),C=m.fromArray(o,t*3,g8),T=m.fromArray(o,n*3,y8),E=Qx(i,x,C,T,xIe);if(l(E)){if(l(r)&&hR(e,t,n,E,r,d.normal.values,A,!0),l(u)){let S=m.fromArray(u,e*3,pS),v=m.fromArray(u,t*3,g8),D=m.fromArray(u,n*3,y8);m.multiplyByScalar(S,E.x,S),m.multiplyByScalar(v,E.y,v),m.multiplyByScalar(D,E.z,D);let O;!m.equals(S,m.ZERO)||!m.equals(v,m.ZERO)||!m.equals(D,m.ZERO)?(O=m.add(S,v,S),m.add(O,D,O),m.normalize(O,O)):(O=pS,O.x=0,O.y=0,O.z=0),m.pack(O,d.extrudeDirection.values,A*3)}if(l(f)&&AIe(e,t,n,E,f,d.applyOffset.values,A),l(s)&&hR(e,t,n,E,s,d.tangent.values,A,!0),l(a)&&hR(e,t,n,E,a,d.bitangent.values,A,!0),l(c)&&gQ(e,t,n,E,c,d.st.values,A),g>0)for(let S=0;S<g;S++){let v=p[S];CIe(e,t,n,E,A,h[v],d[v])}}}function CIe(e,t,n,i,o,r,s){let a=r.componentsPerAttribute,c=r.values,u=s.values;switch(a){case 4:yIe(e,t,n,i,c,u,o,!1);break;case 3:hR(e,t,n,i,c,u,o,!1);break;case 2:gQ(e,t,n,i,c,u,o,!1);break;default:u[o]=c[e]*i.x+c[t]*i.y+c[n]*i.z}}function rm(e,t,n,i,o,r){let s=e.position.values.length/3;if(o!==-1){let a=i[o],c=n[a];return c===-1?(n[a]=s,e.position.values.push(r.x,r.y,r.z),t.push(s),s):(t.push(c),c)}return e.position.values.push(r.x,r.y,r.z),t.push(s),s}var TIe={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function dQ(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=l(n.normal)?n.normal.values:void 0,r=l(n.bitangent)?n.bitangent.values:void 0,s=l(n.tangent)?n.tangent.values:void 0,a=l(n.st)?n.st.values:void 0,c=l(n.extrudeDirection)?n.extrudeDirection.values:void 0,u=l(n.applyOffset)?n.applyOffset.values:void 0,f=t.indices,d=[];for(let O in n)n.hasOwnProperty(O)&&!TIe[O]&&l(n[O])&&d.push(O);let p=d.length,g=nC(t),h=nC(t),A,x,C,T,E,S=[];S.length=i.length/3;let v=[];for(v.length=i.length/3,E=0;E<S.length;++E)S[E]=-1,v[E]=-1;let D=f.length;for(E=0;E<D;E+=3){let O=f[E],M=f[E+1],L=f[E+2],N=m.fromArray(i,O*3),_=m.fromArray(i,M*3),b=m.fromArray(i,L*3),w=gIe(N,_,b);if(l(w)&&w.positions.length>3){let I=w.positions,R=w.indices,F=R.length;for(let k=0;k<F;++k){let V=R[k],G=I[V];G.y<0?(A=h.attributes,x=h.indices,C=S):(A=g.attributes,x=g.indices,C=v),T=rm(A,x,C,f,V<3?E+V:-1,G),dR(O,M,L,G,i,o,s,r,a,c,u,A,d,p,n,T)}}else l(w)&&(N=w.positions[0],_=w.positions[1],b=w.positions[2]),N.y<0?(A=h.attributes,x=h.indices,C=S):(A=g.attributes,x=g.indices,C=v),T=rm(A,x,C,f,E,N),dR(O,M,L,N,i,o,s,r,a,c,u,A,d,p,n,T),T=rm(A,x,C,f,E+1,_),dR(O,M,L,_,i,o,s,r,a,c,u,A,d,p,n,T),T=rm(A,x,C,f,E+2,b),dR(O,M,L,b,i,o,s,r,a,c,u,A,d,p,n,T)}x8(e,h,g)}var yQ=fn.fromPointNormal(m.ZERO,m.UNIT_Y),EIe=new m,bIe=new m;function tC(e,t,n,i,o,r,s){if(!l(s))return;let a=m.fromArray(i,e*3,pS);m.equalsEpsilon(a,n,P.EPSILON10)?r.applyOffset.values[o]=s[e]:r.applyOffset.values[o]=s[t]}function mQ(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=l(n.applyOffset)?n.applyOffset.values:void 0,r=t.indices,s=nC(t),a=nC(t),c,u=r.length,f=[];f.length=i.length/3;let d=[];for(d.length=i.length/3,c=0;c<f.length;++c)f[c]=-1,d[c]=-1;for(c=0;c<u;c+=2){let p=r[c],g=r[c+1],h=m.fromArray(i,p*3,pS),A=m.fromArray(i,g*3,g8),x;Math.abs(h.y)<P.EPSILON6&&(h.y<0?h.y=-P.EPSILON6:h.y=P.EPSILON6),Math.abs(A.y)<P.EPSILON6&&(A.y<0?A.y=-P.EPSILON6:A.y=P.EPSILON6);let C=s.attributes,T=s.indices,E=d,S=a.attributes,v=a.indices,D=f,O=Ji.lineSegmentPlane(h,A,yQ,y8);if(l(O)){let M=m.multiplyByScalar(m.UNIT_Y,5*P.EPSILON9,EIe);h.y<0&&(m.negate(M,M),C=a.attributes,T=a.indices,E=f,S=s.attributes,v=s.indices,D=d);let L=m.add(O,M,bIe);x=rm(C,T,E,r,c,h),tC(p,g,h,i,x,C,o),x=rm(C,T,E,r,-1,L),tC(p,g,L,i,x,C,o),m.negate(M,M),m.add(O,M,L),x=rm(S,v,D,r,-1,L),tC(p,g,L,i,x,S,o),x=rm(S,v,D,r,c+1,A),tC(p,g,A,i,x,S,o)}else{let M,L,N;h.y<0?(M=a.attributes,L=a.indices,N=f):(M=s.attributes,L=s.indices,N=d),x=rm(M,L,N,r,c,h),tC(p,g,h,i,x,M,o),x=rm(M,L,N,r,c+1,A),tC(p,g,A,i,x,M,o)}}x8(e,a,s)}var hQ=new H,SIe=new H,AQ=new m,xQ=new m,A8=new m,wIe=new m,vIe=new m,DIe=new m,pQ=new re;function _Q(e){let t=e.attributes,n=t.position.values,i=t.prevPosition.values,o=t.nextPosition.values,r=n.length;for(let s=0;s<r;s+=3){let a=m.unpack(n,s,AQ);if(a.x>0)continue;let c=m.unpack(i,s,xQ);(a.y<0&&c.y>0||a.y>0&&c.y<0)&&(s-3>0?(i[s]=n[s-3],i[s+1]=n[s-2],i[s+2]=n[s-1]):m.pack(a,i,s));let u=m.unpack(o,s,A8);(a.y<0&&u.y>0||a.y>0&&u.y<0)&&(s+3<r?(o[s]=n[s+3],o[s+1]=n[s+4],o[s+2]=n[s+5]):m.pack(a,o,s))}}var IIe=5*P.EPSILON9,mR=P.EPSILON6;function PIe(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=n.prevPosition.values,r=n.nextPosition.values,s=n.expandAndWidth.values,a=l(n.st)?n.st.values:void 0,c=l(n.color)?n.color.values:void 0,u=nC(t),f=nC(t),d,p,g,h=!1,A=i.length/3;for(d=0;d<A;d+=4){let x=d,C=d+2,T=m.fromArray(i,x*3,AQ),E=m.fromArray(i,C*3,xQ);if(Math.abs(T.y)<mR)for(T.y=mR*(E.y<0?-1:1),i[d*3+1]=T.y,i[(d+1)*3+1]=T.y,p=x*3;p<x*3+4*3;p+=3)o[p]=i[d*3],o[p+1]=i[d*3+1],o[p+2]=i[d*3+2];if(Math.abs(E.y)<mR)for(E.y=mR*(T.y<0?-1:1),i[(d+2)*3+1]=E.y,i[(d+3)*3+1]=E.y,p=x*3;p<x*3+4*3;p+=3)r[p]=i[(d+2)*3],r[p+1]=i[(d+2)*3+1],r[p+2]=i[(d+2)*3+2];let S=u.attributes,v=u.indices,D=f.attributes,O=f.indices,M=Ji.lineSegmentPlane(T,E,yQ,wIe);if(l(M)){h=!0;let L=m.multiplyByScalar(m.UNIT_Y,IIe,vIe);T.y<0&&(m.negate(L,L),S=f.attributes,v=f.indices,D=u.attributes,O=u.indices);let N=m.add(M,L,DIe);S.position.values.push(T.x,T.y,T.z,T.x,T.y,T.z),S.position.values.push(N.x,N.y,N.z),S.position.values.push(N.x,N.y,N.z),S.prevPosition.values.push(o[x*3],o[x*3+1],o[x*3+2]),S.prevPosition.values.push(o[x*3+3],o[x*3+4],o[x*3+5]),S.prevPosition.values.push(T.x,T.y,T.z,T.x,T.y,T.z),S.nextPosition.values.push(N.x,N.y,N.z),S.nextPosition.values.push(N.x,N.y,N.z),S.nextPosition.values.push(N.x,N.y,N.z),S.nextPosition.values.push(N.x,N.y,N.z),m.negate(L,L),m.add(M,L,N),D.position.values.push(N.x,N.y,N.z),D.position.values.push(N.x,N.y,N.z),D.position.values.push(E.x,E.y,E.z,E.x,E.y,E.z),D.prevPosition.values.push(N.x,N.y,N.z),D.prevPosition.values.push(N.x,N.y,N.z),D.prevPosition.values.push(N.x,N.y,N.z),D.prevPosition.values.push(N.x,N.y,N.z),D.nextPosition.values.push(E.x,E.y,E.z,E.x,E.y,E.z),D.nextPosition.values.push(r[C*3],r[C*3+1],r[C*3+2]),D.nextPosition.values.push(r[C*3+3],r[C*3+4],r[C*3+5]);let _=H.fromArray(s,x*2,hQ),b=Math.abs(_.y);S.expandAndWidth.values.push(-1,b,1,b),S.expandAndWidth.values.push(-1,-b,1,-b),D.expandAndWidth.values.push(-1,b,1,b),D.expandAndWidth.values.push(-1,-b,1,-b);let w=m.magnitudeSquared(m.subtract(M,T,A8));if(w/=m.magnitudeSquared(m.subtract(E,T,A8)),l(c)){let I=re.fromArray(c,x*4,pQ),R=re.fromArray(c,C*4,pQ),F=P.lerp(I.x,R.x,w),k=P.lerp(I.y,R.y,w),V=P.lerp(I.z,R.z,w),G=P.lerp(I.w,R.w,w);for(p=x*4;p<x*4+2*4;++p)S.color.values.push(c[p]);for(S.color.values.push(F,k,V,G),S.color.values.push(F,k,V,G),D.color.values.push(F,k,V,G),D.color.values.push(F,k,V,G),p=C*4;p<C*4+2*4;++p)D.color.values.push(c[p])}if(l(a)){let I=H.fromArray(a,x*2,hQ),R=H.fromArray(a,(d+3)*2,SIe),F=P.lerp(I.x,R.x,w);for(p=x*2;p<x*2+2*2;++p)S.st.values.push(a[p]);for(S.st.values.push(F,I.y),S.st.values.push(F,R.y),D.st.values.push(F,I.y),D.st.values.push(F,R.y),p=C*2;p<C*2+2*2;++p)D.st.values.push(a[p])}g=S.position.values.length/3-4,v.push(g,g+2,g+1),v.push(g+1,g+2,g+3),g=D.position.values.length/3-4,O.push(g,g+2,g+1),O.push(g+1,g+2,g+3)}else{let L,N;for(T.y<0?(L=f.attributes,N=f.indices):(L=u.attributes,N=u.indices),L.position.values.push(T.x,T.y,T.z),L.position.values.push(T.x,T.y,T.z),L.position.values.push(E.x,E.y,E.z),L.position.values.push(E.x,E.y,E.z),p=d*3;p<d*3+4*3;++p)L.prevPosition.values.push(o[p]),L.nextPosition.values.push(r[p]);for(p=d*2;p<d*2+4*2;++p)L.expandAndWidth.values.push(s[p]),l(a)&&L.st.values.push(a[p]);if(l(c))for(p=d*4;p<d*4+4*4;++p)L.color.values.push(c[p]);g=L.position.values.length/3-4,N.push(g,g+2,g+1),N.push(g+1,g+2,g+3)}}h&&(_Q(f),_Q(u)),x8(e,f,u)}dc.splitLongitude=function(e){let t=e.geometry,n=t.boundingSphere;if(l(n)&&(n.center.x-n.radius>0||ae.intersectPlane(n,fn.ORIGIN_ZX_PLANE)!==$t.INTERSECTING))return e;if(t.geometryType!==Mf.NONE)switch(t.geometryType){case Mf.POLYLINES:PIe(e);break;case Mf.TRIANGLES:dQ(e);break;case Mf.LINES:mQ(e);break}else pIe(t),t.primitiveType===Le.TRIANGLES?dQ(e):t.primitiveType===Le.LINES&&mQ(e);return e};var Un=dc;function jc(e){this._ellipsoid=y(e,oe.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(jc.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});jc.mercatorAngleToGeodeticLatitude=function(e){return P.PI_OVER_TWO-2*Math.atan(Math.exp(-e))};jc.geodeticLatitudeToMercatorAngle=function(e){e>jc.MaximumLatitude?e=jc.MaximumLatitude:e<-jc.MaximumLatitude&&(e=-jc.MaximumLatitude);let t=Math.sin(e);return .5*Math.log((1+t)/(1-t))};jc.MaximumLatitude=jc.mercatorAngleToGeodeticLatitude(Math.PI);jc.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=jc.geodeticLatitudeToMercatorAngle(e.latitude)*n,r=e.height;return l(t)?(t.x=i,t.y=o,t.z=r,t):new m(i,o,r)};jc.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=jc.mercatorAngleToGeodeticLatitude(e.y*n),r=e.z;return l(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new he(i,o,r)};var Pi=jc;function OIe(e,t,n){let i=!n,o=e.length,r;if(!i&&o>1){let s=e[0].modelMatrix;for(r=1;r<o;++r)if(!B.equals(s,e[r].modelMatrix)){i=!0;break}}if(i)for(r=0;r<o;++r)l(e[r].geometry)&&Un.transformToWorldCoordinates(e[r]);else B.multiplyTransformation(t,e[0].modelMatrix,t)}function T8(e,t){let n=e.attributes,i=n.position,o=i.values.length/i.componentsPerAttribute;n.batchId=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:1,values:new Float32Array(o)});let r=n.batchId.values;for(let s=0;s<o;++s)r[s]=t}function MIe(e){let t=e.length;for(let n=0;n<t;++n){let i=e[n];l(i.geometry)?T8(i.geometry,n):l(i.westHemisphereGeometry)&&l(i.eastHemisphereGeometry)&&(T8(i.westHemisphereGeometry,n),T8(i.eastHemisphereGeometry,n))}}function RIe(e){let t=e.instances,n=e.projection,i=e.elementIndexUintSupported,o=e.scene3DOnly,r=e.vertexCacheOptimize,s=e.compressVertices,a=e.modelMatrix,c,u,f,d=t.length;for(c=0;c<d;++c)if(l(t[c].geometry)){f=t[c].geometry.primitiveType;break}if(OIe(t,a,o),!o)for(c=0;c<d;++c)l(t[c].geometry)&&Un.splitLongitude(t[c]);if(MIe(t),r)for(c=0;c<d;++c){let g=t[c];l(g.geometry)?(Un.reorderForPostVertexCache(g.geometry),Un.reorderForPreVertexCache(g.geometry)):l(g.westHemisphereGeometry)&&l(g.eastHemisphereGeometry)&&(Un.reorderForPostVertexCache(g.westHemisphereGeometry),Un.reorderForPreVertexCache(g.westHemisphereGeometry),Un.reorderForPostVertexCache(g.eastHemisphereGeometry),Un.reorderForPreVertexCache(g.eastHemisphereGeometry))}let p=Un.combineInstances(t);for(d=p.length,c=0;c<d;++c){u=p[c];let g=u.attributes;if(o)for(let h in g)g.hasOwnProperty(h)&&g[h].componentDatatype===X.DOUBLE&&Un.encodeAttribute(u,h,`${h}3DHigh`,`${h}3DLow`);else for(let h in g)if(g.hasOwnProperty(h)&&g[h].componentDatatype===X.DOUBLE){let A=`${h}3D`,x=`${h}2D`;Un.projectTo2D(u,h,A,x,n),l(u.boundingSphere)&&h==="position"&&(u.boundingSphereCV=ae.fromVertices(u.attributes.position2D.values)),Un.encodeAttribute(u,A,`${A}High`,`${A}Low`),Un.encodeAttribute(u,x,`${x}High`,`${x}Low`)}s&&Un.compressVertices(u)}if(!i){let g=[];for(d=p.length,c=0;c<d;++c)u=p[c],g=g.concat(Un.fitToUnsignedShortIndices(u));p=g}return p}function E8(e,t,n,i){let o,r,s,a=i.length-1;if(a>=0){let u=i[a];o=u.offset+u.count,s=u.index,r=n[s].indices.length}else o=0,s=0,r=n[s].indices.length;let c=e.length;for(let u=0;u<c;++u){let d=e[u][t];if(!l(d))continue;let p=d.indices.length;o+p>r&&(o=0,r=n[++s].indices.length),i.push({index:s,offset:o,count:p}),o+=p}}function BIe(e,t){let n=[];return E8(e,"geometry",t,n),E8(e,"westHemisphereGeometry",t,n),E8(e,"eastHemisphereGeometry",t,n),n}var Bh={};Bh.combineGeometry=function(e){let t,n,i=e.instances,o=i.length,r,s,a=!1;o>0&&(t=RIe(e),t.length>0&&(n=Un.createAttributeLocations(t[0]),e.createPickOffsets&&(r=BIe(i,t))),l(i[0].attributes)&&l(i[0].attributes.offset)&&(s=new Array(o),a=!0));let c=new Array(o),u=new Array(o);for(let f=0;f<o;++f){let d=i[f],p=d.geometry;l(p)&&(c[f]=p.boundingSphere,u[f]=p.boundingSphereCV,a&&(s[f]=d.geometry.offsetAttribute));let g=d.eastHemisphereGeometry,h=d.westHemisphereGeometry;l(g)&&l(h)&&(l(g.boundingSphere)&&l(h.boundingSphere)&&(c[f]=ae.union(g.boundingSphere,h.boundingSphere)),l(g.boundingSphereCV)&&l(h.boundingSphereCV)&&(u[f]=ae.union(g.boundingSphereCV,h.boundingSphereCV)))}return{geometries:t,modelMatrix:e.modelMatrix,attributeLocations:n,pickOffsets:r,offsetInstanceExtend:s,boundingSpheres:c,boundingSpheresCV:u}};function LIe(e,t){let n=e.attributes;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];l(o)&&l(o.values)&&t.push(o.values.buffer)}l(e.indices)&&t.push(e.indices.buffer)}function NIe(e,t){let n=e.length;for(let i=0;i<n;++i)LIe(e[i],t)}function FIe(e){let t=1,n=e.length;for(let i=0;i<n;i++){let o=e[i];if(++t,!l(o))continue;let r=o.attributes;t+=7+2*ae.packedLength+(l(o.indices)?o.indices.length:0);for(let s in r)if(r.hasOwnProperty(s)&&l(r[s])){let a=r[s];t+=5+a.values.length}}return t}Bh.packCreateGeometryResults=function(e,t){let n=new Float64Array(FIe(e)),i=[],o={},r=e.length,s=0;n[s++]=r;for(let a=0;a<r;a++){let c=e[a],u=l(c);if(n[s++]=u?1:0,!u)continue;n[s++]=c.primitiveType,n[s++]=c.geometryType,n[s++]=y(c.offsetAttribute,-1);let f=l(c.boundingSphere)?1:0;n[s++]=f,f&&ae.pack(c.boundingSphere,n,s),s+=ae.packedLength;let d=l(c.boundingSphereCV)?1:0;n[s++]=d,d&&ae.pack(c.boundingSphereCV,n,s),s+=ae.packedLength;let p=c.attributes,g=[];for(let A in p)p.hasOwnProperty(A)&&l(p[A])&&(g.push(A),l(o[A])||(o[A]=i.length,i.push(A)));n[s++]=g.length;for(let A=0;A<g.length;A++){let x=g[A],C=p[x];n[s++]=o[x],n[s++]=C.componentDatatype,n[s++]=C.componentsPerAttribute,n[s++]=C.normalize?1:0,n[s++]=C.values.length,n.set(C.values,s),s+=C.values.length}let h=l(c.indices)?c.indices.length:0;n[s++]=h,h>0&&(n.set(c.indices,s),s+=h)}return t.push(n.buffer),{stringTable:i,packedData:n}};Bh.unpackCreateGeometryResults=function(e){let t=e.stringTable,n=e.packedData,i,o=new Array(n[0]),r=0,s=1;for(;s<n.length;){if(!(n[s++]===1)){o[r++]=void 0;continue}let c=n[s++],u=n[s++],f=n[s++];f===-1&&(f=void 0);let d,p;n[s++]===1&&(d=ae.unpack(n,s)),s+=ae.packedLength,n[s++]===1&&(p=ae.unpack(n,s)),s+=ae.packedLength;let A,x,C,T=new _n,E=n[s++];for(i=0;i<E;i++){let v=t[n[s++]],D=n[s++];C=n[s++];let O=n[s++]!==0;A=n[s++],x=X.createTypedArray(D,A);for(let M=0;M<A;M++)x[M]=n[s++];T[v]=new ve({componentDatatype:D,componentsPerAttribute:C,normalize:O,values:x})}let S;if(A=n[s++],A>0){let v=x.length/C;for(S=Ve.createTypedArray(v,A),i=0;i<A;i++)S[i]=n[s++]}o[r++]=new dt({primitiveType:c,geometryType:u,boundingSphere:d,boundingSphereCV:p,indices:S,attributes:T,offsetAttribute:f})}return o};function UIe(e,t){let n=e.length,i=new Float64Array(1+n*19),o=0;i[o++]=n;for(let r=0;r<n;r++){let s=e[r];if(B.pack(s.modelMatrix,i,o),o+=B.packedLength,l(s.attributes)&&l(s.attributes.offset)){let a=s.attributes.offset.value;i[o]=a[0],i[o+1]=a[1],i[o+2]=a[2]}o+=3}return t.push(i.buffer),i}function VIe(e){let t=e,n=new Array(t[0]),i=0,o=1;for(;o<t.length;){let r=B.unpack(t,o),s;o+=B.packedLength,l(t[o])&&(s={offset:new Ki(t[o],t[o+1],t[o+2])}),o+=3,n[i++]={modelMatrix:r,attributes:s}}return n}Bh.packCombineGeometryParameters=function(e,t){let n=e.createGeometryResults,i=n.length;for(let o=0;o<i;o++)t.push(n[o].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:UIe(e.instances,t),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof Di,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}};Bh.unpackCombineGeometryParameters=function(e){let t=VIe(e.packedInstances),n=e.createGeometryResults,i=n.length,o=0;for(let a=0;a<i;a++){let c=Bh.unpackCreateGeometryResults(n[a]),u=c.length;for(let f=0;f<u;f++){let d=c[f],p=t[o];p.geometry=d,++o}}let r=oe.clone(e.ellipsoid),s=e.isGeographic?new Di(r):new Pi(r);return{instances:t,ellipsoid:r,projection:s,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:B.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}};function CQ(e){let t=e.length,n=1+(ae.packedLength+1)*t,i=new Float32Array(n),o=0;i[o++]=t;for(let r=0;r<t;++r){let s=e[r];l(s)?(i[o++]=1,ae.pack(e[r],i,o)):i[o++]=0,o+=ae.packedLength}return i}function TQ(e){let t=new Array(e[0]),n=0,i=1;for(;i<e.length;)e[i++]===1&&(t[n]=ae.unpack(e,i)),++n,i+=ae.packedLength;return t}Bh.packCombineGeometryResults=function(e,t){l(e.geometries)&&NIe(e.geometries,t);let n=CQ(e.boundingSpheres),i=CQ(e.boundingSpheresCV);return t.push(n.buffer,i.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:n,boundingSpheresCV:i}};Bh.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:TQ(e.boundingSpheres),boundingSpheresCV:TQ(e.boundingSpheresCV)}};var iC=Bh;var kIe={READY:0,CREATING:1,CREATED:2,COMBINING:3,COMBINED:4,COMPLETE:5,FAILED:6},Ar=Object.freeze(kIe);var Ol={DISABLED:0,ENABLED:1,CAST_ONLY:2,RECEIVE_ONLY:3};Ol.NUMBER_OF_SHADOW_MODES=4;Ol.castShadows=function(e){return e===Ol.ENABLED||e===Ol.CAST_ONLY};Ol.receiveShadows=function(e){return e===Ol.ENABLED||e===Ol.RECEIVE_ONLY};Ol.fromCastReceive=function(e,t){return e&&t?Ol.ENABLED:e?Ol.CAST_ONLY:t?Ol.RECEIVE_ONLY:Ol.DISABLED};var xn=Object.freeze(Ol);function ur(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this.appearance=e.appearance,this._appearance=void 0,this._material=void 0,this.depthFailAppearance=e.depthFailAppearance,this._depthFailAppearance=void 0,this._depthFailMaterial=void 0,this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._modelMatrix=new B,this.show=y(e.show,!0),this._vertexCacheOptimize=y(e.vertexCacheOptimize,!1),this._interleave=y(e.interleave,!1),this._releaseGeometryInstances=y(e.releaseGeometryInstances,!0),this._allowPicking=y(e.allowPicking,!0),this._asynchronous=y(e.asynchronous,!0),this._compressVertices=y(e.compressVertices,!0),this.cull=y(e.cull,!0),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.rtcCenter=e.rtcCenter,this.shadows=y(e.shadows,xn.DISABLED),this._translucent=void 0,this._state=Ar.READY,this._geometries=[],this._error=void 0,this._numberOfInstances=0,this._boundingSpheres=[],this._boundingSphereWC=[],this._boundingSphereCV=[],this._boundingSphere2D=[],this._boundingSphereMorph=[],this._perInstanceAttributeCache=new Map,this._instanceIds=[],this._lastPerInstanceAttributeIndex=0,this._va=[],this._attributeLocations=void 0,this._primitiveType=void 0,this._frontFaceRS=void 0,this._backFaceRS=void 0,this._sp=void 0,this._depthFailAppearance=void 0,this._spDepthFail=void 0,this._frontFaceDepthFailRS=void 0,this._backFaceDepthFailRS=void 0,this._pickIds=[],this._colorCommands=[],this._pickCommands=[],this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._createRenderStatesFunction=e._createRenderStatesFunction,this._createShaderProgramFunction=e._createShaderProgramFunction,this._createCommandsFunction=e._createCommandsFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._createPickOffsets=e._createPickOffsets,this._pickOffsets=void 0,this._createGeometryResults=void 0,this._ready=!1;let t=this;this._readyPromise=new Promise((n,i)=>{t._completeLoad=(o,r,s)=>{this._error=s,this._state=r,o.afterRender.push(function(){if(t._ready=t._state===Ar.COMPLETE||t._state===Ar.FAILED,!l(s))return n(t),!0;i(s)})}}),this._batchTable=void 0,this._batchTableAttributeIndices=void 0,this._offsetInstanceExtend=void 0,this._batchTableOffsetAttribute2DIndex=void 0,this._batchTableOffsetsUpdated=!1,this._instanceBoundingSpheres=void 0,this._instanceBoundingSpheresCV=void 0,this._tempBoundingSpheres=void 0,this._recomputeBoundingSpheres=!1,this._batchTableBoundingSpheresUpdated=!1,this._batchTableBoundingSphereAttributeIndices=void 0}Object.defineProperties(ur.prototype,{vertexCacheOptimize:{get:function(){return this._vertexCacheOptimize}},interleave:{get:function(){return this._interleave}},releaseGeometryInstances:{get:function(){return this._releaseGeometryInstances}},allowPicking:{get:function(){return this._allowPicking}},asynchronous:{get:function(){return this._asynchronous}},compressVertices:{get:function(){return this._compressVertices}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Primitive.readyPromise","Primitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Primitive.ready to return true instead."),this._readyPromise}}});function zIe(e){let t=e.length,n=[],i=e[0].attributes,o;for(o in i)if(i.hasOwnProperty(o)&&l(i[o])){let r=i[o],s=!0;for(let a=1;a<t;++a){let c=e[a].attributes[o];if(!l(c)||r.componentDatatype!==c.componentDatatype||r.componentsPerAttribute!==c.componentsPerAttribute||r.normalize!==c.normalize){s=!1;break}}s&&n.push(o)}return n}var HIe=new H,GIe=new m,OQ=new re;function MQ(e){let t=e.length;if(t===1)return e[0];if(t===2)return H.unpack(e,0,HIe);if(t===3)return m.unpack(e,0,GIe);if(t===4)return re.unpack(e,0,OQ)}function WIe(e,t){let n=e.geometryInstances,i=Array.isArray(n)?n:[n],o=i.length;if(o===0)return;let r=zIe(i),s=r.length,a=[],c={},u={},f,p=i[0].attributes,g,h,A;for(g=0;g<s;++g)h=r[g],A=p[h],c[h]=g,a.push({functionName:`czm_batchTable_${h}`,componentDatatype:A.componentDatatype,componentsPerAttribute:A.componentsPerAttribute,normalize:A.normalize});r.indexOf("distanceDisplayCondition")!==-1&&(a.push({functionName:"czm_batchTable_boundingSphereCenter3DHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter3DLow",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DLow",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereRadius",componentDatatype:X.FLOAT,componentsPerAttribute:1}),u.center3DHigh=a.length-5,u.center3DLow=a.length-4,u.center2DHigh=a.length-3,u.center2DLow=a.length-2,u.radius=a.length-1),r.indexOf("offset")!==-1&&(a.push({functionName:"czm_batchTable_offset2D",componentDatatype:X.FLOAT,componentsPerAttribute:3}),f=a.length-1),a.push({functionName:"czm_batchTable_pickColor",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0});let x=a.length,C=new Zx(t,a,o);for(g=0;g<o;++g){let T=i[g];p=T.attributes;for(let O=0;O<s;++O){h=r[O],A=p[h];let M=MQ(A.value),L=c[h];C.setBatchedAttribute(g,L,M)}let E={primitive:y(T.pickPrimitive,e)};l(T.id)&&(E.id=T.id);let S=t.createPickId(E);e._pickIds.push(S);let v=S.color,D=OQ;D.x=z.floatToByte(v.red),D.y=z.floatToByte(v.green),D.z=z.floatToByte(v.blue),D.w=z.floatToByte(v.alpha),C.setBatchedAttribute(g,x-1,D)}e._batchTable=C,e._batchTableAttributeIndices=c,e._batchTableBoundingSphereAttributeIndices=u,e._batchTableOffsetAttribute2DIndex=f}function jIe(e){let t;return Array.isArray(e.values)?t=e.values.slice(0):t=new e.values.constructor(e.values),new ve({componentDatatype:e.componentDatatype,componentsPerAttribute:e.componentsPerAttribute,normalize:e.normalize,values:t})}function YIe(e){let t=e.attributes,n=new _n;for(let o in t)t.hasOwnProperty(o)&&l(t[o])&&(n[o]=jIe(t[o]));let i;if(l(e.indices)){let o=e.indices;Array.isArray(o)?i=o.slice(0):i=new o.constructor(o)}return new dt({attributes:n,indices:i,primitiveType:e.primitiveType,boundingSphere:ae.clone(e.boundingSphere)})}function qIe(e,t){return{geometry:t,attributes:e.attributes,modelMatrix:B.clone(e.modelMatrix),pickPrimitive:e.pickPrimitive,id:e.id}}var XIe=/in\s+vec(?:3|4)\s+(.*)3DHigh;/g;ur._modifyShaderPosition=function(e,t,n){let i,o="",r="",s="";for(;(i=XIe.exec(t))!==null;){let a=i[1],c=`vec4 czm_compute${a[0].toUpperCase()}${a.substr(1)}()`;c!=="vec4 czm_computePosition()"&&(o+=`${c}; +`),l(e.rtcCenter)?(t=t.replace(/in\s+vec(?:3|4)\s+position3DHigh;/g,""),t=t.replace(/in\s+vec(?:3|4)\s+position3DLow;/g,""),o+=`uniform mat4 u_modifiedModelView; +`,r+=`in vec4 position; +`,s+=`${c} +{ + return u_modifiedModelView * position; +} + +`,t=t.replace(/czm_modelViewRelativeToEye\s+\*\s+/g,""),t=t.replace(/czm_modelViewProjectionRelativeToEye/g,"czm_projection")):n?s+=`${c} +{ + return czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow); +} + +`:(r+=`in vec3 ${a}2DHigh; +in vec3 ${a}2DLow; +`,s+=`${c} +{ + vec4 p; + if (czm_morphTime == 1.0) + { + p = czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow); + } + else if (czm_morphTime == 0.0) + { + p = czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy); + } + else + { + p = czm_columbusViewMorph( + czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy), + czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow), + czm_morphTime); + } + return p; +} + +`)}return[o,r,t,s].join(` +`)};ur._appendShowToShader=function(e,t){return l(e._batchTableAttributeIndices.show)?`${He.replaceMain(t,"czm_non_show_main")} +void main() +{ + czm_non_show_main(); + gl_Position *= czm_batchTable_show(batchId); +}`:t};ur._updateColorAttribute=function(e,t,n){if(!l(e._batchTableAttributeIndices.color)&&!l(e._batchTableAttributeIndices.depthFailColor)||t.search(/in\s+vec4\s+color;/g)===-1)return t;let i=t;return i=i.replace(/in\s+vec4\s+color;/g,""),n?i=i.replace(/(\b)color(\b)/g,"$1czm_batchTable_depthFailColor(batchId)$2"):i=i.replace(/(\b)color(\b)/g,"$1czm_batchTable_color(batchId)$2"),i};function EQ(e){return`${He.replaceMain(e,"czm_non_pick_main")} +out vec4 v_pickColor; +void main() +{ + czm_non_pick_main(); + v_pickColor = czm_batchTable_pickColor(batchId); +}`}function bQ(e){return`in vec4 v_pickColor; +${e}`}ur._updatePickColorAttribute=function(e){let t=e.replace(/in\s+vec4\s+pickColor;/g,"");return t=t.replace(/(\b)pickColor(\b)/g,"$1czm_batchTable_pickColor(batchId)$2"),t};ur._appendOffsetToShader=function(e,t){if(!l(e._batchTableAttributeIndices.offset))return t;let n=`in float batchId; +`;n+="in float applyOffset;";let i=t.replace(/in\s+float\s+batchId;/g,n),o=`vec4 $1 = czm_computePosition(); +`;return o+=` if (czm_sceneMode == czm_sceneMode3D) +`,o+=` { +`,o+=" $1 = $1 + vec4(czm_batchTable_offset(batchId) * applyOffset, 0.0);",o+=` } +`,o+=` else +`,o+=` { +`,o+=" $1 = $1 + vec4(czm_batchTable_offset2D(batchId) * applyOffset, 0.0);",o+=` } +`,i=i.replace(/vec4\s+([A-Za-z0-9_]+)\s+=\s+czm_computePosition\(\);/g,o),i};ur._appendDistanceDisplayConditionToShader=function(e,t,n){if(!l(e._batchTableAttributeIndices.distanceDisplayCondition))return t;let i=He.replaceMain(t,"czm_non_distanceDisplayCondition_main"),o=`void main() +{ + czm_non_distanceDisplayCondition_main(); + vec2 distanceDisplayCondition = czm_batchTable_distanceDisplayCondition(batchId); + vec3 boundingSphereCenter3DHigh = czm_batchTable_boundingSphereCenter3DHigh(batchId); + vec3 boundingSphereCenter3DLow = czm_batchTable_boundingSphereCenter3DLow(batchId); + float boundingSphereRadius = czm_batchTable_boundingSphereRadius(batchId); +`;return n?o+=` vec4 centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow); +`:o+=` vec3 boundingSphereCenter2DHigh = czm_batchTable_boundingSphereCenter2DHigh(batchId); + vec3 boundingSphereCenter2DLow = czm_batchTable_boundingSphereCenter2DLow(batchId); + vec4 centerRTE; + if (czm_morphTime == 1.0) + { + centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow); + } + else if (czm_morphTime == 0.0) + { + centerRTE = czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy); + } + else + { + centerRTE = czm_columbusViewMorph( + czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy), + czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow), + czm_morphTime); + } +`,o+=` float radiusSq = boundingSphereRadius * boundingSphereRadius; + float distanceSq; + if (czm_sceneMode == czm_sceneMode2D) + { + distanceSq = czm_eyeHeight2D.y - radiusSq; + } + else + { + distanceSq = dot(centerRTE.xyz, centerRTE.xyz) - radiusSq; + } + distanceSq = max(distanceSq, 0.0); + float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; + float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; + float show = (distanceSq >= nearSq && distanceSq <= farSq) ? 1.0 : 0.0; + gl_Position *= show; +}`,`${i} +${o}`};function SQ(e,t){if(!e.compressVertices)return t;let n=t.search(/in\s+vec3\s+normal;/g)!==-1,i=t.search(/in\s+vec2\s+st;/g)!==-1;if(!n&&!i)return t;let o=t.search(/in\s+vec3\s+tangent;/g)!==-1,r=t.search(/in\s+vec3\s+bitangent;/g)!==-1,s=i&&n?2:1;s+=o||r?1:0;let a=s>1?`vec${s}`:"float",c="compressedAttributes",u=`in ${a} ${c};`,f="",d="";if(i){f+=`vec2 st; +`;let h=s>1?`${c}.x`:c;d+=` st = czm_decompressTextureCoordinates(${h}); +`}n&&o&&r?(f+=`vec3 normal; +vec3 tangent; +vec3 bitangent; +`,d+=` czm_octDecode(${c}.${i?"yz":"xy"}, normal, tangent, bitangent); +`):(n&&(f+=`vec3 normal; +`,d+=` normal = czm_octDecode(${c}${s>1?`.${i?"y":"x"}`:""}); +`),o&&(f+=`vec3 tangent; +`,d+=` tangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`),r&&(f+=`vec3 bitangent; +`,d+=` bitangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`));let p=t;p=p.replace(/in\s+vec3\s+normal;/g,""),p=p.replace(/in\s+vec2\s+st;/g,""),p=p.replace(/in\s+vec3\s+tangent;/g,""),p=p.replace(/in\s+vec3\s+bitangent;/g,""),p=He.replaceMain(p,"czm_non_compressed_main");let g=`void main() +{ +${d} czm_non_compressed_main(); +}`;return[u,f,p,g].join(` +`)}function KIe(e){let t=He.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + gl_Position = czm_depthClamp(gl_Position);} +`,t}function JIe(e){let t=He.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + #if defined(LOG_DEPTH) + czm_writeLogDepth(); + #else + czm_writeDepthClamp(); + #endif +} +`,t}function wQ(e,t){let n=e.vertexAttributes}function ZIe(e,t){return function(){return e[t]}}var b8=Math.max(Gt.hardwareConcurrency-1,1),_R,QIe=new pi("combineGeometry");function $Ie(e,t){let n,i,o,r,s=e._instanceIds;if(e._state===Ar.READY){n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let a=e._numberOfInstances=n.length,c=[],u=[];for(o=0;o<a;++o)i=n[o].geometry,s.push(n[o].id),u.push({moduleName:i._workerName,geometry:i});if(!l(_R))for(_R=new Array(b8),o=0;o<b8;o++)_R[o]=new pi("createGeometry");let f;for(u=sR(u,b8),o=0;o<u.length;o++){let d=0,p=u[o],g=p.length;for(r=0;r<g;++r)f=p[r],i=f.geometry,l(i.constructor.pack)&&(f.offset=d,d+=y(i.constructor.packedLength,i.packedLength));let h;if(d>0){let A=new Float64Array(d);for(h=[A.buffer],r=0;r<g;++r)f=p[r],i=f.geometry,l(i.constructor.pack)&&(i.constructor.pack(i,A,f.offset),f.geometry=A)}c.push(_R[o].scheduleTask({subTasks:u[o]},h))}e._state=Ar.CREATING,Promise.all(c).then(function(d){e._createGeometryResults=d,e._state=Ar.CREATED}).catch(function(d){gS(e,t,Ar.FAILED,d)})}else if(e._state===Ar.CREATED){let a=[];n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let c=t.scene3DOnly,u=t.mapProjection,f=QIe.scheduleTask(iC.packCombineGeometryParameters({createGeometryResults:e._createGeometryResults,instances:n,ellipsoid:u.ellipsoid,projection:u,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:c,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets},a),a);e._createGeometryResults=void 0,e._state=Ar.COMBINING,Promise.resolve(f).then(function(d){let p=iC.unpackCombineGeometryResults(d);e._geometries=p.geometries,e._attributeLocations=p.attributeLocations,e.modelMatrix=B.clone(p.modelMatrix,e.modelMatrix),e._pickOffsets=p.pickOffsets,e._offsetInstanceExtend=p.offsetInstanceExtend,e._instanceBoundingSpheres=p.boundingSpheres,e._instanceBoundingSpheresCV=p.boundingSpheresCV,l(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=Ar.COMBINED):gS(e,t,Ar.FAILED,void 0)}).catch(function(d){gS(e,t,Ar.FAILED,d)})}}function ePe(e,t){let n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances],i=e._numberOfInstances=n.length,o=new Array(i),r=e._instanceIds,s,a,c=0;for(a=0;a<i;a++){s=n[a];let p=s.geometry,g;l(p.attributes)&&l(p.primitiveType)?g=YIe(p):g=p.constructor.createGeometry(p),o[c++]=qIe(s,g),r.push(s.id)}o.length=c;let u=t.scene3DOnly,f=t.mapProjection,d=iC.combineGeometry({instances:o,ellipsoid:f.ellipsoid,projection:f,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:u,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets});e._geometries=d.geometries,e._attributeLocations=d.attributeLocations,e.modelMatrix=B.clone(d.modelMatrix,e.modelMatrix),e._pickOffsets=d.pickOffsets,e._offsetInstanceExtend=d.offsetInstanceExtend,e._instanceBoundingSpheres=d.boundingSpheres,e._instanceBoundingSpheresCV=d.boundingSpheresCV,l(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=Ar.COMBINED):gS(e,t,Ar.FAILED,void 0)}function tPe(e,t){let n=e._batchTableAttributeIndices.offset;if(!e._recomputeBoundingSpheres||!l(n)){e._recomputeBoundingSpheres=!1;return}let i,o=e._offsetInstanceExtend,r=e._instanceBoundingSpheres,s=r.length,a=e._tempBoundingSpheres;if(!l(a)){for(a=new Array(s),i=0;i<s;i++)a[i]=new ae;e._tempBoundingSpheres=a}for(i=0;i<s;++i){let A=a[i],x=e._batchTable.getBatchedAttribute(i,n,new m);A=r[i].clone(A),NQ(A,x,o[i])}let c=[],u=[],f=[];for(i=0;i<s;++i){let A=a[i];A.center.x-A.radius>0||ae.intersectPlane(A,fn.ORIGIN_ZX_PLANE)!==$t.INTERSECTING?c.push(A):(u.push(A),f.push(A))}let d=c[0],p=f[0],g=u[0];for(i=1;i<c.length;i++)d=ae.union(d,c[i]);for(i=1;i<f.length;i++)p=ae.union(p,f[i]);for(i=1;i<u.length;i++)g=ae.union(g,u[i]);let h=[];for(l(d)&&h.push(d),l(p)&&h.push(p),l(g)&&h.push(g),i=0;i<h.length;i++){let A=h[i].clone(e._boundingSpheres[i]);e._boundingSpheres[i]=A,e._boundingSphereCV[i]=ae.projectTo2D(A,t.mapProjection,e._boundingSphereCV[i])}ur._updateBoundingVolumes(e,t,e.modelMatrix,!0),e._recomputeBoundingSpheres=!1}var vQ=new Yn,RQ=new he,BQ=new m,LQ=new ae;function nPe(e,t){if(!l(e._batchTableAttributeIndices.distanceDisplayCondition)||e._batchTableBoundingSpheresUpdated)return;let i=e._batchTableBoundingSphereAttributeIndices,o=i.center3DHigh,r=i.center3DLow,s=i.center2DHigh,a=i.center2DLow,c=i.radius,u=t.mapProjection,f=u.ellipsoid,d=e._batchTable,p=e._instanceBoundingSpheres,g=p.length;for(let h=0;h<g;++h){let A=p[h];if(!l(A))continue;let x=e.modelMatrix;l(x)&&(A=ae.transform(A,x,LQ));let C=A.center,T=A.radius,E=Yn.fromCartesian(C,vQ);if(d.setBatchedAttribute(h,o,E.high),d.setBatchedAttribute(h,r,E.low),!t.scene3DOnly){let S=f.cartesianToCartographic(C,RQ),v=u.project(S,BQ);E=Yn.fromCartesian(v,vQ),d.setBatchedAttribute(h,s,E.high),d.setBatchedAttribute(h,a,E.low)}d.setBatchedAttribute(h,c,T)}e._batchTableBoundingSpheresUpdated=!0}var S8=new m,iPe=new m;function DQ(e,t){if(!l(e._batchTableAttributeIndices.offset)||e._batchTableOffsetsUpdated||t.scene3DOnly)return;let i=e._batchTableOffsetAttribute2DIndex,o=t.mapProjection,r=o.ellipsoid,s=e._batchTable,a=e._instanceBoundingSpheres,c=a.length;for(let u=0;u<c;++u){let f=a[u];if(!l(f))continue;let d=s.getBatchedAttribute(u,e._batchTableAttributeIndices.offset);if(m.equals(d,m.ZERO)){s.setBatchedAttribute(u,i,m.ZERO);continue}let p=e.modelMatrix;l(p)&&(f=ae.transform(f,p,LQ));let g=f.center;g=r.scaleToGeodeticSurface(g,iPe);let h=r.cartesianToCartographic(g,RQ),A=o.project(h,BQ),x=m.add(d,g,S8);h=r.cartesianToCartographic(x,h);let C=o.project(h,S8),T=m.subtract(C,A,S8),E=T.x;T.x=T.z,T.z=T.y,T.y=E,s.setBatchedAttribute(u,i,T)}e._batchTableOffsetsUpdated=!0}function oPe(e,t){let n=e._attributeLocations,i=e._geometries,o=t.scene3DOnly,r=t.context,s=[],a=i.length;for(let c=0;c<a;++c){let u=i[c];if(s.push(ri.fromGeometry({context:r,geometry:u,attributeLocations:n,bufferUsage:Fe.STATIC_DRAW,interleave:e._interleave})),l(e._createBoundingVolumeFunction))e._createBoundingVolumeFunction(t,u);else if(e._boundingSpheres.push(ae.clone(u.boundingSphere)),e._boundingSphereWC.push(new ae),!o){let f=u.boundingSphereCV.center,d=f.x,p=f.y,g=f.z;f.x=g,f.y=d,f.z=p,e._boundingSphereCV.push(ae.clone(u.boundingSphereCV)),e._boundingSphere2D.push(new ae),e._boundingSphereMorph.push(new ae)}}e._va=s,e._primitiveType=i[0].primitiveType,e.releaseGeometryInstances&&(e.geometryInstances=void 0),e._geometries=void 0,gS(e,t,Ar.COMPLETE,void 0)}function rPe(e,t,n,i){let o=n.getRenderState(),r;i?(r=Ye(o,!1),r.cull={enabled:!0,face:gi.BACK},e._frontFaceRS=ze.fromCache(r),r.cull.face=gi.FRONT,e._backFaceRS=ze.fromCache(r)):(e._frontFaceRS=ze.fromCache(o),e._backFaceRS=e._frontFaceRS),r=Ye(o,!1),l(e._depthFailAppearance)&&(r.depthTest.enabled=!1),l(e._depthFailAppearance)&&(o=e._depthFailAppearance.getRenderState(),r=Ye(o,!1),r.depthTest.func=fc.GREATER,i?(r.cull={enabled:!0,face:gi.BACK},e._frontFaceDepthFailRS=ze.fromCache(r),r.cull.face=gi.FRONT,e._backFaceDepthFailRS=ze.fromCache(r)):(e._frontFaceDepthFailRS=ze.fromCache(r),e._backFaceDepthFailRS=e._frontFaceRS))}function sPe(e,t,n){let i=t.context,o=e._attributeLocations,r=e._batchTable.getVertexShaderCallback()(n.vertexShaderSource);r=ur._appendOffsetToShader(e,r),r=ur._appendShowToShader(e,r),r=ur._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=EQ(r),r=ur._updateColorAttribute(e,r,!1),r=SQ(e,r),r=ur._modifyShaderPosition(e,r,t.scene3DOnly);let s=n.getFragmentShaderSource();s=bQ(s),e._sp=Jt.replaceCache({context:i,shaderProgram:e._sp,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),wQ(e._sp,o),l(e._depthFailAppearance)&&(r=e._batchTable.getVertexShaderCallback()(e._depthFailAppearance.vertexShaderSource),r=ur._appendShowToShader(e,r),r=ur._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=EQ(r),r=ur._updateColorAttribute(e,r,!0),r=SQ(e,r),r=ur._modifyShaderPosition(e,r,t.scene3DOnly),r=KIe(r),s=e._depthFailAppearance.getFragmentShaderSource(),s=bQ(s),s=JIe(s),e._spDepthFail=Jt.replaceCache({context:i,shaderProgram:e._spDepthFail,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),wQ(e._spDepthFail,o))}var _S=new B,IQ=new m;function PQ(e,t,n,i){let o=l(n)?n._uniforms:void 0,r={},s=t.uniforms;if(l(s))for(let c in s)s.hasOwnProperty(c)&&(r[c]=ZIe(s,c));let a=gt(r,o);return a=e._batchTable.getUniformMapCallback()(a),l(e.rtcCenter)&&(a.u_modifiedModelView=function(){let c=i.context.uniformState.view;return B.multiply(c,e._modelMatrix,_S),B.multiplyByPoint(_S,e.rtcCenter,IQ),B.setTranslation(_S,IQ,_S),_S}),a}function aPe(e,t,n,i,o,r,s,a){let c=PQ(e,t,n,a),u;l(e._depthFailAppearance)&&(u=PQ(e,e._depthFailAppearance,e._depthFailAppearance.material,a));let f=i?be.TRANSLUCENT:be.OPAQUE,d=o?2:1;d*=l(e._depthFailAppearance)?2:1,r.length=e._va.length*d;let p=r.length,g=0;for(let h=0;h<p;++h){let A;o&&(A=r[h],l(A)||(A=r[h]=new it({owner:e,primitiveType:e._primitiveType})),A.vertexArray=e._va[g],A.renderState=e._backFaceRS,A.shaderProgram=e._sp,A.uniformMap=c,A.pass=f,++h),A=r[h],l(A)||(A=r[h]=new it({owner:e,primitiveType:e._primitiveType})),A.vertexArray=e._va[g],A.renderState=e._frontFaceRS,A.shaderProgram=e._sp,A.uniformMap=c,A.pass=f,l(e._depthFailAppearance)&&(o&&(++h,A=r[h],l(A)||(A=r[h]=new it({owner:e,primitiveType:e._primitiveType})),A.vertexArray=e._va[g],A.renderState=e._backFaceDepthFailRS,A.shaderProgram=e._spDepthFail,A.uniformMap=u,A.pass=f),++h,A=r[h],l(A)||(A=r[h]=new it({owner:e,primitiveType:e._primitiveType})),A.vertexArray=e._va[g],A.renderState=e._frontFaceDepthFailRS,A.shaderProgram=e._spDepthFail,A.uniformMap=u,A.pass=f),++g}}ur._updateBoundingVolumes=function(e,t,n,i){let o,r,s;if(i||!B.equals(n,e._modelMatrix))for(B.clone(n,e._modelMatrix),r=e._boundingSpheres.length,o=0;o<r;++o)s=e._boundingSpheres[o],l(s)&&(e._boundingSphereWC[o]=ae.transform(s,n,e._boundingSphereWC[o]),t.scene3DOnly||(e._boundingSphere2D[o]=ae.clone(e._boundingSphereCV[o],e._boundingSphere2D[o]),e._boundingSphere2D[o].center.x=0,e._boundingSphereMorph[o]=ae.union(e._boundingSphereWC[o],e._boundingSphereCV[o])));let a=e.appearance.pixelSize;if(l(a))for(r=e._boundingSpheres.length,o=0;o<r;++o){s=e._boundingSpheres[o];let c=e._boundingSphereWC[o],f=t.camera.getPixelSize(s,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*a;c.radius=s.radius+f}};function cPe(e,t,n,i,o,r,s,a){ur._updateBoundingVolumes(e,t,o);let c;t.mode===ne.SCENE3D?c=e._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?c=e._boundingSphereCV:t.mode===ne.SCENE2D&&l(e._boundingSphere2D)?c=e._boundingSphere2D:l(e._boundingSphereMorph)&&(c=e._boundingSphereMorph);let u=t.commandList,f=t.passes;if(f.render||f.pick){let d=e.allowPicking,p=xn.castShadows(e.shadows),g=xn.receiveShadows(e.shadows),h=n.length,A=a?2:1;A*=l(e._depthFailAppearance)?2:1;for(let x=0;x<h;++x){let C=Math.floor(x/A),T=n[x];T.modelMatrix=o,T.boundingVolume=c[C],T.cull=r,T.debugShowBoundingVolume=s,T.castShadows=p,T.receiveShadows=g,d?T.pickId="v_pickColor":T.pickId=void 0,u.push(T)}}}ur.prototype.update=function(e){if(!l(this.geometryInstances)&&this._va.length===0||l(this.geometryInstances)&&Array.isArray(this.geometryInstances)&&this.geometryInstances.length===0||!l(this.appearance)||e.mode!==ne.SCENE3D&&e.scene3DOnly||!e.passes.render&&!e.passes.pick)return;if(l(this._error))throw this._error;if(this._state===Ar.FAILED)return;let t=e.context;if(l(this._batchTable)||WIe(this,t),this._batchTable.attributes.length>0){if(zt.maximumVertexTextureImageUnits===0)throw new de("Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero.");this._batchTable.update(e)}if(this._state!==Ar.COMPLETE&&this._state!==Ar.COMBINED&&(this.asynchronous?$Ie(this,e):ePe(this,e)),this._state===Ar.COMBINED&&(nPe(this,e),DQ(this,e),oPe(this,e)),!this.show||this._state!==Ar.COMPLETE)return;this._batchTableOffsetsUpdated||DQ(this,e),this._recomputeBoundingSpheres&&tPe(this,e);let n=this.appearance,i=n.material,o=!1,r=!1;this._appearance!==n?(this._appearance=n,this._material=i,o=!0,r=!0):this._material!==i&&(this._material=i,r=!0);let s=this.depthFailAppearance,a=l(s)?s.material:void 0;this._depthFailAppearance!==s?(this._depthFailAppearance=s,this._depthFailMaterial=a,o=!0,r=!0):this._depthFailMaterial!==a&&(this._depthFailMaterial=a,r=!0);let c=this._appearance.isTranslucent();this._translucent!==c&&(this._translucent=c,o=!0),l(this._material)&&this._material.update(t);let u=n.closed&&c;o&&y(this._createRenderStatesFunction,rPe)(this,t,n,u),r&&y(this._createShaderProgramFunction,sPe)(this,e,n),(o||r)&&y(this._createCommandsFunction,aPe)(this,n,i,c,u,this._colorCommands,this._pickCommands,e),y(this._updateAndQueueCommandsFunction,cPe)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,u)};var lPe=new ae,uPe=new ae;function NQ(e,t,n){if(n===rn.TOP){let i=ae.clone(e,lPe),o=ae.clone(e,uPe);o.center=m.add(o.center,t,o.center),e=ae.union(i,o,e)}else n===rn.ALL&&(e.center=m.add(e.center,t,e.center));return e}function fPe(e,t,n){return function(){let i=e.getBatchedAttribute(t,n),o=e.attributes[n],r=o.componentsPerAttribute,s=X.createTypedArray(o.componentDatatype,r);return l(i.constructor.pack)?i.constructor.pack(i,s,0):s[0]=i,s}}function dPe(e,t,n,i,o){return function(r){let s=MQ(r);e.setBatchedAttribute(t,n,s),o==="offset"&&(i._recomputeBoundingSpheres=!0,i._batchTableOffsetsUpdated=!1)}}var mPe=new m;function hPe(e,t,n){t.boundingSphere={get:function(){let i=e._instanceBoundingSpheres[n];if(l(i)){i=i.clone();let o=e.modelMatrix,r=t.offset;l(r)&&NQ(i,m.fromArray(r.get(),0,mPe),e._offsetInstanceExtend[n]),l(o)&&(i=ae.transform(i,o))}return i}},t.boundingSphereCV={get:function(){return e._instanceBoundingSpheresCV[n]}}}function pPe(e,t,n){t.pickId={get:function(){return e._pickIds[n]}}}ur.prototype.getGeometryInstanceAttributes=function(e){let t=this._perInstanceAttributeCache.get(e);if(l(t))return t;let n=-1,i=this._lastPerInstanceAttributeIndex,o=this._instanceIds,r=o.length;for(let u=0;u<r;++u){let f=(i+u)%r;if(e===o[f]){n=f;break}}if(n===-1)return;let s=this._batchTable,a=this._batchTableAttributeIndices;t={};let c={};for(let u in a)if(a.hasOwnProperty(u)){let f=a[u];c[u]={get:fPe(s,n,f),set:dPe(s,n,f,this,u)}}return hPe(this,c,n),pPe(this,c,n),Object.defineProperties(t,c),this._lastPerInstanceAttributeIndex=n,this._perInstanceAttributeCache.set(e,t),t};ur.prototype.isDestroyed=function(){return!1};ur.prototype.destroy=function(){let e,t;this._sp=this._sp&&this._sp.destroy(),this._spDepthFail=this._spDepthFail&&this._spDepthFail.destroy();let n=this._va;for(e=n.length,t=0;t<e;++t)n[t].destroy();this._va=void 0;let i=this._pickIds;for(e=i.length,t=0;t<e;++t)i[t].destroy();return this._pickIds=void 0,this._batchTable=this._batchTable&&this._batchTable.destroy(),this._instanceIds=void 0,this._perInstanceAttributeCache=void 0,this._attributeLocations=void 0,ue(this)};function gS(e,t,n,i){e._completeLoad(t,n,i)}var wn=ur;function _Pe(e){e=y(e,y.EMPTY_OBJECT),this.componentDatatype=e.componentDatatype,this.componentsPerAttribute=e.componentsPerAttribute,this.normalize=y(e.normalize,!1),this.value=e.value}var mc=_Pe;var yS=`#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL +in vec4 v_sphericalExtents; +#else // SPHERICAL +in vec2 v_inversePlaneExtents; +in vec4 v_westPlane; +in vec4 v_southPlane; +#endif // SPHERICAL +in vec3 v_uvMinAndSphericalLongitudeRotation; +in vec3 v_uMaxAndInverseDistance; +in vec3 v_vMaxAndInverseDistance; +#endif // TEXTURE_COORDINATES + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#endif + +#ifdef NORMAL_EC +vec3 getEyeCoordinate3FromWindowCoordinate(vec2 fragCoord, float logDepthOrDepth) { + vec4 eyeCoordinate = czm_windowToEyeCoordinates(fragCoord, logDepthOrDepth); + return eyeCoordinate.xyz / eyeCoordinate.w; +} + +vec3 vectorFromOffset(vec4 eyeCoordinate, vec2 positiveOffset) { + vec2 glFragCoordXY = gl_FragCoord.xy; + // Sample depths at both offset and negative offset + float upOrRightLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY + positiveOffset) / czm_viewport.zw)); + float downOrLeftLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY - positiveOffset) / czm_viewport.zw)); + // Explicitly evaluate both paths + // Necessary for multifrustum and for edges of the screen + bvec2 upOrRightInBounds = lessThan(glFragCoordXY + positiveOffset, czm_viewport.zw); + float useUpOrRight = float(upOrRightLogDepth > 0.0 && upOrRightInBounds.x && upOrRightInBounds.y); + float useDownOrLeft = float(useUpOrRight == 0.0); + vec3 upOrRightEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY + positiveOffset, upOrRightLogDepth); + vec3 downOrLeftEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY - positiveOffset, downOrLeftLogDepth); + return (upOrRightEC - (eyeCoordinate.xyz / eyeCoordinate.w)) * useUpOrRight + ((eyeCoordinate.xyz / eyeCoordinate.w) - downOrLeftEC) * useDownOrLeft; +} +#endif // NORMAL_EC + +void main(void) +{ +#ifdef REQUIRES_EC + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)); + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); +#endif + +#ifdef REQUIRES_WC + vec4 worldCoordinate4 = czm_inverseView * eyeCoordinate; + vec3 worldCoordinate = worldCoordinate4.xyz / worldCoordinate4.w; +#endif + +#ifdef TEXTURE_COORDINATES + vec2 uv; +#ifdef SPHERICAL + // Treat world coords as a sphere normal for spherical coordinates + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(worldCoordinate); + sphericalLatLong.y += v_uvMinAndSphericalLongitudeRotation.z; + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + uv.x = (sphericalLatLong.y - v_sphericalExtents.y) * v_sphericalExtents.w; + uv.y = (sphericalLatLong.x - v_sphericalExtents.x) * v_sphericalExtents.z; +#else // SPHERICAL + // Unpack planes and transform to eye space + uv.x = czm_planeDistance(v_westPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.x; + uv.y = czm_planeDistance(v_southPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.y; +#endif // SPHERICAL +#endif // TEXTURE_COORDINATES + +#ifdef PICK +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + // Check for logDepthOrDepth != 0.0 to make sure this should be classified. + if (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0 || logDepthOrDepth != 0.0) { + out_FragColor.a = 1.0; // 0.0 alpha leads to discard from ShaderSource.createPickFragmentShaderSource + czm_writeDepthClamp(); + } +#else // CULL_FRAGMENTS + out_FragColor.a = 1.0; +#endif // CULL_FRAGMENTS +#else // PICK + +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || logDepthOrDepth == 0.0) { + discard; + } +#endif + +#ifdef NORMAL_EC + // Compute normal by sampling adjacent pixels in 2x2 block in screen space + vec3 downUp = vectorFromOffset(eyeCoordinate, vec2(0.0, 1.0)); + vec3 leftRight = vectorFromOffset(eyeCoordinate, vec2(1.0, 0.0)); + vec3 normalEC = normalize(cross(leftRight, downUp)); +#endif + + +#ifdef PER_INSTANCE_COLOR + + vec4 color = czm_gammaCorrect(v_color); +#ifdef FLAT + out_FragColor = color; +#else // FLAT + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = -eyeCoordinate.xyz; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#else // PER_INSTANCE_COLOR + + // Material support. + // USES_ is distinct from REQUIRES_, because some things are dependencies of each other or + // dependencies for culling but might not actually be used by the material. + + czm_materialInput materialInput; + +#ifdef USES_NORMAL_EC + materialInput.normalEC = normalEC; +#endif + +#ifdef USES_POSITION_TO_EYE_EC + materialInput.positionToEyeEC = -eyeCoordinate.xyz; +#endif + +#ifdef USES_TANGENT_TO_EYE + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(worldCoordinate, normalEC); +#endif + +#ifdef USES_ST + // Remap texture coordinates from computed (approximately aligned with cartographic space) to the desired + // texture coordinate system, which typically forms a tight oriented bounding box around the geometry. + // Shader is provided a set of reference points for remapping. + materialInput.st.x = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_uMaxAndInverseDistance.xy, uv) * v_uMaxAndInverseDistance.z; + materialInput.st.y = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_vMaxAndInverseDistance.xy, uv) * v_vMaxAndInverseDistance.z; +#endif + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else // FLAT + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#endif // PER_INSTANCE_COLOR + czm_writeDepthClamp(); +#endif // PICK +} +`;function Ou(e,t,n){this._projectionExtentDefines={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};let i=new w8;i.requiresTextureCoordinates=e,i.requiresEC=!n.flat;let o=new w8;if(o.requiresTextureCoordinates=e,n instanceof sn)i.requiresNormalEC=!n.flat;else{let r=`${n.material.shaderSource} +${n.fragmentShaderSource}`;i.normalEC=r.indexOf("materialInput.normalEC")!==-1||r.indexOf("czm_getDefaultMaterial")!==-1,i.positionToEyeEC=r.indexOf("materialInput.positionToEyeEC")!==-1,i.tangentToEyeMatrix=r.indexOf("materialInput.tangentToEyeMatrix")!==-1,i.st=r.indexOf("materialInput.st")!==-1}this._colorShaderDependencies=i,this._pickShaderDependencies=o,this._appearance=n,this._extentsCulling=e,this._planarExtents=t}Ou.prototype.createFragmentShader=function(e){let t=this._appearance,n=this._colorShaderDependencies,i=[];!e&&!this._planarExtents&&i.push("SPHERICAL"),n.requiresEC&&i.push("REQUIRES_EC"),n.requiresWC&&i.push("REQUIRES_WC"),n.requiresTextureCoordinates&&i.push("TEXTURE_COORDINATES"),this._extentsCulling&&i.push("CULL_FRAGMENTS"),n.requiresNormalEC&&i.push("NORMAL_EC"),t instanceof sn&&i.push("PER_INSTANCE_COLOR"),n.normalEC&&i.push("USES_NORMAL_EC"),n.positionToEyeEC&&i.push("USES_POSITION_TO_EYE_EC"),n.tangentToEyeMatrix&&i.push("USES_TANGENT_TO_EYE"),n.st&&i.push("USES_ST"),t.flat&&i.push("FLAT");let o="";return t instanceof sn||(o=t.material.shaderSource),new He({defines:i,sources:[o,yS]})};Ou.prototype.createPickFragmentShader=function(e){let t=this._pickShaderDependencies,n=["PICK"];return!e&&!this._planarExtents&&n.push("SPHERICAL"),t.requiresEC&&n.push("REQUIRES_EC"),t.requiresWC&&n.push("REQUIRES_WC"),t.requiresTextureCoordinates&&n.push("TEXTURE_COORDINATES"),this._extentsCulling&&n.push("CULL_FRAGMENTS"),new He({defines:n,sources:[yS],pickColorQualifier:"in"})};Ou.prototype.createVertexShader=function(e,t,n,i){return WQ(this._colorShaderDependencies,this._planarExtents,n,e,t,this._appearance,i,this._projectionExtentDefines)};Ou.prototype.createPickVertexShader=function(e,t,n,i){return WQ(this._pickShaderDependencies,this._planarExtents,n,e,t,void 0,i,this._projectionExtentDefines)};var FQ=new m,UQ=new he,VQ={high:0,low:0};function WQ(e,t,n,i,o,r,s,a){let c=i.slice();if(a.eastMostYhighDefine===""){let u=UQ;u.longitude=P.PI,u.latitude=0,u.height=0;let f=s.project(u,FQ),d=Yn.encode(f.x,VQ);a.eastMostYhighDefine=`EAST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.eastMostYlowDefine=`EAST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`;let p=UQ;p.longitude=-P.PI,p.latitude=0,p.height=0;let g=s.project(p,FQ);d=Yn.encode(g.x,VQ),a.westMostYhighDefine=`WEST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.westMostYlowDefine=`WEST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`}return n&&(c.push(a.eastMostYhighDefine),c.push(a.eastMostYlowDefine),c.push(a.westMostYhighDefine),c.push(a.westMostYlowDefine)),l(r)&&r instanceof sn&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||n||c.push("SPHERICAL"),n&&c.push("COLUMBUS_VIEW_2D")),new He({defines:c,sources:[o]})}function w8(){this._requiresEC=!1,this._requiresWC=!1,this._requiresNormalEC=!1,this._requiresTextureCoordinates=!1,this._usesNormalEC=!1,this._usesPositionToEyeEC=!1,this._usesTangentToEyeMat=!1,this._usesSt=!1}Object.defineProperties(w8.prototype,{requiresEC:{get:function(){return this._requiresEC},set:function(e){this._requiresEC=e||this._requiresEC}},requiresWC:{get:function(){return this._requiresWC},set:function(e){this._requiresWC=e||this._requiresWC,this.requiresEC=this._requiresWC}},requiresNormalEC:{get:function(){return this._requiresNormalEC},set:function(e){this._requiresNormalEC=e||this._requiresNormalEC,this.requiresEC=this._requiresNormalEC}},requiresTextureCoordinates:{get:function(){return this._requiresTextureCoordinates},set:function(e){this._requiresTextureCoordinates=e||this._requiresTextureCoordinates,this.requiresWC=this._requiresTextureCoordinates}},normalEC:{set:function(e){this.requiresNormalEC=e,this._usesNormalEC=e},get:function(){return this._usesNormalEC}},tangentToEyeMatrix:{set:function(e){this.requiresWC=e,this.requiresNormalEC=e,this._usesTangentToEyeMat=e},get:function(){return this._usesTangentToEyeMat}},positionToEyeEC:{set:function(e){this.requiresEC=e,this._usesPositionToEyeEC=e},get:function(){return this._usesPositionToEyeEC}},st:{set:function(e){this.requiresTextureCoordinates=e,this._usesSt=e},get:function(){return this._usesSt}}});function kQ(e,t,n){return Math.abs((t.y-e.y)*n.x-(t.x-e.x)*n.y+t.x*e.y-t.y*e.x)/H.distance(t,e)}var gPe=[new H,new H,new H,new H];function jQ(e,t){let n=gPe,i=H.unpack(t,0,n[0]),o=H.unpack(t,2,n[1]),r=H.unpack(t,4,n[2]);e.uMaxVmax=new mc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[o.x,o.y,r.x,r.y]});let s=1/kQ(i,o,r),a=1/kQ(i,r,o);e.uvMinAndExtents=new mc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[i.x,i.y,s,a]})}var YQ=new he,qQ=new m,yPe=new m,APe=new m,gR={high:0,low:0};function XQ(e,t,n){let i=YQ;i.height=0,i.longitude=e.west,i.latitude=e.south;let o=t.project(i,qQ);i.latitude=e.north;let r=t.project(i,yPe);i.longitude=e.east,i.latitude=e.south;let s=t.project(i,APe),a=[0,0,0,0],c=[0,0,0,0],u=Yn.encode(o.x,gR);a[0]=u.high,c[0]=u.low,u=Yn.encode(o.y,gR),a[1]=u.high,c[1]=u.low,u=Yn.encode(r.y,gR),a[2]=u.high,c[2]=u.low,u=Yn.encode(s.x,gR),a[3]=u.high,c[3]=u.low,n.planes2D_HIGH=new mc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:a}),n.planes2D_LOW=new mc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:c})}var xPe=new B,CPe=new B,zQ=new m,TPe=new he,EPe=[new he,new he,new he,new he,new he,new he,new he,new he];function bPe(e,t,n,i,o,r){let s=le.center(e,TPe);s.height=n;let a=he.toCartesian(s,t,zQ),c=Rt.eastNorthUpToFixedFrame(a,t,xPe),u=B.inverse(c,CPe),f=e.west,d=e.east,p=e.north,g=e.south,h=EPe;h[0].latitude=g,h[0].longitude=f,h[1].latitude=p,h[1].longitude=f,h[2].latitude=p,h[2].longitude=d,h[3].latitude=g,h[3].longitude=d;let A=(f+d)*.5,x=(p+g)*.5;h[4].latitude=g,h[4].longitude=A,h[5].latitude=p,h[5].longitude=A,h[6].latitude=x,h[6].longitude=f,h[7].latitude=x,h[7].longitude=d;let C=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY,E=Number.POSITIVE_INFINITY,S=Number.NEGATIVE_INFINITY;for(let M=0;M<8;M++){h[M].height=n;let L=he.toCartesian(h[M],t,zQ);B.multiplyByPoint(u,L,L),L.z=0,C=Math.min(C,L.x),T=Math.max(T,L.x),E=Math.min(E,L.y),S=Math.max(S,L.y)}let v=i;v.x=C,v.y=E,v.z=0,B.multiplyByPoint(c,v,v);let D=o;D.x=T,D.y=E,D.z=0,B.multiplyByPoint(c,D,D),m.subtract(D,v,o);let O=r;O.x=C,O.y=S,O.z=0,B.multiplyByPoint(c,O,O),m.subtract(O,v,r)}var SPe=new m,wPe=new m,vPe=new Yn;Ou.getPlanarTextureCoordinateAttributes=function(e,t,n,i,o){let r=qQ,s=SPe,a=wPe;bPe(e,n,y(o,0),r,s,a);let c={};jQ(c,t);let u=Yn.fromCartesian(r,vPe);return c.southWest_HIGH=new mc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:m.pack(u.high,[0,0,0])}),c.southWest_LOW=new mc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:m.pack(u.low,[0,0,0])}),c.eastward=new mc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:m.pack(s,[0,0,0])}),c.northward=new mc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:m.pack(a,[0,0,0])}),XQ(e,i,c),c};var DPe=new m;function HQ(e,t,n,i){let o=YQ;o.latitude=e,o.longitude=t,o.height=0;let r=he.toCartesian(o,n,DPe),s=Math.sqrt(r.x*r.x+r.y*r.y),a=P.fastApproximateAtan2(s,r.z),c=P.fastApproximateAtan2(r.x,r.y);return i.x=a,i.y=c,i}var GQ=new H;Ou.getSphericalExtentGeometryInstanceAttributes=function(e,t,n,i){let o=HQ(e.south,e.west,n,GQ),r=o.x,s=o.y,a=HQ(e.north,e.east,n,GQ),c=a.x,u=a.y,f=0;s>u&&(f=P.PI-s,s=-P.PI,u+=f),r-=P.EPSILON5,s-=P.EPSILON5,c+=P.EPSILON5,u+=P.EPSILON5;let d=1/(u-s),p=1/(c-r),g={sphericalExtents:new mc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[r,s,p,d]}),longitudeRotation:new mc({componentDatatype:X.FLOAT,componentsPerAttribute:1,normalize:!1,value:[f]})};return jQ(g,t),XQ(e,i,g),g};Ou.hasAttributesForTextureCoordinatePlanes=function(e){return l(e.southWest_HIGH)&&l(e.southWest_LOW)&&l(e.northward)&&l(e.eastward)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};Ou.hasAttributesForSphericalExtents=function(e){return l(e.sphericalExtents)&&l(e.longitudeRotation)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};function IPe(e){return Math.max(e.width,e.height)>Ou.MAX_WIDTH_FOR_PLANAR_EXTENTS}Ou.shouldUseSphericalCoordinates=function(e){return IPe(e)};Ou.MAX_WIDTH_FOR_PLANAR_EXTENTS=P.toRadians(1);var Mu=Ou;var PPe={NEVER:te.NEVER,LESS:te.LESS,EQUAL:te.EQUAL,LESS_OR_EQUAL:te.LEQUAL,GREATER:te.GREATER,NOT_EQUAL:te.NOTEQUAL,GREATER_OR_EQUAL:te.GEQUAL,ALWAYS:te.ALWAYS},Hn=Object.freeze(PPe);var OPe={ZERO:te.ZERO,KEEP:te.KEEP,REPLACE:te.REPLACE,INCREMENT:te.INCR,DECREMENT:te.DECR,INVERT:te.INVERT,INCREMENT_WRAP:te.INCR_WRAP,DECREMENT_WRAP:te.DECR_WRAP},ht=Object.freeze(OPe);var yR={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};yR.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:Hn.ALWAYS,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.REPLACE},backFunction:Hn.ALWAYS,backOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.REPLACE},reference:yR.CESIUM_3D_TILE_MASK,mask:yR.CESIUM_3D_TILE_MASK}};var Ft=Object.freeze(yR);function s0(e){e=y(e,y.EMPTY_OBJECT);let t=e.geometryInstances;this.geometryInstances=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,zn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._debugShowShadowVolume=!1,this._extruded=y(e._extruded,!1),this._uniformMap=e._uniformMap,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._spColor=void 0,this._spPick2D=void 0,this._spColor2D=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._commandsIgnoreShow=[],this._ready=!1;let n=this;this._readyPromise=new Promise((i,o)=>{n._completeLoad=()=>{if(this._ready)return;this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0);let r=this._error;l(r)?o(r):i(this)}}),this._primitive=void 0,this._pickPrimitive=e._pickPrimitive,this._hasSphericalExtentsAttribute=!1,this._hasPlanarExtentsAttributes=!1,this._hasPerColorAttribute=!1,this.appearance=e.appearance,this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._usePickOffsets=!1,this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_createRenderStatesFunction:void 0,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0,_createPickOffsets:!0}}Object.defineProperties(s0.prototype,{vertexCacheOptimize:{get:function(){return this._primitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},compressVertices:{get:function(){return this._primitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("ClassificationPrimitive.readyPromise","ClassificationPrimitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for ClassificationPrimitive.ready to return true instead."),this._readyPromise}},_needs2DShader:{get:function(){return this._hasPlanarExtentsAttributes||this._hasSphericalExtentsAttribute}}});s0.isSupported=function(e){return e.context.stencilBuffer};function oC(e,t){let n=t?Hn.EQUAL:Hn.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:e,frontFunction:n,frontOperation:{fail:ht.KEEP,zFail:ht.DECREMENT_WRAP,zPass:ht.KEEP},backFunction:n,backOperation:{fail:ht.KEEP,zFail:ht.INCREMENT_WRAP,zPass:ht.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:fc.LESS_OR_EQUAL},depthMask:!1}}function D8(e){return{stencilTest:{enabled:e,frontFunction:Hn.NOT_EQUAL,frontOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},backFunction:Hn.NOT_EQUAL,backOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:mn.PRE_MULTIPLIED_ALPHA_BLEND}}var MPe={stencilTest:{enabled:!0,frontFunction:Hn.NOT_EQUAL,frontOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},backFunction:Hn.NOT_EQUAL,backOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function RPe(e,t,n,i){if(l(e._rsStencilDepthPass))return;let o=!e.debugShowShadowVolume;e._rsStencilDepthPass=ze.fromCache(oC(o,!1)),e._rsStencilDepthPass3DTiles=ze.fromCache(oC(o,!0)),e._rsColorPass=ze.fromCache(D8(o,!1)),e._rsPickPass=ze.fromCache(MPe)}function BPe(e,t){if(!e.compressVertices)return t;if(t.search(/in\s+vec3\s+extrudeDirection;/g)!==-1){let n="compressedAttributes",i=`in vec2 ${n};`,o=`vec3 extrudeDirection; +`,r=` extrudeDirection = czm_octDecode(${n}, 65535.0); +`,s=t;s=s.replace(/in\s+vec3\s+extrudeDirection;/g,""),s=He.replaceMain(s,"czm_non_compressed_main");let a=`void main() +{ +${r} czm_non_compressed_main(); +}`;return[i,o,s,a].join(` +`)}}function LPe(e,t){let n=t.context,i=e._primitive,o=rR;o=e._primitive._batchTable.getVertexShaderCallback()(o),o=wn._appendDistanceDisplayConditionToShader(i,o),o=wn._modifyShaderPosition(e,o,t.scene3DOnly),o=wn._updateColorAttribute(i,o);let r=e._hasPlanarExtentsAttributes,s=r||e._hasSphericalExtentsAttribute;e._extruded&&(o=BPe(i,o));let a=e._extruded?"EXTRUDED_GEOMETRY":"",c=new He({defines:[a],sources:[o]}),u=new He({sources:[t0]}),f=e._primitive._attributeLocations,d=new Mu(s,r,e.appearance);if(e._spStencil=Jt.replaceCache({context:n,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f}),e._primitive.allowPicking){let h=He.createPickVertexShaderSource(o);h=wn._appendShowToShader(i,h),h=wn._updatePickColorAttribute(h);let A=d.createPickFragmentShader(!1),x=d.createPickVertexShader([a],h,!1,t.mapProjection);if(e._spPick=Jt.replaceCache({context:n,shaderProgram:e._spPick,vertexShaderSource:x,fragmentShaderSource:A,attributeLocations:f}),s){let C=n.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!l(C)){let T=d.createPickFragmentShader(!0),E=d.createPickVertexShader([a],h,!0,t.mapProjection);C=n.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:E,fragmentShaderSource:T,attributeLocations:f})}e._spPick2D=C}}else e._spPick=Jt.fromCache({context:n,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f});o=wn._appendShowToShader(i,o),c=new He({defines:[a],sources:[o]}),e._sp=Jt.replaceCache({context:n,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f});let p=d.createFragmentShader(!1),g=d.createVertexShader([a],o,!1,t.mapProjection);if(e._spColor=Jt.replaceCache({context:n,shaderProgram:e._spColor,vertexShaderSource:g,fragmentShaderSource:p,attributeLocations:f}),s){let h=n.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!l(h)){let A=d.createFragmentShader(!0),x=d.createVertexShader([a],o,!0,t.mapProjection);h=n.shaderCache.createDerivedShaderProgram(e._spColor,"2dColor",{vertexShaderSource:x,fragmentShaderSource:A,attributeLocations:f})}e._spColor2D=h}}function NPe(e,t){let n=e._primitive,i=n._va.length*2;t.length=i;let o,r,s,a=0,c=n._batchTable.getUniformMapCallback()(e._uniformMap),u=e._needs2DShader;for(o=0;o<i;o+=2){let g=n._va[a++];r=t[o],l(r)||(r=t[o]=new it({owner:e,primitiveType:n._primitiveType})),r.vertexArray=g,r.renderState=e._rsStencilDepthPass,r.shaderProgram=e._sp,r.uniformMap=c,r.pass=be.TERRAIN_CLASSIFICATION,s=it.shallowClone(r,r.derivedCommands.tileset),s.renderState=e._rsStencilDepthPass3DTiles,s.pass=be.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,r=t[o+1],l(r)||(r=t[o+1]=new it({owner:e,primitiveType:n._primitiveType})),r.vertexArray=g,r.renderState=e._rsColorPass,r.shaderProgram=e._spColor,r.pass=be.TERRAIN_CLASSIFICATION;let A=e.appearance.material;if(l(A)&&(c=gt(c,A._uniforms)),r.uniformMap=c,s=it.shallowClone(r,r.derivedCommands.tileset),s.pass=be.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,u){let x=it.shallowClone(r,r.derivedCommands.appearance2D);x.shaderProgram=e._spColor2D,r.derivedCommands.appearance2D=x,x=it.shallowClone(s,s.derivedCommands.appearance2D),x.shaderProgram=e._spColor2D,s.derivedCommands.appearance2D=x}}let f=e._commandsIgnoreShow,d=e._spStencil,p=0;i=f.length=i/2;for(let g=0;g<i;++g){let h=f[g]=it.shallowClone(t[p],f[g]);h.shaderProgram=d,h.pass=be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,p+=2}}function FPe(e,t){let n=e._usePickOffsets,i=e._primitive,o=i._va.length*2,r,s=0,a;n&&(r=i._pickOffsets,o=r.length*2),t.length=o;let c,u,f,d=0,p=i._batchTable.getUniformMapCallback()(e._uniformMap),g=e._needs2DShader;for(c=0;c<o;c+=2){let h=i._va[d++];if(n&&(a=r[s++],h=i._va[a.index]),u=t[c],l(u)||(u=t[c]=new it({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),u.vertexArray=h,u.renderState=e._rsStencilDepthPass,u.shaderProgram=e._sp,u.uniformMap=p,u.pass=be.TERRAIN_CLASSIFICATION,n&&(u.offset=a.offset,u.count=a.count),f=it.shallowClone(u,u.derivedCommands.tileset),f.renderState=e._rsStencilDepthPass3DTiles,f.pass=be.CESIUM_3D_TILE_CLASSIFICATION,u.derivedCommands.tileset=f,u=t[c+1],l(u)||(u=t[c+1]=new it({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),u.vertexArray=h,u.renderState=e._rsPickPass,u.shaderProgram=e._spPick,u.uniformMap=p,u.pass=be.TERRAIN_CLASSIFICATION,n&&(u.offset=a.offset,u.count=a.count),f=it.shallowClone(u,u.derivedCommands.tileset),f.pass=be.CESIUM_3D_TILE_CLASSIFICATION,u.derivedCommands.tileset=f,g){let A=it.shallowClone(u,u.derivedCommands.pick2D);A.shaderProgram=e._spPick2D,u.derivedCommands.pick2D=A,A=it.shallowClone(f,f.derivedCommands.pick2D),A.shaderProgram=e._spPick2D,f.derivedCommands.pick2D=A}}}function UPe(e,t,n,i,o,r,s){NPe(e,r),FPe(e,s)}function KQ(e,t){return Math.floor(e%t/2)}function v8(e,t,n,i,o,r){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,e.debugShowBoundingVolume=r,t.commandList.push(e)}function JQ(e,t,n,i,o){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,t.commandList.push(e)}function VPe(e,t,n,i,o,r,s,a){let c=e._primitive;wn._updateBoundingVolumes(c,t,o);let u;t.mode===ne.SCENE3D?u=c._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?u=c._boundingSphereCV:t.mode===ne.SCENE2D&&l(c._boundingSphere2D)?u=c._boundingSphere2D:l(c._boundingSphereMorph)&&(u=c._boundingSphereMorph);let f=e.classificationType,d=f!==zn.CESIUM_3D_TILE,p=f!==zn.TERRAIN,g=t.passes,h,A,x;if(g.render){let C=n.length;for(h=0;h<C;++h)A=u[KQ(h,C)],d&&(x=n[h],v8(x,t,o,r,A,s)),p&&(x=n[h].derivedCommands.tileset,v8(x,t,o,r,A,s));if(t.invertClassification){let T=e._commandsIgnoreShow,E=T.length;for(h=0;h<E;++h)A=u[h],x=T[h],v8(x,t,o,r,A,s)}}if(g.pick){let C=i.length,T=c._pickOffsets;for(h=0;h<C;++h){let E=T[KQ(h,C)];A=u[E.index],d&&(x=i[h],JQ(x,t,o,r,A)),p&&(x=i[h].derivedCommands.tileset,JQ(x,t,o,r,A))}}}s0.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;let t=this.appearance;l(t)&&l(t.material)&&t.material.update(e.context);let n=this,i=this._primitiveOptions;if(!l(this._primitive)){let o=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],r=o.length,s,a,c,u=!1,f=!0,d,p=!1,g=!1;for(r>0&&(c=o[0].attributes,p=Mu.hasAttributesForSphericalExtents(c),g=Mu.hasAttributesForTextureCoordinatePlanes(c),d=c.color),s=0;s<r;s++){a=o[s];let A=a.attributes.color;l(A)&&(u=!0),f=f&&l(A)&&Vt.equals(d,A)}if(!f&&!p&&!g)throw new fe("All GeometryInstances must have the same color attribute except via GroundPrimitives");u&&!l(t)&&(t=new sn({flat:!0}),this.appearance=t),this._usePickOffsets=!p&&!g,this._hasSphericalExtentsAttribute=p,this._hasPlanarExtentsAttributes=g,this._hasPerColorAttribute=u;let h=new Array(r);for(s=0;s<r;++s)a=o[s],h[s]=new Tt({geometry:a.geometry,attributes:a.attributes,modelMatrix:a.modelMatrix,id:a.id,pickPrimitive:y(this._pickPrimitive,n)});i.appearance=t,i.geometryInstances=h,l(this._createBoundingVolumeFunction)&&(i._createBoundingVolumeFunction=function(A,x){n._createBoundingVolumeFunction(A,x)}),i._createRenderStatesFunction=function(A,x,C,T){RPe(n,x)},i._createShaderProgramFunction=function(A,x,C){LPe(n,x)},i._createCommandsFunction=function(A,x,C,T,E,S,v){UPe(n,void 0,void 0,!0,!1,S,v)},l(this._updateAndQueueCommandsFunction)?i._updateAndQueueCommandsFunction=function(A,x,C,T,E,S,v,D){n._updateAndQueueCommandsFunction(A,x,C,T,E,S,v,D)}:i._updateAndQueueCommandsFunction=function(A,x,C,T,E,S,v,D){VPe(n,x,C,T,E,S,v,D)},this._primitive=new wn(i)}this.debugShowShadowVolume&&!this._debugShowShadowVolume&&this._ready?(this._debugShowShadowVolume=!0,this._rsStencilDepthPass=ze.fromCache(oC(!1,!1)),this._rsStencilDepthPass3DTiles=ze.fromCache(oC(!1,!0)),this._rsColorPass=ze.fromCache(D8(!1))):!this.debugShowShadowVolume&&this._debugShowShadowVolume&&(this._debugShowShadowVolume=!1,this._rsStencilDepthPass=ze.fromCache(oC(!0,!1)),this._rsStencilDepthPass3DTiles=ze.fromCache(oC(!0,!0)),this._rsColorPass=ze.fromCache(D8(!0))),this._primitive.appearance!==t&&(this._primitive.appearance=t),this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{l(this._primitive)&&this._primitive.ready&&this._completeLoad()})};s0.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};s0.prototype.isDestroyed=function(){return!1};s0.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._spColor=this._spColor&&this._spColor.destroy(),this._spPick2D=void 0,this._spColor2D=void 0,ue(this)};var AS=s0;var kPe={u_globeMinimumAltitude:function(){return 55e3}};function Yc(e){e=y(e,y.EMPTY_OBJECT);let t=e.appearance,n=e.geometryInstances;if(!l(t)&&l(n)){let r=Array.isArray(n)?n:[n],s=r.length;for(let a=0;a<s;a++){let c=r[a].attributes;if(l(c)&&l(c.color)){t=new sn({flat:!0});break}}}this.appearance=t,this.geometryInstances=e.geometryInstances,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,zn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._boundingVolumes=[],this._boundingVolumes2D=[],this._ready=!1;let i=this;this._readyPromise=new Promise((r,s)=>{i._completeLoad=()=>{if(this._ready)return;this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0);let a=this._error;l(a)?s(a):r(this)}}),this._primitive=void 0,this._maxHeight=void 0,this._minHeight=void 0,this._maxTerrainHeight=si._defaultMaxTerrainHeight,this._minTerrainHeight=si._defaultMinTerrainHeight,this._boundingSpheresKeys=[],this._boundingSpheres=[],this._useFragmentCulling=!1,this._zIndex=void 0;let o=this;this._classificationPrimitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_updateAndQueueCommandsFunction:void 0,_pickPrimitive:o,_extruded:!0,_uniformMap:kPe}}Object.defineProperties(Yc.prototype,{vertexCacheOptimize:{get:function(){return this._classificationPrimitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._classificationPrimitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._classificationPrimitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._classificationPrimitiveOptions.allowPicking}},asynchronous:{get:function(){return this._classificationPrimitiveOptions.asynchronous}},compressVertices:{get:function(){return this._classificationPrimitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("GroundPrimitive.readyPromise","GroundPrimitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for GroundPrimitive.ready to return true instead."),this._readyPromise}}});Yc.isSupported=AS.isSupported;function ZQ(e){return function(t,n){let i=n.maximumRadius,o=i/Math.cos(t*.5)-i;return e._maxHeight+o}}function QQ(e){return function(t,n){return e._minHeight}}var zPe=new m,HPe=new m,GPe=new m,WPe=new he,jPe=new le;function AR(e,t){let n=e.mapProjection.ellipsoid;if(!l(t.attributes)||!l(t.attributes.position3DHigh))return l(t.rectangle)?t.rectangle:void 0;let i=t.attributes.position3DHigh.values,o=t.attributes.position3DLow.values,r=i.length,s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,u=Number.NEGATIVE_INFINITY;for(let d=0;d<r;d+=3){let p=m.unpack(i,d,zPe),g=m.unpack(o,d,HPe),h=m.add(p,g,GPe),A=n.cartesianToCartographic(h,WPe),x=A.latitude,C=A.longitude;s=Math.min(s,x),a=Math.min(a,C),c=Math.max(c,x),u=Math.max(u,C)}let f=jPe;return f.north=c,f.south=s,f.east=u,f.west=a,f}function YPe(e,t,n){let i=si.getMinimumMaximumHeights(t,n);e._minTerrainHeight=i.minimumTerrainHeight,e._maxTerrainHeight=i.maximumTerrainHeight}function qPe(e,t,n){let i=t.mapProjection.ellipsoid,o=AR(t,n),r=Bn.fromRectangle(o,e._minHeight,e._maxHeight,i);if(e._boundingVolumes.push(r),!t.scene3DOnly){let s=t.mapProjection,a=ae.fromRectangleWithHeights2D(o,s,e._maxHeight,e._minHeight);m.fromElements(a.center.z,a.center.x,a.center.y,a.center),e._boundingVolumes2D.push(a)}}function I8(e,t){return Math.floor(e%t/2)}function P8(e,t,n,i,o,r,s){let a=e._primitive;n.mode!==ne.SCENE3D&&t.shaderProgram===a._spColor&&a._needs2DShader&&(t=t.derivedCommands.appearance2D),t.owner=e,t.modelMatrix=i,t.boundingVolume=r,t.cull=o,t.debugShowBoundingVolume=s,n.commandList.push(t)}function $Q(e,t,n,i,o,r){let s=e._primitive;n.mode!==ne.SCENE3D&&t.shaderProgram===s._spPick&&s._needs2DShader&&(t=t.derivedCommands.pick2D),t.owner=e,t.modelMatrix=i,t.boundingVolume=r,t.cull=o,n.commandList.push(t)}function XPe(e,t,n,i,o,r,s,a){let c;t.mode===ne.SCENE3D?c=e._boundingVolumes:c=e._boundingVolumes2D;let u=e.classificationType,f=u!==zn.CESIUM_3D_TILE,d=u!==zn.TERRAIN,p=t.passes,g=e._primitive,h,A,x;if(p.render){let C=n.length;for(h=0;h<C;++h)A=c[I8(h,C)],f&&(x=n[h],P8(e,x,t,o,r,A,s)),d&&(x=n[h].derivedCommands.tileset,P8(e,x,t,o,r,A,s));if(t.invertClassification){let T=g._commandsIgnoreShow,E=T.length;for(h=0;h<E;++h)A=c[h],x=T[h],P8(e,x,t,o,r,A,s)}}if(p.pick){let C=i.length,T;for(e._useFragmentCulling||(T=g._primitive._pickOffsets),h=0;h<C;++h){if(A=c[I8(h,C)],!e._useFragmentCulling){let E=T[I8(h,C)];A=c[E.index]}f&&(x=i[h],$Q(e,x,t,o,r,A)),d&&(x=i[h].derivedCommands.tileset,$Q(e,x,t,o,r,A))}}}Yc.initializeTerrainHeights=function(){return si.initialize()};Yc.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;if(!si.initialized){Yc.initializeTerrainHeights();return}let t=this,n=this._classificationPrimitiveOptions;if(!l(this._primitive)){let i=e.mapProjection.ellipsoid,o,r,s,a=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],c=a.length,u=new Array(c),f,d;for(f=0;f<c;++f){o=a[f],r=o.geometry;let A=AR(e,r);l(d)?l(A)&&le.union(d,A,d):d=le.clone(A);let x=o.id;if(l(x)&&l(A)){let C=si.getBoundingSphere(A,i);this._boundingSpheresKeys.push(x),this._boundingSpheres.push(C)}s=r.constructor,!l(s)||l(s.createShadowVolume)}YPe(this,d,i);let p=e.terrainExaggeration,g=e.terrainExaggerationRelativeHeight;this._minHeight=Wc.getHeight(this._minTerrainHeight,p,g),this._maxHeight=Wc.getHeight(this._maxTerrainHeight,p,g);let h=Yc._supportsMaterials(e.context);if(this._useFragmentCulling=h,h){let A,x=!0;for(f=0;f<c;++f)if(o=a[f],r=o.geometry,d=AR(e,r),Mu.shouldUseSphericalCoordinates(d)){x=!1;break}for(f=0;f<c;++f){o=a[f],r=o.geometry,s=r.constructor;let C=AR(e,r),T=r.textureCoordinateRotationPoints;x?A=Mu.getPlanarTextureCoordinateAttributes(C,T,i,e.mapProjection,this._maxHeight):A=Mu.getSphericalExtentGeometryInstanceAttributes(C,T,i,e.mapProjection);let E=o.attributes;for(let S in E)E.hasOwnProperty(S)&&(A[S]=E[S]);u[f]=new Tt({geometry:s.createShadowVolume(r,QQ(this),ZQ(this)),attributes:A,id:o.id})}}else for(f=0;f<c;++f)o=a[f],r=o.geometry,s=r.constructor,u[f]=new Tt({geometry:s.createShadowVolume(r,QQ(this),ZQ(this)),attributes:o.attributes,id:o.id});n.geometryInstances=u,n.appearance=this.appearance,n._createBoundingVolumeFunction=function(A,x){qPe(t,A,x)},n._updateAndQueueCommandsFunction=function(A,x,C,T,E,S,v,D){XPe(t,x,C,T,E,S,v,D)},this._primitive=new AS(n)}this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowShadowVolume=this.debugShowShadowVolume,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{!this._ready&&l(this._primitive)&&this._primitive.ready&&this._completeLoad()})};Yc.prototype.getBoundingSphere=function(e){let t=this._boundingSpheresKeys.indexOf(e);if(t!==-1)return this._boundingSpheres[t]};Yc.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Yc.prototype.isDestroyed=function(){return!1};Yc.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};Yc._supportsMaterials=function(e){return e.depthTexture};Yc.supportsMaterials=function(e){return Yc._supportsMaterials(e.frameState.context)};var qc=Yc;function rC(){fe.throwInstantiationError()}Object.defineProperties(rC.prototype,{isConstant:{get:fe.throwInstantiationError},definitionChanged:{get:fe.throwInstantiationError}});rC.prototype.getType=fe.throwInstantiationError;rC.prototype.getValue=fe.throwInstantiationError;rC.prototype.equals=fe.throwInstantiationError;rC.getValue=function(e,t,n){let i;return l(t)&&(i=t.getType(e),l(i))?((!l(n)||n.type!==i)&&(n=Gi.fromType(i)),t.getValue(e,n.uniforms),n):((!l(n)||n.type!==Gi.ColorType)&&(n=Gi.fromType(Gi.ColorType)),z.clone(z.WHITE,n.uniforms.color),n)};var $o=rC;function a0(e,t,n){this._primitives=t,this._orderedGroundPrimitives=n,this._primitive=void 0,this._outlinePrimitive=void 0,this._geometryUpdater=e,this._options=e._options,this._entity=e._entity,this._material=void 0}a0.prototype._isHidden=function(e,t,n){return!e.isShowing||!e.isAvailable(n)||!j.getValueOrDefault(t.show,n,!0)};a0.prototype._setOptions=fe.throwInstantiationError;a0.prototype.update=function(e){let t=this._geometryUpdater,n=t._onTerrain,i=this._primitives,o=this._orderedGroundPrimitives;n?o.remove(this._primitive):(i.removeAndDestroy(this._primitive),i.removeAndDestroy(this._outlinePrimitive),this._outlinePrimitive=void 0),this._primitive=void 0;let r=this._entity,s=r[this._geometryUpdater._geometryPropertyName];if(this._setOptions(r,s,e),this._isHidden(r,s,e))return;let a=this._geometryUpdater.shadowsProperty.getValue(e),c=this._options;if(!l(s.fill)||s.fill.getValue(e)){let u=t.fillMaterialProperty,f=u instanceof Ut,d,p=t._getIsClosed(c);if(f)d=new sn({closed:p,flat:n&&!t._supportsMaterialsforEntitiesOnTerrain});else{let g=$o.getValue(e,u,this._material);this._material=g,d=new ro({material:g,translucent:g.isTranslucent(),closed:p})}if(n)c.vertexFormat=sn.VERTEX_FORMAT,this._primitive=o.add(new qc({geometryInstances:this._geometryUpdater.createFillGeometryInstance(e),appearance:d,asynchronous:!1,shadows:a,classificationType:this._geometryUpdater.classificationTypeProperty.getValue(e)}),j.getValueOrUndefined(this._geometryUpdater.zIndex,e));else{c.vertexFormat=d.vertexFormat;let g=this._geometryUpdater.createFillGeometryInstance(e);f&&(d.translucent=g.attributes.color.value[3]!==255),this._primitive=i.add(new wn({geometryInstances:g,appearance:d,asynchronous:!1,shadows:a}))}}if(!n&&l(s.outline)&&s.outline.getValue(e)){let u=this._geometryUpdater.createOutlineGeometryInstance(e),f=j.getValueOrDefault(s.outlineWidth,e,1);this._outlinePrimitive=i.add(new wn({geometryInstances:u,appearance:new sn({flat:!0,translucent:u.attributes.color.value[3]!==255,renderState:{lineWidth:t._scene.clampLineWidth(f)}}),asynchronous:!1,shadows:a}))}};a0.prototype.getBoundingSphere=function(e){let t=this._entity,n=this._primitive,i=this._outlinePrimitive,o;return l(n)&&n.show&&n.ready&&(o=n.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(ae.clone(o.boundingSphere,e),ut.DONE):l(i)&&i.show&&i.ready&&(o=i.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(ae.clone(o.boundingSphere,e),ut.DONE):l(n)&&!n.ready||l(i)&&!i.ready?ut.PENDING:ut.FAILED};a0.prototype.isDestroyed=function(){return!1};a0.prototype.destroy=function(){let e=this._primitives,t=this._orderedGroundPrimitives;this._geometryUpdater._onTerrain?t.remove(this._primitive):e.removeAndDestroy(this._primitive),e.removeAndDestroy(this._outlinePrimitive),ue(this)};var ai=a0;var KPe={NONE:0,GEODESIC:1,RHUMB:2},Zt=Object.freeze(KPe);var e$=P.EPSILON10;function JPe(e,t,n,i){if(!l(e))return;n=y(n,!1);let o=l(i),r=e.length;if(r<2)return e;let s,a=e[0],c,u,f=0,d=-1;for(s=1;s<r;++s)c=e[s],t(a,c,e$)?(l(u)||(u=e.slice(0,s),f=s-1,d=0),o&&i.push(s)):(l(u)&&(u.push(c),f=s,o&&(d=i.length)),a=c);return n&&t(e[0],e[r-1],e$)&&(o&&(l(u)?i.splice(d,0,f):i.push(r-1)),l(u)?u.length-=1:u=e.slice(0,-1)),l(u)?u:e}var xo=JPe;function ZPe(e){let t=e._uSquared,n=e._ellipsoid.maximumRadius,i=e._ellipsoid.minimumRadius,o=(n-i)/n,r=Math.cos(e._startHeading),s=Math.sin(e._startHeading),a=(1-o)*Math.tan(e._start.latitude),c=1/Math.sqrt(1+a*a),u=c*a,f=Math.atan2(a,r),d=c*s,p=d*d,g=1-p,h=Math.sqrt(g),A=t/4,x=A*A,C=x*A,T=x*x,E=1+A-3*x/4+5*C/4-175*T/64,S=1-A+15*x/8-35*C/8,v=1-3*A+35*x/4,D=1-5*A,O=E*f-S*Math.sin(2*f)*A/2-v*Math.sin(4*f)*x/16-D*Math.sin(6*f)*C/48-Math.sin(8*f)*5*T/512,M=e._constants;M.a=n,M.b=i,M.f=o,M.cosineHeading=r,M.sineHeading=s,M.tanU=a,M.cosineU=c,M.sineU=u,M.sigma=f,M.sineAlpha=d,M.sineSquaredAlpha=p,M.cosineSquaredAlpha=g,M.cosineAlpha=h,M.u2Over4=A,M.u4Over16=x,M.u6Over64=C,M.u8Over256=T,M.a0=E,M.a1=S,M.a2=v,M.a3=D,M.distanceRatio=O}function QPe(e,t){return e*t*(4+e*(4-3*t))/16}function t$(e,t,n,i,o,r,s){let a=QPe(e,n);return(1-a)*e*t*(i+a*o*(s+a*r*(2*s*s-1)))}function $Pe(e,t,n,i,o,r,s){let a=(t-n)/t,c=r-i,u=Math.atan((1-a)*Math.tan(o)),f=Math.atan((1-a)*Math.tan(s)),d=Math.cos(u),p=Math.sin(u),g=Math.cos(f),h=Math.sin(f),A=d*g,x=d*h,C=p*h,T=p*g,E=c,S=P.TWO_PI,v=Math.cos(E),D=Math.sin(E),O,M,L,N,_;do{v=Math.cos(E),D=Math.sin(E);let U=x-T*v;L=Math.sqrt(g*g*D*D+U*U),M=C+A*v,O=Math.atan2(L,M);let q;L===0?(q=0,N=1):(q=A*D/L,N=1-q*q),S=E,_=M-2*C/N,isFinite(_)||(_=0),E=c+t$(a,q,N,O,L,M,_)}while(Math.abs(E-S)>P.EPSILON12);let b=N*(t*t-n*n)/(n*n),w=1+b*(4096+b*(b*(320-175*b)-768))/16384,I=b*(256+b*(b*(74-47*b)-128))/1024,R=_*_,F=I*L*(_+I*(M*(2*R-1)-I*_*(4*L*L-3)*(4*R-3)/6)/4),k=n*w*(O-F),V=Math.atan2(g*D,x-T*v),G=Math.atan2(d*D,x*v-T);e._distance=k,e._startHeading=V,e._endHeading=G,e._uSquared=b}var e1e=new m,O8=new m;function n$(e,t,n,i){let o=m.normalize(i.cartographicToCartesian(t,O8),e1e),r=m.normalize(i.cartographicToCartesian(n,O8),O8);$Pe(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude),e._start=he.clone(t,e._start),e._end=he.clone(n,e._end),e._start.height=0,e._end.height=0,ZPe(e)}function xS(e,t,n){let i=y(n,oe.WGS84);this._ellipsoid=i,this._start=new he,this._end=new he,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,l(e)&&l(t)&&n$(this,e,t,i)}Object.defineProperties(xS.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}});xS.prototype.setEndPoints=function(e,t){n$(this,e,t,this._ellipsoid)};xS.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)};xS.prototype.interpolateUsingSurfaceDistance=function(e,t){let n=this._constants,i=n.distanceRatio+e/n.b,o=Math.cos(2*i),r=Math.cos(4*i),s=Math.cos(6*i),a=Math.sin(2*i),c=Math.sin(4*i),u=Math.sin(6*i),f=Math.sin(8*i),d=i*i,p=i*d,g=n.u8Over256,h=n.u2Over4,A=n.u6Over64,x=n.u4Over16,C=2*p*g*o/3+i*(1-h+7*x/4-15*A/4+579*g/64-(x-15*A/4+187*g/16)*o-(5*A/4-115*g/16)*r-29*g*s/16)+(h/2-x+71*A/32-85*g/16)*a+(5*x/16-5*A/4+383*g/96)*c-d*((A-11*g/2)*a+5*g*c/2)+(29*A/96-29*g/16)*u+539*g*f/1536,T=Math.asin(Math.sin(C)*n.cosineAlpha),E=Math.atan(n.a/n.b*Math.tan(T));C=C-n.sigma;let S=Math.cos(2*n.sigma+C),v=Math.sin(C),D=Math.cos(C),O=n.cosineU*D,M=n.sineU*v,N=Math.atan2(v*n.sineHeading,O-M*n.cosineHeading)-t$(n.f,n.sineAlpha,n.cosineSquaredAlpha,C,v,D,S);return l(t)?(t.longitude=this._start.longitude+N,t.latitude=E,t.height=0,t):new he(this._start.longitude+N,E,0)};var kf=xS;function R8(e,t,n){if(e===0)return t*n;let i=e*e,o=i*i,r=o*i,s=r*i,a=s*i,c=a*i,u=n,f=Math.sin(2*u),d=Math.sin(4*u),p=Math.sin(6*u),g=Math.sin(8*u),h=Math.sin(10*u),A=Math.sin(12*u);return t*((1-i/4-3*o/64-5*r/256-175*s/16384-441*a/65536-4851*c/1048576)*u-(3*i/8+3*o/32+45*r/1024+105*s/4096+2205*a/131072+6237*c/524288)*f+(15*o/256+45*r/1024+525*s/16384+1575*a/65536+155925*c/8388608)*d-(35*r/3072+175*s/12288+3675*a/262144+13475*c/1048576)*p+(315*s/131072+2205*a/524288+43659*c/8388608)*g-(693*a/1310720+6237*c/5242880)*h+1001*c/8388608*A)}function t1e(e,t,n){let i=e/n;if(t===0)return i;let o=i*i,r=o*i,s=r*i,a=t,c=a*a,u=c*c,f=u*c,d=f*c,p=d*c,g=p*c,h=Math.sin(2*i),A=Math.cos(2*i),x=Math.sin(4*i),C=Math.cos(4*i),T=Math.sin(6*i),E=Math.cos(6*i),S=Math.sin(8*i),v=Math.cos(8*i),D=Math.sin(10*i),O=Math.cos(10*i),M=Math.sin(12*i);return i+i*c/4+7*i*u/64+15*i*f/256+579*i*d/16384+1515*i*p/65536+16837*i*g/1048576+(3*i*u/16+45*i*f/256-i*(32*o-561)*d/4096-i*(232*o-1677)*p/16384+i*(399985-90560*o+512*s)*g/5242880)*A+(21*i*f/256+483*i*d/4096-i*(224*o-1969)*p/16384-i*(33152*o-112599)*g/1048576)*C+(151*i*d/4096+4681*i*p/65536+1479*i*g/16384-453*r*g/32768)*E+(1097*i*p/65536+42783*i*g/1048576)*v+8011*i*g/1048576*O+(3*c/8+3*u/16+213*f/2048-3*o*f/64+255*d/4096-33*o*d/512+20861*p/524288-33*o*p/512+s*p/1024+28273*g/1048576-471*o*g/8192+9*s*g/4096)*h+(21*u/256+21*f/256+533*d/8192-21*o*d/512+197*p/4096-315*o*p/4096+584039*g/16777216-12517*o*g/131072+7*s*g/2048)*x+(151*f/6144+151*d/4096+5019*p/131072-453*o*p/16384+26965*g/786432-8607*o*g/131072)*T+(1097*d/131072+1097*p/65536+225797*g/10485760-1097*o*g/65536)*S+(8011*p/2621440+8011*g/1048576)*D+293393*g/251658240*M}function sC(e,t){if(e===0)return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)));let n=e*Math.sin(t);return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function n1e(e,t,n,i,o){let r=sC(e._ellipticity,n),s=sC(e._ellipticity,o);return Math.atan2(P.negativePiToPi(i-t),s-r)}function i1e(e,t,n,i,o,r,s){let a=e._heading,c=r-i,u=0;if(P.equalsEpsilon(Math.abs(a),P.PI_OVER_TWO,P.EPSILON8))if(t===n)u=t*Math.cos(o)*P.negativePiToPi(c);else{let f=Math.sin(o);u=t*Math.cos(o)*P.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*f*f)}else{let f=R8(e._ellipticity,t,o);u=(R8(e._ellipticity,t,s)-f)/Math.cos(a)}return Math.abs(u)}var o1e=new m,M8=new m;function i$(e,t,n,i){let o=m.normalize(i.cartographicToCartesian(t,M8),o1e),r=m.normalize(i.cartographicToCartesian(n,M8),M8),s=i.maximumRadius,a=i.minimumRadius,c=s*s,u=a*a;e._ellipticitySquared=(c-u)/c,e._ellipticity=Math.sqrt(e._ellipticitySquared),e._start=he.clone(t,e._start),e._start.height=0,e._end=he.clone(n,e._end),e._end.height=0,e._heading=n1e(e,t.longitude,t.latitude,n.longitude,n.latitude),e._distance=i1e(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude)}function o$(e,t,n,i,o,r){if(n===0)return he.clone(e,r);let s=o*o,a,c,u;if(Math.abs(P.PI_OVER_TWO-Math.abs(t))>P.EPSILON8){let f=R8(o,i,e.latitude),d=n*Math.cos(t),p=f+d;c=t1e(p,o,i);let g=sC(o,e.latitude),h=sC(o,c);u=Math.tan(t)*(h-g),a=P.negativePiToPi(e.longitude+u)}else{c=e.latitude;let f;if(o===0)f=i*Math.cos(e.latitude);else{let d=Math.sin(e.latitude);f=i*Math.cos(e.latitude)/Math.sqrt(1-s*d*d)}u=n/f,t>0?a=P.negativePiToPi(e.longitude+u):a=P.negativePiToPi(e.longitude-u)}return l(r)?(r.longitude=a,r.latitude=c,r.height=0,r):new he(a,c,0)}function Lh(e,t,n){let i=y(n,oe.WGS84);this._ellipsoid=i,this._start=new he,this._end=new he,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,l(e)&&l(t)&&i$(this,e,t,i)}Object.defineProperties(Lh.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}});Lh.fromStartHeadingDistance=function(e,t,n,i,o){let r=y(i,oe.WGS84),s=r.maximumRadius,a=r.minimumRadius,c=s*s,u=a*a,f=Math.sqrt((c-u)/c);t=P.negativePiToPi(t);let d=o$(e,t,n,r.maximumRadius,f);return!l(o)||l(i)&&!i.equals(o.ellipsoid)?new Lh(e,d,r):(o.setEndPoints(e,d),o)};Lh.prototype.setEndPoints=function(e,t){i$(this,e,t,this._ellipsoid)};Lh.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)};Lh.prototype.interpolateUsingSurfaceDistance=function(e,t){return o$(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)};Lh.prototype.findIntersectionWithLongitude=function(e,t){let n=this._ellipticity,i=this._heading,o=Math.abs(i),r=this._start;if(e=P.negativePiToPi(e),P.equalsEpsilon(Math.abs(e),Math.PI,P.EPSILON14)&&(e=P.sign(r.longitude)*Math.PI),l(t)||(t=new he),Math.abs(P.PI_OVER_TWO-o)<=P.EPSILON8)return t.longitude=e,t.latitude=r.latitude,t.height=0,t;if(P.equalsEpsilon(Math.abs(P.PI_OVER_TWO-o),P.PI_OVER_TWO,P.EPSILON8))return P.equalsEpsilon(e,r.longitude,P.EPSILON12)?void 0:(t.longitude=e,t.latitude=P.PI_OVER_TWO*P.sign(P.PI_OVER_TWO-i),t.height=0,t);let s=r.latitude,a=n*Math.sin(s),c=Math.tan(.5*(P.PI_OVER_TWO+s))*Math.exp((e-r.longitude)/Math.tan(i)),u=(1+a)/(1-a),f=r.latitude,d;do{d=f;let p=n*Math.sin(d),g=(1+p)/(1-p);f=2*Math.atan(c*Math.pow(g/u,n/2))-P.PI_OVER_TWO}while(!P.equalsEpsilon(f,d,P.EPSILON12));return t.longitude=e,t.latitude=f,t.height=0,t};Lh.prototype.findIntersectionWithLatitude=function(e,t){let n=this._ellipticity,i=this._heading,o=this._start;if(P.equalsEpsilon(Math.abs(i),P.PI_OVER_TWO,P.EPSILON8))return;let r=sC(n,o.latitude),s=sC(n,e),a=Math.tan(i)*(s-r),c=P.negativePiToPi(o.longitude+a);return l(t)?(t.longitude=c,t.latitude=e,t.height=0,t):new he(c,e,0)};var Pa=Lh;var z8=[Di,Pi],r1e=z8.length,b$=Math.cos(P.toRadians(30)),r$=Math.cos(P.toRadians(150)),S$=0,w$=1e3;function C_(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions;this.width=y(e.width,1),this._positions=t,this.granularity=y(e.granularity,9999),this.loop=y(e.loop,!1),this.arcType=y(e.arcType,Zt.GEODESIC),this._ellipsoid=oe.WGS84,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(C_.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+oe.packedLength+1+1}}});C_.setProjectionAndEllipsoid=function(e,t){let n=0;for(let i=0;i<r1e;i++)if(t instanceof z8[i]){n=i;break}e._projectionIndex=n,e._ellipsoid=t.ellipsoid};var s1e=new m,s$=new m,a$=new m;function k8(e,t,n,i,o){let r=hc(i,e,0,s1e),s=hc(i,e,n,s$),a=hc(i,t,0,a$),c=Nh(s,r,s$),u=Nh(a,r,a$);return m.cross(u,c,o),m.normalize(o,o)}var a1e=new he,c1e=new m,l1e=new m,u1e=new m;function B8(e,t,n,i,o,r,s,a,c,u,f){if(o===0)return;let d;r===Zt.GEODESIC?d=new kf(e,t,s):r===Zt.RHUMB&&(d=new Pa(e,t,s));let p=d.surfaceDistance;if(p<o)return;let g=k8(e,t,i,s,u1e),h=Math.ceil(p/o),A=p/h,x=A,C=h-1,T=a.length;for(let E=0;E<C;E++){let S=d.interpolateUsingSurfaceDistance(x,a1e),v=hc(s,S,n,c1e),D=hc(s,S,i,l1e);m.pack(g,a,T),m.pack(v,c,T),m.pack(D,u,T),f.push(S.latitude),f.push(S.longitude),T+=3,x+=A}}var L8=new he;function hc(e,t,n,i){return he.clone(t,L8),L8.height=n,he.toCartesian(L8,e,i)}C_.pack=function(e,t,n){let i=y(n,0),o=e._positions,r=o.length;t[i++]=r;for(let s=0;s<r;++s){let a=o[s];m.pack(a,t,i),i+=3}return t[i++]=e.granularity,t[i++]=e.loop?1:0,t[i++]=e.arcType,oe.pack(e._ellipsoid,t,i),i+=oe.packedLength,t[i++]=e._projectionIndex,t[i++]=e._scene3DOnly?1:0,t};C_.unpack=function(e,t,n){let i=y(t,0),o=e[i++],r=new Array(o);for(let p=0;p<o;p++)r[p]=m.unpack(e,i),i+=3;let s=e[i++],a=e[i++]===1,c=e[i++],u=oe.unpack(e,i);i+=oe.packedLength;let f=e[i++],d=e[i++]===1;return l(n)||(n=new C_({positions:r})),n._positions=r,n.granularity=s,n.loop=a,n.arcType=c,n._ellipsoid=u,n._projectionIndex=f,n._scene3DOnly=d,n};function Nh(e,t,n){return m.subtract(e,t,n),m.normalize(n,n),n}function c$(e,t,n,i){return i=Nh(e,t,i),i=m.cross(i,n,i),i=m.normalize(i,i),i=m.cross(n,i,i),i}var f1e=new m,d1e=new m,m1e=new m,v$=new m,h1e=0,p1e=-1;function N8(e,t,n,i,o){let r=Nh(n,t,v$),s=c$(e,t,r,f1e),a=c$(i,t,r,d1e);if(P.equalsEpsilon(m.dot(s,a),p1e,P.EPSILON5))return o=m.cross(r,s,o),o=m.normalize(o,o),o;o=m.add(a,s,o),o=m.normalize(o,o);let c=m.cross(r,o,m1e);return m.dot(a,c)<h1e&&(o=m.negate(o,o)),o}var ER=fn.fromPointNormal(m.ZERO,m.UNIT_Y),_1e=new m,g1e=new m,y1e=new m,A1e=new m,x1e=new m,xR=new m,CR=new he,l$=new he,u$=new he;C_.createGeometry=function(e){let t=!e._scene3DOnly,n=e.loop,i=e._ellipsoid,o=e.granularity,r=e.arcType,s=new z8[e._projectionIndex](i),a=S$,c=w$,u,f,d=e._positions,p=d.length;p===2&&(n=!1);let g,h,A,x,C=new Pa(void 0,void 0,i),T,E,S,v=[d[0]];for(f=0;f<p-1;f++)g=d[f],h=d[f+1],T=Ji.lineSegmentPlane(g,h,ER,xR),l(T)&&!m.equalsEpsilon(T,g,P.EPSILON7)&&!m.equalsEpsilon(T,h,P.EPSILON7)&&(e.arcType===Zt.GEODESIC?v.push(m.clone(T)):e.arcType===Zt.RHUMB&&(S=i.cartesianToCartographic(T,CR).longitude,A=i.cartesianToCartographic(g,CR),x=i.cartesianToCartographic(h,l$),C.setEndPoints(A,x),E=C.findIntersectionWithLongitude(S,u$),T=i.cartographicToCartesian(E,xR),l(T)&&!m.equalsEpsilon(T,g,P.EPSILON7)&&!m.equalsEpsilon(T,h,P.EPSILON7)&&v.push(m.clone(T)))),v.push(h);n&&(g=d[p-1],h=d[0],T=Ji.lineSegmentPlane(g,h,ER,xR),l(T)&&!m.equalsEpsilon(T,g,P.EPSILON7)&&!m.equalsEpsilon(T,h,P.EPSILON7)&&(e.arcType===Zt.GEODESIC?v.push(m.clone(T)):e.arcType===Zt.RHUMB&&(S=i.cartesianToCartographic(T,CR).longitude,A=i.cartesianToCartographic(g,CR),x=i.cartesianToCartographic(h,l$),C.setEndPoints(A,x),E=C.findIntersectionWithLongitude(S,u$),T=i.cartographicToCartesian(E,xR),l(T)&&!m.equalsEpsilon(T,g,P.EPSILON7)&&!m.equalsEpsilon(T,h,P.EPSILON7)&&v.push(m.clone(T)))));let D=v.length,O=new Array(D);for(f=0;f<D;f++){let Y=he.fromCartesian(v[f],i);Y.height=0,O[f]=Y}if(O=xo(O,he.equalsEpsilon),D=O.length,D<2)return;let M=[],L=[],N=[],_=[],b=_1e,w=g1e,I=y1e,R=A1e,F=x1e,k=O[0],V=O[1],G=O[D-1];for(b=hc(i,G,a,b),R=hc(i,V,a,R),w=hc(i,k,a,w),I=hc(i,k,c,I),n?F=N8(b,w,I,R,F):F=k8(k,V,c,i,F),m.pack(F,L,0),m.pack(w,N,0),m.pack(I,_,0),M.push(k.latitude),M.push(k.longitude),B8(k,V,a,c,o,r,i,L,N,_,M),f=1;f<D-1;++f){b=m.clone(w,b),w=m.clone(R,w);let Y=O[f];hc(i,Y,c,I),hc(i,O[f+1],a,R),N8(b,w,I,R,F),u=L.length,m.pack(F,L,u),m.pack(w,N,u),m.pack(I,_,u),M.push(Y.latitude),M.push(Y.longitude),B8(O[f],O[f+1],a,c,o,r,i,L,N,_,M)}let U=O[D-1],q=O[D-2];if(w=hc(i,U,a,w),I=hc(i,U,c,I),n){let Y=O[0];b=hc(i,q,a,b),R=hc(i,Y,a,R),F=N8(b,w,I,R,F)}else F=k8(q,U,c,i,F);if(u=L.length,m.pack(F,L,u),m.pack(w,N,u),m.pack(I,_,u),M.push(U.latitude),M.push(U.longitude),n){for(B8(U,k,a,c,o,r,i,L,N,_,M),u=L.length,f=0;f<3;++f)L[u+f]=L[f],N[u+f]=N[f],_[u+f]=_[f];M.push(k.latitude),M.push(k.longitude)}return Y1e(n,s,N,_,L,M,t)};var C1e=new m,T1e=new Z,E1e=new Ne;function f$(e,t,n,i){let o=Nh(n,t,C1e),r=m.dot(o,e);if(r>b$||r<r$){let s=Nh(i,n,v$),a=r<r$?P.PI_OVER_TWO:-P.PI_OVER_TWO,c=Ne.fromAxisAngle(s,a,E1e),u=Z.fromQuaternion(c,T1e);return Z.multiplyByVector(u,e,e),!0}return!1}var d$=new he,b1e=new m,m$=new m;function CS(e,t,n,i,o){let r=he.toCartesian(t,e._ellipsoid,b1e),s=m.add(r,n,m$),a=!1,c=e._ellipsoid,u=c.cartesianToCartographic(s,d$);Math.abs(t.longitude-u.longitude)>P.PI_OVER_TWO&&(a=!0,s=m.subtract(r,n,m$),u=c.cartesianToCartographic(s,d$)),u.height=0;let f=e.project(u,o);return o=m.subtract(f,i,o),o.z=0,o=m.normalize(o,o),a&&m.negate(o,o),o}var S1e=new m,h$=new m;function p$(e,t,n,i,o,r){let s=m.subtract(t,e,S1e);m.normalize(s,s);let a=n-S$,c=m.multiplyByScalar(s,a,h$);m.add(e,c,o);let u=i-w$;c=m.multiplyByScalar(s,u,h$),m.add(t,c,r)}var w1e=new m;function TR(e,t){let n=fn.getPointDistance(ER,e),i=fn.getPointDistance(ER,t),o=w1e;P.equalsEpsilon(n,0,P.EPSILON2)?(o=Nh(t,e,o),m.multiplyByScalar(o,P.EPSILON2,o),m.add(e,o,e)):P.equalsEpsilon(i,0,P.EPSILON2)&&(o=Nh(e,t,o),m.multiplyByScalar(o,P.EPSILON2,o),m.add(t,o,t))}function v1e(e,t){let n=Math.abs(e.longitude),i=Math.abs(t.longitude);if(P.equalsEpsilon(n,P.PI,P.EPSILON11)){let o=P.sign(t.longitude);return e.longitude=o*(n-P.EPSILON11),1}else if(P.equalsEpsilon(i,P.PI,P.EPSILON11)){let o=P.sign(e.longitude);return t.longitude=o*(i-P.EPSILON11),2}return 0}var D$=new he,I$=new he,_$=new m,F8=new m,g$=new m,y$=new m,D1e=new m,A$=new m,I1e=[D$,I$],P1e=new le,O1e=new m,M1e=new m,R1e=new m,B1e=new m,L1e=new m,N1e=new m,U8=new m,V8=new m,F1e=new m,U1e=new m,V1e=new m,x$=new m,k1e=new m,z1e=new m,H1e=new Yn,G1e=new Yn,C$=new m,W1e=new m,T$=new m,j1e=[new ae,new ae],P$=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],E$=P$.length;function Y1e(e,t,n,i,o,r,s){let a,c,u=t._ellipsoid,f=n.length/3-1,d=f*8,p=d*4,g=f*36,h=d>65535?new Uint32Array(g):new Uint16Array(g),A=new Float64Array(d*3),x=new Float32Array(p),C=new Float32Array(p),T=new Float32Array(p),E=new Float32Array(p),S=new Float32Array(p),v,D,O,M;s&&(v=new Float32Array(p),D=new Float32Array(p),O=new Float32Array(p),M=new Float32Array(d*2));let L=r.length/2,N=0,_=D$;_.height=0;let b=I$;b.height=0;let w=_$,I=F8;if(s)for(c=0,a=1;a<L;a++)_.latitude=r[c],_.longitude=r[c+1],b.latitude=r[c+2],b.longitude=r[c+3],w=t.project(_,w),I=t.project(b,I),N+=m.distance(w,I),c+=2;let R=i.length/3;I=m.unpack(i,0,I);let F=0;for(c=3,a=1;a<R;a++)w=m.clone(I,w),I=m.unpack(i,c,I),F+=m.distance(w,I),c+=3;let k;c=3;let V=0,G=0,U=0,q=0,Y=!1,Q=m.unpack(n,0,y$),W=m.unpack(i,0,F8),K=m.unpack(o,0,A$);if(e){let Ie=m.unpack(n,n.length-6,g$);f$(K,Ie,Q,W)&&(K=m.negate(K,K))}let J=0,_e=0,xe=0;for(a=0;a<f;a++){let Ie=m.clone(Q,g$),Ue=m.clone(W,_$),Re=m.clone(K,D1e);Y&&(Re=m.negate(Re,Re)),Q=m.unpack(n,c,y$),W=m.unpack(i,c,F8),K=m.unpack(o,c,A$),Y=f$(K,Ie,Q,W),_.latitude=r[V],_.longitude=r[V+1],b.latitude=r[V+2],b.longitude=r[V+3];let ke,ft,pt,rt;if(s){let ki=v1e(_,b);ke=t.project(_,L1e),ft=t.project(b,N1e);let kr=Nh(ft,ke,C$);kr.y=Math.abs(kr.y),pt=U8,rt=V8,ki===0||m.dot(kr,m.UNIT_Y)>b$?(pt=CS(t,_,Re,ke,U8),rt=CS(t,b,K,ft,V8)):ki===1?(rt=CS(t,b,K,ft,V8),pt.x=0,pt.y=P.sign(_.longitude-Math.abs(b.longitude)),pt.z=0):(pt=CS(t,_,Re,ke,U8),rt.x=0,rt.y=P.sign(_.longitude-b.longitude),rt.z=0)}let un=m.distance(Ue,W),Mn=Yn.fromCartesian(Ie,H1e),Wt=m.subtract(Q,Ie,F1e),Ze=m.normalize(Wt,x$),pe=m.subtract(Ue,Ie,U1e);pe=m.normalize(pe,pe);let Ee=m.cross(Ze,pe,x$);Ee=m.normalize(Ee,Ee);let je=m.cross(pe,Re,k1e);je=m.normalize(je,je);let fi=m.subtract(W,Q,V1e);fi=m.normalize(fi,fi);let hi=m.cross(K,fi,z1e);hi=m.normalize(hi,hi);let Jo=un/F,vs=J/F,Ds=0,vr,vo,Be,st=0,Qe=0;if(s){Ds=m.distance(ke,ft),vr=Yn.fromCartesian(ke,G1e),vo=m.subtract(ft,ke,C$),Be=m.normalize(vo,W1e);let ki=Be.x;Be.x=Be.y,Be.y=-ki,st=Ds/N,Qe=_e/N}for(k=0;k<8;k++){let ki=q+k*4,kr=G+k*2,Nn=ki+3,cn=k<4?1:-1,Gn=k===2||k===3||k===6||k===7?1:-1;m.pack(Mn.high,x,ki),x[Nn]=Wt.x,m.pack(Mn.low,C,ki),C[Nn]=Wt.y,m.pack(je,T,ki),T[Nn]=Wt.z,m.pack(hi,E,ki),E[Nn]=Jo*cn,m.pack(Ee,S,ki);let gn=vs*Gn;gn===0&&Gn<0&&(gn=9),S[Nn]=gn,s&&(v[ki]=vr.high.x,v[ki+1]=vr.high.y,v[ki+2]=vr.low.x,v[ki+3]=vr.low.y,O[ki]=-pt.y,O[ki+1]=pt.x,O[ki+2]=rt.y,O[ki+3]=-rt.x,D[ki]=vo.x,D[ki+1]=vo.y,D[ki+2]=Be.x,D[ki+3]=Be.y,M[kr]=st*cn,gn=Qe*Gn,gn===0&&Gn<0&&(gn=9),M[kr+1]=gn)}let $e=R1e,_t=B1e,kt=O1e,on=M1e,Yi=le.fromCartographicArray(I1e,P1e),fo=si.getMinimumMaximumHeights(Yi,u),Jr=fo.minimumTerrainHeight,Zr=fo.maximumTerrainHeight;xe+=Jr,xe+=Zr,p$(Ie,Ue,Jr,Zr,$e,kt),p$(Q,W,Jr,Zr,_t,on);let rr=m.multiplyByScalar(Ee,P.EPSILON5,T$);m.add($e,rr,$e),m.add(_t,rr,_t),m.add(kt,rr,kt),m.add(on,rr,on),TR($e,_t),TR(kt,on),m.pack($e,A,U),m.pack(_t,A,U+3),m.pack(on,A,U+6),m.pack(kt,A,U+9),rr=m.multiplyByScalar(Ee,-2*P.EPSILON5,T$),m.add($e,rr,$e),m.add(_t,rr,_t),m.add(kt,rr,kt),m.add(on,rr,on),TR($e,_t),TR(kt,on),m.pack($e,A,U+12),m.pack(_t,A,U+15),m.pack(on,A,U+18),m.pack(kt,A,U+21),V+=2,c+=3,G+=16,U+=24,q+=32,J+=un,_e+=Ds}c=0;let se=0;for(a=0;a<f;a++){for(k=0;k<E$;k++)h[c+k]=P$[k]+se;se+=8,c+=E$}let Ae=j1e;ae.fromVertices(n,m.ZERO,3,Ae[0]),ae.fromVertices(i,m.ZERO,3,Ae[1]);let me=ae.fromBoundingSpheres(Ae);me.radius+=xe/(f*2);let Se={position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,normalize:!1,values:A}),startHiAndForwardOffsetX:x_(x),startLoAndForwardOffsetY:x_(C),startNormalAndForwardOffsetZ:x_(T),endNormalAndTextureCoordinateNormalizationX:x_(E),rightNormalAndTextureCoordinateNormalizationY:x_(S)};return s&&(Se.startHiLo2D=x_(v),Se.offsetAndRight2D=x_(D),Se.startEndNormals2D=x_(O),Se.texcoordNormalization2D=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,normalize:!1,values:M})),new dt({attributes:Se,indices:h,boundingSphere:me})}function x_(e){return new ve({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}C_._projectNormal=CS;var aC=C_;var bR=`in vec4 v_startPlaneNormalEcAndHalfWidth; +in vec4 v_endPlaneNormalEcAndBatchId; +in vec4 v_rightPlaneEC; // Technically can compute distance for this here +in vec4 v_endEcAndStartEcX; +in vec4 v_texcoordNormalizationAndStartEcYZ; + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#endif + +void main(void) +{ + float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); + vec3 ecStart = vec3(v_endEcAndStartEcX.w, v_texcoordNormalizationAndStartEcYZ.zw); + + // Discard for sky + if (logDepthOrDepth == 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + eyeCoordinate /= eyeCoordinate.w; + + float halfMaxWidth = v_startPlaneNormalEcAndHalfWidth.w * czm_metersPerPixel(eyeCoordinate); + // Check distance of the eye coordinate against the right-facing plane + float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); + + // Check eye coordinate against the mitering planes + float distanceFromStart = czm_planeDistance(v_startPlaneNormalEcAndHalfWidth.xyz, -dot(ecStart, v_startPlaneNormalEcAndHalfWidth.xyz), eyeCoordinate.xyz); + float distanceFromEnd = czm_planeDistance(v_endPlaneNormalEcAndBatchId.xyz, -dot(v_endEcAndStartEcX.xyz, v_endPlaneNormalEcAndBatchId.xyz), eyeCoordinate.xyz); + + if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + // Check distance of the eye coordinate against start and end planes with normals in the right plane. + // For computing unskewed lengthwise texture coordinate. + // Can also be used for clipping extremely pointy miters, but in practice unnecessary because of miter breaking. + + // aligned plane: cross the right plane normal with miter plane normal, then cross the result with right again to point it more "forward" + vec3 alignedPlaneNormal; + + // start aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz); + + // end aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_endPlaneNormalEcAndBatchId.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromEnd = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, v_endEcAndStartEcX.xyz), eyeCoordinate.xyz); + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Clamp - distance to aligned planes may be negative due to mitering, + // so fragment texture coordinate might be out-of-bounds. + float s = clamp(distanceFromStart / (distanceFromStart + distanceFromEnd), 0.0, 1.0); + s = (s * v_texcoordNormalizationAndStartEcYZ.x) + v_texcoordNormalizationAndStartEcYZ.y; + float t = (widthwiseDistance + halfMaxWidth) / (2.0 * halfMaxWidth); + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, t); + materialInput.str = vec3(s, t, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + + czm_writeDepthClamp(); +} +`;var SR=`in vec3 v_forwardDirectionEC; +in vec3 v_texcoordNormalizationAndHalfWidth; +in float v_batchId; + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#else +in vec2 v_alignedPlaneDistances; +in float v_texcoordT; +#endif + +float rayPlaneDistanceUnsafe(vec3 origin, vec3 direction, vec3 planeNormal, float planeDistance) { + // We don't expect the ray to ever be parallel to the plane + return (-planeDistance - dot(planeNormal, origin)) / dot(planeNormal, direction); +} + +void main(void) +{ + vec4 eyeCoordinate = gl_FragCoord; + eyeCoordinate /= eyeCoordinate.w; + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Use distances for planes aligned with segment to prevent skew in dashing + float distanceFromStart = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, -v_forwardDirectionEC, v_forwardDirectionEC.xyz, v_alignedPlaneDistances.x); + float distanceFromEnd = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, v_forwardDirectionEC, -v_forwardDirectionEC.xyz, v_alignedPlaneDistances.y); + + // Clamp - distance to aligned planes may be negative due to mitering + distanceFromStart = max(0.0, distanceFromStart); + distanceFromEnd = max(0.0, distanceFromEnd); + + float s = distanceFromStart / (distanceFromStart + distanceFromEnd); + s = (s * v_texcoordNormalizationAndHalfWidth.x) + v_texcoordNormalizationAndHalfWidth.y; + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, v_texcoordT); + materialInput.str = vec3(s, v_texcoordT, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR +} +`;var wR=`in vec3 position3DHigh; +in vec3 position3DLow; + +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; + +in float batchId; + +out vec3 v_forwardDirectionEC; +out vec3 v_texcoordNormalizationAndHalfWidth; +out float v_batchId; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#else +out vec2 v_alignedPlaneDistances; +out float v_texcoordT; +#endif + +// Morphing planes using SLERP or NLERP doesn't seem to work, so instead draw the material directly on the shadow volume. +// Morph views are from very far away and aren't meant to be used precisely, so this should be sufficient. +void main() +{ + v_batchId = batchId; + + // Start position + vec4 posRelativeToEye2D = czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw)); + vec4 posRelativeToEye3D = czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz); + vec4 posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + vec3 posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + vec3 posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 startEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + + // Start plane + vec4 startPlane2D; + vec4 startPlane3D; + startPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlane3D.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlane2D.w = -dot(startPlane2D.xyz, posEc2D); + startPlane3D.w = -dot(startPlane3D.xyz, posEc3D); + + // Right plane + vec4 rightPlane2D; + vec4 rightPlane3D; + rightPlane2D.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + rightPlane3D.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + rightPlane2D.w = -dot(rightPlane2D.xyz, posEc2D); + rightPlane3D.w = -dot(rightPlane3D.xyz, posEc3D); + + // End position + posRelativeToEye2D = posRelativeToEye2D + vec4(0.0, offsetAndRight2D.xy, 0.0); + posRelativeToEye3D = posRelativeToEye3D + vec4(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w, 0.0); + posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 endEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + vec3 forwardEc3D = czm_normal * normalize(vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w)); + vec3 forwardEc2D = czm_normal * normalize(vec3(0.0, offsetAndRight2D.xy)); + + // End plane + vec4 endPlane2D; + vec4 endPlane3D; + endPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlane3D.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlane2D.w = -dot(endPlane2D.xyz, posEc2D); + endPlane3D.w = -dot(endPlane3D.xyz, posEc3D); + + // Forward direction + v_forwardDirectionEC = normalize(endEC - startEC); + + vec2 cleanTexcoordNormalization2D; + cleanTexcoordNormalization2D.x = abs(texcoordNormalization2D.x); + cleanTexcoordNormalization2D.y = czm_branchFreeTernary(texcoordNormalization2D.y > 1.0, 0.0, abs(texcoordNormalization2D.y)); + vec2 cleanTexcoordNormalization3D; + cleanTexcoordNormalization3D.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + cleanTexcoordNormalization3D.y = rightNormalAndTextureCoordinateNormalizationY.w; + cleanTexcoordNormalization3D.y = czm_branchFreeTernary(cleanTexcoordNormalization3D.y > 1.0, 0.0, abs(cleanTexcoordNormalization3D.y)); + + v_texcoordNormalizationAndHalfWidth.xy = mix(cleanTexcoordNormalization2D, cleanTexcoordNormalization3D, czm_morphTime); + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#else // PER_INSTANCE_COLOR + // For computing texture coordinates + + v_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC); + v_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC); +#endif // PER_INSTANCE_COLOR + +#ifdef WIDTH_VARYING + float width = czm_batchTable_width(batchId); + float halfWidth = width * 0.5; + v_width = width; + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#else + float halfWidth = 0.5 * czm_batchTable_width(batchId); + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#endif + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + // Since this is morphing, compute both 3D and 2D positions and then blend. + + // ****** 3D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow); // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlane3D, positionEc3D.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlane3D, positionEc3D.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane3D.xyz, endPlane3D.xyz); + vec3 upOrDown = normalize(cross(rightPlane3D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + vec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D)); + geodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc3D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // ****** 2D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); // w = 1.0, see czm_computePosition + absStartPlaneDistance = abs(czm_planeDistance(startPlane2D, positionEc2D.xyz)); + absEndPlaneDistance = abs(czm_planeDistance(endPlane2D, positionEc2D.xyz)); + planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane2D.xyz, endPlane2D.xyz); + upOrDown = normalize(cross(rightPlane2D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D)); + geodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc2D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(texcoordNormalization2D.x); +#ifndef PER_INSTANCE_COLOR + // Use vertex's sidedness to compute its texture coordinate. + v_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0); +#endif + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // Blend for actual position + gl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(v_forwardDirectionEC.x, -v_forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var vR=`in vec3 position3DHigh; +in vec3 position3DLow; + +// In 2D and in 3D, texture coordinate normalization component signs encodes: +// * X sign - sidedness relative to right plane +// * Y sign - is negative OR magnitude is greater than 1.0 if vertex is on bottom of volume +#ifndef COLUMBUS_VIEW_2D +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +#else +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; +#endif + +in float batchId; + +out vec4 v_startPlaneNormalEcAndHalfWidth; +out vec4 v_endPlaneNormalEcAndBatchId; +out vec4 v_rightPlaneEC; +out vec4 v_endEcAndStartEcX; +out vec4 v_texcoordNormalizationAndStartEcYZ; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif + +void main() +{ +#ifdef COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw))).xyz; + + vec3 forwardDirectionEC = czm_normal * vec3(0.0, offsetAndRight2D.xy); + vec3 ecEnd = forwardDirectionEC + ecStart; + forwardDirectionEC = normalize(forwardDirectionEC); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + v_texcoordNormalizationAndStartEcYZ.x = abs(texcoordNormalization2D.x); + v_texcoordNormalizationAndStartEcYZ.y = texcoordNormalization2D.y; + +#else // COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz)).xyz; + vec3 offset = czm_normal * vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w); + vec3 ecEnd = ecStart + offset; + + vec3 forwardDirectionEC = normalize(offset); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + v_texcoordNormalizationAndStartEcYZ.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + v_texcoordNormalizationAndStartEcYZ.y = rightNormalAndTextureCoordinateNormalizationY.w; + +#endif // COLUMBUS_VIEW_2D + + v_endEcAndStartEcX.xyz = ecEnd; + v_endEcAndStartEcX.w = ecStart.x; + v_texcoordNormalizationAndStartEcYZ.zw = ecStart.yz; + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif // PER_INSTANCE_COLOR + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + vec4 positionRelativeToEye = czm_computePosition(); + + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye; // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlaneEC, positionEC.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlaneEC, positionEC.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlaneEC.xyz, endPlaneEC.xyz); + vec3 upOrDown = normalize(cross(v_rightPlaneEC.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Extrude bottom vertices downward for far view distances, like for GroundPrimitives + upOrDown = cross(forwardDirectionEC, normalEC); + upOrDown = float(czm_sceneMode == czm_sceneMode3D) * upOrDown; + upOrDown = float(v_texcoordNormalizationAndStartEcYZ.y > 1.0 || v_texcoordNormalizationAndStartEcYZ.y < 0.0) * upOrDown; + upOrDown = min(GLOBE_MINIMUM_ALTITUDE, czm_geometricToleranceOverMeter * length(positionRelativeToEye.xyz)) * upOrDown; + positionEC.xyz += upOrDown; + + v_texcoordNormalizationAndStartEcYZ.y = czm_branchFreeTernary(v_texcoordNormalizationAndStartEcYZ.y > 1.0, 0.0, abs(v_texcoordNormalizationAndStartEcYZ.y)); + + // Determine distance along normalEC to push for a volume of appropriate width. + // Make volumes about double pixel width for a conservative fit - in practice the + // extra cost here is minimal compared to the loose volume heights. + // + // N = normalEC (guaranteed "right-facing") + // R = rightEC + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + float width = czm_batchTable_width(batchId); +#ifdef WIDTH_VARYING + v_width = width; +#endif + + v_startPlaneNormalEcAndHalfWidth.xyz = startPlaneEC.xyz; + v_startPlaneNormalEcAndHalfWidth.w = width * 0.5; + + v_endPlaneNormalEcAndBatchId.xyz = endPlaneEC.xyz; + v_endPlaneNormalEcAndBatchId.w = batchId; + + width = width * max(0.0, czm_metersPerPixel(positionEC)); // width = distance to push along R + width = width / dot(normalEC, v_rightPlaneEC.xyz); // width = distance to push along N + + // Determine if this vertex is on the "left" or "right" +#ifdef COLUMBUS_VIEW_2D + normalEC *= sign(texcoordNormalization2D.x); +#else + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); +#endif + + positionEC.xyz += width * normalEC; + gl_Position = czm_depthClamp(czm_projection * positionEC); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(forwardDirectionEC.x, -forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var DR=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_color = color; +} +`;var Ru=`void clipLineSegmentToNearPlane( + vec3 p0, + vec3 p1, + out vec4 positionWC, + out bool clipped, + out bool culledByNearPlane, + out vec4 clippedPositionEC) +{ + culledByNearPlane = false; + clipped = false; + + vec3 p0ToP1 = p1 - p0; + float magnitude = length(p0ToP1); + vec3 direction = normalize(p0ToP1); + + // Distance that p0 is behind the near plane. Negative means p0 is + // in front of the near plane. + float endPoint0Distance = czm_currentFrustum.x + p0.z; + + // Camera looks down -Z. + // When moving a point along +Z: LESS VISIBLE + // * Points in front of the camera move closer to the camera. + // * Points behind the camrea move farther away from the camera. + // When moving a point along -Z: MORE VISIBLE + // * Points in front of the camera move farther away from the camera. + // * Points behind the camera move closer to the camera. + + // Positive denominator: -Z, becoming more visible + // Negative denominator: +Z, becoming less visible + // Nearly zero: parallel to near plane + float denominator = -direction.z; + + if (endPoint0Distance > 0.0 && abs(denominator) < czm_epsilon7) + { + // p0 is behind the near plane and the line to p1 is nearly parallel to + // the near plane, so cull the segment completely. + culledByNearPlane = true; + } + else if (endPoint0Distance > 0.0) + { + // p0 is behind the near plane, and the line to p1 is moving distinctly + // toward or away from it. + + // t = (-plane distance - dot(plane normal, ray origin)) / dot(plane normal, ray direction) + float t = endPoint0Distance / denominator; + if (t < 0.0 || t > magnitude) + { + // Near plane intersection is not between the two points. + // We already confirmed p0 is behind the naer plane, so now + // we know the entire segment is behind it. + culledByNearPlane = true; + } + else + { + // Segment crosses the near plane, update p0 to lie exactly on it. + p0 = p0 + t * direction; + + // Numerical noise might put us a bit on the wrong side of the near plane. + // Don't let that happen. + p0.z = min(p0.z, -czm_currentFrustum.x); + + clipped = true; + } + } + + clippedPositionEC = vec4(p0, 1.0); + positionWC = czm_eyeToWindowCoordinates(clippedPositionEC); +} + +vec4 getPolylineWindowCoordinatesEC(vec4 positionEC, vec4 prevEC, vec4 nextEC, float expandDirection, float width, bool usePrevious, out float angle) +{ + // expandDirection +1 is to the _left_ when looking from positionEC toward nextEC. + +#ifdef POLYLINE_DASH + // Compute the window coordinates of the points. + vec4 positionWindow = czm_eyeToWindowCoordinates(positionEC); + vec4 previousWindow = czm_eyeToWindowCoordinates(prevEC); + vec4 nextWindow = czm_eyeToWindowCoordinates(nextEC); + + // Determine the relative screen space direction of the line. + vec2 lineDir; + if (usePrevious) { + lineDir = normalize(positionWindow.xy - previousWindow.xy); + } + else { + lineDir = normalize(nextWindow.xy - positionWindow.xy); + } + angle = atan(lineDir.x, lineDir.y) - 1.570796327; // precomputed atan(1,0) + + // Quantize the angle so it doesn't change rapidly between segments. + angle = floor(angle / czm_piOverFour + 0.5) * czm_piOverFour; +#endif + + vec4 clippedPrevWC, clippedPrevEC; + bool prevSegmentClipped, prevSegmentCulled; + clipLineSegmentToNearPlane(prevEC.xyz, positionEC.xyz, clippedPrevWC, prevSegmentClipped, prevSegmentCulled, clippedPrevEC); + + vec4 clippedNextWC, clippedNextEC; + bool nextSegmentClipped, nextSegmentCulled; + clipLineSegmentToNearPlane(nextEC.xyz, positionEC.xyz, clippedNextWC, nextSegmentClipped, nextSegmentCulled, clippedNextEC); + + bool segmentClipped, segmentCulled; + vec4 clippedPositionWC, clippedPositionEC; + clipLineSegmentToNearPlane(positionEC.xyz, usePrevious ? prevEC.xyz : nextEC.xyz, clippedPositionWC, segmentClipped, segmentCulled, clippedPositionEC); + + if (segmentCulled) + { + return vec4(0.0, 0.0, 0.0, 1.0); + } + + vec2 directionToPrevWC = normalize(clippedPrevWC.xy - clippedPositionWC.xy); + vec2 directionToNextWC = normalize(clippedNextWC.xy - clippedPositionWC.xy); + + // If a segment was culled, we can't use the corresponding direction + // computed above. We should never see both of these be true without + // \`segmentCulled\` above also being true. + if (prevSegmentCulled) + { + directionToPrevWC = -directionToNextWC; + } + else if (nextSegmentCulled) + { + directionToNextWC = -directionToPrevWC; + } + + vec2 thisSegmentForwardWC, otherSegmentForwardWC; + if (usePrevious) + { + thisSegmentForwardWC = -directionToPrevWC; + otherSegmentForwardWC = directionToNextWC; + } + else + { + thisSegmentForwardWC = directionToNextWC; + otherSegmentForwardWC = -directionToPrevWC; + } + + vec2 thisSegmentLeftWC = vec2(-thisSegmentForwardWC.y, thisSegmentForwardWC.x); + + vec2 leftWC = thisSegmentLeftWC; + float expandWidth = width * 0.5; + + // When lines are split at the anti-meridian, the position may be at the + // same location as the next or previous position, and we need to handle + // that to avoid producing NaNs. + if (!czm_equalsEpsilon(prevEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1) && !czm_equalsEpsilon(nextEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1)) + { + vec2 otherSegmentLeftWC = vec2(-otherSegmentForwardWC.y, otherSegmentForwardWC.x); + + vec2 leftSumWC = thisSegmentLeftWC + otherSegmentLeftWC; + float leftSumLength = length(leftSumWC); + leftWC = leftSumLength < czm_epsilon6 ? thisSegmentLeftWC : (leftSumWC / leftSumLength); + + // The sine of the angle between the two vectors is given by the formula + // |a x b| = |a||b|sin(theta) + // which is + // float sinAngle = length(cross(vec3(leftWC, 0.0), vec3(-thisSegmentForwardWC, 0.0))); + // Because the z components of both vectors are zero, the x and y coordinate will be zero. + // Therefore, the sine of the angle is just the z component of the cross product. + vec2 u = -thisSegmentForwardWC; + vec2 v = leftWC; + float sinAngle = abs(u.x * v.y - u.y * v.x); + expandWidth = clamp(expandWidth / sinAngle, 0.0, width * 2.0); + } + + vec2 offset = leftWC * expandDirection * expandWidth * czm_pixelRatio; + return vec4(clippedPositionWC.xy + offset, -clippedPositionWC.z, 1.0) * (czm_projection * clippedPositionEC).w; +} + +vec4 getPolylineWindowCoordinates(vec4 position, vec4 previous, vec4 next, float expandDirection, float width, bool usePrevious, out float angle) +{ + vec4 positionEC = czm_modelViewRelativeToEye * position; + vec4 prevEC = czm_modelViewRelativeToEye * previous; + vec4 nextEC = czm_modelViewRelativeToEye * next; + return getPolylineWindowCoordinatesEC(positionEC, prevEC, nextEC, expandDirection, width, usePrevious, angle); +} +`;var H8=`${Ru} +${DR}`,q1e=Xx;Gt.isInternetExplorer()||(H8=`#define CLIP_POLYLINE +${H8}`);function c0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=c0.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,H8),this._fragmentShaderSource=y(e.fragmentShaderSource,q1e),this._renderState=to.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(c0.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});c0.VERTEX_FORMAT=Pe.POSITION_ONLY;c0.prototype.getFragmentShaderSource=to.prototype.getFragmentShaderSource;c0.prototype.isTranslucent=to.prototype.isTranslucent;c0.prototype.getRenderState=to.prototype.getRenderState;var Wr=c0;var IR=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec2 st; +in float batchId; + +out float v_width; +out vec2 v_st; +out float v_polylineAngle; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_width = width; + v_st.s = st.s; + v_st.t = czm_writeNonPerspective(st.t, gl_Position.w); + v_polylineAngle = angle; +} +`;var cC=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec2 st = v_st; + st.t = czm_readNonPerspective(st.t, gl_FragCoord.w); + + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = vec3(st, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#ifdef VECTOR_TILE + out_FragColor *= u_highlightColor; +#endif + + czm_writeLogDepth(); +} +`;var G8=`${Ru} +${IR}`,X1e=cC;Gt.isInternetExplorer()||(G8=`#define CLIP_POLYLINE +${G8}`);function l0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=l0.VERTEX_FORMAT;this.material=l(e.material)?e.material:Gi.fromType(Gi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,G8),this._fragmentShaderSource=y(e.fragmentShaderSource,X1e),this._renderState=to.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(l0.prototype,{vertexShaderSource:{get:function(){let e=this._vertexShaderSource;return this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&(e=`#define POLYLINE_DASH +${e}`),e}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});l0.VERTEX_FORMAT=Pe.POSITION_AND_ST;l0.prototype.getFragmentShaderSource=to.prototype.getFragmentShaderSource;l0.prototype.isTranslucent=to.prototype.isTranslucent;l0.prototype.getRenderState=to.prototype.getRenderState;var aa=l0;function Fh(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;let t=e.appearance;l(t)||(t=new aa),this.appearance=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,zn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:!1,interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:!1,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0},this._zIndex=void 0,this._ready=!1;let n=this;this._readyPromise=new Promise((i,o)=>{n._completeLoad=()=>{this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0);let r=this._error;l(r)?o(r):i(this)}}),this._primitive=void 0,this._sp=void 0,this._sp2D=void 0,this._spMorph=void 0,this._renderState=O$(!1),this._renderState3DTiles=O$(!0),this._renderStateMorph=ze.fromCache({cull:{enabled:!0,face:gi.FRONT},depthTest:{enabled:!0},blending:mn.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1})}Object.defineProperties(Fh.prototype,{interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("GroundPolylinePrimitive.readyPromise","GroundPolylinePrimitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for GroundPolylinePrimitive.ready to return true instead."),this._readyPromise}},debugShowShadowVolume:{get:function(){return this._debugShowShadowVolume}}});Fh.initializeTerrainHeights=function(){return si.initialize()};function K1e(e,t,n){let i=t.context,o=e._primitive,r=o._attributeLocations,s=o._batchTable.getVertexShaderCallback()(vR);s=wn._appendShowToShader(o,s),s=wn._appendDistanceDisplayConditionToShader(o,s),s=wn._modifyShaderPosition(e,s,t.scene3DOnly);let a=o._batchTable.getVertexShaderCallback()(wR);a=wn._appendShowToShader(o,a),a=wn._appendDistanceDisplayConditionToShader(o,a),a=wn._modifyShaderPosition(e,a,t.scene3DOnly);let c=o._batchTable.getVertexShaderCallback()(bR),u=[`GLOBE_MINIMUM_ALTITUDE ${t.mapProjection.ellipsoid.minimumRadius.toFixed(1)}`],f="",d="";l(n.material)?(d=l(n.material)?n.material.shaderSource:"",d.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&u.push("ANGLE_VARYING"),d.search(/in\s+float\s+v_width;/g)!==-1&&u.push("WIDTH_VARYING")):f="PER_INSTANCE_COLOR",u.push(f);let p=e.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",f]:[f],g=new He({defines:u,sources:[s]}),h=new He({defines:p,sources:[d,c]});e._sp=Jt.replaceCache({context:i,shaderProgram:o._sp,vertexShaderSource:g,fragmentShaderSource:h,attributeLocations:r});let A=i.shaderCache.getDerivedShaderProgram(e._sp,"2dColor");if(!l(A)){let C=new He({defines:u.concat(["COLUMBUS_VIEW_2D"]),sources:[s]});A=i.shaderCache.createDerivedShaderProgram(e._sp,"2dColor",{context:i,shaderProgram:e._sp2D,vertexShaderSource:C,fragmentShaderSource:h,attributeLocations:r})}e._sp2D=A;let x=i.shaderCache.getDerivedShaderProgram(e._sp,"MorphColor");if(!l(x)){let C=new He({defines:u.concat([`MAX_TERRAIN_HEIGHT ${si._defaultMaxTerrainHeight.toFixed(1)}`]),sources:[a]});c=o._batchTable.getVertexShaderCallback()(SR);let T=new He({defines:p,sources:[d,c]});x=i.shaderCache.createDerivedShaderProgram(e._sp,"MorphColor",{context:i,shaderProgram:e._spMorph,vertexShaderSource:C,fragmentShaderSource:T,attributeLocations:r})}e._spMorph=x}function O$(e){return ze.fromCache({cull:{enabled:!0},blending:mn.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Hn.EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Hn.EQUAL,backOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK}})}function J1e(e,t,n,i,o,r){let s=e._primitive,a=s._va.length;o.length=a,r.length=a;let u=t instanceof Wr?{}:n._uniforms,f=s._batchTable.getUniformMapCallback()(u);for(let d=0;d<a;d++){let p=s._va[d],g=o[d];l(g)||(g=o[d]=new it({owner:e,primitiveType:s._primitiveType})),g.vertexArray=p,g.renderState=e._renderState,g.shaderProgram=e._sp,g.uniformMap=f,g.pass=be.TERRAIN_CLASSIFICATION,g.pickId="czm_batchTable_pickColor(v_endPlaneNormalEcAndBatchId.w)";let h=it.shallowClone(g,g.derivedCommands.tileset);h.renderState=e._renderState3DTiles,h.pass=be.CESIUM_3D_TILE_CLASSIFICATION,g.derivedCommands.tileset=h;let A=it.shallowClone(g,g.derivedCommands.color2D);A.shaderProgram=e._sp2D,g.derivedCommands.color2D=A;let x=it.shallowClone(h,h.derivedCommands.color2D);x.shaderProgram=e._sp2D,h.derivedCommands.color2D=x;let C=it.shallowClone(g,g.derivedCommands.colorMorph);C.renderState=e._renderStateMorph,C.shaderProgram=e._spMorph,C.pickId="czm_batchTable_pickColor(v_batchId)",g.derivedCommands.colorMorph=C}}function M$(e,t,n,i,o,r,s){n.mode===ne.MORPHING?t=t.derivedCommands.colorMorph:n.mode!==ne.SCENE3D&&(t=t.derivedCommands.color2D),t.modelMatrix=i,t.boundingVolume=r,t.cull=o,t.debugShowBoundingVolume=s,n.commandList.push(t)}function Z1e(e,t,n,i,o,r,s){let a=e._primitive;wn._updateBoundingVolumes(a,t,o);let c;t.mode===ne.SCENE3D?c=a._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?c=a._boundingSphereCV:t.mode===ne.SCENE2D&&l(a._boundingSphere2D)?c=a._boundingSphere2D:l(a._boundingSphereMorph)&&(c=a._boundingSphereMorph);let u=t.mode===ne.MORPHING,f=e.classificationType,d=f!==zn.CESIUM_3D_TILE,p=f!==zn.TERRAIN&&!u,g,h=t.passes;if(h.render||h.pick&&a.allowPicking){let A=n.length;for(let x=0;x<A;++x){let C=c[x];d&&(g=n[x],M$(e,g,t,o,r,C,s)),p&&(g=n[x].derivedCommands.tileset,M$(e,g,t,o,r,C,s))}}}Fh.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;if(!si.initialized){Fh.initializeTerrainHeights();return}let t,n=this,i=this._primitiveOptions;if(!l(this._primitive)){let o=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],r=o.length,s=new Array(r),a;for(t=0;t<r;++t)if(a=o[t].attributes,!l(a)||!l(a.color)){this._hasPerInstanceColors=!1;break}for(t=0;t<r;++t){let c=o[t];a={};let u=c.attributes;for(let f in u)u.hasOwnProperty(f)&&(a[f]=u[f]);l(a.width)||(a.width=new mc({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,value:[c.geometry.width]})),c.geometry._scene3DOnly=e.scene3DOnly,aC.setProjectionAndEllipsoid(c.geometry,e.mapProjection),s[t]=new Tt({geometry:c.geometry,attributes:a,id:c.id,pickPrimitive:n})}i.geometryInstances=s,i.appearance=this.appearance,i._createShaderProgramFunction=function(c,u,f){K1e(n,u,f)},i._createCommandsFunction=function(c,u,f,d,p,g,h){J1e(n,u,f,d,g,h)},i._updateAndQueueCommandsFunction=function(c,u,f,d,p,g,h,A){Z1e(n,u,f,d,p,g,h)},this._primitive=new wn(i)}if(this.appearance instanceof Wr&&!this._hasPerInstanceColors)throw new fe("All GeometryInstances must have color attributes to use PolylineColorAppearance with GroundPolylinePrimitive.");this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{!this._ready&&l(this._primitive)&&this._primitive.ready&&this._completeLoad()})};Fh.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Fh.isSupported=function(e){return e.frameState.context.depthTexture};Fh.prototype.isDestroyed=function(){return!1};Fh.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._sp2D=void 0,this._spMorph=void 0,ue(this)};var sm=Fh;var Q1e=new H(1,1),$1e=!1,eOe=z.WHITE;function lC(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._image=void 0,this._imageSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._transparent=void 0,this._transparentSubscription=void 0,this.image=e.image,this.repeat=e.repeat,this.color=e.color,this.transparent=e.transparent}Object.defineProperties(lC.prototype,{isConstant:{get:function(){return j.isConstant(this._image)&&j.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:ce("image"),repeat:ce("repeat"),color:ce("color"),transparent:ce("transparent")});lC.prototype.getType=function(e){return"Image"};lC.prototype.getValue=function(e,t){return l(t)||(t={}),t.image=j.getValueOrUndefined(this._image,e),t.repeat=j.getValueOrClonedDefault(this._repeat,e,Q1e,t.repeat),t.color=j.getValueOrClonedDefault(this._color,e,eOe,t.color),j.getValueOrDefault(this._transparent,e,$1e)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t};lC.prototype.equals=function(e){return this===e||e instanceof lC&&j.equals(this._image,e._image)&&j.equals(this._repeat,e._repeat)&&j.equals(this._color,e._color)&&j.equals(this._transparent,e._transparent)};var u0=lC;function tOe(e){if(e instanceof z)return new Ut(e);if(typeof e=="string"||e instanceof we||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement){let t=new u0;return t.image=e,t}}function nOe(e,t){return ce(e,t,tOe)}var Io=nOe;function TS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(TS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),dimensions:ce("dimensions"),heightReference:ce("heightReference"),fill:ce("fill"),material:Io("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});TS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.dimensions=this.dimensions,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new TS(this)};TS.prototype.merge=function(e){this.show=y(this.show,e.show),this.dimensions=y(this.dimensions,e.dimensions),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var uC=TS;var iOe={FIXED:0,INERTIAL:1},no=Object.freeze(iOe);function fC(){fe.throwInstantiationError()}Object.defineProperties(fC.prototype,{isConstant:{get:fe.throwInstantiationError},definitionChanged:{get:fe.throwInstantiationError},referenceFrame:{get:fe.throwInstantiationError}});fC.prototype.getValue=fe.throwInstantiationError;fC.prototype.getValueInReferenceFrame=fe.throwInstantiationError;fC.prototype.equals=fe.throwInstantiationError;var W8=new Z;fC.convertToReferenceFrame=function(e,t,n,i,o){if(!l(t))return t;if(l(o)||(o=new m),n===i)return m.clone(t,o);let r=Rt.computeIcrfToFixedMatrix(e,W8);if(l(r)||(r=Rt.computeTemeToPseudoFixedMatrix(e,W8)),n===no.INERTIAL)return Z.multiplyByVector(r,t,o);if(n===no.FIXED)return Z.multiplyByVector(Z.transpose(r,W8),t,o)};var T_=fC;function f0(e,t){this._definitionChanged=new ge,this._value=m.clone(e),this._referenceFrame=y(t,no.FIXED)}Object.defineProperties(f0.prototype,{isConstant:{get:function(){return!l(this._value)||this._referenceFrame===no.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});f0.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};f0.prototype.setValue=function(e,t){let n=!1;m.equals(this._value,e)||(n=!0,this._value=m.clone(e)),l(t)&&this._referenceFrame!==t&&(n=!0,this._referenceFrame=t),n&&this._definitionChanged.raiseEvent(this)};f0.prototype.getValueInReferenceFrame=function(e,t,n){return T_.convertToReferenceFrame(e,this._value,this._referenceFrame,t,n)};f0.prototype.equals=function(e){return this===e||e instanceof f0&&m.equals(this._value,e._value)&&this._referenceFrame===e._referenceFrame};var Xc=f0;function ES(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(ES.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),width:ce("width"),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),cornerType:ce("cornerType"),granularity:ce("granularity"),fill:ce("fill"),material:Io("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});ES.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new ES(this)};ES.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var dC=ES;function oOe(e){return e}function rOe(e,t){return ce(e,t,oOe)}var Ml=rOe;function bS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._length=void 0,this._lengthSubscription=void 0,this._topRadius=void 0,this._topRadiusSubscription=void 0,this._bottomRadius=void 0,this._bottomRadiusSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._slices=void 0,this._slicesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(bS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),length:ce("length"),topRadius:ce("topRadius"),bottomRadius:ce("bottomRadius"),heightReference:ce("heightReference"),fill:ce("fill"),material:Io("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),numberOfVerticalLines:ce("numberOfVerticalLines"),slices:ce("slices"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});bS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.length=this.length,e.topRadius=this.topRadius,e.bottomRadius=this.bottomRadius,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.slices=this.slices,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new bS(this)};bS.prototype.merge=function(e){this.show=y(this.show,e.show),this.length=y(this.length,e.length),this.topRadius=y(this.topRadius,e.topRadius),this.bottomRadius=y(this.bottomRadius,e.bottomRadius),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.slices=y(this.slices,e.slices),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var mC=bS;function SS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._semiMajorAxis=void 0,this._semiMajorAxisSubscription=void 0,this._semiMinorAxis=void 0,this._semiMinorAxisSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(SS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),semiMajorAxis:ce("semiMajorAxis"),semiMinorAxis:ce("semiMinorAxis"),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),rotation:ce("rotation"),stRotation:ce("stRotation"),granularity:ce("granularity"),fill:ce("fill"),material:Io("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),numberOfVerticalLines:ce("numberOfVerticalLines"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});SS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.semiMajorAxis=this.semiMajorAxis,e.semiMinorAxis=this.semiMinorAxis,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new SS(this)};SS.prototype.merge=function(e){this.show=y(this.show,e.show),this.semiMajorAxis=y(this.semiMajorAxis,e.semiMajorAxis),this.semiMinorAxis=y(this.semiMinorAxis,e.semiMinorAxis),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var hC=SS;function wS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._radii=void 0,this._radiiSubscription=void 0,this._innerRadii=void 0,this._innerRadiiSubscription=void 0,this._minimumClock=void 0,this._minimumClockSubscription=void 0,this._maximumClock=void 0,this._maximumClockSubscription=void 0,this._minimumCone=void 0,this._minimumConeSubscription=void 0,this._maximumCone=void 0,this._maximumConeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._stackPartitions=void 0,this._stackPartitionsSubscription=void 0,this._slicePartitions=void 0,this._slicePartitionsSubscription=void 0,this._subdivisions=void 0,this._subdivisionsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(wS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),radii:ce("radii"),innerRadii:ce("innerRadii"),minimumClock:ce("minimumClock"),maximumClock:ce("maximumClock"),minimumCone:ce("minimumCone"),maximumCone:ce("maximumCone"),heightReference:ce("heightReference"),fill:ce("fill"),material:Io("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),stackPartitions:ce("stackPartitions"),slicePartitions:ce("slicePartitions"),subdivisions:ce("subdivisions"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});wS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.radii=this.radii,e.innerRadii=this.innerRadii,e.minimumClock=this.minimumClock,e.maximumClock=this.maximumClock,e.minimumCone=this.minimumCone,e.maximumCone=this.maximumCone,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.stackPartitions=this.stackPartitions,e.slicePartitions=this.slicePartitions,e.subdivisions=this.subdivisions,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new wS(this)};wS.prototype.merge=function(e){this.show=y(this.show,e.show),this.radii=y(this.radii,e.radii),this.innerRadii=y(this.innerRadii,e.innerRadii),this.minimumClock=y(this.minimumClock,e.minimumClock),this.maximumClock=y(this.maximumClock,e.maximumClock),this.minimumCone=y(this.minimumCone,e.minimumCone),this.maximumCone=y(this.maximumCone,e.maximumCone),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.stackPartitions=y(this.stackPartitions,e.stackPartitions),this.slicePartitions=y(this.slicePartitions,e.slicePartitions),this.subdivisions=y(this.subdivisions,e.subdivisions),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var pC=wS;function vS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._text=void 0,this._textSubscription=void 0,this._font=void 0,this._fontSubscription=void 0,this._style=void 0,this._styleSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._showBackground=void 0,this._showBackgroundSubscription=void 0,this._backgroundColor=void 0,this._backgroundColorSubscription=void 0,this._backgroundPadding=void 0,this._backgroundPaddingSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fillColor=void 0,this._fillColorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(vS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),text:ce("text"),font:ce("font"),style:ce("style"),scale:ce("scale"),showBackground:ce("showBackground"),backgroundColor:ce("backgroundColor"),backgroundPadding:ce("backgroundPadding"),pixelOffset:ce("pixelOffset"),eyeOffset:ce("eyeOffset"),horizontalOrigin:ce("horizontalOrigin"),verticalOrigin:ce("verticalOrigin"),heightReference:ce("heightReference"),fillColor:ce("fillColor"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),translucencyByDistance:ce("translucencyByDistance"),pixelOffsetScaleByDistance:ce("pixelOffsetScaleByDistance"),scaleByDistance:ce("scaleByDistance"),distanceDisplayCondition:ce("distanceDisplayCondition"),disableDepthTestDistance:ce("disableDepthTestDistance")});vS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.text=this.text,e.font=this.font,e.style=this.style,e.scale=this.scale,e.showBackground=this.showBackground,e.backgroundColor=this.backgroundColor,e.backgroundPadding=this.backgroundPadding,e.pixelOffset=this.pixelOffset,e.eyeOffset=this.eyeOffset,e.horizontalOrigin=this.horizontalOrigin,e.verticalOrigin=this.verticalOrigin,e.heightReference=this.heightReference,e.fillColor=this.fillColor,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.translucencyByDistance=this.translucencyByDistance,e.pixelOffsetScaleByDistance=this.pixelOffsetScaleByDistance,e.scaleByDistance=this.scaleByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new vS(this)};vS.prototype.merge=function(e){this.show=y(this.show,e.show),this.text=y(this.text,e.text),this.font=y(this.font,e.font),this.style=y(this.style,e.style),this.scale=y(this.scale,e.scale),this.showBackground=y(this.showBackground,e.showBackground),this.backgroundColor=y(this.backgroundColor,e.backgroundColor),this.backgroundPadding=y(this.backgroundPadding,e.backgroundPadding),this.pixelOffset=y(this.pixelOffset,e.pixelOffset),this.eyeOffset=y(this.eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this.horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this.verticalOrigin,e.verticalOrigin),this.heightReference=y(this.heightReference,e.heightReference),this.fillColor=y(this.fillColor,e.fillColor),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.translucencyByDistance=y(this.translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this.pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance)};var am=vS;var sOe=new m(1,1,1),aOe=m.ZERO,cOe=Ne.IDENTITY;function R$(e,t,n){this.translation=m.clone(y(e,aOe)),this.rotation=Ne.clone(y(t,cOe)),this.scale=m.clone(y(n,sOe))}R$.prototype.equals=function(e){return this===e||l(e)&&m.equals(this.translation,e.translation)&&Ne.equals(this.rotation,e.rotation)&&m.equals(this.scale,e.scale)};var d0=R$;var j8=new d0;function DS(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._translation=void 0,this._translationSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this.translation=e.translation,this.rotation=e.rotation,this.scale=e.scale}Object.defineProperties(DS.prototype,{isConstant:{get:function(){return j.isConstant(this._translation)&&j.isConstant(this._rotation)&&j.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:ce("translation"),rotation:ce("rotation"),scale:ce("scale")});DS.prototype.getValue=function(e,t){return l(t)||(t=new d0),t.translation=j.getValueOrClonedDefault(this._translation,e,j8.translation,t.translation),t.rotation=j.getValueOrClonedDefault(this._rotation,e,j8.rotation,t.rotation),t.scale=j.getValueOrClonedDefault(this._scale,e,j8.scale,t.scale),t};DS.prototype.equals=function(e){return this===e||e instanceof DS&&j.equals(this._translation,e._translation)&&j.equals(this._rotation,e._rotation)&&j.equals(this._scale,e._scale)};var _C=DS;function Uh(e,t){this._propertyNames=[],this._definitionChanged=new ge,l(e)&&this.merge(e,t)}Object.defineProperties(Uh.prototype,{propertyNames:{get:function(){return this._propertyNames}},isConstant:{get:function(){let e=this._propertyNames;for(let t=0,n=e.length;t<n;t++)if(!j.isConstant(this[e[t]]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});Uh.prototype.hasProperty=function(e){return this._propertyNames.indexOf(e)!==-1};function lOe(e){return new $n(e)}Uh.prototype.addProperty=function(e,t,n){this._propertyNames.push(e),Object.defineProperty(this,e,ce(e,!0,y(n,lOe))),l(t)&&(this[e]=t),this._definitionChanged.raiseEvent(this)};Uh.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e],this._definitionChanged.raiseEvent(this)};Uh.prototype.getValue=function(e,t){l(t)||(t={});let n=this._propertyNames;for(let i=0,o=n.length;i<o;i++){let r=n[i];t[r]=j.getValueOrUndefined(this[r],e,t[r])}return t};Uh.prototype.merge=function(e,t){let n=this._propertyNames,i=l(e._propertyNames)?e._propertyNames:Object.keys(e);for(let o=0,r=i.length;o<r;o++){let s=i[o],a=this[s],c=e[s];a===void 0&&n.indexOf(s)===-1&&this.addProperty(s,void 0,t),c!==void 0&&(a!==void 0?l(a)&&l(a.merge)&&a.merge(c):l(c)&&l(c.merge)&&l(c.clone)?this[s]=c.clone():this[s]=c)}};function uOe(e,t){let n=e._propertyNames,i=t._propertyNames,o=n.length;if(o!==i.length)return!1;for(let r=0;r<o;++r){let s=n[r];if(i.indexOf(s)===-1||!j.equals(e[s],t[s]))return!1}return!0}Uh.prototype.equals=function(e){return this===e||e instanceof Uh&&uOe(this,e)};var Rl=Uh;function B$(e){return new _C(e)}function fOe(e){return new Rl(e,B$)}function dOe(e){return new Rl(e)}function IS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._minimumPixelSize=void 0,this._minimumPixelSizeSubscription=void 0,this._maximumScale=void 0,this._maximumScaleSubscription=void 0,this._incrementallyLoadTextures=void 0,this._incrementallyLoadTexturesSubscription=void 0,this._runAnimations=void 0,this._runAnimationsSubscription=void 0,this._clampAnimations=void 0,this._clampAnimationsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._silhouetteColor=void 0,this._silhouetteColorSubscription=void 0,this._silhouetteSize=void 0,this._silhouetteSizeSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._colorBlendMode=void 0,this._colorBlendModeSubscription=void 0,this._colorBlendAmount=void 0,this._colorBlendAmountSubscription=void 0,this._imageBasedLightingFactor=void 0,this._imageBasedLightingFactorSubscription=void 0,this._lightColor=void 0,this._lightColorSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._nodeTransformations=void 0,this._nodeTransformationsSubscription=void 0,this._articulations=void 0,this._articulationsSubscription=void 0,this._clippingPlanes=void 0,this._clippingPlanesSubscription=void 0,this._customShader=void 0,this._customShaderSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(IS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),uri:ce("uri"),scale:ce("scale"),minimumPixelSize:ce("minimumPixelSize"),maximumScale:ce("maximumScale"),incrementallyLoadTextures:ce("incrementallyLoadTextures"),runAnimations:ce("runAnimations"),clampAnimations:ce("clampAnimations"),shadows:ce("shadows"),heightReference:ce("heightReference"),silhouetteColor:ce("silhouetteColor"),silhouetteSize:ce("silhouetteSize"),color:ce("color"),colorBlendMode:ce("colorBlendMode"),colorBlendAmount:ce("colorBlendAmount"),imageBasedLightingFactor:ce("imageBasedLightingFactor"),lightColor:ce("lightColor"),distanceDisplayCondition:ce("distanceDisplayCondition"),nodeTransformations:ce("nodeTransformations",void 0,fOe),articulations:ce("articulations",void 0,dOe),clippingPlanes:ce("clippingPlanes"),customShader:ce("customShader")});IS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.uri=this.uri,e.scale=this.scale,e.minimumPixelSize=this.minimumPixelSize,e.maximumScale=this.maximumScale,e.incrementallyLoadTextures=this.incrementallyLoadTextures,e.runAnimations=this.runAnimations,e.clampAnimations=this.clampAnimations,e.heightReference=this._heightReference,e.silhouetteColor=this.silhouetteColor,e.silhouetteSize=this.silhouetteSize,e.color=this.color,e.colorBlendMode=this.colorBlendMode,e.colorBlendAmount=this.colorBlendAmount,e.imageBasedLightingFactor=this.imageBasedLightingFactor,e.lightColor=this.lightColor,e.distanceDisplayCondition=this.distanceDisplayCondition,e.nodeTransformations=this.nodeTransformations,e.articulations=this.articulations,e.clippingPlanes=this.clippingPlanes,e.customShader=this.customShader,e):new IS(this)};IS.prototype.merge=function(e){this.show=y(this.show,e.show),this.uri=y(this.uri,e.uri),this.scale=y(this.scale,e.scale),this.minimumPixelSize=y(this.minimumPixelSize,e.minimumPixelSize),this.maximumScale=y(this.maximumScale,e.maximumScale),this.incrementallyLoadTextures=y(this.incrementallyLoadTextures,e.incrementallyLoadTextures),this.runAnimations=y(this.runAnimations,e.runAnimations),this.clampAnimations=y(this.clampAnimations,e.clampAnimations),this.shadows=y(this.shadows,e.shadows),this.heightReference=y(this.heightReference,e.heightReference),this.silhouetteColor=y(this.silhouetteColor,e.silhouetteColor),this.silhouetteSize=y(this.silhouetteSize,e.silhouetteSize),this.color=y(this.color,e.color),this.colorBlendMode=y(this.colorBlendMode,e.colorBlendMode),this.colorBlendAmount=y(this.colorBlendAmount,e.colorBlendAmount),this.imageBasedLightingFactor=y(this.imageBasedLightingFactor,e.imageBasedLightingFactor),this.lightColor=y(this.lightColor,e.lightColor),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.clippingPlanes=y(this.clippingPlanes,e.clippingPlanes),this.customShader=y(this.customShader,e.customShader);let t=e.nodeTransformations;if(l(t)){let i=this.nodeTransformations;l(i)?i.merge(t):this.nodeTransformations=new Rl(t,B$)}let n=e.articulations;if(l(n)){let i=this.articulations;l(i)?i.merge(n):this.articulations=new Rl(n)}};var E_=IS;function PS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._maximumScreenSpaceError=void 0,this._maximumScreenSpaceErrorSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(PS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),uri:ce("uri"),maximumScreenSpaceError:ce("maximumScreenSpaceError")});PS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.uri=this.uri,e.maximumScreenSpaceError=this.maximumScreenSpaceError,e):new PS(this)};PS.prototype.merge=function(e){this.show=y(this.show,e.show),this.uri=y(this.uri,e.uri),this.maximumScreenSpaceError=y(this.maximumScreenSpaceError,e.maximumScreenSpaceError)};var gC=PS;function OS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._leadTime=void 0,this._leadTimeSubscription=void 0,this._trailTime=void 0,this._trailTimeSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._resolution=void 0,this._resolutionSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(OS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),leadTime:ce("leadTime"),trailTime:ce("trailTime"),width:ce("width"),resolution:ce("resolution"),material:Io("material"),distanceDisplayCondition:ce("distanceDisplayCondition")});OS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.leadTime=this.leadTime,e.trailTime=this.trailTime,e.width=this.width,e.resolution=this.resolution,e.material=this.material,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new OS(this)};OS.prototype.merge=function(e){this.show=y(this.show,e.show),this.leadTime=y(this.leadTime,e.leadTime),this.trailTime=y(this.trailTime,e.trailTime),this.width=y(this.width,e.width),this.resolution=y(this.resolution,e.resolution),this.material=y(this.material,e.material),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var b_=OS;function MS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(MS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),plane:ce("plane"),dimensions:ce("dimensions"),fill:ce("fill"),material:Io("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});MS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.plane=this.plane,e.dimensions=this.dimensions,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new MS(this)};MS.prototype.merge=function(e){this.show=y(this.show,e.show),this.plane=y(this.plane,e.plane),this.dimensions=y(this.dimensions,e.dimensions),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var PR=MS;function RS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._pixelSize=void 0,this._pixelSizeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(RS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),pixelSize:ce("pixelSize"),heightReference:ce("heightReference"),color:ce("color"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),scaleByDistance:ce("scaleByDistance"),translucencyByDistance:ce("translucencyByDistance"),distanceDisplayCondition:ce("distanceDisplayCondition"),disableDepthTestDistance:ce("disableDepthTestDistance")});RS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.pixelSize=this.pixelSize,e.heightReference=this.heightReference,e.color=this.color,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.scaleByDistance=this.scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new RS(this)};RS.prototype.merge=function(e){this.show=y(this.show,e.show),this.pixelSize=y(this.pixelSize,e.pixelSize),this.heightReference=y(this.heightReference,e.heightReference),this.color=y(this.color,e.color),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.translucencyByDistance=y(this._translucencyByDistance,e.translucencyByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance)};var yC=RS;function mOe(e,t){this.positions=l(e)?e:[],this.holes=l(t)?t:[]}var Kc=mOe;function hOe(e){return Array.isArray(e)&&(e=new Kc(e)),new $n(e)}function BS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._hierarchy=void 0,this._hierarchySubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._perPositionHeight=void 0,this._perPositionHeightSubscription=void 0,this._closeTop=void 0,this._closeTopSubscription=void 0,this._closeBottom=void 0,this._closeBottomSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this._textureCoordinates=void 0,this._textureCoordinatesSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(BS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),hierarchy:ce("hierarchy",void 0,hOe),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),stRotation:ce("stRotation"),granularity:ce("granularity"),fill:ce("fill"),material:Io("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),perPositionHeight:ce("perPositionHeight"),closeTop:ce("closeTop"),closeBottom:ce("closeBottom"),arcType:ce("arcType"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex"),textureCoordinates:ce("textureCoordinates")});BS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.hierarchy=this.hierarchy,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.perPositionHeight=this.perPositionHeight,e.closeTop=this.closeTop,e.closeBottom=this.closeBottom,e.arcType=this.arcType,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e.textureCoordinates=this.textureCoordinates,e):new BS(this)};BS.prototype.merge=function(e){this.show=y(this.show,e.show),this.hierarchy=y(this.hierarchy,e.hierarchy),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.perPositionHeight=y(this.perPositionHeight,e.perPositionHeight),this.closeTop=y(this.closeTop,e.closeTop),this.closeBottom=y(this.closeBottom,e.closeBottom),this.arcType=y(this.arcType,e.arcType),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex),this.textureCoordinates=y(this.textureCoordinates,e.textureCoordinates)};var cm=BS;function LS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._depthFailMaterial=void 0,this._depthFailMaterialSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._clampToGround=void 0,this._clampToGroundSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(LS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),width:ce("width"),granularity:ce("granularity"),material:Io("material"),depthFailMaterial:Io("depthFailMaterial"),arcType:ce("arcType"),clampToGround:ce("clampToGround"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});LS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.granularity=this.granularity,e.material=this.material,e.depthFailMaterial=this.depthFailMaterial,e.arcType=this.arcType,e.clampToGround=this.clampToGround,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new LS(this)};LS.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.granularity=y(this.granularity,e.granularity),this.material=y(this.material,e.material),this.depthFailMaterial=y(this.depthFailMaterial,e.depthFailMaterial),this.arcType=y(this.arcType,e.arcType),this.clampToGround=y(this.clampToGround,e.clampToGround),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var pc=LS;function NS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._shape=void 0,this._shapeSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubsription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(NS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),shape:ce("shape"),cornerType:ce("cornerType"),granularity:ce("granularity"),fill:ce("fill"),material:Io("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});NS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.shape=this.shape,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new NS(this)};NS.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.shape=y(this.shape,e.shape),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var AC=NS;function FS(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._coordinates=void 0,this._coordinatesSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distancedisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(FS.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),coordinates:ce("coordinates"),height:ce("height"),heightReference:ce("heightReference"),extrudedHeight:ce("extrudedHeight"),extrudedHeightReference:ce("extrudedHeightReference"),rotation:ce("rotation"),stRotation:ce("stRotation"),granularity:ce("granularity"),fill:ce("fill"),material:Io("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition"),classificationType:ce("classificationType"),zIndex:ce("zIndex")});FS.prototype.clone=function(e){return l(e)?(e.show=this.show,e.coordinates=this.coordinates,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new FS(this)};FS.prototype.merge=function(e){this.show=y(this.show,e.show),this.coordinates=y(this.coordinates,e.coordinates),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var lm=FS;function US(e){this._definitionChanged=new ge,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._minimumHeights=void 0,this._minimumHeightsSubscription=void 0,this._maximumHeights=void 0,this._maximumHeightsSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(US.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ce("show"),positions:ce("positions"),minimumHeights:ce("minimumHeights"),maximumHeights:ce("maximumHeights"),granularity:ce("granularity"),fill:ce("fill"),material:Io("material"),outline:ce("outline"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth"),shadows:ce("shadows"),distanceDisplayCondition:ce("distanceDisplayCondition")});US.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.minimumHeights=this.minimumHeights,e.maximumHeights=this.maximumHeights,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new US(this)};US.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.minimumHeights=y(this.minimumHeights,e.minimumHeights),this.maximumHeights=y(this.maximumHeights,e.maximumHeights),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var S_=US;var pOe=new he;function _Oe(e){return new Xc(e)}function gOe(e){return ce(e,void 0,_Oe)}function Rs(e,t){return ce(e,void 0,function(n){return n instanceof t?n:new t(n)})}function um(e){e=y(e,y.EMPTY_OBJECT);let t=e.id;l(t)||(t=jn()),this._availability=void 0,this._id=t,this._definitionChanged=new ge,this._name=e.name,this._show=y(e.show,!0),this._parent=void 0,this._propertyNames=["billboard","box","corridor","cylinder","description","ellipse","ellipsoid","label","model","tileset","orientation","path","plane","point","polygon","polyline","polylineVolume","position","properties","rectangle","viewFrom","wall"],this._billboard=void 0,this._billboardSubscription=void 0,this._box=void 0,this._boxSubscription=void 0,this._corridor=void 0,this._corridorSubscription=void 0,this._cylinder=void 0,this._cylinderSubscription=void 0,this._description=void 0,this._descriptionSubscription=void 0,this._ellipse=void 0,this._ellipseSubscription=void 0,this._ellipsoid=void 0,this._ellipsoidSubscription=void 0,this._label=void 0,this._labelSubscription=void 0,this._model=void 0,this._modelSubscription=void 0,this._tileset=void 0,this._tilesetSubscription=void 0,this._orientation=void 0,this._orientationSubscription=void 0,this._path=void 0,this._pathSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._point=void 0,this._pointSubscription=void 0,this._polygon=void 0,this._polygonSubscription=void 0,this._polyline=void 0,this._polylineSubscription=void 0,this._polylineVolume=void 0,this._polylineVolumeSubscription=void 0,this._position=void 0,this._positionSubscription=void 0,this._properties=void 0,this._propertiesSubscription=void 0,this._rectangle=void 0,this._rectangleSubscription=void 0,this._viewFrom=void 0,this._viewFromSubscription=void 0,this._wall=void 0,this._wallSubscription=void 0,this._children=[],this.entityCollection=void 0,this.parent=e.parent,this.merge(e)}function Y8(e,t,n){let i=t.length;for(let o=0;o<i;o++){let r=t[o],s=r._show;(!n&&s)!==(n&&s)&&Y8(r,r._children,n)}e._definitionChanged.raiseEvent(e,"isShowing",n,!n)}Object.defineProperties(um.prototype,{availability:Ml("availability"),id:{get:function(){return this._id}},definitionChanged:{get:function(){return this._definitionChanged}},name:Ml("name"),show:{get:function(){return this._show},set:function(e){if(e===this._show)return;let t=this.isShowing;this._show=e;let n=this.isShowing;t!==n&&Y8(this,this._children,n),this._definitionChanged.raiseEvent(this,"show",e,!e)}},isShowing:{get:function(){return this._show&&(!l(this.entityCollection)||this.entityCollection.show)&&(!l(this._parent)||this._parent.isShowing)}},parent:{get:function(){return this._parent},set:function(e){let t=this._parent;if(t===e)return;let n=this.isShowing;if(l(t)){let o=t._children.indexOf(this);t._children.splice(o,1)}this._parent=e,l(e)&&e._children.push(this);let i=this.isShowing;n!==i&&Y8(this,this._children,i),this._definitionChanged.raiseEvent(this,"parent",e,t)}},propertyNames:{get:function(){return this._propertyNames}},billboard:Rs("billboard",lc),box:Rs("box",uC),corridor:Rs("corridor",dC),cylinder:Rs("cylinder",mC),description:ce("description"),ellipse:Rs("ellipse",hC),ellipsoid:Rs("ellipsoid",pC),label:Rs("label",am),model:Rs("model",E_),tileset:Rs("tileset",gC),orientation:ce("orientation"),path:Rs("path",b_),plane:Rs("plane",PR),point:Rs("point",yC),polygon:Rs("polygon",cm),polyline:Rs("polyline",pc),polylineVolume:Rs("polylineVolume",AC),properties:Rs("properties",Rl),position:gOe("position"),rectangle:Rs("rectangle",lm),viewFrom:ce("viewFrom"),wall:Rs("wall",S_)});um.prototype.isAvailable=function(e){let t=this._availability;return!l(t)||t.contains(e)};um.prototype.addProperty=function(e){this._propertyNames.push(e),Object.defineProperty(this,e,Ml(e,!0))};um.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e]};um.prototype.merge=function(e){this.name=y(this.name,e.name),this.availability=y(this.availability,e.availability);let t=this._propertyNames,n=l(e._propertyNames)?e._propertyNames:Object.keys(e),i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r==="parent"||r==="name"||r==="availability"||r==="children")continue;let s=this[r],a=e[r];!l(s)&&t.indexOf(r)===-1&&this.addProperty(r),l(a)&&(l(s)?l(s.merge)&&s.merge(a):l(a.merge)&&l(a.clone)?this[r]=a.clone():this[r]=a)}};var L$=new Z,N$=new m,F$=new Ne;um.prototype.computeModelMatrix=function(e,t){let n=j.getValueOrUndefined(this._position,e,N$);if(!l(n))return;let i=j.getValueOrUndefined(this._orientation,e,F$);return l(i)?t=B.fromRotationTranslation(Z.fromQuaternion(i,L$),n,t):t=Rt.eastNorthUpToFixedFrame(n,void 0,t),t};um.prototype.computeModelMatrixForHeightReference=function(e,t,n,i,o){let r=j.getValueOrDefault(t,e,qe.NONE),s=j.getValueOrUndefined(this._position,e,N$);if(r===qe.NONE||!l(s)||m.equalsEpsilon(s,m.ZERO,P.EPSILON8))return this.computeModelMatrix(e,o);let a=i.cartesianToCartographic(s,pOe);r===qe.CLAMP_TO_GROUND?a.height=n:a.height+=n,s=i.cartographicToCartesian(a,s);let c=j.getValueOrUndefined(this._orientation,e,F$);return l(c)?o=B.fromRotationTranslation(Z.fromQuaternion(c,L$),s,o):o=Rt.eastNorthUpToFixedFrame(s,void 0,o),o};um.supportsMaterialsforEntitiesOnTerrain=function(e){return qc.supportsMaterials(e)};um.supportsPolylinesOnTerrain=function(e){return sm.isSupported(e)};var er=um;var yOe=new Ut(z.WHITE),AOe=new $n(!0),xOe=new $n(!0),COe=new $n(!1),TOe=new $n(z.BLACK),EOe=new $n(xn.DISABLED),bOe=new $n(new Dt),SOe=new $n(zn.BOTH);function _c(e){let t=e.entity,n=e.geometryPropertyName;this._entity=t,this._scene=e.scene,this._fillEnabled=!1,this._isClosed=!1,this._onTerrain=!1,this._dynamic=!1,this._outlineEnabled=!1,this._geometryChanged=new ge,this._showProperty=void 0,this._materialProperty=void 0,this._showOutlineProperty=void 0,this._outlineColorProperty=void 0,this._outlineWidth=1,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._options=e.geometryOptions,this._geometryPropertyName=n,this._id=`${n}-${t.id}`,this._observedPropertyNames=e.observedPropertyNames,this._supportsMaterialsforEntitiesOnTerrain=er.supportsMaterialsforEntitiesOnTerrain(e.scene)}Object.defineProperties(_c.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!l(this._entity.availability)&&j.isConstant(this._showProperty)&&j.isConstant(this._fillProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},outlineEnabled:{get:function(){return this._outlineEnabled}},hasConstantOutline:{get:function(){return!this._outlineEnabled||!l(this._entity.availability)&&j.isConstant(this._showProperty)&&j.isConstant(this._showOutlineProperty)}},outlineColorProperty:{get:function(){return this._outlineColorProperty}},outlineWidth:{get:function(){return this._outlineWidth}},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{get:function(){return this._isClosed}},onTerrain:{get:function(){return this._onTerrain}},geometryChanged:{get:function(){return this._geometryChanged}}});_c.prototype.isOutlineVisible=function(e){let t=this._entity,n=this._outlineEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e);return y(n,!1)};_c.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e);return y(n,!1)};_c.prototype.createFillGeometryInstance=fe.throwInstantiationError;_c.prototype.createOutlineGeometryInstance=fe.throwInstantiationError;_c.prototype.isDestroyed=function(){return!1};_c.prototype.destroy=function(){ue(this)};_c.prototype._isHidden=function(e,t){let n=t.show;return l(n)&&n.isConstant&&!n.getValue(Ge.MINIMUM_VALUE)};_c.prototype._isOnTerrain=function(e,t){return!1};_c.prototype._getIsClosed=function(e){return!0};_c.prototype._isDynamic=fe.throwInstantiationError;_c.prototype._setStaticOptions=fe.throwInstantiationError;_c.prototype._onEntityPropertyChanged=function(e,t,n,i){if(this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.fill,s=l(r)&&r.isConstant?r.getValue(Ge.MINIMUM_VALUE):!0,a=o.outline,c=l(a);if(c&&a.isConstant&&(c=a.getValue(Ge.MINIMUM_VALUE)),!s&&!c){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let u=o.show;if(this._isHidden(e,o)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}this._materialProperty=y(o.material,yOe),this._fillProperty=y(r,xOe),this._showProperty=y(u,AOe),this._showOutlineProperty=y(o.outline,COe),this._outlineColorProperty=c?y(o.outlineColor,TOe):void 0,this._shadowsProperty=y(o.shadows,EOe),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,bOe),this._classificationTypeProperty=y(o.classificationType,SOe),this._fillEnabled=s;let f=this._isOnTerrain(e,o)&&(this._supportsMaterialsforEntitiesOnTerrain||this._materialProperty instanceof Ut);if(c&&f&&(Mt(Mt.geometryOutlines),c=!1),this._onTerrain=f,this._outlineEnabled=c,this._isDynamic(e,o))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{this._setStaticOptions(e,o),this._isClosed=this._getIsClosed(this._options);let d=o.outlineWidth;this._outlineWidth=l(d)?d.getValue(Ge.MINIMUM_VALUE):1,this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};_c.prototype.createDynamicUpdater=function(e,t){return new this.constructor.DynamicGeometryUpdater(this,e,t)};var ci=_c;function xC(e,t){this._callback=void 0,this._isConstant=void 0,this._definitionChanged=new ge,this.setCallback(e,t)}Object.defineProperties(xC.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}}});xC.prototype.getValue=function(e,t){return this._callback(e,t)};xC.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};xC.prototype.equals=function(e){return this===e||e instanceof xC&&this._callback===e._callback&&this._isConstant===e._isConstant};var fm=xC;var U$=new m,wOe=new he;function CC(e,t,n,i){this._scene=e,this._heightReference=n,this._extrudedHeightReference=i,this._positionProperty=t,this._position=new m,this._cartographicPosition=new he,this._normal=new m,this._definitionChanged=new ge,this._terrainHeight=0,this._removeCallbackFunc=void 0,this._removeEventListener=void 0,this._removeModeListener=void 0;let o=this;if(l(e.globe)&&(this._removeEventListener=e.terrainProviderChanged.addEventListener(function(){o._updateClamping()}),this._removeModeListener=e.morphComplete.addEventListener(function(){o._updateClamping()})),t.isConstant){let r=t.getValue(Ge.MINIMUM_VALUE,U$);if(!l(r)||m.equals(r,m.ZERO)||!l(e.globe))return;this._position=m.clone(r,this._position),this._updateClamping(),this._normal=e.globe.ellipsoid.geodeticSurfaceNormal(r,this._normal)}}Object.defineProperties(CC.prototype,{isConstant:{get:function(){return!1}},definitionChanged:{get:function(){return this._definitionChanged}}});CC.prototype._updateClamping=function(){l(this._removeCallbackFunc)&&this._removeCallbackFunc();let e=this._scene,t=e.globe,n=this._position;if(!l(t)||m.equals(n,m.ZERO)){this._terrainHeight=0;return}let i=t.ellipsoid,o=t._surface,r=this,s=i.cartesianToCartographic(n,this._cartographicPosition),a=t.getHeight(s);l(a)?this._terrainHeight=a:this._terrainHeight=0;function c(u){if(e.mode===ne.SCENE3D){let f=i.cartesianToCartographic(u,wOe);r._terrainHeight=f.height}else r._terrainHeight=u.x;r.definitionChanged.raiseEvent()}this._removeCallbackFunc=o.updateHeight(s,c)};CC.prototype.getValue=function(e,t){let n=j.getValueOrDefault(this._heightReference,e,qe.NONE),i=j.getValueOrDefault(this._extrudedHeightReference,e,qe.NONE);if(n===qe.NONE&&i!==qe.RELATIVE_TO_GROUND)return this._position=m.clone(m.ZERO,this._position),m.clone(m.ZERO,t);if(this._positionProperty.isConstant)return m.multiplyByScalar(this._normal,this._terrainHeight,t);let o=this._scene,r=this._positionProperty.getValue(e,U$);if(!l(r)||m.equals(r,m.ZERO)||!l(o.globe))return m.clone(m.ZERO,t);if(m.equalsEpsilon(this._position,r,P.EPSILON10))return m.multiplyByScalar(this._normal,this._terrainHeight,t);this._position=m.clone(r,this._position),this._updateClamping();let s=o.globe.ellipsoid.geodeticSurfaceNormal(r,this._normal);return m.multiplyByScalar(s,this._terrainHeight,t)};CC.prototype.isDestroyed=function(){return!1};CC.prototype.destroy=function(){return l(this._removeEventListener)&&this._removeEventListener(),l(this._removeModeListener)&&this._removeModeListener(),l(this._removeCallbackFunc)&&this._removeCallbackFunc(),ue(this)};var TC=CC;function vOe(e,t,n,i){if(ci.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o))return;l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference;if(l(r)){let s=new fm(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new TC(this._scene,s,r)}}var w_=vOe;var V$=m.ZERO,k$=new m,DOe=new m,z$=new z;function IOe(e){this.id=e,this.vertexFormat=void 0,this.dimensions=void 0,this.offsetAttribute=void 0}function Bl(e,t){ci.call(this,{entity:e,scene:t,geometryOptions:new IOe(e),geometryPropertyName:"box",observedPropertyNames:["availability","position","orientation","box"]}),this._onEntityPropertyChanged(e,"box",e.box,void 0)}l(Object.create)&&(Bl.prototype=Object.create(ci.prototype),Bl.prototype.constructor=Bl);Object.defineProperties(Bl.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Bl.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=kn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof Ut){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,z$)),l(a)||(a=z.WHITE),s.color=Vt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,V$,k$))),new Tt({id:t,geometry:Pl.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.mapProjection.ellipsoid),attributes:s})};Bl.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,z$),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Vt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,V$,k$))),new Tt({id:t,geometry:im.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.mapProjection.ellipsoid),attributes:r})};Bl.prototype._computeCenter=function(e,t){return j.getValueOrUndefined(this._entity.position,e,t)};Bl.prototype._isHidden=function(e,t){return!l(t.dimensions)||!l(e.position)||ci.prototype._isHidden.call(this,e,t)};Bl.prototype._isDynamic=function(e,t){return!e.position.isConstant||!j.isConstant(e.orientation)||!t.dimensions.isConstant||!j.isConstant(t.outlineWidth)};Bl.prototype._setStaticOptions=function(e,t){let n=j.getValueOrDefault(t.heightReference,Ge.MINIMUM_VALUE,qe.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Ut?sn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,i.dimensions=t.dimensions.getValue(Ge.MINIMUM_VALUE,i.dimensions),i.offsetAttribute=n!==qe.NONE?rn.ALL:void 0};Bl.prototype._onEntityPropertyChanged=w_;Bl.DynamicGeometryUpdater=EC;function EC(e,t,n){ai.call(this,e,t,n)}l(Object.create)&&(EC.prototype=Object.create(ai.prototype),EC.prototype.constructor=EC);EC.prototype._isHidden=function(e,t,n){let i=j.getValueOrUndefined(e.position,n,DOe),o=this._options.dimensions;return!l(i)||!l(o)||ai.prototype._isHidden.call(this,e,t,n)};EC.prototype._setOptions=function(e,t,n){let i=j.getValueOrDefault(t.heightReference,n,qe.NONE),o=this._options;o.dimensions=j.getValueOrUndefined(t.dimensions,n,o.dimensions),o.offsetAttribute=i!==qe.NONE?rn.ALL:void 0};var OR=Bl;var G$=ar(H$(),1);var POe=0,K8={};function Vh(e,t){let n,i=e;l(K8[i])?n=K8[i]:(n=POe++,K8[i]=n),t=y(t,!1),this._id=n,this._html=e,this._showOnScreen=t,this._element=void 0}Object.defineProperties(Vh.prototype,{html:{get:function(){return this._html}},id:{get:function(){return this._id}},showOnScreen:{get:function(){return this._showOnScreen},set:function(e){this._showOnScreen=e}},element:{get:function(){if(!l(this._element)){let e=G$.default.sanitize(this._html),t=document.createElement("div");t._creditId=this._id,t.style.display="inline",t.innerHTML=e;let n=t.querySelectorAll("a");for(let i=0;i<n.length;i++)n[i].setAttribute("target","_blank");this._element=t}return this._element}}});Vh.equals=function(e,t){return e===t||l(e)&&l(t)&&e._id===t._id&&e._showOnScreen===t._showOnScreen};Vh.prototype.equals=function(e){return Vh.equals(this,e)};Vh.getIonCredit=function(e){let t=l(e.collapsible)&&!e.collapsible,n=new Vh(e.html,t);return n._isIon=n.html.indexOf("ion-credit.png")!==-1,n};Vh.clone=function(e){if(l(e))return new Vh(e.html,e.showOnScreen)};var It=Vh;var MR=`in vec2 v_textureCoordinates; + +uniform float originalSize; +uniform sampler2D texture0; +uniform sampler2D texture1; +uniform sampler2D texture2; +uniform sampler2D texture3; +uniform sampler2D texture4; +uniform sampler2D texture5; + +const float yMipLevel1 = 1.0 - (1.0 / pow(2.0, 1.0)); +const float yMipLevel2 = 1.0 - (1.0 / pow(2.0, 2.0)); +const float yMipLevel3 = 1.0 - (1.0 / pow(2.0, 3.0)); +const float yMipLevel4 = 1.0 - (1.0 / pow(2.0, 4.0)); + +void main() +{ + vec2 uv = v_textureCoordinates; + vec2 textureSize = vec2(originalSize * 1.5 + 2.0, originalSize); + vec2 pixel = 1.0 / textureSize; + + float mipLevel = 0.0; + + if (uv.x - pixel.x > (textureSize.y / textureSize.x)) + { + mipLevel = 1.0; + if (uv.y - pixel.y > yMipLevel1) + { + mipLevel = 2.0; + if (uv.y - pixel.y * 3.0 > yMipLevel2) + { + mipLevel = 3.0; + if (uv.y - pixel.y * 5.0 > yMipLevel3) + { + mipLevel = 4.0; + if (uv.y - pixel.y * 7.0 > yMipLevel4) + { + mipLevel = 5.0; + } + } + } + } + } + + if (mipLevel > 0.0) + { + float scale = pow(2.0, mipLevel); + + uv.y -= (pixel.y * (mipLevel - 1.0) * 2.0); + uv.x *= ((textureSize.x - 2.0) / textureSize.y); + + uv.x -= 1.0 + pixel.x; + uv.y -= (1.0 - (1.0 / pow(2.0, mipLevel - 1.0))); + uv *= scale; + } + else + { + uv.x *= (textureSize.x / textureSize.y); + } + + if(mipLevel == 0.0) + { + out_FragColor = texture(texture0, uv); + } + else if(mipLevel == 1.0) + { + out_FragColor = texture(texture1, uv); + } + else if(mipLevel == 2.0) + { + out_FragColor = texture(texture2, uv); + } + else if(mipLevel == 3.0) + { + out_FragColor = texture(texture3, uv); + } + else if(mipLevel == 4.0) + { + out_FragColor = texture(texture4, uv); + } + else if(mipLevel == 5.0) + { + out_FragColor = texture(texture5, uv); + } + else + { + out_FragColor = vec4(0.0); + } +} +`;var RR=`in vec3 v_cubeMapCoordinates; +uniform samplerCube cubeMap; + +void main() +{ + vec4 rgba = czm_textureCube(cubeMap, v_cubeMapCoordinates); + #ifdef RGBA_NORMALIZED + out_FragColor = vec4(rgba.rgb, 1.0); + #else + float m = rgba.a * 16.0; + vec3 r = rgba.rgb * m; + out_FragColor = vec4(r * r, 1.0); + #endif +} +`;var BR=`in vec4 position; +in vec3 cubeMapCoordinates; + +out vec3 v_cubeMapCoordinates; + +void main() +{ + gl_Position = position; + v_cubeMapCoordinates = cubeMapCoordinates; +} +`;function m0(e){this._url=e,this._cubeMapBuffers=void 0,this._cubeMaps=void 0,this._texture=void 0,this._mipTextures=void 0,this._va=void 0,this._sp=void 0,this._maximumMipmapLevel=void 0,this._loading=!1,this._ready=!1,this._errorEvent=new ge}Object.defineProperties(m0.prototype,{url:{get:function(){return this._url}},errorEvent:{get:function(){return this._errorEvent}},texture:{get:function(){return this._texture}},maximumMipmapLevel:{get:function(){return this._maximumMipmapLevel}},ready:{get:function(){return this._ready}}});m0.isSupported=function(e){return e.colorBufferHalfFloat&&e.halfFloatingPointTexture||e.floatingPointTexture&&e.colorBufferFloat};var OOe=new m(1,0,0),MOe=new m(0,0,1),ROe=new m(-1,0,0),BOe=new m(0,0,-1),LR=new m(0,1,0),LOe=new m(0,-1,0),Y$=[LR,ROe,MOe,LOe,OOe,LR,BOe,LR,LR],q$=Y$.length,X$=new Float32Array(q$*3),W$=0;for(let e=0;e<q$;++e,W$+=3)m.pack(Y$[e],X$,W$);var NOe=new Float32Array([-1,1,-1,0,0,1,0,0,1,0,1,1,0,-1,-1,-1,1,-1]),FOe=new Uint16Array([0,1,2,2,3,1,7,6,1,3,6,1,2,5,4,3,4,2,4,8,6,3,4,6]);function UOe(e){let t=mt.createVertexBuffer({context:e,typedArray:NOe,usage:Fe.STATIC_DRAW}),n=mt.createVertexBuffer({context:e,typedArray:X$,usage:Fe.STATIC_DRAW}),i=mt.createIndexBuffer({context:e,typedArray:FOe,usage:Fe.STATIC_DRAW,indexDatatype:Ve.UNSIGNED_SHORT}),o=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT},{index:1,vertexBuffer:n,componentsPerAttribute:3,componentDatatype:X.FLOAT}];return new ri({context:e,attributes:o,indexBuffer:i})}function j$(e){return function(){return e}}function J8(e){e._va=e._va&&e._va.destroy(),e._sp=e._sp&&e._sp.destroy();let t,n,i=e._cubeMaps;if(l(i))for(n=i.length,t=0;t<n;++t)i[t].destroy();let o=e._mipTextures;if(l(o))for(n=o.length,t=0;t<n;++t)o[t].destroy();e._va=void 0,e._sp=void 0,e._cubeMaps=void 0,e._cubeMapBuffers=void 0,e._mipTextures=void 0}m0.prototype.update=function(e){let t=e.context;if(!m0.isSupported(t)||(l(this._texture)&&l(this._va)&&J8(this),l(this._texture)))return;if(!l(this._texture)&&!this._loading){let g=e.context.textureCache.getTexture(this._url);l(g)&&(J8(this),this._texture=g,this._maximumMipmapLevel=this._texture.maximumMipmapLevel,this._ready=!0)}let n=this._cubeMapBuffers;if(!l(n)&&!this._loading){let g=this;Sl(this._url).then(function(h){g._cubeMapBuffers=h,g._loading=!1}).catch(function(h){g.isDestroyed()||g._errorEvent.raiseEvent(h)}),this._loading=!0}if(!l(this._cubeMapBuffers))return;let i=[],o=n[0].positiveX.pixelDatatype;l(o)?i.push("RGBA_NORMALIZED"):o=t.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT;let r=lt.RGBA,s=new He({defines:i,sources:[RR]});this._va=UOe(t),this._sp=Jt.fromCache({context:t,vertexShaderSource:BR,fragmentShaderSource:s,attributeLocations:{position:0,cubeMapCoordinates:1}});let a=Math.min(n.length,6);this._maximumMipmapLevel=a-1;let c=this._cubeMaps=new Array(a),u=this._mipTextures=new Array(a),f=n[0].positiveX.width*2,d={originalSize:function(){return f}};for(let g=0;g<a;++g){let h=n[g].positiveY;n[g].positiveY=n[g].negativeY,n[g].negativeY=h;let A=c[g]=new sc({context:t,source:n[g],pixelDatatype:o}),x=c[g].width*2,C=u[g]=new Bt({context:t,width:x,height:x,pixelDatatype:o,pixelFormat:r}),T=new Pf({vertexArray:this._va,shaderProgram:this._sp,uniformMap:{cubeMap:j$(A)},outputTexture:C,persists:!0,owner:this});e.commandList.push(T),d[`texture${g}`]=j$(C)}this._texture=new Bt({context:t,width:f*1.5+2,height:f,pixelDatatype:o,pixelFormat:r}),this._texture.maximumMipmapLevel=this._maximumMipmapLevel,t.textureCache.addTexture(this._url,this._texture);let p=new Pf({fragmentShaderSource:MR,uniformMap:d,outputTexture:this._texture,persists:!1,owner:this});e.commandList.push(p),this._ready=!0};m0.prototype.isDestroyed=function(){return!1};m0.prototype.destroy=function(){return J8(this),this._texture=this._texture&&this._texture.destroy(),ue(this)};var dm=m0;function VS(e){e=y(e,y.EMPTY_OBJECT);let t=l(e.imageBasedLightingFactor)?H.clone(e.imageBasedLightingFactor):new H(1,1);this._imageBasedLightingFactor=t;let n=y(e.luminanceAtZenith,.2);this._luminanceAtZenith=n;let i=e.sphericalHarmonicCoefficients;this._sphericalHarmonicCoefficients=i,this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapAtlas=void 0,this._specularEnvironmentMapAtlasDirty=!0,this._specularEnvironmentMapLoaded=!1,this._previousSpecularEnvironmentMapLoaded=!1,this._useDefaultSpecularMaps=!1,this._useDefaultSphericalHarmonics=!1,this._shouldRegenerateShaders=!1,this._previousFrameNumber=void 0,this._previousImageBasedLightingFactor=H.clone(t),this._previousLuminanceAtZenith=n,this._previousSphericalHarmonicCoefficients=i,this._removeErrorListener=void 0}Object.defineProperties(VS.prototype,{imageBasedLightingFactor:{get:function(){return this._imageBasedLightingFactor},set:function(e){this._previousImageBasedLightingFactor=H.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor),this._imageBasedLightingFactor=H.clone(e,this._imageBasedLightingFactor)}},luminanceAtZenith:{get:function(){return this._luminanceAtZenith},set:function(e){this._previousLuminanceAtZenith=this._luminanceAtZenith,this._luminanceAtZenith=e}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients},set:function(e){this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients,this._sphericalHarmonicCoefficients=e}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps},set:function(e){e!==this._specularEnvironmentMaps&&(this._specularEnvironmentMapAtlasDirty=this._specularEnvironmentMapAtlasDirty||e!==this._specularEnvironmentMaps,this._specularEnvironmentMapLoaded=!1),this._specularEnvironmentMaps=e}},enabled:{get:function(){return this._imageBasedLightingFactor.x>0||this._imageBasedLightingFactor.y>0}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},useDefaultSphericalHarmonics:{get:function(){return this._useDefaultSphericalHarmonics}},useSphericalHarmonicCoefficients:{get:function(){return l(this._sphericalHarmonicCoefficients)||this._useDefaultSphericalHarmonics}},specularEnvironmentMapAtlas:{get:function(){return this._specularEnvironmentMapAtlas}},useDefaultSpecularMaps:{get:function(){return this._useDefaultSpecularMaps}},useSpecularEnvironmentMaps:{get:function(){return l(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready||this._useDefaultSpecularMaps}}});function VOe(e,t){if(dm.isSupported(t)){if(e._specularEnvironmentMapAtlas=e._specularEnvironmentMapAtlas&&e._specularEnvironmentMapAtlas.destroy(),l(e._specularEnvironmentMaps)){let n=new dm(e._specularEnvironmentMaps);e._specularEnvironmentMapAtlas=n,e._removeErrorListener=n.errorEvent.addEventListener(i=>{console.error(`Error loading specularEnvironmentMaps: ${i}`)})}e._shouldRegenerateShaders=!0}}VS.prototype.update=function(e){if(e.frameNumber===this._previousFrameNumber)return;this._previousFrameNumber=e.frameNumber;let t=e.context;e.brdfLutGenerator.update(e),this._shouldRegenerateShaders=!1;let n=this._imageBasedLightingFactor,i=this._previousImageBasedLightingFactor;H.equals(n,i)||(this._shouldRegenerateShaders=n.x>0&&i.x===0||n.x===0&&i.x>0,this._shouldRegenerateShaders=this._shouldRegenerateShaders||n.y>0&&i.y===0||n.y===0&&i.y>0,this._previousImageBasedLightingFactor=H.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor)),this._luminanceAtZenith!==this._previousLuminanceAtZenith&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||l(this._luminanceAtZenith)!==l(this._previousLuminanceAtZenith),this._previousLuminanceAtZenith=this._luminanceAtZenith),this._previousSphericalHarmonicCoefficients!==this._sphericalHarmonicCoefficients&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||l(this._previousSphericalHarmonicCoefficients)!==l(this._sphericalHarmonicCoefficients),this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients),this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._previousSpecularEnvironmentMapLoaded!==this._specularEnvironmentMapLoaded,this._previousSpecularEnvironmentMapLoaded=this._specularEnvironmentMapLoaded,this._specularEnvironmentMapAtlasDirty&&(VOe(this,t),this._specularEnvironmentMapAtlasDirty=!1),l(this._specularEnvironmentMapAtlas)&&(this._specularEnvironmentMapAtlas.update(e),this._specularEnvironmentMapAtlas.ready&&(this._specularEnvironmentMapLoaded=!0));let o=!l(this._specularEnvironmentMapAtlas)&&l(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,r=!l(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,s=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,a=!l(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||o||r||s||a,this._useDefaultSpecularMaps=!l(this._specularEnvironmentMapAtlas)&&l(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)};VS.prototype.isDestroyed=function(){return!1};VS.prototype.destroy=function(){return this._specularEnvironmentMapAtlas=this._specularEnvironmentMapAtlas&&this._specularEnvironmentMapAtlas.destroy(),this._removeErrorListener=this._removeErrorListener&&this._removeErrorListener(),ue(this)};var bC=VS;var Q8=ar(bl(),1);var Z8,K$="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIwZWQ3OWFlZC1kOTg3LTRlZjctYTAyYy0xNjFmODE1MWE2NGUiLCJpZCI6MjU5LCJpYXQiOjE2ODI5NDYzODh9.DEH4GpqliH-xsDE7h-ZCICtHgnGu32wdSjt4hFqw7lU",NR={};NR.defaultAccessToken=K$;NR.defaultServer=new we({url:"https://api.cesium.com/"});NR.getDefaultTokenCredit=function(e){if(e===K$){if(!l(Z8)){let t=`<b> This application is using Cesium's default ion access token. Please assign <i>Cesium.Ion.defaultAccessToken</i> with an access token from your ion account before making any Cesium API calls. You can sign up for a free ion account at <a href="https://cesium.com">https://cesium.com</a>.</b>`;Z8=new It(t,!0)}return Z8}};var mm=NR;function gc(e,t){let n,i=e.externalType,o=l(i);if(!o)n={url:e.url,retryAttempts:1,retryCallback:kOe};else if(i==="3DTILES"||i==="STK_TERRAIN_SERVER")n={url:e.options.url};else throw new de("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");we.call(this,n),this._ionEndpoint=e,this._ionEndpointDomain=o?void 0:new Q8.default(e.url).authority(),this._ionEndpointResource=t,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=o}l(Object.create)&&(gc.prototype=Object.create(we.prototype),gc.prototype.constructor=gc);gc.fromAssetId=function(e,t){let n=gc._createEndpointResource(e,t);return n.fetchJson().then(function(i){return new gc(i,n)})};Object.defineProperties(gc.prototype,{credits:{get:function(){return l(this._ionRoot)?this._ionRoot.credits:l(this._credits)?this._credits:(this._credits=gc.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}});gc.getCreditsFromEndpoint=function(e,t){let n=e.attributions.map(It.getIonCredit),i=mm.getDefaultTokenCredit(t.queryParameters.access_token);return l(i)&&n.push(It.clone(i)),n};gc.prototype.clone=function(e){let t=y(this._ionRoot,this);return l(e)||(e=new gc(t._ionEndpoint,t._ionEndpointResource)),e=we.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e};gc.prototype.fetchImage=function(e){if(!this._isExternal){let t=e;e={preferBlob:!0},l(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return we.prototype.fetchImage.call(this,e)};gc.prototype._makeRequest=function(e){return this._isExternal||new Q8.default(this.url).authority()!==this._ionEndpointDomain?we.prototype._makeRequest.call(this,e):(l(e.headers)||(e.headers={}),e.headers.Authorization=`Bearer ${this._ionEndpoint.accessToken}`,e.headers["X-Cesium-Client"]="CesiumJS",typeof CESIUM_VERSION<"u"&&(e.headers["X-Cesium-Client-Version"]=CESIUM_VERSION),we.prototype._makeRequest.call(this,e))};gc._createEndpointResource=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.server,mm.defaultServer),i=y(t.accessToken,mm.defaultAccessToken);n=we.createIfNeeded(n);let o={url:`v1/assets/${e}/endpoint`};return l(i)&&(o.queryParameters={access_token:i}),n.getDerivedResource(o)};function kOe(e,t){let n=y(e._ionRoot,e),i=n._ionEndpointResource,o=typeof Image<"u";return!l(t)||t.statusCode!==401&&!(o&&t.target instanceof Image)?Promise.resolve(!1):(l(n._pendingPromise)||(n._pendingPromise=i.fetchJson().then(function(r){return n._ionEndpoint=r,r}).finally(function(r){return n._pendingPromise=void 0,r})),n._pendingPromise.then(function(r){return e._ionEndpoint=r,!0}))}var ca=gc;function hm(e){e=y(e,0),this._array=new Array(e),this._length=e}Object.defineProperties(hm.prototype,{length:{get:function(){return this._length},set:function(e){let t=this._array,n=this._length;if(e<n)for(let i=e;i<n;++i)t[i]=void 0;else e>t.length&&(t.length=e);this._length=e}},values:{get:function(){return this._array}}});hm.prototype.get=function(e){return this._array[e]};hm.prototype.set=function(e,t){e>=this._length&&(this.length=e+1),this._array[e]=t};hm.prototype.peek=function(){return this._array[this._length-1]};hm.prototype.push=function(e){let t=this.length++;this._array[t]=e};hm.prototype.pop=function(){if(this._length===0)return;let e=this._array[this._length-1];return--this.length,e};hm.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)};hm.prototype.resize=function(e){this.length=e};hm.prototype.trim=function(e){e=y(e,this._length),this._array.length=e};var Jc=hm;var kh={X:0,Y:1,Z:2};kh.Y_UP_TO_Z_UP=B.fromRotationTranslation(Z.fromRotationX(P.PI_OVER_TWO));kh.Z_UP_TO_Y_UP=B.fromRotationTranslation(Z.fromRotationX(-P.PI_OVER_TWO));kh.X_UP_TO_Z_UP=B.fromRotationTranslation(Z.fromRotationY(-P.PI_OVER_TWO));kh.Z_UP_TO_X_UP=B.fromRotationTranslation(Z.fromRotationY(P.PI_OVER_TWO));kh.X_UP_TO_Y_UP=B.fromRotationTranslation(Z.fromRotationZ(P.PI_OVER_TWO));kh.Y_UP_TO_X_UP=B.fromRotationTranslation(Z.fromRotationZ(-P.PI_OVER_TWO));kh.fromName=function(e){return kh[e]};var ho=Object.freeze(kh);function J$(e){e=y(e,y.EMPTY_OBJECT),this._metadata=e.metadata}Object.defineProperties(J$.prototype,{metadata:{get:function(){return this._metadata}}});var SC=J$;function v_(e,t,n){return t=y(t,0),n=y(n,e.byteLength-t),e=e.subarray(t,t+n),v_.decode(e)}v_.decodeWithTextDecoder=function(e){return new TextDecoder("utf-8").decode(e)};v_.decodeWithFromCharCode=function(e){let t="",n=zOe(e),i=n.length;for(let o=0;o<i;++o){let r=n[o];r<=65535?t+=String.fromCharCode(r):(r-=65536,t+=String.fromCharCode((r>>10)+55296,(r&1023)+56320))}return t};function kS(e,t,n){return t<=e&&e<=n}function zOe(e){let t=0,n=0,i=0,o=128,r=191,s=[],a=e.length;for(let c=0;c<a;++c){let u=e[c];if(i===0){if(kS(u,0,127)){s.push(u);continue}if(kS(u,194,223)){i=1,t=u&31;continue}if(kS(u,224,239)){u===224&&(o=160),u===237&&(r=159),i=2,t=u&15;continue}if(kS(u,240,244)){u===240&&(o=144),u===244&&(r=143),i=3,t=u&7;continue}throw new de("String decoding failed.")}if(!kS(u,o,r)){t=i=n=0,o=128,r=191,--c;continue}o=128,r=191,t=t<<6|u&63,++n,n===i&&(s.push(t),t=i=n=0)}return s}typeof TextDecoder<"u"?v_.decode=v_.decodeWithTextDecoder:v_.decode=v_.decodeWithFromCharCode;var Ll=v_;function HOe(e,t){return t=y(t,0),Ll(e,t,Math.min(4,e.length))}var pm=HOe;function zf(e,t,n,i){this._tileset=e,this._tile=t,this._resource=n,l(i)||(i=[]),this._contents=i,this._metadata=void 0,this._group=void 0,this._ready=!1,this._resolveContent=void 0,this._readyPromise=new Promise(o=>{this._resolveContent=o})}Object.defineProperties(zf.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)if(e[n].featurePropertiesDirty)return!0;return!1},set:function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Composite3DTileContent.readyPromise","Composite3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Composite3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e;let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].metadata=e}},batchTable:{get:function(){}},group:{get:function(){return this._group},set:function(e){this._group=e;let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].group=e}}});var zS=Uint32Array.BYTES_PER_ELEMENT;zf.fromTileType=async function(e,t,n,i,o,r){o=y(o,0);let s=new Uint8Array(i),a=new DataView(i);o+=zS;let c=a.getUint32(o,!0);if(c!==1)throw new de(`Only Composite Tile version 1 is supported. Version ${c} is not.`);o+=zS,o+=zS;let u=a.getUint32(o,!0);o+=zS;let f=n.queryParameters.compositeIndex;l(f)?f=`${f}_`:f="";let d=[];d.length=u;for(let h=0;h<u;++h){let A=pm(s,o),x=a.getUint32(o+zS*2,!0),C=r[A],T=`${f}${h}`,E=n.getDerivedResource({queryParameters:{compositeIndex:T}});if(l(C))d[h]=Promise.resolve(C(e,t,E,i,o));else throw new de(`Unknown tile content type, ${A}, inside Composite tile`);o+=x}let p=await Promise.all(d);return new zf(e,t,n,p)};zf.prototype.hasProperty=function(e,t){return!1};zf.prototype.getFeature=function(e){};zf.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};zf.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};zf.prototype.update=function(e,t){let n=this._contents,i=n.length,o=!0;for(let r=0;r<i;++r)n[r].update(e,t),o=o&&n[r].ready;!this._ready&&o&&(this._ready=!0,this._resolveContent(this))};zf.prototype.isDestroyed=function(){return!1};zf.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var FR=zf;function GOe(e,t,n){return JSON.parse(Ll(e,t,n))}var Po=GOe;function Oa(e){this._id=jn();let t=e.featuresLength;this._showAlphaProperties=void 0,this._batchValues=void 0,this._batchValuesDirty=!1,this._batchTexture=void 0,this._defaultTexture=void 0,this._pickTexture=void 0,this._pickIds=[];let n,i;if(t>0){let o=Math.min(t,zt.maximumTextureSize),r=Math.ceil(t/zt.maximumTextureSize),s=1/o,a=s*.5,c=1/r,u=c*.5;n=new H(o,r),i=new re(s,a,c,u)}this._translucentFeaturesLength=0,this._featuresLength=t,this._textureDimensions=n,this._textureStep=i,this._owner=e.owner,this._statistics=e.statistics,this._colorChangedCallback=e.colorChangedCallback}Object.defineProperties(Oa.prototype,{translucentFeaturesLength:{get:function(){return this._translucentFeaturesLength}},byteLength:{get:function(){let e=0;return l(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),l(this._batchTexture)&&(e+=this._batchTexture.sizeInBytes),e}},textureDimensions:{get:function(){return this._textureDimensions}},textureStep:{get:function(){return this._textureStep}},batchTexture:{get:function(){return this._batchTexture}},defaultTexture:{get:function(){return this._defaultTexture}},pickTexture:{get:function(){return this._pickTexture}}});Oa.DEFAULT_COLOR_VALUE=z.WHITE;Oa.DEFAULT_SHOW_VALUE=!0;function Z$(e){let t=e._textureDimensions;return t.x*t.y*4}function Q$(e){if(!l(e._batchValues)){let t=Z$(e),n=new Uint8Array(t).fill(255);e._batchValues=n}return e._batchValues}function $$(e){if(!l(e._showAlphaProperties)){let t=2*e._featuresLength,n=new Uint8Array(t).fill(255);e._showAlphaProperties=n}return e._showAlphaProperties}Oa.prototype.setShow=function(e,t){if(t&&!l(this._showAlphaProperties))return;let n=$$(this),i=e*2,o=t?255:0;if(n[i]!==o){n[i]=o;let r=Q$(this),s=e*4+3;r[s]=t?n[i+1]:0,this._batchValuesDirty=!0}};Oa.prototype.setAllShow=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setShow(n,e)};Oa.prototype.getShow=function(e){if(!l(this._showAlphaProperties))return!0;let t=e*2;return this._showAlphaProperties[t]===255};var WOe=new Array(4);Oa.prototype.setColor=function(e,t){if(z.equals(t,Oa.DEFAULT_COLOR_VALUE)&&!l(this._batchValues))return;let n=t.toBytes(WOe),i=n[3],o=Q$(this),r=e*4,s=$$(this),a=e*2;if(o[r]!==n[0]||o[r+1]!==n[1]||o[r+2]!==n[2]||s[a+1]!==i){o[r]=n[0],o[r+1]=n[1],o[r+2]=n[2];let c=s[a+1]!==255,u=s[a]!==0;o[r+3]=u?i:0,s[a+1]=i;let f=i!==255;f&&!c?++this._translucentFeaturesLength:!f&&c&&--this._translucentFeaturesLength,this._batchValuesDirty=!0,l(this._colorChangedCallback)&&this._colorChangedCallback(e,t)}};Oa.prototype.setAllColor=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setColor(n,e)};Oa.prototype.getColor=function(e,t){if(!l(this._batchValues))return z.clone(Oa.DEFAULT_COLOR_VALUE,t);let n=this._batchValues,i=e*4,o=this._showAlphaProperties,r=e*2;return z.fromBytes(n[i],n[i+1],n[i+2],o[r+1],t)};Oa.prototype.getPickColor=function(e){return this._pickIds[e]};function eee(e,t,n){let i=e._textureDimensions;return new Bt({context:t,pixelFormat:lt.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,source:{width:i.x,height:i.y,arrayBufferView:n},flipY:!1,sampler:dn.NEAREST})}function jOe(e,t){let n=e._featuresLength;if(!l(e._pickTexture)&&n>0){let i=e._pickIds,o=Z$(e),r=new Uint8Array(o),s=e._owner,a=e._statistics;for(let c=0;c<n;++c){let u=t.createPickId(s.getFeature(c));i.push(u);let f=u.color,d=c*4;r[d]=z.floatToByte(f.red),r[d+1]=z.floatToByte(f.green),r[d+2]=z.floatToByte(f.blue),r[d+3]=z.floatToByte(f.alpha)}e._pickTexture=eee(e,t,r),l(a)&&(a.batchTableByteLength+=e._pickTexture.sizeInBytes)}}function YOe(e){let t=e._textureDimensions;e._batchTexture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}Oa.prototype.update=function(e,t){let n=t.context;this._defaultTexture=n.defaultTexture;let i=t.passes;(i.pick||i.postProcess)&&jOe(this,n),this._batchValuesDirty&&(this._batchValuesDirty=!1,l(this._batchTexture)||(this._batchTexture=eee(this,n,this._batchValues),l(this._statistics)&&(this._statistics.batchTableByteLength+=this._batchTexture.sizeInBytes)),YOe(this))};Oa.prototype.isDestroyed=function(){return!1};Oa.prototype.destroy=function(){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),this._pickTexture=this._pickTexture&&this._pickTexture.destroy();let e=this._pickIds,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var Zc=Oa;var qOe={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},XOe={SCALAR:void 0,VEC2:H,VEC3:m,VEC4:re,MAT2:eo,MAT3:Z,MAT4:B};function KOe(e){let t=e.componentType,n;typeof t=="string"?n=X.fromName(t):n=t;let i=qOe[e.type],o=XOe[e.type];return{componentsPerAttribute:i,classType:o,createArrayBufferView:function(r,s,a){return X.createArrayBufferView(n,r,s,i*a)}}}var Bu=KOe;function zh(e){this._classes=void 0,this._classIds=void 0,this._classIndexes=void 0,this._parentCounts=void 0,this._parentIndexes=void 0,this._parentIds=void 0,this._byteLength=0,JOe(this,e.extension,e.binaryBody)}Object.defineProperties(zh.prototype,{byteLength:{get:function(){return this._byteLength}}});function JOe(e,t,n){let i,o,r,s=t.instancesLength,a=t.classes,c=t.classIds,u=t.parentCounts,f=t.parentIds,d=s,p=0;l(c.byteOffset)&&(c.componentType=y(c.componentType,X.UNSIGNED_SHORT),c.type=an.SCALAR,r=Bu(c),c=r.createArrayBufferView(n.buffer,n.byteOffset+c.byteOffset,s),p+=c.byteLength);let g;if(l(u)){for(l(u.byteOffset)&&(u.componentType=y(u.componentType,X.UNSIGNED_SHORT),u.type=an.SCALAR,r=Bu(u),u=r.createArrayBufferView(n.buffer,n.byteOffset+u.byteOffset,s),p+=u.byteLength),g=new Uint16Array(s),d=0,i=0;i<s;++i)g[i]=d,d+=u[i];p+=g.byteLength}l(f)&&l(f.byteOffset)&&(f.componentType=y(f.componentType,X.UNSIGNED_SHORT),f.type=an.SCALAR,r=Bu(f),f=r.createArrayBufferView(n.buffer,n.byteOffset+f.byteOffset,d),p+=f.byteLength);let h=a.length;for(i=0;i<h;++i){let C=a[i].length,T=a[i].instances,E=ZOe(C,T,n);p+=QOe(E),a[i].instances=gt(E,T)}let A=new Array(h).fill(0),x=new Uint16Array(s);for(i=0;i<s;++i)o=c[i],x[i]=A[o],++A[o];p+=x.byteLength,e._classes=a,e._classIds=c,e._classIndexes=x,e._parentCounts=u,e._parentIndexes=g,e._parentIds=f,e._byteLength=p}function ZOe(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(l(s)){let a=r.componentType,c=r.type;if(!l(a))throw new de("componentType is required.");if(!l(c))throw new de("type is required.");if(!l(n))throw new de(`Property ${o} requires a batch table binary.`);let u=Bu(r),f=u.componentsPerAttribute,d=u.classType,p=u.createArrayBufferView(n.buffer,n.byteOffset+s,e);l(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function QOe(e){let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}var $Oe=[],eMe=[],tMe=0;function nMe(e,t,n){let i=e._classIds,o=e._parentCounts,r=e._parentIds,s=e._parentIndexes,a=i.length,c=$Oe;c.length=Math.max(c.length,a);let u=++tMe,f=eMe;for(f.length=0,f.push(t);f.length>0;){if(t=f.pop(),c[t]===u)continue;c[t]=u;let d=n(e,t);if(l(d))return d;let p=o[t],g=s[t];for(let h=0;h<p;++h){let A=r[g+h];A!==t&&f.push(A)}}}function iMe(e,t,n){let i=!0;for(;i;){let o=n(e,t);if(l(o))return o;let r=e._parentIds[t];i=r!==t,t=r}}function HS(e,t,n){let i=e._parentCounts,o=e._parentIds;if(l(o)){if(l(i))return nMe(e,t,n)}else return n(e,t);return iMe(e,t,n)}zh.prototype.hasProperty=function(e,t){let n=HS(this,e,function(i,o){let r=i._classIds[o],s=i._classes[r].instances;if(l(s[t]))return!0});return l(n)};zh.prototype.propertyExists=function(e){let t=this._classes,n=t.length;for(let i=0;i<n;++i){let o=t[i].instances;if(l(o[e]))return!0}return!1};zh.prototype.getPropertyIds=function(e,t){return t=l(t)?t:[],t.length=0,HS(this,e,function(n,i){let o=n._classIds[i],r=n._classes[o].instances;for(let s in r)r.hasOwnProperty(s)&&t.indexOf(s)===-1&&t.push(s)}),t};zh.prototype.getProperty=function(e,t){return HS(this,e,function(n,i){let o=n._classIds[i],r=n._classes[o],s=n._classIndexes[i],a=r.instances[t];if(l(a))return l(a.typedArray)?oMe(a,s):Ye(a[s],!0)})};function oMe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}zh.prototype.setProperty=function(e,t,n){let i=HS(this,e,function(o,r){let s=o._classIds[r],a=o._classes[s],c=o._classIndexes[r],u=a.instances[t];if(l(u))return l(u.typedArray)?rMe(u,c,n):u[c]=Ye(n,!0),!0});return l(i)};function rMe(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}zh.prototype.isClass=function(e,t){let n=HS(this,e,function(i,o){let r=i._classIds[o];if(i._classes[r].name===t)return!0});return l(n)};zh.prototype.getClassName=function(e){let t=this._classIds[e];return this._classes[t].name};var wC=zh;var sMe={HIGHLIGHT:0,REPLACE:1,MIX:2},Nl=Object.freeze(sMe);var $8=Zc.DEFAULT_COLOR_VALUE,e5=Zc.DEFAULT_SHOW_VALUE;function so(e,t,n,i,o){this.featuresLength=t;let r;l(n)&&(r=n.extensions),this._extensions=y(r,{});let s=aMe(n);this._properties=s,this._batchTableHierarchy=cMe(this,n,i);let a=nee(t,s,i);this._binaryPropertiesByteLength=lMe(a),this._batchTableBinaryProperties=a,this._content=e,this._batchTexture=new Zc({featuresLength:t,colorChangedCallback:o,owner:e,statistics:e.tileset.statistics})}so._deprecationWarning=$;Object.defineProperties(so.prototype,{batchTableByteLength:{get:function(){let e=this._binaryPropertiesByteLength;return l(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e+=this._batchTexture.byteLength,e}}});function aMe(e){let t={};if(!l(e))return t;for(let n in e)e.hasOwnProperty(n)&&n!=="HIERARCHY"&&n!=="extensions"&&n!=="extras"&&(t[n]=Ye(e[n],!0));return t}function cMe(e,t,n){if(!l(t))return;let i=e._extensions["3DTILES_batch_table_hierarchy"],o=t.HIERARCHY;if(l(o)&&(so._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),e._extensions["3DTILES_batch_table_hierarchy"]=o,i=o),!!l(i))return new wC({extension:i,binaryBody:n})}function nee(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(l(s)){let a=r.componentType,c=r.type;if(!l(a))throw new de("componentType is required.");if(!l(c))throw new de("type is required.");if(!l(n))throw new de(`Property ${o} requires a batch table binary.`);let u=Bu(r),f=u.componentsPerAttribute,d=u.classType,p=u.createArrayBufferView(n.buffer,n.byteOffset+s,e);l(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function lMe(e){if(!l(e))return 0;let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}so.getBinaryProperties=function(e,t,n){return nee(e,t,n)};so.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};so.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};so.prototype.getShow=function(e){return this._batchTexture.getShow(e)};so.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};so.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};so.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};so.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};var uMe=new z;so.prototype.applyStyle=function(e){if(!l(e)){this.setAllColor($8),this.setAllShow(e5);return}let t=this._content,n=this.featuresLength;for(let i=0;i<n;++i){let o=t.getFeature(i),r=l(e.color)?y(e.color.evaluateColor(o,uMe),$8):$8,s=l(e.show)?y(e.show.evaluate(o),e5):e5;this.setColor(i,r),this.setShow(i,s)}};function fMe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}function dMe(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}so.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return l(n)?n.isClass(e,t):!1};so.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};so.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(l(t))return t.getClassName(e)};so.prototype.hasProperty=function(e,t){return l(this._properties[t])||l(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)};so.prototype.hasPropertyBySemantic=function(){return!1};so.prototype.getPropertyIds=function(e,t){t=l(t)?t:[],t.length=0;let n=Object.keys(this._properties);return t.push.apply(t,n),l(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,n)),t};so.prototype.getPropertyBySemantic=function(e,t){};so.prototype.getProperty=function(e,t){if(l(this._batchTableBinaryProperties)){let i=this._batchTableBinaryProperties[t];if(l(i))return fMe(i,e)}let n=this._properties[t];if(l(n))return Ye(n[e],!0);if(l(this._batchTableHierarchy)){let i=this._batchTableHierarchy.getProperty(e,t);if(l(i))return i}};so.prototype.setProperty=function(e,t,n){let i=this.featuresLength;if(l(this._batchTableBinaryProperties)){let r=this._batchTableBinaryProperties[t];if(l(r)){dMe(r,e,n);return}}if(l(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n))return;let o=this._properties[t];l(o)||(this._properties[t]=new Array(i),o=this._properties[t]),o[e]=Ye(n,!0)};function mMe(e){return e._batchTexture.textureDimensions.y===1?`uniform vec4 tile_textureStep; +vec2 computeSt(float batchId) +{ + float stepX = tile_textureStep.x; + float centerX = tile_textureStep.y; + return vec2(centerX + (batchId * stepX), 0.5); +} +`:`uniform vec4 tile_textureStep; +uniform vec2 tile_textureDimensions; +vec2 computeSt(float batchId) +{ + float stepX = tile_textureStep.x; + float centerX = tile_textureStep.y; + float stepY = tile_textureStep.z; + float centerY = tile_textureStep.w; + float xId = mod(batchId, tile_textureDimensions.x); + float yId = floor(batchId / tile_textureDimensions.x); + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); +} +`}so.prototype.getVertexShaderCallback=function(e,t,n){if(this.featuresLength===0)return;let i=this;return function(o){let r=iee(o,n,!1),s;return zt.maximumVertexTextureImageUnits>0?(s="",e&&(s+=`uniform bool tile_translucentCommand; +`),s+=`uniform sampler2D tile_batchTexture; +out vec4 tile_featureColor; +out vec2 tile_featureSt; +void main() +{ + vec2 st = computeSt(${t}); + vec4 featureProperties = texture(tile_batchTexture, st); + tile_color(featureProperties); + float show = ceil(featureProperties.a); + gl_Position *= show; +`,e&&(s+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + gl_Position *= 0.0; + } + } + else + { + if (isStyleTranslucent) + { + gl_Position *= 0.0; + } + } +`),s+=` tile_featureColor = featureProperties; + tile_featureSt = st; +}`):s=`out vec2 tile_featureSt; +void main() +{ + tile_color(vec4(1.0)); + tile_featureSt = computeSt(${t}); +}`,`${r} +${mMe(i)}${s}`}};function tee(e,t){return e=He.replaceMain(e,"tile_main"),t?`${e}uniform float tile_colorBlend; +void tile_color(vec4 tile_featureColor) +{ + tile_main(); + tile_featureColor = czm_gammaCorrect(tile_featureColor); + out_FragColor.a *= tile_featureColor.a; + float highlight = ceil(tile_colorBlend); + out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); +} +`:`${e}void tile_color(vec4 tile_featureColor) +{ + tile_main(); +} +`}function hMe(e,t){let n=`texture(${t}`,i=0,o=e.indexOf(n,i),r;for(;o>-1;){let s=0;for(let u=o;u<e.length;++u){let f=e.charAt(u);if(f==="(")++s;else if(f===")"&&(--s,s===0)){r=u+1;break}}let c=`tile_diffuse_final(${e.slice(o,r)}, tile_diffuse)`;e=e.slice(0,o)+c+e.slice(r),i=o+c.length,o=e.indexOf(n,i)}return e}function iee(e,t,n){if(!l(t))return tee(e,n);let i=new RegExp(`(uniform|attribute|in)\\s+(vec[34]|sampler2D)\\s+${t};`),o=e.match(i);if(!l(o))return tee(e,n);let r=o[0],s=o[2];e=He.replaceMain(e,"tile_main"),e=e.replace(r,"");let a=`bool isWhite(vec3 color) +{ + return all(greaterThan(color, vec3(1.0 - czm_epsilon3))); +} +vec4 tile_diffuse_final(vec4 sourceDiffuse, vec4 tileDiffuse) +{ + vec4 blendDiffuse = mix(sourceDiffuse, tileDiffuse, tile_colorBlend); + vec4 diffuse = isWhite(tileDiffuse.rgb) ? sourceDiffuse : blendDiffuse; + return vec4(diffuse.rgb, sourceDiffuse.a); +} +`,c=` tile_featureColor = czm_gammaCorrect(tile_featureColor); + out_FragColor.a *= tile_featureColor.a; + float highlight = ceil(tile_colorBlend); + out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); +`,u;if(s==="vec3"||s==="vec4"){let f=s==="vec3"?`vec4(${t}, 1.0)`:t,d=s==="vec3"?"tile_diffuse.xyz":"tile_diffuse";i=new RegExp(t,"g"),e=e.replace(i,d),u=` vec4 source = ${f}; + tile_diffuse = tile_diffuse_final(source, tile_featureColor); + tile_main(); +`}else s==="sampler2D"&&(e=hMe(e,t),u=` tile_diffuse = tile_featureColor; + tile_main(); +`);return e=`uniform float tile_colorBlend; +vec4 tile_diffuse = vec4(1.0); +${a}${r} +${e} +void tile_color(vec4 tile_featureColor) +{ +${u}`,n&&(e+=c),e+=`} +`,e}so.prototype.getFragmentShaderCallback=function(e,t,n){if(this.featuresLength!==0)return function(i){return i=iee(i,t,!0),zt.maximumVertexTextureImageUnits>0?(i+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_color(tile_featureColor); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+="}"):(e&&(i+=`uniform bool tile_translucentCommand; +`),i+=`uniform sampler2D tile_pickTexture; +uniform sampler2D tile_batchTexture; +in vec2 tile_featureSt; +void main() +{ + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } +`,e&&(i+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + discard; + } + } + else + { + if (isStyleTranslucent) + { + discard; + } + } +`),i+=` tile_color(featureProperties); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+=`} +`),i}};so.prototype.getClassificationFragmentShaderCallback=function(){if(this.featuresLength!==0)return function(e){return e=He.replaceMain(e,"tile_main"),zt.maximumVertexTextureImageUnits>0?e+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_main(); + out_FragColor = tile_featureColor; + out_FragColor.rgb *= out_FragColor.a; +}`:e+=`uniform sampler2D tile_batchTexture; +uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +void main() +{ + tile_main(); + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } + out_FragColor = featureProperties; + out_FragColor.rgb *= out_FragColor.a; +} +`,e}};function pMe(e){let t=e._content.tileset,n=t.colorBlendMode,i=t.colorBlendAmount;if(n===Nl.HIGHLIGHT)return 0;if(n===Nl.REPLACE)return 1;if(n===Nl.MIX)return P.clamp(i,P.EPSILON4,1)}so.prototype.getUniformMapCallback=function(){if(this.featuresLength===0)return;let e=this;return function(t){return gt(t,{tile_batchTexture:function(){return y(e._batchTexture.batchTexture,e._batchTexture.defaultTexture)},tile_textureDimensions:function(){return e._batchTexture.textureDimensions},tile_textureStep:function(){return e._batchTexture.textureStep},tile_colorBlend:function(){return pMe(e)},tile_pickTexture:function(){return e._batchTexture.pickTexture}})}};so.prototype.getPickId=function(){return"texture(tile_pickTexture, tile_featureSt)"};var D_={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};so.prototype.addDerivedCommands=function(e,t){let n=e.commandList,i=n.length,o=this._content._tile,r=o._finalResolution,s=o.tileset,a=s.isSkippingLevelOfDetail&&s.hasMixedContent&&e.context.stencilBuffer,c=_Me(this);for(let u=t;u<i;++u){let f=n[u];if(f.pass===be.COMPUTE)continue;let d=f.derivedCommands.tileset;(!l(d)||f.dirty)&&(d={},f.derivedCommands.tileset=d,d.originalCommand=gMe(f),f.dirty=!1);let p=d.originalCommand;c!==D_.ALL_OPAQUE&&f.pass!==be.TRANSLUCENT&&(l(d.translucent)||(d.translucent=yMe(p))),c!==D_.ALL_TRANSLUCENT&&f.pass!==be.TRANSLUCENT&&(l(d.opaque)||(d.opaque=AMe(p)),a&&(r||(l(d.zback)||(d.zback=CMe(e.context,p)),s._backfaceCommands.push(d.zback)),(!l(d.stencil)||o._selectionDepth!==EMe(d.stencil))&&(f.renderState.depthMask?d.stencil=TMe(p,o._selectionDepth):d.stencil=d.opaque)));let g=a?d.stencil:d.opaque,h=d.translucent;f.pass!==be.TRANSLUCENT?(c===D_.ALL_OPAQUE&&(n[u]=g),c===D_.ALL_TRANSLUCENT&&(n[u]=h),c===D_.OPAQUE_AND_TRANSLUCENT&&(n[u]=g,n.push(h))):n[u]=p}};function _Me(e){let t=e._batchTexture.translucentFeaturesLength;return t===0?D_.ALL_OPAQUE:t===e.featuresLength?D_.ALL_TRANSLUCENT:D_.OPAQUE_AND_TRANSLUCENT}function gMe(e){let t=it.shallowClone(e),n=t.pass===be.TRANSLUCENT;return t.uniformMap=l(t.uniformMap)?t.uniformMap:{},t.uniformMap.tile_translucentCommand=function(){return n},t}function yMe(e){let t=it.shallowClone(e);return t.pass=be.TRANSLUCENT,t.renderState=bMe(e.renderState),t}function AMe(e){let t=it.shallowClone(e);return t.renderState=SMe(e.renderState),t}function xMe(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"zBackfaceLogDepth");if(!l(n)){let i=t.fragmentShaderSource.clone();i.defines=l(i.defines)?i.defines.slice(0):[],i.defines.push("POLYGON_OFFSET"),i.sources.unshift(`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif +`),n=e.shaderCache.createDerivedShaderProgram(t,"zBackfaceLogDepth",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:i,attributeLocations:t._attributeLocations})}return n}function CMe(e,t){let n=it.shallowClone(t),i=Ye(n.renderState,!0);i.cull.enabled=!0,i.cull.face=gi.FRONT,i.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i.polygonOffset={enabled:!0,factor:5,units:5},i.stencilTest=Ft.setCesium3DTileBit(),i.stencilMask=Ft.CESIUM_3D_TILE_MASK,n.renderState=ze.fromCache(i),n.castShadows=!1,n.receiveShadows=!1,n.uniformMap=Ye(t.uniformMap);let o=new H(5,5);return n.uniformMap.u_polygonOffset=function(){return o},n.shaderProgram=xMe(e,t.shaderProgram),n}function TMe(e,t){let n=it.shallowClone(e),i=Ye(n.renderState,!0);return i.stencilTest.enabled=!0,i.stencilTest.mask=Ft.SKIP_LOD_MASK,i.stencilTest.reference=Ft.CESIUM_3D_TILE_MASK|t<<Ft.SKIP_LOD_BIT_SHIFT,i.stencilTest.frontFunction=Hn.GREATER_OR_EQUAL,i.stencilTest.frontOperation.zPass=ht.REPLACE,i.stencilTest.backFunction=Hn.GREATER_OR_EQUAL,i.stencilTest.backOperation.zPass=ht.REPLACE,i.stencilMask=Ft.CESIUM_3D_TILE_MASK|Ft.SKIP_LOD_MASK,n.renderState=ze.fromCache(i),n}function EMe(e){return(e.renderState.stencilTest.reference&Ft.SKIP_LOD_MASK)>>>Ft.SKIP_LOD_BIT_SHIFT}function bMe(e){let t=Ye(e,!0);return t.cull.enabled=!1,t.depthTest.enabled=!0,t.depthMask=!1,t.blending=mn.ALPHA_BLEND,t.stencilTest=Ft.setCesium3DTileBit(),t.stencilMask=Ft.CESIUM_3D_TILE_MASK,ze.fromCache(t)}function SMe(e){let t=Ye(e,!0);return t.stencilTest=Ft.setCesium3DTileBit(),t.stencilMask=Ft.CESIUM_3D_TILE_MASK,ze.fromCache(t)}so.prototype.update=function(e,t){this._batchTexture.update(e,t)};so.prototype.isDestroyed=function(){return!1};so.prototype.destroy=function(){return this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var I_=so;function wMe(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var Hh=wMe;var GS=`in vec3 position; +in float a_batchId; + +uniform mat4 u_modifiedModelViewProjection; + +void main() +{ + gl_Position = czm_depthClamp(u_modifiedModelViewProjection * vec4(position, 1.0)); +} +`;function Lu(e,t){this._content=e,this._batchId=t,this._color=void 0}Object.defineProperties(Lu.prototype,{show:{get:function(){return this._content.batchTable.getShow(this._batchId)},set:function(e){this._content.batchTable.setShow(this._batchId,e)}},color:{get:function(){return l(this._color)||(this._color=new z),this._content.batchTable.getColor(this._batchId,this._color)},set:function(e){this._content.batchTable.setColor(this._batchId,e)}},polylinePositions:{get:function(){if(l(this._content.getPolylinePositions))return this._content.getPolylinePositions(this._batchId)}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},featureId:{get:function(){return this._batchId}},pickId:{get:function(){return this._content.batchTable.getPickColor(this._batchId)}}});Lu.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};Lu.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};Lu.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};Lu.getPropertyInherited=function(e,t,n){let i=e.batchTable;if(l(i)){if(i.hasPropertyBySemantic(t,n))return i.getPropertyBySemantic(t,n);if(i.hasProperty(t,n))return i.getProperty(t,n)}let o=e.metadata;if(l(o)){if(o.hasPropertyBySemantic(n))return o.getPropertyBySemantic(n);if(o.hasProperty(n))return o.getProperty(n)}let r=e.tile,s=r.metadata;if(l(s)){if(s.hasPropertyBySemantic(n))return s.getPropertyBySemantic(n);if(s.hasProperty(n))return s.getProperty(n)}let a;if(l(r.implicitSubtree)&&(a=r.implicitSubtree.metadata),l(a)){if(a.hasPropertyBySemantic(n))return a.getPropertyBySemantic(n);if(a.hasProperty(n))return a.getProperty(n)}let c=l(e.group)?e.group.metadata:void 0;if(l(c)){if(c.hasPropertyBySemantic(n))return c.getPropertyBySemantic(n);if(c.hasProperty(n))return c.getProperty(n)}let u=e.tileset.metadata;if(l(u)){if(u.hasPropertyBySemantic(n))return u.getPropertyBySemantic(n);if(u.hasProperty(n))return u.getProperty(n)}};Lu.prototype.getPropertyInherited=function(e){return Lu.getPropertyInherited(this._content,this._batchId,e)};Lu.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};Lu.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};Lu.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};Lu.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var Bs=Lu;var t5=class{add(t,n,i){if(typeof arguments[0]!="string")for(let o in arguments[0])this.add(o,arguments[0][o],arguments[1]);else(Array.isArray(t)?t:[t]).forEach(function(o){this[o]=this[o]||[],n&&this[o][i?"unshift":"push"](n)},this)}run(t,n){this[t]=this[t]||[],this[t].forEach(function(i){i.call(n&&n.context?n.context:n,n)})}},n5=class{constructor(t){this.jsep=t,this.registered={}}register(...t){t.forEach(n=>{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},We=class{static get version(){return"1.3.8"}static toString(){return"JavaScript Expression Parser (JSEP) v"+We.version}static addUnaryOp(t){return We.max_unop_len=Math.max(t.length,We.max_unop_len),We.unary_ops[t]=1,We}static addBinaryOp(t,n,i){return We.max_binop_len=Math.max(t.length,We.max_binop_len),We.binary_ops[t]=n,i?We.right_associative.add(t):We.right_associative.delete(t),We}static addIdentifierChar(t){return We.additional_identifier_chars.add(t),We}static addLiteral(t,n){return We.literals[t]=n,We}static removeUnaryOp(t){return delete We.unary_ops[t],t.length===We.max_unop_len&&(We.max_unop_len=We.getMaxKeyLen(We.unary_ops)),We}static removeAllUnaryOps(){return We.unary_ops={},We.max_unop_len=0,We}static removeIdentifierChar(t){return We.additional_identifier_chars.delete(t),We}static removeBinaryOp(t){return delete We.binary_ops[t],t.length===We.max_binop_len&&(We.max_binop_len=We.getMaxKeyLen(We.binary_ops)),We.right_associative.delete(t),We}static removeAllBinaryOps(){return We.binary_ops={},We.max_binop_len=0,We}static removeLiteral(t){return delete We.literals[t],We}static removeAllLiterals(){return We.literals={},We}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(t){this.expr=t,this.index=0}static parse(t){return new We(t).parse()}static getMaxKeyLen(t){return Math.max(0,...Object.keys(t).map(n=>n.length))}static isDecimalDigit(t){return t>=48&&t<=57}static binaryPrecedence(t){return We.binary_ops[t]||0}static isIdentifierStart(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!We.binary_ops[String.fromCharCode(t)]||We.additional_identifier_chars.has(String.fromCharCode(t))}static isIdentifierPart(t){return We.isIdentifierStart(t)||We.isDecimalDigit(t)}throwError(t){let n=new Error(t+" at character "+this.index);throw n.index=this.index,n.description=t,n}runHook(t,n){if(We.hooks[t]){let i={context:this,node:n};return We.hooks.run(t,i),i.node}return n}searchHook(t){if(We.hooks[t]){let n={context:this};return We.hooks[t].find(function(i){return i.call(n.context,n),n.node}),n.node}}gobbleSpaces(){let t=this.code;for(;t===We.SPACE_CODE||t===We.TAB_CODE||t===We.LF_CODE||t===We.CR_CODE;)t=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let t=this.gobbleExpressions(),n=t.length===1?t[0]:{type:We.COMPOUND,body:t};return this.runHook("after-all",n)}gobbleExpressions(t){let n=[],i,o;for(;this.index<this.expr.length;)if(i=this.code,i===We.SEMCOL_CODE||i===We.COMMA_CODE)this.index++;else if(o=this.gobbleExpression())n.push(o);else if(this.index<this.expr.length){if(i===t)break;this.throwError('Unexpected "'+this.char+'"')}return n}gobbleExpression(){let t=this.searchHook("gobble-expression")||this.gobbleBinaryExpression();return this.gobbleSpaces(),this.runHook("after-expression",t)}gobbleBinaryOp(){this.gobbleSpaces();let t=this.expr.substr(this.index,We.max_binop_len),n=t.length;for(;n>0;){if(We.binary_ops.hasOwnProperty(t)&&(!We.isIdentifierStart(this.code)||this.index+t.length<this.expr.length&&!We.isIdentifierPart(this.expr.charCodeAt(this.index+t.length))))return this.index+=n,t;t=t.substr(0,--n)}return!1}gobbleBinaryExpression(){let t,n,i,o,r,s,a,c,u;if(s=this.gobbleToken(),!s||(n=this.gobbleBinaryOp(),!n))return s;for(r={value:n,prec:We.binaryPrecedence(n),right_a:We.right_associative.has(n)},a=this.gobbleToken(),a||this.throwError("Expected expression after "+n),o=[s,r,a];n=this.gobbleBinaryOp();){if(i=We.binaryPrecedence(n),i===0){this.index-=n.length;break}r={value:n,prec:i,right_a:We.right_associative.has(n)},u=n;let f=d=>r.right_a&&d.right_a?i>d.prec:i<=d.prec;for(;o.length>2&&f(o[o.length-2]);)a=o.pop(),n=o.pop().value,s=o.pop(),t={type:We.BINARY_EXP,operator:n,left:s,right:a},o.push(t);t=this.gobbleToken(),t||this.throwError("Expected expression after "+u),o.push(r,t)}for(c=o.length-1,t=o[c];c>1;)t={type:We.BINARY_EXP,operator:o[c-1].value,left:o[c-2],right:t},c-=2;return t}gobbleToken(){let t,n,i,o;if(this.gobbleSpaces(),o=this.searchHook("gobble-token"),o)return this.runHook("after-token",o);if(t=this.code,We.isDecimalDigit(t)||t===We.PERIOD_CODE)return this.gobbleNumericLiteral();if(t===We.SQUOTE_CODE||t===We.DQUOTE_CODE)o=this.gobbleStringLiteral();else if(t===We.OBRACK_CODE)o=this.gobbleArray();else{for(n=this.expr.substr(this.index,We.max_unop_len),i=n.length;i>0;){if(We.unary_ops.hasOwnProperty(n)&&(!We.isIdentifierStart(this.code)||this.index+n.length<this.expr.length&&!We.isIdentifierPart(this.expr.charCodeAt(this.index+n.length)))){this.index+=i;let r=this.gobbleToken();return r||this.throwError("missing unaryOp argument"),this.runHook("after-token",{type:We.UNARY_EXP,operator:n,argument:r,prefix:!0})}n=n.substr(0,--i)}We.isIdentifierStart(t)?(o=this.gobbleIdentifier(),We.literals.hasOwnProperty(o.name)?o={type:We.LITERAL,value:We.literals[o.name],raw:o.name}:o.name===We.this_str&&(o={type:We.THIS_EXP})):t===We.OPAREN_CODE&&(o=this.gobbleGroup())}return o?(o=this.gobbleTokenProperty(o),this.runHook("after-token",o)):this.runHook("after-token",!1)}gobbleTokenProperty(t){this.gobbleSpaces();let n=this.code;for(;n===We.PERIOD_CODE||n===We.OBRACK_CODE||n===We.OPAREN_CODE||n===We.QUMARK_CODE;){let i;if(n===We.QUMARK_CODE){if(this.expr.charCodeAt(this.index+1)!==We.PERIOD_CODE)break;i=!0,this.index+=2,this.gobbleSpaces(),n=this.code}this.index++,n===We.OBRACK_CODE?(t={type:We.MEMBER_EXP,computed:!0,object:t,property:this.gobbleExpression()},this.gobbleSpaces(),n=this.code,n!==We.CBRACK_CODE&&this.throwError("Unclosed ["),this.index++):n===We.OPAREN_CODE?t={type:We.CALL_EXP,arguments:this.gobbleArguments(We.CPAREN_CODE),callee:t}:(n===We.PERIOD_CODE||i)&&(i&&this.index--,this.gobbleSpaces(),t={type:We.MEMBER_EXP,computed:!1,object:t,property:this.gobbleIdentifier()}),i&&(t.optional=!0),this.gobbleSpaces(),n=this.code}return t}gobbleNumericLiteral(){let t="",n,i;for(;We.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(this.code===We.PERIOD_CODE)for(t+=this.expr.charAt(this.index++);We.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(n=this.char,n==="e"||n==="E"){for(t+=this.expr.charAt(this.index++),n=this.char,(n==="+"||n==="-")&&(t+=this.expr.charAt(this.index++));We.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);We.isDecimalDigit(this.expr.charCodeAt(this.index-1))||this.throwError("Expected exponent ("+t+this.char+")")}return i=this.code,We.isIdentifierStart(i)?this.throwError("Variable names cannot start with a number ("+t+this.char+")"):(i===We.PERIOD_CODE||t.length===1&&t.charCodeAt(0)===We.PERIOD_CODE)&&this.throwError("Unexpected period"),{type:We.LITERAL,value:parseFloat(t),raw:t}}gobbleStringLiteral(){let t="",n=this.index,i=this.expr.charAt(this.index++),o=!1;for(;this.index<this.expr.length;){let r=this.expr.charAt(this.index++);if(r===i){o=!0;break}else if(r==="\\")switch(r=this.expr.charAt(this.index++),r){case"n":t+=` +`;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:t+=r}else t+=r}return o||this.throwError('Unclosed quote after "'+t+'"'),{type:We.LITERAL,value:t,raw:this.expr.substring(n,this.index)}}gobbleIdentifier(){let t=this.code,n=this.index;for(We.isIdentifierStart(t)?this.index++:this.throwError("Unexpected "+this.char);this.index<this.expr.length&&(t=this.code,We.isIdentifierPart(t));)this.index++;return{type:We.IDENTIFIER,name:this.expr.slice(n,this.index)}}gobbleArguments(t){let n=[],i=!1,o=0;for(;this.index<this.expr.length;){this.gobbleSpaces();let r=this.code;if(r===t){i=!0,this.index++,t===We.CPAREN_CODE&&o&&o>=n.length&&this.throwError("Unexpected token "+String.fromCharCode(t));break}else if(r===We.COMMA_CODE){if(this.index++,o++,o!==n.length){if(t===We.CPAREN_CODE)this.throwError("Unexpected token ,");else if(t===We.CBRACK_CODE)for(let s=n.length;s<o;s++)n.push(null)}}else if(n.length!==o&&o!==0)this.throwError("Expected comma");else{let s=this.gobbleExpression();(!s||s.type===We.COMPOUND)&&this.throwError("Expected comma"),n.push(s)}}return i||this.throwError("Expected "+String.fromCharCode(t)),n}gobbleGroup(){this.index++;let t=this.gobbleExpressions(We.CPAREN_CODE);if(this.code===We.CPAREN_CODE)return this.index++,t.length===1?t[0]:t.length?{type:We.SEQUENCE_EXP,expressions:t}:!1;this.throwError("Unclosed (")}gobbleArray(){return this.index++,{type:We.ARRAY_EXP,elements:this.gobbleArguments(We.CBRACK_CODE)}}},vMe=new t5;Object.assign(We,{hooks:vMe,plugins:new n5(We),COMPOUND:"Compound",SEQUENCE_EXP:"SequenceExpression",IDENTIFIER:"Identifier",MEMBER_EXP:"MemberExpression",LITERAL:"Literal",THIS_EXP:"ThisExpression",CALL_EXP:"CallExpression",UNARY_EXP:"UnaryExpression",BINARY_EXP:"BinaryExpression",ARRAY_EXP:"ArrayExpression",TAB_CODE:9,LF_CODE:10,CR_CODE:13,SPACE_CODE:32,PERIOD_CODE:46,COMMA_CODE:44,SQUOTE_CODE:39,DQUOTE_CODE:34,OPAREN_CODE:40,CPAREN_CODE:41,OBRACK_CODE:91,CBRACK_CODE:93,QUMARK_CODE:63,SEMCOL_CODE:59,COLON_CODE:58,unary_ops:{"-":1,"!":1,"~":1,"+":1},binary_ops:{"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},right_associative:new Set,additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});We.max_unop_len=We.getMaxKeyLen(We.unary_ops);We.max_binop_len=We.getMaxKeyLen(We.binary_ops);var P_=e=>new We(e).parse(),DMe=Object.getOwnPropertyNames(We);DMe.forEach(e=>{P_[e]===void 0&&e!=="prototype"&&(P_[e]=We[e])});P_.Jsep=We;var IMe="ConditionalExpression",PMe={name:"ternary",init(e){e.hooks.add("after-expression",function(n){if(n.node&&this.code===e.QUMARK_CODE){this.index++;let i=n.node,o=this.gobbleExpression();if(o||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===e.COLON_CODE){this.index++;let r=this.gobbleExpression();if(r||this.throwError("Expected expression"),n.node={type:IMe,test:i,consequent:o,alternate:r},i.operator&&e.binary_ops[i.operator]<=.9){let s=i;for(;s.right.operator&&e.binary_ops[s.right.operator]<=.9;)s=s.right;n.node.test=s.right,s.right=n.node,n.node=i}}else this.throwError("Expected :")}})}};P_.plugins.register(PMe);var OMe={VARIABLE:0,UNARY:1,BINARY:2,TERNARY:3,CONDITIONAL:4,MEMBER:5,FUNCTION_CALL:6,ARRAY:7,REGEX:8,VARIABLE_IN_STRING:9,LITERAL_NULL:10,LITERAL_BOOLEAN:11,LITERAL_NUMBER:12,LITERAL_STRING:13,LITERAL_COLOR:14,LITERAL_VECTOR:15,LITERAL_REGEX:16,LITERAL_UNDEFINED:17,BUILTIN_VARIABLE:18},yt=Object.freeze(OMe);function Hf(e,t){this._expression=e,e=WMe(e,t),e=YMe(jMe(e)),P_.addBinaryOp("=~",0),P_.addBinaryOp("!~",0);let n;try{n=P_(e)}catch(i){throw new de(i)}this._runtimeAst=yi(this,n)}Object.defineProperties(Hf.prototype,{expression:{get:function(){return this._expression}}});var Pn={arrayIndex:0,arrayArray:[[]],cartesian2Index:0,cartesian3Index:0,cartesian4Index:0,cartesian2Array:[new H],cartesian3Array:[new m],cartesian4Array:[new re],reset:function(){this.arrayIndex=0,this.cartesian2Index=0,this.cartesian3Index=0,this.cartesian4Index=0},getArray:function(){this.arrayIndex>=this.arrayArray.length&&this.arrayArray.push([]);let e=this.arrayArray[this.arrayIndex++];return e.length=0,e},getCartesian2:function(){return this.cartesian2Index>=this.cartesian2Array.length&&this.cartesian2Array.push(new H),this.cartesian2Array[this.cartesian2Index++]},getCartesian3:function(){return this.cartesian3Index>=this.cartesian3Array.length&&this.cartesian3Array.push(new m),this.cartesian3Array[this.cartesian3Index++]},getCartesian4:function(){return this.cartesian4Index>=this.cartesian4Array.length&&this.cartesian4Array.push(new re),this.cartesian4Array[this.cartesian4Index++]}};Hf.prototype.evaluate=function(e,t){Pn.reset();let n=this._runtimeAst.evaluate(e);return t instanceof z&&n instanceof re?z.fromCartesian4(n,t):n instanceof H||n instanceof m||n instanceof re?n.clone(t):n};Hf.prototype.evaluateColor=function(e,t){Pn.reset();let n=this._runtimeAst.evaluate(e);return z.fromCartesian4(n,t)};Hf.prototype.getShaderFunction=function(e,t,n,i){let o=this.getShaderExpression(t,n);return o=`${i} ${e} +{ + return ${o}; +} +`,o};Hf.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};Hf.prototype.getVariables=function(){let e=[];return this._runtimeAst.getVariables(e),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var MMe=["!","-","+"],oee=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],kR=/\${(.*?)}/g,RMe=/\\/g,BMe="@#%",LMe=/@#%/g,zR=new z,HR={abs:ps(Math.abs),sqrt:ps(Math.sqrt),cos:ps(Math.cos),sin:ps(Math.sin),tan:ps(Math.tan),acos:ps(Math.acos),asin:ps(Math.asin),atan:ps(Math.atan),radians:ps(P.toRadians),degrees:ps(P.toDegrees),sign:ps(P.sign),floor:ps(Math.floor),ceil:ps(Math.ceil),round:ps(Math.round),exp:ps(Math.exp),exp2:ps(FMe),log:ps(Math.log),log2:ps(UMe),fract:ps(NMe),length:VMe,normalize:kMe},GR={atan2:UR(Math.atan2,!1),pow:UR(Math.pow,!1),min:UR(Math.min,!0),max:UR(Math.max,!0),distance:zMe,dot:HMe,cross:GMe},r5={clamp:ree(P.clamp,!0),mix:ree(P.lerp,!0)};function NMe(e){return e-Math.floor(e)}function FMe(e){return Math.pow(2,e)}function UMe(e){return P.log2(e)}function ps(e){return function(t,n){if(typeof n=="number")return e(n);if(n instanceof H)return H.fromElements(e(n.x),e(n.y),Pn.getCartesian2());if(n instanceof m)return m.fromElements(e(n.x),e(n.y),e(n.z),Pn.getCartesian3());if(n instanceof re)return re.fromElements(e(n.x),e(n.y),e(n.z),e(n.w),Pn.getCartesian4());throw new de(`Function "${t}" requires a vector or number argument. Argument is ${n}.`)}}function UR(e,t){return function(n,i,o){if(t&&typeof o=="number"){if(typeof i=="number")return e(i,o);if(i instanceof H)return H.fromElements(e(i.x,o),e(i.y,o),Pn.getCartesian2());if(i instanceof m)return m.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),Pn.getCartesian3());if(i instanceof re)return re.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),e(i.w,o),Pn.getCartesian4())}if(typeof i=="number"&&typeof o=="number")return e(i,o);if(i instanceof H&&o instanceof H)return H.fromElements(e(i.x,o.x),e(i.y,o.y),Pn.getCartesian2());if(i instanceof m&&o instanceof m)return m.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),Pn.getCartesian3());if(i instanceof re&&o instanceof re)return re.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),e(i.w,o.w),Pn.getCartesian4());throw new de(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i} and ${o}.`)}}function ree(e,t){return function(n,i,o,r){if(t&&typeof r=="number"){if(typeof i=="number"&&typeof o=="number")return e(i,o,r);if(i instanceof H&&o instanceof H)return H.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),Pn.getCartesian2());if(i instanceof m&&o instanceof m)return m.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),Pn.getCartesian3());if(i instanceof re&&o instanceof re)return re.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),e(i.w,o.w,r),Pn.getCartesian4())}if(typeof i=="number"&&typeof o=="number"&&typeof r=="number")return e(i,o,r);if(i instanceof H&&o instanceof H&&r instanceof H)return H.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),Pn.getCartesian2());if(i instanceof m&&o instanceof m&&r instanceof m)return m.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),Pn.getCartesian3());if(i instanceof re&&o instanceof re&&r instanceof re)return re.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),e(i.w,o.w,r.w),Pn.getCartesian4());throw new de(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i}, ${o}, and ${r}.`)}}function VMe(e,t){if(typeof t=="number")return Math.abs(t);if(t instanceof H)return H.magnitude(t);if(t instanceof m)return m.magnitude(t);if(t instanceof re)return re.magnitude(t);throw new de(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function kMe(e,t){if(typeof t=="number")return 1;if(t instanceof H)return H.normalize(t,Pn.getCartesian2());if(t instanceof m)return m.normalize(t,Pn.getCartesian3());if(t instanceof re)return re.normalize(t,Pn.getCartesian4());throw new de(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function zMe(e,t,n){if(typeof t=="number"&&typeof n=="number")return Math.abs(t-n);if(t instanceof H&&n instanceof H)return H.distance(t,n);if(t instanceof m&&n instanceof m)return m.distance(t,n);if(t instanceof re&&n instanceof re)return re.distance(t,n);throw new de(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function HMe(e,t,n){if(typeof t=="number"&&typeof n=="number")return t*n;if(t instanceof H&&n instanceof H)return H.dot(t,n);if(t instanceof m&&n instanceof m)return m.dot(t,n);if(t instanceof re&&n instanceof re)return re.dot(t,n);throw new de(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function GMe(e,t,n){if(t instanceof m&&n instanceof m)return m.cross(t,n,Pn.getCartesian3());throw new de(`Function "${e}" requires vec3 arguments. Arguments are ${t} and ${n}.`)}function xt(e,t,n,i,o){this._type=e,this._value=t,this._left=n,this._right=i,this._test=o,this.evaluate=void 0,nRe(this)}function WMe(e,t){if(!l(t))return e;for(let n in t)if(t.hasOwnProperty(n)){let i=new RegExp(`\\$\\{${n}\\}`,"g"),o=`(${t[n]})`;l(o)&&(e=e.replace(i,o))}return e}function jMe(e){return e.replace(RMe,BMe)}function o5(e){return e.replace(LMe,"\\")}function YMe(e){let t=e,n="",i=t.indexOf("${");for(;i>=0;){let o=t.indexOf("'"),r=t.indexOf('"'),s;if(o>=0&&o<i)s=t.indexOf("'",o+1),n+=t.substr(0,s+1),t=t.substr(s+1),i=t.indexOf("${");else if(r>=0&&r<i)s=t.indexOf('"',r+1),n+=t.substr(0,s+1),t=t.substr(s+1),i=t.indexOf("${");else{n+=t.substr(0,i);let a=t.indexOf("}");if(a<0)throw new de("Unmatched {.");n+=`czm_${t.substr(i+2,a-(i+2))}`,t=t.substr(a+1),i=t.indexOf("${")}}return n+=t,n}function qMe(e){let t=typeof e.value;if(e.value===null)return new xt(yt.LITERAL_NULL,null);if(t==="boolean")return new xt(yt.LITERAL_BOOLEAN,e.value);if(t==="number")return new xt(yt.LITERAL_NUMBER,e.value);if(t==="string")return e.value.indexOf("${")>=0?new xt(yt.VARIABLE_IN_STRING,e.value):new xt(yt.LITERAL_STRING,o5(e.value))}function XMe(e,t){let n=t.arguments,i=n.length,o,r,s,a;if(t.callee.type==="MemberExpression"){o=t.callee.property.name;let c=t.callee.object;if(o==="test"||o==="exec"){if(!l(c.callee)||c.callee.name!=="regExp")throw new de(`${o} is not a function.`);return i===0?o==="test"?new xt(yt.LITERAL_BOOLEAN,!1):new xt(yt.LITERAL_NULL,null):(s=yi(e,c),a=yi(e,n[0]),new xt(yt.FUNCTION_CALL,o,s,a))}else if(o==="toString")return r=yi(e,c),new xt(yt.FUNCTION_CALL,o,r);throw new de(`Unexpected function call "${o}".`)}if(o=t.callee.name,o==="color"){if(i===0)return new xt(yt.LITERAL_COLOR,o);if(r=yi(e,n[0]),l(n[1])){let c=yi(e,n[1]);return new xt(yt.LITERAL_COLOR,o,[r,c])}return new xt(yt.LITERAL_COLOR,o,[r])}else if(o==="rgb"||o==="hsl"){if(i<3)throw new de(`${o} requires three arguments.`);return r=[yi(e,n[0]),yi(e,n[1]),yi(e,n[2])],new xt(yt.LITERAL_COLOR,o,r)}else if(o==="rgba"||o==="hsla"){if(i<4)throw new de(`${o} requires four arguments.`);return r=[yi(e,n[0]),yi(e,n[1]),yi(e,n[2]),yi(e,n[3])],new xt(yt.LITERAL_COLOR,o,r)}else if(o==="vec2"||o==="vec3"||o==="vec4"){r=new Array(i);for(let c=0;c<i;++c)r[c]=yi(e,n[c]);return new xt(yt.LITERAL_VECTOR,o,r)}else{if(o==="isNaN"||o==="isFinite")return i===0?o==="isNaN"?new xt(yt.LITERAL_BOOLEAN,!0):new xt(yt.LITERAL_BOOLEAN,!1):(r=yi(e,n[0]),new xt(yt.UNARY,o,r));if(o==="isExactClass"||o==="isClass"){if(i<1||i>1)throw new de(`${o} requires exactly one argument.`);return r=yi(e,n[0]),new xt(yt.UNARY,o,r)}else if(o==="getExactClassName"){if(i>0)throw new de(`${o} does not take any argument.`);return new xt(yt.UNARY,o)}else if(l(HR[o])){if(i!==1)throw new de(`${o} requires exactly one argument.`);return r=yi(e,n[0]),new xt(yt.UNARY,o,r)}else if(l(GR[o])){if(i!==2)throw new de(`${o} requires exactly two arguments.`);return s=yi(e,n[0]),a=yi(e,n[1]),new xt(yt.BINARY,o,s,a)}else if(l(r5[o])){if(i!==3)throw new de(`${o} requires exactly three arguments.`);s=yi(e,n[0]),a=yi(e,n[1]);let c=yi(e,n[2]);return new xt(yt.TERNARY,o,s,a,c)}else{if(o==="Boolean")return i===0?new xt(yt.LITERAL_BOOLEAN,!1):(r=yi(e,n[0]),new xt(yt.UNARY,o,r));if(o==="Number")return i===0?new xt(yt.LITERAL_NUMBER,0):(r=yi(e,n[0]),new xt(yt.UNARY,o,r));if(o==="String")return i===0?new xt(yt.LITERAL_STRING,""):(r=yi(e,n[0]),new xt(yt.UNARY,o,r));if(o==="regExp")return KMe(e,t)}}throw new de(`Unexpected function call "${o}".`)}function KMe(e,t){let n=t.arguments;if(n.length===0)return new xt(yt.LITERAL_REGEX,new RegExp);let i=yi(e,n[0]),o;if(n.length>1){let r=yi(e,n[1]);if(i5(i)&&i5(r)){try{o=new RegExp(o5(String(i._value)),r._value)}catch(s){throw new de(s)}return new xt(yt.LITERAL_REGEX,o)}return new xt(yt.REGEX,i,r)}if(i5(i)){try{o=new RegExp(o5(String(i._value)))}catch(r){throw new de(r)}return new xt(yt.LITERAL_REGEX,o)}return new xt(yt.REGEX,i)}function JMe(e){if(eRe(e.name)){let t=tRe(e.name);return t.substr(0,8)==="tiles3d_"?new xt(yt.BUILTIN_VARIABLE,t):new xt(yt.VARIABLE,t)}else{if(e.name==="NaN")return new xt(yt.LITERAL_NUMBER,NaN);if(e.name==="Infinity")return new xt(yt.LITERAL_NUMBER,1/0);if(e.name==="undefined")return new xt(yt.LITERAL_UNDEFINED,void 0)}throw new de(`${e.name} is not defined.`)}function ZMe(e){let t=e.property.name;if(t==="PI")return new xt(yt.LITERAL_NUMBER,Math.PI);if(t==="E")return new xt(yt.LITERAL_NUMBER,Math.E)}function QMe(e){if(e.property.name==="POSITIVE_INFINITY")return new xt(yt.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function $Me(e,t){if(t.object.name==="Math")return ZMe(t);if(t.object.name==="Number")return QMe(t);let n,i=yi(e,t.object);return t.computed?(n=yi(e,t.property),new xt(yt.MEMBER,"brackets",i,n)):(n=new xt(yt.LITERAL_STRING,t.property.name),new xt(yt.MEMBER,"dot",i,n))}function i5(e){return e._type>=yt.LITERAL_NULL}function eRe(e){return e.substr(0,4)==="czm_"}function tRe(e){return e.substr(4)}function yi(e,t){let n,i,o,r;if(t.type==="Literal")n=qMe(t);else if(t.type==="CallExpression")n=XMe(e,t);else if(t.type==="Identifier")n=JMe(t);else if(t.type==="UnaryExpression"){i=t.operator;let s=yi(e,t.argument);if(MMe.indexOf(i)>-1)n=new xt(yt.UNARY,i,s);else throw new de(`Unexpected operator "${i}".`)}else if(t.type==="BinaryExpression")if(i=t.operator,o=yi(e,t.left),r=yi(e,t.right),oee.indexOf(i)>-1)n=new xt(yt.BINARY,i,o,r);else throw new de(`Unexpected operator "${i}".`);else if(t.type==="LogicalExpression")i=t.operator,o=yi(e,t.left),r=yi(e,t.right),oee.indexOf(i)>-1&&(n=new xt(yt.BINARY,i,o,r));else if(t.type==="ConditionalExpression"){let s=yi(e,t.test);o=yi(e,t.consequent),r=yi(e,t.alternate),n=new xt(yt.CONDITIONAL,"?",o,r,s)}else if(t.type==="MemberExpression")n=$Me(e,t);else if(t.type==="ArrayExpression"){let s=[];for(let a=0;a<t.elements.length;a++)s[a]=yi(e,t.elements[a]);n=new xt(yt.ARRAY,s)}else throw t.type==="Compound"?new de("Provide exactly one expression."):new de("Cannot parse expression.");return n}function nRe(e){e._type===yt.CONDITIONAL?e.evaluate=e._evaluateConditional:e._type===yt.FUNCTION_CALL?e._value==="test"?e.evaluate=e._evaluateRegExpTest:e._value==="exec"?e.evaluate=e._evaluateRegExpExec:e._value==="toString"&&(e.evaluate=e._evaluateToString):e._type===yt.UNARY?e._value==="!"?e.evaluate=e._evaluateNot:e._value==="-"?e.evaluate=e._evaluateNegative:e._value==="+"?e.evaluate=e._evaluatePositive:e._value==="isNaN"?e.evaluate=e._evaluateNaN:e._value==="isFinite"?e.evaluate=e._evaluateIsFinite:e._value==="isExactClass"?e.evaluate=e._evaluateIsExactClass:e._value==="isClass"?e.evaluate=e._evaluateIsClass:e._value==="getExactClassName"?e.evaluate=e._evaluateGetExactClassName:e._value==="Boolean"?e.evaluate=e._evaluateBooleanConversion:e._value==="Number"?e.evaluate=e._evaluateNumberConversion:e._value==="String"?e.evaluate=e._evaluateStringConversion:l(HR[e._value])&&(e.evaluate=oRe(e._value)):e._type===yt.BINARY?e._value==="+"?e.evaluate=e._evaluatePlus:e._value==="-"?e.evaluate=e._evaluateMinus:e._value==="*"?e.evaluate=e._evaluateTimes:e._value==="/"?e.evaluate=e._evaluateDivide:e._value==="%"?e.evaluate=e._evaluateMod:e._value==="==="?e.evaluate=e._evaluateEqualsStrict:e._value==="!=="?e.evaluate=e._evaluateNotEqualsStrict:e._value==="<"?e.evaluate=e._evaluateLessThan:e._value==="<="?e.evaluate=e._evaluateLessThanOrEquals:e._value===">"?e.evaluate=e._evaluateGreaterThan:e._value===">="?e.evaluate=e._evaluateGreaterThanOrEquals:e._value==="&&"?e.evaluate=e._evaluateAnd:e._value==="||"?e.evaluate=e._evaluateOr:e._value==="=~"?e.evaluate=e._evaluateRegExpMatch:e._value==="!~"?e.evaluate=e._evaluateRegExpNotMatch:l(GR[e._value])&&(e.evaluate=rRe(e._value)):e._type===yt.TERNARY?e.evaluate=sRe(e._value):e._type===yt.MEMBER?e._value==="brackets"?e.evaluate=e._evaluateMemberBrackets:e.evaluate=e._evaluateMemberDot:e._type===yt.ARRAY?e.evaluate=e._evaluateArray:e._type===yt.VARIABLE?e.evaluate=e._evaluateVariable:e._type===yt.VARIABLE_IN_STRING?e.evaluate=e._evaluateVariableString:e._type===yt.LITERAL_COLOR?e.evaluate=e._evaluateLiteralColor:e._type===yt.LITERAL_VECTOR?e.evaluate=e._evaluateLiteralVector:e._type===yt.LITERAL_STRING?e.evaluate=e._evaluateLiteralString:e._type===yt.REGEX?e.evaluate=e._evaluateRegExp:e._type===yt.BUILTIN_VARIABLE?e._value==="tiles3d_tileset_time"&&(e.evaluate=iRe):e.evaluate=e._evaluateLiteral}function iRe(e){return l(e)?e.content.tileset.timeSinceLoad:0}function oRe(e){let t=HR[e];return function(n){let i=this._left.evaluate(n);return t(e,i)}}function rRe(e){let t=GR[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n);return t(e,i,o)}}function sRe(e){let t=r5[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n),r=this._test.evaluate(n);return t(e,i,o,r)}}function WR(e,t){if(l(e))return e.getPropertyInherited(t)}xt.prototype._evaluateLiteral=function(){return this._value};xt.prototype._evaluateLiteralColor=function(e){let t=zR,n=this._left;if(this._value==="color")l(n)?n.length>1?(z.fromCssColorString(n[0].evaluate(e),t),t.alpha=n[1].evaluate(e)):z.fromCssColorString(n[0].evaluate(e),t):z.fromBytes(255,255,255,255,t);else if(this._value==="rgb")z.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),255,t);else if(this._value==="rgba"){let i=n[3].evaluate(e)*255;z.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),i,t)}else this._value==="hsl"?z.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),1,t):this._value==="hsla"&&z.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),n[3].evaluate(e),t);return re.fromColor(t,Pn.getCartesian4())};xt.prototype._evaluateLiteralVector=function(e){let t=Pn.getArray(),n=this._value,i=this._left,o=i.length;for(let a=0;a<o;++a){let c=i[a].evaluate(e);if(typeof c=="number")t.push(c);else if(c instanceof H)t.push(c.x,c.y);else if(c instanceof m)t.push(c.x,c.y,c.z);else if(c instanceof re)t.push(c.x,c.y,c.z,c.w);else throw new de(`${n} argument must be a vector or number. Argument is ${c}.`)}let r=t.length,s=parseInt(n.charAt(3));if(r===0)throw new de(`Invalid ${n} constructor. No valid arguments.`);if(r<s&&r>1)throw new de(`Invalid ${n} constructor. Not enough arguments.`);if(r>s&&o>1)throw new de(`Invalid ${n} constructor. Too many arguments.`);if(r===1){let a=t[0];t.push(a,a,a)}if(n==="vec2")return H.fromArray(t,0,Pn.getCartesian2());if(n==="vec3")return m.fromArray(t,0,Pn.getCartesian3());if(n==="vec4")return re.fromArray(t,0,Pn.getCartesian4())};xt.prototype._evaluateLiteralString=function(){return this._value};xt.prototype._evaluateVariableString=function(e){let t=this._value,n=kR.exec(t);for(;n!==null;){let i=n[0],o=n[1],r=WR(e,o);l(r)||(r=""),t=t.replace(i,r),n=kR.exec(t)}return t};xt.prototype._evaluateVariable=function(e){return WR(e,this._value)};function h0(e){return e._value==="feature"}xt.prototype._evaluateMemberDot=function(e){if(h0(this._left))return WR(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof H||t instanceof m||t instanceof re){if(n==="r")return t.x;if(n==="g")return t.y;if(n==="b")return t.z;if(n==="a")return t.w}return t[n]};xt.prototype._evaluateMemberBrackets=function(e){if(h0(this._left))return WR(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof H||t instanceof m||t instanceof re){if(n===0||n==="r")return t.x;if(n===1||n==="g")return t.y;if(n===2||n==="b")return t.z;if(n===3||n==="a")return t.w}return t[n]};xt.prototype._evaluateArray=function(e){let t=[];for(let n=0;n<this._value.length;n++)t[n]=this._value[n].evaluate(e);return t};xt.prototype._evaluateNot=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new de(`Operator "!" requires a boolean argument. Argument is ${t}.`);return!t};xt.prototype._evaluateNegative=function(e){let t=this._left.evaluate(e);if(t instanceof H)return H.negate(t,Pn.getCartesian2());if(t instanceof m)return m.negate(t,Pn.getCartesian3());if(t instanceof re)return re.negate(t,Pn.getCartesian4());if(typeof t=="number")return-t;throw new de(`Operator "-" requires a vector or number argument. Argument is ${t}.`)};xt.prototype._evaluatePositive=function(e){let t=this._left.evaluate(e);if(!(t instanceof H||t instanceof m||t instanceof re||typeof t=="number"))throw new de(`Operator "+" requires a vector or number argument. Argument is ${t}.`);return t};xt.prototype._evaluateLessThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new de(`Operator "<" requires number arguments. Arguments are ${t} and ${n}.`);return t<n};xt.prototype._evaluateLessThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new de(`Operator "<=" requires number arguments. Arguments are ${t} and ${n}.`);return t<=n};xt.prototype._evaluateGreaterThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new de(`Operator ">" requires number arguments. Arguments are ${t} and ${n}.`);return t>n};xt.prototype._evaluateGreaterThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new de(`Operator ">=" requires number arguments. Arguments are ${t} and ${n}.`);return t>=n};xt.prototype._evaluateOr=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new de(`Operator "||" requires boolean arguments. First argument is ${t}.`);if(t)return!0;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new de(`Operator "||" requires boolean arguments. Second argument is ${n}.`);return t||n};xt.prototype._evaluateAnd=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new de(`Operator "&&" requires boolean arguments. First argument is ${t}.`);if(!t)return!1;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new de(`Operator "&&" requires boolean arguments. Second argument is ${n}.`);return t&&n};xt.prototype._evaluatePlus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.add(t,n,Pn.getCartesian2());if(n instanceof m&&t instanceof m)return m.add(t,n,Pn.getCartesian3());if(n instanceof re&&t instanceof re)return re.add(t,n,Pn.getCartesian4());if(typeof t=="string"||typeof n=="string")return t+n;if(typeof t=="number"&&typeof n=="number")return t+n;throw new de(`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateMinus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.subtract(t,n,Pn.getCartesian2());if(n instanceof m&&t instanceof m)return m.subtract(t,n,Pn.getCartesian3());if(n instanceof re&&t instanceof re)return re.subtract(t,n,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t-n;throw new de(`Operator "-" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateTimes=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.multiplyComponents(t,n,Pn.getCartesian2());if(n instanceof H&&typeof t=="number")return H.multiplyByScalar(n,t,Pn.getCartesian2());if(t instanceof H&&typeof n=="number")return H.multiplyByScalar(t,n,Pn.getCartesian2());if(n instanceof m&&t instanceof m)return m.multiplyComponents(t,n,Pn.getCartesian3());if(n instanceof m&&typeof t=="number")return m.multiplyByScalar(n,t,Pn.getCartesian3());if(t instanceof m&&typeof n=="number")return m.multiplyByScalar(t,n,Pn.getCartesian3());if(n instanceof re&&t instanceof re)return re.multiplyComponents(t,n,Pn.getCartesian4());if(n instanceof re&&typeof t=="number")return re.multiplyByScalar(n,t,Pn.getCartesian4());if(t instanceof re&&typeof n=="number")return re.multiplyByScalar(t,n,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t*n;throw new de(`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateDivide=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.divideComponents(t,n,Pn.getCartesian2());if(t instanceof H&&typeof n=="number")return H.divideByScalar(t,n,Pn.getCartesian2());if(n instanceof m&&t instanceof m)return m.divideComponents(t,n,Pn.getCartesian3());if(t instanceof m&&typeof n=="number")return m.divideByScalar(t,n,Pn.getCartesian3());if(n instanceof re&&t instanceof re)return re.divideComponents(t,n,Pn.getCartesian4());if(t instanceof re&&typeof n=="number")return re.divideByScalar(t,n,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t/n;throw new de(`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateMod=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof H&&t instanceof H)return H.fromElements(t.x%n.x,t.y%n.y,Pn.getCartesian2());if(n instanceof m&&t instanceof m)return m.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,Pn.getCartesian3());if(n instanceof re&&t instanceof re)return re.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,t.w%n.w,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t%n;throw new de(`Operator "%" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof H&&t instanceof H||n instanceof m&&t instanceof m||n instanceof re&&t instanceof re?t.equals(n):t===n};xt.prototype._evaluateNotEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof H&&t instanceof H||n instanceof m&&t instanceof m||n instanceof re&&t instanceof re?!t.equals(n):t!==n};xt.prototype._evaluateConditional=function(e){let t=this._test.evaluate(e);if(typeof t!="boolean")throw new de(`Conditional argument of conditional expression must be a boolean. Argument is ${t}.`);return t?this._left.evaluate(e):this._right.evaluate(e)};xt.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))};xt.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))};xt.prototype._evaluateIsExactClass=function(e){return l(e)?e.isExactClass(this._left.evaluate(e)):!1};xt.prototype._evaluateIsClass=function(e){return l(e)?e.isClass(this._left.evaluate(e)):!1};xt.prototype._evaluateGetExactClassName=function(e){if(l(e))return e.getExactClassName()};xt.prototype._evaluateBooleanConversion=function(e){return!!this._left.evaluate(e)};xt.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))};xt.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))};xt.prototype._evaluateRegExp=function(e){let t=this._value.evaluate(e),n="";l(this._left)&&(n=this._left.evaluate(e));let i;try{i=new RegExp(t,n)}catch(o){throw new de(o)}return i};xt.prototype._evaluateRegExpTest=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new de(`RegExp.test requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);return t.test(n)};xt.prototype._evaluateRegExpMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return t.test(n);if(n instanceof RegExp&&typeof t=="string")return n.test(t);throw new de(`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateRegExpNotMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return!t.test(n);if(n instanceof RegExp&&typeof t=="string")return!n.test(t);throw new de(`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};xt.prototype._evaluateRegExpExec=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new de(`RegExp.exec requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);let i=t.exec(n);return l(i)?i[1]:null};xt.prototype._evaluateToString=function(e){let t=this._left.evaluate(e);if(t instanceof RegExp||t instanceof H||t instanceof m||t instanceof re)return String(t);throw new de(`Unexpected function call "${this._value}".`)};function see(e){let t=e._left,n=t.length;for(let a=0;a<n;++a)if(t[a]._type!==yt.LITERAL_NUMBER)return;let i=t[0]._value,o=t[1]._value,r=t[2]._value,s=n===4?t[3]._value:1;return z.fromHsl(i,o,r,s,zR)}function aee(e){let t=e._left,n=t.length;for(let o=0;o<n;++o)if(t[o]._type!==yt.LITERAL_NUMBER)return;let i=zR;return i.red=t[0]._value/255,i.green=t[1]._value/255,i.blue=t[2]._value/255,i.alpha=n===4?t[3]._value:1,i}function O_(e){return e%1===0?e.toFixed(1):e.toString()}function aRe(e){let t=O_(e.red),n=O_(e.green),i=O_(e.blue);return`vec3(${t}, ${n}, ${i})`}function VR(e){let t=O_(e.red),n=O_(e.green),i=O_(e.blue),o=O_(e.alpha);return`vec4(${t}, ${n}, ${i}, ${o})`}function cee(e,t,n,i){let o=e.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=e[s].getShaderExpression(t,n,i);return r}function lee(e,t){return l(t[e])?t[e]:Hf.NULL_SENTINEL}Hf.NULL_SENTINEL="czm_infinity";xt.prototype.getShaderExpression=function(e,t,n){let i,o,r,s,a=this._type,c=this._value;l(this._left)&&(Array.isArray(this._left)?o=cee(this._left,e,t,this):o=this._left.getShaderExpression(e,t,this)),l(this._right)&&(r=this._right.getShaderExpression(e,t,this)),l(this._test)&&(s=this._test.getShaderExpression(e,t,this)),Array.isArray(this._value)&&(c=cee(this._value,e,t,this));let u,f,d;switch(a){case yt.VARIABLE:return h0(this)?void 0:lee(c,e);case yt.UNARY:if(c==="Boolean")return`bool(${o})`;if(c==="Number")return`float(${o})`;if(c==="round")return`floor(${o} + 0.5)`;if(l(HR[c]))return`${c}(${o})`;if(c==="isNaN")return`(${o} != ${o})`;if(c==="isFinite")return`(abs(${o}) < czm_infinity)`;if(c==="String"||c==="isExactClass"||c==="isClass"||c==="getExactClassName")throw new de(`Error generating style shader: "${c}" is not supported.`);return c+o;case yt.BINARY:return c==="%"?`mod(${o}, ${r})`:c==="==="?`(${o} == ${r})`:c==="!=="?`(${o} != ${r})`:c==="atan2"?`atan(${o}, ${r})`:l(GR[c])?`${c}(${o}, ${r})`:`(${o} ${c} ${r})`;case yt.TERNARY:if(l(r5[c]))return`${c}(${o}, ${r}, ${s})`;break;case yt.CONDITIONAL:return`(${s} ? ${o} : ${r})`;case yt.MEMBER:return h0(this._left)?lee(r,e):r==="r"||r==="x"||r==="0.0"?`${o}[0]`:r==="g"||r==="y"||r==="1.0"?`${o}[1]`:r==="b"||r==="z"||r==="2.0"?`${o}[2]`:r==="a"||r==="w"||r==="3.0"?`${o}[3]`:`${o}[int(${r})]`;case yt.FUNCTION_CALL:throw new de(`Error generating style shader: "${c}" is not supported.`);case yt.ARRAY:if(c.length===4)return`vec4(${c[0]}, ${c[1]}, ${c[2]}, ${c[3]})`;if(c.length===3)return`vec3(${c[0]}, ${c[1]}, ${c[2]})`;if(c.length===2)return`vec2(${c[0]}, ${c[1]})`;throw new de("Error generating style shader: Invalid array length. Array length should be 2, 3, or 4.");case yt.REGEX:throw new de("Error generating style shader: Regular expressions are not supported.");case yt.VARIABLE_IN_STRING:throw new de("Error generating style shader: Converting a variable to a string is not supported.");case yt.LITERAL_NULL:return Hf.NULL_SENTINEL;case yt.LITERAL_BOOLEAN:return c?"true":"false";case yt.LITERAL_NUMBER:return O_(c);case yt.LITERAL_STRING:if(l(n)&&n._type===yt.MEMBER&&(c==="r"||c==="g"||c==="b"||c==="a"||c==="x"||c==="y"||c==="z"||c==="w"||h0(n._left)))return c;if(i=z.fromCssColorString(c,zR),l(i))return aRe(i);throw new de("Error generating style shader: String literals are not supported.");case yt.LITERAL_COLOR:if(u=o,c==="color"){if(l(u)){if(u.length>1){let p=u[0],g=u[1];return g!=="1.0"&&(t.translucent=!0),`vec4(${p}, ${g})`}}else return"vec4(1.0)";return`vec4(${u[0]}, 1.0)`}else{if(c==="rgb")return i=aee(this),l(i)?VR(i):`vec4(${u[0]} / 255.0, ${u[1]} / 255.0, ${u[2]} / 255.0, 1.0)`;if(c==="rgba")return u[3]!=="1.0"&&(t.translucent=!0),i=aee(this),l(i)?VR(i):`vec4(${u[0]} / 255.0, ${u[1]} / 255.0, ${u[2]} / 255.0, ${u[3]})`;if(c==="hsl")return i=see(this),l(i)?VR(i):`vec4(czm_HSLToRGB(vec3(${u[0]}, ${u[1]}, ${u[2]})), 1.0)`;if(c==="hsla")return i=see(this),l(i)?(i.alpha!==1&&(t.translucent=!0),VR(i)):(u[3]!=="1.0"&&(t.translucent=!0),`vec4(czm_HSLToRGB(vec3(${u[0]}, ${u[1]}, ${u[2]})), ${u[3]})`)}break;case yt.LITERAL_VECTOR:f=o.length,d=`${c}(`;for(let p=0;p<f;++p)d+=o[p],p<f-1&&(d+=", ");return d+=")",d;case yt.LITERAL_REGEX:throw new de("Error generating style shader: Regular expressions are not supported.");case yt.LITERAL_UNDEFINED:return Hf.NULL_SENTINEL;case yt.BUILTIN_VARIABLE:if(c==="tiles3d_tileset_time")return c}};xt.prototype.getVariables=function(e,t){let n,i,o,r=this._type,s=this._value;if(l(this._left))if(Array.isArray(this._left))for(n=this._left,i=n.length,o=0;o<i;++o)n[o].getVariables(e,this);else this._left.getVariables(e,this);if(l(this._right)&&this._right.getVariables(e,this),l(this._test)&&this._test.getVariables(e,this),Array.isArray(this._value))for(n=this._value,i=n.length,o=0;o<i;++o)n[o].getVariables(e,this);let a;switch(r){case yt.VARIABLE:h0(this)||e.push(s);break;case yt.VARIABLE_IN_STRING:for(a=kR.exec(s);a!==null;)e.push(a[1]),a=kR.exec(s);break;case yt.LITERAL_STRING:l(t)&&t._type===yt.MEMBER&&h0(t._left)&&e.push(s);break}};var Gf=Hf;function Gh(e){e=y(e,y.EMPTY_OBJECT),this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._vertexBatchIds=e.vertexBatchIds,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=e.indexOffsets,this._batchedIndices=e.batchedIndices,this._boundingVolume=e.boundingVolume,this._boundingVolumes=e.boundingVolumes,this._center=y(e.center,m.ZERO),this._va=void 0,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._uniformMap=void 0,this._vaSwap=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._rsWireframe=void 0,this._commands=[],this._commandsIgnoreShow=[],this._pickCommands=[],this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._batchDirty=!0,this._pickCommandsDirty=!0,this._framesSinceLastRebatch=0,this._updatingAllCommands=!1,this._trianglesLength=this._indices.length/3,this._geometryByteLength=this._indices.byteLength+this._positions.byteLength+this._vertexBatchIds.byteLength,this.debugWireframe=!1,this._debugWireframe=this.debugWireframe,this._wireframeDirty=!1,this.forceRebatch=!1,this.classificationType=y(e.classificationType,zn.BOTH),this._vertexShaderSource=e._vertexShaderSource,this._fragmentShaderSource=e._fragmentShaderSource,this._attributeLocations=e._attributeLocations,this._uniformMap=e._uniformMap,this._pickId=e._pickId,this._modelMatrix=e._modelMatrix,this._boundingSphere=e._boundingSphere,this._batchIdLookUp={};let t=this._batchIds.length;for(let n=0;n<t;++n){let i=this._batchIds[n];this._batchIdLookUp[i]=n}}Object.defineProperties(Gh.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}}});var cRe={position:0,a_batchId:1};function lRe(e,t){if(l(e._va))return;let n=mt.createVertexBuffer({context:t,typedArray:e._positions,usage:Fe.STATIC_DRAW}),i=mt.createVertexBuffer({context:t,typedArray:e._vertexBatchIds,usage:Fe.STATIC_DRAW}),o=mt.createIndexBuffer({context:t,typedArray:e._indices,usage:Fe.DYNAMIC_DRAW,indexDatatype:e._indices.BYTES_PER_ELEMENT===2?Ve.UNSIGNED_SHORT:Ve.UNSIGNED_INT}),r=[{index:0,vertexBuffer:n,componentDatatype:X.fromTypedArray(e._positions),componentsPerAttribute:3},{index:1,vertexBuffer:i,componentDatatype:X.fromTypedArray(e._vertexBatchIds),componentsPerAttribute:1}];e._va=new ri({context:t,attributes:r,indexBuffer:o}),t.webgl2&&(e._vaSwap=new ri({context:t,attributes:r,indexBuffer:mt.createIndexBuffer({context:t,sizeInBytes:o.sizeInBytes,usage:Fe.DYNAMIC_DRAW,indexDatatype:o.indexDatatype})})),e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0}function uRe(e,t){if(l(e._sp))return;let n=e._batchTable,i=y(e._attributeLocations,cRe),o=e._pickId,r=e._vertexShaderSource,s=e._fragmentShaderSource;if(l(r)){e._sp=Jt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i}),e._spStencil=e._sp,s=He.replaceMain(s,"czm_non_pick_main"),s=`${s}void main() +{ + czm_non_pick_main(); + out_FragColor = ${o}; +} +`,e._spPick=Jt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i});return}let a=n.getVertexShaderCallback(!1,"a_batchId",void 0)(GS),c=n.getFragmentShaderCallback(!1,void 0,!0)(t0);o=n.getPickId();let u=new He({sources:[a]}),f=new He({defines:["VECTOR_TILE"],sources:[c]});e._sp=Jt.fromCache({context:t,vertexShaderSource:u,fragmentShaderSource:f,attributeLocations:i}),u=new He({sources:[GS]}),f=new He({defines:["VECTOR_TILE"],sources:[t0]}),e._spStencil=Jt.fromCache({context:t,vertexShaderSource:u,fragmentShaderSource:f,attributeLocations:i}),c=He.replaceMain(c,"czm_non_pick_main"),c=`${c} +void main() +{ + czm_non_pick_main(); + out_FragColor = ${o}; +} +`;let d=new He({sources:[a]}),p=new He({defines:["VECTOR_TILE"],sources:[c]});e._spPick=Jt.fromCache({context:t,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:i})}function uee(e){let t=e?Hn.EQUAL:Hn.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:t,frontOperation:{fail:ht.KEEP,zFail:ht.DECREMENT_WRAP,zPass:ht.KEEP},backFunction:t,backOperation:{fail:ht.KEEP,zFail:ht.INCREMENT_WRAP,zPass:ht.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:fc.LESS_OR_EQUAL},depthMask:!1}}var fRe={stencilTest:{enabled:!0,frontFunction:Hn.NOT_EQUAL,frontOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},backFunction:Hn.NOT_EQUAL,backOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:mn.PRE_MULTIPLIED_ALPHA_BLEND},dRe={stencilTest:{enabled:!0,frontFunction:Hn.NOT_EQUAL,frontOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},backFunction:Hn.NOT_EQUAL,backOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function mRe(e){l(e._rsStencilDepthPass)||(e._rsStencilDepthPass=ze.fromCache(uee(!1)),e._rsStencilDepthPass3DTiles=ze.fromCache(uee(!0)),e._rsColorPass=ze.fromCache(fRe),e._rsPickPass=ze.fromCache(dRe))}var p0=new B,fee=new m;function hRe(e,t){if(l(e._uniformMap))return;let n={u_modifiedModelViewProjection:function(){let i=t.uniformState.view,o=t.uniformState.projection;return B.clone(i,p0),B.multiplyByPoint(p0,e._center,fee),B.setTranslation(p0,fee,p0),B.multiply(o,p0,p0),p0},u_highlightColor:function(){return e._highlightColor}};e._uniformMap=e._batchTable.getUniformMapCallback()(n)}function s5(e,t,n,i,o,r,s){let a=e.constructor.BYTES_PER_ELEMENT,c=r.length;for(let u=0;u<c;++u){let f=r[u],d=s[f],p=i[d],g=o[d],h=new e.constructor(e.buffer,a*p,g);t.set(h,n),i[d]=n,n+=g}return n}function pRe(e,t){let n=e._indices,i=e._indexOffsets,o=e._indexCounts,r=e._batchIdLookUp,s=new n.constructor(n.length),a=t.pop(),c=[a],u=s5(n,s,0,i,o,a.batchIds,r);for(a.offset=0,a.count=u;t.length>0;){let f=t.pop();if(z.equals(f.color,a.color))u=s5(n,s,u,i,o,f.batchIds,r),a.batchIds=a.batchIds.concat(f.batchIds),a.count=u-a.offset;else{let d=u;u=s5(n,s,u,i,o,f.batchIds,r),f.offset=d,f.count=u-d,c.push(f),a=f}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=c}function a5(e,t,n,i,o,r,s){let a=e.bytesPerIndex,c=r.length;for(let u=0;u<c;++u){let f=r[u],d=s[f],p=i[d],g=o[d];t.copyFromBuffer(e,p*a,n*a,g*a),i[d]=n,n+=g}return n}function _Re(e,t){let n=e._indexOffsets,i=e._indexCounts,o=e._batchIdLookUp,r=t.pop(),s=[r],a=e._va.indexBuffer,c=e._vaSwap.indexBuffer,u=a5(a,c,0,n,i,r.batchIds,o);for(r.offset=0,r.count=u;t.length>0;){let d=t.pop();if(z.equals(d.color,r.color))u=a5(a,c,u,n,i,d.batchIds,o),r.batchIds=r.batchIds.concat(d.batchIds),r.count=u-r.offset;else{let p=u;u=a5(a,c,u,n,i,d.batchIds,o),d.offset=p,d.count=u-p,s.push(d),r=d}}let f=e._va;e._va=e._vaSwap,e._vaSwap=f,e._batchedIndices=s}function gRe(e,t){return t.color.toRgba()-e.color.toRgba()}function yRe(e,t){if(!e._batchDirty)return!1;let n=e._batchedIndices,i=n.length,o=!1,r={};for(let s=0;s<i;++s){let c=n[s].color.toRgba();if(l(r[c])){o=!0;break}else r[c]=!0}if(!o)return e._batchDirty=!1,!1;if(o&&!e.forceRebatch&&e._framesSinceLastRebatch<120){++e._framesSinceLastRebatch;return}return n.sort(gRe),t.webgl2?_Re(e,n):pRe(e,n),e._framesSinceLastRebatch=0,e._batchDirty=!1,e._pickCommandsDirty=!0,e._wireframeDirty=!0,!0}function ARe(e,t){let n=yRe(e,t),i=e._commands,o=e._batchedIndices,r=o.length,s=r*2;if(l(i)&&!n&&i.length===s)return;i.length=s;let a=e._va,c=e._sp,u=y(e._modelMatrix,B.IDENTITY),f=e._uniformMap,d=e._boundingVolume;for(let p=0;p<r;++p){let g=o[p].offset,h=o[p].count,A=i[p*2];l(A)||(A=i[p*2]=new it({owner:e})),A.vertexArray=a,A.modelMatrix=u,A.offset=g,A.count=h,A.renderState=e._rsStencilDepthPass,A.shaderProgram=c,A.uniformMap=f,A.boundingVolume=d,A.cull=!1,A.pass=be.TERRAIN_CLASSIFICATION;let x=it.shallowClone(A,A.derivedCommands.tileset);x.renderState=e._rsStencilDepthPass3DTiles,x.pass=be.CESIUM_3D_TILE_CLASSIFICATION,A.derivedCommands.tileset=x;let C=i[p*2+1];l(C)||(C=i[p*2+1]=new it({owner:e})),C.vertexArray=a,C.modelMatrix=u,C.offset=g,C.count=h,C.renderState=e._rsColorPass,C.shaderProgram=c,C.uniformMap=f,C.boundingVolume=d,C.cull=!1,C.pass=be.TERRAIN_CLASSIFICATION;let T=it.shallowClone(C,C.derivedCommands.tileset);T.pass=be.CESIUM_3D_TILE_CLASSIFICATION,C.derivedCommands.tileset=T}e._commandsDirty=!0}function xRe(e,t){if(e.classificationType===zn.TERRAIN||!t.invertClassification||l(e._commandsIgnoreShow)&&!e._commandsDirty)return;let n=e._commands,i=e._commandsIgnoreShow,o=e._spStencil,r=n.length,s=i.length=r/2,a=0;for(let c=0;c<s;++c){let u=i[c]=it.shallowClone(n[a],i[c]);u.shaderProgram=o,u.pass=be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,a+=2}e._commandsDirty=!1}function CRe(e){if(!e._pickCommandsDirty)return;let t=e._indexOffsets.length,n=e._pickCommands;n.length=t*2;let i=e._va,o=e._spStencil,r=e._spPick,s=y(e._modelMatrix,B.IDENTITY),a=e._uniformMap;for(let c=0;c<t;++c){let u=e._indexOffsets[c],f=e._indexCounts[c],d=l(e._boundingVolumes)?e._boundingVolumes[c]:e.boundingVolume,p=n[c*2];l(p)||(p=n[c*2]=new it({owner:e,pickOnly:!0})),p.vertexArray=i,p.modelMatrix=s,p.offset=u,p.count=f,p.renderState=e._rsStencilDepthPass,p.shaderProgram=o,p.uniformMap=a,p.boundingVolume=d,p.pass=be.TERRAIN_CLASSIFICATION;let g=it.shallowClone(p,p.derivedCommands.tileset);g.renderState=e._rsStencilDepthPass3DTiles,g.pass=be.CESIUM_3D_TILE_CLASSIFICATION,p.derivedCommands.tileset=g;let h=n[c*2+1];l(h)||(h=n[c*2+1]=new it({owner:e,pickOnly:!0})),h.vertexArray=i,h.modelMatrix=s,h.offset=u,h.count=f,h.renderState=e._rsPickPass,h.shaderProgram=r,h.uniformMap=a,h.boundingVolume=d,h.pass=be.TERRAIN_CLASSIFICATION;let A=it.shallowClone(h,h.derivedCommands.tileset);A.pass=be.CESIUM_3D_TILE_CLASSIFICATION,h.derivedCommands.tileset=A}e._pickCommandsDirty=!1}Gh.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Bs(e,r)}};Gh.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function TRe(e,t){e._updatingAllCommands=!0;let n=e._batchIds,i=n.length,o;for(o=0;o<i;++o){let s=n[o],a=t[s];a.show=!0,a.color=z.WHITE}let r=e._batchedIndices;for(i=r.length,o=0;o<i;++o)r[o].color=z.clone(z.WHITE);e._updatingAllCommands=!1,e._batchDirty=!0}var ERe=new z,bRe=z.WHITE,SRe=!0,wRe=/\$/;Gh.prototype.applyStyle=function(e,t){if(!l(e)){TRe(this,t);return}let n=e.color,i=n instanceof Gf&&!wRe.test(n.expression);this._updatingAllCommands=i;let o=this._batchIds,r=o.length,s;for(s=0;s<r;++s){let a=o[s],c=t[a];c.color=l(e.color)?e.color.evaluateColor(c,ERe):bRe,c.show=l(e.show)?e.show.evaluate(c):SRe}if(i){let a=this._batchedIndices;for(r=a.length,s=0;s<r;++s)a[s].color=z.clone(z.WHITE);this._updatingAllCommands=!1,this._batchDirty=!0}};Gh.prototype.updateCommands=function(e,t){if(this._updatingAllCommands)return;let n=this._batchIdLookUp,i=n[e];if(!l(i))return;let o=this._indexOffsets,r=this._indexCounts,s=o[i],a=r[i],c=this._batchedIndices,u=c.length,f;for(f=0;f<u;++f){let A=c[f].offset,x=c[f].count;if(s>=A&&s<A+x)break}c.push(new Hh({color:z.clone(t),offset:s,count:a,batchIds:[e]}));let d=[],p=[],g=c[f].batchIds,h=g.length;for(let A=0;A<h;++A){let x=g[A];if(x===e)continue;let C=n[x];o[C]<s?d.push(x):p.push(x)}p.length!==0&&c.push(new Hh({color:z.clone(c[f].color),offset:s+a,count:c[f].offset+c[f].count-(s+a),batchIds:p})),d.length!==0?(c[f].count=s-c[f].offset,c[f].batchIds=d):c.splice(f,1),this._batchDirty=!0};function dee(e,t,n,i){let o=e.classificationType,r=o!==zn.CESIUM_3D_TILE,s=o!==zn.TERRAIN,a=t.commandList,c=n.length,u,f;for(f=0;f<c;++f)r&&(u=n[f],u.pass=be.TERRAIN_CLASSIFICATION,a.push(u)),s&&(u=n[f].derivedCommands.tileset,u.pass=be.CESIUM_3D_TILE_CLASSIFICATION,a.push(u));if(!(!t.invertClassification||!l(i)))for(c=i.length,f=0;f<c;++f)a.push(i[f])}function vRe(e,t){let n=e.commandList,i=t.length;for(let o=0;o<i;o+=2){let r=t[o+1];r.pass=be.OPAQUE,n.push(r)}}function DRe(e){let t=e.debugWireframe===e._debugWireframe;if(t=t&&!(e.debugWireframe&&e._wireframeDirty),t)return;l(e._rsWireframe)||(e._rsWireframe=ze.fromCache({}));let n,i;e.debugWireframe?(n=e._rsWireframe,i=Le.LINES):(n=e._rsColorPass,i=Le.TRIANGLES);let o=e._commands,r=o.length;for(let s=0;s<r;s+=2){let a=o[s+1];a.renderState=n,a.primitiveType=i}e._debugWireframe=e.debugWireframe,e._wireframeDirty=!1}Gh.prototype.update=function(e){let t=e.context;lRe(this,t),uRe(this,t),mRe(this),hRe(this,t);let n=e.passes;n.render&&(ARe(this,t),xRe(this,e),DRe(this),this._debugWireframe?vRe(e,this._commands):dee(this,e,this._commands,this._commandsIgnoreShow)),n.pick&&(CRe(this),dee(this,e,this._pickCommands))};Gh.prototype.isDestroyed=function(){return!1};Gh.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaSwap=this._vaSwap&&this._vaSwap.destroy(),ue(this)};var vC=Gh;function Fl(e){this._boxes=e.boxes,this._boxBatchIds=e.boxBatchIds,this._cylinders=e.cylinders,this._cylinderBatchIds=e.cylinderBatchIds,this._ellipsoids=e.ellipsoids,this._ellipsoidBatchIds=e.ellipsoidBatchIds,this._spheres=e.spheres,this._sphereBatchIds=e.sphereBatchIds,this._modelMatrix=e.modelMatrix,this._batchTable=e.batchTable,this._boundingVolume=e.boundingVolume,this._center=e.center,l(this._center)||(l(this._boundingVolume)?this._center=m.clone(this._boundingVolume.center):this._center=m.clone(m.ZERO)),this._boundingVolumes=void 0,this._batchedIndices=void 0,this._indices=void 0,this._indexOffsets=void 0,this._indexCounts=void 0,this._positions=void 0,this._vertexBatchIds=void 0,this._batchIds=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._verticesPromise=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=zn.BOTH}Object.defineProperties(Fl.prototype,{trianglesLength:{get:function(){return l(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});Fl.packedBoxLength=B.packedLength+m.packedLength;Fl.packedCylinderLength=B.packedLength+2;Fl.packedEllipsoidLength=B.packedLength+m.packedLength;Fl.packedSphereLength=m.packedLength+1;function IRe(e){let t=new Float64Array(B.packedLength+m.packedLength),n=0;return m.pack(e._center,t,n),n+=m.packedLength,B.pack(e._modelMatrix,t,n),t}function PRe(e,t){let n=0,i=t[n++],o=t[n++],r=e._boundingVolumes=new Array(o);for(let c=0;c<o;++c)r[c]=ae.unpack(t,n),n+=ae.packedLength;let s=t[n++],a=e._batchedIndices=new Array(s);for(let c=0;c<s;++c){let u=z.unpack(t,n);n+=z.packedLength;let f=t[n++],d=t[n++],p=t[n++],g=new Array(p);for(let h=0;h<p;++h)g[h]=t[n++];a[c]=new Hh({color:u,offset:f,count:d,batchIds:g})}return i}var ORe=new pi("createVectorTileGeometries",5),MRe=new z;function RRe(e){if(!l(e._primitive)&&!l(e._verticesPromise)){let t=e._boxes,n=e._boxBatchIds,i=e._cylinders,o=e._cylinderBatchIds,r=e._ellipsoids,s=e._ellipsoidBatchIds,a=e._spheres,c=e._sphereBatchIds,u=e._batchTableColors,f=e._packedBuffer;if(!l(u)){let h=0;l(e._boxes)&&(t=e._boxes=t.slice(),n=e._boxBatchIds=n.slice(),h+=n.length),l(e._cylinders)&&(i=e._cylinders=i.slice(),o=e._cylinderBatchIds=o.slice(),h+=o.length),l(e._ellipsoids)&&(r=e._ellipsoids=r.slice(),s=e._ellipsoidBatchIds=s.slice(),h+=s.length),l(e._spheres)&&(a=e._sphere=a.slice(),c=e._sphereBatchIds=c.slice(),h+=c.length),u=e._batchTableColors=new Uint32Array(h);let A=e._batchTable;for(let x=0;x<h;++x){let C=A.getColor(x,MRe);u[x]=C.toRgba()}f=e._packedBuffer=IRe(e)}let d=[];l(t)&&d.push(t.buffer,n.buffer),l(i)&&d.push(i.buffer,o.buffer),l(r)&&d.push(r.buffer,s.buffer),l(a)&&d.push(a.buffer,c.buffer),d.push(u.buffer,f.buffer);let p={boxes:l(t)?t.buffer:void 0,boxBatchIds:l(t)?n.buffer:void 0,cylinders:l(i)?i.buffer:void 0,cylinderBatchIds:l(i)?o.buffer:void 0,ellipsoids:l(r)?r.buffer:void 0,ellipsoidBatchIds:l(r)?s.buffer:void 0,spheres:l(a)?a.buffer:void 0,sphereBatchIds:l(a)?c.buffer:void 0,batchTableColors:u.buffer,packedBuffer:f.buffer},g=e._verticesPromise=ORe.scheduleTask(p,d);return l(g)?g.then(function(h){if(e.isDestroyed())return;let A=new Float64Array(h.packedBuffer);PRe(e,A)===2?e._indices=new Uint16Array(h.indices):e._indices=new Uint32Array(h.indices),e._indexOffsets=new Uint32Array(h.indexOffsets),e._indexCounts=new Uint32Array(h.indexCounts),e._positions=new Float32Array(h.positions),e._vertexBatchIds=new Uint16Array(h.vertexBatchIds),e._batchIds=new Uint16Array(h.batchIds),BRe(e),e._ready=!0}).catch(h=>{e.isDestroyed()||(e._error=h)}):void 0}}function BRe(e){l(e._primitive)||(e._primitive=new vC({batchTable:e._batchTable,positions:e._positions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center,pickObject:y(e._pickObject,e)}),e._boxes=void 0,e._boxBatchIds=void 0,e._cylinders=void 0,e._cylinderBatchIds=void 0,e._ellipsoids=void 0,e._ellipsoidBatchIds=void 0,e._spheres=void 0,e._sphereBatchIds=void 0,e._center=void 0,e._modelMatrix=void 0,e._batchTable=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0,e._indices=void 0,e._indexOffsets=void 0,e._indexCounts=void 0,e._positions=void 0,e._vertexBatchIds=void 0,e._batchIds=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._verticesPromise=void 0)}Fl.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};Fl.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};Fl.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};Fl.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};Fl.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=RRe(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};Fl.prototype.isDestroyed=function(){return!1};Fl.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var M_=Fl;function Wh(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._geometries=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,this._resolveContent=void 0,this._readyPromise=new Promise(r=>{this._resolveContent=r}),FRe(this,i,o)}Object.defineProperties(Wh.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return l(this._geometries)?this._geometries.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._geometries)?this._geometries.geometryByteLength:0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Geometry3DTileContent.readyPromise","Geometry3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Geometry3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function LRe(e){return function(t,n){l(e._geometries)&&e._geometries.updateCommands(t,n)}}function NRe(e,t){let n,i,o,r,s,a=y(e.BOXES_LENGTH,0),c=y(e.CYLINDERS_LENGTH,0),u=y(e.ELLIPSOIDS_LENGTH,0),f=y(e.SPHERES_LENGTH,0);if(a>0&&l(e.BOX_BATCH_IDS)){let h=t.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,h,a)}if(c>0&&l(e.CYLINDER_BATCH_IDS)){let h=t.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,h,c)}if(u>0&&l(e.ELLIPSOID_BATCH_IDS)){let h=t.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,h,u)}if(f>0&&l(e.SPHERE_BATCH_IDS)){let h=t.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,h,f)}let d=l(n)||l(i)||l(o)||l(r),p=a>0&&!l(n)||c>0&&!l(i)||u>0&&!l(o)||f>0&&!l(r);if(d&&p)throw new de("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)&&!l(r)){let h=0;if(!l(n)&&a>0)for(n=new Uint16Array(a),s=0;s<a;++s)n[s]=h++;if(!l(i)&&c>0)for(i=new Uint16Array(c),s=0;s<c;++s)i[s]=h++;if(!l(o)&&u>0)for(o=new Uint16Array(u),s=0;s<u;++s)o[s]=h++;if(!l(r)&&f>0)for(r=new Uint16Array(f),s=0;s<f;++s)r[s]=h++}return{boxes:n,cylinders:i,ellipsoids:o,spheres:r}}var _0=Uint32Array.BYTES_PER_ELEMENT;function FRe(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=_0;let r=o.getUint32(n,!0);if(r!==1)throw new de(`Only Geometry tile version 1 is supported. Version ${r} is not.`);n+=_0;let s=o.getUint32(n,!0);if(n+=_0,s===0){e._ready=!0,e._resolveContent(e);return}let a=o.getUint32(n,!0);if(n+=_0,a===0)throw new de("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=_0;let u=o.getUint32(n,!0);n+=_0;let f=o.getUint32(n,!0);n+=_0;let d=Po(i,n,a);n+=a;let p=new Uint8Array(t,n,c);n+=c;let g,h;u>0&&(g=Po(i,n,u),n+=u,f>0&&(h=new Uint8Array(t,n,f),h=new Uint8Array(h)));let A=y(d.BOXES_LENGTH,0),x=y(d.CYLINDERS_LENGTH,0),C=y(d.ELLIPSOIDS_LENGTH,0),T=y(d.SPHERES_LENGTH,0),E=A+x+C+T,S=new I_(e,E,g,h,LRe(e));if(e._batchTable=S,E===0)return;let v=e.tile.computedTransform,D;l(d.RTC_CENTER)&&(D=m.unpack(d.RTC_CENTER),B.multiplyByPoint(v,D,D));let O=NRe(d,p);if(A>0||x>0||C>0||T>0){let M,L,N,_;if(A>0){let b=p.byteOffset+d.BOXES.byteOffset;M=new Float32Array(p.buffer,b,M_.packedBoxLength*A)}if(x>0){let b=p.byteOffset+d.CYLINDERS.byteOffset;L=new Float32Array(p.buffer,b,M_.packedCylinderLength*x)}if(C>0){let b=p.byteOffset+d.ELLIPSOIDS.byteOffset;N=new Float32Array(p.buffer,b,M_.packedEllipsoidLength*C)}if(T>0){let b=p.byteOffset+d.SPHERES.byteOffset;_=new Float32Array(p.buffer,b,M_.packedSphereLength*T)}return e._geometries=new M_({boxes:M,boxBatchIds:O.boxes,cylinders:L,cylinderBatchIds:O.cylinders,ellipsoids:N,ellipsoidBatchIds:O.ellipsoids,spheres:_,sphereBatchIds:O.spheres,center:D,modelMatrix:v,batchTable:S,boundingVolume:e.tile.boundingVolume.boundingVolume}),e}return Promise.resolve(e)}function mee(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._geometries)&&e._geometries.createFeatures(e,n),e._features=n}}Wh.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};Wh.prototype.getFeature=function(e){return mee(this),this._features[e]};Wh.prototype.applyDebugSettings=function(e,t){l(this._geometries)&&this._geometries.applyDebugSettings(e,t)};Wh.prototype.applyStyle=function(e){mee(this),l(this._geometries)&&this._geometries.applyStyle(e,this._features)};Wh.prototype.update=function(e,t){l(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(t)),l(this._batchTable)&&this._geometries.ready&&(this._batchTable.update(e,t),this._ready=!0,this._resolveContent(this))};Wh.prototype.isDestroyed=function(){return!1};Wh.prototype.destroy=function(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};var jR=Wh;var c5={};c5.encode2D=function(e,t,n){let i=Math.pow(2,e),o={x:t,y:n},r,s,a,c=BigInt(0);for(a=i/2;a>0;a/=2)r=(o.x&a)>0?1:0,s=(o.y&a)>0?1:0,c+=BigInt((3*r^s)*a*a),hee(i,o,r,s);return c};c5.decode2D=function(e,t){let n=Math.pow(2,e),i={x:0,y:0},o,r,s,a;for(s=1,a=t;s<n;s*=2)o=1&Number(a/BigInt(2)),r=1&Number(a^BigInt(o)),hee(s,i,o,r),i.x+=s*o,i.y+=s*r,a/=BigInt(4);return[i.x,i.y]};function hee(e,t,n,i){if(i!==0)return;n===1&&(t.x=e-1-t.x,t.y=e-1-t.y);let o=t.x;t.x=t.y,t.y=o}var WS=c5;var g0=30,URe=1<<g0,VRe=1<<g0+1>>>0,l5=2*g0+1,R_=4,gee=[],yee=[],kRe=[[0,1,3,2],[0,2,3,1],[3,2,0,1],[3,1,0,2]],B_=1,DC=2,YR=[B_,0,0,B_|DC];function Or(e){if(!Gt.supportsBigInt())throw new de("S2 required BigInt support");this._cellId=e,this._level=Or.getLevel(e)}Or.fromToken=function(e){return new Or(Or.getIdFromToken(e))};Or.isValidId=function(e){return!(e<=0||e>>BigInt(l5)>5||!(e&~e+BigInt(1)&BigInt("0x1555555555555555")))};Or.isValidToken=function(e){return/^[0-9a-fA-F]{1,16}$/.test(e)?Or.isValidId(Or.getIdFromToken(e)):!1};Or.getIdFromToken=function(e){return BigInt("0x"+e+"0".repeat(16-e.length))};Or.getTokenFromId=function(e){let t=Math.floor(JRe(e)/4),n=e.toString(16).replace(/0*$/,"");return Array(17-t-n.length).join("0")+n};Or.getLevel=function(e){let t=0;for(;e!==BigInt(0)&&!(e&BigInt(1));)t++,e=e>>BigInt(1);return g0-(t>>1)};Or.prototype.getChild=function(e){let t=Cee(this._cellId)>>BigInt(2),n=this._cellId+BigInt(2*e+1-4)*t;return new Or(n)};Or.prototype.getParent=function(){let e=Cee(this._cellId)<<BigInt(2);return new Or(this._cellId&~e+BigInt(1)|e)};Or.prototype.getParentAtLevel=function(e){let t=XRe(e);return new Or(this._cellId&-t|t)};Or.prototype.getCenter=function(e){e=y(e,oe.WGS84);let t=zRe(this._cellId,this._level);t=m.normalize(t,t);let n=new he.fromCartesian(t,oe.UNIT_SPHERE);return he.toCartesian(n,e,new m)};Or.prototype.getVertex=function(e,t){t=y(t,oe.WGS84);let n=HRe(this._cellId,this._level,e);n=m.normalize(n,n);let i=new he.fromCartesian(n,oe.UNIT_SPHERE);return he.toCartesian(i,t,new m)};Or.fromFacePositionLevel=function(e,t,n){let i=(e<4?"0":"")+(e<2?"0":"")+e.toString(2),o=t.toString(2),r=Array(2*n-o.length+1).join("0"),s=Array(l5-2*n).join("0"),a=BigInt(`0b${i}${r}${o}1${s}`);return new Or(a)};function zRe(e,t){let n=GRe(e,t);return WRe(n[0],n[1],n[2])}function HRe(e,t,n){let i=Aee(e,t),o=jRe([i[1],i[2]],t),r=n>>1&1;return xee(i[0],o[0][r^n&1],o[1][r])}function GRe(e,t){let n=Aee(e),i=n[0],o=n[1],r=n[2],s=t===30,a=!s&&(BigInt(o)^e>>BigInt(2))&BigInt(1),c=s?1:a?2:0,u=(o<<1)+c,f=(r<<1)+c;return[i,u,f]}function Aee(e){gee.length===0&&qRe();let t=Number(e>>BigInt(l5)),n=t&B_,i=(1<<R_)-1,o=0,r=0;for(let s=7;s>=0;s--){let c=(1<<2*(s===7?g0-7*R_:R_))-1;n+=Number(e>>BigInt(s*2*R_+1)&BigInt(c))<<2,n=yee[n];let u=s*R_;o+=n>>R_+2<<u,r+=(n>>2&i)<<u,n&=B_|DC}return[t,o,r]}function WRe(e,t,n){let i=pee(t),o=pee(n),r=qR(i),s=qR(o);return xee(e,r,s)}function xee(e,t,n){switch(e){case 0:return new m(1,t,n);case 1:return new m(-t,1,n);case 2:return new m(-t,-n,1);case 3:return new m(-1,-n,-t);case 4:return new m(n,-1,-t);default:return new m(n,t,-1)}}function qR(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function pee(e){return 1/VRe*e}function jRe(e,t){let n=[[],[]],i=YRe(t);for(let o=0;o<2;++o){let r=e[o]&-i,s=r+i;n[o][0]=qR(_ee(r)),n[o][1]=qR(_ee(s))}return n}function YRe(e){return 1<<g0-e>>>0}function _ee(e){return 1/URe*e}function L_(e,t,n,i,o,r){if(e===R_){let s=(t<<R_)+n;gee[(s<<2)+i]=(o<<2)+r,yee[(o<<2)+i]=(s<<2)+r}else{e++,t<<=1,n<<=1,o<<=2;let s=kRe[r];L_(e,t+(s[0]>>1),n+(s[0]&1),i,o,r^YR[0]),L_(e,t+(s[1]>>1),n+(s[1]&1),i,o+1,r^YR[1]),L_(e,t+(s[2]>>1),n+(s[2]&1),i,o+2,r^YR[2]),L_(e,t+(s[3]>>1),n+(s[3]&1),i,o+3,r^YR[3])}}function qRe(){L_(0,0,0,0,0,0),L_(0,0,0,B_,0,B_),L_(0,0,0,DC,0,DC),L_(0,0,0,B_|DC,0,B_|DC)}function Cee(e){return e&~e+BigInt(1)}function XRe(e){return BigInt(1)<<BigInt(2*(g0-e))}var KRe=[64,0,1,39,2,15,40,23,3,12,16,59,41,19,24,54,4,64,13,10,17,62,60,28,42,30,20,51,25,44,55,47,5,32,65,38,14,22,11,58,18,53,63,9,61,27,29,50,43,46,31,37,21,57,52,8,26,49,45,36,56,7,48,35,6,34,33,0];function JRe(e){return KRe[(-e&e)%BigInt(67)]}var N_=Or;function ZRe(e,t){return l(e)&&l(e.extensions)&&l(e.extensions[t])}var ni=ZRe;function u5(e){let t=e.lengthBits,n=e.availableCount,i=e.constant,o=e.bitstream;if(l(i))n=t;else{let r=Math.ceil(t/8);if(o.length!==r)throw new de(`Availability bitstream must be exactly ${r} bytes long to store ${t} bits. Actual bitstream was ${o.length} bytes long.`);let s=y(e.computeAvailableCountEnabled,!1);!l(n)&&s&&(n=QRe(o,t))}this._lengthBits=t,this._availableCount=n,this._constant=i,this._bitstream=o}function QRe(e,t){let n=0;for(let i=0;i<t;i++){let o=i>>3,r=i%8;n+=e[o]>>r&1}return n}Object.defineProperties(u5.prototype,{lengthBits:{get:function(){return this._lengthBits}},availableCount:{get:function(){return this._availableCount}}});u5.prototype.getBit=function(e){if(l(this._constant))return this._constant;let t=e>>3,n=e%8;return(this._bitstream[t]>>n&1)===1};var jS=u5;function jh(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataTable,n=e.class,i=e.entityId,o=e.propertyTableJson;this._class=n,this._metadataTable=t,this._entityId=i,this._extensions=o.extensions,this._extras=o.extras}Object.defineProperties(jh.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});jh.prototype.hasProperty=function(e){return this._metadataTable.hasProperty(e)};jh.prototype.hasPropertyBySemantic=function(e){return this._metadataTable.hasPropertyBySemantic(e)};jh.prototype.getPropertyIds=function(e){return this._metadataTable.getPropertyIds(e)};jh.prototype.getProperty=function(e){return this._metadataTable.getProperty(this._entityId,e)};jh.prototype.setProperty=function(e,t){return this._metadataTable.setProperty(this._entityId,e,t)};jh.prototype.getPropertyBySemantic=function(e){return this._metadataTable.getPropertyBySemantic(this._entityId,e)};jh.prototype.setPropertyBySemantic=function(e,t){return this._metadataTable.setPropertyBySemantic(this._entityId,e,t)};var YS=jh;var XR={QUADTREE:"QUADTREE",OCTREE:"OCTREE"};XR.getBranchingFactor=function(e){switch(e){case XR.OCTREE:return 8;case XR.QUADTREE:return 4}};var jr=Object.freeze(XR);function Ls(){}Object.defineProperties(Ls.prototype,{class:{get:function(){fe.throwInstantiationError()}}});Ls.prototype.hasProperty=function(e){fe.throwInstantiationError()};Ls.prototype.hasPropertyBySemantic=function(e){fe.throwInstantiationError()};Ls.prototype.getPropertyIds=function(e){fe.throwInstantiationError()};Ls.prototype.getProperty=function(e){fe.throwInstantiationError()};Ls.prototype.setProperty=function(e,t){fe.throwInstantiationError()};Ls.prototype.getPropertyBySemantic=function(e){fe.throwInstantiationError()};Ls.prototype.setPropertyBySemantic=function(e,t){fe.throwInstantiationError()};Ls.hasProperty=function(e,t,n){if(l(t[e]))return!0;let i=n.properties;if(!l(i))return!1;let o=i[e];return!!(l(o)&&l(o.default))};Ls.hasPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return!1;let o=i[e];return l(o)};Ls.getPropertyIds=function(e,t,n){n=l(n)?n:[],n.length=0;for(let o in e)e.hasOwnProperty(o)&&l(e[o])&&n.push(o);let i=t.properties;if(l(i))for(let o in i)i.hasOwnProperty(o)&&!l(e[o])&&l(i[o].default)&&n.push(o);return n};Ls.getProperty=function(e,t,n){let i=n.properties[e],o=t[e];Array.isArray(o)&&(o=o.slice());let r=!0;if(o=i.handleNoData(o),!l(o)&&l(i.default))return o=Ye(i.default,!0),i.unpackVectorAndMatrixTypes(o,r);if(l(o))return o=i.normalize(o),o=i.applyValueTransform(o),i.unpackVectorAndMatrixTypes(o,r)};Ls.setProperty=function(e,t,n,i){if(!l(n[e]))return!1;Array.isArray(t)&&(t=t.slice());let o,r=i.properties;l(r)&&(o=r[e]);let s=!0;return l(o)&&(t=o.packVectorAndMatrixTypes(t,s),t=o.unapplyValueTransform(t),t=o.unnormalize(t)),n[e]=t,!0};Ls.getPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return;let o=i[e];if(l(o))return Ls.getProperty(o.id,t,n)};Ls.setPropertyBySemantic=function(e,t,n,i){let o=i.propertiesBySemantic;if(!l(o))return!1;let r=i.propertiesBySemantic[e];return l(r)?Ls.setProperty(r.id,t,n,i):!1};var Vn=Ls;function Yh(e){e=y(e,y.EMPTY_OBJECT);let t=e.subtreeMetadata,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Yh.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Yh.prototype.hasProperty=function(e){return Vn.hasProperty(e,this._properties,this._class)};Yh.prototype.hasPropertyBySemantic=function(e){return Vn.hasPropertyBySemantic(e,this._properties,this._class)};Yh.prototype.getPropertyIds=function(e){return Vn.getPropertyIds(this._properties,this._class,e)};Yh.prototype.getProperty=function(e){return Vn.getProperty(e,this._properties,this._class)};Yh.prototype.setProperty=function(e,t){return Vn.setProperty(e,t,this._properties,this._class)};Yh.prototype.getPropertyBySemantic=function(e){return Vn.getPropertyBySemantic(e,this._properties,this._class)};Yh.prototype.setPropertyBySemantic=function(e,t){return Vn.setPropertyBySemantic(e,t,this._properties,this._class)};var KR=Yh;var Pt={INT8:"INT8",UINT8:"UINT8",INT16:"INT16",UINT16:"UINT16",INT32:"INT32",UINT32:"UINT32",INT64:"INT64",UINT64:"UINT64",FLOAT32:"FLOAT32",FLOAT64:"FLOAT64"};Pt.getMinimum=function(e){switch(e){case Pt.INT8:return-128;case Pt.UINT8:return 0;case Pt.INT16:return-32768;case Pt.UINT16:return 0;case Pt.INT32:return-2147483648;case Pt.UINT32:return 0;case Pt.INT64:return Gt.supportsBigInt()?BigInt("-9223372036854775808"):-Math.pow(2,63);case Pt.UINT64:return Gt.supportsBigInt()?BigInt(0):0;case Pt.FLOAT32:return-34028234663852886e22;case Pt.FLOAT64:return-Number.MAX_VALUE}};Pt.getMaximum=function(e){switch(e){case Pt.INT8:return 127;case Pt.UINT8:return 255;case Pt.INT16:return 32767;case Pt.UINT16:return 65535;case Pt.INT32:return 2147483647;case Pt.UINT32:return 4294967295;case Pt.INT64:return Gt.supportsBigInt()?BigInt("9223372036854775807"):Math.pow(2,63)-1;case Pt.UINT64:return Gt.supportsBigInt()?BigInt("18446744073709551615"):Math.pow(2,64)-1;case Pt.FLOAT32:return 34028234663852886e22;case Pt.FLOAT64:return Number.MAX_VALUE}};Pt.isIntegerType=function(e){switch(e){case Pt.INT8:case Pt.UINT8:case Pt.INT16:case Pt.UINT16:case Pt.INT32:case Pt.UINT32:case Pt.INT64:case Pt.UINT64:return!0;default:return!1}};Pt.isUnsignedIntegerType=function(e){switch(e){case Pt.UINT8:case Pt.UINT16:case Pt.UINT32:case Pt.UINT64:return!0;default:return!1}};Pt.isVectorCompatible=function(e){switch(e){case Pt.INT8:case Pt.UINT8:case Pt.INT16:case Pt.UINT16:case Pt.INT32:case Pt.UINT32:case Pt.FLOAT32:case Pt.FLOAT64:return!0;default:return!1}};Pt.normalize=function(e,t){return Math.max(Number(e)/Number(Pt.getMaximum(t)),-1)};Pt.unnormalize=function(e,t){let n=Pt.getMaximum(t),i=Pt.isUnsignedIntegerType(t)?0:-n;return e=P.sign(e)*Math.round(Math.abs(e)*Number(n)),(t===Pt.INT64||t===Pt.UINT64)&&Gt.supportsBigInt()&&(e=BigInt(e)),e>n?n:e<i?i:e};Pt.applyValueTransform=function(e,t,n){return n*e+t};Pt.unapplyValueTransform=function(e,t,n){return n===0?0:(e-t)/n};Pt.getSizeInBytes=function(e){switch(e){case Pt.INT8:case Pt.UINT8:return 1;case Pt.INT16:case Pt.UINT16:return 2;case Pt.INT32:case Pt.UINT32:return 4;case Pt.INT64:case Pt.UINT64:return 8;case Pt.FLOAT32:return 4;case Pt.FLOAT64:return 8}};Pt.fromComponentDatatype=function(e){switch(e){case X.BYTE:return Pt.INT8;case X.UNSIGNED_BYTE:return Pt.UINT8;case X.SHORT:return Pt.INT16;case X.UNSIGNED_SHORT:return Pt.UINT16;case X.INT:return Pt.INT32;case X.UNSIGNED_INT:return Pt.UINT32;case X.FLOAT:return Pt.FLOAT32;case X.DOUBLE:return Pt.FLOAT64}};Pt.toComponentDatatype=function(e){switch(e){case Pt.INT8:return X.BYTE;case Pt.UINT8:return X.UNSIGNED_BYTE;case Pt.INT16:return X.SHORT;case Pt.UINT16:return X.UNSIGNED_SHORT;case Pt.INT32:return X.INT;case Pt.UINT32:return X.UNSIGNED_INT;case Pt.FLOAT32:return X.FLOAT;case Pt.FLOAT64:return X.DOUBLE}};var nn=Object.freeze(Pt);var Oo={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4",BOOLEAN:"BOOLEAN",STRING:"STRING",ENUM:"ENUM"};Oo.isVectorType=function(e){switch(e){case Oo.VEC2:case Oo.VEC3:case Oo.VEC4:return!0;default:return!1}};Oo.isMatrixType=function(e){switch(e){case Oo.MAT2:case Oo.MAT3:case Oo.MAT4:return!0;default:return!1}};Oo.getComponentCount=function(e){switch(e){case Oo.SCALAR:case Oo.STRING:case Oo.ENUM:case Oo.BOOLEAN:return 1;case Oo.VEC2:return 2;case Oo.VEC3:return 3;case Oo.VEC4:return 4;case Oo.MAT2:return 4;case Oo.MAT3:return 9;case Oo.MAT4:return 16}};Oo.getMathType=function(e){switch(e){case Oo.VEC2:return H;case Oo.VEC3:return m;case Oo.VEC4:return re;case Oo.MAT2:return eo;case Oo.MAT3:return Z;case Oo.MAT4:return B;default:return}};var jt=Object.freeze(Oo);function la(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.type,i=e.componentType,o=e.enumType,r=l(i)&&nn.isIntegerType(i)&&y(e.normalized,!1);this._id=t,this._name=e.name,this._description=e.description,this._semantic=e.semantic,this._isLegacyExtension=e.isLegacyExtension,this._type=n,this._componentType=i,this._enumType=o,this._valueType=l(o)?o.valueType:i,this._isArray=y(e.isArray,!1),this._isVariableLengthArray=y(e.isVariableLengthArray,!1),this._arrayLength=e.arrayLength,this._min=Ye(e.min,!0),this._max=Ye(e.max,!0),this._normalized=r;let s=Ye(e.offset,!0),a=Ye(e.scale,!0),c=l(s)||l(a),u=!0;l(s)||(s=this.expandConstant(0,u)),l(a)||(a=this.expandConstant(1,u)),this._offset=s,this._scale=a,this._hasValueTransform=c,this._noData=Ye(e.noData,!0),this._default=Ye(e.default,!0),this._required=y(e.required,!0),this._extras=Ye(e.extras,!0),this._extensions=Ye(e.extensions,!0)}la.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.property,i=$Re(n),o=eBe(n,e.enums),r;return l(i)?i?r=l(n.optional)?!n.optional:!0:r=y(n.required,!1):r=!1,new la({id:t,type:o.type,componentType:o.componentType,enumType:o.enumType,isArray:o.isArray,isVariableLengthArray:o.isVariableLengthArray,arrayLength:o.arrayLength,normalized:n.normalized,min:n.min,max:n.max,offset:n.offset,scale:n.scale,noData:n.noData,default:n.default,required:r,name:n.name,description:n.description,semantic:n.semantic,extras:n.extras,extensions:n.extensions,isLegacyExtension:i})};Object.defineProperties(la.prototype,{id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},type:{get:function(){return this._type}},enumType:{get:function(){return this._enumType}},componentType:{get:function(){return this._componentType}},valueType:{get:function(){return this._valueType}},isArray:{get:function(){return this._isArray}},isVariableLengthArray:{get:function(){return this._isVariableLengthArray}},arrayLength:{get:function(){return this._arrayLength}},normalized:{get:function(){return this._normalized}},max:{get:function(){return this._max}},min:{get:function(){return this._min}},noData:{get:function(){return this._noData}},default:{get:function(){return this._default}},required:{get:function(){return this._required}},semantic:{get:function(){return this._semantic}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});function $Re(e){if(e.type==="ARRAY")return!0;let t=e.type;if(t===jt.SCALAR||jt.isMatrixType(t)||jt.isVectorType(t))return!1;if(l(nn[t]))return!0;if(l(e.noData)||l(e.scale)||l(e.offset)||l(e.required)||l(e.count)||l(e.array)||l(e.optional))return!1}function eBe(e,t){let n=e.type,i=e.componentType,o=n==="ARRAY",r,s,a;o?(r=!0,s=e.componentCount,a=!l(s)):e.array?(r=!0,s=e.count,a=!l(e.count)):(r=!1,s=void 0,a=!1);let c;if(l(e.enumType)&&(c=t[e.enumType]),n===jt.ENUM)return{type:n,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&i===jt.ENUM)return{type:i,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===jt.SCALAR||jt.isMatrixType(n)||jt.isVectorType(n))return{type:n,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===jt.BOOLEAN||n===jt.STRING)return{type:n,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&(i===jt.BOOLEAN||i===jt.STRING))return{type:i,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(l(i)&&l(nn[i]))return{type:jt.SCALAR,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(l(nn[n]))return{type:jt.SCALAR,componentType:n,enumType:void 0,valueType:n,isArray:r,isVariableLengthArray:a,arrayLength:s}}la.prototype.normalize=function(e){return this._normalized?f5(e,this._valueType,nn.normalize):e};la.prototype.unnormalize=function(e){return this._normalized?f5(e,this._valueType,nn.unnormalize):e};la.prototype.applyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:la.valueTransformInPlace(e,this._offset,this._scale,nn.applyValueTransform)};la.prototype.unapplyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:la.valueTransformInPlace(e,this._offset,this._scale,nn.unapplyValueTransform)};la.prototype.expandConstant=function(e,t){t=y(t,!1);let n=this._isArray,i=this._arrayLength,o=jt.getComponentCount(this._type),r=n&&o>1;if(!n&&o===1)return e;if(!n)return new Array(o).fill(e);if(!r)return new Array(i).fill(e);if(!t)return new Array(this._arrayLength*o).fill(e);let s=new Array(o).fill(e);return new Array(this._arrayLength).fill(s)};la.prototype.handleNoData=function(e){let t=this._noData;if(!l(t))return e;if(!See(e,t))return e};function See(e,t){if(!Array.isArray(e))return e===t;if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!See(e[n],t[n]))return!1;return!0}la.prototype.unpackVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=jt.getMathType(this._type),i=this._isArray,o=jt.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.unpack(s)}):i?n.unpackArray(e):n.unpack(e):e};la.prototype.packVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=jt.getMathType(this._type),i=this._isArray,o=jt.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.pack(s,[])}):i?n.packArray(e,[]):n.pack(e,[]):e};la.prototype.validate=function(e){if(!(!l(e)&&l(this._default)))return this._required&&!l(e)?"required property must have a value":this._isArray?tBe(this,e):wee(this,e)};function tBe(e,t){if(!Array.isArray(t))return`value ${t} must be an array`;let n=t.length;if(!e._isVariableLengthArray&&n!==e._arrayLength)return"Array length does not match property.arrayLength";for(let i=0;i<n;i++){let o=wee(e,t[i]);if(l(o))return o}}function wee(e,t){let n=e._type,i=e._componentType,o=e._enumType,r=e._normalized;return jt.isVectorType(n)?nBe(t,n,i):jt.isMatrixType(n)?iBe(t,n,i):n===jt.STRING?oBe(t):n===jt.BOOLEAN?rBe(t):n===jt.ENUM?sBe(t,o):aBe(t,i,r)}function nBe(e,t,n){if(!nn.isVectorCompatible(n))return`componentType ${n} is incompatible with vector type ${t}`;if(t===jt.VEC2&&!(e instanceof H))return`vector value ${e} must be a Cartesian2`;if(t===jt.VEC3&&!(e instanceof m))return`vector value ${e} must be a Cartesian3`;if(t===jt.VEC4&&!(e instanceof re))return`vector value ${e} must be a Cartesian4`}function iBe(e,t,n){if(!nn.isVectorCompatible(n))return`componentType ${n} is incompatible with matrix type ${t}`;if(t===jt.MAT2&&!(e instanceof eo))return`matrix value ${e} must be a Matrix2`;if(t===jt.MAT3&&!(e instanceof Z))return`matrix value ${e} must be a Matrix3`;if(t===jt.MAT4&&!(e instanceof B))return`matrix value ${e} must be a Matrix4`}function oBe(e){if(typeof e!="string")return JR(e,jt.STRING)}function rBe(e){if(typeof e!="boolean")return JR(e,jt.BOOLEAN)}function sBe(e,t){let n=typeof e;if(l(t))return n!=="string"||!l(t.valuesByName[e])?`value ${e} is not a valid enum name for ${t.id}`:void 0}function aBe(e,t,n){let i=typeof e;switch(t){case nn.INT8:case nn.UINT8:case nn.INT16:case nn.UINT16:case nn.INT32:case nn.UINT32:case nn.FLOAT32:case nn.FLOAT64:return i!=="number"?JR(e,t):isFinite(e)?Eee(e,t,n):bee(e,t);case nn.INT64:case nn.UINT64:return i!=="number"&&i!=="bigint"?JR(e,t):i==="number"&&!isFinite(e)?bee(e,t):Eee(e,t,n)}}function JR(e,t){return`value ${e} does not match type ${t}`}function Tee(e,t,n){let i=`value ${e} is out of range for type ${t}`;return n&&(i+=" (normalized)"),i}function Eee(e,t,n){if(n){let i=nn.isUnsignedIntegerType(t)?0:-1,o=1;return e<i||e>o?Tee(e,t,n):void 0}if(e<nn.getMinimum(t)||e>nn.getMaximum(t))return Tee(e,t,n)}function bee(e,t){return`value ${e} of type ${t} must be finite`}function f5(e,t,n){if(!Array.isArray(e))return n(e,t);for(let i=0;i<e.length;i++)e[i]=f5(e[i],t,n);return e}la.valueTransformInPlace=function(e,t,n,i){if(!Array.isArray(e))return i(e,t,n);for(let o=0;o<e.length;o++)e[o]=la.valueTransformInPlace(e[o],t[o],n[o],i);return e};var y0=la;function qS(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.property,i=e.classProperty,o=e.bufferViews,r=i.type,s=i.isArray,a=i.isVariableLengthArray,c=i.valueType,u=i.enumType,f=r===jt.STRING,d=r===jt.BOOLEAN,p=0,g;if(a){let _=y(n.arrayOffsetType,n.offsetType);_=y(nn[_],nn.UINT32);let b=y(n.arrayOffsets,n.arrayOffsetBufferView);g=new d5(o[b],_,t+1),p+=g.typedArray.byteLength}let h=jt.getComponentCount(r),A;a?A=g.get(t)-g.get(0):s?A=t*i.arrayLength:A=t;let x=h*A,C;if(f){let _=y(n.stringOffsetType,n.offsetType);_=y(nn[_],nn.UINT32);let b=y(n.stringOffsets,n.stringOffsetBufferView);C=new d5(o[b],_,x+1),p+=C.typedArray.byteLength}(f||d)&&(c=nn.UINT8);let T;f?T=C.get(x)-C.get(0):d?T=Math.ceil(x/8):T=x;let E=y(n.values,n.bufferView),S=new d5(o[E],c,T);p+=S.typedArray.byteLength;let v=n.offset,D=n.scale,O=i.hasValueTransform||l(v)||l(D);v=y(v,i.offset),D=y(D,i.scale),v=vee(v),D=vee(D);let M,L,N=this;f?M=function(_){return uBe(_,N._values,N._stringOffsets)}:d?(M=function(_){return fBe(_,N._values)},L=function(_,b){dBe(_,N._values,b)}):l(u)?(M=function(_){let b=N._values.get(_);return u.namesByValue[b]},L=function(_,b){let w=u.valuesByName[b];N._values.set(_,w)}):(M=function(_){return N._values.get(_)},L=function(_,b){N._values.set(_,b)}),this._arrayOffsets=g,this._stringOffsets=C,this._values=S,this._classProperty=i,this._count=t,this._vectorComponentCount=h,this._min=n.min,this._max=n.max,this._offset=v,this._scale=D,this._hasValueTransform=O,this._getValue=M,this._setValue=L,this._unpackedValues=void 0,this._extras=n.extras,this._extensions=n.extensions,this._byteLength=p}Object.defineProperties(qS.prototype,{hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){return this._byteLength}}});qS.prototype.get=function(e){let t=cBe(this,e);return t=this._classProperty.handleNoData(t),l(t)?(t=this._classProperty.normalize(t),t=xBe(this,t),this._classProperty.unpackVectorAndMatrixTypes(t)):(t=this._classProperty.default,this._classProperty.unpackVectorAndMatrixTypes(t))};qS.prototype.set=function(e,t){let n=this._classProperty;t=n.packVectorAndMatrixTypes(t),t=CBe(this,t),t=n.unnormalize(t),lBe(this,e,t)};qS.prototype.getTypedArray=function(){if(l(this._values))return this._values.typedArray};function vee(e){if(!Array.isArray(e))return e;let t=[];for(let n=0;n<e.length;n++){let i=e[n];Array.isArray(i)?t.push.apply(t,i):t.push(i)}return t}function cBe(e,t){Iee(e)&&Pee(e);let n=e._classProperty,i=n.isArray,o=n.type,r=jt.getComponentCount(o);if(l(e._unpackedValues)){let s=e._unpackedValues[t];return i?Ye(s,!0):s}return!i&&r===1?e._getValue(t):Dee(e,n,t)}function Dee(e,t,n){let i,o;if(t.isVariableLengthArray){i=e._arrayOffsets.get(n),o=e._arrayOffsets.get(n+1)-i;let s=jt.getComponentCount(t.type);i*=s,o*=s}else{let a=y(t.arrayLength,1)*e._vectorComponentCount;i=n*a,o=a}let r=new Array(o);for(let s=0;s<o;s++)r[s]=e._getValue(i+s);return r}function lBe(e,t,n){yBe(e,t,n)&&Pee(e);let i=e._classProperty,o=i.isArray,r=i.type,s=jt.getComponentCount(r);if(l(e._unpackedValues)){i.isArray&&(n=Ye(n,!0)),e._unpackedValues[t]=n;return}if(!o&&s===1){e._setValue(t,n);return}let a,c;if(i.isVariableLengthArray)a=e._arrayOffsets.get(t),c=e._arrayOffsets.get(t+1)-a;else{let f=y(i.arrayLength,1)*e._vectorComponentCount;a=t*f,c=f}for(let u=0;u<c;++u)e._setValue(a+u,n[u])}function uBe(e,t,n){let i=n.get(e),o=n.get(e+1)-i;return Ll(t.typedArray,i,o)}function fBe(e,t){let n=e>>3,i=e%8;return(t.typedArray[n]>>i&1)===1}function dBe(e,t,n){let i=e>>3,o=e%8;n?t.typedArray[i]|=1<<o:t.typedArray[i]&=~(1<<o)}function mBe(e,t){let n=t.dataView,i=e*8,o=0,r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=c*Math.pow(256,a)}return r&&(o=-o),o}function hBe(e,t){let n=t.dataView,i=e*8,o=BigInt(0),r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=BigInt(c)*(BigInt(1)<<BigInt(a*8))}return r&&(o=-o),o}function pBe(e,t){let n=t.dataView,i=e*8,o=n.getUint32(i,!0),r=n.getUint32(i+4,!0);return o+4294967296*r}function _Be(e,t){let n=t.dataView,i=e*8,o=BigInt(n.getUint32(i,!0)),r=BigInt(n.getUint32(i+4,!0));return o+BigInt(4294967296)*r}function gBe(e){switch(e){case nn.INT8:return X.BYTE;case nn.UINT8:return X.UNSIGNED_BYTE;case nn.INT16:return X.SHORT;case nn.UINT16:return X.UNSIGNED_SHORT;case nn.INT32:return X.INT;case nn.UINT32:return X.UNSIGNED_INT;case nn.FLOAT32:return X.FLOAT;case nn.FLOAT64:return X.DOUBLE}}function Iee(e){if(l(e._unpackedValues))return!1;let t=e._classProperty,n=t.type,i=t.valueType;return n===jt.STRING||i===nn.INT64&&!Gt.supportsBigInt64Array()||i===nn.UINT64&&!Gt.supportsBigUint64Array()}function yBe(e,t,n){if(Iee(e))return!0;let i=e._arrayOffsets;if(l(i)){let o=i.get(t+1)-i.get(t),r=n.length;if(o!==r)return!0}return!1}function Pee(e){e._unpackedValues=ABe(e),e._arrayOffsets=void 0,e._stringOffsets=void 0,e._values=void 0}function ABe(e){let t=e._count,n=new Array(t),i=e._classProperty,o=i.isArray,r=i.type,s=jt.getComponentCount(r);if(!o&&s===1){for(let a=0;a<t;++a)n[a]=e._getValue(a);return n}for(let a=0;a<t;a++)n[a]=Dee(e,i,a);return n}function xBe(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:y0.valueTransformInPlace(t,e._offset,e._scale,nn.applyValueTransform)}function CBe(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:y0.valueTransformInPlace(t,e._offset,e._scale,nn.unapplyValueTransform)}function d5(e,t,n){let i=this,o,r,s;if(t===nn.INT64)Gt.supportsBigInt()?Gt.supportsBigInt64Array()?(o=new BigInt64Array(e.buffer,e.byteOffset,n),s=function(a,c){i.typedArray[a]=BigInt(c)}):(o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return hBe(a,i)}):(Mt("INT64 type is not fully supported on this platform. Values greater than 2^53 - 1 or less than -(2^53 - 1) may lose precision when read."),o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return mBe(a,i)});else if(t===nn.UINT64)Gt.supportsBigInt()?Gt.supportsBigUint64Array()?(o=new BigUint64Array(e.buffer,e.byteOffset,n),s=function(a,c){i.typedArray[a]=BigInt(c)}):(o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return _Be(a,i)}):(Mt("UINT64 type is not fully supported on this platform. Values greater than 2^53 - 1 may lose precision when read."),o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return pBe(a,i)});else{let a=gBe(t);o=X.createArrayBufferView(a,e.buffer,e.byteOffset,n),s=function(c,u){i.typedArray[c]=u}}l(r)||(r=function(a){return i.typedArray[a]}),this.typedArray=o,this.dataView=new DataView(o.buffer,o.byteOffset),this.get=r,this.set=s,this._componentType=t}var ZR=qS;function Wf(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.class,i=0,o={};if(l(e.properties)){for(let r in e.properties)if(e.properties.hasOwnProperty(r)){let s=new ZR({count:t,property:e.properties[r],classProperty:n.properties[r],bufferViews:e.bufferViews});o[r]=s,i+=s.byteLength}}this._count=t,this._class=n,this._properties=o,this._byteLength=i}Object.defineProperties(Wf.prototype,{count:{get:function(){return this._count}},class:{get:function(){return this._class}},byteLength:{get:function(){return this._byteLength}}});Wf.prototype.hasProperty=function(e){return Vn.hasProperty(e,this._properties,this._class)};Wf.prototype.hasPropertyBySemantic=function(e){return Vn.hasPropertyBySemantic(e,this._properties,this._class)};Wf.prototype.getPropertyIds=function(e){return Vn.getPropertyIds(this._properties,this._class,e)};Wf.prototype.getProperty=function(e,t){let n=this._properties[t],i;return l(n)?i=n.get(e):i=TBe(this._class,t),i};Wf.prototype.setProperty=function(e,t,n){let i=this._properties[t];return l(i)?(i.set(e,n),!0):!1};Wf.prototype.getPropertyBySemantic=function(e,t){let n,i=this._class.propertiesBySemantic;if(l(i)&&(n=i[t]),l(n))return this.getProperty(e,n.id)};Wf.prototype.setPropertyBySemantic=function(e,t,n){let i,o=this._class.propertiesBySemantic;return l(o)&&(i=o[t]),l(i)?this.setProperty(e,i.id,n):!1};Wf.prototype.getPropertyTypedArray=function(e){let t=this._properties[e];if(l(t))return t.getTypedArray()};Wf.prototype.getPropertyTypedArrayBySemantic=function(e){let t,n=this._class.propertiesBySemantic;if(l(n)&&(t=n[e]),l(t))return this.getPropertyTypedArray(t.id)};function TBe(e,t){let n=e.properties;if(!l(n))return;let i=n[t];if(l(i)&&l(i.default)){let o=i.default;return i.isArray&&(o=Ye(o,!0)),o=i.normalize(o),i.unpackVectorAndMatrixTypes(o)}}var Ul=Wf;function F_(){}Object.defineProperties(F_.prototype,{cacheKey:{get:function(){fe.throwInstantiationError()}}});F_.prototype.load=function(){fe.throwInstantiationError()};F_.prototype.unload=function(){};F_.prototype.process=function(e){return!1};F_.prototype.getError=function(e,t){l(t)&&l(t.message)&&(e+=` +${t.message}`);let n=new de(e);return l(t)&&(n.stack=`Original stack: +${t.stack} +Handler stack: +${n.stack}`),n};F_.prototype.isDestroyed=function(){return!1};F_.prototype.destroy=function(){return this.unload(),ue(this)};var io=F_;var EBe={UNLOADED:0,LOADING:1,LOADED:2,PROCESSING:3,READY:4,FAILED:5},vt=Object.freeze(EBe);function qh(e){e=y(e,y.EMPTY_OBJECT);let t=e.typedArray,n=e.resource,i=e.cacheKey;this._typedArray=t,this._resource=n,this._cacheKey=i,this._state=vt.UNLOADED,this._promise=void 0}l(Object.create)&&(qh.prototype=Object.create(io.prototype),qh.prototype.constructor=qh);Object.defineProperties(qh.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});qh.prototype.load=async function(){return l(this._promise)?this._promise:l(this._typedArray)?(this._promise=Promise.resolve(this),this._promise):(this._promise=bBe(this),this._promise)};async function bBe(e){let t=e._resource;e._state=vt.LOADING;try{let n=await qh._fetchArrayBuffer(t);return e.isDestroyed()?void 0:(e._typedArray=new Uint8Array(n),e._state=vt.READY,e)}catch(n){if(e.isDestroyed())return;e._state=vt.FAILED;let i=`Failed to load external buffer: ${t.url}`;throw e.getError(i,n)}}qh._fetchArrayBuffer=function(e){return e.fetchArrayBuffer()};qh.prototype.unload=function(){this._typedArray=void 0};var IC=qh;var wjt=function(){"use strict";var e="B9h79tEBBBENQ9gEUEU9gEUB9gBB9gVUUUUUEU9gDUUEU9gLUUUUEU9gVUUUUUB9gLUUUUB9gIUUUEU9gD99UE99I8ayDILEVLEVLOOOOORRVBWWBEdddLVE9wEIIVIEBEOWEUEC+g/KEKR/QIhO9tw9t9vv95DBh9f9f939h79t9f9j9h229f9jT9vv7BB8a9tw79o9v9wT9fw9u9j9v9kw9WwvTw949C919m9mwvBE8f9tw79o9v9wT9fw9u9j9v9kw9WwvTw949C919m9mwv9C9v919u9kBDe9tw79o9v9wT9fw9u9j9v9kw9WwvTw949Wwv79p9v9uBIy9tw79o9v9wT9fw9u9j9v9kw69u9kw949C919m9mwvBL8e9tw79o9v9wT9fw9u9j9v9kw69u9kw949C919m9mwv9C9v919u9kBV8a9tw79o9v9wT9fw9u9j9v9kw69u9kw949Wwv79p9v9uBOe9tw79o9v9wT9fw9u9j9v9kw69u9kw949Twg91w9u9jwBRA9tw79o9v9wT9fw9u9j9v9kw69u9kw949Twg91w9u9jw9C9v919u9kBWl9tw79o9v9wT9fw9u9j9v9kws9p2Twv9P9jTBdk9tw79o9v9wT9fw9u9j9v9kws9p2Twv9R919hTBQl9tw79o9v9wT9fw9u9j9v9kws9p2Twvt949wBKe9tw79o9v9wT9f9v9wT9p9t9p96w9WwvTw94j9h9j9owBpA9tw79o9v9wT9f9v9wT9p9t9p96w9WwvTw94j9h9j9ow9TTv9p9wBSA9tw79o9v9wT9f9v9wT9p9t9p96w9WwvTw94swT9j9o9Sw9t9h9wBZL79iv9rBhdWEBCEKDxcQ+1tyDBK/hKEyU8jJJJJBCJO9rGV8kJJJJBCBHODNALCEFAE0MBABCBrB+Q+KJJBC+gEv86BBAVCJDFCBCJDZ+TJJJB8aDNAItMBAVCJDFADALZmJJJB8aKABAEFHRABCEFHWAVALFCBCBCJDAL9rALCfE0eZ+TJJJB8aAVAVCJDFALZmJJJBHdCJ/ABAL9uHEDNDNALtMBAEC/wfBgGECJDAECJD6eHQCBHKINAKAI9PMEAdCJLFCBCJDZ+TJJJB8aAQAIAK9rAKAQFAI6eGXCSFGECL4CIFCD4HMADAKAL2FHpDNDNDNDNDNAEC9wgGStMBCBHZCEHhApHoAWHaXEKDNAXtMBCBHaCEHhApHcINAdAaFrBBHxAcHECBHOINAdCJLFAOFAErBBGqAx9rGxCETAxCkTCk91CR4786BBAEALFHEAqHxAOCEFGOAX9HMBKARAW9rAM6MIAWCBAMZ+TJJJBGEtMIAEAMFHWAcCEFHcAaCEFGaAL6HhAaAL9HMBXVKKARAW9rAM6MOAWCBAMZ+TJJJB8aCEHEINAWGxAMFHWALAEGOsMLDNARAW9rAM6MBAOCEFHEAWCBAMZ+TJJJB8aAxMEKKCBHWAOAL6MOXIKINDNAXtMBAdAZFrBBHxCBHEAoHOINAdCJLFAEFAOrBBGqAx9rGxCETAxCkTCk91CR4786BBAOALFHOAqHxAECEFGEAX9HMBKKARAa9rAM6MEARAaCBAMZ+TJJJBGlAMFGW9rCk6MDCBHkAdCJLFHcINAdCJLFAkFHyCWH8aCZHaCEHqINDNDNAqCE9HMBCUHOAyrBBMECBHODNINAOGECSsMEAECEFHOAcAEFCEFrBBtMBKKCUCBAECS6eHOXEKAqCETC/+fffEgHOCUAqTCU7CfEgHxCBHEINAOAxAcAEFrBB9NFHOAECEFGECZ9HMBKKAOAaAOAa6GEeHaAqA8aAEeH8aAqCETGqCW6MBKDNDNDNDNA8aCUFpDIEBKAlAkCO4FGEAErBBCDCIA8aCLseAkCI4COgTv86BBA8aCW9HMEAWAy8pBB83BBAWCWFAyCWF8pBB83BBAWCZFHWXDKAlAkCO4FGEAErBBCEAkCI4COgTv86BBKDNCWA8a9tGeMBINAWCB86BBAWCEFHWXBKKCUA8aTCU7HqCBH3AcH5INA5HEAeHxCBHOINAErBBGaAqAaAqCfEgGy6eAOCfEgA8aTvHOAECEFHEAxCUFGxMBKAWAO86BBA5AeFH5AWCEFHWA3AeFG3CZ6MBKCBHEINDNAcAEFrBBGOAy6MBAWAO86BBAWCEFHWKAECEFGECZ9HMBKKDNAkCZFGkAS9PMBAcCZFHcARAW9rCl0MEKKAkAS6MEAWtMEAoCEFHoAZCEFGZAL6HhAWHaAZALsMIXBKKCBHWAhCEgtMEXLKCBHWAhCEgMIKAdApAXCUFAL2FALZmJJJB8aAXAKFHKAWMBKCBHOXDKCBHOARAW9rCAALALCA6e6MEDNALC8f0MBAWCBCAAL9rGEZ+TJJJBAEFHWKAWAdCJDFALZmJJJBALFAB9rHOXEKCBHOKAVCJOF8kJJJJBAOK9HEEUAECAAECA0eABCJ/ABAE9uC/wfBgGDCJDADCJD6eGDFCUFAD9uAE2ADCL4CIFCD4ADv2FCEFKMBCBABbD+Q+KJJBK/YSE3U8jJJJJBC/AE9rGL8kJJJJBCBHVDNAICI9uGOChFAE0MBABCBYDn+KJJBGVC/gEv86BBALC/ABFCfECJEZ+TJJJB8aALCuFGR9CU83IBALC8wFGW9CU83IBALCYFGd9CU83IBALCAFGQ9CU83IBALCkFGK9CU83IBALCZFGX9CU83IBAL9CU83IWAL9CU83IBABAEFC9wFHMABCEFGpAOFHEDNAItMBCMCSAVCB9KGSeHZAVCE9IHhCBHoCBHaCBHcCBHxCBHqINDNAEAM9NMBCBHVXIKAqCUFHVADAcCDTFGOYDBHlAOCWFYDBHkAOCLFYDBHyCBH8aDNDNINALC/ABFAVCSgCITFGOYDLHeDNDNDNAOYDBGOAl9HMBAeAysMEKDNAOAy9HMBAeAk9HMBA8aCEFH8aXEKAOAk9HMEAeAl9HMEA8aCDFH8aKA8aC870MDAxCUFHVADA8aCIgCX2GOC+Y1JJBFYDBAcFCDTFYDBHeADAOCn1JJBFYDBAcFCDTFYDBHkADAOC+Q1JJBFYDBAcFCDTFYDBHlCBHODNINDNALAVCSgCDTFYDBAe9HMBAOHyXDKCUHyAVCUFHVAOCEFGOCZ9HMBKKAyCB9KAyAZ9IgGVCU7AeAosGOgH3DNDNDNDNDNAyCBCSAOeAVeGVCS9HMBAhMBAeAeAaAeCEFAasGVeGaCEFsMECMCSAVeHVKApAVA8aCDTC/wEgv86BBAVCS9HMEAeAa9rGVCETAVC8f917HVINAEAVCfB0CRTAVCfBgv86BBAECEFHEAVCJE6HOAVCR4HVAOtMBKAeHaXDKCpHVApA8aCDTCpv86BBAeHaKAVtMBAVAZ9IMEKALAxCDTFAebDBAxCEFCSgHxKAoA3FHoALC/ABFAqCITFGVAkbDLAVAebDBALC/ABFAqCEFCSgGVCITFGOAebDLAOAlbDBAVCEFHOXIKAVCUFHVA8aCLFG8aC/AB9HMBKKDNADCEAkAosCETAyAoseCX2GVC+Q1JJBFYDBAcFCDTFYDBGltADAVCn1JJBFYDBAcFCDTFYDBG8aCEsgADAVC+Y1JJBFYDBAcFCDTFYDBGyCDsgAoCB9HgASgG5CE9HMBAR9CU83IBAW9CU83IBAd9CU83IBAQ9CU83IBAK9CU83IBAX9CU83IBAL9CU83IWAL9CU83IBCBHoKCBHeAxCUFGVHODNINDNALAOCSgCDTFYDBA8a9HMBAeHkXDKCUHkAOCUFHOAeCEFGeCZ9HMBKKCBHODNINDNALAVCSgCDTFYDBAy9HMBAOHeXDKCUHeAVCUFHVAOCEFGOCZ9HMBKKAoAlAosG8eFH3DNDNAkCM0MBAkCEFHkXEKCBCSA8aA3sGVeHkA3AVFH3KDNDNAeCM0MBAeCEFHeXEKCBCSAyA3sGVeHeA3AVFH3KC9+CUA8eeH8fAeAkCLTvHOCBHVDNDNDNINAVCJ1JJBFrBBAOCfEgsMEAVCEFGVCZ9HMBXDKKAlAo9HAVCM0vA5vMBApAVC/wEv86BBXEKApA8f86BBAEAO86BBAECEFHEKDNA8eMBAlAa9rGVCETAVC8f917HVINAEAVCfB0GOCRTAVCfBgv86BBAVCR4HVAECEFHEAOMBKAlHaKDNAkCS9HMBA8aAa9rGVCETAVC8f917HVINAEAVCfB0GOCRTAVCfBgv86BBAVCR4HVAECEFHEAOMBKA8aHaKDNAeCS9HMBAyAa9rGVCETAVC8f917HVINAEAVCfB0GOCRTAVCfBgv86BBAVCR4HVAECEFHEAOMBKAyHaKALAxCDTFAlbDBAxCEFCSgHVDNDNAkpZBEEEEEEEEEEEEEEBEKALAVCDTFA8abDBAxCDFCSgHVKDNDNAepZBEEEEEEEEEEEEEEBEKALAVCDTFAybDBAVCEFCSgHVKALC/ABFAqCITFGOAlbDLAOA8abDBALC/ABFAqCEFCSgCITFGOA8abDLAOAybDBALC/ABFAqCDFCSgCITFGOAybDLAOAlbDBAqCIFHOAVHxA3HoKApCEFHpAOCSgHqAcCIFGcAI6MBKKCBHVAEAM0MBCBHVINAEAVFAVCJ1JJBFrBB86BBAVCEFGVCZ9HMBKAEAB9rAVFHVKALC/AEF8kJJJJBAVKzEEUCBHDDNINADCEFGDC8f0MECEADTAE6MBKKADCRFCfEgCR9uCI2CDFABCI9u2ChFKMBCBABbDn+KJJBK+cDEWU8jJJJJBCZ9rHLCBHVDNAICVFAE0MBCBHOABCBrBn+KJJBC/QEv86BBAL9CB83IWABCEFHRABAEFC98FHWDNAItMBCBHdINDNARAW6MBCBSKADAdCDTFYDBGQALCWFAOAQALCWFAOCDTFYDB9rGEAEC8f91GEFAE7C507GOCDTFGKYDB9rGEC8e91C9+gAECDT7AOvHEINARAECfB0GVCRTAECfBgv86BBAECR4HEARCEFHRAVMBKAKAQbDBAdCEFGdAI9HMBKKCBHVARAW0MBARCBbBBARAB9rCLFHVKAVKbEEUCBHDDNINADCEFGDC8f0MECEADTAE6MBKKADCWFCfEgCR9uAB2CVFK+DVLI99DUI99LUDNAEtMBCUADCETCUFTCU7+yHVDNDNCUAICUFTCU7+yGOjBBBzmGR+LjBBB9P9dtMBAR+oHWXEKCJJJJ94HWKCBHICBHdINALCLFiDBGRjBBBBjBBJzALiDBGQ+LAR+LmALCWFiDBGK+LmGR+VARjBBBB9beGRnHXAQARnHRALCXFiDBHQDNDNAKjBBBB9gtMBAXHKXEKjBBJzAR+L+TGKAK+MAXjBBBB9geHKjBBJzAX+L+TGXAX+MARjBBBB9geHRKDNDNAQjBBJ+/AQjBBJ+/9geGXjBBJzAXjBBJz9feAVnjBBBzjBBB+/AQjBBBB9gemGQ+LjBBB9P9dtMBAQ+oHMXEKCJJJJ94HMKDNDNAKjBBJ+/AKjBBJ+/9geGQjBBJzAQjBBJz9feAOnjBBBzjBBB+/AKjBBBB9gemGQ+LjBBB9P9dtMBAQ+oHpXEKCJJJJ94HpKDNDNARjBBJ+/ARjBBJ+/9geGQjBBJzAQjBBJz9feAOnjBBBzjBBB+/ARjBBBB9gemGR+LjBBB9P9dtMBAR+oHSXEKCJJJJ94HSKDNDNADCL9HMBABAdFGZAS86BBAZCIFAM86BBAZCDFAW86BBAZCEFAp86BBXEKABAIFGZAS87EBAZCOFAM87EBAZCLFAW87EBAZCDFAp87EBKALCZFHLAICWFHIAdCLFHdAECUFGEMBKKK/KLLD99EUD99EUDNAEtMBDNDNCUAICUFTCU7+yGVjBBBzmGO+LjBBB9P9dtMBAO+oHIXEKCJJJJ94HIKAIC/8fIgHRINABCOFCICDALCLFiDB+LALiDB+L9eGIALCWFiDB+LALAICDTFiDB+L9eeGIALCXFiDB+LALAICDTFiDB+L9eeGIARv87EBDNDNALAICEFCIgCDTFiDBj/zL+1znjBBJ+/jBBJzALAICDTFiDBjBBBB9deGOnGWjBBJ+/AWjBBJ+/9geGdjBBJzAdjBBJz9feAVnjBBBzjBBB+/AWjBBBB9gemGW+LjBBB9P9dtMBAW+oHQXEKCJJJJ94HQKABAQ87EBDNDNAOALAICDFCIgCDTFiDBj/zL+1znnGWjBBJ+/AWjBBJ+/9geGdjBBJzAdjBBJz9feAVnjBBBzjBBB+/AWjBBBB9gemGW+LjBBB9P9dtMBAW+oHQXEKCJJJJ94HQKABCDFAQ87EBDNDNAOALAICUFCIgCDTFiDBj/zL+1znnGOjBBJ+/AOjBBJ+/9geGWjBBJzAWjBBJz9feAVnjBBBzjBBB+/AOjBBBB9gemGO+LjBBB9P9dtMBAO+oHIXEKCJJJJ94HIKABCLFAI87EBABCWFHBALCZFHLAECUFGEMBKKK+7DDWUE998jJJJJBCZ9rGV8kJJJJBDNAEtMBADCL6MBCEAI9rHOADCD4GDCEADCE0eHRADCDTHWCBHdINC+cUHDALHIARHQINAIiDBAVCXFZ+XJJJB8aAVYDXGKADADAK9IeHDAICLFHIAQCUFGQMBKAOADFGICkTHKCBHDCBAI9rHXARHIINDNDNALADFiDBGMAXZ+WJJJBjBBBzjBBB+/AMjBBBB9gemGM+LjBBB9P9dtMBAM+oHQXEKCJJJJ94HQKABADFAQCfffRgAKvbDBADCLFHDAICUFGIMBKABAWFHBALAWFHLAdCEFGdAE9HMBKKAVCZF8kJJJJBK/tKDcUI998jJJJJBC+QD9rGV8kJJJJBAVC+oEFCBC/kBZ+TJJJB8aCBHODNADtMBCBHOAItMBDNABAE9HMBAVCUADCDTGOADCffffI0eCBYD1+KJJBhJJJJBBGEbD+oEAVCEbD1DAEABAOZmJJJB8aKAVC+YEFCWFCBbDBAV9CB83I+YEAVC+YEFAEADAIAVC+oEFZ+NJJJBCUAICDTGRAICffffI0eGWCBYD1+KJJBhJJJJBBHOAVC+oEFAVYD1DGdCDTFAObDBAVAdCEFGQbD1DAOAVYD+YEGKARZmJJJBHXAVC+oEFAQCDTFADCI9uGMCBYD1+KJJBhJJJJBBGObDBAVAdCDFGRbD1DAOCBAMZ+TJJJBHpAVC+oEFARCDTFAWCBYD1+KJJBhJJJJBBGSbDBAVAdCIFGQbD1DAXHOASHRINARALiDBALAOYDBGWCWAWCW6eCDTFC/EBFiDBmuDBAOCLFHOARCLFHRAICUFGIMBKAVC+oEFAQCDTFCUAMCDTADCffff970eCBYD1+KJJBhJJJJBBGQbDBAVAdCLFbD1DDNADCI6MBAMCEAMCE0eHIAEHOAQHRINARASAOYDBCDTFiDBASAOCLFYDBCDTFiDBmASAOCWFYDBCDTFiDBmuDBAOCXFHOARCLFHRAICUFGIMBKKAVC/MBFHZAVYD+cEHhAVYD+gEHoAVHOCBHWCBHRCBHaCEHcINAOHxCIHqAEARCI2GlCDTFGOCWFYDBHkAOYDBHDABAaCX2FGICLFAOCLFYDBGdbDBAIADbDBAICWFAkbDBApARFCE86BBAZAkbDWAZAdbDLAZADbDBAQARCDTFCBbDBDNAWtMBCIHqAxHIINDNAIYDBGOADsMBAOAdsMBAOAksMBAZAqCDTFAObDBAqCEFHqKAICLFHIAWCUFGWMBKKAaCEFHaAXADCDTFGOAOYDBCUFbDBAXAdCDTFGOAOYDBCUFbDBAXAkCDTFGOAOYDBCUFbDBCBHWINAoAhAEAWAlFCDTFYDBCDTGIFYDBCDTFGkHOAKAIFGdYDBGDHIDNADtMBDNINAOYDBARsMEAOCLFHOAICUFGItMDXBKKAOADCDTAkFC98FYDBbDBAdAdYDBCUFbDBKAWCEFGWCI9HMBKDNDNDNAqtMBCUHRjBBBBHyCBHOINASAZAOCDTFYDBCDTGIFGWiDBH8aAWALCBAOCEFGdAOCS0eCDTFiDBALAXAIFYDBGOCWAOCW6eCDTFC/EBFiDBmGeuDBDNAKAIFYDBGWtMBAeA8a+THeAoAhAIFYDBCDTFHOAWCDTHIINAQAOYDBGWCDTFGDAeADiDBmG8auDBA8aAyAyA8a9dGDeHyAWARADeHRAOCLFHOAIC98FGIMBKKAdHOAdAq9HMBKARCU9HMEKAcAM9PMEINDNApAcFrBBMBAcHRXDKAMAcCEFGc9HMBXDKKAqCZAqCZ6eHWAZHOAxHZARCU9HMEKKAVYD1DHOKAOCDTAVC+oEFFC98FHRDNINAOtMEARYDBCBYD+E+KJJBh+BJJJBBARC98FHRAOCUFHOXBKKAVC+QDF8kJJJJBK/uLEVUCUAICDTGVAICffffI0eGOCBYD1+KJJBhJJJJBBHRALALYD9gGWCDTFARbDBALAWCEFbD9gABARbDBAOCBYD1+KJJBhJJJJBBHRALALYD9gGOCDTFARbDBALAOCEFbD9gABARbDLCUADCDTADCffffI0eCBYD1+KJJBhJJJJBBHRALALYD9gGOCDTFARbDBALAOCEFbD9gABARbDWABYDBCBAVZ+TJJJB8aADCI9uHWDNADtMBABYDBHOAEHLADHRINAOALYDBCDTFGVAVYDBCEFbDBALCLFHLARCUFGRMBKKDNAItMBABYDBHLABYDLHRCBHVAIHOINARAVbDBARCLFHRALYDBAVFHVALCLFHLAOCUFGOMBKKDNADCI6MBAWCEAWCE0eHdABYDLHRABYDWHVCBHLINAECWFYDBHOAECLFYDBHDARAEYDBCDTFGWAWYDBGWCEFbDBAVAWCDTFALbDBARADCDTFGDADYDBGDCEFbDBAVADCDTFALbDBARAOCDTFGOAOYDBGOCEFbDBAVAOCDTFALbDBAECXFHEAdALCEFGL9HMBKKDNAItMBABYDLHEABYDBHLINAEAEYDBALYDB9rbDBALCLFHLAECLFHEAICUFGIMBKKKqBABAEADAIC+01JJBZ+MJJJBKqBABAEADAIC+c+JJJBZ+MJJJBK9dEEUABCfEAICDTZ+TJJJBHLCBHIDNADtMBINDNALAEYDBCDTFGBYDBCU9HMBABAIbDBAICEFHIKAECLFHEADCUFGDMBKKAIK9TEIUCBCBYD+M+KJJBGEABCIFC98gFGBbD+M+KJJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK/lEEEUDNDNAEABvCIgtMBABHIXEKDNDNADCZ9PMBABHIXEKABHIINAIAEYDBbDBAICLFAECLFYDBbDBAICWFAECWFYDBbDBAICXFAECXFYDBbDBAICZFHIAECZFHEADC9wFGDCS0MBKKADCL6MBINAIAEYDBbDBAECLFHEAICLFHIADC98FGDCI0MBKKDNADtMBINAIAErBB86BBAICEFHIAECEFHEADCUFGDMBKKABK/AEEDUDNDNABCIgtMBABHIXEKAECfEgC+B+C+EW2HLDNDNADCZ9PMBABHIXEKABHIINAIALbDBAICXFALbDBAICWFALbDBAICLFALbDBAICZFHIADC9wFGDCS0MBKKADCL6MBINAIALbDBAICLFHIADC98FGDCI0MBKKDNADtMBINAIAE86BBAICEFHIADCUFGDMBKKABK9TEIUCBCBYD+M+KJJBGEABCIFC98gFGBbD+M+KJJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK9+EIUzBHEDNDNCBYD+M+KJJBGDAECZTGI9NMBCUHEADAI9rCffIFCZ4NBCUsMEKADHEKCBABAE9rCIFC98gCBYD+M+KJJBFGDbD+M+KJJBDNADzBCZTGE9NMBADAE9rCffIFCZ4NB8aKKXBABAEZ+YJJJBK+BEEIUDNAB+8GDCl4GICfEgGLCfEsMBDNALMBDNABjBBBB9cMBAECBbDBABSKABjBBJ9fnAEZ+XJJJBHBAEAEYDBCNFbDBABSKAEAICfEgC+CUFbDBADCfff+D94gCJJJ/4Iv++HBKABK+gEBDNDNAECJE9IMBABjBBBUnHBDNAECfE9PMBAEC+BUFHEXDKABjBBBUnHBAECPDAECPD6eC+C9+FHEXEKAEC+BU9KMBABjBBJXnHBDNAEC+b9+9NMBAEC/mBFHEXEKABjBBJXnHBAEC+299AEC+2990eC/MEFHEKABAEClTCJJJ/8IF++nKK+eDDBCJWK+EDB4+H9W9n94+p+Gw+J9o+YE9pBBBBBBEBBBDBBBEBBBDBBBBBBBDBBBBBBBEBBBBBBB+L29Hz/69+9Kz/n/76z/RG97z/Z/O9Xz8j/b85z/+/U9Yz/B/K9hz+2/z9dz9E+L9Mz59a8kz+R/t3z+a+Zyz79ohz/J4++8++y+d9v8+BBBB9S+49+z8r+Hbz9m9m/m8+l/Z/O8+/8+pg89Q/X+j878r+Hq8++m+b/E87BBBBBBJzBBJzBBJz+e/v/n8++y+dSz9I/h/68+XD/r8+/H0838+/w+nOzBBBB+wv9o8+UF888+9I/h/68+9C9g/l89/N/M9M89/d8kO8+BBBBF+8Tz9M836zs+2azl/Zpzz818ez9E+LXz/u98f8+819e/68+BC+EQKXEBBBDBBBAwBB",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(p){n=p.instance,n.exports.__wasm_call_ctors(),n.exports.meshopt_encodeVertexVersion(0),n.exports.meshopt_encodeIndexVersion(1)});function o(p){for(var g=new Uint8Array(p.length),h=0;h<p.length;++h){var A=p.charCodeAt(h);g[h]=A>96?A-71:A>64?A-65:A>47?A+4:A>46?63:62}for(var x=0,h=0;h<p.length;++h)g[x++]=g[h]<60?t[g[h]]:(g[h]-60)*64+g[++h];return g.buffer.slice(0,x)}function r(p){if(!p)throw new Error("Assertion failed")}function s(p){return new Uint8Array(p.buffer,p.byteOffset,p.byteLength)}function a(p,g,h){var A=n.exports.sbrk,x=A(p.length*4),C=A(g*4),T=new Uint8Array(n.exports.memory.buffer),E=s(p);T.set(E,x),h&&h(x,x,p.length,g);var S=n.exports.meshopt_optimizeVertexFetchRemap(C,x,p.length,g);T=new Uint8Array(n.exports.memory.buffer);var v=new Uint32Array(g);new Uint8Array(v.buffer).set(T.subarray(C,C+g*4)),E.set(T.subarray(x,x+p.length*4)),A(x-A(0));for(var D=0;D<p.length;++D)p[D]=v[p[D]];return[v,S]}function c(p,g,h,A,x){var C=n.exports.sbrk,T=C(g),E=C(A*x),S=new Uint8Array(n.exports.memory.buffer);S.set(s(h),E);var v=p(T,g,E,A,x),D=new Uint8Array(v);return D.set(S.subarray(T,T+v)),C(T-C(0)),D}function u(p){for(var g=0,h=0;h<p.length;++h){var A=p[h];g=g<A?A:g}return g}function f(p,g){if(r(g==2||g==4),g==4)return new Uint32Array(p.buffer,p.byteOffset,p.byteLength/4);var h=new Uint16Array(p.buffer,p.byteOffset,p.byteLength/2);return new Uint32Array(h)}function d(p,g,h,A,x,C){var T=n.exports.sbrk,E=T(h*A),S=T(h*C),v=new Uint8Array(n.exports.memory.buffer);v.set(s(g),S),p(E,h,A,x,S);var D=new Uint8Array(h*A);return D.set(v.subarray(E,E+h*A)),T(E-T(0)),D}return{ready:i,supported:!0,reorderMesh:function(p,g,h){var A=g?h?n.exports.meshopt_optimizeVertexCacheStrip:n.exports.meshopt_optimizeVertexCache:void 0;return a(p,u(p)+1,A)},encodeVertexBuffer:function(p,g,h){r(h>0&&h<=256),r(h%4==0);var A=n.exports.meshopt_encodeVertexBufferBound(g,h);return c(n.exports.meshopt_encodeVertexBuffer,A,p,g,h)},encodeIndexBuffer:function(p,g,h){r(h==2||h==4),r(g%3==0);var A=f(p,h),x=n.exports.meshopt_encodeIndexBufferBound(g,u(A)+1);return c(n.exports.meshopt_encodeIndexBuffer,x,A,g,4)},encodeIndexSequence:function(p,g,h){r(h==2||h==4);var A=f(p,h),x=n.exports.meshopt_encodeIndexSequenceBound(g,u(A)+1);return c(n.exports.meshopt_encodeIndexSequence,x,A,g,4)},encodeGltfBuffer:function(p,g,h,A){var x={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return r(x[A]),x[A](p,g,h)},encodeFilterOct:function(p,g,h,A){return r(h==4||h==8),r(A>=1&&A<=16),d(n.exports.meshopt_encodeFilterOct,p,g,h,A,16)},encodeFilterQuat:function(p,g,h,A){return r(h==8),r(A>=4&&A<=16),d(n.exports.meshopt_encodeFilterQuat,p,g,h,A,16)},encodeFilterExp:function(p,g,h,A){return r(h>0&&h%4==0),r(A>=1&&A<=24),d(n.exports.meshopt_encodeFilterExp,p,g,h,A,h)}}}();var Oee=function(){"use strict";var e="B9h79tEBBBE8fV9gBB9gVUUUUUEU9gIUUUB9gEUEU9gIUUUEUIKQBEEEDDDILLVIEBEOWEUEC+Q/IEKR/LEdO9tw9t9vv95DBh9f9f939h79t9f9j9h229f9jT9vv7BB8a9tw79o9v9wT9f9kw9j9v9kw9WwvTw949C919m9mwvBEy9tw79o9v9wT9f9kw9j9v9kw69u9kw949C919m9mwvBDe9tw79o9v9wT9f9kw9j9v9kw69u9kw949Twg91w9u9jwBIl9tw79o9v9wT9f9kw9j9v9kws9p2Twv9P9jTBLk9tw79o9v9wT9f9kw9j9v9kws9p2Twv9R919hTBVl9tw79o9v9wT9f9kw9j9v9kws9p2Twvt949wBOL79iv9rBRQ+p8yQDBK/3SEZU8jJJJJBCJ/EB9rGV8kJJJJBC9+HODNADCEFAL0MBCUHOAIrBBC+gE9HMBAVAIALFGRAD9rADZ1JJJBHWCJ/ABAD9uHOAICEFHLDNADtMBAOC/wfBgGOCJDAOCJD6eHdCBHQINAQAE9PMEAdAEAQ9rAQAdFAE6eGKCSFGOCL4CIFCD4HXDNDNDNDNAOC9wgGMtMBCBHpCEHSAWCJDFHZALHhINARAh9rAX6MIDNARAhAXFGL9rCk6MBCZHOINAWCJ/CBFAOGIFGOC9wFHoDNDNDNDNDNAhAIC9wFGaCO4FrBBAaCI4COg4CIgpLBEDIBKAo9CB83IBAoCWF9CB83IBXIKAoALrBLALrBBGaCO4GcAcCIsGce86BBAOCgFALCLFAcFGorBBAaCL4CIgGcAcCIsGce86BBAOCvFAoAcFGorBBAaCD4CIgGcAcCIsGce86BBAOC7FAoAcFGorBBAaCIgGaAaCIsGae86BBAOCTFAoAaFGarBBALrBEGoCO4GcAcCIsGce86BBAOC91FAaAcFGarBBAoCL4CIgGcAcCIsGce86BBAOC4FAaAcFGarBBAoCD4CIgGcAcCIsGce86BBAOC93FAaAcFGarBBAoCIgGoAoCIsGoe86BBAOC94FAaAoFGarBBALrBDGoCO4GcAcCIsGce86BBAOC95FAaAcFGarBBAoCL4CIgGcAcCIsGce86BBAOC96FAaAcFGarBBAoCD4CIgGcAcCIsGce86BBAOC97FAaAcFGarBBAoCIgGoAoCIsGoe86BBAOC98FAaAoFGorBBALrBIGLCO4GaAaCIsGae86BBAOC99FAoAaFGorBBALCL4CIgGaAaCIsGae86BBAOC9+FAoAaFGorBBALCD4CIgGaAaCIsGae86BBAOCUFAoAaFGOrBBALCIgGLALCIsGLe86BBAOALFHLXDKAoALrBWALrBBGaCL4GcAcCSsGce86BBAOCgFALCWFAcFGorBBAaCSgGaAaCSsGae86BBAOCvFAoAaFGorBBALrBEGaCL4GcAcCSsGce86BBAOC7FAoAcFGorBBAaCSgGaAaCSsGae86BBAOCTFAoAaFGorBBALrBDGaCL4GcAcCSsGce86BBAOC91FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC4FAoAaFGorBBALrBIGaCL4GcAcCSsGce86BBAOC93FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC94FAoAaFGorBBALrBLGaCL4GcAcCSsGce86BBAOC95FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC96FAoAaFGorBBALrBVGaCL4GcAcCSsGce86BBAOC97FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC98FAoAaFGorBBALrBOGaCL4GcAcCSsGce86BBAOC99FAoAcFGorBBAaCSgGaAaCSsGae86BBAOC9+FAoAaFGorBBALrBRGLCL4GaAaCSsGae86BBAOCUFAoAaFGOrBBALCSgGLALCSsGLe86BBAOALFHLXEKAoAL8pBB83BBAoCWFALCWF8pBB83BBALCZFHLKDNAIAM9PMBAICZFHOARAL9rCl0MEKKAIAM6MIALtMIDNAKtMBAWApFrBBHoCBHOAZHIINAIAWCJ/CBFAOFrBBGaCE4CBAaCEg9r7AoFGo86BBAIADFHIAOCEFGOAK9HMBKKAZCEFHZApCEFGpAD6HSALHhApAD9HMEXVKKCBHLASCEgMDXIKALAXAD2FHcDNAKtMBCBHhCEHSAWCJDFHMINARAL9rAX6MIALtMDALAXFHLAWAhFrBBHoCBHOAMHIINAIAWCJ/CBFAOFrBBGaCE4CBAaCEg9r7AoFGo86BBAIADFHIAOCEFGOAK9HMBKAMCEFHMAhCEFGhAD6HSAhAD9HMBKAcHLXIKCBHOCEHSINARAL9rAX6MDALtMEALAXFHLAOCEFGOAD6HSADAO9HMBKAcHLXDKCBHLASCEgtMEKC9+HOXIKABAQAD2FAWCJDFAKAD2Z1JJJB8aAWAWCJDFAKCUFAD2FADZ1JJJB8aAKAQFHQALMBKC9+HOXEKCBC99ARAL9rADCAADCA0eseHOKAVCJ/EBF8kJJJJBAOK/YZEhU8jJJJJBC/AE9rGV8kJJJJBC9+HODNAECI9uGRChFAL0MBCUHOAIrBBGWC/wEgC/gE9HMBAWCSgGdCE0MBAVC/ABFCfECJEZ+JJJJB8aAVCuF9CU83IBAVC8wF9CU83IBAVCYF9CU83IBAVCAF9CU83IBAVCkF9CU83IBAVCZF9CU83IBAV9CU83IWAV9CU83IBAIALFC9wFHQAICEFGWARFHODNAEtMBCMCSAdCEseHKCBHXCBHMCBHdCBHICBHLINDNAOAQ9NMBC9+HOXIKDNDNAWrBBGRC/vE0MBAVC/ABFALARCL4CU7FCSgCITFGpYDLHSApYDBHZDNARCSgGpAK9PMBAVAIARCU7FCSgCDTFYDBAXApeHRAptHpDNDNADCD9HMBABAdCETFGhAZ87EBAhCDFAS87EBAhCLFAR87EBXEKABAdCDTFGhAZbDBAhCLFASbDBAhCWFARbDBKAXApFHXAVC/ABFALCITFGhARbDBAhASbDLAVAICDTFARbDBAVC/ABFALCEFCSgGLCITFGhAZbDBAhARbDLAIApFHIALCEFHLXDKDNDNApCSsMBAMApFApC987FCEFHMXEKAOCEFHRAO8sBBGpCfEgHhDNDNApCU9MMBARHOXEKAOCVFHOAhCfBgHhCRHpDNINAR8sBBGoCfBgApTAhvHhAoCU9KMEARCEFHRApCRFGpC8j9HMBXDKKARCEFHOKAhCE4CBAhCEg9r7AMFHMKDNDNADCD9HMBABAdCETFGRAZ87EBARCDFAS87EBARCLFAM87EBXEKABAdCDTFGRAZbDBARCLFASbDBARCWFAMbDBKAVC/ABFALCITFGRAMbDBARASbDLAVAICDTFAMbDBAVC/ABFALCEFCSgGLCITFGRAZbDBARAMbDLAICEFHIALCEFHLXEKDNARCPE0MBAXCEFGoAVAIAQARCSgFrBBGpCL49rCSgCDTFYDBApCZ6GheHRAVAIAp9rCSgCDTFYDBAoAhFGSApCSgGoeHpAotHoDNDNADCD9HMBABAdCETFGZAX87EBAZCDFAR87EBAZCLFAp87EBXEKABAdCDTFGZAXbDBAZCLFARbDBAZCWFApbDBKAVAICDTFAXbDBAVC/ABFALCITFGZARbDBAZAXbDLAVAICEFGICSgCDTFARbDBAVC/ABFALCEFCSgCITFGZApbDBAZARbDLAVAIAhFCSgGICDTFApbDBAVC/ABFALCDFCSgGLCITFGRAXbDBARApbDLALCEFHLAIAoFHIASAoFHXXEKAXCBAOrBBGZeGaARC/+EsGRFHSAZCSgHcAZCL4HxDNDNAZCS0MBASCEFHoXEKASHoAVAIAx9rCSgCDTFYDBHSKDNDNAcMBAoCEFHXXEKAoHXAVAIAZ9rCSgCDTFYDBHoKDNDNARtMBAOCEFHRXEKAOCDFHRAO8sBEGhCfEgHpDNAhCU9KMBAOCOFHaApCfBgHpCRHODNINAR8sBBGhCfBgAOTApvHpAhCU9KMEARCEFHRAOCRFGOC8j9HMBKAaHRXEKARCEFHRKApCE4CBApCEg9r7AMFGMHaKDNDNAxCSsMBARHpXEKARCEFHpAR8sBBGOCfEgHhDNAOCU9KMBARCVFHSAhCfBgHhCRHODNINAp8sBBGRCfBgAOTAhvHhARCU9KMEApCEFHpAOCRFGOC8j9HMBKASHpXEKApCEFHpKAhCE4CBAhCEg9r7AMFGMHSKDNDNAcCSsMBApHOXEKApCEFHOAp8sBBGRCfEgHhDNARCU9KMBApCVFHoAhCfBgHhCRHRDNINAO8sBBGpCfBgARTAhvHhApCU9KMEAOCEFHOARCRFGRC8j9HMBKAoHOXEKAOCEFHOKAhCE4CBAhCEg9r7AMFGMHoKDNDNADCD9HMBABAdCETFGRAa87EBARCDFAS87EBARCLFAo87EBXEKABAdCDTFGRAabDBARCLFASbDBARCWFAobDBKAVC/ABFALCITFGRASbDBARAabDLAVAICDTFAabDBAVC/ABFALCEFCSgCITFGRAobDBARASbDLAVAICEFGICSgCDTFASbDBAVC/ABFALCDFCSgCITFGRAabDBARAobDLAVAIAZCZ6AxCSsvFGICSgCDTFAobDBAIActAcCSsvFHIALCIFHLKAWCEFHWALCSgHLAICSgHIAdCIFGdAE6MBKKCBC99AOAQseHOKAVC/AEF8kJJJJBAOK+LLEVU8jJJJJBCZ9rHVC9+HODNAECVFAL0MBCUHOAIrBBC/+EgC/QE9HMBAV9CB83IWAICEFHRAIALFC98FHWDNAEtMBDNADCDsMBCBHdINDNARAW6MBC9+SKARCEFHOAR8sBBGLCfEgHIDNDNALCU9MMBAOHRXEKARCVFHRAICfBgHICRHLDNINAO8sBBGDCfBgALTAIvHIADCU9KMEAOCEFHOALCRFGLC8j9HMBXDKKAOCEFHRKABAdCDTFAICD4CBAICE4CEg9r7AVCWFAICEgCDTvGOYDBFGLbDBAOALbDBAdCEFGdAE9HMBXDKKCBHdINDNARAW6MBC9+SKARCEFHOAR8sBBGLCfEgHIDNDNALCU9MMBAOHRXEKARCVFHRAICfBgHICRHLDNINAO8sBBGDCfBgALTAIvHIADCU9KMEAOCEFHOALCRFGLC8j9HMBXDKKAOCEFHRKABAdCETFAICD4CBAICE4CEg9r7AVCWFAICEgCDTvGOYDBFGL87EBAOALbDBAdCEFGdAE9HMBKKCBC99ARAWseHOKAOK+lVOEUE99DUD99EUD99DNDNADCL9HMBAEtMEINDNDNABCDFGD8sBB+yAB8sBBGI+yGL+L+TABCEFGV8sBBGO+yGR+L+TGWjBB/+9CAWAWnjBBBBAWAWjBBBB9gGdeGQ+MGKAQAICB9IeALmGWAWnAKAQAOCB9IeARmGQAQnmm+R+VGLnjBBBzjBBB+/AdemGR+LjBBB9P9dtMBAR+oHIXEKCJJJJ94HIKADAI86BBDNDNAQALnjBBBzjBBB+/AQjBBBB9gemGQ+LjBBB9P9dtMBAQ+oHDXEKCJJJJ94HDKAVAD86BBDNDNAWALnjBBBzjBBB+/AWjBBBB9gemGW+LjBBB9P9dtMBAW+oHDXEKCJJJJ94HDKABAD86BBABCLFHBAECUFGEMBXDKKAEtMBINDNDNABCLFGD8uEB+yAB8uEBGI+yGL+L+TABCDFGV8uEBGO+yGR+L+TGWjB/+fsAWAWnjBBBBAWAWjBBBB9gGdeGQ+MGKAQAICB9IeALmGWAWnAKAQAOCB9IeARmGQAQnmm+R+VGLnjBBBzjBBB+/AdemGR+LjBBB9P9dtMBAR+oHIXEKCJJJJ94HIKADAI87EBDNDNAQALnjBBBzjBBB+/AQjBBBB9gemGQ+LjBBB9P9dtMBAQ+oHDXEKCJJJJ94HDKAVAD87EBDNDNAWALnjBBBzjBBB+/AWjBBBB9gemGW+LjBBB9P9dtMBAW+oHDXEKCJJJJ94HDKABAD87EBABCWFHBAECUFGEMBKKK/SILIUI99IUE99DNAEtMBCBHIABHLINDNDNj/zL81zALCOF8uEBGVCIv+y+VGOAL8uEB+ynGRjB/+fsnjBBBzjBBB+/ARjBBBB9gemGW+LjBBB9P9dtMBAW+oHdXEKCJJJJ94HdKALCLF8uEBHQALCDF8uEBHKABAVCEFCIgAIvCETFAd87EBDNDNAOAK+ynGWjB/+fsnjBBBzjBBB+/AWjBBBB9gemGX+LjBBB9P9dtMBAX+oHKXEKCJJJJ94HKKABAVCDFCIgAIvCETFAK87EBDNDNAOAQ+ynGOjB/+fsnjBBBzjBBB+/AOjBBBB9gemGX+LjBBB9P9dtMBAX+oHQXEKCJJJJ94HQKABAVCUFCIgAIvCETFAQ87EBDNDNjBBJzARARn+TAWAWn+TAOAOn+TGRjBBBBARjBBBB9ge+RjB/+fsnjBBBzmGR+LjBBB9P9dtMBAR+oHQXEKCJJJJ94HQKABAVCIgAIvCETFAQ87EBALCWFHLAICLFHIAECUFGEMBKKK9MBDNADCD4AE2GEtMBINABABYDBGDCWTCW91+yADCE91CJJJ/8IFCJJJ98g++nuDBABCLFHBAECUFGEMBKKK9TEIUCBCBYDJ1JJBGEABCIFC98gFGBbDJ1JJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK/lEEEUDNDNAEABvCIgtMBABHIXEKDNDNADCZ9PMBABHIXEKABHIINAIAEYDBbDBAICLFAECLFYDBbDBAICWFAECWFYDBbDBAICXFAECXFYDBbDBAICZFHIAECZFHEADC9wFGDCS0MBKKADCL6MBINAIAEYDBbDBAECLFHEAICLFHIADC98FGDCI0MBKKDNADtMBINAIAErBB86BBAICEFHIAECEFHEADCUFGDMBKKABK/AEEDUDNDNABCIgtMBABHIXEKAECfEgC+B+C+EW2HLDNDNADCZ9PMBABHIXEKABHIINAIALbDBAICXFALbDBAICWFALbDBAICLFALbDBAICZFHIADC9wFGDCS0MBKKADCL6MBINAIALbDBAICLFHIADC98FGDCI0MBKKDNADtMBINAIAE86BBAICEFHIADCUFGDMBKKABKKKEBCJWKLZ9kBB",t="B9h79tEBBBEkL9gBB9gVUUUUUEU9gIUUUB9gEUEUIKQBBEBEEDDDILVE9wEEEVIEBEOWEUEC+Q/aEKR/LEdO9tw9t9vv95DBh9f9f939h79t9f9j9h229f9jT9vv7BB8a9tw79o9v9wT9f9kw9j9v9kw9WwvTw949C919m9mwvBDy9tw79o9v9wT9f9kw9j9v9kw69u9kw949C919m9mwvBLe9tw79o9v9wT9f9kw9j9v9kw69u9kw949Twg91w9u9jwBVl9tw79o9v9wT9f9kw9j9v9kws9p2Twv9P9jTBOk9tw79o9v9wT9f9kw9j9v9kws9p2Twv9R919hTBRl9tw79o9v9wT9f9kw9j9v9kws9p2Twvt949wBWL79iv9rBdQ/T9TQLBZIK9+EVU8jJJJJBCZ9rHBCBHEINCBHDCBHIINABCWFADFAICJUAEAD4CEgGLe86BBAIALFHIADCEFGDCW9HMBKAEC+Q+YJJBFAI86BBAECITC+Q1JJBFAB8pIW83IBAECEFGECJD9HMBKK/H8jLhUD97EUO978jJJJJBCJ/KB9rGV8kJJJJBC9+HODNADCEFAL0MBCUHOAIrBBC+gE9HMBAVAIALFGRAD9rAD/8QBBCJ/ABAD9uHOAICEFHLDNADtMBAOC/wfBgGOCJDAOCJD6eHWCBHdINAdAE9PMEAWAEAd9rAdAWFAE6eGQCSFGOC9wgGKCI2HXAKCETHMAOCL4CIFCD4HpABAdAD2FHSCBHZDNINCEHhALHoCBHaDNINARAo9rAp6MIAVCJ/CBFAaAK2FHcAoApFHLCBHIDNAKC/AB6MBARAL9rC/gB6MBCBHOINAcAOFHIDNDNDNDNDNAoAOCO4FrBBGxCIgpLBEDIBKAIPXBBBBBBBBBBBBBBBBPKLBXIKAIALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLBALCLFAyPqBFAkC+Q+YJJBFrBBFHLXDKAIALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLBALCWFAyPqBFAkC+Q+YJJBFrBBFHLXEKAIALPBBBPKLBALCZFHLKDNDNDNDNDNAxCD4CIgpLBEDIBKAIPXBBBBBBBBBBBBBBBBPKLZXIKAIALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLZALCLFAyPqBFAkC+Q+YJJBFrBBFHLXDKAIALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLZALCWFAyPqBFAkC+Q+YJJBFrBBFHLXEKAIALPBBBPKLZALCZFHLKDNDNDNDNDNAxCL4CIgpLBEDIBKAIPXBBBBBBBBBBBBBBBBPKLAXIKAIALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLAALCLFAyPqBFAkC+Q+YJJBFrBBFHLXDKAIALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLAALCWFAyPqBFAkC+Q+YJJBFrBBFHLXEKAIALPBBBPKLAALCZFHLKDNDNDNDNDNAxCO4pLBEDIBKAIPXBBBBBBBBBBBBBBBBPKL8wXIKAIALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGxCITC+Q1JJBFPBIBAxC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGxCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKL8wALCLFAyPqBFAxC+Q+YJJBFrBBFHLXDKAIALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGxCITC+Q1JJBFPBIBAxC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGxCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKL8wALCWFAyPqBFAxC+Q+YJJBFrBBFHLXEKAIALPBBBPKL8wALCZFHLKAOC/ABFHIAOCJEFAK0MEAIHOARAL9rC/fB0MBKKDNDNAIAK9PMBAICI4HOINARAL9rCk6MDAcAIFHxDNDNDNDNDNAoAICO4FrBBAOCOg4CIgpLBEDIBKAxPXBBBBBBBBBBBBBBBBPKLBXIKAxALPBBLALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlGqCDP+MEAqPMBZEhDoIaLcVxOqRlPXIIIIIIIIIIIIIIIIP9OGlPXIIIIIIIIIIIIIIIIP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLBALCLFAyPqBFAkC+Q+YJJBFrBBFHLXDKAxALPBBWALPBBBGqCLP+MEAqPMBZEhDoIaLcVxOqRlPXSSSSSSSSSSSSSSSSP9OGlPXSSSSSSSSSSSSSSSSP8jGqP5B9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBAkC+Q+YJJBFPBBBGyAyPMBBBBBBBBBBBBBBBBAqP5E9CJf/8/4/w/g/AB9+9Cu1+nGkCITC+Q1JJBFPBIBP9uPMBEDILVORZhoacxqlPpAlAqP9SPKLBALCWFAyPqBFAkC+Q+YJJBFrBBFHLXEKAxALPBBBPKLBALCZFHLKAOCDFHOAICZFGIAK6MBKKALtMBAaCI6HhALHoAaCEFGOHaAOCLsMDXEKKCBHLAhCEgMDKDNAKtMBAVCJDFAZFHIAVAZFPBDBHyCBHxINAIAVCJ/CBFAxFGOPBLBGlCEP9tAlPXEEEEEEEEEEEEEEEEGqP9OP9hP9RGlAOAKFPBLBG8aCEP9tA8aAqP9OP9hP9RG8aPMBZEhDoIaLcVxOqRlGeAOAMFPBLBG3CEP9tA3AqP9OP9hP9RG3AOAXFPBLBG5CEP9tA5AqP9OP9hP9RG5PMBZEhDoIaLcVxOqRlG8ePMBEZhDIoaLVcxORqlGqAqPMBEDIBEDIBEDIBEDIAyP9uGyP9aDBBAIADFGOAyAqAqPMLVORLVORLVORLVORP9uGyP9aDBBAOADFGOAyAqAqPMWdQKWdQKWdQKWdQKP9uGyP9aDBBAOADFGOAyAqAqPMXMpSXMpSXMpSXMpSP9uGyP9aDBBAOADFGOAyAeA8ePMWdkyQK8aeXM35pS8e8fGqAqPMBEDIBEDIBEDIBEDIP9uGyP9aDBBAOADFGOAyAqAqPMLVORLVORLVORLVORP9uGyP9aDBBAOADFGOAyAqAqPMWdQKWdQKWdQKWdQKP9uGyP9aDBBAOADFGOAyAqAqPMXMpSXMpSXMpSXMpSP9uGyP9aDBBAOADFGOAyAlA8aPMWkdyQ8aKeX3M5p8eS8fGlA3A5PMWkdyQ8aKeX3M5p8eS8fG8aPMBEZhDIoaLVcxORqlGqAqPMBEDIBEDIBEDIBEDIP9uGyP9aDBBAOADFGOAyAqAqPMLVORLVORLVORLVORP9uGyP9aDBBAOADFGOAyAqAqPMWdQKWdQKWdQKWdQKP9uGyP9aDBBAOADFGOAyAqAqPMXMpSXMpSXMpSXMpSP9uGyP9aDBBAOADFGOAyAlA8aPMWdkyQK8aeXM35pS8e8fGqAqPMBEDIBEDIBEDIBEDIP9uGyP9aDBBAOADFGOAyAqAqPMLVORLVORLVORLVORP9uGyP9aDBBAOADFGOAyAqAqPMWdQKWdQKWdQKWdQKP9uGyP9aDBBAOADFGOAyAqAqPMXMpSXMpSXMpSXMpSP9uGyP9aDBBAOADFHIAxCZFGxAK6MBKKAZCLFGZAD6MBKASAVCJDFAQAD2/8QBBAVAVCJDFAQCUFAD2FAD/8QBBAQAdFHdC9+HOALMEXIKKC9+HOXEKCBC99ARAL9rADCAADCA0eseHOKAVCJ/KBF8kJJJJBAOKWBZ+BJJJBK/UZEhU8jJJJJBC/AE9rGV8kJJJJBC9+HODNAECI9uGRChFAL0MBCUHOAIrBBGWC/wEgC/gE9HMBAWCSgGdCE0MBAVC/ABFCfECJE/8KBAVCuF9CU83IBAVC8wF9CU83IBAVCYF9CU83IBAVCAF9CU83IBAVCkF9CU83IBAVCZF9CU83IBAV9CU83IWAV9CU83IBAIALFC9wFHQAICEFGWARFHODNAEtMBCMCSAdCEseHKCBHXCBHMCBHdCBHICBHLINDNAOAQ9NMBC9+HOXIKDNDNAWrBBGRC/vE0MBAVC/ABFALARCL4CU7FCSgCITFGpYDLHSApYDBHZDNARCSgGpAK9PMBAVAIARCU7FCSgCDTFYDBAXApeHRAptHpDNDNADCD9HMBABAdCETFGhAZ87EBAhCDFAS87EBAhCLFAR87EBXEKABAdCDTFGhAZbDBAhCLFASbDBAhCWFARbDBKAXApFHXAVC/ABFALCITFGhARbDBAhASbDLAVAICDTFARbDBAVC/ABFALCEFCSgGLCITFGhAZbDBAhARbDLAIApFHIALCEFHLXDKDNDNApCSsMBAMApFApC987FCEFHMXEKAOCEFHRAO8sBBGpCfEgHhDNDNApCU9MMBARHOXEKAOCVFHOAhCfBgHhCRHpDNINAR8sBBGoCfBgApTAhvHhAoCU9KMEARCEFHRApCRFGpC8j9HMBXDKKARCEFHOKAhCE4CBAhCEg9r7AMFHMKDNDNADCD9HMBABAdCETFGRAZ87EBARCDFAS87EBARCLFAM87EBXEKABAdCDTFGRAZbDBARCLFASbDBARCWFAMbDBKAVC/ABFALCITFGRAMbDBARASbDLAVAICDTFAMbDBAVC/ABFALCEFCSgGLCITFGRAZbDBARAMbDLAICEFHIALCEFHLXEKDNARCPE0MBAXCEFGoAVAIAQARCSgFrBBGpCL49rCSgCDTFYDBApCZ6GheHRAVAIAp9rCSgCDTFYDBAoAhFGSApCSgGoeHpAotHoDNDNADCD9HMBABAdCETFGZAX87EBAZCDFAR87EBAZCLFAp87EBXEKABAdCDTFGZAXbDBAZCLFARbDBAZCWFApbDBKAVAICDTFAXbDBAVC/ABFALCITFGZARbDBAZAXbDLAVAICEFGICSgCDTFARbDBAVC/ABFALCEFCSgCITFGZApbDBAZARbDLAVAIAhFCSgGICDTFApbDBAVC/ABFALCDFCSgGLCITFGRAXbDBARApbDLALCEFHLAIAoFHIASAoFHXXEKAXCBAOrBBGZeGaARC/+EsGRFHSAZCSgHcAZCL4HxDNDNAZCS0MBASCEFHoXEKASHoAVAIAx9rCSgCDTFYDBHSKDNDNAcMBAoCEFHXXEKAoHXAVAIAZ9rCSgCDTFYDBHoKDNDNARtMBAOCEFHRXEKAOCDFHRAO8sBEGhCfEgHpDNAhCU9KMBAOCOFHaApCfBgHpCRHODNINAR8sBBGhCfBgAOTApvHpAhCU9KMEARCEFHRAOCRFGOC8j9HMBKAaHRXEKARCEFHRKApCE4CBApCEg9r7AMFGMHaKDNDNAxCSsMBARHpXEKARCEFHpAR8sBBGOCfEgHhDNAOCU9KMBARCVFHSAhCfBgHhCRHODNINAp8sBBGRCfBgAOTAhvHhARCU9KMEApCEFHpAOCRFGOC8j9HMBKASHpXEKApCEFHpKAhCE4CBAhCEg9r7AMFGMHSKDNDNAcCSsMBApHOXEKApCEFHOAp8sBBGRCfEgHhDNARCU9KMBApCVFHoAhCfBgHhCRHRDNINAO8sBBGpCfBgARTAhvHhApCU9KMEAOCEFHOARCRFGRC8j9HMBKAoHOXEKAOCEFHOKAhCE4CBAhCEg9r7AMFGMHoKDNDNADCD9HMBABAdCETFGRAa87EBARCDFAS87EBARCLFAo87EBXEKABAdCDTFGRAabDBARCLFASbDBARCWFAobDBKAVC/ABFALCITFGRASbDBARAabDLAVAICDTFAabDBAVC/ABFALCEFCSgCITFGRAobDBARASbDLAVAICEFGICSgCDTFASbDBAVC/ABFALCDFCSgCITFGRAabDBARAobDLAVAIAZCZ6AxCSsvFGICSgCDTFAobDBAIActAcCSsvFHIALCIFHLKAWCEFHWALCSgHLAICSgHIAdCIFGdAE6MBKKCBC99AOAQseHOKAVC/AEF8kJJJJBAOK+LLEVU8jJJJJBCZ9rHVC9+HODNAECVFAL0MBCUHOAIrBBC/+EgC/QE9HMBAV9CB83IWAICEFHRAIALFC98FHWDNAEtMBDNADCDsMBCBHdINDNARAW6MBC9+SKARCEFHOAR8sBBGLCfEgHIDNDNALCU9MMBAOHRXEKARCVFHRAICfBgHICRHLDNINAO8sBBGDCfBgALTAIvHIADCU9KMEAOCEFHOALCRFGLC8j9HMBXDKKAOCEFHRKABAdCDTFAICD4CBAICE4CEg9r7AVCWFAICEgCDTvGOYDBFGLbDBAOALbDBAdCEFGdAE9HMBXDKKCBHdINDNARAW6MBC9+SKARCEFHOAR8sBBGLCfEgHIDNDNALCU9MMBAOHRXEKARCVFHRAICfBgHICRHLDNINAO8sBBGDCfBgALTAIvHIADCU9KMEAOCEFHOALCRFGLC8j9HMBXDKKAOCEFHRKABAdCETFAICD4CBAICE4CEg9r7AVCWFAICEgCDTvGOYDBFGL87EBAOALbDBAdCEFGdAE9HMBKKCBC99ARAWseHOKAOK+epLIUO97EUE978jJJJJBCA9rHIDNDNADCL9HMBDNAEC98gGLtMBCBHVABHDINADADPBBBGOCkP+rECkP+sEP/6EGRAOCWP+rECkP+sEP/6EARP/gEAOCZP+rECkP+sEP/6EGWP/gEP/kEP/lEGdPXBBBBBBBBBBBBBBBBP+2EGQARPXBBBJBBBJBBBJBBBJGKP9OP9RP/kEGRPXBB/+9CBB/+9CBB/+9CBB/+9CARARP/mEAdAdP/mEAWAQAWAKP9OP9RP/kEGRARP/mEP/kEP/kEP/jEP/nEGWP/mEPXBBN0BBN0BBN0BBN0GQP/kEPXfBBBfBBBfBBBfBBBP9OAOPXBBBfBBBfBBBfBBBfP9OP9QARAWP/mEAQP/kECWP+rEPXBfBBBfBBBfBBBfBBP9OP9QAdAWP/mEAQP/kECZP+rEPXBBfBBBfBBBfBBBfBP9OP9QPKBBADCZFHDAVCLFGVAL6MBKKALAE9PMEAIAECIgGVCDTGDvCBCZAD9r/8KBAIABALCDTFGLAD/8QBBDNAVtMBAIAIPBLBGOCkP+rECkP+sEP/6EGRAOCWP+rECkP+sEP/6EARP/gEAOCZP+rECkP+sEP/6EGWP/gEP/kEP/lEGdPXBBBBBBBBBBBBBBBBP+2EGQARPXBBBJBBBJBBBJBBBJGKP9OP9RP/kEGRPXBB/+9CBB/+9CBB/+9CBB/+9CARARP/mEAdAdP/mEAWAQAWAKP9OP9RP/kEGRARP/mEP/kEP/kEP/jEP/nEGWP/mEPXBBN0BBN0BBN0BBN0GQP/kEPXfBBBfBBBfBBBfBBBP9OAOPXBBBfBBBfBBBfBBBfP9OP9QARAWP/mEAQP/kECWP+rEPXBfBBBfBBBfBBBfBBP9OP9QAdAWP/mEAQP/kECZP+rEPXBBfBBBfBBBfBBBfBP9OP9QPKLBKALAIAD/8QBBSKDNAEC98gGXtMBCBHVABHDINADCZFGLALPBBBGOPXBBBBBBffBBBBBBffGKP9OADPBBBGdAOPMLVORXMpScxql358e8fPXfUBBfUBBfUBBfUBBP9OP/6EAdAOPMBEDIWdQKZhoaky8aeGOCZP+sEP/6EGRP/gEAOCZP+rECZP+sEP/6EGWP/gEP/kEP/lEGOPXB/+fsB/+fsB/+fsB/+fsAWAOPXBBBBBBBBBBBBBBBBP+2EGQAWPXBBBJBBBJBBBJBBBJGMP9OP9RP/kEGWAWP/mEAOAOP/mEARAQARAMP9OP9RP/kEGOAOP/mEP/kEP/kEP/jEP/nEGRP/mEPXBBN0BBN0BBN0BBN0GQP/kECZP+rEAWARP/mEAQP/kEPXffBBffBBffBBffBBP9OP9QGWAOARP/mEAQP/kEPXffBBffBBffBBffBBP9OGOPMWdkyQK8aeXM35pS8e8fP9QPKBBADAdAKP9OAWAOPMBEZhDIoaLVcxORqlP9QPKBBADCAFHDAVCLFGVAX6MBKKAXAE9PMBAIAECIgGVCITGDFCBCAAD9r/8KBAIABAXCITFGLAD/8QBBDNAVtMBAIAIPBLZGOPXBBBBBBffBBBBBBffGKP9OAIPBLBGdAOPMLVORXMpScxql358e8fPXfUBBfUBBfUBBfUBBP9OP/6EAdAOPMBEDIWdQKZhoaky8aeGOCZP+sEP/6EGRP/gEAOCZP+rECZP+sEP/6EGWP/gEP/kEP/lEGOPXB/+fsB/+fsB/+fsB/+fsAWAOPXBBBBBBBBBBBBBBBBP+2EGQAWPXBBBJBBBJBBBJBBBJGMP9OP9RP/kEGWAWP/mEAOAOP/mEARAQARAMP9OP9RP/kEGOAOP/mEP/kEP/kEP/jEP/nEGRP/mEPXBBN0BBN0BBN0BBN0GQP/kECZP+rEAWARP/mEAQP/kEPXffBBffBBffBBffBBP9OP9QGWAOARP/mEAQP/kEPXffBBffBBffBBffBBP9OGOPMWdkyQK8aeXM35pS8e8fP9QPKLZAIAdAKP9OAWAOPMBEZhDIoaLVcxORqlP9QPKLBKALAIAD/8QBBKK/4WLLUE97EUV978jJJJJBC8w9rHIDNAEC98gGLtMBCBHVABHOINAIAOPBBBGRAOCZFGWPBBBGdPMLVORXMpScxql358e8fGQCZP+sEGKCLP+rEPKLBAOPXBBJzBBJzBBJzBBJzPX/zL81z/zL81z/zL81z/zL81zAKPXIBBBIBBBIBBBIBBBP9QP/6EP/nEGKARAdPMBEDIWdQKZhoaky8aeGRCZP+rECZP+sEP/6EP/mEGdAdP/mEAKARCZP+sEP/6EP/mEGXAXP/mEAKAQCZP+rECZP+sEP/6EP/mEGQAQP/mEP/kEP/kEP/lEPXBBBBBBBBBBBBBBBBP+4EP/jEPXB/+fsB/+fsB/+fsB/+fsGKP/mEPXBBN0BBN0BBN0BBN0GRP/kEPXffBBffBBffBBffBBGMP9OAXAKP/mEARP/kECZP+rEP9QGXAQAKP/mEARP/kECZP+rEAdAKP/mEARP/kEAMP9OP9QGKPMBEZhDIoaLVcxORqlGRP5BAIPBLBPeB+t+J83IBAOCWFARP5EAIPBLBPeE+t+J83IBAWAXAKPMWdkyQK8aeXM35pS8e8fGKP5BAIPBLBPeD+t+J83IBAOCkFAKP5EAIPBLBPeI+t+J83IBAOCAFHOAVCLFGVAL6MBKKDNALAE9PMBAIAECIgGVCITGOFCBCAAO9r/8KBAIABALCITFGWAO/8QBBDNAVtMBAIAIPBLBGRAIPBLZGdPMLVORXMpScxql358e8fGQCZP+sEGKCLP+rEPKLAAIPXBBJzBBJzBBJzBBJzPX/zL81z/zL81z/zL81z/zL81zAKPXIBBBIBBBIBBBIBBBP9QP/6EP/nEGKARAdPMBEDIWdQKZhoaky8aeGRCZP+rECZP+sEP/6EP/mEGdAdP/mEAKARCZP+sEP/6EP/mEGXAXP/mEAKAQCZP+rECZP+sEP/6EP/mEGQAQP/mEP/kEP/kEP/lEPXBBBBBBBBBBBBBBBBP+4EP/jEPXB/+fsB/+fsB/+fsB/+fsGKP/mEPXBBN0BBN0BBN0BBN0GRP/kEPXffBBffBBffBBffBBGMP9OAXAKP/mEARP/kECZP+rEP9QGXAQAKP/mEARP/kECZP+rEAdAKP/mEARP/kEAMP9OP9QGKPMBEZhDIoaLVcxORqlGRP5BAIPBLAPeB+t+J83IBAIARP5EAIPBLAPeE+t+J83IWAIAXAKPMWdkyQK8aeXM35pS8e8fGKP5BAIPBLAPeD+t+J83IZAIAKP5EAIPBLAPeI+t+J83IkKAWAIAO/8QBBKK+pDDIUE978jJJJJBC/AB9rHIDNADCD4AE2GLC98gGVtMBCBHDABHEINAEAEPBBBGOCWP+rECWP+sEP/6EAOCEP+sEPXBBJzBBJzBBJzBBJzP+uEPXBBJfBBJfBBJfBBJfP9OP/mEPKBBAECZFHEADCLFGDAV6MBKKDNAVAL9PMBAIALCIgGDCDTGEvCBC/ABAE9r/8KBAIABAVCDTFGVAE/8QBBDNADtMBAIAIPBLBGOCWP+rECWP+sEP/6EAOCEP+sEPXBBJzBBJzBBJzBBJzP+uEPXBBJfBBJfBBJfBBJfP9OP/mEPKLBKAVAIAE/8QBBKK9TEIUCBCBYDJ1JJBGEABCIFC98gFGBbDJ1JJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIKKKEBCJWKLZ9tBB",n=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=e;WebAssembly.validate(n)&&(o=t);var r,s=WebAssembly.instantiate(a(o),{}).then(function(d){r=d.instance,r.exports.__wasm_call_ctors()});function a(d){for(var p=new Uint8Array(d.length),g=0;g<d.length;++g){var h=d.charCodeAt(g);p[g]=h>96?h-71:h>64?h-65:h>47?h+4:h>46?63:62}for(var A=0,g=0;g<d.length;++g)p[A++]=p[g]<60?i[p[g]]:(p[g]-60)*64+p[++g];return p.buffer.slice(0,A)}function c(d,p,g,h,A,x){var C=r.exports.sbrk,T=g+3&-4,E=C(T*h),S=C(A.length),v=new Uint8Array(r.exports.memory.buffer);v.set(A,S);var D=d(E,g,h,S,A.length);if(D==0&&x&&x(E,T,h),p.set(v.subarray(E,E+g*h)),C(E-C(0)),D!=0)throw new Error("Malformed buffer data: "+D)}var u={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},f={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return{ready:s,supported:!0,decodeVertexBuffer:function(d,p,g,h,A){c(r.exports.meshopt_decodeVertexBuffer,d,p,g,h,r.exports[u[A]])},decodeIndexBuffer:function(d,p,g,h){c(r.exports.meshopt_decodeIndexBuffer,d,p,g,h)},decodeIndexSequence:function(d,p,g,h){c(r.exports.meshopt_decodeIndexSequence,d,p,g,h)},decodeGltfBuffer:function(d,p,g,h,A,x){c(r.exports[f[A]],d,p,g,h,r.exports[u[x]])}}}();var Ijt=function(){"use strict";var e="B9h79tEBBBECd9gEUEU9gEUB9gBB9gQUUUUUUU99UUEU9gVUUUUUB9gLUUUUE999gIUUUE999gLUUUUEU9gIUUUEUIMXDILVORBWWBEWLVE9wEIIVIEBEOWEUECJ/JEKR7OO9tw9t9vv95DBh9f9f939h79t9f9j9h229f9jT9vv7BBZ9tw79o9v9wT9f79p9t9w29p9m95BEx9tw79o9v9wT9f79p9t9w29p9m959T9j9h2wBLA9tw79o9v9wT9f9v9wT9p9t9p96w9WwvTw94swT9j9o9Sw9t9h9wBVL79iv9rBOdWEBCEKDdQQ+stXDBK/48yIkUp99hU8jJJJJBCJ/BB9rGQ8kJJJJBAQCkFCBC/kBZ1JJJB8aCUALCDTGKALCffffI0eGXCBYD/s1JJBhJJJJBBHMAQCkFAQYD94GpCDTFAMbDBAQAMbDWAQApCEFbD94AXCBYD/s1JJBhJJJJBBHSAQCkFAQYD94GpCDTFASbDBAQASbDXAQApCEFbD94CUADCITADCffffE0eCBYD/s1JJBhJJJJBBHZAQCkFAQYD94GpCDTFAZbDBAQAZbDZAQApCEFbD94AQCWFAEADALCBZ+CJJJBAXCBYD/s1JJBhJJJJBBHhAQCkFAQYD94GpCDTFAhbDBAQApCEFbD94AXCBYD/s1JJBhJJJJBBHoAQCkFAQYD94GpCDTFAobDBAQApCEFbD94ALCD4ALFHaCEHcINAcGpCETHcApAa6MBKCBHxCUApCDTGaApCffffI0eCBYD/s1JJBhJJJJBBHcAQCkFAQYD94GqCDTFAcbDBAQAqCEFbD94AcCfEAaZ1JJJBHlDNALtMBAVCD4HkApCUFHqINAIAxAk2CDTFGyYDLGpCh4Ap7C+f+B+dd2AyYDBGpCh4Ap7C/d/o+b8j27AyYDWGpCh4Ap7C+3f/n8n27HaCBHpDNDNINAlAaAqgGaCDTFG8aYDBGcCUsMEAIAcAk2CDTFAyCXZ+LJJJBtMDApCEFGpAaFHaApAq9NMBXDKKA8aAxbDBAxHcKAhAxCDTFAcbDBAxCEFGxAL9HMBKCBHpAoHcINAcApbDBAcCLFHcALApCEFGp9HMBKCBHpAhHcAoHaINDNApAcYDBGqsMBAaAoAqCDTFGqYDBbDBAqApbDBKAcCLFHcAaCLFHaALApCEFGp9HMBKKCBHaALCBYD/s1JJBhJJJJBBHyAQCkFAQYD94GpCDTFAybDBAQApCEFbD94AXCBYD/s1JJBhJJJJBBHpAQCkFAQYD94GcCDTFApbDBAQAcCEFbD94AXCBYD/s1JJBhJJJJBBHcAQCkFAQYD94GqCDTFAcbDBAQAqCEFbD94ApCfEAKZ1JJJBHeAcCfEAKZ1JJJBH3DNALtMBAZCWFH5INDNAMAaCDTGpFYDBG8etMBAZASApFYDBCITFH8fA3ApFHAAeApFHxCBHkINDNDNA8fAkCITFYDBGlAa9HMBAxAabDBAAAabDBXEKDNAMAlCDTGKFYDBGHtMBAZASAKFYDBCITGpFYDBAasMEAHCUFH8aA5ApFHcCBHpINA8aApsMEApCEFHpAcYDBHqAcCWFHcAqAa9HMBKApAH6MEKA3AKFGpAaAlApYDBCUsebDBAxAlAaAxYDBCUsebDBKAkCEFGkA8e9HMBKKAaCEFGaAL9HMBKAhHcAoHaA3HqAeHkCBHpINDNDNApAcYDBG8a9HMBDNApAaYDBG8a9HMBAkYDBH8aDNAqYDBGlCU9HMBA8aCU9HMBAyApFCB86BBXIKAyApFHxDNApAlsMBApA8asMBAxCE86BBXIKAxCL86BBXDKDNApAoA8aCDTGlFYDB9HMBDNAqYDBGxCUsMBApAxsMBAkYDBGKCUsMBApAKsMBA3AlFYDBG8eCUsMBA8eA8asMBAeAlFYDBGlCUsMBAlA8asMBDNAhAxCDTFYDBAhAlCDTFYDB9HMBAhAKCDTFYDBAhA8eCDTFYDB9HMBAyApFCD86BBXLKAyApFCL86BBXIKAyApFCL86BBXDKAyApFCL86BBXEKAyApFAyA8aFrBB86BBKAcCLFHcAaCLFHaAqCLFHqAkCLFHkALApCEFGp9HMBKAWCEgtMBAyHpALHcINDNAprBBCE9HMBApCL86BBKApCEFHpAcCUFGcMBKKCBHkCUALCX2ALC/V+q/V+qE0eCBYD/s1JJBhJJJJBBHMAQCkFAQYD94GpCDTFAMbDBAQApCEFbD94AMAIALAVZ+DJJJB8aCUALC8s2GcALC/d/o/F8u0eCBYD/s1JJBhJJJJBBHpAQCkFAQYD94GaCDTFApbDBAQAaCEFbD94ApCBAcZ1JJJBHZDNADtMBAEHcINDNAMAcCLFYDBG8aCX2FGpiDBAMAcYDBGlCX2FGaiDBGG+TG8jAMAcCWFYDBGxCX2FGqCLFiDBAaCLFiDBG8k+TG8lnAqiDBAG+TG8mApCLFiDBA8k+TG8nn+TGYAYnA8nAqCWFiDBAaCWFiDBG8p+TGinA8lApCWFiDBA8p+TG8nn+TG8lA8lnA8nA8mnAiA8jn+TG8jA8jnmm+RG8mjBBBB9etMBAYA8m+VHYA8jA8m+VH8jA8lA8m+VH8lKAZAhAlCDTFYDBC8s2FGpA8lA8m+RG8mA8lnnG8nApiDBmuDBApA8jA8mA8jnG8rnGiApiDLmuDLApAYA8mAYnG8snGrApiDWmuDWApA8rA8lnG8rApiDXmuDXApA8sA8lnG8uApiDZmuDZApA8sA8jnG8sApiDcmuDcApA8lA8mAYA8pnA8lAGnA8kA8jnmm+MG8knGGnG8lApiDkmuDkApA8jAGnG8jApiD3muD3ApAYAGnGYApiDAmuDAApAGA8knGGApiD8kmuD8kApA8mApiDYmuDYAZAhA8aCDTFYDBC8s2FGpA8nApiDBmuDBApAiApiDLmuDLApArApiDWmuDWApA8rApiDXmuDXApA8uApiDZmuDZApA8sApiDcmuDcApA8lApiDkmuDkApA8jApiD3muD3ApAYApiDAmuDAApAGApiD8kmuD8kApA8mApiDYmuDYAZAhAxCDTFYDBC8s2FGpA8nApiDBmuDBApAiApiDLmuDLApArApiDWmuDWApA8rApiDXmuDXApA8uApiDZmuDZApA8sApiDcmuDcApA8lApiDkmuDkApA8jApiD3muD3ApAYApiDAmuDAApAGApiD8kmuD8kApA8mApiDYmuDYAcCXFHcAkCIFGkAD6MBKCBH8aAEHxINCBHcINAyAEAcC+81JJBFYDBGlA8aFCDTFYDBGaFrBBHpDNDNAyAxAcFYDBGqFrBBGkC99FCfEgCPE0MBApCEsMBApCD9HMEKDNAkCUFCfEgCE0MBAeAqCDTFYDBAa9HMEKDNApCUFCfEgCE0MBA3AaCDTFYDBAq9HMEKDNAkCV2ApFC+g1JJBFrBBtMBAhAaCDTFYDBAhAqCDTFYDB0MEKjBBACjBBJzApCEseH8mAkCEsHKAEAlCDTC+81JJBFYDBA8aFCDTFYDBHlDNAMAaCX2FGpCWFiDBAMAqCX2FGkCWFiDBG8k+TG8lA8lnApiDBAkiDBG8p+TG8jA8jnApCLFiDBAkCLFiDBG8n+TGYAYnmm+RGGjBBBB9etMBA8lAG+VH8lAYAG+VHYA8jAG+VH8jKjBBACA8mAKeH8sDNAMAlCX2FGpiDWA8k+TG8mA8lA8mA8lnApiDBA8p+TGrA8jnAYApiDLA8n+TG8rnmmGin+TG8mA8mnArA8jAin+TG8lA8lnA8rAYAin+TG8jA8jnmm+RGYjBBBB9etMBA8mAY+VH8mA8jAY+VH8jA8lAY+VH8lKAZAhAqCDTFYDBC8s2FGpA8lA8sAGnGYA8lnnGiApiDBmuDBApA8jAYA8jnG8snGrApiDLmuDLApA8mAYA8mnGGnG8rApiDWmuDWApA8sA8lnG8sApiDXmuDXApAGA8lnG8uApiDZmuDZApAGA8jnG8vApiDcmuDcApA8lAYA8mA8knA8lA8pnA8nA8jnmm+MG8knGGnG8lApiDkmuDkApA8jAGnG8jApiD3muD3ApA8mAGnG8mApiDAmuDAApAGA8knGGApiD8kmuD8kApAYApiDYmuDYAZAhAaCDTFYDBC8s2FGpAiApiDBmuDBApArApiDLmuDLApA8rApiDWmuDWApA8sApiDXmuDXApA8uApiDZmuDZApA8vApiDcmuDcApA8lApiDkmuDkApA8jApiD3muD3ApA8mApiDAmuDAApAGApiD8kmuD8kApAYApiDYmuDYKAcCLFGcCX9HMBKAxCXFHxA8aCIFG8aAD6MBKKDNABAEsMBABAEADCDTZ+HJJJB8aKCUADCX2ADC/V+q/V+qE0eCBYD/s1JJBhJJJJBBHAAQCkFAQYD94GpCDTFAAbDBAQApCEFbD94CUADCDTADCffffI0eCBYD/s1JJBhJJJJBBH5AQCkFAQYD94GpCDTFA5bDBAQApCEFbD94AXCBYD/s1JJBhJJJJBBHIAQCkFAQYD94GpCDTFAIbDBAQApCEFbD94ALCBYD/s1JJBhJJJJBBH8wAQCkFAQYD94GpCDTFA8wbDBAQApCEFbD94jBBBBHrDNADAO9NMBARARnH8sAACWFH8xAQYDZH8yAQYDXH8zAQYDWH80jBBBBHrINAQCWFABADGSALAhZ+CJJJBCBHHABHxCBHKINCBHpINDNAhAxApFYDBGaCDTGEFYDBGkAhABApC+81JJBFYDBAKFCDTFYDBGcCDTFYDBG8asMBAyAcFrBBGlCV2AyAaFrBBGqFC/Q1JJBFrBBGDAqCV2AlFG8eC/Q1JJBFrBBG8fvCfEgtMBDNA8eC+g1JJBFrBBtMBA8aAk0MEKDNAqAl9HMBAqCUFCfEgCE0MBAeAEFYDBAc9HMEKAAAHCX2FGqAcAaA8fCfEgGkebDLAqAaAcAkebDBAqADA8fgCfEgCB9HbDWAHCEFHHKApCLFGpCX9HMBKAxCXFHxAKCIFGKAS6MBKDNDNAHtMBAAHcAHH8aINAcCWFGljBBBBjBBJzAZAhAcYDBGaCDTFYDBC8s2FGpiDYG8l+VA8ljBBBB9beApiDWAMAcCLFGEYDBGqCX2FGkCWFiDBG8lnApiDZAkiDBG8jnApiDAmG8mA8mmmA8lnApiDLAkCLFiDBG8mnApiDcA8lnApiD3mG8lA8lmmA8mnApiDBA8jnApiDXA8mnApiDkmG8lA8lmmA8jnApiD8kmmm+LnGYjBBBBjBBJzAZAhAqAaAlYDBGkeGlCDTFYDBC8s2FGpiDYG8l+VA8ljBBBB9beApiDWAMAaAqAkeGxCX2FGkCWFiDBG8lnApiDZAkiDBG8jnApiDAmG8mA8mmmA8lnApiDLAkCLFiDBG8mnApiDcA8lnApiD3mG8lA8lmmA8mnApiDBA8jnApiDXA8mnApiDkmG8lA8lmmA8jnApiD8kmmm+LnG8lAYA8l9fGpeuDBAEAqAxApebDBAcAaAlApebDBAcCXFHcA8aCUFG8aMBKAQCJEFCBCJ/ABZ1JJJB8aA8xHpAHHcINAQCJEFApYDBCo4C/8zgFGaAaYDBCEFbDBApCXFHpAcCUFGcMBKCBHpCBHcINAQCJEFApFGaYDBHqAaAcbDBAqAcFHcApCLFGpCJ/AB9HMBKCBHpA8xHcINAQCJEFAcYDBCo4C/8zgFGaAaYDBGaCEFbDBA5AaCDTFApbDBAcCXFHcAHApCEFGp9HMBKASAO9rGaCI9uH81DNALtMBCBHpAIHcINAcApbDBAcCLFHcALApCEFGp9HMBKKCBHbA8wCBALZ1JJJBH83AaCo9uHuA81CE4H85CBH86CBHKDNINAAA5AKCDTFYDBCX2FGxiDWG8jA8s9eMEA86A819PMEjffUUH8lDNA85AH9PMBAAA5A85CDTFYDBCX2FiDWjBB/AznH8lKDNA8jA8l9etMBA86Au0MDKDNA83AhAxYDLG87CDTG88FYDBGaFG89rBBA83AhAxYDBGECDTG8+FYDBGzFGNrBBvMBDNA80AzCDTGpFYDBGqtMBA8yA8zApFYDBCITFHpAMAaCX2FG8eCWFHDA8eCLFHXAMAzCX2FG8fCWFHVA8fCLFHWCBHcCEHlDNINDNAIApYDBCDTFYDBGkAasMBAIApCLFYDBCDTFYDBG8aAasMBAMA8aCX2FG8aiDBAMAkCX2FGkiDBG8m+TG8lAWiDBAkCLFiDBGY+TGGnA8fiDBA8m+TG8kA8aCLFiDBAY+TG8jn+TA8lAXiDBAY+TG8pnA8eiDBA8m+TG8nA8jn+TnA8jAViDBAkCWFiDBGY+TGinAGA8aCWFiDBAY+TG8mn+TA8jADiDBAY+TGYnA8pA8mn+TnA8mA8knAiA8ln+TA8mA8nnAYA8ln+TnmmjBBBB9dMDKApCWFHpAcCEFGcAq6HlAqAc9HMBKKAlCEgtMBA85CEFH85XEKAxCWFHqAZAaC8s2FGpAZAzC8s2FGciDBApiDBmuDBApAciDLApiDLmuDLApAciDWApiDWmuDWApAciDXApiDXmuDXApAciDZApiDZmuDZApAciDcApiDcmuDcApAciDkApiDkmuDkApAciD3ApiD3muD3ApAciDAApiDAmuDAApAciD8kApiD8kmuD8kApAciDYApiDYmuDYDNDNDNDNAyAEFGcrBBC9+FpDEBDKAEHpINAIApCDTGpFAabDBAoApFYDBGpAE9HMBXIKKAoA88FYDBHpAoA8+FYDBHEAIA8+FA87bDBApH87KAIAECDTFA87bDBKANCE86BBA89CE86BBAqiDBG8lArArA8l9deHrAbCEFHbCECDAcrBBCEseA86FH86KAKCEFGKAH9HMBKKAbtMBDNALtMBCBHcAeHpINDNApYDBGaCUsMBDNAcAIAaCDTGqFYDBGa9HMBAeAqFYDBHaKApAabDBKApCLFHpALAcCEFGc9HMBKCBHcA3HpINDNApYDBGaCUsMBDNAcAIAaCDTGqFYDBGa9HMBA3AqFYDBHaKApAabDBKApCLFHpALAcCEFGc9HMBKKCBHDABHpCBHkINDNAIApYDBCDTFYDBGcAIApCLFYDBCDTFYDBGasMBAcAIApCWFYDBCDTFYDBGqsMBAaAqsMBABADCDTFG8aAcbDBA8aCLFAabDBA8aCWFAqbDBADCIFHDKApCXFHpAkCIFGkAS9PMDXBKKASHDXDKADAO0MBKKDNAdtMBAdAr+RuDBKAQYD94GpCDTAQCkFFC98FHhDNINAptMEAhYDBCBYD/w1JJBh+BJJJBBAhC98FHhApCUFHpXBKKAQCJ/BBF8kJJJJBADK/PLEOUABYDBCBAICDTZ1JJJB8aADCI9uHVDNADtMBABYDBHODNALtMBAEHRADHWINAOALARYDBCDTFYDBCDTFGdAdYDBCEFbDBARCLFHRAWCUFGWMBXDKKAEHRADHWINAOARYDBCDTFGdAdYDBCEFbDBARCLFHRAWCUFGWMBKKDNAItMBABYDBHRABYDLHWCBHdAIHOINAWAdbDBAWCLFHWARYDBAdFHdARCLFHRAOCUFGOMBKKDNADCI6MBAVCEAVCE0eHQABYDLHVABYDWHRINAECWFYDBHWAECLFYDBHdAEYDBHODNALtMBALAWCDTFYDBHWALAdCDTFYDBHdALAOCDTFYDBHOKARAVAOCDTFGDYDBCITFAdbDBARADYDBCITFAWbDLADADYDBCEFbDBARAVAdCDTFGDYDBCITFAWbDBARADYDBCITFAObDLADADYDBCEFbDBARAVAWCDTFGWYDBCITFAObDBARAWYDBCITFAdbDLAWAWYDBCEFbDBAECXFHEAQCUFGQMBKKDNAItMBABYDLHRABYDBHWINARARYDBAWYDB9rbDBAWCLFHWARCLFHRAICUFGIMBKKK+3LDOUV998jJJJJBCA9rGLCZFCWFCBYD11JJBbDBALCB8pDJ1JJB83IZALCWFCBYDn1JJBbDBALCB8pD+M1JJB83IBDNADtMBAICD4HVDNABtMBAVCDTHOCBHRAEHWINABARCX2FGIAEARAV2CDTFGdiDBuDBAIAdiDLuDLAIAdiDWuDWCBHIINALCZFAIFGdAWAIFiDBGQAdiDBGKAKAQ9eeuDBALAIFGdAQAdiDBGKAKAQ9deuDBAICLFGICX9HMBKAWAOFHWARCEFGRAD9HMBXDKKAVCDTHRCBHWINCBHIINALCZFAIFGdAEAIFiDBGQAdiDBGKAKAQ9eeuDBALAIFGdAQAdiDBGKAKAQ9deuDBAICLFGICX9HMBKAEARFHEAWCEFGWAD9HMBKKALiDBALiDZGK+TjBBBB+XGQALiDLALiDcGX+TGMAMAQ9deGQALiDWALiDkGM+TGpApAQ9deHpDNABtMBADtMBjBBBBjBBJzAp+VApjBBBB9beHQINABAQABiDBAK+TnuDBABCLFGIAQAIiDBAX+TnuDBABCWFGIAQAIiDBAM+TnuDBABCXFHBADCUFGDMBKKApK+qDIDUI99DUCBHI8jJJJJBCA9rGLCZFCWFCBYD11JJBbDBALCB8pDJ1JJB83IZALCWFCBYDn1JJBbDBALCB8pD+M1JJB83IBDNDNAEMBjBBJfHVjBBJfHOjBBJfHRXEKADCD4CDTHWINCBHDINALCZFADFGdABADFiDBGOAdiDBGRARAO9eeuDBALADFGdAOAdiDBGRARAO9deuDBADCLFGDCX9HMBKABAWFHBAICEFGIAE9HMBKALiDWALiDk+THRALiDLALiDc+THOALiDBALiDZ+THVKAVjBBBB+XGVAOAOAV9deGOARARAO9deK9dEEUABCfEAICDTZ1JJJBHLCBHIDNADtMBINDNALAEYDBCDTFGBYDBCU9HMBABAIbDBAICEFHIKAECLFHEADCUFGDMBKKAIK9TEIUCBCBYD/01JJBGEABCIFC98gFGBbD/01JJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK/lEEEUDNDNAEABvCIgtMBABHIXEKDNDNADCZ9PMBABHIXEKABHIINAIAEYDBbDBAICLFAECLFYDBbDBAICWFAECWFYDBbDBAICXFAECXFYDBbDBAICZFHIAECZFHEADC9wFGDCS0MBKKADCL6MBINAIAEYDBbDBAECLFHEAICLFHIADC98FGDCI0MBKKDNADtMBINAIAErBB86BBAICEFHIAECEFHEADCUFGDMBKKABK/AEEDUDNDNABCIgtMBABHIXEKAECfEgC+B+C+EW2HLDNDNADCZ9PMBABHIXEKABHIINAIALbDBAICXFALbDBAICWFALbDBAICLFALbDBAICZFHIADC9wFGDCS0MBKKADCL6MBINAIALbDBAICLFHIADC98FGDCI0MBKKDNADtMBINAIAE86BBAICEFHIADCUFGDMBKKABK9TEIUCBCBYD/01JJBGEABCIFC98gFGBbD/01JJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK9+EIUzBHEDNDNCBYD/01JJBGDAECZTGI9NMBCUHEADAI9rCffIFCZ4NBCUsMEKADHEKCBABAE9rCIFC98gCBYD/01JJBFGDbD/01JJBDNADzBCZTGE9NMBADAE9rCffIFCZ4NB8aKK6EIUCBHIDNADtMBDNINABrBBGLAErBBGV9HMEAECEFHEABCEFHBADCUFGDMBXDKKALAV9rHIKAIKK+CEDBCJWK9pffUUffUUffUUffUfffUfffUfBBBBBBBBEEEBEEBEBBEEEBEBBBBBEBEBBBBBEBBBDBBBBBBBBBBBBBBBEEEEEBEBBBBBEBBBBBEEBBBBBBC/sWKXEBBBDBBBJ9kBB",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(p){n=p.instance,n.exports.__wasm_call_ctors()});function o(p){for(var g=new Uint8Array(p.length),h=0;h<p.length;++h){var A=p.charCodeAt(h);g[h]=A>96?A-71:A>64?A-65:A>47?A+4:A>46?63:62}for(var x=0,h=0;h<p.length;++h)g[x++]=g[h]<60?t[g[h]]:(g[h]-60)*64+g[++h];return g.buffer.slice(0,x)}function r(p){if(!p)throw new Error("Assertion failed")}function s(p){return new Uint8Array(p.buffer,p.byteOffset,p.byteLength)}function a(p,g){var h=n.exports.sbrk,A=h(p.length*4),x=h(g*4),C=new Uint8Array(n.exports.memory.buffer),T=s(p);C.set(T,A);var E=n.exports.meshopt_optimizeVertexFetchRemap(x,A,p.length,g);C=new Uint8Array(n.exports.memory.buffer);var S=new Uint32Array(g);new Uint8Array(S.buffer).set(C.subarray(x,x+g*4)),T.set(C.subarray(A,A+p.length*4)),h(A-h(0));for(var v=0;v<p.length;++v)p[v]=S[p[v]];return[S,E]}function c(p){for(var g=0,h=0;h<p.length;++h){var A=p[h];g=g<A?A:g}return g}function u(p,g,h,A,x,C,T,E,S){var v=n.exports.sbrk,D=v(4),O=v(h*4),M=v(x*C),L=v(h*4),N=new Uint8Array(n.exports.memory.buffer);N.set(s(A),M),N.set(s(g),L);var _=p(O,L,h,M,x,C,T,E,S,D);N=new Uint8Array(n.exports.memory.buffer);var b=new Uint32Array(_);s(b).set(N.subarray(O,O+_*4));var w=new Float32Array(1);return s(w).set(N.subarray(D,D+4)),v(D-v(0)),[b,w[0]]}function f(p,g,h,A){var x=n.exports.sbrk,C=x(h*A),T=new Uint8Array(n.exports.memory.buffer);T.set(s(g),C);var E=p(C,h,A);return x(C-x(0)),E}var d={LockBorder:1};return{ready:i,supported:!0,compactMesh:function(p){r(p instanceof Uint32Array||p instanceof Int32Array||p instanceof Uint16Array||p instanceof Int16Array),r(p.length%3==0);var g=p.BYTES_PER_ELEMENT==4?p:new Uint32Array(p);return a(g,c(p)+1)},simplify:function(p,g,h,A,x,C){r(p instanceof Uint32Array||p instanceof Int32Array||p instanceof Uint16Array||p instanceof Int16Array),r(p.length%3==0),r(g instanceof Float32Array),r(g.length%h==0),r(h>=3),r(A%3==0);for(var T=0,E=0;E<(C?C.length:0);++E)T|=d[C[E]];var S=p.BYTES_PER_ELEMENT==4?p:new Uint32Array(p),v=u(n.exports.meshopt_simplify,S,p.length,g,g.length,h*4,A,x,T);return v[0]=p instanceof Uint32Array?v[0]:new p.constructor(v[0]),v},getScale:function(p,g){return r(p instanceof Float32Array),r(p.length%g==0),f(n.exports.meshopt_simplifyScale,p,p.length,g*4)}}}();function A0(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.bufferViewId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.bufferViews[i],c=a.buffer,u=a.byteOffset,f=a.byteLength,d=!1,p,g,h,A;if(ni(a,"EXT_meshopt_compression")){let C=a.extensions.EXT_meshopt_compression;c=C.buffer,u=y(C.byteOffset,0),f=C.byteLength,d=!0,p=C.byteStride,g=C.count,h=C.mode,A=y(C.filter,"NONE")}let x=n.buffers[c];this._hasMeshopt=d,this._meshoptByteStride=p,this._meshoptCount=g,this._meshoptMode=h,this._meshoptFilter=A,this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._buffer=x,this._bufferId=c,this._byteOffset=u,this._byteLength=f,this._cacheKey=s,this._bufferLoader=void 0,this._typedArray=void 0,this._state=vt.UNLOADED,this._promise=void 0}l(Object.create)&&(A0.prototype=Object.create(io.prototype),A0.prototype.constructor=A0);Object.defineProperties(A0.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});async function SBe(e){try{let t=wBe(e);if(e._bufferLoader=t,await t.load(),e.isDestroyed())return;let n=t.typedArray,i=new Uint8Array(n.buffer,n.byteOffset+e._byteOffset,e._byteLength);if(e.unload(),e._typedArray=i,e._hasMeshopt){let o=e._meshoptCount,r=e._meshoptByteStride,s=new Uint8Array(o*r);Oee.decodeGltfBuffer(s,o,r,e._typedArray,e._meshoptMode,e._meshoptFilter),e._typedArray=s}return e._state=vt.READY,e}catch(t){if(e.isDestroyed())return;e.unload(),e._state=vt.FAILED;let n="Failed to load buffer view";throw e.getError(n,t)}}A0.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=vt.LOADING,this._promise=SBe(this),this._promise)};function wBe(e){let t=e._resourceCache,n=e._buffer;if(l(n.uri)){let o=e._baseResource.getDerivedResource({url:n.uri});return t.getExternalBufferLoader({resource:o})}return t.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:e._bufferId})}A0.prototype.unload=function(){l(this._bufferLoader)&&!this._bufferLoader.isDestroyed()&&this._resourceCache.unload(this._bufferLoader),this._bufferLoader=void 0,this._typedArray=void 0};var XS=A0;function Ma(){}Ma._maxDecodingConcurrency=Math.max(Gt.hardwareConcurrency-1,1);Ma._decoderTaskProcessor=void 0;Ma._taskProcessorReady=!1;Ma._getDecoderTaskProcessor=function(){if(!l(Ma._decoderTaskProcessor)){let e=new pi("decodeDraco",Ma._maxDecodingConcurrency);e.initWebAssemblyModule({modulePath:"ThirdParty/Workers/draco_decoder_nodejs.js",wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(function(){Ma._taskProcessorReady=!0}),Ma._decoderTaskProcessor=e}return Ma._decoderTaskProcessor};Ma.decodePointCloud=function(e){let t=Ma._getDecoderTaskProcessor();if(Ma._taskProcessorReady)return t.scheduleTask(e,[e.buffer.buffer])};Ma.decodeBufferView=function(e){let t=Ma._getDecoderTaskProcessor();if(Ma._taskProcessorReady)return t.scheduleTask(e,[e.array.buffer])};var U_=Ma;function V_(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.draco,o=e.gltfResource,r=e.baseResource,s=e.cacheKey;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._draco=i,this._cacheKey=s,this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodePromise=void 0,this._decodedData=void 0,this._state=vt.UNLOADED,this._promise=void 0,this._dracoError=void 0}l(Object.create)&&(V_.prototype=Object.create(io.prototype),V_.prototype.constructor=V_);Object.defineProperties(V_.prototype,{cacheKey:{get:function(){return this._cacheKey}},decodedData:{get:function(){return this._decodedData}}});async function vBe(e){let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._draco.bufferView,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._bufferViewTypedArray=n.typedArray,e._state=vt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;Mee(e,n)}}V_.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=vt.LOADING,this._promise=vBe(this),this._promise)};function Mee(e,t){e.unload(),e._state=vt.FAILED;let n="Failed to load Draco";throw e.getError(n,t)}async function DBe(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={indices:n.indexArray,vertexAttributes:n.attributeData},e._state=vt.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._dracoError=n}}V_.prototype.process=function(e){if(this._state===vt.READY)return!0;if(this._state!==vt.PROCESSING||(l(this._dracoError)&&Mee(this,this._dracoError),!l(this._bufferViewTypedArray))||l(this._decodePromise))return!1;let t=this._draco,i=this._gltf.bufferViews,o=t.bufferView,r=i[o],s=t.attributes,a={array:new Uint8Array(this._bufferViewTypedArray),bufferView:r,compressedAttributes:s,dequantizeInShader:!0},c=U_.decodeBufferView(a);if(!l(c))return!1;this._decodePromise=DBe(this,c)};V_.prototype.unload=function(){l(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0};var KS=V_;function IBe(e){let t=e.uint8Array,n=e.format,i=e.request,o=y(e.flipY,!1),r=y(e.skipColorSpaceConversion,!1),s=new Blob([t],{type:n}),a;return we.supportsImageBitmapOptions().then(function(c){return c?Promise.resolve(we.createImageBitmapFromBlob(s,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:r})):(a=window.URL.createObjectURL(s),new we({url:a,request:i}).fetchImage({flipY:o,skipColorSpaceConversion:r}))}).then(function(c){return l(a)&&window.URL.revokeObjectURL(a),c}).catch(function(c){return l(a)&&window.URL.revokeObjectURL(a),Promise.reject(c)})}var PC=IBe;function Xh(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.imageId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.images[i],c=a.bufferView,u=a.uri;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._bufferViewId=c,this._uri=u,this._cacheKey=s,this._bufferViewLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._state=vt.UNLOADED,this._promise=void 0}l(Object.create)&&(Xh.prototype=Object.create(io.prototype),Xh.prototype.constructor=Xh);Object.defineProperties(Xh.prototype,{cacheKey:{get:function(){return this._cacheKey}},image:{get:function(){return this._image}},mipLevels:{get:function(){return this._mipLevels}}});Xh.prototype.load=function(){return l(this._promise)?this._promise:l(this._bufferViewId)?(this._promise=PBe(this),this._promise):(this._promise=OBe(this),this._promise)};function Ree(e){let t;return Array.isArray(e)&&(t=e.slice(1,e.length).map(function(n){return n.bufferView}),e=e[0]),{image:e,mipLevels:t}}async function PBe(e){e._state=vt.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=n,await n.load(),e.isDestroyed())return;let i=n.typedArray,o=await RBe(i);if(e.isDestroyed())return;let r=Ree(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=vt.READY,e}catch(n){return e.isDestroyed()?void 0:Bee(e,n,"Failed to load embedded image")}}async function OBe(e){e._state=vt.LOADING;let t=e._baseResource,n=e._uri,i=t.getDerivedResource({url:n});try{let o=await LBe(i);if(e.isDestroyed())return;let r=Ree(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=vt.READY,e}catch(o){return e.isDestroyed()?void 0:Bee(e,o,`Failed to load image: ${n}`)}}function Bee(e,t,n){return e.unload(),e._state=vt.FAILED,Promise.reject(e.getError(n,t))}function MBe(e){let t=e.subarray(0,2),n=e.subarray(0,4),i=e.subarray(8,12);if(t[0]===255&&t[1]===216)return"image/jpeg";if(t[0]===137&&t[1]===80)return"image/png";if(t[0]===171&&t[1]===75)return"image/ktx2";if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&i[0]===87&&i[1]===69&&i[2]===66&&i[3]===80)return"image/webp";throw new de("Image format is not recognized")}async function RBe(e){let t=MBe(e);if(t==="image/ktx2"){let n=new Uint8Array(e);return Sl(n)}return Xh._loadImageFromTypedArray({uint8Array:e,format:t,flipY:!1,skipColorSpaceConversion:!0})}var BBe=/(^data:image\/ktx2)|(\.ktx2$)/i;function LBe(e){let t=e.getUrlComponent(!1,!0);return BBe.test(t)?Sl(e):e.fetchImage({skipColorSpaceConversion:!0,preferImageBitmap:!0})}Xh.prototype.unload=function(){l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._uri=void 0,this._image=void 0,this._mipLevels=void 0,this._gltf=void 0};Xh._loadImageFromTypedArray=PC;var JS=Xh;var NBe={TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3},Ra=Object.freeze(NBe);function k_(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.accessorId,o=e.gltfResource,r=e.baseResource,s=e.draco,a=e.cacheKey,c=y(e.asynchronous,!0),u=y(e.loadBuffer,!1),f=y(e.loadTypedArray,!1),d=n.accessors[i].componentType;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._accessorId=i,this._indexDatatype=d,this._draco=s,this._cacheKey=a,this._asynchronous=c,this._loadBuffer=u,this._loadTypedArray=f,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=vt.UNLOADED,this._promise=void 0}l(Object.create)&&(k_.prototype=Object.create(io.prototype),k_.prototype.constructor=k_);Object.defineProperties(k_.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},indexDatatype:{get:function(){return this._indexDatatype}}});var FBe=new h5;k_.prototype.load=async function(){return l(this._promise)?this._promise:l(this._draco)?(this._promise=UBe(this),this._promise):(this._promise=VBe(this),this._promise)};async function UBe(e){e._state=vt.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=vt.LOADED,e)}catch(n){if(e.isDestroyed())return;m5(e,n)}}async function VBe(e){let t=e._gltf,n=e._accessorId,o=t.accessors[n].bufferView;e._state=vt.LOADING;let r=e._resourceCache;try{let s=r.getBufferViewLoader({gltf:t,bufferViewId:o,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=s,await s.load(),e.isDestroyed())return;let a=s.typedArray;return e._typedArray=kBe(e,a),e._state=vt.PROCESSING,e}catch(s){if(e.isDestroyed())return;m5(e,s)}}function kBe(e,t){let n=e._gltf,i=e._accessorId,o=n.accessors[i],r=o.count,s=o.componentType,a=Ve.getSizeInBytes(s),c=t.buffer,u=t.byteOffset+o.byteOffset;if(u%a!==0){let d=r*a,p=new Uint8Array(c,u,d);c=new Uint8Array(p).buffer,u=0,$("index-buffer-unaligned",`The index array is not aligned to a ${a}-byte boundary.`)}let f;return s===Ve.UNSIGNED_BYTE?f=new Uint8Array(c,u,r):s===Ve.UNSIGNED_SHORT?f=new Uint16Array(c,u,r):s===Ve.UNSIGNED_INT&&(f=new Uint32Array(c,u,r)),f}function m5(e,t){e.unload(),e._state=vt.FAILED;let n="Failed to load index buffer";throw e.getError(n,t)}function h5(){this.typedArray=void 0,this.indexDatatype=void 0,this.context=void 0,this.buffer=void 0}h5.prototype.set=function(e,t,n){this.typedArray=e,this.indexDatatype=t,this.context=n};h5.prototype.execute=function(){this.buffer=Lee(this.typedArray,this.indexDatatype,this.context)};function Lee(e,t,n){let i=mt.createIndexBuffer({typedArray:e,context:n,usage:Fe.STATIC_DRAW,indexDatatype:t});return i.vertexArrayDestroyable=!1,i}k_.prototype.process=function(e){if(this._state===vt.READY)return!0;if(this._state!==vt.LOADED&&this._state!==vt.PROCESSING)return!1;let t=this._typedArray,n=this._indexDatatype;if(l(this._dracoLoader))try{this._dracoLoader.process(e)&&(t=this._dracoLoader.decodedData.indices.typedArray,this._typedArray=t,n=X.fromTypedArray(t),this._indexDatatype=n)}catch(o){m5(this,o)}if(!l(t))return!1;let i;if(this._loadBuffer&&this._asynchronous){let o=FBe;if(o.set(t,n,e.context),!e.jobScheduler.execute(o,Ra.BUFFER))return!1;i=o.buffer}else this._loadBuffer&&(i=Lee(t,n,e.context));return this.unload(),this._buffer=i,this._typedArray=this._loadTypedArray?t:void 0,this._state=vt.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};k_.prototype.unload=function(){l(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),l(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var ZS=k_;function zBe(e,t,n){if(n=y(n,!1),n){let i=e.indexOf(t);if(i>-1)return i}return e.push(t),e.length-1}var _s=zBe;function HBe(e,t){return l(e.extensionsUsed)&&e.extensionsUsed.indexOf(t)>=0}var xr=HBe;function Yt(){}Yt.objectLegacy=function(e,t){if(l(e)){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(l(o))return o}}};Yt.object=function(e,t){if(l(e)){let n=e.length;for(let i=0;i<n;i++){let o=e[i],r=t(o,i);if(l(r))return r}}};Yt.topLevel=function(e,t,n){let i=e[t];return l(i)&&!Array.isArray(i)?Yt.objectLegacy(i,n):Yt.object(i,n)};Yt.accessor=function(e,t){return Yt.topLevel(e,"accessors",t)};Yt.accessorWithSemantic=function(e,t,n){let i={};return Yt.mesh(e,function(o){return Yt.meshPrimitive(o,function(r){let s=Yt.meshPrimitiveAttribute(r,function(a,c){if(c.indexOf(t)===0&&!l(i[a])){i[a]=!0;let u=n(a);if(l(u))return u}});return l(s)?s:Yt.meshPrimitiveTarget(r,function(a){return Yt.meshPrimitiveTargetAttribute(a,function(c,u){if(u.indexOf(t)===0&&!l(i[c])){i[c]=!0;let f=n(c);if(l(f))return f}})})})})};Yt.accessorContainingVertexAttributeData=function(e,t){let n={};return Yt.mesh(e,function(i){return Yt.meshPrimitive(i,function(o){let r=Yt.meshPrimitiveAttribute(o,function(s){if(!l(n[s])){n[s]=!0;let a=t(s);if(l(a))return a}});return l(r)?r:Yt.meshPrimitiveTarget(o,function(s){return Yt.meshPrimitiveTargetAttribute(s,function(a){if(!l(n[a])){n[a]=!0;let c=t(a);if(l(c))return c}})})})})};Yt.accessorContainingIndexData=function(e,t){let n={};return Yt.mesh(e,function(i){return Yt.meshPrimitive(i,function(o){let r=o.indices;if(l(r)&&!l(n[r])){n[r]=!0;let s=t(r);if(l(s))return s}})})};Yt.animation=function(e,t){return Yt.topLevel(e,"animations",t)};Yt.animationChannel=function(e,t){let n=e.channels;return Yt.object(n,t)};Yt.animationSampler=function(e,t){let n=e.samplers;return Yt.object(n,t)};Yt.buffer=function(e,t){return Yt.topLevel(e,"buffers",t)};Yt.bufferView=function(e,t){return Yt.topLevel(e,"bufferViews",t)};Yt.camera=function(e,t){return Yt.topLevel(e,"cameras",t)};Yt.image=function(e,t){return Yt.topLevel(e,"images",t)};Yt.material=function(e,t){return Yt.topLevel(e,"materials",t)};Yt.materialValue=function(e,t){let n=e.values;l(e.extensions)&&l(e.extensions.KHR_techniques_webgl)&&(n=e.extensions.KHR_techniques_webgl.values);for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};Yt.mesh=function(e,t){return Yt.topLevel(e,"meshes",t)};Yt.meshPrimitive=function(e,t){let n=e.primitives;if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r,o);if(l(s))return s}}};Yt.meshPrimitiveAttribute=function(e,t){let n=e.attributes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};Yt.meshPrimitiveTarget=function(e,t){let n=e.targets;if(l(n)){let i=n.length;for(let o=0;o<i;++o){let r=t(n[o],o);if(l(r))return r}}};Yt.meshPrimitiveTargetAttribute=function(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(l(o))return o}};Yt.node=function(e,t){return Yt.topLevel(e,"nodes",t)};Yt.nodeInTree=function(e,t,n){let i=e.nodes;if(l(i)){let o=t.length;for(let r=0;r<o;r++){let s=t[r],a=i[s];if(l(a)){let c=n(a,s);if(l(c))return c;let u=a.children;if(l(u)&&(c=Yt.nodeInTree(e,u,n),l(c)))return c}}}};Yt.nodeInScene=function(e,t,n){let i=t.nodes;if(l(i))return Yt.nodeInTree(e,i,n)};Yt.program=function(e,t){return xr(e,"KHR_techniques_webgl")?Yt.object(e.extensions.KHR_techniques_webgl.programs,t):Yt.topLevel(e,"programs",t)};Yt.sampler=function(e,t){return Yt.topLevel(e,"samplers",t)};Yt.scene=function(e,t){return Yt.topLevel(e,"scenes",t)};Yt.shader=function(e,t){return xr(e,"KHR_techniques_webgl")?Yt.object(e.extensions.KHR_techniques_webgl.shaders,t):Yt.topLevel(e,"shaders",t)};Yt.skin=function(e,t){return Yt.topLevel(e,"skins",t)};Yt.skinJoint=function(e,t){let n=e.joints;if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r);if(l(s))return s}}};Yt.techniqueAttribute=function(e,t){let n=e.attributes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};Yt.techniqueUniform=function(e,t){let n=e.uniforms;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};Yt.techniqueParameter=function(e,t){let n=e.parameters;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};Yt.technique=function(e,t){return xr(e,"KHR_techniques_webgl")?Yt.object(e.extensions.KHR_techniques_webgl.techniques,t):Yt.topLevel(e,"techniques",t)};Yt.texture=function(e,t){return Yt.topLevel(e,"textures",t)};var Oe=Yt;function GBe(e){switch(e){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}}var Nu=GBe;function WBe(e,t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n];if(l(i.byteStride)&&i.byteStride>0)return i.byteStride}return X.getSizeInBytes(t.componentType)*Nu(t.type)}var Vl=WBe;function jBe(e){Oe.accessor(e,function(n){l(n.bufferView)&&(n.byteOffset=y(n.byteOffset,0))}),Oe.bufferView(e,function(n){l(n.buffer)&&(n.byteOffset=y(n.byteOffset,0))}),Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){if(i.mode=y(i.mode,te.TRIANGLES),!l(i.material)){l(e.materials)||(e.materials=[]);let o={name:"default"};i.material=_s(e.materials,o)}})}),Oe.accessorContainingVertexAttributeData(e,function(n){let i=e.accessors[n],o=i.bufferView;if(i.normalized=y(i.normalized,!1),l(o)){let r=e.bufferViews[o];r.byteStride=Vl(e,i),r.target=te.ARRAY_BUFFER}}),Oe.accessorContainingIndexData(e,function(n){let o=e.accessors[n].bufferView;if(l(o)){let r=e.bufferViews[o];r.target=te.ELEMENT_ARRAY_BUFFER}}),Oe.material(e,function(n){let i=y(n.extensions,y.EMPTY_OBJECT),o=i.KHR_materials_common;if(l(o)){let c=o.technique,u=l(o.values)?o.values:{};o.values=u,u.ambient=l(u.ambient)?u.ambient:[0,0,0,1],u.emission=l(u.emission)?u.emission:[0,0,0,1],u.transparency=y(u.transparency,1),c!=="CONSTANT"&&(u.diffuse=l(u.diffuse)?u.diffuse:[0,0,0,1],c!=="LAMBERT"&&(u.specular=l(u.specular)?u.specular:[0,0,0,1],u.shininess=y(u.shininess,0))),o.transparent=y(o.transparent,!1),o.doubleSided=y(o.doubleSided,!1);return}n.emissiveFactor=y(n.emissiveFactor,[0,0,0]),n.alphaMode=y(n.alphaMode,"OPAQUE"),n.doubleSided=y(n.doubleSided,!1),n.alphaMode==="MASK"&&(n.alphaCutoff=y(n.alphaCutoff,.5));let r=i.KHR_techniques_webgl;l(r)&&Oe.materialValue(n,function(c){l(c.index)&&x0(c)}),x0(n.emissiveTexture),x0(n.normalTexture),x0(n.occlusionTexture);let s=n.pbrMetallicRoughness;l(s)&&(s.baseColorFactor=y(s.baseColorFactor,[1,1,1,1]),s.metallicFactor=y(s.metallicFactor,1),s.roughnessFactor=y(s.roughnessFactor,1),x0(s.baseColorTexture),x0(s.metallicRoughnessTexture));let a=i.KHR_materials_pbrSpecularGlossiness;l(a)&&(a.diffuseFactor=y(a.diffuseFactor,[1,1,1,1]),a.specularFactor=y(a.specularFactor,[1,1,1]),a.glossinessFactor=y(a.glossinessFactor,1),x0(a.specularGlossinessTexture))}),Oe.animation(e,function(n){Oe.animationSampler(n,function(i){i.interpolation=y(i.interpolation,"LINEAR")})});let t=YBe(e);return Oe.node(e,function(n,i){l(t[i])||l(n.translation)||l(n.rotation)||l(n.scale)?(n.translation=y(n.translation,[0,0,0]),n.rotation=y(n.rotation,[0,0,0,1]),n.scale=y(n.scale,[1,1,1])):n.matrix=y(n.matrix,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}),Oe.sampler(e,function(n){n.wrapS=y(n.wrapS,te.REPEAT),n.wrapT=y(n.wrapT,te.REPEAT)}),l(e.scenes)&&!l(e.scene)&&(e.scene=0),e}function YBe(e){let t={};return Oe.animation(e,function(n){Oe.animationChannel(n,function(i){let o=i.target,r=o.node,s=o.path;(s==="translation"||s==="rotation"||s==="scale")&&(t[r]=!0)})}),t}function x0(e){l(e)&&(e.texCoord=y(e.texCoord,0))}var QR=jBe;function qBe(e){return Oe.shader(e,function(t){$R(t)}),Oe.buffer(e,function(t){$R(t)}),Oe.image(e,function(t){$R(t)}),$R(e),e}function $R(e){e.extras=l(e.extras)?e.extras:{},e.extras._pipeline=l(e.extras._pipeline)?e.extras._pipeline:{}}var C0=qBe;function XBe(e,t){let n=e.extensionsRequired;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),n.length===0&&delete e.extensionsRequired}}var eB=XBe;function KBe(e,t){let n=e.extensionsUsed;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),eB(e,t),n.length===0&&delete e.extensionsUsed}}var OC=KBe;var JBe=4;function ZBe(e){if(pm(e)!=="glTF")throw new de("File is not valid binary glTF");let n=Nee(e,0,5),i=n[1];if(i!==1&&i!==2)throw new de("Binary glTF version is not 1 or 2");return i===1?QBe(e,n):$Be(e,n)}function Nee(e,t,n){let i=new DataView(e.buffer),o=new Array(n);for(let r=0;r<n;++r)o[r]=i.getUint32(e.byteOffset+t+r*JBe,!0);return o}function QBe(e,t){let n=t[2],i=t[3];if(t[4]!==0)throw new de("Binary glTF scene format is not JSON");let r=20,s=r+i,a=Ll(e,r,i),c=JSON.parse(a);C0(c);let u=e.subarray(s,n),f=c.buffers;if(l(f)&&Object.keys(f).length>0){let d=y(f.binary_glTF,f.KHR_binary_glTF);l(d)&&(d.extras._pipeline.source=u,delete d.uri)}return OC(c,"KHR_binary_glTF"),c}function $Be(e,t){let n=t[2],i=12,o,r;for(;i<n;){let s=Nee(e,i,2),a=s[0],c=s[1];i+=8;let u=e.subarray(i,i+a);if(i+=a,c===1313821514){let f=Ll(u);o=JSON.parse(f),C0(o)}else c===5130562&&(r=u)}if(l(o)&&l(r)){let s=o.buffers;if(l(s)&&s.length>0){let a=s[0];a.extras._pipeline.source=r}}return o}var tB=ZBe;function eLe(e){return Oe.shader(e,function(t){nB(t)}),Oe.buffer(e,function(t){nB(t)}),Oe.image(e,function(t){nB(t)}),nB(e),e}function nB(e){l(e.extras)&&(l(e.extras._pipeline)&&delete e.extras._pipeline,Object.keys(e.extras).length===0&&delete e.extras)}var iB=eLe;function tLe(e,t){let n=e.extensionsUsed;l(n)||(n=[],e.extensionsUsed=n),_s(n,t,!0)}var jf=tLe;function nLe(e){switch(e){case X.BYTE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt8(n+s*o)};case X.UNSIGNED_BYTE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint8(n+s*o)};case X.SHORT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt16(n+s*o,!0)};case X.UNSIGNED_SHORT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint16(n+s*o,!0)};case X.INT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt32(n+s*o,!0)};case X.UNSIGNED_INT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint32(n+s*o,!0)};case X.FLOAT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getFloat32(n+s*o,!0)};case X.DOUBLE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getFloat64(n+s*o,!0)}}}var z_=nLe;function iLe(e,t){let n=e.bufferViews,i=e.buffers,o=t.bufferView,r=Nu(t.type);if(!l(t.bufferView))return{min:new Array(r).fill(0),max:new Array(r).fill(0)};let s=new Array(r).fill(Number.POSITIVE_INFINITY),a=new Array(r).fill(Number.NEGATIVE_INFINITY),c=n[o],u=c.buffer,d=i[u].extras._pipeline.source,p=t.count,g=Vl(e,t),h=t.byteOffset+c.byteOffset+d.byteOffset,A=t.componentType,x=X.getSizeInBytes(A),C=new DataView(d.buffer),T=new Array(r),E=z_(A);for(let S=0;S<p;S++){E(C,h,r,x,T);for(let v=0;v<r;v++){let D=T[v];s[v]=Math.min(s[v],D),a[v]=Math.max(a[v],D)}h+=g}return{min:s,max:a}}var MC=iLe;var oLe=[te.FUNC_ADD,te.FUNC_ADD],rLe=[te.ONE,te.ZERO,te.ONE,te.ZERO];function Fee(e,t){let n=e.enable;return l(n)?n.indexOf(t)>-1:!1}var sLe=[te.ZERO,te.ONE,te.SRC_COLOR,te.ONE_MINUS_SRC_COLOR,te.SRC_ALPHA,te.ONE_MINUS_SRC_ALPHA,te.DST_ALPHA,te.ONE_MINUS_DST_ALPHA,te.DST_COLOR,te.ONE_MINUS_DST_COLOR];function aLe(e,t){if(!l(e))return t;for(let n=0;n<4;n++)if(sLe.indexOf(e[n])===-1)return t;return e}function cLe(e){let t={},n={},i=e.techniques;return l(i)&&(Oe.technique(e,function(o,r){let s=o.states;if(l(s)){let a=n[r]={};if(Fee(s,te.BLEND)){a.alphaMode="BLEND";let c=s.functions;l(c)&&(l(c.blendEquationSeparate)||l(c.blendFuncSeparate))&&(t[r]={blendEquation:y(c.blendEquationSeparate,oLe),blendFactors:aLe(c.blendFuncSeparate,rLe)})}Fee(s,te.CULL_FACE)||(a.doubleSided=!0),delete o.states}}),Object.keys(t).length>0&&(l(e.extensions)||(e.extensions={}),jf(e,"KHR_blend")),Oe.material(e,function(o){if(l(o.technique)){let r=n[o.technique];Oe.objectLegacy(r,function(a,c){o[c]=a});let s=t[o.technique];l(s)&&(l(o.extensions)||(o.extensions={}),o.extensions.KHR_blend=s)}})),e}var oB=cLe;function lLe(e,t){let n=e.extensionsRequired;l(n)||(n=[],e.extensionsRequired=n),_s(n,t,!0),jf(e,t)}var rB=lLe;function uLe(e){let t=e.techniques,n={},i={},o={};if(l(t)){let r={programs:[],shaders:[],techniques:[]},s=e.glExtensionsUsed;delete e.glExtensionsUsed,Oe.technique(e,function(a,c){let u={name:a.name,program:void 0,attributes:{},uniforms:{}},f;if(Oe.techniqueAttribute(a,function(d,p){f=a.parameters[d],u.attributes[p]={semantic:f.semantic}}),Oe.techniqueUniform(a,function(d,p){f=a.parameters[d],u.uniforms[p]={count:f.count,node:f.node,type:f.type,semantic:f.semantic,value:f.value},l(n[c])||(n[c]={}),n[c][d]=p}),l(o[a.program]))u.program=o[a.program];else{let d=e.programs[a.program],p={name:d.name,fragmentShader:void 0,vertexShader:void 0,glExtensions:s},g=e.shaders[d.fragmentShader];p.fragmentShader=_s(r.shaders,g,!0);let h=e.shaders[d.vertexShader];p.vertexShader=_s(r.shaders,h,!0),u.program=_s(r.programs,p),o[a.program]=u.program}i[c]=_s(r.techniques,u)}),r.techniques.length>0&&(l(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=r,jf(e,"KHR_techniques_webgl"),rB(e,"KHR_techniques_webgl"))}return Oe.material(e,function(r){if(l(r.technique)){let s={technique:i[r.technique]};Oe.objectLegacy(r.values,function(a,c){l(s.values)||(s.values={});let u=n[r.technique][c];l(u)&&(s.values[u]=a)}),l(r.extensions)||(r.extensions={}),r.extensions.KHR_techniques_webgl=s}delete r.technique,delete r.values}),delete e.techniques,delete e.programs,delete e.shaders,e}var sB=uLe;function fLe(e,t){El.typeOf.object("material",e),El.defined("handler",t);let n=e.pbrMetallicRoughness;if(l(n)){if(l(n.baseColorTexture)){let o=n.baseColorTexture,r=t(o.index,o);if(l(r))return r}if(l(n.metallicRoughnessTexture)){let o=n.metallicRoughnessTexture,r=t(o.index,o);if(l(r))return r}}if(l(e.extensions)){let o=e.extensions.KHR_materials_pbrSpecularGlossiness;if(l(o)){if(l(o.diffuseTexture)){let s=o.diffuseTexture,a=t(s.index,s);if(l(a))return a}if(l(o.specularGlossinessTexture)){let s=o.specularGlossinessTexture,a=t(s.index,s);if(l(a))return a}}let r=e.extensions.KHR_materials_common;if(l(r)&&l(r.values)){let s=r.values.diffuse,a=r.values.ambient,c=r.values.emission,u=r.values.specular;if(l(s)&&l(s.index)){let f=t(s.index,s);if(l(f))return f}if(l(a)&&l(a.index)){let f=t(a.index,a);if(l(f))return f}if(l(c)&&l(c.index)){let f=t(c.index,c);if(l(f))return f}if(l(u)&&l(u.index)){let f=t(u.index,u);if(l(f))return f}}}let i=Oe.materialValue(e,function(o){if(l(o.index)){let r=t(o.index,o);if(l(r))return r}});if(l(i))return i;if(l(e.emissiveTexture)){let o=e.emissiveTexture,r=t(o.index,o);if(l(r))return r}if(l(e.normalTexture)){let o=e.normalTexture,r=t(o.index,o);if(l(r))return r}if(l(e.occlusionTexture)){let o=e.occlusionTexture,r=t(o.index,o);if(l(r))return r}}var QS=fLe;var Uee=["mesh","node","material","accessor","bufferView","buffer","texture","sampler","image"];function dLe(e,t){return t=y(t,Uee),Uee.forEach(function(n){t.indexOf(n)>-1&&hLe(e,n)}),e}var mLe={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews",image:"images",node:"nodes",material:"materials",mesh:"meshes",sampler:"samplers",texture:"textures"};function hLe(e,t){let n=mLe[t],i=e[n];if(l(i)){let o=0,r=gm[t](e),s=i.length;for(let a=0;a<s;++a)r[a]||(_m[t](e,a-o),o++)}}function _m(){}_m.accessor=function(e,t){e.accessors.splice(t,1),Oe.mesh(e,function(i){Oe.meshPrimitive(i,function(o){Oe.meshPrimitiveAttribute(o,function(s,a){s>t&&o.attributes[a]--}),Oe.meshPrimitiveTarget(o,function(s){Oe.meshPrimitiveTargetAttribute(s,function(a,c){a>t&&s[c]--})});let r=o.indices;l(r)&&r>t&&o.indices--})}),Oe.skin(e,function(i){l(i.inverseBindMatrices)&&i.inverseBindMatrices>t&&i.inverseBindMatrices--}),Oe.animation(e,function(i){Oe.animationSampler(i,function(o){l(o.input)&&o.input>t&&o.input--,l(o.output)&&o.output>t&&o.output--})})};_m.buffer=function(e,t){e.buffers.splice(t,1),Oe.bufferView(e,function(i){l(i.buffer)&&i.buffer>t&&i.buffer--,l(i.extensions)&&l(i.extensions.EXT_meshopt_compression)&&i.extensions.EXT_meshopt_compression.buffer--})};_m.bufferView=function(e,t){if(e.bufferViews.splice(t,1),Oe.accessor(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Oe.shader(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Oe.image(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),xr(e,"KHR_draco_mesh_compression")&&Oe.mesh(e,function(i){Oe.meshPrimitive(i,function(o){l(o.extensions)&&l(o.extensions.KHR_draco_mesh_compression)&&o.extensions.KHR_draco_mesh_compression.bufferView>t&&o.extensions.KHR_draco_mesh_compression.bufferView--})}),xr(e,"EXT_feature_metadata")){let o=e.extensions.EXT_feature_metadata.featureTables;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];l(u.bufferView)&&u.bufferView>t&&u.bufferView--,l(u.arrayOffsetBufferView)&&u.arrayOffsetBufferView>t&&u.arrayOffsetBufferView--,l(u.stringOffsetBufferView)&&u.stringOffsetBufferView>t&&u.stringOffsetBufferView--}}}}if(xr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTables;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let u in c)if(c.hasOwnProperty(u)){let f=c[u];l(f.values)&&f.values>t&&f.values--,l(f.arrayOffsets)&&f.arrayOffsets>t&&f.arrayOffsets--,l(f.stringOffsets)&&f.stringOffsets>t&&f.stringOffsets--}}}}};_m.image=function(e,t){e.images.splice(t,1),Oe.texture(e,function(i){l(i.source)&&i.source>t&&--i.source;let o=i.extensions;l(o)&&l(o.EXT_texture_webp)&&o.EXT_texture_webp.source>t?--i.extensions.EXT_texture_webp.source:l(o)&&l(o.KHR_texture_basisu)&&o.KHR_texture_basisu.source>t&&--i.extensions.KHR_texture_basisu.source})};_m.mesh=function(e,t){e.meshes.splice(t,1),Oe.node(e,function(i){l(i.mesh)&&(i.mesh>t?i.mesh--:i.mesh===t&&delete i.mesh)})};_m.node=function(e,t){e.nodes.splice(t,1),Oe.skin(e,function(i){l(i.skeleton)&&i.skeleton>t&&i.skeleton--,i.joints=i.joints.map(function(o){return o>t?o-1:o})}),Oe.animation(e,function(i){Oe.animationChannel(i,function(o){l(o.target)&&l(o.target.node)&&o.target.node>t&&o.target.node--})}),Oe.technique(e,function(i){Oe.techniqueUniform(i,function(o){l(o.node)&&o.node>t&&o.node--})}),Oe.node(e,function(i){l(i.children)&&(i.children=i.children.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o}))}),Oe.scene(e,function(i){i.nodes=i.nodes.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o})})};_m.material=function(e,t){e.materials.splice(t,1),Oe.mesh(e,function(i){Oe.meshPrimitive(i,function(o){l(o.material)&&o.material>t&&o.material--})})};_m.sampler=function(e,t){e.samplers.splice(t,1),Oe.texture(e,function(i){l(i.sampler)&&i.sampler>t&&--i.sampler})};_m.texture=function(e,t){if(e.textures.splice(t,1),Oe.material(e,function(i){QS(i,function(o,r){r.index>t&&--r.index})}),xr(e,"EXT_feature_metadata")){Oe.mesh(e,function(r){Oe.meshPrimitive(r,function(s){let a=s.extensions;if(l(a)&&l(a.EXT_feature_metadata)){let u=a.EXT_feature_metadata.featureIdTextures;if(l(u)){let f=u.length;for(let d=0;d<f;++d){let g=u[d].featureIds.texture;g.index>t&&--g.index}}}})});let o=e.extensions.EXT_feature_metadata.featureTextures;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let f=a[c].texture;f.index>t&&--f.index}}}}if(xr(e,"EXT_mesh_features")&&Oe.mesh(e,function(i){Oe.meshPrimitive(i,function(o){let r=o.extensions;if(l(r)&&l(r.EXT_mesh_features)){let a=r.EXT_mesh_features.featureIds;if(l(a)){let c=a.length;for(let u=0;u<c;++u){let f=a[u];l(f.texture)&&f.texture.index>t&&--f.texture.index}}}})}),xr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTextures;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let u in c)if(c.hasOwnProperty(u)){let f=c[u];f.index>t&&--f.index}}}}};function gm(){}gm.accessor=function(e){let t={};return Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){Oe.meshPrimitiveAttribute(i,function(r){t[r]=!0}),Oe.meshPrimitiveTarget(i,function(r){Oe.meshPrimitiveTargetAttribute(r,function(s){t[s]=!0})});let o=i.indices;l(o)&&(t[o]=!0)})}),Oe.skin(e,function(n){l(n.inverseBindMatrices)&&(t[n.inverseBindMatrices]=!0)}),Oe.animation(e,function(n){Oe.animationSampler(n,function(i){l(i.input)&&(t[i.input]=!0),l(i.output)&&(t[i.output]=!0)})}),xr(e,"EXT_mesh_gpu_instancing")&&Oe.node(e,function(n){l(n.extensions)&&l(n.extensions.EXT_mesh_gpu_instancing)&&Object.keys(n.extensions.EXT_mesh_gpu_instancing.attributes).forEach(function(i){let o=n.extensions.EXT_mesh_gpu_instancing.attributes[i];t[o]=!0})}),t};gm.buffer=function(e){let t={};return Oe.bufferView(e,function(n){l(n.buffer)&&(t[n.buffer]=!0),l(n.extensions)&&l(n.extensions.EXT_meshopt_compression)&&(t[n.extensions.EXT_meshopt_compression.buffer]=!0)}),t};gm.bufferView=function(e){let t={};if(Oe.accessor(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Oe.shader(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Oe.image(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),xr(e,"KHR_draco_mesh_compression")&&Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){l(i.extensions)&&l(i.extensions.KHR_draco_mesh_compression)&&(t[i.extensions.KHR_draco_mesh_compression.bufferView]=!0)})}),xr(e,"EXT_feature_metadata")){let i=e.extensions.EXT_feature_metadata.featureTables;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let c=s[a];l(c.bufferView)&&(t[c.bufferView]=!0),l(c.arrayOffsetBufferView)&&(t[c.arrayOffsetBufferView]=!0),l(c.stringOffsetBufferView)&&(t[c.stringOffsetBufferView]=!0)}}}}if(xr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTables;if(l(i)){let o=i.length;for(let r=0;r<o;++r){let a=i[r].properties;for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];l(u.values)&&(t[u.values]=!0),l(u.arrayOffsets)&&(t[u.arrayOffsets]=!0),l(u.stringOffsets)&&(t[u.stringOffsets]=!0)}}}}return t};gm.image=function(e){let t={};return Oe.texture(e,function(n){l(n.source)&&(t[n.source]=!0),l(n.extensions)&&l(n.extensions.EXT_texture_webp)?t[n.extensions.EXT_texture_webp.source]=!0:l(n.extensions)&&l(n.extensions.KHR_texture_basisu)&&(t[n.extensions.KHR_texture_basisu.source]=!0)}),t};gm.mesh=function(e){let t={};return Oe.node(e,function(n){if(l(n.mesh&&l(e.meshes))){let i=e.meshes[n.mesh];l(i)&&l(i.primitives)&&i.primitives.length>0&&(t[n.mesh]=!0)}}),t};function Vee(e,t,n){let i=e.nodes[t];return l(i.mesh)||l(i.camera)||l(i.skin)||l(i.weights)||l(i.extras)||l(i.extensions)&&Object.keys(i.extensions).length!==0||l(n[t])?!1:!l(i.children)||i.children.filter(function(o){return!Vee(e,o,n)}).length===0}gm.node=function(e){let t={};return Oe.skin(e,function(n){l(n.skeleton)&&(t[n.skeleton]=!0),Oe.skinJoint(n,function(i){t[i]=!0})}),Oe.animation(e,function(n){Oe.animationChannel(n,function(i){l(i.target)&&l(i.target.node)&&(t[i.target.node]=!0)})}),Oe.technique(e,function(n){Oe.techniqueUniform(n,function(i){l(i.node)&&(t[i.node]=!0)})}),Oe.node(e,function(n,i){Vee(e,i,t)||(t[i]=!0)}),t};gm.material=function(e){let t={};return Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){l(i.material)&&(t[i.material]=!0)})}),t};gm.texture=function(e){let t={};if(Oe.material(e,function(n){QS(n,function(i){t[i]=!0})}),xr(e,"EXT_feature_metadata")){Oe.mesh(e,function(o){Oe.meshPrimitive(o,function(r){let s=r.extensions;if(l(s)&&l(s.EXT_feature_metadata)){let c=s.EXT_feature_metadata.featureIdTextures;if(l(c)){let u=c.length;for(let f=0;f<u;++f){let p=c[f].featureIds.texture;t[p.index]=!0}}}})});let i=e.extensions.EXT_feature_metadata.featureTextures;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let u=s[a].texture;t[u.index]=!0}}}}if(xr(e,"EXT_mesh_features")&&Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){let o=i.extensions;if(l(o)&&l(o.EXT_mesh_features)){let s=o.EXT_mesh_features.featureIds;if(l(s)){let a=s.length;for(let c=0;c<a;++c){let u=s[c];l(u.texture)&&(t[u.texture.index]=!0)}}}})}),xr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTextures;if(l(i)){let o=i.length;for(let r=0;r<o;++r){let a=i[r].properties;for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];t[u.index]=!0}}}}return t};gm.sampler=function(e){let t={};return Oe.texture(e,function(n){l(n.sampler)&&(t[n.sampler]=!0)}),t};var aB=dLe;function pLe(e,t){let n={byteLength:t.length,extras:{_pipeline:{source:t}}},o={buffer:_s(e.buffers,n),byteOffset:0,byteLength:t.length};return _s(e.bufferViews,o)}var cB=pLe;function _Le(e,t){let n=Vl(e,t),i=X.getSizeInBytes(t.componentType),o=Nu(t.type),r=t.count,s=new Array(o*r);if(!l(t.bufferView))return s.fill(0);let a=e.bufferViews[t.bufferView],c=e.buffers[a.buffer].extras._pipeline.source,u=t.byteOffset+a.byteOffset+c.byteOffset,f=new DataView(c.buffer),d=new Array(o),p=z_(t.componentType);for(let g=0;g<r;++g){p(f,u,o,i,d);for(let h=0;h<o;++h)s[g*o+h]=d[h];u+=n}return s}var lB=_Le;function gLe(e){let t;return Oe.accessorWithSemantic(e,"JOINTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===te.BYTE?uB(e,i,X.UNSIGNED_BYTE):t!==te.UNSIGNED_BYTE&&t!==te.UNSIGNED_SHORT&&uB(e,i,X.UNSIGNED_SHORT)}),Oe.accessorWithSemantic(e,"WEIGHTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===te.BYTE?uB(e,i,X.UNSIGNED_BYTE):t===te.SHORT&&uB(e,i,X.UNSIGNED_SHORT)}),e}function uB(e,t,n){let i=X.createTypedArray(n,lB(e,t)),o=new Uint8Array(i.buffer);t.bufferView=cB(e,o),t.componentType=n,t.byteOffset=0}var fB=gLe;function yLe(e,t){return OC(e,t),t==="CESIUM_RTC"&&ALe(e),p5(e,t)}function ALe(e){Oe.technique(e,function(t){Oe.techniqueUniform(t,function(n){n.semantic==="CESIUM_RTC_MODELVIEW"&&(n.semantic="MODELVIEW")})})}function p5(e,t){if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;++i)p5(e[i],t)}else if(e!==null&&typeof e=="object"&&e.constructor===Object){let n=e.extensions,i;l(n)&&(i=n[t],l(i)&&(delete n[t],Object.keys(n).length===0&&delete e.extensions));for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&p5(e[o],t);return i}}var RC=yLe;var dB={.8:SLe,"1.0":YLe,"2.0":void 0};function xLe(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.targetVersion,i=e.version;e.asset=y(e.asset,{version:"1.0"}),e.asset.version=y(e.asset.version,"1.0"),i=y(i,e.asset.version).toString(),Object.prototype.hasOwnProperty.call(dB,i)||(l(i)&&(i=i.substring(0,3)),Object.prototype.hasOwnProperty.call(dB,i)||(i="1.0"));let o=dB[i];for(;l(o)&&i!==n;)o(e,t),i=e.asset.version,o=dB[i];return t.keepLegacyExtensions||(KLe(e),JLe(e)),e}function zee(e){let t=e.materials;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.instanceTechnique;l(o)&&(i.technique=o.technique,i.values=o.values,delete i.instanceTechnique)}}function CLe(e){let t=e.meshes;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let o=t[n].primitives;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let a=o[s],c=y(a.primitive,te.TRIANGLES);a.mode=y(a.mode,c),delete a.primitive}}}}function TLe(e){let t=e.nodes,n=new m,i=new Ne;for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o];if(l(r.rotation)){let a=r.rotation;m.fromArray(a,0,n),Ne.fromAxisAngle(n,a[3],i),r.rotation=[i.x,i.y,i.z,i.w]}let s=r.instanceSkin;l(s)&&(r.skeletons=s.skeletons,r.skin=s.skin,r.meshes=s.meshes,delete r.instanceSkin)}}function ELe(e){let t=e.animations,n=e.accessors,i=e.bufferViews,o=e.buffers,r={},s=new m,a=new Ne;for(let c in t)if(Object.prototype.hasOwnProperty.call(t,c)){let u=t[c],f=u.channels,d=u.parameters,p=u.samplers;if(l(f)){let g=f.length;for(let h=0;h<g;++h){let A=f[h];if(A.target.path==="rotation"){let x=d[p[A.sampler].output];if(l(r[x]))continue;r[x]=!0;let C=n[x],T=i[C.bufferView],S=o[T.buffer].extras._pipeline.source,v=S.byteOffset+T.byteOffset+C.byteOffset,D=C.componentType,O=C.count,M=Nu(C.type),L=C.count*M,N=X.createArrayBufferView(D,S.buffer,v,L);for(let _=0;_<O;_++){let b=_*M;m.unpack(N,b,s);let w=N[b+3];Ne.fromAxisAngle(s,w,a),Ne.pack(a,N,b)}}}}}}function bLe(e){let t=e.techniques;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.passes;if(l(o)){let r=y(i.pass,"defaultPass");if(Object.prototype.hasOwnProperty.call(o,r)){let s=o[r],a=s.instanceProgram;i.attributes=y(i.attributes,a.attributes),i.program=y(i.program,a.program),i.uniforms=y(i.uniforms,a.uniforms),i.states=y(i.states,s.states)}delete i.passes,delete i.pass}}}function SLe(e){l(e.asset)||(e.asset={});let t=e.asset;if(t.version="1.0",typeof t.profile=="string"){let n=t.profile.split(" ");t.profile={api:n[0],version:n[1]}}else t.profile={};if(l(e.version)&&delete e.version,zee(e),CLe(e),TLe(e),ELe(e),bLe(e),l(e.allExtensions)&&(e.extensionsUsed=e.allExtensions,delete e.allExtensions),l(e.lights)){let n=y(e.extensions,{});e.extensions=n;let i=y(n.KHR_materials_common,{});n.KHR_materials_common=i,i.lights=e.lights,delete e.lights,jf(e,"KHR_materials_common")}}function wLe(e){let t=e.animations;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.parameters;if(l(o)){let r=i.samplers;for(let s in r)if(Object.prototype.hasOwnProperty.call(r,s)){let a=r[s];a.input=o[a.input],a.output=o[a.output]}delete i.parameters}}}function kee(e,t){let n=[];for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let o=e[i];t[i]=n.length,n.push(o),l(o.name)||(o.name=i)}return n}function vLe(e){let t,n={accessors:{},animations:{},buffers:{},bufferViews:{},cameras:{},images:{},materials:{},meshes:{},nodes:{},programs:{},samplers:{},scenes:{},shaders:{},skins:{},textures:{},techniques:{}},i,o={},r=e.nodes;for(let s in r)Object.prototype.hasOwnProperty.call(r,s)&&(i=r[s].jointName,l(i)&&(o[i]=s));for(let s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&l(n[s])){let a={},c=e[s];e[s]=kee(c,a),n[s]=a}for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(o[i]=n.nodes[o[i]]);l(e.scene)&&(e.scene=n.scenes[e.scene]),Oe.bufferView(e,function(s){l(s.buffer)&&(s.buffer=n.buffers[s.buffer])}),Oe.accessor(e,function(s){l(s.bufferView)&&(s.bufferView=n.bufferViews[s.bufferView])}),Oe.shader(e,function(s){let a=s.extensions;if(l(a)){let c=a.KHR_binary_glTF;l(c)&&(s.bufferView=n.bufferViews[c.bufferView],delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Oe.program(e,function(s){l(s.vertexShader)&&(s.vertexShader=n.shaders[s.vertexShader]),l(s.fragmentShader)&&(s.fragmentShader=n.shaders[s.fragmentShader])}),Oe.technique(e,function(s){l(s.program)&&(s.program=n.programs[s.program]),Oe.techniqueParameter(s,function(a){l(a.node)&&(a.node=n.nodes[a.node]);let c=a.value;typeof c=="string"&&(a.value={index:n.textures[c]})})}),Oe.mesh(e,function(s){Oe.meshPrimitive(s,function(a){l(a.indices)&&(a.indices=n.accessors[a.indices]),Oe.meshPrimitiveAttribute(a,function(c,u){a.attributes[u]=n.accessors[c]}),l(a.material)&&(a.material=n.materials[a.material])})}),Oe.node(e,function(s){let a=s.children;if(l(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}if(l(s.meshes)){let c=s.meshes,u=c.length;if(u>0)for(s.mesh=n.meshes[c[0]],t=1;t<u;++t){let f={mesh:n.meshes[c[t]]},d=_s(e.nodes,f);l(a)||(a=[],s.children=a),a.push(d)}delete s.meshes}if(l(s.camera)&&(s.camera=n.cameras[s.camera]),l(s.skin)&&(s.skin=n.skins[s.skin]),l(s.skeletons)){let c=s.skeletons;if(c.length>0&&l(s.skin)){let f=e.skins[s.skin];f.skeleton=n.nodes[c[0]]}delete s.skeletons}l(s.jointName)&&delete s.jointName}),Oe.skin(e,function(s){l(s.inverseBindMatrices)&&(s.inverseBindMatrices=n.accessors[s.inverseBindMatrices]);let a=s.jointNames;if(l(a)){let c=[],u=a.length;for(t=0;t<u;++t)c[t]=o[a[t]];s.joints=c,delete s.jointNames}}),Oe.scene(e,function(s){let a=s.nodes;if(l(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}}),Oe.animation(e,function(s){let a={};s.samplers=kee(s.samplers,a),Oe.animationSampler(s,function(c){c.input=n.accessors[c.input],c.output=n.accessors[c.output]}),Oe.animationChannel(s,function(c){c.sampler=a[c.sampler];let u=c.target;l(u)&&(u.node=n.nodes[u.id],delete u.id)})}),Oe.material(e,function(s){l(s.technique)&&(s.technique=n.techniques[s.technique]),Oe.materialValue(s,function(c,u){typeof c=="string"&&(s.values[u]={index:n.textures[c]})});let a=s.extensions;if(l(a)){let c=a.KHR_materials_common;l(c)&&l(c.values)&&Oe.materialValue(c,function(u,f){typeof u=="string"&&(c.values[f]={index:n.textures[u]})})}}),Oe.image(e,function(s){let a=s.extensions;if(l(a)){let c=a.KHR_binary_glTF;l(c)&&(s.bufferView=n.bufferViews[c.bufferView],s.mimeType=c.mimeType,delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Oe.texture(e,function(s){l(s.sampler)&&(s.sampler=n.samplers[s.sampler]),l(s.source)&&(s.source=n.images[s.source])})}function DLe(e){Oe.animation(e,function(t){Oe.animationSampler(t,function(n){delete n.name})})}function ILe(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];Array.isArray(n)&&n.length===0&&delete e[t]}Oe.node(e,function(t){l(t.children)&&t.children.length===0&&delete t.children})}function PLe(e){let t=e.asset;delete t.profile,delete t.premultipliedAlpha}var OLe={CESIUM_RTC:!0,KHR_materials_common:!0,WEB3D_quantized_attributes:!0};function MLe(e){let t=e.extensionsUsed;if(e.extensionsRequired=y(e.extensionsRequired,[]),l(t)){let n=t.length;for(let i=0;i<n;++i){let o=t[i];l(OLe[o])&&e.extensionsRequired.push(o)}}}function RLe(e){Oe.buffer(e,function(t){delete t.type})}function BLe(e){Oe.texture(e,function(t){delete t.format,delete t.internalFormat,delete t.target,delete t.type})}function LLe(e){Oe.mesh(e,function(t){Oe.meshPrimitive(t,function(n){Oe.meshPrimitiveAttribute(n,function(i,o){o==="TEXCOORD"?n.attributes.TEXCOORD_0=i:o==="COLOR"&&(n.attributes.COLOR_0=i)}),delete n.attributes.TEXCOORD,delete n.attributes.COLOR})}),Oe.technique(e,function(t){Oe.techniqueParameter(t,function(n){let i=n.semantic;l(i)&&(i==="TEXCOORD"?n.semantic="TEXCOORD_0":i==="COLOR"&&(n.semantic="COLOR_0"))})})}var NLe={POSITION:!0,NORMAL:!0,TANGENT:!0},FLe={COLOR:"COLOR",JOINT:"JOINTS",JOINTS:"JOINTS",TEXCOORD:"TEXCOORD",WEIGHT:"WEIGHTS",WEIGHTS:"WEIGHTS"};function ULe(e){let t={};Oe.mesh(e,function(n){Oe.meshPrimitive(n,function(i){Oe.meshPrimitiveAttribute(i,function(o,r){if(r.charAt(0)!=="_"){let s=r.search(/_[0-9]+/g),a=r,c="_0";s>=0&&(a=r.substring(0,s),c=r.substring(s));let u,f=FLe[a];l(f)?(u=f+c,t[r]=u):l(NLe[a])||(u=`_${r}`,t[r]=u)}});for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o],s=i.attributes[o];l(s)&&(delete i.attributes[o],i.attributes[r]=s)}})}),Oe.technique(e,function(n){Oe.techniqueParameter(n,function(i){let o=t[i.semantic];l(o)&&(i.semantic=o)})})}function VLe(e){Oe.camera(e,function(t){let n=t.perspective;if(l(n)){let i=n.aspectRatio;l(i)&&i===0&&delete n.aspectRatio;let o=n.yfov;l(o)&&o===0&&(n.yfov=1)}})}function _5(e,t){return l(t.byteStride)&&t.byteStride!==0?t.byteStride:Vl(e,t)}function kLe(e){Oe.buffer(e,function(t){l(t.byteLength)||(t.byteLength=t.extras._pipeline.source.length)}),Oe.accessor(e,function(t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n],o=_5(e,t),r=t.byteOffset+t.count*o;i.byteLength=Math.max(y(i.byteLength,0),r)}})}function zLe(e){let t,n,i,o=e.bufferViews,r={};Oe.accessorContainingVertexAttributeData(e,function(a){let c=e.accessors[a];l(c.bufferView)&&(r[c.bufferView]=!0)});let s={};Oe.accessor(e,function(a){l(a.bufferView)&&(s[a.bufferView]=y(s[a.bufferView],[]),s[a.bufferView].push(a))});for(let a in s)if(Object.prototype.hasOwnProperty.call(s,a)){i=o[a];let c=s[a];c.sort(function(p,g){return p.byteOffset-g.byteOffset});let u=0,f=0,d=c.length;for(t=0;t<d;++t){let p=c[t],g=_5(e,p),h=p.byteOffset,A=p.count*g;delete p.byteStride;let x=t<d-1,C=x?_5(e,c[t+1]):void 0;if(g!==C){let T=Ye(i,!0);r[a]&&(T.byteStride=g),T.byteOffset+=u,T.byteLength=h+A-u;let E=_s(o,T);for(n=f;n<=t;++n)p=c[n],p.bufferView=E,p.byteOffset=p.byteOffset-u;u=x?c[t+1].byteOffset:void 0,f=t+1}}}aB(e,["accessor","bufferView","buffer"])}function HLe(e){Oe.accessorWithSemantic(e,"POSITION",function(t){let n=e.accessors[t];if(!l(n.min)||!l(n.max)){let i=MC(e,n);n.min=i.min,n.max=i.max}})}function Hee(e){return(!l(e.children)||e.children.length===0)&&(!l(e.meshes)||e.meshes.length===0)&&!l(e.camera)&&!l(e.skin)&&!l(e.skeletons)&&!l(e.jointName)&&(!l(e.translation)||m.fromArray(e.translation).equals(m.ZERO))&&(!l(e.scale)||m.fromArray(e.scale).equals(new m(1,1,1)))&&(!l(e.rotation)||re.fromArray(e.rotation).equals(new re(0,0,0,1)))&&(!l(e.matrix)||B.fromColumnMajorArray(e.matrix).equals(B.IDENTITY))&&!l(e.extensions)&&!l(e.extras)}function Gee(e,t){Oe.scene(e,function(n){let i=n.nodes;if(l(i)){let o=i.length;for(let r=o;r>=0;--r)if(i[r]===t){i.splice(r,1);return}}}),Oe.node(e,function(n,i){if(l(n.children)){let o=n.children.indexOf(t);o>-1&&(n.children.splice(o,1),Hee(n)&&Gee(e,i))}}),delete e.nodes[t]}function GLe(e){return Oe.node(e,function(t,n){Hee(t)&&Gee(e,n)}),e}function WLe(e){Oe.animation(e,function(t){Oe.animationSampler(t,function(n){let i=e.accessors[n.input];if(!l(i.min)||!l(i.max)){let o=MC(e,i);i.min=o.min,i.max=o.max}})})}function jLe(e){Oe.accessor(e,function(t){if(l(t.min)||l(t.max)){let n=MC(e,t);l(t.min)&&(t.min=n.min),l(t.max)&&(t.max=n.max)}})}function YLe(e){e.asset=y(e.asset,{}),e.asset.version="2.0",zee(e),wLe(e),GLe(e),vLe(e),DLe(e),PLe(e),MLe(e),kLe(e),zLe(e),HLe(e),WLe(e),jLe(e),RLe(e),BLe(e),LLe(e),ULe(e),fB(e),VLe(e),oB(e),sB(e),ILe(e)}var qLe=["u_tex","u_diffuse","u_emission"],XLe=["u_diffuse"];function g5(e){e.pbrMetallicRoughness=l(e.pbrMetallicRoughness)?e.pbrMetallicRoughness:{},e.pbrMetallicRoughness.roughnessFactor=1,e.pbrMetallicRoughness.metallicFactor=0}function mB(e){return l(e.index)}function hB(e){return Array.isArray(e)&&e.length===4}function Wee(e){let t=new Array(4);t[3]=e[3];for(let n=0;n<3;n++){let i=e[n];i<=.04045?t[n]=e[n]*.07739938080495357:t[n]=Math.pow((i+.055)*.9478672985781991,2.4)}return t}function KLe(e){Oe.material(e,function(t){Oe.materialValue(t,function(n,i){qLe.indexOf(i)!==-1&&mB(n)?(g5(t),t.pbrMetallicRoughness.baseColorTexture=n):XLe.indexOf(i)!==-1&&hB(n)&&(g5(t),t.pbrMetallicRoughness.baseColorFactor=Wee(n))})}),RC(e,"KHR_techniques_webgl"),RC(e,"KHR_blend")}function JLe(e){Oe.material(e,function(t){let n=y(t.extensions,y.EMPTY_OBJECT).KHR_materials_common;if(l(n)){n.technique==="CONSTANT"&&(jf(e,"KHR_materials_unlit"),t.extensions=l(t.extensions)?t.extensions:{},t.extensions.KHR_materials_unlit={});let o=l(n.values)?n.values:{},r=o.ambient,s=o.diffuse,a=o.emission,c=o.transparency,u=n.doubleSided,f=n.transparent;g5(t),l(r)&&(hB(r)?t.emissiveFactor=r.slice(0,3):mB(r)&&(t.emissiveTexture=r)),l(s)&&(hB(s)?t.pbrMetallicRoughness.baseColorFactor=Wee(s):mB(s)&&(t.pbrMetallicRoughness.baseColorTexture=s)),l(u)&&(t.doubleSided=u),l(a)&&(hB(a)?t.emissiveFactor=a.slice(0,3):mB(a)&&(t.emissiveTexture=a)),l(c)&&(l(t.pbrMetallicRoughness.baseColorFactor)?t.pbrMetallicRoughness.baseColorFactor[3]*=c:t.pbrMetallicRoughness.baseColorFactor=[1,1,1,c]),l(f)&&(t.alphaMode=f?"BLEND":"OPAQUE")}}),RC(e,"KHR_materials_common")}var pB=xLe;var ii={POSITION:"POSITION",NORMAL:"NORMAL",TANGENT:"TANGENT",TEXCOORD:"TEXCOORD",COLOR:"COLOR",JOINTS:"JOINTS",WEIGHTS:"WEIGHTS",FEATURE_ID:"_FEATURE_ID"};function ZLe(e){switch(e){case ii.POSITION:return"positionMC";case ii.NORMAL:return"normalMC";case ii.TANGENT:return"tangentMC";case ii.TEXCOORD:return"texCoord";case ii.COLOR:return"color";case ii.JOINTS:return"joints";case ii.WEIGHTS:return"weights";case ii.FEATURE_ID:return"featureId"}}ii.hasSetIndex=function(e){switch(e){case ii.POSITION:case ii.NORMAL:case ii.TANGENT:return!1;case ii.TEXCOORD:case ii.COLOR:case ii.JOINTS:case ii.WEIGHTS:case ii.FEATURE_ID:return!0}};ii.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"POSITION":return ii.POSITION;case"NORMAL":return ii.NORMAL;case"TANGENT":return ii.TANGENT;case"TEXCOORD":return ii.TEXCOORD;case"COLOR":return ii.COLOR;case"JOINTS":return ii.JOINTS;case"WEIGHTS":return ii.WEIGHTS;case"_FEATURE_ID":return ii.FEATURE_ID}};ii.fromPntsSemantic=function(e){switch(e){case"POSITION":case"POSITION_QUANTIZED":return ii.POSITION;case"RGBA":case"RGB":case"RGB565":return ii.COLOR;case"NORMAL":case"NORMAL_OCT16P":return ii.NORMAL;case"BATCH_ID":return ii.FEATURE_ID}};ii.getGlslType=function(e){switch(e){case ii.POSITION:case ii.NORMAL:case ii.TANGENT:return"vec3";case ii.TEXCOORD:return"vec2";case ii.COLOR:return"vec4";case ii.JOINTS:return"ivec4";case ii.WEIGHTS:return"vec4";case ii.FEATURE_ID:return"int"}};ii.getVariableName=function(e,t){let n=ZLe(e);return l(t)&&(n+=`_${t}`),n};var bt=Object.freeze(ii);function Ba(){}Ba.getError=function(e,t,n){let i=`Failed to load ${e}: ${t}`;l(n)&&l(n.message)&&(i+=` +${n.message}`);let o=new de(i);return l(n)&&(o.stack=`Original stack: +${n.stack} +Handler stack: +${o.stack}`),o};Ba.getNodeTransform=function(e){return l(e.matrix)?e.matrix:B.fromTranslationQuaternionRotationScale(l(e.translation)?e.translation:m.ZERO,l(e.rotation)?e.rotation:Ne.IDENTITY,l(e.scale)?e.scale:m.ONE)};Ba.getAttributeBySemantic=function(e,t,n){let i=e.attributes,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=l(n)?s.setIndex===n:!0;if(s.semantic===t&&a)return s}};Ba.getAttributeByName=function(e,t){let n=e.attributes,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.name===t)return r}};Ba.getFeatureIdsByLabel=function(e,t){for(let n=0;n<e.length;n++){let i=e[n];if(i.positionalLabel===t||i.label===t)return i}};Ba.hasQuantizedAttributes=function(e){if(!l(e))return!1;for(let t=0;t<e.length;t++){let n=e[t];if(l(n.quantization))return!0}return!1};Ba.getAttributeInfo=function(e){let t=e.semantic,n=e.setIndex,i,o=!1;l(t)?(i=bt.getVariableName(t,n),o=!0):(i=e.name,i=i.replace(/^_/,""),i=i.toLowerCase());let r=/^color_\d+$/.test(i),s=e.type,a=an.getGlslType(s);r&&(a="vec4");let c=l(e.quantization),u;return c&&(u=r?"vec4":an.getGlslType(e.quantization.type)),{attribute:e,isQuantized:c,variableName:i,hasSemantic:o,glslType:a,quantizedGlslType:u}};var QLe=new m,$Le=new m;Ba.getPositionMinMax=function(e,t,n){let i=Ba.getAttributeBySemantic(e,"POSITION"),o=i.max,r=i.min;return l(n)&&l(t)&&(r=m.add(r,t,$Le),o=m.add(o,n,QLe)),{min:r,max:o}};Ba.getAxisCorrectionMatrix=function(e,t,n){return n=B.clone(B.IDENTITY,n),e===ho.Y?n=B.clone(ho.Y_UP_TO_Z_UP,n):e===ho.X&&(n=B.clone(ho.X_UP_TO_Z_UP,n)),t===ho.Z&&(n=B.multiplyTransformation(n,ho.Z_UP_TO_X_UP,n)),n};var eNe=new Z;Ba.getCullFace=function(e,t){if(!Le.isTriangles(t))return gi.BACK;let n=B.getMatrix3(e,eNe);return Z.determinant(n)<0?gi.FRONT:gi.BACK};Ba.sanitizeGlslIdentifier=function(e){let t=e.replaceAll(/[^A-Za-z0-9]+/g,"_");return t=t.replace(/^gl_/,""),/^\d/.test(t)&&(t=`_${t}`),t};Ba.supportedExtensions={AGI_articulations:!0,CESIUM_primitive_outline:!0,CESIUM_RTC:!0,EXT_feature_metadata:!0,EXT_instance_features:!0,EXT_mesh_features:!0,EXT_mesh_gpu_instancing:!0,EXT_meshopt_compression:!0,EXT_structural_metadata:!0,EXT_texture_webp:!0,KHR_blend:!0,KHR_draco_mesh_compression:!0,KHR_techniques_webgl:!0,KHR_materials_common:!0,KHR_materials_pbrSpecularGlossiness:!0,KHR_materials_unlit:!0,KHR_mesh_quantization:!0,KHR_texture_basisu:!0,KHR_texture_transform:!0,WEB3D_quantized_attributes:!0};Ba.checkSupportedExtensions=function(e){let t=e.length;for(let n=0;n<t;n++){let i=e[n];if(!Ba.supportedExtensions[i])throw new de(`Unsupported glTF Extension: ${i}`)}};var Qt=Ba;function H_(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltfResource,i=e.baseResource,o=e.typedArray,r=e.gltfJson,s=e.cacheKey;this._resourceCache=t,this._gltfResource=n,this._baseResource=i,this._typedArray=o,this._gltfJson=r,this._cacheKey=s,this._gltf=void 0,this._bufferLoaders=[],this._state=vt.UNLOADED,this._promise=void 0}l(Object.create)&&(H_.prototype=Object.create(io.prototype),H_.prototype.constructor=H_);Object.defineProperties(H_.prototype,{cacheKey:{get:function(){return this._cacheKey}},gltf:{get:function(){return this._gltf}}});H_.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=vt.LOADING,l(this._gltfJson)?(this._promise=jee(this,this._gltfJson),this._promise):l(this._typedArray)?(this._promise=Yee(this,this._typedArray),this._promise):(this._promise=tNe(this),this._promise))};async function tNe(e){let t;try{let n=await e._fetchGltf();if(e.isDestroyed())return;t=new Uint8Array(n)}catch(n){if(e.isDestroyed())return;y5(e,n)}return Yee(e,t)}function y5(e,t){e.unload(),e._state=vt.FAILED;let n=`Failed to load glTF: ${e._gltfResource.url}`;throw e.getError(n,t)}async function nNe(e,t){if(l(t.asset)&&t.asset.version==="2.0"&&!xr(t,"KHR_techniques_webgl")&&!xr(t,"KHR_materials_common"))return Promise.resolve();let n=[];Oe.buffer(t,function(i){if(!l(i.extras._pipeline.source)&&l(i.uri)){let o=e._baseResource.getDerivedResource({url:i.uri}),s=e._resourceCache.getExternalBufferLoader({resource:o});e._bufferLoaders.push(s),n.push(s.load().then(function(){s.isDestroyed()||(i.extras._pipeline.source=s.typedArray)}))}}),await Promise.all(n),pB(t)}function iNe(e){let t=[];return Oe.buffer(e,function(n){let i=n.uri;!l(n.extras._pipeline.source)&&l(i)&&a_(i)&&(delete n.uri,t.push(we.fetchArrayBuffer(i).then(function(o){n.extras._pipeline.source=new Uint8Array(o)})))}),Promise.all(t)}function oNe(e,t){let n=[];return Oe.buffer(t,function(i,o){let r=i.extras._pipeline.source;if(l(r)&&!l(i.uri)){let a=e._resourceCache.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:o,typedArray:r});e._bufferLoaders.push(a),n.push(a.load())}}),Promise.all(n)}async function jee(e,t){try{C0(t),await iNe(t),await nNe(e,t),QR(t),await oNe(e,t),iB(t);let n=t.asset.version;if(n!=="1.0"&&n!=="2.0")throw new de(`Unsupported glTF version: ${n}`);let i=t.extensionsRequired;return l(i)&&Qt.checkSupportedExtensions(i),e._gltf=t,e._state=vt.READY,e}catch(n){if(e.isDestroyed())return;y5(e,n)}}async function Yee(e,t){let n;try{pm(t)==="glTF"?n=tB(t):n=Po(t)}catch(i){if(e.isDestroyed())return;y5(e,i)}return jee(e,n)}H_.prototype.unload=function(){let e=this._bufferLoaders,t=e.length;for(let n=0;n<t;++n)e[n]=!e[n].isDestroyed()&&this._resourceCache.unload(e[n]);this._bufferLoaders.length=0,this._gltf=void 0};H_.prototype._fetchGltf=function(){return this._gltfResource.fetchArrayBuffer()};var $S=H_;var rNe={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"},Kh=Object.freeze(rNe);var Uo={};function sNe(){this.octEncoded=!1,this.octEncodedZXY=!1,this.normalizationRange=void 0,this.quantizedVolumeOffset=void 0,this.quantizedVolumeDimensions=void 0,this.quantizedVolumeStepSize=void 0,this.componentDatatype=void 0,this.type=void 0}function aNe(){this.name=void 0,this.semantic=void 0,this.setIndex=void 0,this.componentDatatype=void 0,this.type=void 0,this.normalized=!1,this.count=void 0,this.min=void 0,this.max=void 0,this.constant=void 0,this.quantization=void 0,this.typedArray=void 0,this.buffer=void 0,this.byteOffset=0,this.byteStride=void 0}function cNe(){this.indexDatatype=void 0,this.count=void 0,this.buffer=void 0,this.typedArray=void 0}function lNe(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.setIndex=void 0,this.label=void 0,this.positionalLabel=void 0}function uNe(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.offset=0,this.repeat=void 0,this.label=void 0,this.positionalLabel=void 0}function fNe(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.textureReader=void 0,this.label=void 0,this.positionalLabel=void 0}function dNe(){this.attributes=[]}function mNe(){this.attributes=[],this.morphTargets=[],this.indices=void 0,this.material=void 0,this.primitiveType=void 0,this.featureIds=[],this.propertyTextureIds=[],this.propertyAttributeIds=[],this.outlineCoordinates=void 0}function hNe(){this.attributes=[],this.featureIds=[],this.transformInWorldSpace=!1}function pNe(){this.index=void 0,this.joints=[],this.inverseBindMatrices=[]}function _Ne(){this.name=void 0,this.index=void 0,this.children=[],this.primitives=[],this.instances=void 0,this.skin=void 0,this.matrix=void 0,this.translation=void 0,this.rotation=void 0,this.scale=void 0,this.morphWeights=[],this.articulationName=void 0}function gNe(){this.nodes=[]}var yNe={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};function ANe(){this.input=[],this.interpolation=void 0,this.output=[]}function xNe(){this.node=void 0,this.path=void 0}function CNe(){this.sampler=void 0,this.target=void 0}function TNe(){this.name=void 0,this.samplers=[],this.channels=[]}function ENe(){this.name=void 0,this.type=void 0,this.minimumValue=void 0,this.maximumValue=void 0,this.initialValue=void 0}function bNe(){this.name=void 0,this.stages=[]}function qee(){this.credits=[]}function SNe(){this.asset=new qee,this.scene=void 0,this.nodes=[],this.skins=[],this.animations=[],this.articulations=[],this.structuralMetadata=void 0,this.upAxis=void 0,this.forwardAxis=void 0,this.transform=B.clone(B.IDENTITY)}function wNe(){this.texture=void 0,this.index=void 0,this.texCoord=0,this.transform=Z.clone(Z.IDENTITY),this.channels=void 0}function G_(){this.baseColorTexture=void 0,this.metallicRoughnessTexture=void 0,this.baseColorFactor=re.clone(G_.DEFAULT_BASE_COLOR_FACTOR),this.metallicFactor=G_.DEFAULT_METALLIC_FACTOR,this.roughnessFactor=G_.DEFAULT_ROUGHNESS_FACTOR}G_.DEFAULT_BASE_COLOR_FACTOR=re.ONE;G_.DEFAULT_METALLIC_FACTOR=1;G_.DEFAULT_ROUGHNESS_FACTOR=1;function T0(){this.diffuseTexture=void 0,this.specularGlossinessTexture=void 0,this.diffuseFactor=re.clone(T0.DEFAULT_DIFFUSE_FACTOR),this.specularFactor=m.clone(T0.DEFAULT_SPECULAR_FACTOR),this.glossinessFactor=T0.DEFAULT_GLOSSINESS_FACTOR}T0.DEFAULT_DIFFUSE_FACTOR=re.ONE;T0.DEFAULT_SPECULAR_FACTOR=m.ONE;T0.DEFAULT_GLOSSINESS_FACTOR=1;function A5(){this.metallicRoughness=new G_,this.specularGlossiness=void 0,this.emissiveTexture=void 0,this.normalTexture=void 0,this.occlusionTexture=void 0,this.emissiveFactor=m.clone(A5.DEFAULT_EMISSIVE_FACTOR),this.alphaMode=Kh.OPAQUE,this.alphaCutoff=.5,this.doubleSided=!1,this.unlit=!1}A5.DEFAULT_EMISSIVE_FACTOR=m.ZERO;Uo.Quantization=sNe;Uo.Attribute=aNe;Uo.Indices=cNe;Uo.FeatureIdAttribute=lNe;Uo.FeatureIdTexture=fNe;Uo.FeatureIdImplicitRange=uNe;Uo.MorphTarget=dNe;Uo.Primitive=mNe;Uo.Instances=hNe;Uo.Skin=pNe;Uo.Node=_Ne;Uo.Scene=gNe;Uo.AnimatedPropertyType=Object.freeze(yNe);Uo.AnimationSampler=ANe;Uo.AnimationTarget=xNe;Uo.AnimationChannel=CNe;Uo.Animation=TNe;Uo.ArticulationStage=ENe;Uo.Articulation=bNe;Uo.Asset=qee;Uo.Components=SNe;Uo.TextureReader=wNe;Uo.MetallicRoughness=G_;Uo.SpecularGlossiness=T0;Uo.Material=A5;var Nt=Uo;var _B={};_B.getImageIdFromTexture=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureId,i=e.supportedImageFormats,o=t.textures[n],r=o.extensions;if(l(r)){if(i.webp&&l(r.EXT_texture_webp))return r.EXT_texture_webp.source;if(i.basis&&l(r.KHR_texture_basisu))return r.KHR_texture_basisu.source}return o.source};_B.createSampler=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureInfo,i=y(e.compressedTextureNoMipmap,!1),o=Dn.REPEAT,r=Dn.REPEAT,s=ln.LINEAR,a=bi.LINEAR,c=n.index,f=t.textures[c].sampler;if(l(f)){let g=t.samplers[f];o=y(g.wrapS,o),r=y(g.wrapT,r),s=y(g.minFilter,s),a=y(g.magFilter,a)}let d=!1,p=n.extensions;return l(p)&&l(p.KHR_texture_transform)&&(d=!0),(i||d)&&s!==ln.LINEAR&&s!==ln.NEAREST&&(s===ln.NEAREST_MIPMAP_NEAREST||s===ln.NEAREST_MIPMAP_LINEAR?s=ln.NEAREST:s=ln.LINEAR),new dn({wrapS:o,wrapT:r,minificationFilter:s,magnificationFilter:a})};var vNe=new H(1,1);_B.createModelTextureReader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureInfo,n=e.channels,i=e.texture,o=y(t.texCoord,0),r,s=y(t.extensions,y.EMPTY_OBJECT).KHR_texture_transform;if(l(s)){o=y(s.texCoord,o);let c=l(s.offset)?H.unpack(s.offset):H.ZERO,u=y(s.rotation,0),f=l(s.scale)?H.unpack(s.scale):vNe;u=-u,r=new Z(Math.cos(u)*f.x,-Math.sin(u)*f.y,c.x,Math.sin(u)*f.x,Math.cos(u)*f.y,c.y,0,0,1)}let a=new Nt.TextureReader;return a.index=t.index,a.texture=i,a.texCoord=o,a.transform=r,a.channels=n,a};var kl=_B;function DNe(e){let t=document.createElement("canvas");return t.width=P.nextPowerOfTwo(e.width),t.height=P.nextPowerOfTwo(e.height),t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),t}var E0=DNe;function W_(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.textureInfo,o=e.gltfResource,r=e.baseResource,s=e.supportedImageFormats,a=e.cacheKey,c=y(e.asynchronous,!0),u=i.index,f=kl.getImageIdFromTexture({gltf:n,textureId:u,supportedImageFormats:s});this._resourceCache=t,this._gltf=n,this._textureInfo=i,this._imageId=f,this._gltfResource=o,this._baseResource=r,this._cacheKey=a,this._asynchronous=c,this._imageLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._texture=void 0,this._state=vt.UNLOADED,this._promise=void 0}l(Object.create)&&(W_.prototype=Object.create(io.prototype),W_.prototype.constructor=W_);Object.defineProperties(W_.prototype,{cacheKey:{get:function(){return this._cacheKey}},texture:{get:function(){return this._texture}}});var INe=new x5;async function PNe(e){let t=e._resourceCache;try{let n=t.getImageLoader({gltf:e._gltf,imageId:e._imageId,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._imageLoader=n,await n.load(),e.isDestroyed()?void 0:(e._image=n.image,e._mipLevels=n.mipLevels,e._state=vt.LOADED,e)}catch(n){if(e.isDestroyed())return;e.unload(),e._state=vt.FAILED;let i="Failed to load texture";throw e.getError(i,n)}}W_.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=vt.LOADING,this._promise=PNe(this),this._promise)};function x5(){this.gltf=void 0,this.textureInfo=void 0,this.image=void 0,this.context=void 0,this.texture=void 0}x5.prototype.set=function(e,t,n,i,o){this.gltf=e,this.textureInfo=t,this.image=n,this.mipLevels=i,this.context=o};x5.prototype.execute=function(){this.texture=Xee(this.gltf,this.textureInfo,this.image,this.mipLevels,this.context)};function Xee(e,t,n,i,o){let r=n.internalFormat,s=!1;lt.isCompressedFormat(r)&&!l(i)&&(s=!0);let a=kl.createSampler({gltf:e,textureInfo:t,compressedTextureNoMipmap:s}),c=a.minificationFilter,u=a.wrapS,f=a.wrapT,d=c===ln.NEAREST_MIPMAP_NEAREST||c===ln.NEAREST_MIPMAP_LINEAR||c===ln.LINEAR_MIPMAP_NEAREST||c===ln.LINEAR_MIPMAP_LINEAR,p=!l(r)&&d,g=p||u===Dn.REPEAT||u===Dn.MIRRORED_REPEAT||f===Dn.REPEAT||f===Dn.MIRRORED_REPEAT,h=!P.isPowerOfTwo(n.width)||!P.isPowerOfTwo(n.height),A=g&&h,x;return l(r)?(!o.webgl2&<.isCompressedFormat(r)&&h&&g&&console.warn("Compressed texture uses REPEAT or MIRRORED_REPEAT texture wrap mode and dimensions are not powers of two. The texture may be rendered incorrectly."),x=Bt.create({context:o,source:{arrayBufferView:n.bufferView,mipLevels:i},width:n.width,height:n.height,pixelFormat:n.internalFormat,sampler:a})):(A&&(n=E0(n)),x=Bt.create({context:o,source:n,sampler:a,flipY:!1,skipColorSpaceConversion:!0})),p&&x.generateMipmap(),x}W_.prototype.process=function(e){if(this._state===vt.READY)return!0;if(this._state!==vt.LOADED&&this._state!==vt.PROCESSING||l(this._texture)||!l(this._image))return!1;this._state=vt.PROCESSING;let t;if(this._asynchronous){let n=INe;if(n.set(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context),!e.jobScheduler.execute(n,Ra.TEXTURE))return;t=n.texture}else t=Xee(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context);return this.unload(),this._texture=t,this._state=vt.READY,this._resourceCache.statistics.addTextureLoader(this),!0};W_.prototype.unload=function(){l(this._texture)&&this._texture.destroy(),l(this._imageLoader)&&!this._imageLoader.isDestroyed()&&this._resourceCache.unload(this._imageLoader),this._imageLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._texture=void 0,this._gltf=void 0};var ew=W_;function j_(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.gltfResource,o=e.baseResource,r=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=e.accessorId,u=e.cacheKey,f=y(e.asynchronous,!0),d=y(e.loadBuffer,!1),p=y(e.loadTypedArray,!1);this._resourceCache=t,this._gltfResource=i,this._baseResource=o,this._gltf=n,this._bufferViewId=r,this._draco=s,this._attributeSemantic=a,this._accessorId=c,this._cacheKey=u,this._asynchronous=f,this._loadBuffer=d,this._loadTypedArray=p,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._quantization=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=vt.UNLOADED,this._promise=void 0}l(Object.create)&&(j_.prototype=Object.create(io.prototype),j_.prototype.constructor=j_);Object.defineProperties(j_.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},quantization:{get:function(){return this._quantization}}});function ONe(e,t){return l(e)&&l(e.attributes)&&l(e.attributes[t])}j_.prototype.load=async function(){return l(this._promise)?this._promise:ONe(this._draco,this._attributeSemantic)?(this._promise=RNe(this),this._promise):(this._promise=LNe(this),this._promise)};function MNe(e,t,n,i){let r=(1<<e.quantizationBits)-1,s=1/r,a=new Nt.Quantization;if(a.componentDatatype=t,a.octEncoded=e.octEncoded,a.octEncodedZXY=!0,a.type=i,a.octEncoded)a.type=an.VEC2,a.normalizationRange=r;else{let c=an.getMathType(i);if(c===Number){let u=e.range;a.quantizedVolumeOffset=e.minValues[0],a.quantizedVolumeDimensions=u,a.normalizationRange=r,a.quantizedVolumeStepSize=u*s}else{a.quantizedVolumeOffset=c.unpack(e.minValues),a.normalizationRange=c.unpack(new Array(n).fill(r));let u=new Array(n).fill(e.range);a.quantizedVolumeDimensions=c.unpack(u);let f=u.map(function(d){return d*s});a.quantizedVolumeStepSize=c.unpack(f)}}return a}async function RNe(e){e._state=vt.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=vt.LOADED,e)}catch{if(e.isDestroyed())return;C5(e)}}function BNe(e){e._state=vt.PROCESSING;let n=e._dracoLoader.decodedData.vertexAttributes,i=e._attributeSemantic,o=n[i],r=e._accessorId,a=e._gltf.accessors[r].type,c=o.array,u=o.data.quantization;l(u)&&(e._quantization=MNe(u,o.data.componentDatatype,o.data.componentsPerAttribute,a)),e._typedArray=new Uint8Array(c.buffer,c.byteOffset,c.byteLength)}async function LNe(e){e._state=vt.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._typedArray=n.typedArray,e._state=vt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;C5(e,n)}}function C5(e,t){e.unload(),e._state=vt.FAILED;let n="Failed to load vertex buffer";throw e.getError(n,t)}function T5(){this.typedArray=void 0,this.context=void 0,this.buffer=void 0}T5.prototype.set=function(e,t){this.typedArray=e,this.context=t};T5.prototype.execute=function(){this.buffer=Kee(this.typedArray,this.context)};function Kee(e,t){let n=mt.createVertexBuffer({typedArray:e,context:t,usage:Fe.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}var NNe=new T5;j_.prototype.process=function(e){if(this._state===vt.READY)return!0;if(this._state!==vt.LOADED&&this._state!==vt.PROCESSING)return!1;if(l(this._dracoLoader)){try{if(!this._dracoLoader.process(e))return!1}catch(i){C5(this,i)}BNe(this)}let t,n=this._typedArray;if(this._loadBuffer&&this._asynchronous){let i=NNe;if(i.set(n,e.context),!e.jobScheduler.execute(i,Ra.BUFFER))return!1;t=i.buffer}else this._loadBuffer&&(t=Kee(n,e.context));return this.unload(),this._buffer=t,this._typedArray=this._loadTypedArray?n:void 0,this._state=vt.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};j_.prototype.unload=function(){l(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),l(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var tw=j_;function nw(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=y(e.properties,{}),i={};for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];l(r.semantic)&&(i[r.semantic]=r)}this._id=t,this._name=e.name,this._description=e.description,this._properties=n,this._propertiesBySemantic=i,this._extras=Ye(e.extras,!0),this._extensions=Ye(e.extensions,!0)}nw.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.class,i={};for(let o in n.properties)if(n.properties.hasOwnProperty(o)){let r=y0.fromJson({id:o,property:n.properties[o],enums:e.enums});i[o]=r}return new nw({id:t,name:n.name,description:n.description,properties:i,extras:n.extras,extensions:n.extensions})};Object.defineProperties(nw.prototype,{properties:{get:function(){return this._properties}},propertiesBySemantic:{get:function(){return this._propertiesBySemantic}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});nw.BATCH_TABLE_CLASS_NAME="_batchTable";var ym=nw;function gB(e){e=y(e,y.EMPTY_OBJECT);let t=e.value,n=e.name;this._value=t,this._name=n,this._description=e.description,this._extras=Ye(e.extras,!0),this._extensions=Ye(e.extensions,!0)}gB.fromJson=function(e){return new gB({value:e.value,name:e.name,description:e.description,extras:e.extras,extensions:e.extensions})};Object.defineProperties(gB.prototype,{value:{get:function(){return this._value}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var yB=gB;function AB(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.values,i={},o={},r=n.length;for(let a=0;a<r;++a){let c=n[a];i[c.value]=c.name,o[c.name]=c.value}let s=y(e.valueType,nn.UINT16);this._values=n,this._namesByValue=i,this._valuesByName=o,this._valueType=s,this._id=t,this._name=e.name,this._description=e.description,this._extras=Ye(e.extras,!0),this._extensions=Ye(e.extensions,!0)}AB.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.enum,i=n.values.map(function(o){return yB.fromJson(o)});return new AB({id:t,values:i,valueType:nn[n.valueType],name:n.name,description:n.description,extras:n.extras,extensions:n.extensions})};Object.defineProperties(AB.prototype,{values:{get:function(){return this._values}},namesByValue:{get:function(){return this._namesByValue}},valuesByName:{get:function(){return this._valuesByName}},valueType:{get:function(){return this._valueType}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var xB=AB;function CB(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.classes,{}),n=y(e.enums,{});this._classes=t,this._enums=n,this._id=e.id,this._name=e.name,this._description=e.description,this._version=e.version,this._extras=Ye(e.extras,!0),this._extensions=Ye(e.extensions,!0)}CB.fromJson=function(e){let t={};if(l(e.enums))for(let i in e.enums)e.enums.hasOwnProperty(i)&&(t[i]=xB.fromJson({id:i,enum:e.enums[i]}));let n={};if(l(e.classes))for(let i in e.classes)e.classes.hasOwnProperty(i)&&(n[i]=ym.fromJson({id:i,class:e.classes[i],enums:t}));return new CB({id:e.id,name:e.name,description:e.description,version:e.version,classes:n,enums:t,extras:e.extras,extensions:e.extensions})};Object.defineProperties(CB.prototype,{classes:{get:function(){return this._classes}},enums:{get:function(){return this._enums}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},version:{get:function(){return this._version}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var Am=CB;function b0(e){e=y(e,y.EMPTY_OBJECT);let t=e.schema,n=e.resource,i=e.cacheKey;this._schema=l(t)?Am.fromJson(t):void 0,this._resource=n,this._cacheKey=i,this._state=vt.UNLOADED,this._promise=void 0}l(Object.create)&&(b0.prototype=Object.create(io.prototype),b0.prototype.constructor=b0);Object.defineProperties(b0.prototype,{cacheKey:{get:function(){return this._cacheKey}},schema:{get:function(){return this._schema}}});b0.prototype.load=async function(){return l(this._promise)?this._promise:l(this._schema)?(this._promise=Promise.resolve(this),this._promise):(this._promise=FNe(this),this._promise)};async function FNe(e){let t=e._resource;e._state=vt.LOADING;try{let n=await t.fetchJson();return e.isDestroyed()?void 0:(e._schema=Am.fromJson(n),e._state=vt.READY,e)}catch(n){if(e.isDestroyed())return;e._state=vt.FAILED;let i=`Failed to load schema: ${t.url}`;throw e.getError(i,n)}}b0.prototype.unload=function(){this._schema=void 0};var iw=b0;var Yf={};function ow(e){return s_(e.url)}function TB(e){let t=e.byteOffset,n=e.byteLength;if(ni(e,"EXT_meshopt_compression")){let i=e.extensions.EXT_meshopt_compression;t=y(i.byteOffset,0),n=i.byteLength}return`${t}-${t+n}`}function UNe(e,t){let n=t.byteOffset+e.byteOffset,i=e.componentType,o=e.type,r=e.count;return`${n}-${i}-${o}-${r}`}function Jee(e){return ow(e)}function Zee(e,t){return`${ow(e)}-buffer-id-${t}`}function rw(e,t,n,i){if(l(e.uri)){let o=i.getDerivedResource({url:e.uri});return Jee(o)}return Zee(n,t)}function E5(e,t,n,i){let o=t.bufferView,r=e.bufferViews[o],s=r.buffer,a=e.buffers[s],c=rw(a,s,n,i),u=TB(r);return`${c}-range-${u}`}function Qee(e,t,n,i){let o=e.images[t],r=o.bufferView,s=o.uri;if(l(s)){let p=i.getDerivedResource({url:s});return ow(p)}let a=e.bufferViews[r],c=a.buffer,u=e.buffers[c],f=rw(u,c,n,i),d=TB(a);return`${f}-range-${d}`}function VNe(e,t){let n=kl.createSampler({gltf:e,textureInfo:t});return`${n.wrapS}-${n.wrapT}-${n.minificationFilter}-${n.magnificationFilter}`}Yf.getSchemaCacheKey=function(e){let t=e.schema,n=e.resource;return l(t)?`embedded-schema:${JSON.stringify(t)}`:`external-schema:${ow(n)}`};Yf.getExternalBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.resource;return`external-buffer:${Jee(t)}`};Yf.getEmbeddedBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.parentResource,n=e.bufferId;return`embedded-buffer:${Zee(t,n)}`};Yf.getGltfCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltfResource;return`gltf:${ow(t)}`};Yf.getBufferViewCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.bufferViewId,i=e.gltfResource,o=e.baseResource,r=t.bufferViews[n],s=r.buffer,a=t.buffers[s];ni(r,"EXT_meshopt_compression")&&(s=r.extensions.EXT_meshopt_compression.buffer);let c=rw(a,s,i,o),u=TB(r);return`buffer-view:${c}-range-${u}`};Yf.getDracoCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.draco,i=e.gltfResource,o=e.baseResource;return`draco:${E5(t,n,i,o)}`};Yf.getVertexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.gltfResource,i=e.baseResource,o=e.frameState,r=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=y(e.dequantize,!1),u=y(e.loadBuffer,!1),f=y(e.loadTypedArray,!1),d="";if(c&&(d+="-dequantize"),u&&(d+="-buffer",d+=`-context-${o.context.id}`),f&&(d+="-typed-array"),l(s))return`vertex-buffer:${E5(t,s,n,i)}-draco-${a}${d}`;let p=t.bufferViews[r],g=p.buffer,h=t.buffers[g],A=rw(h,g,n,i),x=TB(p);return`vertex-buffer:${A}-range-${x}${d}`};Yf.getIndexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.accessorId,i=e.gltfResource,o=e.baseResource,r=e.frameState,s=e.draco,a=y(e.loadBuffer,!1),c=y(e.loadTypedArray,!1),u="";if(a&&(u+="-buffer",u+=`-context-${r.context.id}`),c&&(u+="-typed-array"),l(s))return`index-buffer:${E5(t,s,i,o)}-draco${u}`;let f=t.accessors[n],d=f.bufferView,p=t.bufferViews[d],g=p.buffer,h=t.buffers[g],A=rw(h,g,i,o),x=UNe(f,p);return`index-buffer:${A}-accessor-${x}${u}`};Yf.getImageCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.imageId,i=e.gltfResource,o=e.baseResource;return`image:${Qee(t,n,i,o)}`};Yf.getTextureCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureInfo,i=e.gltfResource,o=e.baseResource,r=e.supportedImageFormats,s=e.frameState,a=n.index,c=kl.getImageIdFromTexture({gltf:t,textureId:a,supportedImageFormats:r}),u=Qee(t,c,i,o),f=VNe(t,n);return`texture:${u}-sampler-${f}-context-${s.context.id}`};var zl=Yf;function sw(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}}sw.prototype.clear=function(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}};sw.prototype.addGeometryLoader=function(e){let t=e.cacheKey;if(this._geometrySizes.hasOwnProperty(t))return;this._geometrySizes[t]=0;let n=e.buffer,i=e.typedArray,o=0;l(n)&&(o+=n.sizeInBytes),l(i)&&(o+=i.byteLength),this.geometryByteLength+=o,this._geometrySizes[t]=o};sw.prototype.addTextureLoader=function(e){let t=e.cacheKey;if(this._textureSizes.hasOwnProperty(t))return;this._textureSizes[t]=0;let n=e.texture.sizeInBytes;this.texturesByteLength+=e.texture.sizeInBytes,this._textureSizes[t]=n};sw.prototype.removeLoader=function(e){let t=e.cacheKey,n=this._geometrySizes[t];delete this._geometrySizes[t],l(n)&&(this.geometryByteLength-=n);let i=this._textureSizes[t];delete this._textureSizes[t],l(i)&&(this.texturesByteLength-=i)};var EB=sw;function Ln(){}Ln.cacheEntries={};Ln.statistics=new EB;function kNe(e){this.referenceCount=1,this.resourceLoader=e,this._statisticsPromise=void 0}Ln.get=function(e){let t=Ln.cacheEntries[e];if(l(t))return++t.referenceCount,t.resourceLoader};Ln.add=function(e){let t=e.cacheKey;return Ln.cacheEntries[t]=new kNe(e),e};Ln.unload=function(e){let t=e.cacheKey,n=Ln.cacheEntries[t];--n.referenceCount,n.referenceCount===0&&(Ln.statistics.removeLoader(e),e.destroy(),delete Ln.cacheEntries[t])};Ln.getSchemaLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.schema,n=e.resource,i=zl.getSchemaCacheKey({schema:t,resource:n}),o=Ln.get(i);return l(o)?o:(o=new iw({schema:t,resource:n,cacheKey:i}),Ln.add(o))};Ln.getEmbeddedBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.parentResource,n=e.bufferId,i=e.typedArray,o=zl.getEmbeddedBufferCacheKey({parentResource:t,bufferId:n}),r=Ln.get(o);return l(r)?r:(r=new IC({typedArray:i,cacheKey:o}),Ln.add(r))};Ln.getExternalBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.resource,n=zl.getExternalBufferCacheKey({resource:t}),i=Ln.get(n);return l(i)?i:(i=new IC({resource:t,cacheKey:n}),Ln.add(i))};Ln.getGltfJsonLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltfResource,n=e.baseResource,i=e.typedArray,o=e.gltfJson,r=zl.getGltfCacheKey({gltfResource:t}),s=Ln.get(r);return l(s)?s:(s=new $S({resourceCache:Ln,gltfResource:t,baseResource:n,typedArray:i,gltfJson:o,cacheKey:r}),Ln.add(s))};Ln.getBufferViewLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.bufferViewId,i=e.gltfResource,o=e.baseResource,r=zl.getBufferViewCacheKey({gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}),s=Ln.get(r);return l(s)?s:(s=new XS({resourceCache:Ln,gltf:t,bufferViewId:n,gltfResource:i,baseResource:o,cacheKey:r}),Ln.add(s))};Ln.getDracoLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.draco,i=e.gltfResource,o=e.baseResource,r=zl.getDracoCacheKey({gltf:t,draco:n,gltfResource:i,baseResource:o}),s=Ln.get(r);return l(s)?s:(s=new KS({resourceCache:Ln,gltf:t,draco:n,gltfResource:i,baseResource:o,cacheKey:r}),Ln.add(s))};Ln.getVertexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.gltfResource,i=e.baseResource,o=e.frameState,r=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=e.accessorId,u=y(e.asynchronous,!0),f=y(e.dequantize,!1),d=y(e.loadBuffer,!1),p=y(e.loadTypedArray,!1),g=zl.getVertexBufferCacheKey({gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,dequantize:f,loadBuffer:d,loadTypedArray:p}),h=Ln.get(g);return l(h)?h:(h=new tw({resourceCache:Ln,gltf:t,gltfResource:n,baseResource:i,bufferViewId:r,draco:s,attributeSemantic:a,accessorId:c,cacheKey:g,asynchronous:u,dequantize:f,loadBuffer:d,loadTypedArray:p}),Ln.add(h))};Ln.getIndexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.accessorId,i=e.gltfResource,o=e.baseResource,r=e.frameState,s=e.draco,a=y(e.asynchronous,!0),c=y(e.loadBuffer,!1),u=y(e.loadTypedArray,!1),f=zl.getIndexBufferCacheKey({gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,loadBuffer:c,loadTypedArray:u}),d=Ln.get(f);return l(d)?d:(d=new ZS({resourceCache:Ln,gltf:t,accessorId:n,gltfResource:i,baseResource:o,draco:s,cacheKey:f,asynchronous:a,loadBuffer:c,loadTypedArray:u}),Ln.add(d))};Ln.getImageLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.imageId,i=e.gltfResource,o=e.baseResource,r=zl.getImageCacheKey({gltf:t,imageId:n,gltfResource:i,baseResource:o}),s=Ln.get(r);return l(s)?s:(s=new JS({resourceCache:Ln,gltf:t,imageId:n,gltfResource:i,baseResource:o,cacheKey:r}),Ln.add(s))};Ln.getTextureLoader=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.textureInfo,i=e.gltfResource,o=e.baseResource,r=e.supportedImageFormats,s=e.frameState,a=y(e.asynchronous,!0),c=zl.getTextureCacheKey({gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s}),u=Ln.get(c);return l(u)?u:(u=new ew({resourceCache:Ln,gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,cacheKey:c,asynchronous:a}),Ln.add(u))};Ln.clearForSpecs=function(){let e=[tw,ZS,KS,ew,JS,XS,IC,iw,$S],t,n=Ln.cacheEntries,i=[];for(t in n)n.hasOwnProperty(t)&&i.push(n[t]);i.sort(function(r,s){let a=e.indexOf(r.resourceLoader.constructor),c=e.indexOf(s.resourceLoader.constructor);return a-c});let o=i.length;for(let r=0;r<o;++r){let s=i[r];t=s.resourceLoader.cacheKey,l(n[t])&&(s.resourceLoader.destroy(),delete n[t])}Ln.statistics.clear()};var Fi=Ln;function Ns(e,t,n){this._resource=e,this._subtreeJson=void 0,this._bufferLoader=void 0,this._tileAvailability=void 0,this._contentAvailabilityBitstreams=[],this._childSubtreeAvailability=void 0,this._implicitCoordinates=n,this._subtreeLevels=t.subtreeLevels,this._subdivisionScheme=t.subdivisionScheme,this._branchingFactor=t.branchingFactor,this._metadata=void 0,this._tileMetadataTable=void 0,this._tilePropertyTableJson=void 0,this._contentMetadataTables=[],this._contentPropertyTableJsons=[],this._tileJumpBuffer=void 0,this._contentJumpBuffers=[],this._ready=!1}Object.defineProperties(Ns.prototype,{ready:{get:function(){return this._ready}},metadata:{get:function(){return this._metadata}},tileMetadataTable:{get:function(){return this._tileMetadataTable}},tilePropertyTableJson:{get:function(){return this._tilePropertyTableJson}},contentMetadataTables:{get:function(){return this._contentMetadataTables}},contentPropertyTableJsons:{get:function(){return this._contentPropertyTableJsons}},implicitCoordinates:{get:function(){return this._implicitCoordinates}}});Ns.prototype.tileIsAvailableAtIndex=function(e){return this._tileAvailability.getBit(e)};Ns.prototype.tileIsAvailableAtCoordinates=function(e){let t=this.getTileIndex(e);return this.tileIsAvailableAtIndex(t)};Ns.prototype.contentIsAvailableAtIndex=function(e,t){return t=y(t,0),this._contentAvailabilityBitstreams[t].getBit(e)};Ns.prototype.contentIsAvailableAtCoordinates=function(e,t){let n=this.getTileIndex(e);return this.contentIsAvailableAtIndex(n,t)};Ns.prototype.childSubtreeIsAvailableAtIndex=function(e){return this._childSubtreeAvailability.getBit(e)};Ns.prototype.childSubtreeIsAvailableAtCoordinates=function(e){let t=this.getChildSubtreeIndex(e);return this.childSubtreeIsAvailableAtIndex(t)};Ns.prototype.getLevelOffset=function(e){let t=this._branchingFactor;return(Math.pow(t,e)-1)/(t-1)};Ns.prototype.getParentMortonIndex=function(e){let t=2;return this._subdivisionScheme===jr.OCTREE&&(t=3),e>>t};Ns.fromSubtreeJson=async function(e,t,n,i,o){let r=new Ns(e,i,o),s;l(t)?s={json:t,binary:void 0}:s=zNe(n);let a=s.json;r._subtreeJson=a;let c;if(ni(a,"3DTILES_metadata"))c=a.extensions["3DTILES_metadata"];else if(l(a.tileMetadata)){let T=a.tileMetadata;c=a.propertyTables[T]}let u=[];if(l(a.contentMetadata)){let T=a.contentMetadata.length;for(let E=0;E<T;E++){let S=a.contentMetadata[E];u.push(a.propertyTables[S])}}let f,d=i.metadataSchema,p=a.subtreeMetadata;if(l(p)){let T=p.class,E=d.classes[T];f=new KR({subtreeMetadata:p,class:E})}r._metadata=f,r._tilePropertyTableJson=c,r._contentPropertyTableJsons=u;let g={constant:0};a.contentAvailabilityHeaders=[],ni(a,"3DTILES_multiple_contents")?a.contentAvailabilityHeaders=a.extensions["3DTILES_multiple_contents"].contentAvailability:Array.isArray(a.contentAvailability)?a.contentAvailabilityHeaders=a.contentAvailability:a.contentAvailabilityHeaders.push(y(a.contentAvailability,g));let h=HNe(a.buffers),A=GNe(a.bufferViews,h);WNe(a,A),l(c)&&$ee(c,A);for(let T=0;T<u.length;T++){let E=u[T];$ee(E,A)}let x=await jNe(r,h,s.binary),C=qNe(A,x);return XNe(r,a,i,C),l(c)&&(KNe(r,i,C),ZNe(r)),JNe(r,i,C),QNe(r),r._ready=!0,r};function zNe(e){let n=new DataView(e.buffer,e.byteOffset),i=8,o=n.getUint32(i,!0);i+=8;let r=n.getUint32(i,!0);i+=8;let s=Po(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}function HNe(e){e=l(e)?e:[];for(let t=0;t<e.length;t++){let n=e[t];n.isExternal=l(n.uri),n.isActive=!1}return e}function GNe(e,t){e=l(e)?e:[];for(let n=0;n<e.length;n++){let i=e[n],o=t[i.buffer];i.bufferHeader=o,i.isActive=!1}return e}function WNe(e,t){let n,i=e.tileAvailability;l(i.bitstream)?n=t[i.bitstream]:l(i.bufferView)&&(n=t[i.bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);let o=e.contentAvailabilityHeaders;for(let s=0;s<o.length;s++)n=void 0,l(o[s].bitstream)?n=t[o[s].bitstream]:l(o[s].bufferView)&&(n=t[o[s].bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);n=void 0;let r=e.childSubtreeAvailability;l(r.bitstream)?n=t[r.bitstream]:l(r.bufferView)&&(n=t[r.bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0)}function $ee(e,t){let n=e.properties,i;for(let o in n)if(n.hasOwnProperty(o)){let r=n[o],s=y(r.values,r.bufferView);i=t[s],i.isActive=!0,i.bufferHeader.isActive=!0;let a=y(r.stringOffsets,r.stringOffsetBufferView);l(a)&&(i=t[a],i.isActive=!0,i.bufferHeader.isActive=!0);let c=y(r.arrayOffsets,r.arrayOffsetBufferView);l(c)&&(i=t[c],i.isActive=!0,i.bufferHeader.isActive=!0)}}function jNe(e,t,n){let i=[];for(let o=0;o<t.length;o++){let r=t[o];if(!r.isActive)i.push(Promise.resolve(void 0));else if(r.isExternal){let s=YNe(e,r);i.push(s)}else i.push(Promise.resolve(n))}return Promise.all(i).then(function(o){let r={};for(let s=0;s<o.length;s++){let a=o[s];l(a)&&(r[s]=a)}return r})}async function YNe(e,t){let i=e._resource.getDerivedResource({url:t.uri}),o=Fi.getExternalBufferLoader({resource:i});e._bufferLoader=o;try{await o.load()}catch(r){if(o.isDestroyed())return;throw r}return o.typedArray}function qNe(e,t){let n={};for(let i=0;i<e.length;i++){let o=e[i];if(!o.isActive)continue;let r=o.byteOffset,s=r+o.byteLength,c=t[o.buffer].subarray(r,s);n[i]=c}return n}function XNe(e,t,n,i){let o=n.branchingFactor,r=n.subtreeLevels,s=(Math.pow(o,r)-1)/(o-1),a=Math.pow(o,r),c=ni(t,"3DTILES_metadata"),u=l(e._tilePropertyTableJson),f=c||u;e._tileAvailability=b5(t.tileAvailability,i,s,f);let d=e._contentPropertyTableJsons.length>0;f=f||d;for(let p=0;p<t.contentAvailabilityHeaders.length;p++){let g=b5(t.contentAvailabilityHeaders[p],i,s,f);e._contentAvailabilityBitstreams.push(g)}e._childSubtreeAvailability=b5(t.childSubtreeAvailability,i,a)}function b5(e,t,n,i){if(l(e.constant))return new jS({constant:!!e.constant,lengthBits:n,availableCount:e.availableCount});let o;return l(e.bitstream)?o=t[e.bitstream]:l(e.bufferView)&&(o=t[e.bufferView]),new jS({bitstream:o,lengthBits:n,availableCount:e.availableCount,computeAvailableCountEnabled:i})}function KNe(e,t,n){let i=e._tilePropertyTableJson,o=e._tileAvailability.availableCount,r=t.metadataSchema,s=i.class,a=r.classes[s];e._tileMetadataTable=new Ul({class:a,count:o,properties:i.properties,bufferViews:n})}function JNe(e,t,n){let i=e._contentPropertyTableJsons,o=e._contentAvailabilityBitstreams,r=t.metadataSchema,s=e._contentMetadataTables;for(let a=0;a<i.length;a++){let c=i[a],f=o[a].availableCount,d=c.class,p=r.classes[d],g=new Ul({class:p,count:f,properties:c.properties,bufferViews:n});s.push(g)}}function ete(e){let t=0,n=e.lengthBits,i=e.availableCount,o;i<256?o=new Uint8Array(n):i<65536?o=new Uint16Array(n):o=new Uint32Array(n);for(let r=0;r<e.lengthBits;r++)e.getBit(r)&&(o[r]=t,t++);return o}function ZNe(e){let t=ete(e._tileAvailability);e._tileJumpBuffer=t}function QNe(e){let t=e._contentJumpBuffers,n=e._contentAvailabilityBitstreams;for(let i=0;i<n.length;i++){let o=n[i],r=ete(o);t.push(r)}}Ns.prototype.getTileIndex=function(e){let t=e.level-this._implicitCoordinates.level;if(t<0||this._subtreeLevels<=t)throw new de("level is out of bounds for this subtree");return e.getSubtreeCoordinates().getOffsetCoordinates(e).tileIndex};Ns.prototype.getChildSubtreeIndex=function(e){if(e.level-this._implicitCoordinates.level!==this._implicitCoordinates.subtreeLevels)throw new de("level is out of bounds for this subtree");return e.getParentSubtreeCoordinates().getOffsetCoordinates(e).mortonIndex};function $Ne(e,t){if(!l(e._tileMetadataTable))return;let n=e.getTileIndex(t);if(e._tileAvailability.getBit(n))return e._tileJumpBuffer[n]}function eFe(e,t,n){let i=e._contentMetadataTables;if(!l(i))return;let o=i[n];if(!l(o))return;let r=e._contentAvailabilityBitstreams[n],s=e.getTileIndex(t);if(r.getBit(s))return e._contentJumpBuffers[n][s]}Ns.prototype.getTileMetadataView=function(e){let t=$Ne(this,e);if(!l(t))return;let n=this._tileMetadataTable;return new YS({class:n.class,metadataTable:n,entityId:t,propertyTableJson:this._tilePropertyTableJson})};Ns.prototype.getContentMetadataView=function(e,t){let n=eFe(this,e,t);if(!l(n))return;let i=this._contentMetadataTables[t],o=this._contentPropertyTableJsons[t];return new YS({class:i.class,metadataTable:i,entityId:n,contentIndex:t,propertyTableJson:o})};Ns.prototype.isDestroyed=function(){return!1};Ns.prototype.destroy=function(){return l(this._bufferLoader)&&Fi.unload(this._bufferLoader),ue(this)};var BC=Ns;var tFe={ID:"ID",NAME:"NAME",DESCRIPTION:"DESCRIPTION",TILESET_TILE_COUNT:"TILESET_TILE_COUNT",TILE_BOUNDING_BOX:"TILE_BOUNDING_BOX",TILE_BOUNDING_REGION:"TILE_BOUNDING_REGION",TILE_BOUNDING_SPHERE:"TILE_BOUNDING_SPHERE",TILE_MINIMUM_HEIGHT:"TILE_MINIMUM_HEIGHT",TILE_MAXIMUM_HEIGHT:"TILE_MAXIMUM_HEIGHT",TILE_HORIZON_OCCLUSION_POINT:"TILE_HORIZON_OCCLUSION_POINT",TILE_GEOMETRIC_ERROR:"TILE_GEOMETRIC_ERROR",CONTENT_BOUNDING_BOX:"CONTENT_BOUNDING_BOX",CONTENT_BOUNDING_REGION:"CONTENT_BOUNDING_REGION",CONTENT_BOUNDING_SPHERE:"CONTENT_BOUNDING_SPHERE",CONTENT_MINIMUM_HEIGHT:"CONTENT_MINIMUM_HEIGHT",CONTENT_MAXIMUM_HEIGHT:"CONTENT_MAXIMUM_HEIGHT",CONTENT_HORIZON_OCCLUSION_POINT:"CONTENT_HORIZON_OCCLUSION_POINT"},LC=Object.freeze(tFe);function nFe(e){return{tile:{boundingVolume:tte("TILE",e),minimumHeight:nte("TILE",e),maximumHeight:ite("TILE",e)},content:{boundingVolume:tte("CONTENT",e),minimumHeight:nte("CONTENT",e),maximumHeight:ite("CONTENT",e)}}}function tte(e,t){let n=`${e}_BOUNDING_BOX`,i=t.getPropertyBySemantic(n);if(l(i))return{box:i};let o=`${e}_BOUNDING_REGION`,r=t.getPropertyBySemantic(o);if(l(r))return{region:r};let s=`${e}_BOUNDING_SPHERE`,a=t.getPropertyBySemantic(s);if(l(a))return{sphere:a}}function nte(e,t){let n=`${e}_MINIMUM_HEIGHT`;return t.getPropertyBySemantic(n)}function ite(e,t){let n=`${e}_MAXIMUM_HEIGHT`;return t.getPropertyBySemantic(n)}var bB=nFe;function Qc(e,t,n){let i=t.implicitTileset,o=t.implicitCoordinates;this._implicitTileset=i,this._implicitCoordinates=o,this._implicitSubtree=void 0,this._tileset=e,this._tile=t,this._resource=n,this._metadata=void 0,this.featurePropertiesDirty=!1,this._group=void 0;let r=o.getTemplateValues(),s=i.subtreeUriTemplate.getDerivedResource({templateValues:r});this._url=s.getUrlComponent(!0),this._ready=!1,this._readyPromise=void 0}Object.defineProperties(Qc.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Implicit3DTileContent.readyPromise","Implicit3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Implicit3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._url}},metadata:{get:function(){},set:function(){}},batchTable:{get:function(){}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Qc.fromSubtreeJson=async function(e,t,n,i,o,r){r=y(r,0);let s;l(o)&&(s=new Uint8Array(o,r));let a=t.implicitTileset,c=t.implicitCoordinates,u=await BC.fromSubtreeJson(n,i,s,a,c),f=new Qc(e,t,n);return f._implicitSubtree=u,iFe(f,u),f._ready=!0,f._readyPromise=Promise.resolve(f),f};function iFe(e,t){let n=e._tile,i=e._implicitCoordinates.childIndex,o=rFe(e,t,n,i),r=e._tileset.statistics;n.children.push(o.rootTile),r.numberOfTilesTotal++;let s=oFe(e,t,o.bottomRow);for(let a=0;a<s.length;a++){let c=s[a],u=c.tile,f=hFe(e,u,c.childIndex);u.children.push(f),r.numberOfTilesTotal++}}function oFe(e,t,n){let i=[],o=e._implicitTileset.branchingFactor;for(let r=0;r<n.length;r++){let s=n[r];if(l(s))for(let a=0;a<o;a++){let c=r*o+a;t.childSubtreeIsAvailableAtIndex(c)&&i.push({tile:s,childIndex:a})}}return i}function rFe(e,t,n,i){let s=ote(e,t,n,i,0,!0),a=e._tileset.statistics,c=[s],u=[],f=e._implicitTileset;for(let d=1;d<f.subtreeLevels;d++){let p=t.getLevelOffset(d),g=f.branchingFactor*c.length;for(let h=0;h<g;h++){let A=p+h;if(!t.tileIsAvailableAtIndex(A)){u.push(void 0);continue}let x=t.getParentMortonIndex(h),C=c[x],T=h%f.branchingFactor,E=ote(e,t,C,T,A);C.children.push(E),a.numberOfTilesTotal++,u.push(E)}c=u,u=[]}return{rootTile:s,bottomRow:c}}function rte(e,t,n){let i=LC.TILE_GEOMETRIC_ERROR;return l(e)&&e.hasPropertyBySemantic(i)?e.getPropertyBySemantic(i):t.geometricError/Math.pow(2,n.level)}function ote(e,t,n,i,o,r){let s=e._implicitTileset,a;y(r,!1)?a=n.implicitCoordinates:a=n.implicitCoordinates.getChildCoordinates(i);let c,u,f;if(l(t.tilePropertyTableJson)){c=t.getTileMetadataView(a);let D=bB(c);u=D.tile,f=D.content}let p=t.contentPropertyTableJsons.length,g=!1;for(let D=0;D<p;D++)if(t.contentIsAvailableAtCoordinates(a,D)){g=!0;break}let h=cFe(s,a,i,r,n,u),A=[];for(let D=0;D<s.contentCount;D++){if(!t.contentIsAvailableAtIndex(o,D))continue;let L={uri:s.contentUriTemplates[D].getDerivedResource({templateValues:a.getTemplateValues()}).url},N=lFe(h,f);l(N)&&(L.boundingVolume=N),A.push(gt(L,s.contentHeaders[D]))}let x=rte(c,s,a),C={boundingVolume:h,geometricError:x,refine:s.refine,contents:A},T=!0,E=Ye(s.tileHeader,T);delete E.boundingVolume,delete E.transform;let S=gt(C,E,T),v=ute(e,s.baseResource,S,n);return v.implicitCoordinates=a,v.implicitSubtree=t,v.metadata=c,v.hasImplicitContentMetadata=g,v}function SB(e,t){return l(e)&&l(t)&&(l(t.minimumHeight)||l(t.maximumHeight))&&(ni(e,"3DTILES_bounding_volume_S2")||l(e.region))}function w5(e,t){l(t)&&(ni(e,"3DTILES_bounding_volume_S2")?aFe(e.extensions["3DTILES_bounding_volume_S2"],t.minimumHeight,t.maximumHeight):l(e.region)&&sFe(e.region,t.minimumHeight,t.maximumHeight))}function sFe(e,t,n){l(t)&&(e[4]=t),l(n)&&(e[5]=n)}function aFe(e,t,n){l(t)&&(e.minimumHeight=t),l(n)&&(e.maximumHeight=n)}function cFe(e,t,n,i,o,r){let s;return!l(r)||!l(r.boundingVolume)||!SB(r.boundingVolume,r)&&SB(e.boundingVolume,r)?s=ste(e,t,n,y(i,!1),o):s=r.boundingVolume,w5(s,r),s}function lFe(e,t){let n;return l(t)&&(n=t.boundingVolume),SB(n,t)?w5(n,t):SB(e,t)&&(n=Ye(e,!0),w5(n,t)),n}function ste(e,t,n,i,o){let r=e.boundingVolume;return ni(r,"3DTILES_bounding_volume_S2")?ate(i,o,n,t.level,t.x,t.y,t.z):l(r.region)?{region:lte(r.region,t.level,t.x,t.y,t.z)}:{box:cte(r.box,t.level,t.x,t.y,t.z)}}function ate(e,t,n,i,o,r,s){let a=t._boundingVolume;if(e)return{extensions:{"3DTILES_bounding_volume_S2":{token:N_.getTokenFromId(a.s2Cell._cellId),minimumHeight:a.minimumHeight,maximumHeight:a.maximumHeight}}};let c=Number(t._boundingVolume.s2Cell._cellId>>BigInt(61)),u=c%2===0?WS.encode2D(i,o,r):WS.encode2D(i,r,o),f=N_.fromFacePositionLevel(c,BigInt(u),i),d,p;if(l(s)){let g=(a.maximumHeight+a.minimumHeight)/2;d=n<4?a.minimumHeight:g,p=n<4?g:a.maximumHeight}else d=a.minimumHeight,p=a.maximumHeight;return{extensions:{"3DTILES_bounding_volume_S2":{token:N_.getTokenFromId(f._cellId),minimumHeight:d,maximumHeight:p}}}}var uFe=new m,fFe=new m,S5=new m,dFe=new Z;function cte(e,t,n,i,o){if(t===0)return e;let r=m.unpack(e,0,fFe),s=Z.unpack(e,3,dFe),a=Math.pow(2,-t),c=-1+(2*n+1)*a,u=-1+(2*i+1)*a,f=0,d=m.fromElements(a,a,1,uFe);l(o)&&(f=-1+(2*o+1)*a,d.z=a);let p=m.fromElements(c,u,f,S5);p=Z.multiplyByVector(s,p,S5),p=m.add(p,r,S5);let g=Z.clone(s);g=Z.multiplyByScale(g,d,g);let h=new Array(12);return m.pack(p,h),Z.pack(g,h,3),h}var mFe=new le;function lte(e,t,n,i,o){if(t===0)return e.slice();let r=le.unpack(e,0,mFe),s=e[4],a=e[5],c=Math.pow(2,-t),u=c*r.width,f=P.negativePiToPi(r.west+n*u),d=P.negativePiToPi(f+u),p=c*r.height,g=P.negativePiToPi(r.south+i*p),h=P.negativePiToPi(g+p),A=s,x=a;if(l(o)){let C=c*(a-s);A+=o*C,x=A+C}return[f,g,d,h,A,x]}function hFe(e,t,n){let i=e._implicitTileset,o=t.implicitCoordinates.getChildCoordinates(n),r=ste(i,o,n,!1,t),s=rte(void 0,i,o),a=i.subtreeUriTemplate.getDerivedResource({templateValues:o.getTemplateValues()}).url,c={boundingVolume:r,geometricError:s,refine:i.refine,contents:[{uri:a}]},u=ute(e,i.baseResource,c,t);return u.implicitTileset=i,u.implicitCoordinates=o,u}function ute(e,t,n,i){let o=e._tile.constructor;return new o(e._tileset,t,n,i)}Qc.prototype.hasProperty=function(e,t){return!1};Qc.prototype.getFeature=function(e){};Qc.prototype.applyDebugSettings=function(e,t){};Qc.prototype.applyStyle=function(e){};Qc.prototype.update=function(e,t){};Qc.prototype.isDestroyed=function(){return!1};Qc.prototype.destroy=function(){return this._implicitSubtree=this._implicitSubtree&&this._implicitSubtree.destroy(),ue(this)};Qc._deriveBoundingBox=cte;Qc._deriveBoundingRegion=lte;Qc._deriveBoundingVolumeS2=ate;var aw=Qc;var pFe={NONE:0,REPEAT:1,MIRRORED_REPEAT:2},Hl=Object.freeze(pFe);function NC(e,t){this._distance=t,this._normal=new fte(e,this),this.onChangeCallback=void 0,this.index=-1}Object.defineProperties(NC.prototype,{distance:{get:function(){return this._distance},set:function(e){l(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(e){l(this.onChangeCallback)&&!m.equals(this._normal._cartesian3,e)&&this.onChangeCallback(this.index),m.clone(e,this._normal._cartesian3)}}});NC.fromPlane=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance):t=new NC(e.normal,e.distance),t};NC.clone=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance,t):new NC(e.normal,e.distance)};function fte(e,t){this._clippingPlane=t,this._cartesian3=m.clone(e)}Object.defineProperties(fte.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.x&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.x=e}},y:{get:function(){return this._cartesian3.y},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.y&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.y=e}},z:{get:function(){return this._cartesian3.z},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}});var FC=NC;function La(e){e=y(e,y.EMPTY_OBJECT),this._planes=[],this._dirtyIndex=-1,this._multipleDirtyPlanes=!1,this._enabled=y(e.enabled,!0),this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this.edgeColor=z.clone(y(e.edgeColor,z.WHITE)),this.edgeWidth=y(e.edgeWidth,0),this.planeAdded=new ge,this.planeRemoved=new ge,this._owner=void 0;let t=y(e.unionClippingRegions,!1);this._unionClippingRegions=t,this._testIntersection=t?_te:gte,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;let n=e.planes;if(l(n)){let i=n.length;for(let o=0;o<i;++o)this.add(n[o])}}function _te(e){return e===$t.OUTSIDE}function gte(e){return e===$t.INSIDE}Object.defineProperties(La.prototype,{length:{get:function(){return this._planes.length}},unionClippingRegions:{get:function(){return this._unionClippingRegions},set:function(e){this._unionClippingRegions!==e&&(this._unionClippingRegions=e,this._testIntersection=e?_te:gte)}},enabled:{get:function(){return this._enabled},set:function(e){this._enabled!==e&&(this._enabled=e)}},texture:{get:function(){return this._clippingPlanesTexture}},owner:{get:function(){return this._owner}},clippingPlanesState:{get:function(){return this._unionClippingRegions?this._planes.length:-this._planes.length}}});function dte(e,t){e._multipleDirtyPlanes=e._multipleDirtyPlanes||e._dirtyIndex!==-1&&e._dirtyIndex!==t,e._dirtyIndex=t}La.prototype.add=function(e){let t=this._planes.length,n=this;e.onChangeCallback=function(i){dte(n,i)},e.index=t,dte(this,t),this._planes.push(e),this.planeAdded.raiseEvent(e,t)};La.prototype.get=function(e){return this._planes[e]};function yte(e,t){let n=e.length;for(let i=0;i<n;++i)if(fn.equals(e[i],t))return i;return-1}La.prototype.contains=function(e){return yte(this._planes,e)!==-1};La.prototype.remove=function(e){let t=this._planes,n=yte(t,e);if(n===-1)return!1;e instanceof FC&&(e.onChangeCallback=void 0,e.index=-1);let i=t.length-1;for(let o=n;o<i;++o){let r=t[o+1];t[o]=r,r instanceof FC&&(r.index=o)}return this._multipleDirtyPlanes=!0,t.length=i,this.planeRemoved.raiseEvent(e,n),!0};La.prototype.removeAll=function(){let e=this._planes,t=e.length;for(let n=0;n<t;++n){let i=e[n];i instanceof FC&&(i.onChangeCallback=void 0,i.index=-1),this.planeRemoved.raiseEvent(i,n)}this._multipleDirtyPlanes=!0,this._planes=[]};var _Fe=new re,gFe=new re;function mte(e,t,n){let i=e._uint8View,o=e._planes,r=0;for(let s=t;s<n;++s){let a=o[s],c=qn.octEncodeToCartesian4(a.normal,gFe);i[r]=c.x,i[r+1]=c.y,i[r+2]=c.z,i[r+3]=c.w;let u=re.packFloat(a.distance,_Fe);i[r+4]=u.x,i[r+5]=u.y,i[r+6]=u.z,i[r+7]=u.w,r+=8}}function hte(e,t,n){let i=e._float32View,o=e._planes,r=0;for(let s=t;s<n;++s){let a=o[s],c=a.normal;i[r]=c.x,i[r+1]=c.y,i[r+2]=c.z,i[r+3]=a.distance,r+=4}}function Ate(e,t){let n=zt.maximumTextureSize;return t.x=Math.min(e,n),t.y=Math.ceil(e/t.x),t}var yFe=new H;La.prototype.update=function(e){let t=this._clippingPlanesTexture,n=e.context,i=La.useFloatTexture(n),o=i?this.length:this.length*2;if(l(t)){let s=t.width*t.height;(s<o||o<.25*s)&&(t.destroy(),t=void 0,this._clippingPlanesTexture=void 0)}if(this.length===0)return;if(!l(t)){let s=Ate(o,yFe);s.y*=2,i?(t=new Bt({context:n,width:s.x,height:s.y,pixelFormat:lt.RGBA,pixelDatatype:Je.FLOAT,sampler:dn.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*4)):(t=new Bt({context:n,width:s.x,height:s.y,pixelFormat:lt.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,sampler:dn.NEAREST,flipY:!1}),this._uint8View=new Uint8Array(s.x*s.y*4)),this._clippingPlanesTexture=t,this._multipleDirtyPlanes=!0}let r=this._dirtyIndex;if(!(!this._multipleDirtyPlanes&&r===-1)){if(this._multipleDirtyPlanes)i?(hte(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._float32View}})):(mte(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._uint8View}}));else{let s=0,a=0;i?(a=Math.floor(r/t.width),s=Math.floor(r-a*t.width),hte(this,r,r+1),t.copyFrom({source:{width:1,height:1,arrayBufferView:this._float32View},xOffset:s,yOffset:a})):(a=Math.floor(r*2/t.width),s=Math.floor(r*2-a*t.width),mte(this,r,r+1),t.copyFrom({source:{width:2,height:1,arrayBufferView:this._uint8View},xOffset:s,yOffset:a}))}this._multipleDirtyPlanes=!1,this._dirtyIndex=-1}};var AFe=new B,pte=new fn(m.UNIT_X,0);La.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._planes,i=n.length,o=this.modelMatrix;l(t)&&(o=B.multiply(t,o,AFe));let r=$t.INSIDE;!this.unionClippingRegions&&i>0&&(r=$t.OUTSIDE);for(let s=0;s<i;++s){let a=n[s];fn.transform(a,o,pte);let c=e.intersectPlane(pte);if(c===$t.INTERSECTING)r=c;else if(this._testIntersection(c))return c}return r};La.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};La.useFloatTexture=function(e){return e.floatingPointTexture};La.getTextureResolution=function(e,t,n){let i=e.texture;if(l(i))return n.x=i.width,n.y=i.height,n;let o=La.useFloatTexture(t)?e.length:e.length*2,r=Ate(o,n);return r.y*=2,r};La.prototype.isDestroyed=function(){return!1};La.prototype.destroy=function(){return this._clippingPlanesTexture=this._clippingPlanesTexture&&this._clippingPlanesTexture.destroy(),ue(this)};var gs=La;var cw={HIGHLIGHT:0,REPLACE:1,MIX:2};cw.getColorBlend=function(e,t){if(e===cw.HIGHLIGHT)return 0;if(e===cw.REPLACE)return 1;if(e===cw.MIX)return P.clamp(t,P.EPSILON4,1)};var yc=Object.freeze(cw);var xFe={XTRANSLATE:"xTranslate",YTRANSLATE:"yTranslate",ZTRANSLATE:"zTranslate",XROTATE:"xRotate",YROTATE:"yRotate",ZROTATE:"zRotate",XSCALE:"xScale",YSCALE:"yScale",ZSCALE:"zScale",UNIFORMSCALE:"uniformScale"},Ac=Object.freeze(xFe);var CFe={STEP:0,LINEAR:1,CUBICSPLINE:2},xm=Object.freeze(CFe);var xte={};function lw(e){this._count=e.count,this._properties=Ye(e.properties,!0)}lw.prototype.hasProperty=function(e){return Vn.hasProperty(e,this._properties,xte)};lw.prototype.getPropertyIds=function(e){return Vn.getPropertyIds(this._properties,xte,e)};lw.prototype.getProperty=function(e,t){let n=this._properties[t];if(l(n))return Ye(n[e],!0)};lw.prototype.setProperty=function(e,t,n){let i=this._properties[t];l(i)||(i=new Array(this._count),this._properties[t]=i),i[e]=Ye(n,!0)};var Y_=lw;function Na(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._id=e.id,this._count=e.count,this._extras=e.extras,this._extensions=e.extensions,this._metadataTable=e.metadataTable,this._jsonMetadataTable=e.jsonMetadataTable,this._batchTableHierarchy=e.batchTableHierarchy}Object.defineProperties(Na.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},count:{get:function(){return this._count}},class:{get:function(){if(l(this._metadataTable))return this._metadataTable.class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){let e=0;return l(this._metadataTable)&&(e+=this._metadataTable.byteLength),l(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e}}});Na.prototype.hasProperty=function(e,t){return!!(l(this._metadataTable)&&this._metadataTable.hasProperty(t)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)||l(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(t))};Na.prototype.hasPropertyBySemantic=function(e,t){return l(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(t):!1};Na.prototype.propertyExists=function(e){return!!(l(this._metadataTable)&&this._metadataTable.hasProperty(e)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.propertyExists(e)||l(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(e))};Na.prototype.propertyExistsBySemantic=function(e){return l(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(e):!1};var v5=[];Na.prototype.getPropertyIds=function(e,t){return t=l(t)?t:[],t.length=0,l(this._metadataTable)&&t.push.apply(t,this._metadataTable.getPropertyIds(v5)),l(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,v5)),l(this._jsonMetadataTable)&&t.push.apply(t,this._jsonMetadataTable.getPropertyIds(v5)),t};Na.prototype.getProperty=function(e,t){let n;if(l(this._metadataTable)&&(n=this._metadataTable.getProperty(e,t),l(n))||l(this._batchTableHierarchy)&&(n=this._batchTableHierarchy.getProperty(e,t),l(n))||l(this._jsonMetadataTable)&&(n=this._jsonMetadataTable.getProperty(e,t),l(n)))return n};Na.prototype.setProperty=function(e,t,n){l(this._metadataTable)&&this._metadataTable.setProperty(e,t,n)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n)||(l(this._jsonMetadataTable)||(this._jsonMetadataTable=new Y_({count:this._count,properties:{}})),this._jsonMetadataTable.setProperty(e,t,n))};Na.prototype.getPropertyBySemantic=function(e,t){if(l(this._metadataTable))return this._metadataTable.getPropertyBySemantic(e,t)};Na.prototype.setPropertyBySemantic=function(e,t,n){return l(this._metadataTable)?this._metadataTable.setPropertyBySemantic(e,t,n):!1};Na.prototype.getPropertyTypedArray=function(e){if(l(this._metadataTable))return this._metadataTable.getPropertyTypedArray(e)};Na.prototype.getPropertyTypedArrayBySemantic=function(e){if(l(this._metadataTable))return this._metadataTable.getPropertyTypedArrayBySemantic(e)};Na.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return l(n)?n.isClass(e,t):!1};Na.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};Na.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(l(t))return t.getClassName(e)};var $c=Na;function uw(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty,i=e.textures,o=l(t.channels)?t.channels:[0],r=t,s=kl.createModelTextureReader({textureInfo:r,channels:bFe(o),texture:i[r.index]});this._min=t.min,this._max=t.max;let a=t.offset,c=t.scale,u=n.hasValueTransform||l(a)||l(c);a=y(a,n.offset),c=y(c,n.scale),a=n.unpackVectorAndMatrixTypes(a),c=n.unpackVectorAndMatrixTypes(c),this._offset=a,this._scale=c,this._hasValueTransform=u,this._textureReader=s,this._classProperty=n,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(uw.prototype,{textureReader:{get:function(){return this._textureReader}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});uw.prototype.isGpuCompatible=function(){let e=this._classProperty,t=e.type,n=e.componentType;return e.isArray?!e.isVariableLengthArray&&e.arrayLength<=4&&t===jt.SCALAR&&n===nn.UINT8:jt.isVectorType(t)||t===jt.SCALAR?n===nn.UINT8:!1};var TFe=[void 0,"float","vec2","vec3","vec4"],EFe=[void 0,"int","ivec2","ivec3","ivec4"];uw.prototype.getGlslType=function(){let e=this._classProperty,t=jt.getComponentCount(e.type);return e.isArray&&(t=e.arrayLength),e.normalized?TFe[t]:EFe[t]};uw.prototype.unpackInShader=function(e){return this._classProperty.normalized?e:`${this.getGlslType()}(255.0 * ${e})`};function bFe(e){return e.map(function(t){return"rgba".charAt(t)}).join("")}var wB=uw;function D5(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyTexture,n=e.class,i=e.textures,o=t.extensions,r=t.extras,s={};if(l(t.properties))for(let a in t.properties)t.properties.hasOwnProperty(a)&&(s[a]=new wB({property:t.properties[a],classProperty:n.properties[a],textures:i}));this._name=e.name,this._id=e.id,this._class=n,this._properties=s,this._extras=r,this._extensions=o}Object.defineProperties(D5.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});D5.prototype.getProperty=function(e){return this._properties[e]};var UC=D5;function Cte(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty;this._attribute=t.attribute,this._classProperty=n,this._min=t.min,this._max=t.max;let i=t.offset,o=t.scale,r=n.hasValueTransform||l(i)||l(o);i=y(i,n.offset),o=y(o,n.scale),i=n.unpackVectorAndMatrixTypes(i),o=n.unpackVectorAndMatrixTypes(o),this._offset=i,this._scale=o,this._hasValueTransform=r,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Cte.prototype,{attribute:{get:function(){return this._attribute}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var vB=Cte;function I5(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyAttribute,n=e.class,i={};if(l(t.properties))for(let o in t.properties)t.properties.hasOwnProperty(o)&&(i[o]=new vB({property:t.properties[o],classProperty:n.properties[o]}));this._name=e.name,this._id=e.id,this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(I5.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});I5.prototype.getProperty=function(e){return this._properties[e]};var VC=I5;function fw(e){e=y(e,y.EMPTY_OBJECT),this._schema=e.schema;let t=e.propertyTables;this._propertyTableCount=l(t)?t.length:0,this._propertyTables=t,this._propertyTextures=e.propertyTextures,this._propertyAttributes=e.propertyAttributes,this._statistics=e.statistics,this._extras=e.extras,this._extensions=e.extensions}Object.defineProperties(fw.prototype,{schema:{get:function(){return this._schema}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},propertyTableCount:{get:function(){return this._propertyTableCount}},propertyTables:{get:function(){return this._propertyTables}},propertyTextures:{get:function(){return this._propertyTextures}},propertyAttributes:{get:function(){return this._propertyAttributes}},propertyTablesByteLength:{get:function(){if(!l(this._propertyTables))return 0;let e=0,t=this._propertyTables.length;for(let n=0;n<t;n++)e+=this._propertyTables[n].byteLength;return e}}});fw.prototype.getPropertyTable=function(e){return this._propertyTables[e]};fw.prototype.getPropertyTexture=function(e){return this._propertyTextures[e]};fw.prototype.getPropertyAttribute=function(e){return this._propertyAttributes[e]};var Fa=fw;function SFe(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i=[];if(l(t.propertyTables))for(let s=0;s<t.propertyTables.length;s++){let a=t.propertyTables[s],c=n.classes[a.class],u=new Ul({count:a.count,properties:a.properties,class:c,bufferViews:e.bufferViews});i.push(new $c({id:s,name:a.name,count:a.count,metadataTable:u,extras:a.extras,extensions:a.extensions}))}let o=[];if(l(t.propertyTextures))for(let s=0;s<t.propertyTextures.length;s++){let a=t.propertyTextures[s];o.push(new UC({id:s,name:a.name,propertyTexture:a,class:n.classes[a.class],textures:e.textures}))}let r=[];if(l(t.propertyAttributes))for(let s=0;s<t.propertyAttributes.length;s++){let a=t.propertyAttributes[s];r.push(new VC({id:s,name:a.name,class:n.classes[a.class],propertyAttribute:a}))}return new Fa({schema:n,propertyTables:i,propertyTextures:o,propertyAttributes:r,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}var DB=SFe;function wFe(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i,o=[],r;if(l(t.featureTables))for(r=Object.keys(t.featureTables).sort(),i=0;i<r.length;i++){let a=r[i],c=t.featureTables[a],u=n.classes[c.class],f=new Ul({count:c.count,properties:c.properties,class:u,bufferViews:e.bufferViews});o.push(new $c({id:a,count:c.count,metadataTable:f,extras:c.extras,extensions:c.extensions}))}let s=[];if(l(t.featureTextures))for(r=Object.keys(t.featureTextures).sort(),i=0;i<r.length;i++){let a=r[i],c=t.featureTextures[a];s.push(new UC({id:a,propertyTexture:vFe(c),class:n.classes[c.class],textures:e.textures}))}return new Fa({schema:n,propertyTables:o,propertyTextures:s,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}function vFe(e){let t={class:e.class,properties:{}},n=e.properties;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i],r={channels:DFe(o.channels),extras:o.extras,extensions:o.extensions};t.properties[i]=gt(o.texture,r,!0)}return t}function DFe(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]="rgba".indexOf(e[i]);return n}var IB=wFe;function q_(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.extension,i=e.extensionLegacy,o=e.gltfResource,r=e.baseResource,s=e.supportedImageFormats,a=e.frameState,c=e.cacheKey,u=y(e.asynchronous,!0);this._gltfResource=o,this._baseResource=r,this._gltf=t,this._extension=n,this._extensionLegacy=i,this._supportedImageFormats=s,this._frameState=a,this._cacheKey=c,this._asynchronous=u,this._bufferViewLoaders=[],this._bufferViewIds=[],this._textureLoaders=[],this._textureIds=[],this._schemaLoader=void 0,this._structuralMetadata=void 0,this._state=vt.UNLOADED,this._promise=void 0}l(Object.create)&&(q_.prototype=Object.create(io.prototype),q_.prototype.constructor=q_);Object.defineProperties(q_.prototype,{cacheKey:{get:function(){return this._cacheKey}},structuralMetadata:{get:function(){return this._structuralMetadata}}});async function IFe(e){try{let t=BFe(e),n=VFe(e),i=kFe(e);return await Promise.all([t,n,i]),e.isDestroyed()?void 0:(e._gltf=void 0,e._state=vt.LOADED,e)}catch(t){if(e.isDestroyed())return;e.unload(),e._state=vt.FAILED;let n="Failed to load structural metadata";throw e.getError(n,t)}}q_.prototype.load=function(){return l(this._promise)?this._promise:(this._state=vt.LOADING,this._promise=IFe(this),this._promise)};function PFe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.values,r=i.arrayOffsets,s=i.stringOffsets;l(o)&&(t[o]=!0),l(r)&&(t[r]=!0),l(s)&&(t[s]=!0)}}function OFe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.bufferView,r=i.arrayOffsetBufferView,s=i.stringOffsetBufferView;l(o)&&(t[o]=!0),l(r)&&(t[r]=!0),l(s)&&(t[s]=!0)}}function MFe(e){let t=e.propertyTables,n={};if(l(t))for(let i=0;i<t.length;i++){let o=t[i];PFe(o.properties,n)}return n}function RFe(e){let t=e.featureTables,n={};if(l(t)){for(let i in t)if(t.hasOwnProperty(i)){let r=t[i].properties;l(r)&&OFe(r,n)}}return n}async function BFe(e){let t;l(e._extension)?t=MFe(e._extension):t=RFe(e._extensionLegacy);let n=[];for(let i in t)if(t.hasOwnProperty(i)){let o=Fi.getBufferViewLoader({gltf:e._gltf,bufferViewId:parseInt(i),gltfResource:e._gltfResource,baseResource:e._baseResource});e._bufferViewLoaders.push(o),e._bufferViewIds.push(i),n.push(o.load())}return Promise.all(n)}function LFe(e){let t={},n=e.propertyTextures;if(l(n))for(let i=0;i<n.length;i++){let r=n[i].properties;l(r)&&NFe(r,t)}return t}function NFe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];t[i.index]=i}}function FFe(e){let t={},n=e.featureTextures;if(l(n)){for(let i in n)if(n.hasOwnProperty(i)){let r=n[i].properties;l(r)&&UFe(r,t)}}return t}function UFe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let o=e[n].texture;t[o.index]=o}}function VFe(e){let t;l(e._extension)?t=LFe(e._extension):t=FFe(e._extensionLegacy);let n=e._gltf,i=e._gltfResource,o=e._baseResource,r=e._supportedImageFormats,s=e._frameState,a=e._asynchronous,c=[];for(let u in t)if(t.hasOwnProperty(u)){let f=Fi.getTextureLoader({gltf:n,textureInfo:t[u],gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s,asynchronous:a});e._textureLoaders.push(f),e._textureIds.push(u),c.push(f.load())}return Promise.all(c)}async function kFe(e){let t=y(e._extension,e._extensionLegacy),n;if(l(t.schemaUri)){let i=e._baseResource.getDerivedResource({url:t.schemaUri});n=Fi.getSchemaLoader({resource:i})}else n=Fi.getSchemaLoader({schema:t.schema});if(e._schemaLoader=n,await n.load(),!n.isDestroyed())return n.schema}q_.prototype.process=function(e){if(this._state===vt.READY)return!0;if(this._state!==vt.LOADED)return!1;let t=this._textureLoaders,n=t.length,i=!0;for(let a=0;a<n;++a){let u=t[a].process(e);i=i&&u}if(!i)return!1;let o=this._schemaLoader.schema,r={};for(let a=0;a<this._bufferViewIds.length;++a){let c=this._bufferViewIds[a],u=this._bufferViewLoaders[a];if(!u.isDestroyed()){let f=new Uint8Array(u.typedArray);r[c]=f}}let s={};for(let a=0;a<this._textureIds.length;++a){let c=this._textureIds[a],u=t[a];u.isDestroyed()||(s[c]=u.texture)}return l(this._extension)?this._structuralMetadata=DB({extension:this._extension,schema:o,bufferViews:r,textures:s}):this._structuralMetadata=IB({extension:this._extensionLegacy,schema:o,bufferViews:r,textures:s}),Tte(this),this._state=vt.READY,!0};function Tte(e){let t=e._bufferViewLoaders,n=t.length;for(let i=0;i<n;++i)Fi.unload(t[i]);e._bufferViewLoaders.length=0,e._bufferViewIds.length=0}function zFe(e){let t=e._textureLoaders,n=t.length;for(let i=0;i<n;++i)Fi.unload(t[i]);e._textureLoaders.length=0,e._textureIds.length=0}q_.prototype.unload=function(){Tte(this),zFe(this),l(this._schemaLoader)&&Fi.unload(this._schemaLoader),this._schemaLoader=void 0,this._structuralMetadata=void 0};var PB=q_;var kC={TRANSLATION:"TRANSLATION",ROTATION:"ROTATION",SCALE:"SCALE",FEATURE_ID:"_FEATURE_ID"};kC.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"TRANSLATION":return kC.TRANSLATION;case"ROTATION":return kC.ROTATION;case"SCALE":return kC.SCALE;case"_FEATURE_ID":return kC.FEATURE_ID}};var Yr=Object.freeze(kC);var HFe=65534,GFe=255;function OB(e){e=y(e,y.EMPTY_OBJECT);let t=e.triangleIndices,n=e.outlineIndices,i=e.originalVertexCount;this._triangleIndices=t,this._originalVertexCount=i,this._edges=new Ste(n,i),this._outlineCoordinatesTypedArray=void 0,this._extraVertices=[],WFe(this)}Object.defineProperties(OB.prototype,{updatedTriangleIndices:{get:function(){return this._triangleIndices}},outlineCoordinates:{get:function(){return this._outlineCoordinatesTypedArray}}});function WFe(e){let t=e._triangleIndices,n=e._edges,i=[],o=e._extraVertices,r=e._originalVertexCount,s={};for(let a=0;a<t.length;a+=3){let c=t[a],u=t[a+1],f=t[a+2],d=!1,p=d||n.hasEdge(c,u),g=d||n.hasEdge(u,f),h=d||n.hasEdge(f,c),A=Ete(i,c,u,f,p,g,h);for(;l(A);){let x=s[A];if(!l(x)){x=r+o.length;let C=A;for(;C>=r;)C=o[C-r];o.push(C),s[A]=x}x>HFe&&(t instanceof Uint16Array||t instanceof Uint8Array)?t=new Uint32Array(t):x>GFe&&t instanceof Uint8Array&&(t=new Uint16Array(t)),A===c?(c=x,t[a]=x):A===u?(u=x,t[a+1]=x):(f=x,t[a+2]=x),A=Ete(i,c,u,f,p,g,h)}}e._triangleIndices=t,e._outlineCoordinatesTypedArray=new Float32Array(i)}function Ete(e,t,n,i,o,r,s){let a=s?1:0,c=o?1:0,u=0,f=P5(e,t,a,c,u);if(f===0)return t;let d=0,p=o?1:0,g=r?1:0,h=P5(e,n,d,p,g);if(h===0)return n;let A=s?1:0,x=0,C=r?1:0,T=P5(e,i,A,x,C);if(T===0)return i;let E=f&h&T,S,v,D;if(E&1<<0)S=0,v=1,D=2;else if(E&1<<1)S=0,D=1,v=2;else if(E&1<<2)v=0,S=1,D=2;else if(E&1<<3)v=0,D=1,S=2;else if(E&1<<4)D=0,S=1,v=2;else if(E&1<<5)D=0,v=1,S=2;else{let N=O5(f),_=O5(h),b=O5(T);return N<_&&N<b?t:_<b?n:i}let O=t*3;e[O+S]=a,e[O+v]=c,e[O+D]=u;let M=n*3;e[M+S]=d,e[M+v]=p,e[M+D]=g;let L=i*3;e[L+S]=A,e[L+v]=x,e[L+D]=C}function P5(e,t,n,i,o){let r=t*3,s=e[r],a=e[r+1],c=e[r+2];return l(s)?(s===n&&a===i&&c===o)<<0|(s===n&&a===o&&c===i)<<1|(s===i&&a===n&&c===o)<<2|(s===i&&a===o&&c===n)<<3|(s===o&&a===n&&c===i)<<4|(s===o&&a===i&&c===n)<<5:63}function O5(e){return(e&1)+(e>>1&1)+(e>>2&1)+(e>>3&1)+(e>>4&1)+(e>>5&1)}OB.prototype.updateAttribute=function(e){let t=this._extraVertices,n=e.length,i=n/this._originalVertexCount,o=t.length,r=e.constructor,s=new r(e.length+o*i);s.set(e);for(let a=0;a<o;a++){let c=t[a]*i,u=n+a*i;for(let f=0;f<i;f++)s[u+f]=s[c+f]}return s};OB.createTexture=function(e){let t=e.cache.modelOutliningCache;if(l(t)||(t=e.cache.modelOutliningCache={}),l(t.outlineTexture))return t.outlineTexture;let n=Math.min(4096,zt.maximumTextureSize),i=n,o=bte(i),r=[];for(;i>1;)i>>=1,r.push(bte(i));let s=new Bt({context:e,source:{arrayBufferView:o,mipLevels:r},width:n,height:1,pixelFormat:lt.LUMINANCE,sampler:new dn({wrapS:Dn.CLAMP_TO_EDGE,wrapT:Dn.CLAMP_TO_EDGE,minificationFilter:ln.LINEAR_MIPMAP_LINEAR,magnificationFilter:bi.LINEAR})});return t.outlineTexture=s,s};function bte(e){let t=new Uint8Array(e);return t[e-1]=192,e===8?t[e-1]=96:e===4?t[e-1]=48:e===2?t[e-1]=24:e===1&&(t[e-1]=12),t}function Ste(e,t){this._originalVertexCount=t,this._edges=new Set;for(let n=0;n<e.length;n+=2){let i=e[n],o=e[n+1],r=Math.min(i,o),s=Math.max(i,o),a=r*this._originalVertexCount+s;this._edges.add(a)}}Ste.prototype.hasEdge=function(e,t){let n=Math.min(e,t),i=Math.max(e,t),o=n*this._originalVertexCount+i;return this._edges.has(o)};var zC=OB;function wte(e){this.attribute=e,this.loadBuffer=!1,this.loadTypedArray=!1}function jFe(e){this.indices=e,this.loadBuffer=!1,this.loadTypedArray=!1}function MB(e){this.primitive=e,this.attributePlans=[],this.indicesPlan=void 0,this.needsOutlines=!1,this.outlineIndices=void 0}MB.prototype.postProcess=function(e){this.needsOutlines&&(YFe(this),XFe(this,e))};function YFe(e){let t=e.primitive,n=t.indices,i=t.attributes[0].count,o=new zC({triangleIndices:n.typedArray,outlineIndices:e.outlineIndices,originalVertexCount:i});n.typedArray=o.updatedTriangleIndices,n.indexDatatype=Ve.fromTypedArray(n.typedArray);let r=qFe(o.outlineCoordinates),s=new wte(r);s.loadBuffer=!0,s.loadTypedArray=!1,e.attributePlans.push(s),t.outlineCoordinates=s.attribute;let a=e.attributePlans,c=e.attributePlans.length;for(let u=0;u<c;u++){let f=a[u].attribute;f.typedArray=o.updateAttribute(f.typedArray)}}function qFe(e){let t=new Nt.Attribute;return t.name="_OUTLINE_COORDINATES",t.typedArray=e,t.componentDatatype=X.FLOAT,t.type=an.VEC3,t.normalized=!1,t.count=e.length/3,t}function XFe(e,t){KFe(e.attributePlans,t),l(e.indicesPlan)&&JFe(e.indicesPlan,t)}function KFe(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i],r=o.attribute,s=r.typedArray;if(o.loadBuffer){let a=mt.createVertexBuffer({typedArray:s,context:t,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,r.buffer=a}o.loadTypedArray||(r.typedArray=void 0)}}function JFe(e,t){let n=e.indices;if(e.loadBuffer){let i=mt.createIndexBuffer({typedArray:n.typedArray,context:t,usage:Fe.STATIC_DRAW,indexDatatype:n.indexDatatype});n.buffer=i,i.vertexArrayDestroyable=!1}e.loadTypedArray||(n.typedArray=void 0)}MB.AttributeLoadPlan=wte;MB.IndicesLoadPlan=jFe;var HC=MB;function ZFe(e){e=y(e,y.EMPTY_OBJECT),this.webp=y(e.webp,!1),this.basis=y(e.basis,!1)}var RB=ZFe;var QFe=Nt.Attribute,$Fe=Nt.Indices,vte=Nt.FeatureIdAttribute,Dte=Nt.FeatureIdTexture,Ite=Nt.FeatureIdImplicitRange,e2e=Nt.MorphTarget,t2e=Nt.Primitive,n2e=Nt.Instances,i2e=Nt.Skin,o2e=Nt.Node,r2e=Nt.AnimatedPropertyType,s2e=Nt.AnimationSampler,a2e=Nt.AnimationTarget,c2e=Nt.AnimationChannel,l2e=Nt.Animation,u2e=Nt.ArticulationStage,f2e=Nt.Articulation,d2e=Nt.Asset,m2e=Nt.Scene,h2e=Nt.Components,p2e=Nt.MetallicRoughness,_2e=Nt.SpecularGlossiness,g2e=Nt.Material,bo={NOT_LOADED:0,LOADING:1,LOADED:2,PROCESSING:3,POST_PROCESSING:4,PROCESSED:5,READY:6,FAILED:7,UNLOADED:8};function qf(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltfResource,n=e.baseResource,i=e.typedArray,o=y(e.releaseGltfJson,!1),r=y(e.asynchronous,!0),s=y(e.incrementallyLoadTextures,!0),a=y(e.upAxis,ho.Y),c=y(e.forwardAxis,ho.Z),u=y(e.loadAttributesAsTypedArray,!1),f=y(e.loadAttributesFor2D,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0),g=y(e.loadForClassification,!1),h=y(e.renameBatchIdSemantic,!1);n=l(n)?n:t.clone(),this._gltfJson=e.gltfJson,this._gltfResource=t,this._baseResource=n,this._typedArray=i,this._releaseGltfJson=o,this._asynchronous=r,this._incrementallyLoadTextures=s,this._upAxis=a,this._forwardAxis=c,this._loadAttributesAsTypedArray=u,this._loadAttributesFor2D=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._loadForClassification=g,this._renameBatchIdSemantic=h,this._sortedPropertyTableIds=void 0,this._sortedFeatureTextureIds=void 0,this._gltfJsonLoader=void 0,this._state=bo.NOT_LOADED,this._textureState=bo.NOT_LOADED,this._promise=void 0,this._processError=void 0,this._textureErrors=[],this._primitiveLoadPlans=[],this._loaderPromises=[],this._textureLoaders=[],this._texturesPromises=[],this._textureCallbacks=[],this._bufferViewLoaders=[],this._geometryLoaders=[],this._geometryCallbacks=[],this._structuralMetadataLoader=void 0,this._loadResourcesPromise=void 0,this._resourcesLoaded=!1,this._texturesLoaded=!1,this._postProcessBuffers=[],this._components=void 0}l(Object.create)&&(qf.prototype=Object.create(io.prototype),qf.prototype.constructor=qf);Object.defineProperties(qf.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},gltfJson:{get:function(){return l(this._gltfJsonLoader)?this._gltfJsonLoader.gltf:this._gltfJson}},incrementallyLoadTextures:{get:function(){return this._incrementallyLoadTextures}},texturesLoaded:{get:function(){return this._texturesLoaded}}});async function y2e(e){e._state=bo.LOADING,e._textureState=bo.LOADING;try{let t=Fi.getGltfJsonLoader({gltfResource:e._gltfResource,baseResource:e._baseResource,typedArray:e._typedArray,gltfJson:e._gltfJson});return e._gltfJsonLoader=t,await t.load(),e.isDestroyed()||e.isUnloaded()||t.isDestroyed()?void 0:(e._state=bo.LOADED,e._textureState=bo.LOADED,e)}catch(t){if(e.isDestroyed())return;e._state=bo.FAILED,e._textureState=bo.FAILED,BB(e,t)}}async function A2e(e,t){Gt.supportsWebP.initialized||await Gt.supportsWebP.initialize();let n=new RB({webp:Gt.supportsWebP(),basis:t.context.supportsBasis}),i=e.gltfJson,o=_3e(e,i,n,t);return e._state=bo.PROCESSING,e._textureState=bo.PROCESSING,l(e._gltfJsonLoader)&&e._releaseGltfJson&&(Fi.unload(e._gltfJsonLoader),e._gltfJsonLoader=void 0),o}qf.prototype.load=async function(){return l(this._promise)?this._promise:(this._promise=y2e(this),this._promise)};function BB(e,t){e.unload();let n="Failed to load glTF";throw e.getError(n,t)}function x2e(e,t){let n,i=!0,o=e._geometryLoaders,r=o.length;for(n=0;n<r;++n){let a=o[n].process(t);a&&l(e._geometryCallbacks[n])&&(e._geometryCallbacks[n](),e._geometryCallbacks[n]=void 0),i=i&&a}let s=e._structuralMetadataLoader;if(l(s)){let a=s.process(t);a&&(e._components.structuralMetadata=s.structuralMetadata),i=i&&a}i&&(e._state=bo.POST_PROCESSING)}function C2e(e,t){let n=e._primitiveLoadPlans,i=n.length;for(let o=0;o<i;o++){let r=n[o];r.postProcess(t),r.needsOutlines&&T2e(e,r)}}function T2e(e,t){let n=e._postProcessBuffers,i=t.primitive,o=i.outlineCoordinates;l(o)&&n.push(o.buffer);let r=i.attributes,s=r.length;for(let c=0;c<s;c++){let u=r[c];l(u.buffer)&&n.push(u.buffer)}let a=i.indices;l(a)&&l(a.buffer)&&n.push(a.buffer)}qf.prototype._process=function(e){return this._state===bo.READY?!0:(this._state===bo.PROCESSING&&x2e(this,e),this._resourcesLoaded&&this._state===bo.POST_PROCESSING&&(C2e(this,e.context),this._state=bo.PROCESSED),this._resourcesLoaded&&this._state===bo.PROCESSED?(Ute(this),this._typedArray=void 0,this._state=bo.READY,!0):!1)};qf.prototype._processTextures=function(e){if(this._textureState===bo.READY)return!0;if(this._textureState!==bo.PROCESSING)return!1;let t,n=!0,i=this._textureLoaders,o=i.length;for(t=0;t<o;++t){let r=i[t].process(e);r&&l(this._textureCallbacks[t])&&(this._textureCallbacks[t](),this._textureCallbacks[t]=void 0),n=n&&r}return n?(this._textureState=bo.READY,this._texturesLoaded=!0,!0):!1};qf.prototype.process=function(e){if(this._state===bo.LOADED&&!l(this._loadResourcesPromise)&&(this._loadResourcesPromise=A2e(this,e).then(()=>{this._resourcesLoaded=!0}).catch(o=>{this._processError=o})),l(this._processError)){this._state=bo.FAILED;let o=this._processError;this._processError=void 0,BB(this,o)}let t=this._textureErrors.pop();if(l(t)){let o=this.getError("Failed to load glTF texture",t);throw o.name="TextureError",o}if(this._state===bo.FAILED)return!1;let n=!1;try{n=this._process(e)}catch(o){this._state=bo.FAILED,BB(this,o)}let i=!1;try{i=this._processTextures(e)}catch(o){this._textureState=bo.FAILED,BB(this,o)}return this._incrementallyLoadTextures?n:n&&i};function E2e(e,t,n,i,o,r,s,a){let u=t.accessors[n].bufferView;return Fi.getVertexBufferLoader({gltf:t,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:a,bufferViewId:u,draco:o,attributeSemantic:i,accessorId:n,asynchronous:e._asynchronous,loadBuffer:r,loadTypedArray:s})}function b2e(e,t,n,i,o,r,s){return Fi.getIndexBufferLoader({gltf:t,accessorId:n,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:s,draco:i,asynchronous:e._asynchronous,loadBuffer:o,loadTypedArray:r})}function S2e(e,t,n){let i=Fi.getBufferViewLoader({gltf:t,bufferViewId:n,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoaders.push(i),i}function Pte(e,t,n){let i=t.byteOffset,o=Vl(e,t),r=t.count,s=Nu(t.type),a=t.componentType,c=X.getSizeInBytes(a),u=c*s,f=r*s;if(o===u)return n=new Uint8Array(n),X.createArrayBufferView(a,n.buffer,n.byteOffset+i,f);let d=X.createTypedArray(a,f),p=new DataView(n.buffer),g=new Array(s),h=z_(t.componentType);i=n.byteOffset+i;for(let A=0;A<r;++A){h(p,i,s,c,g);for(let x=0;x<s;++x)d[A*s+x]=g[x];i+=o}return d}function w2e(e,t){let n=e.type;if(n===an.SCALAR)return t.fill(0);let i=an.getMathType(n);return t.fill(i.clone(i.ZERO))}function v2e(e,t,n,i){let o=e.type,r=e.count;if(o===an.SCALAR)for(let s=0;s<r;s++)n[s]=t[s];else if(o===an.VEC4&&i)for(let s=0;s<r;s++)n[s]=Ne.unpack(t,s*4);else{let s=an.getMathType(o),a=an.getNumberOfComponents(o);for(let c=0;c<r;c++)n[c]=s.unpack(t,c*a)}return n}async function D2e(e,t,n,i,o,r){if(await t.load(),e.isDestroyed())return;let s=t.typedArray,a=Pte(n,i,s);o=y(o,!1),v2e(i,a,r,o)}function LB(e,t,n,i){let o=t.accessors[n],r=o.count,s=new Array(r),a=o.bufferView;if(l(a)){let c=S2e(e,t,a),u=D2e(e,c,t,o,i,s);return e._loaderPromises.push(u),s}return w2e(o,s)}function Fu(e,t){if(l(t))return e===Number?t[0]:e.unpack(t)}function I2e(e){return e===Number?0:new e}function P2e(e){switch(e){case X.BYTE:return 127;case X.UNSIGNED_BYTE:return 255;case X.SHORT:return 32767;case X.UNSIGNED_SHORT:return 65535;default:return 1}}var O2e={VEC2:new H(-1,-1),VEC3:new m(-1,-1,-1),VEC4:new re(-1,-1,-1,-1)};function M2e(e,t){let n=P2e(e.componentDatatype),i=O2e[e.type],o=e.min;l(o)&&(o=t.divideByScalar(o,n,o),o=t.maximumByComponent(o,i,o));let r=e.max;l(r)&&(r=t.divideByScalar(r,n,r),r=t.maximumByComponent(r,i,r)),e.min=o,e.max=r}function R2e(e,t,n){let i=e.decodeMatrix,o=Fu(n,e.decodedMin),r=Fu(n,e.decodedMax);l(o)&&l(r)&&(t.min=o,t.max=r);let s=new Nt.Quantization;s.componentDatatype=t.componentDatatype,s.type=t.type,i.length===4?(s.quantizedVolumeOffset=i[2],s.quantizedVolumeStepSize=i[0]):i.length===9?(s.quantizedVolumeOffset=new H(i[6],i[7]),s.quantizedVolumeStepSize=new H(i[0],i[4])):i.length===16?(s.quantizedVolumeOffset=new m(i[12],i[13],i[14]),s.quantizedVolumeStepSize=new m(i[0],i[5],i[10])):i.length===25&&(s.quantizedVolumeOffset=new re(i[20],i[21],i[22],i[23]),s.quantizedVolumeStepSize=new re(i[0],i[6],i[12],i[18])),t.quantization=s}function B2e(e,t,n,i,o){let r=e.accessors[t],s=an.getMathType(r.type),a=y(r.normalized,!1),c=new QFe;c.name=n,c.semantic=i,c.setIndex=o,c.constant=I2e(s),c.componentDatatype=r.componentType,c.normalized=a,c.count=r.count,c.type=r.type,c.min=Fu(s,r.min),c.max=Fu(s,r.max),c.byteOffset=r.byteOffset,c.byteStride=Vl(e,r),ni(r,"WEB3D_quantized_attributes")&&R2e(r.extensions.WEB3D_quantized_attributes,c,s);let u=c.semantic===bt.POSITION||c.semantic===bt.NORMAL||c.semantic===bt.TANGENT||c.semantic===bt.TEXCOORD;return e.extensionsRequired?.includes("KHR_mesh_quantization")&&a&&u&&M2e(c,s),c}function Ote(e){let n=/^\w+_(\d+)$/.exec(e);if(n!==null)return parseInt(n[1])}var L2e={gltfSemantic:void 0,renamedSemantic:void 0,modelSemantic:void 0};function M5(e,t,n){let i=n;e._renameBatchIdSemantic&&(n==="_BATCHID"||n==="BATCHID")&&(i="_FEATURE_ID_0");let o=t.fromGltfSemantic(i),r=L2e;return r.gltfSemantic=n,r.renamedSemantic=i,r.modelSemantic=o,r}function N2e(e){let t=e===bt.POSITION,n=e===bt.FEATURE_ID,i=e===bt.TEXCOORD;return t||n||i}function F2e(e,t,n,i){if(e.byteOffset=0,e.byteStride=void 0,e.quantization=t.quantization,n&&(e.buffer=t.buffer),i){let o=l(t.quantization)?t.quantization.componentDatatype:e.componentDatatype;e.typedArray=X.createArrayBufferView(o,t.typedArray.buffer)}}function U2e(e,t,n,i,o,r){if(o&&(n.buffer=i.buffer),r){let s=i.typedArray;n.typedArray=Pte(e,t,s),o||(n.byteOffset=0,n.byteStride=void 0)}}function Mte(e,t,n,i,o,r,s,a){let c=t.accessors[n],u=c.bufferView,f=i.gltfSemantic,d=i.renamedSemantic,p=i.modelSemantic,g=l(p)?Ote(d):void 0,A=B2e(t,n,f,p,g);if(!l(o)&&!l(u))return A;let x=E2e(e,t,n,f,o,r,s,a),C=e._geometryLoaders.length;e._geometryLoaders.push(x);let T=x.load();return e._loaderPromises.push(T),e._geometryCallbacks[C]=()=>{l(o)&&l(o.attributes)&&l(o.attributes[f])?F2e(A,x,r,s):U2e(t,c,A,x,r,s)},A}function Rte(e,t,n,i,o,r,s,a){let c=i.modelSemantic,u=c===bt.POSITION,f=c===bt.FEATURE_ID,d=u&&!r&&e._loadAttributesFor2D&&!a.scene3DOnly,p=e._loadForClassification&&f,g=e._loadAttributesAsTypedArray,h=!g,A=g||d||p,T=Mte(e,t,n,i,o,s?!1:h,s?!0:A,a),E=new HC.AttributeLoadPlan(T);return E.loadBuffer=h,E.loadTypedArray=A,E}function V2e(e,t,n,i,o,r){let s=l(i.ROTATION),a=l(i.TRANSLATION)&&l(t.accessors[i.TRANSLATION].min)&&l(t.accessors[i.TRANSLATION].max),c=M5(e,Yr,o),u=c.modelSemantic,f=u===Yr.TRANSLATION||u===Yr.ROTATION||u===Yr.SCALE,d=u===Yr.TRANSLATION,p=e._loadAttributesAsTypedArray||s&&f||!r.context.instancedArrays,g=!p,h=e._loadAttributesFor2D&&!r.scene3DOnly;return Mte(e,t,n,c,void 0,g,p||d&&(!a||h),r)}function k2e(e,t,n,i,o,r,s){let a=t.accessors[n],c=a.bufferView;if(!l(i)&&!l(c))return;let u=new $Fe;u.count=a.count;let f=e._loadAttributesAsTypedArray,d=e._loadIndicesForWireframe&&!s.context.webgl2,p=e._loadForClassification&&o,h=!f,A=f||d||p,T=b2e(e,t,n,i,r?!1:h,r?!0:A,s),E=e._geometryLoaders.length;e._geometryLoaders.push(T);let S=T.load();e._loaderPromises.push(S),e._geometryCallbacks[E]=()=>{u.indexDatatype=T.indexDatatype,u.buffer=T.buffer,u.typedArray=T.typedArray};let v=new HC.IndicesLoadPlan(u);return v.loadBuffer=h,v.loadTypedArray=A,v}function Jh(e,t,n,i,o,r){let s=kl.getImageIdFromTexture({gltf:t,textureId:n.index,supportedImageFormats:i});if(!l(s))return;let a=Fi.getTextureLoader({gltf:t,textureInfo:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:i,frameState:o,asynchronous:e._asynchronous}),c=kl.createModelTextureReader({textureInfo:n}),u=e._textureLoaders.length;e._textureLoaders.push(a);let f=a.load().catch(d=>{if(!e.isDestroyed()){if(!e._incrementallyLoadTextures)throw d;e._textureState=bo.FAILED,e._textureErrors.push(d)}});return e._texturesPromises.push(f),e._textureCallbacks[u]=()=>{c.texture=a.texture,l(r)&&(c.texture.sampler=r)},c}function z2e(e,t,n,i,o){let r=new g2e,s=y(n.extensions,y.EMPTY_OBJECT),a=s.KHR_materials_pbrSpecularGlossiness,c=n.pbrMetallicRoughness;if(r.unlit=l(s.KHR_materials_unlit),l(a)){let u=new _2e;r.specularGlossiness=u,l(a.diffuseTexture)&&(u.diffuseTexture=Jh(e,t,a.diffuseTexture,i,o)),l(a.specularGlossinessTexture)&&l(a.specularGlossinessTexture)&&(u.specularGlossinessTexture=Jh(e,t,a.specularGlossinessTexture,i,o)),u.diffuseFactor=Fu(re,a.diffuseFactor),u.specularFactor=Fu(m,a.specularFactor),u.glossinessFactor=a.glossinessFactor,r.pbrSpecularGlossiness=a}else if(l(c)){let u=new p2e;l(c.baseColorTexture)&&(u.baseColorTexture=Jh(e,t,c.baseColorTexture,i,o)),l(c.metallicRoughnessTexture)&&(u.metallicRoughnessTexture=Jh(e,t,c.metallicRoughnessTexture,i,o)),u.baseColorFactor=Fu(re,c.baseColorFactor),u.metallicFactor=c.metallicFactor,u.roughnessFactor=c.roughnessFactor,r.metallicRoughness=u}return l(n.emissiveTexture)&&(r.emissiveTexture=Jh(e,t,n.emissiveTexture,i,o)),l(n.normalTexture)&&!e._loadForClassification&&(r.normalTexture=Jh(e,t,n.normalTexture,i,o)),l(n.occlusionTexture)&&(r.occlusionTexture=Jh(e,t,n.occlusionTexture,i,o)),r.emissiveFactor=Fu(m,n.emissiveFactor),r.alphaMode=n.alphaMode,r.alphaCutoff=n.alphaCutoff,r.doubleSided=n.doubleSided,r}function Bte(e,t){let n=new vte;return n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.propertyTableId=e.propertyTable,n.setIndex=e.attribute,n.label=e.label,n.positionalLabel=t,n}function Lte(e,t,n,i){let o=new vte,r=e.featureIds;return o.featureCount=n,o.propertyTableId=t,o.setIndex=Ote(r.attribute),o.positionalLabel=i,o}function Nte(e,t){let n=new Ite;return n.propertyTableId=e.propertyTable,n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.label=e.label,n.positionalLabel=t,n.offset=0,n.repeat=1,n}function Fte(e,t,n,i){let o=new Ite,r=e.featureIds;o.propertyTableId=t,o.featureCount=n,o.offset=y(r.constant,0);let s=y(r.divisor,0);return o.repeat=s===0?void 0:s,o.positionalLabel=i,o}function H2e(e,t,n,i,o,r){let s=new Dte;s.featureCount=n.featureCount,s.nullFeatureId=n.nullFeatureId,s.propertyTableId=n.propertyTable,s.label=n.label,s.positionalLabel=r;let a=n.texture;s.textureReader=Jh(e,t,a,i,o,dn.NEAREST);let u=(l(a.channels)?a.channels:[0]).map(function(f){return"rgba".charAt(f)}).join("");return s.textureReader.channels=u,s}function G2e(e,t,n,i,o,r,s,a){let c=new Dte,u=n.featureIds,f=u.texture;return c.featureCount=s,c.propertyTableId=i,c.textureReader=Jh(e,t,f,o,r,dn.NEAREST),c.textureReader.channels=u.channels,c.positionalLabel=a,c}function W2e(e,t,n,i,o,r){let s=new e2e,a=void 0,c=!1;for(let u in n)if(n.hasOwnProperty(u)){let f=n[u],d=M5(e,bt,u),p=Rte(e,t,f,d,a,c,i,r);s.attributes.push(p.attribute),o.attributePlans.push(p)}return s}function j2e(e,t,n,i,o,r){let s=new t2e,a=new HC(s);e._primitiveLoadPlans.push(a);let c=n.material;l(c)&&(s.material=z2e(e,t,t.materials[c],o,r));let u=y(n.extensions,y.EMPTY_OBJECT),f=!1,d=u.CESIUM_primitive_outline;e._loadPrimitiveOutline&&l(d)&&(f=!0,a.needsOutlines=!0,a.outlineIndices=Y2e(e,t,d,a));let p=e._loadForClassification,g=u.KHR_draco_mesh_compression,h=!1,A=n.attributes;if(l(A)){for(let O in A)if(A.hasOwnProperty(O)){let M=A[O],L=M5(e,bt,O),N=L.modelSemantic;if(p&&!N2e(N))continue;N===bt.FEATURE_ID&&(h=!0);let _=Rte(e,t,M,L,g,i,f,r);a.attributePlans.push(_),s.attributes.push(_.attribute)}}let x=n.targets;if(l(x)&&!p){let O=x.length;for(let M=0;M<O;++M)s.morphTargets.push(W2e(e,t,x[M],f,a,r))}let C=n.indices;if(l(C)){let O=k2e(e,t,C,g,h,f,r);l(O)&&(a.indicesPlan=O,s.indices=O.indices)}let T=u.EXT_structural_metadata,E=u.EXT_mesh_features,S=u.EXT_feature_metadata,v=l(S);l(E)?q2e(e,t,s,E,o,r):v&&X2e(e,t,s,S,o,r),l(T)?K2e(s,T):v&&J2e(e,s,S);let D=n.mode;if(p&&D!==Le.TRIANGLES)throw new de("Only triangle meshes can be used for classification.");return s.primitiveType=D,s}function Y2e(e,t,n){let i=n.indices;return LB(e,t,i,!1)}function q2e(e,t,n,i,o,r){let s;l(i)&&l(i.featureIds)?s=i.featureIds:s=[];for(let a=0;a<s.length;a++){let c=s[a],u=`featureId_${a}`,f;l(c.texture)?f=H2e(e,t,c,o,r,u):l(c.attribute)?f=Bte(c,u):f=Nte(c,u),n.featureIds.push(f)}}function X2e(e,t,n,i,o,r){let s=t.extensions.EXT_feature_metadata.featureTables,a=0,c=i.featureIdAttributes;if(l(c)){let f=c.length;for(let d=0;d<f;++d){let p=c[d],g=p.featureTable,h=e._sortedPropertyTableIds.indexOf(g),A=s[g].count,x=`featureId_${a}`;a++;let C;l(p.featureIds.attribute)?C=Lte(p,h,A,x):C=Fte(p,h,A,x),n.featureIds.push(C)}}let u=i.featureIdTextures;if(l(u)){let f=u.length;for(let d=0;d<f;++d){let p=u[d],g=p.featureTable,h=e._sortedPropertyTableIds.indexOf(g),A=s[g].count,x=`featureId_${a}`;a++;let C=G2e(e,t,p,h,o,r,A,x);n.featureIds.push(C)}}}function K2e(e,t){l(t)&&(l(t.propertyTextures)&&(e.propertyTextureIds=t.propertyTextures),l(t.propertyAttributes)&&(e.propertyAttributeIds=t.propertyAttributes))}function J2e(e,t,n){l(n.featureTextures)&&(t.propertyTextureIds=n.featureTextures.map(function(i){return e._sortedFeatureTextureIds.indexOf(i)}))}function Z2e(e,t,n,i){let o=n.EXT_mesh_gpu_instancing,r=new n2e,s=o.attributes;if(l(s)){for(let f in s)if(s.hasOwnProperty(f)){let d=s[f];r.attributes.push(V2e(e,t,d,s,f,i))}}let a=y(o.extensions,y.EMPTY_OBJECT),c=n.EXT_instance_features,u=a.EXT_feature_metadata;return l(c)?Q2e(r,c):l(u)&&$2e(t,r,u,e._sortedPropertyTableIds),r}function Q2e(e,t){let n=t.featureIds;for(let i=0;i<n.length;i++){let o=n[i],r=`instanceFeatureId_${i}`,s;l(o.attribute)?s=Bte(o,r):s=Nte(o,r),e.featureIds.push(s)}}function $2e(e,t,n,i){let o=e.extensions.EXT_feature_metadata.featureTables,r=n.featureIdAttributes;if(l(r)){let s=r.length;for(let a=0;a<s;++a){let c=r[a],u=c.featureTable,f=i.indexOf(u),d=o[u].count,p=`instanceFeatureId_${a}`,g;l(c.featureIds.attribute)?g=Lte(c,f,d,p):g=Fte(c,f,d,p),t.featureIds.push(g)}}}function e3e(e,t,n,i,o){let r=new o2e;r.name=n.name,r.matrix=Fu(B,n.matrix),r.translation=Fu(m,n.translation),r.rotation=Fu(Ne,n.rotation),r.scale=Fu(m,n.scale);let s=y(n.extensions,y.EMPTY_OBJECT),a=s.EXT_mesh_gpu_instancing,c=s.AGI_articulations;if(l(a)){if(e._loadForClassification)throw new de("Models with the EXT_mesh_gpu_instancing extension cannot be used for classification.");r.instances=Z2e(e,t,s,o)}l(c)&&(r.articulationName=c.articulationName);let u=n.mesh;if(l(u)){let f=t.meshes[u],d=f.primitives,p=d.length;for(let x=0;x<p;++x)r.primitives.push(j2e(e,t,d[x],l(r.instances),i,o));let g=y(n.weights,f.weights),A=r.primitives[0].morphTargets.length;r.morphWeights=l(g)?g.slice():new Array(A).fill(0)}return r}function t3e(e,t,n,i){if(!l(t.nodes))return[];let o,r,s=t.nodes.length,a=new Array(s);for(o=0;o<s;++o){let c=e3e(e,t,t.nodes[o],n,i);c.index=o,a[o]=c}for(o=0;o<s;++o){let c=t.nodes[o].children;if(l(c)){let u=c.length;for(r=0;r<u;++r)a[o].children.push(a[c[r]])}}return a}function n3e(e,t,n,i){let o=new i2e,r=n.joints,s=r.length,a=new Array(s);for(let u=0;u<s;++u)a[u]=i[r[u]];o.joints=a;let c=n.inverseBindMatrices;return l(c)?o.inverseBindMatrices=LB(e,t,c):o.inverseBindMatrices=new Array(s).fill(B.IDENTITY),o}function i3e(e,t,n){let i=t.skins;if(e._loadForClassification||!l(i))return[];let o=t.skins.length,r=new Array(o);for(let a=0;a<o;++a){let c=n3e(e,t,t.skins[a],n);c.index=a,r[a]=c}let s=n.length;for(let a=0;a<s;++a){let c=t.nodes[a].skin;l(c)&&(n[a].skin=r[c])}return r}async function o3e(e,t,n,i,o,r){let s=new PB({gltf:t,extension:n,extensionLegacy:i,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:o,frameState:r,asynchronous:e._asynchronous});return e._structuralMetadataLoader=s,s.load()}function r3e(e,t,n){let i=new s2e,o=n.input;i.input=LB(e,t,o);let r=n.interpolation;i.interpolation=y(xm[r],xm.LINEAR);let s=n.output;return i.output=LB(e,t,s,!0),i}function s3e(e,t){let n=new a2e,i=e.node;if(!l(i))return;n.node=t[i];let o=e.path.toUpperCase();return n.path=r2e[o],n}function a3e(e,t,n){let i=new c2e,o=e.sampler;return i.sampler=t[o],i.target=s3e(e.target,n),i}function c3e(e,t,n,i){let o,r=new l2e;r.name=n.name;let s=n.samplers,a=s.length,c=new Array(a);for(o=0;o<a;o++){let p=r3e(e,t,s[o]);p.index=o,c[o]=p}let u=n.channels,f=u.length,d=new Array(f);for(o=0;o<f;o++)d[o]=a3e(u[o],c,i);return r.samplers=c,r.channels=d,r}function l3e(e,t,n){let i=t.animations;if(e._loadForClassification||!l(i))return[];let o=t.animations.length,r=new Array(o);for(let s=0;s<o;++s){let a=c3e(e,t,t.animations[s],n);a.index=s,r[s]=a}return r}function u3e(e){let t=new u2e;t.name=e.name;let n=e.type.toUpperCase();return t.type=Ac[n],t.minimumValue=e.minimumValue,t.maximumValue=e.maximumValue,t.initialValue=e.initialValue,t}function f3e(e){let t=new f2e;t.name=e.name;let n=e.stages,i=n.length,o=new Array(i);for(let r=0;r<i;r++){let s=u3e(n[r]);o[r]=s}return t.stages=o,t}function d3e(e){let n=y(e.extensions,y.EMPTY_OBJECT).AGI_articulations;if(!l(n))return[];let i=n.articulations;if(!l(i))return[];let o=i.length,r=new Array(o);for(let s=0;s<o;s++){let a=f3e(i[s]);r[s]=a}return r}function m3e(e){let t;return l(e.scenes)&&l(e.scene)&&(t=e.scenes[e.scene].nodes),t=y(t,e.nodes),t=l(t)?t:[],t}function h3e(e,t){let n=new m2e,i=m3e(e);return n.nodes=i.map(function(o){return t[o]}),n}var p3e=new m;function _3e(e,t,n,i){let o=y(t.extensions,y.EMPTY_OBJECT),r=o.EXT_structural_metadata,s=o.EXT_feature_metadata,a=o.CESIUM_RTC;if(l(s)){let C=s.featureTables,T=s.featureTextures,E=l(C)?C:[],S=l(T)?T:[];e._sortedPropertyTableIds=Object.keys(E).sort(),e._sortedFeatureTextureIds=Object.keys(S).sort()}let c=t3e(e,t,n,i),u=i3e(e,t,c),f=l3e(e,t,c),d=d3e(t),p=h3e(t,c),g=new h2e,h=new d2e,A=t.asset.copyright;if(l(A)){let C=A.split(";").map(function(T){return new It(T.trim())});h.credits=C}if(g.asset=h,g.scene=p,g.nodes=c,g.skins=u,g.animations=f,g.articulations=d,g.upAxis=e._upAxis,g.forwardAxis=e._forwardAxis,l(a)){let C=m.fromArray(a.center,0,p3e);g.transform=B.fromTranslation(C,g.transform)}if(e._components=g,l(r)||l(s)){let C=o3e(e,t,r,s,n,i);e._loaderPromises.push(C)}let x=[];return x.push.apply(x,e._loaderPromises),e._incrementallyLoadTextures||x.push.apply(x,e._texturesPromises),Promise.all(x)}function g3e(e){let t=e._textureLoaders,n=t.length;for(let i=0;i<n;++i)t[i]=!t[i].isDestroyed()&&Fi.unload(t[i]);e._textureLoaders.length=0}function Ute(e){let t=e._bufferViewLoaders,n=t.length;for(let i=0;i<n;++i)t[i]=!t[i].isDestroyed()&&Fi.unload(t[i]);e._bufferViewLoaders.length=0}function y3e(e){let t=e._geometryLoaders,n=t.length;for(let i=0;i<n;++i)t[i]=!t[i].isDestroyed()&&Fi.unload(t[i]);e._geometryLoaders.length=0}function A3e(e){let t=e._postProcessBuffers,n=t.length;for(let i=0;i<n;i++){let o=t[i];o.isDestroyed()||o.destroy()}t.length=0}function x3e(e){l(e._structuralMetadataLoader)&&!e._structuralMetadataLoader.isDestroyed()&&(e._structuralMetadataLoader.destroy(),e._structuralMetadataLoader=void 0)}qf.prototype.isUnloaded=function(){return this._state===bo.UNLOADED};qf.prototype.unload=function(){l(this._gltfJsonLoader)&&!this._gltfJsonLoader.isDestroyed()&&Fi.unload(this._gltfJsonLoader),this._gltfJsonLoader=void 0,g3e(this),Ute(this),y3e(this),A3e(this),x3e(this),this._components=void 0,this._typedArray=void 0,this._state=bo.UNLOADED};var Zh=qf;var NB=`uniform sampler2D u_pointCloud_colorGBuffer; +uniform sampler2D u_pointCloud_depthGBuffer; +uniform vec2 u_distanceAndEdlStrength; +in vec2 v_textureCoordinates; + +vec2 neighborContribution(float log2Depth, vec2 offset) +{ + float dist = u_distanceAndEdlStrength.x; + vec2 texCoordOrig = v_textureCoordinates + offset * dist; + vec2 texCoord0 = v_textureCoordinates + offset * floor(dist); + vec2 texCoord1 = v_textureCoordinates + offset * ceil(dist); + + float depthOrLogDepth0 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord0)); + float depthOrLogDepth1 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord1)); + + // ignore depth values that are the clear depth + if (depthOrLogDepth0 == 0.0 || depthOrLogDepth1 == 0.0) { + return vec2(0.0); + } + + // interpolate the two adjacent depth values + float depthMix = mix(depthOrLogDepth0, depthOrLogDepth1, fract(dist)); + vec4 eyeCoordinate = czm_windowToEyeCoordinates(texCoordOrig, depthMix); + return vec2(max(0.0, log2Depth - log2(-eyeCoordinate.z / eyeCoordinate.w)), 1.0); +} + +void main() +{ + float depthOrLogDepth = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, v_textureCoordinates)); + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, depthOrLogDepth); + eyeCoordinate /= eyeCoordinate.w; + + float log2Depth = log2(-eyeCoordinate.z); + + if (depthOrLogDepth == 0.0) // 0.0 is the clear value for the gbuffer + { + discard; + } + + vec4 color = texture(u_pointCloud_colorGBuffer, v_textureCoordinates); + + // sample from neighbors left, right, down, up + vec2 texelSize = 1.0 / czm_viewport.zw; + + vec2 responseAndCount = vec2(0.0); + + responseAndCount += neighborContribution(log2Depth, vec2(-texelSize.x, 0.0)); + responseAndCount += neighborContribution(log2Depth, vec2(+texelSize.x, 0.0)); + responseAndCount += neighborContribution(log2Depth, vec2(0.0, -texelSize.y)); + responseAndCount += neighborContribution(log2Depth, vec2(0.0, +texelSize.y)); + + float response = responseAndCount.x / responseAndCount.y; + float strength = u_distanceAndEdlStrength.y; + float shade = exp(-response * 300.0 * strength); + color.rgb *= shade; + out_FragColor = vec4(color); + + // Input and output depth are the same. + gl_FragDepth = depthOrLogDepth; +} +`;function GC(){this._framebuffer=new mi({colorAttachmentsLength:2,depth:!0,supportsDepthTexture:!0}),this._drawCommand=void 0,this._clearCommand=void 0,this._strength=1,this._radius=1}Object.defineProperties(GC.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}},colorGBuffer:{get:function(){return this._framebuffer.getColorTexture(0)}},depthGBuffer:{get:function(){return this._framebuffer.getColorTexture(1)}}});function C3e(e){e._framebuffer.destroy(),e._drawCommand=void 0,e._clearCommand=void 0}var R5=new H;function T3e(e,t){let n=new He({defines:["LOG_DEPTH_WRITE"],sources:[NB]}),i={u_pointCloud_colorGBuffer:function(){return e.colorGBuffer},u_pointCloud_depthGBuffer:function(){return e.depthGBuffer},u_distanceAndEdlStrength:function(){return R5.x=e._radius,R5.y=e._strength,R5}},o=ze.fromCache({blending:mn.ALPHA_BLEND,depthMask:!0,depthTest:{enabled:!0},stencilTest:Ft.setCesium3DTileBit(),stencilMask:Ft.CESIUM_3D_TILE_MASK});e._drawCommand=t.createViewportQuadCommand(n,{uniformMap:i,renderState:o,pass:be.CESIUM_3D_TILE,owner:e}),e._clearCommand=new oi({framebuffer:e.framebuffer,color:new z(0,0,0,0),depth:1,renderState:ze.fromCache(),pass:be.CESIUM_3D_TILE,owner:e})}function E3e(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i),T3e(e,t)}function Vte(e){return e.drawBuffers&&e.fragmentDepth}GC.isSupported=Vte;function b3e(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"EC");if(!l(n)){let i=t._attributeLocations,o=t.fragmentShaderSource.clone();o.sources.splice(0,0,`layout (location = 0) out vec4 out_FragData_0; +layout (location = 1) out vec4 out_FragData_1;`),o.sources=o.sources.map(function(r){return r=He.replaceMain(r,"czm_point_cloud_post_process_main"),r=r.replaceAll(/out_FragColor/g,"out_FragData_0"),r}),o.sources.push(`void main() +{ + czm_point_cloud_post_process_main(); +#ifdef LOG_DEPTH + czm_writeLogDepth(); + out_FragData_1 = czm_packDepth(gl_FragDepth); +#else + out_FragData_1 = czm_packDepth(gl_FragCoord.z); +#endif +}`),n=e.shaderCache.createDerivedShaderProgram(t,"EC",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:i})}return n}GC.prototype.update=function(e,t,n,i){if(!Vte(e.context))return;this._strength=n.eyeDomeLightingStrength,this._radius=n.eyeDomeLightingRadius*e.pixelRatio,E3e(this,e.context);let o,r=e.commandList,s=r.length;for(o=t;o<s;++o){let u=r[o];if(u.primitiveType!==Le.POINTS||u.pass===be.TRANSLUCENT)continue;let f,d,p=u.derivedCommands.pointCloudProcessor;l(p)&&(f=p.command,d=p.originalShaderProgram),(!l(f)||u.dirty||d!==u.shaderProgram||f.framebuffer!==this.framebuffer)&&(f=it.shallowClone(u,f),f.framebuffer=this.framebuffer,f.shaderProgram=b3e(e.context,u.shaderProgram),f.castShadows=!1,f.receiveShadows=!1,l(p)||(p={command:f,originalShaderProgram:u.shaderProgram},u.derivedCommands.pointCloudProcessor=p),p.originalShaderProgram=u.shaderProgram),r[o]=f}let a=this._clearCommand,c=this._drawCommand;c.boundingVolume=i,r.push(c),r.push(a)};GC.prototype.isDestroyed=function(){return!1};GC.prototype.destroy=function(){return C3e(this),ue(this)};var X_=GC;function kte(e){let t=y(e,{});this.attenuation=y(t.attenuation,!1),this.geometricErrorScale=y(t.geometricErrorScale,1),this.maximumAttenuation=t.maximumAttenuation,this.baseResolution=t.baseResolution,this.eyeDomeLighting=y(t.eyeDomeLighting,!0),this.eyeDomeLightingStrength=y(t.eyeDomeLightingStrength,1),this.eyeDomeLightingRadius=y(t.eyeDomeLightingRadius,1),this.backFaceCulling=y(t.backFaceCulling,!1),this.normalShading=y(t.normalShading,!0)}kte.isSupported=function(e){return X_.isSupported(e.context)};var Qh=kte;var ua={},S3e=new re(0,0,0,1),Ua=new re,w3e=new Ke,B5=new H,L5=new H;ua.wgs84ToWindowCoordinates=function(e,t,n){return ua.wgs84WithEyeOffsetToWindowCoordinates(e,t,m.ZERO,n)};var zte=new re,Hte=new m;function dw(e,t,n,i){let o=n.viewMatrix,r=B.multiplyByVector(o,re.fromElements(e.x,e.y,e.z,1,zte),zte),s=m.multiplyComponents(t,m.normalize(r,Hte),Hte);return r.x+=t.x+s.x,r.y+=t.y+s.y,r.z+=s.z,B.multiplyByVector(n.frustum.projectionMatrix,r,i)}var v3e=new he(Math.PI,P.PI_OVER_TWO),D3e=new m,I3e=new m;ua.wgs84WithEyeOffsetToWindowCoordinates=function(e,t,n,i){let o=e.frameState,r=ua.computeActualWgs84Position(o,t,S3e);if(!l(r))return;let s=e.canvas,a=w3e;a.x=0,a.y=0,a.width=s.clientWidth,a.height=s.clientHeight;let c=e.camera,u=!1;if(o.mode===ne.SCENE2D){let f=e.mapProjection,d=v3e,p=f.project(d,D3e),g=m.clone(c.position,I3e),h=c.frustum.clone(),A=B.computeViewportTransformation(a,0,1,new B),x=c.frustum.projectionMatrix,C=c.positionWC.y,T=m.fromElements(P.sign(C)*p.x-C,0,-c.positionWC.x),E=Rt.pointToGLWindowCoordinates(x,A,T);if(C===0||E.x<=0||E.x>=s.clientWidth)u=!0;else{if(E.x>s.clientWidth*.5){a.width=E.x,c.frustum.right=p.x-C,Ua=dw(r,n,c,Ua),ua.clipToGLWindowCoordinates(a,Ua,B5),a.x+=E.x,c.position.x=-c.position.x;let S=c.frustum.right;c.frustum.right=-c.frustum.left,c.frustum.left=-S,Ua=dw(r,n,c,Ua),ua.clipToGLWindowCoordinates(a,Ua,L5)}else{a.x+=E.x,a.width-=E.x,c.frustum.left=-p.x-C,Ua=dw(r,n,c,Ua),ua.clipToGLWindowCoordinates(a,Ua,B5),a.x=a.x-a.width,c.position.x=-c.position.x;let S=c.frustum.left;c.frustum.left=-c.frustum.right,c.frustum.right=-S,Ua=dw(r,n,c,Ua),ua.clipToGLWindowCoordinates(a,Ua,L5)}m.clone(g,c.position),c.frustum=h.clone(),i=H.clone(B5,i),(i.x<0||i.x>s.clientWidth)&&(i.x=L5.x)}}if(o.mode!==ne.SCENE2D||u){if(Ua=dw(r,n,c,Ua),Ua.z<0&&!(c.frustum instanceof tn)&&!(c.frustum instanceof Ir))return;i=ua.clipToGLWindowCoordinates(a,Ua,i)}return i.y=s.clientHeight-i.y,i};ua.wgs84ToDrawingBufferCoordinates=function(e,t,n){if(n=ua.wgs84ToWindowCoordinates(e,t,n),!!l(n))return ua.transformWindowToDrawingBuffer(e,n,n)};var $h=new m,P3e=new he;ua.computeActualWgs84Position=function(e,t,n){let i=e.mode;if(i===ne.SCENE3D)return m.clone(t,n);let o=e.mapProjection,r=o.ellipsoid.cartesianToCartographic(t,P3e);if(!l(r))return;if(o.project(r,$h),i===ne.COLUMBUS_VIEW)return m.fromElements($h.z,$h.x,$h.y,n);if(i===ne.SCENE2D)return m.fromElements(0,$h.x,$h.y,n);let s=e.morphTime;return m.fromElements(P.lerp($h.z,t.x,s),P.lerp($h.x,t.y,s),P.lerp($h.y,t.z,s),n)};var Gte=new m,Wte=new m,jte=new B;ua.clipToGLWindowCoordinates=function(e,t,n){return m.divideByScalar(t,t.w,Gte),B.computeViewportTransformation(e,0,1,jte),B.multiplyByPoint(jte,Gte,Wte),H.fromCartesian3(Wte,n)};ua.transformWindowToDrawingBuffer=function(e,t,n){let i=e.canvas,o=e.drawingBufferWidth/i.clientWidth,r=e.drawingBufferHeight/i.clientHeight;return H.fromElements(t.x*o,t.y*r,n)};var O3e=new re,Yte=new re;ua.drawingBufferToWgs84Coordinates=function(e,t,n,i){let r=e.context.uniformState,s=r.currentFrustum,a=s.x,c=s.y;if(e.frameState.useLogDepth){let g=n*r.log2FarDepthFromNearPlusOne,h=Math.pow(2,g)-1;n=c*(1-a/(h+a))/(c-a)}let u=e.view.passState.viewport,f=re.clone(re.UNIT_W,O3e);f.x=(t.x-u.x)/u.width*2-1,f.y=(t.y-u.y)/u.height*2-1,f.z=n*2-1,f.w=1;let d,p=e.camera.frustum;if(l(p.fovy)){d=B.multiplyByVector(r.inverseViewProjection,f,Yte);let g=1/d.w;m.multiplyByScalar(d,g,d)}else{let g=p.offCenterFrustum;l(g)&&(p=g),d=Yte,d.x=(f.x*(p.right-p.left)+p.left+p.right)*.5,d.y=(f.y*(p.top-p.bottom)+p.bottom+p.top)*.5,d.z=(f.z*(a-c)-a-c)*.5,d.w=1,d=B.multiplyByVector(r.inverseView,d,d)}return m.fromCartesian4(d,i)};var Qi=ua;var M3e={LEFT:-1,NONE:0,RIGHT:1},el=Object.freeze(M3e);var WC={};WC._deprecationWarning=$;var ep=Uint32Array.BYTES_PER_ELEMENT;WC.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=ep;let r=o.getUint32(t,!0);if(r!==1)throw new de(`Only Batched 3D Model version 1 is supported. Version ${r} is not.`);t+=ep;let s=o.getUint32(t,!0);t+=ep;let a=o.getUint32(t,!0);t+=ep;let c=o.getUint32(t,!0);t+=ep;let u=o.getUint32(t,!0);t+=ep;let f=o.getUint32(t,!0);t+=ep;let d;u>=570425344?(t-=ep*2,d=a,u=c,f=0,a=0,c=0,WC._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchLength] [batchTableByteLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel.")):f>=570425344&&(t-=ep,d=u,u=a,f=c,a=0,c=0,WC._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel."));let p;a===0?p={BATCH_LENGTH:y(d,0)}:(p=Po(i,t,a),t+=a);let g=new Uint8Array(e,t,c);t+=c;let h,A;u>0&&(h=Po(i,t,u),t+=u,f>0&&(A=new Uint8Array(e,t,f),A=new Uint8Array(A),t+=f));let x=n+s-t;if(x===0)throw new de("glTF byte length must be greater than 0.");let C;return t%4===0?C=new Uint8Array(e,t,x):(WC._deprecationWarning("b3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),C=new Uint8Array(i.subarray(t,t+x))),{batchLength:d,featureTableJson:p,featureTableBinary:g,batchTableJson:h,batchTableBinary:A,gltf:C}};var FB=WC;function mw(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function qte(e,t,n,i,o,r){let s=e._cachedTypedArrays,a=s[t];return l(a)||(a=X.createArrayBufferView(n,e.buffer.buffer,e.buffer.byteOffset+r,o*i),s[t]=a),a}function R3e(e,t,n,i){let o=e._cachedTypedArrays,r=o[t];return l(r)||(r=X.createTypedArray(n,i),o[t]=r),r}mw.prototype.getGlobalProperty=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(t=y(t,X.UNSIGNED_INT),n=y(n,1),qte(this,e,t,n,1,i.byteOffset)):i};mw.prototype.hasProperty=function(e){return l(this.json[e])};mw.prototype.getPropertyArray=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(l(i.componentType)&&(t=X.fromName(i.componentType)),qte(this,e,t,n,this.featuresLength,i.byteOffset)):R3e(this,e,t,i)};mw.prototype.getProperty=function(e,t,n,i,o){let r=this.json[e];if(!l(r))return;let s=this.getPropertyArray(e,t,n);if(n===1)return s[i];for(let a=0;a<n;++a)o[a]=s[n*i+a];return o};var Cm=mw;function hw(e){let t=e.count,n=e.batchTable,i=e.binaryBody,o=y(e.parseAsPropertyAttributes,!1),r=e.customAttributeOutput,s=B3e(n),a;l(s.jsonProperties)&&(a=new Y_({count:t,properties:s.jsonProperties}));let c;l(s.hierarchy)&&(c=new wC({extension:s.hierarchy,binaryBody:i}));let u=ym.BATCH_TABLE_CLASS_NAME,f=s.binaryProperties,d,p,g;if(o){let x=N3e(t,u,f,i,r);g=x.transcodedSchema,p=[new VC({propertyAttribute:x.propertyAttributeJson,class:x.transcodedClass})]}else{let x=L3e(t,u,f,i);g=x.transcodedSchema;let C=x.featureTableJson;d=new Ul({count:C.count,properties:C.properties,class:x.transcodedClass,bufferViews:x.bufferViewsTypedArrays}),p=[]}let h=[];if(l(d)||l(a)||l(c)){let x=new $c({id:0,name:"Batch Table",count:t,metadataTable:d,jsonMetadataTable:a,batchTableHierarchy:c});h.push(x)}let A={schema:g,propertyTables:h,propertyAttributes:p,extensions:s.extensions,extras:s.extras};return new Fa(A)}function B3e(e){let t=e.HIERARCHY,n=e.extras,i=e.extensions,o;l(t)?(hw._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),o=t):l(i)&&(o=i["3DTILES_batch_table_hierarchy"]);let r,s={};for(let a in e){if(!e.hasOwnProperty(a)||a==="HIERARCHY"||a==="extensions"||a==="extras")continue;let c=e[a];Array.isArray(c)?(r=l(r)?r:{},r[a]=c):s[a]=c}return{binaryProperties:s,jsonProperties:r,hierarchy:o,extras:n,extensions:i}}function L3e(e,t,n,i){let o={},r={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;if(!l(i))throw new de(`Property ${d} requires a batch table binary.`);let p=n[d],g=Bu(p);r[d]={bufferView:a},o[d]=Xte(p),s[a]=g.createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e),a++}let c={classes:{}};c.classes[t]={properties:o};let u=Am.fromJson(c);return{featureTableJson:{class:t,count:e,properties:r},bufferViewsTypedArrays:s,transcodedSchema:u,transcodedClass:u.classes[t]}}function N3e(e,t,n,i,o){let r={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;let p=n[d];if(!l(i)&&!l(p.typedArray))throw new de(`Property ${d} requires a batch table binary.`);let g=Qt.sanitizeGlslIdentifier(d);(g===""||r.hasOwnProperty(g))&&(g=`property_${a}`,a++);let h=Xte(p);h.name=d,r[g]=h;let A=g.toUpperCase();A.startsWith("_")||(A=`_${A}`);let x=p.typedArray;l(x)||(x=Bu(p).createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e));let C=new Nt.Attribute;C.name=A,C.count=e,C.type=p.type;let T=X.fromTypedArray(x);(T===X.INT||T===X.UNSIGNED_INT||T===X.DOUBLE)&&(hw._oneTimeWarning("Cast pnts property to floats",`Point cloud property "${A}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),x=new Float32Array(x)),C.componentDatatype=X.fromTypedArray(x),C.typedArray=x,o.push(C),s[g]={attribute:A}}let c={classes:{}};c.classes[t]={properties:r};let u=Am.fromJson(c);return{class:t,propertyAttributeJson:{properties:s},transcodedSchema:u,transcodedClass:u.classes[t]}}function Xte(e){let t=F3e(e.componentType);return{type:e.type,componentType:t}}function F3e(e){switch(e){case"BYTE":return"INT8";case"UNSIGNED_BYTE":return"UINT8";case"SHORT":return"INT16";case"UNSIGNED_SHORT":return"UINT16";case"INT":return"INT32";case"UNSIGNED_INT":return"UINT32";case"FLOAT":return"FLOAT32";case"DOUBLE":return"FLOAT64"}}hw._deprecationWarning=$;hw._oneTimeWarning=Mt;var K_=hw;var S0={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,FAILED:4},U3e=Nt.FeatureIdAttribute;function J_(e){e=y(e,y.EMPTY_OBJECT);let t=e.b3dmResource,n=e.baseResource,i=e.arrayBuffer,o=y(e.byteOffset,0),r=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,ho.Y),u=y(e.forwardAxis,ho.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadAttributesFor2D,!1),p=y(e.loadIndicesForWireframe,!1),g=y(e.loadPrimitiveOutline,!0),h=y(e.loadForClassification,!1);n=l(n)?n:t.clone(),this._b3dmResource=t,this._baseResource=n,this._arrayBuffer=i,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=u,this._loadAttributesAsTypedArray=f,this._loadAttributesFor2D=d,this._loadIndicesForWireframe=p,this._loadPrimitiveOutline=g,this._loadForClassification=h,this._state=S0.UNLOADED,this._promise=void 0,this._gltfLoader=void 0,this._batchLength=0,this._propertyTable=void 0,this._batchTable=void 0,this._components=void 0,this._transform=B.IDENTITY}l(Object.create)&&(J_.prototype=Object.create(io.prototype),J_.prototype.constructor=J_);Object.defineProperties(J_.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});J_.prototype.load=function(){if(l(this._promise))return this._promise;let e=FB.parse(this._arrayBuffer,this._byteOffset),t=e.batchLength,n=e.featureTableJson,i=e.featureTableBinary,o=e.batchTableJson,r=e.batchTableBinary,s=new Cm(n,i);t=s.getGlobalProperty("BATCH_LENGTH"),this._batchLength=t;let a=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(a)&&(this._transform=B.fromTranslation(m.fromArray(a))),this._batchTable={json:o,binary:r};let c=new Zh({typedArray:e.gltf,upAxis:this._upAxis,forwardAxis:this._forwardAxis,gltfResource:this._b3dmResource,baseResource:this._baseResource,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,loadAttributesFor2D:this._loadAttributesFor2D,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline,loadForClassification:this._loadForClassification,renameBatchIdSemantic:!0});this._gltfLoader=c,this._state=S0.LOADING;let u=this;return this._promise=c.load().then(function(){if(!u.isDestroyed())return u._state=S0.PROCESSING,u}).catch(function(f){if(!u.isDestroyed())return V3e(u,f)}),this._promise};function V3e(e,t){e.unload(),e._state=S0.FAILED;let n="Failed to load b3dm";return t=e.getError(n,t),Promise.reject(t)}J_.prototype.process=function(e){if(this._state===S0.READY)return!0;if(this._state!==S0.PROCESSING||!this._gltfLoader.process(e))return!1;let n=this._gltfLoader.components;return n.transform=B.multiplyTransformation(this._transform,n.transform,n.transform),k3e(this,n),this._components=n,this._arrayBuffer=void 0,this._state=S0.READY,!0};function k3e(e,t){let n=e._batchTable,i=e._batchLength;if(i===0)return;let o;if(l(n.json))o=K_({count:i,batchTable:n.json,binaryBody:n.binary});else{let a=new $c({name:ym.BATCH_TABLE_CLASS_NAME,count:i});o=new Fa({schema:{},propertyTables:[a]})}let r=t.scene.nodes,s=r.length;for(let a=0;a<s;a++)Kte(r[a]);t.structuralMetadata=o}function Kte(e){let t=e.children.length;for(let i=0;i<t;i++)Kte(e.children[i]);let n=e.primitives.length;for(let i=0;i<n;i++){let o=e.primitives[i],r=Qt.getAttributeBySemantic(o,bt.FEATURE_ID);if(l(r)){r.setIndex=0;let s=new U3e;s.propertyTableId=0,s.setIndex=0,s.positionalLabel="featureId_0",o.featureIds.push(s)}}}J_.prototype.unload=function(){l(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),this._components=void 0,this._arrayBuffer=void 0};var UB=J_;function Z_(e){e=y(e,y.EMPTY_OBJECT),this._geoJson=e.geoJson,this._components=void 0}l(Object.create)&&(Z_.prototype=Object.create(io.prototype),Z_.prototype.constructor=Z_);Object.defineProperties(Z_.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}}});Z_.prototype.load=function(){return Promise.resolve(this)};Z_.prototype.process=function(e){return l(this._components)||(this._components=$3e(this._geoJson,e),this._geoJson=void 0),!0};function z3e(){this.lines=void 0,this.points=void 0,this.properties=void 0}function H3e(){this.features=[]}function N5(e){let t=e[0],n=e[1],i=y(e[2],0);return new m(t,n,i)}function F5(e){let t=e.length,n=new Array(t);for(let o=0;o<t;o++)n[o]=N5(e[o]);return[n]}function G3e(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=F5(e[i])[0];return n}function Jte(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=F5(e[i])[0];return n}function W3e(e){let t=e.length,n=[];for(let i=0;i<t;i++)Array.prototype.push.apply(n,Jte(e[i]));return n}function j3e(e){return[N5(e)]}function Y3e(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=N5(e[i]);return n}var q3e={LineString:F5,MultiLineString:G3e,MultiPolygon:W3e,Polygon:Jte,MultiPoint:Y3e,Point:j3e},X3e={LineString:Le.LINES,MultiLineString:Le.LINES,MultiPolygon:Le.LINES,Polygon:Le.LINES,MultiPoint:Le.POINTS,Point:Le.POINTS};function Zte(e,t){if(!l(e.geometry))return;let n=e.geometry.type,i=q3e[n],o=X3e[n],r=e.geometry.coordinates;if(!l(i)||!l(r))return;let s=new z3e;o===Le.LINES?s.lines=i(r):o===Le.POINTS&&(s.points=i(r)),s.properties=e.properties,t.features.push(s)}function K3e(e,t){let n=e.features,i=n.length;for(let o=0;o<i;o++)Zte(n[o],t)}var J3e={FeatureCollection:K3e,Feature:Zte},VB=new m;function Z3e(e,t,n){let i=0,o=0,r=e.length;for(let L=0;L<r;L++){let N=e[L];if(l(N.lines)){let _=N.lines.length;for(let b=0;b<_;b++){let w=N.lines[b];i+=w.length,o+=(w.length-1)*2}}}let s=new Float32Array(i*3),a=new Float32Array(i),c=Ve.createTypedArray(i,o),u=Ve.fromTypedArray(c),f=new m(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),d=new m(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),p=0,g=0;for(let L=0;L<r;L++){let N=e[L];if(!l(N.lines))continue;let _=N.lines.length;for(let b=0;b<_;b++){let w=N.lines[b],I=w.length;for(let R=0;R<I;R++){let F=w[R],k=m.fromDegrees(F.x,F.y,F.z,oe.WGS84,VB),V=B.multiplyByPoint(t,k,VB);m.minimumByComponent(f,V,f),m.maximumByComponent(d,V,d),m.pack(V,s,p*3),a[p]=L,R<I-1&&(c[g*2]=p,c[g*2+1]=p+1,g++),p++}}}let h=mt.createVertexBuffer({typedArray:s,context:n.context,usage:Fe.STATIC_DRAW});h.vertexArrayDestroyable=!1;let A=mt.createVertexBuffer({typedArray:a,context:n.context,usage:Fe.STATIC_DRAW});A.vertexArrayDestroyable=!1;let x=mt.createIndexBuffer({typedArray:c,context:n.context,usage:Fe.STATIC_DRAW,indexDatatype:u});x.vertexArrayDestroyable=!1;let C=new Nt.Attribute;C.semantic=bt.POSITION,C.componentDatatype=X.FLOAT,C.type=an.VEC3,C.count=i,C.min=f,C.max=d,C.buffer=h;let T=new Nt.Attribute;T.semantic=bt.FEATURE_ID,T.setIndex=0,T.componentDatatype=X.FLOAT,T.type=an.SCALAR,T.count=i,T.buffer=A;let E=[C,T],S=new Nt.Material;S.unlit=!0;let v=new Nt.Indices;v.indexDatatype=u,v.count=c.length,v.buffer=x;let D=new Nt.FeatureIdAttribute;D.featureCount=r,D.propertyTableId=0,D.setIndex=0,D.positionalLabel="featureId_0";let O=[D],M=new Nt.Primitive;return M.attributes=E,M.indices=v,M.featureIds=O,M.primitiveType=Le.LINES,M.material=S,M}function Q3e(e,t,n){let i=0,o=e.length;for(let E=0;E<o;E++){let S=e[E];l(S.points)&&(i+=S.points.length)}let r=new Float32Array(i*3),s=new Float32Array(i),a=new m(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),c=new m(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),u=0;for(let E=0;E<o;E++){let S=e[E];if(!l(S.points))continue;let v=S.points.length;for(let D=0;D<v;D++){let O=S.points[D],M=m.fromDegrees(O.x,O.y,O.z,oe.WGS84,VB),L=B.multiplyByPoint(t,M,VB);m.minimumByComponent(a,L,a),m.maximumByComponent(c,L,c),m.pack(L,r,u*3),s[u]=E,u++}}let f=mt.createVertexBuffer({typedArray:r,context:n.context,usage:Fe.STATIC_DRAW});f.vertexArrayDestroyable=!1;let d=mt.createVertexBuffer({typedArray:s,context:n.context,usage:Fe.STATIC_DRAW});d.vertexArrayDestroyable=!1;let p=new Nt.Attribute;p.semantic=bt.POSITION,p.componentDatatype=X.FLOAT,p.type=an.VEC3,p.count=i,p.min=a,p.max=c,p.buffer=f;let g=new Nt.Attribute;g.semantic=bt.FEATURE_ID,g.setIndex=0,g.componentDatatype=X.FLOAT,g.type=an.SCALAR,g.count=i,g.buffer=d;let h=[p,g],A=new Nt.Material;A.unlit=!0;let x=new Nt.FeatureIdAttribute;x.featureCount=o,x.propertyTableId=0,x.setIndex=0,x.positionalLabel="featureId_0";let C=[x],T=new Nt.Primitive;return T.attributes=h,T.featureIds=C,T.primitiveType=Le.POINTS,T.material=A,T}function $3e(e,t){let n=new H3e,i=J3e[e.type];l(i)&&i(e,n);let o=n.features,r=o.length;if(r===0)throw new de("GeoJSON must have at least one feature");let s={};for(let L=0;L<r;L++){let N=o[L],_=y(N.properties,y.EMPTY_OBJECT);for(let b in _)_.hasOwnProperty(b)&&(l(s[b])||(s[b]=new Array(r)))}for(let L=0;L<r;L++){let N=o[L];for(let _ in s)if(s.hasOwnProperty(_)){let b=y(N.properties[_],"");s[_][L]=b}}let a=new Y_({count:r,properties:s}),u=[new $c({id:0,count:r,jsonMetadataTable:a})],f=Am.fromJson({}),d=new Fa({schema:f,propertyTables:u}),p=new m(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),g=new m(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),h=!1,A=!1;for(let L=0;L<r;L++){let N=o[L];if(l(N.lines)){h=!0;let _=N.lines.length;for(let b=0;b<_;b++){let w=N.lines[b],I=w.length;for(let R=0;R<I;R++)m.minimumByComponent(p,w[R],p),m.maximumByComponent(g,w[R],g)}}if(l(N.points)){A=!0;let _=N.points.length;for(let b=0;b<_;b++){let w=N.points[b];m.minimumByComponent(p,w,p),m.maximumByComponent(g,w,g)}}}let x=m.midpoint(p,g,new m),C=m.fromDegrees(x.x,x.y,x.z,oe.WGS84,new m),T=Rt.eastNorthUpToFixedFrame(C,oe.WGS84,new B),E=B.inverseTransformation(T,new B),S=[];h&&S.push(Z3e(o,E,t)),A&&S.push(Q3e(o,E,t));let v=new Nt.Node;v.index=0,v.primitives=S;let D=[v],O=new Nt.Scene;O.nodes=D;let M=new Nt.Components;return M.scene=O,M.nodes=D,M.transform=T,M.structuralMetadata=d,M}Z_.prototype.unload=function(){this._components=void 0};var kB=Z_;var zB={};zB._deprecationWarning=$;var Q_=Uint32Array.BYTES_PER_ELEMENT;zB.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=Q_;let r=o.getUint32(t,!0);if(r!==1)throw new de(`Only Instanced 3D Model version 1 is supported. Version ${r} is not.`);t+=Q_;let s=o.getUint32(t,!0);t+=Q_;let a=o.getUint32(t,!0);if(a===0)throw new de("featureTableJsonByteLength is zero, the feature table must be defined.");t+=Q_;let c=o.getUint32(t,!0);t+=Q_;let u=o.getUint32(t,!0);t+=Q_;let f=o.getUint32(t,!0);t+=Q_;let d=o.getUint32(t,!0);if(d!==1&&d!==0)throw new de(`Only glTF format 0 (uri) or 1 (embedded) are supported. Format ${d} is not.`);t+=Q_;let p=Po(i,t,a);t+=a;let g=new Uint8Array(e,t,c);t+=c;let h,A;u>0&&(h=Po(i,t,u),t+=u,f>0&&(A=new Uint8Array(e,t,f),A=new Uint8Array(A),t+=f));let x=n+s-t;if(x===0)throw new de("glTF byte length must be greater than 0.");let C;return t%4===0?C=new Uint8Array(e,t,x):(zB._deprecationWarning("i3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),C=new Uint8Array(i.subarray(t,t+x))),{gltfFormat:d,featureTableJson:p,featureTableBinary:g,batchTableJson:h,batchTableBinary:A,gltf:C}};var HB=zB;var tp={NOT_LOADED:0,LOADING:1,PROCESSING:2,POST_PROCESSING:3,READY:4,FAILED:5,UNLOADED:6},GB=Nt.Attribute,eUe=Nt.FeatureIdAttribute,$te=Nt.Instances;function np(e){e=y(e,y.EMPTY_OBJECT);let t=e.i3dmResource,n=e.arrayBuffer,i=e.baseResource,o=y(e.byteOffset,0),r=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,ho.Y),u=y(e.forwardAxis,ho.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0);i=l(i)?i:t.clone(),this._i3dmResource=t,this._baseResource=i,this._arrayBuffer=n,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=u,this._loadAttributesAsTypedArray=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._state=tp.NOT_LOADED,this._promise=void 0,this._gltfLoader=void 0,this._buffers=[],this._components=void 0,this._transform=B.IDENTITY,this._batchTable=void 0,this._featureTable=void 0,this._instancesLength=0}l(Object.create)&&(np.prototype=Object.create(io.prototype),np.prototype.constructor=np);Object.defineProperties(np.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});np.prototype.load=function(){if(l(this._promise))return this._promise;let e=HB.parse(this._arrayBuffer,this._byteOffset),t=e.featureTableJson,n=e.featureTableBinary,i=e.batchTableJson,o=e.batchTableBinary,r=e.gltfFormat,s=new Cm(t,n);this._featureTable=s;let a=s.getGlobalProperty("INSTANCES_LENGTH");if(s.featuresLength=a,!l(a))throw new de("Feature table global property: INSTANCES_LENGTH must be defined");this._instancesLength=a;let c=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(c)&&(this._transform=B.fromTranslation(m.fromArray(c))),this._batchTable={json:i,binary:o};let u={upAxis:this._upAxis,forwardAxis:this._forwardAxis,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline};if(r===0){let d=Ll(e.gltf);d=d.replace(/[\s\0]+$/,"");let p=this._baseResource.getDerivedResource({url:d});u.gltfResource=p,u.baseResource=p}else u.gltfResource=this._i3dmResource,u.typedArray=e.gltf;let f=new Zh(u);return this._gltfLoader=f,this._state=tp.LOADING,this._promise=f.load().then(()=>{if(!this.isDestroyed())return this._state=tp.PROCESSING,this}).catch(d=>{if(!this.isDestroyed())throw tUe(this,d)}),this._promise};function tUe(e,t){e.unload(),e._state=tp.FAILED;let n="Failed to load i3dm";return e.getError(n,t)}np.prototype.process=function(e){if(this._state===tp.READY)return!0;let t=this._gltfLoader,n=!1;if(this._state===tp.PROCESSING&&(n=t.process(e)),!n)return!1;let i=t.components;return i.transform=B.multiplyTransformation(this._transform,i.transform,i.transform),oUe(this,i,e),nUe(this,i),this._components=i,this._arrayBuffer=void 0,this._state=tp.READY,!0};function nUe(e,t){let n=e._batchTable,i=e._instancesLength;if(i===0)return;let o;if(l(n.json))o=K_({count:i,batchTable:n.json,binaryBody:n.binary});else{let r=new $c({name:ym.BATCH_TABLE_CLASS_NAME,count:i});o=new Fa({schema:{},propertyTables:[r]})}t.structuralMetadata=o}var WB=new m,U5=new Array(4),iUe=new B;function oUe(e,t,n){let i,o=e._featureTable,r=e._instancesLength;if(r===0)return;let s=o.getGlobalProperty("RTC_CENTER",X.FLOAT,3),a=o.getGlobalProperty("EAST_NORTH_UP"),c=o.hasProperty("NORMAL_UP")||o.hasProperty("NORMAL_UP_OCT32P")||a,u=o.hasProperty("SCALE")||o.hasProperty("SCALE_NON_UNIFORM"),f=sUe(o,r),d;c&&(d=new Float32Array(4*r));let p;u&&(p=new Float32Array(3*r));let g=new Float32Array(r),h=m.unpackArray(f),A=new m,x=new m,C=new m,T=new m,E=new Z,S=new Ne,v=new Array(4),D=new m,O=new Array(3),M=new B;if(!l(s)){let V=ae.fromPoints(h);for(i=0;i<h.length;i++)m.subtract(h[i],V.center,WB),f[3*i+0]=WB.x,f[3*i+1]=WB.y,f[3*i+2]=WB.z;let G=B.fromTranslation(V.center,iUe);t.transform=B.multiplyTransformation(G,t.transform,t.transform)}for(i=0;i<r;i++){A=m.clone(h[i]),l(s)&&m.add(A,m.unpack(s),A),c&&(aUe(o,a,i,S,A,C,x,T,E,M),Ne.pack(S,v,0),d[4*i+0]=v[0],d[4*i+1]=v[1],d[4*i+2]=v[2],d[4*i+3]=v[3]),u&&(cUe(o,i,D),m.pack(D,O,0),p[3*i+0]=O[0],p[3*i+1]=O[1],p[3*i+2]=O[2]);let V=o.getProperty("BATCH_ID",X.UNSIGNED_SHORT,1,i);l(V)||(V=i),g[i]=V}let L=new $te;L.transformInWorldSpace=!0;let N=e._buffers,_=new GB;if(_.name="Instance Translation",_.semantic=Yr.TRANSLATION,_.componentDatatype=X.FLOAT,_.type=an.VEC3,_.count=r,_.typedArray=f,!c){let V=mt.createVertexBuffer({context:n.context,typedArray:f,usage:Fe.STATIC_DRAW});V.vertexArrayDestroyable=!1,N.push(V),_.buffer=V}if(L.attributes.push(_),c){let V=new GB;V.name="Instance Rotation",V.semantic=Yr.ROTATION,V.componentDatatype=X.FLOAT,V.type=an.VEC4,V.count=r,V.typedArray=d,L.attributes.push(V)}if(u){let V=new GB;if(V.name="Instance Scale",V.semantic=Yr.SCALE,V.componentDatatype=X.FLOAT,V.type=an.VEC3,V.count=r,c)V.typedArray=p;else{let G=mt.createVertexBuffer({context:n.context,typedArray:p,usage:Fe.STATIC_DRAW});G.vertexArrayDestroyable=!1,N.push(G),V.buffer=G}L.attributes.push(V)}let b=new GB;b.name="Instance Feature ID",b.setIndex=0,b.semantic=Yr.FEATURE_ID,b.componentDatatype=X.FLOAT,b.type=an.SCALAR,b.count=r;let w=mt.createVertexBuffer({context:n.context,typedArray:g,usage:Fe.STATIC_DRAW});w.vertexArrayDestroyable=!1,N.push(w),b.buffer=w,L.attributes.push(b);let I=new eUe;I.propertyTableId=0,I.setIndex=0,I.positionalLabel="instanceFeatureId_0",L.featureIds.push(I);let R=t.nodes,F=R.length,k=!1;for(i=0;i<F;i++){let V=R[i];V.primitives.length>0&&(V.instances=k?rUe(L):L,k=!0)}}function rUe(e){let t=new $te;t.transformInWorldSpace=e.transformInWorldSpace;let n=e.attributes,i=n.length;for(let o=0;o<i;o++){let r=Ye(n[o],!1);t.attributes.push(r)}return t.featureIds=e.featureIds,t}function sUe(e,t){if(e.hasProperty("POSITION"))return e.getPropertyArray("POSITION",X.FLOAT,3);if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3),i=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!l(i))throw new de("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let o=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!l(o))throw new de("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let r=new Float32Array(n.length);for(let s=0;s<n.length/3;s++)for(let a=0;a<3;a++){let c=3*s+a;r[c]=n[c]/65535*o[a]+i[a]}return r}else throw new de("Either POSITION or POSITION_QUANTIZED must be defined for each instance.")}var Qte=new Array(4);function aUe(e,t,n,i,o,r,s,a,c,u){let f=e.getProperty("NORMAL_UP",X.FLOAT,3,n,U5),d=e.getProperty("NORMAL_RIGHT",X.FLOAT,3,n,Qte),p=!1;if(l(f)){if(!l(d))throw new de("To define a custom orientation, both NORMAL_UP and NORMAL_RIGHT must be defined.");m.unpack(f,0,r),m.unpack(d,0,s),p=!0}else{let g=e.getProperty("NORMAL_UP_OCT32P",X.UNSIGNED_SHORT,2,n,U5),h=e.getProperty("NORMAL_RIGHT_OCT32P",X.UNSIGNED_SHORT,2,n,Qte);if(l(g)){if(!l(h))throw new de("To define a custom orientation with oct-encoded vectors, both NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P must be defined.");qn.octDecodeInRange(g[0],g[1],65535,r),qn.octDecodeInRange(h[0],h[1],65535,s),p=!0}else t?(Rt.eastNorthUpToFixedFrame(o,oe.WGS84,u),B.getMatrix3(u,c)):Z.clone(Z.IDENTITY,c)}p&&(m.cross(s,r,a),m.normalize(a,a),Z.setColumn(c,0,s,c),Z.setColumn(c,1,r,c),Z.setColumn(c,2,a,c)),Ne.fromRotationMatrix(c,i)}function cUe(e,t,n){n=m.fromElements(1,1,1,n);let i=e.getProperty("SCALE",X.FLOAT,1,t);l(i)&&m.multiplyByScalar(n,i,n);let o=e.getProperty("SCALE_NON_UNIFORM",X.FLOAT,3,t,U5);l(o)&&(n.x*=o[0],n.y*=o[1],n.z*=o[2])}function lUe(e){let t=e._buffers,n=t.length;for(let i=0;i<n;i++){let o=t[i];o.isDestroyed()||o.destroy()}t.length=0}np.prototype.isUnloaded=function(){return this._state===tp.UNLOADED};np.prototype.unload=function(){l(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),lUe(this),this._components=void 0,this._arrayBuffer=void 0,this._state=tp.UNLOADED};var jB=np;var uUe={STOPPED:0,ANIMATING:1},Tm=Object.freeze(uUe);function jC(){this.times=void 0,this.points=void 0,fe.throwInstantiationError()}jC.getPointType=function(e){if(typeof e=="number")return Number;if(e instanceof m)return m;if(e instanceof Ne)return Ne};jC.prototype.evaluate=fe.throwInstantiationError;jC.prototype.findTimeInterval=function(e,t){let n=this.times,i=n.length;if(t=y(t,0),e>=n[t]){if(t+1<i&&e<n[t+1])return t;if(t+2<i&&e<n[t+2])return t+1}else if(t-1>=0&&e>=n[t-1])return t-1;let o;if(e>n[t])for(o=t;o<i-1&&!(e>=n[o]&&e<n[o+1]);++o);else for(o=t-1;o>=0&&!(e>=n[o]&&e<n[o+1]);--o);return o===i-1&&(o=i-2),o};jC.prototype.wrapTime=function(e){let t=this.times,n=t[t.length-1],i=t[0],o=n-i,r;return e<i&&(r=Math.floor((i-e)/o)+1,e+=r*o),e>n&&(r=Math.floor((e-n)/o)+1,e-=r*o),e};jC.prototype.clampTime=function(e){let t=this.times;return P.clamp(e,t[0],t[t.length-1])};var oo=jC;function YC(e){this._value=e,this._valueType=oo.getPointType(e)}Object.defineProperties(YC.prototype,{value:{get:function(){return this._value}}});YC.prototype.findTimeInterval=function(e){};YC.prototype.wrapTime=function(e){return 0};YC.prototype.clampTime=function(e){return 0};YC.prototype.evaluate=function(e,t){let n=this._value,i=this._valueType;return i===Number?n:i.clone(n,t)};var YB=YC;function qC(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=oo.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(qC.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});qC.prototype.findTimeInterval=oo.prototype.findTimeInterval;qC.prototype.wrapTime=oo.prototype.wrapTime;qC.prototype.clampTime=oo.prototype.clampTime;qC.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);return this._pointType===Number?(1-r)*n[o]+r*n[o+1]:(l(t)||(t=new m),m.lerp(n[o],n[o+1],r,t))};var w0=qC;var ene={};ene.solve=function(e,t,n,i){let o=new Array(n.length),r=new Array(i.length),s=new Array(i.length),a;for(a=0;a<r.length;a++)r[a]=new m,s[a]=new m;o[0]=n[0]/t[0],r[0]=m.multiplyByScalar(i[0],1/t[0],r[0]);let c;for(a=1;a<o.length;++a)c=1/(t[a]-o[a-1]*e[a-1]),o[a]=n[a]*c,r[a]=m.subtract(i[a],m.multiplyByScalar(r[a-1],e[a-1],r[a]),r[a]),r[a]=m.multiplyByScalar(r[a],c,r[a]);for(c=1/(t[a]-o[a-1]*e[a-1]),r[a]=m.subtract(i[a],m.multiplyByScalar(r[a-1],e[a-1],r[a]),r[a]),r[a]=m.multiplyByScalar(r[a],c,r[a]),s[s.length-1]=r[r.length-1],a=s.length-2;a>=0;--a)s[a]=m.subtract(r[a],m.multiplyByScalar(s[a+1],o[a],s[a]),s[a]);return s};var pw=ene;var tne=[],nne=[],ine=[],one=[];function fUe(e,t,n){let i=tne,o=ine,r=nne,s=one;i.length=o.length=e.length-1,r.length=s.length=e.length;let a;i[0]=r[0]=1,o[0]=0;let c=s[0];for(l(c)||(c=s[0]=new m),m.clone(t,c),a=1;a<i.length-1;++a)i[a]=o[a]=1,r[a]=4,c=s[a],l(c)||(c=s[a]=new m),m.subtract(e[a+1],e[a-1],c),m.multiplyByScalar(c,3,c);return i[a]=0,o[a]=1,r[a]=4,c=s[a],l(c)||(c=s[a]=new m),m.subtract(e[a+1],e[a-1],c),m.multiplyByScalar(c,3,c),r[a+1]=1,c=s[a+1],l(c)||(c=s[a+1]=new m),m.clone(n,c),pw.solve(i,r,o,s)}function dUe(e){let t=tne,n=ine,i=nne,o=one;t.length=n.length=e.length-1,i.length=o.length=e.length;let r;t[0]=n[0]=1,i[0]=2;let s=o[0];for(l(s)||(s=o[0]=new m),m.subtract(e[1],e[0],s),m.multiplyByScalar(s,3,s),r=1;r<t.length;++r)t[r]=n[r]=1,i[r]=4,s=o[r],l(s)||(s=o[r]=new m),m.subtract(e[r+1],e[r-1],s),m.multiplyByScalar(s,3,s);return i[r]=2,s=o[r],l(s)||(s=o[r]=new m),m.subtract(e[r],e[r-1],s),m.multiplyByScalar(s,3,s),pw.solve(t,i,n,o)}function tl(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.inTangents,o=e.outTangents;this._times=n,this._points=t,this._pointType=oo.getPointType(t[0]),this._inTangents=i,this._outTangents=o,this._lastTimeIndex=0}Object.defineProperties(tl.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},inTangents:{get:function(){return this._inTangents}},outTangents:{get:function(){return this._outTangents}}});tl.createC1=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points,i=e.tangents,o=i.slice(0,i.length-1),r=i.slice(1,i.length);return new tl({times:t,points:n,inTangents:r,outTangents:o})};tl.createNaturalCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points;if(n.length<3)return new w0({points:n,times:t});let i=dUe(n),o=i.slice(0,i.length-1),r=i.slice(1,i.length);return new tl({times:t,points:n,inTangents:r,outTangents:o})};tl.createClampedCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points,i=e.firstTangent,o=e.lastTangent,r=oo.getPointType(n[0]);if(n.length<3)return new w0({points:n,times:t});let s=fUe(n,i,o),a=s.slice(0,s.length-1),c=s.slice(1,s.length);return new tl({times:t,points:n,inTangents:c,outTangents:a})};tl.hermiteCoefficientMatrix=new B(2,-3,0,1,-2,3,0,0,1,-2,1,0,1,-1,0,0);tl.prototype.findTimeInterval=oo.prototype.findTimeInterval;var mUe=new re,XC=new m;tl.prototype.wrapTime=oo.prototype.wrapTime;tl.prototype.clampTime=oo.prototype.clampTime;tl.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this.inTangents,r=this.outTangents;this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex);let s=this._lastTimeIndex,a=i[s+1]-i[s],c=(e-i[s])/a,u=mUe;u.z=c,u.y=c*c,u.x=u.y*c,u.w=1;let f=B.multiplyByVector(tl.hermiteCoefficientMatrix,u,u);f.z*=a,f.w*=a;let d=this._pointType;return d===Number?n[s]*f.x+n[s+1]*f.y+r[s]*f.z+o[s]*f.w:(l(t)||(t=new d),t=d.multiplyByScalar(n[s],f.x,t),d.multiplyByScalar(n[s+1],f.y,XC),d.add(t,XC,t),d.multiplyByScalar(r[s],f.z,XC),d.add(t,XC,t),d.multiplyByScalar(o[s],f.w,XC),d.add(t,XC,t))};var v0=tl;function KC(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=oo.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(KC.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});KC.prototype.findTimeInterval=oo.prototype.findTimeInterval;KC.prototype.wrapTime=oo.prototype.wrapTime;KC.prototype.clampTime=oo.prototype.clampTime;KC.prototype.evaluate=function(e,t){let n=this.points;this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex);let i=this._lastTimeIndex,o=this._pointType;return o===Number?n[i]:(l(t)||(t=new o),o.clone(n[i],t))};var qB=KC;function hUe(e){let t=e.points,n=e.times;return function(i,o){l(o)||(o=new Ne);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=t[r],c=t[r+1];return Ne.fastSlerp(a,c,s,o)}}function JC(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._evaluateFunction=hUe(this),this._lastTimeIndex=0}Object.defineProperties(JC.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});JC.prototype.findTimeInterval=oo.prototype.findTimeInterval;JC.prototype.wrapTime=oo.prototype.wrapTime;JC.prototype.clampTime=oo.prototype.clampTime;JC.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var XB=JC;var D0=Nt.AnimatedPropertyType;function k5(e){e=y(e,y.EMPTY_OBJECT);let t=e.channel,n=e.runtimeAnimation,i=e.runtimeNode;this._channel=t,this._runtimeAnimation=n,this._runtimeNode=i,this._splines=[],this._path=void 0,gUe(this)}Object.defineProperties(k5.prototype,{channel:{get:function(){return this._channel}},runtimeAnimation:{get:function(){return this._runtimeAnimation}},runtimeNode:{get:function(){return this._runtimeNode}},splines:{get:function(){return this._splines}}});function pUe(e,t){let n=[],i=[],o=[],r=t.length;for(let s=0;s<r;s+=3)i.push(t[s]),n.push(t[s+1]),o.push(t[s+2]);return i.splice(0,1),o.length=o.length-1,new v0({times:e,points:n,inTangents:i,outTangents:o})}function rne(e,t,n,i){if(e.length===1&&t.length===1)return new YB(t[0]);switch(n){case xm.STEP:return new qB({times:e,points:t});case xm.CUBICSPLINE:return pUe(e,t);case xm.LINEAR:return i===D0.ROTATION?new XB({times:e,points:t}):new w0({times:e,points:t})}}function _Ue(e,t,n,i,o){let r=[];if(i===D0.WEIGHTS){let a=t.length/o,c,u;for(c=0;c<o;c++){let f=new Array(a),d=c;if(n===xm.CUBICSPLINE)for(u=0;u<a;u+=3)f[u]=t[d],f[u+1]=t[d+o],f[u+2]=t[d+2*o],d+=o*3;else for(u=0;u<a;u++)f[u]=t[d],d+=o;r.push(rne(e,f,n,i))}}else r.push(rne(e,t,n,i));return r}var V5;function gUe(e){let t=e._channel,n=t.sampler,i=n.input,o=n.output,r=n.interpolation,a=t.target.path,c=e._runtimeNode,u=l(c.morphWeights)?c.morphWeights.length:1,f=_Ue(i,o,r,a,u);switch(e._splines=f,e._path=a,a){case D0.TRANSLATION:case D0.SCALE:V5=new m;break;case D0.ROTATION:V5=new Ne;break;case D0.WEIGHTS:break}}k5.prototype.animate=function(e){let t=this._splines,n=this._path,i=this._runtimeAnimation.model,o=this._runtimeNode;if(n===D0.WEIGHTS){let r=o.morphWeights,s=r.length;for(let a=0;a<s;a++){let c=t[a],u=i.clampAnimations?c.clampTime(e):c.wrapTime(e);r[a]=c.evaluate(u)}}else{if(o.userAnimated)return;{let r=t[0],s=i.clampAnimations?r.clampTime(e):r.wrapTime(e);o[n]=r.evaluate(s,V5)}}};var KB=k5;function z5(e,t,n){this._animation=t,this._name=t.name,this._runtimeChannels=void 0,this._startTime=ee.clone(n.startTime),this._delay=y(n.delay,0),this._stopTime=ee.clone(n.stopTime),this.removeOnStop=y(n.removeOnStop,!1),this._multiplier=y(n.multiplier,1),this._reverse=y(n.reverse,!1),this._loop=y(n.loop,Hl.NONE),this._animationTime=n.animationTime,this._prevAnimationDelta=void 0,this.start=new ge,this.update=new ge,this.stop=new ge,this._state=Tm.STOPPED,this._computedStartTime=void 0,this._duration=void 0;let i=this;this._raiseStartEvent=function(){i.start.raiseEvent(e,i)},this._updateEventTime=0,this._raiseUpdateEvent=function(){i.update.raiseEvent(e,i,i._updateEventTime)},this._raiseStopEvent=function(){i.stop.raiseEvent(e,i)},this._model=e,this._localStartTime=void 0,this._localStopTime=void 0,yUe(this)}Object.defineProperties(z5.prototype,{animation:{get:function(){return this._animation}},name:{get:function(){return this._name}},runtimeChannels:{get:function(){return this._runtimeChannels}},model:{get:function(){return this._model}},localStartTime:{get:function(){return this._localStartTime}},localStopTime:{get:function(){return this._localStopTime}},startTime:{get:function(){return this._startTime}},delay:{get:function(){return this._delay}},stopTime:{get:function(){return this._stopTime}},multiplier:{get:function(){return this._multiplier}},reverse:{get:function(){return this._reverse}},loop:{get:function(){return this._loop}},animationTime:{get:function(){return this._animationTime}}});function yUe(e){let t=Number.MAX_VALUE,n=-Number.MAX_VALUE,i=e._model.sceneGraph,r=e._animation.channels,s=r.length,a=[];for(let c=0;c<s;c++){let u=r[c],f=u.target;if(!l(f))continue;let d=f.node.index,p=i._runtimeNodes[d],g=new KB({channel:u,runtimeAnimation:e,runtimeNode:p}),h=u.sampler.input;t=Math.min(t,h[0]),n=Math.max(n,h[h.length-1]),a.push(g)}e._runtimeChannels=a,e._localStartTime=t,e._localStopTime=n}z5.prototype.animate=function(e){let t=this._runtimeChannels,n=t.length;for(let i=0;i<n;i++)t[i].animate(e)};var JB=z5;function ip(e){this.animationAdded=new ge,this.animationRemoved=new ge,this.animateWhilePaused=!1,this._model=e,this._runtimeAnimations=[],this._previousTime=void 0}Object.defineProperties(ip.prototype,{length:{get:function(){return this._runtimeAnimations.length}},model:{get:function(){return this._model}}});function H5(e,t,n){let i=e._model,o=new JB(i,t,n);return e._runtimeAnimations.push(o),e.animationAdded.raiseEvent(i,o),o}ip.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=e.index;if(l(i))return H5(this,n[i],e);let o=n.length;for(let r=0;r<o;++r)if(n[r].name===e.name){i=r;break}return H5(this,n[i],e)};ip.prototype.addAll=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=[],o=n.length;for(let r=0;r<o;++r){let s=H5(this,n[r],e);i.push(s)}return i};ip.prototype.remove=function(e){if(!l(e))return!1;let t=this._runtimeAnimations,n=t.indexOf(e);return n!==-1?(t.splice(n,1),this.animationRemoved.raiseEvent(this._model,e),!0):!1};ip.prototype.removeAll=function(){let e=this._model,t=this._runtimeAnimations,n=t.length;this._runtimeAnimations.length=0;for(let i=0;i<n;++i)this.animationRemoved.raiseEvent(e,t[i])};ip.prototype.contains=function(e){return l(e)?this._runtimeAnimations.indexOf(e)!==-1:!1};ip.prototype.get=function(e){return this._runtimeAnimations[e]};var ZB=[];function AUe(e,t,n){return function(){e.animationRemoved.raiseEvent(t,n)}}ip.prototype.update=function(e){let t=this._runtimeAnimations,n=t.length;if(n===0)return this._previousTime=void 0,!1;if(!this.animateWhilePaused&&ee.equals(e.time,this._previousTime))return!1;this._previousTime=ee.clone(e.time,this._previousTime);let i=!1,o=e.time,r=this._model;for(let s=0;s<n;++s){let a=t[s];l(a._computedStartTime)||(a._computedStartTime=ee.addSeconds(y(a.startTime,o),a.delay,new ee)),l(a._duration)||(a._duration=a.localStopTime*(1/a.multiplier));let c=a._computedStartTime,u=a._duration,f=a.stopTime,d=ee.lessThanOrEquals(c,o),p=l(f)&&ee.greaterThan(o,f),g=0;if(u!==0){let x=ee.secondsDifference(p?f:o,c);g=l(a._animationTime)?a._animationTime(u,x):x/u}let h=a.loop===Hl.REPEAT||a.loop===Hl.MIRRORED_REPEAT,A=(d||h&&!l(a.startTime))&&(g<=1||h)&&!p;if(g===a._prevAnimationDelta){let x=a._state===Tm.STOPPED;if(A!==x)continue}if(a._prevAnimationDelta=g,A||a._state===Tm.ANIMATING){if(A&&a._state===Tm.STOPPED&&(a._state=Tm.ANIMATING,a.start.numberOfListeners>0&&e.afterRender.push(a._raiseStartEvent)),a.loop===Hl.REPEAT)g=g-Math.floor(g);else if(a.loop===Hl.MIRRORED_REPEAT){let C=Math.floor(g),T=g-C;g=C%2===1?1-T:T}a.reverse&&(g=1-g);let x=g*u*a.multiplier;x=P.clamp(x,a.localStartTime,a.localStopTime),a.animate(x),a.update.numberOfListeners>0&&(a._updateEventTime=x,e.afterRender.push(a._raiseUpdateEvent)),i=!0,A||(a._state=Tm.STOPPED,a.stop.numberOfListeners>0&&e.afterRender.push(a._raiseStopEvent),a.removeOnStop&&ZB.push(a))}}n=ZB.length;for(let s=0;s<n;++s){let a=ZB[s];t.splice(t.indexOf(a),1),e.afterRender.push(AUe(this,r,a))}return ZB.length=0,i};var QB=ip;function I0(e){this._model=e.model,this._featureTable=e.featureTable,this._featureId=e.featureId,this._color=void 0}Object.defineProperties(I0.prototype,{show:{get:function(){return this._featureTable.getShow(this._featureId)},set:function(e){this._featureTable.setShow(this._featureId,e)}},color:{get:function(){return l(this._color)||(this._color=new z),this._featureTable.getColor(this._featureId,this._color)},set:function(e){this._featureTable.setColor(this._featureId,e)}},primitive:{get:function(){return this._model}},featureTable:{get:function(){return this._featureTable}},featureId:{get:function(){return this._featureId}}});I0.prototype.hasProperty=function(e){return this._featureTable.hasProperty(this._featureId,e)};I0.prototype.getProperty=function(e){return this._featureTable.getProperty(this._featureId,e)};I0.prototype.getPropertyInherited=function(e){return this._featureTable.hasPropertyBySemantic(this._featureId,e)?this._featureTable.getPropertyBySemantic(this._featureId,e):this._featureTable.getProperty(this._featureId,e)};I0.prototype.getPropertyIds=function(e){return this._featureTable.getPropertyIds(e)};I0.prototype.setProperty=function(e,t){return this._featureTable.setProperty(this._featureId,e,t)};var $B=I0;var _w={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};_w.getStyleCommandsNeeded=function(e,t){return t===0?_w.ALL_OPAQUE:t===e?_w.ALL_TRANSLUCENT:_w.OPAQUE_AND_TRANSLUCENT};var Em=Object.freeze(_w);var $_={GLTF:"GLTF",TILE_GLTF:"TILE_GLTF",TILE_B3DM:"B3DM",TILE_I3DM:"I3DM",TILE_PNTS:"PNTS",TILE_GEOJSON:"TILE_GEOJSON"};$_.is3DTiles=function(e){switch(e){case $_.TILE_GLTF:case $_.TILE_B3DM:case $_.TILE_I3DM:case $_.TILE_PNTS:case $_.TILE_GEOJSON:return!0;case $_.GLTF:return!1}};var Vo=Object.freeze($_);function Cr(e){let t=e.model,n=e.propertyTable;this._propertyTable=n,this._model=t,this._features=void 0,this._featuresLength=0,this._batchTexture=void 0,this._styleCommandsNeededDirty=!1,this._styleCommandsNeeded=Em.ALL_OPAQUE,xUe(this)}Object.defineProperties(Cr.prototype,{batchTexture:{get:function(){return this._batchTexture}},featuresLength:{get:function(){return this._featuresLength}},batchTextureByteLength:{get:function(){return l(this._batchTexture)?this._batchTexture.byteLength:0}},styleCommandsNeededDirty:{get:function(){return this._styleCommandsNeededDirty}}});function xUe(e){let t=e._model,n=Vo.is3DTiles(t.type),i=e._propertyTable.count;if(i===0)return;let o,r=new Array(i);if(n){let s=t.content;for(o=0;o<i;o++)r[o]=new Bs(s,o)}else for(o=0;o<i;o++)r[o]=new $B({model:t,featureId:o,featureTable:e});e._features=r,e._featuresLength=i,e._batchTexture=new Zc({featuresLength:i,owner:e,statistics:n?t.content.tileset.statistics:void 0})}Cr.prototype.update=function(e){this._styleCommandsNeededDirty=!1,this._batchTexture.update(void 0,e);let t=Em.getStyleCommandsNeeded(this._featuresLength,this._batchTexture.translucentFeaturesLength);this._styleCommandsNeeded!==t&&(this._styleCommandsNeededDirty=!0,this._styleCommandsNeeded=t)};Cr.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};Cr.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};Cr.prototype.getShow=function(e){return this._batchTexture.getShow(e)};Cr.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};Cr.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};Cr.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};Cr.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};Cr.prototype.getFeature=function(e){return this._features[e]};Cr.prototype.hasProperty=function(e,t){return this._propertyTable.hasProperty(e,t)};Cr.prototype.hasPropertyBySemantic=function(e,t){return this._propertyTable.hasPropertyBySemantic(e,t)};Cr.prototype.getProperty=function(e,t){return this._propertyTable.getProperty(e,t)};Cr.prototype.getPropertyBySemantic=function(e,t){return this._propertyTable.getPropertyBySemantic(e,t)};Cr.prototype.getPropertyIds=function(e){return this._propertyTable.getPropertyIds(e)};Cr.prototype.setProperty=function(e,t,n){return this._propertyTable.setProperty(e,t,n)};Cr.prototype.isClass=function(e,t){return this._propertyTable.isClass(e,t)};Cr.prototype.isExactClass=function(e,t){return this._propertyTable.isExactClass(e,t)};Cr.prototype.getExactClassName=function(e){return this._propertyTable.getExactClassName(e)};var CUe=new z;Cr.prototype.applyStyle=function(e){if(!l(e)){this.setAllColor(Zc.DEFAULT_COLOR_VALUE),this.setAllShow(Zc.DEFAULT_SHOW_VALUE);return}for(let t=0;t<this._featuresLength;t++){let n=this.getFeature(t),i=l(e.color)?y(e.color.evaluateColor(n,CUe),Zc.DEFAULT_COLOR_VALUE):Zc.DEFAULT_COLOR_VALUE,o=l(e.show)?y(e.show.evaluate(n),Zc.DEFAULT_SHOW_VALUE):Zc.DEFAULT_SHOW_VALUE;this.setColor(t,i),this.setShow(t,o)}};Cr.prototype.isDestroyed=function(){return!1};Cr.prototype.destroy=function(e){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var eL=Cr;var tL=`#if defined(HAS_NORMALS) && !defined(HAS_TANGENTS) && !defined(LIGHTING_UNLIT) + #ifdef GL_OES_standard_derivatives + #extension GL_OES_standard_derivatives : enable + #endif +#endif + +czm_modelMaterial defaultModelMaterial() +{ + czm_modelMaterial material; + material.diffuse = vec3(0.0); + material.specular = vec3(1.0); + material.roughness = 1.0; + material.occlusion = 1.0; + material.normalEC = vec3(0.0, 0.0, 1.0); + material.emissive = vec3(0.0); + material.alpha = 1.0; + return material; +} + +vec4 handleAlpha(vec3 color, float alpha) +{ + #ifdef ALPHA_MODE_MASK + if (alpha < u_alphaCutoff) { + discard; + } + #endif + + return vec4(color, alpha); +} + +SelectedFeature selectedFeature; + +void main() +{ + #ifdef HAS_MODEL_SPLITTER + modelSplitterStage(); + #endif + + czm_modelMaterial material = defaultModelMaterial(); + + ProcessedAttributes attributes; + geometryStage(attributes); + + FeatureIds featureIds; + featureIdStage(featureIds, attributes); + + Metadata metadata; + MetadataClass metadataClass; + MetadataStatistics metadataStatistics; + metadataStage(metadata, metadataClass, metadataStatistics, attributes); + + #ifdef HAS_SELECTED_FEATURE_ID + selectedFeatureIdStage(selectedFeature, featureIds); + #endif + + #ifndef CUSTOM_SHADER_REPLACE_MATERIAL + materialStage(material, attributes, selectedFeature); + #endif + + #ifdef HAS_CUSTOM_FRAGMENT_SHADER + customShaderStage(material, attributes, featureIds, metadata, metadataClass, metadataStatistics); + #endif + + lightingStage(material, attributes); + + #ifdef HAS_SELECTED_FEATURE_ID + cpuStylingStage(material, selectedFeature); + #endif + + #ifdef HAS_MODEL_COLOR + modelColorStage(material); + #endif + + #ifdef HAS_PRIMITIVE_OUTLINE + primitiveOutlineStage(material); + #endif + + vec4 color = handleAlpha(material.diffuse, material.alpha); + + #ifdef HAS_CLIPPING_PLANES + modelClippingPlanesStage(color); + #endif + + #if defined(HAS_SILHOUETTE) && defined(HAS_NORMALS) + silhouetteStage(color); + #endif + + out_FragColor = color; +} +`;var nL=`precision highp float; + +czm_modelVertexOutput defaultVertexOutput(vec3 positionMC) { + czm_modelVertexOutput vsOutput; + vsOutput.positionMC = positionMC; + vsOutput.pointSize = 1.0; + return vsOutput; +} + +void main() +{ + // Initialize the attributes struct with all + // attributes except quantized ones. + ProcessedAttributes attributes; + initializeAttributes(attributes); + + // Dequantize the quantized ones and add them to the + // attributes struct. + #ifdef USE_DEQUANTIZATION + dequantizationStage(attributes); + #endif + + #ifdef HAS_MORPH_TARGETS + morphTargetsStage(attributes); + #endif + + #ifdef HAS_SKINNING + skinningStage(attributes); + #endif + + #ifdef HAS_PRIMITIVE_OUTLINE + primitiveOutlineStage(); + #endif + + // Compute the bitangent according to the formula in the glTF spec. + // Normal and tangents can be affected by morphing and skinning, so + // the bitangent should not be computed until their values are finalized. + #ifdef HAS_BITANGENTS + attributes.bitangentMC = normalize(cross(attributes.normalMC, attributes.tangentMC) * attributes.tangentSignMC); + #endif + + FeatureIds featureIds; + featureIdStage(featureIds, attributes); + + #ifdef HAS_SELECTED_FEATURE_ID + SelectedFeature feature; + selectedFeatureIdStage(feature, featureIds); + // Handle any show properties that come from the style. + cpuStylingStage(attributes.positionMC, feature); + #endif + + #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING) + // The scene mode 2D pipeline stage and instancing stage add a different + // model view matrix to accurately project the model to 2D. However, the + // output positions and normals should be transformed by the 3D matrices + // to keep the data the same for the fragment shader. + mat4 modelView = czm_modelView3D; + mat3 normal = czm_normal3D; + #else + // These are used for individual model projection because they will + // automatically change based on the scene mode. + mat4 modelView = czm_modelView; + mat3 normal = czm_normal; + #endif + + // Update the position for this instance in place + #ifdef HAS_INSTANCING + + // The legacy instance stage is used when rendering i3dm models that + // encode instances transforms in world space, as opposed to glTF models + // that use EXT_mesh_gpu_instancing, where instance transforms are encoded + // in object space. + #ifdef USE_LEGACY_INSTANCING + mat4 instanceModelView; + mat3 instanceModelViewInverseTranspose; + + legacyInstancingStage(attributes, instanceModelView, instanceModelViewInverseTranspose); + + modelView = instanceModelView; + normal = instanceModelViewInverseTranspose; + #else + instancingStage(attributes); + #endif + + #ifdef USE_PICKING + v_pickColor = a_pickColor; + #endif + + #endif + + Metadata metadata; + MetadataClass metadataClass; + MetadataStatistics metadataStatistics; + metadataStage(metadata, metadataClass, metadataStatistics, attributes); + + #ifdef HAS_CUSTOM_VERTEX_SHADER + czm_modelVertexOutput vsOutput = defaultVertexOutput(attributes.positionMC); + customShaderStage(vsOutput, attributes, featureIds, metadata, metadataClass, metadataStatistics); + #endif + + // Compute the final position in each coordinate system needed. + // This returns the value that will be assigned to gl_Position. + vec4 positionClip = geometryStage(attributes, modelView, normal); + + #ifdef HAS_SILHOUETTE + silhouetteStage(attributes, positionClip); + #endif + + #ifdef HAS_POINT_CLOUD_SHOW_STYLE + float show = pointCloudShowStylingStage(attributes, metadata); + #else + float show = 1.0; + #endif + + #ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING + show *= pointCloudBackFaceCullingStage(); + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + v_pointCloudColor = pointCloudColorStylingStage(attributes, metadata); + #endif + + #ifdef PRIMITIVE_TYPE_POINTS + #ifdef HAS_CUSTOM_VERTEX_SHADER + gl_PointSize = vsOutput.pointSize; + #elif defined(HAS_POINT_CLOUD_POINT_SIZE_STYLE) || defined(HAS_POINT_CLOUD_ATTENUATION) + gl_PointSize = pointCloudPointSizeStylingStage(attributes, metadata); + #else + gl_PointSize = 1.0; + #endif + + gl_PointSize *= show; + #endif + + gl_Position = show * positionClip; +} +`;function W5(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._command=t,this._model=i,this._runtimePrimitive=n.runtimePrimitive,this._modelMatrix=t.modelMatrix,this._boundingVolume=t.boundingVolume,this._cullFace=t.renderState.cull.face;let o=i.classificationType;this._classificationType=o,this._classifiesTerrain=o!==zn.CESIUM_3D_TILE,this._classifies3DTiles=o!==zn.TERRAIN,this._useDebugWireframe=i._enableDebugWireframe&&i.debugWireframe,this._pickId=n.pickId,this._commandListTerrain=[],this._commandList3DTiles=[],this._commandListIgnoreShow=[],this._commandListDebugWireframe=[],this._commandListTerrainPicking=[],this._commandList3DTilesPicking=[],SUe(this)}function TUe(e){return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:e,frontOperation:{fail:ht.KEEP,zFail:ht.DECREMENT_WRAP,zPass:ht.KEEP},backFunction:e,backOperation:{fail:ht.KEEP,zFail:ht.INCREMENT_WRAP,zPass:ht.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:fc.LESS_OR_EQUAL},depthMask:!1}}var EUe={stencilTest:{enabled:!0,frontFunction:Hn.NOT_EQUAL,frontOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},backFunction:Hn.NOT_EQUAL,backOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:mn.PRE_MULTIPLIED_ALPHA_BLEND},bUe={stencilTest:{enabled:!0,frontFunction:Hn.NOT_EQUAL,frontOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},backFunction:Hn.NOT_EQUAL,backOperation:{fail:ht.ZERO,zFail:ht.ZERO,zPass:ht.ZERO},reference:0,mask:Ft.CLASSIFICATION_MASK},stencilMask:Ft.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1},cne=[];function SUe(e){let t=e._command,n=cne;if(e._useDebugWireframe){t.pass=be.OPAQUE,n.length=0,n.push(t),e._commandListDebugWireframe=gw(e,n,e._commandListDebugWireframe);let r=e._commandListDebugWireframe,s=r.length;for(let a=0;a<s;a++){let c=r[a];c.count*=2,c.offset*=2}return}let o=e.model.allowPicking;if(e._classifiesTerrain){let r=be.TERRAIN_CLASSIFICATION,s=G5(t,r),a=sne(t,r);n.length=0,n.push(s,a),e._commandListTerrain=gw(e,n,e._commandListTerrain),o&&(e._commandListTerrainPicking=ane(e,n,e._commandListTerrainPicking))}if(e._classifies3DTiles){let r=be.CESIUM_3D_TILE_CLASSIFICATION,s=G5(t,r),a=sne(t,r);n.length=0,n.push(s,a),e._commandList3DTiles=gw(e,n,e._commandList3DTiles),o&&(e._commandList3DTilesPicking=ane(e,n,e._commandList3DTilesPicking))}}function gw(e,t,n){let i=e._runtimePrimitive,o=i.batchLengths,r=i.batchOffsets,s=o.length,a=t.length;for(let c=0;c<s;c++){let u=o[c],f=r[c];for(let d=0;d<a;d++){let p=t[d],g=it.shallowClone(p);g.count=u,g.offset=f,n.push(g)}}return n}function G5(e,t){let n=it.shallowClone(e);n.cull=!1,n.pass=t;let i=t===be.TERRAIN_CLASSIFICATION?Hn.ALWAYS:Hn.EQUAL,o=TUe(i);return n.renderState=ze.fromCache(o),n}function sne(e,t){let n=it.shallowClone(e);return n.cull=!1,n.pass=t,n.renderState=ze.fromCache(EUe),n}var wUe=[];function ane(e,t,n){let i=ze.fromCache(bUe),o=t[0],r=t[1],s=it.shallowClone(o);s.cull=!0,s.pickOnly=!0;let a=it.shallowClone(r);a.cull=!0,a.pickOnly=!0,a.renderState=i,a.pickId=e._pickId;let c=wUe;return c.length=0,c.push(s,a),gw(e,c,n)}Object.defineProperties(W5.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},batchLengths:{get:function(){return this._runtimePrimitive.batchLengths}},batchOffsets:{get:function(){return this._runtimePrimitive.batchOffsets}},model:{get:function(){return this._model}},classificationType:{get:function(){return this._classificationType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=B.clone(e,this._modelMatrix);let t=this._runtimePrimitive.boundingSphere;this._boundingVolume=ae.transform(t,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace=e}}});W5.prototype.pushCommands=function(e,t){let n=e.passes;if(n.render){if(this._useDebugWireframe){t.push.apply(t,this._commandListDebugWireframe);return}if(this._classifiesTerrain&&t.push.apply(t,this._commandListTerrain),this._classifies3DTiles&&t.push.apply(t,this._commandList3DTiles),e.invertClassification&&this._classifies3DTiles){if(this._commandListIgnoreShow.length===0){let o=be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,r=G5(this._command,o),s=cne;s.length=0,s.push(r),this._commandListIgnoreShow=gw(this,s,this._commandListIgnoreShow)}t.push.apply(t,this._commandListIgnoreShow)}}return n.pick&&(this._classifiesTerrain&&t.push.apply(t,this._commandListTerrainPicking),this._classifies3DTiles&&t.push.apply(t,this._commandList3DTilesPicking)),t};var iL=W5;function oL(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._model=i;let o=n.runtimePrimitive;this._runtimePrimitive=o;let r=t.pass===be.TRANSLUCENT,a=!o.primitive.material.doubleSided&&!r,c=n.hasSilhouette,u=!r&&!c,f=n.hasSkipLevelOfDetail&&!r,d=c;this._command=t,this._modelMatrix=B.clone(t.modelMatrix),this._boundingVolume=ae.clone(t.boundingVolume),this._modelMatrix2D=new B,this._boundingVolume2D=new ae,this._modelMatrix2DDirty=!1,this._backFaceCulling=t.renderState.cull.enabled,this._cullFace=t.renderState.cull.face,this._shadows=i.shadows,this._debugShowBoundingVolume=t.debugShowBoundingVolume,this._usesBackFaceCulling=a,this._needsTranslucentCommand=u,this._needsSkipLevelOfDetailCommands=f,this._needsSilhouetteCommands=d,this._originalCommand=void 0,this._translucentCommand=void 0,this._skipLodBackfaceCommand=void 0,this._skipLodStencilCommand=void 0,this._silhouetteModelCommand=void 0,this._silhouetteColorCommand=void 0,this._derivedCommands=[],this._has2DCommands=!1,vUe(this)}function op(e){this.command=e.command,this.updateShadows=e.updateShadows,this.updateBackFaceCulling=e.updateBackFaceCulling,this.updateCullFace=e.updateCullFace,this.updateDebugShowBoundingVolume=e.updateDebugShowBoundingVolume,this.is2D=y(e.is2D,!1),this.derivedCommand2D=void 0}op.clone=function(e){return new op({command:e.command,updateShadows:e.updateShadows,updateBackFaceCulling:e.updateBackFaceCulling,updateCullFace:e.updateCullFace,updateDebugShowBoundingVolume:e.updateDebugShowBoundingVolume,is2D:e.is2D,derivedCommand2D:e.derivedCommand2D})};function vUe(e){let t=e._command;t.modelMatrix=e._modelMatrix,t.boundingVolume=e._boundingVolume;let n=e._model,i=e._usesBackFaceCulling,o=e._derivedCommands;e._originalCommand=new op({command:t,updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0,is2D:!1}),o.push(e._originalCommand),e._needsTranslucentCommand&&(e._translucentCommand=new op({command:BUe(t),updateShadows:!0,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!0}),o.push(e._translucentCommand)),e._needsSkipLevelOfDetailCommands&&(e._skipLodBackfaceCommand=new op({command:kUe(t),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:i,updateDebugShowBoundingVolume:!1}),e._skipLodStencilCommand=new op({command:zUe(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),o.push(e._skipLodBackfaceCommand),o.push(e._skipLodStencilCommand)),e._needsSilhouetteCommands&&(e._silhouetteModelCommand=new op({command:LUe(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),e._silhouetteColorCommand=new op({command:NUe(t,n),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!1}),o.push(e._silhouetteModelCommand),o.push(e._silhouetteColorCommand))}Object.defineProperties(oL.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},model:{get:function(){return this._model}},primitiveType:{get:function(){return this._command.primitiveType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=B.clone(e,this._modelMatrix),this._modelMatrix2DDirty=!0,this._boundingVolume=ae.transform(this.runtimePrimitive.boundingSphere,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},shadows:{get:function(){return this._shadows},set:function(e){this._shadows=e,IUe(this)}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){this._backFaceCulling!==e&&(this._backFaceCulling=e,PUe(this))}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace!==e&&(this._cullFace=e,OUe(this))}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolume=e,MUe(this))}}});function DUe(e,t){let n=e._modelMatrix;e._modelMatrix2D=B.clone(n,e._modelMatrix2D),e._modelMatrix2D[13]-=P.sign(n[13])*2*P.PI*t.mapProjection.ellipsoid.maximumRadius,e._boundingVolume2D=ae.transform(e.runtimePrimitive.boundingSphere,e._modelMatrix2D,e._boundingVolume2D)}function IUe(e){let t=e.shadows,n=xn.castShadows(t),i=xn.receiveShadows(t),o=e._derivedCommands;for(let r=0;r<o.length;++r){let s=o[r];if(s.updateShadows){let a=s.command;a.castShadows=n,a.receiveShadows=i}}}function PUe(e){let t=e.backFaceCulling,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateBackFaceCulling){let r=o.command,s=Ye(r.renderState,!0);s.cull.enabled=t,r.renderState=ze.fromCache(s)}}}function OUe(e){let t=e.cullFace,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateCullFace){let r=o.command,s=Ye(r.renderState,!0);s.cull.face=t,r.renderState=ze.fromCache(s)}}}function MUe(e){let t=e.debugShowBoundingVolume,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateDebugShowBoundingVolume){let r=o.command;r.debugShowBoundingVolume=t}}}oL.prototype.pushCommands=function(e,t){let n=lne(this,e);n&&!this._has2DCommands&&(RUe(this),this._has2DCommands=!0,this._modelMatrix2DDirty=!0),this._modelMatrix2DDirty&&(DUe(this,e),this._modelMatrix2DDirty=!1);let i=this.model.styleCommandsNeeded;if(!(this._needsTranslucentCommand&&l(i)&&(i!==Em.ALL_OPAQUE&&QC(t,this._translucentCommand,n),i===Em.ALL_TRANSLUCENT))){if(this._needsSkipLevelOfDetailCommands){let{tileset:o,tile:r}=this._model.content;if(o.hasMixedContent){r._finalResolution||QC(o._backfaceCommands,this._skipLodBackfaceCommand,n),FUe(this,r,n),QC(t,this._skipLodStencilCommand,n);return}}if(this._needsSilhouetteCommands){QC(t,this._silhouetteModelCommand,n);return}return QC(t,this._originalCommand,n),t}};oL.prototype.pushSilhouetteCommands=function(e,t){let n=lne(this,e);return QC(t,this._silhouetteColorCommand,n),t};function QC(e,t,n){e.push(t.command),n&&e.push(t.derivedCommand2D.command)}function lne(e,t){if(t.mode!==ne.SCENE2D||e.model._projectTo2D)return!1;let i=e.model.sceneGraph._boundingSphere2D,o=i.center.y-i.radius,r=i.center.y+i.radius,s=t.mapProjection.ellipsoid.maximumRadius*P.PI;return o<s&&r>s||o<-s&&r>-s}function ZC(e,t){if(!l(t))return;let n=op.clone(t),i=it.shallowClone(t.command);return i.modelMatrix=e._modelMatrix2D,i.boundingVolume=e._boundingVolume2D,n.command=i,n.updateShadows=!1,n.is2D=!0,t.derivedCommand2D=n,e._derivedCommands.push(n),n}function RUe(e){ZC(e,e._originalCommand),ZC(e,e._translucentCommand),ZC(e,e._skipLodBackfaceCommand),ZC(e,e._skipLodStencilCommand),ZC(e,e._silhouetteModelCommand),ZC(e,e._silhouetteColorCommand)}function BUe(e){let t=it.shallowClone(e);t.pass=be.TRANSLUCENT;let n=Ye(e.renderState,!0);return n.cull.enabled=!1,n.depthMask=!1,n.blending=mn.ALPHA_BLEND,t.renderState=ze.fromCache(n),t}function LUe(e,t){let n=t._silhouetteId%255,i=it.shallowClone(e),o=Ye(e.renderState,!0);return o.stencilTest={enabled:!0,frontFunction:te.ALWAYS,backFunction:te.ALWAYS,reference:n,mask:-1,frontOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.REPLACE},backOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.REPLACE}},t.isInvisible()&&(o.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),i.renderState=ze.fromCache(o),i}function NUe(e,t){let n=t._silhouetteId%255,i=it.shallowClone(e),o=Ye(e.renderState,!0);o.cull.enabled=!1,(e.pass===be.TRANSLUCENT||t.silhouetteColor.alpha<1)&&(i.pass=be.TRANSLUCENT,o.depthMask=!1,o.blending=mn.ALPHA_BLEND),o.stencilTest={enabled:!0,frontFunction:te.NOTEQUAL,backFunction:te.NOTEQUAL,reference:n,mask:-1,frontOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.KEEP},backOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.KEEP}};let s=Ye(e.uniformMap);return s.model_silhouettePass=function(){return!0},i.renderState=ze.fromCache(o),i.uniformMap=s,i.castShadows=!1,i.receiveShadows=!1,i}function FUe(e,t,n){let i=e._skipLodStencilCommand,o=i.command,r=t._selectionDepth,s=UUe(o);if(r!==s){let a=VUe(r),c=Ye(o.renderState,!0);c.stencilTest.reference=a,o.renderState=ze.fromCache(c),n&&(i.derivedCommand2D.renderState=c)}}function UUe(e){return(e.renderState.stencilTest.reference&Ft.SKIP_LOD_MASK)>>>Ft.SKIP_LOD_BIT_SHIFT}function VUe(e){return Ft.CESIUM_3D_TILE_MASK|e<<Ft.SKIP_LOD_BIT_SHIFT}function kUe(e){let t=it.shallowClone(e),n=Ye(e.renderState,!0);n.cull.enabled=!0,n.cull.face=gi.FRONT,n.colorMask={red:!1,green:!1,blue:!1,alpha:!1},n.polygonOffset={enabled:!0,factor:5,units:5};let i=Ye(t.uniformMap),o=new H(5,5);return i.u_polygonOffset=function(){return o},t.renderState=ze.fromCache(n),t.uniformMap=i,t.castShadows=!1,t.receiveShadows=!1,t}function zUe(e){let t=it.shallowClone(e),n=Ye(e.renderState,!0),{stencilTest:i}=n;return i.enabled=!0,i.mask=Ft.SKIP_LOD_MASK,i.reference=Ft.CESIUM_3D_TILE_MASK,i.frontFunction=Hn.GREATER_OR_EQUAL,i.frontOperation.zPass=ht.REPLACE,i.backFunction=Hn.GREATER_OR_EQUAL,i.backOperation.zPass=ht.REPLACE,n.stencilMask=Ft.CESIUM_3D_TILE_MASK|Ft.SKIP_LOD_MASK,t.renderState=ze.fromCache(n),t}var rL=oL;function HUe(e,t){let n=e.shaderBuilder;n.addVertexLines(nL),n.addFragmentLines(tL);let i=GUe(e),o=new ri({context:t.context,indexBuffer:i,attributes:e.attributes}),r=e.model;r._pipelineResources.push(o);let s=n.buildShaderProgram(t.context);r._pipelineResources.push(s);let a=e.alphaOptions.pass,c=r.sceneGraph,u=t.mode===ne.SCENE3D,f,d;if(!u&&!t.scene3DOnly&&r._projectTo2D)f=B.multiplyTransformation(c._computedModelMatrix,e.runtimeNode.computedTransform,new B),d=e.runtimePrimitive.boundingSphere2D;else{let T=u?c._computedModelMatrix:c._computedModelMatrix2D;f=B.multiplyTransformation(T,e.runtimeNode.computedTransform,new B),d=ae.transform(e.boundingSphere,f,e.boundingSphere)}let p=Ye(ze.fromCache(e.renderStateOptions),!0);p.cull.face=Qt.getCullFace(f,e.primitiveType),p=ze.fromCache(p);let g=l(r.classificationType),h=g?!1:xn.castShadows(r.shadows),A=g?!1:xn.receiveShadows(r.shadows),x=g?void 0:e.pickId,C=new it({boundingVolume:d,modelMatrix:f,uniformMap:e.uniformMap,renderState:p,vertexArray:o,shaderProgram:s,cull:r.cull,pass:a,count:e.count,owner:r,pickId:x,instanceCount:e.instanceCount,primitiveType:e.primitiveType,debugShowBoundingVolume:r.debugShowBoundingVolume,castShadows:h,receiveShadows:A});return g?new iL({primitiveRenderResources:e,command:C}):new rL({primitiveRenderResources:e,command:C})}function GUe(e){let t=e.wireframeIndexBuffer;if(l(t))return t;let n=e.indices;if(l(n))return n.buffer}var sL=HUe;var une={name:"TilesetPipelineStage"};une.process=function(e,t,n){if(t.hasSkipLevelOfDetail(n)){e.shaderBuilder.addDefine("POLYGON_OFFSET",void 0,Te.FRAGMENT);let r={u_polygonOffset:function(){return H.ZERO}};e.uniformMap=gt(r,e.uniformMap),e.hasSkipLevelOfDetail=!0}let i=e.renderStateOptions;i.stencilTest=Ft.setCesium3DTileBit(),i.stencilMask=Ft.CESIUM_3D_TILE_MASK};var aL=une;var cL=`vec3 proceduralIBL( + vec3 positionEC, + vec3 normalEC, + vec3 lightDirectionEC, + vec3 lightColorHdr, + czm_pbrParameters pbrParameters +) { + vec3 v = -positionEC; + vec3 positionWC = vec3(czm_inverseView * vec4(positionEC, 1.0)); + vec3 vWC = -normalize(positionWC); + vec3 l = normalize(lightDirectionEC); + vec3 n = normalEC; + vec3 r = normalize(czm_inverseViewRotation * normalize(reflect(v, n))); + + float NdotL = clamp(dot(n, l), 0.001, 1.0); + float NdotV = abs(dot(n, v)) + 0.001; + + // Figure out if the reflection vector hits the ellipsoid + float vertexRadius = length(positionWC); + float horizonDotNadir = 1.0 - min(1.0, czm_ellipsoidRadii.x / vertexRadius); + float reflectionDotNadir = dot(r, normalize(positionWC)); + // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z. + r.x = -r.x; + r = -normalize(czm_temeToPseudoFixed * r); + r.x = -r.x; + + vec3 diffuseColor = pbrParameters.diffuseColor; + float roughness = pbrParameters.roughness; + vec3 specularColor = pbrParameters.f0; + + float inverseRoughness = 1.04 - roughness; + inverseRoughness *= inverseRoughness; + vec3 sceneSkyBox = czm_textureCube(czm_environmentMap, r).rgb * inverseRoughness; + + float atmosphereHeight = 0.05; + float blendRegionSize = 0.1 * ((1.0 - inverseRoughness) * 8.0 + 1.1 - horizonDotNadir); + float blendRegionOffset = roughness * -1.0; + float farAboveHorizon = clamp(horizonDotNadir - blendRegionSize * 0.5 + blendRegionOffset, 1.0e-10 - blendRegionSize, 0.99999); + float aroundHorizon = clamp(horizonDotNadir + blendRegionSize * 0.5, 1.0e-10 - blendRegionSize, 0.99999); + float farBelowHorizon = clamp(horizonDotNadir + blendRegionSize * 1.5, 1.0e-10 - blendRegionSize, 0.99999); + float smoothstepHeight = smoothstep(0.0, atmosphereHeight, horizonDotNadir); + vec3 belowHorizonColor = mix(vec3(0.1, 0.15, 0.25), vec3(0.4, 0.7, 0.9), smoothstepHeight); + vec3 nadirColor = belowHorizonColor * 0.5; + vec3 aboveHorizonColor = mix(vec3(0.9, 1.0, 1.2), belowHorizonColor, roughness * 0.5); + vec3 blueSkyColor = mix(vec3(0.18, 0.26, 0.48), aboveHorizonColor, reflectionDotNadir * inverseRoughness * 0.5 + 0.75); + vec3 zenithColor = mix(blueSkyColor, sceneSkyBox, smoothstepHeight); + vec3 blueSkyDiffuseColor = vec3(0.7, 0.85, 0.9); + float diffuseIrradianceFromEarth = (1.0 - horizonDotNadir) * (reflectionDotNadir * 0.25 + 0.75) * smoothstepHeight; + float diffuseIrradianceFromSky = (1.0 - smoothstepHeight) * (1.0 - (reflectionDotNadir * 0.25 + 0.25)); + vec3 diffuseIrradiance = blueSkyDiffuseColor * clamp(diffuseIrradianceFromEarth + diffuseIrradianceFromSky, 0.0, 1.0); + float notDistantRough = (1.0 - horizonDotNadir * roughness * 0.8); + vec3 specularIrradiance = mix(zenithColor, aboveHorizonColor, smoothstep(farAboveHorizon, aroundHorizon, reflectionDotNadir) * notDistantRough); + specularIrradiance = mix(specularIrradiance, belowHorizonColor, smoothstep(aroundHorizon, farBelowHorizon, reflectionDotNadir) * inverseRoughness); + specularIrradiance = mix(specularIrradiance, nadirColor, smoothstep(farBelowHorizon, 1.0, reflectionDotNadir) * inverseRoughness); + + // Luminance model from page 40 of http://silviojemma.com/public/papers/lighting/spherical-harmonic-lighting.pdf + #ifdef USE_SUN_LUMINANCE + // Angle between sun and zenith + float LdotZenith = clamp(dot(normalize(czm_inverseViewRotation * l), vWC), 0.001, 1.0); + float S = acos(LdotZenith); + // Angle between zenith and current pixel + float NdotZenith = clamp(dot(normalize(czm_inverseViewRotation * n), vWC), 0.001, 1.0); + // Angle between sun and current pixel + float gamma = acos(NdotL); + float numerator = ((0.91 + 10.0 * exp(-3.0 * gamma) + 0.45 * pow(NdotL, 2.0)) * (1.0 - exp(-0.32 / NdotZenith))); + float denominator = (0.91 + 10.0 * exp(-3.0 * S) + 0.45 * pow(LdotZenith,2.0)) * (1.0 - exp(-0.32)); + float luminance = model_luminanceAtZenith * (numerator / denominator); + #endif + + vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; + vec3 iblColor = (diffuseIrradiance * diffuseColor * model_iblFactor.x) + (specularIrradiance * czm_srgbToLinear(specularColor * brdfLut.x + brdfLut.y) * model_iblFactor.y); + float maximumComponent = max(max(lightColorHdr.x, lightColorHdr.y), lightColorHdr.z); + vec3 lightColor = lightColorHdr / max(maximumComponent, 1.0); + iblColor *= lightColor; + + #ifdef USE_SUN_LUMINANCE + iblColor *= luminance; + #endif + + return iblColor; +} + +#if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) +vec3 textureIBL( + vec3 positionEC, + vec3 normalEC, + vec3 lightDirectionEC, + czm_pbrParameters pbrParameters +) { + vec3 diffuseColor = pbrParameters.diffuseColor; + float roughness = pbrParameters.roughness; + vec3 specularColor = pbrParameters.f0; + + vec3 v = -positionEC; + vec3 n = normalEC; + vec3 l = normalize(lightDirectionEC); + vec3 h = normalize(v + l); + + float NdotV = abs(dot(n, v)) + 0.001; + float VdotH = clamp(dot(v, h), 0.0, 1.0); + + const mat3 yUpToZUp = mat3( + -1.0, 0.0, 0.0, + 0.0, 0.0, -1.0, + 0.0, 1.0, 0.0 + ); + vec3 cubeDir = normalize(yUpToZUp * model_iblReferenceFrameMatrix * normalize(reflect(-v, n))); + + #ifdef DIFFUSE_IBL + #ifdef CUSTOM_SPHERICAL_HARMONICS + vec3 diffuseIrradiance = czm_sphericalHarmonics(cubeDir, model_sphericalHarmonicCoefficients); + #else + vec3 diffuseIrradiance = czm_sphericalHarmonics(cubeDir, czm_sphericalHarmonicCoefficients); + #endif + #else + vec3 diffuseIrradiance = vec3(0.0); + #endif + + #ifdef SPECULAR_IBL + vec3 r0 = specularColor.rgb; + float reflectance = max(max(r0.r, r0.g), r0.b); + vec3 r90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0)); + vec3 F = fresnelSchlick2(r0, r90, VdotH); + + vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; + #ifdef CUSTOM_SPECULAR_IBL + vec3 specularIBL = czm_sampleOctahedralProjection(model_specularEnvironmentMaps, model_specularEnvironmentMapsSize, cubeDir, roughness * model_specularEnvironmentMapsMaximumLOD, model_specularEnvironmentMapsMaximumLOD); + #else + vec3 specularIBL = czm_sampleOctahedralProjection(czm_specularEnvironmentMaps, czm_specularEnvironmentMapSize, cubeDir, roughness * czm_specularEnvironmentMapsMaximumLOD, czm_specularEnvironmentMapsMaximumLOD); + #endif + specularIBL *= F * brdfLut.x + brdfLut.y; + #else + vec3 specularIBL = vec3(0.0); + #endif + + return diffuseColor * diffuseIrradiance + specularColor * specularIBL; +} +#endif + +vec3 imageBasedLightingStage( + vec3 positionEC, + vec3 normalEC, + vec3 lightDirectionEC, + vec3 lightColorHdr, + czm_pbrParameters pbrParameters +) { + #if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) + // Environment maps were provided, use them for IBL + return textureIBL( + positionEC, + normalEC, + lightDirectionEC, + pbrParameters + ); + #else + // Use the procedural IBL if there are no environment maps + return proceduralIBL( + positionEC, + normalEC, + lightDirectionEC, + lightColorHdr, + pbrParameters + ); + #endif +}`;var fne={name:"ImageBasedLightingPipelineStage"};fne.process=function(e,t,n){let i=t.imageBasedLighting,o=e.shaderBuilder;o.addDefine("USE_IBL_LIGHTING",void 0,Te.FRAGMENT),o.addUniform("vec2","model_iblFactor",Te.FRAGMENT),dm.isSupported(n.context)&&((i.useSphericalHarmonics||i.useSpecularEnvironmentMaps||i.enabled)&&o.addUniform("mat3","model_iblReferenceFrameMatrix",Te.FRAGMENT),l(i.sphericalHarmonicCoefficients)?(o.addDefine("DIFFUSE_IBL",void 0,Te.FRAGMENT),o.addDefine("CUSTOM_SPHERICAL_HARMONICS",void 0,Te.FRAGMENT),o.addUniform("vec3","model_sphericalHarmonicCoefficients[9]",Te.FRAGMENT)):i.useDefaultSphericalHarmonics&&o.addDefine("DIFFUSE_IBL",void 0,Te.FRAGMENT),l(i.specularEnvironmentMapAtlas)&&i.specularEnvironmentMapAtlas.ready?(o.addDefine("SPECULAR_IBL",void 0,Te.FRAGMENT),o.addDefine("CUSTOM_SPECULAR_IBL",void 0,Te.FRAGMENT),o.addUniform("sampler2D","model_specularEnvironmentMaps",Te.FRAGMENT),o.addUniform("vec2","model_specularEnvironmentMapsSize",Te.FRAGMENT),o.addUniform("float","model_specularEnvironmentMapsMaximumLOD",Te.FRAGMENT)):t.useDefaultSpecularMaps&&o.addDefine("SPECULAR_IBL",void 0,Te.FRAGMENT)),l(i.luminanceAtZenith)&&(o.addDefine("USE_SUN_LUMINANCE",void 0,Te.FRAGMENT),o.addUniform("float","model_luminanceAtZenith",Te.FRAGMENT)),o.addFragmentLines(cL);let r={model_iblFactor:function(){return i.imageBasedLightingFactor},model_iblReferenceFrameMatrix:function(){return t._iblReferenceFrameMatrix},model_luminanceAtZenith:function(){return i.luminanceAtZenith},model_sphericalHarmonicCoefficients:function(){return i.sphericalHarmonicCoefficients},model_specularEnvironmentMaps:function(){return i.specularEnvironmentMapAtlas.texture},model_specularEnvironmentMapsSize:function(){return i.specularEnvironmentMapAtlas.texture.dimensions},model_specularEnvironmentMapsMaximumLOD:function(){return i.specularEnvironmentMapAtlas.maximumMipmapLevel}};e.uniformMap=gt(r,e.uniformMap)};var lL=fne;var WUe=P.EPSILON16;function Y5(e){e=y(e,y.EMPTY_OBJECT);let t=e.stage,n=e.runtimeArticulation;this._stage=t,this._runtimeArticulation=n,this._name=t.name,this._type=t.type,this._minimumValue=t.minimumValue,this._maximumValue=t.maximumValue,this._currentValue=t.initialValue}Object.defineProperties(Y5.prototype,{stage:{get:function(){return this._stage}},runtimeArticulation:{get:function(){return this._runtimeArticulation}},name:{get:function(){return this._name}},type:{get:function(){return this._type}},minimumValue:{get:function(){return this._minimumValue}},maximumValue:{get:function(){return this._maximumValue}},currentValue:{get:function(){return this._currentValue},set:function(e){e=P.clamp(e,this.minimumValue,this.maximumValue),P.equalsEpsilon(this._currentValue,e,WUe)||(this._currentValue=e,this.runtimeArticulation._dirty=!0)}}});var jUe=new m,j5=new Z;Y5.prototype.applyStageToMatrix=function(e){let t=this.type,n=this.currentValue,i=jUe,o;switch(t){case Ac.XROTATE:o=Z.fromRotationX(P.toRadians(n),j5),e=B.multiplyByMatrix3(e,o,e);break;case Ac.YROTATE:o=Z.fromRotationY(P.toRadians(n),j5),e=B.multiplyByMatrix3(e,o,e);break;case Ac.ZROTATE:o=Z.fromRotationZ(P.toRadians(n),j5),e=B.multiplyByMatrix3(e,o,e);break;case Ac.XTRANSLATE:i.x=n,i.y=0,i.z=0,e=B.multiplyByTranslation(e,i,e);break;case Ac.YTRANSLATE:i.x=0,i.y=n,i.z=0,e=B.multiplyByTranslation(e,i,e);break;case Ac.ZTRANSLATE:i.x=0,i.y=0,i.z=n,e=B.multiplyByTranslation(e,i,e);break;case Ac.XSCALE:i.x=n,i.y=1,i.z=1,e=B.multiplyByScale(e,i,e);break;case Ac.YSCALE:i.x=1,i.y=n,i.z=1,e=B.multiplyByScale(e,i,e);break;case Ac.ZSCALE:i.x=1,i.y=1,i.z=n,e=B.multiplyByScale(e,i,e);break;case Ac.UNIFORMSCALE:e=B.multiplyByUniformScale(e,n,e);break;default:break}return e};var uL=Y5;function fL(e){e=y(e,y.EMPTY_OBJECT);let t=e.articulation,n=e.sceneGraph;this._articulation=t,this._sceneGraph=n,this._name=t.name,this._runtimeStages=[],this._runtimeStagesByName={},this._runtimeNodes=[],this._dirty=!0,YUe(this)}Object.defineProperties(fL.prototype,{articulation:{get:function(){return this._articulation}},sceneGraph:{get:function(){return this._sceneGraph}},name:{get:function(){return this._name}},runtimeStages:{get:function(){return this._runtimeStages}},runtimeNodes:{get:function(){return this._runtimeNodes}}});function YUe(e){let n=e.articulation.stages,i=n.length,o=e._runtimeStages,r=e._runtimeStagesByName;for(let s=0;s<i;s++){let a=n[s],c=new uL({stage:a,runtimeArticulation:e});o.push(c);let u=a.name;r[u]=c}}fL.prototype.setArticulationStage=function(e,t){let n=this._runtimeStagesByName[e];l(n)&&(n.currentValue=t)};var qUe=new B,XUe=new B;fL.prototype.apply=function(){if(!this._dirty)return;this._dirty=!1;let e=B.clone(B.IDENTITY,qUe),t,n=this._runtimeStages,i=n.length;for(t=0;t<i;t++)e=n[t].applyStageToMatrix(e);let o=this._runtimeNodes,r=o.length;for(t=0;t<r;t++){let s=o[t],a=B.multiplyTransformation(s.originalTransform,e,XUe);s.transform=a}};var dL=fL;var mL=`void modelColorStage(inout czm_modelMaterial material) +{ + material.diffuse = mix(material.diffuse, model_color.rgb, model_colorBlend); + float highlight = ceil(model_colorBlend); + material.diffuse *= mix(model_color.rgb, vec3(1.0), highlight); + material.alpha *= model_color.a; +}`;var $C={name:"ModelColorPipelineStage",COLOR_UNIFORM_NAME:"model_color",COLOR_BLEND_UNIFORM_NAME:"model_colorBlend"};$C.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_COLOR",void 0,Te.FRAGMENT),i.addFragmentLines(mL);let o={},r=t.color;r.alpha===0&&!t.hasSilhouette(n)&&(e.renderStateOptions.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),r.alpha<1&&(e.alphaOptions.pass=be.TRANSLUCENT),i.addUniform("vec4",$C.COLOR_UNIFORM_NAME,Te.FRAGMENT),o[$C.COLOR_UNIFORM_NAME]=function(){return t.color},i.addUniform("float",$C.COLOR_BLEND_UNIFORM_NAME,Te.FRAGMENT),o[$C.COLOR_BLEND_UNIFORM_NAME]=function(){return yc.getColorBlend(t.colorBlendMode,t.colorBlendAmount)},e.uniformMap=gt(o,e.uniformMap)};var P0=$C;var hL=`#ifdef USE_CLIPPING_PLANES_FLOAT_TEXTURE +vec4 getClippingPlane( + highp sampler2D packedClippingPlanes, + int clippingPlaneNumber, + mat4 transform +) { + int pixY = clippingPlaneNumber / CLIPPING_PLANES_TEXTURE_WIDTH; + int pixX = clippingPlaneNumber - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT); + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + vec4 plane = texture(packedClippingPlanes, vec2(u, v)); + return czm_transformPlane(plane, transform); +} +#else +// Handle uint8 clipping texture instead +vec4 getClippingPlane( + highp sampler2D packedClippingPlanes, + int clippingPlaneNumber, + mat4 transform +) { + int clippingPlaneStartIndex = clippingPlaneNumber * 2; // clipping planes are two pixels each + int pixY = clippingPlaneStartIndex / CLIPPING_PLANES_TEXTURE_WIDTH; + int pixX = clippingPlaneStartIndex - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT); + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; + vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); + vec4 plane; + plane.xyz = czm_octDecode(oct, 65535.0); + plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + pixelWidth, v))); + return czm_transformPlane(plane, transform); +} +#endif + +float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) { + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float pixelWidth = czm_metersPerPixel(position); + + #ifdef UNION_CLIPPING_REGIONS + float clipAmount; // For union planes, we want to get the min distance. So we set the initial value to the first plane distance in the loop below. + #else + float clipAmount = 0.0; + bool clipped = true; + #endif + + for (int i = 0; i < CLIPPING_PLANES_LENGTH; ++i) { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + + #ifdef UNION_CLIPPING_REGIONS + clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); + if (amount <= 0.0) { + discard; + } + #else + clipAmount = max(amount, clipAmount); + clipped = clipped && (amount <= 0.0); + #endif + } + + #ifndef UNION_CLIPPING_REGIONS + if (clipped) { + discard; + } + #endif + + return clipAmount; +} + +void modelClippingPlanesStage(inout vec4 color) +{ + float clipDistance = clip(gl_FragCoord, model_clippingPlanes, model_clippingPlanesMatrix); + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = model_clippingPlanesEdgeStyle.rgb; + float clippingPlanesEdgeWidth = model_clippingPlanesEdgeStyle.a; + + if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) { + color = clippingPlanesEdgeColor; + } +} +`;var dne={name:"ModelClippingPlanesPipelineStage"},KUe=new H;dne.process=function(e,t,n){let i=t.clippingPlanes,o=n.context,r=e.shaderBuilder;r.addDefine("HAS_CLIPPING_PLANES",void 0,Te.FRAGMENT),r.addDefine("CLIPPING_PLANES_LENGTH",i.length,Te.FRAGMENT),i.unionClippingRegions&&r.addDefine("UNION_CLIPPING_REGIONS",void 0,Te.FRAGMENT),gs.useFloatTexture(o)&&r.addDefine("USE_CLIPPING_PLANES_FLOAT_TEXTURE",void 0,Te.FRAGMENT);let s=gs.getTextureResolution(i,o,KUe);r.addDefine("CLIPPING_PLANES_TEXTURE_WIDTH",s.x,Te.FRAGMENT),r.addDefine("CLIPPING_PLANES_TEXTURE_HEIGHT",s.y,Te.FRAGMENT),r.addUniform("sampler2D","model_clippingPlanes",Te.FRAGMENT),r.addUniform("vec4","model_clippingPlanesEdgeStyle",Te.FRAGMENT),r.addUniform("mat4","model_clippingPlanesMatrix",Te.FRAGMENT),r.addFragmentLines(hL);let a={model_clippingPlanes:function(){return i.texture},model_clippingPlanesEdgeStyle:function(){let c=z.clone(i.edgeColor);return c.alpha=i.edgeWidth,c},model_clippingPlanesMatrix:function(){return t._clippingPlanesMatrix}};e.uniformMap=gt(a,e.uniformMap)};var pL=dne;function mne(e,t){this._model=e,this._runtimeNode=t}Object.defineProperties(mne.prototype,{name:{get:function(){return this._runtimeNode._name}},id:{get:function(){return this._runtimeNode._id}},show:{get:function(){return this._runtimeNode.show},set:function(e){this._runtimeNode.show=e}},matrix:{get:function(){return this._runtimeNode.transform},set:function(e){l(e)?(this._runtimeNode.transform=e,this._runtimeNode.userAnimated=!0,this._model._userAnimationDirty=!0):(this._runtimeNode.transform=this.originalMatrix,this._runtimeNode.userAnimated=!1)}},originalMatrix:{get:function(){return this._runtimeNode.originalTransform}}});var _L=mne;var gL=`mat4 getInstancingTransform() +{ + mat4 instancingTransform; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform = mat4( + a_instancingTransformRow0.x, a_instancingTransformRow1.x, a_instancingTransformRow2.x, 0.0, // Column 1 + a_instancingTransformRow0.y, a_instancingTransformRow1.y, a_instancingTransformRow2.y, 0.0, // Column 2 + a_instancingTransformRow0.z, a_instancingTransformRow1.z, a_instancingTransformRow2.z, 0.0, // Column 3 + a_instancingTransformRow0.w, a_instancingTransformRow1.w, a_instancingTransformRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation = a_instanceTranslation; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation.x, translation.y, translation.z, 1.0 + ); + #endif + + return instancingTransform; +} + +#ifdef USE_2D_INSTANCING +mat4 getInstancingTransform2D() +{ + mat4 instancingTransform2D; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform2D = mat4( + a_instancingTransform2DRow0.x, a_instancingTransform2DRow1.x, a_instancingTransform2DRow2.x, 0.0, // Column 1 + a_instancingTransform2DRow0.y, a_instancingTransform2DRow1.y, a_instancingTransform2DRow2.y, 0.0, // Column 2 + a_instancingTransform2DRow0.z, a_instancingTransform2DRow1.z, a_instancingTransform2DRow2.z, 0.0, // Column 3 + a_instancingTransform2DRow0.w, a_instancingTransform2DRow1.w, a_instancingTransform2DRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation2D = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation2D = a_instanceTranslation2D; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform2D = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation2D.x, translation2D.y, translation2D.z, 1.0 + ); + #endif + + return instancingTransform2D; +} +#endif +`;var yL=`void instancingStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + attributes.positionMC = (instancingTransform * vec4(positionMC, 1.0)).xyz; + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = (instancingTransform * vec4(normalMC, 0.0)).xyz; + #endif + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var AL=`void legacyInstancingStage( + inout ProcessedAttributes attributes, + out mat4 instanceModelView, + out mat3 instanceModelViewInverseTranspose) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + mat4 instanceModel = instancingTransform * u_instance_nodeTransform; + instanceModelView = u_instance_modifiedModelView; + instanceModelViewInverseTranspose = mat3(u_instance_modifiedModelView * instanceModel); + + attributes.positionMC = (instanceModel * vec4(positionMC, 1.0)).xyz; + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var xL=new B,JUe=new B,ZUe=new B,pne={name:"InstancingPipelineStage",_getInstanceTransformsAsMatrices:xne,_transformsToTypedArray:X5};pne.process=function(e,t,n){let i=t.instances,o=i.attributes[0].count,r=e.shaderBuilder;r.addDefine("HAS_INSTANCING"),r.addVertexLines(gL);let s=e.model,a=s.sceneGraph,c=e.runtimeNode,u=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&s._projectTo2D,f=[];dVe(e,n,i,f,u),pVe(e,n,i,f);let d={};if(i.transformInWorldSpace?(r.addDefine("USE_LEGACY_INSTANCING",void 0,Te.VERTEX),r.addUniform("mat4","u_instance_modifiedModelView",Te.VERTEX),r.addUniform("mat4","u_instance_nodeTransform",Te.VERTEX),d.u_instance_modifiedModelView=function(){let p=B.multiplyTransformation(s.modelMatrix,a.components.transform,xL);return u?B.multiplyTransformation(n.context.uniformState.view3D,p,xL):(n.mode!==ne.SCENE3D&&(p=Rt.basisTo2D(n.mapProjection,p,xL)),B.multiplyTransformation(n.context.uniformState.view,p,xL))},d.u_instance_nodeTransform=function(){return B.multiplyTransformation(a.axisCorrectionMatrix,c.computedTransform,JUe)},r.addVertexLines(AL)):r.addVertexLines(yL),u){r.addDefine("USE_2D_INSTANCING",void 0,Te.VERTEX),r.addUniform("mat4","u_modelView2D",Te.VERTEX);let p=n.context,g=B.fromTranslation(c.instancingReferencePoint2D,new B);d.u_modelView2D=function(){return B.multiplyTransformation(p.uniformState.view,g,ZUe)}}e.uniformMap=gt(d,e.uniformMap),e.instanceCount=o,e.attributes.push.apply(e.attributes,f)};var yw=new B,QUe=new m;function $Ue(e,t,n,i,o){let r=B.multiplyTransformation(t,e,yw);return r=B.multiplyTransformation(r,n,yw),o=Rt.basisTo2D(i.mapProjection,r,o),o}function eVe(e,t,n,i,o){let r=B.fromTranslation(e,yw),s=B.multiplyTransformation(t,r,yw);s=B.multiplyTransformation(s,n,yw);let a=B.getTranslation(s,QUe);return o=Qi.computeActualWgs84Position(i,a,o),o}function _ne(e,t,n){let i=e.model,o=i.sceneGraph;e.runtimeNode.node.instances.transformInWorldSpace?(t=B.multiplyTransformation(i.modelMatrix,o.components.transform,t),n=B.multiplyTransformation(o.axisCorrectionMatrix,e.runtimeNode.computedTransform,n)):(t=B.clone(o.computedModelMatrix,t),t=B.multiplyTransformation(t,e.runtimeNode.computedTransform,t),n=B.clone(B.IDENTITY,n))}var gne=new B,yne=new B,tVe=new B,nVe=new m;function iVe(e,t,n,i){let o=gne,r=yne;_ne(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let u=0;u<c;u++){let f=e[u],d=$Ue(f,o,r,n,tVe),p=B.getTranslation(d,nVe),g=m.subtract(p,a,p);i[u]=B.setTranslation(d,g,i[u])}return i}function oVe(e,t,n,i){let o=gne,r=yne;_ne(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let u=0;u<c;u++){let f=e[u],d=eVe(f,o,r,n,f);i[u]=m.subtract(d,a,i[u])}return i}var rVe=new m,sVe=new m;function Ane(e,t){let n=e.runtimeNode,i=e.model.sceneGraph.computedModelMatrix,o=B.multiplyByPoint(i,n.instancingTranslationMin,rVe),r=Qi.computeActualWgs84Position(t,o,o),s=B.multiplyByPoint(i,n.instancingTranslationMax,sVe),a=Qi.computeActualWgs84Position(t,s,s);n.instancingReferencePoint2D=m.lerp(r,a,.5,new m)}function X5(e){let n=e.length,i=new Float32Array(n*12);for(let o=0;o<n;o++){let r=e[o],s=12*o;i[s+0]=r[0],i[s+1]=r[4],i[s+2]=r[8],i[s+3]=r[12],i[s+4]=r[1],i[s+5]=r[5],i[s+6]=r[9],i[s+7]=r[13],i[s+8]=r[2],i[s+9]=r[6],i[s+10]=r[10],i[s+11]=r[14]}return i}function aVe(e){let n=e.length,i=new Float32Array(n*3);for(let o=0;o<n;o++){let r=e[o],s=3*o;i[s+0]=r[0],i[s+1]=r[4],i[s+2]=r[8]}return i}var cVe=new m,lVe=new Ne,uVe=new m;function xne(e,t,n){let i=new Array(t),o=Qt.getAttributeBySemantic(e,Yr.TRANSLATION),r=Qt.getAttributeBySemantic(e,Yr.ROTATION),s=Qt.getAttributeBySemantic(e,Yr.SCALE),a=new m(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),c=new m(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),u=l(o),f=l(r),d=l(s),p=u?o.typedArray:new Float32Array(t*3),g=f?r.typedArray:new Float32Array(t*4);f&&r.normalized&&(g=qn.dequantize(g,r.componentDatatype,r.type,t));let h;d?h=s.typedArray:(h=new Float32Array(t*3),h.fill(1));for(let x=0;x<t;x++){let C=new m(p[x*3],p[x*3+1],p[x*3+2],cVe);m.maximumByComponent(a,C,a),m.minimumByComponent(c,C,c);let T=new Ne(g[x*4],g[x*4+1],g[x*4+2],f?g[x*4+3]:1,lVe),E=new m(h[x*3],h[x*3+1],h[x*3+2],uVe),S=B.fromTranslationQuaternionRotationScale(C,T,E,new B);i[x]=S}let A=n.runtimeNode;return A.instancingTranslationMin=c,A.instancingTranslationMax=a,u&&(o.typedArray=void 0),f&&(r.typedArray=void 0),d&&(s.typedArray=void 0),i}function fVe(e,t,n){let i=new Array(t),o=e.typedArray,r=new m(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),s=new m(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);for(let c=0;c<t;c++){let u=new m(o[c*3],o[c*3+1],o[c*3+2]);i[c]=u,m.minimumByComponent(r,u,r),m.maximumByComponent(s,u,s)}let a=n.runtimeNode;return a.instancingTranslationMin=r,a.instancingTranslationMax=s,e.typedArray=void 0,i}function K5(e,t){let n=mt.createVertexBuffer({context:t.context,typedArray:e,usage:Fe.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}function dVe(e,t,n,i,o){let r=Qt.getAttributeBySemantic(n,Yr.ROTATION);l(r)?mVe(e,n,i,t,o):hVe(e,n,i,t,o)}function mVe(e,t,n,i,o){let r=e.shaderBuilder,s=t.attributes[0].count,a=e.model,c=e.runtimeNode;r.addDefine("HAS_INSTANCE_MATRICES");let u="Transform",f,d=c.instancingTransformsBuffer;if(!l(d)){f=xne(t,s,e);let A=X5(f);d=K5(A,i),a._modelResources.push(d),c.instancingTransformsBuffer=d}if(hne(e,d,n,u),!o)return;let p=Ye(i);p.mode=ne.COLUMBUS_VIEW,Ane(e,p);let g=c.instancingTransformsBuffer2D;if(!l(g)){let A=iVe(f,e,p,f),x=X5(A);g=K5(x,i),a._modelResources.push(g),c.instancingTransformsBuffer2D=g}hne(e,g,n,"Transform2D")}function hVe(e,t,n,i,o){let r=e.shaderBuilder,s=e.runtimeNode,a=Qt.getAttributeBySemantic(t,Yr.TRANSLATION),c=Qt.getAttributeBySemantic(t,Yr.SCALE);if(l(c)){r.addDefine("HAS_INSTANCE_SCALE");let C="Scale";q5(e,c.buffer,c.byteOffset,c.byteStride,n,C)}if(!l(a))return;let u,f=a.typedArray;l(f)?u=fVe(a,a.count,e):l(s.instancingTranslationMin)||(s.instancingTranslationMin=a.min,s.instancingTranslationMax=a.max),r.addDefine("HAS_INSTANCE_TRANSLATION");let d="Translation";if(q5(e,a.buffer,a.byteOffset,a.byteStride,n,d),!o)return;let p=Ye(i);p.mode=ne.COLUMBUS_VIEW,Ane(e,p);let g=s.instancingTranslationBuffer2D;if(!l(g)){let C=oVe(u,e,p,u),T=aVe(C);g=K5(T,i),e.model._modelResources.push(g),s.instancingTranslationBuffer2D=g}q5(e,g,0,void 0,n,"Translation2D")}function hne(e,t,n,i){let r=X.getSizeInBytes(X.FLOAT),s=r*12,a=[{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:0,strideInBytes:s,instanceDivisor:1},{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:r*4,strideInBytes:s,instanceDivisor:1},{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:r*8,strideInBytes:s,instanceDivisor:1}],c=e.shaderBuilder;c.addAttribute("vec4",`a_instancing${i}Row0`),c.addAttribute("vec4",`a_instancing${i}Row1`),c.addAttribute("vec4",`a_instancing${i}Row2`),n.push.apply(n,a)}function q5(e,t,n,i,o,r){o.push({index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:3,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:n,strideInBytes:i,instanceDivisor:1}),e.shaderBuilder.addAttribute("vec3",`a_instance${r}`)}function pVe(e,t,n,i){let o=n.attributes,r=e.shaderBuilder;for(let s=0;s<o.length;s++){let a=o[s];a.semantic===Yr.FEATURE_ID&&(a.setIndex>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=a.setIndex+1),i.push({index:e.attributeIndex++,vertexBuffer:a.buffer,componentsPerAttribute:an.getNumberOfComponents(a.type),componentDatatype:a.componentDatatype,normalize:!1,offsetInBytes:a.byteOffset,strideInBytes:a.byteStride,instanceDivisor:1}),r.addAttribute("float",`a_instanceFeatureId_${a.setIndex}`))}}var CL=pne;var J5={};J5.name="ModelMatrixUpdateStage";J5.update=function(e,t,n){let i=n.mode!==ne.SCENE3D;if(!(i&&t._model._projectTo2D)&&e._transformDirty){let o=i?t._computedModelMatrix2D:t._computedModelMatrix;Cne(e,t,o,e.transformToRoot),e._transformDirty=!1}};function Cne(e,t,n,i){let o;i=B.multiplyTransformation(i,e.transform,new B),e.updateComputedTransform();let r=e.runtimePrimitives.length;for(o=0;o<r;o++){let c=e.runtimePrimitives[o].drawCommand;c.modelMatrix=B.multiplyTransformation(n,i,c.modelMatrix),c.cullFace=Qt.getCullFace(c.modelMatrix,c.primitiveType)}let s=e.children.length;for(o=0;o<s;o++){let a=t._runtimeNodes[e.children[o]];a._transformToRoot=B.clone(i,a._transformToRoot),Cne(a,t,n,i),a._transformDirty=!1}}var TL=J5;var Tne={name:"NodeStatisticsPipelineStage",_countInstancingAttributes:Ene,_countGeneratedBuffers:bne};Tne.process=function(e,t,n){let i=e.model.statistics,o=t.instances,r=e.runtimeNode;Ene(i,o),bne(i,r)};function Ene(e,t){if(!l(t))return;let n=t.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];l(r.buffer)&&e.addBuffer(r.buffer,!1)}}function bne(e,t){l(t.instancingTransformsBuffer)&&e.addBuffer(t.instancingTransformsBuffer,!1),l(t.instancingTransformsBuffer2D)&&e.addBuffer(t.instancingTransformsBuffer2D,!1),l(t.instancingTranslationBuffer2D)&&e.addBuffer(t.instancingTranslationBuffer2D,!1)}var EL=Tne;function eT(e){e=y(e,y.EMPTY_OBJECT);let t=e.node,n=e.transform,i=e.transformToRoot,o=e.sceneGraph,r=e.children;this._node=t,this._name=t.name,this._id=t.index,this._sceneGraph=o,this._children=r,this._originalTransform=B.clone(n,this._originalTransform),this._transform=B.clone(n,this._transform),this._transformToRoot=B.clone(i,this._transformToRoot),this._computedTransform=new B,this._transformDirty=!1,this._transformParameters=void 0,this._morphWeights=[],this._runtimeSkin=void 0,this._computedJointMatrices=[],this.show=!0,this.userAnimated=!1,this.pipelineStages=[],this.runtimePrimitives=[],this.updateStages=[],this.instancingTranslationMin=void 0,this.instancingTranslationMax=void 0,this.instancingTransformsBuffer=void 0,this.instancingTransformsBuffer2D=void 0,this.instancingTranslationBuffer2D=void 0,this.instancingReferencePoint2D=void 0,_Ve(this)}Object.defineProperties(eT.prototype,{node:{get:function(){return this._node}},sceneGraph:{get:function(){return this._sceneGraph}},children:{get:function(){return this._children}},transform:{get:function(){return this._transform},set:function(e){this._transformDirty=!0,this._transform=B.clone(e,this._transform)}},transformToRoot:{get:function(){return this._transformToRoot}},computedTransform:{get:function(){return this._computedTransform}},originalTransform:{get:function(){return this._originalTransform}},translation:{get:function(){return l(this._transformParameters)?this._transformParameters.translation:void 0},set:function(e){let t=this._transformParameters,n=t.translation;m.equals(n,e)||(t.translation=m.clone(e,t.translation),Z5(this,t))}},rotation:{get:function(){return l(this._transformParameters)?this._transformParameters.rotation:void 0},set:function(e){let t=this._transformParameters,n=t.rotation;Ne.equals(n,e)||(t.rotation=Ne.clone(e,t.rotation),Z5(this,t))}},scale:{get:function(){return l(this._transformParameters)?this._transformParameters.scale:void 0},set:function(e){let t=this._transformParameters,n=t.scale;m.equals(n,e)||(t.scale=m.clone(e,t.scale),Z5(this,t))}},morphWeights:{get:function(){return this._morphWeights},set:function(e){let t=e.length;for(let n=0;n<t;n++)this._morphWeights[n]=e[n]}},runtimeSkin:{get:function(){return this._runtimeSkin}},computedJointMatrices:{get:function(){return this._computedJointMatrices}}});function _Ve(e){let t=e.transform,n=e.transformToRoot,i=e._computedTransform;e._computedTransform=B.multiply(n,t,i);let o=e.node;l(o.matrix)||(e._transformParameters=new d0(o.translation,o.rotation,o.scale)),l(o.morphWeights)&&(e._morphWeights=o.morphWeights.slice());let r=o.articulationName;if(l(r)){let c=e.sceneGraph._runtimeArticulations[r];l(c)&&c.runtimeNodes.push(e)}}function Z5(e,t){e._transformDirty=!0,e._transform=B.fromTranslationRotationScale(t,e._transform)}eT.prototype.getChild=function(e){return this.sceneGraph._runtimeNodes[this.children[e]]};eT.prototype.configurePipeline=function(){let e=this.node,t=this.pipelineStages;t.length=0;let n=this.updateStages;n.length=0,l(e.instances)&&t.push(CL),t.push(EL),n.push(TL)};eT.prototype.updateComputedTransform=function(){this._computedTransform=B.multiply(this._transformToRoot,this._transform,this._computedTransform)};eT.prototype.updateJointMatrices=function(){let e=this._runtimeSkin;if(!l(e))return;e.updateJointMatrices();let t=this._computedJointMatrices,n=e.jointMatrices,i=n.length;for(let o=0;o<i;o++){l(t[o])||(t[o]=new B);let r=B.multiplyTransformation(this.transformToRoot,this.transform,t[o]),s=B.inverseTransformation(r,t[o]);t[o]=B.multiplyTransformation(s,n[o],t[o])}};var bL=eT;var Sne={name:"AlphaPipelineStage"};Sne.process=function(e,t,n){let i=e.alphaOptions,o=e.model;i.pass=y(i.pass,o.opaquePass);let r=e.renderStateOptions;i.pass===be.TRANSLUCENT&&(r.cull.enabled=!1,r.depthMask=!1,r.blending=mn.ALPHA_BLEND);let s=e.shaderBuilder,a=e.uniformMap;l(i.alphaCutoff)&&(s.addDefine("ALPHA_MODE_MASK",void 0,Te.FRAGMENT),s.addUniform("float","u_alphaCutoff",Te.FRAGMENT),a.u_alphaCutoff=function(){return i.alphaCutoff})};var SL=Sne;var wne={name:"BatchTexturePipelineStage"};wne.process=function(e,t,n){let i=e.shaderBuilder,o={},r=e.model,s=r.featureTables[r.featureTableId],a=s.featuresLength;i.addUniform("int","model_featuresLength"),o.model_featuresLength=function(){return a};let c=s.batchTexture;i.addUniform("sampler2D","model_batchTexture"),o.model_batchTexture=function(){return y(c.batchTexture,c.defaultTexture)},i.addUniform("vec4","model_textureStep"),o.model_textureStep=function(){return c.textureStep},c.textureDimensions.y>1&&(i.addDefine("MULTILINE_BATCH_TEXTURE"),i.addUniform("vec2","model_textureDimensions"),o.model_textureDimensions=function(){return c.textureDimensions}),e.uniformMap=gt(o,e.uniformMap)};var wL=wne;var vne={name:"ClassificationPipelineStage"};vne.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_CLASSIFICATION",void 0,Te.BOTH);let o=e.runtimePrimitive;l(o.batchLengths)||gVe(t,o)};function gVe(e,t){let n=Qt.getAttributeBySemantic(e,bt.POSITION);if(!l(n))throw new de("Primitives must have a position attribute to be used for classification.");let i,o=e.indices,r=l(o);r&&(i=o.typedArray,o.typedArray=void 0);let s=r?o.count:n.count,a=Qt.getAttributeBySemantic(e,bt.FEATURE_ID,0);if(!l(a)){t.batchLengths=[s],t.batchOffsets=[0];return}let c=a.typedArray;a.typedArray=void 0;let u=[],f=[0],d=r?i[0]:0,p=c[d],g=0;for(let A=1;A<s;A++){let x=r?i[A]:A,C=c[x];if(C!==p){let T=A-g,E=A;u.push(T),f.push(E),g=E,p=C}}let h=s-g;u.push(h),t.batchLengths=u,t.batchOffsets=f}var vL=vne;var DL=`void filterByPassType(inout vec3 positionMC, vec4 featureColor) +{ + bool styleTranslucent = (featureColor.a != 1.0); + // Only render translucent features in the translucent pass (if the style or the original command has translucency). + if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent) + { + // If the model has a translucent silhouette, it needs to render during the silhouette color command, + // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent. + #ifdef HAS_SILHOUETTE + positionMC *= float(model_silhouettePass); + #else + positionMC *= 0.0; + #endif + } + // If the current pass is not the translucent pass and the style is not translucent, don't render the feature. + else if (czm_pass != czm_passTranslucent && styleTranslucent) + { + positionMC *= 0.0; + } +} + +void cpuStylingStage(inout vec3 positionMC, inout SelectedFeature feature) +{ + float show = ceil(feature.color.a); + positionMC *= show; + + #if defined(HAS_SELECTED_FEATURE_ID_ATTRIBUTE) && !defined(HAS_CLASSIFICATION) + filterByPassType(positionMC, feature.color); + #endif +} +`;var IL=`void filterByPassType(vec4 featureColor) +{ + bool styleTranslucent = (featureColor.a != 1.0); + // Only render translucent features in the translucent pass (if the style or the original command has translucency). + if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent) + { + // If the model has a translucent silhouette, it needs to render during the silhouette color command, + // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent. + #ifdef HAS_SILHOUETTE + if(!model_silhouettePass) { + discard; + } + #else + discard; + #endif + } + // If the current pass is not the translucent pass and the style is not translucent, don't render the feature. + else if (czm_pass != czm_passTranslucent && styleTranslucent) + { + discard; + } +} + +void cpuStylingStage(inout czm_modelMaterial material, SelectedFeature feature) +{ + vec4 featureColor = feature.color; + if (featureColor.a == 0.0) + { + discard; + } + + // If a feature ID vertex attribute is used, the pass type filter is applied in the vertex shader. + // So, we only apply in in the fragment shader if the feature ID texture is used. + #if defined(HAS_SELECTED_FEATURE_ID_TEXTURE) && !defined(HAS_CLASSIFICATION) + filterByPassType(featureColor); + #endif + + featureColor = czm_gammaCorrect(featureColor); + + // Classification models compute the diffuse differently. + #ifdef HAS_CLASSIFICATION + material.diffuse = featureColor.rgb * featureColor.a; + #else + float highlight = ceil(model_colorBlend); + material.diffuse *= mix(featureColor.rgb, vec3(1.0), highlight); + #endif + + material.alpha *= featureColor.a; +} +`;var Dne={name:"CPUStylingPipelineStage"};Dne.process=function(e,t,n){let i=e.model,o=e.shaderBuilder;o.addVertexLines(DL),o.addFragmentLines(IL),o.addDefine("USE_CPU_STYLING",void 0,Te.BOTH),l(i.color)||(o.addUniform("float",P0.COLOR_BLEND_UNIFORM_NAME,Te.FRAGMENT),e.uniformMap[P0.COLOR_BLEND_UNIFORM_NAME]=function(){return yc.getColorBlend(i.colorBlendMode,i.colorBlendAmount)}),o.addUniform("bool","model_commandTranslucent",Te.BOTH),e.uniformMap.model_commandTranslucent=function(){return e.alphaOptions.pass===be.TRANSLUCENT}};var PL=Dne;var Ine={MODIFY_MATERIAL:"MODIFY_MATERIAL",REPLACE_MATERIAL:"REPLACE_MATERIAL"};Ine.getDefineName=function(e){return`CUSTOM_SHADER_${e}`};var eg=Object.freeze(Ine);var OL=`void customShaderStage( + inout czm_modelVertexOutput vsOutput, + inout ProcessedAttributes attributes, + FeatureIds featureIds, + Metadata metadata, + MetadataClass metadataClass, + MetadataStatistics metadataStatistics +) { + // VertexInput and initializeInputStruct() are dynamically generated in JS, + // see CustomShaderPipelineStage.js + VertexInput vsInput; + initializeInputStruct(vsInput, attributes); + vsInput.featureIds = featureIds; + vsInput.metadata = metadata; + vsInput.metadataClass = metadataClass; + vsInput.metadataStatistics = metadataStatistics; + vertexMain(vsInput, vsOutput); + attributes.positionMC = vsOutput.positionMC; +} +`;var ML=`void customShaderStage( + inout czm_modelMaterial material, + ProcessedAttributes attributes, + FeatureIds featureIds, + Metadata metadata, + MetadataClass metadataClass, + MetadataStatistics metadataStatistics +) { + // FragmentInput and initializeInputStruct() are dynamically generated in JS, + // see CustomShaderPipelineStage.js + FragmentInput fsInput; + initializeInputStruct(fsInput, attributes); + fsInput.featureIds = featureIds; + fsInput.metadata = metadata; + fsInput.metadataClass = metadataClass; + fsInput.metadataStatistics = metadataStatistics; + fragmentMain(fsInput, material); +} +`;var RL=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) { + initializeFeatureIds(featureIds, attributes); + initializeFeatureIdAliases(featureIds); +} +`;var BL=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) +{ + initializeFeatureIds(featureIds, attributes); + initializeFeatureIdAliases(featureIds); + setFeatureIdVaryings(); +} +`;var Oi={name:"FeatureIdPipelineStage",STRUCT_ID_FEATURE_IDS_VS:"FeatureIdsVS",STRUCT_ID_FEATURE_IDS_FS:"FeatureIdsFS",STRUCT_NAME_FEATURE_IDS:"FeatureIds",FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS:"initializeFeatureIdsVS",FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS:"initializeFeatureIdsFS",FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS:"initializeFeatureIdAliasesVS",FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS:"initializeFeatureIdAliasesFS",FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS:"void initializeFeatureIds(out FeatureIds featureIds, ProcessedAttributes attributes)",FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES:"void initializeFeatureIdAliases(inout FeatureIds featureIds)",FUNCTION_ID_SET_FEATURE_ID_VARYINGS:"setFeatureIdVaryings",FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS:"void setFeatureIdVaryings()"};Oi.process=function(e,t,n){let i=e.shaderBuilder;yVe(i);let o=e.runtimeNode.node.instances;l(o)&&AVe(e,o,n),xVe(e,t,n),i.addVertexLines(BL),i.addFragmentLines(RL)};function yVe(e){e.addStruct(Oi.STRUCT_ID_FEATURE_IDS_VS,Oi.STRUCT_NAME_FEATURE_IDS,Te.VERTEX),e.addStruct(Oi.STRUCT_ID_FEATURE_IDS_FS,Oi.STRUCT_NAME_FEATURE_IDS,Te.FRAGMENT),e.addFunction(Oi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,Oi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,Te.VERTEX),e.addFunction(Oi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,Oi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,Te.FRAGMENT),e.addFunction(Oi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,Oi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,Te.VERTEX),e.addFunction(Oi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,Oi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,Te.FRAGMENT),e.addFunction(Oi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,Oi.FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS,Te.VERTEX)}function AVe(e,t,n){let i=t.featureIds,o=t.attributes[0].count;for(let r=0;r<i.length;r++){let s=i[r],a=s.positionalLabel;s instanceof Nt.FeatureIdAttribute?CVe(e,s,a):Pne(e,s,a,o,1,n);let c=s.label;l(c)&&One(e,a,c,Te.BOTH)}}function xVe(e,t,n){let i=t.featureIds,r=Qt.getAttributeBySemantic(t,bt.POSITION).count;for(let s=0;s<i.length;s++){let a=i[s],c=a.positionalLabel,u=Te.BOTH;a instanceof Nt.FeatureIdAttribute?TVe(e,a,c):a instanceof Nt.FeatureIdImplicitRange?Pne(e,a,c,r,void 0,n):(EVe(e,a,c,s,n),u=Te.FRAGMENT);let f=a.label;l(f)&&One(e,c,f,u)}}function CVe(e,t,n){let i=e.shaderBuilder;i.addStructField(Oi.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(Oi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let o=t.setIndex,r=n.replace(/_\d+$/,"_"),s=`a_${r}${o}`,a=`v_${r}${o}`,c=`featureIds.${n} = int(czm_round(${s}));`,u=`featureIds.${n} = int(czm_round(${a}));`;i.addFunctionLines(Oi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[c]),i.addFunctionLines(Oi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[u]),i.addVarying("float",a),i.addFunctionLines(Oi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${a} = ${s};`])}function TVe(e,t,n){let i=e.shaderBuilder;i.addStructField(Oi.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(Oi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let o=t.setIndex,r=n.replace(/_\d+$/,"_"),s=[`featureIds.${n} = int(czm_round(attributes.${r}${o}));`];i.addFunctionLines(Oi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,s),i.addFunctionLines(Oi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,s)}function Pne(e,t,n,i,o,r){bVe(e,t,i,o,r);let s=e.shaderBuilder,a=`a_implicit_${n}`;s.addAttribute("float",a);let c=`v_implicit_${n}`;s.addVarying("float",c),s.addStructField(Oi.STRUCT_ID_FEATURE_IDS_VS,"int",n),s.addStructField(Oi.STRUCT_ID_FEATURE_IDS_FS,"int",n),s.addFunctionLines(Oi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${c} = ${a};`]),s.addFunctionLines(Oi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[`featureIds.${n} = int(czm_round(${a}));`]),s.addFunctionLines(Oi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[`featureIds.${n} = int(czm_round(${c}));`])}function EVe(e,t,n,i,o){let r=`u_featureIdTexture_${i}`,s=e.uniformMap,a=t.textureReader;s[r]=function(){return y(a.texture,o.context.defaultTexture)};let c=a.channels,u=e.shaderBuilder;u.addStructField(Oi.STRUCT_ID_FEATURE_IDS_FS,"int",n),u.addUniform("sampler2D",r,Te.FRAGMENT);let f=`v_texCoord_${a.texCoord}`,d=`texture(${r}, ${f}).${c}`,p=`featureIds.${n} = czm_unpackUint(${d});`;u.addFunctionLines(Oi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[p])}function One(e,t,n,i){let o=e.shaderBuilder,r=Te.includesVertexShader(i);r&&o.addStructField(Oi.STRUCT_ID_FEATURE_IDS_VS,"int",n),o.addStructField(Oi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let s=[`featureIds.${n} = featureIds.${t};`];r&&o.addFunctionLines(Oi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,s),o.addFunctionLines(Oi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,s)}function bVe(e,t,n,i,o){let r=e.model,s,a;if(l(t.repeat)){let u=SVe(t,n);s=mt.createVertexBuffer({context:o.context,typedArray:u,usage:Fe.STATIC_DRAW}),s.vertexArrayDestroyable=!1,r._pipelineResources.push(s);let f=!1;r.statistics.addBuffer(s,f)}else a=[t.offset];let c={index:e.attributeIndex++,instanceDivisor:i,value:a,vertexBuffer:s,normalize:!1,componentsPerAttribute:1,componentDatatype:X.FLOAT,strideInBytes:X.getSizeInBytes(X.FLOAT),offsetInBytes:0};e.attributes.push(c)}function SVe(e,t){let n=e.offset,i=e.repeat,o=new Float32Array(t);for(let r=0;r<t;r++)o[r]=n+Math.floor(r/i);return o}var O0=Oi;var LL=`void metadataStage( + out Metadata metadata, + out MetadataClass metadataClass, + out MetadataStatistics metadataStatistics, + ProcessedAttributes attributes + ) +{ + initializeMetadata(metadata, metadataClass, metadataStatistics, attributes); +} +`;var NL=`void metadataStage( + out Metadata metadata, + out MetadataClass metadataClass, + out MetadataStatistics metadataStatistics, + ProcessedAttributes attributes + ) +{ + initializeMetadata(metadata, metadataClass, metadataStatistics, attributes); + setMetadataVaryings(); +} +`;var Ai={name:"MetadataPipelineStage",STRUCT_ID_METADATA_VS:"MetadataVS",STRUCT_ID_METADATA_FS:"MetadataFS",STRUCT_NAME_METADATA:"Metadata",STRUCT_ID_METADATA_CLASS_VS:"MetadataClassVS",STRUCT_ID_METADATA_CLASS_FS:"MetadataClassFS",STRUCT_NAME_METADATA_CLASS:"MetadataClass",STRUCT_ID_METADATA_STATISTICS_VS:"MetadataStatisticsVS",STRUCT_ID_METADATA_STATISTICS_FS:"MetadataStatisticsFS",STRUCT_NAME_METADATA_STATISTICS:"MetadataStatistics",FUNCTION_ID_INITIALIZE_METADATA_VS:"initializeMetadataVS",FUNCTION_ID_INITIALIZE_METADATA_FS:"initializeMetadataFS",FUNCTION_SIGNATURE_INITIALIZE_METADATA:"void initializeMetadata(out Metadata metadata, out MetadataClass metadataClass, out MetadataStatistics metadataStatistics, ProcessedAttributes attributes)",FUNCTION_ID_SET_METADATA_VARYINGS:"setMetadataVaryings",FUNCTION_SIGNATURE_SET_METADATA_VARYINGS:"void setMetadataVaryings()",METADATA_CLASS_FIELDS:[{specName:"noData",shaderName:"noData"},{specName:"default",shaderName:"defaultValue"},{specName:"min",shaderName:"minValue"},{specName:"max",shaderName:"maxValue"}],METADATA_STATISTICS_FIELDS:[{specName:"min",shaderName:"minValue"},{specName:"max",shaderName:"maxValue"},{specName:"mean",shaderName:"mean",type:"float"},{specName:"median",shaderName:"median"},{specName:"standardDeviation",shaderName:"standardDeviation",type:"float"},{specName:"variance",shaderName:"variance",type:"float"},{specName:"sum",shaderName:"sum"}]};Ai.process=function(e,t,n){let{shaderBuilder:i,model:o}=e,{structuralMetadata:r={},content:s}=o,a=s?.tileset.metadataExtension?.statistics,c=wVe(r.propertyAttributes,t,a),u=DVe(r.propertyTextures,a),f=c.concat(u);PVe(i,f),RVe(i),i.addVertexLines(NL),i.addFragmentLines(LL);for(let d=0;d<c.length;d++){let p=c[d];BVe(e,p)}for(let d=0;d<u.length;d++){let p=u[d];NVe(e,p)}};function wVe(e,t,n){return l(e)?e.flatMap(i=>vVe(i,t,n)):[]}function vVe(e,t,n){let{getAttributeByName:i,getAttributeInfo:o,sanitizeGlslIdentifier:r}=Qt,s=e.class.id,a=n?.classes[s],c=Object.entries(e.properties),u=new Array(c.length);for(let f=0;f<c.length;f++){let[d,p]=c[f],g=i(t,p.attribute),{glslType:h,variableName:A}=o(g);u[f]={metadataVariable:r(d),property:p,type:p.classProperty.type,glslType:h,variableName:A,propertyStatistics:a?.properties[d],shaderDestination:Te.BOTH}}return u}function DVe(e,t){return l(e)?e.flatMap(n=>IVe(n,t)):[]}function IVe(e,t){let{sanitizeGlslIdentifier:n}=Qt,i=e.class.id,o=t?.classes[i],r=Object.entries(e.properties).filter(([a,c])=>c.isGpuCompatible()),s=new Array(r.length);for(let a=0;a<r.length;a++){let[c,u]=r[a];s[a]={metadataVariable:n(c),property:u,type:u.classProperty.type,glslType:u.getGlslType(),propertyStatistics:o?.properties[c],shaderDestination:Te.FRAGMENT}}return s}function PVe(e,t){let n=new Set,i=new Set;for(let a=0;a<t.length;a++){let{type:c,glslType:u,propertyStatistics:f}=t[a];n.add(u),l(f)&&c!==jt.ENUM&&i.add(u)}let o=Ai.METADATA_CLASS_FIELDS;for(let a of n){let c=`${a}MetadataClass`;s(c,a,o)}let r=Ai.METADATA_STATISTICS_FIELDS;for(let a of i){let c=`${a}MetadataStatistics`;s(c,a,r)}function s(a,c,u){e.addStruct(a,a,Te.BOTH);for(let f=0;f<u.length;f++){let{shaderName:d}=u[f],p=u[f].type==="float"?MVe(c):c;e.addStructField(a,p,d)}}}var OVe={int:"float",ivec2:"vec2",ivec3:"vec3",ivec4:"vec4"};function MVe(e){let t=OVe[e];return l(t)?t:e}function RVe(e){e.addStruct(Ai.STRUCT_ID_METADATA_VS,Ai.STRUCT_NAME_METADATA,Te.VERTEX),e.addStruct(Ai.STRUCT_ID_METADATA_FS,Ai.STRUCT_NAME_METADATA,Te.FRAGMENT),e.addStruct(Ai.STRUCT_ID_METADATA_CLASS_VS,Ai.STRUCT_NAME_METADATA_CLASS,Te.VERTEX),e.addStruct(Ai.STRUCT_ID_METADATA_CLASS_FS,Ai.STRUCT_NAME_METADATA_CLASS,Te.FRAGMENT),e.addStruct(Ai.STRUCT_ID_METADATA_STATISTICS_VS,Ai.STRUCT_NAME_METADATA_STATISTICS,Te.VERTEX),e.addStruct(Ai.STRUCT_ID_METADATA_STATISTICS_FS,Ai.STRUCT_NAME_METADATA_STATISTICS,Te.FRAGMENT),e.addFunction(Ai.FUNCTION_ID_INITIALIZE_METADATA_VS,Ai.FUNCTION_SIGNATURE_INITIALIZE_METADATA,Te.VERTEX),e.addFunction(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,Ai.FUNCTION_SIGNATURE_INITIALIZE_METADATA,Te.FRAGMENT),e.addFunction(Ai.FUNCTION_ID_SET_METADATA_VARYINGS,Ai.FUNCTION_SIGNATURE_SET_METADATA_VARYINGS,Te.VERTEX)}function BVe(e,t){LVe(e,t),Mne(e.shaderBuilder,t),Rne(e.shaderBuilder,t)}function LVe(e,t){let{shaderBuilder:n}=e,{metadataVariable:i,property:o,glslType:r}=t,s=Lne({valueExpression:`attributes.${t.variableName}`,renderResources:e,glslType:r,metadataVariable:i,shaderDestination:Te.BOTH,property:o});n.addStructField(Ai.STRUCT_ID_METADATA_VS,r,i),n.addStructField(Ai.STRUCT_ID_METADATA_FS,r,i);let a=`metadata.${i} = ${s};`;n.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_VS,[a]),n.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,[a])}function NVe(e,t){FVe(e,t),Mne(e.shaderBuilder,t),Rne(e.shaderBuilder,t)}function FVe(e,t){let{shaderBuilder:n,uniformMap:i}=e,{metadataVariable:o,glslType:r,property:s}=t,{texCoord:a,channels:c,index:u,texture:f}=s.textureReader,d=`u_propertyTexture_${u}`;i.hasOwnProperty(d)||(n.addUniform("sampler2D",d,Te.FRAGMENT),i[d]=()=>f),n.addStructField(Ai.STRUCT_ID_METADATA_FS,r,o);let p=`attributes.texCoord_${a}`,g=`texture(${d}, ${p}).${c}`,h=s.unpackInShader(g),A=Lne({valueExpression:h,renderResources:e,glslType:r,metadataVariable:o,shaderDestination:Te.FRAGMENT,property:s}),x=`metadata.${o} = ${A};`;n.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,[x])}function Mne(e,t){let{classProperty:n}=t.property,{metadataVariable:i,glslType:o,shaderDestination:r}=t,s=Bne(Ai.METADATA_CLASS_FIELDS,n,`metadataClass.${i}`,o),a=`${o}MetadataClass`;e.addStructField(Ai.STRUCT_ID_METADATA_CLASS_FS,a,i),e.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,s),Te.includesVertexShader(r)&&(e.addStructField(Ai.STRUCT_ID_METADATA_CLASS_VS,a,i),e.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_VS,s))}function Rne(e,t){let{propertyStatistics:n}=t;if(!l(n))return;let{metadataVariable:i,type:o,glslType:r}=t;if(o===jt.ENUM)return;let s=Ai.METADATA_STATISTICS_FIELDS,a=`metadataStatistics.${i}`,c=Bne(s,n,a,r),u=`${r}MetadataStatistics`;e.addStructField(Ai.STRUCT_ID_METADATA_STATISTICS_FS,u,i),e.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,c),Te.includesVertexShader(t.shaderDestination)&&(e.addStructField(Ai.STRUCT_ID_METADATA_STATISTICS_VS,u,i),e.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_VS,c))}function Bne(e,t,n,i){function o(r){let s=t[r.specName];if(l(s))return`${n}.${r.shaderName} = ${i}(${s});`}return l(t)?e.map(o).filter(l):[]}function Lne(e){let{valueExpression:t,property:n}=e;if(!n.hasValueTransform)return t;let i=e.metadataVariable,o=`u_${i}_offset`,r=`u_${i}_scale`,{shaderBuilder:s,uniformMap:a}=e.renderResources,{glslType:c,shaderDestination:u}=e;s.addUniform(c,o,u),s.addUniform(c,r,u);let{offset:f,scale:d}=n;return a[o]=()=>f,a[r]=()=>d,`czm_valueTransform(${o}, ${r}, ${t})`}var Xf=Ai;var UVe={INHERIT:0,OPAQUE:1,TRANSLUCENT:2},M0=Object.freeze(UVe);var Fs={name:"CustomShaderPipelineStage",STRUCT_ID_ATTRIBUTES_VS:"AttributesVS",STRUCT_ID_ATTRIBUTES_FS:"AttributesFS",STRUCT_NAME_ATTRIBUTES:"Attributes",STRUCT_ID_VERTEX_INPUT:"VertexInput",STRUCT_NAME_VERTEX_INPUT:"VertexInput",STRUCT_ID_FRAGMENT_INPUT:"FragmentInput",STRUCT_NAME_FRAGMENT_INPUT:"FragmentInput",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS:"initializeInputStructVS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS:"void initializeInputStruct(out VertexInput vsInput, ProcessedAttributes attributes)",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS:"initializeInputStructFS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS:"void initializeInputStruct(out FragmentInput fsInput, ProcessedAttributes attributes)",_oneTimeWarning:Mt};Fs.process=function(e,t,n){let i=e.shaderBuilder,o=e.model.customShader;l(o.lightingModel)&&(e.lightingOptions.lightingModel=o.lightingModel);let r=e.alphaOptions;o.translucencyMode===M0.TRANSLUCENT?r.pass=be.TRANSLUCENT:o.translucencyMode===M0.OPAQUE&&(r.pass=void 0);let s=YVe(o,t);if(!s.customShaderEnabled)return;if(JVe(i,o,s),s.shouldComputePositionWC&&i.addDefine("COMPUTE_POSITION_WC_CUSTOM_SHADER",void 0,Te.BOTH),l(o.vertexShaderText)&&i.addDefine("HAS_CUSTOM_VERTEX_SHADER",void 0,Te.VERTEX),l(o.fragmentShaderText)){i.addDefine("HAS_CUSTOM_FRAGMENT_SHADER",void 0,Te.FRAGMENT);let u=eg.getDefineName(o.mode);i.addDefine(u,void 0,Te.FRAGMENT)}let a=o.uniforms;for(let u in a)if(a.hasOwnProperty(u)){let f=a[u];i.addUniform(f.type,u)}let c=o.varyings;for(let u in c)if(c.hasOwnProperty(u)){let f=c[u];i.addVarying(f,u)}e.uniformMap=gt(e.uniformMap,o.uniformMap)};function VVe(e){let t={};for(let n=0;n<e.length;n++){let i=e[n],o=Qt.getAttributeInfo(i);t[o.variableName]=o}return t}var kVe={position:"vec3",normal:"vec3",tangent:"vec3",bitangent:"vec3",texCoord:"vec2",color:"vec4",joints:"ivec4",weights:"vec4"},zVe={position:"vec3(0.0)",normal:"vec3(0.0, 0.0, 1.0)",tangent:"vec3(1.0, 0.0, 0.0)",bitangent:"vec3(0.0, 1.0, 0.0)",texCoord:"vec2(0.0)",color:"vec4(1.0)",joints:"ivec4(0)",weights:"vec4(0.0)"};function Nne(e){let t=e.replace(/_[0-9]+$/,"");t=t.replace(/(MC|EC)$/,"");let n=kVe[t],i=zVe[t];if(l(n))return{attributeField:[n,e],value:i}}function HVe(e,t,n){let i=Fne(t,e.usedVariablesVertex.attributeSet,!1),o=i.addToShader,r=i.missingAttributes,s,a,c=[],u=[];for(s in o)if(o.hasOwnProperty(s)){let d=[o[s].glslType,s];c.push(d),a=`vsInput.attributes.${s} = attributes.${s};`,u.push(a)}for(let f=0;f<r.length;f++){s=r[f];let d=Nne(s);if(!l(d)){Fs._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveVS",`Primitive is missing attribute ${s}, disabling custom vertex shader`);return}c.push(d.attributeField),a=`vsInput.attributes.${s} = ${d.value};`,u.push(a)}n.enabled=!0,n.attributeFields=c,n.initializationLines=u}function GVe(e){let t=[],n=[],i=e.usedVariablesFragment.attributeSet;return i.hasOwnProperty("positionWC")&&(t.push(["vec3","positionWC"]),n.push("fsInput.attributes.positionWC = attributes.positionWC;")),i.hasOwnProperty("positionEC")&&(t.push(["vec3","positionEC"]),n.push("fsInput.attributes.positionEC = attributes.positionEC;")),{attributeFields:t,initializationLines:n}}function WVe(e,t,n){let i=Fne(t,e.usedVariablesFragment.attributeSet,!0),o=i.addToShader,r=i.missingAttributes,s,a,c=[],u=[];for(s in o)if(o.hasOwnProperty(s)){let p=[o[s].glslType,s];c.push(p),a=`fsInput.attributes.${s} = attributes.${s};`,u.push(a)}for(let d=0;d<r.length;d++){s=r[d];let p=Nne(s);if(!l(p)){Fs._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveFS",`Primitive is missing attribute ${s}, disabling custom fragment shader.`);return}c.push(p.attributeField),a=`fsInput.attributes.${s} = ${p.value};`,u.push(a)}let f=GVe(e);n.enabled=!0,n.attributeFields=c.concat(f.attributeFields),n.initializationLines=f.initializationLines.concat(u)}var jVe={positionWC:!0,positionEC:!0};function Fne(e,t,n){let i,o,r={};for(o in e)if(e.hasOwnProperty(o)){let a=e[o];i=o,n&&o==="normalMC"?i="normalEC":n&&o==="tangentMC"&&(i="tangentEC"),t.hasOwnProperty(i)&&(r[i]=a)}let s=[];for(o in t)if(t.hasOwnProperty(o)){if(jVe.hasOwnProperty(o))continue;i=o,n&&o==="normalEC"?i="normalMC":n&&o==="tangentEC"&&(i="tangentMC"),e.hasOwnProperty(i)||s.push(o)}return{addToShader:r,missingAttributes:s}}function YVe(e,t){let n={enabled:!1},i={enabled:!1},o=VVe(t.attributes);l(e.vertexShaderText)&&HVe(e,o,n),l(e.fragmentShaderText)&&WVe(e,o,i);let s=e.usedVariablesFragment.attributeSet.hasOwnProperty("positionWC")&&i.enabled;return{vertexLines:n,fragmentLines:i,vertexLinesEnabled:n.enabled,fragmentLinesEnabled:i.enabled,customShaderEnabled:n.enabled||i.enabled,shouldComputePositionWC:s}}function qVe(e,t){let n,i=Fs.STRUCT_ID_ATTRIBUTES_VS;e.addStruct(i,Fs.STRUCT_NAME_ATTRIBUTES,Te.VERTEX);let o=t.attributeFields;for(n=0;n<o.length;n++){let a=o[n],c=a[0],u=a[1];e.addStructField(i,c,u)}i=Fs.STRUCT_ID_VERTEX_INPUT,e.addStruct(i,Fs.STRUCT_NAME_VERTEX_INPUT,Te.VERTEX),e.addStructField(i,Fs.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(i,O0.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(i,Xf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(i,Xf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(i,Xf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=Fs.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS;e.addFunction(r,Fs.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS,Te.VERTEX);let s=t.initializationLines;e.addFunctionLines(r,s)}function XVe(e,t){let n,i=Fs.STRUCT_ID_ATTRIBUTES_FS;e.addStruct(i,Fs.STRUCT_NAME_ATTRIBUTES,Te.FRAGMENT);let o,r,s,a=t.attributeFields;for(n=0;n<a.length;n++)o=a[n],r=o[0],s=o[1],e.addStructField(i,r,s);i=Fs.STRUCT_ID_FRAGMENT_INPUT,e.addStruct(i,Fs.STRUCT_NAME_FRAGMENT_INPUT,Te.FRAGMENT),e.addStructField(i,Fs.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(i,O0.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(i,Xf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(i,Xf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(i,Xf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let c=Fs.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS;e.addFunction(c,Fs.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS,Te.FRAGMENT);let u=t.initializationLines;e.addFunctionLines(c,u)}var KVe=[];function JVe(e,t,n){let i=n.vertexLines,o=KVe;i.enabled&&(qVe(e,i),o.length=0,o.push("#line 0",t.vertexShaderText,OL),e.addVertexLines(o));let r=n.fragmentLines;r.enabled&&(XVe(e,r),o.length=0,o.push("#line 0",t.fragmentShaderText,ML),e.addFragmentLines(o))}var FL=Fs;var Aw={name:"DequantizationPipelineStage",FUNCTION_ID_DEQUANTIZATION_STAGE_VS:"dequantizationStage",FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS:"void dequantizationStage(inout ProcessedAttributes attributes)"};Aw.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=l(o.classificationType);i.addDefine("USE_DEQUANTIZATION",void 0,Te.VERTEX),i.addFunction(Aw.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,Aw.FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS,Te.VERTEX);let s=t.attributes;for(let a=0;a<s.length;a++){let c=s[a],u=c.quantization;if(!l(u))continue;let f=c.semantic===bt.POSITION,d=c.semantic===bt.TEXCOORD;if(r&&!f&&!d)continue;let p=Qt.getAttributeInfo(c);QVe(i,p),ZVe(e,p)}};function ZVe(e,t){let n=e.shaderBuilder,i=e.uniformMap,o=t.variableName,r=t.attribute.quantization;if(r.octEncoded){let s=`model_normalizationRange_${o}`;n.addUniform("float",s,Te.VERTEX),i[s]=function(){return r.normalizationRange}}else{let s=`model_quantizedVolumeOffset_${o}`,a=`model_quantizedVolumeStepSize_${o}`,c=t.glslType;n.addUniform(c,s,Te.VERTEX),n.addUniform(c,a,Te.VERTEX);let u=r.quantizedVolumeOffset,f=r.quantizedVolumeStepSize;/^color_\d+$/.test(o)&&(u=Une(u,0),f=Une(f,1)),i[s]=function(){return u},i[a]=function(){return f}}}function Une(e,t){return e instanceof re?e:new re(e.x,e.y,e.z,t)}function QVe(e,t){let n=t.variableName,i=t.attribute.quantization,o;i.octEncoded?o=$Ve(n,i):o=eke(n),e.addFunctionLines(Aw.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,[o])}function $Ve(e,t){let n=`attributes.${e}`,i=`a_quantized_${e}`,o=`model_normalizationRange_${e}`,r=t.octEncodedZXY?".zxy":".xyz";return`${n} = czm_octDecode(${i}, ${o})${r};`}function eke(e){let t=`attributes.${e}`,n=`a_quantized_${e}`,i=`model_quantizedVolumeOffset_${e}`,o=`model_quantizedVolumeStepSize_${e}`;return`${t} = ${i} + ${n} * ${o};`}var UL=Aw;var VL=`void geometryStage(out ProcessedAttributes attributes) +{ + attributes.positionMC = v_positionMC; + attributes.positionEC = v_positionEC; + + #ifdef COMPUTE_POSITION_WC_CUSTOM_SHADER + attributes.positionWC = v_positionWC; + #endif + + #ifdef HAS_NORMALS + // renormalize after interpolation + attributes.normalEC = normalize(v_normalEC); + #endif + + #ifdef HAS_TANGENTS + attributes.tangentEC = normalize(v_tangentEC); + #endif + + #ifdef HAS_BITANGENTS + attributes.bitangentEC = normalize(v_bitangentEC); + #endif + + // Everything else is dynamically generated in GeometryPipelineStage + setDynamicVaryings(attributes); +} +`;var kL=`vec4 geometryStage(inout ProcessedAttributes attributes, mat4 modelView, mat3 normal) +{ + vec4 computedPosition; + + // Compute positions in different coordinate systems + vec3 positionMC = attributes.positionMC; + v_positionMC = positionMC; + v_positionEC = (modelView * vec4(positionMC, 1.0)).xyz; + + #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING) + vec3 position2D = attributes.position2D; + vec3 positionEC = (u_modelView2D * vec4(position2D, 1.0)).xyz; + computedPosition = czm_projection * vec4(positionEC, 1.0); + #else + computedPosition = czm_projection * vec4(v_positionEC, 1.0); + #endif + + // Sometimes the custom shader and/or style needs this + #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE) + // Note that this is a 32-bit position which may result in jitter on small + // scales. + v_positionWC = (czm_model * vec4(positionMC, 1.0)).xyz; + #endif + + #ifdef HAS_NORMALS + v_normalEC = normalize(normal * attributes.normalMC); + #endif + + #ifdef HAS_TANGENTS + v_tangentEC = normalize(normal * attributes.tangentMC); + #endif + + #ifdef HAS_BITANGENTS + v_bitangentEC = normalize(normal * attributes.bitangentMC); + #endif + + // All other varyings need to be dynamically generated in + // GeometryPipelineStage + setDynamicVaryings(attributes); + + return computedPosition; +} +`;var xw=`vec2 computeSt(float featureId) +{ + float stepX = model_textureStep.x; + float centerX = model_textureStep.y; + + #ifdef MULTILINE_BATCH_TEXTURE + float stepY = model_textureStep.z; + float centerY = model_textureStep.w; + + float xId = mod(featureId, model_textureDimensions.x); + float yId = floor(featureId / model_textureDimensions.x); + + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); + #else + return vec2(centerX + (featureId * stepX), 0.5); + #endif +} + +void selectedFeatureIdStage(out SelectedFeature feature, FeatureIds featureIds) +{ + int featureId = featureIds.SELECTED_FEATURE_ID; + + + if (featureId < model_featuresLength) + { + vec2 featureSt = computeSt(float(featureId)); + + feature.id = featureId; + feature.st = featureSt; + feature.color = texture(model_batchTexture, featureSt); + } + // Floating point comparisons can be unreliable in GLSL, so we + // increment the feature ID to make sure it's always greater + // then the model_featuresLength - a condition we check for in the + // pick ID, to avoid sampling the pick texture if the feature ID is + // greater than the number of features. + else + { + feature.id = model_featuresLength + 1; + feature.st = vec2(0.0); + feature.color = vec4(1.0); + } + + #ifdef HAS_NULL_FEATURE_ID + if (featureId == model_nullFeatureId) { + feature.id = featureId; + feature.st = vec2(0.0); + feature.color = vec4(1.0); + } + #endif +} +`;var Cw={name:"SelectedFeatureIdPipelineStage",STRUCT_ID_SELECTED_FEATURE:"SelectedFeature",STRUCT_NAME_SELECTED_FEATURE:"SelectedFeature",FUNCTION_ID_FEATURE_VARYINGS_VS:"updateFeatureStructVS",FUNCTION_ID_FEATURE_VARYINGS_FS:"updateFeatureStructFS",FUNCTION_SIGNATURE_UPDATE_FEATURE:"void updateFeatureStruct(inout SelectedFeature feature)"};Cw.process=function(e,t,n){let i=e.shaderBuilder;e.hasPropertyTable=!0;let o=e.model,r=e.runtimeNode.node,s=tke(o,r,t),a=s.shaderDestination;i.addDefine("HAS_SELECTED_FEATURE_ID",void 0,a),i.addDefine("SELECTED_FEATURE_ID",s.variableName,a),i.addDefine(s.featureIdDefine,void 0,a),nke(i);let c=s.featureIds.nullFeatureId,u=e.uniformMap;l(c)&&(i.addDefine("HAS_NULL_FEATURE_ID",void 0,a),i.addUniform("int","model_nullFeatureId",a),u.model_nullFeatureId=function(){return c}),s.shaderDestination===Te.BOTH&&i.addVertexLines(xw),i.addFragmentLines(xw)};function Vne(e){return e instanceof Nt.FeatureIdTexture?"HAS_SELECTED_FEATURE_ID_TEXTURE":"HAS_SELECTED_FEATURE_ID_ATTRIBUTE"}function kne(e){return e instanceof Nt.FeatureIdTexture?Te.FRAGMENT:Te.BOTH}function tke(e,t,n){let i,o;return l(t.instances)&&(o=Qt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(o))?(i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:kne(o),featureIdDefine:Vne(o)}):(o=Qt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:kne(o),featureIdDefine:Vne(o)})}function nke(e){e.addStructField(Cw.STRUCT_ID_SELECTED_FEATURE,"int","id"),e.addStructField(Cw.STRUCT_ID_SELECTED_FEATURE,"vec2","st"),e.addStructField(Cw.STRUCT_ID_SELECTED_FEATURE,"vec4","color")}var R0=Cw;var ys={name:"GeometryPipelineStage",STRUCT_ID_PROCESSED_ATTRIBUTES_VS:"ProcessedAttributesVS",STRUCT_ID_PROCESSED_ATTRIBUTES_FS:"ProcessedAttributesFS",STRUCT_NAME_PROCESSED_ATTRIBUTES:"ProcessedAttributes",FUNCTION_ID_INITIALIZE_ATTRIBUTES:"initializeAttributes",FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES:"void initializeAttributes(out ProcessedAttributes attributes)",FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS:"setDynamicVaryingsVS",FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS:"setDynamicVaryingsFS",FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS:"void setDynamicVaryings(inout ProcessedAttributes attributes)"};ys.process=function(e,t,n){let i=e.shaderBuilder,o=e.model;i.addStruct(ys.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"ProcessedAttributes",Te.VERTEX),i.addStruct(ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"ProcessedAttributes",Te.FRAGMENT),i.addStruct(R0.STRUCT_ID_SELECTED_FEATURE,R0.STRUCT_NAME_SELECTED_FEATURE,Te.BOTH),i.addFunction(ys.FUNCTION_ID_INITIALIZE_ATTRIBUTES,ys.FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES,Te.VERTEX),i.addVarying("vec3","v_positionWC"),i.addVarying("vec3","v_positionEC"),i.addStructField(ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionWC"),i.addStructField(ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionEC"),i.addFunction(ys.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,ys.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,Te.VERTEX),i.addFunction(ys.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,ys.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,Te.FRAGMENT),o.type===Vo.TILE_PNTS&&i.addDefine("HAS_SRGB_COLOR",void 0,Te.FRAGMENT);let s=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&o._projectTo2D,a=l(e.runtimeNode.node.instances),c=s&&!a,u=t.attributes.length;for(let f=0;f<u;f++){let d=t.attributes[f],p=an.getAttributeLocationCount(d.type),g=d.semantic===bt.POSITION,h;p>1?(h=e.attributeIndex,e.attributeIndex+=p):g&&!c?h=0:h=e.attributeIndex++,ike(e,d,h,p,s,a)}dke(i,t.attributes),t.primitiveType===Le.POINTS&&i.addDefine("PRIMITIVE_TYPE_POINTS"),i.addVertexLines(kL),i.addFragmentLines(VL)};function ike(e,t,n,i,o,r){let s=e.shaderBuilder,a=Qt.getAttributeInfo(t),c=o&&!r;i>1?ske(e,t,n,i):rke(e,t,n,c),cke(s,a,c),ake(s,a),l(t.semantic)&&oke(s,t),lke(s,a,o),uke(s,a,c),fke(s,a)}function oke(e,t){let n=t.semantic,i=t.setIndex;switch(n){case bt.NORMAL:e.addDefine("HAS_NORMALS");break;case bt.TANGENT:e.addDefine("HAS_TANGENTS");break;case bt.FEATURE_ID:e.addDefine(`HAS${n}_${i}`);break;case bt.TEXCOORD:case bt.COLOR:e.addDefine(`HAS_${n}_${i}`)}}function rke(e,t,n,i){let o=t.quantization,r,s;l(o)?(r=o.type,s=o.componentDatatype):(r=t.type,s=t.componentDatatype);let a=t.semantic,c=t.setIndex;a===bt.FEATURE_ID&&c>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=c+1);let u=a===bt.POSITION,f=u?0:n,d=an.getNumberOfComponents(r),p={index:f,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:d,componentDatatype:s,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};if(e.attributes.push(p),!u||!i)return;let g=e.runtimePrimitive.positionBuffer2D,h={index:n,vertexBuffer:g,count:t.count,componentsPerAttribute:d,componentDatatype:X.FLOAT,offsetInBytes:0,strideInBytes:void 0,normalize:t.normalized};e.attributes.push(h)}function ske(e,t,n,i){let o=t.quantization,r,s;l(o)?(r=o.type,s=o.componentDatatype):(r=t.type,s=t.componentDatatype);let a=t.normalized,u=an.getNumberOfComponents(r)/i,f=X.getSizeInBytes(s),d=u*f,p=t.byteStride;for(let g=0;g<i;g++){let h=t.byteOffset+g*d,A={index:n+g,vertexBuffer:t.buffer,componentsPerAttribute:u,componentDatatype:s,offsetInBytes:h,strideInBytes:p,normalize:a};e.attributes.push(A)}}function ake(e,t){let n=t.variableName,i=`v_${n}`,o;n==="normalMC"?(i="v_normalEC",o=t.glslType):n==="tangentMC"?(o="vec3",i="v_tangentEC"):o=t.glslType,e.addVarying(o,i)}function cke(e,t,n){let i=t.attribute.semantic,o=t.variableName,r,s;t.isQuantized?(r=`a_quantized_${o}`,s=t.quantizedGlslType):(r=`a_${o}`,s=t.glslType);let a=i===bt.POSITION;a?e.setPositionAttribute(s,r):e.addAttribute(s,r),a&&n&&e.addAttribute("vec3","a_position2D")}function lke(e,t,n){let i=ys.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,o=ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,r=t.variableName;r==="tangentMC"?(e.addStructField(i,"vec3","tangentMC"),e.addStructField(i,"float","tangentSignMC"),e.addStructField(o,"vec3","tangentEC")):r==="normalMC"?(e.addStructField(i,"vec3","normalMC"),e.addStructField(o,"vec3","normalEC")):(e.addStructField(i,t.glslType,r),e.addStructField(o,t.glslType,r)),r==="positionMC"&&n&&e.addStructField(i,"vec3","position2D")}function uke(e,t,n){let i=ys.FUNCTION_ID_INITIALIZE_ATTRIBUTES,o=t.variableName;if(o==="positionMC"&&n){let a="attributes.position2D = a_position2D;";e.addFunctionLines(i,[a])}if(t.isQuantized)return;let s=[];o==="tangentMC"?(s.push("attributes.tangentMC = a_tangentMC.xyz;"),s.push("attributes.tangentSignMC = a_tangentMC.w;")):s.push(`attributes.${o} = a_${o};`),e.addFunctionLines(i,s)}function fke(e,t){let n=t.attribute.semantic,i=t.attribute.setIndex;if(l(n)&&!l(i))return;let o=ys.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,r=t.variableName,s=`v_${r} = attributes.${r};`;e.addFunctionLines(o,[s]),o=ys.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,s=`attributes.${r} = v_${r};`,e.addFunctionLines(o,[s])}function dke(e,t){let n=!1,i=!1;for(let o=0;o<t.length;o++){let r=t[o];r.semantic===bt.NORMAL?n=!0:r.semantic===bt.TANGENT&&(i=!0)}!n||!i||(e.addDefine("HAS_BITANGENTS"),e.addVarying("vec3","v_bitangentEC"),e.addStructField(ys.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"vec3","bitangentMC"),e.addStructField(ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","bitangentEC"))}var zL=ys;var HL=`#ifdef LIGHTING_PBR +vec3 computePbrLighting(czm_modelMaterial inputMaterial, ProcessedAttributes attributes) +{ + czm_pbrParameters pbrParameters; + pbrParameters.diffuseColor = inputMaterial.diffuse; + pbrParameters.f0 = inputMaterial.specular; + pbrParameters.roughness = inputMaterial.roughness; + + #ifdef USE_CUSTOM_LIGHT_COLOR + vec3 lightColorHdr = model_lightColorHdr; + #else + vec3 lightColorHdr = czm_lightColorHdr; + #endif + + vec3 color = inputMaterial.diffuse; + #ifdef HAS_NORMALS + color = czm_pbrLighting( + attributes.positionEC, + inputMaterial.normalEC, + czm_lightDirectionEC, + lightColorHdr, + pbrParameters + ); + + #ifdef USE_IBL_LIGHTING + color += imageBasedLightingStage( + attributes.positionEC, + inputMaterial.normalEC, + czm_lightDirectionEC, + lightColorHdr, + pbrParameters + ); + #endif + #endif + + color *= inputMaterial.occlusion; + color += inputMaterial.emissive; + + // In HDR mode, the frame buffer is in linear color space. The + // post-processing stages (see PostProcessStageCollection) will handle + // tonemapping. However, if HDR is not enabled, we must tonemap else large + // values may be clamped to 1.0 + #ifndef HDR + color = czm_acesTonemapping(color); + #endif + + return color; +} +#endif + +void lightingStage(inout czm_modelMaterial material, ProcessedAttributes attributes) +{ + // Even though the lighting will only set the diffuse color, + // pass all other properties so further stages have access to them. + vec3 color = vec3(0.0); + + #ifdef LIGHTING_PBR + color = computePbrLighting(material, attributes); + #else // unlit + color = material.diffuse; + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + // The colors resulting from point cloud styles are adjusted differently. + color = czm_gammaCorrect(color); + #elif !defined(HDR) + // If HDR is not enabled, the frame buffer stores sRGB colors rather than + // linear colors so the linear value must be converted. + color = czm_linearToSrgb(color); + #endif + + material.diffuse = color; +} +`;var mke={UNLIT:0,PBR:1},rp=Object.freeze(mke);var zne={name:"LightingPipelineStage"};zne.process=function(e,t){let n=e.model,i=e.lightingOptions,o=e.shaderBuilder;if(l(n.lightColor)){o.addDefine("USE_CUSTOM_LIGHT_COLOR",void 0,Te.FRAGMENT),o.addUniform("vec3","model_lightColorHdr",Te.FRAGMENT);let s=e.uniformMap;s.model_lightColorHdr=function(){return n.lightColor}}i.lightingModel===rp.PBR?o.addDefine("LIGHTING_PBR",void 0,Te.FRAGMENT):o.addDefine("LIGHTING_UNLIT",void 0,Te.FRAGMENT),o.addFragmentLines(HL)};var GL=zne;var WL=`// If the style color is white, it implies the feature has not been styled. +bool isDefaultStyleColor(vec3 color) +{ + return all(greaterThan(color, vec3(1.0 - czm_epsilon3))); +} + +vec3 blend(vec3 sourceColor, vec3 styleColor, float styleColorBlend) +{ + vec3 blendColor = mix(sourceColor, styleColor, styleColorBlend); + vec3 color = isDefaultStyleColor(styleColor.rgb) ? sourceColor : blendColor; + return color; +} + +vec2 computeTextureTransform(vec2 texCoord, mat3 textureTransform) +{ + return vec2(textureTransform * vec3(texCoord, 1.0)); +} + +#ifdef HAS_NORMALS +vec3 computeNormal(ProcessedAttributes attributes) +{ + // Geometry normal. This is already normalized + vec3 ng = attributes.normalEC; + + vec3 normal = ng; + #if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME) + vec2 normalTexCoords = TEXCOORD_NORMAL; + #ifdef HAS_NORMAL_TEXTURE_TRANSFORM + normalTexCoords = computeTextureTransform(normalTexCoords, u_normalTextureTransform); + #endif + + // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set + #ifdef HAS_BITANGENTS + vec3 t = attributes.tangentEC; + vec3 b = attributes.bitangentEC; + mat3 tbn = mat3(t, b, ng); + vec3 n = texture(u_normalTexture, normalTexCoords).rgb; + normal = normalize(tbn * (2.0 * n - 1.0)); + #elif (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + // If derivatives are available (not IE 10), compute tangents + vec3 positionEC = attributes.positionEC; + vec3 pos_dx = dFdx(positionEC); + vec3 pos_dy = dFdy(positionEC); + vec3 tex_dx = dFdx(vec3(normalTexCoords,0.0)); + vec3 tex_dy = dFdy(vec3(normalTexCoords,0.0)); + vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t); + t = normalize(t - ng * dot(ng, t)); + vec3 b = normalize(cross(ng, t)); + mat3 tbn = mat3(t, b, ng); + vec3 n = texture(u_normalTexture, normalTexCoords).rgb; + normal = normalize(tbn * (2.0 * n - 1.0)); + #endif + #endif + + #ifdef HAS_DOUBLE_SIDED_MATERIAL + if (czm_backFacing()) { + normal = -normal; + } + #endif + + return normal; +} +#endif + +void materialStage(inout czm_modelMaterial material, ProcessedAttributes attributes, SelectedFeature feature) +{ + #ifdef HAS_NORMALS + material.normalEC = computeNormal(attributes); + #endif + + vec4 baseColorWithAlpha = vec4(1.0); + // Regardless of whether we use PBR, set a base color + #ifdef HAS_BASE_COLOR_TEXTURE + vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR; + + #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM + baseColorTexCoords = computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform); + #endif + + baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords)); + + #ifdef HAS_BASE_COLOR_FACTOR + baseColorWithAlpha *= u_baseColorFactor; + #endif + #elif defined(HAS_BASE_COLOR_FACTOR) + baseColorWithAlpha = u_baseColorFactor; + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + baseColorWithAlpha = v_pointCloudColor; + #elif defined(HAS_COLOR_0) + vec4 color = attributes.color_0; + // .pnts files store colors in the sRGB color space + #ifdef HAS_SRGB_COLOR + color = czm_srgbToLinear(color); + #endif + baseColorWithAlpha *= color; + #endif + + material.diffuse = baseColorWithAlpha.rgb; + material.alpha = baseColorWithAlpha.a; + + #ifdef USE_CPU_STYLING + material.diffuse = blend(material.diffuse, feature.color.rgb, model_colorBlend); + #endif + + #ifdef HAS_OCCLUSION_TEXTURE + vec2 occlusionTexCoords = TEXCOORD_OCCLUSION; + #ifdef HAS_OCCLUSION_TEXTURE_TRANSFORM + occlusionTexCoords = computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform); + #endif + material.occlusion = texture(u_occlusionTexture, occlusionTexCoords).r; + #endif + + #ifdef HAS_EMISSIVE_TEXTURE + vec2 emissiveTexCoords = TEXCOORD_EMISSIVE; + #ifdef HAS_EMISSIVE_TEXTURE_TRANSFORM + emissiveTexCoords = computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform); + #endif + + vec3 emissive = czm_srgbToLinear(texture(u_emissiveTexture, emissiveTexCoords).rgb); + #ifdef HAS_EMISSIVE_FACTOR + emissive *= u_emissiveFactor; + #endif + material.emissive = emissive; + #elif defined(HAS_EMISSIVE_FACTOR) + material.emissive = u_emissiveFactor; + #endif + + #if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS) + #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE + vec2 specularGlossinessTexCoords = TEXCOORD_SPECULAR_GLOSSINESS; + #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE_TRANSFORM + specularGlossinessTexCoords = computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform); + #endif + + vec4 specularGlossiness = czm_srgbToLinear(texture(u_specularGlossinessTexture, specularGlossinessTexCoords)); + vec3 specular = specularGlossiness.rgb; + float glossiness = specularGlossiness.a; + #ifdef HAS_SPECULAR_FACTOR + specular *= u_specularFactor; + #endif + + #ifdef HAS_GLOSSINESS_FACTOR + glossiness *= u_glossinessFactor; + #endif + #else + #ifdef HAS_SPECULAR_FACTOR + vec3 specular = clamp(u_specularFactor, vec3(0.0), vec3(1.0)); + #else + vec3 specular = vec3(1.0); + #endif + + #ifdef HAS_GLOSSINESS_FACTOR + float glossiness = clamp(u_glossinessFactor, 0.0, 1.0); + #else + float glossiness = 1.0; + #endif + #endif + + #ifdef HAS_DIFFUSE_TEXTURE + vec2 diffuseTexCoords = TEXCOORD_DIFFUSE; + #ifdef HAS_DIFFUSE_TEXTURE_TRANSFORM + diffuseTexCoords = computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform); + #endif + + vec4 diffuse = czm_srgbToLinear(texture(u_diffuseTexture, diffuseTexCoords)); + #ifdef HAS_DIFFUSE_FACTOR + diffuse *= u_diffuseFactor; + #endif + #elif defined(HAS_DIFFUSE_FACTOR) + vec4 diffuse = clamp(u_diffuseFactor, vec4(0.0), vec4(1.0)); + #else + vec4 diffuse = vec4(1.0); + #endif + czm_pbrParameters parameters = czm_pbrSpecularGlossinessMaterial( + diffuse.rgb, + specular, + glossiness + ); + material.diffuse = parameters.diffuseColor; + // the specular glossiness extension's alpha overrides anything set + // by the base material. + material.alpha = diffuse.a; + material.specular = parameters.f0; + material.roughness = parameters.roughness; + #elif defined(LIGHTING_PBR) + #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE + vec2 metallicRoughnessTexCoords = TEXCOORD_METALLIC_ROUGHNESS; + #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE_TRANSFORM + metallicRoughnessTexCoords = computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform); + #endif + + vec3 metallicRoughness = texture(u_metallicRoughnessTexture, metallicRoughnessTexCoords).rgb; + float metalness = clamp(metallicRoughness.b, 0.0, 1.0); + float roughness = clamp(metallicRoughness.g, 0.04, 1.0); + #ifdef HAS_METALLIC_FACTOR + metalness *= u_metallicFactor; + #endif + + #ifdef HAS_ROUGHNESS_FACTOR + roughness *= u_roughnessFactor; + #endif + #else + #ifdef HAS_METALLIC_FACTOR + float metalness = clamp(u_metallicFactor, 0.0, 1.0); + #else + float metalness = 1.0; + #endif + + #ifdef HAS_ROUGHNESS_FACTOR + float roughness = clamp(u_roughnessFactor, 0.04, 1.0); + #else + float roughness = 1.0; + #endif + #endif + czm_pbrParameters parameters = czm_pbrMetallicRoughnessMaterial( + material.diffuse, + metalness, + roughness + ); + material.diffuse = parameters.diffuseColor; + material.specular = parameters.f0; + material.roughness = parameters.roughness; + #endif +} +`;var hke=Nt.Material,Q5=Nt.MetallicRoughness,$5=Nt.SpecularGlossiness,Hne={name:"MaterialPipelineStage",_processTexture:tg,_processTextureTransform:Gne};Hne.process=function(e,t,n){let i=t.material,o=e.model,r=l(o.classificationType),s=r,a=e.uniformMap,c=e.shaderBuilder,u=n.context.defaultTexture,f=n.context.defaultNormalTexture,d=n.context.defaultEmissiveTexture;pke(i,a,c,u,f,d,s),l(i.specularGlossiness)?_ke(i,a,c,u,s):gke(i,a,c,u,s);let p=Qt.getAttributeBySemantic(t,bt.NORMAL),g=e.lightingOptions;i.unlit||!p||r?g.lightingModel=rp.UNLIT:g.lightingModel=rp.PBR;let h=o.backFaceCulling&&!i.doubleSided;e.renderStateOptions.cull.enabled=h;let A=e.alphaOptions;i.alphaMode===Kh.BLEND?A.pass=be.TRANSLUCENT:i.alphaMode===Kh.MASK&&(A.alphaCutoff=i.alphaCutoff),c.addFragmentLines(WL),i.doubleSided&&c.addDefine("HAS_DOUBLE_SIDED_MATERIAL",void 0,Te.BOTH)};function Gne(e,t,n,i,o){let r=`HAS_${o}_TEXTURE_TRANSFORM`;e.addDefine(r,void 0,Te.FRAGMENT);let s=`${i}Transform`;e.addUniform("mat3",s,Te.FRAGMENT),t[s]=function(){return n.transform}}function tg(e,t,n,i,o,r){e.addUniform("sampler2D",i,Te.FRAGMENT),t[i]=function(){return y(n.texture,r)};let s=`HAS_${o}_TEXTURE`;e.addDefine(s,void 0,Te.FRAGMENT);let c=`v_texCoord_${n.texCoord}`,u=`TEXCOORD_${o}`;e.addDefine(u,c,Te.FRAGMENT);let f=n.transform;l(f)&&!Z.equals(f,Z.IDENTITY)&&Gne(e,t,n,i,o)}function pke(e,t,n,i,o,r,s){let a=e.emissiveFactor;if(l(a)&&!m.equals(a,hke.DEFAULT_EMISSIVE_FACTOR)){n.addUniform("vec3","u_emissiveFactor",Te.FRAGMENT),t.u_emissiveFactor=function(){return e.emissiveFactor},n.addDefine("HAS_EMISSIVE_FACTOR",void 0,Te.FRAGMENT);let f=e.emissiveTexture;l(f)&&!s&&tg(n,t,f,"u_emissiveTexture","EMISSIVE",r)}let c=e.normalTexture;l(c)&&!s&&tg(n,t,c,"u_normalTexture","NORMAL",o);let u=e.occlusionTexture;l(u)&&!s&&tg(n,t,u,"u_occlusionTexture","OCCLUSION",i)}function _ke(e,t,n,i,o){let r=e.specularGlossiness;n.addDefine("USE_SPECULAR_GLOSSINESS",void 0,Te.FRAGMENT);let s=r.diffuseTexture;l(s)&&!o&&tg(n,t,s,"u_diffuseTexture","DIFFUSE",i);let a=r.diffuseFactor;l(a)&&!re.equals(a,$5.DEFAULT_DIFFUSE_FACTOR)&&(n.addUniform("vec4","u_diffuseFactor",Te.FRAGMENT),t.u_diffuseFactor=function(){return r.diffuseFactor},n.addDefine("HAS_DIFFUSE_FACTOR",void 0,Te.FRAGMENT));let c=r.specularGlossinessTexture;l(c)&&!o&&tg(n,t,c,"u_specularGlossinessTexture","SPECULAR_GLOSSINESS",i);let u=r.specularFactor;l(u)&&!m.equals(u,$5.DEFAULT_SPECULAR_FACTOR)&&(n.addUniform("vec3","u_specularFactor",Te.FRAGMENT),t.u_specularFactor=function(){return r.specularFactor},n.addDefine("HAS_SPECULAR_FACTOR",void 0,Te.FRAGMENT));let f=r.glossinessFactor;l(f)&&f!==$5.DEFAULT_GLOSSINESS_FACTOR&&(n.addUniform("float","u_glossinessFactor",Te.FRAGMENT),t.u_glossinessFactor=function(){return r.glossinessFactor},n.addDefine("HAS_GLOSSINESS_FACTOR",void 0,Te.FRAGMENT))}function gke(e,t,n,i,o){let r=e.metallicRoughness;n.addDefine("USE_METALLIC_ROUGHNESS",void 0,Te.FRAGMENT);let s=r.baseColorTexture;l(s)&&!o&&tg(n,t,s,"u_baseColorTexture","BASE_COLOR",i);let a=r.baseColorFactor;l(a)&&!re.equals(a,Q5.DEFAULT_BASE_COLOR_FACTOR)&&(n.addUniform("vec4","u_baseColorFactor",Te.FRAGMENT),t.u_baseColorFactor=function(){return r.baseColorFactor},n.addDefine("HAS_BASE_COLOR_FACTOR",void 0,Te.FRAGMENT));let c=r.metallicRoughnessTexture;l(c)&&!o&&tg(n,t,c,"u_metallicRoughnessTexture","METALLIC_ROUGHNESS",i);let u=r.metallicFactor;l(u)&&u!==Q5.DEFAULT_METALLIC_FACTOR&&(n.addUniform("float","u_metallicFactor",Te.FRAGMENT),t.u_metallicFactor=function(){return r.metallicFactor},n.addDefine("HAS_METALLIC_FACTOR",void 0,Te.FRAGMENT));let f=r.roughnessFactor;l(f)&&f!==Q5.DEFAULT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_roughnessFactor",Te.FRAGMENT),t.u_roughnessFactor=function(){return r.roughnessFactor},n.addDefine("HAS_ROUGHNESS_FACTOR",void 0,Te.FRAGMENT))}var jL=Hne;var YL=`void morphTargetsStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + attributes.positionMC = getMorphedPosition(positionMC); + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = getMorphedNormal(normalMC); + #endif + + #ifdef HAS_TANGENTS + vec3 tangentMC = attributes.tangentMC; + attributes.tangentMC = getMorphedTangent(tangentMC); + #endif +}`;var fa={name:"MorphTargetsPipelineStage",FUNCTION_ID_GET_MORPHED_POSITION:"getMorphedPosition",FUNCTION_SIGNATURE_GET_MORPHED_POSITION:"vec3 getMorphedPosition(in vec3 position)",FUNCTION_ID_GET_MORPHED_NORMAL:"getMorphedNormal",FUNCTION_SIGNATURE_GET_MORPHED_NORMAL:"vec3 getMorphedNormal(in vec3 normal)",FUNCTION_ID_GET_MORPHED_TANGENT:"getMorphedTangent",FUNCTION_SIGNATURE_GET_MORPHED_TANGENT:"vec3 getMorphedTangent(in vec3 tangent)"};fa.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_MORPH_TARGETS",void 0,Te.VERTEX),Eke(n);let i=t.morphTargets.length;for(let a=0;a<i;a++){let c=t.morphTargets[a].attributes,u=c.length;for(let f=0;f<u;f++){let d=c[f],p=d.semantic;p!==bt.POSITION&&p!==bt.NORMAL&&p!==bt.TANGENT||(Ake(e,d,e.attributeIndex,a),e.attributeIndex++)}}bke(n);let r=e.runtimeNode.morphWeights.length;n.addUniform("float",`u_morphWeights[${r}]`,Te.VERTEX),n.addVertexLines(YL);let s={u_morphWeights:function(){return e.runtimeNode.morphWeights}};e.uniformMap=gt(s,e.uniformMap)};var yke={attributeString:void 0,functionId:void 0};function Ake(e,t,n,i){let o=e.shaderBuilder;xke(e,t,n);let r=Cke(t,yke);Tke(o,r,i)}function xke(e,t,n){let i={index:n,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,componentsPerAttribute:an.getNumberOfComponents(t.type),componentDatatype:t.componentDatatype,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};e.attributes.push(i)}function Cke(e,t){switch(e.semantic){case bt.POSITION:t.attributeString="Position",t.functionId=fa.FUNCTION_ID_GET_MORPHED_POSITION;break;case bt.NORMAL:t.attributeString="Normal",t.functionId=fa.FUNCTION_ID_GET_MORPHED_NORMAL;break;case bt.TANGENT:t.attributeString="Tangent",t.functionId=fa.FUNCTION_ID_GET_MORPHED_TANGENT;break;default:break}return t}function Tke(e,t,n){let i=t.attributeString,o=`a_target${i}_${n}`,r=`morphed${i} += u_morphWeights[${n}] * a_target${i}_${n};`;e.addAttribute("vec3",o),e.addFunctionLines(t.functionId,[r])}function Eke(e){e.addFunction(fa.FUNCTION_ID_GET_MORPHED_POSITION,fa.FUNCTION_SIGNATURE_GET_MORPHED_POSITION,Te.VERTEX);let t="vec3 morphedPosition = position;";e.addFunctionLines(fa.FUNCTION_ID_GET_MORPHED_POSITION,[t]),e.addFunction(fa.FUNCTION_ID_GET_MORPHED_NORMAL,fa.FUNCTION_SIGNATURE_GET_MORPHED_NORMAL,Te.VERTEX);let n="vec3 morphedNormal = normal;";e.addFunctionLines(fa.FUNCTION_ID_GET_MORPHED_NORMAL,[n]),e.addFunction(fa.FUNCTION_ID_GET_MORPHED_TANGENT,fa.FUNCTION_SIGNATURE_GET_MORPHED_TANGENT,Te.VERTEX);let i="vec3 morphedTangent = tangent;";e.addFunctionLines(fa.FUNCTION_ID_GET_MORPHED_TANGENT,[i])}function bke(e){let t="return morphedPosition;";e.addFunctionLines(fa.FUNCTION_ID_GET_MORPHED_POSITION,[t]);let n="return morphedNormal;";e.addFunctionLines(fa.FUNCTION_ID_GET_MORPHED_NORMAL,[n]);let i="return morphedTangent;";e.addFunctionLines(fa.FUNCTION_ID_GET_MORPHED_TANGENT,[i])}var qL=fa;var Wne={name:"PickingPipelineStage"};Wne.process=function(e,t,n){let i=n.context,o=e.runtimeNode,r=e.shaderBuilder,s=e.model,a=o.node.instances;if(e.hasPropertyTable)Ske(e,t,a,i);else if(l(a))wke(e,i);else{let c=jne(e),u=i.createPickId(c);s._pipelineResources.push(u),s._pickIds.push(u),r.addUniform("vec4","czm_pickColor",Te.FRAGMENT);let f=e.uniformMap;f.czm_pickColor=function(){return u.color},e.pickId="czm_pickColor"}};function jne(e,t){let n=e.model;if(l(n.pickObject))return n.pickObject;let i={model:n,node:e.runtimeNode,primitive:e.runtimePrimitive},o;if(Vo.is3DTiles(n.type)){let r=n.content;o={content:r,primitive:r.tileset,detail:i}}else o={primitive:n,detail:i};return o.id=n.id,l(t)&&(o.instanceId=t),o}function Ske(e,t,n){let i=e.model,o,r,s=i.featureIdLabel,a=i.instanceFeatureIdLabel;l(i.featureTableId)?o=i.featureTableId:l(n)?(r=Qt.getFeatureIdsByLabel(n.featureIds,a),o=r.propertyTableId):(r=Qt.getFeatureIdsByLabel(t.featureIds,s),o=r.propertyTableId);let c=i.featureTables[o];e.shaderBuilder.addUniform("sampler2D","model_pickTexture",Te.FRAGMENT);let f=c.batchTexture;e.uniformMap.model_pickTexture=function(){return y(f.pickTexture,f.defaultTexture)},e.pickId="((selectedFeature.id < int(model_featuresLength)) ? texture(model_pickTexture, selectedFeature.st) : vec4(0.0))"}function wke(e,t){let n=e.instanceCount,i=new Array(n),o=new Uint8Array(n*4),r=e.model,s=r._pipelineResources;for(let d=0;d<n;d++){let p=jne(e,d),g=t.createPickId(p);s.push(g),i[d]=g;let h=g.color;o[d*4+0]=z.floatToByte(h.red),o[d*4+1]=z.floatToByte(h.green),o[d*4+2]=z.floatToByte(h.blue),o[d*4+3]=z.floatToByte(h.alpha)}r._pickIds=i;let a=mt.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1;let c=!1;r.statistics.addBuffer(a,c),s.push(a);let u={index:e.attributeIndex++,vertexBuffer:a,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0,instanceDivisor:1};e.attributes.push(u);let f=e.shaderBuilder;f.addDefine("USE_PICKING",void 0,Te.BOTH),f.addAttribute("vec4","a_pickColor"),f.addVarying("vec4","v_pickColor"),e.pickId="v_pickColor"}var XL=Wne;var vke={ADD:0,REPLACE:1},zo=Object.freeze(vke);var KL=`float getPointSizeFromAttenuation(vec3 positionEC) { + // Variables are packed into a single vector to minimize gl.uniformXXX() calls + float pointSize = model_pointCloudParameters.x; + float geometricError = model_pointCloudParameters.y; + float depthMultiplier = model_pointCloudParameters.z; + + float depth = -positionEC.z; + return min((geometricError / depth) * depthMultiplier, pointSize); +} + +#ifdef HAS_POINT_CLOUD_SHOW_STYLE +float pointCloudShowStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return float(getShowFromStyle(attributes, metadata, tiles3d_tileset_time)); +} +#endif + +#ifdef HAS_POINT_CLOUD_COLOR_STYLE +vec4 pointCloudColorStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return getColorFromStyle(attributes, metadata, tiles3d_tileset_time); +} +#endif + +#ifdef HAS_POINT_CLOUD_POINT_SIZE_STYLE +float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return float(getPointSizeFromStyle(attributes, metadata, tiles3d_tileset_time)); +} +#elif defined(HAS_POINT_CLOUD_ATTENUATION) +float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + return getPointSizeFromAttenuation(v_positionEC); +} +#endif + +#ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING +float pointCloudBackFaceCullingStage() { + #if defined(HAS_NORMALS) && !defined(HAS_DOUBLE_SIDED_MATERIAL) + // This needs to be computed in eye coordinates so we can't use attributes.normalMC + return step(-v_normalEC.z, 0.0); + #else + return 1.0; + #endif +} +#endif`;var Dke=new re,qne={name:"PointCloudStylingPipelineStage"};qne.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=o.style,s=o.structuralMetadata,a=l(s)?s.propertyAttributes:void 0,c=l(o.featureTableId)&&o.featureTables[o.featureTableId].featuresLength>0,u=!l(a)&&c;if(l(r)&&!u){let A=Mke(a),x=Rke(r,A);Bke(i,x);let T=Lke(x).indexOf("normalMC")>=0,E=Qt.getAttributeBySemantic(t,bt.NORMAL);if(T&&!E)throw new de("Style references the NORMAL semantic but the point cloud does not have normals");i.addDefine("COMPUTE_POSITION_WC_STYLE",void 0,Te.VERTEX),x.styleTranslucent&&(e.alphaOptions.pass=be.TRANSLUCENT)}let f=o.pointCloudShading;f.attenuation&&i.addDefine("HAS_POINT_CLOUD_ATTENUATION",void 0,Te.VERTEX),f.backFaceCulling&&i.addDefine("HAS_POINT_CLOUD_BACK_FACE_CULLING",void 0,Te.VERTEX);let d,p,g;Vo.is3DTiles(o.type)&&(p=!0,d=o.content,g=d.tile.refine===zo.ADD),i.addUniform("vec4","model_pointCloudParameters",Te.VERTEX),i.addVertexLines(KL);let h=e.uniformMap;h.model_pointCloudParameters=function(){let A=Dke,x=1;p&&(x=g?5:d.tileset.maximumScreenSpaceError),A.x=y(f.maximumAttenuation,x),A.x*=n.pixelRatio;let C=Ike(e,t,f,d);A.y=C*f.geometricErrorScale;let T=n.context,E=n.camera.frustum,S;return n.mode===ne.SCENE2D||E instanceof tn?S=Number.POSITIVE_INFINITY:S=T.drawingBufferHeight/n.camera.frustum.sseDenominator,A.z=S,p&&(A.w=d.tileset.timeSinceLoad),A}};var Yne=new m;function Ike(e,t,n,i){if(l(i)){let f=i.tile.geometricError;if(f>0)return f}if(l(n.baseResolution))return n.baseResolution;let o=Qt.getAttributeBySemantic(t,bt.POSITION),r=o.count,s=e.runtimeNode.transform,a=m.subtract(o.max,o.min,Yne);a=B.multiplyByPointAsVector(s,a,Yne);let c=a.x*a.y*a.z;return P.cbrt(c/r)}var Pke={colorStyleFunction:void 0,showStyleFunction:void 0,pointSizeStyleFunction:void 0,styleTranslucent:!1},Oke={POSITION:"attributes.positionMC",POSITION_ABSOLUTE:"v_positionWC",COLOR:"attributes.color_0",NORMAL:"attributes.normalMC"};function Mke(e){let t=Ye(Oke);if(!l(e))return t;for(let n=0;n<e.length;n++){let o=e[n].properties;for(let r in o)o.hasOwnProperty(r)&&(t[r]=`metadata.${r}`)}return t}var e6="ProcessedAttributes attributes, Metadata metadata, float tiles3d_tileset_time";function Rke(e,t){let n=Pke,i={translucent:!1};return n.colorStyleFunction=e.getColorShaderFunction(`getColorFromStyle(${e6})`,t,i),n.showStyleFunction=e.getShowShaderFunction(`getShowFromStyle(${e6})`,t,i),n.pointSizeStyleFunction=e.getPointSizeShaderFunction(`getPointSizeFromStyle(${e6})`,t,i),n.styleTranslucent=l(n.colorStyleFunction)&&i.translucent,n}function Bke(e,t){let n=t.colorStyleFunction;l(n)&&(e.addDefine("HAS_POINT_CLOUD_COLOR_STYLE",void 0,Te.BOTH),e.addVertexLines(n),e.addVarying("vec4","v_pointCloudColor"));let i=t.showStyleFunction;l(i)&&(e.addDefine("HAS_POINT_CLOUD_SHOW_STYLE",void 0,Te.VERTEX),e.addVertexLines(i));let o=t.pointSizeStyleFunction;l(o)&&(e.addDefine("HAS_POINT_CLOUD_POINT_SIZE_STYLE",void 0,Te.VERTEX),e.addVertexLines(o))}function t6(e,t){let n=/attributes\.(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function Lke(e){let t=e.colorStyleFunction,n=e.showStyleFunction,i=e.pointSizeStyleFunction,o=[];return l(t)&&t6(t,o),l(n)&&t6(n,o),l(i)&&t6(i,o),o}var JL=qne;var ZL=`void primitiveOutlineStage() { + v_outlineCoordinates = a_outlineCoordinates; +} +`;var QL=`void primitiveOutlineStage(inout czm_modelMaterial material) { + if (!model_showOutline) { + return; + } + + float outlineX = + texture(model_outlineTexture, vec2(v_outlineCoordinates.x, 0.5)).r; + float outlineY = + texture(model_outlineTexture, vec2(v_outlineCoordinates.y, 0.5)).r; + float outlineZ = + texture(model_outlineTexture, vec2(v_outlineCoordinates.z, 0.5)).r; + float outlineness = max(outlineX, max(outlineY, outlineZ)); + + material.diffuse = mix(material.diffuse, model_outlineColor.rgb, model_outlineColor.a * outlineness); +} + +`;var Xne={name:"PrimitiveOutlinePipelineStage"};Xne.process=function(e,t,n){let i=e.shaderBuilder,o=e.uniformMap;i.addDefine("HAS_PRIMITIVE_OUTLINE",void 0,Te.BOTH),i.addAttribute("vec3","a_outlineCoordinates"),i.addVarying("vec3","v_outlineCoordinates");let r=t.outlineCoordinates,s={index:e.attributeIndex++,vertexBuffer:r.buffer,componentsPerAttribute:an.getNumberOfComponents(r.type),componentDatatype:r.componentDatatype,offsetInBytes:r.byteOffset,strideInBytes:r.byteStride,normalize:r.normalized};e.attributes.push(s),i.addUniform("sampler2D","model_outlineTexture",Te.FRAGMENT);let a=zC.createTexture(n.context);o.model_outlineTexture=function(){return a};let c=e.model;i.addUniform("vec4","model_outlineColor",Te.FRAGMENT),o.model_outlineColor=function(){return c.outlineColor},i.addUniform("bool","model_showOutline",Te.FRAGMENT),o.model_showOutline=function(){return c.showOutline},i.addVertexLines(ZL),i.addFragmentLines(QL)};var $L=Xne;var Kne={name:"PrimitiveStatisticsPipelineStage",_countGeometry:Jne,_count2DPositions:Zne,_countMorphTargetAttributes:Qne,_countMaterialTextures:$ne,_countFeatureIdTextures:eie,_countBinaryMetadata:tie};Kne.process=function(e,t,n){let i=e.model,o=i.statistics;Jne(o,t),Zne(o,e.runtimePrimitive),Qne(o,t),$ne(o,t.material),eie(o,t.featureIds),tie(o,i)};function Jne(e,t){let n=l(t.indices)?t.indices.count:Qt.getAttributeBySemantic(t,"POSITION").count,i=t.primitiveType;i===Le.POINTS?e.pointsLength+=n:Le.isTriangles(i)&&(e.trianglesLength+=Nke(i,n));let o=t.attributes,r=o.length;for(let c=0;c<r;c++){let u=o[c];if(l(u.buffer)){let f=l(u.typedArray);e.addBuffer(u.buffer,f)}}let s=t.outlineCoordinates;l(s)&&l(s.buffer)&&e.addBuffer(s.buffer,!1);let a=t.indices;if(l(a)&&l(a.buffer)){let c=l(a.typedArray);e.addBuffer(a.buffer,c)}}function Nke(e,t){switch(e){case Le.TRIANGLES:return t/3;case Le.TRIANGLE_STRIP:case Le.TRIANGLE_FAN:return Math.max(t-2,0);default:return 0}}function Zne(e,t){let n=t.positionBuffer2D;l(n)&&e.addBuffer(n,!0)}function Qne(e,t){let n=t.morphTargets;if(!l(n))return;let i=!1,o=n.length;for(let r=0;r<o;r++){let s=n[r].attributes,a=s.length;for(let c=0;c<a;c++){let u=s[c];l(u.buffer)&&e.addBuffer(u.buffer,i)}}}function $ne(e,t){let n=Fke(t),i=n.length;for(let o=0;o<i;o++){let r=n[o];l(r)&&l(r.texture)&&e.addTexture(r.texture)}}function Fke(e){let t=e.metallicRoughness,n=[e.emissiveTexture,e.normalTexture,e.occlusionTexture,t.baseColorTexture,t.metallicRoughnessTexture],i=e.specularGlossiness;return l(i)&&(n.push(i.diffuseTexture),n.push(i.specularGlossinessTexture)),n}function eie(e,t){let n=t.length;for(let i=0;i<n;i++){let o=t[i];if(o instanceof Nt.FeatureIdTexture){let r=o.textureReader;l(r.texture)&&e.addTexture(r.texture)}}}function tie(e,t){let n=t.structuralMetadata;l(n)&&(Uke(e,n),e.propertyTablesByteLength+=n.propertyTablesByteLength);let i=t.featureTables;if(!l(i))return;let o=i.length;for(let r=0;r<o;r++){let s=i[r];e.addBatchTexture(s.batchTexture)}}function Uke(e,t){let n=t.propertyTextures;if(!l(n))return;let i=n.length;for(let o=0;o<i;o++){let s=n[o].properties;for(let a in s)if(s.hasOwnProperty(a)){let u=s[a].textureReader;l(u.texture)&&e.addTexture(u.texture)}}}var eN=Kne;var Vke=new B,kke=new B,nie={name:"SceneMode2DPipelineStage"};nie.process=function(e,t,n){let i=Qt.getAttributeBySemantic(t,bt.POSITION),o=e.shaderBuilder,r=e.model,s=r.sceneGraph.computedModelMatrix,a=e.runtimeNode.computedTransform,c=B.multiplyTransformation(s,a,Vke),u=Gke(e,c,n),f=e.runtimePrimitive;f.boundingSphere2D=u;let d=e.runtimeNode.node.instances;if(l(d))return;if(l(i.typedArray)){let A=Yke(i,c,u,n);f.positionBuffer2D=A,r._modelResources.push(A),i.typedArray=void 0}o.addDefine("USE_2D_POSITIONS",void 0,Te.VERTEX),o.addUniform("mat4","u_modelView2D",Te.VERTEX);let p=B.fromTranslation(u.center,new B),g=n.context,h={u_modelView2D:function(){return B.multiplyTransformation(g.uniformState.view,p,kke)}};e.uniformMap=gt(h,e.uniformMap)};var zke=new m,Hke=new m;function Gke(e,t,n){let i=B.multiplyByPoint(t,e.positionMin,zke),o=Qi.computeActualWgs84Position(n,i,i),r=B.multiplyByPoint(t,e.positionMax,Hke),s=Qi.computeActualWgs84Position(n,r,r);return ae.fromCornerPoints(o,s,new ae)}var iie=new m;function Wke(e,t){let n=e.length,i=new Float32Array(n),o=t.quantizedVolumeOffset,r=t.quantizedVolumeStepSize;for(let s=0;s<n;s+=3){let a=m.fromArray(e,s,iie),c=m.multiplyComponents(a,r,a),u=m.add(c,o,c);i[s]=u.x,i[s+1]=u.y,i[s+2]=u.z}return i}function jke(e,t,n,i){let o;l(e.quantization)?o=Wke(e.typedArray,e.quantization):o=e.typedArray.slice();let r=e.byteOffset/Float32Array.BYTES_PER_ELEMENT,s=o.length,a=l(e.byteStride)?e.byteStride/Float32Array.BYTES_PER_ELEMENT:3;for(let c=r;c<s;c+=a){let u=m.fromArray(o,c,iie);if(isNaN(u.x)||isNaN(u.y)||isNaN(u.z))continue;let f=B.multiplyByPoint(t,u,u),d=Qi.computeActualWgs84Position(i,f,f),p=m.subtract(d,n,d);o[c]=p.x,o[c+1]=p.y,o[c+2]=p.z}return o}function Yke(e,t,n,i){let o=Ye(i);o.mode=ne.COLUMBUS_VIEW;let r=n.center,s=jke(e,t,r,o),a=mt.createVertexBuffer({context:i.context,typedArray:s,usage:Fe.STATIC_DRAW});return a.vertexArrayDestroyable=!1,a}var tN=nie;var nN=`void skinningStage(inout ProcessedAttributes attributes) +{ + mat4 skinningMatrix = getSkinningMatrix(); + mat3 skinningMatrixMat3 = mat3(skinningMatrix); + + vec4 positionMC = vec4(attributes.positionMC, 1.0); + attributes.positionMC = vec3(skinningMatrix * positionMC); + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = skinningMatrixMat3 * normalMC; + #endif + + #ifdef HAS_TANGENTS + vec3 tangentMC = attributes.tangentMC; + attributes.tangentMC = skinningMatrixMat3 * tangentMC; + #endif +}`;var B0={name:"SkinningPipelineStage",FUNCTION_ID_GET_SKINNING_MATRIX:"getSkinningMatrix",FUNCTION_SIGNATURE_GET_SKINNING_MATRIX:"mat4 getSkinningMatrix()"};B0.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_SKINNING",void 0,Te.VERTEX),Xke(n,t);let i=e.runtimeNode,o=i.computedJointMatrices;n.addUniform("mat4",`u_jointMatrices[${o.length}]`,Te.VERTEX),n.addVertexLines(nN);let r={u_jointMatrices:function(){return i.computedJointMatrices}};e.uniformMap=gt(r,e.uniformMap)};function qke(e){let t=-1,n=e.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];(r.semantic===bt.JOINTS||r.semantic===bt.WEIGHTS)&&(t=Math.max(t,r.setIndex))}return t}function Xke(e,t){e.addFunction(B0.FUNCTION_ID_GET_SKINNING_MATRIX,B0.FUNCTION_SIGNATURE_GET_SKINNING_MATRIX,Te.VERTEX);let n="mat4 skinnedMatrix = mat4(0);";e.addFunctionLines(B0.FUNCTION_ID_GET_SKINNING_MATRIX,[n]);let i,o,r=["x","y","z","w"],s=qke(t);for(i=0;i<=s;i++)for(o=0;o<=3;o++){let c=r[o],u=`skinnedMatrix += a_weights_${i}.${c} * u_jointMatrices[int(a_joints_${i}.${c})];`;e.addFunctionLines(B0.FUNCTION_ID_GET_SKINNING_MATRIX,[u])}let a="return skinnedMatrix;";e.addFunctionLines(B0.FUNCTION_ID_GET_SKINNING_MATRIX,[a])}var iN=B0;var n6={};function Kke(e){let t=Ve.createTypedArray(e,e*2),n=e,i=0;for(let o=0;o<n;o+=3)t[i++]=o,t[i++]=o+1,t[i++]=o+1,t[i++]=o+2,t[i++]=o+2,t[i++]=o;return t}function Jke(e,t){let n=t.length,i=Ve.createTypedArray(e,n*2),o=0;for(let r=0;r<n;r+=3){let s=t[r],a=t[r+1],c=t[r+2];i[o++]=s,i[o++]=a,i[o++]=a,i[o++]=c,i[o++]=c,i[o++]=s}return i}function Zke(e){let t=e-2,n=2+t*4,i=Ve.createTypedArray(e,n),o=0;i[o++]=0,i[o++]=1;for(let r=0;r<t;r++)i[o++]=r+1,i[o++]=r+2,i[o++]=r+2,i[o++]=r;return i}function Qke(e,t){let i=t.length-2,o=2+i*4,r=Ve.createTypedArray(e,o),s=0;r[s++]=t[0],r[s++]=t[1];for(let a=0;a<i;a++){let c=t[a],u=t[a+1],f=t[a+2];r[s++]=u,r[s++]=f,r[s++]=f,r[s++]=c}return r}function $ke(e){let t=e-2,n=2+t*4,i=Ve.createTypedArray(e,n),o=0;i[o++]=0,i[o++]=1;for(let r=0;r<t;r++)i[o++]=r+1,i[o++]=r+2,i[o++]=r+2,i[o++]=0;return i}function e4e(e,t){let i=t.length-2,o=2+i*4,r=Ve.createTypedArray(e,o),s=0,a=t[0];r[s++]=a,r[s++]=t[1];for(let c=0;c<i;c++){let u=t[c+1],f=t[c+2];r[s++]=u,r[s++]=f,r[s++]=f,r[s++]=a}return r}n6.createWireframeIndices=function(e,t,n){let i=l(n);if(e===Le.TRIANGLES)return i?Jke(t,n):Kke(t);if(e===Le.TRIANGLE_STRIP)return i?Qke(t,n):Zke(t);if(e===Le.TRIANGLE_FAN)return i?e4e(t,n):$ke(t)};n6.getWireframeIndicesCount=function(e,t){return e===Le.TRIANGLES?t*2:e===Le.TRIANGLE_STRIP||e===Le.TRIANGLE_FAN?2+(t-2)*4:t};var Tw=n6;var oie={name:"WireframePipelineStage"};oie.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_WIREFRAME",void 0,Te.FRAGMENT);let o=e.model,r=t4e(t,e.indices,n);o._pipelineResources.push(r),e.wireframeIndexBuffer=r;let s=!1;o.statistics.addBuffer(r,s);let a=e.primitiveType,c=e.count;e.primitiveType=Le.LINES,e.count=Tw.getWireframeIndicesCount(a,c)};function t4e(e,t,n){let o=Qt.getAttributeBySemantic(e,bt.POSITION).count,r=n.context.webgl2,s;if(l(t)){let f=t.buffer,d=t.count;l(f)&&r?(s=f.sizeInBytes===d?new Uint8Array(d):Ve.createTypedArray(o,d),f.getBufferData(s)):s=t.typedArray}let a=e.primitiveType,c=Tw.createWireframeIndices(a,o,s),u=Ve.fromSizeInBytes(c.BYTES_PER_ELEMENT);return mt.createIndexBuffer({context:n.context,typedArray:c,usage:Fe.STATIC_DRAW,indexDatatype:u})}var oN=oie;function rie(e){e=y(e,y.EMPTY_OBJECT);let t=e.primitive,n=e.node,i=e.model;this.primitive=t,this.node=n,this.model=i,this.pipelineStages=[],this.drawCommand=void 0,this.boundingSphere=void 0,this.boundingSphere2D=void 0,this.positionBuffer2D=void 0,this.batchLengths=void 0,this.batchOffsets=void 0,this.updateStages=[]}rie.prototype.configurePipeline=function(e){let t=this.pipelineStages;t.length=0;let n=this.primitive,i=this.node,o=this.model,r=o.customShader,s=o.style,a=e.context.webgl2,u=e.mode!==ne.SCENE3D&&!e.scene3DOnly&&o._projectTo2D,f=l(n.morphTargets)&&n.morphTargets.length>0,d=l(i.skin),p=l(r),h=!(p&&l(r.fragmentShaderText))||r.mode!==eg.REPLACE_MATERIAL,A=Qt.hasQuantizedAttributes(n.attributes),x=o.debugWireframe&&Le.isTriangles(n.primitiveType)&&(o._enableDebugWireframe||a),C=o.pointCloudShading,T=l(C)&&C.attenuation,E=l(C)&&C.backFaceCulling,S=n.primitiveType===Le.POINTS&&(l(s)||T||E),v=o._enableShowOutline&&l(n.outlineCoordinates),D=n4e(o,i,n),O=l(o.classificationType);u&&t.push(tN),t.push(zL),x&&t.push(oN),O&&t.push(vL),f&&t.push(qL),d&&t.push(iN),S&&t.push(JL),A&&t.push(UL),h&&t.push(jL),t.push(O0),t.push(Xf),D.hasPropertyTable&&(t.push(R0),t.push(wL),t.push(PL)),p&&t.push(FL),t.push(GL),o.allowPicking&&t.push(XL),v&&t.push($L),t.push(SL),t.push(eN)};function n4e(e,t,n){let i;return l(t.instances)&&(i=Qt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(i))?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:(i=Qt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),l(i)?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:{hasFeatureIds:!1,hasPropertyTable:!1})}var rN=rie;function i6(e){e=y(e,y.EMPTY_OBJECT),this._sceneGraph=e.sceneGraph;let t=e.skin;this._skin=t,this._inverseBindMatrices=void 0,this._joints=[],this._jointMatrices=[],i4e(this)}Object.defineProperties(i6.prototype,{skin:{get:function(){return this._skin}},sceneGraph:{get:function(){return this._sceneGraph}},inverseBindMatrices:{get:function(){return this._inverseBindMatrices}},joints:{get:function(){return this._joints}},jointMatrices:{get:function(){return this._jointMatrices}}});function i4e(e){let t=e.skin,n=t.inverseBindMatrices;e._inverseBindMatrices=n;let i=t.joints,o=i.length,r=e.sceneGraph._runtimeNodes,s=e.joints,a=e._jointMatrices;for(let c=0;c<o;c++){let u=i[c].index,f=r[u];s.push(f);let d=n[c],p=sie(f,d,new B);a.push(p)}}function sie(e,t,n){let i=B.multiplyTransformation(e.transformToRoot,e.transform,n);return n=B.multiplyTransformation(i,t,n),n}i6.prototype.updateJointMatrices=function(){let e=this._jointMatrices,t=e.length;for(let n=0;n<t;n++){let i=this.joints[n],o=this.inverseBindMatrices[n];e[n]=sie(i,o,e[n])}};var sN=i6;function o4e(){this.pass=void 0,this.alphaCutoff=void 0}var aN=o4e;function r4e(e){this.shaderBuilder=new Wx,this.model=e,this.uniformMap={},this.alphaOptions=new aN,this.renderStateOptions=ze.getState(ze.fromCache({depthTest:{enabled:!0,func:fc.LESS_OR_EQUAL}})),this.hasSilhouette=!1,this.hasSkipLevelOfDetail=!1}var cN=r4e;var lN=`void silhouetteStage(inout vec4 color) { + if(model_silhouettePass) { + color = czm_gammaCorrect(model_silhouetteColor); + } +}`;var uN=`void silhouetteStage(in ProcessedAttributes attributes, inout vec4 positionClip) { + #ifdef HAS_NORMALS + if(model_silhouettePass) { + vec3 normal = normalize(czm_normal3D * attributes.normalMC); + normal.x *= czm_projection[0][0]; + normal.y *= czm_projection[1][1]; + positionClip.xy += normal.xy * positionClip.w * model_silhouetteSize * czm_pixelRatio / czm_viewport.z; + } + #endif +} +`;var fN={name:"ModelSilhouettePipelineStage"};fN.silhouettesLength=0;fN.process=function(e,t,n){l(t._silhouetteId)||(t._silhouetteId=++fN.silhouettesLength);let i=e.shaderBuilder;i.addDefine("HAS_SILHOUETTE",void 0,Te.BOTH),i.addVertexLines(uN),i.addFragmentLines(lN),i.addUniform("vec4","model_silhouetteColor",Te.FRAGMENT),i.addUniform("float","model_silhouetteSize",Te.VERTEX),i.addUniform("bool","model_silhouettePass",Te.BOTH);let o={model_silhouetteColor:function(){return t.silhouetteColor},model_silhouetteSize:function(){return t.silhouetteSize},model_silhouettePass:function(){return!1}};e.uniformMap=gt(o,e.uniformMap),e.hasSilhouette=!0};var dN=fN;var mN=`void modelSplitterStage() +{ + // Don't split when rendering the shadow map, because it is rendered from + // the perspective of a totally different camera. +#ifndef SHADOW_MAP + if (model_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (model_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif +} +`;var hN={name:"ModelSplitterPipelineStage",SPLIT_DIRECTION_UNIFORM_NAME:"model_splitDirection"};hN.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_SPLITTER",void 0,Te.FRAGMENT),i.addFragmentLines(mN);let o={};i.addUniform("float",hN.SPLIT_DIRECTION_UNIFORM_NAME,Te.FRAGMENT),o[hN.SPLIT_DIRECTION_UNIFORM_NAME]=function(){return t.splitDirection},e.uniformMap=gt(o,e.uniformMap)};var pN=hN;function s4e(e,t){this.model=e.model,this.shaderBuilder=e.shaderBuilder.clone(),this.uniformMap=Ye(e.uniformMap),this.alphaOptions=Ye(e.alphaOptions),this.renderStateOptions=Ye(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.runtimeNode=t,this.attributes=[],this.attributeIndex=1,this.featureIdVertexAttributeSetIndex=0,this.instanceCount=0}var _N=s4e;function a4e(e){e=y(e,y.EMPTY_OBJECT),this.lightingModel=y(e.lightingModel,rp.UNLIT)}var gN=a4e;function c4e(e,t){this.model=e.model,this.runtimeNode=e.runtimeNode,this.attributes=e.attributes.slice(),this.attributeIndex=e.attributeIndex,this.featureIdVertexAttributeSetIndex=e.featureIdVertexAttributeSetIndex,this.uniformMap=Ye(e.uniformMap),this.alphaOptions=Ye(e.alphaOptions),this.renderStateOptions=Ye(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.shaderBuilder=e.shaderBuilder.clone(),this.instanceCount=e.instanceCount,this.runtimePrimitive=t;let n=t.primitive;this.count=l(n.indices)?n.indices.count:Qt.getAttributeBySemantic(n,"POSITION").count,this.hasPropertyTable=!1,this.indices=n.indices,this.wireframeIndexBuffer=void 0,this.primitiveType=n.primitiveType;let i=Qt.getPositionMinMax(n,this.runtimeNode.instancingTranslationMin,this.runtimeNode.instancingTranslationMax);this.positionMin=m.clone(i.min,new m),this.positionMax=m.clone(i.max,new m),this.boundingSphere=ae.fromCornerPoints(this.positionMin,this.positionMax,new ae),this.lightingOptions=new gN,this.pickId=void 0}var yN=c4e;function Gl(e){e=y(e,y.EMPTY_OBJECT);let t=e.modelComponents;this._model=e.model,this._components=t,this._pipelineStages=[],this._updateStages=[],this._runtimeNodes=[],this._rootNodes=[],this._skinnedNodes=[],this._runtimeSkins=[],this.modelPipelineStages=[],this._boundingSphere=void 0,this._boundingSphere2D=void 0,this._computedModelMatrix=B.clone(B.IDENTITY),this._computedModelMatrix2D=B.clone(B.IDENTITY),this._axisCorrectionMatrix=Qt.getAxisCorrectionMatrix(t.upAxis,t.forwardAxis,new B),this._runtimeArticulations={},l4e(this)}Object.defineProperties(Gl.prototype,{components:{get:function(){return this._components}},computedModelMatrix:{get:function(){return this._computedModelMatrix}},axisCorrectionMatrix:{get:function(){return this._axisCorrectionMatrix}},boundingSphere:{get:function(){return this._boundingSphere}}});function l4e(e){let t=e._components,n=t.scene,o=e._model.modelMatrix;aie(e,o);let r=t.articulations,s=r.length,a=e._runtimeArticulations;for(let T=0;T<s;T++){let E=r[T],S=new dL({articulation:E,sceneGraph:e}),v=S.name;a[v]=S}let c=t.nodes,u=c.length;e._runtimeNodes=new Array(u);let d=n.nodes.length,p=B.IDENTITY;for(let T=0;T<d;T++){let E=n.nodes[T],S=cie(e,E,p);e._rootNodes.push(S)}let g=t.skins,h=e._runtimeSkins,A=g.length;for(let T=0;T<A;T++){let E=g[T];h.push(new sN({skin:E,sceneGraph:e}))}let x=e._skinnedNodes,C=x.length;for(let T=0;T<C;T++){let E=x[T],S=e._runtimeNodes[E],D=c[E].skin.index;S._runtimeSkin=h[D],S.updateJointMatrices()}e.applyArticulations()}function aie(e,t){let n=e._components,i=e._model;e._computedModelMatrix=B.multiplyTransformation(t,n.transform,e._computedModelMatrix),e._computedModelMatrix=B.multiplyTransformation(e._computedModelMatrix,e._axisCorrectionMatrix,e._computedModelMatrix),e._computedModelMatrix=B.multiplyByUniformScale(e._computedModelMatrix,i.computedScale,e._computedModelMatrix)}var u4e=new m;function f4e(e,t){let n=e._computedModelMatrix,i=B.getTranslation(n,u4e);if(!m.equals(i,m.ZERO))e._computedModelMatrix2D=Rt.basisTo2D(t.mapProjection,n,e._computedModelMatrix2D);else{let o=e.boundingSphere.center,r=Rt.wgs84To2DModelMatrix(t.mapProjection,o,e._computedModelMatrix2D);e._computedModelMatrix2D=B.multiply(r,n,e._computedModelMatrix2D)}e._boundingSphere2D=ae.transform(e._boundingSphere,e._computedModelMatrix2D,e._boundingSphere2D)}function cie(e,t,n){let i=[],o=Qt.getNodeTransform(t),r=t.children.length;for(let f=0;f<r;f++){let d=t.children[f],p=B.multiplyTransformation(n,o,new B),g=cie(e,d,p);i.push(g)}let s=new bL({node:t,transform:o,transformToRoot:n,children:i,sceneGraph:e}),a=t.primitives.length;for(let f=0;f<a;f++)s.runtimePrimitives.push(new rN({primitive:t.primitives[f],node:t,model:e._model}));let c=t.index;e._runtimeNodes[c]=s,l(t.skin)&&e._skinnedNodes.push(c);let u=t.name;if(l(u)){let f=e._model,d=new _L(f,s);f._nodesByName[u]=d}return c}var d4e=new m,m4e=new m,h4e=new m,p4e=new m;Gl.prototype.buildDrawCommands=function(e){let t=this._model,n=new cN(t);t.statistics.clear(),this.configurePipeline(e);let i=this.modelPipelineStages,o,r,s;for(o=0;o<i.length;o++)i[o].process(n,t,e);let a=m.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,d4e),c=m.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,m4e);for(o=0;o<this._runtimeNodes.length;o++){let u=this._runtimeNodes[o];if(!l(u))continue;u.configurePipeline();let f=u.pipelineStages,d=new _N(n,u);for(r=0;r<f.length;r++)f[r].process(d,u.node,e);let p=u.computedTransform;for(r=0;r<u.runtimePrimitives.length;r++){let g=u.runtimePrimitives[r];g.configurePipeline(e);let h=g.pipelineStages,A=new yN(d,g);for(s=0;s<h.length;s++)h[s].process(A,g.primitive,e);g.boundingSphere=ae.clone(A.boundingSphere,new ae);let x=B.multiplyByPoint(p,A.positionMin,h4e),C=B.multiplyByPoint(p,A.positionMax,p4e);m.minimumByComponent(a,x,a),m.maximumByComponent(c,C,c);let T=sL(A,e);g.drawCommand=T}}this._boundingSphere=ae.fromCornerPoints(a,c,new ae),this._boundingSphere=ae.transformWithoutScale(this._boundingSphere,this._axisCorrectionMatrix,this._boundingSphere),this._boundingSphere=ae.transform(this._boundingSphere,this._components.transform,this._boundingSphere),t._boundingSphere=ae.transform(this._boundingSphere,t.modelMatrix,t._boundingSphere),t._initialRadius=t._boundingSphere.radius,t._boundingSphere.radius*=t._clampedScale};Gl.prototype.configurePipeline=function(e){let t=this.modelPipelineStages;t.length=0;let n=this._model;l(n.color)&&t.push(P0),!l(n.classificationType)&&(n.imageBasedLighting.enabled&&t.push(lL),n.isClippingEnabled()&&t.push(pL),n.hasSilhouette(e)&&t.push(dN),l(n.splitDirection)&&n.splitDirection!==el.NONE&&t.push(pN),Vo.is3DTiles(n.type)&&t.push(aL))};Gl.prototype.update=function(e,t){let n,i,o;for(n=0;n<this._runtimeNodes.length;n++){let r=this._runtimeNodes[n];if(!l(r))continue;for(i=0;i<r.updateStages.length;i++)r.updateStages[i].update(r,this,e);let s=e.mode!==ne.SCENE3D&&this._model._projectTo2D;for(t&&!s&&this.updateJointMatrices(),i=0;i<r.runtimePrimitives.length;i++){let a=r.runtimePrimitives[i];for(o=0;o<a.updateStages.length;o++)a.updateStages[o].update(a,this)}}};Gl.prototype.updateModelMatrix=function(e,t){aie(this,e),t.mode!==ne.SCENE3D&&f4e(this,t);let n=this._rootNodes;for(let i=0;i<n.length;i++){let o=this._runtimeNodes[n[i]];o._transformDirty=!0}};Gl.prototype.updateJointMatrices=function(){let e=this._skinnedNodes,t=e.length;for(let n=0;n<t;n++){let i=e[n];this._runtimeNodes[i].updateJointMatrices()}};function lie(e,t,n,i,o){if(n&&!t.show)return;let r=t.children.length;for(let c=0;c<r;c++){let u=t.getChild(c);lie(e,u,n,i,o)}let s=t.runtimePrimitives,a=s.length;for(let c=0;c<a;c++){let u=s[c];i(u,o)}}function AN(e,t,n,i){let o=e._rootNodes,r=o.length;for(let s=0;s<r;s++){let a=o[s],c=e._runtimeNodes[a];lie(e,c,t,n,i)}}var _4e={backFaceCulling:void 0};Gl.prototype.updateBackFaceCulling=function(e){let t=_4e;t.backFaceCulling=e,AN(this,!1,g4e,t)};function g4e(e,t){let n=e.drawCommand;n.backFaceCulling=t.backFaceCulling}var y4e={shadowMode:void 0};Gl.prototype.updateShadows=function(e){let t=y4e;t.shadowMode=e,AN(this,!1,A4e,t)};function A4e(e,t){let n=e.drawCommand;n.shadows=t.shadowMode}var x4e={debugShowBoundingVolume:void 0};Gl.prototype.updateShowBoundingVolume=function(e){let t=x4e;t.debugShowBoundingVolume=e,AN(this,!1,C4e,t)};function C4e(e,t){let n=e.drawCommand;n.debugShowBoundingVolume=t.debugShowBoundingVolume}var uie=[],T4e={frameState:void 0,hasSilhouette:void 0};Gl.prototype.pushDrawCommands=function(e){let t=uie;t.length=0;let n=T4e;n.hasSilhouette=this._model.hasSilhouette(e),n.frameState=e,AN(this,!0,E4e,n),e.commandList.push.apply(e.commandList,t)};function E4e(e,t){let n=t.frameState,i=t.hasSilhouette,o=n.passes,r=uie,s=e.drawCommand;s.pushCommands(n,n.commandList),i&&!o.pick&&s.pushSilhouetteCommands(n,r)}Gl.prototype.setArticulationStage=function(e,t){let n=e.split(" ");if(n.length!==2)return;let i=n[0],o=n[1],r=this._runtimeArticulations[i];l(r)&&r.setArticulationStage(o,t)};Gl.prototype.applyArticulations=function(){let e=this._runtimeArticulations;for(let t in e)e.hasOwnProperty(t)&&e[t].apply()};var xN=Gl;function tT(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap=new Et}Object.defineProperties(tT.prototype,{batchTexturesByteLength:{get:function(){let e=this._batchTextureIdMap.length,t=this._batchTextureIdMap.values,n=0;for(let i=0;i<e;i++)n+=t[i].byteLength;return n}}});tT.prototype.clear=function(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap.removeAll()};tT.prototype.addBuffer=function(e,t){if(!this._bufferIdSet.hasOwnProperty(e._id)){let n=t?2:1;this.geometryByteLength+=e.sizeInBytes*n}this._bufferIdSet[e._id]=!0};tT.prototype.addTexture=function(e){this._textureIdSet.hasOwnProperty(e._id)||(this.texturesByteLength+=e.sizeInBytes),this._textureIdSet[e._id]=!0};tT.prototype.addBatchTexture=function(e){this._batchTextureIdMap.contains(e._id)||this._batchTextureIdMap.set(e._id,e)};var CN=tT;var hie=ar(YI(),1);var fie={},L0=Uint32Array.BYTES_PER_ELEMENT;fie.parse=function(e,t){t=y(t,0);let n=new Uint8Array(e),i=new DataView(e);t+=L0;let o=i.getUint32(t,!0);if(o!==1)throw new de(`Only Point Cloud tile version 1 is supported. Version ${o} is not.`);t+=L0,t+=L0;let r=i.getUint32(t,!0);if(r===0)throw new de("Feature table must have a byte length greater than zero");t+=L0;let s=i.getUint32(t,!0);t+=L0;let a=i.getUint32(t,!0);t+=L0;let c=i.getUint32(t,!0);t+=L0;let u=Po(n,t,r);t+=r;let f=new Uint8Array(e,t,s);t+=s;let d,p;a>0&&(d=Po(n,t,a),t+=a,c>0&&(p=new Uint8Array(e,t,c),t+=c));let g=new Cm(u,f),h=g.getGlobalProperty("POINTS_LENGTH");if(g.featuresLength=h,!l(h))throw new de("Feature table global property: POINTS_LENGTH must be defined");let A=g.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(A)&&(A=m.unpack(A));let x=b4e(g,d);if(x.rtcCenter=A,x.pointsLength=h,!x.hasPositions){let C=S4e(g);x.positions=C,x.hasPositions=x.hasPositions||l(C)}if(!x.hasPositions)throw new de("Either POSITION or POSITION_QUANTIZED must be defined.");if(!x.hasNormals){let C=v4e(g);x.normals=C,x.hasNormals=x.hasNormals||l(C)}if(!x.hasColors){let C=w4e(g);x.colors=C,x.hasColors=x.hasColors||l(C),x.hasConstantColor=l(x.constantColor),x.isTranslucent=l(C)&&C.isTranslucent}if(!x.hasBatchIds){let C=D4e(g);x.batchIds=C,x.hasBatchIds=x.hasBatchIds||l(C)}if(x.hasBatchIds){let C=g.getGlobalProperty("BATCH_LENGTH");if(!l(C))throw new de("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");x.batchLength=C}return l(p)&&(p=new Uint8Array(p),x.batchTableJson=d,x.batchTableBinary=p),x};function b4e(e,t){let n=e.json,i,o,r,s=l(n.extensions)?n.extensions["3DTILES_draco_point_compression"]:void 0,a=l(t)&&l(t.extensions)?t.extensions["3DTILES_draco_point_compression"]:void 0;l(a)&&(r=a.properties);let c,u,f,d,p;if(l(s)){o=s.properties;let h=s.byteOffset,A=s.byteLength;if(!l(o)||!l(h)||!l(A))throw new de("Draco properties, byteOffset, and byteLength must be defined");i=e.buffer.slice(h,h+A),c=l(o.POSITION),u=l(o.RGB)||l(o.RGBA),f=l(o.NORMAL),d=l(o.BATCH_ID),p=l(o.RGBA)}let g;return l(i)&&(g={buffer:i,featureTableProperties:o,batchTableProperties:r,properties:gt(o,r),dequantizeInShader:!0}),{draco:g,hasPositions:c,hasColors:u,isTranslucent:p,hasNormals:f,hasBatchIds:d}}function S4e(e){let t=e.json,n;if(l(t.POSITION))return n=e.getPropertyArray("POSITION",X.FLOAT,3),{name:bt.POSITION,semantic:bt.POSITION,typedArray:n,isQuantized:!1,componentDatatype:X.FLOAT,type:an.VEC3};if(l(t.POSITION_QUANTIZED)){n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3);let i=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!l(i))throw new de("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let o=(1<<16)-1,r=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!l(r))throw new de("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");return{name:bt.POSITION,semantic:bt.POSITION,typedArray:n,isQuantized:!0,componentDatatype:X.FLOAT,type:an.VEC3,quantizedRange:o,quantizedVolumeOffset:m.unpack(r),quantizedVolumeScale:m.unpack(i),quantizedComponentDatatype:X.UNSIGNED_SHORT,quantizedType:an.VEC3}}}function w4e(e){let t=e.json,n;if(l(t.RGBA))return n=e.getPropertyArray("RGBA",X.UNSIGNED_BYTE,4),{name:bt.COLOR,semantic:bt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:an.VEC4,normalized:!0,isRGB565:!1,isTranslucent:!0};if(l(t.RGB))return n=e.getPropertyArray("RGB",X.UNSIGNED_BYTE,3),{name:"COLOR",semantic:bt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:an.VEC3,normalized:!0,isRGB565:!1,isTranslucent:!1};if(l(t.RGB565))return n=e.getPropertyArray("RGB565",X.UNSIGNED_SHORT,1),{name:"COLOR",semantic:bt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.FLOAT,type:an.VEC3,normalized:!1,isRGB565:!0,isTranslucent:!1};if(l(t.CONSTANT_RGBA)){let i=e.getGlobalProperty("CONSTANT_RGBA",X.UNSIGNED_BYTE,4),o=i[3],r=z.fromBytes(i[0],i[1],i[2],o),s=o<255;return{name:bt.COLOR,semantic:bt.COLOR,setIndex:0,constantColor:r,componentDatatype:X.FLOAT,type:an.VEC4,isQuantized:!1,isTranslucent:s}}}function v4e(e){let t=e.json,n;if(l(t.NORMAL))return n=e.getPropertyArray("NORMAL",X.FLOAT,3),{name:bt.NORMAL,semantic:bt.NORMAL,typedArray:n,octEncoded:!1,octEncodedZXY:!1,componentDatatype:X.FLOAT,type:an.VEC3};if(l(t.NORMAL_OCT16P)){n=e.getPropertyArray("NORMAL_OCT16P",X.UNSIGNED_BYTE,2);let i=8;return{name:bt.NORMAL,semantic:bt.NORMAL,typedArray:n,octEncoded:!0,octEncodedZXY:!1,quantizedRange:(1<<i)-1,quantizedType:an.VEC2,quantizedComponentDatatype:X.UNSIGNED_BYTE,componentDatatype:X.FLOAT,type:an.VEC3}}}function D4e(e){let t=e.json;if(l(t.BATCH_ID)){let n=e.getPropertyArray("BATCH_ID",X.UNSIGNED_SHORT,1);return{name:bt.FEATURE_ID,semantic:bt.FEATURE_ID,setIndex:0,typedArray:n,componentDatatype:X.fromTypedArray(n),type:an.SCALAR}}}var nT=fie;var I4e=Nt.Components,P4e=Nt.Scene,O4e=Nt.Node,M4e=Nt.Primitive,R4e=Nt.Attribute,die=Nt.Quantization,B4e=Nt.FeatureIdAttribute,L4e=Nt.Material,N4e=Nt.MetallicRoughness;function ng(e){e=y(e,y.EMPTY_OBJECT);let t=e.arrayBuffer,n=y(e.byteOffset,0);this._arrayBuffer=t,this._byteOffset=n,this._loadAttributesFor2D=y(e.loadAttributesFor2D,!1),this._parsedContent=void 0,this._decodePromise=void 0,this._decodedAttributes=void 0,this._promise=void 0,this._error=void 0,this._state=vt.UNLOADED,this._buffers=[],this._components=void 0,this._transform=B.IDENTITY}l(Object.create)&&(ng.prototype=Object.create(io.prototype),ng.prototype.constructor=ng);Object.defineProperties(ng.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},transform:{get:function(){return this._transform}}});ng.prototype.load=function(){if(l(this._promise))return this._promise;this._parsedContent=nT.parse(this._arrayBuffer,this._byteOffset),this._state=vt.PROCESSING,this._promise=Promise.resolve(this)};ng.prototype.process=function(e){if(l(this._error)){let t=this._error;throw this._error=void 0,t}if(this._state===vt.READY)return!0;if(this._state===vt.PROCESSING){if(l(this._decodePromise))return!1;this._decodePromise=F4e(this,e.context)}return!1};function F4e(e,t){let i=e._parsedContent.draco,o;if(l(i)?o=U_.decodePointCloud(i,t):o=Promise.resolve(),!!l(o))return e._decodePromise=o,o.then(function(r){if(!e.isDestroyed())return l(r)&&U4e(e,i,r),K4e(e,t),e._state=vt.READY,e}).catch(function(r){e.unload(),e._state=vt.FAILED;let s="Failed to load Draco pnts";e._error=e.getError(s,r)})}function U4e(e,t,n){e._state=vt.READY;let i=e._parsedContent,o;if(l(n.POSITION)){if(o={name:"POSITION",semantic:bt.POSITION,typedArray:n.POSITION.array,componentDatatype:X.FLOAT,type:an.VEC3,isQuantized:!1},l(n.POSITION.data.quantization)){let a=n.POSITION.data.quantization,c=a.range,u=m.fromElements(c,c,c),f=m.unpack(a.minValues),d=(1<<a.quantizationBits)-1;o.isQuantized=!0,o.quantizedRange=d,o.quantizedVolumeOffset=f,o.quantizedVolumeScale=u,o.quantizedComponentDatatype=d<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT,o.quantizedType=an.VEC3}i.positions=o}if(l(n.NORMAL)){if(o={name:"NORMAL",semantic:bt.NORMAL,typedArray:n.NORMAL.array,componentDatatype:X.FLOAT,type:an.VEC3,isQuantized:!1,octEncoded:!1,octEncodedZXY:!1},l(n.NORMAL.data.quantization)){let a=(1<<n.NORMAL.data.quantization.quantizationBits)-1;o.quantizedRange=a,o.octEncoded=!0,o.octEncodedZXY=!0,o.quantizedComponentDatatype=X.UNSIGNED_BYTE,o.quantizedType=an.VEC2}i.normals=o}if(l(n.RGBA)?i.colors={name:"COLOR",semantic:bt.COLOR,setIndex:0,typedArray:n.RGBA.array,componentDatatype:X.UNSIGNED_BYTE,type:an.VEC4,normalized:!0,isTranslucent:!0}:l(n.RGB)&&(i.colors={name:"COLOR",semantic:bt.COLOR,setIndex:0,typedArray:n.RGB.array,componentDatatype:X.UNSIGNED_BYTE,type:an.VEC3,normalized:!0,isTranslucent:!1}),l(n.BATCH_ID)){let a=n.BATCH_ID.array;i.batchIds={name:"_FEATURE_ID",semantic:bt.FEATURE_ID,setIndex:0,typedArray:a,componentDatatype:X.fromTypedArray(a),type:an.SCALAR}}let r=i.batchTableJson,s=t.batchTableProperties;for(let a in s)if(s.hasOwnProperty(a)){let c=n[a];l(r)||(r={}),i.hasDracoBatchTable=!0;let u=c.data;r[a]={byteOffset:u.byteOffset,type:V4e(u.componentsPerAttribute),componentType:k4e(u.componentDatatype),typedArray:c.array}}i.batchTableJson=r}function V4e(e){switch(e){case 1:return"SCALAR";case 2:return"VEC2";case 3:return"VEC3";case 4:return"VEC4"}}function k4e(e){switch(e){case te.BYTE:return"BYTE";case te.UNSIGNED_BYTE:return"UNSIGNED_BYTE";case te.SHORT:return"SHORT";case te.UNSIGNED_SHORT:return"UNSIGNED_SHORT";case te.INT:return"INT";case te.UNSIGNED_INT:return"UNSIGNED_INT";case te.DOUBLE:return"DOUBLE";case te.FLOAT:return"FLOAT"}}function Ew(e,t,n){let i=t.typedArray,o;if(t.octEncoded&&(o=new die,o.octEncoded=t.octEncoded,o.octEncodedZXY=t.octEncodedZXY,o.normalizationRange=t.quantizedRange,o.type=t.quantizedType,o.componentDatatype=t.quantizedComponentDatatype),t.isQuantized){o=new die;let a=t.quantizedRange;o.normalizationRange=a,o.quantizedVolumeOffset=m.ZERO;let c=t.quantizedVolumeScale;o.quantizedVolumeDimensions=c,o.quantizedVolumeStepSize=m.divideByScalar(c,a,new m),o.componentDatatype=t.quantizedComponentDatatype,o.type=t.quantizedType}let r=new R4e;if(r.name=t.name,r.semantic=t.semantic,r.setIndex=t.setIndex,r.componentDatatype=t.componentDatatype,r.type=t.type,r.normalized=y(t.normalized,!1),r.min=t.min,r.max=t.max,r.quantization=o,t.isRGB565&&(i=qn.decodeRGB565(i)),l(t.constantColor)){let a=new Array(4);r.constant=z.pack(t.constantColor,a)}else{let a=mt.createVertexBuffer({typedArray:i,context:n,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,e._buffers.push(a),r.buffer=a}let s=e._loadAttributesFor2D;return r.semantic===bt.POSITION&&s&&(r.typedArray=i),r}var mie,TN;function z4e(e){if(!l(TN)){mie=new hie.default(0),TN=new Array(e);for(let t=0;t<e;++t)TN[t]=mie.random()}return TN}var H4e=new m,G4e=new m,W4e=new m;function j4e(e){let t=e.typedArray,n=20,i=t.length/3,o=Math.min(i,n),r=z4e(n),s=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=m.fromElements(s,s,s,H4e),u=m.fromElements(a,a,a,G4e),f,d,p;if(e.isQuantized)c=m.ZERO,u=e.quantizedVolumeScale;else for(f=0;f<o;++f)d=Math.floor(r[f]*i),p=m.unpack(t,d*3,W4e),m.minimumByComponent(c,p,c),m.maximumByComponent(u,p,u);e.min=m.clone(c),e.max=m.clone(u)}var Y4e={name:bt.COLOR,semantic:bt.COLOR,setIndex:0,constantColor:z.DARKGRAY,componentDatatype:X.FLOAT,type:an.VEC4,isQuantized:!1,isTranslucent:!1};function q4e(e,t,n){let i=[],o,r=t.positions;return l(r)&&(j4e(r),o=Ew(e,r,n),o.count=t.pointsLength,i.push(o)),l(t.normals)&&(o=Ew(e,t.normals,n),i.push(o)),l(t.colors)?(o=Ew(e,t.colors,n),i.push(o)):(o=Ew(e,Y4e,n),i.push(o)),l(t.batchIds)&&(o=Ew(e,t.batchIds,n),i.push(o)),i}function X4e(e,t){let n=e.batchLength,i=e.pointsLength,o=e.batchTableBinary,r=!l(e.batchIds);if(l(o)||e.hasDracoBatchTable){let s=y(n,i);return K_({count:s,batchTable:e.batchTableJson,binaryBody:o,parseAsPropertyAttributes:r,customAttributeOutput:t})}return new Fa({schema:{},propertyTables:[]})}function K4e(e,t){let n=e._parsedContent,i=new N4e;i.metallicFactor=0,i.roughnessFactor=.9;let o=new L4e;o.metallicRoughness=i;let r=n.colors;l(r)&&r.isTranslucent&&(o.alphaMode=Kh.BLEND);let s=!l(n.normals);o.unlit=s;let a=new M4e;if(a.attributes=q4e(e,n,t),a.primitiveType=Le.POINTS,a.material=o,l(n.batchIds)){let g=new B4e;g.propertyTableId=0,g.setIndex=0,g.positionalLabel="featureId_0",a.featureIds.push(g)}let c=new O4e;c.index=0,c.primitives=[a];let u=new P4e;u.nodes=[c],u.upAxis=ho.Z,u.forwardAxis=ho.X;let f=new I4e;f.scene=u,f.nodes=[c];let d=[];f.structuralMetadata=X4e(n,d),d.length>0&&J4e(e,a,d,t),l(n.rtcCenter)&&(f.transform=B.multiplyByTranslation(f.transform,n.rtcCenter,f.transform));let p=n.positions;l(p)&&p.isQuantized&&(f.transform=B.multiplyByTranslation(f.transform,p.quantizedVolumeOffset,f.transform)),e._components=f,e._parsedContent=void 0,e._arrayBuffer=void 0}function J4e(e,t,n,i){let o=t.attributes,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=mt.createVertexBuffer({typedArray:a.typedArray,context:i,usage:Fe.STATIC_DRAW});c.vertexArrayDestroyable=!1,e._buffers.push(c),a.buffer=c,a.typedArray=void 0,o.push(a)}t.propertyAttributeIds=[0]}ng.prototype.unload=function(){let e=this._buffers;for(let t=0;t<e.length;t++)e[t].destroy();e.length=0,this._components=void 0,this._parsedContent=void 0,this._arrayBuffer=void 0};var bw=ng;function ao(e){e=y(e,y.EMPTY_OBJECT),this._loader=e.loader,this._resource=e.resource,this.type=y(e.type,Vo.GLTF),this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._modelMatrix=B.clone(this.modelMatrix),this._scale=y(e.scale,1),this._minimumPixelSize=y(e.minimumPixelSize,0),this._maximumScale=e.maximumScale,this._clampedScale=l(this._maximumScale)?Math.min(this._scale,this._maximumScale):this._scale,this._computedScale=this._clampedScale,this._updateModelMatrix=!1,this.referenceMatrix=void 0,this._iblReferenceFrameMatrix=Z.clone(Z.IDENTITY),this._resourcesLoaded=!1,this._drawCommandsBuilt=!1,this._ready=!1,this._customShader=e.customShader,this._content=e.content,this._texturesLoaded=!1,this._defaultTexture=void 0,this._activeAnimations=new QB(this),this._clampAnimations=y(e.clampAnimations,!0),this._userAnimationDirty=!1,this._id=e.id,this._idDirty=!1,this._color=z.clone(e.color),this._colorBlendMode=y(e.colorBlendMode,yc.HIGHLIGHT),this._colorBlendAmount=y(e.colorBlendAmount,.5);let t=y(e.silhouetteColor,z.RED);this._silhouetteColor=z.clone(t),this._silhouetteSize=y(e.silhouetteSize,0),this._silhouetteDirty=!1,this._silhouetteId=void 0,this._cull=y(e.cull,!0),this._opaquePass=y(e.opaquePass,be.OPAQUE),this._allowPicking=y(e.allowPicking,!0),this._show=y(e.show,!0),this._style=void 0,this._styleDirty=!1,this._styleCommandsNeeded=void 0;let n=y(e.featureIdLabel,"featureId_0");typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i,this._featureTables=[],this._featureTableId=void 0,this._featureTableIdDirty=!0,this._pipelineResources=[],this._modelResources=[],this._pickIds=[],this._boundingSphere=new ae,this._initialRadius=void 0,this._heightReference=y(e.heightReference,qe.NONE),this._heightDirty=this._heightReference!==qe.NONE,this._removeUpdateHeightCallback=void 0,this._clampedModelMatrix=void 0;let o=e.scene;l(o)&&l(o.terrainProviderChanged)&&(this._terrainProviderChangedCallback=o.terrainProviderChanged.addEventListener(function(){this._heightDirty=!0},this)),this._scene=o,this._distanceDisplayCondition=e.distanceDisplayCondition;let r=new Qh(e.pointCloudShading);this._pointCloudShading=r,this._attenuation=r.attenuation,this._pointCloudBackFaceCulling=r.backFaceCulling;let s=e.clippingPlanes;l(s)&&s.owner===void 0?gs.setOwner(s,this,"_clippingPlanes"):this._clippingPlanes=s,this._clippingPlanesState=0,this._clippingPlanesMatrix=B.clone(B.IDENTITY),this._lightColor=m.clone(e.lightColor),this._imageBasedLighting=l(e.imageBasedLighting)?e.imageBasedLighting:new bC,this._shouldDestroyImageBasedLighting=!l(e.imageBasedLighting),this._backFaceCulling=y(e.backFaceCulling,!0),this._backFaceCullingDirty=!1,this._shadows=y(e.shadows,xn.ENABLED),this._shadowsDirty=!1,this._debugShowBoundingVolumeDirty=!1,this._debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this._enableShowOutline=y(e.enableShowOutline,!0),this._debugWireframe=y(e.debugWireframe,!1),this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===Vo.GLTF&&Mt("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltf, otherwise debugWireframe will be ignored.");let a=e.credit;typeof a=="string"&&(a=new It(a)),this._credit=a,this._resourceCredits=[],this._gltfCredits=[],this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._showCreditsOnScreenDirty=!0,this._splitDirection=y(e.splitDirection,el.NONE),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,z.BLACK),this._classificationType=e.classificationType,this._statistics=new CN,this._sceneMode=void 0,this._projectTo2D=y(e.projectTo2D,!1),this._skipLevelOfDetail=!1,this._ignoreCommands=y(e.ignoreCommands,!1),this._texturesLoadedPromise=void 0,this._completeLoad=void 0,this._rejectLoad=void 0,this._completeTexturesLoad=void 0,this._rejectTexturesLoad=void 0,l(this._loader._promise)?(this._readyPromise=Promise.resolve(this),this._texturesLoadedPromise=Promise.resolve(this)):(this._readyPromise=new Promise((c,u)=>{this._completeLoad=()=>(c(this),!1),this._rejectLoad=f=>(u(f),!1)}),this._loader instanceof bw?this._texturesLoadedPromise=Promise.resolve(this):this._texturesLoadedPromise=new Promise((c,u)=>{this._completeTexturesLoad=()=>(c(this),!1),this._rejectTexturesLoad=f=>(u(f),!1)}),this._loader.load().catch(c=>{this.isDestroyed()||!l(this._loader)||this._loader.isDestroyed()||(this._rejectLoad=this._rejectLoad(Qt.getError("model",this._resource,c)))})),this._errorEvent=new ge,this._readyEvent=new ge,this._texturesReadyEvent=new ge,this._sceneGraph=void 0,this._nodesByName={},this.pickObject=e.pickObject}function EN(e,t){if(e._errorEvent.numberOfListeners>0){e._errorEvent.raiseEvent(t);return}console.log(t)}function Z4e(e,t){let n=e._featureTables,i=t.propertyTables,o=i.length;for(let r=0;r<o;r++){let s=i[r],a=new eL({model:e,propertyTable:s});n.push(a)}return n}function Q4e(e,t){let n=t._featureIdLabel,i=t._instanceFeatureIdLabel,o,r,s,a;for(o=0;o<e.nodes.length;o++)if(a=e.nodes[o],l(a.instances)&&(s=Qt.getFeatureIdsByLabel(a.instances.featureIds,i),l(s)&&l(s.propertyTableId)))return s.propertyTableId;for(o=0;o<e.nodes.length;o++)for(a=e.nodes[o],r=0;r<a.primitives.length;r++){let c=a.primitives[r],u=Qt.getFeatureIdsByLabel(c.featureIds,n);if(l(u))return u.propertyTableId}if(t._featureTables.length===1)return 0}function r6(e,t){if(!l(e)&&!l(t))return!1;if(l(e)!==l(t))return!0;let n=e.alpha,i=t.alpha;return Math.floor(n)!==Math.floor(i)||Math.ceil(n)!==Math.ceil(i)}Object.defineProperties(ao.prototype,{ready:{get:function(){return this._ready}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},incrementallyLoadTextures:{get:function(){return y(this._loader.incrementallyLoadTextures,!1)}},texturesReadyEvent:{get:function(){return this._texturesReadyEvent}},readyPromise:{get:function(){return $("Model.readyPromise","Model.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Model.fromGltfAsync and Model.readyEvent instead."),this._readyPromise}},texturesLoadedPromise:{get:function(){return $("Model.texturesLoadedPromise","Model.texturesLoadedPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Model.fromGltfAsync and Model.texturesReadyEvent instead."),this._texturesLoadedPromise}},loader:{get:function(){return this._loader}},statistics:{get:function(){return this._statistics}},activeAnimations:{get:function(){return this._activeAnimations}},clampAnimations:{get:function(){return this._clampAnimations},set:function(e){this._clampAnimations=e}},cull:{get:function(){return this._cull}},opaquePass:{get:function(){return this._opaquePass}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){e!==this._pointCloudShading&&this.resetDrawCommands(),this._pointCloudShading=e}},customShader:{get:function(){return this._customShader},set:function(e){e!==this._customShader&&this.resetDrawCommands(),this._customShader=e}},sceneGraph:{get:function(){return this._sceneGraph}},content:{get:function(){return this._content}},heightReference:{get:function(){return this._heightReference},set:function(e){e!==this._heightReference&&(this._heightDirty=!0),this._heightReference=e}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=Dt.clone(e,this._distanceDisplayCondition)}},structuralMetadata:{get:function(){return this._sceneGraph.components.structuralMetadata}},featureTableId:{get:function(){return this._featureTableId},set:function(e){this._featureTableId=e}},featureTables:{get:function(){return this._featureTables},set:function(e){this._featureTables=e}},id:{get:function(){return this._id},set:function(e){e!==this._id&&(this._idDirty=!0),this._id=e}},allowPicking:{get:function(){return this._allowPicking}},style:{get:function(){return this._style},set:function(e){this._style=e,this._styleDirty=!0}},color:{get:function(){return this._color},set:function(e){r6(e,this._color)&&this.resetDrawCommands(),this._color=z.clone(e,this._color)}},colorBlendMode:{get:function(){return this._colorBlendMode},set:function(e){this._colorBlendMode=e}},colorBlendAmount:{get:function(){return this._colorBlendAmount},set:function(e){this._colorBlendAmount=e}},silhouetteColor:{get:function(){return this._silhouetteColor},set:function(e){if(!z.equals(e,this._silhouetteColor)){let t=r6(e,this._silhouetteColor);this._silhouetteDirty=this._silhouetteDirty||t}this._silhouetteColor=z.clone(e,this._silhouetteColor)}},silhouetteSize:{get:function(){return this._silhouetteSize},set:function(e){if(e!==this._silhouetteSize){let t=this._silhouetteSize,n=e>0&&t===0||e===0&&t>0;this._silhouetteDirty=this._silhouetteDirty||n,this._backFaceCullingDirty=this._backFaceCullingDirty||n}this._silhouetteSize=e}},boundingSphere:{get:function(){let e=l(this._clampedModelMatrix)?this._clampedModelMatrix:this.modelMatrix;return gie(this,e),this._boundingSphere}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolumeDirty=!0),this._debugShowBoundingVolume=e}},debugWireframe:{get:function(){return this._debugWireframe},set:function(e){this._debugWireframe!==e&&this.resetDrawCommands(),this._debugWireframe=e,this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===Vo.GLTF&&Mt("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltfAsync, otherwise debugWireframe will be ignored.")}},show:{get:function(){return this._show},set:function(e){this._show=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),e!==this._featureIdLabel&&(this._featureTableIdDirty=!0),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),e!==this._instanceFeatureIdLabel&&(this._featureTableIdDirty=!0),this._instanceFeatureIdLabel=e}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){e!==this._clippingPlanes&&(gs.setOwner(e,this,"_clippingPlanes"),this.resetDrawCommands())}},lightColor:{get:function(){return this._lightColor},set:function(e){l(e)!==l(this._lightColor)&&this.resetDrawCommands(),this._lightColor=m.clone(e,this._lightColor)}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1,this.resetDrawCommands())}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){e!==this._backFaceCulling&&(this._backFaceCullingDirty=!0),this._backFaceCulling=e}},scale:{get:function(){return this._scale},set:function(e){e!==this._scale&&(this._updateModelMatrix=!0),this._scale=e}},computedScale:{get:function(){return this._computedScale}},minimumPixelSize:{get:function(){return this._minimumPixelSize},set:function(e){e!==this._minimumPixelSize&&(this._updateModelMatrix=!0),this._minimumPixelSize=e}},maximumScale:{get:function(){return this._maximumScale},set:function(e){e!==this._maximumScale&&(this._updateModelMatrix=!0),this._maximumScale=e}},shadows:{get:function(){return this._shadows},set:function(e){e!==this._shadows&&(this._shadowsDirty=!0),this._shadows=e}},credit:{get:function(){return this._credit}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen!==e&&(this._showCreditsOnScreenDirty=!0),this._showCreditsOnScreen=e}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&this.resetDrawCommands(),this._splitDirection=e}},classificationType:{get:function(){return this._classificationType}},pickIds:{get:function(){return this._pickIds}},styleCommandsNeeded:{get:function(){return this._styleCommandsNeeded}}});ao.prototype.getNode=function(e){return this._nodesByName[e]};ao.prototype.setArticulationStage=function(e,t){this._sceneGraph.setArticulationStage(e,t)};ao.prototype.applyArticulations=function(){this._sceneGraph.applyArticulations()};ao.prototype.makeStyleDirty=function(){this._styleDirty=!0};ao.prototype.resetDrawCommands=function(){this._drawCommandsBuilt=!1};var $4e=new B,eze=new Z,tze=new B;ao.prototype.update=function(e){let t=!1;try{t=nze(this,e)}catch(n){if(this._loader.incrementallyLoadTextures)if(n.name==="TextureError")EN(this,n),this._rejectTexturesLoad=this._rejectTexturesLoad&&this._rejectTexturesLoad(n);else{let i=Qt.getError("model",this._resource,n);EN(this,i),this._rejectLoad=this._rejectLoad&&this._rejectLoad(i)}else{let i=Qt.getError("model",this._resource,n);EN(this,i),this._rejectLoad=this._rejectLoad&&this._rejectLoad(i),this._rejectTexturesLoad=this._rejectTexturesLoad&&this._rejectTexturesLoad(i)}}if(ize(this,e),oze(this,e),!this._resourcesLoaded&&t){this._resourcesLoaded=!0;let n=this._loader.components;if(!l(n)){if(this._loader.isUnloaded())return;let r=Qt.getError("model",this._resource,new de("Failed to load model."));EN(r),this._rejectLoad=this._rejectLoad&&this._rejectLoad(r)}let i=n.structuralMetadata;l(i)&&i.propertyTableCount>0&&Z4e(this,i);let o=new xN({model:this,modelComponents:n});this._sceneGraph=o,this._gltfCredits=o.components.asset.credits}if(!(!this._resourcesLoaded||e.mode===ne.MORPHING)){if(rze(this),sze(this),aze(this,e),cze(this),lze(this,e),uze(this,e),fze(this,e),dze(this,e),this._defaultTexture=e.context.defaultTexture,mze(this,e),hze(this,e),pze(this),_ze(this,e),Aze(this,e),!this._ready){e.afterRender.push(()=>{this._ready=!0,this._readyEvent.raiseEvent(this),this._completeLoad=this._completeLoad&&this._completeLoad(),this._loader.incrementallyLoadTextures||(this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this),this._completeTexturesLoad=this._completeTexturesLoad&&this._completeTexturesLoad())});return}this._loader.incrementallyLoadTextures&&!this._texturesLoaded&&this._loader.texturesLoaded&&(this.resetDrawCommands(),this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this),this._completeTexturesLoad=this._completeTexturesLoad&&this._completeTexturesLoad()),yze(this),xze(this,e),Cze(this),Tze(this,e)}};function nze(e,t){return!e._resourcesLoaded||!e._texturesLoaded?(t.afterRender.push(()=>!0),e._loader.process(t)):!0}function ize(e,t){l(e._customShader)&&e._customShader.update(t)}function oze(e,t){e._imageBasedLighting.update(t),e._imageBasedLighting.shouldRegenerateShaders&&e.resetDrawCommands()}function rze(e){if(!e._featureTableIdDirty)return;e._featureTableIdDirty=!1;let t=e._sceneGraph.components,n=t.structuralMetadata;l(n)&&n.propertyTableCount>0&&(e.featureTableId=Q4e(t,e),e._styleDirty=!0,e.resetDrawCommands())}function sze(e){e._styleDirty&&(e.applyStyle(e._style),e._styleDirty=!1)}function aze(e,t){let n=e._featureTables,i=n.length,o=!1;for(let r=0;r<i;r++)n[r].update(t),n[r].styleCommandsNeededDirty&&(o=!0);o&&_ie(e)}function _ie(e){let t=e.featureTables[e.featureTableId];e._styleCommandsNeeded=Em.getStyleCommandsNeeded(t.featuresLength,t.batchTexture.translucentFeaturesLength)}function cze(e){let t=e.pointCloudShading;t.attenuation!==e._attenuation&&(e.resetDrawCommands(),e._attenuation=t.attenuation),t.backFaceCulling!==e._pointCloudBackFaceCulling&&(e.resetDrawCommands(),e._pointCloudBackFaceCulling=t.backFaceCulling)}function lze(e,t){e._silhouetteDirty&&(yie(t)&&e.resetDrawCommands(),e._silhouetteDirty=!1)}function uze(e,t){let n=e.hasSkipLevelOfDetail(t);n!==e._skipLevelOfDetail&&(e.resetDrawCommands(),e._skipLevelOfDetail=n)}function fze(e,t){let n=0;e.isClippingEnabled()&&(e._clippingPlanes.owner===e&&e._clippingPlanes.update(t),n=e._clippingPlanes.clippingPlanesState),n!==e._clippingPlanesState&&(e.resetDrawCommands(),e._clippingPlanesState=n)}function dze(e,t){t.mode!==e._sceneMode&&(e._projectTo2D?e.resetDrawCommands():e._updateModelMatrix=!0,e._sceneMode=t.mode)}function mze(e,t){e._drawCommandsBuilt||(e.destroyPipelineResources(),e._sceneGraph.buildDrawCommands(t),e._drawCommandsBuilt=!0)}function hze(e,t){B.equals(e.modelMatrix,e._modelMatrix)||(e._updateModelMatrix=!0,e._modelMatrix=B.clone(e.modelMatrix,e._modelMatrix))}var bm=new m,bN=new he;function pze(e){if(!e._updateModelMatrix&&!e._heightDirty&&e._minimumPixelSize===0)return;l(e._removeUpdateHeightCallback)&&(e._removeUpdateHeightCallback(),e._removeUpdateHeightCallback=void 0);let t=e._scene;if(!l(t)||!l(t.globe)||e.heightReference===qe.NONE){e._clampedModelMatrix=void 0;return}let n=t.globe,i=n.ellipsoid,o=e.modelMatrix;bm.x=o[12],bm.y=o[13],bm.z=o[14];let r=i.cartesianToCartographic(bm);l(e._clampedModelMatrix)||(e._clampedModelMatrix=B.clone(o,new B));let s=n._surface;e._removeUpdateHeightCallback=s.updateHeight(r,pie(e,i,r));let a=n.getHeight(r);if(l(a)){let c=pie(e,i,r);he.clone(r,bN),bN.height=a,i.cartographicToCartesian(bN,bm),c(bm)}e._heightDirty=!1,e._updateModelMatrix=!0}function _ze(e,t){if(!e._updateModelMatrix&&e._minimumPixelSize===0)return;let n=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;gie(e,n),gze(e,n,t)}function gie(e,t){e._clampedScale=l(e._maximumScale)?Math.min(e._scale,e._maximumScale):e._scale,e._boundingSphere.center=m.multiplyByScalar(e._sceneGraph.boundingSphere.center,e._clampedScale,e._boundingSphere.center),e._boundingSphere.radius=e._initialRadius*e._clampedScale,e._boundingSphere=ae.transform(e._boundingSphere,t,e._boundingSphere)}function gze(e,t,n){let i=e.scale;if(e.minimumPixelSize!==0&&!e._projectTo2D){let o=n.context,r=Math.max(o.drawingBufferWidth,o.drawingBufferHeight);B.getTranslation(t,bm),e._sceneMode!==ne.SCENE3D&&Qi.computeActualWgs84Position(n,bm,bm);let s=e._boundingSphere.radius,a=Eze(bm,s,n),c=1/a;Math.min(c*(2*s),r)<e.minimumPixelSize&&(i=e.minimumPixelSize*a/(2*e._initialRadius))}e._computedScale=l(e.maximumScale)?Math.min(e.maximumScale,i):i}function yze(e){if(!e._idDirty)return;e._idDirty=!1;let t=e._id,n=e._pickIds,i=n.length;for(let o=0;o<i;++o)n[o].object.id=t}function Aze(e,t){let n=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix,i=y(e.referenceMatrix,n),o=t.context,r=e._imageBasedLighting;if(r.useSphericalHarmonicCoefficients||r.useSpecularEnvironmentMaps){let s=eze,a=$4e;a=B.multiply(o.uniformState.view3D,i,a),s=B.getMatrix3(a,s),s=Z.getRotation(s,s),e._iblReferenceFrameMatrix=Z.transpose(s,e._iblReferenceFrameMatrix)}if(e.isClippingEnabled()){let s=tze;s=B.multiply(o.uniformState.view3D,i,s),s=B.multiply(s,e._clippingPlanes.modelMatrix,s),e._clippingPlanesMatrix=B.inverseTranspose(s,e._clippingPlanesMatrix)}}function xze(e,t){let n=e._sceneGraph;if(e._updateModelMatrix||e._minimumPixelSize!==0){let o=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;n.updateModelMatrix(o,t),e._updateModelMatrix=!1}e._backFaceCullingDirty&&(n.updateBackFaceCulling(e._backFaceCulling),e._backFaceCullingDirty=!1),e._shadowsDirty&&(n.updateShadows(e._shadows),e._shadowsDirty=!1),e._debugShowBoundingVolumeDirty&&(n.updateShowBoundingVolume(e._debugShowBoundingVolume),e._debugShowBoundingVolumeDirty=!1);let i=!1;l(e.classificationType)||(i=e._userAnimationDirty||e._activeAnimations.update(t)),n.update(t,i),e._userAnimationDirty=!1}function Cze(e){if(!e._showCreditsOnScreenDirty)return;e._showCreditsOnScreenDirty=!1;let t=e._showCreditsOnScreen;l(e._credit)&&(e._credit.showOnScreen=t);let n=e._resourceCredits,i=n.length;for(let s=0;s<i;s++)n[s].showOnScreen=t;let o=e._gltfCredits,r=o.length;for(let s=0;s<r;s++)o[s].showOnScreen=t}function Tze(e,t){let n=Sze(e,t),i=e.isInvisible(),o=e.hasSilhouette(t),r=e._show&&e._computedScale!==0&&n&&(!i||o),s=t.passes,a=s.render||s.pick&&e.allowPicking;r&&!e._ignoreCommands&&a&&(wze(e,t),e._sceneGraph.pushDrawCommands(t))}var o6=new ae;function Eze(e,t,n){return o6.center=e,o6.radius=t,n.camera.getPixelSize(o6,n.context.drawingBufferWidth,n.context.drawingBufferHeight)}function pie(e,t,n){return function(i){if(e.heightReference===qe.RELATIVE_TO_GROUND){let r=t.cartesianToCartographic(i,bN);r.height+=n.height,t.cartographicToCartesian(r,i)}let o=e._clampedModelMatrix;B.clone(e.modelMatrix,o),o[12]=i.x,o[13]=i.y,o[14]=i.z,e._heightDirty=!0}}var bze=new m;function Sze(e,t){let n=e.distanceDisplayCondition;if(!l(n))return!0;let i=n.near*n.near,o=n.far*n.far,r;if(t.mode===ne.SCENE2D){let a=(t.camera.frustum.right-t.camera.frustum.left)*.5;r=a*a}else{let s=B.getTranslation(e.modelMatrix,bze);Qi.computeActualWgs84Position(t,s,s),r=m.distanceSquared(s,t.camera.positionWC)}return r>=i&&r<=o}function wze(e,t){let n=t.creditDisplay,i=e._credit;l(i)&&n.addCreditToNextFrame(i);let o=e._resourceCredits,r=o.length;for(let c=0;c<r;c++)n.addCreditToNextFrame(o[c]);let s=e._gltfCredits,a=s.length;for(let c=0;c<a;c++)n.addCreditToNextFrame(s[c])}ao.prototype.isTranslucent=function(){let e=this.color;return l(e)&&e.alpha>0&&e.alpha<1};ao.prototype.isInvisible=function(){let e=this.color;return l(e)&&e.alpha===0};function yie(e){return e.context.stencilBuffer}ao.prototype.hasSilhouette=function(e){return yie(e)&&this._silhouetteSize>0&&this._silhouetteColor.alpha>0&&!l(this._classificationType)};ao.prototype.hasSkipLevelOfDetail=function(e){if(!Vo.is3DTiles(this.type))return!1;let t=e.context.stencilBuffer,n=this._content.tileset;return t&&n.isSkippingLevelOfDetail};ao.prototype.isClippingEnabled=function(){let e=this._clippingPlanes;return l(e)&&e.enabled&&e.length!==0};ao.prototype.isDestroyed=function(){return!1};ao.prototype.destroy=function(){let e=this._loader;l(e)&&e.destroy();let t=this._featureTables;if(l(t)){let i=t.length;for(let o=0;o<i;o++)t[o].destroy()}this.destroyPipelineResources(),this.destroyModelResources(),l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),l(this._terrainProviderChangedCallback)&&(this._terrainProviderChangedCallback(),this._terrainProviderChangedCallback=void 0);let n=this._clippingPlanes;l(n)&&!n.isDestroyed()&&n.owner===this&&n.destroy(),this._clippingPlanes=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0,ue(this)};ao.prototype.destroyPipelineResources=function(){let e=this._pipelineResources;for(let t=0;t<e.length;t++)e[t].destroy();this._pipelineResources.length=0,this._pickIds.length=0};ao.prototype.destroyModelResources=function(){let e=this._modelResources;for(let t=0;t<e.length;t++)e[t].destroy();this._modelResources.length=0};ao.fromGltf=function(e){$("Model.fromGltf","Model.fromGltf was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Model.fromGltfAsync instead."),e=y(e,y.EMPTY_OBJECT);let t=y(e.url,e.gltf),n={releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},i=y(e.basePath,""),o=we.createIfNeeded(i);l(t.asset)?(n.gltfJson=t,n.baseResource=o,n.gltfResource=o):t instanceof Uint8Array?(n.typedArray=t,n.baseResource=o,n.gltfResource=o):n.gltfResource=we.createIfNeeded(t);let r=new Zh(n),a=l(e.content)?Vo.TILE_GLTF:Vo.GLTF,c=iT(r,a,e);return c.resource=n.gltfResource,new ao(c)};ao.fromGltfAsync=async function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.url,e.gltf),n={releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},i=y(e.basePath,""),o=we.createIfNeeded(i);l(t.asset)?(n.gltfJson=t,n.baseResource=o,n.gltfResource=o):t instanceof Uint8Array?(n.typedArray=t,n.baseResource=o,n.gltfResource=o):n.gltfResource=we.createIfNeeded(t);let r=new Zh(n),a=l(e.content)?Vo.TILE_GLTF:Vo.GLTF,c=n.gltfResource,u=iT(r,a,e);u.resource=c;try{await r.load()}catch(g){throw r.destroy(),Qt.getError("model",c,g)}let f=e.gltfCallback;l(f)&&f(r.gltfJson);let d=new ao(u),p=d._resource.credits;if(l(p)){let g=p.length;for(let h=0;h<g;h++)d._resourceCredits.push(p[h])}return d};ao.fromB3dm=async function(e){let t={b3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},n=new UB(t);try{await n.load();let i=iT(n,Vo.TILE_B3DM,e);return new ao(i)}catch(i){throw n.destroy(),i}};ao.fromPnts=async function(e){let t={arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,loadAttributesFor2D:e.projectTo2D},n=new bw(t);try{await n.load();let i=iT(n,Vo.TILE_PNTS,e);return new ao(i)}catch(i){throw n.destroy(),i}};ao.fromI3dm=async function(e){let t={i3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline},n=new jB(t);try{await n.load();let i=iT(n,Vo.TILE_I3DM,e);return new ao(i)}catch(i){throw n.destroy(),i}};ao.fromGeoJson=async function(e){let t={geoJson:e.geoJson},n=new kB(t),i=iT(n,Vo.TILE_GEOJSON,e);return new ao(i)};ao.prototype.applyColorAndShow=function(e){let t=this._color,n=l(e)&&l(e.color),i=l(e)&&l(e.show);this._color=n?e.color.evaluateColor(void 0,this._color):z.clone(z.WHITE,this._color),this._show=i?e.show.evaluate(void 0):!0,r6(t,this._color)&&this.resetDrawCommands()};ao.prototype.applyStyle=function(e){let t=this.type===Vo.TILE_PNTS,n=l(this.featureTableId)&&this.featureTables[this.featureTableId].featuresLength>0,i=l(this.structuralMetadata)?this.structuralMetadata.propertyAttributes:void 0,o=l(i)&&l(i[0]);if(t&&(!n||o)){this.resetDrawCommands();return}n?(this.featureTables[this.featureTableId].applyStyle(e),_ie(this,e)):(this.applyColorAndShow(e),this._styleCommandsNeeded=void 0)};function iT(e,t,n){return{loader:e,type:t,resource:n.resource,show:n.show,modelMatrix:n.modelMatrix,scale:n.scale,minimumPixelSize:n.minimumPixelSize,maximumScale:n.maximumScale,id:n.id,allowPicking:n.allowPicking,clampAnimations:n.clampAnimations,shadows:n.shadows,debugShowBoundingVolume:n.debugShowBoundingVolume,enableDebugWireframe:n.enableDebugWireframe,debugWireframe:n.debugWireframe,cull:n.cull,opaquePass:n.opaquePass,customShader:n.customShader,content:n.content,heightReference:n.heightReference,scene:n.scene,distanceDisplayCondition:n.distanceDisplayCondition,color:n.color,colorBlendAmount:n.colorBlendAmount,colorBlendMode:n.colorBlendMode,silhouetteColor:n.silhouetteColor,silhouetteSize:n.silhouetteSize,enableShowOutline:n.enableShowOutline,showOutline:n.showOutline,outlineColor:n.outlineColor,clippingPlanes:n.clippingPlanes,lightColor:n.lightColor,imageBasedLighting:n.imageBasedLighting,backFaceCulling:n.backFaceCulling,credit:n.credit,showCreditsOnScreen:n.showCreditsOnScreen,splitDirection:n.splitDirection,projectTo2D:n.projectTo2D,featureIdLabel:n.featureIdLabel,instanceFeatureIdLabel:n.instanceFeatureIdLabel,pointCloudShading:n.pointCloudShading,classificationType:n.classificationType,pickObject:n.pickObject}}var Sm=ao;function As(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this._model=void 0,this._metadata=void 0,this._group=void 0,this._ready=!1,this._resolveContent=void 0,this._readyPromise=void 0}Object.defineProperties(As.prototype,{featuresLength:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;return l(t)&&l(t[n])?t[n].featuresLength:0}},pointsLength:{get:function(){return this._model.statistics.pointsLength}},trianglesLength:{get:function(){return this._model.statistics.trianglesLength}},geometryByteLength:{get:function(){return this._model.statistics.geometryByteLength}},texturesByteLength:{get:function(){return this._model.statistics.texturesByteLength}},batchTableByteLength:{get:function(){let e=this._model.statistics;return e.propertyTablesByteLength+e.batchTexturesByteLength}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Model3DTileContent.readyPromise","Model3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Model3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;if(l(t)&&l(t[n]))return t[n]}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});As.prototype.getFeature=function(e){let t=this._model,n=t.featureTableId;return t.featureTables[n].getFeature(e)};As.prototype.hasProperty=function(e,t){let n=this._model,i=n.featureTableId;return l(i)?n.featureTables[i].hasProperty(e,t):!1};As.prototype.applyDebugSettings=function(e,t){t=e?t:z.WHITE,this.featuresLength===0?this._model.color=t:l(this.batchTable)&&this.batchTable.setAllColor(t)};As.prototype.applyStyle=function(e){this._model.style=e};As.prototype.update=function(e,t){let n=this._model,i=this._tile;n.colorBlendAmount=e.colorBlendAmount,n.colorBlendMode=e.colorBlendMode,n.modelMatrix=i.computedTransform,n.customShader=e.customShader,n.featureIdLabel=e.featureIdLabel,n.instanceFeatureIdLabel=e.instanceFeatureIdLabel,n.lightColor=e.lightColor,n.imageBasedLighting=e.imageBasedLighting,n.backFaceCulling=e.backFaceCulling,n.shadows=e.shadows,n.showCreditsOnScreen=e.showCreditsOnScreen,n.splitDirection=e.splitDirection,n.debugWireframe=e.debugWireframe,n.showOutline=e.showOutline,n.outlineColor=e.outlineColor,n.pointCloudShading=e.pointCloudShading;let o=e.clippingPlanes;n.referenceMatrix=e.clippingPlanesOriginMatrix,l(o)&&i.clippingPlanesDirty&&(n._clippingPlanes=o.enabled&&i._isClipped?o:void 0),l(o)&&l(n._clippingPlanes)&&n._clippingPlanes!==o&&(n._clippingPlanes=o,n._clippingPlanesState=0),n.update(t),!this._ready&&n.ready&&(n.activeAnimations.addAll({loop:Hl.REPEAT}),this._ready=!0,this._resolveContent=this._resolveContent&&this._resolveContent(this))};As.prototype.isDestroyed=function(){return!1};As.prototype.destroy=function(){return this._model=this._model&&this._model.destroy(),ue(this)};As.fromGltf=async function(e,t,n,i){let o=new As(e,t,n),s=Sw(e,t,o,{gltf:i,basePath:n}),a=e.vectorClassificationOnly?void 0:e.classificationType;s.classificationType=a;let c=await Sm.fromGltfAsync(s);return o._model=c,o._readyPromise=new Promise(u=>{o._resolveContent=u}),o};As.fromB3dm=async function(e,t,n,i,o){let r=new As(e,t,n),a=Sw(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=e.vectorClassificationOnly?void 0:e.classificationType;a.classificationType=c;let u=await Sm.fromB3dm(a);return r._model=u,r._readyPromise=new Promise(f=>{r._resolveContent=f}),r};As.fromI3dm=async function(e,t,n,i,o){let r=new As(e,t,n),a=Sw(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await Sm.fromI3dm(a);return r._model=c,r._readyPromise=new Promise(u=>{r._resolveContent=u}),r};As.fromPnts=async function(e,t,n,i,o){let r=new As(e,t,n),a=Sw(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await Sm.fromPnts(a);return r._model=c,r._readyPromise=new Promise(u=>{r._resolveContent=u}),r};As.fromGeoJson=async function(e,t,n,i){let o=new As(e,t,n),s=Sw(e,t,o,{geoJson:i,resource:n}),a=await Sm.fromGeoJson(s);return o._model=a,o._readyPromise=new Promise(c=>{o._resolveContent=c}),o};function Sw(e,t,n,i){let o={cull:!1,releaseGltfJson:!0,opaquePass:be.CESIUM_3D_TILE,modelMatrix:t.computedTransform,upAxis:e._modelUpAxis,forwardAxis:e._modelForwardAxis,incrementallyLoadTextures:!1,customShader:e.customShader,content:n,colorBlendMode:e.colorBlendMode,colorBlendAmount:e.colorBlendAmount,lightColor:e.lightColor,imageBasedLighting:e.imageBasedLighting,featureIdLabel:e.featureIdLabel,instanceFeatureIdLabel:e.instanceFeatureIdLabel,pointCloudShading:e.pointCloudShading,clippingPlanes:e.clippingPlanes,backFaceCulling:e.backFaceCulling,shadows:e.shadows,showCreditsOnScreen:e.showCreditsOnScreen,splitDirection:e.splitDirection,enableDebugWireframe:e._enableDebugWireframe,debugWireframe:e.debugWireframe,projectTo2D:e._projectTo2D,enableShowOutline:e._enableShowOutline,showOutline:e.showOutline,outlineColor:e.outlineColor};return gt(i,o)}var sp=As;function Kf(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this.featurePropertiesDirty=!1,this._metadata=void 0,this._group=void 0,this._ready=!1,this._readyPromise=Promise.resolve(this)}Object.defineProperties(Kf.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Tileset3DTileContent.readyPromise","Tileset3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Tileset3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Kf.fromJson=function(e,t,n,i){let o=new Kf(e,t,n);return o._tileset.loadTileset(o._resource,i,o._tile),o._ready=!0,o};Kf.prototype.hasProperty=function(e,t){return!1};Kf.prototype.getFeature=function(e){};Kf.prototype.applyDebugSettings=function(e,t){};Kf.prototype.applyStyle=function(e){};Kf.prototype.update=function(e,t){};Kf.prototype.isDestroyed=function(){return!1};Kf.prototype.destroy=function(){return ue(this)};var SN=Kf;var wN=`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif + +uniform sampler2D u_atlas; + +#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_textureCoordinates; +in vec4 v_pickColor; +in vec4 v_color; + +#ifdef SDF +in vec4 v_outlineColor; +in float v_outlineWidth; +#endif + +#ifdef FRAGMENT_DEPTH_CHECK +in vec4 v_textureCoordinateBounds; // the min and max x and y values for the texture coordinates +in vec4 v_originTextureCoordinateAndTranslate; // texture coordinate at the origin, billboard translate (used for label glyphs) +in vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +in mat2 v_rotationMatrix; + +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +float getGlobeDepth(vec2 adjustedST, vec2 depthLookupST, bool applyTranslate, vec2 dimensions, vec2 imageSize) +{ + vec2 lookupVector = imageSize * (depthLookupST - adjustedST); + lookupVector = v_rotationMatrix * lookupVector; + vec2 labelOffset = (dimensions - imageSize) * (depthLookupST - vec2(0.0, v_originTextureCoordinateAndTranslate.y)); // aligns label glyph with bounding rectangle. Will be zero for billboards because dimensions and imageSize will be equal + + vec2 translation = v_originTextureCoordinateAndTranslate.zw; + + if (applyTranslate) + { + // this is only needed for labels where the horizontal origin is not LEFT + // it moves the label back to where the "origin" should be since all label glyphs are set to HorizontalOrigin.LEFT + translation += (dimensions * v_originTextureCoordinateAndTranslate.xy * vec2(1.0, 0.0)); + } + + vec2 st = ((lookupVector - translation + labelOffset) + gl_FragCoord.xy) / czm_viewport.zw; + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + + if (logDepthOrDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif + + +#ifdef SDF + +// Get the distance from the edge of a glyph at a given position sampling an SDF texture. +float getDistance(vec2 position) +{ + return texture(u_atlas, position).r; +} + +// Samples the sdf texture at the given position and produces a color based on the fill color and the outline. +vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smoothing) +{ + float distance = getDistance(position); + + if (outlineWidth > 0.0) + { + // Don't get the outline edge exceed the SDF_EDGE + float outlineEdge = clamp(SDF_EDGE - outlineWidth, 0.0, SDF_EDGE); + float outlineFactor = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + vec4 sdfColor = mix(outlineColor, v_color, outlineFactor); + float alpha = smoothstep(outlineEdge - smoothing, outlineEdge + smoothing, distance); + return vec4(sdfColor.rgb, sdfColor.a * alpha); + } + else + { + float alpha = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + return vec4(v_color.rgb, v_color.a * alpha); + } +} +#endif + +void main() +{ + vec4 color = texture(u_atlas, v_textureCoordinates); + +#ifdef SDF + float outlineWidth = v_outlineWidth; + vec4 outlineColor = v_outlineColor; + + // Get the current distance + float distance = getDistance(v_textureCoordinates); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float smoothing = fwidth(distance); + // Get an offset that is approximately half the distance to the neighbor pixels + // 0.354 is approximately half of 1/sqrt(2) + vec2 sampleOffset = 0.354 * vec2(dFdx(v_textureCoordinates) + dFdy(v_textureCoordinates)); + + // Sample the center point + vec4 center = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); + + // Sample the 4 neighbors + vec4 color1 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color2 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color3 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color4 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + + // Equally weight the center sample and the 4 neighboring samples + color = (center + color1 + color2 + color3 + color4)/5.0; +#else + // If no derivatives available (IE 10?), just do a single sample + float smoothing = 1.0/32.0; + color = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); +#endif + + color = czm_gammaCorrect(color); +#else + color = czm_gammaCorrect(color); + color *= czm_gammaCorrect(v_color); +#endif + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + +#ifdef VECTOR_TILE + color *= u_highlightColor; +#endif + out_FragColor = color; + +#ifdef LOG_DEPTH + czm_writeLogDepth(); +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + float temp = v_compressed.y; + + temp = temp * SHIFT_RIGHT1; + + float temp2 = (temp - floor(temp)) * SHIFT_LEFT1; + bool enableDepthTest = temp2 != 0.0; + bool applyTranslate = floor(temp) != 0.0; + + if (enableDepthTest) { + temp = v_compressed.z; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); + + temp = v_compressed.w; + temp = temp * SHIFT_RIGHT12; + + vec2 imageSize; + imageSize.y = (temp - floor(temp)) * SHIFT_LEFT12; + imageSize.x = floor(temp); + + vec2 adjustedST = v_textureCoordinates - v_textureCoordinateBounds.xy; + adjustedST = adjustedST / vec2(v_textureCoordinateBounds.z - v_textureCoordinateBounds.x, v_textureCoordinateBounds.w - v_textureCoordinateBounds.y); + + float epsilonEyeDepth = v_compressed.x + czm_epsilon1; + float globeDepth1 = getGlobeDepth(adjustedST, v_originTextureCoordinateAndTranslate.xy, applyTranslate, dimensions, imageSize); + + // negative values go into the screen + if (globeDepth1 != 0.0 && globeDepth1 > epsilonEyeDepth) + { + float globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize); // top left corner + if (globeDepth2 != 0.0 && globeDepth2 > epsilonEyeDepth) + { + float globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize); // top right corner + if (globeDepth3 != 0.0 && globeDepth3 > epsilonEyeDepth) + { + discard; + } + } + } + } +#endif + +} +`;var vN=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScale; +in vec4 positionLowAndRotation; +in vec4 compressedAttribute0; // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset) +in vec4 compressedAttribute1; // aligned axis, translucency by distance, image width +in vec4 compressedAttribute2; // label horizontal origin, image height, color, pick color, size in meters, valid aligned axis, 13 bits free +in vec4 eyeOffset; // eye offset in meters, 4 bytes free (texture range) +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec4 pixelOffsetScaleByDistance; // near, nearScale, far, farScale +in vec4 compressedAttribute3; // distance display condition near, far, disableDepthTestDistance, dimensions +in vec2 sdf; // sdf outline color (rgb) and width (w) +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) +in vec4 textureCoordinateBoundsOrLabelTranslate; // the min and max x and y values for the texture coordinates +#endif +#ifdef VECTOR_TILE +in float a_batchId; +#endif + +out vec2 v_textureCoordinates; +#ifdef FRAGMENT_DEPTH_CHECK +out vec4 v_textureCoordinateBounds; +out vec4 v_originTextureCoordinateAndTranslate; +out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +out mat2 v_rotationMatrix; +#endif + +out vec4 v_pickColor; +out vec4 v_color; +#ifdef SDF +out vec4 v_outlineColor; +out float v_outlineWidth; +#endif + +const float UPPER_BOUND = 32768.0; + +const float SHIFT_LEFT16 = 65536.0; +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_LEFT7 = 128.0; +const float SHIFT_LEFT5 = 32.0; +const float SHIFT_LEFT3 = 8.0; +const float SHIFT_LEFT2 = 4.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; +const float SHIFT_RIGHT7 = 1.0 / 128.0; +const float SHIFT_RIGHT5 = 1.0 / 32.0; +const float SHIFT_RIGHT3 = 1.0 / 8.0; +const float SHIFT_RIGHT2 = 1.0 / 4.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +vec4 addScreenSpaceOffset(vec4 positionEC, vec2 imageSize, float scale, vec2 direction, vec2 origin, vec2 translate, vec2 pixelOffset, vec3 alignedAxis, bool validAlignedAxis, float rotation, bool sizeInMeters, out mat2 rotationMatrix, out float mpp) +{ + // Note the halfSize cannot be computed in JavaScript because it is sent via + // compressed vertex attributes that coerce it to an integer. + vec2 halfSize = imageSize * scale * 0.5; + halfSize *= ((direction * 2.0) - 1.0); + + vec2 originTranslate = origin * abs(halfSize); + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + if (validAlignedAxis || rotation != 0.0) + { + float angle = rotation; + if (validAlignedAxis) + { + vec4 projectedAlignedAxis = czm_modelView3D * vec4(alignedAxis, 0.0); + angle += sign(-projectedAlignedAxis.x) * acos(sign(projectedAlignedAxis.y) * (projectedAlignedAxis.y * projectedAlignedAxis.y) / + (projectedAlignedAxis.x * projectedAlignedAxis.x + projectedAlignedAxis.y * projectedAlignedAxis.y)); + } + + float cosTheta = cos(angle); + float sinTheta = sin(angle); + rotationMatrix = mat2(cosTheta, sinTheta, -sinTheta, cosTheta); + halfSize = rotationMatrix * halfSize; + } + else + { + rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); + } +#endif + + mpp = czm_metersPerPixel(positionEC); + positionEC.xy += (originTranslate + halfSize) * czm_branchFreeTernary(sizeInMeters, 1.0, mpp); + positionEC.xy += (translate + pixelOffset) * mpp; + + return positionEC; +} + +#ifdef VERTEX_DEPTH_CHECK +float getGlobeDepth(vec4 positionEC) +{ + vec4 posWC = czm_eyeToWindowCoordinates(positionEC); + + float globeDepth = czm_unpackDepth(texture(czm_globeDepthTexture, posWC.xy / czm_viewport.zw)); + + if (globeDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif +void main() +{ + // Modifying this shader may also require modifications to Billboard._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndScale.xyz; + vec3 positionLow = positionLowAndRotation.xyz; + float scale = positionHighAndScale.w; + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + float rotation = positionLowAndRotation.w; +#else + float rotation = 0.0; +#endif + + float compressed = compressedAttribute0.x; + + vec2 pixelOffset; + pixelOffset.x = floor(compressed * SHIFT_RIGHT7); + compressed -= pixelOffset.x * SHIFT_LEFT7; + pixelOffset.x -= UPPER_BOUND; + + vec2 origin; + origin.x = floor(compressed * SHIFT_RIGHT5); + compressed -= origin.x * SHIFT_LEFT5; + + origin.y = floor(compressed * SHIFT_RIGHT3); + compressed -= origin.y * SHIFT_LEFT3; + +#ifdef FRAGMENT_DEPTH_CHECK + vec2 depthOrigin = origin.xy; +#endif + origin -= vec2(1.0); + + float show = floor(compressed * SHIFT_RIGHT2); + compressed -= show * SHIFT_LEFT2; + +#ifdef INSTANCED + vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w); + vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w); + vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange; +#else + vec2 direction; + direction.x = floor(compressed * SHIFT_RIGHT1); + direction.y = compressed - direction.x * SHIFT_LEFT1; + + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w); +#endif + + float temp = compressedAttribute0.y * SHIFT_RIGHT8; + pixelOffset.y = -(floor(temp) - UPPER_BOUND); + + vec2 translate; + translate.y = (temp - floor(temp)) * SHIFT_LEFT16; + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + translate.x = floor(temp) - UPPER_BOUND; + + translate.y += (temp - floor(temp)) * SHIFT_LEFT8; + translate.y -= UPPER_BOUND; + + temp = compressedAttribute1.x * SHIFT_RIGHT8; + float temp2 = floor(compressedAttribute2.w * SHIFT_RIGHT2); + + vec2 imageSize = vec2(floor(temp), temp2); + +#ifdef FRAGMENT_DEPTH_CHECK + float labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2)); + float applyTranslate = 0.0; + if (labelHorizontalOrigin != 0.0) // is a billboard, so set apply translate to false + { + applyTranslate = 1.0; + labelHorizontalOrigin -= 2.0; + depthOrigin.x = labelHorizontalOrigin + 1.0; + } + + depthOrigin = vec2(1.0) - (depthOrigin * 0.5); +#endif + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) + temp = compressedAttribute3.w; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); +#endif + +#ifdef ALIGNED_AXIS + vec3 alignedAxis = czm_octDecode(floor(compressedAttribute1.y * SHIFT_RIGHT8)); + temp = compressedAttribute2.z * SHIFT_RIGHT5; + bool validAlignedAxis = (temp - floor(temp)) * SHIFT_LEFT1 > 0.0; +#else + vec3 alignedAxis = vec3(0.0); + bool validAlignedAxis = false; +#endif + + vec4 pickColor; + vec4 color; + + temp = compressedAttribute2.y; + temp = temp * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + temp = compressedAttribute2.x; + temp = temp * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + temp = compressedAttribute2.z * SHIFT_RIGHT8; + bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0; + temp = floor(temp) * SHIFT_RIGHT8; + + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor /= 255.0; + + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + +#if defined(FRAGMENT_DEPTH_CHECK) || defined(VERTEX_DEPTH_CHECK) + float eyeDepth = positionEC.z; +#endif + + positionEC = czm_eyeOffset(positionEC, eyeOffset.xyz); + positionEC.xyz *= show; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(EYE_DISTANCE_PIXEL_OFFSET) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + float distanceScale = czm_nearFarScalar(scaleByDistance, lengthSq); + scale *= distanceScale; + translate *= distanceScale; + // push vertex behind near plane for clipping + if (scale == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef EYE_DISTANCE_PIXEL_OFFSET + float pixelOffsetScale = czm_nearFarScalar(pixelOffsetScaleByDistance, lengthSq); + pixelOffset *= pixelOffsetScale; +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = compressedAttribute3.x; + float farSq = compressedAttribute3.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + positionEC.xyz = vec3(0.0); + } +#endif + + mat2 rotationMatrix; + float mpp; + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = compressedAttribute3.z; +#endif + +#ifdef VERTEX_DEPTH_CHECK +if (lengthSq < disableDepthTestDistance) { + float depthsilon = 10.0; + + vec2 labelTranslate = textureCoordinateBoundsOrLabelTranslate.xy; + vec4 pEC1 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth1 = getGlobeDepth(pEC1); + + if (globeDepth1 != 0.0 && pEC1.z + depthsilon < globeDepth1) + { + vec4 pEC2 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0, 1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth2 = getGlobeDepth(pEC2); + + if (globeDepth2 != 0.0 && pEC2.z + depthsilon < globeDepth2) + { + vec4 pEC3 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth3 = getGlobeDepth(pEC3); + if (globeDepth3 != 0.0 && pEC3.z + depthsilon < globeDepth3) + { + positionEC.xyz = vec3(0.0); + } + } + } +} +#endif + + positionEC = addScreenSpaceOffset(positionEC, imageSize, scale, direction, origin, translate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + gl_Position = czm_projection * positionEC; + v_textureCoordinates = textureCoordinates; + +#ifdef LOG_DEPTH + czm_vertexLogDepth(); +#endif + +#ifdef DISABLE_DEPTH_DISTANCE + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = 1.0; +#endif + } + } +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + if (sizeInMeters) { + translate /= mpp; + dimensions /= mpp; + imageSize /= mpp; + } + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + v_rotationMatrix = rotationMatrix; +#else + v_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); +#endif + + float enableDepthCheck = 0.0; + if (lengthSq < disableDepthTestDistance) + { + enableDepthCheck = 1.0; + } + + float dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12)); + float dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12)); + + float iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12)); + float ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12)); + + v_compressed.x = eyeDepth; + v_compressed.y = applyTranslate * SHIFT_LEFT1 + enableDepthCheck; + v_compressed.z = dw * SHIFT_LEFT12 + dh; + v_compressed.w = iw * SHIFT_LEFT12 + ih; + v_originTextureCoordinateAndTranslate.xy = depthOrigin; + v_originTextureCoordinateAndTranslate.zw = translate; + v_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate; + +#endif + +#ifdef SDF + vec4 outlineColor; + float outlineWidth; + + temp = sdf.x; + temp = temp * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + temp = sdf.y; + temp = temp * SHIFT_RIGHT8; + float temp3 = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.a = floor(temp); + outlineColor /= 255.0; + + v_outlineWidth = outlineWidth / 255.0; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency; +#endif + + v_pickColor = pickColor; + + v_color = color; + v_color.a *= translucency; + +} +`;function xi(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Lt.clone(n)),l(i)&&(i=Lt.clone(i)),l(o)&&(o=Lt.clone(o)),l(r)&&(r=Dt.clone(r)),this._show=y(e.show,!0),this._position=m.clone(y(e.position,m.ZERO)),this._actualPosition=m.clone(this._position),this._pixelOffset=H.clone(y(e.pixelOffset,H.ZERO)),this._translate=new H(0,0),this._eyeOffset=m.clone(y(e.eyeOffset,m.ZERO)),this._heightReference=y(e.heightReference,qe.NONE),this._verticalOrigin=y(e.verticalOrigin,Rn.CENTER),this._horizontalOrigin=y(e.horizontalOrigin,_i.CENTER),this._scale=y(e.scale,1),this._color=z.clone(y(e.color,z.WHITE)),this._rotation=y(e.rotation,0),this._alignedAxis=m.clone(y(e.alignedAxis,m.ZERO)),this._width=e.width,this._height=e.height,this._scaleByDistance=o,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._sizeInMeters=y(e.sizeInMeters,!1),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._id=e.id,this._collection=y(e.collection,t),this._pickId=void 0,this._pickPrimitive=y(e._pickPrimitive,this),this._billboardCollection=t,this._dirty=!1,this._index=-1,this._batchIndex=void 0,this._imageIndex=-1,this._imageIndexPromise=void 0,this._imageId=void 0,this._image=void 0,this._imageSubRegion=void 0,this._imageWidth=void 0,this._imageHeight=void 0,this._labelDimensions=void 0,this._labelHorizontalOrigin=void 0,this._labelTranslate=void 0;let s=e.image,a=e.imageId;l(s)&&(l(a)||(typeof s=="string"?a=s:l(s.src)?a=s.src:a=jn()),this._imageId=a,this._image=s),l(e.imageSubRegion)&&(this._imageId=a,this._imageSubRegion=e.imageSubRegion),l(this._billboardCollection._textureAtlas)&&this._loadImage(),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=ne.SCENE3D,this._clusterShow=!0,this._outlineColor=z.clone(y(e.outlineColor,z.BLACK)),this._outlineWidth=y(e.outlineWidth,0),this._updateClamping()}var Aie=xi.SHOW_INDEX=0,IN=xi.POSITION_INDEX=1,bie=xi.PIXEL_OFFSET_INDEX=2,vze=xi.EYE_OFFSET_INDEX=3,Dze=xi.HORIZONTAL_ORIGIN_INDEX=4,Ize=xi.VERTICAL_ORIGIN_INDEX=5,Pze=xi.SCALE_INDEX=6,PN=xi.IMAGE_INDEX_INDEX=7,xie=xi.COLOR_INDEX=8,Oze=xi.ROTATION_INDEX=9,Mze=xi.ALIGNED_AXIS_INDEX=10,Rze=xi.SCALE_BY_DISTANCE_INDEX=11,Bze=xi.TRANSLUCENCY_BY_DISTANCE_INDEX=12,Lze=xi.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,Nze=xi.DISTANCE_DISPLAY_CONDITION=14,Fze=xi.DISABLE_DEPTH_DISTANCE=15;xi.TEXTURE_COORDINATE_BOUNDS=16;var Cie=xi.SDF_INDEX=17;xi.NUMBER_OF_PROPERTIES=18;function Mo(e,t){let n=e._billboardCollection;l(n)&&(n._updateBillboard(e,t),e._dirty=!0)}Object.defineProperties(xi.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Mo(this,Aie))}},position:{get:function(){return this._position},set:function(e){let t=this._position;m.equals(t,e)||(m.clone(e,t),m.clone(e,this._actualPosition),this._updateClamping(),Mo(this,IN))}},heightReference:{get:function(){return this._heightReference},set:function(e){let t=this._heightReference;e!==t&&(this._heightReference=e,this._updateClamping(),Mo(this,IN))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;H.equals(t,e)||(H.clone(e,t),Mo(this,bie))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Lt.equals(t,e)||(this._scaleByDistance=Lt.clone(e,t),Mo(this,Rze))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Lt.equals(t,e)||(this._translucencyByDistance=Lt.clone(e,t),Mo(this,Bze))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;Lt.equals(t,e)||(this._pixelOffsetScaleByDistance=Lt.clone(e,t),Mo(this,Lze))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;m.equals(t,e)||(m.clone(e,t),Mo(this,vze))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,Mo(this,Dze))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,Mo(this,Ize))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,Mo(this,Pze))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),Mo(this,xie))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,Mo(this,Oze))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){let t=this._alignedAxis;m.equals(t,e)||(m.clone(e,t),Mo(this,Mze))}},width:{get:function(){return y(this._width,this._imageWidth)},set:function(e){this._width!==e&&(this._width=e,Mo(this,PN))}},height:{get:function(){return y(this._height,this._imageHeight)},set:function(e){this._height!==e&&(this._height=e,Mo(this,PN))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,Mo(this,xie))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Dt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Dt.clone(e,this._distanceDisplayCondition),Mo(this,Nze))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Mo(this,Fze))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,l(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageId},set:function(e){l(e)?typeof e=="string"?this.setImage(e,e):e instanceof we?this.setImage(e.url,e):l(e.src)?this.setImage(e.src,e):this.setImage(jn(),e):(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=void 0,this._image=void 0,this._imageIndexPromise=void 0,Mo(this,PN))}},ready:{get:function(){return this._imageIndex!==-1}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=m.clone(e,this._actualClampedPosition),Mo(this,IN)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Mo(this,Aie))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),Mo(this,Cie))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Mo(this,Cie))}}});xi.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId};xi.prototype._updateClamping=function(){xi._updateClamping(this._billboardCollection,this)};var ww=new he,Tie=new m;xi._updateClamping=function(e,t){let n=e._scene;if(!l(n)||!l(n.globe))return;let i=n.globe,o=i.ellipsoid,r=i._surface,s=n.frameState.mode,a=s!==t._mode;if(t._mode=s,(t._heightReference===qe.NONE||a)&&l(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference===qe.NONE||!l(t._position))return;let c=o.cartesianToCartographic(t._position);if(!l(c)){t._actualClampedPosition=void 0;return}l(t._removeCallbackFunc)&&t._removeCallbackFunc();function u(d){if(t._heightReference===qe.RELATIVE_TO_GROUND)if(t._mode===ne.SCENE3D){let p=o.cartesianToCartographic(d,ww);p.height+=c.height,o.cartographicToCartesian(p,d)}else d.x+=c.height;t._clampedPosition=m.clone(d,t._clampedPosition)}t._removeCallbackFunc=r.updateHeight(c,u),he.clone(c,ww);let f=i.getHeight(c);l(f)&&(ww.height=f),o.cartographicToCartesian(ww,Tie),u(Tie)};xi.prototype._loadImage=function(){let e=this._billboardCollection._textureAtlas,t=this._imageId,n=this._image,i=this._imageSubRegion,o,r=this;function s(a){if(r._imageId!==t||r._image!==n||!Ke.equals(r._imageSubRegion,i))return;let c=e.textureCoordinates[a];r._imageWidth=e.texture.width*c.width,r._imageHeight=e.texture.height*c.height,r._imageIndex=a,r._ready=!0,r._image=void 0,r._imageIndexPromise=void 0,Mo(r,PN)}if(l(n)){let a=e.getImageIndex(t);if(l(a)){s(a);return}o=e.addImage(t,n)}l(i)&&(o=e.addSubRegion(t,i)),this._imageIndexPromise=o,l(o)&&o.then(s).catch(function(a){console.error(`Error loading image for billboard: ${a}`),r._imageIndexPromise=void 0})};xi.prototype.setImage=function(e,t){this._imageId!==e&&(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=e,this._image=t,l(this._billboardCollection._textureAtlas)&&this._loadImage())};xi.prototype.setImageSubRegion=function(e,t){this._imageId===e&&Ke.equals(this._imageSubRegion,t)||(this._imageIndex=-1,this._imageId=e,this._imageSubRegion=Ke.clone(t),l(this._billboardCollection._textureAtlas)&&this._loadImage())};xi.prototype._setTranslate=function(e){let t=this._translate;H.equals(t,e)||(H.clone(e,t),Mo(this,bie))};xi.prototype._getActualPosition=function(){return l(this._clampedPosition)?this._clampedPosition:this._actualPosition};xi.prototype._setActualPosition=function(e){l(this._clampedPosition)||m.clone(e,this._actualPosition),Mo(this,IN)};var Eie=new re;xi._computeActualPosition=function(e,t,n,i){return l(e._clampedPosition)?(n.mode!==e._mode&&e._updateClamping(),e._clampedPosition):n.mode===ne.SCENE3D?t:(B.multiplyByPoint(i,t,Eie),Qi.computeActualWgs84Position(n,Eie))};var Sie=new m;xi._computeScreenSpacePosition=function(e,t,n,i,o,r){let s=B.multiplyByPoint(e,t,Sie),a=Qi.wgs84WithEyeOffsetToWindowCoordinates(o,s,n,r);if(l(a))return H.add(a,i,a),a};var DN=new H(0,0);xi.prototype.computeScreenSpacePosition=function(e,t){let n=this._billboardCollection;l(t)||(t=new H),H.clone(this._pixelOffset,DN),H.add(DN,this._translate,DN);let i=n.modelMatrix,o=this._position;if(l(this._clampedPosition)&&(o=this._clampedPosition,e.mode!==ne.SCENE3D)){let s=e.mapProjection,a=s.ellipsoid,c=s.unproject(o,ww);o=a.cartographicToCartesian(c,Sie),i=B.IDENTITY}return xi._computeScreenSpacePosition(i,o,this._eyeOffset,DN,e,t)};xi.getScreenSpaceBoundingBox=function(e,t,n){let i=e.width,o=e.height,r=e.scale;i*=r,o*=r;let s=t.x;e.horizontalOrigin===_i.RIGHT?s-=i:e.horizontalOrigin===_i.CENTER&&(s-=i*.5);let a=t.y;return e.verticalOrigin===Rn.BOTTOM||e.verticalOrigin===Rn.BASELINE?a-=o:e.verticalOrigin===Rn.CENTER&&(a-=o*.5),l(n)||(n=new Ke),n.x=s,n.y=a,n.width=i,n.height=o,n};xi.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&m.equals(this._position,e._position)&&this._imageId===e._imageId&&this._show===e._show&&this._scale===e._scale&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&Ke.equals(this._imageSubRegion,e._imageSubRegion)&&z.equals(this._color,e._color)&&H.equals(this._pixelOffset,e._pixelOffset)&&H.equals(this._translate,e._translate)&&m.equals(this._eyeOffset,e._eyeOffset)&&Lt.equals(this._scaleByDistance,e._scaleByDistance)&&Lt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Lt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Dt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};xi.prototype._destroy=function(){l(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0};var po=xi;var Uze={OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2},So=Object.freeze(Uze);var Vze={FONT_SIZE:48,PADDING:10,RADIUS:8,CUTOFF:.25},Us=Object.freeze(Vze);function ap(e,t,n,i,o){this.bottomLeft=y(e,H.ZERO),this.topRight=y(t,H.ZERO),this.childNode1=n,this.childNode2=i,this.imageIndex=o}var kze=new H(16,16);function ig(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.borderWidthInPixels,1),n=y(e.initialSize,kze);this._context=e.context,this._pixelFormat=y(e.pixelFormat,lt.RGBA),this._borderWidthInPixels=t,this._textureCoordinates=[],this._guid=jn(),this._idHash={},this._indexHash={},this._initialSize=n,this._root=void 0}Object.defineProperties(ig.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},textureCoordinates:{get:function(){return this._textureCoordinates}},texture:{get:function(){return l(this._texture)||(this._texture=new Bt({context:this._context,width:this._initialSize.x,height:this._initialSize.y,pixelFormat:this._pixelFormat})),this._texture}},numberOfImages:{get:function(){return this._textureCoordinates.length}},guid:{get:function(){return this._guid}}});function zze(e,t){let n=e._context,i=e.numberOfImages,o=2,r=e._borderWidthInPixels;if(i>0){let s=e._texture.width,a=e._texture.height,c=o*(s+t.width+r),u=o*(a+t.height+r),f=s/c,d=a/u,p=new ap(new H(s+r,r),new H(c,a)),g=new ap(new H,new H(c,a),e._root,p),h=new ap(new H(r,a+r),new H(c,u)),A=new ap(new H,new H(c,u),g,h);for(let T=0;T<e._textureCoordinates.length;T++){let E=e._textureCoordinates[T];l(E)&&(E.x*=f,E.y*=d,E.width*=f,E.height*=d)}let x=new Bt({context:e._context,width:c,height:u,pixelFormat:e._pixelFormat}),C=new ia({context:n,colorTextures:[e._texture],destroyAttachments:!1});C._bind(),x.copyFromFramebuffer(0,0,0,0,c,u),C._unBind(),C.destroy(),e._texture=e._texture&&e._texture.destroy(),e._texture=x,e._root=A}else{let s=o*(t.width+2*r),a=o*(t.height+2*r);s<e._initialSize.x&&(s=e._initialSize.x),a<e._initialSize.y&&(a=e._initialSize.y),e._texture=e._texture&&e._texture.destroy(),e._texture=new Bt({context:e._context,width:s,height:a,pixelFormat:e._pixelFormat}),e._root=new ap(new H(r,r),new H(s,a))}}function ON(e,t,n){if(l(t)){if(!l(t.childNode1)&&!l(t.childNode2)){if(l(t.imageIndex))return;let i=t.topRight.x-t.bottomLeft.x,o=t.topRight.y-t.bottomLeft.y,r=i-n.width,s=o-n.height;if(r<0||s<0)return;if(r===0&&s===0)return t;if(r>s){t.childNode1=new ap(new H(t.bottomLeft.x,t.bottomLeft.y),new H(t.bottomLeft.x+n.width,t.topRight.y));let a=t.bottomLeft.x+n.width+e._borderWidthInPixels;a<t.topRight.x&&(t.childNode2=new ap(new H(a,t.bottomLeft.y),new H(t.topRight.x,t.topRight.y)))}else{t.childNode1=new ap(new H(t.bottomLeft.x,t.bottomLeft.y),new H(t.topRight.x,t.bottomLeft.y+n.height));let a=t.bottomLeft.y+n.height+e._borderWidthInPixels;a<t.topRight.y&&(t.childNode2=new ap(new H(t.bottomLeft.x,a),new H(t.topRight.x,t.topRight.y)))}return ON(e,t.childNode1,n)}return ON(e,t.childNode1,n)||ON(e,t.childNode2,n)}}function wie(e,t,n){let i=ON(e,e._root,t);if(l(i)){i.imageIndex=n;let o=e._texture.width,r=e._texture.height,s=i.topRight.x-i.bottomLeft.x,a=i.topRight.y-i.bottomLeft.y,c=i.bottomLeft.x/o,u=i.bottomLeft.y/r,f=s/o,d=a/r;e._textureCoordinates[n]=new Ke(c,u,f,d),e._texture.copyFrom({source:t,xOffset:i.bottomLeft.x,yOffset:i.bottomLeft.y})}else zze(e,t),wie(e,t,n);e._guid=jn()}function vie(e,t){if(!l(e)||e.isDestroyed())return-1;let n=e.numberOfImages;return wie(e,t,n),n}ig.prototype.getImageIndex=function(e){return this._indexHash[e]};ig.prototype.addImageSync=function(e,t){let n=this._indexHash[e];return l(n)||(n=vie(this,t),this._idHash[e]=Promise.resolve(n),this._indexHash[e]=n),n};ig.prototype.addImage=function(e,t){let n=this._idHash[e];if(l(n))return n;typeof t=="function"?t=t(e):(typeof t=="string"||t instanceof we)&&(t=we.createIfNeeded(t).fetchImage());let i=this;return n=Promise.resolve(t).then(function(o){let r=vie(i,o);return i._indexHash[e]=r,r}),this._idHash[e]=n,n};ig.prototype.addSubRegion=function(e,t){let n=this._idHash[e];if(!l(n))throw new de(`image with id "${e}" not found in the atlas.`);let i=this;return Promise.resolve(n).then(function(o){if(o===-1)return-1;let r=i._texture.width,s=i._texture.height,a=i._textureCoordinates[o],c=a.x+t.x/r,u=a.y+t.y/s,f=t.width/r,d=t.height/s,p=i._textureCoordinates.push(new Ke(c,u,f,d))-1;return i._indexHash[e]=p,i._guid=jn(),p})};ig.prototype.isDestroyed=function(){return!1};ig.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),ue(this)};var N0=ig;var Hze=po.SHOW_INDEX,Dw=po.POSITION_INDEX,Die=po.PIXEL_OFFSET_INDEX,Iie=po.EYE_OFFSET_INDEX,Gze=po.HORIZONTAL_ORIGIN_INDEX,Wze=po.VERTICAL_ORIGIN_INDEX,jze=po.SCALE_INDEX,vw=po.IMAGE_INDEX_INDEX,Pie=po.COLOR_INDEX,Yze=po.ROTATION_INDEX,qze=po.ALIGNED_AXIS_INDEX,Oie=po.SCALE_BY_DISTANCE_INDEX,Mie=po.TRANSLUCENCY_BY_DISTANCE_INDEX,Rie=po.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX,Bie=po.DISTANCE_DISPLAY_CONDITION,Xze=po.DISABLE_DEPTH_DISTANCE,Kze=po.TEXTURE_COORDINATE_BOUNDS,Lie=po.SDF_INDEX,d6=po.NUMBER_OF_PROPERTIES,_o,Jze={positionHighAndScale:0,positionLowAndRotation:1,compressedAttribute0:2,compressedAttribute1:3,compressedAttribute2:4,eyeOffset:5,scaleByDistance:6,pixelOffsetScaleByDistance:7,compressedAttribute3:8,textureCoordinateBoundsOrLabelTranslate:9,a_batchId:10,sdf:11},Zze={direction:0,positionHighAndScale:1,positionLowAndRotation:2,compressedAttribute0:3,compressedAttribute1:4,compressedAttribute2:5,eyeOffset:6,scaleByDistance:7,pixelOffsetScaleByDistance:8,compressedAttribute3:9,textureCoordinateBoundsOrLabelTranslate:10,a_batchId:11,sdf:12};function ku(e){e=y(e,y.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._textureAtlasGUID=void 0,this._destroyTextureAtlas=!0,this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!1,this._shaderRotation=!1,this._compiledShaderRotation=!1,this._shaderAlignedAxis=!1,this._compiledShaderAlignedAxis=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderPixelOffsetScaleByDistance=!1,this._compiledShaderPixelOffsetScaleByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._shaderClampToGround=!1,this._compiledShaderClampToGround=!1,this._propertiesChanged=new Uint32Array(d6),this._maxSize=0,this._maxEyeOffset=0,this._maxScale=1,this._maxPixelOffset=0,this._allHorizontalCenter=!0,this._allVerticalCenter=!0,this._allSizedInMeters=!0,this._baseVolume=new ae,this._baseVolumeWC=new ae,this._baseVolume2D=new ae,this._boundingVolume=new ae,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._modelMatrix=B.clone(B.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowTextureAtlas=y(e.debugShowTextureAtlas,!1),this.blendOption=y(e.blendOption,So.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW],this._highlightColor=z.clone(z.WHITE);let t=this;this._uniforms={u_atlas:function(){return t._textureAtlas.texture},u_highlightColor:function(){return t._highlightColor}};let n=this._scene;l(n)&&l(n.terrainProviderChanged)&&(this._removeCallbackFunc=n.terrainProviderChanged.addEventListener(function(){let i=this._billboards,o=i.length;for(let r=0;r<o;++r)l(i[r])&&i[r]._updateClamping()},this))}Object.defineProperties(ku.prototype,{length:{get:function(){return m6(this),this._billboards.length}},textureAtlas:{get:function(){return this._textureAtlas},set:function(e){this._textureAtlas!==e&&(this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._textureAtlas=e,this._createVertexArray=!0)}},destroyTextureAtlas:{get:function(){return this._destroyTextureAtlas},set:function(e){this._destroyTextureAtlas=e}}});function Nie(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}ku.prototype.add=function(e){let t=new po(e,this);return t._index=this._billboards.length,this._billboards.push(t),this._createVertexArray=!0,t};ku.prototype.remove=function(e){return this.contains(e)?(this._billboards[e._index]=void 0,this._billboardsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};ku.prototype.removeAll=function(){Nie(this._billboards),this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!0};function m6(e){if(e._billboardsRemoved){e._billboardsRemoved=!1;let t=[],n=e._billboards,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(s._index=r++,t.push(s))}e._billboards=t}}ku.prototype._updateBillboard=function(e,t){e._dirty||(this._billboardsToUpdate[this._billboardsToUpdateIndex++]=e),++this._propertiesChanged[t]};ku.prototype.contains=function(e){return l(e)&&e._billboardCollection===this};ku.prototype.get=function(e){return m6(this),this._billboards[e]};var s6;function Qze(e){let n=e.cache.billboardCollection_indexBufferBatched;if(l(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s+0,o[r+4]=s+2,o[r+5]=s+3;return n=mt.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:Ve.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferBatched=n,n}function $ze(e){let t=e.cache.billboardCollection_indexBufferInstanced;return l(t)||(t=mt.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ve.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferInstanced=t),t}function eHe(e){let t=e.cache.billboardCollection_vertexBufferInstanced;return l(t)||(t=mt.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_vertexBufferInstanced=t),t}ku.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<d6;++i){let o=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function tHe(e,t,n,i,o,r){let s=[{index:_o.positionHighAndScale,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Dw]},{index:_o.positionLowAndRotation,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Dw]},{index:_o.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Die]},{index:_o.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Mie]},{index:_o.compressedAttribute2,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Pie]},{index:_o.eyeOffset,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Iie]},{index:_o.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Oie]},{index:_o.pixelOffsetScaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Rie]},{index:_o.compressedAttribute3,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Bie]},{index:_o.textureCoordinateBoundsOrLabelTranslate,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Kze]}];i&&s.push({index:_o.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:eHe(e)}),l(o)&&s.push({index:_o.a_batchId,componentsPerAttribute:1,componentDatatype:X.FLOAT,bufferUsage:Fe.STATIC_DRAW}),r&&s.push({index:_o.sdf,componentsPerAttribute:2,componentDatatype:X.FLOAT,usage:n[Lie]});let a=i?t:4*t;return new p_(e,s,a,i)}var a6=new Yn;function Fie(e,t,n,i,o){let r,s=i[_o.positionHighAndScale],a=i[_o.positionLowAndRotation],c=o._getActualPosition();e._mode===ne.SCENE3D&&(ae.expand(e._baseVolume,c,e._baseVolume),e._boundingVolumeDirty=!0),Yn.fromCartesian(c,a6);let u=o.scale,f=o.rotation;f!==0&&(e._shaderRotation=!0),e._maxScale=Math.max(e._maxScale,u);let d=a6.high,p=a6.low;e._instanced?(r=o._index,s(r,d.x,d.y,d.z,u),a(r,p.x,p.y,p.z,f)):(r=o._index*4,s(r+0,d.x,d.y,d.z,u),s(r+1,d.x,d.y,d.z,u),s(r+2,d.x,d.y,d.z,u),s(r+3,d.x,d.y,d.z,u),a(r+0,p.x,p.y,p.z,f),a(r+1,p.x,p.y,p.z,f),a(r+2,p.x,p.y,p.z,f),a(r+3,p.x,p.y,p.z,f))}var Vu=new H,Uu=32768,oT=65536,c6=4096,wm=256,nHe=128,iHe=32,oHe=8,Uie=4,rHe=1/256,Vie=0,kie=2,zie=3,Hie=1;function Gie(e,t,n,i,o){let r,s=i[_o.compressedAttribute0],a=o.pixelOffset,c=a.x,u=a.y,f=o._translate,d=f.x,p=f.y;e._maxPixelOffset=Math.max(e._maxPixelOffset,Math.abs(c+d),Math.abs(-u+p));let g=o.horizontalOrigin,h=o._verticalOrigin,A=o.show&&o.clusterShow;o.color.alpha===0&&(A=!1),h===Rn.BASELINE&&(h=Rn.BOTTOM),e._allHorizontalCenter=e._allHorizontalCenter&&g===_i.CENTER,e._allVerticalCenter=e._allVerticalCenter&&h===Rn.CENTER;let x=0,C=0,T=0,E=0,S=o._imageIndex;if(S!==-1){let k=n[S];x=k.x,C=k.y,T=k.width,E=k.height}let v=x+T,D=C+E,O=Math.floor(P.clamp(c,-Uu,Uu)+Uu)*nHe;O+=(g+1)*iHe,O+=(h+1)*oHe,O+=(A?1:0)*Uie;let M=Math.floor(P.clamp(u,-Uu,Uu)+Uu)*wm,L=Math.floor(P.clamp(d,-Uu,Uu)+Uu)*wm,N=(P.clamp(p,-Uu,Uu)+Uu)*rHe,_=Math.floor(N),b=Math.floor((N-_)*wm);M+=_,L+=b,Vu.x=x,Vu.y=C;let w=qn.compressTextureCoordinates(Vu);Vu.x=v;let I=qn.compressTextureCoordinates(Vu);Vu.y=D;let R=qn.compressTextureCoordinates(Vu);Vu.x=x;let F=qn.compressTextureCoordinates(Vu);e._instanced?(r=o._index,s(r,O,M,L,w)):(r=o._index*4,s(r+0,O+Vie,M,L,w),s(r+1,O+kie,M,L,I),s(r+2,O+zie,M,L,R),s(r+3,O+Hie,M,L,F))}function Wie(e,t,n,i,o){let r,s=i[_o.compressedAttribute1],a=o.alignedAxis;m.equals(a,m.ZERO)||(e._shaderAlignedAxis=!0);let c=0,u=1,f=1,d=1,p=o.translucencyByDistance;l(p)&&(c=p.near,u=p.nearValue,f=p.far,d=p.farValue,(u!==1||d!==1)&&(e._shaderTranslucencyByDistance=!0));let g=0,h=o._imageIndex;h!==-1&&(g=n[h].width);let A=e._textureAtlas.texture.width,x=Math.round(y(o.width,A*g));e._maxSize=Math.max(e._maxSize,x);let C=P.clamp(x,0,oT),T=0;Math.abs(m.magnitudeSquared(a)-1)<P.EPSILON6&&(T=qn.octEncodeFloat(a)),u=P.clamp(u,0,1),u=u===1?255:u*255|0,C=C*wm+u,d=P.clamp(d,0,1),d=d===1?255:d*255|0,T=T*wm+d,e._instanced?(r=o._index,s(r,C,T,c,f)):(r=o._index*4,s(r+0,C,T,c,f),s(r+1,C,T,c,f),s(r+2,C,T,c,f),s(r+3,C,T,c,f))}function u6(e,t,n,i,o){let r,s=i[_o.compressedAttribute2],a=o.color,c=l(e._batchTable)?z.WHITE:o.getPickId(t.context).color,u=o.sizeInMeters?1:0,f=Math.abs(m.magnitudeSquared(o.alignedAxis)-1)<P.EPSILON6?1:0;e._allSizedInMeters=e._allSizedInMeters&&u===1;let d=0,p=o._imageIndex;p!==-1&&(d=n[p].height);let g=e._textureAtlas.texture.dimensions,h=Math.round(y(o.height,g.y*d));e._maxSize=Math.max(e._maxSize,h);let A=y(o._labelHorizontalOrigin,-2);A+=2;let x=h*Uie+A,C=z.floatToByte(a.red),T=z.floatToByte(a.green),E=z.floatToByte(a.blue),S=C*oT+T*wm+E;C=z.floatToByte(c.red),T=z.floatToByte(c.green),E=z.floatToByte(c.blue);let v=C*oT+T*wm+E,D=z.floatToByte(a.alpha)*oT+z.floatToByte(c.alpha)*wm;D+=u*2+f,e._instanced?(r=o._index,s(r,S,v,D,x)):(r=o._index*4,s(r+0,S,v,D,x),s(r+1,S,v,D,x),s(r+2,S,v,D,x),s(r+3,S,v,D,x))}function f6(e,t,n,i,o){let r,s=i[_o.eyeOffset],a=o.eyeOffset,c=a.z;if(o._heightReference!==qe.NONE&&(c*=1.005),e._maxEyeOffset=Math.max(e._maxEyeOffset,Math.abs(a.x),Math.abs(a.y),Math.abs(c)),e._instanced){let u=0,f=0,d=o._imageIndex;if(d!==-1){let g=n[d];u=g.width,f=g.height}Vu.x=u,Vu.y=f;let p=qn.compressTextureCoordinates(Vu);r=o._index,s(r,a.x,a.y,c,p)}else r=o._index*4,s(r+0,a.x,a.y,c,0),s(r+1,a.x,a.y,c,0),s(r+2,a.x,a.y,c,0),s(r+3,a.x,a.y,c,0)}function jie(e,t,n,i,o){let r,s=i[_o.scaleByDistance],a=0,c=1,u=1,f=1,d=o.scaleByDistance;l(d)&&(a=d.near,c=d.nearValue,u=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,u,f)):(r=o._index*4,s(r+0,a,c,u,f),s(r+1,a,c,u,f),s(r+2,a,c,u,f),s(r+3,a,c,u,f))}function Yie(e,t,n,i,o){let r,s=i[_o.pixelOffsetScaleByDistance],a=0,c=1,u=1,f=1,d=o.pixelOffsetScaleByDistance;l(d)&&(a=d.near,c=d.nearValue,u=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderPixelOffsetScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,u,f)):(r=o._index*4,s(r+0,a,c,u,f),s(r+1,a,c,u,f),s(r+2,a,c,u,f),s(r+3,a,c,u,f))}function qie(e,t,n,i,o){let r,s=i[_o.compressedAttribute3],a=0,c=Number.MAX_VALUE,u=o.distanceDisplayCondition;l(u)&&(a=u.near,c=u.far,a*=a,c*=c,e._shaderDistanceDisplayCondition=!0);let f=o.disableDepthTestDistance,d=o.heightReference===qe.CLAMP_TO_GROUND&&t.context.depthTexture;l(f)||(f=d?5e3:0),f*=f,(d||f>0)&&(e._shaderDisableDepthDistance=!0,f===Number.POSITIVE_INFINITY&&(f=-1));let p,g;if(l(o._labelDimensions))g=o._labelDimensions.x,p=o._labelDimensions.y;else{let C=0,T=0,E=o._imageIndex;if(E!==-1){let v=n[E];C=v.height,T=v.width}p=Math.round(y(o.height,e._textureAtlas.texture.dimensions.y*C));let S=e._textureAtlas.texture.width;g=Math.round(y(o.width,S*T))}let h=Math.floor(P.clamp(g,0,c6)),A=Math.floor(P.clamp(p,0,c6)),x=h*c6+A;e._instanced?(r=o._index,s(r,a,c,f,x)):(r=o._index*4,s(r+0,a,c,f,x),s(r+1,a,c,f,x),s(r+2,a,c,f,x),s(r+3,a,c,f,x))}function Xie(e,t,n,i,o){if(o.heightReference===qe.CLAMP_TO_GROUND){let h=e._scene,A=t.context,x=t.globeTranslucencyState.translucent,C=l(h.globe)&&h.globe.depthTestAgainstTerrain;e._shaderClampToGround=A.depthTexture&&!x&&C}let r,s=i[_o.textureCoordinateBoundsOrLabelTranslate];if(zt.maximumVertexTextureImageUnits>0){let h=0,A=0;l(o._labelTranslate)&&(h=o._labelTranslate.x,A=o._labelTranslate.y),e._instanced?(r=o._index,s(r,h,A,0,0)):(r=o._index*4,s(r+0,h,A,0,0),s(r+1,h,A,0,0),s(r+2,h,A,0,0),s(r+3,h,A,0,0));return}let a=0,c=0,u=0,f=0,d=o._imageIndex;if(d!==-1){let h=n[d];a=h.x,c=h.y,u=h.width,f=h.height}let p=a+u,g=c+f;e._instanced?(r=o._index,s(r,a,c,p,g)):(r=o._index*4,s(r+0,a,c,p,g),s(r+1,a,c,p,g),s(r+2,a,c,p,g),s(r+3,a,c,p,g))}function sHe(e,t,n,i,o){if(!l(e._batchTable))return;let r=i[_o.a_batchId],s=o._batchIndex,a;e._instanced?(a=o._index,r(a,s)):(a=o._index*4,r(a+0,s),r(a+1,s),r(a+2,s),r(a+3,s))}function Kie(e,t,n,i,o){if(!e._sdf)return;let r,s=i[_o.sdf],a=o.outlineColor,c=o.outlineWidth,u=z.floatToByte(a.red),f=z.floatToByte(a.green),d=z.floatToByte(a.blue),p=u*oT+f*wm+d,g=c/Us.RADIUS,h=z.floatToByte(a.alpha)*oT+z.floatToByte(g)*wm;e._instanced?(r=o._index,s(r,p,h)):(r=o._index*4,s(r+0,p+Vie,h),s(r+1,p+kie,h),s(r+2,p+zie,h),s(r+3,p+Hie,h))}function aHe(e,t,n,i,o){Fie(e,t,n,i,o),Gie(e,t,n,i,o),Wie(e,t,n,i,o),u6(e,t,n,i,o),f6(e,t,n,i,o),jie(e,t,n,i,o),Yie(e,t,n,i,o),qie(e,t,n,i,o),Xie(e,t,n,i,o),sHe(e,t,n,i,o),Kie(e,t,n,i,o)}function l6(e,t,n,i,o,r){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let u=t[c],f=u.position,d=po._computeActualPosition(u,f,i,o);l(d)&&(u._setActualPosition(d),r?a.push(d):ae.expand(s,d,s))}r&&ae.fromPoints(a,s)}function cHe(e,t){let n=t.mode,i=e._billboards,o=e._billboardsToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==ne.SCENE3D&&!B.equals(r,e.modelMatrix)?(e._mode=n,B.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===ne.SCENE3D||n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&l6(e,i,i.length,t,r,!0)):n===ne.MORPHING?l6(e,i,i.length,t,r,!0):(n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&l6(e,o,e._billboardsToUpdateIndex,t,r,!1)}function lHe(e,t,n){let i=1;(!e._allSizedInMeters||e._maxPixelOffset!==0)&&(i=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight));let o=i*e._maxScale*e._maxSize*2;e._allHorizontalCenter&&e._allVerticalCenter&&(o*=.5);let r=i*e._maxPixelOffset+e._maxEyeOffset;n.radius+=o+r}function uHe(e,t){let n=`uniform sampler2D billboard_texture; +in vec2 v_textureCoordinates; +void main() +{ + out_FragColor = texture(billboard_texture, v_textureCoordinates); +} +`,i=t.createViewportQuadCommand(n,{uniformMap:{billboard_texture:function(){return e._textureAtlas.texture}}});return i.pass=be.OVERLAY,i}var fHe=[];ku.prototype.update=function(e){if(m6(this),!this.show)return;let t=this._billboards,n=t.length,i=e.context;this._instanced=i.instancedArrays,_o=this._instanced?Zze:Jze,s6=this._instanced?$ze:Qze;let o=this._textureAtlas;if(!l(o)){o=this._textureAtlas=new N0({context:i});for(let M=0;M<n;++M)t[M]._loadImage()}let r=o.textureCoordinates;if(r.length===0)return;cHe(this,e),t=this._billboards,n=t.length;let s=this._billboardsToUpdate,a=this._billboardsToUpdateIndex,c=this._propertiesChanged,u=o.guid,f=this._createVertexArray||this._textureAtlasGUID!==u;this._textureAtlasGUID=u;let d,p=e.passes,g=p.pick;if(f||!g&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let M=0;M<d6;++M)c[M]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=tHe(i,n,this._buffersUsage,this._instanced,this._batchTable,this._sdf),d=this._vaf.writers;for(let M=0;M<n;++M){let L=this._billboards[M];L._dirty=!1,aHe(this,e,r,d,L)}this._vaf.commit(s6(i))}this._billboardsToUpdateIndex=0}else if(a>0){let M=fHe;M.length=0,(c[Dw]||c[Yze]||c[jze])&&M.push(Fie),(c[vw]||c[Die]||c[Gze]||c[Wze]||c[Hze])&&(M.push(Gie),this._instanced&&M.push(f6)),(c[vw]||c[qze]||c[Mie])&&(M.push(Wie),M.push(u6)),(c[vw]||c[Pie])&&M.push(u6),c[Iie]&&M.push(f6),c[Oie]&&M.push(jie),c[Rie]&&M.push(Yie),(c[Bie]||c[Xze]||c[vw]||c[Dw])&&M.push(qie),(c[vw]||c[Dw])&&M.push(Xie),c[Lie]&&M.push(Kie);let L=M.length;if(d=this._vaf.writers,a/n>.1){for(let N=0;N<a;++N){let _=s[N];_._dirty=!1;for(let b=0;b<L;++b)M[b](this,e,r,d,_)}this._vaf.commit(s6(i))}else{for(let N=0;N<a;++N){let _=s[N];_._dirty=!1;for(let b=0;b<L;++b)M[b](this,e,r,d,_);this._instanced?this._vaf.subCommit(_._index,1):this._vaf.subCommit(_._index*4,4)}this._vaf.endSubCommits()}this._billboardsToUpdateIndex=0}if(a>n*1.5&&(s.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ae.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let h,A=B.IDENTITY;e.mode===ne.SCENE3D?(A=this.modelMatrix,h=ae.clone(this._baseVolumeWC,this._boundingVolume)):h=ae.clone(this._baseVolume2D,this._boundingVolume),lHe(this,e,h);let x=this._blendOption!==this.blendOption;if(this._blendOption=this.blendOption,x){this._blendOption===So.OPAQUE||this._blendOption===So.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=ze.fromCache({depthTest:{enabled:!0,func:te.LESS},depthMask:!0}):this._rsOpaque=void 0;let M=this._blendOption===So.TRANSLUCENT;this._blendOption===So.TRANSLUCENT||this._blendOption===So.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=ze.fromCache({depthTest:{enabled:!0,func:M?te.LEQUAL:te.LESS},depthMask:M,blending:mn.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let C,T,E,S,v,D=zt.maximumVertexTextureImageUnits>0;if(x||this._shaderRotation!==this._compiledShaderRotation||this._shaderAlignedAxis!==this._compiledShaderAlignedAxis||this._shaderScaleByDistance!==this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance!==this._compiledShaderTranslucencyByDistance||this._shaderPixelOffsetScaleByDistance!==this._compiledShaderPixelOffsetScaleByDistance||this._shaderDistanceDisplayCondition!==this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance||this._shaderClampToGround!==this._compiledShaderClampToGround||this._sdf!==this._compiledSDF){C=vN,T=wN,v=[],l(this._batchTable)&&(v.push("VECTOR_TILE"),C=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(C),T=this._batchTable.getFragmentShaderCallback(!1,void 0)(T)),E=new He({defines:v,sources:[C]}),this._instanced&&E.defines.push("INSTANCED"),this._shaderRotation&&E.defines.push("ROTATION"),this._shaderAlignedAxis&&E.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&E.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&E.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&E.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&E.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&E.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK"));let M=1-Us.CUTOFF;this._sdf&&E.defines.push("SDF");let L=l(this._batchTable)?"VECTOR_TILE":"";this._blendOption===So.OPAQUE_AND_TRANSLUCENT&&(S=new He({defines:["OPAQUE",L],sources:[T]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${M}`)),this._sp=Jt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:_o}),S=new He({defines:["TRANSLUCENT",L],sources:[T]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${M}`)),this._spTranslucent=Jt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:_o})),this._blendOption===So.OPAQUE&&(S=new He({defines:[L],sources:[T]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${M}`)),this._sp=Jt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:_o})),this._blendOption===So.TRANSLUCENT&&(S=new He({defines:[L],sources:[T]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${M}`)),this._spTranslucent=Jt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:_o})),this._compiledShaderRotation=this._shaderRotation,this._compiledShaderAlignedAxis=this._shaderAlignedAxis,this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderPixelOffsetScaleByDistance=this._shaderPixelOffsetScaleByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance,this._compiledShaderClampToGround=this._shaderClampToGround,this._compiledSDF=this._sdf}let O=e.commandList;if(p.render||p.pick){let M=this._colorCommands,L=this._blendOption===So.OPAQUE,N=this._blendOption===So.OPAQUE_AND_TRANSLUCENT,_=this._vaf.va,b=_.length,w=this._uniforms,I;l(this._batchTable)?(w=this._batchTable.getUniformMapCallback()(w),I=this._batchTable.getPickId()):I="v_pickColor",M.length=b;let R=N?b*2:b;for(let F=0;F<R;++F){let k=M[F];l(k)||(k=M[F]=new it);let V=L||N&&F%2===0;k.pass=V||!N?be.OPAQUE:be.TRANSLUCENT,k.owner=this;let G=N?Math.floor(F/2):F;k.boundingVolume=h,k.modelMatrix=A,k.count=_[G].indicesCount,k.shaderProgram=V?this._sp:this._spTranslucent,k.uniformMap=w,k.vertexArray=_[G].va,k.renderState=V?this._rsOpaque:this._rsTranslucent,k.debugShowBoundingVolume=this.debugShowBoundingVolume,k.pickId=I,this._instanced&&(k.count=6,k.instanceCount=n),O.push(k)}this.debugShowTextureAtlas&&(l(this.debugCommand)||(this.debugCommand=uHe(this,e.context)),O.push(this.debugCommand))}};ku.prototype.isDestroyed=function(){return!1};ku.prototype.destroy=function(){return l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),Nie(this._billboards),ue(this)};var zu=ku;function dHe(e,t,n,i,o){return function(){let r=document.createElement("canvas"),s=o+2*i;r.height=r.width=s;let a=r.getContext("2d");return a.clearRect(0,0,s,s),i!==0&&(a.beginPath(),a.arc(s/2,s/2,s/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=n,a.fill(),e<1&&(a.save(),a.globalCompositeOperation="destination-out",a.beginPath(),a.arc(s/2,s/2,o/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle="black",a.fill(),a.restore())),a.beginPath(),a.arc(s/2,s/2,o/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=t,a.fill(),r}}var rT=dHe;function Vs(e,t,n,i,o){this._content=e,this._billboard=n,this._label=i,this._polyline=o,this._batchId=t,this._billboardImage=void 0,this._billboardColor=void 0,this._billboardOutlineColor=void 0,this._billboardOutlineWidth=void 0,this._billboardSize=void 0,this._pointSize=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._heightOffset=void 0,this._pickIds=new Array(3),sT(this)}var mHe=new he;Object.defineProperties(Vs.prototype,{show:{get:function(){return this._label.show},set:function(e){this._label.show=e,this._billboard.show=e,this._polyline.show=e}},color:{get:function(){return this._color},set:function(e){this._color=z.clone(e,this._color),sT(this)}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=e,sT(this)}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=z.clone(e,this._pointOutlineColor),sT(this)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=e,sT(this)}},labelColor:{get:function(){return this._label.fillColor},set:function(e){this._label.fillColor=e,this._polyline.show=this._label.show&&e.alpha>0}},labelOutlineColor:{get:function(){return this._label.outlineColor},set:function(e){this._label.outlineColor=e}},labelOutlineWidth:{get:function(){return this._label.outlineWidth},set:function(e){this._label.outlineWidth=e}},font:{get:function(){return this._label.font},set:function(e){this._label.font=e}},labelStyle:{get:function(){return this._label.style},set:function(e){this._label.style=e}},labelText:{get:function(){return this._label.text},set:function(e){l(e)||(e=""),this._label.text=e}},backgroundColor:{get:function(){return this._label.backgroundColor},set:function(e){this._label.backgroundColor=e}},backgroundPadding:{get:function(){return this._label.backgroundPadding},set:function(e){this._label.backgroundPadding=e}},backgroundEnabled:{get:function(){return this._label.showBackground},set:function(e){this._label.showBackground=e}},scaleByDistance:{get:function(){return this._label.scaleByDistance},set:function(e){this._label.scaleByDistance=e,this._billboard.scaleByDistance=e}},translucencyByDistance:{get:function(){return this._label.translucencyByDistance},set:function(e){this._label.translucencyByDistance=e,this._billboard.translucencyByDistance=e}},distanceDisplayCondition:{get:function(){return this._label.distanceDisplayCondition},set:function(e){this._label.distanceDisplayCondition=e,this._polyline.distanceDisplayCondition=e,this._billboard.distanceDisplayCondition=e}},heightOffset:{get:function(){return this._heightOffset},set:function(e){let t=y(this._heightOffset,0),n=this._content.tileset.ellipsoid,i=n.cartesianToCartographic(this._billboard.position,mHe);i.height=i.height-t+e;let o=n.cartographicToCartesian(i);this._billboard.position=o,this._label.position=this._billboard.position,this._polyline.positions=[this._polyline.positions[0],o],this._heightOffset=e}},anchorLineEnabled:{get:function(){return this._polyline.show},set:function(e){this._polyline.show=e}},anchorLineColor:{get:function(){return this._polyline.material.uniforms.color},set:function(e){this._polyline.material.uniforms.color=z.clone(e,this._polyline.material.uniforms.color)}},image:{get:function(){return this._billboardImage},set:function(e){let t=this._billboardImage!==e;this._billboardImage=e,t&&sT(this)}},disableDepthTestDistance:{get:function(){return this._label.disableDepthTestDistance},set:function(e){this._label.disableDepthTestDistance=e,this._billboard.disableDepthTestDistance=e}},horizontalOrigin:{get:function(){return this._billboard.horizontalOrigin},set:function(e){this._billboard.horizontalOrigin=e}},verticalOrigin:{get:function(){return this._billboard.verticalOrigin},set:function(e){this._billboard.verticalOrigin=e}},labelHorizontalOrigin:{get:function(){return this._label.horizontalOrigin},set:function(e){this._label.horizontalOrigin=e}},labelVerticalOrigin:{get:function(){return this._label.verticalOrigin},set:function(e){this._label.verticalOrigin=e}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},pickIds:{get:function(){let e=this._pickIds;return e[0]=this._billboard.pickId,e[1]=this._label.pickId,e[2]=this._polyline.pickId,e}}});Vs.defaultColor=z.WHITE;Vs.defaultPointOutlineColor=z.BLACK;Vs.defaultPointOutlineWidth=0;Vs.defaultPointSize=8;function sT(e){let t=e._billboard;if(l(e._billboardImage)&&e._billboardImage!==t.image){t.image=e._billboardImage;return}if(l(e._billboardImage))return;let n=y(e._color,Vs.defaultColor),i=y(e._pointOutlineColor,Vs.defaultPointOutlineColor),o=y(e._pointOutlineWidth,Vs.defaultPointOutlineWidth),r=y(e._pointSize,Vs.defaultPointSize),s=e._billboardColor,a=e._billboardOutlineColor,c=e._billboardOutlineWidth,u=e._billboardSize;if(z.equals(n,s)&&z.equals(i,a)&&o===c&&r===u)return;e._billboardColor=z.clone(n,e._billboardColor),e._billboardOutlineColor=z.clone(i,e._billboardOutlineColor),e._billboardOutlineWidth=o,e._billboardSize=r;let f=n.alpha,d=n.toCssColorString(),p=i.toCssColorString(),g=JSON.stringify([d,r,p,o]);t.setImage(g,rT(f,d,p,o,r))}Vs.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};Vs.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};Vs.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};Vs.prototype.getPropertyInherited=function(e){return Bs.getPropertyInherited(this._content,this._batchId,e)};Vs.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};Vs.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};Vs.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};Vs.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var og=Vs;function hHe(e,t,n,i,o){let r=e.measureText(t);if(!!/\S/.test(t)){let a=document.defaultView.getComputedStyle(e.canvas).getPropertyValue("font-size").replace("px",""),c=document.createElement("canvas"),u=100,f=r.width+u|0,d=3*a,p=d/2;c.width=f,c.height=d;let g=c.getContext("2d");g.font=n,g.fillStyle="white",g.fillRect(0,0,c.width+1,c.height+1),i&&(g.strokeStyle="black",g.lineWidth=e.lineWidth,g.strokeText(t,u/2,p)),o&&(g.fillStyle="black",g.fillText(t,u/2,p));let h=g.getImageData(0,0,f,d).data,A=h.length,x=f*4,C,T,E,S;for(C=0;C<A;++C)if(h[C]!==255){E=C/x|0;break}for(C=A-1;C>=0;--C)if(h[C]!==255){S=C/x|0;break}let v=-1;for(C=0;C<f&&v===-1;++C)for(T=0;T<d;++T){let D=C*4+T*x;if(h[D]!==255||h[D+1]!==255||h[D+2]!==255||h[D+3]!==255){v=C;break}}return{width:r.width,height:S-E,ascent:p-E,descent:S-p,minx:v-u/2}}return{width:r.width,height:0,ascent:0,descent:0,minx:0}}var F0;function pHe(e,t){if(e==="")return;t=y(t,y.EMPTY_OBJECT);let n=y(t.font,"10px sans-serif"),i=y(t.stroke,!1),o=y(t.fill,!0),r=y(t.strokeWidth,1),s=y(t.backgroundColor,z.TRANSPARENT),a=y(t.padding,0),c=a*2,u=document.createElement("canvas");u.width=1,u.height=1,u.style.font=n;let f=u.getContext("2d",{willReadFrequently:!0});l(F0)||(l(f.imageSmoothingEnabled)?F0="imageSmoothingEnabled":l(f.mozImageSmoothingEnabled)?F0="mozImageSmoothingEnabled":l(f.webkitImageSmoothingEnabled)?F0="webkitImageSmoothingEnabled":l(f.msImageSmoothingEnabled)&&(F0="msImageSmoothingEnabled")),f.font=n,f.lineJoin="round",f.lineWidth=r,f[F0]=!1,u.style.visibility="hidden",document.body.appendChild(u);let d=hHe(f,e,n,i,o);u.dimensions=d,document.body.removeChild(u),u.style.visibility="";let p=-d.minx,g=Math.ceil(d.width)+p+c,h=d.height+c,A=h-d.ascent+a,x=h-A+c;if(u.width=g,u.height=h,f.font=n,f.lineJoin="round",f.lineWidth=r,f[F0]=!1,s!==z.TRANSPARENT&&(f.fillStyle=s.toCssColorString(),f.fillRect(0,0,u.width,u.height)),i){let C=y(t.strokeColor,z.BLACK);f.strokeStyle=C.toCssColorString(),f.strokeText(e,p+a,x)}if(o){let C=y(t.fillColor,z.WHITE);f.fillStyle=C.toCssColorString(),f.fillText(e,p+a,x)}return u}var aT=pHe;var soe=ar($ie(),1);var gHe={FILL:0,OUTLINE:1,FILL_AND_OUTLINE:2},Ho=Object.freeze(gHe);var eoe={},toe=0,yHe=256,AHe=new z(.165,.165,.165,.8),xHe=new H(7,5),qr=Object.freeze({LTR:0,RTL:1,WEAK:2,BRACKETS:3});function U0(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._rebindAllGlyphs=!0}function Pw(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._repositionAllGlyphs=!0}function Ow(e,t){return document.defaultView.getComputedStyle(e,null).getPropertyValue(t)}function ioe(e){let t=eoe[e._font];if(!l(t)){let n=document.createElement("div");n.style.position="absolute",n.style.opacity=0,n.style.font=e._font,document.body.appendChild(n);let i=parseFloat(Ow(n,"line-height"));isNaN(i)&&(i=void 0),t={family:Ow(n,"font-family"),size:Ow(n,"font-size").replace("px",""),style:Ow(n,"font-style"),weight:Ow(n,"font-weight"),lineHeight:i},document.body.removeChild(n),toe<yHe&&(eoe[e._font]=t,toe++)}e._fontFamily=t.family,e._fontSize=t.size,e._fontStyle=t.style,e._fontWeight=t.weight,e._lineHeight=t.lineHeight}function cp(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Lt.clone(n)),l(i)&&(i=Lt.clone(i)),l(o)&&(o=Lt.clone(o)),l(r)&&(r=Dt.clone(r)),this._renderedText=void 0,this._text=void 0,this._show=y(e.show,!0),this._font=y(e.font,"30px sans-serif"),this._fillColor=z.clone(y(e.fillColor,z.WHITE)),this._outlineColor=z.clone(y(e.outlineColor,z.BLACK)),this._outlineWidth=y(e.outlineWidth,1),this._showBackground=y(e.showBackground,!1),this._backgroundColor=z.clone(y(e.backgroundColor,AHe)),this._backgroundPadding=H.clone(y(e.backgroundPadding,xHe)),this._style=y(e.style,Ho.FILL),this._verticalOrigin=y(e.verticalOrigin,Rn.BASELINE),this._horizontalOrigin=y(e.horizontalOrigin,_i.LEFT),this._pixelOffset=H.clone(y(e.pixelOffset,H.ZERO)),this._eyeOffset=m.clone(y(e.eyeOffset,m.ZERO)),this._position=m.clone(y(e.position,m.ZERO)),this._scale=y(e.scale,1),this._id=e.id,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._scaleByDistance=o,this._heightReference=y(e.heightReference,qe.NONE),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._labelCollection=t,this._glyphs=[],this._backgroundBillboard=void 0,this._batchIndex=void 0,this._rebindAllGlyphs=!0,this._repositionAllGlyphs=!0,this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=void 0,this._clusterShow=!0,this.text=y(e.text,""),this._relativeSize=1,ioe(this),this._updateClamping()}Object.defineProperties(cp.prototype,{show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i].billboard;l(r)&&(r.show=e)}let n=this._backgroundBillboard;l(n)&&(n.show=e)}}},position:{get:function(){return this._position},set:function(e){let t=this._position;if(!m.equals(t,e)){m.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o].billboard;l(s)&&(s.position=e)}let i=this._backgroundBillboard;l(i)&&(i.position=e),this._updateClamping()}}},heightReference:{get:function(){return this._heightReference},set:function(e){if(e!==this._heightReference){this._heightReference=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i].billboard;l(r)&&(r.heightReference=e)}let n=this._backgroundBillboard;l(n)&&(n.heightReference=e),Pw(this),this._updateClamping()}}},text:{get:function(){return this._text},set:function(e){if(this._text!==e){this._text=e;let t=e.replace(/\u00ad/g,"");this._renderedText=cp.enableRightToLeftDetection?wHe(t):t,U0(this)}}},font:{get:function(){return this._font},set:function(e){this._font!==e&&(this._font=e,U0(this),ioe(this))}},fillColor:{get:function(){return this._fillColor},set:function(e){let t=this._fillColor;z.equals(t,e)||(z.clone(e,t),U0(this))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),U0(this))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,U0(this))}},showBackground:{get:function(){return this._showBackground},set:function(e){this._showBackground!==e&&(this._showBackground=e,U0(this))}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){let t=this._backgroundColor;if(!z.equals(t,e)){z.clone(e,t);let n=this._backgroundBillboard;l(n)&&(n.color=t)}}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){let t=this._backgroundPadding;H.equals(t,e)||(H.clone(e,t),Pw(this))}},style:{get:function(){return this._style},set:function(e){this._style!==e&&(this._style=e,U0(this))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;if(!H.equals(t,e)){H.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.pixelOffset=e)}let i=this._backgroundBillboard;l(i)&&(i.pixelOffset=e)}}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;if(!Lt.equals(t,e)){this._translucencyByDistance=Lt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.translucencyByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.translucencyByDistance=e)}}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;if(!Lt.equals(t,e)){this._pixelOffsetScaleByDistance=Lt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.pixelOffsetScaleByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.pixelOffsetScaleByDistance=e)}}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;if(!Lt.equals(t,e)){this._scaleByDistance=Lt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.scaleByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.scaleByDistance=e)}}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;if(!m.equals(t,e)){m.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.eyeOffset=e)}let i=this._backgroundBillboard;l(i)&&(i.eyeOffset=e)}}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,Pw(this))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){if(this._verticalOrigin!==e){this._verticalOrigin=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.verticalOrigin=e)}let n=this._backgroundBillboard;l(n)&&(n.verticalOrigin=e),Pw(this)}}},scale:{get:function(){return this._scale},set:function(e){if(this._scale!==e){this._scale=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.scale=e*this._relativeSize)}let n=this._backgroundBillboard;l(n)&&(n.scale=e*this._relativeSize),Pw(this)}}},totalScale:{get:function(){return this._scale*this._relativeSize}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){if(!Dt.equals(e,this._distanceDisplayCondition)){this._distanceDisplayCondition=Dt.clone(e,this._distanceDisplayCondition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.distanceDisplayCondition=e)}let n=this._backgroundBillboard;l(n)&&(n.distanceDisplayCondition=e)}}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){if(this._disableDepthTestDistance!==e){this._disableDepthTestDistance=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.disableDepthTestDistance=e)}let n=this._backgroundBillboard;l(n)&&(n.disableDepthTestDistance=e)}}},id:{get:function(){return this._id},set:function(e){if(this._id!==e){this._id=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.id=e)}let n=this._backgroundBillboard;l(n)&&(n.id=e)}}},pickId:{get:function(){if(!(this._glyphs.length===0||!l(this._glyphs[0].billboard)))return this._glyphs[0].billboard.pickId}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=m.clone(e,this._actualClampedPosition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard._clampedPosition=e)}let n=this._backgroundBillboard;l(n)&&(n._clampedPosition=e)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){if(this._clusterShow!==e){this._clusterShow=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.clusterShow=e)}let n=this._backgroundBillboard;l(n)&&(n.clusterShow=e)}}}});cp.prototype._updateClamping=function(){po._updateClamping(this._labelCollection,this)};cp.prototype.computeScreenSpacePosition=function(e,t){l(t)||(t=new H);let i=this._labelCollection.modelMatrix,o=l(this._actualClampedPosition)?this._actualClampedPosition:this._position;return po._computeScreenSpacePosition(i,o,this._eyeOffset,this._pixelOffset,e,t)};cp.getScreenSpaceBoundingBox=function(e,t,n){let i=0,o=0,r=0,s=0,a=e.totalScale,c=e._backgroundBillboard;if(l(c))i=t.x+c._translate.x,o=t.y-c._translate.y,r=c.width*a,s=c.height*a,e.verticalOrigin===Rn.BOTTOM||e.verticalOrigin===Rn.BASELINE?o-=s:e.verticalOrigin===Rn.CENTER&&(o-=s*.5);else{i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;let u=0,f=0,d=e._glyphs,p=d.length;for(let g=0;g<p;++g){let h=d[g],A=h.billboard;if(!l(A))continue;let x=t.x+A._translate.x,C=t.y-A._translate.y,T=h.dimensions.width*a,E=h.dimensions.height*a;e.verticalOrigin===Rn.BOTTOM||e.verticalOrigin===Rn.BASELINE?C-=E:e.verticalOrigin===Rn.CENTER&&(C-=E*.5),e._verticalOrigin===Rn.TOP?C+=Us.PADDING*a:(e._verticalOrigin===Rn.BOTTOM||e._verticalOrigin===Rn.BASELINE)&&(C-=Us.PADDING*a),i=Math.min(i,x),o=Math.min(o,C),u=Math.max(u,x+T),f=Math.max(f,C+E)}r=u-i,s=f-o}return l(n)||(n=new Ke),n.x=i,n.y=o,n.width=r,n.height=s,n};cp.prototype.equals=function(e){return this===e||l(e)&&this._show===e._show&&this._scale===e._scale&&this._outlineWidth===e._outlineWidth&&this._showBackground===e._showBackground&&this._style===e._style&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&this._renderedText===e._renderedText&&this._font===e._font&&m.equals(this._position,e._position)&&z.equals(this._fillColor,e._fillColor)&&z.equals(this._outlineColor,e._outlineColor)&&z.equals(this._backgroundColor,e._backgroundColor)&&H.equals(this._backgroundPadding,e._backgroundPadding)&&H.equals(this._pixelOffset,e._pixelOffset)&&m.equals(this._eyeOffset,e._eyeOffset)&&Lt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Lt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Lt.equals(this._scaleByDistance,e._scaleByDistance)&&Dt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._id===e._id};cp.prototype.isDestroyed=function(){return!1};cp.enableRightToLeftDetection=!1;function CHe(e,t){let n=/[a-zA-Z0-9]/,i=/[()[\]{}<>]/,o=[],r="",s=qr.LTR,a="",c=e.length;for(let u=0;u<c;++u){let f=e.charAt(u);t.test(f)?a=qr.RTL:n.test(f)?a=qr.LTR:i.test(f)?a=qr.BRACKETS:a=qr.WEAK,u===0&&(s=a),s===a&&a!==qr.BRACKETS?r+=f:(r!==""&&o.push({Type:s,Word:r}),s=a,r=f)}return o.push({Type:a,Word:r}),o}function THe(e){return e.split("").reverse().join("")}function Mw(e,t,n){return e.slice(0,t)+n+e.slice(t)}function EHe(e){switch(e){case"(":return")";case")":return"(";case"[":return"]";case"]":return"[";case"{":return"}";case"}":return"{";case"<":return">";case">":return"<"}}var bHe="\u05D0-\u05EA",SHe="\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF",noe=new RegExp(`[${bHe}${SHe}]`);function wHe(e){let t=e.split(` +`),n="";for(let i=0;i<t.length;i++){let o=t[i],r=noe.test(o.charAt(0)),s=CHe(o,noe),a=0,c="";for(let u=0;u<s.length;++u){let f=s[u],d=f.Type===qr.BRACKETS?EHe(f.Word):THe(f.Word);r?f.Type===qr.RTL?(c=d+c,a=0):f.Type===qr.LTR?(c=Mw(c,a,f.Word),a+=f.Word.length):(f.Type===qr.WEAK||f.Type===qr.BRACKETS)&&(f.Type===qr.WEAK&&s[u-1].Type===qr.BRACKETS?c=d+c:s[u-1].Type===qr.RTL?(c=d+c,a=0):s.length>u+1?s[u+1].Type===qr.RTL?(c=d+c,a=0):(c=Mw(c,a,f.Word),a+=f.Word.length):c=Mw(c,0,d)):f.Type===qr.RTL?c=Mw(c,a,d):f.Type===qr.LTR?(c+=f.Word,a=c.length):(f.Type===qr.WEAK||f.Type===qr.BRACKETS)&&(u>0&&s[u-1].Type===qr.RTL?s.length>u+1?s[u+1].Type===qr.RTL?c=Mw(c,a,d):(c+=f.Word,a=c.length):c+=f.Word:(c+=f.Word,a=c.length))}n+=c,i<t.length-1&&(n+=` +`)}return n}var V0=cp;var aoe=ar(ooe(),1);function DHe(){this.textureInfo=void 0,this.dimensions=void 0,this.billboard=void 0}function IHe(e,t,n){this.labelCollection=e,this.index=t,this.dimensions=n}var PHe=1.2,coe="ID_WHITE_PIXEL",h6=new H(4,4),OHe=new Ke(1,1,1,1);function MHe(e){let t=document.createElement("canvas");t.width=h6.x,t.height=h6.y;let n=t.getContext("2d");n.fillStyle="#fff",n.fillRect(0,0,t.width,t.height),e.addImage(coe,t)}var Hu={};function RHe(e,t,n,i,o,r,s){return Hu.font=t,Hu.fillColor=n,Hu.strokeColor=i,Hu.strokeWidth=o,Hu.padding=Us.PADDING,s===Rn.CENTER?Hu.textBaseline="middle":s===Rn.TOP?Hu.textBaseline="top":Hu.textBaseline="bottom",Hu.fill=r===Ho.FILL||r===Ho.FILL_AND_OUTLINE,Hu.stroke=r===Ho.OUTLINE||r===Ho.FILL_AND_OUTLINE,Hu.backgroundColor=z.BLACK,aT(e,Hu)}function p6(e,t){t.textureInfo=void 0,t.dimensions=void 0;let n=t.billboard;l(n)&&(n.show=!1,n.image=void 0,l(n._removeCallbackFunc)&&(n._removeCallbackFunc(),n._removeCallbackFunc=void 0),e._spareBillboards.push(n),t.billboard=void 0)}function BHe(e,t,n,i){i.index=e.addImageSync(t,n)}var LHe=new aoe.default;function NHe(e,t){let n=t._renderedText,i=LHe.splitGraphemes(n),o=i.length,r=t._glyphs,s=r.length,a,c,u;if(t._relativeSize=t._fontSize/Us.FONT_SIZE,o<s)for(c=o;c<s;++c)p6(e,r[c]);r.length=o;let f=t._showBackground&&n.split(` +`).join("").length>0,d=t._backgroundBillboard,p=e._backgroundBillboardCollection;f?(l(d)||(d=p.add({collection:e,image:coe,imageSubRegion:OHe}),t._backgroundBillboard=d),d.color=t._backgroundColor,d.show=t._show,d.position=t._position,d.eyeOffset=t._eyeOffset,d.pixelOffset=t._pixelOffset,d.horizontalOrigin=_i.LEFT,d.verticalOrigin=t._verticalOrigin,d.heightReference=t._heightReference,d.scale=t.totalScale,d.pickPrimitive=t,d.id=t._id,d.translucencyByDistance=t._translucencyByDistance,d.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,d.scaleByDistance=t._scaleByDistance,d.distanceDisplayCondition=t._distanceDisplayCondition,d.disableDepthTestDistance=t._disableDepthTestDistance):l(d)&&(p.remove(d),t._backgroundBillboard=d=void 0);let g=e._glyphTextureCache;for(u=0;u<o;++u){let h=i[u],A=t._verticalOrigin,x=JSON.stringify([h,t._fontFamily,t._fontStyle,t._fontWeight,+A]),C=g[x];if(!l(C)){let T=`${t._fontStyle} ${t._fontWeight} ${Us.FONT_SIZE}px ${t._fontFamily}`,E=RHe(h,T,z.WHITE,z.WHITE,0,Ho.FILL,A);if(C=new IHe(e,-1,E.dimensions),g[x]=C,E.width>0&&E.height>0){let S=(0,soe.default)(E,{cutoff:Us.CUTOFF,radius:Us.RADIUS}),v=E.getContext("2d"),D=E.width,O=E.height,M=v.getImageData(0,0,D,O);for(let L=0;L<D;L++)for(let N=0;N<O;N++){let _=N*D+L,b=S[_]*255,w=_*4;M.data[w+0]=b,M.data[w+1]=b,M.data[w+2]=b,M.data[w+3]=b}v.putImageData(M,0,0),h!==" "&&BHe(e._textureAtlas,x,E,C)}}if(a=r[u],l(a)?C.index===-1?p6(e,a):l(a.textureInfo)&&(a.textureInfo=void 0):(a=new DHe,r[u]=a),a.textureInfo=C,a.dimensions=C.dimensions,C.index!==-1){let T=a.billboard,E=e._spareBillboards;l(T)||(E.length>0?T=E.pop():(T=e._billboardCollection.add({collection:e}),T._labelDimensions=new H,T._labelTranslate=new H),a.billboard=T),T.show=t._show,T.position=t._position,T.eyeOffset=t._eyeOffset,T.pixelOffset=t._pixelOffset,T.horizontalOrigin=_i.LEFT,T.verticalOrigin=t._verticalOrigin,T.heightReference=t._heightReference,T.scale=t.totalScale,T.pickPrimitive=t,T.id=t._id,T.image=x,T.translucencyByDistance=t._translucencyByDistance,T.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,T.scaleByDistance=t._scaleByDistance,T.distanceDisplayCondition=t._distanceDisplayCondition,T.disableDepthTestDistance=t._disableDepthTestDistance,T._batchIndex=t._batchIndex,T.outlineColor=t.outlineColor,t.style===Ho.FILL_AND_OUTLINE?(T.color=t._fillColor,T.outlineWidth=t.outlineWidth):t.style===Ho.FILL?(T.color=t._fillColor,T.outlineWidth=0):t.style===Ho.OUTLINE&&(T.color=z.TRANSPARENT,T.outlineWidth=t.outlineWidth)}}t._repositionAllGlyphs=!0}function roe(e,t,n){return t===_i.CENTER?-e/2:t===_i.RIGHT?-(e+n.x):n.x}var tr=new H,FHe=new H;function UHe(e){let t=e._glyphs,n=e._renderedText,i,o,r=0,s=0,a=[],c=Number.NEGATIVE_INFINITY,u=0,f=1,d,p=t.length,g=e._backgroundBillboard,h=H.clone(l(g)?e._backgroundPadding:H.ZERO,FHe);for(h.x/=e._relativeSize,h.y/=e._relativeSize,d=0;d<p;++d)n.charAt(d)===` +`?(a.push(r),++f,r=0):(i=t[d],o=i.dimensions,u=Math.max(u,o.height-o.descent),c=Math.max(c,o.descent),r+=o.width-o.minx,d<p-1&&(r+=t[d+1].dimensions.minx),s=Math.max(s,r));a.push(r);let A=u+c,x=e.totalScale,C=e._horizontalOrigin,T=e._verticalOrigin,E=0,S=a[E],v=roe(S,C,h),D=(l(e._lineHeight)?e._lineHeight:PHe*e._fontSize)/e._relativeSize,O=D*(f-1),M=s,L=A+O;l(g)&&(M+=h.x*2,L+=h.y*2,g._labelHorizontalOrigin=C),tr.x=v*x,tr.y=0;let N=!0,_=0;for(d=0;d<p;++d)if(n.charAt(d)===` +`)++E,_+=D,S=a[E],v=roe(S,C,h),tr.x=v*x,N=!0;else if(i=t[d],o=i.dimensions,T===Rn.TOP?(tr.y=o.height-u-h.y,tr.y+=Us.PADDING):T===Rn.CENTER?tr.y=(O+o.height-u)/2:T===Rn.BASELINE?(tr.y=O,tr.y-=Us.PADDING):(tr.y=O+c+h.y,tr.y-=Us.PADDING),tr.y=(tr.y-o.descent-_)*x,N&&(tr.x-=Us.PADDING*x,N=!1),l(i.billboard)&&(i.billboard._setTranslate(tr),i.billboard._labelDimensions.x=M,i.billboard._labelDimensions.y=L,i.billboard._labelHorizontalOrigin=C),d<p-1){let b=t[d+1];tr.x+=(o.width-o.minx+b.dimensions.minx)*x}if(l(g)&&n.split(` +`).join("").length>0&&(C===_i.CENTER?v=-s/2-h.x:C===_i.RIGHT?v=-(s+h.x*2):v=0,tr.x=v*x,T===Rn.TOP?tr.y=A-u-c:T===Rn.CENTER?tr.y=(A-u)/2-c:T===Rn.BASELINE?tr.y=-h.y-c:tr.y=0,tr.y=tr.y*x,g.width=M,g.height=L,g._setTranslate(tr),g._labelTranslate=H.clone(tr,g._labelTranslate)),e.heightReference===qe.CLAMP_TO_GROUND)for(d=0;d<p;++d){i=t[d];let b=i.billboard;l(b)&&(b._labelTranslate=H.clone(tr,b._labelTranslate))}}function loe(e,t){let n=t._glyphs;for(let i=0,o=n.length;i<o;++i)p6(e,n[i]);l(t._backgroundBillboard)&&(e._backgroundBillboardCollection.remove(t._backgroundBillboard),t._backgroundBillboard=void 0),t._labelCollection=void 0,l(t._removeCallbackFunc)&&t._removeCallbackFunc(),ue(t)}function vm(e){e=y(e,y.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._backgroundTextureAtlas=void 0,this._backgroundBillboardCollection=new zu({scene:this._scene}),this._backgroundBillboardCollection.destroyTextureAtlas=!1,this._billboardCollection=new zu({scene:this._scene,batchTable:this._batchTable}),this._billboardCollection.destroyTextureAtlas=!1,this._billboardCollection._sdf=!0,this._spareBillboards=[],this._glyphTextureCache={},this._labels=[],this._labelsToUpdate=[],this._totalGlyphCount=0,this._highlightColor=z.clone(z.WHITE),this.show=y(e.show,!0),this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,So.OPAQUE_AND_TRANSLUCENT)}Object.defineProperties(vm.prototype,{length:{get:function(){return this._labels.length}}});vm.prototype.add=function(e){let t=new V0(e,this);return this._labels.push(t),this._labelsToUpdate.push(t),t};vm.prototype.remove=function(e){if(l(e)&&e._labelCollection===this){let t=this._labels.indexOf(e);if(t!==-1)return this._labels.splice(t,1),loe(this,e),!0}return!1};vm.prototype.removeAll=function(){let e=this._labels;for(let t=0,n=e.length;t<n;++t)loe(this,e[t]);e.length=0};vm.prototype.contains=function(e){return l(e)&&e._labelCollection===this};vm.prototype.get=function(e){return this._labels[e]};vm.prototype.update=function(e){if(!this.show)return;let t=this._billboardCollection,n=this._backgroundBillboardCollection;t.modelMatrix=this.modelMatrix,t.debugShowBoundingVolume=this.debugShowBoundingVolume,n.modelMatrix=this.modelMatrix,n.debugShowBoundingVolume=this.debugShowBoundingVolume;let i=e.context;l(this._textureAtlas)||(this._textureAtlas=new N0({context:i}),t.textureAtlas=this._textureAtlas),l(this._backgroundTextureAtlas)||(this._backgroundTextureAtlas=new N0({context:i,initialSize:h6}),n.textureAtlas=this._backgroundTextureAtlas,MHe(this._backgroundTextureAtlas));let o=this._labelsToUpdate.length;for(let s=0;s<o;++s){let a=this._labelsToUpdate[s];if(a.isDestroyed())continue;let c=a._glyphs.length;a._rebindAllGlyphs&&(NHe(this,a),a._rebindAllGlyphs=!1),a._repositionAllGlyphs&&(UHe(a),a._repositionAllGlyphs=!1);let u=a._glyphs.length-c;this._totalGlyphCount+=u}let r=n.length>0?So.TRANSLUCENT:this.blendOption;t.blendOption=r,n.blendOption=r,t._highlightColor=this._highlightColor,n._highlightColor=this._highlightColor,this._labelsToUpdate.length=0,n.update(e),t.update(e)};vm.prototype.isDestroyed=function(){return!1};vm.prototype.destroy=function(){return this.removeAll(),this._billboardCollection=this._billboardCollection.destroy(),this._textureAtlas=this._textureAtlas&&this._textureAtlas.destroy(),this._backgroundBillboardCollection=this._backgroundBillboardCollection.destroy(),this._backgroundTextureAtlas=this._backgroundTextureAtlas&&this._backgroundTextureAtlas.destroy(),ue(this)};var lp=vm;var RN=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 position2DHigh; +in vec3 position2DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 prevPosition2DHigh; +in vec3 prevPosition2DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec3 nextPosition2DHigh; +in vec3 nextPosition2DLow; +in vec4 texCoordExpandAndBatchIndex; + +out vec2 v_st; +out float v_width; +out vec4 v_pickColor; +out float v_polylineAngle; + +void main() +{ + float texCoord = texCoordExpandAndBatchIndex.x; + float expandDir = texCoordExpandAndBatchIndex.y; + bool usePrev = texCoordExpandAndBatchIndex.z < 0.0; + float batchTableIndex = texCoordExpandAndBatchIndex.w; + + vec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex); + float width = widthAndShow.x + 0.5; + float show = widthAndShow.y; + + if (width < 1.0) + { + show = 0.0; + } + + vec4 pickColor = batchTable_getPickColor(batchTableIndex); + + vec4 p, prev, next; + if (czm_morphTime == 1.0) + { + p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz); + prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz); + next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz); + } + else if (czm_morphTime == 0.0) + { + p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); + prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy); + next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy); + } + else + { + p = czm_columbusViewMorph( + czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy), + czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz), + czm_morphTime); + prev = czm_columbusViewMorph( + czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy), + czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz), + czm_morphTime); + next = czm_columbusViewMorph( + czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy), + czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz), + czm_morphTime); + } + + #ifdef DISTANCE_DISPLAY_CONDITION + vec3 centerHigh = batchTable_getCenterHigh(batchTableIndex); + vec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex); + vec3 centerLow = centerLowAndRadius.xyz; + float radius = centerLowAndRadius.w; + vec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex); + + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + lengthSq = czm_eyeHeight2D.y; + } + else + { + vec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz); + lengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius); + } + + float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; + float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + show = 0.0; + } + #endif + + float polylineAngle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, polylineAngle); + gl_Position = czm_viewportOrthographic * positionWC * show; + + v_st.s = texCoord; + v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w); + + v_width = width; + v_pickColor = pickColor; + v_polylineAngle = polylineAngle; +} +`;var xc={};xc.numberOfPoints=function(e,t,n){let i=m.distance(e,t);return Math.ceil(i/n)};xc.numberOfPointsRhumbLine=function(e,t,n){let i=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(i/(n*n))))};var VHe=new he;xc.extractHeights=function(e,t){let n=e.length,i=new Array(n);for(let o=0;o<n;o++){let r=e[o];i[o]=t.cartesianToCartographic(r,VHe).height}return i};var kHe=new B,zHe=new m,uoe=new m,HHe=new fn(m.UNIT_X,0),foe=new m,GHe=new fn(m.UNIT_X,0),WHe=new m,jHe=new m,g6=[];function moe(e,t,n){let i=g6;i.length=e;let o;if(t===n){for(o=0;o<e;o++)i[o]=t;return i}let s=(n-t)/e;for(o=0;o<e;o++){let a=t+o*s;i[o]=a}return i}var LN=new he,BN=new he,rg=new m,y6=new m,YHe=new m,_6=new kf,Rw=new Pa;function qHe(e,t,n,i,o,r,s,a){let c=i.scaleToGeodeticSurface(e,y6),u=i.scaleToGeodeticSurface(t,YHe),f=xc.numberOfPoints(e,t,n),d=i.cartesianToCartographic(c,LN),p=i.cartesianToCartographic(u,BN),g=moe(f,o,r);_6.setEndPoints(d,p);let h=_6.surfaceDistance/f,A=a;d.height=o;let x=i.cartographicToCartesian(d,rg);m.pack(x,s,A),A+=3;for(let C=1;C<f;C++){let T=_6.interpolateUsingSurfaceDistance(C*h,BN);T.height=g[C],x=i.cartographicToCartesian(T,rg),m.pack(x,s,A),A+=3}return A}function XHe(e,t,n,i,o,r,s,a){let c=i.cartesianToCartographic(e,LN),u=i.cartesianToCartographic(t,BN),f=xc.numberOfPointsRhumbLine(c,u,n);c.height=0,u.height=0;let d=moe(f,o,r);Rw.ellipsoid.equals(i)||(Rw=new Pa(void 0,void 0,i)),Rw.setEndPoints(c,u);let p=Rw.surfaceDistance/f,g=a;c.height=o;let h=i.cartographicToCartesian(c,rg);m.pack(h,s,g),g+=3;for(let A=1;A<f;A++){let x=Rw.interpolateUsingSurfaceDistance(A*p,BN);x.height=d[A],h=i.cartographicToCartesian(x,rg),m.pack(h,s,g),g+=3}return g}xc.wrapLongitude=function(e,t){let n=[],i=[];if(l(e)&&e.length>0){t=y(t,B.IDENTITY);let o=B.inverseTransformation(t,kHe),r=B.multiplyByPoint(o,m.ZERO,zHe),s=m.normalize(B.multiplyByPointAsVector(o,m.UNIT_Y,uoe),uoe),a=fn.fromPointNormal(r,s,HHe),c=m.normalize(B.multiplyByPointAsVector(o,m.UNIT_X,foe),foe),u=fn.fromPointNormal(r,c,GHe),f=1;n.push(m.clone(e[0]));let d=n[0],p=e.length;for(let g=1;g<p;++g){let h=e[g];if(fn.getPointDistance(u,d)<0||fn.getPointDistance(u,h)<0){let A=Ji.lineSegmentPlane(d,h,a,WHe);if(l(A)){let x=m.multiplyByScalar(s,5e-9,jHe);fn.getPointDistance(a,d)<0&&m.negate(x,x),n.push(m.add(A,x,new m)),i.push(f+1),m.negate(x,x),n.push(m.add(A,x,new m)),f=1}}n.push(m.clone(e[g])),f++,d=h}i.push(f)}return{positions:n,lengths:i}};xc.generateArc=function(e){l(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,oe.WGS84),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let A=i.scaleToGeodeticSurface(t[0],y6);if(o=r?o[0]:o,o!==0){let x=i.geodeticSurfaceNormal(A,rg);m.multiplyByScalar(x,o,x),m.add(A,x,A)}return[A.x,A.y,A.z]}let s=e.minDistance;if(!l(s)){let A=y(e.granularity,P.RADIANS_PER_DEGREE);s=P.chordLength(A,i.maximumRadius)}let a=0,c;for(c=0;c<n-1;c++)a+=xc.numberOfPoints(t[c],t[c+1],s);let u=(a+1)*3,f=new Array(u),d=0;for(c=0;c<n-1;c++){let A=t[c],x=t[c+1],C=r?o[c]:o,T=r?o[c+1]:o;d=qHe(A,x,s,i,C,T,f,d)}g6.length=0;let p=t[n-1],g=i.cartesianToCartographic(p,LN);g.height=r?o[n-1]:o;let h=i.cartographicToCartesian(g,rg);return m.pack(h,f,u-3),f};var doe=new he,KHe=new he;xc.generateRhumbArc=function(e){l(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,oe.WGS84),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let C=i.scaleToGeodeticSurface(t[0],y6);if(o=r?o[0]:o,o!==0){let T=i.geodeticSurfaceNormal(C,rg);m.multiplyByScalar(T,o,T),m.add(C,T,C)}return[C.x,C.y,C.z]}let s=y(e.granularity,P.RADIANS_PER_DEGREE),a=0,c,u=i.cartesianToCartographic(t[0],doe),f;for(c=0;c<n-1;c++)f=i.cartesianToCartographic(t[c+1],KHe),a+=xc.numberOfPointsRhumbLine(u,f,s),u=he.clone(f,doe);let d=(a+1)*3,p=new Array(d),g=0;for(c=0;c<n-1;c++){let C=t[c],T=t[c+1],E=r?o[c]:o,S=r?o[c+1]:o;g=XHe(C,T,s,i,E,S,p,g)}g6.length=0;let h=t[n-1],A=i.cartesianToCartographic(h,LN);A.height=r?o[n-1]:o;let x=i.cartographicToCartesian(A,rg);return m.pack(x,p,d-3),p};xc.generateCartesianArc=function(e){let t=xc.generateArc(e),n=t.length/3,i=new Array(n);for(let o=0;o<n;o++)i[o]=m.unpack(t,o*3);return i};xc.generateCartesianRhumbArc=function(e){let t=xc.generateRhumbArc(e),n=t.length/3,i=new Array(n);for(let o=0;o<n;o++)i[o]=m.unpack(t,o*3);return i};var Mi=xc;function Wl(e,t){e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._width=y(e.width,1),this._loop=y(e.loop,!1),this._distanceDisplayCondition=e.distanceDisplayCondition,this._material=e.material,l(this._material)||(this._material=Gi.fromType(Gi.ColorType,{color:new z(1,1,1,1)}));let n=e.positions;l(n)||(n=[]),this._positions=n,this._actualPositions=xo(n,m.equalsEpsilon),this._loop&&this._actualPositions.length>2&&(this._actualPositions===this._positions&&(this._actualPositions=n.slice()),this._actualPositions.push(m.clone(this._actualPositions[0]))),this._length=this._actualPositions.length,this._id=e.id;let i;l(t)&&(i=B.clone(t.modelMatrix)),this._modelMatrix=i,this._segments=Mi.wrapLongitude(this._actualPositions,i),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(poe),this._polylineCollection=t,this._dirty=!1,this._pickId=void 0,this._boundingVolume=ae.fromPoints(this._actualPositions),this._boundingVolumeWC=ae.transform(this._boundingVolume,this._modelMatrix),this._boundingVolume2D=new ae}var hoe=Wl.POSITION_INDEX=0,JHe=Wl.SHOW_INDEX=1,ZHe=Wl.WIDTH_INDEX=2,QHe=Wl.MATERIAL_INDEX=3,Bw=Wl.POSITION_SIZE_INDEX=4,$He=Wl.DISTANCE_DISPLAY_CONDITION=5,poe=Wl.NUMBER_OF_PROPERTIES=6;function up(e,t){++e._propertiesChanged[t];let n=e._polylineCollection;l(n)&&(n._updatePolyline(e,t),e._dirty=!0)}Object.defineProperties(Wl.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,up(this,JHe))}},positions:{get:function(){return this._positions},set:function(e){let t=xo(e,m.equalsEpsilon);this._loop&&t.length>2&&(t===e&&(t=e.slice()),t.push(m.clone(t[0]))),(this._actualPositions.length!==t.length||this._actualPositions.length!==this._length)&&up(this,Bw),this._positions=e,this._actualPositions=t,this._length=t.length,this._boundingVolume=ae.fromPoints(this._actualPositions,this._boundingVolume),this._boundingVolumeWC=ae.transform(this._boundingVolume,this._modelMatrix,this._boundingVolumeWC),up(this,hoe),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,up(this,QHe))}},width:{get:function(){return this._width},set:function(e){let t=this._width;e!==t&&(this._width=e,up(this,ZHe))}},loop:{get:function(){return this._loop},set:function(e){if(e!==this._loop){let t=this._actualPositions;e?t.length>2&&!m.equals(t[0],t[t.length-1])&&(t.length===this._positions.length&&(this._actualPositions=t=this._positions.slice()),t.push(m.clone(t[0]))):t.length>2&&m.equals(t[0],t[t.length-1])&&(t.length-1===this._positions.length?this._actualPositions=this._positions:t.pop()),this._loop=e,up(this,Bw)}}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},isDestroyed:{get:function(){return!l(this._polylineCollection)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Dt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Dt.clone(e,this._distanceDisplayCondition),up(this,$He))}}});Wl.prototype.update=function(){let e=B.IDENTITY;l(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);let t=this._segments.positions.length,n=this._segments.lengths,i=this._propertiesChanged[hoe]>0||this._propertiesChanged[Bw]>0;if((!B.equals(e,this._modelMatrix)||i)&&(this._segments=Mi.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=ae.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=B.clone(e,this._modelMatrix),this._segments.positions.length!==t)up(this,Bw);else{let o=n.length;for(let r=0;r<o;++r)if(n[r]!==this._segments.lengths[r]){up(this,Bw);break}}};Wl.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._polylineCollection,id:this._id})),this._pickId};Wl.prototype._clean=function(){this._dirty=!1;let e=this._propertiesChanged;for(let t=0;t<poe-1;++t)e[t]=0};Wl.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._material=this._material&&this._material.destroy(),this._polylineCollection=void 0};var Jf=Wl;var eGe=Jf.SHOW_INDEX,tGe=Jf.WIDTH_INDEX,x6=Jf.POSITION_INDEX,nGe=Jf.MATERIAL_INDEX,_oe=Jf.POSITION_SIZE_INDEX,iGe=Jf.DISTANCE_DISPLAY_CONDITION,Eoe=Jf.NUMBER_OF_PROPERTIES,nl={texCoordExpandAndBatchIndex:0,position3DHigh:1,position3DLow:2,position2DHigh:3,position2DLow:4,prevPosition3DHigh:5,prevPosition3DLow:6,prevPosition2DHigh:7,prevPosition2DLow:8,nextPosition3DHigh:9,nextPosition3DLow:10,nextPosition2DHigh:11,nextPosition2DLow:12};function Zf(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._modelMatrix=B.clone(B.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._opaqueRS=void 0,this._translucentRS=void 0,this._colorCommands=[],this._polylinesUpdated=!1,this._polylinesRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(Eoe),this._polylines=[],this._polylineBuckets={},this._positionBufferUsage={bufferUsage:Fe.STATIC_DRAW,frameCount:0},this._mode=void 0,this._polylinesToUpdate=[],this._vertexArrays=[],this._positionBuffer=void 0,this._texCoordExpandAndBatchIndexBuffer=void 0,this._batchTable=void 0,this._createBatchTable=!1,this._useHighlightColor=!1,this._highlightColor=z.clone(z.WHITE);let t=this;this._uniformMap={u_highlightColor:function(){return t._highlightColor}}}Object.defineProperties(Zf.prototype,{length:{get:function(){return C6(this),this._polylines.length}}});Zf.prototype.add=function(e){let t=new Jf(e,this);return t._index=this._polylines.length,this._polylines.push(t),this._createVertexArray=!0,this._createBatchTable=!0,t};Zf.prototype.remove=function(e){if(this.contains(e)){if(this._polylinesRemoved=!0,this._createVertexArray=!0,this._createBatchTable=!0,l(e._bucket)){let t=e._bucket;t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()}return e._destroy(),!0}return!1};Zf.prototype.removeAll=function(){T6(this),Doe(this),this._polylineBuckets={},this._polylinesRemoved=!1,this._polylines.length=0,this._polylinesToUpdate.length=0,this._createVertexArray=!0};Zf.prototype.contains=function(e){return l(e)&&e._polylineCollection===this};Zf.prototype.get=function(e){return C6(this),this._polylines[e]};function oGe(e,t){l(e._batchTable)&&e._batchTable.destroy();let n=[{functionName:"batchTable_getWidthAndShow",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:2},{functionName:"batchTable_getPickColor",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0},{functionName:"batchTable_getCenterHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"batchTable_getCenterLowAndRadius",componentDatatype:X.FLOAT,componentsPerAttribute:4},{functionName:"batchTable_getDistanceDisplayCondition",componentDatatype:X.FLOAT,componentsPerAttribute:2}];e._batchTable=new Zx(t,n,e._polylines.length)}var boe=new Yn,Soe=new re,woe=new H;Zf.prototype.update=function(e){if(C6(this),this._polylines.length===0||!this.show)return;uGe(this,e);let t=e.context,n=e.mapProjection,i,o=this._propertiesChanged;if(this._createBatchTable){if(zt.maximumVertexTextureImageUnits===0)throw new de("Vertex texture fetch support is required to render polylines. The maximum number of vertex texture image units must be greater than zero.");oGe(this,t),this._createBatchTable=!1}if(this._createVertexArray||sGe(this))Aoe(this,t,n);else if(this._polylinesUpdated){let c=this._polylinesToUpdate;if(this._mode!==ne.SCENE3D){let u=c.length;for(let f=0;f<u;++f)i=c[f],i.update()}if(o[_oe]||o[nGe])Aoe(this,t,n);else{let u=c.length,f=this._polylineBuckets;for(let d=0;d<u;++d){i=c[d],o=i._propertiesChanged;let p=i._bucket,g=0;for(let h in f)if(f.hasOwnProperty(h)){if(f[h]===p){o[x6]&&p.writeUpdate(g,i,this._positionBuffer,n);break}g+=f[h].lengthOfPositions}if((o[eGe]||o[tGe])&&this._batchTable.setBatchedAttribute(i._index,0,new H(i._width,i._show)),this._batchTable.attributes.length>2){if(o[x6]||o[_oe]){let h=e.mode===ne.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,A=Yn.fromCartesian(h.center,boe),x=re.fromElements(A.low.x,A.low.y,A.low.z,h.radius,Soe);this._batchTable.setBatchedAttribute(i._index,2,A.high),this._batchTable.setBatchedAttribute(i._index,3,x)}if(o[iGe]){let h=woe;h.x=0,h.y=Number.MAX_VALUE;let A=i.distanceDisplayCondition;l(A)&&(h.x=A.near,h.y=A.far),this._batchTable.setBatchedAttribute(i._index,4,h)}}i._clean()}}c.length=0,this._polylinesUpdated=!1}o=this._propertiesChanged;for(let c=0;c<Eoe;++c)o[c]=0;let r=B.IDENTITY;e.mode===ne.SCENE3D&&(r=this.modelMatrix);let s=e.passes,a=e.morphTime!==0;if((!l(this._opaqueRS)||this._opaqueRS.depthTest.enabled!==a)&&(this._opaqueRS=ze.fromCache({depthMask:a,depthTest:{enabled:a}})),(!l(this._translucentRS)||this._translucentRS.depthTest.enabled!==a)&&(this._translucentRS=ze.fromCache({blending:mn.ALPHA_BLEND,depthMask:!a,depthTest:{enabled:a}})),this._batchTable.update(e),s.render||s.pick){let c=this._colorCommands;rGe(this,e,c,r)}};var Lw=new ae,goe=new ae;function rGe(e,t,n,i){let o=t.context,r=t.commandList,s=n.length,a=0,c=!0,u=e._vertexArrays,f=e.debugShowBoundingVolume,p=e._batchTable.getUniformMapCallback(),g=u.length;for(let h=0;h<g;++h){let A=u[h],x=A.buckets,C=x.length;for(let T=0;T<C;++T){let E=x[T],S=E.offset,v=E.bucket.shaderProgram,D=E.bucket.polylines,O=D.length,M,L,N=0,_,b;for(let w=0;w<O;++w){let I=D[w],R=cGe(I._material);if(R!==M){if(l(M)&&N>0){let G=L.isTranslucent();a>=s?(_=new it({owner:e}),n.push(_)):_=n[a],++a,b=gt(p(L._uniforms),e._uniformMap),_.boundingVolume=ae.clone(Lw,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=A.va,_.renderState=G?e._translucentRS:e._opaqueRS,_.pass=G?be.TRANSLUCENT:be.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=b,_.count=N,_.offset=S,S+=N,N=0,c=!0,r.push(_)}L=I._material,L.update(o),M=R}let F=I._locatorBuckets,k=F.length;for(let G=0;G<k;++G){let U=F[G];U.locator===E&&(N+=U.count)}let V;t.mode===ne.SCENE3D?V=I._boundingVolumeWC:t.mode===ne.COLUMBUS_VIEW?V=I._boundingVolume2D:t.mode===ne.SCENE2D?l(I._boundingVolume2D)&&(V=ae.clone(I._boundingVolume2D,goe),V.center.x=0):l(I._boundingVolumeWC)&&l(I._boundingVolume2D)&&(V=ae.union(I._boundingVolumeWC,I._boundingVolume2D,goe)),c?(c=!1,ae.clone(V,Lw)):ae.union(V,Lw,Lw)}l(M)&&N>0&&(a>=s?(_=new it({owner:e}),n.push(_)):_=n[a],++a,b=gt(p(L._uniforms),e._uniformMap),_.boundingVolume=ae.clone(Lw,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=A.va,_.renderState=L.isTranslucent()?e._translucentRS:e._opaqueRS,_.pass=L.isTranslucent()?be.TRANSLUCENT:be.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=b,_.count=N,_.offset=S,c=!0,r.push(_)),M=void 0}}n.length=a}Zf.prototype.isDestroyed=function(){return!1};Zf.prototype.destroy=function(){return voe(this),T6(this),Doe(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function sGe(e){let t=!1,n=e._propertiesChanged,i=e._positionBufferUsage;return n[x6]?(i.bufferUsage!==Fe.STREAM_DRAW&&(t=!0,i.bufferUsage=Fe.STREAM_DRAW),i.frameCount=100):i.bufferUsage!==Fe.STATIC_DRAW&&(i.frameCount===0?(t=!0,i.bufferUsage=Fe.STATIC_DRAW):i.frameCount--),t}var yoe=[0,0,0];function Aoe(e,t,n){e._createVertexArray=!1,T6(e),voe(e),lGe(e);let i=[[]],o=i[0],r=e._batchTable,s=e._useHighlightColor,a=[0],c=0,u=[[]],f=0,d=e._polylineBuckets,p,g;for(p in d)d.hasOwnProperty(p)&&(g=d[p],g.updateShader(t,r,s),f+=g.lengthOfPositions);if(f>0){let h=e._mode,A=new Float32Array(6*f*3),x=new Float32Array(f*4),C,T=0,E=0,S=0;for(p in d)if(d.hasOwnProperty(p)){g=d[p],g.write(A,x,T,E,S,r,t,n),h===ne.MORPHING&&(l(C)||(C=new Float32Array(6*f*3)),g.writeForMorph(C,T));let b=g.lengthOfPositions;T+=6*b*3,E+=b*4,S+=b*4,c=g.updateIndices(i,a,u,c)}let v=e._positionBufferUsage.bufferUsage,D=Fe.STATIC_DRAW;e._positionBuffer=mt.createVertexBuffer({context:t,typedArray:A,usage:v});let O;l(C)&&(O=mt.createVertexBuffer({context:t,typedArray:C,usage:v})),e._texCoordExpandAndBatchIndexBuffer=mt.createVertexBuffer({context:t,typedArray:x,usage:D});let M=3*Float32Array.BYTES_PER_ELEMENT,L=4*Float32Array.BYTES_PER_ELEMENT,N=0,_=i.length;for(let b=0;b<_;++b)if(o=i[b],o.length>0){let w=new Uint16Array(o),I=mt.createIndexBuffer({context:t,typedArray:w,usage:Fe.STATIC_DRAW,indexDatatype:Ve.UNSIGNED_SHORT});N+=a[b];let R=6*(b*(M*P.SIXTY_FOUR_KILOBYTES)-N*M),F=M+R,k=M+F,V=M+k,G=M+V,U=M+G,q=b*(L*P.SIXTY_FOUR_KILOBYTES)-N*L,Y=[{index:nl.position3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:R,strideInBytes:6*M},{index:nl.position3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:F,strideInBytes:6*M},{index:nl.position2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:R,strideInBytes:6*M},{index:nl.position2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:F,strideInBytes:6*M},{index:nl.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*M},{index:nl.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*M},{index:nl.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*M},{index:nl.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*M},{index:nl.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*M},{index:nl.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*M},{index:nl.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*M},{index:nl.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*M},{index:nl.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:X.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:q}],Q,W,K,J;h===ne.SCENE3D?(W=e._positionBuffer,Q="vertexBuffer",K=yoe,J="value"):h===ne.SCENE2D||h===ne.COLUMBUS_VIEW?(W=yoe,Q="value",K=e._positionBuffer,J="vertexBuffer"):(W=O,Q="vertexBuffer",K=e._positionBuffer,J="vertexBuffer"),Y[0][Q]=W,Y[1][Q]=W,Y[2][J]=K,Y[3][J]=K,Y[4][Q]=W,Y[5][Q]=W,Y[6][J]=K,Y[7][J]=K,Y[8][Q]=W,Y[9][Q]=W,Y[10][J]=K,Y[11][J]=K;let _e=new ri({context:t,attributes:Y,indexBuffer:I});e._vertexArrays.push({va:_e,buckets:u[b]})}}}function aGe(e,t){return t instanceof Bt?t.id:t}var NN=[];function cGe(e){let t=Gi._uniformList[e.type],n=t.length;NN.length=2*n;let i=0;for(let o=0;o<n;++o){let r=t[o];NN[i]=r,NN[i+1]=e._uniforms[r](),i+=2}return`${e.type}:${JSON.stringify(NN,aGe)}`}function lGe(e){let t=e._mode,n=e._modelMatrix,i=e._polylineBuckets={},o=e._polylines,r=o.length;for(let s=0;s<r;++s){let a=o[s];if(a._actualPositions.length>1){a.update();let c=a.material,u=i[c.type];l(u)||(u=i[c.type]=new Dm(c,t,n)),u.addPolyline(a)}}}function uGe(e,t){let n=t.mode;(e._mode!==n||!B.equals(e._modelMatrix,e.modelMatrix))&&(e._mode=n,e._modelMatrix=B.clone(e.modelMatrix),e._createVertexArray=!0)}function C6(e){if(e._polylinesRemoved){e._polylinesRemoved=!1;let t=[],n=[],i=0,o,r=e._polylines.length;for(let s=0;s<r;++s)o=e._polylines[s],o.isDestroyed||(o._index=i++,n.push(o),t.push(o));e._polylines=t,e._polylinesToUpdate=n}}function T6(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)if(!t[i].isDestroyed){let o=t[i]._bucket;l(o)&&(o.shaderProgram=o.shaderProgram&&o.shaderProgram.destroy())}}function voe(e){let t=e._vertexArrays.length;for(let n=0;n<t;++n)e._vertexArrays[n].va.destroy();e._vertexArrays.length=0}Zf.prototype._updatePolyline=function(e,t){this._polylinesUpdated=!0,e._dirty||this._polylinesToUpdate.push(e),++this._propertiesChanged[t]};function Doe(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)t[i].isDestroyed||t[i]._destroy()}function A6(e,t,n){this.count=e,this.offset=t,this.bucket=n}function Dm(e,t,n){this.polylines=[],this.lengthOfPositions=0,this.material=e,this.shaderProgram=void 0,this.mode=t,this.modelMatrix=n}Dm.prototype.addPolyline=function(e){this.polylines.push(e),e._actualLength=this.getPolylinePositionsLength(e),this.lengthOfPositions+=e._actualLength,e._bucket=this};Dm.prototype.updateShader=function(e,t,n){if(l(this.shaderProgram))return;let i=["DISTANCE_DISPLAY_CONDITION"];n&&i.push("VECTOR_TILE"),this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&i.push("POLYLINE_DASH"),Gt.isInternetExplorer()||i.push("CLIP_POLYLINE");let o=new He({defines:i,sources:[`in vec4 v_pickColor; +`,this.material.shaderSource,cC]}),r=t.getVertexShaderCallback()(RN),s=new He({defines:i,sources:[Ru,r]});this.shaderProgram=Jt.fromCache({context:e,vertexShaderSource:s,fragmentShaderSource:o,attributeLocations:nl})};function Ioe(e){return m.dot(m.UNIT_X,e._boundingVolume.center)<0||e._boundingVolume.intersectPlane(fn.ORIGIN_ZX_PLANE)===$t.INTERSECTING}Dm.prototype.getPolylinePositionsLength=function(e){let t;if(this.mode===ne.SCENE3D||!Ioe(e))return t=e._actualPositions.length,t*4-4;let n=0,i=e._segments.lengths;t=i.length;for(let o=0;o<t;++o)n+=i[o]*4-4;return n};var is=new m,Gu=new m,Wu=new m,FN=new m,fGe=new re,dGe=new H;Dm.prototype.write=function(e,t,n,i,o,r,s,a){let c=this.mode,u=a.ellipsoid.maximumRadius*P.PI,f=this.polylines,d=f.length;for(let p=0;p<d;++p){let g=f[p],h=g.width,A=g.show&&h>0,x=g._index,C=this.getSegments(g,a),T=C.positions,E=C.lengths,S=T.length,v=g.getPickId(s).color,D=0,O=0,M;for(let k=0;k<S;++k){k===0?g._loop?M=T[S-2]:(M=FN,m.subtract(T[0],T[1],M),m.add(T[0],M,M)):M=T[k-1],m.clone(M,Gu),m.clone(T[k],is),k===S-1?g._loop?M=T[1]:(M=FN,m.subtract(T[S-1],T[S-2],M),m.add(T[S-1],M,M)):M=T[k+1],m.clone(M,Wu);let V=E[D];k===O+V&&(O+=V,++D);let G=k-O===0,U=k===O+E[D]-1;c===ne.SCENE2D&&(Gu.z=0,is.z=0,Wu.z=0),(c===ne.SCENE2D||c===ne.MORPHING)&&(G||U)&&u-Math.abs(is.x)<1&&((is.x<0&&Gu.x>0||is.x>0&&Gu.x<0)&&m.clone(is,Gu),(is.x<0&&Wu.x>0||is.x>0&&Wu.x<0)&&m.clone(is,Wu));let q=G?2:0,Y=U?2:4;for(let Q=q;Q<Y;++Q){Yn.writeElements(is,e,n),Yn.writeElements(Gu,e,n+6),Yn.writeElements(Wu,e,n+12);let W=Q-2<0?-1:1;t[o]=k/(S-1),t[o+1]=2*(Q%2)-1,t[o+2]=W,t[o+3]=x,n+=6*3,o+=4}}let L=fGe;L.x=z.floatToByte(v.red),L.y=z.floatToByte(v.green),L.z=z.floatToByte(v.blue),L.w=z.floatToByte(v.alpha);let N=dGe;N.x=h,N.y=A?1:0;let _=c===ne.SCENE2D?g._boundingVolume2D:g._boundingVolumeWC,b=Yn.fromCartesian(_.center,boe),w=b.high,I=re.fromElements(b.low.x,b.low.y,b.low.z,_.radius,Soe),R=woe;R.x=0,R.y=Number.MAX_VALUE;let F=g.distanceDisplayCondition;l(F)&&(R.x=F.near,R.y=F.far),r.setBatchedAttribute(x,0,N),r.setBatchedAttribute(x,1,L),r.attributes.length>2&&(r.setBatchedAttribute(x,2,w),r.setBatchedAttribute(x,3,I),r.setBatchedAttribute(x,4,R))}};var mGe=new m,hGe=new m,pGe=new m,xoe=new m;Dm.prototype.writeForMorph=function(e,t){let n=this.modelMatrix,i=this.polylines,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=s._segments.positions,c=s._segments.lengths,u=a.length,f=0,d=0;for(let p=0;p<u;++p){let g;p===0?s._loop?g=a[u-2]:(g=xoe,m.subtract(a[0],a[1],g),m.add(a[0],g,g)):g=a[p-1],g=B.multiplyByPoint(n,g,hGe);let h=B.multiplyByPoint(n,a[p],mGe),A;p===u-1?s._loop?A=a[1]:(A=xoe,m.subtract(a[u-1],a[u-2],A),m.add(a[u-1],A,A)):A=a[p+1],A=B.multiplyByPoint(n,A,pGe);let x=c[f];p===d+x&&(d+=x,++f);let C=p-d===0,T=p===d+c[f]-1,E=C?2:0,S=T?2:4;for(let v=E;v<S;++v)Yn.writeElements(h,e,t),Yn.writeElements(g,e,t+6),Yn.writeElements(A,e,t+12),t+=6*3}}};var _Ge=new Array(1);Dm.prototype.updateIndices=function(e,t,n,i){let o=n.length-1,r=new A6(0,i,this);n[o].push(r);let s=0,a=e[e.length-1],c=0;a.length>0&&(c=a[a.length-1]+1);let u=this.polylines,f=u.length;for(let d=0;d<f;++d){let p=u[d];p._locatorBuckets=[];let g;if(this.mode===ne.SCENE3D){g=_Ge;let A=p._actualPositions.length;if(A>0)g[0]=A;else continue}else g=p._segments.lengths;let h=g.length;if(h>0){let A=0;for(let x=0;x<h;++x){let C=g[x]-1;for(let T=0;T<C;++T)c+4>P.SIXTY_FOUR_KILOBYTES&&(p._locatorBuckets.push({locator:r,count:A}),A=0,t.push(4),a=[],e.push(a),c=0,r.count=s,s=0,i=0,r=new A6(0,0,this),n[++o]=[r]),a.push(c,c+2,c+1),a.push(c+1,c+2,c+3),A+=6,s+=6,i+=6,c+=4}p._locatorBuckets.push({locator:r,count:A}),c+4>P.SIXTY_FOUR_KILOBYTES&&(t.push(0),a=[],e.push(a),c=0,r.count=s,i=0,s=0,r=new A6(0,0,this),n[++o]=[r])}p._clean()}return r.count=s,i};Dm.prototype.getPolylineStartIndex=function(e){let t=this.polylines,n=0,i=t.length;for(let o=0;o<i;++o){let r=t[o];if(r===e)break;n+=r._actualLength}return n};var cT={positions:void 0,lengths:void 0},Coe=new Array(1),gGe=new m,yGe=new he;Dm.prototype.getSegments=function(e,t){let n=e._actualPositions;if(this.mode===ne.SCENE3D)return Coe[0]=n.length,cT.positions=n,cT.lengths=Coe,cT;Ioe(e)&&(n=e._segments.positions);let i=t.ellipsoid,o=[],r=this.modelMatrix,s=n.length,a,c=gGe;for(let u=0;u<s;++u)a=n[u],c=B.multiplyByPoint(r,a,c),o.push(t.project(i.cartesianToCartographic(c,yGe)));if(o.length>0){e._boundingVolume2D=ae.fromPoints(o,e._boundingVolume2D);let u=e._boundingVolume2D.center;e._boundingVolume2D.center=new m(u.z,u.x,u.y)}return cT.positions=o,cT.lengths=e._segments.lengths,cT};var Toe;Dm.prototype.writeUpdate=function(e,t,n,i){let o=this.mode,r=i.ellipsoid.maximumRadius*P.PI,s=t._actualLength;if(s){e+=this.getPolylineStartIndex(t);let a=Toe,c=6*s*3;!l(a)||a.length<c?a=Toe=new Float32Array(c):a.length>c&&(a=new Float32Array(a.buffer,0,c));let u=this.getSegments(t,i),f=u.positions,d=u.lengths,p=0,g=0,h=0,A;s=f.length;for(let x=0;x<s;++x){x===0?t._loop?A=f[s-2]:(A=FN,m.subtract(f[0],f[1],A),m.add(f[0],A,A)):A=f[x-1],m.clone(A,Gu),m.clone(f[x],is),x===s-1?t._loop?A=f[1]:(A=FN,m.subtract(f[s-1],f[s-2],A),m.add(f[s-1],A,A)):A=f[x+1],m.clone(A,Wu);let C=d[g];x===h+C&&(h+=C,++g);let T=x-h===0,E=x===h+d[g]-1;o===ne.SCENE2D&&(Gu.z=0,is.z=0,Wu.z=0),(o===ne.SCENE2D||o===ne.MORPHING)&&(T||E)&&r-Math.abs(is.x)<1&&((is.x<0&&Gu.x>0||is.x>0&&Gu.x<0)&&m.clone(is,Gu),(is.x<0&&Wu.x>0||is.x>0&&Wu.x<0)&&m.clone(is,Wu));let S=T?2:0,v=E?2:4;for(let D=S;D<v;++D)Yn.writeElements(is,a,p),Yn.writeElements(Gu,a,p+6),Yn.writeElements(Wu,a,p+12),p+=6*3}n.copyFromArrayView(a,6*3*Float32Array.BYTES_PER_ELEMENT*e)}};var Im=Zf;function sg(e){this._positions=e.positions,this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._rectangle=e.rectangle,this._minHeight=e.minimumHeight,this._maxHeight=e.maximumHeight,this._billboardCollection=new zu({batchTable:e.batchTable}),this._labelCollection=new lp({batchTable:e.batchTable}),this._polylineCollection=new Im,this._polylineCollection._useHighlightColor=!0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(sg.prototype,{ready:{get:function(){return this._ready}},pointsLength:{get:function(){return this._billboardCollection.length}},texturesByteLength:{get:function(){let e=this._billboardCollection.textureAtlas.texture.sizeInBytes,t=this._labelCollection._textureAtlas.texture.sizeInBytes;return e+t}}});function AGe(e,t){let n=e._rectangle,i=e._minHeight,o=e._maxHeight,r=2+le.packedLength+oe.packedLength,s=new Float64Array(r),a=0;return s[a++]=i,s[a++]=o,le.pack(n,s,a),a+=le.packedLength,oe.pack(t,s,a),s}var xGe=new pi("createVectorTilePoints",5),CGe=new m;function TGe(e,t){let n=e._positions,i=e._packedBuffer;l(i)||(n=e._positions=n.slice(),e._batchIds=e._batchIds.slice(),i=e._packedBuffer=AGe(e,t));let o=[n.buffer,i.buffer],r={positions:n.buffer,packedBuffer:i.buffer},s=xGe.scheduleTask(r,o);if(l(s))return s.then(a=>{if(e.isDestroyed())return;e._positions=new Float64Array(a.positions);let c=e._billboardCollection,u=e._labelCollection,f=e._polylineCollection;n=e._positions;let d=e._batchIds,p=n.length/3;for(let g=0;g<p;++g){let h=d[g],A=m.unpack(n,g*3,CGe),x=c.add();x.position=A,x._batchIndex=h;let C=u.add();C.text=" ",C.position=A,C._batchIndex=h;let T=f.add();T.positions=[m.clone(A),m.clone(A)]}e._positions=void 0,e._packedBuffer=void 0,e._ready=!0}).catch(a=>{e.isDestroyed()||(e._error=a)})}sg.prototype.createFeatures=function(e,t){let n=this._billboardCollection,i=this._labelCollection,o=this._polylineCollection,r=this._batchIds,s=r.length;for(let a=0;a<s;++a){let c=r[a],u=n.get(a),f=i.get(a),d=o.get(a);t[c]=new og(e,c,u,f,d)}};sg.prototype.applyDebugSettings=function(e,t){e?(z.clone(t,this._billboardCollection._highlightColor),z.clone(t,this._labelCollection._highlightColor),z.clone(t,this._polylineCollection._highlightColor)):(z.clone(z.WHITE,this._billboardCollection._highlightColor),z.clone(z.WHITE,this._labelCollection._highlightColor),z.clone(z.WHITE,this._polylineCollection._highlightColor))};function EGe(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.pointSize=og.defaultPointSize,s.color=og.defaultColor,s.pointOutlineColor=og.defaultPointOutlineColor,s.pointOutlineWidth=og.defaultPointOutlineWidth,s.labelColor=z.WHITE,s.labelOutlineColor=z.WHITE,s.labelOutlineWidth=1,s.font="30px sans-serif",s.labelStyle=Ho.FILL,s.labelText=void 0,s.backgroundColor=new z(.165,.165,.165,.8),s.backgroundPadding=new H(7,5),s.backgroundEnabled=!1,s.scaleByDistance=void 0,s.translucencyByDistance=void 0,s.distanceDisplayCondition=void 0,s.heightOffset=0,s.anchorLineEnabled=!1,s.anchorLineColor=z.WHITE,s.image=void 0,s.disableDepthTestDistance=0,s.horizontalOrigin=_i.CENTER,s.verticalOrigin=Rn.CENTER,s.labelHorizontalOrigin=_i.RIGHT,s.labelVerticalOrigin=Rn.BASELINE}}var bGe=new z,SGe=new z,wGe=new z,vGe=new z,DGe=new z,IGe=new z,Nw=new Lt,Fw=new Lt,E6=new Dt;sg.prototype.applyStyle=function(e,t){if(!l(e)){EGe(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];if(l(e.show)&&(s.show=e.show.evaluate(s)),l(e.pointSize)&&(s.pointSize=e.pointSize.evaluate(s)),l(e.color)&&(s.color=e.color.evaluateColor(s,bGe)),l(e.pointOutlineColor)&&(s.pointOutlineColor=e.pointOutlineColor.evaluateColor(s,SGe)),l(e.pointOutlineWidth)&&(s.pointOutlineWidth=e.pointOutlineWidth.evaluate(s)),l(e.labelColor)&&(s.labelColor=e.labelColor.evaluateColor(s,wGe)),l(e.labelOutlineColor)&&(s.labelOutlineColor=e.labelOutlineColor.evaluateColor(s,vGe)),l(e.labelOutlineWidth)&&(s.labelOutlineWidth=e.labelOutlineWidth.evaluate(s)),l(e.font)&&(s.font=e.font.evaluate(s)),l(e.labelStyle)&&(s.labelStyle=e.labelStyle.evaluate(s)),l(e.labelText)?s.labelText=e.labelText.evaluate(s):s.labelText=void 0,l(e.backgroundColor)&&(s.backgroundColor=e.backgroundColor.evaluateColor(s,DGe)),l(e.backgroundPadding)&&(s.backgroundPadding=e.backgroundPadding.evaluate(s)),l(e.backgroundEnabled)&&(s.backgroundEnabled=e.backgroundEnabled.evaluate(s)),l(e.scaleByDistance)){let a=e.scaleByDistance.evaluate(s);l(a)?(Nw.near=a.x,Nw.nearValue=a.y,Nw.far=a.z,Nw.farValue=a.w,s.scaleByDistance=Nw):s.scaleByDistance=void 0}else s.scaleByDistance=void 0;if(l(e.translucencyByDistance)){let a=e.translucencyByDistance.evaluate(s);l(a)?(Fw.near=a.x,Fw.nearValue=a.y,Fw.far=a.z,Fw.farValue=a.w,s.translucencyByDistance=Fw):s.translucencyByDistance=void 0}else s.translucencyByDistance=void 0;if(l(e.distanceDisplayCondition)){let a=e.distanceDisplayCondition.evaluate(s);l(a)?(E6.near=a.x,E6.far=a.y,s.distanceDisplayCondition=E6):s.distanceDisplayCondition=void 0}else s.distanceDisplayCondition=void 0;l(e.heightOffset)&&(s.heightOffset=e.heightOffset.evaluate(s)),l(e.anchorLineEnabled)&&(s.anchorLineEnabled=e.anchorLineEnabled.evaluate(s)),l(e.anchorLineColor)&&(s.anchorLineColor=e.anchorLineColor.evaluateColor(s,IGe)),l(e.image)?s.image=e.image.evaluate(s):s.image=void 0,l(e.disableDepthTestDistance)&&(s.disableDepthTestDistance=e.disableDepthTestDistance.evaluate(s)),l(e.horizontalOrigin)&&(s.horizontalOrigin=e.horizontalOrigin.evaluate(s)),l(e.verticalOrigin)&&(s.verticalOrigin=e.verticalOrigin.evaluate(s)),l(e.labelHorizontalOrigin)&&(s.labelHorizontalOrigin=e.labelHorizontalOrigin.evaluate(s)),l(e.labelVerticalOrigin)&&(s.labelVerticalOrigin=e.labelVerticalOrigin.evaluate(s))}};sg.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=TGe(this,e.mapProjection.ellipsoid)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._polylineCollection.update(e),this._billboardCollection.update(e),this._labelCollection.update(e)};sg.prototype.isDestroyed=function(){return!1};sg.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._polylineCollection=this._polylineCollection&&this._polylineCollection.destroy(),ue(this)};var UN=sg;function fp(e){this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._counts=e.counts,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._batchedPositions=void 0,this._transferrableBatchIds=void 0,this._vertexBatchIds=void 0,this._ellipsoid=y(e.ellipsoid,oe.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._polygonMinimumHeights=e.polygonMinimumHeights,this._polygonMaximumHeights=e.polygonMaximumHeights,this._center=y(e.center,m.ZERO),this._rectangle=e.rectangle,this._center=void 0,this._boundingVolume=e.boundingVolume,this._boundingVolumes=void 0,this._batchedIndices=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=zn.BOTH}Object.defineProperties(fp.prototype,{trianglesLength:{get:function(){return l(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});function PGe(e){let t=new Float64Array(3+m.packedLength+oe.packedLength+le.packedLength),n=0;return t[n++]=e._indices.BYTES_PER_ELEMENT,t[n++]=e._minimumHeight,t[n++]=e._maximumHeight,m.pack(e._center,t,n),n+=m.packedLength,oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,le.pack(e._rectangle,t,n),t}function OGe(e,t){let n=1,i=t[n++],o=e._boundingVolumes=new Array(i);for(let a=0;a<i;++a)o[a]=Bn.unpack(t,n),n+=Bn.packedLength;let r=t[n++],s=e._batchedIndices=new Array(r);for(let a=0;a<r;++a){let c=z.unpack(t,n);n+=z.packedLength;let u=t[n++],f=t[n++],d=t[n++],p=new Array(d);for(let g=0;g<d;++g)p[g]=t[n++];s[a]=new Hh({color:c,offset:u,count:f,batchIds:p})}}var MGe=new pi("createVectorTilePolygons",5),RGe=new z;function BGe(e){if(l(e._primitive))return;let t=e._positions,n=e._counts,i=e._indexCounts,o=e._indices,r=e._transferrableBatchIds,s=e._batchTableColors,a=e._packedBuffer;if(!l(s)){t=e._positions=e._positions.slice(),n=e._counts=e._counts.slice(),i=e._indexCounts=e._indexCounts.slice(),o=e._indices=e._indices.slice(),e._center=e._ellipsoid.cartographicToCartesian(le.center(e._rectangle)),r=e._transferrableBatchIds=new Uint32Array(e._batchIds),s=e._batchTableColors=new Uint32Array(r.length);let g=e._batchTable,h=s.length;for(let A=0;A<h;++A){let x=g.getColor(A,RGe);s[A]=x.toRgba()}a=e._packedBuffer=PGe(e)}let c=[t.buffer,n.buffer,i.buffer,o.buffer,r.buffer,s.buffer,a.buffer],u={packedBuffer:a.buffer,positions:t.buffer,counts:n.buffer,indexCounts:i.buffer,indices:o.buffer,batchIds:r.buffer,batchTableColors:s.buffer},f=e._polygonMinimumHeights,d=e._polygonMaximumHeights;l(f)&&l(d)&&(f=f.slice(),d=d.slice(),c.push(f.buffer,d.buffer),u.minimumHeights=f,u.maximumHeights=d);let p=MGe.scheduleTask(u,c);if(l(p))return p.then(g=>{if(e.isDestroyed())return;e._positions=void 0,e._counts=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0;let h=new Float64Array(g.packedBuffer),A=h[0];OGe(e,h),e._indices=Ve.getSizeInBytes(A)===2?new Uint16Array(g.indices):new Uint32Array(g.indices),e._indexOffsets=new Uint32Array(g.indexOffsets),e._indexCounts=new Uint32Array(g.indexCounts),e._batchedPositions=new Float32Array(g.positions),e._vertexBatchIds=new Uint16Array(g.batchIds),LGe(e),e._ready=!0}).catch(g=>{e.isDestroyed()||(e._error=g)})}function LGe(e){l(e._primitive)||(e._primitive=new vC({batchTable:e._batchTable,positions:e._batchedPositions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center}),e._batchTable=void 0,e._batchIds=void 0,e._positions=void 0,e._counts=void 0,e._indices=void 0,e._indexCounts=void 0,e._indexOffsets=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0,e._center=void 0,e._rectangle=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0)}fp.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};fp.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};fp.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};fp.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};fp.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=BGe(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};fp.prototype.isDestroyed=function(){return!1};fp.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var VN=fp;var kN=`in vec4 currentPosition; +in vec4 previousPosition; +in vec4 nextPosition; +in vec2 expandAndWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = u_modifiedModelView * currentPosition; + vec4 prev = u_modifiedModelView * previousPosition; + vec4 next = u_modifiedModelView * nextPosition; + + float angle; + vec4 positionWC = getPolylineWindowCoordinatesEC(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; +} +`;function Qf(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,oe.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._boundingVolume=e.boundingVolume,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._currentPositions=void 0,this._previousPositions=void 0,this._nextPositions=void 0,this._expandAndWidth=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Qf.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function NGe(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+le.packedLength+oe.packedLength+m.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,le.pack(t,a,c),c+=le.packedLength,oe.pack(o,a,c),c+=oe.packedLength,m.pack(r,a,c),a}var FGe=new pi("createVectorTilePolylines",5),lT={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4};function UGe(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=NGe(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},u=FGe.scheduleTask(c,a);if(l(u))return u.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._currentPositions=new Float32Array(f.currentPositions),e._previousPositions=new Float32Array(f.previousPositions),e._nextPositions=new Float32Array(f.nextPositions),e._expandAndWidth=new Float32Array(f.expandAndWidth),e._vertexBatchIds=new Uint16Array(f.batchIds);let d=f.indexDatatype;e._indices=d===Ve.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),VGe(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function VGe(e,t){if(!l(e._va)){let n=e._currentPositions,i=e._previousPositions,o=e._nextPositions,r=e._expandAndWidth,s=e._vertexBatchIds,a=e._indices,c=i.byteLength+n.byteLength+o.byteLength;c+=r.byteLength+s.byteLength+a.byteLength,e._trianglesLength=a.length/3,e._geometryByteLength=c;let u=mt.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),f=mt.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),d=mt.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),p=mt.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),g=mt.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),h=mt.createIndexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:a.BYTES_PER_ELEMENT===2?Ve.UNSIGNED_SHORT:Ve.UNSIGNED_INT}),A=[{index:lT.previousPosition,vertexBuffer:u,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:lT.currentPosition,vertexBuffer:f,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:lT.nextPosition,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:lT.expandAndWidth,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:2},{index:lT.a_batchId,vertexBuffer:g,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ri({context:t,attributes:A,indexBuffer:h}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._currentPositions=void 0,e._previousPositions=void 0,e._nextPositions=void 0,e._expandAndWidth=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var Uw=new B,Poe=new m;function kGe(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return B.clone(n,Uw),B.multiplyByPoint(Uw,e._center,Poe),B.setTranslation(Uw,Poe,Uw),Uw},u_highlightColor:function(){return e._highlightColor}})}function zGe(e){if(l(e._rs))return;let t={enabled:!0,factor:-5,units:-5};e._rs=ze.fromCache({blending:mn.ALPHA_BLEND,depthMask:!1,depthTest:{enabled:!0},polygonOffset:t})}var HGe=`uniform vec4 u_highlightColor; +void main() +{ + out_FragColor = u_highlightColor; +} +`;function GGe(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(kN),o=n.getFragmentShaderCallback(!1,void 0,!1)(HGe),r=new He({defines:["VECTOR_TILE",Gt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[Ru,i]}),s=new He({defines:["VECTOR_TILE"],sources:[o]});e._sp=Jt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:lT})}function WGe(e,t){if(!l(e._command)){let n=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new it({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:n,boundingVolume:e._boundingVolume,pass:be.TRANSLUCENT,pickId:e._batchTable.getPickId()})}t.commandList.push(e._command)}Qf.getPolylinePositions=function(e,t){let n=e._batchIds,i=e._decodedPositions,o=e._decodedPositionOffsets;if(!l(n)||!l(i))return;let r,s,a=n.length,c=0,u=0;for(r=0;r<a;++r)n[r]===t&&(c+=o[r+1]-o[r]);if(c===0)return;let f=new Float64Array(c*3);for(r=0;r<a;++r)if(n[r]===t){let d=o[r],p=o[r+1]-d;for(s=0;s<p;++s){let g=(d+s)*3;f[u++]=i[g],f[u++]=i[g+1],f[u++]=i[g+2]}}return f};Qf.prototype.getPositions=function(e){return Qf.getPolylinePositions(this,e)};Qf.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Bs(e,r)}};Qf.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function jGe(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.color=z.WHITE}}var YGe=new z,qGe=z.WHITE,XGe=!0;Qf.prototype.applyStyle=function(e,t){if(!l(e)){jGe(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.color=l(e.color)?e.color.evaluateColor(s,YGe):qGe,s.show=l(e.show)?e.show.evaluate(s):XGe}};Qf.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=UGe(this,t)),l(this._error)){let i=this._error;throw this._error=void 0,i}return}kGe(this,t),GGe(this,t),zGe(this);let n=e.passes;(n.render||n.pick)&&WGe(this,e)};Qf.prototype.isDestroyed=function(){return!1};Qf.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var uT=Qf;var zN=`in vec3 startEllipsoidNormal; +in vec3 endEllipsoidNormal; +in vec4 startPositionAndHeight; +in vec4 endPositionAndHeight; +in vec4 startFaceNormalAndVertexCorner; +in vec4 endFaceNormalAndHalfWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; +uniform vec2 u_minimumMaximumVectorHeights; + +out vec4 v_startPlaneEC; +out vec4 v_endPlaneEC; +out vec4 v_rightPlaneEC; +out float v_halfWidth; +out vec3 v_volumeUpEC; + +void main() +{ + // vertex corner IDs + // 3-----------7 + // /| left /| + // / | 1 / | + // 2-----------6 5 end + // | / | / + // start |/ right |/ + // 0-----------4 + // + float isEnd = floor(startFaceNormalAndVertexCorner.w * 0.251); // 0 for front, 1 for end + float isTop = floor(startFaceNormalAndVertexCorner.w * mix(0.51, 0.19, isEnd)); // 0 for bottom, 1 for top + + vec3 forward = endPositionAndHeight.xyz - startPositionAndHeight.xyz; + vec3 right = normalize(cross(forward, startEllipsoidNormal)); + + vec4 position = vec4(startPositionAndHeight.xyz, 1.0); + position.xyz += forward * isEnd; + + v_volumeUpEC = czm_normal * normalize(cross(right, forward)); + + // Push for volume height + float offset; + vec3 ellipsoidNormal = mix(startEllipsoidNormal, endEllipsoidNormal, isEnd); + + // offset height to create volume + offset = mix(startPositionAndHeight.w, endPositionAndHeight.w, isEnd); + offset = mix(u_minimumMaximumVectorHeights.y, u_minimumMaximumVectorHeights.x, isTop) - offset; + position.xyz += offset * ellipsoidNormal; + + // move from RTC to EC + position = u_modifiedModelView * position; + right = czm_normal * right; + + // Push for width in a direction that is in the start or end plane and in a plane with right + // N = normalEC ("right-facing" direction for push) + // R = right + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + vec3 scratchNormal = mix(-startFaceNormalAndVertexCorner.xyz, endFaceNormalAndHalfWidth.xyz, isEnd); + scratchNormal = cross(scratchNormal, mix(startEllipsoidNormal, endEllipsoidNormal, isEnd)); + vec3 miterPushNormal = czm_normal * normalize(scratchNormal); + + offset = 2.0 * endFaceNormalAndHalfWidth.w * max(0.0, czm_metersPerPixel(position)); // offset = widthEC + offset = offset / dot(miterPushNormal, right); + position.xyz += miterPushNormal * (offset * sign(0.5 - mod(startFaceNormalAndVertexCorner.w, 2.0))); + + gl_Position = czm_depthClamp(czm_projection * position); + + position = u_modifiedModelView * vec4(startPositionAndHeight.xyz, 1.0); + vec3 startNormalEC = czm_normal * startFaceNormalAndVertexCorner.xyz; + v_startPlaneEC = vec4(startNormalEC, -dot(startNormalEC, position.xyz)); + v_rightPlaneEC = vec4(right, -dot(right, position.xyz)); + + position = u_modifiedModelView * vec4(endPositionAndHeight.xyz, 1.0); + vec3 endNormalEC = czm_normal * endFaceNormalAndHalfWidth.xyz; + v_endPlaneEC = vec4(endNormalEC, -dot(endNormalEC, position.xyz)); + v_halfWidth = endFaceNormalAndHalfWidth.w; +} +`;var HN=`in vec4 v_startPlaneEC; +in vec4 v_endPlaneEC; +in vec4 v_rightPlaneEC; +in float v_halfWidth; +in vec3 v_volumeUpEC; + +uniform vec4 u_highlightColor; +void main() +{ + float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); + + // Discard for sky + if (logDepthOrDepth == 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(0.0, 0.0, 1.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + eyeCoordinate /= eyeCoordinate.w; + + float halfMaxWidth = v_halfWidth * czm_metersPerPixel(eyeCoordinate); + + // Expand halfMaxWidth if direction to camera is almost perpendicular with the volume's up direction + halfMaxWidth += halfMaxWidth * (1.0 - dot(-normalize(eyeCoordinate.xyz), v_volumeUpEC)); + + // Check distance of the eye coordinate against the right-facing plane + float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); + + // Check eye coordinate against the mitering planes + float distanceFromStart = czm_planeDistance(v_startPlaneEC, eyeCoordinate.xyz); + float distanceFromEnd = czm_planeDistance(v_endPlaneEC, eyeCoordinate.xyz); + + if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(logDepthOrDepth, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + out_FragColor = u_highlightColor; + + czm_writeDepthClamp(); +} +`;function dp(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,oe.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._minimumMaximumVectorHeights=new H(si._defaultMinTerrainHeight,si._defaultMaxTerrainHeight),this._boundingVolume=Bn.fromRectangle(e.rectangle,si._defaultMinTerrainHeight,si._defaultMaxTerrainHeight,this._ellipsoid),this._classificationType=e.classificationType,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._startEllipsoidNormals=void 0,this._endEllipsoidNormals=void 0,this._startPositionAndHeights=void 0,this._startFaceNormalAndVertexCornerIds=void 0,this._endPositionAndHeights=void 0,this._endFaceNormalAndHalfWidths=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(dp.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function KGe(e,t,n){let i=si.getMinimumMaximumHeights(t,n),o=i.minimumTerrainHeight,r=i.maximumTerrainHeight,s=e._minimumMaximumVectorHeights;s.x=o,s.y=r;let a=e._boundingVolume,c=e._rectangle;Bn.fromRectangle(c,o,r,n,a)}function JGe(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+le.packedLength+oe.packedLength+m.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,le.pack(t,a,c),c+=le.packedLength,oe.pack(o,a,c),c+=oe.packedLength,m.pack(r,a,c),a}var ZGe=new pi("createVectorTileClampedPolylines"),ag={startEllipsoidNormal:0,endEllipsoidNormal:1,startPositionAndHeight:2,endPositionAndHeight:3,startFaceNormalAndVertexCorner:4,endFaceNormalAndHalfWidth:5,a_batchId:6};function QGe(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=JGe(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},u=ZGe.scheduleTask(c,a);if(l(u))return u.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._startEllipsoidNormals=new Float32Array(f.startEllipsoidNormals),e._endEllipsoidNormals=new Float32Array(f.endEllipsoidNormals),e._startPositionAndHeights=new Float32Array(f.startPositionAndHeights),e._startFaceNormalAndVertexCornerIds=new Float32Array(f.startFaceNormalAndVertexCornerIds),e._endPositionAndHeights=new Float32Array(f.endPositionAndHeights),e._endFaceNormalAndHalfWidths=new Float32Array(f.endFaceNormalAndHalfWidths),e._vertexBatchIds=new Uint16Array(f.vertexBatchIds);let d=f.indexDatatype;e._indices=d===Ve.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),$Ge(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function $Ge(e,t){if(!l(e._va)){let n=e._startEllipsoidNormals,i=e._endEllipsoidNormals,o=e._startPositionAndHeights,r=e._endPositionAndHeights,s=e._startFaceNormalAndVertexCornerIds,a=e._endFaceNormalAndHalfWidths,c=e._vertexBatchIds,u=e._indices,f=n.byteLength+i.byteLength;f+=o.byteLength+r.byteLength,f+=s.byteLength+a.byteLength,f+=c.byteLength+u.byteLength,e._trianglesLength=u.length/3,e._geometryByteLength=f;let d=mt.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),p=mt.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),g=mt.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),h=mt.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),A=mt.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),x=mt.createVertexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW}),C=mt.createVertexBuffer({context:t,typedArray:c,usage:Fe.STATIC_DRAW}),T=mt.createIndexBuffer({context:t,typedArray:u,usage:Fe.STATIC_DRAW,indexDatatype:u.BYTES_PER_ELEMENT===2?Ve.UNSIGNED_SHORT:Ve.UNSIGNED_INT}),E=[{index:ag.startEllipsoidNormal,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:ag.endEllipsoidNormal,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:ag.startPositionAndHeight,vertexBuffer:g,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:ag.endPositionAndHeight,vertexBuffer:h,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:ag.startFaceNormalAndVertexCorner,vertexBuffer:A,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:ag.endFaceNormalAndHalfWidth,vertexBuffer:x,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:ag.a_batchId,vertexBuffer:C,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ri({context:t,attributes:E,indexBuffer:T}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._startEllipsoidNormals=void 0,e._endEllipsoidNormals=void 0,e._startPositionAndHeights=void 0,e._startFaceNormalAndVertexCornerIds=void 0,e._endPositionAndHeights=void 0,e._endFaceNormalAndHalfWidths=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var Vw=new B,Ooe=new m;function e8e(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return B.clone(n,Vw),B.multiplyByPoint(Vw,e._center,Ooe),B.setTranslation(Vw,Ooe,Vw),Vw},u_highlightColor:function(){return e._highlightColor},u_minimumMaximumVectorHeights:function(){return e._minimumMaximumVectorHeights}})}function Moe(e){return ze.fromCache({cull:{enabled:!0,face:gi.FRONT},blending:mn.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Hn.EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Hn.EQUAL,backOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK}})}function t8e(e){l(e._rs)||(e._rs=Moe(!1),e._rs3DTiles=Moe(!0))}function n8e(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(zN),o=n.getFragmentShaderCallback(!1,void 0,!0)(HN),r=new He({defines:["VECTOR_TILE",Gt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[Ru,i]}),s=new He({defines:["VECTOR_TILE"],sources:[o]});e._sp=Jt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:ag})}function i8e(e,t){let n=e._command;if(!l(e._command)){let o=e._batchTable.getUniformMapCallback()(e._uniformMap);n=e._command=new it({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:o,boundingVolume:e._boundingVolume,pass:be.TERRAIN_CLASSIFICATION,pickId:e._batchTable.getPickId()});let r=it.shallowClone(n,n.derivedCommands.tileset);r.renderState=e._rs3DTiles,r.pass=be.CESIUM_3D_TILE_CLASSIFICATION,n.derivedCommands.tileset=r}let i=e._classificationType;(i===zn.TERRAIN||i===zn.BOTH)&&t.commandList.push(n),(i===zn.CESIUM_3D_TILE||i===zn.BOTH)&&t.commandList.push(n.derivedCommands.tileset)}dp.prototype.getPositions=function(e){return uT.getPolylinePositions(this,e)};dp.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Bs(e,r)}};dp.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function o8e(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.color=z.WHITE}}var r8e=new z,s8e=z.WHITE,a8e=!0;dp.prototype.applyStyle=function(e,t){if(!l(e)){o8e(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.color=l(e.color)?e.color.evaluateColor(s,r8e):s8e,s.show=l(e.show)?e.show.evaluate(s):a8e}};function c8e(e){return si.initialize().then(function(){KGe(e,e._rectangle,e._ellipsoid)}).catch(t=>{e.isDestroyed()||(e._error=t)})}dp.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=c8e(this).then(QGe(this,t))),l(this._error)){let i=this._error;throw this._error=void 0,i}return}e8e(this,t),n8e(this,t),t8e(this);let n=e.passes;(n.render||n.pick)&&i8e(this,e)};dp.prototype.isDestroyed=function(){return!1};dp.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var GN=dp;var b6=32767,l8e=new he,u8e=new m;function f8e(e,t,n,i,o){let r=e.length/3,s=e.subarray(0,r),a=e.subarray(r,2*r),c=e.subarray(2*r,3*r);qn.zigZagDeltaDecode(s,a,c);let u=new Float64Array(e.length);for(let f=0;f<r;++f){let d=s[f],p=a[f],g=c[f],h=P.lerp(t.west,t.east,d/b6),A=P.lerp(t.south,t.north,p/b6),x=P.lerp(n,i,g/b6),C=he.fromRadians(h,A,x,l8e),T=o.cartographicToCartesian(C,u8e);m.pack(T,u,f*3)}return u}var WN=f8e;function Pm(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._polygons=void 0,this._polylines=void 0,this._points=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,this._resolveContent=void 0,this._readyPromise=new Promise(r=>{this._resolveContent=r}),_8e(this,i,o)}Object.defineProperties(Pm.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return l(this._points)?this._points.pointsLength:0}},trianglesLength:{get:function(){let e=0;return l(this._polygons)&&(e+=this._polygons.trianglesLength),l(this._polylines)&&(e+=this._polylines.trianglesLength),e}},geometryByteLength:{get:function(){let e=0;return l(this._polygons)&&(e+=this._polygons.geometryByteLength),l(this._polylines)&&(e+=this._polylines.geometryByteLength),e}},texturesByteLength:{get:function(){return l(this._points)?this._points.texturesByteLength:0}},batchTableByteLength:{get:function(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("Vector3DTileContent.readyPromise","Vector3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Vector3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function d8e(e){return function(t,n){l(e._polygons)&&e._polygons.updateCommands(t,n)}}function m8e(e,t){let n,i,o,r,s=y(e.POLYGONS_LENGTH,0),a=y(e.POLYLINES_LENGTH,0),c=y(e.POINTS_LENGTH,0);if(s>0&&l(e.POLYGON_BATCH_IDS)){let p=t.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,p,s)}if(a>0&&l(e.POLYLINE_BATCH_IDS)){let p=t.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,p,a)}if(c>0&&l(e.POINT_BATCH_IDS)){let p=t.byteOffset+e.POINT_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,p,c)}let u=l(n)||l(i)||l(o),f=s>0&&!l(n)||a>0&&!l(i)||c>0&&!l(o);if(u&&f)throw new de("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)){let p=0;if(!l(n)&&s>0)for(n=new Uint16Array(s),r=0;r<s;++r)n[r]=p++;if(!l(i)&&a>0)for(i=new Uint16Array(a),r=0;r<a;++r)i[r]=p++;if(!l(o)&&c>0)for(o=new Uint16Array(c),r=0;r<c;++r)o[r]=p++}return{polygons:n,polylines:i,points:o}}var $f=Uint32Array.BYTES_PER_ELEMENT;function h8e(e){return new uT(e)}function p8e(e){return new GN(e)}function _8e(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=$f;let r=o.getUint32(n,!0);if(r!==1)throw new de(`Only Vector tile version 1 is supported. Version ${r} is not.`);n+=$f;let s=o.getUint32(n,!0);if(n+=$f,s===0){e._ready=!0,e._resolveContent(e);return}let a=o.getUint32(n,!0);if(n+=$f,a===0)throw new de("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=$f;let u=o.getUint32(n,!0);n+=$f;let f=o.getUint32(n,!0);n+=$f;let d=o.getUint32(n,!0);n+=$f;let p=o.getUint32(n,!0);n+=$f;let g=o.getUint32(n,!0);n+=$f;let h=o.getUint32(n,!0);n+=$f;let A=Po(i,n,a);n+=a;let x=new Uint8Array(t,n,c);n+=c;let C,T;u>0&&(C=Po(i,n,u),n+=u,f>0&&(T=new Uint8Array(t,n,f),T=new Uint8Array(T),n+=f));let E=y(A.POLYGONS_LENGTH,0),S=y(A.POLYLINES_LENGTH,0),v=y(A.POINTS_LENGTH,0),D=E+S+v,O=new I_(e,D,C,T,d8e(e));if(e._batchTable=O,D===0)return;let M=new Cm(A,x),L=M.getGlobalProperty("REGION");if(!l(L))throw new de("Feature table global property: REGION must be defined");let N=le.unpack(L),_=L[4],b=L[5],w=e._tile.computedTransform,I=M.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(I)?(I=m.unpack(I),B.multiplyByPoint(w,I,I)):(I=le.center(N),I.height=P.lerp(_,b,.5),I=oe.WGS84.cartographicToCartesian(I));let R=m8e(A,x);if(n+=(4-n%4)%4,E>0){M.featuresLength=E;let F=y(M.getPropertyArray("POLYGON_COUNTS",X.UNSIGNED_INT,1),M.getPropertyArray("POLYGON_COUNT",X.UNSIGNED_INT,1));if(!l(F))throw new de("Feature table property: POLYGON_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let k=y(M.getPropertyArray("POLYGON_INDEX_COUNTS",X.UNSIGNED_INT,1),M.getPropertyArray("POLYGON_INDEX_COUNT",X.UNSIGNED_INT,1));if(!l(k))throw new de("Feature table property: POLYGON_INDEX_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let V=F.reduce(function(W,K){return W+K*2},0),G=k.reduce(function(W,K){return W+K},0),U=new Uint32Array(t,n,G);n+=d;let q=new Uint16Array(t,n,V);n+=p;let Y,Q;l(A.POLYGON_MINIMUM_HEIGHTS)&&l(A.POLYGON_MAXIMUM_HEIGHTS)&&(Y=M.getPropertyArray("POLYGON_MINIMUM_HEIGHTS",X.FLOAT,1),Q=M.getPropertyArray("POLYGON_MAXIMUM_HEIGHTS",X.FLOAT,1)),e._polygons=new VN({positions:q,counts:F,indexCounts:k,indices:U,minimumHeight:_,maximumHeight:b,polygonMinimumHeights:Y,polygonMaximumHeights:Q,center:I,rectangle:N,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,batchIds:R.polygons,modelMatrix:w})}if(S>0){M.featuresLength=S;let F=y(M.getPropertyArray("POLYLINE_COUNTS",X.UNSIGNED_INT,1),M.getPropertyArray("POLYLINE_COUNT",X.UNSIGNED_INT,1));if(!l(F))throw new de("Feature table property: POLYLINE_COUNTS must be defined when POLYLINES_LENGTH is greater than 0");let k=M.getPropertyArray("POLYLINE_WIDTHS",X.UNSIGNED_SHORT,1);if(!l(k)){k=new Uint16Array(S);for(let Q=0;Q<S;++Q)k[Q]=2}let V=F.reduce(function(Q,W){return Q+W*3},0),G=new Uint16Array(t,n,V);n+=g;let U=e._tileset,q=U.examineVectorLinesFunction;if(l(q)){let Q=WN(new Uint16Array(G),N,_,b,oe.WGS84);g8e(Q,F,R.polylines,O,e.url,q)}let Y=h8e;l(U.classificationType)&&(Y=p8e),e._polylines=Y({positions:G,widths:k,counts:F,batchIds:R.polylines,minimumHeight:_,maximumHeight:b,center:I,rectangle:N,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,classificationType:U.classificationType,keepDecodedPositions:U.vectorKeepDecodedPositions})}if(v>0){let F=new Uint16Array(t,n,v*3);n+=h,e._points=new UN({positions:F,batchIds:R.points,minimumHeight:_,maximumHeight:b,rectangle:N,batchTable:O})}}function S6(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._polygons)&&e._polygons.createFeatures(e,n),l(e._polylines)&&e._polylines.createFeatures(e,n),l(e._points)&&e._points.createFeatures(e,n),e._features=n}}Pm.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};Pm.prototype.getFeature=function(e){return l(this._features)||S6(this),this._features[e]};Pm.prototype.applyDebugSettings=function(e,t){l(this._polygons)&&this._polygons.applyDebugSettings(e,t),l(this._polylines)&&this._polylines.applyDebugSettings(e,t),l(this._points)&&this._points.applyDebugSettings(e,t)};Pm.prototype.applyStyle=function(e){l(this._features)||S6(this),l(this._polygons)&&this._polygons.applyStyle(e,this._features),l(this._polylines)&&this._polylines.applyStyle(e,this._features),l(this._points)&&this._points.applyStyle(e,this._features)};Pm.prototype.update=function(e,t){let n=!0;l(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(t),n=n&&this._polygons.ready),l(this._polylines)&&(this._polylines.update(t),n=n&&this._polylines.ready),l(this._points)&&(this._points.update(t),n=n&&this._points.ready),l(this._batchTable)&&n&&(l(this._features)||S6(this),this._batchTable.update(e,t),this._ready=!0,this._resolveContent(this))};Pm.prototype.getPolylinePositions=function(e){let t=this._polylines;if(l(t))return t.getPositions(e)};Pm.prototype.isDestroyed=function(){return!1};Pm.prototype.destroy=function(){return this._polygons=this._polygons&&this._polygons.destroy(),this._polylines=this._polylines&&this._polylines.destroy(),this._points=this._points&&this._points.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function g8e(e,t,n,i,o,r){let s=t.length,a=0;for(let c=0;c<s;c++){let u=t[c]*3,f=e.slice(a,a+u);a+=u,r(f,n[c],o,i)}}var jN=Pm;var Roe={b3dm:function(e,t,n,i,o){return sp.fromB3dm(e,t,n,i,o)},pnts:function(e,t,n,i,o){return sp.fromPnts(e,t,n,i,o)},i3dm:function(e,t,n,i,o){return sp.fromI3dm(e,t,n,i,o)},cmpt:function(e,t,n,i,o){return FR.fromTileType(e,t,n,i,o,Roe)},externalTileset:function(e,t,n,i){return SN.fromJson(e,t,n,i)},geom:function(e,t,n,i,o){return new jR(e,t,n,i,o)},vctr:function(e,t,n,i,o){return new jN(e,t,n,i,o)},subt:function(e,t,n,i,o){return aw.fromSubtreeJson(e,t,n,void 0,i,o)},subtreeJson:function(e,t,n,i){return aw.fromSubtreeJson(e,t,n,i)},glb:function(e,t,n,i,o){if(i.byteLength<12)throw new de("Invalid glb content");let a=new DataView(i,o).getUint32(8,!0),c=new Uint8Array(i,o,a);return sp.fromGltf(e,t,n,c)},gltf:function(e,t,n,i){return sp.fromGltf(e,t,n,i)},geoJson:function(e,t,n,i){return sp.fromGeoJson(e,t,n,i)}},fT=Roe;var y8e={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},Go=Object.freeze(y8e);var ed={BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",COMPOSITE:"cmpt",POINT_CLOUD:"pnts",VECTOR:"vctr",GEOMETRY:"geom",GLTF:"gltf",GLTF_BINARY:"glb",IMPLICIT_SUBTREE:"subt",IMPLICIT_SUBTREE_JSON:"subtreeJson",EXTERNAL_TILESET:"externalTileset",MULTIPLE_CONTENT:"multipleContent",GEOJSON:"geoJson",VOXEL_BINARY:"voxl",VOXEL_JSON:"voxelJson"};ed.isBinaryFormat=function(e){switch(e){case ed.BATCHED_3D_MODEL:case ed.INSTANCED_3D_MODEL:case ed.COMPOSITE:case ed.POINT_CLOUD:case ed.VECTOR:case ed.GEOMETRY:case ed.IMPLICIT_SUBTREE:case ed.VOXEL_BINARY:case ed.GLTF_BINARY:return!0;default:return!1}};var xs=Object.freeze(ed);var A8e={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0},td=Object.freeze(A8e);var Cs={RENDER:0,PICK:1,SHADOW:2,PRELOAD:3,PRELOAD_FLIGHT:4,REQUEST_RENDER_MODE_DEFER_CHECK:5,MOST_DETAILED_PRELOAD:6,MOST_DETAILED_PICK:7,NUMBER_OF_PASSES:8},mp=new Array(Cs.NUMBER_OF_PASSES);mp[Cs.RENDER]=Object.freeze({pass:Cs.RENDER,isRender:!0,requestTiles:!0,ignoreCommands:!1});mp[Cs.PICK]=Object.freeze({pass:Cs.PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});mp[Cs.SHADOW]=Object.freeze({pass:Cs.SHADOW,isRender:!1,requestTiles:!0,ignoreCommands:!1});mp[Cs.PRELOAD]=Object.freeze({pass:Cs.SHADOW,isRender:!1,requestTiles:!0,ignoreCommands:!0});mp[Cs.PRELOAD_FLIGHT]=Object.freeze({pass:Cs.PRELOAD_FLIGHT,isRender:!1,requestTiles:!0,ignoreCommands:!0});mp[Cs.REQUEST_RENDER_MODE_DEFER_CHECK]=Object.freeze({pass:Cs.REQUEST_RENDER_MODE_DEFER_CHECK,isRender:!1,requestTiles:!0,ignoreCommands:!0});mp[Cs.MOST_DETAILED_PRELOAD]=Object.freeze({pass:Cs.MOST_DETAILED_PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});mp[Cs.MOST_DETAILED_PICK]=Object.freeze({pass:Cs.MOST_DETAILED_PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});Cs.getPassOptions=function(e){return mp[e]};var Ro=Object.freeze(Cs);function hp(e,t){this._tileset=e,this._tile=t,this.featurePropertiesDirty=!1}Object.defineProperties(hp.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return!0}},readyPromise:{get:function(){return $("Empty3DTileContent.readyPromise","Empty3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Empty3DTileContent.ready to return true instead."),Promise.resolve(this)}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},metadata:{get:function(){},set:function(e){}},batchTable:{get:function(){}},group:{get:function(){},set:function(e){}}});hp.prototype.hasProperty=function(e,t){return!1};hp.prototype.getFeature=function(e){};hp.prototype.applyDebugSettings=function(e,t){};hp.prototype.applyStyle=function(e){};hp.prototype.update=function(e,t){};hp.prototype.isDestroyed=function(){return!1};hp.prototype.destroy=function(){return ue(this)};var kw=hp;function pp(e){e=y(e,y.EMPTY_OBJECT);let t=e.content,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(pp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});pp.prototype.hasProperty=function(e){return Vn.hasProperty(e,this._properties,this._class)};pp.prototype.hasPropertyBySemantic=function(e){return Vn.hasPropertyBySemantic(e,this._properties,this._class)};pp.prototype.getPropertyIds=function(e){return Vn.getPropertyIds(this._properties,this._class,e)};pp.prototype.getProperty=function(e){return Vn.getProperty(e,this._properties,this._class)};pp.prototype.setProperty=function(e,t){return Vn.setProperty(e,t,this._properties,this._class)};pp.prototype.getPropertyBySemantic=function(e){return Vn.getPropertyBySemantic(e,this._properties,this._class)};pp.prototype.setPropertyBySemantic=function(e,t){return Vn.setPropertyBySemantic(e,t,this._properties,this._class)};var YN=pp;function w6(e,t){let n=ni(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){w6._oneTimeWarning("findContentMetadata-missing-root-schema","Could not find a metadata schema for content metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(l(n.class)){let o=i[n.class];return new YN({content:n,class:o})}}w6._oneTimeWarning=Mt;var dT=w6;function x8e(e,t){let n=e.metadataExtension;if(!l(n))return;let i=n.groups,o=ni(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"].group:t.group;if(typeof o=="number")return i[o];let r=n.groupIds.findIndex(function(s){return s===o});return r>=0?i[r]:void 0}var mT=x8e;function _p(e){e=y(e,y.EMPTY_OBJECT);let t=e.tile,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(_p.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});_p.prototype.hasProperty=function(e){return Vn.hasProperty(e,this._properties,this._class)};_p.prototype.hasPropertyBySemantic=function(e){return Vn.hasPropertyBySemantic(e,this._properties,this._class)};_p.prototype.getPropertyIds=function(e){return Vn.getPropertyIds(this._properties,this._class,e)};_p.prototype.getProperty=function(e){return Vn.getProperty(e,this._properties,this._class)};_p.prototype.setProperty=function(e,t){return Vn.setProperty(e,t,this._properties,this._class)};_p.prototype.getPropertyBySemantic=function(e){return Vn.getPropertyBySemantic(e,this._properties,this._class)};_p.prototype.setPropertyBySemantic=function(e,t){return Vn.setPropertyBySemantic(e,t,this._properties,this._class)};var qN=_p;function v6(e,t){let n=ni(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){v6._oneTimeWarning("findTileMetadata-missing-root-schema","Could not find a metadata schema for tile metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(l(n.class)){let o=i[n.class];return new qN({tile:n,class:o})}}v6._oneTimeWarning=Mt;var XN=v6;function C8e(e){let t=new Uint8Array(e),n=pm(t);if(n==="glTF"&&(n="glb"),xs.isBinaryFormat(n))return{contentType:n,binaryPayload:t};let i=T8e(t);if(l(i.root))return{contentType:xs.EXTERNAL_TILESET,jsonPayload:i};if(l(i.asset))return{contentType:xs.GLTF,jsonPayload:i};if(l(i.tileAvailability))return{contentType:xs.IMPLICIT_SUBTREE_JSON,jsonPayload:i};if(l(i.type))return{contentType:xs.GEOJSON,jsonPayload:i};if(l(i.voxelTable))return{contentType:xs.VOXEL_JSON,jsonPayload:i};throw new de("Invalid tile content.")}function T8e(e){let t;try{t=Po(e)}catch{throw new de("Invalid tile content.")}return t}var gp=C8e;function nd(e,t,n,i){this._tileset=e,this._tile=t,this._tilesetResource=n,this._contents=[],this._contentsCreated=!1;let o=l(i.contents)?i.contents:i.content;this._innerContentHeaders=o,this._requestsInFlight=0,this._cancelCount=0;let r=this._innerContentHeaders.length;this._arrayFetchPromises=new Array(r),this._requests=new Array(r),this._ready=!1,this._resolveContent=void 0,this._readyPromise=new Promise(s=>{this._resolveContent=s}),this._innerContentResources=new Array(r),this._serverKeys=new Array(r);for(let s=0;s<r;s++){let a=n.getDerivedResource({url:o[s].uri}),c=oc.getServerKey(a.getUrlComponent());this._innerContentResources[s]=a,this._serverKeys[s]=c}}Object.defineProperties(nd.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)if(e[n].featurePropertiesDirty)return!0;return!1},set:function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},ready:{get:function(){return this._contentsCreated?this._ready:!1}},readyPromise:{get:function(){return $("Multiple3DTileContent.readyPromise","Multiple3DTileContent.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for Multiple3DTileContent.ready to return true instead."),this._readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},metadata:{get:function(){},set:function(){}},batchTable:{get:function(){}},group:{get:function(){},set:function(){}},innerContentUrls:{get:function(){return this._innerContentHeaders.map(function(e){return e.uri})}}});function D6(e,t){e._requestsInFlight+=t,e.tileset.statistics.numberOfPendingRequests+=t}function Boe(e,t){e._cancelCount++,e._tile._contentState=t;let n=e.tileset.statistics;n.numberOfPendingRequests-=e._requestsInFlight,n.numberOfAttemptedRequests+=e._requestsInFlight,e._requestsInFlight=0;let i=e._innerContentHeaders.length;e._arrayFetchPromises=new Array(i)}nd.prototype.requestInnerContents=function(){if(!E8e(this._serverKeys)){this.tileset.statistics.numberOfAttemptedRequests+=this._serverKeys.length;return}let e=this._innerContentHeaders;D6(this,e.length);let t=this._cancelCount;for(let n=0;n<e.length;n++)this._arrayFetchPromises[n]=b8e(this,n,t,this._tile._contentState);return S8e(this)};function E8e(e){let t={};for(let n=0;n<e.length;n++){let i=e[n];l(t[i])?t[i]++:t[i]=1}for(let n in t)if(t.hasOwnProperty(n)&&!oc.serverHasOpenSlots(n,t[n]))return!1;return oc.heapHasOpenSlots(e.length)}function b8e(e,t,n,i){let o=e._innerContentResources[t].clone(),r=e.tile,s=function(){return r._priority},a=e._serverKeys[t],c=new Zo({throttle:!0,throttleByServer:!0,type:es.TILES3D,priorityFunction:s,serverKey:a});o.request=c,e._requests[t]=c;let u=o.fetchArrayBuffer();if(l(u))return u.then(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===ti.CANCELLED){Boe(e,i);return}return D6(e,-1),f}}).catch(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===ti.CANCELLED){Boe(e,i);return}D6(e,-1),Loe(e,t,f)}})}async function S8e(e){let t=e._cancelCount,n=await Promise.all(e._arrayFetchPromises);if(t<e._cancelCount)return;let i=n.map((r,s)=>w8e(e,r,s)),o=await Promise.all(i);return e._contentsCreated=!0,e._contents=o.filter(l),o}async function w8e(e,t,n){if(l(t))try{let i=gp(t);if(i.contentType===xs.EXTERNAL_TILESET)throw new de("External tilesets are disallowed inside multiple contents");e._disableSkipLevelOfDetail=e._disableSkipLevelOfDetail||i.contentType===xs.GEOMETRY||i.contentType===xs.VECTOR;let o=e._tileset,r=e._innerContentResources[n],s=e._tile,a,c=fT[i.contentType];l(i.binaryPayload)?a=await Promise.resolve(c(o,s,r,i.binaryPayload.buffer,0)):a=await Promise.resolve(c(o,s,r,i.jsonPayload));let u=e._innerContentHeaders[n];if(s.hasImplicitContentMetadata){let d=s.implicitSubtree,p=s.implicitCoordinates;a.metadata=d.getContentMetadataView(p,n)}else s.hasImplicitContent||(a.metadata=dT(o,u));let f=mT(o,u);return l(f)&&(a.group=new SC({metadata:f})),a}catch(i){Loe(e,n,i)}}function Loe(e,t,n){let i=e._tileset,o=e._innerContentResources[t].url,r=l(n.message)?n.message:n.toString();i.tileFailed.numberOfListeners>0?i.tileFailed.raiseEvent({url:o,message:r}):(console.log(`A content failed to load: ${o}`),console.log(`Error: ${r}`))}nd.prototype.cancelRequests=function(){for(let e=0;e<this._requests.length;e++){let t=this._requests[e];l(t)&&t.cancel()}};nd.prototype.hasProperty=function(e,t){return!1};nd.prototype.getFeature=function(e){};nd.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};nd.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};nd.prototype.update=function(e,t){let n=this._contents,i=n.length,o=!0;for(let r=0;r<i;++r)n[r].update(e,t),o=o&&n[r].ready;!this._ready&&o&&(this._ready=!0,this._resolveContent(this))};nd.prototype.isDestroyed=function(){return!1};nd.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var KN=nd;var Woe=ar(koe(),1);var H8e=new m,G8e=new m,cg={};cg.computeArea2D=function(e){let t=e.length,n=0;for(let i=t-1,o=0;o<t;i=o++){let r=e[i],s=e[o];n+=r.x*s.y-s.x*r.y}return n*.5};cg.computeWindingOrder2D=function(e){return cg.computeArea2D(e)>0?$r.COUNTER_CLOCKWISE:$r.CLOCKWISE};cg.triangulate=function(e,t){let n=H.packArray(e);return(0,Woe.default)(n,t,2)};var joe=new m,Yoe=new m,qoe=new m,zoe=new m,Hoe=new m,Goe=new m,yp=new m,Xoe=new H,Koe=new H,Joe=new H,pT=new H;cg.computeSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,u=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let E=t[a];if(u[d++]=E.x,u[d++]=E.y,u[d++]=E.z,r){let S=i[a];f[p++]=S.x,f[p++]=S.y}}let g=[],h={},A=e.maximumRadius,x=P.chordLength(o,A),C=x*x;for(;s.length>0;){let E=s.pop(),S=s.pop(),v=s.pop(),D=m.fromArray(u,v*3,joe),O=m.fromArray(u,S*3,Yoe),M=m.fromArray(u,E*3,qoe),L,N,_;r&&(L=H.fromArray(f,v*2,Xoe),N=H.fromArray(f,S*2,Koe),_=H.fromArray(f,E*2,Joe));let b=m.multiplyByScalar(m.normalize(D,zoe),A,zoe),w=m.multiplyByScalar(m.normalize(O,Hoe),A,Hoe),I=m.multiplyByScalar(m.normalize(M,Goe),A,Goe),R=m.magnitudeSquared(m.subtract(b,w,yp)),F=m.magnitudeSquared(m.subtract(w,I,yp)),k=m.magnitudeSquared(m.subtract(I,b,yp)),V=Math.max(R,F,k),G,U,q;V>C?R===V?(G=`${Math.min(v,S)} ${Math.max(v,S)}`,a=h[G],l(a)||(U=m.add(D,O,yp),m.multiplyByScalar(U,.5,U),u.push(U.x,U.y,U.z),a=u.length/3-1,h[G]=a,r&&(q=H.add(L,N,pT),H.multiplyByScalar(q,.5,q),f.push(q.x,q.y))),s.push(v,a,E),s.push(a,S,E)):F===V?(G=`${Math.min(S,E)} ${Math.max(S,E)}`,a=h[G],l(a)||(U=m.add(O,M,yp),m.multiplyByScalar(U,.5,U),u.push(U.x,U.y,U.z),a=u.length/3-1,h[G]=a,r&&(q=H.add(N,_,pT),H.multiplyByScalar(q,.5,q),f.push(q.x,q.y))),s.push(S,a,v),s.push(a,E,v)):k===V&&(G=`${Math.min(E,v)} ${Math.max(E,v)}`,a=h[G],l(a)||(U=m.add(M,D,yp),m.multiplyByScalar(U,.5,U),u.push(U.x,U.y,U.z),a=u.length/3-1,h[G]=a,r&&(q=H.add(_,L,pT),H.multiplyByScalar(q,.5,q),f.push(q.x,q.y))),s.push(E,a,S),s.push(a,v,S)):(g.push(v),g.push(S),g.push(E))}let T={attributes:{position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})},indices:g,primitiveType:Le.TRIANGLES};return r&&(T.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new dt(T)};var W8e=new he,j8e=new he,Y8e=new he,R6=new he;cg.computeRhumbLineSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,u=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let v=t[a];if(u[d++]=v.x,u[d++]=v.y,u[d++]=v.z,r){let D=i[a];f[p++]=D.x,f[p++]=D.y}}let g=[],h={},A=e.maximumRadius,x=P.chordLength(o,A),C=new Pa(void 0,void 0,e),T=new Pa(void 0,void 0,e),E=new Pa(void 0,void 0,e);for(;s.length>0;){let v=s.pop(),D=s.pop(),O=s.pop(),M=m.fromArray(u,O*3,joe),L=m.fromArray(u,D*3,Yoe),N=m.fromArray(u,v*3,qoe),_,b,w;r&&(_=H.fromArray(f,O*2,Xoe),b=H.fromArray(f,D*2,Koe),w=H.fromArray(f,v*2,Joe));let I=e.cartesianToCartographic(M,W8e),R=e.cartesianToCartographic(L,j8e),F=e.cartesianToCartographic(N,Y8e);C.setEndPoints(I,R);let k=C.surfaceDistance;T.setEndPoints(R,F);let V=T.surfaceDistance;E.setEndPoints(F,I);let G=E.surfaceDistance,U=Math.max(k,V,G),q,Y,Q,W,K;U>x?k===U?(q=`${Math.min(O,D)} ${Math.max(O,D)}`,a=h[q],l(a)||(Y=C.interpolateUsingFraction(.5,R6),Q=(I.height+R.height)*.5,W=m.fromRadians(Y.longitude,Y.latitude,Q,e,yp),u.push(W.x,W.y,W.z),a=u.length/3-1,h[q]=a,r&&(K=H.add(_,b,pT),H.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(O,a,v),s.push(a,D,v)):V===U?(q=`${Math.min(D,v)} ${Math.max(D,v)}`,a=h[q],l(a)||(Y=T.interpolateUsingFraction(.5,R6),Q=(R.height+F.height)*.5,W=m.fromRadians(Y.longitude,Y.latitude,Q,e,yp),u.push(W.x,W.y,W.z),a=u.length/3-1,h[q]=a,r&&(K=H.add(b,w,pT),H.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(D,a,O),s.push(a,v,O)):G===U&&(q=`${Math.min(v,O)} ${Math.max(v,O)}`,a=h[q],l(a)||(Y=E.interpolateUsingFraction(.5,R6),Q=(F.height+I.height)*.5,W=m.fromRadians(Y.longitude,Y.latitude,Q,e,yp),u.push(W.x,W.y,W.z),a=u.length/3-1,h[q]=a,r&&(K=H.add(w,_,pT),H.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(v,a,D),s.push(a,O,D)):(g.push(O),g.push(D),g.push(v))}let S={attributes:{position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})},indices:g,primitiveType:Le.TRIANGLES};return r&&(S.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new dt(S)};cg.scaleToGeodeticHeight=function(e,t,n,i){n=y(n,oe.WGS84);let o=H8e,r=G8e;if(t=y(t,0),i=y(i,!0),l(e)){let s=e.length;for(let a=0;a<s;a+=3)m.fromArray(e,a,r),i&&(r=n.scaleToGeodeticSurface(r,r)),t!==0&&(o=n.geodeticSurfaceNormal(r,o),m.multiplyByScalar(o,t,o),m.add(r,o,r)),e[a]=r.x,e[a+1]=r.y,e[a+2]=r.z}return e};var li=cg;var Zoe=Math.cos,Qoe=Math.sin,q8e=Math.sqrt,L6={};L6.computePosition=function(e,t,n,i,o,r,s){let a=t.radiiSquared,c=e.nwCorner,u=e.boundingRectangle,f=c.latitude-e.granYCos*i+o*e.granXSin,d=Zoe(f),p=Qoe(f),g=a.z*p,h=c.longitude+i*e.granYSin+o*e.granXCos,A=d*Zoe(h),x=d*Qoe(h),C=a.x*A,T=a.y*x,E=q8e(C*A+T*x+g*p);if(r.x=C/E,r.y=T/E,r.z=g/E,n){let S=e.stNwCorner;l(S)?(f=S.latitude-e.stGranYCos*i+o*e.stGranXSin,h=S.longitude+i*e.stGranYSin+o*e.stGranXCos,s.x=(h-e.stWest)*e.lonScalar,s.y=(f-e.stSouth)*e.latScalar):(s.x=(h-u.west)*e.lonScalar,s.y=(f-u.south)*e.latScalar)}};var X8e=new eo,ju=new m,K8e=new he,eF=new m,B6=new Di;function $oe(e,t,n,i,o,r,s){let a=Math.cos(t),c=i*a,u=n*a,f=Math.sin(t),d=i*f,p=n*f;ju=B6.project(e,ju),ju=m.subtract(ju,eF,ju);let g=eo.fromRotation(t,X8e);ju=eo.multiplyByVector(g,ju,ju),ju=m.add(ju,eF,ju),e=B6.unproject(ju,e),r-=1,s-=1;let h=e.latitude,A=h+r*p,x=h-c*s,C=h-c*s+r*p,T=Math.max(h,A,x,C),E=Math.min(h,A,x,C),S=e.longitude,v=S+r*u,D=S+s*d,O=S+s*d+r*u,M=Math.max(S,v,D,O),L=Math.min(S,v,D,O);return{north:T,south:E,east:M,west:L,granYCos:c,granYSin:d,granXCos:u,granXSin:p,nwCorner:e}}L6.computeOptions=function(e,t,n,i,o,r,s){let a=e.east,c=e.west,u=e.north,f=e.south,d=!1,p=!1;u===P.PI_OVER_TWO&&(d=!0),f===-P.PI_OVER_TWO&&(p=!0);let g,h=u-f;c>a?g=P.TWO_PI-c+a:g=a-c;let A=Math.ceil(g/t)+1,x=Math.ceil(h/t)+1,C=g/(A-1),T=h/(x-1),E=le.northwest(e,r),S=le.center(e,K8e);(n!==0||i!==0)&&(S.longitude<E.longitude&&(S.longitude+=P.TWO_PI),eF=B6.project(S,eF));let v=T,D=C,O=0,M=0,L=le.clone(e,o),N={granYCos:v,granYSin:O,granXCos:D,granXSin:M,nwCorner:E,boundingRectangle:L,width:A,height:x,northCap:d,southCap:p};if(n!==0){let _=$oe(E,n,C,T,S,A,x);u=_.north,f=_.south,a=_.east,c=_.west,N.granYCos=_.granYCos,N.granYSin=_.granYSin,N.granXCos=_.granXCos,N.granXSin=_.granXSin,L.north=u,L.south=f,L.east=a,L.west=c}if(i!==0){n=n-i;let _=le.northwest(L,s),b=$oe(_,n,C,T,S,A,x);N.stGranYCos=b.granYCos,N.stGranXCos=b.granXCos,N.stGranYSin=b.granYSin,N.stGranXSin=b.granXSin,N.stNwCorner=_,N.stWest=b.west,N.stSouth=b.south}return N};var Ts=L6;var J8e=new ae,Z8e=new ae,Q8e=new m,$8e=new le;function ere(e,t){let n=e._ellipsoid,i=t.height,o=t.width,r=t.northCap,s=t.southCap,a=i,c=2,u=0,f=4;r&&(c-=1,a-=1,u+=1,f-=2),s&&(c-=1,a-=1,u+=1,f-=2),u+=c*o+2*a-f;let d=new Float64Array(u*3),p=0,g=0,h,A=Q8e;if(r)Ts.computePosition(t,n,!1,g,0,A),d[p++]=A.x,d[p++]=A.y,d[p++]=A.z;else for(h=0;h<o;h++)Ts.computePosition(t,n,!1,g,h,A),d[p++]=A.x,d[p++]=A.y,d[p++]=A.z;for(h=o-1,g=1;g<i;g++)Ts.computePosition(t,n,!1,g,h,A),d[p++]=A.x,d[p++]=A.y,d[p++]=A.z;if(g=i-1,!s)for(h=o-2;h>=0;h--)Ts.computePosition(t,n,!1,g,h,A),d[p++]=A.x,d[p++]=A.y,d[p++]=A.z;for(h=0,g=i-2;g>0;g--)Ts.computePosition(t,n,!1,g,h,A),d[p++]=A.x,d[p++]=A.y,d[p++]=A.z;let x=d.length/3*2,C=Ve.createTypedArray(d.length/3,x),T=0;for(let S=0;S<d.length/3-1;S++)C[T++]=S,C[T++]=S+1;C[T++]=d.length/3-1,C[T++]=0;let E=new dt({attributes:new _n,primitiveType:Le.LINES});return E.attributes.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),E.indices=C,E}function e5e(e,t){let n=e._surfaceHeight,i=e._extrudedHeight,o=e._ellipsoid,r=i,s=n,a=ere(e,t),c=t.height,u=t.width,f=li.scaleToGeodeticHeight(a.attributes.position.values,s,o,!1),d=f.length,p=new Float64Array(d*2);p.set(f);let g=li.scaleToGeodeticHeight(a.attributes.position.values,r,o);p.set(g,d),a.attributes.position.values=p;let h=t.northCap,A=t.southCap,x=4;h&&(x-=1),A&&(x-=1);let C=(p.length/3+x)*2,T=Ve.createTypedArray(p.length/3,C);d=p.length/6;let E=0;for(let v=0;v<d-1;v++)T[E++]=v,T[E++]=v+1,T[E++]=v+d,T[E++]=v+d+1;T[E++]=d-1,T[E++]=0,T[E++]=d+d-1,T[E++]=d,T[E++]=0,T[E++]=d;let S;if(h)S=c-1;else{let v=u-1;T[E++]=v,T[E++]=v+d,S=u+c-2}if(T[E++]=S,T[E++]=S+d,!A){let v=u+S-1;T[E++]=v,T[E]=v+d}return a.indices=T,a}function gT(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.granularity,P.RADIANS_PER_DEGREE),i=y(e.ellipsoid,oe.WGS84),o=y(e.rotation,0),r=y(e.height,0),s=y(e.extrudedHeight,r);this._rectangle=le.clone(t),this._granularity=n,this._ellipsoid=i,this._surfaceHeight=Math.max(r,s),this._rotation=o,this._extrudedHeight=Math.min(r,s),this._offsetAttribute=e.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}gT.packedLength=le.packedLength+oe.packedLength+5;gT.pack=function(e,t,n){return n=y(n,0),le.pack(e._rectangle,t,n),n+=le.packedLength,oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._extrudedHeight,t[n]=y(e._offsetAttribute,-1),t};var tre=new le,nre=oe.clone(oe.UNIT_SPHERE),_T={rectangle:tre,ellipsoid:nre,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};gT.unpack=function(e,t,n){t=y(t,0);let i=le.unpack(e,t,tre);t+=le.packedLength;let o=oe.unpack(e,t,nre);t+=oe.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t];return l(n)?(n._rectangle=le.clone(i,n._rectangle),n._ellipsoid=oe.clone(o,n._ellipsoid),n._surfaceHeight=s,n._rotation=a,n._extrudedHeight=c,n._offsetAttribute=u===-1?void 0:u,n):(_T.granularity=r,_T.height=s,_T.rotation=a,_T.extrudedHeight=c,_T.offsetAttribute=u===-1?void 0:u,new gT(_T))};var t5e=new he;gT.createGeometry=function(e){let t=e._rectangle,n=e._ellipsoid,i=Ts.computeOptions(t,e._granularity,e._rotation,0,$8e,t5e),o,r;if(P.equalsEpsilon(t.north,t.south,P.EPSILON10)||P.equalsEpsilon(t.east,t.west,P.EPSILON10))return;let s=e._surfaceHeight,a=e._extrudedHeight,c=!P.equalsEpsilon(s,a,0,P.EPSILON2),u;if(c){if(o=e5e(e,i),l(e._offsetAttribute)){let p=o.attributes.position.values.length/3,g=new Uint8Array(p);e._offsetAttribute===rn.TOP?g=g.fill(1,0,p/2):(u=e._offsetAttribute===rn.NONE?0:1,g=g.fill(u)),o.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}let f=ae.fromRectangle3D(t,n,s,Z8e),d=ae.fromRectangle3D(t,n,a,J8e);r=ae.union(f,d)}else{if(o=ere(e,i),o.attributes.position.values=li.scaleToGeodeticHeight(o.attributes.position.values,s,n,!1),l(e._offsetAttribute)){let f=o.attributes.position.values.length;u=e._offsetAttribute===rn.NONE?0:1;let d=new Uint8Array(f/3).fill(u);o.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}r=ae.fromRectangle3D(t,n,s)}return new dt({attributes:o.attributes,indices:o.indices,primitiveType:Le.LINES,boundingSphere:r,offsetAttribute:e._offsetAttribute})};var yT=gT;function xT(e){this.rectangle=le.clone(e.rectangle),this.minimumHeight=y(e.minimumHeight,0),this.maximumHeight=y(e.maximumHeight,0),this.southwestCornerCartesian=new m,this.northeastCornerCartesian=new m,this.westNormal=new m,this.southNormal=new m,this.eastNormal=new m,this.northNormal=new m;let t=y(e.ellipsoid,oe.WGS84);s5e(this,e.rectangle,t),this._orientedBoundingBox=void 0,this._boundingSphere=void 0,y(e.computeBoundingVolumes,!0)&&this.computeBoundingVolumes(t)}Object.defineProperties(xT.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});xT.prototype.computeBoundingVolumes=function(e){this._orientedBoundingBox=Bn.fromRectangle(this.rectangle,this.minimumHeight,this.maximumHeight,e),this._boundingSphere=ae.fromOrientedBoundingBox(this._orientedBoundingBox)};var ire=new m,tF=new m,ore=new m,n5e=new m,i5e=new m,o5e=new m,r5e=new m,Yu=new he,rre=new fn(m.UNIT_X,0),AT=new In;function s5e(e,t,n){n.cartographicToCartesian(le.southwest(t),e.southwestCornerCartesian),n.cartographicToCartesian(le.northeast(t),e.northeastCornerCartesian),Yu.longitude=t.west,Yu.latitude=(t.south+t.north)*.5,Yu.height=0;let i=n.cartographicToCartesian(Yu,o5e),o=m.cross(i,m.UNIT_Z,n5e);m.normalize(o,e.westNormal),Yu.longitude=t.east;let r=n.cartographicToCartesian(Yu,r5e),s=m.cross(m.UNIT_Z,r,ire);m.normalize(s,e.eastNormal);let a=m.subtract(i,r,ire);m.magnitude(a)===0&&(a=m.clone(o,a));let c=m.normalize(a,i5e),u=t.south,f;if(u>0){Yu.longitude=(t.west+t.east)*.5,Yu.latitude=u;let A=n.cartographicToCartesian(Yu,AT.origin);m.clone(c,AT.direction);let x=fn.fromPointNormal(e.southwestCornerCartesian,e.westNormal,rre);Ji.rayPlane(AT,x,e.southwestCornerCartesian),f=n.geodeticSurfaceNormal(A,tF)}else f=n.geodeticSurfaceNormalCartographic(le.southeast(t),tF);let d=m.cross(f,a,ore);m.normalize(d,e.southNormal);let p=t.north,g;if(p<0){Yu.longitude=(t.west+t.east)*.5,Yu.latitude=p;let A=n.cartographicToCartesian(Yu,AT.origin);m.negate(c,AT.direction);let x=fn.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,rre);Ji.rayPlane(AT,x,e.northeastCornerCartesian),g=n.geodeticSurfaceNormal(A,tF)}else g=n.geodeticSurfaceNormalCartographic(le.northwest(t),tF);let h=m.cross(a,g,ore);m.normalize(h,e.northNormal)}var a5e=new m,c5e=new m,l5e=new m(0,-1,0),u5e=new m(0,0,-1),sre=new m;function f5e(e,t){let n=t.camera,i=n.positionWC,o=n.positionCartographic,r=0;if(!le.contains(e.rectangle,o)){let u=e.southwestCornerCartesian,f=e.northeastCornerCartesian,d=e.westNormal,p=e.southNormal,g=e.eastNormal,h=e.northNormal;t.mode!==ne.SCENE3D&&(u=t.mapProjection.project(le.southwest(e.rectangle),a5e),u.z=u.y,u.y=u.x,u.x=0,f=t.mapProjection.project(le.northeast(e.rectangle),c5e),f.z=f.y,f.y=f.x,f.x=0,d=l5e,g=m.UNIT_Y,p=u5e,h=m.UNIT_Z);let A=m.subtract(i,u,sre),x=m.dot(A,d),C=m.dot(A,p),T=m.subtract(i,f,sre),E=m.dot(T,g),S=m.dot(T,h);x>0?r+=x*x:E>0&&(r+=E*E),C>0?r+=C*C:S>0&&(r+=S*S)}let s,a,c;if(t.mode===ne.SCENE3D?(s=o.height,a=e.minimumHeight,c=e.maximumHeight):(s=i.x,a=0,c=0),s>c){let u=s-c;r+=u*u}else if(s<a){let u=a-s;r+=u*u}return Math.sqrt(r)}xT.prototype.distanceToCamera=function(e){let t=f5e(this,e);if(e.mode===ne.SCENE3D&&l(this._orientedBoundingBox)){let n=Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC));return Math.max(t,n)}return t};xT.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};xT.prototype.createDebugVolume=function(e){let t=new B.clone(B.IDENTITY),n=new yT({rectangle:this.rectangle,height:this.minimumHeight,extrudedHeight:this.maximumHeight}),i=new Tt({geometry:n,id:"outline",modelMatrix:t,attributes:{color:Vt.fromColor(e)}});return new wn({geometryInstances:i,appearance:new sn({translucent:!1,flat:!0}),asynchronous:!1})};var id=xT;var Ww={},d5e=new m,are=new m,cre=new m,lre=new m,ure=new Bn;Ww.validOutline=function(e){let n=Bn.fromPoints(e,ure).halfAxes,i=Z.getColumn(n,0,are),o=Z.getColumn(n,1,cre),r=Z.getColumn(n,2,lre),s=m.magnitude(i),a=m.magnitude(o),c=m.magnitude(r);return!(s===0&&(a===0||c===0)||a===0&&c===0)};Ww.computeProjectTo2DArguments=function(e,t,n,i){let o=Bn.fromPoints(e,ure),r=o.halfAxes,s=Z.getColumn(r,0,are),a=Z.getColumn(r,1,cre),c=Z.getColumn(r,2,lre),u=m.magnitude(s),f=m.magnitude(a),d=m.magnitude(c),p=Math.min(u,f,d);if(u===0&&(f===0||d===0)||f===0&&d===0)return!1;let g,h;return(p===f||p===d)&&(g=s),p===u?g=a:p===d&&(h=a),(p===u||p===f)&&(h=c),m.normalize(g,n),m.normalize(h,i),m.clone(o.center,t),!0};function fre(e,t,n,i,o){let r=m.subtract(e,t,d5e),s=m.dot(n,r),a=m.dot(i,r);return H.fromElements(s,a,o)}Ww.createProjectPointsTo2DFunction=function(e,t,n){return function(i){let o=new Array(i.length);for(let r=0;r<i.length;r++)o[r]=fre(i[r],e,t,n);return o}};Ww.createProjectPointTo2DFunction=function(e,t,n){return function(i,o){return fre(i,e,t,n,o)}};var lg=Ww;function ug(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(ug.prototype,{length:{get:function(){return this._length}}});ug.prototype.enqueue=function(e){this._array.push(e),this._length++};ug.prototype.dequeue=function(){if(this._length===0)return;let e=this._array,t=this._offset,n=e[t];return e[t]=void 0,t++,t>10&&t*2>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,n};ug.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};ug.prototype.contains=function(e){return this._array.indexOf(e)!==-1};ug.prototype.clear=function(){this._array.length=this._offset=this._length=0};ug.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var z0=ug;var nr={};nr.computeHierarchyPackedLength=function(e,t){let n=0,i=[e];for(;i.length>0;){let o=i.pop();if(!l(o))continue;n+=2;let r=o.positions,s=o.holes;if(l(r)&&r.length>0&&(n+=r.length*t.packedLength),l(s)){let a=s.length;for(let c=0;c<a;++c)i.push(s[c])}}return n};nr.packPolygonHierarchy=function(e,t,n,i){let o=[e];for(;o.length>0;){let r=o.pop();if(!l(r))continue;let s=r.positions,a=r.holes;if(t[n++]=l(s)?s.length:0,t[n++]=l(a)?a.length:0,l(s)){let c=s.length;for(let u=0;u<c;++u,n+=i.packedLength)i.pack(s[u],t,n)}if(l(a)){let c=a.length;for(let u=0;u<c;++u)o.push(a[u])}}return n};nr.unpackPolygonHierarchy=function(e,t,n){let i=e[t++],o=e[t++],r=new Array(i),s=o>0?new Array(o):void 0;for(let a=0;a<i;++a,t+=n.packedLength)r[a]=n.unpack(e,t);for(let a=0;a<o;++a)s[a]=nr.unpackPolygonHierarchy(e,t,n),t=s[a].startingIndex,delete s[a].startingIndex;return{positions:r,holes:s,startingIndex:t}};var H0=new H;function pre(e,t,n,i){return H.subtract(t,e,H0),H.multiplyByScalar(H0,n/i,H0),H.add(e,H0,H0),[H0.x,H0.y]}var fg=new m;function m5e(e,t,n,i){return m.subtract(t,e,fg),m.multiplyByScalar(fg,n/i,fg),m.add(e,fg,fg),[fg.x,fg.y,fg.z]}nr.subdivideLineCount=function(e,t,n){let o=m.distance(e,t)/n,r=Math.max(0,Math.ceil(P.log2(o)));return Math.pow(2,r)};var N6=new he,F6=new he,h5e=new he,p5e=new m,dre=new Pa;nr.subdivideRhumbLineCount=function(e,t,n,i){let o=e.cartesianToCartographic(t,N6),r=e.cartesianToCartographic(n,F6),a=new Pa(o,r,e).surfaceDistance/i,c=Math.max(0,Math.ceil(P.log2(a)));return Math.pow(2,c)};nr.subdivideTexcoordLine=function(e,t,n,i,o,r){let s=nr.subdivideLineCount(n,i,o),a=H.distance(e,t),c=a/s,u=r;u.length=s*2;let f=0;for(let d=0;d<s;d++){let p=pre(e,t,d*c,a);u[f++]=p[0],u[f++]=p[1]}return u};nr.subdivideLine=function(e,t,n,i){let o=nr.subdivideLineCount(e,t,n),r=m.distance(e,t),s=r/o;l(i)||(i=[]);let a=i;a.length=o*3;let c=0;for(let u=0;u<o;u++){let f=m5e(e,t,u*s,r);a[c++]=f[0],a[c++]=f[1],a[c++]=f[2]}return a};nr.subdivideTexcoordRhumbLine=function(e,t,n,i,o,r,s){let a=n.cartesianToCartographic(i,N6),c=n.cartesianToCartographic(o,F6);dre.setEndPoints(a,c);let u=dre.surfaceDistance/r,f=Math.max(0,Math.ceil(P.log2(u))),d=Math.pow(2,f),p=H.distance(e,t),g=p/d,h=s;h.length=d*2;let A=0;for(let x=0;x<d;x++){let C=pre(e,t,x*g,p);h[A++]=C[0],h[A++]=C[1]}return h};nr.subdivideRhumbLine=function(e,t,n,i,o){let r=e.cartesianToCartographic(t,N6),s=e.cartesianToCartographic(n,F6),a=new Pa(r,s,e),c=a.surfaceDistance/i,u=Math.max(0,Math.ceil(P.log2(c))),f=Math.pow(2,u),d=a.surfaceDistance/f;l(o)||(o=[]);let p=o;p.length=f*3;let g=0;for(let h=0;h<f;h++){let A=a.interpolateUsingSurfaceDistance(h*d,h5e),x=e.cartographicToCartesian(A,p5e);p[g++]=x.x,p[g++]=x.y,p[g++]=x.z}return p};var _5e=new m,g5e=new m,y5e=new m,A5e=new m;nr.scaleToGeodeticHeightExtruded=function(e,t,n,i,o){i=y(i,oe.WGS84);let r=_5e,s=g5e,a=y5e,c=A5e;if(l(e)&&l(e.attributes)&&l(e.attributes.position)){let u=e.attributes.position.values,f=u.length/2;for(let d=0;d<f;d+=3)m.fromArray(u,d,a),i.geodeticSurfaceNormal(a,r),c=i.scaleToGeodeticSurface(a,c),s=m.multiplyByScalar(r,n,s),s=m.add(c,s,s),u[d+f]=s.x,u[d+1+f]=s.y,u[d+2+f]=s.z,o&&(c=m.clone(a,c)),s=m.multiplyByScalar(r,t,s),s=m.add(c,s,s),u[d]=s.x,u[d+1]=s.y,u[d+2]=s.z}return e};nr.polygonOutlinesFromHierarchy=function(e,t,n){let i=[],o=new z0;o.enqueue(e);let r,s,a;for(;o.length!==0;){let c=o.dequeue(),u=c.positions;if(t)for(a=u.length,r=0;r<a;r++)n.scaleToGeodeticSurface(u[r],u[r]);if(u=xo(u,m.equalsEpsilon,!0),u.length<3)continue;let f=c.holes?c.holes.length:0;for(r=0;r<f;r++){let d=c.holes[r],p=d.positions;if(t)for(a=p.length,s=0;s<a;++s)n.scaleToGeodeticSurface(p[s],p[s]);if(p=xo(p,m.equalsEpsilon,!0),p.length<3)continue;i.push(p);let g=0;for(l(d.holes)&&(g=d.holes.length),s=0;s<g;s++)o.enqueue(d.holes[s])}i.push(u)}return i};nr.polygonsFromHierarchy=function(e,t,n,i,o){let r=[],s=[],a=new z0;for(a.enqueue(e);a.length!==0;){let c=a.dequeue(),u=c.positions,f=c.holes,d,p;if(i)for(p=u.length,d=0;d<p;d++)o.scaleToGeodeticSurface(u[d],u[d]);if(t||(u=xo(u,m.equalsEpsilon,!0)),u.length<3)continue;let g=n(u);if(!l(g))continue;let h=[],A=li.computeWindingOrder2D(g);A===$r.CLOCKWISE&&(g.reverse(),u=u.slice().reverse());let x=u.slice(),C=l(f)?f.length:0,T=[],E;for(d=0;d<C;d++){let S=f[d],v=S.positions;if(i)for(p=v.length,E=0;E<p;++E)o.scaleToGeodeticSurface(v[E],v[E]);if(t||(v=xo(v,m.equalsEpsilon,!0)),v.length<3)continue;let D=n(v);if(!l(D))continue;A=li.computeWindingOrder2D(D),A===$r.CLOCKWISE&&(D.reverse(),v=v.slice().reverse()),T.push(v),h.push(x.length),x=x.concat(v),g=g.concat(D);let O=0;for(l(S.holes)&&(O=S.holes.length),E=0;E<O;E++)a.enqueue(S.holes[E])}r.push({outerRing:u,holes:T}),s.push({positions:x,positions2D:g,holes:h})}return{hierarchy:r,polygons:s}};var x5e=new H,C5e=new m,T5e=new Ne,E5e=new Z;nr.computeBoundingRectangle=function(e,t,n,i,o){let r=Ne.fromAxisAngle(e,i,T5e),s=Z.fromQuaternion(r,E5e),a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,d=n.length;for(let p=0;p<d;++p){let g=m.clone(n[p],C5e);Z.multiplyByVector(s,g,g);let h=t(g,x5e);l(h)&&(a=Math.min(a,h.x),c=Math.max(c,h.x),u=Math.min(u,h.y),f=Math.max(f,h.y))}return o.x=a,o.y=u,o.width=c-a,o.height=f-u,o};nr.createGeometryFromPositions=function(e,t,n,i,o,r,s){let a=li.triangulate(t.positions2D,t.holes);a.length<3&&(a=[0,1,2]);let c=t.positions,u=l(n),f=u?n.positions:void 0;if(o){let d=c.length,p=new Array(d*3),g=0;for(let x=0;x<d;x++){let C=c[x];p[g++]=C.x,p[g++]=C.y,p[g++]=C.z}let h={attributes:{position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:p})},indices:a,primitiveType:Le.TRIANGLES};u&&(h.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:H.packArray(f)}));let A=new dt(h);return r.normal?Un.computeNormal(A):A}if(s===Zt.GEODESIC)return li.computeSubdivision(e,c,a,f,i);if(s===Zt.RHUMB)return li.computeRhumbLineSubdivision(e,c,a,f,i)};var mre=[],hre=[],b5e=new m,S5e=new m;nr.computeWallGeometry=function(e,t,n,i,o,r){let s,a,c,u,f,d,p,g,h,A=e.length,x=0,C=0,T=l(t),E=T?t.positions:void 0;if(o)for(a=A*3*2,s=new Array(a*2),T&&(h=A*2*2,g=new Array(h*2)),c=0;c<A;c++)u=e[c],f=e[(c+1)%A],s[x]=s[x+a]=u.x,++x,s[x]=s[x+a]=u.y,++x,s[x]=s[x+a]=u.z,++x,s[x]=s[x+a]=f.x,++x,s[x]=s[x+a]=f.y,++x,s[x]=s[x+a]=f.z,++x,T&&(d=E[c],p=E[(c+1)%A],g[C]=g[C+h]=d.x,++C,g[C]=g[C+h]=d.y,++C,g[C]=g[C+h]=p.x,++C,g[C]=g[C+h]=p.y,++C);else{let M=P.chordLength(i,n.maximumRadius),L=0;if(r===Zt.GEODESIC)for(c=0;c<A;c++)L+=nr.subdivideLineCount(e[c],e[(c+1)%A],M);else if(r===Zt.RHUMB)for(c=0;c<A;c++)L+=nr.subdivideRhumbLineCount(n,e[c],e[(c+1)%A],M);for(a=(L+A)*3,s=new Array(a*2),T&&(h=(L+A)*2,g=new Array(h*2)),c=0;c<A;c++){u=e[c],f=e[(c+1)%A];let N,_;T&&(d=E[c],p=E[(c+1)%A]),r===Zt.GEODESIC?(N=nr.subdivideLine(u,f,M,hre),T&&(_=nr.subdivideTexcoordLine(d,p,u,f,M,mre))):r===Zt.RHUMB&&(N=nr.subdivideRhumbLine(n,u,f,M,hre),T&&(_=nr.subdivideTexcoordRhumbLine(d,p,n,u,f,M,mre)));let b=N.length;for(let w=0;w<b;++w,++x)s[x]=N[w],s[x+a]=N[w];if(s[x]=f.x,s[x+a]=f.x,++x,s[x]=f.y,s[x+a]=f.y,++x,s[x]=f.z,s[x+a]=f.z,++x,T){let w=_.length;for(let I=0;I<w;++I,++C)g[C]=_[I],g[C+h]=_[I];g[C]=p.x,g[C+h]=p.x,++C,g[C]=p.y,g[C+h]=p.y,++C}}}A=s.length;let S=Ve.createTypedArray(A/3,A-e.length*6),v=0;for(A/=6,c=0;c<A;c++){let M=c,L=M+1,N=M+A,_=N+1;u=m.fromArray(s,M*3,b5e),f=m.fromArray(s,L*3,S5e),!m.equalsEpsilon(u,f,P.EPSILON10,P.EPSILON10)&&(S[v++]=M,S[v++]=N,S[v++]=L,S[v++]=L,S[v++]=N,S[v++]=_)}let D={attributes:new _n({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),indices:S,primitiveType:Le.TRIANGLES};return T&&(D.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),new dt(D)};var Xn=nr;function w5e(e){let t=e.length,n=new Float64Array(t*3),i=Ve.createTypedArray(t,t*2),o=0,r=0;for(let a=0;a<t;a++){let c=e[a];n[o++]=c.x,n[o++]=c.y,n[o++]=c.z,i[r++]=a,i[r++]=(a+1)%t}let s=new _n({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n})});return new dt({attributes:s,indices:i,primitiveType:Le.LINES})}function G0(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy;this._polygonHierarchy=t,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=Xn.computeHierarchyPackedLength(t,m)+1}G0.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions}};return new G0(t)};G0.pack=function(e,t,n){return n=y(n,0),n=Xn.packPolygonHierarchy(e._polygonHierarchy,t,n,m),t[n]=e.packedLength,t};var v5e={polygonHierarchy:{}};G0.unpack=function(e,t,n){t=y(t,0);let i=Xn.unpackPolygonHierarchy(e,t,m);t=i.startingIndex,delete i.startingIndex;let o=e[t];return l(n)||(n=new G0(v5e)),n._polygonHierarchy=i,n.packedLength=o,n};G0.createGeometry=function(e){let t=e._polygonHierarchy,n=t.positions;if(n=xo(n,m.equalsEpsilon,!0),n.length<3||!lg.validOutline(n))return;let o=Xn.polygonOutlinesFromHierarchy(t,!1);if(o.length===0)return;let r=[];for(let c=0;c<o.length;c++){let u=new Tt({geometry:w5e(o[c])});r.push(u)}let s=Un.combineInstances(r)[0],a=ae.fromPoints(t.positions);return new dt({attributes:s.attributes,indices:s.indices,primitiveType:s.primitiveType,boundingSphere:a})};var od=G0;var nF=new he;function jw(e){let t=N_.fromToken(e.token),n=y(e.minimumHeight,0),i=y(e.maximumHeight,0),o=y(e.ellipsoid,oe.WGS84);this.s2Cell=t,this.minimumHeight=n,this.maximumHeight=i,this.ellipsoid=o;let r=N5e(t,n,i,o);this._boundingPlanes=r;let s=k5e(r);this._vertices=s,this._edgeNormals=new Array(6),this._edgeNormals[0]=j6(r[0],s.slice(0,4));let a;for(a=0;a<4;a++)this._edgeNormals[0][a]=m.negate(this._edgeNormals[0][a],this._edgeNormals[0][a]);for(this._edgeNormals[1]=j6(r[1],s.slice(4,8)),a=0;a<4;a++)this._edgeNormals[2+a]=j6(r[2+a],[s[a%4],s[(a+1)%4],s[4+(a+1)%4],s[4+a]]);for(this._planeVertices=[this._vertices.slice(0,4),this._vertices.slice(4,8)],a=0;a<4;a++)this._planeVertices.push([this._vertices[a%4],this._vertices[(a+1)%4],this._vertices[4+(a+1)%4],this._vertices[4+a]]);let c=t.getCenter();nF=o.cartesianToCartographic(c,nF),nF.height=(i+n)/2,this.center=o.cartographicToCartesian(nF,c),this._boundingSphere=ae.fromPoints(s)}var D5e=new m,I5e=new he,P5e=new m,O5e=new he,M5e=new m,R5e=new m,B5e=new m,L5e=new m;function N5e(e,t,n,i){let o=new Array(6),r=e.getCenter(),s=i.geodeticSurfaceNormal(r,D5e),a=i.cartesianToCartographic(r,I5e);a.height=n;let c=i.cartographicToCartesian(a,P5e),u=fn.fromPointNormal(c,s);o[0]=u;let f=0,d,p=[],g,h;for(d=0;d<4;d++){g=e.getVertex(d),p[d]=g,h=i.cartesianToCartographic(g,O5e),h.height=t;let x=fn.getPointDistance(u,i.cartographicToCartesian(h,M5e));x<f&&(f=x)}let A=fn.clone(u);for(A.normal=m.negate(A.normal,A.normal),A.distance=A.distance*-1+f,o[1]=A,d=0;d<4;d++){g=p[d];let x=p[(d+1)%4],C=i.geodeticSurfaceNormal(g,R5e),T=m.subtract(x,g,L5e),E=m.cross(T,C,B5e);E=m.normalize(E,E),o[2+d]=fn.fromPointNormal(g,E)}return o}var W0=new m,j0=new m,Y0=new m,U6=new m,V6=new m,k6=new m,F5e=new m,U5e=new m,V5e=new m,z6=new m,H6=new m,G6=new m,dg=new m,Om=new Z;function _re(e,t,n){W0=e.normal,j0=t.normal,Y0=n.normal,U6=m.multiplyByScalar(e.normal,-e.distance,U6),V6=m.multiplyByScalar(t.normal,-t.distance,V6),k6=m.multiplyByScalar(n.normal,-n.distance,k6),z6=m.multiplyByScalar(m.cross(j0,Y0,F5e),m.dot(U6,W0),z6),H6=m.multiplyByScalar(m.cross(Y0,W0,U5e),m.dot(V6,j0),H6),G6=m.multiplyByScalar(m.cross(W0,j0,V5e),m.dot(k6,Y0),G6),Om[0]=W0.x,Om[1]=j0.x,Om[2]=Y0.x,Om[3]=W0.y,Om[4]=j0.y,Om[5]=Y0.y,Om[6]=W0.z,Om[7]=j0.z,Om[8]=Y0.z;let i=Z.determinant(Om);return dg=m.add(z6,H6,dg),dg=m.add(dg,G6,dg),new m(dg.x/i,dg.y/i,dg.z/i)}function k5e(e){let t=new Array(8);for(let n=0;n<4;n++)t[n]=_re(e[0],e[2+(n+3)%4],e[2+n%4]),t[n+4]=_re(e[1],e[2+(n+3)%4],e[2+n%4]);return t}var W6=new m,CT=new m;function j6(e,t){let n=[];for(let i=0;i<4;i++)W6=m.subtract(t[(i+1)%4],t[i],W6),CT=m.cross(e.normal,W6,CT),CT=m.normalize(CT,CT),n[i]=m.clone(CT);return n}Object.defineProperties(jw.prototype,{boundingVolume:{get:function(){return this}},boundingSphere:{get:function(){return this._boundingSphere}}});var Y6=new m;jw.prototype.distanceToCamera=function(e){let t=e.camera.positionWC,n=[],i=[],o;fn.getPointDistance(this._boundingPlanes[0],t)>0?(n.push(0),i.push(this._planeVertices[0]),o=this._edgeNormals[0]):fn.getPointDistance(this._boundingPlanes[1],t)>0&&(n.push(1),i.push(this._planeVertices[1]),o=this._edgeNormals[1]);let r,s;for(r=0;r<4;r++)s=2+r,fn.getPointDistance(this._boundingPlanes[s],t)>0&&(n.push(s),i.push(this._planeVertices[s]),o=this._edgeNormals[s]);if(n.length===0)return 0;let a,c;if(n.length===1)return c=this._boundingPlanes[n[0]],a=q6(fn.projectPointOntoPlane(c,t,Y6),i[0],c,o),m.distance(a,t);if(n.length===2){if(n[0]===0){let p=[this._vertices[4*n[0]+(n[1]-2)],this._vertices[4*n[0]+(n[1]-2+1)%4]];return a=gre(t,p[0],p[1]),m.distance(a,t)}let f=Number.MAX_VALUE,d;for(r=0;r<2;r++)c=this._boundingPlanes[n[r]],a=q6(fn.projectPointOntoPlane(c,t,Y6),i[r],c,this._edgeNormals[n[r]]),d=m.distanceSquared(a,t),d<f&&(f=d);return Math.sqrt(f)}else if(n.length>3)return a=q6(fn.projectPointOntoPlane(this._boundingPlanes[1],t,Y6),this._planeVertices[1],this._boundingPlanes[1],this._edgeNormals[1]),m.distance(a,t);let u=n[1]===2&&n[2]===5?0:1;return n[0]===0?m.distance(t,this._vertices[(n[1]-2+u)%4]):m.distance(t,this._vertices[4+(n[1]-2+u)%4])};var z5e=new m,H5e=new m;function gre(e,t,n){let i=m.subtract(n,t,z5e),o=m.subtract(e,t,H5e),r=m.dot(i,o);if(r<=0)return t;let s=m.dot(i,i);return r>=s?n:(r=r/s,new m((1-r)*t.x+r*n.x,(1-r)*t.y+r*n.y,(1-r)*t.z+r*n.z))}var G5e=new fn(m.UNIT_X,0);function q6(e,t,n,i){let o=Number.MAX_VALUE,r,s,a;for(let c=0;c<t.length;c++){let u=fn.fromPointNormal(t[c],i[c],G5e);fn.getPointDistance(u,e)<0||(a=gre(e,t[c],t[(c+1)%4]),r=m.distance(e,a),r<o&&(o=r,s=a))}return l(s)?s:e}jw.prototype.intersectPlane=function(e){let t=0,n=0;for(let i=0;i<this._vertices.length;i++)m.dot(e.normal,this._vertices[i])+e.distance<0?n++:t++;return t===this._vertices.length?$t.INSIDE:n===this._vertices.length?$t.OUTSIDE:$t.INTERSECTING};jw.prototype.createDebugVolume=function(e){let t=new B.clone(B.IDENTITY),n=new od({polygonHierarchy:{positions:this._planeVertices[0]}}),i=od.createGeometry(n),o=new Tt({geometry:i,id:"outline",modelMatrix:t,attributes:{color:Vt.fromColor(e)}}),r=new od({polygonHierarchy:{positions:this._planeVertices[1]}}),s=od.createGeometry(r),a=new Tt({geometry:s,id:"outline",modelMatrix:t,attributes:{color:Vt.fromColor(e)}}),c=[];for(let u=0;u<4;u++){let f=new od({polygonHierarchy:{positions:this._planeVertices[2+u]}}),d=od.createGeometry(f);c[u]=new Tt({geometry:d,id:"outline",modelMatrix:t,attributes:{color:Vt.fromColor(e)}})}return new wn({geometryInstances:[c[0],c[1],c[2],c[3],a,o],appearance:new sn({translucent:!1,flat:!0}),asynchronous:!1})};var iF=jw;var W5e=new m(1,1,1),oF=Math.cos,rF=Math.sin;function TT(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,W5e),n=y(e.innerRadii,t),i=y(e.minimumClock,0),o=y(e.maximumClock,P.TWO_PI),r=y(e.minimumCone,0),s=y(e.maximumCone,P.PI),a=Math.round(y(e.stackPartitions,10)),c=Math.round(y(e.slicePartitions,8)),u=Math.round(y(e.subdivisions,128));this._radii=m.clone(t),this._innerRadii=m.clone(n),this._minimumClock=i,this._maximumClock=o,this._minimumCone=r,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._subdivisions=u,this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}TT.packedLength=2*m.packedLength+8;TT.pack=function(e,t,n){return n=y(n,0),m.pack(e._radii,t,n),n+=m.packedLength,m.pack(e._innerRadii,t,n),n+=m.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n++]=e._subdivisions,t[n]=y(e._offsetAttribute,-1),t};var yre=new m,Are=new m,Ap={radii:yre,innerRadii:Are,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};TT.unpack=function(e,t,n){t=y(t,0);let i=m.unpack(e,t,yre);t+=m.packedLength;let o=m.unpack(e,t,Are);t+=m.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._radii=m.clone(i,n._radii),n._innerRadii=m.clone(o,n._innerRadii),n._minimumClock=r,n._maximumClock=s,n._minimumCone=a,n._maximumCone=c,n._stackPartitions=u,n._slicePartitions=f,n._subdivisions=d,n._offsetAttribute=p===-1?void 0:p,n):(Ap.minimumClock=r,Ap.maximumClock=s,Ap.minimumCone=a,Ap.maximumCone=c,Ap.stackPartitions=u,Ap.slicePartitions=f,Ap.subdivisions=d,Ap.offsetAttribute=p===-1?void 0:p,new TT(Ap))};TT.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,o=e._maximumClock,r=e._minimumCone,s=e._maximumCone,a=e._subdivisions,c=oe.fromCartesian3(t),u=e._slicePartitions+1,f=e._stackPartitions+1;u=Math.round(u*Math.abs(o-i)/P.TWO_PI),f=Math.round(f*Math.abs(s-r)/P.PI),u<2&&(u=2),f<2&&(f=2);let d=0,p=1,g=n.x!==t.x||n.y!==t.y||n.z!==t.z,h=!1,A=!1;g&&(p=2,r>0&&(h=!0,d+=u),s<Math.PI&&(A=!0,d+=u));let x=a*p*(f+u),C=new Float64Array(x*3),T=2*(x+d-(u+f)*p),E=Ve.createTypedArray(x,T),S,v,D,O,M=0,L=new Array(f),N=new Array(f);for(S=0;S<f;S++)O=r+S*(s-r)/(f-1),L[S]=rF(O),N[S]=oF(O);let _=new Array(a),b=new Array(a);for(S=0;S<a;S++)D=i+S*(o-i)/(a-1),_[S]=rF(D),b[S]=oF(D);for(S=0;S<f;S++)for(v=0;v<a;v++)C[M++]=t.x*L[S]*b[v],C[M++]=t.y*L[S]*_[v],C[M++]=t.z*N[S];if(g)for(S=0;S<f;S++)for(v=0;v<a;v++)C[M++]=n.x*L[S]*b[v],C[M++]=n.y*L[S]*_[v],C[M++]=n.z*N[S];for(L.length=a,N.length=a,S=0;S<a;S++)O=r+S*(s-r)/(a-1),L[S]=rF(O),N[S]=oF(O);for(_.length=u,b.length=u,S=0;S<u;S++)D=i+S*(o-i)/(u-1),_[S]=rF(D),b[S]=oF(D);for(S=0;S<a;S++)for(v=0;v<u;v++)C[M++]=t.x*L[S]*b[v],C[M++]=t.y*L[S]*_[v],C[M++]=t.z*N[S];if(g)for(S=0;S<a;S++)for(v=0;v<u;v++)C[M++]=n.x*L[S]*b[v],C[M++]=n.y*L[S]*_[v],C[M++]=n.z*N[S];for(M=0,S=0;S<f*p;S++){let R=S*a;for(v=0;v<a-1;v++)E[M++]=R+v,E[M++]=R+v+1}let w=f*a*p;for(S=0;S<u;S++)for(v=0;v<a-1;v++)E[M++]=w+S+v*u,E[M++]=w+S+(v+1)*u;if(g)for(w=f*a*p+u*a,S=0;S<u;S++)for(v=0;v<a-1;v++)E[M++]=w+S+v*u,E[M++]=w+S+(v+1)*u;if(g){let R=f*a*p,F=R+a*u;if(h)for(S=0;S<u;S++)E[M++]=R+S,E[M++]=F+S;if(A)for(R+=a*u-u,F+=a*u-u,S=0;S<u;S++)E[M++]=R+S,E[M++]=F+S}let I=new _n({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:C})});if(l(e._offsetAttribute)){let R=C.length,F=e._offsetAttribute===rn.NONE?0:1,k=new Uint8Array(R/3).fill(F);I.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:k})}return new dt({attributes:I,indices:E,primitiveType:Le.LINES,boundingSphere:ae.fromEllipsoid(c),offsetAttribute:e._offsetAttribute})};var qu=TT;function ET(e){let t=y(e.radius,1),i={radii:new m(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,subdivisions:e.subdivisions};this._ellipsoidGeometry=new qu(i),this._workerName="createSphereOutlineGeometry"}ET.packedLength=qu.packedLength;ET.pack=function(e,t,n){return qu.pack(e._ellipsoidGeometry,t,n)};var j5e=new qu,q0={radius:void 0,radii:new m,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};ET.unpack=function(e,t,n){let i=qu.unpack(e,t,j5e);return q0.stackPartitions=i._stackPartitions,q0.slicePartitions=i._slicePartitions,q0.subdivisions=i._subdivisions,l(n)?(m.clone(i._radii,q0.radii),n._ellipsoidGeometry=new qu(q0),n):(q0.radius=i._radii.x,new ET(q0))};ET.createGeometry=function(e){return qu.createGeometry(e._ellipsoidGeometry)};var mg=ET;function bT(e,t){t===0&&(t=P.EPSILON7),this._boundingSphere=new ae(e,t)}Object.defineProperties(bT.prototype,{center:{get:function(){return this._boundingSphere.center}},radius:{get:function(){return this._boundingSphere.radius}},boundingVolume:{get:function(){return this._boundingSphere}},boundingSphere:{get:function(){return this._boundingSphere}}});bT.prototype.distanceToCamera=function(e){let t=this._boundingSphere;return Math.max(0,m.distance(t.center,e.camera.positionWC)-t.radius)};bT.prototype.intersectPlane=function(e){return ae.intersectPlane(this._boundingSphere,e)};bT.prototype.update=function(e,t){m.clone(e,this._boundingSphere.center),this._boundingSphere.radius=t};bT.prototype.createDebugVolume=function(e){let t=new mg({radius:this.radius}),n=B.fromTranslation(this.center,new B.clone(B.IDENTITY)),i=new Tt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:Vt.fromColor(e)}});return new wn({geometryInstances:i,appearance:new sn({translucent:!1,flat:!0}),asynchronous:!1})};var hg=bT;var Y5e=new m,q5e=new m,X5e=new m,K5e=new m;function X0(e,t,n){n=m.cross(e,t,n);let i=m.magnitude(n);return m.multiplyByScalar(n,P.EPSILON7/i,n)}function X6(e,t){let n=m.normalize(e,K5e),i=m.equalsEpsilon(n,m.UNIT_X,P.EPSILON6)?m.UNIT_Y:m.UNIT_X;return X0(e,i,t)}function xre(e){let t=Z.getColumn(e,0,Y5e),n=Z.getColumn(e,1,q5e),i=Z.getColumn(e,2,X5e),o=m.equals(t,m.ZERO),r=m.equals(n,m.ZERO),s=m.equals(i,m.ZERO);return!o&&!r&&!s?e:o&&r&&s?(e[0]=P.EPSILON7,e[4]=P.EPSILON7,e[8]=P.EPSILON7,e):(o&&!r&&!s?t=X0(n,i,t):!o&&r&&!s?n=X0(t,i,n):!o&&!r&&s?i=X0(n,t,i):o?r?s||(t=X6(i,t),n=X0(i,t,n)):(t=X6(n,t),i=X0(n,t,i)):(n=X6(t,n),i=X0(n,t,i)),Z.setColumn(e,0,t,e),Z.setColumn(e,1,n,e),Z.setColumn(e,2,i,e),e)}function ST(e,t){t=xre(t),this._orientedBoundingBox=new Bn(e,t),this._boundingSphere=ae.fromOrientedBoundingBox(this._orientedBoundingBox)}Object.defineProperties(ST.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});ST.prototype.distanceToCamera=function(e){return Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC))};ST.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};ST.prototype.update=function(e,t){m.clone(e,this._orientedBoundingBox.center),t=xre(t),Z.clone(t,this._orientedBoundingBox.halfAxes),ae.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere)};ST.prototype.createDebugVolume=function(e){let t=new im({minimum:new m(-1,-1,-1),maximum:new m(1,1,1)}),n=B.fromRotationTranslation(this.boundingVolume.halfAxes,this.boundingVolume.center),i=new Tt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:Vt.fromColor(e)}});return new wn({geometryInstances:i,appearance:new sn({translucent:!1,flat:!0}),asynchronous:!1})};var rd=ST;function Wo(e,t,n,i){this._tileset=e,this._header=n;let o=l(n.contents),r=o&&n.contents.length>1||ni(n,"3DTILES_multiple_contents"),s=o&&!r?n.contents[0]:n.content;this._contentHeader=s,this.transform=l(n.transform)?B.unpack(n.transform):B.clone(B.IDENTITY);let a=l(i)?i.computedTransform:e.modelMatrix,c=B.multiply(a,this.transform,new B),u=l(i)?i._initialTransform:B.IDENTITY;this._initialTransform=B.multiply(u,this.transform,new B),this.computedTransform=c,this._boundingVolume=this.createBoundingVolume(n.boundingVolume,c),this._boundingVolume2D=void 0;let f;l(s)&&l(s.boundingVolume)&&(f=this.createBoundingVolume(s.boundingVolume,c)),this._contentBoundingVolume=f,this._contentBoundingVolume2D=void 0;let d;l(n.viewerRequestVolume)&&(d=this.createBoundingVolume(n.viewerRequestVolume,c)),this._viewerRequestVolume=d,this.geometricError=n.geometricError,this._geometricError=n.geometricError,l(this._geometricError)||(this._geometricError=l(i)?i._geometricError:e._geometricError,Wo._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead.")),this.updateGeometricErrorScale();let p;l(n.refine)?((n.refine==="replace"||n.refine==="add")&&Wo._deprecationWarning("lowercase-refine",`This tile uses a lowercase refine "${n.refine}". Instead use "${n.refine.toUpperCase()}".`),p=n.refine.toUpperCase()==="REPLACE"?zo.REPLACE:zo.ADD):l(i)?p=i.refine:p=zo.REPLACE,this.refine=p,this.children=[],this.parent=i;let g,h=!1,A,x,C;if(t=we.createIfNeeded(t),r)A=Go.UNLOADED,x=t.clone();else if(l(s)){let v=s.uri;l(s.url)&&(Wo._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),v=s.url),v===""?(Wo._deprecationWarning("contentUriEmpty","content.uri property is an empty string, which creates a circular dependency, making this tileset invalid. Omit the content property instead"),g=new kw(e,this),h=!0,A=Go.READY):(A=Go.UNLOADED,x=t.getDerivedResource({url:v}),C=oc.getServerKey(x.getUrlComponent()))}else g=new kw(e,this),h=!0,A=Go.READY;this._content=g,this._contentResource=x,this._contentState=A,this._expiredContent=void 0,this._serverKey=C,this.hasEmptyContent=h,this.hasTilesetContent=!1,this.hasImplicitContent=!1,this.hasImplicitContentMetadata=!1,this.hasMultipleContents=r,this.metadata=XN(e,n),this.cacheNode=void 0;let T=n.expire,E,S;l(T)&&(E=T.duration,l(T.date)&&(S=ee.fromIso8601(T.date))),this.expireDuration=E,this.expireDate=S,this.lastStyleTime=0,this._optimChildrenWithinParent=td.NOT_COMPUTED,this.clippingPlanesDirty=!1,this.priorityDeferred=!1,this.implicitTileset=void 0,this.implicitCoordinates=void 0,this.implicitSubtree=void 0,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._screenSpaceErrorProgressiveResolution=0,this._visibilityPlaneMask=0,this._visible=!1,this._inRequestVolume=!1,this._finalResolution=!0,this._depth=0,this._stackLength=0,this._selectionDepth=0,this._updatedVisibilityFrame=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._clippingPlanesState=0,this._debugBoundingVolume=void 0,this._debugContentBoundingVolume=void 0,this._debugViewerRequestVolume=void 0,this._debugColor=z.fromRandom({alpha:1}),this._debugColorizeTiles=!1,this._priority=0,this._priorityHolder=this,this._priorityProgressiveResolution=!1,this._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1,this._priorityReverseScreenSpaceError=0,this._foveatedFactor=0,this._wasMinPriorityChild=!1,this._loadTimestamp=new ee,this._commandsLength=0,this._color=void 0,this._colorDirty=!1,this._request=void 0}Wo._deprecationWarning=$;Object.defineProperties(Wo.prototype,{tileset:{get:function(){return this._tileset}},content:{get:function(){return this._content}},boundingVolume:{get:function(){return this._boundingVolume}},contentBoundingVolume:{get:function(){return y(this._contentBoundingVolume,this._boundingVolume)}},boundingSphere:{get:function(){return this._boundingVolume.boundingSphere}},isVisible:{get:function(){return this._visible&&this._inRequestVolume}},extras:{get:function(){return this._header.extras}},color:{get:function(){return l(this._color)||(this._color=new z),z.clone(this._color)},set:function(e){this._color=z.clone(e,this._color),this._colorDirty=!0}},hasRenderableContent:{get:function(){return!this.hasEmptyContent&&!this.hasTilesetContent&&!this.hasImplicitContent}},contentAvailable:{get:function(){return this.contentReady&&this.hasRenderableContent||l(this._expiredContent)&&!this.contentFailed}},contentReady:{get:function(){return this._contentState===Go.READY}},contentUnloaded:{get:function(){return this._contentState===Go.UNLOADED}},hasUnloadedRenderableContent:{get:function(){return this.hasRenderableContent&&this.contentUnloaded}},contentExpired:{get:function(){return this._contentState===Go.EXPIRED}},contentFailed:{get:function(){return this._contentState===Go.FAILED}},commandsLength:{get:function(){return this._commandsLength}}});var pg=new m;function J5e(e,t){let{tileset:n,boundingSphere:i}=e,{radius:o,center:r}=i,{camera:s}=t,a=m.multiplyByScalar(s.directionWC,e._centerZDepth,pg),c=m.add(s.positionWC,a,pg),u=m.subtract(c,r,pg);if(m.magnitude(u)>o){let S=m.normalize(u,pg),v=m.multiplyByScalar(S,o,pg),D=m.add(r,v,pg),O=m.subtract(D,s.positionWC,pg),M=m.normalize(O,pg);e._foveatedFactor=1-Math.abs(m.dot(s.directionWC,M))}else e._foveatedFactor=0;let p=e.refine===zo.REPLACE,g=n.isSkippingLevelOfDetail;if(p&&!g||!n.foveatedScreenSpaceError||n.foveatedConeSize===1||e._priorityProgressiveResolution&&p&&g||n._pass===Ro.PRELOAD_FLIGHT||n._pass===Ro.PRELOAD)return!1;let h=1-Math.cos(s.frustum.fov*.5),A=n.foveatedConeSize*h;if(e._foveatedFactor<=A)return!1;let x=h-A,C=P.clamp((e._foveatedFactor-A)/x,0,1),T=n.foveatedInterpolationCallback(n.foveatedMinimumScreenSpaceErrorRelaxation,n.maximumScreenSpaceError,C),E=e._screenSpaceError===0&&l(e.parent)?e.parent._screenSpaceError*.5:e._screenSpaceError;return n.maximumScreenSpaceError-T<=E}var Ere=new ee;Wo.prototype.getScreenSpaceError=function(e,t,n){let i=this._tileset,o=y(n,1),r=l(this.parent)?this.parent.geometricError:i._scaledGeometricError,s=t?r:this.geometricError;if(s===0)return 0;let{camera:a,context:c}=e,u=a.frustum,f=c.drawingBufferWidth,d=c.drawingBufferHeight*o,p;if(e.mode===ne.SCENE2D||u instanceof tn){let g=u.offCenterFrustum;l(g)&&(u=g);let h=Math.max(u.top-u.bottom,u.right-u.left)/Math.max(f,d);p=s/h}else{let g=Math.max(this._distanceToCamera,P.EPSILON7),h=u.sseDenominator;if(p=s*d/(g*h),i.dynamicScreenSpaceError){let A=i._dynamicScreenSpaceErrorComputedDensity,x=i.dynamicScreenSpaceErrorFactor,C=P.fog(g,A)*x;p-=C}}return p/=e.pixelRatio,p};function Z5e(e,t){if(e.progressiveResolutionHeightFraction<=0||e.progressiveResolutionHeightFraction>.5)return!1;let n=t._screenSpaceErrorProgressiveResolution>e._maximumScreenSpaceError;t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1;let i=t.parent,o=e._maximumScreenSpaceError,r=t._screenSpaceErrorProgressiveResolution<=o,s=l(i)&&i._screenSpaceErrorProgressiveResolution>o;return r&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,n=!0),n}function Q5e(e,t){let n=t.parent,o=l(n)&&(!e.isSkippingLevelOfDetail||t._screenSpaceError===0||n.hasTilesetContent||n.hasImplicitContent)?n._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-o}Wo.prototype.updateVisibility=function(e){let{parent:t,tileset:n}=this;if(this._updatedVisibilityFrame===n._updatedVisibilityFrame)return;let i=l(t)?t.computedTransform:n.modelMatrix,o=l(t)?t._visibilityPlaneMask:ts.MASK_INDETERMINATE;this.updateTransform(i),this._distanceToCamera=this.distanceToTile(e),this._centerZDepth=this.distanceToTileCenter(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._screenSpaceErrorProgressiveResolution=this.getScreenSpaceError(e,!1,n.progressiveResolutionHeightFraction),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==ts.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=Q5e(n,this),this._priorityProgressiveResolution=Z5e(n,this),this.priorityDeferred=J5e(this,e),this._updatedVisibilityFrame=n._updatedVisibilityFrame};Wo.prototype.updateExpiration=function(){if(l(this.expireDate)&&this.contentReady&&!this.hasEmptyContent&&!this.hasMultipleContents){let e=ee.now(Ere);ee.lessThan(this.expireDate,e)&&(this._contentState=Go.EXPIRED,this._expiredContent=this._content)}};function $5e(e){if(!l(e.expireDuration))return;let t=ee.now(Ere);ee.addSeconds(t,e.expireDuration,t),l(e.expireDate)?ee.lessThan(e.expireDate,t)&&ee.clone(t,e.expireDate):e.expireDate=ee.clone(t)}function e6e(e){return function(){return e._priority}}Wo.prototype.requestContent=function(){if(!this.hasEmptyContent)return this.hasMultipleContents?t6e(this):i6e(this)};function t6e(e){let t=e._content,n=e._tileset;if(!l(t)){let o=ni(e._header,"3DTILES_multiple_contents")?e._header.extensions["3DTILES_multiple_contents"]:e._header;t=new KN(n,e,e._contentResource.clone(),o),e._content=t}let i=t.requestInnerContents();if(l(i))return e._contentState=Go.LOADING,i.then(o=>{if(!e.isDestroyed()&&l(o))return e._contentState=Go.PROCESSING,t}).catch(o=>{if(!e.isDestroyed())throw e._contentState=Go.FAILED,o})}async function n6e(e,t,n,i,o){let r=e._contentState;e._contentState=Go.LOADING,++t.statistics.numberOfPendingRequests;let s;try{s=await o}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;if(n.cancelled||n.state===ti.CANCELLED){e._contentState=r,++t.statistics.numberOfAttemptedRequests;return}throw e._contentState=Go.FAILED,a}if(e.isDestroyed()){--t.statistics.numberOfPendingRequests;return}if(n.cancelled||n.state===ti.CANCELLED){e._contentState=r,--t.statistics.numberOfPendingRequests,++t.statistics.numberOfAttemptedRequests;return}try{let a=await o6e(e,s);return--t.statistics.numberOfPendingRequests,e.isDestroyed()?void 0:(i&&(e.expireDate=void 0),e._content=a,e._contentState=Go.PROCESSING,a)}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;throw e._contentState=Go.FAILED,a}}function i6e(e){let t=e._contentResource.clone(),n=e.contentExpired;n&&t.setQueryParameters({expired:e.expireDate.toString()});let i=new Zo({throttle:!0,throttleByServer:!0,type:es.TILES3D,priorityFunction:e6e(e),serverKey:e._serverKey});e._request=i,t.request=i;let o=e._tileset,r=t.fetchArrayBuffer();if(!l(r)){++o.statistics.numberOfAttemptedRequests;return}return n6e(e,o,i,n,r)}async function o6e(e,t){let n=gp(t),i=e._tileset;i._disableSkipLevelOfDetail=i._disableSkipLevelOfDetail||n.contentType===xs.GEOMETRY||n.contentType===xs.VECTOR,(n.contentType===xs.IMPLICIT_SUBTREE||n.contentType===xs.IMPLICIT_SUBTREE_JSON)&&(e.hasImplicitContent=!0),n.contentType===xs.EXTERNAL_TILESET&&(e.hasTilesetContent=!0);let o,r=fT[n.contentType];if(e.isDestroyed())return;l(n.binaryPayload)?o=await Promise.resolve(r(i,e,e._contentResource,n.binaryPayload.buffer,0)):o=await Promise.resolve(r(i,e,e._contentResource,n.jsonPayload));let s=e._contentHeader;if(e.hasImplicitContentMetadata){let c=e.implicitSubtree,u=e.implicitCoordinates;o.metadata=c.getContentMetadataView(u,0)}else e.hasImplicitContent||(o.metadata=dT(i,s));let a=mT(i,s);return l(a)&&(o.group=new SC({metadata:a})),o}Wo.prototype.cancelRequests=function(){this.hasMultipleContents?this._content.cancelRequests():this._request.cancel()};Wo.prototype.unloadContent=function(){this.hasRenderableContent&&(this._content=this._content&&this._content.destroy(),this._contentState=Go.UNLOADED,this.lastStyleTime=0,this.clippingPlanesDirty=this._clippingPlanesState===0,this._clippingPlanesState=0,this._debugColorizeTiles=!1,this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy())};var bre=new ae;function J6(e,t){if(t.mode!==ne.SCENE3D&&!l(e._boundingVolume2D)){let n=e._boundingVolume.boundingSphere,i=ae.projectTo2D(n,t.mapProjection,bre);e._boundingVolume2D=new hg(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._boundingVolume2D:e._boundingVolume}function r6e(e,t){if(t.mode!==ne.SCENE3D&&!l(e._contentBoundingVolume2D)){let n=e._contentBoundingVolume.boundingSphere,i=ae.projectTo2D(n,t.mapProjection,bre);e._contentBoundingVolume2D=new hg(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._contentBoundingVolume2D:e._contentBoundingVolume}Wo.prototype.visibility=function(e,t){let n=e.cullingVolume,i=J6(this,e),o=this._tileset,r=o.clippingPlanes;if(l(r)&&r.enabled){let s=r.computeIntersectionWithBoundingVolume(i,o.clippingPlanesOriginMatrix);if(this._isClipped=s!==$t.INSIDE,s===$t.OUTSIDE)return ts.MASK_OUTSIDE}return n.computeVisibilityWithPlaneMask(i,t)};Wo.prototype.contentVisibility=function(e){if(!l(this._contentBoundingVolume))return $t.INSIDE;if(this._visibilityPlaneMask===ts.MASK_INSIDE)return $t.INSIDE;let t=e.cullingVolume,n=r6e(this,e),i=this._tileset,o=i.clippingPlanes;if(l(o)&&o.enabled){let r=o.computeIntersectionWithBoundingVolume(n,i.clippingPlanesOriginMatrix);if(this._isClipped=r!==$t.INSIDE,r===$t.OUTSIDE)return $t.OUTSIDE}return t.computeVisibility(n)};Wo.prototype.distanceToTile=function(e){return J6(this,e).distanceToCamera(e)};var s6e=new m;Wo.prototype.distanceToTileCenter=function(e){let n=J6(this,e).boundingVolume,i=m.subtract(n.center,e.camera.positionWC,s6e);return m.dot(e.camera.directionWC,i)};Wo.prototype.insideViewerRequestVolume=function(e){let t=this._viewerRequestVolume;return!l(t)||t.distanceToCamera(e)===0};var Sre=new Z,wre=new m,a6e=new Z,vre=new m,Dre=new le,c6e=new Bn,K6=new B;function l6e(e,t,n){let i=m.fromElements(e[0],e[1],e[2],vre),o=Z.fromArray(e,3,a6e);i=B.multiplyByPoint(t,i,i);let r=B.getMatrix3(t,Sre);return o=Z.multiply(r,o,o),l(n)?(n.update(i,o),n):new rd(i,o)}function u6e(e,t,n,i){let o=le.unpack(e,0,Dre),r=e[4],s=e[5],a=Bn.fromRectangle(o,r,s,oe.WGS84,c6e),c=a.center,u=a.halfAxes;t=B.multiplyTransformation(t,B.inverseTransformation(n,K6),K6),c=B.multiplyByPoint(t,c,c);let f=B.getMatrix3(t,Sre);return u=Z.multiply(f,u,u),l(i)&&i instanceof rd?(i.update(c,u),i):new rd(c,u)}function f6e(e,t,n,i){if(!B.equalsEpsilon(t,n,P.EPSILON8))return u6e(e,t,n,i);if(l(i))return i;let o=le.unpack(e,0,Dre);return new id({rectangle:o,minimumHeight:e[4],maximumHeight:e[5]})}function d6e(e,t,n){let i=m.fromElements(e[0],e[1],e[2],vre),o=e[3];i=B.multiplyByPoint(t,i,i);let r=B.getScale(t,wre),s=m.maximumComponent(r);return o*=s,l(n)?(n.update(i,o),n):new hg(i,o)}Wo.prototype.createBoundingVolume=function(e,t,n){if(!l(e))throw new de("boundingVolume must be defined");if(ni(e,"3DTILES_bounding_volume_S2"))return new iF(e.extensions["3DTILES_bounding_volume_S2"]);let{box:i,region:o,sphere:r}=e;if(l(i))return l6e(i,t,n);if(l(o))return f6e(o,t,this._initialTransform,n);if(l(r))return d6e(r,t,n);throw new de("boundingVolume must contain a sphere, region, or box")};Wo.prototype.updateTransform=function(e){e=y(e,B.IDENTITY);let t=B.multiplyTransformation(e,this.transform,K6);if(!!B.equals(t,this.computedTransform))return;B.clone(t,this.computedTransform);let i=this._header,o=this._contentHeader;this._boundingVolume=this.createBoundingVolume(i.boundingVolume,this.computedTransform,this._boundingVolume),l(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(o.boundingVolume,this.computedTransform,this._contentBoundingVolume)),l(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(i.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()};Wo.prototype.updateGeometricErrorScale=function(){let e=B.getScale(this.computedTransform,wre),t=m.maximumComponent(e);if(this.geometricError=this._geometricError*t,!l(this.parent)){let n=this._tileset;n._scaledGeometricError=n._geometricError*t}};function m6e(e,t,n,i){if(!i.isRender)return;let o=l(e._contentHeader)&&l(e._contentHeader.boundingVolume),r=t.debugShowBoundingVolume||t.debugShowContentBoundingVolume&&!o;if(r){let c;e._finalResolution?e.hasRenderableContent?c=z.WHITE:c=z.DARKGRAY:c=z.YELLOW,l(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(c)),e._debugBoundingVolume.update(n);let u=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");u.color=Vt.toValue(c,u.color)}else!r&&l(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&o?(l(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(z.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&l(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&l(e._viewerRequestVolume)?(l(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(z.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&l(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());let s=t.debugColorizeTiles&&!e._debugColorizeTiles||l(t._heatmap.tilePropertyName),a=!t.debugColorizeTiles&&e._debugColorizeTiles;s?(t._heatmap.colorize(e,n),e._debugColorizeTiles=!0,e.color=e._debugColor):a&&(e._debugColorizeTiles=!1,e.color=z.WHITE),e._colorDirty&&(e._colorDirty=!1,e._content.applyDebugSettings(!0,e._color)),a&&t.makeStyleDirty()}function h6e(e,t,n){let i=e._expiredContent;if(!e.hasMultipleContents&&l(i)){if(!e.contentReady){try{i.update(t,n)}catch{}return}e._expiredContent.destroy(),e._expiredContent=void 0}if(l(e.content))try{e.content.update(t,n)}catch(o){throw e._contentState=Go.FAILED,o}}function p6e(e,t){let n=t.clippingPlanes,i=0;l(n)&&e._isClipped&&n.enabled&&(i=n.clippingPlanesState),i!==e._clippingPlanesState&&(e._clippingPlanesState=i,e.clippingPlanesDirty=!0)}Wo.prototype.update=function(e,t,n){let{commandList:i}=t,o=i.length;p6e(this,e),m6e(this,e,t,n),h6e(this,e,t);let r=i.length;this._commandsLength=r-o;for(let s=o;s<r;++s){let a=i[s],c=a.pass===be.TRANSLUCENT;a.depthForTranslucentClassification=c}this.clippingPlanesDirty=!1};var Cre=[];Wo.prototype.process=function(e,t){!this.contentExpired&&!this.contentReady&&this._content.ready&&($5e(this),this._selectedFrame=0,this.lastStyleTime=0,ee.now(this._loadTimestamp),this._contentState=Go.READY,!this.hasTilesetContent&&!this.hasImplicitContent&&(e._statistics.incrementLoadCounts(this.content),++e._statistics.numberOfTilesWithContentReady,++e._statistics.numberOfLoadedTilesTotal,e._cache.add(this)));let n=t.commandList;t.commandList=Cre;try{this._content.update(e,t)}catch(i){throw this._contentState=Go.FAILED,i}Cre.length=0,t.commandList=n};function Tre(e,t,n){let i=e*Math.pow(10,t);return parseInt(i)*Math.pow(10,n)}function sF(e,t,n){return Math.max(P.normalize(e,t,n)-P.EPSILON7,0)}Wo.prototype.updatePriority=function(){let e=this.tileset,t=e.preferLeaves,n=e._minimumPriority,i=e._maximumPriority,o=4,r=1,s=0,a=o,c=s+a,u=o,f=c+u,d=r,p=Math.pow(10,f),g=f+d,h=r,A=Math.pow(10,g),x=g+h,C=Math.pow(10,x),T=sF(this._depth,n.depth,i.depth);T=t?1-T:T;let S=!e.isSkippingLevelOfDetail&&this.refine===zo.REPLACE?sF(this._priorityHolder._distanceToCamera,n.distance,i.distance):sF(this._priorityReverseScreenSpaceError,n.reverseScreenSpaceError,i.reverseScreenSpaceError),v=Tre(S,a,s),D=this._priorityProgressiveResolution?0:p,O=sF(this._priorityHolder._foveatedFactor,n.foveatedFactor,i.foveatedFactor),M=Tre(O,u,c),L=this.priorityDeferred?A:0,N=e._pass===Ro.PRELOAD_FLIGHT?0:C;this._priority=T+v+D+M+L+N};Wo.prototype.isDestroyed=function(){return!1};Wo.prototype.destroy=function(){return this._content=this._content&&this._content.destroy(),this._expiredContent=this._expiredContent&&!this._expiredContent.isDestroyed()&&this._expiredContent.destroy(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy(),ue(this)};var sd=Wo;function xp(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.group,i=e.class,o=l(n.properties)?n.properties:{};this._class=i,this._properties=o,this._id=t,this._extras=n.extras,this._extensions=n.extensions}Object.defineProperties(xp.prototype,{class:{get:function(){return this._class}},id:{get:function(){return this._id}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});xp.prototype.hasProperty=function(e){return Vn.hasProperty(e,this._properties,this._class)};xp.prototype.hasPropertyBySemantic=function(e){return Vn.hasPropertyBySemantic(e,this._properties,this._class)};xp.prototype.getPropertyIds=function(e){return Vn.getPropertyIds(this._properties,this._class,e)};xp.prototype.getProperty=function(e){return Vn.getProperty(e,this._properties,this._class)};xp.prototype.setProperty=function(e,t){return Vn.setProperty(e,t,this._properties,this._class)};xp.prototype.getPropertyBySemantic=function(e){return Vn.getPropertyBySemantic(e,this._properties,this._class)};xp.prototype.setPropertyBySemantic=function(e,t){return Vn.setPropertyBySemantic(e,t,this._properties,this._class)};var Yw=xp;function Cp(e){e=y(e,y.EMPTY_OBJECT);let t=e.tileset,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Cp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Cp.prototype.hasProperty=function(e){return Vn.hasProperty(e,this._properties,this._class)};Cp.prototype.hasPropertyBySemantic=function(e){return Vn.hasPropertyBySemantic(e,this._properties,this._class)};Cp.prototype.getPropertyIds=function(e){return Vn.getPropertyIds(this._properties,this._class,e)};Cp.prototype.getProperty=function(e){return Vn.getProperty(e,this._properties,this._class)};Cp.prototype.setProperty=function(e,t){return Vn.setProperty(e,t,this._properties,this._class)};Cp.prototype.getPropertyBySemantic=function(e){return Vn.getPropertyBySemantic(e,this._properties,this._class)};Cp.prototype.setPropertyBySemantic=function(e,t){return Vn.setPropertyBySemantic(e,t,this._properties,this._class)};var aF=Cp;function Ire(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataJson,n=e.schema,i=y(t.metadata,t.tileset),o;l(i)&&(o=new aF({tileset:i,class:n.classes[i.class]}));let r=[],s=[],a=t.groups;if(Array.isArray(a)){let c=a.length;for(let u=0;u<c;u++){let f=a[u];s.push(new Yw({group:f,class:n.classes[f.class]}))}}else if(l(a)){r=Object.keys(a).sort();let c=r.length;for(let u=0;u<c;u++){let f=r[u];if(a.hasOwnProperty(f)){let d=a[f];s.push(new Yw({id:f,group:a[f],class:n.classes[d.class]}))}}}this._schema=n,this._groups=s,this._groupIds=r,this._tileset=o,this._statistics=t.statistics,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Ire.prototype,{schema:{get:function(){return this._schema}},groups:{get:function(){return this._groups}},groupIds:{get:function(){return this._groupIds}},tileset:{get:function(){return this._tileset}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var K0=Ire;var Pre={},_6e=new m;Pre.checkChildrenWithinParent=function(e){let t=e.children,n=t.length,i=e.boundingVolume;if(i instanceof rd||i instanceof id){let o=i._orientedBoundingBox;e._optimChildrenWithinParent=td.USE_OPTIMIZATION;for(let r=0;r<n;++r){let a=t[r].boundingVolume;if(!(a instanceof rd||a instanceof id)){e._optimChildrenWithinParent=td.SKIP_OPTIMIZATION;break}let c=a._orientedBoundingBox,u=m.subtract(c.center,o.center,_6e),f=m.magnitude(u);m.divideByScalar(u,f,u);let d=Math.abs(o.halfAxes[0]*u.x)+Math.abs(o.halfAxes[1]*u.y)+Math.abs(o.halfAxes[2]*u.z)+Math.abs(o.halfAxes[3]*u.x)+Math.abs(o.halfAxes[4]*u.y)+Math.abs(o.halfAxes[5]*u.z)+Math.abs(o.halfAxes[6]*u.x)+Math.abs(o.halfAxes[7]*u.y)+Math.abs(o.halfAxes[8]*u.z),p=Math.abs(c.halfAxes[0]*u.x)+Math.abs(c.halfAxes[1]*u.y)+Math.abs(c.halfAxes[2]*u.z)+Math.abs(c.halfAxes[3]*u.x)+Math.abs(c.halfAxes[4]*u.y)+Math.abs(c.halfAxes[5]*u.z)+Math.abs(c.halfAxes[6]*u.x)+Math.abs(c.halfAxes[7]*u.y)+Math.abs(c.halfAxes[8]*u.z);if(d<=p+f){e._optimChildrenWithinParent=td.SKIP_OPTIMIZATION;break}}}return e._optimChildrenWithinParent===td.USE_OPTIMIZATION};var cF=Pre;function qw(){this.head=void 0,this.tail=void 0,this._length=0}Object.defineProperties(qw.prototype,{length:{get:function(){return this._length}}});function g6e(e,t,n){this.item=e,this.previous=t,this.next=n}qw.prototype.add=function(e){let t=new g6e(e,this.tail,void 0);return l(this.tail)?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t};function Ore(e,t){l(t.previous)&&l(t.next)?(t.previous.next=t.next,t.next.previous=t.previous):l(t.previous)?(t.previous.next=void 0,e.tail=t.previous):l(t.next)?(t.next.previous=void 0,e.head=t.next):(e.head=void 0,e.tail=void 0),t.next=void 0,t.previous=void 0}qw.prototype.remove=function(e){l(e)&&(Ore(this,e),--this._length)};qw.prototype.splice=function(e,t){if(e===t)return;Ore(this,t);let n=e.next;e.next=t,this.tail===e?this.tail=t:n.previous=t,t.next=n,t.previous=e};var lF=qw;function J0(){this._list=new lF,this._sentinel=this._list.add(),this._trimTiles=!1}J0.prototype.reset=function(){this._list.splice(this._list.tail,this._sentinel)};J0.prototype.touch=function(e){let t=e.cacheNode;l(t)&&this._list.splice(this._sentinel,t)};J0.prototype.add=function(e){l(e.cacheNode)||(e.cacheNode=this._list.add(e))};J0.prototype.unloadTile=function(e,t,n){let i=t.cacheNode;l(i)&&(this._list.remove(i),t.cacheNode=void 0,n(e,t))};J0.prototype.unloadTiles=function(e,t){let n=this._trimTiles;this._trimTiles=!1;let i=this._list,o=e.maximumMemoryUsage*1024*1024,r=this._sentinel,s=i.head;for(;s!==r&&(e.totalMemoryUsageInBytes>o||n);){let a=s.item;s=s.next,this.unloadTile(e,a,t)}};J0.prototype.trim=function(){this._trimTiles=!0};var uF=J0;function fF(e){this.tilePropertyName=e,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE,this._previousMinimum=Number.MAX_VALUE,this._previousMaximum=-Number.MAX_VALUE,this._referenceMinimum={},this._referenceMaximum={}}function Q6(e,t){let n;return t==="_loadTimestamp"?n=ee.toDate(e).getTime():n=e,n}fF.prototype.setReferenceMinimumMaximum=function(e,t,n){this._referenceMinimum[n]=Q6(e,n),this._referenceMaximum[n]=Q6(t,n)};function y6e(e,t){let n=e.tilePropertyName;if(l(n)){let i=Q6(t[n],n);return l(i)?(e._maximum=Math.max(i,e._maximum),e._minimum=Math.min(i,e._minimum),i):(e.tilePropertyName=void 0,i)}}var Z6=[new z(.1,.1,.1,1),new z(.153,.278,.878,1),new z(.827,.231,.49,1),new z(.827,.188,.22,1),new z(1,.592,.259,1),new z(1,.843,0,1)];fF.prototype.colorize=function(e,t){let n=this.tilePropertyName;if(!l(n)||!e.contentAvailable||e._selectedFrame!==t.frameNumber)return;let i=y6e(this,e),o=this._previousMinimum,r=this._previousMaximum;if(o===Number.MAX_VALUE||r===-Number.MAX_VALUE)return;let s=r-o+P.EPSILON7,c=P.clamp(i-o,0,s)/s,u=Z6.length-1,f=c*u,d=Math.floor(f),p=Math.ceil(f),g=f-d,h=Z6[d],A=Z6[p],x=z.clone(z.WHITE);x.red=P.lerp(h.red,A.red,g),x.green=P.lerp(h.green,A.green,g),x.blue=P.lerp(h.blue,A.blue,g),e._debugColor=x};fF.prototype.resetMinimumMaximum=function(){let e=this.tilePropertyName;if(l(e)){let t=this._referenceMinimum[e],n=this._referenceMaximum[e],i=l(t)&&l(n);this._previousMinimum=i?t:this._minimum,this._previousMaximum=i?n:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}};var dF=fF;function wT(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfPendingRequests=0,this.numberOfTilesProcessing=0,this.numberOfTilesWithContentReady=0,this.numberOfTilesTotal=0,this.numberOfLoadedTilesTotal=0,this.numberOfFeaturesSelected=0,this.numberOfFeaturesLoaded=0,this.numberOfPointsSelected=0,this.numberOfPointsLoaded=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0,this.geometryByteLength=0,this.texturesByteLength=0,this.batchTableByteLength=0}wT.prototype.clear=function(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfFeaturesSelected=0,this.numberOfPointsSelected=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0};function mF(e,t,n,i){let o=t.innerContents,r=t.pointsLength,s=t.trianglesLength,a=t.featuresLength,c=t.geometryByteLength,u=t.texturesByteLength,f=t.batchTableByteLength;if(i?(e.numberOfFeaturesLoaded+=n?-a:a,e.numberOfPointsLoaded+=n?-r:r,e.geometryByteLength+=n?-c:c,e.texturesByteLength+=n?-u:u,e.batchTableByteLength+=n?-f:f):(e.numberOfFeaturesSelected+=n?-a:a,e.numberOfPointsSelected+=n?-r:r,e.numberOfTrianglesSelected+=n?-s:s),l(o)){let d=o.length;for(let p=0;p<d;++p)mF(e,o[p],n,i)}}wT.prototype.incrementSelectionCounts=function(e){mF(this,e,!1,!1)};wT.prototype.incrementLoadCounts=function(e){mF(this,e,!1,!0)};wT.prototype.decrementLoadCounts=function(e){mF(this,e,!0,!0)};wT.clone=function(e,t){t.selected=e.selected,t.visited=e.visited,t.numberOfCommands=e.numberOfCommands,t.selected=e.selected,t.numberOfAttemptedRequests=e.numberOfAttemptedRequests,t.numberOfPendingRequests=e.numberOfPendingRequests,t.numberOfTilesProcessing=e.numberOfTilesProcessing,t.numberOfTilesWithContentReady=e.numberOfTilesWithContentReady,t.numberOfTilesTotal=e.numberOfTilesTotal,t.numberOfFeaturesSelected=e.numberOfFeaturesSelected,t.numberOfFeaturesLoaded=e.numberOfFeaturesLoaded,t.numberOfPointsSelected=e.numberOfPointsSelected,t.numberOfPointsLoaded=e.numberOfPointsLoaded,t.numberOfTrianglesSelected=e.numberOfTrianglesSelected,t.numberOfTilesStyled=e.numberOfTilesStyled,t.numberOfFeaturesStyled=e.numberOfFeaturesStyled,t.numberOfTilesCulledWithChildrenUnion=e.numberOfTilesCulledWithChildrenUnion,t.geometryByteLength=e.geometryByteLength,t.texturesByteLength=e.texturesByteLength,t.batchTableByteLength=e.batchTableByteLength};var _g=wT;function Xw(){this._style=void 0,this._styleDirty=!1,this._lastStyleTime=0}Object.defineProperties(Xw.prototype,{style:{get:function(){return this._style},set:function(e){e!==this._style&&(this._style=e,this._styleDirty=!0)}}});Xw.prototype.makeDirty=function(){this._styleDirty=!0};Xw.prototype.resetDirty=function(){this._styleDirty=!1};Xw.prototype.applyStyle=function(e){if(!l(e.root)||l(this._style)&&!this._style._ready)return;let t=this._styleDirty;t&&++this._lastStyleTime;let n=this._lastStyleTime,i=e._statistics,o=t?e._selectedTiles:e._selectedTilesToStyle,r=o.length;for(let s=0;s<r;++s){let a=o[s];if(a.lastStyleTime!==n){let c=a.content;a.lastStyleTime=n,c.applyStyle(this._style),i.numberOfFeaturesStyled+=c.featuresLength,++i.numberOfTilesStyled}}};var hF=Xw;function A6e(e,t,n){let i=ni(t,"3DTILES_implicit_tiling")?t.extensions["3DTILES_implicit_tiling"]:t.implicitTiling;this.baseResource=e,this.geometricError=t.geometricError,this.metadataSchema=n;let o=t.boundingVolume;if(!l(o.box)&&!l(o.region)&&!ni(o,"3DTILES_bounding_volume_S2")&&!ni(o,"3DTILES_bounding_volume_cylinder"))throw new de("Only box, region, 3DTILES_bounding_volume_S2, and 3DTILES_bounding_volume_cylinder are supported for implicit tiling");this.boundingVolume=o,this.refine=t.refine,this.subtreeUriTemplate=new we({url:i.subtrees.uri}),this.contentUriTemplates=[],this.contentHeaders=[];let r=x6e(t);for(let s=0;s<r.length;s++){let a=r[s];this.contentHeaders.push(Ye(a,!0));let c=new we({url:a.uri});this.contentUriTemplates.push(c)}this.contentCount=this.contentHeaders.length,this.tileHeader=C6e(t),this.subdivisionScheme=jr[i.subdivisionScheme],this.branchingFactor=jr.getBranchingFactor(this.subdivisionScheme),this.subtreeLevels=i.subtreeLevels,l(i.availableLevels)?this.availableLevels=i.availableLevels:this.availableLevels=i.maximumLevel+1}function x6e(e){if(ni(e,"3DTILES_multiple_contents")){let t=e.extensions["3DTILES_multiple_contents"];return l(t.contents)?t.contents:t.content}return l(e.contents)?e.contents:l(e.content)?[e.content]:[]}function C6e(e){let t=Ye(e,!0);return l(t.extensions)&&(delete t.extensions["3DTILES_implicit_tiling"],delete t.extensions["3DTILES_multiple_contents"],Object.keys(t.extensions).length===0&&delete t.extensions),delete t.implicitTiling,delete t.contents,delete t.content,t}var Z0=A6e;var Kw={};function Mre(e){return e=(e^e<<8)&16711935,e=(e^e<<4)&252645135,e=(e^e<<2)&858993459,e=(e^e<<1)&1431655765,e}function $6(e){return e=(e^e<<16)&50331903,e=(e^e<<8)&50393103,e=(e^e<<4)&51130563,e=(e^e<<2)&153391689,e}function Rre(e){return e&=1431655765,e=(e^e>>1)&858993459,e=(e^e>>2)&252645135,e=(e^e>>4)&16711935,e=(e^e>>8)&65535,e}function e9(e){return e&=153391689,e=(e^e>>2)&51130563,e=(e^e>>4)&50393103,e=(e^e>>8)&4278190335,e=(e^e>>16)&1023,e}Kw.encode2D=function(e,t){return(Mre(e)|Mre(t)<<1)>>>0};Kw.decode2D=function(e,t){return l(t)||(t=new Array(2)),t[0]=Rre(e),t[1]=Rre(e>>1),t};Kw.encode3D=function(e,t,n){return $6(e)|$6(t)<<1|$6(n)<<2};Kw.decode3D=function(e,t){return l(t)||(t=new Array(3)),t[0]=e9(e),t[1]=e9(e>>1),t[2]=e9(e>>2),t};var Q0=Kw;function Bo(e){this.subdivisionScheme=e.subdivisionScheme,this.subtreeLevels=e.subtreeLevels,this.level=e.level,this.x=e.x,this.y=e.y,this.z=void 0,e.subdivisionScheme===jr.OCTREE&&(this.z=e.z)}Object.defineProperties(Bo.prototype,{childIndex:{get:function(){let e=0;return e|=this.x&1,e|=(this.y&1)<<1,this.subdivisionScheme===jr.OCTREE&&(e|=(this.z&1)<<2),e}},mortonIndex:{get:function(){return this.subdivisionScheme===jr.OCTREE?Q0.encode3D(this.x,this.y,this.z):Q0.encode2D(this.x,this.y)}},tileIndex:{get:function(){let e=this.subdivisionScheme===jr.OCTREE?((1<<3*this.level)-1)/7:((1<<2*this.level)-1)/3,t=this.mortonIndex;return e+t}}});Bo.prototype.getDescendantCoordinates=function(e){let t=this.level+e.level,n=(this.x<<e.level)+e.x,i=(this.y<<e.level)+e.y;if(this.subdivisionScheme===jr.OCTREE){let o=(this.z<<e.level)+e.z;return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};Bo.prototype.getAncestorCoordinates=function(e){let t=1<<e,n=this.level-e,i=Math.floor(this.x/t),o=Math.floor(this.y/t);if(this.subdivisionScheme===jr.OCTREE){let r=Math.floor(this.z/t);return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o,z:r})}return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o})};Bo.prototype.getOffsetCoordinates=function(e){let t=e.level-this.level,n=1<<t,i=e.x%n,o=e.y%n;if(this.subdivisionScheme===jr.OCTREE){let r=e.z%n;return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o,z:r})}return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o})};Bo.prototype.getChildCoordinates=function(e){let t=this.level+1,n=2*this.x+e%2,i=2*this.y+Math.floor(e/2)%2;if(this.subdivisionScheme===jr.OCTREE){let o=2*this.z+Math.floor(e/4)%2;return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};Bo.prototype.getSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels)};Bo.prototype.getParentSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels+this.subtreeLevels)};Bo.prototype.isAncestor=function(e){let t=e.level-this.level;if(t<=0)return!1;let n=e.x>>t,i=e.y>>t,o=this.x===n,r=this.y===i;if(this.subdivisionScheme===jr.OCTREE){let s=e.z>>t,a=this.z===s;return o&&r&&a}return o&&r};Bo.prototype.isEqual=function(e){return this.subdivisionScheme===e.subdivisionScheme&&this.subtreeLevels===e.subtreeLevels&&this.level===e.level&&this.x===e.x&&this.y===e.y&&(this.subdivisionScheme===jr.OCTREE?this.z===e.z:!0)};Bo.prototype.isImplicitTilesetRoot=function(){return this.level===0};Bo.prototype.isSubtreeRoot=function(){return this.level%this.subtreeLevels===0};Bo.prototype.isBottomOfSubtree=function(){return this.level%this.subtreeLevels===this.subtreeLevels-1};Bo.prototype.getTemplateValues=function(){let e={level:this.level,x:this.x,y:this.y};return this.subdivisionScheme===jr.OCTREE&&(e.z=this.z),e};var Bre=[0,0,0];Bo.fromMortonIndex=function(e,t,n,i){let o;return e===jr.OCTREE?(o=Q0.decode3D(i,Bre),new Bo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1],z:o[2]})):(o=Q0.decode2D(i,Bre),new Bo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1]}))};Bo.fromTileIndex=function(e,t,n){let i,o,r;return e===jr.OCTREE?(i=Math.floor(P.log2(7*n+1)/3),o=((1<<3*i)-1)/7,r=n-o):(i=Math.floor(P.log2(3*n+1)/2),o=((1<<2*i)-1)/3,r=n-o),Bo.fromMortonIndex(e,t,i,r)};var vT=Bo;function Tp(){}Tp.selectTiles=function(e,t){fe.throwInstantiationError()};Tp.sortChildrenByDistanceToCamera=function(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera};Tp.canTraverse=function(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:e._screenSpaceError>e.tileset._maximumScreenSpaceError};Tp.selectTile=function(e,t){if(e.contentVisibility(t)===$t.OUTSIDE)return;let{content:n,tileset:i}=e;n.featurePropertiesDirty?(n.featurePropertiesDirty=!1,e.lastStyleTime=0,i._selectedTilesToStyle.push(e)):e._selectedFrame<t.frameNumber-1&&i._selectedTilesToStyle.push(e),e._selectedFrame=t.frameNumber,i._selectedTiles.push(e)};Tp.visitTile=function(e,t){++e.tileset._statistics.visited,e._visitedFrame=t.frameNumber};Tp.touchTile=function(e,t){e._touchedFrame!==t.frameNumber&&(e.tileset._cache.touch(e),e._touchedFrame=t.frameNumber)};Tp.loadTile=function(e,t){let{tileset:n}=e;if(e._requestedFrame===t.frameNumber||!e.hasUnloadedRenderableContent&&!e.contentExpired||!T6e(e,t))return;let i=t.camera.timeSinceMoved<n.foveatedTimeDelay;e.priorityDeferred&&i||(e._requestedFrame=t.frameNumber,n._requestedTiles.push(e))};function T6e(e,t){let{tileset:n}=e;if(!n._cullRequestsWhileMoving)return!0;let{positionWCDeltaMagnitude:i,positionWCDeltaMagnitudeLastFrame:o}=t.camera,r=i!==0?i:o,s=Math.max(e.boundingSphere.radius*2,1);return n.cullRequestsWhileMovingMultiplier*r/s<1}Tp.updateTile=function(e,t){Lre(e,t),e.updateExpiration(),e._wasMinPriorityChild=!1,e._priorityHolder=e,S6e(e),e._shouldSelect=!1,e._finalResolution=!0};function Lre(e,t){if(e.updateVisibility(t),!e.isVisible)return;let n=e.children.length>0;if((e.hasTilesetContent||e.hasImplicitContent)&&n){let r=e.children[0];Lre(r,t),e._visible=r._visible;return}if(E6e(e,t)){e._visible=!1;return}let i=e.refine===zo.REPLACE,o=e._optimChildrenWithinParent===td.USE_OPTIMIZATION;if(i&&o&&n&&!b6e(e,t)){++e.tileset._statistics.numberOfTilesCulledWithChildrenUnion,e._visible=!1;return}}function E6e(e,t){let{parent:n,tileset:i}=e;return!l(n)||n.hasTilesetContent||n.hasImplicitContent||n.refine!==zo.ADD?!1:e.getScreenSpaceError(t,!0)<=i._maximumScreenSpaceError}function b6e(e,t){let n=!1,i=e.children;for(let o=0;o<i.length;++o){let r=i[o];r.updateVisibility(t),n=n||r.isVisible}return n}function S6e(e){let t=e.tileset._minimumPriority,n=e.tileset._maximumPriority,i=e._priorityHolder;n.distance=Math.max(i._distanceToCamera,n.distance),t.distance=Math.min(i._distanceToCamera,t.distance),n.depth=Math.max(e._depth,n.depth),t.depth=Math.min(e._depth,t.depth),n.foveatedFactor=Math.max(i._foveatedFactor,n.foveatedFactor),t.foveatedFactor=Math.min(i._foveatedFactor,t.foveatedFactor),n.reverseScreenSpaceError=Math.max(e._priorityReverseScreenSpaceError,n.reverseScreenSpaceError),t.reverseScreenSpaceError=Math.min(e._priorityReverseScreenSpaceError,t.reverseScreenSpaceError)}var ks=Tp;function Nre(){}var Jw={stack:new Jc,stackMaximumLength:0};Nre.selectTiles=function(e,t){e._selectedTiles.length=0,e._requestedTiles.length=0,e.hasMixedContent=!1;let n=!0,i=e.root;if(i.updateVisibility(t),!i.isVisible)return n;let{touchTile:o,visitTile:r}=ks,s=Jw.stack;for(s.push(i);s.length>0;){Jw.stackMaximumLength=Math.max(Jw.stackMaximumLength,s.length);let a=s.pop(),c=a.refine===zo.ADD,u=a.refine===zo.REPLACE,f=w6e(a);f&&v6e(a,s,t),(c||u&&!f)&&(D6e(e,a),o(a,t),I6e(a,t),a.hasRenderableContent&&!a.contentAvailable&&(n=!1)),r(a,t)}return Jw.stack.trim(Jw.stackMaximumLength),n};function w6e(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:(e.hasEmptyContent,!0)}function v6e(e,t,n){let{children:i}=e;for(let o=0;o<i.length;++o){let r=i[o];r.updateVisibility(n),r.isVisible&&t.push(r)}}function D6e(e,t){(t.hasUnloadedRenderableContent||t.contentExpired)&&(t._priority=0,e._requestedTiles.push(t))}function I6e(e,t){e.contentAvailable&&e.contentVisibility(t)!==$t.OUTSIDE&&e.tileset._selectedTiles.push(e)}var pF=Nre;function Fre(){}var Zw={stack:new Jc,stackMaximumLength:0},Qw={stack:new Jc,stackMaximumLength:0};Fre.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(ks.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e._maximumScreenSpaceError)return;O6e(n,t),Zw.stack.trim(Zw.stackMaximumLength),Qw.stack.trim(Qw.stackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function t9(e,t){e.contentAvailable&&ks.selectTile(e,t)}function P6e(e,t,n){let i=e.refine===zo.REPLACE,{tileset:o,children:r}=e,{updateTile:s,loadTile:a,touchTile:c}=ks;for(let h=0;h<r.length;++h)s(r[h],n);r.sort(ks.sortChildrenByDistanceToCamera);let u=i&&e.hasRenderableContent,f=!0,d=!1,p=-1,g=Number.MAX_VALUE;for(let h=0;h<r.length;++h){let A=r[h];if(A.isVisible?(t.push(A),A._foveatedFactor<g&&(p=h,g=A._foveatedFactor),d=!0):(u||o.loadSiblings)&&(A._foveatedFactor<g&&(p=h,g=A._foveatedFactor),a(A,n),c(A,n)),u){let x;A._inRequestVolume?A.hasRenderableContent?x=A.contentAvailable:x=M6e(A,n):x=!1,f=f&&x}}if(d||(f=!1),p!==-1&&i){let h=r[p];h._wasMinPriorityChild=!0;let A=(e._wasMinPriorityChild||e===o.root)&&g<=e._priorityHolder._foveatedFactor?e._priorityHolder:e;A._foveatedFactor=Math.min(h._foveatedFactor,A._foveatedFactor),A._distanceToCamera=Math.min(h._distanceToCamera,A._distanceToCamera);for(let x=0;x<r.length;++x)r[x]._priorityHolder=A}return f}function O6e(e,t){let{tileset:n}=e,{canTraverse:i,loadTile:o,visitTile:r,touchTile:s}=ks,a=Zw.stack;for(a.push(e);a.length>0;){Zw.stackMaximumLength=Math.max(Zw.stackMaximumLength,a.length);let c=a.pop(),u=c.parent,f=!l(u)||u._refines;c._refines=i(c)?P6e(c,a,t)&&f:!1;let d=!c._refines&&f;c.hasRenderableContent?c.refine===zo.ADD?(t9(c,t),o(c,t)):c.refine===zo.REPLACE&&(o(c,t),d&&t9(c,t)):(n._emptyTiles.push(c),o(c,t),d&&t9(c,t)),r(c,t),s(c,t)}}function M6e(e,t){let{canTraverse:n,updateTile:i,loadTile:o,touchTile:r}=ks,s=!0,a=Qw.stack;for(a.push(e);a.length>0;){Qw.stackMaximumLength=Math.max(Qw.stackMaximumLength,a.length);let c=a.pop(),u=c.children,f=u.length,d=!c.hasRenderableContent&&n(c),p=!c.hasRenderableContent&&c.children.length===0;if(!d&&!c.contentAvailable&&!p&&(s=!1),i(c,t),c.isVisible||(o(c,t),r(c,t)),d)for(let g=0;g<f;++g){let h=u[g];a.push(h)}}return s}var _F=Fre;function Ure(){}var $w={stack:new Jc,stackMaximumLength:0},ev={stack:new Jc,stackMaximumLength:0},Ep={stack:new Jc,stackMaximumLength:0,ancestorStack:new Jc,ancestorStackMaximumLength:0},R6e=2;Ure.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(ks.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e._maximumScreenSpaceError)return;V6e(n,t),k6e(n,t),$w.stack.trim($w.stackMaximumLength),ev.stack.trim(ev.stackMaximumLength),Ep.stack.trim(Ep.stackMaximumLength),Ep.ancestorStack.trim(Ep.ancestorStackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function B6e(e,t){let{updateTile:n,touchTile:i,selectTile:o}=ks,r=ev.stack;for(r.push(e);r.length>0;){ev.stackMaximumLength=Math.max(ev.stackMaximumLength,r.length);let a=r.pop().children;for(let c=0;c<a.length;++c){let u=a[c];u.isVisible&&(u.contentAvailable?(n(u,t),i(u,t),o(u,t)):u._depth-e._depth<R6e&&r.push(u))}}}function gF(e,t){let n=e.contentAvailable?e:e._ancestorWithContentAvailable;l(n)?n._shouldSelect=!0:B6e(e,t)}function L6e(e,t){e._ancestorWithContent=void 0,e._ancestorWithContentAvailable=void 0;let{parent:n}=e;if(!l(n))return;let i=!n.hasUnloadedRenderableContent||n._requestedFrame===t.frameNumber;e._ancestorWithContent=i?n:n._ancestorWithContent,e._ancestorWithContentAvailable=n.contentAvailable?n:n._ancestorWithContentAvailable}function N6e(e,t){let n=t._ancestorWithContent;return!e.immediatelyLoadDesiredLevelOfDetail&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf||l(n)&&t._screenSpaceError<n._screenSpaceError/e.skipScreenSpaceErrorFactor&&t._depth>n._depth+e.skipLevels)}function F6e(e,t,n){let{tileset:i,children:o}=e,{updateTile:r,loadTile:s,touchTile:a}=ks;for(let u=0;u<o.length;++u)r(o[u],n);o.sort(ks.sortChildrenByDistanceToCamera);let c=!1;for(let u=0;u<o.length;++u){let f=o[u];f.isVisible?(t.push(f),c=!0):i.loadSiblings&&(s(f,n),a(f,n))}return c}function U6e(e,t){let{tileset:n}=e;return n.immediatelyLoadDesiredLevelOfDetail?!1:l(e._ancestorWithContent)?e._screenSpaceError===0?e.parent._screenSpaceError>t:e._screenSpaceError>t:!0}function V6e(e,t){let{tileset:n}=e,i=n.immediatelyLoadDesiredLevelOfDetail?Number.MAX_VALUE:Math.max(n.baseScreenSpaceError,n.maximumScreenSpaceError),{canTraverse:o,loadTile:r,visitTile:s,touchTile:a}=ks,c=$w.stack;for(c.push(e);c.length>0;){$w.stackMaximumLength=Math.max($w.stackMaximumLength,c.length);let u=c.pop();L6e(u,t);let f=u.parent,d=!l(f)||f._refines;u._refines=o(u)?F6e(u,c,t)&&d:!1;let p=!u._refines&&d;u.hasRenderableContent?u.refine===zo.ADD?(gF(u,t),r(u,t)):u.refine===zo.REPLACE&&(U6e(u,i)?(r(u,t),p&&gF(u,t)):p?(gF(u,t),r(u,t)):N6e(n,u)&&r(u,t)):(n._emptyTiles.push(u),r(u,t),p&&gF(u,t)),s(u,t),a(u,t)}}function k6e(e,t){let{selectTile:n,canTraverse:i}=ks,{stack:o,ancestorStack:r}=Ep,s;for(o.push(e);o.length>0||r.length>0;){if(Ep.stackMaximumLength=Math.max(Ep.stackMaximumLength,o.length),Ep.ancestorStackMaximumLength=Math.max(Ep.ancestorStackMaximumLength,r.length),r.length>0){let u=r.peek();if(u._stackLength===o.length){r.pop(),u!==s&&(u._finalResolution=!1),n(u,t);continue}}let a=o.pop();if(!l(a))continue;let c=i(a);if(a._shouldSelect)if(a.refine===zo.ADD)n(a,t);else{if(a._selectionDepth=r.length,a._selectionDepth>0&&(a.tileset.hasMixedContent=!0),s=a,!c){n(a,t);continue}r.push(a),a._stackLength=o.length}if(c){let u=a.children;for(let f=0;f<u.length;++f){let d=u[f];d.isVisible&&o.push(d)}}}}var yF=Ure;function fr(e){e=y(e,y.EMPTY_OBJECT),this._url=void 0,this._basePath=void 0,this._root=void 0,this._resource=void 0,this._asset=void 0,this._properties=void 0,this._geometricError=void 0,this._scaledGeometricError=void 0,this._extensionsUsed=void 0,this._extensions=void 0,this._modelUpAxis=void 0,this._modelForwardAxis=void 0,this._cache=new uF,this._processingQueue=[],this._selectedTiles=[],this._emptyTiles=[],this._requestedTiles=[],this._selectedTilesToStyle=[],this._loadTimestamp=void 0,this._timeSinceLoad=0,this._updatedVisibilityFrame=0,this._updatedModelMatrixFrame=0,this._modelMatrixChanged=!1,this._previousModelMatrix=void 0,this._extras=void 0,this._credits=void 0,this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._cullWithChildrenBounds=y(e.cullWithChildrenBounds,!0),this._allTilesAdditive=!0,this._hasMixedContent=!1,this._stencilClearCommand=void 0,this._backfaceCommands=new Jc,this._maximumScreenSpaceError=y(e.maximumScreenSpaceError,16),this._maximumMemoryUsage=y(e.maximumMemoryUsage,512),this._styleEngine=new hF,this._styleApplied=!1,this._modelMatrix=l(e.modelMatrix)?B.clone(e.modelMatrix):B.clone(B.IDENTITY),this._statistics=new _g,this._statisticsLast=new _g,this._statisticsPerPass=new Array(Ro.NUMBER_OF_PASSES);for(let i=0;i<Ro.NUMBER_OF_PASSES;++i)this._statisticsPerPass[i]=new _g;this._requestedTilesInFlight=[],this._maximumPriority={foveatedFactor:-Number.MAX_VALUE,depth:-Number.MAX_VALUE,distance:-Number.MAX_VALUE,reverseScreenSpaceError:-Number.MAX_VALUE},this._minimumPriority={foveatedFactor:Number.MAX_VALUE,depth:Number.MAX_VALUE,distance:Number.MAX_VALUE,reverseScreenSpaceError:Number.MAX_VALUE},this._heatmap=new dF(e.debugHeatmapTilePropertyName),this.cullRequestsWhileMoving=y(e.cullRequestsWhileMoving,!0),this._cullRequestsWhileMoving=!1,this.cullRequestsWhileMovingMultiplier=y(e.cullRequestsWhileMovingMultiplier,60),this.progressiveResolutionHeightFraction=P.clamp(y(e.progressiveResolutionHeightFraction,.3),0,.5),this.preferLeaves=y(e.preferLeaves,!1),this._tilesLoaded=!1,this._initialTilesLoaded=!1,this._tileDebugLabels=void 0,this._classificationType=e.classificationType,this._ellipsoid=y(e.ellipsoid,oe.WGS84),this._initialClippingPlanesOriginMatrix=B.IDENTITY,this._clippingPlanesOriginMatrix=void 0,this._clippingPlanesOriginMatrixDirty=!0,this._vectorClassificationOnly=y(e.vectorClassificationOnly,!1),this._vectorKeepDecodedPositions=y(e.vectorKeepDecodedPositions,!1),this.preloadWhenHidden=y(e.preloadWhenHidden,!1),this.preloadFlightDestinations=y(e.preloadFlightDestinations,!0),this._pass=void 0,this.dynamicScreenSpaceError=y(e.dynamicScreenSpaceError,!1),this.foveatedScreenSpaceError=y(e.foveatedScreenSpaceError,!0),this._foveatedConeSize=y(e.foveatedConeSize,.1),this._foveatedMinimumScreenSpaceErrorRelaxation=y(e.foveatedMinimumScreenSpaceErrorRelaxation,0),this.foveatedInterpolationCallback=y(e.foveatedInterpolationCallback,P.lerp),this.foveatedTimeDelay=y(e.foveatedTimeDelay,.2),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorFactor=4,this.dynamicScreenSpaceErrorHeightFalloff=.25,this._dynamicScreenSpaceErrorComputedDensity=0,this.shadows=y(e.shadows,xn.ENABLED),this.show=y(e.show,!0),this.colorBlendMode=Nl.HIGHLIGHT,this.colorBlendAmount=.5,this._pointCloudShading=new Qh(e.pointCloudShading),this._pointCloudEyeDomeLighting=new X_,this.loadProgress=new ge,this.allTilesLoaded=new ge,this.initialTilesLoaded=new ge,this.tileLoad=new ge,this.tileUnload=new ge,this.tileFailed=new ge,this.tileVisible=new ge,this.skipLevelOfDetail=y(e.skipLevelOfDetail,!1),this._disableSkipLevelOfDetail=!1,this.baseScreenSpaceError=y(e.baseScreenSpaceError,1024),this.skipScreenSpaceErrorFactor=y(e.skipScreenSpaceErrorFactor,16),this.skipLevels=y(e.skipLevels,1),this.immediatelyLoadDesiredLevelOfDetail=y(e.immediatelyLoadDesiredLevelOfDetail,!1),this.loadSiblings=y(e.loadSiblings,!1),this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,l(e.imageBasedLighting)?(this._imageBasedLighting=e.imageBasedLighting,this._shouldDestroyImageBasedLighting=!1):(this._imageBasedLighting=new bC,this._shouldDestroyImageBasedLighting=!0),this.lightColor=e.lightColor,this.backFaceCulling=y(e.backFaceCulling,!0),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,z.BLACK),this.splitDirection=y(e.splitDirection,el.NONE),this._projectTo2D=y(e.projectTo2D,!1),this.debugFreezeFrame=y(e.debugFreezeFrame,!1),this.debugColorizeTiles=y(e.debugColorizeTiles,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this.debugWireframe=y(e.debugWireframe,!1),this.debugWireframe===!0&&this._enableDebugWireframe===!1&&Mt("tileset-debug-wireframe-ignored","enableDebugWireframe must be set to true in the Cesium3DTileset constructor, otherwise debugWireframe will be ignored."),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowContentBoundingVolume=y(e.debugShowContentBoundingVolume,!1),this.debugShowViewerRequestVolume=y(e.debugShowViewerRequestVolume,!1),this._tileDebugLabels=void 0,this.debugPickedTileLabelOnly=!1,this.debugPickedTile=void 0,this.debugPickPosition=void 0,this.debugShowGeometricError=y(e.debugShowGeometricError,!1),this.debugShowRenderingStatistics=y(e.debugShowRenderingStatistics,!1),this.debugShowMemoryUsage=y(e.debugShowMemoryUsage,!1),this.debugShowUrl=y(e.debugShowUrl,!1),this.examineVectorLinesFunction=void 0,this._metadataExtension=void 0,this._customShader=e.customShader;let t=y(e.featureIdLabel,"featureId_0");typeof t=="number"&&(t=`featureId_${t}`),this._featureIdLabel=t;let n=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");if(typeof n=="number"&&(n=`instanceFeatureId_${n}`),this._instanceFeatureIdLabel=n,l(e.url)){$("Cesium3DTileset options.url","Cesium3DTileset constructor parameter options.url was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTileset.fromUrl instead.");let i=this,o;this._readyPromise=Promise.resolve(e.url).then(function(r){let s;return o=we.createIfNeeded(r),i._resource=o,i._credits=o.credits,o.extension==="json"?s=o.getBaseUri(!0):o.isDataUri&&(s=""),i._url=o.url,i._basePath=s,fr.loadJson(o)}).then(function(r){if(!i.isDestroyed())return Hre(o,r).then(s=>(i._metadataExtension=s,r))}).then(function(r){if(i.isDestroyed())return;i._geometricError=r.geometricError,i._scaledGeometricError=r.geometricError,i._root=i.loadTileset(o,r);let s=l(r.asset.gltfUpAxis)?ho.fromName(r.asset.gltfUpAxis):ho.Y,a=y(e.modelUpAxis,s),c=y(e.modelForwardAxis,ho.X),u=r.asset;i._asset=u,i._properties=r.properties,i._extensionsUsed=r.extensionsUsed,i._extensions=r.extensions,i._modelUpAxis=a,i._modelForwardAxis=c,i._extras=r.extras;let f=u.extras;if(l(f)&&l(f.cesium)&&l(f.cesium.credits)){let h=f.cesium.credits,A=i._credits;l(A)||(A=[],i._credits=A);for(let x=0;x<h.length;++x){let C=h[x];A.push(new It(C.html,i._showCreditsOnScreen))}}let p=i._root.createBoundingVolume(r.root.boundingVolume,B.IDENTITY).boundingSphere.center,g=i._ellipsoid.cartesianToCartographic(p);return l(g)&&g.height>si._defaultMinTerrainHeight&&(i._initialClippingPlanesOriginMatrix=Rt.eastNorthUpToFixedFrame(p)),i._clippingPlanesOriginMatrix=B.clone(i._initialClippingPlanesOriginMatrix),i})}}Object.defineProperties(fr.prototype,{isCesium3DTileset:{get:function(){return!0}},asset:{get:function(){return this._asset}},extensions:{get:function(){return this._extensions}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){gs.setOwner(e,this,"_clippingPlanes")}},properties:{get:function(){return this._properties}},ready:{get:function(){return $("Cesium3DTileset.ready","Cesium3DTileset.ready was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTileset.fromUrl instead."),l(this._root)}},readyPromise:{get:function(){return $("Cesium3DTileset.readyPromise","Cesium3DTileset.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTileset.fromUrl instead."),this._readyPromise}},tilesLoaded:{get:function(){return this._tilesLoaded}},resource:{get:function(){return this._resource}},basePath:{get:function(){return $("Cesium3DTileset.basePath","Cesium3DTileset.basePath has been deprecated. All tiles are relative to the url of the tileset JSON file that contains them. Use the url property instead."),this._basePath}},style:{get:function(){return this._styleEngine.style},set:function(e){this._styleEngine.style=e}},customShader:{get:function(){return this._customShader},set:function(e){this._customShader=e}},hasMixedContent:{get:function(){return this._hasMixedContent},set:function(e){this._hasMixedContent=e}},isSkippingLevelOfDetail:{get:function(){return this.skipLevelOfDetail&&!l(this._classificationType)&&!this._disableSkipLevelOfDetail&&!this._allTilesAdditive}},metadataExtension:{get:function(){return this._metadataExtension}},metadata:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.tileset}},schema:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.schema}},maximumScreenSpaceError:{get:function(){return this._maximumScreenSpaceError},set:function(e){this._maximumScreenSpaceError=e}},maximumMemoryUsage:{get:function(){return this._maximumMemoryUsage},set:function(e){this._maximumMemoryUsage=e}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){this._pointCloudShading=e}},root:{get:function(){return this._root}},boundingSphere:{get:function(){return this._root.updateTransform(this._modelMatrix),this._root.boundingSphere}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=B.clone(e,this._modelMatrix)}},timeSinceLoad:{get:function(){return this._timeSinceLoad}},totalMemoryUsageInBytes:{get:function(){let e=this._statistics;return e.texturesByteLength+e.geometryByteLength+e.batchTableByteLength}},clippingPlanesOriginMatrix:{get:function(){return l(this._clippingPlanesOriginMatrix)?(this._clippingPlanesOriginMatrixDirty&&(B.multiply(this.root.computedTransform,this._initialClippingPlanesOriginMatrix,this._clippingPlanesOriginMatrix),this._clippingPlanesOriginMatrixDirty=!1),this._clippingPlanesOriginMatrix):B.IDENTITY}},styleEngine:{get:function(){return this._styleEngine}},statistics:{get:function(){return this._statistics}},classificationType:{get:function(){return this._classificationType}},ellipsoid:{get:function(){return this._ellipsoid}},foveatedConeSize:{get:function(){return this._foveatedConeSize},set:function(e){this._foveatedConeSize=e}},foveatedMinimumScreenSpaceErrorRelaxation:{get:function(){return this._foveatedMinimumScreenSpaceErrorRelaxation},set:function(e){this._foveatedMinimumScreenSpaceErrorRelaxation=e}},extras:{get:function(){return this._extras}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1)}},vectorClassificationOnly:{get:function(){return this._vectorClassificationOnly}},vectorKeepDecodedPositions:{get:function(){return this._vectorKeepDecodedPositions}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),this._instanceFeatureIdLabel=e}}});fr.fromIonAssetId=async function(e,t){let n=await ca.fromAssetId(e);return fr.fromUrl(n,t)};fr.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e),i;n.extension==="json"?i=n.getBaseUri(!0):n.isDataUri&&(i="");let o=await fr.loadJson(n),r=await Hre(n,o),s=new fr(t);s._resource=n,s._url=n.url,s._basePath=i,s._metadataExtension=r,s._geometricError=o.geometricError,s._scaledGeometricError=o.geometricError;let a=o.asset;s._asset=a,s._extras=o.extras;let c=n.credits;l(c)||(c=[]);let u=a.extras;if(l(u)&&l(u.cesium)&&l(u.cesium.credits)){let x=u.cesium.credits;for(let C=0;C<x.length;++C){let T=x[C];c.push(new It(T.html,s._showCreditsOnScreen))}}s._credits=c;let f=l(o.asset.gltfUpAxis)?ho.fromName(o.asset.gltfUpAxis):ho.Y,d=y(t.modelUpAxis,f),p=y(t.modelForwardAxis,ho.X);s._properties=o.properties,s._extensionsUsed=o.extensionsUsed,s._extensions=o.extensions,s._modelUpAxis=d,s._modelForwardAxis=p,s._root=s.loadTileset(n,o);let h=s._root.createBoundingVolume(o.root.boundingVolume,B.IDENTITY).boundingSphere.center,A=s._ellipsoid.cartesianToCartographic(h);return l(A)&&A.height>si._defaultMinTerrainHeight&&(s._initialClippingPlanesOriginMatrix=Rt.eastNorthUpToFixedFrame(h)),s._clippingPlanesOriginMatrix=B.clone(s._initialClippingPlanesOriginMatrix),s._readyPromise=Promise.resolve(s),s._ready=!0,s};fr.loadJson=function(e){return we.createIfNeeded(e).fetchJson()};fr.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()};fr.prototype.loadTileset=function(e,t,n){let i=t.asset;if(!l(i))throw new de("Tileset must have an asset property.");if(i.version!=="0.0"&&i.version!=="1.0"&&i.version!=="1.1")throw new de("The tileset must be 3D Tiles version 0.0, 1.0, or 1.1");l(t.extensionsRequired)&&fr.checkSupportedExtensions(t.extensionsRequired);let o=this._statistics,r=i.tilesetVersion;l(r)&&(this._basePath+=`?v=${r}`,e=e.clone(),e.setQueryParameters({v:r}));let s=Vre(this,e,t.root,n);l(n)&&(n.children.push(s),s._depth=n._depth+1);let a=[];for(a.push(s);a.length>0;){let c=a.pop();++o.numberOfTilesTotal,this._allTilesAdditive=this._allTilesAdditive&&c.refine===zo.ADD;let u=c._header.children;if(l(u))for(let f=0;f<u.length;++f){let d=u[f],p=Vre(this,e,d,c);c.children.push(p),p._depth=c._depth+1,a.push(p)}this._cullWithChildrenBounds&&cF.checkChildrenWithinParent(c)}return s};function Vre(e,t,n,i){if(!(l(n.implicitTiling)||ni(n,"3DTILES_implicit_tiling")))return new sd(e,t,n,i);let r=e.schema,s=new Z0(t,n,r),a=new vT({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:0,x:0,y:0,z:0}),c=s.subtreeUriTemplate.getDerivedResource({templateValues:a.getTemplateValues()}).url,f=Ye(n,!0);f.contents=[{uri:c}],delete f.content,delete f.extensions;let d=new sd(e,t,f,i);return d.implicitTileset=s,d.implicitCoordinates=a,d}async function Hre(e,t){let n=ni(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t,i;if(l(n.schemaUri))e=e.getDerivedResource({url:n.schemaUri}),i=Fi.getSchemaLoader({resource:e});else if(l(n.schema))i=Fi.getSchemaLoader({schema:n.schema});else return;await i.load();let o=new K0({schema:i.schema,metadataJson:n});return Fi.unload(i),o}var kre=new m,z6e=new he,H6e=new B,G6e=new m,W6e=new m,j6e=new m;function Y6e(e,t){let n,i,o,r,s,a=t.camera,c=e._root,u=c.contentBoundingVolume;if(u instanceof id)n=m.normalize(a.positionWC,kre),i=a.directionWC,o=a.positionCartographic.height,r=u.minimumHeight,s=u.maximumHeight;else{let A=B.inverseTransformation(c.computedTransform,H6e),x=t.mapProjection.ellipsoid,C=u.boundingVolume,T=B.multiplyByPoint(A,C.center,G6e);if(m.magnitude(T)>x.minimumRadius){let E=he.fromCartesian(T,x,z6e);n=m.normalize(a.positionWC,kre),i=a.directionWC,o=a.positionCartographic.height,r=0,s=E.height*2}else{let E=B.multiplyByPoint(A,a.positionWC,W6e);if(n=m.UNIT_Z,i=B.multiplyByPointAsVector(A,a.directionWC,j6e),i=m.normalize(i,i),o=E.z,u instanceof rd){let S=c._header.boundingVolume.box[11];r=T.z-S,s=T.z+S}else if(u instanceof hg){let S=C.radius;r=T.z-S,s=T.z+S}}}let f=e.dynamicScreenSpaceErrorHeightFalloff,d=r+(s-r)*f,p=s,g=P.clamp((o-d)/(p-d),0,1),h=1-Math.abs(m.dot(i,n));h=h*(1-g),e._dynamicScreenSpaceErrorComputedDensity=e.dynamicScreenSpaceErrorDensity*h}function q6e(e,t){if(t.hasEmptyContent)return;let{statistics:n}=e,i=t.contentExpired,o=t.requestContent();l(o)&&(o.then(r=>{!l(r)||t.isDestroyed()||e.isDestroyed()||(e._processingQueue.push(t),++n.numberOfTilesProcessing)}).catch(r=>{Gre(r,e,t)}),i&&(t.hasTilesetContent||t.hasImplicitContent?n9e(e,t):(n.decrementLoadCounts(t.content),--n.numberOfTilesWithContentReady)),e._requestedTilesInFlight.push(t))}function X6e(e,t){return e._priority-t._priority}fr.prototype.postPassesUpdate=function(e){l(this._root)&&(K6e(this,e),o9e(this,e),this._cache.unloadTiles(this,jre),this._styleApplied&&this._styleEngine.resetDirty(),this._styleApplied=!1)};fr.prototype.prePassesUpdate=function(e){if(!l(this._root))return;Q6e(this,e);let t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,l(t)&&t.enabled&&t.update(e),l(this._loadTimestamp)||(this._loadTimestamp=ee.clone(e.time)),this._timeSinceLoad=Math.max(ee.secondsDifference(e.time,this._loadTimestamp)*1e3,0),this.dynamicScreenSpaceError&&Y6e(this,e),e.newFrame&&this._cache.reset()};function K6e(e,t){let n=e._requestedTilesInFlight,i=0;for(let o=0;o<n.length;++o){let r=n[o],s=t.frameNumber-r._touchedFrame>=1;if(r._contentState!==Go.LOADING){++i;continue}else if(s){r.cancelRequests(),++i;continue}i>0&&(n[o-i]=r)}n.length-=i}function J6e(e){let t=e._requestedTiles;t.sort(X6e);for(let n=0;n<t.length;++n)q6e(e,t[n])}function Gre(e,t,n){if(t.isDestroyed())return;let i;n.isDestroyed()||(i=n._contentResource.url);let o=l(e.message)?e.message:e.toString();t.tileFailed.numberOfListeners>0?t.tileFailed.raiseEvent({url:i,message:o}):(console.log(`A 3D tile failed to load: ${i}`),console.log(`Error: ${o}`))}function Z6e(e){let t=e._processingQueue,n=0;for(let i=0;i<t.length;++i){let o=t[i];if(o.isDestroyed()||o._contentState!==Go.PROCESSING){++n;continue}n>0&&(t[i-n]=o)}t.length-=n}function Q6e(e,t){Z6e(e);let n=e._processingQueue,i=e._statistics,o;for(let r=0;r<n.length;++r){o=n[r];try{o.process(e,t),o.contentReady&&(--i.numberOfTilesProcessing,e.tileLoad.raiseEvent(o))}catch(s){--i.numberOfTilesProcessing,Gre(s,e,o)}}}var AF=new m,$6e={maximumFractionDigits:3};function zre(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,$6e):Math.round(t).toLocaleString()}function n9(e){let{halfAxes:t,radius:n,center:i}=e.boundingVolume.boundingVolume,o=m.clone(i,AF);if(l(t))o.x+=.75*(t[0]+t[3]+t[6]),o.y+=.75*(t[1]+t[4]+t[7]),o.z+=.75*(t[2]+t[5]+t[8]);else if(l(n)){let r=m.normalize(i,AF);r=m.multiplyByScalar(r,.75*n,AF),o=m.add(r,i,AF)}return o}function i9(e,t,n){let i="",o=0;if(t.debugShowGeometricError&&(i+=` +Geometric error: ${e.geometricError}`,o++),t.debugShowRenderingStatistics&&(i+=` +Commands: ${e.commandsLength}`,o++,e.content.pointsLength>0&&(i+=` +Points: ${e.content.pointsLength}`,o++),e.content.trianglesLength>0&&(i+=` +Triangles: ${e.content.trianglesLength}`,o++),i+=` +Features: ${e.content.featuresLength}`,o++),t.debugShowMemoryUsage&&(i+=` +Texture Memory: ${zre(e.content.texturesByteLength)}`,i+=` +Geometry Memory: ${zre(e.content.geometryByteLength)}`,o+=2),t.debugShowUrl)if(e.hasMultipleContents){i+=` +Urls:`;let s=e.content.innerContentUrls;for(let a=0;a<s.length;a++)i+=` +- ${s[a]}`;o+=s.length}else i+=` +Url: ${e._contentHeader.uri}`,o++;let r={text:i.substring(1),position:n,font:`${19-o}px sans-serif`,showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY};return t._tileDebugLabels.add(r)}function e9e(e,t){let n=e._selectedTiles,i=n.length,o=e._emptyTiles,r=o.length;if(e._tileDebugLabels.removeAll(),e.debugPickedTileLabelOnly){if(l(e.debugPickedTile)){let s=l(e.debugPickPosition)?e.debugPickPosition:n9(e.debugPickedTile),a=i9(e.debugPickedTile,e,s);a.pixelOffset=new H(15,-15)}}else{for(let s=0;s<i;++s){let a=n[s];i9(a,e,n9(a))}for(let s=0;s<r;++s){let a=o[s];(a.hasTilesetContent||a.hasImplicitContent)&&i9(a,e,n9(a))}}e._tileDebugLabels.update(t)}function t9e(e,t,n){e._styleEngine.applyStyle(e),e._styleApplied=!0;let{commandList:i,context:o}=t,r=i.length,s=e._selectedTiles,a=e.isSkippingLevelOfDetail&&e._hasMixedContent&&o.stencilBuffer&&s.length>0;e._backfaceCommands.length=0,a&&(l(e._stencilClearCommand)||(e._stencilClearCommand=new oi({stencil:0,pass:be.CESIUM_3D_TILE,renderState:ze.fromCache({stencilMask:Ft.SKIP_LOD_MASK})})),i.push(e._stencilClearCommand));let{statistics:c,tileVisible:u}=e,f=n.isRender,d=i.length;for(let h=0;h<s.length;++h){let A=s[h];f&&u.raiseEvent(A),A.update(e,t,n),c.incrementSelectionCounts(A.content),++c.selected}let p=e._emptyTiles;for(let h=0;h<p.length;++h)p[h].update(e,t,n);let g=i.length-d;if(e._backfaceCommands.trim(),a){let h=e._backfaceCommands.values,A=h.length;i.length+=A;for(let x=g-1;x>=0;--x)i[d+A+x]=i[d+x];for(let x=0;x<A;++x)i[d+x]=h[x]}g=i.length-r,c.numberOfCommands=g,f&&(e.pointCloudShading.attenuation&&e.pointCloudShading.eyeDomeLighting&&g>0&&e._pointCloudEyeDomeLighting.update(t,r,e.pointCloudShading,e.boundingSphere),e.debugShowGeometricError||e.debugShowRenderingStatistics||e.debugShowMemoryUsage||e.debugShowUrl?(l(e._tileDebugLabels)||(e._tileDebugLabels=new lp),e9e(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}var Wre=[];function n9e(e,t){let n=t,i=Wre;for(i.push(t);i.length>0;){t=i.pop();let o=t.children;for(let r=0;r<o.length;++r)i.push(o[r]);t!==n&&(i9e(e,t),--e._statistics.numberOfTilesTotal)}n.children=[]}function jre(e,t){e.tileUnload.raiseEvent(t),e._statistics.decrementLoadCounts(t.content),--e._statistics.numberOfTilesWithContentReady,t.unloadContent()}function i9e(e,t){e._cache.unloadTile(e,t,jre),t.destroy()}fr.prototype.trimLoadedTiles=function(){this._cache.trim()};function o9e(e,t){let n=e._statistics,i=e._statisticsLast,o=n.numberOfPendingRequests,r=n.numberOfTilesProcessing,s=i.numberOfPendingRequests,a=i.numberOfTilesProcessing;_g.clone(n,i);let c=o!==s||r!==a;c&&t.afterRender.push(function(){return e.loadProgress.raiseEvent(o,r),!0}),e._tilesLoaded=n.numberOfPendingRequests===0&&n.numberOfTilesProcessing===0&&n.numberOfAttemptedRequests===0,c&&e._tilesLoaded&&(t.afterRender.push(function(){return e.allTilesLoaded.raiseEvent(),!0}),e._initialTilesLoaded||(e._initialTilesLoaded=!0,t.afterRender.push(function(){return e.initialTilesLoaded.raiseEvent(),!0})))}function r9e(e){e._heatmap.resetMinimumMaximum(),e._minimumPriority.depth=Number.MAX_VALUE,e._maximumPriority.depth=-Number.MAX_VALUE,e._minimumPriority.foveatedFactor=Number.MAX_VALUE,e._maximumPriority.foveatedFactor=-Number.MAX_VALUE,e._minimumPriority.distance=Number.MAX_VALUE,e._maximumPriority.distance=-Number.MAX_VALUE,e._minimumPriority.reverseScreenSpaceError=Number.MAX_VALUE,e._maximumPriority.reverseScreenSpaceError=-Number.MAX_VALUE}function s9e(e,t){t.frameNumber===e._updatedModelMatrixFrame&&l(e._previousModelMatrix)||(e._updatedModelMatrixFrame=t.frameNumber,e._modelMatrixChanged=!B.equals(e.modelMatrix,e._previousModelMatrix),e._modelMatrixChanged&&(e._previousModelMatrix=B.clone(e.modelMatrix,e._previousModelMatrix)))}function a9e(e,t,n,i){if(t.mode===ne.MORPHING||!l(e._root))return!1;let o=e._statistics;o.clear(),++e._updatedVisibilityFrame,r9e(e),s9e(e,t),e._cullRequestsWhileMoving=e.cullRequestsWhileMoving&&!e._modelMatrixChanged;let r=e.getTraversal(i).selectTiles(e,t);if(i.requestTiles&&J6e(e),t9e(e,t,i),_g.clone(o,n),i.isRender){let s=e._credits;if(l(s)&&o.selected!==0)for(let a=0;a<s.length;++a){let c=s[a];c.showOnScreen=e._showCreditsOnScreen,t.creditDisplay.addCreditToNextFrame(c)}}return r}fr.prototype.getTraversal=function(e){let{pass:t}=e;return t===Ro.MOST_DETAILED_PRELOAD||t===Ro.MOST_DETAILED_PICK?pF:this.isSkippingLevelOfDetail?yF:_F};fr.prototype.update=function(e){this.updateForPass(e,e.tilesetPassState)};fr.prototype.updateForPass=function(e,t){let n=t.pass;if(n===Ro.PRELOAD&&(!this.preloadWhenHidden||this.show)||n===Ro.PRELOAD_FLIGHT&&(!this.preloadFlightDestinations||!this.show&&!this.preloadWhenHidden)||n===Ro.REQUEST_RENDER_MODE_DEFER_CHECK&&(!this._cullRequestsWhileMoving&&this.foveatedTimeDelay<=0||!this.show))return;let i=e.commandList,o=e.camera,r=e.cullingVolume;t.ready=!1;let s=Ro.getPassOptions(n),a=s.ignoreCommands,c=y(t.commandList,i),u=c.length;e.commandList=c,e.camera=y(t.camera,o),e.cullingVolume=y(t.cullingVolume,r);let f=this._statisticsPerPass[n];(this.show||a)&&(this._pass=n,t.ready=a9e(this,e,f,s)),a&&(c.length=u),e.commandList=i,e.camera=o,e.cullingVolume=r};fr.prototype.hasExtension=function(e){return l(this._extensionsUsed)?this._extensionsUsed.indexOf(e)>-1:!1};fr.prototype.isDestroyed=function(){return!1};fr.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),l(this._root)){let e=Wre;for(e.push(this._root);e.length>0;){let t=e.pop();t.destroy();let n=t.children;for(let i=0;i<n.length;++i)e.push(n[i])}}return this._root=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0,ue(this)};fr.supportedExtensions={"3DTILES_metadata":!0,"3DTILES_implicit_tiling":!0,"3DTILES_content_gltf":!0,"3DTILES_multiple_contents":!0,"3DTILES_bounding_volume_S2":!0,"3DTILES_batch_table_hierarchy":!0,"3DTILES_draco_point_compression":!0,MAXAR_content_geojson:!0};fr.checkSupportedExtensions=function(e){for(let t=0;t<e.length;t++)if(!fr.supportedExtensions[e[t]])throw new de(`Unsupported 3D Tiles Extension: ${e[t]}`)};var Va=fr;var c9e=new B;function gg(e,t){t.collectionChanged.addEventListener(gg.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._tilesetHash={},this._entitiesToVisualize=new Et,this._onCollectionChanged(t,t.values,[],[])}gg.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._tilesetHash,i=this._primitives;for(let o=0,r=t.length;o<r;o++){let s=t[o],a=s._tileset,c,u=n[s.id],f=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),d;if(f&&(d=s.computeModelMatrix(e,c9e),c=we.createIfNeeded(j.getValueOrUndefined(a._uri,e))),!f){l(u)&&(u.tilesetPrimitive.show=!1);continue}let p=l(u)?u.tilesetPrimitive:void 0;(!l(u)||c.url!==u.url)&&(l(p)&&i.removeAndDestroy(p),delete n[s.id],l9e(c,n,s,i)),l(p)&&(p.show=!0,l(d)&&(p.modelMatrix=d),p.maximumScreenSpaceError=j.getValueOrDefault(a.maximumScreenSpaceError,e,p.maximumScreenSpaceError))}return!0};gg.prototype.isDestroyed=function(){return!1};gg.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(gg.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._tilesetHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)o9(this,e[i],t,n);return ue(this)};gg.prototype.getBoundingSphere=function(e,t){let n=this._tilesetHash[e.id];if(!l(n)||n.loadFail)return ut.FAILED;let i=n.tilesetPrimitive;return l(i)?i.show?(ae.clone(i.boundingSphere,t),ut.DONE):ut.FAILED:ut.PENDING};gg.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._tilesetHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._tileset)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._tileset)?s.set(r.id,r):(o9(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],o9(this,r,a,c),s.remove(r.id)};function o9(e,t,n,i){let o=n[t.id];l(o)&&(l(o.tilesetPrimitive)&&i.removeAndDestroy(o.tilesetPrimitive),delete n[t.id])}async function l9e(e,t,n,i){t[n.id]={url:e.url,loadFail:!1};try{let o=await Va.fromUrl(e);if(o.id=n,i.add(o),!l(t[n.id]))return;t[n.id].tilesetPrimitive=o}catch(o){console.error(o),t[n.id].loadFail=!0}}var xF=gg;var u9e=z.WHITE,f9e=z.BLACK,d9e=new H(2,2);function DT(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.repeat=e.repeat}Object.defineProperties(DT.prototype,{isConstant:{get:function(){return j.isConstant(this._evenColor)&&j.isConstant(this._oddColor)&&j.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:ce("evenColor"),oddColor:ce("oddColor"),repeat:ce("repeat")});DT.prototype.getType=function(e){return"Checkerboard"};DT.prototype.getValue=function(e,t){return l(t)||(t={}),t.lightColor=j.getValueOrClonedDefault(this._evenColor,e,u9e,t.lightColor),t.darkColor=j.getValueOrClonedDefault(this._oddColor,e,f9e,t.darkColor),t.repeat=j.getValueOrDefault(this._repeat,e,d9e),t};DT.prototype.equals=function(e){return this===e||e instanceof DT&&j.equals(this._evenColor,e._evenColor)&&j.equals(this._oddColor,e._oddColor)&&j.equals(this._repeat,e._repeat)};var tv=DT;var Yre={id:void 0};function nv(e){if(e._firing){e._refire=!0;return}if(e._suspendCount===0){let t=e._addedEntities,n=e._removedEntities,i=e._changedEntities;if(i.length!==0||t.length!==0||n.length!==0){e._firing=!0;do{e._refire=!1;let o=t.values.slice(0),r=n.values.slice(0),s=i.values.slice(0);t.removeAll(),n.removeAll(),i.removeAll(),e._collectionChanged.raiseEvent(e,o,r,s)}while(e._refire);e._firing=!1}}}function ka(e){this._owner=e,this._entities=new Et,this._addedEntities=new Et,this._removedEntities=new Et,this._changedEntities=new Et,this._suspendCount=0,this._collectionChanged=new ge,this._id=jn(),this._show=!0,this._firing=!1,this._refire=!1}ka.prototype.suspendEvents=function(){this._suspendCount++};ka.prototype.resumeEvents=function(){this._suspendCount--,nv(this)};Object.defineProperties(ka.prototype,{collectionChanged:{get:function(){return this._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._entities.values}},show:{get:function(){return this._show},set:function(e){if(e===this._show)return;this.suspendEvents();let t,n=[],i=this._entities.values,o=i.length;for(t=0;t<o;t++)n.push(i[t].isShowing);for(this._show=e,t=0;t<o;t++){let r=n[t],s=i[t];r!==s.isShowing&&s.definitionChanged.raiseEvent(s,"isShowing",s.isShowing,r)}this.resumeEvents()}},owner:{get:function(){return this._owner}}});ka.prototype.computeAvailability=function(){let e=Ge.MAXIMUM_VALUE,t=Ge.MINIMUM_VALUE,n=this._entities.values;for(let i=0,o=n.length;i<o;i++){let s=n[i].availability;if(l(s)){let a=s.start,c=s.stop;ee.lessThan(a,e)&&!a.equals(Ge.MINIMUM_VALUE)&&(e=a),ee.greaterThan(c,t)&&!c.equals(Ge.MAXIMUM_VALUE)&&(t=c)}}return Ge.MAXIMUM_VALUE.equals(e)&&(e=Ge.MINIMUM_VALUE),Ge.MINIMUM_VALUE.equals(t)&&(t=Ge.MAXIMUM_VALUE),new bn({start:e,stop:t})};ka.prototype.add=function(e){e instanceof er||(e=new er(e));let t=e.id,n=this._entities;if(n.contains(t))throw new de(`An entity with id ${t} already exists in this collection.`);return e.entityCollection=this,n.set(t,e),this._removedEntities.remove(t)||this._addedEntities.set(t,e),e.definitionChanged.addEventListener(ka.prototype._onEntityDefinitionChanged,this),nv(this),e};ka.prototype.remove=function(e){return l(e)?this.removeById(e.id):!1};ka.prototype.contains=function(e){return this._entities.get(e.id)===e};ka.prototype.removeById=function(e){if(!l(e))return!1;let n=this._entities.get(e);return this._entities.remove(e)?(this._addedEntities.remove(e)||(this._removedEntities.set(e,n),this._changedEntities.remove(e)),this._entities.remove(e),n.definitionChanged.removeEventListener(ka.prototype._onEntityDefinitionChanged,this),nv(this),!0):!1};ka.prototype.removeAll=function(){let e=this._entities,t=e.length,n=e.values,i=this._addedEntities,o=this._removedEntities;for(let r=0;r<t;r++){let s=n[r],a=s.id,c=i.get(a);l(c)||(s.definitionChanged.removeEventListener(ka.prototype._onEntityDefinitionChanged,this),o.set(a,s))}e.removeAll(),i.removeAll(),this._changedEntities.removeAll(),nv(this)};ka.prototype.getById=function(e){return this._entities.get(e)};ka.prototype.getOrCreateEntity=function(e){let t=this._entities.get(e);return l(t)||(Yre.id=e,t=new er(Yre),this.add(t)),t};ka.prototype._onEntityDefinitionChanged=function(e){let t=e.id;this._addedEntities.contains(t)||this._changedEntities.set(t,e),nv(this)};var zs=ka;var CF={id:void 0},IT=new Array(2);function r9(e){let t=e.propertyNames,n=t.length;for(let i=0;i<n;i++)e[t[i]]=void 0;e._name=void 0,e._availability=void 0}function qre(e,t,n,i){IT[0]=n,IT[1]=i.id,t[JSON.stringify(IT)]=i.definitionChanged.addEventListener(Er.prototype._onDefinitionChanged,e)}function Xre(e,t,n,i){IT[0]=n,IT[1]=i.id;let o=JSON.stringify(IT);t[o](),t[o]=void 0}function yg(e){if(e._shouldRecomposite=!0,e._suspendCount!==0)return;let t=e._collections,n=t.length,i=e._collectionsCopy,o=i.length,r,s,a,c,u,f=e._composite,d=new zs(e),p=e._eventHash,g;for(r=0;r<o;r++)for(u=i[r],u.collectionChanged.removeEventListener(Er.prototype._onCollectionChanged,e),a=u.values,g=u.id,c=a.length-1;c>-1;c--)s=a[c],Xre(e,p,g,s);for(r=n-1;r>=0;r--)for(u=t[r],u.collectionChanged.addEventListener(Er.prototype._onCollectionChanged,e),a=u.values,g=u.id,c=a.length-1;c>-1;c--){s=a[c],qre(e,p,g,s);let A=d.getById(s.id);l(A)||(A=f.getById(s.id),l(A)?r9(A):(CF.id=s.id,A=new er(CF)),d.add(A)),A.merge(s)}e._collectionsCopy=t.slice(0),f.suspendEvents(),f.removeAll();let h=d.values;for(r=0;r<h.length;r++)f.add(h[r]);f.resumeEvents()}function Er(e,t){this._owner=t,this._composite=new zs(this),this._suspendCount=0,this._collections=l(e)?e.slice():[],this._collectionsCopy=[],this._id=jn(),this._eventHash={},yg(this),this._shouldRecomposite=!1}Object.defineProperties(Er.prototype,{collectionChanged:{get:function(){return this._composite._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._composite.values}},owner:{get:function(){return this._owner}}});Er.prototype.addCollection=function(e,t){l(t)?this._collections.splice(t,0,e):(t=this._collections.length,this._collections.push(e)),yg(this)};Er.prototype.removeCollection=function(e){let t=this._collections.indexOf(e);return t!==-1?(this._collections.splice(t,1),yg(this),!0):!1};Er.prototype.removeAllCollections=function(){this._collections.length=0,yg(this)};Er.prototype.containsCollection=function(e){return this._collections.indexOf(e)!==-1};Er.prototype.contains=function(e){return this._composite.contains(e)};Er.prototype.indexOfCollection=function(e){return this._collections.indexOf(e)};Er.prototype.getCollection=function(e){return this._collections[e]};Er.prototype.getCollectionsLength=function(){return this._collections.length};function TF(e,t){return e.indexOf(t)}function Kre(e,t,n){let i=e._collections;if(t=P.clamp(t,0,i.length-1),n=P.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,yg(e)}Er.prototype.raiseCollection=function(e){let t=TF(this._collections,e);Kre(this,t,t+1)};Er.prototype.lowerCollection=function(e){let t=TF(this._collections,e);Kre(this,t,t-1)};Er.prototype.raiseCollectionToTop=function(e){let t=TF(this._collections,e);t!==this._collections.length-1&&(this._collections.splice(t,1),this._collections.push(e),yg(this))};Er.prototype.lowerCollectionToBottom=function(e){let t=TF(this._collections,e);t!==0&&(this._collections.splice(t,1),this._collections.splice(0,0,e),yg(this))};Er.prototype.suspendEvents=function(){this._suspendCount++,this._composite.suspendEvents()};Er.prototype.resumeEvents=function(){this._suspendCount--,this._shouldRecomposite&&this._suspendCount===0&&(yg(this),this._shouldRecomposite=!1),this._composite.resumeEvents()};Er.prototype.computeAvailability=function(){return this._composite.computeAvailability()};Er.prototype.getById=function(e){return this._composite.getById(e)};Er.prototype._onCollectionChanged=function(e,t,n){let i=this._collectionsCopy,o=i.length,r=this._composite;r.suspendEvents();let s,a,c,u,f=n.length,d=this._eventHash,p=e.id;for(s=0;s<f;s++){let h=n[s];Xre(this,d,p,h);let A=h.id;for(a=o-1;a>=0;a--)c=i[a].getById(A),l(c)&&(l(u)||(u=r.getById(A),r9(u)),u.merge(c));l(u)||r.removeById(A),u=void 0}let g=t.length;for(s=0;s<g;s++){let h=t[s];qre(this,d,p,h);let A=h.id;for(a=o-1;a>=0;a--)c=i[a].getById(A),l(c)&&(l(u)||(u=r.getById(A),l(u)?r9(u):(CF.id=A,u=new er(CF),r.add(u))),u.merge(c));u=void 0}r.resumeEvents()};Er.prototype._onDefinitionChanged=function(e,t,n,i){let o=this._collections,r=this._composite,s=o.length,a=e.id,c=r.getById(a),u=c[t],f=!l(u),d=!0;for(let p=s-1;p>=0;p--){let g=o[p].getById(e.id);if(l(g)){let h=g[t];if(l(h)){if(d)if(d=!1,l(h.merge)&&l(h.clone))u=h.clone(u);else{u=h;break}u.merge(h)}}}f&&c.propertyNames.indexOf(t)===-1&&c.addProperty(t),c[t]=u};var Jre=Er;function s9(){this._removalFunctions=[]}s9.prototype.add=function(e,t,n){let i=e.addEventListener(t,n);this._removalFunctions.push(i);let o=this;return function(){i();let r=o._removalFunctions;r.splice(r.indexOf(i),1)}};s9.prototype.removeAll=function(){let e=this._removalFunctions;for(let t=0,n=e.length;t<n;++t)e[t]();e.length=0};var Mr=s9;function l9(e,t){return ee.compare(e.start,t.start)}function br(e){if(this._intervals=[],this._changedEvent=new ge,l(e)){let t=e.length;for(let n=0;n<t;n++)this.addInterval(e[n])}}Object.defineProperties(br.prototype,{changedEvent:{get:function(){return this._changedEvent}},start:{get:function(){let e=this._intervals;return e.length===0?void 0:e[0].start}},isStartIncluded:{get:function(){let e=this._intervals;return e.length===0?!1:e[0].isStartIncluded}},stop:{get:function(){let e=this._intervals,t=e.length;return t===0?void 0:e[t-1].stop}},isStopIncluded:{get:function(){let e=this._intervals,t=e.length;return t===0?!1:e[t-1].isStopIncluded}},length:{get:function(){return this._intervals.length}},isEmpty:{get:function(){return this._intervals.length===0}}});br.prototype.equals=function(e,t){if(this===e)return!0;if(!(e instanceof br))return!1;let n=this._intervals,i=e._intervals,o=n.length;if(o!==i.length)return!1;for(let r=0;r<o;r++)if(!bn.equals(n[r],i[r],t))return!1;return!0};br.prototype.get=function(e){return this._intervals[e]};br.prototype.removeAll=function(){this._intervals.length>0&&(this._intervals.length=0,this._changedEvent.raiseEvent(this))};br.prototype.findIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t]:void 0};br.prototype.findDataForIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t].data:void 0};br.prototype.contains=function(e){return this.indexOf(e)>=0};var a9=new bn;br.prototype.indexOf=function(e){let t=this._intervals;a9.start=e,a9.stop=e;let n=Do(t,a9,l9);return n>=0?t[n].isStartIncluded?n:n>0&&t[n-1].stop.equals(e)&&t[n-1].isStopIncluded?n-1:~n:(n=~n,n>0&&n-1<t.length&&bn.contains(t[n-1],e)?n-1:~n)};br.prototype.findInterval=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.start,n=e.stop,i=e.isStartIncluded,o=e.isStopIncluded,r=this._intervals;for(let s=0,a=r.length;s<a;s++){let c=r[s];if((!l(t)||c.start.equals(t))&&(!l(n)||c.stop.equals(n))&&(!l(i)||c.isStartIncluded===i)&&(!l(o)||c.isStopIncluded===o))return r[s]}};br.prototype.addInterval=function(e,t){if(e.isEmpty)return;let n=this._intervals;if(n.length===0||ee.greaterThan(e.start,n[n.length-1].stop)){n.push(e),this._changedEvent.raiseEvent(this);return}let i=Do(n,e,l9);i<0?i=~i:i>0&&e.isStartIncluded&&n[i-1].isStartIncluded&&n[i-1].start.equals(e.start)?--i:i<n.length&&!e.isStartIncluded&&n[i].isStartIncluded&&n[i].start.equals(e.start)&&++i;let o;for(i>0&&(o=ee.compare(n[i-1].stop,e.start),(o>0||o===0&&(n[i-1].isStopIncluded||e.isStartIncluded))&&((l(t)?t(n[i-1].data,e.data):n[i-1].data===e.data)?(ee.greaterThan(e.stop,n[i-1].stop)?e=new bn({start:n[i-1].start,stop:e.stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:e.isStopIncluded,data:e.data}):e=new bn({start:n[i-1].start,stop:n[i-1].stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:n[i-1].isStopIncluded||e.stop.equals(n[i-1].stop)&&e.isStopIncluded,data:e.data}),n.splice(i-1,1),--i):(o=ee.compare(n[i-1].stop,e.stop),(o>0||o===0&&n[i-1].isStopIncluded&&!e.isStopIncluded)&&n.splice(i,0,new bn({start:e.stop,stop:n[i-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i-1].isStopIncluded,data:n[i-1].data})),n[i-1]=new bn({start:n[i-1].start,stop:e.start,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:n[i-1].data}))));i<n.length&&(o=ee.compare(e.stop,n[i].start),o>0||o===0&&(e.isStopIncluded||n[i].isStartIncluded));)if(l(t)?t(n[i].data,e.data):n[i].data===e.data)e=new bn({start:e.start,stop:ee.greaterThan(n[i].stop,e.stop)?n[i].stop:e.stop,isStartIncluded:e.isStartIncluded,isStopIncluded:ee.greaterThan(n[i].stop,e.stop)?n[i].isStopIncluded:e.isStopIncluded,data:e.data}),n.splice(i,1);else if(n[i]=new bn({start:e.stop,stop:n[i].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i].isStopIncluded,data:n[i].data}),n[i].isEmpty)n.splice(i,1);else break;n.splice(i,0,e),this._changedEvent.raiseEvent(this)};br.prototype.removeInterval=function(e){if(e.isEmpty)return!1;let t=this._intervals,n=Do(t,e,l9);n<0&&(n=~n);let i=!1;for(n>0&&(ee.greaterThan(t[n-1].stop,e.start)||t[n-1].stop.equals(e.start)&&t[n-1].isStopIncluded&&e.isStartIncluded)&&(i=!0,(ee.greaterThan(t[n-1].stop,e.stop)||t[n-1].isStopIncluded&&!e.isStopIncluded&&t[n-1].stop.equals(e.stop))&&t.splice(n,0,new bn({start:e.stop,stop:t[n-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n-1].isStopIncluded,data:t[n-1].data})),t[n-1]=new bn({start:t[n-1].start,stop:e.start,isStartIncluded:t[n-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:t[n-1].data})),n<t.length&&!e.isStartIncluded&&t[n].isStartIncluded&&e.start.equals(t[n].start)&&(i=!0,t.splice(n,0,new bn({start:t[n].start,stop:t[n].start,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data})),++n);n<t.length&&ee.greaterThan(e.stop,t[n].stop);)i=!0,t.splice(n,1);return n<t.length&&e.stop.equals(t[n].stop)&&(i=!0,!e.isStopIncluded&&t[n].isStopIncluded?n+1<t.length&&t[n+1].start.equals(e.stop)&&t[n].data===t[n+1].data?(t.splice(n,1),t[n]=new bn({start:t[n].start,stop:t[n].stop,isStartIncluded:!0,isStopIncluded:t[n].isStopIncluded,data:t[n].data})):t[n]=new bn({start:e.stop,stop:e.stop,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data}):t.splice(n,1)),n<t.length&&(ee.greaterThan(e.stop,t[n].start)||e.stop.equals(t[n].start)&&e.isStopIncluded&&t[n].isStartIncluded)&&(i=!0,t[n]=new bn({start:e.stop,stop:t[n].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n].isStopIncluded,data:t[n].data})),i&&this._changedEvent.raiseEvent(this),i};br.prototype.intersect=function(e,t,n){let i=new br,o=0,r=0,s=this._intervals,a=e._intervals;for(;o<s.length&&r<a.length;){let c=s[o],u=a[r];if(ee.lessThan(c.stop,u.start))++o;else if(ee.lessThan(u.stop,c.start))++r;else{if(l(n)||l(t)&&t(c.data,u.data)||!l(t)&&u.data===c.data){let f=bn.intersect(c,u,new bn,n);f.isEmpty||i.addInterval(f,t)}ee.lessThan(c.stop,u.stop)||c.stop.equals(u.stop)&&!c.isStopIncluded&&u.isStopIncluded?++o:++r}}return i};br.fromJulianDateArray=function(e,t){l(t)||(t=new br);let n=e.julianDates,i=n.length,o=e.dataCallback,r=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=y(e.leadingInterval,!1),c=y(e.trailingInterval,!1),u,f=0;a&&(++f,u=new bn({start:Ge.MINIMUM_VALUE,stop:n[0],isStartIncluded:!0,isStopIncluded:!r}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u));for(let d=0;d<i-1;++d){let p=n[d],g=n[d+1];u=new bn({start:p,stop:g,isStartIncluded:t.length===f?r:!0,isStopIncluded:d===i-2?s:!1}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u),p=g}return c&&(u=new bn({start:n[i-1],stop:Ge.MAXIMUM_VALUE,isStartIncluded:!s,isStopIncluded:!0}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u)),t};var za=new i_,iv=[0,31,28,31,30,31,30,31,31,30,31,30,31];function c9(e,t,n){l(n)||(n=new ee),ee.toGregorianDate(e,za);let i=za.millisecond+t.millisecond,o=za.second+t.second,r=za.minute+t.minute,s=za.hour+t.hour,a=za.day+t.day,c=za.month+t.month,u=za.year+t.year;for(i>=1e3&&(o+=Math.floor(i/1e3),i=i%1e3),o>=60&&(r+=Math.floor(o/60),o=o%60),r>=60&&(s+=Math.floor(r/60),r=r%60),s>=24&&(a+=Math.floor(s/24),s=s%24),iv[2]=o_(u)?29:28;a>iv[c]||c>=13;)a>iv[c]&&(a-=iv[c],++c),c>=13&&(--c,u+=Math.floor(c/12),c=c%12,++c),iv[2]=o_(u)?29:28;return za.millisecond=i,za.second=o,za.minute=r,za.hour=s,za.day=a,za.month=c,za.year=u,ee.fromGregorianDate(za,n)}var m9e=new ee,h9e=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/;function Zre(e,t){if(!l(e)||e.length===0)return!1;if(t.year=0,t.month=0,t.day=0,t.hour=0,t.minute=0,t.second=0,t.millisecond=0,e[0]==="P"){let n=e.match(h9e);if(!l(n))return!1;if(l(n[1])&&(t.year=Number(n[1].replace(",","."))),l(n[2])&&(t.month=Number(n[2].replace(",","."))),l(n[3])&&(t.day=Number(n[3].replace(",","."))*7),l(n[4])&&(t.day+=Number(n[4].replace(",","."))),l(n[5])&&(t.hour=Number(n[5].replace(",","."))),l(n[6])&&(t.minute=Number(n[6].replace(",","."))),l(n[7])){let i=Number(n[7].replace(",","."));t.second=Math.floor(i),t.millisecond=i%1*1e3}}else e[e.length-1]!=="Z"&&(e+="Z"),ee.toGregorianDate(ee.fromIso8601(e,m9e),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}var ov=new i_;br.fromIso8601=function(e,t){let n=e.iso8601.split("/"),i=ee.fromIso8601(n[0]),o=ee.fromIso8601(n[1]),r=[];if(!Zre(n[2],ov))r.push(i,o);else{let s=ee.clone(i);for(r.push(s);ee.compare(s,o)<0;)s=c9(s,ov),ee.compare(o,s)<=0&&ee.clone(o,s),r.push(s)}return br.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};br.fromIso8601DateArray=function(e,t){return br.fromJulianDateArray({julianDates:e.iso8601Dates.map(function(n){return ee.fromIso8601(n)}),isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};br.fromIso8601DurationArray=function(e,t){let n=e.epoch,i=e.iso8601Durations,o=y(e.relativeToPrevious,!1),r=[],s,a,c=i.length;for(let u=0;u<c;++u)(Zre(i[u],ov)||u===0)&&(o&&l(a)?s=c9(a,ov):s=c9(n,ov),r.push(s),a=s);return br.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};var Rr=br;function p9e(e,t,n,i){function o(){n.raiseEvent(e)}let r=[];t.removeAll();let s=i.length;for(let a=0;a<s;a++){let c=i.get(a);l(c.data)&&r.indexOf(c.data)===-1&&t.add(c.data.definitionChanged,o)}}function $0(){this._eventHelper=new Mr,this._definitionChanged=new ge,this._intervals=new Rr,this._intervals.changedEvent.addEventListener($0.prototype._intervalsChanged,this)}Object.defineProperties($0.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});$0.prototype.getValue=function(e,t){let n=this._intervals.findDataForIntervalContainingDate(e);if(l(n))return n.getValue(e,t)};$0.prototype.equals=function(e){return this===e||e instanceof $0&&this._intervals.equals(e._intervals,j.equals)};$0.prototype._intervalsChanged=function(){p9e(this,this._eventHelper,this._definitionChanged,this._intervals),this._definitionChanged.raiseEvent(this)};var Cc=$0;function Ag(){this._definitionChanged=new ge,this._composite=new Cc,this._composite.definitionChanged.addEventListener(Ag.prototype._raiseDefinitionChanged,this)}Object.defineProperties(Ag.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite._intervals}}});Ag.prototype.getType=function(e){let t=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(t))return t.getType(e)};Ag.prototype.getValue=function(e,t){let n=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(n))return n.getValue(e,t)};Ag.prototype.equals=function(e){return this===e||e instanceof Ag&&this._composite.equals(e._composite,j.equals)};Ag.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var rv=Ag;function xg(e){this._referenceFrame=y(e,no.FIXED),this._definitionChanged=new ge,this._composite=new Cc,this._composite.definitionChanged.addEventListener(xg.prototype._raiseDefinitionChanged,this)}Object.defineProperties(xg.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite.intervals}},referenceFrame:{get:function(){return this._referenceFrame},set:function(e){this._referenceFrame=e}}});xg.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};xg.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(i))return i.getValueInReferenceFrame(e,t,n)};xg.prototype.equals=function(e){return this===e||e instanceof xg&&this._referenceFrame===e._referenceFrame&&this._composite.equals(e._composite,j.equals)};xg.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var da=xg;var _9e={ROUNDED:0,MITERED:1,BEVELED:2},Ri=Object.freeze(_9e);var Hs=[new m,new m],g9e=new m,y9e=new m,A9e=new m,x9e=new m,C9e=new m,T9e=new m,E9e=new m,b9e=new m,S9e=new m,PT=new m,EF=new m,sv={},u9=new he;function w9e(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++){let o=e[i];u9=t.cartesianToCartographic(o,u9),n[i]=u9.height,e[i]=t.scaleToGeodeticSurface(o,o)}return n}function f9(e,t,n,i){let o=e[0],r=e[1],s=m.angleBetween(o,r),a=Math.ceil(s/i),c=new Array(a),u;if(t===n){for(u=0;u<a;u++)c[u]=t;return c.push(n),c}let d=(n-t)/a;for(u=1;u<a;u++){let p=t+u*d;c[u]=p}return c[0]=t,c.push(n),c}var bF=new m,SF=new m;function v9e(e,t,n,i){let o=new Ia(n,i),r=o.projectPointOntoPlane(m.add(n,e,bF),bF),s=o.projectPointOntoPlane(m.add(n,t,SF),SF),a=H.angleBetween(r,s);return s.x*r.y-s.y*r.x>=0?-a:a}var D9e=new m(-1,0,0),eA=new B,I9e=new B,d9=new Z,P9e=Z.IDENTITY.clone(),O9e=new m,M9e=new re,Qre=new m;function bp(e,t,n,i,o,r,s,a){let c=O9e,u=M9e;eA=Rt.eastNorthUpToFixedFrame(e,o,eA),c=B.multiplyByPointAsVector(eA,D9e,c),c=m.normalize(c,c);let f=v9e(c,t,e,o);d9=Z.fromRotationZ(f,d9),Qre.z=r,eA=B.multiplyTransformation(eA,B.fromRotationTranslation(d9,Qre,I9e),eA);let d=P9e;d[0]=s;for(let p=0;p<a;p++)for(let g=0;g<n.length;g+=3)u=m.fromArray(n,g,u),u=Z.multiplyByVector(d,u,u),u=B.multiplyByPoint(eA,u,u),i.push(u.x,u.y,u.z);return i}var R9e=new m;function m9(e,t,n,i,o,r,s){for(let a=0;a<e.length;a+=3){let c=m.fromArray(e,a,R9e);i=bp(c,t,n,i,o,r[a/3],s,1)}return i}function B9e(e,t){let n=e.length,i=new Array(n*6),o=0,r=t.x+t.width/2,s=t.y+t.height/2,a=e[0];i[o++]=a.x-r,i[o++]=0,i[o++]=a.y-s;for(let c=1;c<n;c++){a=e[c];let u=a.x-r,f=a.y-s;i[o++]=u,i[o++]=0,i[o++]=f,i[o++]=u,i[o++]=0,i[o++]=f}return a=e[0],i[o++]=a.x-r,i[o++]=0,i[o++]=a.y-s,i}function $re(e,t){let n=e.length,i=new Array(n*3),o=0,r=t.x+t.width/2,s=t.y+t.height/2;for(let a=0;a<n;a++)i[o++]=e[a].x-r,i[o++]=0,i[o++]=e[a].y-s;return i}var ese=new Ne,tse=new m,nse=new Z;function ise(e,t,n,i,o,r,s,a,c,u){let f=m.angleBetween(m.subtract(t,e,PT),m.subtract(n,e,EF)),d=i===Ri.BEVELED?0:Math.ceil(f/P.toRadians(5)),p;o?p=Z.fromQuaternion(Ne.fromAxisAngle(m.negate(e,PT),f/(d+1),ese),nse):p=Z.fromQuaternion(Ne.fromAxisAngle(e,f/(d+1),ese),nse);let g,h;if(t=m.clone(t,tse),d>0){let A=u?2:1;for(let x=0;x<d;x++)t=Z.multiplyByVector(p,t,t),g=m.subtract(t,e,PT),g=m.normalize(g,g),o||(g=m.negate(g,g)),h=r.scaleToGeodeticSurface(t,EF),s=bp(h,g,a,s,r,c,1,A)}else g=m.subtract(t,e,PT),g=m.normalize(g,g),o||(g=m.negate(g,g)),h=r.scaleToGeodeticSurface(t,EF),s=bp(h,g,a,s,r,c,1,1),n=m.clone(n,tse),g=m.subtract(n,e,PT),g=m.normalize(g,g),o||(g=m.negate(g,g)),h=r.scaleToGeodeticSurface(n,EF),s=bp(h,g,a,s,r,c,1,1);return s}sv.removeDuplicatesFromShape=function(e){let t=e.length,n=[];for(let i=t-1,o=0;o<t;i=o++){let r=e[i],s=e[o];H.equals(r,s)||n.push(s)}return n};sv.angleIsGreaterThanPi=function(e,t,n,i){let o=new Ia(n,i),r=o.projectPointOntoPlane(m.add(n,e,bF),bF),s=o.projectPointOntoPlane(m.add(n,t,SF),SF);return s.x*r.y-s.y*r.x>=0};var L9e=new m,N9e=new m;sv.computePositions=function(e,t,n,i,o){let r=i._ellipsoid,s=w9e(e,r),a=i._granularity,c=i._cornerType,u=o?B9e(t,n):$re(t,n),f=o?$re(t,n):void 0,d=n.height/2,p=n.width/2,g=e.length,h=[],A=o?[]:void 0,x=g9e,C=y9e,T=A9e,E=x9e,S=C9e,v=T9e,D=E9e,O=b9e,M=S9e,L=e[0],N=e[1];E=r.geodeticSurfaceNormal(L,E),x=m.subtract(N,L,x),x=m.normalize(x,x),O=m.cross(E,x,O),O=m.normalize(O,O);let _=s[0],b=s[1];o&&(A=bp(L,O,f,A,r,_+d,1,1)),M=m.clone(L,M),L=N,C=m.negate(x,C);let w,I;for(let k=1;k<g-1;k++){let V=o?2:1;if(N=e[k+1],L.equals(N)){Mt("Positions are too close and are considered equivalent with rounding error.");continue}x=m.subtract(N,L,x),x=m.normalize(x,x),T=m.add(x,C,T),T=m.normalize(T,T),E=r.geodeticSurfaceNormal(L,E);let G=m.multiplyByScalar(E,m.dot(x,E),L9e);m.subtract(x,G,G),m.normalize(G,G);let U=m.multiplyByScalar(E,m.dot(C,E),N9e);if(m.subtract(C,U,U),m.normalize(U,U),!P.equalsEpsilon(Math.abs(m.dot(G,U)),1,P.EPSILON7)){T=m.cross(T,E,T),T=m.cross(E,T,T),T=m.normalize(T,T);let Y=1/Math.max(.25,m.magnitude(m.cross(T,C,PT))),Q=sv.angleIsGreaterThanPi(x,C,L,r);Q?(S=m.add(L,m.multiplyByScalar(T,Y*p,T),S),v=m.add(S,m.multiplyByScalar(O,p,v),v),Hs[0]=m.clone(M,Hs[0]),Hs[1]=m.clone(v,Hs[1]),w=f9(Hs,_+d,b+d,a),I=Mi.generateArc({positions:Hs,granularity:a,ellipsoid:r}),h=m9(I,O,u,h,r,w,1),O=m.cross(E,x,O),O=m.normalize(O,O),D=m.add(S,m.multiplyByScalar(O,p,D),D),c===Ri.ROUNDED||c===Ri.BEVELED?ise(S,v,D,c,Q,r,h,u,b+d,o):(T=m.negate(T,T),h=bp(L,T,u,h,r,b+d,Y,V)),M=m.clone(D,M)):(S=m.add(L,m.multiplyByScalar(T,Y*p,T),S),v=m.add(S,m.multiplyByScalar(O,-p,v),v),Hs[0]=m.clone(M,Hs[0]),Hs[1]=m.clone(v,Hs[1]),w=f9(Hs,_+d,b+d,a),I=Mi.generateArc({positions:Hs,granularity:a,ellipsoid:r}),h=m9(I,O,u,h,r,w,1),O=m.cross(E,x,O),O=m.normalize(O,O),D=m.add(S,m.multiplyByScalar(O,-p,D),D),c===Ri.ROUNDED||c===Ri.BEVELED?ise(S,v,D,c,Q,r,h,u,b+d,o):h=bp(L,T,u,h,r,b+d,Y,V),M=m.clone(D,M)),C=m.negate(x,C)}else h=bp(M,O,u,h,r,_+d,1,1),M=L;_=b,b=s[k+1],L=N}Hs[0]=m.clone(M,Hs[0]),Hs[1]=m.clone(L,Hs[1]),w=f9(Hs,_+d,b+d,a),I=Mi.generateArc({positions:Hs,granularity:a,ellipsoid:r}),h=m9(I,O,u,h,r,w,1),o&&(A=bp(L,O,f,A,r,b+d,1,1)),g=h.length;let R=o?g+A.length:g,F=new Float64Array(R);return F.set(h),o&&F.set(A,g),F};var Mm=sv;var p9={},OT=new m,cse=new m,F9e=new m,ose=new m,Tc=[new m,new m],lse=new m,use=new m,fse=new m,U9e=new m,V9e=new m,k9e=new m,z9e=new m,H9e=new m,G9e=new m,W9e=new m,rse=new Ne,sse=new Z;function wF(e,t,n,i,o){let r=m.angleBetween(m.subtract(t,e,OT),m.subtract(n,e,cse)),s=i===Ri.BEVELED?1:Math.ceil(r/P.toRadians(5))+1,a=s*3,c=new Array(a);c[a-3]=n.x,c[a-2]=n.y,c[a-1]=n.z;let u;o?u=Z.fromQuaternion(Ne.fromAxisAngle(m.negate(e,OT),r/s,rse),sse):u=Z.fromQuaternion(Ne.fromAxisAngle(e,r/s,rse),sse);let f=0;t=m.clone(t,OT);for(let d=0;d<s;d++)t=Z.multiplyByVector(u,t,t),c[f++]=t.x,c[f++]=t.y,c[f++]=t.z;return c}function j9e(e){let t=lse,n=use,i=fse,o=e[1];n=m.fromArray(e[1],o.length-3,n),i=m.fromArray(e[0],0,i),t=m.midpoint(n,i,t);let r=wF(t,n,i,Ri.ROUNDED,!1),s=e.length-1,a=e[s-1];o=e[s],n=m.fromArray(a,a.length-3,n),i=m.fromArray(o,0,i),t=m.midpoint(n,i,t);let c=wF(t,n,i,Ri.ROUNDED,!1);return[r,c]}function ase(e,t,n,i){let o=OT;return i?o=m.add(e,t,o):(t=m.negate(t,t),o=m.add(e,t,o)),[o.x,o.y,o.z,n.x,n.y,n.z]}function h9(e,t,n,i){let o=new Array(e.length),r=new Array(e.length),s=m.multiplyByScalar(t,n,OT),a=m.negate(s,cse),c=0,u=e.length-1;for(let f=0;f<e.length;f+=3){let d=m.fromArray(e,f,F9e),p=m.add(d,a,ose);o[c++]=p.x,o[c++]=p.y,o[c++]=p.z;let g=m.add(d,s,ose);r[u--]=g.z,r[u--]=g.y,r[u--]=g.x}return i.push(o,r),i}p9.addAttribute=function(e,t,n,i){let o=t.x,r=t.y,s=t.z;l(n)&&(e[n]=o,e[n+1]=r,e[n+2]=s),l(i)&&(e[i]=s,e[i-1]=r,e[i-2]=o)};var Y9e=new m,q9e=new m;p9.computePositions=function(e){let t=e.granularity,n=e.positions,i=e.ellipsoid,o=e.width/2,r=e.cornerType,s=e.saveAttributes,a=lse,c=use,u=fse,f=U9e,d=V9e,p=k9e,g=z9e,h=H9e,A=G9e,x=W9e,C=[],T=s?[]:void 0,E=s?[]:void 0,S=n[0],v=n[1];c=m.normalize(m.subtract(v,S,c),c),a=i.geodeticSurfaceNormal(S,a),f=m.normalize(m.cross(a,c,f),f),s&&(T.push(f.x,f.y,f.z),E.push(a.x,a.y,a.z)),g=m.clone(S,g),S=v,u=m.negate(c,u);let D,O=[],M,L=n.length;for(M=1;M<L-1;M++){a=i.geodeticSurfaceNormal(S,a),v=n[M+1],c=m.normalize(m.subtract(v,S,c),c),d=m.normalize(m.add(c,u,d),d);let _=m.multiplyByScalar(a,m.dot(c,a),Y9e);m.subtract(c,_,_),m.normalize(_,_);let b=m.multiplyByScalar(a,m.dot(u,a),q9e);if(m.subtract(u,b,b),m.normalize(b,b),!P.equalsEpsilon(Math.abs(m.dot(_,b)),1,P.EPSILON7)){d=m.cross(d,a,d),d=m.cross(a,d,d),d=m.normalize(d,d);let I=o/Math.max(.25,m.magnitude(m.cross(d,u,OT))),R=Mm.angleIsGreaterThanPi(c,u,S,i);d=m.multiplyByScalar(d,I,d),R?(h=m.add(S,d,h),x=m.add(h,m.multiplyByScalar(f,o,x),x),A=m.add(h,m.multiplyByScalar(f,o*2,A),A),Tc[0]=m.clone(g,Tc[0]),Tc[1]=m.clone(x,Tc[1]),D=Mi.generateArc({positions:Tc,granularity:t,ellipsoid:i}),C=h9(D,f,o,C),s&&(T.push(f.x,f.y,f.z),E.push(a.x,a.y,a.z)),p=m.clone(A,p),f=m.normalize(m.cross(a,c,f),f),A=m.add(h,m.multiplyByScalar(f,o*2,A),A),g=m.add(h,m.multiplyByScalar(f,o,g),g),r===Ri.ROUNDED||r===Ri.BEVELED?O.push({leftPositions:wF(h,p,A,r,R)}):O.push({leftPositions:ase(S,m.negate(d,d),A,R)})):(A=m.add(S,d,A),x=m.add(A,m.negate(m.multiplyByScalar(f,o,x),x),x),h=m.add(A,m.negate(m.multiplyByScalar(f,o*2,h),h),h),Tc[0]=m.clone(g,Tc[0]),Tc[1]=m.clone(x,Tc[1]),D=Mi.generateArc({positions:Tc,granularity:t,ellipsoid:i}),C=h9(D,f,o,C),s&&(T.push(f.x,f.y,f.z),E.push(a.x,a.y,a.z)),p=m.clone(h,p),f=m.normalize(m.cross(a,c,f),f),h=m.add(A,m.negate(m.multiplyByScalar(f,o*2,h),h),h),g=m.add(A,m.negate(m.multiplyByScalar(f,o,g),g),g),r===Ri.ROUNDED||r===Ri.BEVELED?O.push({rightPositions:wF(A,p,h,r,R)}):O.push({rightPositions:ase(S,d,h,R)})),u=m.negate(c,u)}S=v}a=i.geodeticSurfaceNormal(S,a),Tc[0]=m.clone(g,Tc[0]),Tc[1]=m.clone(S,Tc[1]),D=Mi.generateArc({positions:Tc,granularity:t,ellipsoid:i}),C=h9(D,f,o,C),s&&(T.push(f.x,f.y,f.z),E.push(a.x,a.y,a.z));let N;return r===Ri.ROUNDED&&(N=j9e(C)),{positions:C,corners:O,lefts:T,normals:E,endPositions:N}};var Ui=p9;var hse=new m,pse=new m,vF=new m,DF=new m,X9e=new m,_se=new m,Cg=new m,MT=new m;function gse(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function ad(e,t,n,i,o,r){let s=e.normals,a=e.tangents,c=e.bitangents,u=m.normalize(m.cross(n,t,Cg),Cg);r.normal&&Ui.addAttribute(s,t,i,o),r.tangent&&Ui.addAttribute(a,u,i,o),r.bitangent&&Ui.addAttribute(c,n,i,o)}function yse(e,t,n){let i=e.positions,o=e.corners,r=e.endPositions,s=e.lefts,a=e.normals,c=new _n,u,f=0,d=0,p,g=0,h;for(p=0;p<i.length;p+=2)h=i[p].length-3,f+=h,g+=h*2,d+=i[p+1].length-3;for(f+=3,d+=3,p=0;p<o.length;p++){u=o[p];let J=o[p].leftPositions;l(J)?(h=J.length,f+=h,g+=h):(h=o[p].rightPositions.length,d+=h,g+=h)}let A=l(r),x;A&&(x=r[0].length-3,f+=x,d+=x,x/=3,g+=x*6);let C=f+d,T=new Float64Array(C),E=t.normal?new Float32Array(C):void 0,S=t.tangent?new Float32Array(C):void 0,v=t.bitangent?new Float32Array(C):void 0,D={normals:E,tangents:S,bitangents:v},O=0,M=C-1,L,N,_,b,w=hse,I=pse,R,F,k=x/2,V=Ve.createTypedArray(C/3,g),G=0;if(A){F=vF,R=DF;let J=r[0];for(w=m.fromArray(a,0,w),I=m.fromArray(s,0,I),p=0;p<k;p++)F=m.fromArray(J,(k-1-p)*3,F),R=m.fromArray(J,(k+p)*3,R),Ui.addAttribute(T,R,O),Ui.addAttribute(T,F,void 0,M),ad(D,w,I,O,M,t),N=O/3,b=N+1,L=(M-2)/3,_=L-1,V[G++]=L,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=b,O+=3,M-=3}let U=0,q=0,Y=i[U++],Q=i[U++];T.set(Y,O),T.set(Q,M-Q.length+1),I=m.fromArray(s,q,I);let W,K;for(h=Q.length-3,p=0;p<h;p+=3)W=n.geodeticSurfaceNormal(m.fromArray(Y,p,Cg),Cg),K=n.geodeticSurfaceNormal(m.fromArray(Q,h-p,MT),MT),w=m.normalize(m.add(W,K,w),w),ad(D,w,I,O,M,t),N=O/3,b=N+1,L=(M-2)/3,_=L-1,V[G++]=L,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=b,O+=3,M-=3;for(W=n.geodeticSurfaceNormal(m.fromArray(Y,h,Cg),Cg),K=n.geodeticSurfaceNormal(m.fromArray(Q,h,MT),MT),w=m.normalize(m.add(W,K,w),w),q+=3,p=0;p<o.length;p++){let J;u=o[p];let _e=u.leftPositions,xe=u.rightPositions,se,Ae,me=_se,Se=vF,Ie=DF;if(w=m.fromArray(a,q,w),l(_e)){for(ad(D,w,I,void 0,M,t),M-=3,se=b,Ae=_,J=0;J<_e.length/3;J++)me=m.fromArray(_e,J*3,me),V[G++]=se,V[G++]=Ae-J-1,V[G++]=Ae-J,Ui.addAttribute(T,me,void 0,M),Se=m.fromArray(T,(Ae-J-1)*3,Se),Ie=m.fromArray(T,se*3,Ie),I=m.normalize(m.subtract(Se,Ie,I),I),ad(D,w,I,void 0,M,t),M-=3;me=m.fromArray(T,se*3,me),Se=m.subtract(m.fromArray(T,Ae*3,Se),me,Se),Ie=m.subtract(m.fromArray(T,(Ae-J)*3,Ie),me,Ie),I=m.normalize(m.add(Se,Ie,I),I),ad(D,w,I,O,void 0,t),O+=3}else{for(ad(D,w,I,O,void 0,t),O+=3,se=_,Ae=b,J=0;J<xe.length/3;J++)me=m.fromArray(xe,J*3,me),V[G++]=se,V[G++]=Ae+J,V[G++]=Ae+J+1,Ui.addAttribute(T,me,O),Se=m.fromArray(T,se*3,Se),Ie=m.fromArray(T,(Ae+J)*3,Ie),I=m.normalize(m.subtract(Se,Ie,I),I),ad(D,w,I,O,void 0,t),O+=3;me=m.fromArray(T,se*3,me),Se=m.subtract(m.fromArray(T,(Ae+J)*3,Se),me,Se),Ie=m.subtract(m.fromArray(T,Ae*3,Ie),me,Ie),I=m.normalize(m.negate(m.add(Ie,Se,I),I),I),ad(D,w,I,void 0,M,t),M-=3}for(Y=i[U++],Q=i[U++],Y.splice(0,3),Q.splice(Q.length-3,3),T.set(Y,O),T.set(Q,M-Q.length+1),h=Q.length-3,q+=3,I=m.fromArray(s,q,I),J=0;J<Q.length;J+=3)W=n.geodeticSurfaceNormal(m.fromArray(Y,J,Cg),Cg),K=n.geodeticSurfaceNormal(m.fromArray(Q,h-J,MT),MT),w=m.normalize(m.add(W,K,w),w),ad(D,w,I,O,M,t),b=O/3,N=b-1,_=(M-2)/3,L=_+1,V[G++]=L,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=b,O+=3,M-=3;O-=3,M+=3}if(w=m.fromArray(a,a.length-3,w),ad(D,w,I,O,M,t),A){O+=3,M-=3,F=vF,R=DF;let J=r[1];for(p=0;p<k;p++)F=m.fromArray(J,(x-p-1)*3,F),R=m.fromArray(J,p*3,R),Ui.addAttribute(T,F,void 0,M),Ui.addAttribute(T,R,O),ad(D,w,I,O,M,t),b=O/3,N=b-1,_=(M-2)/3,L=_+1,V[G++]=L,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=b,O+=3,M-=3}if(c.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T}),t.st){let J=new Float32Array(C/3*2),_e,xe,se=0;if(A){f/=3,d/=3;let Ae=Math.PI/(x+1);xe=1/(f-x+1),_e=1/(d-x+1);let me,Se=x/2;for(p=Se+1;p<x+1;p++)me=P.PI_OVER_TWO+Ae*p,J[se++]=_e*(1+Math.cos(me)),J[se++]=.5*(1+Math.sin(me));for(p=1;p<d-x+1;p++)J[se++]=p*_e,J[se++]=0;for(p=x;p>Se;p--)me=P.PI_OVER_TWO-p*Ae,J[se++]=1-_e*(1+Math.cos(me)),J[se++]=.5*(1+Math.sin(me));for(p=Se;p>0;p--)me=P.PI_OVER_TWO-Ae*p,J[se++]=1-xe*(1+Math.cos(me)),J[se++]=.5*(1+Math.sin(me));for(p=f-x;p>0;p--)J[se++]=p*xe,J[se++]=1;for(p=1;p<Se+1;p++)me=P.PI_OVER_TWO+Ae*p,J[se++]=xe*(1+Math.cos(me)),J[se++]=.5*(1+Math.sin(me))}else{for(f/=3,d/=3,xe=1/(f-1),_e=1/(d-1),p=0;p<d;p++)J[se++]=p*_e,J[se++]=0;for(p=f;p>0;p--)J[se++]=(p-1)*xe,J[se++]=1}c.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:J})}return t.normal&&(c.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.normals})),t.tangent&&(c.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.tangents})),t.bitangent&&(c.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.bitangents})),{attributes:c,indices:V}}function K9e(e,t){if(!t.normal&&!t.tangent&&!t.bitangent&&!t.st)return e;let n=e.position.values,i,o;(t.normal||t.bitangent)&&(i=e.normal.values,o=e.bitangent.values);let r=e.position.values.length/18,s=r*3,a=r*2,c=s*2,u;if(t.normal||t.bitangent||t.tangent){let f=t.normal?new Float32Array(s*6):void 0,d=t.tangent?new Float32Array(s*6):void 0,p=t.bitangent?new Float32Array(s*6):void 0,g=hse,h=pse,A=vF,x=DF,C=X9e,T=_se,E=c;for(u=0;u<s;u+=3){let S=E+c;g=m.fromArray(n,u,g),h=m.fromArray(n,u+s,h),A=m.fromArray(n,(u+3)%s,A),h=m.subtract(h,g,h),A=m.subtract(A,g,A),x=m.normalize(m.cross(h,A,x),x),t.normal&&(Ui.addAttribute(f,x,S),Ui.addAttribute(f,x,S+3),Ui.addAttribute(f,x,E),Ui.addAttribute(f,x,E+3)),(t.tangent||t.bitangent)&&(T=m.fromArray(i,u,T),t.bitangent&&(Ui.addAttribute(p,T,S),Ui.addAttribute(p,T,S+3),Ui.addAttribute(p,T,E),Ui.addAttribute(p,T,E+3)),t.tangent&&(C=m.normalize(m.cross(T,x,C),C),Ui.addAttribute(d,C,S),Ui.addAttribute(d,C,S+3),Ui.addAttribute(d,C,E),Ui.addAttribute(d,C,E+3))),E+=6}if(t.normal){for(f.set(i),u=0;u<s;u+=3)f[u+s]=-i[u],f[u+s+1]=-i[u+1],f[u+s+2]=-i[u+2];e.normal.values=f}else e.normal=void 0;if(t.bitangent?(p.set(o),p.set(o,s),e.bitangent.values=p):e.bitangent=void 0,t.tangent){let S=e.tangent.values;d.set(S),d.set(S,s),e.tangent.values=d}}if(t.st){let f=e.st.values,d=new Float32Array(a*6);d.set(f),d.set(f,a);let p=a*2;for(let g=0;g<2;g++){for(d[p++]=f[0],d[p++]=f[1],u=2;u<a;u+=2){let h=f[u],A=f[u+1];d[p++]=h,d[p++]=A,d[p++]=h,d[p++]=A}d[p++]=f[0],d[p++]=f[1]}e.st.values=d}return e}function _9(e,t,n){n[t++]=e[0],n[t++]=e[1],n[t++]=e[2];for(let i=3;i<e.length;i+=3){let o=e[i],r=e[i+1],s=e[i+2];n[t++]=o,n[t++]=r,n[t++]=s,n[t++]=o,n[t++]=r,n[t++]=s}return n[t++]=e[0],n[t++]=e[1],n[t++]=e[2],n}function J9e(e,t){let n=new Pe({position:t.position,normal:t.normal||t.bitangent||e.shadowVolume,tangent:t.tangent,bitangent:t.normal||t.bitangent,st:t.st}),i=e.ellipsoid,o=Ui.computePositions(e),r=yse(o,n,i),s=e.height,a=e.extrudedHeight,c=r.attributes,u=r.indices,f=c.position.values,d=f.length,p=new Float64Array(d*6),g=new Float64Array(d);g.set(f);let h=new Float64Array(d*4);f=li.scaleToGeodeticHeight(f,s,i),h=_9(f,0,h),g=li.scaleToGeodeticHeight(g,a,i),h=_9(g,d*2,h),p.set(f),p.set(g,d),p.set(h,d*2),c.position.values=p,c=K9e(c,t);let A,x=d/3;if(e.shadowVolume){let L=c.normal.values;d=L.length;let N=new Float32Array(d*6);for(A=0;A<d;A++)L[A]=-L[A];N.set(L,d),N=_9(L,d*4,N),c.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:N}),t.normal||(c.normal=void 0)}if(l(e.offsetAttribute)){let L=new Uint8Array(x*6);if(e.offsetAttribute===rn.TOP)L=L.fill(1,0,x).fill(1,x*2,x*4);else{let N=e.offsetAttribute===rn.NONE?0:1;L=L.fill(N)}c.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:L})}let C=u.length,T=x+x,E=Ve.createTypedArray(p.length/3,C*2+T*3);E.set(u);let S=C;for(A=0;A<C;A+=3){let L=u[A],N=u[A+1],_=u[A+2];E[S++]=_+x,E[S++]=N+x,E[S++]=L+x}let v,D,O,M;for(A=0;A<T;A+=2)v=A+T,D=v+T,O=v+1,M=D+1,E[S++]=v,E[S++]=D,E[S++]=O,E[S++]=O,E[S++]=D,E[S++]=M;return{attributes:c,indices:E}}var dse=new m,av=new m,Ku=new he;function mse(e,t,n,i,o,r){let s=m.subtract(t,e,dse);m.normalize(s,s);let a=n.geodeticSurfaceNormal(e,av),c=m.cross(s,a,dse);m.multiplyByScalar(c,i,c);let u=o.latitude,f=o.longitude,d=r.latitude,p=r.longitude;m.add(e,c,av),n.cartesianToCartographic(av,Ku);let g=Ku.latitude,h=Ku.longitude;u=Math.min(u,g),f=Math.min(f,h),d=Math.max(d,g),p=Math.max(p,h),m.subtract(e,c,av),n.cartesianToCartographic(av,Ku),g=Ku.latitude,h=Ku.longitude,u=Math.min(u,g),f=Math.min(f,h),d=Math.max(d,g),p=Math.max(p,h),o.latitude=u,o.longitude=f,r.latitude=d,r.longitude=p}var Xu=new m,cv=new m,il=new he,ol=new he;function Ase(e,t,n,i,o){e=gse(e,t);let r=xo(e,m.equalsEpsilon),s=r.length;if(s<2||n<=0)return new le;let a=n*.5;il.latitude=Number.POSITIVE_INFINITY,il.longitude=Number.POSITIVE_INFINITY,ol.latitude=Number.NEGATIVE_INFINITY,ol.longitude=Number.NEGATIVE_INFINITY;let c,u;if(i===Ri.ROUNDED){let p=r[0];m.subtract(p,r[1],Xu),m.normalize(Xu,Xu),m.multiplyByScalar(Xu,a,Xu),m.add(p,Xu,cv),t.cartesianToCartographic(cv,Ku),c=Ku.latitude,u=Ku.longitude,il.latitude=Math.min(il.latitude,c),il.longitude=Math.min(il.longitude,u),ol.latitude=Math.max(ol.latitude,c),ol.longitude=Math.max(ol.longitude,u)}for(let p=0;p<s-1;++p)mse(r[p],r[p+1],t,a,il,ol);let f=r[s-1];m.subtract(f,r[s-2],Xu),m.normalize(Xu,Xu),m.multiplyByScalar(Xu,a,Xu),m.add(f,Xu,cv),mse(f,cv,t,a,il,ol),i===Ri.ROUNDED&&(t.cartesianToCartographic(cv,Ku),c=Ku.latitude,u=Ku.longitude,il.latitude=Math.min(il.latitude,c),il.longitude=Math.min(il.longitude,u),ol.latitude=Math.max(ol.latitude,c),ol.longitude=Math.max(ol.longitude,u));let d=l(o)?o:new le;return d.north=ol.latitude,d.south=il.latitude,d.east=ol.longitude,d.west=il.longitude,d}function wp(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.width,i=y(e.height,0),o=y(e.extrudedHeight,i);this._positions=t,this._ellipsoid=oe.clone(y(e.ellipsoid,oe.WGS84)),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Ri.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createCorridorGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this.packedLength=1+t.length*m.packedLength+oe.packedLength+Pe.packedLength+7}wp.pack=function(e,t,n){n=y(n,0);let i=e._positions,o=i.length;t[n++]=o;for(let r=0;r<o;++r,n+=m.packedLength)m.pack(i[r],t,n);return oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var xse=oe.clone(oe.UNIT_SPHERE),Cse=new Pe,Sp={positions:void 0,ellipsoid:xse,vertexFormat:Cse,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};wp.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=new Array(i);for(let h=0;h<i;++h,t+=m.packedLength)o[h]=m.unpack(e,t);let r=oe.unpack(e,t,xse);t+=oe.packedLength;let s=Pe.unpack(e,t,Cse);t+=Pe.packedLength;let a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t++]===1,g=e[t];return l(n)?(n._positions=o,n._ellipsoid=oe.clone(r,n._ellipsoid),n._vertexFormat=Pe.clone(s,n._vertexFormat),n._width=a,n._height=c,n._extrudedHeight=u,n._cornerType=f,n._granularity=d,n._shadowVolume=p,n._offsetAttribute=g===-1?void 0:g,n):(Sp.positions=o,Sp.width=a,Sp.height=c,Sp.extrudedHeight=u,Sp.cornerType=f,Sp.granularity=d,Sp.shadowVolume=p,Sp.offsetAttribute=g===-1?void 0:g,new wp(Sp))};wp.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.positions,i=e.width,o=y(e.ellipsoid,oe.WGS84),r=y(e.cornerType,Ri.ROUNDED);return Ase(n,o,i,r,t)};wp.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=gse(t,i);let o=xo(t,m.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!P.equalsEpsilon(r,s,0,P.EPSILON2),c=e._vertexFormat,u={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!0},f;if(a)u.height=r,u.extrudedHeight=s,u.shadowVolume=e._shadowVolume,u.offsetAttribute=e._offsetAttribute,f=J9e(u,c);else{let g=Ui.computePositions(u);if(f=yse(g,c,i),f.attributes.position.values=li.scaleToGeodeticHeight(f.attributes.position.values,r,i),l(e._offsetAttribute)){let h=e._offsetAttribute===rn.NONE?0:1,A=f.attributes.position.values.length,x=new Uint8Array(A/3).fill(h);f.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}}let d=f.attributes,p=ae.fromVertices(d.position.values,void 0,3);return c.position||(f.attributes.position.values=void 0),new dt({attributes:d,indices:f.indices,primitiveType:Le.TRIANGLES,boundingSphere:p,offsetAttribute:e._offsetAttribute})};wp.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new wp({positions:e._positions,width:e._width,cornerType:e._cornerType,ellipsoid:o,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(wp.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=Ase(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}});var RT=wp;var Tse=new m,Ese=new m,Z9e=new m;function Q9e(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function bse(e,t){let n=[],i=e.positions,o=e.corners,r=e.endPositions,s=new _n,a,c=0,u=0,f,d=0,p;for(f=0;f<i.length;f+=2)p=i[f].length-3,c+=p,d+=p/3*4,u+=i[f+1].length-3;for(c+=3,u+=3,f=0;f<o.length;f++){a=o[f];let R=o[f].leftPositions;l(R)?(p=R.length,c+=p,d+=p/3*2):(p=o[f].rightPositions.length,u+=p,d+=p/3*2)}let g=l(r),h;g&&(h=r[0].length-3,c+=h,u+=h,h/=3,d+=h*4);let A=c+u,x=new Float64Array(A),C=0,T=A-1,E,S,v,D,O,M,L=h/2,N=Ve.createTypedArray(A/3,d+4),_=0;if(N[_++]=C/3,N[_++]=(T-2)/3,g){n.push(C/3),M=Tse,O=Ese;let R=r[0];for(f=0;f<L;f++)M=m.fromArray(R,(L-1-f)*3,M),O=m.fromArray(R,(L+f)*3,O),Ui.addAttribute(x,O,C),Ui.addAttribute(x,M,void 0,T),S=C/3,D=S+1,E=(T-2)/3,v=E-1,N[_++]=E,N[_++]=v,N[_++]=S,N[_++]=D,C+=3,T-=3}let b=0,w=i[b++],I=i[b++];for(x.set(w,C),x.set(I,T-I.length+1),p=I.length-3,n.push(C/3,(T-2)/3),f=0;f<p;f+=3)S=C/3,D=S+1,E=(T-2)/3,v=E-1,N[_++]=E,N[_++]=v,N[_++]=S,N[_++]=D,C+=3,T-=3;for(f=0;f<o.length;f++){let R;a=o[f];let F=a.leftPositions,k=a.rightPositions,V,G=Z9e;if(l(F)){for(T-=3,V=v,n.push(D),R=0;R<F.length/3;R++)G=m.fromArray(F,R*3,G),N[_++]=V-R-1,N[_++]=V-R,Ui.addAttribute(x,G,void 0,T),T-=3;n.push(V-Math.floor(F.length/6)),t===Ri.BEVELED&&n.push((T-2)/3+1),C+=3}else{for(C+=3,V=D,n.push(v),R=0;R<k.length/3;R++)G=m.fromArray(k,R*3,G),N[_++]=V+R,N[_++]=V+R+1,Ui.addAttribute(x,G,C),C+=3;n.push(V+Math.floor(k.length/6)),t===Ri.BEVELED&&n.push(C/3-1),T-=3}for(w=i[b++],I=i[b++],w.splice(0,3),I.splice(I.length-3,3),x.set(w,C),x.set(I,T-I.length+1),p=I.length-3,R=0;R<I.length;R+=3)D=C/3,S=D-1,v=(T-2)/3,E=v+1,N[_++]=E,N[_++]=v,N[_++]=S,N[_++]=D,C+=3,T-=3;C-=3,T+=3,n.push(C/3,(T-2)/3)}if(g){C+=3,T-=3,M=Tse,O=Ese;let R=r[1];for(f=0;f<L;f++)M=m.fromArray(R,(h-f-1)*3,M),O=m.fromArray(R,f*3,O),Ui.addAttribute(x,M,void 0,T),Ui.addAttribute(x,O,C),D=C/3,S=D-1,v=(T-2)/3,E=v+1,N[_++]=E,N[_++]=v,N[_++]=S,N[_++]=D,C+=3,T-=3;n.push(C/3)}else n.push(C/3,(T-2)/3);return N[_++]=C/3,N[_++]=(T-2)/3,s.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:x}),{attributes:s,indices:N,wallIndices:n}}function $9e(e){let t=e.ellipsoid,n=Ui.computePositions(e),i=bse(n,e.cornerType),o=i.wallIndices,r=e.height,s=e.extrudedHeight,a=i.attributes,c=i.indices,u=a.position.values,f=u.length,d=new Float64Array(f);d.set(u);let p=new Float64Array(f*2);if(u=li.scaleToGeodeticHeight(u,r,t),d=li.scaleToGeodeticHeight(d,s,t),p.set(u),p.set(d,f),a.position.values=p,f/=3,l(e.offsetAttribute)){let E=new Uint8Array(f*2);if(e.offsetAttribute===rn.TOP)E=E.fill(1,0,f);else{let S=e.offsetAttribute===rn.NONE?0:1;E=E.fill(S)}a.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:E})}let g,h=c.length,A=Ve.createTypedArray(p.length/3,(h+o.length)*2);A.set(c);let x=h;for(g=0;g<h;g+=2){let E=c[g],S=c[g+1];A[x++]=E+f,A[x++]=S+f}let C,T;for(g=0;g<o.length;g++)C=o[g],T=C+f,A[x++]=C,A[x++]=T;return{attributes:a,indices:A}}function lv(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.width,i=y(e.height,0),o=y(e.extrudedHeight,i);this._positions=t,this._ellipsoid=oe.clone(y(e.ellipsoid,oe.WGS84)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Ri.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._offsetAttribute=e.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+t.length*m.packedLength+oe.packedLength+6}lv.pack=function(e,t,n){n=y(n,0);let i=e._positions,o=i.length;t[n++]=o;for(let r=0;r<o;++r,n+=m.packedLength)m.pack(i[r],t,n);return oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n]=y(e._offsetAttribute,-1),t};var Sse=oe.clone(oe.UNIT_SPHERE),Tg={positions:void 0,ellipsoid:Sse,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};lv.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=new Array(i);for(let p=0;p<i;++p,t+=m.packedLength)o[p]=m.unpack(e,t);let r=oe.unpack(e,t,Sse);t+=oe.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t];return l(n)?(n._positions=o,n._ellipsoid=oe.clone(r,n._ellipsoid),n._width=s,n._height=a,n._extrudedHeight=c,n._cornerType=u,n._granularity=f,n._offsetAttribute=d===-1?void 0:d,n):(Tg.positions=o,Tg.width=s,Tg.height=a,Tg.extrudedHeight=c,Tg.cornerType=u,Tg.granularity=f,Tg.offsetAttribute=d===-1?void 0:d,new lv(Tg))};lv.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=Q9e(t,i);let o=xo(t,m.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!P.equalsEpsilon(r,s,0,P.EPSILON2),c={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!1},u;if(a)c.height=r,c.extrudedHeight=s,c.offsetAttribute=e._offsetAttribute,u=$9e(c);else{let p=Ui.computePositions(c);if(u=bse(p,c.cornerType),u.attributes.position.values=li.scaleToGeodeticHeight(u.attributes.position.values,r,i),l(e._offsetAttribute)){let g=u.attributes.position.values.length,h=e._offsetAttribute===rn.NONE?0:1,A=new Uint8Array(g/3).fill(h);u.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}}let f=u.attributes,d=ae.fromVertices(f.position.values,void 0,3);return new dt({attributes:f,indices:u.indices,primitiveType:Le.LINES,boundingSphere:d,offsetAttribute:e._offsetAttribute})};var IF=lv;var eWe=new $n(0);function Ec(e){ci.call(this,e),this._zIndex=0,this._terrainOffsetProperty=void 0}l(Object.create)&&(Ec.prototype=Object.create(ci.prototype),Ec.prototype.constructor=Ec);Object.defineProperties(Ec.prototype,{zIndex:{get:function(){return this._zIndex}},terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Ec.prototype._isOnTerrain=function(e,t){return this._fillEnabled&&!l(t.height)&&!l(t.extrudedHeight)&&qc.isSupported(this._scene)};Ec.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight;return t===0||l(n)&&n!==t};Ec.prototype._computeCenter=fe.throwInstantiationError;Ec.prototype._onEntityPropertyChanged=function(e,t,n,i){if(ci.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o))return;l(o.zIndex)&&(l(o.height)||l(o.extrudedHeight))&&Mt(Mt.geometryZIndex),this._zIndex=y(o.zIndex,eWe),l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference,s=o.extrudedHeightReference;if(l(r)||l(s)){let a=new fm(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new TC(this._scene,a,r,s)}};Ec.prototype.destroy=function(){l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0),ci.prototype.destroy.call(this)};Ec.getGeometryHeight=function(e,t){if(!l(e)){t!==qe.NONE&&Mt(Mt.geometryHeightReference);return}return t!==qe.CLAMP_TO_GROUND?e:0};Ec.getGeometryExtrudedHeight=function(e,t){if(!l(e)){t!==qe.NONE&&Mt(Mt.geometryExtrudedHeightReference);return}return t!==qe.CLAMP_TO_GROUND?e:Ec.CLAMP_TO_GROUND};Ec.CLAMP_TO_GROUND="clamp";Ec.computeGeometryOffsetAttribute=function(e,t,n,i){(!l(e)||!l(t))&&(t=qe.NONE),(!l(n)||!l(i))&&(i=qe.NONE);let o=0;if(t!==qe.NONE&&o++,i===qe.RELATIVE_TO_GROUND&&o++,o===2)return rn.ALL;if(o===1)return rn.TOP};var Kn=Ec;var wse=new z,vse=m.ZERO,Dse=new m,Ise=new le;function tWe(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.cornerType=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.offsetAttribute=void 0}function cd(e,t){Kn.call(this,{entity:e,scene:t,geometryOptions:new tWe(e),geometryPropertyName:"corridor",observedPropertyNames:["availability","corridor"]}),this._onEntityPropertyChanged(e,"corridor",e.corridor,void 0)}l(Object.create)&&(cd.prototype=Object.create(Kn.prototype),cd.prototype.constructor=cd);cd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Ut){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,wse)),l(o)||(o=z.WHITE),i.color=Vt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,vse,Dse))),new Tt({id:t,geometry:new RT(this._options),attributes:i})};cd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,wse),o={show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Vt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0};return l(this._options.offsetAttribute)&&(o.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,vse,Dse))),new Tt({id:t,geometry:new IF(this._options),attributes:o})};cd.prototype._computeCenter=function(e,t){let n=j.getValueOrUndefined(this._entity.corridor.positions,e);if(!(!l(n)||n.length===0))return m.clone(n[Math.floor(n.length/2)],t)};cd.prototype._isHidden=function(e,t){return!l(t.positions)||!l(t.width)||ci.prototype._isHidden.call(this,e,t)};cd.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!j.isConstant(t.height)||!j.isConstant(t.extrudedHeight)||!j.isConstant(t.granularity)||!j.isConstant(t.width)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.cornerType)||!j.isConstant(t.zIndex)||this._onTerrain&&!j.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};cd.prototype._setStaticOptions=function(e,t){let n=j.getValueOrUndefined(t.height,Ge.MINIMUM_VALUE),i=j.getValueOrDefault(t.heightReference,Ge.MINIMUM_VALUE,qe.NONE),o=j.getValueOrUndefined(t.extrudedHeight,Ge.MINIMUM_VALUE),r=j.getValueOrDefault(t.extrudedHeightReference,Ge.MINIMUM_VALUE,qe.NONE);l(o)&&!l(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Ut?sn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(Ge.MINIMUM_VALUE,s.positions),s.width=t.width.getValue(Ge.MINIMUM_VALUE),s.granularity=j.getValueOrUndefined(t.granularity,Ge.MINIMUM_VALUE),s.cornerType=j.getValueOrUndefined(t.cornerType,Ge.MINIMUM_VALUE),s.offsetAttribute=Kn.computeGeometryOffsetAttribute(n,i,o,r),s.height=Kn.getGeometryHeight(n,i),o=Kn.getGeometryExtrudedHeight(o,r),o===Kn.CLAMP_TO_GROUND&&(o=si.getMinimumMaximumHeights(RT.computeRectangle(s,Ise)).minimumTerrainHeight),s.extrudedHeight=o};cd.DynamicGeometryUpdater=BT;function BT(e,t,n){ai.call(this,e,t,n)}l(Object.create)&&(BT.prototype=Object.create(ai.prototype),BT.prototype.constructor=BT);BT.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.positions)||!l(i.width)||ai.prototype._isHidden.call(this,e,t,n)};BT.prototype._setOptions=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(t.height,n),r=j.getValueOrDefault(t.heightReference,n,qe.NONE),s=j.getValueOrUndefined(t.extrudedHeight,n),a=j.getValueOrDefault(t.extrudedHeightReference,n,qe.NONE);l(s)&&!l(o)&&(o=0),i.positions=j.getValueOrUndefined(t.positions,n),i.width=j.getValueOrUndefined(t.width,n),i.granularity=j.getValueOrUndefined(t.granularity,n),i.cornerType=j.getValueOrUndefined(t.cornerType,n),i.offsetAttribute=Kn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Kn.getGeometryHeight(o,r),s=Kn.getGeometryExtrudedHeight(s,a),s===Kn.CLAMP_TO_GROUND&&(s=si.getMinimumMaximumHeights(RT.computeRectangle(i,Ise)).minimumTerrainHeight),i.extrudedHeight=s};var PF=cd;function OF(){fe.throwInstantiationError()}Object.defineProperties(OF.prototype,{name:{get:fe.throwInstantiationError},clock:{get:fe.throwInstantiationError},entities:{get:fe.throwInstantiationError},isLoading:{get:fe.throwInstantiationError},changedEvent:{get:fe.throwInstantiationError},errorEvent:{get:fe.throwInstantiationError},loadingEvent:{get:fe.throwInstantiationError},show:{get:fe.throwInstantiationError},clustering:{get:fe.throwInstantiationError}});OF.prototype.update=function(e){fe.throwInstantiationError()};OF.setLoading=function(e,t){e._isLoading!==t&&(t?e._entityCollection.suspendEvents():e._entityCollection.resumeEvents(),e._isLoading=t,e._loading.raiseEvent(e,t))};var Br=OF;function Rm(e,t){this._ellipsoid=e,this._cameraPosition=new m,this._cameraPositionInScaledSpace=new m,this._distanceToLimbInScaledSpaceSquared=0,l(t)&&(this.cameraPosition=t)}Object.defineProperties(Rm.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),i=m.magnitudeSquared(n)-1;m.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=n,this._distanceToLimbInScaledSpaceSquared=i}}});var Pse=new m;Rm.prototype.isPointVisible=function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,Pse);return y9(n,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};Rm.prototype.isScaledSpacePointVisible=function(e){return y9(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var nWe=new m;Rm.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(e,t){let n=this._ellipsoid,i,o;return l(t)&&t<0&&n.minimumRadius>-t?(o=nWe,o.x=this._cameraPosition.x/(n.radii.x+t),o.y=this._cameraPosition.y/(n.radii.y+t),o.z=this._cameraPosition.z/(n.radii.z+t),i=o.x*o.x+o.y*o.y+o.z*o.z-1):(o=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),y9(e,o,i)};Rm.prototype.computeHorizonCullingPoint=function(e,t,n){return Rse(this._ellipsoid,e,t,n)};var Ose=oe.clone(oe.UNIT_SPHERE);Rm.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,n,i){let o=Mse(this._ellipsoid,n,Ose);return Rse(o,e,t,i)};Rm.prototype.computeHorizonCullingPointFromVertices=function(e,t,n,i,o){return Bse(this._ellipsoid,e,t,n,i,o)};Rm.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,n,i,o,r){let s=Mse(this._ellipsoid,o,Ose);return Bse(s,e,t,n,i,r)};var iWe=[];Rm.prototype.computeHorizonCullingPointFromRectangle=function(e,t,n){let i=le.subsample(e,t,0,iWe),o=ae.fromPoints(i);if(!(m.magnitude(o.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(o.center,i,n)};var oWe=new m;function Mse(e,t,n){if(l(t)&&t<0&&e.minimumRadius>-t){let i=m.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,oWe);e=oe.fromCartesian3(i,n)}return e}function Rse(e,t,n,i){l(i)||(i=new m);let o=Fse(e,t),r=0;for(let s=0,a=n.length;s<a;++s){let c=n[s],u=Lse(e,c,o);if(u<0)return;r=Math.max(r,u)}return Nse(o,r,i)}var MF=new m;function Bse(e,t,n,i,o,r){l(r)||(r=new m),i=y(i,3),o=y(o,m.ZERO);let s=Fse(e,t),a=0;for(let c=0,u=n.length;c<u;c+=i){MF.x=n[c]+o.x,MF.y=n[c+1]+o.y,MF.z=n[c+2]+o.z;let f=Lse(e,MF,s);if(f<0)return;a=Math.max(a,f)}return Nse(s,a,r)}function y9(e,t,n){let i=t,o=n,r=m.subtract(e,i,Pse),s=-m.dot(r,i);return!(o<0?s>0:s>o&&s*s/m.magnitudeSquared(r)>o)}var rWe=new m,sWe=new m;function Lse(e,t,n){let i=e.transformPositionToScaledSpace(t,rWe),o=m.magnitudeSquared(i),r=Math.sqrt(o),s=m.divideByScalar(i,r,sWe);o=Math.max(1,o),r=Math.max(1,r);let a=m.dot(s,n),c=m.magnitude(m.cross(s,n,s)),u=1/r,f=Math.sqrt(o-1)*u;return 1/(a*u-c*f)}function Nse(e,t,n){if(!(t<=0||t===1/0||t!==t))return m.multiplyByScalar(e,t,n)}var g9=new m;function Fse(e,t){return m.equals(t,m.ZERO)?t:(e.transformPositionToScaledSpace(t,g9),m.normalize(g9,g9))}var Eg=Rm;function Sr(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.scaleByDistance,o=e.distanceDisplayCondition;l(n)&&(n=Lt.clone(n)),l(i)&&(i=Lt.clone(i)),l(o)&&(o=Dt.clone(o)),this._show=y(e.show,!0),this._position=m.clone(y(e.position,m.ZERO)),this._actualPosition=m.clone(this._position),this._color=z.clone(y(e.color,z.WHITE)),this._outlineColor=z.clone(y(e.outlineColor,z.TRANSPARENT)),this._outlineWidth=y(e.outlineWidth,0),this._pixelSize=y(e.pixelSize,10),this._scaleByDistance=i,this._translucencyByDistance=n,this._distanceDisplayCondition=o,this._disableDepthTestDistance=y(e.disableDepthTestDistance,0),this._id=e.id,this._collection=y(e.collection,t),this._clusterShow=!0,this._pickId=void 0,this._pointPrimitiveCollection=t,this._dirty=!1,this._index=-1}var Use=Sr.SHOW_INDEX=0,zse=Sr.POSITION_INDEX=1,aWe=Sr.COLOR_INDEX=2,cWe=Sr.OUTLINE_COLOR_INDEX=3,lWe=Sr.OUTLINE_WIDTH_INDEX=4,uWe=Sr.PIXEL_SIZE_INDEX=5,fWe=Sr.SCALE_BY_DISTANCE_INDEX=6,dWe=Sr.TRANSLUCENCY_BY_DISTANCE_INDEX=7,mWe=Sr.DISTANCE_DISPLAY_CONDITION_INDEX=8,hWe=Sr.DISABLE_DEPTH_DISTANCE_INDEX=9;Sr.NUMBER_OF_PROPERTIES=10;function Ju(e,t){let n=e._pointPrimitiveCollection;l(n)&&(n._updatePointPrimitive(e,t),e._dirty=!0)}Object.defineProperties(Sr.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Ju(this,Use))}},position:{get:function(){return this._position},set:function(e){let t=this._position;m.equals(t,e)||(m.clone(e,t),m.clone(e,this._actualPosition),Ju(this,zse))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Lt.equals(t,e)||(this._scaleByDistance=Lt.clone(e,t),Ju(this,fWe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Lt.equals(t,e)||(this._translucencyByDistance=Lt.clone(e,t),Ju(this,dWe))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,Ju(this,uWe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),Ju(this,aWe))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),Ju(this,cWe))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Ju(this,lWe))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Dt.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=Dt.clone(e,this._distanceDisplayCondition),Ju(this,mWe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Ju(this,hWe))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Ju(this,Use))}}});Sr.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId};Sr.prototype._getActualPosition=function(){return this._actualPosition};Sr.prototype._setActualPosition=function(e){m.clone(e,this._actualPosition),Ju(this,zse)};var Vse=new re;Sr._computeActualPosition=function(e,t,n){return t.mode===ne.SCENE3D?e:(B.multiplyByPoint(n,e,Vse),Qi.computeActualWgs84Position(t,Vse))};var kse=new re;Sr._computeScreenSpacePosition=function(e,t,n,i){let o=B.multiplyByVector(e,re.fromElements(t.x,t.y,t.z,1,kse),kse);return Qi.wgs84ToWindowCoordinates(n,o,i)};Sr.prototype.computeScreenSpacePosition=function(e,t){let n=this._pointPrimitiveCollection;l(t)||(t=new H);let i=n.modelMatrix,o=Sr._computeScreenSpacePosition(i,this._actualPosition,e,t);if(l(o))return o.y=e.canvas.clientHeight-o.y,o};Sr.getScreenSpaceBoundingBox=function(e,t,n){let i=e.pixelSize,o=i*.5,r=t.x-o,s=t.y-o,a=i,c=i;return l(n)||(n=new Ke),n.x=r,n.y=s,n.width=a,n.height=c,n};Sr.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&m.equals(this._position,e._position)&&z.equals(this._color,e._color)&&this._pixelSize===e._pixelSize&&this._outlineWidth===e._outlineWidth&&this._show===e._show&&z.equals(this._outlineColor,e._outlineColor)&&Lt.equals(this._scaleByDistance,e._scaleByDistance)&&Lt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Dt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance};Sr.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0};var Gs=Sr;var tA=`in vec4 v_color; +in vec4 v_outlineColor; +in float v_innerPercent; +in float v_pixelDistance; +in vec4 v_pickColor; + +void main() +{ + // The distance in UV space from this fragment to the center of the point, at most 0.5. + float distanceToCenter = length(gl_PointCoord - vec2(0.5)); + // The max distance stops one pixel shy of the edge to leave space for anti-aliasing. + float maxDistance = max(0.0, 0.5 - v_pixelDistance); + float wholeAlpha = 1.0 - smoothstep(maxDistance, 0.5, distanceToCenter); + float innerAlpha = 1.0 - smoothstep(maxDistance * v_innerPercent, 0.5 * v_innerPercent, distanceToCenter); + + vec4 color = mix(v_outlineColor, v_color, innerAlpha); + color.a *= wholeAlpha; + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + + out_FragColor = czm_gammaCorrect(color); + czm_writeLogDepth(); +} +`;var RF=`uniform float u_maxTotalPointSize; + +in vec4 positionHighAndSize; +in vec4 positionLowAndOutline; +in vec4 compressedAttribute0; // color, outlineColor, pick color +in vec4 compressedAttribute1; // show, translucency by distance, some free space +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec3 distanceDisplayConditionAndDisableDepth; // near, far, disableDepthTestDistance + +out vec4 v_color; +out vec4 v_outlineColor; +out float v_innerPercent; +out float v_pixelDistance; +out vec4 v_pickColor; + +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; + +void main() +{ + // Modifying this shader may also require modifications to PointPrimitive._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndSize.xyz; + vec3 positionLow = positionLowAndOutline.xyz; + float outlineWidthBothSides = 2.0 * positionLowAndOutline.w; + float totalSize = positionHighAndSize.w + outlineWidthBothSides; + float outlinePercent = outlineWidthBothSides / totalSize; + // Scale in response to browser-zoom. + totalSize *= czm_pixelRatio; + + float temp = compressedAttribute1.x * SHIFT_RIGHT8; + float show = floor(temp); + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + + /////////////////////////////////////////////////////////////////////////// + + vec4 color; + vec4 outlineColor; + vec4 pickColor; + + // compressedAttribute0.z => pickColor.rgb + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + // compressedAttribute0.x => color.rgb + + temp = compressedAttribute0.x * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + // compressedAttribute0.y => outlineColor.rgb + + temp = compressedAttribute0.y * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + // compressedAttribute0.w => color.a, outlineColor.a, pickColor.a + + temp = compressedAttribute0.w * SHIFT_RIGHT8; + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor = pickColor / 255.0; + + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor /= 255.0; + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + totalSize *= czm_nearFarScalar(scaleByDistance, lengthSq); +#endif + if (totalSize > 0.0) { + // Add padding for anti-aliasing on both sides. + totalSize += 3.0; + } + + // Clamp to max point size. + totalSize = min(totalSize, u_maxTotalPointSize); + // If size is too small, push vertex behind near plane for clipping. + // Note that context.minimumAliasedPointSize "will be at most 1.0". + if (totalSize < 1.0) + { + positionEC.xyz = vec3(0.0); + totalSize = 1.0; + } + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency < 0.004) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = distanceDisplayConditionAndDisableDepth.x; + float farSq = distanceDisplayConditionAndDisableDepth.y; + if (lengthSq < nearSq || lengthSq > farSq) { + // push vertex behind camera to force it to be clipped + positionEC.xyz = vec3(0.0, 0.0, 1.0); + } +#endif + + gl_Position = czm_projection * positionEC; + czm_vertexLogDepth(); + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = distanceDisplayConditionAndDisableDepth.z; + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + czm_vertexLogDepth(vec4(czm_currentFrustum.x)); +#endif + } + } +#endif + + v_color = color; + v_color.a *= translucency * show; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency * show; + + v_innerPercent = 1.0 - outlinePercent; + v_pixelDistance = 2.0 / totalSize; + gl_PointSize = totalSize * show; + gl_Position *= show; + + v_pickColor = pickColor; +} +`;var pWe=Gs.SHOW_INDEX,C9=Gs.POSITION_INDEX,Hse=Gs.COLOR_INDEX,_We=Gs.OUTLINE_COLOR_INDEX,gWe=Gs.OUTLINE_WIDTH_INDEX,yWe=Gs.PIXEL_SIZE_INDEX,Gse=Gs.SCALE_BY_DISTANCE_INDEX,Wse=Gs.TRANSLUCENCY_BY_DISTANCE_INDEX,jse=Gs.DISTANCE_DISPLAY_CONDITION_INDEX,AWe=Gs.DISABLE_DEPTH_DISTANCE_INDEX,T9=Gs.NUMBER_OF_PROPERTIES,Ha={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepth:5};function Zu(e){e=y(e,y.EMPTY_OBJECT),this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._propertiesChanged=new Uint32Array(T9),this._maxPixelSize=1,this._baseVolume=new ae,this._baseVolumeWC=new ae,this._baseVolume2D=new ae,this._boundingVolume=new ae,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._modelMatrix=B.clone(B.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,So.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW];let t=this;this._uniforms={u_maxTotalPointSize:function(){return t._maxTotalPointSize}}}Object.defineProperties(Zu.prototype,{length:{get:function(){return E9(this),this._pointPrimitives.length}}});function Yse(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Zu.prototype.add=function(e){let t=new Gs(e,this);return t._index=this._pointPrimitives.length,this._pointPrimitives.push(t),this._createVertexArray=!0,t};Zu.prototype.remove=function(e){return this.contains(e)?(this._pointPrimitives[e._index]=null,this._pointPrimitivesRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Zu.prototype.removeAll=function(){Yse(this._pointPrimitives),this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!0};function E9(e){if(e._pointPrimitivesRemoved){e._pointPrimitivesRemoved=!1;let t=[],n=e._pointPrimitives,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];s&&(s._index=r++,t.push(s))}e._pointPrimitives=t}}Zu.prototype._updatePointPrimitive=function(e,t){e._dirty||(this._pointPrimitivesToUpdate[this._pointPrimitivesToUpdateIndex++]=e),++this._propertiesChanged[t]};Zu.prototype.contains=function(e){return l(e)&&e._pointPrimitiveCollection===this};Zu.prototype.get=function(e){return E9(this),this._pointPrimitives[e]};Zu.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<T9;++i){let o=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function xWe(e,t,n){return new p_(e,[{index:Ha.positionHighAndSize,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[C9]},{index:Ha.positionLowAndShow,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[C9]},{index:Ha.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Hse]},{index:Ha.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Wse]},{index:Ha.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Gse]},{index:Ha.distanceDisplayConditionAndDisableDepth,componentsPerAttribute:3,componentDatatype:X.FLOAT,usage:n[jse]}],t)}var A9=new Yn;function qse(e,t,n,i){let o=i._index,r=i._getActualPosition();e._mode===ne.SCENE3D&&(ae.expand(e._baseVolume,r,e._baseVolume),e._boundingVolumeDirty=!0),Yn.fromCartesian(r,A9);let s=i.pixelSize,a=i.outlineWidth;e._maxPixelSize=Math.max(e._maxPixelSize,s+a);let c=n[Ha.positionHighAndSize],u=A9.high;c(o,u.x,u.y,u.z,s);let f=n[Ha.positionLowAndOutline],d=A9.low;f(o,d.x,d.y,d.z,a)}var BF=65536,uv=256;function Xse(e,t,n,i){let o=i._index,r=i.color,s=i.getPickId(t).color,a=i.outlineColor,c=z.floatToByte(r.red),u=z.floatToByte(r.green),f=z.floatToByte(r.blue),d=c*BF+u*uv+f;c=z.floatToByte(a.red),u=z.floatToByte(a.green),f=z.floatToByte(a.blue);let p=c*BF+u*uv+f;c=z.floatToByte(s.red),u=z.floatToByte(s.green),f=z.floatToByte(s.blue);let g=c*BF+u*uv+f,h=z.floatToByte(r.alpha)*BF+z.floatToByte(a.alpha)*uv+z.floatToByte(s.alpha),A=n[Ha.compressedAttribute0];A(o,d,p,g,h)}function Kse(e,t,n,i){let o=i._index,r=0,s=1,a=1,c=1,u=i.translucencyByDistance;l(u)&&(r=u.near,s=u.nearValue,a=u.far,c=u.farValue,(s!==1||c!==1)&&(e._shaderTranslucencyByDistance=!0));let f=i.show&&i.clusterShow;i.color.alpha===0&&i.outlineColor.alpha===0&&(f=!1),s=P.clamp(s,0,1),s=s===1?255:s*255|0;let d=(f?1:0)*uv+s;c=P.clamp(c,0,1),c=c===1?255:c*255|0;let p=c,g=n[Ha.compressedAttribute1];g(o,d,p,r,a)}function Jse(e,t,n,i){let o=i._index,r=n[Ha.scaleByDistance],s=0,a=1,c=1,u=1,f=i.scaleByDistance;l(f)&&(s=f.near,a=f.nearValue,c=f.far,u=f.farValue,(a!==1||u!==1)&&(e._shaderScaleByDistance=!0)),r(o,s,a,c,u)}function Zse(e,t,n,i){let o=i._index,r=n[Ha.distanceDisplayConditionAndDisableDepth],s=0,a=Number.MAX_VALUE,c=i.distanceDisplayCondition;l(c)&&(s=c.near,a=c.far,s*=s,a*=a,e._shaderDistanceDisplayCondition=!0);let u=i.disableDepthTestDistance;u*=u,u>0&&(e._shaderDisableDepthDistance=!0,u===Number.POSITIVE_INFINITY&&(u=-1)),r(o,s,a,u)}function CWe(e,t,n,i){qse(e,t,n,i),Xse(e,t,n,i),Kse(e,t,n,i),Jse(e,t,n,i),Zse(e,t,n,i)}function x9(e,t,n,i,o,r){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let u=t[c],f=u.position,d=Gs._computeActualPosition(f,i,o);l(d)&&(u._setActualPosition(d),r?a.push(d):ae.expand(s,d,s))}r&&ae.fromPoints(a,s)}function TWe(e,t){let n=t.mode,i=e._pointPrimitives,o=e._pointPrimitivesToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==ne.SCENE3D&&!B.equals(r,e.modelMatrix)?(e._mode=n,B.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===ne.SCENE3D||n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&x9(e,i,i.length,t,r,!0)):n===ne.MORPHING?x9(e,i,i.length,t,r,!0):(n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&x9(e,o,e._pointPrimitivesToUpdateIndex,t,r,!1)}function EWe(e,t,n){let o=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*e._maxPixelSize;n.radius+=o}var bWe=[];Zu.prototype.update=function(e){if(E9(this),!this.show)return;this._maxTotalPointSize=zt.maximumAliasedPointSize,TWe(this,e);let n=this._pointPrimitives.length,i=this._pointPrimitivesToUpdate,o=this._pointPrimitivesToUpdateIndex,r=this._propertiesChanged,s=this._createVertexArray,a,c=e.context,u=e.passes,f=u.pick;if(s||!f&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let v=0;v<T9;++v)r[v]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=xWe(c,n,this._buffersUsage),a=this._vaf.writers;for(let v=0;v<n;++v){let D=this._pointPrimitives[v];D._dirty=!1,CWe(this,c,a,D)}this._vaf.commit()}this._pointPrimitivesToUpdateIndex=0}else if(o>0){let v=bWe;v.length=0,(r[C9]||r[gWe]||r[yWe])&&v.push(qse),(r[Hse]||r[_We])&&v.push(Xse),(r[pWe]||r[Wse])&&v.push(Kse),r[Gse]&&v.push(Jse),(r[jse]||r[AWe])&&v.push(Zse);let D=v.length;if(a=this._vaf.writers,o/n>.1){for(let O=0;O<o;++O){let M=i[O];M._dirty=!1;for(let L=0;L<D;++L)v[L](this,c,a,M)}this._vaf.commit()}else{for(let O=0;O<o;++O){let M=i[O];M._dirty=!1;for(let L=0;L<D;++L)v[L](this,c,a,M);this._vaf.subCommit(M._index,1)}this._vaf.endSubCommits()}this._pointPrimitivesToUpdateIndex=0}if(o>n*1.5&&(i.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ae.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let d,p=B.IDENTITY;e.mode===ne.SCENE3D?(p=this.modelMatrix,d=ae.clone(this._baseVolumeWC,this._boundingVolume)):d=ae.clone(this._baseVolume2D,this._boundingVolume),EWe(this,e,d);let g=this._blendOption!==this.blendOption;this._blendOption=this.blendOption,g&&(this._blendOption===So.OPAQUE||this._blendOption===So.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=ze.fromCache({depthTest:{enabled:!0,func:te.LEQUAL},depthMask:!0}):this._rsOpaque=void 0,this._blendOption===So.TRANSLUCENT||this._blendOption===So.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=ze.fromCache({depthTest:{enabled:!0,func:te.LEQUAL},depthMask:!1,blending:mn.ALPHA_BLEND}):this._rsTranslucent=void 0),this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let h,A;(g||this._shaderScaleByDistance&&!this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance&&!this._compiledShaderTranslucencyByDistance||this._shaderDistanceDisplayCondition&&!this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance)&&(h=new He({sources:[RF]}),this._shaderScaleByDistance&&h.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&h.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderDistanceDisplayCondition&&h.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&h.defines.push("DISABLE_DEPTH_DISTANCE"),this._blendOption===So.OPAQUE_AND_TRANSLUCENT&&(A=new He({defines:["OPAQUE"],sources:[tA]}),this._sp=Jt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:h,fragmentShaderSource:A,attributeLocations:Ha}),A=new He({defines:["TRANSLUCENT"],sources:[tA]}),this._spTranslucent=Jt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:h,fragmentShaderSource:A,attributeLocations:Ha})),this._blendOption===So.OPAQUE&&(A=new He({sources:[tA]}),this._sp=Jt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:h,fragmentShaderSource:A,attributeLocations:Ha})),this._blendOption===So.TRANSLUCENT&&(A=new He({sources:[tA]}),this._spTranslucent=Jt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:h,fragmentShaderSource:A,attributeLocations:Ha})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);let x,C,T,E,S=e.commandList;if(u.render||f){let v=this._colorCommands,D=this._blendOption===So.OPAQUE,O=this._blendOption===So.OPAQUE_AND_TRANSLUCENT;x=this._vaf.va,C=x.length,v.length=C;let M=O?C*2:C;for(E=0;E<M;++E){let L=D||O&&E%2===0;T=v[E],l(T)||(T=v[E]=new it),T.primitiveType=Le.POINTS,T.pass=L||!O?be.OPAQUE:be.TRANSLUCENT,T.owner=this;let N=O?Math.floor(E/2):E;T.boundingVolume=d,T.modelMatrix=p,T.shaderProgram=L?this._sp:this._spTranslucent,T.uniformMap=this._uniforms,T.vertexArray=x[N].va,T.renderState=L?this._rsOpaque:this._rsTranslucent,T.debugShowBoundingVolume=this.debugShowBoundingVolume,T.pickId="v_pickColor",S.push(T)}}};Zu.prototype.isDestroyed=function(){return!1};Zu.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),Yse(this._pointPrimitives),ue(this)};var fv=Zu;var Qse=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],b9=1,dv=8,nA=class{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");let[n,i]=new Uint8Array(t,0,2);if(n!==219)throw new Error("Data does not appear to be in a KDBush format.");let o=i>>4;if(o!==b9)throw new Error(`Got v${o} data when expected v${b9}.`);let r=Qse[i&15];if(!r)throw new Error("Unrecognized array type.");let[s]=new Uint16Array(t,2,1),[a]=new Uint32Array(t,4,1);return new nA(a,s,r,t)}constructor(t,n=64,i=Float64Array,o){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+n,2),65535),this.ArrayType=i,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;let r=Qse.indexOf(this.ArrayType),s=t*2*this.ArrayType.BYTES_PER_ELEMENT,a=t*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-a%8)%8;if(r<0)throw new Error(`Unexpected typed array class: ${i}.`);o&&o instanceof ArrayBuffer?(this.data=o,this.ids=new this.IndexArrayType(this.data,dv,t),this.coords=new this.ArrayType(this.data,dv+a+c,t*2),this._pos=t*2,this._finished=!0):(this.data=new ArrayBuffer(dv+s+a+c),this.ids=new this.IndexArrayType(this.data,dv,t),this.coords=new this.ArrayType(this.data,dv+a+c,t*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(b9<<4)+r]),new Uint16Array(this.data,2,1)[0]=n,new Uint32Array(this.data,4,1)[0]=t)}add(t,n){let i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=t,this.coords[this._pos++]=n,i}finish(){let t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return w9(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,n,i,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:r,coords:s,nodeSize:a}=this,c=[0,r.length-1,0],u=[];for(;c.length;){let f=c.pop()||0,d=c.pop()||0,p=c.pop()||0;if(d-p<=a){for(let x=p;x<=d;x++){let C=s[2*x],T=s[2*x+1];C>=t&&C<=i&&T>=n&&T<=o&&u.push(r[x])}continue}let g=p+d>>1,h=s[2*g],A=s[2*g+1];h>=t&&h<=i&&A>=n&&A<=o&&u.push(r[g]),(f===0?t<=h:n<=A)&&(c.push(p),c.push(g-1),c.push(1-f)),(f===0?i>=h:o>=A)&&(c.push(g+1),c.push(d),c.push(1-f))}return u}within(t,n,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:o,coords:r,nodeSize:s}=this,a=[0,o.length-1,0],c=[],u=i*i;for(;a.length;){let f=a.pop()||0,d=a.pop()||0,p=a.pop()||0;if(d-p<=s){for(let x=p;x<=d;x++)$se(r[2*x],r[2*x+1],t,n)<=u&&c.push(o[x]);continue}let g=p+d>>1,h=r[2*g],A=r[2*g+1];$se(h,A,t,n)<=u&&c.push(o[g]),(f===0?t-i<=h:n-i<=A)&&(a.push(p),a.push(g-1),a.push(1-f)),(f===0?t+i>=h:n+i>=A)&&(a.push(g+1),a.push(d),a.push(1-f))}return c}};function w9(e,t,n,i,o,r){if(o-i<=n)return;let s=i+o>>1;eae(e,t,s,i,o,r),w9(e,t,n,i,s-1,1-r),w9(e,t,n,s+1,o,1-r)}function eae(e,t,n,i,o,r){for(;o>i;){if(o-i>600){let u=o-i+1,f=n-i+1,d=Math.log(u),p=.5*Math.exp(2*d/3),g=.5*Math.sqrt(d*p*(u-p)/u)*(f-u/2<0?-1:1),h=Math.max(i,Math.floor(n-f*p/u+g)),A=Math.min(o,Math.floor(n+(u-f)*p/u+g));eae(e,t,n,h,A,r)}let s=t[2*n+r],a=i,c=o;for(mv(e,t,i,n),t[2*o+r]>s&&mv(e,t,i,o);a<c;){for(mv(e,t,a,c),a++,c--;t[2*a+r]<s;)a++;for(;t[2*c+r]>s;)c--}t[2*i+r]===s?mv(e,t,i,c):(c++,mv(e,t,c,o)),c<=n&&(i=c+1),n<=c&&(o=c-1)}}function mv(e,t,n,i){S9(e,n,i),S9(t,2*n,2*i),S9(t,2*n+1,2*i+1)}function S9(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function $se(e,t,n,i){let o=e-n,r=t-i;return o*o+r*r}function ld(e){e=y(e,y.EMPTY_OBJECT),this._enabled=y(e.enabled,!1),this._pixelRange=y(e.pixelRange,80),this._minimumClusterSize=y(e.minimumClusterSize,2),this._clusterBillboards=y(e.clusterBillboards,!0),this._clusterLabels=y(e.clusterLabels,!0),this._clusterPoints=y(e.clusterPoints,!0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity={},this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._clusterDirty=!1,this._cluster=void 0,this._removeEventListener=void 0,this._clusterEvent=new ge,this.show=y(e.show,!0)}function tae(e,t){e.x-=t,e.y-=t,e.width+=t*2,e.height+=t*2}var SWe=new Ke;function nae(e,t,n,i,o){if(l(e._labelCollection)&&i._clusterLabels?o=V0.getScreenSpaceBoundingBox(e,t,o):l(e._billboardCollection)&&i._clusterBillboards?o=po.getScreenSpaceBoundingBox(e,t,o):l(e._pointPrimitiveCollection)&&i._clusterPoints&&(o=Gs.getScreenSpaceBoundingBox(e,t,o)),tae(o,n),i._clusterLabels&&!l(e._labelCollection)&&l(e.id)&&oae(i,e.id.id)&&l(e.id._label)){let r=i._collectionIndicesByEntity[e.id.id].labelIndex,s=i._labelCollection.get(r),a=V0.getScreenSpaceBoundingBox(s,t,SWe);tae(a,n),o=Ke.union(o,a,o)}return o}function wWe(e,t){if(e.clusterShow=!0,!l(e._labelCollection)&&l(e.id)&&oae(t,e.id.id)&&l(e.id._label)){let n=t._collectionIndicesByEntity[e.id.id].labelIndex,i=t._labelCollection.get(n);i.clusterShow=!0}}function iae(e,t,n,i){let o={billboard:i._clusterBillboardCollection.add(),label:i._clusterLabelCollection.add(),point:i._clusterPointCollection.add()};o.billboard.show=!1,o.point.show=!1,o.label.show=!0,o.label.text=t.toLocaleString(),o.label.id=n,o.billboard.position=o.label.position=o.point.position=e,i._clusterEvent.raiseEvent(n,o)}function oae(e,t){return l(e)&&l(e._collectionIndicesByEntity[t])&&l(e._collectionIndicesByEntity[t].labelIndex)}function v9(e,t,n,i,o){if(!l(e))return;let r=e.length;for(let s=0;s<r;++s){let a=e.get(s);if(a.clusterShow=!1,!a.show||o._scene.mode===ne.SCENE3D&&!i.isPointVisible(a.position))continue;let c=o._clusterLabels&&l(a._labelCollection),u=o._clusterBillboards&&l(a.id._billboard),f=o._clusterPoints&&l(a.id._point);if(c&&(f||u))continue;let d=a.computeScreenSpacePosition(n);l(d)&&t.push({index:s,collection:e,clustered:!1,coord:d})}}var vWe=new Ke,DWe=new Ke,IWe=new Ke;function PWe(e){return function(t){if(l(t)&&t<.05||!e.enabled)return;let n=e._scene,i=e._labelCollection,o=e._billboardCollection,r=e._pointCollection;if(!l(i)&&!l(o)&&!l(r)||!e._clusterBillboards&&!e._clusterLabels&&!e._clusterPoints)return;let s=e._clusterLabelCollection,a=e._clusterBillboardCollection,c=e._clusterPointCollection;l(s)?s.removeAll():s=e._clusterLabelCollection=new lp({scene:n}),l(a)?a.removeAll():a=e._clusterBillboardCollection=new zu({scene:n}),l(c)?c.removeAll():c=e._clusterPointCollection=new fv;let u=e._pixelRange,f=e._minimumClusterSize,d=e._previousClusters,p=[],g=e._previousHeight,h=n.camera.positionCartographic.height,A=n.mapProjection.ellipsoid,x=n.camera.positionWC,C=new Eg(A,x),T=[];e._clusterLabels&&v9(i,T,n,C,e),e._clusterBillboards&&v9(o,T,n,C,e),e._clusterPoints&&v9(r,T,n,C,e);let E,S,v,D,O,M,L,N,_,b,w,I;if(T.length>0){let R=new nA(T.length,64,Uint32Array);for(let F=0;F<T.length;++F)R.add(T[F].coord.x,T[F].coord.y);if(R.finish(),h<g)for(v=d.length,E=0;E<v;++E){let F=d[E];if(!C.isPointVisible(F.position))continue;let k=po._computeScreenSpacePosition(B.IDENTITY,F.position,m.ZERO,H.ZERO,n);if(!l(k))continue;let V=1-h/g,G=F.width=F.width*V,U=F.height=F.height*V;G=Math.max(G,F.minimumWidth),U=Math.max(U,F.minimumHeight);let q=k.x-G*.5,Y=k.y-U*.5,Q=k.x+G,W=k.y+U;for(O=R.range(q,Y,Q,W),M=O.length,b=0,_=[],S=0;S<M;++S)L=O[S],N=T[L],N.clustered||(++b,w=N.collection,I=N.index,_.push(w.get(I).id));if(b>=f)for(iae(F.position,b,_,e),p.push(F),S=0;S<M;++S)T[O[S]].clustered=!0}for(v=T.length,E=0;E<v;++E){let F=T[E];if(F.clustered)continue;F.clustered=!0,w=F.collection,I=F.index;let k=w.get(I);D=nae(k,F.coord,u,e,vWe);let V=Ke.clone(D,DWe);O=R.range(D.x,D.y,D.x+D.width,D.y+D.height),M=O.length;let G=m.clone(k.position);for(b=1,_=[k.id],S=0;S<M;++S)if(L=O[S],N=T[L],!N.clustered){let U=N.collection.get(N.index),q=nae(U,N.coord,u,e,IWe);m.add(U.position,G,G),Ke.union(V,q,V),++b,_.push(U.id)}if(b>=f){let U=m.multiplyByScalar(G,1/b,G);for(iae(U,b,_,e),p.push({position:U,width:V.width,height:V.height,minimumWidth:D.width,minimumHeight:D.height}),S=0;S<M;++S)T[O[S]].clustered=!0}else wWe(k,e)}}s.length===0&&(s.destroy(),e._clusterLabelCollection=void 0),a.length===0&&(a.destroy(),e._clusterBillboardCollection=void 0),c.length===0&&(c.destroy(),e._clusterPointCollection=void 0),e._previousClusters=p,e._previousHeight=h}}ld.prototype._initialize=function(e){this._scene=e;let t=PWe(this);this._cluster=t,this._removeEventListener=e.camera.changed.addEventListener(t)};Object.defineProperties(ld.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabledDirty=e!==this._enabled,this._enabled=e}},pixelRange:{get:function(){return this._pixelRange},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._pixelRange,this._pixelRange=e}},minimumClusterSize:{get:function(){return this._minimumClusterSize},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._minimumClusterSize,this._minimumClusterSize=e}},clusterEvent:{get:function(){return this._clusterEvent}},clusterBillboards:{get:function(){return this._clusterBillboards},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterBillboards,this._clusterBillboards=e}},clusterLabels:{get:function(){return this._clusterLabels},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterLabels,this._clusterLabels=e}},clusterPoints:{get:function(){return this._clusterPoints},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterPoints,this._clusterPoints=e}}});function I9(e,t,n,i){return function(o){let r=this[e];l(this._collectionIndicesByEntity)||(this._collectionIndicesByEntity={});let s=this._collectionIndicesByEntity[o.id];if(l(s)||(s=this._collectionIndicesByEntity[o.id]={billboardIndex:void 0,labelIndex:void 0,pointIndex:void 0}),l(r)&&l(s[i]))return r.get(s[i]);l(r)||(r=this[e]=new t({scene:this._scene}));let a,c,u=this[n];u.length>0?(a=u.pop(),c=r.get(a)):(c=r.add(),a=r.length-1),s[i]=a;let f=this;return Promise.resolve().then(function(){f._clusterDirty=!0}),c}}function P9(e,t){let n=e._collectionIndicesByEntity[t];!l(n.billboardIndex)&&!l(n.labelIndex)&&!l(n.pointIndex)&&delete e._collectionIndicesByEntity[t]}ld.prototype.getLabel=I9("_labelCollection",lp,"_unusedLabelIndices","labelIndex");ld.prototype.removeLabel=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._labelCollection)||!l(t)||!l(t.labelIndex))return;let n=t.labelIndex;t.labelIndex=void 0,P9(this,e.id);let i=this._labelCollection.get(n);i.show=!1,i.text="",i.id=void 0,this._unusedLabelIndices.push(n),this._clusterDirty=!0};ld.prototype.getBillboard=I9("_billboardCollection",zu,"_unusedBillboardIndices","billboardIndex");ld.prototype.removeBillboard=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._billboardCollection)||!l(t)||!l(t.billboardIndex))return;let n=t.billboardIndex;t.billboardIndex=void 0,P9(this,e.id);let i=this._billboardCollection.get(n);i.id=void 0,i.show=!1,i.image=void 0,this._unusedBillboardIndices.push(n),this._clusterDirty=!0};ld.prototype.getPoint=I9("_pointCollection",fv,"_unusedPointIndices","pointIndex");ld.prototype.removePoint=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._pointCollection)||!l(t)||!l(t.pointIndex))return;let n=t.pointIndex;t.pointIndex=void 0,P9(this,e.id);let i=this._pointCollection.get(n);i.show=!1,i.id=void 0,this._unusedPointIndices.push(n),this._clusterDirty=!0};function D9(e){if(!l(e))return;let t=e.length;for(let n=0;n<t;++n)e.get(n).clusterShow=!0}function OWe(e){e.enabled||(l(e._clusterLabelCollection)&&e._clusterLabelCollection.destroy(),l(e._clusterBillboardCollection)&&e._clusterBillboardCollection.destroy(),l(e._clusterPointCollection)&&e._clusterPointCollection.destroy(),e._clusterLabelCollection=void 0,e._clusterBillboardCollection=void 0,e._clusterPointCollection=void 0,D9(e._labelCollection),D9(e._billboardCollection),D9(e._pointCollection))}ld.prototype.update=function(e){if(!this.show)return;let t;l(this._labelCollection)&&this._labelCollection.length>0&&this._labelCollection.get(0)._glyphs.length===0&&(t=e.commandList,e.commandList=[],this._labelCollection.update(e),e.commandList=t),l(this._billboardCollection)&&this._billboardCollection.length>0&&!l(this._billboardCollection.get(0).width)&&(t=e.commandList,e.commandList=[],this._billboardCollection.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,OWe(this),this._clusterDirty=!0),this._clusterDirty&&(this._clusterDirty=!1,this._cluster()),l(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),l(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),l(this._clusterPointCollection)&&this._clusterPointCollection.update(e),l(this._labelCollection)&&this._labelCollection.update(e),l(this._billboardCollection)&&this._billboardCollection.update(e),l(this._pointCollection)&&this._pointCollection.update(e)};ld.prototype.destroy=function(){this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._pointCollection=this._pointCollection&&this._pointCollection.destroy(),this._clusterLabelCollection=this._clusterLabelCollection&&this._clusterLabelCollection.destroy(),this._clusterBillboardCollection=this._clusterBillboardCollection&&this._clusterBillboardCollection.destroy(),this._clusterPointCollection=this._clusterPointCollection&&this._clusterPointCollection.destroy(),l(this._removeEventListener)&&(this._removeEventListener(),this._removeEventListener=void 0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity=void 0,this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._pixelRangeDirty=!1,this._minimumClusterSizeDirty=!1};var Qu=ld;function O9(e){this._name=e,this._clock=void 0,this._changed=new ge,this._error=new ge,this._isLoading=!1,this._loading=new ge,this._entityCollection=new zs(this),this._entityCluster=new Qu}Object.defineProperties(O9.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._changed.raiseEvent(this))}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading},set:function(e){Br.setLoading(this,e)}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});O9.prototype.update=function(e){return!0};var LF=O9;var rae={};rae.computePositions=function(e,t,n,i,o){let r=e*.5,s=-r,a=i+i,c=o?2*a:a,u=new Float64Array(c*3),f,d=0,p=0,g=o?a*3:0,h=o?(a+i)*3:i*3;for(f=0;f<i;f++){let A=f/i*P.TWO_PI,x=Math.cos(A),C=Math.sin(A),T=x*n,E=C*n,S=x*t,v=C*t;u[p+g]=T,u[p+g+1]=E,u[p+g+2]=s,u[p+h]=S,u[p+h+1]=v,u[p+h+2]=r,p+=3,o&&(u[d++]=T,u[d++]=E,u[d++]=s,u[d++]=S,u[d++]=v,u[d++]=r)}return u};var LT=rae;var M9=new H,MWe=new m,RWe=new m,BWe=new m,LWe=new m;function vp(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e.slices,128);this._length=t,this._topRadius=n,this._bottomRadius=i,this._vertexFormat=Pe.clone(o),this._slices=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderGeometry"}vp.packedLength=Pe.packedLength+5;vp.pack=function(e,t,n){return n=y(n,0),Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n]=y(e._offsetAttribute,-1),t};var sae=new Pe,NT={vertexFormat:sae,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};vp.unpack=function(e,t,n){t=y(t,0);let i=Pe.unpack(e,t,sae);t+=Pe.packedLength;let o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return l(n)?(n._vertexFormat=Pe.clone(i,n._vertexFormat),n._length=o,n._topRadius=r,n._bottomRadius=s,n._slices=a,n._offsetAttribute=c===-1?void 0:c,n):(NT.length=o,NT.topRadius=r,NT.bottomRadius=s,NT.slices=a,NT.offsetAttribute=c===-1?void 0:c,new vp(NT))};vp.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,o=e._vertexFormat,r=e._slices;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=r+r,a=r+s,c=s+s,u=LT.computePositions(t,n,i,r,!0),f=o.st?new Float32Array(c*2):void 0,d=o.normal?new Float32Array(c*3):void 0,p=o.tangent?new Float32Array(c*3):void 0,g=o.bitangent?new Float32Array(c*3):void 0,h,A=o.normal||o.tangent||o.bitangent;if(A){let O=o.tangent||o.bitangent,M=0,L=0,N=0,_=Math.atan2(i-n,t),b=MWe;b.z=Math.sin(_);let w=Math.cos(_),I=BWe,R=RWe;for(h=0;h<r;h++){let F=h/r*P.TWO_PI,k=w*Math.cos(F),V=w*Math.sin(F);A&&(b.x=k,b.y=V,O&&(I=m.normalize(m.cross(m.UNIT_Z,b,I),I)),o.normal&&(d[M++]=b.x,d[M++]=b.y,d[M++]=b.z,d[M++]=b.x,d[M++]=b.y,d[M++]=b.z),o.tangent&&(p[L++]=I.x,p[L++]=I.y,p[L++]=I.z,p[L++]=I.x,p[L++]=I.y,p[L++]=I.z),o.bitangent&&(R=m.normalize(m.cross(b,I,R),R),g[N++]=R.x,g[N++]=R.y,g[N++]=R.z,g[N++]=R.x,g[N++]=R.y,g[N++]=R.z))}for(h=0;h<r;h++)o.normal&&(d[M++]=0,d[M++]=0,d[M++]=-1),o.tangent&&(p[L++]=1,p[L++]=0,p[L++]=0),o.bitangent&&(g[N++]=0,g[N++]=-1,g[N++]=0);for(h=0;h<r;h++)o.normal&&(d[M++]=0,d[M++]=0,d[M++]=1),o.tangent&&(p[L++]=1,p[L++]=0,p[L++]=0),o.bitangent&&(g[N++]=0,g[N++]=1,g[N++]=0)}let x=12*r-12,C=Ve.createTypedArray(c,x),T=0,E=0;for(h=0;h<r-1;h++)C[T++]=E,C[T++]=E+2,C[T++]=E+3,C[T++]=E,C[T++]=E+3,C[T++]=E+1,E+=2;for(C[T++]=s-2,C[T++]=0,C[T++]=1,C[T++]=s-2,C[T++]=1,C[T++]=s-1,h=1;h<r-1;h++)C[T++]=s+h+1,C[T++]=s+h,C[T++]=s;for(h=1;h<r-1;h++)C[T++]=a,C[T++]=a+h,C[T++]=a+h+1;let S=0;if(o.st){let O=Math.max(n,i);for(h=0;h<c;h++){let M=m.fromArray(u,h*3,LWe);f[S++]=(M.x+O)/(2*O),f[S++]=(M.y+O)/(2*O)}}let v=new _n;o.position&&(v.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})),o.normal&&(v.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:d})),o.tangent&&(v.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),o.bitangent&&(v.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),o.st&&(v.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),M9.x=t*.5,M9.y=Math.max(i,n);let D=new ae(m.ZERO,H.magnitude(M9));if(l(e._offsetAttribute)){t=u.length;let O=e._offsetAttribute===rn.NONE?0:1,M=new Uint8Array(t/3).fill(O);v.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:M})}return new dt({attributes:v,indices:C,primitiveType:Le.TRIANGLES,boundingSphere:D,offsetAttribute:e._offsetAttribute})};var R9;vp.getUnitCylinder=function(){return l(R9)||(R9=vp.createGeometry(new vp({topRadius:1,bottomRadius:1,length:1,vertexFormat:Pe.POSITION_ONLY}))),R9};var NF=vp;var B9=new H;function FT(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,o=y(e.slices,128),r=Math.max(y(e.numberOfVerticalLines,16),0);this._length=t,this._topRadius=n,this._bottomRadius=i,this._slices=o,this._numberOfVerticalLines=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}FT.packedLength=6;FT.pack=function(e,t,n){return n=y(n,0),t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n++]=e._numberOfVerticalLines,t[n]=y(e._offsetAttribute,-1),t};var iA={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};FT.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return l(n)?(n._length=i,n._topRadius=o,n._bottomRadius=r,n._slices=s,n._numberOfVerticalLines=a,n._offsetAttribute=c===-1?void 0:c,n):(iA.length=i,iA.topRadius=o,iA.bottomRadius=r,iA.slices=s,iA.numberOfVerticalLines=a,iA.offsetAttribute=c===-1?void 0:c,new FT(iA))};FT.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,o=e._slices,r=e._numberOfVerticalLines;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=o*2,a=LT.computePositions(t,n,i,o,!1),c=o*2,u;if(r>0){let A=Math.min(r,o);u=Math.round(o/A),c+=A}let f=Ve.createTypedArray(s,c*2),d=0,p;for(p=0;p<o-1;p++)f[d++]=p,f[d++]=p+1,f[d++]=p+o,f[d++]=p+1+o;if(f[d++]=o-1,f[d++]=0,f[d++]=o+o-1,f[d++]=o,r>0)for(p=0;p<o;p+=u)f[d++]=p,f[d++]=p+o;let g=new _n;g.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:a}),B9.x=t*.5,B9.y=Math.max(i,n);let h=new ae(m.ZERO,H.magnitude(B9));if(l(e._offsetAttribute)){t=a.length;let A=e._offsetAttribute===rn.NONE?0:1,x=new Uint8Array(t/3).fill(A);g.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}return new dt({attributes:g,indices:f,primitiveType:Le.LINES,boundingSphere:h,offsetAttribute:e._offsetAttribute})};var FF=FT;var aae=m.ZERO,cae=new m,NWe=new m,lae=new z;function FWe(e){this.id=e,this.vertexFormat=void 0,this.length=void 0,this.topRadius=void 0,this.bottomRadius=void 0,this.slices=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function jl(e,t){ci.call(this,{entity:e,scene:t,geometryOptions:new FWe(e),geometryPropertyName:"cylinder",observedPropertyNames:["availability","position","orientation","cylinder"]}),this._onEntityPropertyChanged(e,"cylinder",e.cylinder,void 0)}l(Object.create)&&(jl.prototype=Object.create(ci.prototype),jl.prototype.constructor=jl);Object.defineProperties(jl.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});jl.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=kn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof Ut){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,lae)),l(a)||(a=z.WHITE),s.color=Vt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,aae,cae))),new Tt({id:t,geometry:new NF(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.mapProjection.ellipsoid),attributes:s})};jl.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,lae),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Vt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,aae,cae))),new Tt({id:t,geometry:new FF(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.mapProjection.ellipsoid),attributes:r})};jl.prototype._computeCenter=function(e,t){return j.getValueOrUndefined(this._entity.position,e,t)};jl.prototype._isHidden=function(e,t){return!l(e.position)||!l(t.length)||!l(t.topRadius)||!l(t.bottomRadius)||ci.prototype._isHidden.call(this,e,t)};jl.prototype._isDynamic=function(e,t){return!e.position.isConstant||!j.isConstant(e.orientation)||!t.length.isConstant||!t.topRadius.isConstant||!t.bottomRadius.isConstant||!j.isConstant(t.slices)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.numberOfVerticalLines)};jl.prototype._setStaticOptions=function(e,t){let n=j.getValueOrDefault(t.heightReference,Ge.MINIMUM_VALUE,qe.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Ut?sn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,i.length=t.length.getValue(Ge.MINIMUM_VALUE),i.topRadius=t.topRadius.getValue(Ge.MINIMUM_VALUE),i.bottomRadius=t.bottomRadius.getValue(Ge.MINIMUM_VALUE),i.slices=j.getValueOrUndefined(t.slices,Ge.MINIMUM_VALUE),i.numberOfVerticalLines=j.getValueOrUndefined(t.numberOfVerticalLines,Ge.MINIMUM_VALUE),i.offsetAttribute=n!==qe.NONE?rn.ALL:void 0};jl.prototype._onEntityPropertyChanged=w_;jl.DynamicGeometryUpdater=UT;function UT(e,t,n){ai.call(this,e,t,n)}l(Object.create)&&(UT.prototype=Object.create(ai.prototype),UT.prototype.constructor=UT);UT.prototype._isHidden=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(e.position,n,NWe);return!l(o)||!l(i.length)||!l(i.topRadius)||!l(i.bottomRadius)||ai.prototype._isHidden.call(this,e,t,n)};UT.prototype._setOptions=function(e,t,n){let i=j.getValueOrDefault(t.heightReference,n,qe.NONE),o=this._options;o.length=j.getValueOrUndefined(t.length,n),o.topRadius=j.getValueOrUndefined(t.topRadius,n),o.bottomRadius=j.getValueOrUndefined(t.bottomRadius,n),o.slices=j.getValueOrUndefined(t.slices,n),o.numberOfVerticalLines=j.getValueOrUndefined(t.numberOfVerticalLines,n),o.offsetAttribute=i!==qe.NONE?rn.ALL:void 0};var UF=jl;var UWe={UNBOUNDED:0,CLAMPED:1,LOOP_STOP:2},Lr=Object.freeze(UWe);var VWe={TICK_DEPENDENT:0,SYSTEM_CLOCK_MULTIPLIER:1,SYSTEM_CLOCK:2},go=Object.freeze(VWe);var kWe={NONE:0,HOLD:1,EXTRAPOLATE:2},$u=Object.freeze(kWe);var uae=ar(bl(),1);function zWe(e){let t=new uae.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),n}var bg=zWe;var HWe=P.factorial;function L9(e,t,n,i,o,r){let s=0,a,c,u;if(i>0){for(c=0;c<o;c++){for(a=!1,u=0;u<r.length&&!a;u++)c===r[u]&&(a=!0);a||(r.push(c),s+=L9(e,t,n,i-1,o,r),r.splice(r.length-1,1))}return s}for(s=1,c=0;c<o;c++){for(a=!1,u=0;u<r.length&&!a;u++)c===r[u]&&(a=!0);a||(s*=e-n[t[c]])}return s}var VF={type:"Hermite"};VF.getRequiredDataPoints=function(e,t){return t=y(t,0),Math.max(Math.floor((e+1)/(t+1)),2)};VF.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a,c,u,f,d=t.length,p=new Array(i);for(r=0;r<i;r++){o[r]=0;let x=new Array(d);for(p[r]=x,s=0;s<d;s++)x[s]=[]}let g=d,h=new Array(g);for(r=0;r<g;r++)h[r]=r;let A=d-1;for(c=0;c<i;c++){for(s=0;s<g;s++)f=h[s]*i+c,p[c][0].push(n[f]);for(r=1;r<g;r++){let x=!1;for(s=0;s<g-r;s++){let C=t[h[s]],T=t[h[s+r]],E;T-C<=0?(f=h[s]*i+i*r+c,E=n[f],p[c][r].push(E/HWe(r))):(E=p[c][r-1][s+1]-p[c][r-1][s],p[c][r].push(E/(T-C))),x=x||E!==0}x||(A=r-1)}}for(a=0,u=0;a<=u;a++)for(r=a;r<=A;r++){let x=L9(e,h,t,a,r,[]);for(c=0;c<i;c++){let C=p[c][r][0];o[c+a*i]+=C*x}}return o};var GWe=[];VF.interpolate=function(e,t,n,i,o,r,s){let a=i*(r+1);l(s)||(s=new Array(a));for(let C=0;C<a;C++)s[C]=0;let c=t.length,u=new Array(c*(o+1)),f;for(f=0;f<c;f++)for(let C=0;C<o+1;C++)u[f*(o+1)+C]=f;let d=u.length,p=GWe,g=WWe(p,u,t,n,i,o),h=[],A=d*(d+1)/2,x=Math.min(g,r);for(let C=0;C<=x;C++)for(f=C;f<=g;f++){h.length=0;let T=L9(e,u,t,C,f,h),E=Math.floor(f*(1-f)/2)+d*f;for(let S=0;S<i;S++){let v=Math.floor(S*A),D=p[v+E];s[S+C*i]+=D*T}}return s};function WWe(e,t,n,i,o,r){let s,a,c=-1,u=t.length,f=u*(u+1)/2;for(let d=0;d<o;d++){let p=Math.floor(d*f);for(s=0;s<u;s++)a=t[s]*o*(r+1)+d,e[p+s]=i[a];for(let g=1;g<u;g++){let h=0,A=Math.floor(g*(1-g)/2)+u*g,x=!1;for(s=0;s<u-g;s++){let C=n[t[s]],T=n[t[s+g]],E,S;if(T-C<=0)a=t[s]*o*(r+1)+o*g+d,E=i[a],S=E/P.factorial(g),e[p+A+h]=S,h++;else{let v=Math.floor((g-1)*(2-g)/2)+u*(g-1);E=e[p+v+s+1]-e[p+v+s],S=E/(T-C),e[p+A+h]=S,h++}x=x||E!==0}x&&(c=Math.max(c,g))}}return c}var kF=VF;var N9={type:"Lagrange"};N9.getRequiredDataPoints=function(e){return Math.max(e+1,2)};N9.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a=t.length;for(r=0;r<i;r++)o[r]=0;for(r=0;r<a;r++){let c=1;for(s=0;s<a;s++)if(s!==r){let u=t[r]-t[s];c*=(e-t[s])/u}for(s=0;s<i;s++)o[s]+=c*n[r*i+s]}return o};var zF=N9;var F9={type:"Linear"};F9.getRequiredDataPoints=function(e){return 2};F9.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a,c=t[0],u=t[1];for(r=0;r<i;r++)s=n[r],a=n[r+i],o[r]=((a-s)*e+u*s-c*a)/(u-c);return o};var VT=F9;function Ga(e,t,n){this.clock=y(e,0),this.cone=y(t,0),this.magnitude=y(n,1)}Ga.fromCartesian3=function(e,t){let n=e.x,i=e.y,o=e.z,r=n*n+i*i;return l(t)||(t=new Ga),t.clock=Math.atan2(i,n),t.cone=Math.atan2(Math.sqrt(r),o),t.magnitude=Math.sqrt(r+o*o),t};Ga.clone=function(e,t){if(l(e))return l(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=e.magnitude,t):new Ga(e.clock,e.cone,e.magnitude)};Ga.normalize=function(e,t){return l(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=1,t):new Ga(e.clock,e.cone,1)};Ga.equals=function(e,t){return e===t||l(e)&&l(t)&&e.clock===t.clock&&e.cone===t.cone&&e.magnitude===t.magnitude};Ga.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.clock-t.clock)<=n&&Math.abs(e.cone-t.cone)<=n&&Math.abs(e.magnitude-t.magnitude)<=n};Ga.prototype.equals=function(e){return Ga.equals(this,e)};Ga.prototype.clone=function(e){return Ga.clone(this,e)};Ga.prototype.equalsEpsilon=function(e,t){return Ga.equalsEpsilon(this,e,t)};Ga.prototype.toString=function(){return`(${this.clock}, ${this.cone}, ${this.magnitude})`};var HF=Ga;var Ev=ar(bl(),1);var U9;typeof performance<"u"&&typeof performance.now=="function"&&isFinite(performance.now())?U9=function(){return performance.now()}:U9=function(){return Date.now()};var Ci=U9;function V9(e){e=y(e,y.EMPTY_OBJECT);let t=e.currentTime,n=e.startTime,i=e.stopTime;l(t)?t=ee.clone(t):l(n)?t=ee.clone(n):l(i)?t=ee.addDays(i,-1,new ee):t=ee.now(),l(n)?n=ee.clone(n):n=ee.clone(t),l(i)?i=ee.clone(i):i=ee.addDays(n,1,new ee),this.startTime=n,this.stopTime=i,this.clockRange=y(e.clockRange,Lr.UNBOUNDED),this.canAnimate=y(e.canAnimate,!0),this.onTick=new ge,this.onStop=new ge,this._currentTime=void 0,this._multiplier=void 0,this._clockStep=void 0,this._shouldAnimate=void 0,this._lastSystemTime=Ci(),this.currentTime=t,this.multiplier=y(e.multiplier,1),this.shouldAnimate=y(e.shouldAnimate,!1),this.clockStep=y(e.clockStep,go.SYSTEM_CLOCK_MULTIPLIER)}Object.defineProperties(V9.prototype,{currentTime:{get:function(){return this._currentTime},set:function(e){ee.equals(this._currentTime,e)||(this._clockStep===go.SYSTEM_CLOCK&&(this._clockStep=go.SYSTEM_CLOCK_MULTIPLIER),this._currentTime=e)}},multiplier:{get:function(){return this._multiplier},set:function(e){this._multiplier!==e&&(this._clockStep===go.SYSTEM_CLOCK&&(this._clockStep=go.SYSTEM_CLOCK_MULTIPLIER),this._multiplier=e)}},clockStep:{get:function(){return this._clockStep},set:function(e){e===go.SYSTEM_CLOCK&&(this._multiplier=1,this._shouldAnimate=!0,this._currentTime=ee.now()),this._clockStep=e}},shouldAnimate:{get:function(){return this._shouldAnimate},set:function(e){this._shouldAnimate!==e&&(this._clockStep===go.SYSTEM_CLOCK&&(this._clockStep=go.SYSTEM_CLOCK_MULTIPLIER),this._shouldAnimate=e)}}});V9.prototype.tick=function(){let e=Ci(),t=ee.clone(this._currentTime);if(this.canAnimate&&this._shouldAnimate){let n=this._clockStep;if(n===go.SYSTEM_CLOCK)t=ee.now(t);else{let i=this._multiplier;if(n===go.TICK_DEPENDENT)t=ee.addSeconds(t,i,t);else{let a=e-this._lastSystemTime;t=ee.addSeconds(t,i*(a/1e3),t)}let o=this.clockRange,r=this.startTime,s=this.stopTime;if(o===Lr.CLAMPED)ee.lessThan(t,r)?t=ee.clone(r,t):ee.greaterThan(t,s)&&(t=ee.clone(s,t),this.onStop.raiseEvent(this));else if(o===Lr.LOOP_STOP)for(ee.lessThan(t,r)&&(t=ee.clone(r,t));ee.greaterThan(t,s);)t=ee.addSeconds(r,ee.secondsDifference(t,s),t),this.onStop.raiseEvent(this)}}return this._currentTime=t,this._lastSystemTime=e,this.onTick.raiseEvent(this),t};var Bm=V9;function oA(){this._definitionChanged=new ge,this._startTime=void 0,this._stopTime=void 0,this._currentTime=void 0,this._clockRange=void 0,this._clockStep=void 0,this._multiplier=void 0}Object.defineProperties(oA.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},startTime:Ml("startTime"),stopTime:Ml("stopTime"),currentTime:Ml("currentTime"),clockRange:Ml("clockRange"),clockStep:Ml("clockStep"),multiplier:Ml("multiplier")});oA.prototype.clone=function(e){return l(e)||(e=new oA),e.startTime=this.startTime,e.stopTime=this.stopTime,e.currentTime=this.currentTime,e.clockRange=this.clockRange,e.clockStep=this.clockStep,e.multiplier=this.multiplier,e};oA.prototype.equals=function(e){return this===e||l(e)&&ee.equals(this.startTime,e.startTime)&&ee.equals(this.stopTime,e.stopTime)&&ee.equals(this.currentTime,e.currentTime)&&this.clockRange===e.clockRange&&this.clockStep===e.clockStep&&this.multiplier===e.multiplier};oA.prototype.merge=function(e){this.startTime=y(this.startTime,e.startTime),this.stopTime=y(this.stopTime,e.stopTime),this.currentTime=y(this.currentTime,e.currentTime),this.clockRange=y(this.clockRange,e.clockRange),this.clockStep=y(this.clockStep,e.clockStep),this.multiplier=y(this.multiplier,e.multiplier)};oA.prototype.getValue=function(e){return l(e)||(e=new Bm),e.startTime=y(this.startTime,e.startTime),e.stopTime=y(this.stopTime,e.stopTime),e.currentTime=y(this.currentTime,e.currentTime),e.clockRange=y(this.clockRange,e.clockRange),e.multiplier=y(this.multiplier,e.multiplier),e.clockStep=y(this.clockStep,e.clockStep),e};var Lm=oA;var jWe=z.WHITE,YWe=.1,qWe=new H(8,8),XWe=new H(0,0),KWe=new H(1,1);function kT(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this._cellAlpha=void 0,this._cellAlphaSubscription=void 0,this._lineCount=void 0,this._lineCountSubscription=void 0,this._lineThickness=void 0,this._lineThicknessSubscription=void 0,this._lineOffset=void 0,this._lineOffsetSubscription=void 0,this.color=e.color,this.cellAlpha=e.cellAlpha,this.lineCount=e.lineCount,this.lineThickness=e.lineThickness,this.lineOffset=e.lineOffset}Object.defineProperties(kT.prototype,{isConstant:{get:function(){return j.isConstant(this._color)&&j.isConstant(this._cellAlpha)&&j.isConstant(this._lineCount)&&j.isConstant(this._lineThickness)&&j.isConstant(this._lineOffset)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color"),cellAlpha:ce("cellAlpha"),lineCount:ce("lineCount"),lineThickness:ce("lineThickness"),lineOffset:ce("lineOffset")});kT.prototype.getType=function(e){return"Grid"};kT.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,jWe,t.color),t.cellAlpha=j.getValueOrDefault(this._cellAlpha,e,YWe),t.lineCount=j.getValueOrClonedDefault(this._lineCount,e,qWe,t.lineCount),t.lineThickness=j.getValueOrClonedDefault(this._lineThickness,e,KWe,t.lineThickness),t.lineOffset=j.getValueOrClonedDefault(this._lineOffset,e,XWe,t.lineOffset),t};kT.prototype.equals=function(e){return this===e||e instanceof kT&&j.equals(this._color,e._color)&&j.equals(this._cellAlpha,e._cellAlpha)&&j.equals(this._lineCount,e._lineCount)&&j.equals(this._lineThickness,e._lineThickness)&&j.equals(this._lineOffset,e._lineOffset)};var hv=kT;function zT(e){this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(zT.prototype,{isConstant:{get:function(){return j.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color")});zT.prototype.getType=function(e){return"PolylineArrow"};zT.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,z.WHITE,t.color),t};zT.prototype.equals=function(e){return this===e||e instanceof zT&&j.equals(this._color,e._color)};var pv=zT;var JWe=z.WHITE,ZWe=z.TRANSPARENT,QWe=16,$We=255;function HT(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this._gapColor=void 0,this._gapColorSubscription=void 0,this._dashLength=void 0,this._dashLengthSubscription=void 0,this._dashPattern=void 0,this._dashPatternSubscription=void 0,this.color=e.color,this.gapColor=e.gapColor,this.dashLength=e.dashLength,this.dashPattern=e.dashPattern}Object.defineProperties(HT.prototype,{isConstant:{get:function(){return j.isConstant(this._color)&&j.isConstant(this._gapColor)&&j.isConstant(this._dashLength)&&j.isConstant(this._dashPattern)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color"),gapColor:ce("gapColor"),dashLength:ce("dashLength"),dashPattern:ce("dashPattern")});HT.prototype.getType=function(e){return"PolylineDash"};HT.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,JWe,t.color),t.gapColor=j.getValueOrClonedDefault(this._gapColor,e,ZWe,t.gapColor),t.dashLength=j.getValueOrDefault(this._dashLength,e,QWe,t.dashLength),t.dashPattern=j.getValueOrDefault(this._dashPattern,e,$We,t.dashPattern),t};HT.prototype.equals=function(e){return this===e||e instanceof HT&&j.equals(this._color,e._color)&&j.equals(this._gapColor,e._gapColor)&&j.equals(this._dashLength,e._dashLength)&&j.equals(this._dashPattern,e._dashPattern)};var _v=HT;var e7e=z.WHITE,t7e=.25,n7e=1;function GT(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this._glowPower=void 0,this._glowPowerSubscription=void 0,this._taperPower=void 0,this._taperPowerSubscription=void 0,this.color=e.color,this.glowPower=e.glowPower,this.taperPower=e.taperPower}Object.defineProperties(GT.prototype,{isConstant:{get:function(){return j.isConstant(this._color)&&j.isConstant(this._glow)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color"),glowPower:ce("glowPower"),taperPower:ce("taperPower")});GT.prototype.getType=function(e){return"PolylineGlow"};GT.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,e7e,t.color),t.glowPower=j.getValueOrDefault(this._glowPower,e,t7e,t.glowPower),t.taperPower=j.getValueOrDefault(this._taperPower,e,n7e,t.taperPower),t};GT.prototype.equals=function(e){return this===e||e instanceof GT&&j.equals(this._color,e._color)&&j.equals(this._glowPower,e._glowPower)&&j.equals(this._taperPower,e._taperPower)};var gv=GT;var i7e=z.WHITE,o7e=z.BLACK,r7e=1;function WT(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this.color=e.color,this.outlineColor=e.outlineColor,this.outlineWidth=e.outlineWidth}Object.defineProperties(WT.prototype,{isConstant:{get:function(){return j.isConstant(this._color)&&j.isConstant(this._outlineColor)&&j.isConstant(this._outlineWidth)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ce("color"),outlineColor:ce("outlineColor"),outlineWidth:ce("outlineWidth")});WT.prototype.getType=function(e){return"PolylineOutline"};WT.prototype.getValue=function(e,t){return l(t)||(t={}),t.color=j.getValueOrClonedDefault(this._color,e,i7e,t.color),t.outlineColor=j.getValueOrClonedDefault(this._outlineColor,e,o7e,t.outlineColor),t.outlineWidth=j.getValueOrDefault(this._outlineWidth,e,r7e),t};WT.prototype.equals=function(e){return this===e||e instanceof WT&&j.equals(this._color,e._color)&&j.equals(this._outlineColor,e._outlineColor)&&j.equals(this._outlineWidth,e._outlineWidth)};var rA=WT;function Dp(e,t){this._value=void 0,this._definitionChanged=new ge,this._eventHelper=new Mr,this._referenceFrame=y(t,no.FIXED),this.setValue(e)}Object.defineProperties(Dp.prototype,{isConstant:{get:function(){let e=this._value;if(!l(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!j.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});Dp.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};Dp.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._value;if(!l(i))return;let o=i.length;l(n)||(n=new Array(o));let r=0,s=0;for(;r<o;){let c=i[r].getValueInReferenceFrame(e,t,n[r]);l(c)&&(n[s]=c,s++),r++}return n.length=s,n};Dp.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),l(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];l(o)&&t.add(o.definitionChanged,Dp.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};Dp.prototype.equals=function(e){return this===e||e instanceof Dp&&this._referenceFrame===e._referenceFrame&&j.arrayEquals(this._value,e._value)};Dp.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var Sg=Dp;function wg(e){this._value=void 0,this._definitionChanged=new ge,this._eventHelper=new Mr,this.setValue(e)}Object.defineProperties(wg.prototype,{isConstant:{get:function(){let e=this._value;if(!l(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!j.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});wg.prototype.getValue=function(e,t){let n=this._value;if(!l(n))return;let i=n.length;l(t)||(t=new Array(i));let o=0,r=0;for(;o<i;){let a=this._value[o].getValue(e,t[o]);l(a)&&(t[r]=a,r++),o++}return t.length=r,t};wg.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),l(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];l(o)&&t.add(o.definitionChanged,wg.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};wg.prototype.equals=function(e){return this===e||e instanceof wg&&j.arrayEquals(this._value,e._value)};wg.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var yv=wg;function sA(e){let t=e._targetProperty;if(!l(t)){let n=e._targetEntity;if(!l(n)){if(n=e._targetCollection.getById(e._targetId),!l(n)){e._targetEntity=e._targetProperty=void 0;return}n.definitionChanged.addEventListener(Yl.prototype._onTargetEntityDefinitionChanged,e),e._targetEntity=n}let i=e._targetPropertyNames;t=e._targetEntity;for(let o=0,r=i.length;o<r&&l(t);++o)t=t[i[o]];e._targetProperty=t}return t}function Yl(e,t,n){this._targetCollection=e,this._targetId=t,this._targetPropertyNames=n,this._targetProperty=void 0,this._targetEntity=void 0,this._definitionChanged=new ge,e.collectionChanged.addEventListener(Yl.prototype._onCollectionChanged,this)}Object.defineProperties(Yl.prototype,{isConstant:{get:function(){return j.isConstant(sA(this))}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){let e=sA(this);return l(e)?e.referenceFrame:void 0}},targetId:{get:function(){return this._targetId}},targetCollection:{get:function(){return this._targetCollection}},targetPropertyNames:{get:function(){return this._targetPropertyNames}},resolvedProperty:{get:function(){return sA(this)}}});Yl.fromString=function(e,t){let n,i=[],o=!0,r=!1,s="";for(let a=0;a<t.length;++a){let c=t.charAt(a);r?(s+=c,r=!1):c==="\\"?r=!0:o&&c==="#"?(n=s,o=!1,s=""):!o&&c==="."?(i.push(s),s=""):s+=c}return i.push(s),new Yl(e,n,i)};Yl.prototype.getValue=function(e,t){let n=sA(this);return l(n)?n.getValue(e,t):void 0};Yl.prototype.getValueInReferenceFrame=function(e,t,n){let i=sA(this);return l(i)?i.getValueInReferenceFrame(e,t,n):void 0};Yl.prototype.getType=function(e){let t=sA(this);return l(t)?t.getType(e):void 0};Yl.prototype.equals=function(e){if(this===e)return!0;let t=this._targetPropertyNames,n=e._targetPropertyNames;if(this._targetCollection!==e._targetCollection||this._targetId!==e._targetId||t.length!==n.length)return!1;let i=this._targetPropertyNames.length;for(let o=0;o<i;o++)if(t[o]!==n[o])return!1;return!0};Yl.prototype._onTargetEntityDefinitionChanged=function(e,t,n,i){l(this._targetProperty)&&this._targetPropertyNames[0]===t&&(this._targetProperty=void 0,this._definitionChanged.raiseEvent(this))};Yl.prototype._onCollectionChanged=function(e,t,n){let i=this._targetEntity;l(i)&&n.indexOf(i)!==-1?(i.definitionChanged.removeEventListener(Yl.prototype._onTargetEntityDefinitionChanged,this),this._targetEntity=this._targetProperty=void 0):l(i)||(i=sA(this),l(i)&&this._definitionChanged.raiseEvent(this))};var vg=Yl;var s7e={packedLength:1,pack:function(e,t,n){return n=y(n,0),t[n]=e,t},unpack:function(e,t,n){return t=y(t,0),e[t]},convertPackedArrayForInterpolation:function(e,t,n,i){l(i)||(i=[]),t=y(t,0),n=y(n,e.length);let o;for(let r=0,s=n-t+1;r<s;r++){let a=e[t+r];r===0||Math.abs(o-a)<Math.PI?i[r]=a:i[r]=a-P.TWO_PI,o=a}},unpackInterpolationResult:function(e,t,n,i,o){return o=e[0],o<0?o+P.TWO_PI:o}},ud=s7e;var fae={packedLength:1,pack:function(e,t,n){n=y(n,0),t[n]=e},unpack:function(e,t,n){return t=y(t,0),e[t]}};function dae(e,t,n){let i,o=e.length,r=n.length,s=o+r;if(e.length=s,o!==t){let a=o-1;for(i=s-1;i>=t;i--)e[i]=e[a--]}for(i=0;i<r;i++)e[t++]=n[i]}function mae(e,t){return e instanceof ee?e:typeof e=="string"?ee.fromIso8601(e):ee.addSeconds(t,e,new ee)}var k9=[],z9=[];function GF(e,t,n,i,o){let r=0,s,a,c,u,f,d;for(;r<i.length;){f=mae(i[r],e),c=Do(t,f,ee.compare);let p=0,g=0;if(c<0){for(c=~c,u=c*o,a=void 0,d=t[c];r<i.length&&(f=mae(i[r],e),!(l(a)&&ee.compare(a,f)>=0||l(d)&&ee.compare(f,d)>=0));){for(k9[p++]=f,r=r+1,s=0;s<o;s++)z9[g++]=i[r],r=r+1;a=f}p>0&&(z9.length=g,dae(n,u,z9),k9.length=p,dae(t,c,k9))}else{for(s=0;s<o;s++)r++,n[c*o+s]=i[r];r++}}}function fd(e,t){let n=e;n===Number&&(n=fae);let i=n.packedLength,o=y(n.packedInterpolationLength,i),r=0,s;if(l(t)){let a=t.length;s=new Array(a);for(let c=0;c<a;c++){let u=t[c];u===Number&&(u=fae);let f=u.packedLength;i+=f,o+=y(u.packedInterpolationLength,f),s[c]=u}r=a}this._type=e,this._innerType=n,this._interpolationDegree=1,this._interpolationAlgorithm=VT,this._numberOfPoints=0,this._times=[],this._values=[],this._xTable=[],this._yTable=[],this._packedLength=i,this._packedInterpolationLength=o,this._updateTableLength=!0,this._interpolationResult=new Array(o),this._definitionChanged=new ge,this._derivativeTypes=t,this._innerDerivativeTypes=s,this._inputOrder=r,this._forwardExtrapolationType=$u.NONE,this._forwardExtrapolationDuration=0,this._backwardExtrapolationType=$u.NONE,this._backwardExtrapolationDuration=0}Object.defineProperties(fd.prototype,{isConstant:{get:function(){return this._values.length===0}},definitionChanged:{get:function(){return this._definitionChanged}},type:{get:function(){return this._type}},derivativeTypes:{get:function(){return this._derivativeTypes}},interpolationDegree:{get:function(){return this._interpolationDegree}},interpolationAlgorithm:{get:function(){return this._interpolationAlgorithm}},forwardExtrapolationType:{get:function(){return this._forwardExtrapolationType},set:function(e){this._forwardExtrapolationType!==e&&(this._forwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},forwardExtrapolationDuration:{get:function(){return this._forwardExtrapolationDuration},set:function(e){this._forwardExtrapolationDuration!==e&&(this._forwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationType:{get:function(){return this._backwardExtrapolationType},set:function(e){this._backwardExtrapolationType!==e&&(this._backwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationDuration:{get:function(){return this._backwardExtrapolationDuration},set:function(e){this._backwardExtrapolationDuration!==e&&(this._backwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}}});fd.prototype.getValue=function(e,t){let n=this._times,i=n.length;if(i===0)return;let o,r=this._innerType,s=this._values,a=Do(n,e,ee.compare);if(a<0){if(a=~a,a===0){let S=n[a];if(o=this._backwardExtrapolationDuration,this._backwardExtrapolationType===$u.NONE||o!==0&&ee.secondsDifference(S,e)>o)return;if(this._backwardExtrapolationType===$u.HOLD)return r.unpack(s,0,t)}if(a>=i){a=i-1;let S=n[a];if(o=this._forwardExtrapolationDuration,this._forwardExtrapolationType===$u.NONE||o!==0&&ee.secondsDifference(e,S)>o)return;if(this._forwardExtrapolationType===$u.HOLD)return a=i-1,r.unpack(s,a*r.packedLength,t)}let c=this._xTable,u=this._yTable,f=this._interpolationAlgorithm,d=this._packedInterpolationLength,p=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;let S=Math.min(f.getRequiredDataPoints(this._interpolationDegree,p),i);S!==this._numberOfPoints&&(this._numberOfPoints=S,c.length=S,u.length=S*d)}let g=this._numberOfPoints-1;if(g<1)return;let h=0,A=i-1;if(A-h+1>=g+1){let S=a-(g/2|0)-1;S<h&&(S=h);let v=S+g;v>A&&(v=A,S=v-g,S<h&&(S=h)),h=S,A=v}let C=A-h+1;for(let S=0;S<C;++S)c[S]=ee.secondsDifference(n[h+S],n[A]);if(l(r.convertPackedArrayForInterpolation))r.convertPackedArrayForInterpolation(s,h,A,u);else{let S=0,v=this._packedLength,D=h*v,O=(A+1)*v;for(;D<O;)u[S]=s[D],D++,S++}let T=ee.secondsDifference(e,n[A]),E;if(p===0||!l(f.interpolate))E=f.interpolateOrderZero(T,c,u,d,this._interpolationResult);else{let S=Math.floor(d/(p+1));E=f.interpolate(T,c,u,S,p,p,this._interpolationResult)}return l(r.unpackInterpolationResult)?r.unpackInterpolationResult(E,s,h,A,t):r.unpack(E,0,t)}return r.unpack(s,a*this._packedLength,t)};fd.prototype.setInterpolationOptions=function(e){if(!l(e))return;let t=!1,n=e.interpolationAlgorithm,i=e.interpolationDegree;l(n)&&this._interpolationAlgorithm!==n&&(this._interpolationAlgorithm=n,t=!0),l(i)&&this._interpolationDegree!==i&&(this._interpolationDegree=i,t=!0),t&&(this._updateTableLength=!0,this._definitionChanged.raiseEvent(this))};fd.prototype.addSample=function(e,t,n){let i=this._innerDerivativeTypes,o=l(i),r=this._innerType,s=[];if(s.push(e),r.pack(t,s,s.length),o){let a=i.length;for(let c=0;c<a;c++)i[c].pack(n[c],s,s.length)}GF(void 0,this._times,this._values,s,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};fd.prototype.addSamples=function(e,t,n){let i=this._innerDerivativeTypes,o=l(i),r=this._innerType,s=e.length,a=[];for(let c=0;c<s;c++)if(a.push(e[c]),r.pack(t[c],a,a.length),o){let u=n[c],f=i.length;for(let d=0;d<f;d++)i[d].pack(u[d],a,a.length)}GF(void 0,this._times,this._values,a,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};fd.prototype.addSamplesPackedArray=function(e,t){GF(t,this._times,this._values,e,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};fd.prototype.removeSample=function(e){let t=Do(this._times,e,ee.compare);return t<0?!1:(hae(this,t,1),!0)};function hae(e,t,n){let i=e._packedLength;e._times.splice(t,n),e._values.splice(t*i,n*i),e._updateTableLength=!0,e._definitionChanged.raiseEvent(e)}fd.prototype.removeSamples=function(e){let t=this._times,n=Do(t,e.start,ee.compare);n<0?n=~n:e.isStartIncluded||++n;let i=Do(t,e.stop,ee.compare);i<0?i=~i:e.isStopIncluded&&++i,hae(this,n,i-n)};fd.prototype.equals=function(e){if(this===e)return!0;if(!l(e)||this._type!==e._type||this._interpolationDegree!==e._interpolationDegree||this._interpolationAlgorithm!==e._interpolationAlgorithm)return!1;let t=this._derivativeTypes,n=l(t),i=e._derivativeTypes,o=l(i);if(n!==o)return!1;let r,s;if(n){if(s=t.length,s!==i.length)return!1;for(r=0;r<s;r++)if(t[r]!==i[r])return!1}let a=this._times,c=e._times;if(s=a.length,s!==c.length)return!1;for(r=0;r<s;r++)if(!ee.equals(a[r],c[r]))return!1;let u=this._values,f=e._values;for(s=u.length,r=0;r<s;r++)if(u[r]!==f[r])return!1;return!0};fd._mergeNewSamples=GF;var ef=fd;function tf(e,t){t=y(t,0);let n;if(t>0){n=new Array(t);for(let i=0;i<t;i++)n[i]=m}this._numberOfDerivatives=t,this._property=new ef(m,n),this._definitionChanged=new ge,this._referenceFrame=y(e,no.FIXED),this._property._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)}Object.defineProperties(tf.prototype,{isConstant:{get:function(){return this._property.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}},interpolationDegree:{get:function(){return this._property.interpolationDegree}},interpolationAlgorithm:{get:function(){return this._property.interpolationAlgorithm}},numberOfDerivatives:{get:function(){return this._numberOfDerivatives}},forwardExtrapolationType:{get:function(){return this._property.forwardExtrapolationType},set:function(e){this._property.forwardExtrapolationType=e}},forwardExtrapolationDuration:{get:function(){return this._property.forwardExtrapolationDuration},set:function(e){this._property.forwardExtrapolationDuration=e}},backwardExtrapolationType:{get:function(){return this._property.backwardExtrapolationType},set:function(e){this._property.backwardExtrapolationType=e}},backwardExtrapolationDuration:{get:function(){return this._property.backwardExtrapolationDuration},set:function(e){this._property.backwardExtrapolationDuration=e}}});tf.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};tf.prototype.getValueInReferenceFrame=function(e,t,n){if(n=this._property.getValue(e,n),l(n))return T_.convertToReferenceFrame(e,n,this._referenceFrame,t,n)};tf.prototype.setInterpolationOptions=function(e){this._property.setInterpolationOptions(e)};tf.prototype.addSample=function(e,t,n){let i=this._numberOfDerivatives;this._property.addSample(e,t,n)};tf.prototype.addSamples=function(e,t,n){this._property.addSamples(e,t,n)};tf.prototype.addSamplesPackedArray=function(e,t){this._property.addSamplesPackedArray(e,t)};tf.prototype.removeSample=function(e){return this._property.removeSample(e)};tf.prototype.removeSamples=function(e){this._property.removeSamples(e)};tf.prototype.equals=function(e){return this===e||e instanceof tf&&j.equals(this._property,e._property)&&this._referenceFrame===e._referenceFrame};var ma=tf;var a7e={HORIZONTAL:0,VERTICAL:1},Nm=Object.freeze(a7e);var c7e=Nm.HORIZONTAL,l7e=z.WHITE,u7e=z.BLACK,f7e=0,d7e=1;function jT(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new ge,this._orientation=void 0,this._orientationSubscription=void 0,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._offset=void 0,this._offsetSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.orientation=e.orientation,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.offset=e.offset,this.repeat=e.repeat}Object.defineProperties(jT.prototype,{isConstant:{get:function(){return j.isConstant(this._orientation)&&j.isConstant(this._evenColor)&&j.isConstant(this._oddColor)&&j.isConstant(this._offset)&&j.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},orientation:ce("orientation"),evenColor:ce("evenColor"),oddColor:ce("oddColor"),offset:ce("offset"),repeat:ce("repeat")});jT.prototype.getType=function(e){return"Stripe"};jT.prototype.getValue=function(e,t){return l(t)||(t={}),t.horizontal=j.getValueOrDefault(this._orientation,e,c7e)===Nm.HORIZONTAL,t.evenColor=j.getValueOrClonedDefault(this._evenColor,e,l7e,t.evenColor),t.oddColor=j.getValueOrClonedDefault(this._oddColor,e,u7e,t.oddColor),t.offset=j.getValueOrDefault(this._offset,e,f7e),t.repeat=j.getValueOrDefault(this._repeat,e,d7e),t};jT.prototype.equals=function(e){return this===e||e instanceof jT&&j.equals(this._orientation,e._orientation)&&j.equals(this._evenColor,e._evenColor)&&j.equals(this._oddColor,e._oddColor)&&j.equals(this._offset,e._offset)&&j.equals(this._repeat,e._repeat)};var Av=jT;function Dg(e){this._definitionChanged=new ge,this._intervals=new Rr,this._intervals.changedEvent.addEventListener(Dg.prototype._intervalsChanged,this),this._referenceFrame=y(e,no.FIXED)}Object.defineProperties(Dg.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}},referenceFrame:{get:function(){return this._referenceFrame}}});Dg.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};Dg.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._intervals.findDataForIntervalContainingDate(e);if(l(i))return T_.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};Dg.prototype.equals=function(e){return this===e||e instanceof Dg&&this._intervals.equals(e._intervals,j.equals)&&this._referenceFrame===e._referenceFrame};Dg.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var Ig=Dg;function aA(){this._definitionChanged=new ge,this._intervals=new Rr,this._intervals.changedEvent.addEventListener(aA.prototype._intervalsChanged,this)}Object.defineProperties(aA.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});aA.prototype.getValue=function(e,t){let n=this._intervals.findDataForIntervalContainingDate(e);return l(n)&&typeof n.clone=="function"?n.clone(t):n};aA.prototype.equals=function(e){return this===e||e instanceof aA&&this._intervals.equals(e._intervals,j.equals)};aA.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var Pg=aA;function YT(e,t){this._position=void 0,this._subscription=void 0,this._definitionChanged=new ge,this._normalize=y(t,!0),this.position=e}Object.defineProperties(YT.prototype,{isConstant:{get:function(){return j.isConstant(this._position)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._position},set:function(e){let t=this._position;t!==e&&(l(t)&&this._subscription(),this._position=e,l(e)&&(this._subscription=e._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)),this._definitionChanged.raiseEvent(this))}},normalize:{get:function(){return this._normalize},set:function(e){this._normalize!==e&&(this._normalize=e,this._definitionChanged.raiseEvent(this))}}});var m7e=new m,pae=new m,_ae=new ee,H9=1/60;YT.prototype.getValue=function(e,t){return this._getValue(e,t)};YT.prototype._getValue=function(e,t,n){l(t)||(t=new m);let i=this._position;if(j.isConstant(i))return this._normalize?void 0:m.clone(m.ZERO,t);let o=i.getValue(e,m7e),r=i.getValue(ee.addSeconds(e,H9,_ae),pae);if(!l(o)||!l(r)&&(r=o,o=i.getValue(ee.addSeconds(e,-H9,_ae),pae),!l(o)))return;if(m.equals(o,r))return this._normalize?void 0:m.clone(m.ZERO,t);l(n)&&o.clone(n);let s=m.subtract(r,o,t);return this._normalize?m.normalize(s,t):m.divideByScalar(s,H9,t)};YT.prototype.equals=function(e){return this===e||e instanceof YT&&j.equals(this._position,e._position)};var qT=YT;function xv(e,t){this._velocityVectorProperty=new qT(e,!0),this._subscription=void 0,this._ellipsoid=void 0,this._definitionChanged=new ge,this.ellipsoid=y(t,oe.WGS84);let n=this;this._velocityVectorProperty.definitionChanged.addEventListener(function(){n._definitionChanged.raiseEvent(n)})}Object.defineProperties(xv.prototype,{isConstant:{get:function(){return j.isConstant(this._velocityVectorProperty)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._velocityVectorProperty.position},set:function(e){this._velocityVectorProperty.position=e}},ellipsoid:{get:function(){return this._ellipsoid},set:function(e){this._ellipsoid!==e&&(this._ellipsoid=e,this._definitionChanged.raiseEvent(this))}}});var gae=new m,h7e=new m,yae=new Z;xv.prototype.getValue=function(e,t){let n=this._velocityVectorProperty._getValue(e,h7e,gae);if(l(n))return Rt.rotationMatrixFromPositionVelocity(gae,n,this._ellipsoid,yae),Ne.fromRotationMatrix(yae,t)};xv.prototype.equals=function(e){return this===e||e instanceof xv&&j.equals(this._velocityVectorProperty,e._velocityVectorProperty)&&(this._ellipsoid===e._ellipsoid||this._ellipsoid.equals(e._ellipsoid))};var WF=xv;function Og(){}Og.packedLength=m.packedLength;Og.unpack=m.unpack;Og.pack=m.pack;var G9;function Cv(e,t){return t[0]==="#"&&(t=G9+t),vg.fromString(e,t)}function Aae(e,t,n){if(l(n.reference))return Cv(t,n.reference);if(l(n.velocityReference)){let i=Cv(t,n.velocityReference);switch(e){case m:case Og:return new qT(i,e===Og);case Ne:return new WF(i)}}throw new de(`${JSON.stringify(n)} is not valid CZML.`)}function p7e(e,t){return new fm(function(n,i){return t(e.getValue(n,i))},e.isConstant)}var Bi=new m,bc=new HF,Wa=new he,cA=new bn,jF=new Ne;function _7e(e){let t=e.rgbaf;if(l(t))return t;let n=e.rgba;if(!l(n))return;let i=n.length;if(i===z.packedLength)return[z.byteToFloat(n[0]),z.byteToFloat(n[1]),z.byteToFloat(n[2]),z.byteToFloat(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=z.byteToFloat(n[o+1]),t[o+2]=z.byteToFloat(n[o+2]),t[o+3]=z.byteToFloat(n[o+3]),t[o+4]=z.byteToFloat(n[o+4]);return t}function xae(e,t){let n=y(e.uri,e);return l(t)?t.getDerivedResource({url:n}):we.createIfNeeded(n)}function g7e(e){let t=e.wsen;if(l(t))return t;let n=e.wsenDegrees;if(!l(n))return;let i=n.length;if(i===le.packedLength)return[P.toRadians(n[0]),P.toRadians(n[1]),P.toRadians(n[2]),P.toRadians(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=P.toRadians(n[o+1]),t[o+2]=P.toRadians(n[o+2]),t[o+3]=P.toRadians(n[o+3]),t[o+4]=P.toRadians(n[o+4]);return t}function y7e(e){let t=e.length;if(bc.magnitude=1,t===2)return bc.clock=e[0],bc.cone=e[1],m.fromSpherical(bc,Bi),[Bi.x,Bi.y,Bi.z];let n=new Array(t/3*4);for(let i=0,o=0;i<t;i+=3,o+=4)n[o]=e[i],bc.clock=e[i+1],bc.cone=e[i+2],m.fromSpherical(bc,Bi),n[o+1]=Bi.x,n[o+2]=Bi.y,n[o+3]=Bi.z;return n}function A7e(e){let t=e.length;if(t===3)return bc.clock=e[0],bc.cone=e[1],bc.magnitude=e[2],m.fromSpherical(bc,Bi),[Bi.x,Bi.y,Bi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],bc.clock=e[i+1],bc.cone=e[i+2],bc.magnitude=e[i+3],m.fromSpherical(bc,Bi),n[i+1]=Bi.x,n[i+2]=Bi.y,n[i+3]=Bi.z;return n}function x7e(e){let t=e.length;if(t===3)return Wa.longitude=e[0],Wa.latitude=e[1],Wa.height=e[2],oe.WGS84.cartographicToCartesian(Wa,Bi),[Bi.x,Bi.y,Bi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],Wa.longitude=e[i+1],Wa.latitude=e[i+2],Wa.height=e[i+3],oe.WGS84.cartographicToCartesian(Wa,Bi),n[i+1]=Bi.x,n[i+2]=Bi.y,n[i+3]=Bi.z;return n}function C7e(e){let t=e.length;if(t===3)return Wa.longitude=P.toRadians(e[0]),Wa.latitude=P.toRadians(e[1]),Wa.height=e[2],oe.WGS84.cartographicToCartesian(Wa,Bi),[Bi.x,Bi.y,Bi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],Wa.longitude=P.toRadians(e[i+1]),Wa.latitude=P.toRadians(e[i+2]),Wa.height=e[i+3],oe.WGS84.cartographicToCartesian(Wa,Bi),n[i+1]=Bi.x,n[i+2]=Bi.y,n[i+3]=Bi.z;return n}function W9(e){let t=e.cartesian;if(l(t))return t;let n=e.cartesianVelocity;if(l(n))return n;let i=e.unitCartesian;if(l(i))return i;let o=e.unitSpherical;if(l(o))return y7e(o);let r=e.spherical;if(l(r))return A7e(r);let s=e.cartographicRadians;if(l(s))return x7e(s);let a=e.cartographicDegrees;if(l(a))return C7e(a);throw new de(`${JSON.stringify(e)} is not a valid CZML interval.`)}function Cae(e,t){m.unpack(e,t,Bi),m.normalize(Bi,Bi),m.pack(Bi,e,t)}function T7e(e){let t=W9(e);if(t.length===3)return Cae(t,0),t;for(let n=1;n<t.length;n+=4)Cae(t,n);return t}function Tae(e,t){Ne.unpack(e,t,jF),Ne.normalize(jF,jF),Ne.pack(jF,e,t)}function E7e(e){let t=e.unitQuaternion;if(l(t)){if(t.length===4)return Tae(t,0),t;for(let n=1;n<t.length;n+=5)Tae(t,n)}return t}function Eae(e){return typeof e=="boolean"?Boolean:typeof e=="number"?Number:typeof e=="string"?String:e.hasOwnProperty("array")?Array:e.hasOwnProperty("boolean")?Boolean:e.hasOwnProperty("boundingRectangle")?Ke:e.hasOwnProperty("cartesian2")?H:e.hasOwnProperty("cartesian")||e.hasOwnProperty("spherical")||e.hasOwnProperty("cartographicRadians")||e.hasOwnProperty("cartographicDegrees")?m:e.hasOwnProperty("unitCartesian")||e.hasOwnProperty("unitSpherical")?Og:e.hasOwnProperty("rgba")||e.hasOwnProperty("rgbaf")?z:e.hasOwnProperty("arcType")?Zt:e.hasOwnProperty("classificationType")?zn:e.hasOwnProperty("colorBlendMode")?yc:e.hasOwnProperty("cornerType")?Ri:e.hasOwnProperty("heightReference")?qe:e.hasOwnProperty("horizontalOrigin")?_i:e.hasOwnProperty("date")?ee:e.hasOwnProperty("labelStyle")?Ho:e.hasOwnProperty("number")?Number:e.hasOwnProperty("nearFarScalar")?Lt:e.hasOwnProperty("distanceDisplayCondition")?Dt:e.hasOwnProperty("object")||e.hasOwnProperty("value")?Object:e.hasOwnProperty("unitQuaternion")?Ne:e.hasOwnProperty("shadowMode")?xn:e.hasOwnProperty("string")?String:e.hasOwnProperty("stripeOrientation")?Nm:e.hasOwnProperty("wsen")||e.hasOwnProperty("wsenDegrees")?le:e.hasOwnProperty("uri")?Ev.default:e.hasOwnProperty("verticalOrigin")?Rn:Object}function b7e(e,t,n){switch(e){case Zt:return Zt[y(t.arcType,t)];case Array:return t.array;case Boolean:return y(t.boolean,t);case Ke:return t.boundingRectangle;case H:return t.cartesian2;case m:return W9(t);case Og:return T7e(t);case z:return _7e(t);case zn:return zn[y(t.classificationType,t)];case yc:return yc[y(t.colorBlendMode,t)];case Ri:return Ri[y(t.cornerType,t)];case qe:return qe[y(t.heightReference,t)];case _i:return _i[y(t.horizontalOrigin,t)];case Image:return xae(t,n);case ee:return ee.fromIso8601(y(t.date,t));case Ho:return Ho[y(t.labelStyle,t)];case Number:return y(t.number,t);case Lt:return t.nearFarScalar;case Dt:return t.distanceDisplayCondition;case Object:return y(y(t.object,t.value),t);case Ne:return E7e(t);case ud:return y(t.number,t);case xn:return xn[y(y(t.shadowMode,t.shadows),t)];case String:return y(t.string,t);case Nm:return Nm[y(t.stripeOrientation,t)];case le:return g7e(t);case Ev.default:return xae(t,n);case Rn:return Rn[y(t.verticalOrigin,t)];default:throw new de(e)}}var S7e={HERMITE:kF,LAGRANGE:zF,LINEAR:VT};function YF(e,t){let n=e.interpolationAlgorithm,i=e.interpolationDegree;(l(n)||l(i))&&t.setInterpolationOptions({interpolationAlgorithm:S7e[n],interpolationDegree:i});let o=e.forwardExtrapolationType;l(o)&&(t.forwardExtrapolationType=$u[o]);let r=e.forwardExtrapolationDuration;l(r)&&(t.forwardExtrapolationDuration=r);let s=e.backwardExtrapolationType;l(s)&&(t.backwardExtrapolationType=$u[s]);let a=e.backwardExtrapolationDuration;l(a)&&(t.backwardExtrapolationDuration=a)}var bae={iso8601:void 0};function ir(e){if(l(e))return bae.iso8601=e,bn.fromIso8601(bae)}function j9(e){let t=Ge.MAXIMUM_INTERVAL.clone();return t.data=e,t}function Sae(e){let t=new Cc;return t.intervals.addInterval(j9(e)),t}function wae(e){let t=new da(e.referenceFrame);return t.intervals.addInterval(j9(e)),t}function qF(e,t,n,i,o,r,s){let a=ir(i.interval);l(o)&&(l(a)?a=bn.intersect(a,o,cA):a=o);let c,u,f,d=!l(i.reference)&&!l(i.velocityReference),p=l(a)&&!a.equals(Ge.MAXIMUM_INTERVAL);if(i.delete===!0){if(!p){t[n]=void 0;return}return Fae(t[n],a)}let g=!1;if(d){if(u=b7e(e,i,r),!l(u))return;c=y(e.packedLength,1),f=y(u.length,1),g=!l(i.array)&&typeof u!="string"&&f>c&&e!==Object}let h=typeof e.unpack=="function"&&e!==ud;if(!g&&!p){d?t[n]=new $n(h?e.unpack(u,0):u):t[n]=Aae(e,s,i);return}let A=t[n],x,C=i.epoch;if(l(C)&&(x=ee.fromIso8601(C)),g&&!p){A instanceof ef||(t[n]=A=new ef(e)),A.addSamplesPackedArray(u,x),YF(i,A);return}let T;if(!g&&p){a=a.clone(),d?a.data=h?e.unpack(u,0):u:a.data=Aae(e,s,i),l(A)||(t[n]=A=d?new Pg:new Cc),d&&A instanceof Pg?A.intervals.addInterval(a):A instanceof Cc?(d&&(a.data=new $n(a.data)),A.intervals.addInterval(a)):(t[n]=A=Sae(A),d&&(a.data=new $n(a.data)),A.intervals.addInterval(a));return}l(A)||(t[n]=A=new Cc),A instanceof Cc||(t[n]=A=Sae(A));let E=A.intervals;T=E.findInterval(a),(!l(T)||!(T.data instanceof ef))&&(T=a.clone(),T.data=new ef(e),E.addInterval(T)),T.data.addSamplesPackedArray(u,x),YF(i,T.data)}function Fae(e,t){if(e instanceof ef){e.removeSamples(t);return}else if(e instanceof Pg){e.intervals.removeInterval(t);return}else if(e instanceof Cc){let n=e.intervals;for(let i=0;i<n.length;++i){let o=bn.intersect(n.get(i),t,cA);o.isEmpty||Fae(o.data,t)}n.removeInterval(t);return}}function ye(e,t,n,i,o,r,s){if(l(i))if(Array.isArray(i))for(let a=0,c=i.length;a<c;++a)qF(e,t,n,i[a],o,r,s);else qF(e,t,n,i,o,r,s)}function vae(e,t,n,i,o,r){let s=ir(n.interval);l(i)&&(l(s)?s=bn.intersect(s,i,cA):s=i);let a=l(n.cartesianVelocity)?1:0,c=m.packedLength*(a+1),u,f,d=!l(n.reference),p=l(s)&&!s.equals(Ge.MAXIMUM_INTERVAL);if(n.delete===!0){if(!p){e[t]=void 0;return}return Uae(e[t],s)}let g,h=!1;if(d&&(l(n.referenceFrame)&&(g=no[n.referenceFrame]),g=y(g,no.FIXED),u=W9(n),f=y(u.length,1),h=f>c),!h&&!p){d?e[t]=new Xc(m.unpack(u),g):e[t]=Cv(r,n.reference);return}let A=e[t],x,C=n.epoch;if(l(C)&&(x=ee.fromIso8601(C)),h&&!p){(!(A instanceof ma)||l(g)&&A.referenceFrame!==g)&&(e[t]=A=new ma(g,a)),A.addSamplesPackedArray(u,x),YF(n,A);return}let T;if(!h&&p){s=s.clone(),d?s.data=m.unpack(u):s.data=Cv(r,n.reference),l(A)||(d?A=new Ig(g):A=new da(g),e[t]=A),d&&A instanceof Ig&&l(g)&&A.referenceFrame===g?A.intervals.addInterval(s):A instanceof da?(d&&(s.data=new Xc(s.data,g)),A.intervals.addInterval(s)):(e[t]=A=wae(A),d&&(s.data=new Xc(s.data,g)),A.intervals.addInterval(s));return}l(A)?A instanceof da||(e[t]=A=wae(A)):e[t]=A=new da(g);let E=A.intervals;T=E.findInterval(s),(!l(T)||!(T.data instanceof ma)||l(g)&&T.data.referenceFrame!==g)&&(T=s.clone(),T.data=new ma(g,a),E.addInterval(T)),T.data.addSamplesPackedArray(u,x),YF(n,T.data)}function Uae(e,t){if(e instanceof ma){e.removeSamples(t);return}else if(e instanceof Ig){e.intervals.removeInterval(t);return}else if(e instanceof da){let n=e.intervals;for(let i=0;i<n.length;++i){let o=bn.intersect(n.get(i),t,cA);o.isEmpty||Uae(o.data,t)}n.removeInterval(t);return}}function Vae(e,t,n,i,o,r){if(l(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)vae(e,t,n[s],i,o,r);else vae(e,t,n,i,o,r)}function Dae(e,t,n,i){l(n.references)?XF(e,t,n.references,n.interval,i,yv,Cc):(l(n.cartesian2)?n.array=H.unpackArray(n.cartesian2):l(n.cartesian)&&(n.array=H.unpackArray(n.cartesian)),l(n.array)&&ye(Array,e,t,n,void 0,void 0,i))}function Iae(e,t,n,i,o,r){let s=ir(n.interval);l(i)&&(l(s)?s=bn.intersect(s,i,cA):s=i);let a=e[t],c,u;if(l(s)){a instanceof rv||(a=new rv,e[t]=a);let d=a.intervals;u=d.findInterval({start:s.start,stop:s.stop}),l(u)?c=u.data:(u=s.clone(),d.addInterval(u))}else c=a;let f;l(n.solidColor)?(c instanceof Ut||(c=new Ut),f=n.solidColor,ye(z,c,"color",f.color,void 0,void 0,r)):l(n.grid)?(c instanceof hv||(c=new hv),f=n.grid,ye(z,c,"color",f.color,void 0,o,r),ye(Number,c,"cellAlpha",f.cellAlpha,void 0,o,r),ye(H,c,"lineCount",f.lineCount,void 0,o,r),ye(H,c,"lineThickness",f.lineThickness,void 0,o,r),ye(H,c,"lineOffset",f.lineOffset,void 0,o,r)):l(n.image)?(c instanceof u0||(c=new u0),f=n.image,ye(Image,c,"image",f.image,void 0,o,r),ye(H,c,"repeat",f.repeat,void 0,o,r),ye(z,c,"color",f.color,void 0,o,r),ye(Boolean,c,"transparent",f.transparent,void 0,o,r)):l(n.stripe)?(c instanceof Av||(c=new Av),f=n.stripe,ye(Nm,c,"orientation",f.orientation,void 0,o,r),ye(z,c,"evenColor",f.evenColor,void 0,o,r),ye(z,c,"oddColor",f.oddColor,void 0,o,r),ye(Number,c,"offset",f.offset,void 0,o,r),ye(Number,c,"repeat",f.repeat,void 0,o,r)):l(n.polylineOutline)?(c instanceof rA||(c=new rA),f=n.polylineOutline,ye(z,c,"color",f.color,void 0,o,r),ye(z,c,"outlineColor",f.outlineColor,void 0,o,r),ye(Number,c,"outlineWidth",f.outlineWidth,void 0,o,r)):l(n.polylineGlow)?(c instanceof gv||(c=new gv),f=n.polylineGlow,ye(z,c,"color",f.color,void 0,o,r),ye(Number,c,"glowPower",f.glowPower,void 0,o,r),ye(Number,c,"taperPower",f.taperPower,void 0,o,r)):l(n.polylineArrow)?(c instanceof pv||(c=new pv),f=n.polylineArrow,ye(z,c,"color",f.color,void 0,void 0,r)):l(n.polylineDash)?(c instanceof _v||(c=new _v),f=n.polylineDash,ye(z,c,"color",f.color,void 0,void 0,r),ye(z,c,"gapColor",f.gapColor,void 0,void 0,r),ye(Number,c,"dashLength",f.dashLength,void 0,o,r),ye(Number,c,"dashPattern",f.dashPattern,void 0,o,r)):l(n.checkerboard)&&(c instanceof tv||(c=new tv),f=n.checkerboard,ye(z,c,"evenColor",f.evenColor,void 0,o,r),ye(z,c,"oddColor",f.oddColor,void 0,o,r),ye(H,c,"repeat",f.repeat,void 0,o,r)),l(u)?u.data=c:e[t]=c}function ql(e,t,n,i,o,r){if(l(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)Iae(e,t,n[s],i,o,r);else Iae(e,t,n,i,o,r)}function w7e(e,t,n,i){let o=t.name;l(o)&&(e.name=t.name)}function v7e(e,t,n,i){let o=t.description;l(o)&&ye(String,e,"description",o,void 0,i,n)}function D7e(e,t,n,i){let o=t.position;l(o)&&Vae(e,"position",o,void 0,i,n)}function I7e(e,t,n,i){let o=t.viewFrom;l(o)&&ye(m,e,"viewFrom",o,void 0,i,n)}function P7e(e,t,n,i){let o=t.orientation;l(o)&&ye(Ne,e,"orientation",o,void 0,i,n)}function O7e(e,t,n,i){let o=t.properties;if(l(o)){l(e.properties)||(e.properties=new Rl);for(let r in o)if(o.hasOwnProperty(r)){e.properties.hasProperty(r)||e.properties.addProperty(r);let s=o[r];if(Array.isArray(s))for(let a=0,c=s.length;a<c;++a)qF(Eae(s[a]),e.properties,r,s[a],void 0,i,n);else qF(Eae(s),e.properties,r,s,void 0,i,n)}}}function XF(e,t,n,i,o,r,s){let a=n.map(function(c){return Cv(o,c)});if(l(i)){i=ir(i);let c=e[t];if(!(c instanceof s)){let u=new s;u.intervals.addInterval(j9(c)),e[t]=c=u}i.data=new r(a),c.intervals.addInterval(i)}else e[t]=new r(a)}function Pae(e,t,n,i){let o=n.references;l(o)?XF(e,t,o,n.interval,i,yv,Cc):ye(Array,e,t,n,void 0,void 0,i)}function Oae(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Pae(e,t,n[o],i);else Pae(e,t,n,i)}function Mae(e,t,n,i){let o=n.references;l(o)?XF(e,t,o,n.interval,i,Sg,da):(l(n.cartesian)?n.array=m.unpackArray(n.cartesian):l(n.cartographicRadians)?n.array=m.fromRadiansArrayHeights(n.cartographicRadians):l(n.cartographicDegrees)&&(n.array=m.fromDegreesArrayHeights(n.cartographicDegrees)),l(n.array)&&ye(Array,e,t,n,void 0,void 0,i))}function bv(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Mae(e,t,n[o],i);else Mae(e,t,n,i)}function M7e(e){return m.unpackArray(e)}function R7e(e){return m.fromRadiansArrayHeights(e)}function B7e(e){return m.fromDegreesArrayHeights(e)}function Rae(e,t,n,i){let o=n.references;if(l(o)){let r=o.map(function(s){let a={};return XF(a,"positions",s,n.interval,i,Sg,da),a.positions});e[t]=new Sg(r)}else l(n.cartesian)?n.array=n.cartesian.map(M7e):l(n.cartographicRadians)?n.array=n.cartographicRadians.map(R7e):l(n.cartographicDegrees)&&(n.array=n.cartographicDegrees.map(B7e)),l(n.array)&&ye(Array,e,t,n,void 0,void 0,i)}function L7e(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Rae(e,t,n[o],i);else Rae(e,t,n,i)}function N7e(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;o++)Dae(e,t,n[o],i);else Dae(e,t,n,i)}function F7e(e,t,n,i){let o=t.availability;if(!l(o))return;let r;if(Array.isArray(o))for(let s=0,a=o.length;s<a;++s)l(r)||(r=new Rr),r.addInterval(ir(o[s]));else r=new Rr,r.addInterval(ir(o));e.availability=r}function U7e(e,t,n,i,o){l(t)&&ye(Og,e,"alignedAxis",t,n,i,o)}function V7e(e,t,n,i){let o=t.billboard;if(!l(o))return;let r=ir(o.interval),s=e.billboard;l(s)||(e.billboard=s=new lc),ye(Boolean,s,"show",o.show,r,i,n),ye(Image,s,"image",o.image,r,i,n),ye(Number,s,"scale",o.scale,r,i,n),ye(H,s,"pixelOffset",o.pixelOffset,r,i,n),ye(m,s,"eyeOffset",o.eyeOffset,r,i,n),ye(_i,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),ye(Rn,s,"verticalOrigin",o.verticalOrigin,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(z,s,"color",o.color,r,i,n),ye(ud,s,"rotation",o.rotation,r,i,n),U7e(s,o.alignedAxis,r,i,n),ye(Boolean,s,"sizeInMeters",o.sizeInMeters,r,i,n),ye(Number,s,"width",o.width,r,i,n),ye(Number,s,"height",o.height,r,i,n),ye(Lt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ye(Lt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ye(Lt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),ye(Ke,s,"imageSubRegion",o.imageSubRegion,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function k7e(e,t,n,i){let o=t.box;if(!l(o))return;let r=ir(o.interval),s=e.box;l(s)||(e.box=s=new uC),ye(Boolean,s,"show",o.show,r,i,n),ye(m,s,"dimensions",o.dimensions,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),ql(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function z7e(e,t,n,i){let o=t.corridor;if(!l(o))return;let r=ir(o.interval),s=e.corridor;l(s)||(e.corridor=s=new dC),ye(Boolean,s,"show",o.show,r,i,n),bv(s,"positions",o.positions,n),ye(Number,s,"width",o.width,r,i,n),ye(Number,s,"height",o.height,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ye(qe,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ye(Ri,s,"cornerType",o.cornerType,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),ql(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(zn,s,"classificationType",o.classificationType,r,i,n),ye(Number,s,"zIndex",o.zIndex,r,i,n)}function H7e(e,t,n,i){let o=t.cylinder;if(!l(o))return;let r=ir(o.interval),s=e.cylinder;l(s)||(e.cylinder=s=new mC),ye(Boolean,s,"show",o.show,r,i,n),ye(Number,s,"length",o.length,r,i,n),ye(Number,s,"topRadius",o.topRadius,r,i,n),ye(Number,s,"bottomRadius",o.bottomRadius,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),ql(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),ye(Number,s,"slices",o.slices,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function G7e(e,t){let n=e.version;if(l(n)&&typeof n=="string"){let r=n.split(".");if(r.length===2){if(r[0]!=="1")throw new de("Cesium only supports CZML version 1.");t._version=n}}if(!l(t._version))throw new de("CZML version information invalid. It is expected to be a property on the document object in the <Major>.<Minor> version format.");let i=t._documentPacket;l(e.name)&&(i.name=e.name);let o=e.clock;if(l(o)){let r=i.clock;l(r)?(r.interval=y(o.interval,r.interval),r.currentTime=y(o.currentTime,r.currentTime),r.range=y(o.range,r.range),r.step=y(o.step,r.step),r.multiplier=y(o.multiplier,r.multiplier)):i.clock={interval:o.interval,currentTime:o.currentTime,range:o.range,step:o.step,multiplier:o.multiplier}}}function W7e(e,t,n,i){let o=t.ellipse;if(!l(o))return;let r=ir(o.interval),s=e.ellipse;l(s)||(e.ellipse=s=new hC),ye(Boolean,s,"show",o.show,r,i,n),ye(Number,s,"semiMajorAxis",o.semiMajorAxis,r,i,n),ye(Number,s,"semiMinorAxis",o.semiMinorAxis,r,i,n),ye(Number,s,"height",o.height,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ye(qe,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ye(ud,s,"rotation",o.rotation,r,i,n),ye(ud,s,"stRotation",o.stRotation,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),ql(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(zn,s,"classificationType",o.classificationType,r,i,n),ye(Number,s,"zIndex",o.zIndex,r,i,n)}function j7e(e,t,n,i){let o=t.ellipsoid;if(!l(o))return;let r=ir(o.interval),s=e.ellipsoid;l(s)||(e.ellipsoid=s=new pC),ye(Boolean,s,"show",o.show,r,i,n),ye(m,s,"radii",o.radii,r,i,n),ye(m,s,"innerRadii",o.innerRadii,r,i,n),ye(Number,s,"minimumClock",o.minimumClock,r,i,n),ye(Number,s,"maximumClock",o.maximumClock,r,i,n),ye(Number,s,"minimumCone",o.minimumCone,r,i,n),ye(Number,s,"maximumCone",o.maximumCone,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),ql(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Number,s,"stackPartitions",o.stackPartitions,r,i,n),ye(Number,s,"slicePartitions",o.slicePartitions,r,i,n),ye(Number,s,"subdivisions",o.subdivisions,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function Y7e(e,t,n,i){let o=t.label;if(!l(o))return;let r=ir(o.interval),s=e.label;l(s)||(e.label=s=new am),ye(Boolean,s,"show",o.show,r,i,n),ye(String,s,"text",o.text,r,i,n),ye(String,s,"font",o.font,r,i,n),ye(Ho,s,"style",o.style,r,i,n),ye(Number,s,"scale",o.scale,r,i,n),ye(Boolean,s,"showBackground",o.showBackground,r,i,n),ye(z,s,"backgroundColor",o.backgroundColor,r,i,n),ye(H,s,"backgroundPadding",o.backgroundPadding,r,i,n),ye(H,s,"pixelOffset",o.pixelOffset,r,i,n),ye(m,s,"eyeOffset",o.eyeOffset,r,i,n),ye(_i,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),ye(Rn,s,"verticalOrigin",o.verticalOrigin,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(z,s,"fillColor",o.fillColor,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Lt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ye(Lt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),ye(Lt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function q7e(e,t,n,i){let o=t.model;if(!l(o))return;let r=ir(o.interval),s=e.model;l(s)||(e.model=s=new E_),ye(Boolean,s,"show",o.show,r,i,n),ye(Ev.default,s,"uri",o.gltf,r,i,n),ye(Number,s,"scale",o.scale,r,i,n),ye(Number,s,"minimumPixelSize",o.minimumPixelSize,r,i,n),ye(Number,s,"maximumScale",o.maximumScale,r,i,n),ye(Boolean,s,"incrementallyLoadTextures",o.incrementallyLoadTextures,r,i,n),ye(Boolean,s,"runAnimations",o.runAnimations,r,i,n),ye(Boolean,s,"clampAnimations",o.clampAnimations,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(z,s,"silhouetteColor",o.silhouetteColor,r,i,n),ye(Number,s,"silhouetteSize",o.silhouetteSize,r,i,n),ye(z,s,"color",o.color,r,i,n),ye(yc,s,"colorBlendMode",o.colorBlendMode,r,i,n),ye(Number,s,"colorBlendAmount",o.colorBlendAmount,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n);let a,c,u=o.nodeTransformations;if(l(u))if(Array.isArray(u))for(a=0,c=u.length;a<c;++a)Bae(s,u[a],r,i,n);else Bae(s,u,r,i,n);let f=o.articulations;if(l(f))if(Array.isArray(f))for(a=0,c=f.length;a<c;++a)Lae(s,f[a],r,i,n);else Lae(s,f,r,i,n)}function Bae(e,t,n,i,o){let r=ir(t.interval);l(n)&&(l(r)?r=bn.intersect(r,n,cA):r=n);let s=e.nodeTransformations,a=Object.keys(t);for(let c=0,u=a.length;c<u;++c){let f=a[c];if(f==="interval")continue;let d=t[f];if(!l(d))continue;l(s)||(e.nodeTransformations=s=new Rl),s.hasProperty(f)||s.addProperty(f);let p=s[f];l(p)||(s[f]=p=new _C),ye(m,p,"translation",d.translation,r,i,o),ye(Ne,p,"rotation",d.rotation,r,i,o),ye(m,p,"scale",d.scale,r,i,o)}}function Lae(e,t,n,i,o){let r=ir(t.interval);l(n)&&(l(r)?r=bn.intersect(r,n,cA):r=n);let s=e.articulations,a=Object.keys(t);for(let c=0,u=a.length;c<u;++c){let f=a[c];if(f==="interval")continue;let d=t[f];l(d)&&(l(s)||(e.articulations=s=new Rl),s.hasProperty(f)||s.addProperty(f),ye(Number,s,f,d,r,i,o))}}function X7e(e,t,n,i){let o=t.path;if(!l(o))return;let r=ir(o.interval),s=e.path;l(s)||(e.path=s=new b_),ye(Boolean,s,"show",o.show,r,i,n),ye(Number,s,"leadTime",o.leadTime,r,i,n),ye(Number,s,"trailTime",o.trailTime,r,i,n),ye(Number,s,"width",o.width,r,i,n),ye(Number,s,"resolution",o.resolution,r,i,n),ql(s,"material",o.material,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function K7e(e,t,n,i){let o=t.point;if(!l(o))return;let r=ir(o.interval),s=e.point;l(s)||(e.point=s=new yC),ye(Boolean,s,"show",o.show,r,i,n),ye(Number,s,"pixelSize",o.pixelSize,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(z,s,"color",o.color,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Lt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ye(Lt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function Tv(e){this.polygon=e,this._definitionChanged=new ge}Object.defineProperties(Tv.prototype,{isConstant:{get:function(){let e=this.polygon._positions,t=this.polygon._holes;return(!l(e)||e.isConstant)&&(!l(t)||t.isConstant)}},definitionChanged:{get:function(){return this._definitionChanged}}});Tv.prototype.getValue=function(e,t){let n;l(this.polygon._positions)&&(n=this.polygon._positions.getValue(e));let i;return l(this.polygon._holes)&&(i=this.polygon._holes.getValue(e),l(i)&&(i=i.map(function(o){return new Kc(o)}))),l(t)?(t.positions=n,t.holes=i,t):new Kc(n,i)};Tv.prototype.equals=function(e){return this===e||e instanceof Tv&&j.equals(this.polygon._positions,e.polygon._positions)&&j.equals(this.polygon._holes,e.polygon._holes)};function J7e(e,t,n,i){let o=t.polygon;if(!l(o))return;let r=ir(o.interval),s=e.polygon;l(s)||(e.polygon=s=new cm),ye(Boolean,s,"show",o.show,r,i,n),bv(s,"_positions",o.positions,n),L7e(s,"_holes",o.holes,n),(l(s._positions)||l(s._holes))&&(s.hierarchy=new Tv(s)),ye(Number,s,"height",o.height,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ye(qe,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ye(ud,s,"stRotation",o.stRotation,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),ql(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Boolean,s,"perPositionHeight",o.perPositionHeight,r,i,n),ye(Boolean,s,"closeTop",o.closeTop,r,i,n),ye(Boolean,s,"closeBottom",o.closeBottom,r,i,n),ye(Zt,s,"arcType",o.arcType,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(zn,s,"classificationType",o.classificationType,r,i,n),ye(Number,s,"zIndex",o.zIndex,r,i,n)}function Z7e(e){return e?Zt.GEODESIC:Zt.NONE}function Q7e(e,t,n,i){let o=t.polyline;if(!l(o))return;let r=ir(o.interval),s=e.polyline;if(l(s)||(e.polyline=s=new pc),ye(Boolean,s,"show",o.show,r,i,n),bv(s,"positions",o.positions,n),ye(Number,s,"width",o.width,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),ql(s,"material",o.material,r,i,n),ql(s,"depthFailMaterial",o.depthFailMaterial,r,i,n),ye(Zt,s,"arcType",o.arcType,r,i,n),ye(Boolean,s,"clampToGround",o.clampToGround,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(zn,s,"classificationType",o.classificationType,r,i,n),ye(Number,s,"zIndex",o.zIndex,r,i,n),l(o.followSurface)&&!l(o.arcType)){let a={};ye(Boolean,a,"followSurface",o.followSurface,r,i,n),s.arcType=p7e(a.followSurface,Z7e)}}function $7e(e,t,n,i){let o=t.polylineVolume;if(!l(o))return;let r=ir(o.interval),s=e.polylineVolume;l(s)||(e.polylineVolume=s=new AC),bv(s,"positions",o.positions,n),N7e(s,"shape",o.shape,n),ye(Boolean,s,"show",o.show,r,i,n),ye(Ri,s,"cornerType",o.cornerType,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),ql(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function eje(e,t,n,i){let o=t.rectangle;if(!l(o))return;let r=ir(o.interval),s=e.rectangle;l(s)||(e.rectangle=s=new lm),ye(Boolean,s,"show",o.show,r,i,n),ye(le,s,"coordinates",o.coordinates,r,i,n),ye(Number,s,"height",o.height,r,i,n),ye(qe,s,"heightReference",o.heightReference,r,i,n),ye(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ye(qe,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ye(ud,s,"rotation",o.rotation,r,i,n),ye(ud,s,"stRotation",o.stRotation,r,i,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),ql(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ye(zn,s,"classificationType",o.classificationType,r,i,n),ye(Number,s,"zIndex",o.zIndex,r,i,n)}function tje(e,t,n,i){let o=t.tileset;if(!l(o))return;let r=ir(o.interval),s=e.tileset;l(s)||(e.tileset=s=new gC),ye(Boolean,s,"show",o.show,r,i,n),ye(Ev.default,s,"uri",o.uri,r,i,n),ye(Number,s,"maximumScreenSpaceError",o.maximumScreenSpaceError,r,i,n)}function nje(e,t,n,i){let o=t.wall;if(!l(o))return;let r=ir(o.interval),s=e.wall;l(s)||(e.wall=s=new S_),ye(Boolean,s,"show",o.show,r,i,n),bv(s,"positions",o.positions,n),Oae(s,"minimumHeights",o.minimumHeights,n),Oae(s,"maximumHeights",o.maximumHeights,n),ye(Number,s,"granularity",o.granularity,r,i,n),ye(Boolean,s,"fill",o.fill,r,i,n),ql(s,"material",o.material,r,i,n),ye(Boolean,s,"outline",o.outline,r,i,n),ye(z,s,"outlineColor",o.outlineColor,r,i,n),ye(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ye(xn,s,"shadows",o.shadows,r,i,n),ye(Dt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function Nae(e,t,n,i,o){let r=e.id;if(l(r)||(r=jn()),G9=r,!l(o._version)&&r!=="document")throw new de("The first CZML packet is required to be the document object.");if(e.delete===!0)t.removeById(r);else if(r==="document")G7e(e,o);else{let s=t.getOrCreateEntity(r),a=e.parent;l(a)&&(s.parent=t.getOrCreateEntity(a));for(let c=n.length-1;c>-1;c--)n[c](s,e,t,i)}G9=void 0}function ije(e){let t,n=e._documentPacket.clock;if(!l(n)){if(!l(e._clock)){let o=e._entityCollection.computeAvailability();if(!o.start.equals(Ge.MINIMUM_VALUE)){let r=o.start,s=o.stop,a=ee.secondsDifference(s,r),c=Math.round(a/120);return t=new Lm,t.startTime=ee.clone(r),t.stopTime=ee.clone(s),t.clockRange=Lr.LOOP_STOP,t.multiplier=c,t.currentTime=ee.clone(r),t.clockStep=go.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}l(e._clock)?t=e._clock.clone():(t=new Lm,t.startTime=Ge.MINIMUM_VALUE.clone(),t.stopTime=Ge.MAXIMUM_VALUE.clone(),t.currentTime=Ge.MINIMUM_VALUE.clone(),t.clockRange=Lr.LOOP_STOP,t.clockStep=go.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1);let i=ir(n.interval);return l(i)&&(t.startTime=i.start,t.stopTime=i.stop),l(n.currentTime)&&(t.currentTime=ee.fromIso8601(n.currentTime)),l(n.range)&&(t.clockRange=y(Lr[n.range],Lr.LOOP_STOP)),l(n.step)&&(t.clockStep=y(go[n.step],go.SYSTEM_CLOCK_MULTIPLIER)),l(n.multiplier)&&(t.multiplier=n.multiplier),t.equals(e._clock)?!1:(e._clock=t.clone(e._clock),!0)}function kae(e,t,n,i){n=y(n,y.EMPTY_OBJECT);let o=t,r=n.sourceUri,s=n.credit;if(typeof s=="string"&&(s=new It(s)),e._credit=s,typeof t=="string"||t instanceof we){t=we.createIfNeeded(t),o=t.fetchJson(),r=y(r,t.clone());let a=e._resourceCredits,c=t.credits;if(l(c)){let u=c.length;for(let f=0;f<u;f++)a.push(c[f])}}return r=we.createIfNeeded(r),Br.setLoading(e,!0),Promise.resolve(o).then(function(a){return oje(e,a,r,i)}).catch(function(a){return Br.setLoading(e,!1),e._error.raiseEvent(e,a),console.log(a),Promise.reject(a)})}function oje(e,t,n,i){Br.setLoading(e,!0);let o=e._entityCollection;i&&(e._version=void 0,e._documentPacket=new zae,o.removeAll()),rl._processCzml(t,o,n,void 0,e);let r=ije(e),s=e._documentPacket;return l(s.name)&&e._name!==s.name?(e._name=s.name,r=!0):!l(e._name)&&l(n)&&(e._name=bg(n.getUrlComponent()),r=!0),Br.setLoading(e,!1),r&&e._changed.raiseEvent(e),e}function zae(){this.name=void 0,this.clock=void 0}function rl(e){this._name=e,this._changed=new ge,this._error=new ge,this._isLoading=!1,this._loading=new ge,this._clock=void 0,this._documentPacket=new zae,this._version=void 0,this._entityCollection=new zs(this),this._entityCluster=new Qu,this._credit=void 0,this._resourceCredits=[]}rl.load=function(e,t){return new rl().load(e,t)};Object.defineProperties(rl.prototype,{name:{get:function(){return this._name}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});rl.updaters=[V7e,k7e,z7e,H7e,W7e,j7e,Y7e,q7e,w7e,v7e,X7e,K7e,J7e,Q7e,$7e,O7e,eje,D7e,tje,I7e,nje,P7e,F7e];rl.prototype.process=function(e,t){return kae(this,e,t,!1)};rl.prototype.load=function(e,t){return kae(this,e,t,!0)};rl.prototype.update=function(e){return!0};rl.processPacketData=ye;rl.processPositionPacketData=Vae;rl.processMaterialPacketData=ql;rl._processCzml=function(e,t,n,i,o){if(i=y(i,rl.updaters),Array.isArray(e))for(let r=0,s=e.length;r<s;++r)Nae(e[r],t,i,n,o);else Nae(e,t,i,n,o)};var KF=rl;function Sc(){this._dataSources=[],this._dataSourceAdded=new ge,this._dataSourceRemoved=new ge,this._dataSourceMoved=new ge}Object.defineProperties(Sc.prototype,{length:{get:function(){return this._dataSources.length}},dataSourceAdded:{get:function(){return this._dataSourceAdded}},dataSourceRemoved:{get:function(){return this._dataSourceRemoved}},dataSourceMoved:{get:function(){return this._dataSourceMoved}}});Sc.prototype.add=function(e){let t=this,n=this._dataSources;return Promise.resolve(e).then(function(i){return n===t._dataSources&&(t._dataSources.push(i),t._dataSourceAdded.raiseEvent(t,i)),i})};Sc.prototype.remove=function(e,t){t=y(t,!1);let n=this._dataSources.indexOf(e);return n!==-1?(this._dataSources.splice(n,1),this._dataSourceRemoved.raiseEvent(this,e),t&&typeof e.destroy=="function"&&e.destroy(),!0):!1};Sc.prototype.removeAll=function(e){e=y(e,!1);let t=this._dataSources;for(let n=0,i=t.length;n<i;++n){let o=t[n];this._dataSourceRemoved.raiseEvent(this,o),e&&typeof o.destroy=="function"&&o.destroy()}this._dataSources=[]};Sc.prototype.contains=function(e){return this.indexOf(e)!==-1};Sc.prototype.indexOf=function(e){return this._dataSources.indexOf(e)};Sc.prototype.get=function(e){return this._dataSources[e]};Sc.prototype.getByName=function(e){return this._dataSources.filter(function(t){return t.name===e})};function JF(e,t){return e.indexOf(t)}function Hae(e,t,n){let i=e._dataSources,o=i.length-1;if(t=P.clamp(t,0,o),n=P.clamp(n,0,o),t===n)return;let r=i[t];i[t]=i[n],i[n]=r,e.dataSourceMoved.raiseEvent(r,n,t)}Sc.prototype.raise=function(e){let t=JF(this._dataSources,e);Hae(this,t,t+1)};Sc.prototype.lower=function(e){let t=JF(this._dataSources,e);Hae(this,t,t-1)};Sc.prototype.raiseToTop=function(e){let t=JF(this._dataSources,e);t!==this._dataSources.length-1&&(this._dataSources.splice(t,1),this._dataSources.push(e),this.dataSourceMoved.raiseEvent(e,this._dataSources.length-1,t))};Sc.prototype.lowerToBottom=function(e){let t=JF(this._dataSources,e);t!==0&&(this._dataSources.splice(t,1),this._dataSources.splice(0,0,e),this.dataSourceMoved.raiseEvent(e,0,t))};Sc.prototype.isDestroyed=function(){return!1};Sc.prototype.destroy=function(){return this.removeAll(!0),ue(this)};var ZF=Sc;function Ws(e){e=y(e,y.EMPTY_OBJECT),this._primitives=[],this._guid=jn(),this._zIndex=void 0,this.show=y(e.show,!0),this.destroyPrimitives=y(e.destroyPrimitives,!0)}Object.defineProperties(Ws.prototype,{length:{get:function(){return this._primitives.length}}});Ws.prototype.add=function(e,t){let n=l(t),i=e._external=e._external||{},o=i._composites=i._composites||{};return o[this._guid]={collection:this},n?this._primitives.splice(t,0,e):this._primitives.push(e),e};Ws.prototype.remove=function(e){if(this.contains(e)){let t=this._primitives.indexOf(e);if(t!==-1)return this._primitives.splice(t,1),delete e._external._composites[this._guid],this.destroyPrimitives&&e.destroy(),!0}return!1};Ws.prototype.removeAndDestroy=function(e){let t=this.remove(e);return t&&!this.destroyPrimitives&&e.destroy(),t};Ws.prototype.removeAll=function(){let e=this._primitives,t=e.length;for(let n=0;n<t;++n)delete e[n]._external._composites[this._guid],this.destroyPrimitives&&e[n].destroy();this._primitives=[]};Ws.prototype.contains=function(e){return!!(l(e)&&e._external&&e._external._composites&&e._external._composites[this._guid])};function QF(e,t){return e._primitives.indexOf(t)}Ws.prototype.raise=function(e){if(l(e)){let t=QF(this,e),n=this._primitives;if(t!==n.length-1){let i=n[t];n[t]=n[t+1],n[t+1]=i}}};Ws.prototype.raiseToTop=function(e){if(l(e)){let t=QF(this,e),n=this._primitives;t!==n.length-1&&(n.splice(t,1),n.push(e))}};Ws.prototype.lower=function(e){if(l(e)){let t=QF(this,e),n=this._primitives;if(t!==0){let i=n[t];n[t]=n[t-1],n[t-1]=i}}};Ws.prototype.lowerToBottom=function(e){if(l(e)){let t=QF(this,e),n=this._primitives;t!==0&&(n.splice(t,1),n.unshift(e))}};Ws.prototype.get=function(e){return this._primitives[e]};Ws.prototype.update=function(e){if(!this.show)return;let t=this._primitives;for(let n=0;n<t.length;++n)t[n].update(e)};Ws.prototype.prePassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];l(i.prePassesUpdate)&&i.prePassesUpdate(e)}};Ws.prototype.updateForPass=function(e,t){let n=this._primitives;for(let i=0;i<n.length;++i){let o=n[i];l(o.updateForPass)&&o.updateForPass(e,t)}};Ws.prototype.postPassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];l(i.postPassesUpdate)&&i.postPassesUpdate(e)}};Ws.prototype.isDestroyed=function(){return!1};Ws.prototype.destroy=function(){return this.removeAll(),ue(this)};var Xl=Ws;function Fm(){this._length=0,this._collections={},this._collectionsArray=[],this.show=!0}Object.defineProperties(Fm.prototype,{length:{get:function(){return this._length}}});Fm.prototype.add=function(e,t){t=y(t,0);let n=this._collections[t];if(!l(n)){n=new Xl({destroyPrimitives:!1}),n._zIndex=t,this._collections[t]=n;let i=this._collectionsArray,o=0;for(;o<i.length&&i[o]._zIndex<t;)o++;i.splice(o,0,n)}return n.add(e),this._length++,e._zIndex=t,e};Fm.prototype.set=function(e,t){return t===e._zIndex||(this.remove(e,!0),this.add(e,t)),e};Fm.prototype.remove=function(e,t){if(this.contains(e)){let n=e._zIndex,i=this._collections[n],o;return t?o=i.remove(e):o=i.removeAndDestroy(e),o&&this._length--,i.length===0&&(this._collectionsArray.splice(this._collectionsArray.indexOf(i),1),this._collections[n]=void 0,i.destroy()),o}return!1};Fm.prototype.removeAll=function(){let e=this._collectionsArray;for(let t=0;t<e.length;t++){let n=e[t];n.destroyPrimitives=!0,n.destroy()}this._collections={},this._collectionsArray=[],this._length=0};Fm.prototype.contains=function(e){if(!l(e))return!1;let t=this._collections[e._zIndex];return l(t)&&t.contains(e)};Fm.prototype.update=function(e){if(!this.show)return;let t=this._collectionsArray;for(let n=0;n<t.length;n++)t[n].update(e)};Fm.prototype.isDestroyed=function(){return!1};Fm.prototype.destroy=function(){return this.removeAll(),ue(this)};var $F=Fm;function XT(e,t){this._primitives=e,this._orderedGroundPrimitives=t,this._dynamicUpdaters=new Et}XT.prototype.add=function(e,t){this._dynamicUpdaters.set(t.id,t.createDynamicUpdater(this._primitives,this._orderedGroundPrimitives))};XT.prototype.remove=function(e){let t=e.id,n=this._dynamicUpdaters.get(t);l(n)&&(this._dynamicUpdaters.remove(t),n.destroy())};XT.prototype.update=function(e){let t=this._dynamicUpdaters.values;for(let n=0,i=t.length;n<i;n++)t[n].update(e);return!0};XT.prototype.removeAllPrimitives=function(){let e=this._dynamicUpdaters.values;for(let t=0,n=e.length;t<n;t++)e[t].destroy();this._dynamicUpdaters.removeAll()};XT.prototype.getBoundingSphere=function(e,t){return e=this._dynamicUpdaters.get(e.id),l(e)&&l(e.getBoundingSphere)?e.getBoundingSphere(t):ut.FAILED};var KT=XT;var q9={},e2=new m,Gae=new m,Wae=new Ne,jae=new Z;function JT(e,t,n,i,o,r,s,a,c,u){let f=e+t;m.multiplyByScalar(i,Math.cos(f),e2),m.multiplyByScalar(n,Math.sin(f),Gae),m.add(e2,Gae,e2);let d=Math.cos(e);d=d*d;let p=Math.sin(e);p=p*p;let h=r/Math.sqrt(s*d+o*p)/a;return Ne.fromAxisAngle(e2,h,Wae),Z.fromQuaternion(Wae,jae),Z.multiplyByVector(jae,c,u),m.normalize(u,u),m.multiplyByScalar(u,a,u),u}var Yae=new m,qae=new m,Y9=new m,rje=new m;q9.raisePositionsToHeight=function(e,t,n){let i=t.ellipsoid,o=t.height,r=t.extrudedHeight,s=n?e.length/3*2:e.length/3,a=new Float64Array(s*3),c=e.length,u=n?c:0;for(let f=0;f<c;f+=3){let d=f+1,p=f+2,g=m.fromArray(e,f,Yae);i.scaleToGeodeticSurface(g,g);let h=m.clone(g,qae),A=i.geodeticSurfaceNormal(g,rje),x=m.multiplyByScalar(A,o,Y9);m.add(g,x,g),n&&(m.multiplyByScalar(A,r,x),m.add(h,x,h),a[f+u]=h.x,a[d+u]=h.y,a[p+u]=h.z),a[f]=g.x,a[d]=g.y,a[p]=g.z}return a};var sje=new m,aje=new m,cje=new m;q9.computeEllipsePositions=function(e,t,n){let i=e.semiMinorAxis,o=e.semiMajorAxis,r=e.rotation,s=e.center,a=e.granularity*8,c=i*i,u=o*o,f=o*i,d=m.magnitude(s),p=m.normalize(s,sje),g=m.cross(m.UNIT_Z,s,aje);g=m.normalize(g,g);let h=m.cross(p,g,cje),A=1+Math.ceil(P.PI_OVER_TWO/a),x=P.PI_OVER_TWO/(A-1),C=P.PI_OVER_TWO-A*x;C<0&&(A-=Math.ceil(Math.abs(C)/x));let T=2*(A*(A+2)),E=t?new Array(T*3):void 0,S=0,v=Yae,D=qae,O=A*4*3,M=O-1,L=0,N=n?new Array(O):void 0,_,b,w,I,R;for(C=P.PI_OVER_TWO,v=JT(C,r,h,g,c,f,u,d,p,v),t&&(E[S++]=v.x,E[S++]=v.y,E[S++]=v.z),n&&(N[M--]=v.z,N[M--]=v.y,N[M--]=v.x),C=P.PI_OVER_TWO-x,_=1;_<A+1;++_){if(v=JT(C,r,h,g,c,f,u,d,p,v),D=JT(Math.PI-C,r,h,g,c,f,u,d,p,D),t){for(E[S++]=v.x,E[S++]=v.y,E[S++]=v.z,w=2*_+2,b=1;b<w-1;++b)I=b/(w-1),R=m.lerp(v,D,I,Y9),E[S++]=R.x,E[S++]=R.y,E[S++]=R.z;E[S++]=D.x,E[S++]=D.y,E[S++]=D.z}n&&(N[M--]=v.z,N[M--]=v.y,N[M--]=v.x,N[L++]=D.x,N[L++]=D.y,N[L++]=D.z),C=P.PI_OVER_TWO-(_+1)*x}for(_=A;_>1;--_){if(C=P.PI_OVER_TWO-(_-1)*x,v=JT(-C,r,h,g,c,f,u,d,p,v),D=JT(C+Math.PI,r,h,g,c,f,u,d,p,D),t){for(E[S++]=v.x,E[S++]=v.y,E[S++]=v.z,w=2*(_-1)+2,b=1;b<w-1;++b)I=b/(w-1),R=m.lerp(v,D,I,Y9),E[S++]=R.x,E[S++]=R.y,E[S++]=R.z;E[S++]=D.x,E[S++]=D.y,E[S++]=D.z}n&&(N[M--]=v.z,N[M--]=v.y,N[M--]=v.x,N[L++]=D.x,N[L++]=D.y,N[L++]=D.z)}C=P.PI_OVER_TWO,v=JT(-C,r,h,g,c,f,u,d,p,v);let F={};return t&&(E[S++]=v.x,E[S++]=v.y,E[S++]=v.z,F.positions=E,F.numPts=A),n&&(N[M--]=v.z,N[M--]=v.y,N[M--]=v.x,F.outerPositions=N),F};var Kl=q9;var ZT=new m,X9=new m,K9=new m,Xae=new m,os=new H,Kae=new Z,lje=new Z,J9=new Ne,Jae=new m,Zae=new m,Qae=new m,i2=new he,$ae=new m,ece=new H,tce=new H;function nce(e,t,n){let i=t.vertexFormat,o=t.center,r=t.semiMajorAxis,s=t.semiMinorAxis,a=t.ellipsoid,c=t.stRotation,u=n?e.length/3*2:e.length/3,f=t.shadowVolume,d=i.st?new Float32Array(u*2):void 0,p=i.normal?new Float32Array(u*3):void 0,g=i.tangent?new Float32Array(u*3):void 0,h=i.bitangent?new Float32Array(u*3):void 0,A=f?new Float32Array(u*3):void 0,x=0,C=Jae,T=Zae,E=Qae,S=new Di(a),v=S.project(a.cartesianToCartographic(o,i2),$ae),D=a.scaleToGeodeticSurface(o,ZT);a.geodeticSurfaceNormal(D,D);let O=Kae,M=lje;if(c!==0){let R=Ne.fromAxisAngle(D,c,J9);O=Z.fromQuaternion(R,O),R=Ne.fromAxisAngle(D,-c,J9),M=Z.fromQuaternion(R,M)}else O=Z.clone(Z.IDENTITY,O),M=Z.clone(Z.IDENTITY,M);let L=H.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,ece),N=H.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,tce),_=e.length,b=n?_:0,w=b/3*2;for(let R=0;R<_;R+=3){let F=R+1,k=R+2,V=m.fromArray(e,R,ZT);if(i.st){let G=Z.multiplyByVector(O,V,X9),U=S.project(a.cartesianToCartographic(G,i2),K9);m.subtract(U,v,U),os.x=(U.x+r)/(2*r),os.y=(U.y+s)/(2*s),L.x=Math.min(os.x,L.x),L.y=Math.min(os.y,L.y),N.x=Math.max(os.x,N.x),N.y=Math.max(os.y,N.y),n&&(d[x+w]=os.x,d[x+1+w]=os.y),d[x++]=os.x,d[x++]=os.y}(i.normal||i.tangent||i.bitangent||f)&&(C=a.geodeticSurfaceNormal(V,C),f&&(A[R+b]=-C.x,A[F+b]=-C.y,A[k+b]=-C.z),(i.normal||i.tangent||i.bitangent)&&((i.tangent||i.bitangent)&&(T=m.normalize(m.cross(m.UNIT_Z,C,T),T),Z.multiplyByVector(M,T,T)),i.normal&&(p[R]=C.x,p[F]=C.y,p[k]=C.z,n&&(p[R+b]=-C.x,p[F+b]=-C.y,p[k+b]=-C.z)),i.tangent&&(g[R]=T.x,g[F]=T.y,g[k]=T.z,n&&(g[R+b]=-T.x,g[F+b]=-T.y,g[k+b]=-T.z)),i.bitangent&&(E=m.normalize(m.cross(C,T,E),E),h[R]=E.x,h[F]=E.y,h[k]=E.z,n&&(h[R+b]=E.x,h[F+b]=E.y,h[k+b]=E.z))))}if(i.st){_=d.length;for(let R=0;R<_;R+=2)d[R]=(d[R]-L.x)/(N.x-L.x),d[R+1]=(d[R+1]-L.y)/(N.y-L.y)}let I=new _n;if(i.position){let R=Kl.raisePositionsToHeight(e,t,n);I.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:R})}if(i.st&&(I.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:d})),i.normal&&(I.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),i.tangent&&(I.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),i.bitangent&&(I.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:h})),f&&(I.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),n&&l(t.offsetAttribute)){let R=new Uint8Array(u);if(t.offsetAttribute===rn.TOP)R=R.fill(1,0,u/2);else{let F=t.offsetAttribute===rn.NONE?0:1;R=R.fill(F)}I.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:R})}return I}function ice(e){let t=new Array(12*(e*(e+1))-6),n=0,i,o,r,s,a;for(i=0,r=1,s=0;s<3;s++)t[n++]=r++,t[n++]=i,t[n++]=r;for(s=2;s<e+1;++s){for(r=s*(s+1)-1,i=(s-1)*s-1,t[n++]=r++,t[n++]=i,t[n++]=r,o=2*s,a=0;a<o-1;++a)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;t[n++]=r++,t[n++]=i,t[n++]=r}for(o=e*2,++r,++i,s=0;s<o-1;++s)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;for(t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i++,t[n++]=i,++i,s=e-1;s>1;--s){for(t[n++]=i++,t[n++]=i,t[n++]=r,o=2*s,a=0;a<o-1;++a)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;t[n++]=i++,t[n++]=i++,t[n++]=r++}for(s=0;s<3;s++)t[n++]=i++,t[n++]=i,t[n++]=r;return t}var lA=new m;function uje(e){let t=e.center;lA=m.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,lA),e.height,lA),lA=m.add(t,lA,lA);let n=new ae(lA,e.semiMajorAxis),i=Kl.computeEllipsePositions(e,!0,!1),o=i.positions,r=i.numPts,s=nce(o,e,!1),a=ice(r);return a=Ve.createTypedArray(o.length/3,a),{boundingSphere:n,attributes:s,indices:a}}function fje(e,t){let n=t.vertexFormat,i=t.center,o=t.semiMajorAxis,r=t.semiMinorAxis,s=t.ellipsoid,a=t.height,c=t.extrudedHeight,u=t.stRotation,f=e.length/3*2,d=new Float64Array(f*3),p=n.st?new Float32Array(f*2):void 0,g=n.normal?new Float32Array(f*3):void 0,h=n.tangent?new Float32Array(f*3):void 0,A=n.bitangent?new Float32Array(f*3):void 0,x=t.shadowVolume,C=x?new Float32Array(f*3):void 0,T=0,E=Jae,S=Zae,v=Qae,D=new Di(s),O=D.project(s.cartesianToCartographic(i,i2),$ae),M=s.scaleToGeodeticSurface(i,ZT);s.geodeticSurfaceNormal(M,M);let L=Ne.fromAxisAngle(M,u,J9),N=Z.fromQuaternion(L,Kae),_=H.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,ece),b=H.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,tce),w=e.length,I=w/3*2;for(let F=0;F<w;F+=3){let k=F+1,V=F+2,G=m.fromArray(e,F,ZT),U;if(n.st){let Y=Z.multiplyByVector(N,G,X9),Q=D.project(s.cartesianToCartographic(Y,i2),K9);m.subtract(Q,O,Q),os.x=(Q.x+o)/(2*o),os.y=(Q.y+r)/(2*r),_.x=Math.min(os.x,_.x),_.y=Math.min(os.y,_.y),b.x=Math.max(os.x,b.x),b.y=Math.max(os.y,b.y),p[T+I]=os.x,p[T+1+I]=os.y,p[T++]=os.x,p[T++]=os.y}G=s.scaleToGeodeticSurface(G,G),U=m.clone(G,X9),E=s.geodeticSurfaceNormal(G,E),x&&(C[F+w]=-E.x,C[k+w]=-E.y,C[V+w]=-E.z);let q=m.multiplyByScalar(E,a,Xae);if(G=m.add(G,q,G),q=m.multiplyByScalar(E,c,q),U=m.add(U,q,U),n.position&&(d[F+w]=U.x,d[k+w]=U.y,d[V+w]=U.z,d[F]=G.x,d[k]=G.y,d[V]=G.z),n.normal||n.tangent||n.bitangent){v=m.clone(E,v);let Y=m.fromArray(e,(F+3)%w,Xae);m.subtract(Y,G,Y);let Q=m.subtract(U,G,K9);E=m.normalize(m.cross(Q,Y,E),E),n.normal&&(g[F]=E.x,g[k]=E.y,g[V]=E.z,g[F+w]=E.x,g[k+w]=E.y,g[V+w]=E.z),n.tangent&&(S=m.normalize(m.cross(v,E,S),S),h[F]=S.x,h[k]=S.y,h[V]=S.z,h[F+w]=S.x,h[F+1+w]=S.y,h[F+2+w]=S.z),n.bitangent&&(A[F]=v.x,A[k]=v.y,A[V]=v.z,A[F+w]=v.x,A[k+w]=v.y,A[V+w]=v.z)}}if(n.st){w=p.length;for(let F=0;F<w;F+=2)p[F]=(p[F]-_.x)/(b.x-_.x),p[F+1]=(p[F+1]-_.y)/(b.y-_.y)}let R=new _n;if(n.position&&(R.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})),n.st&&(R.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:p})),n.normal&&(R.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),n.tangent&&(R.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:h})),n.bitangent&&(R.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),x&&(R.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),l(t.offsetAttribute)){let F=new Uint8Array(f);if(t.offsetAttribute===rn.TOP)F=F.fill(1,0,f/2);else{let k=t.offsetAttribute===rn.NONE?0:1;F=F.fill(k)}R.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:F})}return R}function dje(e){let t=e.length/3,n=Ve.createTypedArray(t,t*6),i=0;for(let o=0;o<t;o++){let r=o,s=o+t,a=(r+1)%t,c=a+t;n[i++]=r,n[i++]=s,n[i++]=a,n[i++]=a,n[i++]=s,n[i++]=c}return n}var t2=new ae,n2=new ae;function mje(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=m.multiplyByScalar(n.geodeticSurfaceNormal(t,ZT),e.height,ZT);t2.center=m.add(t,o,t2.center),t2.radius=i,o=m.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),n2.center=m.add(t,o,n2.center),n2.radius=i;let r=Kl.computeEllipsePositions(e,!0,!0),s=r.positions,a=r.numPts,c=r.outerPositions,u=ae.union(t2,n2),f=nce(s,e,!0),d=ice(a),p=d.length;d.length=p*2;let g=s.length/3;for(let S=0;S<p;S+=3)d[S+p]=d[S+2]+g,d[S+1+p]=d[S+1]+g,d[S+2+p]=d[S]+g;let h=Ve.createTypedArray(g*2/3,d),A=new dt({attributes:f,indices:h,primitiveType:Le.TRIANGLES}),x=fje(c,e);d=dje(c);let C=Ve.createTypedArray(c.length*2/3,d),T=new dt({attributes:x,indices:C,primitiveType:Le.TRIANGLES}),E=Un.combineInstances([new Tt({geometry:A}),new Tt({geometry:T})]);return{boundingSphere:u,attributes:E[0].attributes,indices:E[0].indices}}function oce(e,t,n,i,o,r,s){let c=Kl.computeEllipsePositions({center:e,semiMajorAxis:t,semiMinorAxis:n,rotation:i,granularity:o},!1,!0).outerPositions,u=c.length/3,f=new Array(u);for(let p=0;p<u;++p)f[p]=m.fromArray(c,p*3);let d=le.fromCartesianArray(f,r,s);return d.width>P.PI&&(d.north=d.north>0?P.PI_OVER_TWO-P.EPSILON7:d.north,d.south=d.south<0?P.EPSILON7-P.PI_OVER_TWO:d.south,d.east=P.PI,d.west=-P.PI),d}function Vm(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,oe.WGS84),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.vertexFormat,Pe.DEFAULT),a=y(e.height,0),c=y(e.extrudedHeight,a);this._center=m.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=oe.clone(n),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._height=Math.max(c,a),this._granularity=r,this._vertexFormat=Pe.clone(s),this._extrudedHeight=Math.min(c,a),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}Vm.packedLength=m.packedLength+oe.packedLength+Pe.packedLength+9;Vm.pack=function(e,t,n){return n=y(n,0),m.pack(e._center,t,n),n+=m.packedLength,oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var rce=new m,sce=new oe,ace=new Pe,Um={center:rce,ellipsoid:sce,vertexFormat:ace,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Vm.unpack=function(e,t,n){t=y(t,0);let i=m.unpack(e,t,rce);t+=m.packedLength;let o=oe.unpack(e,t,sce);t+=oe.packedLength;let r=Pe.unpack(e,t,ace);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t++],g=e[t++]===1,h=e[t];return l(n)?(n._center=m.clone(i,n._center),n._ellipsoid=oe.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._semiMajorAxis=s,n._semiMinorAxis=a,n._rotation=c,n._stRotation=u,n._height=f,n._granularity=d,n._extrudedHeight=p,n._shadowVolume=g,n._offsetAttribute=h===-1?void 0:h,n):(Um.height=f,Um.extrudedHeight=p,Um.granularity=d,Um.stRotation=u,Um.rotation=c,Um.semiMajorAxis=s,Um.semiMinorAxis=a,Um.shadowVolume=g,Um.offsetAttribute=h===-1?void 0:h,new Vm(Um))};Vm.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.center,i=y(e.ellipsoid,oe.WGS84),o=e.semiMajorAxis,r=e.semiMinorAxis,s=y(e.granularity,P.RADIANS_PER_DEGREE),a=y(e.rotation,0);return oce(n,o,r,a,s,i,t)};Vm.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,vertexFormat:e._vertexFormat,stRotation:e._stRotation},r;if(i)o.extrudedHeight=n,o.shadowVolume=e._shadowVolume,o.offsetAttribute=e._offsetAttribute,r=mje(o);else if(r=uje(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===rn.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new dt({attributes:r.attributes,indices:r.indices,primitiveType:Le.TRIANGLES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};Vm.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Vm({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:o,rotation:e._rotation,stRotation:e._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};function hje(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let i=Kl.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0).outerPositions,o=i.length/3,r=new Array(o);for(let c=0;c<o;++c)r[c]=m.fromArray(i,c*3);let s=e._ellipsoid,a=e.rectangle;return dt._textureCoordinateRotationPoints(r,t,s,a)}Object.defineProperties(Vm.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=oce(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=hje(this)),this._textureCoordinateRotationPoints}}});var sl=Vm;var cce=new m,uA=new m;function pje(e){let t=e.center;uA=m.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,uA),e.height,uA),uA=m.add(t,uA,uA);let n=new ae(uA,e.semiMajorAxis),i=Kl.computeEllipsePositions(e,!1,!0).outerPositions,o=new _n({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:Kl.raisePositionsToHeight(i,e,!1)})}),r=i.length/3,s=Ve.createTypedArray(r,r*2),a=0;for(let c=0;c<r;++c)s[a++]=c,s[a++]=(c+1)%r;return{boundingSphere:n,attributes:o,indices:s}}var o2=new ae,r2=new ae;function _je(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=m.multiplyByScalar(n.geodeticSurfaceNormal(t,cce),e.height,cce);o2.center=m.add(t,o,o2.center),o2.radius=i,o=m.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),r2.center=m.add(t,o,r2.center),r2.radius=i;let r=Kl.computeEllipsePositions(e,!1,!0).outerPositions,s=new _n({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:Kl.raisePositionsToHeight(r,e,!0)})});r=s.position.values;let a=ae.union(o2,r2),c=r.length/3;if(l(e.offsetAttribute)){let h=new Uint8Array(c);if(e.offsetAttribute===rn.TOP)h=h.fill(1,0,c/2);else{let A=e.offsetAttribute===rn.NONE?0:1;h=h.fill(A)}s.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:h})}let u=y(e.numberOfVerticalLines,16);u=P.clamp(u,0,c/2);let f=Ve.createTypedArray(c,c*2+u*2);c/=2;let d=0,p;for(p=0;p<c;++p)f[d++]=p,f[d++]=(p+1)%c,f[d++]=p+c,f[d++]=(p+1)%c+c;let g;if(u>0){let h=Math.min(u,c);g=Math.round(c/h);let A=Math.min(g*u,c);for(p=0;p<A;p+=g)f[d++]=p,f[d++]=p+c}return{boundingSphere:a,attributes:s,indices:f}}function QT(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,oe.WGS84),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.height,0),a=y(e.extrudedHeight,s);this._center=m.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=oe.clone(n),this._rotation=y(e.rotation,0),this._height=Math.max(a,s),this._granularity=r,this._extrudedHeight=Math.min(a,s),this._numberOfVerticalLines=Math.max(y(e.numberOfVerticalLines,16),0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}QT.packedLength=m.packedLength+oe.packedLength+8;QT.pack=function(e,t,n){return n=y(n,0),m.pack(e._center,t,n),n+=m.packedLength,oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._numberOfVerticalLines,t[n]=y(e._offsetAttribute,-1),t};var lce=new m,uce=new oe,Ip={center:lce,ellipsoid:uce,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};QT.unpack=function(e,t,n){t=y(t,0);let i=m.unpack(e,t,lce);t+=m.packedLength;let o=oe.unpack(e,t,uce);t+=oe.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._center=m.clone(i,n._center),n._ellipsoid=oe.clone(o,n._ellipsoid),n._semiMajorAxis=r,n._semiMinorAxis=s,n._rotation=a,n._height=c,n._granularity=u,n._extrudedHeight=f,n._numberOfVerticalLines=d,n._offsetAttribute=p===-1?void 0:p,n):(Ip.height=c,Ip.extrudedHeight=f,Ip.granularity=u,Ip.rotation=a,Ip.semiMajorAxis=r,Ip.semiMinorAxis=s,Ip.numberOfVerticalLines=d,Ip.offsetAttribute=p===-1?void 0:p,new QT(Ip))};QT.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,numberOfVerticalLines:e._numberOfVerticalLines},r;if(i)o.extrudedHeight=n,o.offsetAttribute=e._offsetAttribute,r=_je(o);else if(r=pje(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===rn.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new dt({attributes:r.attributes,indices:r.indices,primitiveType:Le.LINES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};var nf=QT;var fce=new z,dce=m.ZERO,mce=new m,hce=new le;function gje(e){this.id=e,this.vertexFormat=void 0,this.center=void 0,this.semiMajorAxis=void 0,this.semiMinorAxis=void 0,this.rotation=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function dd(e,t){Kn.call(this,{entity:e,scene:t,geometryOptions:new gje(e),geometryPropertyName:"ellipse",observedPropertyNames:["availability","position","ellipse"]}),this._onEntityPropertyChanged(e,"ellipse",e.ellipse,void 0)}l(Object.create)&&(dd.prototype=Object.create(Kn.prototype),dd.prototype.constructor=dd);dd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Ut){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,fce)),l(o)||(o=z.WHITE),i.color=Vt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,dce,mce))),new Tt({id:t,geometry:new sl(this._options),attributes:i})};dd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,fce),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Vt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,dce,mce))),new Tt({id:t,geometry:new nf(this._options),attributes:r})};dd.prototype._computeCenter=function(e,t){return j.getValueOrUndefined(this._entity.position,e,t)};dd.prototype._isHidden=function(e,t){let n=e.position;return!l(n)||!l(t.semiMajorAxis)||!l(t.semiMinorAxis)||ci.prototype._isHidden.call(this,e,t)};dd.prototype._isDynamic=function(e,t){return!e.position.isConstant||!t.semiMajorAxis.isConstant||!t.semiMinorAxis.isConstant||!j.isConstant(t.rotation)||!j.isConstant(t.height)||!j.isConstant(t.extrudedHeight)||!j.isConstant(t.granularity)||!j.isConstant(t.stRotation)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.numberOfVerticalLines)||!j.isConstant(t.zIndex)||this._onTerrain&&!j.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};dd.prototype._setStaticOptions=function(e,t){let n=j.getValueOrUndefined(t.height,Ge.MINIMUM_VALUE),i=j.getValueOrDefault(t.heightReference,Ge.MINIMUM_VALUE,qe.NONE),o=j.getValueOrUndefined(t.extrudedHeight,Ge.MINIMUM_VALUE),r=j.getValueOrDefault(t.extrudedHeightReference,Ge.MINIMUM_VALUE,qe.NONE);l(o)&&!l(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Ut?sn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,s.center=e.position.getValue(Ge.MINIMUM_VALUE,s.center),s.semiMajorAxis=t.semiMajorAxis.getValue(Ge.MINIMUM_VALUE,s.semiMajorAxis),s.semiMinorAxis=t.semiMinorAxis.getValue(Ge.MINIMUM_VALUE,s.semiMinorAxis),s.rotation=j.getValueOrUndefined(t.rotation,Ge.MINIMUM_VALUE),s.granularity=j.getValueOrUndefined(t.granularity,Ge.MINIMUM_VALUE),s.stRotation=j.getValueOrUndefined(t.stRotation,Ge.MINIMUM_VALUE),s.numberOfVerticalLines=j.getValueOrUndefined(t.numberOfVerticalLines,Ge.MINIMUM_VALUE),s.offsetAttribute=Kn.computeGeometryOffsetAttribute(n,i,o,r),s.height=Kn.getGeometryHeight(n,i),o=Kn.getGeometryExtrudedHeight(o,r),o===Kn.CLAMP_TO_GROUND&&(o=si.getMinimumMaximumHeights(sl.computeRectangle(s,hce)).minimumTerrainHeight),s.extrudedHeight=o};dd.DynamicGeometryUpdater=$T;function $T(e,t,n){ai.call(this,e,t,n)}l(Object.create)&&($T.prototype=Object.create(ai.prototype),$T.prototype.constructor=$T);$T.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.center)||!l(i.semiMajorAxis)||!l(i.semiMinorAxis)||ai.prototype._isHidden.call(this,e,t,n)};$T.prototype._setOptions=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(t.height,n),r=j.getValueOrDefault(t.heightReference,n,qe.NONE),s=j.getValueOrUndefined(t.extrudedHeight,n),a=j.getValueOrDefault(t.extrudedHeightReference,n,qe.NONE);l(s)&&!l(o)&&(o=0),i.center=j.getValueOrUndefined(e.position,n,i.center),i.semiMajorAxis=j.getValueOrUndefined(t.semiMajorAxis,n),i.semiMinorAxis=j.getValueOrUndefined(t.semiMinorAxis,n),i.rotation=j.getValueOrUndefined(t.rotation,n),i.granularity=j.getValueOrUndefined(t.granularity,n),i.stRotation=j.getValueOrUndefined(t.stRotation,n),i.numberOfVerticalLines=j.getValueOrUndefined(t.numberOfVerticalLines,n),i.offsetAttribute=Kn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Kn.getGeometryHeight(o,r),s=Kn.getGeometryExtrudedHeight(s,a),s===Kn.CLAMP_TO_GROUND&&(s=si.getMinimumMaximumHeights(sl.computeRectangle(i,hce)).minimumTerrainHeight),i.extrudedHeight=s};var s2=dd;var yje=new m,Aje=new m,xje=new m,Cje=new m,Tje=new m,Eje=new m(1,1,1),pce=Math.cos,_ce=Math.sin;function Pp(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,Eje),n=y(e.innerRadii,t),i=y(e.minimumClock,0),o=y(e.maximumClock,P.TWO_PI),r=y(e.minimumCone,0),s=y(e.maximumCone,P.PI),a=Math.round(y(e.stackPartitions,64)),c=Math.round(y(e.slicePartitions,64)),u=y(e.vertexFormat,Pe.DEFAULT);this._radii=m.clone(t),this._innerRadii=m.clone(n),this._minimumClock=i,this._maximumClock=o,this._minimumCone=r,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._vertexFormat=Pe.clone(u),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}Pp.packedLength=2*m.packedLength+Pe.packedLength+7;Pp.pack=function(e,t,n){return n=y(n,0),m.pack(e._radii,t,n),n+=m.packedLength,m.pack(e._innerRadii,t,n),n+=m.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n]=y(e._offsetAttribute,-1),t};var gce=new m,yce=new m,Ace=new Pe,Mg={radii:gce,innerRadii:yce,vertexFormat:Ace,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};Pp.unpack=function(e,t,n){t=y(t,0);let i=m.unpack(e,t,gce);t+=m.packedLength;let o=m.unpack(e,t,yce);t+=m.packedLength;let r=Pe.unpack(e,t,Ace);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._radii=m.clone(i,n._radii),n._innerRadii=m.clone(o,n._innerRadii),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._minimumClock=s,n._maximumClock=a,n._minimumCone=c,n._maximumCone=u,n._stackPartitions=f,n._slicePartitions=d,n._offsetAttribute=p===-1?void 0:p,n):(Mg.minimumClock=s,Mg.maximumClock=a,Mg.minimumCone=c,Mg.maximumCone=u,Mg.stackPartitions=f,Mg.slicePartitions=d,Mg.offsetAttribute=p===-1?void 0:p,new Pp(Mg))};Pp.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,o=e._maximumClock,r=e._minimumCone,s=e._maximumCone,a=e._vertexFormat,c=e._slicePartitions+1,u=e._stackPartitions+1;c=Math.round(c*Math.abs(o-i)/P.TWO_PI),u=Math.round(u*Math.abs(s-r)/P.PI),c<2&&(c=2),u<2&&(u=2);let f,d,p=0,g=[r],h=[i];for(f=0;f<u;f++)g.push(r+f*(s-r)/(u-1));for(g.push(s),d=0;d<c;d++)h.push(i+d*(o-i)/(c-1));h.push(o);let A=g.length,x=h.length,C=0,T=1,E=n.x!==t.x||n.y!==t.y||n.z!==t.z,S=!1,v=!1,D=!1;E&&(T=2,r>0&&(S=!0,C+=c-1),s<Math.PI&&(v=!0,C+=c-1),(o-i)%P.TWO_PI?(D=!0,C+=(u-1)*2+1):C+=1);let O=x*A*T,M=new Float64Array(O*3),L=new Array(O).fill(!1),N=new Array(O).fill(!1),_=c*u*T,b=6*(_+C+1-(c+u)*T),w=Ve.createTypedArray(_,b),I=a.normal?new Float32Array(O*3):void 0,R=a.tangent?new Float32Array(O*3):void 0,F=a.bitangent?new Float32Array(O*3):void 0,k=a.st?new Float32Array(O*2):void 0,V=new Array(A),G=new Array(A);for(f=0;f<A;f++)V[f]=_ce(g[f]),G[f]=pce(g[f]);let U=new Array(x),q=new Array(x);for(d=0;d<x;d++)q[d]=pce(h[d]),U[d]=_ce(h[d]);for(f=0;f<A;f++)for(d=0;d<x;d++)M[p++]=t.x*V[f]*q[d],M[p++]=t.y*V[f]*U[d],M[p++]=t.z*G[f];let Y=O/2;if(E)for(f=0;f<A;f++)for(d=0;d<x;d++)M[p++]=n.x*V[f]*q[d],M[p++]=n.y*V[f]*U[d],M[p++]=n.z*G[f],L[Y]=!0,f>0&&f!==A-1&&d!==0&&d!==x-1&&(N[Y]=!0),Y++;p=0;let Q,W;for(f=1;f<A-2;f++)for(Q=f*x,W=(f+1)*x,d=1;d<x-2;d++)w[p++]=W+d,w[p++]=W+d+1,w[p++]=Q+d+1,w[p++]=W+d,w[p++]=Q+d+1,w[p++]=Q+d;if(E){let ke=A*x;for(f=1;f<A-2;f++)for(Q=ke+f*x,W=ke+(f+1)*x,d=1;d<x-2;d++)w[p++]=W+d,w[p++]=Q+d,w[p++]=Q+d+1,w[p++]=W+d,w[p++]=Q+d+1,w[p++]=W+d+1}let K,J;if(E){if(S)for(J=A*x,f=1;f<x-2;f++)w[p++]=f,w[p++]=f+1,w[p++]=J+f+1,w[p++]=f,w[p++]=J+f+1,w[p++]=J+f;if(v)for(K=A*x-x,J=A*x*T-x,f=1;f<x-2;f++)w[p++]=K+f+1,w[p++]=K+f,w[p++]=J+f,w[p++]=K+f+1,w[p++]=J+f,w[p++]=J+f+1}if(D){for(f=1;f<A-2;f++)J=x*A+x*f,K=x*f,w[p++]=J,w[p++]=K+x,w[p++]=K,w[p++]=J,w[p++]=J+x,w[p++]=K+x;for(f=1;f<A-2;f++)J=x*A+x*(f+1)-1,K=x*(f+1)-1,w[p++]=K+x,w[p++]=J,w[p++]=K,w[p++]=K+x,w[p++]=J+x,w[p++]=J}let _e=new _n;a.position&&(_e.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:M}));let xe=0,se=0,Ae=0,me=0,Se=O/2,Ie,Ue=oe.fromCartesian3(t),Re=oe.fromCartesian3(n);if(a.st||a.normal||a.tangent||a.bitangent){for(f=0;f<O;f++){Ie=L[f]?Re:Ue;let ke=m.fromArray(M,f*3,yje),ft=Ie.geodeticSurfaceNormal(ke,Aje);if(N[f]&&m.negate(ft,ft),a.st){let pt=H.negate(ft,Tje);k[xe++]=Math.atan2(pt.y,pt.x)/P.TWO_PI+.5,k[xe++]=Math.asin(ft.z)/Math.PI+.5}if(a.normal&&(I[se++]=ft.x,I[se++]=ft.y,I[se++]=ft.z),a.tangent||a.bitangent){let pt=xje,rt=0,un;if(L[f]&&(rt=Se),!S&&f>=rt&&f<rt+x*2?un=m.UNIT_X:un=m.UNIT_Z,m.cross(un,ft,pt),m.normalize(pt,pt),a.tangent&&(R[Ae++]=pt.x,R[Ae++]=pt.y,R[Ae++]=pt.z),a.bitangent){let Mn=m.cross(ft,pt,Cje);m.normalize(Mn,Mn),F[me++]=Mn.x,F[me++]=Mn.y,F[me++]=Mn.z}}}a.st&&(_e.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:k})),a.normal&&(_e.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:I})),a.tangent&&(_e.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:R})),a.bitangent&&(_e.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:F}))}if(l(e._offsetAttribute)){let ke=M.length,ft=e._offsetAttribute===rn.NONE?0:1,pt=new Uint8Array(ke/3).fill(ft);_e.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:pt})}return new dt({attributes:_e,indices:w,primitiveType:Le.TRIANGLES,boundingSphere:ae.fromEllipsoid(Ue),offsetAttribute:e._offsetAttribute})};var Z9;Pp.getUnitEllipsoid=function(){return l(Z9)||(Z9=Pp.createGeometry(new Pp({radii:new m(1,1,1),vertexFormat:Pe.POSITION_ONLY}))),Z9};var js=Pp;var bje=new Ut(z.WHITE),Q9=m.ZERO,$9=new m,Sje=new m,wje=new m,eW=new z,vje=new m(1,1,1);function Dje(e){this.id=e,this.vertexFormat=void 0,this.radii=void 0,this.innerRadii=void 0,this.minimumClock=void 0,this.maximumClock=void 0,this.minimumCone=void 0,this.maximumCone=void 0,this.stackPartitions=void 0,this.slicePartitions=void 0,this.subdivisions=void 0,this.offsetAttribute=void 0}function Jl(e,t){ci.call(this,{entity:e,scene:t,geometryOptions:new Dje(e),geometryPropertyName:"ellipsoid",observedPropertyNames:["availability","position","orientation","ellipsoid"]}),this._onEntityPropertyChanged(e,"ellipsoid",e.ellipsoid,void 0)}l(Object.create)&&(Jl.prototype=Object.create(ci.prototype),Jl.prototype.constructor=Jl);Object.defineProperties(Jl.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Jl.prototype.createFillGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r,s=new An(o&&i.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),a=this._distanceDisplayConditionProperty.getValue(e),c=kn.fromDistanceDisplayCondition(a),u={show:s,distanceDisplayCondition:c,color:void 0,offset:void 0};if(this._materialProperty instanceof Ut){let f;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||o)&&(f=this._materialProperty.color.getValue(e,eW)),l(f)||(f=z.WHITE),r=Vt.fromColor(f),u.color=r}return l(this._options.offsetAttribute)&&(u.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,Q9,$9))),new Tt({id:i,geometry:new js(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.mapProjection.ellipsoid,n),attributes:u})};Jl.prototype.createOutlineGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,eW),s=this._distanceDisplayConditionProperty.getValue(e),a={show:new An(o&&i.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Vt.fromColor(r),distanceDisplayCondition:kn.fromDistanceDisplayCondition(s),offset:void 0};return l(this._options.offsetAttribute)&&(a.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,Q9,$9))),new Tt({id:i,geometry:new qu(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.mapProjection.ellipsoid,n),attributes:a})};Jl.prototype._computeCenter=function(e,t){return j.getValueOrUndefined(this._entity.position,e,t)};Jl.prototype._isHidden=function(e,t){return!l(e.position)||!l(t.radii)||ci.prototype._isHidden.call(this,e,t)};Jl.prototype._isDynamic=function(e,t){return!e.position.isConstant||!j.isConstant(e.orientation)||!t.radii.isConstant||!j.isConstant(t.innerRadii)||!j.isConstant(t.stackPartitions)||!j.isConstant(t.slicePartitions)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.minimumClock)||!j.isConstant(t.maximumClock)||!j.isConstant(t.minimumCone)||!j.isConstant(t.maximumCone)||!j.isConstant(t.subdivisions)};Jl.prototype._setStaticOptions=function(e,t){let n=j.getValueOrDefault(t.heightReference,Ge.MINIMUM_VALUE,qe.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Ut?sn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,i.radii=t.radii.getValue(Ge.MINIMUM_VALUE,i.radii),i.innerRadii=j.getValueOrUndefined(t.innerRadii,i.radii),i.minimumClock=j.getValueOrUndefined(t.minimumClock,Ge.MINIMUM_VALUE),i.maximumClock=j.getValueOrUndefined(t.maximumClock,Ge.MINIMUM_VALUE),i.minimumCone=j.getValueOrUndefined(t.minimumCone,Ge.MINIMUM_VALUE),i.maximumCone=j.getValueOrUndefined(t.maximumCone,Ge.MINIMUM_VALUE),i.stackPartitions=j.getValueOrUndefined(t.stackPartitions,Ge.MINIMUM_VALUE),i.slicePartitions=j.getValueOrUndefined(t.slicePartitions,Ge.MINIMUM_VALUE),i.subdivisions=j.getValueOrUndefined(t.subdivisions,Ge.MINIMUM_VALUE),i.offsetAttribute=n!==qe.NONE?rn.ALL:void 0};Jl.prototype._onEntityPropertyChanged=w_;Jl.DynamicGeometryUpdater=Sv;function Sv(e,t,n){ai.call(this,e,t,n),this._scene=e._scene,this._modelMatrix=new B,this._attributes=void 0,this._outlineAttributes=void 0,this._lastSceneMode=void 0,this._lastShow=void 0,this._lastOutlineShow=void 0,this._lastOutlineWidth=void 0,this._lastOutlineColor=void 0,this._lastOffset=new m,this._material={}}l(Object.create)&&(Sv.prototype=Object.create(ai.prototype),Sv.prototype.constructor=Sv);Sv.prototype.update=function(e){let t=this._entity,n=t.ellipsoid;if(!t.isShowing||!t.isAvailable(e)||!j.getValueOrDefault(n.show,e,!0)){l(this._primitive)&&(this._primitive.show=!1),l(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let i=j.getValueOrUndefined(n.radii,e,Sje),o=l(i)?t.computeModelMatrixForHeightReference(e,n.heightReference,i.z*.5,this._scene.mapProjection.ellipsoid,this._modelMatrix):void 0;if(!l(o)||!l(i)){l(this._primitive)&&(this._primitive.show=!1),l(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let r=j.getValueOrDefault(n.fill,e,!0),s=j.getValueOrDefault(n.outline,e,!1),a=j.getValueOrClonedDefault(n.outlineColor,e,z.BLACK,eW),c=$o.getValue(e,y(n.material,bje),this._material),u=j.getValueOrUndefined(n.innerRadii,e,wje),f=j.getValueOrUndefined(n.minimumClock,e),d=j.getValueOrUndefined(n.maximumClock,e),p=j.getValueOrUndefined(n.minimumCone,e),g=j.getValueOrUndefined(n.maximumCone,e),h=j.getValueOrUndefined(n.stackPartitions,e),A=j.getValueOrUndefined(n.slicePartitions,e),x=j.getValueOrUndefined(n.subdivisions,e),C=j.getValueOrDefault(n.outlineWidth,e,1),T=j.getValueOrDefault(n.heightReference,e,qe.NONE),E=T!==qe.NONE?rn.ALL:void 0,S=this._scene.mode,v=S===ne.SCENE3D&&T===qe.NONE,D=this._options,O=this._geometryUpdater.shadowsProperty.getValue(e),L=this._geometryUpdater.distanceDisplayConditionProperty.getValue(e),N=j.getValueOrDefault(this._geometryUpdater.terrainOffsetProperty,e,Q9,$9);if(!v||this._lastSceneMode!==S||!l(this._primitive)||D.stackPartitions!==h||D.slicePartitions!==A||l(u)&&!m.equals(D.innerRadii!==u)||D.minimumClock!==f||D.maximumClock!==d||D.minimumCone!==p||D.maximumCone!==g||D.subdivisions!==x||this._lastOutlineWidth!==C||D.offsetAttribute!==E){let b=this._primitives;if(b.removeAndDestroy(this._primitive),b.removeAndDestroy(this._outlinePrimitive),this._primitive=void 0,this._outlinePrimitive=void 0,this._lastSceneMode=S,this._lastOutlineWidth=C,D.stackPartitions=h,D.slicePartitions=A,D.subdivisions=x,D.offsetAttribute=E,D.radii=m.clone(v?vje:i,D.radii),l(u))if(v){let F=m.magnitude(i);D.innerRadii=m.fromElements(u.x/F,u.y/F,u.z/F,D.innerRadii)}else D.innerRadii=m.clone(u,D.innerRadii);else D.innerRadii=void 0;D.minimumClock=f,D.maximumClock=d,D.minimumCone=p,D.maximumCone=g;let w=new ro({material:c,translucent:c.isTranslucent(),closed:!0});D.vertexFormat=w.vertexFormat;let I=this._geometryUpdater.createFillGeometryInstance(e,v,this._modelMatrix);this._primitive=b.add(new wn({geometryInstances:I,appearance:w,asynchronous:!1,shadows:O}));let R=this._geometryUpdater.createOutlineGeometryInstance(e,v,this._modelMatrix);this._outlinePrimitive=b.add(new wn({geometryInstances:R,appearance:new sn({flat:!0,translucent:R.attributes.color.value[3]!==255,renderState:{lineWidth:this._geometryUpdater._scene.clampLineWidth(C)}}),asynchronous:!1,shadows:O})),this._lastShow=r,this._lastOutlineShow=s,this._lastOutlineColor=z.clone(a,this._lastOutlineColor),this._lastDistanceDisplayCondition=L,this._lastOffset=m.clone(N,this._lastOffset)}else if(this._primitive.ready){let b=this._primitive,w=this._outlinePrimitive;b.show=!0,w.show=!0,b.appearance.material=c;let I=this._attributes;l(I)||(I=b.getGeometryInstanceAttributes(t),this._attributes=I),r!==this._lastShow&&(I.show=An.toValue(r,I.show),this._lastShow=r);let R=this._outlineAttributes;l(R)||(R=w.getGeometryInstanceAttributes(t),this._outlineAttributes=R),s!==this._lastOutlineShow&&(R.show=An.toValue(s,R.show),this._lastOutlineShow=s),z.equals(a,this._lastOutlineColor)||(R.color=Vt.toValue(a,R.color),z.clone(a,this._lastOutlineColor)),Dt.equals(L,this._lastDistanceDisplayCondition)||(I.distanceDisplayCondition=kn.toValue(L,I.distanceDisplayCondition),R.distanceDisplayCondition=kn.toValue(L,R.distanceDisplayCondition),Dt.clone(L,this._lastDistanceDisplayCondition)),m.equals(N,this._lastOffset)||(I.offset=Ki.toValue(N,I.offset),R.offset=Ki.toValue(N,I.offset),m.clone(N,this._lastOffset))}v&&(i.x=Math.max(i.x,.001),i.y=Math.max(i.y,.001),i.z=Math.max(i.z,.001),o=B.multiplyByScale(o,i,o),this._primitive.modelMatrix=o,this._outlinePrimitive.modelMatrix=o)};var a2=Jl;function eE(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.vertexFormat,Pe.DEFAULT);this._vertexFormat=t,this._workerName="createPlaneGeometry"}eE.packedLength=Pe.packedLength;eE.pack=function(e,t,n){return n=y(n,0),Pe.pack(e._vertexFormat,t,n),t};var xce=new Pe,Ije={vertexFormat:xce};eE.unpack=function(e,t,n){t=y(t,0);let i=Pe.unpack(e,t,xce);return l(n)?(n._vertexFormat=Pe.clone(i,n._vertexFormat),n):new eE(Ije)};var c2=new m(-.5,-.5,0),l2=new m(.5,.5,0);eE.createGeometry=function(e){let t=e._vertexFormat,n=new _n,i,o;if(t.position){if(o=new Float64Array(4*3),o[0]=c2.x,o[1]=c2.y,o[2]=0,o[3]=l2.x,o[4]=c2.y,o[5]=0,o[6]=l2.x,o[7]=l2.y,o[8]=0,o[9]=c2.x,o[10]=l2.y,o[11]=0,n.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:o}),t.normal){let r=new Float32Array(12);r[0]=0,r[1]=0,r[2]=1,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=1,r[9]=0,r[10]=0,r[11]=1,n.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}if(t.st){let r=new Float32Array(8);r[0]=0,r[1]=0,r[2]=1,r[3]=0,r[4]=1,r[5]=1,r[6]=0,r[7]=1,n.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:r})}if(t.tangent){let r=new Float32Array(12);r[0]=1,r[1]=0,r[2]=0,r[3]=1,r[4]=0,r[5]=0,r[6]=1,r[7]=0,r[8]=0,r[9]=1,r[10]=0,r[11]=0,n.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}if(t.bitangent){let r=new Float32Array(12);r[0]=0,r[1]=1,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=0,r[7]=1,r[8]=0,r[9]=0,r[10]=1,r[11]=0,n.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}i=new Uint16Array(2*3),i[0]=0,i[1]=1,i[2]=2,i[3]=0,i[4]=2,i[5]=3}return new dt({attributes:n,indices:i,primitiveType:Le.TRIANGLES,boundingSphere:new ae(m.ZERO,Math.sqrt(2))})};var u2=eE;function tE(){this._workerName="createPlaneOutlineGeometry"}tE.packedLength=0;tE.pack=function(e,t){return t};tE.unpack=function(e,t,n){return l(n)?n:new tE};var Rg=new m(-.5,-.5,0),f2=new m(.5,.5,0);tE.createGeometry=function(){let e=new _n,t=new Uint16Array(4*2),n=new Float64Array(4*3);return n[0]=Rg.x,n[1]=Rg.y,n[2]=Rg.z,n[3]=f2.x,n[4]=Rg.y,n[5]=Rg.z,n[6]=f2.x,n[7]=f2.y,n[8]=Rg.z,n[9]=Rg.x,n[10]=f2.y,n[11]=Rg.z,e.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n}),t[0]=0,t[1]=1,t[2]=1,t[3]=2,t[4]=2,t[5]=3,t[6]=3,t[7]=0,new dt({attributes:e,indices:t,primitiveType:Le.LINES,boundingSphere:new ae(m.ZERO,Math.sqrt(2))})};var d2=tE;var Pje=new m,Cce=new z;function Oje(e){this.id=e,this.vertexFormat=void 0,this.plane=void 0,this.dimensions=void 0}function of(e,t){ci.call(this,{entity:e,scene:t,geometryOptions:new Oje(e),geometryPropertyName:"plane",observedPropertyNames:["availability","position","orientation","plane"]}),this._onEntityPropertyChanged(e,"plane",e.plane,void 0)}l(Object.create)&&(of.prototype=Object.create(ci.prototype),of.prototype.constructor=of);of.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Ut){let g;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(g=this._materialProperty.color.getValue(e,Cce)),l(g)||(g=z.WHITE),o=Vt.fromColor(g),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};let c=t.plane,u=this._options,f=t.computeModelMatrix(e),d=j.getValueOrDefault(c.plane,e,u.plane),p=j.getValueOrUndefined(c.dimensions,e,u.dimensions);return u.plane=d,u.dimensions=p,f=tW(d,p,f,f),new Tt({id:t,geometry:new u2(this._options),modelMatrix:f,attributes:i})};of.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Cce),o=this._distanceDisplayConditionProperty.getValue(e),r=t.plane,s=this._options,a=t.computeModelMatrix(e),c=j.getValueOrDefault(r.plane,e,s.plane),u=j.getValueOrUndefined(r.dimensions,e,s.dimensions);return s.plane=c,s.dimensions=u,a=tW(c,u,a,a),new Tt({id:t,geometry:new d2,modelMatrix:a,attributes:{show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Vt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};of.prototype._isHidden=function(e,t){return!l(t.plane)||!l(t.dimensions)||!l(e.position)||ci.prototype._isHidden.call(this,e,t)};of.prototype._getIsClosed=function(e){return!1};of.prototype._isDynamic=function(e,t){return!e.position.isConstant||!j.isConstant(e.orientation)||!t.plane.isConstant||!t.dimensions.isConstant||!j.isConstant(t.outlineWidth)};of.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Ut,i=this._options;i.vertexFormat=n?sn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,i.plane=t.plane.getValue(Ge.MINIMUM_VALUE,i.plane),i.dimensions=t.dimensions.getValue(Ge.MINIMUM_VALUE,i.dimensions)};of.DynamicGeometryUpdater=nE;function nE(e,t,n){ai.call(this,e,t,n)}l(Object.create)&&(nE.prototype=Object.create(ai.prototype),nE.prototype.constructor=nE);nE.prototype._isHidden=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(e.position,n,Pje);return!l(o)||!l(i.plane)||!l(i.dimensions)||ai.prototype._isHidden.call(this,e,t,n)};nE.prototype._setOptions=function(e,t,n){let i=this._options;i.plane=j.getValueOrDefault(t.plane,n,i.plane),i.dimensions=j.getValueOrUndefined(t.dimensions,n,i.dimensions)};var Mje=new m,Rje=new m,Bje=new m,Lje=new m,Nje=new Z,Fje=new Z,Uje=new B;function tW(e,t,n,i){let o=e.normal,r=e.distance,s=m.multiplyByScalar(o,-r,Bje),a=m.clone(m.UNIT_Z,Rje);P.equalsEpsilon(Math.abs(m.dot(a,o)),1,P.EPSILON8)&&(a=m.clone(m.UNIT_Y,a));let c=m.cross(a,o,Mje);a=m.cross(o,c,a),m.normalize(c,c),m.normalize(a,a);let u=Nje;Z.setColumn(u,0,c,u),Z.setColumn(u,1,a,u),Z.setColumn(u,2,o,u);let f=m.fromElements(t.x,t.y,1,Lje),d=Z.multiplyByScale(u,f,Fje),p=B.fromRotationTranslation(d,s,Uje);return B.multiplyTransformation(n,p,i)}of.createPrimitiveMatrix=tW;var m2=of;var Vje=new m,kje=new Ke,zje=new H,Hje=new H,Gje=new m,Wje=new m,jje=new m,wv=new m,Yje=new m,qje=new m,Tce=new Ne,Xje=new Z,Kje=new Z,Jje=new m;function Zje(e,t,n,i,o,r,s,a,c){let u=e.positions,f=li.triangulate(e.positions2D,e.holes);f.length<3&&(f=[0,1,2]);let d=Ve.createTypedArray(u.length,f.length);d.set(f);let p=Xje;if(i!==0){let _=Ne.fromAxisAngle(s,i,Tce);if(p=Z.fromQuaternion(_,p),t.tangent||t.bitangent){_=Ne.fromAxisAngle(s,-i,Tce);let b=Z.fromQuaternion(_,Kje);a=m.normalize(Z.multiplyByVector(b,a,a),a),t.bitangent&&(c=m.normalize(m.cross(s,a,c),c))}}else p=Z.clone(Z.IDENTITY,p);let g=Hje;t.st&&(g.x=n.x,g.y=n.y);let h=u.length,A=h*3,x=new Float64Array(A),C=t.normal?new Float32Array(A):void 0,T=t.tangent?new Float32Array(A):void 0,E=t.bitangent?new Float32Array(A):void 0,S=t.st?new Float32Array(h*2):void 0,v=0,D=0,O=0,M=0,L=0;for(let _=0;_<h;_++){let b=u[_];if(x[v++]=b.x,x[v++]=b.y,x[v++]=b.z,t.st)if(l(o)&&o.positions.length===h)S[L++]=o.positions[_].x,S[L++]=o.positions[_].y;else{let w=Z.multiplyByVector(p,b,Vje),I=r(w,zje);H.subtract(I,g,I);let R=P.clamp(I.x/n.width,0,1),F=P.clamp(I.y/n.height,0,1);S[L++]=R,S[L++]=F}t.normal&&(C[D++]=s.x,C[D++]=s.y,C[D++]=s.z),t.tangent&&(T[M++]=a.x,T[M++]=a.y,T[M++]=a.z),t.bitangent&&(E[O++]=c.x,E[O++]=c.y,E[O++]=c.z)}let N=new _n;return t.position&&(N.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:x})),t.normal&&(N.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.tangent&&(N.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),t.bitangent&&(N.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:E})),t.st&&(N.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:S})),new dt({attributes:N,indices:d,primitiveType:Le.TRIANGLES})}function fA(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy,n=e.textureCoordinates,i=y(e.vertexFormat,Pe.DEFAULT);this._vertexFormat=Pe.clone(i),this._polygonHierarchy=t,this._stRotation=y(e.stRotation,0),this._ellipsoid=oe.clone(y(e.ellipsoid,oe.WGS84)),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=n,this.packedLength=Xn.computeHierarchyPackedLength(t,m)+Pe.packedLength+oe.packedLength+(l(n)?Xn.computeHierarchyPackedLength(n,H):1)+2}fA.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,textureCoordinates:e.textureCoordinates};return new fA(t)};fA.pack=function(e,t,n){return n=y(n,0),n=Xn.packPolygonHierarchy(e._polygonHierarchy,t,n,m),oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._stRotation,l(e._textureCoordinates)?n=Xn.packPolygonHierarchy(e._textureCoordinates,t,n,H):t[n++]=-1,t[n++]=e.packedLength,t};var Qje=oe.clone(oe.UNIT_SPHERE),$je=new Pe,eYe={polygonHierarchy:{}};fA.unpack=function(e,t,n){t=y(t,0);let i=Xn.unpackPolygonHierarchy(e,t,m);t=i.startingIndex,delete i.startingIndex;let o=oe.unpack(e,t,Qje);t+=oe.packedLength;let r=Pe.unpack(e,t,$je);t+=Pe.packedLength;let s=e[t++],a=e[t]===-1?void 0:Xn.unpackPolygonHierarchy(e,t,H);l(a)?(t=a.startingIndex,delete a.startingIndex):t++;let c=e[t++];return l(n)||(n=new fA(eYe)),n._polygonHierarchy=i,n._ellipsoid=oe.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._stRotation=s,n._textureCoordinates=a,n.packedLength=c,n};fA.createGeometry=function(e){let t=e._vertexFormat,n=e._polygonHierarchy,i=e._stRotation,o=e._textureCoordinates,r=l(o),s=n.positions;if(s=xo(s,m.equalsEpsilon,!0),s.length<3)return;let a=Gje,c=Wje,u=jje,f=Yje,d=qje;if(!lg.computeProjectTo2DArguments(s,wv,f,d))return;if(a=m.cross(f,d,a),a=m.normalize(a,a),!m.equalsEpsilon(wv,m.ZERO,P.EPSILON6)){let L=e._ellipsoid.geodeticSurfaceNormal(wv,Jje);m.dot(a,L)<0&&(a=m.negate(a,a),f=m.negate(f,f))}let g=lg.createProjectPointsTo2DFunction(wv,f,d),h=lg.createProjectPointTo2DFunction(wv,f,d);t.tangent&&(c=m.clone(f,c)),t.bitangent&&(u=m.clone(d,u));let A=Xn.polygonsFromHierarchy(n,r,g,!1),x=A.hierarchy,C=A.polygons,T=function(L){return L},E=r?Xn.polygonsFromHierarchy(o,!0,T,!1).polygons:void 0;if(x.length===0)return;s=x[0].outerRing;let S=ae.fromPoints(s),v=Xn.computeBoundingRectangle(a,h,s,i,kje),D=[];for(let L=0;L<C.length;L++){let N=new Tt({geometry:Zje(C[L],t,v,i,r?E[L]:void 0,h,a,c,u)});D.push(N)}let O=Un.combineInstances(D)[0];O.attributes.position.values=new Float64Array(O.attributes.position.values),O.indices=Ve.createTypedArray(O.attributes.position.values.length/3,O.indices);let M=O.attributes;return t.position||delete M.position,new dt({attributes:M,indices:O.indices,primitiveType:O.primitiveType,boundingSphere:S})};var h2=fA;var tYe=new he,Ece=new he;function nYe(e,t,n,i){let r=i.cartesianToCartographic(e,tYe).height,s=i.cartesianToCartographic(t,Ece);s.height=r,i.cartographicToCartesian(s,t);let a=i.cartesianToCartographic(n,Ece);a.height=r-100,i.cartographicToCartesian(a,n)}var iYe=new Ke,oYe=new m,rYe=new m,sYe=new m,aYe=new m,cYe=new m,lYe=new m,p2=new m,km=new m,iE=new m,uYe=new H,fYe=new H,dYe=new m,bce=new Ne,mYe=new Z,hYe=new Z;function nW(e){let t=e.vertexFormat,n=e.geometry,i=e.shadowVolume,o=n.attributes.position.values,r=l(n.attributes.st)?n.attributes.st.values:void 0,s=o.length,a=e.wall,c=e.top||a,u=e.bottom||a;if(t.st||t.normal||t.tangent||t.bitangent||i){let f=e.boundingRectangle,d=e.tangentPlane,p=e.ellipsoid,g=e.stRotation,h=e.perPositionHeight,A=uYe;A.x=f.x,A.y=f.y;let x=t.st?new Float32Array(2*(s/3)):void 0,C;t.normal&&(h&&c&&!a?C=n.attributes.normal.values:C=new Float32Array(s));let T=t.tangent?new Float32Array(s):void 0,E=t.bitangent?new Float32Array(s):void 0,S=i?new Float32Array(s):void 0,v=0,D=0,O=rYe,M=sYe,L=aYe,N=!0,_=mYe,b=hYe;if(g!==0){let R=Ne.fromAxisAngle(d._plane.normal,g,bce);_=Z.fromQuaternion(R,_),R=Ne.fromAxisAngle(d._plane.normal,-g,bce),b=Z.fromQuaternion(R,b)}else _=Z.clone(Z.IDENTITY,_),b=Z.clone(Z.IDENTITY,b);let w=0,I=0;c&&u&&(w=s/2,I=s/3,s/=2);for(let R=0;R<s;R+=3){let F=m.fromArray(o,R,dYe);if(t.st&&!l(r)){let k=Z.multiplyByVector(_,F,oYe);k=p.scaleToGeodeticSurface(k,k);let V=d.projectPointOntoPlane(k,fYe);H.subtract(V,A,V);let G=P.clamp(V.x/f.width,0,1),U=P.clamp(V.y/f.height,0,1);u&&(x[v+I]=G,x[v+1+I]=U),c&&(x[v]=G,x[v+1]=U),v+=2}if(t.normal||t.tangent||t.bitangent||i){let k=D+1,V=D+2;if(a){if(R+3<s){let G=m.fromArray(o,R+3,cYe);if(N){let U=m.fromArray(o,R+s,lYe);h&&nYe(F,G,U,p),m.subtract(G,F,G),m.subtract(U,F,U),O=m.normalize(m.cross(U,G,O),O),N=!1}m.equalsEpsilon(G,F,P.EPSILON10)&&(N=!0)}(t.tangent||t.bitangent)&&(L=p.geodeticSurfaceNormal(F,L),t.tangent&&(M=m.normalize(m.cross(L,O,M),M)))}else O=p.geodeticSurfaceNormal(F,O),(t.tangent||t.bitangent)&&(h&&(p2=m.fromArray(C,D,p2),km=m.cross(m.UNIT_Z,p2,km),km=m.normalize(Z.multiplyByVector(b,km,km),km),t.bitangent&&(iE=m.normalize(m.cross(p2,km,iE),iE))),M=m.cross(m.UNIT_Z,O,M),M=m.normalize(Z.multiplyByVector(b,M,M),M),t.bitangent&&(L=m.normalize(m.cross(O,M,L),L)));t.normal&&(e.wall?(C[D+w]=O.x,C[k+w]=O.y,C[V+w]=O.z):u&&(C[D+w]=-O.x,C[k+w]=-O.y,C[V+w]=-O.z),(c&&!h||a)&&(C[D]=O.x,C[k]=O.y,C[V]=O.z)),i&&(a&&(O=p.geodeticSurfaceNormal(F,O)),S[D+w]=-O.x,S[k+w]=-O.y,S[V+w]=-O.z),t.tangent&&(e.wall?(T[D+w]=M.x,T[k+w]=M.y,T[V+w]=M.z):u&&(T[D+w]=-M.x,T[k+w]=-M.y,T[V+w]=-M.z),c&&(h?(T[D]=km.x,T[k]=km.y,T[V]=km.z):(T[D]=M.x,T[k]=M.y,T[V]=M.z))),t.bitangent&&(u&&(E[D+w]=L.x,E[k+w]=L.y,E[V+w]=L.z),c&&(h?(E[D]=iE.x,E[k]=iE.y,E[V]=iE.z):(E[D]=L.x,E[k]=L.y,E[V]=L.z))),D+=3}}t.st&&!l(r)&&(n.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:x})),t.normal&&(n.attributes.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.tangent&&(n.attributes.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),t.bitangent&&(n.attributes.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:E})),i&&(n.attributes.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:S}))}if(e.extrude&&l(e.offsetAttribute)){let f=o.length/3,d=new Uint8Array(f);if(e.offsetAttribute===rn.TOP)c&&u||a?d=d.fill(1,0,f/2):c&&(d=d.fill(1));else{let p=e.offsetAttribute===rn.NONE?0:1;d=d.fill(p)}n.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return n}var pYe=new he,_Ye=new he,Bg={westOverIDL:0,eastOverIDL:0},oE=new kf;function vce(e,t,n,i,o){if(o=y(o,new le),!l(e)||e.length<3)return o.west=0,o.north=0,o.south=0,o.east=0,o;if(n===Zt.RHUMB)return le.fromCartesianArray(e,t,o);oE.ellipsoid.equals(t)||(oE=new kf(void 0,void 0,t)),o.west=Number.POSITIVE_INFINITY,o.east=Number.NEGATIVE_INFINITY,o.south=Number.POSITIVE_INFINITY,o.north=Number.NEGATIVE_INFINITY,Bg.westOverIDL=Number.POSITIVE_INFINITY,Bg.eastOverIDL=Number.NEGATIVE_INFINITY;let r=1/P.chordLength(i,t.maximumRadius),s=e.length,a=t.cartesianToCartographic(e[0],_Ye),c=pYe,u;for(let f=1;f<s;f++)u=c,c=a,a=t.cartesianToCartographic(e[f],u),oE.setEndPoints(c,a),Sce(oE,r,o,Bg);return u=c,c=a,a=t.cartesianToCartographic(e[0],u),oE.setEndPoints(c,a),Sce(oE,r,o,Bg),o.east-o.west>Bg.eastOverIDL-Bg.westOverIDL&&(o.west=Bg.westOverIDL,o.east=Bg.eastOverIDL,o.east>P.PI&&(o.east=o.east-P.TWO_PI),o.west>P.PI&&(o.west=o.west-P.TWO_PI)),o}var gYe=new he;function Sce(e,t,n,i){let o=e.surfaceDistance,r=Math.ceil(o*t),s=r>0?o/(r-1):Number.POSITIVE_INFINITY,a=0;for(let c=0;c<r;c++){let u=e.interpolateUsingSurfaceDistance(a,gYe);a+=s;let f=u.longitude,d=u.latitude;n.west=Math.min(n.west,f),n.east=Math.max(n.east,f),n.south=Math.min(n.south,d),n.north=Math.max(n.north,d);let p=f>=0?f:f+P.TWO_PI;i.westOverIDL=Math.min(i.westOverIDL,p),i.eastOverIDL=Math.max(i.eastOverIDL,p)}}var wce=[];function yYe(e,t,n,i,o,r,s,a,c,u){let f={walls:[]},d;if(s||a){let T=Xn.createGeometryFromPositions(e,t,n,i,r,c,u),E=T.attributes.position.values,S=T.indices,v,D;if(s&&a){let O=E.concat(E);v=O.length/3,D=Ve.createTypedArray(v,S.length*2),D.set(S);let M=S.length,L=v/2;for(d=0;d<M;d+=3){let N=D[d]+L,_=D[d+1]+L,b=D[d+2]+L;D[d+M]=b,D[d+1+M]=_,D[d+2+M]=N}if(T.attributes.position.values=O,r&&c.normal){let N=T.attributes.normal.values;T.attributes.normal.values=new Float32Array(O.length),T.attributes.normal.values.set(N)}if(c.st&&l(n)){let N=T.attributes.st.values;T.attributes.st.values=new Float32Array(v*2),T.attributes.st.values=N.concat(N)}T.indices=D}else if(a){for(v=E.length/3,D=Ve.createTypedArray(v,S.length),d=0;d<S.length;d+=3)D[d]=S[d+2],D[d+1]=S[d+1],D[d+2]=S[d];T.indices=D}f.topAndBottom=new Tt({geometry:T})}let p=o.outerRing,g=Ia.fromPoints(p,e),h=g.projectPointsOntoPlane(p,wce),A=li.computeWindingOrder2D(h);A===$r.CLOCKWISE&&(p=p.slice().reverse());let x=Xn.computeWallGeometry(p,n,e,i,r,u);f.walls.push(new Tt({geometry:x}));let C=o.holes;for(d=0;d<C.length;d++){let T=C[d];g=Ia.fromPoints(T,e),h=g.projectPointsOntoPlane(T,wce),A=li.computeWindingOrder2D(h),A===$r.COUNTER_CLOCKWISE&&(T=T.slice().reverse()),x=Xn.computeWallGeometry(T,n,e,i,r,u),f.walls.push(new Tt({geometry:x}))}return f}function md(e){let t=e.polygonHierarchy,n=y(e.vertexFormat,Pe.DEFAULT),i=y(e.ellipsoid,oe.WGS84),o=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.stRotation,0),s=e.textureCoordinates,a=y(e.perPositionHeight,!1),c=a&&l(e.extrudedHeight),u=y(e.height,0),f=y(e.extrudedHeight,u);if(!c){let d=Math.max(u,f);f=Math.min(u,f),u=d}this._vertexFormat=Pe.clone(n),this._ellipsoid=oe.clone(i),this._granularity=o,this._stRotation=r,this._height=u,this._extrudedHeight=f,this._closeTop=y(e.closeTop,!0),this._closeBottom=y(e.closeBottom,!0),this._polygonHierarchy=t,this._perPositionHeight=a,this._perPositionHeightExtrude=c,this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createPolygonGeometry",this._offsetAttribute=e.offsetAttribute,this._arcType=y(e.arcType,Zt.GEODESIC),this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this._textureCoordinates=s,this.packedLength=Xn.computeHierarchyPackedLength(t,m)+oe.packedLength+Pe.packedLength+(s?Xn.computeHierarchyPackedLength(s,H):1)+12}md.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,closeTop:e.closeTop,closeBottom:e.closeBottom,offsetAttribute:e.offsetAttribute,arcType:e.arcType,textureCoordinates:e.textureCoordinates};return new md(t)};md.pack=function(e,t,n){return n=y(n,0),n=Xn.packPolygonHierarchy(e._polygonHierarchy,t,n,m),oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._stRotation,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._closeTop?1:0,t[n++]=e._closeBottom?1:0,t[n++]=e._shadowVolume?1:0,t[n++]=y(e._offsetAttribute,-1),t[n++]=e._arcType,l(e._textureCoordinates)?n=Xn.packPolygonHierarchy(e._textureCoordinates,t,n,H):t[n++]=-1,t[n++]=e.packedLength,t};var AYe=oe.clone(oe.UNIT_SPHERE),xYe=new Pe,CYe={polygonHierarchy:{}};md.unpack=function(e,t,n){t=y(t,0);let i=Xn.unpackPolygonHierarchy(e,t,m);t=i.startingIndex,delete i.startingIndex;let o=oe.unpack(e,t,AYe);t+=oe.packedLength;let r=Pe.unpack(e,t,xYe);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++]===1,d=e[t++]===1,p=e[t++]===1,g=e[t++]===1,h=e[t++]===1,A=e[t++],x=e[t++],C=e[t]===-1?void 0:Xn.unpackPolygonHierarchy(e,t,H);l(C)?(t=C.startingIndex,delete C.startingIndex):t++;let T=e[t++];return l(n)||(n=new md(CYe)),n._polygonHierarchy=i,n._ellipsoid=oe.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._height=s,n._extrudedHeight=a,n._granularity=c,n._stRotation=u,n._perPositionHeightExtrude=f,n._perPositionHeight=d,n._closeTop=p,n._closeBottom=g,n._shadowVolume=h,n._offsetAttribute=A===-1?void 0:A,n._arcType=x,n._textureCoordinates=C,n.packedLength=T,n};md.computeRectangle=function(e,t){let n=y(e.granularity,P.RADIANS_PER_DEGREE),i=y(e.arcType,Zt.GEODESIC),o=e.polygonHierarchy,r=y(e.ellipsoid,oe.WGS84);return vce(o.positions,r,i,n,t)};md.createGeometry=function(e){let t=e._vertexFormat,n=e._ellipsoid,i=e._granularity,o=e._stRotation,r=e._polygonHierarchy,s=e._perPositionHeight,a=e._closeTop,c=e._closeBottom,u=e._arcType,f=e._textureCoordinates,d=l(f),p=r.positions;if(p.length<3)return;let g=Ia.fromPoints(p,n),h=Xn.polygonsFromHierarchy(r,d,g.projectPointsOntoPlane.bind(g),!s,n),A=h.hierarchy,x=h.polygons,C=function(w){return w},T=d?Xn.polygonsFromHierarchy(f,!0,C,!1).polygons:void 0;if(A.length===0)return;p=A[0].outerRing;let E=Xn.computeBoundingRectangle(g.plane.normal,g.projectPointOntoPlane.bind(g),p,o,iYe),S=[],v=e._height,D=e._extrudedHeight,O=e._perPositionHeightExtrude||!P.equalsEpsilon(v,D,0,P.EPSILON2),M={perPositionHeight:s,vertexFormat:t,geometry:void 0,tangentPlane:g,boundingRectangle:E,ellipsoid:n,stRotation:o,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:u},L;if(O)for(M.extrude=!0,M.top=a,M.bottom=c,M.shadowVolume=e._shadowVolume,M.offsetAttribute=e._offsetAttribute,L=0;L<x.length;L++){let w=yYe(n,x[L],d?T[L]:void 0,i,A[L],s,a,c,t,u),I;a&&c?(I=w.topAndBottom,M.geometry=Xn.scaleToGeodeticHeightExtruded(I.geometry,v,D,n,s)):a?(I=w.topAndBottom,I.geometry.attributes.position.values=li.scaleToGeodeticHeight(I.geometry.attributes.position.values,v,n,!s),M.geometry=I.geometry):c&&(I=w.topAndBottom,I.geometry.attributes.position.values=li.scaleToGeodeticHeight(I.geometry.attributes.position.values,D,n,!0),M.geometry=I.geometry),(a||c)&&(M.wall=!1,I.geometry=nW(M),S.push(I));let R=w.walls;M.wall=!0;for(let F=0;F<R.length;F++){let k=R[F];M.geometry=Xn.scaleToGeodeticHeightExtruded(k.geometry,v,D,n,s),k.geometry=nW(M),S.push(k)}}else for(L=0;L<x.length;L++){let w=new Tt({geometry:Xn.createGeometryFromPositions(n,x[L],d?T[L]:void 0,i,s,t,u)});if(w.geometry.attributes.position.values=li.scaleToGeodeticHeight(w.geometry.attributes.position.values,v,n,!s),M.geometry=w.geometry,w.geometry=nW(M),l(e._offsetAttribute)){let I=w.geometry.attributes.position.values.length,R=e._offsetAttribute===rn.NONE?0:1,F=new Uint8Array(I/3).fill(R);w.geometry.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:F})}S.push(w)}let N=Un.combineInstances(S)[0];N.attributes.position.values=new Float64Array(N.attributes.position.values),N.indices=Ve.createTypedArray(N.attributes.position.values.length/3,N.indices);let _=N.attributes,b=ae.fromVertices(_.position.values);return t.position||delete _.position,new dt({attributes:_,indices:N.indices,primitiveType:N.primitiveType,boundingSphere:b,offsetAttribute:e._offsetAttribute})};md.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new md({polygonHierarchy:e._polygonHierarchy,ellipsoid:o,stRotation:e._stRotation,granularity:i,perPositionHeight:!1,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0,arcType:e._arcType})};function TYe(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let n=e._ellipsoid,i=e._polygonHierarchy.positions,o=e.rectangle;return dt._textureCoordinateRotationPoints(i,t,n,o)}Object.defineProperties(md.prototype,{rectangle:{get:function(){if(!l(this._rectangle)){let e=this._polygonHierarchy.positions;this._rectangle=vce(e,this._ellipsoid,this._arcType,this._granularity)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=TYe(this)),this._textureCoordinateRotationPoints}}});var rE=md;var Dce=[],_2=[];function EYe(e,t,n,i,o){let s=Ia.fromPoints(t,e).projectPointsOntoPlane(t,Dce);li.computeWindingOrder2D(s)===$r.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,u,f=t.length,d=0;if(i)for(c=new Float64Array(f*2*3),u=0;u<f;u++){let h=t[u],A=t[(u+1)%f];c[d++]=h.x,c[d++]=h.y,c[d++]=h.z,c[d++]=A.x,c[d++]=A.y,c[d++]=A.z}else{let h=0;if(o===Zt.GEODESIC)for(u=0;u<f;u++)h+=Xn.subdivideLineCount(t[u],t[(u+1)%f],n);else if(o===Zt.RHUMB)for(u=0;u<f;u++)h+=Xn.subdivideRhumbLineCount(e,t[u],t[(u+1)%f],n);for(c=new Float64Array(h*3),u=0;u<f;u++){let A;o===Zt.GEODESIC?A=Xn.subdivideLine(t[u],t[(u+1)%f],n,_2):o===Zt.RHUMB&&(A=Xn.subdivideRhumbLine(e,t[u],t[(u+1)%f],n,_2));let x=A.length;for(let C=0;C<x;++C)c[d++]=A[C]}}f=c.length/3;let p=f*2,g=Ve.createTypedArray(f,p);for(d=0,u=0;u<f-1;u++)g[d++]=u,g[d++]=u+1;return g[d++]=f-1,g[d++]=0,new Tt({geometry:new dt({attributes:new _n({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:g,primitiveType:Le.LINES})})}function bYe(e,t,n,i,o){let s=Ia.fromPoints(t,e).projectPointsOntoPlane(t,Dce);li.computeWindingOrder2D(s)===$r.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,u,f=t.length,d=new Array(f),p=0;if(i)for(c=new Float64Array(f*2*3*2),u=0;u<f;++u){d[u]=p/3;let x=t[u],C=t[(u+1)%f];c[p++]=x.x,c[p++]=x.y,c[p++]=x.z,c[p++]=C.x,c[p++]=C.y,c[p++]=C.z}else{let x=0;if(o===Zt.GEODESIC)for(u=0;u<f;u++)x+=Xn.subdivideLineCount(t[u],t[(u+1)%f],n);else if(o===Zt.RHUMB)for(u=0;u<f;u++)x+=Xn.subdivideRhumbLineCount(e,t[u],t[(u+1)%f],n);for(c=new Float64Array(x*3*2),u=0;u<f;++u){d[u]=p/3;let C;o===Zt.GEODESIC?C=Xn.subdivideLine(t[u],t[(u+1)%f],n,_2):o===Zt.RHUMB&&(C=Xn.subdivideRhumbLine(e,t[u],t[(u+1)%f],n,_2));let T=C.length;for(let E=0;E<T;++E)c[p++]=C[E]}}f=c.length/(3*2);let g=d.length,h=(f*2+g)*2,A=Ve.createTypedArray(f+g,h);for(p=0,u=0;u<f;++u)A[p++]=u,A[p++]=(u+1)%f,A[p++]=u+f,A[p++]=(u+1)%f+f;for(u=0;u<g;u++){let x=d[u];A[p++]=x,A[p++]=x+f}return new Tt({geometry:new dt({attributes:new _n({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:A,primitiveType:Le.LINES})})}function dA(e){let t=e.polygonHierarchy,n=y(e.ellipsoid,oe.WGS84),i=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.perPositionHeight,!1),r=o&&l(e.extrudedHeight),s=y(e.arcType,Zt.GEODESIC),a=y(e.height,0),c=y(e.extrudedHeight,a);if(!r){let u=Math.max(a,c);c=Math.min(a,c),a=u}this._ellipsoid=oe.clone(n),this._granularity=i,this._height=a,this._extrudedHeight=c,this._arcType=s,this._polygonHierarchy=t,this._perPositionHeight=o,this._perPositionHeightExtrude=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=Xn.computeHierarchyPackedLength(t,m)+oe.packedLength+8}dA.pack=function(e,t,n){return n=y(n,0),n=Xn.packPolygonHierarchy(e._polygonHierarchy,t,n,m),oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._arcType,t[n++]=y(e._offsetAttribute,-1),t[n]=e.packedLength,t};var SYe=oe.clone(oe.UNIT_SPHERE),wYe={polygonHierarchy:{}};dA.unpack=function(e,t,n){t=y(t,0);let i=Xn.unpackPolygonHierarchy(e,t,m);t=i.startingIndex,delete i.startingIndex;let o=oe.unpack(e,t,SYe);t+=oe.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++]===1,u=e[t++]===1,f=e[t++],d=e[t++],p=e[t];return l(n)||(n=new dA(wYe)),n._polygonHierarchy=i,n._ellipsoid=oe.clone(o,n._ellipsoid),n._height=r,n._extrudedHeight=s,n._granularity=a,n._perPositionHeight=u,n._perPositionHeightExtrude=c,n._arcType=f,n._offsetAttribute=d===-1?void 0:d,n.packedLength=p,n};dA.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute};return new dA(t)};dA.createGeometry=function(e){let t=e._ellipsoid,n=e._granularity,i=e._polygonHierarchy,o=e._perPositionHeight,r=e._arcType,s=Xn.polygonOutlinesFromHierarchy(i,!o,t);if(s.length===0)return;let a,c=[],u=P.chordLength(n,t.maximumRadius),f=e._height,d=e._extrudedHeight,p=e._perPositionHeightExtrude||!P.equalsEpsilon(f,d,0,P.EPSILON2),g,h;if(p)for(h=0;h<s.length;h++){if(a=bYe(t,s[h],u,o,r),a.geometry=Xn.scaleToGeodeticHeightExtruded(a.geometry,f,d,t,o),l(e._offsetAttribute)){let C=a.geometry.attributes.position.values.length/3,T=new Uint8Array(C);e._offsetAttribute===rn.TOP?T=T.fill(1,0,C/2):(g=e._offsetAttribute===rn.NONE?0:1,T=T.fill(g)),a.geometry.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:T})}c.push(a)}else for(h=0;h<s.length;h++){if(a=EYe(t,s[h],u,o,r),a.geometry.attributes.position.values=li.scaleToGeodeticHeight(a.geometry.attributes.position.values,f,t,!o),l(e._offsetAttribute)){let C=a.geometry.attributes.position.values.length;g=e._offsetAttribute===rn.NONE?0:1;let T=new Uint8Array(C/3).fill(g);a.geometry.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:T})}c.push(a)}let A=Un.combineInstances(c)[0],x=ae.fromVertices(A.attributes.position.values);return new dt({attributes:A.attributes,indices:A.indices,primitiveType:A.primitiveType,boundingSphere:x,offsetAttribute:e._offsetAttribute})};var g2=dA;var Ice="Entity polygons cannot have both height and perPositionHeight. height will be ignored",Pce="heightReference is not supported for entity polygons with perPositionHeight. heightReference will be ignored",Oce=new z,Mce=m.ZERO,Rce=new m,Bce=new le,vYe=[],DYe=new H;function IYe(e){this.id=e,this.vertexFormat=void 0,this.polygonHierarchy=void 0,this.perPositionHeight=void 0,this.closeTop=void 0,this.closeBottom=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.offsetAttribute=void 0,this.arcType=void 0,this.textureCoordinates=void 0}function Zl(e,t){Kn.call(this,{entity:e,scene:t,geometryOptions:new IYe(e),geometryPropertyName:"polygon",observedPropertyNames:["availability","polygon"]}),this._onEntityPropertyChanged(e,"polygon",e.polygon,void 0)}l(Object.create)&&(Zl.prototype=Object.create(Kn.prototype),Zl.prototype.constructor=Zl);Zl.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o={show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Ut){let s;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(s=this._materialProperty.color.getValue(e,Oce)),l(s)||(s=z.WHITE),o.color=Vt.fromColor(s)}l(i.offsetAttribute)&&(o.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,Mce,Rce)));let r;return i.perPositionHeight&&!l(i.extrudedHeight)?r=new h2(i):r=new rE(i),new Tt({id:t,geometry:r,attributes:o})};Zl.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Oce),r=this._distanceDisplayConditionProperty.getValue(e),s={show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Vt.fromColor(o),distanceDisplayCondition:kn.fromDistanceDisplayCondition(r),offset:void 0};l(i.offsetAttribute)&&(s.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,Mce,Rce)));let a;return i.perPositionHeight&&!l(i.extrudedHeight)?a=new od(i):a=new g2(i),new Tt({id:t,geometry:a,attributes:s})};Zl.prototype._computeCenter=function(e,t){let n=j.getValueOrUndefined(this._entity.polygon.hierarchy,e);if(!l(n))return;let i=n.positions;if(i.length===0)return;let o=this._scene.mapProjection.ellipsoid,r=Ia.fromPoints(i,o),s=r.projectPointsOntoPlane(i,vYe),a=s.length,c=0,u=a-1,f=new H;for(let p=0;p<a;u=p++){let g=s[p],h=s[u],A=g.x*h.y-h.x*g.y,x=H.add(g,h,DYe);x=H.multiplyByScalar(x,A,x),f=H.add(f,x,f),c+=A}let d=1/(c*3);return f=H.multiplyByScalar(f,d,f),r.projectPointOntoEllipsoid(f,t)};Zl.prototype._isHidden=function(e,t){return!l(t.hierarchy)||ci.prototype._isHidden.call(this,e,t)};Zl.prototype._isOnTerrain=function(e,t){let n=Kn.prototype._isOnTerrain.call(this,e,t),i=t.perPositionHeight,o=l(i)&&(i.isConstant?i.getValue(Ge.MINIMUM_VALUE):!0);return n&&!o};Zl.prototype._isDynamic=function(e,t){return!t.hierarchy.isConstant||!j.isConstant(t.height)||!j.isConstant(t.extrudedHeight)||!j.isConstant(t.granularity)||!j.isConstant(t.stRotation)||!j.isConstant(t.textureCoordinates)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.perPositionHeight)||!j.isConstant(t.closeTop)||!j.isConstant(t.closeBottom)||!j.isConstant(t.zIndex)||!j.isConstant(t.arcType)||this._onTerrain&&!j.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};Zl.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Ut,i=this._options;i.vertexFormat=n?sn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat;let o=t.hierarchy.getValue(Ge.MINIMUM_VALUE),r=j.getValueOrUndefined(t.height,Ge.MINIMUM_VALUE),s=j.getValueOrDefault(t.heightReference,Ge.MINIMUM_VALUE,qe.NONE),a=j.getValueOrUndefined(t.extrudedHeight,Ge.MINIMUM_VALUE),c=j.getValueOrDefault(t.extrudedHeightReference,Ge.MINIMUM_VALUE,qe.NONE),u=j.getValueOrDefault(t.perPositionHeight,Ge.MINIMUM_VALUE,!1);r=Kn.getGeometryHeight(r,s);let f;u?(l(r)&&(r=void 0,Mt(Ice)),s!==qe.NONE&&u&&(r=void 0,Mt(Pce))):(l(a)&&!l(r)&&(r=0),f=Kn.computeGeometryOffsetAttribute(r,s,a,c)),i.polygonHierarchy=o,i.granularity=j.getValueOrUndefined(t.granularity,Ge.MINIMUM_VALUE),i.stRotation=j.getValueOrUndefined(t.stRotation,Ge.MINIMUM_VALUE),i.perPositionHeight=u,i.closeTop=j.getValueOrDefault(t.closeTop,Ge.MINIMUM_VALUE,!0),i.closeBottom=j.getValueOrDefault(t.closeBottom,Ge.MINIMUM_VALUE,!0),i.offsetAttribute=f,i.height=r,i.arcType=j.getValueOrDefault(t.arcType,Ge.MINIMUM_VALUE,Zt.GEODESIC),i.textureCoordinates=j.getValueOrUndefined(t.textureCoordinates,Ge.MINIMUM_VALUE),a=Kn.getGeometryExtrudedHeight(a,c),a===Kn.CLAMP_TO_GROUND&&(a=si.getMinimumMaximumHeights(rE.computeRectangle(i,Bce)).minimumTerrainHeight),i.extrudedHeight=a};Zl.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight,i=l(n)&&n!==t;return!e.perPositionHeight&&(!i&&t===0||i&&e.closeTop&&e.closeBottom)};Zl.DynamicGeometryUpdater=sE;function sE(e,t,n){ai.call(this,e,t,n)}l(Object.create)&&(sE.prototype=Object.create(ai.prototype),sE.prototype.constructor=sE);sE.prototype._isHidden=function(e,t,n){return!l(this._options.polygonHierarchy)||ai.prototype._isHidden.call(this,e,t,n)};sE.prototype._setOptions=function(e,t,n){let i=this._options;i.polygonHierarchy=j.getValueOrUndefined(t.hierarchy,n);let o=j.getValueOrUndefined(t.height,n),r=j.getValueOrDefault(t.heightReference,n,qe.NONE),s=j.getValueOrDefault(t.extrudedHeightReference,n,qe.NONE),a=j.getValueOrUndefined(t.extrudedHeight,n),c=j.getValueOrUndefined(t.perPositionHeight,n);o=Kn.getGeometryHeight(o,s);let u;c?(l(o)&&(o=void 0,Mt(Ice)),r!==qe.NONE&&c&&(o=void 0,Mt(Pce))):(l(a)&&!l(o)&&(o=0),u=Kn.computeGeometryOffsetAttribute(o,r,a,s)),i.granularity=j.getValueOrUndefined(t.granularity,n),i.stRotation=j.getValueOrUndefined(t.stRotation,n),i.textureCoordinates=j.getValueOrUndefined(t.textureCoordinates,n),i.perPositionHeight=j.getValueOrUndefined(t.perPositionHeight,n),i.closeTop=j.getValueOrDefault(t.closeTop,n,!0),i.closeBottom=j.getValueOrDefault(t.closeBottom,n,!0),i.offsetAttribute=u,i.height=o,i.arcType=j.getValueOrDefault(t.arcType,n,Zt.GEODESIC),a=Kn.getGeometryExtrudedHeight(a,s),a===Kn.CLAMP_TO_GROUND&&(a=si.getMinimumMaximumHeights(rE.computeRectangle(i,Bce)).minimumTerrainHeight),i.extrudedHeight=a};var y2=Zl;function PYe(e,t,n,i){let o=new _n;i.position&&(o.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e}));let r=t.length,s=e.length/3,a=(s-r*2)/(r*2),c=li.triangulate(t),u=(a-1)*r*6+c.length*2,f=Ve.createTypedArray(s,u),d,p,g,h,A,x,C=r*2,T=0;for(d=0;d<a-1;d++){for(p=0;p<r-1;p++)g=p*2+d*r*2,x=g+C,h=g+1,A=h+C,f[T++]=h,f[T++]=g,f[T++]=A,f[T++]=A,f[T++]=g,f[T++]=x;g=r*2-2+d*r*2,h=g+1,A=h+C,x=g+C,f[T++]=h,f[T++]=g,f[T++]=A,f[T++]=A,f[T++]=g,f[T++]=x}if(i.st||i.tangent||i.bitangent){let v=new Float32Array(s*2),D=1/(a-1),O=1/n.height,M=n.height/2,L,N,_=0;for(d=0;d<a;d++){for(L=d*D,N=O*(t[0].y+M),v[_++]=L,v[_++]=N,p=1;p<r;p++)N=O*(t[p].y+M),v[_++]=L,v[_++]=N,v[_++]=L,v[_++]=N;N=O*(t[0].y+M),v[_++]=L,v[_++]=N}for(p=0;p<r;p++)L=0,N=O*(t[p].y+M),v[_++]=L,v[_++]=N;for(p=0;p<r;p++)L=(a-1)*D,N=O*(t[p].y+M),v[_++]=L,v[_++]=N;o.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:new Float32Array(v)})}let E=s-r*2;for(d=0;d<c.length;d+=3){let v=c[d]+E,D=c[d+1]+E,O=c[d+2]+E;f[T++]=v,f[T++]=D,f[T++]=O,f[T++]=O+r,f[T++]=D+r,f[T++]=v+r}let S=new dt({attributes:o,indices:f,boundingSphere:ae.fromVertices(e),primitiveType:Le.TRIANGLES});if(i.normal&&(S=Un.computeNormal(S)),i.tangent||i.bitangent){try{S=Un.computeTangentAndBitangent(S)}catch{Mt("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}i.tangent||(S.attributes.tangent=void 0),i.bitangent||(S.attributes.bitangent=void 0),i.st||(S.attributes.st=void 0)}return S}function Dv(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=oe.clone(y(e.ellipsoid,oe.WGS84)),this._cornerType=y(e.cornerType,Ri.ROUNDED),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";let i=1+t.length*m.packedLength;i+=1+n.length*H.packedLength,this.packedLength=i+oe.packedLength+Pe.packedLength+2}Dv.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=m.packedLength)m.pack(o[i],t,n);let s=e._shape;for(r=s.length,t[n++]=r,i=0;i<r;++i,n+=H.packedLength)H.pack(s[i],t,n);return oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var Lce=oe.clone(oe.UNIT_SPHERE),Nce=new Pe,vv={polylinePositions:void 0,shapePositions:void 0,ellipsoid:Lce,vertexFormat:Nce,cornerType:void 0,granularity:void 0};Dv.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=m.packedLength)r[i]=m.unpack(e,t);o=e[t++];let s=new Array(o);for(i=0;i<o;++i,t+=H.packedLength)s[i]=H.unpack(e,t);let a=oe.unpack(e,t,Lce);t+=oe.packedLength;let c=Pe.unpack(e,t,Nce);t+=Pe.packedLength;let u=e[t++],f=e[t];return l(n)?(n._positions=r,n._shape=s,n._ellipsoid=oe.clone(a,n._ellipsoid),n._vertexFormat=Pe.clone(c,n._vertexFormat),n._cornerType=u,n._granularity=f,n):(vv.polylinePositions=r,vv.shapePositions=s,vv.cornerType=u,vv.granularity=f,new Dv(vv))};var OYe=new Ke;Dv.createGeometry=function(e){let t=e._positions,n=xo(t,m.equalsEpsilon),i=e._shape;if(i=Mm.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;li.computeWindingOrder2D(i)===$r.CLOCKWISE&&i.reverse();let o=Ke.fromPoints(i,OYe),r=Mm.computePositions(n,i,o,e,!0);return PYe(r,i,o,e._vertexFormat)};var A2=Dv;function MYe(e,t){let n=new _n;n.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e});let i=t.length,o=n.position.values.length/3,s=e.length/3/i,a=Ve.createTypedArray(o,2*i*(s+1)),c,u,f=0;c=0;let d=c*i;for(u=0;u<i-1;u++)a[f++]=u+d,a[f++]=u+d+1;for(a[f++]=i-1+d,a[f++]=d,c=s-1,d=c*i,u=0;u<i-1;u++)a[f++]=u+d,a[f++]=u+d+1;for(a[f++]=i-1+d,a[f++]=d,c=0;c<s-1;c++){let g=i*c,h=g+i;for(u=0;u<i;u++)a[f++]=u+g,a[f++]=u+h}return new dt({attributes:n,indices:Ve.createTypedArray(o,a),boundingSphere:ae.fromVertices(e),primitiveType:Le.LINES})}function Pv(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=oe.clone(y(e.ellipsoid,oe.WGS84)),this._cornerType=y(e.cornerType,Ri.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";let i=1+t.length*m.packedLength;i+=1+n.length*H.packedLength,this.packedLength=i+oe.packedLength+2}Pv.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=m.packedLength)m.pack(o[i],t,n);let s=e._shape;for(r=s.length,t[n++]=r,i=0;i<r;++i,n+=H.packedLength)H.pack(s[i],t,n);return oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var Fce=oe.clone(oe.UNIT_SPHERE),Iv={polylinePositions:void 0,shapePositions:void 0,ellipsoid:Fce,height:void 0,cornerType:void 0,granularity:void 0};Pv.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=m.packedLength)r[i]=m.unpack(e,t);o=e[t++];let s=new Array(o);for(i=0;i<o;++i,t+=H.packedLength)s[i]=H.unpack(e,t);let a=oe.unpack(e,t,Fce);t+=oe.packedLength;let c=e[t++],u=e[t];return l(n)?(n._positions=r,n._shape=s,n._ellipsoid=oe.clone(a,n._ellipsoid),n._cornerType=c,n._granularity=u,n):(Iv.polylinePositions=r,Iv.shapePositions=s,Iv.cornerType=c,Iv.granularity=u,new Pv(Iv))};var RYe=new Ke;Pv.createGeometry=function(e){let t=e._positions,n=xo(t,m.equalsEpsilon),i=e._shape;if(i=Mm.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;li.computeWindingOrder2D(i)===$r.CLOCKWISE&&i.reverse();let o=Ke.fromPoints(i,RYe),r=Mm.computePositions(n,i,o,e,!1);return MYe(r,i)};var x2=Pv;var Uce=new z;function BYe(e){this.id=e,this.vertexFormat=void 0,this.polylinePositions=void 0,this.shapePositions=void 0,this.cornerType=void 0,this.granularity=void 0}function zm(e,t){ci.call(this,{entity:e,scene:t,geometryOptions:new BYe(e),geometryPropertyName:"polylineVolume",observedPropertyNames:["availability","polylineVolume"]}),this._onEntityPropertyChanged(e,"polylineVolume",e.polylineVolume,void 0)}l(Object.create)&&(zm.prototype=Object.create(ci.prototype),zm.prototype.constructor=zm);zm.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Ut){let c;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,Uce)),l(c)||(c=z.WHITE),o=Vt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new Tt({id:t,geometry:new A2(this._options),attributes:i})};zm.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Uce),o=this._distanceDisplayConditionProperty.getValue(e);return new Tt({id:t,geometry:new x2(this._options),attributes:{show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Vt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};zm.prototype._isHidden=function(e,t){return!l(t.positions)||!l(t.shape)||ci.prototype._isHidden.call(this,e,t)};zm.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!t.shape.isConstant||!j.isConstant(t.granularity)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.cornerType)};zm.prototype._setStaticOptions=function(e,t){let n=t.granularity,i=t.cornerType,o=this._options,r=this._materialProperty instanceof Ut;o.vertexFormat=r?sn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,o.polylinePositions=t.positions.getValue(Ge.MINIMUM_VALUE,o.polylinePositions),o.shapePositions=t.shape.getValue(Ge.MINIMUM_VALUE,o.shape),o.granularity=l(n)?n.getValue(Ge.MINIMUM_VALUE):void 0,o.cornerType=l(i)?i.getValue(Ge.MINIMUM_VALUE):void 0};zm.DynamicGeometryUpdater=aE;function aE(e,t,n){ai.call(this,e,t,n)}l(Object.create)&&(aE.prototype=Object.create(ai.prototype),aE.prototype.constructor=aE);aE.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.polylinePositions)||!l(i.shapePositions)||ai.prototype._isHidden.call(this,e,t,n)};aE.prototype._setOptions=function(e,t,n){let i=this._options;i.polylinePositions=j.getValueOrUndefined(t.positions,n,i.polylinePositions),i.shapePositions=j.getValueOrUndefined(t.shape,n),i.granularity=j.getValueOrUndefined(t.granularity,n),i.cornerType=j.getValueOrUndefined(t.cornerType,n)};var C2=zm;var iW=new m,zce=new m,Hce=new m,Gce=new m,Wce=new le,LYe=new H,NYe=new ae,FYe=new ae;function jce(e,t){let n=new dt({attributes:new _n,primitiveType:Le.TRIANGLES});return n.attributes.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:t.positions}),e.normal&&(n.attributes.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.normals})),e.tangent&&(n.attributes.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.tangents})),e.bitangent&&(n.attributes.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.bitangents})),n}function UYe(e,t,n,i){let o=e.length,r=t.normal?new Float32Array(o):void 0,s=t.tangent?new Float32Array(o):void 0,a=t.bitangent?new Float32Array(o):void 0,c=0,u=Gce,f=Hce,d=zce;if(t.normal||t.tangent||t.bitangent)for(let p=0;p<o;p+=3){let g=m.fromArray(e,p,iW),h=c+1,A=c+2;d=n.geodeticSurfaceNormal(g,d),(t.tangent||t.bitangent)&&(m.cross(m.UNIT_Z,d,f),Z.multiplyByVector(i,f,f),m.normalize(f,f),t.bitangent&&m.normalize(m.cross(d,f,u),u)),t.normal&&(r[c]=d.x,r[h]=d.y,r[A]=d.z),t.tangent&&(s[c]=f.x,s[h]=f.y,s[A]=f.z),t.bitangent&&(a[c]=u.x,a[h]=u.y,a[A]=u.z),c+=3}return jce(t,{positions:e,normals:r,tangents:s,bitangents:a})}var oW=new m,Yce=new m;function VYe(e,t,n){let i=e.length,o=t.normal?new Float32Array(i):void 0,r=t.tangent?new Float32Array(i):void 0,s=t.bitangent?new Float32Array(i):void 0,a=0,c=0,u=0,f=!0,d=Gce,p=Hce,g=zce;if(t.normal||t.tangent||t.bitangent)for(let h=0;h<i;h+=6){let A=m.fromArray(e,h,iW),x=m.fromArray(e,(h+6)%i,oW);if(f){let C=m.fromArray(e,(h+3)%i,Yce);m.subtract(x,A,x),m.subtract(C,A,C),g=m.normalize(m.cross(C,x,g),g),f=!1}m.equalsEpsilon(x,A,P.EPSILON10)&&(f=!0),(t.tangent||t.bitangent)&&(d=n.geodeticSurfaceNormal(A,d),t.tangent&&(p=m.normalize(m.cross(d,g,p),p))),t.normal&&(o[a++]=g.x,o[a++]=g.y,o[a++]=g.z,o[a++]=g.x,o[a++]=g.y,o[a++]=g.z),t.tangent&&(r[c++]=p.x,r[c++]=p.y,r[c++]=p.z,r[c++]=p.x,r[c++]=p.y,r[c++]=p.z),t.bitangent&&(s[u++]=d.x,s[u++]=d.y,s[u++]=d.z,s[u++]=d.x,s[u++]=d.y,s[u++]=d.z)}return jce(t,{positions:e,normals:o,tangents:r,bitangents:s})}function qce(e,t){let n=e._vertexFormat,i=e._ellipsoid,o=t.height,r=t.width,s=t.northCap,a=t.southCap,c=0,u=o,f=o,d=0;s&&(c=1,f-=1,d+=1),a&&(u-=1,f-=1,d+=1),d+=r*f;let p=n.position?new Float64Array(d*3):void 0,g=n.st?new Float32Array(d*2):void 0,h=0,A=0,x=iW,C=LYe,T=Number.MAX_VALUE,E=Number.MAX_VALUE,S=-Number.MAX_VALUE,v=-Number.MAX_VALUE;for(let b=c;b<u;++b)for(let w=0;w<r;++w)Ts.computePosition(t,i,n.st,b,w,x,C),p[h++]=x.x,p[h++]=x.y,p[h++]=x.z,n.st&&(g[A++]=C.x,g[A++]=C.y,T=Math.min(T,C.x),E=Math.min(E,C.y),S=Math.max(S,C.x),v=Math.max(v,C.y));if(s&&(Ts.computePosition(t,i,n.st,0,0,x,C),p[h++]=x.x,p[h++]=x.y,p[h++]=x.z,n.st&&(g[A++]=C.x,g[A++]=C.y,T=C.x,E=C.y,S=C.x,v=C.y)),a&&(Ts.computePosition(t,i,n.st,o-1,0,x,C),p[h++]=x.x,p[h++]=x.y,p[h]=x.z,n.st&&(g[A++]=C.x,g[A]=C.y,T=Math.min(T,C.x),E=Math.min(E,C.y),S=Math.max(S,C.x),v=Math.max(v,C.y))),n.st&&(T<0||E<0||S>1||v>1))for(let b=0;b<g.length;b+=2)g[b]=(g[b]-T)/(S-T),g[b+1]=(g[b+1]-E)/(v-E);let D=UYe(p,n,i,t.tangentRotationMatrix),O=6*(r-1)*(f-1);s&&(O+=3*(r-1)),a&&(O+=3*(r-1));let M=Ve.createTypedArray(d,O),L=0,N=0,_;for(_=0;_<f-1;++_){for(let b=0;b<r-1;++b){let w=L,I=w+r,R=I+1,F=w+1;M[N++]=w,M[N++]=I,M[N++]=F,M[N++]=F,M[N++]=I,M[N++]=R,++L}++L}if(s||a){let b=d-1,w=d-1;s&&a&&(b=d-2);let I,R;if(L=0,s)for(_=0;_<r-1;_++)I=L,R=I+1,M[N++]=b,M[N++]=I,M[N++]=R,++L;if(a)for(L=(f-1)*r,_=0;_<r-1;_++)I=L,R=I+1,M[N++]=I,M[N++]=w,M[N++]=R,++L}return D.indices=M,n.st&&(D.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),D}function cE(e,t,n,i,o){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n+2],e[t++]=o[n],e[t++]=o[n+1],e[t]=o[n+2],e}function lE(e,t,n,i){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n],e[t]=i[n+1],e}var rW=new Pe;function kYe(e,t){let n=e._shadowVolume,i=e._offsetAttribute,o=e._vertexFormat,r=e._extrudedHeight,s=e._surfaceHeight,a=e._ellipsoid,c=t.height,u=t.width,f;if(n){let rt=Pe.clone(o,rW);rt.normal=!0,e._vertexFormat=rt}let d=qce(e,t);n&&(e._vertexFormat=o);let p=li.scaleToGeodeticHeight(d.attributes.position.values,s,a,!1);p=new Float64Array(p);let g=p.length,h=g*2,A=new Float64Array(h);A.set(p);let x=li.scaleToGeodeticHeight(d.attributes.position.values,r,a);A.set(x,g),d.attributes.position.values=A;let C=o.normal?new Float32Array(h):void 0,T=o.tangent?new Float32Array(h):void 0,E=o.bitangent?new Float32Array(h):void 0,S=o.st?new Float32Array(h/3*2):void 0,v,D;if(o.normal){for(D=d.attributes.normal.values,C.set(D),f=0;f<g;f++)D[f]=-D[f];C.set(D,g),d.attributes.normal.values=C}if(n){D=d.attributes.normal.values,o.normal||(d.attributes.normal=void 0);let rt=new Float32Array(h);for(f=0;f<g;f++)D[f]=-D[f];rt.set(D,g),d.attributes.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:rt})}let O,M=l(i);if(M){let rt=g/3*2,un=new Uint8Array(rt);i===rn.TOP?un=un.fill(1,0,rt/2):(O=i===rn.NONE?0:1,un=un.fill(O)),d.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:un})}if(o.tangent){let rt=d.attributes.tangent.values;for(T.set(rt),f=0;f<g;f++)rt[f]=-rt[f];T.set(rt,g),d.attributes.tangent.values=T}if(o.bitangent){let rt=d.attributes.bitangent.values;E.set(rt),E.set(rt,g),d.attributes.bitangent.values=E}o.st&&(v=d.attributes.st.values,S.set(v),S.set(v,g/3*2),d.attributes.st.values=S);let L=d.indices,N=L.length,_=g/3,b=Ve.createTypedArray(h/3,N*2);for(b.set(L),f=0;f<N;f+=3)b[f+N]=L[f+2]+_,b[f+1+N]=L[f+1]+_,b[f+2+N]=L[f]+_;d.indices=b;let w=t.northCap,I=t.southCap,R=c,F=2,k=0,V=4,G=4;w&&(F-=1,R-=1,k+=1,V-=2,G-=1),I&&(F-=1,R-=1,k+=1,V-=2,G-=1),k+=F*u+2*R-V;let U=(k+G)*2,q=new Float64Array(U*3),Y=n?new Float32Array(U*3):void 0,Q=M?new Uint8Array(U):void 0,W=o.st?new Float32Array(U*2):void 0,K=i===rn.TOP;M&&!K&&(O=i===rn.ALL?1:0,Q=Q.fill(O));let J=0,_e=0,xe=0,se=0,Ae=u*R,me;for(f=0;f<Ae;f+=u)me=f*3,q=cE(q,J,me,p,x),J+=6,o.st&&(W=lE(W,_e,f*2,v),_e+=4),n&&(xe+=3,Y[xe++]=D[me],Y[xe++]=D[me+1],Y[xe++]=D[me+2]),K&&(Q[se++]=1,se+=1);if(I){let rt=w?Ae+1:Ae;for(me=rt*3,f=0;f<2;f++)q=cE(q,J,me,p,x),J+=6,o.st&&(W=lE(W,_e,rt*2,v),_e+=4),n&&(xe+=3,Y[xe++]=D[me],Y[xe++]=D[me+1],Y[xe++]=D[me+2]),K&&(Q[se++]=1,se+=1)}else for(f=Ae-u;f<Ae;f++)me=f*3,q=cE(q,J,me,p,x),J+=6,o.st&&(W=lE(W,_e,f*2,v),_e+=4),n&&(xe+=3,Y[xe++]=D[me],Y[xe++]=D[me+1],Y[xe++]=D[me+2]),K&&(Q[se++]=1,se+=1);for(f=Ae-1;f>0;f-=u)me=f*3,q=cE(q,J,me,p,x),J+=6,o.st&&(W=lE(W,_e,f*2,v),_e+=4),n&&(xe+=3,Y[xe++]=D[me],Y[xe++]=D[me+1],Y[xe++]=D[me+2]),K&&(Q[se++]=1,se+=1);if(w){let rt=Ae;for(me=rt*3,f=0;f<2;f++)q=cE(q,J,me,p,x),J+=6,o.st&&(W=lE(W,_e,rt*2,v),_e+=4),n&&(xe+=3,Y[xe++]=D[me],Y[xe++]=D[me+1],Y[xe++]=D[me+2]),K&&(Q[se++]=1,se+=1)}else for(f=u-1;f>=0;f--)me=f*3,q=cE(q,J,me,p,x),J+=6,o.st&&(W=lE(W,_e,f*2,v),_e+=4),n&&(xe+=3,Y[xe++]=D[me],Y[xe++]=D[me+1],Y[xe++]=D[me+2]),K&&(Q[se++]=1,se+=1);let Se=VYe(q,o,a);o.st&&(Se.attributes.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:W})),n&&(Se.attributes.extrudeDirection=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:Y})),M&&(Se.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:Q}));let Ie=Ve.createTypedArray(U,k*6),Ue,Re,ke,ft;g=q.length/3;let pt=0;for(f=0;f<g-1;f+=2){Ue=f,ft=(Ue+2)%g;let rt=m.fromArray(q,Ue*3,oW),un=m.fromArray(q,ft*3,Yce);m.equalsEpsilon(rt,un,P.EPSILON10)||(Re=(Ue+1)%g,ke=(Re+2)%g,Ie[pt++]=Ue,Ie[pt++]=Re,Ie[pt++]=ft,Ie[pt++]=ft,Ie[pt++]=Re,Ie[pt++]=ke)}return Se.indices=Ie,Se=Un.combineInstances([new Tt({geometry:d}),new Tt({geometry:Se})]),Se[0]}var zYe=[new m,new m,new m,new m],Xce=new he,HYe=new he;function sW(e,t,n,i,o){if(n===0)return le.clone(e,o);let r=Ts.computeOptions(e,t,n,0,Wce,Xce),s=r.height,a=r.width,c=zYe;return Ts.computePosition(r,i,!1,0,0,c[0]),Ts.computePosition(r,i,!1,0,a-1,c[1]),Ts.computePosition(r,i,!1,s-1,0,c[2]),Ts.computePosition(r,i,!1,s-1,a-1,c[3]),le.fromCartesianArray(c,i,o)}function Hm(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.height,0),i=y(e.extrudedHeight,n);this._rectangle=le.clone(t),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=oe.clone(y(e.ellipsoid,oe.WGS84)),this._surfaceHeight=Math.max(n,i),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._extrudedHeight=Math.min(n,i),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createRectangleGeometry",this._offsetAttribute=e.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}Hm.packedLength=le.packedLength+oe.packedLength+Pe.packedLength+7;Hm.pack=function(e,t,n){return n=y(n,0),le.pack(e._rectangle,t,n),n+=le.packedLength,oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var Kce=new le,Jce=oe.clone(oe.UNIT_SPHERE),Lg={rectangle:Kce,ellipsoid:Jce,vertexFormat:rW,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Hm.unpack=function(e,t,n){t=y(t,0);let i=le.unpack(e,t,Kce);t+=le.packedLength;let o=oe.unpack(e,t,Jce);t+=oe.packedLength;let r=Pe.unpack(e,t,rW);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++]===1,p=e[t];return l(n)?(n._rectangle=le.clone(i,n._rectangle),n._ellipsoid=oe.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._granularity=s,n._surfaceHeight=a,n._rotation=c,n._stRotation=u,n._extrudedHeight=f,n._shadowVolume=d,n._offsetAttribute=p===-1?void 0:p,n):(Lg.granularity=s,Lg.height=a,Lg.rotation=c,Lg.stRotation=u,Lg.extrudedHeight=f,Lg.shadowVolume=d,Lg.offsetAttribute=p===-1?void 0:p,new Hm(Lg))};Hm.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.rectangle,i=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.ellipsoid,oe.WGS84),r=y(e.rotation,0);return sW(n,i,r,o,t)};var GYe=new Z,Vce=new Ne,WYe=new he;Hm.createGeometry=function(e){if(P.equalsEpsilon(e._rectangle.north,e._rectangle.south,P.EPSILON10)||P.equalsEpsilon(e._rectangle.east,e._rectangle.west,P.EPSILON10))return;let t=e._rectangle,n=e._ellipsoid,i=e._rotation,o=e._stRotation,r=e._vertexFormat,s=Ts.computeOptions(t,e._granularity,i,o,Wce,Xce,HYe),a=GYe;if(o!==0||i!==0){let g=le.center(t,WYe),h=n.geodeticSurfaceNormalCartographic(g,oW);Ne.fromAxisAngle(h,-o,Vce),Z.fromQuaternion(Vce,a)}else Z.clone(Z.IDENTITY,a);let c=e._surfaceHeight,u=e._extrudedHeight,f=!P.equalsEpsilon(c,u,0,P.EPSILON2);s.lonScalar=1/e._rectangle.width,s.latScalar=1/e._rectangle.height,s.tangentRotationMatrix=a;let d,p;if(t=e._rectangle,f){d=kYe(e,s);let g=ae.fromRectangle3D(t,n,c,FYe),h=ae.fromRectangle3D(t,n,u,NYe);p=ae.union(g,h)}else{if(d=qce(e,s),d.attributes.position.values=li.scaleToGeodeticHeight(d.attributes.position.values,c,n,!1),l(e._offsetAttribute)){let g=d.attributes.position.values.length,h=e._offsetAttribute===rn.NONE?0:1,A=new Uint8Array(g/3).fill(h);d.attributes.applyOffset=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}p=ae.fromRectangle3D(t,n,c)}return r.position||delete d.attributes.position,new dt({attributes:d.attributes,indices:d.indices,primitiveType:d.primitiveType,boundingSphere:p,offsetAttribute:e._offsetAttribute})};Hm.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Hm({rectangle:e._rectangle,rotation:e._rotation,ellipsoid:o,stRotation:e._stRotation,granularity:i,extrudedHeight:s,height:r,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};var kce=new le,jYe=[new H,new H,new H],YYe=new eo,qYe=new he;function XYe(e){if(e._stRotation===0)return[0,0,0,1,1,0];let t=le.clone(e._rectangle,kce),n=e._granularity,i=e._ellipsoid,o=e._rotation-e._stRotation,r=sW(t,n,o,i,kce),s=jYe;s[0].x=r.west,s[0].y=r.south,s[1].x=r.west,s[1].y=r.north,s[2].x=r.east,s[2].y=r.south;let a=e.rectangle,c=eo.fromRotation(e._stRotation,YYe),u=le.center(a,qYe);for(let h=0;h<3;++h){let A=s[h];A.x-=u.longitude,A.y-=u.latitude,eo.multiplyByVector(c,A,A),A.x+=u.longitude,A.y+=u.latitude,A.x=(A.x-a.west)/a.width,A.y=(A.y-a.south)/a.height}let f=s[0],d=s[1],p=s[2],g=new Array(6);return H.pack(f,g),H.pack(d,g,2),H.pack(p,g,4),g}Object.defineProperties(Hm.prototype,{rectangle:{get:function(){return l(this._rotatedRectangle)||(this._rotatedRectangle=sW(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=XYe(this)),this._textureCoordinateRotationPoints}}});var uE=Hm;var Zce=new z,Qce=m.ZERO,$ce=new m,ele=new le,KYe=new le,JYe=new he;function ZYe(e){this.id=e,this.vertexFormat=void 0,this.rectangle=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.rotation=void 0,this.offsetAttribute=void 0}function hd(e,t){Kn.call(this,{entity:e,scene:t,geometryOptions:new ZYe(e),geometryPropertyName:"rectangle",observedPropertyNames:["availability","rectangle"]}),this._onEntityPropertyChanged(e,"rectangle",e.rectangle,void 0)}l(Object.create)&&(hd.prototype=Object.create(Kn.prototype),hd.prototype.constructor=hd);hd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Ut){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,Zce)),l(o)||(o=z.WHITE),i.color=Vt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,Qce,$ce))),new Tt({id:t,geometry:new uE(this._options),attributes:i})};hd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Zce),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Vt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Ki.fromCartesian3(j.getValueOrDefault(this._terrainOffsetProperty,e,Qce,$ce))),new Tt({id:t,geometry:new yT(this._options),attributes:r})};hd.prototype._computeCenter=function(e,t){let n=j.getValueOrUndefined(this._entity.rectangle.coordinates,e,KYe);if(!l(n))return;let i=le.center(n,JYe);return he.toCartesian(i,oe.WGS84,t)};hd.prototype._isHidden=function(e,t){return!l(t.coordinates)||ci.prototype._isHidden.call(this,e,t)};hd.prototype._isDynamic=function(e,t){return!t.coordinates.isConstant||!j.isConstant(t.height)||!j.isConstant(t.extrudedHeight)||!j.isConstant(t.granularity)||!j.isConstant(t.stRotation)||!j.isConstant(t.rotation)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.zIndex)||this._onTerrain&&!j.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};hd.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Ut,i=j.getValueOrUndefined(t.height,Ge.MINIMUM_VALUE),o=j.getValueOrDefault(t.heightReference,Ge.MINIMUM_VALUE,qe.NONE),r=j.getValueOrUndefined(t.extrudedHeight,Ge.MINIMUM_VALUE),s=j.getValueOrDefault(t.extrudedHeightReference,Ge.MINIMUM_VALUE,qe.NONE);l(r)&&!l(i)&&(i=0);let a=this._options;a.vertexFormat=n?sn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,a.rectangle=t.coordinates.getValue(Ge.MINIMUM_VALUE,a.rectangle),a.granularity=j.getValueOrUndefined(t.granularity,Ge.MINIMUM_VALUE),a.stRotation=j.getValueOrUndefined(t.stRotation,Ge.MINIMUM_VALUE),a.rotation=j.getValueOrUndefined(t.rotation,Ge.MINIMUM_VALUE),a.offsetAttribute=Kn.computeGeometryOffsetAttribute(i,o,r,s),a.height=Kn.getGeometryHeight(i,o),r=Kn.getGeometryExtrudedHeight(r,s),r===Kn.CLAMP_TO_GROUND&&(r=si.getMinimumMaximumHeights(uE.computeRectangle(a,ele)).minimumTerrainHeight),a.extrudedHeight=r};hd.DynamicGeometryUpdater=fE;function fE(e,t,n){ai.call(this,e,t,n)}l(Object.create)&&(fE.prototype=Object.create(ai.prototype),fE.prototype.constructor=fE);fE.prototype._isHidden=function(e,t,n){return!l(this._options.rectangle)||ai.prototype._isHidden.call(this,e,t,n)};fE.prototype._setOptions=function(e,t,n){let i=this._options,o=j.getValueOrUndefined(t.height,n),r=j.getValueOrDefault(t.heightReference,n,qe.NONE),s=j.getValueOrUndefined(t.extrudedHeight,n),a=j.getValueOrDefault(t.extrudedHeightReference,n,qe.NONE);l(s)&&!l(o)&&(o=0),i.rectangle=j.getValueOrUndefined(t.coordinates,n,i.rectangle),i.granularity=j.getValueOrUndefined(t.granularity,n),i.stRotation=j.getValueOrUndefined(t.stRotation,n),i.rotation=j.getValueOrUndefined(t.rotation,n),i.offsetAttribute=Kn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Kn.getGeometryHeight(o,r),s=Kn.getGeometryExtrudedHeight(s,a),s===Kn.CLAMP_TO_GROUND&&(s=si.getMinimumMaximumHeights(uE.computeRectangle(i,ele)).minimumTerrainHeight),i.extrudedHeight=s};var T2=hd;var tle=new z,QYe=new Dt,$Ye=new Dt,eqe=m.ZERO,tqe=new m;function pd(e,t,n,i,o,r,s){this.translucent=t,this.appearanceType=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=o,this.depthFailMaterial=void 0,this.closed=r,this.shadows=s,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.updaters=new Et,this.updatersWithAttributes=new Et,this.attributes=new Et,this.subscriptions=new Et,this.showsUpdated=new Et,this.itemsToRemove=[],this.invalidated=!1;let a;l(o)&&(a=o.definitionChanged.addEventListener(pd.prototype.onMaterialChanged,this)),this.removeMaterialSubscription=a}pd.prototype.onMaterialChanged=function(){this.invalidated=!0};pd.prototype.isMaterial=function(e){let t=this.depthFailMaterialProperty,n=e.depthFailMaterialProperty;return n===t?!0:l(t)?t.equals(n):!1};pd.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!j.isConstant(e.distanceDisplayConditionProperty)||!j.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};pd.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};pd.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0){l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i);let c;l(this.depthFailAppearanceType)&&(l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=$o.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial)),c=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})),i=new wn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new this.appearanceType({translucent:this.translucent,closed:this.closed}),depthFailAppearance:c,shadows:this.shadows}),o.add(i),t=!1}else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0),l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Ut)&&(this.depthFailMaterial=$o.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.fillMaterialProperty.isConstant||c){let x=u.fillMaterialProperty.color,C=j.getValueOrDefault(x,e,z.WHITE,tle);z.equals(d._lastColor,C)||(d._lastColor=z.clone(C,d._lastColor),d.color=Vt.toValue(C,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=u))}if(l(this.depthFailAppearanceType)&&u.depthFailMaterialProperty instanceof Ut&&(!u.depthFailMaterialProperty.isConstant||c)){let x=u.depthFailMaterialProperty.color,C=j.getValueOrDefault(x,e,z.WHITE,tle);z.equals(d._lastDepthFailColor,C)||(d._lastDepthFailColor=z.clone(C,d._lastDepthFailColor),d.depthFailColor=Vt.toValue(C,d.depthFailColor))}let p=u.entity.isShowing&&(u.hasConstantFill||u.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=An.toValue(p,d.show));let h=u.distanceDisplayConditionProperty;if(!j.isConstant(h)){let x=j.getValueOrDefault(h,e,$Ye,QYe);Dt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Dt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}let A=u.terrainOffsetProperty;if(!j.isConstant(A)){let x=j.getValueOrDefault(A,e,eqe,tqe);m.equals(x,d._lastOffset)||(d._lastOffset=m.clone(x,d._lastOffset),d.offset=Ki.toValue(x,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};pd.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=An.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};pd.prototype.contains=function(e){return this.updaters.contains(e.id)};pd.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ut.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ut.FAILED:(i.boundingSphere.clone(t),ut.DONE)};pd.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),l(this.removeMaterialSubscription)&&this.removeMaterialSubscription()};function dE(e,t,n,i,o){this._solidItems=[],this._translucentItems=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}dE.prototype.add=function(e,t){let n,i,o=t.createFillGeometryInstance(e);o.attributes.color.value[3]===255?(n=this._solidItems,i=!1):(n=this._translucentItems,i=!0);let r=n.length;for(let a=0;a<r;a++){let c=n[a];if(c.isMaterial(t)){c.add(t,o);return}}let s=new pd(this._primitives,i,this._appearanceType,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);s.add(t,o),n.push(s)};function nle(e,t){let n=e.length;for(let i=n-1;i>=0;i--){let o=e[i];if(o.remove(t))return o.updaters.length===0&&(e.splice(i,1),o.destroy()),!0}return!1}dE.prototype.remove=function(e){nle(this._solidItems,e)||nle(this._translucentItems,e)};function ile(e,t,n){let i=!1,o=t.length;for(let r=0;r<o;++r){let s=t[r],a=s.itemsToRemove,c=a.length;if(c>0)for(r=0;r<c;r++){let u=a[r];s.remove(u),e.add(n,u),i=!0}}return i}function E2(e,t,n,i){let o=t.length,r;for(r=o-1;r>=0;r--){let s=t[r];if(s.invalidated){t.splice(r,1);let a=s.updaters.values,c=a.length;for(let u=0;u<c;u++)e.add(n,a[u]);s.destroy()}}for(o=t.length,r=0;r<o;++r)i=t[r].update(n)&&i;return i}dE.prototype.update=function(e){let t=E2(this,this._solidItems,e,!0);t=E2(this,this._translucentItems,e,t)&&t;let n=ile(this,this._solidItems,e),i=ile(this,this._translucentItems,e);return(n||i)&&(t=E2(this,this._solidItems,e,t)&&t,t=E2(this,this._translucentItems,e,t)&&t),t};function ole(e,t,n){let i=e.length;for(let o=0;o<i;o++){let r=e[o];if(r.contains(t))return r.getBoundingSphere(t,n)}return ut.FAILED}dE.prototype.getBoundingSphere=function(e,t){let n=ole(this._solidItems,e,t);return n===ut.FAILED?ole(this._translucentItems,e,t):n};function rle(e){let t=e.length;for(let n=0;n<t;n++)e[n].destroy();e.length=0}dE.prototype.removeAllPrimitives=function(){rle(this._solidItems),rle(this._translucentItems)};var _d=dE;var nqe=new Dt,iqe=new Dt,oqe=m.ZERO,rqe=new m;function gd(e,t,n,i,o,r,s){this.primitives=e,this.appearanceType=t,this.materialProperty=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=o,this.closed=r,this.shadows=s,this.updaters=new Et,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.material=void 0,this.depthFailMaterial=void 0,this.updatersWithAttributes=new Et,this.attributes=new Et,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(gd.prototype.onMaterialChanged,this),this.subscriptions=new Et,this.showsUpdated=new Et}gd.prototype.onMaterialChanged=function(){this.invalidated=!0};gd.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty,i=this.depthFailMaterialProperty,o=e.depthFailMaterialProperty;if(n===t&&o===i)return!0;let r=l(t)&&t.equals(n);return r=(!l(i)&&!l(o)||l(i)&&i.equals(o))&&r,r};gd.prototype.add=function(e,t){let n=t.id;if(this.updaters.set(n,t),this.geometry.set(n,t.createFillGeometryInstance(e)),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!j.isConstant(t.distanceDisplayConditionProperty)||!j.isConstant(t.terrainOffsetProperty))this.updatersWithAttributes.set(n,t);else{let i=this;this.subscriptions.set(n,t.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};gd.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};var sqe=new z;gd.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0){l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=$o.getValue(e,this.materialProperty,this.material);let a;l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=$o.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),a=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})),n=new wn({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material,translucent:this.material.isTranslucent(),closed:this.closed}),depthFailAppearance:a,shadows:this.shadows}),i.add(n),t=!1}else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=$o.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Ut)&&(this.depthFailMaterial=$o.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),l(this.depthFailAppearanceType)&&this.depthFailMaterialProperty instanceof Ut&&!c.depthFailMaterialProperty.isConstant){let x=c.depthFailMaterialProperty.color,C=j.getValueOrDefault(x,e,z.WHITE,sqe);z.equals(d._lastDepthFailColor,C)||(d._lastDepthFailColor=z.clone(C,d._lastDepthFailColor),d.depthFailColor=Vt.toValue(C,d.depthFailColor))}let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=An.toValue(p,d.show));let h=c.distanceDisplayConditionProperty;if(!j.isConstant(h)){let x=j.getValueOrDefault(h,e,iqe,nqe);Dt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Dt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}let A=c.terrainOffsetProperty;if(!j.isConstant(A)){let x=j.getValueOrDefault(A,e,oqe,rqe);m.equals(x,d._lastOffset)||(d._lastOffset=m.clone(x,d._lastOffset),d.offset=Ki.toValue(x,d.offset))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};gd.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=An.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};gd.prototype.contains=function(e){return this.updaters.contains(e.id)};gd.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ut.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ut.FAILED:(i.boundingSphere.clone(t),ut.DONE)};gd.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function mE(e,t,n,i,o){this._items=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}mE.prototype.add=function(e,t){let n=this._items,i=n.length;for(let r=0;r<i;r++){let s=n[r];if(s.isMaterial(t)){s.add(e,t);return}}let o=new gd(this._primitives,this._appearanceType,t.fillMaterialProperty,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);o.add(e,t),n.push(o)};mE.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};mE.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};mE.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return ut.FAILED};mE.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var yd=mE;var ale=ar(sle(),1);function b2(){this._tree=new ale.default}function mA(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.id=""}mA.fromRectangleAndId=function(e,t,n){return n.minX=t.west,n.minY=t.south,n.maxX=t.east,n.maxY=t.north,n.id=e,n};b2.prototype.insert=function(e,t){let n=mA.fromRectangleAndId(e,t,new mA);this._tree.insert(n)};function aqe(e,t){return e.id===t.id}var cqe=new mA;b2.prototype.remove=function(e,t){let n=mA.fromRectangleAndId(e,t,cqe);this._tree.remove(n,aqe)};var lqe=new mA;b2.prototype.collides=function(e){let t=mA.fromRectangleAndId("",e,lqe);return this._tree.collides(t)};var hE=b2;var uqe=new z,fqe=new Dt,dqe=new Dt;function Op(e,t,n,i){this.primitives=e,this.zIndex=i,this.classificationType=t,this.color=n,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.updaters=new Et,this.updatersWithAttributes=new Et,this.attributes=new Et,this.subscriptions=new Et,this.showsUpdated=new Et,this.itemsToRemove=[],this.isDirty=!1,this.rectangleCollisionCheck=new hE}Op.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};Op.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),this.rectangleCollisionCheck.insert(n,t.geometry.rectangle),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!j.isConstant(e.distanceDisplayConditionProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};Op.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return l(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};Op.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new qc({show:!1,asynchronous:!0,geometryInstances:s.slice(),classificationType:this.classificationType}),o.add(i,this.zIndex),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.fillMaterialProperty.isConstant||c){let A=u.fillMaterialProperty.color,x=j.getValueOrDefault(A,e,z.WHITE,uqe);z.equals(d._lastColor,x)||(d._lastColor=z.clone(x,d._lastColor),d.color=Vt.toValue(x,d.color))}let p=u.entity.isShowing&&(u.hasConstantFill||u.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=An.toValue(p,d.show));let h=u.distanceDisplayConditionProperty;if(!j.isConstant(h)){let A=j.getValueOrDefault(h,e,dqe,fqe);Dt.equals(A,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Dt.clone(A,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(A,d.distanceDisplayCondition))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};Op.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=An.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};Op.prototype.contains=function(e){return this.updaters.contains(e.id)};Op.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ut.PENDING;let i=n.getBoundingSphere(e.entity);return l(i)?(i.clone(t),ut.DONE):ut.FAILED};Op.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;l(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;l(n)&&(e.remove(n),this.oldPrimitive=void 0)};function pE(e,t){this._batches=[],this._primitives=e,this._classificationType=t}pE.prototype.add=function(e,t){let n=t.createFillGeometryInstance(e),i=this._batches,o=j.getValueOrDefault(t.zIndex,0),r,s=i.length;for(let a=0;a<s;++a){let c=i[a];if(c.zIndex===o&&!c.overlapping(n.geometry.rectangle)){r=c;break}}return l(r)||(r=new Op(this._primitives,this._classificationType,n.attributes.color.value,o),i.push(r)),r.add(t,n),r};pE.prototype.remove=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;++i)if(t[i].remove(e))return};pE.prototype.update=function(e){let t,n,i=!0,o=this._batches,r=o.length;for(t=0;t<r;++t)i=o[t].update(e)&&i;for(t=0;t<r;++t){let s=o[t],a=s.itemsToRemove,c=a.length;for(let u=0;u<c;u++){n=a[u],s.remove(n);let f=this.add(e,n);s.isDirty=!0,f.isDirty=!0}}for(t=r-1;t>=0;--t){let s=o[t];s.isDirty&&(i=o[t].update(e)&&i,s.isDirty=!1),s.geometry.length===0&&o.splice(t,1)}return i};pE.prototype.getBoundingSphere=function(e,t){let n=this._batches,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return ut.FAILED};pE.prototype.removeAllPrimitives=function(){let e=this._batches,t=e.length;for(let n=0;n<t;++n)e[n].removeAllPrimitives()};var Ov=pE;var mqe=new Dt,hqe=new Dt;function rf(e,t,n,i,o,r){this.primitives=e,this.classificationType=t,this.appearanceType=n,this.materialProperty=i,this.updaters=new Et,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.material=void 0,this.updatersWithAttributes=new Et,this.attributes=new Et,this.invalidated=!1,this.removeMaterialSubscription=i.definitionChanged.addEventListener(rf.prototype.onMaterialChanged,this),this.subscriptions=new Et,this.showsUpdated=new Et,this.usingSphericalTextureCoordinates=o,this.zIndex=r,this.rectangleCollisionCheck=new hE}rf.prototype.onMaterialChanged=function(){this.invalidated=!0};rf.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};rf.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Ut&&t instanceof Ut?!0:l(t)&&t.equals(n)};rf.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),this.rectangleCollisionCheck.insert(i,n.geometry.rectangle),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!j.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};rf.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return l(i)&&(i(),this.subscriptions.remove(t)),!0}return!1};rf.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=$o.getValue(e,this.materialProperty,this.material),n=new qc({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material}),classificationType:this.classificationType}),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=$o.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material;let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d));let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=An.toValue(p,d.show));let h=c.distanceDisplayConditionProperty;if(!j.isConstant(h)){let A=j.getValueOrDefault(h,e,hqe,mqe);Dt.equals(A,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Dt.clone(A,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(A,d.distanceDisplayCondition))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};rf.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=An.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};rf.prototype.contains=function(e){return this.updaters.contains(e.id)};rf.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ut.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ut.FAILED:(i.boundingSphere.clone(t),ut.DONE)};rf.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function _E(e,t,n){this._items=[],this._primitives=e,this._classificationType=t,this._appearanceType=n}_E.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=Mu.shouldUseSphericalCoordinates(o.geometry.rectangle),s=j.getValueOrDefault(t.zIndex,0);for(let c=0;c<i;++c){let u=n[c];if(u.isMaterial(t)&&u.usingSphericalTextureCoordinates===r&&u.zIndex===s&&!u.overlapping(o.geometry.rectangle)){u.add(e,t,o);return}}let a=new rf(this._primitives,this._classificationType,this._appearanceType,t.fillMaterialProperty,r,s);a.add(e,t,o),n.push(a)};_E.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};_E.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};_E.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return ut.FAILED};_E.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var S2=_E;var pqe=new z,_qe=new Dt,gqe=new Dt,yqe=m.ZERO,Aqe=new m;function Mp(e,t,n,i){this.translucent=t,this.width=n,this.shadows=i,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.updaters=new Et,this.updatersWithAttributes=new Et,this.attributes=new Et,this.itemsToRemove=[],this.subscriptions=new Et,this.showsUpdated=new Et}Mp.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantOutline||!e.outlineColorProperty.isConstant||!j.isConstant(e.distanceDisplayConditionProperty)||!j.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};Mp.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};Mp.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new wn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new sn({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),o.add(i),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.outlineColorProperty.isConstant||c){let x=u.outlineColorProperty,C=j.getValueOrDefault(x,e,z.WHITE,pqe);z.equals(d._lastColor,C)||(d._lastColor=z.clone(C,d._lastColor),d.color=Vt.toValue(C,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=u))}let p=u.entity.isShowing&&(u.hasConstantOutline||u.isOutlineVisible(e)),g=d.show[0]===1;p!==g&&(d.show=An.toValue(p,d.show));let h=u.distanceDisplayConditionProperty;if(!j.isConstant(h)){let x=j.getValueOrDefault(h,e,gqe,_qe);Dt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Dt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}let A=u.terrainOffsetProperty;if(!j.isConstant(A)){let x=j.getValueOrDefault(A,e,yqe,Aqe);m.equals(x,d._lastOffset)||(d._lastOffset=m.clone(x,d._lastOffset),d.offset=Ki.toValue(x,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};Mp.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=An.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};Mp.prototype.contains=function(e){return this.updaters.contains(e.id)};Mp.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ut.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ut.FAILED:(i.boundingSphere.clone(t),ut.DONE)};Mp.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;l(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;l(n)&&(e.remove(n),this.oldPrimitive=void 0)};function gE(e,t,n){this._primitives=e,this._scene=t,this._shadows=n,this._solidBatches=new Et,this._translucentBatches=new Et}gE.prototype.add=function(e,t){let n=t.createOutlineGeometryInstance(e),i=this._scene.clampLineWidth(t.outlineWidth),o,r;n.attributes.color.value[3]===255?(o=this._solidBatches,r=o.get(i),l(r)||(r=new Mp(this._primitives,!1,i,this._shadows),o.set(i,r)),r.add(t,n)):(o=this._translucentBatches,r=o.get(i),l(r)||(r=new Mp(this._primitives,!0,i,this._shadows),o.set(i,r)),r.add(t,n))};gE.prototype.remove=function(e){let t,n=this._solidBatches.values,i=n.length;for(t=0;t<i;t++)if(n[t].remove(e))return;let o=this._translucentBatches.values,r=o.length;for(t=0;t<r;t++)if(o[t].remove(e))return};gE.prototype.update=function(e){let t,n,i,o,r=this._solidBatches.values,s=r.length,a=this._translucentBatches.values,c=a.length,u,f=!0,d=!1;do{for(d=!1,n=0;n<s;n++){o=r[n],f=o.update(e),u=o.itemsToRemove;let p=u.length;if(p>0)for(d=!0,t=0;t<p;t++)i=u[t],o.remove(i),this.add(e,i)}for(n=0;n<c;n++){o=a[n],f=o.update(e),u=o.itemsToRemove;let p=u.length;if(p>0)for(d=!0,t=0;t<p;t++)i=u[t],o.remove(i),this.add(e,i)}}while(d);return f};gE.prototype.getBoundingSphere=function(e,t){let n,i=this._solidBatches.values,o=i.length;for(n=0;n<o;n++){let a=i[n];if(a.contains(e))return a.getBoundingSphere(e,t)}let r=this._translucentBatches.values,s=r.length;for(n=0;n<s;n++){let a=r[n];if(a.contains(e))return a.getBoundingSphere(e,t)}return ut.FAILED};gE.prototype.removeAllPrimitives=function(){let e,t=this._solidBatches.values,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._translucentBatches.values,o=i.length;for(e=0;e<o;e++)i[e].removeAllPrimitives()};var Mv=gE;var cle={};function xqe(e,t){return P.equalsEpsilon(e.latitude,t.latitude,P.EPSILON10)&&P.equalsEpsilon(e.longitude,t.longitude,P.EPSILON10)}var Cqe=new he,Tqe=new he;function Eqe(e,t,n,i){t=xo(t,m.equalsEpsilon);let o=t.length;if(o<2)return;let r=l(i),s=l(n),a=new Array(o),c=new Array(o),u=new Array(o),f=t[0];a[0]=f;let d=e.cartesianToCartographic(f,Cqe);s&&(d.height=n[0]),c[0]=d.height,r?u[0]=i[0]:u[0]=0;let p=c[0],g=u[0],h=p===g,A=1;for(let x=1;x<o;++x){let C=t[x],T=e.cartesianToCartographic(C,Tqe);s&&(T.height=n[x]),h=h&&T.height===0,xqe(d,T)?d.height<T.height&&(c[A-1]=T.height):(a[A]=C,c[A]=T.height,r?u[A]=i[x]:u[A]=0,h=h&&c[A]===u[A],he.clone(T,d),++A)}if(!(h||A<2))return a.length=A,c.length=A,u.length=A,{positions:a,topHeights:c,bottomHeights:u}}var bqe=new Array(2),Sqe=new Array(2),wqe={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};cle.computePositions=function(e,t,n,i,o,r){let s=Eqe(e,t,n,i);if(!l(s))return;t=s.positions,n=s.topHeights,i=s.bottomHeights;let a=t.length,c=a-2,u,f,d=P.chordLength(o,e.maximumRadius),p=wqe;if(p.minDistance=d,p.ellipsoid=e,r){let g=0,h;for(h=0;h<a-1;h++)g+=Mi.numberOfPoints(t[h],t[h+1],d)+1;u=new Float64Array(g*3),f=new Float64Array(g*3);let A=bqe,x=Sqe;p.positions=A,p.height=x;let C=0;for(h=0;h<a-1;h++){A[0]=t[h],A[1]=t[h+1],x[0]=n[h],x[1]=n[h+1];let T=Mi.generateArc(p);u.set(T,C),x[0]=i[h],x[1]=i[h+1],f.set(Mi.generateArc(p),C),C+=T.length}}else p.positions=t,p.height=n,u=new Float64Array(Mi.generateArc(p)),p.height=i,f=new Float64Array(Mi.generateArc(p));return{bottomPositions:f,topPositions:u,numCorners:c}};var yE=cle;var lW=new m,w2=new m,vqe=new m,lle=new m,Dqe=new m,Iqe=new m,Pqe=new m;function hA(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.ellipsoid,oe.WGS84);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._vertexFormat=Pe.clone(o),this._granularity=r,this._ellipsoid=oe.clone(s),this._workerName="createWallGeometry";let a=1+t.length*m.packedLength+2;l(i)&&(a+=i.length),l(n)&&(a+=n.length),this.packedLength=a+oe.packedLength+Pe.packedLength+1}hA.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=m.packedLength)m.pack(o[i],t,n);let s=e._minimumHeights;if(r=l(s)?s.length:0,t[n++]=r,l(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=l(a)?a.length:0,t[n++]=r,l(a))for(i=0;i<r;++i)t[n++]=a[i];return oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n]=e._granularity,t};var ule=oe.clone(oe.UNIT_SPHERE),fle=new Pe,Rv={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:ule,vertexFormat:fle,granularity:void 0};hA.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=m.packedLength)r[i]=m.unpack(e,t);o=e[t++];let s;if(o>0)for(s=new Array(o),i=0;i<o;++i)s[i]=e[t++];o=e[t++];let a;if(o>0)for(a=new Array(o),i=0;i<o;++i)a[i]=e[t++];let c=oe.unpack(e,t,ule);t+=oe.packedLength;let u=Pe.unpack(e,t,fle);t+=Pe.packedLength;let f=e[t];return l(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=oe.clone(c,n._ellipsoid),n._vertexFormat=Pe.clone(u,n._vertexFormat),n._granularity=f,n):(Rv.positions=r,Rv.minimumHeights=s,Rv.maximumHeights=a,Rv.granularity=f,new hA(Rv))};hA.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=l(o),a=l(r);if(s||a){let u=t.length;n=s?new Array(u):void 0,i=a?new Array(u):void 0;for(let f=0;f<u;++f)s&&(n[f]=o),a&&(i[f]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid,vertexFormat:e.vertexFormat};return new hA(c)};hA.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._vertexFormat,r=e._granularity,s=e._ellipsoid,a=yE.computePositions(s,t,i,n,r,!0);if(!l(a))return;let c=a.bottomPositions,u=a.topPositions,f=a.numCorners,d=u.length,p=d*2,g=o.position?new Float64Array(p):void 0,h=o.normal?new Float32Array(p):void 0,A=o.tangent?new Float32Array(p):void 0,x=o.bitangent?new Float32Array(p):void 0,C=o.st?new Float32Array(p/3*2):void 0,T=0,E=0,S=0,v=0,D=0,O=Pqe,M=Iqe,L=Dqe,N=!0;d/=3;let _,b=0,w=1/(d-f-1);for(_=0;_<d;++_){let V=_*3,G=m.fromArray(u,V,lW),U=m.fromArray(c,V,w2);if(o.position&&(g[T++]=U.x,g[T++]=U.y,g[T++]=U.z,g[T++]=G.x,g[T++]=G.y,g[T++]=G.z),o.st&&(C[D++]=b,C[D++]=0,C[D++]=b,C[D++]=1),o.normal||o.tangent||o.bitangent){let q=m.clone(m.ZERO,lle),Y=m.subtract(G,s.geodeticSurfaceNormal(G,w2),w2);if(_+1<d&&(q=m.fromArray(u,V+3,lle)),N){let Q=m.subtract(q,G,vqe),W=m.subtract(Y,G,lW);O=m.normalize(m.cross(W,Q,O),O),N=!1}m.equalsEpsilon(G,q,P.EPSILON10)?N=!0:(b+=w,o.tangent&&(M=m.normalize(m.subtract(q,G,M),M)),o.bitangent&&(L=m.normalize(m.cross(O,M,L),L))),o.normal&&(h[E++]=O.x,h[E++]=O.y,h[E++]=O.z,h[E++]=O.x,h[E++]=O.y,h[E++]=O.z),o.tangent&&(A[v++]=M.x,A[v++]=M.y,A[v++]=M.z,A[v++]=M.x,A[v++]=M.y,A[v++]=M.z),o.bitangent&&(x[S++]=L.x,x[S++]=L.y,x[S++]=L.z,x[S++]=L.x,x[S++]=L.y,x[S++]=L.z)}}let I=new _n;o.position&&(I.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:g})),o.normal&&(I.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:h})),o.tangent&&(I.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),o.bitangent&&(I.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),o.st&&(I.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:C}));let R=p/3;p-=6*(f+1);let F=Ve.createTypedArray(R,p),k=0;for(_=0;_<R-2;_+=2){let V=_,G=_+2,U=m.fromArray(g,V*3,lW),q=m.fromArray(g,G*3,w2);if(m.equalsEpsilon(U,q,P.EPSILON10))continue;let Y=_+1,Q=_+3;F[k++]=Y,F[k++]=V,F[k++]=Q,F[k++]=Q,F[k++]=V,F[k++]=G}return new dt({attributes:I,indices:F,primitiveType:Le.TRIANGLES,boundingSphere:new ae.fromVertices(g)})};var v2=hA;var dle=new m,mle=new m;function pA(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.ellipsoid,oe.WGS84);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._granularity=o,this._ellipsoid=oe.clone(r),this._workerName="createWallOutlineGeometry";let s=1+t.length*m.packedLength+2;l(i)&&(s+=i.length),l(n)&&(s+=n.length),this.packedLength=s+oe.packedLength+1}pA.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=m.packedLength)m.pack(o[i],t,n);let s=e._minimumHeights;if(r=l(s)?s.length:0,t[n++]=r,l(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=l(a)?a.length:0,t[n++]=r,l(a))for(i=0;i<r;++i)t[n++]=a[i];return oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,t[n]=e._granularity,t};var hle=oe.clone(oe.UNIT_SPHERE),Bv={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:hle,granularity:void 0};pA.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=m.packedLength)r[i]=m.unpack(e,t);o=e[t++];let s;if(o>0)for(s=new Array(o),i=0;i<o;++i)s[i]=e[t++];o=e[t++];let a;if(o>0)for(a=new Array(o),i=0;i<o;++i)a[i]=e[t++];let c=oe.unpack(e,t,hle);t+=oe.packedLength;let u=e[t];return l(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=oe.clone(c,n._ellipsoid),n._granularity=u,n):(Bv.positions=r,Bv.minimumHeights=s,Bv.maximumHeights=a,Bv.granularity=u,new pA(Bv))};pA.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=l(o),a=l(r);if(s||a){let u=t.length;n=s?new Array(u):void 0,i=a?new Array(u):void 0;for(let f=0;f<u;++f)s&&(n[f]=o),a&&(i[f]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid};return new pA(c)};pA.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._granularity,r=e._ellipsoid,s=yE.computePositions(r,t,i,n,o,!1);if(!l(s))return;let a=s.bottomPositions,c=s.topPositions,u=c.length,f=u*2,d=new Float64Array(f),p=0;u/=3;let g;for(g=0;g<u;++g){let T=g*3,E=m.fromArray(c,T,dle),S=m.fromArray(a,T,mle);d[p++]=S.x,d[p++]=S.y,d[p++]=S.z,d[p++]=E.x,d[p++]=E.y,d[p++]=E.z}let h=new _n({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})}),A=f/3;f=2*A-4+A;let x=Ve.createTypedArray(A,f),C=0;for(g=0;g<A-2;g+=2){let T=g,E=g+2,S=m.fromArray(d,T*3,dle),v=m.fromArray(d,E*3,mle);if(m.equalsEpsilon(S,v,P.EPSILON10))continue;let D=g+1,O=g+3;x[C++]=D,x[C++]=T,x[C++]=D,x[C++]=O,x[C++]=T,x[C++]=E}return x[C++]=A-2,x[C++]=A-1,new dt({attributes:h,indices:x,primitiveType:Le.LINES,boundingSphere:new ae.fromVertices(d)})};var D2=pA;var ple=new z;function Oqe(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.minimumHeights=void 0,this.maximumHeights=void 0,this.granularity=void 0}function Ad(e,t){ci.call(this,{entity:e,scene:t,geometryOptions:new Oqe(e),geometryPropertyName:"wall",observedPropertyNames:["availability","wall"]}),this._onEntityPropertyChanged(e,"wall",e.wall,void 0)}l(Object.create)&&(Ad.prototype=Object.create(ci.prototype),Ad.prototype.constructor=Ad);Ad.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Ut){let c;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,ple)),l(c)||(c=z.WHITE),o=Vt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new Tt({id:t,geometry:new v2(this._options),attributes:i})};Ad.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=j.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,ple),o=this._distanceDisplayConditionProperty.getValue(e);return new Tt({id:t,geometry:new D2(this._options),attributes:{show:new An(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Vt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};Ad.prototype._isHidden=function(e,t){return!l(t.positions)||ci.prototype._isHidden.call(this,e,t)};Ad.prototype._getIsClosed=function(e){return!1};Ad.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!j.isConstant(t.minimumHeights)||!j.isConstant(t.maximumHeights)||!j.isConstant(t.outlineWidth)||!j.isConstant(t.granularity)};Ad.prototype._setStaticOptions=function(e,t){let n=t.minimumHeights,i=t.maximumHeights,o=t.granularity,r=this._materialProperty instanceof Ut,s=this._options;s.vertexFormat=r?sn.VERTEX_FORMAT:ro.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(Ge.MINIMUM_VALUE,s.positions),s.minimumHeights=l(n)?n.getValue(Ge.MINIMUM_VALUE,s.minimumHeights):void 0,s.maximumHeights=l(i)?i.getValue(Ge.MINIMUM_VALUE,s.maximumHeights):void 0,s.granularity=l(o)?o.getValue(Ge.MINIMUM_VALUE):void 0};Ad.DynamicGeometryUpdater=AE;function AE(e,t,n){ai.call(this,e,t,n)}l(Object.create)&&(AE.prototype=Object.create(ai.prototype),AE.prototype.constructor=AE);AE.prototype._isHidden=function(e,t,n){return!l(this._options.positions)||ai.prototype._isHidden.call(this,e,t,n)};AE.prototype._setOptions=function(e,t,n){let i=this._options;i.positions=j.getValueOrUndefined(t.positions,n,i.positions),i.minimumHeights=j.getValueOrUndefined(t.minimumHeights,n,i.minimumHeights),i.maximumHeights=j.getValueOrUndefined(t.maximumHeights,n,i.maximumHeights),i.granularity=j.getValueOrUndefined(t.granularity,n)};var I2=Ad;var Mqe=[],_le=[OR,UF,PF,s2,a2,m2,y2,C2,T2,I2];function Lv(e,t){this.entity=e,this.scene=t;let n=new Array(_le.length),i=new ge;function o(s){i.raiseEvent(s)}let r=new Mr;for(let s=0;s<n.length;s++){let a=new _le[s](e,t);r.add(a.geometryChanged,o),n[s]=a}this.updaters=n,this.geometryChanged=i,this.eventHelper=r,this._removeEntitySubscription=e.definitionChanged.addEventListener(Lv.prototype._onEntityPropertyChanged,this)}Lv.prototype._onEntityPropertyChanged=function(e,t,n,i){let o=this.updaters;for(let r=0;r<o.length;r++)o[r]._onEntityPropertyChanged(e,t,n,i)};Lv.prototype.forEach=function(e){let t=this.updaters;for(let n=0;n<t.length;n++)e(t[n])};Lv.prototype.destroy=function(){this.eventHelper.removeAll();let e=this.updaters;for(let t=0;t<e.length;t++)e[t].destroy();this._removeEntitySubscription(),ue(this)};function sf(e,t,n,i){n=y(n,e.primitives),i=y(i,e.groundPrimitives),this._scene=e,this._primitives=n,this._groundPrimitives=i,this._entityCollection=void 0,this._addedObjects=new Et,this._removedObjects=new Et,this._changedObjects=new Et;let o=xn.NUMBER_OF_SHADOW_MODES;this._outlineBatches=new Array(o*2),this._closedColorBatches=new Array(o*2),this._closedMaterialBatches=new Array(o*2),this._openColorBatches=new Array(o*2),this._openMaterialBatches=new Array(o*2);let r=er.supportsMaterialsforEntitiesOnTerrain(e);this._supportsMaterialsforEntitiesOnTerrain=r;let s;for(s=0;s<o;++s)this._outlineBatches[s]=new Mv(n,e,s,!1),this._outlineBatches[o+s]=new Mv(n,e,s,!0),this._closedColorBatches[s]=new _d(n,sn,void 0,!0,s,!0),this._closedColorBatches[o+s]=new _d(n,sn,void 0,!0,s,!1),this._closedMaterialBatches[s]=new yd(n,ro,void 0,!0,s,!0),this._closedMaterialBatches[o+s]=new yd(n,ro,void 0,!0,s,!1),this._openColorBatches[s]=new _d(n,sn,void 0,!1,s,!0),this._openColorBatches[o+s]=new _d(n,sn,void 0,!1,s,!1),this._openMaterialBatches[s]=new yd(n,ro,void 0,!1,s,!0),this._openMaterialBatches[o+s]=new yd(n,ro,void 0,!1,s,!1);let a=zn.NUMBER_OF_CLASSIFICATION_TYPES,c=new Array(a),u=[];if(r)for(s=0;s<a;++s)u.push(new S2(i,s,ro)),c[s]=new Ov(i,s);else for(s=0;s<a;++s)c[s]=new Ov(i,s);this._groundColorBatches=c,this._groundMaterialBatches=u,this._dynamicBatch=new KT(n,i),this._batches=this._outlineBatches.concat(this._closedColorBatches,this._closedMaterialBatches,this._openColorBatches,this._openMaterialBatches,this._groundColorBatches,this._groundMaterialBatches,this._dynamicBatch),this._subscriptions=new Et,this._updaterSets=new Et,this._entityCollection=t,t.collectionChanged.addEventListener(sf.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,Mqe)}sf.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,o=i.values,r=this._changedObjects,s=r.values,a,c,u,f,d=this;for(a=s.length-1;a>-1;a--)c=s[a],u=c.id,f=this._updaterSets.get(u),f.entity===c?f.forEach(function(A){d._removeUpdater(A),d._insertUpdaterIntoBatch(e,A)}):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],u=c.id,f=this._updaterSets.get(u),f.forEach(this._removeUpdater.bind(this)),f.destroy(),this._updaterSets.remove(u),this._subscriptions.get(u)(),this._subscriptions.remove(u);for(a=n.length-1;a>-1;a--)c=n[a],u=c.id,f=new Lv(c,this._scene),this._updaterSets.set(u,f),f.forEach(function(A){d._insertUpdaterIntoBatch(e,A)}),this._subscriptions.set(u,f.geometryChanged.addEventListener(sf._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let p=!0,g=this._batches,h=g.length;for(a=0;a<h;a++)p=g[a].update(e)&&p;return p};var Rqe=[],Bqe=new ae;sf.prototype.getBoundingSphere=function(e,t){let n=Rqe,i=Bqe,o=0,r=ut.DONE,s=this._batches,a=s.length,c=e.id,u=this._updaterSets.get(c).updaters;for(let f=0;f<u.length;f++){let d=u[f];for(let p=0;p<a;p++){if(r=s[p].getBoundingSphere(d,i),r===ut.PENDING)return ut.PENDING;r===ut.DONE&&(n[o]=ae.clone(i,n[o]),o++)}}return o===0?ut.FAILED:(n.length=o,ae.fromBoundingSpheres(n,t),ut.DONE)};sf.prototype.isDestroyed=function(){return!1};sf.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(sf.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();this._subscriptions.removeAll();let o=this._updaterSets.values;for(n=o.length,e=0;e<n;e++)o[e].destroy();return this._updaterSets.removeAll(),ue(this)};sf.prototype._removeUpdater=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;i++)t[i].remove(e)};sf.prototype._insertUpdaterIntoBatch=function(e,t){if(t.isDynamic){this._dynamicBatch.add(e,t);return}let n;(t.outlineEnabled||t.fillEnabled)&&(n=t.shadowsProperty.getValue(e));let i=xn.NUMBER_OF_SHADOW_MODES;if(t.outlineEnabled&&(l(t.terrainOffsetProperty)?this._outlineBatches[i+n].add(e,t):this._outlineBatches[n].add(e,t)),t.fillEnabled)if(t.onTerrain){let o=t.classificationTypeProperty.getValue(e);t.fillMaterialProperty instanceof Ut?this._groundColorBatches[o].add(e,t):this._groundMaterialBatches[o].add(e,t)}else t.isClosed?t.fillMaterialProperty instanceof Ut?l(t.terrainOffsetProperty)?this._closedColorBatches[i+n].add(e,t):this._closedColorBatches[n].add(e,t):l(t.terrainOffsetProperty)?this._closedMaterialBatches[i+n].add(e,t):this._closedMaterialBatches[n].add(e,t):t.fillMaterialProperty instanceof Ut?l(t.terrainOffsetProperty)?this._openColorBatches[i+n].add(e,t):this._openColorBatches[n].add(e,t):l(t.terrainOffsetProperty)?this._openMaterialBatches[i+n].add(e,t):this._openMaterialBatches[n].add(e,t)};sf._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!l(t.get(o))&&!l(n.get(o))&&n.set(o,i)};sf.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,o=this._removedObjects,r=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var P2=sf;var Lqe=1,Nqe="30px sans-serif",Fqe=Ho.FILL,Uqe=z.WHITE,Vqe=z.BLACK,kqe=1,zqe=!1,Hqe=new z(.165,.165,.165,.8),Gqe=new H(7,5),Wqe=H.ZERO,jqe=m.ZERO,Yqe=qe.NONE,qqe=_i.CENTER,Xqe=Rn.CENTER,Kqe=new m,Jqe=new z,Zqe=new z,Qqe=new z,$qe=new H,eXe=new m,tXe=new H,nXe=new Lt,iXe=new Lt,oXe=new Lt,rXe=new Dt;function gle(e){this.entity=e,this.label=void 0,this.index=void 0}function Ng(e,t){t.collectionChanged.addEventListener(Ng.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}Ng.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._label,c,u=r.label,f=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),d;if(f&&(d=j.getValueOrUndefined(s._position,e,Kqe),c=j.getValueOrUndefined(a._text,e),f=l(d)&&l(c)),!f){uW(r,s,n);continue}j.isConstant(s._position)||(n._clusterDirty=!0);let p=!1,g=j.getValueOrDefault(a._heightReference,e,Yqe);l(u)||(u=n.getLabel(s),u.id=s,r.label=u,p=m.equals(u.position,d)&&u.heightReference===g),u.show=!0,u.position=d,u.text=c,u.scale=j.getValueOrDefault(a._scale,e,Lqe),u.font=j.getValueOrDefault(a._font,e,Nqe),u.style=j.getValueOrDefault(a._style,e,Fqe),u.fillColor=j.getValueOrDefault(a._fillColor,e,Uqe,Jqe),u.outlineColor=j.getValueOrDefault(a._outlineColor,e,Vqe,Zqe),u.outlineWidth=j.getValueOrDefault(a._outlineWidth,e,kqe),u.showBackground=j.getValueOrDefault(a._showBackground,e,zqe),u.backgroundColor=j.getValueOrDefault(a._backgroundColor,e,Hqe,Qqe),u.backgroundPadding=j.getValueOrDefault(a._backgroundPadding,e,Gqe,$qe),u.pixelOffset=j.getValueOrDefault(a._pixelOffset,e,Wqe,tXe),u.eyeOffset=j.getValueOrDefault(a._eyeOffset,e,jqe,eXe),u.heightReference=g,u.horizontalOrigin=j.getValueOrDefault(a._horizontalOrigin,e,qqe),u.verticalOrigin=j.getValueOrDefault(a._verticalOrigin,e,Xqe),u.translucencyByDistance=j.getValueOrUndefined(a._translucencyByDistance,e,nXe),u.pixelOffsetScaleByDistance=j.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,iXe),u.scaleByDistance=j.getValueOrUndefined(a._scaleByDistance,e,oXe),u.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e,rXe),u.disableDepthTestDistance=j.getValueOrUndefined(a._disableDepthTestDistance,e),p&&u._updateClamping()}return!0};Ng.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!l(n.label))return ut.FAILED;let i=n.label;return t.center=m.clone(y(i._clampedPosition,i.position),t.center),t.radius=0,ut.DONE};Ng.prototype.isDestroyed=function(){return!1};Ng.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Ng.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeLabel(e[t]);return ue(this)};Ng.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._label)&&l(r._position)&&s.set(r.id,new gle(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._label)&&l(r._position)?s.contains(r.id)||s.set(r.id,new gle(r)):(uW(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],uW(s.get(r.id),r,a),s.remove(r.id)};function uW(e,t,n){l(e)&&(e.label=void 0,n.removeLabel(t))}var O2=Ng;async function sXe(e,t,n){return await e._readyPromise,lXe(e,t,n)}function aXe(e,t){let n=e[0],i=n.terrainProvider.requestTileGeometry(n.x,n.y,n.level);if(!i)return!1;let o=i.then(uXe(n)).catch(fXe(n));return e.shift(),t.push(o),!0}function cXe(e){return new Promise(function(t){setTimeout(t,e)})}function fW(e,t){return e.length?aXe(e,t)?fW(e,t):cXe(100).then(()=>fW(e,t)):Promise.resolve()}function lXe(e,t,n){let i=e.tilingScheme,o,r=[],s={};for(o=0;o<n.length;++o){let c=i.positionToTileXY(n[o],t);if(!l(c))continue;let u=c.toString();if(!s.hasOwnProperty(u)){let f={x:c.x,y:c.y,level:t,tilingScheme:i,terrainProvider:e,positions:[]};s[u]=f,r.push(f)}s[u].positions.push(n[o])}let a=[];return fW(r,a).then(function(){return Promise.all(a).then(function(){return n})})}function yle(e,t,n){let i=t.interpolateHeight(n,e.longitude,e.latitude);return i===void 0?!1:(e.height=i,!0)}function uXe(e){let t=e.positions,n=e.tilingScheme.tileXYToRectangle(e.x,e.y,e.level);return function(i){let o=!1;for(let r=0;r<t.length;++r){let s=t[r];if(!yle(s,i,n)){o=!0;break}}return o?i.createMesh({tilingScheme:e.tilingScheme,x:e.x,y:e.y,level:e.level,throttle:!1}).then(function(){for(let r=0;r<t.length;++r){let s=t[r];yle(s,i,n)}}):Promise.resolve()}}function fXe(e){let t=e.positions;return function(){for(let n=0;n<t.length;++n){let i=t[n];i.height=void 0}}}var M2=sXe;var dW=new H;async function Ale(e,t){let n=[],i=[];await e._readyPromise;let o=e.availability,r=[];for(let a=0;a<t.length;++a){let c=t[a],u=o.computeMaximumLevelAtPosition(c);if(i[a]=u,u===0){e.tilingScheme.positionToTileXY(c,1,dW);let d=e.loadTileDataAvailability(dW.x,dW.y,1);l(d)&&r.push(d)}let f=n[u];l(f)||(n[u]=f=[]),f.push(c)}await Promise.all(r),await Promise.all(n.map(function(a,c){if(l(a))return M2(e,c,a)}));let s=[];for(let a=0;a<t.length;++a){let c=t[a];o.computeMaximumLevelAtPosition(c)!==i[a]&&s.push(c)}return s.length>0&&await Ale(e,s),t}var Fg=Ale;var dXe=1,mXe=0,hXe=!0,pXe=!0,_Xe=xn.ENABLED,gXe=qe.NONE,yXe=z.RED,AXe=0,xXe=z.WHITE,CXe=yc.HIGHLIGHT,TXe=.5,EXe=new H(1,1),bXe=new B,SXe=new B,xle=new z,Cle=new Array(4),wXe=new m;function Gm(e,t){t.collectionChanged.addEventListener(Gm.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._modelHash={},this._entitiesToVisualize=new Et,this._onCollectionChanged(t,t.values,[],[])}async function vXe(e,t,n,i){let o=e._primitives,r=e._modelHash;try{let s=await Sm.fromGltfAsync({url:n,incrementallyLoadTextures:i,scene:e._scene});if(e.isDestroyed()||!l(r[t.id]))return;s.id=t,o.add(s),r[t.id].modelPrimitive=s,s.errorEvent.addEventListener(a=>{l(r[t.id])&&(console.log(a),a.name!=="TextureError"&&s.incrementallyLoadTextures&&(r[t.id].loadFailed=!0))})}catch(s){if(e.isDestroyed()||!l(r[t.id]))return;console.log(s),r[t.id].loadFailed=!0}}Gm.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._modelHash,i=this._primitives;for(let o=0,r=t.length;o<r;o++){let s=t[o],a=s._model,c,u=n[s.id],f=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),d;if(f&&(d=s.computeModelMatrix(e,bXe),c=we.createIfNeeded(j.getValueOrUndefined(a._uri,e)),f=l(d)&&l(c)),!f){l(u)&&u.modelPrimitive&&(u.modelPrimitive.show=!1);continue}if(!l(u)||c.url!==u.url){l(u?.modelPrimitive)&&(i.removeAndDestroy(u.modelPrimitive),delete n[s.id]),u={modelPrimitive:void 0,url:c.url,animationsRunning:!1,nodeTransformationsScratch:{},articulationsScratch:{},loadFailed:!1,modelUpdated:!1,awaitingSampleTerrain:!1,clampedBoundingSphere:void 0,sampleTerrainFailed:!1},n[s.id]=u;let h=j.getValueOrDefault(a._incrementallyLoadTextures,e,hXe);vXe(this,s,c,h)}let p=u.modelPrimitive;if(!l(p))continue;p.show=!0,p.scale=j.getValueOrDefault(a._scale,e,dXe),p.minimumPixelSize=j.getValueOrDefault(a._minimumPixelSize,e,mXe),p.maximumScale=j.getValueOrUndefined(a._maximumScale,e),p.modelMatrix=B.clone(d,p.modelMatrix),p.shadows=j.getValueOrDefault(a._shadows,e,_Xe),p.heightReference=j.getValueOrDefault(a._heightReference,e,gXe),p.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e),p.silhouetteColor=j.getValueOrDefault(a._silhouetteColor,e,yXe,xle),p.silhouetteSize=j.getValueOrDefault(a._silhouetteSize,e,AXe),p.color=j.getValueOrDefault(a._color,e,xXe,xle),p.colorBlendMode=j.getValueOrDefault(a._colorBlendMode,e,CXe),p.colorBlendAmount=j.getValueOrDefault(a._colorBlendAmount,e,TXe),p.clippingPlanes=j.getValueOrUndefined(a._clippingPlanes,e),p.clampAnimations=j.getValueOrDefault(a._clampAnimations,e,pXe),p.imageBasedLighting.imageBasedLightingFactor=j.getValueOrDefault(a._imageBasedLightingFactor,e,EXe);let g=j.getValueOrUndefined(a._lightColor,e);if(l(g)&&(z.pack(g,Cle,0),g=m.unpack(Cle,0,wXe)),p.lightColor=g,p.customShader=j.getValueOrUndefined(a._customShader,e),n[s.id].modelUpdated=!0,p.ready){let h=j.getValueOrDefault(a._runAnimations,e,!0);u.animationsRunning!==h&&(h?p.activeAnimations.addAll({loop:Hl.REPEAT}):p.activeAnimations.removeAll(),u.animationsRunning=h);let A=j.getValueOrUndefined(a._nodeTransformations,e,u.nodeTransformationsScratch);if(l(A)){let T=Object.keys(A);for(let E=0,S=T.length;E<S;++E){let v=T[E],D=A[v];if(!l(D))continue;let O=p.getNode(v);if(!l(O))continue;let M=B.fromTranslationRotationScale(D,SXe);O.matrix=B.multiply(O.originalMatrix,M,M)}}let x=!1,C=j.getValueOrUndefined(a._articulations,e,u.articulationsScratch);if(l(C)){let T=Object.keys(C);for(let E=0,S=T.length;E<S;++E){let v=T[E],D=C[v];l(D)&&(x=!0,p.setArticulationStage(v,D))}}x&&p.applyArticulations()}}return!0};Gm.prototype.isDestroyed=function(){return!1};Gm.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Gm.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._modelHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)mW(this,e[i],t,n);return ue(this)};Gm._sampleTerrainMostDetailed=Fg;var xE=new m,Tle=new he;Gm.prototype.getBoundingSphere=function(e,t){let n=this._modelHash[e.id];if(!l(n))return ut.FAILED;if(n.loadFailed)return ut.FAILED;let i=n.modelPrimitive;if(!l(i)||!i.show)return ut.PENDING;if(!i.ready||!n.modelUpdated)return ut.PENDING;let r=this._scene.globe,s=l(r)?r.terrainProvider:void 0,a=i.heightReference!==qe.NONE;if(l(r)&&a){let c=r.ellipsoid;if(!s._ready)return ut.PENDING;let u=i.modelMatrix;xE.x=u[12],xE.y=u[13],xE.z=u[14];let f=c.cartesianToCartographic(xE);if(!l(s.availability)){i.heightReference===qe.CLAMP_TO_GROUND&&(f.height=0);let g=c.cartographicToCartesian(f);return ae.clone(i.boundingSphere,t),t.center=g,ut.DONE}let d=this._modelHash[e.id].clampedBoundingSphere;return this._modelHash[e.id].sampleTerrainFailed?(this._modelHash[e.id].sampleTerrainFailed=!1,ut.FAILED):l(d)?(ae.clone(d,t),this._modelHash[e.id].clampedBoundingSphere=void 0,ut.DONE):(d=new ae,this._modelHash[e.id].awaitingSampleTerrain||(he.clone(f,Tle),this._modelHash[e.id].awaitingSampleTerrain=!0,Gm._sampleTerrainMostDetailed(s,[Tle]).then(h=>{if(this.isDestroyed())return;this._modelHash[e.id].awaitingSampleTerrain=!1;let A=h[0];i.heightReference===qe.RELATIVE_TO_GROUND&&(A.height+=f.height),c.cartographicToCartesian(A,xE),ae.clone(i.boundingSphere,d),d.center=xE,this._modelHash[e.id].clampedBoundingSphere=ae.clone(d)}).catch(h=>{this.isDestroyed()||(this._modelHash[e.id].sampleTerrainFailed=!0,this._modelHash[e.id].awaitingSampleTerrain=!1)})),ut.PENDING)}return ae.clone(i.boundingSphere,t),ut.DONE};Gm.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._modelHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._model)&&l(r._position)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._model)&&l(r._position)?(DXe(r,a),s.set(r.id,r)):(mW(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],mW(this,r,a,c),s.remove(r.id)};function mW(e,t,n,i){let o=n[t.id];l(o)&&(i.removeAndDestroy(o.modelPrimitive),delete n[t.id])}function DXe(e,t){let n=t[e.id];l(n)&&(n.nodeTransformationsScratch={},n.articulationsScratch={})}var R2=Gm;function Ug(e){this._definitionChanged=new ge,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}Object.defineProperties(Ug.prototype,{isConstant:{get:function(){return j.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return l(this._value)?this._value.referenceFrame:no.FIXED}}});Ug.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,no.FIXED,t)};Ug.prototype.setValue=function(e){this._value!==e&&(this._value=e,l(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),l(e)&&(this._removeSubscription=e.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))};Ug.prototype.getValueInReferenceFrame=function(e,t,n){if(l(this._value))return n=this._value.getValueInReferenceFrame(e,t,n),l(n)?oe.WGS84.scaleToGeodeticSurface(n,n):void 0};Ug.prototype.equals=function(e){return this===e||e instanceof Ug&&this._value===e._value};Ug.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var Rp=Ug;var IXe=60,PXe=1,Sle=new bn,hW=new bn,pW=new bn;function Ele(e){this.entity=e,this.polyline=void 0,this.index=void 0,this.updater=void 0}function OXe(e,t,n,i,o,r,s,a,c){let u=a,f;f=e.getValueInReferenceFrame(t,r,c[u]),l(f)&&(c[u++]=f);let d=!l(o)||ee.lessThanOrEquals(o,t)||ee.greaterThanOrEquals(o,n),p=0,g=i.length,h=i[p],A=n,x=!1,C,T,E;for(;p<g;){if(!d&&ee.greaterThanOrEquals(h,o)&&(f=e.getValueInReferenceFrame(o,r,c[u]),l(f)&&(c[u++]=f),d=!0),ee.greaterThan(h,t)&&ee.lessThan(h,A)&&!h.equals(o)&&(f=e.getValueInReferenceFrame(h,r,c[u]),l(f)&&(c[u++]=f)),p<g-1){if(s>0&&!x){let S=i[p+1],v=ee.secondsDifference(S,h);x=v>s,x&&(C=Math.ceil(v/s),T=0,E=v/Math.max(C,2),C=Math.max(C-1,1))}if(x&&T<C){h=ee.addSeconds(h,E,new ee),T++;continue}}x=!1,p++,h=i[p]}return f=e.getValueInReferenceFrame(n,r,c[u]),l(f)&&(c[u++]=f),u}function MXe(e,t,n,i,o,r,s,a){let c,u=0,f=s,d=t,p=Math.max(r,60),g=!l(i)||ee.lessThanOrEquals(i,t)||ee.greaterThanOrEquals(i,n);for(;ee.lessThan(d,n);)!g&&ee.greaterThanOrEquals(d,i)&&(g=!0,c=e.getValueInReferenceFrame(i,o,a[f]),l(c)&&(a[f]=c,f++)),c=e.getValueInReferenceFrame(d,o,a[f]),l(c)&&(a[f]=c,f++),u++,d=ee.addSeconds(t,p*u,new ee);return c=e.getValueInReferenceFrame(n,o,a[f]),l(c)&&(a[f]=c,f++),f}function RXe(e,t,n,i,o,r,s,a){pW.start=t,pW.stop=n;let c=s,u=e.intervals;for(let f=0;f<u.length;f++){let d=u.get(f);if(!bn.intersect(d,pW,Sle).isEmpty){let p=d.start;d.isStartIncluded||(d.isStopIncluded?p=d.stop:p=ee.addSeconds(d.start,ee.secondsDifference(d.stop,d.start)/2,new ee));let g=e.getValueInReferenceFrame(p,o,a[c]);l(g)&&(a[c]=g,c++)}}return c}function BXe(e,t,n,i,o,r,s,a){let c=e.getValueInReferenceFrame(t,o,a[s]);return l(c)&&(a[s++]=c),s}function LXe(e,t,n,i,o,r,s,a){hW.start=t,hW.stop=n;let c=s,u=e.intervals;for(let f=0;f<u.length;f++){let d=u.get(f);if(!bn.intersect(d,hW,Sle).isEmpty){let p=d.start,g=d.stop,h=t;ee.greaterThan(p,h)&&(h=p);let A=n;ee.lessThan(g,A)&&(A=g),c=wle(d.data,h,A,i,o,r,c,a)}}return c}function wle(e,t,n,i,o,r,s,a){for(;e instanceof vg;)e=e.resolvedProperty;if(e instanceof ma){let c=e._property._times;s=OXe(e,t,n,c,i,o,r,s,a)}else e instanceof da?s=LXe(e,t,n,i,o,r,s,a):e instanceof Ig?s=RXe(e,t,n,i,o,r,s,a):e instanceof Xc||e instanceof Rp&&j.isConstant(e)?s=BXe(e,t,n,i,o,r,s,a):s=MXe(e,t,n,i,o,r,s,a);return s}function vle(e,t,n,i,o,r,s){l(s)||(s=[]);let a=wle(e,t,n,i,o,r,0,s);return s.length=a,s}var ble=new Z;function Nv(e,t){this._unusedIndexes=[],this._polylineCollection=new Im,this._scene=e,this._referenceFrame=t,e.primitives.add(this._polylineCollection)}Nv.prototype.update=function(e){if(this._referenceFrame===no.INERTIAL){let t=Rt.computeIcrfToFixedMatrix(e,ble);l(t)||(t=Rt.computeTemeToPseudoFixedMatrix(e,ble)),B.fromRotationTranslation(t,m.ZERO,this._polylineCollection.modelMatrix)}};Nv.prototype.updateObject=function(e,t){let n=t.entity,i=n._path,o=n._position,r,s,a=i._show,c=t.polyline,u=n.isShowing&&n.isAvailable(e)&&(!l(a)||a.getValue(e));if(u){let d=j.getValueOrUndefined(i._leadTime,e),p=j.getValueOrUndefined(i._trailTime,e),g=n._availability,h=l(g),A=l(d),x=l(p);if(u=h||A&&x,u){if(x&&(r=ee.addSeconds(e,-p,new ee)),A&&(s=ee.addSeconds(e,d,new ee)),h){let C=g.start,T=g.stop;(!x||ee.greaterThan(C,r))&&(r=C),(!A||ee.lessThan(T,s))&&(s=T)}u=ee.lessThan(r,s)}}if(!u){l(c)&&(this._unusedIndexes.push(t.index),t.polyline=void 0,c.show=!1,t.index=void 0);return}if(!l(c)){let d=this._unusedIndexes;if(d.length>0){let g=d.pop();c=this._polylineCollection.get(g),t.index=g}else t.index=this._polylineCollection.length,c=this._polylineCollection.add();c.id=n,t.polyline=c}let f=j.getValueOrDefault(i._resolution,e,IXe);c.show=!0,c.positions=vle(o,r,s,e,this._referenceFrame,f,c.positions.slice()),c.material=$o.getValue(e,i._material,c.material),c.width=j.getValueOrDefault(i._width,e,PXe),c.distanceDisplayCondition=j.getValueOrUndefined(i._distanceDisplayCondition,e,c.distanceDisplayCondition)};Nv.prototype.removeObject=function(e){let t=e.polyline;l(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0)};Nv.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),ue(this)};function Vg(e,t){t.collectionChanged.addEventListener(Vg.prototype._onCollectionChanged,this),this._scene=e,this._updaters={},this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}Vg.prototype.update=function(e){let t=this._updaters;for(let i in t)t.hasOwnProperty(i)&&t[i].update(e);let n=this._items.values;if(n.length===0&&l(this._updaters)&&Object.keys(this._updaters).length>0){for(let i in t)t.hasOwnProperty(i)&&t[i].destroy();this._updaters={}}for(let i=0,o=n.length;i<o;i++){let r=n[i],a=r.entity._position,c=r.updater,u=no.FIXED;this._scene.mode===ne.SCENE3D&&(u=a.referenceFrame);let f=this._updaters[u];if(c===f&&l(f)){f.updateObject(e,r);continue}l(c)&&c.removeObject(r),l(f)||(f=new Nv(this._scene,u),f.update(e),this._updaters[u]=f),r.updater=f,l(f)&&f.updateObject(e,r)}return!0};Vg.prototype.isDestroyed=function(){return!1};Vg.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Vg.prototype._onCollectionChanged,this);let e=this._updaters;for(let t in e)e.hasOwnProperty(t)&&e[t].destroy();return ue(this)};Vg.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s,a=this._items;for(o=t.length-1;o>-1;o--)r=t[o],l(r._path)&&l(r._position)&&a.set(r.id,new Ele(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._path)&&l(r._position)?a.contains(r.id)||a.set(r.id,new Ele(r)):(s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id)));for(o=n.length-1;o>-1;o--)r=n[o],s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id))};Vg._subSample=vle;var B2=Vg;var Dle=z.WHITE,Ile=z.BLACK,Ple=0,Ole=1,Mle=0,Rle=new z,NXe=new m,Ble=new z,Lle=new Lt,Nle=new Lt,Fle=new Dt;function Ule(e){this.entity=e,this.pointPrimitive=void 0,this.billboard=void 0,this.color=void 0,this.outlineColor=void 0,this.pixelSize=void 0,this.outlineWidth=void 0}function kg(e,t){t.collectionChanged.addEventListener(kg.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}kg.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._point,c=r.pointPrimitive,u=r.billboard,f=j.getValueOrDefault(a._heightReference,e,qe.NONE),d=s.isShowing&&s.isAvailable(e)&&j.getValueOrDefault(a._show,e,!0),p;if(d&&(p=j.getValueOrUndefined(s._position,e,NXe),d=l(p)),!d){Fv(r,s,n);continue}j.isConstant(s._position)||(n._clusterDirty=!0);let g=!1,h=!1;if(f!==qe.NONE&&!l(u)?(l(c)&&(Fv(r,s,n),c=void 0),u=n.getBillboard(s),u.id=s,u.image=void 0,r.billboard=u,g=!0,h=m.equals(u.position,p)&&u.heightReference===f):f===qe.NONE&&!l(c)&&(l(u)&&(Fv(r,s,n),u=void 0),c=n.getPoint(s),c.id=s,r.pointPrimitive=c),l(c))c.show=!0,c.position=p,c.scaleByDistance=j.getValueOrUndefined(a._scaleByDistance,e,Lle),c.translucencyByDistance=j.getValueOrUndefined(a._translucencyByDistance,e,Nle),c.color=j.getValueOrDefault(a._color,e,Dle,Rle),c.outlineColor=j.getValueOrDefault(a._outlineColor,e,Ile,Ble),c.outlineWidth=j.getValueOrDefault(a._outlineWidth,e,Ple),c.pixelSize=j.getValueOrDefault(a._pixelSize,e,Ole),c.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e,Fle),c.disableDepthTestDistance=j.getValueOrDefault(a._disableDepthTestDistance,e,Mle);else if(l(u)){u.show=!0,u.position=p,u.scaleByDistance=j.getValueOrUndefined(a._scaleByDistance,e,Lle),u.translucencyByDistance=j.getValueOrUndefined(a._translucencyByDistance,e,Nle),u.distanceDisplayCondition=j.getValueOrUndefined(a._distanceDisplayCondition,e,Fle),u.disableDepthTestDistance=j.getValueOrDefault(a._disableDepthTestDistance,e,Mle),u.heightReference=f;let A=j.getValueOrDefault(a._color,e,Dle,Rle),x=j.getValueOrDefault(a._outlineColor,e,Ile,Ble),C=Math.round(j.getValueOrDefault(a._outlineWidth,e,Ple)),T=Math.max(1,Math.round(j.getValueOrDefault(a._pixelSize,e,Ole)));if(C>0?(u.scale=1,g=g||C!==r.outlineWidth||T!==r.pixelSize||!z.equals(A,r.color)||!z.equals(x,r.outlineColor)):(u.scale=T/50,T=50,g=g||C!==r.outlineWidth||!z.equals(A,r.color)||!z.equals(x,r.outlineColor)),g){r.color=z.clone(A,r.color),r.outlineColor=z.clone(x,r.outlineColor),r.pixelSize=T,r.outlineWidth=C;let E=A.alpha,S=A.toCssColorString(),v=x.toCssColorString(),D=JSON.stringify([S,T,v,C]);u.setImage(D,rT(E,S,v,C,T))}h&&u._updateClamping()}}return!0};kg.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!(l(n.pointPrimitive)||l(n.billboard)))return ut.FAILED;if(l(n.pointPrimitive))t.center=m.clone(n.pointPrimitive.position,t.center);else{let i=n.billboard;if(!l(i._clampedPosition))return ut.PENDING;t.center=m.clone(i._clampedPosition,t.center)}return t.radius=0,ut.DONE};kg.prototype.isDestroyed=function(){return!1};kg.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(kg.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removePoint(e[t]);return ue(this)};kg.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._point)&&l(r._position)&&s.set(r.id,new Ule(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._point)&&l(r._position)?s.contains(r.id)||s.set(r.id,new Ule(r)):(Fv(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],Fv(s.get(r.id),r,a),s.remove(r.id)};function Fv(e,t,n){if(l(e)){let i=e.pointPrimitive;if(l(i)){e.pointPrimitive=void 0,n.removePoint(t);return}let o=e.billboard;l(o)&&(e.billboard=void 0,n.removeBillboard(t))}}var L2=kg;var Gle=[];function FXe(e,t,n,i,o){let r=Gle;r.length=o;let s,a=n.red,c=n.green,u=n.blue,f=n.alpha,d=i.red,p=i.green,g=i.blue,h=i.alpha;if(z.equals(n,i)){for(s=0;s<o;s++)r[s]=z.clone(n);return r}let A=(d-a)/o,x=(p-c)/o,C=(g-u)/o,T=(h-f)/o;for(s=0;s<o;s++)r[s]=new z(a+s*A,c+s*x,u+s*C,f+s*T);return r}function Uv(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.width,1),o=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._width=i,this._colorsPerVertex=o,this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._arcType=y(e.arcType,Zt.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=oe.clone(y(e.ellipsoid,oe.WGS84)),this._workerName="createPolylineGeometry";let r=1+t.length*m.packedLength;r+=l(n)?1+n.length*z.packedLength:1,this.packedLength=r+oe.packedLength+Pe.packedLength+4}Uv.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=m.packedLength)m.pack(o[i],t,n);let s=e._colors;for(r=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=z.packedLength)z.pack(s[i],t,n);return oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._width,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};var Wle=oe.clone(oe.UNIT_SPHERE),jle=new Pe,_A={positions:void 0,colors:void 0,ellipsoid:Wle,vertexFormat:jle,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};Uv.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=m.packedLength)r[i]=m.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=z.packedLength)s[i]=z.unpack(e,t);let a=oe.unpack(e,t,Wle);t+=oe.packedLength;let c=Pe.unpack(e,t,jle);t+=Pe.packedLength;let u=e[t++],f=e[t++]===1,d=e[t++],p=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=oe.clone(a,n._ellipsoid),n._vertexFormat=Pe.clone(c,n._vertexFormat),n._width=u,n._colorsPerVertex=f,n._arcType=d,n._granularity=p,n):(_A.positions=r,_A.colors=s,_A.width=u,_A.colorsPerVertex=f,_A.arcType=d,_A.granularity=p,new Uv(_A))};var Vle=new m,kle=new m,zle=new m,Hle=new m;Uv.createGeometry=function(e){let t=e._width,n=e._vertexFormat,i=e._colors,o=e._colorsPerVertex,r=e._arcType,s=e._granularity,a=e._ellipsoid,c,u,f,d=[],p=xo(e._positions,m.equalsEpsilon,!1,d);if(l(i)&&d.length>0){let R=0,F=d[0];i=i.filter(function(k,V){let G=!1;return o?G=V===F||V===0&&F===1:G=V+1===F,G?(R++,F=d[R],!1):!0})}let g=p.length;if(g<2||t<=0)return;if(r===Zt.GEODESIC||r===Zt.RHUMB){let R,F;r===Zt.GEODESIC?(R=P.chordLength(s,a.maximumRadius),F=Mi.numberOfPoints):(R=s,F=Mi.numberOfPointsRhumbLine);let k=Mi.extractHeights(p,a);if(l(i)){let V=1;for(c=0;c<g-1;++c)V+=F(p[c],p[c+1],R);let G=new Array(V),U=0;for(c=0;c<g-1;++c){let q=p[c],Y=p[c+1],Q=i[c],W=F(q,Y,R);if(o&&c<V){let K=i[c+1],J=FXe(q,Y,Q,K,W),_e=J.length;for(u=0;u<_e;++u)G[U++]=J[u]}else for(u=0;u<W;++u)G[U++]=z.clone(Q)}G[U]=z.clone(i[i.length-1]),i=G,Gle.length=0}r===Zt.GEODESIC?p=Mi.generateCartesianArc({positions:p,minDistance:R,ellipsoid:a,height:k}):p=Mi.generateCartesianRhumbArc({positions:p,granularity:R,ellipsoid:a,height:k})}g=p.length;let h=g*4-4,A=new Float64Array(h*3),x=new Float64Array(h*3),C=new Float64Array(h*3),T=new Float32Array(h*2),E=n.st?new Float32Array(h*2):void 0,S=l(i)?new Uint8Array(h*4):void 0,v=0,D=0,O=0,M=0,L;for(u=0;u<g;++u){u===0?(L=Vle,m.subtract(p[0],p[1],L),m.add(p[0],L,L)):L=p[u-1],m.clone(L,zle),m.clone(p[u],kle),u===g-1?(L=Vle,m.subtract(p[g-1],p[g-2],L),m.add(p[g-1],L,L)):L=p[u+1],m.clone(L,Hle);let R,F;l(S)&&(u!==0&&!o?R=i[u-1]:R=i[u],u!==g-1&&(F=i[u]));let k=u===0?2:0,V=u===g-1?2:4;for(f=k;f<V;++f){m.pack(kle,A,v),m.pack(zle,x,v),m.pack(Hle,C,v),v+=3;let G=f-2<0?-1:1;if(T[D++]=2*(f%2)-1,T[D++]=G*t,n.st&&(E[O++]=u/(g-1),E[O++]=Math.max(T[D-2],0)),l(S)){let U=f<2?R:F;S[M++]=z.floatToByte(U.red),S[M++]=z.floatToByte(U.green),S[M++]=z.floatToByte(U.blue),S[M++]=z.floatToByte(U.alpha)}}}let N=new _n;N.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:A}),N.prevPosition=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:x}),N.nextPosition=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:C}),N.expandAndWidth=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:T}),n.st&&(N.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:E})),l(S)&&(N.color=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:S,normalize:!0}));let _=Ve.createTypedArray(h,g*6-6),b=0,w=0,I=g-1;for(u=0;u<I;++u)_[w++]=b,_[w++]=b+2,_[w++]=b+1,_[w++]=b+1,_[w++]=b+2,_[w++]=b+3,b+=4;return new dt({attributes:N,indices:_,primitiveType:Le.TRIANGLES,boundingSphere:ae.fromPoints(p),geometryType:Mf.POLYLINES})};var zg=Uv;var UXe=new $n(0),N2={},Yle=new z,VXe=new Ut(z.WHITE),kXe=new $n(!0),zXe=new $n(xn.DISABLED),HXe=new $n(new Dt),GXe=new $n(zn.BOTH);function WXe(){this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function jXe(){this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function xd(e,t){this._entity=e,this._scene=t,this._entitySubscription=e.definitionChanged.addEventListener(xd.prototype._onEntityPropertyChanged,this),this._fillEnabled=!1,this._dynamic=!1,this._geometryChanged=new ge,this._showProperty=void 0,this._materialProperty=void 0,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._depthFailMaterialProperty=void 0,this._geometryOptions=new WXe,this._groundGeometryOptions=new jXe,this._id=`polyline-${e.id}`,this._clampToGround=!1,this._supportsPolylinesOnTerrain=er.supportsPolylinesOnTerrain(t),this._zIndex=0,this._onEntityPropertyChanged(e,"polyline",e.polyline,void 0)}Object.defineProperties(xd.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!l(this._entity.availability)&&j.isConstant(this._showProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},depthFailMaterialProperty:{get:function(){return this._depthFailMaterialProperty}},outlineEnabled:{value:!1},hasConstantOutline:{value:!0},outlineColorProperty:{value:void 0},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{value:!1},geometryChanged:{get:function(){return this._geometryChanged}},arcType:{get:function(){return this._arcType}},clampToGround:{get:function(){return this._clampToGround&&this._supportsPolylinesOnTerrain}},zIndex:{get:function(){return this._zIndex}}});xd.prototype.isOutlineVisible=function(e){return!1};xd.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e);return y(n,!1)};xd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new An(n&&t.isShowing&&this._showProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=kn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r},a;return this._materialProperty instanceof Ut&&(l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Yle)),l(a)||(a=z.WHITE),s.color=Vt.fromColor(a)),this.clampToGround?new Tt({id:t,geometry:new aC(this._groundGeometryOptions),attributes:s}):(l(this._depthFailMaterialProperty)&&this._depthFailMaterialProperty instanceof Ut&&(l(this._depthFailMaterialProperty.color)&&(this._depthFailMaterialProperty.color.isConstant||n)&&(a=this._depthFailMaterialProperty.color.getValue(e,Yle)),l(a)||(a=z.WHITE),s.depthFailColor=Vt.fromColor(a)),new Tt({id:t,geometry:new zg(this._geometryOptions),attributes:s}))};xd.prototype.createOutlineGeometryInstance=function(e){};xd.prototype.isDestroyed=function(){return!1};xd.prototype.destroy=function(){this._entitySubscription(),ue(this)};xd.prototype._onEntityPropertyChanged=function(e,t,n,i){if(!(t==="availability"||t==="polyline"))return;let o=this._entity.polyline;if(!l(o)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.positions,s=o.show;if(l(s)&&s.isConstant&&!s.getValue(Ge.MINIMUM_VALUE)||!l(r)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let a=o.zIndex,c=y(o.material,VXe),u=c instanceof Ut;this._materialProperty=c,this._depthFailMaterialProperty=o.depthFailMaterial,this._showProperty=y(s,kXe),this._shadowsProperty=y(o.shadows,zXe),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,HXe),this._classificationTypeProperty=y(o.classificationType,GXe),this._fillEnabled=!0,this._zIndex=y(a,UXe);let f=o.width,d=o.arcType,p=o.clampToGround,g=o.granularity;if(!r.isConstant||!j.isConstant(f)||!j.isConstant(d)||!j.isConstant(g)||!j.isConstant(p)||!j.isConstant(a))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{let h=this._geometryOptions,A=r.getValue(Ge.MINIMUM_VALUE,h.positions);if(!l(A)||A.length<2){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let x;u&&(!l(this._depthFailMaterialProperty)||this._depthFailMaterialProperty instanceof Ut)?x=Wr.VERTEX_FORMAT:x=aa.VERTEX_FORMAT,h.vertexFormat=x,h.positions=A,h.width=l(f)?f.getValue(Ge.MINIMUM_VALUE):void 0,h.arcType=l(d)?d.getValue(Ge.MINIMUM_VALUE):void 0,h.granularity=l(g)?g.getValue(Ge.MINIMUM_VALUE):void 0;let C=this._groundGeometryOptions;C.positions=A,C.width=h.width,C.arcType=h.arcType,C.granularity=h.granularity,this._clampToGround=l(p)?p.getValue(Ge.MINIMUM_VALUE):!1,!this._clampToGround&&l(a)&&Mt("Entity polylines must have clampToGround: true when using zIndex. zIndex will be ignored."),this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};xd.prototype.createDynamicUpdater=function(e,t){return new Vv(e,t,this)};var CE={positions:void 0,granularity:void 0,height:void 0,ellipsoid:void 0};function Vv(e,t,n){this._line=void 0,this._primitives=e,this._groundPrimitives=t,this._groundPolylinePrimitive=void 0,this._material=void 0,this._geometryUpdater=n,this._positions=[]}function qle(e){if(l(e._line))return e._line;let t=e._geometryUpdater._scene.id,n=N2[t],i=e._primitives;!l(n)||n.isDestroyed()?(n=new Im,N2[t]=n,i.add(n)):i.contains(n)||i.add(n);let o=n.add();return o.id=e._geometryUpdater._entity,e._line=o,o}Vv.prototype.update=function(e){let t=this._geometryUpdater,n=t._entity,i=n.polyline,o=i.positions,r=j.getValueOrUndefined(o,e,this._positions);t._clampToGround=j.getValueOrDefault(i._clampToGround,e,!1),t._groundGeometryOptions.positions=r,t._groundGeometryOptions.width=j.getValueOrDefault(i._width,e,1),t._groundGeometryOptions.arcType=j.getValueOrDefault(i._arcType,e,Zt.GEODESIC),t._groundGeometryOptions.granularity=j.getValueOrDefault(i._granularity,e,9999);let s=this._groundPrimitives;if(l(this._groundPolylinePrimitive)&&(s.remove(this._groundPolylinePrimitive),this._groundPolylinePrimitive=void 0),t.clampToGround){if(!n.isShowing||!n.isAvailable(e)||!j.getValueOrDefault(i._show,e,!0)||!l(r)||r.length<2)return;let f=t.fillMaterialProperty,d;if(f instanceof Ut)d=new Wr;else{let p=$o.getValue(e,f,this._material);d=new aa({material:p,translucent:p.isTranslucent()}),this._material=p}this._groundPolylinePrimitive=s.add(new sm({geometryInstances:t.createFillGeometryInstance(e),appearance:d,classificationType:t.classificationTypeProperty.getValue(e),asynchronous:!1}),j.getValueOrUndefined(t.zIndex,e)),l(this._line)&&(this._line.show=!1);return}let a=qle(this);if(!n.isShowing||!n.isAvailable(e)||!j.getValueOrDefault(i._show,e,!0)){a.show=!1;return}if(!l(r)||r.length<2){a.show=!1;return}let c=Zt.GEODESIC;c=j.getValueOrDefault(i._arcType,e,c);let u=t._scene.globe;c!==Zt.NONE&&l(u)&&(CE.ellipsoid=u.ellipsoid,CE.positions=r,CE.granularity=j.getValueOrUndefined(i._granularity,e),CE.height=Mi.extractHeights(r,u.ellipsoid),c===Zt.GEODESIC?r=Mi.generateCartesianArc(CE):r=Mi.generateCartesianRhumbArc(CE)),a.show=!0,a.positions=r.slice(),a.material=$o.getValue(e,t.fillMaterialProperty,a.material),a.width=j.getValueOrDefault(i._width,e,1),a.distanceDisplayCondition=j.getValueOrUndefined(i._distanceDisplayCondition,e,a.distanceDisplayCondition)};Vv.prototype.getBoundingSphere=function(e){if(this._geometryUpdater.clampToGround){let t=this._groundPolylinePrimitive;if(l(t)&&t.show&&t.ready){let n=t.getGeometryInstanceAttributes(this._geometryUpdater._entity);if(l(n)&&l(n.boundingSphere))return ae.clone(n.boundingSphere,e),ut.DONE}return l(t)&&!t.ready?ut.PENDING:ut.DONE}else{let t=qle(this);if(t.show&&t.positions.length>0)return ae.fromPoints(t.positions,e),ut.DONE}return ut.FAILED};Vv.prototype.isDestroyed=function(){return!1};Vv.prototype.destroy=function(){let t=this._geometryUpdater._scene.id,n=N2[t];l(n)&&(n.remove(this._line),n.length===0&&(this._primitives.removeAndDestroy(n),delete N2[t])),l(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),ue(this)};var F2=xd;var YXe=new z,qXe=new Dt,XXe=new Dt;function Cd(e,t,n,i,o){let r;n instanceof Ut?r=Wr:r=aa,this.orderedGroundPrimitives=e,this.classificationType=t,this.appearanceType=r,this.materialProperty=n,this.updaters=new Et,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.material=void 0,this.updatersWithAttributes=new Et,this.attributes=new Et,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(Cd.prototype.onMaterialChanged,this),this.subscriptions=new Et,this.showsUpdated=new Et,this.zIndex=i,this._asynchronous=o}Cd.prototype.onMaterialChanged=function(){this.invalidated=!0};Cd.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Ut&&t instanceof Ut?!0:l(t)&&t.equals(n)};Cd.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!j.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};Cd.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t)),!0}return!1};Cd.prototype.update=function(e){let t=!0,n=this.primitive,i=this.orderedGroundPrimitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),n=new sm({show:!1,asynchronous:this._asynchronous,geometryInstances:o.slice(),appearance:new this.appearanceType,classificationType:this.classificationType}),this.appearanceType===aa&&(this.material=$o.getValue(e,this.materialProperty,this.material),n.appearance.material=this.material),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===aa&&(this.material=$o.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!c.fillMaterialProperty.isConstant){let A=c.fillMaterialProperty.color,x=j.getValueOrDefault(A,e,z.WHITE,YXe);z.equals(d._lastColor,x)||(d._lastColor=z.clone(x,d._lastColor),d.color=Vt.toValue(x,d.color))}let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=An.toValue(p,d.show));let h=c.distanceDisplayConditionProperty;if(!j.isConstant(h)){let A=j.getValueOrDefault(h,e,XXe,qXe);Dt.equals(A,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Dt.clone(A,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(A,d.distanceDisplayCondition))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};Cd.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=An.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};Cd.prototype.contains=function(e){return this.updaters.contains(e.id)};Cd.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ut.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ut.FAILED:(i.boundingSphere.clone(t),ut.DONE)};Cd.prototype.destroy=function(){let e=this.primitive,t=this.orderedGroundPrimitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function TE(e,t,n){this._items=[],this._orderedGroundPrimitives=e,this._classificationType=t,this._asynchronous=y(n,!0)}TE.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=j.getValueOrDefault(t.zIndex,0);for(let a=0;a<i;++a){let c=n[a];if(c.isMaterial(t)&&c.zIndex===r){c.add(e,t,o);return}}let s=new Cd(this._orderedGroundPrimitives,this._classificationType,t.fillMaterialProperty,r,this._asynchronous);s.add(e,t,o),n.push(s)};TE.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};TE.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};TE.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return ut.FAILED};TE.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var U2=TE;var KXe=[];function Xle(e,t){let n=e._batches,i=n.length;for(let o=0;o<i;o++)n[o].remove(t)}function Kle(e,t,n){if(n.isDynamic){e._dynamicBatch.add(t,n);return}if(n.clampToGround&&n.fillEnabled){let s=n.classificationTypeProperty.getValue(t);e._groundBatches[s].add(t,n);return}let i;n.fillEnabled&&(i=n.shadowsProperty.getValue(t));let o=0;l(n.depthFailMaterialProperty)&&(o=n.depthFailMaterialProperty instanceof Ut?1:2);let r;l(i)&&(r=i+o*xn.NUMBER_OF_SHADOW_MODES),n.fillEnabled&&(n.fillMaterialProperty instanceof Ut?e._colorBatches[r].add(t,n):e._materialBatches[r].add(t,n))}function Wm(e,t,n,i){i=y(i,e.groundPrimitives),n=y(n,e.primitives),this._scene=e,this._primitives=n,this._entityCollection=void 0,this._addedObjects=new Et,this._removedObjects=new Et,this._changedObjects=new Et;let o,r=xn.NUMBER_OF_SHADOW_MODES;for(this._colorBatches=new Array(r*3),this._materialBatches=new Array(r*3),o=0;o<r;++o)this._colorBatches[o]=new _d(n,Wr,void 0,!1,o),this._materialBatches[o]=new yd(n,aa,void 0,!1,o),this._colorBatches[o+r]=new _d(n,Wr,Wr,!1,o),this._materialBatches[o+r]=new yd(n,aa,Wr,!1,o),this._colorBatches[o+r*2]=new _d(n,Wr,aa,!1,o),this._materialBatches[o+r*2]=new yd(n,aa,aa,!1,o);this._dynamicBatch=new KT(n,i);let s=zn.NUMBER_OF_CLASSIFICATION_TYPES;for(this._groundBatches=new Array(s),o=0;o<s;++o)this._groundBatches[o]=new U2(i,o);this._batches=this._colorBatches.concat(this._materialBatches,this._dynamicBatch,this._groundBatches),this._subscriptions=new Et,this._updaters=new Et,this._entityCollection=t,t.collectionChanged.addEventListener(Wm.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,KXe)}Wm.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,o=i.values,r=this._changedObjects,s=r.values,a,c,u,f;for(a=s.length-1;a>-1;a--)c=s[a],u=c.id,f=this._updaters.get(u),f.entity===c?(Xle(this,f),Kle(this,e,f)):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],u=c.id,f=this._updaters.get(u),Xle(this,f),f.destroy(),this._updaters.remove(u),this._subscriptions.get(u)(),this._subscriptions.remove(u);for(a=n.length-1;a>-1;a--)c=n[a],u=c.id,f=new F2(c,this._scene),this._updaters.set(u,f),Kle(this,e,f),this._subscriptions.set(u,f.geometryChanged.addEventListener(Wm._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let d=!0,p=this._batches,g=p.length;for(a=0;a<g;a++)d=p[a].update(e)&&d;return d};var JXe=[],ZXe=new ae;Wm.prototype.getBoundingSphere=function(e,t){let n=JXe,i=ZXe,o=0,r=ut.DONE,s=this._batches,a=s.length,c=this._updaters.get(e.id);for(let u=0;u<a;u++){if(r=s[u].getBoundingSphere(c,i),r===ut.PENDING)return ut.PENDING;r===ut.DONE&&(n[o]=ae.clone(i,n[o]),o++)}return o===0?ut.FAILED:(n.length=o,ae.fromBoundingSpheres(n,t),ut.DONE)};Wm.prototype.isDestroyed=function(){return!1};Wm.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Wm.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();return this._subscriptions.removeAll(),ue(this)};Wm._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!l(t.get(o))&&!l(n.get(o))&&n.set(o,i)};Wm.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,o=this._removedObjects,r=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var V2=Wm;function af(e){qc.initializeTerrainHeights(),sm.initializeTerrainHeights();let t=e.scene,n=e.dataSourceCollection;this._eventHelper=new Mr,this._eventHelper.add(n.dataSourceAdded,this._onDataSourceAdded,this),this._eventHelper.add(n.dataSourceRemoved,this._onDataSourceRemoved,this),this._eventHelper.add(n.dataSourceMoved,this._onDataSourceMoved,this),this._eventHelper.add(t.postRender,this._postRender,this),this._dataSourceCollection=n,this._scene=t,this._visualizersCallback=y(e.visualizersCallback,af.defaultVisualizersCallback);let i=!1,o=new Xl,r=new Xl;n.length>0&&(t.primitives.add(o),t.groundPrimitives.add(r),i=!0),this._primitives=o,this._groundPrimitives=r;for(let u=0,f=n.length;u<f;u++)this._onDataSourceAdded(n,n.get(u));let s=new LF;this._onDataSourceAdded(void 0,s),this._defaultDataSource=s;let a,c;if(!i){let u=this,f=function(){t.primitives.add(o),t.groundPrimitives.add(r),a(),c(),u._removeDefaultDataSourceListener=void 0,u._removeDataSourceCollectionListener=void 0};a=s.entities.collectionChanged.addEventListener(f),c=n.dataSourceAdded.addEventListener(f)}this._removeDefaultDataSourceListener=a,this._removeDataSourceCollectionListener=c,this._ready=!1}af.defaultVisualizersCallback=function(e,t,n){let i=n.entities;return[new bM(t,i),new P2(e,i,n._primitives,n._groundPrimitives),new O2(t,i),new R2(e,i),new xF(e,i),new L2(t,i),new B2(e,i),new V2(e,i,n._primitives,n._groundPrimitives)]};Object.defineProperties(af.prototype,{scene:{get:function(){return this._scene}},dataSources:{get:function(){return this._dataSourceCollection}},defaultDataSource:{get:function(){return this._defaultDataSource}},ready:{get:function(){return this._ready}}});af.prototype.isDestroyed=function(){return!1};af.prototype.destroy=function(){this._eventHelper.removeAll();let e=this._dataSourceCollection;for(let t=0,n=e.length;t<n;++t)this._onDataSourceRemoved(this._dataSourceCollection,e.get(t));return this._onDataSourceRemoved(void 0,this._defaultDataSource),l(this._removeDefaultDataSourceListener)?(this._removeDefaultDataSourceListener(),this._removeDataSourceCollectionListener()):(this._scene.primitives.remove(this._primitives),this._scene.groundPrimitives.remove(this._groundPrimitives)),ue(this)};af.prototype.update=function(e){if(!si.initialized)return this._ready=!1,!1;let t=!0,n,i,o,r,s=this._dataSourceCollection,a=s.length;for(n=0;n<a;n++){let c=s.get(n);for(l(c.update)&&(t=c.update(e)&&t),o=c._visualizers,r=o.length,i=0;i<r;i++)t=o[i].update(e)&&t}for(o=this._defaultDataSource._visualizers,r=o.length,i=0;i<r;i++)t=o[i].update(e)&&t;return this._ready=t,t};af.prototype._postRender=function(){let e=this._scene.frameState,t=this._dataSourceCollection,n=t.length;for(let i=0;i<n;i++){let o=t.get(i),r=o.credit;l(r)&&e.creditDisplay.addCreditToNextFrame(r);let s=o._resourceCredits;if(l(s)){let a=s.length;for(let c=0;c<a;c++)e.creditDisplay.addCreditToNextFrame(s[c])}}};var QXe=[],$Xe=new ae;af.prototype.getBoundingSphere=function(e,t,n){if(!this._ready)return ut.PENDING;let i,o,r=this._defaultDataSource;if(!r.entities.contains(e)){r=void 0;let p=this._dataSourceCollection;for(o=p.length,i=0;i<o;i++){let g=p.get(i);if(g.entities.contains(e)){r=g;break}}}if(!l(r))return ut.FAILED;let s=QXe,a=$Xe,c=0,u=ut.DONE,f=r._visualizers,d=f.length;for(i=0;i<d;i++){let p=f[i];if(l(p.getBoundingSphere)){if(u=f[i].getBoundingSphere(e,a),!t&&u===ut.PENDING)return ut.PENDING;u===ut.DONE&&(s[c]=ae.clone(a,s[c]),c++)}}return c===0?ut.FAILED:(s.length=c,ae.fromBoundingSpheres(s,n),ut.DONE)};af.prototype._onDataSourceAdded=function(e,t){let n=this._scene,i=this._primitives,o=this._groundPrimitives,r=i.add(new Xl),s=o.add(new $F);t._primitives=r,t._groundPrimitives=s;let a=t.clustering;a._initialize(n),r.add(a),t._visualizers=this._visualizersCallback(n,a,t)};af.prototype._onDataSourceRemoved=function(e,t){let n=this._primitives,i=this._groundPrimitives,o=t._primitives,r=t._groundPrimitives,s=t.clustering;o.remove(s);let a=t._visualizers,c=a.length;for(let u=0;u<c;u++)a[u].destroy();n.remove(o),i.remove(r),t._visualizers=void 0};af.prototype._onDataSourceMoved=function(e,t,n){let i=this._primitives,o=this._groundPrimitives,r=e._primitives,s=e._groundPrimitives;t===n+1?(i.raise(r),o.raise(s)):t===n-1?(i.lower(r),o.lower(s)):t===0?(i.lowerToBottom(r),o.lowerToBottom(s),i.raise(r),o.raise(s)):(i.raiseToTop(r),o.raiseToTop(s))};var k2=af;function _W(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.range=y(n,0)}_W.clone=function(e,t){if(l(e))return l(t)||(t=new _W),t.heading=e.heading,t.pitch=e.pitch,t.range=e.range,t};var cf=_W;var Jle=new Z,Zle=new Z,Qle=new Z,eKe=new B,z2=new m,$le=new m,gW=new m,yW=new m,eue=new m,tue=new m,EE=new ee,tKe=1.25;function nKe(e,t,n,i,o,r,s){let a=e.scene.mode,c=o.getValue(r,e._lastCartesian);if(l(c)){let u=!1,f=!1,d,p,g;if(a===ne.SCENE3D){ee.addSeconds(r,.001,EE);let T=o.getValue(EE,z2);if(l(T)||(ee.addSeconds(r,-.001,EE),T=o.getValue(EE,z2),f=!0),l(T)){let E=Rt.computeFixedToIcrfMatrix(r,Jle),S=Rt.computeFixedToIcrfMatrix(EE,Zle),v;!l(E)||!l(S)?(v=Rt.computeTemeToPseudoFixedMatrix(r,Qle),E=Z.transpose(v,Jle),S=Rt.computeTemeToPseudoFixedMatrix(EE,Zle),Z.transpose(S,S)):v=Z.transpose(E,Qle);let D=Z.multiplyByVector(E,c,eue),O=Z.multiplyByVector(S,T,tue);m.subtract(D,O,yW);let M=m.magnitude(yW)*1e3,L=P.GRAVITATIONALPARAMETER,N=-L/(M*M-2*L/m.magnitude(D));N<0||N>tKe*s.maximumRadius?(d=$le,m.normalize(c,d),m.negate(d,d),g=m.clone(m.UNIT_Z,gW),p=m.cross(g,d,z2),m.magnitude(p)>P.EPSILON7&&(m.normalize(d,d),m.normalize(p,p),g=m.cross(d,p,gW),m.normalize(g,g),u=!0)):m.equalsEpsilon(c,T,P.EPSILON7)||(g=$le,m.normalize(D,g),m.normalize(O,O),p=m.cross(g,O,gW),f&&(p=m.multiplyByScalar(p,-1,p)),m.equalsEpsilon(p,m.ZERO,P.EPSILON7)||(d=m.cross(p,g,z2),Z.multiplyByVector(v,d,d),Z.multiplyByVector(v,p,p),Z.multiplyByVector(v,g,g),m.normalize(d,d),m.normalize(p,p),m.normalize(g,g),u=!0))}}l(e.boundingSphere)&&(c=e.boundingSphere.center);let h,A,x;i&&(h=m.clone(t.position,yW),A=m.clone(t.direction,eue),x=m.clone(t.up,tue));let C=eKe;u?(C[0]=d.x,C[1]=d.y,C[2]=d.z,C[3]=0,C[4]=p.x,C[5]=p.y,C[6]=p.z,C[7]=0,C[8]=g.x,C[9]=g.y,C[10]=g.z,C[11]=0,C[12]=c.x,C[13]=c.y,C[14]=c.z,C[15]=0):Rt.eastNorthUpToFixedFrame(c,s,C),t._setTransform(C),i&&(m.clone(h,t.position),m.clone(A,t.direction),m.clone(x,t.up),m.cross(A,x,t.right))}if(n){let u=a===ne.SCENE2D||m.equals(e._offset3D,m.ZERO)?void 0:e._offset3D;t.lookAtTransform(t.transform,u)}}function kv(e,t,n){this.entity=e,this.scene=t,this.ellipsoid=y(n,oe.WGS84),this.boundingSphere=void 0,this._lastEntity=void 0,this._mode=void 0,this._lastCartesian=new m,this._defaultOffset3D=void 0,this._offset3D=new m}Object.defineProperties(kv,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(e){this._defaultOffset3D=m.clone(e,new m)}}});kv.defaultOffset3D=new m(-14e3,3500,3500);var H2=new cf,iKe=new m;kv.prototype.update=function(e,t){let n=this.scene,i=this.ellipsoid,o=n.mode;if(o===ne.MORPHING)return;let r=this.entity,s=r.position;if(!l(s))return;let a=r!==this._lastEntity,c=o!==this._mode,u=n.camera,f=a||c,d=!0;if(a){let p=r.viewFrom,g=l(p);if(!g&&l(t)){H2.pitch=-P.PI_OVER_FOUR,H2.range=0;let h=s.getValue(e,iKe);if(l(h)){let A=2-1/Math.max(1,m.magnitude(h)/i.maximumRadius);H2.pitch*=A}u.viewBoundingSphere(t,H2),this.boundingSphere=t,f=!1,d=!1}else(!g||!l(p.getValue(e,this._offset3D)))&&m.clone(kv._defaultOffset3D,this._offset3D)}else!c&&this._mode!==ne.SCENE2D&&m.clone(u.position,this._offset3D);this._lastEntity=r,this._mode=o,nKe(this,u,f,d,s,e,i)};var G2=kv;function Hv(){this._cache={}}Hv.prototype.fromColor=function(e,t){return W2(void 0,void 0,e,t,this._cache)};Hv.prototype.fromUrl=function(e,t,n){return W2(e,void 0,t,n,this._cache)};Hv.prototype.fromMakiIconId=function(e,t,n){return W2(en(`Assets/Textures/maki/${encodeURIComponent(e)}.png`),void 0,t,n,this._cache)};Hv.prototype.fromText=function(e,t,n){return W2(void 0,e,t,n,this._cache)};var oKe=new z;function rKe(e,t,n){e.save(),e.scale(n/24,n/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,oKe).toCssColorString(),e.lineWidth=.846,e.beginPath(),e.moveTo(6.72,.422),e.lineTo(17.28,.422),e.bezierCurveTo(18.553,.422,19.577,1.758,19.577,3.415),e.lineTo(19.577,10.973),e.bezierCurveTo(19.577,12.63,18.553,13.966,17.282,13.966),e.lineTo(14.386,14.008),e.lineTo(11.826,23.578),e.lineTo(9.614,14.008),e.lineTo(6.719,13.965),e.bezierCurveTo(5.446,13.983,4.422,12.629,4.422,10.972),e.lineTo(4.422,3.416),e.bezierCurveTo(4.423,1.76,5.447,.423,6.718,.423),e.closePath(),e.fill(),e.stroke(),e.restore()}function nue(e,t,n){let i=n/2.5,o=i,r=i;t.width>t.height?r=i*(t.height/t.width):t.width<t.height&&(o=i*(t.width/t.height));let s=Math.round((n-o)/2),a=Math.round(7/24*n-r/2);e.globalCompositeOperation="destination-out",e.drawImage(t,s-1,a,o,r),e.drawImage(t,s,a-1,o,r),e.drawImage(t,s+1,a,o,r),e.drawImage(t,s,a+1,o,r),e.globalCompositeOperation="destination-over",e.fillStyle=z.BLACK.toCssColorString(),e.fillRect(s-1,a-1,o+2,r+2),e.globalCompositeOperation="destination-out",e.drawImage(t,s,a,o,r),e.globalCompositeOperation="destination-over",e.fillStyle=z.WHITE.toCssColorString(),e.fillRect(s-1,a-2,o+2,r+2)}var zv=new Array(4);function W2(e,t,n,i,o){zv[0]=e,zv[1]=t,zv[2]=n,zv[3]=i;let r=JSON.stringify(zv),s=o[r];if(l(s))return s;let a=document.createElement("canvas");a.width=i,a.height=i;let c=a.getContext("2d");if(rKe(c,n,i),l(e)){let f=we.createIfNeeded(e).fetchImage().then(function(d){return nue(c,d,i),o[r]=a,a});return o[r]=f,f}else if(l(t)){let u=aT(t,{font:`bold ${i}px sans-serif`});nue(c,u,i)}return o[r]=a,a}var Hg=Hv;function AW(e){return e}function j2(e){if(e==null)return AW;var t,n,i=e.scale[0],o=e.scale[1],r=e.translate[0],s=e.translate[1];return function(a,c){c||(t=n=0);var u=2,f=a.length,d=new Array(f);for(d[0]=(t+=a[0])*i+r,d[1]=(n+=a[1])*o+s;u<f;)d[u]=a[u],++u;return d}}function iue(e,t){for(var n,i=e.length,o=i-t;o<--i;)n=e[o],e[o++]=e[i],e[i]=n}function xW(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return oue(e,n)})}:oue(e,t)}function oue(e,t){var n=t.id,i=t.bbox,o=t.properties==null?{}:t.properties,r=CW(e,t);return n==null&&i==null?{type:"Feature",properties:o,geometry:r}:i==null?{type:"Feature",id:n,properties:o,geometry:r}:{type:"Feature",id:n,bbox:i,properties:o,geometry:r}}function CW(e,t){var n=j2(e.transform),i=e.arcs;function o(f,d){d.length&&d.pop();for(var p=i[f<0?~f:f],g=0,h=p.length;g<h;++g)d.push(n(p[g],g));f<0&&iue(d,h)}function r(f){return n(f)}function s(f){for(var d=[],p=0,g=f.length;p<g;++p)o(f[p],d);return d.length<2&&d.push(d[0]),d}function a(f){for(var d=s(f);d.length<4;)d.push(d[0]);return d}function c(f){return f.map(a)}function u(f){var d=f.type,p;switch(d){case"GeometryCollection":return{type:d,geometries:f.geometries.map(u)};case"Point":p=r(f.coordinates);break;case"MultiPoint":p=f.coordinates.map(r);break;case"LineString":p=s(f.arcs);break;case"MultiLineString":p=f.arcs.map(s);break;case"Polygon":p=c(f.arcs);break;case"MultiPolygon":p=f.arcs.map(c);break;default:return null}return{type:d,coordinates:p}}return u(t)}function Y2(e){return m.fromDegrees(e[0],e[1],e[2])}var TW={"urn:ogc:def:crs:OGC:1.3:CRS84":Y2,"EPSG:4326":Y2,"urn:ogc:def:crs:EPSG::4326":Y2},rue={},sue={},EW=48,bW,SW=z.ROYALBLUE,wW=z.YELLOW,vW=2,DW=z.fromBytes(255,255,0,100),IW=!1,uKe={small:24,medium:48,large:64},fKe=["title","description","marker-size","marker-symbol","marker-color","stroke","stroke-opacity","stroke-width","fill","fill-opacity"];function aue(e,t){let n="";for(let i in e)if(e.hasOwnProperty(i)){if(i===t||fKe.indexOf(i)!==-1)continue;let o=e[i];l(o)&&(typeof o=="object"?n+=`<tr><th>${i}</th><td>${aue(o)}</td></tr>`:n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}return n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function dKe(e,t,n){let i;return function(o,r){return l(i)||(i=e(t,n)),i}}function mKe(e,t){return new fm(dKe(aue,e,t),!0)}function q2(e,t,n){let i=e.id;if(!l(i)||e.type!=="Feature")i=jn();else{let s=2,a=i;for(;l(t.getById(a));)a=`${i}_${s}`,s++;i=a}let o=t.getOrCreateEntity(i),r=e.properties;if(l(r)){o.properties=r;let s,a=r.title;if(l(a))o.name=a,s="title";else{let u=Number.MAX_VALUE;for(let f in r)if(r.hasOwnProperty(f)&&r[f]){let d=f.toLowerCase();if(u>1&&d==="title"){u=1,s=f;break}else u>2&&d==="name"?(u=2,s=f):u>3&&/title/i.test(f)?(u=3,s=f):u>4&&/name/i.test(f)&&(u=4,s=f)}l(s)&&(o.name=r[s])}let c=r.description;c!==null&&(o.description=l(c)?new $n(c):n(r,s))}return o}function PW(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++)n[i]=t(e[i]);return n}var cue={Feature:uue,FeatureCollection:hKe,GeometryCollection:fue,LineString:_ue,MultiLineString:gue,MultiPoint:hue,MultiPolygon:xue,Point:mue,Polygon:Aue,Topology:Cue},lue={GeometryCollection:fue,LineString:_ue,MultiLineString:gue,MultiPoint:hue,MultiPolygon:xue,Point:mue,Polygon:Aue,Topology:Cue};function uue(e,t,n,i,o){if(t.geometry===null){q2(t,e._entityCollection,o.describe);return}if(!l(t.geometry))throw new de("feature.geometry is required.");let r=t.geometry.type,s=lue[r];if(!l(s))throw new de(`Unknown geometry type: ${r}`);s(e,t,t.geometry,i,o)}function hKe(e,t,n,i,o){let r=t.features;for(let s=0,a=r.length;s<a;s++)uue(e,r[s],void 0,i,o)}function fue(e,t,n,i,o){let r=n.geometries;for(let s=0,a=r.length;s<a;s++){let c=r[s],u=c.type,f=lue[u];if(!l(f))throw new de(`Unknown geometry type: ${u}`);f(e,t,c,i,o)}}function due(e,t,n,i,o){let r=o.markerSymbol,s=o.markerColor,a=o.markerSize,c=t.properties;if(l(c)){let g=c["marker-color"];l(g)&&(s=z.fromCssColorString(g)),a=y(uKe[c["marker-size"]],a);let h=c["marker-symbol"];l(h)&&(r=h)}let u;l(r)?r.length===1?u=e._pinBuilder.fromText(r.toUpperCase(),s,a):u=e._pinBuilder.fromMakiIconId(r,s,a):u=e._pinBuilder.fromColor(s,a);let f=new lc;f.verticalOrigin=new $n(Rn.BOTTOM),i.length===2&&o.clampToGround&&(f.heightReference=qe.CLAMP_TO_GROUND);let d=q2(t,e._entityCollection,o.describe);d.billboard=f,d.position=new Xc(n(i));let p=Promise.resolve(u).then(function(g){f.image=new $n(g)}).catch(function(){f.image=new $n(e._pinBuilder.fromColor(s,a))});e._promises.push(p)}function mue(e,t,n,i,o){due(e,t,i,n.coordinates,o)}function hue(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)due(e,t,i,r[s],o)}function pue(e,t,n,i,o){let r=o.strokeMaterialProperty,s=o.strokeWidthProperty,a=t.properties;if(l(a)){let f=a["stroke-width"];l(f)&&(s=new $n(f));let d,p=a.stroke;l(p)&&(d=z.fromCssColorString(p));let g=a["stroke-opacity"];l(g)&&g!==1&&(l(d)||(d=r.color.getValue().clone()),d.alpha=g),l(d)&&(r=new Ut(d))}let c=q2(t,e._entityCollection,o.describe),u=new pc;c.polyline=u,u.clampToGround=o.clampToGround,u.material=r,u.width=s,u.positions=new $n(PW(i,n)),u.arcType=Zt.RHUMB}function _ue(e,t,n,i,o){pue(e,t,i,n.coordinates,o)}function gue(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)pue(e,t,i,r[s],o)}function yue(e,t,n,i,o){if(i.length===0||i[0].length===0)return;let r=o.strokeMaterialProperty.color,s=o.fillMaterialProperty,a=o.strokeWidthProperty,c=t.properties;if(l(c)){let g=c["stroke-width"];l(g)&&(a=new $n(g));let h,A=c.stroke;l(A)&&(h=z.fromCssColorString(A));let x=c["stroke-opacity"];l(x)&&x!==1&&(l(h)||(h=r.getValue().clone()),h.alpha=x),l(h)&&(r=new $n(h));let C,T=c.fill,E=s.color.getValue();l(T)&&(C=z.fromCssColorString(T),C.alpha=E.alpha),x=c["fill-opacity"],l(x)&&x!==E.alpha&&(l(C)||(C=E.clone()),C.alpha=x),l(C)&&(s=new Ut(C))}let u=new cm;u.outline=new $n(!0),u.outlineColor=r,u.outlineWidth=a,u.material=s,u.arcType=Zt.RHUMB;let f=[];for(let g=1,h=i.length;g<h;g++)f.push(new Kc(PW(i[g],n)));let d=i[0];u.hierarchy=new $n(new Kc(PW(d,n),f)),d[0].length>2?u.perPositionHeight=new $n(!0):o.clampToGround||(u.height=0);let p=q2(t,e._entityCollection,o.describe);p.polygon=u}function Aue(e,t,n,i,o){yue(e,t,i,n.coordinates,o)}function xue(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)yue(e,t,i,r[s],o)}function Cue(e,t,n,i,o){for(let r in n.objects)if(n.objects.hasOwnProperty(r)){let s=xW(n,n.objects[r]),a=cue[s.type];a(e,s,s,i,o)}}function Gg(e){this._name=e,this._changed=new ge,this._error=new ge,this._isLoading=!1,this._loading=new ge,this._entityCollection=new zs(this),this._promises=[],this._pinBuilder=new Hg,this._entityCluster=new Qu,this._credit=void 0,this._resourceCredits=[]}Gg.load=function(e,t){return new Gg().load(e,t)};Object.defineProperties(Gg,{markerSize:{get:function(){return EW},set:function(e){EW=e}},markerSymbol:{get:function(){return bW},set:function(e){bW=e}},markerColor:{get:function(){return SW},set:function(e){SW=e}},stroke:{get:function(){return wW},set:function(e){wW=e}},strokeWidth:{get:function(){return vW},set:function(e){vW=e}},fill:{get:function(){return DW},set:function(e){DW=e}},clampToGround:{get:function(){return IW},set:function(e){IW=e}},crsNames:{get:function(){return TW}},crsLinkHrefs:{get:function(){return rue}},crsLinkTypes:{get:function(){return sue}}});Object.defineProperties(Gg.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{value:void 0,writable:!1},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});Gg.prototype.load=function(e,t){return Tue(this,e,t,!0)};Gg.prototype.process=function(e,t){return Tue(this,e,t,!1)};function Tue(e,t,n,i){Br.setLoading(e,!0),n=y(n,y.EMPTY_OBJECT);let o=n.credit;typeof o=="string"&&(o=new It(o)),e._credit=o;let r=t,s=n.sourceUri;if(typeof t=="string"||t instanceof we){t=we.createIfNeeded(t),r=t.fetchJson(),s=y(s,t.getUrlComponent());let a=e._resourceCredits,c=t.credits;if(l(c)){let u=c.length;for(let f=0;f<u;f++)a.push(c[f])}}return n={describe:y(n.describe,mKe),markerSize:y(n.markerSize,EW),markerSymbol:y(n.markerSymbol,bW),markerColor:y(n.markerColor,SW),strokeWidthProperty:new $n(y(n.strokeWidth,vW)),strokeMaterialProperty:new Ut(y(n.stroke,wW)),fillMaterialProperty:new Ut(y(n.fill,DW)),clampToGround:y(n.clampToGround,IW)},Promise.resolve(r).then(function(a){return pKe(e,a,n,s,i)}).catch(function(a){throw Br.setLoading(e,!1),e._error.raiseEvent(e,a),a})}Gg.prototype.update=function(e){return!0};function pKe(e,t,n,i,o){let r;l(i)&&(r=bg(i)),l(r)&&e._name!==r&&(e._name=r,e._changed.raiseEvent(e));let s=cue[t.type];if(!l(s))throw new de(`Unsupported GeoJSON object type: ${t.type}`);let a=t.crs,c=a!==null?Y2:null;if(l(a)){if(!l(a.properties))throw new de("crs.properties is undefined.");let u=a.properties;if(a.type==="name"){if(c=TW[u.name],!l(c))throw new de(`Unknown crs name: ${u.name}`)}else if(a.type==="link"){let f=rue[u.href];if(l(f)||(f=sue[u.type]),!l(f))throw new de(`Unable to resolve crs link: ${JSON.stringify(u)}`);c=f(u)}else if(a.type==="EPSG"){if(c=TW[`EPSG:${u.code}`],!l(c))throw new de(`Unknown crs EPSG code: ${u.code}`)}else throw new de(`Unknown crs type: ${a.type}`)}return Promise.resolve(c).then(function(u){return o&&e._entityCollection.removeAll(),u!==null&&s(e,t,t,u,n),Promise.all(e._promises).then(function(){return e._promises.length=0,Br.setLoading(e,!1),e})})}var X2=Gg;var Eue="4.0.0";function _Ke(e){return e===void 0}function Ql(e){return typeof e=="boolean"}function bue(e,t){for(var n in t)t.hasOwnProperty(n)&&_Ke(e[n])&&(e[n]=t[n]);return e}function Sue(e,t,n){var i;return e.length>t&&(n==null?(n="…",i=3):i=n.length,e=e.substring(0,t-i)+n),e}function Lo(e,t){for(var n=e.length-1;n>=0;n--)e[n]===t&&e.splice(n,1)}function Wg(e,t){for(var n=e.length-1;n>=0;n--)t(e[n])===!0&&e.splice(n,1)}function jg(e){throw new Error("Unhandled case for value: '".concat(e,"'"))}var Yg=/[A-Za-z]/,Es=/[\d]/;var $l=/\s/,K2=/['"]/,wue=/[\x00-\x1F\x7F]/,vue=/A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source,gKe=/\u2700-\u27bf\udde6-\uddff\ud800-\udbff\udc00-\udfff\ufe0e\ufe0f\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0\ud83c\udffb-\udfff\u200d\u3299\u3297\u303d\u3030\u24c2\ud83c\udd70-\udd71\udd7e-\udd7f\udd8e\udd91-\udd9a\udde6-\uddff\ude01-\ude02\ude1a\ude2f\ude32-\ude3a\ude50-\ude51\u203c\u2049\u25aa-\u25ab\u25b6\u25c0\u25fb-\u25fe\u00a9\u00ae\u2122\u2139\udc04\u2600-\u26FF\u2b05\u2b06\u2b07\u2b1b\u2b1c\u2b50\u2b55\u231a\u231b\u2328\u23cf\u23e9-\u23f3\u23f8-\u23fa\udccf\u2935\u2934\u2190-\u21ff/.source,yKe=/\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F/.source,AKe=vue+gKe+yKe,Due=/0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19/.source,_5n=new RegExp("[".concat(vue+Due,"]")),OW=AKe+Due,Td=new RegExp("[".concat(OW,"]"));var J2=function(){function e(t){t===void 0&&(t={}),this.tagName="",this.attrs={},this.innerHTML="",this.tagName=t.tagName||"",this.attrs=t.attrs||{},this.innerHTML=t.innerHtml||t.innerHTML||""}return e.prototype.setTagName=function(t){return this.tagName=t,this},e.prototype.getTagName=function(){return this.tagName||""},e.prototype.setAttr=function(t,n){var i=this.getAttrs();return i[t]=n,this},e.prototype.getAttr=function(t){return this.getAttrs()[t]},e.prototype.setAttrs=function(t){return Object.assign(this.getAttrs(),t),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(t){return this.setAttr("class",t)},e.prototype.addClass=function(t){for(var n=this.getClass(),i=n?n.split($l):[],o=t.split($l),r;r=o.shift();)i.indexOf(r)===-1&&i.push(r);return this.getAttrs().class=i.join(" "),this},e.prototype.removeClass=function(t){for(var n=this.getClass(),i=n?n.split($l):[],o=t.split($l),r;i.length&&(r=o.shift());){var s=i.indexOf(r);s!==-1&&i.splice(s,1)}return this.getAttrs().class=i.join(" "),this},e.prototype.getClass=function(){return this.getAttrs().class||""},e.prototype.hasClass=function(t){return(" "+this.getClass()+" ").indexOf(" "+t+" ")!==-1},e.prototype.setInnerHTML=function(t){return this.innerHTML=t,this},e.prototype.setInnerHtml=function(t){return this.setInnerHTML(t)},e.prototype.getInnerHTML=function(){return this.innerHTML||""},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var t=this.getTagName(),n=this.buildAttrsStr();return n=n?" "+n:"",["<",t,n,">",this.getInnerHtml(),"</",t,">"].join("")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return"";var t=this.getAttrs(),n=[];for(var i in t)t.hasOwnProperty(i)&&n.push(i+'="'+t[i]+'"');return n.join(" ")},e}();function Iue(e,t,n){var i,o;n==null?(n="…",o=3,i=8):(o=n.length,i=n.length);var r=function(T){var E={},S=T,v=S.match(/^([a-z]+):\/\//i);return v&&(E.scheme=v[1],S=S.substr(v[0].length)),v=S.match(/^(.*?)(?=(\?|#|\/|$))/i),v&&(E.host=v[1],S=S.substr(v[0].length)),v=S.match(/^\/(.*?)(?=(\?|#|$))/i),v&&(E.path=v[1],S=S.substr(v[0].length)),v=S.match(/^\?(.*?)(?=(#|$))/i),v&&(E.query=v[1],S=S.substr(v[0].length)),v=S.match(/^#(.*?)$/i),v&&(E.fragment=v[1]),E},s=function(T){var E="";return T.scheme&&T.host&&(E+=T.scheme+"://"),T.host&&(E+=T.host),T.path&&(E+="/"+T.path),T.query&&(E+="?"+T.query),T.fragment&&(E+="#"+T.fragment),E},a=function(T,E){var S=E/2,v=Math.ceil(S),D=-1*Math.floor(S),O="";return D<0&&(O=T.substr(D)),T.substr(0,v)+n+O};if(e.length<=t)return e;var c=t-o,u=r(e);if(u.query){var f=u.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);f&&(u.query=u.query.substr(0,f[1].length),e=s(u))}if(e.length<=t||(u.host&&(u.host=u.host.replace(/^www\./,""),e=s(u)),e.length<=t))return e;var d="";if(u.host&&(d+=u.host),d.length>=c)return u.host.length==t?(u.host.substr(0,t-o)+n).substr(0,c+i):a(d,c).substr(0,c+i);var p="";if(u.path&&(p+="/"+u.path),u.query&&(p+="?"+u.query),p)if((d+p).length>=c){if((d+p).length==t)return(d+p).substr(0,t);var g=c-d.length;return(d+a(p,g)).substr(0,c+i)}else d+=p;if(u.fragment){var h="#"+u.fragment;if((d+h).length>=c){if((d+h).length==t)return(d+h).substr(0,t);var A=c-d.length;return(d+a(h,A)).substr(0,c+i)}else d+=h}if(u.scheme&&u.host){var x=u.scheme+"://";if((d+x).length<c)return(x+d).substr(0,t)}if(d.length<=t)return d;var C="";return c>0&&(C=d.substr(-1*Math.floor(c/2))),(d.substr(0,Math.ceil(c/2))+n+C).substr(0,c+i)}function Pue(e,t,n){if(e.length<=t)return e;var i,o;n==null?(n="…",i=8,o=3):(i=n.length,o=n.length);var r=t-o,s="";return r>0&&(s=e.substr(-1*Math.floor(r/2))),(e.substr(0,Math.ceil(r/2))+n+s).substr(0,r+i)}function Oue(e,t,n){return Sue(e,t,n)}var Mue=function(){function e(t){t===void 0&&(t={}),this.newWindow=!1,this.truncate={},this.className="",this.newWindow=t.newWindow||!1,this.truncate=t.truncate||{},this.className=t.className||""}return e.prototype.build=function(t){return new J2({tagName:"a",attrs:this.createAttrs(t),innerHtml:this.processAnchorText(t.getAnchorText())})},e.prototype.createAttrs=function(t){var n={href:t.getAnchorHref()},i=this.createCssClass(t);return i&&(n.class=i),this.newWindow&&(n.target="_blank",n.rel="noopener noreferrer"),this.truncate&&this.truncate.length&&this.truncate.length<t.getAnchorText().length&&(n.title=t.getAnchorHref()),n},e.prototype.createCssClass=function(t){var n=this.className;if(n){for(var i=[n],o=t.getCssClassSuffixes(),r=0,s=o.length;r<s;r++)i.push(n+"-"+o[r]);return i.join(" ")}else return""},e.prototype.processAnchorText=function(t){return t=this.doTruncate(t),t},e.prototype.doTruncate=function(t){var n=this.truncate;if(!n||!n.length)return t;var i=n.length,o=n.location;return o==="smart"?Iue(t,i):o==="middle"?Pue(t,i):Oue(t,i)},e}();var MW=function(e,t){return MW=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(n[o]=i[o])},MW(e,t)};function jm(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");MW(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var bs=function(){return bs=Object.assign||function(t){for(var n,i=1,o=arguments.length;i<o;i++){n=arguments[i];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},bs.apply(this,arguments)};var Ym=function(){function e(t){this._=null,this.matchedText="",this.offset=0,this.tagBuilder=t.tagBuilder,this.matchedText=t.matchedText,this.offset=t.offset}return e.prototype.getMatchedText=function(){return this.matchedText},e.prototype.setOffset=function(t){this.offset=t},e.prototype.getOffset=function(){return this.offset},e.prototype.getCssClassSuffixes=function(){return[this.type]},e.prototype.buildTag=function(){return this.tagBuilder.build(this)},e}();var xKe="(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|verm\xF6gensberatung|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbah1a3hjkrd|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|verm\xF6gensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--mgbcpq6gpa1a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq480n2rg|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|travelchannel|wolterskluwer|xn--cckwcxetd|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--4dbrk0ce|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nextdirect|properties|protection|prudential|realestate|republican|restaurant|schaeffler|tatamotors|technology|university|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--q7ce6a|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|institute|insurance|kuokgroup|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--qxa6a|xn--tckwe|xn--vhquv|yodobashi|\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|builders|business|capetown|catering|catholic|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|etisalat|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|training|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lanxess|lasalle|latrobe|leclerc|limited|lincoln|markets|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|singles|staples|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|\u043A\u0430\u0442\u043E\u043B\u0438\u043A|\u0627\u062A\u0635\u0627\u0644\u0627\u062A|\u0627\u0644\u0628\u062D\u0631\u064A\u0646|\u0627\u0644\u062C\u0632\u0627\u0626\u0631|\u0627\u0644\u0639\u0644\u064A\u0627\u0646|\u067E\u0627\u06A9\u0633\u062A\u0627\u0646|\u0643\u0627\u062B\u0648\u0644\u064A\u0643|\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE|abarth|abbott|abbvie|africa|agency|airbus|airtel|alipay|alsace|alstom|amazon|anquan|aramco|author|bayern|beauty|berlin|bharti|bostik|boston|broker|camera|career|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|webcam|xihuan|yachts|yandex|zappos|\u043C\u043E\u0441\u043A\u0432\u0430|\u043E\u043D\u043B\u0430\u0439\u043D|\u0627\u0628\u0648\u0638\u0628\u064A|\u0627\u0631\u0627\u0645\u0643\u0648|\u0627\u0644\u0627\u0631\u062F\u0646|\u0627\u0644\u0645\u063A\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062A|\u0641\u0644\u0633\u0637\u064A\u0646|\u0645\u0644\u064A\u0633\u064A\u0627|\u092D\u093E\u0930\u0924\u092E\u094D|\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8|\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|drive|dubai|earth|edeka|email|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|irish|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|loans|locus|lotte|lotto|macys|mango|media|miami|money|movie|music|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|\u05D9\u05E9\u05E8\u05D0\u05DC|\u0627\u06CC\u0631\u0627\u0646|\u0628\u0627\u0632\u0627\u0631|\u0628\u06BE\u0627\u0631\u062A|\u0633\u0648\u062F\u0627\u0646|\u0633\u0648\u0631\u064A\u0629|\u0647\u0645\u0631\u0627\u0647|\u092D\u093E\u0930\u094B\u0924|\u0938\u0902\u0917\u0920\u0928|\u09AC\u09BE\u0982\u09B2\u09BE|\u0C2D\u0C3E\u0C30\u0C24\u0C4D|\u0D2D\u0D3E\u0D30\u0D24\u0D02|\u5609\u91CC\u5927\u9152\u5E97|aarp|able|adac|aero|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kids|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|read|reit|rent|rest|rich|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|\u0434\u0435\u0442\u0438|\u0441\u0430\u0439\u0442|\u0628\u0627\u0631\u062A|\u0628\u064A\u062A\u0643|\u0680\u0627\u0631\u062A|\u062A\u0648\u0646\u0633|\u0634\u0628\u0643\u0629|\u0639\u0631\u0627\u0642|\u0639\u0645\u0627\u0646|\u0645\u0648\u0642\u0639|\u092D\u093E\u0930\u0924|\u09AD\u09BE\u09B0\u09A4|\u09AD\u09BE\u09F0\u09A4|\u0A2D\u0A3E\u0A30\u0A24|\u0AAD\u0ABE\u0AB0\u0AA4|\u0B2D\u0B3E\u0B30\u0B24|\u0CAD\u0CBE\u0CB0\u0CA4|\u0DBD\u0D82\u0D9A\u0DCF|\u30A2\u30DE\u30BE\u30F3|\u30B0\u30FC\u30B0\u30EB|\u30AF\u30E9\u30A6\u30C9|\u30DD\u30A4\u30F3\u30C8|\u7EC4\u7EC7\u673A\u6784|\u96FB\u8A0A\u76C8\u79D1|\u9999\u683C\u91CC\u62C9|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceo|cfa|cfd|com|cpa|crs|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gay|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|llp|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|spa|srl|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|\u0431\u0435\u043B|\u043A\u043E\u043C|\u049B\u0430\u0437|\u043C\u043A\u0434|\u043C\u043E\u043D|\u043E\u0440\u0433|\u0440\u0443\u0441|\u0441\u0440\u0431|\u0443\u043A\u0440|\u0570\u0561\u0575|\u05E7\u05D5\u05DD|\u0639\u0631\u0628|\u0642\u0637\u0631|\u0643\u0648\u0645|\u0645\u0635\u0631|\u0915\u0949\u092E|\u0928\u0947\u091F|\u0E04\u0E2D\u0E21|\u0E44\u0E17\u0E22|\u0EA5\u0EB2\u0EA7|\u30B9\u30C8\u30A2|\u30BB\u30FC\u30EB|\u307F\u3093\u306A|\u4E2D\u6587\u7F51|\u4E9A\u9A6C\u900A|\u5929\u4E3B\u6559|\u6211\u7231\u4F60|\u65B0\u52A0\u5761|\u6DE1\u9A6C\u9521|\u8BFA\u57FA\u4E9A|\u98DE\u5229\u6D66|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|\u03B5\u03BB|\u03B5\u03C5|\u0431\u0433|\u0435\u044E|\u0440\u0444|\u10D2\u10D4|\uB2F7\uB137|\uB2F7\uCEF4|\uC0BC\uC131|\uD55C\uAD6D|\u30B3\u30E0|\u4E16\u754C|\u4E2D\u4FE1|\u4E2D\u56FD|\u4E2D\u570B|\u4F01\u4E1A|\u4F5B\u5C71|\u4FE1\u606F|\u5065\u5EB7|\u516B\u5366|\u516C\u53F8|\u516C\u76CA|\u53F0\u6E7E|\u53F0\u7063|\u5546\u57CE|\u5546\u5E97|\u5546\u6807|\u5609\u91CC|\u5728\u7EBF|\u5927\u62FF|\u5A31\u4E50|\u5BB6\u96FB|\u5E7F\u4E1C|\u5FAE\u535A|\u6148\u5584|\u624B\u673A|\u62DB\u8058|\u653F\u52A1|\u653F\u5E9C|\u65B0\u95FB|\u65F6\u5C1A|\u66F8\u7C4D|\u673A\u6784|\u6E38\u620F|\u6FB3\u9580|\u70B9\u770B|\u79FB\u52A8|\u7F51\u5740|\u7F51\u5E97|\u7F51\u7AD9|\u7F51\u7EDC|\u8054\u901A|\u8C37\u6B4C|\u8D2D\u7269|\u901A\u8CA9|\u96C6\u56E2|\u98DF\u54C1|\u9910\u5385|\u9999\u6E2F)",Rue=new RegExp("^"+xKe+"$");var CKe=/[\/?#]/,TKe=/[-+&@#/%=~_()|'$*\[\]{}\u2713]/,Bue=/[?!:,.;^]/,RW=/https?:\/\//i,Lue=new RegExp("^"+RW.source,"i"),Nue=new RegExp(Bue.source+"$"),EKe=/^(javascript|vbscript):/i,bKe=/^[A-Za-z][-.+A-Za-z0-9]*:(\/\/)?([^:/]*)/,SKe=/^(?:\/\/)?([^/#?:]+)/;function Z2(e){return Yg.test(e)}function BW(e){return Yg.test(e)||Es.test(e)||e==="+"||e==="-"||e==="."}function Bp(e){return Td.test(e)}function Q2(e){return e==="_"||Bp(e)}function LW(e){return Td.test(e)||TKe.test(e)||Bue.test(e)}function $2(e){return CKe.test(e)}function NW(e){return Rue.test(e.toLowerCase())}function Fue(e){if(EKe.test(e))return!1;var t=e.match(bKe);if(!t)return!1;var n=!!t[1],i=t[2];return n?!0:!(i.indexOf(".")===-1||!Yg.test(i))}function Uue(e){var t=e.match(SKe);if(!t)return!1;var n=t[0],i=n.split(".");if(i.length<2)return!1;var o=i[i.length-1];return!!NW(o)}var wKe=/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,vKe=/[:/?#]/;function Vue(e){var t=e.split(vKe,1)[0];return wKe.test(t)}var DKe=/^(https?:\/\/)?(www\.)?/i,IKe=/^\/\//,kue=function(e){jm(t,e);function t(n){var i=e.call(this,n)||this;return i.type="url",i.url="",i.urlMatchType="scheme",i.protocolRelativeMatch=!1,i.stripPrefix={scheme:!0,www:!0},i.stripTrailingSlash=!0,i.decodePercentEncoding=!0,i.protocolPrepended=!1,i.urlMatchType=n.urlMatchType,i.url=n.url,i.protocolRelativeMatch=n.protocolRelativeMatch,i.stripPrefix=n.stripPrefix,i.stripTrailingSlash=n.stripTrailingSlash,i.decodePercentEncoding=n.decodePercentEncoding,i}return t.prototype.getType=function(){return"url"},t.prototype.getUrlMatchType=function(){return this.urlMatchType},t.prototype.getUrl=function(){var n=this.url;return!this.protocolRelativeMatch&&this.urlMatchType!=="scheme"&&!this.protocolPrepended&&(n=this.url="http://"+n,this.protocolPrepended=!0),n},t.prototype.getAnchorHref=function(){var n=this.getUrl();return n.replace(/&/g,"&")},t.prototype.getAnchorText=function(){var n=this.getMatchedText();return this.protocolRelativeMatch&&(n=MKe(n)),this.stripPrefix.scheme&&(n=PKe(n)),this.stripPrefix.www&&(n=OKe(n)),this.stripTrailingSlash&&(n=RKe(n)),this.decodePercentEncoding&&(n=BKe(n)),n},t}(Ym);function PKe(e){return e.replace(Lue,"")}function OKe(e){return e.replace(DKe,"$1")}function MKe(e){return e.replace(IKe,"")}function RKe(e){return e.charAt(e.length-1)==="/"&&(e=e.slice(0,-1)),e}function BKe(e){var t=e.replace(/%22/gi,""").replace(/%26/gi,"&").replace(/%27/gi,"'").replace(/%3C/gi,"<").replace(/%3E/gi,">");try{return decodeURIComponent(t)}catch{return t}}var zue=/^mailto:/i,LKe=new RegExp("[".concat(OW,"!#$%&'*+/=?^_`{|}~-]"));function Hue(e){return Td.test(e)}function e3(e){return LKe.test(e)}function Gue(e){var t=e.split(".").pop()||"";return NW(t)}var Wue=function(e){jm(t,e);function t(n){var i=e.call(this,n)||this;return i.type="email",i.email="",i.email=n.email,i}return t.prototype.getType=function(){return"email"},t.prototype.getEmail=function(){return this.email},t.prototype.getAnchorHref=function(){return"mailto:"+this.email},t.prototype.getAnchorText=function(){return this.email},t}(Ym);function FW(e){return e==="_"||Td.test(e)}function jue(e){return e.length<=140}var Yue=["twitter","facebook","instagram","tiktok"];var que=function(e){jm(t,e);function t(n){var i=e.call(this,n)||this;return i.type="hashtag",i.serviceName="twitter",i.hashtag="",i.serviceName=n.serviceName,i.hashtag=n.hashtag,i}return t.prototype.getType=function(){return"hashtag"},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getHashtag=function(){return this.hashtag},t.prototype.getAnchorHref=function(){var n=this.serviceName,i=this.hashtag;switch(n){case"twitter":return"https://twitter.com/hashtag/"+i;case"facebook":return"https://www.facebook.com/hashtag/"+i;case"instagram":return"https://instagram.com/explore/tags/"+i;case"tiktok":return"https://www.tiktok.com/tag/"+i;default:throw jg(n),new Error("Invalid hashtag service: ".concat(n))}},t.prototype.getAnchorText=function(){return"#"+this.hashtag},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t}(Ym);var NKe={twitter:/^@\w{1,15}$/,instagram:/^@[_\w]{1,30}$/,soundcloud:/^@[-a-z0-9_]{3,25}$/,tiktok:/^@[.\w]{1,23}[\w]$/},FKe=/[-\w.]/;function UW(e){return FKe.test(e)}function Xue(e,t){var n=NKe[t];return n.test(e)}var Kue=["twitter","instagram","soundcloud","tiktok"];var Jue=function(e){jm(t,e);function t(n){var i=e.call(this,n)||this;return i.type="mention",i.serviceName="twitter",i.mention="",i.mention=n.mention,i.serviceName=n.serviceName,i}return t.prototype.getType=function(){return"mention"},t.prototype.getMention=function(){return this.mention},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getAnchorHref=function(){switch(this.serviceName){case"twitter":return"https://twitter.com/"+this.mention;case"instagram":return"https://instagram.com/"+this.mention;case"soundcloud":return"https://soundcloud.com/"+this.mention;case"tiktok":return"https://www.tiktok.com/@"+this.mention;default:throw new Error("Unknown service name to point mention to: "+this.serviceName)}},t.prototype.getAnchorText=function(){return"@"+this.mention},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t}(Ym);var UKe=/[-. ]/,VKe=/[-. ()]/,kKe=/[,;]/,zKe=/(?:(?:(?:(\+)?\d{1,3}[-. ]?)?\(?\d{3}\)?[-. ]?\d{3}[-. ]?\d{4})|(?:(\+)(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-. ]?(?:\d[-. ]?){6,12}\d+))([,;]+[0-9]+#?)*/,HKe=/(0([1-9]-?[1-9]\d{3}|[1-9]{2}-?\d{3}|[1-9]{2}\d{1}-?\d{2}|[1-9]{2}\d{2}-?\d{1})-?\d{4}|0[789]0-?\d{4}-?\d{4}|050-?\d{4}-?\d{4})/,GKe=new RegExp("^".concat(zKe.source,"|").concat(HKe.source,"$"));function VW(e){return UKe.test(e)}function t3(e){return kKe.test(e)}function Zue(e){var t=e.charAt(0)==="+"||VKe.test(e);return t&&GKe.test(e)}var Que=function(e){jm(t,e);function t(n){var i=e.call(this,n)||this;return i.type="phone",i.number="",i.plusSign=!1,i.number=n.number,i.plusSign=n.plusSign,i}return t.prototype.getType=function(){return"phone"},t.prototype.getPhoneNumber=function(){return this.number},t.prototype.getNumber=function(){return this.getPhoneNumber()},t.prototype.getAnchorHref=function(){return"tel:"+(this.plusSign?"+":"")+this.number},t.prototype.getAnchorText=function(){return this.matchedText},t}(Ym);function tfe(e,t){for(var n=t.tagBuilder,i=t.stripPrefix,o=t.stripTrailingSlash,r=t.decodePercentEncoding,s=t.hashtagServiceName,a=t.mentionServiceName,c=[],u=e.length,f=[],d=0;d<u;d++){var p=e.charAt(d);if(f.length===0)x(p);else for(var g=f.length-1;g>=0;g--){var h=f[g];switch(h.state){case 11:D(h,p);break;case 12:O(h,p);break;case 0:C(h,p);break;case 1:T(h,p);break;case 2:E(h,p);break;case 3:S(h,p);break;case 4:v(h,p);break;case 5:M(h,p);break;case 6:L(h,p);break;case 7:N(h,p);break;case 13:_(h,p);break;case 14:b(h,p);break;case 8:w(h,p);break;case 9:I(h,p);break;case 10:R(h,p);break;case 15:F(h,p);break;case 16:k(h,p);break;case 17:V(h,p);break;case 18:G(h,p);break;case 19:U(h,p);break;case 20:q(h,p);break;case 21:Y(h,p);break;case 22:Q(h,p);break;case 23:W(h,p);break;case 24:K(h,p);break;case 25:J(h,p);break;case 26:_e(h,p);break;case 27:xe(h,p);break;case 28:se(h,p);break;case 29:Ae(h,p);break;case 30:me(h,p);break;case 31:Se(h,p);break;case 32:Ue(h,p);break;case 33:Re(h,p);break;case 34:ke(h,p);break;case 35:ft(h,p);break;case 36:pt(h,p);break;case 37:Ie(h,p);break;case 38:rt(h,p);break;case 39:un(h,p);break;case 40:Mn(h,p);break;case 41:Wt(h,p);break;default:jg(h.state)}}}for(var A=f.length-1;A>=0;A--)f.forEach(function(pe){return Ze(pe)});return c;function x(pe){if(pe==="#")f.push(XKe(d,28));else if(pe==="@")f.push(KKe(d,30));else if(pe==="/")f.push(zW(d,11));else if(pe==="+")f.push(HW(d,37));else if(pe==="(")f.push(HW(d,32));else{if(Es.test(pe)&&(f.push(HW(d,38)),f.push(YKe(d,13))),Hue(pe)){var Ee=pe.toLowerCase()==="m"?15:22;f.push(qKe(d,Ee))}Z2(pe)&&f.push(kW(d,0)),Td.test(pe)&&f.push(zW(d,5))}}function C(pe,Ee){Ee===":"?pe.state=2:Ee==="-"?pe.state=1:BW(Ee)||Lo(f,pe)}function T(pe,Ee){Ee==="-"||(Ee==="/"?(Lo(f,pe),f.push(zW(d,11))):BW(Ee)?pe.state=0:Lo(f,pe))}function E(pe,Ee){Ee==="/"?pe.state=3:Ee==="."?Lo(f,pe):Bp(Ee)?(pe.state=5,Z2(Ee)&&f.push(kW(d,0))):Lo(f,pe)}function S(pe,Ee){Ee==="/"?pe.state=4:LW(Ee)?(pe.state=10,pe.acceptStateReached=!0):Ze(pe)}function v(pe,Ee){Ee==="/"?pe.state=10:Bp(Ee)?(pe.state=5,pe.acceptStateReached=!0):Lo(f,pe)}function D(pe,Ee){Ee==="/"?pe.state=12:Lo(f,pe)}function O(pe,Ee){Bp(Ee)?pe.state=5:Lo(f,pe)}function M(pe,Ee){Ee==="."?pe.state=7:Ee==="-"?pe.state=6:Ee===":"?pe.state=8:$2(Ee)?pe.state=10:Q2(Ee)||Ze(pe)}function L(pe,Ee){Ee==="-"||(Ee==="."?Ze(pe):Bp(Ee)?pe.state=5:Ze(pe))}function N(pe,Ee){Ee==="."?Ze(pe):Bp(Ee)?(pe.state=5,pe.acceptStateReached=!0):Ze(pe)}function _(pe,Ee){Ee==="."?pe.state=14:Ee===":"?pe.state=8:Es.test(Ee)||($2(Ee)?pe.state=10:Td.test(Ee)?Lo(f,pe):Ze(pe))}function b(pe,Ee){Es.test(Ee)?(pe.octetsEncountered++,pe.octetsEncountered===4&&(pe.acceptStateReached=!0),pe.state=13):Ze(pe)}function w(pe,Ee){Es.test(Ee)?pe.state=9:Ze(pe)}function I(pe,Ee){Es.test(Ee)||($2(Ee)?pe.state=10:Ze(pe))}function R(pe,Ee){LW(Ee)||Ze(pe)}function F(pe,Ee){Ee.toLowerCase()==="a"?pe.state=16:Q(pe,Ee)}function k(pe,Ee){Ee.toLowerCase()==="i"?pe.state=17:Q(pe,Ee)}function V(pe,Ee){Ee.toLowerCase()==="l"?pe.state=18:Q(pe,Ee)}function G(pe,Ee){Ee.toLowerCase()==="t"?pe.state=19:Q(pe,Ee)}function U(pe,Ee){Ee.toLowerCase()==="o"?pe.state=20:Q(pe,Ee)}function q(pe,Ee){Ee.toLowerCase()===":"?pe.state=21:Q(pe,Ee)}function Y(pe,Ee){e3(Ee)?pe.state=22:Lo(f,pe)}function Q(pe,Ee){Ee==="."?pe.state=23:Ee==="@"?pe.state=24:e3(Ee)?pe.state=22:Lo(f,pe)}function W(pe,Ee){Ee==="."?Lo(f,pe):Ee==="@"?Lo(f,pe):e3(Ee)?pe.state=22:Lo(f,pe)}function K(pe,Ee){Bp(Ee)?pe.state=25:Lo(f,pe)}function J(pe,Ee){Ee==="."?pe.state=27:Ee==="-"?pe.state=26:Q2(Ee)||Ze(pe)}function _e(pe,Ee){Ee==="-"||Ee==="."?Ze(pe):Q2(Ee)?pe.state=25:Ze(pe)}function xe(pe,Ee){Ee==="."||Ee==="-"?Ze(pe):Bp(Ee)?(pe.state=25,pe.acceptStateReached=!0):Ze(pe)}function se(pe,Ee){FW(Ee)?(pe.state=29,pe.acceptStateReached=!0):Lo(f,pe)}function Ae(pe,Ee){FW(Ee)||Ze(pe)}function me(pe,Ee){UW(Ee)?(pe.state=31,pe.acceptStateReached=!0):Lo(f,pe)}function Se(pe,Ee){UW(Ee)||(Td.test(Ee)?Lo(f,pe):Ze(pe))}function Ie(pe,Ee){Es.test(Ee)?pe.state=38:(Lo(f,pe),x(Ee))}function Ue(pe,Ee){Es.test(Ee)?pe.state=33:Lo(f,pe),x(Ee)}function Re(pe,Ee){Es.test(Ee)?pe.state=34:Lo(f,pe)}function ke(pe,Ee){Es.test(Ee)?pe.state=35:Lo(f,pe)}function ft(pe,Ee){Ee===")"?pe.state=36:Lo(f,pe)}function pt(pe,Ee){Es.test(Ee)?pe.state=38:VW(Ee)?pe.state=39:Lo(f,pe)}function rt(pe,Ee){pe.acceptStateReached=!0,t3(Ee)?pe.state=40:Ee==="#"?pe.state=41:Es.test(Ee)||(Ee==="("?pe.state=32:VW(Ee)?pe.state=39:(Ze(pe),Z2(Ee)&&f.push(kW(d,0))))}function un(pe,Ee){Es.test(Ee)?pe.state=38:Ee==="("?pe.state=32:(Ze(pe),x(Ee))}function Mn(pe,Ee){t3(Ee)||(Ee==="#"?pe.state=41:Es.test(Ee)?pe.state=38:Ze(pe))}function Wt(pe,Ee){t3(Ee)?pe.state=40:Es.test(Ee)?Lo(f,pe):Ze(pe)}function Ze(pe){if(Lo(f,pe),!!pe.acceptStateReached){var Ee=pe.startIdx,je=e.slice(pe.startIdx,d);if(je=jKe(je),pe.type==="url"){var fi=e.charAt(pe.startIdx-1);if(fi==="@")return;var hi=pe.matchType;if(hi==="scheme"){var Jo=RW.exec(je);if(Jo&&(Ee=Ee+Jo.index,je=je.slice(Jo.index)),!Fue(je))return}else if(hi==="tld"){if(!Uue(je))return}else if(hi==="ipV4"){if(!Vue(je))return}else jg(hi);c.push(new kue({tagBuilder:n,matchedText:je,offset:Ee,urlMatchType:hi,url:je,protocolRelativeMatch:je.slice(0,2)==="//",stripPrefix:i,stripTrailingSlash:o,decodePercentEncoding:r}))}else if(pe.type==="email")Gue(je)&&c.push(new Wue({tagBuilder:n,matchedText:je,offset:Ee,email:je.replace(zue,"")}));else if(pe.type==="hashtag")jue(je)&&c.push(new que({tagBuilder:n,matchedText:je,offset:Ee,serviceName:s,hashtag:je.slice(1)}));else if(pe.type==="mention")Xue(je,a)&&c.push(new Jue({tagBuilder:n,matchedText:je,offset:Ee,serviceName:a,mention:je.slice(1)}));else if(pe.type==="phone"){if(je=je.replace(/ +$/g,""),Zue(je)){var vs=je.replace(/[^0-9,;#]/g,"");c.push(new Que({tagBuilder:n,matchedText:je,offset:Ee,number:vs,plusSign:je.charAt(0)==="+"}))}}else jg(pe)}}}var WKe=/[\(\{\[]/,$ue=/[\)\}\]]/,efe={")":"(","}":"{","]":"["};function jKe(e){for(var t={"(":0,"{":0,"[":0},n=0;n<e.length;n++){var i=e.charAt(n);WKe.test(i)?t[i]++:$ue.test(i)&&t[efe[i]]--}for(var o=e.length-1,r;o>=0;)if(r=e.charAt(o),$ue.test(r)){var s=efe[r];if(t[s]<0)t[s]++,o--;else break}else if(Nue.test(r))o--;else break;return e.slice(0,o+1)}function kW(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"scheme"}}function zW(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"tld"}}function YKe(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"ipV4",octetsEncountered:1}}function qKe(e,t){return{type:"email",startIdx:e,state:t,acceptStateReached:!1}}function XKe(e,t){return{type:"hashtag",startIdx:e,state:t,acceptStateReached:!1}}function KKe(e,t){return{type:"mention",startIdx:e,state:t,acceptStateReached:!1}}function HW(e,t){return{type:"phone",startIdx:e,state:t,acceptStateReached:!1}}function nfe(e,t){for(var n=t.onOpenTag,i=t.onCloseTag,o=t.onText,r=t.onComment,s=t.onDoctype,a=new qm,c=0,u=e.length,f=0,d=0,p=a;c<u;){var g=e.charAt(c);switch(f){case 0:h(g);break;case 1:A(g);break;case 2:C(g);break;case 3:x(g);break;case 4:T(g);break;case 5:E(g);break;case 6:S(g);break;case 7:v(g);break;case 8:D(g);break;case 9:O(g);break;case 10:M(g);break;case 11:L(g);break;case 12:N(g);break;case 13:_(g);break;case 14:b(g);break;case 15:w(g);break;case 16:I(g);break;case 17:R(g);break;case 18:F(g);break;case 19:k(g);break;case 20:V(g);break;default:jg(f)}c++}d<c&&Y();function h(K){K==="<"&&U()}function A(K){K==="!"?f=13:K==="/"?(f=2,p=new qm(bs(bs({},p),{isClosing:!0}))):K==="<"?U():Yg.test(K)?(f=3,p=new qm(bs(bs({},p),{isOpening:!0}))):(f=0,p=a)}function x(K){$l.test(K)?(p=new qm(bs(bs({},p),{name:Q()})),f=4):K==="<"?U():K==="/"?(p=new qm(bs(bs({},p),{name:Q()})),f=12):K===">"?(p=new qm(bs(bs({},p),{name:Q()})),q()):!Yg.test(K)&&!Es.test(K)&&K!==":"&&G()}function C(K){K===">"?G():Yg.test(K)?f=3:G()}function T(K){$l.test(K)||(K==="/"?f=12:K===">"?q():K==="<"?U():K==="="||K2.test(K)||wue.test(K)?G():f=5)}function E(K){$l.test(K)?f=6:K==="/"?f=12:K==="="?f=7:K===">"?q():K==="<"?U():K2.test(K)&&G()}function S(K){$l.test(K)||(K==="/"?f=12:K==="="?f=7:K===">"?q():K==="<"?U():K2.test(K)?G():f=5)}function v(K){$l.test(K)||(K==='"'?f=8:K==="'"?f=9:/[>=`]/.test(K)?G():K==="<"?U():f=10)}function D(K){K==='"'&&(f=11)}function O(K){K==="'"&&(f=11)}function M(K){$l.test(K)?f=4:K===">"?q():K==="<"&&U()}function L(K){$l.test(K)?f=4:K==="/"?f=12:K===">"?q():K==="<"?U():(f=4,W())}function N(K){K===">"?(p=new qm(bs(bs({},p),{isClosing:!0})),q()):f=4}function _(K){e.substr(c,2)==="--"?(c+=2,p=new qm(bs(bs({},p),{type:"comment"})),f=14):e.substr(c,7).toUpperCase()==="DOCTYPE"?(c+=7,p=new qm(bs(bs({},p),{type:"doctype"})),f=20):G()}function b(K){K==="-"?f=15:K===">"?G():f=16}function w(K){K==="-"?f=18:K===">"?G():f=16}function I(K){K==="-"&&(f=17)}function R(K){K==="-"?f=18:f=16}function F(K){K===">"?q():K==="!"?f=19:K==="-"||(f=16)}function k(K){K==="-"?f=17:K===">"?q():f=16}function V(K){K===">"?q():K==="<"&&U()}function G(){f=0,p=a}function U(){f=1,p=new qm({idx:c})}function q(){var K=e.slice(d,p.idx);K&&o(K,d),p.type==="comment"?r(p.idx):p.type==="doctype"?s(p.idx):(p.isOpening&&n(p.name,p.idx),p.isClosing&&i(p.name,p.idx)),G(),d=c+1}function Y(){var K=e.slice(d,c);o(K,d),d=c+1}function Q(){var K=p.idx+(p.isClosing?2:1);return e.slice(K,c).toLowerCase()}function W(){c--}}var qm=function(){function e(t){t===void 0&&(t={}),this.idx=t.idx!==void 0?t.idx:-1,this.type=t.type||"tag",this.name=t.name||"",this.isOpening=!!t.isOpening,this.isClosing=!!t.isClosing}return e}();var JKe=function(){function e(t){t===void 0&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:"end"},this.className="",this.replaceFn=null,this.context=void 0,this.sanitizeHtml=!1,this.tagBuilder=null,this.urls=ZKe(t.urls),this.email=Ql(t.email)?t.email:this.email,this.phone=Ql(t.phone)?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=Ql(t.newWindow)?t.newWindow:this.newWindow,this.stripPrefix=QKe(t.stripPrefix),this.stripTrailingSlash=Ql(t.stripTrailingSlash)?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=Ql(t.decodePercentEncoding)?t.decodePercentEncoding:this.decodePercentEncoding,this.sanitizeHtml=t.sanitizeHtml||!1;var n=this.mention;if(n!==!1&&Kue.indexOf(n)===-1)throw new Error("invalid `mention` cfg '".concat(n,"' - see docs"));var i=this.hashtag;if(i!==!1&&Yue.indexOf(i)===-1)throw new Error("invalid `hashtag` cfg '".concat(i,"' - see docs"));this.truncate=$Ke(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,n){var i=new e(n);return i.link(t)},e.parse=function(t,n){var i=new e(n);return i.parse(t)},e.prototype.parse=function(t){var n=this,i=["a","style","script"],o=0,r=[];return nfe(t,{onOpenTag:function(s){i.indexOf(s)>=0&&o++},onText:function(s,a){if(o===0){var c=/( | |<|<|>|>|"|"|')/gi,u=s.split(c),f=a;u.forEach(function(d,p){if(p%2===0){var g=n.parseText(d,f);r.push.apply(r,g)}f+=d.length})}},onCloseTag:function(s){i.indexOf(s)>=0&&(o=Math.max(o-1,0))},onComment:function(s){},onDoctype:function(s){}}),r=this.compactMatches(r),r=this.removeUnwantedMatches(r),r},e.prototype.compactMatches=function(t){t.sort(function(c,u){return c.getOffset()-u.getOffset()});for(var n=0;n<t.length-1;){var i=t[n],o=i.getOffset(),r=i.getMatchedText().length,s=o+r;if(n+1<t.length){if(t[n+1].getOffset()===o){var a=t[n+1].getMatchedText().length>r?n:n+1;t.splice(a,1);continue}if(t[n+1].getOffset()<s){t.splice(n+1,1);continue}}n++}return t},e.prototype.removeUnwantedMatches=function(t){return this.hashtag||Wg(t,function(n){return n.getType()==="hashtag"}),this.email||Wg(t,function(n){return n.getType()==="email"}),this.phone||Wg(t,function(n){return n.getType()==="phone"}),this.mention||Wg(t,function(n){return n.getType()==="mention"}),this.urls.schemeMatches||Wg(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="scheme"}),this.urls.tldMatches||Wg(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="tld"}),this.urls.ipV4Matches||Wg(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="ipV4"}),t},e.prototype.parseText=function(t,n){n===void 0&&(n=0),n=n||0;for(var i=tfe(t,{tagBuilder:this.getTagBuilder(),stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding,hashtagServiceName:this.hashtag,mentionServiceName:this.mention||"twitter"}),o=0,r=i.length;o<r;o++)i[o].setOffset(n+i[o].getOffset());return i},e.prototype.link=function(t){if(!t)return"";this.sanitizeHtml&&(t=t.replace(/</g,"<").replace(/>/g,">"));for(var n=this.parse(t),i=[],o=0,r=0,s=n.length;r<s;r++){var a=n[r];i.push(t.substring(o,a.getOffset())),i.push(this.createMatchReturnVal(a)),o=a.getOffset()+a.getMatchedText().length}return i.push(t.substring(o)),i.join("")},e.prototype.createMatchReturnVal=function(t){var n;if(this.replaceFn&&(n=this.replaceFn.call(this.context,t)),typeof n=="string")return n;if(n===!1)return t.getMatchedText();if(n instanceof J2)return n.toAnchorString();var i=t.buildTag();return i.toAnchorString()},e.prototype.getTagBuilder=function(){var t=this.tagBuilder;return t||(t=this.tagBuilder=new Mue({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),t},e.version=Eue,e}(),ife=JKe;function ZKe(e){return e==null&&(e=!0),Ql(e)?{schemeMatches:e,tldMatches:e,ipV4Matches:e}:{schemeMatches:Ql(e.schemeMatches)?e.schemeMatches:!0,tldMatches:Ql(e.tldMatches)?e.tldMatches:!0,ipV4Matches:Ql(e.ipV4Matches)?e.ipV4Matches:!0}}function QKe(e){return e==null&&(e=!0),Ql(e)?{scheme:e,www:e}:{scheme:Ql(e.scheme)?e.scheme:!0,www:Ql(e.www)?e.www:!0}}function $Ke(e){return typeof e=="number"?{length:e,location:"end"}:bue(e||{},{length:Number.POSITIVE_INFINITY,location:"end"})}var n3=ife;var dfe;typeof DOMParser<"u"&&(dfe=new DOMParser);var eJe=new n3({stripPrefix:!1,email:!1,replaceFn:function(e,t){return t.urlMatchType==="scheme"||t.urlMatchType==="www"}}),i3=32,ofe=2414016,rfe=1,sfe=16093e3,afe=.1,tJe=[null,void 0,"http://www.topografix.com/GPX/1/1"],Co={gpx:tJe};function nJe(e){return new Promise((t,n)=>{let i=new FileReader;i.addEventListener("load",function(){t(i.result)}),i.addEventListener("error",function(){n(i.error)}),i.readAsText(e)})}function GW(e,t){let n=jv(e,"id");return n=l(n)?n:jn(),t.getOrCreateEntity(n)}function WW(e){let t=cfe(e,"lon"),n=cfe(e,"lat"),i=Gv(e,"ele",Co.gpx);return m.fromDegrees(t,n,i)}function cfe(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function jv(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function qg(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r<o;r++){let s=i[r];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function jW(e,t,n){if(!l(e))return;let i=[],o=e.getElementsByTagName(t),r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function Gv(e,t,n){let i=qg(e,t,n);if(l(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function al(e,t,n){let i=qg(e,t,n);if(l(i))return i.textContent.trim()}function mfe(e){let t=new lc;return t.width=i3,t.height=i3,t.scaleByDistance=new Lt(ofe,rfe,sfe,afe),t.pixelOffsetScaleByDistance=new Lt(ofe,rfe,sfe,afe),t.verticalOrigin=new $n(Rn.BOTTOM),t.image=e,t}function iJe(){let e=new am;return e.translucencyByDistance=new Lt(3e6,1,5e6,0),e.pixelOffset=new H(17,0),e.horizontalOrigin=_i.LEFT,e.font="16px sans-serif",e.style=Ho.FILL_AND_OUTLINE,e}function hfe(e){let t=new pc;return t.width=4,t.material=new rA,t.material.color=l(e)?e:z.RED,t.material.outlineWidth=2,t.material.outlineColor=z.BLACK,t}var lfe={time:{text:"Time",tag:"time"},comment:{text:"Comment",tag:"cmt"},description:{text:"Description",tag:"desc"},source:{text:"Source",tag:"src"},number:{text:"GPS track/route number",tag:"number"},type:{text:"Type",tag:"type"}},Wv;typeof document<"u"&&(Wv=document.createElement("div"));function YW(e,t){let n,i="",o=Object.keys(lfe),r=o.length;for(n=0;n<r;n++){let f=o[n],d=lfe[f];d.value=y(al(e,d.tag,Co.gpx),""),l(d.value)&&d.value!==""&&(i=`${i}<p>${d.text}: ${d.value}</p>`)}if(!l(i)||i==="")return;i=eJe.link(i),Wv.innerHTML=i;let s=Wv.querySelectorAll("a");for(n=0;n<s.length;n++)s[n].setAttribute("target","_blank");let a=z.WHITE,c=z.BLACK,u='<div class="cesium-infoBox-description-lighter" style="';return u+="overflow:auto;",u+="word-wrap:break-word;",u+=`background-color:${a.toCssColorString()};`,u+=`color:${c.toCssColorString()};`,u+='">',u+=`${Wv.innerHTML}</div>`,Wv.innerHTML="",u}function pfe(e,t,n,i){let o=WW(t),r=GW(t,n);r.position=o;let s=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",z.RED,i3);r.billboard=mfe(s);let a=al(t,"name",Co.gpx);r.name=a,r.label=iJe(),r.label.text=a,r.description=YW(t,r),i.clampToGround&&(r.billboard.heightReference=qe.CLAMP_TO_GROUND,r.label.heightReference=qe.CLAMP_TO_GROUND)}function oJe(e,t,n,i){let o=GW(t,n);o.description=YW(t,o);let r=jW(t,"rtept",Co.gpx),s=new Array(r.length);for(let a=0;a<r.length;a++)pfe(e,r[a],n,i),s[a]=WW(r[a]);o.polyline=hfe(i.routeColor),i.clampToGround&&(o.polyline.clampToGround=!0),o.polyline.positions=s}function rJe(e,t,n,i){let o=GW(t,n);o.description=YW(t,o);let r=jW(t,"trkseg",Co.gpx),s=[],a=[],c,u=!0,f=new ma;for(let d=0;d<r.length;d++)c=sJe(r[d]),s=s.concat(c.positions),c.times.length>0?(a=a.concat(c.times),f.addSamples(a,s),u=u&&!0):u=!1;if(u){let d=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",z.RED,i3);o.billboard=mfe(d),o.position=f,i.clampToGround&&(o.billboard.heightReference=qe.CLAMP_TO_GROUND),o.availability=new Rr,o.availability.addInterval(new bn({start:a[0],stop:a[a.length-1]}))}o.polyline=hfe(i.trackColor),o.polyline.positions=s,i.clampToGround&&(o.polyline.clampToGround=!0)}function sJe(e){let t={positions:[],times:[]},n=jW(e,"trkpt",Co.gpx),i;for(let o=0;o<n.length;o++){let r=WW(n[o]);t.positions.push(r),i=al(n[o],"time",Co.gpx),l(i)&&t.times.push(ee.fromIso8601(i))}return t}function aJe(e){let t=qg(e,"metadata",Co.gpx);if(l(t)){let n={name:al(t,"name",Co.gpx),desc:al(t,"desc",Co.gpx),author:cJe(t),copyright:uJe(t),link:_fe(t),time:al(t,"time",Co.gpx),keywords:al(t,"keywords",Co.gpx),bounds:fJe(t)};if(l(n.name)||l(n.desc)||l(n.author)||l(n.copyright)||l(n.link)||l(n.time)||l(n.keywords)||l(n.bounds))return n}}function cJe(e){let t=qg(e,"author",Co.gpx);if(l(t)){let n={name:al(t,"name",Co.gpx),email:lJe(t),link:_fe(t)};if(l(n.name)||l(n.email)||l(n.link))return n}}function lJe(e){let t=qg(e,"email",Co.gpx);if(l(t)){let n=al(t,"id",Co.gpx),i=al(t,"domain",Co.gpx);return`${n}@${i}`}}function _fe(e){let t=qg(e,"link",Co.gpx);if(l(t)){let n={href:jv(t,"href"),text:al(t,"text",Co.gpx),mimeType:al(t,"type",Co.gpx)};if(l(n.href)||l(n.text)||l(n.mimeType))return n}}function uJe(e){let t=qg(e,"copyright",Co.gpx);if(l(t)){let n={author:jv(t,"author"),year:al(t,"year",Co.gpx),license:al(t,"license",Co.gpx)};if(l(n.author)||l(n.year)||l(n.license))return n}}function fJe(e){let t=qg(e,"bounds",Co.gpx);if(l(t)){let n={minLat:Gv(t,"minlat",Co.gpx),maxLat:Gv(t,"maxlat",Co.gpx),minLon:Gv(t,"minlon",Co.gpx),maxLon:Gv(t,"maxlon",Co.gpx)};if(l(n.minLat)||l(n.maxLat)||l(n.minLon)||l(n.maxLon))return n}}var ufe={wpt:pfe,rte:oJe,trk:rJe};function dJe(e,t,n,i){let o=Object.keys(ufe),r=o.length;for(let s=0;s<r;s++){let a=o[s],c=ufe[a],u=t.childNodes,f=u.length;for(let d=0;d<f;d++){let p=u[d];p.localName===a&&Co.gpx.indexOf(p.namespaceURI)!==-1&&c(e,p,n,i)}}}function ffe(e,t,n){let i=e._entityCollection;i.removeAll();let o=t.documentElement,r=jv(o,"version"),s=jv(o,"creator"),a,c=aJe(o);l(c)&&(a=c.name),o.localName==="gpx"?dJe(e,o,i,n):console.log(`GPX - Unsupported node: ${o.localName}`);let u,f=i.computeAvailability(),d=f.start,p=f.stop,g=ee.equals(d,Ge.MINIMUM_VALUE),h=ee.equals(p,Ge.MAXIMUM_VALUE);if(!g||!h){let x;g&&(x=new Date,x.setHours(0,0,0,0),d=ee.fromDate(x)),h&&(x=new Date,x.setHours(24,0,0,0),p=ee.fromDate(x)),u=new Lm,u.startTime=d,u.stopTime=p,u.currentTime=ee.clone(d),u.clockRange=Lr.LOOP_STOP,u.clockStep=go.SYSTEM_CLOCK_MULTIPLIER,u.multiplier=Math.round(Math.min(Math.max(ee.secondsDifference(p,d)/60,1),31556900))}let A=!1;return e._name!==a&&(e._name=a,A=!0),e._creator!==s&&(e._creator=s,A=!0),mJe(e._metadata,c)&&(e._metadata=c,A=!0),e._version!==r&&(e._version=r,A=!0),u!==e._clock&&(A=!0,e._clock=u),A&&e._changed.raiseEvent(e),Br.setLoading(e,!1),e}function mJe(e,t){return!l(e)&&!l(t)?!1:l(e)&&l(t)?e.name!==t.name||e.dec!==t.desc||e.src!==t.src||e.author!==t.author||e.copyright!==t.copyright||e.link!==t.link||e.time!==t.time||e.bounds!==t.bounds:!0}function hJe(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let o=n;if(typeof n=="string"||n instanceof we){n=we.createIfNeeded(n),o=n.fetchBlob();let r=e._resourceCredits,s=n.credits;if(l(s)){let a=s.length;for(let c=0;c<a;c++)r.push(s[c])}}return Promise.resolve(o).then(function(r){return r instanceof Blob?nJe(r).then(function(s){let a,c;try{a=dfe.parseFromString(s,"application/xml")}catch(u){c=u.toString()}if(l(c)||a.body||a.documentElement.tagName==="parsererror"){let u=l(c)?c:a.documentElement.firstChild.nodeValue;throw u||(u=a.body.innerText),new de(u)}return ffe(e,a,i)}):ffe(e,r,i)}).catch(function(r){return e._error.raiseEvent(e,r),console.log(r),Promise.reject(r)})}function bE(){this._changed=new ge,this._error=new ge,this._loading=new ge,this._clock=void 0,this._entityCollection=new zs(this),this._entityCluster=new Qu,this._name=void 0,this._version=void 0,this._creator=void 0,this._metadata=void 0,this._isLoading=!1,this._pinBuilder=new Hg}bE.load=function(e,t){return new bE().load(e,t)};Object.defineProperties(bE.prototype,{name:{get:function(){return this._name}},version:{get:function(){return this._version}},creator:{get:function(){return this._creator}},metadata:{get:function(){return this._metadata}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});bE.prototype.update=function(e){return!0};bE.prototype.load=function(e,t){if(!l(e))throw new fe("data is required.");t=y(t,y.EMPTY_OBJECT),Br.setLoading(this,!0);let n=this._name,i=this;return hJe(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=ee.equals(s,Ge.MINIMUM_VALUE),u=ee.equals(a,Ge.MAXIMUM_VALUE);if(!c||!u){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=ee.fromDate(d)),u&&(d=new Date,d.setHours(24,0,0,0),a=ee.fromDate(d)),o=new Lm,o.startTime=s,o.stopTime=a,o.currentTime=ee.clone(s),o.clockRange=Lr.LOOP_STOP,o.clockStep=go.SYSTEM_CLOCK_MULTIPLIER,o.multiplier=Math.round(Math.min(Math.max(ee.secondsDifference(a,s)/60,1),31556900))}let f=!1;return o!==i._clock&&(i._clock=o,f=!0),n!==i._name&&(f=!0),f&&i._changed.raiseEvent(i),Br.setLoading(i,!1),i}).catch(function(o){return Br.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};var o3=bE;function pJe(e,t){this.position=e,this.headingPitchRoll=t}var r3=pJe;var nD=ar(bl(),1);function d3(e){return m3(e.map(([t,n])=>new Array(t).fill(n,0,t)))}function m3(e){return e.reduce((t,n)=>t.concat(Array.isArray(n)?m3(n):n),[])}var gfe=[0,1,2,3].concat(...d3([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function or(){let e=this;function t(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,u=e.stat_desc.max_length,f,d,p,g,h,A,x=0;for(g=0;g<=15;g++)o.bl_count[g]=0;for(r[o.heap[o.heap_max]*2+1]=0,f=o.heap_max+1;f<573;f++)d=o.heap[f],g=r[r[d*2+1]*2+1]+1,g>u&&(g=u,x++),r[d*2+1]=g,!(d>e.max_code)&&(o.bl_count[g]++,h=0,d>=c&&(h=a[d-c]),A=r[d*2],o.opt_len+=A*(g+h),s&&(o.static_len+=A*(s[d*2+1]+h)));if(x!==0){do{for(g=u-1;o.bl_count[g]===0;)g--;o.bl_count[g]--,o.bl_count[g+1]+=2,o.bl_count[u]--,x-=2}while(x>0);for(g=u;g!==0;g--)for(d=o.bl_count[g];d!==0;)p=o.heap[--f],!(p>e.max_code)&&(r[p*2+1]!=g&&(o.opt_len+=(g-r[p*2+1])*r[p*2],r[p*2+1]=g),d--)}}function n(o,r){let s=0;do s|=o&1,o>>>=1,s<<=1;while(--r>0);return s>>>1}function i(o,r,s){let a=[],c=0,u,f,d;for(u=1;u<=15;u++)a[u]=c=c+s[u-1]<<1;for(f=0;f<=r;f++)d=o[f*2+1],d!==0&&(o[f*2]=n(a[d]++,d))}e.build_tree=function(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.elems,c,u,f=-1,d;for(o.heap_len=0,o.heap_max=573,c=0;c<a;c++)r[c*2]!==0?(o.heap[++o.heap_len]=f=c,o.depth[c]=0):r[c*2+1]=0;for(;o.heap_len<2;)d=o.heap[++o.heap_len]=f<2?++f:0,r[d*2]=1,o.depth[d]=0,o.opt_len--,s&&(o.static_len-=s[d*2+1]);for(e.max_code=f,c=Math.floor(o.heap_len/2);c>=1;c--)o.pqdownheap(r,c);d=a;do c=o.heap[1],o.heap[1]=o.heap[o.heap_len--],o.pqdownheap(r,1),u=o.heap[1],o.heap[--o.heap_max]=c,o.heap[--o.heap_max]=u,r[d*2]=r[c*2]+r[u*2],o.depth[d]=Math.max(o.depth[c],o.depth[u])+1,r[c*2+1]=r[u*2+1]=d,o.heap[1]=d++,o.pqdownheap(r,1);while(o.heap_len>=2);o.heap[--o.heap_max]=o.heap[1],t(o),i(r,e.max_code,o.bl_count)}}or._length_code=[0,1,2,3,4,5,6,7].concat(...d3([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]));or.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0];or.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576];or.d_code=function(e){return e<256?gfe[e]:gfe[256+(e>>>7)]};or.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];or.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];or.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];or.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function ha(e,t,n,i,o){let r=this;r.static_tree=e,r.extra_bits=t,r.extra_base=n,r.elems=i,r.max_length=o}var _Je=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],gJe=d3([[144,8],[112,9],[24,7],[8,8]]);ha.static_ltree=m3(_Je.map((e,t)=>[e,gJe[t]]));var yJe=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],AJe=d3([[30,5]]);ha.static_dtree=m3(yJe.map((e,t)=>[e,AJe[t]]));ha.static_l_desc=new ha(ha.static_ltree,or.extra_lbits,256+1,286,15);ha.static_d_desc=new ha(ha.static_dtree,or.extra_dbits,0,30,15);ha.static_bl_desc=new ha(null,or.extra_blbits,0,19,7);var xJe=9,CJe=8;function Xm(e,t,n,i,o){let r=this;r.good_length=e,r.max_lazy=t,r.nice_length=n,r.max_chain=i,r.func=o}var Afe=0,u3=1,gA=2,Ed=[new Xm(0,0,0,0,Afe),new Xm(4,4,8,4,u3),new Xm(4,5,16,8,u3),new Xm(4,6,32,32,u3),new Xm(4,4,16,16,gA),new Xm(8,16,32,32,gA),new Xm(8,16,128,128,gA),new Xm(8,32,128,256,gA),new Xm(32,128,258,1024,gA),new Xm(32,258,258,4096,gA)],s3=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],lf=0,a3=1,Yv=2,c3=3,TJe=32,qW=42,l3=113,qv=666,XW=8,EJe=0,KW=1,bJe=2,dr=3,f3=258,eu=f3+dr+1;function yfe(e,t,n,i){let o=e[t*2],r=e[n*2];return o<r||o==r&&i[t]<=i[n]}function SJe(){let e=this,t,n,i,o,r,s,a,c,u,f,d,p,g,h,A,x,C,T,E,S,v,D,O,M,L,N,_,b,w,I,R,F,k,V=new or,G=new or,U=new or;e.depth=[];let q,Y,Q,W,K,J;e.bl_count=[],e.heap=[],R=[],F=[],k=[];function _e(){u=2*r,d[g-1]=0;for(let Be=0;Be<g-1;Be++)d[Be]=0;N=Ed[_].max_lazy,w=Ed[_].good_length,I=Ed[_].nice_length,L=Ed[_].max_chain,v=0,C=0,O=0,T=M=dr-1,S=0,p=0}function xe(){let Be;for(Be=0;Be<286;Be++)R[Be*2]=0;for(Be=0;Be<30;Be++)F[Be*2]=0;for(Be=0;Be<19;Be++)k[Be*2]=0;R[256*2]=1,e.opt_len=e.static_len=0,Y=Q=0}function se(){V.dyn_tree=R,V.stat_desc=ha.static_l_desc,G.dyn_tree=F,G.stat_desc=ha.static_d_desc,U.dyn_tree=k,U.stat_desc=ha.static_bl_desc,K=0,J=0,W=8,xe()}e.pqdownheap=function(Be,st){let Qe=e.heap,$e=Qe[st],_t=st<<1;for(;_t<=e.heap_len&&(_t<e.heap_len&&yfe(Be,Qe[_t+1],Qe[_t],e.depth)&&_t++,!yfe(Be,$e,Qe[_t],e.depth));)Qe[st]=Qe[_t],st=_t,_t<<=1;Qe[st]=$e};function Ae(Be,st){let Qe=-1,$e,_t=Be[0*2+1],kt=0,on=7,Yi=4;_t===0&&(on=138,Yi=3),Be[(st+1)*2+1]=65535;for(let fo=0;fo<=st;fo++)$e=_t,_t=Be[(fo+1)*2+1],!(++kt<on&&$e==_t)&&(kt<Yi?k[$e*2]+=kt:$e!==0?($e!=Qe&&k[$e*2]++,k[16*2]++):kt<=10?k[17*2]++:k[18*2]++,kt=0,Qe=$e,_t===0?(on=138,Yi=3):$e==_t?(on=6,Yi=3):(on=7,Yi=4))}function me(){let Be;for(Ae(R,V.max_code),Ae(F,G.max_code),U.build_tree(e),Be=19-1;Be>=3&&k[or.bl_order[Be]*2+1]===0;Be--);return e.opt_len+=3*(Be+1)+5+5+4,Be}function Se(Be){e.pending_buf[e.pending++]=Be}function Ie(Be){Se(Be&255),Se(Be>>>8&255)}function Ue(Be){Se(Be>>8&255),Se(Be&255&255)}function Re(Be,st){let Qe,$e=st;J>16-$e?(Qe=Be,K|=Qe<<J&65535,Ie(K),K=Qe>>>16-J,J+=$e-16):(K|=Be<<J&65535,J+=$e)}function ke(Be,st){let Qe=Be*2;Re(st[Qe]&65535,st[Qe+1]&65535)}function ft(Be,st){let Qe,$e=-1,_t,kt=Be[0*2+1],on=0,Yi=7,fo=4;for(kt===0&&(Yi=138,fo=3),Qe=0;Qe<=st;Qe++)if(_t=kt,kt=Be[(Qe+1)*2+1],!(++on<Yi&&_t==kt)){if(on<fo)do ke(_t,k);while(--on!==0);else _t!==0?(_t!=$e&&(ke(_t,k),on--),ke(16,k),Re(on-3,2)):on<=10?(ke(17,k),Re(on-3,3)):(ke(18,k),Re(on-11,7));on=0,$e=_t,kt===0?(Yi=138,fo=3):_t==kt?(Yi=6,fo=3):(Yi=7,fo=4)}}function pt(Be,st,Qe){let $e;for(Re(Be-257,5),Re(st-1,5),Re(Qe-4,4),$e=0;$e<Qe;$e++)Re(k[or.bl_order[$e]*2+1],3);ft(R,Be-1),ft(F,st-1)}function rt(){J==16?(Ie(K),K=0,J=0):J>=8&&(Se(K&255),K>>>=8,J-=8)}function un(){Re(KW<<1,3),ke(256,ha.static_ltree),rt(),1+W+10-J<9&&(Re(KW<<1,3),ke(256,ha.static_ltree),rt()),W=7}function Mn(Be,st){let Qe,$e,_t;if(e.dist_buf[Y]=Be,e.lc_buf[Y]=st&255,Y++,Be===0?R[st*2]++:(Q++,Be--,R[(or._length_code[st]+256+1)*2]++,F[or.d_code(Be)*2]++),!(Y&8191)&&_>2){for(Qe=Y*8,$e=v-C,_t=0;_t<30;_t++)Qe+=F[_t*2]*(5+or.extra_dbits[_t]);if(Qe>>>=3,Q<Math.floor(Y/2)&&Qe<Math.floor($e/2))return!0}return Y==q-1}function Wt(Be,st){let Qe,$e,_t=0,kt,on;if(Y!==0)do Qe=e.dist_buf[_t],$e=e.lc_buf[_t],_t++,Qe===0?ke($e,Be):(kt=or._length_code[$e],ke(kt+256+1,Be),on=or.extra_lbits[kt],on!==0&&($e-=or.base_length[kt],Re($e,on)),Qe--,kt=or.d_code(Qe),ke(kt,st),on=or.extra_dbits[kt],on!==0&&(Qe-=or.base_dist[kt],Re(Qe,on)));while(_t<Y);ke(256,Be),W=Be[256*2+1]}function Ze(){J>8?Ie(K):J>0&&Se(K&255),K=0,J=0}function pe(Be,st,Qe){Ze(),W=8,Qe&&(Ie(st),Ie(~st)),e.pending_buf.set(c.subarray(Be,Be+st),e.pending),e.pending+=st}function Ee(Be,st,Qe){Re((EJe<<1)+(Qe?1:0),3),pe(Be,st,!0)}function je(Be,st,Qe){let $e,_t,kt=0;_>0?(V.build_tree(e),G.build_tree(e),kt=me(),$e=e.opt_len+3+7>>>3,_t=e.static_len+3+7>>>3,_t<=$e&&($e=_t)):$e=_t=st+5,st+4<=$e&&Be!=-1?Ee(Be,st,Qe):_t==$e?(Re((KW<<1)+(Qe?1:0),3),Wt(ha.static_ltree,ha.static_dtree)):(Re((bJe<<1)+(Qe?1:0),3),pt(V.max_code+1,G.max_code+1,kt+1),Wt(R,F)),xe(),Qe&&Ze()}function fi(Be){je(C>=0?C:-1,v-C,Be),C=v,t.flush_pending()}function hi(){let Be,st,Qe,$e;do{if($e=u-O-v,$e===0&&v===0&&O===0)$e=r;else if($e==-1)$e--;else if(v>=r+r-eu){c.set(c.subarray(r,r+r),0),D-=r,v-=r,C-=r,Be=g,Qe=Be;do st=d[--Qe]&65535,d[Qe]=st>=r?st-r:0;while(--Be!==0);Be=r,Qe=Be;do st=f[--Qe]&65535,f[Qe]=st>=r?st-r:0;while(--Be!==0);$e+=r}if(t.avail_in===0)return;Be=t.read_buf(c,v+O,$e),O+=Be,O>=dr&&(p=c[v]&255,p=(p<<x^c[v+1]&255)&A)}while(O<eu&&t.avail_in!==0)}function Jo(Be){let st=65535,Qe;for(st>i-5&&(st=i-5);;){if(O<=1){if(hi(),O===0&&Be==0)return lf;if(O===0)break}if(v+=O,O=0,Qe=C+st,(v===0||v>=Qe)&&(O=v-Qe,v=Qe,fi(!1),t.avail_out===0)||v-C>=r-eu&&(fi(!1),t.avail_out===0))return lf}return fi(Be==4),t.avail_out===0?Be==4?Yv:lf:Be==4?c3:a3}function vs(Be){let st=L,Qe=v,$e,_t,kt=M,on=v>r-eu?v-(r-eu):0,Yi=I,fo=a,Jr=v+f3,Zr=c[Qe+kt-1],rr=c[Qe+kt];M>=w&&(st>>=2),Yi>O&&(Yi=O);do if($e=Be,!(c[$e+kt]!=rr||c[$e+kt-1]!=Zr||c[$e]!=c[Qe]||c[++$e]!=c[Qe+1])){Qe+=2,$e++;do;while(c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&c[++Qe]==c[++$e]&&Qe<Jr);if(_t=f3-(Jr-Qe),Qe=Jr-f3,_t>kt){if(D=Be,kt=_t,_t>=Yi)break;Zr=c[Qe+kt-1],rr=c[Qe+kt]}}while((Be=f[Be&fo]&65535)>on&&--st!==0);return kt<=O?kt:O}function Ds(Be){let st=0,Qe;for(;;){if(O<eu){if(hi(),O<eu&&Be==0)return lf;if(O===0)break}if(O>=dr&&(p=(p<<x^c[v+(dr-1)]&255)&A,st=d[p]&65535,f[v&a]=d[p],d[p]=v),st!==0&&(v-st&65535)<=r-eu&&b!=2&&(T=vs(st)),T>=dr)if(Qe=Mn(v-D,T-dr),O-=T,T<=N&&O>=dr){T--;do v++,p=(p<<x^c[v+(dr-1)]&255)&A,st=d[p]&65535,f[v&a]=d[p],d[p]=v;while(--T!==0);v++}else v+=T,T=0,p=c[v]&255,p=(p<<x^c[v+1]&255)&A;else Qe=Mn(0,c[v]&255),O--,v++;if(Qe&&(fi(!1),t.avail_out===0))return lf}return fi(Be==4),t.avail_out===0?Be==4?Yv:lf:Be==4?c3:a3}function vr(Be){let st=0,Qe,$e;for(;;){if(O<eu){if(hi(),O<eu&&Be==0)return lf;if(O===0)break}if(O>=dr&&(p=(p<<x^c[v+(dr-1)]&255)&A,st=d[p]&65535,f[v&a]=d[p],d[p]=v),M=T,E=D,T=dr-1,st!==0&&M<N&&(v-st&65535)<=r-eu&&(b!=2&&(T=vs(st)),T<=5&&(b==1||T==dr&&v-D>4096)&&(T=dr-1)),M>=dr&&T<=M){$e=v+O-dr,Qe=Mn(v-1-E,M-dr),O-=M-1,M-=2;do++v<=$e&&(p=(p<<x^c[v+(dr-1)]&255)&A,st=d[p]&65535,f[v&a]=d[p],d[p]=v);while(--M!==0);if(S=0,T=dr-1,v++,Qe&&(fi(!1),t.avail_out===0))return lf}else if(S!==0){if(Qe=Mn(0,c[v-1]&255),Qe&&fi(!1),v++,O--,t.avail_out===0)return lf}else S=1,v++,O--}return S!==0&&(Qe=Mn(0,c[v-1]&255),S=0),fi(Be==4),t.avail_out===0?Be==4?Yv:lf:Be==4?c3:a3}function vo(Be){return Be.total_in=Be.total_out=0,Be.msg=null,e.pending=0,e.pending_out=0,n=l3,o=0,se(),_e(),0}e.deflateInit=function(Be,st,Qe,$e,_t,kt){return $e||($e=XW),_t||(_t=CJe),kt||(kt=0),Be.msg=null,st==-1&&(st=6),_t<1||_t>xJe||$e!=XW||Qe<9||Qe>15||st<0||st>9||kt<0||kt>2?-2:(Be.dstate=e,s=Qe,r=1<<s,a=r-1,h=_t+7,g=1<<h,A=g-1,x=Math.floor((h+dr-1)/dr),c=new Uint8Array(r*2),f=[],d=[],q=1<<_t+6,e.pending_buf=new Uint8Array(q*4),i=q*4,e.dist_buf=new Uint16Array(q),e.lc_buf=new Uint8Array(q),_=st,b=kt,vo(Be))},e.deflateEnd=function(){return n!=qW&&n!=l3&&n!=qv?-2:(e.lc_buf=null,e.dist_buf=null,e.pending_buf=null,d=null,f=null,c=null,e.dstate=null,n==l3?-3:0)},e.deflateParams=function(Be,st,Qe){let $e=0;return st==-1&&(st=6),st<0||st>9||Qe<0||Qe>2?-2:(Ed[_].func!=Ed[st].func&&Be.total_in!==0&&($e=Be.deflate(1)),_!=st&&(_=st,N=Ed[_].max_lazy,w=Ed[_].good_length,I=Ed[_].nice_length,L=Ed[_].max_chain),b=Qe,$e)},e.deflateSetDictionary=function(Be,st,Qe){let $e=Qe,_t,kt=0;if(!st||n!=qW)return-2;if($e<dr)return 0;for($e>r-eu&&($e=r-eu,kt=Qe-$e),c.set(st.subarray(kt,kt+$e),0),v=$e,C=$e,p=c[0]&255,p=(p<<x^c[1]&255)&A,_t=0;_t<=$e-dr;_t++)p=(p<<x^c[_t+(dr-1)]&255)&A,f[_t&a]=d[p],d[p]=_t;return 0},e.deflate=function(Be,st){let Qe,$e,_t,kt,on;if(st>4||st<0)return-2;if(!Be.next_out||!Be.next_in&&Be.avail_in!==0||n==qv&&st!=4)return Be.msg=s3[2- -2],-2;if(Be.avail_out===0)return Be.msg=s3[2- -5],-5;if(t=Be,kt=o,o=st,n==qW&&($e=XW+(s-8<<4)<<8,_t=(_-1&255)>>1,_t>3&&(_t=3),$e|=_t<<6,v!==0&&($e|=TJe),$e+=31-$e%31,n=l3,Ue($e)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return o=-1,0}else if(t.avail_in===0&&st<=kt&&st!=4)return t.msg=s3[2- -5],-5;if(n==qv&&t.avail_in!==0)return Be.msg=s3[2- -5],-5;if(t.avail_in!==0||O!==0||st!=0&&n!=qv){switch(on=-1,Ed[_].func){case Afe:on=Jo(st);break;case u3:on=Ds(st);break;case gA:on=vr(st);break;default:}if((on==Yv||on==c3)&&(n=qv),on==lf||on==Yv)return t.avail_out===0&&(o=-1),0;if(on==a3){if(st==1)un();else if(Ee(0,0,!1),st==3)for(Qe=0;Qe<g;Qe++)d[Qe]=0;if(t.flush_pending(),t.avail_out===0)return o=-1,0}}return st!=4?0:1}}function xfe(){let e=this;e.next_in_index=0,e.next_out_index=0,e.avail_in=0,e.total_in=0,e.avail_out=0,e.total_out=0}xfe.prototype={deflateInit:function(e,t){let n=this;return n.dstate=new SJe,t||(t=15),n.dstate.deflateInit(n,e,t)},deflate:function(e){let t=this;return t.dstate?t.dstate.deflate(t,e):-2},deflateEnd:function(){let e=this;if(!e.dstate)return-2;let t=e.dstate.deflateEnd();return e.dstate=null,t},deflateParams:function(e,t){let n=this;return n.dstate?n.dstate.deflateParams(n,e,t):-2},deflateSetDictionary:function(e,t){let n=this;return n.dstate?n.dstate.deflateSetDictionary(n,e,t):-2},read_buf:function(e,t,n){let i=this,o=i.avail_in;return o>n&&(o=n),o===0?0:(i.avail_in-=o,e.set(i.next_in.subarray(i.next_in_index,i.next_in_index+o),t),i.next_in_index+=o,i.total_in+=o,o)},flush_pending:function(){let e=this,t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,e.dstate.pending===0&&(e.dstate.pending_out=0))}};function wJe(e){let t=this,n=new xfe,i=vJe(e&&e.chunkSize?e.chunkSize:64*1024),o=0,r=new Uint8Array(i),s=e?e.level:-1;typeof s>"u"&&(s=-1),n.deflateInit(s),n.next_out=r,t.append=function(a,c){let u,f,d=0,p=0,g=0,h=[];if(a.length){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,u=n.deflate(o),u!=0)throw new Error("deflating: "+n.msg);n.next_out_index&&(n.next_out_index==i?h.push(new Uint8Array(r)):h.push(r.slice(0,n.next_out_index))),g+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=d&&(c(n.next_in_index),d=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return h.length>1?(f=new Uint8Array(g),h.forEach(function(A){f.set(A,p),p+=A.length})):f=h[0]||new Uint8Array(0),f}},t.flush=function(){let a,c,u=0,f=0,d=[];do{if(n.next_out_index=0,n.avail_out=i,a=n.deflate(4),a!=1&&a!=0)throw new Error("deflating: "+n.msg);i-n.avail_out>0&&d.push(r.slice(0,n.next_out_index)),f+=n.next_out_index}while(n.avail_in>0||n.avail_out===0);return n.deflateEnd(),c=new Uint8Array(f),d.forEach(function(p){c.set(p,u),u+=p.length}),c}}function vJe(e){return e+5*(Math.floor(e/16383)+1)}var Cfe=wJe;var tu=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],zfe=1440,DJe=0,IJe=4,PJe=9,OJe=5,MJe=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],RJe=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],BJe=[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],LJe=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],NJe=[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],FJe=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Xg=15;function $W(){let e=this,t,n,i,o,r,s;function a(u,f,d,p,g,h,A,x,C,T,E){let S,v,D,O,M,L,N,_,b,w,I,R,F,k,V;w=0,M=d;do i[u[f+w]]++,w++,M--;while(M!==0);if(i[0]==d)return A[0]=-1,x[0]=0,0;for(_=x[0],L=1;L<=Xg&&i[L]===0;L++);for(N=L,_<L&&(_=L),M=Xg;M!==0&&i[M]===0;M--);for(D=M,_>M&&(_=M),x[0]=_,k=1<<L;L<M;L++,k<<=1)if((k-=i[L])<0)return-3;if((k-=i[M])<0)return-3;for(i[M]+=k,s[1]=L=0,w=1,F=2;--M!==0;)s[F]=L+=i[w],F++,w++;M=0,w=0;do(L=u[f+w])!==0&&(E[s[L]++]=M),w++;while(++M<d);for(d=s[D],s[0]=M=0,w=0,O=-1,R=-_,r[0]=0,I=0,V=0;N<=D;N++)for(S=i[N];S--!==0;){for(;N>R+_;){if(O++,R+=_,V=D-R,V=V>_?_:V,(v=1<<(L=N-R))>S+1&&(v-=S+1,F=N,L<V))for(;++L<V&&!((v<<=1)<=i[++F]);)v-=i[F];if(V=1<<L,T[0]+V>zfe)return-3;r[O]=I=T[0],T[0]+=V,O!==0?(s[O]=M,o[0]=L,o[1]=_,L=M>>>R-_,o[2]=I-r[O-1]-L,C.set(o,(r[O-1]+L)*3)):A[0]=I}for(o[1]=N-R,w>=d?o[0]=128+64:E[w]<p?(o[0]=E[w]<256?0:32+64,o[2]=E[w++]):(o[0]=h[E[w]-p]+16+64,o[2]=g[E[w++]-p]),v=1<<N-R,L=M>>>R;L<V;L+=v)C.set(o,(I+L)*3);for(L=1<<N-1;M&L;L>>>=1)M^=L;for(M^=L,b=(1<<R)-1;(M&b)!=s[O];)O--,R-=_,b=(1<<R)-1}return k!==0&&D!=1?-5:0}function c(u){let f;for(t||(t=[],n=[],i=new Int32Array(Xg+1),o=[],r=new Int32Array(Xg),s=new Int32Array(Xg+1)),n.length<u&&(n=[]),f=0;f<u;f++)n[f]=0;for(f=0;f<Xg+1;f++)i[f]=0;for(f=0;f<3;f++)o[f]=0;r.set(i.subarray(0,Xg),0),s.set(i.subarray(0,Xg+1),0)}e.inflate_trees_bits=function(u,f,d,p,g){let h;return c(19),t[0]=0,h=a(u,0,19,19,null,null,d,f,p,t,n),h==-3?g.msg="oversubscribed dynamic bit lengths tree":(h==-5||f[0]===0)&&(g.msg="incomplete dynamic bit lengths tree",h=-3),h},e.inflate_trees_dynamic=function(u,f,d,p,g,h,A,x,C){let T;return c(288),t[0]=0,T=a(d,0,u,257,BJe,LJe,h,p,x,t,n),T!=0||p[0]===0?(T==-3?C.msg="oversubscribed literal/length tree":T!=-4&&(C.msg="incomplete literal/length tree",T=-3),T):(c(288),T=a(d,u,f,0,NJe,FJe,A,g,x,t,n),T!=0||g[0]===0&&u>257?(T==-3?C.msg="oversubscribed distance tree":T==-5?(C.msg="incomplete distance tree",T=-3):T!=-4&&(C.msg="empty distance tree with lengths",T=-3),T):0)}}$W.inflate_trees_fixed=function(e,t,n,i){return e[0]=PJe,t[0]=OJe,n[0]=MJe,i[0]=RJe,0};var h3=0,Tfe=1,Efe=2,bfe=3,Sfe=4,wfe=5,vfe=6,JW=7,Dfe=8,p3=9;function UJe(){let e=this,t,n=0,i,o=0,r=0,s=0,a=0,c=0,u=0,f=0,d,p=0,g,h=0;function A(x,C,T,E,S,v,D,O){let M,L,N,_,b,w,I,R,F,k,V,G,U,q,Y,Q;I=O.next_in_index,R=O.avail_in,b=D.bitb,w=D.bitk,F=D.write,k=F<D.read?D.read-F-1:D.end-F,V=tu[x],G=tu[C];do{for(;w<20;)R--,b|=(O.read_byte(I++)&255)<<w,w+=8;if(M=b&V,L=T,N=E,Q=(N+M)*3,(_=L[Q])===0){b>>=L[Q+1],w-=L[Q+1],D.win[F++]=L[Q+2],k--;continue}do{if(b>>=L[Q+1],w-=L[Q+1],_&16){for(_&=15,U=L[Q+2]+(b&tu[_]),b>>=_,w-=_;w<15;)R--,b|=(O.read_byte(I++)&255)<<w,w+=8;M=b&G,L=S,N=v,Q=(N+M)*3,_=L[Q];do if(b>>=L[Q+1],w-=L[Q+1],_&16){for(_&=15;w<_;)R--,b|=(O.read_byte(I++)&255)<<w,w+=8;if(q=L[Q+2]+(b&tu[_]),b>>=_,w-=_,k-=U,F>=q)Y=F-q,F-Y>0&&2>F-Y?(D.win[F++]=D.win[Y++],D.win[F++]=D.win[Y++],U-=2):(D.win.set(D.win.subarray(Y,Y+2),F),F+=2,Y+=2,U-=2);else{Y=F-q;do Y+=D.end;while(Y<0);if(_=D.end-Y,U>_){if(U-=_,F-Y>0&&_>F-Y)do D.win[F++]=D.win[Y++];while(--_!==0);else D.win.set(D.win.subarray(Y,Y+_),F),F+=_,Y+=_,_=0;Y=0}}if(F-Y>0&&U>F-Y)do D.win[F++]=D.win[Y++];while(--U!==0);else D.win.set(D.win.subarray(Y,Y+U),F),F+=U,Y+=U,U=0;break}else if(!(_&64))M+=L[Q+2],M+=b&tu[_],Q=(N+M)*3,_=L[Q];else return O.msg="invalid distance code",U=O.avail_in-R,U=w>>3<U?w>>3:U,R+=U,I-=U,w-=U<<3,D.bitb=b,D.bitk=w,O.avail_in=R,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=F,-3;while(!0);break}if(_&64)return _&32?(U=O.avail_in-R,U=w>>3<U?w>>3:U,R+=U,I-=U,w-=U<<3,D.bitb=b,D.bitk=w,O.avail_in=R,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=F,1):(O.msg="invalid literal/length code",U=O.avail_in-R,U=w>>3<U?w>>3:U,R+=U,I-=U,w-=U<<3,D.bitb=b,D.bitk=w,O.avail_in=R,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=F,-3);if(M+=L[Q+2],M+=b&tu[_],Q=(N+M)*3,(_=L[Q])===0){b>>=L[Q+1],w-=L[Q+1],D.win[F++]=L[Q+2],k--;break}}while(!0)}while(k>=258&&R>=10);return U=O.avail_in-R,U=w>>3<U?w>>3:U,R+=U,I-=U,w-=U<<3,D.bitb=b,D.bitk=w,O.avail_in=R,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=F,0}e.init=function(x,C,T,E,S,v){t=h3,u=x,f=C,d=T,p=E,g=S,h=v,i=null},e.proc=function(x,C,T){let E,S,v,D=0,O=0,M=0,L,N,_,b;for(M=C.next_in_index,L=C.avail_in,D=x.bitb,O=x.bitk,N=x.write,_=N<x.read?x.read-N-1:x.end-N;;)switch(t){case h3:if(_>=258&&L>=10&&(x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,T=A(u,f,d,p,g,h,x,C),M=C.next_in_index,L=C.avail_in,D=x.bitb,O=x.bitk,N=x.write,_=N<x.read?x.read-N-1:x.end-N,T!=0)){t=T==1?JW:p3;break}r=u,i=d,o=p,t=Tfe;case Tfe:for(E=r;O<E;){if(L!==0)T=0;else return x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);L--,D|=(C.read_byte(M++)&255)<<O,O+=8}if(S=(o+(D&tu[E]))*3,D>>>=i[S+1],O-=i[S+1],v=i[S],v===0){s=i[S+2],t=vfe;break}if(v&16){a=v&15,n=i[S+2],t=Efe;break}if(!(v&64)){r=v,o=S/3+i[S+2];break}if(v&32){t=JW;break}return t=p3,C.msg="invalid literal/length code",T=-3,x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);case Efe:for(E=a;O<E;){if(L!==0)T=0;else return x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);L--,D|=(C.read_byte(M++)&255)<<O,O+=8}n+=D&tu[E],D>>=E,O-=E,r=f,i=g,o=h,t=bfe;case bfe:for(E=r;O<E;){if(L!==0)T=0;else return x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);L--,D|=(C.read_byte(M++)&255)<<O,O+=8}if(S=(o+(D&tu[E]))*3,D>>=i[S+1],O-=i[S+1],v=i[S],v&16){a=v&15,c=i[S+2],t=Sfe;break}if(!(v&64)){r=v,o=S/3+i[S+2];break}return t=p3,C.msg="invalid distance code",T=-3,x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);case Sfe:for(E=a;O<E;){if(L!==0)T=0;else return x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);L--,D|=(C.read_byte(M++)&255)<<O,O+=8}c+=D&tu[E],D>>=E,O-=E,t=wfe;case wfe:for(b=N-c;b<0;)b+=x.end;for(;n!==0;){if(_===0&&(N==x.end&&x.read!==0&&(N=0,_=N<x.read?x.read-N-1:x.end-N),_===0&&(x.write=N,T=x.inflate_flush(C,T),N=x.write,_=N<x.read?x.read-N-1:x.end-N,N==x.end&&x.read!==0&&(N=0,_=N<x.read?x.read-N-1:x.end-N),_===0)))return x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);x.win[N++]=x.win[b++],_--,b==x.end&&(b=0),n--}t=h3;break;case vfe:if(_===0&&(N==x.end&&x.read!==0&&(N=0,_=N<x.read?x.read-N-1:x.end-N),_===0&&(x.write=N,T=x.inflate_flush(C,T),N=x.write,_=N<x.read?x.read-N-1:x.end-N,N==x.end&&x.read!==0&&(N=0,_=N<x.read?x.read-N-1:x.end-N),_===0)))return x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);T=0,x.win[N++]=s,_--,t=h3;break;case JW:if(O>7&&(O-=8,L++,M--),x.write=N,T=x.inflate_flush(C,T),N=x.write,_=N<x.read?x.read-N-1:x.end-N,x.read!=x.write)return x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);t=Dfe;case Dfe:return T=1,x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);case p3:return T=-3,x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T);default:return T=-2,x.bitb=D,x.bitk=O,C.avail_in=L,C.total_in+=M-C.next_in_index,C.next_in_index=M,x.write=N,x.inflate_flush(C,T)}},e.free=function(){}}var Ife=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],SE=0,ZW=1,Pfe=2,Ofe=3,Mfe=4,Rfe=5,_3=6,g3=7,Bfe=8,yA=9;function VJe(e,t){let n=this,i=SE,o=0,r=0,s=0,a,c=[0],u=[0],f=new UJe,d=0,p=new Int32Array(zfe*3),g=0,h=new $W;n.bitk=0,n.bitb=0,n.win=new Uint8Array(t),n.end=t,n.read=0,n.write=0,n.reset=function(A,x){x&&(x[0]=g),i==_3&&f.free(A),i=SE,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(e,null),n.inflate_flush=function(A,x){let C,T,E;return T=A.next_out_index,E=n.read,C=(E<=n.write?n.write:n.end)-E,C>A.avail_out&&(C=A.avail_out),C!==0&&x==-5&&(x=0),A.avail_out-=C,A.total_out+=C,A.next_out.set(n.win.subarray(E,E+C),T),T+=C,E+=C,E==n.end&&(E=0,n.write==n.end&&(n.write=0),C=n.write-E,C>A.avail_out&&(C=A.avail_out),C!==0&&x==-5&&(x=0),A.avail_out-=C,A.total_out+=C,A.next_out.set(n.win.subarray(E,E+C),T),T+=C,E+=C),A.next_out_index=T,n.read=E,x},n.proc=function(A,x){let C,T,E,S,v,D,O,M;for(S=A.next_in_index,v=A.avail_in,T=n.bitb,E=n.bitk,D=n.write,O=D<n.read?n.read-D-1:n.end-D;;){let L,N,_,b,w,I,R,F;switch(i){case SE:for(;E<3;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<<E,E+=8}switch(C=T&7,d=C&1,C>>>1){case 0:T>>>=3,E-=3,C=E&7,T>>>=C,E-=C,i=ZW;break;case 1:L=[],N=[],_=[[]],b=[[]],$W.inflate_trees_fixed(L,N,_,b),f.init(L[0],N[0],_[0],0,b[0],0),T>>>=3,E-=3,i=_3;break;case 2:T>>>=3,E-=3,i=Ofe;break;case 3:return T>>>=3,E-=3,i=yA,A.msg="invalid block type",x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x)}break;case ZW:for(;E<32;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<<E,E+=8}if((~T>>>16&65535)!=(T&65535))return i=yA,A.msg="invalid stored block lengths",x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);o=T&65535,T=E=0,i=o!==0?Pfe:d!==0?g3:SE;break;case Pfe:if(v===0||O===0&&(D==n.end&&n.read!==0&&(D=0,O=D<n.read?n.read-D-1:n.end-D),O===0&&(n.write=D,x=n.inflate_flush(A,x),D=n.write,O=D<n.read?n.read-D-1:n.end-D,D==n.end&&n.read!==0&&(D=0,O=D<n.read?n.read-D-1:n.end-D),O===0)))return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);if(x=0,C=o,C>v&&(C=v),C>O&&(C=O),n.win.set(A.read_buf(S,C),D),S+=C,v-=C,D+=C,O-=C,(o-=C)!==0)break;i=d!==0?g3:SE;break;case Ofe:for(;E<14;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<<E,E+=8}if(r=C=T&16383,(C&31)>29||(C>>5&31)>29)return i=yA,A.msg="too many length or distance symbols",x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);if(C=258+(C&31)+(C>>5&31),!a||a.length<C)a=[];else for(M=0;M<C;M++)a[M]=0;T>>>=14,E-=14,s=0,i=Mfe;case Mfe:for(;s<4+(r>>>10);){for(;E<3;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<<E,E+=8}a[Ife[s++]]=T&7,T>>>=3,E-=3}for(;s<19;)a[Ife[s++]]=0;if(c[0]=7,C=h.inflate_trees_bits(a,c,u,p,A),C!=0)return x=C,x==-3&&(a=null,i=yA),n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);s=0,i=Rfe;case Rfe:for(;C=r,!(s>=258+(C&31)+(C>>5&31));){let k,V;for(C=c[0];E<C;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<<E,E+=8}if(C=p[(u[0]+(T&tu[C]))*3+1],V=p[(u[0]+(T&tu[C]))*3+2],V<16)T>>>=C,E-=C,a[s++]=V;else{for(M=V==18?7:V-14,k=V==18?11:3;E<C+M;){if(v!==0)x=0;else return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);v--,T|=(A.read_byte(S++)&255)<<E,E+=8}if(T>>>=C,E-=C,k+=T&tu[M],T>>>=M,E-=M,M=s,C=r,M+k>258+(C&31)+(C>>5&31)||V==16&&M<1)return a=null,i=yA,A.msg="invalid bit length repeat",x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);V=V==16?a[M-1]:0;do a[M++]=V;while(--k!==0);s=M}}if(u[0]=-1,w=[],I=[],R=[],F=[],w[0]=9,I[0]=6,C=r,C=h.inflate_trees_dynamic(257+(C&31),1+(C>>5&31),a,w,I,R,F,p,A),C!=0)return C==-3&&(a=null,i=yA),x=C,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);f.init(w[0],I[0],p,R[0],p,F[0]),i=_3;case _3:if(n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,(x=f.proc(n,A,x))!=1)return n.inflate_flush(A,x);if(x=0,f.free(A),S=A.next_in_index,v=A.avail_in,T=n.bitb,E=n.bitk,D=n.write,O=D<n.read?n.read-D-1:n.end-D,d===0){i=SE;break}i=g3;case g3:if(n.write=D,x=n.inflate_flush(A,x),D=n.write,O=D<n.read?n.read-D-1:n.end-D,n.read!=n.write)return n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);i=Bfe;case Bfe:return x=1,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);case yA:return x=-3,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x);default:return x=-2,n.bitb=T,n.bitk=E,A.avail_in=v,A.total_in+=S-A.next_in_index,A.next_in_index=S,n.write=D,n.inflate_flush(A,x)}}},n.free=function(A){n.reset(A,null),n.win=null,p=null},n.set_dictionary=function(A,x,C){n.win.set(A.subarray(x,x+C),0),n.read=n.write=C},n.sync_point=function(){return i==ZW?1:0}}var kJe=32,zJe=8,HJe=0,Lfe=1,Nfe=2,Ffe=3,Ufe=4,Vfe=5,QW=6,Xv=7,kfe=12,Kg=13,GJe=[0,0,255,255];function WJe(){let e=this;e.mode=0,e.method=0,e.was=[0],e.need=0,e.marker=0,e.wbits=0;function t(n){return!n||!n.istate?-2:(n.total_in=n.total_out=0,n.msg=null,n.istate.mode=Xv,n.istate.blocks.reset(n,null),0)}e.inflateEnd=function(n){return e.blocks&&e.blocks.free(n),e.blocks=null,0},e.inflateInit=function(n,i){return n.msg=null,e.blocks=null,i<8||i>15?(e.inflateEnd(n),-2):(e.wbits=i,n.istate.blocks=new VJe(n,1<<i),t(n),0)},e.inflate=function(n,i){let o,r;if(!n||!n.istate||!n.next_in)return-2;let s=n.istate;for(i=i==IJe?-5:0,o=-5;;)switch(s.mode){case HJe:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,((s.method=n.read_byte(n.next_in_index++))&15)!=zJe){s.mode=Kg,n.msg="unknown compression method",s.marker=5;break}if((s.method>>4)+8>s.wbits){s.mode=Kg,n.msg="invalid win size",s.marker=5;break}s.mode=Lfe;case Lfe:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,r=n.read_byte(n.next_in_index++)&255,((s.method<<8)+r)%31!==0){s.mode=Kg,n.msg="incorrect header check",s.marker=5;break}if(!(r&kJe)){s.mode=Xv;break}s.mode=Nfe;case Nfe:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need=(n.read_byte(n.next_in_index++)&255)<<24&4278190080,s.mode=Ffe;case Ffe:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<16&16711680,s.mode=Ufe;case Ufe:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<8&65280,s.mode=Vfe;case Vfe:return n.avail_in===0?o:(o=i,n.avail_in--,n.total_in++,s.need+=n.read_byte(n.next_in_index++)&255,s.mode=QW,2);case QW:return s.mode=Kg,n.msg="need dictionary",s.marker=0,-2;case Xv:if(o=s.blocks.proc(n,o),o==-3){s.mode=Kg,s.marker=0;break}if(o==0&&(o=i),o!=1)return o;o=i,s.blocks.reset(n,s.was),s.mode=kfe;case kfe:return n.avail_in=0,1;case Kg:return-3;default:return-2}},e.inflateSetDictionary=function(n,i,o){let r=0,s=o;if(!n||!n.istate||n.istate.mode!=QW)return-2;let a=n.istate;return s>=1<<a.wbits&&(s=(1<<a.wbits)-1,r=o-s),a.blocks.set_dictionary(i,r,s),a.mode=Xv,0},e.inflateSync=function(n){let i,o,r,s,a;if(!n||!n.istate)return-2;let c=n.istate;if(c.mode!=Kg&&(c.mode=Kg,c.marker=0),(i=n.avail_in)===0)return-5;for(o=n.next_in_index,r=c.marker;i!==0&&r<4;)n.read_byte(o)==GJe[r]?r++:n.read_byte(o)!==0?r=0:r=4-r,o++,i--;return n.total_in+=o-n.next_in_index,n.next_in_index=o,n.avail_in=i,c.marker=r,r!=4?-3:(s=n.total_in,a=n.total_out,t(n),n.total_in=s,n.total_out=a,c.mode=Xv,0)},e.inflateSyncPoint=function(n){return!n||!n.istate||!n.istate.blocks?-2:n.istate.blocks.sync_point()}}function Hfe(){}Hfe.prototype={inflateInit:function(e){let t=this;return t.istate=new WJe,e||(e=15),t.istate.inflateInit(t,e)},inflate:function(e){let t=this;return t.istate?t.istate.inflate(t,e):-2},inflateEnd:function(){let e=this;if(!e.istate)return-2;let t=e.istate.inflateEnd(e);return e.istate=null,t},inflateSync:function(){let e=this;return e.istate?e.istate.inflateSync(e):-2},inflateSetDictionary:function(e,t){let n=this;return n.istate?n.istate.inflateSetDictionary(n,e,t):-2},read_byte:function(e){return this.next_in[e]},read_buf:function(e,t){return this.next_in.subarray(e,e+t)}};function jJe(e){let t=this,n=new Hfe,i=e&&e.chunkSize?Math.floor(e.chunkSize*2):128*1024,o=DJe,r=new Uint8Array(i),s=!1;n.inflateInit(),n.next_out=r,t.append=function(a,c){let u=[],f,d,p=0,g=0,h=0;if(a.length!==0){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,n.avail_in===0&&!s&&(n.next_in_index=0,s=!0),f=n.inflate(o),s&&f===-5){if(n.avail_in!==0)throw new Error("inflating: bad input")}else if(f!==0&&f!==1)throw new Error("inflating: "+n.msg);if((s||f===1)&&n.avail_in===a.length)throw new Error("inflating: bad input");n.next_out_index&&(n.next_out_index===i?u.push(new Uint8Array(r)):u.push(r.slice(0,n.next_out_index))),h+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=p&&(c(n.next_in_index),p=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return u.length>1?(d=new Uint8Array(h),u.forEach(function(A){d.set(A,g),g+=A.length})):d=u[0]||new Uint8Array(0),d}},t.flush=function(){n.inflateEnd()}}var Gfe=jJe;var YJe={chunkSize:524288,maxWorkers:typeof navigator<"u"&&navigator.hardwareConcurrency||2,terminateWorkerTimeout:5e3,useWebWorkers:!0,workerScripts:void 0},cl=Object.assign({},YJe);function y3(){return cl}function wE(e){if(e.baseURL!==void 0&&(cl.baseURL=e.baseURL),e.chunkSize!==void 0&&(cl.chunkSize=e.chunkSize),e.maxWorkers!==void 0&&(cl.maxWorkers=e.maxWorkers),e.terminateWorkerTimeout!==void 0&&(cl.terminateWorkerTimeout=e.terminateWorkerTimeout),e.useWebWorkers!==void 0&&(cl.useWebWorkers=e.useWebWorkers),e.Deflate!==void 0&&(cl.Deflate=e.Deflate),e.Inflate!==void 0&&(cl.Inflate=e.Inflate),e.workerScripts!==void 0){if(e.workerScripts.deflate){if(!Array.isArray(e.workerScripts.deflate))throw new Error("workerScripts.deflate must be an array");cl.workerScripts||(cl.workerScripts={}),cl.workerScripts.deflate=e.workerScripts.deflate}if(e.workerScripts.inflate){if(!Array.isArray(e.workerScripts.inflate))throw new Error("workerScripts.inflate must be an array");cl.workerScripts||(cl.workerScripts={}),cl.workerScripts.inflate=e.workerScripts.inflate}}}var Wfe=[];for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t&1?t=t>>>1^3988292384:t=t>>>1;Wfe[e]=t}var e7=class{constructor(t){this.crc=t||-1}append(t){let n=this.crc|0;for(let i=0,o=t.length|0;i<o;i++)n=n>>>8^Wfe[(n^t[i])&255];this.crc=n}get(){return~this.crc}},Jg=e7;var Kv=qJe;function qJe(e){if(typeof TextEncoder>"u"){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}else return new TextEncoder().encode(e)}var wc={concat(e,t){if(e.length===0||t.length===0)return e.concat(t);let n=e[e.length-1],i=wc.getPartial(n);return i===32?e.concat(t):wc._shiftRight(t,i,n|0,e.slice(0,e.length-1))},bitLength(e){let t=e.length;if(t===0)return 0;let n=e[t-1];return(t-1)*32+wc.getPartial(n)},clamp(e,t){if(e.length*32<t)return e;e=e.slice(0,Math.ceil(t/32));let n=e.length;return t=t&31,n>0&&t&&(e[n-1]=wc.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return e===32?t:(n?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,i){for(i===void 0&&(i=[]);t>=32;t-=32)i.push(n),n=0;if(t===0)return i.concat(e);for(let s=0;s<e.length;s++)i.push(n|e[s]>>>t),n=e[s]<<32-t;let o=e.length?e[e.length-1]:0,r=wc.getPartial(o);return i.push(wc.partial(t+r&31,t+r>32?n:i.pop(),1)),i}},Jv={bytes:{fromBits(e){let n=wc.bitLength(e)/8,i=new Uint8Array(n),o;for(let r=0;r<n;r++)r&3||(o=e[r/4]),i[r]=o>>>24,o<<=8;return i},toBits(e){let t=[],n,i=0;for(n=0;n<e.length;n++)i=i<<8|e[n],(n&3)===3&&(t.push(i),i=0);return n&3&&t.push(wc.partial(8*(n&3),i)),t}}},t7={};t7.sha1=function(e){e?(this._h=e._h.slice(0),this._buffer=e._buffer.slice(0),this._length=e._length):this.reset()};t7.sha1.prototype={blockSize:512,reset:function(){let e=this;return e._h=this._init.slice(0),e._buffer=[],e._length=0,e},update:function(e){let t=this;typeof e=="string"&&(e=Jv.utf8String.toBits(e));let n=t._buffer=wc.concat(t._buffer,e),i=t._length,o=t._length=i+wc.bitLength(e);if(o>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");let r=new Uint32Array(n),s=0;for(let a=t.blockSize+i-(t.blockSize+i&t.blockSize-1);a<=o;a+=t.blockSize)t._block(r.subarray(16*s,16*(s+1))),s+=1;return n.splice(0,16*s),t},finalize:function(){let e=this,t=e._buffer,n=e._h;t=wc.concat(t,[wc.partial(1,1)]);for(let i=t.length+2;i&15;i++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),n},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:function(e,t,n,i){if(e<=19)return t&n|~t&i;if(e<=39)return t^n^i;if(e<=59)return t&n|t&i|n&i;if(e<=79)return t^n^i},_S:function(e,t){return t<<e|t>>>32-e},_block:function(e){let t=this,n=t._h,i=Array(80);for(let u=0;u<16;u++)i[u]=e[u];let o=n[0],r=n[1],s=n[2],a=n[3],c=n[4];for(let u=0;u<=79;u++){u>=16&&(i[u]=t._S(1,i[u-3]^i[u-8]^i[u-14]^i[u-16]));let f=t._S(5,o)+t._f(u,r,s,a)+c+i[u]+t._key[Math.floor(u/20)]|0;c=a,a=s,s=t._S(30,r),r=o,o=f}n[0]=n[0]+o|0,n[1]=n[1]+r|0,n[2]=n[2]+s|0,n[3]=n[3]+a|0,n[4]=n[4]+c|0}};var n7={};n7.aes=class{constructor(e){let t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();let n=t._tables[0][4],i=t._tables[1],o=e.length,r,s,a,c=1;if(o!==4&&o!==6&&o!==8)throw new Error("invalid aes key size");for(t._key=[s=e.slice(0),a=[]],r=o;r<4*o+28;r++){let u=s[r-1];(r%o===0||o===8&&r%o===4)&&(u=n[u>>>24]<<24^n[u>>16&255]<<16^n[u>>8&255]<<8^n[u&255],r%o===0&&(u=u<<8^u>>>24^c<<24,c=c<<1^(c>>7)*283)),s[r]=s[r-o]^u}for(let u=0;r;u++,r--){let f=s[u&3?r:r-4];r<=4||u<4?a[u]=f:a[u]=i[0][n[f>>>24]]^i[1][n[f>>16&255]]^i[2][n[f>>8&255]]^i[3][n[f&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){let e=this._tables[0],t=this._tables[1],n=e[4],i=t[4],o=[],r=[],s,a,c,u;for(let f=0;f<256;f++)r[(o[f]=f<<1^(f>>7)*283)^f]=f;for(let f=s=0;!n[f];f^=a||1,s=r[s]||1){let d=s^s<<1^s<<2^s<<3^s<<4;d=d>>8^d&255^99,n[f]=d,i[d]=f,u=o[c=o[a=o[f]]];let p=u*16843009^c*65537^a*257^f*16843008,g=o[d]*257^d*16843008;for(let h=0;h<4;h++)e[h][f]=g=g<<24^g>>>8,t[h][d]=p=p<<24^p>>>8}for(let f=0;f<5;f++)e[f]=e[f].slice(0),t[f]=t[f].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");let n=this._key[t],i=n.length/4-2,o=[0,0,0,0],r=this._tables[t],s=r[0],a=r[1],c=r[2],u=r[3],f=r[4],d=e[0]^n[0],p=e[t?3:1]^n[1],g=e[2]^n[2],h=e[t?1:3]^n[3],A=4,x,C,T;for(let E=0;E<i;E++)x=s[d>>>24]^a[p>>16&255]^c[g>>8&255]^u[h&255]^n[A],C=s[p>>>24]^a[g>>16&255]^c[h>>8&255]^u[d&255]^n[A+1],T=s[g>>>24]^a[h>>16&255]^c[d>>8&255]^u[p&255]^n[A+2],h=s[h>>>24]^a[d>>16&255]^c[p>>8&255]^u[g&255]^n[A+3],A+=4,d=x,p=C,g=T;for(let E=0;E<4;E++)o[t?3&-E:E]=f[d>>>24]<<24^f[p>>16&255]<<16^f[g>>8&255]<<8^f[h&255]^n[A++],x=d,d=p,p=g,g=h,h=x;return o}};var jfe={getRandomValues(e){let t=new Uint32Array(e.buffer),n=i=>{let o=987654321,r=4294967295;return function(){return o=36969*(o&65535)+(o>>16)&r,i=18e3*(i&65535)+(i>>16)&r,(((o<<16)+i&r)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let i=0,o;i<e.length;i+=4){let r=n((o||Math.random())*4294967296);o=r()*987654071,t[i/4]=r()*4294967296|0}return e}},i7={};i7.ctrGladman=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if((e>>24&255)===255){let t=e>>16&255,n=e>>8&255,i=e&255;t===255?(t=0,n===255?(n=0,i===255?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let i;if(!(i=t.length))return[];let o=wc.bitLength(t);for(let r=0;r<i;r+=4){this.incCounter(n);let s=e.encrypt(n);t[r]^=s[0],t[r+1]^=s[1],t[r+2]^=s[2],t[r+3]^=s[3]}return wc.clamp(t,o)}};var vE={importKey(e){return new vE.hmacSha1(Jv.bytes.toBits(e))},pbkdf2(e,t,n,i){if(n=n||1e4,i<0||n<0)throw new Error("invalid params to pbkdf2");let o=(i>>5)+1<<2,r,s,a,c,u,f=new ArrayBuffer(o),d=new DataView(f),p=0,g=wc;for(t=Jv.bytes.toBits(t),u=1;p<(o||1);u++){for(r=s=e.encrypt(g.concat(t,[u])),a=1;a<n;a++)for(s=e.encrypt(s),c=0;c<s.length;c++)r[c]^=s[c];for(a=0;p<(o||1)&&a<r.length;a++)d.setInt32(p,r[a]),p+=4}return f.slice(0,i/8)}};vE.hmacSha1=class{constructor(e){let t=this,n=t._hash=t7.sha1,i=[[],[]],o=n.prototype.blockSize/32;t._baseHash=[new n,new n],e.length>o&&(e=n.hash(e));for(let r=0;r<o;r++)i[0][r]=e[r]^909522486,i[1][r]=e[r]^1549556828;t._baseHash[0].update(i[0]),t._baseHash[1].update(i[1]),t._resultHash=new n(t._baseHash[0])}reset(){let e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){let t=this;t._updated=!0,t._resultHash.update(e)}digest(){let e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}};var IE="Invalid pasword",DE=16,XJe="raw",Yfe={name:"PBKDF2"},KJe={name:"HMAC"},JJe="SHA-1",ZJe=Object.assign({hash:KJe},Yfe),qfe=Object.assign({iterations:1e3,hash:{name:JJe}},Yfe),QJe=["deriveBits"],Qv=[8,12,16],Zv=[16,24,32],Zg=10,Xfe=[0,0,0,0],C3=typeof crypto<"u",Kfe=C3&&typeof crypto.subtle<"u",Km=Jv.bytes,Jfe=n7.aes,Zfe=i7.ctrGladman,Qfe=vE.hmacSha1,A3=class{constructor(t,n,i){Object.assign(this,{password:t,signed:n,strength:i-1,pendingInput:new Uint8Array(0)})}async append(t){let n=this;if(n.password){let o=nu(t,0,Qv[n.strength]+2);await $Je(n,o,n.password),n.password=null,n.aesCtrGladman=new Zfe(new Jfe(n.keys.key),Array.from(Xfe)),n.hmac=new Qfe(n.keys.authentication),t=nu(t,Qv[n.strength]+2)}let i=new Uint8Array(t.length-Zg-(t.length-Zg)%DE);return $fe(n,t,i,0,Zg,!0)}flush(){let t=this,n=t.pendingInput,i=nu(n,0,n.length-Zg),o=nu(n,n.length-Zg),r=new Uint8Array(0);if(i.length){let a=Km.toBits(i);t.hmac.update(a);let c=t.aesCtrGladman.update(a);r=Km.fromBits(c)}let s=!0;if(t.signed){let a=nu(Km.fromBits(t.hmac.digest()),0,Zg);for(let c=0;c<Zg;c++)a[c]!=o[c]&&(s=!1)}return{valid:s,data:r}}},x3=class{constructor(t,n){Object.assign(this,{password:t,strength:n-1,pendingInput:new Uint8Array(0)})}async append(t){let n=this,i=new Uint8Array(0);n.password&&(i=await eZe(n,n.password),n.password=null,n.aesCtrGladman=new Zfe(new Jfe(n.keys.key),Array.from(Xfe)),n.hmac=new Qfe(n.keys.authentication));let o=new Uint8Array(i.length+t.length-t.length%DE);return o.set(i,0),$fe(n,t,o,i.length,0)}flush(){let t=this,n=new Uint8Array(0);if(t.pendingInput.length){let o=t.aesCtrGladman.update(Km.toBits(t.pendingInput));t.hmac.update(o),n=Km.fromBits(o)}let i=nu(Km.fromBits(t.hmac.digest()),0,Zg);return{data:o7(n,i),signature:i}}};function $fe(e,t,n,i,o,r){let s=t.length-o;e.pendingInput.length&&(t=o7(e.pendingInput,t),n=oZe(n,s-s%DE));let a;for(a=0;a<=s-DE;a+=DE){let c=Km.toBits(nu(t,a,a+DE));r&&e.hmac.update(c);let u=e.aesCtrGladman.update(c);r||e.hmac.update(u),n.set(Km.fromBits(u),a+i)}return e.pendingInput=nu(t,a),n}async function $Je(e,t,n){await ede(e,n,nu(t,0,Qv[e.strength]));let i=nu(t,Qv[e.strength]),o=e.keys.passwordVerification;if(o[0]!=i[0]||o[1]!=i[1])throw new Error(IE)}async function eZe(e,t){let n=tZe(new Uint8Array(Qv[e.strength]));return await ede(e,t,n),o7(n,e.keys.passwordVerification)}async function ede(e,t,n){let i=Kv(t),o=await nZe(XJe,i,ZJe,!1,QJe),r=await iZe(Object.assign({salt:n},qfe),o,8*(Zv[e.strength]*2+2)),s=new Uint8Array(r);e.keys={key:Km.toBits(nu(s,0,Zv[e.strength])),authentication:Km.toBits(nu(s,Zv[e.strength],Zv[e.strength]*2)),passwordVerification:nu(s,Zv[e.strength]*2)}}function tZe(e){return C3&&typeof crypto.getRandomValues=="function"?crypto.getRandomValues(e):jfe.getRandomValues(e)}function nZe(e,t,n,i,o){return C3&&Kfe&&typeof crypto.subtle.importKey=="function"?crypto.subtle.importKey(e,t,n,i,o):vE.importKey(t)}async function iZe(e,t,n){return C3&&Kfe&&typeof crypto.subtle.deriveBits=="function"?await crypto.subtle.deriveBits(e,t,n):vE.pbkdf2(t,e.salt,qfe.iterations,n)}function o7(e,t){let n=e;return e.length+t.length&&(n=new Uint8Array(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function oZe(e,t){if(t&&t>e.length){let n=e;e=new Uint8Array(t),e.set(n,0)}return e}function nu(e,t,n){return e.subarray(t,n)}var PE=12,T3=class{constructor(t,n){let i=this;Object.assign(i,{password:t,passwordVerification:n}),ode(i,t)}append(t){let n=this;if(n.password){let i=tde(n,t.subarray(0,PE));if(n.password=null,i[PE-1]!=n.passwordVerification)throw new Error(IE);t=t.subarray(PE)}return tde(n,t)}flush(){return{valid:!0,data:new Uint8Array(0)}}},E3=class{constructor(t,n){let i=this;Object.assign(i,{password:t,passwordVerification:n}),ode(i,t)}append(t){let n=this,i,o;if(n.password){n.password=null;let r=crypto.getRandomValues(new Uint8Array(PE));r[PE-1]=n.passwordVerification,i=new Uint8Array(t.length+r.length),i.set(nde(n,r),0),o=PE}else i=new Uint8Array(t.length),o=0;return i.set(nde(n,t),o),i}flush(){return{data:new Uint8Array(0)}}};function tde(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=rde(e)^t[i],r7(e,n[i]);return n}function nde(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=rde(e)^t[i],r7(e,t[i]);return n}function ode(e,t){e.keys=[305419896,591751049,878082192],e.crcKey0=new Jg(e.keys[0]),e.crcKey2=new Jg(e.keys[2]);for(let n=0;n<t.length;n++)r7(e,t.charCodeAt(n))}function r7(e,t){e.crcKey0.append([t]),e.keys[0]=~e.crcKey0.get(),e.keys[1]=ide(e.keys[1]+sde(e.keys[0])),e.keys[1]=ide(Math.imul(e.keys[1],134775813)+1),e.crcKey2.append([e.keys[1]>>>24]),e.keys[2]=~e.crcKey2.get()}function rde(e){let t=e.keys[2]|2;return sde(Math.imul(t,t^1)>>>8)}function sde(e){return e&255}function ide(e){return e&4294967295}var S3="deflate",w3="inflate",b3="Invalid signature",s7=class{constructor(t,{signature:n,password:i,signed:o,compressed:r,zipCrypto:s,passwordVerification:a,encryptionStrength:c},{chunkSize:u}){let f=!!i;Object.assign(this,{signature:n,encrypted:f,signed:o,compressed:r,inflate:r&&new t({chunkSize:u}),crc32:o&&new Jg,zipCrypto:s,decrypt:f&&s?new T3(i,a):new A3(i,o,c)})}async append(t){let n=this;return n.encrypted&&t.length&&(t=await n.decrypt.append(t)),n.compressed&&t.length&&(t=await n.inflate.append(t)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),t}async flush(){let t=this,n,i=new Uint8Array(0);if(t.encrypted){let o=t.decrypt.flush();if(!o.valid)throw new Error(b3);i=o.data}if((!t.encrypted||t.zipCrypto)&&t.signed){let o=new DataView(new Uint8Array(4).buffer);if(n=t.crc32.get(),o.setUint32(0,n),t.signature!=o.getUint32(0,!1))throw new Error(b3)}return t.compressed&&(i=await t.inflate.append(i)||new Uint8Array(0),await t.inflate.flush()),{data:i,signature:n}}},a7=class{constructor(t,{encrypted:n,signed:i,compressed:o,level:r,zipCrypto:s,password:a,passwordVerification:c,encryptionStrength:u},{chunkSize:f}){Object.assign(this,{encrypted:n,signed:i,compressed:o,deflate:o&&new t({level:r||5,chunkSize:f}),crc32:i&&new Jg,zipCrypto:s,encrypt:n&&s?new E3(a,c):new x3(a,u)})}async append(t){let n=this,i=t;return n.compressed&&t.length&&(i=await n.deflate.append(t)),n.encrypted&&i.length&&(i=await n.encrypt.append(i)),(!n.encrypted||n.zipCrypto)&&n.signed&&t.length&&n.crc32.append(t),i}async flush(){let t=this,n,i=new Uint8Array(0);if(t.compressed&&(i=await t.deflate.flush()||new Uint8Array(0)),t.encrypted){i=await t.encrypt.append(i);let o=t.encrypt.flush();n=o.signature;let r=new Uint8Array(i.length+o.data.length);r.set(i,0),r.set(o.data,i.length),i=r}return(!t.encrypted||t.zipCrypto)&&t.signed&&(n=t.crc32.get()),{data:i,signature:n}}};function ade(e,t,n){if(t.codecType.startsWith(S3))return new a7(e,t,n);if(t.codecType.startsWith(w3))return new s7(e,t,n)}var cde="init",lde="append",c7="flush",rZe="message",ude=!0,v3=(e,t,n,i,o,r,s)=>(Object.assign(e,{busy:!0,codecConstructor:t,options:Object.assign({},n),scripts:s,terminate(){e.worker&&!e.busy&&(e.worker.terminate(),e.interface=null)},onTaskFinished(){e.busy=!1,o(e)}}),r?aZe(e,i):sZe(e,i));function sZe(e,t){let n=ade(e.codecConstructor,e.options,t);return{async append(i){try{return await n.append(i)}catch(o){throw e.onTaskFinished(),o}},async flush(){try{return await n.flush()}finally{e.onTaskFinished()}},abort(){e.onTaskFinished()}}}function aZe(e,t){let n,i={type:"module"};if(!e.interface){if(!ude)e.worker=o(i,t.baseURL);else try{e.worker=o({},t.baseURL)}catch{ude=!1,e.worker=o(i,t.baseURL)}e.worker.addEventListener(rZe,a,!1),e.interface={append(c){return r({type:lde,data:c})},flush(){return r({type:c7})},abort(){e.onTaskFinished()}}}return e.interface;function o(c,u){let f,d;f=e.scripts[0],typeof f=="function"&&(f=f());try{d=new URL(f,u)}catch{d=f}return new Worker(d,c)}async function r(c){if(!n){let u=e.options,f=e.scripts.slice(1);await s({scripts:f,type:cde,options:u,config:{chunkSize:t.chunkSize}})}return s(c)}function s(c){let u=e.worker,f=new Promise((d,p)=>n={resolve:d,reject:p});try{if(c.data)try{c.data=c.data.buffer,u.postMessage(c,[c.data])}catch{u.postMessage(c)}else u.postMessage(c)}catch(d){n.reject(d),n=null,e.onTaskFinished()}return f}function a(c){let u=c.data;if(n){let f=u.error,d=u.type;if(f){let p=new Error(f.message);p.stack=f.stack,n.reject(p),n=null,e.onTaskFinished()}else if(d==cde||d==c7||d==lde){let p=u.data;d==c7?(n.resolve({data:new Uint8Array(p),signature:u.signature}),n=null,e.onTaskFinished()):n.resolve(p&&new Uint8Array(p))}}}}var AA=[],l7=[];function D3(e,t,n){let o=!(!t.compressed&&!t.signed&&!t.encrypted)&&(t.useWebWorkers||t.useWebWorkers===void 0&&n.useWebWorkers),r=o&&n.workerScripts?n.workerScripts[t.codecType]:[];if(AA.length<n.maxWorkers){let a={};return AA.push(a),v3(a,e,t,n,s,o,r)}else{let a=AA.find(c=>!c.busy);return a?(fde(a),v3(a,e,t,n,s,o,r)):new Promise(c=>l7.push({resolve:c,codecConstructor:e,options:t,webWorker:o,scripts:r}))}function s(a){if(l7.length){let[{resolve:c,codecConstructor:u,options:f,webWorker:d,scripts:p}]=l7.splice(0,1);c(v3(a,u,f,n,s,d,p))}else a.worker?(fde(a),Number.isFinite(n.terminateWorkerTimeout)&&n.terminateWorkerTimeout>=0&&(a.terminateTimeout=setTimeout(()=>{AA=AA.filter(c=>c!=a),a.terminate()},n.terminateWorkerTimeout))):AA=AA.filter(c=>c!=a)}}function fde(e){e.terminateTimeout&&(clearTimeout(e.terminateTimeout),e.terminateTimeout=null)}var mde="Abort error";async function I3(e,t,n,i,o,r,s){let a=Math.max(r.chunkSize,64);return c();async function c(u=0,f=0){let d=s.signal,p=o();if(u<p){u7(d,e);let g=await t.readUint8Array(u+i,Math.min(a,p-u)),h=g.length;u7(d,e);let A=await e.append(g);if(u7(d,e),f+=await dde(n,A),s.onprogress)try{s.onprogress(u+h,p)}catch{}return c(u+a,f)}else{let g=await e.flush();return f+=await dde(n,g.data),{signature:g.signature,length:f}}}}function u7(e,t){if(e&&e.aborted)throw t.abort(),new Error(mde)}async function dde(e,t){return t.length&&await e.writeUint8Array(t),t.length}var f7="text/plain";var P3=class{constructor(){this.size=0}init(){this.initialized=!0}},O3=class extends P3{},$v=class extends P3{writeUint8Array(t){this.size+=t.length}},M3=class extends O3{constructor(t){super(),this.blobReader=new xA(new Blob([t],{type:f7}))}init(){super.init(),this.blobReader.init(),this.size=this.blobReader.size}readUint8Array(t,n){return this.blobReader.readUint8Array(t,n)}},R3=class extends $v{constructor(t){super(),this.encoding=t,this.blob=new Blob([],{type:f7})}writeUint8Array(t){super.writeUint8Array(t),this.blob=new Blob([this.blob,t.buffer],{type:f7})}getData(){if(this.blob.text)return this.blob.text();{let t=new FileReader;return new Promise((n,i)=>{t.onload=o=>n(o.target.result),t.onerror=()=>i(t.error),t.readAsText(this.blob,this.encoding)})}}};var B3=class extends $v{constructor(t){super(),this.data="data:"+(t||"")+";base64,",this.pending=[]}writeUint8Array(t){super.writeUint8Array(t);let n=0,i=this.pending,o=this.pending.length;for(this.pending="",n=0;n<Math.floor((o+t.length)/3)*3-o;n++)i+=String.fromCharCode(t[n]);for(;n<t.length;n++)this.pending+=String.fromCharCode(t[n]);i.length>2?this.data+=btoa(i):this.pending=i}getData(){return this.data+btoa(this.pending)}},xA=class extends O3{constructor(t){super(),this.blob=t,this.size=t.size}async readUint8Array(t,n){if(this.blob.arrayBuffer)return new Uint8Array(await this.blob.slice(t,t+n).arrayBuffer());{let i=new FileReader;return new Promise((o,r)=>{i.onload=s=>o(new Uint8Array(s.target.result)),i.onerror=()=>r(i.error),i.readAsArrayBuffer(this.blob.slice(t,t+n))})}}},OE=class extends $v{constructor(t){super(),this.contentType=t,this.arrayBuffersMaxlength=8,hde(this)}writeUint8Array(t){super.writeUint8Array(t),this.arrayBuffers.length==this.arrayBuffersMaxlength&&pde(this),this.arrayBuffers.push(t.buffer)}getData(){return this.blob||(this.arrayBuffers.length&&pde(this),this.blob=this.pendingBlob,hde(this)),this.blob}};function hde(e){e.pendingBlob=new Blob([],{type:e.contentType}),e.arrayBuffers=[]}function pde(e){e.pendingBlob=new Blob([e.pendingBlob,...e.arrayBuffers],{type:e.contentType}),e.arrayBuffers=[]}var ME="/",d7=new Date(2107,11,31),m7=new Date(1980,0,1);var cZe="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),_de=e=>{let t="";for(let n=0;n<e.length;n++)t+=cZe[e[n]];return t};var L3=lZe;function lZe(e,t){if(t&&t.trim().toLowerCase()=="cp437")return _de(e);if(typeof TextDecoder>"u"){let n=new FileReader;return new Promise((i,o)=>{n.onload=r=>i(r.target.result),n.onerror=()=>o(n.error),n.readAsText(new Blob([e]))})}else return new TextDecoder(t).decode(e)}var uZe=["filename","rawFilename","directory","encrypted","compressedSize","uncompressedSize","lastModDate","rawLastModDate","comment","rawComment","signature","extraField","rawExtraField","bitFlag","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","filenameUTF8","commentUTF8","offset","zip64","compressionMethod","extraFieldNTFS","lastAccessDate","creationDate","extraFieldExtendedTimestamp","version","versionMadeBy","msDosCompatible","internalFileAttribute","externalFileAttribute"],Lp=class{constructor(t){uZe.forEach(n=>this[n]=t[n])}};var _7="File format is not recognized",hZe="End of central directory not found",pZe="End of Zip64 central directory not found",_Ze="End of Zip64 central directory locator not found",gZe="Central directory header not found",yZe="Local file header not found",AZe="Zip64 extra field not found",xZe="File contains encrypted entry",CZe="Encryption method not supported",gde="Compression method not supported",yde="utf-8",Ade="cp437",xde=["uncompressedSize","compressedSize","offset"],W3=class{constructor(t,n={}){Object.assign(this,{reader:t,options:n,config:y3()})}async*getEntriesGenerator(t={}){let n=this,i=n.reader;if(i.initialized||await i.init(),i.size<22)throw new Error(_7);let o=await wZe(i,101010256,i.size,22,65535*16);if(!o)throw new Error(hZe);let r=ja(o),s=Ys(r,12),a=Ys(r,16),c=iu(r,8),u=0;if(a==4294967295||s==4294967295||c==65535){let g=await Qg(i,o.offset-20,20),h=ja(g);if(Ys(h,0)!=117853008)throw new Error(pZe);a=N3(h,8);let A=await Qg(i,a,56),x=ja(A),C=o.offset-20-56;if(Ys(x,0)!=101075792&&a!=C){let T=a;a=C,u=a-T,A=await Qg(i,a,56),x=ja(A)}if(Ys(x,0)!=101075792)throw new Error(_Ze);c=N3(x,32),s=N3(x,40),a-=s}if(a<0||a>=i.size)throw new Error(_7);let f=0,d=await Qg(i,a,s),p=ja(d);if(s){let g=o.offset-s;if(Ys(p,f)!=33639248&&a!=g){let h=a;a=g,u=a-h,d=await Qg(i,a,s),p=ja(d)}}if(a<0||a>=i.size)throw new Error(_7);for(let g=0;g<c;g++){let h=new y7(i,n.config,n.options);if(Ys(p,f)!=33639248)throw new Error(gZe);Tde(h,p,f+6);let A=!!h.bitFlag.languageEncodingFlag,x=f+46,C=x+h.filenameLength,T=C+h.extraFieldLength,E=iu(p,f+4),S=(E&0)==0;Object.assign(h,{versionMadeBy:E,msDosCompatible:S,compressedSize:0,uncompressedSize:0,commentLength:iu(p,f+32),directory:S&&(BE(p,f+38)&16)==16,offset:Ys(p,f+42)+u,internalFileAttribute:Ys(p,f+34),externalFileAttribute:Ys(p,f+38),rawFilename:d.subarray(x,C),filenameUTF8:A,commentUTF8:A,rawExtraField:d.subarray(C,T)});let v=T+h.commentLength;h.rawComment=d.subarray(T,v);let D=RE(n,t,"filenameEncoding"),O=RE(n,t,"commentEncoding"),[M,L]=await Promise.all([L3(h.rawFilename,h.filenameUTF8?yde:D||Ade),L3(h.rawComment,h.commentUTF8?yde:O||Ade)]);h.filename=M,h.comment=L,!h.directory&&h.filename.endsWith(ME)&&(h.directory=!0),await Ede(h,h,p,f+6);let N=new Lp(h);if(N.getData=(_,b)=>h.getData(_,N,b),f=v,t.onprogress)try{t.onprogress(g+1,c,new Lp(h))}catch{}yield N}return!0}async getEntries(t={}){let n=[],i=this.getEntriesGenerator(t),o=i.next();for(;!(await o).done;)n.push((await o).value),o=i.next();return n}async close(){}};var y7=class{constructor(t,n,i){Object.assign(this,{reader:t,config:n,options:i})}async getData(t,n,i={}){let o=this,{reader:r,offset:s,extraFieldAES:a,compressionMethod:c,config:u,bitFlag:f,signature:d,rawLastModDate:p,compressedSize:g}=o,h=o.localDirectory={};r.initialized||await r.init();let A=await Qg(r,s,30),x=ja(A),C=RE(o,i,"password");if(C=C&&C.length&&C,a&&a.originalCompressionMethod!=99)throw new Error(gde);if(c!=0&&c!=8)throw new Error(gde);if(Ys(x,0)!=67324752)throw new Error(yZe);Tde(h,x,4),A=await Qg(r,s,30+h.filenameLength+h.extraFieldLength),h.rawExtraField=A.subarray(30+h.filenameLength),await Ede(o,h,x,4),n.lastAccessDate=h.lastAccessDate,n.creationDate=h.creationDate;let T=o.encrypted&&h.encrypted,E=T&&!a;if(T){if(!E&&a.strength===void 0)throw new Error(CZe);if(!C)throw new Error(xZe)}let S=await D3(u.Inflate,{codecType:w3,password:C,zipCrypto:E,encryptionStrength:a&&a.strength,signed:RE(o,i,"checkSignature"),passwordVerification:E&&(f.dataDescriptor?p>>>8&255:d>>>24&255),signature:d,compressed:c!=0,encrypted:T,useWebWorkers:RE(o,i,"useWebWorkers")},u);t.initialized||await t.init();let v=RE(o,i,"signal"),D=s+30+h.filenameLength+h.extraFieldLength;return await I3(S,r,t,D,()=>g,u,{onprogress:i.onprogress,signal:v}),t.getData()}};function Tde(e,t,n){let i=e.rawBitFlag=iu(t,n+2),o=(i&1)==1,r=Ys(t,n+6);Object.assign(e,{encrypted:o,version:iu(t,n),bitFlag:{level:(i&6)>>1,dataDescriptor:(i&8)==8,languageEncodingFlag:(i&2048)==2048},rawLastModDate:r,lastModDate:vZe(r),filenameLength:iu(t,n+22),extraFieldLength:iu(t,n+24)})}async function Ede(e,t,n,i){let o=t.rawExtraField,r=t.extraField=new Map,s=ja(new Uint8Array(o)),a=0;try{for(;a<o.length;){let A=iu(s,a),x=iu(s,a+2);r.set(A,{type:A,data:o.slice(a+4,a+4+x)}),a+=4+x}}catch{}let c=iu(n,i+4);t.signature=Ys(n,i+10),t.uncompressedSize=Ys(n,i+18),t.compressedSize=Ys(n,i+14);let u=r.get(1);u&&(TZe(u,t),t.extraFieldZip64=u);let f=r.get(28789);f&&(await Cde(f,"filename","rawFilename",t,e),t.extraFieldUnicodePath=f);let d=r.get(25461);d&&(await Cde(d,"comment","rawComment",t,e),t.extraFieldUnicodeComment=d);let p=r.get(39169);p?(EZe(p,t,c),t.extraFieldAES=p):t.compressionMethod=c;let g=r.get(10);g&&(bZe(g,t),t.extraFieldNTFS=g);let h=r.get(21589);h&&(SZe(h,t),t.extraFieldExtendedTimestamp=h)}function TZe(e,t){t.zip64=!0;let n=ja(e.data);e.values=[];for(let o=0;o<Math.floor(e.data.length/8);o++)e.values.push(N3(n,0+o*8));let i=xde.filter(o=>t[o]==4294967295);for(let o=0;o<i.length;o++)e[i[o]]=e.values[o];xde.forEach(o=>{if(t[o]==4294967295)if(e[o]!==void 0)t[o]=e[o];else throw new Error(AZe)})}async function Cde(e,t,n,i,o){let r=ja(e.data);e.version=BE(r,0),e.signature=Ys(r,1);let s=new Jg;s.append(o[n]);let a=ja(new Uint8Array(4));a.setUint32(0,s.get(),!0),e[t]=await L3(e.data.subarray(5)),e.valid=!o.bitFlag.languageEncodingFlag&&e.signature==Ys(a,0),e.valid&&(i[t]=e[t],i[t+"UTF8"]=!0)}function EZe(e,t,n){let i=ja(e.data);e.vendorVersion=BE(i,0),e.vendorId=BE(i,2);let o=BE(i,4);e.strength=o,e.originalCompressionMethod=n,t.compressionMethod=e.compressionMethod=iu(i,5)}function bZe(e,t){let n=ja(e.data),i=4,o;try{for(;i<e.data.length&&!o;){let r=iu(n,i),s=iu(n,i+2);r==1&&(o=e.data.slice(i+4,i+4+s)),i+=4+s}}catch{}try{if(o&&o.length==24){let r=ja(o),s=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),c=r.getBigUint64(16,!0);Object.assign(e,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:c});let u=g7(s),f=g7(a),d=g7(c),p={lastModDate:u,lastAccessDate:f,creationDate:d};Object.assign(e,p),Object.assign(t,p)}}catch{}}function SZe(e,t){let n=ja(e.data),i=BE(n,0),o=[],r=[];(i&1)==1&&(o.push("lastModDate"),r.push("rawLastModDate")),(i&2)==2&&(o.push("lastAccessDate"),r.push("rawLastAccessDate")),(i&4)==4&&(o.push("creationDate"),r.push("rawCreationDate"));let s=1;o.forEach((a,c)=>{if(e.data.length>=s+4){let u=Ys(n,s);t[a]=e[a]=new Date(u*1e3);let f=r[c];e[f]=u}s+=4})}async function wZe(e,t,n,i,o){let r=new Uint8Array(4),s=ja(r);DZe(s,0,t);let a=i+o;return await c(i)||await c(Math.min(a,n));async function c(u){let f=n-u,d=await Qg(e,f,u);for(let p=d.length-i;p>=0;p--)if(d[p]==r[0]&&d[p+1]==r[1]&&d[p+2]==r[2]&&d[p+3]==r[3])return{offset:f+p,buffer:d.slice(p,p+i).buffer}}}function RE(e,t,n){return t[n]===void 0?e.options[n]:t[n]}function vZe(e){let t=(e&4294901760)>>16,n=e&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(n&63488)>>11,(n&2016)>>5,(n&31)*2,0)}catch{}}function g7(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function BE(e,t){return e.getUint8(t)}function iu(e,t){return e.getUint16(t,!0)}function Ys(e,t){return e.getUint32(t,!0)}function N3(e,t){return Number(e.getBigUint64(t,!0))}function DZe(e,t,n){e.setUint32(t,n,!0)}function ja(e){return new DataView(e.buffer)}function Qg(e,t,n){return e.readUint8Array(t,n)}var RZe="File already exists",BZe="Zip file comment exceeds 64KB",LZe="File entry comment exceeds 64KB",NZe="File entry name exceeds 64KB",wde="Version exceeds 65535",FZe="The strength must equal 1, 2, or 3",UZe="Extra field type exceeds 65535",VZe="Extra field data exceeds 64KB",P7="Zip64 is not supported",vde=new Uint8Array([7,0,2,0,65,69,3,0,0]),Dde=24,D7=0,q3=class{constructor(t,n={}){Object.assign(this,{writer:t,options:n,config:y3(),files:new Map,offset:t.size,pendingCompressedSize:0,pendingEntries:[],pendingAddFileCalls:new Set})}async add(t="",n,i={}){let o=this;if(D7<o.config.maxWorkers){D7++;let r;try{return r=kZe(o,t,n,i),this.pendingAddFileCalls.add(r),await r}finally{this.pendingAddFileCalls.delete(r),D7--;let s=o.pendingEntries.shift();s&&o.add(s.name,s.reader,s.options).then(s.resolve).catch(s.reject)}}else return new Promise((r,s)=>o.pendingEntries.push({name:t,reader:n,options:i,resolve:r,reject:s}))}async close(t=new Uint8Array(0),n={}){for(;this.pendingAddFileCalls.size;)await Promise.all(Array.from(this.pendingAddFileCalls));return await GZe(this,t,n),this.writer.getData()}};async function kZe(e,t,n,i){if(t=t.trim(),i.directory&&!t.endsWith(ME)?t+=ME:i.directory=t.endsWith(ME),e.files.has(t))throw new Error(RZe);let o=Kv(t);if(o.length>65535)throw new Error(NZe);let r=i.comment||"",s=Kv(r);if(s.length>65535)throw new Error(LZe);let a=e.options.version||i.version||0;if(a>65535)throw new Error(wde);let c=e.options.versionMadeBy||i.versionMadeBy||20;if(c>65535)throw new Error(wde);let u=pa(e,i,"lastModDate")||new Date,f=pa(e,i,"lastAccessDate"),d=pa(e,i,"creationDate"),p=pa(e,i,"password"),g=pa(e,i,"encryptionStrength")||3,h=pa(e,i,"zipCrypto");if(p!==void 0&&g!==void 0&&(g<1||g>3))throw new Error(FZe);let A=new Uint8Array(0),x=i.extraField;if(x){let F=0,k=0;x.forEach(V=>F+=4+V.length),A=new Uint8Array(F),x.forEach((V,G)=>{if(G>65535)throw new Error(UZe);if(V.length>65535)throw new Error(VZe);Xs(A,new Uint16Array([G]),k),Xs(A,new Uint16Array([V.length]),k+2),Xs(A,V,k+4),k+=4+V.length})}let C=pa(e,i,"extendedTimestamp");C===void 0&&(C=!0);let T=0,E=pa(e,i,"keepOrder");E===void 0&&(E=!0);let S=0,v=pa(e,i,"msDosCompatible");v===void 0&&(v=!0);let D=pa(e,i,"internalFileAttribute")||0,O=pa(e,i,"externalFileAttribute")||0;n&&(n.initialized||await n.init(),S=n.size,T=jZe(S));let M=i.zip64||e.options.zip64||!1;if(e.offset+e.pendingCompressedSize>=4294967295||S>=4294967295||T>=4294967295){if(i.zip64===!1||e.options.zip64===!1||!E)throw new Error(P7);M=!0}e.pendingCompressedSize+=T,await Promise.resolve();let L=pa(e,i,"level"),N=pa(e,i,"useWebWorkers"),_=pa(e,i,"bufferedWrite"),b=pa(e,i,"dataDescriptor"),w=pa(e,i,"dataDescriptorSignature"),I=pa(e,i,"signal");b===void 0&&(b=!0),b&&w===void 0&&(w=!1);let R=await zZe(e,t,n,Object.assign({},i,{rawFilename:o,rawComment:s,version:a,versionMadeBy:c,lastModDate:u,lastAccessDate:f,creationDate:d,rawExtraField:A,zip64:M,password:p,level:L,useWebWorkers:N,encryptionStrength:g,extendedTimestamp:C,zipCrypto:h,bufferedWrite:_,keepOrder:E,dataDescriptor:b,dataDescriptorSignature:w,signal:I,msDosCompatible:v,internalFileAttribute:D,externalFileAttribute:O}));return T&&(e.pendingCompressedSize-=T),Object.assign(R,{name:t,comment:r,extraField:x}),new Lp(R)}async function zZe(e,t,n,i){let o=e.files,r=e.writer,s=Array.from(o.values()).pop(),a={},c,u,f;o.set(t,a);try{let d,p,g;if(i.keepOrder&&(d=s&&s.lock),a.lock=g=new Promise(h=>f=h),i.bufferedWrite||e.lockWrite||!i.dataDescriptor?(p=new OE,p.init(),c=!0):(e.lockWrite=new Promise(h=>u=h),r.initialized||await r.init(),p=r),a=await HZe(n,p,e.config,i),a.lock=g,o.set(t,a),a.filename=t,c){let h=0,A=p.getData();await Promise.all([e.lockWrite,d]);let x;do x=Array.from(o.values()).find(C=>C.writingBufferedData),x&&await x.lock;while(x&&x.lock);if(a.writingBufferedData=!0,!i.dataDescriptor){let T=await Ide(A,0,26),E=new DataView(T);(!a.encrypted||i.zipCrypto)&&co(E,14,a.signature),a.zip64?(co(E,18,4294967295),co(E,22,4294967295)):(co(E,18,a.compressedSize),co(E,22,a.uncompressedSize)),await r.writeUint8Array(new Uint8Array(T)),h=26}await WZe(r,A,h),delete a.writingBufferedData}if(a.offset=e.offset,a.zip64){let h=bd(a.rawExtraFieldZip64);ll(h,20,BigInt(a.offset))}else if(a.offset>=4294967295)throw new Error(P7);return e.offset+=a.length,a}catch(d){throw(c&&a.writingBufferedData||!c&&a.dataWritten)&&(d.corruptedEntry=e.hasCorruptedEntries=!0,a.uncompressedSize&&(e.offset+=a.uncompressedSize)),o.delete(t),d}finally{f(),u&&u()}}async function HZe(e,t,n,i){let{rawFilename:o,lastAccessDate:r,creationDate:s,password:a,level:c,zip64:u,zipCrypto:f,dataDescriptor:d,dataDescriptorSignature:p,directory:g,version:h,versionMadeBy:A,rawComment:x,rawExtraField:C,useWebWorkers:T,onprogress:E,signal:S,encryptionStrength:v,extendedTimestamp:D,msDosCompatible:O,internalFileAttribute:M,externalFileAttribute:L}=i,N=!!(a&&a.length),_=c!==0&&!g,b;if(N&&!f){b=new Uint8Array(vde.length+2);let Ue=bd(b);jo(Ue,0,39169),Xs(b,vde,2),X3(Ue,8,v)}else b=new Uint8Array(0);let w,I;if(D){I=new Uint8Array(9+(r?4:0)+(s?4:0));let Ue=bd(I);jo(Ue,0,21589),jo(Ue,2,I.length-4);let Re=1+(r?2:0)+(s?4:0);X3(Ue,4,Re),co(Ue,5,Math.floor(i.lastModDate.getTime()/1e3)),r&&co(Ue,9,Math.floor(r.getTime()/1e3)),s&&co(Ue,13,Math.floor(s.getTime()/1e3));try{w=new Uint8Array(36);let ke=bd(w),ft=I7(i.lastModDate);jo(ke,0,10),jo(ke,2,32),jo(ke,8,1),jo(ke,10,24),ll(ke,12,ft),ll(ke,20,I7(r)||ft),ll(ke,28,I7(s)||ft)}catch{w=new Uint8Array(0)}}else w=I=new Uint8Array(0);let R={version:h||20,versionMadeBy:A,zip64:u,directory:!!g,filenameUTF8:!0,rawFilename:o,commentUTF8:!0,rawComment:x,rawExtraFieldZip64:u?new Uint8Array(Dde+4):new Uint8Array(0),rawExtraFieldExtendedTimestamp:I,rawExtraFieldNTFS:w,rawExtraFieldAES:b,rawExtraField:C,extendedTimestamp:D,msDosCompatible:O,internalFileAttribute:M,externalFileAttribute:L},F=R.uncompressedSize=0,k=2048;d&&(k=k|8);let V=0;_&&(V=8),u&&(R.version=R.version>45?R.version:45),N&&(k=k|1,f||(R.version=R.version>51?R.version:51,V=99,_&&(R.rawExtraFieldAES[9]=8))),R.compressionMethod=V;let G=R.headerArray=new Uint8Array(26),U=bd(G);jo(U,0,R.version),jo(U,2,k),jo(U,4,V);let q=new Uint32Array(1),Y=bd(q),Q;i.lastModDate<m7?Q=m7:i.lastModDate>d7?Q=d7:Q=i.lastModDate,jo(Y,0,(Q.getHours()<<6|Q.getMinutes())<<5|Q.getSeconds()/2),jo(Y,2,(Q.getFullYear()-1980<<4|Q.getMonth()+1)<<5|Q.getDate());let W=q[0];co(U,6,W),jo(U,22,o.length);let K=b.length+I.length+w.length+R.rawExtraField.length;jo(U,24,K);let J=new Uint8Array(30+o.length+K),_e=bd(J);co(_e,0,67324752),Xs(J,G,4),Xs(J,o,30),Xs(J,b,30+o.length),Xs(J,I,30+o.length+b.length),Xs(J,w,30+o.length+b.length+I.length),Xs(J,R.rawExtraField,30+o.length+b.length+I.length+w.length);let xe,se=0;if(e){let Ue=await D3(n.Deflate,{codecType:S3,level:c,password:a,encryptionStrength:v,zipCrypto:N&&f,passwordVerification:N&&f&&W>>8&255,signed:!0,compressed:_,encrypted:N,useWebWorkers:T},n);await t.writeUint8Array(J),R.dataWritten=!0,xe=await I3(Ue,e,t,0,()=>e.size,n,{onprogress:E,signal:S}),F=R.uncompressedSize=e.size,se=xe.length}else await t.writeUint8Array(J),R.dataWritten=!0;let Ae=new Uint8Array(0),me,Se=0;if(d&&(Ae=new Uint8Array(u?p?24:20:p?16:12),me=bd(Ae),p&&(Se=4,co(me,0,134695760))),e){let Ue=xe.signature;if((!N||f)&&Ue!==void 0&&(co(U,10,Ue),R.signature=Ue,d&&co(me,Se,Ue)),u){let Re=bd(R.rawExtraFieldZip64);jo(Re,0,1),jo(Re,2,Dde),co(U,14,4294967295),ll(Re,12,BigInt(se)),co(U,18,4294967295),ll(Re,4,BigInt(F)),d&&(ll(me,Se+4,BigInt(se)),ll(me,Se+12,BigInt(F)))}else co(U,14,se),co(U,18,F),d&&(co(me,Se+4,se),co(me,Se+8,F))}d&&await t.writeUint8Array(Ae);let Ie=J.length+se+Ae.length;return Object.assign(R,{compressedSize:se,lastModDate:Q,rawLastModDate:W,creationDate:s,lastAccessDate:r,encrypted:N,length:Ie}),R}async function GZe(e,t,n){let i=e.writer,o=e.files,r=0,s=0,a=e.offset,c=o.size;for(let[,p]of o)s+=46+p.rawFilename.length+p.rawComment.length+p.rawExtraFieldZip64.length+p.rawExtraFieldAES.length+p.rawExtraFieldExtendedTimestamp.length+p.rawExtraFieldNTFS.length+p.rawExtraField.length;let u=n.zip64||e.options.zip64||!1;if(a>=4294967295||s>=4294967295||c>=65535){if(n.zip64===!1||e.options.zip64===!1)throw new Error(P7);u=!0}let f=new Uint8Array(s+(u?98:22)),d=bd(f);if(t&&t.length)if(t.length<=65535)jo(d,r+20,t.length);else throw new Error(BZe);for(let[p,g]of Array.from(o.values()).entries()){let{rawFilename:h,rawExtraFieldZip64:A,rawExtraFieldAES:x,rawExtraField:C,rawComment:T,versionMadeBy:E,headerArray:S,directory:v,zip64:D,msDosCompatible:O,internalFileAttribute:M,externalFileAttribute:L}=g,N,_;if(g.extendedTimestamp){_=g.rawExtraFieldNTFS,N=new Uint8Array(9);let w=bd(N);jo(w,0,21589),jo(w,2,N.length-4),X3(w,4,1),co(w,5,Math.floor(g.lastModDate.getTime()/1e3))}else _=N=new Uint8Array(0);let b=A.length+x.length+N.length+_.length+C.length;if(co(d,r,33639248),jo(d,r+4,E),Xs(f,S,r+6),jo(d,r+30,b),jo(d,r+32,T.length),co(d,r+34,M),L?co(d,r+38,L):v&&O&&X3(d,r+38,16),D?co(d,r+42,4294967295):co(d,r+42,g.offset),Xs(f,h,r+46),Xs(f,A,r+46+h.length),Xs(f,x,r+46+h.length+A.length),Xs(f,N,r+46+h.length+A.length+x.length),Xs(f,_,r+46+h.length+A.length+x.length+N.length),Xs(f,C,r+46+h.length+A.length+x.length+N.length+_.length),Xs(f,T,r+46+h.length+b),r+=46+h.length+b+T.length,n.onprogress)try{n.onprogress(p+1,o.size,new Lp(g))}catch{}}u&&(co(d,r,101075792),ll(d,r+4,BigInt(44)),jo(d,r+12,45),jo(d,r+14,45),ll(d,r+24,BigInt(c)),ll(d,r+32,BigInt(c)),ll(d,r+40,BigInt(s)),ll(d,r+48,BigInt(a)),co(d,r+56,117853008),ll(d,r+64,BigInt(a)+BigInt(s)),co(d,r+72,1),c=65535,a=4294967295,s=4294967295,r+=76),co(d,r,101010256),jo(d,r+8,c),jo(d,r+10,c),co(d,r+12,s),co(d,r+16,a),await i.writeUint8Array(f),t&&t.length&&await i.writeUint8Array(t)}function Ide(e,t,n){if(e.arrayBuffer)return t||n?e.slice(t,n).arrayBuffer():e.arrayBuffer();{let i=new FileReader;return new Promise((o,r)=>{i.onload=s=>o(s.target.result),i.onerror=()=>r(i.error),i.readAsArrayBuffer(t||n?e.slice(t,n):e)})}}async function WZe(e,t,n=0){await o();async function o(){if(n<t.size){let r=await Ide(t,n,n+536870912);await e.writeUint8Array(new Uint8Array(r)),n+=536870912,await o()}}}function I7(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function pa(e,t,n){return t[n]===void 0?e.options[n]:t[n]}function jZe(e){return e+5*(Math.floor(e/16383)+1)}function X3(e,t,n){e.setUint8(t,n)}function jo(e,t,n){e.setUint16(t,n,!0)}function co(e,t,n){e.setUint32(t,n,!0)}function ll(e,t,n){e.setBigUint64(t,n,!0)}function Xs(e,t,n){e.set(t,n)}function bd(e){return new DataView(e.buffer)}wE({Deflate:Cfe,Inflate:Gfe});function YZe(e){return typeof e=="string"&&(e=document.getElementById(e)),e}var On=YZe;function qZe(e,t){this.position=e,this.headingPitchRange=t}var K3=qZe;function J3(e,t){this.id=t,this.name=e,this.playlistIndex=0,this.playlist=[],this.tourStart=new ge,this.tourEnd=new ge,this.entryStart=new ge,this.entryEnd=new ge,this._activeEntries=[]}J3.prototype.addPlaylistEntry=function(e){this.playlist.push(e)};J3.prototype.play=function(e,t){l(e.cesiumWidget)&&$("viewer","The viewer parameter has been deprecated in Cesium 1.99. It will be removed in 1.100. Instead of a Viewer, pass a CesiumWidget instead."),this.tourStart.raiseEvent();let n=this;Mde.call(this,e,t,function(i){n.playlistIndex=0,i||Ode(n._activeEntries),n.tourEnd.raiseEvent(i)})};J3.prototype.stop=function(){Ode(this._activeEntries)};function Ode(e){for(let t=e.pop();t!==void 0;t=e.pop())t.stop()}function Mde(e,t,n){let i=this.playlist[this.playlistIndex];if(i){let o=XZe.bind(this,e,t,n);if(this._activeEntries.push(i),this.entryStart.raiseEvent(i),i.blocking)i.play(o,e.scene.camera,t);else{let r=this;i.play(function(){r.entryEnd.raiseEvent(i);let s=r._activeEntries.indexOf(i);s>=0&&r._activeEntries.splice(s,1)}),o(e,t,n)}}else l(n)&&n(!1)}function XZe(e,t,n,i){let o=this.playlist[this.playlistIndex];if(this.entryEnd.raiseEvent(o,i),i)n(i);else{let r=this._activeEntries.indexOf(o);r>=0&&this._activeEntries.splice(r,1),this.playlistIndex++,Mde.call(this,e,t,n)}}var Z3=J3;var Li={Linear:{None:function(e){return e}},Quadratic:{In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}},Cubic:{In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}},Quartic:{In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}},Quintic:{In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}},Sinusoidal:{In:function(e){return 1-Math.cos(e*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.cos(Math.PI*e))}},Exponential:{In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}},Circular:{In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}},Elastic:{In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}},Back:{In:function(e){var t=1.70158;return e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)}},Bounce:{In:function(e){return 1-Li.Bounce.Out(1-e)},Out:function(e){return e<.36363636363636365?7.5625*e*e:e<.7272727272727273?7.5625*(e-=.5454545454545454)*e+.75:e<.9090909090909091?7.5625*(e-=.8181818181818182)*e+.9375:7.5625*(e-=.9545454545454546)*e+.984375},InOut:function(e){return e<.5?Li.Bounce.In(e*2)*.5:Li.Bounce.Out(e*2-1)*.5+.5}}},eD;typeof self>"u"&&typeof process<"u"&&process.hrtime?eD=function(){var e=process.hrtime();return e[0]*1e3+e[1]/1e6}:typeof self<"u"&&self.performance!==void 0&&self.performance.now!==void 0?eD=self.performance.now.bind(self.performance):Date.now!==void 0?eD=Date.now:eD=function(){return new Date().getTime()};var LE=eD,KZe=function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(n){return t._tweens[n]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(t){this._tweens[t.getId()]=t,this._tweensAddedDuringUpdate[t.getId()]=t},e.prototype.remove=function(t){delete this._tweens[t.getId()],delete this._tweensAddedDuringUpdate[t.getId()]},e.prototype.update=function(t,n){t===void 0&&(t=LE()),n===void 0&&(n=!1);var i=Object.keys(this._tweens);if(i.length===0)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o<i.length;o++){var r=this._tweens[i[o]],s=!n;r&&r.update(t,s)===!1&&!n&&delete this._tweens[i[o]]}i=Object.keys(this._tweensAddedDuringUpdate)}return!0},e}(),tD={Linear:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=tD.Utils.Linear;return t<0?r(e[0],e[1],i):t>1?r(e[n],e[n-1],n-i):r(e[o],e[o+1>n?n:o+1],i-o)},Bezier:function(e,t){for(var n=0,i=e.length-1,o=Math.pow,r=tD.Utils.Bernstein,s=0;s<=i;s++)n+=o(1-t,i-s)*o(t,s)*e[s]*r(i,s);return n},CatmullRom:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=tD.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(o=Math.floor(i=n*(1+t))),r(e[(o-1+n)%n],e[o],e[(o+1)%n],e[(o+2)%n],i-o)):t<0?e[0]-(r(e[0],e[0],e[1],e[1],-i)-e[0]):t>1?e[n]-(r(e[n],e[n],e[n-1],e[n-1],i-n)-e[n]):r(e[o?o-1:0],e[o],e[n<o+1?n:o+1],e[n<o+2?n:o+2],i-o)},Utils:{Linear:function(e,t,n){return(t-e)*n+e},Bernstein:function(e,t){var n=tD.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:function(){var e=[1];return function(t){var n=1;if(e[t])return e[t];for(var i=t;i>1;i--)n*=i;return e[t]=n,n}}(),CatmullRom:function(e,t,n,i,o){var r=(n-e)*.5,s=(i-t)*.5,a=o*o,c=o*a;return(2*t-2*n+r+s)*c+(-3*t+3*n-2*r-s)*a+r*o+t}}},Rde=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),Bde=new KZe,Lde=function(){function e(t,n){n===void 0&&(n=Bde),this._object=t,this._group=n,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Li.Linear.None,this._interpolationFunction=tD.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._id=Rde.nextId(),this._isChainStopped=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.to=function(t,n){return this._valuesEnd=Object.create(t),n!==void 0&&(this._duration=n),this},e.prototype.duration=function(t){return this._duration=t,this},e.prototype.start=function(t){if(this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var n in this._valuesStartRepeat)this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n]}return this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t!==void 0?typeof t=="string"?LE()+parseFloat(t):t:LE(),this._startTime+=this._delayTime,this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat),this},e.prototype._setupProperties=function(t,n,i,o){for(var r in i){var s=t[r],a=Array.isArray(s),c=a?"array":typeof s,u=!a&&Array.isArray(i[r]);if(!(c==="undefined"||c==="function")){if(u){var f=i[r];if(f.length===0)continue;f=f.map(this._handleRelativeValue.bind(this,s)),i[r]=[s].concat(f)}if((c==="object"||a)&&s&&!u){n[r]=a?[]:{};for(var d in s)n[r][d]=s[d];o[r]=a?[]:{},this._setupProperties(s,n[r],i[r],o[r])}else typeof n[r]>"u"&&(n[r]=s),a||(n[r]*=1),u?o[r]=i[r].slice().reverse():o[r]=n[r]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(t){return t===void 0&&(t=LE()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=t,this._group&&this._group.remove(this),this)},e.prototype.resume=function(t){return t===void 0&&(t=LE()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},e.prototype.stopChainedTweens=function(){for(var t=0,n=this._chainedTweens.length;t<n;t++)this._chainedTweens[t].stop();return this},e.prototype.group=function(t){return this._group=t,this},e.prototype.delay=function(t){return this._delayTime=t,this},e.prototype.repeat=function(t){return this._initialRepeat=t,this._repeat=t,this},e.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},e.prototype.yoyo=function(t){return this._yoyo=t,this},e.prototype.easing=function(t){return this._easingFunction=t,this},e.prototype.interpolation=function(t){return this._interpolationFunction=t,this},e.prototype.chain=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return this._chainedTweens=t,this},e.prototype.onStart=function(t){return this._onStartCallback=t,this},e.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},e.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},e.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},e.prototype.onStop=function(t){return this._onStopCallback=t,this},e.prototype.update=function(t,n){if(t===void 0&&(t=LE()),n===void 0&&(n=!0),this._isPaused)return!0;var i,o,r=this._startTime+this._duration;if(!this._goToEnd&&!this._isPlaying){if(t>r)return!1;n&&this.start(t)}if(this._goToEnd=!1,t<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),o=(t-this._startTime)/this._duration,o=this._duration===0||o>1?1:o;var s=this._easingFunction(o);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,s),this._onUpdateCallback&&this._onUpdateCallback(this._object,o),o===1)if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(i in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[i]=="string"&&(this._valuesStartRepeat[i]=this._valuesStartRepeat[i]+parseFloat(this._valuesEnd[i])),this._yoyo&&this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i];return this._yoyo&&(this._reversed=!this._reversed),this._repeatDelayTime!==void 0?this._startTime=t+this._repeatDelayTime:this._startTime=t+this._delayTime,this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var a=0,c=this._chainedTweens.length;a<c;a++)this._chainedTweens[a].start(this._startTime+this._duration);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(t,n,i,o){for(var r in i)if(n[r]!==void 0){var s=n[r]||0,a=i[r],c=Array.isArray(t[r]),u=Array.isArray(a),f=!c&&u;f?t[r]=this._interpolationFunction(a,o):typeof a=="object"&&a?this._updateProperties(t[r],s,a,o):(a=this._handleRelativeValue(s,a),typeof a=="number"&&(t[r]=s+(a-s)*o))}},e.prototype._handleRelativeValue=function(t,n){return typeof n!="string"?n:n.charAt(0)==="+"||n.charAt(0)==="-"?t+parseFloat(n):parseFloat(n)},e.prototype._swapEndStartRepeatValues=function(t){var n=this._valuesStartRepeat[t],i=this._valuesEnd[t];typeof i=="string"?this._valuesStartRepeat[t]=this._valuesStartRepeat[t]+parseFloat(i):this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=n},e}();var kWn=Rde.nextId,Jm=Bde,zWn=Jm.getAll.bind(Jm),HWn=Jm.removeAll.bind(Jm),GWn=Jm.add.bind(Jm),WWn=Jm.remove.bind(Jm),jWn=Jm.update.bind(Jm);var JZe={LINEAR_NONE:Li.Linear.None,QUADRATIC_IN:Li.Quadratic.In,QUADRATIC_OUT:Li.Quadratic.Out,QUADRATIC_IN_OUT:Li.Quadratic.InOut,CUBIC_IN:Li.Cubic.In,CUBIC_OUT:Li.Cubic.Out,CUBIC_IN_OUT:Li.Cubic.InOut,QUARTIC_IN:Li.Quartic.In,QUARTIC_OUT:Li.Quartic.Out,QUARTIC_IN_OUT:Li.Quartic.InOut,QUINTIC_IN:Li.Quintic.In,QUINTIC_OUT:Li.Quintic.Out,QUINTIC_IN_OUT:Li.Quintic.InOut,SINUSOIDAL_IN:Li.Sinusoidal.In,SINUSOIDAL_OUT:Li.Sinusoidal.Out,SINUSOIDAL_IN_OUT:Li.Sinusoidal.InOut,EXPONENTIAL_IN:Li.Exponential.In,EXPONENTIAL_OUT:Li.Exponential.Out,EXPONENTIAL_IN_OUT:Li.Exponential.InOut,CIRCULAR_IN:Li.Circular.In,CIRCULAR_OUT:Li.Circular.Out,CIRCULAR_IN_OUT:Li.Circular.InOut,ELASTIC_IN:Li.Elastic.In,ELASTIC_OUT:Li.Elastic.Out,ELASTIC_IN_OUT:Li.Elastic.InOut,BACK_IN:Li.Back.In,BACK_OUT:Li.Back.Out,BACK_IN_OUT:Li.Back.InOut,BOUNCE_IN:Li.Bounce.In,BOUNCE_OUT:Li.Bounce.Out,BOUNCE_IN_OUT:Li.Bounce.InOut},Nr=Object.freeze(JZe);function Q3(e,t,n){this.type="KmlTourFlyTo",this.blocking=!0,this.activeCamera=null,this.activeCallback=null,this.duration=e,this.view=n,this.flyToMode=t}Q3.prototype.play=function(e,t,n){if(this.activeCamera=t,l(e)&&e!==null){let o=this;this.activeCallback=function(r){delete o.activeCallback,delete o.activeCamera,e(l(r)?!1:r)}}let i=this.getCameraOptions(n);if(this.view.headingPitchRoll)t.flyTo(i);else if(this.view.headingPitchRange){let o=new ae(this.view.position);t.flyToBoundingSphere(o,i)}};Q3.prototype.stop=function(){l(this.activeCamera)&&this.activeCamera.cancelFlight(),l(this.activeCallback)&&this.activeCallback(!0)};Q3.prototype.getCameraOptions=function(e){let t={duration:this.duration};return l(this.activeCallback)&&(t.complete=this.activeCallback),this.flyToMode==="smooth"&&(t.easingFunction=Nr.LINEAR_NONE),this.view.headingPitchRoll?(t.destination=this.view.position,t.orientation=this.view.headingPitchRoll):this.view.headingPitchRange&&(t.offset=this.view.headingPitchRange),l(e)&&(t=gt(t,e)),t};var $3=Q3;function O7(e){this.type="KmlTourWait",this.blocking=!0,this.duration=e,this.timeout=null}O7.prototype.play=function(e){let t=this;this.activeCallback=e,this.timeout=setTimeout(function(){delete t.activeCallback,e(!1)},this.duration*1e3)};O7.prototype.stop=function(){clearTimeout(this.timeout),l(this.activeCallback)&&this.activeCallback(!0)};var eU=O7;var jde={avi:"video/x-msvideo",bmp:"image/bmp",bz2:"application/x-bzip2",chm:"application/vnd.ms-htmlhelp",css:"text/css",csv:"text/csv",doc:"application/msword",dvi:"application/x-dvi",eps:"application/postscript",flv:"video/x-flv",gif:"image/gif",gz:"application/x-gzip",htm:"text/html",html:"text/html",ico:"image/vnd.microsoft.icon",jnlp:"application/x-java-jnlp-file",jpeg:"image/jpeg",jpg:"image/jpeg",m3u:"audio/x-mpegurl",m4v:"video/mp4",mathml:"application/mathml+xml",mid:"audio/midi",midi:"audio/midi",mov:"video/quicktime",mp3:"audio/mpeg",mp4:"video/mp4",mp4v:"video/mp4",mpeg:"video/mpeg",mpg:"video/mpeg",odp:"application/vnd.oasis.opendocument.presentation",ods:"application/vnd.oasis.opendocument.spreadsheet",odt:"application/vnd.oasis.opendocument.text",ogg:"application/ogg",pdf:"application/pdf",png:"image/png",pps:"application/vnd.ms-powerpoint",ppt:"application/vnd.ms-powerpoint",ps:"application/postscript",qt:"video/quicktime",rdf:"application/rdf+xml",rss:"application/rss+xml",rtf:"application/rtf",svg:"image/svg+xml",swf:"application/x-shockwave-flash",text:"text/plain",tif:"image/tiff",tiff:"image/tiff",txt:"text/plain",wav:"audio/x-wav",wma:"audio/x-ms-wma",wmv:"video/x-ms-wmv",xml:"application/xml",zip:"application/zip",detectFromFilename:function(e){let t=e.toLowerCase();return t=Dx(t),jde[t]}},U7;typeof DOMParser<"u"&&(U7=new DOMParser);var ZZe=new n3({stripPrefix:!1,email:!1,replaceFn:function(e){return e.urlMatchType==="scheme"||e.urlMatchType==="www"}}),$g=32,Nde=2414016,Fde=1,Ude=16093e3,Vde=.1,kde=[null,void 0,"http://www.opengis.net/kml/2.2","http://earth.google.com/kml/2.2","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.0"],zde=["http://www.google.com/kml/ext/2.2"],QZe=["http://www.w3.org/2005/Atom"],Me={kml:kde,gx:zde,atom:QZe,kmlgx:kde.concat(zde)},V7={Document:tme,Folder:gQe,Placemark:yQe,NetworkLink:vQe,GroundOverlay:bQe,PhotoOverlay:ome,ScreenOverlay:EQe,Tour:xQe};function Zm(e){this._dataSource=e,this._deferred=oa(),this._stack=[],this._promises=[],this._timeoutSet=!1,this._used=!1,this._started=0,this._timeThreshold=1e3}Object.defineProperties(Zm.prototype,{dataSource:{get:function(){return this._dataSource}}});Zm.prototype.addNodes=function(e,t){this._stack.push({nodes:e,index:0,processingData:t}),this._used=!0};Zm.prototype.addPromise=function(e){this._promises.push(e)};Zm.prototype.wait=function(){let e=this._deferred;return this._used||e.resolve(),Promise.all([e.promise,Promise.all(this._promises)])};Zm.prototype.process=function(){let e=this._stack.length===1;return e&&(this._started=su._getTimestamp()),this._process(e)};Zm.prototype._giveUpTime=function(){if(this._timeoutSet)return;this._timeoutSet=!0,this._timeThreshold=50;let e=this;setTimeout(function(){e._timeoutSet=!1,e._started=su._getTimestamp(),e._process(!0)},0)};Zm.prototype._nextNode=function(){let e=this._stack,t=e[e.length-1],n=t.index,i=t.nodes;if(n!==i.length)return++t.index,i[n]};Zm.prototype._pop=function(){let e=this._stack;return e.pop(),e.length===0?(this._deferred.resolve(),!1):!0};Zm.prototype._process=function(e){let t=this.dataSource,n=this._stack[this._stack.length-1].processingData,i=this._nextNode();for(;l(i);){let o=V7[i.localName];if(l(o)&&(Me.kml.indexOf(i.namespaceURI)!==-1||Me.gx.indexOf(i.namespaceURI)!==-1)&&(o(t,i,n,this),this._timeoutSet||su._getTimestamp()>this._started+this._timeThreshold)){this._giveUpTime();return}i=this._nextNode()}this._pop()&&e&&this._process(!0)};function $Ze(e){let t=e.slice(0,Math.min(4,e.size)),n=oa(),i=new FileReader;return i.addEventListener("load",function(){n.resolve(new DataView(i.result).getUint32(0,!1)===1347093252)}),i.addEventListener("error",function(){n.reject(i.error)}),i.readAsArrayBuffer(t),n.promise}function eQe(e){let t=oa(),n=new FileReader;return n.addEventListener("load",function(){t.resolve(n.result)}),n.addEventListener("error",function(){t.reject(n.error)}),n.readAsText(e),t.promise}function Yde(e){let t={xsi:"http://www.w3.org/2001/XMLSchema-instance"},n,i,o,r;for(let s in t)t.hasOwnProperty(s)&&(o=RegExp(`[< ]${s}:`),r=`xmlns:${s}=`,o.test(e)&&e.indexOf(r)===-1&&(l(n)||(n=e.substr(0,e.indexOf("<kml")+4),i=e.substr(n.length)),n+=` ${r}"${t[s]}"`));return l(n)&&(e=n+i),e}function qde(e){let t=e.indexOf("xmlns:"),n=e.indexOf(">",t),i,o,r;for(;t!==-1&&t<n;)i=e.slice(t,e.indexOf('"',t)),o=t,t=e.indexOf(i,t+1),t!==-1?(r=e.indexOf('"',e.indexOf('"',t)+1),e=e.slice(0,t-1)+e.slice(r+1,e.length),t=e.indexOf("xmlns:",o-1)):t=e.indexOf("xmlns:",o+1);return e}function tQe(e,t){return Promise.resolve(e.getData(new R3)).then(function(n){n=Yde(n),n=qde(n),t.kml=U7.parseFromString(n,"application/xml")})}function M7(e,t){let n=y(jde.detectFromFilename(e.filename),"application/octet-stream");return Promise.resolve(e.getData(new B3(n))).then(function(i){t[e.filename]=i})}function ou(e,t,n,i){let o=i.keys,r=new nD.default("."),s=e.querySelectorAll(t);for(let a=0;a<s.length;a++){let c=s[a],u=c.getAttribute(n);if(l(u)){let d=new nD.default(u).absoluteTo(r).toString(),p=o.indexOf(d);if(p!==-1){let g=o[p];c.setAttribute(n,i[g]),t==="a"&&c.getAttribute("download")===null&&c.setAttribute("download",g)}}}}function ru(e,t,n,i){let o=e.querySelectorAll(t);for(let r=0;r<o.length;r++){let s=o[r],a=s.getAttribute(n),c=k7(a,i);l(c)&&s.setAttribute(n,c.url)}}function Xde(e,t,n){let i=rs(e,"id");i=l(i)&&i.length!==0?i:jn(),l(n)&&(i=n+i);let o=t.getById(i);return l(o)&&(i=jn(),l(n)&&(i=n+i)),o=t.add(new er({id:i})),l(o.kml)||(o.addProperty("kml"),o.kml=new OQe),o}function iD(e,t){return e==="absolute"||e==="relativeToGround"||t==="relativeToSeaFloor"}function oU(e,t){if(!l(e))return m.fromDegrees(0,0,0,t);let n=e.match(/[^\s,\n]+/g);if(!l(n))return m.fromDegrees(0,0,0,t);let i=parseFloat(n[0]),o=parseFloat(n[1]),r=parseFloat(n[2]);return i=isNaN(i)?0:i,o=isNaN(o)?0:o,r=isNaN(r)?0:r,m.fromDegrees(i,o,r,t)}function tU(e,t){if(!l(e))return;let n=e.textContent.match(/[^\s\n]+/g);if(!l(n))return;let i=n.length,o=new Array(i),r=0;for(let s=0;s<i;s++)o[r++]=oU(n[s],t);return o}function ey(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function rs(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function Si(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r<o;r++){let s=i[r];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function Hde(e,t,n){if(!l(e))return;let i=[],o=e.getElementsByTagNameNS("*",t),r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function Sd(e,t,n){if(!l(e))return[];let i=[],o=e.childNodes,r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function ei(e,t,n){let i=Si(e,t,n);if(l(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function vn(e,t,n){let i=Si(e,t,n);if(l(i))return i.textContent.trim()}function wd(e,t,n){let i=Si(e,t,n);if(l(i)){let o=i.textContent.trim();return o==="1"||/^true$/i.test(o)}}function k7(e,t,n){if(!l(e))return;let i;if(l(n)){e=e.replace(/\\/g,"/");let o=n[e];if(l(o))i=new we({url:o});else{let r=new nD.default(t.getUrlComponent()),s=new nD.default(e);o=n[s.absoluteTo(r)],l(o)&&(i=new we({url:o}))}}return l(i)||(i=t.getDerivedResource({url:e})),i}var ul={maximumRed:void 0,red:void 0,maximumGreen:void 0,green:void 0,maximumBlue:void 0,blue:void 0};function N7(e,t){if(!l(e)||/^\s*$/gm.test(e))return;e[0]==="#"&&(e=e.substring(1));let n=parseInt(e.substring(0,2),16)/255,i=parseInt(e.substring(2,4),16)/255,o=parseInt(e.substring(4,6),16)/255,r=parseInt(e.substring(6,8),16)/255;return t?(r>0?(ul.maximumRed=r,ul.red=void 0):(ul.maximumRed=void 0,ul.red=0),o>0?(ul.maximumGreen=o,ul.green=void 0):(ul.maximumGreen=void 0,ul.green=0),i>0?(ul.maximumBlue=i,ul.blue=void 0):(ul.maximumBlue=void 0,ul.blue=0),ul.alpha=n,z.fromRandom(ul)):new z(r,o,i,n)}function CA(e,t,n){let i=vn(e,t,n);if(l(i))return N7(i,vn(e,"colorMode",n)==="random")}function nQe(e){let t=Si(e,"TimeStamp",Me.kmlgx),n=vn(t,"when",Me.kmlgx);if(!l(t)||!l(n)||n.length===0)return;let i=ee.fromIso8601(n),o=new Rr;return o.addInterval(new bn({start:i,stop:Ge.MAXIMUM_VALUE})),o}function iQe(e){let t=Si(e,"TimeSpan",Me.kmlgx);if(!l(t))return;let n,i=Si(t,"begin",Me.kmlgx),o=l(i)?ee.fromIso8601(i.textContent):void 0,r=Si(t,"end",Me.kmlgx),s=l(r)?ee.fromIso8601(r.textContent):void 0;if(l(o)&&l(s)){if(ee.lessThan(s,o)){let a=o;o=s,s=a}n=new Rr,n.addInterval(new bn({start:o,stop:s}))}else l(o)?(n=new Rr,n.addInterval(new bn({start:o,stop:Ge.MAXIMUM_VALUE}))):l(s)&&(n=new Rr,n.addInterval(new bn({start:Ge.MINIMUM_VALUE,stop:s})));return n}function Kde(){let e=new lc;return e.width=$g,e.height=$g,e.scaleByDistance=new Lt(Nde,Fde,Ude,Vde),e.pixelOffsetScaleByDistance=new Lt(Nde,Fde,Ude,Vde),e}function z7(){let e=new cm;return e.outline=!0,e.outlineColor=z.WHITE,e}function Jde(){let e=new am;return e.translucencyByDistance=new Lt(3e6,1,5e6,0),e.pixelOffset=new H(17,0),e.horizontalOrigin=_i.LEFT,e.font="16px sans-serif",e.style=Ho.FILL_AND_OUTLINE,e}function H7(e,t,n,i,o){let r=vn(e,"href",Me.kml);if(!l(r)||r.length===0)return;if(r.indexOf("root://icons/palette-")===0){let a=r.charAt(21),c=y(ei(e,"x",Me.gx),0),u=y(ei(e,"y",Me.gx),0);c=Math.min(c/32,7),u=7-Math.min(u/32,7);let f=8*u+c;r=`https://maps.google.com/mapfiles/kml/pal${a}/icon${f}.png`}let s=k7(r,n,i);if(o){let a=vn(e,"refreshMode",Me.kml),c=vn(e,"viewRefreshMode",Me.kml);a==="onInterval"||a==="onExpire"?Mt(`kml-refreshMode-${a}`,`KML - Unsupported Icon refreshMode: ${a}`):(c==="onStop"||c==="onRegion")&&Mt(`kml-refreshMode-${c}`,`KML - Unsupported Icon viewRefreshMode: ${c}`);let u=y(vn(e,"viewBoundScale",Me.kml),1),f=c==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",d=y(vn(e,"viewFormat",Me.kml),f),p=vn(e,"httpQuery",Me.kml);l(d)&&s.setQueryParameters(bu(iU(d))),l(p)&&s.setQueryParameters(bu(iU(p)));let g=t._ellipsoid;return W7(s,t.camera,t.canvas,u,t._lastCameraView.bbox,g),s}return s}function oQe(e,t,n,i,o){let r=ei(t,"scale",Me.kml),s=ei(t,"heading",Me.kml),a=CA(t,"color",Me.kml),c=Si(t,"Icon",Me.kml),u=H7(c,e,i,o,!1);l(c)&&!l(u)&&(u=!1);let f=ei(c,"x",Me.gx),d=ei(c,"y",Me.gx),p=ei(c,"w",Me.gx),g=ei(c,"h",Me.gx),h=Si(t,"hotSpot",Me.kml),A=ey(h,"x"),x=ey(h,"y"),C=rs(h,"xunits"),T=rs(h,"yunits"),E=n.billboard;l(E)||(E=Kde(),n.billboard=E),E.image=u,E.scale=r,E.color=a,(l(f)||l(d)||l(p)||l(g))&&(E.imageSubRegion=new Ke(f,d,p,g)),l(s)&&s!==0&&(E.rotation=P.toRadians(-s),E.alignedAxis=m.UNIT_Z),r=y(r,1);let S,v;l(A)&&(C==="pixels"?S=-A*r:C==="insetPixels"?S=(A-$g)*r:C==="fraction"&&(S=-A*$g*r),S+=$g*.5*r),l(x)&&(T==="pixels"?v=x*r:T==="insetPixels"?v=(-x+$g)*r:T==="fraction"&&(v=x*$g*r),v-=$g*.5*r),(l(S)||l(v))&&(E.pixelOffset=new H(S,v))}function nU(e,t,n,i,o){for(let r=0,s=t.childNodes.length;r<s;r++){let a=t.childNodes.item(r);if(a.localName==="IconStyle")oQe(e,a,n,i,o);else if(a.localName==="LabelStyle"){let c=n.label;l(c)||(c=Jde(),n.label=c),c.scale=y(ei(a,"scale",Me.kml),c.scale),c.fillColor=y(CA(a,"color",Me.kml),c.fillColor),c.text=n.name}else if(a.localName==="LineStyle"){let c=n.polyline;l(c)||(c=new pc,n.polyline=c),c.width=ei(a,"width",Me.kml),c.material=CA(a,"color",Me.kml),l(CA(a,"outerColor",Me.gx))&&Mt("kml-gx:outerColor","KML - gx:outerColor is not supported in a LineStyle"),l(ei(a,"outerWidth",Me.gx))&&Mt("kml-gx:outerWidth","KML - gx:outerWidth is not supported in a LineStyle"),l(ei(a,"physicalWidth",Me.gx))&&Mt("kml-gx:physicalWidth","KML - gx:physicalWidth is not supported in a LineStyle"),l(wd(a,"labelVisibility",Me.gx))&&Mt("kml-gx:labelVisibility","KML - gx:labelVisibility is not supported in a LineStyle")}else if(a.localName==="PolyStyle"){let c=n.polygon;l(c)||(c=z7(),n.polygon=c),c.material=y(CA(a,"color",Me.kml),c.material),c.fill=y(wd(a,"fill",Me.kml),c.fill),c.outline=y(wd(a,"outline",Me.kml),c.outline)}else if(a.localName==="BalloonStyle"){let c=y(N7(vn(a,"bgColor",Me.kml)),z.WHITE),u=y(N7(vn(a,"textColor",Me.kml)),z.BLACK),f=vn(a,"text",Me.kml);n.addProperty("balloonStyle"),n.balloonStyle={bgColor:c,textColor:u,text:f}}else if(a.localName==="ListStyle"){let c=vn(a,"listItemType",Me.kml);(c==="radioFolder"||c==="checkOffOnly")&&Mt(`kml-listStyle-${c}`,`KML - Unsupported ListStyle with listItemType: ${c}`)}}}function rQe(e,t,n,i,o){let r=new er,s,a=-1,c=t.childNodes,u=c.length;for(let d=0;d<u;d++){let p=c[d];(p.localName==="Style"||p.localName==="StyleMap")&&(a=d)}if(a!==-1){let d=c[a];if(d.localName==="Style")nU(e,d,r,i,o);else{let p=Sd(d,"Pair",Me.kml);for(let g=0;g<p.length;g++){let h=p[g],A=vn(h,"key",Me.kml);if(A==="normal"){let x=vn(h,"styleUrl",Me.kml);if(l(x))s=n.getById(x),l(s)||(s=n.getById(`#${x}`)),l(s)&&r.merge(s);else{let C=Si(h,"Style",Me.kml);nU(e,C,r,i,o)}}else Mt(`kml-styleMap-${A}`,`KML - Unsupported StyleMap key: ${A}`)}}}let f=vn(t,"styleUrl",Me.kml);if(l(f)){let d=f;if(f[0]!=="#"&&f.indexOf("#")!==-1){let p=f.split("#"),g=p[0];d=`${i.getDerivedResource({url:g}).getUrlComponent()}#${p[1]}`}s=n.getById(d),l(s)||(s=n.getById(`#${d}`)),l(s)&&r.merge(s)}return r}function sQe(e,t,n){return t.fetchXML().then(function(i){return Zde(e,i,n,t,!0)})}function Zde(e,t,n,i,o,r){let s,a,c,u,f=Hde(t,"Style",Me.kml);if(l(f)){let A=f.length;for(s=0;s<A;s++)u=f[s],a=rs(u,"id"),l(a)&&(a=`#${a}`,o&&l(i)&&(a=i.getUrlComponent()+a),l(n.getById(a))||(c=new er({id:a}),n.add(c),nU(e,u,c,i,r)))}let d=Hde(t,"StyleMap",Me.kml);if(l(d)){let A=d.length;for(s=0;s<A;s++){let x=d[s];if(a=rs(x,"id"),l(a)){let C=Sd(x,"Pair",Me.kml);for(let T=0;T<C.length;T++){let E=C[T],S=vn(E,"key",Me.kml);if(S==="normal"){if(a=`#${a}`,o&&l(i)&&(a=i.getUrlComponent()+a),!l(n.getById(a))){c=n.getOrCreateEntity(a);let v=vn(E,"styleUrl",Me.kml);if(l(v)){v[0]!=="#"&&(v=`#${v}`),o&&l(i)&&(v=i.getUrlComponent()+v);let D=n.getById(v);l(D)&&c.merge(D)}else u=Si(E,"Style",Me.kml),nU(e,u,c,i,r)}}else Mt(`kml-styleMap-${S}`,`KML - Unsupported StyleMap key: ${S}`)}}}}let p=[],g=t.getElementsByTagName("styleUrl"),h=g.length;for(s=0;s<h;s++){let A=g[s].textContent;if(A[0]!=="#"){let x=A.split("#");if(x.length===2){let C=x[0],T=i.getDerivedResource({url:C});p.push(sQe(e,T,n))}}}return p}function G7(e,t,n){let i=new vg(e,t.id,["position"]),o=new Rp(t.position);t.polyline=l(n.polyline)?n.polyline.clone():new pc,t.polyline.positions=new Sg([i,o])}function Qde(e,t){return!l(e)&&!l(t)||e==="clampToGround"?qe.CLAMP_TO_GROUND:e==="relativeToGround"?qe.RELATIVE_TO_GROUND:e==="absolute"?qe.NONE:t==="clampToSeaFloor"?(Mt("kml-gx:altitudeMode-clampToSeaFloor","KML - <gx:altitudeMode>:clampToSeaFloor is currently not supported, using <kml:altitudeMode>:clampToGround."),qe.CLAMP_TO_GROUND):t==="relativeToSeaFloor"?(Mt("kml-gx:altitudeMode-relativeToSeaFloor","KML - <gx:altitudeMode>:relativeToSeaFloor is currently not supported, using <kml:altitudeMode>:relativeToGround."),qe.RELATIVE_TO_GROUND):(l(e)?Mt("kml-altitudeMode-unknown",`KML - Unknown <kml:altitudeMode>:${e}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`):Mt("kml-gx:altitudeMode-unknown",`KML - Unknown <gx:altitudeMode>:${t}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`),qe.CLAMP_TO_GROUND)}function aQe(e,t,n){return n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround"?e:((l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&Mt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`),new Rp(e))}function cQe(e,t,n,i){if(!l(e))return;if(n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround")return e;(l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&Mt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`);let o=e.length;for(let r=0;r<o;r++){let s=e[r];i.scaleToGeodeticSurface(s,s)}return e}function rU(e,t,n,i){let o=t.label;l(o)||(o=l(n.label)?n.label.clone():Jde(),t.label=o),o.text=t.name;let r=t.billboard;l(r)||(r=l(n.billboard)?n.billboard.clone():Kde(),t.billboard=r),l(r.image)?r.image.getValue()||(r.image=void 0):r.image=e._pinBuilder.fromColor(z.YELLOW,64);let s=1;l(r.scale)&&(s=r.scale.getValue(),s!==0?o.pixelOffset=new H(s*16+1,0):(o.pixelOffset=void 0,o.horizontalOrigin=void 0)),l(i)&&e._clampToGround&&(r.heightReference=i,o.heightReference=i)}function $de(e,t){let n=e.path;l(n)||(n=new b_,n.leadTime=0,e.path=n);let i=t.polyline;l(i)&&(n.material=i.material,n.width=i.width)}function lQe(e,t,n,i,o){let r=vn(n,"coordinates",Me.kml),s=vn(n,"altitudeMode",Me.kml),a=vn(n,"altitudeMode",Me.gx),c=wd(n,"extrude",Me.kml),u=e._ellipsoid,f=oU(r,u);return i.position=f,rU(e,i,o,Qde(s,a)),c&&iD(s,a)&&G7(t,i,o),!0}function Gde(e,t,n,i,o){let r=Si(n,"coordinates",Me.kml),s=vn(n,"altitudeMode",Me.kml),a=vn(n,"altitudeMode",Me.gx),c=wd(n,"extrude",Me.kml),u=wd(n,"tessellate",Me.kml),f=iD(s,a),d=ei(n,"drawOrder",Me.gx),p=e._ellipsoid,g=tU(r,p),h=o.polyline;if(f&&c){let A=new S_;i.wall=A,A.positions=g;let x=o.polygon;l(x)&&(A.fill=x.fill,A.material=x.material),A.outline=!0,l(h)?(A.outlineColor=l(h.material)?h.material.color:z.WHITE,A.outlineWidth=h.width):l(x)&&(A.outlineColor=l(x.material)?x.material.color:z.WHITE)}else if(e._clampToGround&&!f&&u){let A=new pc;A.clampToGround=!0,i.polyline=A,A.positions=g,l(h)?(A.material=l(h.material)?h.material.color.getValue(Ge.MINIMUM_VALUE):z.WHITE,A.width=y(h.width,1)):(A.material=z.WHITE,A.width=1),A.zIndex=d}else l(d)&&Mt("kml-gx:drawOrder","KML - gx:drawOrder is not supported in LineStrings when clampToGround is false"),e._clampToGround&&!u&&Mt("kml-line-tesselate","Ignoring clampToGround for KML lines without the tessellate flag."),h=l(h)?h.clone():new pc,i.polyline=h,h.positions=cQe(g,s,a,p),(!u||f)&&(h.arcType=Zt.NONE);return!0}function uQe(e,t,n,i,o){let r=Si(n,"outerBoundaryIs",Me.kml),s=Si(r,"LinearRing",Me.kml),a=Si(s,"coordinates",Me.kml),c=e._ellipsoid,u=tU(a,c),f=wd(n,"extrude",Me.kml),d=vn(n,"altitudeMode",Me.kml),p=vn(n,"altitudeMode",Me.gx),g=iD(d,p),h=l(o.polygon)?o.polygon.clone():z7(),A=o.polyline;if(l(A)&&(h.outlineColor=l(A.material)?A.material.color:z.WHITE,h.outlineWidth=A.width),i.polygon=h,g?(h.perPositionHeight=!0,h.extrudedHeight=f?0:void 0):e._clampToGround||(h.height=0),l(u)){let x=new Kc(u),C=Sd(n,"innerBoundaryIs",Me.kml);for(let T=0;T<C.length;T++){s=Sd(C[T],"LinearRing",Me.kml);for(let E=0;E<s.length;E++)a=Si(s[E],"coordinates",Me.kml),u=tU(a,c),l(u)&&x.holes.push(new Kc(u))}h.hierarchy=x}return!0}function fQe(e,t,n,i,o){let r=vn(n,"altitudeMode",Me.kml),s=vn(n,"altitudeMode",Me.gx),a=Sd(n,"coord",Me.gx),c=Sd(n,"angles",Me.gx),u=Sd(n,"when",Me.kml),f=wd(n,"extrude",Me.kml),d=iD(r,s),p=e._ellipsoid;c.length>0&&Mt("kml-gx:angles","KML - gx:angles are not supported in gx:Tracks");let g=Math.min(a.length,u.length),h=[],A=[];for(let C=0;C<g;C++){let T=oU(a[C].textContent,p);h.push(T),A.push(ee.fromIso8601(u[C].textContent))}let x=new ma;return x.addSamples(A,h),i.position=x,rU(e,i,o,Qde(r,s)),$de(i,o),i.availability=new Rr,u.length>0&&i.availability.addInterval(new bn({start:A[0],stop:A[A.length-1]})),d&&f&&G7(t,i,o),!0}function Wde(e,t,n,i,o,r,s,a,c){let u=e[0],f=e[e.length-1],d=new ma;d.addSamples(e,t),n.intervals.addInterval(new bn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c,data:aQe(d,s,a)})),i.addInterval(new bn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c})),o.intervals.addInterval(new bn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c,data:r}))}function dQe(e,t,n,i,o){let r=wd(n,"interpolate",Me.gx),s=Sd(n,"Track",Me.gx),a,c,u,f=!1,d=new Pg,p=new Rr,g=new da,h=e._ellipsoid;for(let A=0,x=s.length;A<x;A++){let C=s[A],T=Sd(C,"when",Me.kml),E=Sd(C,"coord",Me.gx),S=vn(C,"altitudeMode",Me.kml),v=vn(C,"altitudeMode",Me.gx),D=iD(S,v),O=wd(C,"extrude",Me.kml),M=Math.min(E.length,T.length),L=[];a=[];for(let N=0;N<M;N++){let _=oU(E[N].textContent,h);L.push(_),a.push(ee.fromIso8601(T[N].textContent))}r&&(l(c)&&Wde([c,a[0]],[u,L[0]],g,p,d,!1,"absolute",void 0,!1),c=a[M-1],u=L[L.length-1]),Wde(a,L,g,p,d,D&&O,S,v,!0),f=f||D&&O}return i.availability=p,i.position=g,rU(e,i,o),$de(i,o),f&&(G7(t,i,o),i.polyline.show=d),!0}var eme={Point:lQe,LineString:Gde,LinearRing:Gde,Polygon:uQe,Track:fQe,MultiTrack:dQe,MultiGeometry:mQe,Model:hQe};function mQe(e,t,n,i,o,r){let s=n.childNodes,a=!1;for(let c=0,u=s.length;c<u;c++){let f=s.item(c),d=eme[f.localName];if(l(d)){let p=Xde(f,t,r);p.parent=i,p.name=i.name,p.availability=i.availability,p.description=i.description,p.kml=i.kml,d(e,t,f,p,o)&&(a=!0)}}return a}function hQe(e,t,n,i,o){return Mt("kml-unsupportedGeometry",`KML - Unsupported geometry: ${n.localName}`),!1}function pQe(e,t){let n=Si(e,"ExtendedData",Me.kml);if(!l(n))return;l(Si(n,"SchemaData",Me.kml))&&Mt("kml-schemaData","KML - SchemaData is unsupported"),l(rs(n,"xmlns:prefix"))&&Mt("kml-extendedData","KML - ExtendedData with xmlns:prefix is unsupported");let i={},o=Sd(n,"Data",Me.kml);if(l(o)){let r=o.length;for(let s=0;s<r;s++){let a=o[s],c=rs(a,"name");l(c)&&(i[c]={displayName:vn(a,"displayName",Me.kml),value:vn(a,"value",Me.kml)})}}t.kml.extendedData=i}var lo;typeof document<"u"&&(lo=document.createElement("div"));function _Qe(e,t,n,i,o){let r,s,a,c=t.kml,u=c.extendedData,f=vn(e,"description",Me.kml),d=y(t.balloonStyle,n.balloonStyle),p=z.WHITE,g=z.BLACK,h=f;l(d)&&(p=y(d.bgColor,z.WHITE),g=y(d.textColor,z.BLACK),h=y(d.text,f));let A;if(l(h)){if(h=h.replace("$[name]",y(t.name,"")),h=h.replace("$[description]",y(f,"")),h=h.replace("$[address]",y(c.address,"")),h=h.replace("$[Snippet]",y(c.snippet,"")),h=h.replace("$[id]",t.id),h=h.replace("$[geDirections]",""),l(u)){let T=h.match(/\$\[.+?\]/g);if(T!==null)for(r=0;r<T.length;r++){let E=T[r],S=E.substr(2,E.length-3),v=/\/displayName$/.test(S);S=S.replace(/\/displayName$/,""),A=u[S],l(A)&&(A=v?A.displayName:A.value),l(A)&&(h=h.replace(E,y(A,"")))}}}else if(l(u)&&(a=Object.keys(u),a.length>0)){for(h='<table class="cesium-infoBox-defaultTable cesium-infoBox-defaultTable-lighter"><tbody>',r=0;r<a.length;r++)s=a[r],A=u[s],h+=`<tr><th>${y(A.displayName,s)}</th><td>${y(A.value,"")}</td></tr>`;h+="</tbody></table>"}if(!l(h))return;h=ZZe.link(h),lo.innerHTML=h;let x=lo.querySelectorAll("a");for(r=0;r<x.length;r++)x[r].setAttribute("target","_blank");l(i)&&i.keys.length>1&&(ou(lo,"a","href",i),ou(lo,"link","href",i),ou(lo,"area","href",i),ou(lo,"img","src",i),ou(lo,"iframe","src",i),ou(lo,"video","src",i),ou(lo,"audio","src",i),ou(lo,"source","src",i),ou(lo,"track","src",i),ou(lo,"input","src",i),ou(lo,"embed","src",i),ou(lo,"script","src",i),ou(lo,"video","poster",i)),ru(lo,"a","href",o),ru(lo,"link","href",o),ru(lo,"area","href",o),ru(lo,"img","src",o),ru(lo,"iframe","src",o),ru(lo,"video","src",o),ru(lo,"audio","src",o),ru(lo,"source","src",o),ru(lo,"track","src",o),ru(lo,"input","src",o),ru(lo,"embed","src",o),ru(lo,"script","src",o),ru(lo,"video","poster",o);let C='<div class="cesium-infoBox-description-lighter" style="';C+="overflow:auto;",C+="word-wrap:break-word;",C+=`background-color:${p.toCssColorString()};`,C+=`color:${g.toCssColorString()};`,C+='">',C+=`${lo.innerHTML}</div>`,lo.innerHTML="",t.description=C}function sU(e,t,n){let i=n.entityCollection,o=n.parentEntity,r=n.sourceResource,s=n.uriResolver,a=Xde(t,i,n.context),c=a.kml,u=rQe(e,t,n.styleCollection,r,s),f=vn(t,"name",Me.kml);a.name=f,a.parent=o;let d=iQe(t);l(d)||(d=nQe(t)),a.availability=d,Y7(a);function p(E){return E?E.show&&p(E.parent):!0}let g=wd(t,"visibility",Me.kml);a.show=p(o)&&y(g,!0);let h=Si(t,"author",Me.atom),A=c.author;A.name=vn(h,"name",Me.atom),A.uri=vn(h,"uri",Me.atom),A.email=vn(h,"email",Me.atom);let x=Si(t,"link",Me.atom),C=c.link;C.href=rs(x,"href"),C.hreflang=rs(x,"hreflang"),C.rel=rs(x,"rel"),C.type=rs(x,"type"),C.title=rs(x,"title"),C.length=rs(x,"length"),c.address=vn(t,"address",Me.kml),c.phoneNumber=vn(t,"phoneNumber",Me.kml),c.snippet=vn(t,"Snippet",Me.kml),pQe(t,a),_Qe(t,a,u,s,r);let T=e._ellipsoid;return ime(t,a,T),nme(t,a,T),l(Si(t,"Region",Me.kml))&&Mt("kml-region","KML - Placemark Regions are unsupported"),{entity:a,styleEntity:u}}function tme(e,t,n,i){i.addNodes(t.childNodes,n),i.process()}function gQe(e,t,n,i){let o=sU(e,t,n),r=Ye(n);r.parentEntity=o.entity,tme(e,t,r,i)}function yQe(e,t,n,i){let o=sU(e,t,n),r=o.entity,s=o.styleEntity,a=!1,c=t.childNodes;for(let u=0,f=c.length;u<f&&!a;u++){let d=c.item(u),p=eme[d.localName];l(p)&&(p(e,n.entityCollection,d,r,s,r.id),a=!0)}a||(r.merge(s),rU(e,r,s))}var AQe={FlyTo:TQe,Wait:CQe,SoundCue:R7,AnimatedUpdate:R7,TourControl:R7};function xQe(e,t,n,i){let o=vn(t,"name",Me.kml),r=rs(t,"id"),s=new Z3(o,r),a=Si(t,"Playlist",Me.gx);if(a){let c=e._ellipsoid,u=a.childNodes;for(let f=0;f<u.length;f++){let d=u[f];if(d.localName){let p=AQe[d.localName];p?p(s,d,c):console.log(`Unknown KML Tour playlist entry type ${d.localName}`)}}}e._kmlTours.push(s)}function R7(e,t){Mt(`KML Tour unsupported node ${t.localName}`)}function CQe(e,t){let n=ei(t,"duration",Me.gx);e.addPlaylistEntry(new eU(n))}function TQe(e,t,n){let i=ei(t,"duration",Me.gx),o=vn(t,"flyToMode",Me.gx),r={kml:{}};ime(t,r,n),nme(t,r,n);let s=r.kml.lookAt||r.kml.camera,a=new $3(i,o,s);e.addPlaylistEntry(a)}function nme(e,t,n){let i=Si(e,"Camera",Me.kml);if(l(i)){let o=y(ei(i,"longitude",Me.kml),0),r=y(ei(i,"latitude",Me.kml),0),s=y(ei(i,"altitude",Me.kml),0),a=y(ei(i,"heading",Me.kml),0),c=y(ei(i,"tilt",Me.kml),0),u=y(ei(i,"roll",Me.kml),0),f=m.fromDegrees(o,r,s,n),d=rc.fromDegrees(a,c-90,u);t.kml.camera=new r3(f,d)}}function ime(e,t,n){let i=Si(e,"LookAt",Me.kml);if(l(i)){let o=y(ei(i,"longitude",Me.kml),0),r=y(ei(i,"latitude",Me.kml),0),s=y(ei(i,"altitude",Me.kml),0),a=ei(i,"heading",Me.kml),c=ei(i,"tilt",Me.kml),u=y(ei(i,"range",Me.kml),0);c=P.toRadians(y(c,0)),a=P.toRadians(y(a,0));let f=new cf(a,c-P.PI_OVER_TWO,u),d=m.fromDegrees(o,r,s,n);t.kml.lookAt=new K3(d,f)}}function EQe(e,t,n,i){let o=n.screenOverlayContainer;if(!l(o))return;let r=n.sourceResource,s=n.uriResolver,a=Si(t,"Icon",Me.kml),c=H7(a,e,r,s,!1);if(!l(c))return;let u=document.createElement("img");e._screenOverlays.push(u),u.src=c.url,u.onload=function(){let f=["position: absolute"],d=Si(t,"screenXY",Me.kml),p=Si(t,"overlayXY",Me.kml),g=Si(t,"size",Me.kml),h,A,x,C,T,E;l(g)&&(h=ey(g,"x"),A=ey(g,"y"),x=rs(g,"xunits"),C=rs(g,"yunits"),l(h)&&h!==-1&&h!==0&&(x==="fraction"?T=`width: ${Math.floor(h*100)}%`:x==="pixels"&&(T=`width: ${h}px`),f.push(T)),l(A)&&A!==-1&&A!==0&&(C==="fraction"?E=`height: ${Math.floor(A*100)}%`:C==="pixels"&&(E=`height: ${A}px`),f.push(E))),u.style=f.join(";");let S=0,v=u.height;l(p)&&(h=ey(p,"x"),A=ey(p,"y"),x=rs(p,"xunits"),C=rs(p,"yunits"),l(h)&&(x==="fraction"?S=h*u.width:(x==="pixels"||x==="insetPixels")&&(S=h)),l(A)&&(C==="fraction"?v=A*u.height:(C==="pixels"||C==="insetPixels")&&(v=A))),l(d)&&(h=ey(d,"x"),A=ey(d,"y"),x=rs(d,"xunits"),C=rs(d,"yunits"),l(h)&&(x==="fraction"?T=`left: calc(${Math.floor(h*100)}% - ${S}px)`:x==="pixels"?T=`left: ${h-S}px`:x==="insetPixels"&&(T=`right: ${h-S}px`),f.push(T)),l(A)&&(C==="fraction"?E=`bottom: calc(${Math.floor(A*100)}% - ${v}px)`:C==="pixels"?E=`bottom: ${A-v}px`:C==="insetPixels"&&(E=`top: ${A-v}px`),f.push(E))),u.style=f.join(";")},o.appendChild(u)}function bQe(e,t,n,i){let r=sU(e,t,n).entity,s,a=!1,c=e._ellipsoid,u=tU(Si(t,"LatLonQuad",Me.gx),c),f=ei(t,"drawOrder",Me.kml);if(l(u))s=z7(),s.hierarchy=new Kc(u),s.zIndex=f,r.polygon=s,a=!0;else{s=new lm,s.zIndex=f,r.rectangle=s;let h=Si(t,"LatLonBox",Me.kml);if(l(h)){let A=ei(h,"west",Me.kml),x=ei(h,"south",Me.kml),C=ei(h,"east",Me.kml),T=ei(h,"north",Me.kml);l(A)&&(A=P.negativePiToPi(P.toRadians(A))),l(x)&&(x=P.clampToLatitudeRange(P.toRadians(x))),l(C)&&(C=P.negativePiToPi(P.toRadians(C))),l(T)&&(T=P.clampToLatitudeRange(P.toRadians(T))),s.coordinates=new le(A,x,C,T);let E=ei(h,"rotation",Me.kml);if(l(E)){let S=P.toRadians(E);s.rotation=S,s.stRotation=S}}}let d=Si(t,"Icon",Me.kml),p=H7(d,e,n.sourceResource,n.uriResolver,!0);if(l(p)){a&&Mt("kml-gx:LatLonQuad","KML - gx:LatLonQuad Icon does not support texture projection.");let h=ei(d,"x",Me.gx),A=ei(d,"y",Me.gx),x=ei(d,"w",Me.gx),C=ei(d,"h",Me.gx);(l(h)||l(A)||l(x)||l(C))&&Mt("kml-groundOverlay-xywh","KML - gx:x, gx:y, gx:w, gx:h aren't supported for GroundOverlays"),s.material=p,s.material.color=CA(t,"color",Me.kml),s.material.transparent=!0}else s.material=CA(t,"color",Me.kml);let g=vn(t,"altitudeMode",Me.kml);l(g)?g==="absolute"?(s.height=ei(t,"altitude",Me.kml),s.zIndex=void 0):g!=="clampToGround"&&Mt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`):(g=vn(t,"altitudeMode",Me.gx),g==="relativeToSeaFloor"?(Mt("kml-altitudeMode-relativeToSeaFloor","KML - altitudeMode relativeToSeaFloor is currently not supported, treating as absolute."),s.height=ei(t,"altitude",Me.kml),s.zIndex=void 0):g==="clampToSeaFloor"?Mt("kml-altitudeMode-clampToSeaFloor","KML - altitudeMode clampToSeaFloor is currently not supported, treating as clampToGround."):l(g)&&Mt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`))}function ome(e,t,n,i){e._unsupportedNode.raiseEvent(e,n.parentEntity,t,n.entityCollection,n.styleCollection,n.sourceResource,n.uriResolver),Mt(`kml-unsupportedFeature-${t.nodeName}`,`KML - Unsupported feature: ${t.nodeName}`)}var ty={INTERVAL:0,EXPIRE:1,STOP:2};function iU(e){if(!l(e)||e.length===0)return"";let t=e[0];return(t==="&"||t==="?")&&(e=e.substring(1)),e}var SQe=new le,NE=new he,B7=new H,wQe=new m;function W7(e,t,n,i,o,r){function s(u){return u<-P.PI_OVER_TWO?-P.PI_OVER_TWO:u>P.PI_OVER_TWO?P.PI_OVER_TWO:u}function a(u){return u>P.PI?u-P.TWO_PI:u<-P.PI?u+P.TWO_PI:u}let c=Mx(e.queryParameters);if(c=c.replace(/%5B/g,"[").replace(/%5D/g,"]"),l(t)&&t._mode!==ne.MORPHING){let u,f;if(o=y(o,SQe),l(n)&&(B7.x=n.clientWidth*.5,B7.y=n.clientHeight*.5,u=t.pickEllipsoid(B7,r,wQe)),l(u)?f=r.cartesianToCartographic(u,NE):(f=le.center(o,NE),u=r.cartographicToCartesian(f)),l(i)&&!P.equalsEpsilon(i,1,P.EPSILON9)){let C=o.width*i*.5,T=o.height*i*.5;o=new le(a(f.longitude-C),s(f.latitude-T),a(f.longitude+C),s(f.latitude+T))}c=c.replace("[bboxWest]",P.toDegrees(o.west).toString()),c=c.replace("[bboxSouth]",P.toDegrees(o.south).toString()),c=c.replace("[bboxEast]",P.toDegrees(o.east).toString()),c=c.replace("[bboxNorth]",P.toDegrees(o.north).toString());let d=P.toDegrees(f.longitude).toString(),p=P.toDegrees(f.latitude).toString();c=c.replace("[lookatLon]",d),c=c.replace("[lookatLat]",p),c=c.replace("[lookatTilt]",P.toDegrees(t.pitch).toString()),c=c.replace("[lookatHeading]",P.toDegrees(t.heading).toString()),c=c.replace("[lookatRange]",m.distance(t.positionWC,u)),c=c.replace("[lookatTerrainLon]",d),c=c.replace("[lookatTerrainLat]",p),c=c.replace("[lookatTerrainAlt]",f.height.toString()),r.cartesianToCartographic(t.positionWC,NE),c=c.replace("[cameraLon]",P.toDegrees(NE.longitude).toString()),c=c.replace("[cameraLat]",P.toDegrees(NE.latitude).toString()),c=c.replace("[cameraAlt]",P.toDegrees(NE.height).toString());let g=t.frustum,h=g.aspectRatio,A="",x="";if(l(h)){let C=P.toDegrees(g.fov);h>1?(A=C,x=C/h):(x=C,A=C*h)}c=c.replace("[horizFov]",A.toString()),c=c.replace("[vertFov]",x.toString())}else c=c.replace("[bboxWest]","-180"),c=c.replace("[bboxSouth]","-90"),c=c.replace("[bboxEast]","180"),c=c.replace("[bboxNorth]","90"),c=c.replace("[lookatLon]",""),c=c.replace("[lookatLat]",""),c=c.replace("[lookatRange]",""),c=c.replace("[lookatTilt]",""),c=c.replace("[lookatHeading]",""),c=c.replace("[lookatTerrainLon]",""),c=c.replace("[lookatTerrainLat]",""),c=c.replace("[lookatTerrainAlt]",""),c=c.replace("[cameraLon]",""),c=c.replace("[cameraLat]",""),c=c.replace("[cameraAlt]",""),c=c.replace("[horizFov]",""),c=c.replace("[vertFov]","");l(n)?(c=c.replace("[horizPixels]",n.clientWidth),c=c.replace("[vertPixels]",n.clientHeight)):(c=c.replace("[horizPixels]",""),c=c.replace("[vertPixels]","")),c=c.replace("[terrainEnabled]","1"),c=c.replace("[clientVersion]","1"),c=c.replace("[kmlVersion]","2.2"),c=c.replace("[clientName]","Cesium"),c=c.replace("[language]","English"),e.setQueryParameters(bu(c))}function vQe(e,t,n,i){let r=sU(e,t,n).entity,s=n.sourceResource,a=n.uriResolver,c=Si(t,"Link",Me.kml);if(l(c)||(c=Si(t,"Url",Me.kml)),l(c)){let u=vn(c,"href",Me.kml),f,d;if(l(u)){let p=u;if(u=k7(u,s,n.uriResolver),/^data:/.test(u.getUrlComponent()))/\.kmz/i.test(s.getUrlComponent())||(p=s.getDerivedResource({url:p}));else{if(p=u.clone(),f=vn(c,"viewRefreshMode",Me.kml),f==="onRegion"){Mt("kml-refrehMode-onRegion","KML - Unsupported viewRefreshMode: onRegion");return}d=y(vn(c,"viewBoundScale",Me.kml),1);let x=f==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",C=y(vn(c,"viewFormat",Me.kml),x),T=vn(c,"httpQuery",Me.kml);l(C)&&u.setQueryParameters(bu(iU(C))),l(T)&&u.setQueryParameters(bu(iU(T)));let E=e._ellipsoid;W7(u,e.camera,e.canvas,d,e._lastCameraView.bbox,E)}let g={sourceUri:p,uriResolver:a,context:r.id,screenOverlayContainer:n.screenOverlayContainer},h=new zs,A=j7(e,h,u,g).then(function(x){let C=e._entityCollection,T=h.values;C.suspendEvents();for(let v=0;v<T.length;v++){let D=T[v];l(D.parent)||(D.parent=r,Y7(D)),C.add(D)}C.resumeEvents();let E=vn(c,"refreshMode",Me.kml),S=y(ei(c,"refreshInterval",Me.kml),0);if(E==="onInterval"&&S>0||E==="onExpire"||f==="onStop"){let v=Si(x,"NetworkLinkControl",Me.kml),D=l(v),O=ee.now(),M={id:jn(),href:u,cookie:{},lastUpdated:O,updating:!1,entity:r,viewBoundScale:d,needsUpdate:!1,cameraUpdateTime:O},L=0;if(D&&(M.cookie=bu(y(vn(v,"cookie",Me.kml),"")),L=y(ei(v,"minRefreshPeriod",Me.kml),0)),E==="onInterval")D&&(S=Math.max(L,S)),M.refreshMode=ty.INTERVAL,M.time=S;else if(E==="onExpire"){let N;if(D&&(N=vn(v,"expires",Me.kml)),l(N))try{let _=ee.fromIso8601(N),b=ee.secondsDifference(_,O);b>0&&b<L&&ee.addSeconds(O,L,_),M.refreshMode=ty.EXPIRE,M.time=_}catch{Mt("kml-refreshMode-onInterval-onExpire","KML - NetworkLinkControl expires is not a valid date")}else Mt("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element")}else l(e.camera)?(M.refreshMode=ty.STOP,M.time=y(ei(c,"viewRefreshTime",Me.kml),0)):Mt("kml-refrehMode-onStop-noCamera","A NetworkLink with viewRefreshMode=onStop requires the `camera` property to be defined.");l(M.refreshMode)&&e._networkLinks.set(M.id,M)}}).catch(function(x){Mt(`An error occured during loading ${u.url}`),e._error.raiseEvent(e,x)});i.addPromise(A)}}}function DQe(e,t,n,i){let o=V7[t.localName];return l(o)?o(e,t,n,i):ome(e,t,n,i)}function F7(e,t,n,i,o,r,s){t.removeAll();let a=n.documentElement,c=a.localName==="Document"?a:Si(a,"Document",Me.kml),u=vn(c,"name",Me.kml);l(u)||(u=bg(i.getUrlComponent())),l(e._name)||(e._name=u);let f=new su._DeferredLoading(e),d=new zs(e);return Promise.all(Zde(e,n,d,i,!1,o)).then(function(){let p=n.documentElement;if(p.localName==="kml"){let h=p.childNodes;for(let A=0;A<h.length;A++){let x=h[A];if(l(V7[x.localName])){p=x;break}}}let g={parentEntity:void 0,entityCollection:t,styleCollection:d,sourceResource:i,uriResolver:o,context:s,screenOverlayContainer:r};return t.suspendEvents(),DQe(e,p,g,f),t.resumeEvents(),f.wait().then(function(){return n.documentElement})})}function IQe(e,t,n,i,o){let r=en("ThirdParty/Workers/z-worker-pako.js");wE({workerScripts:{deflate:[r,"./pako_deflate.min.js"],inflate:[r,"./pako_inflate.min.js"]}});let s=new W3(new xA(n));return Promise.resolve(s.getEntries()).then(function(a){let c=[],u={},f;for(let d=0;d<a.length;d++){let p=a[d];p.directory||(/\.kml$/i.test(p.filename)&&(!l(f)||!/\//i.test(p.filename))?(l(f)&&c.push(M7(f,u)),f=p):c.push(M7(p,u)))}return l(f)&&c.push(tQe(f,u)),Promise.all(c).then(function(){if(s.close(),!l(u.kml))throw new de("KMZ file does not contain a KML document.");return u.keys=Object.keys(u),F7(e,t,u.kml,i,u,o)})})}function j7(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let o=i.sourceUri,r=i.uriResolver,s=i.context,a=i.screenOverlayContainer,c=n;if(typeof n=="string"||n instanceof we){n=we.createIfNeeded(n),c=n.fetchBlob(),o=y(o,n.clone());let u=e._resourceCredits,f=n.credits;if(l(f)){let d=f.length;for(let p=0;p<d;p++)u.push(f[p])}}else o=y(o,we.DEFAULT.clone());return o=we.createIfNeeded(o),l(a)&&(a=On(a)),Promise.resolve(c).then(function(u){return u instanceof Blob?$Ze(u).then(function(f){return f?IQe(e,t,u,o,a):eQe(u).then(function(d){d=Yde(d),d=qde(d);let p,g;try{p=U7.parseFromString(d,"application/xml")}catch(h){g=h.toString()}if(l(g)||p.body||p.documentElement.tagName==="parsererror"){let h=l(g)?g:p.documentElement.firstChild.nodeValue;throw h||(h=p.body.innerText),new de(h)}return F7(e,t,p,o,r,a,s)})}):F7(e,t,u,o,r,a,s)}).catch(function(u){return e._error.raiseEvent(e,u),console.log(u),Promise.reject(u)})}function su(e){e=y(e,y.EMPTY_OBJECT);let t=e.camera,n=e.canvas;this._changed=new ge,this._error=new ge,this._loading=new ge,this._refresh=new ge,this._unsupportedNode=new ge,this._clock=void 0,this._entityCollection=new zs(this),this._name=void 0,this._isLoading=!1,this._pinBuilder=new Hg,this._networkLinks=new Et,this._entityCluster=new Qu,this.canvas=n,this.camera=t,this._lastCameraView={position:l(t)?m.clone(t.positionWC):void 0,direction:l(t)?m.clone(t.directionWC):void 0,up:l(t)?m.clone(t.upWC):void 0,bbox:l(t)?t.computeViewRectangle():le.clone(le.MAX_VALUE)},this._ellipsoid=y(e.ellipsoid,oe.WGS84);let i=e.credit;typeof i=="string"&&(i=new It(i)),this._credit=i,this._resourceCredits=[],this._kmlTours=[],this._screenOverlays=[]}su.load=function(e,t){return t=y(t,y.EMPTY_OBJECT),new su(t).load(e,t)};Object.defineProperties(su.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},refreshEvent:{get:function(){return this._refresh}},unsupportedNodeEvent:{get:function(){return this._unsupportedNode}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}},kmlTours:{get:function(){return this._kmlTours}}});su.prototype.load=function(e,t){t=y(t,y.EMPTY_OBJECT),Br.setLoading(this,!0);let n=this._name;this._name=void 0,this._clampToGround=y(t.clampToGround,!1);let i=this;return j7(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=ee.equals(s,Ge.MINIMUM_VALUE),u=ee.equals(a,Ge.MAXIMUM_VALUE);if(!c||!u){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=ee.fromDate(d)),u&&(d=new Date,d.setHours(24,0,0,0),a=ee.fromDate(d)),o=new Lm,o.startTime=s,o.stopTime=a,o.currentTime=ee.clone(s),o.clockRange=Lr.LOOP_STOP,o.clockStep=go.SYSTEM_CLOCK_MULTIPLIER,o.multiplier=Math.round(Math.min(Math.max(ee.secondsDifference(a,s)/60,1),31556900))}let f=!1;return o!==i._clock&&(i._clock=o,f=!0),n!==i._name&&(f=!0),f&&i._changed.raiseEvent(i),Br.setLoading(i,!1),i}).catch(function(o){return Br.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};su.prototype.destroy=function(){for(;this._screenOverlays.length>0;)this._screenOverlays.pop().remove()};function Y7(e){let t=e.parent;if(l(t)){let n=t.availability;if(l(n)){let i=e.availability;l(i)?i.intersect(n):e.availability=n}}}function PQe(e,t,n,i,o){return function(r){if(!i.contains(t.id))return;let s=!1,a=Si(r,"NetworkLinkControl",Me.kml),c=l(a),u=0;if(c){if(l(Si(a,"Update",Me.kml))){Mt("kml-networkLinkControl-update","KML - NetworkLinkControl updates aren't supported."),t.updating=!1,i.remove(t.id);return}t.cookie=bu(y(vn(a,"cookie",Me.kml),"")),u=y(ei(a,"minRefreshPeriod",Me.kml),0)}let f=ee.now(),d=t.refreshMode;if(d===ty.INTERVAL)l(a)&&(t.time=Math.max(u,t.time));else if(d===ty.EXPIRE){let O;if(l(a)&&(O=vn(a,"expires",Me.kml)),l(O))try{let M=ee.fromIso8601(O),L=ee.secondsDifference(M,f);L>0&&L<u&&ee.addSeconds(f,u,M),t.time=M}catch{Mt("kml-networkLinkControl-expires","KML - NetworkLinkControl expires is not a valid date"),s=!0}else Mt("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element"),s=!0}let p=t.entity,g=e._entityCollection,h=n.values;function A(O){g.remove(O);let M=O._children,L=M.length;for(let N=0;N<L;++N)A(M[N])}g.suspendEvents();let x=g.values.slice(),C;for(C=0;C<x.length;++C){let O=x[C];O.parent===p&&(O.parent=void 0,A(O))}for(g.resumeEvents(),g.suspendEvents(),C=0;C<h.length;C++){let O=h[C];l(O.parent)||(O.parent=p,Y7(O)),g.add(O)}g.resumeEvents(),s?i.remove(t.id):t.lastUpdated=f;let T=g.computeAvailability(),E=T.start,S=T.stop,v=ee.equals(E,Ge.MINIMUM_VALUE),D=ee.equals(S,Ge.MAXIMUM_VALUE);if(!v||!D){let O=e._clock;(O.startTime!==E||O.stopTime!==S)&&(O.startTime=E,O.stopTime=S,e._changed.raiseEvent(e))}t.updating=!1,t.needsUpdate=!1,e._refresh.raiseEvent(e,o.getUrlComponent(!0))}}var L7=new Et;su.prototype.update=function(e){let t=this._networkLinks;if(t.length===0)return!0;let n=ee.now(),i=this;L7.removeAll();function o(f){let d=f._children,p=d.length;for(let g=0;g<p;++g){let h=d[g];L7.set(h.id,h),o(h)}}let r=!1,s=this._lastCameraView,a=this.camera;l(a)&&!(a.positionWC.equalsEpsilon(s.position,P.EPSILON7)&&a.directionWC.equalsEpsilon(s.direction,P.EPSILON7)&&a.upWC.equalsEpsilon(s.up,P.EPSILON7))&&(s.position=m.clone(a.positionWC),s.direction=m.clone(a.directionWC),s.up=m.clone(a.upWC),s.bbox=a.computeViewRectangle(),r=!0);let c=new Et,u=!1;return t.values.forEach(function(f){let d=f.entity;if(!L7.contains(d.id)){if(!f.updating){let p=!1;if(f.refreshMode===ty.INTERVAL?ee.secondsDifference(n,f.lastUpdated)>f.time&&(p=!0):f.refreshMode===ty.EXPIRE?ee.greaterThan(n,f.time)&&(p=!0):f.refreshMode===ty.STOP&&(r&&(f.needsUpdate=!0,f.cameraUpdateTime=n),f.needsUpdate&&ee.secondsDifference(n,f.cameraUpdateTime)>=f.time&&(p=!0)),p){o(d),f.updating=!0;let g=new zs,h=f.href.clone();h.setQueryParameters(f.cookie);let A=y(i._ellipsoid,oe.WGS84);W7(h,i.camera,i.canvas,f.viewBoundScale,s.bbox,A),j7(i,g,h,{context:d.id}).then(PQe(i,f,g,c,h)).catch(function(x){let C=`NetworkLink ${f.href} refresh failed: ${x}`;console.log(C),i._error.raiseEvent(i,C)}),u=!0}}c.set(f.id,f)}}),u&&(this._networkLinks=c,this._changed.raiseEvent(this)),!0};function OQe(){this.author={name:void 0,uri:void 0,email:void 0},this.link={href:void 0,hreflang:void 0,rel:void 0,type:void 0,title:void 0,length:void 0},this.address=void 0,this.phoneNumber=void 0,this.snippet=void 0,this.extendedData=void 0}su._DeferredLoading=Zm;su._getTimestamp=Ci;var aU=su;function oD(){fe.throwInstantiationError()}oD.prototype.update=fe.throwInstantiationError;oD.prototype.getBoundingSphere=fe.throwInstantiationError;oD.prototype.isDestroyed=fe.throwInstantiationError;oD.prototype.destroy=fe.throwInstantiationError;var rme=oD;var q7=32,MQe="http://www.opengis.net/kml/2.2",Dd="http://www.google.com/kml/ext/2.2",RQe="http://www.w3.org/2000/xmlns/";function cU(e){this._files={},this._promises=[],this._count=0,this._modelCallback=e}var BQe=/^data:image\/([^,;]+)/;cU.prototype.texture=function(e){let t=this,n;if(typeof e=="string"||e instanceof we){if(e=we.createIfNeeded(e),!e.isDataUri)return e.url;let i=e.url.match(BQe);n=`texture_${++this._count}`,l(i)&&(n+=`.${i[1]}`);let o=e.fetchBlob().then(function(r){t._files[n]=r});return this._promises.push(o),n}if(e instanceof HTMLCanvasElement){n=`texture_${++this._count}.png`;let i=new Promise(o=>{e.toBlob(function(r){t._files[n]=r,o()})});return this._promises.push(i),n}return""};function LQe(e,t){return function(n){e._files[t]=n}}cU.prototype.model=function(e,t){let n=this._modelCallback;if(!l(n))throw new de("Encountered a model entity while exporting to KML, but no model callback was supplied.");let i={},o=n(e,t,i);for(let r in i)if(i.hasOwnProperty(r)){let s=Promise.resolve(i[r]);this._promises.push(s),s.then(LQe(this,r))}return o};Object.defineProperties(cU.prototype,{promise:{get:function(){return Promise.all(this._promises)}},files:{get:function(){return this._files}}});function lU(e){this._time=e}lU.prototype.get=function(e,t,n){let i;return l(e)&&(i=l(e.getValue)?e.getValue(this._time,n):e),y(i,t)};lU.prototype.getColor=function(e,t){let n=this.get(e,t);if(l(n))return EA(n)};lU.prototype.getMaterialType=function(e){if(l(e))return e.getType(this._time)};function X7(){this._ids={},this._styles={},this._count=0}X7.prototype.get=function(e){let t=this._ids,n=e.innerHTML;if(l(t[n]))return t[n];let i=`style-${++this._count}`;return e.setAttribute("id",i),i=`#${i}`,t[n]=i,this._styles[n]=e,i};X7.prototype.save=function(e){let t=this._styles,n=e.childNodes[0];for(let i in t)t.hasOwnProperty(i)&&e.insertBefore(t[i],n)};function cme(){this._ids={}}cme.prototype.get=function(e){if(!l(e))return this.get(jn());let t=this._ids;return l(t[e])?`${e.toString()}-${++t[e]}`:(t[e]=0,e)};function K7(e){e=y(e,y.EMPTY_OBJECT);let t=e.entities,n=y(e.kmz,!1),i=K7._createState(e),o=t.values.filter(function(u){return!l(u.parent)}),r=i.kmlDoc,s=r.documentElement;s.setAttributeNS(RQe,"xmlns:gx",Dd);let a=r.createElement("Document");s.appendChild(a),ume(i,a,o),i.styleCache.save(a);let c=i.externalFileHandler;return c.promise.then(function(){let f=new XMLSerializer().serializeToString(i.kmlDoc);return n?NQe(f,c.files):{kml:f,externalFiles:c.files}})}function NQe(e,t){let n=en("ThirdParty/Workers/z-worker-pako.js");wE({workerScripts:{deflate:[n,"./pako_deflate.min.js"],inflate:[n,"./pako_inflate.min.js"]}});let i=new OE,o=new q3(i);return o.add("doc.kml",new M3(e)).then(function(){let r=Object.keys(t);return lme(o,r,t,0)}).then(function(){return o.close()}).then(function(r){return{kmz:r}})}function lme(e,t,n,i){if(t.length===i)return;let o=t[i];return e.add(o,new xA(n[o])).then(function(){return lme(e,t,n,i+1)})}K7._createState=function(e){let t=e.entities,n=new X7,i=t.computeAvailability(),o=l(e.time)?e.time:i.start,r=y(e.defaultAvailability,i),s=y(e.sampleDuration,60);r.start===Ge.MINIMUM_VALUE?r.stop===Ge.MAXIMUM_VALUE?r=new bn:ee.addSeconds(r.stop,-10*s,r.start):r.stop===Ge.MAXIMUM_VALUE&&ee.addSeconds(r.start,10*s,r.stop);let a=new cU(e.modelCallback);return{kmlDoc:document.implementation.createDocument(MQe,"kml"),ellipsoid:y(e.ellipsoid,oe.WGS84),idManager:new cme,styleCache:n,externalFileHandler:a,time:o,valueGetter:new lU(o),sampleDuration:s,defaultAvailability:new Rr([r])}};function ume(e,t,n){let i=e.kmlDoc,o=e.styleCache,r=e.valueGetter,s=e.idManager,a=n.length,c,u,f;for(let d=0;d<a;++d){let p=n[d];c=[],u=[],f=[],FQe(e,p,u,f),UQe(e,p.polyline,u,f),ame(e,p.rectangle,u,f,c),ame(e,p.polygon,u,f,c),HQe(e,p,p.model,u,f);let g,h=p.availability;l(h)&&(g=i.createElement("TimeSpan"),ee.equals(h.start,Ge.MINIMUM_VALUE)||g.appendChild(hn(i,"begin",ee.toIso8601(h.start))),ee.equals(h.stop,Ge.MAXIMUM_VALUE)||g.appendChild(hn(i,"end",ee.toIso8601(h.stop))));for(let C=0;C<c.length;++C){let T=c[C];T.setAttribute("id",s.get(p.id)),T.appendChild(hn(i,"name",p.name)),T.appendChild(hn(i,"visibility",p.show)),T.appendChild(hn(i,"description",p.description)),l(g)&&T.appendChild(g),t.appendChild(T)}let A=u.length;if(A>0){let C=i.createElement("Placemark");C.setAttribute("id",s.get(p.id));let T=p.name,E=p.label;if(l(E)){let v=i.createElement("LabelStyle"),D=r.get(E.text);T=l(D)&&D.length>0?D:T;let O=r.getColor(E.fillColor);l(O)&&(v.appendChild(hn(i,"color",O)),v.appendChild(hn(i,"colorMode","normal")));let M=r.get(E.scale);l(M)&&v.appendChild(hn(i,"scale",M)),f.push(v)}C.appendChild(hn(i,"name",T)),C.appendChild(hn(i,"visibility",p.show)),C.appendChild(hn(i,"description",p.description)),l(g)&&C.appendChild(g),t.appendChild(C);let S=f.length;if(S>0){let v=i.createElement("Style");for(let D=0;D<S;++D)v.appendChild(f[D]);C.appendChild(hn(i,"styleUrl",o.get(v)))}if(u.length===1)C.appendChild(u[0]);else if(u.length>1){let v=i.createElement("MultiGeometry");for(let D=0;D<A;++D)v.appendChild(u[D]);C.appendChild(v)}}let x=p._children;if(x.length>0){let C=i.createElement("Folder");C.setAttribute("id",s.get(p.id)),C.appendChild(hn(i,"name",p.name)),C.appendChild(hn(i,"visibility",p.show)),C.appendChild(hn(i,"description",p.description)),t.appendChild(C),ume(e,C,x)}}}var fl=new m,vc=new he,vd=new ee;function FQe(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter,a=y(t.billboard,t.point);if(!l(a)&&!l(t.path))return;let c=t.position;if(!c.isConstant){fme(e,t,a,n,i);return}s.get(c,void 0,fl);let u=hn(o,"coordinates",TA(fl,r)),f=o.createElement("Point"),d=o.createElement("altitudeMode");d.appendChild(bA(e,a.heightReference)),f.appendChild(d),f.appendChild(u),n.push(f);let p=a instanceof lc?mme(e,a):dme(e,a);i.push(p)}function fme(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter,c,u=t.position,f=!0;u instanceof da?(c=u.intervals,f=!1):c=y(t.availability,e.defaultAvailability);let d=n instanceof E_,p,g,h,A=[];for(p=0;p<c.length;++p){let C=c.get(p),T=f?u:C.data,E=r.createElement("altitudeMode");T instanceof Rp?(T=T._value,E.appendChild(bA(e,qe.CLAMP_TO_GROUND))):l(n)?E.appendChild(bA(e,n.heightReference)):E.appendChild(bA(e,qe.NONE));let S=[],v=[];if(T.isConstant){a.get(T,void 0,fl);let O=hn(r,"coordinates",TA(fl,s));S.push(ee.toIso8601(C.start)),v.push(O),S.push(ee.toIso8601(C.stop)),v.push(O)}else if(T instanceof ma)for(h=T._property._times,g=0;g<h.length;++g)S.push(ee.toIso8601(h[g])),T.getValueInReferenceFrame(h[g],no.FIXED,fl),v.push(TA(fl,s));else if(T instanceof ef){h=T._times;let O=T._values;for(g=0;g<h.length;++g)S.push(ee.toIso8601(h[g])),m.fromArray(O,g*3,fl),v.push(TA(fl,s))}else{let O=e.sampleDuration;C.start.clone(vd),C.isStartIncluded||ee.addSeconds(vd,O,vd);let M=C.stop;for(;ee.lessThan(vd,M);)T.getValue(vd,fl),S.push(ee.toIso8601(vd)),v.push(TA(fl,s)),ee.addSeconds(vd,O,vd);C.isStopIncluded&&ee.equals(vd,M)&&(T.getValue(vd,fl),S.push(ee.toIso8601(vd)),v.push(TA(fl,s)))}let D=r.createElementNS(Dd,"Track");D.appendChild(E);for(let O=0;O<S.length;++O){let M=hn(r,"when",S[O]),L=hn(r,"coord",v[O],Dd);D.appendChild(M),D.appendChild(L)}d&&D.appendChild(hme(e,n)),A.push(D)}if(A.length===1)i.push(A[0]);else if(A.length>1){let C=r.createElementNS(Dd,"MultiTrack");for(p=0;p<A.length;++p)C.appendChild(A[p]);i.push(C)}if(l(n)&&!d){let C=n instanceof lc?mme(e,n):dme(e,n);o.push(C)}let x=t.path;if(l(x)){let C=a.get(x.width),T=x.material;if(l(T)||l(C)){let E=r.createElement("LineStyle");l(C)&&E.appendChild(hn(r,"width",C)),J7(e,T,E),o.push(E)}}}function dme(e,t){let n=e.kmlDoc,i=e.valueGetter,o=n.createElement("IconStyle"),r=i.getColor(t.color);l(r)&&(o.appendChild(hn(n,"color",r)),o.appendChild(hn(n,"colorMode","normal")));let s=i.get(t.pixelSize);return l(s)&&o.appendChild(hn(n,"scale",s/q7)),o}function mme(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("IconStyle"),s=i.get(t.image);if(l(s)){s=o.texture(s);let p=n.createElement("Icon");p.appendChild(hn(n,"href",s));let g=i.get(t.imageSubRegion);l(g)&&(p.appendChild(hn(n,"x",g.x,Dd)),p.appendChild(hn(n,"y",g.y,Dd)),p.appendChild(hn(n,"w",g.width,Dd)),p.appendChild(hn(n,"h",g.height,Dd))),r.appendChild(p)}let a=i.getColor(t.color);l(a)&&(r.appendChild(hn(n,"color",a)),r.appendChild(hn(n,"colorMode","normal")));let c=i.get(t.scale);l(c)&&r.appendChild(hn(n,"scale",c));let u=i.get(t.pixelOffset);if(l(u)){c=y(c,1),H.divideByScalar(u,c,u);let p=i.get(t.width,q7),g=i.get(t.height,q7),h=i.get(t.horizontalOrigin,_i.CENTER);h===_i.CENTER?u.x-=p*.5:h===_i.RIGHT&&(u.x-=p);let A=i.get(t.verticalOrigin,Rn.CENTER);A===Rn.TOP?u.y+=g:A===Rn.CENTER&&(u.y+=g*.5);let x=n.createElement("hotSpot");x.setAttribute("x",-u.x),x.setAttribute("y",u.y),x.setAttribute("xunits","pixels"),x.setAttribute("yunits","pixels"),r.appendChild(x)}let f=i.get(t.rotation),d=i.get(t.alignedAxis);return l(f)&&m.equals(m.UNIT_Z,d)&&(f=P.toDegrees(-f),f===0&&(f=360),r.appendChild(hn(n,"heading",f))),r}function UQe(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter;if(!l(t))return;let a=o.createElement("LineString"),c=o.createElement("altitudeMode"),u=s.get(t.clampToGround,!1),f;u?(a.appendChild(hn(o,"tessellate",!0)),f=o.createTextNode("clampToGround")):f=o.createTextNode("absolute"),c.appendChild(f),a.appendChild(c);let d=t.positions,p=s.get(d),g=hn(o,"coordinates",TA(p,r));a.appendChild(g);let h=s.get(t.zIndex);u&&l(h)&&a.appendChild(hn(o,"drawOrder",h,Dd)),n.push(a);let A=o.createElement("LineStyle"),x=s.get(t.width);l(x)&&A.appendChild(hn(o,"width",x)),J7(e,t.material,A),i.push(A)}function VQe(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=o.get(t.height,0);n>0&&(r=n);let s=t.coordinates,a=o.get(s),c=[],u=[le.northeast,le.southeast,le.southwest,le.northwest];for(let g=0;g<4;++g)u[g](a,vc),c.push(`${P.toDegrees(vc.longitude)},${P.toDegrees(vc.latitude)},${r}`);let f=hn(i,"coordinates",c.join(" ")),d=i.createElement("outerBoundaryIs"),p=i.createElement("LinearRing");return p.appendChild(f),d.appendChild(p),[d]}function sme(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=[],a=t.length;for(let f=0;f<a;++f)he.fromCartesian(t[f],r,vc),s.push(`${P.toDegrees(vc.longitude)},${P.toDegrees(vc.latitude)},${i?vc.height:n}`);let c=hn(o,"coordinates",s.join(" ")),u=o.createElement("LinearRing");return u.appendChild(c),u}function kQe(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=o.get(t.height,0),s=o.get(t.perPositionHeight,!1);!s&&n>0&&(r=n);let a=[],c=t.hierarchy,u=o.get(c),f=Array.isArray(u)?u:u.positions,d=i.createElement("outerBoundaryIs");d.appendChild(sme(e,f,r,s)),a.push(d);let p=u.holes;if(l(p)){let g=p.length;for(let h=0;h<g;++h){let A=i.createElement("innerBoundaryIs");A.appendChild(sme(e,p[h].positions,r,s)),a.push(A)}}return a}function ame(e,t,n,i,o){let r=e.kmlDoc,s=e.valueGetter;if(!l(t))return;let a=t instanceof lm;if(a&&s.getMaterialType(t.material)==="Image"){zQe(e,t,o);return}let c=r.createElement("Polygon"),u=s.get(t.extrudedHeight,0);u>0&&c.appendChild(hn(r,"extrude",!0));let f=a?VQe(e,t,u):kQe(e,t,u),d=f.length;for(let x=0;x<d;++x)c.appendChild(f[x]);let p=r.createElement("altitudeMode");p.appendChild(bA(e,t.heightReference)),c.appendChild(p),n.push(c);let g=r.createElement("PolyStyle"),h=s.get(t.fill,!1);h&&g.appendChild(hn(r,"fill",h)),J7(e,t.material,g);let A=s.get(t.outline,!1);if(A){g.appendChild(hn(r,"outline",A));let x=r.createElement("LineStyle"),C=s.get(t.outlineWidth,1);x.appendChild(hn(r,"width",C));let T=s.getColor(t.outlineColor,z.BLACK);x.appendChild(hn(r,"color",T)),x.appendChild(hn(r,"colorMode","normal")),i.push(x)}i.push(g)}function zQe(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=e.externalFileHandler,s=i.createElement("GroundOverlay"),a=i.createElement("altitudeMode");a.appendChild(bA(e,t.heightReference)),s.appendChild(a);let c=o.get(t.height);l(c)&&s.appendChild(hn(i,"altitude",c));let u=o.get(t.coordinates),f=i.createElement("LatLonBox");f.appendChild(hn(i,"north",P.toDegrees(u.north))),f.appendChild(hn(i,"south",P.toDegrees(u.south))),f.appendChild(hn(i,"east",P.toDegrees(u.east))),f.appendChild(hn(i,"west",P.toDegrees(u.west))),s.appendChild(f);let d=o.get(t.material),p=r.texture(d.image),g=i.createElement("Icon");g.appendChild(hn(i,"href",p)),s.appendChild(g);let h=d.color;l(h)&&s.appendChild(hn(i,"color",EA(d.color))),n.push(s)}function hme(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("Model"),s=i.get(t.scale);if(l(s)){let u=n.createElement("scale");u.appendChild(hn(n,"x",s)),u.appendChild(hn(n,"y",s)),u.appendChild(hn(n,"z",s)),r.appendChild(u)}let a=n.createElement("Link"),c=o.model(t,e.time);return a.appendChild(hn(n,"href",c)),r.appendChild(a),r}function HQe(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter;if(!l(n))return;let c=t.position;if(!c.isConstant){fme(e,t,n,i,o);return}let u=hme(e,n),f=r.createElement("altitudeMode");f.appendChild(bA(e,n.heightReference)),u.appendChild(f),a.get(c,void 0,fl),he.fromCartesian(fl,s,vc);let d=r.createElement("Location");d.appendChild(hn(r,"longitude",P.toDegrees(vc.longitude))),d.appendChild(hn(r,"latitude",P.toDegrees(vc.latitude))),d.appendChild(hn(r,"altitude",vc.height)),u.appendChild(d),i.push(u)}function J7(e,t,n){let i=e.kmlDoc,o=e.valueGetter;if(!l(t))return;let r=o.get(t);if(!l(r))return;let s,a=o.getMaterialType(t),c,u;switch(a){case"Image":s=EA(z.WHITE);break;case"Color":case"Grid":case"PolylineGlow":case"PolylineArrow":case"PolylineDash":s=EA(r.color);break;case"PolylineOutline":s=EA(r.color),c=EA(r.outlineColor),u=r.outlineWidth,n.appendChild(hn(i,"outerColor",c,Dd)),n.appendChild(hn(i,"outerWidth",u,Dd));break;case"Stripe":s=EA(r.oddColor);break}l(s)&&(n.appendChild(hn(i,"color",s)),n.appendChild(hn(i,"colorMode","normal")))}function bA(e,t){let n=e.kmlDoc,o=e.valueGetter.get(t,qe.NONE),r;switch(o){case qe.NONE:r=n.createTextNode("absolute");break;case qe.CLAMP_TO_GROUND:r=n.createTextNode("clampToGround");break;case qe.RELATIVE_TO_GROUND:r=n.createTextNode("relativeToGround");break}return r}function TA(e,t){Array.isArray(e)||(e=[e]);let n=e.length,i=[];for(let o=0;o<n;++o)he.fromCartesian(e[o],t,vc),i.push(`${P.toDegrees(vc.longitude)},${P.toDegrees(vc.latitude)},${vc.height}`);return i.join(" ")}function hn(e,t,n,i){n=y(n,""),typeof n=="boolean"&&(n=n?"1":"0");let o=l(i)?e.createElementNS(i,t):e.createElement(t),r=n==="string"&&n.indexOf("<")!==-1?e.createCDATASection(n):e.createTextNode(n);return o.appendChild(r),o}function EA(e){let t="",n=e.toBytes();for(let i=3;i>=0;--i)t+=n[i]<16?`0${n[i].toString(16)}`:n[i].toString(16);return t}var pme=K7;function GQe(e){let t,n=e.name,i=e.message;l(n)&&l(i)?t=`${n}: ${i}`:t=e.toString();let o=e.stack;return l(o)&&(t+=` +${o}`),t}var Np=GQe;var WQe={NONE:0,LERC:1},Id=Object.freeze(WQe);var jQe={NONE:0,BITS12:1},Ks=Object.freeze(jQe);var SA=new m,YQe=new m,ff=new H,uU=new B,qQe=new B,XQe=Math.pow(2,12);function Ya(e,t,n,i,o,r,s,a,c,u){let f=Ks.NONE,d,p;if(l(t)&&l(n)&&l(i)&&l(o)){let g=t.minimum,h=t.maximum,A=m.subtract(h,g,YQe),x=i-n;Math.max(m.maximumComponent(A),x)<XQe-1?f=Ks.BITS12:f=Ks.NONE,d=B.inverseTransformation(o,new B);let T=m.negate(g,SA);B.multiply(B.fromTranslation(T,uU),d,d);let E=SA;E.x=1/A.x,E.y=1/A.y,E.z=1/A.z,B.multiply(B.fromScale(E,uU),d,d),p=B.clone(o),B.setTranslation(p,m.ZERO,p),o=B.clone(o,new B);let S=B.fromTranslation(g,uU),v=B.fromScale(A,qQe),D=B.multiply(S,v,uU);B.multiply(o,D,o),B.multiply(p,D,p)}this.quantization=f,this.minimumHeight=n,this.maximumHeight=i,this.center=m.clone(e),this.toScaledENU=d,this.fromScaledENU=o,this.matrix=p,this.hasVertexNormals=r,this.hasWebMercatorT=y(s,!1),this.hasGeodeticSurfaceNormals=y(a,!1),this.exaggeration=y(c,1),this.exaggerationRelativeHeight=y(u,0),this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}Ya.prototype.encode=function(e,t,n,i,o,r,s,a){let c=i.x,u=i.y;if(this.quantization===Ks.BITS12){n=B.multiplyByPoint(this.toScaledENU,n,SA),n.x=P.clamp(n.x,0,1),n.y=P.clamp(n.y,0,1),n.z=P.clamp(n.z,0,1);let f=this.maximumHeight-this.minimumHeight,d=P.clamp((o-this.minimumHeight)/f,0,1);H.fromElements(n.x,n.y,ff);let p=qn.compressTextureCoordinates(ff);H.fromElements(n.z,d,ff);let g=qn.compressTextureCoordinates(ff);H.fromElements(c,u,ff);let h=qn.compressTextureCoordinates(ff);if(e[t++]=p,e[t++]=g,e[t++]=h,this.hasWebMercatorT){H.fromElements(s,0,ff);let A=qn.compressTextureCoordinates(ff);e[t++]=A}}else m.subtract(n,this.center,SA),e[t++]=SA.x,e[t++]=SA.y,e[t++]=SA.z,e[t++]=o,e[t++]=c,e[t++]=u,this.hasWebMercatorT&&(e[t++]=s);return this.hasVertexNormals&&(e[t++]=qn.octPackFloat(r)),this.hasGeodeticSurfaceNormals&&(e[t++]=a.x,e[t++]=a.y,e[t++]=a.z),t};var KQe=new m,_me=new m;Ya.prototype.addGeodeticSurfaceNormals=function(e,t,n){if(this.hasGeodeticSurfaceNormals)return;let i=this.stride,o=e.length/i;this.hasGeodeticSurfaceNormals=!0,this._calculateStrideAndOffsets();let r=this.stride;for(let s=0;s<o;s++){for(let f=0;f<i;f++){let d=s*i+f,p=s*r+f;t[p]=e[d]}let a=this.decodePosition(t,s,KQe),c=n.geodeticSurfaceNormal(a,_me),u=s*r+this._offsetGeodeticSurfaceNormal;t[u]=c.x,t[u+1]=c.y,t[u+2]=c.z}};Ya.prototype.removeGeodeticSurfaceNormals=function(e,t){if(!this.hasGeodeticSurfaceNormals)return;let n=this.stride,i=e.length/n;this.hasGeodeticSurfaceNormals=!1,this._calculateStrideAndOffsets();let o=this.stride;for(let r=0;r<i;r++)for(let s=0;s<o;s++){let a=r*n+s,c=r*o+s;t[c]=e[a]}};Ya.prototype.decodePosition=function(e,t,n){if(l(n)||(n=new m),t*=this.stride,this.quantization===Ks.BITS12){let i=qn.decompressTextureCoordinates(e[t],ff);n.x=i.x,n.y=i.y;let o=qn.decompressTextureCoordinates(e[t+1],ff);return n.z=o.x,B.multiplyByPoint(this.fromScaledENU,n,n)}return n.x=e[t],n.y=e[t+1],n.z=e[t+2],m.add(n,this.center,n)};Ya.prototype.getExaggeratedPosition=function(e,t,n){n=this.decodePosition(e,t,n);let i=this.exaggeration,o=this.exaggerationRelativeHeight;if(i!==1&&this.hasGeodeticSurfaceNormals){let s=this.decodeGeodeticSurfaceNormal(e,t,_me),a=this.decodeHeight(e,t),c=Wc.getHeight(a,i,o)-a;n.x+=s.x*c,n.y+=s.y*c,n.z+=s.z*c}return n};Ya.prototype.decodeTextureCoordinates=function(e,t,n){return l(n)||(n=new H),t*=this.stride,this.quantization===Ks.BITS12?qn.decompressTextureCoordinates(e[t+2],n):H.fromElements(e[t+4],e[t+5],n)};Ya.prototype.decodeHeight=function(e,t){return t*=this.stride,this.quantization===Ks.BITS12?qn.decompressTextureCoordinates(e[t+1],ff).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:e[t+3]};Ya.prototype.decodeWebMercatorT=function(e,t){return t*=this.stride,this.quantization===Ks.BITS12?qn.decompressTextureCoordinates(e[t+3],ff).x:e[t+6]};Ya.prototype.getOctEncodedNormal=function(e,t,n){t=t*this.stride+this._offsetVertexNormal;let i=e[t]/256,o=Math.floor(i),r=(i-o)*256;return H.fromElements(o,r,n)};Ya.prototype.decodeGeodeticSurfaceNormal=function(e,t,n){return t=t*this.stride+this._offsetGeodeticSurfaceNormal,n.x=e[t],n.y=e[t+1],n.z=e[t+2],n};Ya.prototype._calculateStrideAndOffsets=function(){let e=0;switch(this.quantization){case Ks.BITS12:e+=3;break;default:e+=6}this.hasWebMercatorT&&(e+=1),this.hasVertexNormals&&(this._offsetVertexNormal=e,e+=1),this.hasGeodeticSurfaceNormals&&(this._offsetGeodeticSurfaceNormal=e,e+=3),this.stride=e};var fU={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},dU={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};Ya.prototype.getAttributes=function(e){let t=X.FLOAT,n=X.getSizeInBytes(t),i=this.stride*n,o=0,r=[];function s(a,c){r.push({index:a,vertexBuffer:e,componentDatatype:t,componentsPerAttribute:c,offsetInBytes:o,strideInBytes:i}),o+=c*n}if(this.quantization===Ks.NONE){s(fU.position3DAndHeight,4);let a=2;a+=this.hasWebMercatorT?1:0,a+=this.hasVertexNormals?1:0,s(fU.textureCoordAndEncodedNormals,a),this.hasGeodeticSurfaceNormals&&s(fU.geodeticSurfaceNormal,3)}else{let a=this.hasWebMercatorT||this.hasVertexNormals,c=this.hasWebMercatorT&&this.hasVertexNormals;s(dU.compressed0,a?4:3),c&&s(dU.compressed1,1),this.hasGeodeticSurfaceNormals&&s(dU.geodeticSurfaceNormal,3)}return r};Ya.prototype.getAttributeLocations=function(){return this.quantization===Ks.NONE?fU:dU};Ya.clone=function(e,t){if(l(e))return l(t)||(t=new Ya),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=m.clone(e.center),t.toScaledENU=B.clone(e.toScaledENU),t.fromScaledENU=B.clone(e.fromScaledENU),t.matrix=B.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t.hasGeodeticSurfaceNormals=e.hasGeodeticSurfaceNormals,t.exaggeration=e.exaggeration,t.exaggerationRelativeHeight=e.exaggerationRelativeHeight,t._calculateStrideAndOffsets(),t};var Dc=Ya;var Qm={};Qm.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var Z7=new m,JQe=new B,ZQe=new m,QQe=new m;Qm.computeVertices=function(e){let t=Math.cos,n=Math.sin,i=Math.sqrt,o=Math.atan,r=Math.exp,s=P.PI_OVER_TWO,a=P.toRadians,c=e.heightmap,u=e.width,f=e.height,d=e.skirtHeight,p=d>0,g=y(e.isGeographic,!0),h=y(e.ellipsoid,oe.WGS84),A=1/h.maximumRadius,x=le.clone(e.nativeRectangle),C=le.clone(e.rectangle),T,E,S,v;l(C)?(T=C.west,E=C.south,S=C.east,v=C.north):g?(T=a(x.west),E=a(x.south),S=a(x.east),v=a(x.north)):(T=x.west*A,E=s-2*o(r(-x.south*A)),S=x.east*A,v=s-2*o(r(-x.north*A)));let D=e.relativeToCenter,O=l(D);D=O?D:m.ZERO;let M=y(e.includeWebMercatorT,!1),L=y(e.exaggeration,1),N=y(e.exaggerationRelativeHeight,0),b=L!==1,w=y(e.structure,Qm.DEFAULT_STRUCTURE),I=y(w.heightScale,Qm.DEFAULT_STRUCTURE.heightScale),R=y(w.heightOffset,Qm.DEFAULT_STRUCTURE.heightOffset),F=y(w.elementsPerHeight,Qm.DEFAULT_STRUCTURE.elementsPerHeight),k=y(w.stride,Qm.DEFAULT_STRUCTURE.stride),V=y(w.elementMultiplier,Qm.DEFAULT_STRUCTURE.elementMultiplier),G=y(w.isBigEndian,Qm.DEFAULT_STRUCTURE.isBigEndian),U=le.computeWidth(x),q=le.computeHeight(x),Y=U/(u-1),Q=q/(f-1);g||(U*=A,q*=A);let W=h.radiiSquared,K=W.x,J=W.y,_e=W.z,xe=65536,se=-65536,Ae=Rt.eastNorthUpToFixedFrame(D,h),me=B.inverseTransformation(Ae,JQe),Se,Ie;M&&(Se=Pi.geodeticLatitudeToMercatorAngle(E),Ie=1/(Pi.geodeticLatitudeToMercatorAngle(v)-Se));let Ue=ZQe;Ue.x=Number.POSITIVE_INFINITY,Ue.y=Number.POSITIVE_INFINITY,Ue.z=Number.POSITIVE_INFINITY;let Re=QQe;Re.x=Number.NEGATIVE_INFINITY,Re.y=Number.NEGATIVE_INFINITY,Re.z=Number.NEGATIVE_INFINITY;let ke=Number.POSITIVE_INFINITY,ft=u*f,pt=d>0?u*2+f*2:0,rt=ft+pt,un=new Array(rt),Mn=new Array(rt),Wt=new Array(rt),Ze=M?new Array(rt):[],pe=b?new Array(rt):[],Ee=0,je=f,fi=0,hi=u;p&&(--Ee,++je,--fi,++hi);let Jo=1e-5;for(let $e=Ee;$e<je;++$e){let _t=$e;_t<0&&(_t=0),_t>=f&&(_t=f-1);let kt=x.north-Q*_t;g?kt=a(kt):kt=s-2*o(r(-kt*A));let on=(kt-E)/(v-E);on=P.clamp(on,0,1);let Yi=$e===Ee,fo=$e===je-1;d>0&&(Yi?kt+=Jo*q:fo&&(kt-=Jo*q));let Jr=t(kt),Zr=n(kt),rr=_e*Zr,ki;M&&(ki=(Pi.geodeticLatitudeToMercatorAngle(kt)-Se)*Ie);for(let kr=fi;kr<hi;++kr){let Nn=kr;Nn<0&&(Nn=0),Nn>=u&&(Nn=u-1);let cn=_t*(u*k)+Nn*k,Gn;if(F===1)Gn=c[cn];else{Gn=0;let us;if(G)for(us=0;us<F;++us)Gn=Gn*V+c[cn+us];else for(us=F-1;us>=0;--us)Gn=Gn*V+c[cn+us]}Gn=Gn*I+R,se=Math.max(se,Gn),xe=Math.min(xe,Gn);let gn=x.west+Y*Nn;g?gn=a(gn):gn=gn*A;let Ca=(gn-T)/(S-T);Ca=P.clamp(Ca,0,1);let Wn=_t*u+Nn;if(d>0){let us=kr===fi,$p=kr===hi-1,dx=Yi||fo||us||$p;if((Yi||fo)&&(us||$p))continue;dx&&(Gn-=d,us?(Wn=ft+(f-_t-1),gn-=Jo*U):fo?Wn=ft+f+(u-Nn-1):$p?(Wn=ft+f+u+_t,gn+=Jo*U):Yi&&(Wn=ft+f+u+f+Nn))}let Dr=Jr*t(gn),vf=Jr*n(gn),sr=K*Dr,Ta=J*vf,gh=1/i(sr*Dr+Ta*vf+rr*Zr),zr=sr*gh,nc=Ta*gh,Fy=rr*gh,jd=new m;jd.x=zr+Dr*Gn,jd.y=nc+vf*Gn,jd.z=Fy+Zr*Gn,B.multiplyByPoint(me,jd,Z7),m.minimumByComponent(Z7,Ue,Ue),m.maximumByComponent(Z7,Re,Re),ke=Math.min(ke,Gn),un[Wn]=jd,Wt[Wn]=new H(Ca,on),Mn[Wn]=Gn,M&&(Ze[Wn]=ki),b&&(pe[Wn]=h.geodeticSurfaceNormal(jd))}}let vs=ae.fromPoints(un),Ds;l(C)&&(Ds=Bn.fromRectangle(C,xe,se,h));let vr;O&&(vr=new Eg(h).computeHorizonCullingPointPossiblyUnderEllipsoid(D,un,xe));let vo=new $y(Ue,Re,D),Be=new Dc(D,vo,ke,se,Ae,!1,M,b,L,N),st=new Float32Array(rt*Be.stride),Qe=0;for(let $e=0;$e<rt;++$e)Qe=Be.encode(st,Qe,un[$e],Wt[$e],Mn[$e],void 0,Ze[$e],pe[$e]);return{vertices:st,maximumHeight:se,minimumHeight:xe,encoding:Be,boundingSphere3D:vs,orientedBoundingBox:Ds,occludeePointInScaledSpace:vr}};var rD=Qm;function ny(){fe.throwInstantiationError()}Object.defineProperties(ny.prototype,{credits:{get:fe.throwInstantiationError},waterMask:{get:fe.throwInstantiationError}});ny.prototype.interpolateHeight=fe.throwInstantiationError;ny.prototype.isChildAvailable=fe.throwInstantiationError;ny.prototype.createMesh=fe.throwInstantiationError;ny.prototype.upsample=fe.throwInstantiationError;ny.prototype.wasCreatedByUpsampling=fe.throwInstantiationError;ny.maximumAsynchronousTasks=5;var $m=ny;function $Qe(e,t,n,i,o,r,s,a,c,u,f,d,p,g,h,A){this.center=e,this.vertices=t,this.stride=y(u,6),this.indices=n,this.indexCountWithoutSkirts=i,this.vertexCountWithoutSkirts=o,this.minimumHeight=r,this.maximumHeight=s,this.boundingSphere3D=a,this.occludeePointInScaledSpace=c,this.orientedBoundingBox=f,this.encoding=d,this.westIndicesSouthToNorth=p,this.southIndicesEastToWest=g,this.eastIndicesNorthToSouth=h,this.northIndicesWestToEast=A}var Pd=$Qe;function Ic(){fe.throwInstantiationError()}Object.defineProperties(Ic.prototype,{errorEvent:{get:fe.throwInstantiationError},credit:{get:fe.throwInstantiationError},tilingScheme:{get:fe.throwInstantiationError},ready:{get:fe.throwInstantiationError},readyPromise:{get:fe.throwInstantiationError},hasWaterMask:{get:fe.throwInstantiationError},hasVertexNormals:{get:fe.throwInstantiationError},availability:{get:fe.throwInstantiationError}});var gme=[];Ic.getRegularGridIndices=function(e,t){let n=gme[e];l(n)||(gme[e]=n=[]);let i=n[t];return l(i)||(e*t<P.SIXTY_FOUR_KILOBYTES?i=n[t]=new Uint16Array((e-1)*(t-1)*6):i=n[t]=new Uint32Array((e-1)*(t-1)*6),Cme(e,t,i,0)),i};var yme=[];Ic.getRegularGridIndicesAndEdgeIndices=function(e,t){let n=yme[e];l(n)||(yme[e]=n=[]);let i=n[t];if(!l(i)){let o=Ic.getRegularGridIndices(e,t),r=xme(e,t),s=r.westIndicesSouthToNorth,a=r.southIndicesEastToWest,c=r.eastIndicesNorthToSouth,u=r.northIndicesWestToEast;i=n[t]={indices:o,westIndicesSouthToNorth:s,southIndicesEastToWest:a,eastIndicesNorthToSouth:c,northIndicesWestToEast:u}}return i};var Ame=[];Ic.getRegularGridAndSkirtIndicesAndEdgeIndices=function(e,t){let n=Ame[e];l(n)||(Ame[e]=n=[]);let i=n[t];if(!l(i)){let o=e*t,r=(e-1)*(t-1)*6,s=e*2+t*2,a=Math.max(0,s-4)*6,c=o+s,u=r+a,f=xme(e,t),d=f.westIndicesSouthToNorth,p=f.southIndicesEastToWest,g=f.eastIndicesNorthToSouth,h=f.northIndicesWestToEast,A=Ve.createTypedArray(c,u);Cme(e,t,A,0),Ic.addSkirtIndices(d,p,g,h,o,A,r),i=n[t]={indices:A,westIndicesSouthToNorth:d,southIndicesEastToWest:p,eastIndicesNorthToSouth:g,northIndicesWestToEast:h,indexCountWithoutSkirts:r}}return i};Ic.addSkirtIndices=function(e,t,n,i,o,r,s){let a=o;s=mU(e,a,r,s),a+=e.length,s=mU(t,a,r,s),a+=t.length,s=mU(n,a,r,s),a+=n.length,mU(i,a,r,s)};function xme(e,t){let n=new Array(t),i=new Array(e),o=new Array(t),r=new Array(e),s;for(s=0;s<e;++s)r[s]=s,i[s]=e*t-1-s;for(s=0;s<t;++s)o[s]=(s+1)*e-1,n[s]=(t-s-1)*e;return{westIndicesSouthToNorth:n,southIndicesEastToWest:i,eastIndicesNorthToSouth:o,northIndicesWestToEast:r}}function Cme(e,t,n,i){let o=0;for(let r=0;r<t-1;++r){for(let s=0;s<e-1;++s){let a=o,c=a+e,u=c+1,f=a+1;n[i++]=a,n[i++]=c,n[i++]=f,n[i++]=f,n[i++]=c,n[i++]=u,++o}++o}}function mU(e,t,n,i){let o=e[0],r=e.length;for(let s=1;s<r;++s){let a=e[s];n[i++]=o,n[i++]=a,n[i++]=t,n[i++]=t,n[i++]=a,n[i++]=t+1,o=a,++t}return i}Ic.heightmapTerrainQuality=.25;Ic.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(e,t,n){return e.maximumRadius*2*Math.PI*Ic.heightmapTerrainQuality/(t*n)};Ic.prototype.requestTileGeometry=fe.throwInstantiationError;Ic.prototype.getLevelMaximumGeometricError=fe.throwInstantiationError;Ic.prototype.getTileDataAvailable=fe.throwInstantiationError;Ic.prototype.loadTileDataAvailability=fe.throwInstantiationError;var Xr=Ic;function Fp(e){this._buffer=e.buffer,this._width=e.width,this._height=e.height,this._childTileMask=y(e.childTileMask,15),this._encoding=y(e.encoding,Id.NONE);let t=rD.DEFAULT_STRUCTURE,n=e.structure;l(n)?n!==t&&(n.heightScale=y(n.heightScale,t.heightScale),n.heightOffset=y(n.heightOffset,t.heightOffset),n.elementsPerHeight=y(n.elementsPerHeight,t.elementsPerHeight),n.stride=y(n.stride,t.stride),n.elementMultiplier=y(n.elementMultiplier,t.elementMultiplier),n.isBigEndian=y(n.isBigEndian,t.isBigEndian)):n=t,this._structure=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._skirtHeight=void 0,this._bufferType=this._encoding===Id.LERC?Float32Array:this._buffer.constructor,this._mesh=void 0}Object.defineProperties(Fp.prototype,{credits:{get:function(){}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}}});var Tme="createVerticesFromHeightmap",e$e=new pi(Tme),t$e=new pi(Tme,$m.maximumAsynchronousTasks);Fp.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,u=t.tileXYToNativeRectangle(n,i,o),f=t.tileXYToRectangle(n,i,o),d=c.cartographicToCartesian(le.center(f)),p=this._structure,h=Xr.getEstimatedLevelZeroGeometricErrorForAHeightmap(c,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(h*4,1e3);let x=(a?t$e:e$e).scheduleTask({heightmap:this._buffer,structure:p,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:u,rectangle:f,relativeToCenter:d,ellipsoid:c,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof Di,exaggeration:r,exaggerationRelativeHeight:s,encoding:this._encoding});if(!l(x))return;let C=this;return Promise.resolve(x).then(function(T){let E;C._skirtHeight>0?E=Xr.getRegularGridAndSkirtIndicesAndEdgeIndices(T.gridWidth,T.gridHeight):E=Xr.getRegularGridIndicesAndEdgeIndices(T.gridWidth,T.gridHeight);let S=T.gridWidth*T.gridHeight;return C._mesh=new Pd(d,new Float32Array(T.vertices),E.indices,E.indexCountWithoutSkirts,S,T.minimumHeight,T.maximumHeight,ae.clone(T.boundingSphere3D),m.clone(T.occludeePointInScaledSpace),T.numberOfAttributes,Bn.clone(T.orientedBoundingBox),Dc.clone(T.encoding),E.westIndicesSouthToNorth,E.southIndicesEastToWest,E.eastIndicesNorthToSouth,E.northIndicesWestToEast),C._buffer=void 0,C._mesh})};Fp.prototype._createMeshSync=function(e){let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=t.ellipsoid,c=t.tileXYToNativeRectangle(n,i,o),u=t.tileXYToRectangle(n,i,o),f=a.cartographicToCartesian(le.center(u)),d=this._structure,g=Xr.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(g*4,1e3);let h=rD.computeVertices({heightmap:this._buffer,structure:d,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:c,rectangle:u,relativeToCenter:f,ellipsoid:a,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof Di,exaggeration:r,exaggerationRelativeHeight:s});this._buffer=void 0;let A;this._skirtHeight>0?A=Xr.getRegularGridAndSkirtIndicesAndEdgeIndices(this._width,this._height):A=Xr.getRegularGridIndicesAndEdgeIndices(this._width,this._height);let x=h.gridWidth*h.gridHeight;return this._mesh=new Pd(f,h.vertices,A.indices,A.indexCountWithoutSkirts,x,h.minimumHeight,h.maximumHeight,h.boundingSphere3D,h.occludeePointInScaledSpace,h.encoding.stride,h.orientedBoundingBox,h.encoding,A.westIndicesSouthToNorth,A.southIndicesEastToWest,A.eastIndicesNorthToSouth,A.northIndicesWestToEast),this._mesh};Fp.prototype.interpolateHeight=function(e,t,n){let i=this._width,o=this._height,r=this._structure,s=r.stride,a=r.elementsPerHeight,c=r.elementMultiplier,u=r.isBigEndian,f=r.heightOffset,d=r.heightScale,p=l(this._mesh),g=this._encoding===Id.LERC;if(!p&&g)return;let A;if(p){let x=this._mesh.vertices,C=this._mesh.encoding;A=Eme(x,C,f,d,e,i,o,t,n)}else A=n$e(this._buffer,a,c,s,u,e,i,o,t,n),A=A*d+f;return A};Fp.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(a))return;let c=this._width,u=this._height,f=this._structure,d=f.stride,p=new this._bufferType(c*u*d),g=a.vertices,h=a.encoding,A=e.tileXYToRectangle(t,n,i),x=e.tileXYToRectangle(o,r,s),C=f.heightOffset,T=f.heightScale,E=f.elementsPerHeight,S=f.elementMultiplier,v=f.isBigEndian,D=Math.pow(S,E-1);for(let O=0;O<u;++O){let M=P.lerp(x.north,x.south,O/(u-1));for(let L=0;L<c;++L){let N=P.lerp(x.west,x.east,L/(c-1)),_=Eme(g,h,C,T,A,c,u,N,M);_=_<f.lowestEncodedHeight?f.lowestEncodedHeight:_,_=_>f.highestEncodedHeight?f.highestEncodedHeight:_,i$e(p,E,S,D,d,v,O*c+L,_)}}return Promise.resolve(new Fp({buffer:p,width:c,height:u,childTileMask:0,structure:this._structure,createdByUpsampling:!0}))};Fp.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};Fp.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};function n$e(e,t,n,i,o,r,s,a,c,u){let f=(c-r.west)*(s-1)/(r.east-r.west),d=(u-r.south)*(a-1)/(r.north-r.south),p=f|0,g=p+1;g>=s&&(g=s-1,p=s-2);let h=d|0,A=h+1;A>=a&&(A=a-1,h=a-2);let x=f-p,C=d-h;h=a-1-h,A=a-1-A;let T=hU(e,t,n,i,o,h*s+p),E=hU(e,t,n,i,o,h*s+g),S=hU(e,t,n,i,o,A*s+p),v=hU(e,t,n,i,o,A*s+g);return bme(x,C,T,E,S,v)}function Eme(e,t,n,i,o,r,s,a,c){let u=(a-o.west)*(r-1)/(o.east-o.west),f=(c-o.south)*(s-1)/(o.north-o.south),d=u|0,p=d+1;p>=r&&(p=r-1,d=r-2);let g=f|0,h=g+1;h>=s&&(h=s-1,g=s-2);let A=u-d,x=f-g;g=s-1-g,h=s-1-h;let C=(t.decodeHeight(e,g*r+d)-n)/i,T=(t.decodeHeight(e,g*r+p)-n)/i,E=(t.decodeHeight(e,h*r+d)-n)/i,S=(t.decodeHeight(e,h*r+p)-n)/i;return bme(A,x,C,T,E,S)}function bme(e,t,n,i,o,r){return t<e?n+e*(i-n)+t*(r-i):n+e*(r-o)+t*(o-n)}function hU(e,t,n,i,o,r){r*=i;let s=0,a;if(o)for(a=0;a<t;++a)s=s*n+e[r+a];else for(a=t-1;a>=0;--a)s=s*n+e[r+a];return s}function i$e(e,t,n,i,o,r,s,a){s*=o;let c;if(r)for(c=0;c<t-1;++c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;else for(c=t-1;c>0;--c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;e[s+c]=a}var qa=Fp;function FE(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new Wi({ellipsoid:y(e.ellipsoid,oe.WGS84)})),this._levelZeroMaximumGeometricError=Xr.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new ge,this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(FE.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("EllipsoidTerrainProvider.ready","EllipsoidTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("EllipsoidTerrainProvider.readyPromise","EllipsoidTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});FE.prototype.requestTileGeometry=function(e,t,n,i){return Promise.resolve(new qa({buffer:new Uint8Array(16*16),width:16,height:16}))};FE.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};FE.prototype.getTileDataAvailable=function(e,t,n){};FE.prototype.loadTileDataAvailability=function(e,t,n){};var iy=FE;var pU=`uniform vec4 u_initialColor; + +#if TEXTURE_UNITS > 0 +uniform sampler2D u_dayTextures[TEXTURE_UNITS]; +uniform vec4 u_dayTextureTranslationAndScale[TEXTURE_UNITS]; +uniform bool u_dayTextureUseWebMercatorT[TEXTURE_UNITS]; + +#ifdef APPLY_ALPHA +uniform float u_dayTextureAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_DAY_NIGHT_ALPHA +uniform float u_dayTextureNightAlpha[TEXTURE_UNITS]; +uniform float u_dayTextureDayAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SPLIT +uniform float u_dayTextureSplit[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_BRIGHTNESS +uniform float u_dayTextureBrightness[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_CONTRAST +uniform float u_dayTextureContrast[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_HUE +uniform float u_dayTextureHue[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SATURATION +uniform float u_dayTextureSaturation[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_GAMMA +uniform float u_dayTextureOneOverGamma[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_IMAGERY_CUTOUT +uniform vec4 u_dayTextureCutoutRectangles[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_COLOR_TO_ALPHA +uniform vec4 u_colorsToAlpha[TEXTURE_UNITS]; +#endif + +uniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS]; +#endif + +#ifdef SHOW_REFLECTIVE_OCEAN +uniform sampler2D u_waterMask; +uniform vec4 u_waterMaskTranslationAndScale; +uniform float u_zoomedOutOceanSpecularIntensity; +#endif + +#ifdef SHOW_OCEAN_WAVES +uniform sampler2D u_oceanNormalMap; +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) +uniform vec2 u_lightingFadeDistance; +#endif + +#ifdef TILE_LIMIT_RECTANGLE +uniform vec4 u_cartographicLimitRectangle; +#endif + +#ifdef GROUND_ATMOSPHERE +uniform vec2 u_nightFadeDistance; +#endif + +#ifdef ENABLE_CLIPPING_PLANES +uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) && defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) +uniform float u_minimumBrightness; +#endif + +#ifdef COLOR_CORRECT +uniform vec3 u_hsbShift; // Hue, saturation, brightness +#endif + +#ifdef HIGHLIGHT_FILL_TILE +uniform vec4 u_fillHighlightColor; +#endif + +#ifdef TRANSLUCENT +uniform vec4 u_frontFaceAlphaByDistance; +uniform vec4 u_backFaceAlphaByDistance; +uniform vec4 u_translucencyRectangle; +#endif + +#ifdef UNDERGROUND_COLOR +uniform vec4 u_undergroundColor; +uniform vec4 u_undergroundColorAlphaByDistance; +#endif + +#ifdef ENABLE_VERTEX_LIGHTING +uniform float u_lambertDiffuseMultiplier; +uniform float u_vertexShadowDarkness; +#endif + +in vec3 v_positionMC; +in vec3 v_positionEC; +in vec3 v_textureCoordinates; +in vec3 v_normalMC; +in vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +in float v_height; +in float v_slope; +in float v_aspect; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +in float v_distance; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) +in vec3 v_atmosphereRayleighColor; +in vec3 v_atmosphereMieColor; +in float v_atmosphereOpacity; +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) || defined(APPLY_MATERIAL) +vec4 alphaBlend(vec4 sourceColor, vec4 destinationColor) +{ + return sourceColor * vec4(sourceColor.aaa, 1.0) + destinationColor * (1.0 - sourceColor.a); +} +#endif + +#ifdef TRANSLUCENT +bool inTranslucencyRectangle() +{ + return + v_textureCoordinates.x > u_translucencyRectangle.x && + v_textureCoordinates.x < u_translucencyRectangle.z && + v_textureCoordinates.y > u_translucencyRectangle.y && + v_textureCoordinates.y < u_translucencyRectangle.w; +} +#endif + +vec4 sampleAndBlend( + vec4 previousColor, + sampler2D textureToSample, + vec2 tileTextureCoordinates, + vec4 textureCoordinateRectangle, + vec4 textureCoordinateTranslationAndScale, + float textureAlpha, + float textureNightAlpha, + float textureDayAlpha, + float textureBrightness, + float textureContrast, + float textureHue, + float textureSaturation, + float textureOneOverGamma, + float split, + vec4 colorToAlpha, + float nightBlend) +{ + // This crazy step stuff sets the alpha to 0.0 if this following condition is true: + // tileTextureCoordinates.s < textureCoordinateRectangle.s || + // tileTextureCoordinates.s > textureCoordinateRectangle.p || + // tileTextureCoordinates.t < textureCoordinateRectangle.t || + // tileTextureCoordinates.t > textureCoordinateRectangle.q + // In other words, the alpha is zero if the fragment is outside the rectangle + // covered by this texture. Would an actual 'if' yield better performance? + vec2 alphaMultiplier = step(textureCoordinateRectangle.st, tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + + alphaMultiplier = step(vec2(0.0), textureCoordinateRectangle.pq - tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + textureAlpha *= mix(textureDayAlpha, textureNightAlpha, nightBlend); +#endif + + vec2 translation = textureCoordinateTranslationAndScale.xy; + vec2 scale = textureCoordinateTranslationAndScale.zw; + vec2 textureCoordinates = tileTextureCoordinates * scale + translation; + vec4 value = texture(textureToSample, textureCoordinates); + vec3 color = value.rgb; + float alpha = value.a; + +#ifdef APPLY_COLOR_TO_ALPHA + vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb); + colorDiff.r = max(max(colorDiff.r, colorDiff.g), colorDiff.b); + alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha); +#endif + +#if !defined(APPLY_GAMMA) + vec4 tempColor = czm_gammaCorrect(vec4(color, alpha)); + color = tempColor.rgb; + alpha = tempColor.a; +#else + color = pow(color, vec3(textureOneOverGamma)); +#endif + +#ifdef APPLY_SPLIT + float splitPosition = czm_splitPosition; + // Split to the left + if (split < 0.0 && gl_FragCoord.x > splitPosition) { + alpha = 0.0; + } + // Split to the right + else if (split > 0.0 && gl_FragCoord.x < splitPosition) { + alpha = 0.0; + } +#endif + +#ifdef APPLY_BRIGHTNESS + color = mix(vec3(0.0), color, textureBrightness); +#endif + +#ifdef APPLY_CONTRAST + color = mix(vec3(0.5), color, textureContrast); +#endif + +#ifdef APPLY_HUE + color = czm_hue(color, textureHue); +#endif + +#ifdef APPLY_SATURATION + color = czm_saturation(color, textureSaturation); +#endif + + float sourceAlpha = alpha * textureAlpha; + float outAlpha = mix(previousColor.a, 1.0, sourceAlpha); + outAlpha += sign(outAlpha) - 1.0; + + vec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha; + + // When rendering imagery for a tile in multiple passes, + // some GPU/WebGL implementation combinations will not blend fragments in + // additional passes correctly if their computation includes an unmasked + // divide-by-zero operation, + // even if it's not in the output or if the output has alpha zero. + // + // For example, without sanitization for outAlpha, + // this renders without artifacts: + // if (outAlpha == 0.0) { outColor = vec3(0.0); } + // + // but using czm_branchFreeTernary will cause portions of the tile that are + // alpha-zero in the additional pass to render as black instead of blending + // with the previous pass: + // outColor = czm_branchFreeTernary(outAlpha == 0.0, vec3(0.0), outColor); + // + // So instead, sanitize against divide-by-zero, + // store this state on the sign of outAlpha, and correct on return. + + return vec4(outColor, max(outAlpha, 0.0)); +} + +vec3 colorCorrect(vec3 rgb) { +#ifdef COLOR_CORRECT + // Convert rgb color to hsb + vec3 hsb = czm_RGBToHSB(rgb); + // Perform hsb shift + hsb.x += u_hsbShift.x; // hue + hsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0); // saturation + hsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0; // brightness + // Convert shifted hsb back to rgb + rgb = czm_HSBToRGB(hsb); +#endif + return rgb; +} + +vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend); +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float specularMapValue, float fade); + +const float fExposure = 2.0; + +vec3 computeEllipsoidPosition() +{ + float mpp = czm_metersPerPixel(vec4(0.0, 0.0, -czm_currentFrustum.x, 1.0), 1.0); + vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0); + xy *= czm_viewport.zw * mpp * 0.5; + + vec3 direction = normalize(vec3(xy, -czm_currentFrustum.x)); + czm_ray ray = czm_ray(vec3(0.0), direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + + vec3 ellipsoidPosition = czm_pointAlongRay(ray, intersection.start); + return (czm_inverseView * vec4(ellipsoidPosition, 1.0)).xyz; +} + +void main() +{ +#ifdef TILE_LIMIT_RECTANGLE + if (v_textureCoordinates.x < u_cartographicLimitRectangle.x || u_cartographicLimitRectangle.z < v_textureCoordinates.x || + v_textureCoordinates.y < u_cartographicLimitRectangle.y || u_cartographicLimitRectangle.w < v_textureCoordinates.y) + { + discard; + } +#endif + +#ifdef ENABLE_CLIPPING_PLANES + float clipDistance = clip(gl_FragCoord, u_clippingPlanes, u_clippingPlanesMatrix); +#endif + +#if defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(HDR) + vec3 normalMC = czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)); // normalized surface normal in model coordinates + vec3 normalEC = czm_normal3D * normalMC; // normalized surface normal in eye coordiantes +#endif + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + float nightBlend = 1.0 - clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0, 0.0, 1.0); +#else + float nightBlend = 0.0; +#endif + + // The clamp below works around an apparent bug in Chrome Canary v23.0.1241.0 + // where the fragment shader sees textures coordinates < 0.0 and > 1.0 for the + // fragments on the edges of tiles even though the vertex shader is outputting + // coordinates strictly in the 0-1 range. + vec4 color = computeDayColor(u_initialColor, clamp(v_textureCoordinates, 0.0, 1.0), nightBlend); + +#ifdef SHOW_TILE_BOUNDARIES + if (v_textureCoordinates.x < (1.0/256.0) || v_textureCoordinates.x > (255.0/256.0) || + v_textureCoordinates.y < (1.0/256.0) || v_textureCoordinates.y > (255.0/256.0)) + { + color = vec4(1.0, 0.0, 0.0, 1.0); + } +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) + float cameraDist; + if (czm_sceneMode == czm_sceneMode2D) + { + cameraDist = max(czm_frustumPlanes.x - czm_frustumPlanes.y, czm_frustumPlanes.w - czm_frustumPlanes.z) * 0.5; + } + else if (czm_sceneMode == czm_sceneModeColumbusView) + { + cameraDist = -czm_view[3].z; + } + else + { + cameraDist = length(czm_view[3]); + } + float fadeOutDist = u_lightingFadeDistance.x; + float fadeInDist = u_lightingFadeDistance.y; + if (czm_sceneMode != czm_sceneMode3D) { + vec3 radii = czm_ellipsoidRadii; + float maxRadii = max(radii.x, max(radii.y, radii.z)); + fadeOutDist -= maxRadii; + fadeInDist -= maxRadii; + } + float fade = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0); +#else + float fade = 0.0; +#endif + +#ifdef SHOW_REFLECTIVE_OCEAN + vec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy; + vec2 waterMaskScale = u_waterMaskTranslationAndScale.zw; + vec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation; + waterMaskTextureCoordinates.y = 1.0 - waterMaskTextureCoordinates.y; + + float mask = texture(u_waterMask, waterMaskTextureCoordinates).r; + + if (mask > 0.0) + { + mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC); + + vec2 ellipsoidTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC); + vec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC.zyx); + + vec2 textureCoordinates = mix(ellipsoidTextureCoordinates, ellipsoidFlippedTextureCoordinates, czm_morphTime * smoothstep(0.9, 0.95, normalMC.z)); + + color = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade); + } +#endif + +#ifdef APPLY_MATERIAL + czm_materialInput materialInput; + materialInput.st = v_textureCoordinates.st; + materialInput.normalEC = normalize(v_normalEC); + materialInput.positionToEyeEC = -v_positionEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalize(v_normalEC)); + materialInput.slope = v_slope; + materialInput.height = v_height; + materialInput.aspect = v_aspect; + czm_material material = czm_getMaterial(materialInput); + vec4 materialColor = vec4(material.diffuse, material.alpha); + color = alphaBlend(materialColor, color); +#endif + +#ifdef ENABLE_VERTEX_LIGHTING + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalize(v_normalEC)) * u_lambertDiffuseMultiplier + u_vertexShadowDarkness, 0.0, 1.0); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#elif defined(ENABLE_DAYNIGHT_SHADING) + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0 + 0.3, 0.0, 1.0); + diffuseIntensity = mix(1.0, diffuseIntensity, fade); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#else + vec4 finalColor = color; +#endif + +#ifdef ENABLE_CLIPPING_PLANES + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = u_clippingPlanesEdgeStyle.rgb; + float clippingPlanesEdgeWidth = u_clippingPlanesEdgeStyle.a; + + if (clipDistance < clippingPlanesEdgeWidth) + { + finalColor = clippingPlanesEdgeColor; + } +#endif + +#ifdef HIGHLIGHT_FILL_TILE + finalColor = vec4(mix(finalColor.rgb, u_fillHighlightColor.rgb, u_fillHighlightColor.a), finalColor.a); +#endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) + if (!czm_backFacing()) + { + bool dynamicLighting = false; + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + + vec3 rayleighColor; + vec3 mieColor; + float opacity; + + vec3 positionWC; + vec3 lightDirection; + + // When the camera is far away (camera distance > nightFadeOutDistance), the scattering is computed in the fragment shader. + // Otherwise, the scattering is computed in the vertex shader. + #ifdef PER_FRAGMENT_GROUND_ATMOSPHERE + positionWC = computeEllipsoidPosition(); + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + computeAtmosphereScattering( + positionWC, + lightDirection, + rayleighColor, + mieColor, + opacity + ); + #else + positionWC = v_positionMC; + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + rayleighColor = v_atmosphereRayleighColor; + mieColor = v_atmosphereMieColor; + opacity = v_atmosphereOpacity; + #endif + + rayleighColor = colorCorrect(rayleighColor); + mieColor = colorCorrect(mieColor); + + vec4 groundAtmosphereColor = computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity); + + // Fog is applied to tiles selected for fog, close to the Earth. + #ifdef FOG + vec3 fogColor = groundAtmosphereColor.rgb; + + // If there is lighting, apply that to the fog. + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float darken = clamp(dot(normalize(czm_viewerPositionWC), atmosphereLightDirection), u_minimumBrightness, 1.0); + fogColor *= darken; + #endif + + #ifndef HDR + fogColor.rgb = czm_acesTonemapping(fogColor.rgb); + fogColor.rgb = czm_inverseGamma(fogColor.rgb); + #endif + + const float modifier = 0.15; + finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, modifier), finalColor.a); + + #else + // The transmittance is based on optical depth i.e. the length of segment of the ray inside the atmosphere. + // This value is larger near the "circumference", as it is further away from the camera. We use it to + // brighten up that area of the ground atmosphere. + const float transmittanceModifier = 0.5; + float transmittance = transmittanceModifier + clamp(1.0 - groundAtmosphereColor.a, 0.0, 1.0); + + vec3 finalAtmosphereColor = finalColor.rgb + groundAtmosphereColor.rgb * transmittance; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float fadeInDist = u_nightFadeDistance.x; + float fadeOutDist = u_nightFadeDistance.y; + + float sunlitAtmosphereIntensity = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.05, 1.0); + float darken = clamp(dot(normalize(positionWC), atmosphereLightDirection), 0.0, 1.0); + vec3 darkenendGroundAtmosphereColor = mix(groundAtmosphereColor.rgb, finalAtmosphereColor.rgb, darken); + + finalAtmosphereColor = mix(darkenendGroundAtmosphereColor, finalAtmosphereColor, sunlitAtmosphereIntensity); + #endif + + #ifndef HDR + finalAtmosphereColor.rgb = vec3(1.0) - exp(-fExposure * finalAtmosphereColor.rgb); + #else + finalAtmosphereColor.rgb = czm_saturation(finalAtmosphereColor.rgb, 1.6); + #endif + + finalColor.rgb = mix(finalColor.rgb, finalAtmosphereColor.rgb, fade); + #endif + } +#endif + +#ifdef UNDERGROUND_COLOR + if (czm_backFacing()) + { + float distanceFromEllipsoid = max(czm_eyeHeight, 0.0); + float distance = max(v_distance - distanceFromEllipsoid, 0.0); + float blendAmount = interpolateByDistance(u_undergroundColorAlphaByDistance, distance); + vec4 undergroundColor = vec4(u_undergroundColor.rgb, u_undergroundColor.a * blendAmount); + finalColor = alphaBlend(undergroundColor, finalColor); + } +#endif + +#ifdef TRANSLUCENT + if (inTranslucencyRectangle()) + { + vec4 alphaByDistance = gl_FrontFacing ? u_frontFaceAlphaByDistance : u_backFaceAlphaByDistance; + finalColor.a *= interpolateByDistance(alphaByDistance, v_distance); + } +#endif + + out_FragColor = finalColor; +} + + +#ifdef SHOW_REFLECTIVE_OCEAN + +float waveFade(float edge0, float edge1, float x) +{ + float y = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); + return pow(1.0 - y, 5.0); +} + +float linearFade(float edge0, float edge1, float x) +{ + return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); +} + +// Based on water rendering by Jonas Wagner: +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +// low altitude wave settings +const float oceanFrequencyLowAltitude = 825000.0; +const float oceanAnimationSpeedLowAltitude = 0.004; +const float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0; +const float oceanSpecularIntensity = 0.5; + +// high altitude wave settings +const float oceanFrequencyHighAltitude = 125000.0; +const float oceanAnimationSpeedHighAltitude = 0.008; +const float oceanOneOverAmplitudeHighAltitude = 1.0 / 2.0; + +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float maskValue, float fade) +{ + vec3 positionToEyeEC = -positionEyeCoordinates; + float positionToEyeECLength = length(positionToEyeEC); + + // The double normalize below works around a bug in Firefox on Android devices. + vec3 normalizedPositionToEyeEC = normalize(normalize(positionToEyeEC)); + + // Fade out the waves as the camera moves far from the surface. + float waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength); + +#ifdef SHOW_OCEAN_WAVES + // high altitude waves + float time = czm_frameNumber * oceanAnimationSpeedHighAltitude; + vec4 noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyHighAltitude, time, 0.0); + vec3 normalTangentSpaceHighAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeHighAltitude); + + // low altitude waves + time = czm_frameNumber * oceanAnimationSpeedLowAltitude; + noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0); + vec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude); + + // blend the 2 wave layers based on distance to surface + float highAltitudeFade = linearFade(0.0, 60000.0, positionToEyeECLength); + float lowAltitudeFade = 1.0 - linearFade(20000.0, 60000.0, positionToEyeECLength); + vec3 normalTangentSpace = + (highAltitudeFade * normalTangentSpaceHighAltitude) + + (lowAltitudeFade * normalTangentSpaceLowAltitude); + normalTangentSpace = normalize(normalTangentSpace); + + // fade out the normal perturbation as we move farther from the water surface + normalTangentSpace.xy *= waveIntensity; + normalTangentSpace = normalize(normalTangentSpace); +#else + vec3 normalTangentSpace = vec3(0.0, 0.0, 1.0); +#endif + + vec3 normalEC = enuToEye * normalTangentSpace; + + const vec3 waveHighlightColor = vec3(0.3, 0.45, 0.6); + + // Use diffuse light to highlight the waves + float diffuseIntensity = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * maskValue; + vec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade); + +#ifdef SHOW_OCEAN_WAVES + // Where diffuse light is low or non-existent, use wave highlights based solely on + // the wave bumpiness and no particular light direction. + float tsPerturbationRatio = normalTangentSpace.z; + vec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity); +#else + vec3 nonDiffuseHighlight = vec3(0.0); +#endif + + // Add specular highlights in 3D, and in all modes when zoomed in. + float specularIntensity = czm_getSpecular(czm_lightDirectionEC, normalizedPositionToEyeEC, normalEC, 10.0); + float surfaceReflectance = mix(0.0, mix(u_zoomedOutOceanSpecularIntensity, oceanSpecularIntensity, waveIntensity), maskValue); + float specular = specularIntensity * surfaceReflectance; + +#ifdef HDR + specular *= 1.4; + + float e = 0.2; + float d = 3.3; + float c = 1.7; + + vec3 color = imageryColor.rgb + (c * (vec3(e) + imageryColor.rgb * d) * (diffuseHighlight + nonDiffuseHighlight + specular)); +#else + vec3 color = imageryColor.rgb + diffuseHighlight + nonDiffuseHighlight + specular; +#endif + + return vec4(color, imageryColor.a); +} + +#endif // #ifdef SHOW_REFLECTIVE_OCEAN +`;var _U=`#ifdef QUANTIZATION_BITS12 +in vec4 compressed0; +in float compressed1; +#else +in vec4 position3DAndHeight; +in vec4 textureCoordAndEncodedNormals; +#endif + +#ifdef GEODETIC_SURFACE_NORMALS +in vec3 geodeticSurfaceNormal; +#endif + +#ifdef EXAGGERATION +uniform vec2 u_terrainExaggerationAndRelativeHeight; +#endif + +uniform vec3 u_center3D; +uniform mat4 u_modifiedModelView; +uniform mat4 u_modifiedModelViewProjection; +uniform vec4 u_tileRectangle; + +// Uniforms for 2D Mercator projection +uniform vec2 u_southAndNorthLatitude; +uniform vec2 u_southMercatorYAndOneOverHeight; + +out vec3 v_positionMC; +out vec3 v_positionEC; + +out vec3 v_textureCoordinates; +out vec3 v_normalMC; +out vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +out float v_slope; +out float v_aspect; +out float v_height; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +out float v_distance; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) +out vec3 v_atmosphereRayleighColor; +out vec3 v_atmosphereMieColor; +out float v_atmosphereOpacity; +#endif + +// These functions are generated at runtime. +vec4 getPosition(vec3 position, float height, vec2 textureCoordinates); +float get2DYPositionFraction(vec2 textureCoordinates); + +vec4 getPosition3DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return u_modifiedModelViewProjection * vec4(position, 1.0); +} + +float get2DMercatorYPositionFraction(vec2 textureCoordinates) +{ + // The width of a tile at level 11, in radians and assuming a single root tile, is + // 2.0 * czm_pi / pow(2.0, 11.0) + // We want to just linearly interpolate the 2D position from the texture coordinates + // when we're at this level or higher. The constant below is the expression + // above evaluated and then rounded up at the 4th significant digit. + const float maxTileWidth = 0.003068; + float positionFraction = textureCoordinates.y; + float southLatitude = u_southAndNorthLatitude.x; + float northLatitude = u_southAndNorthLatitude.y; + if (northLatitude - southLatitude > maxTileWidth) + { + float southMercatorY = u_southMercatorYAndOneOverHeight.x; + float oneOverMercatorHeight = u_southMercatorYAndOneOverHeight.y; + + float currentLatitude = mix(southLatitude, northLatitude, textureCoordinates.y); + currentLatitude = clamp(currentLatitude, -czm_webMercatorMaxLatitude, czm_webMercatorMaxLatitude); + positionFraction = czm_latitudeToWebMercatorFraction(currentLatitude, southMercatorY, oneOverMercatorHeight); + } + return positionFraction; +} + +float get2DGeographicYPositionFraction(vec2 textureCoordinates) +{ + return textureCoordinates.y; +} + +vec4 getPositionPlanarEarth(vec3 position, float height, vec2 textureCoordinates) +{ + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 rtcPosition2D = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + return u_modifiedModelViewProjection * rtcPosition2D; +} + +vec4 getPosition2DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, 0.0, textureCoordinates); +} + +vec4 getPositionColumbusViewMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, height, textureCoordinates); +} + +vec4 getPositionMorphingMode(vec3 position, float height, vec2 textureCoordinates) +{ + // We do not do RTC while morphing, so there is potential for jitter. + // This is unlikely to be noticeable, though. + vec3 position3DWC = position + u_center3D; + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 position2DWC = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + vec4 morphPosition = czm_columbusViewMorph(position2DWC, vec4(position3DWC, 1.0), czm_morphTime); + return czm_modelViewProjection * morphPosition; +} + +#ifdef QUANTIZATION_BITS12 +uniform vec2 u_minMaxHeight; +uniform mat4 u_scaleAndBias; +#endif + +void main() +{ +#ifdef QUANTIZATION_BITS12 + vec2 xy = czm_decompressTextureCoordinates(compressed0.x); + vec2 zh = czm_decompressTextureCoordinates(compressed0.y); + vec3 position = vec3(xy, zh.x); + float height = zh.y; + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressed0.z); + + height = height * (u_minMaxHeight.y - u_minMaxHeight.x) + u_minMaxHeight.x; + position = (u_scaleAndBias * vec4(position, 1.0)).xyz; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)) && defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = compressed1; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = 0.0; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = compressed0.w; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#else + // A single float per element + vec3 position = position3DAndHeight.xyz; + float height = position3DAndHeight.w; + vec2 textureCoordinates = textureCoordAndEncodedNormals.xy; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)) && defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = textureCoordAndEncodedNormals.w; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = textureCoordAndEncodedNormals.z; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = 0.0; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#endif + + vec3 position3DWC = position + u_center3D; + +#ifdef GEODETIC_SURFACE_NORMALS + vec3 ellipsoidNormal = geodeticSurfaceNormal; +#else + vec3 ellipsoidNormal = normalize(position3DWC); +#endif + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + float exaggeration = u_terrainExaggerationAndRelativeHeight.x; + float relativeHeight = u_terrainExaggerationAndRelativeHeight.y; + float newHeight = (height - relativeHeight) * exaggeration + relativeHeight; + + // stop from going through center of earth + float minRadius = min(min(czm_ellipsoidRadii.x, czm_ellipsoidRadii.y), czm_ellipsoidRadii.z); + newHeight = max(newHeight, -minRadius); + + vec3 offset = ellipsoidNormal * (newHeight - height); + position += offset; + position3DWC += offset; + height = newHeight; +#endif + + gl_Position = getPosition(position, height, textureCoordinates); + + v_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz; + v_positionMC = position3DWC; // position in model coordinates + + v_textureCoordinates = vec3(textureCoordinates, webMercatorT); + +#if defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + vec3 normalMC = czm_octDecode(encodedNormal); + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + vec3 projection = dot(normalMC, ellipsoidNormal) * ellipsoidNormal; + vec3 rejection = normalMC - projection; + normalMC = normalize(projection + rejection * exaggeration); +#endif + + v_normalMC = normalMC; + v_normalEC = czm_normal3D * v_normalMC; +#endif + +#if defined(FOG) || (defined(GROUND_ATMOSPHERE) && !defined(PER_FRAGMENT_GROUND_ATMOSPHERE)) + + bool dynamicLighting = false; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + + vec3 lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(position3DWC)); + + computeAtmosphereScattering( + position3DWC, + lightDirection, + v_atmosphereRayleighColor, + v_atmosphereMieColor, + v_atmosphereOpacity + ); +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) + v_distance = length((czm_modelView3D * vec4(position3DWC, 1.0)).xyz); +#endif + +#ifdef APPLY_MATERIAL + float northPoleZ = czm_ellipsoidRadii.z; + vec3 northPolePositionMC = vec3(0.0, 0.0, northPoleZ); + vec3 vectorEastMC = normalize(cross(northPolePositionMC - v_positionMC, ellipsoidNormal)); + float dotProd = abs(dot(ellipsoidNormal, v_normalMC)); + v_slope = acos(dotProd); + vec3 normalRejected = ellipsoidNormal * dotProd; + vec3 normalProjected = v_normalMC - normalRejected; + vec3 aspectVector = normalize(normalProjected); + v_aspect = acos(dot(aspectVector, vectorEastMC)); + float determ = dot(cross(vectorEastMC, aspectVector), ellipsoidNormal); + v_aspect = czm_branchFreeTernary(determ < 0.0, 2.0 * czm_pi - v_aspect, v_aspect); + v_height = height; +#endif +} +`;var oy=`uniform vec3 u_radiiAndDynamicAtmosphereColor; + +uniform float u_atmosphereLightIntensity; +uniform float u_atmosphereRayleighScaleHeight; +uniform float u_atmosphereMieScaleHeight; +uniform float u_atmosphereMieAnisotropy; +uniform vec3 u_atmosphereRayleighCoefficient; +uniform vec3 u_atmosphereMieCoefficient; + +const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters. +const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled. +const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + +/** + * Rational approximation to tanh(x) +*/ +float approximateTanh(float x) { + float x2 = x * x; + return max(-1.0, min(+1.0, x * (27.0 + x2) / (27.0 + 9.0 * x2))); +} + +/** + * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as + * the transmittance value for the ray. + * + * @param {czm_ray} primaryRay The ray from the camera to the position. + * @param {float} primaryRayLength The length of the primary ray. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + * @glslFunction + */ +void computeScattering( + czm_ray primaryRay, + float primaryRayLength, + vec3 lightDirection, + float atmosphereInnerRadius, + out vec3 rayleighColor, + out vec3 mieColor, + out float opacity +) { + + // Initialize the default scattering amounts to 0. + rayleighColor = vec3(0.0); + mieColor = vec3(0.0); + opacity = 0.0; + + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + + vec3 origin = vec3(0.0); + + // Calculate intersection from the camera to the outer ring of the atmosphere. + czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius); + + // Return empty colors if no intersection with the atmosphere geometry. + if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) { + return; + } + + // To deal with smaller values of PRIMARY_STEPS (e.g. 4) + // we implement a split strategy: sky or horizon. + // For performance reasons, instead of a if/else branch + // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0 + float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength); + // Value close to 0.0: close to the horizon + // Value close to 1.0: above in the sky + float w_stop_gt_lprl = 0.5 * (1.0 + approximateTanh(x)); + + // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere. + float start_0 = primaryRayAtmosphereIntersect.start; + primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0); + // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller. + primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength)); + + // For the number of ray steps, distinguish inside or outside atmosphere (outer space) + // (1) from outer space we have to use more ray steps to get a realistic rendering + // (2) within atmosphere we need fewer steps for faster rendering + float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters + float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + approximateTanh(x_o_a)); + int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled. + int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere. + float rayPositionLength = primaryRayAtmosphereIntersect.start; + // (1) Outside the atmosphere: constant rayStepLength + // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps + float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength; + float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0)); + float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS)); + + vec3 rayleighAccumulation = vec3(0.0); + vec3 mieAccumulation = vec3(0.0); + vec2 opticalDepth = vec2(0.0); + vec2 heightScale = vec2(u_atmosphereRayleighScaleHeight, u_atmosphereMieScaleHeight); + + // Sample positions on the primary ray. + for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) { + + // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= PRIMARY_STEPS) { + break; + } + + // Calculate sample position along viewpoint ray. + vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); + + // Calculate height of sample position above ellipsoid. + float sampleHeight = length(samplePosition) - atmosphereInnerRadius; + + // Calculate and accumulate density of particles at the sample position. + vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; + opticalDepth += sampleDensity; + + // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. + czm_ray lightRay = czm_ray(samplePosition, lightDirection); + czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); + + float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); + float lightPositionLength = 0.0; + + vec2 lightOpticalDepth = vec2(0.0); + + // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. + for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { + + // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (j >= LIGHT_STEPS) { + break; + } + + // Calculate sample position along light ray. + vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); + + // Calculate height of the light sample position above ellipsoid. + float lightHeight = length(lightPosition) - atmosphereInnerRadius; + + // Calculate density of photons at the light sample position. + lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; + + // Increment distance on light ray. + lightPositionLength += lightStepLength; + } + + // Compute attenuation via the primary ray and the light ray. + vec3 attenuation = exp(-((u_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (u_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); + + // Accumulate the scattering. + rayleighAccumulation += sampleDensity.x * attenuation; + mieAccumulation += sampleDensity.y * attenuation; + + // Increment distance on primary ray. + rayPositionLength += (rayStepLength += rayStepLengthIncrease); + } + + // Compute the scattering amount. + rayleighColor = u_atmosphereRayleighCoefficient * rayleighAccumulation; + mieColor = u_atmosphereMieCoefficient * mieAccumulation; + + // Compute the transmittance i.e. how much light is passing through the atmosphere. + opacity = length(exp(-((u_atmosphereMieCoefficient * opticalDepth.y) + (u_atmosphereRayleighCoefficient * opticalDepth.x)))); +} + +vec4 computeAtmosphereColor( + vec3 positionWC, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + + float cosAngle = dot(cameraToPositionWCDirection, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = u_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * u_atmosphereLightIntensity; + + return vec4(color, opacity); +} +`;var sD=`void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { + + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + float atmosphereInnerRadius = length(positionWC); + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); +} +`;var o$e=new H;function r$e(e,t){let n=e.unionClippingRegions,i=e.length,o=gs.useFloatTexture(t),r=gs.getTextureResolution(e,t,o$e),s=r.x,a=r.y,c=o?c$e(s,a):l$e(s,a);return c+=` +`,c+=n?s$e(i):a$e(i),c}function s$e(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount; + float pixelWidth = czm_metersPerPixel(position); + bool breakAndDiscard = false; + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); + if (amount <= 0.0) + { + breakAndDiscard = true; + break; + } + } + if (breakAndDiscard) { + discard; + } + return clipAmount; +} +`}function a$e(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + bool clipped = true; + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount = 0.0; + float pixelWidth = czm_metersPerPixel(position); + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = max(amount, clipAmount); + clipped = clipped && (amount <= 0.0); + } + if (clipped) + { + discard; + } + return clipAmount; +} +`}function c$e(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int pixY = clippingPlaneNumber / ${e}; + int pixX = clippingPlaneNumber - (pixY * ${e}); + float u = (float(pixX) + 0.5) * ${o}; + float v = (float(pixY) + 0.5) * ${r}; + vec4 plane = texture(packedClippingPlanes, vec2(u, v)); + return czm_transformPlane(plane, transform); +} +`}function l$e(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int clippingPlaneStartIndex = clippingPlaneNumber * 2; + int pixY = clippingPlaneStartIndex / ${e}; + int pixX = clippingPlaneStartIndex - (pixY * ${e}); + float u = (float(pixX) + 0.5) * ${o}; + float v = (float(pixY) + 0.5) * ${r}; + vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; + vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); + vec4 plane; + plane.xyz = czm_octDecode(oct, 65535.0); + plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + ${o}, v))); + return czm_transformPlane(plane, transform); +} +`}var ry=r$e;function u$e(e,t,n,i,o){this.numberOfDayTextures=e,this.flags=t,this.material=n,this.shaderProgram=i,this.clippingShaderState=o}function Q7(){this.baseVertexShaderSource=void 0,this.baseFragmentShaderSource=void 0,this._shadersByTexturesFlags=[],this.material=void 0}function f$e(e){let t="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPosition3DMode(position, height, textureCoordinates); }",n="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionColumbusViewMode(position, height, textureCoordinates); }",i="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionMorphingMode(position, height, textureCoordinates); }",o;switch(e){case ne.SCENE3D:o=t;break;case ne.SCENE2D:case ne.COLUMBUS_VIEW:o=n;break;case ne.MORPHING:o=i;break}return o}function d$e(e){return e?"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DMercatorYPositionFraction(textureCoordinates); }":"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DGeographicYPositionFraction(textureCoordinates); }"}Q7.prototype.getShaderProgram=function(e){let t=e.frameState,n=e.surfaceTile,i=e.numberOfDayTextures,o=e.applyBrightness,r=e.applyContrast,s=e.applyHue,a=e.applySaturation,c=e.applyGamma,u=e.applyAlpha,f=e.applyDayNightAlpha,d=e.applySplit,p=e.showReflectiveOcean,g=e.showOceanWaves,h=e.enableLighting,A=e.dynamicAtmosphereLighting,x=e.dynamicAtmosphereLightingFromSun,C=e.showGroundAtmosphere,T=e.perFragmentGroundAtmosphere,E=e.hasVertexNormals,S=e.useWebMercatorProjection,v=e.enableFog,D=e.enableClippingPlanes,O=e.clippingPlanes,M=e.clippedByBoundaries,L=e.hasImageryLayerCutout,N=e.colorCorrect,_=e.highlightFillTile,b=e.colorToAlpha,w=e.hasGeodeticSurfaceNormals,I=e.hasExaggeration,R=e.showUndergroundColor,F=e.translucent,k=0,V="",U=n.renderedMesh.encoding;U.quantization===Ks.BITS12&&(k=1,V="QUANTIZATION_BITS12");let Y=0,Q="";M&&(Y=1,Q="TILE_LIMIT_RECTANGLE");let W=0,K="";L&&(W=1,K="APPLY_IMAGERY_CUTOUT");let J=t.mode,_e=J|o<<2|r<<3|s<<4|a<<5|c<<6|u<<7|p<<8|g<<9|h<<10|A<<11|x<<12|C<<13|T<<14|E<<15|S<<16|v<<17|k<<18|d<<19|D<<20|Y<<21|W<<22|N<<23|_<<24|b<<25|w<<26|I<<27|R<<28|F<<29|f<<30,xe=0;l(O)&&O.length>0&&(xe=D?O.clippingPlanesState:0);let se=n.surfaceShader;if(l(se)&&se.numberOfDayTextures===i&&se.flags===_e&&se.material===this.material&&se.clippingShaderState===xe)return se.shaderProgram;let Ae=this._shadersByTexturesFlags[i];if(l(Ae)||(Ae=this._shadersByTexturesFlags[i]=[]),se=Ae[_e],!l(se)||se.material!==this.material||se.clippingShaderState!==xe){let me=this.baseVertexShaderSource.clone(),Se=this.baseFragmentShaderSource.clone();xe!==0&&Se.sources.unshift(ry(O,t.context)),me.defines.push(V),Se.defines.push(`TEXTURE_UNITS ${i}`,Q,K),o&&Se.defines.push("APPLY_BRIGHTNESS"),r&&Se.defines.push("APPLY_CONTRAST"),s&&Se.defines.push("APPLY_HUE"),a&&Se.defines.push("APPLY_SATURATION"),c&&Se.defines.push("APPLY_GAMMA"),u&&Se.defines.push("APPLY_ALPHA"),f&&Se.defines.push("APPLY_DAY_NIGHT_ALPHA"),p&&(Se.defines.push("SHOW_REFLECTIVE_OCEAN"),me.defines.push("SHOW_REFLECTIVE_OCEAN")),g&&Se.defines.push("SHOW_OCEAN_WAVES"),b&&Se.defines.push("APPLY_COLOR_TO_ALPHA"),R&&(me.defines.push("UNDERGROUND_COLOR"),Se.defines.push("UNDERGROUND_COLOR")),F&&(me.defines.push("TRANSLUCENT"),Se.defines.push("TRANSLUCENT")),h&&(E?(me.defines.push("ENABLE_VERTEX_LIGHTING"),Se.defines.push("ENABLE_VERTEX_LIGHTING")):(me.defines.push("ENABLE_DAYNIGHT_SHADING"),Se.defines.push("ENABLE_DAYNIGHT_SHADING"))),A&&(me.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),Se.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),x&&(me.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"),Se.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"))),C&&(me.defines.push("GROUND_ATMOSPHERE"),Se.defines.push("GROUND_ATMOSPHERE"),T&&(me.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"),Se.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"))),me.defines.push("INCLUDE_WEB_MERCATOR_Y"),Se.defines.push("INCLUDE_WEB_MERCATOR_Y"),v&&(me.defines.push("FOG"),Se.defines.push("FOG")),d&&Se.defines.push("APPLY_SPLIT"),D&&Se.defines.push("ENABLE_CLIPPING_PLANES"),N&&Se.defines.push("COLOR_CORRECT"),_&&Se.defines.push("HIGHLIGHT_FILL_TILE"),w&&me.defines.push("GEODETIC_SURFACE_NORMALS"),I&&me.defines.push("EXAGGERATION");let Ie=` vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend) + { + vec4 color = initialColor; +`;L&&(Ie+=` vec4 cutoutAndColorResult; + bool texelUnclipped; +`);for(let Re=0;Re<i;++Re)L?Ie+=` cutoutAndColorResult = u_dayTextureCutoutRectangles[${Re}]; + texelUnclipped = v_textureCoordinates.x < cutoutAndColorResult.x || cutoutAndColorResult.z < v_textureCoordinates.x || v_textureCoordinates.y < cutoutAndColorResult.y || cutoutAndColorResult.w < v_textureCoordinates.y; + cutoutAndColorResult = sampleAndBlend( +`:Ie+=` color = sampleAndBlend( +`,Ie+=` color, + u_dayTextures[${Re}], + u_dayTextureUseWebMercatorT[${Re}] ? textureCoordinates.xz : textureCoordinates.xy, + u_dayTextureTexCoordsRectangle[${Re}], + u_dayTextureTranslationAndScale[${Re}], + ${u?`u_dayTextureAlpha[${Re}]`:"1.0"}, + ${f?`u_dayTextureNightAlpha[${Re}]`:"1.0"}, +${f?`u_dayTextureDayAlpha[${Re}]`:"1.0"}, +${o?`u_dayTextureBrightness[${Re}]`:"0.0"}, + ${r?`u_dayTextureContrast[${Re}]`:"0.0"}, + ${s?`u_dayTextureHue[${Re}]`:"0.0"}, + ${a?`u_dayTextureSaturation[${Re}]`:"0.0"}, + ${c?`u_dayTextureOneOverGamma[${Re}]`:"0.0"}, + ${d?`u_dayTextureSplit[${Re}]`:"0.0"}, + ${b?`u_colorsToAlpha[${Re}]`:"vec4(0.0)"}, + nightBlend ); +`,L&&(Ie+=` color = czm_branchFreeTernary(texelUnclipped, cutoutAndColorResult, color); +`);Ie+=` return color; + }`,Se.sources.push(Ie),me.sources.push(f$e(J)),me.sources.push(d$e(S));let Ue=Jt.fromCache({context:t.context,vertexShaderSource:me,fragmentShaderSource:Se,attributeLocations:U.getAttributeLocations()});se=Ae[_e]=new u$e(i,_e,this.material,Ue,xe)}return n.surfaceShader=se,se.shaderProgram};Q7.prototype.destroy=function(){let e,t,n=this._shadersByTexturesFlags;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];if(!l(o))continue;for(e in o)o.hasOwnProperty(e)&&(t=o[e],l(t)&&t.shaderProgram.destroy())}return ue(this)};var gU=Q7;var m$e={NONE:-1,PARTIAL:0,FULL:1},mr=Object.freeze(m$e);function yU(e,t,n,i,o,r,s){this.provider=e,this.message=t,this.x=n,this.y=i,this.level=o,this.timesRetried=y(r,0),this.retry=!1,this.error=s}yU.reportError=function(e,t,n,i,o,r,s,a){let c=e;return l(e)?(c.provider=t,c.message=i,c.x=o,c.y=r,c.level=s,c.retry=!1,c.error=a,++c.timesRetried):c=new yU(t,i,o,r,s,0,a),l(n)&&n.numberOfListeners>0?n.raiseEvent(c):l(t)&&console.log(`An error occurred in "${t.constructor.name}": ${Np(i)}`),c};yU.reportSuccess=function(e){l(e)&&(e.timesRetried=-1)};var Ti=yU;var h$e={UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7},ui=Object.freeze(h$e);var p$e={START:0,LOADING:1,DONE:2,FAILED:3},Js=Object.freeze(p$e);var _$e={FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6},yo=Object.freeze(_$e);function Yo(){this.imagery=[],this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new re(0,0,1,1),this.terrainData=void 0,this.vertexArray=void 0,this.tileBoundingRegion=void 0,this.occludeePointInScaledSpace=new m,this.boundingVolumeSourceTile=void 0,this.boundingVolumeIsFromMesh=!1,this.terrainState=yo.UNLOADED,this.mesh=void 0,this.fill=void 0,this.pickBoundingSphere=new ae,this.surfaceShader=void 0,this.isClipped=!0,this.clippedByBoundaries=!1}Object.defineProperties(Yo.prototype,{eligibleForUnloading:{get:function(){let e=this.terrainState,n=!(e===yo.RECEIVING||e===yo.TRANSFORMING),i=this.imagery;for(let o=0,r=i.length;n&&o<r;++o){let s=i[o];n=!l(s.loadingImagery)||s.loadingImagery.state!==ui.TRANSITIONING}return n}},renderedMesh:{get:function(){if(l(this.vertexArray))return this.mesh;if(l(this.fill))return this.fill.mesh}}});var g$e=new he;function $7(e,t,n,i,o,r){let s=e.getExaggeratedPosition(i,o,r);if(l(t)&&t!==ne.SCENE3D){let c=n.ellipsoid.cartesianToCartographic(s,g$e);s=n.project(c,r),s=m.fromElements(s.z,s.x,s.y,r)}return s}var y$e=new m,A$e=new m,x$e=new m;Yo.prototype.pick=function(e,t,n,i,o){let r=this.renderedMesh;if(!l(r))return;let s=r.vertices,a=r.indices,c=r.encoding,u=a.length,f=Number.MAX_VALUE;for(let d=0;d<u;d+=3){let p=a[d],g=a[d+1],h=a[d+2],A=$7(c,t,n,s,p,y$e),x=$7(c,t,n,s,g,A$e),C=$7(c,t,n,s,h,x$e),T=Ji.rayTriangleParametric(e,A,x,C,i);l(T)&&T<f&&T>=0&&(f=T)}return f!==Number.MAX_VALUE?In.getPoint(e,f,o):void 0};Yo.prototype.freeResources=function(){l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=yo.UNLOADED,this.mesh=void 0,this.fill=this.fill&&this.fill.destroy();let e=this.imagery;for(let t=0,n=e.length;t<n;++t)e[t].freeResources();this.imagery.length=0,this.freeVertexArray()};Yo.prototype.freeVertexArray=function(){Yo._freeVertexArray(this.vertexArray),this.vertexArray=void 0,Yo._freeVertexArray(this.wireframeVertexArray),this.wireframeVertexArray=void 0};Yo.initialize=function(e,t,n){let i=e.data;l(i)||(i=e.data=new Yo),e.state===Js.START&&(C$e(e,t,n),e.state=Js.LOADING)};Yo.processStateMachine=function(e,t,n,i,o,r,s){Yo.initialize(e,n,i);let a=e.data;if(e.state===Js.LOADING&&T$e(e,t,n,i,o,r),s)return;let c=e.renderable;e.renderable=l(a.vertexArray);let u=a.terrainState===yo.READY;e.upsampledFromParent=l(a.terrainData)&&a.terrainData.wasCreatedByUpsampling();let f=a.processImagery(e,n,t);if(u&&f){let d=e._loadedCallbacks,p={};for(let g in d)d.hasOwnProperty(g)&&(d[g](e)||(p[g]=d[g]));e._loadedCallbacks=p,e.state=Js.DONE}c&&(e.renderable=!0)};Yo.prototype.processImagery=function(e,t,n,i){let o=e.data,r=e.upsampledFromParent,s=!1,a=!0,c=o.imagery,u,f;for(u=0,f=c.length;u<f;++u){let d=c[u];if(!l(d.loadingImagery)){r=!1;continue}if(d.loadingImagery.state===ui.PLACEHOLDER){let g=d.loadingImagery.imageryLayer;if(g.ready&&g.imageryProvider._ready){d.freeResources(),c.splice(u,1),g._createTileImagerySkeletons(e,t,u),--u,f=c.length;continue}else r=!1}let p=d.processStateMachine(e,n,i);a=a&&p,s=s||p||l(d.readyImagery),r=r&&l(d.loadingImagery)&&(d.loadingImagery.state===ui.FAILED||d.loadingImagery.state===ui.INVALID)}return e.upsampledFromParent=r,e.renderable=e.renderable&&(s||a),a};function Sme(e,t,n,i){let o=e.renderedMesh,r=o.vertices,s=o.encoding,a=r.length/s.stride,c=Dc.clone(s);c.hasGeodeticSurfaceNormals=t,c=Dc.clone(c);let u=c.stride,f=new Float32Array(a*u);t?s.addGeodeticSurfaceNormals(r,f,n):s.removeGeodeticSurfaceNormals(r,f),o.vertices=f,o.stride=u,o!==e.mesh?(Yo._freeVertexArray(e.fill.vertexArray),e.fill.vertexArray=Yo._createVertexArrayForMesh(i.context,o)):(Yo._freeVertexArray(e.vertexArray),e.vertexArray=Yo._createVertexArrayForMesh(i.context,o)),Yo._freeVertexArray(e.wireframeVertexArray),e.wireframeVertexArray=void 0}Yo.prototype.addGeodeticSurfaceNormals=function(e,t){Sme(this,!0,e,t)};Yo.prototype.removeGeodeticSurfaceNormals=function(e){Sme(this,!1,void 0,e)};Yo.prototype.updateExaggeration=function(e,t,n){let i=this,o=i.renderedMesh;if(o===void 0)return;let r=t.terrainExaggeration,s=t.terrainExaggerationRelativeHeight,a=r!==1,c=o.encoding,u=c.exaggeration!==r,f=c.exaggerationRelativeHeight!==s;if(u||f){if(u)if(a&&!c.hasGeodeticSurfaceNormals){let d=e.tilingScheme.ellipsoid;i.addGeodeticSurfaceNormals(d,t)}else!a&&c.hasGeodeticSurfaceNormals&&i.removeGeodeticSurfaceNormals(t);if(c.exaggeration=r,c.exaggerationRelativeHeight=s,n!==void 0){n._tileToUpdateHeights.push(e);let d=e.customData,p=d.length;for(let g=0;g<p;g++){let h=d[g];h.level=-1}}}};function C$e(e,t,n){let i=t.getTileDataAvailable(e.x,e.y,e.level);if(!l(i)&&l(e.parent)){let o=e.parent,r=o.data;l(r)&&l(r.terrainData)&&(i=r.terrainData.isChildAvailable(o.x,o.y,e.x,e.y))}i===!1&&(e.data.terrainState=yo.FAILED);for(let o=0,r=n.length;o<r;++o){let s=n.get(o);s.show&&s._createTileImagerySkeletons(e,t)}}function T$e(e,t,n,i,o,r){let s=e.data,a=e.parent;if(s.terrainState===yo.FAILED&&a!==void 0&&(a.data!==void 0&&a.data.terrainData!==void 0&&a.data.terrainData.canUpsample!==!1||Yo.processStateMachine(a,t,n,i,o,r,!0)),s.terrainState===yo.FAILED&&E$e(s,e,t,n,e.x,e.y,e.level),s.terrainState===yo.UNLOADED&&b$e(s,n,e.x,e.y,e.level),s.terrainState===yo.RECEIVED&&w$e(s,t,n,e.x,e.y,e.level),s.terrainState===yo.TRANSFORMED&&(v$e(s,t.context,n,e.x,e.y,e.level,r),s.updateExaggeration(e,t,o)),s.terrainState>=yo.RECEIVED&&s.waterMaskTexture===void 0&&n.hasWaterMask)if(s.terrainData.waterMask!==void 0)I$e(t.context,s);else{let u=s._findAncestorTileWithTerrainData(e);l(u)&&l(u.data.waterMaskTexture)&&(s.waterMaskTexture=u.data.waterMaskTexture,++s.waterMaskTexture.referenceCount,s._computeWaterMaskTranslationAndScale(e,u,s.waterMaskTranslationAndScale))}}function E$e(e,t,n,i,o,r,s){let a=t.parent;if(!a){t.state=Js.FAILED;return}let c=a.data.terrainData,u=a.x,f=a.y,d=a.level;if(!l(c))return;let p=c.upsample(i.tilingScheme,u,f,d,o,r,s);l(p)&&(e.terrainState=yo.RECEIVING,Promise.resolve(p).then(function(g){e.terrainData=g,e.terrainState=yo.RECEIVED}).catch(function(){e.terrainState=yo.FAILED}))}function b$e(e,t,n,i,o){function r(c){e.terrainData=c,e.terrainState=yo.RECEIVED,e.request=void 0}function s(c){if(e.request.state===ti.CANCELLED){e.terrainData=void 0,e.terrainState=yo.UNLOADED,e.request=void 0;return}e.terrainState=yo.FAILED,e.request=void 0;let u=`Failed to obtain terrain tile X: ${n} Y: ${i} Level: ${o}. Error message: "${c}"`;t._requestError=Ti.reportError(t._requestError,t,t.errorEvent,u,n,i,o),t._requestError.retry&&a()}function a(){let c=new Zo({throttle:!1,throttleByServer:!0,type:es.TERRAIN});e.request=c;let u=t.requestTileGeometry(n,i,o,c);l(u)?(e.terrainState=yo.RECEIVING,Promise.resolve(u).then(function(f){r(f)}).catch(function(f){s(f)})):(e.terrainState=yo.UNLOADED,e.request=void 0)}a()}var S$e={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0,throttle:!0};function w$e(e,t,n,i,o,r){let s=n.tilingScheme,a=S$e;a.tilingScheme=s,a.x=i,a.y=o,a.level=r,a.exaggeration=t.terrainExaggeration,a.exaggerationRelativeHeight=t.terrainExaggerationRelativeHeight,a.throttle=!0;let u=e.terrainData.createMesh(a);l(u)&&(e.terrainState=yo.TRANSFORMING,Promise.resolve(u).then(function(f){e.mesh=f,e.terrainState=yo.TRANSFORMED}).catch(function(){e.terrainState=yo.FAILED}))}Yo._createVertexArrayForMesh=function(e,t){let n=t.vertices,i=mt.createVertexBuffer({context:e,typedArray:n,usage:Fe.STATIC_DRAW}),o=t.encoding.getAttributes(i),r=t.indices.indexBuffers||{},s=r[e.id];if(!l(s)||s.isDestroyed()){let a=t.indices;s=mt.createIndexBuffer({context:e,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:Ve.fromSizeInBytes(a.BYTES_PER_ELEMENT)}),s.vertexArrayDestroyable=!1,s.referenceCount=1,r[e.id]=s,t.indices.indexBuffers=r}else++s.referenceCount;return new ri({context:e,attributes:o,indexBuffer:s})};Yo._freeVertexArray=function(e){if(l(e)){let t=e.indexBuffer;e.isDestroyed()||e.destroy(),l(t)&&!t.isDestroyed()&&l(t.referenceCount)&&(--t.referenceCount,t.referenceCount===0&&t.destroy())}};function v$e(e,t,n,i,o,r,s){e.vertexArray=Yo._createVertexArrayForMesh(t,e.mesh),e.terrainState=yo.READY,e.fill=e.fill&&e.fill.destroy(s)}function D$e(e){let t=e.cache.tile_waterMaskData;if(!l(t)){let n=Bt.create({context:e,pixelFormat:lt.LUMINANCE,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});n.referenceCount=1;let i=new dn({wrapS:Dn.CLAMP_TO_EDGE,wrapT:Dn.CLAMP_TO_EDGE,minificationFilter:ln.LINEAR,magnificationFilter:bi.LINEAR});t={allWaterTexture:n,sampler:i,destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function I$e(e,t){let n=t.terrainData.waterMask,i=D$e(e),o,r=n.length;if(r===1)if(n[0]!==0)o=i.allWaterTexture;else return;else{let s=Math.sqrt(r);o=Bt.create({context:e,pixelFormat:lt.LUMINANCE,pixelDatatype:Je.UNSIGNED_BYTE,source:{width:s,height:s,arrayBufferView:n},sampler:i.sampler,flipY:!1}),o.referenceCount=0}++o.referenceCount,t.waterMaskTexture=o,re.fromElements(0,0,1,1,t.waterMaskTranslationAndScale)}Yo.prototype._findAncestorTileWithTerrainData=function(e){let t=e.parent;for(;l(t)&&(!l(t.data)||!l(t.data.terrainData)||t.data.terrainData.wasCreatedByUpsampling());)t=t.parent;return t};Yo.prototype._computeWaterMaskTranslationAndScale=function(e,t,n){let i=t.rectangle,o=e.rectangle,r=o.width,s=o.height,a=r/i.width,c=s/i.height;return n.x=a*(o.west-i.west)/r,n.y=c*(o.south-i.south)/s,n.z=a,n.w=c,n};var Od=Yo;function sy(e){if(e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,oe.WGS84),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,1),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1),this._projection=new Pi(this._ellipsoid),l(e.rectangleSouthwestInMeters)&&l(e.rectangleNortheastInMeters))this._rectangleSouthwestInMeters=e.rectangleSouthwestInMeters,this._rectangleNortheastInMeters=e.rectangleNortheastInMeters;else{let i=this._ellipsoid.maximumRadius*Math.PI;this._rectangleSouthwestInMeters=new H(-i,-i),this._rectangleNortheastInMeters=new H(i,i)}let t=this._projection.unproject(this._rectangleSouthwestInMeters),n=this._projection.unproject(this._rectangleNortheastInMeters);this._rectangle=new le(t.longitude,t.latitude,n.longitude,n.latitude)}Object.defineProperties(sy.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});sy.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};sy.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};sy.prototype.rectangleToNativeRectangle=function(e,t){let n=this._projection,i=n.project(le.southwest(e)),o=n.project(le.northeast(e));return l(t)?(t.west=i.x,t.south=i.y,t.east=o.x,t.north=o.y,t):new le(i.x,i.y,o.x,o.y)};sy.prototype.tileXYToNativeRectangle=function(e,t,n,i){let o=this.getNumberOfXTilesAtLevel(n),r=this.getNumberOfYTilesAtLevel(n),s=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/o,a=this._rectangleSouthwestInMeters.x+e*s,c=this._rectangleSouthwestInMeters.x+(e+1)*s,u=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/r,f=this._rectangleNortheastInMeters.y-t*u,d=this._rectangleNortheastInMeters.y-(t+1)*u;return l(i)?(i.west=a,i.south=d,i.east=c,i.north=f,i):new le(a,d,c,f)};sy.prototype.tileXYToRectangle=function(e,t,n,i){let o=this.tileXYToNativeRectangle(e,t,n,i),r=this._projection,s=r.unproject(new H(o.west,o.south)),a=r.unproject(new H(o.east,o.north));return o.west=s.longitude,o.south=s.latitude,o.east=a.longitude,o.north=a.latitude,o};sy.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!le.contains(i,e))return;let o=this.getNumberOfXTilesAtLevel(t),r=this.getNumberOfYTilesAtLevel(t),a=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/o,u=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/r,d=this._projection.project(e),p=d.x-this._rectangleSouthwestInMeters.x,g=this._rectangleNortheastInMeters.y-d.y,h=p/a|0;h>=o&&(h=o-1);let A=g/u|0;return A>=r&&(A=r-1),l(n)?(n.x=h,n.y=A,n):new H(h,A)};var Fr=sy;var ej,wme="AAPKd815e334cb774973b7245e23a67f4d08Js7A8e8xvfBpgnZIzp1jbL3FWJTmx7AKG8wa87OwDcWEu4CxQCNiydpPbGpALiTf",UE={};UE.defaultAccessToken=wme;UE.defaultWorldImageryServer=new we({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"});UE.defaultWorldHillshadeServer=new we({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer"});UE.defaultWorldOceanServer=new we({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer"});UE.getDefaultTokenCredit=function(e){if(e===wme){if(!l(ej)){let t='<b> This application is using a default ArcGIS access token. Please assign <i>Cesium.ArcGisMapService.defaultAccessToken</i> with an API key from your ArcGIS Developer account before using the ArcGIS tile services. You can sign up for a free ArcGIS Developer account at <a href="https://developers.arcgis.com/">https://developers.arcgis.com/</a>.</b>';ej=new It(t,!0)}return ej}};var df=UE;function tj(e){e=y(e,y.EMPTY_OBJECT),this._pixelsToCheck=e.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;let t=we.createIfNeeded(e.missingImageUrl),n=this;function i(r){l(r.blob)&&(n._missingImageByteLength=r.blob.size);let s=Jd(r);if(e.disableCheckIfAllPixelsAreTransparent){let a=!0,c=r.width,u=e.pixelsToCheck;for(let f=0,d=u.length;a&&f<d;++f){let p=u[f],g=p.x*4+p.y*c;s[g+3]>0&&(a=!1)}a&&(s=void 0)}n._missingImagePixels=s,n._isReady=!0}function o(){n._missingImagePixels=void 0,n._isReady=!0}t.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}).then(i).catch(o)}tj.prototype.isReady=function(){return this._isReady};tj.prototype.shouldDiscardImage=function(e){let t=this._pixelsToCheck,n=this._missingImagePixels;if(!l(n)||l(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;let i=Jd(e),o=e.width;for(let r=0,s=t.length;r<s;++r){let a=t[r],c=a.x*4+a.y*o;for(let u=0;u<4;++u){let f=c+u;if(i[f]!==n[f])return!1}}return!0};var AU=tj;function nj(){this.name=void 0,this.description=void 0,this.position=void 0,this.data=void 0,this.imageryLayer=void 0}nj.prototype.configureNameFromProperties=function(e){let t=10,n;for(let i in e)if(e.hasOwnProperty(i)&&e[i]){let o=i.toLowerCase();t>1&&o==="name"?(t=1,n=i):t>2&&o==="title"?(t=2,n=i):t>3&&/name/i.test(i)?(t=3,n=i):t>4&&/title/i.test(i)&&(t=4,n=i)}l(n)&&(this.name=e[n])};nj.prototype.configureDescriptionFromProperties=function(e){function t(n){let i='<table class="cesium-infoBox-defaultTable">';for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];l(r)&&(typeof r=="object"?i+=`<tr><td>${o}</td><td>${t(r)}</td></tr>`:i+=`<tr><td>${o}</td><td>${r}</td></tr>`)}return i+="</table>",i}this.description=t(e)};var eh=nj;function VE(){fe.throwInstantiationError()}Object.defineProperties(VE.prototype,{ready:{get:fe.throwInstantiationError},readyPromise:{get:fe.throwInstantiationError},rectangle:{get:fe.throwInstantiationError},tileWidth:{get:fe.throwInstantiationError},tileHeight:{get:fe.throwInstantiationError},maximumLevel:{get:fe.throwInstantiationError},minimumLevel:{get:fe.throwInstantiationError},tilingScheme:{get:fe.throwInstantiationError},tileDiscardPolicy:{get:fe.throwInstantiationError},errorEvent:{get:fe.throwInstantiationError},credit:{get:fe.throwInstantiationError},proxy:{get:fe.throwInstantiationError},hasAlphaChannel:{get:fe.throwInstantiationError},defaultAlpha:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultNightAlpha:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultDayAlpha:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultBrightness:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultContrast:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultHue:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultSaturation:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultGamma:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultMinificationFilter:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},defaultMagnificationFilter:{get:fe.throwInstantiationError,set:fe.throwInstantiationError}});VE.prototype.getTileCredits=function(e,t,n){fe.throwInstantiationError()};VE.prototype.requestImage=function(e,t,n,i){fe.throwInstantiationError()};VE.prototype.pickFeatures=function(e,t,n,i,o){fe.throwInstantiationError()};var P$e=/\.ktx2$/i;VE.loadImage=function(e,t){let n=we.createIfNeeded(t);return P$e.test(n.url)?Sl(n):l(e)&&l(e.tileDiscardPolicy)?n.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):n.fetchImage({preferImageBitmap:!0,flipY:!0})};var dl=VE;var O$e={SATELLITE:1,OCEANS:2,HILLSHADE:3},th=Object.freeze(O$e);function ij(e){this.useTiles=y(e.usePreCachedTilesIfAvailable,!0);let t=e.ellipsoid;this.tilingScheme=y(e.tilingScheme,new Wi({ellipsoid:t})),this.rectangle=y(e.rectangle,this.tilingScheme.rectangle),this.ellipsoid=t;let n=e.credit;typeof n=="string"&&(n=new It(n)),this.credit=n,this.tileCredits=void 0,this.tileDiscardPolicy=e.tileDiscardPolicy,this.tileWidth=y(e.tileWidth,256),this.tileHeight=y(e.tileHeight,256),this.maximumLevel=e.maximumLevel}ij.prototype.build=function(e){e._useTiles=this.useTiles,e._tilingScheme=this.tilingScheme,e._rectangle=this.rectangle,e._credit=this.credit,e._tileCredits=this.tileCredits,e._tileDiscardPolicy=this.tileDiscardPolicy,e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,this.useTiles&&!l(this.tileDiscardPolicy)&&(e._tileDiscardPolicy=new AU({missingImageUrl:Dme(e,0,0,this.maximumLevel).url,pixelsToCheck:[new H(0,0),new H(200,20),new H(20,200),new H(80,110),new H(160,130)],disableCheckIfAllPixelsAreTransparent:!0})),e._ready=!0};function M$e(e,t){let n=e.tileInfo;if(!l(n))t.useTiles=!1;else{if(t.tileWidth=n.rows,t.tileHeight=n.cols,n.spatialReference.wkid===102100||n.spatialReference.wkid===102113)t.tilingScheme=new Fr({ellipsoid:t.ellipsoid});else if(e.tileInfo.spatialReference.wkid===4326)t.tilingScheme=new Wi({ellipsoid:t.ellipsoid});else{let i=`Tile spatial reference WKID ${e.tileInfo.spatialReference.wkid} is not supported.`;throw new de(i)}if(t.maximumLevel=e.tileInfo.lods.length-1,l(e.fullExtent)){if(l(e.fullExtent.spatialReference)&&l(e.fullExtent.spatialReference.wkid))if(e.fullExtent.spatialReference.wkid===102100||e.fullExtent.spatialReference.wkid===102113){let i=new Pi,o=e.fullExtent,r=i.unproject(new m(Math.max(o.xmin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.max(o.ymin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0)),s=i.unproject(new m(Math.min(o.xmax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.min(o.ymax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0));t.rectangle=new le(r.longitude,r.latitude,s.longitude,s.latitude)}else if(e.fullExtent.spatialReference.wkid===4326)t.rectangle=le.fromDegrees(e.fullExtent.xmin,e.fullExtent.ymin,e.fullExtent.xmax,e.fullExtent.ymax);else{let i=`fullExtent.spatialReference WKID ${e.fullExtent.spatialReference.wkid} is not supported.`;throw new de(i)}}else t.rectangle=t.tilingScheme.rectangle;t.useTiles=!0}l(e.copyrightText)&&e.copyrightText.length>0&&(l(t.credit)?t.tileCredits=[new It(e.copyrightText)]:t.credit=new It(e.copyrightText))}function R$e(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i+=`: ${t.message}`),Ti.reportError(void 0,n,l(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new de(i)}async function vme(e,t,n){let i=e.getDerivedResource({queryParameters:{f:"json"}});try{let o=await i.fetchJson();M$e(o,t)}catch(o){R$e(e,o,n)}}function nh(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new Wi({ellipsoid:e.ellipsoid})),this._useTiles=y(e.usePreCachedTilesIfAvailable,!0),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._layers=e.layers,this._credit=e.credit,this._tileCredits=void 0;let t=e.credit;if(typeof t=="string"&&(t=new It(t)),this.enablePickFeatures=y(e.enablePickFeatures,!0),this._errorEvent=new ge,this._ready=!1,l(e.url)){$("ArcGisMapServerImageryProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGisMapServerImageryProvider.fromUrl instead.");let n=we.createIfNeeded(e.url);n.appendForwardSlash(),this._tileDiscardPolicy=e.tileDiscardPolicy,l(e.token)&&n.setQueryParameters({token:e.token}),this._resource=n;let i=new ij(e);i.useTiles?this._readyPromise=vme(n,i,this).then(()=>(i.build(this),!0)):(i.build(this),this._readyPromise=Promise.resolve(!0))}}nh.fromBasemapType=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n,i,o;switch(e){case th.SATELLITE:{n=y(t.token,df.defaultAccessToken),i=we.createIfNeeded(y(t.url,df.defaultWorldImageryServer)),i.appendForwardSlash();let r=df.getDefaultTokenCredit(n);l(r)&&(o=It.clone(r))}break;case th.OCEANS:{n=y(t.token,df.defaultAccessToken),i=we.createIfNeeded(y(t.url,df.defaultWorldOceanServer)),i.appendForwardSlash();let r=df.getDefaultTokenCredit(n);l(r)&&(o=It.clone(r))}break;case th.HILLSHADE:{n=y(t.token,df.defaultAccessToken),i=we.createIfNeeded(y(t.url,df.defaultWorldHillshadeServer)),i.appendForwardSlash();let r=df.getDefaultTokenCredit(n);l(r)&&(o=It.clone(r))}break;default:}return nh.fromUrl(i,{...t,token:n,credit:o,usePreCachedTilesIfAvailable:!0})};function Dme(e,t,n,i,o){let r;if(e._useTiles)r=e._resource.getDerivedResource({url:`tile/${i}/${n}/${t}`,request:o});else{let s=e._tilingScheme.tileXYToNativeRectangle(t,n,i),c={bbox:`${s.west},${s.south},${s.east},${s.north}`,size:`${e._tileWidth},${e._tileHeight}`,format:"png32",transparent:!0,f:"image"};e._tilingScheme.projection instanceof Di?(c.bboxSR=4326,c.imageSR=4326):(c.bboxSR=3857,c.imageSR=3857),e.layers&&(c.layers=`show:${e.layers}`),r=e._resource.getDerivedResource({url:"export",request:o,queryParameters:c})}return r}Object.defineProperties(nh.prototype,{url:{get:function(){return this._resource._url}},token:{get:function(){return this._resource.queryParameters.token}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("ArcGisMapServerImageryProvider.ready","ArcGisMapServerImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGisMapServerImageryProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("ArcGisMapServerImageryProvider.readyPromise","ArcGisMapServerImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGisMapServerImageryProvider.fromUrl instead."),this._readyPromise}},credit:{get:function(){return this._credit}},usingPrecachedTiles:{get:function(){return this._useTiles}},hasAlphaChannel:{get:function(){return!0}},layers:{get:function(){return this._layers}},defaultAlpha:{get:function(){return $("ArcGisMapServerImageryProvider.defaultAlpha","ArcGisMapServerImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("ArcGisMapServerImageryProvider.defaultAlpha","ArcGisMapServerImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("ArcGisMapServerImageryProvider.defaultNightAlpha","ArcGisMapServerImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("ArcGisMapServerImageryProvider.defaultNightAlpha","ArcGisMapServerImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("ArcGisMapServerImageryProvider.defaultDayAlpha","ArcGisMapServerImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("ArcGisMapServerImageryProvider.defaultDayAlpha","ArcGisMapServerImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("ArcGisMapServerImageryProvider.defaultBrightness","ArcGisMapServerImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("ArcGisMapServerImageryProvider.defaultBrightness","ArcGisMapServerImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("ArcGisMapServerImageryProvider.defaultContrast","ArcGisMapServerImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("ArcGisMapServerImageryProvider.defaultContrast","ArcGisMapServerImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("ArcGisMapServerImageryProvider.defaultHue","ArcGisMapServerImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("ArcGisMapServerImageryProvider.defaultHue","ArcGisMapServerImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("ArcGisMapServerImageryProvider.defaultSaturation","ArcGisMapServerImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("ArcGisMapServerImageryProvider.defaultSaturation","ArcGisMapServerImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("ArcGisMapServerImageryProvider.defaultGamma","ArcGisMapServerImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("ArcGisMapServerImageryProvider.defaultGamma","ArcGisMapServerImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("ArcGisMapServerImageryProvider.defaultMinificationFilter","ArcGisMapServerImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("ArcGisMapServerImageryProvider.defaultMinificationFilter","ArcGisMapServerImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("ArcGisMapServerImageryProvider.defaultMagnificationFilter","ArcGisMapServerImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("ArcGisMapServerImageryProvider.defaultMagnificationFilter","ArcGisMapServerImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});nh.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&n.setQueryParameters({token:t.token});let i=new nh(t);i._resource=n;let o=new ij(t);return y(t.usePreCachedTilesIfAvailable,!0)&&await vme(n,o),o.build(i),i._readyPromise=Promise.resolve(!0),i};nh.prototype.getTileCredits=function(e,t,n){return this._tileCredits};nh.prototype.requestImage=function(e,t,n,i){return dl.loadImage(this,Dme(this,e,t,n,i))};nh.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures)return;let r=this._tilingScheme.tileXYToNativeRectangle(e,t,n),s,a,c;if(this._tilingScheme.projection instanceof Di)s=P.toDegrees(i),a=P.toDegrees(o),c="4326";else{let p=this._tilingScheme.projection.project(new he(i,o,0));s=p.x,a=p.y,c="3857"}let u="visible";l(this._layers)&&(u+=`:${this._layers}`);let f={f:"json",tolerance:2,geometryType:"esriGeometryPoint",geometry:`${s},${a}`,mapExtent:`${r.west},${r.south},${r.east},${r.north}`,imageDisplay:`${this._tileWidth},${this._tileHeight},96`,sr:c,layers:u};return this._resource.getDerivedResource({url:"identify",queryParameters:f}).fetchJson().then(function(p){let g=[],h=p.results;if(!l(h))return g;for(let A=0;A<h.length;++A){let x=h[A],C=new eh;if(C.data=x,C.name=x.value,C.properties=x.attributes,C.configureDescriptionFromProperties(x.attributes),x.geometryType==="esriGeometryPoint"&&x.geometry){let T=x.geometry.spatialReference&&x.geometry.spatialReference.wkid?x.geometry.spatialReference.wkid:4326;if(T===4326||T===4283)C.position=he.fromDegrees(x.geometry.x,x.geometry.y,x.geometry.z);else if(T===102100||T===900913||T===3857){let E=new Pi;C.position=E.unproject(new m(x.geometry.x,x.geometry.y,x.geometry.z))}}g.push(C)}return g})};nh._metadataCache={};var Up=nh;var B$e={AERIAL:"Aerial",AERIAL_WITH_LABELS:"AerialWithLabels",AERIAL_WITH_LABELS_ON_DEMAND:"AerialWithLabelsOnDemand",ROAD:"Road",ROAD_ON_DEMAND:"RoadOnDemand",CANVAS_DARK:"CanvasDark",CANVAS_LIGHT:"CanvasLight",CANVAS_GRAY:"CanvasGray",ORDNANCE_SURVEY:"OrdnanceSurvey",COLLINS_BART:"CollinsBart"},aD=Object.freeze(B$e);function cD(e){}cD.prototype.isReady=function(){return!0};cD.prototype.shouldDiscardImage=function(e){return cD.EMPTY_IMAGE===e};var xU;Object.defineProperties(cD,{EMPTY_IMAGE:{get:function(){return l(xU)||(xU=new Image,xU.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),xU}}});var lD=cD;function oj(e){this.tileWidth=void 0,this.tileHeight=void 0,this.maximumLevel=void 0,this.imageUrlSubdomains=void 0,this.imageUrlTemplate=void 0,this.attributionList=void 0}oj.prototype.build=function(e){e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,e._imageUrlSubdomains=this.imageUrlSubdomains,e._imageUrlTemplate=this.imageUrlTemplate;let t=e._attributionList=this.attributionList;t||(t=[]),e._attributionList=t;for(let n=0,i=t.length;n<i;++n){let o=t[n];if(o.credit instanceof It)break;o.credit=new It(o.attribution);let r=o.coverageAreas;for(let s=0,a=o.coverageAreas.length;s<a;++s){let c=r[s],u=c.bbox;c.bbox=new le(P.toRadians(u[1]),P.toRadians(u[0]),P.toRadians(u[3]),P.toRadians(u[2]))}}e._ready=!0};function L$e(e,t){if(e.resourceSets.length!==1)throw new de("metadata does not specify one resource in resourceSets");let n=e.resourceSets[0].resources[0];t.tileWidth=n.imageWidth,t.tileHeight=n.imageHeight,t.maximumLevel=n.zoomMax-1,t.imageUrlSubdomains=n.imageUrlSubdomains,t.imageUrlTemplate=n.imageUrl,t.attributionList=n.imageryProviders}function N$e(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i+=`: ${t.message}`),Ti.reportError(void 0,n,l(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new de(i)}async function Ime(e,t,n){let i=e.url,o=ss._metadataCache[i];l(o)||(o=e.fetchJsonp("jsonp"),ss._metadataCache[i]=o);try{let r=await o;return L$e(r,t)}catch(r){N$e(e,r,n)}}function ss(e){if(e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._mapStyle=y(e.mapStyle,aD.AERIAL),this._culture=y(e.culture,""),this._key=e.key,this._tileDiscardPolicy=e.tileDiscardPolicy,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new lD),this._proxy=e.proxy,this._credit=new It(`<a href="https://www.microsoft.com/en-us/maps/product/enduserterms"><img src="${ss.logoUrl}" title="Bing Imagery"/></a>`),this._tilingScheme=new Fr({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:e.ellipsoid}),this._tileWidth=void 0,this._tileHeight=void 0,this._maximumLevel=void 0,this._imageUrlTemplate=void 0,this._imageUrlSubdomains=void 0,this._attributionList=void 0,this._errorEvent=new ge,this._ready=!1,l(e.url)){$("BingMapsImageryProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use BingMapsImageryProvider.fromUrl instead.");let t=e.tileProtocol;l(t)?t.length>0&&t[t.length-1]===":"&&(t=t.substr(0,t.length-1)):t=document.location.protocol==="http:"?"http":"https";let n=we.createIfNeeded(e.url);this._resource=n,n.appendForwardSlash();let i=n.getDerivedResource({url:`REST/v1/Imagery/Metadata/${this._mapStyle}`,queryParameters:{incl:"ImageryProviders",key:e.key,uriScheme:t}}),o=new oj(e);this._readyPromise=Ime(i,o,this).then(()=>(o.build(this),!0))}}Object.defineProperties(ss.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},key:{get:function(){return this._key}},mapStyle:{get:function(){return this._mapStyle}},culture:{get:function(){return this._culture}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("BingMapsImageryProvider.ready","BingMapsImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use BingMapsImageryProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("BingMapsImageryProvider.readyPromise","BingMapsImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use BingMapsImageryProvider.fromUrl instead."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}},defaultAlpha:{get:function(){return $("BingMapsImageryProvider.defaultAlpha","BingMapsImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("BingMapsImageryProvider.defaultAlpha","BingMapsImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("BingMapsImageryProvider.defaultNightAlpha","BingMapsImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("BingMapsImageryProvider.defaultNightAlpha","BingMapsImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("BingMapsImageryProvider.defaultDayAlpha","BingMapsImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("BingMapsImageryProvider.defaultDayAlpha","BingMapsImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("BingMapsImageryProvider.defaultBrightness","BingMapsImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("BingMapsImageryProvider.defaultBrightness","BingMapsImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("BingMapsImageryProvider.defaultContrast","BingMapsImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("BingMapsImageryProvider.defaultContrast","BingMapsImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("BingMapsImageryProvider.defaultHue","BingMapsImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("BingMapsImageryProvider.defaultHue","BingMapsImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("BingMapsImageryProvider.defaultSaturation","BingMapsImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("BingMapsImageryProvider.defaultSaturation","BingMapsImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("BingMapsImageryProvider.defaultGamma","BingMapsImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("BingMapsImageryProvider.defaultGamma","BingMapsImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("BingMapsImageryProvider.defaultMinificationFilter","BingMapsImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("BingMapsImageryProvider.defaultMinificationFilter","BingMapsImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("BingMapsImageryProvider.defaultMagnificationFilter","BingMapsImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("BingMapsImageryProvider.defaultMagnificationFilter","BingMapsImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});ss.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.tileProtocol;l(n)?n.length>0&&n[n.length-1]===":"&&(n=n.substr(0,n.length-1)):n=document.location.protocol==="http:"?"http":"https";let i=y(t.mapStyle,aD.AERIAL),o=we.createIfNeeded(e);o.appendForwardSlash();let r=o.getDerivedResource({url:`REST/v1/Imagery/Metadata/${i}`,queryParameters:{incl:"ImageryProviders",key:t.key,uriScheme:n}}),s=new ss(t);s._resource=o;let a=new oj(t);return await Ime(r,a),a.build(s),s._readyPromise=Promise.resolve(!0),s};var F$e=new le;ss.prototype.getTileCredits=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(e,t,n,F$e);return k$e(this._attributionList,n,i)};ss.prototype.requestImage=function(e,t,n,i){let o=dl.loadImage(this,U$e(this,e,t,n,i));if(l(o))return o.catch(function(r){return l(r.blob)&&r.blob.size===0?lD.EMPTY_IMAGE:Promise.reject(r)})};ss.prototype.pickFeatures=function(e,t,n,i,o){};ss.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;e&r&&(s|=1),t&r&&(s|=2),i+=s}return i};ss.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];s&1&&(t|=r),s&2&&(n|=r)}return{x:t,y:n,level:i}};ss._logoUrl=void 0;Object.defineProperties(ss,{logoUrl:{get:function(){return l(ss._logoUrl)||(ss._logoUrl=en("Assets/Images/bing_maps_credit.png")),ss._logoUrl},set:function(e){ss._logoUrl=e}}});function U$e(e,t,n,i,o){let r=e._imageUrlTemplate,s=e._imageUrlSubdomains,a=(t+n+i)%s.length;return e._resource.getDerivedResource({url:r,request:o,templateValues:{quadkey:ss.tileXYToQuadKey(t,n,i),subdomain:s[a],culture:e._culture},queryParameters:{n:"z"}})}var V$e=new le;function k$e(e,t,n){++t;let i=[];for(let o=0,r=e.length;o<r;++o){let s=e[o],a=s.coverageAreas,c=!1;for(let u=0,f=s.coverageAreas.length;!c&&u<f;++u){let d=a[u];if(t>=d.zoomMin&&t<=d.zoomMax){let p=le.intersection(n,d.bbox,V$e);l(p)&&(c=!0)}}c&&i.push(s.credit)}return i}ss._metadataCache={};var uD=ss;var Pme=/{[^}]+}/g,aj={x:G$e,y:j$e,z:X$e,s:K$e,reverseX:W$e,reverseY:Y$e,reverseZ:q$e,westDegrees:J$e,southDegrees:Z$e,eastDegrees:Q$e,northDegrees:$$e,westProjected:eet,southProjected:tet,eastProjected:net,northProjected:iet,width:oet,height:ret},Ome=gt(aj,{i:set,j:aet,reverseI:cet,reverseJ:uet,longitudeDegrees:det,latitudeDegrees:met,longitudeProjected:het,latitudeProjected:pet,format:get});function wA(e){if(e=y(e,y.EMPTY_OBJECT),this._errorEvent=new ge,l(e.then)){this._reinitialize(e);return}let t=we.createIfNeeded(e.url),n=we.createIfNeeded(e.pickFeaturesUrl);this._resource=t,this._urlSchemeZeroPadding=e.urlSchemeZeroPadding,this._getFeatureInfoFormats=e.getFeatureInfoFormats,this._pickFeaturesResource=n;let i=e.subdomains;Array.isArray(i)?i=i.slice():l(i)&&i.length>0?i=i.split(""):i=["a","b","c"],this._subdomains=i,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new Fr({ellipsoid:e.ellipsoid})),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._rectangle=le.intersection(this._rectangle,this._tilingScheme.rectangle),this._tileDiscardPolicy=e.tileDiscardPolicy;let o=e.credit;typeof o=="string"&&(o=new It(o)),this._credit=o,this._hasAlphaChannel=y(e.hasAlphaChannel,!0);let r=e.customTags,s=gt(aj,r),a=gt(Ome,r);this._tags=s,this._pickFeaturesTags=a,this._readyPromise=Promise.resolve(!0),this._ready=!0,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this.enablePickFeatures=y(e.enablePickFeatures,!0)}Object.defineProperties(wA.prototype,{url:{get:function(){return this._resource.url}},urlSchemeZeroPadding:{get:function(){return this._urlSchemeZeroPadding}},pickFeaturesUrl:{get:function(){return this._pickFeaturesResource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("UrlTemplateImageryProvider.ready","UrlTemplateImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._ready&&l(this._resource)}},readyPromise:{get:function(){return $("UrlTemplateImageryProvider.readyPromise","UrlTemplateImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return this._hasAlphaChannel}},defaultAlpha:{get:function(){return $("UrlTemplateImageryProvider.defaultAlpha","UrlTemplateImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("UrlTemplateImageryProvider.defaultAlpha","UrlTemplateImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("UrlTemplateImageryProvider.defaultNightAlpha","UrlTemplateImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("UrlTemplateImageryProvider.defaultNightAlpha","UrlTemplateImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("UrlTemplateImageryProvider.defaultDayAlpha","UrlTemplateImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("UrlTemplateImageryProvider.defaultDayAlpha","UrlTemplateImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("UrlTemplateImageryProvider.defaultBrightness","UrlTemplateImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("UrlTemplateImageryProvider.defaultBrightness","UrlTemplateImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("UrlTemplateImageryProvider.defaultContrast","UrlTemplateImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("UrlTemplateImageryProvider.defaultContrast","UrlTemplateImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("UrlTemplateImageryProvider.defaultHue","UrlTemplateImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("UrlTemplateImageryProvider.defaultHue","UrlTemplateImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("UrlTemplateImageryProvider.defaultSaturation","UrlTemplateImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("UrlTemplateImageryProvider.defaultSaturation","UrlTemplateImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("UrlTemplateImageryProvider.defaultGamma","UrlTemplateImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("UrlTemplateImageryProvider.defaultGamma","UrlTemplateImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("UrlTemplateImageryProvider.defaultMinificationFilter","UrlTemplateImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("UrlTemplateImageryProvider.defaultMinificationFilter","UrlTemplateImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("UrlTemplateImageryProvider.defaultMagnificationFilter","UrlTemplateImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("UrlTemplateImageryProvider.defaultMagnificationFilter","UrlTemplateImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});wA.prototype.reinitialize=function(e){return $("UrlTemplateImageryProvider.reinitialize","UrlTemplateImageryProvider.reinitialize was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._reinitialize(e)};wA.prototype._reinitialize=function(e){let t=this;t._readyPromise=Promise.resolve(e).then(function(n){let i=n.customTags,o=gt(aj,i),r=gt(Ome,i),s=we.createIfNeeded(n.url),a=we.createIfNeeded(n.pickFeaturesUrl);t.enablePickFeatures=y(n.enablePickFeatures,t.enablePickFeatures),t._urlSchemeZeroPadding=y(n.urlSchemeZeroPadding,t.urlSchemeZeroPadding),t._tileDiscardPolicy=n.tileDiscardPolicy,t._getFeatureInfoFormats=n.getFeatureInfoFormats,t._subdomains=n.subdomains,Array.isArray(t._subdomains)?t._subdomains=t._subdomains.slice():l(t._subdomains)&&t._subdomains.length>0?t._subdomains=t._subdomains.split(""):t._subdomains=["a","b","c"],t._tileWidth=y(n.tileWidth,256),t._tileHeight=y(n.tileHeight,256),t._minimumLevel=y(n.minimumLevel,0),t._maximumLevel=n.maximumLevel,t._tilingScheme=y(n.tilingScheme,new Fr({ellipsoid:n.ellipsoid})),t._rectangle=y(n.rectangle,t._tilingScheme.rectangle),t._rectangle=le.intersection(t._rectangle,t._tilingScheme.rectangle),t._hasAlphaChannel=y(n.hasAlphaChannel,!0);let c=n.credit;return typeof c=="string"&&(c=new It(c)),t._credit=c,t._resource=s,t._tags=o,t._pickFeaturesResource=a,t._pickFeaturesTags=r,t._ready=!0,!0})};wA.prototype.getTileCredits=function(e,t,n){};wA.prototype.requestImage=function(e,t,n,i){return dl.loadImage(this,z$e(this,e,t,n,i))};wA.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures||!l(this._pickFeaturesResource)||this._getFeatureInfoFormats.length===0)return;let r=0,s=this;function a(u,f){return u.callback(f)}function c(){if(r>=s._getFeatureInfoFormats.length)return Promise.resolve([]);let u=s._getFeatureInfoFormats[r],f=H$e(s,e,t,n,i,o,u.format);return++r,u.type==="json"?f.fetchJson().then(u.callback).catch(c):u.type==="xml"?f.fetchXML().then(u.callback).catch(c):u.type==="text"||u.type==="html"?f.fetchText().then(u.callback).catch(c):f.fetch({responseType:u.format}).then(a.bind(void 0,u)).catch(c)}return c()};var CU=!1,au=new le,TU=!1,fD=new le;function z$e(e,t,n,i,o){CU=!1,TU=!1;let r=e._resource,s=r.getUrlComponent(!0),a=e._tags,c={},u=s.match(Pme);return l(u)&&u.forEach(function(f){let d=f.substring(1,f.length-1);l(a[d])&&(c[d]=a[d](e,t,n,i))}),r.getDerivedResource({request:o,templateValues:c})}var rj=!1,zE=new H,sj=!1;function H$e(e,t,n,i,o,r,s){CU=!1,TU=!1,rj=!1,sj=!1;let a=e._pickFeaturesResource,c=a.getUrlComponent(!0),u=e._pickFeaturesTags,f={},d=c.match(Pme);return l(d)&&d.forEach(function(p){let g=p.substring(1,p.length-1);l(u[g])&&(f[g]=u[g](e,t,n,i,o,r,s))}),a.getDerivedResource({templateValues:f})}function HE(e,t,n){if(e&&e.urlSchemeZeroPadding&&e.urlSchemeZeroPadding.hasOwnProperty(t)){let i=e.urlSchemeZeroPadding[t];if(typeof i=="string"){let o=i.length;o>1&&(n=n.length>=o?n:new Array(o-n.toString().length+1).join("0")+n)}}return n}function G$e(e,t,n,i){return HE(e,"{x}",t)}function W$e(e,t,n,i){let o=e.tilingScheme.getNumberOfXTilesAtLevel(i)-t-1;return HE(e,"{reverseX}",o)}function j$e(e,t,n,i){return HE(e,"{y}",n)}function Y$e(e,t,n,i){let o=e.tilingScheme.getNumberOfYTilesAtLevel(i)-n-1;return HE(e,"{reverseY}",o)}function q$e(e,t,n,i){let o=e.maximumLevel,r=l(o)&&i<o?o-i-1:i;return HE(e,"{reverseZ}",r)}function X$e(e,t,n,i){return HE(e,"{z}",i)}function K$e(e,t,n,i){let o=(t+n+i)%e._subdomains.length;return e._subdomains[o]}function EU(e,t,n,i){CU||(e.tilingScheme.tileXYToRectangle(t,n,i,au),au.west=P.toDegrees(au.west),au.south=P.toDegrees(au.south),au.east=P.toDegrees(au.east),au.north=P.toDegrees(au.north),CU=!0)}function J$e(e,t,n,i){return EU(e,t,n,i),au.west}function Z$e(e,t,n,i){return EU(e,t,n,i),au.south}function Q$e(e,t,n,i){return EU(e,t,n,i),au.east}function $$e(e,t,n,i){return EU(e,t,n,i),au.north}function bU(e,t,n,i){TU||(e.tilingScheme.tileXYToNativeRectangle(t,n,i,fD),TU=!0)}function eet(e,t,n,i){return bU(e,t,n,i),fD.west}function tet(e,t,n,i){return bU(e,t,n,i),fD.south}function net(e,t,n,i){return bU(e,t,n,i),fD.east}function iet(e,t,n,i){return bU(e,t,n,i),fD.north}function oet(e,t,n,i){return e.tileWidth}function ret(e,t,n,i){return e.tileHeight}function set(e,t,n,i,o,r,s){return SU(e,t,n,i,o,r),zE.x}function aet(e,t,n,i,o,r,s){return SU(e,t,n,i,o,r),zE.y}function cet(e,t,n,i,o,r,s){return SU(e,t,n,i,o,r),e.tileWidth-zE.x-1}function uet(e,t,n,i,o,r,s){return SU(e,t,n,i,o,r),e.tileHeight-zE.y-1}var fet=new le,kE=new m;function SU(e,t,n,i,o,r,s){if(rj)return;cj(e,t,n,i,o,r);let a=kE,c=e.tilingScheme.tileXYToNativeRectangle(t,n,i,fet);zE.x=e.tileWidth*(a.x-c.west)/c.width|0,zE.y=e.tileHeight*(c.north-a.y)/c.height|0,rj=!0}function det(e,t,n,i,o,r,s){return P.toDegrees(o)}function met(e,t,n,i,o,r,s){return P.toDegrees(r)}function het(e,t,n,i,o,r,s){return cj(e,t,n,i,o,r),kE.x}function pet(e,t,n,i,o,r,s){return cj(e,t,n,i,o,r),kE.y}var _et=new he;function cj(e,t,n,i,o,r,s){if(!sj){if(e.tilingScheme.projection instanceof Di)kE.x=P.toDegrees(o),kE.y=P.toDegrees(r);else{let a=_et;a.longitude=o,a.latitude=r,e.tilingScheme.projection.project(a,kE)}sj=!0}}function get(e,t,n,i,o,r,s){return s}var Zs=wA;function cu(e){if(e=y(e,y.EMPTY_OBJECT),l(e.url)){$("TileMapServiceImageryProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use TileMapServiceImageryProvider.fromUrl instead."),this._metadataError=void 0,this._ready=!1;let t,n=this,i=Promise.resolve(e.url).then(function(o){return t=we.createIfNeeded(o),t.appendForwardSlash(),n._tmsResource=t,n._xmlResource=t.getDerivedResource({url:"tilemapresource.xml"}),cu._requestMetadata(e,n._tmsResource,n._xmlResource,n)}).catch(o=>Promise.reject(o));Zs.call(this,i),this._promise=i}}cu._requestMetadata=async function(e,t,n,i){try{let o=await n.fetchXML();return cu._metadataSuccess(o,e,t,n,i)}catch(o){if(o instanceof Sh)return cu._metadataFailure(e,t);throw o}};cu.fromUrl=async function(e,t){let n=we.createIfNeeded(e);n.appendForwardSlash();let i=n,o=n.getDerivedResource({url:"tilemapresource.xml"});t=y(t,y.EMPTY_OBJECT);let r=await cu._requestMetadata(t,i,o),s=new cu;return Zs.call(s,r),s};l(Object.create)&&(cu.prototype=Object.create(Zs.prototype),cu.prototype.constructor=cu);function Mme(e,t){return e.west<t.rectangle.west&&(e.west=t.rectangle.west),e.east>t.rectangle.east&&(e.east=t.rectangle.east),e.south<t.rectangle.south&&(e.south=t.rectangle.south),e.north>t.rectangle.north&&(e.north=t.rectangle.north),e}function Rme(e,t,n){let i=e.positionToTileXY(le.southwest(t),n),o=e.positionToTileXY(le.northeast(t),n);return(Math.abs(o.x-i.x)+1)*(Math.abs(o.y-i.y)+1)>4?0:n}cu._metadataSuccess=function(e,t,n,i,o){let r=/tileformat/i,s=/tileset/i,a=/tilesets/i,c=/boundingbox/i,u,f,d,p=[],g=e.childNodes[0].childNodes;for(let M=0;M<g.length;M++)if(r.test(g.item(M).nodeName))u=g.item(M);else if(a.test(g.item(M).nodeName)){d=g.item(M);let L=g.item(M).childNodes;for(let N=0;N<L.length;N++)s.test(L.item(N).nodeName)&&p.push(L.item(N))}else c.test(g.item(M).nodeName)&&(f=g.item(M));let h;if(!l(d)||!l(f))throw h=`Unable to find expected tilesets or bbox attributes in ${i.url}.`,l(o)&&Ti.reportError(void 0,o,o.errorEvent,h),new de(h);let A=y(t.fileExtension,u.getAttribute("extension")),x=y(t.tileWidth,parseInt(u.getAttribute("width"),10)),C=y(t.tileHeight,parseInt(u.getAttribute("height"),10)),T=y(t.minimumLevel,parseInt(p[0].getAttribute("order"),10)),E=y(t.maximumLevel,parseInt(p[p.length-1].getAttribute("order"),10)),S=d.getAttribute("profile"),v=t.tilingScheme;if(!l(v))if(S==="geodetic"||S==="global-geodetic")v=new Wi({ellipsoid:t.ellipsoid});else if(S==="mercator"||S==="global-mercator")v=new Fr({ellipsoid:t.ellipsoid});else throw h=`${i.url} specifies an unsupported profile attribute, ${S}.`,l(o)&&Ti.reportError(void 0,o,o.errorEvent,h),new de(h);let D=le.clone(t.rectangle);if(!l(D)){let M,L,N,_;y(t.flipXY,!1)?(N=new H(parseFloat(f.getAttribute("miny")),parseFloat(f.getAttribute("minx"))),_=new H(parseFloat(f.getAttribute("maxy")),parseFloat(f.getAttribute("maxx")))):(N=new H(parseFloat(f.getAttribute("minx")),parseFloat(f.getAttribute("miny"))),_=new H(parseFloat(f.getAttribute("maxx")),parseFloat(f.getAttribute("maxy"))));let w=S==="geodetic"||S==="mercator";if(v.projection instanceof Di||w)M=he.fromDegrees(N.x,N.y),L=he.fromDegrees(_.x,_.y);else{let I=v.projection;M=I.unproject(N),L=I.unproject(_)}D=new le(M.longitude,M.latitude,L.longitude,L.latitude)}return D=Mme(D,v),T=Rme(v,D,T),{url:n.getDerivedResource({url:`{z}/{x}/{reverseY}.${A}`}),tilingScheme:v,rectangle:D,tileWidth:x,tileHeight:C,minimumLevel:T,maximumLevel:E,tileDiscardPolicy:t.tileDiscardPolicy,credit:t.credit}};cu._metadataFailure=function(e,t){let n=y(e.fileExtension,"png"),i=y(e.tileWidth,256),o=y(e.tileHeight,256),r=e.maximumLevel,s=l(e.tilingScheme)?e.tilingScheme:new Fr({ellipsoid:e.ellipsoid}),a=y(e.rectangle,s.rectangle);a=Mme(a,s);let c=Rme(s,a,e.minimumLevel);return{url:t.getDerivedResource({url:`{z}/{x}/{reverseY}.${n}`}),tilingScheme:s,rectangle:a,tileWidth:i,tileHeight:o,minimumLevel:c,maximumLevel:r,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit}};var Vp=cu;function lj(e){this.channel=e.channel,this.ellipsoid=e.ellipsoid,this.tilingScheme=void 0,this.version=void 0}lj.prototype.build=function(e){e._channel=this.channel,e._version=this.version,e._tilingScheme=this.tilingScheme};function yet(e,t){let n;try{n=JSON.parse(e)}catch{n=JSON.parse(e.replace(/([\[\{,])[\n\r ]*([A-Za-z0-9]+)[\n\r ]*:/g,'$1"$2":'))}let i;for(let o=0;o<n.layers.length;o++)if(n.layers[o].id===t.channel){i=n.layers[o];break}if(!l(i)){let o=`Could not find layer with channel (id) of ${t.channel}.`;throw new de(o)}if(!l(i.version)){let o=`Could not find a version in channel (id) ${t.channel}.`;throw new de(o)}if(t.version=i.version,l(n.projection)&&n.projection==="flat")t.tilingScheme=new Wi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new le(-Math.PI,-Math.PI,Math.PI,Math.PI),ellipsoid:t.ellipsoid});else if(!l(n.projection)||n.projection==="mercator")t.tilingScheme=new Fr({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:t.ellipsoid});else{let o=`Unsupported projection ${n.projection}.`;throw new de(o)}return!0}function Aet(e,t,n){let i=`An error occurred while accessing ${t.url}.`;throw l(e)&&l(e.message)&&(i+=`: ${e.message}`),Ti.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new de(i)}async function Bme(e,t,n){try{let i=await e.fetchText();yet(i,t)}catch(i){Aet(i,e,n)}}function ml(e){if(e=y(e,{}),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1.9,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._channel=e.channel,this._requestType="ImageryMaps",this._credit=new It(`<a href="http://www.google.com/enterprise/mapsearth/products/earthenterprise.html"><img src="${ml.logoUrl}" title="Google Imagery"/></a>`),this._tilingScheme=void 0,this._version=void 0,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=e.maximumLevel,this._errorEvent=new ge,l(e.url)||l(e.channel)){$("GoogleEarthEnterpriseMapsProvider.url","GoogleEarthEnterpriseMapsProvider.url and GoogleEarthEnterpriseMapsProvider.channel were deprecated in CesiumJS 1.104. They will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMapsProvider.fromUrl instead.");let t=e.url,n=y(e.path,"/default_map"),i=we.createIfNeeded(t).getDerivedResource({url:n[0]==="/"?n.substring(1):n});i.appendForwardSlash(),this._resource=i,this._url=t,this._path=n,this._ready=!1;let o=i.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),r=new lj(e);this._readyPromise=Bme(o,r,this).then(()=>(r.build(this),this._ready=!0,!0))}}Object.defineProperties(ml.prototype,{url:{get:function(){return this._url}},path:{get:function(){return this._path}},proxy:{get:function(){return this._resource.proxy}},channel:{get:function(){return this._channel}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},version:{get:function(){return this._version}},requestType:{get:function(){return this._requestType}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.ready","GoogleEarthEnterpriseMapsProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMapsProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.readyPromise","GoogleEarthEnterpriseMapsProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMapsProvider.fromUrl instead."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},defaultAlpha:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultAlpha","GoogleEarthEnterpriseMapsProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultAlpha","GoogleEarthEnterpriseMapsProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultNightAlpha","GoogleEarthEnterpriseMapsProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultNightAlpha","GoogleEarthEnterpriseMapsProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultDayAlpha","GoogleEarthEnterpriseMapsProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultDayAlpha","GoogleEarthEnterpriseMapsProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultBrightness","GoogleEarthEnterpriseMapsProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultBrightness","GoogleEarthEnterpriseMapsProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultContrast","GoogleEarthEnterpriseMapsProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultContrast","GoogleEarthEnterpriseMapsProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultHue","GoogleEarthEnterpriseMapsProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultHue","GoogleEarthEnterpriseMapsProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultSaturation","GoogleEarthEnterpriseMapsProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultSaturation","GoogleEarthEnterpriseMapsProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultGamma","GoogleEarthEnterpriseMapsProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultGamma","GoogleEarthEnterpriseMapsProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultMinificationFilter","GoogleEarthEnterpriseMapsProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultMinificationFilter","GoogleEarthEnterpriseMapsProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("GoogleEarthEnterpriseMapsProvider.defaultMagnificationFilter","GoogleEarthEnterpriseMapsProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("GoogleEarthEnterpriseMapsProvider.defaultMagnificationFilter","GoogleEarthEnterpriseMapsProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});ml.fromUrl=async function(e,t,n){n=y(n,{});let i=y(n.path,"/default_map"),o=we.createIfNeeded(e).getDerivedResource({url:i[0]==="/"?i.substring(1):i});o.appendForwardSlash();let r=o.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),s=new lj(n);s.channel=t,await Bme(r,s);let a=new ml(n);return s.build(a),a._readyPromise=Promise.resolve(!0),a._ready=!0,a._resource=o,a._url=e,a._path=i,a};ml.prototype.getTileCredits=function(e,t,n){};ml.prototype.requestImage=function(e,t,n,i){let o=this._resource.getDerivedResource({url:"query",request:i,queryParameters:{request:this._requestType,channel:this._channel,version:this._version,x:e,y:t,z:n+1}});return dl.loadImage(this,o)};ml.prototype.pickFeatures=function(e,t,n,i,o){};ml._logoUrl=void 0;Object.defineProperties(ml,{logoUrl:{get:function(){return l(ml._logoUrl)||(ml._logoUrl=en("Assets/Images/google_earth_credit.png")),ml._logoUrl},set:function(e){ml._logoUrl=e}}});var dD=ml;var xet=/\/$/,Lme=new It('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function GE(e){e=y(e,y.EMPTY_OBJECT);let t=e.mapId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=we.createIfNeeded(y(e.url,"https://{s}.tiles.mapbox.com/v4/"));this._mapId=t,this._accessToken=n;let o=y(e.format,"png");/\./.test(o)||(o=`.${o}`),this._format=o;let r=i.getUrlComponent();xet.test(r)||(r+="/"),r+=`${t}/{z}/{x}/{y}${this._format}`,i.url=r,i.setQueryParameters({access_token:n});let s;l(e.credit)?(s=e.credit,typeof s=="string"&&(s=new It(s))):s=Lme,this._resource=i,this._imageryProvider=new Zs({url:i,credit:s,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle}),this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(GE.prototype,{url:{get:function(){return this._imageryProvider.url}},ready:{get:function(){return $("MapboxImageryProvider.ready","MapboxImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._imageryProvider.ready}},readyPromise:{get:function(){return $("MapboxImageryProvider.readyPromise","MapboxImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._imageryProvider._readyPromise}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},defaultAlpha:{get:function(){return $("MapboxImageryProvider.defaultAlpha","MapboxImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("MapboxImageryProvider.defaultAlpha","MapboxImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("MapboxImageryProvider.defaultNightAlpha","MapboxImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("MapboxImageryProvider.defaultNightAlpha","MapboxImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("MapboxImageryProvider.defaultDayAlpha","MapboxImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("MapboxImageryProvider.defaultDayAlpha","MapboxImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("MapboxImageryProvider.defaultBrightness","MapboxImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("MapboxImageryProvider.defaultBrightness","MapboxImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("MapboxImageryProvider.defaultContrast","MapboxImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("MapboxImageryProvider.defaultContrast","MapboxImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("MapboxImageryProvider.defaultHue","MapboxImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("MapboxImageryProvider.defaultHue","MapboxImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("MapboxImageryProvider.defaultSaturation","MapboxImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("MapboxImageryProvider.defaultSaturation","MapboxImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("MapboxImageryProvider.defaultGamma","MapboxImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("MapboxImageryProvider.defaultGamma","MapboxImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("MapboxImageryProvider.defaultMinificationFilter","MapboxImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("MapboxImageryProvider.defaultMinificationFilter","MapboxImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("MapboxImageryProvider.defaultMagnificationFilter","MapboxImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("MapboxImageryProvider.defaultMagnificationFilter","MapboxImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});GE.prototype.getTileCredits=function(e,t,n){};GE.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};GE.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};GE._defaultCredit=Lme;var mD=GE;function vA(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=y(e.rectangle,le.MAX_VALUE),n=new Wi({rectangle:t,numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});this._tilingScheme=n,this._image=void 0,this._texture=void 0,this._hasError=!1,this._errorEvent=new ge,this._ready=!1;let i=e.credit;typeof i=="string"&&(i=new It(i)),this._credit=i;let o=we.createIfNeeded(e.url);if(this._resource=o,l(e.tileWidth)||l(e.tileHeight)){this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight,this._ready=!0,this._readyPromise=Promise.resolve(!0);return}$("SingleTileImageryProvider options","options.tileHeight and options.tileWidth became required in CesiumJS 1.104. Omitting these properties will result in an error in 1.107. Provide options.tileHeight and options.tileWidth, or use SingleTileImageryProvider.fromUrl instead."),this._tileWidth=0,this._tileHeight=0,this._readyPromise=wU(o,this).then(r=>(Ti.reportSuccess(this._errorEvent),this._image=r,this._tileWidth=r.width,this._tileHeight=r.height,this._ready=!0,!0))}Object.defineProperties(vA.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return 0}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("SingleTileImageryProvider.ready","SingleTileImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use SingleTileImageryProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("SingleTileImageryProvider.readyPromise","SingleTileImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use SingleTileImageryProvider.fromUrl instead."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},defaultAlpha:{get:function(){return $("SingleTileImageryProvider.defaultAlpha","SingleTileImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("SingleTileImageryProvider.defaultAlpha","SingleTileImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("SingleTileImageryProvider.defaultNightAlpha","SingleTileImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("SingleTileImageryProvider.defaultNightAlpha","SingleTileImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("SingleTileImageryProvider.defaultDayAlpha","SingleTileImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("SingleTileImageryProvider.defaultDayAlpha","SingleTileImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("SingleTileImageryProvider.defaultBrightness","SingleTileImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("SingleTileImageryProvider.defaultBrightness","SingleTileImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("SingleTileImageryProvider.defaultContrast","SingleTileImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("SingleTileImageryProvider.defaultContrast","SingleTileImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("SingleTileImageryProvider.defaultHue","SingleTileImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("SingleTileImageryProvider.defaultHue","SingleTileImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("SingleTileImageryProvider.defaultSaturation","SingleTileImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("SingleTileImageryProvider.defaultSaturation","SingleTileImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("SingleTileImageryProvider.defaultGamma","SingleTileImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("SingleTileImageryProvider.defaultGamma","SingleTileImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("SingleTileImageryProvider.defaultMinificationFilter","SingleTileImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("SingleTileImageryProvider.defaultMinificationFilter","SingleTileImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("SingleTileImageryProvider.defaultMagnificationFilter","SingleTileImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("SingleTileImageryProvider.defaultMagnificationFilter","SingleTileImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});function Cet(e,t,n,i){let o=`Failed to load image ${e.url}`;l(t)&&l(t.message)&&(o+=`: ${t.message}`);let r=Ti.reportError(i,n,l(n)?n._errorEvent:void 0,o,0,0,0,t);if(r.retry)return wU(e,n,r);throw l(n)&&(n._hasError=!0),new de(o)}async function wU(e,t,n){try{return await dl.loadImage(null,e)}catch(i){return Cet(e,i,t,n)}}vA.fromUrl=async function(e,t){let n=we.createIfNeeded(e),i=await wU(n);t=y(t,y.EMPTY_OBJECT);let o=new vA({...t,url:e,tileWidth:i.width,tileHeight:i.height});return o._image=i,o};vA.prototype.getTileCredits=function(e,t,n){};vA.prototype.requestImage=async function(e,t,n,i){if(!this._hasError&&!l(this._image)){let o=await wU(this._resource,this);return this._image=o,Ti.reportSuccess(this._errorEvent),o}return this._image};vA.prototype.pickFeatures=function(e,t,n,i,o){};var hD=vA;function Tet(e,t,n){this.type=e,l(t)||(e==="json"?t="application/json":e==="xml"?t="text/xml":e==="html"?t="text/html":e==="text"&&(t="text/plain")),this.format=t,l(n)||(e==="json"?n=Eet:e==="xml"?n=Det:(e==="html"||e==="text")&&(n=Nme)),this.callback=n}function Eet(e){let t=[],n=e.features;for(let i=0;i<n.length;++i){let o=n[i],r=new eh;if(r.data=o,r.properties=o.properties,r.configureNameFromProperties(o.properties),r.configureDescriptionFromProperties(o.properties),l(o.geometry)&&o.geometry.type==="Point"){let s=o.geometry.coordinates[0],a=o.geometry.coordinates[1];r.position=he.fromDegrees(s,a)}t.push(r)}return t}var uj="http://www.mapinfo.com/mxp",bet="http://www.esri.com/wms",wet="http://www.opengis.net/wfs",vet="http://www.opengis.net/gml";function Det(e){let t=e.documentElement;if(t.localName==="MultiFeatureCollection"&&t.namespaceURI===uj)return Iet(e);if(t.localName==="FeatureInfoResponse"&&t.namespaceURI===bet)return Pet(e);if(t.localName==="FeatureCollection"&&t.namespaceURI===wet)return Oet(e);if(t.localName==="ServiceExceptionReport")throw new de(new XMLSerializer().serializeToString(t));return t.localName==="msGMLOutput"?Met(e):Ret(e)}function Iet(e){let t=[],i=e.documentElement.getElementsByTagNameNS(uj,"Feature");for(let o=0;o<i.length;++o){let r=i[o],s={},a=r.getElementsByTagNameNS(uj,"Val");for(let u=0;u<a.length;++u){let f=a[u];if(f.hasAttribute("ref")){let d=f.getAttribute("ref"),p=f.textContent.trim();s[d]=p}}let c=new eh;c.data=r,c.properties=s,c.configureNameFromProperties(s),c.configureDescriptionFromProperties(s),t.push(c)}return t}function Pet(e){let t=e.documentElement,n=[],i,o=t.getElementsByTagNameNS("*","FIELDS");if(o.length>0)for(let r=0;r<o.length;++r){let s=o[r];i={};let a=s.attributes;for(let c=0;c<a.length;++c){let u=a[c];i[u.name]=u.value}n.push(vU(s,i))}else{let r=t.getElementsByTagNameNS("*","FeatureInfo");for(let s=0;s<r.length;++s){let a=r[s];i={};let c=a.childNodes;for(let u=0;u<c.length;++u){let f=c[u];f.nodeType===Node.ELEMENT_NODE&&(i[f.localName]=f.textContent)}n.push(vU(a,i))}}return n}function Oet(e){let t=[],i=e.documentElement.getElementsByTagNameNS(vet,"featureMember");for(let o=0;o<i.length;++o){let r=i[o],s={};fj(r,s),t.push(vU(r,s))}return t}function Met(e){let t=[],n,i=e.documentElement.childNodes;for(let r=0;r<i.length;r++)if(i[r].nodeType===Node.ELEMENT_NODE){n=i[r];break}if(!l(n))throw new de("Unable to find first child of the feature info xml document");let o=n.childNodes;for(let r=0;r<o.length;++r){let s=o[r];if(s.nodeType===Node.ELEMENT_NODE){let a={};fj(s,a),t.push(vU(s,a))}}return t}function fj(e,t){let n=!0;for(let i=0;i<e.childNodes.length;++i){let o=e.childNodes[i];o.nodeType===Node.ELEMENT_NODE&&(n=!1),!(o.localName==="Point"||o.localName==="LineString"||o.localName==="Polygon"||o.localName==="boundedBy")&&o.hasChildNodes()&&fj(o,t)&&(t[o.localName]=o.textContent)}return n}function vU(e,t){let n=new eh;return n.data=e,n.properties=t,n.configureNameFromProperties(t),n.configureDescriptionFromProperties(t),n}function Ret(e){let t=new XMLSerializer().serializeToString(e),n=document.createElement("div"),i=document.createElement("pre");i.textContent=t,n.appendChild(i);let o=new eh;return o.data=e,o.description=n.innerHTML,[o]}var Bet=/<body>\s*<\/body>/im,Let=/<ServiceExceptionReport([\s\S]*)<\/ServiceExceptionReport>/im,Net=/<title>([\s\S]*)<\/title>/im;function Nme(e){if(Bet.test(e)||Let.test(e))return;let t,n=Net.exec(e);n&&n.length>1&&(t=n[1]);let i=new eh;return i.name=t,i.description=e,i.data=e,[i]}var WE=Tet;function pD(e){e=y(e,y.EMPTY_OBJECT),this._tileCache={},this._tilesRequestedForInterval=[];let t=this._clock=e.clock;this._times=e.times,this._requestImageFunction=e.requestImageFunction,this._reloadFunction=e.reloadFunction,this._currentIntervalIndex=-1,t.onTick.addEventListener(this._clockOnTick,this),this._clockOnTick(t)}Object.defineProperties(pD.prototype,{clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._clockOnTick(e),this._reloadFunction())}},times:{get:function(){return this._times},set:function(e){this._times!==e&&(this._times=e,this._clockOnTick(this._clock),this._reloadFunction())}},currentInterval:{get:function(){return this._times.get(this._currentIntervalIndex)}}});pD.prototype.getFromCache=function(e,t,n,i){let o=Fme(e,t,n),r,s=this._tileCache[this._currentIntervalIndex];if(l(s)&&l(s[o])){let a=s[o];r=a.promise.catch(function(c){throw i.state=a.request.state,c}),delete s[o]}return r};pD.prototype.checkApproachingInterval=function(e,t,n,i){let o=Fme(e,t,n),r=this._tilesRequestedForInterval,s=Ume(this),a={key:o,priorityFunction:i.priorityFunction};(!l(s)||!Vme(this,a,s))&&r.push(a),r.length>=512&&r.splice(0,256)};pD.prototype._clockOnTick=function(e){let t=e.currentTime,i=this._times.indexOf(t),o=this._currentIntervalIndex;if(i!==o){let s=this._tileCache[o];for(let a in s)s.hasOwnProperty(a)&&s[a].request.cancel();delete this._tileCache[o],this._tilesRequestedForInterval=[],this._currentIntervalIndex=i,this._reloadFunction();return}let r=Ume(this);if(l(r)){let s=this._tilesRequestedForInterval,a=!0;for(;a&&s.length!==0;){let c=s.pop();a=Vme(this,c,r),a||s.push(c)}}};function Fme(e,t,n){return`${e}-${t}-${n}`}function Fet(e){let t=e.split("-");if(t.length===3)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function Ume(e){let t=e._times;if(!l(t))return;let n=e._clock,i=n.currentTime,o=n.canAnimate&&n.shouldAnimate,r=n.multiplier;if(!o&&r!==0)return;let s,a=t.indexOf(i);if(a<0)return;let c=t.get(a);return r>0?(s=ee.secondsDifference(c.stop,i),++a):(s=ee.secondsDifference(c.start,i),--a),s/=r,a>=0&&s<=5?t.get(a):void 0}function Vme(e,t,n){let i=e._times.indexOf(n.start),o=e._tileCache,r=o[i];l(r)||(r=o[i]={});let s=t.key;if(l(r[s]))return!0;let a=Fet(s),c=new Zo({throttle:!1,throttleByServer:!0,type:es.IMAGERY,priorityFunction:t.priorityFunction}),u=e._requestImageFunction(a.x,a.y,a.level,c,n);return l(u)?(r[s]={promise:u,request:c},!0):!1}var jE=pD;var Uet=[3034,3035,3042,3043,3044],Vet=[4471,4559];function Md(e){if(e=y(e,y.EMPTY_OBJECT),l(e.times)&&!l(e.clock))throw new fe("options.times was specified, so options.clock is required.");this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._getFeatureInfoUrl=y(e.getFeatureInfoUrl,e.url);let t=we.createIfNeeded(e.url),n=we.createIfNeeded(this._getFeatureInfoUrl);t.setQueryParameters(Md.DefaultParameters,!0),n.setQueryParameters(Md.GetFeatureInfoDefaultParameters,!0),l(e.parameters)&&t.setQueryParameters(kme(e.parameters)),l(e.getFeatureInfoParameters)&&n.setQueryParameters(kme(e.getFeatureInfoParameters));let i=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new jE({clock:e.clock,times:e.times,requestImageFunction:function(s,a,c,u,f){return zme(i,s,a,c,u,f)},reloadFunction:function(){l(i._reload)&&i._reload()}}));let o={};if(o.layers=e.layers,o.bbox="{westProjected},{southProjected},{eastProjected},{northProjected}",o.width="{width}",o.height="{height}",parseFloat(t.queryParameters.version)>=1.3){o.crs=y(e.crs,e.tilingScheme&&e.tilingScheme.projection instanceof Pi?"EPSG:3857":"CRS:84");let s=o.crs.split(":");if(s[0]==="EPSG"&&s.length===2){let a=Number(s[1]);(a>=4e3&&a<5e3&&!Vet.includes(a)||Uet.includes(a))&&(o.bbox="{southProjected},{westProjected},{northProjected},{eastProjected}")}}else o.srs=y(e.srs,e.tilingScheme&&e.tilingScheme.projection instanceof Pi?"EPSG:3857":"EPSG:4326");t.setQueryParameters(o,!0),n.setQueryParameters(o,!0);let r={query_layers:e.layers,info_format:"{format}"};parseFloat(n.queryParameters.version)>=1.3?(r.i="{i}",r.j="{j}"):(r.x="{i}",r.y="{j}"),n.setQueryParameters(r,!0),this._resource=t,this._pickFeaturesResource=n,this._layers=e.layers,this._tileProvider=new Zs({url:t,pickFeaturesUrl:n,tilingScheme:y(e.tilingScheme,new Wi({ellipsoid:e.ellipsoid})),rectangle:e.rectangle,tileWidth:e.tileWidth,tileHeight:e.tileHeight,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,subdomains:e.subdomains,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit,getFeatureInfoFormats:y(e.getFeatureInfoFormats,Md.DefaultGetFeatureInfoFormats),enablePickFeatures:e.enablePickFeatures}),this._ready=!0,this._readyPromise=Promise.resolve(!0)}function zme(e,t,n,i,o,r){let s=l(r)?r.data:void 0,a=e._tileProvider;return l(s)&&a._resource.setQueryParameters(s),a.requestImage(t,n,i,o)}function ket(e,t,n,i,o,r,s){let a=l(s)?s.data:void 0,c=e._tileProvider;return l(a)&&c._pickFeaturesResource.setQueryParameters(a),c.pickFeatures(t,n,i,o,r)}Object.defineProperties(Md.prototype,{url:{get:function(){return this._resource._url}},proxy:{get:function(){return this._resource.proxy}},layers:{get:function(){return this._layers}},tileWidth:{get:function(){return this._tileProvider.tileWidth}},tileHeight:{get:function(){return this._tileProvider.tileHeight}},maximumLevel:{get:function(){return this._tileProvider.maximumLevel}},minimumLevel:{get:function(){return this._tileProvider.minimumLevel}},tilingScheme:{get:function(){return this._tileProvider.tilingScheme}},rectangle:{get:function(){return this._tileProvider.rectangle}},tileDiscardPolicy:{get:function(){return this._tileProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._tileProvider.errorEvent}},ready:{get:function(){return $("WebMapServiceImageryProvider.ready","WebMapServiceImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._tileProvider.ready}},readyPromise:{get:function(){return $("WebMapServiceImageryProvider.readyPromise","WebMapServiceImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._tileProvider.readyPromise}},credit:{get:function(){return this._tileProvider.credit}},hasAlphaChannel:{get:function(){return this._tileProvider.hasAlphaChannel}},enablePickFeatures:{get:function(){return this._tileProvider.enablePickFeatures},set:function(e){this._tileProvider.enablePickFeatures=e}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},getFeatureInfoUrl:{get:function(){return this._getFeatureInfoUrl}},defaultAlpha:{get:function(){return $("WebMapServiceImageryProvider.defaultAlpha","WebMapServiceImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("WebMapServiceImageryProvider.defaultAlpha","WebMapServiceImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("WebMapServiceImageryProvider.defaultNightAlpha","WebMapServiceImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("WebMapServiceImageryProvider.defaultNightAlpha","WebMapServiceImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("WebMapServiceImageryProvider.defaultDayAlpha","WebMapServiceImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("WebMapServiceImageryProvider.defaultDayAlpha","WebMapServiceImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("WebMapServiceImageryProvider.defaultBrightness","WebMapServiceImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("WebMapServiceImageryProvider.defaultBrightness","WebMapServiceImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("WebMapServiceImageryProvider.defaultContrast","WebMapServiceImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("WebMapServiceImageryProvider.defaultContrast","WebMapServiceImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("WebMapServiceImageryProvider.defaultHue","WebMapServiceImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("WebMapServiceImageryProvider.defaultHue","WebMapServiceImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("WebMapServiceImageryProvider.defaultSaturation","WebMapServiceImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("WebMapServiceImageryProvider.defaultSaturation","WebMapServiceImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("WebMapServiceImageryProvider.defaultGamma","WebMapServiceImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("WebMapServiceImageryProvider.defaultGamma","WebMapServiceImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("WebMapServiceImageryProvider.defaultMinificationFilter","WebMapServiceImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("WebMapServiceImageryProvider.defaultMinificationFilter","WebMapServiceImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("WebMapServiceImageryProvider.defaultMagnificationFilter","WebMapServiceImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("WebMapServiceImageryProvider.defaultMagnificationFilter","WebMapServiceImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});Md.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};Md.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=zme(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};Md.prototype.pickFeatures=function(e,t,n,i,o){let r=this._timeDynamicImagery,s=l(r)?r.currentInterval:void 0;return ket(this,e,t,n,i,o,s)};Md.DefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"});Md.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"});Md.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new WE("json","application/json")),Object.freeze(new WE("xml","text/xml")),Object.freeze(new WE("text","text/html"))]);function kme(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var _D=Md;var zet=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetTile"});function gD(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=we.createIfNeeded(e.url),n=e.style,i=e.tileMatrixSetID,o=t.url,r=o.match(/{/g);if(!l(r)||r.length===1&&/{s}/.test(o))t.setQueryParameters(zet),this._useKvp=!0;else{let d={style:n,Style:n,TileMatrixSet:i};t.setTemplateValues(d),this._useKvp=!1}this._resource=t,this._layer=e.layer,this._style=n,this._tileMatrixSetID=i,this._tileMatrixLabels=e.tileMatrixLabels,this._format=y(e.format,"image/jpeg"),this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Fr({ellipsoid:e.ellipsoid}),this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._dimensions=e.dimensions;let s=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new jE({clock:e.clock,times:e.times,requestImageFunction:function(d,p,g,h,A){return Hme(s,d,p,g,h,A)},reloadFunction:function(){l(s._reload)&&s._reload()}})),this._readyPromise=Promise.resolve(!0),this._ready=!0;let a=this._tilingScheme.positionToTileXY(le.southwest(this._rectangle),this._minimumLevel),c=this._tilingScheme.positionToTileXY(le.northeast(this._rectangle),this._minimumLevel),u=(Math.abs(c.x-a.x)+1)*(Math.abs(c.y-a.y)+1);this._errorEvent=new ge;let f=e.credit;this._credit=typeof f=="string"?new It(f):f,this._subdomains=e.subdomains,Array.isArray(this._subdomains)?this._subdomains=this._subdomains.slice():l(this._subdomains)&&this._subdomains.length>0?this._subdomains=this._subdomains.split(""):this._subdomains=["a","b","c"]}function Hme(e,t,n,i,o,r){let s=e._tileMatrixLabels,a=l(s)?s[i]:i.toString(),c=e._subdomains,u=e._dimensions,f=l(r)?r.data:void 0,d,p;if(!e._useKvp)p={TileMatrix:a,TileRow:n.toString(),TileCol:t.toString(),s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({request:o}),d.setTemplateValues(p),l(u)&&d.setTemplateValues(u),l(f)&&d.setTemplateValues(f);else{let g={};g.tilematrix=a,g.layer=e._layer,g.style=e._style,g.tilerow=n,g.tilecol=t,g.tilematrixset=e._tileMatrixSetID,g.format=e._format,l(u)&&(g=gt(g,u)),l(f)&&(g=gt(g,f)),p={s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({queryParameters:g,request:o}),d.setTemplateValues(p)}return dl.loadImage(e,d)}Object.defineProperties(gD.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},format:{get:function(){return this._format}},ready:{get:function(){return $("WebMapTileServiceImageryProvider.ready","WebMapTileServiceImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("WebMapTileServiceImageryProvider.readyPromise","WebMapTileServiceImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},dimensions:{get:function(){return this._dimensions},set:function(e){this._dimensions!==e&&(this._dimensions=e,l(this._reload)&&this._reload())}},defaultAlpha:{get:function(){return $("WebMapTileServiceImageryProvider.defaultAlpha","WebMapTileServiceImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("WebMapTileServiceImageryProvider.defaultAlpha","WebMapTileServiceImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("WebMapTileServiceImageryProvider.defaultNightAlpha","WebMapTileServiceImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("WebMapTileServiceImageryProvider.defaultNightAlpha","WebMapTileServiceImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("WebMapTileServiceImageryProvider.defaultDayAlpha","WebMapTileServiceImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("WebMapTileServiceImageryProvider.defaultDayAlpha","WebMapTileServiceImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("WebMapTileServiceImageryProvider.defaultBrightness","WebMapTileServiceImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("WebMapTileServiceImageryProvider.defaultBrightness","WebMapTileServiceImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("WebMapTileServiceImageryProvider.defaultContrast","WebMapTileServiceImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("WebMapTileServiceImageryProvider.defaultContrast","WebMapTileServiceImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("WebMapTileServiceImageryProvider.defaultHue","WebMapTileServiceImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("WebMapTileServiceImageryProvider.defaultHue","WebMapTileServiceImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("WebMapTileServiceImageryProvider.defaultSaturation","WebMapTileServiceImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("WebMapTileServiceImageryProvider.defaultSaturation","WebMapTileServiceImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("WebMapTileServiceImageryProvider.defaultGamma","WebMapTileServiceImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("WebMapTileServiceImageryProvider.defaultGamma","WebMapTileServiceImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("WebMapTileServiceImageryProvider.defaultMinificationFilter","WebMapTileServiceImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("WebMapTileServiceImageryProvider.defaultMinificationFilter","WebMapTileServiceImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("WebMapTileServiceImageryProvider.defaultMagnificationFilter","WebMapTileServiceImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("WebMapTileServiceImageryProvider.defaultMagnificationFilter","WebMapTileServiceImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});gD.prototype.getTileCredits=function(e,t,n){};gD.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=Hme(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};gD.prototype.pickFeatures=function(e,t,n,i,o){};var yD=gD;function kp(e){return function(t){return new e(t)}}var Het={ARCGIS_MAPSERVER:kp(Up),BING:kp(uD),GOOGLE_EARTH:kp(dD),MAPBOX:kp(mD),SINGLE_TILE:kp(hD),TMS:kp(Vp),URL_TEMPLATE:kp(Zs),WMS:kp(_D),WMTS:kp(yD)},Get={ARCGIS_MAPSERVER:Up.fromUrl,BING:async(e,t)=>uD.fromUrl(e,t),GOOGLE_EARTH:async(e,t)=>{let n=t.channel;return delete t.channel,dD.fromUrl(e,n,t)},MAPBOX:(e,t)=>new mD({url:e,...t}),SINGLE_TILE:hD.fromUrl,TMS:Vp.fromUrl,URL_TEMPLATE:(e,t)=>new Zs({url:e,...t}),WMS:(e,t)=>new _D({url:e,...t}),WMTS:(e,t)=>new yD({url:e,...t})};function hl(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._ready=!1,this._tileCredits=void 0,this._errorEvent=new ge;let t=e.assetId;l(t)&&($("IonImageryProvider options.assetId","options.assetId was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use IonImageryProvider.fromAssetId instead."),hl._initialize(this,t,e))}Object.defineProperties(hl.prototype,{ready:{get:function(){return $("IonImageryProvider.ready","IonImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use IonImageryProvider.fromAssetId instead."),this._ready}},readyPromise:{get:function(){return $("IonImageryProvider.readyPromise","IonImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use IonImageryProvider.fromAssetId instead."),this._readyPromise}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},proxy:{get:function(){}},defaultAlpha:{get:function(){return $("IonImageryProvider.defaultAlpha","IonImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("IonImageryProvider.defaultAlpha","IonImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("IonImageryProvider.defaultNightAlpha","IonImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("IonImageryProvider.defaultNightAlpha","IonImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("IonImageryProvider.defaultDayAlpha","IonImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("IonImageryProvider.defaultDayAlpha","IonImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("IonImageryProvider.defaultBrightness","IonImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("IonImageryProvider.defaultBrightness","IonImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("IonImageryProvider.defaultContrast","IonImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("IonImageryProvider.defaultContrast","IonImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("IonImageryProvider.defaultHue","IonImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("IonImageryProvider.defaultHue","IonImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("IonImageryProvider.defaultSaturation","IonImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("IonImageryProvider.defaultSaturation","IonImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("IonImageryProvider.defaultGamma","IonImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("IonImageryProvider.defaultGamma","IonImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("IonImageryProvider.defaultMinificationFilter","IonImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("IonImageryProvider.defaultMinificationFilter","IonImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("IonImageryProvider.defaultMagnificationFilter","IonImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("IonImageryProvider.defaultMagnificationFilter","IonImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});hl._initialize=function(e,t,n){let i=ca._createEndpointResource(t,n),o=t.toString()+n.accessToken+n.server,r=hl._endpointCache[o];l(r)||(r=i.fetchJson(),hl._endpointCache[o]=r),e._readyPromise=r.then(function(s){if(s.type!=="IMAGERY")return Promise.reject(new de(`Cesium ion asset ${t} is not an imagery asset.`));let a,c=s.externalType;if(!l(c))a=new Vp({url:new ca(s,i)});else{let u=Het[c];if(!l(u))return Promise.reject(new de(`Unrecognized Cesium ion imagery type: ${c}`));a=u(s.options)}return e._tileCredits=ca.getCreditsFromEndpoint(s,i),a.errorEvent.addEventListener(function(u){u.provider=e,e._errorEvent.raiseEvent(u)}),e._imageryProvider=a,Promise.resolve(a._readyPromise).then(function(){return e._ready=!0,!0})})};hl.fromAssetId=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ca._createEndpointResource(e,t),i=e.toString()+t.accessToken+t.server,o=hl._endpointCache[i];l(o)||(o=n.fetchJson(),hl._endpointCache[i]=o);let r=await o;if(r.type!=="IMAGERY")throw new de(`Cesium ion asset ${e} is not an imagery asset.`);let s,a=r.externalType;if(!l(a))s=await Vp.fromUrl(new ca(r,n));else{let u=Get[a];if(!l(u))throw new de(`Unrecognized Cesium ion imagery type: ${a}`);let f={...r.options},d=f.url;delete f.url,s=await u(d,f)}let c=new hl(t);return s.errorEvent.addEventListener(function(u){u.provider=c,c._errorEvent.raiseEvent(u)}),c._tileCredits=ca.getCreditsFromEndpoint(r,n),c._imageryProvider=s,c._ready=!0,c._readyPromise=Promise.resolve(!0),c};hl.prototype.getTileCredits=function(e,t,n){let i=this._imageryProvider.getTileCredits(e,t,n);return l(i)?this._tileCredits.concat(i):this._tileCredits};hl.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};hl.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};hl._endpointCache={};var Rd=hl;var Wet={AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4},ih=Object.freeze(Wet);function jet(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.style,ih.AERIAL);return Rd.fromAssetId(t)}var ay=jet;var DU=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(u_texture, v_textureCoordinates); +} +`;var IU=`in vec4 position; +in float webMercatorT; + +uniform vec2 u_textureDimensions; + +out vec2 v_textureCoordinates; + +void main() +{ + v_textureCoordinates = vec2(position.x, webMercatorT); + gl_Position = czm_viewportOrthographic * (position * vec4(u_textureDimensions, 1.0, 1.0)); +} +`;function YE(e,t,n,i,o){if(this.imageryLayer=e,this.x=t,this.y=n,this.level=i,this.request=void 0,i!==0){let r=t/2|0,s=n/2|0,a=i-1;this.parent=e.getImageryFromCache(r,s,a)}this.state=ui.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!l(o)&&e.ready&&e.imageryProvider._ready&&(o=e.imageryProvider.tilingScheme.tileXYToRectangle(t,n,i)),this.rectangle=o}YE.createPlaceholder=function(e){let t=new YE(e,0,0,0);return t.addReference(),t.state=ui.PLACEHOLDER,t};YE.prototype.addReference=function(){++this.referenceCount};YE.prototype.releaseReference=function(){return--this.referenceCount,this.referenceCount===0?(this.imageryLayer.removeImageryFromCache(this),l(this.parent)&&this.parent.releaseReference(),l(this.image)&&l(this.image.destroy)&&this.image.destroy(),l(this.texture)&&this.texture.destroy(),l(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),ue(this),0):this.referenceCount};YE.prototype.processStateMachine=function(e,t,n){this.state===ui.UNLOADED&&!n&&(this.state=ui.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===ui.RECEIVED&&(this.state=ui.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));let i=this.state===ui.READY&&t&&!this.texture;(this.state===ui.TEXTURE_LOADED||i)&&(this.state=ui.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))};var AD=YE;function dj(e,t,n){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=n}dj.prototype.freeResources=function(){l(this.readyImagery)&&this.readyImagery.releaseReference(),l(this.loadingImagery)&&this.loadingImagery.releaseReference()};dj.prototype.processStateMachine=function(e,t,n){let i=this.loadingImagery,o=i.imageryLayer;if(i.processStateMachine(t,!this.useWebMercatorT,n),i.state===ui.READY)return l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=this.loadingImagery,this.loadingImagery=void 0,this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this),!0;let r=i.parent,s;for(;l(r)&&(r.state!==ui.READY||!this.useWebMercatorT&&!l(r.texture));)r.state!==ui.FAILED&&r.state!==ui.INVALID&&(s=s||r),r=r.parent;return this.readyImagery!==r&&(l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=r,l(r)&&(r.addReference(),this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this))),i.state===ui.FAILED||i.state===ui.INVALID?l(s)?(s.processStateMachine(t,!this.useWebMercatorT,n),!1):!0:!1};var xD=dj;function di(e,t){this._imageryProvider=e,this._readyEvent=new ge,this._errorEvent=new ge,t=y(t,y.EMPTY_OBJECT),e=y(e,y.EMPTY_OBJECT),this.alpha=y(t.alpha,y(e._defaultAlpha,1)),this.nightAlpha=y(t.nightAlpha,y(e._defaultNightAlpha,1)),this.dayAlpha=y(t.dayAlpha,y(e._defaultDayAlpha,1)),this.brightness=y(t.brightness,y(e._defaultBrightness,di.DEFAULT_BRIGHTNESS)),this.contrast=y(t.contrast,y(e._defaultContrast,di.DEFAULT_CONTRAST)),this.hue=y(t.hue,y(e._defaultHue,di.DEFAULT_HUE)),this.saturation=y(t.saturation,y(e._defaultSaturation,di.DEFAULT_SATURATION)),this.gamma=y(t.gamma,y(e._defaultGamma,di.DEFAULT_GAMMA)),this.splitDirection=y(t.splitDirection,di.DEFAULT_SPLIT),this.minificationFilter=y(t.minificationFilter,y(e._defaultMinificationFilter,di.DEFAULT_MINIFICATION_FILTER)),this.magnificationFilter=y(t.magnificationFilter,y(e._defaultMagnificationFilter,di.DEFAULT_MAGNIFICATION_FILTER)),this.show=y(t.show,!0),this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=y(t.rectangle,le.MAX_VALUE),this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new xD(AD.createPlaceholder(this)),this._show=!0,this._layerIndex=-1,this._isBaseLayer=!1,this._requestImageError=void 0,this._reprojectComputeCommands=[],this.cutoutRectangle=t.cutoutRectangle,this.colorToAlpha=t.colorToAlpha,this.colorToAlphaThreshold=y(t.colorToAlphaThreshold,di.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD)}Object.defineProperties(di.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},ready:{get:function(){return l(this._imageryProvider)}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},rectangle:{get:function(){return this._rectangle}}});di.DEFAULT_BRIGHTNESS=1;di.DEFAULT_CONTRAST=1;di.DEFAULT_HUE=0;di.DEFAULT_SATURATION=1;di.DEFAULT_GAMMA=1;di.DEFAULT_SPLIT=el.NONE;di.DEFAULT_MINIFICATION_FILTER=ln.LINEAR;di.DEFAULT_MAGNIFICATION_FILTER=bi.LINEAR;di.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004;di.fromProviderAsync=function(e,t){let n=new di(void 0,t);return Jet(n,Promise.resolve(e)),n};di.fromWorldImagery=function(e){return e=y(e,y.EMPTY_OBJECT),di.fromProviderAsync(ay({style:e.style}),e)};di.prototype.isBaseLayer=function(){return this._isBaseLayer};di.prototype.isDestroyed=function(){return!1};di.prototype.destroy=function(){return ue(this)};var jme=new le,Gme=new le,mj=new le,Yme=new le;di.prototype.getViewableRectangle=async function(){$("ImageryLayer.getViewableRectangle","ImageryLayer.getViewableRectangle was deprecated in CesiumJS 1.104. It will be removed in CesiumJS 1.107. Use ImageryLayer.getImageryRectangle instead.");let e=this._imageryProvider,t=this._rectangle;return await e._readyPromise,le.intersection(e.rectangle,t)};di.prototype.getImageryRectangle=function(){let e=this._imageryProvider,t=this._rectangle;return le.intersection(e.rectangle,t)};di.prototype._createTileImagerySkeletons=function(e,t,n){let i=e.data;if(!l(t)||l(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel||l(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;l(n)||(n=i.imagery.length);let o=this._imageryProvider;if(!this.ready||!o._ready)return this._skeletonPlaceholder.loadingImagery.addReference(),i.imagery.splice(n,0,this._skeletonPlaceholder),!0;let r=o.tilingScheme.projection instanceof Pi&&e.rectangle.north<Pi.MaximumLatitude&&e.rectangle.south>-Pi.MaximumLatitude,s=le.intersection(o.rectangle,this._rectangle,jme),a=le.intersection(e.rectangle,s,Gme);if(!l(a)){if(!this.isBaseLayer())return!1;let w=s,I=e.rectangle;a=Gme,I.south>=w.north?a.north=a.south=w.north:I.north<=w.south?a.north=a.south=w.south:(a.south=Math.max(I.south,w.south),a.north=Math.min(I.north,w.north)),I.west>=w.east?a.west=a.east=w.east:I.east<=w.west?a.west=a.east=w.west:(a.west=Math.max(I.west,w.west),a.east=Math.min(I.east,w.east))}let c=0;a.south>0?c=a.south:a.north<0&&(c=a.north);let f=1*t.getLevelMaximumGeometricError(e.level),d=Xet(this,f,c);d=Math.max(0,d);let p=o.maximumLevel;if(d>p&&(d=p),l(o.minimumLevel)){let w=o.minimumLevel;d<w&&(d=w)}let g=o.tilingScheme,h=g.positionToTileXY(le.northwest(a),d),A=g.positionToTileXY(le.southeast(a),d),x=e.rectangle.width/512,C=e.rectangle.height/512,T=g.tileXYToRectangle(h.x,h.y,d);Math.abs(T.south-e.rectangle.north)<C&&h.y<A.y&&++h.y,Math.abs(T.east-e.rectangle.west)<x&&h.x<A.x&&++h.x;let E=g.tileXYToRectangle(A.x,A.y,d);Math.abs(E.north-e.rectangle.south)<C&&A.y>h.y&&--A.y,Math.abs(E.west-e.rectangle.east)<x&&A.x>h.x&&--A.x;let S=le.clone(e.rectangle,Yme),v=g.tileXYToRectangle(h.x,h.y,d),D=le.intersection(v,s,mj),O;r?(g.rectangleToNativeRectangle(S,S),g.rectangleToNativeRectangle(v,v),g.rectangleToNativeRectangle(D,D),g.rectangleToNativeRectangle(s,s),O=g.tileXYToNativeRectangle.bind(g),x=S.width/512,C=S.height/512):O=g.tileXYToRectangle.bind(g);let M,L=0,N=1,_;!this.isBaseLayer()&&Math.abs(D.west-S.west)>=x&&(L=Math.min(1,(D.west-S.west)/S.width)),!this.isBaseLayer()&&Math.abs(D.north-S.north)>=C&&(N=Math.max(0,(D.north-S.south)/S.height));let b=N;for(let w=h.x;w<=A.x;w++)if(M=L,v=O(w,h.y,d),D=le.simpleIntersection(v,s,mj),!!l(D)){L=Math.min(1,(D.east-S.west)/S.width),w===A.x&&(this.isBaseLayer()||Math.abs(D.east-S.east)<x)&&(L=1),N=b;for(let I=h.y;I<=A.y;I++){if(_=N,v=O(w,I,d),D=le.simpleIntersection(v,s,mj),!l(D))continue;N=Math.max(0,(D.south-S.south)/S.height),I===A.y&&(this.isBaseLayer()||Math.abs(D.south-S.south)<C)&&(N=0);let R=new re(M,N,L,_),F=this.getImageryFromCache(w,I,d);i.imagery.splice(n,0,new xD(F,R,r)),++n}}return!0};di.prototype._calculateTextureTranslationAndScale=function(e,t){let n=t.readyImagery.rectangle,i=e.rectangle;if(t.useWebMercatorT){let c=t.readyImagery.imageryLayer.imageryProvider.tilingScheme;n=c.rectangleToNativeRectangle(n,jme),i=c.rectangleToNativeRectangle(i,Yme)}let o=i.width,r=i.height,s=o/n.width,a=r/n.height;return new re(s*(i.west-n.west)/o,a*(i.south-n.south)/r,s,a)};di.prototype._requestImagery=function(e){let t=this._imageryProvider,n=this;function i(s){if(!l(s))return o();e.image=s,e.state=ui.RECEIVED,e.request=void 0,Ti.reportSuccess(n._requestImageError)}function o(s){if(e.request.state===ti.CANCELLED){e.state=ui.UNLOADED,e.request=void 0;return}e.state=ui.FAILED,e.request=void 0;let a=`Failed to obtain image tile X: ${e.x} Y: ${e.y} Level: ${e.level}.`;n._requestImageError=Ti.reportError(n._requestImageError,t,t.errorEvent,a,e.x,e.y,e.level,s),n._requestImageError.retry&&r()}function r(){let s=new Zo({throttle:!1,throttleByServer:!0,type:es.IMAGERY});e.request=s,e.state=ui.TRANSITIONING;let a=t.requestImage(e.x,e.y,e.level,s);if(!l(a)){e.state=ui.UNLOADED,e.request=void 0;return}l(t.getTileCredits)&&(e.credits=t.getTileCredits(e.x,e.y,e.level)),a.then(function(c){i(c)}).catch(function(c){o(c)})}r()};di.prototype._createTextureWebGL=function(e,t){let n=new dn({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),i=t.image;return l(i.internalFormat)?new Bt({context:e,pixelFormat:i.internalFormat,width:i.width,height:i.height,source:{arrayBufferView:i.bufferView},sampler:n}):new Bt({context:e,source:i,pixelFormat:this._imageryProvider.hasAlphaChannel?lt.RGBA:lt.RGB,sampler:n})};di.prototype._createTexture=function(e,t){let n=this._imageryProvider,i=t.image;if(l(n.tileDiscardPolicy)){let r=n.tileDiscardPolicy;if(l(r)){if(!r.isReady()){t.state=ui.RECEIVED;return}if(r.shouldDiscardImage(i)){t.state=ui.INVALID;return}}}let o=this._createTextureWebGL(e,t);n.tilingScheme.projection instanceof Pi?t.textureWebMercator=o:t.texture=o,t.image=void 0,t.state=ui.TEXTURE_LOADED};function Wme(e,t,n){return`${e}:${t}:${n}`}di.prototype._finalizeReprojectTexture=function(e,t){let n=this.minificationFilter,i=this.magnificationFilter;if(n===ln.LINEAR&&i===bi.LINEAR&&!lt.isCompressedFormat(t.pixelFormat)&&P.isPowerOfTwo(t.width)&&P.isPowerOfTwo(t.height)){n=ln.LINEAR_MIPMAP_LINEAR;let r=zt.maximumTextureFilterAnisotropy,s=Math.min(r,y(this._maximumAnisotropy,r)),a=Wme(n,i,s),c=e.cache.imageryLayerMipmapSamplers;l(c)||(c={},e.cache.imageryLayerMipmapSamplers=c);let u=c[a];l(u)||(u=c[a]=new dn({wrapS:Dn.CLAMP_TO_EDGE,wrapT:Dn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i,maximumAnisotropy:s})),t.generateMipmap(Ih.NICEST),t.sampler=u}else{let r=Wme(n,i,0),s=e.cache.imageryLayerNonMipmapSamplers;l(s)||(s={},e.cache.imageryLayerNonMipmapSamplers=s);let a=s[r];l(a)||(a=s[r]=new dn({wrapS:Dn.CLAMP_TO_EDGE,wrapT:Dn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i})),t.sampler=a}};di.prototype._reprojectTexture=function(e,t,n){let i=t.textureWebMercator||t.texture,o=t.rectangle,r=e.context;if(n=y(n,!0),n&&!(this._imageryProvider.tilingScheme.projection instanceof Di)&&o.width/i.width>1e-5){let s=this;t.addReference();let a=new Pf({persists:!0,owner:this,preExecute:function(c){qet(c,r,i,t.rectangle)},postExecute:function(c){t.texture=c,s._finalizeReprojectTexture(r,c),t.state=ui.READY,t.releaseReference()},canceled:function(){t.state=ui.TEXTURE_LOADED,t.releaseReference()}});this._reprojectComputeCommands.push(a)}else n&&(t.texture=i),this._finalizeReprojectTexture(r,i),t.state=ui.READY};di.prototype.queueReprojectionCommands=function(e){let t=this._reprojectComputeCommands,n=t.length;for(let i=0;i<n;++i)e.commandList.push(t[i]);t.length=0};di.prototype.cancelReprojections=function(){this._reprojectComputeCommands.forEach(function(e){l(e.canceled)&&e.canceled()}),this._reprojectComputeCommands.length=0};di.prototype.getImageryFromCache=function(e,t,n,i){let o=qme(e,t,n),r=this._imageryCache[o];return l(r)||(r=new AD(this,e,t,n,i),this._imageryCache[o]=r),r.addReference(),r};di.prototype.removeImageryFromCache=function(e){let t=qme(e.x,e.y,e.level);delete this._imageryCache[t]};function qme(e,t,n){return JSON.stringify([e,t,n])}var PU={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new H,texture:void 0},Yet=Gt.supportsTypedArrays()?new Float32Array(2*64):void 0;function qet(e,t,n,i){let o=t.cache.imageryLayer_reproject;if(!l(o)){o=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){l(this.framebuffer)&&this.framebuffer.destroy(),l(this.vertexArray)&&this.vertexArray.destroy(),l(this.shaderProgram)&&this.shaderProgram.destroy()}};let x=new Float32Array(2*64*2),C=0;for(let D=0;D<64;++D){let O=D/63;x[C++]=0,x[C++]=O,x[C++]=1,x[C++]=O}let T={position:0,webMercatorT:1},E=Xr.getRegularGridIndices(2,64),S=mt.createIndexBuffer({context:t,typedArray:E,usage:Fe.STATIC_DRAW,indexDatatype:Ve.UNSIGNED_SHORT});o.vertexArray=new ri({context:t,attributes:[{index:T.position,vertexBuffer:mt.createVertexBuffer({context:t,typedArray:x,usage:Fe.STATIC_DRAW}),componentsPerAttribute:2},{index:T.webMercatorT,vertexBuffer:mt.createVertexBuffer({context:t,sizeInBytes:64*2*4,usage:Fe.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:S});let v=new He({sources:[IU]});o.shaderProgram=Jt.fromCache({context:t,vertexShaderSource:v,fragmentShaderSource:DU,attributeLocations:T}),o.sampler=new dn({wrapS:Dn.CLAMP_TO_EDGE,wrapT:Dn.CLAMP_TO_EDGE,minificationFilter:ln.LINEAR,magnificationFilter:bi.LINEAR})}n.sampler=o.sampler;let r=n.width,s=n.height;PU.textureDimensions.x=r,PU.textureDimensions.y=s,PU.texture=n;let a=Math.sin(i.south),c=.5*Math.log((1+a)/(1-a));a=Math.sin(i.north);let f=1/(.5*Math.log((1+a)/(1-a))-c),d=new Bt({context:t,width:r,height:s,pixelFormat:n.pixelFormat,pixelDatatype:n.pixelDatatype,preMultiplyAlpha:n.preMultiplyAlpha});P.isPowerOfTwo(r)&&P.isPowerOfTwo(s)&&d.generateMipmap(Ih.NICEST);let p=i.south,g=i.north,h=Yet,A=0;for(let x=0;x<64;++x){let C=x/63,T=P.lerp(p,g,C);a=Math.sin(T);let S=(.5*Math.log((1+a)/(1-a))-c)*f;h[A++]=S,h[A++]=S}o.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(h),e.shaderProgram=o.shaderProgram,e.outputTexture=d,e.uniformMap=PU,e.vertexArray=o.vertexArray}function Xet(e,t,n){let i=e._imageryProvider,o=i.tilingScheme,r=o.ellipsoid,s=e._imageryProvider.tilingScheme.projection instanceof Di?1:Math.cos(n),a=o.rectangle,u=r.maximumRadius*a.width*s/(i.tileWidth*o.getNumberOfXTilesAtLevel(0))/t,f=Math.log(u)/Math.log(2);return Math.round(f)|0}function Ket(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function Jet(e,t){let n;try{if(n=await Promise.resolve(t),e.isDestroyed())return;e._imageryProvider=n,e._readyEvent.raiseEvent(n)}catch(i){Ket(e._errorEvent,i)}}var Qs=di;var Zet={WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7},yn=Zet;var Xme={NONE:0,CULLED:1,RENDERED:2,REFINED:3,RENDERED_AND_KICKED:6,REFINED_AND_KICKED:7,CULLED_BUT_NEEDED:9,wasKicked:function(e){return e>=Xme.RENDERED_AND_KICKED},originalResult:function(e){return e&3},kick:function(e){return e|4}},Qn=Xme;function XE(e){this.tile=e,this.frameLastUpdated=void 0,this.westMeshes=[],this.westTiles=[],this.southMeshes=[],this.southTiles=[],this.eastMeshes=[],this.eastTiles=[],this.northMeshes=[],this.northTiles=[],this.southwestMesh=void 0,this.southwestTile=void 0,this.southeastMesh=void 0,this.southeastTile=void 0,this.northwestMesh=void 0,this.northwestTile=void 0,this.northeastMesh=void 0,this.northeastTile=void 0,this.changedThisFrame=!0,this.visitedFrame=void 0,this.enqueuedFrame=void 0,this.mesh=void 0,this.vertexArray=void 0,this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new re}XE.prototype.update=function(e,t,n){this.changedThisFrame&&(the(e,t,this.tile,n),this.changedThisFrame=!1)};XE.prototype.destroy=function(e){this._destroyVertexArray(e),l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};XE.prototype._destroyVertexArray=function(e){l(this.vertexArray)&&(l(e)?e.push(this.vertexArray):Od._freeVertexArray(this.vertexArray),this.vertexArray=void 0)};var Qet=new z0;XE.updateFillTiles=function(e,t,n,i){let o=e._quadtree,r=o._levelZeroTiles,s=o._lastSelectionFrameNumber,a=Qet;a.clear();for(let u=0;u<t.length;++u){let f=t[u];l(f.data.vertexArray)&&a.enqueue(t[u])}let c=a.dequeue();for(;c!==void 0;){let u=c.findTileToWest(r),f=c.findTileToSouth(r),d=c.findTileToEast(r),p=c.findTileToNorth(r);as(e,n,c,u,s,yn.EAST,!1,a,i),as(e,n,c,f,s,yn.NORTH,!1,a,i),as(e,n,c,d,s,yn.WEST,!1,a,i),as(e,n,c,p,s,yn.SOUTH,!1,a,i);let g=u.findTileToNorth(r),h=u.findTileToSouth(r),A=d.findTileToNorth(r),x=d.findTileToSouth(r);as(e,n,c,g,s,yn.SOUTHEAST,!1,a,i),as(e,n,c,A,s,yn.SOUTHWEST,!1,a,i),as(e,n,c,h,s,yn.NORTHEAST,!1,a,i),as(e,n,c,x,s,yn.NORTHWEST,!1,a,i),c=a.dequeue()}};function as(e,t,n,i,o,r,s,a,c){if(i===void 0)return;let u=i;for(;u&&(u._lastSelectionResultFrame!==o||Qn.wasKicked(u._lastSelectionResult)||Qn.originalResult(u._lastSelectionResult)===Qn.CULLED);){if(s)return;let f=u.parent;if(r>=yn.NORTHWEST&&f!==void 0)switch(r){case yn.NORTHWEST:u=u===f.northwestChild?f:void 0;break;case yn.NORTHEAST:u=u===f.northeastChild?f:void 0;break;case yn.SOUTHWEST:u=u===f.southwestChild?f:void 0;break;case yn.SOUTHEAST:u=u===f.southeastChild?f:void 0;break}else u=f}if(u!==void 0){if(u._lastSelectionResult===Qn.RENDERED){if(l(u.data.vertexArray))return;$et(e,t,n,u,r,o,a,c);return}if(Qn.originalResult(i._lastSelectionResult)!==Qn.CULLED)switch(r){case yn.WEST:as(e,t,n,i.northwestChild,o,r,!0,a,c),as(e,t,n,i.southwestChild,o,r,!0,a,c);break;case yn.EAST:as(e,t,n,i.southeastChild,o,r,!0,a,c),as(e,t,n,i.northeastChild,o,r,!0,a,c);break;case yn.SOUTH:as(e,t,n,i.southwestChild,o,r,!0,a,c),as(e,t,n,i.southeastChild,o,r,!0,a,c);break;case yn.NORTH:as(e,t,n,i.northeastChild,o,r,!0,a,c),as(e,t,n,i.northwestChild,o,r,!0,a,c);break;case yn.NORTHWEST:as(e,t,n,i.northwestChild,o,r,!0,a,c);break;case yn.NORTHEAST:as(e,t,n,i.northeastChild,o,r,!0,a,c);break;case yn.SOUTHWEST:as(e,t,n,i.southwestChild,o,r,!0,a,c);break;case yn.SOUTHEAST:as(e,t,n,i.southeastChild,o,r,!0,a,c);break;default:throw new fe("Invalid edge")}}}function $et(e,t,n,i,o,r,s,a){let c=i.data;if(c.fill===void 0)c.fill=new XE(i);else if(c.fill.visitedFrame===r)return;c.fill.enqueuedFrame!==r&&(c.fill.enqueuedFrame=r,c.fill.changedThisFrame=!1,s.enqueue(i)),ett(e,t,n,i,o,a)}function ett(e,t,n,i,o,r){let s=i.data.fill,a,c=n.data.fill;l(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(the(e,t,n,r),c.changedThisFrame=!1),a=n.data.fill.mesh):a=n.data.mesh;let u,f;switch(o){case yn.WEST:u=s.westMeshes,f=s.westTiles;break;case yn.SOUTH:u=s.southMeshes,f=s.southTiles;break;case yn.EAST:u=s.eastMeshes,f=s.eastTiles;break;case yn.NORTH:u=s.northMeshes,f=s.northTiles;break;case yn.NORTHWEST:s.changedThisFrame=s.changedThisFrame||s.northwestMesh!==a,s.northwestMesh=a,s.northwestTile=n;return;case yn.NORTHEAST:s.changedThisFrame=s.changedThisFrame||s.northeastMesh!==a,s.northeastMesh=a,s.northeastTile=n;return;case yn.SOUTHWEST:s.changedThisFrame=s.changedThisFrame||s.southwestMesh!==a,s.southwestMesh=a,s.southwestTile=n;return;case yn.SOUTHEAST:s.changedThisFrame=s.changedThisFrame||s.southeastMesh!==a,s.southeastMesh=a,s.southeastTile=n;return}if(n.level<=i.level){s.changedThisFrame=s.changedThisFrame||u[0]!==a||u.length!==1,u[0]=a,f[0]=n,u.length=1,f.length=1;return}let d,p,g,h,A=n.rectangle,x,C=i.rectangle;switch(o){case yn.WEST:for(x=(C.north-C.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],h=g.rectangle,!P.greaterThan(A.north,h.south,x));++d);for(p=d;p<f.length&&(g=f[p],h=g.rectangle,!P.greaterThanOrEquals(A.south,h.north,x));++p);break;case yn.SOUTH:for(x=(C.east-C.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],h=g.rectangle,!P.lessThan(A.west,h.east,x));++d);for(p=d;p<f.length&&(g=f[p],h=g.rectangle,!P.lessThanOrEquals(A.east,h.west,x));++p);break;case yn.EAST:for(x=(C.north-C.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],h=g.rectangle,!P.lessThan(A.south,h.north,x));++d);for(p=d;p<f.length&&(g=f[p],h=g.rectangle,!P.lessThanOrEquals(A.north,h.south,x));++p);break;case yn.NORTH:for(x=(C.east-C.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],h=g.rectangle,!P.greaterThan(A.east,h.west,x));++d);for(p=d;p<f.length&&(g=f[p],h=g.rectangle,!P.greaterThanOrEquals(A.west,h.east,x));++p);break}p-d===1?(s.changedThisFrame=s.changedThisFrame||u[d]!==a,u[d]=a,f[d]=n):(s.changedThisFrame=!0,u.splice(d,p-d,a),f.splice(d,p-d,n))}var DA=new he,ttt=new he,qE=new m,gj=new m,hj=new H,pj=new H,lu=new H;function FU(){this.height=0,this.encodedNormal=new H}function OU(e,t,n,i,o,r,s,a,c){if(l(o))return o;let u;if(l(r)&&l(s))u=(r.height+s.height)*.5;else if(l(r))u=r.height;else if(l(s))u=s.height;else if(l(a))u=a.height;else{let d=e.tile.data.tileBoundingRegion,p=0,g=0;l(d)&&(p=d.minimumHeight,g=d.maximumHeight),u=(p+g)*.5}return nhe(e,t,n,i,u,c),c}var ntt={minimumHeight:0,maximumHeight:0},itt=new m,Kme=new FU,Jme=new FU,Zme=new FU,Qme=new FU,ott=typeof Uint8Array<"u"?new Uint8Array(9*9):void 0,rtt={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0};function the(e,t,n,i){Od.initialize(n,e.terrainProvider,e._imageryLayers);let o=n.data,r=o.fill,s=n.rectangle,a=t.terrainExaggeration,c=t.terrainExaggerationRelativeHeight,u=a!==1,f=n.tilingScheme.ellipsoid,d=RU(r,f,0,1,r.northwestTile,r.northwestMesh,r.northTiles,r.northMeshes,r.westTiles,r.westMeshes,Zme),p=RU(r,f,0,0,r.southwestTile,r.southwestMesh,r.westTiles,r.westMeshes,r.southTiles,r.southMeshes,Kme),g=RU(r,f,1,0,r.southeastTile,r.southeastMesh,r.southTiles,r.southMeshes,r.eastTiles,r.eastMeshes,Jme),h=RU(r,f,1,1,r.northeastTile,r.northeastMesh,r.eastTiles,r.eastMeshes,r.northTiles,r.northMeshes,Qme);d=OU(r,f,0,1,d,p,h,g,Zme),p=OU(r,f,0,0,p,d,g,h,Kme),g=OU(r,f,1,1,g,p,h,d,Jme),h=OU(r,f,1,1,h,g,d,p,Qme);let A=p.height,x=g.height,C=d.height,T=h.height,E=Math.min(A,x,C,T),S=Math.max(A,x,C,T),v=(E+S)*.5,D,O,M=e.getLevelMaximumGeometricError(n.level),L=f.maximumRadius-M,N=Math.acos(L/f.maximumRadius)*4;if(N*=1.5,s.width>N&&S-E<=M){let w=new qa({width:9,height:9,buffer:ott,structure:{heightOffset:S}}),I=rtt;I.tilingScheme=n.tilingScheme,I.x=n.x,I.y=n.y,I.level=n.level,I.exaggeration=a,I.exaggerationRelativeHeight=c,r.mesh=w._createMeshSync(I)}else{let w=u,I=le.center(s,ttt);I.height=v;let R=f.cartographicToCartesian(I,itt),F=new Dc(R,void 0,void 0,void 0,void 0,!0,!0,w,a,c),k=5,V;for(V=r.westMeshes,D=0,O=V.length;D<O;++D)k+=V[D].eastIndicesNorthToSouth.length;for(V=r.southMeshes,D=0,O=V.length;D<O;++D)k+=V[D].northIndicesWestToEast.length;for(V=r.eastMeshes,D=0,O=V.length;D<O;++D)k+=V[D].westIndicesSouthToNorth.length;for(V=r.northMeshes,D=0,O=V.length;D<O;++D)k+=V[D].southIndicesEastToWest.length;let G=ntt;G.minimumHeight=E,G.maximumHeight=S;let U=F.stride,q=new Float32Array(k*U),Y=0,Q=Y;Y=MU(f,s,F,q,Y,0,1,d.height,d.encodedNormal,1,G),Y=LU(r,f,F,q,Y,r.westTiles,r.westMeshes,yn.EAST,G);let W=Y;Y=MU(f,s,F,q,Y,0,0,p.height,p.encodedNormal,0,G),Y=LU(r,f,F,q,Y,r.southTiles,r.southMeshes,yn.NORTH,G);let K=Y;Y=MU(f,s,F,q,Y,1,0,g.height,g.encodedNormal,0,G),Y=LU(r,f,F,q,Y,r.eastTiles,r.eastMeshes,yn.WEST,G);let J=Y;Y=MU(f,s,F,q,Y,1,1,h.height,h.encodedNormal,1,G),Y=LU(r,f,F,q,Y,r.northTiles,r.northMeshes,yn.SOUTH,G),E=G.minimumHeight,S=G.maximumHeight;let _e=Bn.fromRectangle(s,E,S,n.tilingScheme.ellipsoid),xe=Pi.geodeticLatitudeToMercatorAngle(s.south),se=1/(Pi.geodeticLatitudeToMercatorAngle(s.north)-xe),Ae=(Pi.geodeticLatitudeToMercatorAngle(I.latitude)-xe)*se,me=f.geodeticSurfaceNormalCartographic(DA,gj),Se=qn.octEncode(me,hj),Ie=Y;F.encode(q,Y*U,_e.center,H.fromElements(.5,.5,lu),v,Se,Ae,me),++Y;let Ue=Y,Re=Ue<256?1:2,ke=(Ue-1)*3,ft=ke*Re,pt=(q.length-Ue*U)*Float32Array.BYTES_PER_ELEMENT,rt;if(pt>=ft){let Ee=Ue*U*Float32Array.BYTES_PER_ELEMENT;rt=Ue<256?new Uint8Array(q.buffer,Ee,ke):new Uint16Array(q.buffer,Ee,ke)}else rt=Ue<256?new Uint8Array(ke):new Uint16Array(ke);q=new Float32Array(q.buffer,0,Ue*U);let un=0;for(D=0;D<Ue-2;++D)rt[un++]=Ie,rt[un++]=D,rt[un++]=D+1;rt[un++]=Ie,rt[un++]=D,rt[un++]=0;let Mn=[];for(D=W;D>=Q;--D)Mn.push(D);let Wt=[];for(D=K;D>=W;--D)Wt.push(D);let Ze=[];for(D=J;D>=K;--D)Ze.push(D);let pe=[];for(pe.push(0),D=Ie-1;D>=J;--D)pe.push(D);r.mesh=new Pd(F.center,q,rt,ke,Ue,E,S,ae.fromOrientedBoundingBox(_e),dtt(e,_e.center,s,E,S),F.stride,_e,F,Mn,Wt,Ze,pe)}let _=t.context;r._destroyVertexArray(i),r.vertexArray=Od._createVertexArrayForMesh(_,r.mesh),o.processImagery(n,e.terrainProvider,t,!0);let b=r.waterMaskTexture;if(r.waterMaskTexture=void 0,e.terrainProvider.hasWaterMask){let w=o._findAncestorTileWithTerrainData(n);l(w)&&l(w.data.waterMaskTexture)&&(r.waterMaskTexture=w.data.waterMaskTexture,++r.waterMaskTexture.referenceCount,o._computeWaterMaskTranslationAndScale(n,w,r.waterMaskTranslationAndScale))}l(b)&&(--b.referenceCount,b.referenceCount===0&&b.destroy())}function MU(e,t,n,i,o,r,s,a,c,u,f){let d=DA;d.longitude=P.lerp(t.west,t.east,r),d.latitude=P.lerp(t.south,t.north,s),d.height=a;let p=e.cartographicToCartesian(d,qE),g;n.hasGeodeticSurfaceNormals&&(g=e.geodeticSurfaceNormal(p,gj));let h=pj;return h.x=r,h.y=s,n.encode(i,o*n.stride,p,h,a,c,u,g),f.minimumHeight=Math.min(f.minimumHeight,a),f.maximumHeight=Math.max(f.maximumHeight,a),o+1}var NU=new le;function CD(e,t,n,i){let o=e.rectangle,r=t.rectangle;t.x===0&&n.x===1&&e.x===e.tilingScheme.getNumberOfXTilesAtLevel(e.level)-1?(o=le.clone(e.rectangle,NU),o.west-=P.TWO_PI,o.east-=P.TWO_PI):e.x===0&&n.x===0&&t.x===t.tilingScheme.getNumberOfXTilesAtLevel(t.level)-1&&(o=le.clone(e.rectangle,NU),o.west+=P.TWO_PI,o.east+=P.TWO_PI);let s=o.east-o.west,a=(r.west-o.west)/s,c=(r.east-o.west)/s,u=o.north-o.south,f=(r.south-o.south)/u,d=(r.north-o.south)/u,p=(n.x-a)/(c-a),g=(n.y-f)/(d-f);return Math.abs(p)<Math.EPSILON5?p=0:Math.abs(p-1)<Math.EPSILON5&&(p=1),Math.abs(g)<Math.EPSILON5?g=0:Math.abs(g-1)<Math.EPSILON5&&(g=1),i.x=p,i.y=g,i}var stt=new H;function _j(e,t,n,i,o){let r=e.encoding,s=e.vertices;if(o.height=r.decodeHeight(s,t),r.hasVertexNormals)r.getOctEncodedNormal(s,t,o.encodedNormal);else{let a=o.encodedNormal;a.x=0,a.y=0}}var att=new H,ctt=new m;function ltt(e,t,n,i,o,r,s,a,c,u){let f=i.encoding,d=i.vertices,p=CD(t,n,f.decodeTextureCoordinates(d,o,lu),lu),g=CD(t,n,f.decodeTextureCoordinates(d,r,pj),pj),h;c?h=(s-p.x)/(g.x-p.x):h=(a-p.y)/(g.y-p.y);let A=f.decodeHeight(d,o),x=f.decodeHeight(d,r),C=n.rectangle;DA.longitude=P.lerp(C.west,C.east,s),DA.latitude=P.lerp(C.south,C.north,a),u.height=DA.height=P.lerp(A,x,h);let T;if(f.hasVertexNormals){let E=f.getOctEncodedNormal(d,o,stt),S=f.getOctEncodedNormal(d,r,att),v=qn.octDecode(E.x,E.y,qE),D=qn.octDecode(S.x,S.y,ctt);T=m.lerp(v,D,h,qE),m.normalize(T,T),qn.octEncode(T,u.encodedNormal)}else T=e.geodeticSurfaceNormalCartographic(DA,qE),qn.octEncode(T,u.encodedNormal)}function nhe(e,t,n,i,o,r){r.height=o;let s=t.geodeticSurfaceNormalCartographic(DA,qE);qn.octEncode(s,r.encodedNormal)}function RU(e,t,n,i,o,r,s,a,c,u,f){if(ehe(e,t,a,s,!1,n,i,f)||ehe(e,t,u,c,!0,n,i,f))return f;let p;if(yj(o,r))return n===0?i===0?p=r.eastIndicesNorthToSouth[0]:p=r.southIndicesEastToWest[0]:i===0?p=r.northIndicesWestToEast[0]:p=r.westIndicesSouthToNorth[0],_j(r,p,n,i,f),f;let g;if(n===0?i===0?g=BU(e.westMeshes,e.westTiles,yn.EAST,e.southMeshes,e.southTiles,yn.NORTH,n,i):g=BU(e.northMeshes,e.northTiles,yn.SOUTH,e.westMeshes,e.westTiles,yn.EAST,n,i):i===0?g=BU(e.southMeshes,e.southTiles,yn.NORTH,e.eastMeshes,e.eastTiles,yn.WEST,n,i):g=BU(e.eastMeshes,e.eastTiles,yn.WEST,e.northMeshes,e.northTiles,yn.SOUTH,n,i),l(g))return nhe(e,t,n,i,g,f),f}function BU(e,t,n,i,o,r,s,a){let c=$me(e,t,!1,n,s,a),u=$me(i,o,!0,r,s,a);return l(c)&&l(u)?(c+u)*.5:l(c)?c:u}function LU(e,t,n,i,o,r,s,a,c){for(let u=0;u<r.length;++u)o=utt(e,t,n,i,o,r[u],s[u],a,c);return o}function utt(e,t,n,i,o,r,s,a,c){let u=r.rectangle;a===yn.EAST&&e.tile.x===0?(u=le.clone(r.rectangle,NU),u.west-=P.TWO_PI,u.east-=P.TWO_PI):a===yn.WEST&&r.x===0&&(u=le.clone(r.rectangle,NU),u.west+=P.TWO_PI,u.east+=P.TWO_PI);let f=e.tile.rectangle,d,p;o>0&&(n.decodeTextureCoordinates(i,o-1,lu),d=lu.x,p=lu.y);let g,h;switch(a){case yn.WEST:g=s.westIndicesSouthToNorth,h=!1;break;case yn.NORTH:g=s.northIndicesWestToEast,h=!0;break;case yn.EAST:g=s.eastIndicesNorthToSouth,h=!1;break;case yn.SOUTH:g=s.southIndicesEastToWest,h=!0;break}let A=r,x=e.tile,C=s.encoding,T=s.vertices,E=n.stride,S,v;C.hasWebMercatorT&&(S=Pi.geodeticLatitudeToMercatorAngle(f.south),v=1/(Pi.geodeticLatitudeToMercatorAngle(f.north)-S));for(let D=0;D<g.length;++D){let O=g[D],M=C.decodeTextureCoordinates(T,O,lu);CD(A,x,M,M);let L=M.x,N=M.y,_=h?L:N;if(_<0||_>1||Math.abs(L-d)<P.EPSILON5&&Math.abs(N-p)<P.EPSILON5)continue;let b=Math.abs(L)<P.EPSILON5||Math.abs(L-1)<P.EPSILON5,w=Math.abs(N)<P.EPSILON5||Math.abs(N-1)<P.EPSILON5;if(b&&w)continue;let I=C.decodePosition(T,O,qE),R=C.decodeHeight(T,O),F;C.hasVertexNormals?F=C.getOctEncodedNormal(T,O,hj):(F=hj,F.x=0,F.y=0);let k=N;if(C.hasWebMercatorT){let G=P.lerp(f.south,f.north,N);k=(Pi.geodeticLatitudeToMercatorAngle(G)-S)*v}let V;n.hasGeodeticSurfaceNormals&&(V=t.geodeticSurfaceNormal(I,gj)),n.encode(i,o*E,I,M,R,F,k,V),c.minimumHeight=Math.min(c.minimumHeight,R),c.maximumHeight=Math.max(c.maximumHeight,R),++o}return o}function $me(e,t,n,i,o,r){let s,a,c;n?(s=0,a=e.length,c=1):(s=e.length-1,a=-1,c=-1);for(let u=s;u!==a;u+=c){let f=e[u],d=t[u];if(!yj(d,f))continue;let p;switch(i){case yn.WEST:p=f.westIndicesSouthToNorth;break;case yn.SOUTH:p=f.southIndicesEastToWest;break;case yn.EAST:p=f.eastIndicesNorthToSouth;break;case yn.NORTH:p=f.northIndicesWestToEast;break}let g=p[n?0:p.length-1];if(l(g))return f.encoding.decodeHeight(f.vertices,g)}}function yj(e,t){return l(t)&&(!l(e.data.fill)||!e.data.fill.changedThisFrame)}function ehe(e,t,n,i,o,r,s,a){let c,u,f,d,p,g=i[o?0:n.length-1],h=n[o?0:n.length-1];if(yj(g,h)&&(r===0?s===0?(c=o?h.northIndicesWestToEast:h.eastIndicesNorthToSouth,u=o,f=o):(c=o?h.eastIndicesNorthToSouth:h.southIndicesEastToWest,u=!o,f=!1):s===0?(c=o?h.westIndicesSouthToNorth:h.northIndicesWestToEast,u=!o,f=!0):(c=o?h.southIndicesEastToWest:h.westIndicesSouthToNorth,u=o,f=!o),c.length>0)){d=o?0:c.length-1,p=c[d],h.encoding.decodeTextureCoordinates(h.vertices,p,lu);let A=CD(g,e.tile,lu,lu);if(A.x===r&&A.y===s)return _j(h,p,r,s,a),!0;if(d=Do(c,u?r:s,function(x,C){h.encoding.decodeTextureCoordinates(h.vertices,x,lu);let T=CD(g,e.tile,lu,lu);return f?u?T.x-r:T.y-s:u?r-T.x:s-T.y}),d<0){if(d=~d,d>0&&d<c.length)return ltt(t,g,e.tile,h,c[d-1],c[d],r,s,u,a),!0}else return _j(h,c[d],r,s,a),!0}return!1}var ftt=[new m,new m,new m,new m];function dtt(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=ftt;return m.fromRadians(n.west,n.south,o,a,c[0]),m.fromRadians(n.east,n.south,o,a,c[1]),m.fromRadians(n.west,n.north,o,a,c[2]),m.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}var TD=XE;function qo(e){this.lightingFadeOutDistance=65e5,this.lightingFadeInDistance=9e6,this.hasWaterMask=!1,this.oceanNormalMap=void 0,this.zoomedOutOceanSpecularIntensity=.5,this.enableLighting=!1,this.dynamicAtmosphereLighting=!1,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!1,this.shadows=xn.RECEIVE_ONLY,this.vertexShadowDarkness=.3,this.fillHighlightColor=void 0,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this.undergroundColor=void 0,this.undergroundColorAlphaByDistance=void 0,this.lambertDiffuseMultiplier=0,this.materialUniformMap=void 0,this._materialUniformMap=void 0,this._quadtree=void 0,this._terrainProvider=e.terrainProvider,this._imageryLayers=e.imageryLayers,this._surfaceShaderSet=e.surfaceShaderSet,this._renderState=void 0,this._blendRenderState=void 0,this._disableCullingRenderState=void 0,this._disableCullingBlendRenderState=void 0,this._errorEvent=new ge,this._removeLayerAddedListener=this._imageryLayers.layerAdded.addEventListener(qo.prototype._onLayerAdded,this),this._removeLayerRemovedListener=this._imageryLayers.layerRemoved.addEventListener(qo.prototype._onLayerRemoved,this),this._removeLayerMovedListener=this._imageryLayers.layerMoved.addEventListener(qo.prototype._onLayerMoved,this),this._removeLayerShownListener=this._imageryLayers.layerShownOrHidden.addEventListener(qo.prototype._onLayerShownOrHidden,this),this._imageryLayersUpdatedEvent=new ge,this._layerOrderChanged=!1,this._tilesToRenderByTextureCount=[],this._drawCommands=[],this._uniformMaps=[],this._usedDrawCommands=0,this._vertexArraysToDestroy=[],this._debug={wireframe:!1,boundingSphereTile:void 0},this._baseColor=void 0,this._firstPassInitialColor=void 0,this.baseColor=new z(0,0,.5,1),this._clippingPlanes=void 0,this.cartographicLimitRectangle=le.clone(le.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1,this._oldTerrainExaggeration=void 0,this._oldTerrainExaggerationRelativeHeight=void 0}Object.defineProperties(qo.prototype,{baseColor:{get:function(){return this._baseColor},set:function(e){this._baseColor=e,this._firstPassInitialColor=re.fromColor(e,this._firstPassInitialColor)}},quadtree:{get:function(){return this._quadtree},set:function(e){this._quadtree=e}},ready:{get:function(){return l(this._terrainProvider)&&this._terrainProvider._ready&&(this._imageryLayers.length===0||this._imageryLayers.get(0).ready&&this._imageryLayers.get(0).imageryProvider._ready)}},tilingScheme:{get:function(){return this._terrainProvider.tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},imageryLayersUpdatedEvent:{get:function(){return this._imageryLayersUpdatedEvent}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){this._terrainProvider!==e&&(this._terrainProvider=e,l(this._quadtree)&&this._quadtree.invalidateAllTiles())}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){gs.setOwner(e,this,"_clippingPlanes")}}});function mtt(e,t){let n=e.loadingImagery;l(n)||(n=e.readyImagery);let i=t.loadingImagery;return l(i)||(i=t.readyImagery),n.imageryLayer._layerIndex-i.imageryLayer._layerIndex}qo.prototype.update=function(e){this._imageryLayers._update()};function htt(e,t){let n=t.creditDisplay;l(e._terrainProvider)&&e._terrainProvider._ready&&l(e._terrainProvider.credit)&&n.addCreditToNextFrame(e._terrainProvider.credit);let i=e._imageryLayers;for(let o=0,r=i.length;o<r;++o){let s=i.get(o);s.ready&&s.imageryProvider._ready&&l(s.imageryProvider.credit)&&n.addCreditToNextFrame(s.imageryProvider.credit)}}qo.prototype.initialize=function(e){this._imageryLayers.queueReprojectionCommands(e),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(i){i.data.imagery.sort(mtt)})),htt(this,e);let t=this._vertexArraysToDestroy,n=t.length;for(let i=0;i<n;++i)Od._freeVertexArray(t[i]);t.length=0};qo.prototype.beginUpdate=function(e){let t=this._tilesToRenderByTextureCount;for(let i=0,o=t.length;i<o;++i){let r=t[i];l(r)&&(r.length=0)}let n=this._clippingPlanes;l(n)&&n.enabled&&n.update(e),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1};qo.prototype.endUpdate=function(e){if(!l(this._renderState)){this._renderState=ze.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:fc.LESS}}),this._blendRenderState=ze.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:fc.LESS_OR_EQUAL},blending:mn.ALPHA_BLEND});let s=Ye(this._renderState,!0);s.cull.enabled=!1,this._disableCullingRenderState=ze.fromCache(s),s=Ye(this._blendRenderState,!0),s.cull.enabled=!1,this._disableCullingBlendRenderState=ze.fromCache(s)}this._hasFillTilesThisFrame&&this._hasLoadedTilesThisFrame&&TD.updateFillTiles(this,this._quadtree._tilesToRender,e,this._vertexArraysToDestroy);let t=this.quadtree,n=e.terrainExaggeration,i=e.terrainExaggerationRelativeHeight,o=this._oldTerrainExaggeration!==n||this._oldTerrainExaggerationRelativeHeight!==i;this._oldTerrainExaggeration=n,this._oldTerrainExaggerationRelativeHeight=i,o&&t.forEachLoadedTile(function(s){s.data.updateExaggeration(s,e,t)});let r=this._tilesToRenderByTextureCount;for(let s=0,a=r.length;s<a;++s){let c=r[s];if(l(c))for(let u=0,f=c.length;u<f;++u){let d=c[u],p=d.data.tileBoundingRegion;Utt(this,d,e),e.minimumTerrainHeight=Math.min(e.minimumTerrainHeight,p.minimumHeight)}}};function ahe(e,t){let n=t.globeTranslucencyState;if(n.translucent){let i=e.renderState.blending.enabled;n.pushDerivedCommands(e,i,t)}else t.commandList.push(e)}qo.prototype.updateForPick=function(e){let t=this._drawCommands;for(let n=0,i=this._usedDrawCommands;n<i;++n)ahe(t[n],e)};qo.prototype.cancelReprojections=function(){this._imageryLayers.cancelReprojections()};qo.prototype.getLevelMaximumGeometricError=function(e){return l(this._terrainProvider)?this._terrainProvider.getLevelMaximumGeometricError(e):0};qo.prototype.loadTile=function(e,t){let n=t.data,i=!0,o;l(n)&&(i=n.boundingVolumeSourceTile!==t||t._lastSelectionResult===Qn.CULLED_BUT_NEEDED,o=n.terrainState),Od.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i),n=t.data,i&&o!==t.data.terrainState&&this.computeTileVisibility(t,e,this.quadtree.occluders)!==mr.NONE&&n.boundingVolumeSourceTile===t&&(i=!1,Od.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i))};var ptt=new ae,che=new le,_tt=new le,gtt=new he;function VU(e,t){if(t.west<t.east)return t;let n=le.clone(t,_tt);return le.center(e,gtt).longitude>0?n.east=P.PI:n.west=-P.PI,n}function lhe(e,t){if(t.cameraUnderground||t.globeTranslucencyState.translucent)return!0;if(e.backFaceCulling)return!1;let n=e._clippingPlanes;return!!(l(n)&&n.enabled||!le.equals(e.cartographicLimitRectangle,le.MAX_VALUE))}qo.prototype.computeTileVisibility=function(e,t,n){let i=this.computeDistanceToTile(e,t);e._distance=i;let o=lhe(this,t);if(t.fog.enabled&&!o&&P.fog(i,t.fog.density)>=1)return mr.NONE;let r=e.data,s=r.tileBoundingRegion;if(r.boundingVolumeSourceTile===void 0)return mr.PARTIAL;let a=t.cullingVolume,c=s.boundingVolume;l(c)||(c=s.boundingSphere),r.clippedByBoundaries=!1;let u=VU(e.rectangle,this.cartographicLimitRectangle),f=le.simpleIntersection(u,e.rectangle,che);if(!l(f))return mr.NONE;if(le.equals(f,e.rectangle)||(r.clippedByBoundaries=!0),t.mode!==ne.SCENE3D&&(c=ptt,ae.fromRectangleWithHeights2D(e.rectangle,t.mapProjection,s.minimumHeight,s.maximumHeight,c),m.fromElements(c.center.z,c.center.x,c.center.y,c.center),t.mode===ne.MORPHING&&l(r.renderedMesh)&&(c=ae.union(s.boundingSphere,c,c))),!l(c))return mr.PARTIAL;let d=this._clippingPlanes;if(l(d)&&d.enabled){let A=d.computeIntersectionWithBoundingVolume(c);if(e.isClipped=A!==$t.INSIDE,A===$t.OUTSIDE)return mr.NONE}let p,g=a.computeVisibility(c);if(g===$t.OUTSIDE?p=mr.NONE:g===$t.INTERSECTING?p=mr.PARTIAL:g===$t.INSIDE&&(p=mr.FULL),p===mr.NONE)return p;let h=t.mode===ne.SCENE3D&&t.camera.frustum instanceof tn;if(t.mode===ne.SCENE3D&&!h&&l(n)&&!o){let A=r.occludeePointInScaledSpace;return!l(A)||n.ellipsoid.isScaledSpacePointVisiblePossiblyUnderEllipsoid(A,s.minimumHeight)?p:mr.NONE}return p};qo.prototype.canRefine=function(e){return l(e.data.terrainData)?!0:this.terrainProvider.getTileDataAvailable(e.x*2,e.y*2,e.level+1)!==void 0};var ytt=[],Att=[];qo.prototype.canRenderWithoutLosingDetail=function(e,t){let n=e.data,i=ytt;i.length=this._imageryLayers.length;let o=!1,r=!1,s;l(n)&&(o=n.terrainState===yo.READY,r=!0,s=n.imagery);let a,c;for(a=0,c=i.length;a<c;++a)i[a]=r;if(l(s))for(a=0,c=s.length;a<c;++a){let d=s[a],p=d.loadingImagery,g=!l(p)||p.state===ui.FAILED||p.state===ui.INVALID,h=(d.loadingImagery||d.readyImagery).imageryLayer._layerIndex;i[h]=g&&i[h]}let u=this.quadtree._lastSelectionFrameNumber,f=Att;for(f.length=0,f.push(e.southwestChild,e.southeastChild,e.northwestChild,e.northeastChild);f.length>0;){let d=f.pop(),p=d._lastSelectionResultFrame===u?d._lastSelectionResult:Qn.NONE;if(p===Qn.RENDERED){let g=d.data;if(!l(g))continue;if(!o&&d.data.terrainState===yo.READY)return!1;let h=d.data.imagery;for(a=0,c=h.length;a<c;++a){let A=h[a],x=A.loadingImagery,C=!l(x)||x.state===ui.FAILED||x.state===ui.INVALID,T=(A.loadingImagery||A.readyImagery).imageryLayer._layerIndex;if(C&&!i[T])return!1}}else p===Qn.REFINED&&f.push(d.southwestChild,d.southeastChild,d.northwestChild,d.northeastChild)}return!0};var xtt=new m;qo.prototype.computeTileLoadPriority=function(e,t){let n=e.data;if(n===void 0)return 0;let i=n.tileBoundingRegion.boundingVolume;if(i===void 0)return 0;let o=t.camera.positionWC,r=t.camera.directionWC,s=m.subtract(i.center,o,xtt),a=m.magnitude(s);return a<P.EPSILON5?0:(m.divideByScalar(s,a,s),(1-m.dot(s,r))*e._distance)};var ihe=new B,UU=new B,Ctt=new re,Ttt=new re,Ett=new re,btt=new m,ohe=new m,Stt=new m,wtt=new m;qo.prototype.showTileThisFrame=function(e,t){let n=0,i=e.data.imagery;for(let a=0,c=i.length;a<c;++a){let u=i[a];l(u.readyImagery)&&u.readyImagery.imageryLayer.alpha!==0&&++n}let o=this._tilesToRenderByTextureCount[n];l(o)||(o=[],this._tilesToRenderByTextureCount[n]=o),o.push(e);let r=e.data;l(r.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;let s=this._debug;++s.tilesRendered,s.texturesRendered+=n};var vtt=[new m,new m,new m,new m];function rhe(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=vtt;return m.fromRadians(n.west,n.south,o,a,c[0]),m.fromRadians(n.east,n.south,o,a,c[1]),m.fromRadians(n.west,n.north,o,a,c[2]),m.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}qo.prototype.computeDistanceToTile=function(e,t){Dtt(e,this,t);let n=e.data;if(n.boundingVolumeSourceTile===void 0)return 9999999999;let o=n.tileBoundingRegion,r=o.minimumHeight,s=o.maximumHeight;if(n.boundingVolumeSourceTile!==e){let c=t.camera.positionCartographic.height,u=Math.abs(c-r),f=Math.abs(c-s);u>f?(o.minimumHeight=r,o.maximumHeight=r):(o.minimumHeight=s,o.maximumHeight=s)}let a=o.distanceToCamera(t);return o.minimumHeight=r,o.maximumHeight=s,a};function Dtt(e,t,n){let i=e.data;i===void 0&&(i=e.data=new Od);let o=e.tilingScheme.ellipsoid;i.tileBoundingRegion===void 0&&(i.tileBoundingRegion=new id({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:o,minimumHeight:0,maximumHeight:0}));let r=i.tileBoundingRegion,s=r.minimumHeight,a=r.maximumHeight,c=!1,u=e,f=i.mesh,d=i.terrainData;if(f!==void 0&&f.minimumHeight!==void 0&&f.maximumHeight!==void 0)r.minimumHeight=f.minimumHeight,r.maximumHeight=f.maximumHeight,c=!0;else if(d!==void 0&&d._minimumHeight!==void 0&&d._maximumHeight!==void 0)r.minimumHeight=d._minimumHeight,r.maximumHeight=d._maximumHeight;else{r.minimumHeight=Number.NaN,r.maximumHeight=Number.NaN;let p=e.parent;for(;p!==void 0;){let g=p.data;if(g!==void 0){let h=g.mesh,A=g.terrainData;if(h!==void 0&&h.minimumHeight!==void 0&&h.maximumHeight!==void 0){r.minimumHeight=h.minimumHeight,r.maximumHeight=h.maximumHeight;break}else if(A!==void 0&&A._minimumHeight!==void 0&&A._maximumHeight!==void 0){r.minimumHeight=A._minimumHeight,r.maximumHeight=A._maximumHeight;break}}p=p.parent}u=p}if(u!==void 0){let p=n.terrainExaggeration,g=n.terrainExaggerationRelativeHeight;if(p!==1&&(c=!1,r.minimumHeight=Wc.getHeight(r.minimumHeight,p,g),r.maximumHeight=Wc.getHeight(r.maximumHeight,p,g)),c)i.boundingVolumeIsFromMesh||(r._orientedBoundingBox=Bn.clone(f.orientedBoundingBox,r._orientedBoundingBox),r._boundingSphere=ae.clone(f.boundingSphere3D,r._boundingSphere),i.occludeePointInScaledSpace=m.clone(f.occludeePointInScaledSpace,i.occludeePointInScaledSpace),l(i.occludeePointInScaledSpace)||(i.occludeePointInScaledSpace=rhe(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace)));else{let A=r._orientedBoundingBox===void 0||r._boundingSphere===void 0;(r.minimumHeight!==s||r.maximumHeight!==a||A)&&(r.computeBoundingVolumes(o),i.occludeePointInScaledSpace=rhe(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace))}i.boundingVolumeSourceTile=u,i.boundingVolumeIsFromMesh=c}else i.boundingVolumeSourceTile=void 0,i.boundingVolumeIsFromMesh=!1}qo.prototype.isDestroyed=function(){return!1};qo.prototype.destroy=function(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._removeLayerAddedListener=this._removeLayerAddedListener&&this._removeLayerAddedListener(),this._removeLayerRemovedListener=this._removeLayerRemovedListener&&this._removeLayerRemovedListener(),this._removeLayerMovedListener=this._removeLayerMovedListener&&this._removeLayerMovedListener(),this._removeLayerShownListener=this._removeLayerShownListener&&this._removeLayerShownListener(),ue(this)};function Itt(e,t,n){return function(i){let o,r,s=-1,a=i.data.imagery,c=a.length,u;for(u=0;u<c;++u)if(o=a[u],r=y(o.readyImagery,o.loadingImagery),r.imageryLayer===t){s=u;break}if(s!==-1){let f=s+e;if(o=a[f],r=l(o)?y(o.readyImagery,o.loadingImagery):void 0,!l(r)||r.imageryLayer!==t)return!t._createTileImagerySkeletons(i,n,f);for(u=s;u<f;++u)a[u].freeResources();a.splice(s,e)}return!0}}qo.prototype._onLayerAdded=function(e,t){if(!this.isDestroyed()&&e.show){let n=this._terrainProvider,i=this,o=this._imageryLayersUpdatedEvent,r=function(){e._imageryCache={},i._quadtree.forEachLoadedTile(function(s){if(l(s._loadedCallbacks[e._layerIndex]))return;let a,c=s.data.imagery,u=c.length,f=-1,d=0;for(a=0;a<u;++a){let g=c[a];if(y(g.readyImagery,g.loadingImagery).imageryLayer===e)f===-1&&(f=a),++d;else if(f!==-1)break}if(f===-1)return;let p=f+d;e._createTileImagerySkeletons(s,n,p)&&(s._loadedCallbacks[e._layerIndex]=Itt(d,e,n),s.state=Js.LOADING)})};if(e.ready){let s=e.imageryProvider;s._reload=r}this._quadtree.forEachLoadedTile(function(s){e._createTileImagerySkeletons(s,n)&&(s.state=Js.LOADING,s.level!==0&&(s._lastSelectionResultFrame!==i.quadtree._lastSelectionFrameNumber||s._lastSelectionResult!==Qn.RENDERED)&&(s.renderable=!1))}),this._layerOrderChanged=!0,o.raiseEvent()}};qo.prototype._onLayerRemoved=function(e,t){this._quadtree.forEachLoadedTile(function(n){let i=n.data.imagery,o=-1,r=0;for(let s=0,a=i.length;s<a;++s){let c=i[s],u=c.loadingImagery;if(l(u)||(u=c.readyImagery),u.imageryLayer===e)o===-1&&(o=s),c.freeResources(),++r;else if(o!==-1)break}o!==-1&&i.splice(o,r)}),l(e.imageryProvider)&&(e.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()};qo.prototype._onLayerMoved=function(e,t,n){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()};qo.prototype._onLayerShownOrHidden=function(e,t,n){n?this._onLayerAdded(e,t):this._onLayerRemoved(e,t)};var Ptt=new B,Ott=new B;function she(e,t){let n={u_initialColor:function(){return this.properties.initialColor},u_fillHighlightColor:function(){return this.properties.fillHighlightColor},u_zoomedOutOceanSpecularIntensity:function(){return this.properties.zoomedOutOceanSpecularIntensity},u_oceanNormalMap:function(){return this.properties.oceanNormalMap},u_atmosphereLightIntensity:function(){return this.properties.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return this.properties.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return this.properties.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return this.properties.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return this.properties.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return this.properties.atmosphereMieAnisotropy},u_lightingFadeDistance:function(){return this.properties.lightingFadeDistance},u_nightFadeDistance:function(){return this.properties.nightFadeDistance},u_center3D:function(){return this.properties.center3D},u_terrainExaggerationAndRelativeHeight:function(){return this.properties.terrainExaggerationAndRelativeHeight},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){let i=e.context.uniformState.view,o=B.multiplyByPoint(i,this.properties.rtc,ohe);return B.setTranslation(i,o,ihe),ihe},u_modifiedModelViewProjection:function(){let i=e.context.uniformState.view,o=e.context.uniformState.projection,r=B.multiplyByPoint(i,this.properties.rtc,ohe);return B.setTranslation(i,r,UU),B.multiply(o,UU,UU),UU},u_dayTextures:function(){return this.properties.dayTextures},u_dayTextureTranslationAndScale:function(){return this.properties.dayTextureTranslationAndScale},u_dayTextureTexCoordsRectangle:function(){return this.properties.dayTextureTexCoordsRectangle},u_dayTextureUseWebMercatorT:function(){return this.properties.dayTextureUseWebMercatorT},u_dayTextureAlpha:function(){return this.properties.dayTextureAlpha},u_dayTextureNightAlpha:function(){return this.properties.dayTextureNightAlpha},u_dayTextureDayAlpha:function(){return this.properties.dayTextureDayAlpha},u_dayTextureBrightness:function(){return this.properties.dayTextureBrightness},u_dayTextureContrast:function(){return this.properties.dayTextureContrast},u_dayTextureHue:function(){return this.properties.dayTextureHue},u_dayTextureSaturation:function(){return this.properties.dayTextureSaturation},u_dayTextureOneOverGamma:function(){return this.properties.dayTextureOneOverGamma},u_dayIntensity:function(){return this.properties.dayIntensity},u_southAndNorthLatitude:function(){return this.properties.southAndNorthLatitude},u_southMercatorYAndOneOverHeight:function(){return this.properties.southMercatorYAndOneOverHeight},u_waterMask:function(){return this.properties.waterMask},u_waterMaskTranslationAndScale:function(){return this.properties.waterMaskTranslationAndScale},u_minMaxHeight:function(){return this.properties.minMaxHeight},u_scaleAndBias:function(){return this.properties.scaleAndBias},u_dayTextureSplit:function(){return this.properties.dayTextureSplit},u_dayTextureCutoutRectangles:function(){return this.properties.dayTextureCutoutRectangles},u_clippingPlanes:function(){let i=t._clippingPlanes;return l(i)&&l(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){let i=t._clippingPlanes,o=l(i)?B.multiply(e.context.uniformState.view,i.modelMatrix,Ptt):B.IDENTITY;return B.inverseTranspose(o,Ott)},u_clippingPlanesEdgeStyle:function(){let i=this.properties.clippingPlanesEdgeColor;return i.alpha=this.properties.clippingPlanesEdgeWidth,i},u_minimumBrightness:function(){return e.fog.minimumBrightness},u_hsbShift:function(){return this.properties.hsbShift},u_colorsToAlpha:function(){return this.properties.colorsToAlpha},u_frontFaceAlphaByDistance:function(){return this.properties.frontFaceAlphaByDistance},u_backFaceAlphaByDistance:function(){return this.properties.backFaceAlphaByDistance},u_translucencyRectangle:function(){return this.properties.localizedTranslucencyRectangle},u_undergroundColor:function(){return this.properties.undergroundColor},u_undergroundColorAlphaByDistance:function(){return this.properties.undergroundColorAlphaByDistance},u_lambertDiffuseMultiplier:function(){return this.properties.lambertDiffuseMultiplier},u_vertexShadowDarkness:function(){return this.properties.vertexShadowDarkness},properties:{initialColor:new re(0,0,.5,1),fillHighlightColor:new z(0,0,0,0),zoomedOutOceanSpecularIntensity:.5,oceanNormalMap:void 0,lightingFadeDistance:new H(65e5,9e6),nightFadeDistance:new H(1e7,4e7),atmosphereLightIntensity:10,atmosphereRayleighCoefficient:new m(55e-7,13e-6,284e-7),atmosphereMieCoefficient:new m(21e-6,21e-6,21e-6),atmosphereRayleighScaleHeight:1e4,atmosphereMieScaleHeight:3200,atmosphereMieAnisotropy:.9,hsbShift:new m,center3D:void 0,rtc:new m,modifiedModelView:new B,tileRectangle:new re,terrainExaggerationAndRelativeHeight:new H(1,0),dayTextures:[],dayTextureTranslationAndScale:[],dayTextureTexCoordsRectangle:[],dayTextureUseWebMercatorT:[],dayTextureAlpha:[],dayTextureNightAlpha:[],dayTextureDayAlpha:[],dayTextureBrightness:[],dayTextureContrast:[],dayTextureHue:[],dayTextureSaturation:[],dayTextureOneOverGamma:[],dayTextureSplit:[],dayTextureCutoutRectangles:[],dayIntensity:0,colorsToAlpha:[],southAndNorthLatitude:new H,southMercatorYAndOneOverHeight:new H,waterMask:void 0,waterMaskTranslationAndScale:new re,minMaxHeight:new H,scaleAndBias:new B,clippingPlanesEdgeColor:z.clone(z.WHITE),clippingPlanesEdgeWidth:0,localizedCartographicLimitRectangle:new re,frontFaceAlphaByDistance:new re,backFaceAlphaByDistance:new re,localizedTranslucencyRectangle:new re,undergroundColor:z.clone(z.TRANSPARENT),undergroundColorAlphaByDistance:new re,lambertDiffuseMultiplier:0,vertexShadowDarkness:0}};return l(t.materialUniformMap)?gt(n,t.materialUniformMap):n}function Mtt(e,t,n){let i=n.data,o,r;if(l(i.vertexArray)?(o=i.mesh,r=i.vertexArray):l(i.fill)&&l(i.fill.vertexArray)&&(o=i.fill.mesh,r=i.fill.vertexArray),!(!l(o)||!l(r))){if(l(i.wireframeVertexArray)){if(i.wireframeVertexArray.mesh===o)return;i.wireframeVertexArray.destroy(),i.wireframeVertexArray=void 0}i.wireframeVertexArray=Rtt(e,r,o),i.wireframeVertexArray.mesh=o}}function Rtt(e,t,n){let o={indices:n.indices,primitiveType:Le.TRIANGLES};Un.toWireframe(o);let r=o.indices,s=mt.createIndexBuffer({context:e,typedArray:r,usage:Fe.STATIC_DRAW,indexDatatype:Ve.fromSizeInBytes(r.BYTES_PER_ELEMENT)});return new ri({context:e,attributes:t._attributes,indexBuffer:s})}var uhe,fhe,kU;(function(){let e=new Tt({geometry:im.fromDimensions({dimensions:new m(2,2,2)})}),t=new Tt({geometry:new mg({radius:1})}),n=new B,i,o;function r(s){return new wn({geometryInstances:s,appearance:new sn({translucent:!1,flat:!0}),asynchronous:!1})}uhe=function(s,a){return s===i||(kU(),i=s,n=B.fromRotationTranslation(s.halfAxes,s.center,n),e.modelMatrix=n,e.attributes.color=Vt.fromColor(a),o=r(e)),o},fhe=function(s,a){return s===i||(kU(),i=s,n=B.fromTranslation(s.center,n),n=B.multiplyByUniformScale(n,s.radius,n),t.modelMatrix=n,t.attributes.color=Vt.fromColor(a),o=r(t)),o},kU=function(){l(o)&&(o.destroy(),o=void 0,i=void 0)}})();var Btt=new re(0,0,0,0),Ltt={frameState:void 0,surfaceTile:void 0,numberOfDayTextures:void 0,applyBrightness:void 0,applyContrast:void 0,applyHue:void 0,applySaturation:void 0,applyGamma:void 0,applyAlpha:void 0,applyDayNightAlpha:void 0,applySplit:void 0,showReflectiveOcean:void 0,showOceanWaves:void 0,enableLighting:void 0,dynamicAtmosphereLighting:void 0,dynamicAtmosphereLightingFromSun:void 0,showGroundAtmosphere:void 0,perFragmentGroundAtmosphere:void 0,hasVertexNormals:void 0,useWebMercatorProjection:void 0,enableFog:void 0,enableClippingPlanes:void 0,clippingPlanes:void 0,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0,hasGeodeticSurfaceNormals:void 0,hasExaggeration:void 0},Ntt=z.TRANSPARENT,Ftt=new Lt;function Utt(e,t,n){let i=t.data;l(i.vertexArray)||(i.fill===void 0&&(i.fill=new TD(t)),i.fill.update(e,n));let o=n.creditDisplay,r=i.terrainData;if(l(r)&&l(r.credits)){let Ze=r.credits;for(let pe=0,Ee=Ze.length;pe<Ee;++pe)o.addCreditToNextFrame(Ze[pe])}let s=zt.maximumTextureImageUnits,a=i.waterMaskTexture,c=i.waterMaskTranslationAndScale;!l(a)&&l(i.fill)&&(a=i.fill.waterMaskTexture,c=i.fill.waterMaskTranslationAndScale);let u=n.cameraUnderground,f=n.globeTranslucencyState,d=f.translucent,p=f.frontFaceAlphaByDistance,g=f.backFaceAlphaByDistance,h=f.rectangle,A=y(e.undergroundColor,Ntt),x=y(e.undergroundColorAlphaByDistance,Ftt),C=lhe(e,n)&&n.mode===ne.SCENE3D&&A.alpha>0&&(x.nearValue>0||x.farValue>0),T=e.lambertDiffuseMultiplier,E=e.vertexShadowDarkness,S=e.hasWaterMask&&l(a),v=e.oceanNormalMap,D=S&&l(v),O=l(e.terrainProvider)&&e.terrainProvider._ready&&e.terrainProvider.hasVertexNormals,M=n.fog.enabled&&n.fog.renderable&&!u,L=e.showGroundAtmosphere&&n.mode===ne.SCENE3D,N=xn.castShadows(e.shadows)&&!d,_=xn.receiveShadows(e.shadows)&&!d,b=e.hueShift,w=e.saturationShift,I=e.brightnessShift,R=!(P.equalsEpsilon(b,0,P.EPSILON7)&&P.equalsEpsilon(w,0,P.EPSILON7)&&P.equalsEpsilon(I,0,P.EPSILON7)),F=!1;if(L){let Ze=m.magnitude(n.camera.positionWC),pe=e.nightFadeOutDistance;F=Ze>pe}S&&--s,D&&--s,l(n.shadowState)&&n.shadowState.shadowsEnabled&&--s,l(e.clippingPlanes)&&e.clippingPlanes.enabled&&--s,s-=f.numberOfTextureUniforms;let k=i.renderedMesh,V=k.center,G=k.encoding,U=i.tileBoundingRegion,q=n.terrainExaggeration,Y=n.terrainExaggerationRelativeHeight,Q=q!==1,W=G.hasGeodeticSurfaceNormals,K=Ctt,J=0,_e=0,xe=0,se=0,Ae=!1;if(n.mode!==ne.SCENE3D){let Ze=n.mapProjection,pe=Ze.project(le.southwest(t.rectangle),Stt),Ee=Ze.project(le.northeast(t.rectangle),wtt);if(K.x=pe.x,K.y=pe.y,K.z=Ee.x,K.w=Ee.y,n.mode!==ne.MORPHING&&(V=btt,V.x=0,V.y=(K.z+K.x)*.5,V.z=(K.w+K.y)*.5,K.x-=V.y,K.y-=V.z,K.z-=V.y,K.w-=V.z),n.mode===ne.SCENE2D&&G.quantization===Ks.BITS12){let je=1/(Math.pow(2,12)-1)*.5,fi=(K.z-K.x)*je,hi=(K.w-K.y)*je;K.x-=fi,K.y-=hi,K.z+=fi,K.w+=hi}Ze instanceof Pi&&(J=t.rectangle.south,_e=t.rectangle.north,xe=Pi.geodeticLatitudeToMercatorAngle(J),se=1/(Pi.geodeticLatitudeToMercatorAngle(_e)-xe),Ae=!0)}let me=Ltt;me.frameState=n,me.surfaceTile=i,me.showReflectiveOcean=S,me.showOceanWaves=D,me.enableLighting=e.enableLighting,me.dynamicAtmosphereLighting=e.dynamicAtmosphereLighting,me.dynamicAtmosphereLightingFromSun=e.dynamicAtmosphereLightingFromSun,me.showGroundAtmosphere=L,me.atmosphereLightIntensity=e.atmosphereLightIntensity,me.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,me.atmosphereMieCoefficient=e.atmosphereMieCoefficient,me.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,me.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,me.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,me.perFragmentGroundAtmosphere=F,me.hasVertexNormals=O,me.useWebMercatorProjection=Ae,me.clippedByBoundaries=i.clippedByBoundaries,me.hasGeodeticSurfaceNormals=W,me.hasExaggeration=Q;let Se=i.imagery,Ie=0,Ue=Se.length,Re=e.showSkirts&&!u&&!d,ke=e.backFaceCulling&&!u&&!d,ft=ke?e._renderState:e._disableCullingRenderState,pt=ke?e._blendRenderState:e._disableCullingBlendRenderState,rt=ft,un=e._firstPassInitialColor,Mn=n.context;if(l(e._debug.boundingSphereTile)||kU(),e._materialUniformMap!==e.materialUniformMap){e._materialUniformMap=e.materialUniformMap;let Ze=e._drawCommands.length;for(let pe=0;pe<Ze;++pe)e._uniformMaps[pe]=she(n,e)}do{let Ze=0,pe,Ee;if(e._drawCommands.length<=e._usedDrawCommands?(pe=new it,pe.owner=t,pe.cull=!1,pe.boundingVolume=new ae,pe.orientedBoundingBox=void 0,Ee=she(n,e),e._drawCommands.push(pe),e._uniformMaps.push(Ee)):(pe=e._drawCommands[e._usedDrawCommands],Ee=e._uniformMaps[e._usedDrawCommands]),pe.owner=t,++e._usedDrawCommands,t===e._debug.boundingSphereTile){let Wn=U.boundingVolume,Dr=U.boundingSphere;l(Wn)?uhe(Wn,z.RED).update(n):l(Dr)&&fhe(Dr,z.RED).update(n)}let je=Ee.properties;re.clone(un,je.initialColor),je.oceanNormalMap=v,je.lightingFadeDistance.x=e.lightingFadeOutDistance,je.lightingFadeDistance.y=e.lightingFadeInDistance,je.nightFadeDistance.x=e.nightFadeOutDistance,je.nightFadeDistance.y=e.nightFadeInDistance,je.atmosphereLightIntensity=e.atmosphereLightIntensity,je.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,je.atmosphereMieCoefficient=e.atmosphereMieCoefficient,je.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,je.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,je.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,je.zoomedOutOceanSpecularIntensity=e.zoomedOutOceanSpecularIntensity;let fi=u?g:p,hi=u?p:g;l(fi)&&(re.fromElements(fi.near,fi.nearValue,fi.far,fi.farValue,je.frontFaceAlphaByDistance),re.fromElements(hi.near,hi.nearValue,hi.far,hi.farValue,je.backFaceAlphaByDistance)),re.fromElements(x.near,x.nearValue,x.far,x.farValue,je.undergroundColorAlphaByDistance),z.clone(A,je.undergroundColor),je.lambertDiffuseMultiplier=T,je.vertexShadowDarkness=E;let Jo=!l(i.vertexArray)&&l(e.fillHighlightColor)&&e.fillHighlightColor.alpha>0;Jo&&z.clone(e.fillHighlightColor,je.fillHighlightColor),je.terrainExaggerationAndRelativeHeight.x=q,je.terrainExaggerationAndRelativeHeight.y=Y,je.center3D=k.center,m.clone(V,je.rtc),re.clone(K,je.tileRectangle),je.southAndNorthLatitude.x=J,je.southAndNorthLatitude.y=_e,je.southMercatorYAndOneOverHeight.x=xe,je.southMercatorYAndOneOverHeight.y=se;let vs=Ttt,Ds=VU(t.rectangle,e.cartographicLimitRectangle),vr=Ett,vo=VU(t.rectangle,h);m.fromElements(b,w,I,je.hsbShift);let Be=t.rectangle,st=1/Be.width,Qe=1/Be.height;vs.x=(Ds.west-Be.west)*st,vs.y=(Ds.south-Be.south)*Qe,vs.z=(Ds.east-Be.west)*st,vs.w=(Ds.north-Be.south)*Qe,re.clone(vs,je.localizedCartographicLimitRectangle),vr.x=(vo.west-Be.west)*st,vr.y=(vo.south-Be.south)*Qe,vr.z=(vo.east-Be.west)*st,vr.w=(vo.north-Be.south)*Qe,re.clone(vr,je.localizedTranslucencyRectangle);let $e=M&&P.fog(t._distance,n.fog.density)>P.EPSILON3;R=R&&($e||L);let _t=!1,kt=!1,on=!1,Yi=!1,fo=!1,Jr=!1,Zr=!1,rr=!1,ki=!1,kr=!1;for(;Ze<s&&Ie<Ue;){let Wn=Se[Ie],Dr=Wn.readyImagery;if(++Ie,!l(Dr)||Dr.imageryLayer.alpha===0)continue;let vf=Wn.useWebMercatorT?Dr.textureWebMercator:Dr.texture,sr=Dr.imageryLayer;l(Wn.textureTranslationAndScale)||(Wn.textureTranslationAndScale=sr._calculateTextureTranslationAndScale(t,Wn)),je.dayTextures[Ze]=vf,je.dayTextureTranslationAndScale[Ze]=Wn.textureTranslationAndScale,je.dayTextureTexCoordsRectangle[Ze]=Wn.textureCoordinateRectangle,je.dayTextureUseWebMercatorT[Ze]=Wn.useWebMercatorT,je.dayTextureAlpha[Ze]=sr.alpha,Jr=Jr||je.dayTextureAlpha[Ze]!==1,je.dayTextureNightAlpha[Ze]=sr.nightAlpha,Zr=Zr||je.dayTextureNightAlpha[Ze]!==1,je.dayTextureDayAlpha[Ze]=sr.dayAlpha,Zr=Zr||je.dayTextureDayAlpha[Ze]!==1,je.dayTextureBrightness[Ze]=sr.brightness,_t=_t||je.dayTextureBrightness[Ze]!==Qs.DEFAULT_BRIGHTNESS,je.dayTextureContrast[Ze]=sr.contrast,kt=kt||je.dayTextureContrast[Ze]!==Qs.DEFAULT_CONTRAST,je.dayTextureHue[Ze]=sr.hue,on=on||je.dayTextureHue[Ze]!==Qs.DEFAULT_HUE,je.dayTextureSaturation[Ze]=sr.saturation,Yi=Yi||je.dayTextureSaturation[Ze]!==Qs.DEFAULT_SATURATION,je.dayTextureOneOverGamma[Ze]=1/sr.gamma,fo=fo||je.dayTextureOneOverGamma[Ze]!==1/Qs.DEFAULT_GAMMA,je.dayTextureSplit[Ze]=sr.splitDirection,rr=rr||je.dayTextureSplit[Ze]!==0;let Ta=je.dayTextureCutoutRectangles[Ze];if(l(Ta)||(Ta=je.dayTextureCutoutRectangles[Ze]=new re),re.clone(re.ZERO,Ta),l(sr.cutoutRectangle)){let zr=VU(Be,sr.cutoutRectangle),nc=le.simpleIntersection(zr,Be,che);ki=l(nc)||ki,Ta.x=(zr.west-Be.west)*st,Ta.y=(zr.south-Be.south)*Qe,Ta.z=(zr.east-Be.west)*st,Ta.w=(zr.north-Be.south)*Qe}let Df=je.colorsToAlpha[Ze];l(Df)||(Df=je.colorsToAlpha[Ze]=new re);let gh=l(sr.colorToAlpha)&&sr.colorToAlphaThreshold>0;if(kr=kr||gh,gh){let zr=sr.colorToAlpha;Df.x=zr.red,Df.y=zr.green,Df.z=zr.blue,Df.w=sr.colorToAlphaThreshold}else Df.w=-1;if(l(Dr.credits)){let zr=Dr.credits;for(let nc=0,Fy=zr.length;nc<Fy;++nc)o.addCreditToNextFrame(zr[nc])}++Ze}je.dayTextures.length=Ze,je.waterMask=a,re.clone(c,je.waterMaskTranslationAndScale),je.minMaxHeight.x=G.minimumHeight,je.minMaxHeight.y=G.maximumHeight,B.clone(G.matrix,je.scaleAndBias);let Nn=e._clippingPlanes,cn=l(Nn)&&Nn.enabled&&t.isClipped;cn&&(je.clippingPlanesEdgeColor=z.clone(Nn.edgeColor,je.clippingPlanesEdgeColor),je.clippingPlanesEdgeWidth=Nn.edgeWidth),me.numberOfDayTextures=Ze,me.applyBrightness=_t,me.applyContrast=kt,me.applyHue=on,me.applySaturation=Yi,me.applyGamma=fo,me.applyAlpha=Jr,me.applyDayNightAlpha=Zr,me.applySplit=rr,me.enableFog=$e,me.enableClippingPlanes=cn,me.clippingPlanes=Nn,me.hasImageryLayerCutout=ki,me.colorCorrect=R,me.highlightFillTile=Jo,me.colorToAlpha=kr,me.showUndergroundColor=C,me.translucent=d;let Gn=i.renderedMesh.indices.length;Re||(Gn=i.renderedMesh.indexCountWithoutSkirts),pe.shaderProgram=e._surfaceShaderSet.getShaderProgram(me),pe.castShadows=N,pe.receiveShadows=_,pe.renderState=rt,pe.primitiveType=Le.TRIANGLES,pe.vertexArray=i.vertexArray||i.fill.vertexArray,pe.count=Gn,pe.uniformMap=Ee,pe.pass=be.GLOBE,e._debug.wireframe&&(Mtt(Mn,e,t),l(i.wireframeVertexArray)&&(pe.vertexArray=i.wireframeVertexArray,pe.primitiveType=Le.LINES,pe.count=Gn*2));let gn=pe.boundingVolume,Ca=pe.orientedBoundingBox;n.mode!==ne.SCENE3D?(ae.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,U.minimumHeight,U.maximumHeight,gn),m.fromElements(gn.center.z,gn.center.x,gn.center.y,gn.center),n.mode===ne.MORPHING&&(gn=ae.union(U.boundingSphere,gn,gn))):(pe.boundingVolume=ae.clone(U.boundingSphere,gn),pe.orientedBoundingBox=Bn.clone(U.boundingVolume,Ca)),pe.dirty=!0,d&&f.updateDerivedCommands(pe,n),ahe(pe,n),rt=pt,un=Btt}while(Ie<Ue)}var zU=qo;function dhe(){this._enabled=!1,this._frontFaceAlpha=1,this._frontFaceAlphaByDistance=void 0,this._backFaceAlpha=1,this._backFaceAlphaByDistance=void 0,this._rectangle=le.clone(le.MAX_VALUE)}Object.defineProperties(dhe.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabled=e}},frontFaceAlpha:{get:function(){return this._frontFaceAlpha},set:function(e){this._frontFaceAlpha=e}},frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance},set:function(e){this._frontFaceAlphaByDistance=Lt.clone(e,this._frontFaceAlphaByDistance)}},backFaceAlpha:{get:function(){return this._backFaceAlpha},set:function(e){this._backFaceAlpha=e}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance},set:function(e){this._backFaceAlphaByDistance=Lt.clone(e,this._backFaceAlphaByDistance)}},rectangle:{get:function(){return this._rectangle},set:function(e){l(e)||(e=le.clone(le.MAX_VALUE)),le.clone(e,this._rectangle)}}});var HU=dhe;function cs(){this._layers=[],this.layerAdded=new ge,this.layerRemoved=new ge,this.layerMoved=new ge,this.layerShownOrHidden=new ge}Object.defineProperties(cs.prototype,{length:{get:function(){return this._layers.length}}});cs.prototype.add=function(e,t){l(t)?this._layers.splice(t,0,e):(t=this._layers.length,this._layers.push(e)),this._update(),this.layerAdded.raiseEvent(e,t);let i=e.readyEvent.addEventListener(()=>{this.layerShownOrHidden.raiseEvent(e,e._layerIndex,e.show),i()})};cs.prototype.addImageryProvider=function(e,t){let n=new Qs(e);return this.add(n,t),n};cs.prototype.remove=function(e,t){t=y(t,!0);let n=this._layers.indexOf(e);return n!==-1?(this._layers.splice(n,1),this._update(),this.layerRemoved.raiseEvent(e,n),t&&e.destroy(),!0):!1};cs.prototype.removeAll=function(e){e=y(e,!0);let t=this._layers;for(let n=0,i=t.length;n<i;n++){let o=t[n];this.layerRemoved.raiseEvent(o,n),e&&o.destroy()}this._layers=[]};cs.prototype.contains=function(e){return this.indexOf(e)!==-1};cs.prototype.indexOf=function(e){return this._layers.indexOf(e)};cs.prototype.get=function(e){return this._layers[e]};function GU(e,t){return e.indexOf(t)}function mhe(e,t,n){let i=e._layers;if(t=P.clamp(t,0,i.length-1),n=P.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,e._update(),e.layerMoved.raiseEvent(o,n,t)}cs.prototype.raise=function(e){let t=GU(this._layers,e);mhe(this,t,t+1)};cs.prototype.lower=function(e){let t=GU(this._layers,e);mhe(this,t,t-1)};cs.prototype.raiseToTop=function(e){let t=GU(this._layers,e);t!==this._layers.length-1&&(this._layers.splice(t,1),this._layers.push(e),this._update(),this.layerMoved.raiseEvent(e,this._layers.length-1,t))};cs.prototype.lowerToBottom=function(e){let t=GU(this._layers,e);t!==0&&(this._layers.splice(t,1),this._layers.splice(0,0,e),this._update(),this.layerMoved.raiseEvent(e,0,t))};var Vtt=new le;function hhe(e,t,n,i){let o=e.globe._surface._tilesToRender,r;for(let a=0;!l(r)&&a<o.length;++a){let c=o[a];le.contains(c.rectangle,t)&&(r=c)}if(!l(r))return;let s=r.data.imagery;for(let a=s.length-1;a>=0;--a){let c=s[a],u=c.readyImagery;if(!l(u)||!u.imageryLayer.ready)continue;let f=u.imageryLayer.imageryProvider;if(n&&!l(f.pickFeatures)||!le.contains(u.rectangle,t))continue;let d=Vtt,p=1/1024;d.west=P.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.x-p),d.east=P.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.z+p),d.south=P.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.y-p),d.north=P.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.w+p),le.contains(d,t)&&i(u)}}cs.prototype.pickImageryLayers=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),o=[];if(hhe(t,i,!1,function(r){o.push(r.imageryLayer)}),o.length!==0)return o};cs.prototype.pickImageryLayerFeatures=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.globe.ellipsoid.cartesianToCartographic(n),o=[],r=[];if(hhe(t,i,!0,function(s){if(!s.imageryLayer.ready)return;let c=s.imageryLayer.imageryProvider.pickFeatures(s.x,s.y,s.level,i.longitude,i.latitude);l(c)&&(o.push(c),r.push(s.imageryLayer))}),o.length!==0)return Promise.all(o).then(function(s){let a=[];for(let c=0;c<s.length;++c){let u=s[c],f=r[c];if(l(u)&&u.length>0)for(let d=0;d<u.length;++d){let p=u[d];p.imageryLayer=f,l(p.position)||(p.position=i),a.push(p)}}return a})};cs.prototype.queueReprojectionCommands=function(e){let t=this._layers;for(let n=0,i=t.length;n<i;++n)t[n].queueReprojectionCommands(e)};cs.prototype.cancelReprojections=function(){let e=this._layers;for(let t=0,n=e.length;t<n;++t)e[t].cancelReprojections()};cs.prototype.isDestroyed=function(){return!1};cs.prototype.destroy=function(){return this.removeAll(!0),ue(this)};cs.prototype._update=function(){let e=!0,t=this._layers,n,i,o,r;for(o=0,r=t.length;o<r;++o)i=t[o],i._layerIndex=o,i.show?(i._isBaseLayer=e,e=!1):i._isBaseLayer=!1,i.show!==i._show&&(l(i._show)&&(l(n)||(n=[]),n.push(i)),i._show=i.show);if(l(n))for(o=0,r=n.length;o<r;++o)i=n[o],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)};var WU=cs;function phe(e){this._ellipsoid=new Eg(e.ellipsoid,m.ZERO)}Object.defineProperties(phe.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var jU=phe;function Pc(e){this._tilingScheme=e.tilingScheme,this._x=e.x,this._y=e.y,this._level=e.level,this._parent=e.parent,this._rectangle=this._tilingScheme.tileXYToRectangle(this._x,this._y,this._level),this._southwestChild=void 0,this._southeastChild=void 0,this._northwestChild=void 0,this._northeastChild=void 0,this.replacementPrevious=void 0,this.replacementNext=void 0,this._distance=0,this._loadPriority=0,this._customData=[],this._frameUpdated=void 0,this._lastSelectionResult=Qn.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this.state=Js.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}Pc.createLevelZeroTiles=function(e){let t=e.getNumberOfXTilesAtLevel(0),n=e.getNumberOfYTilesAtLevel(0),i=new Array(t*n),o=0;for(let r=0;r<n;++r)for(let s=0;s<t;++s)i[o++]=new Pc({tilingScheme:e,x:s,y:r,level:0});return i};Pc.prototype._updateCustomData=function(e,t,n){let i=this.customData,o,r,s;if(l(t)&&l(n)){for(i=i.filter(function(a){return n.indexOf(a)===-1}),this._customData=i,s=this._rectangle,o=0;o<t.length;++o)r=t[o],le.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=e}else{let a=this._parent;if(l(a)&&this._frameUpdated!==a._frameUpdated){i.length=0,s=this._rectangle;let c=a.customData;for(o=0;o<c.length;++o)r=c[o],le.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=a._frameUpdated}}};Object.defineProperties(Pc.prototype,{tilingScheme:{get:function(){return this._tilingScheme}},x:{get:function(){return this._x}},y:{get:function(){return this._y}},level:{get:function(){return this._level}},parent:{get:function(){return this._parent}},rectangle:{get:function(){return this._rectangle}},children:{get:function(){return[this.northwestChild,this.northeastChild,this.southwestChild,this.southeastChild]}},southwestChild:{get:function(){return l(this._southwestChild)||(this._southwestChild=new Pc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2+1,level:this.level+1,parent:this})),this._southwestChild}},southeastChild:{get:function(){return l(this._southeastChild)||(this._southeastChild=new Pc({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2+1,level:this.level+1,parent:this})),this._southeastChild}},northwestChild:{get:function(){return l(this._northwestChild)||(this._northwestChild=new Pc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2,level:this.level+1,parent:this})),this._northwestChild}},northeastChild:{get:function(){return l(this._northeastChild)||(this._northeastChild=new Pc({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2,level:this.level+1,parent:this})),this._northeastChild}},customData:{get:function(){return this._customData}},needsLoading:{get:function(){return this.state<Js.DONE}},eligibleForUnloading:{get:function(){let e=!0;return l(this.data)&&(e=this.data.eligibleForUnloading,l(e)||(e=!0)),e}}});Pc.prototype.findLevelZeroTile=function(e,t,n){let i=this.tilingScheme.getNumberOfXTilesAtLevel(0);if(t<0?t+=i:t>=i&&(t-=i),!(n<0||n>=this.tilingScheme.getNumberOfYTilesAtLevel(0)))return e.filter(function(o){return o.x===t&&o.y===n})[0]};Pc.prototype.findTileToWest=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x-1,this.y);if(t.southeastChild===this)return t.southwestChild;if(t.northeastChild===this)return t.northwestChild;let n=t.findTileToWest(e);if(n!==void 0)return t.southwestChild===this?n.southeastChild:n.northeastChild};Pc.prototype.findTileToEast=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x+1,this.y);if(t.southwestChild===this)return t.southeastChild;if(t.northwestChild===this)return t.northeastChild;let n=t.findTileToEast(e);if(n!==void 0)return t.southeastChild===this?n.southwestChild:n.northwestChild};Pc.prototype.findTileToSouth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y+1);if(t.northwestChild===this)return t.southwestChild;if(t.northeastChild===this)return t.southeastChild;let n=t.findTileToSouth(e);if(n!==void 0)return t.southwestChild===this?n.northwestChild:n.northeastChild};Pc.prototype.findTileToNorth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y-1);if(t.southwestChild===this)return t.northwestChild;if(t.southeastChild===this)return t.northeastChild;let n=t.findTileToNorth(e);if(n!==void 0)return t.northwestChild===this?n.southwestChild:n.southeastChild};Pc.prototype.freeResources=function(){this.state=Js.START,this.renderable=!1,this.upsampledFromParent=!1,l(this.data)&&l(this.data.freeResources)&&this.data.freeResources(),YU(this._southwestChild),this._southwestChild=void 0,YU(this._southeastChild),this._southeastChild=void 0,YU(this._northwestChild),this._northwestChild=void 0,YU(this._northeastChild),this._northeastChild=void 0};function YU(e){l(e)&&e.freeResources()}var qU=Pc;function XU(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}XU.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head};XU.prototype.trimTiles=function(e){let t=this.tail,n=!0;for(;n&&l(this._lastBeforeStartOfFrame)&&this.count>e&&l(t);){n=t!==this._lastBeforeStartOfFrame;let i=t.replacementPrevious;t.eligibleForUnloading&&(t.freeResources(),_he(this,t)),t=i}};function _he(e,t){let n=t.replacementPrevious,i=t.replacementNext;t===e._lastBeforeStartOfFrame&&(e._lastBeforeStartOfFrame=i),t===e.head?e.head=i:n.replacementNext=i,t===e.tail?e.tail=n:i.replacementPrevious=n,t.replacementPrevious=void 0,t.replacementNext=void 0,--e.count}XU.prototype.markTileRendered=function(e){let t=this.head;if(t===e){e===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=e.replacementNext);return}if(++this.count,!l(t)){e.replacementPrevious=void 0,e.replacementNext=void 0,this.head=e,this.tail=e;return}(l(e.replacementPrevious)||l(e.replacementNext))&&_he(this,e),e.replacementPrevious=void 0,e.replacementNext=t,t.replacementPrevious=e,this.head=e};var KU=XU;function mf(e){this._tileProvider=e.tileProvider,this._tileProvider.quadtree=this,this._debug={enableDebugOutput:!1,maxDepth:0,maxDepthVisited:0,tilesVisited:0,tilesCulled:0,tilesRendered:0,tilesWaitingForChildren:0,lastMaxDepth:-1,lastMaxDepthVisited:-1,lastTilesVisited:-1,lastTilesCulled:-1,lastTilesRendered:-1,lastTilesWaitingForChildren:-1,suspendLodUpdate:!1};let n=this._tileProvider.tilingScheme.ellipsoid;this._tilesToRender=[],this._tileLoadQueueHigh=[],this._tileLoadQueueMedium=[],this._tileLoadQueueLow=[],this._tileReplacementQueue=new KU,this._levelZeroTiles=void 0,this._loadQueueTimeSlice=5,this._tilesInvalidated=!1,this._addHeightCallbacks=[],this._removeHeightCallbacks=[],this._tileToUpdateHeights=[],this._lastTileIndex=0,this._updateHeightsTimeSlice=2,this._cameraPositionCartographic=void 0,this._cameraReferenceFrameOriginCartographic=void 0,this.maximumScreenSpaceError=y(e.maximumScreenSpaceError,2),this.tileCacheSize=y(e.tileCacheSize,100),this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this._occluders=new jU({ellipsoid:n}),this._tileLoadProgressEvent=new ge,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}Object.defineProperties(mf.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}});mf.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0};function ktt(e){let t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,yhe(e);let n=e._levelZeroTiles;if(l(n))for(let i=0;i<n.length;++i){let r=n[i].customData,s=r.length;for(let a=0;a<s;++a){let c=r[a];c.level=0,e._addHeightCallbacks.push(c)}n[i].freeResources()}e._levelZeroTiles=void 0,e._tileProvider.cancelReprojections()}mf.prototype.forEachLoadedTile=function(e){let t=this._tileReplacementQueue.head;for(;l(t);)t.state!==Js.START&&e(t),t=t.replacementNext};mf.prototype.forEachRenderedTile=function(e){let t=this._tilesToRender;for(let n=0,i=t.length;n<i;++n)e(t[n])};mf.prototype.updateHeight=function(e,t){let n=this,i={positionOnEllipsoidSurface:void 0,positionCartographic:e,level:-1,callback:t};return i.removeFunc=function(){let o=n._addHeightCallbacks,r=o.length;for(let s=0;s<r;++s)if(o[s]===i){o.splice(s,1);break}n._removeHeightCallbacks.push(i),i.callback&&(i.callback=void 0)},n._addHeightCallbacks.push(i),i.removeFunc};mf.prototype.update=function(e){l(this._tileProvider.update)&&this._tileProvider.update(e)};function yhe(e){let t=e._debug;t.maxDepth=0,t.maxDepthVisited=0,t.tilesVisited=0,t.tilesCulled=0,t.tilesRendered=0,t.tilesWaitingForChildren=0,e._tileLoadQueueHigh.length=0,e._tileLoadQueueMedium.length=0,e._tileLoadQueueLow.length=0}mf.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(ktt(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),yhe(this),!this._debug.suspendLodUpdate&&this._tileReplacementQueue.markStartOfRenderFrame())};mf.prototype.render=function(e){let t=e.passes,n=this._tileProvider;t.render&&(n.beginUpdate(e),Wtt(this,e),ent(this,e),n.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&n.updateForPick(e)};function ztt(e,t){let n=e._tileLoadQueueHigh.length+e._tileLoadQueueMedium.length+e._tileLoadQueueLow.length;if(n!==e._lastTileLoadQueueLength||e._tilesInvalidated){let o=ge.prototype.raiseEvent.bind(e._tileLoadProgressEvent,n);t.afterRender.push(()=>(o(),!0)),e._lastTileLoadQueueLength=n}let i=e._debug;i.enableDebugOutput&&!i.suspendLodUpdate&&(i.maxDepth=e._tilesToRender.reduce(function(o,r){return Math.max(o,r.level)},-1),i.tilesRendered=e._tilesToRender.length,(i.tilesVisited!==i.lastTilesVisited||i.tilesRendered!==i.lastTilesRendered||i.tilesCulled!==i.lastTilesCulled||i.maxDepth!==i.lastMaxDepth||i.tilesWaitingForChildren!==i.lastTilesWaitingForChildren||i.maxDepthVisited!==i.lastMaxDepthVisited)&&(console.log(`Visited ${i.tilesVisited}, Rendered: ${i.tilesRendered}, Culled: ${i.tilesCulled}, Max Depth Rendered: ${i.maxDepth}, Max Depth Visited: ${i.maxDepthVisited}, Waiting for children: ${i.tilesWaitingForChildren}`),i.lastTilesVisited=i.tilesVisited,i.lastTilesRendered=i.tilesRendered,i.lastTilesCulled=i.tilesCulled,i.lastMaxDepth=i.maxDepth,i.lastTilesWaitingForChildren=i.tilesWaitingForChildren,i.lastMaxDepthVisited=i.maxDepthVisited))}mf.prototype.endFrame=function(e){!e.passes.render||e.mode===ne.MORPHING||(Jtt(this,e),$tt(this,e),ztt(this,e))};mf.prototype.isDestroyed=function(){return!1};mf.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var bD,ghe=new he;function Htt(e,t){let n=le.center(e.rectangle,ghe),i=n.longitude-bD.longitude,o=n.latitude-bD.latitude;n=le.center(t.rectangle,ghe);let r=n.longitude-bD.longitude,s=n.latitude-bD.latitude;return i*i+o*o-(r*r+s*s)}var Gtt=new m,ED=[];function Wtt(e,t){let n=e._debug;if(n.suspendLodUpdate)return;let i=e._tilesToRender;i.length=0;let o,r=e._tileProvider;if(!l(e._levelZeroTiles))if(r.ready){let A=r.tilingScheme;e._levelZeroTiles=qU.createLevelZeroTiles(A);let x=e._levelZeroTiles.length;if(ED.length<x)for(ED=new Array(x),o=0;o<x;++o)ED[o]===void 0&&(ED[o]=new SD)}else return;e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;let s,a=e._levelZeroTiles,c=a.length>1?e._occluders:void 0;bD=t.camera.positionCartographic,a.sort(Htt);let u=e._addHeightCallbacks,f=e._removeHeightCallbacks,d=t.frameNumber,p;if(u.length>0||f.length>0){for(o=0,p=a.length;o<p;++o)s=a[o],s._updateCustomData(d,u,f);u.length=0,f.length=0}let g=t.camera;e._cameraPositionCartographic=g.positionCartographic;let h=B.getTranslation(g.transform,Gtt);for(e._cameraReferenceFrameOriginCartographic=e.tileProvider.tilingScheme.ellipsoid.cartesianToCartographic(h,e._cameraReferenceFrameOriginCartographic),o=0,p=a.length;o<p;++o)s=a[o],e._tileReplacementQueue.markTileRendered(s),s.renderable?_a(e,s,r,t,c,!1,ED[o]):(zp(e,e._tileLoadQueueHigh,s,t),++n.tilesWaitingForChildren);e._lastSelectionFrameNumber=d}function zp(e,t,n,i){n.needsLoading&&(e.tileProvider.computeTileLoadPriority!==void 0&&(n._loadPriority=e.tileProvider.computeTileLoadPriority(n,i)),t.push(n))}function SD(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function Ahe(){this.southwest=new SD,this.southeast=new SD,this.northwest=new SD,this.northeast=new SD}Ahe.prototype.combine=function(e){let t=this.southwest,n=this.southeast,i=this.northwest,o=this.northeast;e.allAreRenderable=t.allAreRenderable&&n.allAreRenderable&&i.allAreRenderable&&o.allAreRenderable,e.anyWereRenderedLastFrame=t.anyWereRenderedLastFrame||n.anyWereRenderedLastFrame||i.anyWereRenderedLastFrame||o.anyWereRenderedLastFrame,e.notYetRenderableCount=t.notYetRenderableCount+n.notYetRenderableCount+i.notYetRenderableCount+o.notYetRenderableCount};var Cj=new Array(31);for(let e=0;e<Cj.length;++e)Cj[e]=new Ahe;function jtt(e,t,n,i,o){let r=e._debug;++r.tilesVisited,e._tileReplacementQueue.markTileRendered(n),n._updateCustomData(t.frameNumber),n.level>r.maxDepthVisited&&(r.maxDepthVisited=n.level);let s=Xtt(e,t,n)<e.maximumScreenSpaceError,a=n.southwestChild,c=n.southeastChild,u=n.northwestChild,f=n.northeastChild,d=e._lastSelectionFrameNumber,p=n._lastSelectionResultFrame===d?n._lastSelectionResult:Qn.NONE,g=e.tileProvider;if(s||i){let h=Qn.originalResult(p)===Qn.RENDERED,A=Qn.originalResult(p)===Qn.CULLED||p===Qn.NONE,x=n.state===Js.DONE,C=h||A||x;if(C||l(g.canRenderWithoutLosingDetail)&&(C=g.canRenderWithoutLosingDetail(n)),C){s&&zp(e,e._tileLoadQueueMedium,n,t),JU(e,n),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Qn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Qn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}i=!0,s&&zp(e,e._tileLoadQueueHigh,n,t)}if(g.canRefine(n)){if(a.upsampledFromParent&&c.upsampledFromParent&&u.upsampledFromParent&&f.upsampledFromParent){JU(e,n),zp(e,e._tileLoadQueueMedium,n,t),e._tileReplacementQueue.markTileRendered(a),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(u),e._tileReplacementQueue.markTileRendered(f),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Qn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Qn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Qn.REFINED;let A=e._tilesToRender.length,x=e._tileLoadQueueLow.length,C=e._tileLoadQueueMedium.length,T=e._tileLoadQueueHigh.length,E=e._tileToUpdateHeights.length;if(Ytt(e,a,c,u,f,t,i,o),A!==e._tilesToRender.length){let S=o.allAreRenderable,v=o.anyWereRenderedLastFrame,D=o.notYetRenderableCount,O=!1;if(!S&&!v){let M=e._tilesToRender;for(let N=A;N<M.length;++N){let _=M[N];for(;_!==void 0&&_._lastSelectionResult!==Qn.KICKED&&_!==n;)_._lastSelectionResult=Qn.kick(_._lastSelectionResult),_=_.parent}e._tilesToRender.length=A,e._tileToUpdateHeights.length=E,JU(e,n),n._lastSelectionResult=Qn.RENDERED;let L=p===Qn.RENDERED;!L&&D>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=x,e._tileLoadQueueMedium.length=C,e._tileLoadQueueHigh.length=T,zp(e,e._tileLoadQueueMedium,n,t),o.notYetRenderableCount=n.renderable?0:1,O=!0),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=L,L||e._tileToUpdateHeights.push(n),++r.tilesWaitingForChildren}e.preloadAncestors&&!O&&zp(e,e._tileLoadQueueLow,n,t)}return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Qn.RENDERED,JU(e,n),zp(e,e._tileLoadQueueHigh,n,t),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Qn.RENDERED,o.notYetRenderableCount=n.renderable?0:1}function Ytt(e,t,n,i,o,r,s,a){let c=r.camera.positionCartographic,u=e._tileProvider,f=e._occluders,d=Cj[t.level],p=d.southwest,g=d.southeast,h=d.northwest,A=d.northeast;c.longitude<t.rectangle.east?c.latitude<t.rectangle.north?(_a(e,t,u,r,f,s,p),_a(e,n,u,r,f,s,g),_a(e,i,u,r,f,s,h),_a(e,o,u,r,f,s,A)):(_a(e,i,u,r,f,s,h),_a(e,t,u,r,f,s,p),_a(e,o,u,r,f,s,A),_a(e,n,u,r,f,s,g)):c.latitude<t.rectangle.north?(_a(e,n,u,r,f,s,g),_a(e,t,u,r,f,s,p),_a(e,o,u,r,f,s,A),_a(e,i,u,r,f,s,h)):(_a(e,o,u,r,f,s,A),_a(e,i,u,r,f,s,h),_a(e,n,u,r,f,s,g),_a(e,t,u,r,f,s,p)),d.combine(a)}function qtt(e,t){let n=t.rectangle;return l(e._cameraPositionCartographic)&&le.contains(n,e._cameraPositionCartographic)||l(e._cameraReferenceFrameOriginCartographic)&&le.contains(n,e._cameraReferenceFrameOriginCartographic)}function _a(e,t,n,i,o,r,s){if(n.computeTileVisibility(t,i,o)!==mr.NONE)return jtt(e,i,t,r,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,qtt(e,t)){(!l(t.data)||!l(t.data.vertexArray))&&zp(e,e._tileLoadQueueMedium,t,i);let a=e._lastSelectionFrameNumber,c=t._lastSelectionResultFrame===a?t._lastSelectionResult:Qn.NONE;c!==Qn.CULLED_BUT_NEEDED&&c!==Qn.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=Qn.CULLED_BUT_NEEDED}else e.preloadSiblings||t.level===0?(zp(e,e._tileLoadQueueLow,t,i),t._lastSelectionResult=Qn.CULLED):t._lastSelectionResult=Qn.CULLED;t._lastSelectionResultFrame=i.frameNumber}function Xtt(e,t,n){if(t.mode===ne.SCENE2D||t.camera.frustum instanceof tn||t.camera.frustum instanceof Ir)return Ktt(e,t,n);let i=e._tileProvider.getLevelMaximumGeometricError(n.level),o=n._distance,r=t.context.drawingBufferHeight,s=t.camera.frustum.sseDenominator,a=i*r/(o*s);return t.fog.enabled&&(a-=P.fog(o,t.fog.density)*t.fog.sse),a/=t.pixelRatio,a}function Ktt(e,t,n){let o=t.camera.frustum,r=o.offCenterFrustum;l(r)&&(o=r);let s=t.context,a=s.drawingBufferWidth,c=s.drawingBufferHeight,u=e._tileProvider.getLevelMaximumGeometricError(n.level),f=Math.max(o.top-o.bottom,o.right-o.left)/Math.max(a,c),d=u/f;return t.fog.enabled&&t.mode!==ne.SCENE2D&&(d-=P.fog(n._distance,t.fog.density)*t.fog.sse),d/=t.pixelRatio,d}function JU(e,t){e._tilesToRender.push(t)}function Jtt(e,t){let n=e._tileLoadQueueHigh,i=e._tileLoadQueueMedium,o=e._tileLoadQueueLow;if(n.length===0&&i.length===0&&o.length===0)return;e._tileReplacementQueue.trimTiles(e.tileCacheSize);let r=Ci()+e._loadQueueTimeSlice,s=e._tileProvider,a=Aj(e,t,s,r,n,!1);a=Aj(e,t,s,r,i,a),Aj(e,t,s,r,o,a)}function Ztt(e,t){return e._loadPriority-t._loadPriority}function Aj(e,t,n,i,o,r){n.computeTileLoadPriority!==void 0&&o.sort(Ztt);for(let s=0,a=o.length;s<a&&(Ci()<i||!r);++s){let c=o[s];e._tileReplacementQueue.markTileRendered(c),n.loadTile(t,c),r=!0}return r}var KE=new In,xj=new he,cy=new m,Qtt=[];function $tt(e,t){if(!e.tileProvider.ready)return;let n=Qtt;n.length=0;let i=e._tileToUpdateHeights,o=Ci(),r=e._updateHeightsTimeSlice,s=o+r,a=t.mode,c=t.mapProjection,u=e.tileProvider.tilingScheme.ellipsoid,f;for(;i.length>0;){let d=i[0];if(!l(d.data)||!l(d.data.mesh)){let A=d._lastSelectionResultFrame===e._lastSelectionFrameNumber?d._lastSelectionResult:Qn.NONE;(A===Qn.RENDERED||A===Qn.CULLED_BUT_NEEDED)&&n.push(d),i.shift(),e._lastTileIndex=0;continue}let p=d.customData,g=p.length,h=!1;for(f=e._lastTileIndex;f<g;++f){let A=p[f],x=d.data.terrainData,C=l(x)&&x.wasCreatedByUpsampling();if(d.level>A.level&&!C){if(l(A.positionOnEllipsoidSurface)||(A.positionOnEllipsoidSurface=m.fromRadians(A.positionCartographic.longitude,A.positionCartographic.latitude,0,u)),a===ne.SCENE3D){let E=u.geodeticSurfaceNormal(A.positionOnEllipsoidSurface,KE.direction),S=u.getSurfaceNormalIntersectionWithZAxis(A.positionOnEllipsoidSurface,11500,KE.origin);if(!l(S)){let v=0;l(d.data.tileBoundingRegion)&&(v=d.data.tileBoundingRegion.minimumHeight);let D=Math.min(v,-11500),O=m.multiplyByScalar(E,Math.abs(D)+1,cy);m.subtract(A.positionOnEllipsoidSurface,O,KE.origin)}}else he.clone(A.positionCartographic,xj),xj.height=-11500,c.project(xj,cy),m.fromElements(cy.z,cy.x,cy.y,cy),m.clone(cy,KE.origin),m.clone(m.UNIT_X,KE.direction);let T=d.data.pick(KE,a,c,!1,cy);l(T)&&(l(A.callback)&&A.callback(T),A.level=d.level)}if(Ci()>=s){h=!0;break}}if(h){e._lastTileIndex=f;break}else e._lastTileIndex=0,i.shift()}for(f=0;f<n.length;f++)i.push(n[f])}function ent(e,t){let n=e._tileProvider,i=e._tilesToRender;for(let o=0,r=i.length;o<r;++o){let s=i[o];n.showTileThisFrame(s,t)}}var ZU=mf;function Bd(e){e=y(e,oe.WGS84);let t=new iy({ellipsoid:e}),n=new WU;this._ellipsoid=e,this._imageryLayerCollection=n,this._surfaceShaderSet=new gU,this._material=void 0,this._surface=new ZU({tileProvider:new zU({terrainProvider:t,imageryLayers:n,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=t,this._terrainProviderChanged=new ge,this._undergroundColor=z.clone(z.BLACK),this._undergroundColorAlphaByDistance=new Lt(e.maximumRadius/1e3,0,e.maximumRadius/5,1),this._translucency=new HU,Ej(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new we({url:en("Assets/Textures/waterNormalsSmall.jpg")}),this.maximumScreenSpaceError=2,this.tileCacheSize=100,this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this.fillHighlightColor=void 0,this.enableLighting=!1,this.lambertDiffuseMultiplier=.9,this.dynamicAtmosphereLighting=!0,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!0,this.atmosphereLightIntensity=10,this.atmosphereRayleighCoefficient=new m(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new m(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.lightingFadeOutDistance=1e7,this.lightingFadeInDistance=2e7,this.nightFadeOutDistance=1e7,this.nightFadeInDistance=5e7,this.showWaterEffect=!0,this.depthTestAgainstTerrain=!1,this.shadows=xn.RECEIVE_ONLY,this.atmosphereHueShift=0,this.atmosphereSaturationShift=0,this.atmosphereBrightnessShift=0,this.terrainExaggeration=1,this.terrainExaggerationRelativeHeight=0,this.showSkirts=!0,this.backFaceCulling=!0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0,this.vertexShadowDarkness=.3}Object.defineProperties(Bd.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},imageryLayers:{get:function(){return this._imageryLayerCollection}},imageryLayersUpdatedEvent:{get:function(){return this._surface.tileProvider.imageryLayersUpdatedEvent}},tilesLoaded:{get:function(){return l(this._surface)?this._surface.tileProvider.ready&&this._surface._tileLoadQueueHigh.length===0&&this._surface._tileLoadQueueMedium.length===0&&this._surface._tileLoadQueueLow.length===0:!0}},baseColor:{get:function(){return this._surface.tileProvider.baseColor},set:function(e){this._surface.tileProvider.baseColor=e}},clippingPlanes:{get:function(){return this._surface.tileProvider.clippingPlanes},set:function(e){this._surface.tileProvider.clippingPlanes=e}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){l(e)||(e=le.clone(le.MAX_VALUE)),this._surface.tileProvider.cartographicLimitRectangle=e}},oceanNormalMapUrl:{get:function(){return this._oceanNormalMapResource.url},set:function(e){this._oceanNormalMapResource.url=e,this._oceanNormalMapResourceDirty=!0}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){e!==this._terrainProvider&&(this._terrainProvider=e,this._terrainProviderChanged.raiseEvent(e),l(this._material)&&Ej(this))}},terrainProviderChanged:{get:function(){return this._terrainProviderChanged}},tileLoadProgressEvent:{get:function(){return this._surface.tileLoadProgressEvent}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,Ej(this))}},undergroundColor:{get:function(){return this._undergroundColor},set:function(e){this._undergroundColor=z.clone(e,this._undergroundColor)}},undergroundColorAlphaByDistance:{get:function(){return this._undergroundColorAlphaByDistance},set:function(e){this._undergroundColorAlphaByDistance=Lt.clone(e,this._undergroundColorAlphaByDistance)}},translucency:{get:function(){return this._translucency}}});function Ej(e){let t=[],n=l(e._material)&&(e._material.shaderSource.match(/slope/)||e._material.shaderSource.match("normalEC")),i=[oy,sD];l(e._material)&&(!n||e._terrainProvider.requestVertexNormals)?(i.push(e._material.shaderSource),t.push("APPLY_MATERIAL"),e._surface._tileProvider.materialUniformMap=e._material._uniforms):e._surface._tileProvider.materialUniformMap=void 0,i.push(pU),e._surfaceShaderSet.baseVertexShaderSource=new He({sources:[oy,sD,_U],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new He({sources:i,defines:t}),e._surfaceShaderSet.material=e._material}function tnt(e){return function(t,n){let i=ae.distanceSquaredTo(t.pickBoundingSphere,e),o=ae.distanceSquaredTo(n.pickBoundingSphere,e);return i-o}}var nnt=[],int={start:0,stop:0};Bd.prototype.pickWorldCoordinates=function(e,t,n,i){n=y(n,!0);let o=t.mode,r=t.mapProjection,s=nnt;s.length=0;let a=this._surface._tilesToRender,c=a.length,u,f;for(f=0;f<c;++f){u=a[f];let p=u.data;if(!l(p))continue;let g=p.pickBoundingSphere;if(o!==ne.SCENE3D)p.pickBoundingSphere=g=ae.fromRectangleWithHeights2D(u.rectangle,r,p.tileBoundingRegion.minimumHeight,p.tileBoundingRegion.maximumHeight,g),m.fromElements(g.center.z,g.center.x,g.center.y,g.center);else if(l(p.renderedMesh))ae.clone(p.tileBoundingRegion.boundingSphere,g);else continue;let h=Ji.raySphere(e,g,int);l(h)&&s.push(p)}s.sort(tnt(e.origin));let d;for(c=s.length,f=0;f<c&&(d=s[f].pick(e,t.mode,t.mapProjection,n,i),!l(d));++f);return d};var ont=new he;Bd.prototype.pick=function(e,t,n){if(n=this.pickWorldCoordinates(e,t,!0,n),l(n)&&t.mode!==ne.SCENE3D){n=m.fromElements(n.y,n.z,n.x,n);let i=t.mapProjection.unproject(n,ont);n=t.globe.ellipsoid.cartographicToCartesian(i,n)}return n};var rnt=new m,xhe=new m,snt=new he,ant=new In;function Tj(e,t){return l(e)&&le.contains(e.rectangle,t)?e:void 0}Bd.prototype.getHeight=function(e){let t=this._surface._levelZeroTiles;if(!l(t))return;let n,i,o=t.length;for(i=0;i<o&&(n=t[i],!le.contains(n.rectangle,e));++i);if(i>=o)return;let r=n;for(;l(n);)n=Tj(n._southwestChild,e)||Tj(n._southeastChild,e)||Tj(n._northwestChild,e)||n._northeastChild,l(n)&&l(n.data)&&l(n.data.renderedMesh)&&(r=n);if(n=r,!l(n)||!l(n.data)||!l(n.data.renderedMesh))return;let s=this._surface._tileProvider.tilingScheme.projection,a=this._surface._tileProvider.tilingScheme.ellipsoid,c=m.fromRadians(e.longitude,e.latitude,0,a,rnt),u=ant,f=a.geodeticSurfaceNormal(c,u.direction),d=a.getSurfaceNormalIntersectionWithZAxis(c,11500,u.origin);if(!l(d)){let g;l(n.data.tileBoundingRegion)&&(g=n.data.tileBoundingRegion.minimumHeight);let h=Math.min(y(g,0),-11500),A=m.multiplyByScalar(f,Math.abs(h)+1,xhe);m.subtract(c,A,u.origin)}let p=n.data.pick(u,void 0,s,!1,xhe);if(l(p))return a.cartesianToCartographic(p,snt).height};Bd.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)};Bd.prototype.beginFrame=function(e){let t=this._surface,n=t.tileProvider,i=this.terrainProvider,o=this.showWaterEffect&&l(i)&&i.hasWaterMask&&i._ready&&i.hasWaterMask;if(o&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;let a=this._oceanNormalMapResource,c=a.url;if(l(c)){let u=this;a.fetchImage().then(function(f){c===u._oceanNormalMapResource.url&&(u._oceanNormalMap=u._oceanNormalMap&&u._oceanNormalMap.destroy(),u._oceanNormalMap=new Bt({context:e.context,source:f}))})}else this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy()}let r=e.passes,s=e.mode;r.render&&(this.showGroundAtmosphere?this._zoomedOutOceanSpecularIntensity=.4:this._zoomedOutOceanSpecularIntensity=.5,t.maximumScreenSpaceError=this.maximumScreenSpaceError,t.tileCacheSize=this.tileCacheSize,t.loadingDescendantLimit=this.loadingDescendantLimit,t.preloadAncestors=this.preloadAncestors,t.preloadSiblings=this.preloadSiblings,n.terrainProvider=this.terrainProvider,n.lightingFadeOutDistance=this.lightingFadeOutDistance,n.lightingFadeInDistance=this.lightingFadeInDistance,n.nightFadeOutDistance=this.nightFadeOutDistance,n.nightFadeInDistance=this.nightFadeInDistance,n.zoomedOutOceanSpecularIntensity=s===ne.SCENE3D?this._zoomedOutOceanSpecularIntensity:0,n.hasWaterMask=o,n.oceanNormalMap=this._oceanNormalMap,n.enableLighting=this.enableLighting,n.dynamicAtmosphereLighting=this.dynamicAtmosphereLighting,n.dynamicAtmosphereLightingFromSun=this.dynamicAtmosphereLightingFromSun,n.showGroundAtmosphere=this.showGroundAtmosphere,n.atmosphereLightIntensity=this.atmosphereLightIntensity,n.atmosphereRayleighCoefficient=this.atmosphereRayleighCoefficient,n.atmosphereMieCoefficient=this.atmosphereMieCoefficient,n.atmosphereRayleighScaleHeight=this.atmosphereRayleighScaleHeight,n.atmosphereMieScaleHeight=this.atmosphereMieScaleHeight,n.atmosphereMieAnisotropy=this.atmosphereMieAnisotropy,n.shadows=this.shadows,n.hueShift=this.atmosphereHueShift,n.saturationShift=this.atmosphereSaturationShift,n.brightnessShift=this.atmosphereBrightnessShift,n.fillHighlightColor=this.fillHighlightColor,n.showSkirts=this.showSkirts,n.backFaceCulling=this.backFaceCulling,n.vertexShadowDarkness=this.vertexShadowDarkness,n.undergroundColor=this._undergroundColor,n.undergroundColorAlphaByDistance=this._undergroundColorAlphaByDistance,n.lambertDiffuseMultiplier=this.lambertDiffuseMultiplier,t.beginFrame(e))};Bd.prototype.render=function(e){this.show&&(l(this._material)&&this._material.update(e.context),this._surface.render(e))};Bd.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)};Bd.prototype.isDestroyed=function(){return!1};Bd.prototype.destroy=function(){return this._surfaceShaderSet=this._surfaceShaderSet&&this._surfaceShaderSet.destroy(),this._surface=this._surface&&this._surface.destroy(),this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy(),ue(this)};var QU=Bd;function cnt(e,t,n,i){this.rightAscension=e,this.declination=t,this.rotation=n,this.rotationRate=i}var $U=cnt;var Bhe={},lnt=32.184,unt=2451545,Che=-.0529921,The=-.1059842,Ehe=13.0120009,bhe=13.3407154,She=.9856003,whe=26.4057084,vhe=13.064993,Dhe=.3287146,Ihe=1.7484877,Phe=-.1589763,Ohe=.0036096,Mhe=.1643573,Rhe=12.9590088,bj=new ee;Bhe.ComputeMoon=function(e,t){l(e)||(e=ee.now()),bj=ee.addSeconds(e,lnt,bj);let n=ee.totalDays(bj)-unt,i=n/Zn.DAYS_PER_JULIAN_CENTURY,o=(125.045+Che*n)*P.RADIANS_PER_DEGREE,r=(250.089+The*n)*P.RADIANS_PER_DEGREE,s=(260.008+Ehe*n)*P.RADIANS_PER_DEGREE,a=(176.625+bhe*n)*P.RADIANS_PER_DEGREE,c=(357.529+She*n)*P.RADIANS_PER_DEGREE,u=(311.589+whe*n)*P.RADIANS_PER_DEGREE,f=(134.963+vhe*n)*P.RADIANS_PER_DEGREE,d=(276.617+Dhe*n)*P.RADIANS_PER_DEGREE,p=(34.226+Ihe*n)*P.RADIANS_PER_DEGREE,g=(15.134+Phe*n)*P.RADIANS_PER_DEGREE,h=(119.743+Ohe*n)*P.RADIANS_PER_DEGREE,A=(239.961+Mhe*n)*P.RADIANS_PER_DEGREE,x=(25.053+Rhe*n)*P.RADIANS_PER_DEGREE,C=Math.sin(o),T=Math.sin(r),E=Math.sin(s),S=Math.sin(a),v=Math.sin(c),D=Math.sin(u),O=Math.sin(f),M=Math.sin(d),L=Math.sin(p),N=Math.sin(g),_=Math.sin(h),b=Math.sin(A),w=Math.sin(x),I=Math.cos(o),R=Math.cos(r),F=Math.cos(s),k=Math.cos(a),V=Math.cos(c),G=Math.cos(u),U=Math.cos(f),q=Math.cos(d),Y=Math.cos(p),Q=Math.cos(g),W=Math.cos(h),K=Math.cos(A),J=Math.cos(x),_e=(269.9949+.0031*i-3.8787*C-.1204*T+.07*E-.0172*S+.0072*D-.0052*N+.0043*w)*P.RADIANS_PER_DEGREE,xe=(66.5392+.013*i+1.5419*I+.0239*R-.0278*F+.0068*k-.0029*G+9e-4*U+8e-4*Q-9e-4*J)*P.RADIANS_PER_DEGREE,se=(38.3213+13.17635815*n-14e-13*n*n+3.561*C+.1208*T-.0642*E+.0158*S+.0252*v-.0066*D-.0047*O-.0046*M+.0028*L+.0052*N+.004*_+.0019*b-.0044*w)*P.RADIANS_PER_DEGREE,Ae=(13.17635815-14e-13*(2*n)+3.561*I*Che+.1208*R*The-.0642*F*Ehe+.0158*k*bhe+.0252*V*She-.0066*G*whe-.0047*U*vhe-.0046*q*Dhe+.0028*Y*Ihe+.0052*Q*Phe+.004*W*Ohe+.0019*K*Mhe-.0044*J*Rhe)/86400*P.RADIANS_PER_DEGREE;return l(t)||(t=new $U),t.rightAscension=_e,t.declination=xe,t.rotation=se,t.rotationRate=Ae,t};var eV=Bhe;function Lhe(e){(!l(e)||typeof e!="function")&&(e=eV.ComputeMoon),this._computeFunction=e}var fnt=new m,dnt=new m,mnt=new m;function hnt(e,t,n){let i=fnt;i.x=Math.cos(e+P.PI_OVER_TWO),i.y=Math.sin(e+P.PI_OVER_TWO),i.z=0;let o=Math.cos(t),r=mnt;r.x=o*Math.cos(e),r.y=o*Math.sin(e),r.z=Math.sin(t);let s=m.cross(r,i,dnt);return l(n)||(n=new Z),n[0]=i.x,n[1]=s.x,n[2]=r.x,n[3]=i.y,n[4]=s.y,n[5]=r.y,n[6]=i.z,n[7]=s.z,n[8]=r.z,n}var pnt=new Z,_nt=new Ne;Lhe.prototype.evaluate=function(e,t){l(e)||(e=ee.now());let n=this._computeFunction(e),i=hnt(n.rightAscension,n.declination,t),o=P.zeroToTwoPi(n.rotation),r=Ne.fromAxisAngle(m.UNIT_Z,o,_nt),s=Z.fromQuaternion(Ne.conjugate(r,r),pnt);return Z.multiply(s,i,i)};var tV=Lhe;var wD=`uniform vec3 u_radii; +uniform vec3 u_oneOverEllipsoidRadiiSquared; + +in vec3 v_positionEC; + +vec4 computeEllipsoidColor(czm_ray ray, float intersection, float side) +{ + vec3 positionEC = czm_pointAlongRay(ray, intersection); + vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz; + vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared)); + vec3 sphericalNormal = normalize(positionMC / u_radii); + vec3 normalMC = geodeticNormal * side; // normalized surface normal (always facing the viewer) in model coordinates + vec3 normalEC = normalize(czm_normal * normalMC); // normalized surface normal in eye coordiantes + + vec2 st = czm_ellipsoidWgs84TextureCoordinates(sphericalNormal); + vec3 positionToEyeEC = -positionEC; + + czm_materialInput materialInput; + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = (positionMC + u_radii) / u_radii; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef ONLY_SUN_LIGHTING + return czm_private_phong(normalize(positionToEyeEC), material, czm_sunDirectionEC); +#else + return czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} + +void main() +{ + // PERFORMANCE_TODO: When dynamic branching is available, compute ratio of maximum and minimum radii + // in the vertex shader. Only when it is larger than some constant, march along the ray. + // Otherwise perform one intersection test which will be the common case. + + // Test if the ray intersects a sphere with the ellipsoid's maximum radius. + // For very oblate ellipsoids, using the ellipsoid's radii for an intersection test + // may cause false negatives. This will discard fragments before marching the ray forward. + float maxRadius = max(u_radii.x, max(u_radii.y, u_radii.z)) * 1.5; + vec3 direction = normalize(v_positionEC); + vec3 ellipsoidCenter = czm_modelView[3].xyz; + + float t1 = -1.0; + float t2 = -1.0; + + float b = -2.0 * dot(direction, ellipsoidCenter); + float c = dot(ellipsoidCenter, ellipsoidCenter) - maxRadius * maxRadius; + + float discriminant = b * b - 4.0 * c; + if (discriminant >= 0.0) { + t1 = (-b - sqrt(discriminant)) * 0.5; + t2 = (-b + sqrt(discriminant)) * 0.5; + } + + if (t1 < 0.0 && t2 < 0.0) { + discard; + } + + float t = min(t1, t2); + if (t < 0.0) { + t = 0.0; + } + + // March ray forward to intersection with larger sphere and find + czm_ray ray = czm_ray(t * direction, direction); + + vec3 ellipsoid_inverseRadii = vec3(1.0 / u_radii.x, 1.0 / u_radii.y, 1.0 / u_radii.z); + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii); + + if (czm_isEmpty(intersection)) + { + discard; + } + + // If the viewer is outside, compute outsideFaceColor, with normals facing outward. + vec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0); + + // If the viewer either is inside or can see inside, compute insideFaceColor, with normals facing inward. + vec4 insideFaceColor = (outsideFaceColor.a < 1.0) ? computeEllipsoidColor(ray, intersection.stop, -1.0) : vec4(0.0); + + out_FragColor = mix(insideFaceColor, outsideFaceColor, outsideFaceColor.a); + out_FragColor.a = 1.0 - (1.0 - insideFaceColor.a) * (1.0 - outsideFaceColor.a); + +#if (defined(WRITE_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + t = (intersection.start != 0.0) ? intersection.start : intersection.stop; + vec3 positionEC = czm_pointAlongRay(ray, t); + vec4 positionCC = czm_projection * vec4(positionEC, 1.0); +#ifdef LOG_DEPTH + czm_writeLogDepth(1.0 + positionCC.w); +#else + float z = positionCC.z / positionCC.w; + + float n = czm_depthRange.near; + float f = czm_depthRange.far; + + gl_FragDepth = (z * (f - n) + f + n) * 0.5; +#endif +#endif +} +`;var vD=`in vec3 position; + +uniform vec3 u_radii; + +out vec3 v_positionEC; + +void main() +{ + // In the vertex data, the cube goes from (-1.0, -1.0, -1.0) to (1.0, 1.0, 1.0) in model coordinates. + // Scale to consider the radii. We could also do this once on the CPU when using the BoxGeometry, + // but doing it here allows us to change the radii without rewriting the vertex data, and + // allows all ellipsoids to reuse the same vertex data. + vec4 p = vec4(u_radii * position, 1.0); + + v_positionEC = (czm_modelView * p).xyz; // position in eye coordinates + gl_Position = czm_modelViewProjection * p; // position in clip coordinates + + // With multi-frustum, when the ellipsoid primitive is positioned on the intersection of two frustums + // and close to terrain, the terrain (writes depth) in the closest frustum can overwrite part of the + // ellipsoid (does not write depth) that was rendered in the farther frustum. + // + // Here, we clamp the depth in the vertex shader to avoid being overwritten; however, this creates + // artifacts since some fragments can be alpha blended twice. This is solved by only rendering + // the ellipsoid in the closest frustum to the viewer. + gl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far); + + czm_vertexLogDepth(); +} +`;var Sj={position:0};function nV(e){e=y(e,y.EMPTY_OBJECT),this.center=m.clone(y(e.center,m.ZERO)),this._center=new m,this.radii=m.clone(e.radii),this._radii=new m,this._oneOverEllipsoidRadiiSquared=new m,this._boundingSphere=new ae,this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._modelMatrix=new B,this._computedModelMatrix=new B,this.show=y(e.show,!0),this.material=y(e.material,Gi.fromType(Gi.ColorType)),this._material=void 0,this._translucent=void 0,this.id=e.id,this._id=void 0,this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.onlySunLighting=y(e.onlySunLighting,!1),this._onlySunLighting=!1,this._depthTestEnabled=y(e.depthTestEnabled,!0),this._useLogDepth=!1,this._sp=void 0,this._rs=void 0,this._va=void 0,this._pickSP=void 0,this._pickId=void 0,this._colorCommand=new it({owner:y(e._owner,this)}),this._pickCommand=new it({owner:y(e._owner,this),pickOnly:!0});let t=this;this._uniforms={u_radii:function(){return t.radii},u_oneOverEllipsoidRadiiSquared:function(){return t._oneOverEllipsoidRadiiSquared}},this._pickUniforms={czm_pickColor:function(){return t._pickId.color}}}function gnt(e){let t=e.cache.ellipsoidPrimitive_vertexArray;if(l(t))return t;let n=Pl.createGeometry(Pl.fromDimensions({dimensions:new m(2,2,2),vertexFormat:Pe.POSITION_ONLY}));return t=ri.fromGeometry({context:e,geometry:n,attributeLocations:Sj,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=t,t}nV.prototype.update=function(e){if(!this.show||e.mode!==ne.SCENE3D||!l(this.center)||!l(this.radii))return;let t=e.context,n=this.material.isTranslucent(),i=this._translucent!==n;(!l(this._rs)||i)&&(this._translucent=n,this._rs=ze.fromCache({cull:{enabled:!0,face:gi.FRONT},depthTest:{enabled:this._depthTestEnabled},depthMask:!n&&t.fragmentDepth,blending:n?mn.ALPHA_BLEND:void 0})),l(this._va)||(this._va=gnt(t));let o=!1,r=this.radii;if(!m.equals(this._radii,r)){m.clone(r,this._radii);let A=this._oneOverEllipsoidRadiiSquared;A.x=1/(r.x*r.x),A.y=1/(r.y*r.y),A.z=1/(r.z*r.z),o=!0}(!B.equals(this.modelMatrix,this._modelMatrix)||!m.equals(this.center,this._center))&&(B.clone(this.modelMatrix,this._modelMatrix),m.clone(this.center,this._center),B.multiplyByTranslation(this.modelMatrix,this.center,this._computedModelMatrix),o=!0),o&&(m.clone(m.ZERO,this._boundingSphere.center),this._boundingSphere.radius=m.maximumComponent(r),ae.transform(this._boundingSphere,this._computedModelMatrix,this._boundingSphere));let s=this._material!==this.material;this._material=this.material,this._material.update(t);let a=this.onlySunLighting!==this._onlySunLighting;this._onlySunLighting=this.onlySunLighting;let c=e.useLogDepth,u=this._useLogDepth!==c;this._useLogDepth=c;let f=this._colorCommand,d,p;(s||a||i||u)&&(d=new He({sources:[vD]}),p=new He({sources:[this.material.shaderSource,wD]}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._sp=Jt.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:Sj}),f.vertexArray=this._va,f.renderState=this._rs,f.shaderProgram=this._sp,f.uniformMap=gt(this._uniforms,this.material._uniforms),f.executeInClosestFrustum=n);let g=e.commandList,h=e.passes;if(h.render&&(f.boundingVolume=this._boundingSphere,f.debugShowBoundingVolume=this.debugShowBoundingVolume,f.modelMatrix=this._computedModelMatrix,f.pass=n?be.TRANSLUCENT:be.OPAQUE,g.push(f)),h.pick){let A=this._pickCommand;(!l(this._pickId)||this._id!==this.id)&&(this._id=this.id,this._pickId=this._pickId&&this._pickId.destroy(),this._pickId=t.createPickId({primitive:this,id:this.id})),(s||a||!l(this._pickSP)||u)&&(d=new He({sources:[vD]}),p=new He({sources:[this.material.shaderSource,wD],pickColorQualifier:"uniform"}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._pickSP=Jt.replaceCache({context:t,shaderProgram:this._pickSP,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:Sj}),A.vertexArray=this._va,A.renderState=this._rs,A.shaderProgram=this._pickSP,A.uniformMap=gt(gt(this._uniforms,this._pickUniforms),this.material._uniforms),A.executeInClosestFrustum=n),A.boundingVolume=this._boundingSphere,A.modelMatrix=this._computedModelMatrix,A.pass=n?be.TRANSLUCENT:be.OPAQUE,g.push(A)}};nV.prototype.isDestroyed=function(){return!1};nV.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._pickSP=this._pickSP&&this._pickSP.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var iV=nV;function DD(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureUrl;l(t)||(t=en("Assets/Textures/moonSmall.jpg")),this.show=y(e.show,!0),this.textureUrl=t,this._ellipsoid=y(e.ellipsoid,oe.MOON),this.onlySunLighting=y(e.onlySunLighting,!0),this._ellipsoidPrimitive=new iV({radii:this.ellipsoid.radii,material:Gi.fromType(Gi.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new tV}Object.defineProperties(DD.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var oV=new Z,ynt=new Z,Ant=new m,rV=[];DD.prototype.update=function(e){if(!this.show)return;let t=this._ellipsoidPrimitive;t.material.uniforms.image=this.textureUrl,t.onlySunLighting=this.onlySunLighting;let n=e.time;l(Rt.computeIcrfToFixedMatrix(n,oV))||Rt.computeTemeToPseudoFixedMatrix(n,oV);let i=this._axes.evaluate(n,ynt);Z.transpose(i,i),Z.multiply(oV,i,i);let o=Ky.computeMoonPositionInEarthInertialFrame(n,Ant);Z.multiplyByVector(oV,o,o),B.fromRotationTranslation(i,o,t.modelMatrix);let r=e.commandList;return e.commandList=rV,rV.length=0,t.update(e),e.commandList=r,rV.length===1?rV[0]:void 0};DD.prototype.isDestroyed=function(){return!1};DD.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),ue(this)};var sV=DD;var wj=[],vj=[];function xnt(e,t,n,i,o,r){let s=o-i+1,a=r-o,c=wj,u=vj,f,d;for(f=0;f<s;++f)c[f]=e[i+f];for(d=0;d<a;++d)u[d]=e[o+d+1];f=0,d=0;for(let p=i;p<=r;++p){let g=c[f],h=u[d];f<s&&(d>=a||t(g,h,n)<=0)?(e[p]=g,++f):d<a&&(e[p]=h,++d)}}function Dj(e,t,n,i,o){if(i>=o)return;let r=Math.floor((i+o)*.5);Dj(e,t,n,i,r),Dj(e,t,n,r+1,o),xnt(e,t,n,i,r,o)}function Cnt(e,t,n){let i=e.length,o=Math.ceil(i*.5);wj.length=o,vj.length=o,Dj(e,t,n,0,i-1),wj.length=0,vj.length=0}var ly=Cnt;function Xa(e,t){this._occluderPosition=m.clone(e.center),this._occluderRadius=e.radius,this._horizonDistance=0,this._horizonPlaneNormal=void 0,this._horizonPlanePosition=void 0,this._cameraPosition=void 0,this.cameraPosition=t}var aV=new m;Object.defineProperties(Xa.prototype,{position:{get:function(){return this._occluderPosition}},radius:{get:function(){return this._occluderRadius}},cameraPosition:{set:function(e){e=m.clone(e,this._cameraPosition);let t=m.subtract(this._occluderPosition,e,aV),n=m.magnitudeSquared(t),i=this._occluderRadius*this._occluderRadius,o,r,s;if(n>i){o=Math.sqrt(n-i),n=1/Math.sqrt(n),r=m.multiplyByScalar(t,n,aV);let a=o*o*n;s=m.add(e,m.multiplyByScalar(r,a,aV),aV)}else o=Number.MAX_VALUE;this._horizonDistance=o,this._horizonPlaneNormal=r,this._horizonPlanePosition=s,this._cameraPosition=e}}});Xa.fromBoundingSphere=function(e,t,n){return l(n)?(m.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=t,n):new Xa(e,t)};var Fhe=new m;Xa.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){let t=m.subtract(e,this._occluderPosition,Fhe),n=this._occluderRadius;if(n=m.magnitudeSquared(t)-n*n,n>0)return n=Math.sqrt(n)+this._horizonDistance,t=m.subtract(e,this._cameraPosition,t),n*n>m.magnitudeSquared(t)}return!1};var Tnt=new m;Xa.prototype.isBoundingSphereVisible=function(e){let t=m.clone(e.center,Tnt),n=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){let i=m.subtract(t,this._occluderPosition,Fhe),o=this._occluderRadius-n;if(o=m.magnitudeSquared(i)-o*o,n<this._occluderRadius)return o>0?(o=Math.sqrt(o)+this._horizonDistance,i=m.subtract(t,this._cameraPosition,i),o*o+n*n>m.magnitudeSquared(i)):!1;if(o>0){i=m.subtract(t,this._cameraPosition,i);let r=m.magnitudeSquared(i),s=this._occluderRadius*this._occluderRadius,a=n*n;return(this._horizonDistance*this._horizonDistance+s)*a>r*s?!0:(o=Math.sqrt(o)+this._horizonDistance,o*o+a>r)}return!0}return!1};var Ent=new m;Xa.prototype.computeVisibility=function(e){let t=m.clone(e.center),n=e.radius;if(n>this._occluderRadius)return mr.FULL;if(this._horizonDistance!==Number.MAX_VALUE){let i=m.subtract(t,this._occluderPosition,Ent),o=this._occluderRadius-n,r=m.magnitudeSquared(i);if(o=r-o*o,o>0){o=Math.sqrt(o)+this._horizonDistance,i=m.subtract(t,this._cameraPosition,i);let s=m.magnitudeSquared(i);return o*o+n*n<s?mr.NONE:(o=this._occluderRadius+n,o=r-o*o,o>0?(o=Math.sqrt(o)+this._horizonDistance,s<o*o+n*n?mr.FULL:mr.PARTIAL):(i=m.subtract(t,this._horizonPlanePosition,i),m.dot(i,this._horizonPlaneNormal)>-n?mr.PARTIAL:mr.FULL))}}return mr.NONE};var cV=new m;Xa.computeOccludeePoint=function(e,t,n){let i=m.clone(t),o=m.clone(e.center),r=e.radius,s=n.length,a=m.normalize(m.subtract(i,o,cV),cV),c=-m.dot(a,o),u=Xa._anyRotationVector(o,a,c),f=Xa._horizonToPlaneNormalDotProduct(e,a,c,u,n[0]);if(!f)return;let d;for(let g=1;g<s;++g){if(d=Xa._horizonToPlaneNormalDotProduct(e,a,c,u,n[g]),!d)return;d<f&&(f=d)}if(f<.0017453283658983088)return;let p=r/f;return m.add(o,m.multiplyByScalar(a,p,cV),cV)};var bnt=[];Xa.computeOccludeePointFromRectangle=function(e,t){t=y(t,oe.WGS84);let n=le.subsample(e,t,0,bnt),i=ae.fromPoints(n),o=m.ZERO;if(!m.equals(o,i.center))return Xa.computeOccludeePoint(new ae(o,t.minimumRadius),i.center,n)};var Snt=new m;Xa._anyRotationVector=function(e,t,n){let i=m.abs(t,Snt),o=i.x>i.y?0:1;(o===0&&i.z>i.x||o===1&&i.z>i.y)&&(o=2);let r=new m,s;o===0?(i.x=e.x,i.y=e.y+1,i.z=e.z+1,s=m.UNIT_X):o===1?(i.x=e.x+1,i.y=e.y,i.z=e.z+1,s=m.UNIT_Y):(i.x=e.x+1,i.y=e.y+1,i.z=e.z,s=m.UNIT_Z);let a=(m.dot(t,i)+n)/-m.dot(t,s);return m.normalize(m.subtract(m.add(i,m.multiplyByScalar(s,a,r),i),e,i),i)};var wnt=new m;Xa._rotationVector=function(e,t,n,i,o){let r=m.subtract(i,e,wnt);if(r=m.normalize(r,r),m.dot(t,r)<.9999999847691291){let s=m.cross(t,r,r);if(m.magnitude(s)>P.EPSILON13)return m.normalize(s,new m)}return o};var Ij=new m,vnt=new m,lV=new m,Nhe=new m;Xa._horizonToPlaneNormalDotProduct=function(e,t,n,i,o){let r=m.clone(o,Ij),s=m.clone(e.center,vnt),a=e.radius,c=m.subtract(s,r,lV),u=m.magnitudeSquared(c),f=a*a;if(u<f)return!1;let d=u-f,p=Math.sqrt(d),h=1/Math.sqrt(u),x=p*h*p;c=m.normalize(c,c);let C=m.add(r,m.multiplyByScalar(c,x,Nhe),Nhe),T=Math.sqrt(d-x*x),E=this._rotationVector(s,t,n,r,i),S=m.fromElements(E.x*E.x*c.x+(E.x*E.y-E.z)*c.y+(E.x*E.z+E.y)*c.z,(E.x*E.y+E.z)*c.x+E.y*E.y*c.y+(E.y*E.z-E.x)*c.z,(E.x*E.z-E.y)*c.x+(E.y*E.z+E.x)*c.y+E.z*E.z*c.z,Ij);S=m.normalize(S,S);let v=m.multiplyByScalar(S,T,Ij);E=m.normalize(m.subtract(m.add(C,v,lV),s,lV),lV);let D=m.dot(t,E);E=m.normalize(m.subtract(m.subtract(C,v,E),s,E),E);let O=m.dot(t,E);return D<O?D:O};var uV=Xa;function oh(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new ts,this._perspectiveMatrix=new B,this._infinitePerspective=new B}function Pj(e){let t=e.top,n=e.bottom,i=e.right,o=e.left,r=e.near,s=e.far;(t!==e._top||n!==e._bottom||o!==e._left||i!==e._right||r!==e._near||s!==e._far)&&(e._left=o,e._right=i,e._top=t,e._bottom=n,e._near=r,e._far=s,e._perspectiveMatrix=B.computePerspectiveOffCenter(o,i,n,t,r,s,e._perspectiveMatrix),e._infinitePerspective=B.computeInfinitePerspectiveOffCenter(o,i,n,t,r,e._infinitePerspective))}Object.defineProperties(oh.prototype,{projectionMatrix:{get:function(){return Pj(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return Pj(this),this._infinitePerspective}}});var Dnt=new m,Int=new m,Pnt=new m,Ont=new m;oh.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,u=this.far,f=m.cross(t,n,Dnt),d=Int;m.multiplyByScalar(t,c,d),m.add(e,d,d);let p=Pnt;m.multiplyByScalar(t,u,p),m.add(e,p,p);let g=Ont;m.multiplyByScalar(f,a,g),m.add(d,g,g),m.subtract(g,e,g),m.normalize(g,g),m.cross(g,n,g),m.normalize(g,g);let h=i[0];return l(h)||(h=i[0]=new re),h.x=g.x,h.y=g.y,h.z=g.z,h.w=-m.dot(g,e),m.multiplyByScalar(f,s,g),m.add(d,g,g),m.subtract(g,e,g),m.cross(n,g,g),m.normalize(g,g),h=i[1],l(h)||(h=i[1]=new re),h.x=g.x,h.y=g.y,h.z=g.z,h.w=-m.dot(g,e),m.multiplyByScalar(n,r,g),m.add(d,g,g),m.subtract(g,e,g),m.cross(f,g,g),m.normalize(g,g),h=i[2],l(h)||(h=i[2]=new re),h.x=g.x,h.y=g.y,h.z=g.z,h.w=-m.dot(g,e),m.multiplyByScalar(n,o,g),m.add(d,g,g),m.subtract(g,e,g),m.cross(g,f,g),m.normalize(g,g),h=i[3],l(h)||(h=i[3]=new re),h.x=g.x,h.y=g.y,h.z=g.z,h.w=-m.dot(g,e),h=i[4],l(h)||(h=i[4]=new re),h.x=t.x,h.y=t.y,h.z=t.z,h.w=-m.dot(t,d),m.negate(t,g),h=i[5],l(h)||(h=i[5]=new re),h.x=g.x,h.y=g.y,h.z=g.z,h.w=-m.dot(g,p),this._cullingVolume};oh.prototype.getPixelDimensions=function(e,t,n,i,o){Pj(this);let r=1/this.near,s=this.top*r,a=2*i*n*s/t;s=this.right*r;let c=2*i*n*s/e;return o.x=c,o.y=a,o};oh.prototype.clone=function(e){return l(e)||(e=new oh),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};oh.prototype.equals=function(e){return l(e)&&e instanceof oh&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};oh.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof oh&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var pl=oh;function _l(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new pl,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this.xOffset=y(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=y(e.yOffset,0),this._yOffset=this.yOffset}_l.packedLength=6;_l.pack=function(e,t,n){return n=y(n,0),t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};_l.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new _l),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function Ld(e){let t=e._offCenterFrustum;(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset)&&(e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset,t.top=e.near*Math.tan(.5*e._fovy),t.bottom=-t.top,t.right=e.aspectRatio*t.top,t.left=-t.right,t.near=e.near,t.far=e.far,t.right+=e.xOffset,t.left+=e.xOffset,t.top+=e.yOffset,t.bottom+=e.yOffset)}Object.defineProperties(_l.prototype,{projectionMatrix:{get:function(){return Ld(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return Ld(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return Ld(this),this._fovy}},sseDenominator:{get:function(){return Ld(this),this._sseDenominator}},offCenterFrustum:{get:function(){return Ld(this),this._offCenterFrustum}}});_l.prototype.computeCullingVolume=function(e,t,n){return Ld(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};_l.prototype.getPixelDimensions=function(e,t,n,i,o){return Ld(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};_l.prototype.clone=function(e){return l(e)||(e=new _l),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};_l.prototype.equals=function(e){return!l(e)||!(e instanceof _l)?!1:(Ld(this),Ld(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};_l.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof _l)?!1:(Ld(this),Ld(e),P.equalsEpsilon(this.fov,e.fov,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var wi=_l;var fV=`in vec2 v_textureCoordinates; +const float M_PI = 3.141592653589793; + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +vec3 importanceSampleGGX(vec2 xi, float roughness, vec3 N) +{ + float a = roughness * roughness; + float phi = 2.0 * M_PI * xi.x; + float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (a * a - 1.0) * xi.y)); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangentX = normalize(cross(upVector, N)); + vec3 tangentY = cross(N, tangentX); + return tangentX * H.x + tangentY * H.y + N * H.z; +} + +float G1_Smith(float NdotV, float k) +{ + return NdotV / (NdotV * (1.0 - k) + k); +} + +float G_Smith(float roughness, float NdotV, float NdotL) +{ + float k = roughness * roughness / 2.0; + return G1_Smith(NdotV, k) * G1_Smith(NdotL, k); +} + +vec2 integrateBrdf(float roughness, float NdotV) +{ + vec3 V = vec3(sqrt(1.0 - NdotV * NdotV), 0.0, NdotV); + float A = 0.0; + float B = 0.0; + const int NumSamples = 1024; + for (int i = 0; i < NumSamples; i++) + { + vec2 xi = hammersley2D(i, NumSamples); + vec3 H = importanceSampleGGX(xi, roughness, vec3(0.0, 0.0, 1.0)); + vec3 L = 2.0 * dot(V, H) * H - V; + float NdotL = clamp(L.z, 0.0, 1.0); + float NdotH = clamp(H.z, 0.0, 1.0); + float VdotH = clamp(dot(V, H), 0.0, 1.0); + if (NdotL > 0.0) + { + float G = G_Smith(roughness, NdotV, NdotL); + float G_Vis = G * VdotH / (NdotH * NdotV); + float Fc = pow(1.0 - VdotH, 5.0); + A += (1.0 - Fc) * G_Vis; + B += Fc * G_Vis; + } + } + return vec2(A, B) / float(NumSamples); +} + +void main() +{ + out_FragColor = vec4(integrateBrdf(v_textureCoordinates.y, v_textureCoordinates.x), 0.0, 1.0); +} +`;function ID(){this._colorTexture=void 0,this._drawCommand=void 0}Object.defineProperties(ID.prototype,{colorTexture:{get:function(){return this._colorTexture}}});function Mnt(e,t,n){let i=t.createViewportQuadCommand(fV,{framebuffer:n,renderState:ze.fromCache({viewport:new Ke(0,0,256,256)})});e._drawCommand=i}ID.prototype.update=function(e){if(!l(this._colorTexture)){let t=e.context,n=new Bt({context:t,width:256,height:256,pixelFormat:lt.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,sampler:dn.NEAREST});this._colorTexture=n;let i=new ia({context:t,colorTextures:[n],destroyAttachments:!1});Mnt(this,t,i),this._drawCommand.execute(t),i.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}};ID.prototype.isDestroyed=function(){return!1};ID.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),ue(this)};var dV=ID;var zhe={};function Rnt(e,t,n){let i,o,r;if(e instanceof wi){let s=Math.tan(.5*e.fovy);return i=e.near,o=e.near*s,r=e.aspectRatio*o,Math.max(t*i/r,n*i/o)}else if(e instanceof pl)return i=e.near,o=e.top,r=e.right,Math.max(t*i/r,n*i/o);return Math.max(t,n)}var Bnt=new m,Uhe=new m;function Hhe(e,t,n,i){if(l(i)&&n(.5)>i){let o=n(0),r=n(1),s=n(.5),a=s-o,c=s-r;return function(u){let f=n(u);if(u<=.5){let p=(f-o)/a;return P.lerp(e,-P.PI_OVER_TWO,p)}let d=(f-r)/c;return P.lerp(-P.PI_OVER_TWO,t,1-d)}}return function(o){return P.lerp(e,t,o)}}function Mj(e,t,n,i,o){let r=o,s=Math.max(n,i);if(!l(r)){let a=e.position,c=t,u=e.up,f=e.right,d=e.frustum,p=m.subtract(a,c,Bnt),g=m.magnitude(m.multiplyByScalar(u,m.dot(p,u),Uhe)),h=m.magnitude(m.multiplyByScalar(f,m.dot(p,f),Uhe));r=Math.min(Rnt(d,g,h)*.2,1e9)}if(s<r){let u=-Math.pow((r-n)*1e6,.125),f=Math.pow((r-i)*1e6,1/8);return function(d){let p=d*(f-u)+u;return-Math.pow(p,8)/1e6+r}}return function(a){return P.lerp(n,i,a)}}function PD(e,t){return P.equalsEpsilon(e,P.TWO_PI,P.EPSILON11)&&(e=0),t>e+Math.PI?e+=P.TWO_PI:t<e-Math.PI&&(e-=P.TWO_PI),e}var Ghe=new m;function Lnt(e,t,n,i,o,r,s,a){let c=e.camera,u=m.clone(c.position,Ghe),f=c.pitch,d=PD(c.heading,i),p=PD(c.roll,r),g=Mj(c,n,u.z,n.z,s),h=Hhe(f,o,g,a);function A(x){let C=x.time/t;c.setView({orientation:{heading:P.lerp(d,i,C),pitch:h(C),roll:P.lerp(p,r,C)}}),H.lerp(u,n,C,c.position),c.position.z=g(C)}return A}function Nnt(e,t){e.longitude<t.longitude?e.longitude+=P.TWO_PI:t.longitude+=P.TWO_PI}function Fnt(e,t){let n=e.longitude-t.longitude;n<-P.PI?e.longitude+=P.TWO_PI:n>P.PI&&(t.longitude+=P.TWO_PI)}var Unt=new he,Vnt=new he;function knt(e,t,n,i,o,r,s,a,c,u){let f=e.camera,p=e.mapProjection.ellipsoid,g=he.clone(f.positionCartographic,Unt),h=f.pitch,A=PD(f.heading,i),x=PD(f.roll,r),C=p.cartesianToCartographic(n,Vnt);g.longitude=P.zeroToTwoPi(g.longitude),C.longitude=P.zeroToTwoPi(C.longitude);let T=!1;if(l(a)){let D=P.zeroToTwoPi(a),O=Math.min(g.longitude,C.longitude),M=Math.max(g.longitude,C.longitude),L=D>=O&&D<=M;if(l(c)){let N=Math.abs(g.longitude-C.longitude),_=P.TWO_PI-N;(L?N:_)<(L?_:N)*c&&!L&&(T=!0)}else L||(T=!0)}T?Nnt(g,C):Fnt(g,C);let E=Mj(f,n,g.height,C.height,s),S=Hhe(h,o,E,u);function v(){let D=g.longitude,O=C.longitude,M=g.latitude,L=C.latitude;return function(_){let b=_.time/t,w=m.fromRadians(P.lerp(D,O,b),P.lerp(M,L,b),E(b),p);f.setView({destination:w,orientation:{heading:P.lerp(A,i,b),pitch:S(b),roll:P.lerp(x,r,b)}})}}return v()}function znt(e,t,n,i,o,r,s){let a=e.camera,c=m.clone(a.position,Ghe),u=PD(a.heading,i),f=a.frustum.right-a.frustum.left,d=Mj(a,n,f,n.z,s);function p(g){let h=g.time/t;a.setView({orientation:{heading:P.lerp(u,i,h)}}),H.lerp(c,n,h,a.position);let A=d(h),x=a.frustum,C=x.top/x.right,T=(A-(x.right-x.left))*.5;x.right+=T,x.left-=T,x.top=C*x.right,x.bottom=-x.top}return p}var Vhe=new he,Hnt=new m;function Oj(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function khe(e,t){function n(){typeof t=="function"&&t(),e.enableInputs=!0}return n}zhe.createTween=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.destination,i=e.mode;if(i===ne.MORPHING)return Oj();let o=y(t.convert,!0),r=e.mapProjection,s=r.ellipsoid,a=t.maximumHeight,c=t.flyOverLongitude,u=t.flyOverLongitudeWeight,f=t.pitchAdjustHeight,d=t.easingFunction;o&&i!==ne.SCENE3D&&(s.cartesianToCartographic(n,Vhe),n=r.project(Vhe,Hnt));let p=e.camera,g=t.endTransform;l(g)&&p._setTransform(g);let h=t.duration;l(h)||(h=Math.ceil(m.distance(p.position,n)/1e6)+2,h=Math.min(h,3));let A=y(t.heading,0),x=y(t.pitch,-P.PI_OVER_TWO),C=y(t.roll,0),T=e.screenSpaceCameraController;T.enableInputs=!1;let E=khe(T,t.complete),S=khe(T,t.cancel),v=p.frustum,D=e.mode===ne.SCENE2D;if(D=D&&H.equalsEpsilon(p.position,n,P.EPSILON6),D=D&&P.equalsEpsilon(Math.max(v.right-v.left,v.top-v.bottom),n.z,P.EPSILON6),D=D||e.mode!==ne.SCENE2D&&m.equalsEpsilon(n,p.position,P.EPSILON10),D=D&&P.equalsEpsilon(P.negativePiToPi(A),P.negativePiToPi(p.heading),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(x),P.negativePiToPi(p.pitch),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(C),P.negativePiToPi(p.roll),P.EPSILON10),D)return Oj(E,S);let O=new Array(4);if(O[ne.SCENE2D]=znt,O[ne.SCENE3D]=knt,O[ne.COLUMBUS_VIEW]=Lnt,h<=0)return Oj(function(){O[i](e,1,n,A,x,C,a,c,u,f)({time:1}),typeof E=="function"&&E()},S);let M=O[i](e,h,n,A,x,C,a,c,u,f);if(!l(d)){let L=p.positionCartographic.height,N=i===ne.SCENE3D?s.cartesianToCartographic(n).height:n.z;L>N&&L>11500?d=Nr.CUBIC_OUT:d=Nr.QUINTIC_IN_OUT}return{duration:h,easingFunction:d,startObject:{time:0},stopObject:{time:h},update:M,complete:E,cancel:S}};var mV=zhe;var Gnt={ROTATE:0,INFINITE_SCROLL:1},uu=Object.freeze(Gnt);function Kt(e){this._scene=e,this._transform=B.clone(B.IDENTITY),this._invTransform=B.clone(B.IDENTITY),this._actualTransform=B.clone(B.IDENTITY),this._actualInvTransform=B.clone(B.IDENTITY),this._transformChanged=!1,this.position=new m,this._position=new m,this._positionWC=new m,this._positionCartographic=new he,this._oldPositionWC=void 0,this.positionWCDeltaMagnitude=0,this.positionWCDeltaMagnitudeLastFrame=0,this.timeSinceMoved=0,this._lastMovedTimestamp=0,this.direction=new m,this._direction=new m,this._directionWC=new m,this.up=new m,this._up=new m,this._upWC=new m,this.right=new m,this._right=new m,this._rightWC=new m,this.frustum=new wi,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60),this.defaultMoveAmount=1e5,this.defaultLookAmount=Math.PI/60,this.defaultRotateAmount=Math.PI/3600,this.defaultZoomAmount=1e5,this.constrainedAxis=void 0,this.maximumZoomFactor=1.5,this._moveStart=new ge,this._moveEnd=new ge,this._changed=new ge,this._changedPosition=void 0,this._changedDirection=void 0,this._changedFrustum=void 0,this._changedHeading=void 0,this.percentageChanged=.5,this._viewMatrix=new B,this._invViewMatrix=new B,Zhe(this),this._mode=ne.SCENE3D,this._modeChanged=!0;let t=e.mapProjection;this._projection=t,this._maxCoord=t.project(new he(Math.PI,P.PI_OVER_TWO)),this._max2Dfrustum=void 0,lpe(this,Kt.DEFAULT_VIEW_RECTANGLE,this.position,!0);let n=m.magnitude(this.position);n+=n*Kt.DEFAULT_VIEW_FACTOR,m.normalize(this.position,this.position),m.multiplyByScalar(this.position,n,this.position)}Kt.TRANSFORM_2D=new B(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);Kt.TRANSFORM_2D_INVERSE=B.inverseTransformation(Kt.TRANSFORM_2D,new B);Kt.DEFAULT_VIEW_RECTANGLE=le.fromDegrees(-95,-20,-70,90);Kt.DEFAULT_VIEW_FACTOR=.5;Kt.DEFAULT_OFFSET=new cf(0,-P.PI_OVER_FOUR,0);function Zhe(e){B.computeView(e._position,e._direction,e._up,e._right,e._viewMatrix),B.multiply(e._viewMatrix,e._actualInvTransform,e._viewMatrix),B.inverseTransformation(e._viewMatrix,e._invViewMatrix)}function Wnt(e){if(!l(e._oldPositionWC))e._oldPositionWC=m.clone(e.positionWC,e._oldPositionWC);else{e.positionWCDeltaMagnitudeLastFrame=e.positionWCDeltaMagnitude;let t=m.subtract(e.positionWC,e._oldPositionWC,e._oldPositionWC);e.positionWCDeltaMagnitude=m.magnitude(t),e._oldPositionWC=m.clone(e.positionWC,e._oldPositionWC),e.positionWCDeltaMagnitude>0?(e.timeSinceMoved=0,e._lastMovedTimestamp=Ci()):e.timeSinceMoved=Math.max(Ci()-e._lastMovedTimestamp,0)/1e3}}Kt.prototype.canPreloadFlight=function(){return l(this._currentFlight)&&this._mode!==ne.SCENE2D};Kt.prototype._updateCameraChanged=function(){let e=this;if(Wnt(e),e._changed.numberOfListeners===0)return;let t=e.percentageChanged,n=e.heading;l(e._changedHeading)||(e._changedHeading=n);let i=Math.abs(e._changedHeading-n)%P.TWO_PI;i=i>P.PI?P.TWO_PI-i:i;let o=i/Math.PI;if(o>t&&(e._changed.raiseEvent(o),e._changedHeading=n),e._mode===ne.SCENE2D){if(!l(e._changedFrustum)){e._changedPosition=m.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone();return}let u=e.position,f=e._changedPosition,d=e.frustum,p=e._changedFrustum,g=u.x+d.left,h=u.x+d.right,A=f.x+p.left,x=f.x+p.right,C=u.y+d.bottom,T=u.y+d.top,E=f.y+p.bottom,S=f.y+p.top,v=Math.max(g,A),D=Math.min(h,x),O=Math.max(C,E),M=Math.min(T,S),L;if(v>=D||O>=T)L=1;else{let N=p;g<A&&h>x&&C<E&&T>S&&(N=d),L=1-(D-v)*(M-O)/((N.right-N.left)*(N.top-N.bottom))}L>t&&(e._changed.raiseEvent(L),e._changedPosition=m.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum));return}if(!l(e._changedDirection)){e._changedPosition=m.clone(e.positionWC,e._changedPosition),e._changedDirection=m.clone(e.directionWC,e._changedDirection);return}let r=P.acosClamped(m.dot(e.directionWC,e._changedDirection)),s;l(e.frustum.fovy)?s=r/(e.frustum.fovy*.5):s=r;let c=m.distance(e.positionWC,e._changedPosition)/e.positionCartographic.height;(s>t||c>t)&&(e._changed.raiseEvent(Math.max(s,c)),e._changedPosition=m.clone(e.positionWC,e._changedPosition),e._changedDirection=m.clone(e.directionWC,e._changedDirection))};function jnt(e){Rt.basisTo2D(e._projection,e._transform,e._actualTransform)}var Ynt=new he,qnt=new m,hV=new m,Xnt=new re,Knt=new re,Jnt=new re,Znt=new re,Qnt=new re;function $nt(e){let t=e._projection,n=t.ellipsoid,i=B.getColumn(e._transform,3,Xnt),o=n.cartesianToCartographic(i,Ynt),r=t.project(o,qnt),s=Knt;s.x=r.z,s.y=r.x,s.z=r.y,s.w=1;let a=re.clone(re.UNIT_X,Qnt),c=re.add(B.getColumn(e._transform,0,hV),i,hV);n.cartesianToCartographic(c,o),t.project(o,r);let u=Jnt;u.x=r.z,u.y=r.x,u.z=r.y,u.w=0,m.subtract(u,s,u),u.x=0;let f=Znt;if(m.magnitudeSquared(u)>P.EPSILON10)m.cross(a,u,f);else{let d=re.add(B.getColumn(e._transform,1,hV),i,hV);n.cartesianToCartographic(d,o),t.project(o,r),f.x=r.z,f.y=r.x,f.z=r.y,f.w=0,m.subtract(f,s,f),f.x=0,m.magnitudeSquared(f)<P.EPSILON10&&(re.clone(re.UNIT_Y,u),re.clone(re.UNIT_Z,f))}m.cross(f,a,u),m.normalize(u,u),m.cross(a,u,f),m.normalize(f,f),B.setColumn(e._actualTransform,0,u,e._actualTransform),B.setColumn(e._actualTransform,1,f,e._actualTransform),B.setColumn(e._actualTransform,2,a,e._actualTransform),B.setColumn(e._actualTransform,3,s,e._actualTransform)}var Rj=new m;function Ja(e){let t=e._mode,n=!1,i=0;t===ne.SCENE2D&&(i=e.frustum.right-e.frustum.left,n=i!==e._positionCartographic.height);let o=e._position,r=!m.equals(o,e.position)||n;r&&(o=m.clone(e.position,e._position));let s=e._direction,a=!m.equals(s,e.direction);a&&(m.normalize(e.direction,e.direction),s=m.clone(e.direction,e._direction));let c=e._up,u=!m.equals(c,e.up);u&&(m.normalize(e.up,e.up),c=m.clone(e.up,e._up));let f=e._right,d=!m.equals(f,e.right);d&&(m.normalize(e.right,e.right),f=m.clone(e.right,e._right));let p=e._transformChanged||e._modeChanged;e._transformChanged=!1,p&&(B.inverseTransformation(e._transform,e._invTransform),e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D?B.equals(B.IDENTITY,e._transform)?B.clone(Kt.TRANSFORM_2D,e._actualTransform):e._mode===ne.COLUMBUS_VIEW?jnt(e):$nt(e):B.clone(e._transform,e._actualTransform),B.inverseTransformation(e._actualTransform,e._actualInvTransform),e._modeChanged=!1);let g=e._actualTransform;if(r||p)if(e._positionWC=B.multiplyByPoint(g,o,e._positionWC),t===ne.SCENE3D||t===ne.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{let h=Rj;h.x=e._positionWC.y,h.y=e._positionWC.z,h.z=e._positionWC.x,t===ne.SCENE2D&&(h.z=i),e._projection.unproject(h,e._positionCartographic)}if(a||u||d){let h=m.dot(s,m.cross(c,f,Rj));if(Math.abs(1-h)>P.EPSILON2){let A=1/m.magnitudeSquared(c),x=m.dot(c,s)*A,C=m.multiplyByScalar(s,x,Rj);c=m.normalize(m.subtract(c,C,e._up),e._up),m.clone(c,e.up),f=m.cross(s,c,e._right),m.clone(f,e.right)}}(a||p)&&(e._directionWC=B.multiplyByPointAsVector(g,s,e._directionWC),m.normalize(e._directionWC,e._directionWC)),(u||p)&&(e._upWC=B.multiplyByPointAsVector(g,c,e._upWC),m.normalize(e._upWC,e._upWC)),(d||p)&&(e._rightWC=B.multiplyByPointAsVector(g,f,e._rightWC),m.normalize(e._rightWC,e._rightWC)),(r||a||u||d||p)&&Zhe(e)}function Qhe(e,t){let n;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)?n=Math.atan2(t.y,t.x)-P.PI_OVER_TWO:n=Math.atan2(e.y,e.x)-P.PI_OVER_TWO,P.TWO_PI-P.zeroToTwoPi(n)}function $he(e){return P.PI_OVER_TWO-P.acosClamped(e.z)}function epe(e,t,n){let i=0;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)||(i=Math.atan2(-n.z,t.z),i=P.zeroToTwoPi(i+P.TWO_PI)),i}var gV=new B,yV=new B;Object.defineProperties(Kt.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return Ja(this),this._invTransform}},viewMatrix:{get:function(){return Ja(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return Ja(this),this._invViewMatrix}},positionCartographic:{get:function(){return Ja(this),this._positionCartographic}},positionWC:{get:function(){return Ja(this),this._positionWC}},directionWC:{get:function(){return Ja(this),this._directionWC}},upWC:{get:function(){return Ja(this),this._upWC}},rightWC:{get:function(){return Ja(this),this._rightWC}},heading:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=B.clone(this._transform,gV),n=Rt.eastNorthUpToFixedFrame(this.positionWC,e,yV);this._setTransform(n);let i=Qhe(this.direction,this.up);return this._setTransform(t),i}}},pitch:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=B.clone(this._transform,gV),n=Rt.eastNorthUpToFixedFrame(this.positionWC,e,yV);this._setTransform(n);let i=$he(this.direction);return this._setTransform(t),i}}},roll:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=B.clone(this._transform,gV),n=Rt.eastNorthUpToFixedFrame(this.positionWC,e,yV);this._setTransform(n);let i=epe(this.direction,this.up,this.right);return this._setTransform(t),i}}},moveStart:{get:function(){return this._moveStart}},moveEnd:{get:function(){return this._moveEnd}},changed:{get:function(){return this._changed}}});Kt.prototype.update=function(e){let t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==ne.MORPHING,t=this._mode===ne.SCENE2D),t){let n=this._max2Dfrustum=this.frustum.clone(),i=2,o=n.top/n.right;n.right=this._maxCoord.x*i,n.left=-n.right,n.top=o*n.right,n.bottom=-n.top}this._mode===ne.SCENE2D&&ope(this,this.position)};var eit=new m,tit=new m,nit=new m;Kt.prototype._setTransform=function(e){let t=m.clone(this.positionWC,eit),n=m.clone(this.upWC,tit),i=m.clone(this.directionWC,nit);B.clone(e,this._transform),this._transformChanged=!0,Ja(this);let o=this._actualInvTransform;B.multiplyByPoint(o,t,this.position),B.multiplyByPointAsVector(o,i,this.direction),B.multiplyByPointAsVector(o,n,this.up),m.cross(this.direction,this.up,this.right),Ja(this)};var iit=new H,oit=new In,rit=new m,sit=new m;function tpe(e){if(!B.equals(B.IDENTITY,e.transform))return m.magnitude(e.position);let t=e._scene,n=t.globe,i=iit;i.x=t.drawingBufferWidth/2,i.y=t.drawingBufferHeight/2;let o;if(l(n)){let a=e.getPickRay(i,oit);o=n.pickWorldCoordinates(a,t,!0,rit)}let r;t.pickPositionSupported&&(r=t.pickPositionWorldCoordinates(i,sit));let s;if(l(o)||l(r)){let a=l(r)?m.distance(r,e.positionWC):Number.POSITIVE_INFINITY,c=l(o)?m.distance(o,e.positionWC):Number.POSITIVE_INFINITY;s=Math.min(a,c)}else s=Math.max(e.positionCartographic.height,0);return s}Kt.prototype._adjustOrthographicFrustum=function(e){this.frustum instanceof tn&&(!e&&this._positionCartographic.height<15e4||(this.frustum.width=tpe(this)))};var AV=new m,Uj=new B,ait=new B,Vj=new Ne,kj=new Z,npe=new he;function cit(e,t,n){let i=B.clone(e.transform,Uj),o=Rt.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,ait);e._setTransform(o),m.clone(m.ZERO,e.position),n.heading=n.heading-P.PI_OVER_TWO;let r=Ne.fromHeadingPitchRoll(n,Vj),s=Z.fromQuaternion(r,kj);Z.getColumn(s,0,e.direction),Z.getColumn(s,2,e.up),m.cross(e.direction,e.up,e.right),e._setTransform(i),e._adjustOrthographicFrustum(!0)}function lit(e,t,n,i){let o=B.clone(e.transform,Uj);if(e._setTransform(B.IDENTITY),!m.equals(t,e.positionWC)){if(i){let a=e._projection,c=a.ellipsoid.cartesianToCartographic(t,npe);t=a.project(c,AV)}m.clone(t,e.position)}n.heading=n.heading-P.PI_OVER_TWO;let r=Ne.fromHeadingPitchRoll(n,Vj),s=Z.fromQuaternion(r,kj);Z.getColumn(s,0,e.direction),Z.getColumn(s,2,e.up),m.cross(e.direction,e.up,e.right),e._setTransform(o),e._adjustOrthographicFrustum(!0)}function uit(e,t,n,i){let o=B.clone(e.transform,Uj);if(e._setTransform(B.IDENTITY),!m.equals(t,e.positionWC)){if(i){let c=e._projection,u=c.ellipsoid.cartesianToCartographic(t,npe);t=c.project(u,AV)}H.clone(t,e.position);let r=-t.z*.5,s=-r,a=e.frustum;if(s>r){let c=a.top/a.right;a.right=s,a.left=r,a.top=a.right*c,a.bottom=-a.top}}if(e._scene.mapMode2D===uu.ROTATE){n.heading=n.heading-P.PI_OVER_TWO,n.pitch=-P.PI_OVER_TWO,n.roll=0;let r=Ne.fromHeadingPitchRoll(n,Vj),s=Z.fromQuaternion(r,kj);Z.getColumn(s,2,e.up),m.cross(e.direction,e.up,e.right)}e._setTransform(o)}var fit=new m,dit=new m,mit=new m;function ipe(e,t,n,i){let o=m.clone(n.direction,fit),r=m.clone(n.up,dit);if(e._scene.mode===ne.SCENE3D){let a=e._projection.ellipsoid,c=Rt.eastNorthUpToFixedFrame(t,a,gV),u=B.inverseTransformation(c,yV);B.multiplyByPointAsVector(u,o,o),B.multiplyByPointAsVector(u,r,r)}let s=m.cross(o,r,mit);return i.heading=Qhe(o,r),i.pitch=$he(o),i.roll=epe(o,r,s),i}var Fj={destination:void 0,orientation:{direction:void 0,up:void 0,heading:void 0,pitch:void 0,roll:void 0},convert:void 0,endTransform:void 0},JE=new rc;Kt.prototype.setView=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.orientation,y.EMPTY_OBJECT),n=this._mode;if(n===ne.MORPHING)return;l(e.endTransform)&&this._setTransform(e.endTransform);let i=y(e.convert,!0),o=y(e.destination,m.clone(this.positionWC,AV));l(o)&&l(o.west)&&(o=this.getRectangleCameraCoordinates(o,AV),i=!1),l(t.direction)&&(t=ipe(this,o,t,Fj.orientation)),JE.heading=y(t.heading,0),JE.pitch=y(t.pitch,-P.PI_OVER_TWO),JE.roll=y(t.roll,0),n===ne.SCENE3D?cit(this,o,JE):n===ne.SCENE2D?uit(this,o,JE,i):lit(this,o,JE,i)};var hit=new m;Kt.prototype.flyHome=function(e){let t=this._mode;if(t===ne.MORPHING&&this._scene.completeMorph(),t===ne.SCENE2D)this.flyTo({destination:Kt.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:B.IDENTITY});else if(t===ne.SCENE3D){let n=this.getRectangleCameraCoordinates(Kt.DEFAULT_VIEW_RECTANGLE),i=m.magnitude(n);i+=i*Kt.DEFAULT_VIEW_FACTOR,m.normalize(n,n),m.multiplyByScalar(n,i,n),this.flyTo({destination:n,duration:e,endTransform:B.IDENTITY})}else if(t===ne.COLUMBUS_VIEW){let n=this._projection.ellipsoid.maximumRadius,i=new m(0,-1,1);i=m.multiplyByScalar(m.normalize(i,i),5*n,i),this.flyTo({destination:i,duration:e,orientation:{heading:0,pitch:-Math.acos(m.normalize(i,hit).z),roll:0},endTransform:B.IDENTITY,convert:!1})}};Kt.prototype.worldToCameraCoordinates=function(e,t){return l(t)||(t=new re),Ja(this),B.multiplyByVector(this._actualInvTransform,e,t)};Kt.prototype.worldToCameraCoordinatesPoint=function(e,t){return l(t)||(t=new m),Ja(this),B.multiplyByPoint(this._actualInvTransform,e,t)};Kt.prototype.worldToCameraCoordinatesVector=function(e,t){return l(t)||(t=new m),Ja(this),B.multiplyByPointAsVector(this._actualInvTransform,e,t)};Kt.prototype.cameraToWorldCoordinates=function(e,t){return l(t)||(t=new re),Ja(this),B.multiplyByVector(this._actualTransform,e,t)};Kt.prototype.cameraToWorldCoordinatesPoint=function(e,t){return l(t)||(t=new m),Ja(this),B.multiplyByPoint(this._actualTransform,e,t)};Kt.prototype.cameraToWorldCoordinatesVector=function(e,t){return l(t)||(t=new m),Ja(this),B.multiplyByPointAsVector(this._actualTransform,e,t)};function ope(e,t){let n=e._scene.mapMode2D===uu.ROTATE,i=e._maxCoord.x,o=e._maxCoord.y,r,s;n?(s=i,r=-s):(s=t.x-i*2,r=t.x+i*2),t.x>i&&(t.x=s),t.x<-i&&(t.x=r),t.y>o&&(t.y=o),t.y<-o&&(t.y=-o)}var Whe=new m;Kt.prototype.move=function(e,t){let n=this.position;m.multiplyByScalar(e,t,Whe),m.add(n,Whe,n),this._mode===ne.SCENE2D&&ope(this,n),this._adjustOrthographicFrustum(!0)};Kt.prototype.moveForward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?xV(this,e):this.move(this.direction,e)};Kt.prototype.moveBackward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?xV(this,-e):this.move(this.direction,-e)};Kt.prototype.moveUp=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,e)};Kt.prototype.moveDown=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,-e)};Kt.prototype.moveRight=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,e)};Kt.prototype.moveLeft=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,-e)};Kt.prototype.lookLeft=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,-e)};Kt.prototype.lookRight=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,e)};Kt.prototype.lookUp=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,-e)};Kt.prototype.lookDown=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,e)};var pit=new Ne,_it=new Z;Kt.prototype.look=function(e,t){let n=y(t,this.defaultLookAmount),i=Ne.fromAxisAngle(e,-n,pit),o=Z.fromQuaternion(i,_it),r=this.direction,s=this.up,a=this.right;Z.multiplyByVector(o,r,r),Z.multiplyByVector(o,s,s),Z.multiplyByVector(o,a,a)};Kt.prototype.twistLeft=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,e)};Kt.prototype.twistRight=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,-e)};var git=new Ne,yit=new Z;Kt.prototype.rotate=function(e,t){let n=y(t,this.defaultRotateAmount),i=Ne.fromAxisAngle(e,-n,git),o=Z.fromQuaternion(i,yit);Z.multiplyByVector(o,this.position,this.position),Z.multiplyByVector(o,this.direction,this.direction),Z.multiplyByVector(o,this.up,this.up),m.cross(this.direction,this.up,this.right),m.cross(this.right,this.direction,this.up),this._adjustOrthographicFrustum(!1)};Kt.prototype.rotateDown=function(e){e=y(e,this.defaultRotateAmount),rpe(this,e)};Kt.prototype.rotateUp=function(e){e=y(e,this.defaultRotateAmount),rpe(this,-e)};var Ait=new m,xit=new m,Cit=new m,jhe=new m;function rpe(e,t){let n=e.position;if(l(e.constrainedAxis)&&!m.equalsEpsilon(e.position,m.ZERO,P.EPSILON2)){let i=m.normalize(n,Ait),o=m.equalsEpsilon(i,e.constrainedAxis,P.EPSILON2),r=m.equalsEpsilon(i,m.negate(e.constrainedAxis,jhe),P.EPSILON2);if(!o&&!r){let s=m.normalize(e.constrainedAxis,xit),a=m.dot(i,s),c=P.acosClamped(a);t>0&&t>c&&(t=c-P.EPSILON4),a=m.dot(i,m.negate(s,jhe)),c=P.acosClamped(a),t<0&&-t>c&&(t=-c+P.EPSILON4);let u=m.cross(s,i,Cit);e.rotate(u,t)}else(o&&t<0||r&&t>0)&&e.rotate(e.right,t)}else e.rotate(e.right,t)}Kt.prototype.rotateRight=function(e){e=y(e,this.defaultRotateAmount),spe(this,-e)};Kt.prototype.rotateLeft=function(e){e=y(e,this.defaultRotateAmount),spe(this,e)};function spe(e,t){l(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function xV(e,t){let n=e.frustum,i;if(t=t*.5,Math.abs(n.top)+Math.abs(n.bottom)>Math.abs(n.left)+Math.abs(n.right)){let o=n.top-t,r=n.bottom+t,s=e._maxCoord.y;e._scene.mapMode2D===uu.ROTATE&&(s*=e.maximumZoomFactor),r>s&&(r=s,o=-s),o<=r&&(o=1,r=-1),i=n.right/n.top,n.top=o,n.bottom=r,n.right=n.top*i,n.left=-n.right}else{let o=n.right-t,r=n.left+t,s=e._maxCoord.x;e._scene.mapMode2D===uu.ROTATE&&(s*=e.maximumZoomFactor),o>s&&(o=s,r=-s),o<=r&&(o=1,r=-1),i=n.top/n.right,n.right=o,n.left=r,n.top=n.right*i,n.bottom=-n.top}}function ape(e,t){e.move(e.direction,t)}Kt.prototype.zoomIn=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?xV(this,e):ape(this,e)};Kt.prototype.zoomOut=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?xV(this,-e):ape(this,-e)};Kt.prototype.getMagnitude=function(){if(this._mode===ne.SCENE3D)return m.magnitude(this.position);if(this._mode===ne.COLUMBUS_VIEW)return Math.abs(this.position.z);if(this._mode===ne.SCENE2D)return Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom)};var Tit=new B;Kt.prototype.lookAt=function(e,t){let n=Rt.eastNorthUpToFixedFrame(e,oe.WGS84,Tit);this.lookAtTransform(n,t)};var Eit=new m,bit=new Ne,Sit=new Ne,wit=new Z;function cpe(e,t,n){t=P.clamp(t,-P.PI_OVER_TWO,P.PI_OVER_TWO),e=P.zeroToTwoPi(e)-P.PI_OVER_TWO;let i=Ne.fromAxisAngle(m.UNIT_Y,-t,bit),o=Ne.fromAxisAngle(m.UNIT_Z,-e,Sit),r=Ne.multiply(o,i,o),s=Z.fromQuaternion(r,wit),a=m.clone(m.UNIT_X,Eit);return Z.multiplyByVector(s,a,a),m.negate(a,a),m.multiplyByScalar(a,n,a),a}Kt.prototype.lookAtTransform=function(e,t){if(this._setTransform(e),!l(t))return;let n;if(l(t.heading)?n=cpe(t.heading,t.pitch,t.range):n=t,this._mode===ne.SCENE2D){H.clone(H.ZERO,this.position),m.negate(n,this.up),this.up.z=0,m.magnitudeSquared(this.up)<P.EPSILON10&&m.clone(m.UNIT_Y,this.up),m.normalize(this.up,this.up),this._setTransform(B.IDENTITY),m.negate(m.UNIT_Z,this.direction),m.cross(this.direction,this.up,this.right),m.normalize(this.right,this.right);let i=this.frustum,o=i.top/i.right;i.right=m.magnitude(n)*.5,i.left=-i.right,i.top=o*i.right,i.bottom=-i.top,this._setTransform(e);return}m.clone(n,this.position),m.negate(this.position,this.direction),m.normalize(this.direction,this.direction),m.cross(this.direction,m.UNIT_Z,this.right),m.magnitudeSquared(this.right)<P.EPSILON10&&m.clone(m.UNIT_X,this.right),m.normalize(this.right,this.right),m.cross(this.right,this.direction,this.up),m.normalize(this.up,this.up),this._adjustOrthographicFrustum(!0)};var OD=new he,vit=new he,Dit=new m,Iit=new m,Pit=new m,Oit=new m,Mit=new m,Rit=new m,Bit=new m,Bj=new m,Lit={direction:new m,right:new m,up:new m},Yhe;function Ka(e,t,n,i){return Math.abs(m.dot(t,n))/i-m.dot(e,n)}function lpe(e,t,n,i){let o=e._projection.ellipsoid,r=i?e:Lit,s=t.north,a=t.south,c=t.east,u=t.west;u>c&&(c+=P.TWO_PI);let f=(u+c)*.5,d;if(a<-P.PI_OVER_TWO+P.RADIANS_PER_DEGREE&&s>P.PI_OVER_TWO-P.RADIANS_PER_DEGREE)d=0;else{let L=OD;L.longitude=f,L.latitude=s,L.height=0;let N=vit;N.longitude=f,N.latitude=a,N.height=0;let _=Yhe;(!l(_)||_.ellipsoid!==o)&&(Yhe=_=new kf(void 0,void 0,o)),_.setEndPoints(L,N),d=_.interpolateUsingFraction(.5,OD).latitude}let p=OD;p.longitude=f,p.latitude=d,p.height=0;let g=o.cartographicToCartesian(p,Bit),h=OD;h.longitude=c,h.latitude=s;let A=o.cartographicToCartesian(h,Dit);h.longitude=u;let x=o.cartographicToCartesian(h,Pit);h.longitude=f;let C=o.cartographicToCartesian(h,Mit);h.latitude=a;let T=o.cartographicToCartesian(h,Rit);h.longitude=c;let E=o.cartographicToCartesian(h,Oit);h.longitude=u;let S=o.cartographicToCartesian(h,Iit);m.subtract(x,g,x),m.subtract(E,g,E),m.subtract(A,g,A),m.subtract(S,g,S),m.subtract(C,g,C),m.subtract(T,g,T);let v=o.geodeticSurfaceNormal(g,r.direction);m.negate(v,v);let D=m.cross(v,m.UNIT_Z,r.right);m.normalize(D,D);let O=m.cross(D,v,r.up),M;if(e.frustum instanceof tn){let L=Math.max(m.distance(A,x),m.distance(E,S)),N=Math.max(m.distance(A,E),m.distance(x,S)),_,b,w=e.frustum._offCenterFrustum,I=w.right/w.top,R=N*I;L>R?(_=L,b=_/I):(b=N,_=R),M=Math.max(_,b)}else{let L=Math.tan(e.frustum.fovy*.5),N=e.frustum.aspectRatio*L;if(M=Math.max(Ka(v,O,x,L),Ka(v,O,E,L),Ka(v,O,A,L),Ka(v,O,S,L),Ka(v,O,C,L),Ka(v,O,T,L),Ka(v,D,x,N),Ka(v,D,E,N),Ka(v,D,A,N),Ka(v,D,S,N),Ka(v,D,C,N),Ka(v,D,T,N)),a<0&&s>0){let _=OD;_.longitude=u,_.latitude=0,_.height=0;let b=o.cartographicToCartesian(_,Bj);m.subtract(b,g,b),M=Math.max(M,Ka(v,O,b,L),Ka(v,D,b,N)),_.longitude=c,b=o.cartographicToCartesian(_,Bj),m.subtract(b,g,b),M=Math.max(M,Ka(v,O,b,L),Ka(v,D,b,N))}}return m.add(g,m.multiplyByScalar(v,-M,Bj),n)}var Nit=new he,Fit=new m,Uit=new m;function Vit(e,t,n){let i=e._projection;t.west>t.east&&(t=le.MAX_VALUE);let o=e._actualTransform,r=e._actualInvTransform,s=Nit;s.longitude=t.east,s.latitude=t.north;let a=i.project(s,Fit);B.multiplyByPoint(o,a,a),B.multiplyByPoint(r,a,a),s.longitude=t.west,s.latitude=t.south;let c=i.project(s,Uit);if(B.multiplyByPoint(o,c,c),B.multiplyByPoint(r,c,c),n.x=(a.x-c.x)*.5+c.x,n.y=(a.y-c.y)*.5+c.y,l(e.frustum.fovy)){let u=Math.tan(e.frustum.fovy*.5),f=e.frustum.aspectRatio*u;n.z=Math.max((a.x-c.x)/f,(a.y-c.y)/u)*.5}else{let u=a.x-c.x,f=a.y-c.y;n.z=Math.max(u,f)}return n}var kit=new he,zit=new m,Hit=new m;function Git(e,t,n){let i=e._projection,o=t.east;t.west>t.east&&(e._scene.mapMode2D===uu.INFINITE_SCROLL?o+=P.TWO_PI:(t=le.MAX_VALUE,o=t.east));let r=kit;r.longitude=o,r.latitude=t.north;let s=i.project(r,zit);r.longitude=t.west,r.latitude=t.south;let a=i.project(r,Hit),c=Math.abs(s.x-a.x)*.5,u=Math.abs(s.y-a.y)*.5,f,d,p=e.frustum.right/e.frustum.top,g=u*p;return c>g?(f=c,d=f/p):(d=u,f=g),u=Math.max(2*f,2*d),n.x=(s.x-a.x)*.5+a.x,n.y=(s.y-a.y)*.5+a.y,r=i.unproject(n,r),r.height=u,n=i.project(r,n),n}Kt.prototype.getRectangleCameraCoordinates=function(e,t){let n=this._mode;if(l(t)||(t=new m),n===ne.SCENE3D)return lpe(this,e,t);if(n===ne.COLUMBUS_VIEW)return Vit(this,e,t);if(n===ne.SCENE2D)return Git(this,e,t)};var Wit=new In;function jit(e,t,n,i){n=y(n,oe.WGS84);let o=e.getPickRay(t,Wit),r=Ji.rayEllipsoid(o,n);if(!r)return;let s=r.start>0?r.start:r.stop;return In.getPoint(o,s,i)}var Yit=new In;function qit(e,t,n,i){let r=e.getPickRay(t,Yit).origin;r=m.fromElements(r.y,r.z,0,r);let s=n.unproject(r);if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO))return n.ellipsoid.cartographicToCartesian(s,i)}var Xit=new In;function Kit(e,t,n,i){let o=e.getPickRay(t,Xit),r=-o.origin.x/o.direction.x;In.getPoint(o,r,i);let s=n.unproject(new m(i.y,i.z,0));if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO||s.longitude<-Math.PI||s.longitude>Math.PI))return n.ellipsoid.cartographicToCartesian(s,i)}Kt.prototype.pickEllipsoid=function(e,t,n){let i=this._scene.canvas;if(!(i.clientWidth===0||i.clientHeight===0)){if(l(n)||(n=new m),t=y(t,oe.WGS84),this._mode===ne.SCENE3D)n=jit(this,e,t,n);else if(this._mode===ne.SCENE2D)n=qit(this,e,this._projection,n);else if(this._mode===ne.COLUMBUS_VIEW)n=Kit(this,e,this._projection,n);else return;return n}};var Jit=new m,Zit=new m,Qit=new m;function $it(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=Math.tan(e.frustum.fovy*.5),a=e.frustum.aspectRatio*s,c=e.frustum.near,u=2/o*t.x-1,f=2/r*(r-t.y)-1,d=e.positionWC;m.clone(d,n.origin);let p=m.multiplyByScalar(e.directionWC,c,Jit);m.add(d,p,p);let g=m.multiplyByScalar(e.rightWC,u*c*a,Zit),h=m.multiplyByScalar(e.upWC,f*c*s,Qit),A=m.add(p,g,n.direction);return m.add(A,h,A),m.subtract(A,d,A),m.normalize(A,A),n}var pV=new m;function eot(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=e.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2/o*t.x-1;c*=(s.right-s.left)*.5;let u=2/r*(r-t.y)-1;u*=(s.top-s.bottom)*.5;let f=n.origin;return m.clone(e.position,f),m.multiplyByScalar(e.right,c,pV),m.add(pV,f,f),m.multiplyByScalar(e.up,u,pV),m.add(pV,f,f),m.clone(e.directionWC,n.direction),(e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D)&&m.fromElements(n.origin.z,n.origin.x,n.origin.y,n.origin),n}Kt.prototype.getPickRay=function(e,t){l(t)||(t=new In);let n=this._scene.canvas;if(n.clientWidth<=0||n.clientHeight<=0)return;let i=this.frustum;return l(i.aspectRatio)&&l(i.fov)&&l(i.near)?$it(this,e,t):eot(this,e,t)};var tot=new m,not=new m;Kt.prototype.distanceToBoundingSphere=function(e){let t=m.subtract(this.positionWC,e.center,tot),n=m.multiplyByScalar(this.directionWC,m.dot(t,this.directionWC),not);return Math.max(0,m.magnitude(n)-e.radius)};var iot=new H;Kt.prototype.getPixelSize=function(e,t,n){let i=this.distanceToBoundingSphere(e),o=this.frustum.getPixelDimensions(t,n,i,this._scene.pixelRatio,iot);return Math.max(o.x,o.y)};function oot(e,t,n,i,o,r){let s=m.clone(t);n.y>i?s.y-=n.y-i:n.y<-i&&(s.y+=-i-n.y),n.z>o?s.z-=n.z-o:n.z<-o&&(s.z+=-o-n.z);function a(c){let u=m.lerp(t,s,c.time,new m);e.worldToCameraCoordinatesPoint(u,e.position)}return{easingFunction:Nr.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:r,update:a}}var rot=new m,qhe=new m,sot=new m,aot=new m;function cot(e,t){let n=e.position,i=e.direction,o=e.worldToCameraCoordinatesVector(m.UNIT_X,rot),r=-m.dot(o,n)/m.dot(o,i),s=m.add(n,m.multiplyByScalar(i,r,qhe),qhe);e.cameraToWorldCoordinatesPoint(s,s),n=e.cameraToWorldCoordinatesPoint(e.position,sot);let a=Math.tan(e.frustum.fovy*.5),c=e.frustum.aspectRatio*a,u=m.magnitude(m.subtract(n,s,aot)),f=c*u,d=a*u,p=e._maxCoord.x,g=e._maxCoord.y,h=Math.max(f-p,p),A=Math.max(d-g,g);if(n.z<-h||n.z>h||n.y<-A||n.y>A){let x=s.y<-h||s.y>h,C=s.z<-A||s.z>A;if(x||C)return oot(e,n,s,h,A,t)}}Kt.prototype.createCorrectPositionTween=function(e){if(this._mode===ne.COLUMBUS_VIEW)return cot(this,e)};var lot=new m,Ss={destination:void 0,heading:void 0,pitch:void 0,roll:void 0,duration:void 0,complete:void 0,cancel:void 0,endTransform:void 0,maximumHeight:void 0,easingFunction:void 0};Kt.prototype.cancelFlight=function(){l(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)};Kt.prototype.completeFlight=function(){if(l(this._currentFlight)){this._currentFlight.cancelTween();let e={destination:void 0,orientation:{heading:void 0,pitch:void 0,roll:void 0}};e.destination=Ss.destination,e.orientation.heading=Ss.heading,e.orientation.pitch=Ss.pitch,e.orientation.roll=Ss.roll,this.setView(e),l(this._currentFlight.complete)&&this._currentFlight.complete(),this._currentFlight=void 0}};Kt.prototype.flyTo=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.destination;if(this._mode===ne.MORPHING)return;this.cancelFlight();let i=t instanceof le;i&&(t=this.getRectangleCameraCoordinates(t,lot));let o=y(e.orientation,y.EMPTY_OBJECT);if(l(o.direction)&&(o=ipe(this,t,o,Fj.orientation)),l(e.duration)&&e.duration<=0){let f=Fj;f.destination=e.destination,f.orientation.heading=o.heading,f.orientation.pitch=o.pitch,f.orientation.roll=o.roll,f.convert=e.convert,f.endTransform=e.endTransform,this.setView(f),typeof e.complete=="function"&&e.complete();return}let r=this,s;Ss.destination=t,Ss.heading=o.heading,Ss.pitch=o.pitch,Ss.roll=o.roll,Ss.duration=e.duration,Ss.complete=function(){s===r._currentFlight&&(r._currentFlight=void 0),l(e.complete)&&e.complete()},Ss.cancel=e.cancel,Ss.endTransform=e.endTransform,Ss.convert=i?!1:e.convert,Ss.maximumHeight=e.maximumHeight,Ss.pitchAdjustHeight=e.pitchAdjustHeight,Ss.flyOverLongitude=e.flyOverLongitude,Ss.flyOverLongitudeWeight=e.flyOverLongitudeWeight,Ss.easingFunction=e.easingFunction;let a=this._scene,c=mV.createTween(a,Ss);if(c.duration===0){typeof c.complete=="function"&&c.complete();return}s=a.tweens.add(c),this._currentFlight=s;let u=this._scene.preloadFlightCamera;this._mode!==ne.SCENE2D&&(l(u)||(u=Kt.clone(this)),u.setView({destination:t,orientation:o}),this._scene.preloadFlightCullingVolume=u.frustum.computeCullingVolume(u.positionWC,u.directionWC,u.upWC))};function uot(e,t){let n=e.frustum,i=Math.tan(n.fovy*.5),o=n.aspectRatio*i;return Math.max(t/o,t/i)}function fot(e,t){let n=e.frustum,i=n.offCenterFrustum;l(i)&&(n=i);let o,r,s=n.right/n.top,a=t*s;return t>a?(o=t,r=o/s):(r=t,o=a),Math.max(o,r)*1.5}var dot=100;function upe(e,t,n){n=cf.clone(l(n)?n:Kt.DEFAULT_OFFSET);let i=e._scene.screenSpaceCameraController.minimumZoomDistance,o=e._scene.screenSpaceCameraController.maximumZoomDistance,r=n.range;if(!l(r)||r===0){let s=t.radius;s===0?n.range=dot:e.frustum instanceof tn||e._mode===ne.SCENE2D?n.range=fot(e,s):n.range=uot(e,s),n.range=P.clamp(n.range,i,o)}return n}Kt.prototype.viewBoundingSphere=function(e,t){t=upe(this,e,t),this.lookAt(e.center,t)};var mot=new B,hot=new m,pot=new m,_ot=new m,got=new m,yot=new re,Aot=new Ne,xot=new Z;Kt.prototype.flyToBoundingSphere=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=this._mode===ne.SCENE2D||this._mode===ne.COLUMBUS_VIEW;this._setTransform(B.IDENTITY);let i=upe(this,e,t.offset),o;n?o=m.multiplyByScalar(m.UNIT_Z,i.range,hot):o=cpe(i.heading,i.pitch,i.range);let r=Rt.eastNorthUpToFixedFrame(e.center,oe.WGS84,mot);B.multiplyByPoint(r,o,o);let s,a;if(!n){if(s=m.subtract(e.center,o,pot),m.normalize(s,s),a=B.multiplyByPointAsVector(r,m.UNIT_Z,_ot),1-Math.abs(m.dot(s,a))<P.EPSILON6){let u=Ne.fromAxisAngle(s,i.heading,Aot),f=Z.fromQuaternion(u,xot);m.fromCartesian4(B.getColumn(r,1,yot),a),Z.multiplyByVector(f,a,a)}let c=m.cross(s,a,got);m.cross(c,s,a),m.normalize(a,a)}this.flyTo({destination:o,orientation:{direction:s,up:a},duration:t.duration,complete:t.complete,cancel:t.cancel,endTransform:t.endTransform,maximumHeight:t.maximumHeight,easingFunction:t.easingFunction,flyOverLongitude:t.flyOverLongitude,flyOverLongitudeWeight:t.flyOverLongitudeWeight,pitchAdjustHeight:t.pitchAdjustHeight})};var Xhe=new m,Khe=new m,Lj=new m,Jhe=new m,MD=[new m,new m,new m,new m];function Cot(e,t){let n=t.radii,i=e.positionWC,o=m.multiplyComponents(t.oneOverRadii,i,Xhe),r=m.magnitude(o),s=m.normalize(o,Khe),a,c;m.equalsEpsilon(s,m.UNIT_Z,P.EPSILON10)?(a=new m(0,1,0),c=new m(0,0,1)):(a=m.normalize(m.cross(m.UNIT_Z,s,Lj),Lj),c=m.normalize(m.cross(s,a,Jhe),Jhe));let u=Math.sqrt(m.magnitudeSquared(o)-1),f=m.multiplyByScalar(s,1/r,Xhe),d=u/r,p=m.multiplyByScalar(a,d,Khe),g=m.multiplyByScalar(c,d,Lj),h=m.add(f,g,MD[0]);m.subtract(h,p,h),m.multiplyComponents(n,h,h);let A=m.subtract(f,g,MD[1]);m.subtract(A,p,A),m.multiplyComponents(n,A,A);let x=m.subtract(f,g,MD[2]);m.add(x,p,x),m.multiplyComponents(n,x,x);let C=m.add(f,g,MD[3]);return m.add(C,p,C),m.multiplyComponents(n,C,C),MD}var Nj=new H,Tot=new m,uy=[new he,new he,new he,new he];function _V(e,t,n,i,o,r){Nj.x=e,Nj.y=t;let s=i.pickEllipsoid(Nj,o,Tot);return l(s)?(uy[n]=o.cartesianToCartographic(s,uy[n]),1):(uy[n]=o.cartesianToCartographic(r[n],uy[n]),0)}Kt.prototype.computeViewRectangle=function(e,t){e=y(e,oe.WGS84);let n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),i=new ae(m.ZERO,e.maximumRadius);if(n.computeVisibility(i)===$t.OUTSIDE)return;let r=this._scene.canvas,s=r.clientWidth,a=r.clientHeight,c=0,u=Cot(this,e);if(c+=_V(0,0,0,this,e,u),c+=_V(0,a,1,this,e,u),c+=_V(s,a,2,this,e,u),c+=_V(s,0,3,this,e,u),c<2)return le.MAX_VALUE;t=le.fromCartographicArray(uy,t);let f=0,d=uy[3].longitude;for(let p=0;p<4;++p){let g=uy[p].longitude,h=Math.abs(g-d);h>P.PI?f+=P.TWO_PI-h:f+=h,d=g}return P.equalsEpsilon(Math.abs(f),P.TWO_PI,P.EPSILON9)&&(t.west=-P.PI,t.east=P.PI,uy[0].latitude>=0?t.north=P.PI_OVER_TWO:t.south=-P.PI_OVER_TWO),t};Kt.prototype.switchToPerspectiveFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof wi)return;let e=this._scene;this.frustum=new wi,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60)};Kt.prototype.switchToOrthographicFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof tn)return;let e=tpe(this),t=this._scene;this.frustum=new tn,this.frustum.aspectRatio=t.drawingBufferWidth/t.drawingBufferHeight,this.frustum.width=e};Kt.clone=function(e,t){return l(t)||(t=new Kt(e._scene)),m.clone(e.position,t.position),m.clone(e.direction,t.direction),m.clone(e.up,t.up),m.clone(e.right,t.right),B.clone(e._transform,t.transform),t._transformChanged=!0,t.frustum=e.frustum.clone(),t};var uo=Kt;function Eot(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}var Nd=Eot;var ppe=ar(bl(),1),fpe=576,bot=100,RD="#ffffff",zj="#48b";function _pe(e,t){this.credit=e,this.count=y(t,1)}function gpe(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i];if(It.equals(o,t))return!0}return!1}function Sot(e){let t=e._previousCesiumCredit,n=e._currentCesiumCredit;It.equals(n,t)||(l(t)&&e._cesiumCreditContainer.removeChild(t.element),l(n)&&e._cesiumCreditContainer.appendChild(n.element),e._previousCesiumCredit=n)}var ype="cesium-credit-delimiter";function dpe(e){let t=document.createElement("span");return t.textContent=e,t.className=ype,t}function mpe(e,t){if(l(t)){let n=document.createElement(t);n._creditId=e._creditId,n.appendChild(e),e=n}return e}function hpe(e,t,n,i){let o=e.childNodes,r=-1;t.sort(function(s,a){return a.count-s.count});for(let s=0;s<t.length;++s){let a=t[s].credit;if(l(a)){if(r=s,l(n)&&(r*=2,s>0)){let u=r-1;if(o.length<=u)e.appendChild(dpe(n));else{let f=o[u];f.className!==ype&&e.replaceChild(dpe(n),f)}}let c=a.element;if(o.length<=r)e.appendChild(mpe(c,i));else{let u=o[r];u._creditId!==a._id&&e.replaceChild(mpe(c,i),u)}}}for(++r;r<o.length;)e.removeChild(o[r])}function wot(e){let t=e._lightboxCredits,n=e.viewport.clientWidth,i=e.viewport.clientHeight;n!==e._lastViewportWidth&&(n<fpe?(t.className="cesium-credit-lightbox cesium-credit-lightbox-mobile",t.style.marginTop="0"):(t.className="cesium-credit-lightbox cesium-credit-lightbox-expanded",t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`),e._lastViewportWidth=n),n>=fpe&&i!==e._lastViewportHeight&&(t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`,e._lastViewportHeight=i)}function Za(e,t){let n=`${e} {`;for(let i in t)t.hasOwnProperty(i)&&(n+=`${i}: ${t[i]}; `);return n+=` } +`,n}function vot(e){let t="";t+=Za(".cesium-credit-lightbox-overlay",{display:"none","z-index":"1",position:"absolute",top:"0",left:"0",width:"100%",height:"100%","background-color":"rgba(80, 80, 80, 0.8)"}),t+=Za(".cesium-credit-lightbox",{"background-color":"#303336",color:RD,position:"relative","min-height":`${bot}px`,margin:"auto"}),t+=Za(".cesium-credit-lightbox > ul > li a, .cesium-credit-lightbox > ul > li a:visited",{color:RD}),t+=Za(".cesium-credit-lightbox > ul > li a:hover",{color:zj}),t+=Za(".cesium-credit-lightbox.cesium-credit-lightbox-expanded",{border:"1px solid #444","border-radius":"5px","max-width":"370px"}),t+=Za(".cesium-credit-lightbox.cesium-credit-lightbox-mobile",{height:"100%",width:"100%"}),t+=Za(".cesium-credit-lightbox-title",{padding:"20px 20px 0 20px"}),t+=Za(".cesium-credit-lightbox-close",{"font-size":"18pt",cursor:"pointer",position:"absolute",top:"0",right:"6px",color:RD}),t+=Za(".cesium-credit-lightbox-close:hover",{color:zj}),t+=Za(".cesium-credit-lightbox > ul",{margin:"0",padding:"12px 20px 12px 40px","font-size":"13px"}),t+=Za(".cesium-credit-lightbox > ul > li",{"padding-bottom":"6px"}),t+=Za(".cesium-credit-lightbox > ul > li *",{padding:"0",margin:"0"}),t+=Za(".cesium-credit-expand-link",{"padding-left":"5px",cursor:"pointer","text-decoration":"underline",color:RD}),t+=Za(".cesium-credit-expand-link:hover",{color:zj}),t+=Za(".cesium-credit-text",{color:RD}),t+=Za(".cesium-credit-textContainer *, .cesium-credit-logoContainer *",{display:"inline"});function n(r){if(r.shadowRoot)return r.shadowRoot;if(r.getRootNode){let s=r.getRootNode();if(s instanceof ShadowRoot)return s}}let i=y(n(e),document.head),o=document.createElement("style");o.innerHTML=t,i.appendChild(o)}function wo(e,t,n){let i=this;n=y(n,document.body);let o=document.createElement("div");o.className="cesium-credit-lightbox-overlay",n.appendChild(o);let r=document.createElement("div");r.className="cesium-credit-lightbox",o.appendChild(r);function s(h){r.contains(h.target)||i.hideLightbox()}o.addEventListener("click",s,!1);let a=document.createElement("div");a.className="cesium-credit-lightbox-title",a.textContent="Data provided by:",r.appendChild(a);let c=document.createElement("a");c.onclick=this.hideLightbox.bind(this),c.innerHTML="×",c.className="cesium-credit-lightbox-close",r.appendChild(c);let u=document.createElement("ul");r.appendChild(u);let f=document.createElement("div");f.className="cesium-credit-logoContainer",f.style.display="inline",e.appendChild(f);let d=document.createElement("div");d.className="cesium-credit-textContainer",d.style.display="inline",e.appendChild(d);let p=document.createElement("a");p.className="cesium-credit-expand-link",p.onclick=this.showLightbox.bind(this),p.textContent="Data attribution",e.appendChild(p),vot(e);let g=It.clone(wo.cesiumCredit);this._delimiter=y(t," \u2022 "),this._screenContainer=d,this._cesiumCreditContainer=f,this._lastViewportHeight=void 0,this._lastViewportWidth=void 0,this._lightboxCredits=r,this._creditList=u,this._lightbox=o,this._hideLightbox=s,this._expandLink=p,this._expanded=!1,this._staticCredits=[],this._cesiumCredit=g,this._previousCesiumCredit=void 0,this._currentCesiumCredit=g,this._creditDisplayElementPool=[],this._creditDisplayElementIndex=0,this._currentFrameCredits={screenCredits:new Et,lightboxCredits:new Et},this._defaultCredit=void 0,this.viewport=n,this.container=e}function Ape(e,t,n,i){i=y(i,1);let o=t.get(n.id);if(l(o))o.count<Number.MAX_VALUE&&(o.count+=i);else{let r=e._creditDisplayElementPool,s=e._creditDisplayElementPoolIndex;s<r.length?(o=r[s],o.credit=n,o.count=i):(o=new _pe(n,i),r.push(o)),++e._creditDisplayElementPoolIndex,t.set(n.id,o)}}wo.prototype.addCredit=function(e){$("CreditDisplay.addCredit","CreditDisplay.addCredit was deprecated in CesiumJS 1.105. It will be removed in CesiumJS 1.107. Use CreditDisplay.addCreditToNextFrame instead."),this.addCreditToNextFrame(e)};wo.prototype.addCreditToNextFrame=function(e){if(e._isIon){l(this._defaultCredit)||(this._defaultCredit=It.clone(xpe())),this._currentCesiumCredit=this._defaultCredit;return}let t;e.showOnScreen?t=this._currentFrameCredits.screenCredits:t=this._currentFrameCredits.lightboxCredits,Ape(this,t,e)};wo.prototype.addDefaultCredit=function(e){$("CreditDisplay.addDefaultCredit","CreditDisplay.addDefaultCredit was deprecated in CesiumJS 1.105. It will be removed in CesiumJS 1.107. Use CreditDisplay.addStaticCredit instead.");let t=this._staticCredits;gpe(t,e)||(e.showOnScreen=!0,t.push(e))};wo.prototype.addStaticCredit=function(e){let t=this._staticCredits;gpe(t,e)||t.push(e)};wo.prototype.removeStaticCredit=function(e){let t=this._staticCredits,n=t.indexOf(e);n!==-1&&t.splice(n,1)};wo.prototype.removeDefaultCredit=function(e){$("CreditDisplay.removeDefaultCredit","CreditDisplay.removeDefaultCredit was deprecated in CesiumJS 1.105. It will be removed in CesiumJS 1.107. Use CreditDisplay.addStaticCredit instead."),this.removeStaticCredit(e)};wo.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0};wo.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1};wo.prototype.update=function(){this._expanded&&wot(this)};wo.prototype.beginFrame=function(){let e=this._currentFrameCredits;this._creditDisplayElementPoolIndex=0;let t=e.screenCredits,n=e.lightboxCredits;t.removeAll(),n.removeAll();let i=this._staticCredits;for(let o=0;o<i.length;++o){let r=i[o],s=r.showOnScreen?t:n;r._isIon&&It.equals(wo.cesiumCredit,this._cesiumCredit)||Ape(this,s,r,Number.MAX_VALUE)}It.equals(wo.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=It.clone(wo.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit};wo.prototype.endFrame=function(){let e=this._currentFrameCredits.screenCredits.values;hpe(this._screenContainer,e,this._delimiter,void 0);let t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",hpe(this._creditList,t,void 0,"li"),Sot(this)};wo.prototype.destroy=function(){return this._lightbox.removeEventListener("click",this._hideLightbox,!1),this.container.removeChild(this._cesiumCreditContainer),this.container.removeChild(this._screenContainer),this.container.removeChild(this._expandLink),this.viewport.removeChild(this._lightbox),ue(this)};wo.prototype.isDestroyed=function(){return!1};wo._cesiumCredit=void 0;wo._cesiumCreditInitialized=!1;var CV;function xpe(){if(!l(CV)){let e=en("Assets/Images/ion-credit.png");e.indexOf("http://")!==0&&e.indexOf("https://")!==0&&e.indexOf("data:")!==0&&(e=new ppe.default(e).path()),CV=new It(`<a href="https://cesium.com/" target="_blank"><img src="${e}" title="Cesium ion"/></a>`,!0)}return wo._cesiumCreditInitialized||(wo._cesiumCredit=CV,wo._cesiumCreditInitialized=!0),CV}Object.defineProperties(wo,{cesiumCredit:{get:function(){return xpe(),wo._cesiumCredit},set:function(e){wo._cesiumCredit=e,wo._cesiumCreditInitialized=!0}}});wo.CreditDisplayElement=_pe;var TV=wo;var EV=0,Dot=1;function IA(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e._drawNearPlane,!0),s,a;t instanceof wi?(s=EV,a=wi.packedLength):t instanceof tn&&(s=Dot,a=tn.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=m.clone(i),this._orientation=Ne.clone(n),this._drawNearPlane=r,this._vertexFormat=o,this._workerName="createFrustumGeometry",this.packedLength=2+a+m.packedLength+Ne.packedLength+Pe.packedLength}IA.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===EV?(wi.pack(o,t,n),n+=wi.packedLength):(tn.pack(o,t,n),n+=tn.packedLength),m.pack(e._origin,t,n),n+=m.packedLength,Ne.pack(e._orientation,t,n),n+=Ne.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n]=e._drawNearPlane?1:0,t};var Iot=new wi,Pot=new tn,Oot=new Ne,Mot=new m,Rot=new Pe;IA.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===EV?(o=wi.unpack(e,t,Iot),t+=wi.packedLength):(o=tn.unpack(e,t,Pot),t+=tn.packedLength);let r=m.unpack(e,t,Mot);t+=m.packedLength;let s=Ne.unpack(e,t,Oot);t+=Ne.packedLength;let a=Pe.unpack(e,t,Rot);t+=Pe.packedLength;let c=e[t]===1;if(!l(n))return new IA({frustum:o,origin:r,orientation:s,vertexFormat:a,_drawNearPlane:c});let u=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(u),n._frustumType=i,n._origin=m.clone(r,n._origin),n._orientation=Ne.clone(s,n._orientation),n._vertexFormat=Pe.clone(a,n._vertexFormat),n._drawNearPlane=c,n};function ZE(e,t,n,i,o,r,s,a){let c=e/3*2;for(let u=0;u<4;++u)l(t)&&(t[e]=r.x,t[e+1]=r.y,t[e+2]=r.z),l(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),l(i)&&(i[e]=a.x,i[e+1]=a.y,i[e+2]=a.z),e+=3;o[c]=0,o[c+1]=0,o[c+2]=1,o[c+3]=0,o[c+4]=1,o[c+5]=1,o[c+6]=0,o[c+7]=1}var Bot=new Z,Lot=new B,Hj=new B,Cpe=new m,Tpe=new m,Epe=new m,Not=new m,Fot=new m,Uot=new m,fy=new Array(3),BD=new Array(4);BD[0]=new re(-1,-1,1,1);BD[1]=new re(1,-1,1,1);BD[2]=new re(1,1,1,1);BD[3]=new re(-1,1,1,1);var bpe=new Array(4);for(let e=0;e<4;++e)bpe[e]=new re;IA._computeNearFarPlanes=function(e,t,n,i,o,r,s,a){let c=Z.fromQuaternion(t,Bot),u=y(r,Cpe),f=y(s,Tpe),d=y(a,Epe);u=Z.getColumn(c,0,u),f=Z.getColumn(c,1,f),d=Z.getColumn(c,2,d),m.normalize(u,u),m.normalize(f,f),m.normalize(d,d),m.negate(u,u);let p=B.computeView(e,d,f,u,Lot),g,h,A=i.projectionMatrix;if(n===EV){let x=B.multiply(A,p,Hj);h=B.inverse(x,Hj)}else g=B.inverseTransformation(p,Hj);l(h)?(fy[0]=i.near,fy[1]=i.far):(fy[0]=0,fy[1]=i.near,fy[2]=i.far);for(let x=0;x<2;++x)for(let C=0;C<4;++C){let T=re.clone(BD[C],bpe[C]);if(l(h)){T=B.multiplyByVector(h,T,T);let E=1/T.w;m.multiplyByScalar(T,E,T),m.subtract(T,e,T),m.normalize(T,T);let S=m.dot(d,T);m.multiplyByScalar(T,fy[x]/S,T),m.add(T,e,T)}else{let E=i.offCenterFrustum;l(E)&&(i=E);let S=fy[x],v=fy[x+1];T.x=(T.x*(i.right-i.left)+i.left+i.right)*.5,T.y=(T.y*(i.top-i.bottom)+i.bottom+i.top)*.5,T.z=(T.z*(S-v)-S-v)*.5,T.w=1,B.multiplyByVector(g,T,T)}o[12*x+C*3]=T.x,o[12*x+C*3+1]=T.y,o[12*x+C*3+2]=T.z}};IA.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=e._vertexFormat,a=r?6:5,c=new Float64Array(3*4*6);IA._computeNearFarPlanes(i,o,t,n,c);let u=3*4*2;c[u]=c[3*4],c[u+1]=c[3*4+1],c[u+2]=c[3*4+2],c[u+3]=c[0],c[u+4]=c[1],c[u+5]=c[2],c[u+6]=c[3*3],c[u+7]=c[3*3+1],c[u+8]=c[3*3+2],c[u+9]=c[3*7],c[u+10]=c[3*7+1],c[u+11]=c[3*7+2],u+=3*4,c[u]=c[3*5],c[u+1]=c[3*5+1],c[u+2]=c[3*5+2],c[u+3]=c[3],c[u+4]=c[3+1],c[u+5]=c[3+2],c[u+6]=c[0],c[u+7]=c[1],c[u+8]=c[2],c[u+9]=c[3*4],c[u+10]=c[3*4+1],c[u+11]=c[3*4+2],u+=3*4,c[u]=c[3],c[u+1]=c[3+1],c[u+2]=c[3+2],c[u+3]=c[3*5],c[u+4]=c[3*5+1],c[u+5]=c[3*5+2],c[u+6]=c[3*6],c[u+7]=c[3*6+1],c[u+8]=c[3*6+2],c[u+9]=c[3*2],c[u+10]=c[3*2+1],c[u+11]=c[3*2+2],u+=3*4,c[u]=c[3*2],c[u+1]=c[3*2+1],c[u+2]=c[3*2+2],c[u+3]=c[3*6],c[u+4]=c[3*6+1],c[u+5]=c[3*6+2],c[u+6]=c[3*7],c[u+7]=c[3*7+1],c[u+8]=c[3*7+2],c[u+9]=c[3*3],c[u+10]=c[3*3+1],c[u+11]=c[3*3+2],r||(c=c.subarray(3*4));let f=new _n({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})});if(l(s.normal)||l(s.tangent)||l(s.bitangent)||l(s.st)){let p=l(s.normal)?new Float32Array(12*a):void 0,g=l(s.tangent)?new Float32Array(3*4*a):void 0,h=l(s.bitangent)?new Float32Array(3*4*a):void 0,A=l(s.st)?new Float32Array(2*4*a):void 0,x=Cpe,C=Tpe,T=Epe,E=m.negate(x,Not),S=m.negate(C,Fot),v=m.negate(T,Uot);u=0,r&&(ZE(u,p,g,h,A,v,x,C),u+=3*4),ZE(u,p,g,h,A,T,E,C),u+=3*4,ZE(u,p,g,h,A,E,v,C),u+=3*4,ZE(u,p,g,h,A,S,v,E),u+=3*4,ZE(u,p,g,h,A,x,T,C),u+=3*4,ZE(u,p,g,h,A,C,T,E),l(p)&&(f.normal=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),l(g)&&(f.tangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),l(h)&&(f.bitangent=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:h})),l(A)&&(f.st=new ve({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:A}))}let d=new Uint16Array(6*a);for(let p=0;p<a;++p){let g=p*6,h=p*4;d[g]=h,d[g+1]=h+1,d[g+2]=h+2,d[g+3]=h,d[g+4]=h+2,d[g+5]=h+3}return new dt({attributes:f,indices:d,primitiveType:Le.TRIANGLES,boundingSphere:ae.fromVertices(c)})};var QE=IA;var Gj=0,Vot=1;function LD(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e._drawNearPlane,!0),r,s;t instanceof wi?(r=Gj,s=wi.packedLength):t instanceof tn&&(r=Vot,s=tn.packedLength),this._frustumType=r,this._frustum=t.clone(),this._origin=m.clone(i),this._orientation=Ne.clone(n),this._drawNearPlane=o,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+s+m.packedLength+Ne.packedLength}LD.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===Gj?(wi.pack(o,t,n),n+=wi.packedLength):(tn.pack(o,t,n),n+=tn.packedLength),m.pack(e._origin,t,n),n+=m.packedLength,Ne.pack(e._orientation,t,n),n+=Ne.packedLength,t[n]=e._drawNearPlane?1:0,t};var kot=new wi,zot=new tn,Hot=new Ne,Got=new m;LD.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===Gj?(o=wi.unpack(e,t,kot),t+=wi.packedLength):(o=tn.unpack(e,t,zot),t+=tn.packedLength);let r=m.unpack(e,t,Got);t+=m.packedLength;let s=Ne.unpack(e,t,Hot);t+=Ne.packedLength;let a=e[t]===1;if(!l(n))return new LD({frustum:o,origin:r,orientation:s,_drawNearPlane:a});let c=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(c),n._frustumType=i,n._origin=m.clone(r,n._origin),n._orientation=Ne.clone(s,n._orientation),n._drawNearPlane=a,n};LD.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=new Float64Array(3*4*2);QE._computeNearFarPlanes(i,o,t,n,s);let a=new _n({position:new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),c,u,f=r?2:1,d=new Uint16Array(8*(f+1)),p=r?0:1;for(;p<2;++p)c=r?p*8:0,u=p*4,d[c]=u,d[c+1]=u+1,d[c+2]=u+1,d[c+3]=u+2,d[c+4]=u+2,d[c+5]=u+3,d[c+6]=u+3,d[c+7]=u;for(p=0;p<2;++p)c=(f+p)*8,u=p*4,d[c]=u,d[c+1]=u+4,d[c+2]=u+1,d[c+3]=u+5,d[c+4]=u+2,d[c+5]=u+6,d[c+6]=u+3,d[c+7]=u+7;return new dt({attributes:a,indices:d,primitiveType:Le.LINES,boundingSphere:ae.fromVertices(s)})};var bV=LD;function SV(e){e=y(e,y.EMPTY_OBJECT),this._camera=e.camera,this._frustumSplits=e.frustumSplits,this._color=y(e.color,z.CYAN),this._updateOnChange=y(e.updateOnChange,!0),this.show=y(e.show,!0),this.id=e.id,this._id=void 0,this._outlinePrimitives=[],this._planesPrimitives=[]}var Wot=new m,jot=new Z,Yot=new Ne,qot=new wi,Xot=new pl,Kot=new tn,Jot=new Ir,Zot=new z,Qot=[1,1e5];SV.prototype.update=function(e){if(!this.show)return;let t=this._planesPrimitives,n=this._outlinePrimitives,i,o;if(this._updateOnChange){for(o=t.length,i=0;i<o;++i)n[i]=n[i]&&n[i].destroy(),t[i]=t[i]&&t[i].destroy();t.length=0,n.length=0}if(t.length===0){let r=this._camera,s=r.frustum,a;s instanceof wi?a=qot:s instanceof pl?a=Xot:s instanceof tn?a=Kot:a=Jot,a=s.clone(a);let c,u=this._frustumSplits;!l(u)||u.length<=1?(u=Qot,u[0]=this._camera.frustum.near,u[1]=this._camera.frustum.far,c=1):c=u.length-1;let f=r.positionWC,d=r.directionWC,p=r.upWC,g=r.rightWC;g=m.negate(g,Wot);let h=jot;Z.setColumn(h,0,g,h),Z.setColumn(h,1,p,h),Z.setColumn(h,2,d,h);let A=Ne.fromRotationMatrix(h,Yot);for(t.length=n.length=c,i=0;i<c;++i)a.near=u[i],a.far=u[i+1],t[i]=new wn({geometryInstances:new Tt({geometry:new QE({origin:f,orientation:A,frustum:a,_drawNearPlane:i===0}),attributes:{color:Vt.fromColor(z.fromAlpha(this._color,.1,Zot))},id:this.id,pickPrimitive:this}),appearance:new sn({translucent:!0,flat:!0}),asynchronous:!1}),n[i]=new wn({geometryInstances:new Tt({geometry:new bV({origin:f,orientation:A,frustum:a,_drawNearPlane:i===0}),attributes:{color:Vt.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new sn({translucent:!1,flat:!0}),asynchronous:!1})}for(o=t.length,i=0;i<o;++i)n[i].update(e),t[i].update(e)};SV.prototype.isDestroyed=function(){return!1};SV.prototype.destroy=function(){let e=this._planesPrimitives.length;for(let t=0;t<e;++t)this._outlinePrimitives[t]=this._outlinePrimitives[t]&&this._outlinePrimitives[t].destroy(),this._planesPrimitives[t]=this._planesPrimitives[t]&&this._planesPrimitives[t].destroy();return ue(this)};var Hp=SV;var wV=`in vec4 positionEC; + +void main() +{ + vec3 position; + vec3 direction; + if (czm_orthographicIn3D == 1.0) + { + vec2 uv = (gl_FragCoord.xy - czm_viewport.xy) / czm_viewport.zw; + vec2 minPlane = vec2(czm_frustumPlanes.z, czm_frustumPlanes.y); // left, bottom + vec2 maxPlane = vec2(czm_frustumPlanes.w, czm_frustumPlanes.x); // right, top + position = vec3(mix(minPlane, maxPlane, uv), 0.0); + direction = vec3(0.0, 0.0, -1.0); + } + else + { + position = vec3(0.0); + direction = normalize(positionEC.xyz); + } + + czm_ray ray = czm_ray(position, direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + if (!czm_isEmpty(intersection)) + { + out_FragColor = vec4(1.0, 1.0, 0.0, 1.0); + } + else + { + discard; + } + + czm_writeLogDepth(); +} +`;var vV=`in vec4 position; + +out vec4 positionEC; + +void main() +{ + positionEC = czm_modelView * position; + gl_Position = czm_projection * positionEC; + + czm_vertexLogDepth(); +} +`;function FD(e){this._rs=void 0,this._sp=void 0,this._va=void 0,this._command=void 0,this._mode=void 0,this._useLogDepth=!1,this._ellipsoidOffset=y(e,0)}var ND=Gt.supportsTypedArrays()?new Float32Array(12):[],Spe=new m,wpe=new m,Wj=new m,vpe=new m,DV=new m;function $ot(e,t){let n=e.radii,i=t.camera,o,r,s;if(i.frustum instanceof tn)o=m.ZERO,r=i.rightWC,s=i.upWC;else{let d=i.positionWC,p=m.multiplyComponents(e.oneOverRadii,d,Spe),g=m.normalize(p,wpe),h=m.normalize(m.cross(m.UNIT_Z,p,Wj),Wj),A=m.normalize(m.cross(g,h,vpe),vpe),x=m.magnitude(p),C=Math.sqrt(x*x-1);o=m.multiplyByScalar(g,1/x,Spe);let T=C/x;r=m.multiplyByScalar(h,T,wpe),s=m.multiplyByScalar(A,T,Wj)}let a=m.add(o,s,DV);m.subtract(a,r,a),m.multiplyComponents(n,a,a),m.pack(a,ND,0);let c=m.subtract(o,s,DV);m.subtract(c,r,c),m.multiplyComponents(n,c,c),m.pack(c,ND,3);let u=m.add(o,s,DV);m.add(u,r,u),m.multiplyComponents(n,u,u),m.pack(u,ND,6);let f=m.subtract(o,s,DV);return m.add(f,r,f),m.multiplyComponents(n,f,f),m.pack(f,ND,9),ND}FD.prototype.update=function(e){if(this._mode=e.mode,e.mode!==ne.SCENE3D)return;let t=e.context,n=e.mapProjection.ellipsoid.radii,i=new oe(n.x+this._ellipsoidOffset,n.y+this._ellipsoidOffset,n.z+this._ellipsoidOffset),o=e.useLogDepth;if(l(this._command)||(this._rs=ze.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new it({renderState:this._rs,boundingVolume:new ae(m.ZERO,i.maximumRadius),pass:be.OPAQUE,owner:this})),!l(this._sp)||this._useLogDepth!==o){this._useLogDepth=o;let s=new He({sources:[vV]}),a=new He({sources:[wV]});o&&(a.defines.push("LOG_DEPTH"),s.defines.push("LOG_DEPTH")),this._sp=Jt.replaceCache({shaderProgram:this._sp,context:t,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}let r=$ot(i,e);if(l(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(r);else{let s=new dt({attributes:{position:new ve({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})},indices:[0,1,2,2,1,3],primitiveType:Le.TRIANGLES});this._va=ri.fromGeometry({context:t,geometry:s,attributeLocations:{position:0},bufferUsage:Fe.DYNAMIC_DRAW}),this._command.vertexArray=this._va}};FD.prototype.execute=function(e,t){this._mode===ne.SCENE3D&&this._command.execute(e,t)};FD.prototype.isDestroyed=function(){return!1};FD.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()};var IV=FD;function UD(){}var ert=/\bgl_FragDepth\b/,trt=/\bdiscard\b/;function nrt(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"depthOnly");if(!l(n)){let i=t._attributeLocations,o=t.fragmentShaderSource,r,s=!1,a=o.sources,c=a.length;for(r=0;r<c;++r)if(ert.test(a[r])||trt.test(a[r])){s=!0;break}let u=!1,f=o.defines;for(c=f.length,r=0;r<c;++r)if(f[r]==="LOG_DEPTH"){u=!0;break}let d;!s&&!u?(d=`void main() +{ + out_FragColor = vec4(1.0); +} +`,o=new He({sources:[d]})):!s&&u&&(d=`void main() +{ + out_FragColor = vec4(1.0); + czm_writeLogDepth(); +} +`,o=new He({defines:["LOG_DEPTH"],sources:[d]})),n=e.shaderCache.createDerivedShaderProgram(t,"depthOnly",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:i})}return n}function irt(e,t){let n=e._depthOnlyRenderStateCache,i=n[t.id];if(!l(i)){let o=ze.getState(t);o.depthMask=!0,o.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i=ze.fromCache(o),n[t.id]=i}return i}UD.createDepthOnlyDerivedCommand=function(e,t,n,i){l(i)||(i={});let o,r;return l(i.depthOnlyCommand)&&(o=i.depthOnlyCommand.shaderProgram,r=i.depthOnlyCommand.renderState),i.depthOnlyCommand=it.shallowClone(t,i.depthOnlyCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.depthOnlyCommand.shaderProgram=nrt(n,t.shaderProgram),i.depthOnlyCommand.renderState=irt(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.depthOnlyCommand.shaderProgram=o,i.depthOnlyCommand.renderState=r),i};var ort=/\s+czm_writeLogDepth\(/,rrt=/\s+czm_vertexLogDepth\(/;function srt(e,t){if(t.fragmentShaderSource.defines.indexOf("LOG_DEPTH_READ_ONLY")>=0)return t;let i=e.shaderCache.getDerivedShaderProgram(t,"logDepth");if(!l(i)){let o=t._attributeLocations,r=t.vertexShaderSource.clone(),s=t.fragmentShaderSource.clone();r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("LOG_DEPTH"),s.defines=l(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");let a,c,u=!1,f=r.sources,d=f.length;for(a=0;a<d;++a)if(rrt.test(f[a])){u=!0;break}if(!u){for(a=0;a<d;++a)f[a]=He.replaceMain(f[a],"czm_log_depth_main");c=` + +void main() +{ + czm_log_depth_main(); + czm_vertexLogDepth(); +} +`,f.push(c)}for(f=s.sources,d=f.length,u=!1,a=0;a<d;++a)ort.test(f[a])&&(u=!0);s.defines.indexOf("LOG_DEPTH_WRITE")!==-1&&(u=!0);let p="";if(!u){for(a=0;a<d;a++)f[a]=He.replaceMain(f[a],"czm_log_depth_main");p+=` +void main() +{ + czm_log_depth_main(); + czm_writeLogDepth(); +} +`}f.push(p),i=e.shaderCache.createDerivedShaderProgram(t,"logDepth",{vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o})}return i}UD.createLogDepthCommand=function(e,t,n){l(n)||(n={});let i;return l(n.command)&&(i=n.command.shaderProgram),n.command=it.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=srt(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};function art(e,t,n){let i=e.shaderCache.getDerivedShaderProgram(t,"pick");if(!l(i)){let o=t._attributeLocations,r=t.fragmentShaderSource,s=r.sources,a=s.length,c=`void main() +{ + czm_non_pick_main(); + if (out_FragColor.a == 0.0) { + discard; + } + out_FragColor = ${n}; +} +`,u=new Array(a+1);for(let f=0;f<a;++f)u[f]=He.replaceMain(s[f],"czm_non_pick_main");u[a]=c,r=new He({sources:u,defines:r.defines}),i=e.shaderCache.createDerivedShaderProgram(t,"pick",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:r,attributeLocations:o})}return i}function crt(e,t){let n=e.picking.pickRenderStateCache,i=n[t.id];if(!l(i)){let o=ze.getState(t);o.blending.enabled=!1,o.depthMask=!0,i=ze.fromCache(o),n[t.id]=i}return i}UD.createPickDerivedCommand=function(e,t,n,i){l(i)||(i={});let o,r;return l(i.pickCommand)&&(o=i.pickCommand.shaderProgram,r=i.pickCommand.renderState),i.pickCommand=it.shallowClone(t,i.pickCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.pickCommand.shaderProgram=art(n,t.shaderProgram,t.pickId),i.pickCommand.renderState=crt(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.pickCommand.shaderProgram=o,i.pickCommand.renderState=r),i};function lrt(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"HDR");if(!l(n)){let i=t._attributeLocations,o=t.vertexShaderSource.clone(),r=t.fragmentShaderSource.clone();o.defines=l(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("HDR"),n=e.shaderCache.createDerivedShaderProgram(t,"HDR",{vertexShaderSource:o,fragmentShaderSource:r,attributeLocations:i})}return n}UD.createHdrCommand=function(e,t,n){l(n)||(n={});let i;return l(n.command)&&(i=n.command.shaderProgram),n.command=it.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=lrt(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};var dy=UD;function PV(e){this._scene=e,this._lastAlpha=void 0,this._lastBeta=void 0,this._lastGamma=void 0,this._alpha=void 0,this._beta=void 0,this._gamma=void 0;let t=this;function n(i){let o=i.alpha;if(!l(o)){t._alpha=void 0,t._beta=void 0,t._gamma=void 0;return}t._alpha=P.toRadians(o),t._beta=P.toRadians(i.beta),t._gamma=P.toRadians(i.gamma)}window.addEventListener("deviceorientation",n,!1),this._removeListener=function(){window.removeEventListener("deviceorientation",n,!1)}}var urt=new Ne,Dpe=new Ne,frt=new Z;function drt(e,t,n,i){let o=e.direction,r=e.right,s=e.up,a=Ne.fromAxisAngle(o,n,Dpe),c=Ne.fromAxisAngle(r,i,urt),u=Ne.multiply(c,a,c),f=Ne.fromAxisAngle(s,t,Dpe);Ne.multiply(f,u,u);let d=Z.fromQuaternion(u,frt);Z.multiplyByVector(d,r,r),Z.multiplyByVector(d,s,s),Z.multiplyByVector(d,o,o)}PV.prototype.update=function(){if(!l(this._alpha))return;l(this._lastAlpha)||(this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma);let e=this._lastAlpha-this._alpha,t=this._lastBeta-this._beta,n=this._lastGamma-this._gamma;drt(this._scene.camera,-e,t,n),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma};PV.prototype.isDestroyed=function(){return!1};PV.prototype.destroy=function(){return this._removeListener(),ue(this)};var OV=PV;function Ipe(){this.enabled=!0,this.renderable=!0,this.density=2e-4,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}var MV=[359.393,800.749,1275.6501,2151.1192,3141.7763,4777.5198,6281.2493,12364.307,15900.765,49889.0549,78026.8259,99260.7344,120036.3873,151011.0158,156091.1953,203849.3112,274866.9803,319916.3149,493552.0528,628733.5874],rh=[2e-5,2e-4,1e-4,7e-5,5e-5,4e-5,3e-5,19e-6,1e-5,85e-7,62e-7,58e-7,53e-7,52e-7,51e-7,42e-7,4e-6,34e-7,26e-7,22e-7];for(let e=0;e<rh.length;++e)rh[e]*=1e6;var Ppe=rh[1],jj=rh[rh.length-1];for(let e=0;e<rh.length;++e)rh[e]=(rh[e]-jj)/(Ppe-jj);var $s=0;function mrt(e){let t=MV,n=t.length;if(e<t[0])return $s=0,$s;if(e>t[n-1])return $s=n-2,$s;if(e>=t[$s]){if($s+1<n&&e<t[$s+1])return $s;if($s+2<n&&e<t[$s+2])return++$s,$s}else if($s-1>=0&&e>=t[$s-1])return--$s,$s;let i;for(i=0;i<n-2&&!(e>=t[i]&&e<t[i+1]);++i);return $s=i,$s}var hrt=new m;Ipe.prototype.update=function(e){if(!(e.fog.enabled=this.enabled))return;e.fog.renderable=this.renderable;let n=e.camera,i=n.positionCartographic;if(!l(i)||i.height>8e5||e.mode!==ne.SCENE3D){e.fog.enabled=!1;return}let o=i.height,r=mrt(o),s=P.clamp((o-MV[r])/(MV[r+1]-MV[r]),0,1),a=P.lerp(rh[r],rh[r+1],s),c=this.density*1e6,u=c/Ppe*jj;a=a*(c-u)*1e-6;let f=m.normalize(n.positionWC,hrt),d=Math.abs(m.dot(n.directionWC,f));a*=1-d,e.fog.density=a,e.fog.sse=this.screenSpaceErrorFactor,e.fog.minimumBrightness=this.minimumBrightness};var RV=Ipe;function prt(e,t,n){this.context=e,this.commandList=[],this.shadowMaps=[],this.brdfLutGenerator=void 0,this.environmentMap=void 0,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this.specularEnvironmentMapsMaximumLOD=void 0,this.mode=ne.SCENE3D,this.morphTime=ne.getMorphTime(ne.SCENE3D),this.frameNumber=0,this.newFrame=!1,this.time=void 0,this.jobScheduler=n,this.mapProjection=void 0,this.camera=void 0,this.cameraUnderground=!1,this.globeTranslucencyState=void 0,this.cullingVolume=void 0,this.occluder=void 0,this.maximumScreenSpaceError=void 0,this.pixelRatio=1,this.passes={render:!1,pick:!1,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=t,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,density:void 0,sse:void 0,minimumBrightness:void 0},this.terrainExaggeration=1,this.terrainExaggerationRelativeHeight=0,this.shadowState={shadowsEnabled:!0,shadowMaps:[],lightShadowMaps:[],nearPlane:1,farPlane:5e3,closestObjectSize:1e3,lastDirtyTime:0,outOfView:!0},this.splitPosition=0,this.frustumSplits=[],this.backgroundColor=void 0,this.light=void 0,this.minimumDisableDepthTestDistance=void 0,this.invertClassification=!1,this.invertClassificationColor=void 0,this.useLogDepth=!1,this.tilesetPassState=void 0,this.minimumTerrainHeight=0}var BV=prt;var ea={OPAQUE_FRONT_FACE:0,OPAQUE_BACK_FACE:1,DEPTH_ONLY_FRONT_FACE:2,DEPTH_ONLY_BACK_FACE:3,DEPTH_ONLY_FRONT_AND_BACK_FACE:4,TRANSLUCENT_FRONT_FACE:5,TRANSLUCENT_BACK_FACE:6,TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:7,TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:8,PICK_FRONT_FACE:9,PICK_BACK_FACE:10,DERIVED_COMMANDS_MAXIMUM_LENGTH:11},PA=ea.DERIVED_COMMANDS_MAXIMUM_LENGTH,kpe=["opaqueFrontFaceCommand","opaqueBackFaceCommand","depthOnlyFrontFaceCommand","depthOnlyBackFaceCommand","depthOnlyFrontAndBackFaceCommand","translucentFrontFaceCommand","translucentBackFaceCommand","translucentFrontFaceManualDepthTestCommand","translucentBackFaceManualDepthTestCommand","pickFrontFaceCommand","pickBackFaceCommand"];function OA(){this._frontFaceAlphaByDistance=new Lt(0,1,0,1),this._backFaceAlphaByDistance=new Lt(0,1,0,1),this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._requiresManualDepthTest=!1,this._sunVisibleThroughGlobe=!1,this._environmentVisible=!1,this._useDepthPlane=!1,this._numberOfTextureUniforms=0,this._globeTranslucencyFramebuffer=void 0,this._rectangle=le.clone(le.MAX_VALUE),this._derivedCommandKey=0,this._derivedCommandsDirty=!1,this._derivedCommandPacks=void 0,this._derivedCommandTypes=new Array(PA),this._derivedBlendCommandTypes=new Array(PA),this._derivedPickCommandTypes=new Array(PA),this._derivedCommandTypesToUpdate=new Array(PA),this._derivedCommandsLength=0,this._derivedBlendCommandsLength=0,this._derivedPickCommandsLength=0,this._derivedCommandsToUpdateLength=0}Object.defineProperties(OA.prototype,{frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance}},translucent:{get:function(){return this._frontFaceTranslucent}},sunVisibleThroughGlobe:{get:function(){return this._sunVisibleThroughGlobe}},environmentVisible:{get:function(){return this._environmentVisible}},useDepthPlane:{get:function(){return this._useDepthPlane}},numberOfTextureUniforms:{get:function(){return this._numberOfTextureUniforms}},rectangle:{get:function(){return this._rectangle}}});OA.prototype.update=function(e){let t=e.globe;if(!l(t)||!t.show){this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._sunVisibleThroughGlobe=!0,this._environmentVisible=!0,this._useDepthPlane=!1;return}this._frontFaceAlphaByDistance=Ope(t.translucency.enabled,t.translucency.frontFaceAlpha,t.translucency.frontFaceAlphaByDistance,this._frontFaceAlphaByDistance),this._backFaceAlphaByDistance=Ope(t.translucency.enabled,t.translucency.backFaceAlpha,t.translucency.backFaceAlphaByDistance,this._backFaceAlphaByDistance),this._frontFaceTranslucent=Mpe(t.translucency.enabled,this._frontFaceAlphaByDistance,t),this._backFaceTranslucent=Mpe(t.translucency.enabled,this._backFaceAlphaByDistance,t),this._requiresManualDepthTest=Art(this,e,t),this._sunVisibleThroughGlobe=_rt(this,e),this._environmentVisible=grt(this,e),this._useDepthPlane=yrt(this,e),this._numberOfTextureUniforms=xrt(this),this._rectangle=le.clone(t.translucency.rectangle,this._rectangle),Crt(this,e)};function Ope(e,t,n,i){return e?l(n)?(Lt.clone(n,i),i.nearValue*=t,i.farValue*=t,i):(i.nearValue=t,i.farValue=t,i):(i.nearValue=1,i.farValue=1,i)}function Mpe(e,t,n){return e&&(n.baseColor.alpha<1||t.nearValue<1||t.farValue<1)}function _rt(e,t){let n=e._frontFaceTranslucent,i=e._backFaceTranslucent;return n&&(t.cameraUnderground||i)}function grt(e,t){return!t.cameraUnderground||e._frontFaceTranslucent}function yrt(e,t){return!t.cameraUnderground&&!e._frontFaceTranslucent}function Art(e,t,n){return e._frontFaceTranslucent&&!e._backFaceTranslucent&&!n.depthTestAgainstTerrain&&t.mode!==ne.SCENE2D&&t.context.depthTexture}function xrt(e){let t=0;return e._frontFaceTranslucent&&++t,e._requiresManualDepthTest&&++t,t}function Crt(e,t){e._derivedCommandsLength=Yj(e,t,!1,!1,e._derivedCommandTypes),e._derivedBlendCommandsLength=Yj(e,t,!0,!1,e._derivedBlendCommandTypes),e._derivedPickCommandsLength=Yj(e,t,!1,!0,e._derivedPickCommandTypes);let n,i=0;for(n=0;n<e._derivedCommandsLength;++n)i|=1<<e._derivedCommandTypes[n];for(n=0;n<e._derivedBlendCommandsLength;++n)i|=1<<e._derivedBlendCommandTypes[n];for(n=0;n<e._derivedPickCommandsLength;++n)i|=1<<e._derivedPickCommandTypes[n];let o=0;for(n=0;n<PA;++n)(i&1<<n)>0&&(e._derivedCommandTypesToUpdate[o++]=n);e._derivedCommandsToUpdateLength=o;let r=i!==e._derivedCommandKey;e._derivedCommandKey=i,e._derivedCommandsDirty=r,!l(e._derivedCommandPacks)&&e._frontFaceTranslucent&&(e._derivedCommandPacks=Nrt())}function Yj(e,t,n,i,o){let r=0,s=e._frontFaceTranslucent,a=e._backFaceTranslucent;if(!s)return r;let c=t.cameraUnderground,u=e._requiresManualDepthTest,f=i?ea.PICK_FRONT_FACE:u?ea.TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:ea.TRANSLUCENT_FRONT_FACE,d=i?ea.PICK_BACK_FACE:u?ea.TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:ea.TRANSLUCENT_BACK_FACE;return t.mode===ne.SCENE2D?(o[r++]=ea.DEPTH_ONLY_FRONT_FACE,o[r++]=f,r):(a?(n||(o[r++]=ea.DEPTH_ONLY_FRONT_AND_BACK_FACE),c?(o[r++]=f,o[r++]=d):(o[r++]=d,o[r++]=f)):c?(n||(o[r++]=ea.DEPTH_ONLY_BACK_FACE),o[r++]=ea.OPAQUE_FRONT_FACE,o[r++]=d):(n||(o[r++]=ea.DEPTH_ONLY_FRONT_FACE),o[r++]=ea.OPAQUE_BACK_FACE,o[r++]=f),r)}function hf(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function Rpe(e,t){return e.indexOf(t)>-1}function Trt(e,t){hf(e.defines,"TRANSLUCENT"),hf(t.defines,"TRANSLUCENT")}function Ert(e,t){hf(e.defines,"GROUND_ATMOSPHERE"),hf(t.defines,"GROUND_ATMOSPHERE"),hf(e.defines,"FOG"),hf(t.defines,"FOG"),hf(e.defines,"TRANSLUCENT"),hf(t.defines,"TRANSLUCENT")}function qj(e,t){if(Rpe(t.defines,"TILE_LIMIT_RECTANGLE")||Rpe(t.defines,"ENABLE_CLIPPING_PLANES"))return;let n=`void main() +{ + out_FragColor = vec4(1.0); +} +`;t.sources=[n]}function Xj(e,t){let n=t.sources,i=n.length;for(let r=0;r<i;++r)n[r]=He.replaceMain(n[r],"czm_globe_translucency_main");let o=` + +uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; +#ifdef MANUAL_DEPTH_TEST + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + if (logDepthOrDepth != 0.0) + { + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + float depthEC = eyeCoordinate.z / eyeCoordinate.w; + if (v_positionEC.z < depthEC) + { + discard; + } + } +#endif + czm_globe_translucency_main(); + vec4 classificationColor = texture(u_classificationTexture, st); + if (classificationColor.a > 0.0) + { + // Reverse premultiplication process to get the correct composited result of the classification primitives + classificationColor.rgb /= classificationColor.a; + } + out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a); +} +`;n.push(o)}function zpe(e,t){Xj(e,t),hf(e.defines,"GROUND_ATMOSPHERE"),hf(t.defines,"GROUND_ATMOSPHERE"),hf(e.defines,"FOG"),hf(t.defines,"FOG")}function brt(e,t){Xj(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function Srt(e,t){zpe(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function Bpe(e,t){let n=`uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; + vec4 pickColor = texture(u_classificationTexture, st); + if (pickColor == vec4(0.0)) + { + discard; + } + out_FragColor = pickColor; +} +`;t.sources=[n]}function wrt(e,t,n,i,o,r){if(!l(o))return t;if(!i&&l(n))return n;let s=e.shaderCache.getDerivedShaderProgram(t,r);if(!l(s)){let a=t._attributeLocations,c=t.vertexShaderSource.clone(),u=t.fragmentShaderSource.clone();c.defines=l(c.defines)?c.defines.slice(0):[],u.defines=l(u.defines)?u.defines.slice(0):[],o(c,u),s=e.shaderCache.createDerivedShaderProgram(t,r,{vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:a})}return s}function vrt(e){e.cull.face=gi.BACK,e.cull.enabled=!0}function Drt(e){e.cull.face=gi.FRONT,e.cull.enabled=!0}function Irt(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Prt(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Ort(e){e.cull.enabled=!1,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Lpe(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.depthMask=!1,e.blending=mn.ALPHA_BLEND}function Npe(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.depthMask=!1,e.blending=mn.ALPHA_BLEND}function Mrt(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.blending.enabled=!1}function Rrt(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.blending.enabled=!1}function Brt(e,t,n,i,o){if(!l(i))return e;if(!n&&l(t))return t;let r=o[e.id];if(!l(r)){let s=ze.getState(e);i(s),r=ze.fromCache(s),o[e.id]=r}return r}function $E(e){return{u_classificationTexture:function(){return e._globeTranslucencyFramebuffer.classificationTexture}}}function Lrt(e,t,n,i,o){return l(o)?!i&&l(n)?n:gt(t,o(e),!1):t}function Fd(e){this.pass=e.pass,this.pickOnly=e.pickOnly,this.getShaderProgramFunction=e.getShaderProgramFunction,this.getRenderStateFunction=e.getRenderStateFunction,this.getUniformMapFunction=e.getUniformMapFunction,this.renderStateCache={}}function Nrt(){return[new Fd({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:Trt,getRenderStateFunction:vrt,getUniformMapFunction:void 0}),new Fd({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:Ert,getRenderStateFunction:Drt,getUniformMapFunction:void 0}),new Fd({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:qj,getRenderStateFunction:Irt,getUniformMapFunction:void 0}),new Fd({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:qj,getRenderStateFunction:Prt,getUniformMapFunction:void 0}),new Fd({pass:be.GLOBE,pickOnly:!1,getShaderProgramFunction:qj,getRenderStateFunction:Ort,getUniformMapFunction:void 0}),new Fd({pass:be.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Xj,getRenderStateFunction:Lpe,getUniformMapFunction:$E}),new Fd({pass:be.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:zpe,getRenderStateFunction:Npe,getUniformMapFunction:$E}),new Fd({pass:be.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:brt,getRenderStateFunction:Lpe,getUniformMapFunction:$E}),new Fd({pass:be.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Srt,getRenderStateFunction:Npe,getUniformMapFunction:$E}),new Fd({pass:be.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:Bpe,getRenderStateFunction:Mrt,getUniformMapFunction:$E}),new Fd({pass:be.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:Bpe,getRenderStateFunction:Rrt,getUniformMapFunction:$E})]}var Fpe=new Array(PA),Upe=new Array(PA);OA.prototype.updateDerivedCommands=function(e,t){let n=this._derivedCommandTypesToUpdate,i=this._derivedCommandsToUpdateLength;if(i!==0){for(let o=0;o<i;++o)Upe[o]=this._derivedCommandPacks[n[o]],Fpe[o]=kpe[n[o]];Frt(this,e,i,n,Fpe,Upe,t)}};function Frt(e,t,n,i,o,r,s){let a=t.derivedCommands.globeTranslucency,c=e._derivedCommandsDirty;if(t.dirty||!l(a)||c){t.dirty=!1,l(a)||(a={},t.derivedCommands.globeTranslucency=a);let u=s.frameNumber,f=y(a.uniformMapDirtyFrame,0),d=y(a.shaderProgramDirtyFrame,0),p=y(a.renderStateDirtyFrame,0),g=a.uniformMap!==t.uniformMap,h=a.shaderProgramId!==t.shaderProgram.id,A=a.renderStateId!==t.renderState.id;g&&(a.uniformMapDirtyFrame=u),h&&(a.shaderProgramDirtyFrame=u),A&&(a.renderStateDirtyFrame=u),a.uniformMap=t.uniformMap,a.shaderProgramId=t.shaderProgram.id,a.renderStateId=t.renderState.id;for(let x=0;x<n;++x){let C=r[x],T=i[x],E=o[x],S=a[E],v,D,O;l(S)?(v=S.uniformMap,D=S.shaderProgram,O=S.renderState):(v=void 0,D=void 0,O=void 0),S=it.shallowClone(t,S),a[E]=S;let M=y(S.derivedCommands.uniformMapDirtyFrame,0),L=y(S.derivedCommands.shaderProgramDirtyFrame,0),N=y(S.derivedCommands.renderStateDirtyFrame,0),_=g||M<f,b=h||L<d,w=A||N<p;_&&(S.derivedCommands.uniformMapDirtyFrame=u),b&&(S.derivedCommands.shaderProgramDirtyFrame=u),w&&(S.derivedCommands.renderStateDirtyFrame=u),S.derivedCommands.type=T,S.pass=C.pass,S.pickOnly=C.pickOnly,S.uniformMap=Lrt(e,t.uniformMap,v,_,C.getUniformMapFunction),S.shaderProgram=wrt(s.context,t.shaderProgram,D,b,C.getShaderProgramFunction,E),S.renderState=Brt(t.renderState,O,w,C.getRenderStateFunction,C.renderStateCache)}}}OA.prototype.pushDerivedCommands=function(e,t,n){let i=n.passes.pick;if(i&&t)return;let o=this._derivedCommandTypes,r=this._derivedCommandsLength;if(i?(o=this._derivedPickCommandTypes,r=this._derivedPickCommandsLength):t&&(o=this._derivedBlendCommandTypes,r=this._derivedBlendCommandsLength),r===0){n.commandList.push(e);return}let s=e.derivedCommands.globeTranslucency;for(let a=0;a<r;++a){let c=kpe[o[a]];n.commandList.push(s[c])}};function Hpe(e,t,n,i,o,r,s){for(let a=0;a<t;++a){let c=e[a],u=c.derivedCommands.type;(!l(s)||s.indexOf(u)>-1)&&n(c,i,o,r)}}function Vpe(e,t,n,i,o,r){for(let s=0;s<t;++s)n(e[s],i,o,r)}var Urt=[ea.OPAQUE_FRONT_FACE,ea.OPAQUE_BACK_FACE],Vrt=[ea.DEPTH_ONLY_FRONT_FACE,ea.DEPTH_ONLY_BACK_FACE,ea.DEPTH_ONLY_FRONT_AND_BACK_FACE];OA.prototype.executeGlobeCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[be.GLOBE],a=e.indices[be.GLOBE];a!==0&&(this._globeTranslucencyFramebuffer=n,n.clearClassification(r,o),Hpe(s,a,t,i,r,o,Urt))};OA.prototype.executeGlobeClassificationCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[be.GLOBE],a=e.indices[be.GLOBE],c=e.commands[be.TERRAIN_CLASSIFICATION],u=e.indices[be.TERRAIN_CLASSIFICATION];if(a===0||u===0)return;let f=this._frontFaceTranslucent,d=this._backFaceTranslucent;if((!f||!d)&&Vpe(c,u,t,i,r,o),!f&&!d)return;this._globeTranslucencyFramebuffer=n;let p=r.uniformState.globeDepthTexture,g=o.framebuffer;if(o.framebuffer=n.classificationFramebuffer,Hpe(s,a,t,i,r,o,Vrt),r.depthTexture){let h=n.packDepth(r,o);r.uniformState.globeDepthTexture=h}Vpe(c,u,t,i,r,o),r.uniformState.globeDepthTexture=p,o.framebuffer=g};var LV=OA;var fu=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(colorTexture, v_textureCoordinates); +} +`;function sh(){this._numSamples=1,this.previousFramebuffer=void 0,this._previousFramebuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this._fbo=new mi({depthStencil:!0,createDepthAttachments:!1}),this._fboClassified=new mi({depthStencil:!0,createDepthAttachments:!1}),this._rsUnclassified=void 0,this._rsClassified=void 0,this._unclassifiedCommand=void 0,this._classifiedCommand=void 0,this._translucentCommand=void 0,this._clearColorCommand=new oi({color:new z(0,0,0,0),owner:this}),this._clearCommand=new oi({color:new z(0,0,0,0),depth:1,stencil:0});let e=this;this._uniformMap={colorTexture:function(){return e._fbo.getColorTexture()},depthTexture:function(){return e._depthStencilTexture},classifiedTexture:function(){return e._fboClassified.getColorTexture()}}}Object.defineProperties(sh.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}});sh.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var krt={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Hn.EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Hn.NEVER,reference:0,mask:Ft.CLASSIFICATION_MASK},blending:mn.ALPHA_BLEND},zrt={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Hn.NOT_EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Hn.NEVER,reference:0,mask:Ft.CLASSIFICATION_MASK},blending:mn.ALPHA_BLEND},Hrt={depthMask:!0,depthTest:{enabled:!0},stencilTest:Ft.setCesium3DTileBit(),stencilMask:Ft.CESIUM_3D_TILE_MASK,blending:mn.ALPHA_BLEND},Grt=`uniform sampler2D colorTexture; +uniform sampler2D depthTexture; +uniform sampler2D classifiedTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } + bool isClassified = all(equal(texture(classifiedTexture, v_textureCoordinates), vec4(0.0))); +#ifdef UNCLASSIFIED + vec4 highlightColor = czm_invertClassificationColor; + if (isClassified) + { + discard; + } +#else + vec4 highlightColor = vec4(1.0); + if (!isClassified) + { + discard; + } +#endif + out_FragColor = color * highlightColor; + gl_FragDepth = texture(depthTexture, v_textureCoordinates).r; +} +`,Wrt=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } +#ifdef UNCLASSIFIED + out_FragColor = color * czm_invertClassificationColor; +#else + out_FragColor = color; +#endif +} +`;sh.prototype.update=function(e,t,n){let i=this._fbo.getColorTexture(),o=this.previousFramebuffer!==this._previousFramebuffer;this._previousFramebuffer=this.previousFramebuffer;let r=this._numSamples!==t,s=e.drawingBufferWidth,a=e.drawingBufferHeight,c=!l(i)||i.width!==s||i.height!==a;if((c||o||r)&&(this._numSamples=t,this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._previousFramebuffer)||(this._depthStencilTexture=new Bt({context:e,width:s,height:a,pixelFormat:lt.DEPTH_STENCIL,pixelDatatype:Je.UNSIGNED_INT_24_8}),t>1&&(this._depthStencilRenderbuffer=new vu({context:e,width:s,height:a,format:zc.DEPTH24_STENCIL8,numSamples:t})))),!l(this._fbo.framebuffer)||c||o||r){this._fbo.destroy(),this._fboClassified.destroy();let u,f;l(this._previousFramebuffer)?(u=n.getDepthStencilTexture(),f=n.getDepthStencilRenderbuffer()):(u=this._depthStencilTexture,f=this._depthStencilRenderbuffer),this._fbo.setDepthStencilTexture(u),l(f)&&this._fbo.setDepthStencilRenderbuffer(f),this._fbo.update(e,s,a,t),l(this._previousFramebuffer)||(this._fboClassified.setDepthStencilTexture(u),this._fboClassified.update(e,s,a))}if(l(this._rsUnclassified)||(this._rsUnclassified=ze.fromCache(krt),this._rsClassified=ze.fromCache(zrt),this._rsDefault=ze.fromCache(Hrt)),!l(this._unclassifiedCommand)||o||r){l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());let u=l(this._previousFramebuffer)?Wrt:Grt,f=new He({defines:["UNCLASSIFIED"],sources:[u]}),d=new He({sources:[u]});this._unclassifiedCommand=e.createViewportQuadCommand(f,{renderState:l(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(d,{renderState:l(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),l(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),l(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(fu,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}};sh.prototype.prepareTextures=function(e,t){this._fbo._numSamples>1&&this._fbo.prepareTextures(e,t)};sh.prototype.clear=function(e,t){l(this._previousFramebuffer)?this._fbo.clear(e,this._clearColorCommand,t):(this._fbo.clear(e,this._clearCommand,t),this._fboClassified.clear(e,this._clearCommand,t))};sh.prototype.executeClassified=function(e,t){if(!l(this._previousFramebuffer)){let n=t.framebuffer;this.prepareTextures(e,!0),t.framebuffer=this._fboClassified.framebuffer,this._translucentCommand.execute(e,t),t.framebuffer=n}this._classifiedCommand.execute(e,t)};sh.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)};sh.prototype.isDestroyed=function(){return!1};sh.prototype.destroy=function(){return this._fbo.destroy(),this._fboClassified.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),ue(this)};var VD=sh;function NV(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}Object.defineProperties(NV.prototype,{total:{get:function(){return this._total}}});function my(e){let t=new Array(Ra.NUMBER_OF_JOB_TYPES);t[Ra.TEXTURE]=new NV(l(e)?e[Ra.TEXTURE]:10),t[Ra.PROGRAM]=new NV(l(e)?e[Ra.PROGRAM]:10),t[Ra.BUFFER]=new NV(l(e)?e[Ra.BUFFER]:30);let n=t.length,i,o=0;for(i=0;i<n;++i)o+=t[i].total;let r=new Array(n);for(i=0;i<n;++i)r[i]=!1;this._totalBudget=o,this._totalUsedThisFrame=0,this._budgets=t,this._executedThisFrame=r}my.getTimestamp=Ci;Object.defineProperties(my.prototype,{totalBudget:{get:function(){return this._totalBudget}}});my.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget};my.prototype.resetBudgets=function(){let e=this._budgets,t=e.length;for(let n=0;n<t;++n){let i=e[n];i.starvedLastFrame=i.starvedThisFrame,i.starvedThisFrame=!1,i.usedThisFrame=0,i.stolenFromMeThisFrame=0}this._totalUsedThisFrame=0};my.prototype.execute=function(e,t){let n=this._budgets,i=n[t],o=this._executedThisFrame[t];if(this._totalUsedThisFrame>=this._totalBudget&&o)return i.starvedThisFrame=!0,!1;let r;if(i.usedThisFrame+i.stolenFromMeThisFrame>=i.total){let c=n.length,u;for(u=0;u<c&&(r=n[u],!(r.usedThisFrame+r.stolenFromMeThisFrame<r.total&&!r.starvedLastFrame));++u);if(u===c&&o)return!1;o&&(i.starvedThisFrame=!0)}let s=my.getTimestamp();e.execute();let a=my.getTimestamp()-s;return this._totalUsedThisFrame+=a,r?r.stolenFromMeThisFrame+=a:i.usedThisFrame+=a,this._executedThisFrame[t]=!0,!0};var FV=my;function UV(e){e=y(e,y.EMPTY_OBJECT);let t=On(e.container);this._container=t;let n=document.createElement("div");n.className="cesium-performanceDisplay";let i=document.createElement("div");i.className="cesium-performanceDisplay-fps",this._fpsText=document.createTextNode(""),i.appendChild(this._fpsText);let o=document.createElement("div");o.className="cesium-performanceDisplay-ms",this._msText=document.createTextNode(""),o.appendChild(this._msText),n.appendChild(o),n.appendChild(i),this._container.appendChild(n),this._lastFpsSampleTime=Ci(),this._lastMsSampleTime=Ci(),this._fpsFrameCount=0,this._msFrameCount=0,this._throttled=!1;let r=document.createElement("div");r.className="cesium-performanceDisplay-throttled",this._throttledText=document.createTextNode(""),r.appendChild(this._throttledText),n.appendChild(r)}Object.defineProperties(UV.prototype,{throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(e?this._throttledText.nodeValue="(throttled)":this._throttledText.nodeValue="",this._throttled=e)}}});UV.prototype.update=function(e){let t=Ci(),n=y(e,!0);this._fpsFrameCount++;let i=t-this._lastFpsSampleTime;if(i>1e3){let r="N/A";n&&(r=this._fpsFrameCount*1e3/i|0),this._fpsText.nodeValue=`${r} FPS`,this._lastFpsSampleTime=t,this._fpsFrameCount=0}this._msFrameCount++;let o=t-this._lastMsSampleTime;if(o>200){let r="N/A";n&&(r=(o/this._msFrameCount).toFixed(2)),this._msText.nodeValue=`${r} MS`,this._lastMsSampleTime=t,this._msFrameCount=0}};UV.prototype.destroy=function(){return ue(this)};var hy=UV;function MA(){this._framebuffer=new mi,this._textureToCopy=void 0,this._copyDepthCommand=void 0}Object.defineProperties(MA.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function jrt(e,t,n){let i=n.width,o=n.height;e._framebuffer.update(t,i,o)}function Yrt(e,t,n){if(!l(e._copyDepthCommand)){let i=`uniform highp sampler2D u_texture; +in vec2 v_textureCoordinates; +void main() +{ + out_FragColor = czm_packDepth(texture(u_texture, v_textureCoordinates).r); +} +`;e._copyDepthCommand=t.createViewportQuadCommand(i,{renderState:ze.fromCache(),uniformMap:{u_texture:function(){return e._textureToCopy}},owner:e})}e._textureToCopy=n,e._copyDepthCommand.framebuffer=e.framebuffer}MA.prototype.update=function(e,t){jrt(this,e,t),Yrt(this,e,t)};var qrt=new re,Xrt=new re(1,1/255,1/65025,1/16581375);MA.prototype.getDepth=function(e,t,n){if(!l(this.framebuffer))return;let i=e.readPixels({x:t,y:n,width:1,height:1,framebuffer:this.framebuffer}),o=re.unpack(i,0,qrt);return re.divideByScalar(o,255,o),re.dot(o,Xrt)};MA.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)};MA.prototype.isDestroyed=function(){return!1};MA.prototype.destroy=function(){return this._framebuffer.destroy(),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=l(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy()),ue(this)};var VV=MA;function Krt(e,t){this.near=y(e,0),this.far=y(t,0);let n=be.NUMBER_OF_PASSES,i=new Array(n),o=new Array(n);for(let r=0;r<n;++r)i[r]=[],o[r]=0;this.commands=i,this.indices=o}var kV=Krt;var RA=`uniform highp sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = czm_packDepth(texture(u_depthTexture, v_textureCoordinates).r); +} +`;function ah(){this._picking=!1,this._numSamples=1,this._tempCopyDepthTexture=void 0,this._pickColorFramebuffer=new mi({depthStencil:!0,supportsDepthTexture:!0}),this._outputFramebuffer=new mi({depthStencil:!0,supportsDepthTexture:!0}),this._copyDepthFramebuffer=new mi,this._tempCopyDepthFramebuffer=new mi,this._updateDepthFramebuffer=new mi({createColorAttachments:!1,createDepthAttachments:!1,depthStencil:!0}),this._clearGlobeColorCommand=void 0,this._copyColorCommand=void 0,this._copyDepthCommand=void 0,this._tempCopyDepthCommand=void 0,this._updateDepthCommand=void 0,this._viewport=new Ke,this._rs=void 0,this._rsBlend=void 0,this._rsUpdate=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0,this._clearGlobeDepth=void 0}Object.defineProperties(ah.prototype,{colorFramebufferManager:{get:function(){return this._picking?this._pickColorFramebuffer:this._outputFramebuffer}},framebuffer:{get:function(){return this.colorFramebufferManager.framebuffer}},depthStencilTexture:{get:function(){return this.colorFramebufferManager.getDepthStencilTexture()}},picking:{get:function(){return this._picking},set:function(e){this._picking=e}}});function Jrt(e){e._pickColorFramebuffer.destroy(),e._outputFramebuffer.destroy(),e._copyDepthFramebuffer.destroy(),e._tempCopyDepthFramebuffer.destroy(),e._updateDepthFramebuffer.destroy()}function Gpe(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!Ke.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,Ke.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=Ke.clone(o.viewport,e._scissorRectangle),s=!0),(!l(e._rs)||!Ke.equals(e._viewport,e._rs.viewport)||s)&&(e._rs=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}}),e._rsBlend=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:mn.ALPHA_BLEND}),e._rsUpdate=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Hn.EQUAL,frontOperation:{fail:ht.KEEP,zFail:ht.KEEP,zPass:ht.KEEP},backFunction:Hn.NEVER,reference:Ft.CESIUM_3D_TILE_MASK,mask:Ft.CESIUM_3D_TILE_MASK}})),l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(RA,{uniformMap:{u_depthTexture:function(){return e.colorFramebufferManager.getDepthStencilTexture()}},owner:e})),e._copyDepthCommand.framebuffer=e._copyDepthFramebuffer.framebuffer,e._copyDepthCommand.renderState=e._rs,l(e._copyColorCommand)||(e._copyColorCommand=t.createViewportQuadCommand(fu,{uniformMap:{colorTexture:function(){return e.colorFramebufferManager.getColorTexture()}},owner:e})),e._copyColorCommand.renderState=e._rs,l(e._tempCopyDepthCommand)||(e._tempCopyDepthCommand=t.createViewportQuadCommand(RA,{uniformMap:{u_depthTexture:function(){return e._tempCopyDepthTexture}},owner:e})),e._tempCopyDepthCommand.framebuffer=e._tempCopyDepthFramebuffer.framebuffer,e._tempCopyDepthCommand.renderState=e._rs,l(e._updateDepthCommand)||(e._updateDepthCommand=t.createViewportQuadCommand(fu,{uniformMap:{colorTexture:function(){return e._tempCopyDepthFramebuffer.getColorTexture()}},owner:e})),e._updateDepthCommand.framebuffer=e._updateDepthFramebuffer.framebuffer,e._updateDepthCommand.renderState=e._rsUpdate,l(e._clearGlobeColorCommand)||(e._clearGlobeColorCommand=new oi({color:new z(0,0,0,0),stencil:0,owner:e})),e._clearGlobeColorCommand.framebuffer=e.framebuffer}ah.prototype.update=function(e,t,n,i,o,r){let s=n.width,a=n.height,c=o?e.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT:Je.UNSIGNED_BYTE;this._numSamples=i,this.picking?this._pickColorFramebuffer.update(e,s,a):this._outputFramebuffer.update(e,s,a,i,c),this._copyDepthFramebuffer.update(e,s,a),Gpe(this,e,s,a,t),e.uniformState.globeDepthTexture=void 0,this._useHdr=o,this._clearGlobeDepth=r};ah.prototype.prepareColorTextures=function(e,t){!this.picking&&this._numSamples>1&&this._outputFramebuffer.prepareTextures(e,t)};ah.prototype.executeCopyDepth=function(e,t){l(this._copyDepthCommand)&&(this.prepareColorTextures(e),this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._copyDepthFramebuffer.getColorTexture())};ah.prototype.executeUpdateDepth=function(e,t,n,i){let o=l(i)?i:t.framebuffer.depthStencilTexture;if(n||o!==this.colorFramebufferManager.getDepthStencilTexture()){if(l(this._updateDepthCommand)){if(!l(this._updateDepthFramebuffer.framebuffer)||this._updateDepthFramebuffer.getDepthStencilTexture()!==o||this._updateDepthFramebuffer.getColorTexture()!==this._copyDepthFramebuffer.getColorTexture()){let r=this._copyDepthFramebuffer.getColorTexture().width,s=this._copyDepthFramebuffer.getColorTexture().height;this._tempCopyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.update(e,r,s);let a=this._copyDepthFramebuffer.getColorTexture();this._updateDepthFramebuffer.setColorTexture(a,0),this._updateDepthFramebuffer.setDepthStencilTexture(o),this._updateDepthFramebuffer.update(e,r,s),Gpe(this,e,r,s,t)}this._tempCopyDepthTexture=o,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)}return}l(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t)};ah.prototype.executeCopyColor=function(e,t){l(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)};ah.prototype.clear=function(e,t,n){let i=this._clearGlobeColorCommand;l(i)&&(z.clone(n,i.color),this.colorFramebufferManager.clear(e,i,t))};ah.prototype.isDestroyed=function(){return!1};ah.prototype.destroy=function(){return Jrt(this),l(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy()),l(this._tempCopyDepthCommand)&&(this._tempCopyDepthCommand.shaderProgram=this._tempCopyDepthCommand.shaderProgram.destroy()),l(this._updateDepthCommand)&&(this._updateDepthCommand.shaderProgram=this._updateDepthCommand.shaderProgram.destroy()),ue(this)};var zV=ah;function BA(){this._framebuffer=new mi({depthStencil:!0,supportsDepthTexture:!0}),this._packedDepthFramebuffer=new mi,this._renderState=void 0,this._packedDepthCommand=void 0,this._clearCommand=void 0,this._viewport=new Ke,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0}Object.defineProperties(BA.prototype,{classificationTexture:{get:function(){return this._framebuffer.getColorTexture()}},classificationFramebuffer:{get:function(){return this._framebuffer.framebuffer}},packedDepthFramebuffer:{get:function(){return this._packedDepthFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._framebuffer.getDepthStencilTexture()}},depthStencilRenderbuffer:{get:function(){return this._framebuffer.getDepthStencilRenderbuffer()}},packedDepthTexture:{get:function(){return this._packedDepthFramebuffer.getColorTexture()}}});function Zrt(e){e._framebuffer.destroy(),e._packedDepthFramebuffer.destroy()}function Qrt(e,t,n,i,o){let r=o?t.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT:Je.UNSIGNED_BYTE;e._framebuffer.update(t,n,i,1,r),e._packedDepthFramebuffer.update(t,n,i)}function $rt(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!Ke.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,Ke.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=Ke.clone(o.viewport,e._scissorRectangle),s=!0),(!l(e._renderState)||!Ke.equals(e._viewport,e._renderState.viewport)||s)&&(e._renderState=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packedDepthCommand)||(e._packedDepthCommand=t.createViewportQuadCommand(RA,{uniformMap:{u_depthTexture:function(){return e.depthStencilTexture}},owner:e})),l(e._clearCommand)||(e._clearCommand=new oi({color:new z(0,0,0,0),depth:1,stencil:0,owner:e})),e._packedDepthCommand.framebuffer=e._packedDepthFramebuffer.framebuffer,e._packedDepthCommand.renderState=e._renderState,e._clearCommand.framebuffer=e.classificationFramebuffer,e._clearCommand.renderState=e._renderState}BA.prototype.updateAndClear=function(e,t,n,i){let o=t.width,r=t.height;Qrt(this,n,o,r,e),$rt(this,n,o,r,i),this._useHdr=e};BA.prototype.clearClassification=function(e,t){this._clearCommand.execute(e,t)};BA.prototype.packDepth=function(e,t){return this._packedDepthCommand.execute(e,t),this.packedDepthTexture};BA.prototype.isDestroyed=function(){return!1};BA.prototype.destroy=function(){return Zrt(this),ue(this)};var HV=BA;var kD=`#ifdef MRT +layout (location = 0) out vec4 out_FragData_0; +layout (location = 1) out vec4 out_FragData_1; +#else +layout (location = 0) out vec4 out_FragColor; +#endif + +uniform vec4 u_bgColor; +uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + if (texture(u_depthTexture, v_textureCoordinates).r < 1.0) + { +#ifdef MRT + out_FragData_0 = u_bgColor; + out_FragData_1 = vec4(u_bgColor.a); +#else + out_FragColor = u_bgColor; +#endif + return; + } + + discard; +} +`;var GV=`/** + * Compositing for Weighted Blended Order-Independent Transparency. See: + * - http://jcgt.org/published/0002/02/09/ + * - http://casual-effects.blogspot.com/2014/03/weighted-blended-order-independent.html + */ + +uniform sampler2D u_opaque; +uniform sampler2D u_accumulation; +uniform sampler2D u_revealage; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 opaque = texture(u_opaque, v_textureCoordinates); + vec4 accum = texture(u_accumulation, v_textureCoordinates); + float r = texture(u_revealage, v_textureCoordinates).r; + +#ifdef MRT + vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a); +#else + vec4 transparent = vec4(accum.rgb / clamp(accum.a, 1e-4, 5e4), r); +#endif + + out_FragColor = (1.0 - transparent.a) * transparent + transparent.a * opaque; + + if (opaque != czm_backgroundColor) + { + out_FragColor.a = 1.0; + } +} +`;function Gp(e){this._numSamples=1,this._translucentMultipassSupport=!1,this._translucentMRTSupport=!1;let t=e.colorBufferFloat&&e.depthTexture&&e.floatBlend;this._translucentMRTSupport=e.drawBuffers&&t,this._translucentMultipassSupport=!this._translucentMRTSupport&&t,this._opaqueFBO=void 0,this._opaqueTexture=void 0,this._depthStencilTexture=void 0,this._accumulationTexture=void 0,this._translucentFBO=new mi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._alphaFBO=new mi({createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._adjustTranslucentFBO=new mi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1}),this._adjustAlphaFBO=new mi({createColorAttachments:!1}),this._opaqueClearCommand=new oi({color:new z(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new oi({color:new z(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new oi({color:new z(0,0,0,0),owner:this}),this._alphaClearCommand=new oi({color:new z(1,1,1,1),owner:this}),this._translucentRenderStateCache={},this._alphaRenderStateCache={},this._compositeCommand=void 0,this._adjustTranslucentCommand=void 0,this._adjustAlphaCommand=void 0,this._viewport=new Ke,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function Wpe(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function Kj(e){e._translucentFBO.destroy(),e._alphaFBO.destroy(),e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO.destroy()}function jpe(e){Wpe(e),Kj(e)}function est(e,t,n,i){Wpe(e),e._accumulationTexture=new Bt({context:t,width:n,height:i,pixelFormat:lt.RGBA,pixelDatatype:Je.FLOAT});let o=new Float32Array(n*i*4);e._revealageTexture=new Bt({context:t,pixelFormat:lt.RGBA,pixelDatatype:Je.FLOAT,source:{arrayBufferView:o,width:n,height:i},flipY:!1})}function tst(e,t){Kj(e);let n=te.FRAMEBUFFER_COMPLETE,i=!0,{width:o,height:r}=e._accumulationTexture;if(e._translucentMRTSupport&&(e._translucentFBO.setColorTexture(e._accumulationTexture,0),e._translucentFBO.setColorTexture(e._revealageTexture,1),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture,0),e._adjustTranslucentFBO.setColorTexture(e._revealageTexture,1),e._adjustTranslucentFBO.update(t,o,r),(e._translucentFBO.status!==n||e._adjustTranslucentFBO.status!==n)&&(Kj(e),e._translucentMRTSupport=!1)),!e._translucentMRTSupport){e._translucentFBO.setColorTexture(e._accumulationTexture),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._alphaFBO.setColorTexture(e._revealageTexture),e._alphaFBO.setDepthStencilTexture(e._depthStencilTexture),e._alphaFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture),e._adjustTranslucentFBO.update(t,o,r),e._adjustAlphaFBO.setColorTexture(e._revealageTexture),e._adjustAlphaFBO.update(t,o,r);let s=e._translucentFBO.status===n,a=e._alphaFBO.status===n,c=e._adjustTranslucentFBO.status===n,u=e._adjustAlphaFBO.status===n;(!s||!a||!c||!u)&&(jpe(e),e._translucentMultipassSupport=!1,i=!1)}return i}Gp.prototype.update=function(e,t,n,i,o){if(!this.isSupported())return;this._opaqueFBO=n,this._opaqueTexture=n.getColorTexture(0),this._depthStencilTexture=n.getDepthStencilTexture();let{width:r,height:s}=this._opaqueTexture,a=this._accumulationTexture,c=!l(a)||a.width!==r||a.height!==s||i!==this._useHDR,u=this._numSamples!==o;if((c||u)&&(this._numSamples=o,est(this,e,r,s)),(!l(this._translucentFBO.framebuffer)||c||u)&&!tst(this,e))return;this._useHDR=i;let f=this,d,p;l(this._compositeCommand)||(d=new He({sources:[GV]}),this._translucentMRTSupport&&d.defines.push("MRT"),p={u_opaque:function(){return f._opaqueTexture},u_accumulation:function(){return f._accumulationTexture},u_revealage:function(){return f._revealageTexture}},this._compositeCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})),l(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(d=new He({defines:["MRT"],sources:[kD]}),p={u_bgColor:function(){return f._translucentMRTClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})):this._translucentMultipassSupport&&(d=new He({sources:[kD]}),p={u_bgColor:function(){return f._translucentMultipassClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}),p={u_bgColor:function(){return f._alphaClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustAlphaCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}))),this._viewport.width=r,this._viewport.height=s;let g=!Ke.equals(this._viewport,t.viewport),h=g!==this._useScissorTest;this._useScissorTest=g,Ke.equals(this._scissorRectangle,t.viewport)||(this._scissorRectangle=Ke.clone(t.viewport,this._scissorRectangle),h=!0),(!l(this._rs)||!Ke.equals(this._viewport,this._rs.viewport)||h)&&(this._rs=ze.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),l(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)};var nst={enabled:!0,color:new z(0,0,0,0),equationRgb:Da.ADD,equationAlpha:Da.ADD,functionSourceRgb:Eo.ONE,functionDestinationRgb:Eo.ONE,functionSourceAlpha:Eo.ZERO,functionDestinationAlpha:Eo.ONE_MINUS_SOURCE_ALPHA},ist={enabled:!0,color:new z(0,0,0,0),equationRgb:Da.ADD,equationAlpha:Da.ADD,functionSourceRgb:Eo.ONE,functionDestinationRgb:Eo.ONE,functionSourceAlpha:Eo.ONE,functionDestinationAlpha:Eo.ONE},ost={enabled:!0,color:new z(0,0,0,0),equationRgb:Da.ADD,equationAlpha:Da.ADD,functionSourceRgb:Eo.ZERO,functionDestinationRgb:Eo.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:Eo.ZERO,functionDestinationAlpha:Eo.ONE_MINUS_SOURCE_ALPHA};function Jj(e,t,n,i){let o=n[i.id];if(!l(o)){let r=ze.getState(i);r.depthMask=!1,r.blending=t,o=ze.fromCache(r),n[i.id]=o}return o}function rst(e,t,n){return Jj(t,nst,e._translucentRenderStateCache,n)}function sst(e,t,n){return Jj(t,ist,e._translucentRenderStateCache,n)}function ast(e,t,n){return Jj(t,ost,e._alphaRenderStateCache,n)}var cst=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragData_0 = vec4(Ci * wzi, ai); + out_FragData_1 = vec4(ai * wzi); +`,lst=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragColor = vec4(Ci, ai) * wzi; +`,ust=` float ai = czm_out_FragColor.a; + out_FragColor = vec4(ai); +`;function Zj(e,t,n,i){let{shaderCache:o}=e,r=o.getDerivedShaderProgram(t,n);if(l(r))return r;let s=t._attributeLocations,a=t.fragmentShaderSource.clone();a.sources=a.sources.map(function(f){return He.replaceMain(f,"czm_translucent_main").replace(/out_FragColor/g,"czm_out_FragColor").replace(/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,"").replace(/\bdiscard\b/g,"czm_discard = true").replace(/czm_phong/g,"czm_translucentPhong")}),a.sources.splice(0,0,`vec4 czm_out_FragColor; +bool czm_discard = false; +`);let c=[...i.matchAll(/out_FragData_(\d+)/g)],u="";for(let f=0;f<c.length;f++){let d=c[f];u=`layout (location = ${d[1]}) out vec4 ${d[0]}; +${u}`}return a.sources.push(u),a.sources.push(`void main() +{ + czm_translucent_main(); + if (czm_discard) + { + discard; + } +${i}} +`),o.createDerivedShaderProgram(t,n,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:a,attributeLocations:s})}function fst(e,t){return Zj(e,t,"translucentMRT",cst)}function dst(e,t){return Zj(e,t,"translucentMultipass",lst)}function mst(e,t){return Zj(e,t,"alphaMultipass",ust)}Gp.prototype.createDerivedCommands=function(e,t,n){if(l(n)||(n={}),this._translucentMRTSupport){let a,c;return l(n.translucentCommand)&&(a=n.translucentCommand.shaderProgram,c=n.translucentCommand.renderState),n.translucentCommand=it.shallowClone(e,n.translucentCommand),!l(a)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=fst(t,e.shaderProgram),n.translucentCommand.renderState=rst(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=a,n.translucentCommand.renderState=c),n}let i,o,r,s;return l(n.translucentCommand)&&(i=n.translucentCommand.shaderProgram,o=n.translucentCommand.renderState,r=n.alphaCommand.shaderProgram,s=n.alphaCommand.renderState),n.translucentCommand=it.shallowClone(e,n.translucentCommand),n.alphaCommand=it.shallowClone(e,n.alphaCommand),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=dst(t,e.shaderProgram),n.translucentCommand.renderState=sst(this,t,e.renderState),n.alphaCommand.shaderProgram=mst(t,e.shaderProgram),n.alphaCommand.renderState=ast(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=i,n.translucentCommand.renderState=o,n.alphaCommand.shaderProgram=r,n.alphaCommand.renderState=s),n};function hst(e,t,n,i,o,r){let s,a,c,{context:u,frameState:f}=t,{useLogDepth:d,shadowState:p}=f,g=t._hdr,h=i.framebuffer,A=p.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(u,i),i.framebuffer=e._adjustAlphaFBO.framebuffer,e._adjustAlphaCommand.execute(u,i);let x=e._opaqueFBO.framebuffer;for(i.framebuffer=e._translucentFBO.framebuffer,c=0;c<o.length;++c)s=o[c],s=d?s.derivedCommands.logDepth.command:s,s=g?s.derivedCommands.hdr.command:s,a=A&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,u,i,x);for(l(r)&&(s=r.unclassifiedCommand,a=A&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,n(a,t,u,i,x)),i.framebuffer=e._alphaFBO.framebuffer,c=0;c<o.length;++c)s=o[c],s=d?s.derivedCommands.logDepth.command:s,s=g?s.derivedCommands.hdr.command:s,a=A&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,u,i,x);l(r)&&(s=r.unclassifiedCommand,a=A&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,n(a,t,u,i,x)),i.framebuffer=h}function pst(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:u}=a,f=t._hdr,d=i.framebuffer,p=u.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;let h,A;for(let x=0;x<o.length;++x)h=o[x],h=c?h.derivedCommands.logDepth.command:h,h=f?h.derivedCommands.hdr.command:h,A=p&&h.receiveShadows?h.derivedCommands.oit.shadows.translucentCommand:h.derivedCommands.oit.translucentCommand,n(A,t,s,i,g);l(r)&&(h=r.unclassifiedCommand,A=p&&h.receiveShadows?h.derivedCommands.oit.shadows.translucentCommand:h.derivedCommands.oit.translucentCommand,n(A,t,s,i,g)),i.framebuffer=d}Gp.prototype.executeCommands=function(e,t,n,i,o){if(this._translucentMRTSupport){pst(this,e,t,n,i,o);return}hst(this,e,t,n,i,o)};Gp.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)};Gp.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this._opaqueFBO.framebuffer,z.clone(n,this._opaqueClearCommand.color),this._opaqueClearCommand.execute(e,t),t.framebuffer=this._translucentFBO.framebuffer,(this._translucentMRTSupport?this._translucentMRTClearCommand:this._translucentMultipassClearCommand).execute(e,t),this._translucentMultipassSupport&&(t.framebuffer=this._alphaFBO.framebuffer,this._alphaClearCommand.execute(e,t)),t.framebuffer=i};Gp.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport};Gp.prototype.isDestroyed=function(){return!1};Gp.prototype.destroy=function(){return jpe(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),ue(this)};var WV=Gp;function zD(){this._framebuffer=new mi({color:!1,depthStencil:!0,supportsDepthTexture:!0}),this._passState=void 0}Object.defineProperties(zD.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function _st(e){e._framebuffer.destroy()}function gst(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i);let o=new ac(t);o.blendingEnabled=!1,o.scissorTest={enabled:!0,rectangle:new Ke},o.viewport=new Ke,e._passState=o}zD.prototype.update=function(e,t,n){let i=n.width,o=n.height;this._framebuffer.isDirty(i,o)&&gst(this,e);let r=this.framebuffer,s=this._passState;return s.framebuffer=r,s.viewport.width=i,s.viewport.height=o,s.scissorTest.rectangle.x=t.x,s.scissorTest.rectangle.y=o-t.y,s.scissorTest.rectangle.width=1,s.scissorTest.rectangle.height=1,s};zD.prototype.isDestroyed=function(){return!1};zD.prototype.destroy=function(){return _st(this),ue(this)};var jV=zD;function GD(e){let t=new ac(e);t.blendingEnabled=!1,t.scissorTest={enabled:!0,rectangle:new Ke},t.viewport=new Ke,this._context=e,this._fb=new mi({depthStencil:!0}),this._passState=t,this._width=0,this._height=0}GD.prototype.begin=function(e,t){let n=this._context,i=t.width,o=t.height;return Ke.clone(e,this._passState.scissorTest.rectangle),this._width=i,this._height=o,this._fb.update(n,i,o),this._passState.framebuffer=this._fb.framebuffer,this._passState.viewport.width=i,this._passState.viewport.height=o,this._passState};var HD=new z;GD.prototype.end=function(e){let t=y(e.width,1),n=y(e.height,1),i=this._context,o=i.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.max(t,n),s=r*r,a=Math.floor(t*.5),c=Math.floor(n*.5),u=0,f=0,d=0,p=-1;for(let g=0;g<s;++g){if(-a<=u&&u<=a&&-c<=f&&f<=c){let h=4*((c-f)*t+u+a);HD.red=z.byteToFloat(o[h]),HD.green=z.byteToFloat(o[h+1]),HD.blue=z.byteToFloat(o[h+2]),HD.alpha=z.byteToFloat(o[h+3]);let A=i.getObjectByPickColor(HD);if(l(A))return A}if(u===f||u<0&&-u===f||u>0&&u===1-f){let h=d;d=-p,p=h}u+=d,f+=p}};GD.prototype.isDestroyed=function(){return!1};GD.prototype.destroy=function(){return this._fb.destroy(),ue(this)};var YV=GD;function Wp(){this._numSamples=1,this._colorFramebuffer=new mi({depthStencil:!0,supportsDepthTexture:!0}),this._idFramebuffer=new mi({depthStencil:!0,supportsDepthTexture:!0}),this._idClearColor=new z(0,0,0,0),this._clearCommand=new oi({color:new z(0,0,0,0),depth:1,owner:this})}function yst(e){e._colorFramebuffer.destroy(),e._idFramebuffer.destroy()}Object.defineProperties(Wp.prototype,{framebuffer:{get:function(){return this._colorFramebuffer.framebuffer}},idFramebuffer:{get:function(){return this._idFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._colorFramebuffer.getDepthStencilTexture()}}});Wp.prototype.update=function(e,t,n,i){let o=t.width,r=t.height,s=n?e.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT:Je.UNSIGNED_BYTE;this._numSamples=i,this._colorFramebuffer.update(e,o,r,i,s),this._idFramebuffer.update(e,o,r)};Wp.prototype.clear=function(e,t,n){z.clone(n,this._clearCommand.color),z.clone(this._idClearColor,this._clearCommand.color),this._colorFramebuffer.clear(e,this._clearCommand,t),this._idFramebuffer.clear(e,this._clearCommand,t)};Wp.prototype.getFramebuffer=function(){return this._colorFramebuffer.framebuffer};Wp.prototype.getIdFramebuffer=function(){return this._idFramebuffer.framebuffer};Wp.prototype.prepareColorTextures=function(e){this._numSamples>1&&this._colorFramebuffer.prepareTextures(e)};Wp.prototype.isDestroyed=function(){return!1};Wp.prototype.destroy=function(){return yst(this),ue(this)};var eb=Wp;function LA(){}LA.getShadowCastShaderKeyword=function(e,t,n,i){return`castShadow ${e} ${t} ${n} ${i}`};LA.createShadowCastVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);i.push("SHADOW_MAP"),n&&i.push("GENERATE_POSITION");let r=He.findPositionVarying(e),s=l(r);if(t&&!s){let a=o.length;for(let u=0;u<a;++u)o[u]=He.replaceMain(o[u],"czm_shadow_cast_main");let c=`out vec3 v_positionEC; +void main() +{ + czm_shadow_cast_main(); + v_positionEC = (czm_inverseProjection * gl_Position).xyz; +}`;o.push(c)}return new He({defines:i,sources:o})};LA.createShadowCastFragmentShader=function(e,t,n,i){let o=e.defines.slice(0),r=e.sources.slice(0);o.push("SHADOW_MAP");let s=He.findPositionVarying(e),a=l(s);a||(s="v_positionEC");let c=r.length;for(let f=0;f<c;++f)r[f]=He.replaceMain(r[f],"czm_shadow_cast_main");let u="";return t&&(a||(u+=`in vec3 v_positionEC; +`),u+=`uniform vec4 shadowMap_lightPositionEC; +`),i?u+=`void main() +{ +`:u+=`void main() +{ + czm_shadow_cast_main(); + if (out_FragColor.a == 0.0) + { + discard; + } +`,t?u+=` float distance = length(${s}); + if (distance >= shadowMap_lightPositionEC.w) + { + discard; + } + distance /= shadowMap_lightPositionEC.w; // radius + out_FragColor = czm_packDepth(distance); +`:n?u+=` out_FragColor = vec4(1.0); +`:u+=` out_FragColor = czm_packDepth(gl_FragCoord.z); +`,u+=`} +`,r.push(u),new He({defines:o,sources:r})};LA.getShadowReceiveShaderKeyword=function(e,t,n,i){let o=e._usesDepthTexture,r=e._polygonOffsetSupported,s=e._isPointLight,a=e._isSpotLight,c=e._numberOfCascades>1,u=e.debugCascadeColors,f=e.softShadows;return`receiveShadow ${o}${r}${s}${a}${c}${u}${f}${t}${n}${i}`};LA.createShadowReceiveVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);return i.push("SHADOW_MAP"),t&&(n?i.push("GENERATE_POSITION_AND_NORMAL"):i.push("GENERATE_POSITION")),new He({defines:i,sources:o})};LA.createShadowReceiveFragmentShader=function(e,t,n,i,o){let r=He.findNormalVarying(e),s=!i&&l(r)||i&&o,a=He.findPositionVarying(e),c=l(a),u=t._usesDepthTexture,f=t._polygonOffsetSupported,d=t._isPointLight,p=t._isSpotLight,g=t._numberOfCascades>1,h=t.debugCascadeColors,A=t.softShadows,x=d?t._pointBias:i?t._terrainBias:t._primitiveBias,C=e.defines.slice(0),T=e.sources.slice(0),E=T.length;for(let D=0;D<E;++D)T[D]=He.replaceMain(T[D],"czm_shadow_receive_main");d?C.push("USE_CUBE_MAP_SHADOW"):u&&C.push("USE_SHADOW_DEPTH_TEXTURE"),A&&!d&&C.push("USE_SOFT_SHADOWS"),g&&n&&i&&(s?C.push("ENABLE_VERTEX_LIGHTING"):C.push("ENABLE_DAYNIGHT_SHADING")),n&&x.normalShading&&s&&(C.push("USE_NORMAL_SHADING"),x.normalShadingSmooth>0&&C.push("USE_NORMAL_SHADING_SMOOTH"));let S="";d?S+=`uniform samplerCube shadowMap_textureCube; +`:S+=`uniform sampler2D shadowMap_texture; +`;let v;return c?v=` return vec4(${a}, 1.0); +`:v=`#ifndef LOG_DEPTH + return czm_windowToEyeCoordinates(gl_FragCoord); +#else + return vec4(v_logPositionEC, 1.0); +#endif +`,S+=`uniform mat4 shadowMap_matrix; +uniform vec3 shadowMap_lightDirectionEC; +uniform vec4 shadowMap_lightPositionEC; +uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness; +uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth; +#ifdef LOG_DEPTH +in vec3 v_logPositionEC; +#endif +vec4 getPositionEC() +{ +${v}} +vec3 getNormalEC() +{ +${s?` return normalize(${r}); +`:` return vec3(1.0); +`}} +void applyNormalOffset(inout vec4 positionEC, vec3 normalEC, float nDotL) +{ +${x.normalOffset&&s?` float normalOffset = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.x; + float normalOffsetScale = 1.0 - nDotL; + vec3 offset = normalOffset * normalOffsetScale * normalEC; + positionEC.xyz += offset; +`:""}} +`,S+=`void main() +{ + czm_shadow_receive_main(); + vec4 positionEC = getPositionEC(); + vec3 normalEC = getNormalEC(); + float depth = -positionEC.z; +`,S+=` czm_shadowParameters shadowParameters; + shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy; + shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z; + shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w; + shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w; +`,i?S+=` shadowParameters.depthBias *= max(depth * 0.01, 1.0); +`:f||(S+=` shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015); +`),d?S+=` vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz; + float distance = length(directionEC); + directionEC = normalize(directionEC); + float radius = shadowMap_lightPositionEC.w; + // Stop early if the fragment is beyond the point light radius + if (distance > radius) + { + return; + } + vec3 directionWC = czm_inverseViewRotation * directionEC; + shadowParameters.depth = distance / radius; + shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + shadowParameters.texCoords = directionWC; + float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters); +`:p?S+=` vec3 directionEC = normalize(positionEC.xyz - shadowMap_lightPositionEC.xyz); + float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Spot light uses a perspective projection, so perform the perspective divide + shadowPosition /= shadowPosition.w; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`:g?S+=` float maxDepth = shadowMap_cascadeSplits[1].w; + // Stop early if the eye depth exceeds the last cascade + if (depth > maxDepth) + { + return; + } + // Get the cascade based on the eye-space depth + vec4 weights = czm_cascadeWeights(depth); + // Apply normal offset + float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + // Transform position into the cascade + vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC; + // Get visibility + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); + // Fade out shadows that are far away + float shadowMapMaximumDistance = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.z; + float fade = max((depth - shadowMapMaximumDistance * 0.8) / (shadowMapMaximumDistance * 0.2), 0.0); + visibility = mix(visibility, 1.0, fade); +${h?` // Draw cascade colors for debugging + out_FragColor *= czm_cascadeColor(weights); +`:""}`:S+=` float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`,S+=` out_FragColor.rgb *= visibility; +} +`,T.push(S),new He({defines:C,sources:T})};var jp=LA;function ch(e){e=y(e,y.EMPTY_OBJECT);let t=e.context;this._enabled=y(e.enabled,!0),this._softShadows=y(e.softShadows,!1),this._normalOffset=y(e.normalOffset,!0),this.dirty=!0,this.fromLightSource=y(e.fromLightSource,!0),this.darkness=y(e.darkness,.3),this._darkness=this.darkness,this.fadingEnabled=y(e.fadingEnabled,!0),this.maximumDistance=y(e.maximumDistance,5e3),this._outOfView=!1,this._outOfViewPrevious=!1,this._needsUpdate=!0;let n=!0;(Gt.isInternetExplorer()||Gt.isEdge()||(Gt.isChrome()||Gt.isFirefox())&&Gt.isWindows()&&!t.depthTexture)&&(n=!1),this._polygonOffsetSupported=n,this._terrainBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.5,normalShading:!0,normalShadingSmooth:.3,depthBias:1e-4},this._primitiveBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.1,normalShading:!0,normalShadingSmooth:.05,depthBias:2e-5},this._pointBias={polygonOffset:!1,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:0,normalShading:!0,normalShadingSmooth:.1,depthBias:5e-4},this._depthAttachment=void 0,this._colorAttachment=void 0,this._shadowMapMatrix=new B,this._shadowMapTexture=void 0,this._lightDirectionEC=new m,this._lightPositionEC=new re,this._distance=0,this._lightCamera=e.lightCamera,this._shadowMapCamera=new qV,this._shadowMapCullingVolume=void 0,this._sceneCamera=void 0,this._boundingSphere=new ae,this._isPointLight=y(e.isPointLight,!1),this._pointLightRadius=y(e.pointLightRadius,100),this._cascadesEnabled=this._isPointLight?!1:y(e.cascadesEnabled,!0),this._numberOfCascades=this._cascadesEnabled?y(e.numberOfCascades,4):0,this._fitNearFar=!0,this._maximumCascadeDistances=[25,150,700,Number.MAX_VALUE],this._textureSize=new H,this._isSpotLight=!1,this._cascadesEnabled?this._shadowMapCamera.frustum=new Ir:l(this._lightCamera.frustum.fov)&&(this._isSpotLight=!0),this._cascadeSplits=[new re,new re],this._cascadeMatrices=[new B,new B,new B,new B],this._cascadeDistances=new re;let i;this._isPointLight?i=6:this._cascadesEnabled?i=this._numberOfCascades:i=1,this._passes=new Array(i);for(let o=0;o<i;++o)this._passes[o]=new Ast(t);this.debugShow=!1,this.debugFreezeFrame=!1,this._debugFreezeFrame=!1,this._debugCascadeColors=!1,this._debugLightFrustum=void 0,this._debugCameraFrustum=void 0,this._debugCascadeFrustums=new Array(this._numberOfCascades),this._debugShadowViewCommand=void 0,this._usesDepthTexture=t.depthTexture,this._isPointLight&&(this._usesDepthTexture=!1),this._primitiveRenderState=void 0,this._terrainRenderState=void 0,this._pointRenderState=void 0,$j(this),this._clearCommand=new oi({depth:1,color:new z}),this._clearPassState=new ac(t),this._size=y(e.size,2048),this.size=this._size}ch.MAXIMUM_DISTANCE=2e4;function Ast(e){this.camera=new qV,this.passState=new ac(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function Qj(e,t){return ze.fromCache({cull:{enabled:!0,face:gi.BACK},depthTest:{enabled:!0},colorMask:{red:e,green:e,blue:e,alpha:e},depthMask:!0,polygonOffset:{enabled:t.polygonOffset,factor:t.polygonOffsetFactor,units:t.polygonOffsetUnits}})}function $j(e){let t=!e._usesDepthTexture;e._primitiveRenderState=Qj(t,e._primitiveBias),e._terrainRenderState=Qj(t,e._terrainBias),e._pointRenderState=Qj(t,e._pointBias)}ch.prototype.debugCreateRenderStates=function(){$j(this)};Object.defineProperties(ch.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this.dirty=this._enabled!==e,this._enabled=e}},normalOffset:{get:function(){return this._normalOffset},set:function(e){this.dirty=this._normalOffset!==e,this._normalOffset=e,this._terrainBias.normalOffset=e,this._primitiveBias.normalOffset=e,this._pointBias.normalOffset=e}},softShadows:{get:function(){return this._softShadows},set:function(e){this.dirty=this._softShadows!==e,this._softShadows=e}},size:{get:function(){return this._size},set:function(e){Sst(this,e)}},outOfView:{get:function(){return this._outOfView}},shadowMapCullingVolume:{get:function(){return this._shadowMapCullingVolume}},passes:{get:function(){return this._passes}},isPointLight:{get:function(){return this._isPointLight}},debugCascadeColors:{get:function(){return this._debugCascadeColors},set:function(e){this.dirty=this._debugCascadeColors!==e,this._debugCascadeColors=e}}});function eY(e){let t=e._passes.length;for(let n=0;n<t;++n){let i=e._passes[n],o=i.framebuffer;l(o)&&!o.isDestroyed()&&o.destroy(),i.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function xst(e,t){let n=new vu({context:t,width:e._textureSize.x,height:e._textureSize.y,format:zc.DEPTH_COMPONENT16}),i=new Bt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:lt.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,sampler:dn.NEAREST}),o=new ia({context:t,depthRenderbuffer:n,colorTextures:[i],destroyAttachments:!1}),r=e._passes.length;for(let s=0;s<r;++s){let a=e._passes[s];a.framebuffer=o,a.passState.framebuffer=o}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function Cst(e,t){let n=new Bt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:lt.DEPTH_STENCIL,pixelDatatype:Je.UNSIGNED_INT_24_8,sampler:dn.NEAREST}),i=new ia({context:t,depthStencilTexture:n,destroyAttachments:!1}),o=e._passes.length;for(let r=0;r<o;++r){let s=e._passes[r];s.framebuffer=i,s.passState.framebuffer=i}e._shadowMapTexture=n,e._depthAttachment=n}function Tst(e,t){let n=new vu({context:t,width:e._textureSize.x,height:e._textureSize.y,format:zc.DEPTH_COMPONENT16}),i=new sc({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:lt.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,sampler:dn.NEAREST}),o=[i.negativeX,i.negativeY,i.negativeZ,i.positiveX,i.positiveY,i.positiveZ];for(let r=0;r<6;++r){let s=new ia({context:t,depthRenderbuffer:n,colorTextures:[o[r]],destroyAttachments:!1}),a=e._passes[r];a.framebuffer=s,a.passState.framebuffer=s}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function Xpe(e,t){e._isPointLight?Tst(e,t):e._usesDepthTexture?Cst(e,t):xst(e,t)}function Est(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==te.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,$j(e),eY(e),Xpe(e,t))}function bst(e,t){(!l(e._passes[0].framebuffer)||e._shadowMapTexture.width!==e._textureSize.x)&&(eY(e),Xpe(e,t),Est(e,t),Kpe(e,t))}function Kpe(e,t,n){n=y(n,0),(e._isPointLight||n===0)&&(e._clearCommand.framebuffer=e._passes[n].framebuffer,e._clearCommand.execute(t,e._clearPassState))}function Sst(e,t){e._size=t;let n=e._passes,i=n.length,o=e._textureSize;if(e._isPointLight){t=zt.maximumCubeMapSize>=t?t:zt.maximumCubeMapSize,o.x=t,o.y=t;let r=new Ke(0,0,t,t);n[0].passState.viewport=r,n[1].passState.viewport=r,n[2].passState.viewport=r,n[3].passState.viewport=r,n[4].passState.viewport=r,n[5].passState.viewport=r}else i===1?(t=zt.maximumTextureSize>=t?t:zt.maximumTextureSize,o.x=t,o.y=t,n[0].passState.viewport=new Ke(0,0,t,t)):i===4&&(t=zt.maximumTextureSize>=t*2?t:zt.maximumTextureSize/2,o.x=t*2,o.y=t*2,n[0].passState.viewport=new Ke(0,0,t,t),n[1].passState.viewport=new Ke(t,0,t,t),n[2].passState.viewport=new Ke(0,t,t,t),n[3].passState.viewport=new Ke(t,t,t,t));e._clearPassState.viewport=new Ke(0,0,o.x,o.y);for(let r=0;r<i;++r){let s=n[r],a=s.passState.viewport,c=a.x/o.x,u=a.y/o.y,f=a.width/o.x,d=a.height/o.y;s.textureOffsets=new B(f,0,0,c,0,d,0,u,0,0,1,0,0,0,0,1)}}var wst=new Ke;function vst(e,t){let n;e._isPointLight?n=`uniform samplerCube shadowMap_textureCube; +in vec2 v_textureCoordinates; +void main() +{ + vec2 uv = v_textureCoordinates; + vec3 dir; + + if (uv.y < 0.5) + { + if (uv.x < 0.333) + { + dir.x = -1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 1.0; + } + else if (uv.x < 0.666) + { + dir.y = -1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 1.0; + } + else + { + dir.z = -1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 1.0; + } + } + else + { + if (uv.x < 0.333) + { + dir.x = 1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 3.0; + } + else if (uv.x < 0.666) + { + dir.y = 1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 3.0; + } + else + { + dir.z = 1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 3.0; + } + } + + float shadow = czm_unpackDepth(czm_textureCube(shadowMap_textureCube, dir)); + out_FragColor = vec4(vec3(shadow), 1.0); +} +`:n=`uniform sampler2D shadowMap_texture; +in vec2 v_textureCoordinates; +void main() +{ +${e._usesDepthTexture?` float shadow = texture(shadowMap_texture, v_textureCoordinates).r; +`:` float shadow = czm_unpackDepth(texture(shadowMap_texture, v_textureCoordinates)); +`} out_FragColor = vec4(vec3(shadow), 1.0); +} +`;let i=t.createViewportQuadCommand(n,{uniformMap:{shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture}}});return i.pass=be.OVERLAY,i}function Dst(e,t){let n=t.context,i=t.context.drawingBufferWidth,o=t.context.drawingBufferHeight,r=Math.min(i,o)*.3,s=wst;s.x=i-r,s.y=0,s.width=r,s.height=r;let a=e._debugShadowViewCommand;l(a)||(a=vst(e,n),e._debugShadowViewCommand=a),(!l(a.renderState)||!Ke.equals(a.renderState.viewport,s))&&(a.renderState=ze.fromCache({viewport:Ke.clone(s)})),t.commandList.push(e._debugShadowViewCommand)}var lh=new Array(8);lh[0]=new re(-1,-1,-1,1);lh[1]=new re(1,-1,-1,1);lh[2]=new re(1,1,-1,1);lh[3]=new re(-1,1,-1,1);lh[4]=new re(-1,-1,1,1);lh[5]=new re(1,-1,1,1);lh[6]=new re(1,1,1,1);lh[7]=new re(-1,1,1,1);var py=new B,tY=new Array(8);for(let e=0;e<8;++e)tY[e]=new re;function Ist(e,t){let n=new Tt({geometry:new im({minimum:new m(-.5,-.5,-.5),maximum:new m(.5,.5,.5)}),attributes:{color:Vt.fromColor(t)}}),i=new Tt({geometry:new mg({radius:.5}),attributes:{color:Vt.fromColor(t)}});return new wn({geometryInstances:[n,i],appearance:new sn({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}var Pst=[z.RED,z.GREEN,z.BLUE,z.MAGENTA],Ost=new m;function Mst(e,t){Dst(e,t);let n=e.debugFreezeFrame&&!e._debugFreezeFrame;if(e._debugFreezeFrame=e.debugFreezeFrame,e.debugFreezeFrame&&(n&&(e._debugCameraFrustum=e._debugCameraFrustum&&e._debugCameraFrustum.destroy(),e._debugCameraFrustum=new Hp({camera:e._sceneCamera,color:z.CYAN,updateOnChange:!1})),e._debugCameraFrustum.update(t)),e._cascadesEnabled){if(e.debugFreezeFrame){n&&(e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=new Hp({camera:e._shadowMapCamera,color:z.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t);for(let i=0;i<e._numberOfCascades;++i)n&&(e._debugCascadeFrustums[i]=e._debugCascadeFrustums[i]&&e._debugCascadeFrustums[i].destroy(),e._debugCascadeFrustums[i]=new Hp({camera:e._passes[i].camera,color:Pst[i],updateOnChange:!1})),e._debugCascadeFrustums[i].update(t)}}else if(e._isPointLight){if(!l(e._debugLightFrustum)||e._needsUpdate){let i=e._shadowMapCamera.positionWC,o=Ne.IDENTITY,r=e._pointLightRadius*2,s=m.fromElements(r,r,r,Ost),a=B.fromTranslationQuaternionRotationScale(i,o,s,py);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=Ist(a,z.YELLOW)}e._debugLightFrustum.update(t)}else(!l(e._debugLightFrustum)||e._needsUpdate)&&(e._debugLightFrustum=new Hp({camera:e._shadowMapCamera,color:z.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function qV(){this.viewMatrix=new B,this.inverseViewMatrix=new B,this.frustum=void 0,this.positionCartographic=new he,this.positionWC=new m,this.directionWC=m.clone(m.UNIT_Z),this.upWC=m.clone(m.UNIT_Y),this.rightWC=m.clone(m.UNIT_X),this.viewProjectionMatrix=new B}qV.prototype.clone=function(e){B.clone(e.viewMatrix,this.viewMatrix),B.clone(e.inverseViewMatrix,this.inverseViewMatrix),this.frustum=e.frustum.clone(this.frustum),he.clone(e.positionCartographic,this.positionCartographic),m.clone(e.positionWC,this.positionWC),m.clone(e.directionWC,this.directionWC),m.clone(e.upWC,this.upWC),m.clone(e.rightWC,this.rightWC)};var Rst=new B(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);qV.prototype.getViewProjection=function(){let e=this.viewMatrix,t=this.frustum.projectionMatrix;return B.multiply(t,e,this.viewProjectionMatrix),B.multiply(Rst,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var Bst=new Array(5),Lst=new wi,Nst=new Array(4),Jpe=new m,Zpe=new m;function Fst(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=i.frustum.near,r=i.frustum.far,s=e._numberOfCascades,a,c=r-o,u=r/o,f=.9,d=!1;t.shadowState.closestObjectSize<200&&(d=!0,f=.9);let p=Nst,g=Bst;for(g[0]=o,g[s]=r,a=0;a<s;++a){let N=(a+1)/s,_=o*Math.pow(u,N),b=o+c*N,w=P.lerp(b,_,f);g[a+1]=w,p[a]=w-g[a]}if(d){for(a=0;a<s;++a)p[a]=Math.min(p[a],e._maximumCascadeDistances[a]);let N=g[0];for(a=0;a<s-1;++a)N+=p[a],g[a+1]=N}re.unpack(g,0,e._cascadeSplits[0]),re.unpack(g,1,e._cascadeSplits[1]),re.unpack(p,0,e._cascadeDistances);let h=n.frustum,A=h.left,x=h.right,C=h.bottom,T=h.top,E=h.near,S=h.far,v=n.positionWC,D=n.directionWC,O=n.upWC,M=i.frustum.clone(Lst),L=n.getViewProjection();for(a=0;a<s;++a){M.near=g[a],M.far=g[a+1];let N=B.multiply(M.projectionMatrix,i.viewMatrix,py),_=B.inverse(N,py),b=B.multiply(L,_,py),w=m.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,Jpe),I=m.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,Zpe);for(let G=0;G<8;++G){let U=re.clone(lh[G],tY[G]);B.multiplyByVector(b,U,U),m.divideByScalar(U,U.w,U),m.minimumByComponent(U,w,w),m.maximumByComponent(U,I,I)}w.x=Math.max(w.x,0),w.y=Math.max(w.y,0),w.z=0,I.x=Math.min(I.x,1),I.y=Math.min(I.y,1),I.z=Math.min(I.z,1);let R=e._passes[a],F=R.camera;F.clone(n);let k=F.frustum;k.left=A+w.x*(x-A),k.right=A+I.x*(x-A),k.bottom=C+w.y*(T-C),k.top=C+I.y*(T-C),k.near=E+w.z*(S-E),k.far=E+I.z*(S-E),R.cullingVolume=F.frustum.computeCullingVolume(v,D,O);let V=e._cascadeMatrices[a];B.multiply(F.getViewProjection(),i.inverseViewMatrix,V),B.multiply(R.textureOffsets,V,V)}}var Ust=new B,Vst=new m,kst=new m,Ype=new m;function zst(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=B.multiply(i.frustum.projectionMatrix,i.viewMatrix,py),r=B.inverse(o,py),s=n.directionWC,a=i.directionWC;m.equalsEpsilon(s,a,P.EPSILON10)&&(a=i.upWC);let c=m.cross(s,a,Vst);a=m.cross(c,s,kst),m.normalize(a,a),m.normalize(c,c);let u=m.fromElements(0,0,0,Ype),f=B.computeView(u,s,a,c,Ust),d=B.multiply(f,r,py),p=m.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,Jpe),g=m.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,Zpe);for(let S=0;S<8;++S){let v=re.clone(lh[S],tY[S]);B.multiplyByVector(d,v,v),m.divideByScalar(v,v.w,v),m.minimumByComponent(v,p,p),m.maximumByComponent(v,g,g)}g.z+=1e3,p.z-=10;let h=Ype;h.x=-(.5*(p.x+g.x)),h.y=-(.5*(p.y+g.y)),h.z=-g.z;let A=B.fromTranslation(h,py);f=B.multiply(A,f,f);let x=.5*(g.x-p.x),C=.5*(g.y-p.y),T=g.z-p.z,E=n.frustum;E.left=-x,E.right=x,E.bottom=-C,E.top=C,E.near=.01,E.far=T,B.clone(f,n.viewMatrix),B.inverse(f,n.inverseViewMatrix),B.getTranslation(n.inverseViewMatrix,n.positionWC),t.mapProjection.ellipsoid.cartesianToCartographic(n.positionWC,n.positionCartographic),m.clone(s,n.directionWC),m.clone(a,n.upWC),m.clone(c,n.rightWC)}var Hst=[new m(-1,0,0),new m(0,-1,0),new m(0,0,-1),new m(1,0,0),new m(0,1,0),new m(0,0,1)],Gst=[new m(0,-1,0),new m(0,0,-1),new m(0,-1,0),new m(0,-1,0),new m(0,0,1),new m(0,-1,0)],Wst=[new m(0,0,1),new m(1,0,0),new m(-1,0,0),new m(0,0,-1),new m(1,0,0),new m(1,0,0)];function jst(e,t){let n=new wi;n.fov=P.PI_OVER_TWO,n.near=1,n.far=e._pointLightRadius,n.aspectRatio=1;for(let i=0;i<6;++i){let o=e._passes[i].camera;o.positionWC=e._shadowMapCamera.positionWC,o.positionCartographic=t.mapProjection.ellipsoid.cartesianToCartographic(o.positionWC,o.positionCartographic),o.directionWC=Hst[i],o.upWC=Gst[i],o.rightWC=Wst[i],B.computeView(o.positionWC,o.directionWC,o.upWC,o.rightWC,o.viewMatrix),B.inverse(o.viewMatrix,o.inverseViewMatrix),o.frustum=n}}var Yst=new m,qst=new m,Qpe=new ae,qpe=Qpe.center;function Xst(e,t){let n=e._sceneCamera,i=e._shadowMapCamera,o=Qpe;if(e._cascadesEnabled){if(n.frustum.near>=e.maximumDistance){e._outOfView=!0,e._needsUpdate=!1;return}let r=t.mapProjection.ellipsoid.geodeticSurfaceNormal(n.positionWC,Yst),s=m.negate(i.directionWC,qst),a=m.dot(r,s);if(e.fadingEnabled){let c=P.clamp(a/.1,0,1);e._darkness=P.lerp(1,e.darkness,c)}else e._darkness=e.darkness;if(a<0){e._outOfView=!0,e._needsUpdate=!1;return}e._needsUpdate=!0,e._outOfView=!1}else if(e._isPointLight)o.center=i.positionWC,o.radius=e._pointLightRadius,e._outOfView=t.cullingVolume.computeVisibility(o)===$t.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),ae.clone(o,e._boundingSphere);else{let r=i.frustum.far/2,s=m.add(i.positionWC,m.multiplyByScalar(i.directionWC,r,qpe),qpe);o.center=s,o.radius=r,e._outOfView=t.cullingVolume.computeVisibility(o)===$t.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),ae.clone(o,e._boundingSphere)}}function Kst(e,t){let n=t.camera,i=e._lightCamera,o=e._sceneCamera,r=e._shadowMapCamera;e._cascadesEnabled?m.clone(i.directionWC,r.directionWC):e._isPointLight?m.clone(i.positionWC,r.positionWC):r.clone(i);let s=e._lightDirectionEC;B.multiplyByPointAsVector(n.viewMatrix,r.directionWC,s),m.normalize(s,s),m.negate(s,s),B.multiplyByPoint(n.viewMatrix,r.positionWC,e._lightPositionEC),e._lightPositionEC.w=e._pointLightRadius;let a,c;e._fitNearFar?(a=Math.min(t.shadowState.nearPlane,e.maximumDistance),c=Math.min(t.shadowState.farPlane,e.maximumDistance),c=Math.max(c,a+1)):(a=n.frustum.near,c=e.maximumDistance),e._sceneCamera=uo.clone(n,o),n.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=a,e._sceneCamera.frustum.far=c,e._distance=c-a,Xst(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}ch.prototype.update=function(e){if(Kst(this,e),this._needsUpdate)if(bst(this,e.context),this._isPointLight&&jst(this,e),this._cascadesEnabled&&(zst(this,e),this._numberOfCascades>1&&Fst(this,e)),this._isPointLight)this._shadowMapCullingVolume=ts.fromBoundingSphere(this._boundingSphere);else{let t=this._shadowMapCamera,n=t.positionWC,i=t.directionWC,o=t.upWC;this._shadowMapCullingVolume=t.frustum.computeCullingVolume(n,i,o),this._passes.length===1&&this._passes[0].camera.clone(t)}if(this._passes.length===1){let t=this._sceneCamera.inverseViewMatrix;B.multiply(this._shadowMapCamera.getViewProjection(),t,this._shadowMapMatrix)}this.debugShow&&Mst(this,e)};ch.prototype.updatePass=function(e,t){Kpe(this,e,t)};var Jst=new H;function $pe(e,t,n){let i=e._isPointLight?e._pointBias:n?e._terrainBias:e._primitiveBias,o={shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture},shadowMap_matrix:function(){return e._shadowMapMatrix},shadowMap_cascadeSplits:function(){return e._cascadeSplits},shadowMap_cascadeMatrices:function(){return e._cascadeMatrices},shadowMap_lightDirectionEC:function(){return e._lightDirectionEC},shadowMap_lightPositionEC:function(){return e._lightPositionEC},shadowMap_cascadeDistances:function(){return e._cascadeDistances},shadowMap_texelSizeDepthBiasAndNormalShadingSmooth:function(){let r=Jst;return r.x=1/e._textureSize.x,r.y=1/e._textureSize.y,re.fromElements(r.x,r.y,i.depthBias,i.normalShadingSmooth,this.combinedUniforms1)},shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness:function(){return re.fromElements(i.normalOffsetScale,e._distance,e.maximumDistance,e._darkness,this.combinedUniforms2)},combinedUniforms1:new re,combinedUniforms2:new re};return gt(t,o,!1)}function Zst(e,t,n,i,o,r){let s,a,c;if(l(r)&&(s=r.shaderProgram,a=r.renderState,c=r.uniformMap),r=it.shallowClone(n,r),r.castShadows=!0,r.receiveShadows=!1,!l(s)||o!==n.shaderProgram.id||t){let u=n.shaderProgram,f=n.pass===be.GLOBE,d=n.pass!==be.TRANSLUCENT,p=e._isPointLight,g=e._usesDepthTexture,h=jp.getShadowCastShaderKeyword(p,f,g,d);if(s=i.shaderCache.getDerivedShaderProgram(u,h),!l(s)){let x=u.vertexShaderSource,C=u.fragmentShaderSource,T=jp.createShadowCastVertexShader(x,p,f),E=jp.createShadowCastFragmentShader(C,p,g,d);s=i.shaderCache.createDerivedShaderProgram(u,h,{vertexShaderSource:T,fragmentShaderSource:E,attributeLocations:u._attributeLocations})}a=e._primitiveRenderState,p?a=e._pointRenderState:f&&(a=e._terrainRenderState),n.renderState.cull.enabled||(a=Ye(a,!1),a.cull=Ye(a.cull,!1),a.cull.enabled=!1,a=ze.fromCache(a)),c=$pe(e,n.uniformMap,f)}return r.shaderProgram=s,r.renderState=a,r.uniformMap=c,r}ch.createReceiveDerivedCommand=function(e,t,n,i,o){l(o)||(o={});let r=e.length>0,s=t.shaderProgram,a=s.vertexShaderSource,c=s.fragmentShaderSource,u=t.pass===be.GLOBE,f=!1;if(u&&(f=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&r){let d,p;l(o.receiveCommand)&&(d=o.receiveCommand.shaderProgram,p=o.receiveCommand.uniformMap),o.receiveCommand=it.shallowClone(t,o.receiveCommand),o.castShadows=!1,o.receiveShadows=!0;let g=o.receiveShaderCastShadows!==t.castShadows,h=o.receiveShaderProgramId!==t.shaderProgram.id;if(!l(d)||h||n||g){let A=jp.getShadowReceiveShaderKeyword(e[0],t.castShadows,u,f);if(d=i.shaderCache.getDerivedShaderProgram(s,A),!l(d)){let x=jp.createShadowReceiveVertexShader(a,u,f),C=jp.createShadowReceiveFragmentShader(c,e[0],t.castShadows,u,f);d=i.shaderCache.createDerivedShaderProgram(s,A,{vertexShaderSource:x,fragmentShaderSource:C,attributeLocations:s._attributeLocations})}p=$pe(e[0],t.uniformMap,u)}o.receiveCommand.shaderProgram=d,o.receiveCommand.uniformMap=p,o.receiveShaderProgramId=t.shaderProgram.id,o.receiveShaderCastShadows=t.castShadows}return o};ch.createCastDerivedCommand=function(e,t,n,i,o){if(l(o)||(o={}),t.castShadows){let r=o.castCommands;l(r)||(r=o.castCommands=[]);let s=o.castShaderProgramId,a=e.length;r.length=a;for(let c=0;c<a;++c)r[c]=Zst(e[c],n,t,i,s,r[c]);o.castShaderProgramId=t.shaderProgram.id}return o};ch.prototype.isDestroyed=function(){return!1};ch.prototype.destroy=function(){eY(this),this._debugLightFrustum=this._debugLightFrustum&&this._debugLightFrustum.destroy(),this._debugCameraFrustum=this._debugCameraFrustum&&this._debugCameraFrustum.destroy(),this._debugShadowViewCommand=this._debugShadowViewCommand&&this._debugShadowViewCommand.shaderProgram&&this._debugShadowViewCommand.shaderProgram.destroy();for(let e=0;e<this._numberOfCascades;++e)this._debugCascadeFrustums[e]=this._debugCascadeFrustums[e]&&this._debugCascadeFrustums[e].destroy();return ue(this)};var _y=ch;var XV=`uniform sampler2D u_opaqueDepthTexture; +uniform sampler2D u_translucentDepthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float opaqueDepth = texture(u_opaqueDepthTexture, v_textureCoordinates).r; + float translucentDepth = texture(u_translucentDepthTexture, v_textureCoordinates).r; + translucentDepth = czm_branchFreeTernary(translucentDepth > opaqueDepth, 1.0, translucentDepth); + out_FragColor = czm_packDepth(translucentDepth); +} +`;var tb=`uniform sampler2D colorTexture; + +#ifdef DEBUG_SHOW_DEPTH +uniform sampler2D u_packedTranslucentDepth; +#endif + +in vec2 v_textureCoordinates; + +void main() +{ +#ifdef DEBUG_SHOW_DEPTH + if (v_textureCoordinates.x < 0.5) + { + out_FragColor.rgb = vec3(czm_unpackDepth(texture(u_packedTranslucentDepth, v_textureCoordinates))); + out_FragColor.a = 1.0; + } +#else + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef PICK + if (color == vec4(0.0)) + { + discard; + } +#else + // Reverse premultiplication process to get the correct composited result of the classification primitives + color.rgb /= color.a; +#endif + out_FragColor = color; +#endif +} +`;var Qst=!1;function gy(e){this._drawClassificationFBO=new mi({createDepthAttachments:!1}),this._accumulationFBO=new mi({createDepthAttachments:!1}),this._packFBO=new mi,this._opaqueDepthStencilTexture=void 0,this._textureToComposite=void 0,this._translucentDepthStencilTexture=void 0,this._packDepthCommand=void 0,this._accumulateCommand=void 0,this._compositeCommand=void 0,this._copyCommand=void 0,this._clearColorCommand=new oi({color:new z(0,0,0,0),owner:this}),this._clearDepthStencilCommand=new oi({depth:1,stencil:0,owner:this}),this._supported=e.depthTexture,this._viewport=new Ke,this._rsDepth=void 0,this._rsAccumulate=void 0,this._rsComp=void 0,this._useScissorTest=void 0,this._scissorRectangle=void 0,this._hasTranslucentDepth=!1,this._frustumsDrawn=0}Object.defineProperties(gy.prototype,{hasTranslucentDepth:{get:function(){return this._hasTranslucentDepth}}});function e_e(e){e._textureToComposite=void 0,e._translucentDepthStencilTexture=e._translucentDepthStencilTexture&&!e._translucentDepthStencilTexture.isDestroyed()&&e._translucentDepthStencilTexture.destroy()}function t_e(e){e._drawClassificationFBO.destroy(),e._accumulationFBO.destroy(),e._packFBO.destroy()}function $st(e,t,n,i){e_e(e),e._translucentDepthStencilTexture=new Bt({context:t,width:n,height:i,pixelFormat:lt.DEPTH_STENCIL,pixelDatatype:Je.UNSIGNED_INT_24_8,sampler:dn.NEAREST})}function eat(e,t,n,i){t_e(e),e._drawClassificationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._drawClassificationFBO.update(t,n,i),e._accumulationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._accumulationFBO.update(t,n,i),e._packFBO.update(t,n,i)}function tat(e,t,n,i){if(!e.isSupported())return;e._opaqueDepthStencilTexture=i;let o=e._opaqueDepthStencilTexture.width,r=e._opaqueDepthStencilTexture.height;e._drawClassificationFBO.isDirty(o,r)&&($st(e,t,o,r),eat(e,t,o,r));let s,a;if(l(e._packDepthCommand)||(s=new He({sources:[XV]}),a={u_opaqueDepthTexture:function(){return e._opaqueDepthStencilTexture},u_translucentDepthTexture:function(){return e._translucentDepthStencilTexture}},e._packDepthCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),!l(e._compositeCommand)){s=new He({sources:[tb]}),a={colorTexture:function(){return e._textureToComposite}},Qst&&(s.defines=["DEBUG_SHOW_DEPTH"],a.u_packedTranslucentDepth=function(){return e._packFBO.getColorTexture()}),e._compositeCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e});let f=e._compositeCommand,d=f.shaderProgram,p=t.shaderCache.createDerivedShaderProgram(d,"pick",{vertexShaderSource:d.vertexShaderSource,fragmentShaderSource:new He({sources:s.sources,defines:["PICK"]}),attributeLocations:d._attributeLocations}),g=it.shallowClone(f);g.shaderProgram=p,f.derivedCommands.pick=g}l(e._copyCommand)||(s=new He({sources:[tb]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._copyCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),l(e._accumulateCommand)||(s=new He({sources:[tb]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._accumulateCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),e._viewport.width=o,e._viewport.height=r;let c=!Ke.equals(e._viewport,n.viewport),u=c!==e._useScissorTest;e._useScissorTest=c,Ke.equals(e._scissorRectangle,n.viewport)||(e._scissorRectangle=Ke.clone(n.viewport,e._scissorRectangle),u=!0),(!l(e._rsDepth)||!Ke.equals(e._viewport,e._rsDepth.viewport)||u)&&(e._rsDepth=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packDepthCommand)&&(e._packDepthCommand.renderState=e._rsDepth),(!l(e._rsAccumulate)||!Ke.equals(e._viewport,e._rsAccumulate.viewport)||u)&&(e._rsAccumulate=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Hn.EQUAL,reference:Ft.CESIUM_3D_TILE_MASK}})),l(e._accumulateCommand)&&(e._accumulateCommand.renderState=e._rsAccumulate),(!l(e._rsComp)||!Ke.equals(e._viewport,e._rsComp.viewport)||u)&&(e._rsComp=ze.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:mn.ALPHA_BLEND})),l(e._compositeCommand)&&(e._compositeCommand.renderState=e._rsComp,e._compositeCommand.derivedCommands.pick.renderState=e._rsComp)}gy.prototype.executeTranslucentCommands=function(e,t,n,i,o){let r=i.length,s,a,c=e.frameState.useLogDepth,u=e.context,f=n.framebuffer;for(a=0;a<r;++a)if(s=i[a],s=c?s.derivedCommands.logDepth.command:s,s.depthForTranslucentClassification){this._hasTranslucentDepth=!0;break}if(this._hasTranslucentDepth){for(tat(this,u,n,o),n.framebuffer=this._drawClassificationFBO.framebuffer,this._clearDepthStencilCommand.execute(u,n),a=0;a<r;++a){if(s=i[a],s=c?s.derivedCommands.logDepth.command:s,!s.depthForTranslucentClassification)continue;let d=s.derivedCommands.depth.depthOnlyCommand;t(d,e,u,n)}this._frustumsDrawn+=this._hasTranslucentDepth?1:0,this._hasTranslucentDepth&&(n.framebuffer=this._packFBO.framebuffer,this._packDepthCommand.execute(u,n)),n.framebuffer=f}};gy.prototype.executeClassificationCommands=function(e,t,n,i){if(!this._hasTranslucentDepth)return;let o=e.context,r=o.uniformState,s=n.framebuffer;this._frustumsDrawn===2&&(n.framebuffer=this._accumulationFBO.framebuffer,this._copyCommand.execute(o,n)),n.framebuffer=this._drawClassificationFBO.framebuffer,this._frustumsDrawn>1&&this._clearColorCommand.execute(o,n),r.updatePass(be.CESIUM_3D_TILE_CLASSIFICATION);let a=r.globeDepthTexture;r.globeDepthTexture=this._packFBO.getColorTexture();let c=i.commands[be.CESIUM_3D_TILE_CLASSIFICATION],u=i.indices[be.CESIUM_3D_TILE_CLASSIFICATION];for(let f=0;f<u;++f)t(c[f],e,o,n);r.globeDepthTexture=a,n.framebuffer=s,this._frustumsDrawn!==1&&(n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=s)};gy.prototype.execute=function(e,t){if(!this._hasTranslucentDepth)return;this._frustumsDrawn===1?this._textureToComposite=this._drawClassificationFBO.getColorTexture():this._textureToComposite=this._accumulationFBO.getColorTexture(),(e.frameState.passes.pick?this._compositeCommand.derivedCommands.pick:this._compositeCommand).execute(e.context,t),nat(this,e,t)};function nat(e,t,n){if(!e._hasTranslucentDepth)return;let i=n.framebuffer;n.framebuffer=e._drawClassificationFBO.framebuffer,e._clearColorCommand.execute(t._context,n),n.framebuffer=i,e._frustumsDrawn>1&&(n.framebuffer=e._accumulationFBO.framebuffer,e._clearColorCommand.execute(t._context,n)),e._hasTranslucentDepth=!1,e._frustumsDrawn=0}gy.prototype.isSupported=function(){return this._supported};gy.prototype.isDestroyed=function(){return!1};gy.prototype.destroy=function(){return e_e(this),t_e(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._packDepthCommand)&&(this._packDepthCommand.shaderProgram=this._packDepthCommand.shaderProgram&&this._packDepthCommand.shaderProgram.destroy()),ue(this)};var KV=gy;function iat(){this.command=void 0,this.near=void 0,this.far=void 0}function JV(e,t,n){let i=e.context,o;i.depthTexture&&(o=new zV);let r;e._useOIT&&i.depthTexture&&(r=new WV(i));let s=new ac(i);s.viewport=Ke.clone(n),this.camera=t,this._cameraClone=uo.clone(t),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=n,this.passState=s,this.pickFramebuffer=new YV(i),this.pickDepthFramebuffer=new jV,this.sceneFramebuffer=new eb,this.globeDepth=o,this.globeTranslucencyFramebuffer=new HV,this.oit=r,this.translucentTileClassification=new KV(i),this.pickDepths=[],this.frustumCommandsList=[],this.debugFrustumStatistics=void 0,this._commandExtents=[]}var n_e=new m,i_e=new m;function oat(e,t){let n=Math.max(Math.abs(e.x),Math.abs(t.x)),i=Math.max(Math.abs(e.y),Math.abs(t.y)),o=Math.max(Math.abs(e.z),Math.abs(t.z));return Math.max(Math.max(n,i),o)}function rat(e,t,n){let i=1/Math.max(1,oat(e.position,t.position));return m.multiplyByScalar(e.position,i,n_e),m.multiplyByScalar(t.position,i,i_e),m.equalsEpsilon(n_e,i_e,n)&&m.equalsEpsilon(e.direction,t.direction,n)&&m.equalsEpsilon(e.up,t.up,n)&&m.equalsEpsilon(e.right,t.right,n)&&B.equalsEpsilon(e.transform,t.transform,n)&&e.frustum.equalsEpsilon(t.frustum,n)}JV.prototype.checkForCameraUpdates=function(e){let t=this.camera,n=this._cameraClone;return rat(t,n,P.EPSILON15)?(this._cameraStartFired&&Ci()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=Ci(),uo.clone(t,n),!0)};function sat(e,t,n,i){let o=t.frameState,r=o.camera,s=o.useLogDepth?t.logarithmicDepthFarToNearRatio:t.farToNearRatio,a=t.mode===ne.SCENE2D,c=t.nearToFarDistance2D;i*=1+P.EPSILON2,n=Math.min(Math.max(n,r.frustum.near),r.frustum.far),i=Math.max(Math.min(i,r.frustum.far),n);let u;a?(i=Math.min(i,r.position.z+t.nearToFarDistance2D),n=Math.min(n,i),u=Math.ceil(Math.max(1,i-n)/t.nearToFarDistance2D)):u=Math.ceil(Math.log(i/n)/Math.log(s));let f=e.frustumCommandsList;f.length=u;for(let d=0;d<u;++d){let p,g;a?(p=Math.min(i-c,n+d*c),g=Math.min(i,p+c)):(p=Math.max(n,Math.pow(s,d)*n),g=Math.min(i,s*p));let h=f[d];l(h)?(h.near=p,h.far=g):h=f[d]=new kV(p,g)}}function aat(e,t,n,i,o){t.debugShowFrustums&&(n.debugOverlappingFrustums=0);let r=e.frustumCommandsList,s=r.length;for(let a=0;a<s;++a){let c=r[a],u=c.near,f=c.far;if(i>f)continue;if(o<u)break;let d=n.pass,p=c.indices[d]++;if(c.commands[d][p]=n,t.debugShowFrustums&&(n.debugOverlappingFrustums|=1<<a),n.executeInClosestFrustum)break}if(t.debugShowFrustums){let a=e.debugFrustumStatistics.commandsInFrustums;a[n.debugOverlappingFrustums]=l(a[n.debugOverlappingFrustums])?a[n.debugOverlappingFrustums]+1:1,++e.debugFrustumStatistics.totalCommands}t.updateDerivedCommands(n)}var o_e=new ts,cat=new Hc;JV.prototype.createPotentiallyVisibleSet=function(e){let t=e.frameState,n=t.camera,i=n.directionWC,o=n.positionWC,r=e._computeCommandList,s=e._overlayCommandList,a=t.commandList;e.debugShowFrustums&&(this.debugFrustumStatistics={totalCommands:0,commandsInFrustums:{}});let c=this.frustumCommandsList,u=c.length,f=be.NUMBER_OF_PASSES;for(let b=0;b<u;++b)for(let w=0;w<f;++w)c[b].indices[w]=0;r.length=0,s.length=0;let d=this._commandExtents,p=d.length,g=0,h=+Number.MAX_VALUE,A=-Number.MAX_VALUE,x=t.shadowState.shadowsEnabled,C=+Number.MAX_VALUE,T=-Number.MAX_VALUE,E=Number.MAX_VALUE,S=t.mode===ne.SCENE3D?t.occluder:void 0,v=t.cullingVolume,D=o_e.planes;for(let b=0;b<5;++b)D[b]=v.planes[b];v=o_e;let O=a.length;for(let b=0;b<O;++b){let w=a[b],I=w.pass;if(I===be.COMPUTE)r.push(w);else if(I===be.OVERLAY)s.push(w);else{let R,F,k=w.boundingVolume;if(l(k)){if(!e.isVisible(w,v,S))continue;let G=k.computePlaneDistances(o,i,cat);if(R=G.start,F=G.stop,h=Math.min(h,R),A=Math.max(A,F),x&&w.receiveShadows&&R<_y.MAXIMUM_DISTANCE&&!(I===be.GLOBE&&R<-100&&F>100)){let U=F-R;I!==be.GLOBE&&R<100&&(E=Math.min(E,U)),C=Math.min(C,R),T=Math.max(T,F)}}else w instanceof oi?(R=n.frustum.near,F=n.frustum.far):(R=n.frustum.near,F=n.frustum.far,h=Math.min(h,R),A=Math.max(A,F));let V=d[g];l(V)||(V=d[g]=new iat),V.command=w,V.near=R,V.far=F,g++}}x&&(C=Math.min(Math.max(C,n.frustum.near),n.frustum.far),T=Math.max(Math.min(T,n.frustum.far),C)),x&&(t.shadowState.nearPlane=C,t.shadowState.farPlane=T,t.shadowState.closestObjectSize=E),sat(this,e,h,A);let M,L;for(M=0;M<g;M++)L=d[M],aat(this,e,L.command,L.near,L.far);if(g<p)for(M=g;M<p&&(L=d[M],!!l(L.command));M++)L.command=void 0;let N=c.length,_=t.frustumSplits;_.length=N+1;for(let b=0;b<N;++b)_[b]=c[b].near,b===N-1&&(_[b+1]=c[b].far)};JV.prototype.destroy=function(){this.pickFramebuffer=this.pickFramebuffer&&this.pickFramebuffer.destroy(),this.pickDepthFramebuffer=this.pickDepthFramebuffer&&this.pickDepthFramebuffer.destroy(),this.sceneFramebuffer=this.sceneFramebuffer&&this.sceneFramebuffer.destroy(),this.globeDepth=this.globeDepth&&this.globeDepth.destroy(),this.oit=this.oit&&this.oit.destroy(),this.translucentTileClassification=this.translucentTileClassification&&this.translucentTileClassification.destroy(),this.globeTranslucencyFramebuffer=this.globeTranslucencyFramebuffer&&this.globeTranslucencyFramebuffer.destroy();let e,t=this.pickDepths,n=t.length;for(e=0;e<n;++e)t[e].destroy()};var nb=JV;var s_e=.1,lat=new Nd({pass:Ro.MOST_DETAILED_PRELOAD}),uat=new Nd({pass:Ro.MOST_DETAILED_PICK}),nY=new Nd({pass:Ro.PICK});function ga(e){this._mostDetailedRayPicks=[],this.pickRenderStateCache={},this._pickPositionCache={},this._pickPositionCacheDirty=!1;let t=new Ke(0,0,1,1),n=new uo(e);n.frustum=new tn({width:s_e,aspectRatio:1,near:.1}),this._pickOffscreenView=new nb(e,n,t)}ga.prototype.update=function(){this._pickPositionCacheDirty=!0};ga.prototype.getPickDepth=function(e,t){let n=e.view.pickDepths,i=n[t];return l(i)||(i=new VV,n[t]=i),i};var fat=new Ir,dat=new m,ZV=new m,mat=new H,hat=new B;function pat(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2*(t.x-o.x)/o.width-1;c*=(s.right-s.left)*.5;let u=2*(o.height-t.y-o.y)/o.height-1;u*=(s.top-s.bottom)*.5;let f=B.clone(r.transform,hat);r._setTransform(B.IDENTITY);let d=m.clone(r.position,dat);m.multiplyByScalar(r.right,c,ZV),m.add(ZV,d,d),m.multiplyByScalar(r.up,u,ZV),m.add(ZV,d,d),r._setTransform(f),e.mode===ne.SCENE2D&&m.fromElements(d.z,d.x,d.y,d);let p=s.getPixelDimensions(o.width,o.height,1,1,mat),g=fat;return g.right=p.x*.5,g.left=-g.right,g.top=p.y*.5,g.bottom=-g.top,g.near=s.near,g.far=s.far,g.computeCullingVolume(d,r.directionWC,r.upWC)}var _at=new pl,gat=new H;function yat(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.near,c=Math.tan(s.fovy*.5),u=s.aspectRatio*c,f=2*(t.x-o.x)/o.width-1,d=2*(o.height-t.y-o.y)/o.height-1,p=f*a*u,g=d*a*c,h=s.getPixelDimensions(o.width,o.height,1,1,gat),A=h.x*n*.5,x=h.y*i*.5,C=_at;return C.top=g+x,C.bottom=g-x,C.right=p+A,C.left=p-A,C.near=a,C.far=s.far,C.computeCullingVolume(r.positionWC,r.directionWC,r.upWC)}function a_e(e,t,n,i,o){let r=e.camera.frustum;return r instanceof tn||r instanceof Ir?pat(e,t,n,i,o):yat(e,t,n,i,o)}var ib=3,WD=3,uh=new Ke(0,0,ib,WD),c_e=new H,iY=new z(0,0,0,0);ga.prototype.pick=function(e,t,n,i){ib=y(n,3),WD=y(i,ib);let o=e.context,r=o.uniformState,s=e.frameState,a=e.defaultView;e.view=a;let c=a.viewport;c.x=0,c.y=0,c.width=o.drawingBufferWidth,c.height=o.drawingBufferHeight;let u=a.passState;u.viewport=Ke.clone(c,u.viewport);let f=Qi.transformWindowToDrawingBuffer(e,t,c_e);e.jobScheduler.disableThisFrame(),e.updateFrameState(),s.cullingVolume=a_e(e,f,ib,WD,c),s.invertClassification=!1,s.passes.pick=!0,s.tilesetPassState=nY,r.update(s),e.updateEnvironment(),uh.x=f.x-(ib-1)*.5,uh.y=e.drawingBufferHeight-f.y-(WD-1)*.5,uh.width=ib,uh.height=WD,u=a.pickFramebuffer.begin(uh,a.viewport),e.updateAndExecuteCommands(u,iY),e.resolveFramebuffers(u);let d=a.pickFramebuffer.end(uh);return o.endFrame(),d};function Aat(e,t){let n=e.context,i=e.frameState,o=e.environmentState,r=e.defaultView;e.view=r;let s=r.viewport;s.x=0,s.y=0,s.width=n.drawingBufferWidth,s.height=n.drawingBufferHeight;let a=r.passState;a.viewport=Ke.clone(s,a.viewport),e.clearPasses(i.passes),i.passes.pick=!0,i.passes.depth=!0,i.cullingVolume=a_e(e,t,1,1,s),i.tilesetPassState=nY,e.updateEnvironment(),o.renderTranslucentDepthForPick=!0,a=r.pickDepthFramebuffer.update(n,t,s),e.updateAndExecuteCommands(a,iY),e.resolveFramebuffers(a),n.endFrame()}var xat=new wi,Cat=new pl,Tat=new tn,Eat=new Ir;ga.prototype.pickPositionWorldCoordinates=function(e,t,n){if(!e.useDepthPicking)return;let i=t.toString();if(this._pickPositionCacheDirty)this._pickPositionCache={},this._pickPositionCacheDirty=!1;else if(this._pickPositionCache.hasOwnProperty(i))return m.clone(this._pickPositionCache[i],n);let o=e.frameState,r=e.context,s=r.uniformState,a=e.defaultView;e.view=a;let c=Qi.transformWindowToDrawingBuffer(e,t,c_e);e.pickTranslucentDepth?Aat(e,c):(e.updateFrameState(),s.update(o),e.updateEnvironment()),c.y=e.drawingBufferHeight-c.y;let u=e.camera,f;l(u.frustum.fov)?f=u.frustum.clone(xat):l(u.frustum.infiniteProjectionMatrix)?f=u.frustum.clone(Cat):l(u.frustum.width)?f=u.frustum.clone(Tat):f=u.frustum.clone(Eat);let d=a.frustumCommandsList,p=d.length;for(let g=0;g<p;++g){let A=this.getPickDepth(e,g).getDepth(r,c.x,c.y);if(l(A)&&A>0&&A<1){let x=d[g],C;return e.mode===ne.SCENE2D?(C=u.position.z,u.position.z=C-x.near+1,f.far=Math.max(1,x.far-x.near),f.near=1,s.update(o),s.updateFrustum(f)):(f.near=x.near*(g!==0?e.opaqueFrustumNearOffset:1),f.far=x.far,s.updateFrustum(f)),n=Qi.drawingBufferToWgs84Coordinates(e,c,A,n),e.mode===ne.SCENE2D&&(u.position.z=C,s.update(o)),this._pickPositionCache[i]=m.clone(n),n}}this._pickPositionCache[i]=void 0};var bat=new he;ga.prototype.pickPosition=function(e,t,n){if(n=this.pickPositionWorldCoordinates(e,t,n),l(n)&&e.mode!==ne.SCENE3D){m.fromElements(n.y,n.z,n.x,n);let i=e.mapProjection,o=i.ellipsoid,r=i.unproject(n,bat);o.cartographicToCartesian(r,n)}return n};function l_e(e,t){let n,i,o=[],r=[],s=[],a=[];l(e)||(e=Number.MAX_VALUE);let c=t();for(;l(c);){let u=c.object,f=c.position,d=c.exclude;if(l(f)&&!l(u)){o.push(c);break}if(!l(u)||!l(u.primitive)||!d&&(o.push(c),0>=--e))break;let p=u.primitive,g=!1;typeof p.getGeometryInstanceAttributes=="function"&&l(u.id)&&(i=p.getGeometryInstanceAttributes(u.id),l(i)&&l(i.show)&&(g=!0,i.show=An.toValue(!1,i.show),s.push(i))),u instanceof Bs&&(g=!0,u.show=!1,a.push(u)),g||(p.show=!1,r.push(p)),c=t()}for(n=0;n<r.length;++n)r[n].show=!0;for(n=0;n<s.length;++n)i=s[n],i.show=An.toValue(!0,i.show);for(n=0;n<a.length;++n)a[n].show=!0;return o}ga.prototype.drillPick=function(e,t,n,i,o){let r=this;return l_e(n,function(){let c=r.pick(e,t,i,o);if(l(c))return{object:c,position:void 0,exclude:!1}}).map(function(c){return c.object})};var r_e=new m,Sat=new m;function wat(e,t,n){this.ray=e,this.width=t,this.tilesets=n,this.ready=!1;let i=this;this.promise=new Promise(o=>{i._completePick=()=>{o()}})}function u_e(e,t,n,i){let o=t.direction,r=m.mostOrthogonalAxis(o,r_e),s=m.cross(o,r,r_e),a=m.cross(o,s,Sat);return i.position=t.origin,i.direction=o,i.up=a,i.right=s,i.frustum.width=y(n,s_e),i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC)}function vat(e,t,n){let i=t.frameState,o=n.ray,r=n.width,s=n.tilesets,a=e._pickOffscreenView.camera,c=u_e(e,o,r,a),u=lat;u.camera=a,u.cullingVolume=c;let f=!0,d=s.length;for(let p=0;p<d;++p){let g=s[p];g.show&&t.primitives.contains(g)&&(g.updateForPass(i,u),f=f&&u.ready)}return f&&n._completePick(),f}ga.prototype.updateMostDetailedRayPicks=function(e){let t=this._mostDetailedRayPicks;for(let n=0;n<t.length;++n)vat(this,e,t[n])&&t.splice(n--,1)};function f_e(e,t,n){let i=e.length;for(let o=0;o<i;++o){let r=e.get(o);r.show&&(l(r.isCesium3DTileset)?(!l(t)||t.indexOf(r)===-1)&&n.push(r):r instanceof Xl&&f_e(r,t,n))}}function QV(e,t,n,i,o,r){let s=[];if(f_e(t.primitives,i,s),s.length===0)return Promise.resolve(r());let a=new wat(n,o,s);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return r()})}function Dat(e,t){return!l(e)||!l(t)||t.length===0?!1:t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1}function Iat(e,t,n,i,o,r,s){let a=t.context,c=a.uniformState,u=t.frameState,f=e._pickOffscreenView;t.view=f,u_e(e,n,o,f.camera),uh=Ke.clone(f.viewport,uh);let d=f.pickFramebuffer.begin(uh,f.viewport);t.jobScheduler.disableThisFrame(),t.updateFrameState(),u.invertClassification=!1,u.passes.pick=!0,u.passes.offscreen=!0,s?u.tilesetPassState=uat:u.tilesetPassState=nY,c.update(u),t.updateEnvironment(),t.updateAndExecuteCommands(d,iY),t.resolveFramebuffers(d);let p,g=f.pickFramebuffer.end(uh);if(t.context.depthTexture){let h=f.frustumCommandsList.length;for(let A=0;A<h;++A){let C=e.getPickDepth(t,A).getDepth(a,0,0);if(l(C)&&C>0&&C<1){let T=f.frustumCommandsList[A],E=T.near*(A!==0?t.opaqueFrustumNearOffset:1),S=T.far,v=E+C*(S-E);p=In.getPoint(n,v);break}}}if(t.view=t.defaultView,a.endFrame(),l(g)||l(p))return{object:g,position:p,exclude:!l(p)&&r||Dat(g,i)}}function d_e(e,t,n,i,o,r,s,a){return l_e(i,function(){return Iat(e,t,n,o,r,s,a)})}function ob(e,t,n,i,o,r,s){let a=d_e(e,t,n,1,i,o,r,s);if(a.length>0)return a[0]}function m_e(e,t,n,i,o,r,s,a){return d_e(e,t,n,i,o,r,s,a)}function $V(e,t){return new Promise((n,i)=>{t.then(function(o){let r=e.postRender.addEventListener(function(){r(),n(o)});e.requestRender()}).catch(function(o){i(o)})})}ga.prototype.pickFromRay=function(e,t,n,i){return ob(this,e,t,n,i,!1,!1)};ga.prototype.drillPickFromRay=function(e,t,n,i,o){return m_e(this,e,t,n,i,o,!1,!1)};ga.prototype.pickFromRayMostDetailed=function(e,t,n,i){let o=this;return t=In.clone(t),n=l(n)?n.slice():n,$V(e,QV(o,e,t,n,i,function(){return ob(o,e,t,n,i,!1,!0)}))};ga.prototype.drillPickFromRayMostDetailed=function(e,t,n,i,o){let r=this;return t=In.clone(t),i=l(i)?i.slice():i,$V(e,QV(r,e,t,i,o,function(){return m_e(r,e,t,n,i,o,!1,!0)}))};var Pat=new m,Oat=new m,Mat=new In,h_e=new he;function oY(e,t){let n=e.globe,i=l(n)?n.ellipsoid:e.mapProjection.ellipsoid,o=si._defaultMaxTerrainHeight,r=i.geodeticSurfaceNormalCartographic(t,Oat),s=he.toCartesian(t,i,Pat),a=Mat;a.origin=s,a.direction=r;let c=new In;return In.getPoint(a,o,c.origin),m.negate(r,c.direction),c}function p_e(e,t){let n=e.globe,i=l(n)?n.ellipsoid:e.mapProjection.ellipsoid,o=he.fromCartesian(t,i,h_e);return oY(e,o)}function __e(e,t){let n=e.globe,i=l(n)?n.ellipsoid:e.mapProjection.ellipsoid;return he.fromCartesian(t,i,h_e).height}function Rat(e,t,n,i,o){let r=oY(t,n);return QV(e,t,r,i,o,function(){let s=ob(e,t,r,i,o,!0,!0);if(l(s))return __e(t,s.position)})}function Bat(e,t,n,i,o,r){let s=p_e(t,n);return QV(e,t,s,i,o,function(){let a=ob(e,t,s,i,o,!0,!0);if(l(a))return m.clone(a.position,r)})}ga.prototype.sampleHeight=function(e,t,n,i){let o=oY(e,t),r=ob(this,e,o,n,i,!0,!1);if(l(r))return __e(e,r.position)};ga.prototype.clampToHeight=function(e,t,n,i,o){let r=p_e(e,t),s=ob(this,e,r,n,i,!0,!1);if(l(s))return m.clone(s.position,o)};ga.prototype.sampleHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Rat(this,e,t[s],n,i);return $V(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c].height=s[c];return t}))};ga.prototype.clampToHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Bat(this,e,t[s],n,i,t[s]);return $V(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c]=s[c];return t}))};ga.prototype.destroy=function(){this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy()};var ek=ga;var tk=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + color /= texture(autoExposure, vec2(0.5)).r; +#endif + color = czm_acesTonemapping(color); + color = czm_inverseGamma(color); + + out_FragColor = vec4(color, fragmentColor.a); +} +`;var nk=`uniform sampler2D randomTexture; +uniform sampler2D depthTexture; +uniform float intensity; +uniform float bias; +uniform float lengthCap; +uniform float stepSize; +uniform float frustumLength; + +in vec2 v_textureCoordinates; + +vec4 clipToEye(vec2 uv, float depth) +{ + vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); + vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0); + posEC = posEC / posEC.w; + return posEC; +} + +//Reconstruct Normal Without Edge Removation +vec3 getNormalXEdge(vec3 posInCamera, float depthU, float depthD, float depthL, float depthR, vec2 pixelSize) +{ + vec4 posInCameraUp = clipToEye(v_textureCoordinates - vec2(0.0, pixelSize.y), depthU); + vec4 posInCameraDown = clipToEye(v_textureCoordinates + vec2(0.0, pixelSize.y), depthD); + vec4 posInCameraLeft = clipToEye(v_textureCoordinates - vec2(pixelSize.x, 0.0), depthL); + vec4 posInCameraRight = clipToEye(v_textureCoordinates + vec2(pixelSize.x, 0.0), depthR); + + vec3 up = posInCamera.xyz - posInCameraUp.xyz; + vec3 down = posInCameraDown.xyz - posInCamera.xyz; + vec3 left = posInCamera.xyz - posInCameraLeft.xyz; + vec3 right = posInCameraRight.xyz - posInCamera.xyz; + + vec3 DX = length(left) < length(right) ? left : right; + vec3 DY = length(up) < length(down) ? up : down; + + return normalize(cross(DY, DX)); +} + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + vec4 posInCamera = clipToEye(v_textureCoordinates, depth); + + if (posInCamera.z > frustumLength) + { + out_FragColor = vec4(1.0); + return; + } + + vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; + float depthU = czm_readDepth(depthTexture, v_textureCoordinates - vec2(0.0, pixelSize.y)); + float depthD = czm_readDepth(depthTexture, v_textureCoordinates + vec2(0.0, pixelSize.y)); + float depthL = czm_readDepth(depthTexture, v_textureCoordinates - vec2(pixelSize.x, 0.0)); + float depthR = czm_readDepth(depthTexture, v_textureCoordinates + vec2(pixelSize.x, 0.0)); + vec3 normalInCamera = getNormalXEdge(posInCamera.xyz, depthU, depthD, depthL, depthR, pixelSize); + + float ao = 0.0; + vec2 sampleDirection = vec2(1.0, 0.0); + float gapAngle = 90.0 * czm_radiansPerDegree; + + // RandomNoise + float randomVal = texture(randomTexture, v_textureCoordinates / pixelSize / 255.0).x; + + //Loop for each direction + for (int i = 0; i < 4; i++) + { + float newGapAngle = gapAngle * (float(i) + randomVal); + float cosVal = cos(newGapAngle); + float sinVal = sin(newGapAngle); + + //Rotate Sampling Direction + vec2 rotatedSampleDirection = vec2(cosVal * sampleDirection.x - sinVal * sampleDirection.y, sinVal * sampleDirection.x + cosVal * sampleDirection.y); + float localAO = 0.0; + float localStepSize = stepSize; + + //Loop for each step + for (int j = 0; j < 6; j++) + { + vec2 newCoords = v_textureCoordinates + rotatedSampleDirection * localStepSize * pixelSize; + + //Exception Handling + if(newCoords.x > 1.0 || newCoords.y > 1.0 || newCoords.x < 0.0 || newCoords.y < 0.0) + { + break; + } + + float stepDepthInfo = czm_readDepth(depthTexture, newCoords); + vec4 stepPosInCamera = clipToEye(newCoords, stepDepthInfo); + vec3 diffVec = stepPosInCamera.xyz - posInCamera.xyz; + float len = length(diffVec); + + if (len > lengthCap) + { + break; + } + + float dotVal = clamp(dot(normalInCamera, normalize(diffVec)), 0.0, 1.0 ); + float weight = len / lengthCap; + weight = 1.0 - weight * weight; + + if (dotVal < bias) + { + dotVal = 0.0; + } + + localAO = max(localAO, dotVal * weight); + localStepSize += stepSize; + } + ao += localAO; + } + + ao /= 4.0; + ao = 1.0 - clamp(ao, 0.0, 1.0); + ao = pow(ao, intensity); + out_FragColor = vec4(vec3(ao), 1.0); +} +`;var ik=`uniform sampler2D colorTexture; +uniform sampler2D ambientOcclusionTexture; +uniform bool ambientOcclusionOnly; +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec4 ao = texture(ambientOcclusionTexture, v_textureCoordinates); + out_FragColor = ambientOcclusionOnly ? ao : ao * color; +} +`;var ok=`uniform sampler2D colorTexture; +uniform float gradations; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = vec4(rgb, 1.0); + return; + } +#endif + float luminance = czm_luminance(rgb); + float darkness = luminance * gradations; + darkness = (darkness - fract(darkness)) / gradations; + out_FragColor = vec4(vec3(darkness), 1.0); +} +`;var rk=`uniform sampler2D colorTexture; +uniform sampler2D bloomTexture; +uniform bool glowOnly; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = color; + return; + } +#endif + + vec4 bloom = texture(bloomTexture, v_textureCoordinates); + out_FragColor = glowOnly ? bloom : bloom + color; +} +`;var sk=`uniform sampler2D colorTexture; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 target = vec3(0.0); + out_FragColor = vec4(mix(target, rgb, brightness), 1.0); +} +`;var ak=`uniform sampler2D colorTexture; +uniform float contrast; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 sceneColor = texture(colorTexture, v_textureCoordinates).xyz; + sceneColor = czm_RGBToHSB(sceneColor); + sceneColor.z += brightness; + sceneColor = czm_HSBToRGB(sceneColor); + + float factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast)); + sceneColor = factor * (sceneColor - vec3(0.5)) + vec3(0.5); + out_FragColor = vec4(sceneColor, 1.0); +} +`;var ck=`uniform sampler2D colorTexture; +uniform sampler2D blurTexture; +uniform sampler2D depthTexture; +uniform float focalDistance; + +in vec2 v_textureCoordinates; + +vec4 toEye(vec2 uv, float depth) +{ + vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); + vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0); + posInCamera = posInCamera / posInCamera.w; + return posInCamera; +} + +float computeDepthBlur(float depth) +{ + float f; + if (depth < focalDistance) + { + f = (focalDistance - depth) / (focalDistance - czm_currentFrustum.x); + } + else + { + f = (depth - focalDistance) / (czm_currentFrustum.y - focalDistance); + f = pow(f, 0.1); + } + f *= f; + f = clamp(f, 0.0, 1.0); + return pow(f, 0.5); +} + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + vec4 posInCamera = toEye(v_textureCoordinates, depth); + float d = computeDepthBlur(-posInCamera.z); + out_FragColor = mix(texture(colorTexture, v_textureCoordinates), texture(blurTexture, v_textureCoordinates), d); +} +`;var lk=`uniform sampler2D depthTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + out_FragColor = vec4(vec3(depth), 1.0); +} +`;var uk=`uniform sampler2D depthTexture; +uniform float length; +uniform vec4 color; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float directions[3]; + directions[0] = -1.0; + directions[1] = 0.0; + directions[2] = 1.0; + + float scalars[3]; + scalars[0] = 3.0; + scalars[1] = 10.0; + scalars[2] = 3.0; + + float padx = czm_pixelRatio / czm_viewport.z; + float pady = czm_pixelRatio / czm_viewport.w; + +#ifdef CZM_SELECTED_FEATURE + bool selected = false; + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + selected = selected || czm_selected(vec2(-padx, dir * pady)); + selected = selected || czm_selected(vec2(padx, dir * pady)); + selected = selected || czm_selected(vec2(dir * padx, -pady)); + selected = selected || czm_selected(vec2(dir * padx, pady)); + if (selected) + { + break; + } + } + if (!selected) + { + out_FragColor = vec4(color.rgb, 0.0); + return; + } +#endif + + float horizEdge = 0.0; + float vertEdge = 0.0; + + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + float scale = scalars[i]; + + horizEdge -= texture(depthTexture, v_textureCoordinates + vec2(-padx, dir * pady)).x * scale; + horizEdge += texture(depthTexture, v_textureCoordinates + vec2(padx, dir * pady)).x * scale; + + vertEdge -= texture(depthTexture, v_textureCoordinates + vec2(dir * padx, -pady)).x * scale; + vertEdge += texture(depthTexture, v_textureCoordinates + vec2(dir * padx, pady)).x * scale; + } + + float len = sqrt(horizEdge * horizEdge + vertEdge * vertEdge); + out_FragColor = vec4(color.rgb, len > length ? color.a : 0.0); +} +`;var fk=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +// See slides 142 and 143: +// http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#endif + + const float A = 0.22; // shoulder strength + const float B = 0.30; // linear strength + const float C = 0.10; // linear angle + const float D = 0.20; // toe strength + const float E = 0.01; // toe numerator + const float F = 0.30; // toe denominator + + const float white = 11.2; // linear white point value + + vec3 c = ((color * (A * color + C * B) + D * E) / (color * ( A * color + B) + D * F)) - E / F; + float w = ((white * (A * white + C * B) + D * E) / (white * ( A * white + B) + D * F)) - E / F; + + c = czm_inverseGamma(c / w); + out_FragColor = vec4(c, fragmentColor.a); +} +`;var dk=`in vec2 v_textureCoordinates; + +uniform sampler2D colorTexture; + +const float fxaaQualitySubpix = 0.5; +const float fxaaQualityEdgeThreshold = 0.125; +const float fxaaQualityEdgeThresholdMin = 0.0833; + +void main() +{ + vec2 fxaaQualityRcpFrame = vec2(1.0) / czm_viewport.zw; + vec4 color = FxaaPixelShader( + v_textureCoordinates, + colorTexture, + fxaaQualityRcpFrame, + fxaaQualitySubpix, + fxaaQualityEdgeThreshold, + fxaaQualityEdgeThresholdMin); + float alpha = texture(colorTexture, v_textureCoordinates).a; + out_FragColor = vec4(color.rgb, alpha); +} +`;var NA=`#define SAMPLES 8 + +uniform float delta; +uniform float sigma; +uniform float direction; // 0.0 for x direction, 1.0 for y direction + +uniform sampler2D colorTexture; + +#ifdef USE_STEP_SIZE +uniform float stepSize; +#else +uniform vec2 step; +#endif + +in vec2 v_textureCoordinates; + +// Incremental Computation of the Gaussian: +// https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch40.html + +void main() +{ + vec2 st = v_textureCoordinates; + vec2 dir = vec2(1.0 - direction, direction); + +#ifdef USE_STEP_SIZE + vec2 step = vec2(stepSize * (czm_pixelRatio / czm_viewport.zw)); +#else + vec2 step = step; +#endif + + vec3 g; + g.x = 1.0 / (sqrt(czm_twoPi) * sigma); + g.y = exp((-0.5 * delta * delta) / (sigma * sigma)); + g.z = g.y * g.y; + + vec4 result = texture(colorTexture, st) * g.x; + for (int i = 1; i < SAMPLES; ++i) + { + g.xy *= g.yz; + + vec2 offset = float(i) * dir * step; + result += texture(colorTexture, st - offset) * g.x; + result += texture(colorTexture, st + offset) * g.x; + } + + out_FragColor = result; +} +`;var mk=`uniform sampler2D colorTexture; +uniform sampler2D dirtTexture; +uniform sampler2D starTexture; +uniform vec2 dirtTextureDimensions; +uniform float distortion; +uniform float ghostDispersal; +uniform float haloWidth; +uniform float dirtAmount; +uniform float earthRadius; +uniform float intensity; + +in vec2 v_textureCoordinates; + +// whether it is in space or not +// 6500000.0 is empirical value +#define DISTANCE_TO_SPACE 6500000.0 + +// return ndc from world coordinate biased earthRadius +vec4 getNDCFromWC(vec3 WC, float earthRadius) +{ + vec4 positionEC = czm_view * vec4(WC, 1.0); + positionEC = vec4(positionEC.x + earthRadius, positionEC.y, positionEC.z, 1.0); + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + return czm_viewportOrthographic * vec4(positionWC.xy, -positionWC.z, 1.0); +} + +// Check if current pixel is included Earth +// if then mask it gradually +float isInEarth(vec2 texcoord, vec2 sceneSize) +{ + vec2 NDC = texcoord * 2.0 - 1.0; + vec4 earthPosSC = getNDCFromWC(vec3(0.0), 0.0); + vec4 earthPosSCEdge = getNDCFromWC(vec3(0.0), earthRadius * 1.5); + NDC.xy -= earthPosSC.xy; + + float X = abs(NDC.x) * sceneSize.x; + float Y = abs(NDC.y) * sceneSize.y; + + return clamp(0.0, 1.0, max(sqrt(X * X + Y * Y) / max(abs(earthPosSCEdge.x * sceneSize.x), 1.0) - 0.8 , 0.0)); +} + +// For Chromatic effect +vec4 textureDistorted(sampler2D tex, vec2 texcoord, vec2 direction, vec3 distortion, bool isSpace) +{ + vec2 sceneSize = czm_viewport.zw; + vec3 color; + if(isSpace) + { + color.r = isInEarth(texcoord + direction * distortion.r, sceneSize) * texture(tex, texcoord + direction * distortion.r).r; + color.g = isInEarth(texcoord + direction * distortion.g, sceneSize) * texture(tex, texcoord + direction * distortion.g).g; + color.b = isInEarth(texcoord + direction * distortion.b, sceneSize) * texture(tex, texcoord + direction * distortion.b).b; + } + else + { + color.r = texture(tex, texcoord + direction * distortion.r).r; + color.g = texture(tex, texcoord + direction * distortion.g).g; + color.b = texture(tex, texcoord + direction * distortion.b).b; + } + return vec4(clamp(color, 0.0, 1.0), 0.0); +} + +void main(void) +{ + vec4 originalColor = texture(colorTexture, v_textureCoordinates); + vec3 rgb = originalColor.rgb; + bool isSpace = length(czm_viewerPositionWC.xyz) > DISTANCE_TO_SPACE; + + // Sun position + vec4 sunPos = czm_morphTime == 1.0 ? vec4(czm_sunPositionWC, 1.0) : vec4(czm_sunPositionColumbusView.zxy, 1.0); + vec4 sunPositionEC = czm_view * sunPos; + vec4 sunPositionWC = czm_eyeToWindowCoordinates(sunPositionEC); + sunPos = czm_viewportOrthographic * vec4(sunPositionWC.xy, -sunPositionWC.z, 1.0); + + // If sun is not in the screen space, use original color. + if(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1))) + { + // Lens flare is disabled when not in space until #5932 is fixed. + // https://github.com/CesiumGS/cesium/issues/5932 + out_FragColor = originalColor; + return; + } + + vec2 texcoord = vec2(1.0) - v_textureCoordinates; + vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; + vec2 invPixelSize = 1.0 / pixelSize; + vec3 distortionVec = pixelSize.x * vec3(-distortion, 0.0, distortion); + + // ghost vector to image centre: + vec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal; + vec3 direction = normalize(vec3(ghostVec, 0.0)); + + // sample ghosts: + vec4 result = vec4(0.0); + vec4 ghost = vec4(0.0); + for (int i = 0; i < 4; ++i) + { + vec2 offset = fract(texcoord + ghostVec * float(i)); + // Only bright spots from the centre of the source image + ghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace); + } + result += ghost; + + // sample halo + vec2 haloVec = normalize(ghostVec) * haloWidth; + float weightForHalo = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5)); + weightForHalo = pow(1.0 - weightForHalo, 5.0); + + result += textureDistorted(colorTexture, texcoord + haloVec, direction.xy, distortionVec, isSpace) * weightForHalo * 1.5; + + // dirt on lens + vec2 dirtTexCoords = (v_textureCoordinates * invPixelSize) / dirtTextureDimensions; + if (dirtTexCoords.x > 1.0) + { + dirtTexCoords.x = mod(floor(dirtTexCoords.x), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.x) : fract(dirtTexCoords.x); + } + if (dirtTexCoords.y > 1.0) + { + dirtTexCoords.y = mod(floor(dirtTexCoords.y), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.y) : fract(dirtTexCoords.y); + } + result += dirtAmount * texture(dirtTexture, dirtTexCoords); + + // Rotating starburst texture's coordinate + // dot(czm_view[0].xyz, vec3(0.0, 0.0, 1.0)) + dot(czm_view[1].xyz, vec3(0.0, 1.0, 0.0)) + float camrot = czm_view[0].z + czm_view[1].y; + float cosValue = cos(camrot); + float sinValue = sin(camrot); + mat3 rotation = mat3( + cosValue, -sinValue, 0.0, + sinValue, cosValue, 0.0, + 0.0, 0.0, 1.0 + ); + + vec3 st1 = vec3(v_textureCoordinates * 2.0 - vec2(1.0), 1.0); + vec3 st2 = vec3((rotation * st1).xy, 1.0); + vec3 st3 = st2 * 0.5 + vec3(0.5); + vec2 lensStarTexcoord = st3.xy; + float weightForLensFlare = length(vec3(sunPos.xy, 0.0)); + float oneMinusWeightForLensFlare = max(1.0 - weightForLensFlare, 0.0); + + if (!isSpace) + { + result *= oneMinusWeightForLensFlare * intensity * 0.2; + } + else + { + result *= oneMinusWeightForLensFlare * intensity; + result *= texture(starTexture, lensStarTexcoord) * pow(weightForLensFlare, 1.0) * max((1.0 - length(vec3(st1.xy, 0.0))), 0.0) * 2.0; + } + + result += texture(colorTexture, v_textureCoordinates); + + out_FragColor = result; +} +`;var hk=`uniform sampler2D colorTexture; +uniform vec3 white; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +// See equation 4: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#endif + color = (color * (1.0 + color / white)) / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var pk=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +float rand(vec2 co) +{ + return fract(sin(dot(co.xy ,vec2(12.9898, 78.233))) * 43758.5453); +} + +void main(void) +{ + float noiseValue = rand(v_textureCoordinates + sin(czm_frameNumber)) * 0.1; + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 green = vec3(0.0, 1.0, 0.0); + out_FragColor = vec4((noiseValue + rgb) * green, 1.0); +} +`;var _k=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#endif + +// See equation 3: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#endif + color = color / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var gk=`uniform sampler2D colorTexture; +uniform sampler2D silhouetteTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 silhouetteColor = texture(silhouetteTexture, v_textureCoordinates); + vec4 color = texture(colorTexture, v_textureCoordinates); + out_FragColor = mix(color, silhouetteColor, silhouetteColor.a); +} +`;/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */var yk=`/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS \`\`AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// NVIDIA GameWorks Graphics Samples GitHub link: https://github.com/NVIDIAGameWorks/GraphicsSamples +// Original FXAA 3.11 shader link: https://github.com/NVIDIAGameWorks/GraphicsSamples/blob/master/samples/es3-kepler/FXAA/FXAA3_11.h + +// Steps used to integrate into Cesium: +// * The following defines are set: +// #define FXAA_PC 1 +// #define FXAA_WEBGL_1 1 +// #define FXAA_GREEN_AS_LUMA 1 +// #define FXAA_EARLY_EXIT 1 +// #define FXAA_GLSL_120 1 +// * All other preprocessor directives besides the FXAA_QUALITY__P* directives were removed. +// * Double underscores are invalid for preprocessor directives so replace them with a single underscore. Replace +// /FXAA_QUALITY__P(.*)/g with /FXAA_QUALITY__P$1/. +// * There are no implicit conversions from ivec* to vec* so replace: +// #define FxaaInt2 ivec2 +// with +// #define FxaaInt2 vec2 +// * The texture2DLod function is only available in vertex shaders so replace: +// #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) +// #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) +// with +// #define FxaaTexTop(t, p) texture(t, p) +// #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) +// * FXAA_QUALITY_PRESET is prepended in the javascript code. We may want to expose that setting in the future. +// * The following parameters to FxaaPixelShader are unused and can be removed: +// fxaaConsolePosPos +// fxaaConsoleRcpFrameOpt +// fxaaConsoleRcpFrameOpt2 +// fxaaConsole360RcpFrameOpt2 +// fxaaConsoleEdgeSharpness +// fxaaConsoleEdgeThreshold +// fxaaConsoleEdgeThresholdMi +// fxaaConsole360ConstDir + +// +// Choose the quality preset. +// This needs to be compiled into the shader as it effects code. +// Best option to include multiple presets is to +// in each shader define the preset, then include this file. +// +// OPTIONS +// ----------------------------------------------------------------------- +// 10 to 15 - default medium dither (10=fastest, 15=highest quality) +// 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) +// 39 - no dither, very expensive +// +// NOTES +// ----------------------------------------------------------------------- +// 12 = slightly faster then FXAA 3.9 and higher edge quality (default) +// 13 = about same speed as FXAA 3.9 and better than 12 +// 23 = closest to FXAA 3.9 visually and performance wise +// _ = the lowest digit is directly related to performance +// _ = the highest digit is directly related to style +// +//#define FXAA_QUALITY_PRESET 12 + + +#if (FXAA_QUALITY_PRESET == 10) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 3.0 + #define FXAA_QUALITY_P2 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 11) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 3.0 + #define FXAA_QUALITY_P3 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 12) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 4.0 + #define FXAA_QUALITY_P4 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 13) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 4.0 + #define FXAA_QUALITY_P5 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 14) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 4.0 + #define FXAA_QUALITY_P6 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 15) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 20) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 2.0 + #define FXAA_QUALITY_P2 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 21) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 22) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 23) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 24) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 3.0 + #define FXAA_QUALITY_P6 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 25) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 26) + #define FXAA_QUALITY_PS 9 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 4.0 + #define FXAA_QUALITY_P8 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 27) + #define FXAA_QUALITY_PS 10 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 4.0 + #define FXAA_QUALITY_P9 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 28) + #define FXAA_QUALITY_PS 11 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 4.0 + #define FXAA_QUALITY_P10 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 29) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 39) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.0 + #define FXAA_QUALITY_P2 1.0 + #define FXAA_QUALITY_P3 1.0 + #define FXAA_QUALITY_P4 1.0 + #define FXAA_QUALITY_P5 1.5 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif + +#define FxaaBool bool +#define FxaaFloat float +#define FxaaFloat2 vec2 +#define FxaaFloat3 vec3 +#define FxaaFloat4 vec4 +#define FxaaHalf float +#define FxaaHalf2 vec2 +#define FxaaHalf3 vec3 +#define FxaaHalf4 vec4 +#define FxaaInt2 vec2 +#define FxaaTex sampler2D + +#define FxaaSat(x) clamp(x, 0.0, 1.0) +#define FxaaTexTop(t, p) texture(t, p) +#define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) + +FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; } + +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin +) { +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #define lumaM rgbyM.y + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; +/*--------------------------------------------------------------------------*/ + if(earlyExit) + return rgbyM; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0/range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; +/*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; +/*--------------------------------------------------------------------------*/ + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + if(horzSpan) lengthSign = fxaaQualityRcpFrame.y; + FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM; +/*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if(pairN) lengthSign = -lengthSign; + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if(!horzSpan) posB.x += lengthSign * 0.5; + if( horzSpan) posB.y += lengthSign * 0.5; +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY_P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY_P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY_P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY_P0; + FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); +/*--------------------------------------------------------------------------*/ + if(!pairN) lumaNN = lumaSS; + FxaaFloat gradientScaled = gradient * 1.0/4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; +/*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1; + FxaaBool doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1; +/*--------------------------------------------------------------------------*/ + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 3) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 4) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 5) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 6) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 7) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 8) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 9) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 10) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 11) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 12) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12; +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } +/*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if(!horzSpan) dstN = posM.y - posN.y; + if(!horzSpan) dstP = posP.y - posM.y; +/*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0/spanLength; +/*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; +/*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign; + if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign; + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); +} +`;function FA(){this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._ready=!1,this._name="czm_autoexposure",this._logDepthChanged=void 0,this._useLogDepth=void 0,this._framebuffers=void 0,this._previousLuminance=new mi,this._commands=void 0,this._clearCommand=void 0,this._minMaxLuminance=new H,this.enabled=!0,this._enabled=!0,this.minimumLuminance=.1,this.maximumLuminance=10}Object.defineProperties(FA.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){let e=this._framebuffers;if(l(e))return e[e.length-1].getColorTexture(0)}}});function g_e(e){let t=e._framebuffers;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].destroy();e._framebuffers=void 0,e._previousLuminance.destroy(),e._previousLuminance=void 0}function Lat(e,t){g_e(e);let n=e._width,i=e._height,o=t.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT,r=Math.ceil(Math.log(Math.max(n,i))/Math.log(3)),s=new Array(r);for(let c=0;c<r;++c)n=Math.max(Math.ceil(n/3),1),i=Math.max(Math.ceil(i/3),1),s[c]=new mi,s[c].update(t,n,i,1,o);let a=s[r-1].getColorTexture(0);e._previousLuminance.update(t,a.width,a.height,1,o),e._framebuffers=s}function y_e(e){let t=e._commands;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].shaderProgram.destroy();e._commands=void 0}function Nat(e,t){let n;if(t===0)n={colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions}};else{let i=e._framebuffers[t-1].getColorTexture(0);n={colorTexture:function(){return i},colorTextureDimensions:function(){return i.dimensions}}}return n.minMaxLuminance=function(){return e._minMaxLuminance},n.previousLuminance=function(){return e._previousLuminance.getColorTexture(0)},n}function Fat(e,t){let n=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +float sampleTexture(vec2 offset) { +`;return e===0?n+=` vec4 color = texture(colorTexture, v_textureCoordinates + offset); + return czm_luminance(color.rgb); +`:n+=` return texture(colorTexture, v_textureCoordinates + offset).r; +`,n+=`} + +`,n+=`uniform vec2 colorTextureDimensions; +uniform vec2 minMaxLuminance; +uniform sampler2D previousLuminance; +void main() { + float color = 0.0; + float xStep = 1.0 / colorTextureDimensions.x; + float yStep = 1.0 / colorTextureDimensions.y; + int count = 0; + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + vec2 offset; + offset.x = -xStep + float(i) * xStep; + offset.y = -yStep + float(j) * yStep; + if (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) { + continue; + } + color += sampleTexture(offset); + ++count; + } + } + if (count > 0) { + color /= float(count); + } +`,e===t-1&&(n+=` float previous = texture(previousLuminance, vec2(0.5)).r; + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); + color = previous + (color - previous) / (60.0 * 1.5); + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); +`),n+=` out_FragColor = vec4(color); +} +`,n}function Uat(e,t){y_e(e);let n=e._framebuffers,i=n.length,o=new Array(i);for(let r=0;r<i;++r)o[r]=t.createViewportQuadCommand(Fat(r,i),{framebuffer:n[r].framebuffer,uniformMap:Nat(e,r)});e._commands=o}FA.prototype.clear=function(e){let t=this._framebuffers;if(!l(t))return;let n=this._clearCommand;l(n)||(n=this._clearCommand=new oi({color:new z(0,0,0,0),framebuffer:void 0}));let i=t.length;for(let o=0;o<i;++o)t[o].clear(e,n)};FA.prototype.update=function(e){let t=e.drawingBufferWidth,n=e.drawingBufferHeight;(t!==this._width||n!==this._height)&&(this._width=t,this._height=n,Lat(this,e),Uat(this,e),this._ready||(this._ready=!0)),this._minMaxLuminance.x=this.minimumLuminance,this._minMaxLuminance.y=this.maximumLuminance;let i=this._framebuffers,o=i[i.length-1];i[i.length-1]=this._previousLuminance,this._commands[this._commands.length-1].framebuffer=this._previousLuminance.framebuffer,this._previousLuminance=o};FA.prototype.execute=function(e,t){this._colorTexture=t;let n=this._commands;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o)n[o].execute(e)};FA.prototype.isDestroyed=function(){return!1};FA.prototype.destroy=function(){return g_e(this),y_e(this),ue(this)};var Ak=FA;var Vat={NEAREST:0,LINEAR:1},pf=Vat;function UA(e){e=y(e,y.EMPTY_OBJECT);let t=e.fragmentShader,n=y(e.textureScale,1),i=y(e.pixelFormat,lt.RGBA);this._fragmentShader=t,this._uniforms=e.uniforms,this._textureScale=n,this._forcePowerOfTwo=y(e.forcePowerOfTwo,!1),this._sampleMode=y(e.sampleMode,pf.NEAREST),this._pixelFormat=i,this._pixelDatatype=y(e.pixelDatatype,Je.UNSIGNED_BYTE),this._clearColor=y(e.clearColor,z.BLACK),this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._idTexture=void 0,this._actualUniforms={},this._dirtyUniforms=[],this._texturesToRelease=[],this._texturesToCreate=[],this._texturePromise=void 0;let o=new ac;o.scissorTest={enabled:!0,rectangle:l(e.scissorRectangle)?Ke.clone(e.scissorRectangle):new Ke},this._passState=o,this._ready=!1;let r=e.name;l(r)||(r=jn()),this._name=r,this._logDepthChanged=void 0,this._useLogDepth=void 0,this._selectedIdTexture=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0,this._textureCache=void 0,this._index=void 0,this.enabled=!0,this._enabled=!0}Object.defineProperties(UA.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},fragmentShader:{get:function(){return this._fragmentShader}},uniforms:{get:function(){return this._uniforms}},textureScale:{get:function(){return this._textureScale}},forcePowerOfTwo:{get:function(){return this._forcePowerOfTwo}},sampleMode:{get:function(){return this._sampleMode}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},clearColor:{get:function(){return this._clearColor}},scissorRectangle:{get:function(){return this._passState.scissorTest.rectangle}},outputTexture:{get:function(){if(l(this._textureCache)){let e=this._textureCache.getFramebuffer(this._name);if(l(e))return e.getColorTexture(0)}}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});var kat=/uniform\s+sampler2D\s+depthTexture/g;UA.prototype._isSupported=function(e){return!kat.test(this._fragmentShader)||e.depthTexture};function zat(e,t,n){let i=t[n];return(typeof i=="string"||i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement||i instanceof ImageData)&&e._dirtyUniforms.push(n),{get:function(){return t[n]},set:function(o){let r=t[n];t[n]=o;let s=e._actualUniforms,a=s[n];l(a)&&a!==r&&a instanceof Bt&&!l(e._textureCache.getStageByName(n))&&(e._texturesToRelease.push(a),delete s[n],delete s[`${n}Dimensions`]),r instanceof Bt&&e._texturesToRelease.push(r),typeof o=="string"||o instanceof HTMLCanvasElement||o instanceof HTMLImageElement||o instanceof HTMLVideoElement||o instanceof ImageData?e._dirtyUniforms.push(n):s[n]=o}}}function Hat(e,t){return function(){let n=e._actualUniforms[t];return typeof n=="function"?n():n}}function Gat(e,t){return function(){let n=e[t]();if(l(n))return n.dimensions}}function Wat(e){if(l(e._uniformMap))return;let t={},n={},i=e._uniforms,o=e._actualUniforms;for(let r in i)if(i.hasOwnProperty(r)){typeof i[r]!="function"?(t[r]=Hat(e,r),n[r]=zat(e,i,r)):(t[r]=i[r],n[r]=i[r]),o[r]=i[r];let s=t[r]();(typeof s=="string"||s instanceof Bt||s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement)&&(t[`${r}Dimensions`]=Gat(t,r))}e._uniforms={},Object.defineProperties(e._uniforms,n),e._uniformMap=gt(t,{colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions},depthTexture:function(){return e._depthTexture},depthTextureDimensions:function(){return e._depthTexture.dimensions},czm_idTexture:function(){return e._idTexture},czm_selectedIdTexture:function(){return e._selectedIdTexture},czm_selectedIdTextureStep:function(){return 1/e._selectedIdTexture.width}})}function jat(e,t){if(l(e._command)&&!e._logDepthChanged&&!e._selectedDirty)return;let n=e._fragmentShader;if(l(e._selectedIdTexture)){let o=e._selectedIdTexture.width;n=n.replace(/in\s+vec2\s+v_textureCoordinates;/g,""),n=`#define CZM_SELECTED_FEATURE +uniform sampler2D czm_idTexture; +uniform sampler2D czm_selectedIdTexture; +uniform float czm_selectedIdTextureStep; +in vec2 v_textureCoordinates; +bool czm_selected(vec2 offset) +{ + bool selected = false; + vec4 id = texture(czm_idTexture, v_textureCoordinates + offset); + for (int i = 0; i < ${o}; ++i) + { + vec4 selectedId = texture(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5)); + if (all(equal(id, selectedId))) + { + return true; + } + } + return false; +} + +bool czm_selected() +{ + return czm_selected(vec2(0.0)); +} + +${n}`}let i=new He({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[n]});e._command=t.createViewportQuadCommand(i,{uniformMap:e._uniformMap,owner:e})}function Yat(e){let t=e._sampleMode,n,i;t===pf.LINEAR?(n=ln.LINEAR,i=bi.LINEAR):(n=ln.NEAREST,i=bi.NEAREST);let o=e._sampler;(!l(o)||o.minificationFilter!==n||o.magnificationFilter!==i)&&(e._sampler=new dn({wrapS:Dn.CLAMP_TO_EDGE,wrapT:Dn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i}))}function qat(e,t){return function(n){e._texturesToCreate.push({name:t,source:n})}}function Xat(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function Kat(e,t){let n,i,o,r=e._texturesToRelease,s=r.length;for(n=0;n<s;++n)i=r[n],i=i&&i.destroy();r.length=0;let a=e._texturesToCreate;for(s=a.length,n=0;n<s;++n){let d=a[n];o=d.name;let p=d.source;e._actualUniforms[o]=new Bt({context:t,source:p})}a.length=0;let c=e._dirtyUniforms;if(c.length===0&&!l(e._texturePromise)){e._ready=!0;return}if(c.length===0||l(e._texturePromise))return;s=c.length;let u=e._uniforms,f=[];for(n=0;n<s;++n){o=c[n];let d=u[o],p=e._textureCache.getStageByName(d);if(l(p))e._actualUniforms[o]=Xat(e,d);else if(typeof d=="string"){let g=new we({url:d});f.push(g.fetchImage().then(qat(e,o)))}else e._texturesToCreate.push({name:o,source:d})}c.length=0,f.length>0?(e._ready=!1,e._texturePromise=Promise.all(f).then(function(){e._ready=!0,e._texturePromise=void 0})):e._ready=!0}function A_e(e){l(e._command)&&(e._command.shaderProgram=e._command.shaderProgram&&e._command.shaderProgram.destroy(),e._command=void 0),e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy();let t=e._textureCache;if(!l(t))return;let n=e._uniforms,i=e._actualUniforms;for(let o in i)i.hasOwnProperty(o)&&i[o]instanceof Bt&&(l(t.getStageByName(n[o]))||i[o].destroy(),e._dirtyUniforms.push(o))}function Jat(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}function Zat(e,t){if(!e._selectedDirty)return;e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;let n=e._combinedSelected;if(!l(n))return;let i,o,r=0,s=n.length;for(i=0;i<s;++i)o=n[i],l(o.pickIds)?r+=o.pickIds.length:l(o.pickId)&&++r;if(s===0||r===0){let f=new Uint8Array(4);f[0]=255,f[1]=255,f[2]=255,f[3]=255,e._selectedIdTexture=new Bt({context:t,pixelFormat:lt.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:f,width:1,height:1},sampler:dn.NEAREST});return}let a,c=0,u=new Uint8Array(r*4);for(i=0;i<s;++i)if(o=n[i],l(o.pickIds)){let f=o.pickIds,d=f.length;for(let p=0;p<d;++p)a=f[p].color,u[c]=z.floatToByte(a.red),u[c+1]=z.floatToByte(a.green),u[c+2]=z.floatToByte(a.blue),u[c+3]=z.floatToByte(a.alpha),c+=4}else l(o.pickId)&&(a=o.pickId.color,u[c]=z.floatToByte(a.red),u[c+1]=z.floatToByte(a.green),u[c+2]=z.floatToByte(a.blue),u[c+3]=z.floatToByte(a.alpha),c+=4);e._selectedIdTexture=new Bt({context:t,pixelFormat:lt.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:u,width:r,height:1},sampler:dn.NEAREST})}UA.prototype.update=function(e,t){if(this.enabled!==this._enabled&&!this.enabled&&A_e(this),this._enabled=this.enabled,!this._enabled||(this._logDepthChanged=t!==this._useLogDepth,this._useLogDepth=t,this._selectedDirty=Jat(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0,Zat(this,e),Wat(this),Kat(this,e),jat(this,e),Yat(this),this._selectedDirty=!1,!this._ready))return;let n=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=n,!l(n))return;let i=n.getColorTexture(0),o;(i.width!==e.drawingBufferWidth||i.height!==e.drawingBufferHeight)&&(o=this._renderState,(!l(o)||i.width!==o.viewport.width||i.height!==o.viewport.height)&&(this._renderState=ze.fromCache({viewport:new Ke(0,0,i.width,i.height)}))),this._command.renderState=o};UA.prototype.execute=function(e,t,n,i){if(!l(this._command)||!l(this._command.framebuffer)||!this._ready||!this._enabled)return;this._colorTexture=t,this._depthTexture=n,this._idTexture=i,dn.equals(this._colorTexture.sampler,this._sampler)||(this._colorTexture.sampler=this._sampler);let o=this.scissorRectangle.width>0&&this.scissorRectangle.height>0?this._passState:void 0;l(o)&&(o.context=e),this._command.execute(e,o)};UA.prototype.isDestroyed=function(){return!1};UA.prototype.destroy=function(){return A_e(this),ue(this)};var Ao=UA;function VA(e){e=y(e,y.EMPTY_OBJECT),this._stages=e.stages,this._inputPreviousStageTexture=y(e.inputPreviousStageTexture,!0);let t=e.name;l(t)||(t=jn()),this._name=t,this._uniforms=e.uniforms,this._textureCache=void 0,this._index=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0}Object.defineProperties(VA.prototype,{ready:{get:function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)if(!e[n].ready)return!1;return!0}},name:{get:function(){return this._name}},enabled:{get:function(){return this._stages[0].enabled},set:function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)t[i].enabled=e}},uniforms:{get:function(){return this._uniforms}},inputPreviousStageTexture:{get:function(){return this._inputPreviousStageTexture}},length:{get:function(){return this._stages.length}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});VA.prototype._isSupported=function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)if(!t[i]._isSupported(e))return!1;return!0};VA.prototype.get=function(e){return this._stages[e]};function Qat(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}VA.prototype.update=function(e,t){this._selectedDirty=Qat(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0;let n=this._stages,i=n.length;for(let o=0;o<i;++o){let r=n[o];this._selectedDirty&&(r.parentSelected=this._combinedSelected),r.update(e,t)}};VA.prototype.isDestroyed=function(){return!1};VA.prototype.destroy=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var gl=VA;var wr={};function xk(e){let o=`#define USE_STEP_SIZE +${NA}`,r=new Ao({name:`${e}_x_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:pf.LINEAR}),s=new Ao({name:`${e}_y_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:pf.LINEAR}),a={};return Object.defineProperties(a,{delta:{get:function(){return r.uniforms.delta},set:function(c){let u=r.uniforms,f=s.uniforms;u.delta=f.delta=c}},sigma:{get:function(){return r.uniforms.sigma},set:function(c){let u=r.uniforms,f=s.uniforms;u.sigma=f.sigma=c}},stepSize:{get:function(){return r.uniforms.stepSize},set:function(c){let u=r.uniforms,f=s.uniforms;u.stepSize=f.stepSize=c}}}),new gl({name:e,stages:[r,s],uniforms:a})}wr.createBlurStage=function(){return xk("czm_blur")};wr.createDepthOfFieldStage=function(){let e=xk("czm_depth_of_field_blur"),t=new Ao({name:"czm_depth_of_field_composite",fragmentShader:ck,uniforms:{focalDistance:5,blurTexture:e.name}}),n={};return Object.defineProperties(n,{focalDistance:{get:function(){return t.uniforms.focalDistance},set:function(i){t.uniforms.focalDistance=i}},delta:{get:function(){return e.uniforms.delta},set:function(i){e.uniforms.delta=i}},sigma:{get:function(){return e.uniforms.sigma},set:function(i){e.uniforms.sigma=i}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(i){e.uniforms.stepSize=i}}}),new gl({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};wr.isDepthOfFieldSupported=function(e){return e.context.depthTexture};wr.createEdgeDetectionStage=function(){let e=jn();return new Ao({name:`czm_edge_detection_${e}`,fragmentShader:uk,uniforms:{length:.25,color:z.clone(z.BLACK)}})};wr.isEdgeDetectionSupported=function(e){return e.context.depthTexture};function $at(e){if(!l(e))return wr.createEdgeDetectionStage();let t=new gl({name:"czm_edge_detection_multiple",stages:e,inputPreviousStageTexture:!1}),n={},i="",o="";for(let a=0;a<e.length;++a)i+=`uniform sampler2D edgeTexture${a}; +`,o+=` vec4 edge${a} = texture(edgeTexture${a}, v_textureCoordinates); + if (edge${a}.a > 0.0) + { + color = edge${a}; + break; + } +`,n[`edgeTexture${a}`]=e[a].name;let r=`${i}in vec2 v_textureCoordinates; +void main() { + vec4 color = vec4(0.0); + for (int i = 0; i < ${e.length}; i++) + { +${o} } + out_FragColor = color; +} +`,s=new Ao({name:"czm_edge_detection_combine",fragmentShader:r,uniforms:n});return new gl({name:"czm_edge_detection_composite",stages:[t,s]})}wr.createSilhouetteStage=function(e){let t=$at(e),n=new Ao({name:"czm_silhouette_color_edges",fragmentShader:gk,uniforms:{silhouetteTexture:t.name}});return new gl({name:"czm_silhouette",stages:[t,n],inputPreviousStageTexture:!1,uniforms:t.uniforms})};wr.isSilhouetteSupported=function(e){return e.context.depthTexture};wr.createBloomStage=function(){let e=new Ao({name:"czm_bloom_contrast_bias",fragmentShader:ak,uniforms:{contrast:128,brightness:-.3}}),t=xk("czm_bloom_blur"),n=new gl({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),i=new Ao({name:"czm_bloom_generate_composite",fragmentShader:rk,uniforms:{glowOnly:!1,bloomTexture:n.name}}),o={};return Object.defineProperties(o,{glowOnly:{get:function(){return i.uniforms.glowOnly},set:function(r){i.uniforms.glowOnly=r}},contrast:{get:function(){return e.uniforms.contrast},set:function(r){e.uniforms.contrast=r}},brightness:{get:function(){return e.uniforms.brightness},set:function(r){e.uniforms.brightness=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},stepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}}}),new gl({name:"czm_bloom",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};wr.createAmbientOcclusionStage=function(){let e=new Ao({name:"czm_ambient_occlusion_generate",fragmentShader:nk,uniforms:{intensity:3,bias:.1,lengthCap:.26,stepSize:1.95,frustumLength:1e3,randomTexture:void 0}}),t=xk("czm_ambient_occlusion_blur");t.uniforms.stepSize=.86;let n=new gl({name:"czm_ambient_occlusion_generate_blur",stages:[e,t]}),i=new Ao({name:"czm_ambient_occlusion_composite",fragmentShader:ik,uniforms:{ambientOcclusionOnly:!1,ambientOcclusionTexture:n.name}}),o={};return Object.defineProperties(o,{intensity:{get:function(){return e.uniforms.intensity},set:function(r){e.uniforms.intensity=r}},bias:{get:function(){return e.uniforms.bias},set:function(r){e.uniforms.bias=r}},lengthCap:{get:function(){return e.uniforms.lengthCap},set:function(r){e.uniforms.lengthCap=r}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(r){e.uniforms.stepSize=r}},frustumLength:{get:function(){return e.uniforms.frustumLength},set:function(r){e.uniforms.frustumLength=r}},randomTexture:{get:function(){return e.uniforms.randomTexture},set:function(r){e.uniforms.randomTexture=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},blurStepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}},ambientOcclusionOnly:{get:function(){return i.uniforms.ambientOcclusionOnly},set:function(r){i.uniforms.ambientOcclusionOnly=r}}}),new gl({name:"czm_ambient_occlusion",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};wr.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var ect=`#define FXAA_QUALITY_PRESET 39 +${yk} +${dk}`;wr.createFXAAStage=function(){return new Ao({name:"czm_FXAA",fragmentShader:ect,sampleMode:pf.LINEAR})};wr.createAcesTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=tk,new Ao({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0}})};wr.createFilmicTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=fk,new Ao({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0}})};wr.createReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=_k,new Ao({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0}})};wr.createModifiedReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=hk,new Ao({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:z.WHITE,autoExposure:void 0}})};wr.createAutoExposureStage=function(){return new Ak};wr.createBlackAndWhiteStage=function(){return new Ao({name:"czm_black_and_white",fragmentShader:ok,uniforms:{gradations:5}})};wr.createBrightnessStage=function(){return new Ao({name:"czm_brightness",fragmentShader:sk,uniforms:{brightness:.5}})};wr.createNightVisionStage=function(){return new Ao({name:"czm_night_vision",fragmentShader:pk})};wr.createDepthViewStage=function(){return new Ao({name:"czm_depth_view",fragmentShader:lk})};wr.createLensFlareStage=function(){return new Ao({name:"czm_lens_flare",fragmentShader:mk,uniforms:{dirtTexture:en("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:en("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,dirtAmount:.4,earthRadius:oe.WGS84.maximumRadius}})};var Ud=wr;function Yp(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function YD(e){for(;l(e.length);)e=e.get(e.length-1);return e.name}function rY(e,t,n,i,o){if(!i.enabled||!i._isSupported(t))return o;let r=n[i.name]={};if(l(o)){let a=e.getStageByName(o);r[YD(a)]=!0}let s=i.uniforms;if(l(s)){let a=Object.getOwnPropertyNames(s),c=a.length;for(let u=0;u<c;++u){let f=s[a[u]];if(typeof f=="string"){let d=e.getStageByName(f);l(d)&&(r[YD(d)]=!0)}}}return i.name}function jD(e,t,n,i,o){if(l(i.enabled)&&!i.enabled||l(i._isSupported)&&!i._isSupported(t))return o;let r=o,s=!l(i.inputPreviousStageTexture)||i.inputPreviousStageTexture,a=o,c=i.length;for(let d=0;d<c;++d){let p=i.get(d);l(p.length)?a=jD(e,t,n,p,o):a=rY(e,t,n,p,o),s&&(o=a)}let u,f;if(s)for(u=1;u<c;++u)f=YD(i.get(u)),l(n[f])||(n[f]={}),n[f][r]=!0;else for(u=1;u<c;++u){f=YD(i.get(u));let d=n[f];for(let p=0;p<u;++p)d[YD(i.get(p))]=!0}return a}function tct(e,t){let n={};if(l(e.ambientOcclusion)){let i=e.ambientOcclusion,o=e.bloom,r=e._tonemapping,s=e.fxaa,a=jD(e,t,n,i,void 0);a=jD(e,t,n,o,a),a=rY(e,t,n,r,a),a=jD(e,t,n,e,a),rY(e,t,n,s,a)}else jD(e,t,n,e,void 0);return n}function nct(e,t,n){let o=e._collection.getStageByName(t),r=o._textureScale,s=o._forcePowerOfTwo,a=o._pixelFormat,c=o._pixelDatatype,u=o._clearColor,f,d,p=e._framebuffers,g=p.length;for(f=0;f<g;++f){if(d=p[f],r!==d.textureScale||s!==d.forcePowerOfTwo||a!==d.pixelFormat||c!==d.pixelDatatype||!z.equals(u,d.clearColor))continue;let h=d.stages,A=h.length,x=!1;for(let C=0;C<A;++C)if(n[h[C]]){x=!0;break}if(!x)break}return l(d)&&f<g?(d.stages.push(t),d):(d={textureScale:r,forcePowerOfTwo:s,pixelFormat:a,pixelDatatype:c,clearColor:u,stages:[t],buffer:new mi({pixelFormat:a,pixelDatatype:c}),clear:void 0},p.push(d),d)}function ict(e,t){let n=tct(e._collection,t);for(let i in n)n.hasOwnProperty(i)&&(e._stageNameToFramebuffer[i]=nct(e,i,n[i]))}function sY(e){let t=e._framebuffers,n=t.length;for(let i=0;i<n;++i)t[i].buffer.destroy()}function oct(e,t){let n=e._width,i=e._height,o=e._framebuffers,r=o.length;for(let s=0;s<r;++s){let a=o[s],c=a.textureScale,u=Math.ceil(n*c),f=Math.ceil(i*c),d=Math.min(u,f);a.forcePowerOfTwo&&(P.isPowerOfTwo(d)||(d=P.nextPowerOfTwo(d)),u=d,f=d),a.buffer.update(t,u,f),a.clear=new oi({color:a.clearColor,framebuffer:a.buffer.framebuffer})}}Yp.prototype.updateDependencies=function(){this._updateDependencies=!0};Yp.prototype.update=function(e){let t=this._collection,n=this._updateDependencies,i=l(t.ambientOcclusion)&&t.ambientOcclusion.enabled&&t.ambientOcclusion._isSupported(e),o=l(t.bloom)&&t.bloom.enabled&&t.bloom._isSupported(e),r=l(t._tonemapping)&&t._tonemapping.enabled&&t._tonemapping._isSupported(e),s=l(t.fxaa)&&t.fxaa.enabled&&t.fxaa._isSupported(e),a=!l(t._activeStages)||t._activeStages.length>0||i||o||r||s;if((n||!a&&this._framebuffers.length>0)&&(sY(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),!n&&!a)return;this._framebuffers.length===0&&ict(this,e);let c=e.drawingBufferWidth,u=e.drawingBufferHeight,f=this._width!==c||this._height!==u;!n&&!f||(this._width=c,this._height=u,this._updateDependencies=!1,sY(this),oct(this,e))};Yp.prototype.clear=function(e){let t=this._framebuffers;for(let n=0;n<t.length;++n)t[n].clear.execute(e)};Yp.prototype.getStageByName=function(e){return this._collection.getStageByName(e)};Yp.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)};Yp.prototype.getFramebuffer=function(e){let t=this._stageNameToFramebuffer[e];if(l(t))return t.buffer.framebuffer};Yp.prototype.isDestroyed=function(){return!1};Yp.prototype.destroy=function(){return sY(this),ue(this)};var rb=Yp;var qD={REINHARD:0,MODIFIED_REINHARD:1,FILMIC:2,ACES:3,validate:function(e){return e===qD.REINHARD||e===qD.MODIFIED_REINHARD||e===qD.FILMIC||e===qD.ACES}},kA=Object.freeze(qD);var aY=[];function Oc(){let e=Ud.createFXAAStage(),t=Ud.createAmbientOcclusionStage(),n=Ud.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=Ud.createAutoExposureStage(),this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=kA.ACES;let i=this._tonemapping;e.enabled=!1,t.enabled=!1,n.enabled=!1,i.enabled=!1;let o=new rb(this),r={},s=aY;for(s.push(e,t,n,i);s.length>0;){let c=s.pop();r[c.name]=c,c._textureCache=o;let u=c.length;if(l(u))for(let f=0;f<u;++f)s.push(c.get(f))}this._stages=[],this._activeStages=[],this._previousActiveStages=[],this._randomTexture=void 0;let a=this;t.uniforms.randomTexture=function(){return a._randomTexture},this._ao=t,this._bloom=n,this._fxaa=e,this._aoEnabled=void 0,this._bloomEnabled=void 0,this._tonemappingEnabled=void 0,this._fxaaEnabled=void 0,this._activeStagesChanged=!1,this._stagesRemoved=!1,this._textureCacheDirty=!1,this._stageNames=r,this._textureCache=o}Object.defineProperties(Oc.prototype,{ready:{get:function(){let e=!1,t=this._stages,n=t.length;for(let a=n-1;a>=0;--a){let c=t[a];e=e||c.ready&&c.enabled}let i=this._fxaa,o=this._ao,r=this._bloom,s=this._tonemapping;return e=e||i.ready&&i.enabled,e=e||o.ready&&o.enabled,e=e||r.ready&&r.enabled,e=e||s.ready&&s.enabled,e}},fxaa:{get:function(){return this._fxaa}},ambientOcclusion:{get:function(){return this._ao}},bloom:{get:function(){return this._bloom}},length:{get:function(){return cY(this),this._stages.length}},outputTexture:{get:function(){let e=this._fxaa;if(e.enabled&&e.ready)return this.getOutputTexture(e.name);let t=this._stages,n=t.length;for(let s=n-1;s>=0;--s){let a=t[s];if(l(a)&&a.ready&&a.enabled)return this.getOutputTexture(a.name)}let i=this._tonemapping;if(i.enabled&&i.ready)return this.getOutputTexture(i.name);let o=this._bloom;if(o.enabled&&o.ready)return this.getOutputTexture(o.name);let r=this._ao;if(r.enabled&&r.ready)return this.getOutputTexture(r.name)}},hasSelected:{get:function(){let e=this._stages.slice();for(;e.length>0;){let t=e.pop();if(!l(t))continue;if(l(t.selected))return!0;let n=t.length;if(l(n))for(let i=0;i<n;++i)e.push(t.get(i))}return!1}},tonemapper:{get:function(){return this._tonemapper},set:function(e){if(this._tonemapper===e)return;l(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());let t=this._autoExposureEnabled,n;switch(e){case kA.REINHARD:n=Ud.createReinhardTonemappingStage(t);break;case kA.MODIFIED_REINHARD:n=Ud.createModifiedReinhardTonemappingStage(t);break;case kA.FILMIC:n=Ud.createFilmicTonemappingStage(t);break;default:n=Ud.createAcesTonemappingStage(t);break}if(t){let i=this._autoExposure;n.uniforms.autoExposure=function(){return i.outputTexture}}this._tonemapper=e,this._tonemapping=n,l(this._stageNames)&&(this._stageNames[n.name]=n,n._textureCache=this._textureCache),this._textureCacheDirty=!0}}});function cY(e){if(!e._stagesRemoved)return;e._stagesRemoved=!1;let t=[],n=e._stages,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];s&&(s._index=r++,t.push(s))}e._stages=t}Oc.prototype.add=function(e){let t=this._stageNames,n=aY;for(n.push(e);n.length>0;){let o=n.pop();t[o.name]=o,o._textureCache=this._textureCache;let r=o.length;if(l(r))for(let s=0;s<r;++s)n.push(o.get(s))}let i=this._stages;return e._index=i.length,i.push(e),this._textureCacheDirty=!0,e};Oc.prototype.remove=function(e){if(!this.contains(e))return!1;let t=this._stageNames,n=aY;for(n.push(e);n.length>0;){let i=n.pop();delete t[i.name];let o=i.length;if(l(o))for(let r=0;r<o;++r)n.push(i.get(r))}return this._stages[e._index]=void 0,this._stagesRemoved=!0,this._textureCacheDirty=!0,e._index=void 0,e._textureCache=void 0,e.destroy(),!0};Oc.prototype.contains=function(e){return l(e)&&l(e._index)&&e._textureCache===this._textureCache};Oc.prototype.get=function(e){return cY(this),this._stages[e]};Oc.prototype.removeAll=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)this.remove(e[n]);e.length=0};Oc.prototype.getStageByName=function(e){return this._stageNames[e]};Oc.prototype.update=function(e,t,n){cY(this);let i=this._activeStages,o=this._activeStages=this._previousActiveStages;this._previousActiveStages=i;let r=this._stages,s=o.length=r.length,a,c,u=0;for(a=0;a<s;++a)c=r[a],c.ready&&c.enabled&&c._isSupported(e)&&(o[u++]=c);o.length=u;let f=u!==i.length;if(!f){for(a=0;a<u;++a)if(o[a]!==i[a]){f=!0;break}}let d=this._ao,p=this._bloom,g=this._autoExposure,h=this._tonemapping,A=this._fxaa;h.enabled=n;let x=d.enabled&&d._isSupported(e),C=p.enabled&&p._isSupported(e),T=h.enabled&&h._isSupported(e),E=A.enabled&&A._isSupported(e);if((f||this._textureCacheDirty||x!==this._aoEnabled||C!==this._bloomEnabled||T!==this._tonemappingEnabled||E!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._aoEnabled=x,this._bloomEnabled=C,this._tonemappingEnabled=T,this._fxaaEnabled=E,this._textureCacheDirty=!1),l(this._randomTexture)&&!x&&(this._randomTexture.destroy(),this._randomTexture=void 0),!l(this._randomTexture)&&x){s=256*256*3;let S=new Uint8Array(s);for(a=0;a<s;a+=3)S[a]=Math.floor(Math.random()*255);this._randomTexture=new Bt({context:e,pixelFormat:lt.RGB,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:S,width:256,height:256},sampler:new dn({wrapS:Dn.REPEAT,wrapT:Dn.REPEAT,minificationFilter:ln.NEAREST,magnificationFilter:bi.NEAREST})})}for(this._textureCache.update(e),A.update(e,t),d.update(e,t),p.update(e,t),h.update(e,t),this._autoExposureEnabled&&g.update(e,t),s=r.length,a=0;a<s;++a)r[a].update(e,t);for(u=0,a=0;a<s;++a)c=r[a],c.ready&&c.enabled&&c._isSupported(e)&&u++;f=u!==o.length,f&&this.update(e,t,n)};Oc.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)};function zA(e){for(;l(e.length);)e=e.get(e.length-1);return e.outputTexture}Oc.prototype.getOutputTexture=function(e){let t=this.getStageByName(e);if(l(t))return zA(t)};function fh(e,t,n,i,o){if(l(e.execute)){e.execute(t,n,i,o);return}let r=e.length,s;if(e.inputPreviousStageTexture)for(fh(e.get(0),t,n,i,o),s=1;s<r;++s)fh(e.get(s),t,zA(e.get(s-1)),i,o);else for(s=0;s<r;++s)fh(e.get(s),t,n,i,o)}Oc.prototype.execute=function(e,t,n,i){let o=this._activeStages,r=o.length,s=this._fxaa,a=this._ao,c=this._bloom,u=this._autoExposure,f=this._tonemapping,d=a.enabled&&a._isSupported(e),p=c.enabled&&c._isSupported(e),g=this._autoExposureEnabled,h=f.enabled&&f._isSupported(e),A=s.enabled&&s._isSupported(e);if(!A&&!d&&!p&&!h&&r===0)return;let x=t;d&&a.ready&&(fh(a,e,x,n,i),x=zA(a)),p&&c.ready&&(fh(c,e,x,n,i),x=zA(c)),g&&u.ready&&fh(u,e,x,n,i),h&&f.ready&&(fh(f,e,x,n,i),x=zA(f));let C=x;if(r>0){fh(o[0],e,x,n,i);for(let T=1;T<r;++T)fh(o[T],e,zA(o[T-1]),n,i);C=zA(o[r-1])}A&&s.ready&&fh(s,e,C,n,i)};Oc.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(fu,{uniformMap:{colorTexture:function(){return n.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};Oc.prototype.isDestroyed=function(){return!1};Oc.prototype.destroy=function(){return this._fxaa.destroy(),this._ao.destroy(),this._bloom.destroy(),this._autoExposure.destroy(),this._tonemapping.destroy(),this.removeAll(),this._textureCache=this._textureCache&&this._textureCache.destroy(),ue(this)};var Ck=Oc;var rct={SHIFT:0,CTRL:1,ALT:2},ya=Object.freeze(rct);var sct={LEFT_DOWN:0,LEFT_UP:1,LEFT_CLICK:2,LEFT_DOUBLE_CLICK:3,RIGHT_DOWN:5,RIGHT_UP:6,RIGHT_CLICK:7,MIDDLE_DOWN:10,MIDDLE_UP:11,MIDDLE_CLICK:12,MOUSE_MOVE:15,WHEEL:16,PINCH_START:17,PINCH_END:18,PINCH_MOVE:19},Cn=Object.freeze(sct);function yy(e,t,n){let i=e._element;if(i===document)return n.x=t.clientX,n.y=t.clientY,n;let o=i.getBoundingClientRect();return n.x=t.clientX-o.left,n.y=t.clientY-o.top,n}function hY(e,t){let n=e;return l(t)&&(n+=`+${t}`),n}function HA(e){if(e.shiftKey)return ya.SHIFT;if(e.ctrlKey)return ya.CTRL;if(e.altKey)return ya.ALT}var ls={LEFT:0,MIDDLE:1,RIGHT:2};function du(e,t,n,i){function o(r){i(e,r)}Gt.isInternetExplorer()?n.addEventListener(t,o,!1):n.addEventListener(t,o,{capture:!1,passive:!1}),e._removalFunctions.push(function(){n.removeEventListener(t,o,!1)})}function act(e){let t=e._element,n=l(t.disableRootEvents)?t:document;Gt.supportsPointerEvents()?(du(e,"pointerdown",t,mct),du(e,"pointerup",t,I_e),du(e,"pointermove",t,hct),du(e,"pointercancel",t,I_e)):(du(e,"mousedown",t,P_e),du(e,"mouseup",n,O_e),du(e,"mousemove",n,M_e),du(e,"touchstart",t,fct),du(e,"touchend",n,b_e),du(e,"touchmove",n,dct),du(e,"touchcancel",n,b_e)),du(e,"dblclick",t,lct);let i;"onwheel"in t?i="wheel":document.onmousewheel!==void 0?i="mousewheel":i="DOMMouseScroll",du(e,i,t,uct)}function cct(e){let t=e._removalFunctions;for(let n=0;n<t.length;++n)t[n]()}var x_e={position:new H};function pY(e){e._lastSeenTouchEvent=Ci()}function _Y(e){return Ci()-e._lastSeenTouchEvent>Vd.mouseEmulationIgnoreMilliseconds}function mY(e,t,n){let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)<n}function P_e(e,t){if(!_Y(e))return;let n=t.button;e._buttonDown[n]=!0;let i;if(n===ls.LEFT)i=Cn.LEFT_DOWN;else if(n===ls.MIDDLE)i=Cn.MIDDLE_DOWN;else if(n===ls.RIGHT)i=Cn.RIGHT_DOWN;else return;let o=yy(e,t,e._primaryPosition);H.clone(o,e._primaryStartPosition),H.clone(o,e._primaryPreviousPosition);let r=HA(t),s=e.getInputAction(i,r);l(s)&&(H.clone(o,x_e.position),s(x_e),t.preventDefault())}var C_e={position:new H},T_e={position:new H};function lY(e,t,n,i){let o=HA(i),r=e.getInputAction(t,o),s=e.getInputAction(n,o);if(l(r)||l(s)){let a=yy(e,i,e._primaryPosition);if(l(r)&&(H.clone(a,C_e.position),r(C_e)),l(s)){let c=e._primaryStartPosition;mY(c,a,e._clickPixelTolerance)&&(H.clone(a,T_e.position),s(T_e))}}}function O_e(e,t){if(!_Y(e))return;let n=t.button;n!==ls.LEFT&&n!==ls.MIDDLE&&n!==ls.RIGHT||(e._buttonDown[ls.LEFT]&&(lY(e,Cn.LEFT_UP,Cn.LEFT_CLICK,t),e._buttonDown[ls.LEFT]=!1),e._buttonDown[ls.MIDDLE]&&(lY(e,Cn.MIDDLE_UP,Cn.MIDDLE_CLICK,t),e._buttonDown[ls.MIDDLE]=!1),e._buttonDown[ls.RIGHT]&&(lY(e,Cn.RIGHT_UP,Cn.RIGHT_CLICK,t),e._buttonDown[ls.RIGHT]=!1))}var uY={startPosition:new H,endPosition:new H};function M_e(e,t){if(!_Y(e))return;let n=HA(t),i=yy(e,t,e._primaryPosition),o=e._primaryPreviousPosition,r=e.getInputAction(Cn.MOUSE_MOVE,n);l(r)&&(H.clone(o,uY.startPosition),H.clone(i,uY.endPosition),r(uY)),H.clone(i,o),(e._buttonDown[ls.LEFT]||e._buttonDown[ls.MIDDLE]||e._buttonDown[ls.RIGHT])&&t.preventDefault()}var E_e={position:new H};function lct(e,t){let n=t.button,i;if(n===ls.LEFT)i=Cn.LEFT_DOUBLE_CLICK;else return;let o=HA(t),r=e.getInputAction(i,o);l(r)&&(yy(e,t,E_e.position),r(E_e))}function uct(e,t){let n;if(l(t.deltaY)){let r=t.deltaMode;r===t.DOM_DELTA_PIXEL?n=-t.deltaY:r===t.DOM_DELTA_LINE?n=-t.deltaY*40:n=-t.deltaY*120}else t.detail>0?n=t.detail*-120:n=t.wheelDelta;if(!l(n))return;let i=HA(t),o=e.getInputAction(Cn.WHEEL,i);l(o)&&(o(n),t.preventDefault())}function fct(e,t){pY(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.set(s,yy(e,r,new H));Tk(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.set(s,H.clone(a.get(s)))}function b_e(e,t){pY(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.remove(s);Tk(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.remove(s)}var S_e={position:new H},fY={position1:new H,position2:new H},w_e={position:new H},v_e={position:new H},D_e={position:new H};function Tk(e,t){let n=HA(t),i=e._positions,o=i.length,r,s,a=e._isPinching;if(o!==1&&e._buttonDown[ls.LEFT]){if(e._buttonDown[ls.LEFT]=!1,l(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),r=e.getInputAction(Cn.LEFT_UP,n),l(r)&&(H.clone(e._primaryPosition,w_e.position),r(w_e)),o===0&&!e._isTouchHolding&&(s=e.getInputAction(Cn.LEFT_CLICK,n),l(s))){let c=e._primaryStartPosition,u=e._previousPositions.values[0];mY(c,u,e._clickPixelTolerance)&&(H.clone(e._primaryPosition,v_e.position),s(v_e))}e._isTouchHolding=!1}if(o===0&&a&&(e._isPinching=!1,r=e.getInputAction(Cn.PINCH_END,n),l(r)&&r()),o===1&&!a){let c=i.values[0];H.clone(c,e._primaryPosition),H.clone(c,e._primaryStartPosition),H.clone(c,e._primaryPreviousPosition),e._buttonDown[ls.LEFT]=!0,r=e.getInputAction(Cn.LEFT_DOWN,n),l(r)&&(H.clone(c,S_e.position),r(S_e)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,s=e.getInputAction(Cn.RIGHT_CLICK,n),l(s))){let u=e._primaryStartPosition,f=e._previousPositions.values[0];mY(u,f,e._holdPixelTolerance)&&(H.clone(e._primaryPosition,D_e.position),s(D_e))}},Vd.touchHoldDelayMilliseconds),t.preventDefault()}o===2&&!a&&(e._isPinching=!0,r=e.getInputAction(Cn.PINCH_START,n),l(r)&&(H.clone(i.values[0],fY.position1),H.clone(i.values[1],fY.position2),r(fY),t.preventDefault()))}function dct(e,t){pY(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i){r=n[i],s=r.identifier;let u=a.get(s);l(u)&&yy(e,r,u)}R_e(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,H.clone(a.get(s),c.get(s))}var dY={startPosition:new H,endPosition:new H},XD={distance:{startPosition:new H,endPosition:new H},angleAndHeight:{startPosition:new H,endPosition:new H}};function R_e(e,t){let n=HA(t),i=e._positions,o=e._previousPositions,r=i.length,s;if(r===1&&e._buttonDown[ls.LEFT]){let a=i.values[0];H.clone(a,e._primaryPosition);let c=e._primaryPreviousPosition;s=e.getInputAction(Cn.MOUSE_MOVE,n),l(s)&&(H.clone(c,dY.startPosition),H.clone(a,dY.endPosition),s(dY)),H.clone(a,c),t.preventDefault()}else if(r===2&&e._isPinching&&(s=e.getInputAction(Cn.PINCH_MOVE,n),l(s))){let a=i.values[0],c=i.values[1],u=o.values[0],f=o.values[1],d=c.x-a.x,p=c.y-a.y,g=Math.sqrt(d*d+p*p)*.25,h=f.x-u.x,A=f.y-u.y,x=Math.sqrt(h*h+A*A)*.25,C=(c.y+a.y)*.125,T=(f.y+u.y)*.125,E=Math.atan2(p,d),S=Math.atan2(A,h);H.fromElements(0,x,XD.distance.startPosition),H.fromElements(0,g,XD.distance.endPosition),H.fromElements(S,T,XD.angleAndHeight.startPosition),H.fromElements(E,C,XD.angleAndHeight.endPosition),s(XD)}}function mct(e,t){if(t.target.setPointerCapture(t.pointerId),t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.set(i,yy(e,t,new H)),Tk(e,t),e._previousPositions.set(i,H.clone(n.get(i)))}else P_e(e,t)}function I_e(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.remove(i),Tk(e,t),e._previousPositions.remove(i)}else O_e(e,t)}function hct(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId,o=n.get(i);if(!l(o))return;yy(e,t,o),R_e(e,t);let r=e._previousPositions;H.clone(n.get(i),r.get(i))}else M_e(e,t)}function Vd(e){this._inputEvents={},this._buttonDown={LEFT:!1,MIDDLE:!1,RIGHT:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-Vd.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new H,this._primaryPosition=new H,this._primaryPreviousPosition=new H,this._positions=new Et,this._previousPositions=new Et,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=y(e,document),act(this)}Vd.prototype.setInputAction=function(e,t,n){let i=hY(t,n);this._inputEvents[i]=e};Vd.prototype.getInputAction=function(e,t){let n=hY(e,t);return this._inputEvents[n]};Vd.prototype.removeInputAction=function(e,t){let n=hY(e,t);delete this._inputEvents[n]};Vd.prototype.isDestroyed=function(){return!1};Vd.prototype.destroy=function(){return cct(this),ue(this)};Vd.mouseEmulationIgnoreMilliseconds=800;Vd.touchHoldDelayMilliseconds=1500;var _f=Vd;function GA(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}GA.prototype.completeMorph=function(){l(this._completeMorph)&&this._completeMorph()};GA.prototype.morphTo2D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;this._previousMode=n.mode,this._morphToOrthographic=n.camera.frustum instanceof tn,!(this._previousMode===ne.SCENE2D||this._previousMode===ne.MORPHING)&&(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE2D,!0),n._mode=ne.MORPHING,n.camera._setTransform(B.IDENTITY),this._previousMode===ne.COLUMBUS_VIEW?qct(this,e):elt(this,e,t),e===0&&l(this._completeMorph)&&this._completeMorph())};var pct=new m,_ct=new m,gct=new m,yct=new m,Act=new m,xct=new m,Cct=new m,Tct=new he,Ect=new B,bct=new wi,Sct=new tn,wct={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};GA.prototype.morphToColumbusView=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,this._previousMode===ne.COLUMBUS_VIEW||this._previousMode===ne.MORPHING)return;this._scene.morphStart.raiseEvent(this,this._previousMode,ne.COLUMBUS_VIEW,!0),n.camera._setTransform(B.IDENTITY);let i=pct,o=_ct,r=gct;if(e>0)i.x=0,i.y=-1,i.z=1,i=m.multiplyByScalar(m.normalize(i,i),5*t.maximumRadius,i),m.negate(m.normalize(i,o),o),m.cross(m.UNIT_X,o,r);else{let u=n.camera;if(this._previousMode===ne.SCENE2D)m.clone(u.position,i),i.z=u.frustum.right-u.frustum.left,m.negate(m.UNIT_Z,o),m.clone(m.UNIT_Y,r);else{m.clone(u.positionWC,i),m.clone(u.directionWC,o),m.clone(u.upWC,r);let f=t.scaleToGeodeticSurface(i,Cct),d=Rt.eastNorthUpToFixedFrame(f,t,Ect);B.inverseTransformation(d,d),n.mapProjection.project(t.cartesianToCartographic(i,Tct),i),B.multiplyByPointAsVector(d,o,o),B.multiplyByPointAsVector(d,r,r)}}let s;this._morphToOrthographic?(s=Sct,s.width=n.camera.frustum.right-n.camera.frustum.left,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(s=bct,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,s.fov=P.toRadians(60));let a=wct;a.position=i,a.direction=o,a.up=r,a.frustum=s;let c=nlt(a);KD(this,c),this._previousMode===ne.SCENE2D?tlt(this,e,a,c):(a.position2D=B.multiplyByPoint(uo.TRANSFORM_2D,i,yct),a.direction2D=B.multiplyByPointAsVector(uo.TRANSFORM_2D,o,Act),a.up2D=B.multiplyByPointAsVector(uo.TRANSFORM_2D,r,xct),n._mode=ne.MORPHING,W_e(this,e,a,c)),e===0&&l(this._completeMorph)&&this._completeMorph()};var AY={position:new m,direction:new m,up:new m,frustum:void 0},L_e=new wi;GA.prototype.morphTo3D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,!(this._previousMode===ne.SCENE3D||this._previousMode===ne.MORPHING)){if(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE3D,!0),n._mode=ne.MORPHING,n.camera._setTransform(B.IDENTITY),this._previousMode===ne.SCENE2D)Fct(this,e,t);else{let i;e>0?(i=AY,m.fromDegrees(0,0,5*t.maximumRadius,t,i.position),m.negate(i.position,i.direction),m.normalize(i.direction,i.direction),m.clone(m.UNIT_Z,i.up)):i=N_e(this,t);let o,r=n.camera;r.frustum instanceof tn?o=r.frustum.clone():(o=L_e,o.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,o.fov=P.toRadians(60)),i.frustum=o;let s=Y_e(i);KD(this,s),yY(this,e,i,s)}e===0&&l(this._completeMorph)&&this._completeMorph()}};GA.prototype.isDestroyed=function(){return!1};GA.prototype.destroy=function(){return Ek(this),ue(this)};function KD(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new _f(e._scene.canvas);let n=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=n,e._morphHandler.setInputAction(n,Cn.LEFT_DOWN),e._morphHandler.setInputAction(n,Cn.MIDDLE_DOWN),e._morphHandler.setInputAction(n,Cn.RIGHT_DOWN),e._morphHandler.setInputAction(n,Cn.WHEEL)}}function Ek(e){let t=e._currentTweens;for(let n=0;n<t.length;++n)t[n].cancelTween();e._currentTweens.length=0,e._morphHandler=e._morphHandler&&e._morphHandler.destroy()}var vct=new he,Dct=new m,Ict=new B;function N_e(e,t){let n=e._scene,i=n.camera,o=AY,r=o.position,s=o.direction,a=o.up,c=n.mapProjection.unproject(i.position,vct);t.cartographicToCartesian(c,r);let u=t.scaleToGeodeticSurface(r,Dct),f=Rt.eastNorthUpToFixedFrame(u,t,Ict);return B.multiplyByPointAsVector(f,i.direction,s),B.multiplyByPointAsVector(f,i.up,a),o}var Pct=new m,Oct=new m,Mct=new m,Rct=new m,Bct=new m,Lct=new m;function yY(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=m.clone(r.position,Pct),a=m.clone(r.direction,Oct),c=m.clone(r.up,Mct),u=B.multiplyByPoint(uo.TRANSFORM_2D_INVERSE,n.position,Rct),f=B.multiplyByPointAsVector(uo.TRANSFORM_2D_INVERSE,n.direction,Bct),d=B.multiplyByPointAsVector(uo.TRANSFORM_2D_INVERSE,n.up,Lct);function p(h){gf(s,u,h.time,r.position),gf(a,f,h.time,r.direction),gf(c,d,h.time,r.up),m.cross(r.direction,r.up,r.right),m.normalize(r.right,r.right)}let g=o.tweens.add({duration:t,easingFunction:Nr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){j_e(e,o,0,1,t,i)}});e._currentTweens.push(g)}var Nct=new tn,F_e=new m,U_e=new m,V_e=new m,xY=new m,k_e=new m,z_e=new m;function Fct(e,t,n){t/=3;let i=e._scene,o=i.camera,r;t>0?(r=AY,m.fromDegrees(0,0,5*n.maximumRadius,n,r.position),m.negate(r.position,r.direction),m.normalize(r.direction,r.direction),m.clone(m.UNIT_Z,r.up)):(o.position.z=o.frustum.right-o.frustum.left,r=N_e(e,n));let s;e._morphToOrthographic?(s=Nct,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.width=o.frustum.right-o.frustum.left):(s=L_e,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.fov=P.toRadians(60)),r.frustum=s;let a=Y_e(r);KD(e,a);let c;e._morphToOrthographic?c=function(){yY(e,t,r,a)}:c=function(){G_e(e,t,r,function(){yY(e,t,r,a)})},t>0?(i._mode=ne.SCENE2D,o.flyTo({duration:t,destination:m.fromDegrees(0,0,5*n.maximumRadius,n,xY),complete:function(){i._mode=ne.MORPHING,c()}})):c()}function gf(e,t,n,i){return m.lerp(e,t,n,i)}function H_e(e,t,n,i,o){let r=e._scene,s=r.camera;if(s.frustum instanceof tn)return;let a=s.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,u=n.position.z*Math.tan(a*.5);s.frustum.far=u/Math.tan(c*.5)+1e7;function f(p){s.frustum.fov=P.lerp(a,c,p.time);let g=u/Math.tan(s.frustum.fov*.5);i(s,g)}let d=r.tweens.add({duration:t,easingFunction:Nr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){s.frustum=n.frustum.clone(),o(e)}});e._currentTweens.push(d)}var Uct=new m,Vct=new m,kct=new m,gY=new m,zct=new m,Hct=new m,Gct=new Ir,Wct=new In,jct=new m,Yct={position:void 0,direction:void 0,up:void 0,frustum:void 0};function qct(e,t){t*=.5;let n=e._scene,i=n.camera,o=m.clone(i.position,Uct),r=m.clone(i.direction,Vct),s=m.clone(i.up,kct),a=m.negate(m.UNIT_Z,zct),c=m.clone(m.UNIT_Y,Hct),u=gY;if(t>0)m.clone(m.ZERO,gY),u.z=5*n.mapProjection.ellipsoid.maximumRadius;else{m.clone(o,gY);let x=Wct;B.multiplyByPoint(uo.TRANSFORM_2D,o,x.origin),B.multiplyByPointAsVector(uo.TRANSFORM_2D,r,x.direction);let C=n.globe;if(l(C)){let T=C.pickWorldCoordinates(x,n,!0,jct);l(T)&&(B.multiplyByPoint(uo.TRANSFORM_2D_INVERSE,T,u),u.z+=m.distance(o,u))}}let f=Gct;f.right=u.z*.5,f.left=-f.right,f.top=f.right*(n.drawingBufferHeight/n.drawingBufferWidth),f.bottom=-f.top;let d=Yct;d.position=u,d.direction=a,d.up=c,d.frustum=f;let p=q_e(d);KD(e,p);function g(x){gf(o,u,x.time,i.position),gf(r,a,x.time,i.direction),gf(s,c,x.time,i.up),m.cross(i.direction,i.up,i.right),m.normalize(i.right,i.right),i._adjustOrthographicFrustum(!0)}function h(x,C){x.position.z=C}let A=n.tweens.add({duration:t,easingFunction:Nr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){H_e(e,t,d,h,p)}});e._currentTweens.push(A)}var B_e=new he,Xct={position:new m,direction:new m,up:new m,position2D:new m,direction2D:new m,up2D:new m,frustum:new Ir},Kct={position:new m,direction:new m,up:new m,frustum:void 0},Jct=new m,Zct=new In,Qct=new B,$ct=new m;function elt(e,t,n){t*=.5;let i=e._scene,o=i.camera,r=Xct;if(t>0)m.clone(m.ZERO,r.position),r.position.z=5*n.maximumRadius,m.negate(m.UNIT_Z,r.direction),m.clone(m.UNIT_Y,r.up);else{n.cartesianToCartographic(o.positionWC,B_e),i.mapProjection.project(B_e,r.position),m.negate(m.UNIT_Z,r.direction),m.clone(m.UNIT_Y,r.up);let d=Zct;m.clone(r.position2D,d.origin);let p=m.clone(o.directionWC,d.direction),g=n.scaleToGeodeticSurface(o.positionWC,$ct),h=Rt.eastNorthUpToFixedFrame(g,n,Qct);B.inverseTransformation(h,h),B.multiplyByPointAsVector(h,p,p),B.multiplyByPointAsVector(uo.TRANSFORM_2D,p,p);let A=i.globe;if(l(A)){let x=A.pickWorldCoordinates(d,i,!0,Jct);if(l(x)){let C=m.distance(r.position2D,x);x.x+=C,m.clone(x,r.position2D)}}}function s(d,p){d.position.x=p}B.multiplyByPoint(uo.TRANSFORM_2D,r.position,r.position2D),B.multiplyByPointAsVector(uo.TRANSFORM_2D,r.direction,r.direction2D),B.multiplyByPointAsVector(uo.TRANSFORM_2D,r.up,r.up2D);let a=r.frustum;a.right=r.position.z*.5,a.left=-a.right,a.top=a.right*(i.drawingBufferHeight/i.drawingBufferWidth),a.bottom=-a.top;let c=Kct;B.multiplyByPoint(uo.TRANSFORM_2D_INVERSE,r.position2D,c.position),m.clone(r.direction,c.direction),m.clone(r.up,c.up),c.frustum=a;let u=q_e(c);KD(e,u);function f(){H_e(e,t,r,s,u)}W_e(e,t,r,f)}function G_e(e,t,n,i){let o=e._scene,r=o.camera,s=r.frustum.right-r.frustum.left;r.frustum=n.frustum.clone();let a=r.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,u=s*Math.tan(a*.5);r.frustum.far=u/Math.tan(c*.5)+1e7,r.frustum.fov=c;function f(p){r.frustum.fov=P.lerp(c,a,p.time),r.position.z=u/Math.tan(r.frustum.fov*.5)}let d=o.tweens.add({duration:t,easingFunction:Nr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){i(e)}});e._currentTweens.push(d)}function tlt(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=m.clone(n.position,xY),a=m.clone(n.direction,k_e),c=m.clone(n.up,z_e);o._mode=ne.MORPHING;function u(){r.frustum=n.frustum.clone();let f=m.clone(r.position,F_e),d=m.clone(r.direction,U_e),p=m.clone(r.up,V_e);f.z=s.z;function g(A){gf(f,s,A.time,r.position),gf(d,a,A.time,r.direction),gf(p,c,A.time,r.up),m.cross(r.direction,r.up,r.right),m.normalize(r.right,r.right)}let h=o.tweens.add({duration:t,easingFunction:Nr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){i(e)}});e._currentTweens.push(h)}e._morphToOrthographic?u():G_e(e,0,n,u)}function W_e(e,t,n,i){let o=e._scene,r=o.camera,s=m.clone(r.position,F_e),a=m.clone(r.direction,U_e),c=m.clone(r.up,V_e),u=m.clone(n.position2D,xY),f=m.clone(n.direction2D,k_e),d=m.clone(n.up2D,z_e);function p(h){gf(s,u,h.time,r.position),gf(a,f,h.time,r.direction),gf(c,d,h.time,r.up),m.cross(r.direction,r.up,r.right),m.normalize(r.right,r.right),r._adjustOrthographicFrustum(!0)}let g=o.tweens.add({duration:t,easingFunction:Nr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){j_e(e,o,1,0,t,i)}});e._currentTweens.push(g)}function j_e(e,t,n,i,o,r){let s={object:t,property:"morphTime",startValue:n,stopValue:i,duration:o,easingFunction:Nr.QUARTIC_OUT};l(r)&&(s.complete=function(){r(e)});let a=t.tweens.addProperty(s);e._currentTweens.push(a)}function Y_e(e){return function(t){let n=t._scene;n._mode=ne.SCENE3D,n.morphTime=ne.getMorphTime(ne.SCENE3D),Ek(t);let i=n.camera;(t._previousMode!==ne.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,m.clone(e.position,i.position),m.clone(e.direction,i.direction),m.clone(e.up,i.up),m.cross(i.direction,i.up,i.right),m.normalize(i.right,i.right),i.frustum=e.frustum.clone());let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE3D,r)}}function q_e(e){return function(t){let n=t._scene;n._mode=ne.SCENE2D,n.morphTime=ne.getMorphTime(ne.SCENE2D),Ek(t);let i=n.camera;m.clone(e.position,i.position),i.position.z=n.mapProjection.ellipsoid.maximumRadius*2,m.clone(e.direction,i.direction),m.clone(e.up,i.up),m.cross(i.direction,i.up,i.right),m.normalize(i.right,i.right),i.frustum=e.frustum.clone();let o=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE2D,o)}}function nlt(e){return function(t){let n=t._scene;n._mode=ne.COLUMBUS_VIEW,n.morphTime=ne.getMorphTime(ne.COLUMBUS_VIEW),Ek(t);let i=n.camera;(t._previousModeMode!==ne.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,m.clone(e.position,i.position),m.clone(e.direction,i.direction),m.clone(e.up,i.up),m.cross(i.direction,i.up,i.right),m.normalize(i.right,i.right));let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.COLUMBUS_VIEW,r)}}var bk=GA;var ilt={LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4},Ni=Object.freeze(ilt);function Qa(e,t){let n=e;return l(t)&&(n+=`+${t}`),n}function olt(e,t){H.clone(e.distance.startPosition,t.distance.startPosition),H.clone(e.distance.endPosition,t.distance.endPosition),H.clone(e.angleAndHeight.startPosition,t.angleAndHeight.startPosition),H.clone(e.angleAndHeight.endPosition,t.angleAndHeight.endPosition)}function X_e(e,t,n){let i=Qa(Ni.PINCH,t),o=e._update,r=e._isDown,s=e._eventStartPosition,a=e._pressTime,c=e._releaseTime;o[i]=!0,r[i]=!1,s[i]=new H;let u=e._movement[i];l(u)||(u=e._movement[i]={}),u.distance={startPosition:new H,endPosition:new H},u.angleAndHeight={startPosition:new H,endPosition:new H},u.prevAngle=0,e._eventHandler.setInputAction(function(f){e._buttonsDown++,r[i]=!0,a[i]=new Date,H.lerp(f.position1,f.position2,.5,s[i])},Cn.PINCH_START,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),r[i]=!1,c[i]=new Date},Cn.PINCH_END,t),e._eventHandler.setInputAction(function(f){if(r[i]){o[i]?(olt(f,u),o[i]=!1,u.prevAngle=u.angleAndHeight.startPosition.x):(H.clone(f.distance.endPosition,u.distance.endPosition),H.clone(f.angleAndHeight.endPosition,u.angleAndHeight.endPosition));let d=u.angleAndHeight.endPosition.x,p=u.prevAngle,g=Math.PI*2;for(;d>=p+Math.PI;)d-=g;for(;d<p-Math.PI;)d+=g;u.angleAndHeight.endPosition.x=-d*n.clientWidth/12,u.angleAndHeight.startPosition.x=-p*n.clientWidth/12}},Cn.PINCH_MOVE,t)}function K_e(e,t){let n=Qa(Ni.WHEEL,t),i=e._pressTime,o=e._releaseTime,r=e._update;r[n]=!0;let s=e._movement[n];l(s)||(s=e._movement[n]={});let a=e._lastMovement[n];l(a)||(a=e._lastMovement[n]={startPosition:new H,endPosition:new H,valid:!1}),s.startPosition=new H,H.clone(H.ZERO,s.startPosition),s.endPosition=new H,e._eventHandler.setInputAction(function(c){let u=7.5*P.toRadians(c);i[n]=o[n]=new Date,s.endPosition.x=0,s.endPosition.y=u,H.clone(s.endPosition,a.endPosition),a.valid=!0,r[n]=!1},Cn.WHEEL,t)}function sb(e,t,n){let i=Qa(n,t),o=e._isDown,r=e._eventStartPosition,s=e._pressTime,a=e._releaseTime;o[i]=!1,r[i]=new H;let c=e._lastMovement[i];l(c)||(c=e._lastMovement[i]={startPosition:new H,endPosition:new H,valid:!1});let u,f;n===Ni.LEFT_DRAG?(u=Cn.LEFT_DOWN,f=Cn.LEFT_UP):n===Ni.RIGHT_DRAG?(u=Cn.RIGHT_DOWN,f=Cn.RIGHT_UP):n===Ni.MIDDLE_DRAG&&(u=Cn.MIDDLE_DOWN,f=Cn.MIDDLE_UP),e._eventHandler.setInputAction(function(d){e._buttonsDown++,c.valid=!1,o[i]=!0,s[i]=new Date,H.clone(d.position,r[i])},u,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),o[i]=!1,a[i]=new Date},f,t)}function J_e(e,t){H.clone(e.startPosition,t.startPosition),H.clone(e.endPosition,t.endPosition)}function Z_e(e,t){let n=e._update,i=e._movement,o=e._lastMovement,r=e._isDown;for(let s in Ni)if(Ni.hasOwnProperty(s)){let a=Ni[s];if(l(a)){let c=Qa(a,t);n[c]=!0,l(e._lastMovement[c])||(e._lastMovement[c]={startPosition:new H,endPosition:new H,valid:!1}),l(e._movement[c])||(e._movement[c]={startPosition:new H,endPosition:new H})}}e._eventHandler.setInputAction(function(s){for(let a in Ni)if(Ni.hasOwnProperty(a)){let c=Ni[a];if(l(c)){let u=Qa(c,t);r[u]&&(n[u]?(J_e(i[u],o[u]),o[u].valid=!0,J_e(s,i[u]),n[u]=!1):H.clone(s.endPosition,i[u].endPosition))}}H.clone(s.endPosition,e._currentMousePosition)},Cn.MOUSE_MOVE,t)}function yf(e){this._eventHandler=new _f(e),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new H,K_e(this,void 0),X_e(this,void 0,e),sb(this,void 0,Ni.LEFT_DRAG),sb(this,void 0,Ni.RIGHT_DRAG),sb(this,void 0,Ni.MIDDLE_DRAG),Z_e(this,void 0);for(let t in ya)if(ya.hasOwnProperty(t)){let n=ya[t];l(n)&&(K_e(this,n),X_e(this,n,e),sb(this,n,Ni.LEFT_DRAG),sb(this,n,Ni.RIGHT_DRAG),sb(this,n,Ni.MIDDLE_DRAG),Z_e(this,n))}}Object.defineProperties(yf.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){let e=!this._update[Qa(Ni.WHEEL)]||!this._update[Qa(Ni.WHEEL,ya.SHIFT)]||!this._update[Qa(Ni.WHEEL,ya.CTRL)]||!this._update[Qa(Ni.WHEEL,ya.ALT)];return this._buttonsDown>0||e}}});yf.prototype.isMoving=function(e,t){let n=Qa(e,t);return!this._update[n]};yf.prototype.getMovement=function(e,t){let n=Qa(e,t);return this._movement[n]};yf.prototype.getLastMovement=function(e,t){let n=Qa(e,t),i=this._lastMovement[n];if(i.valid)return i};yf.prototype.isButtonDown=function(e,t){let n=Qa(e,t);return this._isDown[n]};yf.prototype.getStartMousePosition=function(e,t){if(e===Ni.WHEEL)return this._currentMousePosition;let n=Qa(e,t);return this._eventStartPosition[n]};yf.prototype.getButtonPressTime=function(e,t){let n=Qa(e,t);return this._pressTime[n]};yf.prototype.getButtonReleaseTime=function(e,t){let n=Qa(e,t);return this._releaseTime[n]};yf.prototype.reset=function(){for(let e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)};yf.prototype.isDestroyed=function(){return!1};yf.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),ue(this)};var Sk=yf;function wk(e,t,n,i,o,r,s,a,c,u){this._tweens=e,this._tweenjs=t,this._startObject=Ye(n),this._stopObject=Ye(i),this._duration=o,this._delay=r,this._easingFunction=s,this._update=a,this._complete=c,this.cancel=u,this.needsStart=!0}Object.defineProperties(wk.prototype,{startObject:{get:function(){return this._startObject}},stopObject:{get:function(){return this._stopObject}},duration:{get:function(){return this._duration}},delay:{get:function(){return this._delay}},easingFunction:{get:function(){return this._easingFunction}},update:{get:function(){return this._update}},complete:{get:function(){return this._complete}},tweenjs:{get:function(){return this._tweenjs}}});wk.prototype.cancelTween=function(){this._tweens.remove(this)};function kd(){this._tweens=[]}Object.defineProperties(kd.prototype,{length:{get:function(){return this._tweens.length}}});kd.prototype.add=function(e){if(e=y(e,y.EMPTY_OBJECT),e.duration===0)return l(e.complete)&&e.complete(),new wk(this);let t=e.duration/Zn.SECONDS_PER_MILLISECOND,n=y(e.delay,0),i=n/Zn.SECONDS_PER_MILLISECOND,o=y(e.easingFunction,Nr.LINEAR_NONE),r=e.startObject,s=new Lde(r);s.to(Ye(e.stopObject),t),s.delay(i),s.easing(o),l(e.update)&&s.onUpdate(function(){e.update(r)}),s.onComplete(y(e.complete,null)),s.repeat(y(e._repeat,0));let a=new wk(this,s,e.startObject,e.stopObject,e.duration,n,o,e.update,e.complete,e.cancel);return this._tweens.push(a),a};kd.prototype.addProperty=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.object,n=e.property,i=e.startValue,o=e.stopValue;function r(s){t[n]=s.value}return this.add({startObject:{value:i},stopObject:{value:o},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:r,complete:e.complete,cancel:e.cancel,_repeat:e._repeat})};kd.prototype.addAlpha=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.material,n=[];for(let o in t.uniforms)t.uniforms.hasOwnProperty(o)&&l(t.uniforms[o])&&l(t.uniforms[o].alpha)&&n.push(o);function i(o){let r=n.length;for(let s=0;s<r;++s)t.uniforms[n[s]].alpha=o.alpha}return this.add({startObject:{alpha:y(e.startValue,0)},stopObject:{alpha:y(e.stopValue,1)},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:i,complete:e.complete,cancel:e.cancel})};kd.prototype.addOffsetIncrement=function(e){e=y(e,y.EMPTY_OBJECT);let n=e.material.uniforms;return this.addProperty({object:n,property:"offset",startValue:n.offset,stopValue:n.offset+1,duration:e.duration,delay:e.delay,easingFunction:e.easingFunction,update:e.update,cancel:e.cancel,_repeat:1/0})};kd.prototype.remove=function(e){if(!l(e))return!1;let t=this._tweens.indexOf(e);return t!==-1?(e.tweenjs.stop(),l(e.cancel)&&e.cancel(),this._tweens.splice(t,1),!0):!1};kd.prototype.removeAll=function(){let e=this._tweens;for(let t=0;t<e.length;++t){let n=e[t];n.tweenjs.stop(),l(n.cancel)&&n.cancel()}e.length=0};kd.prototype.contains=function(e){return l(e)&&this._tweens.indexOf(e)!==-1};kd.prototype.get=function(e){return this._tweens[e]};kd.prototype.update=function(e){let t=this._tweens,n=0;for(e=l(e)?e/Zn.SECONDS_PER_MILLISECOND:Ci();n<t.length;){let i=t[n],o=i.tweenjs;i.needsStart?(i.needsStart=!1,o.start(e)):o.update(e)?n++:(o.stop(),t.splice(n,1))}};var ab=kd;function ZD(e){this.enableInputs=!0,this.enableTranslate=!0,this.enableZoom=!0,this.enableRotate=!0,this.enableTilt=!0,this.enableLook=!0,this.inertiaSpin=.9,this.inertiaTranslate=.9,this.inertiaZoom=.8,this.maximumMovementRatio=.1,this.bounceAnimationTime=3,this.minimumZoomDistance=1,this.maximumZoomDistance=Number.POSITIVE_INFINITY,this.translateEventTypes=Ni.LEFT_DRAG,this.zoomEventTypes=[Ni.RIGHT_DRAG,Ni.WHEEL,Ni.PINCH],this.rotateEventTypes=Ni.LEFT_DRAG,this.tiltEventTypes=[Ni.MIDDLE_DRAG,Ni.PINCH,{eventType:Ni.LEFT_DRAG,modifier:ya.CTRL},{eventType:Ni.RIGHT_DRAG,modifier:ya.CTRL}],this.lookEventTypes={eventType:Ni.LEFT_DRAG,modifier:ya.SHIFT},this.minimumPickingTerrainHeight=15e4,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight,this.minimumPickingTerrainDistanceWithInertia=4e3,this.minimumCollisionTerrainHeight=15e3,this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight,this.minimumTrackBallHeight=75e5,this._minimumTrackBallHeight=this.minimumTrackBallHeight,this.enableCollisionDetection=!0,this._scene=e,this._globe=void 0,this._ellipsoid=void 0,this._aggregator=new Sk(e.canvas),this._lastInertiaSpinMovement=void 0,this._lastInertiaZoomMovement=void 0,this._lastInertiaTranslateMovement=void 0,this._lastInertiaTiltMovement=void 0,this._inertiaDisablers={_lastInertiaZoomMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement","_lastInertiaTiltMovement"],_lastInertiaTiltMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement"]},this._tweens=new ab,this._tween=void 0,this._horizontalRotationAxis=void 0,this._tiltCenterMousePosition=new H(-1,-1),this._tiltCenter=new m,this._rotateMousePosition=new H(-1,-1),this._rotateStartPosition=new m,this._strafeStartPosition=new m,this._strafeMousePosition=new H,this._strafeEndMousePosition=new H,this._zoomMouseStart=new H(-1,-1),this._zoomWorldPosition=new m,this._useZoomWorldPosition=!1,this._tiltCVOffMap=!1,this._looking=!1,this._rotating=!1,this._strafing=!1,this._zoomingOnVector=!1,this._zoomingUnderground=!1,this._rotatingZoom=!1,this._adjustedHeightForTerrain=!1,this._cameraUnderground=!1;let t=e.mapProjection;this._maxCoord=t.project(new he(Math.PI,P.PI_OVER_TWO)),this._zoomFactor=5,this._rotateFactor=void 0,this._rotateRateRangeAdjustment=void 0,this._maximumRotateRate=1.77,this._minimumRotateRate=1/5e3,this._minimumZoomRate=20,this._maximumZoomRate=5906376272e3,this._minimumUndergroundPickDistance=2e3,this._maximumUndergroundPickDistance=1e4}function rlt(e,t){if(e<0)return 0;let n=(1-t)*25;return Math.exp(-n*e)}function slt(e){return H.equalsEpsilon(e.startPosition,e.endPosition,P.EPSILON14)}var alt=.4;function clt(e,t,n,i,o,r,s){let a=r[s];l(a)||(a=r[s]={startPosition:new H,endPosition:new H,motion:new H,inertiaEnabled:!0});let c=e.getButtonPressTime(t,n),u=e.getButtonReleaseTime(t,n),f=c&&u&&(u.getTime()-c.getTime())/1e3,p=u&&(new Date().getTime()-u.getTime())/1e3;if(c&&u&&f<alt){let g=rlt(p,i),h=e.getLastMovement(t,n);if(!l(h)||slt(h)||!a.inertiaEnabled||(a.motion.x=(h.endPosition.x-h.startPosition.x)*.5,a.motion.y=(h.endPosition.y-h.startPosition.y)*.5,a.startPosition=H.clone(h.startPosition,a.startPosition),a.endPosition=H.multiplyByScalar(a.motion,g,a.endPosition),a.endPosition=H.add(a.startPosition,a.endPosition,a.endPosition),isNaN(a.endPosition.x)||isNaN(a.endPosition.y)||H.distance(a.startPosition,a.endPosition)<.5))return;if(!e.isButtonDown(t,n)){let A=e.getStartMousePosition(t,n);o(r,A,a)}}}function llt(e,t){if(l(t)){let n=e[t];l(n)&&(n.inertiaEnabled=!0);let i=e._inertiaDisablers[t];if(l(i)){let o=i.length;for(let r=0;r<o;++r)n=e[i[r]],l(n)&&(n.inertiaEnabled=!1)}}}var Q_e=[];function Mc(e,t,n,i,o,r){if(!l(n))return;let s=e._aggregator;Array.isArray(n)||(Q_e[0]=n,n=Q_e);let a=n.length;for(let c=0;c<a;++c){let u=n[c],f=l(u.eventType)?u.eventType:u,d=u.modifier,p=s.isMoving(f,d)&&s.getMovement(f,d),g=s.getStartMousePosition(f,d);e.enableInputs&&t&&(p?(i(e,g,p),llt(e,r)):o<1&&clt(s,f,d,o,i,e,r))}}var vk=new In,ult=new m,flt=new H,dlt=new m,mlt=new H,hlt=new m,plt=new m,_lt=new m,glt=new m,ylt=new m,Alt=new m,xlt=new m,Clt=new m,Tlt=new m,Elt=new m,blt=new m,Slt=new m,wlt=new m,vlt=new m,Dlt=new m,WA=new m,$_e=new m,ege=new m,CY={orientation:new rc};function IY(e,t,n,i,o,r){let s=1;l(r)&&(s=P.clamp(Math.abs(r),.25,1));let a=n.endPosition.y-n.startPosition.y,u=a>0?e.minimumZoomDistance*s:0,f=e.maximumZoomDistance,d=o-u,p=i*d;p=P.clamp(p,e._minimumZoomRate,e._maximumZoomRate);let g=a/e._scene.canvas.clientHeight;g=Math.min(g,e.maximumMovementRatio);let h=p*g;if(e.enableCollisionDetection||e.minimumZoomDistance===0||!l(e._globe)){if(h>0&&Math.abs(o-u)<1||h<0&&Math.abs(o-f)<1)return;o-h<u?h=o-u-1:o-h>f&&(h=o-f)}let A=e._scene,x=A.camera,C=A.mode,T=CY.orientation;if(T.heading=x.heading,T.pitch=x.pitch,T.roll=x.roll,x.frustum instanceof tn){Math.abs(h)>0&&(x.zoomIn(h),x._adjustOrthographicFrustum(!0));return}let E=y(n.inertiaEnabled,H.equals(t,e._zoomMouseStart)),S=e._zoomingOnVector,v=e._rotatingZoom,D;if(E||(e._zoomMouseStart=H.clone(t,e._zoomMouseStart),l(e._globe)&&(C===ne.SCENE2D?(D=x.getPickRay(t,vk).origin,D=m.fromElements(D.y,D.z,D.x)):D=Ay(e,t,ult)),l(D)?(e._useZoomWorldPosition=!0,e._zoomWorldPosition=m.clone(D,e._zoomWorldPosition)):e._useZoomWorldPosition=!1,S=e._zoomingOnVector=!1,v=e._rotatingZoom=!1,e._zoomingUnderground=e._cameraUnderground),!e._useZoomWorldPosition){x.zoomIn(h);return}let O=C===ne.COLUMBUS_VIEW;if(x.positionCartographic.height<2e6&&(v=!0),!E||v){if(C===ne.SCENE2D){let M=e._zoomWorldPosition,L=x.position;if(!m.equals(M,L)&&x.positionCartographic.height<e._maxCoord.x*2){let N=x.position.x,_=m.subtract(M,L,dlt);m.normalize(_,_);let b=m.distance(M,L)*h/(x.getMagnitude()*.5);x.move(_,b*.5),(x.position.x<0&&N>0||x.position.x>0&&N<0)&&(D=x.getPickRay(t,vk).origin,D=m.fromElements(D.y,D.z,D.x),e._zoomWorldPosition=m.clone(D,e._zoomWorldPosition))}}else if(C===ne.SCENE3D){let M=m.normalize(x.position,ylt);if(e._cameraUnderground||e._zoomingUnderground||x.positionCartographic.height<3e3&&Math.abs(m.dot(x.direction,M))<.6)O=!0;else{let L=A.canvas,N=mlt;N.x=L.clientWidth/2,N.y=L.clientHeight/2;let _=Ay(e,N,hlt);if(!l(_))O=!0;else if(x.positionCartographic.height<1e6)if(m.dot(x.direction,M)>=-.5)O=!0;else{let b=xlt;m.clone(x.position,b);let w=e._zoomWorldPosition,I=Alt;if(I=m.normalize(w,I),m.dot(I,M)<0)return;let R=Dlt,F=Elt;m.clone(x.direction,F),m.add(b,m.multiplyByScalar(F,1e3,WA),R);let k=blt,V=Slt;m.subtract(w,b,k),m.normalize(k,V);let G=m.dot(M,V);if(G>=0){e._zoomMouseStart.x=-1;return}let U=Math.acos(-G),q=m.magnitude(b),Y=m.magnitude(w),Q=q-h,W=m.magnitude(k),K=Math.asin(P.clamp(W/Y*Math.sin(U),-1,1)),J=Math.asin(P.clamp(Q/Y*Math.sin(U),-1,1)),_e=K-J+U,xe=Clt;m.normalize(b,xe);let se=Tlt;se=m.cross(V,xe,se),se=m.normalize(se,se),m.normalize(m.cross(xe,se,WA),F),m.multiplyByScalar(m.normalize(R,WA),m.magnitude(R)-h,R),m.normalize(b,b),m.multiplyByScalar(b,Q,b);let Ae=wlt;m.multiplyByScalar(m.add(m.multiplyByScalar(xe,Math.cos(_e)-1,$_e),m.multiplyByScalar(F,Math.sin(_e),ege),WA),Q,Ae),m.add(b,Ae,b),m.normalize(R,xe),m.normalize(m.cross(xe,se,WA),F);let me=vlt;m.multiplyByScalar(m.add(m.multiplyByScalar(xe,Math.cos(_e)-1,$_e),m.multiplyByScalar(F,Math.sin(_e),ege),WA),m.magnitude(R),me),m.add(R,me,R),m.clone(b,x.position),m.normalize(m.subtract(R,b,WA),x.direction),m.clone(x.direction,x.direction),m.cross(x.direction,x.up,x.right),m.cross(x.right,x.direction,x.up),x.setView(CY);return}else{let b=m.normalize(_,plt),w=m.normalize(e._zoomWorldPosition,_lt),I=m.dot(w,b);if(I>0&&I<1){let R=P.acosClamped(I),F=m.cross(w,b,glt),k=Math.abs(R)>P.toRadians(20)?x.positionCartographic.height*.75:x.positionCartographic.height-h,V=h/k;x.rotate(F,R*V)}}}}e._rotatingZoom=!O}if(!E&&O||S){let M,L=Qi.wgs84ToWindowCoordinates(A,e._zoomWorldPosition,flt);C!==ne.COLUMBUS_VIEW&&H.equals(t,e._zoomMouseStart)&&l(L)?M=x.getPickRay(L,vk):M=x.getPickRay(t,vk);let N=M.direction;(C===ne.COLUMBUS_VIEW||C===ne.SCENE2D)&&m.fromElements(N.y,N.z,N.x,N),x.move(N,h),e._zoomingOnVector=!0}else x.zoomIn(h);e._cameraUnderground||x.setView(CY)}var Ilt=new In,Plt=new In,Olt=new m;function Mlt(e,t,n){let o=e._scene.camera,r=o.getPickRay(n.startPosition,Ilt).origin,s=o.getPickRay(n.endPosition,Plt).origin;r=m.fromElements(r.y,r.z,r.x,r),s=m.fromElements(s.y,s.z,s.x,s);let a=m.subtract(r,s,Olt),c=m.magnitude(a);c>0&&(m.normalize(a,a),o.move(a,c))}function tge(e,t,n){l(n.distance)&&(n=n.distance);let o=e._scene.camera;IY(e,t,n,e._zoomFactor,o.getMagnitude())}var Rlt=new H,Blt=new H;function nge(e,t,n){if(l(n.angleAndHeight)){Llt(e,t,n.angleAndHeight);return}let i=e._scene,o=i.camera,r=i.canvas,s=r.clientWidth,a=r.clientHeight,c=Rlt;c.x=2/s*n.startPosition.x-1,c.y=2/a*(a-n.startPosition.y)-1,c=H.normalize(c,c);let u=Blt;u.x=2/s*n.endPosition.x-1,u.y=2/a*(a-n.endPosition.y)-1,u=H.normalize(u,u);let f=P.acosClamped(c.x);c.y<0&&(f=P.TWO_PI-f);let d=P.acosClamped(u.x);u.y<0&&(d=P.TWO_PI-d);let p=d-f;o.twistRight(p)}function Llt(e,t,n){let i=e._rotateFactor*e._rotateRateRangeAdjustment;i>e._maximumRotateRate&&(i=e._maximumRotateRate),i<e._minimumRotateRate&&(i=e._minimumRotateRate);let o=e._scene,r=o.camera,s=o.canvas,a=(n.endPosition.x-n.startPosition.x)/s.clientWidth;a=Math.min(a,e.maximumMovementRatio);let c=i*a*Math.PI*4;r.twistRight(c)}function Nlt(e){let t=e._scene.mapMode2D===uu.ROTATE;B.equals(B.IDENTITY,e._scene.camera.transform)?(Mc(e,e.enableTranslate,e.translateEventTypes,Mlt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),Mc(e,e.enableZoom,e.zoomEventTypes,tge,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&Mc(e,e.enableRotate,e.tiltEventTypes,nge,e.inertiaSpin,"_lastInertiaTiltMovement")):(Mc(e,e.enableZoom,e.zoomEventTypes,tge,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&Mc(e,e.enableRotate,e.translateEventTypes,nge,e.inertiaSpin,"_lastInertiaSpinMovement"))}var cge=new In,Flt=new m,Ult=new m;function Ay(e,t,n){let i=e._scene,o=e._globe,r=i.camera;if(!l(o))return;let s=!e._cameraUnderground,a;i.pickPositionSupported&&(a=i.pickPositionWorldCoordinates(t,Flt));let c=r.getPickRay(t,cge),u=o.pickWorldCoordinates(c,i,s,Ult),f=l(a)?m.distance(a,r.positionWC):Number.POSITIVE_INFINITY,d=l(u)?m.distance(u,r.positionWC):Number.POSITIVE_INFINITY;return f<d?m.clone(a,n):m.clone(u,n)}var Vlt=new he;function Rk(e){let t=e._ellipsoid,n=e._scene,i=n.camera,o=n.mode,r=0;if(o===ne.SCENE3D){let c=t.cartesianToCartographic(i.position,Vlt);l(c)&&(r=c.height)}else r=i.position.z;let s=y(e._scene.globeHeight,0);return Math.abs(s-r)}var klt=new m;function lge(e,t){let n=t.origin,i=t.direction,o=Rk(e),r=m.normalize(n,klt),s=Math.abs(m.dot(r,i));return s=Math.max(s,.5)*2,o*s}function uge(e,t,n,i){let o=m.distance(t.origin,n),r=Rk(e),s=P.clamp(r*5,e._minimumUndergroundPickDistance,e._maximumUndergroundPickDistance);return o>s&&(o=Math.min(o,r/5),o=Math.max(o,100)),In.getPoint(t,o,i)}function fge(e,t,n,i){let o;return l(n)?(o=m.distance(t.origin,n),o>e._maximumUndergroundPickDistance&&(o=Rk(e))):o=Rk(e),In.getPoint(t,o,i)}var zlt=new H;function dge(e,t){let n=t.endPosition,i=H.subtract(t.endPosition,t.startPosition,zlt),o=e._strafeEndMousePosition;H.add(o,i,o),t.endPosition=o,PY(e,t,e._strafeStartPosition),t.endPosition=n}var ige=new In,Hlt=new In,TY=new m,Glt=new m,Wlt=new m,jlt=new m,Ylt=new fn(m.UNIT_X,0),qlt=new H,Xlt=new H;function Klt(e,t,n){if(m.equals(t,e._translateMousePosition)||(e._looking=!1),m.equals(t,e._strafeMousePosition)||(e._strafing=!1),e._looking){hu(e,t,n);return}if(e._strafing){dge(e,n);return}let o=e._scene.camera,r=e._cameraUnderground,s=H.clone(n.startPosition,qlt),a=H.clone(n.endPosition,Xlt),c=o.getPickRay(s,ige),u=m.clone(m.ZERO,jlt),f=m.UNIT_X,d;if(o.position.z<e._minimumPickingTerrainHeight&&(d=Ay(e,s,TY),l(d)&&(u.x=d.x)),r||u.x>o.position.z&&l(d)){let E=d;r&&(E=fge(e,c,d,TY)),H.clone(t,e._strafeMousePosition),H.clone(t,e._strafeEndMousePosition),m.clone(E,e._strafeStartPosition),e._strafing=!0,PY(e,n,e._strafeStartPosition);return}let p=fn.fromPointNormal(u,f,Ylt);c=o.getPickRay(s,ige);let g=Ji.rayPlane(c,p,TY),h=o.getPickRay(a,Hlt),A=Ji.rayPlane(h,p,Glt);if(!l(g)||!l(A)){e._looking=!0,hu(e,t,n),H.clone(t,e._translateMousePosition);return}let x=m.subtract(g,A,Wlt),C=x.x;x.x=x.y,x.y=x.z,x.z=C;let T=m.magnitude(x);T>P.EPSILON6&&(m.normalize(x,x),o.move(x,T))}var mge=new H,Ik=new In,Pk=new m,Jlt=new m,hge=new B,Zlt=new B,Qlt=new m,$lt=new fn(m.UNIT_X,0),EY=new m,wY=new he,pge=new B,eut=new Ne,tut=new Z,Ok=new m;function nut(e,t,n){if(l(n.angleAndHeight)&&(n=n.angleAndHeight),H.equals(t,e._tiltCenterMousePosition)||(e._tiltCVOffMap=!1,e._looking=!1),e._looking){hu(e,t,n);return}let o=e._scene.camera;e._tiltCVOffMap||!e.onMap()||Math.abs(o.position.z)>e._minimumPickingTerrainHeight?(e._tiltCVOffMap=!0,iut(e,t,n)):out(e,t,n)}function iut(e,t,n){let i=e._scene,o=i.camera,r=i.canvas,s=mge;s.x=r.clientWidth/2,s.y=r.clientHeight/2;let a=o.getPickRay(s,Ik),c=m.UNIT_X,u=a.origin,f=a.direction,d,p=m.dot(c,f);if(Math.abs(p)>P.EPSILON6&&(d=-m.dot(c,u)/p),!l(d)||d<=0){e._looking=!0,hu(e,t,n),H.clone(t,e._tiltCenterMousePosition);return}let g=m.multiplyByScalar(f,d,Pk);m.add(u,g,g);let h=i.mapProjection,A=h.ellipsoid;m.fromElements(g.y,g.z,g.x,g);let x=h.unproject(g,wY);A.cartographicToCartesian(x,g);let C=Rt.eastNorthUpToFixedFrame(g,A,hge),T=e._globe,E=e._ellipsoid;e._globe=void 0,e._ellipsoid=oe.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let S=B.clone(o.transform,pge);o._setTransform(C),mu(e,t,n,m.UNIT_Z),o._setTransform(S),e._globe=T,e._ellipsoid=E;let v=E.maximumRadius;e._rotateFactor=1/v,e._rotateRateRangeAdjustment=v}function out(e,t,n){let i=e._scene,o=i.camera,r=e._cameraUnderground,s,a,c=m.UNIT_X;if(H.equals(t,e._tiltCenterMousePosition))s=m.clone(e._tiltCenter,Pk);else{if(o.position.z<e._minimumPickingTerrainHeight&&(s=Ay(e,t,Pk)),!l(s)){a=o.getPickRay(t,Ik);let _=a.origin,b=a.direction,w,I=m.dot(c,b);if(Math.abs(I)>P.EPSILON6&&(w=-m.dot(c,_)/I),!l(w)||w<=0){e._looking=!0,hu(e,t,n),H.clone(t,e._tiltCenterMousePosition);return}s=m.multiplyByScalar(b,w,Pk),m.add(_,s,s)}r&&(l(a)||(a=o.getPickRay(t,Ik)),uge(e,a,s,s)),H.clone(t,e._tiltCenterMousePosition),m.clone(s,e._tiltCenter)}let u=i.canvas,f=mge;f.x=u.clientWidth/2,f.y=e._tiltCenterMousePosition.y,a=o.getPickRay(f,Ik);let d=m.clone(m.ZERO,Qlt);d.x=s.x;let p=fn.fromPointNormal(d,c,$lt),g=Ji.rayPlane(a,p,Jlt),h=o._projection,A=h.ellipsoid;m.fromElements(s.y,s.z,s.x,s);let x=h.unproject(s,wY);A.cartographicToCartesian(x,s);let C=Rt.eastNorthUpToFixedFrame(s,A,hge),T;l(g)?(m.fromElements(g.y,g.z,g.x,g),x=h.unproject(g,wY),A.cartographicToCartesian(x,g),T=Rt.eastNorthUpToFixedFrame(g,A,Zlt)):T=C;let E=e._globe,S=e._ellipsoid;e._globe=void 0,e._ellipsoid=oe.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=m.UNIT_Z,D=B.clone(o.transform,pge);o._setTransform(C);let O=m.cross(m.UNIT_Z,m.normalize(o.position,EY),EY),M=m.dot(o.right,O);if(mu(e,t,n,v,!1,!0),o._setTransform(T),M<0){let _=n.startPosition.y-n.endPosition.y;(r&&_<0||!r&&_>0)&&(v=void 0);let b=o.constrainedAxis;o.constrainedAxis=void 0,mu(e,t,n,v,!0,!1),o.constrainedAxis=b}else mu(e,t,n,v,!0,!1);if(l(o.constrainedAxis)){let _=m.cross(o.direction,o.constrainedAxis,Ok);m.equalsEpsilon(_,m.ZERO,P.EPSILON6)||(m.dot(_,o.right)<0&&m.negate(_,_),m.cross(_,o.direction,o.up),m.cross(o.direction,o.up,o.right),m.normalize(o.up,o.up),m.normalize(o.right,o.right))}o._setTransform(D),e._globe=E,e._ellipsoid=S;let L=S.maximumRadius;e._rotateFactor=1/L,e._rotateRateRangeAdjustment=L;let N=m.clone(o.positionWC,EY);if(e.enableCollisionDetection&&RY(e),!m.equals(o.positionWC,N)){o._setTransform(T),o.worldToCameraCoordinatesPoint(N,N);let _=m.magnitudeSquared(N);m.magnitudeSquared(o.position)>_&&(m.normalize(o.position,o.position),m.multiplyByScalar(o.position,Math.sqrt(_),o.position));let b=m.angleBetween(N,o.position),w=m.cross(N,o.position,N);m.normalize(w,w);let I=Ne.fromAxisAngle(w,b,eut),R=Z.fromQuaternion(I,tut);Z.multiplyByVector(R,o.direction,o.direction),Z.multiplyByVector(R,o.up,o.up),m.cross(o.direction,o.up,o.right),m.cross(o.right,o.direction,o.up),o._setTransform(D)}}var _ge=new H,gge=new In,yge=new m;function rut(e,t,n){l(n.distance)&&(n=n.distance);let i=e._scene,o=i.camera,r=i.canvas,s=e._cameraUnderground,a;s?a=t:(a=_ge,a.x=r.clientWidth/2,a.y=r.clientHeight/2);let c=o.getPickRay(a,gge),u=c.origin,f=c.direction,d=o.position.z,p;d<e._minimumPickingTerrainHeight&&(p=Ay(e,a,yge));let g;if(l(p)&&(g=m.distance(u,p)),s){let h=lge(e,c,d);l(g)?g=Math.min(g,h):g=h}if(!l(g)){let h=m.UNIT_X;g=-m.dot(h,u)/m.dot(h,f)}IY(e,t,n,e._zoomFactor,g)}function sut(e){let n=e._scene.camera;if(!B.equals(B.IDENTITY,n.transform))Mc(e,e.enableRotate,e.rotateEventTypes,mu,e.inertiaSpin,"_lastInertiaSpinMovement"),Mc(e,e.enableZoom,e.zoomEventTypes,Age,e.inertiaZoom,"_lastInertiaZoomMovement");else{let i=e._tweens;if(e._aggregator.anyButtonDown&&i.removeAll(),Mc(e,e.enableTilt,e.tiltEventTypes,nut,e.inertiaSpin,"_lastInertiaTiltMovement"),Mc(e,e.enableTranslate,e.translateEventTypes,Klt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),Mc(e,e.enableZoom,e.zoomEventTypes,rut,e.inertiaZoom,"_lastInertiaZoomMovement"),Mc(e,e.enableLook,e.lookEventTypes,hu),!e._aggregator.anyButtonDown&&!i.contains(e._tween)){let o=n.createCorrectPositionTween(e.bounceAnimationTime);l(o)&&(e._tween=i.add(o))}i.update()}}var aut=new In,cut=new fn(m.UNIT_X,0),lut=new m,uut=new m,fut=new m;function PY(e,t,n){let i=e._scene,o=i.camera,r=o.getPickRay(t.endPosition,aut),s=m.clone(o.direction,uut);i.mode===ne.COLUMBUS_VIEW&&m.fromElements(s.z,s.x,s.y,s);let a=fn.fromPointNormal(n,s,cut),c=Ji.rayPlane(r,a,lut);l(c)&&(s=m.subtract(n,c,s),i.mode===ne.COLUMBUS_VIEW&&m.fromElements(s.y,s.z,s.x,s),m.add(o.position,s,o.position))}var oge=new m,dut=new he,vY=new m,DY=new oe,mut=new m,hut=new m;function put(e,t,n){let o=e._scene.camera,r=e._cameraUnderground,s=e._ellipsoid;if(!B.equals(o.transform,B.IDENTITY)){mu(e,t,n);return}let a,c,u=s.geodeticSurfaceNormal(o.position,mut);if(H.equals(t,e._rotateMousePosition)){if(e._looking)hu(e,t,n,u);else if(e._rotating)mu(e,t,n);else if(e._strafing)dge(e,n);else{if(m.magnitude(o.position)<m.magnitude(e._rotateStartPosition))return;a=m.magnitude(e._rotateStartPosition),c=vY,c.x=c.y=c.z=a,s=oe.fromCartesian3(c,DY),SY(e,t,n,s)}return}e._looking=!1,e._rotating=!1,e._strafing=!1;let f=s.cartesianToCartographic(o.positionWC,dut).height,d=e._globe;if(l(d)&&f<e._minimumPickingTerrainHeight){let p=Ay(e,n.startPosition,fut);if(l(p)){let g=!1,h=o.getPickRay(n.startPosition,cge);if(r)g=!0,fge(e,h,p,p);else{let A=s.geodeticSurfaceNormal(p,hut);Math.abs(m.dot(h.direction,A))<.05?g=!0:g=m.magnitude(o.position)<m.magnitude(p)}g?(H.clone(t,e._strafeEndMousePosition),m.clone(p,e._strafeStartPosition),e._strafing=!0,PY(e,n,e._strafeStartPosition)):(a=m.magnitude(p),c=vY,c.x=c.y=c.z=a,s=oe.fromCartesian3(c,DY),SY(e,t,n,s),m.clone(p,e._rotateStartPosition))}else e._looking=!0,hu(e,t,n,u)}else l(o.pickEllipsoid(n.startPosition,e._ellipsoid,oge))?(SY(e,t,n,e._ellipsoid),m.clone(oge,e._rotateStartPosition)):f>e._minimumTrackBallHeight?(e._rotating=!0,mu(e,t,n)):(e._looking=!0,hu(e,t,n,u));H.clone(t,e._rotateMousePosition)}function mu(e,t,n,i,o,r){o=y(o,!1),r=y(r,!1);let s=e._scene,a=s.camera,c=s.canvas,u=a.constrainedAxis;l(i)&&(a.constrainedAxis=i);let f=m.magnitude(a.position),d=e._rotateFactor*(f-e._rotateRateRangeAdjustment);d>e._maximumRotateRate&&(d=e._maximumRotateRate),d<e._minimumRotateRate&&(d=e._minimumRotateRate);let p=(n.startPosition.x-n.endPosition.x)/c.clientWidth,g=(n.startPosition.y-n.endPosition.y)/c.clientHeight;p=Math.min(p,e.maximumMovementRatio),g=Math.min(g,e.maximumMovementRatio);let h=d*p*Math.PI*2,A=d*g*Math.PI;o||a.rotateRight(h),r||a.rotateUp(A),a.constrainedAxis=u}var _ut=re.clone(re.UNIT_W),gut=re.clone(re.UNIT_W),Dk=new m,bY=new m,yut=new m,Aut=new m,xut=new H,Cut=new H;function SY(e,t,n,i){let r=e._scene.camera,s=H.clone(n.startPosition,xut),a=H.clone(n.endPosition,Cut),c=r.pickEllipsoid(s,i,_ut),u=r.pickEllipsoid(a,i,gut);if(!l(c)||!l(u)){e._rotating=!0,mu(e,t,n);return}if(c=r.worldToCameraCoordinates(c,c),u=r.worldToCameraCoordinates(u,u),l(r.constrainedAxis)){let f=r.constrainedAxis,d=m.mostOrthogonalAxis(f,Dk);m.cross(d,f,d),m.normalize(d,d);let p=m.cross(f,d,bY),g=m.magnitude(c),h=m.dot(f,c),A=Math.acos(h/g),x=m.multiplyByScalar(f,h,yut);m.subtract(c,x,x),m.normalize(x,x);let C=m.magnitude(u),T=m.dot(f,u),E=Math.acos(T/C),S=m.multiplyByScalar(f,T,Aut);m.subtract(u,S,S),m.normalize(S,S);let v=Math.acos(m.dot(x,d));m.dot(x,p)<0&&(v=P.TWO_PI-v);let D=Math.acos(m.dot(S,d));m.dot(S,p)<0&&(D=P.TWO_PI-D);let O=v-D,M;m.equalsEpsilon(f,r.position,P.EPSILON2)?M=r.right:M=m.cross(f,r.position,Dk);let L=m.cross(f,M,Dk),N=m.dot(L,m.subtract(c,f,bY)),_=m.dot(L,m.subtract(u,f,bY)),b;N>0&&_>0?b=E-A:N>0&&_<=0?m.dot(r.position,f)>0?b=-A-E:b=A+E:b=A-E,r.rotateRight(O),r.rotateUp(b)}else{m.normalize(c,c),m.normalize(u,u);let f=m.dot(c,u),d=m.cross(c,u,Dk);if(f<1&&!m.equalsEpsilon(d,m.ZERO,P.EPSILON14)){let p=Math.acos(f);r.rotate(d,p)}}}var Tut=new m,Eut=new he,rge=0;function Age(e,t,n){l(n.distance)&&(n=n.distance);let i=n.inertiaEnabled,o=e._ellipsoid,r=e._scene,s=r.camera,a=r.canvas,c=e._cameraUnderground,u;c?u=t:(u=_ge,u.x=a.clientWidth/2,u.y=a.clientHeight/2);let f=s.getPickRay(u,gge),d,p=o.cartesianToCartographic(s.position,Eut).height,g=Math.abs(rge)<e.minimumPickingTerrainDistanceWithInertia;(i?g:p<e._minimumPickingTerrainHeight)&&(d=Ay(e,u,yge));let A;if(l(d)&&(A=m.distance(f.origin,d),rge=A),c){let C=lge(e,f,p);l(A)?A=Math.min(A,C):A=C}l(A)||(A=p);let x=m.normalize(s.position,Tut);IY(e,t,n,e._zoomFactor,A,m.dot(x,s.direction))}var xge=new H,Mk=new In,JD=new m,but=new m,Cge=new B,Sut=new B,Tge=new B,wut=new Ne,vut=new Z,OY=new he,MY=new m;function Dut(e,t,n){let o=e._scene.camera;if(!B.equals(o.transform,B.IDENTITY))return;if(l(n.angleAndHeight)&&(n=n.angleAndHeight),H.equals(t,e._tiltCenterMousePosition)||(e._tiltOnEllipsoid=!1,e._looking=!1),e._looking){let a=e._ellipsoid.geodeticSurfaceNormal(o.position,MY);hu(e,t,n,a);return}let s=e._ellipsoid.cartesianToCartographic(o.position,OY);e._tiltOnEllipsoid||s.height>e._minimumCollisionTerrainHeight?(e._tiltOnEllipsoid=!0,Put(e,t,n)):Out(e,t,n)}var Iut=new he;function Put(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e.minimumZoomDistance*.25,a=i.cartesianToCartographic(r.positionWC,Iut).height;if(a-s-1<P.EPSILON3&&n.endPosition.y-n.startPosition.y<0)return;let c=o.canvas,u=xge;u.x=c.clientWidth/2,u.y=c.clientHeight/2;let f=r.getPickRay(u,Mk),d,p=Ji.rayEllipsoid(f,i);if(l(p))d=In.getPoint(f,p.start,JD);else if(a>e._minimumTrackBallHeight){let T=Ji.grazingAltitudeLocation(f,i);if(!l(T))return;let E=i.cartesianToCartographic(T,OY);E.height=0,d=i.cartographicToCartesian(E,JD)}else{e._looking=!0;let T=e._ellipsoid.geodeticSurfaceNormal(r.position,MY);hu(e,t,n,T),H.clone(t,e._tiltCenterMousePosition);return}let g=Rt.eastNorthUpToFixedFrame(d,i,Cge),h=e._globe,A=e._ellipsoid;e._globe=void 0,e._ellipsoid=oe.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let x=B.clone(r.transform,Tge);r._setTransform(g),mu(e,t,n,m.UNIT_Z),r._setTransform(x),e._globe=h,e._ellipsoid=A;let C=A.maximumRadius;e._rotateFactor=1/C,e._rotateRateRangeAdjustment=C}function Out(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e._cameraUnderground,a,c,u;if(H.equals(t,e._tiltCenterMousePosition))a=m.clone(e._tiltCenter,JD);else{if(a=Ay(e,t,JD),!l(a)){if(c=r.getPickRay(t,Mk),u=Ji.rayEllipsoid(c,i),!l(u)){if(i.cartesianToCartographic(r.position,OY).height<=e._minimumTrackBallHeight){e._looking=!0;let b=e._ellipsoid.geodeticSurfaceNormal(r.position,MY);hu(e,t,n,b),H.clone(t,e._tiltCenterMousePosition)}return}a=In.getPoint(c,u.start,JD)}s&&(l(c)||(c=r.getPickRay(t,Mk)),uge(e,c,a,a)),H.clone(t,e._tiltCenterMousePosition),m.clone(a,e._tiltCenter)}let f=o.canvas,d=xge;d.x=f.clientWidth/2,d.y=e._tiltCenterMousePosition.y,c=r.getPickRay(d,Mk);let p=m.magnitude(a),g=m.fromElements(p,p,p,vY),h=oe.fromCartesian3(g,DY);if(u=Ji.rayEllipsoid(c,h),!l(u))return;let A=m.magnitude(c.origin)>p?u.start:u.stop,x=In.getPoint(c,A,but),C=Rt.eastNorthUpToFixedFrame(a,i,Cge),T=Rt.eastNorthUpToFixedFrame(x,h,Sut),E=e._globe,S=e._ellipsoid;e._globe=void 0,e._ellipsoid=oe.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=m.UNIT_Z,D=B.clone(r.transform,Tge);r._setTransform(T);let O=m.cross(x,r.positionWC,Ok);if(m.dot(r.rightWC,O)<0){let _=n.startPosition.y-n.endPosition.y;(s&&_<0||!s&&_>0)&&(v=void 0);let b=r.constrainedAxis;r.constrainedAxis=void 0,mu(e,t,n,v,!0,!1),r.constrainedAxis=b}else mu(e,t,n,v,!0,!1);if(r._setTransform(C),mu(e,t,n,v,!1,!0),l(r.constrainedAxis)){let _=m.cross(r.direction,r.constrainedAxis,Ok);m.equalsEpsilon(_,m.ZERO,P.EPSILON6)||(m.dot(_,r.right)<0&&m.negate(_,_),m.cross(_,r.direction,r.up),m.cross(r.direction,r.up,r.right),m.normalize(r.up,r.up),m.normalize(r.right,r.right))}r._setTransform(D),e._globe=E,e._ellipsoid=S;let L=S.maximumRadius;e._rotateFactor=1/L,e._rotateRateRangeAdjustment=L;let N=m.clone(r.positionWC,Ok);if(e.enableCollisionDetection&&RY(e),!m.equals(r.positionWC,N)){r._setTransform(T),r.worldToCameraCoordinatesPoint(N,N);let _=m.magnitudeSquared(N);m.magnitudeSquared(r.position)>_&&(m.normalize(r.position,r.position),m.multiplyByScalar(r.position,Math.sqrt(_),r.position));let b=m.angleBetween(N,r.position),w=m.cross(N,r.position,N);m.normalize(w,w);let I=Ne.fromAxisAngle(w,b,wut),R=Z.fromQuaternion(I,vut);Z.multiplyByVector(R,r.direction,r.direction),Z.multiplyByVector(R,r.up,r.up),m.cross(r.direction,r.up,r.right),m.cross(r.right,r.direction,r.up),r._setTransform(D)}}var Mut=new H,Rut=new H,sge=new In,age=new In,But=new m,Lut=new m;function hu(e,t,n,i){let r=e._scene.camera,s=Mut;s.x=n.startPosition.x,s.y=0;let a=Rut;a.x=n.endPosition.x,a.y=0;let c=r.getPickRay(s,sge),u=r.getPickRay(a,age),f=0,d,p;r.frustum instanceof tn?(d=c.origin,p=u.origin,m.add(r.direction,d,d),m.add(r.direction,p,p),m.subtract(d,r.position,d),m.subtract(p,r.position,p),m.normalize(d,d),m.normalize(p,p)):(d=c.direction,p=u.direction);let g=m.dot(d,p);g<1&&(f=Math.acos(g)),f=n.startPosition.x>n.endPosition.x?-f:f;let h=e._horizontalRotationAxis;if(l(i)?r.look(i,-f):l(h)?r.look(h,-f):r.lookLeft(f),s.x=0,s.y=n.startPosition.y,a.x=0,a.y=n.endPosition.y,c=r.getPickRay(s,sge),u=r.getPickRay(a,age),f=0,r.frustum instanceof tn?(d=c.origin,p=u.origin,m.add(r.direction,d,d),m.add(r.direction,p,p),m.subtract(d,r.position,d),m.subtract(p,r.position,p),m.normalize(d,d),m.normalize(p,p)):(d=c.direction,p=u.direction),g=m.dot(d,p),g<1&&(f=Math.acos(g)),f=n.startPosition.y>n.endPosition.y?-f:f,i=y(i,h),l(i)){let A=r.direction,x=m.negate(i,But),C=m.equalsEpsilon(A,i,P.EPSILON2),T=m.equalsEpsilon(A,x,P.EPSILON2);if(!C&&!T){g=m.dot(A,i);let E=P.acosClamped(g);f>0&&f>E&&(f=E-P.EPSILON4),g=m.dot(A,x),E=P.acosClamped(g),f<0&&-f>E&&(f=-E+P.EPSILON4);let S=m.cross(i,A,Lut);r.look(S,f)}else(C&&f<0||T&&f>0)&&r.look(r.right,-f)}else r.lookUp(f)}function Nut(e){Mc(e,e.enableRotate,e.rotateEventTypes,put,e.inertiaSpin,"_lastInertiaSpinMovement"),Mc(e,e.enableZoom,e.zoomEventTypes,Age,e.inertiaZoom,"_lastInertiaZoomMovement"),Mc(e,e.enableTilt,e.tiltEventTypes,Dut,e.inertiaSpin,"_lastInertiaTiltMovement"),Mc(e,e.enableLook,e.lookEventTypes,hu)}var Fut=new B,Uut=new he;function RY(e){e._adjustedHeightForTerrain=!0;let t=e._scene,n=t.mode,i=t.globe;if(!l(i)||n===ne.SCENE2D||n===ne.MORPHING)return;let o=t.camera,r=i.ellipsoid,s=t.mapProjection,a,c;B.equals(o.transform,B.IDENTITY)||(a=B.clone(o.transform,Fut),c=m.magnitude(o.position),o._setTransform(B.IDENTITY));let u=Uut;n===ne.SCENE3D?r.cartesianToCartographic(o.position,u):s.unproject(o.position,u);let f=!1;if(u.height<e._minimumCollisionTerrainHeight){let d=e._scene.globeHeight;if(l(d)){let p=d+e.minimumZoomDistance;u.height<p&&(u.height=p,n===ne.SCENE3D?r.cartographicToCartesian(u,o.position):s.project(u,o.position),f=!0)}}l(a)&&(o._setTransform(a),f&&(m.normalize(o.position,o.position),m.negate(o.position,o.direction),m.multiplyByScalar(o.position,Math.max(c,e.minimumZoomDistance),o.position),m.normalize(o.direction,o.direction),m.cross(o.direction,o.up,o.right),m.cross(o.right,o.direction,o.up)))}ZD.prototype.onMap=function(){let e=this._scene,t=e.mode,n=e.camera;return t===ne.COLUMBUS_VIEW?Math.abs(n.position.x)-this._maxCoord.x<0&&Math.abs(n.position.y)-this._maxCoord.y<0:!0};var Vut=new m,kut=new m;ZD.prototype.update=function(){let e=this._scene,t=e.camera,n=e.globe,i=e.mode;B.equals(t.transform,B.IDENTITY)?(this._globe=n,this._ellipsoid=l(this._globe)?this._globe.ellipsoid:e.mapProjection.ellipsoid):(this._globe=void 0,this._ellipsoid=oe.UNIT_SPHERE);let o=l(this._globe)?this._globe.terrainExaggeration:1,r=l(this._globe)?this._globe.terrainExaggerationRelativeHeight:0;this._minimumCollisionTerrainHeight=Wc.getHeight(this.minimumCollisionTerrainHeight,o,r),this._minimumPickingTerrainHeight=Wc.getHeight(this.minimumPickingTerrainHeight,o,r),this._minimumTrackBallHeight=Wc.getHeight(this.minimumTrackBallHeight,o,r),this._cameraUnderground=e.cameraUnderground&&l(this._globe);let s=this._ellipsoid.maximumRadius;this._rotateFactor=1/s,this._rotateRateRangeAdjustment=s,this._adjustedHeightForTerrain=!1;let a=m.clone(t.positionWC,Vut),c=m.clone(t.directionWC,kut);i===ne.SCENE2D?Nlt(this):i===ne.COLUMBUS_VIEW?(this._horizontalRotationAxis=m.UNIT_Z,sut(this)):i===ne.SCENE3D&&(this._horizontalRotationAxis=void 0,Nut(this)),this.enableCollisionDetection&&!this._adjustedHeightForTerrain&&(!m.equals(a,t.positionWC)||!m.equals(c,t.directionWC))&&RY(this),this._aggregator.reset()};ZD.prototype.isDestroyed=function(){return!1};ZD.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),ue(this)};var Bk=ZD;var Lk=`uniform sampler2D colorTexture; +uniform sampler2D colorTexture2; + +uniform vec2 center; +uniform float radius; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color0 = texture(colorTexture, v_textureCoordinates); + vec4 color1 = texture(colorTexture2, v_textureCoordinates); + + float x = length(gl_FragCoord.xy - center) / radius; + float t = smoothstep(0.5, 0.8, x); + out_FragColor = mix(color0 + color1, color1, t); +} +`;var Nk=`uniform sampler2D colorTexture; + +uniform float avgLuminance; +uniform float threshold; +uniform float offset; + +in vec2 v_textureCoordinates; + +float key(float avg) +{ + float guess = 1.5 - (1.5 / (avg * 0.1 + 1.0)); + return max(0.0, guess) + 0.1; +} + +// See section 9. "The bright-pass filter" of Realtime HDR Rendering +// http://www.cg.tuwien.ac.at/research/publications/2007/Luksch_2007_RHR/Luksch_2007_RHR-RealtimeHDR%20.pdf + +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec3 xyz = czm_RGBToXYZ(color.rgb); + float luminance = xyz.r; + + float scaledLum = key(avgLuminance) * luminance / avgLuminance; + float brightLum = max(scaledLum - threshold, 0.0); + float brightness = brightLum / (offset + brightLum); + + xyz.r = brightness; + out_FragColor = vec4(czm_XYZToRGB(xyz), 1.0); +} +`;function qp(){this._sceneFramebuffer=new eb;let e=.125,t=new Array(6);t[0]=new Ao({fragmentShader:fu,textureScale:e,forcePowerOfTwo:!0,sampleMode:pf.LINEAR});let n=t[1]=new Ao({fragmentShader:Nk,uniforms:{avgLuminance:.5,threshold:.25,offset:.1},textureScale:e,forcePowerOfTwo:!0}),i=this;this._delta=1,this._sigma=2,this._blurStep=new H,t[2]=new Ao({fragmentShader:NA,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:0},textureScale:e,forcePowerOfTwo:!0}),t[3]=new Ao({fragmentShader:NA,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:1},textureScale:e,forcePowerOfTwo:!0}),t[4]=new Ao({fragmentShader:fu,sampleMode:pf.LINEAR}),this._uCenter=new H,this._uRadius=void 0,t[5]=new Ao({fragmentShader:Lk,uniforms:{center:function(){return i._uCenter},radius:function(){return i._uRadius},colorTexture2:function(){return i._sceneFramebuffer.framebuffer.getColorTexture(0)}}}),this._stages=new gl({stages:t});let o=new rb(this),r=t.length;for(let s=0;s<r;++s)t[s]._textureCache=o;this._textureCache=o,this.length=t.length}qp.prototype.get=function(e){return this._stages.get(e)};qp.prototype.getStageByName=function(e){let t=this._stages.length;for(let n=0;n<t;++n){let i=this._stages.get(n);if(i.name===e)return i}};var zut=new re,Ege=new H,Hut=new H,bge=new B;function Gut(e,t,n){let i=t.uniformState,o=i.sunPositionWC,r=i.view,s=i.viewProjection,a=i.projection,c=B.computeViewportTransformation(n,0,1,bge),u=B.multiplyByPoint(r,o,zut),f=Rt.pointToGLWindowCoordinates(s,c,o,Ege);u.x+=P.SOLAR_RADIUS;let d=Rt.pointToGLWindowCoordinates(a,c,u,u),p=H.magnitude(H.subtract(d,f,d))*30*2,g=Hut;g.x=p,g.y=p,e._uCenter=H.clone(f,e._uCenter),e._uRadius=Math.max(g.x,g.y)*.15;let h=t.drawingBufferWidth,A=t.drawingBufferHeight,x=e._stages,C=x.get(0),T=C.outputTexture.width,E=C.outputTexture.height,S=new Ke;S.width=T,S.height=E,c=B.computeViewportTransformation(S,0,1,bge),f=Rt.pointToGLWindowCoordinates(s,c,o,Ege),g.x*=T/h,g.y*=E/A;let v=C.scissorRectangle;v.x=Math.max(f.x-g.x*.5,0),v.y=Math.max(f.y-g.y*.5,0),v.width=Math.min(g.x,h),v.height=Math.min(g.y,A);for(let D=1;D<4;++D)Ke.clone(v,x.get(D).scissorRectangle)}qp.prototype.clear=function(e,t,n){this._sceneFramebuffer.clear(e,t,n),this._textureCache.clear(e)};qp.prototype.update=function(e){let t=e.context,n=e.viewport,i=this._sceneFramebuffer;i.update(t,n);let o=i.framebuffer;return this._textureCache.update(t),this._stages.update(t,!1),Gut(this,t,n),o};qp.prototype.execute=function(e){let t=this._sceneFramebuffer.framebuffer.getColorTexture(0),n=this._stages,i=n.length;n.get(0).execute(e,t);for(let o=1;o<i;++o)n.get(o).execute(e,n.get(o-1).outputTexture)};qp.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(fu,{uniformMap:{colorTexture:function(){return n._stages.get(n._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};qp.prototype.isDestroyed=function(){return!1};qp.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),ue(this)};var Fk=qp;function Sge(){this._cachedShowFrustumsShaders={}}function Wut(e){let t={},n=e.vertexAttributes;for(let i in n)n.hasOwnProperty(i)&&(t[i]=n[i].index);return t}function jut(e,t){let n=e.context,i=t,o=i.fragmentShaderSource.clone(),r=[];o.sources=o.sources.map(function(f){f=He.replaceMain(f,"czm_Debug_main");let d=/out_FragData_(\d+)/g,p;for(;(p=d.exec(f))!==null;)r.indexOf(p[1])===-1&&r.push(p[1]);return f});let s=r.length,a="";a+=`uniform vec3 debugShowCommandsColor; +`,a+=`uniform vec3 debugShowFrustumsColor; +`,a+=`void main() +{ + czm_Debug_main(); +`;let c;if(s>0)for(c=0;c<s;++c)a+=` out_FragData_${r[c]}.rgb *= debugShowCommandsColor; +`,a+=` out_FragData_${r[c]}.rgb *= debugShowFrustumsColor; +`;else a+=` out_FragColor.rgb *= debugShowCommandsColor; +`,a+=` out_FragColor.rgb *= debugShowFrustumsColor; +`;a+="}",o.sources.push(a);let u=Wut(i);return Jt.fromCache({context:n,vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:o,attributeLocations:u})}var QD=new z;function Yut(e,t){let n;return l(t.uniformMap)?n=t.uniformMap:n={},l(n.debugShowCommandsColor)||l(n.debugShowFrustumsColor)||(n.debugShowCommandsColor=function(){return e.debugShowCommands?(l(t._debugColor)||(t._debugColor=z.fromRandom()),t._debugColor):z.WHITE},n.debugShowFrustumsColor=function(){return e.debugShowFrustums?(QD.red=t.debugOverlappingFrustums&1<<0?1:0,QD.green=t.debugOverlappingFrustums&1<<1?1:0,QD.blue=t.debugOverlappingFrustums&1<<2?1:0,QD.alpha=1,QD):z.WHITE}),n}var qut=new it;Sge.prototype.executeDebugShowFrustumsCommand=function(e,t,n){let i=t.shaderProgram.id,o=this._cachedShowFrustumsShaders[i];l(o)||(o=jut(e,t.shaderProgram),this._cachedShowFrustumsShaders[i]=o);let r=it.shallowClone(t,qut);r.shaderProgram=o,r.uniformMap=Yut(e,t),r.execute(e.context,n)};var Uk=Sge;var kk=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};function Vi(e){e=y(e,y.EMPTY_OBJECT);let t=e.canvas,n=e.creditContainer,i=e.creditViewport,o=Ye(e.contextOptions),r=l(n),s=new AM(t,o);r||(n=document.createElement("div"),n.style.position="absolute",n.style.bottom="0",n.style["text-shadow"]="0 0 2px #000000",n.style.color="#ffffff",n.style["font-size"]="10px",n.style["padding-right"]="5px",t.parentNode.appendChild(n)),l(i)||(i=t.parentNode),this._id=jn(),this._jobScheduler=new FV,this._frameState=new BV(s,new TV(n," \u2022 ",i),this._jobScheduler),this._frameState.scene3DOnly=y(e.scene3DOnly,!1),this._removeCreditContainer=!r,this._creditContainer=n,this._canvas=t,this._context=s,this._computeEngine=new pP(s),this._globe=void 0,this._globeTranslucencyState=new LV,this._primitives=new Xl,this._groundPrimitives=new Xl,this._globeHeight=void 0,this._cameraUnderground=!1,this._logDepthBuffer=s.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new ab,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=y(e.orderIndependentTranslucency,!0),this._executeOITFunction=void 0,this._depthPlane=new IV(e.depthPlaneEllipsoidOffset),this._clearColorCommand=new oi({color:new z,stencil:0,owner:this}),this._depthClearCommand=new oi({depth:1,owner:this}),this._stencilClearCommand=new oi({stencil:0}),this._classificationStencilClearCommand=new oi({stencil:0,renderState:ze.fromCache({stencilMask:Ft.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._transitioner=new bk(this),this._preUpdate=new ge,this._postUpdate=new ge,this._renderError=new ge,this._preRender=new ge,this._postRender=new ge,this._minimumDisableDepthTestDistance=0,this._debugInspector=new Uk,this._msaaSamples=y(e.msaaSamples,1),this.rethrowRenderErrors=!1,this.completeMorphOnUserInput=!0,this.morphStart=new ge,this.morphComplete=new ge,this.skyBox=void 0,this.skyAtmosphere=void 0,this.sun=void 0,this.sunBloom=!0,this._sunBloom=void 0,this.moon=void 0,this.backgroundColor=z.clone(z.BLACK),this._mode=ne.SCENE3D,this._mapProjection=l(e.mapProjection)?e.mapProjection:new Di,this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,this.debugCommandFilter=void 0,this.debugShowCommands=!1,this.debugShowFrustums=!1,this.debugShowFramesPerSecond=!1,this.debugShowDepthFrustum=1,this.debugShowFrustumPlanes=!1,this._debugShowFrustumPlanes=!1,this._debugFrustumPlanes=void 0,this.useDepthPicking=!0,this.pickTranslucentDepth=!1,this.cameraEventWaitTime=500,this.fog=new RV,this._shadowMapCamera=new uo(this),this.shadowMap=new _y({context:s,lightCamera:this._shadowMapCamera,enabled:y(e.shadows,!1)}),this.invertClassification=!1,this.invertClassificationColor=z.clone(z.WHITE),this._actualInvertClassificationColor=z.clone(this._invertClassificationColor),this._invertClassification=new VD,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new Ck,this._brdfLutGenerator=new dV,this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new Bk(this),this._cameraUnderground=!1,this._mapMode2D=y(e.mapMode2D,uu.INFINITE_SCROLL),this._environmentState={skyBoxCommand:void 0,skyAtmosphereCommand:void 0,sunDrawCommand:void 0,sunComputeCommand:void 0,moonCommand:void 0,isSunVisible:!1,isMoonVisible:!1,isReadyForAtmosphere:!1,isSkyAtmosphereVisible:!1,clearGlobeDepth:!1,useDepthPlane:!1,renderTranslucentDepthForPick:!1,originalFramebuffer:void 0,useGlobeDepthFramebuffer:!1,useOIT:!1,useInvertClassification:!1,usePostProcess:!1,usePostProcessSelected:!1,useWebVR:!1},this._useWebVR=!1,this._cameraVR=void 0,this._aspectRatioVR=void 0,this.requestRenderMode=y(e.requestRenderMode,!1),this._renderRequested=!0,this.maximumRenderTimeChange=y(e.maximumRenderTimeChange,0),this._lastRenderTime=void 0,this._frameRateMonitor=void 0,this._removeRequestListenerCallback=oc.requestCompletedEvent.addEventListener(kk(this)),this._removeTaskProcessorListenerCallback=pi.taskCompletedEvent.addEventListener(kk(this)),this._removeGlobeCallbacks=[],this._removeTerrainProviderReadyListener=void 0;let a=new Ke(0,0,s.drawingBufferWidth,s.drawingBufferHeight),c=new uo(this);this._logDepthBuffer&&(c.frustum.near=.1,c.frustum.far=1e10),this.preloadFlightCamera=new uo(this),this.preloadFlightCullingVolume=void 0,this._picking=new ek(this),this._defaultView=new nb(this,c,a),this._view=this._defaultView,this._hdr=void 0,this._hdrDirty=void 0,this.highDynamicRange=!1,this.gamma=2.2,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this._specularEnvironmentMapAtlas=void 0,this.light=new h_,Ige(this,0,ee.now()),this.updateFrameState(),this.initializeFrame()}function Xut(e,t){for(let i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;let n=[];l(t)&&(n.push(t.imageryLayersUpdatedEvent.addEventListener(kk(e))),n.push(t.terrainProviderChanged.addEventListener(kk(e)))),e._removeGlobeCallbacks=n}Object.defineProperties(Vi.prototype,{canvas:{get:function(){return this._canvas}},drawingBufferHeight:{get:function(){return this._context.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._context.drawingBufferWidth}},maximumAliasedLineWidth:{get:function(){return zt.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return zt.maximumCubeMapSize}},pickPositionSupported:{get:function(){return this._context.depthTexture}},sampleHeightSupported:{get:function(){return this._context.depthTexture}},clampToHeightSupported:{get:function(){return this._context.depthTexture}},invertClassificationSupported:{get:function(){return this._context.depthTexture}},specularEnvironmentMapsSupported:{get:function(){return dm.isSupported(this._context)}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,Xut(this,e)}},primitives:{get:function(){return this._primitives}},groundPrimitives:{get:function(){return this._groundPrimitives}},camera:{get:function(){return this._view.camera},set:function(e){this._view.camera=e}},view:{get:function(){return this._view},set:function(e){this._view=e}},defaultView:{get:function(){return this._defaultView}},picking:{get:function(){return this._picking}},screenSpaceCameraController:{get:function(){return this._screenSpaceCameraController}},mapProjection:{get:function(){return this._mapProjection}},jobScheduler:{get:function(){return this._jobScheduler}},frameState:{get:function(){return this._frameState}},environmentState:{get:function(){return this._environmentState}},tweens:{get:function(){return this._tweens}},imageryLayers:{get:function(){if(l(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(l(this.globe))return this.globe.terrainProvider},set:function(e){this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),l(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(l(this.globe))return this.globe.terrainProviderChanged}},preUpdate:{get:function(){return this._preUpdate}},postUpdate:{get:function(){return this._postUpdate}},renderError:{get:function(){return this._renderError}},preRender:{get:function(){return this._preRender}},postRender:{get:function(){return this._postRender}},lastRenderTime:{get:function(){return this._lastRenderTime}},context:{get:function(){return this._context}},debugFrustumStatistics:{get:function(){return this._view.debugFrustumStatistics}},scene3DOnly:{get:function(){return this._frameState.scene3DOnly}},orderIndependentTranslucency:{get:function(){return this._useOIT}},id:{get:function(){return this._id}},mode:{get:function(){return this._mode},set:function(e){e===ne.SCENE2D?this.morphTo2D(0):e===ne.SCENE3D?this.morphTo3D(0):e===ne.COLUMBUS_VIEW&&this.morphToColumbusView(0),this._mode=e}},frustumCommandsList:{get:function(){return this._view.frustumCommandsList}},numberOfFrustums:{get:function(){return this._view.frustumCommandsList.length}},useWebVR:{get:function(){return this._useWebVR},set:function(e){this._useWebVR=e,this._useWebVR?(this._frameState.creditDisplay.container.style.visibility="hidden",this._cameraVR=new uo(this),l(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new OV(this)),this._aspectRatioVR=this.camera.frustum.aspectRatio):(this._frameState.creditDisplay.container.style.visibility="visible",this._cameraVR=void 0,this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this.camera.frustum.aspectRatio=this._aspectRatioVR,this.camera.frustum.xOffset=0)}},mapMode2D:{get:function(){return this._mapMode2D}},splitPosition:{get:function(){return this._frameState.splitPosition},set:function(e){this._frameState.splitPosition=e}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance},set:function(e){this._minimumDisableDepthTestDistance=e}},logarithmicDepthBuffer:{get:function(){return this._logDepthBuffer},set:function(e){e=this._context.fragmentDepth&&e,this._logDepthBuffer!==e&&(this._logDepthBuffer=e,this._logDepthBufferDirty=!0)}},gamma:{get:function(){return this._context.uniformState.gamma},set:function(e){this._context.uniformState.gamma=e}},highDynamicRange:{get:function(){return this._hdr},set:function(e){let t=this._context,n=e&&t.depthTexture&&(t.colorBufferFloat||t.colorBufferHalfFloat);this._hdrDirty=n!==this._hdr,this._hdr=n}},highDynamicRangeSupported:{get:function(){let e=this._context;return e.depthTexture&&(e.colorBufferFloat||e.colorBufferHalfFloat)}},cameraUnderground:{get:function(){return this._cameraUnderground}},msaaSamples:{get:function(){return this._msaaSamples},set:function(e){e=Math.min(e,zt.maximumSamples),this._msaaSamples=e}},msaaSupported:{get:function(){return this._context.msaa}},pixelRatio:{get:function(){return this._frameState.pixelRatio},set:function(e){this._frameState.pixelRatio=e}},opaqueFrustumNearOffset:{get:function(){return .9999}},globeHeight:{get:function(){return this._globeHeight}}});Vi.prototype.getCompressedTextureFormatSupported=function(e){let t=this.context;return(e==="WEBGL_compressed_texture_s3tc"||e==="s3tc")&&t.s3tc||(e==="WEBGL_compressed_texture_pvrtc"||e==="pvrtc")&&t.pvrtc||(e==="WEBGL_compressed_texture_etc"||e==="etc")&&t.etc||(e==="WEBGL_compressed_texture_etc1"||e==="etc1")&&t.etc1||(e==="WEBGL_compressed_texture_astc"||e==="astc")&&t.astc||(e==="EXT_texture_compression_bptc"||e==="bc7")&&t.bc7};function wge(e,t,n){let i=e._frameState,o=e._context,r=e._view.oit,s=i.shadowState.lightShadowMaps,a=i.shadowState.lightShadowsEnabled,c=t.derivedCommands;l(t.pickId)&&(c.picking=dy.createPickDerivedCommand(e,t,o,c.picking)),t.pickOnly||(c.depth=dy.createDepthOnlyDerivedCommand(e,t,o,c.depth)),c.originalCommand=t,e._hdr&&(c.hdr=dy.createHdrCommand(t,o,c.hdr),t=c.hdr.command,c=t.derivedCommands),a&&t.receiveShadows&&(c.shadows=_y.createReceiveDerivedCommand(s,t,n,o,c.shadows)),t.pass===be.TRANSLUCENT&&l(r)&&r.isSupported()&&(a&&t.receiveShadows?(c.oit=l(c.oit)?c.oit:{},c.oit.shadows=r.createDerivedCommands(c.shadows.receiveCommand,o,c.oit.shadows)):c.oit=r.createDerivedCommands(t,o,c.oit))}Vi.prototype.updateDerivedCommands=function(e){if(!l(e.derivedCommands))return;let t=this._frameState,n=this._context,i=!1,o=t.shadowState.lastDirtyTime;e.lastDirtyTime!==o&&(e.lastDirtyTime=o,e.dirty=!0,i=!0);let r=t.useLogDepth,s=this._hdr,a=e.derivedCommands,c=l(a.logDepth),u=l(a.hdr),f=l(a.originalCommand),d=r&&!c,p=s&&!u,g=(!r||!s)&&!f;if(e.dirty=e.dirty||d||p||g,e.dirty){e.dirty=!1;let h=t.shadowState.shadowMaps;t.shadowState.shadowsEnabled&&e.castShadows&&(a.shadows=_y.createCastDerivedCommand(h,e,i,n,a.shadows)),(c||d)&&(a.logDepth=dy.createLogDepthCommand(e,n,a.logDepth),wge(this,a.logDepth.command,i)),(f||g)&&wge(this,e,i)}};var Kut=new Nd({pass:Ro.RENDER}),BY=new Nd({pass:Ro.PRELOAD}),LY=new Nd({pass:Ro.PRELOAD_FLIGHT}),Jut=new Nd({pass:Ro.REQUEST_RENDER_MODE_DEFER_CHECK}),vge=new ae,NY;function Zut(e){let t=e.globe;if(e._mode===ne.SCENE3D&&l(t)&&t.show&&!e._cameraUnderground&&!e._globeTranslucencyState.translucent){let n=t.ellipsoid,i=e.frameState.minimumTerrainHeight;return vge.radius=n.minimumRadius+i,NY=uV.fromBoundingSphere(vge,e.camera.positionWC,NY),NY}}Vi.prototype.clearPasses=function(e){e.render=!1,e.pick=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1};function Ige(e,t,n){let i=e._frameState;i.frameNumber=t,i.time=ee.clone(n,i.time)}Vi.prototype.updateFrameState=function(){let e=this.camera,t=this._frameState;t.commandList.length=0,t.shadowMaps.length=0,t.brdfLutGenerator=this._brdfLutGenerator,t.environmentMap=this.skyBox&&this.skyBox._cubeMap,t.mode=this._mode,t.morphTime=this.morphTime,t.mapProjection=this.mapProjection,t.camera=e,t.cullingVolume=e.frustum.computeCullingVolume(e.positionWC,e.directionWC,e.upWC),t.occluder=Zut(this),t.minimumTerrainHeight=0,t.minimumDisableDepthTestDistance=this._minimumDisableDepthTestDistance,t.invertClassification=this.invertClassification,t.useLogDepth=this._logDepthBuffer&&!(this.camera.frustum instanceof tn||this.camera.frustum instanceof Ir),t.light=this.light,t.cameraUnderground=this._cameraUnderground,t.globeTranslucencyState=this._globeTranslucencyState,l(this.globe)&&(t.terrainExaggeration=this.globe.terrainExaggeration,t.terrainExaggerationRelativeHeight=this.globe.terrainExaggerationRelativeHeight),l(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready?(t.specularEnvironmentMaps=this._specularEnvironmentMapAtlas.texture,t.specularEnvironmentMapsMaximumLOD=this._specularEnvironmentMapAtlas.maximumMipmapLevel):(t.specularEnvironmentMaps=void 0,t.specularEnvironmentMapsMaximumLOD=void 0),t.sphericalHarmonicCoefficients=this.sphericalHarmonicCoefficients,this._actualInvertClassificationColor=z.clone(this.invertClassificationColor,this._actualInvertClassificationColor),VD.isTranslucencySupported(this._context)||(this._actualInvertClassificationColor.alpha=1),t.invertClassificationColor=this._actualInvertClassificationColor,l(this.globe)?t.maximumScreenSpaceError=this.globe.maximumScreenSpaceError:t.maximumScreenSpaceError=2,this.clearPasses(t.passes),t.tilesetPassState=void 0};Vi.prototype.isVisible=function(e,t,n){return l(e)&&(!l(e.boundingVolume)||!e.cull||t.computeVisibility(e.boundingVolume)!==$t.OUTSIDE&&(!l(n)||!e.occlude||!e.boundingVolume.isOccluded(n)))};var Vk=new B(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);Vk=B.inverseTransformation(Vk,Vk);function Qut(e,t,n,i){let o=t._frameState,r=o.context,s=e.boundingVolume;l(t._debugVolume)&&t._debugVolume.destroy();let a,c=m.clone(s.center);if(o.mode!==ne.SCENE3D){c=B.multiplyByPoint(Vk,c,c);let p=o.mapProjection,g=p.unproject(c);c=p.ellipsoid.cartographicToCartesian(g)}if(l(s.radius)){let p=s.radius;a=Un.toWireframe(js.createGeometry(new js({radii:new m(p,p,p),vertexFormat:sn.FLAT_VERTEX_FORMAT}))),t._debugVolume=new wn({geometryInstances:new Tt({geometry:a,modelMatrix:B.fromTranslation(c),attributes:{color:new Vt(1,0,0,1)}}),appearance:new sn({flat:!0,translucent:!1}),asynchronous:!1})}else{let p=s.halfAxes;a=Un.toWireframe(Pl.createGeometry(Pl.fromDimensions({dimensions:new m(2,2,2),vertexFormat:sn.FLAT_VERTEX_FORMAT}))),t._debugVolume=new wn({geometryInstances:new Tt({geometry:a,modelMatrix:B.fromRotationTranslation(p,c,new B),attributes:{color:new Vt(1,0,0,1)}}),appearance:new sn({flat:!0,translucent:!1}),asynchronous:!1})}let u=o.commandList,f=o.commandList=[];t._debugVolume.update(o),e=f[0],o.useLogDepth&&(e=dy.createLogDepthCommand(e,r).command);let d;l(i)&&(d=n.framebuffer,n.framebuffer=i),e.execute(r,n),l(d)&&(n.framebuffer=d),o.commandList=u}function Aa(e,t,n,i,o){let r=t._frameState;if(l(t.debugCommandFilter)&&!t.debugCommandFilter(e))return;if(e instanceof oi){e.execute(n,i);return}e.debugShowBoundingVolume&&l(e.boundingVolume)&&Qut(e,t,i,o),r.useLogDepth&&l(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);let s=r.passes;if(!s.pick&&!s.depth&&t._hdr&&l(e.derivedCommands)&&l(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),s.pick||s.depth){if(s.pick&&!s.depth&&l(e.derivedCommands.picking)){e=e.derivedCommands.picking.pickCommand,e.execute(n,i);return}else if(l(e.derivedCommands.depth)){e=e.derivedCommands.depth.depthOnlyCommand,e.execute(n,i);return}}if(t.debugShowCommands||t.debugShowFrustums){t._debugInspector.executeDebugShowFrustumsCommand(t,e,i);return}r.shadowState.lightShadowsEnabled&&e.receiveShadows&&l(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(n,i):e.execute(n,i)}function $D(e,t,n,i){let o=t._frameState,r=e.derivedCommands;l(r)&&(o.useLogDepth&&l(r.logDepth)&&(e=r.logDepth.command),r=e.derivedCommands,l(r.picking)?(e=r.picking.pickCommand,e.execute(n,i)):l(r.depth)&&(e=r.depth.depthOnlyCommand,e.execute(n,i)))}function Pge(e,t,n){return t.boundingVolume.distanceSquaredTo(n)-e.boundingVolume.distanceSquaredTo(n)}function $ut(e,t,n){return e.boundingVolume.distanceSquaredTo(n)-t.boundingVolume.distanceSquaredTo(n)+P.EPSILON12}function eft(e,t,n,i,o){let r=e.context;ly(i,Pge,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,r,n);let s=i.length;for(let a=0;a<s;++a)t(i[a],e,r,n)}function tft(e,t,n,i,o){let r=e.context;ly(i,$ut,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,r,n);let s=i.length;for(let a=0;a<s;++a)t(i[a],e,r,n)}function nft(e,t,n,i){let o=e.context;ly(i,Pge,e.camera.positionWC);let r=i.length;for(let s=0;s<r;++s)t(i[s],e,o,n)}var ift=new wi,oft=new pl,rft=new tn,sft=new Ir;function FY(e,t){let n=e.camera,i=e.context,o=e.frameState,r=i.uniformState;r.updateCamera(n);let s;l(n.frustum.fov)?s=n.frustum.clone(ift):l(n.frustum.infiniteProjectionMatrix)?s=n.frustum.clone(oft):l(n.frustum.width)?s=n.frustum.clone(rft):s=n.frustum.clone(sft),s.near=n.frustum.near,s.far=n.frustum.far,r.updateFrustum(s),r.updatePass(be.ENVIRONMENT);let a=o.passes,c=a.pick,u=e._environmentState,f=e._view,d=u.renderTranslucentDepthForPick,p=u.useWebVR;if(!c){let b=u.skyBoxCommand;if(l(b)&&Aa(b,e,i,t),u.isSkyAtmosphereVisible&&Aa(u.skyAtmosphereCommand,e,i,t),u.isSunVisible&&(u.sunDrawCommand.execute(i,t),e.sunBloom&&!p)){let w;u.useGlobeDepthFramebuffer?w=f.globeDepth.framebuffer:u.usePostProcess?w=f.sceneFramebuffer.framebuffer:w=u.originalFramebuffer,e._sunPostProcess.execute(i),e._sunPostProcess.copy(i,w),t.framebuffer=w}u.isMoonVisible&&u.moonCommand.execute(i,t)}let g;u.useOIT?(l(e._executeOITFunction)||(e._executeOITFunction=function(b,w,I,R,F){f.globeDepth.prepareColorTextures(i),f.oit.executeCommands(b,w,I,R,F)}),g=e._executeOITFunction):a.render?g=eft:g=tft;let h=f.frustumCommandsList,A=h.length,x=u.clearGlobeDepth,C=u.useDepthPlane,T=e._globeTranslucencyState,E=T.translucent,S=e._view.globeTranslucencyFramebuffer,v=e._depthClearCommand,D=e._stencilClearCommand,O=e._classificationStencilClearCommand,M=e._depthPlane,L=u.usePostProcessSelected,N=n.position.z,_;for(let b=0;b<A;++b){let w=A-b-1,I=h[w];e.mode===ne.SCENE2D?(n.position.z=N-I.near+1,s.far=Math.max(1,I.far-I.near),s.near=1,r.update(o),r.updateFrustum(s)):(s.near=w!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s)),v.execute(i,t),i.stencilBuffer&&D.execute(i,t),r.updatePass(be.GLOBE);let R=I.commands[be.GLOBE],F=I.indices[be.GLOBE];if(E)T.executeGlobeCommands(I,Aa,S,e,t);else for(_=0;_<F;++_)Aa(R[_],e,i,t);let k=f.globeDepth;if(l(k)&&u.useGlobeDepthFramebuffer&&k.executeCopyDepth(i,t),!u.renderTranslucentDepthForPick)if(r.updatePass(be.TERRAIN_CLASSIFICATION),R=I.commands[be.TERRAIN_CLASSIFICATION],F=I.indices[be.TERRAIN_CLASSIFICATION],E)T.executeGlobeClassificationCommands(I,Aa,S,e,t);else for(_=0;_<F;++_)Aa(R[_],e,i,t);if(x&&(v.execute(i,t),C&&M.execute(i,t)),!u.useInvertClassification||c||u.renderTranslucentDepthForPick){for(r.updatePass(be.CESIUM_3D_TILE),R=I.commands[be.CESIUM_3D_TILE],F=I.indices[be.CESIUM_3D_TILE],_=0;_<F;++_)Aa(R[_],e,i,t);if(F>0&&(l(k)&&u.useGlobeDepthFramebuffer&&(k.prepareColorTextures(i,x),k.executeUpdateDepth(i,t,x,k.depthStencilTexture)),!u.renderTranslucentDepthForPick))for(r.updatePass(be.CESIUM_3D_TILE_CLASSIFICATION),R=I.commands[be.CESIUM_3D_TILE_CLASSIFICATION],F=I.indices[be.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<F;++_)Aa(R[_],e,i,t)}else{e._invertClassification.clear(i,t);let q=t.framebuffer;for(t.framebuffer=e._invertClassification._fbo.framebuffer,r.updatePass(be.CESIUM_3D_TILE),R=I.commands[be.CESIUM_3D_TILE],F=I.indices[be.CESIUM_3D_TILE],_=0;_<F;++_)Aa(R[_],e,i,t);for(l(k)&&u.useGlobeDepthFramebuffer&&(e._invertClassification.prepareTextures(i),k.executeUpdateDepth(i,t,x,e._invertClassification._fbo.getDepthStencilTexture())),r.updatePass(be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),R=I.commands[be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],F=I.indices[be.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],_=0;_<F;++_)Aa(R[_],e,i,t);for(t.framebuffer=q,e._invertClassification.executeClassified(i,t),o.invertClassificationColor.alpha===1&&e._invertClassification.executeUnclassified(i,t),F>0&&i.stencilBuffer&&O.execute(i,t),r.updatePass(be.CESIUM_3D_TILE_CLASSIFICATION),R=I.commands[be.CESIUM_3D_TILE_CLASSIFICATION],F=I.indices[be.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<F;++_)Aa(R[_],e,i,t)}for(F>0&&i.stencilBuffer&&D.execute(i,t),r.updatePass(be.VOXELS),R=I.commands[be.VOXELS],F=I.indices[be.VOXELS],R.length=F,nft(e,Aa,t,R),r.updatePass(be.OPAQUE),R=I.commands[be.OPAQUE],F=I.indices[be.OPAQUE],_=0;_<F;++_)Aa(R[_],e,i,t);w!==0&&e.mode!==ne.SCENE2D&&(s.near=I.near,r.updateFrustum(s));let V;if(!c&&u.useInvertClassification&&o.invertClassificationColor.alpha<1&&(V=e._invertClassification),r.updatePass(be.TRANSLUCENT),R=I.commands[be.TRANSLUCENT],R.length=I.indices[be.TRANSLUCENT],g(e,Aa,t,R,V),I.indices[be.CESIUM_3D_TILE_CLASSIFICATION]>0&&f.translucentTileClassification.isSupported()&&(f.translucentTileClassification.executeTranslucentCommands(e,Aa,t,R,k.depthStencilTexture),f.translucentTileClassification.executeClassificationCommands(e,Aa,t,I)),i.depthTexture&&e.useDepthPicking&&(u.useGlobeDepthFramebuffer||d)){let q=k.depthStencilTexture,Y=e._picking.getPickDepth(e,w);Y.update(i,q),Y.executeCopyDepth(i,t)}if(c||!L)continue;let U=t.framebuffer;if(t.framebuffer=f.sceneFramebuffer.getIdFramebuffer(),s.near=w!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s),r.updatePass(be.GLOBE),R=I.commands[be.GLOBE],F=I.indices[be.GLOBE],E)T.executeGlobeCommands(I,$D,S,e,t);else for(_=0;_<F;++_)$D(R[_],e,i,t);for(x&&(v.framebuffer=t.framebuffer,v.execute(i,t),v.framebuffer=void 0),x&&C&&M.execute(i,t),r.updatePass(be.CESIUM_3D_TILE),R=I.commands[be.CESIUM_3D_TILE],F=I.indices[be.CESIUM_3D_TILE],_=0;_<F;++_)$D(R[_],e,i,t);for(r.updatePass(be.OPAQUE),R=I.commands[be.OPAQUE],F=I.indices[be.OPAQUE],_=0;_<F;++_)$D(R[_],e,i,t);for(r.updatePass(be.TRANSLUCENT),R=I.commands[be.TRANSLUCENT],F=I.indices[be.TRANSLUCENT],_=0;_<F;++_)$D(R[_],e,i,t);t.framebuffer=U}}function Oge(e){e.context.uniformState.updatePass(be.COMPUTE);let n=e._environmentState.sunComputeCommand;l(n)&&n.execute(e._computeEngine);let i=e._computeCommandList,o=i.length;for(let r=0;r<o;++r)i[r].execute(e._computeEngine)}function aft(e,t){e.context.uniformState.updatePass(be.OVERLAY);let i=e.context,o=e._overlayCommandList,r=o.length;for(let s=0;s<r;++s)o[s].execute(i,t)}function cft(e,t,n){let i=n.shadowMapCullingVolume,o=n.isPointLight,r=n.passes,s=r.length,a=t.length;for(let c=0;c<a;++c){let u=t[c];if(e.updateDerivedCommands(u),u.castShadows&&(u.pass===be.GLOBE||u.pass===be.CESIUM_3D_TILE||u.pass===be.OPAQUE||u.pass===be.TRANSLUCENT)&&e.isVisible(u,i))if(o)for(let f=0;f<s;++f)r[f].commandList.push(u);else if(s===1)r[0].commandList.push(u);else{let f=!1;for(let d=s-1;d>=0;--d){let p=r[d].cullingVolume;if(e.isVisible(u,p))r[d].commandList.push(u),f=!0;else if(f)break}}}}function Mge(e){let t=e.frameState,n=t.shadowState.shadowMaps,i=n.length;if(!t.shadowState.shadowsEnabled)return;let o=e.context,r=o.uniformState;for(let s=0;s<i;++s){let a=n[s];if(a.outOfView)continue;let c=a.passes,u=c.length;for(let d=0;d<u;++d)c[d].commandList.length=0;let f=e.frameState.commandList;cft(e,f,a);for(let d=0;d<u;++d){let p=a.passes[d];r.updateCamera(p.camera),a.updatePass(o,d);let g=p.commandList.length;for(let h=0;h<g;++h){let A=p.commandList[h];r.updatePass(A.pass),Aa(A.derivedCommands.shadows.castCommands[s],e,o,p.passState)}}}}var lft=new m;Vi.prototype.updateAndExecuteCommands=function(e,t){let i=this._frameState.mode;this._environmentState.useWebVR?uft(this,e,t):i!==ne.SCENE2D||this._mapMode2D===uu.ROTATE?xy(!0,this,e,t):(UY(this,e,t),Aft(this,e))};function uft(e,t,n){let i=e._view,o=i.camera,s=e._environmentState.renderTranslucentDepthForPick;UY(e,t,n),Rge(e),i.createPotentiallyVisibleSet(e),Oge(e),s||Mge(e);let a=t.viewport;a.x=0,a.y=0,a.width=a.width*.5;let c=uo.clone(o,e._cameraVR);c.frustum=o.frustum;let u=o.frustum.near,f=u*y(e.focalLength,5),d=y(e.eyeSeparation,f/30),p=m.multiplyByScalar(c.right,d*.5,lft);o.frustum.aspectRatio=a.width/a.height;let g=.5*d*u/f;m.add(c.position,p,o.position),o.frustum.xOffset=g,FY(e,t),a.x=a.width,m.subtract(c.position,p,o.position),o.frustum.xOffset=-g,FY(e,t),uo.clone(c,o)}var fft=new he(Math.PI,P.PI_OVER_TWO),dft=new m,mft=new m,hft=new B,pft=new B,_ft=new m,gft=new m,yft=new Ke;function Aft(e,t){let n=e.context,i=e.frameState,o=e.camera,r=t.viewport,s=Ke.clone(r,yft);t.viewport=s;let a=fft,c=dft;e.mapProjection.project(a,c);let f=m.clone(o.position,mft),d=B.clone(o.transform,pft),p=o.frustum.clone();o._setTransform(B.IDENTITY);let g=B.computeViewportTransformation(s,0,1,hft),h=o.frustum.projectionMatrix,A=o.positionWC.y,x=m.fromElements(P.sign(A)*c.x-A,0,-o.positionWC.x,_ft),C=Rt.pointToGLWindowCoordinates(h,g,x,gft);C.x=Math.floor(C.x);let T=s.x,E=s.width;if(A===0||C.x<=T||C.x>=T+E)xy(!0,e,t);else if(Math.abs(T+E*.5-C.x)<1)s.width=C.x-s.x,o.position.x*=P.sign(o.position.x),o.frustum.right=0,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),xy(!0,e,t),s.x=C.x,o.position.x=-o.position.x,o.frustum.right=-o.frustum.left,o.frustum.left=0,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),xy(!1,e,t);else if(C.x>T+E*.5){s.width=C.x-T;let S=o.frustum.right;o.frustum.right=c.x-A,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),xy(!0,e,t),s.x=C.x,s.width=T+E-C.x,o.position.x=-o.position.x,o.frustum.left=-o.frustum.right,o.frustum.right=S-o.frustum.right*2,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),xy(!1,e,t)}else{s.x=C.x,s.width=T+E-C.x;let S=o.frustum.left;o.frustum.left=-c.x-A,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),xy(!0,e,t),s.x=T,s.width=C.x-T,o.position.x=-o.position.x,o.frustum.right=-o.frustum.left,o.frustum.left=S-o.frustum.left*2,i.cullingVolume=o.frustum.computeCullingVolume(o.positionWC,o.directionWC,o.upWC),n.uniformState.update(i),xy(!1,e,t)}o._setTransform(d),m.clone(f,o.position),o.frustum=p.clone(),t.viewport=r}function xy(e,t,n,i){let o=t._environmentState,r=t._view,s=o.renderTranslucentDepthForPick;e||(t.frameState.commandList.length=0),Rge(t),r.createPotentiallyVisibleSet(t),e&&(l(i)&&UY(t,n,i),Oge(t),s||Mge(t)),FY(t,n)}var Dge=new ts;Vi.prototype.updateEnvironment=function(){let e=this._frameState,t=this._view,n=this._environmentState,i=e.passes.render,o=e.passes.offscreen,r=this.skyAtmosphere,s=this.globe,a=this._globeTranslucencyState;if(!i||this._mode!==ne.SCENE2D&&t.camera.frustum instanceof tn||!a.environmentVisible)n.skyAtmosphereCommand=void 0,n.skyBoxCommand=void 0,n.sunDrawCommand=void 0,n.sunComputeCommand=void 0,n.moonCommand=void 0;else{l(r)?(l(s)&&(r.setDynamicAtmosphereColor(s.enableLighting&&s.dynamicAtmosphereLighting,s.dynamicAtmosphereLightingFromSun),n.isReadyForAtmosphere=n.isReadyForAtmosphere||s._surface._tilesToRender.length>0),n.skyAtmosphereCommand=r.update(e,s),l(n.skyAtmosphereCommand)&&this.updateDerivedCommands(n.skyAtmosphereCommand)):n.skyAtmosphereCommand=void 0,n.skyBoxCommand=l(this.skyBox)?this.skyBox.update(e,this._hdr):void 0;let A=l(this.sun)?this.sun.update(e,t.passState,this._hdr):void 0;n.sunDrawCommand=l(A)?A.drawCommand:void 0,n.sunComputeCommand=l(A)?A.computeCommand:void 0,n.moonCommand=l(this.moon)?this.moon.update(e):void 0}let c=n.clearGlobeDepth=l(s)&&s.show&&(!s.depthTestAgainstTerrain||this.mode===ne.SCENE2D);(n.useDepthPlane=c&&this.mode===ne.SCENE3D&&a.useDepthPlane)&&this._depthPlane.update(e),n.renderTranslucentDepthForPick=!1,n.useWebVR=this._useWebVR&&this.mode!==ne.SCENE2D&&!o;let f=e.mode===ne.SCENE3D&&!a.sunVisibleThroughGlobe?e.occluder:void 0,d=e.cullingVolume,p=Dge.planes;for(let A=0;A<5;++A)p[A]=d.planes[A];d=Dge,n.isSkyAtmosphereVisible=l(n.skyAtmosphereCommand)&&n.isReadyForAtmosphere,n.isSunVisible=this.isVisible(n.sunDrawCommand,d,f),n.isMoonVisible=this.isVisible(n.moonCommand,d,f);let g=this.specularEnvironmentMaps,h=this._specularEnvironmentMapAtlas;l(g)&&(!l(h)||h.url!==g)?(h=h&&h.destroy(),this._specularEnvironmentMapAtlas=new dm(g)):!l(g)&&l(h)&&(h.destroy(),this._specularEnvironmentMapAtlas=void 0),l(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.update(e)};function xft(e){let t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new Hp({camera:e.camera,updateOnChange:!1,frustumSplits:t.frustumSplits}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),l(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function Cft(e){let t=e._frameState,n=t.shadowMaps,i=n.length,o=i>0&&!t.passes.pick&&e.mode===ne.SCENE3D;if(o!==t.shadowState.shadowsEnabled&&(++t.shadowState.lastDirtyTime,t.shadowState.shadowsEnabled=o),t.shadowState.lightShadowsEnabled=!1,!!o){for(let r=0;r<i;++r)if(n[r]!==t.shadowState.shadowMaps[r]){++t.shadowState.lastDirtyTime;break}t.shadowState.shadowMaps.length=0,t.shadowState.lightShadowMaps.length=0;for(let r=0;r<i;++r){let s=n[r];s.update(t),t.shadowState.shadowMaps.push(s),s.fromLightSource&&(t.shadowState.lightShadowMaps.push(s),t.shadowState.lightShadowsEnabled=!0),s.dirty&&(++t.shadowState.lastDirtyTime,s.dirty=!1)}}}function Rge(e){let t=e._frameState;e._groundPrimitives.update(t),e._primitives.update(t),xft(e),Cft(e),e._globe&&e._globe.render(t)}function UY(e,t,n){let i=e._context,o=e._frameState,r=e._environmentState,s=e._view,c=e._frameState.passes.pick;l(s.globeDepth)&&(s.globeDepth.picking=c);let u=r.useWebVR;r.originalFramebuffer=t.framebuffer,l(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!u?e._sunPostProcess=new Fk:l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!l(e.sun)&&l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy(),e._sunBloom=!1);let f=e._clearColorCommand;z.clone(n,f.color),f.execute(i,t);let d=r.useGlobeDepthFramebuffer=l(s.globeDepth);d&&(s.globeDepth.update(i,t,s.viewport,e.msaaSamples,e._hdr,r.clearGlobeDepth),s.globeDepth.clear(i,t,n));let p=s.oit,g=r.useOIT=!c&&l(p)&&p.isSupported();g&&(p.update(i,t,s.globeDepth.colorFramebufferManager,e._hdr,e.msaaSamples),p.clear(i,t,n),r.useOIT=p.isSupported());let h=e.postProcessStages,A=r.usePostProcess=!c&&(e._hdr||h.length>0||h.ambientOcclusion.enabled||h.fxaa.enabled||h.bloom.enabled);if(r.usePostProcessSelected=!1,A&&(s.sceneFramebuffer.update(i,s.viewport,e._hdr,e.msaaSamples),s.sceneFramebuffer.clear(i,t,n),h.update(i,o.useLogDepth,e._hdr),h.clear(i),A=r.usePostProcess=h.ready,r.usePostProcessSelected=A&&h.hasSelected),r.isSunVisible&&e.sunBloom&&!u?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(i,t,n)):d?t.framebuffer=s.globeDepth.framebuffer:A&&(t.framebuffer=s.sceneFramebuffer.framebuffer),l(t.framebuffer)&&f.execute(i,t),r.useInvertClassification=!c&&l(t.framebuffer)&&e.invertClassification){let C;if(e.frameState.invertClassificationColor.alpha===1&&r.useGlobeDepthFramebuffer&&(C=s.globeDepth.framebuffer),l(C)||i.depthTexture){if(e._invertClassification.previousFramebuffer=C,e._invertClassification.update(i,e.msaaSamples,s.globeDepth.colorFramebufferManager),e._invertClassification.clear(i,t),e.frameState.invertClassificationColor.alpha<1&&g){let T=e._invertClassification.unclassifiedCommand,E=T.derivedCommands;E.oit=p.createDerivedCommands(T,i,E.oit)}}else r.useInvertClassification=!1}e._globeTranslucencyState.translucent&&s.globeTranslucencyFramebuffer.updateAndClear(e._hdr,s.viewport,i,t)}Vi.prototype.resolveFramebuffers=function(e){let t=this._context,n=this._environmentState,i=this._view,o=i.globeDepth;l(o)&&o.prepareColorTextures(t);let r=n.useOIT,s=n.useGlobeDepthFramebuffer,a=n.usePostProcess,c=n.originalFramebuffer,u=s?o.colorFramebufferManager:void 0,f=i.sceneFramebuffer._colorFramebuffer,d=i.sceneFramebuffer.idFramebuffer;r&&(e.framebuffer=a?f.framebuffer:c,i.oit.execute(t,e));let p=i.translucentTileClassification;if(p.hasTranslucentDepth&&p.isSupported()&&p.execute(this,e),a){i.sceneFramebuffer.prepareColorTextures(t);let g=f;s&&!r&&(g=u);let h=this.postProcessStages,A=g.getColorTexture(0),x=d.getColorTexture(0),C=y(u,f).getDepthStencilTexture();h.execute(t,A,C,x),h.copy(t,c)}!r&&!a&&s&&(e.framebuffer=c,o.executeCopyColor(t,e))};function Tft(e){let t=e._frameState.afterRender;for(let n=0,i=t.length;n<i;++n)t[n]()&&e.requestRender();t.length=0}function Eft(e){let t=e._globe,i=e.camera.positionCartographic;if(l(t)&&t.show&&l(i))return t.getHeight(i)}function bft(e){let t=e.camera,n=e._mode,i=e.globe,o=e._screenSpaceCameraController,r=t.positionCartographic;if(!l(r))return!1;if(!o.onMap()&&r.height<0)return!0;if(!l(i)||!i.show||n===ne.SCENE2D||n===ne.MORPHING)return!1;let s=e._globeHeight;return l(s)&&r.height<s}Vi.prototype.initializeFrame=function(){this._shaderFrameCount++===120&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._globeHeight=Eft(this),this._cameraUnderground=bft(this),this._globeTranslucencyState.update(this),this._screenSpaceCameraController.update(),l(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};function Sft(e,t){if(e.debugShowFramesPerSecond){if(!l(e._performanceDisplay)){let n=document.createElement("div");n.className="cesium-performanceDisplay-defaultContainer",e._canvas.parentNode.appendChild(n);let o=new hy({container:n});e._performanceDisplay=o,e._performanceContainer=n}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else l(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function wft(e){e._jobScheduler.resetBudgets();let t=e._frameState;e.primitives.prePassesUpdate(t),l(e.globe)&&e.globe.update(t),e._picking.update(),t.creditDisplay.update()}function vft(e){let t=e._frameState;e.primitives.postPassesUpdate(t),oc.update()}var Dft=new z;function Ift(e){let t=e._frameState,n=e.context,i=n.uniformState,o=e._defaultView;e._view=o,e.updateFrameState(),t.passes.render=!0,t.passes.postProcess=e.postProcessStages.hasSelected,t.tilesetPassState=Kut;let r=y(e.backgroundColor,z.BLACK);e._hdr&&(r=z.clone(r,Dft),r.red=Math.pow(r.red,e.gamma),r.green=Math.pow(r.green,e.gamma),r.blue=Math.pow(r.blue,e.gamma)),t.backgroundColor=r,e.fog.update(t),i.update(t);let s=e.shadowMap;l(s)&&s.enabled&&(!l(e.light)||e.light instanceof h_?m.negate(i.sunDirectionWC,e._shadowMapCamera.direction):m.clone(e.light.direction,e._shadowMapCamera.direction),t.shadowMaps.push(s)),e._computeCommandList.length=0,e._overlayCommandList.length=0;let a=o.viewport;a.x=0,a.y=0,a.width=n.drawingBufferWidth,a.height=n.drawingBufferHeight;let c=o.passState;c.framebuffer=void 0,c.blendingEnabled=void 0,c.scissorTest=void 0,c.viewport=Ke.clone(a,c.viewport),l(e.globe)&&e.globe.beginFrame(t),e.updateEnvironment(),e.updateAndExecuteCommands(c,r),e.resolveFramebuffers(c),c.framebuffer=void 0,aft(e,c),l(e.globe)&&(e.globe.endFrame(t),e.globe.tilesLoaded||(e._renderRequested=!0)),n.endFrame()}function jA(e,t){try{t(e)}catch(n){if(e._renderError.raiseEvent(e,n),e.rethrowRenderErrors)throw n}}function Pft(e){return e._picking.updateMostDetailedRayPicks(e)}Vi.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);let t=this._frameState;t.newFrame=!1,l(e)||(e=ee.now());let n=this._view.checkForCameraUpdates(this),i=!this.requestRenderMode||this._renderRequested||n||this._logDepthBufferDirty||this._hdrDirty||this.mode===ne.MORPHING;if(!i&&l(this.maximumRenderTimeChange)&&l(this._lastRenderTime)){let o=Math.abs(ee.secondsDifference(this._lastRenderTime,e));i=i||o>this.maximumRenderTimeChange}if(i){this._lastRenderTime=ee.clone(e,this._lastRenderTime),this._renderRequested=!1,this._logDepthBufferDirty=!1,this._hdrDirty=!1;let o=P.incrementWrap(t.frameNumber,15e6,1);Ige(this,o,e),t.newFrame=!0}jA(this,wft),this.primitives.show&&(jA(this,Pft),jA(this,Oft),jA(this,Mft),i||jA(this,Rft)),this._postUpdate.raiseEvent(this,e),i&&(this._preRender.raiseEvent(this,e),t.creditDisplay.beginFrame(),jA(this,Ift)),Sft(this,i),jA(this,vft),Tft(this),i&&(this._postRender.raiseEvent(this,e),t.creditDisplay.endFrame())};Vi.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)};Vi.prototype.requestRender=function(){this._renderRequested=!0};Vi.prototype.clampLineWidth=function(e){return Math.max(zt.minimumAliasedLineWidth,Math.min(e,zt.maximumAliasedLineWidth))};Vi.prototype.pick=function(e,t,n){return this._picking.pick(this,e,t,n)};Vi.prototype.pickPositionWorldCoordinates=function(e,t){return this._picking.pickPositionWorldCoordinates(this,e,t)};Vi.prototype.pickPosition=function(e,t){return this._picking.pickPosition(this,e,t)};Vi.prototype.drillPick=function(e,t,n,i){return this._picking.drillPick(this,e,t,n,i)};function Oft(e){let t=e._frameState;BY.camera=t.camera,BY.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,BY)}function Mft(e){let t=e._frameState;if(!t.camera.canPreloadFlight())return;LY.camera=e.preloadFlightCamera,LY.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,LY)}function Rft(e){e.primitives.updateForPass(e._frameState,Jut)}Vi.prototype.pickFromRay=function(e,t,n){return this._picking.pickFromRay(this,e,t,n)};Vi.prototype.drillPickFromRay=function(e,t,n,i){return this._picking.drillPickFromRay(this,e,t,n,i)};Vi.prototype.pickFromRayMostDetailed=function(e,t,n){return this._picking.pickFromRayMostDetailed(this,e,t,n)};Vi.prototype.drillPickFromRayMostDetailed=function(e,t,n,i){return this._picking.drillPickFromRayMostDetailed(this,e,t,n,i)};Vi.prototype.sampleHeight=function(e,t,n){return this._picking.sampleHeight(this,e,t,n)};Vi.prototype.clampToHeight=function(e,t,n,i){return this._picking.clampToHeight(this,e,t,n,i)};Vi.prototype.sampleHeightMostDetailed=function(e,t,n){return this._picking.sampleHeightMostDetailed(this,e,t,n)};Vi.prototype.clampToHeightMostDetailed=function(e,t,n){return this._picking.clampToHeightMostDetailed(this,e,t,n)};Vi.prototype.cartesianToCanvasCoordinates=function(e,t){return Qi.wgs84ToWindowCoordinates(this,e,t)};Vi.prototype.completeMorph=function(){this._transitioner.completeMorph()};Vi.prototype.morphTo2D=function(e){let t,n=this.globe;l(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphTo2D(e,t)};Vi.prototype.morphToColumbusView=function(e){let t,n=this.globe;l(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphToColumbusView(e,t)};Vi.prototype.morphTo3D=function(e){let t,n=this.globe;l(n)?t=n.ellipsoid:t=this.mapProjection.ellipsoid,e=y(e,2),this._transitioner.morphTo3D(e,t)};function Bft(e,t){if(e._removeTerrainProviderReadyListener=e._removeTerrainProviderReadyListener&&e._removeTerrainProviderReadyListener(),t.ready){l(e.globe)&&(e.globe.terrainProvider=t.provider);return}e.globe.terrainProvider=void 0,e._removeTerrainProviderReadyListener=t.readyEvent.addEventListener(n=>{l(e)&&l(e.globe)&&(e.globe.terrainProvider=n),e._removeTerrainProviderReadyListener()})}Vi.prototype.setTerrain=function(e){return Bft(this,e),e};Vi.prototype.isDestroyed=function(){return!1};Vi.prototype.destroy=function(){this._tweens.removeAll(),this._computeEngine=this._computeEngine&&this._computeEngine.destroy(),this._screenSpaceCameraController=this._screenSpaceCameraController&&this._screenSpaceCameraController.destroy(),this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this._primitives=this._primitives&&this._primitives.destroy(),this._groundPrimitives=this._groundPrimitives&&this._groundPrimitives.destroy(),this._globe=this._globe&&this._globe.destroy(),this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),this.skyBox=this.skyBox&&this.skyBox.destroy(),this.skyAtmosphere=this.skyAtmosphere&&this.skyAtmosphere.destroy(),this._debugSphere=this._debugSphere&&this._debugSphere.destroy(),this.sun=this.sun&&this.sun.destroy(),this._sunPostProcess=this._sunPostProcess&&this._sunPostProcess.destroy(),this._depthPlane=this._depthPlane&&this._depthPlane.destroy(),this._transitioner=this._transitioner&&this._transitioner.destroy(),this._debugFrustumPlanes=this._debugFrustumPlanes&&this._debugFrustumPlanes.destroy(),this._brdfLutGenerator=this._brdfLutGenerator&&this._brdfLutGenerator.destroy(),this._picking=this._picking&&this._picking.destroy(),this._defaultView=this._defaultView&&this._defaultView.destroy(),this._view=void 0,this._removeCreditContainer&&this._canvas.parentNode.removeChild(this._creditContainer),this.postProcessStages=this.postProcessStages&&this.postProcessStages.destroy(),this._context=this._context&&this._context.destroy(),this._frameState.creditDisplay=this._frameState.creditDisplay&&this._frameState.creditDisplay.destroy(),l(this._performanceDisplay)&&(this._performanceDisplay=this._performanceDisplay&&this._performanceDisplay.destroy(),this._performanceContainer.parentNode.removeChild(this._performanceContainer)),this._removeRequestListenerCallback(),this._removeTaskProcessorListenerCallback();for(let e=0;e<this._removeGlobeCallbacks.length;++e)this._removeGlobeCallbacks[e]();return this._removeGlobeCallbacks.length=0,ue(this)};var zk=Vi;var eI=`float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} + +vec3 getLightDirection(vec3 positionWC) +{ + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirection = + positionWC * float(lightEnum == 0.0) + + czm_lightDirectionWC * float(lightEnum == 1.0) + + czm_sunDirectionWC * float(lightEnum == 2.0); + return normalize(lightDirection); +} + +void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity, out float underTranslucentGlobe) +{ + float ellipsoidRadiiDifference = czm_ellipsoidRadii.x - czm_ellipsoidRadii.z; + + // Adjustment to the atmosphere radius applied based on the camera height. + float distanceAdjustMin = czm_ellipsoidRadii.x / 4.0; + float distanceAdjustMax = czm_ellipsoidRadii.x; + float distanceAdjustModifier = ellipsoidRadiiDifference / 2.0; + float distanceAdjust = distanceAdjustModifier * clamp((czm_eyeHeight - distanceAdjustMin) / (distanceAdjustMax - distanceAdjustMin), 0.0, 1.0); + + // Since atmosphere scattering assumes the atmosphere is a spherical shell, we compute an inner radius of the atmosphere best fit + // for the position on the ellipsoid. + float radiusAdjust = (ellipsoidRadiiDifference / 4.0) + distanceAdjust; + float atmosphereInnerRadius = (length(czm_viewerPositionWC) - czm_eyeHeight) - radiusAdjust; + + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + underTranslucentGlobe = 0.0; + + // Brighten the sky atmosphere under the Earth's atmosphere when translucency is enabled. + #if defined(GLOBE_TRANSLUCENT) + + // Check for intersection with the inner radius of the atmopshere. + czm_raySegment primaryRayEarthIntersect = czm_raySphereIntersectionInterval(primaryRay, vec3(0.0), atmosphereInnerRadius + radiusAdjust); + if (primaryRayEarthIntersect.start > 0.0 && primaryRayEarthIntersect.stop > 0.0) { + + // Compute position on globe. + vec3 direction = normalize(positionWC); + czm_ray ellipsoidRay = czm_ray(positionWC, -direction); + czm_raySegment ellipsoidIntersection = czm_rayEllipsoidIntersectionInterval(ellipsoidRay, vec3(0.0), czm_ellipsoidInverseRadii); + vec3 onEarth = positionWC - (direction * ellipsoidIntersection.start); + + // Control the color using the camera angle. + float angle = dot(normalize(czm_viewerPositionWC), normalize(onEarth)); + + // Control the opacity using the distance from Earth. + opacity = interpolateByDistance(vec4(0.0, 1.0, czm_ellipsoidRadii.x, 0.0), length(czm_viewerPositionWC - onEarth)); + vec3 horizonColor = vec3(0.1, 0.2, 0.3); + vec3 nearColor = vec3(0.0); + + rayleighColor = mix(nearColor, horizonColor, exp(-angle) * opacity); + + // Set the traslucent flag to avoid alpha adjustment in computeFinalColor funciton. + underTranslucentGlobe = 1.0; + return; + } + #endif + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); + + // Alter the opacity based on how close the viewer is to the ground. + // (0.0 = At edge of atmosphere, 1.0 = On ground) + float cameraHeight = czm_eyeHeight + atmosphereInnerRadius; + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + opacity = clamp((atmosphereOuterRadius - cameraHeight) / (atmosphereOuterRadius - atmosphereInnerRadius), 0.0, 1.0); + + // Alter alpha based on time of day (0.0 = night , 1.0 = day) + float nightAlpha = (u_radiiAndDynamicAtmosphereColor.z != 0.0) ? clamp(dot(normalize(positionWC), lightDirection), 0.0, 1.0) : 1.0; + opacity *= pow(nightAlpha, 0.5); +} +`;var Hk=`in vec3 v_outerPositionWC; + +uniform vec3 u_hsbShift; + +#ifndef PER_FRAGMENT_ATMOSPHERE +in vec3 v_mieColor; +in vec3 v_rayleighColor; +in float v_opacity; +in float v_translucent; +#endif + +void main (void) +{ + vec3 lightDirection = getLightDirection(v_outerPositionWC); + + vec3 mieColor; + vec3 rayleighColor; + float opacity; + float translucent; + + #ifdef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + v_outerPositionWC, + lightDirection, + rayleighColor, + mieColor, + opacity, + translucent + ); + #else + mieColor = v_mieColor; + rayleighColor = v_rayleighColor; + opacity = v_opacity; + translucent = v_translucent; + #endif + + vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity); + + #ifndef HDR + color.rgb = czm_acesTonemapping(color.rgb); + color.rgb = czm_inverseGamma(color.rgb); + #endif + + #ifdef COLOR_CORRECT + // Convert rgb color to hsb + vec3 hsb = czm_RGBToHSB(color.rgb); + // Perform hsb shift + hsb.x += u_hsbShift.x; // hue + hsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0); // saturation + hsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0; // brightness + // Convert shifted hsb back to rgb + color.rgb = czm_HSBToRGB(hsb); + #endif + + // For the parts of the sky atmosphere that are not behind a translucent globe, + // we mix in the default opacity so that the sky atmosphere still appears at distance. + // This is needed because the opacity in the sky atmosphere is initially adjusted based + // on the camera height. + if (translucent == 0.0) { + color.a = mix(color.b, 1.0, color.a) * smoothstep(0.0, 1.0, czm_morphTime); + } + + out_FragColor = color; +} +`;var Gk=`in vec4 position; + +out vec3 v_outerPositionWC; + +#ifndef PER_FRAGMENT_ATMOSPHERE +out vec3 v_mieColor; +out vec3 v_rayleighColor; +out float v_opacity; +out float v_translucent; +#endif + +void main(void) +{ + vec4 positionWC = czm_model * position; + vec3 lightDirection = getLightDirection(positionWC.xyz); + + #ifndef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + positionWC.xyz, + lightDirection, + v_rayleighColor, + v_mieColor, + v_opacity, + v_translucent + ); + #endif + + v_outerPositionWC = positionWC.xyz; + gl_Position = czm_modelViewProjection * position; +} +`;function cb(e){e=y(e,oe.WGS84),this.show=!0,this.perFragmentAtmosphere=!1,this._ellipsoid=e;let t=1.025,n=m.multiplyByScalar(e.radii,t,new m);this._scaleMatrix=B.fromScale(n),this._modelMatrix=new B,this._command=new it({owner:this,modelMatrix:this._modelMatrix}),this._spSkyFromSpace=void 0,this._spSkyFromAtmosphere=void 0,this._flags=void 0,this.atmosphereLightIntensity=50,this.atmosphereRayleighCoefficient=new m(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new m(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this._hueSaturationBrightness=new m;let i=new m;i.x=e.maximumRadius*t,i.y=e.maximumRadius,i.z=0,this._radiiAndDynamicAtmosphereColor=i;let o=this;this._command.uniformMap={u_radiiAndDynamicAtmosphereColor:function(){return o._radiiAndDynamicAtmosphereColor},u_hsbShift:function(){return o._hueSaturationBrightness.x=o.hueShift,o._hueSaturationBrightness.y=o.saturationShift,o._hueSaturationBrightness.z=o.brightnessShift,o._hueSaturationBrightness},u_atmosphereLightIntensity:function(){return o.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return o.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return o.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return o.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return o.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return o.atmosphereMieAnisotropy}}}Object.defineProperties(cb.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});cb.prototype.setDynamicAtmosphereColor=function(e,t){let n=e?t?2:1:0;this._radiiAndDynamicAtmosphereColor.z=n};var VY=new B;cb.prototype.update=function(e,t){if(!this.show)return;let n=e.mode;if(n!==ne.SCENE3D&&n!==ne.MORPHING||!e.passes.render)return;let i=B.fromRotationTranslation(e.context.uniformState.inverseViewRotation,m.ZERO,VY),o=B.multiplyTransformation(i,ho.Y_UP_TO_Z_UP,VY),r=B.multiply(this._scaleMatrix,o,VY);B.clone(r,this._modelMatrix);let s=e.context,a=Lft(this),c=e.globeTranslucencyState.translucent,u=this.perFragmentAtmosphere||c||!l(t)||!t.show,f=this._command;if(!l(f.vertexArray)){let p=js.createGeometry(new js({radii:new m(1,1,1),slicePartitions:256,stackPartitions:256,vertexFormat:Pe.POSITION_ONLY}));f.vertexArray=ri.fromGeometry({context:s,geometry:p,attributeLocations:Un.createAttributeLocations(p),bufferUsage:Fe.STATIC_DRAW}),f.renderState=ze.fromCache({cull:{enabled:!0,face:gi.FRONT},blending:mn.ALPHA_BLEND,depthMask:!1})}let d=a|u<<2|c<<3;if(d!==this._flags){this._flags=d;let p=[];a&&p.push("COLOR_CORRECT"),u&&p.push("PER_FRAGMENT_ATMOSPHERE"),c&&p.push("GLOBE_TRANSLUCENT");let g=new He({defines:p,sources:[oy,eI,Gk]}),h=new He({defines:p,sources:[oy,eI,Hk]});this._spSkyAtmosphere=Jt.fromCache({context:s,vertexShaderSource:g,fragmentShaderSource:h}),f.shaderProgram=this._spSkyAtmosphere}return f};function Lft(e){return!(P.equalsEpsilon(e.hueShift,0,P.EPSILON7)&&P.equalsEpsilon(e.saturationShift,0,P.EPSILON7)&&P.equalsEpsilon(e.brightnessShift,0,P.EPSILON7))}cb.prototype.isDestroyed=function(){return!1};cb.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyAtmosphere=this._spSkyAtmosphere&&this._spSkyAtmosphere.destroy(),ue(this)};var Wk=cb;var jk=`uniform samplerCube u_cubeMap; + +in vec3 v_texCoord; + +void main() +{ + vec4 color = czm_textureCube(u_cubeMap, normalize(v_texCoord)); + out_FragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime); +} +`;var Yk=`in vec3 position; + +out vec3 v_texCoord; + +void main() +{ + vec3 p = czm_viewRotation * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position)); + gl_Position = czm_projection * vec4(p, 1.0); + v_texCoord = position.xyz; +} +`;function qk(e){this.sources=e.sources,this._sources=void 0,this.show=y(e.show,!0),this._command=new it({modelMatrix:B.clone(B.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}qk.prototype.update=function(e,t){let n=this;if(!this.show||e.mode!==ne.SCENE3D&&e.mode!==ne.MORPHING||!e.passes.render)return;let i=e.context;if(this._sources!==this.sources){this._sources=this.sources;let r=this.sources;typeof r.positiveX=="string"?EM(i,this._sources).then(function(s){n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=s}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new sc({context:i,source:r}))}let o=this._command;if(!l(o.vertexArray)){o.uniformMap={u_cubeMap:function(){return n._cubeMap}};let r=Pl.createGeometry(Pl.fromDimensions({dimensions:new m(2,2,2),vertexFormat:Pe.POSITION_ONLY})),s=this._attributeLocations=Un.createAttributeLocations(r);o.vertexArray=ri.fromGeometry({context:i,geometry:r,attributeLocations:s,bufferUsage:Fe.STATIC_DRAW}),o.renderState=ze.fromCache({blending:mn.ALPHA_BLEND})}if(!l(o.shaderProgram)||this._useHdr!==t){let r=new He({defines:[t?"HDR":""],sources:[jk]});o.shaderProgram=Jt.fromCache({context:i,vertexShaderSource:Yk,fragmentShaderSource:r,attributeLocations:this._attributeLocations}),this._useHdr=t}if(l(this._cubeMap))return o};qk.prototype.isDestroyed=function(){return!1};qk.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),ue(this)};var Xk=qk;var Kk=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color = texture(u_texture, v_textureCoordinates); + out_FragColor = czm_gammaCorrect(color); +} +`;var Jk=`uniform float u_radiusTS; + +in vec2 v_textureCoordinates; + +vec2 rotate(vec2 p, vec2 direction) +{ + return vec2(p.x * direction.x - p.y * direction.y, p.x * direction.y + p.y * direction.x); +} + +vec4 addBurst(vec2 position, vec2 direction, float lengthScalar) +{ + vec2 rotatedPosition = rotate(position, direction) * vec2(25.0, 0.75); + float radius = length(rotatedPosition) * lengthScalar; + float burst = 1.0 - smoothstep(0.0, 0.55, radius); + return vec4(burst); +} + +void main() +{ + float lengthScalar = 2.0 / sqrt(2.0); + vec2 position = v_textureCoordinates - vec2(0.5); + float radius = length(position) * lengthScalar; + float surface = step(radius, u_radiusTS); + vec4 color = vec4(vec2(1.0), surface + 0.2, surface); + + float glow = 1.0 - smoothstep(0.0, 0.55, radius); + color.ba += mix(vec2(0.0), vec2(1.0), glow) * 0.75; + + vec4 burst = vec4(0.0); + + // The following loop has been manually unrolled for speed, to + // avoid sin() and cos(). + // + //for (float i = 0.4; i < 3.2; i += 1.047) { + // vec2 direction = vec2(sin(i), cos(i)); + // burst += 0.4 * addBurst(position, direction, lengthScalar); + // + // direction = vec2(sin(i - 0.08), cos(i - 0.08)); + // burst += 0.3 * addBurst(position, direction, lengthScalar); + //} + + burst += 0.4 * addBurst(position, vec2(0.38942, 0.92106), lengthScalar); // angle == 0.4 + burst += 0.4 * addBurst(position, vec2(0.99235, 0.12348), lengthScalar); // angle == 0.4 + 1.047 + burst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar); // angle == 0.4 + 1.047 * 2.0 + + burst += 0.3 * addBurst(position, vec2(0.31457, 0.94924), lengthScalar); // angle == 0.4 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.97931, 0.20239), lengthScalar); // angle == 0.4 + 1.047 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar); // angle == 0.4 + 1.047 * 2.0 - 0.08 + + // End of manual loop unrolling. + + color += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15; + + out_FragColor = clamp(color, vec4(0.0), vec4(1.0)); +} +`;var Zk=`in vec2 direction; + +uniform float u_size; + +out vec2 v_textureCoordinates; + +void main() +{ + vec4 position; + if (czm_morphTime == 1.0) + { + position = vec4(czm_sunPositionWC, 1.0); + } + else + { + position = vec4(czm_sunPositionColumbusView.zxy, 1.0); + } + + vec4 positionEC = czm_view * position; + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + + vec2 halfSize = vec2(u_size * 0.5); + halfSize *= ((direction * 2.0) - 1.0); + + gl_Position = czm_viewportOrthographic * vec4(positionWC.xy + halfSize, -positionWC.z, 1.0); + + v_textureCoordinates = direction; +} +`;function nI(){this.show=!0,this._drawCommand=new it({primitiveType:Le.TRIANGLES,boundingVolume:new ae,owner:this}),this._commands={drawCommand:this._drawCommand,computeCommand:void 0},this._boundingVolume=new ae,this._boundingVolume2D=new ae,this._texture=void 0,this._drawingBufferWidth=void 0,this._drawingBufferHeight=void 0,this._radiusTS=void 0,this._size=void 0,this.glowFactor=1,this._glowFactorDirty=!1,this._useHdr=void 0;let e=this;this._uniformMap={u_texture:function(){return e._texture},u_size:function(){return e._size}}}Object.defineProperties(nI.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var Nft=new H,Fft=new H,Uft=new re,tI=new re;nI.prototype.update=function(e,t,n){if(!this.show)return;let i=e.mode;if(i===ne.SCENE2D||i===ne.MORPHING||!e.passes.render)return;let o=e.context,r=t.viewport.width,s=t.viewport.height;if(!l(this._texture)||r!==this._drawingBufferWidth||s!==this._drawingBufferHeight||this._glowFactorDirty||n!==this._useHdr){this._texture=this._texture&&this._texture.destroy(),this._drawingBufferWidth=r,this._drawingBufferHeight=s,this._glowFactorDirty=!1,this._useHdr=n;let S=Math.max(r,s);S=Math.pow(2,Math.ceil(Math.log(S)/Math.log(2))-2),S=Math.max(1,S);let v=n?o.halfFloatingPointTexture?Je.HALF_FLOAT:Je.FLOAT:Je.UNSIGNED_BYTE;this._texture=new Bt({context:o,width:S,height:S,pixelFormat:lt.RGBA,pixelDatatype:v}),this._glowLengthTS=this._glowFactor*5,this._radiusTS=1/(1+2*this._glowLengthTS)*.5;let D=this,O={u_radiusTS:function(){return D._radiusTS}};this._commands.computeCommand=new Pf({fragmentShaderSource:Jk,outputTexture:this._texture,uniformMap:O,persists:!1,owner:this,postExecute:function(){D._commands.computeCommand=void 0}})}let a=this._drawCommand;if(!l(a.vertexArray)){let S={direction:0},v=new Uint8Array(4*2);v[0]=0,v[1]=0,v[2]=255,v[3]=0,v[4]=255,v[5]=255,v[6]=0,v[7]=255;let D=mt.createVertexBuffer({context:o,typedArray:v,usage:Fe.STATIC_DRAW}),O=[{index:S.direction,vertexBuffer:D,componentsPerAttribute:2,normalize:!0,componentDatatype:X.UNSIGNED_BYTE}],M=mt.createIndexBuffer({context:o,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ve.UNSIGNED_SHORT});a.vertexArray=new ri({context:o,attributes:O,indexBuffer:M}),a.shaderProgram=Jt.fromCache({context:o,vertexShaderSource:Zk,fragmentShaderSource:Kk,attributeLocations:S}),a.renderState=ze.fromCache({blending:mn.ALPHA_BLEND}),a.uniformMap=this._uniformMap}let c=o.uniformState.sunPositionWC,u=o.uniformState.sunPositionColumbusView,f=this._boundingVolume,d=this._boundingVolume2D;m.clone(c,f.center),d.center.x=u.z,d.center.y=u.x,d.center.z=u.y,f.radius=P.SOLAR_RADIUS+P.SOLAR_RADIUS*this._glowLengthTS,d.radius=f.radius,i===ne.SCENE3D?ae.clone(f,a.boundingVolume):i===ne.COLUMBUS_VIEW&&ae.clone(d,a.boundingVolume);let p=Qi.computeActualWgs84Position(e,c,tI),g=m.magnitude(m.subtract(p,e.camera.position,tI)),h=o.uniformState.projection,A=Uft;A.x=0,A.y=0,A.z=-g,A.w=1;let x=B.multiplyByVector(h,A,tI),C=Qi.clipToGLWindowCoordinates(t.viewport,x,Nft);A.x=P.SOLAR_RADIUS;let T=B.multiplyByVector(h,A,tI),E=Qi.clipToGLWindowCoordinates(t.viewport,T,Fft);return this._size=H.magnitude(H.subtract(E,C,tI)),this._size=2*this._size*(1+2*this._glowLengthTS),this._size=Math.ceil(this._size),this._commands};nI.prototype.isDestroyed=function(){return!1};nI.prototype.destroy=function(){let e=this._drawCommand;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._texture=this._texture&&this._texture.destroy(),ue(this)};var Qk=nI;function lb(e){return en(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}function Vft(e){e._renderLoopRunning=!0;let t=0;function n(i){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{let o=e._targetFrameRate;if(!l(o))e.resize(),e.render(),requestAnimationFrame(n);else{let r=1e3/o,s=i-t;s>r&&(e.resize(),e.render(),t=i-s%r),requestAnimationFrame(n)}}catch(o){if(e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors){let r="An error occurred while rendering. Rendering has stopped.";e.showErrorPanel(r,void 0,o)}}else e._renderLoopRunning=!1}requestAnimationFrame(n)}function Bge(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,l(e._scene)&&(e._scene.pixelRatio=t),t}function Lge(e){let t=e._canvas,n=t.clientWidth,i=t.clientHeight,o=Bge(e);e._canvasClientWidth=n,e._canvasClientHeight=i,n*=o,i*=o,t.width=n,t.height=i,e._canRender=n!==0&&i!==0,e._lastDevicePixelRatio=window.devicePixelRatio}function Nge(e){let t=e._canvas,n=t.width,i=t.height;if(n!==0&&i!==0){let o=e._scene.camera.frustum;l(o.aspectRatio)?o.aspectRatio=n/i:(o.top=o.right*(i/n),o.bottom=-o.top)}}function YA(e,t){e=On(e),t=y(t,y.EMPTY_OBJECT);let n=document.createElement("div");n.className="cesium-widget",e.appendChild(n);let i=document.createElement("canvas"),o=Gt.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=o,o&&(i.style.imageRendering=Gt.imageRenderingValue()),i.oncontextmenu=function(){return!1},i.onselectstart=function(){return!1};function r(){i!==i.ownerDocument.activeElement&&i.ownerDocument.activeElement.blur()}y(t.blurActiveElementOnCanvasFocus,!0)&&(i.addEventListener("mousedown",r),i.addEventListener("pointerdown",r)),n.appendChild(i);let a=document.createElement("div");a.className="cesium-widget-credits";let c=l(t.creditContainer)?On(t.creditContainer):n;c.appendChild(a);let u=l(t.creditViewport)?On(t.creditViewport):n,f=y(t.showRenderLoopErrors,!0),d=y(t.useBrowserRecommendedResolution,!0);this._element=n,this._container=e,this._canvas=i,this._canvasClientWidth=0,this._canvasClientHeight=0,this._lastDevicePixelRatio=0,this._creditViewport=u,this._creditContainer=c,this._innerCreditContainer=a,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=f,this._resolutionScale=1,this._useBrowserRecommendedResolution=d,this._forceResize=!1,this._clock=l(t.clock)?t.clock:new Bm,Lge(this);try{let p=new zk({canvas:i,contextOptions:t.contextOptions,creditContainer:a,creditViewport:u,mapProjection:t.mapProjection,orderIndependentTranslucency:t.orderIndependentTranslucency,scene3DOnly:y(t.scene3DOnly,!1),shadows:t.shadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples});this._scene=p,p.camera.constrainedAxis=m.UNIT_Z,Bge(this),Nge(this);let g=y(p.mapProjection.ellipsoid,oe.WGS84),h=t.globe;l(h)||(h=new QU(g)),h!==!1&&(p.globe=h,p.globe.shadows=y(t.terrainShadows,xn.RECEIVE_ONLY));let A=t.skyBox;l(A)||(A=new Xk({sources:{positiveX:lb("px"),negativeX:lb("mx"),positiveY:lb("py"),negativeY:lb("my"),positiveZ:lb("pz"),negativeZ:lb("mz")}})),A!==!1&&(p.skyBox=A,p.sun=new Qk,p.moon=new sV);let x=t.skyAtmosphere;l(x)||(x=new Wk(g)),x!==!1&&(p.skyAtmosphere=x),l(t.imageryProvider)&&$("CesiumWidget options.imageryProvider","options.imageryProvider was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use options.baseLayer instead.");let C=t.baseLayer;t.globe!==!1&&C!==!1&&t.imageryProvider!==!1&&(l(t.imageryProvider)&&!l(C)&&(C=new Qs(t.imageryProvider)),l(C)||(C=Qs.fromWorldImagery()),p.imageryLayers.add(C)),l(t.terrainProvider)&&t.globe!==!1&&(p.terrainProvider=t.terrainProvider),l(t.terrain)&&t.globe!==!1&&p.setTerrain(t.terrain),this._screenSpaceEventHandler=new _f(i),l(t.sceneMode)&&(t.sceneMode===ne.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===ne.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void 0,this.useDefaultRenderLoop=y(t.useDefaultRenderLoop,!0),this._targetFrameRate=void 0,this.targetFrameRate=t.targetFrameRate;let T=this;this._onRenderError=function(E,S){if(T._useDefaultRenderLoop=!1,T._renderLoopRunning=!1,T._showRenderLoopErrors){let v="An error occurred while rendering. Rendering has stopped.";T.showErrorPanel(v,void 0,S)}},p.renderError.addEventListener(this._onRenderError)}catch(p){if(f){let g="Error constructing CesiumWidget.",h='Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:';this.showErrorPanel(g,h,p)}throw p}}Object.defineProperties(YA.prototype,{container:{get:function(){return this._container}},canvas:{get:function(){return this._canvas}},creditContainer:{get:function(){return this._creditContainer}},creditViewport:{get:function(){return this._creditViewport}},scene:{get:function(){return this._scene}},imageryLayers:{get:function(){return this._scene.imageryLayers}},terrainProvider:{get:function(){return this._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},creditDisplay:{get:function(){return this._scene.frameState.creditDisplay}},camera:{get:function(){return this._scene.camera}},clock:{get:function(){return this._clock}},screenSpaceEventHandler:{get:function(){return this._screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._targetFrameRate},set:function(e){this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&Vft(this))}},resolutionScale:{get:function(){return this._resolutionScale},set:function(e){this._resolutionScale!==e&&(this._resolutionScale=e,this._forceResize=!0)}},useBrowserRecommendedResolution:{get:function(){return this._useBrowserRecommendedResolution},set:function(e){this._useBrowserRecommendedResolution!==e&&(this._useBrowserRecommendedResolution=e,this._forceResize=!0)}}});YA.prototype.showErrorPanel=function(e,t,n){let i=this._element,o=document.createElement("div");o.className="cesium-widget-errorPanel";let r=document.createElement("div");r.className="cesium-widget-errorPanel-content",o.appendChild(r);let s=document.createElement("div");s.className="cesium-widget-errorPanel-header",s.appendChild(document.createTextNode(e)),r.appendChild(s);let a=document.createElement("div");a.className="cesium-widget-errorPanel-scroll",r.appendChild(a);function c(){a.style.maxHeight=`${Math.max(Math.round(i.clientHeight*.9-100),30)}px`}c(),l(window.addEventListener)&&window.addEventListener("resize",c,!1);let u=l(t),f=l(n);if(u||f){let g=document.createElement("div");if(g.className="cesium-widget-errorPanel-message",a.appendChild(g),f){let h=Np(n);u||(typeof n=="string"&&(n=new Error(n)),t=Np({name:n.name,message:n.message}),h=n.stack),typeof console<"u"&&console.error(`${e} +${t} +${h}`);let A=document.createElement("div");A.className="cesium-widget-errorPanel-message-details collapsed";let x=document.createElement("span");x.className="cesium-widget-errorPanel-more-details",x.appendChild(document.createTextNode("See more...")),A.appendChild(x),A.onclick=function(C){A.removeChild(x),A.appendChild(document.createTextNode(h)),A.className="cesium-widget-errorPanel-message-details",r.className="cesium-widget-errorPanel-content expanded",A.onclick=void 0},a.appendChild(A)}g.innerHTML=`<p>${t}</p>`}let d=document.createElement("div");d.className="cesium-widget-errorPanel-buttonPanel",r.appendChild(d);let p=document.createElement("button");p.setAttribute("type","button"),p.className="cesium-button",p.appendChild(document.createTextNode("OK")),p.onclick=function(){l(c)&&l(window.removeEventListener)&&window.removeEventListener("resize",c,!1),i.removeChild(o)},d.appendChild(p),i.appendChild(o)};YA.prototype.isDestroyed=function(){return!1};YA.prototype.destroy=function(){l(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),ue(this)};YA.prototype.resize=function(){let e=this._canvas;!this._forceResize&&this._canvasClientWidth===e.clientWidth&&this._canvasClientHeight===e.clientHeight&&this._lastDevicePixelRatio===window.devicePixelRatio||(this._forceResize=!1,Lge(this),Nge(this),this._scene.requestRender())};YA.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();let e=this._clock.tick();this._scene.render(e)}else this._clock.tick()};var $k=YA;var e4=`uniform sampler2D u_noiseTexture; +uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +in vec2 v_offset; +in vec3 v_maximumSize; +in vec4 v_color; +in float v_slice; +in float v_brightness; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec2 voxelToUV(vec3 voxelIndex) { + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + + float textureSliceWidthSquared = textureSliceWidth * textureSliceWidth; + vec2 inverseNoiseTextureDimensions = vec2(noiseTextureRows / textureSliceWidthSquared, + inverseNoiseTextureRows / textureSliceWidth); + vec3 wrappedIndex = wrapVec(voxelIndex, textureSliceWidth); + float column = mod(wrappedIndex.z, textureSliceWidth * inverseNoiseTextureRows); + float row = floor(wrappedIndex.z / textureSliceWidth * noiseTextureRows); + + float xPixelCoord = wrappedIndex.x + column * textureSliceWidth; + float yPixelCoord = wrappedIndex.y + row * textureSliceWidth; + return vec2(xPixelCoord, yPixelCoord) * inverseNoiseTextureDimensions; +} + +// Interpolate a voxel with its neighbor (along the positive X-axis) +vec4 lerpSamplesX(vec3 voxelIndex, float x) { + vec2 uv0 = voxelToUV(voxelIndex); + vec2 uv1 = voxelToUV(voxelIndex + vec3(1.0, 0.0, 0.0)); + vec4 sample0 = texture(u_noiseTexture, uv0); + vec4 sample1 = texture(u_noiseTexture, uv1); + return mix(sample0, sample1, x); +} + +vec4 sampleNoiseTexture(vec3 position) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 recenteredPos = position + vec3(textureSliceWidth / 2.0); + vec3 lerpValue = fract(recenteredPos); + vec3 voxelIndex = floor(recenteredPos); + + vec4 xLerp00 = lerpSamplesX(voxelIndex, lerpValue.x); + vec4 xLerp01 = lerpSamplesX(voxelIndex + vec3(0.0, 0.0, 1.0), lerpValue.x); + vec4 xLerp10 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 0.0), lerpValue.x); + vec4 xLerp11 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 1.0), lerpValue.x); + + vec4 yLerp0 = mix(xLerp00, xLerp10, lerpValue.y); + vec4 yLerp1 = mix(xLerp01, xLerp11, lerpValue.y); + return mix(yLerp0, yLerp1, lerpValue.z); +} + +// Intersection with a unit sphere with radius 0.5 at center (0, 0, 0). +bool intersectSphere(vec3 origin, vec3 dir, float slice, + out vec3 point, out vec3 normal) { + float A = dot(dir, dir); + float B = dot(origin, dir); + float C = dot(origin, origin) - 0.25; + float discriminant = (B * B) - (A * C); + if(discriminant < 0.0) { + return false; + } + float root = sqrt(discriminant); + float t = (-B - root) / A; + if(t < 0.0) { + t = (-B + root) / A; + } + point = origin + t * dir; + + if(slice >= 0.0) { + point.z = (slice / 2.0) - 0.5; + if(length(point) > 0.5) { + return false; + } + } + + normal = normalize(point); + point -= czm_epsilon2 * normal; + return true; +} + +// Transforms the ray origin and direction into unit sphere space, +// then transforms the result back into the ellipsoid's space. +bool intersectEllipsoid(vec3 origin, vec3 dir, vec3 center, vec3 scale, float slice, + out vec3 point, out vec3 normal) { + if(scale.x <= 0.01 || scale.y < 0.01 || scale.z < 0.01) { + return false; + } + + vec3 o = (origin - center) / scale; + vec3 d = dir / scale; + vec3 p, n; + bool intersected = intersectSphere(o, d, slice, p, n); + if(intersected) { + point = (p * scale) + center; + normal = n; + } + return intersected; +} + +// Assume that if phase shift is being called for octave i, +// the frequency is of i - 1. This saves us from doing extra +// division / multiplication operations. +vec2 phaseShift2D(vec2 p, vec2 freq) { + return (czm_pi / 2.0) * sin(freq.yx * p.yx); +} + +vec2 phaseShift3D(vec3 p, vec2 freq) { + return phaseShift2D(p.xy, freq) + czm_pi * vec2(sin(freq.x * p.z)); +} + +// The cloud texture function derived from Gardner's 1985 paper, +// "Visual Simulation of Clouds." +// https://www.cs.drexel.edu/~david/Classes/Papers/p297-gardner.pdf +const float T0 = 0.6; // contrast of the texture pattern +const float k = 0.1; // computed to produce a maximum value of 1 +const float C0 = 0.8; // coefficient +const float FX0 = 0.6; // frequency X +const float FY0 = 0.6; // frequency Y +const int octaves = 5; + +float T(vec3 point) { + vec2 sum = vec2(0.0); + float Ci = C0; + vec2 FXY = vec2(FX0, FY0); + vec2 PXY = vec2(0.0); + for(int i = 1; i <= octaves; i++) { + PXY = phaseShift3D(point, FXY); + Ci *= 0.707; + FXY *= 2.0; + vec2 sinTerm = sin(FXY * point.xy + PXY); + sum += Ci * sinTerm + vec2(T0); + } + return k * sum.x * sum.y; +} + +const float a = 0.5; // fraction of surface reflection due to ambient or scattered light, +const float t = 0.4; // fraction of texture shading +const float s = 0.25; // fraction of specular reflection + +float I(float Id, float Is, float It) { + return (1.0 - a) * ((1.0 - t) * ((1.0 - s) * Id + s * Is) + t * It) + a; +} + +const vec3 lightDir = normalize(vec3(0.2, -1.0, 0.7)); + +vec4 drawCloud(vec3 rayOrigin, vec3 rayDir, vec3 cloudCenter, vec3 cloudScale, float cloudSlice, + float brightness) { + vec3 cloudPoint, cloudNormal; + if(!intersectEllipsoid(rayOrigin, rayDir, cloudCenter, cloudScale, cloudSlice, + cloudPoint, cloudNormal)) { + return vec4(0.0); + } + + float Id = clamp(dot(cloudNormal, -lightDir), 0.0, 1.0); // diffuse reflection + float Is = max(pow(dot(-lightDir, -rayDir), 2.0), 0.0); // specular reflection + float It = T(cloudPoint); // texture function + float intensity = I(Id, Is, It); + vec3 color = vec3(intensity * clamp(brightness, 0.1, 1.0)); + + vec4 noise = sampleNoiseTexture(u_noiseDetail * cloudPoint); + float W = noise.x; + float W2 = noise.y; + float W3 = noise.z; + + // The dot product between the cloud's normal and the ray's direction is greatest + // in the center of the ellipsoid's surface. It decreases towards the edge. + // Thus, it is used to blur the areas leading to the edges of the ellipsoid, + // so that no harsh lines appear. + + // The first (and biggest) layer of worley noise is then subtracted from this. + // The final result is scaled up so that the base cloud is not too translucent. + float ndDot = clamp(dot(cloudNormal, -rayDir), 0.0, 1.0); + float TR = pow(ndDot, 3.0) - W; // translucency + TR *= 1.3; + + // Subtracting the second and third layers of worley noise is more complicated. + // If these layers of noise were simply subtracted from the current translucency, + // the shape derived from the first layer of noise would be completely deleted. + // The erosion of this noise should thus be constricted to the edges of the cloud. + // However, because the edges of the ellipsoid were already blurred away, mapping + // the noise to (1.0 - ndDot) will have no impact on most of the cloud's appearance. + // The value of (0.5 - ndDot) provides the best compromise. + float minusDot = 0.5 - ndDot; + + // Even with the previous calculation, subtracting the second layer of wnoise + // erode too much of the cloud. The addition of it, however, will detailed + // volume to the cloud. As long as the noise is only added and not subtracted, + // the results are aesthetically pleasing. + + // The minusDot product is mapped in a way that it is larger at the edges of + // the ellipsoid, so a subtraction and min operation are used instead of + // an addition and max one. + TR -= min(minusDot * W2, 0.0); + + // The third level of worley noise is subtracted from the result, with some + // modifications. First, a scalar is added to minusDot so that the noise + // starts affecting the shape farther away from the center of the ellipsoid's + // surface. Then, it is scaled down so its impact is not too intense. + TR -= 0.8 * (minusDot + 0.25) * W3; + + // The texture function's shading does not correlate with the shape of the cloud + // produced by the layers of noise, so an extra shading scalar is calculated. + // The darkest areas of the cloud are assigned to be where the noise erodes + // the cloud the most. This is then interpolated based on the translucency + // and the diffuse shading term of that point in the cloud. + float shading = mix(1.0 - 0.8 * W * W, 1.0, Id * TR); + + // To avoid values that are too dark, this scalar is increased by a small amount + // and clamped so it never goes to zero. + shading = clamp(shading + 0.2, 0.3, 1.0); + + // Finally, the contrast of the cloud's color is increased. + vec3 finalColor = mix(vec3(0.5), shading * color, 1.15); + return vec4(finalColor, clamp(TR, 0.0, 1.0)) * v_color; +} + +void main() { +#ifdef DEBUG_BILLBOARDS + out_FragColor = vec4(0.0, 0.5, 0.5, 1.0); +#endif + // To avoid calculations with high values, + // we raycast from an arbitrarily smaller space. + vec2 coordinate = v_maximumSize.xy * v_offset; + + vec3 ellipsoidScale = 0.82 * v_maximumSize; + vec3 ellipsoidCenter = vec3(0.0); + + float zOffset = max(ellipsoidScale.z - 10.0, 0.0); + vec3 eye = vec3(0, 0, -10.0 - zOffset); + vec3 rayDir = normalize(vec3(coordinate, 1.0) - eye); + vec3 rayOrigin = eye; +#ifdef DEBUG_ELLIPSOIDS + vec3 point, normal; + if(intersectEllipsoid(rayOrigin, rayDir, ellipsoidCenter, ellipsoidScale, v_slice, + point, normal)) { + out_FragColor = v_brightness * v_color; + } +#else +#ifndef DEBUG_BILLBOARDS + vec4 cloud = drawCloud(rayOrigin, rayDir, + ellipsoidCenter, ellipsoidScale, v_slice, v_brightness); + if(cloud.w < 0.01) { + discard; + } + out_FragColor = cloud; +#endif +#endif +} +`;var t4=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScaleX; +in vec4 positionLowAndScaleY; +in vec4 packedAttribute0; +in vec4 packedAttribute1; +in vec4 color; + +out vec2 v_offset; +out vec3 v_maximumSize; +out vec4 v_color; +out float v_slice; +out float v_brightness; + +void main() { + // Unpack attributes. + vec3 positionHigh = positionHighAndScaleX.xyz; + vec3 positionLow = positionLowAndScaleY.xyz; + vec2 scale = vec2(positionHighAndScaleX.w, positionLowAndScaleY.w); + + float show = packedAttribute0.x; + float brightness = packedAttribute0.y; + vec2 coordinates = packedAttribute0.wz; + vec3 maximumSize = packedAttribute1.xyz; + float slice = packedAttribute1.w; + +#ifdef INSTANCED + vec2 dir = direction; +#else + vec2 dir = coordinates; +#endif + + vec2 offset = dir - vec2(0.5, 0.5); + vec2 scaledOffset = scale * offset; + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + positionEC.xy += scaledOffset; + + positionEC.xyz *= show; + gl_Position = czm_projection * positionEC; + + v_offset = offset; + v_maximumSize = maximumSize; + v_color = color; + v_slice = slice; + v_brightness = brightness; +} +`;var n4=`uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +uniform vec3 u_noiseOffset; +in vec2 v_position; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec3 random3(vec3 p) { + float dot1 = dot(p, vec3(127.1, 311.7, 932.8)); + float dot2 = dot(p, vec3(269.5, 183.3, 421.4)); + return fract(vec3(sin(dot1 - dot2), cos(dot1 * dot2), dot1 * dot2)); +} + +// Frequency corresponds to cell size. +// The higher the frequency, the smaller the cell size. +vec3 getWorleyCellPoint(vec3 centerCell, vec3 offset, float freq) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 cell = centerCell + offset; + cell = wrapVec(cell, textureSliceWidth / u_noiseDetail); + cell += floor(u_noiseOffset / u_noiseDetail); + vec3 p = offset + random3(cell); + return p; +} + +float worleyNoise(vec3 p, float freq) { + vec3 centerCell = floor(p * freq); + vec3 pointInCell = fract(p * freq); + float shortestDistance = 1000.0; + + for(float z = -1.0; z <= 1.0; z++) { + for(float y = -1.0; y <= 1.0; y++) { + for(float x = -1.0; x <= 1.0; x++) { + vec3 offset = vec3(x, y, z); + vec3 point = getWorleyCellPoint(centerCell, offset, freq); + + float distance = length(pointInCell - point); + if(distance < shortestDistance) { + shortestDistance = distance; + } + } + } + } + + return shortestDistance; +} + +const float MAX_FBM_ITERATIONS = 10.0; + +float worleyFBMNoise(vec3 p, float octaves, float scale) { + float noise = 0.0; + float freq = 1.0; + float persistence = 0.625; + for(float i = 0.0; i < MAX_FBM_ITERATIONS; i++) { + if(i >= octaves) { + break; + } + + noise += worleyNoise(p * scale, freq * scale) * persistence; + persistence *= 0.5; + freq *= 2.0; + } + return noise; +} + +void main() { + float textureSliceWidth = u_noiseTextureDimensions.x; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + float x = mod(v_position.x, textureSliceWidth); + float y = mod(v_position.y, textureSliceWidth); + float sliceRow = floor(v_position.y / textureSliceWidth); + float z = floor(v_position.x / textureSliceWidth) + sliceRow * inverseNoiseTextureRows * textureSliceWidth; + + vec3 position = vec3(x, y, z); + position /= u_noiseDetail; + float worley0 = clamp(worleyFBMNoise(position, 3.0, 1.0), 0.0, 1.0); + float worley1 = clamp(worleyFBMNoise(position, 3.0, 2.0), 0.0, 1.0); + float worley2 = clamp(worleyFBMNoise(position, 3.0, 3.0), 0.0, 1.0); + out_FragColor = vec4(worley0, worley1, worley2, 1.0); +} +`;var i4=`uniform vec3 u_noiseTextureDimensions; +in vec2 position; + +out vec2 v_position; + +void main() +{ + gl_Position = vec4(position, 0.1, 1.0); + + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + vec2 transformedPos = (position * 0.5) + vec2(0.5); + transformedPos *= textureSliceWidth; + transformedPos.x *= textureSliceWidth * inverseNoiseTextureRows; + transformedPos.y *= noiseTextureRows; + v_position = transformedPos; +} +`;var o4=` +in vec2 v_textureCoordinates; + +void main() +{ + czm_materialInput materialInput; + + materialInput.s = v_textureCoordinates.s; + materialInput.st = v_textureCoordinates; + materialInput.str = vec3(v_textureCoordinates, 0.0); + materialInput.normalEC = vec3(0.0, 0.0, -1.0); + + czm_material material = czm_getMaterial(materialInput); + + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +} +`;var kft=new m(1,1,1);function kY(e){e=y(e,kft),this._dimensions=m.clone(e)}Object.defineProperties(kY.prototype,{dimensions:{get:function(){return this._dimensions},set:function(e){m.clone(e,this._dimensions)}}});var zft=new m;kY.prototype.emit=function(e){let t=this._dimensions,n=m.multiplyByScalar(t,.5,zft),i=P.randomBetween(-n.x,n.x),o=P.randomBetween(-n.y,n.y),r=P.randomBetween(-n.z,n.z);e.position=m.fromElements(i,o,r,e.position),e.velocity=m.normalize(e.position,e.velocity)};var Fge=kY;function Xp(){this.featurePropertiesDirty=!1}Object.defineProperties(Xp.prototype,{featuresLength:{get:function(){fe.throwInstantiationError()}},pointsLength:{get:function(){fe.throwInstantiationError()}},trianglesLength:{get:function(){fe.throwInstantiationError()}},geometryByteLength:{get:function(){fe.throwInstantiationError()}},texturesByteLength:{get:function(){fe.throwInstantiationError()}},batchTableByteLength:{get:function(){fe.throwInstantiationError()}},innerContents:{get:function(){fe.throwInstantiationError()}},ready:{get:function(){fe.throwInstantiationError()}},readyPromise:{get:function(){fe.throwInstantiationError()}},tileset:{get:function(){fe.throwInstantiationError()}},tile:{get:function(){fe.throwInstantiationError()}},url:{get:function(){fe.throwInstantiationError()}},batchTable:{get:function(){fe.throwInstantiationError()}},metadata:{get:function(){fe.throwInstantiationError()},set:function(e){fe.throwInstantiationError()}},group:{get:function(){fe.throwInstantiationError()},set:function(e){fe.throwInstantiationError()}}});Xp.prototype.hasProperty=function(e,t){fe.throwInstantiationError()};Xp.prototype.getFeature=function(e){fe.throwInstantiationError()};Xp.prototype.applyDebugSettings=function(e,t){fe.throwInstantiationError()};Xp.prototype.applyStyle=function(e){fe.throwInstantiationError()};Xp.prototype.update=function(e,t){fe.throwInstantiationError()};Xp.prototype.isDestroyed=function(){fe.throwInstantiationError()};Xp.prototype.destroy=function(){fe.throwInstantiationError()};var Uge=Xp;function ub(e,t){this._conditionsExpression=Ye(e,!0),this._conditions=e.conditions,this._runtimeConditions=void 0,Gft(this,t)}Object.defineProperties(ub.prototype,{conditionsExpression:{get:function(){return this._conditionsExpression}}});function Hft(e,t){this.condition=e,this.expression=t}function Gft(e,t){let n=[],i=e._conditions;if(!l(i))return;let o=i.length;for(let r=0;r<o;++r){let s=i[r],a=String(s[0]),c=String(s[1]);n.push(new Hft(new Gf(a,t),new Gf(c,t)))}e._runtimeConditions=n}ub.prototype.evaluate=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluate(e,t)}};ub.prototype.evaluateColor=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluateColor(e,t)}};ub.prototype.getShaderFunction=function(e,t,n,i){let o=this._runtimeConditions;if(!l(o)||o.length===0)return;let r="",s=o.length;for(let a=0;a<s;++a){let c=o[a],u=c.condition.getShaderExpression(t,n),f=c.expression.getShaderExpression(t,n);r+=` ${a===0?"if":"else if"} (${u}) + { + return ${f}; + } +`}return r=`${i} ${e} +{ +${r} return ${i}(1.0); +} +`,r};ub.prototype.getVariables=function(){let e=[],t=this._runtimeConditions;if(!l(t)||t.length===0)return e;let n=t.length;for(let i=0;i<n;++i){let o=t[i];e.push.apply(e,o.condition.getVariables()),e.push.apply(e,o.expression.getVariables())}return e=e.filter(function(i,o,r){return r.indexOf(i)===o}),e};var r4=ub;function Cy(e){this._style={},this._ready=!1,this._show=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._labelColor=void 0,this._labelOutlineColor=void 0,this._labelOutlineWidth=void 0,this._font=void 0,this._labelStyle=void 0,this._labelText=void 0,this._backgroundColor=void 0,this._backgroundPadding=void 0,this._backgroundEnabled=void 0,this._scaleByDistance=void 0,this._translucencyByDistance=void 0,this._distanceDisplayCondition=void 0,this._heightOffset=void 0,this._anchorLineEnabled=void 0,this._anchorLineColor=void 0,this._image=void 0,this._disableDepthTestDistance=void 0,this._horizontalOrigin=void 0,this._verticalOrigin=void 0,this._labelHorizontalOrigin=void 0,this._labelVerticalOrigin=void 0,this._meta=void 0,this._colorShaderFunction=void 0,this._showShaderFunction=void 0,this._pointSizeShaderFunction=void 0,this._colorShaderFunctionReady=!1,this._showShaderFunctionReady=!1,this._pointSizeShaderFunctionReady=!1,this._colorShaderTranslucent=!1,Wft(this,e)}function Wft(e,t){t=y(Ye(t,!0),e._style),e._style=t,e.show=t.show,e.color=t.color,e.pointSize=t.pointSize,e.pointOutlineColor=t.pointOutlineColor,e.pointOutlineWidth=t.pointOutlineWidth,e.labelColor=t.labelColor,e.labelOutlineColor=t.labelOutlineColor,e.labelOutlineWidth=t.labelOutlineWidth,e.labelStyle=t.labelStyle,e.font=t.font,e.labelText=t.labelText,e.backgroundColor=t.backgroundColor,e.backgroundPadding=t.backgroundPadding,e.backgroundEnabled=t.backgroundEnabled,e.scaleByDistance=t.scaleByDistance,e.translucencyByDistance=t.translucencyByDistance,e.distanceDisplayCondition=t.distanceDisplayCondition,e.heightOffset=t.heightOffset,e.anchorLineEnabled=t.anchorLineEnabled,e.anchorLineColor=t.anchorLineColor,e.image=t.image,e.disableDepthTestDistance=t.disableDepthTestDistance,e.horizontalOrigin=t.horizontalOrigin,e.verticalOrigin=t.verticalOrigin,e.labelHorizontalOrigin=t.labelHorizontalOrigin,e.labelVerticalOrigin=t.labelVerticalOrigin;let n={};if(l(t.meta)){let i=t.defines,o=y(t.meta,y.EMPTY_OBJECT);for(let r in o)o.hasOwnProperty(r)&&(n[r]=new Gf(o[r],i))}e._meta=n,e._ready=!0}function Xo(e,t){let n=y(e._style,y.EMPTY_OBJECT).defines;if(l(t)){if(typeof t=="boolean"||typeof t=="number")return new Gf(String(t));if(typeof t=="string")return new Gf(t,n);if(l(t.conditions))return new r4(t,n)}else return;return t}function Ko(e){if(l(e)){if(l(e.expression))return e.expression;if(l(e.conditionsExpression))return Ye(e.conditionsExpression,!0)}else return;return e}Object.defineProperties(Cy.prototype,{style:{get:function(){return this._style}},show:{get:function(){return this._show},set:function(e){this._show=Xo(this,e),this._style.show=Ko(this._show),this._showShaderFunctionReady=!1}},color:{get:function(){return this._color},set:function(e){this._color=Xo(this,e),this._style.color=Ko(this._color),this._colorShaderFunctionReady=!1}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=Xo(this,e),this._style.pointSize=Ko(this._pointSize),this._pointSizeShaderFunctionReady=!1}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=Xo(this,e),this._style.pointOutlineColor=Ko(this._pointOutlineColor)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=Xo(this,e),this._style.pointOutlineWidth=Ko(this._pointOutlineWidth)}},labelColor:{get:function(){return this._labelColor},set:function(e){this._labelColor=Xo(this,e),this._style.labelColor=Ko(this._labelColor)}},labelOutlineColor:{get:function(){return this._labelOutlineColor},set:function(e){this._labelOutlineColor=Xo(this,e),this._style.labelOutlineColor=Ko(this._labelOutlineColor)}},labelOutlineWidth:{get:function(){return this._labelOutlineWidth},set:function(e){this._labelOutlineWidth=Xo(this,e),this._style.labelOutlineWidth=Ko(this._labelOutlineWidth)}},font:{get:function(){return this._font},set:function(e){this._font=Xo(this,e),this._style.font=Ko(this._font)}},labelStyle:{get:function(){return this._labelStyle},set:function(e){this._labelStyle=Xo(this,e),this._style.labelStyle=Ko(this._labelStyle)}},labelText:{get:function(){return this._labelText},set:function(e){this._labelText=Xo(this,e),this._style.labelText=Ko(this._labelText)}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=Xo(this,e),this._style.backgroundColor=Ko(this._backgroundColor)}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){this._backgroundPadding=Xo(this,e),this._style.backgroundPadding=Ko(this._backgroundPadding)}},backgroundEnabled:{get:function(){return this._backgroundEnabled},set:function(e){this._backgroundEnabled=Xo(this,e),this._style.backgroundEnabled=Ko(this._backgroundEnabled)}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){this._scaleByDistance=Xo(this,e),this._style.scaleByDistance=Ko(this._scaleByDistance)}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){this._translucencyByDistance=Xo(this,e),this._style.translucencyByDistance=Ko(this._translucencyByDistance)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=Xo(this,e),this._style.distanceDisplayCondition=Ko(this._distanceDisplayCondition)}},heightOffset:{get:function(){return this._heightOffset},set:function(e){this._heightOffset=Xo(this,e),this._style.heightOffset=Ko(this._heightOffset)}},anchorLineEnabled:{get:function(){return this._anchorLineEnabled},set:function(e){this._anchorLineEnabled=Xo(this,e),this._style.anchorLineEnabled=Ko(this._anchorLineEnabled)}},anchorLineColor:{get:function(){return this._anchorLineColor},set:function(e){this._anchorLineColor=Xo(this,e),this._style.anchorLineColor=Ko(this._anchorLineColor)}},image:{get:function(){return this._image},set:function(e){this._image=Xo(this,e),this._style.image=Ko(this._image)}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance=Xo(this,e),this._style.disableDepthTestDistance=Ko(this._disableDepthTestDistance)}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin=Xo(this,e),this._style.horizontalOrigin=Ko(this._horizontalOrigin)}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin=Xo(this,e),this._style.verticalOrigin=Ko(this._verticalOrigin)}},labelHorizontalOrigin:{get:function(){return this._labelHorizontalOrigin},set:function(e){this._labelHorizontalOrigin=Xo(this,e),this._style.labelHorizontalOrigin=Ko(this._labelHorizontalOrigin)}},labelVerticalOrigin:{get:function(){return this._labelVerticalOrigin},set:function(e){this._labelVerticalOrigin=Xo(this,e),this._style.labelVerticalOrigin=Ko(this._labelVerticalOrigin)}},meta:{get:function(){return this._meta},set:function(e){this._meta=e}}});Cy.fromUrl=function(e){return we.createIfNeeded(e).fetchJson(e).then(function(n){return new Cy(n)})};Cy.prototype.getColorShaderFunction=function(e,t,n){return this._colorShaderFunctionReady?(n.translucent=this._colorShaderTranslucent,this._colorShaderFunction):(this._colorShaderFunctionReady=!0,l(this.color)&&l(this.color.getShaderFunction)?this._colorShaderFunction=this.color.getShaderFunction(e,t,n,"vec4"):this._colorShaderFunction=void 0,this._colorShaderTranslucent=n.translucent,this._colorShaderFunction)};Cy.prototype.getShowShaderFunction=function(e,t,n){return this._showShaderFunctionReady?this._showShaderFunction:(this._showShaderFunctionReady=!0,l(this.show)&&l(this.show.getShaderFunction)?this._showShaderFunction=this.show.getShaderFunction(e,t,n,"bool"):this._showShaderFunction=void 0,this._showShaderFunction)};Cy.prototype.getPointSizeShaderFunction=function(e,t,n){return this._pointSizeShaderFunctionReady?this._pointSizeShaderFunction:(this._pointSizeShaderFunctionReady=!0,l(this.pointSize)&&l(this.pointSize.getShaderFunction)?this._pointSizeShaderFunction=this.pointSize.getShaderFunction(e,t,n,"float"):this._pointSizeShaderFunction=void 0,this._pointSizeShaderFunction)};Cy.prototype.getVariables=function(){let e=[];return l(this.color)&&l(this.color.getVariables)&&e.push.apply(e,this.color.getVariables()),l(this.show)&&l(this.show.getVariables)&&e.push.apply(e,this.show.getVariables()),l(this.pointSize)&&l(this.pointSize.getVariables)&&e.push.apply(e,this.pointSize.getVariables()),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var Ty=Cy;function zd(e){this._comparator=e.comparator,this._maximumLength=e.maximumLength,this._array=l(e.maximumLength)?new Array(e.maximumLength):[],this._length=0}Object.defineProperties(zd.prototype,{length:{get:function(){return this._length}},maximumLength:{get:function(){return this._maximumLength},set:function(e){if(l(e)){for(;this._length>e;)this.removeMinimum();this._array.length=e}this._maximumLength=e}},internalArray:{get:function(){return this._array}},comparator:{get:function(){return this._comparator}}});zd.prototype.clone=function(){let e=this._maximumLength,t=this._comparator,n=this._array,i=this._length,o=new zd({comparator:t,maximumLength:e});o._length=i;for(let r=0;r<i;r++)o._array[r]=n[r];return o};zd.prototype.reset=function(){this._length=0;let e=this._maximumLength;if(l(e))for(let t=0;t<e;t++)this._array[t]=void 0;else this._array.length=0};zd.prototype.resort=function(){let e=this._length;for(let t=0;t<e;t++)Vge(this,t)};zd.prototype.insert=function(e){let t,n=this._maximumLength;if(l(n)){if(n===0)return;if(this._length===n){let o=this._array[0];if(this._comparator(e,o)<=0)return e;t=this.removeMinimum()}}let i=this._length;return this._array[i]=e,this._length++,Vge(this,i),t};zd.prototype.removeMinimum=function(){let e=this._length;if(e===0)return;this._length--;let t=this._array[0];return e>=2&&(this._array[0]=this._array[e-1],kge(this,0)),this._array[e-1]=void 0,t};zd.prototype.removeMaximum=function(){let e=this._length;if(e===0)return;this._length--;let t;if(e<=2)t=this._array[e-1];else{let n=zY(this,1,2)?1:2;t=this._array[n],this._array[n]=this._array[e-1],e>=4&&kge(this,n)}return this._array[e-1]=void 0,t};zd.prototype.getMinimum=function(){if(this._length!==0)return this._array[0]};zd.prototype.getMaximum=function(){let e=this._length;if(e!==0)return e<=2?this._array[e-1]:this._array[zY(this,1,2)?1:2]};function s4(e,t,n){let i=e._array,o=i[t];i[t]=i[n],i[n]=o}function iI(e,t,n){return e._comparator(e._array[t],e._array[n])<0}function zY(e,t,n){return e._comparator(e._array[t],e._array[n])>0}function Vge(e,t){if(t===0)return;let n=Math.floor(P.log2(t+1))%2===0,i=Math.floor((t-1)/2),o=iI(e,t,i);for(o!==n&&(s4(e,t,i),t=i);t>=3;){let r=Math.floor((t-3)/4);if(iI(e,t,r)!==o)break;s4(e,t,r),t=r}}function kge(e,t){let n=e._length,i=Math.floor(P.log2(t+1))%2===0,o;for(;(o=2*t+1)<n;){let r=o,s=o+1;if(s<n){iI(e,s,r)===i&&(r=s);let a=2*o+1,c=Math.max(Math.min(n-a,4),0);for(let u=0;u<c;u++){let f=a+u;iI(e,f,r)===i&&(r=f)}}if(iI(e,r,t)===i&&(s4(e,r,t),r!==o&&r!==s)){let a=Math.floor((r-1)/2);zY(e,r,a)===i&&s4(e,r,a)}t=r}}var fb=zd;function oI(e){e=y(e,y.EMPTY_OBJECT),this._maximumSubtreeCount=y(e.maximumSubtreeCount,0),this._subtreeRequestCounter=0,this._queue=new fb({comparator:oI.comparator})}oI.prototype.addSubtree=function(e){let t=new jft(e,this._subtreeRequestCounter);this._subtreeRequestCounter++,this._queue.insert(t);let n=e.implicitCoordinates;if(n.level>0){let i=n.getParentSubtreeCoordinates(),o=this.find(i)}if(this._maximumSubtreeCount>0)for(;this._queue.length>this._maximumSubtreeCount&&this._queue.getMinimum()!==t;)this._queue.removeMinimum()};oI.prototype.find=function(e){let t=this._queue,n=t.internalArray,i=t.length;for(let o=0;o<i;o++){let r=n[o],a=r.subtree.implicitCoordinates;if(e.isEqual(a))return r.subtree}};oI.comparator=function(e,t){let n=e.subtree.implicitCoordinates,i=t.subtree.implicitCoordinates;return n.isAncestor(i)?1:i.isAncestor(n)?-1:e.stamp-t.stamp};function jft(e,t){this.subtree=e,this.stamp=t}var a4=oI;function yl(){this.orientedBoundingBox=new Bn,this.boundingSphere=new ae,this.boundTransform=new B,this.shapeTransform=new B,this._minBounds=m.clone(yl.DefaultMinBounds,new m),this._maxBounds=m.clone(yl.DefaultMaxBounds,new m),this.shaderUniforms={renderMinBounds:new m,renderMaxBounds:new m,boxUvToShapeUvScale:new m,boxUvToShapeUvTranslate:new m},this.shaderDefines={BOX_INTERSECTION_INDEX:void 0,BOX_HAS_SHAPE_BOUNDS:void 0},this.shaderMaximumIntersectionsLength=0}var Yft=new m,HY=new m,qft=new Z,Xft=new m,Kft=new m,Jft=new m,Zft=new m,zge=B.fromRotationTranslation(Z.fromUniformScale(.5,new Z),new m(.5,.5,.5),new B);yl.prototype.update=function(e,t,n,i,o){i=y(i,yl.DefaultMinBounds),o=y(o,yl.DefaultMaxBounds);let r=yl.DefaultMinBounds,s=yl.DefaultMaxBounds;t=this._minBounds=m.clamp(t,r,s,this._minBounds),n=this._maxBounds=m.clamp(n,r,s,this._maxBounds),i=m.clamp(i,r,s,Xft),o=m.clamp(o,r,s,Kft);let a=m.clamp(t,i,o,Jft),c=m.clamp(n,i,o,Zft),u=B.getScale(e,HY);if(a.x>c.x||a.y>c.y||a.z>c.z||(a.x===c.x)+(a.y===c.y)+(a.z===c.z)>=2||i.x>o.x||i.y>o.y||i.z>o.z||u.x===0||u.y===0||u.z===0)return!1;this.shapeTransform=B.clone(e,this.shapeTransform),this.orientedBoundingBox=Hge(a,c,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=B.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ae.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let{shaderUniforms:f,shaderDefines:d}=this;for(let h in d)d.hasOwnProperty(h)&&(d[h]=void 0);let p=!m.equals(t,r)||!m.equals(n,s),g=0;if(d.BOX_INTERSECTION_INDEX=g,g+=1,f.renderMinBounds=B.multiplyByPoint(zge,a,f.renderMinBounds),f.renderMaxBounds=B.multiplyByPoint(zge,c,f.renderMaxBounds),p){d.BOX_HAS_SHAPE_BOUNDS=!0;let h=t,A=n;f.boxUvToShapeUvScale=m.fromElements(2/(h.x===A.x?1:A.x-h.x),2/(h.y===A.y?1:A.y-h.y),2/(h.z===A.z?1:A.z-h.z),f.boxUvToShapeUvScale),f.boxUvToShapeUvTranslate=m.fromElements(-f.boxUvToShapeUvScale.x*(h.x*.5+.5),-f.boxUvToShapeUvScale.y*(h.y*.5+.5),-f.boxUvToShapeUvScale.z*(h.z*.5+.5),f.boxUvToShapeUvTranslate)}return this.shaderMaximumIntersectionsLength=g,!0};var Qft=new m,$ft=new m;yl.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minBounds,s=this._maxBounds,a=1/Math.pow(2,e),c=m.fromElements(P.lerp(r.x,s.x,a*t),P.lerp(r.y,s.y,a*n),P.lerp(r.z,s.z,a*i),Qft),u=m.fromElements(P.lerp(r.x,s.x,a*(t+1)),P.lerp(r.y,s.y,a*(n+1)),P.lerp(r.z,s.z,a*(i+1)),$ft);return Hge(c,u,this.shapeTransform,o)};yl.prototype.computeApproximateStepSize=function(e){return 1/m.maximumComponent(e)};yl.DefaultMinBounds=Object.freeze(new m(-1,-1,-1));yl.DefaultMaxBounds=Object.freeze(new m(1,1,1));function Hge(e,t,n,i){let o=yl.DefaultMinBounds,r=yl.DefaultMaxBounds;if(m.equals(e,o)&&m.equals(t,r))i.center=B.getTranslation(n,i.center),i.halfAxes=B.getMatrix3(n,i.halfAxes);else{let a=B.getScale(n,HY),c=m.midpoint(e,t,Yft);i.center=B.multiplyByPoint(n,c,i.center),a=m.fromElements(a.x*.5*(t.x-e.x),a.y*.5*(t.y-e.y),a.z*.5*(t.z-e.z),HY);let u=B.getRotation(n,qft);i.halfAxes=Z.setScale(u,a,i.halfAxes)}return i}var Kp=yl;function c4(e){this._resource=e,this._metadataTable=void 0}Object.defineProperties(c4.prototype,{metadataTable:{get:function(){return this._metadataTable}}});c4.fromJson=async function(e,t,n,i){let o;l(t)?o={json:t,binary:void 0}:o=tdt(n);let r=await edt(e,o.json,o.binary),s={},a=o.json.bufferViews.length;for(let d=0;d<a;++d){let p=o.json.bufferViews[d],g=p.byteOffset,h=g+p.byteLength,x=r[p.buffer].subarray(g,h);s[d]=x}let c=o.json.voxelTable,u=o.json.propertyTables[c],f=new c4(e);return f._metadataTable=new Ul({count:u.count,properties:u.properties,class:i.classes[u.class],bufferViews:s}),f};function edt(e,t,n){let i=t.buffers.length,o=new Array(i);for(let r=0;r<i;r++){let s=t.buffers[r];if(l(s.uri)){let c=e.getDerivedResource({url:s.uri});o[r]=c.fetchArrayBuffer().then(function(u){return new Uint8Array(u)})}else o[r]=Promise.resolve(n)}return Promise.all(o)}function tdt(e){let n=new DataView(e.buffer,e.byteOffset),i=8,o=n.getUint32(i,!0);i+=8;let r=n.getUint32(i,!0);i+=8;let s=Po(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}var l4=c4;function Ur(){this.orientedBoundingBox=new Bn,this.boundingSphere=new ae,this.boundTransform=new B,this.shapeTransform=new B,this._minimumRadius=Ur.DefaultMinBounds.x,this._maximumRadius=Ur.DefaultMaxBounds.x,this._minimumHeight=Ur.DefaultMinBounds.y,this._maximumHeight=Ur.DefaultMaxBounds.y,this._minimumAngle=Ur.DefaultMinBounds.z,this._maximumAngle=Ur.DefaultMaxBounds.z,this.shaderUniforms={cylinderUvToRenderBoundsScale:new m,cylinderUvToRenderBoundsTranslate:new m,cylinderUvToRenderRadiusMin:0,cylinderRenderAngleMinMax:new H,cylinderUvToShapeUvRadius:new H,cylinderUvToShapeUvHeight:new H,cylinderUvToShapeUvAngle:new H,cylinderShapeUvAngleMinMax:new H,cylinderShapeUvAngleRangeZeroMid:0},this.shaderDefines={CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MAX:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MIN:void 0,CYLINDER_INTERSECTION_INDEX_ANGLE:void 0},this.shaderMaximumIntersectionsLength=0}var Wge=new m,ndt=new m,idt=new m,odt=new Z,rdt=new B,sdt=new B,adt=B.fromRotationTranslation(Z.fromUniformScale(2,new Z),new m(-1,-1,-1),new B);Ur.prototype.update=function(e,t,n,i,o){i=y(i,Ur.DefaultMinBounds),o=y(o,Ur.DefaultMaxBounds);let r=Ur.DefaultMinBounds.x,s=Ur.DefaultMaxBounds.x,a=Ur.DefaultMinBounds.y,c=Ur.DefaultMaxBounds.y,u=Ur.DefaultMinBounds.z,f=Ur.DefaultMaxBounds.z,d=f-u,p=.5*d,g=P.EPSILON10,h=P.EPSILON3,A=P.EPSILON10,x=P.clamp(t.x,r,s),C=P.clamp(n.x,r,s),T=P.clamp(i.x,r,s),E=P.clamp(o.x,r,s),S=Math.max(x,T),v=Math.min(C,E),D=P.clamp(t.y,a,c),O=P.clamp(n.y,a,c),M=P.clamp(i.y,a,c),L=P.clamp(o.y,a,c),N=Math.max(D,M),_=Math.min(O,L),b=P.negativePiToPi(t.z),w=P.negativePiToPi(n.z),I=P.negativePiToPi(i.z),R=P.negativePiToPi(o.z),F=Math.max(b,I),k=Math.min(w,R),V=B.getScale(e,Wge);if(v===0||S>v||N>_||P.equalsEpsilon(V.x,0,void 0,g)||P.equalsEpsilon(V.y,0,void 0,g)||P.equalsEpsilon(V.z,0,void 0,g))return!1;this._minimumRadius=x,this._maximumRadius=C,this._minimumHeight=D,this._maximumHeight=O,this._minimumAngle=b,this._maximumAngle=w,this.shapeTransform=B.clone(e,this.shapeTransform),this.orientedBoundingBox=WY(S,v,N,_,F,k,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=B.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ae.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let q=x===r&&C===s,Y=D===a&&O===c,Q=w<b,W=w-b+Q*d,K=W>p+A&&W<d-A,J=W>A&&W<p-A,_e=W>=p-A&&W<=p+A,xe=W<=A,se=K||J||_e||xe,Ae=P.equalsEpsilon(b,u,void 0,h),me=P.equalsEpsilon(w,f,void 0,h),Se=v===s,Ie=S===r,Ue=N===a&&_===c,Re=k<F,ke=k-F+Re*d,ft=ke>p+A&&ke<d-A,pt=ke>A&&ke<p-A,rt=ke>=p-A&&ke<=p+A,un=ke<=A,Mn=ft||pt||rt||un,Wt=this.shaderUniforms,Ze=this.shaderDefines;for(let Ee in Ze)Ze.hasOwnProperty(Ee)&&(Ze[Ee]=void 0);let pe=0;if(Ze.CYLINDER_INTERSECTION_INDEX_RADIUS_MAX=pe,pe+=1,Ie||(Ze.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN=!0,Ze.CYLINDER_INTERSECTION_INDEX_RADIUS_MIN=pe,pe+=1,Wt.cylinderUvToRenderRadiusMin=v/S),Se||(Ze.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX=!0),S===v&&(Ze.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT=!0),Ue||(Ze.CYLINDER_HAS_RENDER_BOUNDS_HEIGHT=!0),N===_&&(Ze.CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT=!0),D===O&&(Ze.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT=!0),x===C&&(Ze.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT=!0),!q){Ze.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS=!0;let Ee=1/(C-x),je=x/(x-C);Wt.cylinderUvToShapeUvRadius=H.fromElements(Ee,je,Wt.cylinderUvToShapeUvRadius)}if(!Y){Ze.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT=!0;let Ee=2/(O-D),je=(D+1)/(D-O);Wt.cylinderUvToShapeUvHeight=H.fromElements(Ee,je,Wt.cylinderUvToShapeUvHeight)}if(!Se||!Ue){let Ee=.5*(_-N),je=m.fromElements(1/v,1/v,1/(Ee===0?1:Ee),idt),fi=m.fromElements(0,0,-je.z*.5*(N+_),ndt),hi=B.fromRotationTranslation(Z.fromScale(je,odt),fi,rdt),Jo=B.multiplyTransformation(hi,adt,sdt);Wt.cylinderUvToRenderBoundsScale=B.getScale(Jo,Wt.cylinderUvToRenderBoundsScale),Wt.cylinderUvToRenderBoundsTranslate=B.getTranslation(Jo,Wt.cylinderUvToRenderBoundsTranslate)}if(Q&&(Ze.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED=!0),Mn&&(Ze.CYLINDER_HAS_RENDER_BOUNDS_ANGLE=!0,Ze.CYLINDER_INTERSECTION_INDEX_ANGLE=pe,ft?(Ze.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF=!0,pe+=1):pt?(Ze.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF=!0,pe+=2):rt?(Ze.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF=!0,pe+=1):un&&(Ze.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0,pe+=2),Wt.cylinderRenderAngleMinMax=H.fromElements(F,k,Wt.cylinderAngleMinMax)),se){Ze.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE=!0,xe&&(Ze.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0),Ae&&(Ze.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY=!0),me&&(Ze.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY=!0);let Ee=(b-u)/d,je=(w-u)/d,fi=1-W/d;Wt.cylinderShapeUvAngleMinMax=H.fromElements(Ee,je,Wt.cylinderShapeUvAngleMinMax),Wt.cylinderShapeUvAngleRangeZeroMid=(je+.5*fi)%1;let hi=d/W,Jo=-(b-u)/W;Wt.cylinderUvToShapeUvAngle=H.fromElements(hi,Jo,Wt.cylinderUvToShapeUvAngle)}return this.shaderMaximumIntersectionsLength=pe,!0};Ur.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minimumRadius,s=this._maximumRadius,a=this._minimumHeight,c=this._maximumHeight,u=this._minimumAngle,f=this._maximumAngle,d=1/Math.pow(2,e),p=P.lerp(r,s,t*d),g=P.lerp(r,s,(t+1)*d),h=P.lerp(a,c,n*d),A=P.lerp(a,c,(n+1)*d),x=P.lerp(u,f,i*d),C=P.lerp(u,f,(i+1)*d);return WY(p,g,h,A,x,C,this.shapeTransform,o)};var cdt=new Bn,ldt=new m,udt=new m,fdt=new m;Ur.prototype.computeApproximateStepSize=function(e){let t=this.shapeTransform,n=this._minimumRadius,i=this._maximumRadius,o=this._minimumHeight,r=this._maximumHeight,s=this._minimumAngle,a=this._maximumAngle,c=1-1/e.x,u=1-1/e.y,f=1-1/e.z,d=P.lerp(n,i,c),p=P.lerp(o,r,u),g=P.lerp(s,a,f),C=WY(d,i,p,r,g,a,t,cdt),T=Z.getScale(C.halfAxes,ldt),E=B.getScale(t,udt),S=m.divideComponents(T,E,fdt);return m.minimumComponent(S)};Ur.DefaultMinBounds=Object.freeze(new m(0,-1,-P.PI));Ur.DefaultMaxBounds=Object.freeze(new m(1,1,+P.PI));var ddt=5,mdt=new Array(ddt),hdt=new m,pdt=new Z,_dt=new B,gdt=new B,ydt=new B,GY=new B,Adt=new m,xdt=new m,Cdt=new m,jge=new Array(8);for(let e=0;e<8;e++)jge[e]=new m;function Gge(e,t,n){return Math.abs(re.dot(e,t))<n}function Tdt(e){let t=B.getColumn(e,0,Adt),n=B.getColumn(e,1,xdt),i=B.getColumn(e,2,Cdt),o=P.EPSILON4;return Gge(t,n,o)&&Gge(n,i,o)}function Edt(e,t){let n=jge;m.fromElements(-.5,-.5,-.5,n[0]),m.fromElements(-.5,-.5,.5,n[1]),m.fromElements(-.5,.5,-.5,n[2]),m.fromElements(-.5,.5,.5,n[3]),m.fromElements(.5,-.5,-.5,n[4]),m.fromElements(.5,-.5,.5,n[5]),m.fromElements(.5,.5,-.5,n[6]),m.fromElements(.5,.5,.5,n[7]);for(let i=0;i<8;++i)B.multiplyByPoint(e,n[i],n[i]);return Bn.fromPoints(n,t)}function WY(e,t,n,i,o,r,s,a){let c=Ur.DefaultMinBounds,u=Ur.DefaultMaxBounds,f=c.x,d=u.x,p=c.y,g=u.y,h=c.z,A=u.z;if(e===f&&t===d&&n===p&&i===g&&o===h&&r===A)return a.center=B.getTranslation(s,a.center),a.halfAxes=B.getMatrix3(s,a.halfAxes),a;r<o&&(r+=P.TWO_PI);let C=r-o,T=o+C*.5,E=mdt,S=0;E[S++]=o,E[S++]=r,E[S++]=T,C>P.PI&&(E[S++]=T-P.PI_OVER_TWO,E[S++]=T+P.PI_OVER_TWO);let v=1,D=1,O=-1,M=-1;for(let Q=0;Q<S;++Q){let W=E[Q]-T,K=Math.cos(W),J=Math.sin(W),_e=K*e,xe=J*e,se=K*t,Ae=J*t;v=Math.min(v,_e),D=Math.min(D,xe),v=Math.min(v,se),D=Math.min(D,Ae),O=Math.max(O,_e),M=Math.max(M,xe),O=Math.max(O,se),M=Math.max(M,Ae)}let L=O-v,N=M-D,_=i-n,b=(v+O)*.5,w=(D+M)*.5,I=(n+i)*.5,R=m.fromElements(b,w,I,hdt),F=Z.fromRotationZ(T,pdt),k=m.fromElements(L,N,_,Wge),V=B.fromScale(k,ydt),G=B.fromRotation(F,gdt),U=B.fromTranslation(R,_dt),q=B.multiplyTransformation(G,B.multiplyTransformation(U,V,GY),GY),Y=B.multiplyTransformation(s,q,GY);return Tdt(Y)?Bn.fromTransformation(Y,a):Edt(Y,a)}var Jp=Ur;function Al(){this.orientedBoundingBox=new Bn,this.boundingSphere=new ae,this.boundTransform=new B,this.shapeTransform=new B,this._rectangle=new le,this._minimumHeight=Al.DefaultMinBounds.z,this._maximumHeight=Al.DefaultMaxBounds.z,this._ellipsoid=new oe,this._translation=new m,this._rotation=new Z,this.shaderUniforms={ellipsoidRadiiUv:new m,ellipsoidInverseRadiiSquaredUv:new m,ellipsoidRenderLongitudeMinMax:new H,ellipsoidShapeUvLongitudeMinMaxMid:new m,ellipsoidUvToShapeUvLongitude:new H,ellipsoidUvToShapeUvLatitude:new H,ellipsoidRenderLatitudeCosSqrHalfMinMax:new H,ellipsoidInverseHeightDifferenceUv:0,ellipseInnerRadiiUv:new H,ellipsoidInverseInnerScaleUv:0,ellipsoidInverseOuterScaleUv:0},this.shaderDefines={ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT:void 0,ELLIPSOID_IS_SPHERE:void 0,ELLIPSOID_INTERSECTION_INDEX_LONGITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN:void 0},this.shaderMaximumIntersectionsLength=0}var bdt=new m,Sdt=new Z,Yge=new m,qge=new m,Xge=new m,Kge=new m,wdt=new le;Al.prototype.update=function(e,t,n,i,o){i=y(i,Al.DefaultMinBounds),o=y(o,Al.DefaultMaxBounds);let r=Al.DefaultMinBounds.x,s=Al.DefaultMaxBounds.x,a=s-r,c=.5*a,u=Al.DefaultMinBounds.y,f=Al.DefaultMaxBounds.y,d=f-u,p=P.EPSILON10,g=P.EPSILON3,h=P.EPSILON10,A=P.EPSILON10,x=P.EPSILON3,C=P.clamp(t.x,r,s),T=P.clamp(n.x,r,s),E=P.clamp(i.x,r,s),S=P.clamp(o.x,r,s),v=Math.max(C,E),D=Math.min(T,S),O=P.clamp(t.y,u,f),M=P.clamp(n.y,u,f),L=P.clamp(i.y,u,f),N=P.clamp(o.y,u,f),_=Math.max(O,L),b=Math.min(M,N),w=B.getScale(e,bdt),I=w.x===w.y&&w.y===w.z,R=m.minimumComponent(w),F=Math.max(t.z,-R),k=Math.max(n.z,-R),V=Math.max(i.z,-R),G=Math.max(o.z,-R),U=Math.max(F,V),q=Math.min(k,G),Y=m.add(w,m.fromElements(F,F,F,qge),qge),Q=m.add(w,m.fromElements(k,k,k,Yge),Yge),W=m.maximumComponent(Q),K=m.add(w,m.fromElements(U,U,U,Kge),Kge),J=m.add(w,m.fromElements(q,q,q,Xge),Xge);if(_>b||_===f||b===u||U>q||P.equalsEpsilon(J,m.ZERO,void 0,p))return!1;this._rectangle=le.fromRadians(C,O,T,M),this._translation=B.getTranslation(e,this._translation),this._rotation=B.getRotation(e,this._rotation),this._ellipsoid=oe.fromCartesian3(w,this._ellipsoid),this._minimumHeight=F,this._maximumHeight=k;let _e=le.fromRadians(v,_,D,b,wdt);this.orientedBoundingBox=Jge(_e,U,q,this._ellipsoid,this._translation,this._rotation,this.orientedBoundingBox),this.shapeTransform=B.fromRotationTranslation(Z.setScale(this._rotation,Q,Sdt),this._translation,this.shapeTransform),this.boundTransform=B.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ae.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let xe=D<v,se=D-v+xe*a,Ae=se<=h,me=se>c+h&&se<a-h,Se=se>=c-h&&se<=c+h,Ie=se>h&&se<c-h,Ue=Ae||me||Se||Ie,Re=T<C,ke=T-C+Re*a,ft=ke<=h,pt=ke>c+h&&ke<a-h,rt=ke>=c-h&&ke<=c+h,un=ke>h&&ke<c-h,Mn=ft||pt||rt||un,Wt=b<-x,Ze=b>=-x&&b<=+x,pe=b>+x&&b<f-A,Ee=Wt||Ze||pe,je=_>u+A&&_<-x,fi=_>=-x&&_<=+x,hi=_>+x,Jo=je||fi||hi,vs=Ee||Jo,Ds=M-O,vr=M<-x,vo=M>=-x&&M<=+x,Be=M>+x&&M<f-A,st=vr||vo||Be,Qe=O>u+A&&O<-x,$e=O>=-x&&O<=+x,_t=O>+x,on=st||(Qe||$e||_t),Yi=!m.equals(K,m.ZERO),fo=!m.equals(J,m.ZERO),Jr=Yi||fo,Zr=q-U,rr=!m.equals(Y,m.ZERO),ki=!m.equals(Q,m.ZERO),kr=rr||ki,Nn=this.shaderUniforms,cn=this.shaderDefines;for(let gn in cn)cn.hasOwnProperty(gn)&&(cn[gn]=void 0);Nn.ellipsoidRadiiUv=m.divideByScalar(Q,W,Nn.ellipsoidRadiiUv),Nn.ellipsoidInverseRadiiSquaredUv=m.divideComponents(m.ONE,m.multiplyComponents(Nn.ellipsoidRadiiUv,Nn.ellipsoidRadiiUv,Nn.ellipsoidInverseRadiiSquaredUv),Nn.ellipsoidInverseRadiiSquaredUv);let Gn=0;if(cn.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX=Gn,Gn+=1,Jr&&(Zr===0&&(cn.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT=!0),Yi&&(cn.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN=!0,cn.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN=Gn,Gn+=1,Nn.ellipsoidInverseInnerScaleUv=W/(W-(k-U))),fo&&(cn.ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX=!0,Nn.ellipsoidInverseOuterScaleUv=W/(W-(k-q)))),kr){if(rr){cn.ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN=!0;let gn=(k-F)/W;Nn.ellipsoidInverseHeightDifferenceUv=1/gn,Nn.ellipseInnerRadiiUv=H.fromElements(Nn.ellipsoidRadiiUv.x*(1-gn),Nn.ellipsoidRadiiUv.z*(1-gn),Nn.ellipseInnerRadiiUv)}F===k&&(cn.ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT=!0)}if(Ue&&(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE=!0,cn.ELLIPSOID_INTERSECTION_INDEX_LONGITUDE=Gn,me?(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF=!0,Gn+=1):Ie?(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF=!0,Gn+=2):Se?(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF=!0,Gn+=1):Ae&&(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO=!0,Gn+=2),Nn.ellipsoidRenderLongitudeMinMax=H.fromElements(v,D,Nn.ellipsoidRenderLongitudeMinMax)),Mn){cn.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE=!0,T<C&&(cn.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED=!0);let Ca=a/ke,Wn=-(C-r)/ke;Nn.ellipsoidUvToShapeUvLongitude=H.fromElements(Ca,Wn,Nn.ellipsoidUvToShapeUvLongitude)}if(Ue){let gn=P.equalsEpsilon(v,r,void 0,g),Ca=P.equalsEpsilon(D,s,void 0,g);gn&&(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY=!0),Ca&&(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY=!0);let Wn=(C-r)/a,Dr=(T-r)/a,vf=(D-r)/a,sr=1-se/a,Ta=(vf+.5*sr)%1;Nn.ellipsoidShapeUvLongitudeMinMaxMid=m.fromElements(Wn,Dr,Ta,Nn.ellipsoidShapeUvLongitudeMinMaxMid)}if(vs){cn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE=!0,Jo&&(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN=!0,cn.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN=Gn,je?(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF=!0,Gn+=1):fi?(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF=!0,Gn+=1):hi&&(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF=!0,Gn+=2)),Ee&&(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX=!0,cn.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX=Gn,Wt?(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF=!0,Gn+=2):Ze?(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF=!0,Gn+=1):pe&&(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF=!0,Gn+=1)),_===b&&(cn.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO=!0);let gn=Math.pow(Math.cos(P.PI_OVER_TWO-Math.abs(_)),2),Ca=Math.pow(Math.cos(P.PI_OVER_TWO-Math.abs(b)),2);Nn.ellipsoidRenderLatitudeCosSqrHalfMinMax=H.fromElements(gn,Ca,Nn.ellipsoidRenderLatitudeCosSqrHalfMinMax)}if(on){cn.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE=!0,O===M&&(cn.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO=!0);let gn=d/Ds,Ca=(u-O)/Ds;Nn.ellipsoidUvToShapeUvLatitude=H.fromElements(gn,Ca,Nn.ellipsoidUvToShapeUvLatitude)}return I&&(cn.ELLIPSOID_IS_SPHERE=!0),this.shaderMaximumIntersectionsLength=Gn,!0};var vdt=new le;Al.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=1/Math.pow(2,e),s=t*r,a=(t+1)*r,c=n*r,u=(n+1)*r,f=i*r,d=(i+1)*r,p=le.subsection(this._rectangle,s,c,a,u,vdt),g=P.lerp(this._minimumHeight,this._maximumHeight,f),h=P.lerp(this._minimumHeight,this._maximumHeight,d);return Jge(p,g,h,this._ellipsoid,this._translation,this._rotation,o)};Al.prototype.computeApproximateStepSize=function(e){let n=this._ellipsoid.maximumRadius,i=this._minimumHeight,o=this._maximumHeight;return .5*((o-i)/(n+o))/e.z};function Jge(e,t,n,i,o,r,s){return s=Bn.fromRectangle(e,t,n,i,s),s.center=m.add(s.center,o,s.center),s.halfAxes=Z.multiply(s.halfAxes,r,s.halfAxes),s}Al.DefaultMinBounds=Object.freeze(new m(-P.PI,-P.PI_OVER_TWO,-Number.MAX_VALUE));Al.DefaultMaxBounds=Object.freeze(new m(+P.PI,+P.PI_OVER_TWO,+Number.MAX_VALUE));var db=Al;var pu={BOX:"BOX",ELLIPSOID:"ELLIPSOID",CYLINDER:"CYLINDER"};pu.getMinBounds=function(e){switch(e){case pu.BOX:return Kp.DefaultMinBounds;case pu.ELLIPSOID:return db.DefaultMinBounds;case pu.CYLINDER:return Jp.DefaultMinBounds}};pu.getMaxBounds=function(e){switch(e){case pu.BOX:return Kp.DefaultMaxBounds;case pu.ELLIPSOID:return db.DefaultMaxBounds;case pu.CYLINDER:return Jp.DefaultMaxBounds}};pu.getShapeConstructor=function(e){switch(e){case pu.BOX:return Kp;case pu.ELLIPSOID:return db;case pu.CYLINDER:return Jp}};var ji=Object.freeze(pu);function rI(e){e=y(e,y.EMPTY_OBJECT),this._ready=!1,this.shapeTransform=void 0,this.globalTransform=void 0,this.shape=void 0,this.minBounds=void 0,this.maxBounds=void 0,this.dimensions=void 0,this.paddingBefore=void 0,this.paddingAfter=void 0,this.names=void 0,this.types=void 0,this.componentTypes=void 0,this.minimumValues=void 0,this.maximumValues=void 0,this.maximumTileCount=void 0,this._implicitTileset=void 0,this._subtreeCache=new a4;let t=this,n;l(e.url)&&($("Cesium3DTilesVoxelProvider options.url","Cesium3DTilesVoxelProvider constructor parameter options.url was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead."),this._readyPromise=Promise.resolve(e.url).then(function(i){let o=we.createIfNeeded(i);return o.fetchJson().then(function(r){return n=r,$ge(n),tye(n,o).load()}).then(function(r){let s=n.root,a=s.content.extensions["3DTILES_content_voxels"],c=a.class,u=ni(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,f=r.schema,d=new K0({metadataJson:u,schema:f});nye(t,d,c);let p=new Z0(o,s,f),{shape:g,minBounds:h,maxBounds:A,shapeTransform:x,globalTransform:C}=eye(s);t.shape=g,t.minBounds=h,t.maxBounds=A,t.dimensions=m.unpack(a.dimensions),t.shapeTransform=x,t.globalTransform=C,t.maximumTileCount=Qge(d);let T,E;return l(a.padding)&&(T=m.unpack(a.padding.before),E=m.unpack(a.padding.after)),t.paddingBefore=T,t.paddingAfter=E,t._implicitTileset=p,Fi.unload(r),t._ready=!0,t})}))}Object.defineProperties(rI.prototype,{readyPromise:{get:function(){return $("Cesium3DTilesVoxelProvider.readyPromise","Cesium3DTilesVoxelProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead."),this._readyPromise}},ready:{get:function(){return $("Cesium3DTilesVoxelProvider.ready","Cesium3DTilesVoxelProvider.ready was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use Cesium3DTilesVoxelProvider.fromUrl instead."),this._ready}}});rI.fromUrl=async function(e){let t=we.createIfNeeded(e),n=await t.fetchJson();$ge(n);let i=tye(n,t);await i.load();let o=n.root,r=o.content.extensions["3DTILES_content_voxels"],s=r.class,a=ni(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,c=i.schema,u=new K0({metadataJson:a,schema:c}),f=new rI;nye(f,u,s);let d=new Z0(t,o,c),{shape:p,minBounds:g,maxBounds:h,shapeTransform:A,globalTransform:x}=eye(o);f.shape=p,f.minBounds=g,f.maxBounds=h,f.dimensions=m.unpack(r.dimensions),f.shapeTransform=A,f.globalTransform=x,f.maximumTileCount=Qge(u);let C,T;return l(r.padding)&&(C=m.unpack(r.padding.before),T=m.unpack(r.padding.after)),f.paddingBefore=C,f.paddingAfter=T,f._implicitTileset=d,Fi.unload(i),f._ready=!0,f._readyPromise=Promise.resolve(f),f};function Qge(e){if(l(e.tileset))return e.tileset.getPropertyBySemantic(LC.TILESET_TILE_COUNT)}function $ge(e){let t=e.root;if(!l(t.content))throw new de("Root must have content");if(!ni(t.content,"3DTILES_content_voxels"))throw new de("Root tile content must have 3DTILES_content_voxels extension");if(!ni(t,"3DTILES_implicit_tiling")&&!l(t.implicitTiling))throw new de("Root tile must have implicit tiling");if(!l(e.schema)&&!l(e.schemaUri)&&!ni(e,"3DTILES_metadata"))throw new de("Tileset must have a metadata schema")}function eye(e){let t=e.boundingVolume,n;if(l(e.transform)?n=B.unpack(e.transform):n=B.clone(B.IDENTITY),l(t.box))return Idt(t.box,n);if(l(t.region))return Ddt(t.region);if(ni(t,"3DTILES_bounding_volume_cylinder"))return Pdt(t.extensions["3DTILES_bounding_volume_cylinder"].cylinder,n);throw new de("Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider")}function Ddt(e){let t=e[0],n=e[1],i=e[2],o=e[3],r=e[4],s=e[5],a=B.fromScale(oe.WGS84.radii),c=t,u=i,f=n,d=o,p=r,g=s,h=new m(c,f,p),A=new m(u,d,g);return{shape:ji.ELLIPSOID,minBounds:h,maxBounds:A,shapeTransform:a,globalTransform:B.clone(B.IDENTITY)}}function Idt(e,t){let n=Bn.unpack(e),i=B.fromRotationTranslation(n.halfAxes,n.center);return{shape:ji.BOX,minBounds:m.clone(Kp.DefaultMinBounds),maxBounds:m.clone(Kp.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function Pdt(e,t){let n=Bn.unpack(e),i=B.fromRotationTranslation(n.halfAxes,n.center);return{shape:ji.CYLINDER,minBounds:m.clone(Jp.DefaultMinBounds),maxBounds:m.clone(Jp.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function tye(e,t){let{schemaUri:n,schema:i}=e;return l(n)?Fi.getSchemaLoader({resource:t.getDerivedResource({url:n})}):Fi.getSchemaLoader({schema:i})}function nye(e,t,n){let{schema:i,statistics:o}=t,r=o?.classes[n],s=i.classes[n].properties,a=Object.entries(s).map(([d,p])=>{let{type:g,componentType:h}=p,A=r?.properties[d].min,x=r?.properties[d].max,C=jt.getComponentCount(g),T=Zge(A,C),E=Zge(x,C);return{id:d,type:g,componentType:h,minValue:T,maxValue:E}});e.names=a.map(d=>d.id),e.types=a.map(d=>d.type),e.componentTypes=a.map(d=>d.componentType);let c=a.map(d=>d.minValue),u=a.map(d=>d.maxValue),f=c.some(l);e.minimumValues=f?c:void 0,e.maximumValues=f?u:void 0}function Zge(e,t){if(!l(e))return;let n=Array.isArray(e)?e:[e];return Array.from({length:t},(i,o)=>n[o])}async function Odt(e,t){let n=e.contentUriTemplates[0].getDerivedResource({templateValues:t.getTemplateValues()}),i=e.baseResource.getDerivedResource({url:n.url}),o=await i.fetchArrayBuffer(),r=gp(o);return await l4.fromJson(i,r.jsonPayload,r.binaryPayload,e.metadataSchema)}async function Mdt(e,t){let n=e._implicitTileset,i=e._subtreeCache,o=i.find(t);if(l(o))return o;let r=n.subtreeUriTemplate.getDerivedResource({templateValues:t.getTemplateValues()}),s=n.baseResource.getDerivedResource({url:r.url}),a=await s.fetchArrayBuffer();if(o=i.find(t),l(o))return o;let c=gp(a);return o=await BC.fromSubtreeJson(s,c.jsonPayload,c.binaryPayload,n,t),i.addSubtree(o),o}rI.prototype.requestData=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.tileLevel,0),n=y(e.tileX,0),i=y(e.tileY,0),o=y(e.tileZ,0);if(y(e.keyframe,0)!==0)return;let s=this._implicitTileset,a=this.names,c=new vT({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:t,x:n,y:i,z:o}),u=c.isSubtreeRoot()&&c.level>0,f=u?c.getParentSubtreeCoordinates():c.getSubtreeCoordinates();return Mdt(this,f).then(function(p){return(u?p.childSubtreeIsAvailableAtCoordinates(c):p.tileIsAvailableAtCoordinates(c))?Odt(s,c):Promise.reject("Tile is not available")}).then(function(p){return a.map(function(g){return p.metadataTable.getPropertyTypedArray(g)})})};var iye=rI;function jY(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(jY.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});jY.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,this._radius),i=n*Math.cos(t),o=n*Math.sin(t),r=0;e.position=m.fromElements(i,o,r,e.position),e.velocity=m.clone(m.UNIT_Z,e.velocity)};var u4=jY;var YY={CUMULUS:0};YY.validate=function(e){return e===YY.CUMULUS};var sI=Object.freeze(YY);function Hd(e,t){if(e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._position=m.clone(y(e.position,m.ZERO)),!l(e.scale)&&l(e.maximumSize))this._maximumSize=m.clone(e.maximumSize),this._scale=new H(this._maximumSize.x,this._maximumSize.y);else{this._scale=H.clone(y(e.scale,new H(20,12)));let n=new m(this._scale.x,this._scale.y,Math.min(this._scale.x,this._scale.y)/1.5);this._maximumSize=m.clone(y(e.maximumSize,n))}this._slice=y(e.slice,-1),this._color=z.clone(y(e.color,z.WHITE)),this._brightness=y(e.brightness,1),this._cloudCollection=t,this._index=-1}var Rdt=Hd.SHOW_INDEX=0,Bdt=Hd.POSITION_INDEX=1,Ldt=Hd.SCALE_INDEX=2,Ndt=Hd.MAXIMUM_SIZE_INDEX=3,Fdt=Hd.SLICE_INDEX=4,Udt=Hd.BRIGHTNESS_INDEX=5,Vdt=Hd.COLOR_INDEX=6;Hd.NUMBER_OF_PROPERTIES=7;function qA(e,t){let n=e._cloudCollection;l(n)&&(n._updateCloud(e,t),e._dirty=!0)}Object.defineProperties(Hd.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,qA(this,Rdt))}},position:{get:function(){return this._position},set:function(e){let t=this._position;m.equals(t,e)||(m.clone(e,t),qA(this,Bdt))}},scale:{get:function(){return this._scale},set:function(e){let t=this._scale;H.equals(t,e)||(H.clone(e,t),qA(this,Ldt))}},maximumSize:{get:function(){return this._maximumSize},set:function(e){let t=this._maximumSize;m.equals(t,e)||(m.clone(e,t),qA(this,Ndt))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),qA(this,Vdt))}},slice:{get:function(){return this._slice},set:function(e){this._slice!==e&&(this._slice=e,qA(this,Fdt))}},brightness:{get:function(){return this._brightness},set:function(e){this._brightness!==e&&(this._brightness=e,qA(this,Udt))}}});Hd.prototype._destroy=function(){this._cloudCollection=void 0};var Af=Hd;var _u,f4=new m,kdt={positionHighAndScaleX:0,positionLowAndScaleY:1,packedAttribute0:2,packedAttribute1:3,color:4},zdt={direction:0,positionHighAndScaleX:1,positionLowAndScaleY:2,packedAttribute0:3,packedAttribute1:4,color:5},Hdt=Af.SHOW_INDEX,Gdt=Af.POSITION_INDEX,Wdt=Af.SCALE_INDEX,jdt=Af.MAXIMUM_SIZE_INDEX,Ydt=Af.SLICE_INDEX,qdt=Af.BRIGHTNESS_INDEX,Xdt=Af.NUMBER_OF_PROPERTIES,Kdt=Af.COLOR_INDEX;function Gd(e){e=y(e,y.EMPTY_OBJECT),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(Xdt),this._noiseTexture=void 0,this._textureSliceWidth=128,this._noiseTextureRows=4,this.noiseDetail=y(e.noiseDetail,16),this.noiseOffset=m.clone(y(e.noiseOffset,m.ZERO)),this._loading=!1,this._ready=!1;let t=this;this._uniforms={u_noiseTexture:function(){return t._noiseTexture},u_noiseTextureDimensions:oye(t),u_noiseDetail:function(){return t.noiseDetail}},this._vaNoise=void 0,this._spNoise=void 0,this._spCreated=!1,this._sp=void 0,this._rs=void 0,this.show=y(e.show,!0),this._colorCommands=[],this.debugBillboards=y(e.debugBillboards,!1),this._compiledDebugBillboards=!1,this.debugEllipsoids=y(e.debugEllipsoids,!1),this._compiledDebugEllipsoids=!1}function oye(e){return function(){return f4.x=e._textureSliceWidth,f4.y=e._noiseTextureRows,f4.z=1/e._noiseTextureRows,f4}}Object.defineProperties(Gd.prototype,{length:{get:function(){return XY(this),this._clouds.length}}});function rye(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Gd.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.cloudType,sI.CUMULUS),n;return t===sI.CUMULUS&&(n=new Af(e,this),n._index=this._clouds.length,this._clouds.push(n),this._createVertexArray=!0),n};Gd.prototype.remove=function(e){return this.contains(e)?(this._clouds[e._index]=void 0,this._cloudsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Gd.prototype.removeAll=function(){rye(this._clouds),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!0};function XY(e){if(e._cloudsRemoved){e._cloudsRemoved=!1;let t=[],n=e._clouds,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(n._index=r++,t.push(s))}e._clouds=t}}Gd.prototype._updateCloud=function(e,t){e._dirty||(this._cloudsToUpdate[this._cloudsToUpdateIndex++]=e),++this._propertiesChanged[t]};Gd.prototype.contains=function(e){return l(e)&&e._cloudCollection===this};Gd.prototype.get=function(e){return XY(this),this._clouds[e]};var Jdt=new Float32Array([-1,-1,1,-1,1,1,-1,1]),Zdt=new Uint16Array([0,1,2,0,2,3]);function Qdt(e){let t=mt.createVertexBuffer({context:e,typedArray:Jdt,usage:Fe.STATIC_DRAW}),n=mt.createIndexBuffer({context:e,typedArray:Zdt,usage:Fe.STATIC_DRAW,indexDatatype:Ve.UNSIGNED_SHORT}),i=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT}];return new ri({context:e,attributes:i,indexBuffer:n})}var KY;function $dt(e){let n=e.cache.cloudCollection_indexBufferBatched;if(l(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s,o[r+4]=s+2,o[r+5]=s+3;return n=mt.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:Ve.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferBatched=n,n}function emt(e){let t=e.cache.cloudCollection_indexBufferInstanced;return l(t)||(t=mt.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ve.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferInstanced=t),t}function tmt(e){let t=e.cache.cloudCollection_vertexBufferInstanced;return l(t)||(t=mt.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_vertexBufferInstanced=t),t}function nmt(e,t,n){let i=[{index:_u.positionHighAndScaleX,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:_u.positionLowAndScaleY,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:_u.packedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:_u.packedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:_u.color,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,usage:Fe.STATIC_DRAW}];n&&i.push({index:_u.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:tmt(e)});let o=n?t:4*t;return new p_(e,i,o,n)}var qY=new Yn;function sye(e,t,n,i){let o,r=n[_u.positionHighAndScaleX],s=n[_u.positionLowAndScaleY],a=i.position;Yn.fromCartesian(a,qY);let c=i.scale,u=qY.high,f=qY.low;e._instanced?(o=i._index,r(o,u.x,u.y,u.z,c.x),s(o,f.x,f.y,f.z,c.y)):(o=i._index*4,r(o+0,u.x,u.y,u.z,c.x),r(o+1,u.x,u.y,u.z,c.x),r(o+2,u.x,u.y,u.z,c.x),r(o+3,u.x,u.y,u.z,c.x),s(o+0,f.x,f.y,f.z,c.y),s(o+1,f.x,f.y,f.z,c.y),s(o+2,f.x,f.y,f.z,c.y),s(o+3,f.x,f.y,f.z,c.y))}function aye(e,t,n,i){let o,r=n[_u.packedAttribute0],s=i.show,a=i.brightness;e._instanced?(o=i._index,r(o,s,a,0,0)):(o=i._index*4,r(o+0,s,a,0,0),r(o+1,s,a,1,0),r(o+2,s,a,1,1),r(o+3,s,a,0,1))}function cye(e,t,n,i){let o,r=n[_u.packedAttribute1],s=i.maximumSize,a=i.slice;e._instanced?(o=i._index,r(o,s.x,s.y,s.z,a)):(o=i._index*4,r(o+0,s.x,s.y,s.z,a),r(o+1,s.x,s.y,s.z,a),r(o+2,s.x,s.y,s.z,a),r(o+3,s.x,s.y,s.z,a))}function lye(e,t,n,i){let o,r=n[_u.color],s=i.color,a=z.floatToByte(s.red),c=z.floatToByte(s.green),u=z.floatToByte(s.blue),f=z.floatToByte(s.alpha);e._instanced?(o=i._index,r(o,a,c,u,f)):(o=i._index*4,r(o+0,a,c,u,f),r(o+1,a,c,u,f),r(o+2,a,c,u,f),r(o+3,a,c,u,f))}function imt(e,t,n,i){sye(e,t,n,i),aye(e,t,n,i),cye(e,t,n,i),lye(e,t,n,i)}function omt(e,t,n,i){let o=e,r=o._textureSliceWidth,s=o._noiseTextureRows,a=t.context;o._vaNoise=Qdt(a),o._spNoise=Jt.fromCache({context:a,vertexShaderSource:n,fragmentShaderSource:i,attributeLocations:{position:0}});let c=o.noiseDetail,u=o.noiseOffset;o._noiseTexture=new Bt({context:a,width:r*r/s,height:r*s,pixelDatatype:Je.UNSIGNED_BYTE,pixelFormat:lt.RGBA,sampler:new dn({wrapS:Dn.REPEAT,wrapT:Dn.REPEAT,minificationFilter:ln.NEAREST,magnificationFilter:bi.NEAREST})});let f=new Pf({vertexArray:o._vaNoise,shaderProgram:o._spNoise,outputTexture:o._noiseTexture,uniformMap:{u_noiseTextureDimensions:oye(o),u_noiseDetail:function(){return c},u_noiseOffset:function(){return u}},persists:!1,owner:e,postExecute:function(d){o._ready=!0,o._loading=!1}});t.commandList.push(f),o._loading=!0}function rmt(e,t){let n=e,i=t.context;n._createVertexArray=!1,n._vaf=n._vaf&&n._vaf.destroy();let o=e._clouds,r=o.length;if(r>0){n._vaf=nmt(i,r,n._instanced);let s=n._vaf.writers,a;for(a=0;a<r;++a){let c=o[a];imt(e,t,s,c)}n._vaf.commit(KY(i))}}var smt=[];function amt(e,t){let n=t.context,i=e,r=i._clouds.length,s=i._cloudsToUpdate,a=i._cloudsToUpdateIndex,c=i._propertiesChanged,u=smt;u.length=0,(c[Gdt]||c[Wdt])&&u.push(sye),(c[Hdt]||c[qdt])&&u.push(aye),(c[jdt]||c[Ydt])&&u.push(cye),c[Kdt]&&u.push(lye);let f=u.length,d=i._vaf.writers,p,g,h;if(a/r>.1){for(p=0;p<a;++p)for(g=s[p],g._dirty=!1,h=0;h<f;++h)u[h](e,t,d,g);i._vaf.commit(KY(n))}else{for(p=0;p<a;++p){for(g=s[p],g._dirty=!1,h=0;h<f;++h)u[h](e,t,d,g);i._instanced?i._vaf.subCommit(g._index,1):i._vaf.subCommit(g._index*4,4)}i._vaf.endSubCommits()}i._cloudsToUpdateIndex=0}function cmt(e,t,n,i){let o=t.context,r=e,s=new He({defines:[],sources:[n]});r._instanced&&s.defines.push("INSTANCED");let a=new He({defines:[],sources:[i]});r.debugBillboards&&a.defines.push("DEBUG_BILLBOARDS"),r.debugEllipsoids&&a.defines.push("DEBUG_ELLIPSOIDS"),r._sp=Jt.replaceCache({context:o,shaderProgram:r._sp,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:_u}),r._rs=ze.fromCache({depthTest:{enabled:!0,func:te.LESS},depthMask:!1,blending:mn.ALPHA_BLEND}),r._spCreated=!0,r._compiledDebugBillboards=r.debugBillboards,r._compiledDebugEllipsoids=r.debugEllipsoids}function lmt(e,t){let n=e,i=t.passes,o=n._uniforms,r=t.commandList;if(i.render){let s=n._colorCommands,a=n._vaf.va,c=a.length;s.length=c;for(let u=0;u<c;u++){let f=s[u];l(f)||(f=s[u]=new it),f.pass=be.TRANSLUCENT,f.owner=e,f.uniformMap=o,f.count=a[u].indicesCount,f.vertexArray=a[u].va,f.shaderProgram=n._sp,f.renderState=n._rs,n._instanced&&(f.count=6,f.instanceCount=n._clouds.length),r.push(f)}}}Gd.prototype.update=function(e){if(XY(this),!this.show)return;let t=this.debugBillboards||this.debugEllipsoids;this._ready=t?!0:l(this._noiseTexture),!this._ready&&!this._loading&&!t&&omt(this,e,i4,n4),this._instanced=e.context.instancedArrays,_u=this._instanced?zdt:kdt,KY=this._instanced?emt:$dt;let i=this._clouds.length,o=this._cloudsToUpdate,r=this._cloudsToUpdateIndex;this._createVertexArray?rmt(this,e):r>0&&amt(this,e),r>i*1.5&&(o.length=i),!(!l(this._vaf)||!l(this._vaf.va)||!this._ready&!t)&&((!this._spCreated||this.debugBillboards!==this._compiledDebugBillboards||this.debugEllipsoids!==this._compiledDebugEllipsoids)&&cmt(this,e,t4,e4),lmt(this,e))};Gd.prototype.isDestroyed=function(){return!1};Gd.prototype.destroy=function(){return this._noiseTexture=this._noiseTexture&&this._noiseTexture.destroy(),this._sp=this._sp&&this._sp.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),rye(this._clouds),ue(this)};var uye=Gd;var umt=P.toRadians(30);function JY(e){this._angle=y(e,umt)}Object.defineProperties(JY.prototype,{angle:{get:function(){return this._angle},set:function(e){this._angle=e}}});JY.prototype.emit=function(e){let t=Math.tan(this._angle),n=P.randomBetween(0,P.TWO_PI),i=P.randomBetween(0,t),o=i*Math.cos(n),r=i*Math.sin(n),s=1;e.velocity=m.fromElements(o,r,s,e.velocity),m.normalize(e.velocity,e.velocity),e.position=m.clone(m.ZERO,e.position)};var fye=JY;function aI(e){e=y(e,y.EMPTY_OBJECT);let t=e.attributeName,n=e.perInstanceAttribute;l(n)||(n=!1);let i=y(e.glslDatatype,"vec3"),o=`v_${t}`,r;if(t==="normal"||t==="tangent"||t==="bitangent")r=`vec4 getColor() { return vec4((${o} + vec3(1.0)) * 0.5, 1.0); } +`;else switch(t==="st"&&(i="vec2"),i){case"float":r=`vec4 getColor() { return vec4(vec3(${o}), 1.0); } +`;break;case"vec2":r=`vec4 getColor() { return vec4(${o}, 0.0, 1.0); } +`;break;case"vec3":r=`vec4 getColor() { return vec4(${o}, 1.0); } +`;break;case"vec4":r=`vec4 getColor() { return ${o}; } +`;break}let s=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; +${n?"":`in ${i} ${t}; +`}out ${i} ${o}; +void main() +{ +vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow); +${n?`${o} = czm_batchTable_${t}(batchId); +`:`${o} = ${t}; +`}gl_Position = czm_modelViewProjectionRelativeToEye * p; +}`,a=`in ${i} ${o}; +${r} +void main() +{ +out_FragColor = getColor(); +}`;this.material=void 0,this.translucent=y(e.translucent,!1),this._vertexShaderSource=y(e.vertexShaderSource,s),this._fragmentShaderSource=y(e.fragmentShaderSource,a),this._renderState=to.getDefaultRenderState(!1,!1,e.renderState),this._closed=y(e.closed,!1),this._attributeName=t,this._glslDatatype=i}Object.defineProperties(aI.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},attributeName:{get:function(){return this._attributeName}},glslDatatype:{get:function(){return this._glslDatatype}}});aI.prototype.getFragmentShaderSource=to.prototype.getFragmentShaderSource;aI.prototype.isTranslucent=to.prototype.isTranslucent;aI.prototype.getRenderState=to.prototype.getRenderState;var dye=aI;function d4(e){e=y(e,y.EMPTY_OBJECT),this.length=y(e.length,1e7),this._length=void 0,this.width=y(e.width,2),this._width=void 0,this.show=y(e.show,!0),this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._modelMatrix=new B,this.id=e.id,this._id=void 0,this._primitive=void 0}d4.prototype.update=function(e){if(this.show){if(!l(this._primitive)||!B.equals(this._modelMatrix,this.modelMatrix)||this._length!==this.length||this._width!==this.width||this._id!==this.id){this._modelMatrix=B.clone(this.modelMatrix,this._modelMatrix),this._length=this.length,this._width=this.width,this._id=this.id,l(this._primitive)&&this._primitive.destroy(),this.modelMatrix[12]===0&&this.modelMatrix[13]===0&&this.modelMatrix[14]===0&&(this.modelMatrix[14]=.01);let t=new Tt({geometry:new zg({positions:[m.ZERO,m.UNIT_X],width:this.width,vertexFormat:Wr.VERTEX_FORMAT,colors:[z.RED,z.RED],arcType:Zt.NONE}),modelMatrix:B.multiplyByUniformScale(this.modelMatrix,this.length,new B),id:this.id,pickPrimitive:this}),n=new Tt({geometry:new zg({positions:[m.ZERO,m.UNIT_Y],width:this.width,vertexFormat:Wr.VERTEX_FORMAT,colors:[z.GREEN,z.GREEN],arcType:Zt.NONE}),modelMatrix:B.multiplyByUniformScale(this.modelMatrix,this.length,new B),id:this.id,pickPrimitive:this}),i=new Tt({geometry:new zg({positions:[m.ZERO,m.UNIT_Z],width:this.width,vertexFormat:Wr.VERTEX_FORMAT,colors:[z.BLUE,z.BLUE],arcType:Zt.NONE}),modelMatrix:B.multiplyByUniformScale(this.modelMatrix,this.length,new B),id:this.id,pickPrimitive:this});this._primitive=new wn({geometryInstances:[t,n,i],appearance:new Wr,asynchronous:!1})}this._primitive.update(e)}};d4.prototype.isDestroyed=function(){return!1};d4.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var m4=d4;function fmt(e){this.direction=m.clone(e.direction),this.color=z.clone(y(e.color,z.WHITE)),this.intensity=y(e.intensity,1)}var mye=fmt;var h4=`in vec3 v_positionMC; +in vec3 v_positionEC; +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0))); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + materialInput.s = v_st.s; + materialInput.st = v_st; + materialInput.str = vec3(v_st, 0.0); + + // Convert tangent space material normal to eye space + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC); + + // Convert view vector to world space + vec3 positionToEyeEC = -v_positionEC; + materialInput.positionToEyeEC = positionToEyeEC; + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var p4=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec2 st; +in float batchId; + +out vec3 v_positionMC; +out vec3 v_positionEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionMC = position3DHigh + position3DLow; // position in model coordinates + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function XA(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.aboveGround,!1);this.material=l(e.material)?e.material:Gi.fromType(Gi.ColorType),this.translucent=y(e.translucent,!0),this._vertexShaderSource=y(e.vertexShaderSource,p4),this._fragmentShaderSource=y(e.fragmentShaderSource,h4),this._renderState=to.getDefaultRenderState(t,!n,e.renderState),this._closed=!1,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,n),this._aboveGround=n}Object.defineProperties(XA.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return XA.VERTEX_FORMAT}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}},aboveGround:{get:function(){return this._aboveGround}}});XA.VERTEX_FORMAT=Pe.POSITION_AND_ST;XA.prototype.getFragmentShaderSource=to.prototype.getFragmentShaderSource;XA.prototype.isTranslucent=to.prototype.isTranslucent;XA.prototype.getRenderState=to.prototype.getRenderState;var hye=XA;function xl(e){this._scene=e.scene,this.samplingWindow=y(e.samplingWindow,xl.defaultSettings.samplingWindow),this.quietPeriod=y(e.quietPeriod,xl.defaultSettings.quietPeriod),this.warmupPeriod=y(e.warmupPeriod,xl.defaultSettings.warmupPeriod),this.minimumFrameRateDuringWarmup=y(e.minimumFrameRateDuringWarmup,xl.defaultSettings.minimumFrameRateDuringWarmup),this.minimumFrameRateAfterWarmup=y(e.minimumFrameRateAfterWarmup,xl.defaultSettings.minimumFrameRateAfterWarmup),this._lowFrameRate=new ge,this._nominalFrameRate=new ge,this._frameTimes=[],this._needsQuietPeriod=!0,this._quietPeriodEndTime=0,this._warmupPeriodEndTime=0,this._frameRateIsLow=!1,this._lastFramesPerSecond=void 0,this._pauseCount=0;let t=this;this._preUpdateRemoveListener=this._scene.preUpdate.addEventListener(function(o,r){dmt(t,r)}),this._hiddenPropertyName=document.hidden!==void 0?"hidden":document.mozHidden!==void 0?"mozHidden":document.msHidden!==void 0?"msHidden":document.webkitHidden!==void 0?"webkitHidden":void 0;let n=document.hidden!==void 0?"visibilitychange":document.mozHidden!==void 0?"mozvisibilitychange":document.msHidden!==void 0?"msvisibilitychange":document.webkitHidden!==void 0?"webkitvisibilitychange":void 0;function i(){mmt(t)}this._visibilityChangeRemoveListener=void 0,l(n)&&(document.addEventListener(n,i,!1),this._visibilityChangeRemoveListener=function(){document.removeEventListener(n,i,!1)})}xl.defaultSettings={samplingWindow:5,quietPeriod:2,warmupPeriod:5,minimumFrameRateDuringWarmup:4,minimumFrameRateAfterWarmup:8};xl.fromScene=function(e){return(!l(e._frameRateMonitor)||e._frameRateMonitor.isDestroyed())&&(e._frameRateMonitor=new xl({scene:e})),e._frameRateMonitor};Object.defineProperties(xl.prototype,{scene:{get:function(){return this._scene}},lowFrameRate:{get:function(){return this._lowFrameRate}},nominalFrameRate:{get:function(){return this._nominalFrameRate}},lastFramesPerSecond:{get:function(){return this._lastFramesPerSecond}}});xl.prototype.pause=function(){++this._pauseCount,this._pauseCount===1&&(this._frameTimes.length=0,this._lastFramesPerSecond=void 0)};xl.prototype.unpause=function(){--this._pauseCount,this._pauseCount<=0&&(this._pauseCount=0,this._needsQuietPeriod=!0)};xl.prototype.isDestroyed=function(){return!1};xl.prototype.destroy=function(){return this._preUpdateRemoveListener(),l(this._visibilityChangeRemoveListener)&&this._visibilityChangeRemoveListener(),ue(this)};function dmt(e,t){if(e._pauseCount>0)return;let n=Ci();if(e._needsQuietPeriod)e._needsQuietPeriod=!1,e._frameTimes.length=0,e._quietPeriodEndTime=n+e.quietPeriod/Zn.SECONDS_PER_MILLISECOND,e._warmupPeriodEndTime=e._quietPeriodEndTime+(e.warmupPeriod+e.samplingWindow)/Zn.SECONDS_PER_MILLISECOND;else if(n>=e._quietPeriodEndTime){e._frameTimes.push(n);let i=n-e.samplingWindow/Zn.SECONDS_PER_MILLISECOND;if(e._frameTimes.length>=2&&e._frameTimes[0]<=i){for(;e._frameTimes.length>=2&&e._frameTimes[1]<i;)e._frameTimes.shift();let o=(n-e._frameTimes[0])/(e._frameTimes.length-1);e._lastFramesPerSecond=1e3/o;let r=1e3/(n>e._warmupPeriodEndTime?e.minimumFrameRateAfterWarmup:e.minimumFrameRateDuringWarmup);o>r?e._frameRateIsLow||(e._frameRateIsLow=!0,e._needsQuietPeriod=!0,e.lowFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond)):e._frameRateIsLow&&(e._frameRateIsLow=!1,e._needsQuietPeriod=!0,e.nominalFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond))}}}function mmt(e){document[e._hiddenPropertyName]?e.pause():e.unpause()}var _4=xl;var hmt=1953029805,pmt=2917034100;function ZY(e,t){if(ZY.passThroughDataForTesting)return t;let n=e.byteLength;if(n===0||n%4!==0)throw new de("The length of key must be greater than 0 and a multiple of 4.");let i=new DataView(t),o=i.getUint32(0,!0);if(o===hmt||o===pmt)return t;let r=new DataView(e),s=0,a=t.byteLength,c=a-a%8,u=n,f,d=8;for(;s<c;)for(d=(d+8)%24,f=d;s<c&&f<u;)i.setUint32(s,i.getUint32(s,!0)^r.getUint32(f,!0),!0),i.setUint32(s+4,i.getUint32(s+4,!0)^r.getUint32(f+4,!0),!0),s+=8,f+=24;if(s<a)for(f>=u&&(d=(d+8)%24,f=d);s<a;)i.setUint8(s,i.getUint8(s)^r.getUint8(f)),s++,f++}ZY.passThroughDataForTesting=!1;var g4=ZY;var Cmt=ar(QY(),1);function _mt(e,t){return(e&t)!==0}var Rc=_mt;var gmt=[1,2,4,8],pye=15,ymt=16,Amt=64,xmt=128;function dh(e,t,n,i,o,r){this._bits=e,this.cnodeVersion=t,this.imageryVersion=n,this.terrainVersion=i,this.imageryProvider=o,this.terrainProvider=r,this.ancestorHasTerrain=!1,this.terrainState=void 0}dh.clone=function(e,t){return l(t)?(t._bits=e._bits,t.cnodeVersion=e.cnodeVersion,t.imageryVersion=e.imageryVersion,t.terrainVersion=e.terrainVersion,t.imageryProvider=e.imageryProvider,t.terrainProvider=e.terrainProvider):t=new dh(e._bits,e.cnodeVersion,e.imageryVersion,e.terrainVersion,e.imageryProvider,e.terrainProvider),t.ancestorHasTerrain=e.ancestorHasTerrain,t.terrainState=e.terrainState,t};dh.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()};dh.prototype.hasSubtree=function(){return Rc(this._bits,ymt)};dh.prototype.hasImagery=function(){return Rc(this._bits,Amt)};dh.prototype.hasTerrain=function(){return Rc(this._bits,xmt)};dh.prototype.hasChildren=function(){return Rc(this._bits,pye)};dh.prototype.hasChild=function(e){return Rc(this._bits,gmt[e])};dh.prototype.getChildBitmask=function(){return this._bits&pye};var y4=dh;function Tmt(e){let t=e.length,n=new ArrayBuffer(t),i=new Uint8Array(n);for(let o=0;o<t;++o)i[o]=e.charCodeAt(o);return n}var Emt=Tmt(`E\xF4\xBD\vy\xE2jE"\x92,\xCDq\xF8IFgQ\0B%\xC6\xE8a,f)\b\xC64\xDCjb%y +wmi\xD6\xF0\x9Ck\x93\xA1\xBDNu\xE0A[\xDF@V\f\xD9\xBBr\x9B\x81|3S\xEEOl\xD4q\xB0{\xC0\x7FEVZ\xADwUe\v3\x92*\xACl5\xC50s\xF83>mF8J\xB4\xDD\xF0.\xDDu\xDA\x8CDt"\xFAa"\f3"So\xAF9D\v\x8C9\xD99L\xB9\xBF\x7F\xAB\\\x8CP_\x9F"ux\xE9\x07q\x91h;\xC1\xC4\x9B\x7F\xF0<VqH\x82'UfYNe\x98u\xA3aF}a?A\0\x9F\xD7\xB44M\xCE\x87F\xB0\xD5\xB8\x8A'{\x8B\xDC+\xBBMg0\xC8\xD1\xF6\\\x8FP\xFA[/F\x9Bn5/'C.\xEB +\f^\xA5s\x1Be4\xE5l.jC'c#U\xA9?q{gC}:\xAF\xCD\xE2TU\x9C\xFDK\xC6\xE2\x9F/(\xED\xCB\\\xC6-f\x07\x88\xA7;/*"N\xB0k.\xDD\r\x95}}G\xBAC\xB2\xB2+>M\xAA>}\xE6\xCEI\x89\xC6\xE6x\fa1-\xA4O\xA5~q \x88\xEC\r1\xE8N\v\0nPh}=\b\r\x95\xA6n\xA3h\x97$[k\xF3#\xF3\xB6s\xB3\r\v@\xC0\x9F\xD8Q]\xFA".j\xDFI\0\xB9\xA0wU\xC6\xEFj\xBF{GL\x7F\x83\xEE\xDC\xDCF\x85\xA9\xADS\x07+S4\x07\xFF\x94Y\xE48\xE81\x83N\xB9XFk\xCB-#\x86\x92p\x005\x88"\xCF1\xB2&/\xE7\xC3u-6,rt\xB0#G\xB7\xD3\xD1&\x857r\xE2\0\x8CD\xCF\xDA3-\xDE\`\x86i#i*|\xCDKQ\r\x95T9w.)\xEA\x1B\xA6P\xA2j\x8FoP\x99\\>T\xFB\xEFP[\v\x07E\x89m(w7\xDB\x8EJfJo\x99 \xE5p\xE2\xB9q~\fmI-z\xFEr\xC7\xF2Y0\x8F\xBB]s\xE5\xC9 \xEAx\xEC \x90\xF0\x8A\x7FB|G\`\xB0\xBD&\xB7q\xB6\xC7\x9F\xD13\x82=\xD3\xAB\xEEc\x99\xC8+S\xA0D\\q\xC6\xCCD2O<\xCA\xC0)=R\xD3aX\xA9}e\xB4\xDC\xCF\r\xF4=\xF1\b\xA9B\xDA# \xD8\xBF^PI\xF8M\xC0\xCBGLO\xF7{+\xD8\xC51\x92;\xB5o\xDCl\r\x92\x88\xD1\x9E\xDB?\xE2\xE9\xDA_\xD4\x84\xE2FaZ\xDEU\xCF\xA4\0\xBE\xFD\xCEg\xF1Ji\x97\xE6 H\xD8]\x7F~\xAEq N\xAE\xC0V\xA9\x91<\x82r\xE7v\xEC)I\xD6]-\x83\xE3\xDB6\xA9;f\x97\x87j\xD5\xB6=P^R\xB9K\xC7sWx\xC9\xF4.Y\x07\x95\x93o\xD0KW>''\xC7\`\xDB;\xED\x9ASD>?\x8D\x92mw\xA2 +\xEB?R\xA8\xC6U^1I7\x85\xF4\xC5&-\xA9\xBF\x8B'T\xDA\xC3j \xE5*x\xB0\xD6\x90pr\xAA\x8Bh\xBD\x88\xF7_H\xB1~\xC0XL?f\xF9>\xE1e\xC0p\xA7\xCF8i\xAF\xF0VldI\x9C'\xADxtO\xC2\x87\xDEV9\0\xDAw\v\xCB-\x1B\x89\xFB5O\xF5\bQ\`\xC1 +ZGM&30x\xDA\xC0\x9CFG\xE2[y\`In7gS +>\xE9\xECF9\xB2\xF14\r\xC6\x84Sun\xE1\fY\xD9\xDE)\x85{II\xA5wy\xBEIV.6\xE7\v:\xBBOb{\xD2M1\x95/\xBD8{\xA8O!\xE1\xECFpv\x95})"x\x88 +\x90\xDD\x9D\\\xDA\xDEQ\xCF\xF0\xFCYRe|3\xDF\xF3H\xDA\xBB*u\xDB\`\xB2\xD4\xFC\xED\x1B\xEC\x7F5\xA8\xFF(1\x07-\xC8\xDC\x88F|\x8A["`);function gu(e){if(this.imageryPresent=!0,this.protoImagery=void 0,this.terrainPresent=!0,this.negativeAltitudeExponentBias=32,this.negativeAltitudeThreshold=P.EPSILON12,this.providers={},this.key=void 0,this._resource=void 0,this._quadPacketVersion=1,this._tileInfo={},this._subtreePromises={},this._readyPromise=Promise.resolve(!0),l(e)){$("GoogleEarthEnterpriseMetadata options.url","GoogleEarthEnterpriseMetadata constructor parmeter resourceOrUrl was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMetadata.fromUrl instead.");let t=e;typeof t!="string"&&!(t instanceof we)&&(t=e.url);let n=we.createIfNeeded(t);n.appendForwardSlash(),this._resource=n;let i=this;this._readyPromise=gye(this).then(function(){return i.getQuadTreePacket("",i._quadPacketVersion)}).then(function(){return!0}).catch(function(o){let r=`An error occurred while accessing ${nq(i,"",1).url}.`;return Promise.reject(new de(r))})}}Object.defineProperties(gu.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},resource:{get:function(){return this._resource}},readyPromise:{get:function(){return $("GoogleEarthEnterpriseMetadata.readyPromise","GoogleEarthEnterpriseMetadata.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseMetadata.fromUrl instead."),this._readyPromise}}});gu.fromUrl=async function(e){let t=e;typeof t!="string"&&!(t instanceof we)&&(t=e.url);let n=we.createIfNeeded(t);n.appendForwardSlash();let i=new gu;i._resource=n;try{await gye(i),await i.getQuadTreePacket("",i._quadPacketVersion)}catch(o){let r=`An error occurred while accessing ${nq(i,"",1).url}: ${o}`;throw new de(r)}return i};gu.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;Rc(t,r)?Rc(e,r)&&(s|=1):(s|=2,Rc(e,r)||(s|=1)),i+=s}return i};gu.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];Rc(s,2)?Rc(s,1)||(t|=r):(n|=r,Rc(s,1)&&(t|=r))}return{x:t,y:n,level:i}};gu.prototype.isValid=function(e){let t=this.getTileInformationFromQuadKey(e);if(l(t))return t!==null;let n=!0,i=e,o;for(;i.length>1;)if(o=i.substring(i.length-1),i=i.substring(0,i.length-1),t=this.getTileInformationFromQuadKey(i),l(t)){!t.hasSubtree()&&!t.hasChild(parseInt(o))&&(n=!1);break}else if(t===null){n=!1;break}return n};var _ye=new pi("decodeGoogleEarthEnterprisePacket");gu.prototype.getQuadTreePacket=function(e,t,n){t=y(t,1),e=y(e,"");let o=nq(this,e,t,n).fetchArrayBuffer();if(!l(o))return;let r=this._tileInfo,s=this.key;return o.then(function(a){return _ye.scheduleTask({buffer:a,quadKey:e,type:"Metadata",key:s},[a]).then(function(u){let f,d=-1;if(e!==""){d=e.length+1;let h=u[e];f=r[e],f._bits|=h._bits,delete u[e]}let p=Object.keys(u);p.sort(function(h,A){return h.length-A.length});let g=p.length;for(let h=0;h<g;++h){let A=p[h];if(u[A]!==null){let C=y4.clone(u[A]),T=A.length;if(T===d)C.setParent(f);else if(T>1){let E=r[A.substring(0,A.length-1)];C.setParent(E)}r[A]=C}else r[A]=null}})})};gu.prototype.populateSubtree=function(e,t,n,i){let o=gu.tileXYToQuadKey(e,t,n);return tq(this,o,i)};function tq(e,t,n){let i=e._tileInfo,o=t,r=i[o];if(l(r)&&(!r.hasSubtree()||r.hasChildren()))return r;for(;r===void 0&&o.length>1;)o=o.substring(0,o.length-1),r=i[o];let s,a=e._subtreePromises,c=a[o];if(l(c))return c.then(function(){return s=new Zo({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),tq(e,t,s)});if(!l(r)||!r.hasSubtree())return Promise.reject(new de(`Couldn't load metadata for tile ${t}`));if(c=e.getQuadTreePacket(o,r.cnodeVersion,n),!!l(c))return a[o]=c,c.then(function(){return s=new Zo({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),tq(e,t,s)}).finally(function(){delete a[o]})}gu.prototype.getTileInformation=function(e,t,n){let i=gu.tileXYToQuadKey(e,t,n);return this._tileInfo[i]};gu.prototype.getTileInformationFromQuadKey=function(e){return this._tileInfo[e]};function nq(e,t,n,i){return e._resource.getDerivedResource({url:`flatfile?q2-0${t}-q.${n.toString()}`,request:i})}var $Y,eq;function gye(e){let t=e._resource.getDerivedResource({url:"dbRoot.v5",queryParameters:{output:"proto"}});if(!l(eq)){let n=en("ThirdParty/google-earth-dbroot-parser.js"),i=window.cesiumGoogleEarthDbRootParser;eq=Ox(n).then(function(){$Y=window.cesiumGoogleEarthDbRootParser(Cmt),l(i)?window.cesiumGoogleEarthDbRootParser=i:delete window.cesiumGoogleEarthDbRootParser})}return eq.then(function(){return t.fetchArrayBuffer()}).then(function(n){let i=$Y.EncryptedDbRootProto.decode(new Uint8Array(n)),o=i.encryptionData,r=o.byteOffset,s=r+o.byteLength,a=e.key=o.buffer.slice(r,s);o=i.dbrootData,r=o.byteOffset,s=r+o.byteLength;let c=o.buffer.slice(r,s);return _ye.scheduleTask({buffer:c,type:"DbRoot",key:a},[c])}).then(function(n){let i=$Y.DbRootProto.decode(new Uint8Array(n.buffer));if(e.imageryPresent=y(i.imageryPresent,e.imageryPresent),e.protoImagery=i.protoImagery,e.terrainPresent=y(i.terrainPresent,e.terrainPresent),l(i.endSnippet)&&l(i.endSnippet.model)){let a=i.endSnippet.model;e.negativeAltitudeExponentBias=y(a.negativeAltitudeExponentBias,e.negativeAltitudeExponentBias),e.negativeAltitudeThreshold=y(a.compressedNegativeAltitudeThreshold,e.negativeAltitudeThreshold)}l(i.databaseVersion)&&(e._quadPacketVersion=y(i.databaseVersion.quadtreeVersion,e._quadPacketVersion));let o=e.providers,r=y(i.providerInfo,[]),s=r.length;for(let a=0;a<s;++a){let c=r[a],u=c.copyrightString;l(u)&&(o[c.providerId]=new It(u.value))}}).catch(function(){console.log(`Failed to retrieve ${t.url}. Using defaults.`),e.key=Emt})}var mh=gu;var yye=ar(QY(),1);function iq(){this._image=new Image}iq.prototype.isReady=function(){return!0};iq.prototype.shouldDiscardImage=function(e){return e===this._image};function KA(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=new Wi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new le(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new It(t)),this._credit=t,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=23,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new iq),this._errorEvent=new ge,this._ready=!1;let n=this,i,o;if(l(e.url)){$("GoogleEarthEnterpriseImageryProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead.");let r=we.createIfNeeded(e.url);o=new mh(r)}l(e.metadata)&&($("GoogleEarthEnterpriseImageryProvider options.metadata","options.metadata was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead."),o=e.metadata),this._metadata=o,l(o)&&(this._readyPromise=o.readyPromise.then(function(r){if(!o.imageryPresent){let s=new de(`The server ${o.url} doesn't have imagery`);return i=Ti.reportError(i,n,n._errorEvent,s.message,void 0,void 0,void 0,s),Promise.reject(s)}return Ti.reportSuccess(i),n._ready=r,r}).catch(function(r){return i=Ti.reportError(i,n,n._errorEvent,r.message,void 0,void 0,void 0,r),Promise.reject(r)}))}Object.defineProperties(KA.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.ready","GoogleEarthEnterpriseImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead."),this._ready}},readyPromise:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.readyPromise","GoogleEarthEnterpriseImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseImageryProvider.fromMetadata instead."),this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}},defaultAlpha:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultAlpha","GoogleEarthEnterpriseImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultAlpha","GoogleEarthEnterpriseImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultNightAlpha","GoogleEarthEnterpriseImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultNightAlpha","GoogleEarthEnterpriseImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultDayAlpha","GoogleEarthEnterpriseImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultDayAlpha","GoogleEarthEnterpriseImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultBrightness","GoogleEarthEnterpriseImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultBrightness","GoogleEarthEnterpriseImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultContrast","GoogleEarthEnterpriseImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultContrast","GoogleEarthEnterpriseImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultHue","GoogleEarthEnterpriseImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultHue","GoogleEarthEnterpriseImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultSaturation","GoogleEarthEnterpriseImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultSaturation","GoogleEarthEnterpriseImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultGamma","GoogleEarthEnterpriseImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultGamma","GoogleEarthEnterpriseImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultMinificationFilter","GoogleEarthEnterpriseImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultMinificationFilter","GoogleEarthEnterpriseImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("GoogleEarthEnterpriseImageryProvider.defaultMagnificationFilter","GoogleEarthEnterpriseImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("GoogleEarthEnterpriseImageryProvider.defaultMagnificationFilter","GoogleEarthEnterpriseImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});KA.fromMetadata=function(e,t){if(!e.imageryPresent)throw new de(`The server ${e.url} doesn't have imagery`);let n=new KA(t);return n._metadata=e,n._ready=!0,n._readyPromise=Promise.resolve(!0),n};KA.prototype.getTileCredits=function(e,t,n){let i=this._metadata,o=i.getTileInformation(e,t,n);if(l(o)){let r=i.providers[o.imageryProvider];if(l(r))return[r]}};KA.prototype.requestImage=function(e,t,n,i){let o=this._tileDiscardPolicy._image,r=this._metadata,s=mh.tileXYToQuadKey(e,t,n),a=r.getTileInformation(e,t,n);if(!l(a)){if(r.isValid(s)){let u=new Zo({throttle:i.throttle,throttleByServer:i.throttleByServer,type:i.type,priorityFunction:i.priorityFunction});r.populateSubtree(e,t,n,u);return}return Promise.resolve(o)}if(!a.hasImagery())return Promise.resolve(o);let c=bmt(this,a,e,t,n,i).fetchArrayBuffer();if(l(c))return c.then(function(u){g4(r.key,u);let f=new Uint8Array(u),d,p=r.protoImagery;if((!l(p)||!p)&&(d=Smt(f)),!l(d)&&(!l(p)||p)){let g=wmt(f);d=g.imageType,f=g.imageData}return!l(d)||!l(f)?o:PC({uint8Array:f,format:d,flipY:!0})})};KA.prototype.pickFeatures=function(e,t,n,i,o){};function bmt(e,t,n,i,o,r){let s=mh.tileXYToQuadKey(n,i,o),a=t.imageryVersion;return a=l(a)&&a>0?a:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1-0${s}-i.${a.toString()}`,request:r})}function Smt(e){let t="JFIF";if(e[6]===t.charCodeAt(0)&&e[7]===t.charCodeAt(1)&&e[8]===t.charCodeAt(2)&&e[9]===t.charCodeAt(3))return"image/jpeg";let n="PNG";if(e[1]===n.charCodeAt(0)&&e[2]===n.charCodeAt(1)&&e[3]===n.charCodeAt(2))return"image/png"}function wmt(e){let t=yye.Reader.create(e),n=t.len,i={};for(;t.pos<n;){let s=t.uint32(),a;switch(s>>>3){case 1:i.imageType=t.uint32();break;case 2:i.imageData=t.bytes();break;case 3:i.alphaType=t.uint32();break;case 4:i.imageAlpha=t.bytes();break;case 5:if(a=i.copyrightIds,l(a)||(a=i.copyrightIds=[]),(s&7)===2){let c=t.uint32()+t.pos;for(;t.pos<c;)a.push(t.uint32())}else a.push(t.uint32());break;default:t.skipType(s&7);break}}let o=i.imageType;if(l(o))switch(o){case 0:i.imageType="image/jpeg";break;case 4:i.imageType="image/png";break;default:throw new de("GoogleEarthEnterpriseImageryProvider: Unsupported image type.")}let r=i.alphaType;return l(r)&&r!==0&&(console.log("GoogleEarthEnterpriseImageryProvider: External alpha not supported."),delete i.alphaType,delete i.imageAlpha),i}var Aye=KA;var vmt=new z(1,1,1,.4),Dmt=new z(0,1,0,.05),Imt=new z(0,.5,0,.2);function JA(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Wi({ellipsoid:e.ellipsoid}),this._cells=y(e.cells,8),this._color=y(e.color,vmt),this._glowColor=y(e.glowColor,Dmt),this._glowWidth=y(e.glowWidth,6),this._backgroundColor=y(e.backgroundColor,Imt),this._errorEvent=new ge,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._canvasSize=y(e.canvasSize,256),this._canvas=this._createGridCanvas(),this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(JA.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("GridImageryProvider.ready","GridImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("GridImageryProvider.readyPromise","GridImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}},defaultAlpha:{get:function(){return $("GridImageryProvider.defaultAlpha","GridImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("GridImageryProvider.defaultAlpha","GridImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("GridImageryProvider.defaultNightAlpha","GridImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha},set:function(e){$("GridImageryProvider.defaultNightAlpha","GridImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this.defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("GridImageryProvider.defaultDayAlpha","GridImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("GridImageryProvider.defaultDayAlpha","GridImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("GridImageryProvider.defaultBrightness","GridImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("GridImageryProvider.defaultBrightness","GridImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("GridImageryProvider.defaultContrast","GridImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("GridImageryProvider.defaultContrast","GridImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("GridImageryProvider.defaultHue","GridImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("GridImageryProvider.defaultHue","GridImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("GridImageryProvider.defaultSaturation","GridImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("GridImageryProvider.defaultSaturation","GridImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("GridImageryProvider.defaultGamma","GridImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("GridImageryProvider.defaultGamma","GridImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("GridImageryProvider.defaultMinificationFilter","GridImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("GridImageryProvider.defaultMinificationFilter","GridImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("GridImageryProvider.defaultMagnificationFilter","GridImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("GridImageryProvider.defaultMagnificationFilter","GridImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});JA.prototype._drawGrid=function(e){let n=this._canvasSize;for(let i=0;i<=this._cells;++i){let r=1+i/this._cells*(n-1);e.moveTo(r,0),e.lineTo(r,n),e.moveTo(0,r),e.lineTo(n,r)}e.stroke()};JA.prototype._createGridCanvas=function(){let e=document.createElement("canvas");e.width=this._canvasSize,e.height=this._canvasSize;let t=0,n=this._canvasSize,i=e.getContext("2d"),o=this._backgroundColor.toCssColorString();i.fillStyle=o,i.fillRect(t,t,n,n);let r=this._glowColor.toCssColorString();i.strokeStyle=r,i.lineWidth=this._glowWidth,i.strokeRect(t,t,n,n),this._drawGrid(i),i.lineWidth=this._glowWidth*.5,i.strokeRect(t,t,n,n),this._drawGrid(i);let s=this._color.toCssColorString();return i.strokeStyle=s,i.lineWidth=2,i.strokeRect(t,t,n,n),i.lineWidth=1,this._drawGrid(i),e};JA.prototype.getTileCredits=function(e,t,n){};JA.prototype.requestImage=function(e,t,n,i){return Promise.resolve(this._canvas)};JA.prototype.pickFeatures=function(e,t,n,i,o){};var xye=JA;function oq(e,t){this._parent=e,this._dataProvider=e._dataProvider,this._layer=e._layer,l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${t}`}):this._resource=this._parent.resource.getDerivedResource({url:t})}Object.defineProperties(oq.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}}});oq.prototype.load=async function(){return this._data=await mb.loadJson(this._resource,this._dataProvider._traceFetches),this._data};var A4=oq;function hb(e,t){this._storageInfo=t,this._parent=e,this._dataProvider=e._dataProvider;let n=`attributes/${t.key}/0`;l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${n}`}):this._resource=this._parent.resource.getDerivedResource({url:n})}Object.defineProperties(hb.prototype,{resource:{get:function(){return this._resource}},header:{get:function(){return this._header}},values:{get:function(){return l(this._values)&&l(this._values.attributeValues)?this._values.attributeValues:[]}},name:{get:function(){return this._storageInfo.name}}});function Pmt(e){return e==="UInt8"||e==="Int8"?1:e==="UInt16"||e==="Int16"?2:e==="UInt32"||e==="Int32"||e==="Oid32"||e==="Float32"?4:e==="UInt64"||e==="Int64"||e==="Float64"?8:0}hb.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){let n=new DataView(t),i=!0;if(n.getUint8(0)==="{".charCodeAt(0)&&new TextDecoder().decode(t).includes("404")&&(i=!1,console.error(`Failed to load: ${e.resource.url}`)),i){e._data=t;let o=e._parseHeader(n),r=Pmt(e._storageInfo.attributeValues.valueType);r>0&&(o=Math.ceil(o/r)*r),e._parseBody(n,o)}})};hb.prototype._parseValue=function(e,t,n){let i;if(t==="UInt8")i=e.getUint8(n),n+=1;else if(t==="Int8")i=e.getInt8(n),n+=1;else if(t==="UInt16")i=e.getUint16(n,!0),n+=2;else if(t==="Int16")i=e.getInt16(n,!0),n+=2;else if(t==="UInt32")i=e.getUint32(n,!0),n+=4;else if(t==="Oid32")i=e.getUint32(n,!0),n+=4;else if(t==="Int32")i=e.getInt32(n,!0),n+=4;else if(t==="UInt64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);i=o+Math.pow(2,32)*r,n+=8}else if(t==="Int64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);r<Math.pow(2,31)?i=o+Math.pow(2,32)*r:i=o+Math.pow(2,32)*(r-Math.pow(2,32)),n+=8}else t==="Float32"?(i=e.getFloat32(n,!0),n+=4):t==="Float64"?(i=e.getFloat64(n,!0),n+=8):t==="String"&&(i=String.fromCharCode(e.getUint8(n)),n+=1);return{value:i,offset:n}};hb.prototype._parseHeader=function(e){let t=0;this._header={};for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n],o=this._parseValue(e,i.valueType,t);this._header[i.property]=o.value,t=o.offset}return t};hb.prototype._parseBody=function(e,t){this._values={};for(let n=0;n<this._storageInfo.ordering.length;n++){let i=this._storageInfo.ordering[n],o=this._storageInfo[i];if(l(o)){this._values[i]=[];for(let r=0;r<this._header.count;++r)if(o.valueType!=="String"){let s=this._parseValue(e,o.valueType,t);this._values[i].push(s.value),t=s.offset}else{let s=this._values.attributeByteCounts[r],a="";for(let c=0;c<s;++c){let u=this._parseValue(e,o.valueType,t);u.value.charCodeAt(0)!==0&&(a+=u.value),t=u.offset}this._values[i].push(a)}}}};var x4=hb;function cI(e,t){let n=e._dataProvider,i=e._layer,o;l(e._nodeIndex)?o=i.resource.getDerivedResource({url:`nodes/${e._data.mesh.geometry.resource}/${t}`}):o=e.resource.getDerivedResource({url:t}),this._parent=e,this._dataProvider=n,this._layer=i,this._resource=o,this._customAttributes=void 0}Object.defineProperties(cI.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},customAttributes:{get:function(){return this._customAttributes}}});cI.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){return e._data=t,t})};var Omt=new m,Mmt=new m,Rmt=new m,Bmt=new m,Lmt=new m;function rq(e,t,n,i){let o=m.subtract(i,n,Omt),r=m.cross(o,m.subtract(e,n,Mmt),Bmt),s=m.cross(o,m.subtract(t,n,Rmt),Lmt);return m.dot(r,s)>=0}var Nmt=new m,Fmt=new m,Umt=new m,Vmt=new m,kmt=new m,zmt=new m,Hmt=new m,Gmt=new m,Wmt=new m,jmt=new m;cI.prototype.getClosestPointIndexOnTriangle=function(e,t,n){if(l(this._customAttributes)&&l(this._customAttributes.positions)){let i=new m(e,t,n);i.x-=this._customAttributes.cartesianCenter.x,i.y-=this._customAttributes.cartesianCenter.y,i.z-=this._customAttributes.cartesianCenter.z,Z.multiplyByVector(this._customAttributes.parentRotation,i,i);let o=Number.MAX_VALUE,r,s,a,c,u=this._customAttributes.positions,f=this._customAttributes.indices,d;l(f)?d=f.length:d=u.length/3;for(let p=0;p<d;p++){let g,h,A;l(f)?(g=f[p],h=f[p+1],A=f[p+2]):(g=p*3,h=p*3+1,A=p*3+2);let x=m.fromElements(u[g*3],u[g*3+1],u[g*3+2],Nmt),C=m.fromElements(u[h*3],u[h*3+1],u[h*3+2],Fmt),T=new m(u[A*3],u[A*3+1],u[A*3+2],Umt);if(!rq(i,x,C,T)||!rq(i,C,x,T)||!rq(i,T,x,C))continue;let E=m.subtract(C,x,Vmt),S=m.subtract(T,x,kmt),v=m.cross(E,S,zmt);if(m.magnitude(v)===0)continue;let D=m.normalize(v,Hmt),O=m.subtract(i,x,Gmt),M=Math.abs(m.dot(O,D));if(M<o){o=M,r=p;let L=m.magnitudeSquared(m.subtract(i,x,O)),N=m.magnitudeSquared(m.subtract(i,C,Wmt)),_=m.magnitudeSquared(m.subtract(i,T,jmt));L<N&&L<_?(a=g,c=x,s=L):N<_?(a=h,c=C,s=N):(a=A,c=T,s=_)}}if(l(r))return{index:a,distanceSquared:s,distance:Math.sqrt(s),queriedPosition:i,closestPosition:m.clone(c)}}return{index:-1,distanceSquared:Number.Infinity,distance:Number.Infinity}};cI.prototype._generateGltf=function(e,t,n,i,o,r){let s={pbrMetallicRoughness:{metallicFactor:0},doubleSided:!0,name:"Material"},a=!1,c,u="";if(l(this._parent._data.mesh)&&l(this._layer._data.materialDefinitions)){let A=this._parent._data.mesh.material.definition;if(A>=0&&A<this._layer._data.materialDefinitions.length&&(c=this._layer._data.materialDefinitions[A],s=c,l(s.pbrMetallicRoughness)&&l(s.pbrMetallicRoughness.baseColorTexture))){a=!0,s.pbrMetallicRoughness.baseColorTexture.index=0;let x="0";if(l(this._layer._data.textureSetDefinitions))for(let C=0;C<this._layer._data.textureSetDefinitions.length;C++){let T=this._layer._data.textureSetDefinitions[C];for(let E=0;E<T.formats.length;E++){let S=T.formats[E];if(S.format==="jpg"){x=S.name;break}}}l(this._parent._data.mesh)&&this._parent._data.mesh.material.resource>=0&&(u=this._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.material.resource}/textures/${x}`}).url)}}else l(this._parent._data.textureData)&&(a=!0,u=this._parent.resource.getDerivedResource({url:`${this._parent._data.textureData[0].href}`}).url,s.pbrMetallicRoughness.baseColorTexture={index:0});let f=[],d=[],p=[];return a&&(f=[{sampler:0,source:0}],d=[{uri:u}],p=[{magFilter:9729,minFilter:9986,wrapS:10497,wrapT:10497}]),{scene:0,scenes:[{nodes:e}],nodes:t,meshes:n,buffers:i,bufferViews:o,accessors:r,materials:[s],textures:f,images:d,samplers:p,asset:{version:"2.0"}}};var lI=cI;function Cl(e,t,n){let i,o,r,s;n?(i=0,o=e):(i=e._level+1,o=e._layer),typeof t=="number"?r=t:s=e.resource.getDerivedResource({url:`${t}/`}),this._parent=e,this._dataProvider=e._dataProvider,this._isRoot=n,this._level=i,this._layer=o,this._nodeIndex=r,this._resource=s,this._isLoading=!1,this._tile=void 0,this._data=void 0,this._geometryData=[],this._featureData=[],this._fields={},this._children=[],this._childrenReadyPromise=void 0,this._globalTransform=void 0,this._inverseGlobalTransform=void 0,this._inverseRotationMatrix=void 0}Object.defineProperties(Cl.prototype,{resource:{get:function(){return this._resource}},layer:{get:function(){return this._layer}},parent:{get:function(){return this._parent}},children:{get:function(){return this._children}},geometryData:{get:function(){return this._geometryData}},featureData:{get:function(){return this._featureData}},fields:{get:function(){return this._fields}},tile:{get:function(){return this._tile}},data:{get:function(){return this._data}}});Cl.prototype.load=async function(){let e=this;function t(){if(!e._isRoot){let o=e._create3DTileDefinition();e._tile=new sd(e._layer._tileset,e._dataProvider.resource,o,e._parent._tile),e._tile._i3sNode=e}}if(!l(this._nodeIndex)){let o=await mb.loadJson(this._resource,this._dataProvider._traceFetches);e._data=o,t();return}let n=await this._layer._getNodeInNodePages(this._nodeIndex);e._data=n;let i;e._isRoot?i="nodes/root/":l(n.mesh)&&(i=`../${n.mesh.geometry.resource}/`),l(i)&&(e._resource=e._parent.resource.getDerivedResource({url:i})),t()};Cl.prototype.loadFields=function(){let e=this._layer._data.attributeStorageInfo,t=this;function n(o,r){let s=new x4(t,o[r]);return t._fields[s._storageInfo.name]=s,s.load()}let i=[];if(l(e))for(let o=0;o<e.length;o++)i.push(n(e,o));return Promise.all(i)};Cl.prototype.getFieldsForPickedPosition=function(e){let t=this.geometryData[0];if(!l(t.customAttributes.featureIndex))return{};let n=t.getClosestPointIndexOnTriangle(e.x,e.y,e.z);if(n.index===-1||n.index>t.customAttributes.featureIndex.length)return{};let i=t.customAttributes.featureIndex[n.index];return this.getFieldsForFeature(i)};Cl.prototype.getFieldsForFeature=function(e){let t={};for(let n in this.fields)if(this.fields.hasOwnProperty(n)){let i=this.fields[n];e>=0&&e<i.values.length&&(t[i.name]=i.values[e])}return t};Cl.prototype._loadChildren=function(){let e=this;if(l(this._childrenReadyPromise))return this._childrenReadyPromise;let t=[];if(l(e._data.children))for(let n=0;n<e._data.children.length;n++){let i=e._data.children[n],o=new Cl(e,y(i.href,i),!1);e._children.push(o),t.push(o.load())}return this._childrenReadyPromise=Promise.all(t).then(function(){for(let n=0;n<e._children.length;n++)e._tile.children.push(e._children[n]._tile)}),this._childrenReadyPromise};Cl.prototype._loadGeometryData=function(){let e=[];if(l(this._data.geometryData))for(let t=0;t<this._data.geometryData.length;t++){let n=new lI(this,this._data.geometryData[t].href);this._geometryData.push(n),e.push(n.load())}else if(l(this._data.mesh)){let t=this._layer._findBestGeometryBuffers(this._data.mesh.geometry.definition,["position","uv0"]),n=`./geometries/${t.bufferIndex}/`,i=new lI(this,n);i._geometryDefinitions=t.definition,i._geometryBufferInfo=t.geometryBufferInfo,this._geometryData.push(i),e.push(i.load())}return Promise.all(e)};Cl.prototype._loadFeatureData=function(){let e=[];if(l(this._data.featureData))for(let t=0;t<this._data.featureData.length;t++){let n=new A4(this,this._data.featureData[t].href);this._featureData.push(n),e.push(n.load())}return Promise.all(e)};Cl.prototype._clearGeometryData=function(){this._geometryData=[]};Cl.prototype._create3DTileDefinition=function(){let e=this._data.obb,t=this._data.mbs;if(!l(e)&&!l(t)){console.error("Failed to load I3S node. Bounding volume is required.");return}let n;if(l(e)?n=he.fromDegrees(e.center[0],e.center[1],e.center[2]):n=he.fromDegrees(t[0],t[1],t[2]),l(this._dataProvider._geoidDataList)&&l(n))for(let C=0;C<this._dataProvider._geoidDataList.length;C++){let T=this._dataProvider._geoidDataList[C],E=T.projection.project(n);if(E.x>T.nativeExtent.west&&E.x<T.nativeExtent.east&&E.y>T.nativeExtent.south&&E.y<T.nativeExtent.north){n.height+=qmt(E.x,E.y,T);break}}let i={},o,r=0;l(e)?(i={box:[0,0,0,e.halfSize[0],0,0,0,e.halfSize[1],0,0,0,e.halfSize[2]]},r=Math.max(Math.max(this._data.obb.halfSize[0],this._data.obb.halfSize[1]),this._data.obb.halfSize[2]),o=oe.WGS84.cartographicToCartesian(n)):(i={sphere:[0,0,0,t[3]]},o=oe.WGS84.cartographicToCartesian(n),r=this._data.mbs[3]),r*=2;let s=1/0;if(l(this._data.lodThreshold))if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThresholdSQ"){let C=Math.sqrt(this._data.lodThreshold/(Math.PI*.25));s=r/C}else if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThreshold"){let C=this._data.lodThreshold;s=r/C}else console.error("Invalid lodSelectionMetricType in Layer");else if(l(this._data.lodSelection))for(let C=0;C<this._data.lodSelection.length;C++)this._data.lodSelection[C].metricType==="maxScreenThreshold"&&(s=r/this._data.lodSelection[C].maxError);s===1/0&&(s=1e5);let a=s*16,c=new rc(0,0,0),u=Rt.headingPitchRollQuaternion(o,c);l(this._data.obb)&&(u=new Ne(this._data.obb.quaternion[0],this._data.obb.quaternion[1],this._data.obb.quaternion[2],this._data.obb.quaternion[3]));let f=Z.fromQuaternion(u),d=Z.inverse(f,new Z),p=new B(f[0],f[1],f[2],0,f[3],f[4],f[5],0,f[6],f[7],f[8],0,o.x,o.y,o.z,1),g=B.inverse(p,new B),h=B.clone(p);l(this._parent._globalTransform)&&B.multiply(p,this._parent._inverseGlobalTransform,h),this._globalTransform=p,this._inverseGlobalTransform=g,this._inverseRotationMatrix=d;let A=[];for(let C=0;C<this._children.length;C++)A.push(this._children[C]._create3DTileDefinition());return{children:A,refine:"REPLACE",boundingVolume:i,transform:[h[0],h[4],h[8],h[12],h[1],h[5],h[9],h[13],h[2],h[6],h[10],h[14],h[3],h[7],h[11],h[15]],content:{uri:l(this._resource)?this._resource.url:void 0},geometricError:a}};Cl.prototype._createI3SDecoderTask=async function(e,t){let n=t.geometryData._parent._data,i=t.geometryData._parent._inverseRotationMatrix,o=0,r=0,s=0;l(n.obb)?(o=n.obb.center[0],r=n.obb.center[1],s=n.obb.center[2]):l(n.mbs)&&(o=n.mbs[0],r=n.mbs[1],s=n.mbs[2]);let a=Z.fromRotationX(-P.PI_OVER_TWO),c=new Z;Z.multiply(a,i,c);let u=he.fromDegrees(o,r,s),f=oe.WGS84.cartographicToCartesian(u),d={binaryData:t.geometryData._data,featureData:l(t.featureData)&&l(t.featureData[0])?t.featureData[0].data:void 0,schema:t.defaultGeometrySchema,bufferInfo:t.geometryData._geometryBufferInfo,ellipsoidRadiiSquare:oe.WGS84.radiiSquared,url:t.url,geoidDataList:t.geometryData._dataProvider._geoidDataList,cartographicCenter:u,cartesianCenter:f,parentRotation:c},p=[];return e.scheduleTask(d,p)};Cl.prototype._createContentURL=async function(){let e={scene:0,scenes:[{nodes:[0]}],nodes:[{name:"singleNode"}],meshes:[],buffers:[],bufferViews:[],accessors:[],materials:[],textures:[],images:[],samplers:[],asset:{version:"2.0"}},t=await this._dataProvider.getDecoderTaskProcessor(),n=[this._loadGeometryData()];this._dataProvider.legacyVersion16&&n.push(this._loadFeatureData());let i=this;return Promise.all(n).then(function(){let o=Promise.resolve();if(l(i._geometryData)&&i._geometryData.length>0){let r={geometryData:i._geometryData[0],featureData:i._featureData,defaultGeometrySchema:i._layer._data.store.defaultGeometrySchema,url:i._geometryData[0].resource.url,tile:i._tile},s=i._createI3SDecoderTask(t,r);if(!l(s))return;o=s.then(function(a){e=r.geometryData._generateGltf(a.meshData.nodesInScene,a.meshData.nodes,a.meshData.meshes,a.meshData.buffers,a.meshData.bufferViews,a.meshData.accessors),i._geometryData[0]._customAttributes=a.meshData._customAttributes})}return o.then(function(){let r=i._dataProvider._binarizeGltf(e),s=new Blob([r],{type:"application/binary"});return URL.createObjectURL(s)})})};sd.prototype._hookedRequestContent=sd.prototype.requestContent;sd.prototype.requestContent=function(){if(!this.tileset._isI3STileSet)return this._hookedRequestContent();if(!this._isLoading)return this._isLoading=!0,this._i3sNode._createContentURL().then(e=>{if(!l(e)){this._isLoading=!1;return}return this._contentResource=new we({url:e}),this._hookedRequestContent()}).then(e=>(this._isLoading=!1,e))};function Ymt(e,t,n,i,o,r){let s=n*(1-e)+i*e,a=o*(1-e)+r*e;return s*(1-t)+a*t}function C4(e,t,n,i){let o=e+t*n;return i[o]}function qmt(e,t,n){let i=n.nativeExtent,o=(e-i.west)/(i.east-i.west)*(n.width-1),r=(t-i.south)/(i.north-i.south)*(n.height-1),s=Math.floor(o),a=Math.floor(r);o-=s,r-=a;let c=s<n.width?s+1:s,u=a<n.height?a+1:a;a=n.height-1-a,u=n.height-1-u;let f=C4(s,a,n.width,n.buffer),d=C4(c,a,n.width,n.buffer),p=C4(s,u,n.width,n.buffer),g=C4(c,u,n.width,n.buffer),h=Ymt(o,r,f,d,p,g);return h=h*n.scale+n.offset,h}Object.defineProperties(sd.prototype,{i3sNode:{get:function(){return this._i3sNode}}});var uI=Cl;function xf(e,t,n){this._dataProvider=e,l(t.href)||(t.href=`./layers/${n}`);let i=this._dataProvider.resource.getUrlComponent(),o="";i.match(/layers\/\d/)?o=`${i}`.replace(/\/+$/,""):o=`${i}`.replace(/\/?$/,"/").concat(`${t.href}`),this._version=t.store.version;let r=this._version.split(".");this._majorVersion=parseInt(r[0]),this._minorVersion=r.length>1?parseInt(r[1]):0,this._resource=new we({url:o}),this._resource.setQueryParameters(this._dataProvider.resource.queryParameters),this._resource.appendForwardSlash(),this._data=t,this._rootNode=void 0,this._nodePages={},this._nodePageFetches={},this._extent=void 0,this._tileset=void 0,this._geometryDefinitions=void 0,this._computeGeometryDefinitions(!0),this._computeExtent()}Object.defineProperties(xf.prototype,{resource:{get:function(){return this._resource}},rootNode:{get:function(){return this._rootNode}},tileset:{get:function(){return this._tileset}},data:{get:function(){return this._data}},version:{get:function(){return this._version}},majorVersion:{get:function(){return this._majorVersion}},minorVersion:{get:function(){return this._minorVersion}},legacyVersion16:{get:function(){if(l(this.version))return this.majorVersion<1||this.majorVersion===1&&this.minorVersion<=6}}});xf.prototype.load=async function(){if(this._data.spatialReference.wkid!==4326)throw new de(`Unsupported spatial reference: ${this._data.spatialReference.wkid}`);if(await this._dataProvider.loadGeoidData(),await this._loadRootNode(),await this._create3DTileset(),this._rootNode._tile=this._tileset._root,this._tileset._root._i3sNode=this._rootNode,this.legacyVersion16)return this._rootNode._loadChildren()};xf.prototype._computeGeometryDefinitions=function(e){if(this._geometryDefinitions=[],l(this._data.geometryDefinitions))for(let t=0;t<this._data.geometryDefinitions.length;t++){let n=[],i=this._data.geometryDefinitions[t].geometryBuffers;for(let o=0;o<i.length;o++){let r=i[o],s=[],a=!1;if(l(r.compressedAttributes)&&e){a=!0;let c=r.compressedAttributes.attributes;for(let u=0;u<c.length;u++)s.push(c[u])}else for(let c in r)c!=="offset"&&s.push(c);n.push({compressed:a,attributes:s,index:i.indexOf(r)})}n.sort(function(o,r){return o.compressed&&!r.compressed?-1:!o.compressed&&r.compressed?1:o.attributes.length-r.attributes.length}),this._geometryDefinitions.push(n)}};xf.prototype._findBestGeometryBuffers=function(e,t){let n=this._geometryDefinitions[e];if(l(n))for(let i=0;i<n.length;++i){let o=n[i],r=!1,s=o.attributes;for(let a=0;a<t.length;a++)if(!s.includes(t[a])){r=!0;break}if(!r)return{bufferIndex:o.index,definition:n,geometryBufferInfo:o}}return 0};xf.prototype._loadRootNode=function(){if(l(this._data.nodePages)){let e=0;l(this._data.nodePages.rootIndex)&&(e=this._data.nodePages.rootIndex),this._rootNode=new uI(this,e,!0)}else this._rootNode=new uI(this,this._data.store.rootNode,!0);return this._rootNode.load()};xf.prototype._getNodeInNodePages=function(e){let t=Math.floor(e/this._data.nodePages.nodesPerPage),n=e%this._data.nodePages.nodesPerPage,i=this;return this._loadNodePage(t).then(function(){return i._nodePages[t][n]})};xf._fetchJson=function(e){return e.fetchJson()};xf.prototype._loadNodePage=function(e){let t=this;if(!l(this._nodePageFetches[e])){let n=this.resource.getDerivedResource({url:`nodepages/${e}/`}),i=xf._fetchJson(n).then(function(o){return l(o.error)&&o.error.code!==200?Promise.reject(o.error):(t._nodePages[e]=o.nodes,o)});this._nodePageFetches[e]=i}return this._nodePageFetches[e]};xf.prototype._computeExtent=function(){l(this._data.fullExtent)?this._extent=le.fromDegrees(this._data.fullExtent.xmin,this._data.fullExtent.ymin,this._data.fullExtent.xmax,this._data.fullExtent.ymax):l(this._data.store.extent)&&(this._extent=le.fromDegrees(this._data.store.extent[0],this._data.store.extent[1],this._data.store.extent[2],this._data.store.extent[3]))};xf.prototype._create3DTileset=async function(){let e={asset:{version:"1.0"},geometricError:Number.MAX_VALUE,root:this._rootNode._create3DTileDefinition()},t=new Blob([JSON.stringify(e)],{type:"application/json"}),n=URL.createObjectURL(t),i={};if(l(this._dataProvider._cesium3dTilesetOptions))for(let o in this._dataProvider._cesium3dTilesetOptions)this._dataProvider._cesium3dTilesetOptions.hasOwnProperty(o)&&(i[o]=this._dataProvider._cesium3dTilesetOptions[o]);this._tileset=await Va.fromUrl(n,i),this._tileset.show=this._dataProvider.show,this._tileset._isI3STileSet=!0,this._tileset.tileUnload.addEventListener(function(o){o._i3sNode._clearGeometryData(),URL.revokeObjectURL(o._contentResource._url),o._contentResource=o._i3sNode.resource}),this._tileset.tileVisible.addEventListener(function(o){l(o._i3sNode)&&o._i3sNode._loadChildren()})};var ZA=xf;var Tye=ar(Cye(),1);function Kr(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._show=y(e.show,!0),this._geoidTiledTerrainProvider=e.geoidTiledTerrainProvider,this._traceFetches=y(e.traceFetches,!1),this._cesium3dTilesetOptions=y(e.cesium3dTilesetOptions,y.EMPTY_OBJECT),this._layers=[],this._data=void 0,this._extent=void 0,this._geoidDataPromise=void 0,this._geoidDataList=void 0,this._decoderTaskProcessor=void 0,this._taskProcessorReadyPromise=void 0,l(e.url)&&($("I3SDataProvider options.url","I3SDataProvider constructor parameter options.url was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use I3SDataProvider.fromUrl instead."),this._readyPromise=void 0,this._ready=!1,this._resource=we.createIfNeeded(e.url),this._load())}Object.defineProperties(Kr.prototype,{name:{get:function(){return this._name}},show:{get:function(){return this._show},set:function(e){this._show=e;for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&(this._layers[t]._tileset.show=this._show)}},traceFetches:{get:function(){return this._traceFetches},set:function(e){this._traceFetches=e}},geoidTiledTerrainProvider:{get:function(){return this._geoidTiledTerrainProvider}},layers:{get:function(){return this._layers}},data:{get:function(){return this._data}},extent:{get:function(){return this._extent}},readyPromise:{get:function(){return $("I3SDataProvider.readyPromise","I3SDataProvider.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use I3SDataProvider.fromUrl instead."),this._readyPromise}},ready:{get:function(){return $("I3SDataProvider.ready","I3SDataProvider.ready was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use I3SDataProvider.fromUrl instead."),this._ready}},resource:{get:function(){return this._resource}}});Kr.prototype.destroy=function(){for(let e=0;e<this._layers.length;e++)l(this._layers[e]._tileset)&&this._layers[e]._tileset.destroy();return ue(this)};Kr.prototype.isDestroyed=function(){return!1};Kr.prototype.update=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.update(e)};Kr.prototype.prePassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.prePassesUpdate(e)};Kr.prototype.postPassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.postPassesUpdate(e)};Kr.prototype.updateForPass=function(e,t){for(let n=0;n<this._layers.length;n++)l(this._layers[n]._tileset)&&this._layers[n]._tileset.updateForPass(e,t)};Kr.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e),i=await Kr.loadJson(n),o=new Kr(t);if(o._resource=n,o._data=i,l(i.layers))for(let s=0;s<i.layers.length;s++){let a=new ZA(o,i.layers[s],s);o._layers.push(a)}else{let s=new ZA(o,i,i.id);o._layers.push(s)}o._computeExtent();let r=[];for(let s=0;s<o._layers.length;s++)r.push(o._layers[s].load());return await Promise.all(r),o._ready=!0,o._readyPromise=Promise.resolve(o),o};Kr.prototype._load=function(){let e=this;return this._readyPromise=Kr.loadJson(this._resource,this._traceFetches).then(function(t){if(e._data=t,l(t.layers))for(let i=0;i<t.layers.length;i++){let o=new ZA(e,t.layers[i],i);e._layers.push(o)}else{let i=new ZA(e,t,t.id);e._layers.push(i)}e._computeExtent();let n=[];for(let i=0;i<e._layers.length;i++)n.push(e._layers[i].load());return Promise.all(n).then(function(){return e._ready=!0,e})}),this._readyPromise};Kr._fetchJson=function(e){return e.fetchJson()};Kr.loadJson=async function(e,t){t&&console.log("I3S FETCH:",e.url);let n=await Kr._fetchJson(e);if(l(n.error)){if(console.error("Failed to fetch I3S ",e.url),l(n.error.message)&&console.error(n.error.message),l(n.error.details))for(let i=0;i<n.error.details.length;i++)console.log(n.error.details[i]);throw new de(n.error)}return n};Kr.prototype._loadBinary=function(e){return this._traceFetches&&console.log("I3S FETCH:",e.url),e.fetchArrayBuffer()};Kr.prototype._binarizeGltf=function(e){let n=new TextEncoder().encode(JSON.stringify(e)),i=new Uint8Array(n.byteLength+20),o={magic:new Uint8Array(i.buffer,0,4),version:new Uint32Array(i.buffer,4,1),length:new Uint32Array(i.buffer,8,1),chunkLength:new Uint32Array(i.buffer,12,1),chunkType:new Uint32Array(i.buffer,16,1),chunkData:new Uint8Array(i.buffer,20,n.byteLength)};return o.magic[0]="g".charCodeAt(),o.magic[1]="l".charCodeAt(),o.magic[2]="T".charCodeAt(),o.magic[3]="F".charCodeAt(),o.version[0]=2,o.length[0]=i.byteLength,o.chunkLength[0]=n.byteLength,o.chunkType[0]=1313821514,o.chunkData.set(n),i};Kr.prototype.getDecoderTaskProcessor=function(){if(l(this._taskProcessorReadyPromise))return this._taskProcessorReadyPromise;if(!l(this._decoderTaskProcessor)){let e=new pi("decodeI3S");this._taskProcessorReadyPromise=e.initWebAssemblyModule({modulePath:"ThirdParty/Workers/draco_decoder_nodejs.js",wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(()=>e),this._decoderTaskProcessor=e}return this._taskProcessorReadyPromise};function Xmt(e,t){return Jmt(e,t)}var Kmt=new H;function Jmt(e,t){let n=e.tilingScheme,i=[],o={},r=e._lodCount,s=he.fromRadians(t.west,t.north),a=he.fromRadians(t.east,t.south),c=n.positionToTileXY(s,r),u=n.positionToTileXY(a,r);for(let d=c.x;d<=u.x;d++)for(let p=c.y;p<=u.y;p++){let g=H.fromElements(d,p,Kmt),h=g.toString();if(!o.hasOwnProperty(h)){let A={x:g.x,y:g.y,level:r,tilingScheme:n,terrainProvider:e,positions:[]};o[h]=A,i.push(A)}}let f=[];for(let d=0;d<i.length;++d){let p=i[d],g=p.terrainProvider.requestTileGeometry(p.x,p.y,p.level);f.push(g)}return Promise.all(f).then(function(d){let p=[];for(let g=0;g<d.length;g++){let h={tilingScheme:n,x:i[g].x,y:i[g].y,level:i[g].level},A=d[g],x="Geographic";n._projection instanceof Pi&&(x="WebMercator");let C={projectionType:x,projection:n._projection,nativeExtent:n.tileXYToNativeRectangle(h.x,h.y,h.level),height:A._height,width:A._width,scale:A._structure.heightScale,offset:A._structure.heightOffset};if(A._encoding===Id.LERC){let T=Tye.default.decode(A._buffer);C.buffer=T.pixels[0]}else C.buffer=A._buffer;p.push(C)}return p})}async function Zmt(e){let t=e._geoidTiledTerrainProvider;if(!l(t)){console.log("No Geoid Terrain service provided - no geoid conversion will be performed.");return}try{let n=await Xmt(t,e._extent);e._geoidDataList=n}catch{console.log("Error retrieving Geoid Terrain tiles - no geoid conversion will be performed.")}}Kr.prototype.loadGeoidData=async function(){return l(this._geoidDataPromise)?this._geoidDataPromise:(this._geoidDataPromise=Zmt(this),this._geoidDataPromise)};Kr.prototype._computeExtent=function(){let e;for(let t=0;t<this._layers.length;t++)if(l(this._layers[t]._extent)){let n=this._layers[t]._extent;l(e)?le.union(e,n,e):e=le.clone(n)}this._extent=e};var mb=Kr;var Eye=Object.freeze({UNLOADED:0,RECEIVING:1,RECEIVED:2,LOADED:3,FAILED:4,UNAVAILABLE:5});function E4(e,t){this.spatialNode=e,this.keyframe=t,this.state=Eye.UNLOADED,this.metadatas=[],this.megatextureIndex=-1,this.priority=-Number.MAX_VALUE,this.highPriorityFrameNumber=-1}E4.priorityComparator=function(e,t){return e.priority-t.priority};E4.searchComparator=function(e,t){return e.keyframe-t.keyframe};E4.LoadState=Eye;var $i=E4;function bye(){}Object.defineProperties(bye.prototype,{color:{get:fe.throwInstantiationError},intensity:{get:fe.throwInstantiationError}});var Sye=bye;var Qmt=/\/$/,wye=new It('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function pb(e){e=y(e,y.EMPTY_OBJECT);let t=e.styleId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=we.createIfNeeded(y(e.url,"https://api.mapbox.com/styles/v1/"));this._styleId=t,this._accessToken=n;let o=y(e.tilesize,512);this._tilesize=o;let r=y(e.username,"mapbox");this._username=r;let s=l(e.scaleFactor)?"@2x":"",a=i.getUrlComponent();Qmt.test(a)||(a+="/"),a+=`${this._username}/${t}/tiles/${this._tilesize}/{z}/{x}/{y}${s}`,i.url=a,i.setQueryParameters({access_token:n});let c;l(e.credit)?(c=e.credit,typeof c=="string"&&(c=new It(c))):c=wye,this._resource=i,this._imageryProvider=new Zs({url:i,credit:c,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle}),this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(pb.prototype,{url:{get:function(){return this._imageryProvider.url}},ready:{get:function(){return $("MapboxStyleImageryProvider.ready","MapboxStyleImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._imageryProvider.ready}},readyPromise:{get:function(){return $("MapboxStyleImageryProvider.readyPromise","MapboxStyleImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._imageryProvider.readyPromise}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},defaultAlpha:{get:function(){return $("MapboxStyleImageryProvider.defaultAlpha","MapboxStyleImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("MapboxStyleImageryProvider.defaultAlpha","MapboxStyleImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("MapboxStyleImageryProvider.defaultNightAlpha","MapboxStyleImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("MapboxStyleImageryProvider.defaultNightAlpha","MapboxStyleImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("MapboxStyleImageryProvider.defaultDayAlpha","MapboxStyleImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("MapboxStyleImageryProvider.defaultDayAlpha","MapboxStyleImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("MapboxStyleImageryProvider.defaultBrightness","MapboxStyleImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("MapboxStyleImageryProvider.defaultBrightness","MapboxStyleImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("MapboxStyleImageryProvider.defaultContrast","MapboxStyleImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("MapboxStyleImageryProvider.defaultContrast","MapboxStyleImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("MapboxStyleImageryProvider.defaultHue","MapboxStyleImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("MapboxStyleImageryProvider.defaultHue","MapboxStyleImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("MapboxStyleImageryProvider.defaultSaturation","MapboxStyleImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("MapboxStyleImageryProvider.defaultSaturation","MapboxStyleImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("MapboxStyleImageryProvider.defaultGamma","MapboxStyleImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("MapboxStyleImageryProvider.defaultGamma","MapboxStyleImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("MapboxStyleImageryProvider.defaultMinificationFilter","MapboxStyleImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("MapboxStyleImageryProvider.defaultMinificationFilter","MapboxStyleImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("MapboxStyleImageryProvider.defaultMagnificationFilter","MapboxStyleImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("MapboxStyleImageryProvider.defaultMagnificationFilter","MapboxStyleImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});pb.prototype.getTileCredits=function(e,t,n){};pb.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};pb.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};pb._defaultCredit=wye;var vye=pb;function Ey(e,t,n,i,o){i===nn.UNSIGNED_SHORT&&(i=nn.FLOAT32);let r=e.floatingPointTexture;if(i===nn.FLOAT32&&!r)throw new de("Floating point texture not supported");let s;i===nn.FLOAT32||i===nn.FLOAT64?s=Je.FLOAT:i===nn.UINT8&&(s=Je.UNSIGNED_BYTE);let a;n===1?a=e.webgl2?lt.RED:lt.LUMINANCE:n===2?a=e.webgl2?lt.RG:lt.LUMINANCE_ALPHA:n===3?a=lt.RGB:n===4&&(a=lt.RGBA);let c=512*1024*1024,u=128*1024*1024;o=Math.min(y(o,u),c);let f=zt.maximumTextureSize,d=nn.getSizeInBytes(i),p=Math.floor(o/(n*d)),g=Math.min(f,P.previousPowerOfTwo(Math.floor(Math.sqrt(p)))),h=Math.ceil(Math.sqrt(t.x)),A=Math.ceil(t.z/h),x=h*t.x,C=A*t.y,T=Math.floor(g/x),E=Math.floor(g/C);if(T===0||E===0)throw new de("Tileset is too large to fit into megatexture");this.channelCount=n,this.componentType=i,this.voxelCountPerTile=m.clone(t,new m),this.maximumTileCount=T*E,this.regionCountPerMegatexture=new H(T,E),this.voxelCountPerRegion=new H(x,C),this.sliceCountPerRegion=new H(h,A),this.voxelSizeUv=new H(1/g,1/g),this.sliceSizeUv=new H(t.x/g,t.y/g),this.regionSizeUv=new H(x/g,C/g),this.texture=new Bt({context:e,pixelFormat:a,pixelDatatype:s,flipY:!1,width:g,height:g,sampler:new dn({wrapS:Dn.CLAMP_TO_EDGE,wrapT:Dn.CLAMP_TO_EDGE,minificationFilter:ln.LINEAR,magnificationFilter:bi.LINEAR})});let S=nn.toComponentDatatype(i);this.tileVoxelDataTemp=X.createTypedArray(S,x*C*n),this.nodes=new Array(this.maximumTileCount);for(let v=0;v<this.maximumTileCount;v++)this.nodes[v]=new $mt(v);for(let v=0;v<this.maximumTileCount;v++){let D=this.nodes[v];D.previousNode=v>0?this.nodes[v-1]:void 0,D.nextNode=v<this.maximumTileCount-1?this.nodes[v+1]:void 0}this.occupiedList=void 0,this.emptyList=this.nodes[0],this.occupiedCount=0}function $mt(e){this.index=e,this.nextNode=void 0,this.previousNode=void 0}Ey.prototype.add=function(e){if(this.isFull())throw new fe("Trying to add when there are no empty spots");let t=this.emptyList;this.emptyList=this.emptyList.nextNode,l(this.emptyList)&&(this.emptyList.previousNode=void 0),t.nextNode=this.occupiedList,l(t.nextNode)&&(t.nextNode.previousNode=t),this.occupiedList=t;let n=t.index;return this.writeDataToTexture(n,e),this.occupiedCount++,n};Ey.prototype.remove=function(e){if(e<0||e>=this.maximumTileCount)throw new fe("Megatexture index out of bounds");let t=this.nodes[e];l(t.previousNode)&&(t.previousNode.nextNode=t.nextNode),l(t.nextNode)&&(t.nextNode.previousNode=t.previousNode),t.nextNode=this.emptyList,l(t.nextNode)&&(t.nextNode.previousNode=t),t.previousNode=void 0,this.emptyList=t,this.occupiedCount--};Ey.prototype.isFull=function(){return this.emptyList===void 0};Ey.getApproximateTextureMemoryByteLength=function(e,t,n,i){i===nn.UNSIGNED_SHORT&&(i=nn.FLOAT32);let o=nn.getSizeInBytes(i),r=e*t.x*t.y*t.z,s=Math.ceil(Math.sqrt(t.z)),a=Math.ceil(t.z/s),c=s*t.x,u=a*t.y,f=P.previousPowerOfTwo(Math.floor(Math.sqrt(r)));for(;;){let p=Math.floor(f/c),g=Math.floor(f/u);if(p*g>=e)break;f*=2}return f*f*n*o};Ey.prototype.writeDataToTexture=function(e,t){let n=t.constructor===Uint16Array?new Float32Array(t):t,i=this.voxelCountPerTile,o=this.sliceCountPerRegion,r=this.voxelCountPerRegion,s=this.channelCount,a=this.tileVoxelDataTemp;for(let A=0;A<i.z;A++){let x=A%o.x*i.x,C=Math.floor(A/o.x)*i.y;for(let T=0;T<i.y;T++)for(let E=0;E<i.x;E++){let S=A*i.y*i.x+T*i.x+E,v=(C+T)*r.x+(x+E);for(let D=0;D<s;D++)a[v*s+D]=n[S*s+D]}}let c=this.regionCountPerMegatexture,u=r.x,f=r.y,d=e%c.x*r.x,p=Math.floor(e/c.x)*r.y,h={source:{arrayBufferView:a,width:u,height:f},xOffset:d,yOffset:p};this.texture.copyFrom(h)};Ey.prototype.isDestroyed=function(){return!1};Ey.prototype.destroy=function(){return this.texture=this.texture&&this.texture.destroy(),ue(this)};var fI=Ey;function sq(e){}sq.prototype.isReady=function(){return!0};sq.prototype.shouldDiscardImage=function(e){return!1};var Dye=sq;var eht=new It("MapQuest, Open Street Map and contributors, CC-BY-SA");function b4(e){e=y(e,y.EMPTY_OBJECT);let t=we.createIfNeeded(y(e.url,"https://a.tile.openstreetmap.org/"));t.appendForwardSlash(),t.url+=`{z}/{x}/{y}.${y(e.fileExtension,"png")}`;let n=new Fr({ellipsoid:e.ellipsoid}),i=256,o=256,r=y(e.minimumLevel,0),s=e.maximumLevel,a=y(e.rectangle,n.rectangle),c=n.positionToTileXY(le.southwest(a),r),u=n.positionToTileXY(le.northeast(a),r),f=(Math.abs(u.x-c.x)+1)*(Math.abs(u.y-c.y)+1),d=y(e.credit,eht);typeof d=="string"&&(d=new It(d)),Zs.call(this,{url:t,credit:d,tilingScheme:n,tileWidth:i,tileHeight:o,minimumLevel:r,maximumLevel:s,rectangle:a})}l(Object.create)&&(b4.prototype=Object.create(Zs.prototype),b4.prototype.constructor=b4);var _b=b4;var tht=new H(1,1);function aq(e){e=y(e,y.EMPTY_OBJECT),this.mass=y(e.mass,1),this.position=m.clone(y(e.position,m.ZERO)),this.velocity=m.clone(y(e.velocity,m.ZERO)),this.life=y(e.life,Number.MAX_VALUE),this.image=e.image,this.startColor=z.clone(y(e.startColor,z.WHITE)),this.endColor=z.clone(y(e.endColor,z.WHITE)),this.startScale=y(e.startScale,1),this.endScale=y(e.endScale,1),this.imageSize=H.clone(y(e.imageSize,tht)),this._age=0,this._normalizedAge=0,this._billboard=void 0}Object.defineProperties(aq.prototype,{age:{get:function(){return this._age}},normalizedAge:{get:function(){return this._normalizedAge}}});var Iye=new m;aq.prototype.update=function(e,t){return m.multiplyByScalar(this.velocity,e,Iye),m.add(this.position,Iye,this.position),l(t)&&t(this,e),this._age+=e,this.life===Number.MAX_VALUE?this._normalizedAge=0:this._normalizedAge=this._age/this.life,this._age<=this.life};var dI=aq;function Pye(e){e=y(e,y.EMPTY_OBJECT),this.time=y(e.time,0),this.minimum=y(e.minimum,0),this.maximum=y(e.maximum,50),this._complete=!1}Object.defineProperties(Pye.prototype,{complete:{get:function(){return this._complete}}});var Oye=Pye;function Mye(e){}Mye.prototype.emit=function(e){fe.throwInstantiationError()};var Rye=Mye;var Bye=new H(1,1);function mI(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.updateCallback=e.updateCallback,this.loop=y(e.loop,!0),this.image=y(e.image,void 0);let t=e.emitter;l(t)||(t=new u4(.5)),this._emitter=t,this._bursts=e.bursts,this._modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._emitterModelMatrix=B.clone(y(e.emitterModelMatrix,B.IDENTITY)),this._matrixDirty=!0,this._combinedMatrix=new B,this._startColor=z.clone(y(e.color,y(e.startColor,z.WHITE))),this._endColor=z.clone(y(e.color,y(e.endColor,z.WHITE))),this._startScale=y(e.scale,y(e.startScale,1)),this._endScale=y(e.scale,y(e.endScale,1)),this._emissionRate=y(e.emissionRate,5),this._minimumSpeed=y(e.speed,y(e.minimumSpeed,1)),this._maximumSpeed=y(e.speed,y(e.maximumSpeed,1)),this._minimumParticleLife=y(e.particleLife,y(e.minimumParticleLife,5)),this._maximumParticleLife=y(e.particleLife,y(e.maximumParticleLife,5)),this._minimumMass=y(e.mass,y(e.minimumMass,1)),this._maximumMass=y(e.mass,y(e.maximumMass,1)),this._minimumImageSize=H.clone(y(e.imageSize,y(e.minimumImageSize,Bye))),this._maximumImageSize=H.clone(y(e.imageSize,y(e.maximumImageSize,Bye))),this._sizeInMeters=y(e.sizeInMeters,!1),this._lifetime=y(e.lifetime,Number.MAX_VALUE),this._billboardCollection=void 0,this._particles=[],this._particlePool=[],this._previousTime=void 0,this._currentTime=0,this._carryOver=0,this._complete=new ge,this._isComplete=!1,this._updateParticlePool=!0,this._particleEstimate=0}Object.defineProperties(mI.prototype,{emitter:{get:function(){return this._emitter},set:function(e){this._emitter=e}},bursts:{get:function(){return this._bursts},set:function(e){this._bursts=e,this._updateParticlePool=!0}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!B.equals(this._modelMatrix,e),B.clone(e,this._modelMatrix)}},emitterModelMatrix:{get:function(){return this._emitterModelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!B.equals(this._emitterModelMatrix,e),B.clone(e,this._emitterModelMatrix)}},startColor:{get:function(){return this._startColor},set:function(e){z.clone(e,this._startColor)}},endColor:{get:function(){return this._endColor},set:function(e){z.clone(e,this._endColor)}},startScale:{get:function(){return this._startScale},set:function(e){this._startScale=e}},endScale:{get:function(){return this._endScale},set:function(e){this._endScale=e}},emissionRate:{get:function(){return this._emissionRate},set:function(e){this._emissionRate=e,this._updateParticlePool=!0}},minimumSpeed:{get:function(){return this._minimumSpeed},set:function(e){this._minimumSpeed=e}},maximumSpeed:{get:function(){return this._maximumSpeed},set:function(e){this._maximumSpeed=e}},minimumParticleLife:{get:function(){return this._minimumParticleLife},set:function(e){this._minimumParticleLife=e}},maximumParticleLife:{get:function(){return this._maximumParticleLife},set:function(e){this._maximumParticleLife=e,this._updateParticlePool=!0}},minimumMass:{get:function(){return this._minimumMass},set:function(e){this._minimumMass=e}},maximumMass:{get:function(){return this._maximumMass},set:function(e){this._maximumMass=e}},minimumImageSize:{get:function(){return this._minimumImageSize},set:function(e){this._minimumImageSize=e}},maximumImageSize:{get:function(){return this._maximumImageSize},set:function(e){this._maximumImageSize=e}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters=e}},lifetime:{get:function(){return this._lifetime},set:function(e){this._lifetime=e}},complete:{get:function(){return this._complete}},isComplete:{get:function(){return this._isComplete}}});function nht(e){let t=e._emissionRate,n=e._maximumParticleLife,i=0,o=e._bursts;if(l(o)){let d=o.length;for(let p=0;p<d;++p)i+=o[p].maximum}let r=e._billboardCollection,s=e.image,a=Math.ceil(t*n+i),c=e._particles,u=e._particlePool,f=Math.max(a-c.length-u.length,0);for(let d=0;d<f;++d){let p=new dI;p._billboard=r.add({image:s,show:!1}),u.push(p)}e._particleEstimate=a}function iht(e){let t=e._particlePool.pop();return l(t)||(t=new dI),t}function oht(e,t){e._particlePool.push(t)}function rht(e){let t=e._particles,n=e._particlePool,i=e._billboardCollection,o=t.length,r=n.length,s=e._particleEstimate,a=r-Math.max(s-o-r,0);for(let c=a;c<r;++c){let u=n[c];i.remove(u._billboard)}n.length=a}function sht(e){l(e._billboard)&&(e._billboard.show=!1)}function Lye(e,t){let n=t._billboard;l(n)||(n=t._billboard=e._billboardCollection.add({image:t.image})),n.width=t.imageSize.x,n.height=t.imageSize.y,n.position=t.position,n.sizeInMeters=e.sizeInMeters,n.show=!0;let i=P.lerp(t.startColor.red,t.endColor.red,t.normalizedAge),o=P.lerp(t.startColor.green,t.endColor.green,t.normalizedAge),r=P.lerp(t.startColor.blue,t.endColor.blue,t.normalizedAge),s=P.lerp(t.startColor.alpha,t.endColor.alpha,t.normalizedAge);n.color=new z(i,o,r,s),n.scale=P.lerp(t.startScale,t.endScale,t.normalizedAge)}function aht(e,t){t.startColor=z.clone(e._startColor,t.startColor),t.endColor=z.clone(e._endColor,t.endColor),t.startScale=e._startScale,t.endScale=e._endScale,t.image=e.image,t.life=P.randomBetween(e._minimumParticleLife,e._maximumParticleLife),t.mass=P.randomBetween(e._minimumMass,e._maximumMass),t.imageSize.x=P.randomBetween(e._minimumImageSize.x,e._maximumImageSize.x),t.imageSize.y=P.randomBetween(e._minimumImageSize.y,e._maximumImageSize.y),t._normalizedAge=0,t._age=0;let n=P.randomBetween(e._minimumSpeed,e._maximumSpeed);m.multiplyByScalar(t.velocity,n,t.velocity),e._particles.push(t)}function cht(e,t){if(e._isComplete)return 0;t=P.mod(t,e._lifetime);let n=t*e._emissionRate,i=Math.floor(n);if(e._carryOver+=n-i,e._carryOver>1&&(i++,e._carryOver-=1),l(e.bursts)){let o=e.bursts.length;for(let r=0;r<o;r++){let s=e.bursts[r],a=e._currentTime;l(s)&&!s._complete&&a>s.time&&(i+=P.randomBetween(s.minimum,s.maximum),s._complete=!0)}}return i}var S4=new m;mI.prototype.update=function(e){if(!this.show)return;l(this._billboardCollection)||(this._billboardCollection=new zu),this._updateParticlePool&&(nht(this),this._updateParticlePool=!1);let t=0;this._previousTime&&(t=ee.secondsDifference(e.time,this._previousTime)),t<0&&(t=0);let n=this._particles,i=this._emitter,o=this.updateCallback,r,s,a=n.length;for(r=0;r<a;++r)s=n[r],s.update(t,o)?Lye(this,s):(sht(s),oht(this,s),n[r]=n[a-1],--r,--a);n.length=a;let c=cht(this,t);if(c>0&&l(i)){this._matrixDirty&&(this._combinedMatrix=B.multiply(this.modelMatrix,this.emitterModelMatrix,this._combinedMatrix),this._matrixDirty=!1);let u=this._combinedMatrix;for(r=0;r<c;r++)s=iht(this),this._emitter.emit(s),m.add(s.position,s.velocity,S4),B.multiplyByPoint(u,S4,S4),s.position=B.multiplyByPoint(u,s.position,s.position),m.subtract(S4,s.position,s.velocity),m.normalize(s.velocity,s.velocity),aht(this,s),Lye(this,s)}if(this._billboardCollection.update(e),this._previousTime=ee.clone(e.time,this._previousTime),this._currentTime+=t,this._lifetime!==Number.MAX_VALUE&&this._currentTime>this._lifetime)if(this.loop){if(this._currentTime=P.mod(this._currentTime,this._lifetime),this.bursts){let u=this.bursts.length;for(r=0;r<u;r++)this.bursts[r]._complete=!1}}else this._isComplete=!0,this._complete.raiseEvent(this);e.frameNumber%120===0&&rht(this)};mI.prototype.isDestroyed=function(){return!1};mI.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),ue(this)};var Nye=mI;var Vye=ar(YI(),1);function lht(e,t,n){return` float clipDistance = clip(gl_FragCoord, ${e}, ${t}); + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = ${n}.rgb; + float clippingPlanesEdgeWidth = ${n}.a; + if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) + { + out_FragColor = clippingPlanesEdgeColor; + } +`}var w4=lht;var uht={modifyFragmentShader:function(t){return t=He.replaceMain(t,"czm_splitter_main"),t+=`uniform float czm_splitDirection; +void main() +{ +#ifndef SHADOW_MAP + if (czm_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (czm_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif + czm_splitter_main(); +} +`,t},addUniforms:function(t,n){n.czm_splitDirection=function(){return t.splitDirection}}},hI=uht;var QA={NEEDS_DECODE:0,DECODING:1,READY:2,FAILED:3};function pI(e){this._parsedContent=void 0,this._drawCommand=void 0,this._isTranslucent=!1,this._styleTranslucent=!1,this._constantColor=z.clone(z.DARKGRAY),this._highlightColor=z.clone(z.WHITE),this._pointSize=1,this._rtcCenter=void 0,this._quantizedVolumeScale=void 0,this._quantizedVolumeOffset=void 0,this._styleableShaderAttributes=void 0,this._isQuantized=!1,this._isOctEncoded16P=!1,this._isRGB565=!1,this._hasColors=!1,this._hasNormals=!1,this._hasBatchIds=!1,this._decodingState=QA.READY,this._dequantizeInShader=!0,this._isQuantizedDraco=!1,this._isOctEncodedDraco=!1,this._quantizedRange=0,this._octEncodedRange=0,this.backFaceCulling=!1,this._backFaceCulling=!1,this.normalShading=!0,this._normalShading=!0,this._opaqueRenderState=void 0,this._translucentRenderState=void 0,this._mode=void 0,this._ready=!1,this._pointsLength=0,this._geometryByteLength=0,this._vertexShaderLoaded=e.vertexShaderLoaded,this._fragmentShaderLoaded=e.fragmentShaderLoaded,this._uniformMapLoaded=e.uniformMapLoaded,this._batchTableLoaded=e.batchTableLoaded,this._pickIdLoaded=e.pickIdLoaded,this._opaquePass=y(e.opaquePass,be.OPAQUE),this._cull=y(e.cull,!0),this.style=void 0,this._style=void 0,this.styleDirty=!1,this.modelMatrix=B.clone(B.IDENTITY),this._modelMatrix=B.clone(B.IDENTITY),this.time=0,this.shadows=xn.ENABLED,this._boundingSphere=void 0,this.clippingPlanes=void 0,this.isClipped=!1,this.clippingPlanesDirty=!1,this.clippingPlanesOriginMatrix=void 0,this.attenuation=!1,this._attenuation=!1,this.geometricError=0,this.geometricErrorScale=1,this.maximumAttenuation=this._pointSize,this.splitDirection=y(e.splitDirection,el.NONE),this._splittingEnabled=!1,this._error=void 0,fht(this,e)}Object.defineProperties(pI.prototype,{pointsLength:{get:function(){return this._pointsLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}},color:{get:function(){return z.clone(this._highlightColor)},set:function(e){this._highlightColor=z.clone(e,this._highlightColor)}},boundingSphere:{get:function(){if(l(this._drawCommand))return this._drawCommand.boundingVolume},set:function(e){this._boundingSphere=ae.clone(e,this._boundingSphere)}}});function fht(e,t){let n=nT.parse(t.arrayBuffer,t.byteOffset);if(e._parsedContent=n,e._rtcCenter=n.rtcCenter,e._hasNormals=n.hasNormals,e._hasColors=n.hasColors,e._hasBatchIds=n.hasBatchIds,e._isTranslucent=n.isTranslucent,!n.hasBatchIds&&l(n.batchTableBinary)&&(n.styleableProperties=I_.getBinaryProperties(n.pointsLength,n.batchTableJson,n.batchTableBinary)),l(n.draco)){let a=n.draco;e._decodingState=QA.NEEDS_DECODE,a.dequantizeInShader=e._dequantizeInShader}let i=n.positions;l(i)&&(e._isQuantized=i.isQuantized,e._quantizedVolumeScale=i.quantizedVolumeScale,e._quantizedVolumeOffset=i.quantizedVolumeOffset,e._quantizedRange=i.quantizedRange);let o=n.normals;l(o)&&(e._isOctEncoded16P=o.octEncoded);let r=n.colors;l(r)&&(l(r.constantColor)&&(e._constantColor=z.clone(r.constantColor,e._constantColor),e._hasColors=!1),e._isRGB565=r.isRGB565);let s=n.batchIds;l(n.batchIds)&&(s.name="BATCH_ID",s.semantic="BATCH_ID",s.setIndex=void 0),n.hasBatchIds&&e._batchTableLoaded(n.batchLength,n.batchTableJson,n.batchTableBinary),e._pointsLength=n.pointsLength}var dht=new m,mht=new m,hht=new m,Fye,v4;function pht(e){if(!l(v4)){Fye=new Vye.default(0),v4=new Array(e);for(let t=0;t<e;++t)v4[t]=Fye.random()}return v4}function _ht(e){let n=e.length/3,i=Math.min(n,20),o=pht(20),r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=m.fromElements(r,r,r,dht),c=m.fromElements(s,s,s,mht);for(let f=0;f<i;++f){let d=Math.floor(o[f]*n),p=m.unpack(e,d*3,hht);m.minimumByComponent(a,p,a),m.maximumByComponent(c,p,c)}let u=ae.fromCornerPoints(a,c);return u.radius+=P.EPSILON2,u}function Uye(e,t){let n=X.fromTypedArray(e);return n===X.INT||n===X.UNSIGNED_INT||n===X.DOUBLE?(Mt("Cast pnts property to floats",`Point cloud property "${t}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),new Float32Array(e)):e}var ght=new re,yht=new re,Aht=new z,kye=0,D4=1,dq=2,zye=3,xht=4,cq=new B,Cht=new B;function Tht(e,t){let n=t.context,i=e._parsedContent,o=e._pointsLength,r=i.positions,s=i.colors,a=i.normals,c=i.batchIds,u=i.styleableProperties,f=l(u),d=e._isQuantized,p=e._isQuantizedDraco,g=e._isOctEncoded16P,h=e._isOctEncodedDraco,A=e._quantizedRange,x=e._octEncodedRange,C=e._isRGB565,T=e._isTranslucent,E=e._hasColors,S=e._hasNormals,v=e._hasBatchIds,D,O,M=[],L={};if(e._styleableShaderAttributes=L,f){let V=xht;for(let G in u)if(u.hasOwnProperty(G)){let U=u[G],q=Uye(U.typedArray,G);D=U.componentCount,O=X.fromTypedArray(q);let Y=mt.createVertexBuffer({context:n,typedArray:q,usage:Fe.STATIC_DRAW});e._geometryByteLength+=Y.sizeInBytes;let Q={index:V,vertexBuffer:Y,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0};M.push(Q),L[G]={location:V,componentCount:D},++V}}let N=mt.createVertexBuffer({context:n,typedArray:r.typedArray,usage:Fe.STATIC_DRAW});e._geometryByteLength+=N.sizeInBytes;let _;E&&(_=mt.createVertexBuffer({context:n,typedArray:s.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=_.sizeInBytes);let b;S&&(b=mt.createVertexBuffer({context:n,typedArray:a.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=b.sizeInBytes);let w;v&&(c.typedArray=Uye(c.typedArray,"batchIds"),w=mt.createVertexBuffer({context:n,typedArray:c.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=w.sizeInBytes);let I=[];if(d?O=X.UNSIGNED_SHORT:p?O=A<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT:O=X.FLOAT,I.push({index:kye,vertexBuffer:N,componentsPerAttribute:3,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0}),e._cull&&(d||p?e._boundingSphere=ae.fromCornerPoints(m.ZERO,e._quantizedVolumeScale):e._boundingSphere=_ht(r.typedArray)),E)if(C)I.push({index:D4,vertexBuffer:_,componentsPerAttribute:1,componentDatatype:X.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0});else{let V=T?4:3;I.push({index:D4,vertexBuffer:_,componentsPerAttribute:V,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0})}S&&(g?(D=2,O=X.UNSIGNED_BYTE):h?(D=2,O=x<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT):(D=3,O=X.FLOAT),I.push({index:dq,vertexBuffer:b,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0})),v&&I.push({index:zye,vertexBuffer:w,componentsPerAttribute:1,componentDatatype:X.fromTypedArray(c.typedArray),normalize:!1,offsetInBytes:0,strideInBytes:0}),f&&(I=I.concat(M));let R=new ri({context:n,attributes:I}),F={depthTest:{enabled:!0}},k={depthTest:{enabled:!0},depthMask:!1,blending:mn.ALPHA_BLEND};e._opaquePass===be.CESIUM_3D_TILE&&(F.stencilTest=Ft.setCesium3DTileBit(),F.stencilMask=Ft.CESIUM_3D_TILE_MASK,k.stencilTest=Ft.setCesium3DTileBit(),k.stencilMask=Ft.CESIUM_3D_TILE_MASK),e._opaqueRenderState=ze.fromCache(F),e._translucentRenderState=ze.fromCache(k),e._drawCommand=new it({boundingVolume:new ae,cull:e._cull,modelMatrix:new B,primitiveType:Le.POINTS,vertexArray:R,count:o,shaderProgram:void 0,uniformMap:void 0,renderState:T?e._translucentRenderState:e._opaqueRenderState,pass:T?be.TRANSLUCENT:e._opaquePass,owner:e,castShadows:!1,receiveShadows:!1,pickId:e._pickIdLoaded()})}function Eht(e,t){let n=t.context,i=e._isQuantized,o=e._isQuantizedDraco,r=e._isOctEncodedDraco,s={u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier:function(){let a=ght;if(a.x=e._attenuation?e.maximumAttenuation:e._pointSize,a.x*=t.pixelRatio,a.y=e.time,e._attenuation){let c=t.camera.frustum,u;t.mode===ne.SCENE2D||c instanceof tn?u=Number.POSITIVE_INFINITY:u=n.drawingBufferHeight/t.camera.frustum.sseDenominator,a.z=e.geometricError*e.geometricErrorScale,a.w=u}return a},u_highlightColor:function(){return e._highlightColor},u_constantColor:function(){return e._constantColor},u_clippingPlanes:function(){let a=e.clippingPlanes;return e.isClipped?a.texture:n.defaultTexture},u_clippingPlanesEdgeStyle:function(){let a=e.clippingPlanes;if(!l(a))return z.TRANSPARENT;let c=z.clone(a.edgeColor,Aht);return c.alpha=a.edgeWidth,c},u_clippingPlanesMatrix:function(){let a=e.clippingPlanes;if(!l(a))return B.IDENTITY;let c=y(e.clippingPlanesOriginMatrix,e._modelMatrix);B.multiply(n.uniformState.view3D,c,cq);let u=B.multiply(cq,a.modelMatrix,cq);return B.inverseTranspose(u,Cht)}};hI.addUniforms(e,s),(i||o||r)&&(s=gt(s,{u_quantizedVolumeScaleAndOctEncodedRange:function(){let a=yht;if(l(e._quantizedVolumeScale)){let c=m.clone(e._quantizedVolumeScale,a);m.divideByScalar(c,e._quantizedRange,a)}return a.w=e._octEncodedRange,a}})),l(e._uniformMapLoaded)&&(s=e._uniformMapLoaded(s)),e._drawCommand.uniformMap=s}function lq(e,t){let n=/czm_3dtiles_property_(\d+)/g,i=n.exec(e);for(;i!==null;){let o=parseInt(i[1]);t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function uq(e,t){e=e.slice(e.indexOf(` +`));let n=/czm_3dtiles_builtin_property_(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function fq(e,t){let n=e.numberOfAttributes;for(let i=0;i<n;++i){let o=e.getAttribute(i);if(o.index===t)return o}}var bht={POSITION:"czm_3dtiles_builtin_property_POSITION",POSITION_ABSOLUTE:"czm_3dtiles_builtin_property_POSITION_ABSOLUTE",COLOR:"czm_3dtiles_builtin_property_COLOR",NORMAL:"czm_3dtiles_builtin_property_NORMAL"};function Sht(e,t,n){let i,o,r,s=t.context,a=l(n),c=e._isQuantized,u=e._isQuantizedDraco,f=e._isOctEncoded16P,d=e._isOctEncodedDraco,p=e._isRGB565,g=e._isTranslucent,h=e._hasColors,A=e._hasNormals,x=e._hasBatchIds,C=e._backFaceCulling,T=e._normalShading,E=e._drawCommand.vertexArray,S=e.clippingPlanes,v=e._attenuation,D,O,M,L=g,N=Ye(bht),_={},b=e._styleableShaderAttributes;for(o in b)b.hasOwnProperty(o)&&(r=b[o],N[o]=`czm_3dtiles_property_${r.location}`,_[r.location]=r);if(a){let se={translucent:!1},Ae="(vec3 czm_3dtiles_builtin_property_POSITION, vec3 czm_3dtiles_builtin_property_POSITION_ABSOLUTE, vec4 czm_3dtiles_builtin_property_COLOR, vec3 czm_3dtiles_builtin_property_NORMAL)";D=n.getColorShaderFunction(`getColorFromStyle${Ae}`,N,se),O=n.getShowShaderFunction(`getShowFromStyle${Ae}`,N,se),M=n.getPointSizeShaderFunction(`getPointSizeFromStyle${Ae}`,N,se),l(D)&&se.translucent&&(L=!0)}e._styleTranslucent=L;let w=l(D),I=l(O),R=l(M),F=e.isClipped,k=[],V=[];w&&(lq(D,k),uq(D,V)),I&&(lq(O,k),uq(O,V)),R&&(lq(M,k),uq(M,V));let G=V.indexOf("COLOR")>=0,U=V.indexOf("NORMAL")>=0;if(U&&!A)throw new de("Style references the NORMAL semantic but the point cloud does not have normals");for(o in b)if(b.hasOwnProperty(o)){r=b[o];let se=k.indexOf(r.location)>=0,Ae=fq(E,r.location);Ae.enabled=se}let q=h&&(!w||G);if(h){let se=fq(E,D4);se.enabled=q}let Y=A&&(T||C||U);if(A){let se=fq(E,dq);se.enabled=Y}let Q={a_position:kye};q&&(Q.a_color=D4),Y&&(Q.a_normal=dq),x&&(Q.a_batchId=zye);let W="",K=k.length;for(i=0;i<K;++i){let se=k[i];r=_[se];let Ae=r.componentCount,me=`czm_3dtiles_property_${se}`,Se;Ae===1?Se="float":Se=`vec${Ae}`,W+=`in ${Se} ${me}; +`,Q[me]=r.location}Eht(e,t);let J=`in vec3 a_position; +out vec4 v_color; +uniform vec4 u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier; +uniform vec4 u_constantColor; +uniform vec4 u_highlightColor; +`;J+=`float u_pointSize; +float tiles3d_tileset_time; +`,v&&(J+=`float u_geometricError; +float u_depthMultiplier; +`),J+=W,q&&(g?J+=`in vec4 a_color; +`:p?J+=`in float a_color; +const float SHIFT_RIGHT_11 = 1.0 / 2048.0; +const float SHIFT_RIGHT_5 = 1.0 / 32.0; +const float SHIFT_LEFT_11 = 2048.0; +const float SHIFT_LEFT_5 = 32.0; +const float NORMALIZE_6 = 1.0 / 64.0; +const float NORMALIZE_5 = 1.0 / 32.0; +`:J+=`in vec3 a_color; +`),Y&&(f||d?J+=`in vec2 a_normal; +`:J+=`in vec3 a_normal; +`),x&&(J+=`in float a_batchId; +`),(c||u||d)&&(J+=`uniform vec4 u_quantizedVolumeScaleAndOctEncodedRange; +`),w&&(J+=D),I&&(J+=O),R&&(J+=M),J+=`void main() +{ + u_pointSize = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.x; + tiles3d_tileset_time = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.y; +`,v&&(J+=` u_geometricError = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.z; + u_depthMultiplier = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.w; +`),q?g?J+=` vec4 color = a_color; +`:p?J+=` float compressed = a_color; + float r = floor(compressed * SHIFT_RIGHT_11); + compressed -= r * SHIFT_LEFT_11; + float g = floor(compressed * SHIFT_RIGHT_5); + compressed -= g * SHIFT_LEFT_5; + float b = compressed; + vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5); + vec4 color = vec4(rgb, 1.0); +`:J+=` vec4 color = vec4(a_color, 1.0); +`:J+=` vec4 color = u_constantColor; +`,c||u?J+=` vec3 position = a_position * u_quantizedVolumeScaleAndOctEncodedRange.xyz; +`:J+=` vec3 position = a_position; +`,J+=` vec3 position_absolute = vec3(czm_model * vec4(position, 1.0)); +`,Y?(f?J+=` vec3 normal = czm_octDecode(a_normal); +`:d?J+=` vec3 normal = czm_octDecode(a_normal, u_quantizedVolumeScaleAndOctEncodedRange.w).zxy; +`:J+=` vec3 normal = a_normal; +`,J+=` vec3 normalEC = czm_normal * normal; +`):J+=` vec3 normal = vec3(1.0); +`,w&&(J+=` color = getColorFromStyle(position, position_absolute, color, normal); +`),I&&(J+=` float show = float(getShowFromStyle(position, position_absolute, color, normal)); +`),R?J+=` gl_PointSize = getPointSizeFromStyle(position, position_absolute, color, normal) * czm_pixelRatio; +`:v?J+=` vec4 positionEC = czm_modelView * vec4(position, 1.0); + float depth = -positionEC.z; + gl_PointSize = min((u_geometricError / depth) * u_depthMultiplier, u_pointSize); +`:J+=` gl_PointSize = u_pointSize; +`,J+=` color = color * u_highlightColor; +`,Y&&T&&(J+=` float diffuseStrength = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC); + diffuseStrength = max(diffuseStrength, 0.4); + color.xyz *= diffuseStrength * czm_lightColor; +`),J+=` v_color = color; + gl_Position = czm_modelViewProjection * vec4(position, 1.0); +`,Y&&C&&(J+=` float visible = step(-normalEC.z, 0.0); + gl_Position *= visible; + gl_PointSize *= visible; +`),I&&(J+=` gl_Position.w *= float(show); + gl_PointSize *= float(show); +`),J+=`} +`;let _e=`in vec4 v_color; +`;F&&(_e+=`uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +`,_e+=` +`,_e+=ry(S,s),_e+=` +`),_e+=`void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +`,F&&(_e+=w4("u_clippingPlanes","u_clippingPlanesMatrix","u_clippingPlanesEdgeStyle")),_e+=`} +`,e.splitDirection!==el.NONE&&(_e=hI.modifyFragmentShader(_e)),l(e._vertexShaderLoaded)&&(J=e._vertexShaderLoaded(J)),l(e._fragmentShaderLoaded)&&(_e=e._fragmentShaderLoaded(_e));let xe=e._drawCommand;l(xe.shaderProgram)&&xe.shaderProgram.destroy(),xe.shaderProgram=Jt.fromCache({context:s,vertexShaderSource:J,fragmentShaderSource:_e,attributeLocations:Q});try{xe.shaderProgram._bind()}catch{throw new de("Error generating style shader: this may be caused by a type mismatch, index out-of-bounds, or other syntax error.")}}function wht(e,t){if(e._decodingState===QA.READY)return!1;if(e._decodingState===QA.NEEDS_DECODE){let n=e._parsedContent,i=n.draco,o=U_.decodePointCloud(i,t);l(o)&&(e._decodingState=QA.DECODING,o.then(function(r){e._decodingState=QA.READY;let s=l(r.POSITION)?r.POSITION.array:void 0,a=l(r.RGB)?r.RGB.array:void 0,c=l(r.RGBA)?r.RGBA.array:void 0,u=l(r.NORMAL)?r.NORMAL.array:void 0,f=l(r.BATCH_ID)?r.BATCH_ID.array:void 0,d=l(s)&&l(r.POSITION.data.quantization),p=l(u)&&l(r.NORMAL.data.quantization);if(d){let x=r.POSITION.data.quantization,C=x.range;e._quantizedVolumeScale=m.fromElements(C,C,C),e._quantizedVolumeOffset=m.unpack(x.minValues),e._quantizedRange=(1<<x.quantizationBits)-1,e._isQuantizedDraco=!0}p&&(e._octEncodedRange=(1<<r.NORMAL.data.quantization.quantizationBits)-1,e._isOctEncodedDraco=!0);let g=n.styleableProperties,h=i.batchTableProperties;for(let x in h)if(h.hasOwnProperty(x)){let C=r[x];l(g)||(g={}),g[x]={typedArray:C.array,componentCount:C.data.componentsPerAttribute}}l(s)&&(n.positions={typedArray:s});let A=y(c,a);l(A)&&(n.colors={typedArray:A}),l(u)&&(n.normals={typedArray:u}),l(f)&&(n.batchIds={typedArray:f}),n.styleableProperties=g}).catch(function(r){e._decodingState=QA.FAILED,e._error=r}))}return!0}var vht=new re,Dht=new m;pI.prototype.update=function(e){let t=e.context;if(l(this._error)){let u=this._error;throw this._error=void 0,u}if(wht(this,t))return;let i=!1,o=!B.equals(this._modelMatrix,this.modelMatrix);if(this._mode!==e.mode&&(this._mode=e.mode,o=!0),l(this._drawCommand)||(Tht(this,e),o=!0,i=!0,this._ready=!0,this._parsedContent=void 0),o){B.clone(this.modelMatrix,this._modelMatrix);let u=this._drawCommand.modelMatrix;if(B.clone(this._modelMatrix,u),l(this._rtcCenter)&&B.multiplyByTranslation(u,this._rtcCenter,u),l(this._quantizedVolumeOffset)&&B.multiplyByTranslation(u,this._quantizedVolumeOffset,u),e.mode!==ne.SCENE3D){let d=e.mapProjection,p=B.getColumn(u,3,vht);re.equals(p,re.UNIT_W)||Rt.basisTo2D(d,u,u)}let f=this._drawCommand.boundingVolume;if(ae.clone(this._boundingSphere,f),this._cull){let d=f.center;B.multiplyByPoint(u,d,d);let p=B.getScale(u,Dht);f.radius*=m.maximumComponent(p)}}this.clippingPlanesDirty&&(this.clippingPlanesDirty=!1,i=!0),this._attenuation!==this.attenuation&&(this._attenuation=this.attenuation,i=!0),this.backFaceCulling!==this._backFaceCulling&&(this._backFaceCulling=this.backFaceCulling,i=!0),this.normalShading!==this._normalShading&&(this._normalShading=this.normalShading,i=!0),(this._style!==this.style||this.styleDirty)&&(this._style=this.style,this.styleDirty=!1,i=!0);let r=this.splitDirection!==el.NONE;this._splittingEnabled!==r&&(this._splittingEnabled=r,i=!0),i&&Sht(this,e,this._style),this._drawCommand.castShadows=xn.castShadows(this.shadows),this._drawCommand.receiveShadows=xn.receiveShadows(this.shadows);let s=this._highlightColor.alpha<1||this._constantColor.alpha<1||this._styleTranslucent;this._drawCommand.renderState=s?this._translucentRenderState:this._opaqueRenderState,this._drawCommand.pass=s?be.TRANSLUCENT:this._opaquePass;let a=e.commandList,c=e.passes;(c.render||c.pick)&&a.push(this._drawCommand)};pI.prototype.isDestroyed=function(){return!1};pI.prototype.destroy=function(){let e=this._drawCommand;return l(e)&&(e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),ue(this)};var I4=pI;function yu(){fe.throwInstantiationError()}yu.computeDefaultLevelZeroMaximumGeometricError=function(e){return e.ellipsoid.maximumRadius*2*Math.PI*.25/(65*e.getNumberOfXTilesAtLevel(0))};Object.defineProperties(yu.prototype,{quadtree:{get:fe.throwInstantiationError,set:fe.throwInstantiationError},ready:{get:fe.throwInstantiationError},tilingScheme:{get:fe.throwInstantiationError},errorEvent:{get:fe.throwInstantiationError}});yu.prototype.update=fe.throwInstantiationError;yu.prototype.beginUpdate=fe.throwInstantiationError;yu.prototype.endUpdate=fe.throwInstantiationError;yu.prototype.getLevelMaximumGeometricError=fe.throwInstantiationError;yu.prototype.loadTile=fe.throwInstantiationError;yu.prototype.computeTileVisibility=fe.throwInstantiationError;yu.prototype.showTileThisFrame=fe.throwInstantiationError;yu.prototype.computeDistanceToTile=fe.throwInstantiationError;yu.prototype.isDestroyed=fe.throwInstantiationError;yu.prototype.destroy=fe.throwInstantiationError;var Hye=yu;function Cf(e,t,n,i,o,r,s){this.children=void 0,this.parent=o,this.level=e,this.x=t,this.y=n,this.z=i,this.keyframeNodes=[],this.renderableKeyframeNodes=[],this.renderableKeyframeNodeLerp=0,this.renderableKeyframeNodePrevious=void 0,this.renderableKeyframeNodeNext=void 0,this.orientedBoundingBox=new Bn,this.approximateVoxelSize=0,this.screenSpaceError=0,this.visitedFrameNumber=-1,this.computeBoundingVolumes(r,s)}var Iht=new m;Cf.prototype.computeBoundingVolumes=function(e,t){this.orientedBoundingBox=e.computeOrientedBoundingBoxForTile(this.level,this.x,this.y,this.z,this.orientedBoundingBox);let n=Z.getScale(this.orientedBoundingBox.halfAxes,Iht),i=2*m.maximumComponent(n);this.approximateVoxelSize=i/m.minimumComponent(t)};Cf.prototype.constructChildNodes=function(e,t){let{level:n,x:i,y:o,z:r}=this,s=i*2,a=o*2,c=r*2,u=a+1,f=s+1,d=c+1,p=n+1,g=[[p,s,a,c],[p,f,a,c],[p,s,u,c],[p,f,u,c],[p,s,a,d],[p,f,a,d],[p,s,u,d],[p,f,u,d]];this.children=g.map(([h,A,x,C])=>new Cf(h,A,x,C,this,e,t))};Cf.prototype.visibility=function(e,t){let n=this.orientedBoundingBox;return e.cullingVolume.computeVisibilityWithPlaneMask(n,t)};Cf.prototype.computeScreenSpaceError=function(e,t){let n=this.orientedBoundingBox,i=Math.sqrt(n.distanceSquaredTo(e));i=Math.max(i,P.EPSILON7);let o=this.approximateVoxelSize,r=t*(o/i);this.screenSpaceError=r};var Gye={keyframe:0};function _I(e,t){return Gye.keyframe=e,Do(t,Gye,$i.searchComparator)}Cf.prototype.computeSurroundingRenderableKeyframeNodes=function(e){let t=this,n=t.level,i=Math.floor(e),o=Math.ceil(e),r,s,a=+Number.MAX_VALUE,c=+Number.MAX_VALUE;for(;l(t);){let{renderableKeyframeNodes:d}=t;if(d.length>=1){let p=Pht(i,d),g=d[p],h=o===i||i<g.keyframe?p:Math.min(p+1,d.length-1),A=d[h],x=i-g.keyframe,C=Wye(n-t.level,x);C<a&&(a=C,r=g);let T=A.keyframe-o,E=Wye(n-t.level,T);if(E<c&&(c=E,s=A),x===0&&T===0)break}t=t.parent}if(this.renderableKeyframeNodePrevious=r,this.renderableKeyframeNodeNext=s,!l(r)||!l(s))return;let u=r.keyframe,f=s.keyframe;this.renderableKeyframeNodeLerp=u===f?0:P.clamp((e-u)/(f-u),0,1)};function Pht(e,t){let n=_I(e,t);return n<0?P.clamp(~n-1,0,t.length-1):n}function Wye(e,t){let n=Math.exp(e*4),i=t>=0?1:-200;return e*n+t*i}Cf.prototype.isVisited=function(e){return this.visitedFrameNumber===e};Cf.prototype.createKeyframeNode=function(e){let t=_I(e,this.keyframeNodes);if(t<0){t=~t;let n=new $i(this,e);this.keyframeNodes.splice(t,0,n)}};Cf.prototype.destroyKeyframeNode=function(e,t){let n=e.keyframe,i=_I(n,this.keyframeNodes);if(i<0)throw new fe("Keyframe node does not exist.");if(this.keyframeNodes.splice(i,1),e.megatextureIndex!==-1){for(let r=0;r<t.length;r++)t[r].remove(e.megatextureIndex);let o=_I(n,this.renderableKeyframeNodes);if(o<0)throw new fe("Renderable keyframe node does not exist.");this.renderableKeyframeNodes.splice(o,1)}e.spatialNode=void 0,e.state=$i.LoadState.UNLOADED,e.metadatas={},e.megatextureIndex=-1,e.priority=-Number.MAX_VALUE,e.highPriorityFrameNumber=-1};Cf.prototype.addKeyframeNodeToMegatextures=function(e,t){if(e.state!==$i.LoadState.RECEIVED||e.megatextureIndex!==-1||e.metadatas.length!==t.length)throw new fe("Keyframe node cannot be added to megatexture");for(let o=0;o<t.length;o++){let r=t[o];e.megatextureIndex=r.add(e.metadatas[o]),e.metadatas[o]=void 0}e.state=$i.LoadState.LOADED;let n=this.renderableKeyframeNodes,i=_I(e.keyframe,n);if(i>=0)throw new fe("Keyframe already renderable");i=~i,n.splice(i,0,e)};Cf.prototype.isRenderable=function(e){let t=this.renderableKeyframeNodePrevious,n=this.renderableKeyframeNodeNext,i=this.level;return l(t)&&l(n)&&(t.spatialNode.level===i||n.spatialNode.level===i)&&this.visitedFrameNumber===e};var P4=Cf;function mq(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(mq.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});mq.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,P.PI),i=P.randomBetween(0,this._radius),o=i*Math.cos(t)*Math.sin(n),r=i*Math.sin(t)*Math.sin(n),s=i*Math.cos(n);e.position=m.fromElements(o,r,s,e.position),e.velocity=m.normalize(e.position,e.velocity)};var jye=mq;function gI(){}gI.prototype.evaluate=function(e,t){fe.throwInstantiationError()};gI.prototype.evaluateColor=function(e,t){fe.throwInstantiationError()};gI.prototype.getShaderFunction=function(e,t,n,i){fe.throwInstantiationError()};gI.prototype.getVariables=function(){fe.throwInstantiationError()};var Yye=gI;var O4={};O4.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,o,r){l(r)?r.length=0:r=[];let s,a,c;t?(s=n<e,a=i<e,c=o<e):(s=n>e,a=i>e,c=o>e);let u=s+a+c,f,d,p,g,h,A;return u===1?s?(f=(e-n)/(i-n),d=(e-n)/(o-n),r.push(1),r.push(2),d!==1&&(r.push(-1),r.push(0),r.push(2),r.push(d)),f!==1&&(r.push(-1),r.push(0),r.push(1),r.push(f))):a?(p=(e-i)/(o-i),g=(e-i)/(n-i),r.push(2),r.push(0),g!==1&&(r.push(-1),r.push(1),r.push(0),r.push(g)),p!==1&&(r.push(-1),r.push(1),r.push(2),r.push(p))):c&&(h=(e-o)/(n-o),A=(e-o)/(i-o),r.push(0),r.push(1),A!==1&&(r.push(-1),r.push(2),r.push(1),r.push(A)),h!==1&&(r.push(-1),r.push(2),r.push(0),r.push(h))):u===2?!s&&n!==e?(g=(e-i)/(n-i),h=(e-o)/(n-o),r.push(0),r.push(-1),r.push(1),r.push(0),r.push(g),r.push(-1),r.push(2),r.push(0),r.push(h)):!a&&i!==e?(A=(e-o)/(i-o),f=(e-n)/(i-n),r.push(1),r.push(-1),r.push(2),r.push(1),r.push(A),r.push(-1),r.push(0),r.push(1),r.push(f)):!c&&o!==e&&(d=(e-n)/(o-n),p=(e-i)/(o-i),r.push(2),r.push(-1),r.push(0),r.push(2),r.push(d),r.push(-1),r.push(1),r.push(2),r.push(p)):u!==3&&(r.push(0),r.push(1),r.push(2)),r};O4.computeBarycentricCoordinates=function(e,t,n,i,o,r,s,a,c){let u=n-s,f=s-o,d=r-a,p=i-a,g=1/(d*u+f*p),h=t-a,A=e-s,x=(d*A+f*h)*g,C=(-p*A+u*h)*g,T=1-x-C;return l(c)?(c.x=x,c.y=C,c.z=T,c):new m(x,C,T)};O4.computeLineSegmentLineSegmentIntersection=function(e,t,n,i,o,r,s,a,c){let u=(s-o)*(t-r)-(a-r)*(e-o),f=(n-e)*(t-r)-(i-t)*(e-o),d=(a-r)*(n-e)-(s-o)*(i-t);if(d===0)return;let p=u/d,g=f/d;if(p>=0&&p<=1&&g>=0&&g<=1)return l(c)||(c=new H),c.x=e+p*(n-e),c.y=t+p*(i-t),c};var by=O4;function Sy(e){this._quantizedVertices=e.quantizedVertices,this._encodedNormals=e.encodedNormals,this._indices=e.indices,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._boundingSphere=e.boundingSphere,this._orientedBoundingBox=e.orientedBoundingBox,this._horizonOcclusionPoint=e.horizonOcclusionPoint,this._credits=e.credits;let t=this._quantizedVertices.length/3,n=this._uValues=this._quantizedVertices.subarray(0,t),i=this._vValues=this._quantizedVertices.subarray(t,2*t);this._heightValues=this._quantizedVertices.subarray(2*t,3*t);function o(s,a){return i[s]-i[a]}function r(s,a){return n[s]-n[a]}this._westIndices=R4(e.westIndices,o,t),this._southIndices=R4(e.southIndices,r,t),this._eastIndices=R4(e.eastIndices,o,t),this._northIndices=R4(e.northIndices,r,t),this._westSkirtHeight=e.westSkirtHeight,this._southSkirtHeight=e.southSkirtHeight,this._eastSkirtHeight=e.eastSkirtHeight,this._northSkirtHeight=e.northSkirtHeight,this._childTileMask=y(e.childTileMask,15),this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._mesh=void 0}Object.defineProperties(Sy.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return l(this._mesh)}}});var M4=[];function R4(e,t,n){M4.length=e.length;let i=!1;for(let o=0,r=e.length;o<r;++o)M4[o]=e[o],i=i||o>0&&t(e[o-1],e[o])>0;return i?(M4.sort(t),Ve.createTypedArray(n,M4)):e}var qye="createVerticesFromQuantizedTerrainMesh",Oht=new pi(qye),Mht=new pi(qye,$m.maximumAsynchronousTasks);Sy.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,u=t.tileXYToRectangle(n,i,o),d=(a?Mht:Oht).scheduleTask({minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,quantizedVertices:this._quantizedVertices,octEncodedNormals:this._encodedNormals,includeWebMercatorT:!0,indices:this._indices,westIndices:this._westIndices,southIndices:this._southIndices,eastIndices:this._eastIndices,northIndices:this._northIndices,westSkirtHeight:this._westSkirtHeight,southSkirtHeight:this._southSkirtHeight,eastSkirtHeight:this._eastSkirtHeight,northSkirtHeight:this._northSkirtHeight,rectangle:u,relativeToCenter:this._boundingSphere.center,ellipsoid:c,exaggeration:r,exaggerationRelativeHeight:s});if(!l(d))return;let p=this;return Promise.resolve(d).then(function(g){let h=p._quantizedVertices.length/3,A=h+p._westIndices.length+p._southIndices.length+p._eastIndices.length+p._northIndices.length,x=Ve.createTypedArray(A,g.indices),C=new Float32Array(g.vertices),T=g.center,E=g.minimumHeight,S=g.maximumHeight,v=p._boundingSphere,D=p._orientedBoundingBox,O=y(m.clone(g.occludeePointInScaledSpace),p._horizonOcclusionPoint),M=g.vertexStride,L=Dc.clone(g.encoding);return p._mesh=new Pd(T,C,x,g.indexCountWithoutSkirts,h,E,S,v,O,M,D,L,g.westIndicesSouthToNorth,g.southIndicesEastToWest,g.eastIndicesNorthToSouth,g.northIndicesWestToEast),p._quantizedVertices=void 0,p._encodedNormals=void 0,p._indices=void 0,p._uValues=void 0,p._vValues=void 0,p._heightValues=void 0,p._westIndices=void 0,p._southIndices=void 0,p._eastIndices=void 0,p._northIndices=void 0,p._mesh})};var Rht=new pi("upsampleQuantizedTerrainMesh",$m.maximumAsynchronousTasks);Sy.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,u=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=Rht.scheduleTask({vertices:a.vertices,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:u,childRectangle:d,ellipsoid:f});if(!l(p))return;let g=Math.min(this._westSkirtHeight,this._eastSkirtHeight);g=Math.min(g,this._southSkirtHeight),g=Math.min(g,this._northSkirtHeight);let h=c?g*.5:this._westSkirtHeight,A=u?g*.5:this._southSkirtHeight,x=c?this._eastSkirtHeight:g*.5,C=u?this._northSkirtHeight:g*.5,T=this._credits;return Promise.resolve(p).then(function(E){let S=new Uint16Array(E.vertices),v=Ve.createTypedArray(S.length/3,E.indices),D;return l(E.encodedNormals)&&(D=new Uint8Array(E.encodedNormals)),new Sy({quantizedVertices:S,indices:v,encodedNormals:D,minimumHeight:E.minimumHeight,maximumHeight:E.maximumHeight,boundingSphere:ae.clone(E.boundingSphere),orientedBoundingBox:Bn.clone(E.orientedBoundingBox),horizonOcclusionPoint:m.clone(E.horizonOcclusionPoint),westIndices:E.westIndices,southIndices:E.southIndices,eastIndices:E.eastIndices,northIndices:E.northIndices,westSkirtHeight:h,southSkirtHeight:A,eastSkirtHeight:x,northSkirtHeight:C,childTileMask:0,credits:T,createdByUpsampling:!0})})};var hq=32767,Xye=new m;Sy.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1);i*=hq;let o=P.clamp((n-e.south)/e.height,0,1);return o*=hq,l(this._mesh)?Fht(this,i,o):Uht(this,i,o)};function Kye(e,t,n,i,o,r,s,a){let c=Math.min(n,o,s),u=Math.max(n,o,s),f=Math.min(i,r,a),d=Math.max(i,r,a);return e>=c&&e<=u&&t>=f&&t<=d}var Bht=new H,Lht=new H,Nht=new H;function Fht(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,u,Bht),g=r.decodeTextureCoordinates(o,f,Lht),h=r.decodeTextureCoordinates(o,d,Nht);if(Kye(t,n,p.x,p.y,g.x,g.y,h.x,h.y)){let A=by.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,h.x,h.y,Xye);if(A.x>=-1e-15&&A.y>=-1e-15&&A.z>=-1e-15){let x=r.decodeHeight(o,u),C=r.decodeHeight(o,f),T=r.decodeHeight(o,d);return A.x*x+A.y*C+A.z*T}}}}function Uht(e,t,n){let i=e._uValues,o=e._vValues,r=e._heightValues,s=e._indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=i[u],g=i[f],h=i[d],A=o[u],x=o[f],C=o[d];if(Kye(t,n,p,A,g,x,h,C)){let T=by.computeBarycentricCoordinates(t,n,p,A,g,x,h,C,Xye);if(T.x>=-1e-15&&T.y>=-1e-15&&T.z>=-1e-15){let E=T.x*r[u]+T.y*r[f]+T.z*r[d];return P.lerp(e._minimumHeight,e._maximumHeight,E/hq)}}}}Sy.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};Sy.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var gb=Sy;function xb(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}var $A=new le;function Vht(e,t,n,i){let o=i.length;for(let r=0;r<o;++r){let s=i[r];if(s.x===t&&s.y===n&&s.level===e)return!0}return!1}xb.prototype.addAvailableTileRange=function(e,t,n,i,o){let r=this._tilingScheme,s=this._rootNodes;if(e===0)for(let p=n;p<=o;++p)for(let g=t;g<=i;++g)Vht(e,g,p,s)||s.push(new yb(r,void 0,0,g,p));r.tileXYToRectangle(t,n,e,$A);let a=$A.west,c=$A.north;r.tileXYToRectangle(i,o,e,$A);let u=$A.east,f=$A.south,d=new Wht(e,a,f,u,c);for(let p=0;p<s.length;++p){let g=s[p];pq(g.extent,d)&&jht(this._maximumLevel,g,d)}};xb.prototype.computeMaximumLevelAtPosition=function(e){let t;for(let n=0;n<this._rootNodes.length;++n){let i=this._rootNodes[n];if(Ab(i.extent,e)){t=i;break}}return l(t)?yI(void 0,t,e):-1};var kht=[],zht=[],Hht=new le,Ght=new le;xb.prototype.computeBestAvailableLevelOverRectangle=function(e){let t=kht;t.length=0,e.east<e.west?(t.push(le.fromRadians(-Math.PI,e.south,e.east,e.north,Hht)),t.push(le.fromRadians(e.west,e.south,Math.PI,e.north,Ght))):t.push(e);let n=zht;n.length=0;let i;for(i=0;i<this._rootNodes.length;++i)AI(n,this._rootNodes[i],t);for(i=n.length-1;i>=0;--i)if(l(n[i])&&n[i].length===0)return i;return 0};var Jye=new he;xb.prototype.isTileAvailable=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(t,n,e,$A);return le.center(i,Jye),this.computeMaximumLevelAtPosition(Jye)>=e};xb.prototype.computeChildMaskForTile=function(e,t,n){let i=e+1;if(i>=this._maximumLevel)return 0;let o=0;return o|=this.isTileAvailable(i,2*t,2*n+1)?1:0,o|=this.isTileAvailable(i,2*t+1,2*n+1)?2:0,o|=this.isTileAvailable(i,2*t,2*n)?4:0,o|=this.isTileAvailable(i,2*t+1,2*n)?8:0,o};function yb(e,t,n,i,o){this.tilingScheme=e,this.parent=t,this.level=n,this.x=i,this.y=o,this.extent=e.tileXYToRectangle(i,o,n),this.rectangles=[],this._sw=void 0,this._se=void 0,this._nw=void 0,this._ne=void 0}Object.defineProperties(yb.prototype,{nw:{get:function(){return this._nw||(this._nw=new yb(this.tilingScheme,this,this.level+1,this.x*2,this.y*2)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new yb(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new yb(this.tilingScheme,this,this.level+1,this.x*2,this.y*2+1)),this._sw}},se:{get:function(){return this._se||(this._se=new yb(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2+1)),this._se}}});function Wht(e,t,n,i,o){this.level=e,this.west=t,this.south=n,this.east=i,this.north=o}function pq(e,t){let n=Math.max(e.west,t.west),i=Math.max(e.south,t.south),o=Math.min(e.east,t.east),r=Math.min(e.north,t.north);return i<r&&n<o}function jht(e,t,n){for(;t.level<e;)if(B4(t.nw.extent,n))t=t.nw;else if(B4(t.ne.extent,n))t=t.ne;else if(B4(t.sw.extent,n))t=t.sw;else if(B4(t.se.extent,n))t=t.se;else break;if(t.rectangles.length===0||t.rectangles[t.rectangles.length-1].level<=n.level)t.rectangles.push(n);else{let i=Do(t.rectangles,n.level,Yht);i<0&&(i=~i),t.rectangles.splice(i,0,n)}}function Yht(e,t){return e.level-t}function B4(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function Ab(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function yI(e,t,n){let i=0,o=!1;for(;!o;){let r=t._nw&&Ab(t._nw.extent,n),s=t._ne&&Ab(t._ne.extent,n),a=t._sw&&Ab(t._sw.extent,n),c=t._se&&Ab(t._se.extent,n);if(r+s+a+c>1){r&&(i=Math.max(i,yI(t,t._nw,n))),s&&(i=Math.max(i,yI(t,t._ne,n))),a&&(i=Math.max(i,yI(t,t._sw,n))),c&&(i=Math.max(i,yI(t,t._se,n)));break}else r?t=t._nw:s?t=t._ne:a?t=t._sw:c?t=t._se:o=!0}for(;t!==e;){let r=t.rectangles;for(let s=r.length-1;s>=0&&r[s].level>i;--s){let a=r[s];Ab(a,n)&&(i=a.level)}t=t.parent}return i}function AI(e,t,n){if(!t)return;let i,o=!1;for(i=0;i<n.length;++i)o=o||pq(t.extent,n[i]);if(!o)return;let r=t.rectangles;for(i=0;i<r.length;++i){let s=r[i];e[s.level]||(e[s.level]=n),e[s.level]=qht(e[s.level],s)}AI(e,t._nw,n),AI(e,t._ne,n),AI(e,t._sw,n),AI(e,t._se,n)}function qht(e,t){let n=[];for(let i=0;i<e.length;++i){let o=e[i];pq(o,t)?(o.west<t.west&&n.push(new le(o.west,o.south,t.west,o.north)),o.east>t.east&&n.push(new le(t.east,o.south,o.east,o.north)),o.south<t.south&&n.push(new le(Math.max(t.west,o.west),o.south,Math.min(t.east,o.east),t.south)),o.north>t.north&&n.push(new le(Math.max(t.west,o.west),t.north,Math.min(t.east,o.east),o.north))):n.push(o)}return n}var hh=xb;function Xht(e){this.resource=e.resource,this.version=e.version,this.isHeightmap=e.isHeightmap,this.tileUrlTemplates=e.tileUrlTemplates,this.availability=e.availability,this.hasVertexNormals=e.hasVertexNormals,this.hasWaterMask=e.hasWaterMask,this.hasMetadata=e.hasMetadata,this.availabilityLevels=e.availabilityLevels,this.availabilityTilesLoaded=e.availabilityTilesLoaded,this.littleEndianExtensionSize=e.littleEndianExtensionSize,this.availabilityPromiseCache={}}function yq(e){this.requestVertexNormals=y(e.requestVertexNormals,!1),this.requestWaterMask=y(e.requestWaterMask,!1),this.requestMetadata=y(e.requestMetadata,!0),this.ellipsoid=e.ellipsoid,this.heightmapWidth=65,this.heightmapStructure=void 0,this.hasWaterMask=!1,this.hasMetadata=!1,this.hasVertexNormals=!1,this.scheme=void 0,this.lastResource=void 0,this.layerJsonResource=void 0,this.previousError=void 0,this.availability=void 0,this.tilingScheme=void 0,this.levelZeroMaximumGeometricError=void 0,this.heightmapStructure=void 0,this.layers=[],this.attribution="",this.overallAvailability=[],this.overallMaxZoom=0,this.tileCredits=[]}yq.prototype.build=function(e){e._heightmapWidth=this.heightmapWidth,e._scheme=this.scheme;let t=l(this.lastResource.credits)?this.lastResource.credits:[];e._tileCredits=t.concat(this.tileCredits),e._availability=this.availability,e._tilingScheme=this.tilingScheme,e._requestWaterMask=this.requestWaterMask,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._heightmapStructure=this.heightmapStructure,e._layers=this.layers,e._hasWaterMask=this.hasWaterMask,e._hasVertexNormals=this.hasVertexNormals,e._hasMetadata=this.hasMetadata,e._ready=!0};async function Qye(e,t,n){if(!t.format){let A="The tile format is not specified in the layer.json file.";throw e.previousError=Ti.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,A),new de(A)}if(!t.tiles||t.tiles.length===0){let A="The layer.json file does not specify any tile URL templates.";throw e.previousError=Ti.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,A),new de(A)}let i=!1,o=!1,r=!1,s=!0,a=!1;if(t.format==="heightmap-1.0")a=!0,l(e.heightmapStructure)||(e.heightmapStructure={heightScale:1/5,heightOffset:-1e3,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1,lowestEncodedHeight:0,highestEncodedHeight:256*256-1}),o=!0,e.requestWaterMask=!0;else if(t.format.indexOf("quantized-mesh-1.")!==0){let A=`The tile format "${t.format}" is invalid or not supported.`;throw e.previousError=Ti.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,A),new de(A)}let c=t.tiles,u=t.maxzoom;if(e.overallMaxZoom=Math.max(e.overallMaxZoom,u),!t.projection||t.projection==="EPSG:4326")e.tilingScheme=new Wi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else if(t.projection==="EPSG:3857")e.tilingScheme=new Fr({numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else{let A=`The projection "${t.projection}" is invalid or not supported.`;throw e.previousError=Ti.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,A),new de(A)}if(e.levelZeroMaximumGeometricError=Xr.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.heightmapWidth,e.tilingScheme.getNumberOfXTilesAtLevel(0)),!t.scheme||t.scheme==="tms"||t.scheme==="slippyMap")e.scheme=t.scheme;else{let A=`The scheme "${t.scheme}" is invalid or not supported.`;throw e.previousError=Ti.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,A),new de(A)}let f;l(t.extensions)&&t.extensions.indexOf("octvertexnormals")!==-1?i=!0:l(t.extensions)&&t.extensions.indexOf("vertexnormals")!==-1&&(i=!0,s=!1),l(t.extensions)&&t.extensions.indexOf("watermask")!==-1&&(o=!0),l(t.extensions)&&t.extensions.indexOf("metadata")!==-1&&(r=!0);let d=t.metadataAvailability,p=t.available,g;if(l(p)&&!l(d)){g=new hh(e.tilingScheme,p.length);for(let A=0;A<p.length;++A){let x=p[A],C=e.tilingScheme.getNumberOfYTilesAtLevel(A);l(e.overallAvailability[A])||(e.overallAvailability[A]=[]);for(let T=0;T<x.length;++T){let E=x[T],S=C-E.endY-1,v=C-E.startY-1;e.overallAvailability[A].push([E.startX,S,E.endX,v]),g.addAvailableTileRange(A,E.startX,S,E.endX,v)}}}else l(d)&&(f=new hh(e.tilingScheme,u),g=new hh(e.tilingScheme,u),e.overallAvailability[0]=[[0,0,1,0]],g.addAvailableTileRange(0,0,0,1,0));e.hasWaterMask=e.hasWaterMask||o,e.hasVertexNormals=e.hasVertexNormals||i,e.hasMetadata=e.hasMetadata||r,l(t.attribution)&&(e.attribution.length>0&&(e.attribution+=" "),e.attribution+=t.attribution),e.layers.push(new Xht({resource:e.lastResource,version:t.version,isHeightmap:a,tileUrlTemplates:c,availability:g,hasVertexNormals:i,hasWaterMask:o,hasMetadata:r,availabilityLevels:d,availabilityTilesLoaded:f,littleEndianExtensionSize:s}));let h=t.parentUrl;return l(h)?l(g)?(e.lastResource=e.lastResource.getDerivedResource({url:h}),e.lastResource.appendForwardSlash(),e.layerJsonResource=e.lastResource.getDerivedResource({url:"layer.json"}),await L4(e),!0):(console.log("A layer.json can't have a parentUrl if it does't have an available array."),!0):!0}function Kht(e,t,n){let i=`An error occurred while accessing ${e.layerJsonResource.url}.`;if(l(t)&&(i+=` +${t.message}`),e.previousError=Ti.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,i),e.previousError.retry)return L4(e,n);throw new de(i)}async function Jht(e,t,n){await Qye(e,t,n);let i=e.overallAvailability.length;if(i>0){let o=e.availability=new hh(e.tilingScheme,e.overallMaxZoom);for(let r=0;r<i;++r){let s=e.overallAvailability[r];for(let a=0;a<s.length;++a){let c=s[a];o.addAvailableTileRange(r,c[0],c[1],c[2],c[3])}}}if(e.attribution.length>0){let o=new It(e.attribution);e.tileCredits.push(o)}return!0}async function L4(e,t){try{let n=await e.layerJsonResource.fetchJson();return Jht(e,n,t)}catch(n){return l(n)&&n.statusCode===404?(await Qye(e,{tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]},t),!0):Kht(e,n,t)}}function Au(e){e=y(e,y.EMPTY_OBJECT),this._heightmapWidth=void 0,this._heightmapStructure=void 0,this._hasWaterMask=!1,this._hasVertexNormals=!1,this._hasMetadata=!1,this._scheme=void 0,this._ellipsoid=e.ellipsoid,this._requestVertexNormals=y(e.requestVertexNormals,!1),this._requestWaterMask=y(e.requestWaterMask,!1),this._requestMetadata=y(e.requestMetadata,!0),this._errorEvent=new ge;let t=e.credit;typeof t=="string"&&(t=new It(t)),this._credit=t,this._availability=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._layers=void 0,this._ready=!1,this._tileCredits=void 0,this._readyPromise=Promise.resolve(!0),l(e.url)&&($("CesiumTerrainProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."),this._readyPromise=Au._initializeReadyPromise(e,this))}Au._initializeReadyPromise=async function(e,t){let n=await Promise.resolve(e.url),i=new yq(e),o=we.createIfNeeded(n);return o.appendForwardSlash(),i.lastResource=o,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await L4(i,t),i.build(t),!0};var _q={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};function Zye(e){return!l(e)||e.length===0?{Accept:"application/vnd.quantized-mesh,application/octet-stream;q=0.9,*/*;q=0.01"}:{Accept:`application/vnd.quantized-mesh;extensions=${e.join("-")},application/octet-stream;q=0.9,*/*;q=0.01`}}function Zht(e,t,n,i,o){let r=new Uint16Array(t,0,e._heightmapWidth*e._heightmapWidth);return new qa({buffer:r,childTileMask:new Uint8Array(t,r.byteLength,1)[0],waterMask:new Uint8Array(t,r.byteLength+1,t.byteLength-r.byteLength-1),width:e._heightmapWidth,height:e._heightmapWidth,structure:e._heightmapStructure,credits:e._tileCredits})}function Qht(e,t,n,i,o,r){let s=r.littleEndianExtensionSize,a=0,c=3,u=c+1,f=Float64Array.BYTES_PER_ELEMENT*c,d=Float64Array.BYTES_PER_ELEMENT*u,p=3,g=Uint16Array.BYTES_PER_ELEMENT*p,h=3,A=Uint16Array.BYTES_PER_ELEMENT,x=A*h,C=new DataView(t),T=new m(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0));a+=f;let E=C.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let S=C.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let v=new ae(new m(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0)),C.getFloat64(a+f,!0));a+=d;let D=new m(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0));a+=f;let O=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let M=new Uint16Array(t,a,O*3);a+=O*g,O>64*1024&&(A=Uint32Array.BYTES_PER_ELEMENT,x=A*h);let L=M.subarray(0,O),N=M.subarray(O,2*O),_=M.subarray(O*2,3*O);qn.zigZagDeltaDecode(L,N,_),a%A!==0&&(a+=A-a%A);let b=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let w=Ve.createTypedArrayFromArrayBuffer(O,t,a,b*h);a+=b*x;let I=0,R=w.length;for(let se=0;se<R;++se){let Ae=w[se];w[se]=I-Ae,Ae===0&&++I}let F=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let k=Ve.createTypedArrayFromArrayBuffer(O,t,a,F);a+=F*A;let V=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let G=Ve.createTypedArrayFromArrayBuffer(O,t,a,V);a+=V*A;let U=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let q=Ve.createTypedArrayFromArrayBuffer(O,t,a,U);a+=U*A;let Y=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let Q=Ve.createTypedArrayFromArrayBuffer(O,t,a,Y);a+=Y*A;let W,K;for(;a<C.byteLength;){let se=C.getUint8(a,!0);a+=Uint8Array.BYTES_PER_ELEMENT;let Ae=C.getUint32(a,s);if(a+=Uint32Array.BYTES_PER_ELEMENT,se===_q.OCT_VERTEX_NORMALS&&e._requestVertexNormals)W=new Uint8Array(t,a,O*2);else if(se===_q.WATER_MASK&&e._requestWaterMask)K=new Uint8Array(t,a,Ae);else if(se===_q.METADATA&&e._requestMetadata){let me=C.getUint32(a,!0);if(me>0){let Ie=Po(new Uint8Array(t),a+Uint32Array.BYTES_PER_ELEMENT,me).available;if(l(Ie))for(let Ue=0;Ue<Ie.length;++Ue){let Re=n+Ue+1,ke=Ie[Ue],ft=e._tilingScheme.getNumberOfYTilesAtLevel(Re);for(let pt=0;pt<ke.length;++pt){let rt=ke[pt],un=ft-rt.endY-1,Mn=ft-rt.startY-1;e.availability.addAvailableTileRange(Re,rt.startX,un,rt.endX,Mn),r.availability.addAvailableTileRange(Re,rt.startX,un,rt.endX,Mn)}}}r.availabilityTilesLoaded.addAvailableTileRange(n,i,o,i,o)}a+=Ae}let J=e.getLevelMaximumGeometricError(n)*5,_e=e._tilingScheme.tileXYToRectangle(i,o,n),xe=Bn.fromRectangle(_e,E,S,e._tilingScheme.ellipsoid);return new gb({center:T,minimumHeight:E,maximumHeight:S,boundingSphere:v,orientedBoundingBox:xe,horizonOcclusionPoint:D,quantizedVertices:M,encodedNormals:W,indices:w,westIndices:k,southIndices:G,eastIndices:q,northIndices:Q,westSkirtHeight:J,southSkirtHeight:J,eastSkirtHeight:J,northSkirtHeight:J,childTileMask:e.availability.computeChildMaskForTile(n,i,o),waterMask:K,credits:e._tileCredits})}Au.prototype.requestTileGeometry=function(e,t,n,i){let o=this._layers,r,s=o.length;if(s===1)r=o[0];else for(let a=0;a<s;++a){let c=o[a];if(!l(c.availability)||c.availability.isTileAvailable(n,e,t)){r=c;break}}return $ye(this,e,t,n,r,i)};function $ye(e,t,n,i,o,r){if(!l(o))return Promise.reject(new de("Terrain tile doesn't exist"));let s=o.tileUrlTemplates;if(s.length===0)return;let a;!e._scheme||e._scheme==="tms"?a=e._tilingScheme.getNumberOfYTilesAtLevel(i)-n-1:a=n;let c=[];e._requestVertexNormals&&o.hasVertexNormals&&c.push(o.littleEndianExtensionSize?"octvertexnormals":"vertexnormals"),e._requestWaterMask&&o.hasWaterMask&&c.push("watermask"),e._requestMetadata&&o.hasMetadata&&c.push("metadata");let u,f,d=s[(t+a+i)%s.length],p=o.resource;l(p._ionEndpoint)&&!l(p._ionEndpoint.externalType)?(c.length!==0&&(f={extensions:c.join("-")}),u=Zye(void 0)):u=Zye(c);let g=p.getDerivedResource({url:d,templateValues:{version:o.version,z:i,x:t,y:a},queryParameters:f,headers:u,request:r}).fetchArrayBuffer();if(l(g))return g.then(function(h){return l(h)?l(e._heightmapStructure)?Zht(e,h,i,t,n):Qht(e,h,i,t,n,o):Promise.reject(new de("Mesh buffer doesn't exist."))})}Object.defineProperties(Au.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("CesiumTerrainProvider.ready","CesiumTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("CesiumTerrainProvider.readyPromise","CesiumTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use CesiumTerrainProvider.fromIonAssetId or CesiumTerrainProvider.fromUrl instead."),this._readyPromise}},hasWaterMask:{get:function(){return this._hasWaterMask&&this._requestWaterMask}},hasVertexNormals:{get:function(){return this._hasVertexNormals&&this._requestVertexNormals}},hasMetadata:{get:function(){return this._hasMetadata&&this._requestMetadata}},requestVertexNormals:{get:function(){return this._requestVertexNormals}},requestWaterMask:{get:function(){return this._requestWaterMask}},requestMetadata:{get:function(){return this._requestMetadata}},availability:{get:function(){return this._availability}}});Au.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Au.fromIonAssetId=async function(e,t){let n=await ca.fromAssetId(e);return Au.fromUrl(n,t)};Au.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=we.createIfNeeded(e);n.appendForwardSlash();let i=new yq(t);i.lastResource=n,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await L4(i);let o=new Au(t);return i.build(o),o};Au.prototype.getTileDataAvailable=function(e,t,n){if(!l(this._availability))return;if(n>this._availability._maximumLevel)return!1;if(this._availability.isTileAvailable(n,e,t))return!0;if(!this._hasMetadata)return!1;let i=this._layers,o=i.length;for(let r=0;r<o;++r)if(e0e(this,e,t,n,i[r],r===0).result)return;return!1};Au.prototype.loadTileDataAvailability=function(e,t,n){if(!l(this._availability)||n>this._availability._maximumLevel||this._availability.isTileAvailable(n,e,t)||!this._hasMetadata)return;let i=this._layers,o=i.length;for(let r=0;r<o;++r){let s=e0e(this,e,t,n,i[r],r===0);if(l(s.promise))return s.promise}};function gq(e,t,n,i){if(i===0)return;let o=e.availabilityLevels,r=i%o===0?i-o:(i/o|0)*o,s=1<<i-r,a=t/s|0,c=n/s|0;return{level:r,x:a,y:c}}function e0e(e,t,n,i,o,r){if(!l(o.availabilityLevels))return{result:!1};let s,a=function(){delete o.availabilityPromiseCache[s]},c=o.availabilityTilesLoaded,u=o.availability,f=gq(o,t,n,i);for(;l(f);){if(u.isTileAvailable(f.level,f.x,f.y)&&!c.isTileAvailable(f.level,f.x,f.y)){let d;if(!r&&(s=`${f.level}-${f.x}-${f.y}`,d=o.availabilityPromiseCache[s],!l(d))){let p=new Zo({throttle:!1,throttleByServer:!0,type:es.TERRAIN});d=$ye(e,f.x,f.y,f.level,o,p),l(d)&&(o.availabilityPromiseCache[s]=d,d.then(a))}return{result:!0,promise:d}}f=gq(o,f.x,f.y,f.level)}return{result:!1}}Au._getAvailabilityTile=gq;var ex=Au;function $ht(e){return e=y(e,y.EMPTY_OBJECT),ex.fromIonAssetId(1,{requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1)})}var Cb=$ht;function N4(e){this._ready=!1,this._provider=void 0,this._errorEvent=new ge,this._readyEvent=new ge,tpt(this,e)}Object.defineProperties(N4.prototype,{errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}}});N4.fromWorldTerrain=function(e){return new N4(Cb(e))};function ept(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function tpt(e,t){let n;try{n=await Promise.resolve(t),e._provider=n,e._ready=!0,e._readyEvent.raiseEvent(n)}catch(i){ept(e._errorEvent,i)}}var F4=N4;function Tb(){}Tb.prototype.boundingVolume=void 0;Tb.prototype.boundingSphere=void 0;Tb.prototype.distanceToCamera=function(e){fe.throwInstantiationError()};Tb.prototype.intersectPlane=function(e){fe.throwInstantiationError()};Tb.prototype.createDebugVolume=function(e){fe.throwInstantiationError()};var t0e=Tb;function xI(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Wi({ellipsoid:e.ellipsoid}),this._color=y(e.color,z.YELLOW),this._errorEvent=new ge,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._ready=!0,this._readyPromise=Promise.resolve(!0),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0}Object.defineProperties(xI.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("TileCoordinatesImageryProvider.ready","TileCoordinatesImageryProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("TileCoordinatesImageryProvider.readyPromise","TileCoordinatesImageryProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}},defaultAlpha:{get:function(){return $("TileCoordinatesImageryProvider.defaultAlpha","TileCoordinatesImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha},set:function(e){$("TileCoordinatesImageryProvider.defaultAlpha","TileCoordinatesImageryProvider.defaultAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.alpha instead."),this._defaultAlpha=e}},defaultNightAlpha:{get:function(){return $("TileCoordinatesImageryProvider.defaultNightAlpha","TileCoordinatesImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha},set:function(e){$("TileCoordinatesImageryProvider.defaultNightAlpha","TileCoordinatesImageryProvider.defaultNightAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.nightAlpha instead."),this._defaultNightAlpha=e}},defaultDayAlpha:{get:function(){return $("TileCoordinatesImageryProvider.defaultDayAlpha","TileCoordinatesImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha},set:function(e){$("TileCoordinatesImageryProvider.defaultDayAlpha","TileCoordinatesImageryProvider.defaultDayAlpha was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.dayAlpha instead."),this._defaultDayAlpha=e}},defaultBrightness:{get:function(){return $("TileCoordinatesImageryProvider.defaultBrightness","TileCoordinatesImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness},set:function(e){$("TileCoordinatesImageryProvider.defaultBrightness","TileCoordinatesImageryProvider.defaultBrightness was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.brightness instead."),this._defaultBrightness=e}},defaultContrast:{get:function(){return $("TileCoordinatesImageryProvider.defaultContrast","TileCoordinatesImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast},set:function(e){$("TileCoordinatesImageryProvider.defaultContrast","TileCoordinatesImageryProvider.defaultContrast was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.contrast instead."),this._defaultContrast=e}},defaultHue:{get:function(){return $("TileCoordinatesImageryProvider.defaultHue","TileCoordinatesImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue},set:function(e){$("TileCoordinatesImageryProvider.defaultHue","TileCoordinatesImageryProvider.defaultHue was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.hue instead."),this._defaultHue=e}},defaultSaturation:{get:function(){return $("TileCoordinatesImageryProvider.defaultSaturation","TileCoordinatesImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation},set:function(e){$("TileCoordinatesImageryProvider.defaultSaturation","TileCoordinatesImageryProvider.defaultSaturation was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.saturation instead."),this._defaultSaturation=e}},defaultGamma:{get:function(){return $("TileCoordinatesImageryProvider.defaultGamma","TileCoordinatesImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma},set:function(e){$("TileCoordinatesImageryProvider.defaultGamma","TileCoordinatesImageryProvider.defaultGamma was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.gamma instead."),this._defaultGamma=e}},defaultMinificationFilter:{get:function(){return $("TileCoordinatesImageryProvider.defaultMinificationFilter","TileCoordinatesImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter},set:function(e){$("TileCoordinatesImageryProvider.defaultMinificationFilter","TileCoordinatesImageryProvider.defaultMinificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.minificationFilter instead."),this._defaultMinificationFilter=e}},defaultMagnificationFilter:{get:function(){return $("TileCoordinatesImageryProvider.defaultMagnificationFilter","TileCoordinatesImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter},set:function(e){$("TileCoordinatesImageryProvider.defaultMagnificationFilter","TileCoordinatesImageryProvider.defaultMagnificationFilter was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ImageryLayer.magnificationFilter instead."),this._defaultMagnificationFilter=e}}});xI.prototype.getTileCredits=function(e,t,n){};xI.prototype.requestImage=function(e,t,n,i){let o=document.createElement("canvas");o.width=256,o.height=256;let r=o.getContext("2d"),s=this._color.toCssColorString();return r.strokeStyle=s,r.lineWidth=2,r.strokeRect(1,1,255,255),r.font="bold 25px Arial",r.textAlign="center",r.fillStyle=s,r.fillText(`L: ${n}`,124,86),r.fillText(`X: ${e}`,124,136),r.fillText(`Y: ${t}`,124,186),Promise.resolve(o)};xI.prototype.pickFeatures=function(e,t,n,i,o){};var U4=xI;function Aq(e){fe.throwInstantiationError()}Aq.prototype.isReady=fe.throwInstantiationError;Aq.prototype.shouldDiscardImage=fe.throwInstantiationError;var n0e=Aq;var npt={START:0,LOADING:1,READY:2,UPSAMPLED_ONLY:3},i0e=Object.freeze(npt);function nx(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this.shadows=y(e.shadows,xn.ENABLED),this.maximumMemoryUsage=y(e.maximumMemoryUsage,256),this.shading=new Qh(e.shading),this.style=e.style,this.frameFailed=new ge,this.frameChanged=new ge,this._clock=e.clock,this._intervals=e.intervals,this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,this._pointCloudEyeDomeLighting=new X_,this._loadTimestamp=void 0,this._clippingPlanesState=0,this._styleDirty=!1,this._pickId=void 0,this._totalMemoryUsageInBytes=0,this._frames=[],this._previousInterval=void 0,this._nextInterval=void 0,this._lastRenderedFrame=void 0,this._clockMultiplier=0,this._resolveReadyPromise=void 0;let t=this;this._readyPromise=new Promise(function(n){t._resolveReadyPromise=n}),this._runningSum=0,this._runningLength=0,this._runningIndex=0,this._runningSamples=new Array(5).fill(0),this._runningAverage=0}Object.defineProperties(nx.prototype,{clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){gs.setOwner(e,this,"_clippingPlanes")}},totalMemoryUsageInBytes:{get:function(){return this._totalMemoryUsageInBytes}},boundingSphere:{get:function(){if(l(this._lastRenderedFrame))return this._lastRenderedFrame.pointCloud.boundingSphere}},readyPromise:{get:function(){return $("TimeDynamicPointCloud.readyPromise","TimeDynamicPointCloud.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Use TimeDynamicPointCloud.frameFailed instead."),this._readyPromise}}});function ipt(e){return`uniform vec4 czm_pickColor; +${e}`}function opt(e){return function(t){return gt(t,{czm_pickColor:function(){return e._pickId.color}})}}function rpt(){return"czm_pickColor"}nx.prototype.makeStyleDirty=function(){this._styleDirty=!0};nx.prototype._getAverageLoadTime=function(){return this._runningLength===0?.05:this._runningAverage};var spt=new ee;function Cq(e){let t=e._clock,n=t.canAnimate&&t.shouldAnimate,i=t.multiplier;return n?i:0}function tx(e,t){return e._intervals.indexOf(t.start)}function apt(e,t){let n=e._intervals,i=e._clock,o=Cq(e);if(o===0)return;let r=e._getAverageLoadTime(),s=ee.addSeconds(i.currentTime,r*o,spt),a=n.indexOf(s),c=tx(e,t);return a===c&&(o>=0?++a:--a),n.get(a)}function cpt(e){let t=e._intervals,i=e._clock.currentTime,o=t.indexOf(i);return t.get(o)}function lpt(e,t,n){let i=Cq(e),o=tx(e,t),r=tx(e,n);return i>=0?o>=r:o<=r}function r0e(e,t){return function(n){let i=l(n.message)?n.message:n.toString();e.frameFailed.numberOfListeners>0?e.frameFailed.raiseEvent({uri:t,message:i}):(console.log(`A frame failed to load: ${t}`),console.log(`Error: ${i}`))}}function upt(e,t,n){let i=tx(e,t),o=e._frames,r=o[i];if(!l(r)){let s=t.data.transform,a=l(s)?B.fromArray(s):void 0,c=t.data.uri;r={pointCloud:void 0,transform:a,timestamp:Ci(),sequential:!0,ready:!1,touchedFrameNumber:n.frameNumber,uri:c},o[i]=r,we.fetchArrayBuffer({url:c}).then(function(u){r.pointCloud=new I4({arrayBuffer:u,cull:!0,fragmentShaderLoaded:ipt,uniformMapLoaded:opt(e),pickIdLoaded:rpt})}).catch(r0e(e,c))}return r}function fpt(e,t){e._runningSum+=t,e._runningSum-=e._runningSamples[e._runningIndex],e._runningSamples[e._runningIndex]=t,e._runningLength=Math.min(e._runningLength+1,e._runningSamples.length),e._runningIndex=(e._runningIndex+1)%e._runningSamples.length,e._runningAverage=e._runningSum/e._runningLength}function dpt(e,t,n,i){t.touchedFrameNumber<i.frameNumber-1&&(t.sequential=!1);let o=t.pointCloud;if(l(o)&&!t.ready){let r=i.commandList,s=r.length;if(s0e(e,t,n,i),o.ready&&(t.ready=!0,e._totalMemoryUsageInBytes+=o.geometryByteLength,r.length=s,t.sequential)){let a=(Ci()-t.timestamp)/1e3;fpt(e,a)}}t.touchedFrameNumber=i.frameNumber}var mpt=new B;function hpt(e,t){let n=e.shading;return l(n)&&l(n.baseResolution)?n.baseResolution:l(t.boundingSphere)?P.cbrt(t.boundingSphere.volume()/t.pointsLength):0}function ppt(e){let t=e.shading;return l(t)&&l(t.maximumAttenuation)?t.maximumAttenuation:10}var _pt=new Qh;function s0e(e,t,n,i){let o=y(e.shading,_pt),r=t.pointCloud,s=y(t.transform,B.IDENTITY);r.modelMatrix=B.multiplyTransformation(e.modelMatrix,s,mpt),r.style=e.style,r.time=n.timeSinceLoad,r.shadows=e.shadows,r.clippingPlanes=e._clippingPlanes,r.isClipped=n.isClipped,r.attenuation=o.attenuation,r.backFaceCulling=o.backFaceCulling,r.normalShading=o.normalShading,r.geometricError=hpt(e,r),r.geometricErrorScale=o.geometricErrorScale,r.maximumAttenuation=ppt(e);try{r.update(i)}catch(a){r0e(e,t.uri)(a)}t.touchedFrameNumber=i.frameNumber}function xq(e,t,n,i){let o=upt(e,t,i);dpt(e,o,n,i)}function gpt(e){return function(t){return t.touchedFrameNumber<e.frameNumber}}function a0e(e,t){let n=e._frames,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(l(r)&&(!l(t)||t(r))){let s=r.pointCloud;r.ready&&(e._totalMemoryUsageInBytes-=s.geometryByteLength),l(s)&&s.destroy(),r===e._lastRenderedFrame&&(e._lastRenderedFrame=void 0),n[o]=void 0}}}function ypt(e,t){let n=tx(e,t),i=e._frames[n];if(l(i)&&i.ready)return i}function o0e(e,t,n,i,o){return l(n)?n.ready?!0:(xq(e,t,i,o),n.ready):!1}function Apt(e,t,n,i,o){let r,s,a,c=e._intervals,u=e._frames,f=tx(e,n),d=tx(e,t);if(f>=d){for(r=f;r>=d;--r)if(s=c.get(r),a=u[r],o0e(e,s,a,i,o))return s}else for(r=f;r<=d;++r)if(s=c.get(r),a=u[r],o0e(e,s,a,i,o))return s;return t}function xpt(e,t,n){let i=e._frames,o=i.length;for(let r=0;r<o;++r){let s=i[r];l(s)&&l(s.pointCloud)&&(s.pointCloud.clippingPlanesDirty=t,s.pointCloud.styleDirty=n)}}var Eb={timeSinceLoad:0,isClipped:!1,clippingPlanesDirty:!1};nx.prototype.update=function(e){if(e.mode===ne.MORPHING||!this.show)return;l(this._pickId)||(this._pickId=e.context.createPickId({primitive:this})),l(this._loadTimestamp)||(this._loadTimestamp=ee.clone(e.time));let t=Math.max(ee.secondsDifference(e.time,this._loadTimestamp)*1e3,0),n=this._clippingPlanes,i=0,o=!1,r=l(n)&&n.enabled;r&&(n.update(e),i=n.clippingPlanesState),this._clippingPlanesState!==i&&(this._clippingPlanesState=i,o=!0);let s=this._styleDirty;this._styleDirty=!1,(o||s)&&xpt(this,o,s),Eb.timeSinceLoad=t,Eb.isClipped=r;let a=this.shading,c=this._pointCloudEyeDomeLighting,u=e.commandList,f=u.length,d=this._previousInterval,p=this._nextInterval,g=cpt(this);if(!l(g))return;let h=!1,A=Cq(this),x=A===0;A!==this._clockMultiplier&&(h=!0,this._clockMultiplier=A),(!l(d)||x)&&(d=g),(!l(p)||h||lpt(this,g,p))&&(p=apt(this,g)),d=Apt(this,d,g,Eb,e);let C=ypt(this,d);l(C)||(xq(this,d,Eb,e),C=this._lastRenderedFrame),l(C)&&s0e(this,C,Eb,e),l(p)&&xq(this,p,Eb,e);let T=this;l(C)&&!l(this._lastRenderedFrame)&&e.afterRender.push(function(){return T._resolveReadyPromise(T),!0}),l(C)&&C!==this._lastRenderedFrame&&T.frameChanged.numberOfListeners>0&&e.afterRender.push(function(){return T.frameChanged.raiseEvent(T),!0}),this._previousInterval=d,this._nextInterval=p,this._lastRenderedFrame=C;let E=this._totalMemoryUsageInBytes,S=this.maximumMemoryUsage*1024*1024;E>S&&a0e(this,gpt(e));let D=u.length-f;l(a)&&a.attenuation&&a.eyeDomeLighting&&D>0&&c.update(e,f,a,this.boundingSphere)};nx.prototype.isDestroyed=function(){return!1};nx.prototype.destroy=function(){return a0e(this),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var CI=nx;function V4(e,t){this.show=!0,l(e)||(e=new Ke),this.rectangle=Ke.clone(e),l(t)||(t=Gi.fromType(Gi.ColorType,{color:new z(1,1,1,1)})),this.material=t,this._material=void 0,this._overlayCommand=void 0,this._rs=void 0}V4.prototype.update=function(e){if(!this.show)return;let t=this._rs;if((!l(t)||!Ke.equals(t.viewport,this.rectangle))&&(this._rs=ze.fromCache({blending:mn.ALPHA_BLEND,viewport:this.rectangle})),e.passes.render){let i=e.context;if(this._material!==this.material||!l(this._overlayCommand)){this._material=this.material,l(this._overlayCommand)&&this._overlayCommand.shaderProgram.destroy();let o=new He({sources:[this._material.shaderSource,o4]});this._overlayCommand=i.createViewportQuadCommand(o,{renderState:this._rs,uniformMap:this._material._uniforms,owner:this}),this._overlayCommand.pass=be.OVERLAY}this._material.update(i),this._overlayCommand.renderState=this._rs,this._overlayCommand.uniformMap=this._material._uniforms,e.commandList.push(this._overlayCommand)}};V4.prototype.isDestroyed=function(){return!1};V4.prototype.destroy=function(){return l(this._overlayCommand)&&(this._overlayCommand.shaderProgram=this._overlayCommand.shaderProgram&&this._overlayCommand.shaderProgram.destroy()),ue(this)};var c0e=V4;var k4=`// See Intersection.glsl for the definition of intersectScene +// See IntersectionUtils.glsl for the definition of nextIntersection +// See convertUvToBox.glsl, convertUvToCylinder.glsl, or convertUvToEllipsoid.glsl +// for the definition of convertUvToShapeUvSpace. The appropriate function is +// selected based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See Octree.glsl for the definitions of TraversalData, SampleData, +// traverseOctreeFromBeginning, and traverseOctreeFromExisting +// See Megatexture.glsl for the definition of accumulatePropertiesFromMegatexture + +#define STEP_COUNT_MAX 1000 // Harcoded value because GLSL doesn't like variable length loops +#define ALPHA_ACCUM_MAX 0.98 // Must be > 0.0 and <= 1.0 + +uniform mat3 u_transformDirectionViewToLocal; +uniform vec3 u_cameraPositionUv; +uniform float u_stepSize; + +#if defined(PICKING) + uniform vec4 u_pickColor; +#endif + +#if defined(JITTER) +float hash(vec2 p) +{ + vec3 p3 = fract(vec3(p.xyx) * 50.0); // magic number = hashscale + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); +} +#endif + +vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection) { +#if defined(SHAPE_BOX) + Box voxelBox = constructVoxelBox(sampleData.tileCoords, sampleData.tileUv); + RayShapeIntersection voxelIntersection = intersectBox(viewRay, voxelBox); + vec4 entry = shapeIntersection.entry.w >= voxelIntersection.entry.w ? shapeIntersection.entry : voxelIntersection.entry; + float exit = min(voxelIntersection.exit.w, shapeIntersection.exit.w); + float dt = (exit - entry.w) * RAY_SCALE; + return vec4(normalize(entry.xyz), dt); +#else + float dimAtLevel = pow(2.0, float(sampleData.tileCoords.w)); + return vec4(viewRay.dir, u_stepSize / dimAtLevel); +#endif +} + +void main() +{ + vec4 fragCoord = gl_FragCoord; + vec2 screenCoord = (fragCoord.xy - czm_viewport.xy) / czm_viewport.zw; // [0,1] + vec3 eyeDirection = normalize(czm_windowToEyeCoordinates(fragCoord).xyz); + vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case + vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case + vec3 viewPosUv = u_cameraPositionUv; + #if defined(SHAPE_BOX) + vec3 dInv = 1.0 / viewDirUv; + Ray viewRayUv = Ray(viewPosUv, viewDirUv, dInv); + #else + Ray viewRayUv = Ray(viewPosUv, viewDirUv); + #endif + + Intersections ix; + RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix); + + // Exit early if the scene was completely missed. + if (shapeIntersection.entry.w == NO_HIT) { + discard; + } + + float currT = shapeIntersection.entry.w * RAY_SCALE; + float endT = shapeIntersection.exit.w; + vec3 positionUv = viewPosUv + currT * viewDirUv; + vec3 positionUvShapeSpace = convertUvToShapeUvSpace(positionUv); + + // Traverse the tree from the start position + TraversalData traversalData; + SampleData sampleDatas[SAMPLE_COUNT]; + traverseOctreeFromBeginning(positionUvShapeSpace, traversalData, sampleDatas); + vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection); + + #if defined(JITTER) + float noise = hash(screenCoord); // [0,1] + currT += noise * step.w; + positionUv += noise * step.w * viewDirUv; + #endif + + FragmentInput fragmentInput; + #if defined(STATISTICS) + setStatistics(fragmentInput.metadata.statistics); + #endif + + vec4 colorAccum =vec4(0.0); + + for (int stepCount = 0; stepCount < STEP_COUNT_MAX; ++stepCount) { + // Read properties from the megatexture based on the traversal state + Properties properties = accumulatePropertiesFromMegatexture(sampleDatas); + + // Prepare the custom shader inputs + copyPropertiesToMetadata(properties, fragmentInput.metadata); + fragmentInput.voxel.positionUv = positionUv; + fragmentInput.voxel.positionShapeUv = positionUvShapeSpace; + fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv; + fragmentInput.voxel.viewDirUv = viewDirUv; + fragmentInput.voxel.viewDirWorld = viewDirWorld; + fragmentInput.voxel.surfaceNormal = step.xyz; + fragmentInput.voxel.travelDistance = step.w; + + // Run the custom shader + czm_modelMaterial materialOutput; + fragmentMain(fragmentInput, materialOutput); + + // Sanitize the custom shader output + vec4 color = vec4(materialOutput.diffuse, materialOutput.alpha); + color.rgb = max(color.rgb, vec3(0.0)); + color.a = clamp(color.a, 0.0, 1.0); + + // Pre-multiplied alpha blend + colorAccum += (1.0 - colorAccum.a) * vec4(color.rgb * color.a, color.a); + + // Stop traversing if the alpha has been fully saturated + if (colorAccum.a > ALPHA_ACCUM_MAX) { + colorAccum.a = ALPHA_ACCUM_MAX; + break; + } + + if (step.w == 0.0) { + // Shape is infinitely thin. The ray may have hit the edge of a + // foreground voxel. Step ahead slightly to check for more voxels + step.w == 0.00001; + } + + // Keep raymarching + currT += step.w; + positionUv += step.w * viewDirUv; + + // Check if there's more intersections. + if (currT > endT) { + #if (INTERSECTION_COUNT == 1) + break; + #else + shapeIntersection = nextIntersection(ix); + if (shapeIntersection.entry.w == NO_HIT) { + break; + } else { + // Found another intersection. Resume raymarching there + currT = shapeIntersection.entry.w * RAY_SCALE; + endT = shapeIntersection.exit.w; + positionUv = viewPosUv + currT * viewDirUv; + } + #endif + } + + // Traverse the tree from the current ray position. + // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step. + positionUvShapeSpace = convertUvToShapeUvSpace(positionUv); + traverseOctreeFromExisting(positionUvShapeSpace, traversalData, sampleDatas); + step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection); + } + + // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1] + colorAccum.a /= ALPHA_ACCUM_MAX; + + #if defined(PICKING) + // If alpha is 0.0 there is nothing to pick + if (colorAccum.a == 0.0) { + discard; + } + out_FragColor = u_pickColor; + #else + out_FragColor = colorAccum; + #endif +} +`;var z4=`in vec2 position; + +uniform vec4 u_ndcSpaceAxisAlignedBoundingBox; + +void main() { + vec2 aabbMin = u_ndcSpaceAxisAlignedBoundingBox.xy; + vec2 aabbMax = u_ndcSpaceAxisAlignedBoundingBox.zw; + vec2 translation = 0.5 * (aabbMax + aabbMin); + vec2 scale = 0.5 * (aabbMax - aabbMin); + gl_Position = vec4(position * scale + translation, 0.0, 1.0); +} +`;var H4=`/* Intersection defines +#define INTERSECTION_COUNT ### +*/ + +#define NO_HIT (-czm_infinity) +#define INF_HIT (czm_infinity * 0.5) +#define RAY_SHIFT (0.000003163) +#define RAY_SCALE (1.003163) + +struct Ray { + vec3 pos; + vec3 dir; +#if defined(SHAPE_BOX) + vec3 dInv; +#endif +}; + +struct RayShapeIntersection { + vec4 entry; + vec4 exit; +}; + +struct Intersections { + // Don't access these member variables directly - call the functions instead. + + // Store an array of ray-surface intersections. Each intersection is composed of: + // .xyz for the surface normal at the intersection point + // .w for the T value + // The scale of the normal encodes the shape intersection type: + // length(intersection.xyz) = 1: positive shape entry + // length(intersection.xyz) = 2: positive shape exit + // length(intersection.xyz) = 3: negative shape entry + // length(intersection.xyz) = 4: negative shape exit + // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections, + // so we need twice as many to track ray-*surface* intersections + vec4 intersections[INTERSECTION_COUNT * 2]; + + #if (INTERSECTION_COUNT > 1) + // Maintain state for future nextIntersection calls + int index; + int surroundCount; + bool surroundIsPositive; + #endif +}; + +RayShapeIntersection getFirstIntersection(in Intersections ix) +{ + return RayShapeIntersection(ix.intersections[0], ix.intersections[1]); +} + +vec4 encodeIntersectionType(vec4 intersection, int index, bool entry) +{ + float scale = float(index > 0) * 2.0 + float(!entry) + 1.0; + return vec4(intersection.xyz * scale, intersection.w); +} + +// Use defines instead of real functions because WebGL1 cannot access array with non-constant index. +#define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t)) +#define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y) +#define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection) (ix).intersections[(index)] = intersection; +#define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false) + +#if (INTERSECTION_COUNT > 1) +void initializeIntersections(inout Intersections ix) { + // Sort the intersections from min T to max T with bubble sort. + // Note: If this sorting function changes, some of the intersection test may + // need to be updated. Search for "bubble sort" to find those areas. + const int sortPasses = INTERSECTION_COUNT * 2 - 1; + for (int n = sortPasses; n > 0; --n) { + for (int i = 0; i < sortPasses; ++i) { + // The loop should be: for (i = 0; i < n; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= n) { break; } + + vec4 intersect0 = ix.intersections[i + 0]; + vec4 intersect1 = ix.intersections[i + 1]; + + bool inOrder = intersect0.w <= intersect1.w; + + ix.intersections[i + 0] = inOrder ? intersect0 : intersect1; + ix.intersections[i + 1] = inOrder ? intersect1 : intersect0; + } + } + + // Prepare initial state for nextIntersection + ix.index = 0; + ix.surroundCount = 0; + ix.surroundIsPositive = false; +} +#endif + +#if (INTERSECTION_COUNT > 1) +RayShapeIntersection nextIntersection(inout Intersections ix) { + vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT); + RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection); + + const int passCount = INTERSECTION_COUNT * 2; + + if (ix.index == passCount) { + return shapeIntersection; + } + + for (int i = 0; i < passCount; ++i) { + // The loop should be: for (i = ix.index; i < passCount; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to continue instead. + if (i < ix.index) { + continue; + } + + ix.index = i + 1; + + surfaceIntersection = ix.intersections[i]; + int intersectionType = int(length(surfaceIntersection.xyz) - 0.5); + bool currShapeIsPositive = intersectionType < 2; + bool enter = intMod(intersectionType, 2) == 0; + + ix.surroundCount += enter ? +1 : -1; + ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive; + + // entering positive or exiting negative + if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) { + shapeIntersection.entry = surfaceIntersection; + } + + // exiting positive or entering negative after being inside positive + bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0; + bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive; + if (exitPositive || enterNegativeFromPositive) { + shapeIntersection.exit = surfaceIntersection; + + // entry and exit have been found, so the loop can stop + if (exitPositive) { + // After exiting positive shape there is nothing left to intersect, so jump to the end index. + ix.index = passCount; + } + break; + } + } + + return shapeIntersection; +} +#endif + +// NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1 +`;var G4=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, +// setIntersectionPair, INF_HIT, NO_HIT + +/* intersectDepth defines (set in Scene/VoxelRenderResources.js) +#define DEPTH_INTERSECTION_INDEX ### +*/ + +uniform mat4 u_transformPositionViewToUv; + +void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) { + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord)); + if (logDepthOrDepth != 0.0) { + // Calculate how far the ray must travel before it hits the depth buffer. + vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth); + eyeCoordinateDepth /= eyeCoordinateDepth.w; + vec3 depthPositionUv = vec3(u_transformPositionViewToUv * eyeCoordinateDepth); + float t = dot(depthPositionUv - ray.pos, ray.dir); + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(t, +INF_HIT)); + } else { + // There's no depth at this location. + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(NO_HIT)); + } +} +`;var W4=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, INF_HIT, +// NO_HIT, setIntersectionPair + +/* Clipping plane defines (set in Scene/VoxelRenderResources.js) +#define CLIPPING_PLANES_UNION +#define CLIPPING_PLANES_COUNT +#define CLIPPING_PLANES_INTERSECTION_INDEX +*/ + +uniform sampler2D u_clippingPlanesTexture; +uniform mat4 u_clippingPlanesMatrix; + +// Plane is in Hessian Normal Form +vec4 intersectPlane(in Ray ray, in vec4 plane) { + vec3 n = plane.xyz; // normal + float w = plane.w; // -dot(pointOnPlane, normal) + + float a = dot(ray.pos, n); + float b = dot(ray.dir, n); + float t = -(w + a) / b; + + return vec4(n, t); +} + +void intersectClippingPlanes(in Ray ray, inout Intersections ix) { + vec4 backSide = vec4(-ray.dir, -INF_HIT); + vec4 farSide = vec4(ray.dir, +INF_HIT); + RayShapeIntersection clippingVolume; + + #if (CLIPPING_PLANES_COUNT == 1) + // Union and intersection are the same when there's one clipping plane, and the code + // is more simplified. + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + bool reflects = dot(ray.dir, intersection.xyz) < 0.0; + clippingVolume.entry = reflects ? backSide : intersection; + clippingVolume.exit = reflects ? intersection : farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #elif defined(CLIPPING_PLANES_UNION) + vec4 firstTransmission = vec4(ray.dir, +INF_HIT); + vec4 lastReflection = vec4(-ray.dir, -INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission; + } else { + lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection; + } + } + clippingVolume.entry = backSide; + clippingVolume.exit = lastReflection; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume); + clippingVolume.entry = firstTransmission; + clippingVolume.exit = farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume); + #else // intersection + vec4 lastTransmission = vec4(ray.dir, -INF_HIT); + vec4 firstReflection = vec4(-ray.dir, +INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission; + } else { + firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection; + } + } + if (lastTransmission.w < firstReflection.w) { + clippingVolume.entry = lastTransmission; + clippingVolume.exit = firstReflection; + } else { + clippingVolume.entry = vec4(-ray.dir, NO_HIT); + clippingVolume.exit = vec4(ray.dir, NO_HIT); + } + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #endif +} +`;var j4=`// See IntersectionUtils.glsl for the definitions of Ray and NO_HIT +// See convertUvToBox.glsl for the definition of convertShapeUvToUvSpace + +/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_INTERSECTION_INDEX ### // always 0 +*/ + +uniform vec3 u_renderMinBounds; +uniform vec3 u_renderMaxBounds; + +struct Box { + vec3 p0; + vec3 p1; +}; + +Box constructVoxelBox(in ivec4 octreeCoords, in vec3 tileUv) +{ + // Find the min/max cornerpoints of the voxel in tile coordinates + vec3 tileOrigin = vec3(octreeCoords.xyz); + vec3 numSamples = vec3(u_dimensions); + vec3 voxelSize = 1.0 / numSamples; + vec3 coordP0 = floor(tileUv * numSamples) * voxelSize + tileOrigin; + vec3 coordP1 = coordP0 + voxelSize; + + // Transform to the UV coordinates of the scaled tileset + float tileSize = 1.0 / pow(2.0, float(octreeCoords.w)); + vec3 p0 = convertShapeUvToUvSpace(coordP0 * tileSize); + vec3 p1 = convertShapeUvToUvSpace(coordP1 * tileSize); + + return Box(p0, p1); +} + +vec3 getBoxNormal(in Box box, in Ray ray, in float t) +{ + vec3 hitPoint = ray.pos + t * ray.dir; + vec3 lower = step(hitPoint, box.p0); + vec3 upper = step(box.p1, hitPoint); + return normalize(upper - lower); +} + +// Find the distances along a ray at which the ray intersects an axis-aligned box +// See https://tavianator.com/2011/ray_box.html +RayShapeIntersection intersectBox(in Ray ray, in Box box) +{ + // Consider the box as the intersection of the space between 3 pairs of parallel planes + // Compute the distance along the ray to each plane + vec3 t0 = (box.p0 - ray.pos) * ray.dInv; + vec3 t1 = (box.p1 - ray.pos) * ray.dInv; + + // Identify candidate entries/exits based on distance from ray.pos + vec3 entries = min(t0, t1); + vec3 exits = max(t0, t1); + + // The actual box intersection points are the furthest entry and the closest exit + float entryT = max(max(entries.x, entries.y), entries.z); + float exitT = min(min(exits.x, exits.y), exits.z); + + vec3 entryNormal = getBoxNormal(box, ray, entryT - RAY_SHIFT); + vec3 exitNormal = getBoxNormal(box, ray, exitT + RAY_SHIFT); + + if (entryT > exitT) { + entryT = NO_HIT; + exitT = NO_HIT; + } + + return RayShapeIntersection(vec4(entryNormal, entryT), vec4(exitNormal, exitT)); +} + +void intersectShape(in Ray ray, inout Intersections ix) +{ + RayShapeIntersection intersection = intersectBox(ray, Box(u_renderMinBounds, u_renderMaxBounds)); + setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection); +} +`;var Y4=`// See IntersectionUtils.glsl for the definitions of Ray, setIntersection, +// setIntersectionPair + +/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_RENDER_BOUNDS_HEIGHT +#define CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO + +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED + +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MAX +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MIN +#define CYLINDER_INTERSECTION_INDEX_ANGLE +*/ + +// Cylinder uniforms +#if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX) || defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT) + uniform vec3 u_cylinderUvToRenderBoundsScale; + uniform vec3 u_cylinderUvToRenderBoundsTranslate; +#endif +#if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) && !defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) + uniform float u_cylinderUvToRenderRadiusMin; +#endif +#if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE) + uniform vec2 u_cylinderRenderAngleMinMax; +#endif + +vec4 intersectHalfPlane(Ray ray, float angle) { + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 planeDirection = vec2(cos(angle), sin(angle)); + vec2 planeNormal = vec2(planeDirection.y, -planeDirection.x); + + float a = dot(o, planeNormal); + float b = dot(d, planeNormal); + float t = -a / b; + + vec2 p = o + t * d; + bool outside = dot(p, planeDirection) < 0.0; + if (outside) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + + return vec4(-INF_HIT, t, t, +INF_HIT); +} + +#define POSITIVE_HIT vec2(t, +INF_HIT); +#define NEGATIVE_HIT vec2(-INF_HIT, t); + +vec2 intersectHalfSpace(Ray ray, float angle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n = vec2(sin(angle), -cos(angle)); + + float a = dot(o, n); + float b = dot(d, n); + float t = -a / b; + float s = sign(a); + + // Half space cuts right through the camera, pick the side to intersect + if (a == 0.0) { + if (b >= 0.0) { + return POSITIVE_HIT; + } else { + return NEGATIVE_HIT; + } + } + + if (t >= 0.0 != s >= 0.0) { + return POSITIVE_HIT; + } else { + return NEGATIVE_HIT; + } +} + +vec2 intersectRegularWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n1 = vec2(sin(minAngle), -cos(minAngle)); + vec2 n2 = vec2(-sin(maxAngle), cos(maxAngle)); + + float a1 = dot(o, n1); + float a2 = dot(o, n2); + float b1 = dot(d, n1); + float b2 = dot(d, n2); + + float t1 = -a1 / b1; + float t2 = -a2 / b2; + float s1 = sign(a1); + float s2 = sign(a2); + + float tmin = min(t1, t2); + float tmax = max(t1, t2); + float smin = tmin == t1 ? s1 : s2; + float smax = tmin == t1 ? s2 : s1; + + bool e = tmin >= 0.0; + bool f = tmax >= 0.0; + bool g = smin >= 0.0; + bool h = smax >= 0.0; + + if (e != g && f == h) return vec2(tmin, tmax); + else if (e == g && f == h) return vec2(-INF_HIT, tmin); + else if (e != g && f != h) return vec2(tmax, +INF_HIT); + else return vec2(NO_HIT); +} + +vec4 intersectFlippedWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 planeIntersectMin = intersectHalfSpace(ray, minAngle); + vec2 planeIntersectMax = intersectHalfSpace(ray, maxAngle + czm_pi); + return vec4(planeIntersectMin, planeIntersectMax); +} + +vec2 intersectUnitCylinder(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float a = dot(d.xy, d.xy); + float b = dot(o.xy, d.xy); + float c = dot(o.xy, o.xy) - 1.0; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float ta = (-b - det) / a; + float tb = (-b + det) / a; + float t1 = min(ta, tb); + float t2 = max(ta, tb); + + float z1 = o.z + t1 * d.z; + float z2 = o.z + t2 * d.z; + + if (abs(z1) >= 1.0) + { + float tCap = (sign(z1) - o.z) / d.z; + t1 = abs(b + a * tCap) < det ? tCap : NO_HIT; + } + + if (abs(z2) >= 1.0) + { + float tCap = (sign(z2) - o.z) / d.z; + t2 = abs(b + a * tCap) < det ? tCap : NO_HIT; + } + + return vec2(t1, t2); +} + +vec2 intersectUnitCircle(Ray ray) { + vec3 o = ray.pos; + vec3 d = ray.dir; + + float t = -o.z / d.z; + vec2 zPlanePos = o.xy + d.xy * t; + float distSqr = dot(zPlanePos, zPlanePos); + + if (distSqr > 1.0) { + return vec2(NO_HIT); + } + + return vec2(t, t); +} + +vec2 intersectInfiniteUnitCylinder(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float a = dot(d.xy, d.xy); + float b = dot(o.xy, d.xy); + float c = dot(o.xy, o.xy) - 1.0; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = (-b - det) / a; + float t2 = (-b + det) / a; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + return vec2(tmin, tmax); +} + +void intersectShape(Ray ray, inout Intersections ix) +{ + #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MAX) || defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT) + ray.pos = ray.pos * u_cylinderUvToRenderBoundsScale + u_cylinderUvToRenderBoundsTranslate; + ray.dir *= u_cylinderUvToRenderBoundsScale; + #else + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + #endif + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_HEIGHT_FLAT) + vec2 outerIntersect = intersectUnitCircle(ray); + #else + vec2 outerIntersect = intersectUnitCylinder(ray); + #endif + + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MAX, outerIntersect); + + if (outerIntersect.x == NO_HIT) { + return; + } + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) + // When the cylinder is perfectly thin it's necessary to sandwich the + // inner cylinder intersection inside the outer cylinder intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the cylinder to be invisible because it will think the ray + // is still inside the inner (negative) cylinder after exiting the + // outer (positive) cylinder. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + vec2 innerIntersect = intersectInfiniteUnitCylinder(ray); + setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter + setIntersection(ix, 1, innerIntersect.x, false, true); // negative, enter + setIntersection(ix, 2, innerIntersect.y, false, false); // negative, exit + setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) + Ray innerRay = Ray(ray.pos * u_cylinderUvToRenderRadiusMin, ray.dir * u_cylinderUvToRenderRadiusMin); + vec2 innerIntersect = intersectInfiniteUnitCylinder(innerRay); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MIN, innerIntersect); + #endif + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF) + vec2 wedgeIntersect = intersectRegularWedge(ray, u_cylinderRenderAngleMinMax.x, u_cylinderRenderAngleMinMax.y); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF) + vec4 wedgeIntersect = intersectFlippedWedge(ray, u_cylinderRenderAngleMinMax.x, u_cylinderRenderAngleMinMax.y); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersect.zw); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_HALF) + vec2 wedgeIntersect = intersectHalfSpace(ray, u_cylinderRenderAngleMinMax.x); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) + vec4 wedgeIntersect = intersectHalfPlane(ray, u_cylinderRenderAngleMinMax.x); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersect.zw); + #endif +} +`;var q4=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, +// setIntersection, setIntersectionPair, INF_HIT, NO_HIT + +/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX +#define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN +#define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT +#define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN +*/ + +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidRenderLongitudeMinMax; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) + uniform vec2 u_ellipsoidRenderLatitudeCosSqrHalfMinMax; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX) + uniform float u_ellipsoidInverseOuterScaleUv; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN) + uniform float u_ellipsoidInverseInnerScaleUv; +#endif + +vec2 intersectZPlane(Ray ray) +{ + float o = ray.pos.z; + float d = ray.dir.z; + float t = -o / d; + float s = sign(o); + + if (t >= 0.0 != s >= 0.0) return vec2(t, +INF_HIT); + else return vec2(-INF_HIT, t); +} + +vec4 intersectHalfPlane(Ray ray, float angle) { + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 planeDirection = vec2(cos(angle), sin(angle)); + vec2 planeNormal = vec2(planeDirection.y, -planeDirection.x); + + float a = dot(o, planeNormal); + float b = dot(d, planeNormal); + float t = -a / b; + + vec2 p = o + t * d; + bool outside = dot(p, planeDirection) < 0.0; + if (outside) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + + return vec4(-INF_HIT, t, t, +INF_HIT); +} + +vec2 intersectHalfSpace(Ray ray, float angle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n = vec2(sin(angle), -cos(angle)); + + float a = dot(o, n); + float b = dot(d, n); + float t = -a / b; + float s = sign(a); + + if (t >= 0.0 != s >= 0.0) return vec2(t, +INF_HIT); + else return vec2(-INF_HIT, t); +} + +vec2 intersectRegularWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 o = ray.pos.xy; + vec2 d = ray.dir.xy; + vec2 n1 = vec2(sin(minAngle), -cos(minAngle)); + vec2 n2 = vec2(-sin(maxAngle), cos(maxAngle)); + + float a1 = dot(o, n1); + float a2 = dot(o, n2); + float b1 = dot(d, n1); + float b2 = dot(d, n2); + + float t1 = -a1 / b1; + float t2 = -a2 / b2; + float s1 = sign(a1); + float s2 = sign(a2); + + float tmin = min(t1, t2); + float tmax = max(t1, t2); + float smin = tmin == t1 ? s1 : s2; + float smax = tmin == t1 ? s2 : s1; + + bool e = tmin >= 0.0; + bool f = tmax >= 0.0; + bool g = smin >= 0.0; + bool h = smax >= 0.0; + + if (e != g && f == h) return vec2(tmin, tmax); + else if (e == g && f == h) return vec2(-INF_HIT, tmin); + else if (e != g && f != h) return vec2(tmax, +INF_HIT); + else return vec2(NO_HIT); +} + +vec4 intersectFlippedWedge(Ray ray, float minAngle, float maxAngle) +{ + vec2 planeIntersectMin = intersectHalfSpace(ray, minAngle); + vec2 planeIntersectMax = intersectHalfSpace(ray, maxAngle + czm_pi); + return vec4(planeIntersectMin, planeIntersectMax); +} + +vec2 intersectUnitSphere(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float b = dot(d, o); + float c = dot(o, o) - 1.0; + float det = b * b - c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = -b - det; + float t2 = -b + det; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + return vec2(tmin, tmax); +} + +vec2 intersectUnitSphereUnnormalizedDirection(Ray ray) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + + float a = dot(d, d); + float b = dot(d, o); + float c = dot(o, o) - 1.0; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = (-b - det) / a; + float t2 = (-b + det) / a; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + return vec2(tmin, tmax); +} + +vec2 intersectDoubleEndedCone(Ray ray, float cosSqrHalfAngle) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + float a = d.z * d.z - dot(d, d) * cosSqrHalfAngle; + float b = d.z * o.z - dot(o, d) * cosSqrHalfAngle; + float c = o.z * o.z - dot(o, o) * cosSqrHalfAngle; + float det = b * b - a * c; + + if (det < 0.0) { + return vec2(NO_HIT); + } + + det = sqrt(det); + float t1 = (-b - det) / a; + float t2 = (-b + det) / a; + float tmin = min(t1, t2); + float tmax = max(t1, t2); + return vec2(tmin, tmax); +} + +vec4 intersectFlippedCone(Ray ray, float cosSqrHalfAngle) { + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + if (intersect.x == NO_HIT) { + return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + } + + vec3 o = ray.pos; + vec3 d = ray.dir; + float tmin = intersect.x; + float tmax = intersect.y; + float zmin = o.z + tmin * d.z; + float zmax = o.z + tmax * d.z; + + // One interval + if (zmin < 0.0 && zmax < 0.0) return vec4(-INF_HIT, +INF_HIT, NO_HIT, NO_HIT); + else if (zmin < 0.0) return vec4(-INF_HIT, tmax, NO_HIT, NO_HIT); + else if (zmax < 0.0) return vec4(tmin, +INF_HIT, NO_HIT, NO_HIT); + // Two intervals + else return vec4(-INF_HIT, tmin, tmax, +INF_HIT); +} + +vec2 intersectRegularCone(Ray ray, float cosSqrHalfAngle) { + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + if (intersect.x == NO_HIT) { + return vec2(NO_HIT); + } + + vec3 o = ray.pos; + vec3 d = ray.dir; + float tmin = intersect.x; + float tmax = intersect.y; + float zmin = o.z + tmin * d.z; + float zmax = o.z + tmax * d.z; + + if (zmin < 0.0 && zmax < 0.0) return vec2(NO_HIT); + else if (zmin < 0.0) return vec2(tmax, +INF_HIT); + else if (zmax < 0.0) return vec2(-INF_HIT, tmin); + else return vec2(tmin, tmax); +} + +void intersectShape(in Ray ray, inout Intersections ix) { + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX) + Ray outerRay = Ray(ray.pos * u_ellipsoidInverseOuterScaleUv, ray.dir * u_ellipsoidInverseOuterScaleUv); + #else + Ray outerRay = ray; + #endif + + // Outer ellipsoid + vec2 outerIntersect = intersectUnitSphereUnnormalizedDirection(outerRay); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect); + + // Exit early if the outer ellipsoid was missed. + if (outerIntersect.x == NO_HIT) { + return; + } + + // Inner ellipsoid + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT) + // When the ellipsoid is perfectly thin it's necessary to sandwich the + // inner ellipsoid intersection inside the outer ellipsoid intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the ellipsoid to be invisible because it will think the ray + // is still inside the inner (negative) ellipsoid after exiting the + // outer (positive) ellipsoid. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter + setIntersection(ix, 1, outerIntersect.x, false, true); // negative, enter + setIntersection(ix, 2, outerIntersect.y, false, false); // negative, exit + setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN) + Ray innerRay = Ray(ray.pos * u_ellipsoidInverseInnerScaleUv, ray.dir * u_ellipsoidInverseInnerScaleUv); + vec2 innerIntersect = intersectUnitSphereUnnormalizedDirection(innerRay); + + if (innerIntersect == vec2(NO_HIT)) { + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN, innerIntersect); + } else { + // When the ellipsoid is very large and thin it's possible for floating + // point math to cause the ray to intersect the inner ellipsoid before + // the outer ellipsoid. To prevent this from happening, clamp innerIntersect + // to outerIntersect and sandwhich the intersections like described above. + // + // In theory a similar fix is needed for cylinders, however it's more + // complicated to implement because the inner shape is allowed to be + // intersected first. + innerIntersect.x = max(innerIntersect.x, outerIntersect.x); + innerIntersect.y = min(innerIntersect.y, outerIntersect.y); + setIntersection(ix, 0, outerIntersect.x, true, true); // positive, enter + setIntersection(ix, 1, innerIntersect.x, false, true); // negative, enter + setIntersection(ix, 2, innerIntersect.y, false, false); // negative, exit + setIntersection(ix, 3, outerIntersect.y, true, false); // positive, exit + } + #endif + + // Flip the ray because the intersection function expects a cone growing towards +Z. + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) + Ray flippedRay = outerRay; + flippedRay.dir.z *= -1.0; + flippedRay.pos.z *= -1.0; + #endif + + // Bottom cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) + vec2 bottomConeIntersection = intersectRegularCone(flippedRay, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) + vec2 bottomConeIntersection = intersectZPlane(flippedRay); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) + vec4 bottomConeIntersection = intersectFlippedCone(ray, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 0, bottomConeIntersection.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 1, bottomConeIntersection.zw); + #endif + + // Top cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) + vec4 topConeIntersection = intersectFlippedCone(flippedRay, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 0, topConeIntersection.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 1, topConeIntersection.zw); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF) + vec2 topConeIntersection = intersectZPlane(ray); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) + vec2 topConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeCosSqrHalfMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #endif + + // Wedge + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) + vec4 wedgeIntersect = intersectHalfPlane(ray, u_ellipsoidRenderLongitudeMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersect.zw); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF) + vec2 wedgeIntersect = intersectRegularWedge(ray, u_ellipsoidRenderLongitudeMinMax.x, u_ellipsoidRenderLongitudeMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_HALF) + vec2 wedgeIntersect = intersectHalfSpace(ray, u_ellipsoidRenderLongitudeMinMax.x); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF) + vec4 wedgeIntersect = intersectFlippedWedge(ray, u_ellipsoidRenderLongitudeMinMax.x, u_ellipsoidRenderLongitudeMinMax.y); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersect.xy); + setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersect.zw); + #endif +} +`;var bb=`// Main intersection function for Voxel scenes. +// See IntersectBox.glsl, IntersectCylinder.glsl, or IntersectEllipsoid.glsl +// for the definition of intersectShape. The appropriate function is selected +// based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See also IntersectClippingPlane.glsl and IntersectDepth.glsl. +// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, +// getFirstIntersection, initializeIntersections, nextIntersection. + +/* Intersection defines (set in Scene/VoxelRenderResources.js) +#define INTERSECTION_COUNT ### +*/ + +RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, out Intersections ix) { + // Do a ray-shape intersection to find the exact starting and ending points. + intersectShape(ray, ix); + + // Exit early if the positive shape was completely missed or behind the ray. + RayShapeIntersection intersection = getFirstIntersection(ix); + if (intersection.entry.w == NO_HIT) { + // Positive shape was completely missed - so exit early. + return intersection; + } + + // Clipping planes + #if defined(CLIPPING_PLANES) + intersectClippingPlanes(ray, ix); + #endif + + // Depth + #if defined(DEPTH_TEST) + intersectDepth(screenCoord, ray, ix); + #endif + + // Find the first intersection that's in front of the ray + #if (INTERSECTION_COUNT > 1) + initializeIntersections(ix); + for (int i = 0; i < INTERSECTION_COUNT; ++i) { + intersection = nextIntersection(ix); + if (intersection.exit.w > 0.0) { + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + break; + } + } + #else + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + #endif + + return intersection; +} +`;var X4=`/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_HAS_SHAPE_BOUNDS +*/ + +#if defined(BOX_HAS_SHAPE_BOUNDS) + uniform vec3 u_boxUvToShapeUvScale; + uniform vec3 u_boxUvToShapeUvTranslate; +#endif + +vec3 convertUvToShapeUvSpace(in vec3 positionUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return positionUv * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate; +#else + return positionUv; +#endif +} + +vec3 convertShapeUvToUvSpace(in vec3 shapeUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return (shapeUv - u_boxUvToShapeUvTranslate) / u_boxUvToShapeUvScale; +#else + return shapeUv; +#endif +} +`;var K4=`/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED +*/ + +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + uniform vec2 u_cylinderUvToShapeUvRadius; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + uniform vec2 u_cylinderUvToShapeUvHeight; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + uniform vec2 u_cylinderUvToShapeUvAngle; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + uniform vec2 u_cylinderShapeUvAngleMinMax; +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + uniform float u_cylinderShapeUvAngleRangeZeroMid; +#endif + +vec3 convertUvToShapeUvSpace(in vec3 positionUv) { + vec3 positionLocal = positionUv * 2.0 - 1.0; // [-1,+1] + + // Compute radius + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS_FLAT) + float radius = 1.0; + #else + float radius = length(positionLocal.xy); // [0,1] + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + radius = radius * u_cylinderUvToShapeUvRadius.x + u_cylinderUvToShapeUvRadius.y; // x = scale, y = offset + #endif + #endif + + // Compute height + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT_FLAT) + float height = 1.0; + #else + float height = positionUv.z; // [0,1] + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + height = height * u_cylinderUvToShapeUvHeight.x + u_cylinderUvToShapeUvHeight.y; // x = scale, y = offset + #endif + #endif + + // Compute angle + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) + float angle = 1.0; + #else + float angle = (atan(positionLocal.y, positionLocal.x) + czm_pi) / czm_twoPi; // [0,1] + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + // Comparing against u_cylinderShapeUvAngleMinMax has precision problems. u_cylinderShapeUvAngleRangeZeroMid is more conservative. + angle += float(angle < u_cylinderShapeUvAngleRangeZeroMid); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) + angle = angle > u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.x : angle; + #elif defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + angle = angle < u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.y : angle; + #endif + + angle = angle * u_cylinderUvToShapeUvAngle.x + u_cylinderUvToShapeUvAngle.y; // x = scale, y = offset + #endif + #endif + + return vec3(radius, height, angle); +} +`;var J4=`/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN +#define ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT +#define ELLIPSOID_IS_SPHERE +*/ + +uniform vec3 u_ellipsoidRadiiUv; // [0,1] +#if !defined(ELLIPSOID_IS_SPHERE) + uniform vec3 u_ellipsoidInverseRadiiSquaredUv; +#endif +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) || defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + uniform vec3 u_ellipsoidShapeUvLongitudeMinMaxMid; +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLongitude; // x = scale, y = offset +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLatitude; // x = scale, y = offset +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) && !defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT) + uniform float u_ellipsoidInverseHeightDifferenceUv; + uniform vec2 u_ellipseInnerRadiiUv; // [0,1] +#endif + +// robust iterative solution without trig functions +// https://github.com/0xfaded/ellipse_demo/issues/1 +// https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse +// Pro: Good when radii.x ~= radii.y +// Con: Breaks at pos.x ~= 0.0, especially inside the ellipse +// Con: Inaccurate with exterior points and thin ellipses +float ellipseDistanceIterative (vec2 pos, vec2 radii) { + vec2 p = abs(pos); + vec2 invRadii = 1.0 / radii; + vec2 a = vec2(1.0, -1.0) * (radii.x * radii.x - radii.y * radii.y) * invRadii; + vec2 t = vec2(0.70710678118); // sqrt(2) / 2 + vec2 v = radii * t; + + const int iterations = 3; + for (int i = 0; i < iterations; ++i) { + vec2 e = a * pow(t, vec2(3.0)); + vec2 q = normalize(p - e) * length(v - e); + t = normalize((q + e) * invRadii); + v = radii * t; + } + return length(v * sign(pos) - pos) * sign(p.y - v.y); +} + +vec3 convertUvToShapeUvSpace(in vec3 positionUv) { + // Compute position and normal. + // Convert positionUv [0,1] to local space [-1,+1] to "normalized" cartesian space [-a,+a] where a = (radii + height) / (max(radii) + height). + // A point on the largest ellipsoid axis would be [-1,+1] and everything else would be smaller. + vec3 positionLocal = positionUv * 2.0 - 1.0; + #if defined(ELLIPSOID_IS_SPHERE) + vec3 posEllipsoid = positionLocal * u_ellipsoidRadiiUv.x; + vec3 normal = normalize(posEllipsoid); + #else + vec3 posEllipsoid = positionLocal * u_ellipsoidRadiiUv; + vec3 normal = normalize(posEllipsoid * u_ellipsoidInverseRadiiSquaredUv); // geodetic surface normal + #endif + + // Compute longitude + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) + float longitude = 1.0; + #else + float longitude = (atan(normal.y, normal.x) + czm_pi) / czm_twoPi; + + // Correct the angle when max < min + // Technically this should compare against min longitude - but it has precision problems so compare against the middle of empty space. + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + longitude += float(longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) + longitude = longitude > u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.x : longitude; + #endif + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) + longitude = longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.y : longitude; + #endif + + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + longitude = longitude * u_ellipsoidUvToShapeUvLongitude.x + u_ellipsoidUvToShapeUvLongitude.y; + #endif + #endif + + // Compute latitude + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE_RANGE_EQUAL_ZERO) + float latitude = 1.0; + #else + float latitude = (asin(normal.z) + czm_piOverTwo) / czm_pi; + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + latitude = latitude * u_ellipsoidUvToShapeUvLatitude.x + u_ellipsoidUvToShapeUvLatitude.y; + #endif + #endif + + // Compute height + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_FLAT) + // TODO: This breaks down when minBounds == maxBounds. To fix it, this + // function would have to know if ray is intersecting the front or back of the shape + // and set the shape space position to 1 (front) or 0 (back) accordingly. + float height = 1.0; + #else + #if defined(ELLIPSOID_IS_SPHERE) + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) + float height = (length(posEllipsoid) - u_ellipseInnerRadiiUv.x) * u_ellipsoidInverseHeightDifferenceUv; + #else + float height = length(posEllipsoid); + #endif + #else + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_HEIGHT_MIN) + // Convert the 3D position to a 2D position relative to the ellipse (radii.x, radii.z) (assuming radii.x == radii.y which is true for WGS84). + // This is an optimization so that math can be done with ellipses instead of ellipsoids. + vec2 posEllipse = vec2(length(posEllipsoid.xy), posEllipsoid.z); + float height = ellipseDistanceIterative(posEllipse, u_ellipseInnerRadiiUv) * u_ellipsoidInverseHeightDifferenceUv; + #else + // TODO: this is probably not correct + float height = length(posEllipsoid); + #endif + #endif + #endif + + return vec3(longitude, latitude, height); +} +`;var Z4=`// These octree flags must be in sync with GpuOctreeFlag in VoxelTraversal.js +#define OCTREE_FLAG_INTERNAL 0 +#define OCTREE_FLAG_LEAF 1 +#define OCTREE_FLAG_PACKED_LEAF_FROM_PARENT 2 + +#define OCTREE_MAX_LEVELS 32 // Harcoded value because GLSL doesn't like variable length loops + +uniform sampler2D u_octreeInternalNodeTexture; +uniform vec2 u_octreeInternalNodeTexelSizeUv; +uniform int u_octreeInternalNodeTilesPerRow; +#if (SAMPLE_COUNT > 1) +uniform sampler2D u_octreeLeafNodeTexture; +uniform vec2 u_octreeLeafNodeTexelSizeUv; +uniform int u_octreeLeafNodeTilesPerRow; +#endif + +struct OctreeNodeData { + int data; + int flag; +}; + +struct TraversalData { + ivec4 octreeCoords; + int parentOctreeIndex; +}; + +struct SampleData { + int megatextureIndex; + ivec4 tileCoords; + vec3 tileUv; + #if (SAMPLE_COUNT > 1) + float weight; + #endif +}; + +// Integer mod: For WebGL1 only +int intMod(in int a, in int b) { + return a - (b * (a / b)); +} +int normU8_toInt(in float value) { + return int(value * 255.0); +} +int normU8x2_toInt(in vec2 value) { + return int(value.x * 255.0) + 256 * int(value.y * 255.0); +} +float normU8x2_toFloat(in vec2 value) { + return float(normU8x2_toInt(value)) / 65535.0; +} + +OctreeNodeData getOctreeNodeData(in vec2 octreeUv) { + vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv); + + OctreeNodeData data; + data.data = normU8x2_toInt(texData.xy); + data.flag = normU8x2_toInt(texData.zw); + return data; +} + +OctreeNodeData getOctreeChildData(in int parentOctreeIndex, in ivec3 childCoord) { + int childIndex = childCoord.z * 4 + childCoord.y * 2 + childCoord.x; + int octreeCoordX = intMod(parentOctreeIndex, u_octreeInternalNodeTilesPerRow) * 9 + 1 + childIndex; + int octreeCoordY = parentOctreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + return getOctreeNodeData(octreeUv); +} + +int getOctreeParentIndex(in int octreeIndex) { + int octreeCoordX = intMod(octreeIndex, u_octreeInternalNodeTilesPerRow) * 9; + int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv); + int parentOctreeIndex = normU8x2_toInt(parentData.xy); + return parentOctreeIndex; +} + +/** +* Convert a position in the uv-space of the tileset bounding shape +* into the uv-space of a tile within the tileset +*/ +vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) { + // PERFORMANCE_IDEA: use bit-shifting (only in WebGL2) + float dimAtLevel = pow(2.0, float(octreeCoords.w)); + return shapePosition * dimAtLevel - vec3(octreeCoords.xyz); +} + +void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) { + sampleData.megatextureIndex = data.data; + sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; +} + +#if (SAMPLE_COUNT > 1) +void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) { + int leafIndex = data.data; + int leafNodeTexelCount = 2; + // Adding 0.5 moves to the center of the texel + float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5; + float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5; + + // Get an interpolation weight and a flag to determine whether to read the parent texture + vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY); + vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0); + float lerp = normU8x2_toFloat(leafData0.xy); + sampleDatas[0].weight = 1.0 - lerp; + sampleDatas[1].weight = lerp; + // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT + sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + + // Get megatexture indices for both samples + vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY); + vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1); + sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy); + sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw); +} +#endif + +OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) { + float sizeAtLevel = 1.0 / pow(2.0, float(traversalData.octreeCoords.w)); + vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel; + vec3 end = start + vec3(sizeAtLevel); + OctreeNodeData childData; + + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + // Find out which octree child contains the position + // 0 if before center, 1 if after + vec3 center = 0.5 * (start + end); + vec3 childCoord = step(center, shapePosition); + + // Get octree coords for the next level down + ivec4 octreeCoords = traversalData.octreeCoords; + traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1); + + childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord)); + + if (childData.flag != OCTREE_FLAG_INTERNAL) { + // leaf tile - stop traversing + break; + } + + // interior tile - keep going deeper + start = mix(start, center, childCoord); + end = mix(center, end, childCoord); + traversalData.parentOctreeIndex = childData.data; + } + + return childData; +} + +/** +* Transform a given position to an octree tile coordinate and a position within that tile, +* and find the corresponding megatexture index and texture coordinates +*/ +void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) { + traversalData.octreeCoords = ivec4(0); + traversalData.parentOctreeIndex = 0; + + OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0)); + if (nodeData.flag != OCTREE_FLAG_LEAF) { + nodeData = traverseOctreeDownwards(shapePosition, traversalData); + } + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} + +bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) { + return clamp(v, minVal, maxVal) == v; +} + +bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) { + vec3 tileUv = getTileUv(shapePosition, octreeCoords); + bool inside = inRange(tileUv, vec3(0.0), vec3(1.0)); + // Assume (!) the position is always inside the root tile. + return inside || octreeCoords.w == 0; +} + +void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) { + if (insideTile(shapePosition, traversalData.octreeCoords)) { + for (int i = 0; i < SAMPLE_COUNT; i++) { + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + } + return; + } + + // Go up tree until we find a parent tile containing shapePosition + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + traversalData.octreeCoords.xyz /= 2; + traversalData.octreeCoords.w -= 1; + + if (insideTile(shapePosition, traversalData.octreeCoords)) { + break; + } + + traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex); + } + + // Go down tree + OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData); + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} +`;var Q4=`// See Octree.glsl for the definitions of SampleData and intMod + +/* Megatexture defines (set in Scene/VoxelRenderResources.js) +#define SAMPLE_COUNT ### +#define NEAREST_SAMPLING +#define PADDING +*/ + +uniform ivec2 u_megatextureSliceDimensions; // number of slices per tile, in two dimensions +uniform ivec2 u_megatextureTileDimensions; // number of tiles per megatexture, in two dimensions +uniform vec2 u_megatextureVoxelSizeUv; +uniform vec2 u_megatextureSliceSizeUv; +uniform vec2 u_megatextureTileSizeUv; + +uniform ivec3 u_dimensions; // does not include padding +#if defined(PADDING) + uniform ivec3 u_paddingBefore; + uniform ivec3 u_paddingAfter; +#endif + +// Integer min, max, clamp: For WebGL1 only +int intMin(int a, int b) { + return a <= b ? a : b; +} +int intMax(int a, int b) { + return a >= b ? a : b; +} +int intClamp(int v, int minVal, int maxVal) { + return intMin(intMax(v, minVal), maxVal); +} + +vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale) +{ + int indexX = intMod(index, dimensions.x); + int indexY = index / dimensions.x; + return vec2(indexX, indexY) * uvScale; +} + +/* + How is 3D data stored in a 2D megatexture? + + In this example there is only one loaded tile and it has 2x2x2 voxels (8 voxels total). + The data is sliced by Z. The data at Z = 0 is placed in texels (0,0), (0,1), (1,0), (1,1) and + the data at Z = 1 is placed in texels (2,0), (2,1), (3,0), (3,1). + Note that there could be empty space in the megatexture because it's a power of two. + + 0 1 2 3 + +---+---+---+---+ + | | | | | 3 + +---+---+---+---+ + | | | | | 2 + +-------+-------+ + |010|110|011|111| 1 + |--- ---|--- ---| + |000|100|001|101| 0 + +-------+-------+ + + When doing linear interpolation the megatexture needs to be sampled twice: once for + the Z slice above the voxel coordinate and once for the slice below. The two slices + are interpolated with fract(coord.z - 0.5). For example, a Z coordinate of 1.0 is + halfway between two Z slices so the interpolation factor is 0.5. Below is a side view + of the 3D voxel grid with voxel coordinates on the left side. + + 2 +---+ + |001| + 1 +-z-+ + |000| + 0 +---+ + + When doing nearest neighbor the megatexture only needs to be sampled once at the closest Z slice. +*/ + +Properties getPropertiesFromMegatexture(in SampleData sampleData) { + vec3 tileUv = clamp(sampleData.tileUv, vec3(0.0), vec3(1.0)); // TODO is the clamp necessary? + int tileIndex = sampleData.megatextureIndex; + vec3 voxelCoord = tileUv * vec3(u_dimensions); + ivec3 voxelDimensions = u_dimensions; + + #if defined(PADDING) + voxelDimensions += u_paddingBefore + u_paddingAfter; + voxelCoord += vec3(u_paddingBefore); + #endif + + #if defined(NEAREST_SAMPLING) + // Round to the center of the nearest voxel + voxelCoord = floor(voxelCoord) + vec3(0.5); + #endif + + // Tile location + vec2 tileUvOffset = index1DTo2DTexcoord(tileIndex, u_megatextureTileDimensions, u_megatextureTileSizeUv); + + // Slice location + float slice = voxelCoord.z - 0.5; + int sliceIndex = int(floor(slice)); + int sliceIndex0 = intClamp(sliceIndex, 0, voxelDimensions.z - 1); + vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + + // Voxel location + vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(voxelDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv; + + // Final location in the megatexture + vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset; + + #if defined(NEAREST_SAMPLING) + return getPropertiesFromMegatextureAtUv(uv0); + #else + float sliceLerp = fract(slice); + int sliceIndex1 = intMin(sliceIndex + 1, voxelDimensions.z - 1); + vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset; + Properties properties0 = getPropertiesFromMegatextureAtUv(uv0); + Properties properties1 = getPropertiesFromMegatextureAtUv(uv1); + return mixProperties(properties0, properties1, sliceLerp); + #endif +} + +// Convert an array of sample datas to a final weighted properties. +Properties accumulatePropertiesFromMegatexture(in SampleData sampleDatas[SAMPLE_COUNT]) { + #if (SAMPLE_COUNT == 1) + return getPropertiesFromMegatexture(sampleDatas[0]); + #else + // When more than one sample is taken the accumulator needs to start at 0 + Properties properties = clearProperties(); + for (int i = 0; i < SAMPLE_COUNT; ++i) { + float weight = sampleDatas[i].weight; + + // Avoid reading the megatexture when the weight is 0 as it can be costly. + if (weight > 0.0) { + Properties tempProperties = getPropertiesFromMegatexture(sampleDatas[i]); + tempProperties = scaleProperties(tempProperties, weight); + properties = sumProperties(properties, tempProperties); + } + } + return properties; + #endif +} +`;function Cpt(e){let t=new Wx;this.shaderBuilder=t;let n=e._customShader,i=gt(e._uniformMap,n.uniformMap);e._uniformMap=i;let o=n.uniforms;for(let p in o)if(o.hasOwnProperty(p)){let g=o[p];t.addUniform(g.type,p,Te.FRAGMENT)}t.addUniform("sampler2D","u_megatextureTextures[METADATA_COUNT]",Te.FRAGMENT),this.uniformMap=i;let r=e._clippingPlanes,s=l(r)&&r.enabled?r.length:0;this.clippingPlanes=r,this.clippingPlanesLength=s,t.addVertexLines([z4]),t.addFragmentLines([n.fragmentShaderText,"#line 0",Z4,H4,Q4]),s>0&&(t.addDefine("CLIPPING_PLANES",void 0,Te.FRAGMENT),t.addDefine("CLIPPING_PLANES_COUNT",s,Te.FRAGMENT),r.unionClippingRegions&&t.addDefine("CLIPPING_PLANES_UNION",void 0,Te.FRAGMENT),t.addFragmentLines([W4])),e._depthTest&&(t.addDefine("DEPTH_TEST",void 0,Te.FRAGMENT),t.addFragmentLines([G4]));let a=e._provider.shape;a==="BOX"?(t.addDefine("SHAPE_BOX",void 0,Te.FRAGMENT),t.addFragmentLines([X4,j4,bb])):a==="CYLINDER"?t.addFragmentLines([Y4,bb,K4]):a==="ELLIPSOID"&&t.addFragmentLines([q4,bb,J4]),t.addFragmentLines([k4]);let c=e._shape,u=c.shaderDefines;for(let p in u)if(u.hasOwnProperty(p)){let g=u[p];l(g)&&(g=g===!0?void 0:g,t.addDefine(p,g,Te.FRAGMENT))}let f=c.shaderMaximumIntersectionsLength;s>0&&(t.addDefine("CLIPPING_PLANES_INTERSECTION_INDEX",f,Te.FRAGMENT),s===1?f+=1:r.unionClippingRegions?f+=2:f+=1),e._depthTest&&(t.addDefine("DEPTH_INTERSECTION_INDEX",f,Te.FRAGMENT),f+=1),t.addDefine("INTERSECTION_COUNT",f,Te.FRAGMENT),(!m.equals(e.paddingBefore,m.ZERO)||!m.equals(e.paddingAfter,m.ZERO))&&t.addDefine("PADDING",void 0,Te.FRAGMENT),e._useLogDepth&&t.addDefine("LOG_DEPTH_READ_ONLY",void 0,Te.FRAGMENT),e._jitter&&t.addDefine("JITTER",void 0,Te.FRAGMENT),e._nearestSampling&&t.addDefine("NEAREST_SAMPLING",void 0,Te.FRAGMENT);let d=e._traversal;t.addDefine("SAMPLE_COUNT",`${d._sampleCount}`,Te.FRAGMENT)}var $4=Cpt;function Tpt(e,t){let{shaderBuilder:n}=e,{names:i,types:o,componentTypes:r,minimumValues:s,maximumValues:a}=t._provider,c=o.length,u=l(s)&&l(a);n.addDefine("METADATA_COUNT",c,Te.FRAGMENT),u&&n.addDefine("STATISTICS",void 0,Te.FRAGMENT);for(let M=0;M<c;M++){let L=i[M],N=o[M],_=`PropertyStatistics_${L}`,b=`PropertyStatistics_${L}`;n.addStruct(_,b,Te.FRAGMENT);let w=ez(N);n.addStructField(_,w,"min"),n.addStructField(_,w,"max")}let f="Statistics",d="Statistics",p="statistics";n.addStruct(f,d,Te.FRAGMENT);for(let M=0;M<c;M++){let L=i[M],N=`PropertyStatistics_${L}`,_=L;n.addStructField(f,N,_)}let g="Metadata",h="Metadata",A="metadata";n.addStruct(g,h,Te.FRAGMENT),n.addStructField(g,d,p);for(let M=0;M<c;M++){let L=i[M],N=o[M],_=ez(N);n.addStructField(g,_,L)}for(let M=0;M<c;M++){let L=i[M],N=o[M],_=bpt(N),b=`VoxelProperty_${L}`,w=`VoxelProperty_${L}`;n.addStruct(b,w,Te.FRAGMENT),n.addStructField(b,_,"partialDerivativeLocal"),n.addStructField(b,_,"partialDerivativeWorld"),n.addStructField(b,_,"partialDerivativeView"),n.addStructField(b,_,"partialDerivativeValid")}let x="Voxel",C="Voxel",T="voxel";n.addStruct(x,C,Te.FRAGMENT);for(let M=0;M<c;M++){let L=i[M],N=`VoxelProperty_${L}`;n.addStructField(x,N,L)}n.addStructField(x,"vec3","positionEC"),n.addStructField(x,"vec3","positionUv"),n.addStructField(x,"vec3","positionShapeUv"),n.addStructField(x,"vec3","positionUvLocal"),n.addStructField(x,"vec3","viewDirUv"),n.addStructField(x,"vec3","viewDirWorld"),n.addStructField(x,"vec3","surfaceNormal"),n.addStructField(x,"float","travelDistance");let E="FragmentInput",S="FragmentInput";n.addStruct(E,S,Te.FRAGMENT),n.addStructField(E,h,A),n.addStructField(E,C,T);let v="Properties",D="Properties",O="properties";n.addStruct(v,D,Te.FRAGMENT);for(let M=0;M<c;M++){let L=i[M],N=o[M],_=ez(N);n.addStructField(v,_,L)}{let M="clearProperties";n.addFunction(M,`${D} clearProperties()`,Te.FRAGMENT),n.addFunctionLines(M,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L],_=o[L],b=r[L],w=ez(_,b);n.addFunctionLines(M,[`${O}.${N} = ${w}(0.0);`])}n.addFunctionLines(M,[`return ${O};`])}{let M="sumProperties";n.addFunction(M,`${D} sumProperties(${D} propertiesA, ${D} propertiesB)`,Te.FRAGMENT),n.addFunctionLines(M,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(M,[`${O}.${N} = propertiesA.${N} + propertiesB.${N};`])}n.addFunctionLines(M,[`return ${O};`])}{let M="scaleProperties";n.addFunction(M,`${D} scaleProperties(${D} ${O}, float scale)`,Te.FRAGMENT),n.addFunctionLines(M,[`${D} scaledProperties = ${O};`]);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(M,[`scaledProperties.${N} *= scale;`])}n.addFunctionLines(M,["return scaledProperties;"])}{let M="mixProperties";n.addFunction(M,`${D} mixProperties(${D} propertiesA, ${D} propertiesB, float mixFactor)`,Te.FRAGMENT),n.addFunctionLines(M,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(M,[`${O}.${N} = mix(propertiesA.${N}, propertiesB.${N}, mixFactor);`])}n.addFunctionLines(M,[`return ${O};`])}{let M="copyPropertiesToMetadata";n.addFunction(M,`void copyPropertiesToMetadata(in ${D} ${O}, inout ${h} ${A})`,Te.FRAGMENT);for(let L=0;L<c;L++){let N=i[L];n.addFunctionLines(M,[`${A}.${N} = ${O}.${N};`])}}if(u){let M="setStatistics";n.addFunction(M,`void setStatistics(inout ${d} ${p})`,Te.FRAGMENT);for(let L=0;L<c;L++){let N=i[L],_=o[L],b=jt.getComponentCount(_);for(let w=0;w<b;w++){let I=Spt(_,w),R=s[L][w],F=a[L][w];n.addFunctionLines(M,[`${p}.${N}.min${I} = ${l0e(R)};`,`${p}.${N}.max${I} = ${l0e(F)};`])}}}{let M="getPropertiesFromMegatextureAtUv";n.addFunction(M,`${D} getPropertiesFromMegatextureAtUv(vec2 texcoord)`,Te.FRAGMENT),n.addFunctionLines(M,[`${D} ${O};`]);for(let L=0;L<c;L++){let N=i[L],_=o[L],b=r[L],w=Ept(_,b);n.addFunctionLines(M,[`properties.${N} = texture(u_megatextureTextures[${L}], texcoord)${w};`])}n.addFunctionLines(M,[`return ${O};`])}}function ez(e){if(e===jt.SCALAR)return"float";if(e===jt.VEC2)return"vec2";if(e===jt.VEC3)return"vec3";if(e===jt.VEC4)return"vec4"}function Ept(e){if(e===jt.SCALAR)return".r";if(e===jt.VEC2)return".ra";if(e===jt.VEC3)return".rgb";if(e===jt.VEC4)return""}function bpt(e){if(e===jt.SCALAR)return"vec3";if(e===jt.VEC2)return"mat2";if(e===jt.VEC3)return"mat3";if(e===jt.VEC4)return"mat4"}function l0e(e){let t=e.toString();return t.indexOf(".")===-1&&(t=`${e}.0`),t}function Spt(e,t){return e===jt.SCALAR?"":`[${t}]`}var tz=Tpt;function wpt(e,t){let n=new $4(e);tz(n,e);let{shaderBuilder:i,clippingPlanes:o,clippingPlanesLength:r}=n;if(r>0){let h="getClippingPlane",A=ry(o,t),x=0,C=A.indexOf(")")+1,T=A.indexOf("{",C)+1,E=A.indexOf("}",T),S=A.slice(x,C),v=A.slice(T,E);i.addFunction(h,S,Te.FRAGMENT),i.addFunctionLines(h,[v])}let s=i.clone();s.addDefine("PICKING",void 0,Te.FRAGMENT);let a=i.buildShaderProgram(t),c=s.buildShaderProgram(t),u=ze.fromCache({cull:{enabled:!0,face:gi.BACK},depthTest:{enabled:!1},depthMask:!1,blending:mn.PRE_MULTIPLIED_ALPHA_BLEND}),f=t.getViewportQuadVertexArray(),d=e._depthTest,p=new it({vertexArray:f,primitiveType:Le.TRIANGLES,renderState:u,shaderProgram:a,uniformMap:n.uniformMap,modelMatrix:e._compoundModelMatrix,pass:be.VOXELS,executeInClosestFrustum:!0,owner:this,cull:d,occlude:d}),g=it.shallowClone(p,new it);if(g.shaderProgram=c,g.pickOnly=!0,l(e._drawCommand)){let h=e._drawCommand;h.shaderProgram=h.shaderProgram&&h.shaderProgram.destroy()}if(l(e._drawCommandPick)){let h=e._drawCommandPick;h.shaderProgram=h.shaderProgram&&h.shaderProgram.destroy()}e._drawCommand=p,e._drawCommandPick=g}var nz=wpt;function wy(e,t,n,i,o,r,s){this._primitive=e;let a=i.length;this.megatextures=new Array(a);for(let A=0;A<a;A++){let x=i[A],C=jt.getComponentCount(x),T=o[A];this.megatextures[A]=new fI(t,n,C,T,s)}let c=this.megatextures[0].maximumTileCount;this._simultaneousRequestCount=0,this._debugPrint=!1,this._frameNumber=0;let u=e._shape;this.rootNode=new P4(0,0,0,0,void 0,u,n),this._priorityQueue=new fb({maximumLength:c,comparator:$i.priorityComparator}),this._highPriorityKeyframeNodes=new Array(c),this._keyframeNodesInMegatexture=new Array(c),this._keyframeCount=r,this._sampleCount=void 0,this._keyframeLocation=0,this._binaryTreeKeyframeWeighting=new Array(r);let f=this._binaryTreeKeyframeWeighting;f[0]=0,f[r-1]=0,Tq(f,1,r-2,0);let d=9,p=2048,g=Math.floor(p/d),h=Math.ceil(c/g);this.internalNodeTexture=new Bt({context:t,pixelFormat:lt.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,flipY:!1,width:p,height:h,sampler:new dn({minificationFilter:ln.NEAREST,magnificationFilter:bi.NEAREST})}),this.internalNodeTilesPerRow=g,this.internalNodeTexelSizeUv=new H(1/p,1/h),this.leafNodeTexture=void 0,this.leafNodeTilesPerRow=void 0,this.leafNodeTexelSizeUv=new H}function Tq(e,t,n,i){if(t>n)return;let o=Math.floor((t+n)/2);e[o]=i,Tq(e,t,o-1,i+1),Tq(e,o+1,n,i+1)}wy.simultaneousRequestCountMaximum=50;wy.prototype.update=function(e,t,n,i){let o=this._primitive,r=e.context,s=this.megatextures[0].maximumTileCount,a=this._keyframeCount,c=o._levelBlendFactor,u=c>0,f=a>1,d=(u?2:1)*(f?2:1);this._sampleCount=d;let p=d>=2;if(p&&!l(this.leafNodeTexture)){let T=Math.floor(512),E=Math.ceil(s/T);this.leafNodeTexture=new Bt({context:r,pixelFormat:lt.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,flipY:!1,width:1024,height:E,sampler:new dn({minificationFilter:ln.NEAREST,magnificationFilter:bi.NEAREST})}),this.leafNodeTexelSizeUv=H.fromElements(1/1024,1/E,this.leafNodeTexelSizeUv),this.leafNodeTilesPerRow=T}else!p&&l(this.leafNodeTexture)&&(this.leafNodeTexture=this.leafNodeTexture.destroy());if(this._keyframeLocation=P.clamp(t,0,a-1),n&&u0e(this,this.rootNode),i)return;this._frameNumber=e.frameNumber;let g=Ci();Ipt(this,e);let h=Ci();Opt(this,d,c);let A=Ci();if(this._debugPrint){let x=h-g,C=A-h,T=A-g;Ppt(this,x,C,T)}};wy.prototype.isRenderable=function(e){return e.isRenderable(this._frameNumber)};wy.prototype.isDestroyed=function(){return!1};wy.prototype.destroy=function(){let e=this.megatextures,t=e.length;for(let n=0;n<t;n++)e[n]=e[n]&&e[n].destroy();return this.internalNodeTexture=this.internalNodeTexture&&this.internalNodeTexture.destroy(),this.leafNodeTexture=this.leafNodeTexture&&this.leafNodeTexture.destroy(),ue(this)};function u0e(e,t){let n=e._primitive,i=n._shape,o=n._provider.dimensions;if(t.computeBoundingVolumes(i,o),l(t.children))for(let r=0;r<8;r++){let s=t.children[r];u0e(e,s)}}function vpt(e,t){if(e._simultaneousRequestCount>=wy.simultaneousRequestCountMaximum)return;let n=e._primitive,i=n._provider;function o(u){e._simultaneousRequestCount--;let f=n._provider.types.length;if(!l(u))t.state=$i.LoadState.UNAVAILABLE;else if(u===$i.LoadState.FAILED)t.state=$i.LoadState.FAILED;else if(!Array.isArray(u)||u.length!==f)t.state=$i.LoadState.FAILED;else{let d=e.megatextures;for(let p=0;p<f;p++){let{voxelCountPerTile:g,channelCount:h}=d[p],{x:A,y:x,z:C}=g,T=A*x*C,E=u[p],S=T*h;if(E.length===S)t.metadatas[p]=E,t.state=$i.LoadState.RECEIVED;else{t.state=$i.LoadState.FAILED;break}}}}function r(){e._simultaneousRequestCount--,t.state=$i.LoadState.FAILED}let{keyframe:s,spatialNode:a}=t,c=i.requestData({tileLevel:a.level,tileX:a.x,tileY:a.y,tileZ:a.z,keyframe:s});l(c)?(e._simultaneousRequestCount++,t.state=$i.LoadState.RECEIVING,c.then(o).catch(r)):t.state=$i.LoadState.FAILED}function Dpt(e){return e/(1+e)}function Ipt(e,t){let n=e._frameNumber,i=e._primitive,o=i._shape,{dimensions:r}=i,s=i.screenSpaceError,a=e._priorityQueue,c=e._keyframeLocation,u=e._keyframeCount,f=e.rootNode,{camera:d,context:p,pixelRatio:g}=t,{positionWC:h,frustum:A}=d,C=p.drawingBufferHeight/g/A.sseDenominator;function T(b,w,I){let R=Math.min(Math.abs(w-b),Math.abs(w-I)),F=Math.max(b,u-I-1,1),k=Math.pow(1-R/F,4),V=Math.exp(-e._binaryTreeKeyframeWeighting[w]);return P.lerp(V,k,.15+.85*k)}function E(b,w){if(b.computeScreenSpaceError(h,C),w=b.visibility(t,w),w===ts.MASK_OUTSIDE)return;b.visitedFrameNumber=n;let I=P.clamp(Math.floor(c),0,u-2),R=I+1;if(u===1)b.createKeyframeNode(0);else if(b.keyframeNodes.length!==u)for(let U=0;U<u;U++)b.createKeyframeNode(U);let F=Dpt(b.screenSpaceError),k=!1,V=b.keyframeNodes;for(let U=0;U<V.length;U++){let q=V[U];q.priority=10*F+T(I,q.keyframe,R),q.state!==$i.LoadState.UNAVAILABLE&&q.state!==$i.LoadState.FAILED&&q.priority!==-Number.MAX_VALUE&&a.insert(q),q.state===$i.LoadState.LOADED&&(k=!0)}if(b.screenSpaceError<s||!k){b.children=void 0;return}l(b.children)||b.constructChildNodes(o,r);for(let U=0;U<8;U++){let q=b.children[U];E(q,w)}}a.reset(),E(f,ts.MASK_INDETERMINATE);let S=e._highPriorityKeyframeNodes,v=0,D;for(;a.length>0;)D=a.removeMaximum(),D.highPriorityFrameNumber=n,S[v]=D,v++;let O=e._keyframeNodesInMegatexture,M=e.megatextures[0],L=M.occupiedCount;O.length=L,O.sort(function(b,w){return b.highPriorityFrameNumber===w.highPriorityFrameNumber?w.priority-b.priority:w.highPriorityFrameNumber-b.highPriorityFrameNumber});let N=0,_=0;for(let b=0;b<v;b++)if(D=S[b],!(D.state===$i.LoadState.LOADED||D.spatialNode===void 0)&&(D.state===$i.LoadState.UNLOADED&&vpt(e,D),D.state===$i.LoadState.RECEIVED)){let w=0;if(M.isFull()){w=L-1-N,N++;let I=O[w];I.spatialNode.destroyKeyframeNode(I,e.megatextures)}else w=L+_,_++;D.spatialNode.addKeyframeNodeToMegatextures(D,e.megatextures),O[w]=D}}function Ppt(e,t,n,i){let o=e._keyframeCount,r=e.rootNode,s=Object.keys($i.LoadState).length,a=new Array(s),c=new Array(s),u=0;for(let C=0;C<s;C++){let T=new Array(o);a[C]=T;for(let E=0;E<o;E++)T[E]=0;c[C]=0}function f(C){let T=C.keyframeNodes;for(let E=0;E<T.length;E++){let S=T[E],v=S.keyframe,D=S.state;a[D][v]+=1,c[D]+=1,u++}if(l(C.children))for(let E=0;E<8;E++){let S=C.children[E];f(S)}}f(r);let d=`KEYFRAMES: ${a[$i.LoadState.LOADED]}`,p=`UNLOADED: ${c[$i.LoadState.UNLOADED]} | RECEIVING: ${c[$i.LoadState.RECEIVING]} | RECEIVED: ${c[$i.LoadState.RECEIVED]} | LOADED: ${c[$i.LoadState.LOADED]} | FAILED: ${c[$i.LoadState.FAILED]} | UNAVAILABLE: ${c[$i.LoadState.UNAVAILABLE]} | TOTAL: ${u}`,g=Math.round(t*100)/100,h=Math.round(n*100)/100,A=Math.round(i*100)/100,x=`LOAD: ${g} | OCT: ${h} | ALL: ${A}`;console.log(`${d} || ${p} || ${x}`)}var iz={INTERNAL:0,LEAF:1,PACKED_LEAF_FROM_PARENT:2};function Opt(e,t,n){let i=e._primitive._screenSpaceError,o=e._keyframeLocation,r=e._frameNumber,s=t>=2,a=0,c=0,u=[],f=[];function d(g,h,A,x,C){let T=!1;if(l(g.children))for(let E=0;E<8;E++){let S=g.children[E];S.computeSurroundingRenderableKeyframeNodes(o),S.isRenderable(r)&&(T=!0)}if(T){u[C]=iz.INTERNAL<<16|h,u[A]=x,a++,x=h,C=x*9+1;for(let E=0;E<8;E++){let S=g.children[E];h=a,A=h*9+0,d(S,h,A,x,C+E)}}else{if(s){let E=c*5,S=g.renderableKeyframeNodePrevious,v=g.level-S.spatialNode.level,D=S.spatialNode.parent,O=l(D)?D.renderableKeyframeNodePrevious:S,M=Mpt(g,i,n),L=v,N=1,_=S.megatextureIndex,b=O.megatextureIndex;f[E+0]=M,f[E+1]=L,f[E+2]=N,f[E+3]=_,f[E+4]=b,u[C]=iz.LEAF<<16|c}else{let E=g.renderableKeyframeNodePrevious,v=g.level-E.spatialNode.level===0?iz.LEAF:iz.PACKED_LEAF_FROM_PARENT;u[C]=v<<16|E.megatextureIndex}c++}}let p=e.rootNode;p.computeSurroundingRenderableKeyframeNodes(o),p.isRenderable(r)&&d(p,0,0,0,0),Rpt(u,9,e.internalNodeTilesPerRow,e.internalNodeTexture),s&&Bpt(f,2,e.leafNodeTilesPerRow,e.leafNodeTexture)}function Mpt(e,t,n){if(e.parent===void 0)return 0;let i=e.screenSpaceError,o=e.parent.screenSpaceError,s=((t-i)/(o-i)+n-1)/n;return P.clamp(s,0,1)}function Rpt(e,t,n,i){let o=lt.componentsLength(i.pixelFormat),r=Math.ceil(e.length/t),s=Math.max(1,t*Math.min(r,n)),a=Math.max(1,Math.ceil(r/n)),c=new Uint8Array(s*a*o);for(let d=0;d<e.length;d++){let p=e[d],g=d*o;for(let h=0;h<o;h++)c[g+h]=p>>>h*8&255}let f={source:{arrayBufferView:c,width:s,height:a},xOffset:0,yOffset:0};i.copyFrom(f)}function Bpt(e,t,n,i){let o=lt.componentsLength(i.pixelFormat),r=5,s=Math.ceil(e.length/r),a=Math.max(1,t*Math.min(s,n)),c=Math.max(1,Math.ceil(s/n)),u=new Uint8Array(a*c*o);for(let p=0;p<s;p++){let g=e[p*r+0],h=e[p*r+1],A=e[p*r+2],x=e[p*r+3],C=e[p*r+4],T=P.clamp(Math.floor(65536*g),0,65535);u[p*8+0]=T>>>0&255,u[p*8+1]=T>>>8&255,u[p*8+2]=h&255,u[p*8+3]=A&255,u[p*8+4]=x>>>0&255,u[p*8+5]=x>>>8&255,u[p*8+6]=C>>>0&255,u[p*8+7]=C>>>8&255}let d={source:{arrayBufferView:u,width:a,height:c},xOffset:0,yOffset:0};i.copyFrom(d)}wy.getApproximateTextureMemoryByteLength=function(e,t,n,i){let o=0,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=i[s],u=jt.getComponentCount(a);o+=fI.getApproximateTextureMemoryByteLength(e,t,u,c)}return o};var TI=wy;var Lpt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",MAT2:"mat2",MAT3:"mat3",MAT4:"mat4",SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube"},EI=Object.freeze(Lpt);function Npt(e,t,n){let i=new Uint8ClampedArray(e.buffer),o=new ImageData(i,t,n),r=document.createElement("canvas");return r.width=t,r.height=n,r.getContext("2d").putImageData(o,0,0),r}var oz=Npt;function Sb(){this._defaultTexture=void 0,this._textures={},this._loadedImages=[],this._lastUpdatedFrame=-1}Sb.prototype.getTexture=function(e){return this._textures[e]};function Fpt(e,t,n){n.resource.fetchImage().then(function(i){e._loadedImages.push({id:t,image:i,textureUniform:n})}).catch(function(){let i=e._textures[t];l(i)&&i!==e._defaultTexture&&i.destroy(),e._textures[t]=e._defaultTexture})}Sb.prototype.loadTexture2D=function(e,t){l(t.typedArray)?this._loadedImages.push({id:e,textureUniform:t}):Fpt(this,e,t)};function Upt(e,t,n){let{id:i,textureUniform:o,image:r}=t,s=n.webgl2?rz(o,r,n):Vpt(o,r,n),a=e._textures[i];l(a)&&a!==n.defaultTexture&&a.destroy(),e._textures[i]=s}function rz(e,t,n){let{typedArray:i,sampler:o}=e,r=l(i)?d0e(e,n):new Bt({context:n,source:t,sampler:o});return f0e(o)&&r.generateMipmap(),r}function Vpt(e,t,n){let{typedArray:i,sampler:o}=e,r=f0e(o),s=o.wrapS===Dn.REPEAT||o.wrapS===Dn.MIRRORED_REPEAT||o.wrapT===Dn.REPEAT||o.wrapT===Dn.MIRRORED_REPEAT,{width:a,height:c}=l(i)?e:t,u=[a,c].every(P.isPowerOfTwo);if((r||s)&&!u)if(l(i)){if(e.pixelDatatype===Je.UNSIGNED_BYTE){let d=oz(i,a,c),p=E0(d);return rz({sampler:o},p,n)}}else{let d=E0(t);return rz(e,d,n)}else return rz(e,t,n);return r?console.warn("Texture requires resizing for mipmaps but pixelDataType cannot be resized. The texture may be rendered incorrectly."):s&&console.warn("Texture requires resizing for wrapping but pixelDataType cannot be resized. The texture may be rendered incorrectly."),d0e(e,n)}function f0e(e){return[ln.NEAREST_MIPMAP_NEAREST,ln.NEAREST_MIPMAP_LINEAR,ln.LINEAR_MIPMAP_NEAREST,ln.LINEAR_MIPMAP_LINEAR].includes(e.minificationFilter)}function d0e(e,t){let{pixelFormat:n,pixelDatatype:i,width:o,height:r,typedArray:s,sampler:a}=e;return new Bt({context:t,pixelFormat:n,pixelDatatype:i,source:{arrayBufferView:s,width:o,height:r},sampler:a,flipY:!1})}Sb.prototype.update=function(e){if(e.frameNumber===this._lastUpdatedFrame)return;this._lastUpdatedFrame=e.frameNumber;let t=e.context;this._defaultTexture=t.defaultTexture;let n=this._loadedImages;for(let i=0;i<n.length;i++){let o=n[i];Upt(this,o,t)}n.length=0};Sb.prototype.isDestroyed=function(){return!1};Sb.prototype.destroy=function(){let e=this._textures;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];n!==this._defaultTexture&&n.destroy()}return ue(this)};var sz=Sb;function bI(e){e=y(e,y.EMPTY_OBJECT),this.mode=y(e.mode,eg.MODIFY_MATERIAL),this.lightingModel=e.lightingModel,this.uniforms=y(e.uniforms,y.EMPTY_OBJECT),this.varyings=y(e.varyings,y.EMPTY_OBJECT),this.vertexShaderText=e.vertexShaderText,this.fragmentShaderText=e.fragmentShaderText,this.translucencyMode=y(e.translucencyMode,M0.INHERIT),this._textureManager=new sz,this._defaultTexture=void 0,this.uniformMap=kpt(this),this.usedVariablesVertex={attributeSet:{},featureIdSet:{},metadataSet:{}},this.usedVariablesFragment={attributeSet:{},featureIdSet:{},metadataSet:{},materialSet:{}},Gpt(this),Wpt(this)}function kpt(e){let t=e.uniforms,n={};for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];o.type===EI.SAMPLER_2D?(e._textureManager.loadTexture2D(i,o.value),n[i]=zpt(e,i)):n[i]=Hpt(e,i)}return n}function zpt(e,t){return function(){return y(e._textureManager.getTexture(t),e._defaultTexture)}}function Hpt(e,t){return function(){return e.uniforms[t].value}}function ix(e,t,n){let i;for(;(i=t.exec(e))!==null;){let o=i[1];n[o]=!0}}function Gpt(e){let t=/[vf]sInput\.attributes\.(\w+)/g,n=/[vf]sInput\.featureIds\.(\w+)/g,i=/[vf]sInput\.metadata.(\w+)/g,o,r=e.vertexShaderText;l(r)&&(o=e.usedVariablesVertex.attributeSet,ix(r,t,o),o=e.usedVariablesVertex.featureIdSet,ix(r,n,o),o=e.usedVariablesVertex.metadataSet,ix(r,i,o));let s=e.fragmentShaderText;if(l(s)){o=e.usedVariablesFragment.attributeSet,ix(s,t,o),o=e.usedVariablesFragment.featureIdSet,ix(s,n,o),o=e.usedVariablesFragment.metadataSet,ix(s,i,o);let a=/material\.(\w+)/g,c=e.usedVariablesFragment.materialSet;ix(s,a,c)}}function m0e(e){let t=/^.*MC$/,n=/^.*WC$/,i=/^.*EC$/;return t.test(e)?`${e} (model coordinates)`:n.test(e)?`${e} (Cartesian world coordinates)`:i.test(e)?`${e} (eye coordinates)`:e}function $a(e,t,n,i){if(e.hasOwnProperty(t)){let o=`${m0e(t)} is not available in the ${i} shader. Did you mean ${m0e(n)} instead?`;throw new fe(o)}}function Wpt(e){let t=e.usedVariablesVertex.attributeSet;$a(t,"position","positionMC","vertex"),$a(t,"normal","normalMC","vertex"),$a(t,"tangent","tangentMC","vertex"),$a(t,"bitangent","bitangentMC","vertex"),$a(t,"positionWC","positionMC","vertex"),$a(t,"positionEC","positionMC","vertex"),$a(t,"normalEC","normalMC","vertex"),$a(t,"tangentEC","tangentMC","vertex"),$a(t,"bitangentEC","bitangentMC","vertex");let n=e.usedVariablesFragment.attributeSet;$a(n,"position","positionEC","fragment"),$a(n,"normal","normalEC","fragment"),$a(n,"tangent","tangentEC","fragment"),$a(n,"bitangent","bitangentEC","fragment"),$a(n,"normalMC","normalEC","fragment"),$a(n,"tangentMC","tangentEC","fragment"),$a(n,"bitangentMC","bitangentEC","fragment")}bI.prototype.setUniform=function(e,t){let n=this.uniforms[e];n.type===EI.SAMPLER_2D?this._textureManager.loadTexture2D(e,t):l(t.clone)?n.value=t.clone(n.value):n.value=t};bI.prototype.update=function(e){this._defaultTexture=e.context.defaultTexture,this._textureManager.update(e)};bI.prototype.isDestroyed=function(){return!1};bI.prototype.destroy=function(){this._textureManager=this._textureManager&&this._textureManager.destroy(),ue(this)};var wb=bI;function ph(e){e=y(e,y.EMPTY_OBJECT),this._ready=!1,this._provider=y(e.provider,ph.DefaultProvider),this._traversal=void 0,this._shape=void 0,this._shapeVisible=!1,this._paddingBefore=new m,this._paddingAfter=new m,this._minBounds=new m,this._minBoundsOld=new m,this._maxBounds=new m,this._maxBoundsOld=new m,this._minClippingBounds=new m,this._minClippingBoundsOld=new m,this._maxClippingBounds=new m,this._maxClippingBoundsOld=new m,this._clippingPlanes=void 0,this._clippingPlanesState=0,this._clippingPlanesEnabled=!1,this._modelMatrix=B.clone(y(e.modelMatrix,B.IDENTITY)),this._compoundModelMatrix=new B,this._compoundModelMatrixOld=new B,this._customShader=y(e.customShader,ph.DefaultCustomShader),this._customShaderCompilationEvent=new ge,this._shaderDirty=!0,this._drawCommand=void 0,this._drawCommandPick=void 0,this._pickId=void 0,this._clock=e.clock,this._transformPositionWorldToUv=new B,this._transformPositionUvToWorld=new B,this._transformDirectionWorldToLocal=new Z,this._transformNormalLocalToWorld=new Z,this._stepSizeUv=1,this._jitter=!0,this._nearestSampling=!1,this._levelBlendFactor=0,this._stepSizeMultiplier=1,this._depthTest=!0,this._useLogDepth=void 0,this._screenSpaceError=4,this._debugPolylines=new Im,this._debugDraw=!1,this._disableRender=!1,this._disableUpdate=!1,this._uniforms={octreeInternalNodeTexture:void 0,octreeInternalNodeTilesPerRow:0,octreeInternalNodeTexelSizeUv:new H,octreeLeafNodeTexture:void 0,octreeLeafNodeTilesPerRow:0,octreeLeafNodeTexelSizeUv:new H,megatextureTextures:[],megatextureSliceDimensions:new H,megatextureTileDimensions:new H,megatextureVoxelSizeUv:new H,megatextureSliceSizeUv:new H,megatextureTileSizeUv:new H,dimensions:new m,paddingBefore:new m,paddingAfter:new m,transformPositionViewToUv:new B,transformPositionUvToView:new B,transformDirectionViewToLocal:new Z,transformNormalLocalToWorld:new Z,cameraPositionUv:new m,ndcSpaceAxisAlignedBoundingBox:new re,clippingPlanesTexture:void 0,clippingPlanesMatrix:new B,stepSize:0,pickColor:new z},this._shapeDefinesOld={},this._uniformMap={};let t=this._uniforms,n=this._uniformMap;for(let o in t)if(t.hasOwnProperty(o)){let r=`u_${o}`;n[r]=function(){return t[o]}}let i=this._provider;this._completeLoad=function(o,r){},this._readyPromise=jpt(this,i)}async function jpt(e,t){let n=new Promise(function(a){e._completeLoad=function(c,u){u.afterRender.push(function(){return c._ready=!0,a(c),!0})}});l(t._readyPromise)&&!t._ready&&await t._readyPromise;let{shape:i,minBounds:o=ji.getMinBounds(i),maxBounds:r=ji.getMaxBounds(i)}=t;e.minBounds=o,e.maxBounds=r,e.minClippingBounds=ji.getMinBounds(i),e.maxClippingBounds=ji.getMaxBounds(i),p0e(e,t);let s=ji.getShapeConstructor(i);return e._shape=new s,e._shapeVisible=_0e(e,e._shape,t),n}Object.defineProperties(ph.prototype,{ready:{get:function(){return this._ready}},readyPromise:{get:function(){return $("VoxelPrimitive.readyPromise","VoxelPrimitive.readyPromise was deprecated in CesiumJS 1.104. It will be removed in 1.107. Wait for VoxelPrimitive.ready to return true instead."),this._readyPromise}},provider:{get:function(){return this._provider}},boundingSphere:{get:function(){return this._shape.boundingSphere}},orientedBoundingBox:{get:function(){return this.shape.orientedBoundingBox}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=B.clone(e,this._modelMatrix)}},shape:{get:function(){return this._provider.shape}},dimensions:{get:function(){return this._provider.dimensions}},minimumValues:{get:function(){return this._provider.minimumValues}},maximumValues:{get:function(){return this._provider.maximumValues}},show:{get:function(){return!this._disableRender},set:function(e){this._disableRender=!e}},disableUpdate:{get:function(){return this._disableUpdate},set:function(e){this._disableUpdate=e}},debugDraw:{get:function(){return this._debugDraw},set:function(e){this._debugDraw=e}},depthTest:{get:function(){return this._depthTest},set:function(e){this._depthTest!==e&&(this._depthTest=e,this._shaderDirty=!0)}},jitter:{get:function(){return this._jitter},set:function(e){this._jitter!==e&&(this._jitter=e,this._shaderDirty=!0)}},nearestSampling:{get:function(){return this._nearestSampling},set:function(e){this._nearestSampling!==e&&(this._nearestSampling=e,this._shaderDirty=!0)}},levelBlendFactor:{get:function(){return this._levelBlendFactor},set:function(e){this._levelBlendFactor=P.clamp(e,0,1)}},screenSpaceError:{get:function(){return this._screenSpaceError},set:function(e){this._screenSpaceError=e}},stepSize:{get:function(){return this._stepSizeMultiplier},set:function(e){this._stepSizeMultiplier=e}},minBounds:{get:function(){return this._minBounds},set:function(e){this._minBounds=m.clone(e,this._minBounds)}},maxBounds:{get:function(){return this._maxBounds},set:function(e){this._maxBounds=m.clone(e,this._maxBounds)}},minClippingBounds:{get:function(){return this._minClippingBounds},set:function(e){this._minClippingBounds=m.clone(e,this._minClippingBounds)}},maxClippingBounds:{get:function(){return this._maxClippingBounds},set:function(e){this._maxClippingBounds=m.clone(e,this._maxClippingBounds)}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){gs.setOwner(e,this,"_clippingPlanes")}},customShader:{get:function(){return this._customShader},set:function(e){if(this._customShader!==e){let t=this._uniformMap,i=this._customShader.uniformMap;for(let o in i)i.hasOwnProperty(o)&&delete t[o];l(e)?this._customShader=e:this._customShader=ph.DefaultCustomShader,this._shaderDirty=!0}}},customShaderCompilationEvent:{get:function(){return this._customShaderCompilationEvent}}});var Ypt=new m,qpt=new re,Xpt=new re,Kpt=new m,Jpt=new m,Zpt=new Z,Qpt=new Z,$pt=new B,e_t=new B,t_t=new B,n_t=B.fromRotationTranslation(Z.fromUniformScale(.5,new Z),new m(.5,.5,.5),new B),i_t=B.fromRotationTranslation(Z.fromUniformScale(2,new Z),new m(-1,-1,-1),new B);ph.prototype.update=function(e){let t=this._provider;if(this._customShader.update(e),l(t._ready)&&!t._ready||!l(this._shape))return;let n=e.context;if(!this._ready){o_t(this,t,n),this._completeLoad(this,e);return}let i=p0e(this,t),o=this._shape;if(i&&(this._shapeVisible=_0e(this,o,t),a_t(this,o)&&(this._shaderDirty=!0)),!this._shapeVisible)return;let r=c_t(t.timeIntervalCollection,this._clock),s=this._traversal,a=s._sampleCount;if(s.update(e,r,i,this._disableUpdate),a!==s._sampleCount&&(this._shaderDirty=!0),!s.isRenderable(s.rootNode)||(this._debugDraw&&__t(this,e),this._disableRender))return;this._useLogDepth!==e.useLogDepth&&(this._useLogDepth=e.useLogDepth,this._shaderDirty=!0),l_t(this,e)&&(this._shaderDirty=!0);let u=s.leafNodeTexture,f=this._uniforms;l(u)&&(f.octreeLeafNodeTexture=s.leafNodeTexture,f.octreeLeafNodeTexelSizeUv=H.clone(s.leafNodeTexelSizeUv,f.octreeLeafNodeTexelSizeUv),f.octreeLeafNodeTilesPerRow=s.leafNodeTilesPerRow),this._shaderDirty&&(nz(this,n),this._shaderDirty=!1);let d=n.uniformState.viewProjection,p=o.orientedBoundingBox,g=d_t(p,d,Xpt);if(g.x===1||g.y===1||g.z===-1||g.w===-1)return;f.ndcSpaceAxisAlignedBoundingBox=re.clone(g,f.ndcSpaceAxisAlignedBoundingBox);let A=n.uniformState.inverseView;f.transformPositionViewToUv=B.multiplyTransformation(this._transformPositionWorldToUv,A,f.transformPositionViewToUv);let x=n.uniformState.view;f.transformPositionUvToView=B.multiplyTransformation(x,this._transformPositionUvToWorld,f.transformPositionUvToView);let C=n.uniformState.inverseViewRotation;f.transformDirectionViewToLocal=Z.multiply(this._transformDirectionWorldToLocal,C,f.transformDirectionViewToLocal),f.transformNormalLocalToWorld=Z.clone(this._transformNormalLocalToWorld,f.transformNormalLocalToWorld);let T=e.camera.positionWC;f.cameraPositionUv=B.multiplyByPoint(this._transformPositionWorldToUv,T,f.cameraPositionUv),f.stepSize=this._stepSizeUv*this._stepSizeMultiplier;let E=e.passes.pick?this._drawCommandPick:this._drawCommand;E.boundingVolume=o.boundingSphere,e.commandList.push(E)};function o_t(e,t,n){let i=e._uniforms;e._pickId=n.createPickId({primitive:e}),i.pickColor=z.clone(e._pickId.color,i.pickColor);let{shaderDefines:o,shaderUniforms:r}=e._shape;e._shapeDefinesOld=Ye(o,!0);let s=e._uniformMap;for(let a in r)if(r.hasOwnProperty(a)){let c=`u_${a}`;s[c]=function(){return r[a]}}i.dimensions=m.clone(t.dimensions,i.dimensions),e._paddingBefore=m.clone(y(t.paddingBefore,m.ZERO),e._paddingBefore),i.paddingBefore=m.clone(e._paddingBefore,i.paddingBefore),e._paddingAfter=m.clone(y(t.paddingAfter,m.ZERO),e._paddingBefore),i.paddingAfter=m.clone(e._paddingAfter,i.paddingAfter),e._traversal=r_t(e,t,n),s_t(e._traversal,i)}function p0e(e,t){let n=y(t.shapeTransform,B.IDENTITY),i=y(t.globalTransform,B.IDENTITY);return B.multiplyTransformation(i,e._modelMatrix,e._compoundModelMatrix),B.multiplyTransformation(e._compoundModelMatrix,n,e._compoundModelMatrix),SI(e,"_compoundModelMatrix","_compoundModelMatrixOld")+SI(e,"_minBounds","_minBoundsOld")+SI(e,"_maxBounds","_maxBoundsOld")+SI(e,"_minClippingBounds","_minClippingBoundsOld")+SI(e,"_maxClippingBounds","_maxClippingBoundsOld")>0}function SI(e,t,n){let i=e[t],o=e[n],r=!i.equals(o);return r&&i.clone(o),r?1:0}function _0e(e,t,n){if(!t.update(e._compoundModelMatrix,e.minBounds,e.maxBounds,e.minClippingBounds,e.maxClippingBounds))return!1;let o=t.shapeTransform,r=B.inverse(o,$pt),s=B.getRotation(o,Zpt),a=B.getScale(o,Kpt),c=m.maximumComponent(a),u=m.divideByScalar(a,c,Jpt),f=Z.multiplyByScale(s,u,Qpt),d=n.dimensions;return e._stepSizeUv=t.computeApproximateStepSize(d),e._transformPositionWorldToUv=B.multiplyTransformation(n_t,r,e._transformPositionWorldToUv),e._transformPositionUvToWorld=B.multiplyTransformation(o,i_t,e._transformPositionUvToWorld),e._transformDirectionWorldToLocal=B.getMatrix3(r,e._transformDirectionWorldToLocal),e._transformNormalLocalToWorld=Z.inverseTranspose(f,e._transformNormalLocalToWorld),!0}function r_t(e,t,n){let i=m.clone(t.dimensions,Ypt);m.add(i,e._paddingBefore,i),m.add(i,e._paddingAfter,i);let o=t.maximumTileCount,r=l(o)?TI.getApproximateTextureMemoryByteLength(o,i,t.types,t.componentTypes):void 0,s=y(t.keyframeCount,1);return new TI(e,n,i,t.types,t.componentTypes,s,r)}function s_t(e,t){t.octreeInternalNodeTexture=e.internalNodeTexture,t.octreeInternalNodeTexelSizeUv=H.clone(e.internalNodeTexelSizeUv,t.octreeInternalNodeTexelSizeUv),t.octreeInternalNodeTilesPerRow=e.internalNodeTilesPerRow;let n=e.megatextures,i=n[0],o=n.length;t.megatextureTextures=new Array(o);for(let r=0;r<o;r++)t.megatextureTextures[r]=n[r].texture;t.megatextureSliceDimensions=H.clone(i.sliceCountPerRegion,t.megatextureSliceDimensions),t.megatextureTileDimensions=H.clone(i.regionCountPerMegatexture,t.megatextureTileDimensions),t.megatextureVoxelSizeUv=H.clone(i.voxelSizeUv,t.megatextureVoxelSizeUv),t.megatextureSliceSizeUv=H.clone(i.sliceSizeUv,t.megatextureSliceSizeUv),t.megatextureTileSizeUv=H.clone(i.regionSizeUv,t.megatextureTileSizeUv)}function a_t(e,t){let n=t.shaderDefines,i=Object.keys(n).some(o=>n[o]!==e._shapeDefinesOld[o]);return i&&(e._shapeDefinesOld=Ye(n,!0)),i}function c_t(e,t){if(!l(e)||!l(t))return 0;let n=t.currentTime,i,o=e.indexOf(n);o>=0?i=e.get(o):(o=~o,o===e.length?(o=e.length-1,i=e.get(o),n=i.stop):(i=e.get(o),n=i.start));let r=ee.secondsDifference(i.stop,i.start),a=ee.secondsDifference(n,i.start)/r;return o+a}function l_t(e,t){let n=e.clippingPlanes;if(!l(n))return!1;n.update(t);let{clippingPlanesState:i,enabled:o}=n;if(o){let r=e._uniforms;r.clippingPlanesTexture=n.texture,r.clippingPlanesMatrix=B.transpose(B.multiplyTransformation(B.inverse(n.modelMatrix,r.clippingPlanesMatrix),e._transformPositionUvToWorld,r.clippingPlanesMatrix),r.clippingPlanesMatrix)}return e._clippingPlanesState===i&&e._clippingPlanesEnabled===o?!1:(e._clippingPlanesState=i,e._clippingPlanesEnabled=o,!0)}ph.prototype.isDestroyed=function(){return!1};ph.prototype.destroy=function(){let e=this._drawCommand;l(e)&&(e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy());let t=this._drawCommandPick;return l(t)&&(t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()),this._pickId=this._pickId&&this._pickId.destroy(),this._traversal=this._traversal&&this._traversal.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),ue(this)};var h0e=new Array(new re(-1,-1,-1,1),new re(1,-1,-1,1),new re(-1,1,-1,1),new re(1,1,-1,1),new re(-1,-1,1,1),new re(1,-1,1,1),new re(-1,1,1,1),new re(1,1,1,1)),u_t=new Array(1,2,4,0,3,5,0,3,6,1,2,7,0,5,6,1,4,7,2,4,7,3,5,6),f_t=new Array(new re,new re,new re,new re,new re,new re,new re,new re);function d_t(e,t,n){let i=B.fromRotationTranslation(e.halfAxes,e.center,e_t),o=B.multiply(t,i,t_t),r=+Number.MAX_VALUE,s=-Number.MAX_VALUE,a=+Number.MAX_VALUE,c=-Number.MAX_VALUE,u,f=f_t,d=h0e.length;for(u=0;u<d;u++)B.multiplyByVector(o,h0e[u],f[u]);for(u=0;u<d;u++){let p=f[u];if(p.z>=-p.w){let g=p.x/p.w,h=p.y/p.w;r=Math.min(r,g),s=Math.max(s,g),a=Math.min(a,h),c=Math.max(c,h)}else for(let g=0;g<3;g++){let h=u_t[u*3+g],A=f[h];if(A.z>=-A.w){let x=p.z+p.w,C=A.z+A.w,T=x/(x-C),E=re.lerp(p,A,T,qpt),S=E.x/E.w,v=E.y/E.w;r=Math.min(r,S),s=Math.max(s,S),a=Math.min(a,v),c=Math.max(c,v)}}}return r=P.clamp(r,-1,1),a=P.clamp(a,-1,1),s=P.clamp(s,-1,1),c=P.clamp(c,-1,1),n=re.fromElements(r,a,s,c,n),n}var Eq=3e7,m_t=new m(Eq,0,0),h_t=new m(0,Eq,0),p_t=new m(0,0,Eq);function __t(e,t){let n=e._traversal,i=e._debugPolylines;i.removeAll();function o(c,u,f,d){i.add({positions:[c,u],width:d,material:Gi.fromType("Color",{color:f})})}function r(c,u,f){let d=c.computeCorners();o(d[0],d[1],u,f),o(d[2],d[3],u,f),o(d[4],d[5],u,f),o(d[6],d[7],u,f),o(d[0],d[2],u,f),o(d[4],d[6],u,f),o(d[1],d[3],u,f),o(d[5],d[7],u,f),o(d[0],d[4],u,f),o(d[2],d[6],u,f),o(d[1],d[5],u,f),o(d[3],d[7],u,f)}function s(c){if(!n.isRenderable(c))return;let u=c.level,d=Math.max(1,5/Math.pow(2,u)),g=[z.RED,z.LIME,z.BLUE][u%3];if(r(c.orientedBoundingBox,g,d),l(c.children))for(let h=0;h<8;h++)s(c.children[h])}r(e._shape.orientedBoundingBox,z.WHITE,5),s(n.rootNode);let a=10;o(m.ZERO,m_t,z.RED,a),o(m.ZERO,h_t,z.LIME,a),o(m.ZERO,p_t,z.BLUE,a),i.update(t)}ph.DefaultCustomShader=new wb({fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) +{ + material.diffuse = vec3(1.0); + material.alpha = 1.0; +}`});function g0e(){this.ready=!0,this.shape=ji.BOX,this.dimensions=new m(1,1,1),this.names=["data"],this.types=[jt.SCALAR],this.componentTypes=[nn.FLOAT32],this.maximumTileCount=1}g0e.prototype.requestData=function(e){if(!((l(e)?y(e.tileLevel,0):0)>=1))return Promise.resolve([new Float32Array(1)])};ph.DefaultProvider=new g0e;var wI=ph;function bq(){fe.throwInstantiationError()}Object.defineProperties(bq.prototype,{ready:{get:fe.throwInstantiationError},readyPromise:{get:fe.throwInstantiationError},globalTransform:{get:fe.throwInstantiationError},shapeTransform:{get:fe.throwInstantiationError},shape:{get:fe.throwInstantiationError},minBounds:{get:fe.throwInstantiationError},maxBounds:{get:fe.throwInstantiationError},dimensions:{get:fe.throwInstantiationError},paddingBefore:{get:fe.throwInstantiationError},paddingAfter:{get:fe.throwInstantiationError},names:{get:fe.throwInstantiationError},types:{get:fe.throwInstantiationError},componentTypes:{get:fe.throwInstantiationError},minimumValues:{get:fe.throwInstantiationError},maximumValues:{get:fe.throwInstantiationError},maximumTileCount:{get:fe.throwInstantiationError},keyframeCount:{get:fe.throwInstantiationError},timeIntervalCollection:{get:fe.throwInstantiationError}});bq.prototype.requestData=fe.throwInstantiationError;var y0e=bq;function ox(){fe.throwInstantiationError()}Object.defineProperties(ox.prototype,{orientedBoundingBox:{get:fe.throwInstantiationError},boundingSphere:{get:fe.throwInstantiationError},boundTransform:{get:fe.throwInstantiationError},shapeTransform:{get:fe.throwInstantiationError},shaderUniforms:{get:fe.throwInstantiationError},shaderDefines:{get:fe.throwInstantiationError},shaderMaximumIntersectionsLength:{get:fe.throwInstantiationError}});ox.prototype.update=fe.throwInstantiationError;ox.prototype.computeOrientedBoundingBoxForTile=fe.throwInstantiationError;ox.prototype.computeApproximateStepSize=fe.throwInstantiationError;ox.DefaultMinBounds=fe.throwInstantiationError;ox.DefaultMaxBounds=fe.throwInstantiationError;var A0e=ox;async function Sq(e,t){let n=t.terrainProvider,i=t.mapProjection,o=i.ellipsoid,r,s=t.camera.getRectangleCameraCoordinates(e);if(t.mode===ne.SCENE3D?r=o.cartesianToCartographic(s):r=i.unproject(s),!l(n))return r;await n._readyPromise;let a=n.availability;if(!l(a)||t.mode===ne.SCENE2D)return r;let c=[le.center(e),le.southeast(e),le.southwest(e),le.northeast(e),le.northwest(e)],u=await Sq._sampleTerrainMostDetailed(n,c),f=!1,d=u.reduce(function(g,h){return l(h.height)?(f=!0,Math.max(h.height,g)):g},-Number.MAX_VALUE),p=r;return f&&(p.height+=d),p}Sq._sampleTerrainMostDetailed=Fg;var vb=Sq;var g_t=new z,y_t=new z,A_t=new z,x_t=new z,x0e=new re,vI=new Uint8Array(4);function C0e(e,t,n,i){let o=t.height===n.height?0:(e-t.height)/(n.height-t.height);return z.lerp(t.color,n.color,o,i)}function az(e,t){return{height:e,color:z.clone(t)}}function T0e(e){return e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?t.height===i[n-1].height:!0,a=r?t.height===i[n+1].height:!0;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?z.equals(t.color,i[n-1].color):!1,a=r?z.equals(t.color,i[n+1].color):!1;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=o?z.equals(t.color,i[n-1].color):!1,s=o?t.height===i[n-1].height:!0;return!r||!s}),e}function C_t(e){let t,n,i=[],o=e.length;for(t=0;t<o;t++){let r=e[t],s=r.entries,a=s.length,c=[];for(n=0;n<a;n++){let g=s[n],h=P.clamp(g.height,Tl._minimumHeight,Tl._maximumHeight),A=z.clone(g.color,g_t);A.red*=A.alpha,A.green*=A.alpha,A.blue*=A.alpha,c.push(az(h,A))}let u=!0,f=!0;for(n=0;n<a-1;n++){let g=c[n+0],h=c[n+1];u=u&&g.height<=h.height,f=f&&g.height>=h.height}f?c=c.reverse():u||ly(c,function(g,h){return P.sign(g.height-h.height)});let d=y(r.extendDownwards,!1),p=y(r.extendUpwards,!1);c.length===1&&!d&&!p&&(d=!0,p=!0),d&&c.splice(0,0,az(Tl._minimumHeight,c[0].color)),p&&c.splice(c.length,0,az(Tl._maximumHeight,c[c.length-1].color)),c=T0e(c),i.push(c)}return i}function T_t(e){let t=C_t(e),n=[],i=[],o;function r(u,f){n.push(az(u,f))}function s(u,f,d){let p=z.multiplyByScalar(d,1-f.alpha,x_t);p=z.add(p,f,p),r(u,p)}let a=t.length;for(o=0;o<a;o++){let u=t[o],f=0,d=0;i=n,n=[];let p=u.length,g=i.length;for(;f<p||d<g;){let h=f<p?u[f]:void 0,A=f>0?u[f-1]:void 0,x=f<p-1?u[f+1]:void 0,C=d<g?i[d]:void 0,T=d>0?i[d-1]:void 0,E=d<g-1?i[d+1]:void 0;if(l(h)&&l(C)&&h.height===C.height){let S=l(E)&&C.height===E.height,v=!l(T),D=!l(E),O=l(x)&&h.height===x.height,M=!l(A),L=!l(x);S?O?(s(h.height,h.color,C.color),s(h.height,x.color,E.color)):M?(r(h.height,C.color),s(h.height,h.color,E.color)):L?(s(h.height,h.color,C.color),r(h.height,E.color)):(s(h.height,h.color,C.color),s(h.height,h.color,E.color)):v?O?(r(h.height,h.color),s(h.height,x.color,C.color)):L?(r(h.height,h.color),r(h.height,C.color)):(M||r(h.height,h.color),s(h.height,h.color,C.color)):D?O?(s(h.height,h.color,C.color),r(h.height,x.color)):M?(r(h.height,C.color),r(h.height,h.color)):L?s(h.height,h.color,C.color):(s(h.height,h.color,C.color),r(h.height,h.color)):O?(s(h.height,h.color,C.color),s(h.height,x.color,C.color)):M?(r(h.height,C.color),s(h.height,h.color,C.color)):L?(s(h.height,h.color,C.color),r(h.height,C.color)):s(h.height,h.color,C.color),f+=O?2:1,d+=S?2:1}else if(l(h)&&l(C)&&l(T)&&h.height<C.height){let S=C0e(h.height,T,C,A_t);l(A)?l(x)?s(h.height,h.color,S):(s(h.height,h.color,S),r(h.height,S)):(r(h.height,S),s(h.height,h.color,S)),f++}else if(l(C)&&l(h)&&l(A)&&C.height<h.height){let S=C0e(C.height,A,h,y_t);l(T)?l(E)?s(C.height,S,C.color):(s(C.height,S,C.color),r(C.height,S)):(r(C.height,S),s(C.height,S,C.color)),d++}else l(h)&&(!l(C)||h.height<C.height)?(l(C)&&!l(T)&&!l(x)?(r(h.height,h.color),r(h.height,Tl._emptyColor),r(C.height,Tl._emptyColor)):(!l(C)&&l(T)&&!l(A)&&(r(T.height,Tl._emptyColor),r(h.height,Tl._emptyColor)),r(h.height,h.color)),f++):l(C)&&(!l(h)||C.height<h.height)&&(r(C.height,C.color),d++)}}return T0e(n)}function Tl(e){let{scene:t,layers:n}=y(e,y.EMPTY_OBJECT),{context:i}=t,o=T_t(n),r=o.length,s,a,c;if(!Tl._useFloatTexture(i)){a=Je.UNSIGNED_BYTE,c=lt.RGBA,s=new Uint8Array(r*4);for(let g=0;g<r;g++)re.packFloat(o[g].height,x0e),re.pack(x0e,s,g*4)}else{a=Je.FLOAT,c=i.webgl2?lt.RED:lt.LUMINANCE,s=new Float32Array(r);for(let g=0;g<r;g++)s[g]=o[g].height}let f=Bt.create({context:i,pixelFormat:c,pixelDatatype:a,source:{arrayBufferView:s,width:r,height:1},sampler:new dn({wrapS:Dn.CLAMP_TO_EDGE,wrapT:Dn.CLAMP_TO_EDGE,minificationFilter:ln.NEAREST,magnificationFilter:bi.NEAREST})}),d=new Uint8Array(r*4);for(let g=0;g<r;g++)o[g].color.toBytes(vI),d[g*4+0]=vI[0],d[g*4+1]=vI[1],d[g*4+2]=vI[2],d[g*4+3]=vI[3];let p=Bt.create({context:i,pixelFormat:lt.RGBA,pixelDatatype:Je.UNSIGNED_BYTE,source:{arrayBufferView:d,width:r,height:1},sampler:new dn({wrapS:Dn.CLAMP_TO_EDGE,wrapT:Dn.CLAMP_TO_EDGE,minificationFilter:ln.LINEAR,magnificationFilter:bi.LINEAR})});return Gi.fromType("ElevationBand",{heights:f,colors:p})}Tl._useFloatTexture=function(e){return e.floatingPointTexture};Tl._maximumHeight=5906376425472;Tl._minimumHeight=-5906376425472;Tl._emptyColor=new z(0,0,0,0);var E0e=Tl;function E_t(e){$("createOsmBuildings","createOsmBuildings was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use createOsmBuildingsAsync instead."),e=gt(e,{url:ca.fromAssetId(96188)});let t=new Va(e),n=e.style;if(!l(n)){let i=y(e.defaultColor,z.WHITE).toCssColorString();n=new Ty({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var b0e=E_t;async function b_t(e){let t=await Va.fromIonAssetId(96188,e);e=y(e,y.EMPTY_OBJECT);let n=e.style;if(!l(n)){let i=y(e.defaultColor,z.WHITE).toCssColorString();n=new Ty({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var S0e=b_t;function S_t(e){e=y(e,y.EMPTY_OBJECT);let t=[],n=e.geometry;(!l(n.attributes)||!l(n.primitiveType))&&(n=n.constructor.createGeometry(n));let i=n.attributes,o=B.clone(y(e.modelMatrix,B.IDENTITY)),r=y(e.length,1e4);if(l(i.normal)&&t.push(new Tt({geometry:Un.createLineSegmentsForVectors(n,"normal",r),attributes:{color:new Vt(1,0,0,1)},modelMatrix:o})),l(i.tangent)&&t.push(new Tt({geometry:Un.createLineSegmentsForVectors(n,"tangent",r),attributes:{color:new Vt(0,1,0,1)},modelMatrix:o})),l(i.bitangent)&&t.push(new Tt({geometry:Un.createLineSegmentsForVectors(n,"bitangent",r),attributes:{color:new Vt(0,0,1,1)},modelMatrix:o})),t.length>0)return new wn({asynchronous:!1,geometryInstances:t,appearance:new sn({flat:!0,translucent:!1})})}var w0e=S_t;function w_t(e){$("createWorldImagery","createWorldImagery was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use createWorldImageryAsync instead."),e=y(e,y.EMPTY_OBJECT);let t=y(e.style,ih.AERIAL),n=new Rd;return Rd._initialize(n,t,e),n}var v0e=w_t;var v_t=15;function wq(e){this.ellipsoid=y(e.ellipsoid,oe.WGS84),this.credit=void 0,this.tilingScheme=void 0,this.height=void 0,this.width=void 0,this.encoding=void 0,this.lodCount=void 0,this.hasAvailability=!1,this.tilesAvailable=void 0,this.tilesAvailabilityLoaded=void 0,this.levelZeroMaximumGeometricError=void 0,this.terrainDataStructure=void 0}wq.prototype.build=function(e){e._credit=this.credit,e._tilingScheme=this.tilingScheme,e._height=this.height,e._width=this.width,e._encoding=this.encoding,e._lodCount=this.lodCount,e._hasAvailability=this.hasAvailability,e._tilesAvailable=this.tilesAvailable,e._tilesAvailabilityLoaded=this.tilesAvailabilityLoaded,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._terrainDataStructure=this.terrainDataStructure,e._ready=!0};function D_t(e,t){let n=t.copyrightText;l(n)&&(e.credit=new It(n));let i=t.spatialReference,o=y(i.latestWkid,i.wkid),r=t.extent,s={ellipsoid:e.ellipsoid};if(o===4326)s.rectangle=le.fromDegrees(r.xmin,r.ymin,r.xmax,r.ymax),e.tilingScheme=new Wi(s);else if(o===3857){let u=Math.PI*e.ellipsoid.maximumRadius;t.extent.xmax>u&&(t.extent.xmax=u),t.extent.ymax>u&&(t.extent.ymax=u),t.extent.xmin<-u&&(t.extent.xmin=-u),t.extent.ymin<-u&&(t.extent.ymin=-u),s.rectangleSouthwestInMeters=new H(r.xmin,r.ymin),s.rectangleNortheastInMeters=new H(r.xmax,r.ymax),e.tilingScheme=new Fr(s)}else throw new de("Invalid spatial reference");let a=t.tileInfo;if(!l(a))throw new de("tileInfo is required");e.width=a.rows+1,e.height=a.cols+1,e.encoding=a.format==="LERC"?Id.LERC:Id.NONE,e.lodCount=a.lods.length-1,(e.hasAvailability=t.capabilities.indexOf("Tilemap")!==-1)&&(e.tilesAvailable=new hh(e.tilingScheme,e.lodCount),e.tilesAvailable.addAvailableTileRange(0,0,0,e.tilingScheme.getNumberOfXTilesAtLevel(0),e.tilingScheme.getNumberOfYTilesAtLevel(0)),e.tilesAvailabilityLoaded=new hh(e.tilingScheme,e.lodCount)),e.levelZeroMaximumGeometricError=Xr.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.width,e.tilingScheme.getNumberOfXTilesAtLevel(0)),t.bandCount>1&&console.log("ArcGISTiledElevationTerrainProvider: Terrain data has more than 1 band. Using the first one."),l(t.minValues)&&l(t.maxValues)?e.terrainDataStructure={elementMultiplier:1,lowestEncodedHeight:t.minValues[0],highestEncodedHeight:t.maxValues[0]}:e.terrainDataStructure={elementMultiplier:1}}async function D0e(e,t,n){try{let i=await t.fetchJson();D_t(e,i)}catch(i){let o=`An error occurred while accessing ${t}.`;throw Ti.reportError(void 0,n,l(n)?n._errorEvent:void 0,o),i}}function vy(e){e=y(e,y.EMPTY_OBJECT),this._resource=void 0,this._credit=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._maxLevel=void 0,this._terrainDataStructure=void 0,this._width=void 0,this._height=void 0,this._encoding=void 0,this._lodCount=void 0;let t=e.token;if(this._hasAvailability=!1,this._tilesAvailable=void 0,this._tilesAvailabilityLoaded=void 0,this._availableCache={},this._ready=!1,this._errorEvent=new ge,l(e.url)){$("ArcGISTiledElevationTerrainProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead.");let n=this,i=new wq(e);this._readyPromise=Promise.resolve(e.url).then(async function(o){let r=we.createIfNeeded(o);r.appendForwardSlash(),l(t)&&(r=r.getDerivedResource({queryParameters:{token:t}})),n._resource=r;let s=r.getDerivedResource({queryParameters:{f:"pjson"}});return await D0e(i,s,n),i.build(n),!0})}}Object.defineProperties(vy.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("ArcGISTiledElevationTerrainProvider.ready","ArcGISTiledElevationTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("ArcGISTiledElevationTerrainProvider.readyPromise","ArcGISTiledElevationTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGISTiledElevationTerrainProvider.fromUrl instead."),this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){return this._tilesAvailable}}});vy.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=we.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&(n=n.getDerivedResource({queryParameters:{token:t.token}}));let i=n.getDerivedResource({queryParameters:{f:"pjson"}}),o=new wq(t);await D0e(o,i);let r=new vy(t);return o.build(r),r._resource=n,r};vy.prototype.requestTileGeometry=function(e,t,n,i){let o=this._resource.getDerivedResource({url:`tile/${n}/${t}/${e}`,request:i}),r=this._hasAvailability,s=Promise.resolve(!0),a;if(r&&!l(vq(this,n+1,e*2,t*2))){let d=I0e(this,n+1,e*2,t*2);s=d.promise,a=d.request}let c=o.fetchArrayBuffer();if(!l(c)||!l(s))return;let u=this,f=this._tilesAvailable;return Promise.all([c,s]).then(function(d){return new qa({buffer:d[0],width:u._width,height:u._height,childTileMask:r?f.computeChildMaskForTile(n,e,t):v_t,structure:u._terrainDataStructure,encoding:u._encoding})}).catch(function(d){return l(a)&&a.state===ti.CANCELLED?(i.cancel(),i.deferred.promise.finally(function(){return i.state=ti.CANCELLED,Promise.reject(d)})):Promise.reject(d)})};function vq(e,t,n,i){if(!e._hasAvailability)return;let o=e._tilesAvailabilityLoaded,r=e._tilesAvailable;if(t>e._lodCount)return!1;if(r.isTileAvailable(t,n,i))return!0;if(o.isTileAvailable(t,n,i))return!1}vy.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};vy.prototype.getTileDataAvailable=function(e,t,n){if(!this._hasAvailability)return;let i=vq(this,n,e,t);if(l(i))return i;I0e(this,n,e,t)};vy.prototype.loadTileDataAvailability=function(e,t,n){};function I_t(e,t,n,i){let o=t-1,r=n-1,s=i[e.y*t+e.x],a=[],c={startX:e.x,startY:e.y,endX:0,endY:0},u=new H(e.x+1,e.y+1),f=!1,d=!1;for(;!(f&&d);){let p=u.x,g=d?u.y+1:u.y;if(!f){for(let h=e.y;h<g;++h)if(i[h*t+u.x]!==s){f=!0;break}f?(a.push(new H(u.x,e.y)),--u.x,--p,c.endX=u.x):u.x===o?(c.endX=u.x,f=!0):++u.x}if(!d){let h=u.y*t;for(let A=e.x;A<=p;++A)if(i[h+A]!==s){d=!0;break}d?(a.push(new H(e.x,u.y)),--u.y,c.endY=u.y):u.y===r?(c.endY=u.y,d=!0):++u.y}}return{endingIndices:a,range:c,value:s}}function P_t(e,t,n,i,o){let r=[];if(o.every(function(c){return c===o[0]}))return o[0]===1&&r.push({startX:e,startY:t,endX:e+n-1,endY:t+i-1}),r;let a=[new H(0,0)];for(;a.length>0;){let c=a.pop(),u=I_t(c,n,i,o);if(u.value===1){let d=u.range;d.startX+=e,d.endX+=e,d.startY+=t,d.endY+=t,r.push(d)}let f=u.endingIndices;f.length>0&&(a=a.concat(f))}return r}function I0e(e,t,n,i){if(!e._hasAvailability)return{};let o=Math.floor(n/128)*128,r=Math.floor(i/128)*128,s=Math.min(1<<t,128),a=`tilemap/${t}/${r}/${o}/${s}/${s}`,c=e._availableCache;if(l(c[a]))return c[a];let u=new Zo({throttle:!1,throttleByServer:!0,type:es.TERRAIN}),d=e._resource.getDerivedResource({url:a,request:u}).fetchJson();return l(d)?(d=d.then(function(p){let g=P_t(o,r,s,s,p.data);e._tilesAvailabilityLoaded.addAvailableTileRange(t,o,r,o+s,r+s);let h=e._tilesAvailable;for(let A=0;A<g.length;++A){let x=g[A];h.addAvailableTileRange(t,x.startX,x.startY,x.endX,x.endY)}return vq(e,t,n,i)}),c[a]={promise:d,request:u},d=d.finally(function(p){return delete c[a],p}),{promise:d,request:u}):{}}var P0e=vy;var O0e="https://dev.virtualearth.net/REST/v1/Locations";function Dq(e){e=y(e,y.EMPTY_OBJECT);let t=e.key;this._key=t;let n={key:t};l(e.culture)&&(n.culture=e.culture),this._resource=new we({url:O0e,queryParameters:n}),this._credit=new It('<img src="http://dev.virtualearth.net/Branding/logo_powered_by.png"/>',!1)}Object.defineProperties(Dq.prototype,{url:{get:function(){return O0e}},key:{get:function(){return this._key}},credit:{get:function(){return this._credit}}});Dq.prototype.geocode=async function(e){return this._resource.getDerivedResource({queryParameters:{query:e}}).fetchJsonp("jsonp").then(function(n){return n.resourceSets.length===0?[]:n.resourceSets[0].resources.map(function(o){let r=o.bbox,s=r[0],a=r[1],c=r[2],u=r[3];return{displayName:o.name,destination:le.fromDegrees(a,s,u,c)}})})};var M0e=Dq;function Iq(){}Object.defineProperties(Iq.prototype,{credit:{get:function(){}}});Iq.prototype.geocode=function(e){let t=e.match(/[^\s,\n]+/g);if(t.length===2||t.length===3){let n=+t[0],i=+t[1],o=t.length===3?+t[2]:300;if(isNaN(n)&&isNaN(i)){let r=/^(\d+.?\d*)([nsew])/i;for(let s=0;s<t.length;++s){let a=t[s].match(r);r.test(t[s])&&a.length===3&&(/^[ns]/i.test(a[2])?i=/^[n]/i.test(a[2])?+a[1]:-a[1]:/^[ew]/i.test(a[2])&&(n=/^[e]/i.test(a[2])?+a[1]:-a[1]))}}if(!isNaN(n)&&!isNaN(i)&&!isNaN(o)){let r={displayName:e,destination:m.fromDegrees(n,i,o)};return Promise.resolve([r])}}return Promise.resolve([])};var cz=Iq;var O_t=new re,R0e=new m,Db=new m;function M_t(e){let t=e.points,n=e.times;if(t.length<3){let i=n[0],o=1/(n[1]-i),r=t[0],s=t[1];return function(a,c){l(c)||(c=new m);let u=(a-i)*o;return m.lerp(r,s,u,c)}}return function(i,o){l(o)||(o=new m);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=O_t;a.z=s,a.y=s*s,a.x=a.y*s,a.w=1;let c,u,f,d,p;return r===0?(c=t[0],u=t[1],f=e.firstTangent,d=m.subtract(t[2],c,R0e),m.multiplyByScalar(d,.5,d),p=B.multiplyByVector(v0.hermiteCoefficientMatrix,a,a)):r===t.length-2?(c=t[r],u=t[r+1],d=e.lastTangent,f=m.subtract(u,t[r-1],R0e),m.multiplyByScalar(f,.5,f),p=B.multiplyByVector(v0.hermiteCoefficientMatrix,a,a)):(c=t[r-1],u=t[r],f=t[r+1],d=t[r+2],p=B.multiplyByVector(Dy.catmullRomCoefficientMatrix,a,a)),o=m.multiplyByScalar(c,p.x,o),m.multiplyByScalar(u,p.y,Db),m.add(o,Db,o),m.multiplyByScalar(f,p.z,Db),m.add(o,Db,o),m.multiplyByScalar(d,p.w,Db),m.add(o,Db,o)}}var R_t=new m,B_t=new m;function Dy(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.firstTangent,o=e.lastTangent;if(t.length>2&&(l(i)||(i=R_t,m.multiplyByScalar(t[1],2,i),m.subtract(i,t[2],i),m.subtract(i,t[0],i),m.multiplyByScalar(i,.5,i)),!l(o))){let r=t.length-1;o=B_t,m.multiplyByScalar(t[r-1],2,o),m.subtract(t[r],o,o),m.add(o,t[r-2],o),m.multiplyByScalar(o,.5,o)}this._times=n,this._points=t,this._firstTangent=m.clone(i),this._lastTangent=m.clone(o),this._evaluateFunction=M_t(this),this._lastTimeIndex=0}Object.defineProperties(Dy.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},firstTangent:{get:function(){return this._firstTangent}},lastTangent:{get:function(){return this._lastTangent}}});Dy.catmullRomCoefficientMatrix=new B(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0);Dy.prototype.findTimeInterval=oo.prototype.findTimeInterval;Dy.prototype.wrapTime=oo.prototype.wrapTime;Dy.prototype.clampTime=oo.prototype.clampTime;Dy.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var B0e=Dy;function Zp(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new sl(n),this._workerName="createCircleGeometry"}Zp.packedLength=sl.packedLength;Zp.pack=function(e,t,n){return sl.pack(e._ellipseGeometry,t,n)};var L_t=new sl({center:new m,semiMajorAxis:1,semiMinorAxis:1}),ec={center:new m,radius:void 0,ellipsoid:oe.clone(oe.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new Pe,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};Zp.unpack=function(e,t,n){let i=sl.unpack(e,t,L_t);return ec.center=m.clone(i._center,ec.center),ec.ellipsoid=oe.clone(i._ellipsoid,ec.ellipsoid),ec.height=i._height,ec.extrudedHeight=i._extrudedHeight,ec.granularity=i._granularity,ec.vertexFormat=Pe.clone(i._vertexFormat,ec.vertexFormat),ec.stRotation=i._stRotation,ec.shadowVolume=i._shadowVolume,l(n)?(ec.semiMajorAxis=i._semiMajorAxis,ec.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new sl(ec),n):(ec.radius=i._semiMajorAxis,new Zp(ec))};Zp.createGeometry=function(e){return sl.createGeometry(e._ellipseGeometry)};Zp.createShadowVolume=function(e,t,n){let i=e._ellipseGeometry._granularity,o=e._ellipseGeometry._ellipsoid,r=t(i,o),s=n(i,o);return new Zp({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:o,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(Zp.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var L0e=Zp;function Ib(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new nf(n),this._workerName="createCircleOutlineGeometry"}Ib.packedLength=nf.packedLength;Ib.pack=function(e,t,n){return nf.pack(e._ellipseGeometry,t,n)};var N_t=new nf({center:new m,semiMajorAxis:1,semiMinorAxis:1}),xu={center:new m,radius:void 0,ellipsoid:oe.clone(oe.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};Ib.unpack=function(e,t,n){let i=nf.unpack(e,t,N_t);return xu.center=m.clone(i._center,xu.center),xu.ellipsoid=oe.clone(i._ellipsoid,xu.ellipsoid),xu.height=i._height,xu.extrudedHeight=i._extrudedHeight,xu.granularity=i._granularity,xu.numberOfVerticalLines=i._numberOfVerticalLines,l(n)?(xu.semiMajorAxis=i._semiMajorAxis,xu.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new nf(xu),n):(xu.radius=i._semiMajorAxis,new Ib(xu))};Ib.createGeometry=function(e){return nf.createGeometry(e._ellipseGeometry)};var N0e=Ib;function Pb(e){e=y(e,y.EMPTY_OBJECT),this._callback=e.callback,this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new Wi({ellipsoid:y(e.ellipsoid,oe.WGS84)})),this._width=e.width,this._height=e.height;let t=Math.max(this._width,this._height);this._levelZeroMaximumGeometricError=Xr.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,t,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new ge;let n=e.credit;typeof n=="string"&&(n=new It(n)),this._credit=n,this._ready=!0,this._readyPromise=Promise.resolve(!0)}Object.defineProperties(Pb.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("CustomHeightmapTerrainProvider.ready","CustomHeightmapTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),!0}},readyPromise:{get:function(){return $("CustomHeightmapTerrainProvider.readyPromise","CustomHeightmapTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});Pb.prototype.requestTileGeometry=function(e,t,n,i){let o=this._callback(e,t,n);if(!l(o))return;let r=this._width,s=this._height;return Promise.resolve(o).then(function(a){let c=a;return Array.isArray(c)&&(c=new Float64Array(c)),new qa({buffer:c,width:r,height:s})})};Pb.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Pb.prototype.getTileDataAvailable=function(e,t,n){};Pb.prototype.loadTileDataAvailability=function(e,t,n){};var F0e=Pb;function U0e(e){this.proxy=e}U0e.prototype.getURL=function(e){let t=this.proxy.indexOf("?")===-1?"?":"";return this.proxy+t+encodeURIComponent(e)};var V0e=U0e;var F_t={SEARCH:0,AUTOCOMPLETE:1},rx=Object.freeze(F_t);function lz(){fe.throwInstantiationError()}Object.defineProperties(lz.prototype,{credit:{get:fe.throwInstantiationError}});lz.getCreditsFromResult=function(e){if(l(e.attributions))return e.attributions.map(It.getIonCredit)};lz.prototype.geocode=fe.throwInstantiationError;var DI=lz;function k0e(){fe.throwInstantiationError()}k0e.createGeometry=function(e){fe.throwInstantiationError()};var z0e=k0e;function sx(e){e=y(e,y.EMPTY_OBJECT),this._buffer=e.buffer,this._credits=e.credits,this._negativeAltitudeExponentBias=e.negativeAltitudeExponentBias,this._negativeElevationThreshold=e.negativeElevationThreshold;let t=y(e.childTileMask,15),n=t&3;n|=t&4?8:0,n|=t&8?4:0,this._childTileMask=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._skirtHeight=void 0,this._bufferType=this._buffer.constructor,this._mesh=void 0,this._minimumHeight=void 0,this._maximumHeight=void 0}Object.defineProperties(sx.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var W0e="createVerticesFromGoogleEarthEnterpriseBuffer",U_t=new pi(W0e),V_t=new pi(W0e,$m.maximumAsynchronousTasks),H0e=new le,Pq=new le;sx.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid;t.tileXYToNativeRectangle(n,i,o,H0e),t.tileXYToRectangle(n,i,o,Pq);let u=c.cartographicToCartesian(le.center(Pq)),d=40075.16/(1<<o);this._skirtHeight=Math.min(d*8,1e3);let g=(a?V_t:U_t).scheduleTask({buffer:this._buffer,nativeRectangle:H0e,rectangle:Pq,relativeToCenter:u,ellipsoid:c,skirtHeight:this._skirtHeight,exaggeration:r,exaggerationRelativeHeight:s,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!l(g))return;let h=this;return g.then(function(A){return h._mesh=new Pd(u,new Float32Array(A.vertices),new Uint16Array(A.indices),A.indexCountWithoutSkirts,A.vertexCountWithoutSkirts,A.minimumHeight,A.maximumHeight,ae.clone(A.boundingSphere3D),m.clone(A.occludeePointInScaledSpace),A.numberOfAttributes,Bn.clone(A.orientedBoundingBox),Dc.clone(A.encoding),A.westIndicesSouthToNorth,A.southIndicesEastToWest,A.eastIndicesNorthToSouth,A.northIndicesWestToEast),h._minimumHeight=A.minimumHeight,h._maximumHeight=A.maximumHeight,h._buffer=void 0,h._mesh})};sx.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1),o=P.clamp((n-e.south)/e.height,0,1);return l(this._mesh)?W_t(this,i,o):q_t(this,i,o,e)};var k_t=new pi("upsampleQuantizedTerrainMesh",$m.maximumAsynchronousTasks);sx.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,u=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=k_t.scheduleTask({vertices:a.vertices,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:u,childRectangle:d,ellipsoid:f});if(!l(p))return;let g=this;return p.then(function(h){let A=new Uint16Array(h.vertices),x=Ve.createTypedArray(A.length/3,h.indices),C=g._skirtHeight;return new gb({quantizedVertices:A,indices:x,minimumHeight:h.minimumHeight,maximumHeight:h.maximumHeight,boundingSphere:ae.clone(h.boundingSphere),orientedBoundingBox:Bn.clone(h.orientedBoundingBox),horizonOcclusionPoint:m.clone(h.horizonOcclusionPoint),westIndices:h.westIndices,southIndices:h.southIndices,eastIndices:h.eastIndices,northIndices:h.northIndices,westSkirtHeight:C,southSkirtHeight:C,eastSkirtHeight:C,northSkirtHeight:C,childTileMask:0,createdByUpsampling:!0,credits:g._credits})})};sx.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};sx.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var z_t=new H,H_t=new H,G_t=new H,j0e=new m;function W_t(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,u,z_t),g=r.decodeTextureCoordinates(o,f,H_t),h=r.decodeTextureCoordinates(o,d,G_t),A=by.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,h.x,h.y,j0e);if(A.x>=-1e-15&&A.y>=-1e-15&&A.z>=-1e-15){let x=r.decodeHeight(o,u),C=r.decodeHeight(o,f),T=r.decodeHeight(o,d);return A.x*x+A.y*C+A.z*T}}}var j_t=Uint16Array.BYTES_PER_ELEMENT,G0e=Uint32Array.BYTES_PER_ELEMENT,Oq=Int32Array.BYTES_PER_ELEMENT,Y_t=Float32Array.BYTES_PER_ELEMENT,Mq=Float64Array.BYTES_PER_ELEMENT;function q_t(e,t,n,i){let o=e._buffer,r=0,s=0,a=0;n>.5?(t>.5?(r=2,s=.5):r=3,a=.5):t>.5&&(r=1,s=.5);let c=new DataView(o),u=0;for(let v=0;v<r;++v)u+=c.getUint32(u,!0),u+=G0e;u+=G0e,u+=2*Mq;let f=P.toRadians(c.getFloat64(u,!0)*180);u+=Mq;let d=P.toRadians(c.getFloat64(u,!0)*180);u+=Mq;let p=i.width/f/2,g=i.height/d/2,h=c.getInt32(u,!0);u+=Oq;let A=c.getInt32(u,!0)*3;u+=Oq,u+=Oq;let x=new Array(h),C=new Array(h),T=new Array(h),E;for(E=0;E<h;++E)x[E]=s+c.getUint8(u++)*p,C[E]=a+c.getUint8(u++)*g,T[E]=c.getFloat32(u,!0)*6371010,u+=Y_t;let S=new Array(A);for(E=0;E<A;++E)S[E]=c.getUint16(u,!0),u+=j_t;for(E=0;E<A;E+=3){let v=S[E],D=S[E+1],O=S[E+2],M=x[v],L=x[D],N=x[O],_=C[v],b=C[D],w=C[O],I=by.computeBarycentricCoordinates(t,n,M,_,L,b,N,w,j0e);if(I.x>=-1e-15&&I.y>=-1e-15&&I.z>=-1e-15)return I.x*T[v]+I.y*T[D]+I.z*T[O]}}var II=sx;var Tf={UNKNOWN:0,NONE:1,SELF:2,PARENT:3},uz=new ee;function fz(){this._terrainCache={},this._lastTidy=ee.now()}fz.prototype.add=function(e,t){this._terrainCache[e]={buffer:t,timestamp:ee.now()}};fz.prototype.get=function(e){let n=this._terrainCache[e];if(l(n))return delete this._terrainCache[e],n.buffer};fz.prototype.tidy=function(){if(ee.now(uz),ee.secondsDifference(uz,this._lastTidy)>10){let e=this._terrainCache,t=Object.keys(e),n=t.length;for(let i=0;i<n;++i){let o=t[i],r=e[o];ee.secondsDifference(uz,r.timestamp)>10&&delete e[o]}ee.clone(uz,this._lastTidy)}};function Iy(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=new Wi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new le(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;if(typeof t=="string"&&(t=new It(t)),this._credit=t,this._levelZeroMaximumGeometricError=40075.16,this._terrainCache=new fz,this._terrainPromises={},this._terrainRequests={},this._errorEvent=new ge,this._ready=!1,l(e.url)){$("GoogleEarthEnterpriseTerrainProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseTerrainProvider.fromMetadata instead.");let n=we.createIfNeeded(e.url),i=this,o;this._readyPromise=mh.fromUrl(n).then(r=>{if(!r.terrainPresent){let s=new de(`The server ${r.url} doesn't have terrain`);return Promise.reject(s)}return Ti.reportSuccess(o),i._metadata=r,i._ready=!0,!0}).catch(r=>{throw o=Ti.reportError(o,i,i._errorEvent,r.message,void 0,void 0,void 0,r),r})}else if(l(e.metadata)){$("GoogleEarthEnterpriseTerrainProvider options.metadata","options.metadata was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use GoogleEarthEnterpriseTerrainProvider.fromMetadata instead.");let n=e.metadata;this._metadata=n;let i=this;this._readyPromise=Promise.resolve(this._metadata._readyPromise).then(()=>{if(!n.terrainPresent)throw new de(`The server ${n.url} doesn't have terrain`);i._ready=!0})}}Object.defineProperties(Iy.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tilingScheme:{get:function(){return this._tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return $("GoogleEarthEnterpriseTerrainProvider.ready","GoogleEarthEnterpriseTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._ready}},readyPromise:{get:function(){return $("GoogleEarthEnterpriseTerrainProvider.readyPromise","GoogleEarthEnterpriseTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107."),this._readyPromise}},credit:{get:function(){return this._credit}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});Iy.fromMetadata=function(e,t){if(!e.terrainPresent)throw new de(`The server ${e.url} doesn't have terrain`);let n=new Iy(t);return n._metadata=e,n._readyPromise=Promise.resolve(!0),n._ready=!0,n};var X_t=new pi("decodeGoogleEarthEnterprisePacket");function Y0e(e,t,n){let i=t.getChildBitmask();if(t.terrainState===Tf.PARENT){i=0;for(let o=0;o<4;++o){let r=n.getTileInformationFromQuadKey(e+o.toString());l(r)&&r.hasTerrain()&&(i|=1<<o)}}return i}Iy.prototype.requestTileGeometry=function(e,t,n,i){let o=mh.tileXYToQuadKey(e,t,n),r=this._terrainCache,s=this._metadata,a=s.getTileInformationFromQuadKey(o);if(!l(a))return Promise.reject(new de("Terrain tile doesn't exist"));let c=a.terrainState;l(c)||(c=a.terrainState=Tf.UNKNOWN);let u=r.get(o);if(l(u)){let C=s.providers[a.terrainProvider];return Promise.resolve(new II({buffer:u,childTileMask:Y0e(o,a,s),credits:l(C)?[C]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold}))}if(r.tidy(),a.ancestorHasTerrain){if(c===Tf.NONE)return Promise.reject(new de("Terrain tile doesn't exist"))}else return Promise.resolve(new qa({buffer:new Uint8Array(16*16),width:16,height:16}));let f,d=o,p=-1;switch(c){case Tf.SELF:p=a.terrainVersion;break;case Tf.PARENT:d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),p=f.terrainVersion;break;case Tf.UNKNOWN:a.hasTerrain()?p=a.terrainVersion:(d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),l(f)&&f.hasTerrain()&&(p=f.terrainVersion));break}if(p<0)return Promise.reject(new de("Terrain tile doesn't exist"));let g=this._terrainPromises,h=this._terrainRequests,A,x;if(l(g[d]))A=g[d],x=h[d];else{x=i;let C=K_t(this,d,p,x).fetchArrayBuffer();if(!l(C))return;A=C.then(function(T){return l(T)?X_t.scheduleTask({buffer:T,type:"Terrain",key:s.key},[T]).then(function(E){let S=s.getTileInformationFromQuadKey(d);S.terrainState=Tf.SELF,r.add(d,E[0]);let v=S.terrainProvider,D=E.length-1;for(let O=0;O<D;++O){let M=d+O.toString(),L=s.getTileInformationFromQuadKey(M);l(L)&&(r.add(M,E[O+1]),L.terrainState=Tf.PARENT,L.terrainProvider===0&&(L.terrainProvider=v))}}):Promise.reject(new de("Failed to load terrain."))}),g[d]=A,h[d]=x,A=A.finally(function(){delete g[d],delete h[d]})}return A.then(function(){let C=r.get(o);if(l(C)){let T=s.providers[a.terrainProvider];return new II({buffer:C,childTileMask:Y0e(o,a,s),credits:l(T)?[T]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold})}return Promise.reject(new de("Failed to load terrain."))}).catch(function(C){return x.state===ti.CANCELLED?(i.state=x.state,Promise.reject(C)):(a.terrainState=Tf.NONE,Promise.reject(C))})};Iy.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Iy.prototype.getTileDataAvailable=function(e,t,n){let i=this._metadata,o=mh.tileXYToQuadKey(e,t,n),r=i.getTileInformation(e,t,n);if(r===null)return!1;if(l(r)){if(!r.ancestorHasTerrain)return!0;let s=r.terrainState;if(s===Tf.NONE)return!1;if((!l(s)||s===Tf.UNKNOWN)&&(r.terrainState=Tf.UNKNOWN,!r.hasTerrain())){o=o.substring(0,o.length-1);let a=i.getTileInformationFromQuadKey(o);if(!l(a)||!a.hasTerrain())return!1}return!0}if(i.isValid(o)){let s=new Zo({throttle:!1,throttleByServer:!0,type:es.TERRAIN});i.populateSubtree(e,t,n,s)}return!1};Iy.prototype.loadTileDataAvailability=function(e,t,n){};function K_t(e,t,n,i){return n=l(n)&&n>0?n:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1c-0${t}-t.${n.toString()}`,request:i})}var q0e=Iy;var PI={};PI.type=void 0;PI.getRequiredDataPoints=fe.throwInstantiationError;PI.interpolateOrderZero=fe.throwInstantiationError;PI.interpolate=fe.throwInstantiationError;var X0e=PI;function Rq(e){this._url=we.createIfNeeded(e),this._url.appendForwardSlash()}Object.defineProperties(Rq.prototype,{url:{get:function(){return this._url}},credit:{get:function(){}}});Rq.prototype.geocode=async function(e,t){return this._url.getDerivedResource({url:t===rx.AUTOCOMPLETE?"autocomplete":"search",queryParameters:{text:e}}).fetchJson().then(function(i){return i.features.map(function(o){let r,s=o.bbox;if(l(s))r=le.fromDegrees(s[0],s[1],s[2],s[3]);else{let a=o.geometry.coordinates[0],c=o.geometry.coordinates[1];r=m.fromDegrees(a,c)}return{displayName:o.properties.label,destination:r,attributions:i.attributions}})})};var dz=Rq;function Bq(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.accessToken,mm.defaultAccessToken),n=we.createIfNeeded(y(e.server,mm.defaultServer));n.appendForwardSlash();let i=mm.getDefaultTokenCredit(t);l(i)&&e.scene.frameState.creditDisplay.addStaticCredit(It.clone(i));let o=n.getDerivedResource({url:"v1/geocode"});l(t)&&o.appendQueryParameters({access_token:t}),this._accessToken=t,this._server=n,this._pelias=new dz(o)}Object.defineProperties(Bq.prototype,{credit:{get:function(){}}});Bq.prototype.geocode=async function(e,t){return this._pelias.geocode(e,t)};var mz=Bq;function hz(){fe.throwInstantiationError()}Object.defineProperties(hz.prototype,{ellipsoid:{get:fe.throwInstantiationError}});hz.prototype.project=fe.throwInstantiationError;hz.prototype.unproject=fe.throwInstantiationError;var K0e=hz;function Ob(e){e=y(e,y.EMPTY_OBJECT);let t=e.weights,n=e.times;this._times=n,this._weights=t,this._count=t.length/n.length,this._lastTimeIndex=0}Object.defineProperties(Ob.prototype,{times:{get:function(){return this._times}},weights:{get:function(){return this._weights}}});Ob.prototype.findTimeInterval=oo.prototype.findTimeInterval;Ob.prototype.wrapTime=oo.prototype.wrapTime;Ob.prototype.clampTime=oo.prototype.clampTime;Ob.prototype.evaluate=function(e,t){let n=this.weights,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);l(t)||(t=new Array(this._count));for(let s=0;s<this._count;s++){let a=o*this._count+s;t[s]=n[a]*(1-r)+n[a+this._count]*r}return t};var J0e=Ob;function Lq(e,t,n){e=we.createIfNeeded(e),e.appendForwardSlash(),e.setQueryParameters({key:t}),this._url=e,this._params=y(n,{}),this._credit=new It('Geodata copyright <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',!1)}Object.defineProperties(Lq.prototype,{url:{get:function(){return this._url}},params:{get:function(){return this._params}},credit:{get:function(){return this._credit}}});Lq.prototype.geocode=async function(e){return this._url.getDerivedResource({url:"json",queryParameters:gt(this._params,{q:e})}).fetchJson().then(function(n){return n.results.map(function(i){let o,r=i.bounds;if(l(r))o=le.fromDegrees(r.southwest.lng,r.southwest.lat,r.northeast.lng,r.northeast.lat);else{let s=i.geometry.lat,a=i.geometry.lng;o=m.fromDegrees(s,a)}return{displayName:i.formatted,destination:o}})})};var Z0e=Lq;var J_t={packedLength:void 0,pack:fe.throwInstantiationError,unpack:fe.throwInstantiationError},Q0e=J_t;var Z_t={packedInterpolationLength:void 0,convertPackedArrayForInterpolation:fe.throwInstantiationError,unpackInterpolationResult:fe.throwInstantiationError},$0e=Z_t;function eAe(){fe.throwInstantiationError()}eAe.prototype.getURL=fe.throwInstantiationError;var tAe=eAe;function Q_t(e,t,n,i,o,r,s){let a=Mi.numberOfPoints(e,t,o),c,u=n.red,f=n.green,d=n.blue,p=n.alpha,g=i.red,h=i.green,A=i.blue,x=i.alpha;if(z.equals(n,i)){for(c=0;c<a;c++)r[s++]=z.floatToByte(u),r[s++]=z.floatToByte(f),r[s++]=z.floatToByte(d),r[s++]=z.floatToByte(p);return s}let C=(g-u)/a,T=(h-f)/a,E=(A-d)/a,S=(x-p)/a,v=s;for(c=0;c<a;c++)r[v++]=z.floatToByte(u+c*C),r[v++]=z.floatToByte(f+c*T),r[v++]=z.floatToByte(d+c*E),r[v++]=z.floatToByte(p+c*S);return v}function OI(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._colorsPerVertex=i,this._arcType=y(e.arcType,Zt.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=y(e.ellipsoid,oe.WGS84),this._workerName="createSimplePolylineGeometry";let o=1+t.length*m.packedLength;o+=l(n)?1+n.length*z.packedLength:1,this.packedLength=o+oe.packedLength+3}OI.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=m.packedLength)m.pack(o[i],t,n);let s=e._colors;for(r=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=z.packedLength)z.pack(s[i],t,n);return oe.pack(e._ellipsoid,t,n),n+=oe.packedLength,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};OI.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=m.packedLength)r[i]=m.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=z.packedLength)s[i]=z.unpack(e,t);let a=oe.unpack(e,t);t+=oe.packedLength;let c=e[t++]===1,u=e[t++],f=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=a,n._colorsPerVertex=c,n._arcType=u,n._granularity=f,n):new OI({positions:r,colors:s,ellipsoid:a,colorsPerVertex:c,arcType:u,granularity:f})};var pz=new Array(2),_z=new Array(2),$_t={positions:pz,height:_z,ellipsoid:void 0,minDistance:void 0,granularity:void 0};OI.createGeometry=function(e){let t=e._positions,n=e._colors,i=e._colorsPerVertex,o=e._arcType,r=e._granularity,s=e._ellipsoid,a=P.chordLength(r,s.maximumRadius),c=l(n)&&!i,u,f=t.length,d,p,g,h,A=0;if(o===Zt.GEODESIC||o===Zt.RHUMB){let S,v,D;o===Zt.GEODESIC?(S=P.chordLength(r,s.maximumRadius),v=Mi.numberOfPoints,D=Mi.generateArc):(S=r,v=Mi.numberOfPointsRhumbLine,D=Mi.generateRhumbArc);let O=Mi.extractHeights(t,s),M=$_t;if(o===Zt.GEODESIC?M.minDistance=a:M.granularity=r,M.ellipsoid=s,c){let L=0;for(u=0;u<f-1;u++)L+=v(t[u],t[u+1],S)+1;d=new Float64Array(L*3),g=new Uint8Array(L*4),M.positions=pz,M.height=_z;let N=0;for(u=0;u<f-1;++u){pz[0]=t[u],pz[1]=t[u+1],_z[0]=O[u],_z[1]=O[u+1];let _=D(M);if(l(n)){let b=_.length/3;h=n[u];for(let w=0;w<b;++w)g[N++]=z.floatToByte(h.red),g[N++]=z.floatToByte(h.green),g[N++]=z.floatToByte(h.blue),g[N++]=z.floatToByte(h.alpha)}d.set(_,A),A+=_.length}}else if(M.positions=t,M.height=O,d=new Float64Array(D(M)),l(n)){for(g=new Uint8Array(d.length/3*4),u=0;u<f-1;++u){let N=t[u],_=t[u+1],b=n[u],w=n[u+1];A=Q_t(N,_,b,w,a,g,A)}let L=n[f-1];g[A++]=z.floatToByte(L.red),g[A++]=z.floatToByte(L.green),g[A++]=z.floatToByte(L.blue),g[A++]=z.floatToByte(L.alpha)}}else{p=c?f*2-2:f,d=new Float64Array(p*3),g=l(n)?new Uint8Array(p*4):void 0;let S=0,v=0;for(u=0;u<f;++u){let D=t[u];if(c&&u>0&&(m.pack(D,d,S),S+=3,h=n[u-1],g[v++]=z.floatToByte(h.red),g[v++]=z.floatToByte(h.green),g[v++]=z.floatToByte(h.blue),g[v++]=z.floatToByte(h.alpha)),c&&u===f-1)break;m.pack(D,d,S),S+=3,l(n)&&(h=n[u],g[v++]=z.floatToByte(h.red),g[v++]=z.floatToByte(h.green),g[v++]=z.floatToByte(h.blue),g[v++]=z.floatToByte(h.alpha))}}let x=new _n;x.position=new ve({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),l(n)&&(x.color=new ve({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:g,normalize:!0})),p=d.length/3;let C=(p-1)*2,T=Ve.createTypedArray(p,C),E=0;for(u=0;u<p-1;++u)T[E++]=u,T[E++]=u+1;return new dt({attributes:x,indices:T,primitiveType:Le.LINES,boundingSphere:ae.fromPoints(t)})};var nAe=OI;function Mb(e){let t=y(e.radius,1),i={radii:new m(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new js(i),this._workerName="createSphereGeometry"}Mb.packedLength=js.packedLength;Mb.pack=function(e,t,n){return js.pack(e._ellipsoidGeometry,t,n)};var egt=new js,Py={radius:void 0,radii:new m,vertexFormat:new Pe,stackPartitions:void 0,slicePartitions:void 0};Mb.unpack=function(e,t,n){let i=js.unpack(e,t,egt);return Py.vertexFormat=Pe.clone(i._vertexFormat,Py.vertexFormat),Py.stackPartitions=i._stackPartitions,Py.slicePartitions=i._slicePartitions,l(n)?(m.clone(i._radii,Py.radii),n._ellipsoidGeometry=new js(Py),n):(Py.radius=i._radii.x,new Mb(Py))};Mb.createGeometry=function(e){return js.createGeometry(e._ellipsoidGeometry)};var iAe=Mb;function Oy(e){}Object.defineProperties(Oy.prototype,{ellipsoid:{get:fe.throwInstantiationError},rectangle:{get:fe.throwInstantiationError},projection:{get:fe.throwInstantiationError}});Oy.prototype.getNumberOfXTilesAtLevel=fe.throwInstantiationError;Oy.prototype.getNumberOfYTilesAtLevel=fe.throwInstantiationError;Oy.prototype.rectangleToNativeRectangle=fe.throwInstantiationError;Oy.prototype.tileXYToNativeRectangle=fe.throwInstantiationError;Oy.prototype.tileXYToRectangle=fe.throwInstantiationError;Oy.prototype.positionToTileXY=fe.throwInstantiationError;var oAe=Oy;function tgt(e,t){this.rectangle=e,this.maxLevel=t}function Nq(e){this.ellipsoid=y(e.ellipsoid,oe.WGS84),this.tilingScheme=void 0,this.heightmapWidth=void 0,this.heightmapHeight=void 0,this.levelZeroMaximumGeometricError=void 0,this.rectangles=[]}Nq.prototype.build=function(e){e._tilingScheme=this.tilingScheme,e._heightmapWidth=this.heightmapWidth,e._heightmapHeight=this.heightmapHeight,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._rectangles=this.rectangles,e._ready=!0};function ngt(e,t){let n=t.getElementsByTagName("SRS")[0].textContent;if(n==="EPSG:4326")e.tilingScheme=new Wi({ellipsoid:e.ellipsoid});else throw new de(`SRS ${n} is not supported`);let i=t.getElementsByTagName("TileFormat")[0];e.heightmapWidth=parseInt(i.getAttribute("width"),10),e.heightmapHeight=parseInt(i.getAttribute("height"),10),e.levelZeroMaximumGeometricError=Xr.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.ellipsoid,Math.min(e.heightmapWidth,e.heightmapHeight),e.tilingScheme.getNumberOfXTilesAtLevel(0));let o=t.getElementsByTagName("DataExtent");for(let r=0;r<o.length;++r){let s=o[r],a=P.toRadians(parseFloat(s.getAttribute("minx"))),c=P.toRadians(parseFloat(s.getAttribute("miny"))),u=P.toRadians(parseFloat(s.getAttribute("maxx"))),f=P.toRadians(parseFloat(s.getAttribute("maxy"))),d=parseInt(s.getAttribute("maxlevel"),10);e.rectangles.push(new tgt(new le(a,c,u,f),d))}}function igt(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i=`${i}: ${t.message}`),Ti.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new de(i)}async function rAe(e,t,n){try{let i=await t.fetchXML();ngt(e,i)}catch(i){igt(t,i,n)}}function My(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new ge,this._ready=!1,this._terrainDataStructure={heightScale:1/1e3,heightOffset:-1e3,elementsPerHeight:3,stride:4,elementMultiplier:256,isBigEndian:!0,lowestEncodedHeight:0,highestEncodedHeight:256*256*256-1};let t=e.credit;if(typeof t=="string"&&(t=new It(t)),this._credit=t,this._tilingScheme=void 0,this._rectangles=[],l(e.url)){$("VRTheWorldTerrainProvider options.url","options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. VRTheWorldTerrainProvider.fromUrl instead.");let n=this,i=new Nq(e),o=we.createIfNeeded(e.url);this._resource=o,this._readyPromise=rAe(i,o,n).then(()=>(i.build(n),!0))}}Object.defineProperties(My.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return $("VRTheWorldTerrainProvider.ready","VRTheWorldTerrainProvider.ready was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use VRTheWorldTerrainProvider.fromUrl instead."),this._ready}},readyPromise:{get:function(){return $("VRTheWorldTerrainProvider.readyPromise","VRTheWorldTerrainProvider.readyPromise was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use VRTheWorldTerrainProvider.fromUrl instead."),this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});My.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=new Nq(t),i=we.createIfNeeded(e);await rAe(n,i);let o=new My(t);return n.build(o),o._resource=i,o};My.prototype.requestTileGeometry=function(e,t,n,i){let o=this._tilingScheme.getNumberOfYTilesAtLevel(n),s=this._resource.getDerivedResource({url:`${n}/${e}/${o-t-1}.tif`,queryParameters:{cesium:!0},request:i}).fetchImage({preferImageBitmap:!0});if(!l(s))return;let a=this;return Promise.resolve(s).then(function(c){return new qa({buffer:Jd(c),width:a._heightmapWidth,height:a._heightmapHeight,childTileMask:ogt(a,e,t,n),structure:a._terrainDataStructure})})};My.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};var sAe=new le;function ogt(e,t,n,i){let o=e._tilingScheme,r=e._rectangles,s=o.tileXYToRectangle(t,n,i),a=0;for(let c=0;c<r.length&&a!==15;++c){let u=r[c];if(u.maxLevel<=i)continue;let f=u.rectangle,d=le.intersection(f,s,sAe);l(d)&&(gz(o,f,t*2,n*2,i+1)&&(a|=4),gz(o,f,t*2+1,n*2,i+1)&&(a|=8),gz(o,f,t*2,n*2+1,i+1)&&(a|=1),gz(o,f,t*2+1,n*2+1,i+1)&&(a|=2))}return a}function gz(e,t,n,i,o){let r=e.tileXYToRectangle(n,i,o);return l(le.intersection(r,t,sAe))}My.prototype.getTileDataAvailable=function(e,t,n){};My.prototype.loadTileDataAvailability=function(e,t,n){};var aAe=My;function ax(e){e=y(e,y.EMPTY_OBJECT),this._clock=void 0,this._element=void 0,this._clockSubscription=void 0,this._seekFunction=void 0,this._lastPlaybackRate=void 0,this.clock=e.clock,this.element=e.element,this.epoch=y(e.epoch,Ge.MINIMUM_VALUE),this.tolerance=y(e.tolerance,1),this._seeking=!1,this._seekFunction=void 0,this._firstTickAfterSeek=!1}Object.defineProperties(ax.prototype,{clock:{get:function(){return this._clock},set:function(e){let t=this._clock;t!==e&&(l(t)&&(this._clockSubscription(),this._clockSubscription=void 0),l(e)&&(this._clockSubscription=e.onTick.addEventListener(ax.prototype._onTick,this)),this._clock=e)}},element:{get:function(){return this._element},set:function(e){let t=this._element;t!==e&&(l(t)&&t.removeEventListener("seeked",this._seekFunction,!1),l(e)&&(this._seeking=!1,this._seekFunction=rgt(this),e.addEventListener("seeked",this._seekFunction,!1)),this._element=e,this._seeking=!1,this._firstTickAfterSeek=!1)}}});ax.prototype.destroy=function(){return this.element=void 0,this.clock=void 0,ue(this)};ax.prototype.isDestroyed=function(){return!1};ax.prototype._trySetPlaybackRate=function(e){if(this._lastPlaybackRate===e.multiplier)return;let t=this._element;try{t.playbackRate=e.multiplier}catch{t.playbackRate=0}this._lastPlaybackRate=e.multiplier};ax.prototype._onTick=function(e){let t=this._element;if(!l(t)||t.readyState<2)return;let n=t.paused,i=e.shouldAnimate;if(i===n&&(i?t.play():t.pause()),this._seeking||this._firstTickAfterSeek){this._firstTickAfterSeek=!1;return}this._trySetPlaybackRate(e);let o=e.currentTime,r=y(this.epoch,Ge.MINIMUM_VALUE),s=ee.secondsDifference(o,r),a=t.duration,c,u=t.currentTime;t.loop?(s=s%a,s<0&&(s=a-s),c=s):s>a?c=a:s<0?c=0:c=s;let f=i?y(this.tolerance,1):.001;Math.abs(c-u)>f&&(this._seeking=!0,t.currentTime=c)};function rgt(e){return function(){e._seeking=!1,e._firstTickAfterSeek=!0}}var cAe=ax;var sgt={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033},lAe=Object.freeze(sgt);function agt(e){$("createWorldTerrain","createWorldTerrain was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use createWorldTerrainAsync instead."),e=y(e,y.EMPTY_OBJECT);let t=new ex({requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1)});return t._readyPromise=ex._initializeReadyPromise({url:ca.fromAssetId(1),requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1)},t),t}var uAe=agt;var cgt=new m;function lgt(e,t,n,i){let o=Qx(e,t,n,i,cgt);return l(o)?o.x>0&&o.y>0&&o.z>0:!1}var fAe=lgt;function ugt(e){switch(e){case te.FLOAT:return"float";case te.FLOAT_VEC2:return"vec2";case te.FLOAT_VEC3:return"vec3";case te.FLOAT_VEC4:return"vec4";case te.FLOAT_MAT2:return"mat2";case te.FLOAT_MAT3:return"mat3";case te.FLOAT_MAT4:return"mat4";case te.SAMPLER_2D:return"sampler2D";case te.BOOL:return"bool"}}var dAe=ugt;function fgt(e,t,n){return function(){n.apply(e,arguments),t.apply(e,arguments)}}var yz=fgt;var mAe=`uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float z_window = czm_unpackDepth(texture(u_depthTexture, v_textureCoordinates)); + z_window = czm_reverseLogDepth(z_window); + float n_range = czm_depthRange.near; + float f_range = czm_depthRange.far; + float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range); + float scale = pow(z_ndc * 0.5 + 0.5, 8.0); + out_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0); +} +`;function dgt(e){e=y(e,y.EMPTY_OBJECT),this.typedArray=e.typedArray,this.width=e.width,this.height=e.height,this.pixelFormat=y(e.pixelFormat,lt.RGBA),this.pixelDatatype=y(e.pixelDatatype,Je.UNSIGNED_BYTE);let t=e.url;typeof t=="string"&&(t=we.createIfNeeded(t)),this.resource=t;let i=y(e.repeat,!0)?Dn.REPEAT:Dn.CLAMP_TO_EDGE;this.sampler=new dn({wrapS:i,wrapT:i,minificationFilter:e.minificationFilter,magnificationFilter:e.magnificationFilter,maximumAnisotropy:e.maximumAnisotropy})}var hAe=dgt;var mgt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",MAT2:"mat2",MAT3:"mat2",MAT4:"mat4"},pAe=Object.freeze(mgt);function hgt(e,t,n){let i;try{return i=e(t,n),i}catch(o){return Promise.reject(o)}}function pgt(e){let t;return function(n){let i=n.data,o=[],r={id:i.id,result:void 0,error:void 0};return Promise.resolve(hgt(e,i.parameters,o)).then(function(s){r.result=s}).catch(function(s){s instanceof Error?r.error={name:s.name,message:s.message,stack:s.stack}:r.error=s}).finally(function(){l(t)||(t=y(self.webkitPostMessage,self.postMessage)),i.canTransferArrayBuffer||(o.length=0);try{t(r,o)}catch(s){r.result=void 0,r.error=`postMessage failed with error: ${Np(s)} + with responseMessage: ${JSON.stringify(r)}`,t(r)}})}}var _Ae=pgt;globalThis.CESIUM_VERSION="1.105";var MI;typeof ko<"u"&&(MI=ko);(function(){/*! + * Knockout JavaScript library v3.5.1 + * (c) The Knockout.js team - http://knockoutjs.com/ + * License: MIT (http://www.opensource.org/licenses/mit-license.php) + */(function(){(function(e){var t=this||(0,eval)("this"),n=t.document,i=t.navigator,o=t.jQuery,r=t.JSON;o||typeof jQuery>"u"||(o=jQuery),function(s){s(t.ko={})}(function(s,a){function c(_,b){return _===null||typeof _ in A?_===b:!1}function u(_,b){var w;return function(){w||(w=h.a.setTimeout(function(){w=e,_()},b))}}function f(_,b){var w;return function(){clearTimeout(w),w=h.a.setTimeout(_,b)}}function d(_,b){b&&b!=="change"?b==="beforeChange"?this.pc(_):this.gb(_,b):this.qc(_)}function p(_,b){b!==null&&b.s&&b.s()}function g(_,b){var w=this.qd,I=w[S];I.ra||(this.Qb&&this.mb[b]?(w.uc(b,_,this.mb[b]),this.mb[b]=null,--this.Qb):I.I[b]||w.uc(b,_,I.J?{da:_}:w.$c(_)),_.Ja&&_.gd())}var h=typeof s<"u"?s:{};h.b=function(_,b){for(var w=_.split("."),I=h,R=0;R<w.length-1;R++)I=I[w[R]];I[w[w.length-1]]=b},h.L=function(_,b,w){_[b]=w},h.version="3.5.1",h.b("version",h.version),h.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1},h.a=function(){function _(W,K){for(var J in W)R.call(W,J)&&K(J,W[J])}function b(W,K){if(K)for(var J in K)R.call(K,J)&&(W[J]=K[J]);return W}function w(W,K){return W.__proto__=K,W}function I(W,K,J,_e){var xe=W[K].match(Y)||[];h.a.D(J.match(Y),function(se){h.a.Na(xe,se,_e)}),W[K]=xe.join(" ")}var R=Object.prototype.hasOwnProperty,F={__proto__:[]}instanceof Array,k=typeof Symbol=="function",V={},G={};V[i&&/Firefox\/2/i.test(i.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],V.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),_(V,function(W,K){if(K.length)for(var J=0,_e=K.length;J<_e;J++)G[K[J]]=W});var U={propertychange:!0},q=n&&function(){for(var W=3,K=n.createElement("div"),J=K.getElementsByTagName("i");K.innerHTML="<!--[if gt IE "+ ++W+"]><i></i><![endif]-->",J[0];);return 4<W?W:e}(),Y=/\S+/g,Q;return{Jc:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],D:function(W,K,J){for(var _e=0,xe=W.length;_e<xe;_e++)K.call(J,W[_e],_e,W)},A:typeof Array.prototype.indexOf=="function"?function(W,K){return Array.prototype.indexOf.call(W,K)}:function(W,K){for(var J=0,_e=W.length;J<_e;J++)if(W[J]===K)return J;return-1},Lb:function(W,K,J){for(var _e=0,xe=W.length;_e<xe;_e++)if(K.call(J,W[_e],_e,W))return W[_e];return e},Pa:function(W,K){var J=h.a.A(W,K);0<J?W.splice(J,1):J===0&&W.shift()},wc:function(W){var K=[];return W&&h.a.D(W,function(J){0>h.a.A(K,J)&&K.push(J)}),K},Mb:function(W,K,J){var _e=[];if(W)for(var xe=0,se=W.length;xe<se;xe++)_e.push(K.call(J,W[xe],xe));return _e},jb:function(W,K,J){var _e=[];if(W)for(var xe=0,se=W.length;xe<se;xe++)K.call(J,W[xe],xe)&&_e.push(W[xe]);return _e},Nb:function(W,K){if(K instanceof Array)W.push.apply(W,K);else for(var J=0,_e=K.length;J<_e;J++)W.push(K[J]);return W},Na:function(W,K,J){var _e=h.a.A(h.a.bc(W),K);0>_e?J&&W.push(K):J||W.splice(_e,1)},Ba:F,extend:b,setPrototypeOf:w,Ab:F?w:b,P:_,Ga:function(W,K,J){if(!W)return W;var _e={},xe;for(xe in W)R.call(W,xe)&&(_e[xe]=K.call(J,W[xe],xe,W));return _e},Tb:function(W){for(;W.firstChild;)h.removeNode(W.firstChild)},Yb:function(W){W=h.a.la(W);for(var K=(W[0]&&W[0].ownerDocument||n).createElement("div"),J=0,_e=W.length;J<_e;J++)K.appendChild(h.oa(W[J]));return K},Ca:function(W,K){for(var J=0,_e=W.length,xe=[];J<_e;J++){var se=W[J].cloneNode(!0);xe.push(K?h.oa(se):se)}return xe},va:function(W,K){if(h.a.Tb(W),K)for(var J=0,_e=K.length;J<_e;J++)W.appendChild(K[J])},Xc:function(W,K){var J=W.nodeType?[W]:W;if(0<J.length){for(var _e=J[0],xe=_e.parentNode,se=0,Ae=K.length;se<Ae;se++)xe.insertBefore(K[se],_e);for(se=0,Ae=J.length;se<Ae;se++)h.removeNode(J[se])}},Ua:function(W,K){if(W.length){for(K=K.nodeType===8&&K.parentNode||K;W.length&&W[0].parentNode!==K;)W.splice(0,1);for(;1<W.length&&W[W.length-1].parentNode!==K;)W.length--;if(1<W.length){var J=W[0],_e=W[W.length-1];for(W.length=0;J!==_e;)W.push(J),J=J.nextSibling;W.push(_e)}}return W},Zc:function(W,K){7>q?W.setAttribute("selected",K):W.selected=K},Db:function(W){return W===null||W===e?"":W.trim?W.trim():W.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Ud:function(W,K){return W=W||"",K.length>W.length?!1:W.substring(0,K.length)===K},vd:function(W,K){if(W===K)return!0;if(W.nodeType===11)return!1;if(K.contains)return K.contains(W.nodeType!==1?W.parentNode:W);if(K.compareDocumentPosition)return(K.compareDocumentPosition(W)&16)==16;for(;W&&W!=K;)W=W.parentNode;return!!W},Sb:function(W){return h.a.vd(W,W.ownerDocument.documentElement)},kd:function(W){return!!h.a.Lb(W,h.a.Sb)},R:function(W){return W&&W.tagName&&W.tagName.toLowerCase()},Ac:function(W){return h.onError?function(){try{return W.apply(this,arguments)}catch(K){throw h.onError&&h.onError(K),K}}:W},setTimeout:function(W,K){return setTimeout(h.a.Ac(W),K)},Gc:function(W){setTimeout(function(){throw h.onError&&h.onError(W),W},0)},B:function(W,K,J){var _e=h.a.Ac(J);if(J=U[K],h.options.useOnlyNativeEvents||J||!o)if(J||typeof W.addEventListener!="function")if(typeof W.attachEvent<"u"){var xe=function(Ae){_e.call(W,Ae)},se="on"+K;W.attachEvent(se,xe),h.a.K.za(W,function(){W.detachEvent(se,xe)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else W.addEventListener(K,_e,!1);else Q||(Q=typeof o(W).on=="function"?"on":"bind"),o(W)[Q](K,_e)},Fb:function(W,K){if(!W||!W.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var J;if(h.a.R(W)==="input"&&W.type&&K.toLowerCase()=="click"?(J=W.type,J=J=="checkbox"||J=="radio"):J=!1,h.options.useOnlyNativeEvents||!o||J)if(typeof n.createEvent=="function")if(typeof W.dispatchEvent=="function")J=n.createEvent(G[K]||"HTMLEvents"),J.initEvent(K,!0,!0,t,0,0,0,0,0,!1,!1,!1,!1,0,W),W.dispatchEvent(J);else throw Error("The supplied element doesn't support dispatchEvent");else if(J&&W.click)W.click();else if(typeof W.fireEvent<"u")W.fireEvent("on"+K);else throw Error("Browser doesn't support triggering events");else o(W).trigger(K)},f:function(W){return h.O(W)?W():W},bc:function(W){return h.O(W)?W.v():W},Eb:function(W,K,J){var _e;K&&(typeof W.classList=="object"?(_e=W.classList[J?"add":"remove"],h.a.D(K.match(Y),function(xe){_e.call(W.classList,xe)})):typeof W.className.baseVal=="string"?I(W.className,"baseVal",K,J):I(W,"className",K,J))},Bb:function(W,K){var J=h.a.f(K);(J===null||J===e)&&(J="");var _e=h.h.firstChild(W);!_e||_e.nodeType!=3||h.h.nextSibling(_e)?h.h.va(W,[W.ownerDocument.createTextNode(J)]):_e.data=J,h.a.Ad(W)},Yc:function(W,K){if(W.name=K,7>=q)try{var J=W.name.replace(/[&<>'"]/g,function(_e){return"&#"+_e.charCodeAt(0)+";"});W.mergeAttributes(n.createElement("<input name='"+J+"'/>"),!1)}catch{}},Ad:function(W){9<=q&&(W=W.nodeType==1?W:W.parentNode,W.style&&(W.style.zoom=W.style.zoom))},wd:function(W){if(q){var K=W.style.width;W.style.width=0,W.style.width=K}},Pd:function(W,K){W=h.a.f(W),K=h.a.f(K);for(var J=[],_e=W;_e<=K;_e++)J.push(_e);return J},la:function(W){for(var K=[],J=0,_e=W.length;J<_e;J++)K.push(W[J]);return K},Da:function(W){return k?Symbol(W):W},Zd:q===6,$d:q===7,W:q,Lc:function(W,K){for(var J=h.a.la(W.getElementsByTagName("input")).concat(h.a.la(W.getElementsByTagName("textarea"))),_e=typeof K=="string"?function(Ae){return Ae.name===K}:function(Ae){return K.test(Ae.name)},xe=[],se=J.length-1;0<=se;se--)_e(J[se])&&xe.push(J[se]);return xe},Nd:function(W){return typeof W=="string"&&(W=h.a.Db(W))?r&&r.parse?r.parse(W):new Function("return "+W)():null},hc:function(W,K,J){if(!r||!r.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return r.stringify(h.a.f(W),K,J)},Od:function(W,K,J){J=J||{};var _e=J.params||{},xe=J.includeFields||this.Jc,se=W;if(typeof W=="object"&&h.a.R(W)==="form")for(var se=W.action,Ae=xe.length-1;0<=Ae;Ae--)for(var me=h.a.Lc(W,xe[Ae]),Se=me.length-1;0<=Se;Se--)_e[me[Se].name]=me[Se].value;K=h.a.f(K);var Ie=n.createElement("form");Ie.style.display="none",Ie.action=se,Ie.method="post";for(var Ue in K)W=n.createElement("input"),W.type="hidden",W.name=Ue,W.value=h.a.hc(h.a.f(K[Ue])),Ie.appendChild(W);_(_e,function(Re,ke){var ft=n.createElement("input");ft.type="hidden",ft.name=Re,ft.value=ke,Ie.appendChild(ft)}),n.body.appendChild(Ie),J.submitter?J.submitter(Ie):Ie.submit(),setTimeout(function(){Ie.parentNode.removeChild(Ie)},0)}}}(),h.b("utils",h.a),h.b("utils.arrayForEach",h.a.D),h.b("utils.arrayFirst",h.a.Lb),h.b("utils.arrayFilter",h.a.jb),h.b("utils.arrayGetDistinctValues",h.a.wc),h.b("utils.arrayIndexOf",h.a.A),h.b("utils.arrayMap",h.a.Mb),h.b("utils.arrayPushAll",h.a.Nb),h.b("utils.arrayRemoveItem",h.a.Pa),h.b("utils.cloneNodes",h.a.Ca),h.b("utils.createSymbolOrString",h.a.Da),h.b("utils.extend",h.a.extend),h.b("utils.fieldsIncludedWithJsonPost",h.a.Jc),h.b("utils.getFormFields",h.a.Lc),h.b("utils.objectMap",h.a.Ga),h.b("utils.peekObservable",h.a.bc),h.b("utils.postJson",h.a.Od),h.b("utils.parseJson",h.a.Nd),h.b("utils.registerEventHandler",h.a.B),h.b("utils.stringifyJson",h.a.hc),h.b("utils.range",h.a.Pd),h.b("utils.toggleDomNodeCssClass",h.a.Eb),h.b("utils.triggerEvent",h.a.Fb),h.b("utils.unwrapObservable",h.a.f),h.b("utils.objectForEach",h.a.P),h.b("utils.addOrRemoveItem",h.a.Na),h.b("utils.setTextContent",h.a.Bb),h.b("unwrap",h.a.f),Function.prototype.bind||(Function.prototype.bind=function(_){var b=this;if(arguments.length===1)return function(){return b.apply(_,arguments)};var w=Array.prototype.slice.call(arguments,1);return function(){var I=w.slice(0);return I.push.apply(I,arguments),b.apply(_,I)}}),h.a.g=new function(){var _=0,b="__ko__"+new Date().getTime(),w={},I,R;return h.a.W?(I=function(F,k){var V=F[b];if(!V||V==="null"||!w[V]){if(!k)return e;V=F[b]="ko"+_++,w[V]={}}return w[V]},R=function(F){var k=F[b];return k?(delete w[k],F[b]=null,!0):!1}):(I=function(F,k){var V=F[b];return!V&&k&&(V=F[b]={}),V},R=function(F){return F[b]?(delete F[b],!0):!1}),{get:function(F,k){var V=I(F,!1);return V&&V[k]},set:function(F,k,V){(F=I(F,V!==e))&&(F[k]=V)},Ub:function(F,k,V){return F=I(F,!0),F[k]||(F[k]=V)},clear:R,Z:function(){return _+++b}}},h.b("utils.domData",h.a.g),h.b("utils.domData.clear",h.a.g.clear),h.a.K=new function(){function _(k,V){var G=h.a.g.get(k,I);return G===e&&V&&(G=[],h.a.g.set(k,I,G)),G}function b(k){var V=_(k,!1);if(V)for(var V=V.slice(0),G=0;G<V.length;G++)V[G](k);h.a.g.clear(k),h.a.K.cleanExternalData(k),F[k.nodeType]&&w(k.childNodes,!0)}function w(k,V){for(var G=[],U,q=0;q<k.length;q++)if((!V||k[q].nodeType===8)&&(b(G[G.length]=U=k[q]),k[q]!==U))for(;q--&&h.a.A(G,k[q])==-1;);}var I=h.a.g.Z(),R={1:!0,8:!0,9:!0},F={1:!0,9:!0};return{za:function(k,V){if(typeof V!="function")throw Error("Callback must be a function");_(k,!0).push(V)},yb:function(k,V){var G=_(k,!1);G&&(h.a.Pa(G,V),G.length==0&&h.a.g.set(k,I,e))},oa:function(k){return h.u.G(function(){R[k.nodeType]&&(b(k),F[k.nodeType]&&w(k.getElementsByTagName("*")))}),k},removeNode:function(k){h.oa(k),k.parentNode&&k.parentNode.removeChild(k)},cleanExternalData:function(k){o&&typeof o.cleanData=="function"&&o.cleanData([k])}}},h.oa=h.a.K.oa,h.removeNode=h.a.K.removeNode,h.b("cleanNode",h.oa),h.b("removeNode",h.removeNode),h.b("utils.domNodeDisposal",h.a.K),h.b("utils.domNodeDisposal.addDisposeCallback",h.a.K.za),h.b("utils.domNodeDisposal.removeDisposeCallback",h.a.K.yb),function(){var _=[0,"",""],b=[1,"<table>","</table>"],w=[3,"<table><tbody><tr>","</tr></tbody></table>"],I=[1,"<select multiple='multiple'>","</select>"],R={thead:b,tbody:b,tfoot:b,tr:[2,"<table><tbody>","</tbody></table>"],td:w,th:w,option:I,optgroup:I},F=8>=h.a.W;h.a.ua=function(k,V){var G;if(o){if(o.parseHTML)G=o.parseHTML(k,V)||[];else if((G=o.clean([k],V))&&G[0]){for(var U=G[0];U.parentNode&&U.parentNode.nodeType!==11;)U=U.parentNode;U.parentNode&&U.parentNode.removeChild(U)}}else{(G=V)||(G=n);var U=G.parentWindow||G.defaultView||t,q=h.a.Db(k).toLowerCase(),Y=G.createElement("div"),Q;for(Q=(q=q.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&R[q[1]]||_,q=Q[0],Q="ignored<div>"+Q[1]+k+Q[2]+"</div>",typeof U.innerShiv=="function"?Y.appendChild(U.innerShiv(Q)):(F&&G.body.appendChild(Y),Y.innerHTML=Q,F&&Y.parentNode.removeChild(Y));q--;)Y=Y.lastChild;G=h.a.la(Y.lastChild.childNodes)}return G},h.a.Md=function(k,V){var G=h.a.ua(k,V);return G.length&&G[0].parentElement||h.a.Yb(G)},h.a.fc=function(k,V){if(h.a.Tb(k),V=h.a.f(V),V!==null&&V!==e)if(typeof V!="string"&&(V=V.toString()),o)o(k).html(V);else for(var G=h.a.ua(V,k.ownerDocument),U=0;U<G.length;U++)k.appendChild(G[U])}}(),h.b("utils.parseHtmlFragment",h.a.ua),h.b("utils.setHtml",h.a.fc),h.aa=function(){function _(w,I){if(w){if(w.nodeType==8){var R=h.aa.Uc(w.nodeValue);R!=null&&I.push({ud:w,Kd:R})}else if(w.nodeType==1)for(var R=0,F=w.childNodes,k=F.length;R<k;R++)_(F[R],I)}}var b={};return{Xb:function(w){if(typeof w!="function")throw Error("You can only pass a function to ko.memoization.memoize()");var I=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return b[I]=w,"<!--[ko_memo:"+I+"]-->"},bd:function(w,I){var R=b[w];if(R===e)throw Error("Couldn't find any memo with ID "+w+". Perhaps it's already been unmemoized.");try{return R.apply(null,I||[]),!0}finally{delete b[w]}},cd:function(w,I){var R=[];_(w,R);for(var F=0,k=R.length;F<k;F++){var V=R[F].ud,G=[V];I&&h.a.Nb(G,I),h.aa.bd(R[F].Kd,G),V.nodeValue="",V.parentNode&&V.parentNode.removeChild(V)}},Uc:function(w){return(w=w.match(/^\[ko_memo\:(.*?)\]$/))?w[1]:null}}}(),h.b("memoization",h.aa),h.b("memoization.memoize",h.aa.Xb),h.b("memoization.unmemoize",h.aa.bd),h.b("memoization.parseMemoText",h.aa.Uc),h.b("memoization.unmemoizeDomNodeAndDescendants",h.aa.cd),h.na=function(){function _(){if(R){for(var V=R,G=0,U;k<R;)if(U=I[k++]){if(k>V){if(5e3<=++G){k=R,h.a.Gc(Error("'Too much recursion' after processing "+G+" task groups."));break}V=R}try{U()}catch(q){h.a.Gc(q)}}}}function b(){_(),k=R=I.length=0}var w,I=[],R=0,F=1,k=0;return t.MutationObserver?w=function(V){var G=n.createElement("div");return new MutationObserver(V).observe(G,{attributes:!0}),function(){G.classList.toggle("foo")}}(b):w=n&&"onreadystatechange"in n.createElement("script")?function(V){var G=n.createElement("script");G.onreadystatechange=function(){G.onreadystatechange=null,n.documentElement.removeChild(G),G=null,V()},n.documentElement.appendChild(G)}:function(V){setTimeout(V,0)},{scheduler:w,zb:function(V){return R||h.na.scheduler(b),I[R++]=V,F++},cancel:function(V){V=V-(F-R),V>=k&&V<R&&(I[V]=null)},resetForTesting:function(){var V=R-k;return k=R=I.length=0,V},Sd:_}}(),h.b("tasks",h.na),h.b("tasks.schedule",h.na.zb),h.b("tasks.runEarly",h.na.Sd),h.Ta={throttle:function(_,b){_.throttleEvaluation=b;var w=null;return h.$({read:_,write:function(I){clearTimeout(w),w=h.a.setTimeout(function(){_(I)},b)}})},rateLimit:function(_,b){var w,I,R;typeof b=="number"?w=b:(w=b.timeout,I=b.method),_.Hb=!1,R=typeof I=="function"?I:I=="notifyWhenChangesStop"?f:u,_.ub(function(F){return R(F,w,b)})},deferred:function(_,b){if(b!==!0)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");_.Hb||(_.Hb=!0,_.ub(function(w){var I,R=!1;return function(){if(!R){h.na.cancel(I),I=h.na.zb(w);try{R=!0,_.notifySubscribers(e,"dirty")}finally{R=!1}}}}))},notify:function(_,b){_.equalityComparer=b=="always"?null:c}};var A={undefined:1,boolean:1,number:1,string:1};h.b("extenders",h.Ta),h.ic=function(_,b,w){this.da=_,this.lc=b,this.mc=w,this.Ib=!1,this.fb=this.Jb=null,h.L(this,"dispose",this.s),h.L(this,"disposeWhenNodeIsRemoved",this.l)},h.ic.prototype.s=function(){this.Ib||(this.fb&&h.a.K.yb(this.Jb,this.fb),this.Ib=!0,this.mc(),this.da=this.lc=this.mc=this.Jb=this.fb=null)},h.ic.prototype.l=function(_){this.Jb=_,h.a.K.za(_,this.fb=this.s.bind(this))},h.T=function(){h.a.Ab(this,x),x.qb(this)};var x={qb:function(_){_.U={change:[]},_.sc=1},subscribe:function(_,b,w){var I=this;w=w||"change";var R=new h.ic(I,b?_.bind(b):_,function(){h.a.Pa(I.U[w],R),I.hb&&I.hb(w)});return I.Qa&&I.Qa(w),I.U[w]||(I.U[w]=[]),I.U[w].push(R),R},notifySubscribers:function(_,b){if(b=b||"change",b==="change"&&this.Gb(),this.Wa(b)){var w=b==="change"&&this.ed||this.U[b].slice(0);try{h.u.xc();for(var I=0,R;R=w[I];++I)R.Ib||R.lc(_)}finally{h.u.end()}}},ob:function(){return this.sc},Dd:function(_){return this.ob()!==_},Gb:function(){++this.sc},ub:function(_){var b=this,w=h.O(b),I,R,F,k,V;b.gb||(b.gb=b.notifySubscribers,b.notifySubscribers=d);var G=_(function(){b.Ja=!1,w&&k===b&&(k=b.nc?b.nc():b());var U=R||V&&b.sb(F,k);V=R=I=!1,U&&b.gb(F=k)});b.qc=function(U,q){q&&b.Ja||(V=!q),b.ed=b.U.change.slice(0),b.Ja=I=!0,k=U,G()},b.pc=function(U){I||(F=U,b.gb(U,"beforeChange"))},b.rc=function(){V=!0},b.gd=function(){b.sb(F,b.v(!0))&&(R=!0)}},Wa:function(_){return this.U[_]&&this.U[_].length},Bd:function(_){if(_)return this.U[_]&&this.U[_].length||0;var b=0;return h.a.P(this.U,function(w,I){w!=="dirty"&&(b+=I.length)}),b},sb:function(_,b){return!this.equalityComparer||!this.equalityComparer(_,b)},toString:function(){return"[object Object]"},extend:function(_){var b=this;return _&&h.a.P(_,function(w,I){var R=h.Ta[w];typeof R=="function"&&(b=R(b,I)||b)}),b}};h.L(x,"init",x.qb),h.L(x,"subscribe",x.subscribe),h.L(x,"extend",x.extend),h.L(x,"getSubscriptionsCount",x.Bd),h.a.Ba&&h.a.setPrototypeOf(x,Function.prototype),h.T.fn=x,h.Qc=function(_){return _!=null&&typeof _.subscribe=="function"&&typeof _.notifySubscribers=="function"},h.b("subscribable",h.T),h.b("isSubscribable",h.Qc),h.S=h.u=function(){function _(F){w.push(I),I=F}function b(){I=w.pop()}var w=[],I,R=0;return{xc:_,end:b,cc:function(F){if(I){if(!h.Qc(F))throw Error("Only subscribable things can act as dependencies");I.od.call(I.pd,F,F.fd||(F.fd=++R))}},G:function(F,k,V){try{return _(),F.apply(k,V||[])}finally{b()}},qa:function(){if(I)return I.o.qa()},Va:function(){if(I)return I.o.Va()},Ya:function(){if(I)return I.Ya},o:function(){if(I)return I.o}}}(),h.b("computedContext",h.S),h.b("computedContext.getDependenciesCount",h.S.qa),h.b("computedContext.getDependencies",h.S.Va),h.b("computedContext.isInitial",h.S.Ya),h.b("computedContext.registerDependency",h.S.cc),h.b("ignoreDependencies",h.Yd=h.u.G);var C=h.a.Da("_latestValue");h.ta=function(_){function b(){return 0<arguments.length?(b.sb(b[C],arguments[0])&&(b.ya(),b[C]=arguments[0],b.xa()),this):(h.u.cc(b),b[C])}return b[C]=_,h.a.Ba||h.a.extend(b,h.T.fn),h.T.fn.qb(b),h.a.Ab(b,T),h.options.deferUpdates&&h.Ta.deferred(b,!0),b};var T={equalityComparer:c,v:function(){return this[C]},xa:function(){this.notifySubscribers(this[C],"spectate"),this.notifySubscribers(this[C])},ya:function(){this.notifySubscribers(this[C],"beforeChange")}};h.a.Ba&&h.a.setPrototypeOf(T,h.T.fn);var E=h.ta.Ma="__ko_proto__";T[E]=h.ta,h.O=function(_){if((_=typeof _=="function"&&_[E])&&_!==T[E]&&_!==h.o.fn[E])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!_},h.Za=function(_){return typeof _=="function"&&(_[E]===T[E]||_[E]===h.o.fn[E]&&_.Nc)},h.b("observable",h.ta),h.b("isObservable",h.O),h.b("isWriteableObservable",h.Za),h.b("isWritableObservable",h.Za),h.b("observable.fn",T),h.L(T,"peek",T.v),h.L(T,"valueHasMutated",T.xa),h.L(T,"valueWillMutate",T.ya),h.Ha=function(_){if(_=_||[],typeof _!="object"||!("length"in _))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");return _=h.ta(_),h.a.Ab(_,h.Ha.fn),_.extend({trackArrayChanges:!0})},h.Ha.fn={remove:function(_){for(var b=this.v(),w=[],I=typeof _!="function"||h.O(_)?function(k){return k===_}:_,R=0;R<b.length;R++){var F=b[R];if(I(F)){if(w.length===0&&this.ya(),b[R]!==F)throw Error("Array modified during remove; cannot remove item");w.push(F),b.splice(R,1),R--}}return w.length&&this.xa(),w},removeAll:function(_){if(_===e){var b=this.v(),w=b.slice(0);return this.ya(),b.splice(0,b.length),this.xa(),w}return _?this.remove(function(I){return 0<=h.a.A(_,I)}):[]},destroy:function(_){var b=this.v(),w=typeof _!="function"||h.O(_)?function(F){return F===_}:_;this.ya();for(var I=b.length-1;0<=I;I--){var R=b[I];w(R)&&(R._destroy=!0)}this.xa()},destroyAll:function(_){return _===e?this.destroy(function(){return!0}):_?this.destroy(function(b){return 0<=h.a.A(_,b)}):[]},indexOf:function(_){var b=this();return h.a.A(b,_)},replace:function(_,b){var w=this.indexOf(_);0<=w&&(this.ya(),this.v()[w]=b,this.xa())},sorted:function(_){var b=this().slice(0);return _?b.sort(_):b.sort()},reversed:function(){return this().slice(0).reverse()}},h.a.Ba&&h.a.setPrototypeOf(h.Ha.fn,h.ta.fn),h.a.D("pop push reverse shift sort splice unshift".split(" "),function(_){h.Ha.fn[_]=function(){var b=this.v();this.ya(),this.zc(b,_,arguments);var w=b[_].apply(b,arguments);return this.xa(),w===b?this:w}}),h.a.D(["slice"],function(_){h.Ha.fn[_]=function(){var b=this();return b[_].apply(b,arguments)}}),h.Pc=function(_){return h.O(_)&&typeof _.remove=="function"&&typeof _.push=="function"},h.b("observableArray",h.Ha),h.b("isObservableArray",h.Pc),h.Ta.trackArrayChanges=function(_,b){function w(){function Y(){if(V){var Q=[].concat(_.v()||[]),W;_.Wa("arrayChange")&&((!R||1<V)&&(R=h.a.Pb(G,Q,_.Ob)),W=R),G=Q,R=null,V=0,W&&W.length&&_.notifySubscribers(W,"arrayChange")}}I?Y():(I=!0,k=_.subscribe(function(){++V},null,"spectate"),G=[].concat(_.v()||[]),R=null,F=_.subscribe(Y))}if(_.Ob={},b&&typeof b=="object"&&h.a.extend(_.Ob,b),_.Ob.sparse=!0,!_.zc){var I=!1,R=null,F,k,V=0,G,U=_.Qa,q=_.hb;_.Qa=function(Y){U&&U.call(_,Y),Y==="arrayChange"&&w()},_.hb=function(Y){q&&q.call(_,Y),Y!=="arrayChange"||_.Wa("arrayChange")||(F&&F.s(),k&&k.s(),k=F=null,I=!1,G=e)},_.zc=function(Y,Q,W){function K(Ie,Ue,Re){return J[J.length]={status:Ie,value:Ue,index:Re}}if(I&&!V){var J=[],_e=Y.length,xe=W.length,se=0;switch(Q){case"push":se=_e;case"unshift":for(Q=0;Q<xe;Q++)K("added",W[Q],se+Q);break;case"pop":se=_e-1;case"shift":_e&&K("deleted",Y[se],se);break;case"splice":Q=Math.min(Math.max(0,0>W[0]?_e+W[0]:W[0]),_e);for(var _e=xe===1?_e:Math.min(Q+(W[1]||0),_e),xe=Q+xe-2,se=Math.max(_e,xe),Ae=[],me=[],Se=2;Q<se;++Q,++Se)Q<_e&&me.push(K("deleted",Y[Q],Q)),Q<xe&&Ae.push(K("added",W[Se],Q));h.a.Kc(me,Ae);break;default:return}R=J}}}};var S=h.a.Da("_state");h.o=h.$=function(_,b,w){function I(){if(0<arguments.length){if(typeof R=="function")R.apply(F.nb,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return F.ra||h.u.cc(I),(F.ka||F.J&&I.Xa())&&I.ha(),F.X}if(typeof _=="object"?w=_:(w=w||{},_&&(w.read=_)),typeof w.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var R=w.write,F={X:e,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:w.read,nb:b||w.owner,l:w.disposeWhenNodeIsRemoved||w.l||null,Sa:w.disposeWhen||w.Sa,Rb:null,I:{},V:0,Ic:null};return I[S]=F,I.Nc=typeof R=="function",h.a.Ba||h.a.extend(I,h.T.fn),h.T.fn.qb(I),h.a.Ab(I,v),w.pure?(F.wb=!0,F.J=!0,h.a.extend(I,D)):w.deferEvaluation&&h.a.extend(I,O),h.options.deferUpdates&&h.Ta.deferred(I,!0),F.l&&(F.jc=!0,F.l.nodeType||(F.l=null)),F.J||w.deferEvaluation||I.ha(),F.l&&I.ja()&&h.a.K.za(F.l,F.Rb=function(){I.s()}),I};var v={equalityComparer:c,qa:function(){return this[S].V},Va:function(){var _=[];return h.a.P(this[S].I,function(b,w){_[w.Ka]=w.da}),_},Vb:function(_){if(!this[S].V)return!1;var b=this.Va();return h.a.A(b,_)!==-1?!0:!!h.a.Lb(b,function(w){return w.Vb&&w.Vb(_)})},uc:function(_,b,w){if(this[S].wb&&b===this)throw Error("A 'pure' computed must not be called recursively");this[S].I[_]=w,w.Ka=this[S].V++,w.La=b.ob()},Xa:function(){var _,b,w=this[S].I;for(_ in w)if(Object.prototype.hasOwnProperty.call(w,_)&&(b=w[_],this.Ia&&b.da.Ja||b.da.Dd(b.La)))return!0},Jd:function(){this.Ia&&!this[S].rb&&this.Ia(!1)},ja:function(){var _=this[S];return _.ka||0<_.V},Rd:function(){this.Ja?this[S].ka&&(this[S].sa=!0):this.Hc()},$c:function(_){if(_.Hb){var b=_.subscribe(this.Jd,this,"dirty"),w=_.subscribe(this.Rd,this);return{da:_,s:function(){b.s(),w.s()}}}return _.subscribe(this.Hc,this)},Hc:function(){var _=this,b=_.throttleEvaluation;b&&0<=b?(clearTimeout(this[S].Ic),this[S].Ic=h.a.setTimeout(function(){_.ha(!0)},b)):_.Ia?_.Ia(!0):_.ha(!0)},ha:function(_){var b=this[S],w=b.Sa,I=!1;if(!b.rb&&!b.ra){if(b.l&&!h.a.Sb(b.l)||w&&w()){if(!b.jc){this.s();return}}else b.jc=!1;b.rb=!0;try{I=this.zd(_)}finally{b.rb=!1}return I}},zd:function(_){var b=this[S],I=!1,w=b.wb?e:!b.V,I={qd:this,mb:b.I,Qb:b.V};h.u.xc({pd:I,od:g,o:this,Ya:w}),b.I={},b.V=0;var R=this.yd(b,I);return b.V?I=this.sb(b.X,R):(this.s(),I=!0),I&&(b.J?this.Gb():this.notifySubscribers(b.X,"beforeChange"),b.X=R,this.notifySubscribers(b.X,"spectate"),!b.J&&_&&this.notifySubscribers(b.X),this.rc&&this.rc()),w&&this.notifySubscribers(b.X,"awake"),I},yd:function(_,b){try{var w=_.Wc;return _.nb?w.call(_.nb):w()}finally{h.u.end(),b.Qb&&!_.J&&h.a.P(b.mb,p),_.sa=_.ka=!1}},v:function(_){var b=this[S];return(b.ka&&(_||!b.V)||b.J&&this.Xa())&&this.ha(),b.X},ub:function(_){h.T.fn.ub.call(this,_),this.nc=function(){return this[S].J||(this[S].sa?this.ha():this[S].ka=!1),this[S].X},this.Ia=function(b){this.pc(this[S].X),this[S].ka=!0,b&&(this[S].sa=!0),this.qc(this,!b)}},s:function(){var _=this[S];!_.J&&_.I&&h.a.P(_.I,function(b,w){w.s&&w.s()}),_.l&&_.Rb&&h.a.K.yb(_.l,_.Rb),_.I=e,_.V=0,_.ra=!0,_.sa=!1,_.ka=!1,_.J=!1,_.l=e,_.Sa=e,_.Wc=e,this.Nc||(_.nb=e)}},D={Qa:function(_){var b=this,w=b[S];if(!w.ra&&w.J&&_=="change"){if(w.J=!1,w.sa||b.Xa())w.I=null,w.V=0,b.ha()&&b.Gb();else{var I=[];h.a.P(w.I,function(R,F){I[F.Ka]=R}),h.a.D(I,function(R,F){var k=w.I[R],V=b.$c(k.da);V.Ka=F,V.La=k.La,w.I[R]=V}),b.Xa()&&b.ha()&&b.Gb()}w.ra||b.notifySubscribers(w.X,"awake")}},hb:function(_){var b=this[S];b.ra||_!="change"||this.Wa("change")||(h.a.P(b.I,function(w,I){I.s&&(b.I[w]={da:I.da,Ka:I.Ka,La:I.La},I.s())}),b.J=!0,this.notifySubscribers(e,"asleep"))},ob:function(){var _=this[S];return _.J&&(_.sa||this.Xa())&&this.ha(),h.T.fn.ob.call(this)}},O={Qa:function(_){_!="change"&&_!="beforeChange"||this.v()}};h.a.Ba&&h.a.setPrototypeOf(v,h.T.fn);var M=h.ta.Ma;v[M]=h.o,h.Oc=function(_){return typeof _=="function"&&_[M]===v[M]},h.Fd=function(_){return h.Oc(_)&&_[S]&&_[S].wb},h.b("computed",h.o),h.b("dependentObservable",h.o),h.b("isComputed",h.Oc),h.b("isPureComputed",h.Fd),h.b("computed.fn",v),h.L(v,"peek",v.v),h.L(v,"dispose",v.s),h.L(v,"isActive",v.ja),h.L(v,"getDependenciesCount",v.qa),h.L(v,"getDependencies",v.Va),h.xb=function(_,b){return typeof _=="function"?h.o(_,b,{pure:!0}):(_=h.a.extend({},_),_.pure=!0,h.o(_,b))},h.b("pureComputed",h.xb),function(){function _(I,R,F){if(F=F||new w,I=R(I),typeof I!="object"||I===null||I===e||I instanceof RegExp||I instanceof Date||I instanceof String||I instanceof Number||I instanceof Boolean)return I;var k=I instanceof Array?[]:{};return F.save(I,k),b(I,function(V){var G=R(I[V]);switch(typeof G){case"boolean":case"number":case"string":case"function":k[V]=G;break;case"object":case"undefined":var U=F.get(G);k[V]=U!==e?U:_(G,R,F)}}),k}function b(I,R){if(I instanceof Array){for(var F=0;F<I.length;F++)R(F);typeof I.toJSON=="function"&&R("toJSON")}else for(F in I)R(F)}function w(){this.keys=[],this.values=[]}h.ad=function(I){if(arguments.length==0)throw Error("When calling ko.toJS, pass the object you want to convert.");return _(I,function(R){for(var F=0;h.O(R)&&10>F;F++)R=R();return R})},h.toJSON=function(I,R,F){return I=h.ad(I),h.a.hc(I,R,F)},w.prototype={constructor:w,save:function(I,R){var F=h.a.A(this.keys,I);0<=F?this.values[F]=R:(this.keys.push(I),this.values.push(R))},get:function(I){return I=h.a.A(this.keys,I),0<=I?this.values[I]:e}}}(),h.b("toJS",h.ad),h.b("toJSON",h.toJSON),h.Wd=function(_,b,w){function I(R){var F=h.xb(_,w).extend({ma:"always"}),k=F.subscribe(function(V){V&&(k.s(),R(V))});return F.notifySubscribers(F.v()),k}return typeof Promise!="function"||b?I(b.bind(w)):new Promise(I)},h.b("when",h.Wd),function(){h.w={M:function(_){switch(h.a.R(_)){case"option":return _.__ko__hasDomDataOptionValue__===!0?h.a.g.get(_,h.c.options.$b):7>=h.a.W?_.getAttributeNode("value")&&_.getAttributeNode("value").specified?_.value:_.text:_.value;case"select":return 0<=_.selectedIndex?h.w.M(_.options[_.selectedIndex]):e;default:return _.value}},cb:function(_,b,w){switch(h.a.R(_)){case"option":typeof b=="string"?(h.a.g.set(_,h.c.options.$b,e),"__ko__hasDomDataOptionValue__"in _&&delete _.__ko__hasDomDataOptionValue__,_.value=b):(h.a.g.set(_,h.c.options.$b,b),_.__ko__hasDomDataOptionValue__=!0,_.value=typeof b=="number"?b:"");break;case"select":(b===""||b===null)&&(b=e);for(var I=-1,R=0,F=_.options.length,k;R<F;++R)if(k=h.w.M(_.options[R]),k==b||k===""&&b===e){I=R;break}(w||0<=I||b===e&&1<_.size)&&(_.selectedIndex=I,h.a.W===6&&h.a.setTimeout(function(){_.selectedIndex=I},0));break;default:(b===null||b===e)&&(b=""),_.value=b}}}}(),h.b("selectExtensions",h.w),h.b("selectExtensions.readValue",h.w.M),h.b("selectExtensions.writeValue",h.w.cb),h.m=function(){function _(V){V=h.a.Db(V),V.charCodeAt(0)===123&&(V=V.slice(1,-1)),V+=` +,`;var G=[],U=V.match(I),q,Y=[],Q=0;if(1<U.length){for(var W=0,K;K=U[W];++W){var J=K.charCodeAt(0);if(J===44){if(0>=Q){G.push(q&&Y.length?{key:q,value:Y.join("")}:{unknown:q||Y.join("")}),q=Q=0,Y=[];continue}}else if(J===58){if(!Q&&!q&&Y.length===1){q=Y.pop();continue}}else{if(J===47&&1<K.length&&(K.charCodeAt(1)===47||K.charCodeAt(1)===42))continue;J===47&&W&&1<K.length?(J=U[W-1].match(R))&&!F[J[0]]&&(V=V.substr(V.indexOf(K)+1),U=V.match(I),W=-1,K="/"):J===40||J===123||J===91?++Q:J===41||J===125||J===93?--Q:q||Y.length||J!==34&&J!==39||(K=K.slice(1,-1))}Y.push(K)}if(0<Q)throw Error("Unbalanced parentheses, braces, or brackets")}return G}var b=["true","false","null","undefined"],w=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,I=RegExp(`"(?:\\\\.|[^"])*"|'(?:\\\\.|[^'])*'|\`(?:\\\\.|[^\`])*\`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.* +|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,"'\`{}()/:[\\]]*[^\\s,"'\`{}()/:[\\]]|[^\\s]`,"g"),R=/[\])"'A-Za-z0-9_$]+$/,F={in:1,return:1,typeof:1},k={};return{Ra:[],wa:k,ac:_,vb:function(V,G){function U(J,_e){var xe;if(!W){var se=h.getBindingHandler(J);if(se&&se.preprocess&&!(_e=se.preprocess(_e,J,U)))return;(se=k[J])&&(xe=_e,0<=h.a.A(b,xe)?xe=!1:(se=xe.match(w),xe=se===null?!1:se[1]?"Object("+se[1]+")"+se[2]:xe),se=xe),se&&Y.push("'"+(typeof k[J]=="string"?k[J]:J)+"':function(_z){"+xe+"=_z}")}Q&&(_e="function(){return "+_e+" }"),q.push("'"+J+"':"+_e)}G=G||{};var q=[],Y=[],Q=G.valueAccessors,W=G.bindingParams,K=typeof V=="string"?_(V):V;return h.a.D(K,function(J){U(J.key||J.unknown,J.value)}),Y.length&&U("_ko_property_writers","{"+Y.join(",")+" }"),q.join(",")},Id:function(V,G){for(var U=0;U<V.length;U++)if(V[U].key==G)return!0;return!1},eb:function(V,G,U,q,Y){V&&h.O(V)?!h.Za(V)||Y&&V.v()===q||V(q):(V=G.get("_ko_property_writers"))&&V[U]&&V[U](q)}}}(),h.b("expressionRewriting",h.m),h.b("expressionRewriting.bindingRewriteValidators",h.m.Ra),h.b("expressionRewriting.parseObjectLiteral",h.m.ac),h.b("expressionRewriting.preProcessBindings",h.m.vb),h.b("expressionRewriting._twoWayBindings",h.m.wa),h.b("jsonExpressionRewriting",h.m),h.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",h.m.vb),function(){function _(U){return U.nodeType==8&&F.test(R?U.text:U.nodeValue)}function b(U){return U.nodeType==8&&k.test(R?U.text:U.nodeValue)}function w(U,q){for(var Y=U,Q=1,W=[];Y=Y.nextSibling;){if(b(Y)&&(h.a.g.set(Y,G,!0),Q--,Q===0))return W;W.push(Y),_(Y)&&Q++}if(!q)throw Error("Cannot find closing comment tag to match: "+U.nodeValue);return null}function I(U,q){var Y=w(U,q);return Y?0<Y.length?Y[Y.length-1].nextSibling:U.nextSibling:null}var R=n&&n.createComment("test").text==="<!--test-->",F=R?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,k=R?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,V={ul:!0,ol:!0},G="__ko_matchedEndComment__";h.h={ea:{},childNodes:function(U){return _(U)?w(U):U.childNodes},Ea:function(U){if(_(U)){U=h.h.childNodes(U);for(var q=0,Y=U.length;q<Y;q++)h.removeNode(U[q])}else h.a.Tb(U)},va:function(U,q){if(_(U)){h.h.Ea(U);for(var Y=U.nextSibling,Q=0,W=q.length;Q<W;Q++)Y.parentNode.insertBefore(q[Q],Y)}else h.a.va(U,q)},Vc:function(U,q){var Y;_(U)?(Y=U.nextSibling,U=U.parentNode):Y=U.firstChild,Y?q!==Y&&U.insertBefore(q,Y):U.appendChild(q)},Wb:function(U,q,Y){Y?(Y=Y.nextSibling,_(U)&&(U=U.parentNode),Y?q!==Y&&U.insertBefore(q,Y):U.appendChild(q)):h.h.Vc(U,q)},firstChild:function(U){if(_(U))return!U.nextSibling||b(U.nextSibling)?null:U.nextSibling;if(U.firstChild&&b(U.firstChild))throw Error("Found invalid end comment, as the first child of "+U);return U.firstChild},nextSibling:function(U){if(_(U)&&(U=I(U)),U.nextSibling&&b(U.nextSibling)){var q=U.nextSibling;if(b(q)&&!h.a.g.get(q,G))throw Error("Found end comment without a matching opening comment, as child of "+U);return null}return U.nextSibling},Cd:_,Vd:function(U){return(U=(R?U.text:U.nodeValue).match(F))?U[1]:null},Sc:function(U){if(V[h.a.R(U)]){var q=U.firstChild;if(q)do if(q.nodeType===1){var Y;Y=q.firstChild;var Q=null;if(Y)do if(Q)Q.push(Y);else if(_(Y)){var W=I(Y,!0);W?Y=W:Q=[Y]}else b(Y)&&(Q=[Y]);while(Y=Y.nextSibling);if(Y=Q)for(Q=q.nextSibling,W=0;W<Y.length;W++)Q?U.insertBefore(Y[W],Q):U.appendChild(Y[W])}while(q=q.nextSibling)}}}}(),h.b("virtualElements",h.h),h.b("virtualElements.allowedBindings",h.h.ea),h.b("virtualElements.emptyNode",h.h.Ea),h.b("virtualElements.insertAfter",h.h.Wb),h.b("virtualElements.prepend",h.h.Vc),h.b("virtualElements.setDomNodeChildren",h.h.va),function(){h.ga=function(){this.nd={}},h.a.extend(h.ga.prototype,{nodeHasBindings:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind")!=null||h.j.getComponentNameForNode(_);case 8:return h.h.Cd(_);default:return!1}},getBindings:function(_,b){var w=this.getBindingsString(_,b),w=w?this.parseBindingsString(w,b,_):null;return h.j.tc(w,_,b,!1)},getBindingAccessors:function(_,b){var w=this.getBindingsString(_,b),w=w?this.parseBindingsString(w,b,_,{valueAccessors:!0}):null;return h.j.tc(w,_,b,!0)},getBindingsString:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind");case 8:return h.h.Vd(_);default:return null}},parseBindingsString:function(_,b,w,I){try{var R=this.nd,F=_+(I&&I.valueAccessors||""),k;if(!(k=R[F])){var V,G="with($context){with($data||{}){return{"+h.m.vb(_,I)+"}}}";V=new Function("$context","$element",G),k=R[F]=V}return k(b,w)}catch(U){throw U.message=`Unable to parse bindings. +Bindings value: `+_+` +Message: `+U.message,U}}}),h.ga.instance=new h.ga}(),h.b("bindingProvider",h.ga),function(){function _(se){var Ae=(se=h.a.g.get(se,xe))&&se.N;Ae&&(se.N=null,Ae.Tc())}function b(se,Ae,me){this.node=se,this.yc=Ae,this.kb=[],this.H=!1,Ae.N||h.a.K.za(se,_),me&&me.N&&(me.N.kb.push(se),this.Kb=me)}function w(se){return function(){return se}}function I(se){return se()}function R(se){return h.a.Ga(h.u.G(se),function(Ae,me){return function(){return se()[me]}})}function F(se,Ae,me){return typeof se=="function"?R(se.bind(null,Ae,me)):h.a.Ga(se,w)}function k(se,Ae){return R(this.getBindings.bind(this,se,Ae))}function V(se,Ae){var me=h.h.firstChild(Ae);if(me){var Se,Ie=h.ga.instance,Ue=Ie.preprocessNode;if(Ue){for(;Se=me;)me=h.h.nextSibling(Se),Ue.call(Ie,Se);me=h.h.firstChild(Ae)}for(;Se=me;)me=h.h.nextSibling(Se),G(se,Se)}h.i.ma(Ae,h.i.H)}function G(se,Ae){var me=se,Se=Ae.nodeType===1;Se&&h.h.Sc(Ae),(Se||h.ga.instance.nodeHasBindings(Ae))&&(me=q(Ae,null,se).bindingContextForDescendants),me&&!J[h.a.R(Ae)]&&V(me,Ae)}function U(se){var Ae=[],me={},Se=[];return h.a.P(se,function Ie(Ue){if(!me[Ue]){var Re=h.getBindingHandler(Ue);Re&&(Re.after&&(Se.push(Ue),h.a.D(Re.after,function(ke){if(se[ke]){if(h.a.A(Se,ke)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+Se.join(", "));Ie(ke)}}),Se.length--),Ae.push({key:Ue,Mc:Re})),me[Ue]=!0}}),Ae}function q(se,Ae,me){var Se=h.a.g.Ub(se,xe,{}),Ie=Se.hd;if(!Ae){if(Ie)throw Error("You cannot apply bindings multiple times to the same element.");Se.hd=!0}Ie||(Se.context=me),Se.Zb||(Se.Zb={});var Ue;if(Ae&&typeof Ae!="function")Ue=Ae;else{var Re=h.ga.instance,ke=Re.getBindingAccessors||k,ft=h.$(function(){return(Ue=Ae?Ae(me,se):ke.call(Re,se,me))&&(me[Q]&&me[Q](),me[K]&&me[K]()),Ue},null,{l:se});Ue&&ft.ja()||(ft=null)}var pt=me,rt;if(Ue){var un=function(){return h.a.Ga(ft?ft():Ue,I)},Mn=ft?function(Wt){return function(){return I(ft()[Wt])}}:function(Wt){return Ue[Wt]};un.get=function(Wt){return Ue[Wt]&&I(Mn(Wt))},un.has=function(Wt){return Wt in Ue},h.i.H in Ue&&h.i.subscribe(se,h.i.H,function(){var Wt=(0,Ue[h.i.H])();if(Wt){var Ze=h.h.childNodes(se);Ze.length&&Wt(Ze,h.Ec(Ze[0]))}}),h.i.pa in Ue&&(pt=h.i.Cb(se,me),h.i.subscribe(se,h.i.pa,function(){var Wt=(0,Ue[h.i.pa])();Wt&&h.h.firstChild(se)&&Wt(se)})),Se=U(Ue),h.a.D(Se,function(Wt){var Ze=Wt.Mc.init,pe=Wt.Mc.update,Ee=Wt.key;if(se.nodeType===8&&!h.h.ea[Ee])throw Error("The binding '"+Ee+"' cannot be used with virtual elements");try{typeof Ze=="function"&&h.u.G(function(){var je=Ze(se,Mn(Ee),un,pt.$data,pt);if(je&&je.controlsDescendantBindings){if(rt!==e)throw Error("Multiple bindings ("+rt+" and "+Ee+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");rt=Ee}}),typeof pe=="function"&&h.$(function(){pe(se,Mn(Ee),un,pt.$data,pt)},null,{l:se})}catch(je){throw je.message='Unable to process binding "'+Ee+": "+Ue[Ee]+`" +Message: `+je.message,je}})}return Se=rt===e,{shouldBindDescendants:Se,bindingContextForDescendants:Se&&pt}}function Y(se,Ae){return se&&se instanceof h.fa?se:new h.fa(se,e,e,Ae)}var Q=h.a.Da("_subscribable"),W=h.a.Da("_ancestorBindingInfo"),K=h.a.Da("_dataDependency");h.c={};var J={script:!0,textarea:!0,template:!0};h.getBindingHandler=function(se){return h.c[se]};var _e={};h.fa=function(se,Ae,me,Se,Ie){function Ue(){var Mn=pt?ft():ft,Wt=h.a.f(Mn);return Ae?(h.a.extend(Re,Ae),W in Ae&&(Re[W]=Ae[W])):(Re.$parents=[],Re.$root=Wt,Re.ko=h),Re[Q]=rt,ke?Wt=Re.$data:(Re.$rawData=Mn,Re.$data=Wt),me&&(Re[me]=Wt),Se&&Se(Re,Ae,Wt),Ae&&Ae[Q]&&!h.S.o().Vb(Ae[Q])&&Ae[Q](),un&&(Re[K]=un),Re.$data}var Re=this,ke=se===_e,ft=ke?e:se,pt=typeof ft=="function"&&!h.O(ft),rt,un=Ie&&Ie.dataDependency;Ie&&Ie.exportDependencies?Ue():(rt=h.xb(Ue),rt.v(),rt.ja()?rt.equalityComparer=null:Re[Q]=e)},h.fa.prototype.createChildContext=function(se,Ae,me,Se){if(!Se&&Ae&&typeof Ae=="object"&&(Se=Ae,Ae=Se.as,me=Se.extend),Ae&&Se&&Se.noChildContext){var Ie=typeof se=="function"&&!h.O(se);return new h.fa(_e,this,null,function(Ue){me&&me(Ue),Ue[Ae]=Ie?se():se},Se)}return new h.fa(se,this,Ae,function(Ue,Re){Ue.$parentContext=Re,Ue.$parent=Re.$data,Ue.$parents=(Re.$parents||[]).slice(0),Ue.$parents.unshift(Ue.$parent),me&&me(Ue)},Se)},h.fa.prototype.extend=function(se,Ae){return new h.fa(_e,this,null,function(me){h.a.extend(me,typeof se=="function"?se(me):se)},Ae)};var xe=h.a.g.Z();b.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)},b.prototype.sd=function(se){h.a.Pa(this.kb,se),!this.kb.length&&this.H&&this.Cc()},b.prototype.Cc=function(){this.H=!0,this.yc.N&&!this.kb.length&&(this.yc.N=null,h.a.K.yb(this.node,_),h.i.ma(this.node,h.i.pa),this.Tc())},h.i={H:"childrenComplete",pa:"descendantsComplete",subscribe:function(se,Ae,me,Se,Ie){var Ue=h.a.g.Ub(se,xe,{});return Ue.Fa||(Ue.Fa=new h.T),Ie&&Ie.notifyImmediately&&Ue.Zb[Ae]&&h.u.G(me,Se,[se]),Ue.Fa.subscribe(me,Se,Ae)},ma:function(se,Ae){var me=h.a.g.get(se,xe);if(me&&(me.Zb[Ae]=!0,me.Fa&&me.Fa.notifySubscribers(se,Ae),Ae==h.i.H)){if(me.N)me.N.Cc();else if(me.N===e&&me.Fa&&me.Fa.Wa(h.i.pa))throw Error("descendantsComplete event not supported for bindings on this node")}},Cb:function(se,Ae){var me=h.a.g.Ub(se,xe,{});return me.N||(me.N=new b(se,me,Ae[W])),Ae[W]==me?Ae:Ae.extend(function(Se){Se[W]=me})}},h.Td=function(se){return(se=h.a.g.get(se,xe))&&se.context},h.ib=function(se,Ae,me){return se.nodeType===1&&h.h.Sc(se),q(se,Ae,Y(me))},h.ld=function(se,Ae,me){return me=Y(me),h.ib(se,F(Ae,me,se),me)},h.Oa=function(se,Ae){Ae.nodeType!==1&&Ae.nodeType!==8||V(Y(se),Ae)},h.vc=function(se,Ae,me){if(!o&&t.jQuery&&(o=t.jQuery),2>arguments.length){if(Ae=n.body,!Ae)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!Ae||Ae.nodeType!==1&&Ae.nodeType!==8)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");G(Y(se,me),Ae)},h.Dc=function(se){return!se||se.nodeType!==1&&se.nodeType!==8?e:h.Td(se)},h.Ec=function(se){return(se=h.Dc(se))?se.$data:e},h.b("bindingHandlers",h.c),h.b("bindingEvent",h.i),h.b("bindingEvent.subscribe",h.i.subscribe),h.b("bindingEvent.startPossiblyAsyncContentBinding",h.i.Cb),h.b("applyBindings",h.vc),h.b("applyBindingsToDescendants",h.Oa),h.b("applyBindingAccessorsToNode",h.ib),h.b("applyBindingsToNode",h.ld),h.b("contextFor",h.Dc),h.b("dataFor",h.Ec)}(),function(_){function b(k,V){var G=Object.prototype.hasOwnProperty.call(R,k)?R[k]:_,U;G?G.subscribe(V):(G=R[k]=new h.T,G.subscribe(V),w(k,function(q,Y){var Q=!(!Y||!Y.synchronous);F[k]={definition:q,Gd:Q},delete R[k],U||Q?G.notifySubscribers(q):h.na.zb(function(){G.notifySubscribers(q)})}),U=!0)}function w(k,V){I("getConfig",[k],function(G){G?I("loadComponent",[k,G],function(U){V(U,G)}):V(null,null)})}function I(k,V,G,U){U||(U=h.j.loaders.slice(0));var q=U.shift();if(q){var Y=q[k];if(Y){var Q=!1;if(Y.apply(q,V.concat(function(W){Q?G(null):W!==null?G(W):I(k,V,G,U)}))!==_&&(Q=!0,!q.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else I(k,V,G,U)}else G(null)}var R={},F={};h.j={get:function(k,V){var G=Object.prototype.hasOwnProperty.call(F,k)?F[k]:_;G?G.Gd?h.u.G(function(){V(G.definition)}):h.na.zb(function(){V(G.definition)}):b(k,V)},Bc:function(k){delete F[k]},oc:I},h.j.loaders=[],h.b("components",h.j),h.b("components.get",h.j.get),h.b("components.clearCachedDefinition",h.j.Bc)}(),function(){function _(G,U,q,Y){function Q(){--K===0&&Y(W)}var W={},K=2,J=q.template;q=q.viewModel,J?R(U,J,function(_e){h.j.oc("loadTemplate",[G,_e],function(xe){W.template=xe,Q()})}):Q(),q?R(U,q,function(_e){h.j.oc("loadViewModel",[G,_e],function(xe){W[V]=xe,Q()})}):Q()}function b(G,U,q){if(typeof U=="function")q(function(Q){return new U(Q)});else if(typeof U[V]=="function")q(U[V]);else if("instance"in U){var Y=U.instance;q(function(){return Y})}else"viewModel"in U?b(G,U.viewModel,q):G("Unknown viewModel value: "+U)}function w(G){switch(h.a.R(G)){case"script":return h.a.ua(G.text);case"textarea":return h.a.ua(G.value);case"template":if(I(G.content))return h.a.Ca(G.content.childNodes)}return h.a.Ca(G.childNodes)}function I(G){return t.DocumentFragment?G instanceof DocumentFragment:G&&G.nodeType===11}function R(G,U,q){typeof U.require=="string"?a||t.require?(a||t.require)([U.require],function(Y){Y&&typeof Y=="object"&&Y.Xd&&Y.default&&(Y=Y.default),q(Y)}):G("Uses require, but no AMD loader is present"):q(U)}function F(G){return function(U){throw Error("Component '"+G+"': "+U)}}var k={};h.j.register=function(G,U){if(!U)throw Error("Invalid configuration for "+G);if(h.j.tb(G))throw Error("Component "+G+" is already registered");k[G]=U},h.j.tb=function(G){return Object.prototype.hasOwnProperty.call(k,G)},h.j.unregister=function(G){delete k[G],h.j.Bc(G)},h.j.Fc={getConfig:function(G,U){U(h.j.tb(G)?k[G]:null)},loadComponent:function(G,U,q){var Y=F(G);R(Y,U,function(Q){_(G,Y,Q,q)})},loadTemplate:function(G,U,q){if(G=F(G),typeof U=="string")q(h.a.ua(U));else if(U instanceof Array)q(U);else if(I(U))q(h.a.la(U.childNodes));else if(U.element)if(U=U.element,t.HTMLElement?U instanceof HTMLElement:U&&U.tagName&&U.nodeType===1)q(w(U));else if(typeof U=="string"){var Y=n.getElementById(U);Y?q(w(Y)):G("Cannot find element with ID "+U)}else G("Unknown element type: "+U);else G("Unknown template value: "+U)},loadViewModel:function(G,U,q){b(F(G),U,q)}};var V="createViewModel";h.b("components.register",h.j.register),h.b("components.isRegistered",h.j.tb),h.b("components.unregister",h.j.unregister),h.b("components.defaultLoader",h.j.Fc),h.j.loaders.push(h.j.Fc),h.j.dd=k}(),function(){function _(w,I){var R=w.getAttribute("params");if(R){var R=b.parseBindingsString(R,I,w,{valueAccessors:!0,bindingParams:!0}),R=h.a.Ga(R,function(V){return h.o(V,null,{l:w})}),F=h.a.Ga(R,function(V){var G=V.v();return V.ja()?h.o({read:function(){return h.a.f(V())},write:h.Za(G)&&function(U){V()(U)},l:w}):G});return Object.prototype.hasOwnProperty.call(F,"$raw")||(F.$raw=R),F}return{$raw:{}}}h.j.getComponentNameForNode=function(w){var I=h.a.R(w);if(h.j.tb(I)&&(I.indexOf("-")!=-1||""+w=="[object HTMLUnknownElement]"||8>=h.a.W&&w.tagName===I))return I},h.j.tc=function(w,I,R,F){if(I.nodeType===1){var k=h.j.getComponentNameForNode(I);if(k){if(w=w||{},w.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var V={name:k,params:_(I,R)};w.component=F?function(){return V}:V}}return w};var b=new h.ga;9>h.a.W&&(h.j.register=function(w){return function(I){return w.apply(this,arguments)}}(h.j.register),n.createDocumentFragment=function(w){return function(){var I=w(),R=h.j.dd,F;for(F in R);return I}}(n.createDocumentFragment))}(),function(){function _(I,R,F){if(R=R.template,!R)throw Error("Component '"+I+"' has no template");I=h.a.Ca(R),h.h.va(F,I)}function b(I,R,F){var k=I.createViewModel;return k?k.call(I,R,F):R}var w=0;h.c.component={init:function(I,R,F,k,V){function G(){var W=U&&U.dispose;typeof W=="function"&&W.call(U),Y&&Y.s(),q=U=Y=null}var U,q,Y,Q=h.a.la(h.h.childNodes(I));return h.h.Ea(I),h.a.K.za(I,G),h.o(function(){var W=h.a.f(R()),K,J;if(typeof W=="string"?K=W:(K=h.a.f(W.name),J=h.a.f(W.params)),!K)throw Error("No component name specified");var _e=h.i.Cb(I,V),xe=q=++w;h.j.get(K,function(se){if(q===xe){if(G(),!se)throw Error("Unknown component '"+K+"'");_(K,se,I);var Ae=b(se,J,{element:I,templateNodes:Q});se=_e.createChildContext(Ae,{extend:function(me){me.$component=Ae,me.$componentTemplateNodes=Q}}),Ae&&Ae.koDescendantsComplete&&(Y=h.i.subscribe(I,h.i.pa,Ae.koDescendantsComplete,Ae)),U=Ae,h.Oa(se,I)}})},null,{l:I}),{controlsDescendantBindings:!0}}},h.h.ea.component=!0}();var L={class:"className",for:"htmlFor"};h.c.attr={update:function(_,b){var w=h.a.f(b())||{};h.a.P(w,function(I,R){R=h.a.f(R);var F=I.indexOf(":"),F="lookupNamespaceURI"in _&&0<F&&_.lookupNamespaceURI(I.substr(0,F)),k=R===!1||R===null||R===e;k?F?_.removeAttributeNS(F,I):_.removeAttribute(I):R=R.toString(),8>=h.a.W&&I in L?(I=L[I],k?_.removeAttribute(I):_[I]=R):k||(F?_.setAttributeNS(F,I,R):_.setAttribute(I,R)),I==="name"&&h.a.Yc(_,k?"":R)})}},function(){h.c.checked={after:["value","attr"],init:function(_,b,w){function I(){var W=_.checked,K=F();if(!h.S.Ya()&&(W||!V&&!h.S.qa())){var J=h.u.G(b);if(U){var _e=q?J.v():J,xe=Q;Q=K,xe!==K?W&&(h.a.Na(_e,K,!0),h.a.Na(_e,xe,!1)):h.a.Na(_e,K,W),q&&h.Za(J)&&J(_e)}else k&&(K===e?K=W:W||(K=e)),h.m.eb(J,w,"checked",K,!0)}}function R(){var W=h.a.f(b()),K=F();U?(_.checked=0<=h.a.A(W,K),Q=K):_.checked=k&&K===e?!!W:F()===W}var F=h.xb(function(){if(w.has("checkedValue"))return h.a.f(w.get("checkedValue"));if(Y)return w.has("value")?h.a.f(w.get("value")):_.value}),k=_.type=="checkbox",V=_.type=="radio";if(k||V){var G=b(),U=k&&h.a.f(G)instanceof Array,q=!(U&&G.push&&G.splice),Y=V||U,Q=U?F():e;V&&!_.name&&h.c.uniqueName.init(_,function(){return!0}),h.o(I,null,{l:_}),h.a.B(_,"click",I),h.o(R,null,{l:_}),G=e}}},h.m.wa.checked=!0,h.c.checkedValue={update:function(_,b){_.value=h.a.f(b())}}}(),h.c.class={update:function(_,b){var w=h.a.Db(h.a.f(b()));h.a.Eb(_,_.__ko__cssValue,!1),_.__ko__cssValue=w,h.a.Eb(_,w,!0)}},h.c.css={update:function(_,b){var w=h.a.f(b());w!==null&&typeof w=="object"?h.a.P(w,function(I,R){R=h.a.f(R),h.a.Eb(_,I,R)}):h.c.class.update(_,b)}},h.c.enable={update:function(_,b){var w=h.a.f(b());w&&_.disabled?_.removeAttribute("disabled"):w||_.disabled||(_.disabled=!0)}},h.c.disable={update:function(_,b){h.c.enable.update(_,function(){return!h.a.f(b())})}},h.c.event={init:function(_,b,w,I,R){var F=b()||{};h.a.P(F,function(k){typeof k=="string"&&h.a.B(_,k,function(V){var G,U=b()[k];if(U){try{var q=h.a.la(arguments);I=R.$data,q.unshift(I),G=U.apply(I,q)}finally{G!==!0&&(V.preventDefault?V.preventDefault():V.returnValue=!1)}w.get(k+"Bubble")===!1&&(V.cancelBubble=!0,V.stopPropagation&&V.stopPropagation())}})})}},h.c.foreach={Rc:function(_){return function(){var b=_(),w=h.a.bc(b);return!w||typeof w.length=="number"?{foreach:b,templateEngine:h.ba.Ma}:(h.a.f(b),{foreach:w.data,as:w.as,noChildContext:w.noChildContext,includeDestroyed:w.includeDestroyed,afterAdd:w.afterAdd,beforeRemove:w.beforeRemove,afterRender:w.afterRender,beforeMove:w.beforeMove,afterMove:w.afterMove,templateEngine:h.ba.Ma})}},init:function(_,b){return h.c.template.init(_,h.c.foreach.Rc(b))},update:function(_,b,w,I,R){return h.c.template.update(_,h.c.foreach.Rc(b),w,I,R)}},h.m.Ra.foreach=!1,h.h.ea.foreach=!0,h.c.hasfocus={init:function(_,b,w){function I(k){_.__ko_hasfocusUpdating=!0;var V=_.ownerDocument;if("activeElement"in V){var G;try{G=V.activeElement}catch{G=V.body}k=G===_}V=b(),h.m.eb(V,w,"hasfocus",k,!0),_.__ko_hasfocusLastValue=k,_.__ko_hasfocusUpdating=!1}var R=I.bind(null,!0),F=I.bind(null,!1);h.a.B(_,"focus",R),h.a.B(_,"focusin",R),h.a.B(_,"blur",F),h.a.B(_,"focusout",F),_.__ko_hasfocusLastValue=!1},update:function(_,b){var w=!!h.a.f(b());_.__ko_hasfocusUpdating||_.__ko_hasfocusLastValue===w||(w?_.focus():_.blur(),!w&&_.__ko_hasfocusLastValue&&_.ownerDocument.body.focus(),h.u.G(h.a.Fb,null,[_,w?"focusin":"focusout"]))}},h.m.wa.hasfocus=!0,h.c.hasFocus=h.c.hasfocus,h.m.wa.hasFocus="hasfocus",h.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(_,b){h.a.fc(_,b())}},function(){function _(b,w,I){h.c[b]={init:function(R,F,k,V,G){var U,q,Y={},Q,W,K;if(w){V=k.get("as");var J=k.get("noChildContext");K=!(V&&J),Y={as:V,noChildContext:J,exportDependencies:K}}return W=(Q=k.get("completeOn")=="render")||k.has(h.i.pa),h.o(function(){var _e=h.a.f(F()),xe=!I!=!_e,se=!q,Ae;(K||xe!==U)&&(W&&(G=h.i.Cb(R,G)),xe&&((!w||K)&&(Y.dataDependency=h.S.o()),Ae=w?G.createChildContext(typeof _e=="function"?_e:F,Y):h.S.qa()?G.extend(null,Y):G),se&&h.S.qa()&&(q=h.a.Ca(h.h.childNodes(R),!0)),xe?(se||h.h.va(R,h.a.Ca(q)),h.Oa(Ae,R)):(h.h.Ea(R),Q||h.i.ma(R,h.i.H)),U=xe)},null,{l:R}),{controlsDescendantBindings:!0}}},h.m.Ra[b]=!1,h.h.ea[b]=!0}_("if"),_("ifnot",!1,!0),_("with",!0)}(),h.c.let={init:function(_,b,w,I,R){return b=R.extend(b),h.Oa(b,_),{controlsDescendantBindings:!0}}},h.h.ea.let=!0;var N={};h.c.options={init:function(_){if(h.a.R(_)!=="select")throw Error("options binding applies only to SELECT elements");for(;0<_.length;)_.remove(0);return{controlsDescendantBindings:!0}},update:function(_,b,w){function I(){return h.a.jb(_.options,function(J){return J.selected})}function R(J,_e,xe){var se=typeof _e;return se=="function"?_e(J):se=="string"?J[_e]:xe}function F(J,_e){if(W&&U)h.i.ma(_,h.i.H);else if(Q.length){var xe=0<=h.a.A(Q,h.w.M(_e[0]));h.a.Zc(_e[0],xe),W&&!xe&&h.u.G(h.a.Fb,null,[_,"change"])}}var k=_.multiple,V=_.length!=0&&k?_.scrollTop:null,G=h.a.f(b()),U=w.get("valueAllowUnset")&&w.has("value"),q=w.get("optionsIncludeDestroyed");b={};var Y,Q=[];U||(k?Q=h.a.Mb(I(),h.w.M):0<=_.selectedIndex&&Q.push(h.w.M(_.options[_.selectedIndex]))),G&&(typeof G.length>"u"&&(G=[G]),Y=h.a.jb(G,function(J){return q||J===e||J===null||!h.a.f(J._destroy)}),w.has("optionsCaption")&&(G=h.a.f(w.get("optionsCaption")),G!==null&&G!==e&&Y.unshift(N)));var W=!1;if(b.beforeRemove=function(J){_.removeChild(J)},G=F,w.has("optionsAfterRender")&&typeof w.get("optionsAfterRender")=="function"&&(G=function(J,_e){F(0,_e),h.u.G(w.get("optionsAfterRender"),null,[_e[0],J!==N?J:e])}),h.a.ec(_,Y,function(J,_e,xe){return xe.length&&(Q=!U&&xe[0].selected?[h.w.M(xe[0])]:[],W=!0),_e=_.ownerDocument.createElement("option"),J===N?(h.a.Bb(_e,w.get("optionsCaption")),h.w.cb(_e,e)):(xe=R(J,w.get("optionsValue"),J),h.w.cb(_e,h.a.f(xe)),J=R(J,w.get("optionsText"),xe),h.a.Bb(_e,J)),[_e]},b,G),!U){var K;k?K=Q.length&&I().length<Q.length:K=Q.length&&0<=_.selectedIndex?h.w.M(_.options[_.selectedIndex])!==Q[0]:Q.length||0<=_.selectedIndex,K&&h.u.G(h.a.Fb,null,[_,"change"])}(U||h.S.Ya())&&h.i.ma(_,h.i.H),h.a.wd(_),V&&20<Math.abs(V-_.scrollTop)&&(_.scrollTop=V)}},h.c.options.$b=h.a.g.Z(),h.c.selectedOptions={init:function(_,b,w){function I(){var k=b(),V=[];h.a.D(_.getElementsByTagName("option"),function(G){G.selected&&V.push(h.w.M(G))}),h.m.eb(k,w,"selectedOptions",V)}function R(){var k=h.a.f(b()),V=_.scrollTop;k&&typeof k.length=="number"&&h.a.D(_.getElementsByTagName("option"),function(G){var U=0<=h.a.A(k,h.w.M(G));G.selected!=U&&h.a.Zc(G,U)}),_.scrollTop=V}if(h.a.R(_)!="select")throw Error("selectedOptions binding applies only to SELECT elements");var F;h.i.subscribe(_,h.i.H,function(){F?I():(h.a.B(_,"change",I),F=h.o(R,null,{l:_}))},null,{notifyImmediately:!0})},update:function(){}},h.m.wa.selectedOptions=!0,h.c.style={update:function(_,b){var w=h.a.f(b()||{});h.a.P(w,function(I,R){if(R=h.a.f(R),(R===null||R===e||R===!1)&&(R=""),o)o(_).css(I,R);else if(/^--/.test(I))_.style.setProperty(I,R);else{I=I.replace(/-(\w)/g,function(k,V){return V.toUpperCase()});var F=_.style[I];_.style[I]=R,R===F||_.style[I]!=F||isNaN(R)||(_.style[I]=R+"px")}})}},h.c.submit={init:function(_,b,w,I,R){if(typeof b()!="function")throw Error("The value for a submit binding must be a function");h.a.B(_,"submit",function(F){var k,V=b();try{k=V.call(R.$data,_)}finally{k!==!0&&(F.preventDefault?F.preventDefault():F.returnValue=!1)}})}},h.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(_,b){h.a.Bb(_,b())}},h.h.ea.text=!0,function(){if(t&&t.navigator){var _=function(Y){if(Y)return parseFloat(Y[1])},b=t.navigator.userAgent,w,I,R,F,k;(w=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(k=_(b.match(/Edge\/([^ ]+)$/)))||_(b.match(/Chrome\/([^ ]+)/))||(I=_(b.match(/Version\/([^ ]+) Safari/)))||(R=_(b.match(/Firefox\/([^ ]+)/)))||(F=h.a.W||_(b.match(/MSIE ([^ ]+)/)))||(F=_(b.match(/rv:([^ )]+)/)))}if(8<=F&&10>F)var V=h.a.g.Z(),G=h.a.g.Z(),U=function(Y){var Q=this.activeElement;(Q=Q&&h.a.g.get(Q,G))&&Q(Y)},q=function(Y,Q){var W=Y.ownerDocument;h.a.g.get(W,V)||(h.a.g.set(W,V,!0),h.a.B(W,"selectionchange",U)),h.a.g.set(Y,G,Q)};h.c.textInput={init:function(Y,Q,W){function K(Ue,Re){h.a.B(Y,Ue,Re)}function J(){var Ue=h.a.f(Q());(Ue===null||Ue===e)&&(Ue=""),me!==e&&Ue===me?h.a.setTimeout(J,4):Y.value!==Ue&&(Ie=!0,Y.value=Ue,Ie=!1,se=Y.value)}function _e(){Ae||(me=Y.value,Ae=h.a.setTimeout(xe,4))}function xe(){clearTimeout(Ae),me=Ae=e;var Ue=Y.value;se!==Ue&&(se=Ue,h.m.eb(Q(),W,"textInput",Ue))}var se=Y.value,Ae,me,Se=h.a.W==9?_e:xe,Ie=!1;F&&K("keypress",xe),11>F&&K("propertychange",function(Ue){Ie||Ue.propertyName!=="value"||Se(Ue)}),F==8&&(K("keyup",xe),K("keydown",xe)),q&&(q(Y,Se),K("dragend",_e)),(!F||9<=F)&&K("input",Se),5>I&&h.a.R(Y)==="textarea"?(K("keydown",_e),K("paste",_e),K("cut",_e)):11>w?K("keydown",_e):4>R?(K("DOMAutoComplete",xe),K("dragdrop",xe),K("drop",xe)):k&&Y.type==="number"&&K("keydown",_e),K("change",xe),K("blur",xe),h.o(J,null,{l:Y})}},h.m.wa.textInput=!0,h.c.textinput={preprocess:function(Y,Q,W){W("textInput",Y)}}}(),h.c.uniqueName={init:function(_,b){if(b()){var w="ko_unique_"+ ++h.c.uniqueName.rd;h.a.Yc(_,w)}}},h.c.uniqueName.rd=0,h.c.using={init:function(_,b,w,I,R){var F;return w.has("as")&&(F={as:w.get("as"),noChildContext:w.get("noChildContext")}),b=R.createChildContext(b,F),h.Oa(b,_),{controlsDescendantBindings:!0}}},h.h.ea.using=!0,h.c.value={init:function(_,b,w){var I=h.a.R(_),R=I=="input";if(!R||_.type!="checkbox"&&_.type!="radio"){var F=[],k=w.get("valueUpdate"),V=!1,G=null;k&&(typeof k=="string"?F=[k]:F=h.a.wc(k),h.a.Pa(F,"change"));var U=function(){G=null,V=!1;var Q=b(),W=h.w.M(_);h.m.eb(Q,w,"value",W)};!h.a.W||!R||_.type!="text"||_.autocomplete=="off"||_.form&&_.form.autocomplete=="off"||h.a.A(F,"propertychange")!=-1||(h.a.B(_,"propertychange",function(){V=!0}),h.a.B(_,"focus",function(){V=!1}),h.a.B(_,"blur",function(){V&&U()})),h.a.D(F,function(Q){var W=U;h.a.Ud(Q,"after")&&(W=function(){G=h.w.M(_),h.a.setTimeout(U,0)},Q=Q.substring(5)),h.a.B(_,Q,W)});var q;if(q=R&&_.type=="file"?function(){var Q=h.a.f(b());Q===null||Q===e||Q===""?_.value="":h.u.G(U)}:function(){var Q=h.a.f(b()),W=h.w.M(_);G!==null&&Q===G?h.a.setTimeout(q,0):(Q!==W||W===e)&&(I==="select"?(W=w.get("valueAllowUnset"),h.w.cb(_,Q,W),W||Q===h.w.M(_)||h.u.G(U)):h.w.cb(_,Q))},I==="select"){var Y;h.i.subscribe(_,h.i.H,function(){Y?w.get("valueAllowUnset")?q():U():(h.a.B(_,"change",U),Y=h.o(q,null,{l:_}))},null,{notifyImmediately:!0})}else h.a.B(_,"change",U),h.o(q,null,{l:_})}else h.ib(_,{checkedValue:b})},update:function(){}},h.m.wa.value=!0,h.c.visible={update:function(_,b){var w=h.a.f(b()),I=_.style.display!="none";w&&!I?_.style.display="":!w&&I&&(_.style.display="none")}},h.c.hidden={update:function(_,b){h.c.visible.update(_,function(){return!h.a.f(b())})}},function(_){h.c[_]={init:function(b,w,I,R,F){return h.c.event.init.call(this,b,function(){var k={};return k[_]=w(),k},I,R,F)}}}("click"),h.ca=function(){},h.ca.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource")},h.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock")},h.ca.prototype.makeTemplateSource=function(_,b){if(typeof _=="string"){b=b||n;var w=b.getElementById(_);if(!w)throw Error("Cannot find template with ID "+_);return new h.C.F(w)}if(_.nodeType==1||_.nodeType==8)return new h.C.ia(_);throw Error("Unknown template type: "+_)},h.ca.prototype.renderTemplate=function(_,b,w,I){return _=this.makeTemplateSource(_,I),this.renderTemplateSource(_,b,w,I)},h.ca.prototype.isTemplateRewritten=function(_,b){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(_,b).data("isRewritten")},h.ca.prototype.rewriteTemplate=function(_,b,w){_=this.makeTemplateSource(_,w),b=b(_.text()),_.text(b),_.data("isRewritten",!0)},h.b("templateEngine",h.ca),h.kc=function(){function _(I,R,F,k){I=h.m.ac(I);for(var V=h.m.Ra,G=0;G<I.length;G++){var U=I[G].key;if(Object.prototype.hasOwnProperty.call(V,U)){var q=V[U];if(typeof q=="function"){if(U=q(I[G].value))throw Error(U)}else if(!q)throw Error("This template engine does not support the '"+U+"' binding within its templates")}}return F="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+h.m.vb(I,{valueAccessors:!0})+" } })()},'"+F.toLowerCase()+"')",k.createJavaScriptEvaluatorBlock(F)+R}var b=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,w=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(I,R,F){R.isTemplateRewritten(I,F)||R.rewriteTemplate(I,function(k){return h.kc.Ld(k,R)},F)},Ld:function(I,R){return I.replace(b,function(F,k,V,G,U){return _(U,k,V,R)}).replace(w,function(F,k){return _(k,"<!-- ko -->","#comment",R)})},md:function(I,R){return h.aa.Xb(function(F,k){var V=F.nextSibling;V&&V.nodeName.toLowerCase()===R&&h.ib(V,I,k)})}}}(),h.b("__tr_ambtns",h.kc.md),function(){h.C={},h.C.F=function(w){if(this.F=w){var I=h.a.R(w);this.ab=I==="script"?1:I==="textarea"?2:I=="template"&&w.content&&w.content.nodeType===11?3:4}},h.C.F.prototype.text=function(){var w=this.ab===1?"text":this.ab===2?"value":"innerHTML";if(arguments.length==0)return this.F[w];var I=arguments[0];w==="innerHTML"?h.a.fc(this.F,I):this.F[w]=I};var _=h.a.g.Z()+"_";h.C.F.prototype.data=function(w){if(arguments.length===1)return h.a.g.get(this.F,_+w);h.a.g.set(this.F,_+w,arguments[1])};var b=h.a.g.Z();h.C.F.prototype.nodes=function(){var w=this.F;if(arguments.length==0){var I=h.a.g.get(w,b)||{},R=I.lb||(this.ab===3?w.content:this.ab===4?w:e);if(!R||I.jd){var F=this.text();F&&F!==I.bb&&(R=h.a.Md(F,w.ownerDocument),h.a.g.set(w,b,{lb:R,bb:F,jd:!0}))}return R}I=arguments[0],this.ab!==e&&this.text(""),h.a.g.set(w,b,{lb:I})},h.C.ia=function(w){this.F=w},h.C.ia.prototype=new h.C.F,h.C.ia.prototype.constructor=h.C.ia,h.C.ia.prototype.text=function(){if(arguments.length==0){var w=h.a.g.get(this.F,b)||{};return w.bb===e&&w.lb&&(w.bb=w.lb.innerHTML),w.bb}h.a.g.set(this.F,b,{bb:arguments[0]})},h.b("templateSources",h.C),h.b("templateSources.domElement",h.C.F),h.b("templateSources.anonymousTemplate",h.C.ia)}(),function(){function _(G,U,q){var Y;for(U=h.h.nextSibling(U);G&&(Y=G)!==U;)G=h.h.nextSibling(Y),q(Y,G)}function b(G,U){if(G.length){var q=G[0],Y=G[G.length-1],Q=q.parentNode,W=h.ga.instance,K=W.preprocessNode;if(K){if(_(q,Y,function(J,_e){var xe=J.previousSibling,se=K.call(W,J);se&&(J===q&&(q=se[0]||_e),J===Y&&(Y=se[se.length-1]||xe))}),G.length=0,!q)return;q===Y?G.push(q):(G.push(q,Y),h.a.Ua(G,Q))}_(q,Y,function(J){J.nodeType!==1&&J.nodeType!==8||h.vc(U,J)}),_(q,Y,function(J){J.nodeType!==1&&J.nodeType!==8||h.aa.cd(J,[U])}),h.a.Ua(G,Q)}}function w(G){return G.nodeType?G:0<G.length?G[0]:null}function I(G,U,q,Y,Q){Q=Q||{};var W=(G&&w(G)||q||{}).ownerDocument,K=Q.templateEngine||F;if(h.kc.xd(q,K,W),q=K.renderTemplate(q,Y,Q,W),typeof q.length!="number"||0<q.length&&typeof q[0].nodeType!="number")throw Error("Template engine must return an array of DOM nodes");switch(W=!1,U){case"replaceChildren":h.h.va(G,q),W=!0;break;case"replaceNode":h.a.Xc(G,q),W=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+U)}return W&&(b(q,Y),Q.afterRender&&h.u.G(Q.afterRender,null,[q,Y[Q.as||"$data"]]),U=="replaceChildren"&&h.i.ma(G,h.i.H)),q}function R(G,U,q){return h.O(G)?G():typeof G=="function"?G(U,q):G}var F;h.gc=function(G){if(G!=e&&!(G instanceof h.ca))throw Error("templateEngine must inherit from ko.templateEngine");F=G},h.dc=function(G,U,q,Y,Q){if(q=q||{},(q.templateEngine||F)==e)throw Error("Set a template engine before calling renderTemplate");if(Q=Q||"replaceChildren",Y){var W=w(Y);return h.$(function(){var J=U&&U instanceof h.fa?U:new h.fa(U,null,null,null,{exportDependencies:!0}),K=R(G,J.$data,J),J=I(Y,Q,K,J,q);Q=="replaceNode"&&(Y=J,W=w(Y))},null,{Sa:function(){return!W||!h.a.Sb(W)},l:W&&Q=="replaceNode"?W.parentNode:W})}return h.aa.Xb(function(K){h.dc(G,U,q,K,"replaceNode")})},h.Qd=function(G,U,q,Y,Q){function W(me,Se){h.u.G(h.a.ec,null,[Y,me,J,q,K,Se]),h.i.ma(Y,h.i.H)}function K(me,Se){b(Se,_e),q.afterRender&&q.afterRender(Se,me),_e=null}function J(me,Se){_e=Q.createChildContext(me,{as:xe,noChildContext:q.noChildContext,extend:function(Ue){Ue.$index=Se,xe&&(Ue[xe+"Index"]=Se)}});var Ie=R(G,me,_e);return I(Y,"ignoreTargetNode",Ie,_e,q)}var _e,xe=q.as,se=q.includeDestroyed===!1||h.options.foreachHidesDestroyed&&!q.includeDestroyed;if(se||q.beforeRemove||!h.Pc(U))return h.$(function(){var me=h.a.f(U)||[];typeof me.length>"u"&&(me=[me]),se&&(me=h.a.jb(me,function(Se){return Se===e||Se===null||!h.a.f(Se._destroy)})),W(me)},null,{l:Y});W(U.v());var Ae=U.subscribe(function(me){W(U(),me)},null,"arrayChange");return Ae.l(Y),Ae};var k=h.a.g.Z(),V=h.a.g.Z();h.c.template={init:function(G,U){var q=h.a.f(U());if(typeof q=="string"||"name"in q)h.h.Ea(G);else if("nodes"in q){if(q=q.nodes||[],h.O(q))throw Error('The "nodes" option must be a plain, non-observable array.');var Y=q[0]&&q[0].parentNode;Y&&h.a.g.get(Y,V)||(Y=h.a.Yb(q),h.a.g.set(Y,V,!0)),new h.C.ia(G).nodes(Y)}else if(q=h.h.childNodes(G),0<q.length)Y=h.a.Yb(q),new h.C.ia(G).nodes(Y);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:function(G,U,q,Y,Q){var W=U();U=h.a.f(W),q=!0,Y=null,typeof U=="string"?U={}:(W="name"in U?U.name:G,"if"in U&&(q=h.a.f(U.if)),q&&"ifnot"in U&&(q=!h.a.f(U.ifnot)),q&&!W&&(q=!1)),"foreach"in U?Y=h.Qd(W,q&&U.foreach||[],U,G,Q):q?(q=Q,"data"in U&&(q=Q.createChildContext(U.data,{as:U.as,noChildContext:U.noChildContext,exportDependencies:!0})),Y=h.dc(W,q,U,G)):h.h.Ea(G),Q=Y,(U=h.a.g.get(G,k))&&typeof U.s=="function"&&U.s(),h.a.g.set(G,k,!Q||Q.ja&&!Q.ja()?e:Q)}},h.m.Ra.template=function(G){return G=h.m.ac(G),G.length==1&&G[0].unknown||h.m.Id(G,"name")?null:"This template engine does not support anonymous templates nested within its templates"},h.h.ea.template=!0}(),h.b("setTemplateEngine",h.gc),h.b("renderTemplate",h.dc),h.a.Kc=function(_,b,w){if(_.length&&b.length){var I,R,F,k,V;for(I=R=0;(!w||I<w)&&(k=_[R]);++R){for(F=0;V=b[F];++F)if(k.value===V.value){k.moved=V.index,V.moved=k.index,b.splice(F,1),I=F=0;break}I+=F}}},h.a.Pb=function(){function _(b,w,I,R,F){var k=Math.min,V=Math.max,G=[],U,q=b.length,Y,Q=w.length,W=Q-q||1,K=q+Q+1,J,_e,xe;for(U=0;U<=q;U++)for(_e=J,G.push(J=[]),xe=k(Q,U+W),Y=V(0,U-1);Y<=xe;Y++)J[Y]=Y?U?b[U-1]===w[Y-1]?_e[Y-1]:k(_e[Y]||K,J[Y-1]||K)+1:Y+1:U+1;for(k=[],V=[],W=[],U=q,Y=Q;U||Y;)Q=G[U][Y]-1,Y&&Q===G[U][Y-1]?V.push(k[k.length]={status:I,value:w[--Y],index:Y}):U&&Q===G[U-1][Y]?W.push(k[k.length]={status:R,value:b[--U],index:U}):(--Y,--U,F.sparse||k.push({status:"retained",value:w[Y]}));return h.a.Kc(W,V,!F.dontLimitMoves&&10*q),k.reverse()}return function(b,w,I){return I=typeof I=="boolean"?{dontLimitMoves:I}:I||{},b=b||[],w=w||[],b.length<w.length?_(b,w,"added","deleted",I):_(w,b,"deleted","added",I)}}(),h.b("utils.compareArrays",h.a.Pb),function(){function _(I,R,F,k,V){var G=[],U=h.$(function(){var q=R(F,V,h.a.Ua(G,I))||[];0<G.length&&(h.a.Xc(G,q),k&&h.u.G(k,null,[F,q,V])),G.length=0,h.a.Nb(G,q)},null,{l:I,Sa:function(){return!h.a.kd(G)}});return{Y:G,$:U.ja()?U:e}}var b=h.a.g.Z(),w=h.a.g.Z();h.a.ec=function(I,R,F,k,V,G){function U(Wt){Ie={Aa:Wt,pb:h.ta(_e++)},K.push(Ie),W||Se.push(Ie)}function q(Wt){Ie=Q[Wt],_e!==Ie.pb.v()&&me.push(Ie),Ie.pb(_e++),h.a.Ua(Ie.Y,I),K.push(Ie)}function Y(Wt,Ze){if(Wt)for(var pe=0,Ee=Ze.length;pe<Ee;pe++)h.a.D(Ze[pe].Y,function(je){Wt(je,pe,Ze[pe].Aa)})}R=R||[],typeof R.length>"u"&&(R=[R]),k=k||{};var Q=h.a.g.get(I,b),W=!Q,K=[],J=0,_e=0,xe=[],se=[],Ae=[],me=[],Se=[],Ie,Ue=0;if(W)h.a.D(R,U);else{if(!G||Q&&Q._countWaitingForRemove){var Re=h.a.Mb(Q,function(Wt){return Wt.Aa});G=h.a.Pb(Re,R,{dontLimitMoves:k.dontLimitMoves,sparse:!0})}for(var Re=0,ke,ft,pt;ke=G[Re];Re++)switch(ft=ke.moved,pt=ke.index,ke.status){case"deleted":for(;J<pt;)q(J++);ft===e&&(Ie=Q[J],Ie.$&&(Ie.$.s(),Ie.$=e),h.a.Ua(Ie.Y,I).length&&(k.beforeRemove&&(K.push(Ie),Ue++,Ie.Aa===w?Ie=null:Ae.push(Ie)),Ie&&xe.push.apply(xe,Ie.Y))),J++;break;case"added":for(;_e<pt;)q(J++);ft!==e?(se.push(K.length),q(ft)):U(ke.value)}for(;_e<R.length;)q(J++);K._countWaitingForRemove=Ue}h.a.g.set(I,b,K),Y(k.beforeMove,me),h.a.D(xe,k.beforeRemove?h.oa:h.removeNode);var rt,un,Mn;try{Mn=I.ownerDocument.activeElement}catch{}if(se.length)for(;(Re=se.shift())!=e;){for(Ie=K[Re],rt=e;Re;)if((un=K[--Re].Y)&&un.length){rt=un[un.length-1];break}for(R=0;J=Ie.Y[R];rt=J,R++)h.h.Wb(I,J,rt)}for(Re=0;Ie=K[Re];Re++){for(Ie.Y||h.a.extend(Ie,_(I,F,Ie.Aa,V,Ie.pb)),R=0;J=Ie.Y[R];rt=J,R++)h.h.Wb(I,J,rt);!Ie.Ed&&V&&(V(Ie.Aa,Ie.Y,Ie.pb),Ie.Ed=!0,rt=Ie.Y[Ie.Y.length-1])}for(Mn&&I.ownerDocument.activeElement!=Mn&&Mn.focus(),Y(k.beforeRemove,Ae),Re=0;Re<Ae.length;++Re)Ae[Re].Aa=w;Y(k.afterMove,me),Y(k.afterAdd,Se)}}(),h.b("utils.setDomNodeChildrenFromArrayMapping",h.a.ec),h.ba=function(){this.allowTemplateRewriting=!1},h.ba.prototype=new h.ca,h.ba.prototype.constructor=h.ba,h.ba.prototype.renderTemplateSource=function(_,b,w,I){return(b=!(9>h.a.W)&&_.nodes?_.nodes():null)?h.a.la(b.cloneNode(!0).childNodes):(_=_.text(),h.a.ua(_,I))},h.ba.Ma=new h.ba,h.gc(h.ba.Ma),h.b("nativeTemplateEngine",h.ba),function(){h.$a=function(){var b=this.Hd=function(){if(!o||!o.tmpl)return 0;try{if(0<=o.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch{}return 1}();this.renderTemplateSource=function(w,I,R,F){if(F=F||n,R=R||{},2>b)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var k=w.data("precompiled");return k||(k=w.text()||"",k=o.template(null,"{{ko_with $item.koBindingContext}}"+k+"{{/ko_with}}"),w.data("precompiled",k)),w=[I.$data],I=o.extend({koBindingContext:I},R.templateOptions),I=o.tmpl(k,w,I),I.appendTo(F.createElement("div")),o.fragments={},I},this.createJavaScriptEvaluatorBlock=function(w){return"{{ko_code ((function() { return "+w+" })()) }}"},this.addTemplate=function(w,I){n.write("<script type='text/html' id='"+w+"'>"+I+"<\/script>")},0<b&&(o.tmpl.tag.ko_code={open:"__.push($1 || '');"},o.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},h.$a.prototype=new h.ca,h.$a.prototype.constructor=h.$a;var _=new h.$a;0<_.Hd&&h.gc(_),h.b("jqueryTmplTemplateEngine",h.$a)}()})})()})()})();var _gt=ko;typeof window<"u"?(ko=window.ko,typeof MI<"u"?window.ko=MI:delete window.ko):(ko=global.ko,typeof MI<"u"?global.ko=MI:delete global.ko);var Rb=_gt;/** + * @license + * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5 + * Copyright (c) Steve Sanderson + * MIT license + */var Fq="__knockoutObservables",Uq="__knockoutSubscribable";function gAe(e,t){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,i=yAe(e,!0);return t=t||Object.getOwnPropertyNames(e),t.forEach(function(o){if(!(o===Fq||o===Uq)&&!(o in i)){var r=e[o],s=r instanceof Array,a=n.isObservable(r)?r:s?n.observableArray(r):n.observable(r);Object.defineProperty(e,o,{configurable:!0,enumerable:!0,get:a,set:n.isWriteableObservable(a)?a:void 0}),i[o]=a,s&&ygt(n,a)}}),e}function yAe(e,t){var n=e[Fq];return!n&&t&&(n={},Object.defineProperty(e,Fq,{value:n})),n}function ggt(e,t,n){var i=this,o={owner:e,deferEvaluation:!0};if(typeof n=="function")o.read=n;else{if("value"in n)throw new Error('For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.');if(typeof n.get!="function")throw new Error('For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".');o.read=n.get,o.write=n.set}return e[t]=i.computed(o),gAe.call(i,e,[t]),e}function ygt(e,t){var n=null;e.computed(function(){n&&(n.dispose(),n=null);var i=t();i instanceof Array&&(n=Agt(e,t,i))})}function Agt(e,t,n){var i=xgt(e,n);return i.subscribe(t)}function xgt(e,t){var n=t[Uq];if(!n){n=new e.subscribable,Object.defineProperty(t,Uq,{value:n});var i={};Cgt(t,n,i),Tgt(e,t,n,i)}return n}function Cgt(e,t,n){["pop","push","reverse","shift","sort","splice","unshift"].forEach(function(i){var o=e[i];e[i]=function(){var r=o.apply(this,arguments);return n.pause!==!0&&t.notifySubscribers(this),r}})}function Tgt(e,t,n,i){["remove","removeAll","destroy","destroyAll","replace"].forEach(function(o){Object.defineProperty(t,o,{enumerable:!1,value:function(){var r;i.pause=!0;try{r=e.observableArray.fn[o].apply(e.observableArray(t),arguments)}finally{i.pause=!1}return n.notifySubscribers(t),r}})})}function AAe(e,t){if(!e)return null;var n=yAe(e,!1);return n&&n[t]||null}function Egt(e,t){var n=AAe(e,t);n&&n.valueHasMutated()}function bgt(e){e.track=gAe,e.getObservable=AAe,e.valueHasMutated=Egt,e.defineProperty=ggt}var Az={attachToKo:bgt};var xAe="http://www.w3.org/2000/svg",CAe="cesium-svgPath-svg",Sgt={register:function(e){e.bindingHandlers.cesiumSvgPath={init:function(t,n){let i=document.createElementNS(xAe,"svg:svg");i.setAttribute("class",CAe);let o=document.createElementNS(xAe,"path");return i.appendChild(o),e.virtualElements.setDomNodeChildren(t,[i]),e.computed({read:function(){let r=e.unwrap(n());o.setAttribute("d",e.unwrap(r.path));let s=e.unwrap(r.width),a=e.unwrap(r.height);i.setAttribute("width",s),i.setAttribute("height",a),i.setAttribute("viewBox",`0 0 ${s} ${a}`),r.css&&i.setAttribute("class",`${CAe} ${e.unwrap(r.css)}`)},disposeWhenNodeIsRemoved:t}),{controlsDescendantBindings:!0}}},e.virtualElements.allowedBindings.cesiumSvgPath=!0}},xz=Sgt;Az.attachToKo(Rb);xz.register(Rb);var Ce=Rb;function RI(e){l(e)||(e=new Bm),this._clock=e,this._eventHelper=new Mr,this._eventHelper.add(e.onTick,this.synchronize,this),this.systemTime=Ce.observable(ee.now()),this.systemTime.equalityComparer=ee.equals,this.startTime=Ce.observable(e.startTime),this.startTime.equalityComparer=ee.equals,this.startTime.subscribe(function(t){e.startTime=t,this.synchronize()},this),this.stopTime=Ce.observable(e.stopTime),this.stopTime.equalityComparer=ee.equals,this.stopTime.subscribe(function(t){e.stopTime=t,this.synchronize()},this),this.currentTime=Ce.observable(e.currentTime),this.currentTime.equalityComparer=ee.equals,this.currentTime.subscribe(function(t){e.currentTime=t,this.synchronize()},this),this.multiplier=Ce.observable(e.multiplier),this.multiplier.subscribe(function(t){e.multiplier=t,this.synchronize()},this),this.clockStep=Ce.observable(e.clockStep),this.clockStep.subscribe(function(t){e.clockStep=t,this.synchronize()},this),this.clockRange=Ce.observable(e.clockRange),this.clockRange.subscribe(function(t){e.clockRange=t,this.synchronize()},this),this.canAnimate=Ce.observable(e.canAnimate),this.canAnimate.subscribe(function(t){e.canAnimate=t,this.synchronize()},this),this.shouldAnimate=Ce.observable(e.shouldAnimate),this.shouldAnimate.subscribe(function(t){e.shouldAnimate=t,this.synchronize()},this),Ce.track(this,["systemTime","startTime","stopTime","currentTime","multiplier","clockStep","clockRange","canAnimate","shouldAnimate"])}Object.defineProperties(RI.prototype,{clock:{get:function(){return this._clock}}});RI.prototype.synchronize=function(){let e=this._clock;this.systemTime=ee.now(),this.startTime=e.startTime,this.stopTime=e.stopTime,this.currentTime=e.currentTime,this.multiplier=e.multiplier,this.clockStep=e.clockStep,this.clockRange=e.clockRange,this.canAnimate=e.canAnimate,this.shouldAnimate=e.shouldAnimate};RI.prototype.isDestroyed=function(){return!1};RI.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var Cz=RI;function wgt(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,fe.throwInstantiationError()}var TAe=wgt;var BI={};BI.createCheckbox=function(e,t,n){let i=document.createElement("div"),o=document.createElement("label"),r=document.createElement("input");r.type="checkbox";let s=`checked: ${t}`;return l(n)&&(s+=`, enable: ${n}`),r.setAttribute("data-bind",s),o.appendChild(r),o.appendChild(document.createTextNode(e)),i.appendChild(o),i};BI.createSection=function(e,t,n,i){let o=document.createElement("div");o.className="cesium-cesiumInspector-section",o.setAttribute("data-bind",`css: { "cesium-cesiumInspector-section-collapsed": !${n} }`),e.appendChild(o);let r=document.createElement("h3");r.className="cesium-cesiumInspector-sectionHeader",r.appendChild(document.createTextNode(t)),r.setAttribute("data-bind",`click: ${i}`),o.appendChild(r);let s=document.createElement("div");return s.className="cesium-cesiumInspector-sectionContent",o.appendChild(s),s};BI.createRangeInput=function(e,t,n,i,o,r){r=y(r,t);let s=document.createElement("input");s.setAttribute("data-bind",`value: ${r}`),s.type="number";let a=document.createElement("input");a.type="range",a.min=n,a.max=i,a.step=y(o,"any"),a.setAttribute("data-bind",`valueUpdate: "input", value: ${t}`);let c=document.createElement("div");c.appendChild(a);let u=document.createElement("div");return u.className="cesium-cesiumInspector-slider",u.appendChild(document.createTextNode(e)),u.appendChild(s),u.appendChild(c),u};BI.createButton=function(e,t,n){let i=document.createElement("button");i.type="button",i.textContent=e,i.className="cesium-cesiumInspector-pickButton";let o=`click: ${t}`;return l(n)&&(o+=`, css: {"cesium-cesiumInspector-pickButtonHighlight" : ${n}}`),i.setAttribute("data-bind",o),i};var tc=BI;function EAe(e,t){this._command=e,t=y(t,y.EMPTY_OBJECT),this.toggled=y(t.toggled,!1),this.tooltip=y(t.tooltip,""),Ce.track(this,["toggled","tooltip"])}Object.defineProperties(EAe.prototype,{command:{get:function(){return this._command}}});var cx=EAe;function vgt(e,t){t=y(t,!0);let n=new ge,i=new ge;function o(){let r={args:arguments,cancel:!1},s;return n.raiseEvent(r),r.cancel||(s=e.apply(null,arguments),i.raiseEvent(s)),s}return o.canExecute=t,Ce.track(o,["canExecute"]),Object.defineProperties(o,{beforeExecute:{value:n},afterExecute:{value:i}}),o}var Sn=vgt;function Dgt(e,t,n,i,o){return n.call(i,e[t]),Ce.getObservable(e,t).subscribe(n,i,o)}var xa=Dgt;var lx="http://www.w3.org/2000/svg",wAe="http://www.w3.org/1999/xlink",Tz,LI=z.fromCssColorString("rgba(247,250,255,0.384)"),Ez=z.fromCssColorString("rgba(143,191,255,0.216)"),Vq=z.fromCssColorString("rgba(153,197,255,0.098)"),bz=z.fromCssColorString("rgba(255,255,255,0.086)"),Igt=z.fromCssColorString("rgba(255,255,255,0.267)"),Pgt=z.fromCssColorString("rgba(255,255,255,0)"),bAe=z.fromCssColorString("rgba(66,67,68,0.3)"),SAe=z.fromCssColorString("rgba(0,0,0,0.5)");function Ry(e){return z.fromCssColorString(window.getComputedStyle(e).getPropertyValue("color"))}var NI={animation_pathReset:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z"},animation_pathPause:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M13,5.5,7.5,5.5,7.5,25.5,13,25.5zM24.5,5.5,19,5.5,19,25.5,24.5,25.5z"},animation_pathPlay:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathPlayReverse:{tagName:"path",transform:"translate(16,16) scale(-0.85,0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathLoop:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z"},animation_pathClock:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-15.5)",d:"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z"},animation_pathWingButton:{tagName:"path",d:"m 4.5,0.5 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 13.71875,0 C 22.478584,27.272785 27.273681,22.511272 32.5,18.25 l 0,-13.75 c 0,-2.216 -1.784,-4 -4,-4 l -24,0 z"},animation_pathPointer:{tagName:"path",d:"M-15,-65,-15,-55,15,-55,15,-65,0,-95z"},animation_pathSwooshFX:{tagName:"path",d:"m 85,0 c 0,16.617 -4.813944,35.356 -13.131081,48.4508 h 6.099803 c 8.317138,-13.0948 13.13322,-28.5955 13.13322,-45.2124 0,-46.94483 -38.402714,-85.00262 -85.7743869,-85.00262 -1.0218522,0 -2.0373001,0.0241 -3.0506131,0.0589 45.958443,1.59437 82.723058,35.77285 82.723058,81.70532 z"}};function Wd(e){let t=document.createElementNS(lx,e.tagName);for(let n in e)if(e.hasOwnProperty(n)&&n!=="tagName")if(n==="children"){let i=e.children.length;for(let o=0;o<i;++o)t.appendChild(Wd(e.children[o]))}else n.indexOf("xlink:")===0?t.setAttributeNS(wAe,n.substring(6),e[n]):n==="textContent"?t.textContent=e[n]:t.setAttribute(n,e[n]);return t}function kq(e,t,n){let i=document.createElementNS(lx,"text");i.setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("class","cesium-animation-svgText");let o=document.createElementNS(lx,"tspan");return o.textContent=n,i.appendChild(o),i}function Ogt(e,t,n){e.setAttribute("transform",`translate(100,100) rotate(${n})`),t.setAttribute("transform",`rotate(${n})`)}var Sz=new z;function Vr(e,t){let n=t.alpha,i=1-n;return Sz.red=e.red*i+t.red*n,Sz.green=e.green*i+t.green*n,Sz.blue=e.blue*i+t.blue*n,Sz.toCssColorString()}function zq(e,t,n){let i=NI[n],o={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{tagName:"rect",class:"cesium-animation-buttonGlow",width:32,height:32,rx:2,ry:2},{tagName:"rect",class:"cesium-animation-buttonMain",width:32,height:32,rx:4,ry:4},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return Wd(o)}function Mgt(e,t,n){let i=NI[n],o=NI.animation_pathWingButton,r={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{class:"cesium-animation-buttonGlow",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonMain",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return Wd(r)}function Rgt(e,t){let n=e._viewModel,i=n.shuttleRingDragging;if(!(i&&Tz!==e))if(t.type==="mousedown"||i&&t.type==="mousemove"||t.type==="touchstart"&&t.touches.length===1||i&&t.type==="touchmove"&&t.touches.length===1){let o=e._centerX,r=e._centerY,a=e._svgNode.getBoundingClientRect(),c,u;if(t.type==="touchstart"||t.type==="touchmove"?(c=t.touches[0].clientX,u=t.touches[0].clientY):(c=t.clientX,u=t.clientY),!i&&(c>a.right||c<a.left||u<a.top||u>a.bottom))return;let f=e._shuttleRingPointer.getBoundingClientRect(),d=c-o-a.left,p=u-r-a.top,g=Math.atan2(p,d)*180/Math.PI+90;g>180&&(g-=360);let h=n.shuttleRingAngle;i||c<f.right&&c>f.left&&u>f.top&&u<f.bottom?(Tz=e,n.shuttleRingDragging=!0,n.shuttleRingAngle=g):g<h?n.slower():g>h&&n.faster(),t.preventDefault()}else e===Tz&&(Tz=void 0),n.shuttleRingDragging=!1}function Qp(e,t){this._viewModel=t,this.svgElement=e,this._enabled=void 0,this._toggled=void 0;let n=this;this._clickFunction=function(){let i=n._viewModel.command;i.canExecute&&i()},e.addEventListener("click",this._clickFunction,!0),this._subscriptions=[xa(t,"toggled",this.setToggled,this),xa(t,"tooltip",this.setTooltip,this),xa(t.command,"canExecute",this.setEnabled,this)]}Qp.prototype.destroy=function(){this.svgElement.removeEventListener("click",this._clickFunction,!0);let e=this._subscriptions;for(let t=0,n=e.length;t<n;t++)e[t].dispose();ue(this)};Qp.prototype.isDestroyed=function(){return!1};Qp.prototype.setEnabled=function(e){if(this._enabled!==e){if(this._enabled=e,!e){this.svgElement.setAttribute("class","cesium-animation-buttonDisabled");return}if(this._toggled){this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled");return}this.svgElement.setAttribute("class","cesium-animation-rectButton")}};Qp.prototype.setToggled=function(e){this._toggled!==e&&(this._toggled=e,this._enabled&&(e?this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled"):this.svgElement.setAttribute("class","cesium-animation-rectButton")))};Qp.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e};function Bb(e,t){e=On(e),this._viewModel=t,this._container=e,this._centerX=0,this._centerY=0,this._defsElement=void 0,this._svgNode=void 0,this._topG=void 0,this._lastHeight=void 0,this._lastWidth=void 0;let n=e.ownerDocument,i=document.createElement("style");i.textContent=".cesium-animation-rectButton .cesium-animation-buttonGlow { filter: url(#animation_blurred); }.cesium-animation-rectButton .cesium-animation-buttonMain { fill: url(#animation_buttonNormal); }.cesium-animation-buttonToggled .cesium-animation-buttonMain { fill: url(#animation_buttonToggled); }.cesium-animation-rectButton:hover .cesium-animation-buttonMain { fill: url(#animation_buttonHovered); }.cesium-animation-buttonDisabled .cesium-animation-buttonMain { fill: url(#animation_buttonDisabled); }.cesium-animation-shuttleRingG .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshGradient); }.cesium-animation-shuttleRingG:hover .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshHovered); }.cesium-animation-shuttleRingPointer { fill: url(#animation_shuttleRingPointerGradient); }.cesium-animation-shuttleRingPausePointer { fill: url(#animation_shuttleRingPointerPaused); }.cesium-animation-knobOuter { fill: url(#animation_knobOuter); }.cesium-animation-knobInner { fill: url(#animation_knobInner); }",n.head.insertBefore(i,n.head.childNodes[0]);let o=document.createElement("div");o.className="cesium-animation-theme",o.innerHTML='<div class="cesium-animation-themeNormal"></div><div class="cesium-animation-themeHover"></div><div class="cesium-animation-themeSelect"></div><div class="cesium-animation-themeDisabled"></div><div class="cesium-animation-themeKnob"></div><div class="cesium-animation-themePointer"></div><div class="cesium-animation-themeSwoosh"></div><div class="cesium-animation-themeSwooshHover"></div>',this._theme=o,this._themeNormal=o.childNodes[0],this._themeHover=o.childNodes[1],this._themeSelect=o.childNodes[2],this._themeDisabled=o.childNodes[3],this._themeKnob=o.childNodes[4],this._themePointer=o.childNodes[5],this._themeSwoosh=o.childNodes[6],this._themeSwooshHover=o.childNodes[7];let r=document.createElementNS(lx,"svg:svg");this._svgNode=r,r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",wAe);let s=document.createElementNS(lx,"g");this._topG=s,this._realtimeSVG=new Qp(Mgt(3,4,"animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new Qp(zq(44,99,"animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new Qp(zq(124,99,"animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new Qp(zq(84,99,"animation_pathPause"),t.pauseViewModel);let a=document.createElementNS(lx,"g");a.appendChild(this._realtimeSVG.svgElement),a.appendChild(this._playReverseSVG.svgElement),a.appendChild(this._playForwardSVG.svgElement),a.appendChild(this._pauseSVG.svgElement);let c=Wd({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=c;let u=NI.animation_pathSwooshFX,f=NI.animation_pathPointer,d=Wd({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:u.tagName,transform:"translate(100,97) scale(-1,1)",id:"animation_pathSwooshFX",d:u.d},{tagName:u.tagName,transform:"translate(100,97)",id:"animation_pathSwooshFX",d:u.d},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=d,this._shuttleRingPointer=Wd({class:"cesium-animation-shuttleRingPointer",id:"animation_pathPointer",tagName:f.tagName,d:f.d});let p=Wd({tagName:"g",transform:"translate(100,100)"});this._knobOuter=Wd({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});let g=61,h=Wd({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:g});this._knobDate=kq(0,-24,""),this._knobTime=kq(0,-7,""),this._knobStatus=kq(0,-41,"");let A=Wd({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:g}),x=document.createElementNS(lx,"g");x.setAttribute("class","cesium-animation-shuttleRingG"),e.appendChild(o),s.appendChild(x),s.appendChild(p),s.appendChild(a),x.appendChild(c),x.appendChild(d),x.appendChild(this._shuttleRingPointer),p.appendChild(this._knobOuter),p.appendChild(h),p.appendChild(this._knobDate),p.appendChild(this._knobTime),p.appendChild(this._knobStatus),p.appendChild(A),r.appendChild(s),e.appendChild(r);let C=this;function T(O){Rgt(C,O)}this._mouseCallback=T,c.addEventListener("mousedown",T,!0),c.addEventListener("touchstart",T,!0),d.addEventListener("mousedown",T,!0),d.addEventListener("touchstart",T,!0),n.addEventListener("mousemove",T,!0),n.addEventListener("touchmove",T,!0),n.addEventListener("mouseup",T,!0),n.addEventListener("touchend",T,!0),n.addEventListener("touchcancel",T,!0),this._shuttleRingPointer.addEventListener("mousedown",T,!0),this._shuttleRingPointer.addEventListener("touchstart",T,!0),this._knobOuter.addEventListener("mousedown",T,!0),this._knobOuter.addEventListener("touchstart",T,!0);let E=this._knobTime.childNodes[0],S=this._knobDate.childNodes[0],v=this._knobStatus.childNodes[0],D;this._subscriptions=[xa(t.pauseViewModel,"toggled",function(O){D!==O&&(D=O,D?C._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):C._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),xa(t,"shuttleRingAngle",function(O){Ogt(C._shuttleRingPointer,C._knobOuter,O)}),xa(t,"dateLabel",function(O){S.textContent!==O&&(S.textContent=O)}),xa(t,"timeLabel",function(O){E.textContent!==O&&(E.textContent=O)}),xa(t,"multiplierLabel",function(O){v.textContent!==O&&(v.textContent=O)})],this.applyThemeChanges(),this.resize()}Object.defineProperties(Bb.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});Bb.prototype.isDestroyed=function(){return!1};Bb.prototype.destroy=function(){l(this._observer)&&(this._observer.disconnect(),this._observer=void 0);let e=this._container.ownerDocument,t=this._mouseCallback;this._shuttleRingBackPanel.removeEventListener("mousedown",t,!0),this._shuttleRingBackPanel.removeEventListener("touchstart",t,!0),this._shuttleRingSwooshG.removeEventListener("mousedown",t,!0),this._shuttleRingSwooshG.removeEventListener("touchstart",t,!0),e.removeEventListener("mousemove",t,!0),e.removeEventListener("touchmove",t,!0),e.removeEventListener("mouseup",t,!0),e.removeEventListener("touchend",t,!0),e.removeEventListener("touchcancel",t,!0),this._shuttleRingPointer.removeEventListener("mousedown",t,!0),this._shuttleRingPointer.removeEventListener("touchstart",t,!0),this._knobOuter.removeEventListener("mousedown",t,!0),this._knobOuter.removeEventListener("touchstart",t,!0),this._container.removeChild(this._svgNode),this._container.removeChild(this._theme),this._realtimeSVG.destroy(),this._playReverseSVG.destroy(),this._playForwardSVG.destroy(),this._pauseSVG.destroy();let n=this._subscriptions;for(let i=0,o=n.length;i<o;i++)n[i].dispose();return ue(this)};Bb.prototype.resize=function(){let e=this._container.clientWidth,t=this._container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;let n=this._svgNode,i=200,o=132,r=e,s=t;e===0&&t===0?(r=i,s=o):e===0?(s=t,r=i*(t/o)):t===0&&(r=e,s=o*(e/i));let a=r/i,c=s/o;n.style.cssText=`width: ${r}px; height: ${s}px; position: absolute; bottom: 0; left: 0; overflow: hidden;`,n.setAttribute("width",r),n.setAttribute("height",s),n.setAttribute("viewBox",`0 0 ${r} ${s}`),this._topG.setAttribute("transform",`scale(${a},${c})`),this._centerX=Math.max(1,100*a),this._centerY=Math.max(1,100*c),this._lastHeight=e,this._lastWidth=t};Bb.prototype.applyThemeChanges=function(){let e=this._container.ownerDocument;if(!e.body.contains(this._container)){if(l(this._observer))return;let f=this;f._observer=new MutationObserver(function(){e.body.contains(f._container)&&(f._observer.disconnect(),f._observer=void 0,f.applyThemeChanges())}),f._observer.observe(e,{childList:!0,subtree:!0});return}let t=Ry(this._themeNormal),n=Ry(this._themeHover),i=Ry(this._themeSelect),o=Ry(this._themeDisabled),r=Ry(this._themeKnob),s=Ry(this._themePointer),a=Ry(this._themeSwoosh),c=Ry(this._themeSwooshHover),u=Wd({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Vr(t,LI)},{tagName:"stop",offset:"12%","stop-color":Vr(t,Ez)},{tagName:"stop",offset:"46%","stop-color":Vr(t,Vq)},{tagName:"stop",offset:"81%","stop-color":Vr(t,bz)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Vr(n,LI)},{tagName:"stop",offset:"12%","stop-color":Vr(n,Ez)},{tagName:"stop",offset:"46%","stop-color":Vr(n,Vq)},{tagName:"stop",offset:"81%","stop-color":Vr(n,bz)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Vr(i,LI)},{tagName:"stop",offset:"12%","stop-color":Vr(i,Ez)},{tagName:"stop",offset:"46%","stop-color":Vr(i,Vq)},{tagName:"stop",offset:"81%","stop-color":Vr(i,bz)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":Vr(o,Igt)},{tagName:"stop",offset:"75%","stop-color":Vr(o,Pgt)}]},{id:"animation_blurred",tagName:"filter",width:"200%",height:"200%",x:"-50%",y:"-50%",children:[{tagName:"feGaussianBlur",stdDeviation:4,in:"SourceGraphic"}]},{id:"animation_shuttleRingSwooshGradient",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":a.toCssColorString()}]},{id:"animation_shuttleRingSwooshHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":c.toCssColorString()}]},{id:"animation_shuttleRingPointerGradient",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"40%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"60%","stop-color":Vr(s,SAe)},{tagName:"stop",offset:"100%","stop-color":Vr(s,SAe)}]},{id:"animation_shuttleRingPointerPaused",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":"#CCC"},{tagName:"stop",offset:"40%","stop-color":"#CCC"},{tagName:"stop",offset:"60%","stop-color":"#555"},{tagName:"stop",offset:"100%","stop-color":"#555"}]},{id:"animation_knobOuter",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Vr(r,LI)},{tagName:"stop",offset:"60%","stop-color":Vr(r,bAe)},{tagName:"stop",offset:"85%","stop-color":Vr(r,Ez)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":Vr(r,bAe)},{tagName:"stop",offset:"60%","stop-color":Vr(r,LI)},{tagName:"stop",offset:"85%","stop-color":Vr(r,bz)}]}]});l(this._defsElement)?this._svgNode.replaceChild(u,this._defsElement):this._svgNode.appendChild(u),this._defsElement=u};var wz=Bb;var Bgt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],By=15,Lb=105;function vAe(e,t){return e-t}function Hq(e,t){let n=Do(t,e,vAe);return n<0?~n:n}function Lgt(e,t){if(Math.abs(e)<=By)return e/By;let n=By,i=Lb,o,r=0,s;return e>0?(o=Math.log(t[t.length-1]),s=(o-r)/(i-n),Math.exp(r+s*(e-n))):(o=Math.log(-t[0]),s=(o-r)/(i-n),-Math.exp(r+s*(Math.abs(e)-n)))}function Ngt(e,t,n){if(n.clockStep===go.SYSTEM_CLOCK)return By;if(Math.abs(e)<=1)return e*By;let i=t[t.length-1];e>i?e=i:e<-i&&(e=-i);let o=By,r=Lb,s,a=0,c;return e>0?(s=Math.log(i),c=(s-a)/(r-o),(Math.log(e)-a)/c+o):(s=Math.log(-t[0]),c=(s-a)/(r-o),-((Math.log(Math.abs(e))-a)/c+o))}function Ef(e){let t=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=Ef.defaultDateFormatter,this._timeFormatter=Ef.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,Ce.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(Ef.defaultTicks),this.timeLabel=void 0,Ce.defineProperty(this,"timeLabel",function(){return t._timeFormatter(t._clockViewModel.currentTime,t)}),this.dateLabel=void 0,Ce.defineProperty(this,"dateLabel",function(){return t._dateFormatter(t._clockViewModel.currentTime,t)}),this.multiplierLabel=void 0,Ce.defineProperty(this,"multiplierLabel",function(){let s=t._clockViewModel;if(s.clockStep===go.SYSTEM_CLOCK)return"Today";let a=s.multiplier;return a%1===0?`${a.toFixed(0)}x`:`${a.toFixed(3).replace(/0{0,3}$/,"")}x`}),this.shuttleRingAngle=void 0,Ce.defineProperty(this,"shuttleRingAngle",{get:function(){return Ngt(e.multiplier,t._allShuttleRingTicks,e)},set:function(s){s=Math.max(Math.min(s,Lb),-Lb);let a=t._allShuttleRingTicks,c=t._clockViewModel;if(c.clockStep=go.SYSTEM_CLOCK_MULTIPLIER,Math.abs(s)===Lb){c.multiplier=s>0?a[a.length-1]:a[0];return}let u=Lgt(s,a);if(t.snapToTicks)u=a[Hq(u,a)];else if(u!==0){let f=Math.abs(u);if(f>100){let d=f.toFixed(0).length-2,p=Math.pow(10,d);u=Math.round(u/p)*p|0}else f>By?u=Math.round(u):f>1?u=+u.toFixed(1):f>0&&(u=+u.toFixed(2))}c.multiplier=u}}),this._canAnimate=void 0,Ce.defineProperty(this,"_canAnimate",function(){let s=t._clockViewModel,a=s.clockRange;if(t.shuttleRingDragging||a===Lr.UNBOUNDED)return!0;let c=s.multiplier,u=s.currentTime,f=s.startTime,d=!1;if(a===Lr.LOOP_STOP)d=ee.greaterThan(u,f)||u.equals(f)&&c>0;else{let p=s.stopTime;d=ee.greaterThan(u,f)&&ee.lessThan(u,p)||u.equals(f)&&c>0||u.equals(p)&&c<0}return d||(s.shouldAnimate=!1),d}),this._isSystemTimeAvailable=void 0,Ce.defineProperty(this,"_isSystemTimeAvailable",function(){let s=t._clockViewModel;if(s.clockRange===Lr.UNBOUNDED)return!0;let c=s.systemTime;return ee.greaterThanOrEquals(c,s.startTime)&&ee.lessThanOrEquals(c,s.stopTime)}),this._isAnimating=void 0,Ce.defineProperty(this,"_isAnimating",function(){return t._clockViewModel.shouldAnimate&&(t._canAnimate||t.shuttleRingDragging)});let n=Sn(function(){let s=t._clockViewModel;s.shouldAnimate?s.shouldAnimate=!1:t._canAnimate&&(s.shouldAnimate=!0)});this._pauseViewModel=new cx(n,{toggled:Ce.computed(function(){return!t._isAnimating}),tooltip:"Pause"});let i=Sn(function(){let s=t._clockViewModel,a=s.multiplier;a>0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playReverseViewModel=new cx(i,{toggled:Ce.computed(function(){return t._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});let o=Sn(function(){let s=t._clockViewModel,a=s.multiplier;a<0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playForwardViewModel=new cx(o,{toggled:Ce.computed(function(){return t._isAnimating&&e.multiplier>0&&e.clockStep!==go.SYSTEM_CLOCK}),tooltip:"Play Forward"});let r=Sn(function(){t._clockViewModel.clockStep=go.SYSTEM_CLOCK},Ce.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new cx(r,{toggled:Ce.computed(function(){return e.clockStep===go.SYSTEM_CLOCK}),tooltip:Ce.computed(function(){return t._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=Sn(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,u=Hq(c,a)-1;u>=0&&(s.multiplier=a[u])}),this._faster=Sn(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,u=Hq(c,a)+1;u<a.length&&(s.multiplier=a[u])})}Ef.defaultDateFormatter=function(e,t){let n=ee.toGregorianDate(e);return`${Bgt[n.month-1]} ${n.day} ${n.year}`};Ef.defaultTicks=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800];Ef.defaultTimeFormatter=function(e,t){let n=ee.toGregorianDate(e),i=Math.round(n.millisecond);return Math.abs(t._clockViewModel.multiplier)<1?`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")}.${i.toString().padStart(3,"0")}`:`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")} UTC`};Ef.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)};Ef.prototype.setShuttleRingTicks=function(e){let t,n,i,o={},r=this._sortedFilteredPositiveTicks;for(r.length=0,t=0,n=e.length;t<n;++t)i=e[t],o.hasOwnProperty(i)||(o[i]=!0,r.push(i));r.sort(vAe);let s=[];for(n=r.length,t=n-1;t>=0;--t)i=r[t],i!==0&&s.push(-i);Array.prototype.push.apply(s,r),this._allShuttleRingTicks=s};Object.defineProperties(Ef.prototype,{slower:{get:function(){return this._slower}},faster:{get:function(){return this._faster}},clockViewModel:{get:function(){return this._clockViewModel}},pauseViewModel:{get:function(){return this._pauseViewModel}},playReverseViewModel:{get:function(){return this._playReverseViewModel}},playForwardViewModel:{get:function(){return this._playForwardViewModel}},playRealtimeViewModel:{get:function(){return this._playRealtimeViewModel}},dateFormatter:{get:function(){return this._dateFormatter},set:function(e){this._dateFormatter=e}},timeFormatter:{get:function(){return this._timeFormatter},set:function(e){this._timeFormatter=e}}});Ef._maxShuttleRingAngle=Lb;Ef._realtimeShuttleRingAngle=By;var vz=Ef;function DAe(e){e=y(e,y.EMPTY_OBJECT);let t=e.globe,n=y(e.imageryProviderViewModels,[]),i=y(e.terrainProviderViewModels,[]);this._globe=t,this.imageryProviderViewModels=n.slice(0),this.terrainProviderViewModels=i.slice(0),this.dropDownVisible=!1,Ce.track(this,["imageryProviderViewModels","terrainProviderViewModels","dropDownVisible"]);let o=Ce.getObservable(this,"imageryProviderViewModels"),r=Ce.pureComputed(function(){let d=o(),p={},g;for(g=0;g<d.length;g++){let x=d[g],C=x.category;l(p[C])?p[C].push(x):p[C]=[x]}let h=Object.keys(p),A=[];for(g=0;g<h.length;g++){let x=h[g];A.push({name:x,providers:p[x]})}return A});this._imageryProviders=r;let s=Ce.getObservable(this,"terrainProviderViewModels"),a=Ce.pureComputed(function(){let d=s(),p={},g;for(g=0;g<d.length;g++){let x=d[g],C=x.category;l(p[C])?p[C].push(x):p[C]=[x]}let h=Object.keys(p),A=[];for(g=0;g<h.length;g++){let x=h[g];A.push({name:x,providers:p[x]})}return A});this._terrainProviders=a,this.buttonTooltip=void 0,Ce.defineProperty(this,"buttonTooltip",function(){let d=this.selectedImagery,p=this.selectedTerrain,g=l(d)?d.name:void 0,h=l(p)?p.name:void 0;return l(g)&&l(h)?`${g} +${h}`:l(g)?g:h}),this.buttonImageUrl=void 0,Ce.defineProperty(this,"buttonImageUrl",function(){let d=this.selectedImagery;if(l(d))return d.iconUrl}),this.selectedImagery=void 0;let c=Ce.observable();this._currentImageryLayers=[],Ce.defineProperty(this,"selectedImagery",{get:function(){return c()},set:function(d){if(c()===d){this.dropDownVisible=!1;return}let p,g=this._currentImageryLayers,h=g.length,A=this._globe.imageryLayers,x=!1;for(p=0;p<h;p++){let C=A.length;for(let T=0;T<C;T++){let E=A.get(T);if(E===g[p]){A.remove(E),x=!0;break}}}if(l(d)){let C=d.creationCommand();if(Array.isArray(C)){let T=C.length;for(this._currentImageryLayers=[],p=T-1;p>=0;p--){let E=Qs.fromProviderAsync(C[p]);A.add(E,0),this._currentImageryLayers.push(E)}}else{this._currentImageryLayers=[];let T=Qs.fromProviderAsync(C);if(T.name=d.name,x)A.add(T,0);else{let E=A.get(0);l(E)&&A.remove(E),A.add(T,0)}this._currentImageryLayers.push(T)}}c(d),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;let u=Ce.observable();Ce.defineProperty(this,"selectedTerrain",{get:function(){return u()},set:function(d){if(u()===d){this.dropDownVisible=!1;return}let p;l(d)&&(p=d.creationCommand());let g=!1,h=this._globe.terrainProviderChanged.addEventListener(()=>{g=!0,h()}),x=new F4(Promise.resolve(p)).readyEvent.addEventListener(C=>{g||(this._globe.depthTestAgainstTerrain=!(C instanceof iy),this._globe.terrainProvider=C,x())});u(d),this.dropDownVisible=!1}});let f=this;this._toggleDropDown=Sn(function(){f.dropDownVisible=!f.dropDownVisible}),this.selectedImagery=y(e.selectedImageryProviderViewModel,n[0]),this.selectedTerrain=y(e.selectedTerrainProviderViewModel,i[0])}Object.defineProperties(DAe.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}});var Dz=DAe;function Iz(e,t){e=On(e);let n=new Dz(t),i=document.createElement("button");i.type="button",i.className="cesium-button cesium-toolbar-button",i.setAttribute("data-bind","attr: { title: buttonTooltip },click: toggleDropDown"),e.appendChild(i);let o=document.createElement("img");o.setAttribute("draggable","false"),o.className="cesium-baseLayerPicker-selected",o.setAttribute("data-bind","attr: { src: buttonImageUrl }, visible: !!buttonImageUrl"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-baseLayerPicker-dropDown",r.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-dropDown-visible" : dropDownVisible }'),e.appendChild(r);let s=document.createElement("div");s.className="cesium-baseLayerPicker-sectionTitle",s.setAttribute("data-bind","visible: imageryProviderViewModels.length > 0"),s.innerHTML="Imagery",r.appendChild(s);let a=document.createElement("div");a.className="cesium-baseLayerPicker-section",a.setAttribute("data-bind","foreach: _imageryProviders"),r.appendChild(a);let c=document.createElement("div");c.className="cesium-baseLayerPicker-category",a.appendChild(c);let u=document.createElement("div");u.className="cesium-baseLayerPicker-categoryTitle",u.setAttribute("data-bind","text: name"),c.appendChild(u);let f=document.createElement("div");f.className="cesium-baseLayerPicker-choices",f.setAttribute("data-bind","foreach: providers"),c.appendChild(f);let d=document.createElement("div");d.className="cesium-baseLayerPicker-item",d.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedImagery },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedImagery = $data; }'),f.appendChild(d);let p=document.createElement("img");p.className="cesium-baseLayerPicker-itemIcon",p.setAttribute("data-bind","attr: { src: iconUrl }"),p.setAttribute("draggable","false"),d.appendChild(p);let g=document.createElement("div");g.className="cesium-baseLayerPicker-itemLabel",g.setAttribute("data-bind","text: name"),d.appendChild(g);let h=document.createElement("div");h.className="cesium-baseLayerPicker-sectionTitle",h.setAttribute("data-bind","visible: terrainProviderViewModels.length > 0"),h.innerHTML="Terrain",r.appendChild(h);let A=document.createElement("div");A.className="cesium-baseLayerPicker-section",A.setAttribute("data-bind","foreach: _terrainProviders"),r.appendChild(A);let x=document.createElement("div");x.className="cesium-baseLayerPicker-category",A.appendChild(x);let C=document.createElement("div");C.className="cesium-baseLayerPicker-categoryTitle",C.setAttribute("data-bind","text: name"),x.appendChild(C);let T=document.createElement("div");T.className="cesium-baseLayerPicker-choices",T.setAttribute("data-bind","foreach: providers"),x.appendChild(T);let E=document.createElement("div");E.className="cesium-baseLayerPicker-item",E.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),T.appendChild(E);let S=document.createElement("img");S.className="cesium-baseLayerPicker-itemIcon",S.setAttribute("data-bind","attr: { src: iconUrl }"),S.setAttribute("draggable","false"),E.appendChild(S);let v=document.createElement("div");v.className="cesium-baseLayerPicker-itemLabel",v.setAttribute("data-bind","text: name"),E.appendChild(v),Ce.applyBindings(n,i),Ce.applyBindings(n,r),this._viewModel=n,this._container=e,this._element=i,this._dropPanel=r,this._closeDropDown=function(D){i.contains(D.target)||r.contains(D.target)||(n.dropDownVisible=!1)},Gt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(Iz.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});Iz.prototype.isDestroyed=function(){return!1};Iz.prototype.destroy=function(){return Gt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Ce.cleanNode(this._element),Ce.cleanNode(this._dropPanel),this._container.removeChild(this._element),this._container.removeChild(this._dropPanel),ue(this)};var Pz=Iz;function IAe(e){let t=e.creationFunction;l(t.canExecute)||(t=Sn(t)),this._creationCommand=t,this.name=e.name,this.tooltip=e.tooltip,this.iconUrl=e.iconUrl,this._category=y(e.category,""),Ce.track(this,["name","tooltip","iconUrl"])}Object.defineProperties(IAe.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}});var ws=IAe;function Fgt(){let e=[];return e.push(new ws({name:"Bing Maps Aerial",iconUrl:en("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return ay({style:ih.AERIAL})}})),e.push(new ws({name:"Bing Maps Aerial with Labels",iconUrl:en("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return ay({style:ih.AERIAL_WITH_LABELS})}})),e.push(new ws({name:"Bing Maps Roads",iconUrl:en("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return ay({style:ih.ROAD})}})),e.push(new ws({name:"ArcGIS World Imagery",iconUrl:en("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png"),tooltip:`ArcGIS World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 nin select communities). For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9`,category:"Other",creationFunction:function(){return Up.fromBasemapType(th.SATELLITE,{enablePickFeatures:!1})}})),e.push(new ws({name:"ArcGIS World Hillshade",iconUrl:en("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png"),tooltip:`ArcGIS World Hillshade map portrays elevation as an artistic hillshade. This map is designed to be used as a backdrop for topographical, soil, hydro, landcover or other outdoor recreational maps. The map was compiled from a variety of sources from several data providers. The basemap has global coverage down to a scale of ~1:72k. In select areas of the United States and Europe, coverage is available down to ~1:9k. For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1b243539f4514b6ba35e7d995890db1d`,category:"Other",creationFunction:function(){return Up.fromBasemapType(th.HILLSHADE,{enablePickFeatures:!1})}})),e.push(new ws({name:"Esri World Ocean",iconUrl:en("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png"),tooltip:`ArcGIS World Ocean map is designed to be used as a base map by marine GIS professionals and as a reference map by anyone interested in ocean data. The base map features marine bathymetry. Land features include inland waters and roads overlaid on land cover and shaded relief imagery. The map was compiled from a variety of best available sources from several data providers, including General Bathymetric Chart of the Oceans GEBCO_08 Grid, National Oceanic and Atmospheric Administration (NOAA), and National Geographic, Garmin, HERE, Geonames.org, and Esri, and various other contributors. The base map currently provides coverage for the world down to a scale of ~1:577k, and coverage down to 1:72k in US coastal areas, and various other areas. Coverage down to ~ 1:9k is available limited areas based on regional hydrographic survey data. The base map was designed and developed by Esri. For more information on this map, including our terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1e126e7520f9466c9ca28b8f28b5e500`,category:"Other",creationFunction:function(){return Up.fromBasemapType(th.OCEANS,{enablePickFeatures:!1})}})),e.push(new ws({name:"Open\xADStreet\xADMap",iconUrl:en("Widgets/Images/ImageryProviders/openStreetMap.png"),tooltip:`OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world. +http://www.openstreetmap.org`,category:"Other",creationFunction:function(){return new _b({url:"https://a.tile.openstreetmap.org/"})}})),e.push(new ws({name:"Stamen Watercolor",iconUrl:en("Widgets/Images/ImageryProviders/stamenWatercolor.png"),tooltip:`Reminiscent of hand drawn maps, Stamen watercolor maps apply raster effect area washes and organic edges over a paper texture to add warm pop to any map. +http://maps.stamen.com`,category:"Other",creationFunction:function(){return new _b({url:"https://stamen-tiles.a.ssl.fastly.net/watercolor/",credit:"Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA."})}})),e.push(new ws({name:"Stamen Toner",iconUrl:en("Widgets/Images/ImageryProviders/stamenToner.png"),tooltip:`A high contrast black and white map. +http://maps.stamen.com`,category:"Other",creationFunction:function(){return new _b({url:"https://stamen-tiles.a.ssl.fastly.net/toner/",credit:"Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA."})}})),e.push(new ws({name:"Sentinel-2",iconUrl:en("Widgets/Images/ImageryProviders/sentinel-2.png"),tooltip:"Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).",category:"Cesium ion",creationFunction:function(){return Rd.fromAssetId(3954)}})),e.push(new ws({name:"Blue Marble",iconUrl:en("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return Rd.fromAssetId(3845)}})),e.push(new ws({name:"Earth at night",iconUrl:en("Widgets/Images/ImageryProviders/earthAtNight.png"),tooltip:"The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.",category:"Cesium ion",creationFunction:function(){return Rd.fromAssetId(3812)}})),e.push(new ws({name:"Natural Earth\xA0II",iconUrl:en("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:`Natural Earth II, darkened for contrast. +http://www.naturalearthdata.com/`,category:"Cesium ion",creationFunction:function(){return Vp.fromUrl(en("Assets/Textures/NaturalEarthII"))}})),e}var Oz=Fgt;function Ugt(){let e=[];return e.push(new ws({name:"WGS84 Ellipsoid",iconUrl:en("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new iy}})),e.push(new ws({name:"Cesium World Terrain",iconUrl:en("Widgets/Images/TerrainProviders/CesiumWorldTerrain.png"),tooltip:"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion",category:"Cesium ion",creationFunction:function(){return Cb({requestWaterMask:!0,requestVertexNormals:!0})}})),e}var Mz=Ugt;function Vgt(e){return function(t){let n=e._scene.pick(t.position);l(n)&&n.primitive instanceof Va&&(e.tileset=n.primitive),e.pickActive=!1}}function OAe(e,t){t?e._eventHandler.setInputAction(function(n){let i=e._scene.pick(n.endPosition);l(i)&&i.primitive instanceof Va&&(e.tileset=i.primitive)},Cn.MOUSE_MOVE):(e._eventHandler.removeInputAction(Cn.MOUSE_MOVE),e.picking=e.picking)}var kgt={maximumFractionDigits:3};function FI(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,kgt):Math.round(t).toLocaleString()}function UI(e,t){if(!l(e))return"";let n=t?e._statisticsPerPass[Ro.PICK]:e._statisticsPerPass[Ro.RENDER],i='<ul class="cesium-cesiumInspector-statistics">';return i+=`<li><strong>Visited: </strong>${n.visited.toLocaleString()}</li><li><strong>Selected: </strong>${n.selected.toLocaleString()}</li><li><strong>Commands: </strong>${n.numberOfCommands.toLocaleString()}</li>`,i+="</ul>",t||(i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Requests: </strong>${n.numberOfPendingRequests.toLocaleString()}</li><li><strong>Attempted: </strong>${n.numberOfAttemptedRequests.toLocaleString()}</li><li><strong>Processing: </strong>${n.numberOfTilesProcessing.toLocaleString()}</li><li><strong>Content Ready: </strong>${n.numberOfTilesWithContentReady.toLocaleString()}</li><li><strong>Total: </strong>${n.numberOfTilesTotal.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Features Selected: </strong>${n.numberOfFeaturesSelected.toLocaleString()}</li><li><strong>Features Loaded: </strong>${n.numberOfFeaturesLoaded.toLocaleString()}</li><li><strong>Points Selected: </strong>${n.numberOfPointsSelected.toLocaleString()}</li><li><strong>Points Loaded: </strong>${n.numberOfPointsLoaded.toLocaleString()}</li><li><strong>Triangles Selected: </strong>${n.numberOfTrianglesSelected.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Tiles styled: </strong>${n.numberOfTilesStyled.toLocaleString()}</li><li><strong>Features styled: </strong>${n.numberOfFeaturesStyled.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Children Union Culled: </strong>${n.numberOfTilesCulledWithChildrenUnion.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Geometry Memory (MB): </strong>${FI(n.geometryByteLength)}</li><li><strong>Texture Memory (MB): </strong>${FI(n.texturesByteLength)}</li><li><strong>Batch Table Memory (MB): </strong>${FI(n.batchTableByteLength)}</li>`,i+="</ul>"),i}function MAe(){let e=Fi.statistics;return` + <ul class="cesium-cesiumInspector-statistics"> + <li><strong>Geometry Memory (MB): </strong>${FI(e.geometryByteLength)}</li> + <li><strong>Texture Memory (MB): </strong>${FI(e.texturesByteLength)}</li> + </ul> + `}var zgt=[{text:"Highlight",value:Nl.HIGHLIGHT},{text:"Replace",value:Nl.REPLACE},{text:"Mix",value:Nl.MIX}],PAe=new z(1,1,0,.4),Hgt=new z,Rz=new z;function ta(e,t){let n=this,i=e.canvas;this._eventHandler=new _f(i),this._scene=e,this._performanceContainer=t,this._canvas=i,this._performanceDisplay=new hy({container:t}),this._statisticsText="",this._pickStatisticsText="",this._resourceCacheStatisticsText="",this._editorError="",this.performance=!1,this.showStatistics=!0,this.showPickStatistics=!0,this.showResourceCacheStatistics=!1,this.inspectorVisible=!0,this.tilesetVisible=!1,this.displayVisible=!1,this.updateVisible=!1,this.loggingVisible=!1,this.styleVisible=!1,this.tileDebugLabelsVisible=!1,this.optimizationVisible=!1,this.styleString="{}",this.hasEnabledWireframe=!1,this._tileset=void 0,this._feature=void 0,this._tile=void 0,Ce.track(this,["performance","inspectorVisible","_statisticsText","_pickStatisticsText","_resourceCacheStatisticsText","_editorError","showPickStatistics","showStatistics","showResourceCacheStatistics","tilesetVisible","displayVisible","updateVisible","loggingVisible","styleVisible","optimizationVisible","tileDebugLabelsVisible","styleString","_feature","_tile","_tileset","hasEnabledWireframe"]),this._properties=Ce.observable({}),this.properties=[],Ce.defineProperty(this,"properties",function(){let U=[],q=n._properties();for(let Y in q)q.hasOwnProperty(Y)&&U.push(Y);return U});let o=Ce.observable();Ce.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return o()},set:function(U){o(U),l(n._tileset)&&(n._tileset.dynamicScreenSpaceError=U)}}),this.dynamicScreenSpaceError=!1;let r=Ce.observable();Ce.defineProperty(this,"colorBlendMode",{get:function(){return r()},set:function(U){r(U),l(n._tileset)&&(n._tileset.colorBlendMode=U,n._scene.requestRender())}}),this.colorBlendMode=Nl.HIGHLIGHT;let s=Ce.observable(),a=Ce.observable();Ce.defineProperty(this,"picking",{get:function(){return a()},set:function(U){a(U),U?n._eventHandler.setInputAction(function(q){let Y=e.pick(q.endPosition);if(Y instanceof Bs?(n.feature=Y,n.tile=Y.content.tile):l(Y)&&l(Y.content)?(n.feature=void 0,n.tile=Y.content.tile):(n.feature=void 0,n.tile=void 0),!!l(n._tileset)){if(s&&l(Y)&&l(Y.content)){let Q;e.pickPositionSupported&&(Q=e.pickPosition(q.endPosition),l(Q)&&(n._tileset.debugPickPosition=Q)),n._tileset.debugPickedTile=Y.content.tile}else n._tileset.debugPickedTile=void 0;n._scene.requestRender()}},Cn.MOUSE_MOVE):(n.feature=void 0,n.tile=void 0,n._eventHandler.removeInputAction(Cn.MOUSE_MOVE))}}),this.picking=!0;let c=Ce.observable();Ce.defineProperty(this,"colorize",{get:function(){return c()},set:function(U){c(U),l(n._tileset)&&(n._tileset.debugColorizeTiles=U,n._scene.requestRender())}}),this.colorize=!1;let u=Ce.observable();Ce.defineProperty(this,"wireframe",{get:function(){return u()},set:function(U){u(U),l(n._tileset)&&(n._tileset.debugWireframe=U,n._scene.requestRender())}}),this.wireframe=!1;let f=Ce.observable();Ce.defineProperty(this,"showBoundingVolumes",{get:function(){return f()},set:function(U){f(U),l(n._tileset)&&(n._tileset.debugShowBoundingVolume=U,n._scene.requestRender())}}),this.showBoundingVolumes=!1;let d=Ce.observable();Ce.defineProperty(this,"showContentBoundingVolumes",{get:function(){return d()},set:function(U){d(U),l(n._tileset)&&(n._tileset.debugShowContentBoundingVolume=U,n._scene.requestRender())}}),this.showContentBoundingVolumes=!1;let p=Ce.observable();Ce.defineProperty(this,"showRequestVolumes",{get:function(){return p()},set:function(U){p(U),l(n._tileset)&&(n._tileset.debugShowViewerRequestVolume=U,n._scene.requestRender())}}),this.showRequestVolumes=!1;let g=Ce.observable();Ce.defineProperty(this,"freezeFrame",{get:function(){return g()},set:function(U){g(U),l(n._tileset)&&(n._tileset.debugFreezeFrame=U,n._scene.debugShowFrustumPlanes=U,n._scene.requestRender())}}),this.freezeFrame=!1,Ce.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return s()},set:function(U){s(U),l(n._tileset)&&(n._tileset.debugPickedTileLabelOnly=U,n._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;let h=Ce.observable();Ce.defineProperty(this,"showGeometricError",{get:function(){return h()},set:function(U){h(U),l(n._tileset)&&(n._tileset.debugShowGeometricError=U,n._scene.requestRender())}}),this.showGeometricError=!1;let A=Ce.observable();Ce.defineProperty(this,"showRenderingStatistics",{get:function(){return A()},set:function(U){A(U),l(n._tileset)&&(n._tileset.debugShowRenderingStatistics=U,n._scene.requestRender())}}),this.showRenderingStatistics=!1;let x=Ce.observable();Ce.defineProperty(this,"showMemoryUsage",{get:function(){return x()},set:function(U){x(U),l(n._tileset)&&(n._tileset.debugShowMemoryUsage=U,n._scene.requestRender())}}),this.showMemoryUsage=!1;let C=Ce.observable();Ce.defineProperty(this,"showUrl",{get:function(){return C()},set:function(U){C(U),l(n._tileset)&&(n._tileset.debugShowUrl=U,n._scene.requestRender())}}),this.showUrl=!1;let T=Ce.observable();Ce.defineProperty(this,"maximumScreenSpaceError",{get:function(){return T()},set:function(U){U=Number(U),isNaN(U)||(T(U),l(n._tileset)&&(n._tileset.maximumScreenSpaceError=U))}}),this.maximumScreenSpaceError=16;let E=Ce.observable();Ce.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return E()},set:function(U){U=Number(U),isNaN(U)||(E(U),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=U))}}),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,Ce.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(E(),1/6)},set:function(U){E(Math.pow(U,6))}});let S=Ce.observable();Ce.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return S()},set:function(U){U=Number(U),isNaN(U)||(S(U),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorFactor=U))}}),this.dynamicScreenSpaceErrorFactor=4;let v=Vgt(this),D=Ce.observable();Ce.defineProperty(this,"pickActive",{get:function(){return D()},set:function(U){D(U),U?n._eventHandler.setInputAction(v,Cn.LEFT_CLICK):n._eventHandler.removeInputAction(Cn.LEFT_CLICK)}});let O=Ce.observable();Ce.defineProperty(this,"pointCloudShading",{get:function(){return O()},set:function(U){O(U),l(n._tileset)&&(n._tileset.pointCloudShading.attenuation=U)}}),this.pointCloudShading=!1;let M=Ce.observable();Ce.defineProperty(this,"geometricErrorScale",{get:function(){return M()},set:function(U){U=Number(U),isNaN(U)||(M(U),l(n._tileset)&&(n._tileset.pointCloudShading.geometricErrorScale=U))}}),this.geometricErrorScale=1;let L=Ce.observable();Ce.defineProperty(this,"maximumAttenuation",{get:function(){return L()},set:function(U){U=Number(U),isNaN(U)||(L(U),l(n._tileset)&&(n._tileset.pointCloudShading.maximumAttenuation=U===0?void 0:U))}}),this.maximumAttenuation=0;let N=Ce.observable();Ce.defineProperty(this,"baseResolution",{get:function(){return N()},set:function(U){U=Number(U),isNaN(U)||(N(U),l(n._tileset)&&(n._tileset.pointCloudShading.baseResolution=U===0?void 0:U))}}),this.baseResolution=0;let _=Ce.observable();Ce.defineProperty(this,"eyeDomeLighting",{get:function(){return _()},set:function(U){_(U),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLighting=U)}}),this.eyeDomeLighting=!1;let b=Ce.observable();Ce.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return b()},set:function(U){U=Number(U),isNaN(U)||(b(U),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingStrength=U))}}),this.eyeDomeLightingStrength=1;let w=Ce.observable();Ce.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return w()},set:function(U){U=Number(U),isNaN(U)||(w(U),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingRadius=U))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;let I=Ce.observable();Ce.defineProperty(this,"skipLevelOfDetail",{get:function(){return I()},set:function(U){I(U),l(n._tileset)&&(n._tileset.skipLevelOfDetail=U)}}),this.skipLevelOfDetail=!0;let R=Ce.observable();Ce.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return R()},set:function(U){U=Number(U),isNaN(U)||(R(U),l(n._tileset)&&(n._tileset.skipScreenSpaceErrorFactor=U))}}),this.skipScreenSpaceErrorFactor=16;let F=Ce.observable();Ce.defineProperty(this,"baseScreenSpaceError",{get:function(){return F()},set:function(U){U=Number(U),isNaN(U)||(F(U),l(n._tileset)&&(n._tileset.baseScreenSpaceError=U))}}),this.baseScreenSpaceError=1024;let k=Ce.observable();Ce.defineProperty(this,"skipLevels",{get:function(){return k()},set:function(U){U=Number(U),isNaN(U)||(k(U),l(n._tileset)&&(n._tileset.skipLevels=U))}}),this.skipLevels=1;let V=Ce.observable();Ce.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return V()},set:function(U){V(U),l(n._tileset)&&(n._tileset.immediatelyLoadDesiredLevelOfDetail=U)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;let G=Ce.observable();Ce.defineProperty(this,"loadSiblings",{get:function(){return G()},set:function(U){G(U),l(n._tileset)&&(n._tileset.loadSiblings=U)}}),this.loadSiblings=!1,this._style=void 0,this._shouldStyle=!1,this._definedProperties=["properties","dynamicScreenSpaceError","colorBlendMode","picking","colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","maximumScreenSpaceError","dynamicScreenSpaceErrorDensity","baseScreenSpaceError","skipScreenSpaceErrorFactor","skipLevelOfDetail","skipLevels","immediatelyLoadDesiredLevelOfDetail","loadSiblings","dynamicScreenSpaceErrorDensitySliderValue","dynamicScreenSpaceErrorFactor","pickActive","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl","pointCloudShading","geometricErrorScale","maximumAttenuation","baseResolution","eyeDomeLighting","eyeDomeLightingStrength","eyeDomeLightingRadius"],this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()}),l(this._tileset)||OAe(this,!0)}Object.defineProperties(ta.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},statisticsText:{get:function(){return this._statisticsText}},pickStatisticsText:{get:function(){return this._pickStatisticsText}},resourceCacheStatisticsText:{get:function(){return this._resourceCacheStatisticsText}},colorBlendModes:{get:function(){return zgt}},editorError:{get:function(){return this._editorError}},tileset:{get:function(){return this._tileset},set:function(e){if(this._tileset=e,this._style=void 0,this.styleString="{}",this.feature=void 0,this.tile=void 0,l(e)){let t=this;e._readyPromise.then(function(r){t.isDestroyed()||t._properties(r.properties)});let n=["colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl"],i=n.length;for(let r=0;r<i;++r){let s=n[r];this[s]=this[s]}this.maximumScreenSpaceError=e.maximumScreenSpaceError,this.dynamicScreenSpaceError=e.dynamicScreenSpaceError,this.dynamicScreenSpaceErrorDensity=e.dynamicScreenSpaceErrorDensity,this.dynamicScreenSpaceErrorFactor=e.dynamicScreenSpaceErrorFactor,this.colorBlendMode=e.colorBlendMode,this.skipLevelOfDetail=e.skipLevelOfDetail,this.skipScreenSpaceErrorFactor=e.skipScreenSpaceErrorFactor,this.baseScreenSpaceError=e.baseScreenSpaceError,this.skipLevels=e.skipLevels,this.immediatelyLoadDesiredLevelOfDetail=e.immediatelyLoadDesiredLevelOfDetail,this.loadSiblings=e.loadSiblings,this.hasEnabledWireframe=e._enableDebugWireframe;let o=e.pointCloudShading;this.pointCloudShading=o.attenuation,this.geometricErrorScale=o.geometricErrorScale,this.maximumAttenuation=o.maximumAttenuation?o.maximumAttenuation:0,this.baseResolution=o.baseResolution?o.baseResolution:0,this.eyeDomeLighting=o.eyeDomeLighting,this.eyeDomeLightingStrength=o.eyeDomeLightingStrength,this.eyeDomeLightingRadius=o.eyeDomeLightingRadius,this._scene.requestRender()}else this._properties({});this._statisticsText=UI(e,!1),this._pickStatisticsText=UI(e,!0),this._resourceCacheStatisticsText=MAe(),OAe(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature===e)return;let t=this._feature;l(t)&&!t.content.isDestroyed()&&(!this.colorize&&l(this._style)?t.color=l(this._style.color)?this._style.color.evaluateColor(t,Hgt):z.WHITE:t.color=Rz,this._scene.requestRender()),l(e)&&(z.clone(e.color,Rz),e.color=PAe,this._scene.requestRender()),this._feature=e}},tile:{get:function(){return this._tile},set:function(e){if(this._tile===e)return;let t=this._tile;l(t)&&!t.isDestroyed()&&!Gq(t.content)&&(t.color=Rz,this._scene.requestRender()),l(e)&&!Gq(e.content)&&(z.clone(e.color,Rz),e.color=PAe,this._scene.requestRender()),this._tile=e}}});function Gq(e){if(!l(e))return!1;if(e.featuresLength>0)return!0;let t=e.innerContents;if(l(t)){let n=t.length;for(let i=0;i<n;++i)if(!Gq(t[i]))return!1;return!0}return!1}ta.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive};ta.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};ta.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible};ta.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};ta.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible};ta.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible};ta.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible};ta.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible};ta.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible};ta.prototype.trimTilesCache=function(){l(this._tileset)&&this._tileset.trimLoadedTiles()};ta.prototype.compileStyle=function(){let e=this._tileset;if(!(!l(e)||this.styleString===JSON.stringify(e.style))){this._editorError="";try{this.styleString.length===0&&(this.styleString="{}"),this._style=new Ty(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(t){this._editorError=t.toString()}this.feature=this._feature,this.tile=this._tile}};ta.prototype.styleEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,u;if(t.shiftKey)for(u=0;u<c;++u)a[u][0]===" "&&(a[u][1]===" "?(a[u]=a[u].substr(2),r-=2):(a[u]=a[u].substr(1),r-=1));else for(u=0;u<c;++u)a[u]=` ${a[u]}`,r+=2;let f=a.join(` +`);n.value=n.value.slice(0,i)+f+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileStyle();return!0};ta.prototype._update=function(){let e=this._tileset;if(this.performance&&this._performanceDisplay.update(),l(e)){if(e.isDestroyed()){this.tile=void 0,this.feature=void 0,this.tileset=void 0;return}let t=e.style;this._style!==e.style&&(this._shouldStyle?(e.style=this._style,this._shouldStyle=!1):(this._style=t,this.styleString=JSON.stringify(t.style,null," ")))}this.showStatistics&&(this._statisticsText=UI(e,!1),this._pickStatisticsText=UI(e,!0),this._resourceCacheStatisticsText=MAe())};ta.prototype.isDestroyed=function(){return!1};ta.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();let e=this;return this._definedProperties.forEach(function(t){Ce.getObservable(e,t).dispose()}),ue(this)};ta.getStatistics=UI;var Bz=ta;function Lz(e,t){e=On(e);let n=document.createElement("div"),i=document.createElement("div");i.setAttribute("data-bind","visible: performance");let o=new Bz(t,i);this._viewModel=o,this._container=e,this._element=n;let r=document.createElement("div");r.textContent="3D Tiles Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleInspector"),n.appendChild(r),n.className="cesium-cesiumInspector cesium-3DTilesInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",n.appendChild(s);let a=tc.createSection,c=tc.createCheckbox,u=tc.createRangeInput,f=tc.createButton,d=a(s,"Tileset","tilesetVisible","toggleTileset"),p=a(s,"Display","displayVisible","toggleDisplay"),g=a(s,"Update","updateVisible","toggleUpdate"),h=a(s,"Logging","loggingVisible","toggleLogging"),A=a(s,"Tile Debug Labels","tileDebugLabelsVisible","toggleTileDebugLabels"),x=a(s,"Style","styleVisible","toggleStyle"),C=a(s,"Optimization","optimizationVisible","toggleOptimization"),T=document.createElement("div");T.className="field-group";let E=document.createElement("label");E.className="field-label",E.appendChild(document.createTextNode("Properties: "));let S=document.createElement("div");S.setAttribute("data-bind","text: properties"),T.appendChild(E),T.appendChild(S),d.appendChild(T),d.appendChild(f("Pick Tileset","togglePickTileset","pickActive")),d.appendChild(f("Trim Tiles Cache","trimTilesCache")),d.appendChild(c("Enable Picking","picking")),p.appendChild(c("Colorize","colorize"));let v=p.appendChild(c("Wireframe","wireframe","_tileset === undefined || hasEnabledWireframe")),D=document.createElement("p");D.setAttribute("data-bind","visible: _tileset !== undefined && !hasEnabledWireframe"),D.setAttribute("class","cesium-3DTilesInspector-disabledElementsInfo"),D.innerText="Set enableDebugWireframe to true in the tileset constructor to enable this option.",v.appendChild(D),p.appendChild(c("Bounding Volumes","showBoundingVolumes")),p.appendChild(c("Content Volumes","showContentBoundingVolumes")),p.appendChild(c("Request Volumes","showRequestVolumes")),p.appendChild(c("Point Cloud Shading","pointCloudShading"));let O=document.createElement("div");O.setAttribute("data-bind","visible: pointCloudShading"),O.appendChild(u("Geometric Error Scale","geometricErrorScale",0,2,.01)),O.appendChild(u("Maximum Attenuation","maximumAttenuation",0,32,1)),O.appendChild(u("Base Resolution","baseResolution",0,1,.01)),O.appendChild(c("Eye Dome Lighting (EDL)","eyeDomeLighting")),p.appendChild(O);let M=document.createElement("div");M.setAttribute("data-bind","visible: eyeDomeLighting"),M.appendChild(u("EDL Strength","eyeDomeLightingStrength",0,2,.1)),M.appendChild(u("EDL Radius","eyeDomeLightingRadius",0,4,.1)),O.appendChild(M),g.appendChild(c("Freeze Frame","freezeFrame")),g.appendChild(c("Dynamic Screen Space Error","dynamicScreenSpaceError"));let L=document.createElement("div");L.appendChild(u("Maximum Screen Space Error","maximumScreenSpaceError",0,128,1)),g.appendChild(L);let N=document.createElement("div");N.setAttribute("data-bind","visible: dynamicScreenSpaceError"),N.appendChild(u("Screen Space Error Density","dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"dynamicScreenSpaceErrorDensity")),N.appendChild(u("Screen Space Error Factor","dynamicScreenSpaceErrorFactor",1,10,.1)),g.appendChild(N),h.appendChild(c("Performance","performance")),h.appendChild(i),h.appendChild(c("Statistics","showStatistics"));let _=document.createElement("div");_.className="cesium-3dTilesInspector-statistics",_.setAttribute("data-bind","html: statisticsText, visible: showStatistics"),h.appendChild(_),h.appendChild(c("Pick Statistics","showPickStatistics"));let b=document.createElement("div");b.className="cesium-3dTilesInspector-statistics",b.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),h.appendChild(b),h.appendChild(c("Resource Cache Statistics","showResourceCacheStatistics"));let w=document.createElement("div");w.className="cesium-3dTilesInspector-statistics",w.setAttribute("data-bind","html: resourceCacheStatisticsText, visible: showResourceCacheStatistics"),h.appendChild(w);let I=document.createElement("div");x.appendChild(I),I.appendChild(document.createTextNode("Color Blend Mode: "));let R=document.createElement("select");R.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),I.appendChild(R);let F=document.createElement("textarea");F.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),I.className="cesium-cesiumInspector-styleEditor",I.appendChild(F);let k=f("Compile (Ctrl+Enter)","compileStyle");I.appendChild(k);let V=document.createElement("div");V.className="cesium-cesiumInspector-error",V.setAttribute("data-bind","text: editorError"),I.appendChild(V),A.appendChild(c("Show Picked Only","showOnlyPickedTileDebugLabel")),A.appendChild(c("Geometric Error","showGeometricError")),A.appendChild(c("Rendering Statistics","showRenderingStatistics")),A.appendChild(c("Memory Usage (MB)","showMemoryUsage")),A.appendChild(c("Url","showUrl")),C.appendChild(c("Skip Tile LODs","skipLevelOfDetail"));let G=document.createElement("div");G.appendChild(u("Skip SSE Factor","skipScreenSpaceErrorFactor",1,50,1)),C.appendChild(G);let U=document.createElement("div");U.appendChild(u("SSE before skipping LOD","baseScreenSpaceError",0,4096,1)),C.appendChild(U);let q=document.createElement("div");q.appendChild(u("Min. levels to skip","skipLevels",0,10,1)),C.appendChild(q),C.appendChild(c("Load only tiles that meet the max SSE.","immediatelyLoadDesiredLevelOfDetail")),C.appendChild(c("Load siblings of visible tiles","loadSiblings")),Ce.applyBindings(o,n)}Object.defineProperties(Lz.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});Lz.prototype.isDestroyed=function(){return!1};Lz.prototype.destroy=function(){return Ce.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var Nz=Lz;function Ggt(e){let t;if(l(e)){t="Command Statistics";let n=e.commandsInFrustums;for(let i in n)if(n.hasOwnProperty(i)){let o=parseInt(i,10),r;if(o===7)r="1, 2 and 3";else{let s=[];for(let a=2;a>=0;a--){let c=Math.pow(2,a);o>=c&&(s.push(a+1),o-=c)}r=s.reverse().join(" and ")}t+=`<br>    ${n[i]} in frustum ${r}`}t+=`<br>Total: ${e.totalCommands}`}return t}function Wq(e,t,n){let i=Math.min(n,t);return i=Math.max(i,e),i}var Wgt=new In,jgt=new m;function VI(e,t){let n=this,i=e.canvas,o=new _f(i);this._eventHandler=o,this._scene=e,this._canvas=i,this._primitive=void 0,this._tile=void 0,this._modelMatrixPrimitive=void 0,this._performanceDisplay=void 0,this._performanceContainer=t;let r=this._scene.globe;r.depthTestAgainstTerrain=!0,this.frustums=!1,this.frustumPlanes=!1,this.performance=!1,this.shaderCacheText="",this.primitiveBoundingSphere=!1,this.primitiveReferenceFrame=!1,this.filterPrimitive=!1,this.tileBoundingSphere=!1,this.filterTile=!1,this.wireframe=!1,this.depthFrustum=1,this._numberOfFrustums=1,this.suspendUpdates=!1,this.tileCoordinates=!1,this.frustumStatisticText=!1,this.tileText="",this.hasPickedPrimitive=!1,this.hasPickedTile=!1,this.pickPrimitiveActive=!1,this.pickTileActive=!1,this.dropDownVisible=!0,this.generalVisible=!0,this.primitivesVisible=!1,this.terrainVisible=!1,this.depthFrustumText="",Ce.track(this,["frustums","frustumPlanes","performance","shaderCacheText","primitiveBoundingSphere","primitiveReferenceFrame","filterPrimitive","tileBoundingSphere","filterTile","wireframe","depthFrustum","suspendUpdates","tileCoordinates","frustumStatisticText","tileText","hasPickedPrimitive","hasPickedTile","pickPrimitiveActive","pickTileActive","dropDownVisible","generalVisible","primitivesVisible","terrainVisible","depthFrustumText"]),this._toggleDropDown=Sn(function(){n.dropDownVisible=!n.dropDownVisible}),this._toggleGeneral=Sn(function(){n.generalVisible=!n.generalVisible}),this._togglePrimitives=Sn(function(){n.primitivesVisible=!n.primitivesVisible}),this._toggleTerrain=Sn(function(){n.terrainVisible=!n.terrainVisible}),this._frustumsSubscription=Ce.getObservable(this,"frustums").subscribe(function(u){n._scene.debugShowFrustums=u,n._scene.requestRender()}),this._frustumPlanesSubscription=Ce.getObservable(this,"frustumPlanes").subscribe(function(u){n._scene.debugShowFrustumPlanes=u,n._scene.requestRender()}),this._performanceSubscription=Ce.getObservable(this,"performance").subscribe(function(u){u?n._performanceDisplay=new hy({container:n._performanceContainer}):n._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=Sn(function(){return n._primitive.debugShowBoundingVolume=n.primitiveBoundingSphere,n._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=Ce.getObservable(this,"primitiveBoundingSphere").subscribe(function(){n._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=Sn(function(){if(n.primitiveReferenceFrame){let u=n._primitive.modelMatrix;n._modelMatrixPrimitive=new m4({modelMatrix:u}),n._scene.primitives.add(n._modelMatrixPrimitive)}else l(n._modelMatrixPrimitive)&&(n._scene.primitives.remove(n._modelMatrixPrimitive),n._modelMatrixPrimitive=void 0);return n._scene.requestRender(),!0}),this._primitiveReferenceFrameSubscription=Ce.getObservable(this,"primitiveReferenceFrame").subscribe(function(){n._showPrimitiveReferenceFrame()}),this._doFilterPrimitive=Sn(function(){return n.filterPrimitive?n._scene.debugCommandFilter=function(u){return l(n._modelMatrixPrimitive)&&u.owner===n._modelMatrixPrimitive._primitive?!0:l(n._primitive)?u.owner===n._primitive||u.owner===n._primitive._billboardCollection||u.owner.primitive===n._primitive:!1}:n._scene.debugCommandFilter=void 0,!0}),this._filterPrimitiveSubscription=Ce.getObservable(this,"filterPrimitive").subscribe(function(){n._doFilterPrimitive(),n._scene.requestRender()}),this._wireframeSubscription=Ce.getObservable(this,"wireframe").subscribe(function(u){r._surface.tileProvider._debug.wireframe=u,n._scene.requestRender()}),this._depthFrustumSubscription=Ce.getObservable(this,"depthFrustum").subscribe(function(u){n._scene.debugShowDepthFrustum=u,n._scene.requestRender()}),this._incrementDepthFrustum=Sn(function(){let u=n.depthFrustum+1;return n.depthFrustum=Wq(1,n._numberOfFrustums,u),n._scene.requestRender(),!0}),this._decrementDepthFrustum=Sn(function(){let u=n.depthFrustum-1;return n.depthFrustum=Wq(1,n._numberOfFrustums,u),n._scene.requestRender(),!0}),this._suspendUpdatesSubscription=Ce.getObservable(this,"suspendUpdates").subscribe(function(u){r._surface._debug.suspendLodUpdate=u,u||(n.filterTile=!1)});let s;this._showTileCoordinates=Sn(function(){return n.tileCoordinates&&!l(s)?s=e.imageryLayers.addImageryProvider(new U4({tilingScheme:e.terrainProvider.tilingScheme})):!n.tileCoordinates&&l(s)&&(e.imageryLayers.remove(s),s=void 0),!0}),this._tileCoordinatesSubscription=Ce.getObservable(this,"tileCoordinates").subscribe(function(){n._showTileCoordinates(),n._scene.requestRender()}),this._tileBoundingSphereSubscription=Ce.getObservable(this,"tileBoundingSphere").subscribe(function(){n._showTileBoundingSphere(),n._scene.requestRender()}),this._showTileBoundingSphere=Sn(function(){return n.tileBoundingSphere?r._surface.tileProvider._debug.boundingSphereTile=n._tile:r._surface.tileProvider._debug.boundingSphereTile=void 0,n._scene.requestRender(),!0}),this._doFilterTile=Sn(function(){return n.filterTile?(n.suspendUpdates=!0,r._surface._tilesToRender=[],l(n._tile)&&n._tile.renderable&&r._surface._tilesToRender.push(n._tile)):n.suspendUpdates=!1,!0}),this._filterTileSubscription=Ce.getObservable(this,"filterTile").subscribe(function(){n.doFilterTile(),n._scene.requestRender()});function a(u){let f=n._scene.pick({x:u.position.x,y:u.position.y});l(f)&&(n.primitive=l(f.collection)?f.collection:f.primitive),n._scene.requestRender(),n.pickPrimitiveActive=!1}this._pickPrimitive=Sn(function(){n.pickPrimitiveActive=!n.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=Ce.getObservable(this,"pickPrimitiveActive").subscribe(function(u){u?o.setInputAction(a,Cn.LEFT_CLICK):o.removeInputAction(Cn.LEFT_CLICK)});function c(u){let f,d=r.ellipsoid,p=n._scene.camera.getPickRay(u.position,Wgt),g=r.pick(p,n._scene,jgt);if(l(g)){let h=d.cartesianToCartographic(g),A=r._surface.tileProvider._tilesToRenderByTextureCount;for(let x=0;!f&&x<A.length;++x){let C=A[x];if(l(C))for(let T=0;!f&&T<C.length;++T){let E=C[T];le.contains(E.rectangle,h)&&(f=E)}}}n.tile=f,n.pickTileActive=!1}this._pickTile=Sn(function(){n.pickTileActive=!n.pickTileActive}),this._pickTileActiveSubscription=Ce.getObservable(this,"pickTileActive").subscribe(function(u){u?o.setInputAction(c,Cn.LEFT_CLICK):o.removeInputAction(Cn.LEFT_CLICK)}),this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()})}Object.defineProperties(VI.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},toggleDropDown:{get:function(){return this._toggleDropDown}},showPrimitiveBoundingSphere:{get:function(){return this._showPrimitiveBoundingSphere}},showPrimitiveReferenceFrame:{get:function(){return this._showPrimitiveReferenceFrame}},doFilterPrimitive:{get:function(){return this._doFilterPrimitive}},incrementDepthFrustum:{get:function(){return this._incrementDepthFrustum}},decrementDepthFrustum:{get:function(){return this._decrementDepthFrustum}},showTileCoordinates:{get:function(){return this._showTileCoordinates}},showTileBoundingSphere:{get:function(){return this._showTileBoundingSphere}},doFilterTile:{get:function(){return this._doFilterTile}},toggleGeneral:{get:function(){return this._toggleGeneral}},togglePrimitives:{get:function(){return this._togglePrimitives}},toggleTerrain:{get:function(){return this._toggleTerrain}},pickPrimitive:{get:function(){return this._pickPrimitive}},pickTile:{get:function(){return this._pickTile}},selectParent:{get:function(){let e=this;return Sn(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){let e=this;return Sn(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){let e=this;return Sn(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){let e=this;return Sn(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){let e=this;return Sn(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(e){let t=this._primitive;e!==t&&(this.hasPickedPrimitive=!0,l(t)&&(t.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,l(this._modelMatrixPrimitive)&&(this._scene.primitives.remove(this._modelMatrixPrimitive),this._modelMatrixPrimitive=void 0),this._primitive=e,e.show=!1,setTimeout(function(){e.show=!0},50),this.showPrimitiveBoundingSphere(),this.showPrimitiveReferenceFrame(),this.doFilterPrimitive())}},tile:{get:function(){return this._tile},set:function(e){if(l(e)){this.hasPickedTile=!0;let t=this._tile;if(e!==t){this.tileText=`L: ${e.level} X: ${e.x} Y: ${e.y}`,this.tileText+=`<br>SW corner: ${e.rectangle.west}, ${e.rectangle.south}`,this.tileText+=`<br>NE corner: ${e.rectangle.east}, ${e.rectangle.north}`;let n=e.data;l(n)&&l(n.tileBoundingRegion)?this.tileText+=`<br>Min: ${n.tileBoundingRegion.minimumHeight} Max: ${n.tileBoundingRegion.maximumHeight}`:this.tileText+="<br>(Tile is not loaded)"}this._tile=e,this.showTileBoundingSphere(),this.doFilterTile()}else this.hasPickedTile=!1,this._tile=void 0}}});VI.prototype._update=function(){this.frustums&&(this.frustumStatisticText=Ggt(this._scene.debugFrustumStatistics));let e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=Wq(1,e,this.depthFrustum),this.depthFrustumText=`${this.depthFrustum} of ${e}`,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText=`Cached shaders: ${this._scene.context.shaderCache.numberOfShaders}`};VI.prototype.isDestroyed=function(){return!1};VI.prototype.destroy=function(){return this._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),ue(this)};var Fz=VI;function Uz(e,t){e=On(e);let n=document.createElement("div"),i=new Fz(t,n);this._viewModel=i,this._container=e;let o=document.createElement("div");this._element=o;let r=document.createElement("div");r.textContent="Cesium Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleDropDown"),o.appendChild(r),o.className="cesium-cesiumInspector",o.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : dropDownVisible, "cesium-cesiumInspector-hidden" : !dropDownVisible }'),e.appendChild(this._element);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",o.appendChild(s);let a=tc.createSection,c=tc.createCheckbox,u=a(s,"General","generalVisible","toggleGeneral"),f=c("Show Frustums","frustums"),d=document.createElement("div");d.className="cesium-cesiumInspector-frustumStatistics",d.setAttribute("data-bind","visible: frustums, html: frustumStatisticText"),f.appendChild(d),u.appendChild(f),u.appendChild(c("Show Frustum Planes","frustumPlanes")),u.appendChild(c("Performance Display","performance")),n.className="cesium-cesiumInspector-performanceDisplay",u.appendChild(n);let p=document.createElement("div");p.className="cesium-cesiumInspector-shaderCache",p.setAttribute("data-bind","html: shaderCacheText"),u.appendChild(p);let g=document.createElement("div");u.appendChild(g);let h=document.createElement("span");h.setAttribute("data-bind",'html: "     Frustum:"'),g.appendChild(h);let A=document.createElement("span");A.setAttribute("data-bind","text: depthFrustumText"),g.appendChild(A);let x=document.createElement("input");x.type="button",x.value="-",x.className="cesium-cesiumInspector-pickButton",x.setAttribute("data-bind","click: decrementDepthFrustum"),g.appendChild(x);let C=document.createElement("input");C.type="button",C.value="+",C.className="cesium-cesiumInspector-pickButton",C.setAttribute("data-bind","click: incrementDepthFrustum"),g.appendChild(C);let T=a(s,"Primitives","primitivesVisible","togglePrimitives"),E=document.createElement("div");E.className="cesium-cesiumInspector-pickSection",T.appendChild(E);let S=document.createElement("input");S.type="button",S.value="Pick a primitive",S.className="cesium-cesiumInspector-pickButton",S.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');let v=document.createElement("div");v.className="cesium-cesiumInspector-center",v.appendChild(S),E.appendChild(v),E.appendChild(c("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),E.appendChild(c("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=c("Show only selected","filterPrimitive","hasPickedPrimitive"),E.appendChild(this._primitiveOnly);let D=a(s,"Terrain","terrainVisible","toggleTerrain"),O=document.createElement("div");O.className="cesium-cesiumInspector-pickSection",D.appendChild(O);let M=document.createElement("input");M.type="button",M.value="Pick a tile",M.className="cesium-cesiumInspector-pickButton",M.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickTileActive}, click: pickTile'),v=document.createElement("div"),v.appendChild(M),v.className="cesium-cesiumInspector-center",O.appendChild(v);let L=document.createElement("div");O.appendChild(L);let N=document.createElement("input");N.type="button",N.value="Parent",N.className="cesium-cesiumInspector-pickButton",N.setAttribute("data-bind","click: selectParent");let _=document.createElement("input");_.type="button",_.value="NW",_.className="cesium-cesiumInspector-pickButton",_.setAttribute("data-bind","click: selectNW");let b=document.createElement("input");b.type="button",b.value="NE",b.className="cesium-cesiumInspector-pickButton",b.setAttribute("data-bind","click: selectNE");let w=document.createElement("input");w.type="button",w.value="SW",w.className="cesium-cesiumInspector-pickButton",w.setAttribute("data-bind","click: selectSW");let I=document.createElement("input");I.type="button",I.value="SE",I.className="cesium-cesiumInspector-pickButton",I.setAttribute("data-bind","click: selectSE");let R=document.createElement("div");R.className="cesium-cesiumInspector-tileText",L.className="cesium-cesiumInspector-frustumStatistics",L.appendChild(R),L.setAttribute("data-bind","visible: hasPickedTile"),R.setAttribute("data-bind","html: tileText");let F=document.createElement("div");F.className="cesium-cesiumInspector-relativeText",F.textContent="Select relative:",L.appendChild(F);let k=document.createElement("table"),V=document.createElement("tr"),G=document.createElement("tr"),U=document.createElement("td");U.appendChild(N);let q=document.createElement("td");q.appendChild(_);let Y=document.createElement("td");Y.appendChild(b),V.appendChild(U),V.appendChild(q),V.appendChild(Y);let Q=document.createElement("td"),W=document.createElement("td");W.appendChild(w);let K=document.createElement("td");K.appendChild(I),G.appendChild(Q),G.appendChild(W),G.appendChild(K),k.appendChild(V),k.appendChild(G),L.appendChild(k),O.appendChild(c("Show bounding volume","tileBoundingSphere","hasPickedTile")),O.appendChild(c("Show only selected","filterTile","hasPickedTile")),D.appendChild(c("Wireframe","wireframe")),D.appendChild(c("Suspend LOD update","suspendUpdates")),D.appendChild(c("Show tile coordinates","tileCoordinates")),Ce.applyBindings(i,this._element)}Object.defineProperties(Uz.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});Uz.prototype.isDestroyed=function(){return!1};Uz.prototype.destroy=function(){return Ce.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var Vz=Uz;function kz(e,t){l(t)||(t=document.body),t=On(t);let n=this,i=Ce.observable(_r.fullscreen),o=Ce.observable(_r.enabled),r=t.ownerDocument;this.isFullscreen=void 0,Ce.defineProperty(this,"isFullscreen",{get:function(){return i()}}),this.isFullscreenEnabled=void 0,Ce.defineProperty(this,"isFullscreenEnabled",{get:function(){return o()},set:function(s){o(s&&_r.enabled)}}),this.tooltip=void 0,Ce.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?i()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=Sn(function(){_r.fullscreen?_r.exitFullscreen():_r.requestFullscreen(n._fullscreenElement)},Ce.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=y(On(e),r.body),this._callback=function(){i(_r.fullscreen)},r.addEventListener(_r.changeEventName,this._callback)}Object.defineProperties(kz.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}});kz.prototype.isDestroyed=function(){return!1};kz.prototype.destroy=function(){document.removeEventListener(_r.changeEventName,this._callback),ue(this)};var zz=kz;var Ygt="M 83.96875 17.5625 L 83.96875 17.59375 L 76.65625 24.875 L 97.09375 24.96875 L 76.09375 45.96875 L 81.9375 51.8125 L 102.78125 30.9375 L 102.875 51.15625 L 110.15625 43.875 L 110.1875 17.59375 L 83.96875 17.5625 z M 44.125 17.59375 L 17.90625 17.625 L 17.9375 43.90625 L 25.21875 51.1875 L 25.3125 30.96875 L 46.15625 51.8125 L 52 45.96875 L 31 25 L 51.4375 24.90625 L 44.125 17.59375 z M 46.0625 76.03125 L 25.1875 96.875 L 25.09375 76.65625 L 17.8125 83.9375 L 17.8125 110.21875 L 44 110.25 L 51.3125 102.9375 L 30.90625 102.84375 L 51.875 81.875 L 46.0625 76.03125 z M 82 76.15625 L 76.15625 82 L 97.15625 103 L 76.71875 103.0625 L 84.03125 110.375 L 110.25 110.34375 L 110.21875 84.0625 L 102.9375 76.8125 L 102.84375 97 L 82 76.15625 z",qgt="M 104.34375 17.5625 L 83.5 38.4375 L 83.40625 18.21875 L 76.125 25.5 L 76.09375 51.78125 L 102.3125 51.8125 L 102.3125 51.78125 L 109.625 44.5 L 89.1875 44.40625 L 110.1875 23.40625 L 104.34375 17.5625 z M 23.75 17.59375 L 17.90625 23.4375 L 38.90625 44.4375 L 18.5 44.53125 L 25.78125 51.8125 L 52 51.78125 L 51.96875 25.53125 L 44.6875 18.25 L 44.625 38.46875 L 23.75 17.59375 z M 25.6875 76.03125 L 18.375 83.3125 L 38.78125 83.40625 L 17.8125 104.40625 L 23.625 110.25 L 44.5 89.375 L 44.59375 109.59375 L 51.875 102.3125 L 51.875 76.0625 L 25.6875 76.03125 z M 102.375 76.15625 L 76.15625 76.1875 L 76.1875 102.4375 L 83.46875 109.71875 L 83.5625 89.53125 L 104.40625 110.375 L 110.25 104.53125 L 89.25 83.53125 L 109.6875 83.46875 L 102.375 76.15625 z";function Hz(e,t){e=On(e);let n=new zz(t,e);n._exitFullScreenPath=qgt,n._enterFullScreenPath=Ygt;let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-fullscreenButton",i.setAttribute("data-bind","attr: { title: tooltip },click: command,enable: isFullscreenEnabled,cesiumSvgPath: { path: isFullscreen ? _exitFullScreenPath : _enterFullScreenPath, width: 128, height: 128 }"),e.appendChild(i),Ce.applyBindings(n,i),this._container=e,this._viewModel=n,this._element=i}Object.defineProperties(Hz.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});Hz.prototype.isDestroyed=function(){return!1};Hz.prototype.destroy=function(){return this._viewModel.destroy(),Ce.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var Gz=Hz;function RAe(e,t){this._scene=e,this._duration=t;let n=this;this._command=Sn(function(){n._scene.camera.flyHome(n._duration)}),this.tooltip="View Home",Ce.track(this,["tooltip"])}Object.defineProperties(RAe.prototype,{scene:{get:function(){return this._scene}},command:{get:function(){return this._command}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}}});var Wz=RAe;function jz(e,t,n){e=On(e);let i=new Wz(t,n);i._svgPath="M14,4l-10,8.75h20l-4.25-3.7188v-4.6562h-2.812v2.1875l-2.938-2.5625zm-7.0938,9.906v10.094h14.094v-10.094h-14.094zm2.1876,2.313h3.3122v4.25h-3.3122v-4.25zm5.8442,1.281h3.406v6.438h-3.406v-6.438z";let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button cesium-home-button",o.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 28, height: 28 }"),e.appendChild(o),Ce.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(jz.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});jz.prototype.isDestroyed=function(){return!1};jz.prototype.destroy=function(){return Ce.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var Yz=jz;var BAe=1e3;function bf(e){l(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[new cz,new mz({scene:e.scene})],this._viewContainer=e.container,this._scene=e.scene,this._flightDuration=e.flightDuration,this._searchText="",this._isSearchInProgress=!1,this._wasGeocodeCancelled=!1,this._previousCredits=[],this._complete=new ge,this._suggestions=[],this._selectedSuggestion=void 0,this._showSuggestions=!0,this._handleArrowDown=NAe,this._handleArrowUp=LAe;let t=this;this._suggestionsVisible=Ce.pureComputed(function(){let o=Ce.getObservable(t,"_suggestions")().length>0,r=Ce.getObservable(t,"_showSuggestions")();return o&&r}),this._searchCommand=Sn(function(i){if(i=y(i,rx.SEARCH),t._focusTextbox=!1,l(t._selectedSuggestion))return t.activateSuggestion(t._selectedSuggestion),!1;if(t.hideSuggestions(),t.isSearchInProgress)$gt(t);else return Zgt(t,t._geocoderServices,i)}),this.deselectSuggestion=function(){t._selectedSuggestion=void 0},this.handleKeyDown=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38;return(r||s)&&o.preventDefault(),!0},this.handleKeyUp=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38,a=o.key==="Enter"||o.keyCode===13;return s?LAe(t):r?NAe(t):a&&t._searchCommand(),!0},this.activateSuggestion=function(i){t.hideSuggestions(),t._searchText=i.displayName;let o=i.destination;VAe(t),t.destinationFound(t,o)},this.hideSuggestions=function(){t._showSuggestions=!1,t._selectedSuggestion=void 0},this.showSuggestions=function(){t._showSuggestions=!0},this.handleMouseover=function(i,o){i!==t._selectedSuggestion&&(t._selectedSuggestion=i)},this.keepExpanded=!1,this.autoComplete=y(e.autocomplete,!0),this.destinationFound=y(e.destinationFound,bf.flyToDestination),this._focusTextbox=!1,Ce.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);let n=Ce.getObservable(this,"_searchText");n.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=n.subscribe(function(){bf._updateSearchSuggestions(t)}),this.isSearchInProgress=void 0,Ce.defineProperty(this,"isSearchInProgress",{get:function(){return this._isSearchInProgress}}),this.searchText=void 0,Ce.defineProperty(this,"searchText",{get:function(){return this.isSearchInProgress?"Searching...":this._searchText},set:function(i){this._searchText=i}}),this.flightDuration=void 0,Ce.defineProperty(this,"flightDuration",{get:function(){return this._flightDuration},set:function(i){this._flightDuration=i}})}Object.defineProperties(bf.prototype,{complete:{get:function(){return this._complete}},scene:{get:function(){return this._scene}},search:{get:function(){return this._searchCommand}},selectedSuggestion:{get:function(){return this._selectedSuggestion}},suggestions:{get:function(){return this._suggestions}}});bf.prototype.destroy=function(){this._suggestionSubscription.dispose()};function LAe(e){if(e._suggestions.length===0)return;let t=e._suggestions.indexOf(e._selectedSuggestion);if(t===-1||t===0){e._selectedSuggestion=void 0;return}let n=t-1;e._selectedSuggestion=e._suggestions[n],bf._adjustSuggestionsScroll(e,n)}function NAe(e){if(e._suggestions.length===0)return;let t=e._suggestions.length,i=(e._suggestions.indexOf(e._selectedSuggestion)+1)%t;e._selectedSuggestion=e._suggestions[i],bf._adjustSuggestionsScroll(e,i)}function Xgt(e,t){let n=l(t)?t.availability:void 0;return l(n)?Fg(t,[e]).then(function(i){return e=i[0],e.height+=BAe,e}):(e.height+=BAe,Promise.resolve(e))}function Kgt(e,t){let n=e._scene,o=n.mapProjection.ellipsoid,r=n.camera,s=n.terrainProvider,a=t,c;return t instanceof le?P.equalsEpsilon(t.south,t.north,P.EPSILON7)&&P.equalsEpsilon(t.east,t.west,P.EPSILON7)?t=le.center(t):c=vb(t,n):t=o.cartesianToCartographic(t),l(c)||(c=Xgt(t,s)),c.then(function(u){a=o.cartographicToCartesian(u)}).finally(function(){r.flyTo({destination:a,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:B.IDENTITY})})}async function Jgt(e,t,n){try{return{state:"fulfilled",value:await e.geocode(t,n),credits:e.credit}}catch(i){return{state:"rejected",reason:i}}}async function Zgt(e,t,n){let i=e._searchText;if(UAe(i)){e.showSuggestions();return}e._isSearchInProgress=!0,e._wasGeocodeCancelled=!1;let o,r;for(o=0;o<t.length;o++){if(e._wasGeocodeCancelled)return;if(r=await Jgt(t[o],i,n),l(r)&&r.state==="fulfilled"&&r.value.length>0)break}if(e._wasGeocodeCancelled)return;e._isSearchInProgress=!1,Yq(e);let s=r.value;if(r.state==="fulfilled"&&l(s)&&s.length>0){e._searchText=s[0].displayName,e.destinationFound(e,s[0].destination);let a=FAe(e,DI.getCreditsFromResult(s[0]));l(a)||jq(e,t[o].credit);return}e._searchText=`${i} (not found)`}function jq(e,t){l(t)&&!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&(e._scene.frameState.creditDisplay.addStaticCredit(t),e._previousCredits.push(t))}function FAe(e,t){return l(t)&&t.forEach(n=>jq(e,n)),t}function Yq(e){!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&e._previousCredits.forEach(t=>{e._scene.frameState.creditDisplay.removeStaticCredit(t)}),e._previousCredits.length=0}function Qgt(e,t){let n=On(e._viewContainer),i=n.getElementsByClassName("search-results")[0],r=n.getElementsByTagName("li")[t];if(t===0){i.scrollTop=0;return}let s=r.offsetTop;s+r.clientHeight>i.clientHeight?i.scrollTop=s+r.clientHeight:s<i.scrollTop&&(i.scrollTop=s)}function $gt(e){e._isSearchInProgress&&(e._isSearchInProgress=!1,e._wasGeocodeCancelled=!0)}function UAe(e){return/^\s*$/.test(e)}function VAe(e){Ce.getObservable(e,"_suggestions").removeAll()}async function eyt(e){if(!e.autoComplete)return;let t=e._searchText;if(VAe(e),Yq(e),!UAe(t))for(let n of e._geocoderServices){let i=await n.geocode(t,rx.AUTOCOMPLETE);if(e._suggestions=e._suggestions.concat(i),i.length>0){let o=!0;i.forEach(r=>{let s=DI.getCreditsFromResult(r);o=o&&!l(s),FAe(e,s)}),o&&jq(e,n.credit)}if(e._suggestions.length>=5)return}}bf.flyToDestination=Kgt;bf._updateSearchSuggestions=eyt;bf._adjustSuggestionsScroll=Qgt;bf.prototype.isDestroyed=function(){return!1};bf.prototype.destroy=function(){return Yq(this),ue(this)};var qz=bf;var tyt="M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",nyt="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z";function Xz(e){let t=On(e.container),n=new qz(e);n._startSearchPath=tyt,n._stopSearchPath=nyt;let i=document.createElement("form");i.setAttribute("data-bind","submit: search");let o=document.createElement("input");o.type="search",o.className="cesium-geocoder-input",o.setAttribute("placeholder","Enter an address or landmark..."),o.setAttribute("data-bind",'textInput: searchText,disable: isSearchInProgress,event: { keyup: handleKeyUp, keydown: handleKeyDown, mouseover: deselectSuggestion },css: { "cesium-geocoder-input-wide" : keepExpanded || searchText.length > 0 },hasFocus: _focusTextbox'),this._onTextBoxFocus=function(){setTimeout(function(){o.select()},0)},o.addEventListener("focus",this._onTextBoxFocus,!1),i.appendChild(o),this._textBox=o;let r=document.createElement("span");r.className="cesium-geocoder-searchButton",r.setAttribute("data-bind","click: search,cesiumSvgPath: { path: isSearchInProgress ? _stopSearchPath : _startSearchPath, width: 32, height: 32 }"),i.appendChild(r),t.appendChild(i);let s=document.createElement("div");s.className="search-results",s.setAttribute("data-bind","visible: _suggestionsVisible");let a=document.createElement("ul");a.setAttribute("data-bind","foreach: _suggestions");let c=document.createElement("li");a.appendChild(c),c.setAttribute("data-bind","text: $data.displayName, click: $parent.activateSuggestion, event: { mouseover: $parent.handleMouseover}, css: { active: $data === $parent._selectedSuggestion }"),s.appendChild(a),t.appendChild(s),Ce.applyBindings(n,i),Ce.applyBindings(n,s),this._container=t,this._searchSuggestionsContainer=s,this._viewModel=n,this._form=i,this._onInputBegin=function(u){let f=u.target;typeof u.composedPath=="function"&&(f=u.composedPath()[0]),t.contains(f)||(n._focusTextbox=!1,n.hideSuggestions())},this._onInputEnd=function(u){n._focusTextbox=!0,n.showSuggestions()},Gt.supportsPointerEvents()?(document.addEventListener("pointerdown",this._onInputBegin,!0),t.addEventListener("pointerup",this._onInputEnd,!0),t.addEventListener("pointercancel",this._onInputEnd,!0)):(document.addEventListener("mousedown",this._onInputBegin,!0),t.addEventListener("mouseup",this._onInputEnd,!0),document.addEventListener("touchstart",this._onInputBegin,!0),t.addEventListener("touchend",this._onInputEnd,!0),t.addEventListener("touchcancel",this._onInputEnd,!0))}Object.defineProperties(Xz.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}});Xz.prototype.isDestroyed=function(){return!1};Xz.prototype.destroy=function(){let e=this._container;return Gt.supportsPointerEvents()?(document.removeEventListener("pointerdown",this._onInputBegin,!0),e.removeEventListener("pointerup",this._onInputEnd,!0)):(document.removeEventListener("mousedown",this._onInputBegin,!0),e.removeEventListener("mouseup",this._onInputEnd,!0),document.removeEventListener("touchstart",this._onInputBegin,!0),e.removeEventListener("touchend",this._onInputEnd,!0)),this._viewModel.destroy(),Ce.cleanNode(this._form),Ce.cleanNode(this._searchSuggestionsContainer),e.removeChild(this._form),e.removeChild(this._searchSuggestionsContainer),this._textBox.removeEventListener("focus",this._onTextBoxFocus,!1),ue(this)};var Kz=Xz;var iyt="M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4853444 22.104033 11.423165 24.0625 13.84375 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 8.975298 28.305952 7.03125 25.875 7.03125 L 13.84375 7.03125 z",oyt="M 27.34375 1.65625 L 5.28125 27.9375 L 8.09375 30.3125 L 30.15625 4.03125 L 27.34375 1.65625 z M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4724893 20.232036 9.5676108 20.7379 9.75 21.21875 L 21.65625 7.03125 L 13.84375 7.03125 z M 28.21875 7.71875 L 14.53125 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 9.8371439 29.456025 8.4902779 28.21875 7.71875 z";function qq(){this._cameraClicked=new ge,this._closeClicked=new ge,this.maxHeight=500,this.enableCamera=!1,this.isCameraTracking=!1,this.showInfo=!1,this.titleText="",this.description="",Ce.track(this,["showInfo","titleText","description","maxHeight","enableCamera","isCameraTracking"]),this._loadingIndicatorHtml='<div class="cesium-infoBox-loadingContainer"><span class="cesium-infoBox-loading"></span></div>',this.cameraIconPath=void 0,Ce.defineProperty(this,"cameraIconPath",{get:function(){return!this.enableCamera||this.isCameraTracking?oyt:iyt}}),Ce.defineProperty(this,"_bodyless",{get:function(){return!l(this.description)||this.description.length===0}})}qq.prototype.maxHeightOffset=function(e){return`${this.maxHeight-e}px`};Object.defineProperties(qq.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}});var Jz=qq;function Zz(e){e=On(e);let t=document.createElement("div");t.className="cesium-infoBox",t.setAttribute("data-bind",'css: { "cesium-infoBox-visible" : showInfo, "cesium-infoBox-bodyless" : _bodyless }'),e.appendChild(t);let n=document.createElement("div");n.className="cesium-infoBox-title",n.setAttribute("data-bind","text: titleText"),t.appendChild(n);let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-infoBox-camera",i.setAttribute("data-bind",'attr: { title: "Focus camera on object" },click: function () { cameraClicked.raiseEvent(this); },enable: enableCamera,cesiumSvgPath: { path: cameraIconPath, width: 32, height: 32 }'),t.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-infoBox-close",o.setAttribute("data-bind","click: function () { closeClicked.raiseEvent(this); }"),o.innerHTML="×",t.appendChild(o);let r=document.createElement("iframe");r.className="cesium-infoBox-iframe",r.setAttribute("sandbox","allow-same-origin allow-popups allow-forms"),r.setAttribute("data-bind","style : { maxHeight : maxHeightOffset(40) }"),r.setAttribute("allowfullscreen",!0),t.appendChild(r);let s=new Jz;Ce.applyBindings(s,t),this._container=e,this._element=t,this._frame=r,this._viewModel=s,this._descriptionSubscription=void 0;let a=this;r.addEventListener("load",function(){let c=r.contentDocument,u=c.createElement("link");u.href=en("Widgets/InfoBox/InfoBoxDescription.css"),u.rel="stylesheet",u.type="text/css";let f=c.createElement("div");f.className="cesium-infoBox-description",c.head.appendChild(u),c.body.appendChild(f),a._descriptionSubscription=xa(s,"description",function(d){r.style.height="5px",f.innerHTML=d;let p=null,g=f.firstElementChild;if(g!==null&&f.childNodes.length===1){let A=window.getComputedStyle(g);if(A!==null){let x=A["background-color"],C=z.fromCssColorString(x);l(C)&&C.alpha!==0&&(p=A["background-color"])}}t.style["background-color"]=p;let h=f.getBoundingClientRect().height;r.style.height=`${h}px`})}),r.setAttribute("src","about:blank")}Object.defineProperties(Zz.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}});Zz.prototype.isDestroyed=function(){return!1};Zz.prototype.destroy=function(){let e=this._container;return Ce.cleanNode(this._element),e.removeChild(this._element),l(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),ue(this)};var Qz=Zz;function kAe(){this.showInstructions=!1;let e=this;this._command=Sn(function(){e.showInstructions=!e.showInstructions}),this._showClick=Sn(function(){e._touch=!1}),this._showTouch=Sn(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",Ce.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties(kAe.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});var $z=kAe;function eH(e){let t=On(e.container),n=new $z,i=y(e.instructionsInitiallyVisible,!1);n.showInstructions=i,n._svgPath="M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z";let o=document.createElement("span");o.className="cesium-navigationHelpButton-wrapper",t.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-navigation-help-button",r.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 32, height: 32 }"),o.appendChild(r);let s=document.createElement("div");s.className="cesium-navigation-help",s.setAttribute("data-bind",'css: { "cesium-navigation-help-visible" : showInstructions}'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-navigation-button cesium-navigation-button-left",a.setAttribute("data-bind",'click: showClick, css: {"cesium-navigation-button-selected": !_touch, "cesium-navigation-button-unselected": _touch}');let c=document.createElement("img");c.src=en("Widgets/Images/NavigationHelp/Mouse.svg"),c.className="cesium-navigation-button-icon",c.style.width="25px",c.style.height="25px",a.appendChild(c),a.appendChild(document.createTextNode("Mouse"));let u=document.createElement("button");u.type="button",u.className="cesium-navigation-button cesium-navigation-button-right",u.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');let f=document.createElement("img");f.src=en("Widgets/Images/NavigationHelp/Touch.svg"),f.className="cesium-navigation-button-icon",f.style.width="25px",f.style.height="25px",u.appendChild(f),u.appendChild(document.createTextNode("Touch")),s.appendChild(a),s.appendChild(u);let d=document.createElement("div");d.className="cesium-click-navigation-help cesium-navigation-help-instructions",d.setAttribute("data-bind",'css: { "cesium-click-navigation-help-visible" : !_touch}'),d.innerHTML=` <table> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/MouseLeft.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">Left click + drag</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/MouseRight.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Right click + drag, or</div> <div class="cesium-navigation-help-details">Mouse wheel scroll</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/MouseMiddle.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Rotate view</div> <div class="cesium-navigation-help-details">Middle click + drag, or</div> <div class="cesium-navigation-help-details">CTRL + Left/Right click + drag</div> </td> </tr> </table>`,s.appendChild(d);let p=document.createElement("div");p.className="cesium-touch-navigation-help cesium-navigation-help-instructions",p.setAttribute("data-bind",'css: { "cesium-touch-navigation-help-visible" : _touch}'),p.innerHTML=` <table> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/TouchDrag.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">One finger drag</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/TouchZoom.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Two finger pinch</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/TouchTilt.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Tilt view</div> <div class="cesium-navigation-help-details">Two finger drag, same direction</div> </td> </tr> <tr> <td><img src="${en("Widgets/Images/NavigationHelp/TouchRotate.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-tilt">Rotate view</div> <div class="cesium-navigation-help-details">Two finger drag, opposite direction</div> </td> </tr> </table>`,s.appendChild(p),Ce.applyBindings(n,o),this._container=t,this._viewModel=n,this._wrapper=o,this._closeInstructions=function(g){o.contains(g.target)||(n.showInstructions=!1)},Gt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(eH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});eH.prototype.isDestroyed=function(){return!1};eH.prototype.destroy=function(){return Gt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),Ce.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var tH=eH;function Xq(e){this._scene=e.scene,this.lowFrameRateMessage=y(e.lowFrameRateMessage,"This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers."),this.lowFrameRateMessageDismissed=!1,this.showingLowFrameRateMessage=!1,Ce.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);let t=this;this._dismissMessage=Sn(function(){t.showingLowFrameRateMessage=!1,t.lowFrameRateMessageDismissed=!0});let n=_4.fromScene(e.scene);this._unsubscribeLowFrameRate=n.lowFrameRate.addEventListener(function(){t.lowFrameRateMessageDismissed||(t.showingLowFrameRateMessage=!0)}),this._unsubscribeNominalFrameRate=n.nominalFrameRate.addEventListener(function(){t.showingLowFrameRateMessage=!1})}Object.defineProperties(Xq.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}});Xq.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),ue(this)};var nH=Xq;function iH(e){let t=On(e.container),n=new nH(e),i=document.createElement("div");i.className="cesium-performance-watchdog-message-area",i.setAttribute("data-bind","visible: showingLowFrameRateMessage");let o=document.createElement("button");o.setAttribute("type","button"),o.className="cesium-performance-watchdog-message-dismiss",o.innerHTML="×",o.setAttribute("data-bind","click: dismissMessage"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-performance-watchdog-message",r.setAttribute("data-bind","html: lowFrameRateMessage"),i.appendChild(r),t.appendChild(i),Ce.applyBindings(n,i),this._container=t,this._viewModel=n,this._element=i}Object.defineProperties(iH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});iH.prototype.isDestroyed=function(){return!1};iH.prototype.destroy=function(){return this._viewModel.destroy(),Ce.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var oH=iH;function rH(e){this._scene=e,this._orthographic=e.camera.frustum instanceof tn,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=e.mode,Ce.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);let t=this;Ce.defineProperty(this,"selectedTooltip",function(){return t._orthographic?t.tooltipOrthographic:t.tooltipPerspective}),this._toggleDropDown=Sn(function(){t.sceneMode===ne.SCENE2D||t._flightInProgress||(t.dropDownVisible=!t.dropDownVisible)}),this._eventHelper=new Mr,this._eventHelper.add(e.morphComplete,function(n,i,o,r){t.sceneMode=o,t._orthographic=o===ne.SCENE2D||t._scene.camera.frustum instanceof tn}),this._eventHelper.add(e.preRender,function(){t._flightInProgress=l(e.camera._currentFlight)}),this._switchToPerspective=Sn(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToPerspectiveFrustum(),t._orthographic=!1,t.dropDownVisible=!1)}),this._switchToOrthographic=Sn(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToOrthographicFrustum(),t._orthographic=!0,t.dropDownVisible=!1)}),this._sceneMode=ne}Object.defineProperties(rH.prototype,{scene:{get:function(){return this._scene}},toggleDropDown:{get:function(){return this._toggleDropDown}},switchToPerspective:{get:function(){return this._switchToPerspective}},switchToOrthographic:{get:function(){return this._switchToOrthographic}},isOrthographicProjection:{get:function(){return this._orthographic}}});rH.prototype.isDestroyed=function(){return!1};rH.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var sH=rH;var ryt="M 28.15625,10.4375 9.125,13.21875 13.75,43.25 41.75,55.09375 50.8125,37 54.5,11.9375 z m 0.125,3 19.976451,0.394265 L 43.03125,16.875 22.6875,14.28125 z M 50.971746,15.705477 47.90625,36.03125 42.53125,46 44.84375,19.3125 z M 12.625,16.03125 l 29.15625,3.6875 -2.65625,31 L 16.4375,41.125 z",syt="m 31.560594,6.5254438 -20.75,12.4687502 0.1875,24.5625 22.28125,11.8125 19.5,-12 0.65625,-0.375 0,-0.75 0.0312,-23.21875 z m 0.0625,3.125 16.65625,9.5000002 -16.125,10.28125 -17.34375,-9.71875 z m 18.96875,11.1875002 0.15625,20.65625 -17.46875,10.59375 0.15625,-20.28125 z m -37.0625,1.25 17.21875,9.625 -0.15625,19.21875 -16.9375,-9 z";function aH(e,t){e=On(e);let n=new sH(t);n._perspectivePath=ryt,n._orthographicPath=syt;let i=document.createElement("span");i.className="cesium-projectionPicker-wrapper cesium-toolbar-button",e.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button",o.setAttribute("data-bind",'css: { "cesium-projectionPicker-buttonPerspective": !_orthographic, "cesium-projectionPicker-buttonOrthographic": _orthographic, "cesium-button-disabled" : sceneMode === _sceneMode.SCENE2D || _flightInProgress, "cesium-projectionPicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),o.innerHTML='<!-- ko cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64, css: "cesium-projectionPicker-iconPerspective" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64, css: "cesium-projectionPicker-iconOrthographic" } --><!-- /ko -->',i.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",r.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && _orthographic), "cesium-projectionPicker-none" : !_orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible },attr: { title: tooltipPerspective },click: switchToPerspective,cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64 }'),i.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && !_orthographic), "cesium-projectionPicker-none" : _orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible},attr: { title: tooltipOrthographic },click: switchToOrthographic,cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64 }'),i.appendChild(s),Ce.applyBindings(n,i),this._viewModel=n,this._container=e,this._wrapper=i,this._closeDropDown=function(a){i.contains(a.target)||(n.dropDownVisible=!1)},Gt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(aH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});aH.prototype.isDestroyed=function(){return!1};aH.prototype.destroy=function(){return this._viewModel.destroy(),Gt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Ce.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var cH=aH;function lH(e,t){this._scene=e;let n=this,i=function(o,r,s,a){n.sceneMode=s,n.dropDownVisible=!1};this._eventHelper=new Mr,this._eventHelper.add(e.morphStart,i),this._duration=y(t,2),this.sceneMode=e.mode,this.dropDownVisible=!1,this.tooltip2D="2D",this.tooltip3D="3D",this.tooltipColumbusView="Columbus View",Ce.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,Ce.defineProperty(this,"selectedTooltip",function(){let o=n.sceneMode;return o===ne.SCENE2D?n.tooltip2D:o===ne.SCENE3D?n.tooltip3D:n.tooltipColumbusView}),this._toggleDropDown=Sn(function(){n.dropDownVisible=!n.dropDownVisible}),this._morphTo2D=Sn(function(){e.morphTo2D(n._duration)}),this._morphTo3D=Sn(function(){e.morphTo3D(n._duration)}),this._morphToColumbusView=Sn(function(){e.morphToColumbusView(n._duration)}),this._sceneMode=ne}Object.defineProperties(lH.prototype,{scene:{get:function(){return this._scene}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}},toggleDropDown:{get:function(){return this._toggleDropDown}},morphTo2D:{get:function(){return this._morphTo2D}},morphTo3D:{get:function(){return this._morphTo3D}},morphToColumbusView:{get:function(){return this._morphToColumbusView}}});lH.prototype.isDestroyed=function(){return!1};lH.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var uH=lH;var ayt="m 32.401392,4.9330437 c -7.087603,0 -14.096095,2.884602 -19.10793,7.8946843 -5.0118352,5.010083 -7.9296167,11.987468 -7.9296167,19.072999 0,7.085531 2.9177815,14.097848 7.9296167,19.107931 4.837653,4.835961 11.541408,7.631372 18.374354,7.82482 0.05712,0.01231 0.454119,0.139729 0.454119,0.139729 l 0.03493,-0.104797 c 0.08246,7.84e-4 0.162033,0.03493 0.244525,0.03493 0.08304,0 0.161515,-0.03414 0.244526,-0.03493 l 0.03493,0.104797 c 0,0 0.309474,-0.129487 0.349323,-0.139729 6.867765,-0.168094 13.582903,-2.965206 18.444218,-7.82482 2.558195,-2.5573 4.551081,-5.638134 5.903547,-8.977584 1.297191,-3.202966 2.02607,-6.661489 2.02607,-10.130347 0,-6.237309 -2.366261,-12.31219 -6.322734,-17.116794 -0.0034,-0.02316 0.0049,-0.04488 0,-0.06986 -0.01733,-0.08745 -0.104529,-0.278855 -0.104797,-0.279458 -5.31e-4,-0.0012 -0.522988,-0.628147 -0.523984,-0.62878 -3.47e-4,-2.2e-4 -0.133444,-0.03532 -0.244525,-0.06987 C 51.944299,13.447603 51.751076,13.104317 51.474391,12.827728 46.462556,7.8176457 39.488996,4.9330437 32.401392,4.9330437 z m -2.130866,3.5281554 0.104797,9.6762289 c -4.111695,-0.08361 -7.109829,-0.423664 -9.257041,-0.943171 1.198093,-2.269271 2.524531,-4.124404 3.91241,-5.414496 2.167498,-2.0147811 3.950145,-2.8540169 5.239834,-3.3185619 z m 2.794579,0 c 1.280302,0.4754953 3.022186,1.3285948 5.065173,3.2486979 1.424667,1.338973 2.788862,3.303645 3.982275,5.728886 -2.29082,0.403367 -5.381258,0.621049 -8.942651,0.698645 L 33.065105,8.4611991 z m 5.728886,0.2445256 c 4.004072,1.1230822 7.793098,3.1481363 10.724195,6.0782083 0.03468,0.03466 0.07033,0.06991 0.104797,0.104797 -0.45375,0.313891 -0.923054,0.663002 -1.956205,1.082899 -0.647388,0.263114 -1.906242,0.477396 -2.829511,0.733577 -1.382296,-2.988132 -3.027146,-5.368585 -4.785716,-7.0213781 -0.422866,-0.397432 -0.835818,-0.6453247 -1.25756,-0.9781032 z m -15.33525,0.7685092 c -0.106753,0.09503 -0.207753,0.145402 -0.31439,0.244526 -1.684973,1.5662541 -3.298068,3.8232211 -4.680919,6.5672591 -0.343797,-0.14942 -1.035052,-0.273198 -1.292493,-0.419186 -0.956528,-0.542427 -1.362964,-1.022024 -1.537018,-1.292493 -0.0241,-0.03745 -0.01868,-0.0401 -0.03493,-0.06986 2.250095,-2.163342 4.948824,-3.869984 7.859752,-5.0302421 z m -9.641296,7.0912431 c 0.464973,0.571618 0.937729,1.169056 1.956205,1.746612 0.349907,0.198425 1.107143,0.335404 1.537018,0.523983 -1.20166,3.172984 -1.998037,7.051901 -2.165798,11.772162 C 14.256557,30.361384 12.934823,30.161483 12.280427,29.90959 10.644437,29.279855 9.6888882,28.674891 9.1714586,28.267775 8.6540289,27.860658 8.6474751,27.778724 8.6474751,27.778724 l -0.069864,0.03493 C 9.3100294,23.691285 11.163248,19.798527 13.817445,16.565477 z m 37.552149,0.523984 c 2.548924,3.289983 4.265057,7.202594 4.890513,11.318043 -0.650428,0.410896 -1.756876,1.001936 -3.563088,1.606882 -1.171552,0.392383 -3.163859,0.759153 -4.960377,1.117832 -0.04367,-4.752703 -0.784809,-8.591423 -1.88634,-11.807094 0.917574,-0.263678 2.170552,-0.486495 2.864443,-0.76851 1.274693,-0.518066 2.003942,-1.001558 2.654849,-1.467153 z m -31.439008,2.619917 c 2.487341,0.672766 5.775813,1.137775 10.479669,1.222628 l 0.104797,10.689263 0,0.03493 0,0.733577 c -5.435005,-0.09059 -9.512219,-0.519044 -12.610536,-1.117831 0.106127,-4.776683 0.879334,-8.55791 2.02607,-11.562569 z m 23.264866,0.31439 c 1.073459,3.067541 1.833795,6.821314 1.816476,11.702298 -3.054474,0.423245 -7.062018,0.648559 -11.702298,0.698644 l 0,-0.838373 -0.104796,-10.654331 c 4.082416,-0.0864 7.404468,-0.403886 9.990618,-0.908238 z M 8.2632205,30.922625 c 0.7558676,0.510548 1.5529563,1.013339 3.0041715,1.57195 0.937518,0.360875 2.612202,0.647642 3.91241,0.978102 0.112814,3.85566 0.703989,7.107756 1.606883,9.920754 -1.147172,-0.324262 -2.644553,-0.640648 -3.423359,-0.978102 -1.516688,-0.657177 -2.386627,-1.287332 -2.864443,-1.71168 -0.477816,-0.424347 -0.489051,-0.489051 -0.489051,-0.489051 L 9.8002387,40.319395 C 8.791691,37.621767 8.1584238,34.769583 8.1584238,31.900727 c 0,-0.330153 0.090589,-0.648169 0.1047967,-0.978102 z m 48.2763445,0.419186 c 0.0047,0.188973 0.06986,0.36991 0.06986,0.558916 0,2.938869 -0.620228,5.873558 -1.676747,8.628261 -0.07435,0.07583 -0.06552,0.07411 -0.454119,0.349323 -0.606965,0.429857 -1.631665,1.042044 -3.318562,1.676747 -1.208528,0.454713 -3.204964,0.850894 -5.135038,1.25756 0.84593,-2.765726 1.41808,-6.005357 1.606883,-9.815957 2.232369,-0.413371 4.483758,-0.840201 5.938479,-1.327425 1.410632,-0.472457 2.153108,-0.89469 2.96924,-1.327425 z m -38.530252,2.864443 c 3.208141,0.56697 7.372279,0.898588 12.575603,0.978103 l 0.174662,9.885821 c -4.392517,-0.06139 -8.106722,-0.320566 -10.863925,-0.803441 -1.051954,-2.664695 -1.692909,-6.043794 -1.88634,-10.060483 z m 26.793022,0.31439 c -0.246298,3.923551 -0.877762,7.263679 -1.816476,9.885822 -2.561957,0.361954 -5.766249,0.560708 -9.431703,0.62878 l -0.174661,-9.815957 c 4.491734,-0.04969 8.334769,-0.293032 11.42284,-0.698645 z M 12.035901,44.860585 c 0.09977,0.04523 0.105535,0.09465 0.209594,0.139729 1.337656,0.579602 3.441099,1.058072 5.589157,1.537018 1.545042,3.399208 3.548524,5.969402 5.589157,7.789888 -3.034411,-1.215537 -5.871615,-3.007978 -8.174142,-5.309699 -1.245911,-1.245475 -2.271794,-2.662961 -3.213766,-4.156936 z m 40.69605,0 c -0.941972,1.493975 -1.967855,2.911461 -3.213765,4.156936 -2.74253,2.741571 -6.244106,4.696717 -9.955686,5.868615 0.261347,-0.241079 0.507495,-0.394491 0.768509,-0.663713 1.674841,-1.727516 3.320792,-4.181056 4.645987,-7.265904 2.962447,-0.503021 5.408965,-1.122293 7.161107,-1.781544 0.284034,-0.106865 0.337297,-0.207323 0.593848,-0.31439 z m -31.404076,2.305527 c 2.645807,0.376448 5.701178,0.649995 9.466635,0.698645 l 0.139729,7.789888 c -1.38739,-0.480844 -3.316218,-1.29837 -5.659022,-3.388427 -1.388822,-1.238993 -2.743668,-3.0113 -3.947342,-5.100106 z m 20.365491,0.104797 c -1.04872,2.041937 -2.174337,3.779068 -3.353494,4.995309 -1.853177,1.911459 -3.425515,2.82679 -4.611055,3.353494 l -0.139729,-7.789887 c 3.13091,-0.05714 5.728238,-0.278725 8.104278,-0.558916 z",cyt="m 2.9825053,17.550598 0,1.368113 0,26.267766 0,1.368113 1.36811,0 54.9981397,0 1.36811,0 0,-1.368113 0,-26.267766 0,-1.368113 -1.36811,0 -54.9981397,0 -1.36811,0 z m 2.73623,2.736226 10.3292497,0 0,10.466063 -10.3292497,0 0,-10.466063 z m 13.0654697,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 10.32926,0 0,10.466063 -10.32926,0 0,-10.466063 z m -41.9326497,13.202288 10.3292497,0 0,10.329252 -10.3292497,0 0,-10.329252 z m 13.0654697,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 10.32926,0 0,10.329252 -10.32926,0 0,-10.329252 z",lyt="m 14.723969,17.675598 -0.340489,0.817175 -11.1680536,26.183638 -0.817175,1.872692 2.076986,0 54.7506996,0 2.07698,0 -0.81717,-1.872692 -11.16805,-26.183638 -0.34049,-0.817175 -0.91933,0 -32.414586,0 -0.919322,0 z m 1.838643,2.723916 6.196908,0 -2.928209,10.418977 -7.729111,0 4.460412,-10.418977 z m 9.02297,0 4.903049,0 0,10.418977 -7.831258,0 2.928209,-10.418977 z m 7.626964,0 5.584031,0 2.62176,10.418977 -8.205791,0 0,-10.418977 z m 8.410081,0 5.51593,0 4.46042,10.418977 -7.38863,0 -2.58772,-10.418977 z m -30.678091,13.142892 8.103649,0 -2.89416,10.282782 -9.6018026,0 4.3923136,-10.282782 z m 10.929711,0 8.614384,0 0,10.282782 -11.508544,0 2.89416,-10.282782 z m 11.338299,0 8.852721,0 2.58772,10.282782 -11.440441,0 0,-10.282782 z m 11.678781,0 7.86531,0 4.39231,10.282782 -9.6699,0 -2.58772,-10.282782 z";function fH(e,t,n){e=On(e);let i=new uH(t,n);i._globePath=ayt,i._flatMapPath=cyt,i._columbusViewPath=lyt;let o=document.createElement("span");o.className="cesium-sceneModePicker-wrapper cesium-toolbar-button",e.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button",r.setAttribute("data-bind",'css: { "cesium-sceneModePicker-button2D": sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-button3D": sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-buttonColumbusView": sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),r.innerHTML='<!-- ko cesiumSvgPath: { path: _globePath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon3D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon2D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-iconColumbusView" } --><!-- /ko -->',o.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE3D)) || (!dropDownVisible && (sceneMode === _sceneMode.SCENE3D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip3D },click: morphTo3D,cesiumSvgPath: { path: _globePath, width: 64, height: 64 }'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",a.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE2D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip2D },click: morphTo2D,cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64 }'),o.appendChild(a);let c=document.createElement("button");c.type="button",c.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",c.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.COLUMBUS_VIEW)) || (!dropDownVisible && (sceneMode === _sceneMode.COLUMBUS_VIEW)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-hidden" : !dropDownVisible},attr: { title: tooltipColumbusView },click: morphToColumbusView,cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64 }'),o.appendChild(c),Ce.applyBindings(i,o),this._viewModel=i,this._container=e,this._wrapper=o,this._closeDropDown=function(u){o.contains(u.target)||(i.dropDownVisible=!1)},Gt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(fH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});fH.prototype.isDestroyed=function(){return!1};fH.prototype.destroy=function(){return this._viewModel.destroy(),Gt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Ce.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var dH=fH;var uyt=new H,mH="-1000px";function kI(e,t,n){this._scene=e,this._screenPositionX=mH,this._screenPositionY=mH,this._tweens=e.tweens,this._container=y(n,document.body),this._selectionIndicatorElement=t,this._scale=1,this.position=void 0,this.showSelection=!1,Ce.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,Ce.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&l(this.position)}}),Ce.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(i,o){return Qi.wgs84ToWindowCoordinates(e,i,o)}}kI.prototype.update=function(){if(this.showSelection&&l(this.position)){let e=this.computeScreenSpacePosition(this.position,uyt);if(!l(e))this._screenPositionX=mH,this._screenPositionY=mH;else{let t=this._container,n=t.parentNode.clientWidth,i=t.parentNode.clientHeight,o=this._selectionIndicatorElement.clientWidth,r=o*.5;e.x=Math.min(Math.max(e.x,-o),n+o)-r,e.y=Math.min(Math.max(e.y,-o),i+o)-r,this._screenPositionX=`${Math.floor(e.x+.25)}px`,this._screenPositionY=`${Math.floor(e.y+.25)}px`}}};kI.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:Nr.EXPONENTIAL_OUT})};kI.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:Nr.EXPONENTIAL_OUT})};Object.defineProperties(kI.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});var hH=kI;function pH(e,t){e=On(e),this._container=e;let n=document.createElement("div");n.className="cesium-selection-wrapper",n.setAttribute("data-bind",'style: { "top" : _screenPositionY, "left" : _screenPositionX },css: { "cesium-selection-wrapper-visible" : isVisible }'),e.appendChild(n),this._element=n;let i="http://www.w3.org/2000/svg",o="M -34 -34 L -34 -11.25 L -30 -15.25 L -30 -30 L -15.25 -30 L -11.25 -34 L -34 -34 z M 11.25 -34 L 15.25 -30 L 30 -30 L 30 -15.25 L 34 -11.25 L 34 -34 L 11.25 -34 z M -34 11.25 L -34 34 L -11.25 34 L -15.25 30 L -30 30 L -30 15.25 L -34 11.25 z M 34 11.25 L 30 15.25 L 30 30 L 15.25 30 L 11.25 34 L 34 34 L 34 11.25 z",r=document.createElementNS(i,"svg:svg");r.setAttribute("width",160),r.setAttribute("height",160),r.setAttribute("viewBox","0 0 160 160");let s=document.createElementNS(i,"g");s.setAttribute("transform","translate(80,80)"),r.appendChild(s);let a=document.createElementNS(i,"path");a.setAttribute("data-bind","attr: { transform: _transform }"),a.setAttribute("d",o),s.appendChild(a),n.appendChild(r);let c=new hH(t,this._element,this._container);this._viewModel=c,Ce.applyBindings(this._viewModel,this._element)}Object.defineProperties(pH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});pH.prototype.isDestroyed=function(){return!1};pH.prototype.destroy=function(){let e=this._container;return Ce.cleanNode(this._element),e.removeChild(this._element),ue(this)};var _H=pH;function ux(e,t,n){this._color=e,this._height=t,this._base=y(n,0)}ux.prototype.getHeight=function(){return this._height};ux.prototype.getBase=function(){return this._base};ux.prototype.getStartTime=function(){return this._start};ux.prototype.getStopTime=function(){return this._stop};ux.prototype.setRange=function(e,t){this._start=e,this._stop=t};ux.prototype.render=function(e){let t="";if(this._start&&this._stop&&this._color){let n=ee.secondsDifference(this._start,e.epochJulian),i=Math.round(e.timeBarWidth*e.getAlpha(n)),o=ee.secondsDifference(this._stop,e.epochJulian),r=Math.round(e.timeBarWidth*e.getAlpha(o))-i;i<0&&(r+=i,i=0),i+r>e.timeBarWidth&&(r=e.timeBarWidth-i),r>0&&(t=`<span class="cesium-timeline-highlight" style="left: ${i.toString()}px; width: ${r.toString()}px; bottom: ${this._base.toString()}px; height: ${this._height}px; background-color: ${this._color};"></span>`)}return t};var gH=ux;function zAe(e,t,n,i){this.interval=e,this.height=t,this.color=n||new z(.5,.5,.5,1),this.backgroundColor=i||new z(0,0,0,0)}zAe.prototype.render=function(e,t){let n=this.interval.start,i=this.interval.stop,o=t.startJulian,r=ee.addSeconds(t.startJulian,t.duration,new ee);if(ee.lessThan(n,o)&&ee.greaterThan(i,r))e.fillStyle=this.color.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height);else if(ee.lessThanOrEquals(n,r)&&ee.greaterThanOrEquals(i,o)){let s,a,c;for(s=0;s<t.timeBarWidth;++s){let u=ee.addSeconds(t.startJulian,s/t.timeBarWidth*t.duration,new ee);!l(a)&&ee.greaterThanOrEquals(u,n)?a=s:!l(c)&&ee.greaterThanOrEquals(u,i)&&(c=s)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height),l(a)&&(l(c)||(c=t.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(a,t.y,Math.max(c-a,1),this.height))}};var yH=zAe;var Kq=1e12,Sf={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},Bc={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},Ly=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800,1296e3,2592e3,5184e3,7776e3,15552e3,31536e3,63072e3,126144e3,15768e4,31536e4,63072e4,126144e4,15768e5,31536e5,63072e5,126144e5,15768e6,31536e6],fyt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Lc(e,t){e=On(e);let n=e.ownerDocument;this.container=e;let i=n.createElement("div");i.className="cesium-timeline-main",e.appendChild(i),this._topDiv=i,this._endJulian=void 0,this._epochJulian=void 0,this._lastXPos=void 0,this._scrubElement=void 0,this._startJulian=void 0,this._timeBarSecondsSpan=void 0,this._clock=t,this._scrubJulian=t.currentTime,this._mainTicSpan=-1,this._mouseMode=Sf.none,this._touchMode=Bc.none,this._touchState={centerX:0,spanX:0},this._mouseX=0,this._timelineDrag=0,this._timelineDragLocation=void 0,this._lastHeight=void 0,this._lastWidth=void 0,this._topDiv.innerHTML='<div class="cesium-timeline-bar"></div><div class="cesium-timeline-trackContainer"><canvas class="cesium-timeline-tracks" width="10" height="1"></canvas></div><div class="cesium-timeline-needle"></div><span class="cesium-timeline-ruler"></span>',this._timeBarEle=this._topDiv.childNodes[0],this._trackContainer=this._topDiv.childNodes[1],this._trackListEle=this._topDiv.childNodes[1].childNodes[0],this._needleEle=this._topDiv.childNodes[2],this._rulerEle=this._topDiv.childNodes[3],this._context=this._trackListEle.getContext("2d"),this._trackList=[],this._highlightRanges=[],this.zoomTo(t.startTime,t.stopTime),this._onMouseDown=dyt(this),this._onMouseUp=myt(this),this._onMouseMove=hyt(this),this._onMouseWheel=pyt(this),this._onTouchStart=_yt(this),this._onTouchMove=yyt(this),this._onTouchEnd=gyt(this);let o=this._timeBarEle;n.addEventListener("mouseup",this._onMouseUp,!1),n.addEventListener("mousemove",this._onMouseMove,!1),o.addEventListener("mousedown",this._onMouseDown,!1),o.addEventListener("DOMMouseScroll",this._onMouseWheel,!1),o.addEventListener("mousewheel",this._onMouseWheel,!1),o.addEventListener("touchstart",this._onTouchStart,!1),o.addEventListener("touchmove",this._onTouchMove,!1),o.addEventListener("touchend",this._onTouchEnd,!1),o.addEventListener("touchcancel",this._onTouchEnd,!1),this._topDiv.oncontextmenu=function(){return!1},t.onTick.addEventListener(this.updateFromClock,this),this.updateFromClock()}Lc.prototype.addEventListener=function(e,t,n){this._topDiv.addEventListener(e,t,n)};Lc.prototype.removeEventListener=function(e,t,n){this._topDiv.removeEventListener(e,t,n)};Lc.prototype.isDestroyed=function(){return!1};Lc.prototype.destroy=function(){this._clock.onTick.removeEventListener(this.updateFromClock,this);let e=this.container.ownerDocument;e.removeEventListener("mouseup",this._onMouseUp,!1),e.removeEventListener("mousemove",this._onMouseMove,!1);let t=this._timeBarEle;t.removeEventListener("mousedown",this._onMouseDown,!1),t.removeEventListener("DOMMouseScroll",this._onMouseWheel,!1),t.removeEventListener("mousewheel",this._onMouseWheel,!1),t.removeEventListener("touchstart",this._onTouchStart,!1),t.removeEventListener("touchmove",this._onTouchMove,!1),t.removeEventListener("touchend",this._onTouchEnd,!1),t.removeEventListener("touchcancel",this._onTouchEnd,!1),this.container.removeChild(this._topDiv),ue(this)};Lc.prototype.addHighlightRange=function(e,t,n){let i=new gH(e,t,n);return this._highlightRanges.push(i),this.resize(),i};Lc.prototype.addTrack=function(e,t,n,i){let o=new yH(e,t,n,i);return this._trackList.push(o),this._lastHeight=void 0,this.resize(),o};Lc.prototype.zoomTo=function(e,t){if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=ee.secondsDifference(t,e),this._clock&&this._clock.clockRange!==Lr.UNBOUNDED){let i=this._clock.startTime,o=this._clock.stopTime,r=ee.secondsDifference(o,i),s=ee.secondsDifference(i,this._startJulian),a=ee.secondsDifference(o,this._endJulian);this._timeBarSecondsSpan>=r?(this._timeBarSecondsSpan=r,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):s>0?(this._endJulian=ee.addSeconds(this._endJulian,s,new ee),this._startJulian=i,this._timeBarSecondsSpan=ee.secondsDifference(this._endJulian,this._startJulian)):a<0&&(this._startJulian=ee.addSeconds(this._startJulian,a,new ee),this._endJulian=o,this._timeBarSecondsSpan=ee.secondsDifference(this._endJulian,this._startJulian))}this._makeTics();let n=document.createEvent("Event");n.initEvent("setzoom",!0,!0),n.startJulian=this._startJulian,n.endJulian=this._endJulian,n.epochJulian=this._epochJulian,n.totalSpan=this._timeBarSecondsSpan,n.mainTicSpan=this._mainTicSpan,this._topDiv.dispatchEvent(n)};Lc.prototype.zoomFrom=function(e){let t=ee.secondsDifference(this._scrubJulian,this._startJulian);e>1||t<0||t>this._timeBarSecondsSpan?t=this._timeBarSecondsSpan*.5:t+=t-this._timeBarSecondsSpan*.5;let n=this._timeBarSecondsSpan-t;this.zoomTo(ee.addSeconds(this._startJulian,t-t*e,new ee),ee.addSeconds(this._endJulian,n*e-n,new ee))};function Jq(e){return e<10?`0${e.toString()}`:e.toString()}Lc.prototype.makeLabel=function(e){let t=ee.toGregorianDate(e),n=t.millisecond,i=" UTC";if(n>0&&this._timeBarSecondsSpan<3600){for(i=Math.floor(n).toString();i.length<3;)i=`0${i}`;i=`.${i}`}return`${fyt[t.month-1]} ${t.day} ${t.year} ${Jq(t.hour)}:${Jq(t.minute)}:${Jq(t.second)}${i}`};Lc.prototype.smallestTicInPixels=7;Lc.prototype._makeTics=function(){let e=this._timeBarEle,t=ee.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan),i=n-8,o,r=this;this._needleEle.style.left=`${n.toString()}px`;let s="",a=.01,c=31536e6,u=1e-10,f=0,d=this._timeBarSecondsSpan;d<a?(d=a,this._timeBarSecondsSpan=a,this._endJulian=ee.addSeconds(this._startJulian,a,new ee)):d>c&&(d=c,this._timeBarSecondsSpan=c,this._endJulian=ee.addSeconds(this._startJulian,c,new ee));let p=this._timeBarEle.clientWidth;p<10&&(p=10);let g=this._startJulian,h=Math.min(d/p*1e-5,.4),A,x=ee.toGregorianDate(g);d>31536e4?A=ee.fromDate(new Date(Date.UTC(Math.floor(x.year/100)*100,0))):d>31536e3?A=ee.fromDate(new Date(Date.UTC(Math.floor(x.year/10)*10,0))):d>86400?A=ee.fromDate(new Date(Date.UTC(x.year,0))):A=ee.fromDate(new Date(Date.UTC(x.year,x.month,x.day)));let C=ee.secondsDifference(this._startJulian,ee.addSeconds(A,h,new ee)),T=C+d;this._epochJulian=A;function E(U){return Math.floor(C/U)*U}function S(U,q){return Math.ceil(U/q+.5)*q}function v(U){return(U-C)/d}function D(U,q){return U-q*Math.round(U/q)}this._rulerEle.innerHTML=this.makeLabel(ee.addSeconds(this._endJulian,-a,new ee));let O=this._rulerEle.offsetWidth+20;O<30&&(O=180);let M=f;f-=u;let L={startTime:C,startJulian:g,epochJulian:A,duration:d,timeBarWidth:p,getAlpha:v};this._highlightRanges.forEach(function(U){s+=U.render(L)});let N=0,_=0,b=0,w=O/p;w>1&&(w=1),w*=this._timeBarSecondsSpan;let I=-1,R=-1,F=Ly.length,k;for(k=0;k<F;++k){let U=Ly[k];if(++I,N=U,U>w&&U>f)break;R<0&&p*(U/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(R=I)}if(I>0){for(;I>0;)if(--I,Math.abs(D(N,Ly[I]))<1e-5){Ly[I]>=f&&(_=Ly[I]);break}if(R>=0)for(;R<I;){if(Math.abs(D(_,Ly[R]))<1e-5&&Ly[R]>=f){b=Ly[R];break}++R}}f=M,f>u&&b<1e-5&&Math.abs(f-N)>u&&(b=f,f<=N+u&&(_=0));let V=-999999,G;if(p*(b/this._timeBarSecondsSpan)>=3)for(o=E(b);o<=T;o=S(o,b))s+=`<span class="cesium-timeline-ticTiny" style="left: ${Math.round(p*v(o)).toString()}px;"></span>`;if(p*(_/this._timeBarSecondsSpan)>=3)for(o=E(_);o<=T;o=S(o,_))s+=`<span class="cesium-timeline-ticSub" style="left: ${Math.round(p*v(o)).toString()}px;"></span>`;if(p*(N/this._timeBarSecondsSpan)>=2){this._mainTicSpan=N,T+=N,o=E(N);let U=ee.computeTaiMinusUtc(A);for(;o<=T;){let q=ee.addSeconds(g,o-C,new ee);if(N>2.1){let K=ee.computeTaiMinusUtc(q);Math.abs(K-U)>.1&&(o+=K-U,q=ee.addSeconds(g,o-C,new ee))}let Y=Math.round(p*v(o)),Q=this.makeLabel(q);this._rulerEle.innerHTML=Q,G=this._rulerEle.offsetWidth,G<10&&(G=O);let W=Y-(G/2-1);W>V?(V=W+G+5,s+=`<span class="cesium-timeline-ticMain" style="left: ${Y.toString()}px;"></span><span class="cesium-timeline-ticLabel" style="left: ${W.toString()}px;">${Q}</span>`):s+=`<span class="cesium-timeline-ticSub" style="left: ${Y.toString()}px;"></span>`,o=S(o,N)}}else this._mainTicSpan=-1;s+=`<span class="cesium-timeline-icon16" style="left:${i}px;bottom:0;background-position: 0 0;"></span>`,e.innerHTML=s,this._scrubElement=e.lastChild,this._context.clearRect(0,0,this._trackListEle.width,this._trackListEle.height),L.y=0,this._trackList.forEach(function(U){U.render(r._context,L),L.y+=U.height})};Lc.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;let e=this._scrubElement;if(l(this._scrubElement)){let t=ee.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan);this._lastXPos!==n&&(this._lastXPos=n,e.style.left=`${n-8}px`,this._needleEle.style.left=`${n}px`)}l(this._timelineDragLocation)&&(this._setTimeBarTime(this._timelineDragLocation,this._timelineDragLocation*this._timeBarSecondsSpan/this._topDiv.clientWidth),this.zoomTo(ee.addSeconds(this._startJulian,this._timelineDrag,new ee),ee.addSeconds(this._endJulian,this._timelineDrag,new ee)))};Lc.prototype._setTimeBarTime=function(e,t){if(e=Math.round(e),this._scrubJulian=ee.addSeconds(this._startJulian,t,new ee),this._scrubElement){let i=e-8;this._scrubElement.style.left=`${i.toString()}px`,this._needleEle.style.left=`${e.toString()}px`}let n=document.createEvent("Event");n.initEvent("settime",!0,!0),n.clientX=e,n.timeSeconds=t,n.timeJulian=this._scrubJulian,n.clock=this._clock,this._topDiv.dispatchEvent(n)};function dyt(e){return function(t){e._mouseMode!==Sf.touchOnly&&(t.button===0?(e._mouseMode=Sf.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,t.button===2?e._mouseMode=Sf.zoom:e._mouseMode=Sf.slide)),t.preventDefault()}}function myt(e){return function(t){e._mouseMode=Sf.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function hyt(e){return function(t){let n;if(e._mouseMode===Sf.scrub){t.preventDefault();let i=t.clientX-e._topDiv.getBoundingClientRect().left;i<0?(e._timelineDragLocation=0,e._timelineDrag=-.01*e._timeBarSecondsSpan):i>e._topDiv.clientWidth?(e._timelineDragLocation=e._topDiv.clientWidth,e._timelineDrag=.01*e._timeBarSecondsSpan):(e._timelineDragLocation=void 0,e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))}else if(e._mouseMode===Sf.slide){if(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0){let i=n*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(ee.addSeconds(e._startJulian,i,new ee),ee.addSeconds(e._endJulian,i,new ee))}}else e._mouseMode===Sf.zoom&&(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0&&e.zoomFrom(Math.pow(1.01,n)))}}function pyt(e){return function(t){let n=t.wheelDeltaY||t.wheelDelta||-t.detail;Kq=Math.max(Math.min(Math.abs(n),Kq),1),n/=Kq,e.zoomFrom(Math.pow(1.05,-n))}}function _yt(e){return function(t){let n=t.touches.length,i,o,r=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=Sf.touchOnly,n===1?(i=ee.secondsDifference(e._scrubJulian,e._startJulian),o=Math.round(i*e._topDiv.clientWidth/e._timeBarSecondsSpan+r),Math.abs(t.touches[0].clientX-o)<50?(e._touchMode=Bc.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=n===1?"-16px 0":"0 0")):(e._touchMode=Bc.singleTap,e._touchState.centerX=t.touches[0].clientX-r)):n===2?(e._touchMode=Bc.slideZoom,e._touchState.centerX=(t.touches[0].clientX+t.touches[1].clientX)*.5-r,e._touchState.spanX=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):e._touchMode=Bc.ignore}}function gyt(e){return function(t){let n=t.touches.length,i=e._topDiv.getBoundingClientRect().left;e._touchMode===Bc.singleTap?(e._touchMode=Bc.scrub,e._onTouchMove(t)):e._touchMode===Bc.scrub&&e._onTouchMove(t),e._mouseMode=Sf.touchOnly,n!==1?e._touchMode=n>0?Bc.ignore:Bc.none:e._touchMode===Bc.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-i),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function yyt(e){return function(t){let n,i,o,r,s,a,c=1,u=e._topDiv.getBoundingClientRect().left;e._touchMode===Bc.singleTap&&(e._touchMode=Bc.slideZoom),e._mouseMode=Sf.touchOnly,e._touchMode===Bc.scrub?(t.preventDefault(),t.changedTouches.length===1&&(i=t.changedTouches[0].clientX-u,i>=0&&i<=e._topDiv.clientWidth&&e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===Bc.slideZoom&&(o=t.touches.length,o===2?(r=(t.touches[0].clientX+t.touches[1].clientX)*.5-u,s=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):o===1&&(r=t.touches[0].clientX-u,s=0),l(r)&&(s>0&&e._touchState.spanX>0?(c=e._touchState.spanX/s,a=ee.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-r*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new ee)):(n=e._touchState.centerX-r,a=ee.addSeconds(e._startJulian,n*e._timeBarSecondsSpan/e._topDiv.clientWidth,new ee)),e.zoomTo(a,ee.addSeconds(a,e._timeBarSecondsSpan*c,new ee)),e._touchState.centerX=r,e._touchState.spanX=s))}}Lc.prototype.resize=function(){let e=this.container.clientWidth,t=this.container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;this._trackContainer.style.height=`${t}px`;let n=1;this._trackList.forEach(function(i){n+=i.height}),this._trackListEle.style.height=`${n.toString()}px`,this._trackListEle.width=this._trackListEle.clientWidth,this._trackListEle.height=n,this._makeTics(),this._lastXPos=void 0,this._lastWidth=e,this._lastHeight=t};var AH=Lc;var YAe=ar(jAe(),1);function Cyt(e){let t=!1,n=window.screen;return l(n)&&(l(n.lockOrientation)?t=n.lockOrientation(e):l(n.mozLockOrientation)?t=n.mozLockOrientation(e):l(n.msLockOrientation)?t=n.msLockOrientation(e):l(n.orientation&&n.orientation.lock)&&(t=n.orientation.lock(e))),t}function qAe(){let e=window.screen;l(e)&&(l(e.unlockOrientation)?e.unlockOrientation():l(e.mozUnlockOrientation)?e.mozUnlockOrientation():l(e.msUnlockOrientation)?e.msUnlockOrientation():l(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function Tyt(e,t,n,i){i()||(n()?(t.useWebVR=!1,e._locked&&(qAe(),e._locked=!1),e._noSleep.disable(),_r.exitFullscreen(),n(!1)):(_r.fullscreen||_r.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=Cyt("landscape")),t.useWebVR=!0,n(!0)))}function xH(e,t){let n=this,i=Ce.observable(_r.enabled),o=Ce.observable(!1);this.isVRMode=void 0,Ce.defineProperty(this,"isVRMode",{get:function(){return o()}}),this.isVREnabled=void 0,Ce.defineProperty(this,"isVREnabled",{get:function(){return i()},set:function(s){i(s&&_r.enabled)}}),this.tooltip=void 0,Ce.defineProperty(this,"tooltip",function(){return i()?o()?"Exit VR mode":"Enter VR mode":"VR mode is unavailable"});let r=Ce.observable(!1);this._isOrthographic=void 0,Ce.defineProperty(this,"_isOrthographic",{get:function(){return r()}}),this._eventHelper=new Mr,this._eventHelper.add(e.preRender,function(){r(e.camera.frustum instanceof tn)}),this._locked=!1,this._noSleep=new YAe.default,this._command=Sn(function(){Tyt(n,e,o,r)},Ce.getObservable(this,"isVREnabled")),this._vrElement=y(On(t),document.body),this._callback=function(){!_r.fullscreen&&o()&&(e.useWebVR=!1,n._locked&&(qAe(),n._locked=!1),n._noSleep.disable(),o(!1))},document.addEventListener(_r.changeEventName,this._callback)}Object.defineProperties(xH.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}});xH.prototype.isDestroyed=function(){return!1};xH.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(_r.changeEventName,this._callback),ue(this)};var CH=xH;var Eyt="M 5.3125 6.375 C 4.008126 6.375 2.96875 7.4141499 2.96875 8.71875 L 2.96875 19.5 C 2.96875 20.8043 4.008126 21.875 5.3125 21.875 L 13.65625 21.875 C 13.71832 20.0547 14.845166 18.59375 16.21875 18.59375 C 17.592088 18.59375 18.71881 20.0552 18.78125 21.875 L 27.09375 21.875 C 28.398125 21.875 29.4375 20.8043 29.4375 19.5 L 29.4375 8.71875 C 29.4375 7.4141499 28.398125 6.375 27.09375 6.375 L 5.3125 6.375 z M 9.625 10.4375 C 11.55989 10.4375 13.125 12.03385 13.125 13.96875 C 13.125 15.90365 11.55989 17.46875 9.625 17.46875 C 7.69011 17.46875 6.125 15.90365 6.125 13.96875 C 6.125 12.03385 7.69011 10.4375 9.625 10.4375 z M 22.46875 10.4375 C 24.40364 10.4375 25.96875 12.03385 25.96875 13.96875 C 25.96875 15.90365 24.40364 17.46875 22.46875 17.46875 C 20.53386 17.46875 18.96875 15.90365 18.96875 13.96875 C 18.96875 12.03385 20.53386 10.4375 22.46875 10.4375 z",byt="M 25.770585,2.4552065 C 15.72282,13.962707 10.699956,19.704407 8.1768352,22.580207 c -1.261561,1.4379 -1.902282,2.1427 -2.21875,2.5 -0.141624,0.1599 -0.208984,0.2355 -0.25,0.2813 l 0.6875,0.75 c 10e-5,-10e-5 0.679191,0.727 0.6875,0.7187 0.01662,-0.016 0.02451,-0.024 0.03125,-0.031 0.01348,-0.014 0.04013,-0.038 0.0625,-0.062 0.04474,-0.05 0.120921,-0.1315 0.28125,-0.3126 0.320657,-0.3619 0.956139,-1.0921 2.2187499,-2.5312 2.5252219,-2.8781 7.5454589,-8.6169 17.5937499,-20.1250005 l -1.5,-1.3125 z m -20.5624998,3.9063 c -1.304375,0 -2.34375,1.0391 -2.34375,2.3437 l 0,10.8125005 c 0,1.3043 1.039375,2.375 2.34375,2.375 l 2.25,0 c 1.9518039,-2.2246 7.4710958,-8.5584 13.5624998,-15.5312005 l -15.8124998,0 z m 21.1249998,0 c -1.855467,2.1245 -2.114296,2.4005 -3.59375,4.0936995 1.767282,0.1815 3.15625,1.685301 3.15625,3.500001 0,1.9349 -1.56511,3.5 -3.5,3.5 -1.658043,0 -3.043426,-1.1411 -3.40625,-2.6875 -1.089617,1.2461 -2.647139,2.9988 -3.46875,3.9375 0.191501,-0.062 0.388502,-0.094 0.59375,-0.094 1.373338,0 2.50006,1.4614 2.5625,3.2812 l 8.3125,0 c 1.304375,0 2.34375,-1.0707 2.34375,-2.375 l 0,-10.8125005 c 0,-1.3046 -1.039375,-2.3437 -2.34375,-2.3437 l -0.65625,0 z M 9.5518351,10.423906 c 1.9348899,0 3.4999999,1.596401 3.4999999,3.531301 0,1.9349 -1.56511,3.5 -3.4999999,3.5 -1.9348899,0 -3.4999999,-1.5651 -3.4999999,-3.5 0,-1.9349 1.56511,-3.531301 3.4999999,-3.531301 z m 4.2187499,10.312601 c -0.206517,0.2356 -0.844218,0.9428 -1.03125,1.1562 l 0.8125,0 c 0.01392,-0.4081 0.107026,-0.7968 0.21875,-1.1562 z";function TH(e,t,n){e=On(e);let i=new CH(t,n);i._exitVRPath=byt,i._enterVRPath=Eyt;let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-vrButton",o.setAttribute("data-bind",'css: { "cesium-button-disabled" : _isOrthographic }, attr: { title: tooltip },click: command,enable: isVREnabled,cesiumSvgPath: { path: isVRMode ? _exitVRPath : _enterVRPath, width: 32, height: 32 }'),e.appendChild(o),Ce.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(TH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});TH.prototype.isDestroyed=function(){return!1};TH.prototype.destroy=function(){return this._viewModel.destroy(),Ce.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var EH=TH;var Ny=new ae;function JAe(e){let t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function Syt(e){let t=e.getPropertyIds(),n="";return t.forEach(function(i){let o=e.getProperty(i);l(o)&&(n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}),n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function wyt(e){let t,n=[],i=e.getPropertyIds();for(t=0;t<i.length;t++){let r=i[t];/^name$/i.test(r)?n[0]=e.getProperty(r):/name/i.test(r)?n[1]=e.getProperty(r):/^title$/i.test(r)?n[2]=e.getProperty(r):/^(id|identifier)$/i.test(r)?n[3]=e.getProperty(r):/element/i.test(r)?n[4]=e.getProperty(r):/(id|identifier)$/i.test(r)&&(n[5]=e.getProperty(r))}let o=n.length;for(t=0;t<o;t++){let r=n[t];if(l(r)&&r!=="")return r}return"Unnamed Feature"}function XAe(e,t){let n=e.scene.pick(t.position);if(l(n)){let i=y(n.id,n.primitive.id);if(i instanceof er)return i;if(n instanceof Bs)return new er({name:wyt(n),description:Syt(n),feature:n})}if(l(e.scene.globe))return Iyt(e,t.position)}var vyt=new ee;function ZAe(e,t,n){if(l(n)){let i=n.clock;if(l(i)&&(i.getValue(t),l(e))){let o=i.startTime,r=i.stopTime;ee.equals(o,r)&&(r=ee.addSeconds(o,P.EPSILON2,vyt)),e.updateFromClock(),e.zoomTo(o,r)}}}var Dyt=new m;function Iyt(e,t){let n=e.scene,i=n.camera.getPickRay(t),o=n.imageryLayers.pickImageryLayerFeatures(i,n);if(!l(o))return;let r=new er({id:"Loading...",description:"Loading feature information..."});return o.then(function(s){if(e.selectedEntity!==r)return;if(!l(s)||s.length===0){e.selectedEntity=KAe();return}let a=s[0],c=new er({id:a.name,description:a.description});if(l(a.position)){let u=e.scene.globe.ellipsoid.cartographicToCartesian(a.position,Dyt);c.position=new Xc(u)}e.selectedEntity=c},function(){e.selectedEntity===r&&(e.selectedEntity=KAe())}),r}function KAe(){return new er({id:"None",description:"No features found."})}function Pyt(e,t){let n=e._geocoder,i=e._homeButton,o=e._sceneModePicker,r=e._projectionPicker,s=e._baseLayerPicker,a=e._animation,c=e._timeline,u=e._fullscreenButton,f=e._infoBox,d=e._selectionIndicator,p=t?"hidden":"visible";if(l(n)&&(n.container.style.visibility=p),l(i)&&(i.container.style.visibility=p),l(o)&&(o.container.style.visibility=p),l(r)&&(r.container.style.visibility=p),l(s)&&(s.container.style.visibility=p),l(a)&&(a.container.style.visibility=p),l(c)&&(c.container.style.visibility=p),l(u)&&u.viewModel.isFullscreenEnabled&&(u.container.style.visibility=p),l(f)&&(f.container.style.visibility=p),l(d)&&(d.container.style.visibility=p),e._container){let g=t||!l(u)?0:u.container.clientWidth;e._vrButton.container.style.right=`${g}px`,e.forceResize()}}function vi(e,t){e=On(e),t=y(t,y.EMPTY_OBJECT);let n=(!l(t.globe)||t.globe!==!1)&&(!l(t.baseLayerPicker)||t.baseLayerPicker!==!1),i=this,o=document.createElement("div");o.className="cesium-viewer",e.appendChild(o);let r=document.createElement("div");r.className="cesium-viewer-cesiumWidgetContainer",o.appendChild(r);let s=document.createElement("div");s.className="cesium-viewer-bottom",o.appendChild(s);let a=y(t.scene3DOnly,!1),c,u,f=!1;l(t.clockViewModel)?(u=t.clockViewModel,c=u.clock):(c=new Bm,u=new Cz(c),f=!0),l(t.shouldAnimate)&&(c.shouldAnimate=t.shouldAnimate);let d=new $k(r,{baseLayer:n||l(t.baseLayer)||l(t.imageryProvider)?!1:void 0,clock:c,skyBox:t.skyBox,skyAtmosphere:t.skyAtmosphere,sceneMode:t.sceneMode,mapProjection:t.mapProjection,globe:t.globe,orderIndependentTranslucency:t.orderIndependentTranslucency,contextOptions:t.contextOptions,useDefaultRenderLoop:t.useDefaultRenderLoop,targetFrameRate:t.targetFrameRate,showRenderLoopErrors:t.showRenderLoopErrors,useBrowserRecommendedResolution:t.useBrowserRecommendedResolution,creditContainer:l(t.creditContainer)?t.creditContainer:s,creditViewport:t.creditViewport,scene3DOnly:a,shadows:t.shadows,terrainShadows:t.terrainShadows,mapMode2D:t.mapMode2D,blurActiveElementOnCanvasFocus:t.blurActiveElementOnCanvasFocus,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples}),p=t.dataSources,g=!1;l(p)||(p=new ZF,g=!0);let h=d.scene,A=new k2({scene:h,dataSourceCollection:p}),x=new Mr;x.add(c.onTick,vi.prototype._onTick,this),x.add(h.morphStart,vi.prototype._clearTrackedObject,this);let C;if(!l(t.selectionIndicator)||t.selectionIndicator!==!1){let Y=document.createElement("div");Y.className="cesium-viewer-selectionIndicatorContainer",o.appendChild(Y),C=new _H(Y,h)}let T;if(!l(t.infoBox)||t.infoBox!==!1){let Y=document.createElement("div");Y.className="cesium-viewer-infoBoxContainer",o.appendChild(Y),T=new Qz(Y);let Q=T.viewModel;x.add(Q.cameraClicked,vi.prototype._onInfoBoxCameraClicked,this),x.add(Q.closeClicked,vi.prototype._onInfoBoxClockClicked,this)}let E=document.createElement("div");E.className="cesium-viewer-toolbar",o.appendChild(E);let S;if(!l(t.geocoder)||t.geocoder!==!1){let Y=document.createElement("div");Y.className="cesium-viewer-geocoderContainer",E.appendChild(Y);let Q;l(t.geocoder)&&typeof t.geocoder!="boolean"&&(Q=Array.isArray(t.geocoder)?t.geocoder:[t.geocoder]),S=new Kz({container:Y,geocoderServices:Q,scene:h}),x.add(S.viewModel.search.beforeExecute,vi.prototype._clearObjects,this)}let v;(!l(t.homeButton)||t.homeButton!==!1)&&(v=new Yz(E,h),l(S)&&x.add(v.viewModel.command.afterExecute,function(){let Y=S.viewModel;Y.searchText="",Y.isSearchInProgress&&Y.search()}),x.add(v.viewModel.command.beforeExecute,vi.prototype._clearTrackedObject,this));let D;!a&&(!l(t.sceneModePicker)||t.sceneModePicker!==!1)&&(D=new dH(E,h));let O;t.projectionPicker&&(O=new cH(E,h));let M,L;if(n){let Y=y(t.imageryProviderViewModels,Oz()),Q=y(t.terrainProviderViewModels,Mz());M=new Pz(E,{globe:h.globe,imageryProviderViewModels:Y,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:Q,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel}),L=E.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}l(t.imageryProvider)&&t.imageryProvider!==!1&&($("Viewer options.imageryProvider","options.imageryProvider was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use options.baseLayer instead."),n&&(M.viewModel.selectedImagery=void 0),h.imageryLayers.removeAll(),h.imageryLayers.addImageryProvider(t.imageryProvider)),l(t.baseLayer)&&t.baseLayer!==!1&&(n&&(M.viewModel.selectedImagery=void 0),h.imageryLayers.removeAll(),h.imageryLayers.add(t.baseLayer)),l(t.terrainProvider)&&(n&&(M.viewModel.selectedTerrain=void 0),h.terrainProvider=t.terrainProvider),l(t.terrain)&&(n&&(M.viewModel.selectedTerrain=void 0,h.globe.depthTestAgainstTerrain=!0),h.setTerrain(t.terrain));let N;if(!l(t.navigationHelpButton)||t.navigationHelpButton!==!1){let Y=!0;try{if(l(window.localStorage)){let Q=window.localStorage.getItem("cesium-hasSeenNavHelp");l(Q)&&Q?Y=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch{}N=new tH({container:E,instructionsInitiallyVisible:y(t.navigationInstructionsInitiallyVisible,Y)})}let _;if(!l(t.animation)||t.animation!==!1){let Y=document.createElement("div");Y.className="cesium-viewer-animationContainer",o.appendChild(Y),_=new wz(Y,new vz(u))}let b;if(!l(t.timeline)||t.timeline!==!1){let Y=document.createElement("div");Y.className="cesium-viewer-timelineContainer",o.appendChild(Y),b=new AH(Y,c),b.addEventListener("settime",JAe,!1),b.zoomTo(c.startTime,c.stopTime)}let w,I,R;(!l(t.fullscreenButton)||t.fullscreenButton!==!1)&&(R=document.createElement("div"),R.className="cesium-viewer-fullscreenContainer",o.appendChild(R),w=new Gz(R,t.fullscreenElement),I=xa(w.viewModel,"isFullscreenEnabled",function(Y){R.style.display=Y?"block":"none",l(b)&&(b.container.style.right=`${R.clientWidth}px`,b.resize())}));let F,k,V;if(t.vrButton){let Y=document.createElement("div");Y.className="cesium-viewer-vrContainer",o.appendChild(Y),F=new EH(Y,h,t.fullScreenElement),k=xa(F.viewModel,"isVREnabled",function(Q){Y.style.display=Q?"block":"none",l(w)&&(Y.style.right=`${R.clientWidth}px`),l(b)&&(b.container.style.right=`${Y.clientWidth}px`,b.resize())}),V=xa(F.viewModel,"isVRMode",function(Q){Pyt(i,Q)})}this._baseLayerPickerDropDown=L,this._fullscreenSubscription=I,this._vrSubscription=k,this._vrModeSubscription=V,this._dataSourceChangedListeners={},this._automaticallyTrackDataSourceClocks=y(t.automaticallyTrackDataSourceClocks,!0),this._container=e,this._bottomContainer=s,this._element=o,this._cesiumWidget=d,this._selectionIndicator=C,this._infoBox=T,this._dataSourceCollection=p,this._destroyDataSourceCollection=g,this._dataSourceDisplay=A,this._clockViewModel=u,this._destroyClockViewModel=f,this._toolbar=E,this._homeButton=v,this._sceneModePicker=D,this._projectionPicker=O,this._baseLayerPicker=M,this._navigationHelpButton=N,this._animation=_,this._timeline=b,this._fullscreenButton=w,this._vrButton=F,this._geocoder=S,this._eventHelper=x,this._lastWidth=0,this._lastHeight=0,this._allowDataSourcesToSuspendAnimation=!0,this._entityView=void 0,this._enableInfoOrSelection=l(T)||l(C),this._clockTrackedDataSource=void 0,this._trackedEntity=void 0,this._needTrackedEntityUpdate=!1,this._selectedEntity=void 0,this._zoomIsFlight=!1,this._zoomTarget=void 0,this._zoomPromise=void 0,this._zoomOptions=void 0,this._selectedEntityChanged=new ge,this._trackedEntityChanged=new ge,Ce.track(this,["_trackedEntity","_selectedEntity","_clockTrackedDataSource"]),x.add(p.dataSourceAdded,vi.prototype._onDataSourceAdded,this),x.add(p.dataSourceRemoved,vi.prototype._onDataSourceRemoved,this),x.add(h.postUpdate,vi.prototype.resize,this),x.add(h.postRender,vi.prototype._postRender,this);let G=p.length;for(let Y=0;Y<G;Y++)this._dataSourceAdded(p,p.get(Y));this._dataSourceAdded(void 0,A.defaultDataSource),x.add(p.dataSourceAdded,vi.prototype._dataSourceAdded,this),x.add(p.dataSourceRemoved,vi.prototype._dataSourceRemoved,this);function U(Y){let Q=XAe(i,Y);l(Q)?j.getValueOrUndefined(Q.position,i.clock.currentTime)?i.trackedEntity=Q:i.zoomTo(Q):l(i.trackedEntity)&&(i.trackedEntity=void 0)}function q(Y){i.selectedEntity=XAe(i,Y)}d.screenSpaceEventHandler.setInputAction(q,Cn.LEFT_CLICK),d.screenSpaceEventHandler.setInputAction(U,Cn.LEFT_DOUBLE_CLICK)}Object.defineProperties(vi.prototype,{container:{get:function(){return this._container}},creditDisplay:{get:function(){return this._cesiumWidget.creditDisplay}},bottomContainer:{get:function(){return this._bottomContainer}},cesiumWidget:{get:function(){return this._cesiumWidget}},selectionIndicator:{get:function(){return this._selectionIndicator}},infoBox:{get:function(){return this._infoBox}},geocoder:{get:function(){return this._geocoder}},homeButton:{get:function(){return this._homeButton}},sceneModePicker:{get:function(){return this._sceneModePicker}},projectionPicker:{get:function(){return this._projectionPicker}},baseLayerPicker:{get:function(){return this._baseLayerPicker}},navigationHelpButton:{get:function(){return this._navigationHelpButton}},animation:{get:function(){return this._animation}},timeline:{get:function(){return this._timeline}},fullscreenButton:{get:function(){return this._fullscreenButton}},vrButton:{get:function(){return this._vrButton}},dataSourceDisplay:{get:function(){return this._dataSourceDisplay}},entities:{get:function(){return this._dataSourceDisplay.defaultDataSource.entities}},dataSources:{get:function(){return this._dataSourceCollection}},canvas:{get:function(){return this._cesiumWidget.canvas}},scene:{get:function(){return this._cesiumWidget.scene}},shadows:{get:function(){return this.scene.shadowMap.enabled},set:function(e){this.scene.shadowMap.enabled=e}},terrainShadows:{get:function(){return this.scene.globe.shadows},set:function(e){this.scene.globe.shadows=e}},shadowMap:{get:function(){return this.scene.shadowMap}},imageryLayers:{get:function(){return this.scene.imageryLayers}},terrainProvider:{get:function(){return this.scene.terrainProvider},set:function(e){this.scene.terrainProvider=e}},camera:{get:function(){return this.scene.camera}},postProcessStages:{get:function(){return this.scene.postProcessStages}},clock:{get:function(){return this._clockViewModel.clock}},clockViewModel:{get:function(){return this._clockViewModel}},screenSpaceEventHandler:{get:function(){return this._cesiumWidget.screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._cesiumWidget.targetFrameRate},set:function(e){this._cesiumWidget.targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._cesiumWidget.useDefaultRenderLoop},set:function(e){this._cesiumWidget.useDefaultRenderLoop=e}},resolutionScale:{get:function(){return this._cesiumWidget.resolutionScale},set:function(e){this._cesiumWidget.resolutionScale=e}},useBrowserRecommendedResolution:{get:function(){return this._cesiumWidget.useBrowserRecommendedResolution},set:function(e){this._cesiumWidget.useBrowserRecommendedResolution=e}},allowDataSourcesToSuspendAnimation:{get:function(){return this._allowDataSourcesToSuspendAnimation},set:function(e){this._allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._trackedEntity},set:function(e){if(this._trackedEntity!==e){this._trackedEntity=e,bH(this);let t=this.scene,n=t.mode;!l(e)||!l(e.position)?(this._needTrackedEntityUpdate=!1,(n===ne.COLUMBUS_VIEW||n===ne.SCENE2D)&&(t.screenSpaceCameraController.enableTranslate=!0),(n===ne.COLUMBUS_VIEW||n===ne.SCENE3D)&&(t.screenSpaceCameraController.enableTilt=!0),this._entityView=void 0,this.camera.lookAtTransform(B.IDENTITY)):this._needTrackedEntityUpdate=!0,this._trackedEntityChanged.raiseEvent(e),this.scene.requestRender()}}},selectedEntity:{get:function(){return this._selectedEntity},set:function(e){if(this._selectedEntity!==e){this._selectedEntity=e;let t=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(e)?l(t)&&t.animateAppear():l(t)&&t.animateDepart(),this._selectedEntityChanged.raiseEvent(e)}}},selectedEntityChanged:{get:function(){return this._selectedEntityChanged}},trackedEntityChanged:{get:function(){return this._trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._clockTrackedDataSource},set:function(e){this._clockTrackedDataSource!==e&&(this._clockTrackedDataSource=e,ZAe(this._timeline,this.clock,e))}}});vi.prototype.extend=function(e,t){e(this,t)};vi.prototype.resize=function(){let e=this._cesiumWidget,t=this._container,n=t.clientWidth,i=t.clientHeight,o=l(this._animation),r=l(this._timeline);if(e.resize(),n===this._lastWidth&&i===this._lastHeight)return;let s=i-125,a=this._baseLayerPickerDropDown;if(l(a)&&(a.style.maxHeight=`${s}px`),l(this._geocoder)){let g=this._geocoder.searchSuggestionsContainer;g.style.maxHeight=`${s}px`}l(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);let c=this._timeline,u,f=0,d=0,p=0;if(o&&window.getComputedStyle(this._animation.container).visibility!=="hidden"){let g=this._lastWidth;u=this._animation.container,n>900?(f=169,g<=900&&(u.style.width="169px",u.style.height="112px",this._animation.resize())):n>=600?(f=136,(g<600||g>900)&&(u.style.width="136px",u.style.height="90px",this._animation.resize())):(f=106,(g>600||g===0)&&(u.style.width="106px",u.style.height="70px",this._animation.resize())),d=f+5}if(r&&window.getComputedStyle(this._timeline.container).visibility!=="hidden"){let g=this._fullscreenButton,h=this._vrButton,A=c.container,x=A.style;p=A.clientHeight+3,x.left=`${f}px`;let C=0;l(g)&&(C+=g.container.clientWidth),l(h)&&(C+=h.container.clientWidth),x.right=`${C}px`,c.resize()}this._bottomContainer.style.left=`${d}px`,this._bottomContainer.style.bottom=`${p}px`,this._lastWidth=n,this._lastHeight=i};vi.prototype.forceResize=function(){this._lastWidth=0,this.resize()};vi.prototype.render=function(){this._cesiumWidget.render()};vi.prototype.isDestroyed=function(){return!1};vi.prototype.destroy=function(){let e;this.screenSpaceEventHandler.removeInputAction(Cn.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(Cn.LEFT_DOUBLE_CLICK);let t=this.dataSources,n=t.length;for(e=0;e<n;e++)this._dataSourceRemoved(t,t.get(e));return this._dataSourceRemoved(void 0,this._dataSourceDisplay.defaultDataSource),this._container.removeChild(this._element),this._element.removeChild(this._toolbar),this._eventHelper.removeAll(),l(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),l(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),l(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),l(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),l(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),l(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),l(this._timeline)&&(this._timeline.removeEventListener("settime",JAe,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),l(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),l(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),l(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),l(this._selectionIndicator)&&(this._element.removeChild(this._selectionIndicator.container),this._selectionIndicator=this._selectionIndicator.destroy()),this._destroyClockViewModel&&(this._clockViewModel=this._clockViewModel.destroy()),this._dataSourceDisplay=this._dataSourceDisplay.destroy(),this._cesiumWidget=this._cesiumWidget.destroy(),this._destroyDataSourceCollection&&(this._dataSourceCollection=this._dataSourceCollection.destroy()),ue(this)};vi.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(vi.prototype._onEntityCollectionChanged,this)};vi.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(vi.prototype._onEntityCollectionChanged,this),l(this.trackedEntity)&&n.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0),l(this.selectedEntity)&&n.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)};vi.prototype._onTick=function(e){let t=e.currentTime,n=this._dataSourceDisplay.update(t);this._allowDataSourcesToSuspendAnimation&&(this._clockViewModel.canAnimate=n);let i=this._entityView;if(l(i)){let f=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(f,!1,Ny)===ut.DONE&&i.update(t,Ny)}let o,r=!1,s=this.selectedEntity,a=l(s)&&this._enableInfoOrSelection;a&&s.isShowing&&s.isAvailable(t)&&(this._dataSourceDisplay.getBoundingSphere(s,!0,Ny)!==ut.FAILED?o=Ny.center:l(s.position)&&(o=s.position.getValue(t,o)),r=l(o));let c=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(c)&&(c.position=m.clone(o,c.position),c.showSelection=a&&r,c.update());let u=l(this._infoBox)?this._infoBox.viewModel:void 0;l(u)&&(u.showInfo=a,u.enableCamera=r,u.isCameraTracking=this.trackedEntity===this.selectedEntity,a?(u.titleText=y(s.name,s.id),u.description=j.getValueOrDefault(s.description,t,"")):(u.titleText="",u.description=""))};vi.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.trackedEntity===r&&(this.trackedEntity=void 0),this.selectedEntity===r&&(this.selectedEntity=void 0)}};vi.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{let n=this.selectedEntity.position;l(n)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}};vi.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};vi.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0};vi.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0};vi.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&ZAe(this.timeline,this.clock,e)};vi.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,vi.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};vi.prototype._onDataSourceRemoved=function(e,t){let n=this.clockTrackedDataSource===t,i=t.entities.id;if(this._dataSourceChangedListeners[i](),this._dataSourceChangedListeners[i]=void 0,n){let o=e.length;this._automaticallyTrackDataSourceClocks&&o>0?this.clockTrackedDataSource=e.get(o-1):this.clockTrackedDataSource=void 0}};vi.prototype.zoomTo=function(e,t){return QAe(this,e,{offset:t},!1)};vi.prototype.flyTo=function(e,t){return QAe(this,e,t,!0)};function QAe(e,t,n,i){bH(e);let o=new Promise(r=>{e._completeZoom=function(s){r(s)}});return e._zoomPromise=o,e._zoomIsFlight=i,e._zoomOptions=n,Promise.resolve(t).then(function(r){if(e._zoomPromise===o){if(r instanceof Qs){let s;l(r.imageryProvider)?s=r.imageryProvider._readyPromise.then(()=>r.getImageryRectangle()):s=new Promise(a=>{let c=r.readyEvent.addEventListener(()=>{c(),a(r.getImageryRectangle())})}),s.then(function(a){return vb(a,e.scene)}).then(function(a){e._zoomPromise===o&&(e._zoomTarget=a)});return}if(r instanceof Va||r instanceof CI||r instanceof wI){e._zoomTarget=r;return}if(r.isLoading&&l(r.loadingEvent)){let s=r.loadingEvent.addEventListener(function(){s(),e._zoomPromise===o&&(e._zoomTarget=r.entities.values.slice(0))});return}if(Array.isArray(r)){e._zoomTarget=r.slice(0);return}r=y(r.values,r),l(r.entities)&&(r=r.entities.values),Array.isArray(r)?e._zoomTarget=r.slice(0):e._zoomTarget=[r]}}),e.scene.requestRender(),o}function Nb(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function bH(e){let t=e._zoomPromise;l(t)&&(Nb(e),e._completeZoom(!1))}vi.prototype._postRender=function(){Oyt(this),Myt(this)};function Oyt(e){let t=e._zoomTarget;if(!l(t)||e.scene.mode===ne.MORPHING)return;let n=e.scene,i=n.camera,o=y(e._zoomOptions,{}),r;if(t instanceof Va||t instanceof wI)return t._readyPromise.then(function(){let u=t.boundingSphere;l(o.offset)||(o.offset=new cf(0,-.5,u.radius)),r={offset:o.offset,duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(t.boundingSphere,r):(i.viewBoundingSphere(u,o.offset),i.lookAtTransform(B.IDENTITY),e._completeZoom(!0)),Nb(e)}).catch(()=>{bH(e)});if(t instanceof CI)return t._readyPromise.then(function(){let u=t.boundingSphere;l(o.offset)||(o.offset=new cf(0,-.5,u.radius)),r={offset:o.offset,duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(u,r):(i.viewBoundingSphere(u,o.offset),i.lookAtTransform(B.IDENTITY),e._completeZoom(!0)),Nb(e)});if(t instanceof he){r={destination:n.mapProjection.ellipsoid.cartographicToCartesian(t),duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyTo(r):(i.setView(r),e._completeZoom(!0)),Nb(e);return}let s=t,a=[];for(let u=0,f=s.length;u<f;u++){let d=e._dataSourceDisplay.getBoundingSphere(s[u],!1,Ny);if(d===ut.PENDING)return;d!==ut.FAILED&&a.push(ae.clone(Ny))}if(a.length===0){bH(e);return}e.trackedEntity=void 0;let c=ae.fromBoundingSpheres(a);e._zoomIsFlight?(Nb(e),i.flyToBoundingSphere(c,{duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)},offset:o.offset})):(i.viewBoundingSphere(c,o.offset),i.lookAtTransform(B.IDENTITY),Nb(e),e._completeZoom(!0))}function Myt(e){if(!e._needTrackedEntityUpdate)return;let t=e._trackedEntity,n=e.clock.currentTime,i=j.getValueOrUndefined(t.position,n);if(!l(i))return;let o=e.scene,r=e._dataSourceDisplay.getBoundingSphere(t,!1,Ny);if(r===ut.PENDING)return;let s=o.mode;(s===ne.COLUMBUS_VIEW||s===ne.SCENE2D)&&(o.screenSpaceCameraController.enableTranslate=!1),(s===ne.COLUMBUS_VIEW||s===ne.SCENE3D)&&(o.screenSpaceCameraController.enableTilt=!1);let a=r!==ut.FAILED?Ny:void 0;e._entityView=new G2(t,o,o.mapProjection.ellipsoid),e._entityView.update(n,a),e._needTrackedEntityUpdate=!1}var $Ae=vi;function Ryt(e){let t=document.createElement("div");t.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(t);let n=new Nz(t,e.scene);Object.defineProperties(e,{cesium3DTilesInspector:{get:function(){return n}}})}var exe=Ryt;function Byt(e){let t=document.createElement("div");t.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(t);let n=new Vz(t,e.scene);Object.defineProperties(e,{cesiumInspector:{get:function(){return n}}})}var txe=Byt;function Lyt(e,t){t=y(t,y.EMPTY_OBJECT);let n=!0,i=y(t.flyToOnDrop,!0),o=new ge,r=y(t.clearOnDrop,!0),s=y(t.dropTarget,e.container),a=y(t.clampToGround,!0),c=t.proxy;s=On(s),Object.defineProperties(e,{dropTarget:{get:function(){return s},set:function(f){nxe(s,u),s=f,eX(s,u)}},dropEnabled:{get:function(){return n},set:function(f){f!==n&&(f?eX(s,u):nxe(s,u),n=f)}},dropError:{get:function(){return o}},clearOnDrop:{get:function(){return r},set:function(f){r=f}},flyToOnDrop:{get:function(){return i},set:function(f){i=f}},proxy:{get:function(){return c},set:function(f){c=f}},clampToGround:{get:function(){return a},set:function(f){a=f}}});function u(f){fx(f),r&&(e.entities.removeAll(),e.dataSources.removeAll());let d=f.dataTransfer.files,p=d.length;for(let g=0;g<p;g++){let h=d[g],A=new FileReader;A.onload=Nyt(e,h,c,a),A.onerror=Fyt(e,h),A.readAsText(h)}}eX(s,u),e.destroy=yz(e,e.destroy,function(){e.dropEnabled=!1}),e._handleDrop=u}function fx(e){e.stopPropagation(),e.preventDefault()}function nxe(e,t){let n=e;l(n)&&(n.removeEventListener("drop",t,!1),n.removeEventListener("dragenter",fx,!1),n.removeEventListener("dragover",fx,!1),n.removeEventListener("dragexit",fx,!1))}function eX(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",fx,!1),e.addEventListener("dragover",fx,!1),e.addEventListener("dragexit",fx,!1)}function Nyt(e,t,n,i){let o=e.scene;return function(r){let s=t.name;try{let a;if(/\.czml$/i.test(s))a=KF.load(JSON.parse(r.target.result),{sourceUri:s});else if(/\.geojson$/i.test(s)||/\.json$/i.test(s)||/\.topojson$/i.test(s))a=X2.load(JSON.parse(r.target.result),{sourceUri:s,clampToGround:i});else if(/\.(kml|kmz)$/i.test(s))a=aU.load(t,{sourceUri:s,proxy:n,camera:o.camera,canvas:o.canvas,clampToGround:i,screenOverlayContainer:e.container});else if(/\.gpx$/i.test(s))a=o3.load(t,{sourceUri:s,proxy:n});else{e.dropError.raiseEvent(e,s,`Unrecognized file: ${s}`);return}l(a)&&e.dataSources.add(a).then(function(c){e.flyToOnDrop&&e.flyTo(c)}).catch(function(c){e.dropError.raiseEvent(e,s,c)})}catch(a){e.dropError.raiseEvent(e,s,a)}}}function Fyt(e,t){return function(n){e.dropError.raiseEvent(e,t.name,n.target.error)}}var ixe=Lyt;function Uyt(e,t){t=y(t,y.EMPTY_OBJECT);let n=new oH({scene:e.scene,container:e.bottomContainer,lowFrameRateMessage:t.lowFrameRateMessage});Object.defineProperties(e,{performanceWatchdog:{get:function(){return n}}})}var oxe=Uyt;function rxe(e){let t=e.split(` +`),n;for(n=0;n<t.length&&!t[n].match(/\S/);n++);if(n===t.length)return"";let i="",o=/^\s*/,s=t[n].match(o)[0].length;for(let a=n;a<t.length;a++){let c=t[a];c.match(o)[0].length>=s&&(c=c.slice(s)),i+=`${c} +`}return i}function wf(e){this._scene=e,this._voxelPrimitive=void 0,this._customShaderCompilationRemoveCallback=void 0,this._definedProperties=[],this._getPrimitiveFunctions=[],this._modelMatrixReady=!1;let t=this;function n(o){let{name:r,initialValue:s}=o;t._definedProperties.push(r);let a=o.setPrimitiveFunction;a===!0&&(a=function(f){t._voxelPrimitive[r]=f});let c=o.getPrimitiveFunction;c===!0&&(c=function(){t[r]=t._voxelPrimitive[r]}),l(c)&&t._getPrimitiveFunctions.push(c);let u=Ce.observable();return Ce.defineProperty(t,r,{get:function(){return u()},set:function(f){typeof s=="number"&&typeof f=="string"&&(f=Number(f),isNaN(f)&&(f=s)),typeof s=="boolean"&&typeof f=="number"&&(f=f===1),u(f),l(a)&&l(t._voxelPrimitive)&&(a(f),e.requestRender())}}),t[r]=s,u}function i(o,r){return function(s){let a=t._voxelPrimitive[o].clone();a[r]=s,t._voxelPrimitive[o]=a}}n({name:"inspectorVisible",initialValue:!0}),n({name:"displayVisible",initialValue:!1}),n({name:"transformVisible",initialValue:!1}),n({name:"boundsVisible",initialValue:!1}),n({name:"clippingVisible",initialValue:!1}),n({name:"shaderVisible",initialValue:!1}),n({name:"shaderString",initialValue:"",getPrimitiveFunction:function(){let o=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=rxe(o)}}),n({name:"shaderCompilationMessage",initialValue:""}),n({name:"shaderCompilationSuccess",initialValue:!0}),n({name:"depthTest",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"show",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"disableUpdate",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"debugDraw",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"jitter",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"nearestSampling",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"screenSpaceError",initialValue:4,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"stepSize",initialValue:1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"shapeIsBox",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsBox=o===ji.BOX}}),n({name:"shapeIsEllipsoid",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsEllipsoid=o===ji.ELLIPSOID}}),n({name:"shapeIsCylinder",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsCylinder=o===ji.CYLINDER}}),n({name:"boundsBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMaxX=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsBoxMinX",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMinX=t._voxelPrimitive.minBounds.x}}),n({name:"boundsBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMaxY=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsBoxMinY",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMinY=t._voxelPrimitive.minBounds.y}}),n({name:"boundsBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMaxZ=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsBoxMinZ",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMinZ=t._voxelPrimitive.minBounds.z}}),n({name:"boundsEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLongitude=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLongitude=t._voxelPrimitive.minBounds.x}}),n({name:"boundsEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLatitude=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLatitude=t._voxelPrimitive.minBounds.y}}),n({name:"boundsEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxHeight=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMinHeight=t._voxelPrimitive.minBounds.z}}),n({name:"boundsCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMaxRadius=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMinRadius=t._voxelPrimitive.minBounds.x}}),n({name:"boundsCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMaxHeight=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMinHeight=t._voxelPrimitive.minBounds.y}}),n({name:"boundsCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMaxAngle=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMinAngle=t._voxelPrimitive.minBounds.z}}),n({name:"clippingBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMaxX=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingBoxMinX",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMinX=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMaxY=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingBoxMinY",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMinY=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMaxZ=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingBoxMinZ",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMinZ=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLongitude=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLongitude=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLatitude=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLatitude=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxHeight=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMinHeight=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMaxRadius=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMinRadius=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMaxHeight=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMinHeight=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMaxAngle=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMinAngle=t._voxelPrimitive.minClippingBounds.z}}),n({name:"translationX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&_h(t)},getPrimitiveFunction:function(){t.translationX=B.getTranslation(t._voxelPrimitive.modelMatrix,new m).x}}),n({name:"translationY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&_h(t)},getPrimitiveFunction:function(){t.translationY=B.getTranslation(t._voxelPrimitive.modelMatrix,new m).y}}),n({name:"translationZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&_h(t)},getPrimitiveFunction:function(){t.translationZ=B.getTranslation(t._voxelPrimitive.modelMatrix,new m).z}}),n({name:"scaleX",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&_h(t)},getPrimitiveFunction:function(){t.scaleX=B.getScale(t._voxelPrimitive.modelMatrix,new m).x}}),n({name:"scaleY",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&_h(t)},getPrimitiveFunction:function(){t.scaleY=B.getScale(t._voxelPrimitive.modelMatrix,new m).y}}),n({name:"scaleZ",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&_h(t)},getPrimitiveFunction:function(){t.scaleZ=B.getScale(t._voxelPrimitive.modelMatrix,new m).z}}),n({name:"angleX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&_h(t)}}),n({name:"angleY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&_h(t)}}),n({name:"angleZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&_h(t)}})}var Vyt=new m,kyt=new m,zyt=new rc,Hyt=new Z;function _h(e){let t=m.fromElements(e.translationX,e.translationY,e.translationZ,Vyt),n=m.fromElements(e.scaleX,e.scaleY,e.scaleZ,kyt),i=zyt;i.heading=e.angleX,i.pitch=e.angleY,i.roll=e.angleZ;let o=Z.fromHeadingPitchRoll(i,Hyt),r=Z.multiplyByScale(o,n,o);e._voxelPrimitive.modelMatrix=B.fromRotationTranslation(r,t,e._voxelPrimitive.modelMatrix)}Object.defineProperties(wf.prototype,{scene:{get:function(){return this._scene}},voxelPrimitive:{get:function(){return this._voxelPrimitive},set:function(e){if(l(this._customShaderCompilationRemoveCallback)&&this._customShaderCompilationRemoveCallback(),l(e)){this._voxelPrimitive=e;let t=this;t._voxelPrimitive._readyPromise.then(function(){t._customShaderCompilationRemoveCallback=t._voxelPrimitive.customShaderCompilationEvent.addEventListener(function(n){let i=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=rxe(i),l(n)?(t.shaderCompilationMessage=n.message,t.shaderCompilationSuccess=!1):(t.shaderCompilationMessage="Shader compiled successfully!",t.shaderCompilationSuccess=!0)}),t._modelMatrixReady=!1;for(let n=0;n<t._getPrimitiveFunctions.length;n++)t._getPrimitiveFunctions[n]();t._modelMatrixReady=!0,_h(t)})}}}});wf.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};wf.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};wf.prototype.toggleTransform=function(){this.transformVisible=!this.transformVisible};wf.prototype.toggleBounds=function(){this.boundsVisible=!this.boundsVisible};wf.prototype.toggleClipping=function(){this.clippingVisible=!this.clippingVisible};wf.prototype.toggleShader=function(){this.shaderVisible=!this.shaderVisible};wf.prototype.compileShader=function(){l(this._voxelPrimitive)&&(this._voxelPrimitive.customShader=new wb({fragmentShaderText:this.shaderString,uniforms:this._voxelPrimitive.customShader.uniforms}))};wf.prototype.shaderEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,u;if(t.shiftKey)for(u=0;u<c;++u)a[u][0]===" "&&(a[u][1]===" "?(a[u]=a[u].substr(2),r-=2):(a[u]=a[u].substr(1),r-=1));else for(u=0;u<c;++u)a[u]=` ${a[u]}`,r+=2;let f=a.join(` +`);n.value=n.value.slice(0,i)+f+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileShader();return!0};wf.prototype.isDestroyed=function(){return!1};wf.prototype.destroy=function(){let e=this;return this._definedProperties.forEach(function(t){Ce.getObservable(e,t).dispose()}),ue(this)};var SH=wf;function wH(e,t){e=On(e);let n=document.createElement("div"),i=new SH(t);this._viewModel=i,this._container=e,this._element=n;let o=document.createElement("div");o.textContent="Voxel Inspector",o.className="cesium-cesiumInspector-button",o.setAttribute("data-bind","click: toggleInspector"),n.appendChild(o),n.className="cesium-cesiumInspector cesium-VoxelInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let r=document.createElement("div");r.className="cesium-cesiumInspector-dropDown",n.appendChild(r);let s=tc.createSection,a=tc.createCheckbox,c=tc.createRangeInput,u=tc.createButton,f=s(r,"Display","displayVisible","toggleDisplay"),d=s(r,"Transform","transformVisible","toggleTransform"),p=s(r,"Bounds","boundsVisible","toggleBounds"),g=s(r,"Clipping","clippingVisible","toggleClipping"),h=s(r,"Shader","shaderVisible","toggleShader");f.appendChild(a("Depth Test","depthTest")),f.appendChild(a("Show","show")),f.appendChild(a("Disable Update","disableUpdate")),f.appendChild(a("Debug Draw","debugDraw")),f.appendChild(a("Jitter","jitter")),f.appendChild(a("Nearest Sampling","nearestSampling")),f.appendChild(c("Screen Space Error","screenSpaceError",0,128)),f.appendChild(c("Step Size","stepSize",0,2));let A=10,x=10,C=P.PI;d.appendChild(c("Translation X","translationX",-A,+A)),d.appendChild(c("Translation Y","translationY",-A,+A)),d.appendChild(c("Translation Z","translationZ",-A,+A)),d.appendChild(c("Scale X","scaleX",0,+x)),d.appendChild(c("Scale Y","scaleY",0,+x)),d.appendChild(c("Scale Z","scaleZ",0,+x)),d.appendChild(c("Heading","angleX",-C,+C)),d.appendChild(c("Pitch","angleY",-C,+C)),d.appendChild(c("Roll","angleZ",-C,+C));let T=ji.getMinBounds(ji.BOX),E=ji.getMaxBounds(ji.BOX),S=m.fromElements(ji.getMinBounds(ji.ELLIPSOID).x,ji.getMinBounds(ji.ELLIPSOID).y,-oe.WGS84.maximumRadius,new m),v=m.fromElements(ji.getMaxBounds(ji.ELLIPSOID).x,ji.getMaxBounds(ji.ELLIPSOID).y,1e7,new m),D=ji.getMinBounds(ji.CYLINDER),O=ji.getMaxBounds(ji.CYLINDER);Fb("Max X","Min X","Max Y","Min Y","Max Z","Min Z","boundsBoxMaxX","boundsBoxMinX","boundsBoxMaxY","boundsBoxMinY","boundsBoxMaxZ","boundsBoxMinZ",T,E,"shapeIsBox",p),Fb("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","boundsEllipsoidMaxLongitude","boundsEllipsoidMinLongitude","boundsEllipsoidMaxLatitude","boundsEllipsoidMinLatitude","boundsEllipsoidMaxHeight","boundsEllipsoidMinHeight",S,v,"shapeIsEllipsoid",p),Fb("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","boundsCylinderMaxRadius","boundsCylinderMinRadius","boundsCylinderMaxHeight","boundsCylinderMinHeight","boundsCylinderMaxAngle","boundsCylinderMinAngle",D,O,"shapeIsCylinder",p),Fb("Max X","Min X","Max Y","Min Y","Max Z","Min Z","clippingBoxMaxX","clippingBoxMinX","clippingBoxMaxY","clippingBoxMinY","clippingBoxMaxZ","clippingBoxMinZ",T,E,"shapeIsBox",g),Fb("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","clippingEllipsoidMaxLongitude","clippingEllipsoidMinLongitude","clippingEllipsoidMaxLatitude","clippingEllipsoidMinLatitude","clippingEllipsoidMaxHeight","clippingEllipsoidMinHeight",S,v,"shapeIsEllipsoid",g),Fb("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","clippingCylinderMaxRadius","clippingCylinderMinRadius","clippingCylinderMaxHeight","clippingCylinderMinHeight","clippingCylinderMaxAngle","clippingCylinderMinAngle",D,O,"shapeIsCylinder",g);let M=document.createElement("div");h.appendChild(M);let L=document.createElement("textarea");L.setAttribute("data-bind","textInput: shaderString, event: { keydown: shaderEditorKeyPress }"),M.className="cesium-cesiumInspector-styleEditor",M.appendChild(L);let N=u("Compile (Ctrl+Enter)","compileShader");M.appendChild(N);let _=document.createElement("label");_.style.display="block",_.setAttribute("data-bind","text: shaderCompilationMessage, style: {color: shaderCompilationSuccess ? 'green' : 'red'}"),M.appendChild(_),Ce.applyBindings(i,n)}Object.defineProperties(wH.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});wH.prototype.isDestroyed=function(){return!1};wH.prototype.destroy=function(){return Ce.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};function Fb(e,t,n,i,o,r,s,a,c,u,f,d,p,g,h,A){let x=tc.createRangeInput,C=p,T=g,E=A.appendChild(document.createElement("div"));E.setAttribute("data-bind",`if: ${h}`),E.appendChild(x(e,s,C.x,T.x)),E.appendChild(x(t,a,C.x,T.x)),E.appendChild(x(n,c,C.y,T.y)),E.appendChild(x(i,u,C.y,T.y)),E.appendChild(x(o,f,C.z,T.z)),E.appendChild(x(r,d,C.z,T.z))}var vH=wH;function Gyt(e){let t=document.createElement("div");t.className="cesium-viewer-voxelInspectorContainer",e.container.appendChild(t);let n=new vH(t,e.scene);Object.defineProperties(e,{voxelInspector:{get:function(){return n}}})}var sxe=Gyt;globalThis.CESIUM_VERSION="1.105";var WXi="1.105";export{Kh as AlphaMode,SL as AlphaPipelineStage,wz as Animation,vz as AnimationViewModel,to as Appearance,si as ApproximateTerrainHeights,P0e as ArcGISTiledElevationTerrainProvider,th as ArcGisBaseMapType,Up as ArcGisMapServerImageryProvider,df as ArcGisMapService,Zt as ArcType,Ac as ArticulationStageType,Et as AssociativeArray,qn as AttributeCompression,an as AttributeType,Ak as AutoExposure,e_ as AutomaticUniforms,ho as Axis,$y as AxisAlignedBoundingBox,UB as B3dmLoader,FB as B3dmParser,Pz as BaseLayerPicker,Dz as BaseLayerPickerViewModel,Zx as BatchTable,wC as BatchTableHierarchy,Zc as BatchTexture,wL as BatchTexturePipelineStage,po as Billboard,zu as BillboardCollection,lc as BillboardGraphics,bM as BillboardVisualizer,M0e as BingMapsGeocoderService,uD as BingMapsImageryProvider,aD as BingMapsStyle,Da as BlendEquation,Eo as BlendFunction,So as BlendOption,mn as BlendingState,Ke as BoundingRectangle,ae as BoundingSphere,ut as BoundingSphereState,Fge as BoxEmitter,Pl as BoxGeometry,OR as BoxGeometryUpdater,uC as BoxGraphics,im as BoxOutlineGeometry,dV as BrdfLutGenerator,mt as Buffer,IC as BufferLoader,Fe as BufferUsage,PL as CPUStylingPipelineStage,fm as CallbackProperty,uo as Camera,Sk as CameraEventAggregator,Ni as CameraEventType,mV as CameraFlightPath,H as Cartesian2,m as Cartesian3,re as Cartesian4,he as Cartographic,cz as CartographicGeocoderService,B0e as CatmullRomSpline,SC as Cesium3DContentGroup,sd as Cesium3DTile,I_ as Cesium3DTileBatchTable,Nl as Cesium3DTileColorBlendMode,Uge as Cesium3DTileContent,fT as Cesium3DTileContentFactory,Go as Cesium3DTileContentState,xs as Cesium3DTileContentType,Bs as Cesium3DTileFeature,Cm as Cesium3DTileFeatureTable,td as Cesium3DTileOptimizationHint,cF as Cesium3DTileOptimizations,Ro as Cesium3DTilePass,Nd as Cesium3DTilePassState,og as Cesium3DTilePointFeature,zo as Cesium3DTileRefine,Ty as Cesium3DTileStyle,hF as Cesium3DTileStyleEngine,Nz as Cesium3DTilesInspector,Bz as Cesium3DTilesInspectorViewModel,iye as Cesium3DTilesVoxelProvider,Va as Cesium3DTileset,_F as Cesium3DTilesetBaseTraversal,uF as Cesium3DTilesetCache,gC as Cesium3DTilesetGraphics,dF as Cesium3DTilesetHeatmap,K0 as Cesium3DTilesetMetadata,pF as Cesium3DTilesetMostDetailedTraversal,yF as Cesium3DTilesetSkipTraversal,_g as Cesium3DTilesetStatistics,ks as Cesium3DTilesetTraversal,xF as Cesium3DTilesetVisualizer,Vz as CesiumInspector,Fz as CesiumInspectorViewModel,ex as CesiumTerrainProvider,$k as CesiumWidget,El as Check,tv as CheckerboardMaterialProperty,u4 as CircleEmitter,L0e as CircleGeometry,N0e as CircleOutlineGeometry,iL as ClassificationModelDrawCommand,vL as ClassificationPipelineStage,AS as ClassificationPrimitive,zn as ClassificationType,oi as ClearCommand,FC as ClippingPlane,gs as ClippingPlaneCollection,Bm as Clock,Lr as ClockRange,go as ClockStep,Cz as ClockViewModel,uye as CloudCollection,sI as CloudType,z as Color,yc as ColorBlendMode,Vt as ColorGeometryInstanceAttribute,Ut as ColorMaterialProperty,TAe as Command,X as ComponentDatatype,FR as Composite3DTileContent,Jre as CompositeEntityCollection,rv as CompositeMaterialProperty,da as CompositePositionProperty,Cc as CompositeProperty,UP as CompressedTextureBuffer,Pf as ComputeCommand,pP as ComputeEngine,r4 as ConditionsExpression,fye as ConeEmitter,Xc as ConstantPositionProperty,$n as ConstantProperty,YB as ConstantSpline,YN as ContentMetadata,AM as Context,zt as ContextLimits,h2 as CoplanarPolygonGeometry,lg as CoplanarPolygonGeometryLibrary,od as CoplanarPolygonOutlineGeometry,Ri as CornerType,RT as CorridorGeometry,Ui as CorridorGeometryLibrary,PF as CorridorGeometryUpdater,dC as CorridorGraphics,IF as CorridorOutlineGeometry,It as Credit,TV as CreditDisplay,sc as CubeMap,Dh as CubeMapFace,Jx as CubicRealPolynomial,gi as CullFace,ts as CullingVolume,Af as CumulusCloud,LF as CustomDataSource,F0e as CustomHeightmapTerrainProvider,wb as CustomShader,eg as CustomShaderMode,FL as CustomShaderPipelineStage,M0 as CustomShaderTranslucencyMode,NF as CylinderGeometry,LT as CylinderGeometryLibrary,UF as CylinderGeometryUpdater,mC as CylinderGraphics,FF as CylinderOutlineGeometry,KF as CzmlDataSource,Br as DataSource,Lm as DataSourceClock,ZF as DataSourceCollection,k2 as DataSourceDisplay,dye as DebugAppearance,Hp as DebugCameraPrimitive,Uk as DebugInspector,m4 as DebugModelMatrixPrimitive,V0e as DefaultProxy,fc as DepthFunction,IV as DepthPlane,UL as DequantizationPipelineStage,dy as DerivedCommand,fe as DeveloperError,OV as DeviceOrientationCameraController,mye as DirectionalLight,lD as DiscardEmptyTileImagePolicy,AU as DiscardMissingTileImagePolicy,Dt as DistanceDisplayCondition,kn as DistanceDisplayConditionGeometryInstanceAttribute,fb as DoubleEndedPriorityQueue,lF as DoublyLinkedList,U_ as DracoLoader,it as DrawCommand,KT as DynamicGeometryBatch,ai as DynamicGeometryUpdater,BP as EarthOrientationParameters,Gy as EarthOrientationParametersSample,Nr as EasingFunction,sl as EllipseGeometry,Kl as EllipseGeometryLibrary,s2 as EllipseGeometryUpdater,hC as EllipseGraphics,nf as EllipseOutlineGeometry,oe as Ellipsoid,kf as EllipsoidGeodesic,js as EllipsoidGeometry,a2 as EllipsoidGeometryUpdater,pC as EllipsoidGraphics,qu as EllipsoidOutlineGeometry,iV as EllipsoidPrimitive,Pa as EllipsoidRhumbLine,hye as EllipsoidSurfaceAppearance,Ia as EllipsoidTangentPlane,iy as EllipsoidTerrainProvider,Eg as EllipsoidalOccluder,kw as Empty3DTileContent,Yn as EncodedCartesian3,er as Entity,Qu as EntityCluster,zs as EntityCollection,G2 as EntityView,ge as Event,Mr as EventHelper,Gf as Expression,yt as ExpressionNodeType,$u as ExtrapolationType,Gt as FeatureDetection,O0 as FeatureIdPipelineStage,RV as Fog,Oe as ForEach,_4 as FrameRateMonitor,BV as FrameState,ia as Framebuffer,mi as FramebufferManager,kV as FrustumCommands,QE as FrustumGeometry,bV as FrustumOutlineGeometry,_r as Fullscreen,Gz as FullscreenButton,zz as FullscreenButtonViewModel,X2 as GeoJsonDataSource,kB as GeoJsonLoader,rx as GeocodeType,Kz as Geocoder,DI as GeocoderService,qz as GeocoderViewModel,Di as GeographicProjection,Wi as GeographicTilingScheme,dt as Geometry,jR as Geometry3DTileContent,ve as GeometryAttribute,_n as GeometryAttributes,z0e as GeometryFactory,Tt as GeometryInstance,mc as GeometryInstanceAttribute,rn as GeometryOffsetAttribute,Un as GeometryPipeline,zL as GeometryPipelineStage,Mf as GeometryType,ci as GeometryUpdater,P2 as GeometryVisualizer,WE as GetFeatureInfoFormat,QU as Globe,zV as GlobeDepth,gU as GlobeSurfaceShaderSet,Od as GlobeSurfaceTile,zU as GlobeSurfaceTileProvider,HU as GlobeTranslucency,HV as GlobeTranslucencyFramebuffer,LV as GlobeTranslucencyState,XS as GltfBufferViewLoader,KS as GltfDracoLoader,JS as GltfImageLoader,ZS as GltfIndexBufferLoader,$S as GltfJsonLoader,Zh as GltfLoader,kl as GltfLoaderUtil,PB as GltfStructuralMetadataLoader,ew as GltfTextureLoader,tw as GltfVertexBufferLoader,Aye as GoogleEarthEnterpriseImageryProvider,dD as GoogleEarthEnterpriseMapsProvider,mh as GoogleEarthEnterpriseMetadata,II as GoogleEarthEnterpriseTerrainData,q0e as GoogleEarthEnterpriseTerrainProvider,y4 as GoogleEarthEnterpriseTileInformation,o3 as GpxDataSource,i_ as GregorianDate,xye as GridImageryProvider,hv as GridMaterialProperty,Kn as GroundGeometryUpdater,aC as GroundPolylineGeometry,sm as GroundPolylinePrimitive,qc as GroundPrimitive,Yw as GroupMetadata,cf as HeadingPitchRange,rc as HeadingPitchRoll,IP as Heap,qe as HeightReference,Id as HeightmapEncoding,qa as HeightmapTerrainData,rD as HeightmapTessellator,kF as HermitePolynomialApproximation,v0 as HermiteSpline,WS as HilbertOrder,Yz as HomeButton,Wz as HomeButtonViewModel,_i as HorizontalOrigin,mb as I3SDataProvider,A4 as I3SFeature,x4 as I3SField,lI as I3SGeometry,ZA as I3SLayer,uI as I3SNode,jB as I3dmLoader,HB as I3dmParser,eV as Iau2000Orientation,NP as Iau2006XysData,Fx as Iau2006XysSample,tV as IauOrientationAxes,$U as IauOrientationParameters,bC as ImageBasedLighting,lL as ImageBasedLightingPipelineStage,u0 as ImageMaterialProperty,AD as Imagery,Qs as ImageryLayer,WU as ImageryLayerCollection,eh as ImageryLayerFeatureInfo,dl as ImageryProvider,ui as ImageryState,aw as Implicit3DTileContent,jS as ImplicitAvailabilityBitstream,YS as ImplicitMetadataView,jr as ImplicitSubdivisionScheme,BC as ImplicitSubtree,a4 as ImplicitSubtreeCache,KR as ImplicitSubtreeMetadata,vT as ImplicitTileCoordinates,Z0 as ImplicitTileset,Ve as IndexDatatype,Qz as InfoBox,Jz as InfoBoxViewModel,tc as InspectorShared,Yr as InstanceAttributeSemantic,CL as InstancingPipelineStage,X0e as InterpolationAlgorithm,xm as InterpolationType,$t as Intersect,Ji as IntersectionTests,by as Intersections2D,Hc as Interval,VD as InvertClassification,mm as Ion,mz as IonGeocoderService,Rd as IonImageryProvider,ca as IonResource,ih as IonWorldImageryStyle,Ge as Iso8601,FV as JobScheduler,Ra as JobType,Y_ as JsonMetadataTable,ee as JulianDate,VP as KTX2Transcoder,ya as KeyboardEventModifier,$i as KeyframeNode,r3 as KmlCamera,aU as KmlDataSource,K3 as KmlLookAt,Z3 as KmlTour,$3 as KmlTourFlyTo,eU as KmlTourWait,V0 as Label,lp as LabelCollection,am as LabelGraphics,Ho as LabelStyle,O2 as LabelVisualizer,zF as LagrangePolynomialApproximation,zi as LeapSecond,Sye as Light,rp as LightingModel,GL as LightingPipelineStage,VT as LinearApproximation,w0 as LinearSpline,Jc as ManagedArray,uu as MapMode2D,K0e as MapProjection,mD as MapboxImageryProvider,vye as MapboxStyleImageryProvider,Gi as Material,ro as MaterialAppearance,jL as MaterialPipelineStage,$o as MaterialProperty,P as Math,eo as Matrix2,Z as Matrix3,B as Matrix4,fI as Megatexture,ym as MetadataClass,y0 as MetadataClassProperty,nn as MetadataComponentType,Vn as MetadataEntity,xB as MetadataEnum,yB as MetadataEnumValue,Xf as MetadataPipelineStage,Am as MetadataSchema,iw as MetadataSchemaLoader,LC as MetadataSemantic,Ul as MetadataTable,ZR as MetadataTableProperty,jt as MetadataType,Ih as MipmapHint,Sm as Model,sp as Model3DTileContent,aN as ModelAlphaOptions,JB as ModelAnimation,KB as ModelAnimationChannel,QB as ModelAnimationCollection,Hl as ModelAnimationLoop,Tm as ModelAnimationState,dL as ModelArticulation,uL as ModelArticulationStage,pL as ModelClippingPlanesPipelineStage,P0 as ModelColorPipelineStage,Nt as ModelComponents,rL as ModelDrawCommand,$B as ModelFeature,eL as ModelFeatureTable,E_ as ModelGraphics,gN as ModelLightingOptions,TL as ModelMatrixUpdateStage,_L as ModelNode,cN as ModelRenderResources,bL as ModelRuntimeNode,rN as ModelRuntimePrimitive,xN as ModelSceneGraph,dN as ModelSilhouettePipelineStage,sN as ModelSkin,pN as ModelSplitterPipelineStage,CN as ModelStatistics,Vo as ModelType,Qt as ModelUtility,R2 as ModelVisualizer,sV as Moon,qL as MorphTargetsPipelineStage,J0e as MorphWeightSpline,Q0 as MortonOrder,KN as Multiple3DTileContent,xM as MultisampleFramebuffer,tH as NavigationHelpButton,$z as NavigationHelpButtonViewModel,Lt as NearFarScalar,Dye as NeverTileDiscardPolicy,_N as NodeRenderResources,EL as NodeStatisticsPipelineStage,_C as NodeTransformationProperty,WV as OIT,uV as Occluder,dm as OctahedralProjectedCubeMap,Ki as OffsetGeometryInstanceAttribute,Z0e as OpenCageGeocoderService,_b as OpenStreetMapImageryProvider,$F as OrderedGroundPrimitiveCollection,Bn as OrientedBoundingBox,tn as OrthographicFrustum,Ir as OrthographicOffCenterFrustum,Q0e as Packable,$0e as PackableForInterpolation,dI as Particle,Oye as ParticleBurst,Rye as ParticleEmitter,Nye as ParticleSystem,be as Pass,ac as PassState,b_ as PathGraphics,B2 as PathVisualizer,dz as PeliasGeocoderService,sn as PerInstanceColorAppearance,hy as PerformanceDisplay,oH as PerformanceWatchdog,nH as PerformanceWatchdogViewModel,wi as PerspectiveFrustum,pl as PerspectiveOffCenterFrustum,VV as PickDepth,jV as PickDepthFramebuffer,YV as PickFramebuffer,ek as Picking,XL as PickingPipelineStage,Hg as PinBuilder,Je as PixelDatatype,lt as PixelFormat,fn as Plane,u2 as PlaneGeometry,m2 as PlaneGeometryUpdater,PR as PlaneGraphics,d2 as PlaneOutlineGeometry,bw as PntsLoader,nT as PntsParser,I4 as PointCloud,X_ as PointCloudEyeDomeLighting,Qh as PointCloudShading,JL as PointCloudStylingPipelineStage,yC as PointGraphics,Gs as PointPrimitive,fv as PointPrimitiveCollection,L2 as PointVisualizer,rE as PolygonGeometry,Xn as PolygonGeometryLibrary,y2 as PolygonGeometryUpdater,cm as PolygonGraphics,Kc as PolygonHierarchy,g2 as PolygonOutlineGeometry,li as PolygonPipeline,Jf as Polyline,pv as PolylineArrowMaterialProperty,Im as PolylineCollection,Wr as PolylineColorAppearance,_v as PolylineDashMaterialProperty,zg as PolylineGeometry,F2 as PolylineGeometryUpdater,gv as PolylineGlowMaterialProperty,pc as PolylineGraphics,aa as PolylineMaterialAppearance,rA as PolylineOutlineMaterialProperty,Mi as PolylinePipeline,V2 as PolylineVisualizer,A2 as PolylineVolumeGeometry,Mm as PolylineVolumeGeometryLibrary,C2 as PolylineVolumeGeometryUpdater,AC as PolylineVolumeGraphics,x2 as PolylineVolumeOutlineGeometry,T_ as PositionProperty,Sg as PositionPropertyArray,Ao as PostProcessStage,Ck as PostProcessStageCollection,gl as PostProcessStageComposite,Ud as PostProcessStageLibrary,pf as PostProcessStageSampleMode,rb as PostProcessStageTextureCache,wn as Primitive,Xl as PrimitiveCollection,HC as PrimitiveLoadPlan,zC as PrimitiveOutlineGenerator,$L as PrimitiveOutlinePipelineStage,iC as PrimitivePipeline,yN as PrimitiveRenderResources,Ar as PrimitiveState,eN as PrimitiveStatisticsPipelineStage,Le as PrimitiveType,cH as ProjectionPicker,sH as ProjectionPickerViewModel,j as Property,yv as PropertyArray,VC as PropertyAttribute,vB as PropertyAttributeProperty,Rl as PropertyBag,$c as PropertyTable,UC as PropertyTexture,wB as PropertyTextureProperty,ws as ProviderViewModel,tAe as Proxy,Gc as QuadraticRealPolynomial,jU as QuadtreeOccluders,ZU as QuadtreePrimitive,qU as QuadtreeTile,Js as QuadtreeTileLoadState,Hye as QuadtreeTileProvider,gb as QuantizedMeshTerrainData,eR as QuarticRealPolynomial,Ne as Quaternion,XB as QuaternionSpline,z0 as Queue,In as Ray,le as Rectangle,hE as RectangleCollisionChecker,uE as RectangleGeometry,Ts as RectangleGeometryLibrary,T2 as RectangleGeometryUpdater,lm as RectangleGraphics,yT as RectangleOutlineGeometry,no as ReferenceFrame,vg as ReferenceProperty,ze as RenderState,vu as Renderbuffer,zc as RenderbufferFormat,Zo as Request,Sh as RequestErrorEvent,oc as RequestScheduler,ti as RequestState,es as RequestType,we as Resource,Fi as ResourceCache,zl as ResourceCacheKey,EB as ResourceCacheStatistics,io as ResourceLoader,vt as ResourceLoaderState,ud as Rotation,de as RuntimeError,N_ as S2Cell,Us as SDFSettings,ma as SampledPositionProperty,ef as SampledProperty,dn as Sampler,Rp as ScaledPositionProperty,zk as Scene,eb as SceneFramebuffer,ne as SceneMode,tN as SceneMode2DPipelineStage,dH as SceneModePicker,uH as SceneModePickerViewModel,Qi as SceneTransforms,bk as SceneTransitioner,Bk as ScreenSpaceCameraController,_f as ScreenSpaceEventHandler,Cn as ScreenSpaceEventType,R0 as SelectedFeatureIdPipelineStage,_H as SelectionIndicator,hH as SelectionIndicatorViewModel,Wx as ShaderBuilder,hM as ShaderCache,Te as ShaderDestination,TM as ShaderFunction,Jt as ShaderProgram,He as ShaderSource,CM as ShaderStruct,_y as ShadowMap,jp as ShadowMapShader,xn as ShadowMode,Mu as ShadowVolumeAppearance,An as ShowGeometryInstanceAttribute,Ky as Simon1994PlanetaryPositions,nAe as SimplePolylineGeometry,hD as SingleTileImageryProvider,iN as SkinningPipelineStage,Wk as SkyAtmosphere,Xk as SkyBox,P4 as SpatialNode,jye as SphereEmitter,iAe as SphereGeometry,mg as SphereOutlineGeometry,HF as Spherical,oo as Spline,el as SplitDirection,hI as Splitter,_d as StaticGeometryColorBatch,yd as StaticGeometryPerMaterialBatch,Ov as StaticGroundGeometryColorBatch,S2 as StaticGroundGeometryPerMaterialBatch,U2 as StaticGroundPolylinePerMaterialBatch,Mv as StaticOutlineGeometryBatch,Ft as StencilConstants,Hn as StencilFunction,ht as StencilOperation,qB as SteppedSpline,Av as StripeMaterialProperty,Nm as StripeOrientation,Fa as StructuralMetadata,Em as StyleCommandsNeeded,Yye as StyleExpression,Qk as Sun,h_ as SunLight,Fk as SunPostProcess,RB as SupportedImageFormats,xz as SvgPathBindingHandler,pi as TaskProcessor,F4 as Terrain,$m as TerrainData,Dc as TerrainEncoding,Wc as TerrainExaggeration,TD as TerrainFillMesh,Pd as TerrainMesh,TC as TerrainOffsetProperty,Xr as TerrainProvider,Ks as TerrainQuantization,yo as TerrainState,Bt as Texture,N0 as TextureAtlas,pM as TextureCache,bi as TextureMagnificationFilter,sz as TextureManager,ln as TextureMinificationFilter,hAe as TextureUniform,Dn as TextureWrap,hh as TileAvailability,id as TileBoundingRegion,iF as TileBoundingS2Cell,hg as TileBoundingSphere,t0e as TileBoundingVolume,U4 as TileCoordinatesImageryProvider,n0e as TileDiscardPolicy,yn as TileEdge,xD as TileImagery,Vp as TileMapServiceImageryProvider,qN as TileMetadata,rd as TileOrientedBoundingBox,Ti as TileProviderError,KU as TileReplacementQueue,Qn as TileSelectionResult,i0e as TileState,SN as Tileset3DTileContent,aF as TilesetMetadata,aL as TilesetPipelineStage,oAe as TilingScheme,Zn as TimeConstants,jE as TimeDynamicImagery,CI as TimeDynamicPointCloud,bn as TimeInterval,Rr as TimeIntervalCollection,Ig as TimeIntervalCollectionPositionProperty,Pg as TimeIntervalCollectionProperty,Jn as TimeStandard,AH as Timeline,gH as TimelineHighlightRange,yH as TimelineTrack,cR as Tipsify,cx as ToggleButtonViewModel,kA as Tonemapper,Rt as Transforms,d0 as TranslationRotationScale,KV as TranslucentTileClassification,pw as TridiagonalSystemSolver,Kb as TrustedServers,ab as TweenCollection,yM as UniformState,EI as UniformType,Zs as UrlTemplateImageryProvider,WXi as VERSION,EH as VRButton,CH as VRButtonViewModel,aAe as VRTheWorldTerrainProvider,pAe as VaryingType,Hh as Vector3DTileBatch,GN as Vector3DTileClampedPolylines,jN as Vector3DTileContent,M_ as Vector3DTileGeometry,UN as Vector3DTilePoints,VN as Vector3DTilePolygons,uT as Vector3DTilePolylines,vC as Vector3DTilePrimitive,WF as VelocityOrientationProperty,qT as VelocityVectorProperty,ri as VertexArray,p_ as VertexArrayFacade,bt as VertexAttributeSemantic,Pe as VertexFormat,Rn as VerticalOrigin,cAe as VideoSynchronizer,nb as View,$Ae as Viewer,c0e as ViewportQuad,mr as Visibility,rme as Visualizer,Kp as VoxelBoxShape,l4 as VoxelContent,Jp as VoxelCylinderShape,db as VoxelEllipsoidShape,vH as VoxelInspector,SH as VoxelInspectorViewModel,wI as VoxelPrimitive,y0e as VoxelProvider,$4 as VoxelRenderResources,A0e as VoxelShape,ji as VoxelShapeType,TI as VoxelTraversal,lAe as VulkanConstants,v2 as WallGeometry,yE as WallGeometryLibrary,I2 as WallGeometryUpdater,S_ as WallGraphics,D2 as WallOutlineGeometry,te as WebGLConstants,_D as WebMapServiceImageryProvider,yD as WebMapTileServiceImageryProvider,Pi as WebMercatorProjection,Fr as WebMercatorTilingScheme,$r as WindingOrder,Tw as WireframeIndexGenerator,oN as WireframePipelineStage,tk as _shadersAcesTonemappingStage,Lk as _shadersAdditiveBlend,kD as _shadersAdjustTranslucentFS,wM as _shadersAllMaterialAppearanceFS,vM as _shadersAllMaterialAppearanceVS,nk as _shadersAmbientOcclusionGenerate,ik as _shadersAmbientOcclusionModulate,MM as _shadersAspectRampMaterial,oy as _shadersAtmosphereCommon,DM as _shadersBasicMaterialAppearanceFS,IM as _shadersBasicMaterialAppearanceVS,wN as _shadersBillboardCollectionFS,vN as _shadersBillboardCollectionVS,ok as _shadersBlackAndWhite,rk as _shadersBloomComposite,fV as _shadersBrdfLutGeneratorFS,Nk as _shadersBrightPass,sk as _shadersBrightness,RM as _shadersBumpMapMaterial,IL as _shadersCPUStylingStageFS,DL as _shadersCPUStylingStageVS,BM as _shadersCheckerboardMaterial,e4 as _shadersCloudCollectionFS,t4 as _shadersCloudCollectionVS,n4 as _shadersCloudNoiseFS,i4 as _shadersCloudNoiseVS,XV as _shadersCompareAndPackTranslucentDepth,GV as _shadersCompositeOITFS,tb as _shadersCompositeTranslucentClassification,ak as _shadersContrastBias,ML as _shadersCustomShaderStageFS,OL as _shadersCustomShaderStageVS,kx as _shadersCzmBuiltins,ck as _shadersDepthOfField,wV as _shadersDepthPlaneFS,vV as _shadersDepthPlaneVS,lk as _shadersDepthView,mAe as _shadersDepthViewPacked,LM as _shadersDotMaterial,uk as _shadersEdgeDetection,NM as _shadersElevationBandMaterial,FM as _shadersElevationContourMaterial,UM as _shadersElevationRampMaterial,wD as _shadersEllipsoidFS,h4 as _shadersEllipsoidSurfaceAppearanceFS,p4 as _shadersEllipsoidSurfaceAppearanceVS,vD as _shadersEllipsoidVS,dk as _shadersFXAA,yk as _shadersFXAA3_11,VM as _shadersFadeMaterial,RL as _shadersFeatureIdStageFS,BL as _shadersFeatureIdStageVS,fk as _shadersFilmicTonemapping,NA as _shadersGaussianBlur1D,VL as _shadersGeometryStageFS,kL as _shadersGeometryStageVS,pU as _shadersGlobeFS,_U as _shadersGlobeVS,kM as _shadersGridMaterial,sD as _shadersGroundAtmosphere,F1 as _shadersHSBToRGB,U1 as _shadersHSLToRGB,cL as _shadersImageBasedLightingStageFS,gL as _shadersInstancingStageCommon,yL as _shadersInstancingStageVS,j4 as _shadersIntersectBox,W4 as _shadersIntersectClippingPlanes,Y4 as _shadersIntersectCylinder,G4 as _shadersIntersectDepth,q4 as _shadersIntersectEllipsoid,bb as _shadersIntersection,H4 as _shadersIntersectionUtils,AL as _shadersLegacyInstancingStageVS,mk as _shadersLensFlare,HL as _shadersLightingStageFS,WL as _shadersMaterialStageFS,Q4 as _shadersMegatexture,LL as _shadersMetadataStageFS,NL as _shadersMetadataStageVS,hL as _shadersModelClippingPlanesStageFS,mL as _shadersModelColorStageFS,tL as _shadersModelFS,lN as _shadersModelSilhouetteStageFS,uN as _shadersModelSilhouetteStageVS,mN as _shadersModelSplitterStageFS,nL as _shadersModelVS,hk as _shadersModifiedReinhardTonemapping,YL as _shadersMorphTargetsStageVS,pk as _shadersNightVision,zM as _shadersNormalMapMaterial,MR as _shadersOctahedralProjectionAtlasFS,RR as _shadersOctahedralProjectionFS,BR as _shadersOctahedralProjectionVS,Z4 as _shadersOctree,fu as _shadersPassThrough,RA as _shadersPassThroughDepth,JM as _shadersPerInstanceColorAppearanceFS,ZM as _shadersPerInstanceColorAppearanceVS,Xx as _shadersPerInstanceFlatColorAppearanceFS,QM as _shadersPerInstanceFlatColorAppearanceVS,NB as _shadersPointCloudEyeDomeLighting,KL as _shadersPointCloudStylingStageVS,tA as _shadersPointPrimitiveCollectionFS,RF as _shadersPointPrimitiveCollectionVS,HM as _shadersPolylineArrowMaterial,DR as _shadersPolylineColorAppearanceVS,Ru as _shadersPolylineCommon,GM as _shadersPolylineDashMaterial,cC as _shadersPolylineFS,WM as _shadersPolylineGlowMaterial,IR as _shadersPolylineMaterialAppearanceVS,jM as _shadersPolylineOutlineMaterial,bR as _shadersPolylineShadowVolumeFS,SR as _shadersPolylineShadowVolumeMorphFS,wR as _shadersPolylineShadowVolumeMorphVS,vR as _shadersPolylineShadowVolumeVS,RN as _shadersPolylineVS,QL as _shadersPrimitiveOutlineStageFS,ZL as _shadersPrimitiveOutlineStageVS,V1 as _shadersRGBToHSB,k1 as _shadersRGBToHSL,z1 as _shadersRGBToXYZ,_k as _shadersReinhardTonemapping,DU as _shadersReprojectWebMercatorFS,IU as _shadersReprojectWebMercatorVS,YM as _shadersRimLightingMaterial,xw as _shadersSelectedFeatureIdStageCommon,yS as _shadersShadowVolumeAppearanceFS,rR as _shadersShadowVolumeAppearanceVS,t0 as _shadersShadowVolumeFS,gk as _shadersSilhouette,nN as _shadersSkinningStageVS,eI as _shadersSkyAtmosphereCommon,Hk as _shadersSkyAtmosphereFS,Gk as _shadersSkyAtmosphereVS,jk as _shadersSkyBoxFS,Yk as _shadersSkyBoxVS,qM as _shadersSlopeRampMaterial,XM as _shadersStripeMaterial,Kk as _shadersSunFS,Jk as _shadersSunTextureFS,Zk as _shadersSunVS,PM as _shadersTexturedMaterialAppearanceFS,OM as _shadersTexturedMaterialAppearanceVS,HN as _shadersVector3DTileClampedPolylinesFS,zN as _shadersVector3DTileClampedPolylinesVS,kN as _shadersVector3DTilePolylinesVS,GS as _shadersVectorTileVS,o4 as _shadersViewportQuadFS,Ex as _shadersViewportQuadVS,k4 as _shadersVoxelFS,z4 as _shadersVoxelVS,KM as _shadersWater,H1 as _shadersXYZToRGB,G1 as _shadersacesTonemapping,W1 as _shadersalphaWeight,j1 as _shadersantialias,Y1 as _shadersapproximateSphericalCoordinates,q1 as _shadersbackFacing,X1 as _shadersbranchFreeTernary,K1 as _shaderscascadeColor,J1 as _shaderscascadeDistance,Z1 as _shaderscascadeMatrix,Q1 as _shaderscascadeWeights,$1 as _shaderscolumbusViewMorph,eO as _shaderscomputePosition,X4 as _shadersconvertUvToBox,K4 as _shadersconvertUvToCylinder,J4 as _shadersconvertUvToEllipsoid,tO as _shaderscosineAndSine,nO as _shadersdecompressTextureCoordinates,iO as _shadersdefaultPbrMaterial,WP as _shadersdegreesPerRadian,oO as _shadersdepthClamp,jP as _shadersdepthRange,D1 as _shadersdepthRangeStruct,rO as _shaderseastNorthUpToEyeCoordinates,sO as _shadersellipsoidContainsPoint,aO as _shadersellipsoidWgs84TextureCoordinates,YP as _shadersepsilon1,qP as _shadersepsilon2,XP as _shadersepsilon3,KP as _shadersepsilon4,JP as _shadersepsilon5,ZP as _shadersepsilon6,QP as _shadersepsilon7,cO as _shadersequalsEpsilon,lO as _shaderseyeOffset,uO as _shaderseyeToWindowCoordinates,fO as _shadersfastApproximateAtan,dO as _shadersfog,mO as _shadersgammaCorrect,hO as _shadersgeodeticSurfaceNormal,pO as _shadersgetDefaultMaterial,_O as _shadersgetLambertDiffuse,gO as _shadersgetSpecular,yO as _shadersgetWaterNoise,AO as _shadershue,$P as _shadersinfinity,xO as _shadersinverseGamma,CO as _shadersisEmpty,TO as _shadersisFull,EO as _shaderslatitudeToWebMercatorFraction,bO as _shaderslineDistance,SO as _shaderslinearToSrgb,wO as _shadersluminance,I1 as _shadersmaterial,P1 as _shadersmaterialInput,vO as _shadersmetersPerPixel,O1 as _shadersmodelMaterial,DO as _shadersmodelToWindowCoordinates,M1 as _shadersmodelVertexOutput,IO as _shadersmultiplyWithColorBalance,PO as _shadersnearFarScalar,OO as _shadersoctDecode,e1 as _shadersoneOverPi,t1 as _shadersoneOverTwoPi,MO as _shaderspackDepth,n1 as _shaderspassCesium3DTile,i1 as _shaderspassCesium3DTileClassification,o1 as _shaderspassCesium3DTileClassificationIgnoreShow,r1 as _shaderspassClassification,s1 as _shaderspassCompute,a1 as _shaderspassEnvironment,c1 as _shaderspassGlobe,l1 as _shaderspassOpaque,u1 as _shaderspassOverlay,f1 as _shaderspassTerrainClassification,d1 as _shaderspassTranslucent,m1 as _shaderspassVoxels,RO as _shaderspbrLighting,BO as _shaderspbrMetallicRoughnessMaterial,R1 as _shaderspbrParameters,LO as _shaderspbrSpecularGlossinessMaterial,NO as _shadersphong,h1 as _shaderspi,p1 as _shaderspiOverFour,_1 as _shaderspiOverSix,g1 as _shaderspiOverThree,y1 as _shaderspiOverTwo,FO as _shadersplaneDistance,UO as _shaderspointAlongRay,A1 as _shadersradiansPerDegree,B1 as _shadersray,VO as _shadersrayEllipsoidIntersectionInterval,L1 as _shadersraySegment,kO as _shadersraySphereIntersectionInterval,zO as _shadersreadDepth,HO as _shadersreadNonPerspective,GO as _shadersreverseLogDepth,WO as _shadersround,jO as _shaderssampleOctahedralProjection,YO as _shaderssaturation,x1 as _shaderssceneMode2D,C1 as _shaderssceneMode3D,T1 as _shaderssceneModeColumbusView,E1 as _shaderssceneModeMorphing,qO as _shadersshadowDepthCompare,N1 as _shadersshadowParameters,XO as _shadersshadowVisibility,KO as _shaderssignNotZero,b1 as _shaderssolarRadius,JO as _shaderssphericalHarmonics,ZO as _shaderssrgbToLinear,QO as _shaderstangentToEyeSpaceMatrix,$O as _shaderstextureCube,S1 as _shadersthreePiOver2,eM as _shaderstransformPlane,tM as _shaderstranslateRelativeToEye,nM as _shaderstranslucentPhong,iM as _shaderstranspose,w1 as _shaderstwoPi,oM as _shadersunpackDepth,rM as _shadersunpackFloat,sM as _shadersunpackUint,aM as _shadersvalueTransform,cM as _shadersvertexLogDepth,v1 as _shaderswebMercatorMaxLatitude,lM as _shaderswindowToEyeCoordinates,uM as _shaderswriteDepthClamp,fM as _shaderswriteLogDepth,dM as _shaderswriteNonPerspective,cB as addBuffer,QR as addDefaults,rB as addExtensionsRequired,jf as addExtensionsUsed,C0 as addPipelineExtras,_s as addToArray,SP as appendForwardSlash,xo as arrayRemoveDuplicates,Qx as barycentricCoordinates,Do as binarySearch,sL as buildDrawCommand,en as buildModuleUrl,nz as buildVoxelDrawCommands,Ye as clone,gt as combine,vb as computeFlyToLocationForRectangle,rT as createBillboardPointCallback,Sn as createCommand,Oz as createDefaultImageryProviderViewModels,Mz as createDefaultTerrainProviderViewModels,E0e as createElevationBandMaterial,jn as createGuid,Io as createMaterialPropertyDescriptor,b0e as createOsmBuildings,S0e as createOsmBuildingsAsync,ce as createPropertyDescriptor,Ml as createRawPropertyDescriptor,w0e as createTangentSpaceDebugPrimitive,_Ae as createTaskProcessorWorker,fP as createUniform,dP as createUniformArray,v0e as createWorldImagery,ay as createWorldImageryAsync,uAe as createWorldTerrain,Cb as createWorldTerrainAsync,g4 as decodeGoogleEarthEnterpriseData,WN as decodeVectorPolylinePositions,y as defaultValue,oa as defer,l as defined,mM as demodernizeShader,$ as deprecationWarning,ue as destroyObject,pme as exportKml,MC as findAccessorMinMax,dT as findContentMetadata,mT as findGroupMetadata,XN as findTileMetadata,QS as forEachTextureInMaterial,Np as formatError,HX as freezeRenderState,s_ as getAbsoluteUri,Vl as getAccessorByteStride,wP as getBaseUri,Bu as getBinaryAccessor,w4 as getClipAndStyleCode,ry as getClippingFunction,z_ as getComponentReader,On as getElement,Dx as getExtensionFromUri,bg as getFilenameFromUri,oz as getImageFromTypedArray,Jd as getImagePixels,Po as getJsonFromTypedArray,pm as getMagic,Ll as getStringFromTypedArray,Ci as getTimestamp,ni as hasExtension,w_ as heightReferenceOnEntityPropertyChanged,Rc as isBitSet,Ix as isBlobUri,Px as isCrossOriginUrl,a_ as isDataUri,o_ as isLeapYear,Ce as knockout,Rb as knockout_3_5_1,Az as knockout_es5,Ox as loadAndExecuteScript,EM as loadCubeMap,PC as loadImageFromTypedArray,Sl as loadKTX2,ly as mergeSort,oB as moveTechniqueRenderStates,sB as moveTechniquesToExtension,Nu as numberOfComponentsForType,Mx as objectToQuery,Mt as oneTimeWarning,K_ as parseBatchTable,bB as parseBoundingVolumeSemantics,IB as parseFeatureMetadataLegacy,tB as parseGlb,DP as parseResponseHeaders,DB as parseStructuralMetadata,fAe as pointInsideTriangle,gp as preprocess3DTileContent,tz as processVoxelProperties,bu as queryToObject,lB as readAccessorPacked,RC as removeExtension,eB as removeExtensionsRequired,OC as removeExtensionsUsed,iB as removePipelineExtras,aB as removeUnusedElements,E0 as resizeImageToNextPowerOfTwo,M2 as sampleTerrain,Fg as sampleTerrainMostDetailed,Tx as scaleToGeodeticSurface,sR as subdivideArray,xa as subscribeAndEvaluate,fB as updateAccessorComponentTypes,pB as updateVersion,xr as usesExtension,exe as viewerCesium3DTilesInspectorMixin,txe as viewerCesiumInspectorMixin,ixe as viewerDragDropMixin,oxe as viewerPerformanceWatchdogMixin,sxe as viewerVoxelInspectorMixin,dAe as webGLConstantToGlslType,yz as wrapFunction,aT as writeTextToCanvas}; diff --git a/public/static/SampleData/Cesium3DTiles/Batched/BatchedColors/batchedColors.b3dm b/public/static/SampleData/Cesium3DTiles/Batched/BatchedColors/batchedColors.b3dm new file mode 100644 index 0000000..d877294 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Batched/BatchedColors/batchedColors.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Batched/BatchedColors/tileset.json b/public/static/SampleData/Cesium3DTiles/Batched/BatchedColors/tileset.json new file mode 100644 index 0000000..cbcfce0 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Batched/BatchedColors/tileset.json @@ -0,0 +1,41 @@ +{ + "asset": { + "version": "1.0" + }, + "properties": { + "id": { + "minimum": 0, + "maximum": 9 + }, + "Longitude": { + "minimum": -1.3196959060375169, + "maximum": -1.3196607462778132 + }, + "Latitude": { + "minimum": 0.6988590050687061, + "maximum": 0.6988864387845588 + }, + "Height": { + "minimum": 6.1022464875131845, + "maximum": 13.410263679921627 + } + }, + "geometricError": 70, + "root": { + "refine": "ADD", + "boundingVolume": { + "region": [ + -1.3197004795898053, + 0.6988582109, + -1.3196595204101946, + 0.6988897891, + 0, + 20 + ] + }, + "geometricError": 0, + "content": { + "uri": "batchedColors.b3dm" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucent/batchedTranslucent.b3dm b/public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucent/batchedTranslucent.b3dm new file mode 100644 index 0000000..fddc903 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucent/batchedTranslucent.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucent/tileset.json b/public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucent/tileset.json new file mode 100644 index 0000000..036bb25 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucent/tileset.json @@ -0,0 +1,41 @@ +{ + "asset": { + "version": "1.0" + }, + "properties": { + "id": { + "minimum": 0, + "maximum": 9 + }, + "Longitude": { + "minimum": -1.3196959060375169, + "maximum": -1.3196607462778132 + }, + "Latitude": { + "minimum": 0.6988590050687061, + "maximum": 0.6988864387845588 + }, + "Height": { + "minimum": 6.1022464875131845, + "maximum": 13.410263679921627 + } + }, + "geometricError": 70, + "root": { + "refine": "ADD", + "boundingVolume": { + "region": [ + -1.3197004795898053, + 0.6988582109, + -1.3196595204101946, + 0.6988897891, + 0, + 20 + ] + }, + "geometricError": 0, + "content": { + "uri": "batchedTranslucent.b3dm" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucentOpaqueMix/batchedTranslucentOpaqueMix.b3dm b/public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucentOpaqueMix/batchedTranslucentOpaqueMix.b3dm new file mode 100644 index 0000000..db421f7 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucentOpaqueMix/batchedTranslucentOpaqueMix.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucentOpaqueMix/tileset.json b/public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucentOpaqueMix/tileset.json new file mode 100644 index 0000000..37b5733 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Batched/BatchedTranslucentOpaqueMix/tileset.json @@ -0,0 +1,41 @@ +{ + "asset": { + "version": "1.0" + }, + "properties": { + "id": { + "minimum": 0, + "maximum": 9 + }, + "Longitude": { + "minimum": -1.3196959060375169, + "maximum": -1.3196607462778132 + }, + "Latitude": { + "minimum": 0.6988590050687061, + "maximum": 0.6988864387845588 + }, + "Height": { + "minimum": 6.1022464875131845, + "maximum": 13.410263679921627 + } + }, + "geometricError": 70, + "root": { + "refine": "ADD", + "boundingVolume": { + "region": [ + -1.3197004795898053, + 0.6988582109, + -1.3196595204101946, + 0.6988897891, + 0, + 20 + ] + }, + "geometricError": 0, + "content": { + "uri": "batchedTranslucentOpaqueMix.b3dm" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Batched/BatchedWithBatchTable/batchedWithBatchTable.b3dm b/public/static/SampleData/Cesium3DTiles/Batched/BatchedWithBatchTable/batchedWithBatchTable.b3dm new file mode 100644 index 0000000..b867b67 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Batched/BatchedWithBatchTable/batchedWithBatchTable.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Batched/BatchedWithBatchTable/tileset.json b/public/static/SampleData/Cesium3DTiles/Batched/BatchedWithBatchTable/tileset.json new file mode 100644 index 0000000..698746a --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Batched/BatchedWithBatchTable/tileset.json @@ -0,0 +1,41 @@ +{ + "asset": { + "version": "1.0" + }, + "properties": { + "id": { + "minimum": 0, + "maximum": 9 + }, + "Longitude": { + "minimum": -1.3196959060375169, + "maximum": -1.3196607462778132 + }, + "Latitude": { + "minimum": 0.6988590050687061, + "maximum": 0.6988864387845588 + }, + "Height": { + "minimum": 6.1022464875131845, + "maximum": 13.410263679921627 + } + }, + "geometricError": 70, + "root": { + "refine": "ADD", + "boundingVolume": { + "region": [ + -1.3197004795898053, + 0.6988582109, + -1.3196595204101946, + 0.6988897891, + 0, + 20 + ] + }, + "geometricError": 0, + "content": { + "uri": "batchedWithBatchTable.b3dm" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Classification/Photogrammetry/content.b3dm b/public/static/SampleData/Cesium3DTiles/Classification/Photogrammetry/content.b3dm new file mode 100644 index 0000000..e5e46b0 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Classification/Photogrammetry/content.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Classification/Photogrammetry/tileset.json b/public/static/SampleData/Cesium3DTiles/Classification/Photogrammetry/tileset.json new file mode 100644 index 0000000..08431cd --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Classification/Photogrammetry/tileset.json @@ -0,0 +1,31 @@ +{ + "asset": { + "version": "1.0", + "tilesetVersion": "1.0" + }, + "properties": { + "Longitude": { + "minimum": -1.3194245623155147, + "maximum": -1.3194092552469474 + }, + "Latitude": { + "minimum": 0.6988049305192636, + "maximum": 0.6988185175658763 + }, + "Height": { + "minimum": 73.0000006258161, + "maximum": 102.999890661765747 + } + }, + "geometricError": 1000.0, + "root": { + "boundingVolume": { + "region": [-1.3194315762936881, 0.6987998244450816, -1.3194015908860113, 0.6988235397748883, 73.0000006258161, 102.999890661765747] + }, + "geometricError": 0, + "refine": "ADD", + "content": { + "uri": "content.b3dm" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Classification/PointCloud/content.geom b/public/static/SampleData/Cesium3DTiles/Classification/PointCloud/content.geom new file mode 100644 index 0000000..3a318f5 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Classification/PointCloud/content.geom differ diff --git a/public/static/SampleData/Cesium3DTiles/Classification/PointCloud/tileset.json b/public/static/SampleData/Cesium3DTiles/Classification/PointCloud/tileset.json new file mode 100644 index 0000000..759d1cf --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Classification/PointCloud/tileset.json @@ -0,0 +1,41 @@ +{ + "asset": { + "version": "1.0" + }, + "geometricError": 1000, + "root": { + "boundingVolume": { + "region": [ + 0.05106109590840974, + 0.8096200283483475, + 0.05108367303398731, + 0.809642605473925, + 313.24, + 513.24 + ] + }, + "transform": [ + -0.05105018459701556, + 0.9986960892346634, + 0, + 0, + -0.7230889943688711, + -0.036962021820761914, + 0.6897652609152887, + 0, + 0.6888658685660259, + 0.03521264389833409, + 0.7240330688818458, + 0, + 4401696.395347578, + 225000.79448064446, + 4595435.890447363, + 1 + ], + "geometricError": 0, + "refine": "REPLACE", + "content": { + "uri": "content.geom" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Composite/Composite/composite.cmpt b/public/static/SampleData/Cesium3DTiles/Composite/Composite/composite.cmpt new file mode 100644 index 0000000..4564fa2 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Composite/Composite/composite.cmpt differ diff --git a/public/static/SampleData/Cesium3DTiles/Composite/Composite/tileset.json b/public/static/SampleData/Cesium3DTiles/Composite/Composite/tileset.json new file mode 100644 index 0000000..31e0dea --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Composite/Composite/tileset.json @@ -0,0 +1,41 @@ +{ + "asset": { + "version": "1.0" + }, + "properties": { + "id": { + "minimum": 0, + "maximum": 9 + }, + "Longitude": { + "minimum": -1.3196959060375169, + "maximum": -1.3196607462778132 + }, + "Latitude": { + "minimum": 0.6988590050687061, + "maximum": 0.6988864387845588 + }, + "Height": { + "minimum": 6.1022464875131845, + "maximum": 20 + } + }, + "geometricError": 70, + "root": { + "refine": "ADD", + "boundingVolume": { + "region": [ + -1.3197004795898053, + 0.6988582109, + -1.3196595204101946, + 0.6988897891, + 0, + 30 + ] + }, + "geometricError": 0, + "content": { + "uri": "composite.cmpt" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Hierarchy/BatchTableHierarchy/tile.b3dm b/public/static/SampleData/Cesium3DTiles/Hierarchy/BatchTableHierarchy/tile.b3dm new file mode 100644 index 0000000..cf1197b Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Hierarchy/BatchTableHierarchy/tile.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Hierarchy/BatchTableHierarchy/tileset.json b/public/static/SampleData/Cesium3DTiles/Hierarchy/BatchTableHierarchy/tileset.json new file mode 100644 index 0000000..b585146 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Hierarchy/BatchTableHierarchy/tileset.json @@ -0,0 +1,53 @@ +{ + "asset": { + "version": "1.0" + }, + "geometricError": 70, + "root": { + "transform": [ + 0.9686356343768792, + 0.24848542777253735, + 0, + 0, + -0.15986460744966327, + 0.623177611820219, + 0.765567091384559, + 0, + 0.19023226619126932, + -0.7415555652213445, + 0.6433560667227647, + 0, + 1215011.9317263428, + -4736309.3434217675, + 4081602.0044800863, + 1 + ], + "refine": "ADD", + "boundingVolume": { + "box": [ + 0, + 0, + 10, + 50, + 0, + 0, + 0, + 50, + 0, + 0, + 0, + 10 + ] + }, + "geometricError": 0, + "content": { + "uri": "tile.b3dm" + } + }, + "extensionsUsed": [ + "3DTILES_batch_table_hierarchy" + ], + "extensionsRequired": [ + "3DTILES_batch_table_hierarchy" + ] +} diff --git a/public/static/SampleData/Cesium3DTiles/Instanced/InstancedOrientation/instancedOrientation.i3dm b/public/static/SampleData/Cesium3DTiles/Instanced/InstancedOrientation/instancedOrientation.i3dm new file mode 100644 index 0000000..b06894d Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Instanced/InstancedOrientation/instancedOrientation.i3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Instanced/InstancedOrientation/tileset.json b/public/static/SampleData/Cesium3DTiles/Instanced/InstancedOrientation/tileset.json new file mode 100644 index 0000000..00c6d0c --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Instanced/InstancedOrientation/tileset.json @@ -0,0 +1,29 @@ +{ + "asset": { + "version": "1.0" + }, + "properties": { + "Height": { + "minimum": 20, + "maximum": 20 + } + }, + "geometricError": 70, + "root": { + "refine": "ADD", + "boundingVolume": { + "region": [ + -1.3197004795898053, + 0.6988582109, + -1.3196595204101946, + 0.6988897891, + 0, + 30 + ] + }, + "geometricError": 0, + "content": { + "uri": "instancedOrientation.i3dm" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Instanced/InstancedWithBatchTable/instancedWithBatchTable.i3dm b/public/static/SampleData/Cesium3DTiles/Instanced/InstancedWithBatchTable/instancedWithBatchTable.i3dm new file mode 100644 index 0000000..82f7fc9 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Instanced/InstancedWithBatchTable/instancedWithBatchTable.i3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Instanced/InstancedWithBatchTable/tileset.json b/public/static/SampleData/Cesium3DTiles/Instanced/InstancedWithBatchTable/tileset.json new file mode 100644 index 0000000..93ce14f --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Instanced/InstancedWithBatchTable/tileset.json @@ -0,0 +1,29 @@ +{ + "asset": { + "version": "1.0" + }, + "properties": { + "Height": { + "minimum": 20, + "maximum": 20 + } + }, + "geometricError": 70, + "root": { + "refine": "ADD", + "boundingVolume": { + "region": [ + -1.3197004795898053, + 0.6988582109, + -1.3196595204101946, + 0.6988897891, + 0, + 30 + ] + }, + "geometricError": 0, + "content": { + "uri": "instancedWithBatchTable.i3dm" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudBatched/pointCloudBatched.pnts b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudBatched/pointCloudBatched.pnts new file mode 100644 index 0000000..cad09d4 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudBatched/pointCloudBatched.pnts differ diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudBatched/tileset.json b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudBatched/tileset.json new file mode 100644 index 0000000..2b2b44d --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudBatched/tileset.json @@ -0,0 +1,21 @@ +{ + "asset": { + "version": "1.0" + }, + "geometricError": 17.32, + "root": { + "refine": "ADD", + "boundingVolume": { + "sphere": [ + 1215012.8828876738, + -4736313.051199594, + 4081605.22126042, + 5 + ] + }, + "geometricError": 0, + "content": { + "uri": "pointCloudBatched.pnts" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudConstantColor/pointCloudConstantColor.pnts b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudConstantColor/pointCloudConstantColor.pnts new file mode 100644 index 0000000..8ae19e3 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudConstantColor/pointCloudConstantColor.pnts differ diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudConstantColor/tileset.json b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudConstantColor/tileset.json new file mode 100644 index 0000000..0b76d7c --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudConstantColor/tileset.json @@ -0,0 +1,21 @@ +{ + "asset": { + "version": "1.0" + }, + "geometricError": 17.32, + "root": { + "refine": "ADD", + "boundingVolume": { + "sphere": [ + 1215012.8828876738, + -4736313.051199594, + 4081605.22126042, + 5 + ] + }, + "geometricError": 0, + "content": { + "uri": "pointCloudConstantColor.pnts" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudDraco/pointCloudDraco.pnts b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudDraco/pointCloudDraco.pnts new file mode 100644 index 0000000..d12ab7d Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudDraco/pointCloudDraco.pnts differ diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudDraco/tileset.json b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudDraco/tileset.json new file mode 100644 index 0000000..11de73f --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudDraco/tileset.json @@ -0,0 +1,27 @@ +{ + "asset": { + "version": "1.0" + }, + "extensionsUsed": [ + "3DTILES_draco_point_compression" + ], + "extensionsRequired": [ + "3DTILES_draco_point_compression" + ], + "geometricError": 17.32, + "root": { + "refine": "ADD", + "boundingVolume": { + "sphere": [ + 1215012.8828876738, + -4736313.051199594, + 4081605.22126042, + 5 + ] + }, + "geometricError": 0, + "content": { + "uri": "pointCloudDraco.pnts" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudNormals/pointCloudNormals.pnts b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudNormals/pointCloudNormals.pnts new file mode 100644 index 0000000..375794a Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudNormals/pointCloudNormals.pnts differ diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudNormals/tileset.json b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudNormals/tileset.json new file mode 100644 index 0000000..3ed29dc --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudNormals/tileset.json @@ -0,0 +1,21 @@ +{ + "asset": { + "version": "1.0" + }, + "geometricError": 17.32, + "root": { + "refine": "ADD", + "boundingVolume": { + "sphere": [ + 1215012.8828876738, + -4736313.051199594, + 4081605.22126042, + 5 + ] + }, + "geometricError": 0, + "content": { + "uri": "pointCloudNormals.pnts" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudRGB/pointCloudRGB.pnts b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudRGB/pointCloudRGB.pnts new file mode 100644 index 0000000..5e63f5d Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudRGB/pointCloudRGB.pnts differ diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudRGB/tileset.json b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudRGB/tileset.json new file mode 100644 index 0000000..fc39bf5 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudRGB/tileset.json @@ -0,0 +1,21 @@ +{ + "asset": { + "version": "1.0" + }, + "geometricError": 17.32, + "root": { + "refine": "ADD", + "boundingVolume": { + "sphere": [ + 1215012.8828876738, + -4736313.051199594, + 4081605.22126042, + 5 + ] + }, + "geometricError": 0, + "content": { + "uri": "pointCloudRGB.pnts" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/0.pnts b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/0.pnts new file mode 100644 index 0000000..46dc632 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/0.pnts differ diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/1.pnts b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/1.pnts new file mode 100644 index 0000000..5a1c21c Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/1.pnts differ diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/2.pnts b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/2.pnts new file mode 100644 index 0000000..6bef4d1 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/2.pnts differ diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/3.pnts b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/3.pnts new file mode 100644 index 0000000..16a2bbd Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/3.pnts differ diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/4.pnts b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/4.pnts new file mode 100644 index 0000000..f8589fa Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/4.pnts differ diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudWithPerPointProperties/pointCloudWithPerPointProperties.pnts b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudWithPerPointProperties/pointCloudWithPerPointProperties.pnts new file mode 100644 index 0000000..2b10545 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudWithPerPointProperties/pointCloudWithPerPointProperties.pnts differ diff --git a/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudWithPerPointProperties/tileset.json b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudWithPerPointProperties/tileset.json new file mode 100644 index 0000000..4b2412a --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/PointCloud/PointCloudWithPerPointProperties/tileset.json @@ -0,0 +1,39 @@ +{ + "asset": { + "version": "1.0" + }, + "geometricError": 17.32, + "root": { + "transform": [ + 0.968635634376879, + 0.24848542777253735, + 0, + 0, + -0.15986460794399626, + 0.6231776137472074, + 0.7655670897127491, + 0, + 0.190232265775849, + -0.7415555636019701, + 0.6433560687121489, + 0, + 1215012.8828876738, + -4736313.051199594, + 4081605.22126042, + 1 + ], + "refine": "ADD", + "boundingVolume": { + "sphere": [ + 0, + 0, + 0, + 5 + ] + }, + "geometricError": 0, + "content": { + "uri": "pointCloudWithPerPointProperties.pnts" + } + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/ll.b3dm b/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/ll.b3dm new file mode 100644 index 0000000..8047193 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/ll.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/lr.b3dm b/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/lr.b3dm new file mode 100644 index 0000000..e273cb0 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/lr.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/parent.b3dm b/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/parent.b3dm new file mode 100644 index 0000000..8cb9589 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/parent.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/tileset.json b/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/tileset.json new file mode 100644 index 0000000..2874634 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/tileset.json @@ -0,0 +1,124 @@ +{ + "asset": { + "version": "1.0", + "tilesetVersion": "1.2.3" + }, + "extras": { + "name": "Sample Tileset" + }, + "properties": { + "id": { + "minimum": 0, + "maximum": 9 + }, + "Longitude": { + "minimum": -1.3197192952275933, + "maximum": -1.319644104024109 + }, + "Latitude": { + "minimum": 0.698848878034009, + "maximum": 0.6989046192460953 + }, + "Height": { + "minimum": 6.161747192963958, + "maximum": 85.41026367992163 + } + }, + "geometricError": 240, + "root": { + "boundingVolume": { + "region": [ + -1.3197209591796106, + 0.6988424218, + -1.3196390408203893, + 0.6989055782, + 0, + 88 + ] + }, + "geometricError": 70, + "refine": "ADD", + "content": { + "uri": "parent.b3dm", + "boundingVolume": { + "region": [ + -1.3197004795898053, + 0.6988582109, + -1.3196595204101946, + 0.6988897891, + 0, + 88 + ] + } + }, + "children": [ + { + "boundingVolume": { + "region": [ + -1.3197209591796106, + 0.6988424218, + -1.31968, + 0.698874, + 0, + 20 + ] + }, + "geometricError": 0, + "content": { + "uri": "ll.b3dm" + } + }, + { + "boundingVolume": { + "region": [ + -1.31968, + 0.6988424218, + -1.3196390408203893, + 0.698874, + 0, + 20 + ] + }, + "geometricError": 0, + "content": { + "uri": "lr.b3dm" + }, + "extras": { + "id": "Special Tile" + } + }, + { + "boundingVolume": { + "region": [ + -1.31968, + 0.698874, + -1.3196390408203893, + 0.6989055782, + 0, + 20 + ] + }, + "geometricError": 0, + "content": { + "uri": "ur.b3dm" + } + }, + { + "boundingVolume": { + "region": [ + -1.3197209591796106, + 0.698874, + -1.31968, + 0.6989055782, + 0, + 20 + ] + }, + "geometricError": 0, + "content": { + "uri": "ul.b3dm" + } + } + ] + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/ul.b3dm b/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/ul.b3dm new file mode 100644 index 0000000..81d6260 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/ul.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/ur.b3dm b/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/ur.b3dm new file mode 100644 index 0000000..9ae74c7 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Tilesets/Tileset/ur.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/ll.b3dm b/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/ll.b3dm new file mode 100644 index 0000000..5e29867 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/ll.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/lr.b3dm b/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/lr.b3dm new file mode 100644 index 0000000..ebb2475 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/lr.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/points.pnts b/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/points.pnts new file mode 100644 index 0000000..acdbdaf Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/points.pnts differ diff --git a/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/tileset.json b/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/tileset.json new file mode 100644 index 0000000..7117c51 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/tileset.json @@ -0,0 +1,126 @@ +{ + "asset": { + "version": "1.0" + }, + "geometricError": 240, + "root": { + "boundingVolume": { + "region": [ + -1.3197209591796106, + 0.6988424218, + -1.3196390408203893, + 0.6989055782, + 0, + 20 + ] + }, + "geometricError": 70, + "refine": "ADD", + "children": [ + { + "boundingVolume": { + "region": [ + -1.3197209591796106, + 0.6988424218, + -1.31968, + 0.698874, + 0, + 20 + ] + }, + "geometricError": 0, + "content": { + "uri": "ll.b3dm" + } + }, + { + "boundingVolume": { + "region": [ + -1.31968, + 0.6988424218, + -1.3196390408203893, + 0.698874, + 0, + 20 + ] + }, + "geometricError": 0, + "content": { + "uri": "lr.b3dm" + } + }, + { + "boundingVolume": { + "region": [ + -1.31968, + 0.698874, + -1.3196390408203893, + 0.6989055782, + 0, + 20 + ] + }, + "geometricError": 0, + "content": { + "uri": "ur.b3dm" + } + }, + { + "boundingVolume": { + "region": [ + -1.3197209591796106, + 0.698874, + -1.31968, + 0.6989055782, + 0, + 20 + ] + }, + "geometricError": 0, + "content": { + "uri": "ul.b3dm" + } + }, + { + "transform": [ + 0.9686356343768793, + 0.24848542777253738, + 0, + 0, + -0.1598646089326599, + 0.6231776176011753, + 0.7655670863691378, + 0, + 0.19023226494501025, + -0.7415555603632288, + 0.643356072690908, + 0, + 1215014.7852103356, + -4736320.466755246, + 4081611.654821087, + 1 + ], + "viewerRequestVolume": { + "sphere": [ + 0, + 0, + 0, + 1000 + ] + }, + "boundingVolume": { + "sphere": [ + 0, + 0, + 0, + 10 + ] + }, + "geometricError": 0, + "content": { + "uri": "points.pnts" + } + } + ] + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/ul.b3dm b/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/ul.b3dm new file mode 100644 index 0000000..5ef9683 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/ul.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/ur.b3dm b/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/ur.b3dm new file mode 100644 index 0000000..7dd42a0 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Tilesets/TilesetWithViewerRequestVolume/ur.b3dm differ diff --git a/public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/subtrees/0/0/0/0.json b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/subtrees/0/0/0/0.json new file mode 100644 index 0000000..abc8af1 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/subtrees/0/0/0/0.json @@ -0,0 +1,14 @@ +{ + "tileAvailability": { + "availableCount": 1, + "constant": 1 + }, + "contentAvailability": { + "availableCount": 1, + "constant": 1 + }, + "childSubtreeAvailability": { + "availableCount": 0, + "constant": 0 + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/tiles/0/0/0/0.json b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/tiles/0/0/0/0.json new file mode 100644 index 0000000..6883277 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/tiles/0/0/0/0.json @@ -0,0 +1,27 @@ +{ + "buffers": [ + { + "uri": "a.bin", + "byteLength": 32 + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 32 + } + ], + "propertyTables": [ + { + "class": "voxel", + "count": 8, + "properties": { + "a": { + "values": 0 + } + } + } + ], + "voxelTable": 0 +} diff --git a/public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/tiles/0/0/0/a.bin b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/tiles/0/0/0/a.bin new file mode 100644 index 0000000..6eac4f3 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/tiles/0/0/0/a.bin differ diff --git a/public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/tileset.json b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/tileset.json new file mode 100644 index 0000000..7d704a8 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelBox3DTiles/tileset.json @@ -0,0 +1,79 @@ +{ + "asset": { + "version": "1.1" + }, + "schema": { + "id": "voxel", + "classes": { + "voxel": { + "properties": { + "a": { + "type": "SCALAR", + "componentType": "FLOAT32" + } + } + } + } + }, + "statistics": { + "classes": { + "voxel": { + "count": 8, + "properties": { + "a": { + "min": 0.0, + "max": 1.0 + } + } + } + } + }, + "geometricError": 0.0, + "root": { + "boundingVolume": { + "box": [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + }, + "geometricError": 0.0, + "refine": "REPLACE", + "content": { + "uri": "tiles/{level}/{x}/{y}/{z}.json", + "extensions": { + "3DTILES_content_voxels": { + "dimensions": [ + 2, + 2, + 2 + ], + "class": "voxel" + } + } + }, + "implicitTiling": { + "subdivisionScheme": "OCTREE", + "subtreeLevels": 3, + "availableLevels": 1, + "subtrees": { + "uri": "subtrees/{level}/{x}/{y}/{z}.json" + } + } + }, + "extensionsUsed": [ + "3DTILES_content_voxels" + ], + "extensionsRequired": [ + "3DTILES_content_voxels" + ] +} diff --git a/public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/subtrees/0/0/0/0.json b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/subtrees/0/0/0/0.json new file mode 100644 index 0000000..abc8af1 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/subtrees/0/0/0/0.json @@ -0,0 +1,14 @@ +{ + "tileAvailability": { + "availableCount": 1, + "constant": 1 + }, + "contentAvailability": { + "availableCount": 1, + "constant": 1 + }, + "childSubtreeAvailability": { + "availableCount": 0, + "constant": 0 + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/tiles/0/0/0/0.json b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/tiles/0/0/0/0.json new file mode 100644 index 0000000..6883277 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/tiles/0/0/0/0.json @@ -0,0 +1,27 @@ +{ + "buffers": [ + { + "uri": "a.bin", + "byteLength": 32 + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 32 + } + ], + "propertyTables": [ + { + "class": "voxel", + "count": 8, + "properties": { + "a": { + "values": 0 + } + } + } + ], + "voxelTable": 0 +} diff --git a/public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/tiles/0/0/0/a.bin b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/tiles/0/0/0/a.bin new file mode 100644 index 0000000..6eac4f3 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/tiles/0/0/0/a.bin differ diff --git a/public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/tileset.json b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/tileset.json new file mode 100644 index 0000000..d1652c7 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelCylinder3DTiles/tileset.json @@ -0,0 +1,85 @@ +{ + "asset": { + "version": "1.1" + }, + "schema": { + "id": "voxel", + "classes": { + "voxel": { + "properties": { + "a": { + "type": "SCALAR", + "componentType": "FLOAT32" + } + } + } + } + }, + "statistics": { + "classes": { + "voxel": { + "count": 8, + "properties": { + "a": { + "min": 0.0, + "max": 1.0 + } + } + } + } + }, + "geometricError": 0.0, + "root": { + "boundingVolume": { + "extensions": { + "3DTILES_bounding_volume_cylinder": { + "cylinder": [ + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + } + } + }, + "geometricError": 0.0, + "refine": "REPLACE", + "content": { + "uri": "tiles/{level}/{x}/{y}/{z}.json", + "extensions": { + "3DTILES_content_voxels": { + "dimensions": [ + 2, + 2, + 2 + ], + "class": "voxel" + } + } + }, + "implicitTiling": { + "subdivisionScheme": "OCTREE", + "subtreeLevels": 3, + "availableLevels": 1, + "subtrees": { + "uri": "subtrees/{level}/{x}/{y}/{z}.json" + } + } + }, + "extensionsUsed": [ + "3DTILES_content_voxels", + "3DTILES_bounding_volume_cylinder" + ], + "extensionsRequired": [ + "3DTILES_content_voxels", + "3DTILES_bounding_volume_cylinder" + ] +} diff --git a/public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/subtrees/0/0/0/0.json b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/subtrees/0/0/0/0.json new file mode 100644 index 0000000..abc8af1 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/subtrees/0/0/0/0.json @@ -0,0 +1,14 @@ +{ + "tileAvailability": { + "availableCount": 1, + "constant": 1 + }, + "contentAvailability": { + "availableCount": 1, + "constant": 1 + }, + "childSubtreeAvailability": { + "availableCount": 0, + "constant": 0 + } +} diff --git a/public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/tiles/0/0/0/0.json b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/tiles/0/0/0/0.json new file mode 100644 index 0000000..6883277 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/tiles/0/0/0/0.json @@ -0,0 +1,27 @@ +{ + "buffers": [ + { + "uri": "a.bin", + "byteLength": 32 + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 32 + } + ], + "propertyTables": [ + { + "class": "voxel", + "count": 8, + "properties": { + "a": { + "values": 0 + } + } + } + ], + "voxelTable": 0 +} diff --git a/public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/tiles/0/0/0/a.bin b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/tiles/0/0/0/a.bin new file mode 100644 index 0000000..6eac4f3 Binary files /dev/null and b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/tiles/0/0/0/a.bin differ diff --git a/public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/tileset.json b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/tileset.json new file mode 100644 index 0000000..cbc4457 --- /dev/null +++ b/public/static/SampleData/Cesium3DTiles/Voxel/VoxelEllipsoid3DTiles/tileset.json @@ -0,0 +1,73 @@ +{ + "asset": { + "version": "1.1" + }, + "schema": { + "id": "voxel", + "classes": { + "voxel": { + "properties": { + "a": { + "type": "SCALAR", + "componentType": "FLOAT32" + } + } + } + } + }, + "statistics": { + "classes": { + "voxel": { + "count": 8, + "properties": { + "a": { + "min": 0.0, + "max": 1.0 + } + } + } + } + }, + "geometricError": 0.0, + "root": { + "boundingVolume": { + "region": [ + 0.0, + 0.0, + 1.0, + 1.0, + -1.0, + 0.0 + ] + }, + "geometricError": 0.0, + "refine": "REPLACE", + "content": { + "uri": "tiles/{level}/{x}/{y}/{z}.json", + "extensions": { + "3DTILES_content_voxels": { + "dimensions": [ + 2, + 2, + 2 + ], + "class": "voxel" + } + } + }, + "implicitTiling": { + "subdivisionScheme": "OCTREE", + "subtreeLevels": 3, + "availableLevels": 1, + "subtrees": { + "uri": "subtrees/{level}/{x}/{y}/{z}.json" + } + } + }, + "extensionsUsed": [ + "3DTILES_content_voxels" + ], + "extensionsRequired": [ + "3DTILES_content_voxels" + ] +} diff --git a/public/static/SampleData/ClampToGround.czml b/public/static/SampleData/ClampToGround.czml new file mode 100644 index 0000000..9d5abac --- /dev/null +++ b/public/static/SampleData/ClampToGround.czml @@ -0,0 +1,69 @@ +[ + { + "id": "document", + "version": "1.0", + "clock": { + "interval": "2018-07-19T15:18:00Z/2018-07-19T15:18:30Z", + "currentTime": "2018-07-19T15:18:00Z", + "multiplier": 5, + "range": "LOOP_STOP", + "step": "SYSTEM_CLOCK_MULTIPLIER" + } + }, + { + "id": "CesiumMilkTruck", + "model": { + "gltf": "models/CesiumMilkTruck/CesiumMilkTruck.glb" + }, + "position": { + "interpolationAlgorithm": "LINEAR", + "forwardExtrapolationType": "HOLD", + "cartesian": [ + "2018-07-19T15:18:00Z", + 1216348.1632364073, + -4736348.958775471, + 4081284.5528982095, + "2018-07-19T15:18:30Z", + 1216369.1229444197, + -4736377.467107148, + 4081240.888485707 + ] + }, + "orientation": { + "unitQuaternion": [ + 0.3084011337938999, + 0.3210181022701266, + -0.45850421987074924, + 0.7686388857813198 + ] + } + }, + { + "id": "Polyline", + "polyline": { + "positions": { + "cartesian": [ + 1216348.1632364073, + -4736348.958775471, + 4081284.5528982095, + 1216369.1229444197, + -4736377.467107148, + 4081240.888485707 + ] + }, + "material": { + "polylineOutline": { + "color": { + "rgba": [255, 255, 0, 255] + }, + "outlineColor": { + "rgba": [0, 0, 0, 255] + }, + "outlineWidth": 2 + } + }, + "width": 10, + "clampToGround": true + } + } +] diff --git a/public/static/SampleData/MultipartVehicle_part1.czml b/public/static/SampleData/MultipartVehicle_part1.czml new file mode 100644 index 0000000..c9f1d35 --- /dev/null +++ b/public/static/SampleData/MultipartVehicle_part1.czml @@ -0,0 +1,244 @@ +[ + { + "id":"document", + "version":"1.0" + }, + { + "id":"Vehicle", + "availability":"2012-08-04T16:00:00Z/2012-08-04T17:04:54.9962195740191Z", + "label":{ + "fillColor":[ + { + "interval":"2012-08-04T16:00:00Z/2012-08-04T18:00:00Z", + "rgba":[ + 255,255,0,255 + ] + } + ], + "font":"bold 10pt Segoe UI Semibold", + "horizontalOrigin":"CENTER", + "outlineColor":{ + "rgba":[ + 0,0,0,255 + ] + }, + "pixelOffset":{ + "cartesian2":[ + 0.0,20.0 + ] + }, + "scale":1.0, + "show":[ + { + "interval":"2012-08-04T16:00:00Z/2012-08-04T18:00:00Z", + "boolean":true + } + ], + "style":"FILL", + "text":"Test Vehicle", + "verticalOrigin":"CENTER" + }, + "model":{ + "gltf":"models/CesiumMilkTruck/CesiumMilkTruck.glb", + "minimumPixelSize":100, + "maximumScale":50 + }, + "orientation" : { + "velocityReference": "#position" + }, + "viewFrom": { + "cartesian": [ -2080, -1715, 779 ] + }, + "properties" : { + "fuel_remaining" : { + "epoch":"2012-08-04T16:00:00Z", + "number": [ + 0, 22.5, + 1500, 21.2 + ] + } + }, + "path":{ + "material":{ + "solidColor":{ + "color":{ + "interval":"2012-08-04T16:00:00Z/2012-08-04T18:00:00Z", + "rgba":[ + 255,255,0,255 + ] + } + } + }, + "width":[ + { + "interval":"2012-08-04T16:00:00Z/2012-08-04T18:00:00Z", + "number":5.0 + } + ], + "show":[ + { + "interval":"2012-08-04T16:00:00Z/2012-08-04T18:00:00Z", + "boolean":true + } + ] + }, + "position":{ + "interpolationAlgorithm":"LAGRANGE", + "interpolationDegree":1, + "epoch":"2012-08-04T16:00:00Z", + "cartesian":[ + 0.0,-2379754.6637012,-4665332.88013588,3628133.68924173, + 10.0,-2379510.08905552,-4665419.64840452,3628182.20006795, + 20.0,-2379568.4769522,-4665555.3441867,3627970.83323261, + 30.0,-2379638.93786855,-4665691.63561896,3627750.82085873, + 40.0,-2379709.29834665,-4665827.9679646,3627530.80187124, + 50.0,-2379837.28064915,-4665847.7494347,3627422.12874017, + 60.0,-2379624.98289073,-4665907.50853722,3627484.1191848, + 70.0,-2379386.12743523,-4666029.54174431,3627483.83297459, + 80.0,-2379147.26777171,-4666151.56669944,3627483.5403492, + 90.0,-2378908.40390057,-4666273.58340244,3627483.24130864, + 1e2,-2378663.69301645,-4666379.62408751,3627507.14485116, + 110.0,-2378416.29648478,-4666444.93145547,3627584.82610021, + 120.0,-2378184.75115833,-4666458.05260387,3627718.84628509, + 130.0,-2377958.22637221,-4666461.11592729,3627862.42864636, + 140.0,-2377733.79758374,-4666460.508441,3628009.31669747, + 150.0,-2377509.36460154,-4666459.89268533,3628156.19830638, + 160.0,-2377284.92742603,-4666459.26866028,3628303.07347284, + 170.0,-2377060.48605759,-4666458.63636585,3628449.9421966, + 180.0,-2376835.38472681,-4666459.12413084,3628595.78980713, + 190.0,-2376609.71084875,-4666460.58154837,3628740.75156098, + 2e2,-2376384.03277903,-4666462.03069678,3628885.70687201, + 210.0,-2376158.35051806,-4666463.47157605,3629030.65573998, + 220.0,-2375928.48736859,-4666473.69575712,3629167.08552075, + 230.0,-2375685.23921682,-4666516.66377513,3629270.3788586, + 240.0,-2375437.34307768,-4666580.50029931,3629350.0215939, + 250.0,-2375189.01133306,-4666646.99320452,3629426.53515423, + 260.0,-2374940.52675783,-4666719.29042452,3629495.71527129, + 270.0,-2374695.15633549,-4666818.94185605,3629527.91579302, + 280.0,-2374469.42323533,-4666959.02687352,3629495.69349509, + 290.0,-2374249.06659405,-4667105.51477438,3629451.77975513, + 3e2,-2374028.70574724,-4667251.99442379,3629407.85959417, + 310.0,-2373808.3406953,-4667398.46582147,3629363.9330123, + 320.0,-2373585.10773309,-4667542.05948567,3629325.52597676, + 330.0,-2373360.83645524,-4667684.60869937,3629289.10800226, + 340.0,-2373136.5609746,-4667827.1496603,3629252.68360778, + 350.0,-2372912.28129155,-4667969.68236819,3629216.25279339, + 360.0,-2372687.9974065,-4668112.20682281,3629179.81555915, + 370.0,-2372463.70931983,-4668254.72302389,3629143.37190511, + 380.0,-2372239.41703195,-4668397.2309712,3629106.92183136, + 390.0,-2372018.7615611,-4668543.12509124,3629063.76398058, + 4e2,-2371803.72586004,-4668694.25404103,3629010.24868951, + 410.0,-2371587.17705087,-4668844.01756398,3628959.44085712, + 420.0,-2371365.33472237,-4668989.01539779,3628918.13984128, + 430.0,-2371134.7547923,-4669122.83460485,3628896.77687771, + 440.0,-2370898.14635373,-4669248.94021679,3628889.16522147, + 450.0,-2370660.31892949,-4669372.89697404,3628885.07134974, + 460.0,-2370422.47459187,-4669496.82305927,3628881.00796265, + 470.0,-2370184.62606153,-4669620.7408867,3628876.93815788, + 480.0,-2369946.77333888,-4669744.65045611,3628872.86193545, + 490.0,-2369708.91642433,-4669868.55176729,3628868.77929537, + 5e2,-2369471.05531832,-4669992.44482001,3628864.69023764, + 510.0,-2369233.19002126,-4670116.32961405,3628860.59476226, + 520.0,-2368989.65950726,-4670225.94237244,3628878.39787596, + 530.0,-2368742.64810033,-4670324.93393451,3628912.01606989, + 540.0,-2368494.95906007,-4670419.65546435,3628951.51257903, + 550.0,-2368248.2848424,-4670519.53079746,3628983.74302284, + 560.0,-2368001.37437725,-4670618.8319301,3629016.84097985, + 570.0,-2367753.95809484,-4670715.82368808,3629053.19940679, + 580.0,-2367506.53762994,-4670812.80718267,3629089.55141416, + 590.0,-2367259.11298298,-4670909.78241366,3629125.89700192, + 6e2,-2367011.6841544,-4671006.74938092,3629162.23617, + 610.0,-2366764.25114462,-4671103.70808425,3629198.56891833, + 620.0,-2366516.81395411,-4671200.6585235,3629234.89524684, + 630.0,-2366269.37258329,-4671297.60069848,3629271.21515549, + 640.0,-2366021.9270326,-4671394.53460904,3629307.52864419, + 650.0,-2365774.47730247,-4671491.460255,3629343.8357129, + 660.0,-2365527.02339333,-4671588.37763618,3629380.13636155, + 670.0,-2365279.56530564,-4671685.28675242,3629416.43059006, + 680.0,-2365032.10303983,-4671782.18760355,3629452.71839837, + 690.0,-2364784.63659633,-4671879.0801894,3629488.99978644, + 7e2,-2364537.16597558,-4671975.96450979,3629525.27475418, + 710.0,-2364289.69117801,-4672072.84056456,3629561.54330154, + 720.0,-2364042.21220407,-4672169.70835353,3629597.80542845, + 730.0,-2363794.72905419,-4672266.56787654,3629634.06113485, + 740.0,-2363547.2417288,-4672363.41913342,3629670.31042068, + 750.0,-2363299.75022835,-4672460.26212398,3629706.55328587, + 760.0,-2363052.25455328,-4672557.09684808,3629742.78973036, + 770.0,-2362805.96213832,-4672658.44235501,3629772.46055, + 780.0,-2362566.28756432,-4672777.84646024,3629774.74120741, + 790.0,-2362330.01543718,-4672904.47715606,3629765.56158533, + 8e2,-2362093.73913086,-4673031.09958839,3629756.37554393, + 810.0,-2361857.4586458,-4673157.71375702,3629747.18308323, + 820.0,-2361621.17398239,-4673284.31966172,3629737.98420324, + 830.0,-2361379.13396171,-4673398.62592987,3629748.21496888, + 840.0,-2361130.58722369,-4673488.59963461,3629793.74986512, + 850.0,-2360881.58098042,-4673573.14384665,3629846.50583809, + 860.0,-2360632.51954154,-4673657.07225834,3629900.06533886, + 870.0,-2360383.45393477,-4673740.99239963,3629953.61841672, + 880.0,-2360134.38416057,-4673824.90427038,3630007.16507155, + 890.0,-2359885.31021938,-4673908.80787044,3630060.70530326, + 9e2,-2359636.23211162,-4673992.70319966,3630114.23911177, + 910.0,-2359387.14983775,-4674076.5902579,3630167.76649697, + 920.0,-2359138.06339821,-4674160.469045,3630221.28745878, + 930.0,-2358889.14548278,-4674246.80164025,3630271.54165003, + 940.0,-2358640.17887385,-4674332.39488805,3630322.75317441, + 950.0,-2358391.03374684,-4674415.32432296,3630377.46713032, + 960.0,-2358141.88445605,-4674498.24548602,3630432.17466229, + 970.0,-2357892.7310019,-4674581.15837706,3630486.87577026, + 980.0,-2357643.59031994,-4674664.39449658,3630541.13554932, + 990.0,-2357394.48770584,-4674748.44899573,3630594.30439711, + 1e3,-2357145.38092955,-4674832.4952226,3630647.46682079, + 1010.0,-2356896.26999152,-4674916.53317705,3630700.62282028, + 1020.0,-2356647.15489217,-4675000.56285892,3630753.77239547, + 1030.0,-2356398.03563196,-4675084.58426807,3630806.91554629, + 1040.0,-2356148.91221132,-4675168.59740435,3630860.05227262, + 1050.0,-2355899.78463069,-4675252.60226762,3630913.18257437, + 1060.0,-2355650.65289051,-4675336.59885772,3630966.30645147, + 1070.0,-2355401.51699122,-4675420.58717452,3631019.42390381, + 1080.0,-2355152.37693328,-4675504.56721785,3631072.5349313, + 1090.0,-2354903.2327171,-4675588.53898758,3631125.63953384, + 1.1e3,-2354654.08434313,-4675672.50248355,3631178.73771134, + 1110.0,-2354404.86337217,-4675754.50046618,3631234.37690825, + 1120.0,-2354155.84214723,-4675830.29554952,3631297.80148619, + 1130.0,-2353909.99308372,-4675880.61174319,3631391.75187422, + 1140.0,-2353667.55938687,-4675917.7532863,3631500.33400567, + 1150.0,-2353425.14548842,-4675954.80919402,3631608.99321685, + 1160.0,-2353182.7274392,-4675991.85682064,3631717.64599126, + 1170.0,-2352940.30523964,-4676028.89616608,3631826.29232871, + 1180.0,-2352697.87889015,-4676065.92723028,3631934.93222899, + 1190.0,-2352455.44839119,-4676102.95001317,3632043.56569193, + 1.2e3,-2352213.01374317,-4676139.9645147,3632152.19271733, + 1210.0,-2351970.57494653,-4676176.97073479,3632260.81330501, + 1220.0,-2351728.13200169,-4676213.96867339,3632369.42745476, + 1230.0,-2351485.68490907,-4676250.95833043,3632478.03516641, + 1240.0,-2351243.23366913,-4676287.93970586,3632586.63643975, + 1250.0,-2351000.77828228,-4676324.91279958,3632695.2312746, + 1260.0,-2350758.31874895,-4676361.87761156,3632803.81967077, + 1270.0,-2350515.85506957,-4676398.83414172,3632912.40162807, + 1280.0,-2350273.38724458,-4676435.78239001,3633020.9771463, + 1290.0,-2350029.47875804,-4676477.3914753,3633124.49944636, + 1.3e3,-2349785.42349382,-4676519.45587927,3633227.51421022, + 1310.0,-2349541.36408501,-4676561.51200187,3633330.52253589, + 1320.0,-2349297.30053206,-4676603.55984302,3633433.52442318, + 1330.0,-2349053.2328354,-4676645.59940266,3633536.51987191, + 1340.0,-2348809.16099546,-4676687.63068071,3633639.50888189, + 1350.0,-2348565.08501267,-4676729.65367709,3633742.49145297, + 1360.0,-2348321.00488746,-4676771.66839174,3633845.46758493, + 1370.0,-2348076.92062027,-4676813.67482458,3633948.43727762, + 1380.0,-2347832.83221153,-4676855.67297554,3634051.40053084, + 1390.0,-2347588.73966167,-4676897.66284454,3634154.35734442, + 1.4e3,-2347344.64297113,-4676939.64443151,3634257.30771818, + 1410.0,-2347101.04731466,-4676979.96034855,3634362.04616856, + 1420.0,-2346858.26575513,-4677017.5834931,3634469.6847769, + 1430.0,-2346614.99348312,-4677056.89461847,3634575.46081166, + 1440.0,-2346369.55744615,-4677103.7262244,3634672.99207759, + 1450.0,-2346124.8248997,-4677147.9423086,3634773.39569376, + 1460.0,-2345880.74403986,-4677189.73374292,3634876.46090671, + 1470.0,-2345636.65904236,-4677231.51689469,3634979.51967852, + 1480.0,-2345392.56990766,-4677273.29176384,3635082.57200902, + 1490.0,-2345148.47663614,-4677315.05835029,3635185.61789803, + 1.5e3,-2344904.37922829,-4677356.81665397,3635288.65734536 + ] + } + } +] diff --git a/public/static/SampleData/MultipartVehicle_part2.czml b/public/static/SampleData/MultipartVehicle_part2.czml new file mode 100644 index 0000000..a1a7f69 --- /dev/null +++ b/public/static/SampleData/MultipartVehicle_part2.czml @@ -0,0 +1,174 @@ +[ + { + "id":"document", + "version":"1.0" + }, + { + "id":"Vehicle", + "properties" : { + "fuel_remaining" : { + "epoch":"2012-08-04T16:00:00Z", + "number": [ + 3000, 19.9 + ] + } + }, + "position":{ + "interpolationAlgorithm":"LAGRANGE", + "interpolationDegree":1, + "epoch":"2012-08-04T16:00:00Z", + "cartesian":[ + 1510.0,-2344660.2776845,-4677398.56667482,3635391.69035084, + 1520.0,-2344416.17200522,-4677440.30841274,3635494.71691428, + 1530.0,-2344172.06219089,-4677482.04186768,3635597.7370355, + 1540.0,-2343927.94824192,-4677523.76703957,3635700.75071434, + 1550.0,-2343683.83015876,-4677565.48392832,3635803.75795058, + 1560.0,-2343439.70794184,-4677607.19253388,3635906.75874406, + 1570.0,-2343195.58159159,-4677648.89285615,3636009.75309461, + 1580.0,-2342951.45110844,-4677690.58489508,3636112.74100204, + 1590.0,-2342707.31649283,-4677732.2686506,3636215.72246616, + 1.6e3,-2342463.17774519,-4677773.94412263,3636318.6974868, + 1610.0,-2342219.03486595,-4677815.61131108,3636421.66606378, + 1620.0,-2341974.88785554,-4677857.2702159,3636524.6281969, + 1630.0,-2341730.7367144,-4677898.92083702,3636627.583886, + 1640.0,-2341486.58144295,-4677940.56317435,3636730.5331309, + 1650.0,-2341242.42204163,-4677982.19722784,3636833.4759314, + 1660.0,-2340998.25851088,-4678023.8229974,3636936.41228734, + 1670.0,-2340754.09085112,-4678065.44048297,3637039.34219853, + 1680.0,-2340509.91906279,-4678107.04968447,3637142.26566479, + 1690.0,-2340265.74314632,-4678148.65060182,3637245.18268593, + 1.7e3,-2340021.56310214,-4678190.24323497,3637348.09326179, + 1710.0,-2339777.37893069,-4678231.82758383,3637450.99739218, + 1720.0,-2339533.1906324,-4678273.40364834,3637553.8950769, + 1730.0,-2339288.99820769,-4678314.97142841,3637656.7863158, + 1740.0,-2339044.80165702,-4678356.530924,3637759.67110868, + 1750.0,-2338800.60098079,-4678398.082135,3637862.54945536, + 1760.0,-2338554.70615885,-4678446.63979812,3637957.53985359, + 1770.0,-2338307.34044549,-4678501.27725608,3638045.68346556, + 1780.0,-2338059.970607,-4678555.90643107,3638133.82063425, + 1790.0,-2337812.5966438,-4678610.527323,3638221.9513595, + 1.8e3,-2337565.21855632,-4678665.13993177,3638310.07564116, + 1810.0,-2337317.836345,-4678719.74425728,3638398.19347906, + 1820.0,-2337070.45001029,-4678774.34029945,3638486.30487305, + 1830.0,-2336823.05955262,-4678828.92805817,3638574.40982299, + 1840.0,-2336575.66497242,-4678883.50753334,3638662.50832871, + 1850.0,-2336327.1545835,-4678945.50581105,3638741.82308353, + 1860.0,-2336079.08419082,-4679004.31007705,3638824.91716907, + 1870.0,-2335832.84388937,-4679053.5438294,3638919.0484984, + 1880.0,-2335586.22540763,-4679104.36395041,3639011.37515412, + 1890.0,-2335339.10405755,-4679157.40812923,3639101.16216049, + 1.9e3,-2335091.77487812,-4679211.48259624,3639189.74611699, + 1910.0,-2334844.32516034,-4679266.14231747,3639277.63977539, + 1920.0,-2334596.87132354,-4679320.79375442,3639365.52698836, + 1930.0,-2334349.41336814,-4679375.436907,3639453.40775576, + 1940.0,-2334101.95129458,-4679430.07177509,3639541.28207743, + 1950.0,-2333854.48510331,-4679484.69835863,3639629.14995324, + 1960.0,-2333607.01479475,-4679539.31665749,3639717.011383, + 1970.0,-2333359.54036938,-4679593.9266716,3639804.86636658, + 1980.0,-2333112.06182757,-4679648.52840084,3639892.71490381, + 1990.0,-2332864.57916982,-4679703.12184515,3639980.55699455, + 2e3,-2332617.09239653,-4679757.70700441,3640068.39263865, + 2010.0,-2332369.60150815,-4679812.28387853,3640156.22183593, + 2020.0,-2332122.10650513,-4679866.85246742,3640244.04458626, + 2030.0,-2331874.6073879,-4679921.41277097,3640331.86088948, + 2040.0,-2331627.10415689,-4679975.96478911,3640419.67074542, + 2050.0,-2331379.59681254,-4680030.50852172,3640507.47415395, + 2060.0,-2331132.08535529,-4680085.04396871,3640595.27111491, + 2070.0,-2330884.56978558,-4680139.57113,3640683.06162813, + 2080.0,-2330637.7285141,-4680190.9395453,3640774.43710409, + 2090.0,-2330396.40663506,-4680225.151778,3640884.18994119, + 2.1e3,-2330163.10529565,-4680238.35673454,3641015.64723137, + 2110.0,-2329932.54342047,-4680245.95830447,3641152.4979079, + 2120.0,-2329701.97743661,-4680253.55158212,3641289.34212236, + 2130.0,-2329471.40734447,-4680261.13656747,3641426.1798745, + 2140.0,-2329240.83314447,-4680268.71326052,3641563.01116407, + 2150.0,-2329010.25483703,-4680276.28166125,3641699.83599085, + 2160.0,-2328779.67242253,-4680283.84176964,3641836.65435457, + 2170.0,-2328549.08590139,-4680291.3935857,3641973.46625501, + 2180.0,-2328318.49527404,-4680298.9371094,3642110.27169193, + 2190.0,-2328087.90054086,-4680306.47234074,3642247.07066509, + 2.2e3,-2327857.30170227,-4680313.99927971,3642383.86317423, + 2210.0,-2327626.69875869,-4680321.51792628,3642520.64921913, + 2220.0,-2327396.09171053,-4680329.02828045,3642657.42879954, + 2230.0,-2327165.48055818,-4680336.53034222,3642794.20191522, + 2240.0,-2326934.86530206,-4680344.02411158,3642930.96856595, + 2250.0,-2326704.24594258,-4680351.50958849,3643067.72875145, + 2260.0,-2326473.62248015,-4680358.98677296,3643204.48247151, + 2270.0,-2326242.99491518,-4680366.45566498,3643341.22972587, + 2280.0,-2326012.36324808,-4680373.91626453,3643477.97051431, + 2290.0,-2325781.72747925,-4680381.36857161,3643614.70483658, + 2.3e3,-2325551.08760911,-4680388.8125862,3643751.43269243, + 2310.0,-2325320.44363806,-4680396.24830829,3643888.15408163, + 2320.0,-2325089.79556653,-4680403.67573787,3644024.86900394, + 2330.0,-2324859.14339491,-4680411.09487493,3644161.57745912, + 2340.0,-2324628.48712361,-4680418.50571946,3644298.27944692, + 2350.0,-2324397.82675305,-4680425.90827145,3644434.97496711, + 2360.0,-2324167.16228363,-4680433.30253088,3644571.66401943, + 2370.0,-2323936.49371575,-4680440.68849774,3644708.34660367, + 2380.0,-2323705.82104985,-4680448.06617203,3644845.02271957, + 2390.0,-2323469.56457492,-4680467.5014928,3644969.83533712, + 2.4e3,-2323221.0622471,-4680536.92026793,3645038.62868541, + 2410.0,-2322977.80807152,-4680647.84474283,3645051.13992706, + 2420.0,-2322736.38267079,-4680764.64879631,3645054.97445125, + 2430.0,-2322494.9531628,-4680881.44457147,3645058.80252916, + 2440.0,-2322246.73779559,-4680970.18567741,3645102.6916578, + 2450.0,-2322002.53536924,-4681011.67497706,3645204.29544116, + 2460.0,-2321760.17882828,-4681045.91276755,3645313.96140727, + 2470.0,-2321513.45780318,-4681097.83227119,3645403.81543108, + 2480.0,-2321264.12028187,-4681176.5278287,3645461.15182806, + 2490.0,-2321016.67956395,-4681275.07588805,3645491.94679701, + 2.5e3,-2320769.58665668,-4681375.58594799,3645519.99961511, + 2510.0,-2320522.489649,-4681476.08772649,3645548.04598517, + 2520.0,-2320275.38854134,-4681576.5812234,3645576.08590716, + 2530.0,-2320027.79132447,-4681674.92626117,3645607.16040563, + 2540.0,-2319780.10642819,-4681772.89945148,3645638.74505341, + 2550.0,-2319532.41743371,-4681870.86435933,3645670.32325269, + 2560.0,-2319284.72434146,-4681968.82098454,3645701.89500342, + 2570.0,-2319037.02715189,-4682066.76932694,3645733.46030553, + 2580.0,-2318789.32586542,-4682164.70938637,3645765.01915898, + 2590.0,-2318542.12778997,-4682264.83612099,3645793.45100625, + 2.6e3,-2318295.04606153,-4682365.47569326,3645821.1355313, + 2610.0,-2318047.960237,-4682466.10698239,3645848.81360781, + 2620.0,-2317814.2136072,-4682593.27748455,3645834.19098143, + 2630.0,-2317595.23970305,-4682740.17783799,3645785.0493345, + 2640.0,-2317367.51895524,-4682877.20966947,3645754.00173306, + 2650.0,-2317125.45200646,-4682991.24847734,3645761.32874791, + 2660.0,-2316877.25477931,-4683085.09280115,3645798.27256564, + 2670.0,-2316627.76750724,-4683171.42599527,3645845.59470414, + 2680.0,-2316378.41358519,-4683244.04371304,3645910.31301292, + 2690.0,-2316132.23045195,-4683290.83587254,3646005.96208532, + 2.7e3,-2315886.04323336,-4683337.61973972,3646101.60469867, + 2710.0,-2315639.85192986,-4683384.3953145,3646197.24085278, + 2720.0,-2315393.65654188,-4683431.1625968,3646292.8705475, + 2730.0,-2315147.45706986,-4683477.92158654,3646388.49378265, + 2740.0,-2314901.25351424,-4683524.67228364,3646484.11055807, + 2750.0,-2314655.04587545,-4683571.41468801,3646579.72087358, + 2760.0,-2314408.83415392,-4683618.14879957,3646675.32472902, + 2770.0,-2314160.70351457,-4683675.04338742,3646759.15642247, + 2780.0,-2313911.58484161,-4683762.87653752,3646804.12173857, + 2790.0,-2313665.46479966,-4683867.13714076,3646826.2202591, + 2.8e3,-2313419.44574948,-4683971.81359651,3646847.70500867, + 2810.0,-2313173.422611,-4684076.48176683,3646869.18330826, + 2820.0,-2312927.39538468,-4684181.14165156,3646890.65515782, + 2830.0,-2312681.36407094,-4684285.79325049,3646912.12055732, + 2840.0,-2312435.3286702,-4684390.43656345,3646933.57950672, + 2850.0,-2312188.68106177,-4684492.14732495,3646959.14603188, + 2860.0,-2311939.2573735,-4684576.69232926,3647008.34294359, + 2870.0,-2311690.53184969,-4684637.85664359,3647086.91208669, + 2880.0,-2311447.74208361,-4684672.93987918,3647195.00103929, + 2890.0,-2311210.79617263,-4684692.62730813,3647319.03447912, + 2.9e3,-2310974.46339778,-4684710.81501905,3647444.57574765, + 2910.0,-2310738.12654788,-4684728.99443131,3647570.11054652, + 2920.0,-2310501.78562334,-4684747.16554491,3647695.63887553, + 2930.0,-2310265.44062458,-4684765.3283598,3647821.16073445, + 2940.0,-2310029.09155203,-4684783.48287596,3647946.67612307, + 2950.0,-2309792.7384061,-4684801.62909336,3648072.18504115, + 2960.0,-2309556.38118721,-4684819.76701196,3648197.6874885, + 2970.0,-2309320.01989578,-4684837.89663174,3648323.18346488, + 2980.0,-2309083.65453223,-4684856.01795267,3648448.67297006, + 2990.0,-2308847.28509697,-4684874.13097471,3648574.15600382, + 3e3,-2308612.03960687,-4684889.78192809,3648702.05314508 + ] + } + } +] diff --git a/public/static/SampleData/MultipartVehicle_part3.czml b/public/static/SampleData/MultipartVehicle_part3.czml new file mode 100644 index 0000000..610d6cb --- /dev/null +++ b/public/static/SampleData/MultipartVehicle_part3.czml @@ -0,0 +1,114 @@ +[ + { + "id":"document", + "version":"1.0" + }, + { + "id":"Vehicle", + "properties" : { + "fuel_remaining" : { + "epoch":"2012-08-04T16:00:00Z", + "number": [ + 4500, 18.6 + ] + } + }, + "position":{ + "interpolationAlgorithm":"LAGRANGE", + "interpolationDegree":1, + "epoch":"2012-08-04T16:00:00Z", + "cartesian":[ + 3010.0,-2308376.92124893,-4684905.13917681,3648830.22535859, + 3020.0,-2308141.79882057,-4684920.48812622,3648958.39109918, + 3030.0,-2307906.6723222,-4684935.82877629,3649086.55036665, + 3040.0,-2307671.54175424,-4684951.161127,3649214.70316074, + 3050.0,-2307436.40711711,-4684966.48517831,3649342.84948124, + 3060.0,-2307201.26841123,-4684981.80093021,3649470.98932793, + 3070.0,-2306966.87575715,-4684995.59988061,3649600.57521538, + 3080.0,-2306740.26452813,-4684994.89962227,3649743.74372413, + 3090.0,-2306534.08725296,-4684964.25689728,3649912.24261594, + 3.1e3,-2306334.50436505,-4684925.31923873,3650087.15846994, + 3110.0,-2306134.91740775,-4684886.37327513,3650262.06783161, + 3120.0,-2305935.32638143,-4684847.41900655,3650436.97070063, + 3130.0,-2305735.73128644,-4684808.45643306,3650611.86707671, + 3140.0,-2305536.13212312,-4684769.48555472,3650786.75695952, + 3150.0,-2305336.52889186,-4684730.50637162,3650961.64034877, + 3160.0,-2305136.92159298,-4684691.51888382,3651136.51724414, + 3170.0,-2304937.31022685,-4684652.5230914,3651311.38764532, + 3180.0,-2304737.69479383,-4684613.51899443,3651486.25155201, + 3190.0,-2304538.07529427,-4684574.50659297,3651661.1089639, + 3.2e3,-2304338.45172854,-4684535.48588711,3651835.95988067, + 3210.0,-2304138.82409697,-4684496.45687691,3652010.80430203, + 3220.0,-2303939.19239993,-4684457.41956245,3652185.64222766, + 3230.0,-2303739.55663778,-4684418.37394379,3652360.47365726, + 3240.0,-2303539.91681086,-4684379.32002102,3652535.29859051, + 3250.0,-2303340.27291955,-4684340.25779419,3652710.11702711, + 3260.0,-2303140.62496419,-4684301.18726339,3652884.92896676, + 3270.0,-2302940.97294513,-4684262.10842868,3653059.73440913, + 3280.0,-2302741.31686273,-4684223.02129014,3653234.53335393, + 3290.0,-2302541.65671735,-4684183.92584784,3653409.32580085, + 3.3e3,-2302341.99250935,-4684144.82210185,3653584.11174957, + 3310.0,-2302142.32423908,-4684105.71005224,3653758.8911998, + 3320.0,-2301942.65190688,-4684066.5896991,3653933.66415121, + 3330.0,-2301742.97551314,-4684027.46104248,3654108.43060351, + 3340.0,-2301543.29505819,-4683988.32408245,3654283.19055638, + 3350.0,-2301343.61054239,-4683949.1788191,3654457.94400952, + 3360.0,-2301143.6827542,-4683910.31378064,3654632.47326169, + 3370.0,-2300935.59009252,-4683881.78114292,3654798.93579703, + 3380.0,-2300718.00641879,-4683866.2483759,3654954.7652541, + 3390.0,-2300494.16379595,-4683860.19477673,3655102.42228967, + 3.4e3,-2300270.31711639,-4683854.13287765,3655250.07283467, + 3410.0,-2300043.34951879,-4683853.58162531,3655392.64057225, + 3420.0,-2299798.57046824,-4683898.20991075,3655488.81767963, + 3430.0,-2299550.24237985,-4683986.73183877,3655531.32743747, + 3440.0,-2299302.19677383,-4684083.86163291,3655562.68543478, + 3450.0,-2299054.1471058,-4684180.98314055,3655594.03696606, + 3460.0,-2298806.09337623,-4684278.0963615,3655625.38203125, + 3470.0,-2298558.03558554,-4684375.2012956,3655656.7206303, + 3480.0,-2298309.97373417,-4684472.29794267,3655688.05276314, + 3490.0,-2298061.90782256,-4684569.38630254,3655719.37842974, + 3.5e3,-2297812.62950649,-4684659.16576897,3655760.74476938, + 3510.0,-2297564.67551281,-4684714.88851845,3655844.61445788, + 3520.0,-2297325.87128825,-4684739.27586645,3655962.6382433, + 3530.0,-2297109.10378606,-4684723.02803401,3656118.60908182, + 3540.0,-2296920.05504158,-4684672.53835408,3656300.84320686, + 3550.0,-2296752.93245501,-4684599.85791996,3656497.61758286, + 3560.0,-2296586.9421969,-4684526.13410832,3656694.99365465, + 3570.0,-2296420.94788222,-4684452.40199052,3656892.36321221, + 3580.0,-2296254.94951125,-4684378.66156669,3657089.72625519, + 3590.0,-2296088.9470843,-4684304.91283696,3657287.08278322, + 3.6e3,-2295922.94060166,-4684231.15580147,3657484.43279599, + 3610.0,-2295756.93006363,-4684157.39046036,3657681.77629313, + 3620.0,-2295590.91547051,-4684083.61681375,3657879.11327429, + 3630.0,-2295424.89682259,-4684009.83486178,3658076.44373913, + 3640.0,-2295258.87412016,-4683936.04460459,3658273.7676873, + 3650.0,-2295092.84736354,-4683862.24604231,3658471.08511845, + 3660.0,-2294926.816553,-4683788.43917507,3658668.39603222, + 3670.0,-2294760.78168886,-4683714.62400301,3658865.70042829, + 3680.0,-2294594.74277139,-4683640.80052626,3659062.99830628, + 3690.0,-2294428.69980091,-4683566.96874495,3659260.28966586, + 3.7e3,-2294262.65277771,-4683493.12865923,3659457.57450667, + 3710.0,-2294096.43623008,-4683419.42772878,3659654.7684149, + 3720.0,-2293929.99691308,-4683345.91340302,3659851.84422781, + 3730.0,-2293763.5535443,-4683272.39077326,3660048.91352102, + 3740.0,-2293597.10612405,-4683198.85983962,3660245.97629416, + 3750.0,-2293430.65465261,-4683125.32060225,3660443.03254689, + 3760.0,-2293260.27703319,-4683055.37159052,3660637.95010862, + 3770.0,-2293061.03795256,-4683015.37278429,3660812.74893793, + 3780.0,-2292840.33611906,-4683005.33804065,3660962.80786551, + 3790.0,-2292608.06534954,-4683013.68106842,3661096.69339637, + 3.8e3,-2292375.79053761,-4683022.01579957,3661230.57243073, + 3810.0,-2292143.51168366,-4683030.3422341,3661364.44496835, + 3820.0,-2291911.22878812,-4683038.66037197,3661498.311009, + 3830.0,-2291675.19260926,-4683056.38281492,3661622.54366342, + 3840.0,-2291444.11976688,-4683176.79169794,3661613.21949622, + 3850.0,-2291484.73184242,-4683029.11180042,3661775.58481802, + 3860.0,-2291570.38402198,-4682848.00432402,3661952.40110212, + 3870.0,-2291504.75912943,-4682707.90868127,3662171.13586741, + 3880.0,-2291437.4576409,-4682568.41526623,3662390.12822003, + 3890.0,-2291370.1520906,-4682428.91355119,3662609.11403735, + 3894.996219574019,-2291336.52323822,-4682359.21232197,3662718.52171165 + ] + } + } +] diff --git a/public/static/SampleData/Vehicle.czml b/public/static/SampleData/Vehicle.czml new file mode 100644 index 0000000..712cd18 --- /dev/null +++ b/public/static/SampleData/Vehicle.czml @@ -0,0 +1,487 @@ + +[ + { + "id":"document", + "version":"1.0" + }, + { + "id":"Vehicle", + "availability":"2012-08-04T16:00:00Z/2012-08-04T17:04:54.9962195740191Z", + "billboard":{ + "eyeOffset":{ + "cartesian":[ + 0.0,0.0,0.0 + ] + }, + "horizontalOrigin":"CENTER", + "image":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEISURBVEhLvVXBDYQwDOuojHKj8LhBbpTbpBCEkZsmIVTXq1RVQGrHiWlLmTTqPiZBlyLgy/KSZQ5JSHDQ/mCYCsC8106kDU0AdwRnvYZArWRcAl0dcYJq1hWCb3hBrumbDAVMwAC82WoRvgMnVMDBnB0nYZFTbE6BBvdUGqVqCbjBIk3PyFFR/NU7EKzru+qZsau3ryPwwCRLKYOzutZuCL6fUmWeJGzNzL/RxAMrUmASSCkkAayk2IxPlwhAAYGpsiHQjbLccfdOY5gKkCXAMi7SscAwbQpAnKyctWyUZ6z8ja3OGMepwD8asz+9FnSvbhU8uVOHFIwQsI3/p0CfhuqCSQuxLqsN6mu8SS+N42MAAAAASUVORK5CYII=", + "pixelOffset":{ + "cartesian2":[ + 0.0,0.0 + ] + }, + "scale":0.8333333333333334, + "show":[ + { + "interval":"2012-08-04T16:00:00Z/2012-08-04T18:00:00Z", + "boolean":true + } + ], + "verticalOrigin":"BOTTOM" + }, + "label":{ + "fillColor":[ + { + "interval":"2012-08-04T16:00:00Z/2012-08-04T18:00:00Z", + "rgba":[ + 255,255,0,255 + ] + } + ], + "font":"bold 10pt Segoe UI Semibold", + "horizontalOrigin":"LEFT", + "outlineColor":{ + "rgba":[ + 0,0,0,255 + ] + }, + "pixelOffset":{ + "cartesian2":[ + 10.0,0.0 + ] + }, + "scale":1.0, + "show":[ + { + "interval":"2012-08-04T16:00:00Z/2012-08-04T18:00:00Z", + "boolean":true + } + ], + "style":"FILL", + "text":"Vehicle", + "verticalOrigin":"CENTER" + }, + "path":{ + "material":{ + "solidColor":{ + "color":{ + "interval":"2012-08-04T16:00:00Z/2012-08-04T18:00:00Z", + "rgba":[ + 255,255,0,255 + ] + } + } + }, + "width":[ + { + "interval":"2012-08-04T16:00:00Z/2012-08-04T18:00:00Z", + "number":5.0 + } + ], + "show":[ + { + "interval":"2012-08-04T16:00:00Z/2012-08-04T18:00:00Z", + "boolean":true + } + ] + }, + "position":{ + "interpolationAlgorithm":"LAGRANGE", + "interpolationDegree":1, + "epoch":"2012-08-04T16:00:00Z", + "cartesian":[ + 0.0,-2379754.6637012,-4665332.88013588,3628133.68924173, + 10.0,-2379510.08905552,-4665419.64840452,3628182.20006795, + 20.0,-2379568.4769522,-4665555.3441867,3627970.83323261, + 30.0,-2379638.93786855,-4665691.63561896,3627750.82085873, + 40.0,-2379709.29834665,-4665827.9679646,3627530.80187124, + 50.0,-2379837.28064915,-4665847.7494347,3627422.12874017, + 60.0,-2379624.98289073,-4665907.50853722,3627484.1191848, + 70.0,-2379386.12743523,-4666029.54174431,3627483.83297459, + 80.0,-2379147.26777171,-4666151.56669944,3627483.5403492, + 90.0,-2378908.40390057,-4666273.58340244,3627483.24130864, + 1e2,-2378663.69301645,-4666379.62408751,3627507.14485116, + 110.0,-2378416.29648478,-4666444.93145547,3627584.82610021, + 120.0,-2378184.75115833,-4666458.05260387,3627718.84628509, + 130.0,-2377958.22637221,-4666461.11592729,3627862.42864636, + 140.0,-2377733.79758374,-4666460.508441,3628009.31669747, + 150.0,-2377509.36460154,-4666459.89268533,3628156.19830638, + 160.0,-2377284.92742603,-4666459.26866028,3628303.07347284, + 170.0,-2377060.48605759,-4666458.63636585,3628449.9421966, + 180.0,-2376835.38472681,-4666459.12413084,3628595.78980713, + 190.0,-2376609.71084875,-4666460.58154837,3628740.75156098, + 2e2,-2376384.03277903,-4666462.03069678,3628885.70687201, + 210.0,-2376158.35051806,-4666463.47157605,3629030.65573998, + 220.0,-2375928.48736859,-4666473.69575712,3629167.08552075, + 230.0,-2375685.23921682,-4666516.66377513,3629270.3788586, + 240.0,-2375437.34307768,-4666580.50029931,3629350.0215939, + 250.0,-2375189.01133306,-4666646.99320452,3629426.53515423, + 260.0,-2374940.52675783,-4666719.29042452,3629495.71527129, + 270.0,-2374695.15633549,-4666818.94185605,3629527.91579302, + 280.0,-2374469.42323533,-4666959.02687352,3629495.69349509, + 290.0,-2374249.06659405,-4667105.51477438,3629451.77975513, + 3e2,-2374028.70574724,-4667251.99442379,3629407.85959417, + 310.0,-2373808.3406953,-4667398.46582147,3629363.9330123, + 320.0,-2373585.10773309,-4667542.05948567,3629325.52597676, + 330.0,-2373360.83645524,-4667684.60869937,3629289.10800226, + 340.0,-2373136.5609746,-4667827.1496603,3629252.68360778, + 350.0,-2372912.28129155,-4667969.68236819,3629216.25279339, + 360.0,-2372687.9974065,-4668112.20682281,3629179.81555915, + 370.0,-2372463.70931983,-4668254.72302389,3629143.37190511, + 380.0,-2372239.41703195,-4668397.2309712,3629106.92183136, + 390.0,-2372018.7615611,-4668543.12509124,3629063.76398058, + 4e2,-2371803.72586004,-4668694.25404103,3629010.24868951, + 410.0,-2371587.17705087,-4668844.01756398,3628959.44085712, + 420.0,-2371365.33472237,-4668989.01539779,3628918.13984128, + 430.0,-2371134.7547923,-4669122.83460485,3628896.77687771, + 440.0,-2370898.14635373,-4669248.94021679,3628889.16522147, + 450.0,-2370660.31892949,-4669372.89697404,3628885.07134974, + 460.0,-2370422.47459187,-4669496.82305927,3628881.00796265, + 470.0,-2370184.62606153,-4669620.7408867,3628876.93815788, + 480.0,-2369946.77333888,-4669744.65045611,3628872.86193545, + 490.0,-2369708.91642433,-4669868.55176729,3628868.77929537, + 5e2,-2369471.05531832,-4669992.44482001,3628864.69023764, + 510.0,-2369233.19002126,-4670116.32961405,3628860.59476226, + 520.0,-2368989.65950726,-4670225.94237244,3628878.39787596, + 530.0,-2368742.64810033,-4670324.93393451,3628912.01606989, + 540.0,-2368494.95906007,-4670419.65546435,3628951.51257903, + 550.0,-2368248.2848424,-4670519.53079746,3628983.74302284, + 560.0,-2368001.37437725,-4670618.8319301,3629016.84097985, + 570.0,-2367753.95809484,-4670715.82368808,3629053.19940679, + 580.0,-2367506.53762994,-4670812.80718267,3629089.55141416, + 590.0,-2367259.11298298,-4670909.78241366,3629125.89700192, + 6e2,-2367011.6841544,-4671006.74938092,3629162.23617, + 610.0,-2366764.25114462,-4671103.70808425,3629198.56891833, + 620.0,-2366516.81395411,-4671200.6585235,3629234.89524684, + 630.0,-2366269.37258329,-4671297.60069848,3629271.21515549, + 640.0,-2366021.9270326,-4671394.53460904,3629307.52864419, + 650.0,-2365774.47730247,-4671491.460255,3629343.8357129, + 660.0,-2365527.02339333,-4671588.37763618,3629380.13636155, + 670.0,-2365279.56530564,-4671685.28675242,3629416.43059006, + 680.0,-2365032.10303983,-4671782.18760355,3629452.71839837, + 690.0,-2364784.63659633,-4671879.0801894,3629488.99978644, + 7e2,-2364537.16597558,-4671975.96450979,3629525.27475418, + 710.0,-2364289.69117801,-4672072.84056456,3629561.54330154, + 720.0,-2364042.21220407,-4672169.70835353,3629597.80542845, + 730.0,-2363794.72905419,-4672266.56787654,3629634.06113485, + 740.0,-2363547.2417288,-4672363.41913342,3629670.31042068, + 750.0,-2363299.75022835,-4672460.26212398,3629706.55328587, + 760.0,-2363052.25455328,-4672557.09684808,3629742.78973036, + 770.0,-2362805.96213832,-4672658.44235501,3629772.46055, + 780.0,-2362566.28756432,-4672777.84646024,3629774.74120741, + 790.0,-2362330.01543718,-4672904.47715606,3629765.56158533, + 8e2,-2362093.73913086,-4673031.09958839,3629756.37554393, + 810.0,-2361857.4586458,-4673157.71375702,3629747.18308323, + 820.0,-2361621.17398239,-4673284.31966172,3629737.98420324, + 830.0,-2361379.13396171,-4673398.62592987,3629748.21496888, + 840.0,-2361130.58722369,-4673488.59963461,3629793.74986512, + 850.0,-2360881.58098042,-4673573.14384665,3629846.50583809, + 860.0,-2360632.51954154,-4673657.07225834,3629900.06533886, + 870.0,-2360383.45393477,-4673740.99239963,3629953.61841672, + 880.0,-2360134.38416057,-4673824.90427038,3630007.16507155, + 890.0,-2359885.31021938,-4673908.80787044,3630060.70530326, + 9e2,-2359636.23211162,-4673992.70319966,3630114.23911177, + 910.0,-2359387.14983775,-4674076.5902579,3630167.76649697, + 920.0,-2359138.06339821,-4674160.469045,3630221.28745878, + 930.0,-2358889.14548278,-4674246.80164025,3630271.54165003, + 940.0,-2358640.17887385,-4674332.39488805,3630322.75317441, + 950.0,-2358391.03374684,-4674415.32432296,3630377.46713032, + 960.0,-2358141.88445605,-4674498.24548602,3630432.17466229, + 970.0,-2357892.7310019,-4674581.15837706,3630486.87577026, + 980.0,-2357643.59031994,-4674664.39449658,3630541.13554932, + 990.0,-2357394.48770584,-4674748.44899573,3630594.30439711, + 1e3,-2357145.38092955,-4674832.4952226,3630647.46682079, + 1010.0,-2356896.26999152,-4674916.53317705,3630700.62282028, + 1020.0,-2356647.15489217,-4675000.56285892,3630753.77239547, + 1030.0,-2356398.03563196,-4675084.58426807,3630806.91554629, + 1040.0,-2356148.91221132,-4675168.59740435,3630860.05227262, + 1050.0,-2355899.78463069,-4675252.60226762,3630913.18257437, + 1060.0,-2355650.65289051,-4675336.59885772,3630966.30645147, + 1070.0,-2355401.51699122,-4675420.58717452,3631019.42390381, + 1080.0,-2355152.37693328,-4675504.56721785,3631072.5349313, + 1090.0,-2354903.2327171,-4675588.53898758,3631125.63953384, + 1.1e3,-2354654.08434313,-4675672.50248355,3631178.73771134, + 1110.0,-2354404.86337217,-4675754.50046618,3631234.37690825, + 1120.0,-2354155.84214723,-4675830.29554952,3631297.80148619, + 1130.0,-2353909.99308372,-4675880.61174319,3631391.75187422, + 1140.0,-2353667.55938687,-4675917.7532863,3631500.33400567, + 1150.0,-2353425.14548842,-4675954.80919402,3631608.99321685, + 1160.0,-2353182.7274392,-4675991.85682064,3631717.64599126, + 1170.0,-2352940.30523964,-4676028.89616608,3631826.29232871, + 1180.0,-2352697.87889015,-4676065.92723028,3631934.93222899, + 1190.0,-2352455.44839119,-4676102.95001317,3632043.56569193, + 1.2e3,-2352213.01374317,-4676139.9645147,3632152.19271733, + 1210.0,-2351970.57494653,-4676176.97073479,3632260.81330501, + 1220.0,-2351728.13200169,-4676213.96867339,3632369.42745476, + 1230.0,-2351485.68490907,-4676250.95833043,3632478.03516641, + 1240.0,-2351243.23366913,-4676287.93970586,3632586.63643975, + 1250.0,-2351000.77828228,-4676324.91279958,3632695.2312746, + 1260.0,-2350758.31874895,-4676361.87761156,3632803.81967077, + 1270.0,-2350515.85506957,-4676398.83414172,3632912.40162807, + 1280.0,-2350273.38724458,-4676435.78239001,3633020.9771463, + 1290.0,-2350029.47875804,-4676477.3914753,3633124.49944636, + 1.3e3,-2349785.42349382,-4676519.45587927,3633227.51421022, + 1310.0,-2349541.36408501,-4676561.51200187,3633330.52253589, + 1320.0,-2349297.30053206,-4676603.55984302,3633433.52442318, + 1330.0,-2349053.2328354,-4676645.59940266,3633536.51987191, + 1340.0,-2348809.16099546,-4676687.63068071,3633639.50888189, + 1350.0,-2348565.08501267,-4676729.65367709,3633742.49145297, + 1360.0,-2348321.00488746,-4676771.66839174,3633845.46758493, + 1370.0,-2348076.92062027,-4676813.67482458,3633948.43727762, + 1380.0,-2347832.83221153,-4676855.67297554,3634051.40053084, + 1390.0,-2347588.73966167,-4676897.66284454,3634154.35734442, + 1.4e3,-2347344.64297113,-4676939.64443151,3634257.30771818, + 1410.0,-2347101.04731466,-4676979.96034855,3634362.04616856, + 1420.0,-2346858.26575513,-4677017.5834931,3634469.6847769, + 1430.0,-2346614.99348312,-4677056.89461847,3634575.46081166, + 1440.0,-2346369.55744615,-4677103.7262244,3634672.99207759, + 1450.0,-2346124.8248997,-4677147.9423086,3634773.39569376, + 1460.0,-2345880.74403986,-4677189.73374292,3634876.46090671, + 1470.0,-2345636.65904236,-4677231.51689469,3634979.51967852, + 1480.0,-2345392.56990766,-4677273.29176384,3635082.57200902, + 1490.0,-2345148.47663614,-4677315.05835029,3635185.61789803, + 1.5e3,-2344904.37922829,-4677356.81665397,3635288.65734536, + 1510.0,-2344660.2776845,-4677398.56667482,3635391.69035084, + 1520.0,-2344416.17200522,-4677440.30841274,3635494.71691428, + 1530.0,-2344172.06219089,-4677482.04186768,3635597.7370355, + 1540.0,-2343927.94824192,-4677523.76703957,3635700.75071434, + 1550.0,-2343683.83015876,-4677565.48392832,3635803.75795058, + 1560.0,-2343439.70794184,-4677607.19253388,3635906.75874406, + 1570.0,-2343195.58159159,-4677648.89285615,3636009.75309461, + 1580.0,-2342951.45110844,-4677690.58489508,3636112.74100204, + 1590.0,-2342707.31649283,-4677732.2686506,3636215.72246616, + 1.6e3,-2342463.17774519,-4677773.94412263,3636318.6974868, + 1610.0,-2342219.03486595,-4677815.61131108,3636421.66606378, + 1620.0,-2341974.88785554,-4677857.2702159,3636524.6281969, + 1630.0,-2341730.7367144,-4677898.92083702,3636627.583886, + 1640.0,-2341486.58144295,-4677940.56317435,3636730.5331309, + 1650.0,-2341242.42204163,-4677982.19722784,3636833.4759314, + 1660.0,-2340998.25851088,-4678023.8229974,3636936.41228734, + 1670.0,-2340754.09085112,-4678065.44048297,3637039.34219853, + 1680.0,-2340509.91906279,-4678107.04968447,3637142.26566479, + 1690.0,-2340265.74314632,-4678148.65060182,3637245.18268593, + 1.7e3,-2340021.56310214,-4678190.24323497,3637348.09326179, + 1710.0,-2339777.37893069,-4678231.82758383,3637450.99739218, + 1720.0,-2339533.1906324,-4678273.40364834,3637553.8950769, + 1730.0,-2339288.99820769,-4678314.97142841,3637656.7863158, + 1740.0,-2339044.80165702,-4678356.530924,3637759.67110868, + 1750.0,-2338800.60098079,-4678398.082135,3637862.54945536, + 1760.0,-2338554.70615885,-4678446.63979812,3637957.53985359, + 1770.0,-2338307.34044549,-4678501.27725608,3638045.68346556, + 1780.0,-2338059.970607,-4678555.90643107,3638133.82063425, + 1790.0,-2337812.5966438,-4678610.527323,3638221.9513595, + 1.8e3,-2337565.21855632,-4678665.13993177,3638310.07564116, + 1810.0,-2337317.836345,-4678719.74425728,3638398.19347906, + 1820.0,-2337070.45001029,-4678774.34029945,3638486.30487305, + 1830.0,-2336823.05955262,-4678828.92805817,3638574.40982299, + 1840.0,-2336575.66497242,-4678883.50753334,3638662.50832871, + 1850.0,-2336327.1545835,-4678945.50581105,3638741.82308353, + 1860.0,-2336079.08419082,-4679004.31007705,3638824.91716907, + 1870.0,-2335832.84388937,-4679053.5438294,3638919.0484984, + 1880.0,-2335586.22540763,-4679104.36395041,3639011.37515412, + 1890.0,-2335339.10405755,-4679157.40812923,3639101.16216049, + 1.9e3,-2335091.77487812,-4679211.48259624,3639189.74611699, + 1910.0,-2334844.32516034,-4679266.14231747,3639277.63977539, + 1920.0,-2334596.87132354,-4679320.79375442,3639365.52698836, + 1930.0,-2334349.41336814,-4679375.436907,3639453.40775576, + 1940.0,-2334101.95129458,-4679430.07177509,3639541.28207743, + 1950.0,-2333854.48510331,-4679484.69835863,3639629.14995324, + 1960.0,-2333607.01479475,-4679539.31665749,3639717.011383, + 1970.0,-2333359.54036938,-4679593.9266716,3639804.86636658, + 1980.0,-2333112.06182757,-4679648.52840084,3639892.71490381, + 1990.0,-2332864.57916982,-4679703.12184515,3639980.55699455, + 2e3,-2332617.09239653,-4679757.70700441,3640068.39263865, + 2010.0,-2332369.60150815,-4679812.28387853,3640156.22183593, + 2020.0,-2332122.10650513,-4679866.85246742,3640244.04458626, + 2030.0,-2331874.6073879,-4679921.41277097,3640331.86088948, + 2040.0,-2331627.10415689,-4679975.96478911,3640419.67074542, + 2050.0,-2331379.59681254,-4680030.50852172,3640507.47415395, + 2060.0,-2331132.08535529,-4680085.04396871,3640595.27111491, + 2070.0,-2330884.56978558,-4680139.57113,3640683.06162813, + 2080.0,-2330637.7285141,-4680190.9395453,3640774.43710409, + 2090.0,-2330396.40663506,-4680225.151778,3640884.18994119, + 2.1e3,-2330163.10529565,-4680238.35673454,3641015.64723137, + 2110.0,-2329932.54342047,-4680245.95830447,3641152.4979079, + 2120.0,-2329701.97743661,-4680253.55158212,3641289.34212236, + 2130.0,-2329471.40734447,-4680261.13656747,3641426.1798745, + 2140.0,-2329240.83314447,-4680268.71326052,3641563.01116407, + 2150.0,-2329010.25483703,-4680276.28166125,3641699.83599085, + 2160.0,-2328779.67242253,-4680283.84176964,3641836.65435457, + 2170.0,-2328549.08590139,-4680291.3935857,3641973.46625501, + 2180.0,-2328318.49527404,-4680298.9371094,3642110.27169193, + 2190.0,-2328087.90054086,-4680306.47234074,3642247.07066509, + 2.2e3,-2327857.30170227,-4680313.99927971,3642383.86317423, + 2210.0,-2327626.69875869,-4680321.51792628,3642520.64921913, + 2220.0,-2327396.09171053,-4680329.02828045,3642657.42879954, + 2230.0,-2327165.48055818,-4680336.53034222,3642794.20191522, + 2240.0,-2326934.86530206,-4680344.02411158,3642930.96856595, + 2250.0,-2326704.24594258,-4680351.50958849,3643067.72875145, + 2260.0,-2326473.62248015,-4680358.98677296,3643204.48247151, + 2270.0,-2326242.99491518,-4680366.45566498,3643341.22972587, + 2280.0,-2326012.36324808,-4680373.91626453,3643477.97051431, + 2290.0,-2325781.72747925,-4680381.36857161,3643614.70483658, + 2.3e3,-2325551.08760911,-4680388.8125862,3643751.43269243, + 2310.0,-2325320.44363806,-4680396.24830829,3643888.15408163, + 2320.0,-2325089.79556653,-4680403.67573787,3644024.86900394, + 2330.0,-2324859.14339491,-4680411.09487493,3644161.57745912, + 2340.0,-2324628.48712361,-4680418.50571946,3644298.27944692, + 2350.0,-2324397.82675305,-4680425.90827145,3644434.97496711, + 2360.0,-2324167.16228363,-4680433.30253088,3644571.66401943, + 2370.0,-2323936.49371575,-4680440.68849774,3644708.34660367, + 2380.0,-2323705.82104985,-4680448.06617203,3644845.02271957, + 2390.0,-2323469.56457492,-4680467.5014928,3644969.83533712, + 2.4e3,-2323221.0622471,-4680536.92026793,3645038.62868541, + 2410.0,-2322977.80807152,-4680647.84474283,3645051.13992706, + 2420.0,-2322736.38267079,-4680764.64879631,3645054.97445125, + 2430.0,-2322494.9531628,-4680881.44457147,3645058.80252916, + 2440.0,-2322246.73779559,-4680970.18567741,3645102.6916578, + 2450.0,-2322002.53536924,-4681011.67497706,3645204.29544116, + 2460.0,-2321760.17882828,-4681045.91276755,3645313.96140727, + 2470.0,-2321513.45780318,-4681097.83227119,3645403.81543108, + 2480.0,-2321264.12028187,-4681176.5278287,3645461.15182806, + 2490.0,-2321016.67956395,-4681275.07588805,3645491.94679701, + 2.5e3,-2320769.58665668,-4681375.58594799,3645519.99961511, + 2510.0,-2320522.489649,-4681476.08772649,3645548.04598517, + 2520.0,-2320275.38854134,-4681576.5812234,3645576.08590716, + 2530.0,-2320027.79132447,-4681674.92626117,3645607.16040563, + 2540.0,-2319780.10642819,-4681772.89945148,3645638.74505341, + 2550.0,-2319532.41743371,-4681870.86435933,3645670.32325269, + 2560.0,-2319284.72434146,-4681968.82098454,3645701.89500342, + 2570.0,-2319037.02715189,-4682066.76932694,3645733.46030553, + 2580.0,-2318789.32586542,-4682164.70938637,3645765.01915898, + 2590.0,-2318542.12778997,-4682264.83612099,3645793.45100625, + 2.6e3,-2318295.04606153,-4682365.47569326,3645821.1355313, + 2610.0,-2318047.960237,-4682466.10698239,3645848.81360781, + 2620.0,-2317814.2136072,-4682593.27748455,3645834.19098143, + 2630.0,-2317595.23970305,-4682740.17783799,3645785.0493345, + 2640.0,-2317367.51895524,-4682877.20966947,3645754.00173306, + 2650.0,-2317125.45200646,-4682991.24847734,3645761.32874791, + 2660.0,-2316877.25477931,-4683085.09280115,3645798.27256564, + 2670.0,-2316627.76750724,-4683171.42599527,3645845.59470414, + 2680.0,-2316378.41358519,-4683244.04371304,3645910.31301292, + 2690.0,-2316132.23045195,-4683290.83587254,3646005.96208532, + 2.7e3,-2315886.04323336,-4683337.61973972,3646101.60469867, + 2710.0,-2315639.85192986,-4683384.3953145,3646197.24085278, + 2720.0,-2315393.65654188,-4683431.1625968,3646292.8705475, + 2730.0,-2315147.45706986,-4683477.92158654,3646388.49378265, + 2740.0,-2314901.25351424,-4683524.67228364,3646484.11055807, + 2750.0,-2314655.04587545,-4683571.41468801,3646579.72087358, + 2760.0,-2314408.83415392,-4683618.14879957,3646675.32472902, + 2770.0,-2314160.70351457,-4683675.04338742,3646759.15642247, + 2780.0,-2313911.58484161,-4683762.87653752,3646804.12173857, + 2790.0,-2313665.46479966,-4683867.13714076,3646826.2202591, + 2.8e3,-2313419.44574948,-4683971.81359651,3646847.70500867, + 2810.0,-2313173.422611,-4684076.48176683,3646869.18330826, + 2820.0,-2312927.39538468,-4684181.14165156,3646890.65515782, + 2830.0,-2312681.36407094,-4684285.79325049,3646912.12055732, + 2840.0,-2312435.3286702,-4684390.43656345,3646933.57950672, + 2850.0,-2312188.68106177,-4684492.14732495,3646959.14603188, + 2860.0,-2311939.2573735,-4684576.69232926,3647008.34294359, + 2870.0,-2311690.53184969,-4684637.85664359,3647086.91208669, + 2880.0,-2311447.74208361,-4684672.93987918,3647195.00103929, + 2890.0,-2311210.79617263,-4684692.62730813,3647319.03447912, + 2.9e3,-2310974.46339778,-4684710.81501905,3647444.57574765, + 2910.0,-2310738.12654788,-4684728.99443131,3647570.11054652, + 2920.0,-2310501.78562334,-4684747.16554491,3647695.63887553, + 2930.0,-2310265.44062458,-4684765.3283598,3647821.16073445, + 2940.0,-2310029.09155203,-4684783.48287596,3647946.67612307, + 2950.0,-2309792.7384061,-4684801.62909336,3648072.18504115, + 2960.0,-2309556.38118721,-4684819.76701196,3648197.6874885, + 2970.0,-2309320.01989578,-4684837.89663174,3648323.18346488, + 2980.0,-2309083.65453223,-4684856.01795267,3648448.67297006, + 2990.0,-2308847.28509697,-4684874.13097471,3648574.15600382, + 3e3,-2308612.03960687,-4684889.78192809,3648702.05314508, + 3010.0,-2308376.92124893,-4684905.13917681,3648830.22535859, + 3020.0,-2308141.79882057,-4684920.48812622,3648958.39109918, + 3030.0,-2307906.6723222,-4684935.82877629,3649086.55036665, + 3040.0,-2307671.54175424,-4684951.161127,3649214.70316074, + 3050.0,-2307436.40711711,-4684966.48517831,3649342.84948124, + 3060.0,-2307201.26841123,-4684981.80093021,3649470.98932793, + 3070.0,-2306966.87575715,-4684995.59988061,3649600.57521538, + 3080.0,-2306740.26452813,-4684994.89962227,3649743.74372413, + 3090.0,-2306534.08725296,-4684964.25689728,3649912.24261594, + 3.1e3,-2306334.50436505,-4684925.31923873,3650087.15846994, + 3110.0,-2306134.91740775,-4684886.37327513,3650262.06783161, + 3120.0,-2305935.32638143,-4684847.41900655,3650436.97070063, + 3130.0,-2305735.73128644,-4684808.45643306,3650611.86707671, + 3140.0,-2305536.13212312,-4684769.48555472,3650786.75695952, + 3150.0,-2305336.52889186,-4684730.50637162,3650961.64034877, + 3160.0,-2305136.92159298,-4684691.51888382,3651136.51724414, + 3170.0,-2304937.31022685,-4684652.5230914,3651311.38764532, + 3180.0,-2304737.69479383,-4684613.51899443,3651486.25155201, + 3190.0,-2304538.07529427,-4684574.50659297,3651661.1089639, + 3.2e3,-2304338.45172854,-4684535.48588711,3651835.95988067, + 3210.0,-2304138.82409697,-4684496.45687691,3652010.80430203, + 3220.0,-2303939.19239993,-4684457.41956245,3652185.64222766, + 3230.0,-2303739.55663778,-4684418.37394379,3652360.47365726, + 3240.0,-2303539.91681086,-4684379.32002102,3652535.29859051, + 3250.0,-2303340.27291955,-4684340.25779419,3652710.11702711, + 3260.0,-2303140.62496419,-4684301.18726339,3652884.92896676, + 3270.0,-2302940.97294513,-4684262.10842868,3653059.73440913, + 3280.0,-2302741.31686273,-4684223.02129014,3653234.53335393, + 3290.0,-2302541.65671735,-4684183.92584784,3653409.32580085, + 3.3e3,-2302341.99250935,-4684144.82210185,3653584.11174957, + 3310.0,-2302142.32423908,-4684105.71005224,3653758.8911998, + 3320.0,-2301942.65190688,-4684066.5896991,3653933.66415121, + 3330.0,-2301742.97551314,-4684027.46104248,3654108.43060351, + 3340.0,-2301543.29505819,-4683988.32408245,3654283.19055638, + 3350.0,-2301343.61054239,-4683949.1788191,3654457.94400952, + 3360.0,-2301143.6827542,-4683910.31378064,3654632.47326169, + 3370.0,-2300935.59009252,-4683881.78114292,3654798.93579703, + 3380.0,-2300718.00641879,-4683866.2483759,3654954.7652541, + 3390.0,-2300494.16379595,-4683860.19477673,3655102.42228967, + 3.4e3,-2300270.31711639,-4683854.13287765,3655250.07283467, + 3410.0,-2300043.34951879,-4683853.58162531,3655392.64057225, + 3420.0,-2299798.57046824,-4683898.20991075,3655488.81767963, + 3430.0,-2299550.24237985,-4683986.73183877,3655531.32743747, + 3440.0,-2299302.19677383,-4684083.86163291,3655562.68543478, + 3450.0,-2299054.1471058,-4684180.98314055,3655594.03696606, + 3460.0,-2298806.09337623,-4684278.0963615,3655625.38203125, + 3470.0,-2298558.03558554,-4684375.2012956,3655656.7206303, + 3480.0,-2298309.97373417,-4684472.29794267,3655688.05276314, + 3490.0,-2298061.90782256,-4684569.38630254,3655719.37842974, + 3.5e3,-2297812.62950649,-4684659.16576897,3655760.74476938, + 3510.0,-2297564.67551281,-4684714.88851845,3655844.61445788, + 3520.0,-2297325.87128825,-4684739.27586645,3655962.6382433, + 3530.0,-2297109.10378606,-4684723.02803401,3656118.60908182, + 3540.0,-2296920.05504158,-4684672.53835408,3656300.84320686, + 3550.0,-2296752.93245501,-4684599.85791996,3656497.61758286, + 3560.0,-2296586.9421969,-4684526.13410832,3656694.99365465, + 3570.0,-2296420.94788222,-4684452.40199052,3656892.36321221, + 3580.0,-2296254.94951125,-4684378.66156669,3657089.72625519, + 3590.0,-2296088.9470843,-4684304.91283696,3657287.08278322, + 3.6e3,-2295922.94060166,-4684231.15580147,3657484.43279599, + 3610.0,-2295756.93006363,-4684157.39046036,3657681.77629313, + 3620.0,-2295590.91547051,-4684083.61681375,3657879.11327429, + 3630.0,-2295424.89682259,-4684009.83486178,3658076.44373913, + 3640.0,-2295258.87412016,-4683936.04460459,3658273.7676873, + 3650.0,-2295092.84736354,-4683862.24604231,3658471.08511845, + 3660.0,-2294926.816553,-4683788.43917507,3658668.39603222, + 3670.0,-2294760.78168886,-4683714.62400301,3658865.70042829, + 3680.0,-2294594.74277139,-4683640.80052626,3659062.99830628, + 3690.0,-2294428.69980091,-4683566.96874495,3659260.28966586, + 3.7e3,-2294262.65277771,-4683493.12865923,3659457.57450667, + 3710.0,-2294096.43623008,-4683419.42772878,3659654.7684149, + 3720.0,-2293929.99691308,-4683345.91340302,3659851.84422781, + 3730.0,-2293763.5535443,-4683272.39077326,3660048.91352102, + 3740.0,-2293597.10612405,-4683198.85983962,3660245.97629416, + 3750.0,-2293430.65465261,-4683125.32060225,3660443.03254689, + 3760.0,-2293260.27703319,-4683055.37159052,3660637.95010862, + 3770.0,-2293061.03795256,-4683015.37278429,3660812.74893793, + 3780.0,-2292840.33611906,-4683005.33804065,3660962.80786551, + 3790.0,-2292608.06534954,-4683013.68106842,3661096.69339637, + 3.8e3,-2292375.79053761,-4683022.01579957,3661230.57243073, + 3810.0,-2292143.51168366,-4683030.3422341,3661364.44496835, + 3820.0,-2291911.22878812,-4683038.66037197,3661498.311009, + 3830.0,-2291675.19260926,-4683056.38281492,3661622.54366342, + 3840.0,-2291444.11976688,-4683176.79169794,3661613.21949622, + 3850.0,-2291484.73184242,-4683029.11180042,3661775.58481802, + 3860.0,-2291570.38402198,-4682848.00432402,3661952.40110212, + 3870.0,-2291504.75912943,-4682707.90868127,3662171.13586741, + 3880.0,-2291437.4576409,-4682568.41526623,3662390.12822003, + 3890.0,-2291370.1520906,-4682428.91355119,3662609.11403735, + 3894.996219574019,-2291336.52323822,-4682359.21232197,3662718.52171165 + ] + } + } +] \ No newline at end of file diff --git a/public/static/SampleData/cesium_stripes.png b/public/static/SampleData/cesium_stripes.png new file mode 100644 index 0000000..973f49c Binary files /dev/null and b/public/static/SampleData/cesium_stripes.png differ diff --git a/public/static/SampleData/circular_particle.png b/public/static/SampleData/circular_particle.png new file mode 100644 index 0000000..ca1cc10 Binary files /dev/null and b/public/static/SampleData/circular_particle.png differ diff --git a/public/static/SampleData/fire.png b/public/static/SampleData/fire.png new file mode 100644 index 0000000..077e7b8 Binary files /dev/null and b/public/static/SampleData/fire.png differ diff --git a/public/static/SampleData/gpx/complexTrk.gpx b/public/static/SampleData/gpx/complexTrk.gpx new file mode 100644 index 0000000..22e7777 --- /dev/null +++ b/public/static/SampleData/gpx/complexTrk.gpx @@ -0,0 +1,219 @@ +<gpx creator="GPS Visualizer http://www.gpsvisualizer.com/" version="1.0"> + <wpt lat="45.44283" lon="-121.72904"><ele>1374</ele><name>Vista Ridge Trailhead</name><sym>Trail Head</sym></wpt> + <wpt lat="45.41000" lon="-121.71349"><ele>1777</ele><name>Wy'East Basin</name></wpt> + <wpt lat="45.41124" lon="-121.70404"><ele>1823</ele><name>Dollar Lake</name></wpt> + <wpt lat="45.39260" lon="-121.69937"><ele>2394</ele><name>Barrett Spur</name><sym>Summit</sym></wpt> + <trk> + <name>Barrett Spur 1</name> + <trkseg> + <trkpt lat="45.4431641" lon="-121.7295456"></trkpt> + <trkpt lat="45.4428615" lon="-121.7290800"></trkpt> + <trkpt lat="45.4425697" lon="-121.7279085"></trkpt> + <trkpt lat="45.4424274" lon="-121.7267360"></trkpt> + <trkpt lat="45.4422017" lon="-121.7260429"></trkpt> + <trkpt lat="45.4416576" lon="-121.7252347"></trkpt> + <trkpt lat="45.4406144" lon="-121.7241181"></trkpt> + <trkpt lat="45.4398193" lon="-121.7224890"></trkpt> + <trkpt lat="45.4387649" lon="-121.7226112"></trkpt> + <trkpt lat="45.4383933" lon="-121.7224328"></trkpt> + <trkpt lat="45.4377850" lon="-121.7224159"></trkpt> + <trkpt lat="45.4372204" lon="-121.7226603"></trkpt> + <trkpt lat="45.4347837" lon="-121.7226007"></trkpt> + <trkpt lat="45.4332000" lon="-121.7216480"></trkpt> + <trkpt lat="45.4334576" lon="-121.7223143"></trkpt> + <trkpt lat="45.4321730" lon="-121.7222102"></trkpt> + <trkpt lat="45.4316609" lon="-121.7219974"></trkpt> + <trkpt lat="45.4303068" lon="-121.7220616"></trkpt> + <trkpt lat="45.4270753" lon="-121.7209685"></trkpt> + <trkpt lat="45.4267610" lon="-121.7211872"></trkpt> + <trkpt lat="45.4260133" lon="-121.7212623"></trkpt> + <trkpt lat="45.4257683" lon="-121.7214738"></trkpt> + <trkpt lat="45.4257400" lon="-121.7217762"></trkpt> + <trkpt lat="45.4259485" lon="-121.7226009"></trkpt> + <trkpt lat="45.4249972" lon="-121.7223672"></trkpt> + <trkpt lat="45.4246035" lon="-121.7219816"></trkpt> + <trkpt lat="45.4238682" lon="-121.7219830"></trkpt> + <trkpt lat="45.4226721" lon="-121.7216494"></trkpt> + <trkpt lat="45.4224120" lon="-121.7217998"></trkpt> + <trkpt lat="45.4211497" lon="-121.7218767"></trkpt> + <trkpt lat="45.4193319" lon="-121.7208650"></trkpt> + <trkpt lat="45.4186435" lon="-121.7202956"></trkpt> + <trkpt lat="45.4185934" lon="-121.7200745"></trkpt> + <trkpt lat="45.4178963" lon="-121.7196035"></trkpt> + <trkpt lat="45.4171101" lon="-121.7198115"></trkpt> + <trkpt lat="45.4166827" lon="-121.7193250"></trkpt> + <trkpt lat="45.4161855" lon="-121.7190778"></trkpt> + <trkpt lat="45.4159291" lon="-121.7193146"></trkpt> + <trkpt lat="45.4153644" lon="-121.7193939"></trkpt> + <trkpt lat="45.4151268" lon="-121.7191578"></trkpt> + <trkpt lat="45.4148071" lon="-121.7191043"></trkpt> + <trkpt lat="45.4146310" lon="-121.7187962"></trkpt> + <trkpt lat="45.4142524" lon="-121.7187236"></trkpt> + <trkpt lat="45.4142844" lon="-121.7185595"></trkpt> + <trkpt lat="45.4133520" lon="-121.7180429"></trkpt> + <trkpt lat="45.4131406" lon="-121.7181383"></trkpt> + <trkpt lat="45.4130356" lon="-121.7179036"></trkpt> + <trkpt lat="45.4118436" lon="-121.7168789"></trkpt> + <trkpt lat="45.4109205" lon="-121.7156569"></trkpt> + <trkpt lat="45.4104523" lon="-121.7145250"></trkpt> + <trkpt lat="45.4104930" lon="-121.7143814"></trkpt> + <trkpt lat="45.4102075" lon="-121.7140608"></trkpt> + <trkpt lat="45.4099806" lon="-121.7134527"></trkpt> + </trkseg> + <trkseg> + <trkpt lat="45.4099792" lon="-121.7134610"></trkpt> + <trkpt lat="45.4091489" lon="-121.7134937"></trkpt> + <trkpt lat="45.4086133" lon="-121.7132504"></trkpt> + <trkpt lat="45.4080616" lon="-121.7127670"></trkpt> + <trkpt lat="45.4076426" lon="-121.7126047"></trkpt> + <trkpt lat="45.4075043" lon="-121.7122301"></trkpt> + <trkpt lat="45.4070652" lon="-121.7118980"></trkpt> + <trkpt lat="45.4068712" lon="-121.7114766"></trkpt> + <trkpt lat="45.4067987" lon="-121.7108634"></trkpt> + <trkpt lat="45.4064528" lon="-121.7106934"></trkpt> + <trkpt lat="45.4057286" lon="-121.7110326"></trkpt> + <trkpt lat="45.4056813" lon="-121.7108280"></trkpt> + <trkpt lat="45.4055566" lon="-121.7109216"></trkpt> + <trkpt lat="45.4047244" lon="-121.7093884"></trkpt> + <trkpt lat="45.4039059" lon="-121.7083824"></trkpt> + <trkpt lat="45.4037176" lon="-121.7077738"></trkpt> + <trkpt lat="45.4034533" lon="-121.7074489"></trkpt> + <trkpt lat="45.4026499" lon="-121.7071945"></trkpt> + <trkpt lat="45.4019737" lon="-121.7067004"></trkpt> + <trkpt lat="45.4018086" lon="-121.7067477"></trkpt> + <trkpt lat="45.4014084" lon="-121.7063918"></trkpt> + <trkpt lat="45.4013177" lon="-121.7059701"></trkpt> + <trkpt lat="45.4011965" lon="-121.7058914"></trkpt> + <trkpt lat="45.4010688" lon="-121.7053257"></trkpt> + <trkpt lat="45.4008116" lon="-121.7054978"></trkpt> + <trkpt lat="45.4006075" lon="-121.7053495"></trkpt> + <trkpt lat="45.4005546" lon="-121.7054856"></trkpt> + <trkpt lat="45.3991622" lon="-121.7049765"></trkpt> + <trkpt lat="45.3985560" lon="-121.7042976"></trkpt> + <trkpt lat="45.3981831" lon="-121.7042260"></trkpt> + <trkpt lat="45.3973151" lon="-121.7036992"></trkpt> + <trkpt lat="45.3967974" lon="-121.7036370"></trkpt> + <trkpt lat="45.3963985" lon="-121.7033742"></trkpt> + <trkpt lat="45.3945456" lon="-121.7029688"></trkpt> + <trkpt lat="45.3920595" lon="-121.7015918"></trkpt> + <trkpt lat="45.3907614" lon="-121.7012029"></trkpt> + <trkpt lat="45.3906454" lon="-121.7010483"></trkpt> + <trkpt lat="45.3906726" lon="-121.7008185"></trkpt> + <trkpt lat="45.3909774" lon="-121.7008263"></trkpt> + <trkpt lat="45.3911315" lon="-121.7004300"></trkpt> + <trkpt lat="45.3909963" lon="-121.6998193"></trkpt> + <trkpt lat="45.3908688" lon="-121.6997923"></trkpt> + <trkpt lat="45.3917895" lon="-121.6994679"></trkpt> + <trkpt lat="45.3926205" lon="-121.6994847"></trkpt> + <trkpt lat="45.3925915" lon="-121.6992485"></trkpt> + <trkpt lat="45.3928117" lon="-121.6995661"></trkpt> + </trkseg> + </trk> + <trk> + <name>Barrett Spur 2</name> + <trkseg> + <trkpt lat="45.3928201" lon="-121.6995658"></trkpt> + <trkpt lat="45.3935449" lon="-121.6998805"></trkpt> + <trkpt lat="45.3937897" lon="-121.6997710"></trkpt> + <trkpt lat="45.3941789" lon="-121.6999492"></trkpt> + <trkpt lat="45.3942372" lon="-121.7001375"></trkpt> + <trkpt lat="45.3946353" lon="-121.6999452"></trkpt> + <trkpt lat="45.3953599" lon="-121.7005823"></trkpt> + <trkpt lat="45.3957081" lon="-121.7006533"></trkpt> + <trkpt lat="45.3964324" lon="-121.7016813"></trkpt> + <trkpt lat="45.3965766" lon="-121.7016905"></trkpt> + <trkpt lat="45.3969060" lon="-121.7028225"></trkpt> + <trkpt lat="45.3968739" lon="-121.7033856"></trkpt> + <trkpt lat="45.3974854" lon="-121.7040597"></trkpt> + <trkpt lat="45.3986110" lon="-121.7044455"></trkpt> + <trkpt lat="45.3993308" lon="-121.7050832"></trkpt> + <trkpt lat="45.4006454" lon="-121.7055117"></trkpt> + <trkpt lat="45.4017924" lon="-121.7049952"></trkpt> + <trkpt lat="45.4028690" lon="-121.7048065"></trkpt> + <trkpt lat="45.4055213" lon="-121.7056599"></trkpt> + <trkpt lat="45.4055606" lon="-121.7058477"></trkpt> + </trkseg> + <trkseg> + <trkpt lat="45.4055556" lon="-121.7058619"></trkpt> + <trkpt lat="45.4057016" lon="-121.7055424"></trkpt> + <trkpt lat="45.4064672" lon="-121.7058247"></trkpt> + <trkpt lat="45.4065550" lon="-121.7056490"></trkpt> + <trkpt lat="45.4081392" lon="-121.7055042"></trkpt> + <trkpt lat="45.4084785" lon="-121.7052201"></trkpt> + <trkpt lat="45.4089125" lon="-121.7053029"></trkpt> + <trkpt lat="45.4097597" lon="-121.7050730"></trkpt> + <trkpt lat="45.4098359" lon="-121.7049047"></trkpt> + <trkpt lat="45.4101859" lon="-121.7049419"></trkpt> + <trkpt lat="45.4109946" lon="-121.7045409"></trkpt> + <trkpt lat="45.4110654" lon="-121.7040909"></trkpt> + <trkpt lat="45.4113353" lon="-121.7039421"></trkpt> + <trkpt lat="45.4119105" lon="-121.7047169"></trkpt> + <trkpt lat="45.4120297" lon="-121.7046115"></trkpt> + <trkpt lat="45.4123835" lon="-121.7049762"></trkpt> + <trkpt lat="45.4125020" lon="-121.7053677"></trkpt> + <trkpt lat="45.4134357" lon="-121.7051916"></trkpt> + <trkpt lat="45.4135832" lon="-121.7046182"></trkpt> + <trkpt lat="45.4139565" lon="-121.7044171"></trkpt> + <trkpt lat="45.4140658" lon="-121.7041636"></trkpt> + <trkpt lat="45.4145098" lon="-121.7041176"></trkpt> + <trkpt lat="45.4141414" lon="-121.7043045"></trkpt> + <trkpt lat="45.4141558" lon="-121.7050125"></trkpt> + <trkpt lat="45.4136095" lon="-121.7071948"></trkpt> + <trkpt lat="45.4126067" lon="-121.7080044"></trkpt> + <trkpt lat="45.4122181" lon="-121.7088539"></trkpt> + <trkpt lat="45.4124283" lon="-121.7092346"></trkpt> + <trkpt lat="45.4119295" lon="-121.7101625"></trkpt> + <trkpt lat="45.4124117" lon="-121.7104037"></trkpt> + <trkpt lat="45.4122553" lon="-121.7107970"></trkpt> + <trkpt lat="45.4116919" lon="-121.7107601"></trkpt> + <trkpt lat="45.4116619" lon="-121.7110571"></trkpt> + <trkpt lat="45.4113536" lon="-121.7114942"></trkpt> + <trkpt lat="45.4114186" lon="-121.7117619"></trkpt> + <trkpt lat="45.4110215" lon="-121.7125886"></trkpt> + <trkpt lat="45.4106014" lon="-121.7125816"></trkpt> + <trkpt lat="45.4104916" lon="-121.7129590"></trkpt> + <trkpt lat="45.4102544" lon="-121.7130066"></trkpt> + <trkpt lat="45.4099714" lon="-121.7134279"></trkpt> + </trkseg> + <trkseg> + <trkpt lat="45.4099747" lon="-121.7134529"></trkpt> + <trkpt lat="45.4110685" lon="-121.7158641"></trkpt> + <trkpt lat="45.4121873" lon="-121.7171940"></trkpt> + <trkpt lat="45.4131063" lon="-121.7179663"></trkpt> + <trkpt lat="45.4146646" lon="-121.7186587"></trkpt> + <trkpt lat="45.4147872" lon="-121.7190281"></trkpt> + <trkpt lat="45.4153143" lon="-121.7192079"></trkpt> + <trkpt lat="45.4153716" lon="-121.7193714"></trkpt> + <trkpt lat="45.4164891" lon="-121.7190904"></trkpt> + <trkpt lat="45.4172221" lon="-121.7196833"></trkpt> + <trkpt lat="45.4179416" lon="-121.7195244"></trkpt> + <trkpt lat="45.4185782" lon="-121.7197987"></trkpt> + <trkpt lat="45.4193540" lon="-121.7207025"></trkpt> + <trkpt lat="45.4214007" lon="-121.7218387"></trkpt> + <trkpt lat="45.4226606" lon="-121.7215644"></trkpt> + <trkpt lat="45.4247590" lon="-121.7218690"></trkpt> + <trkpt lat="45.4249036" lon="-121.7221738"></trkpt> + <trkpt lat="45.4259458" lon="-121.7225690"></trkpt> + <trkpt lat="45.4257020" lon="-121.7216118"></trkpt> + <trkpt lat="45.4260738" lon="-121.7212258"></trkpt> + <trkpt lat="45.4272087" lon="-121.7208974"></trkpt> + <trkpt lat="45.4277253" lon="-121.7209468"></trkpt> + <trkpt lat="45.4283981" lon="-121.7213890"></trkpt> + <trkpt lat="45.4288768" lon="-121.7213453"></trkpt> + <trkpt lat="45.4301857" lon="-121.7219605"></trkpt> + <trkpt lat="45.4312165" lon="-121.7219340"></trkpt> + <trkpt lat="45.4334856" lon="-121.7222528"></trkpt> + <trkpt lat="45.4331572" lon="-121.7216508"></trkpt> + <trkpt lat="45.4336070" lon="-121.7217366"></trkpt> + <trkpt lat="45.4350551" lon="-121.7225997"></trkpt> + <trkpt lat="45.4371233" lon="-121.7226122"></trkpt> + <trkpt lat="45.4378561" lon="-121.7223631"></trkpt> + <trkpt lat="45.4387304" lon="-121.7225545"></trkpt> + <trkpt lat="45.4397525" lon="-121.7223926"></trkpt> + <trkpt lat="45.4407832" lon="-121.7243251"></trkpt> + <trkpt lat="45.4422796" lon="-121.7260896"></trkpt> + <trkpt lat="45.4428882" lon="-121.7291117"></trkpt> + <trkpt lat="45.4431708" lon="-121.7295917"></trkpt> + </trkseg> + </trk> +</gpx> \ No newline at end of file diff --git a/public/static/SampleData/gpx/lamina.gpx b/public/static/SampleData/gpx/lamina.gpx new file mode 100644 index 0000000..f219b40 --- /dev/null +++ b/public/static/SampleData/gpx/lamina.gpx @@ -0,0 +1,60712 @@ +<?xml version="1.0" encoding="UTF-8"?> +<gpx creator="StravaGPX" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd" version="1.1" xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"> + <metadata> + <time>2020-08-23T07:48:23Z</time> + </metadata> + <trk> + <name>PuroPirinero - La Mina</name> + <type>1</type> + <trkseg> + <trkpt lat="42.5932660" lon="0.5401440"> + <ele>1666.4</ele> + <time>2020-08-23T07:48:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>84</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932660" lon="0.5401440"> + <ele>1666.4</ele> + <time>2020-08-23T07:48:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>85</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932080" lon="0.5401990"> + <ele>1665.6</ele> + <time>2020-08-23T07:48:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>87</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931910" lon="0.5402160"> + <ele>1665.8</ele> + <time>2020-08-23T07:48:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>87</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931720" lon="0.5402320"> + <ele>1665.8</ele> + <time>2020-08-23T07:48:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>87</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931540" lon="0.5402490"> + <ele>1665.6</ele> + <time>2020-08-23T07:48:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>87</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931440" lon="0.5402770"> + <ele>1665.6</ele> + <time>2020-08-23T07:48:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>88</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931390" lon="0.5403080"> + <ele>1665.6</ele> + <time>2020-08-23T07:48:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>88</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931410" lon="0.5403430"> + <ele>1665.8</ele> + <time>2020-08-23T07:48:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>89</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931430" lon="0.5403770"> + <ele>1665.8</ele> + <time>2020-08-23T07:48:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>89</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931500" lon="0.5404100"> + <ele>1665.8</ele> + <time>2020-08-23T07:48:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>91</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931600" lon="0.5404410"> + <ele>1665.8</ele> + <time>2020-08-23T07:48:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>92</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931700" lon="0.5404710"> + <ele>1665.8</ele> + <time>2020-08-23T07:48:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>93</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931760" lon="0.5404990"> + <ele>1665.8</ele> + <time>2020-08-23T07:48:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>95</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931830" lon="0.5405320"> + <ele>1665.8</ele> + <time>2020-08-23T07:48:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931870" lon="0.5405600"> + <ele>1665.8</ele> + <time>2020-08-23T07:48:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931880" lon="0.5405910"> + <ele>1665.8</ele> + <time>2020-08-23T07:48:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931890" lon="0.5406220"> + <ele>1665.8</ele> + <time>2020-08-23T07:48:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931900" lon="0.5406550"> + <ele>1666.0</ele> + <time>2020-08-23T07:48:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931950" lon="0.5406880"> + <ele>1666.0</ele> + <time>2020-08-23T07:48:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932000" lon="0.5407180"> + <ele>1666.0</ele> + <time>2020-08-23T07:48:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932100" lon="0.5407430"> + <ele>1666.0</ele> + <time>2020-08-23T07:48:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932240" lon="0.5407610"> + <ele>1666.2</ele> + <time>2020-08-23T07:48:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932400" lon="0.5407750"> + <ele>1666.2</ele> + <time>2020-08-23T07:48:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932550" lon="0.5407810"> + <ele>1666.4</ele> + <time>2020-08-23T07:48:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932730" lon="0.5407800"> + <ele>1666.4</ele> + <time>2020-08-23T07:48:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932920" lon="0.5407790"> + <ele>1666.6</ele> + <time>2020-08-23T07:48:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933150" lon="0.5407810"> + <ele>1666.6</ele> + <time>2020-08-23T07:48:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933370" lon="0.5407830"> + <ele>1666.8</ele> + <time>2020-08-23T07:48:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933570" lon="0.5407830"> + <ele>1667.0</ele> + <time>2020-08-23T07:49:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933790" lon="0.5407850"> + <ele>1667.2</ele> + <time>2020-08-23T07:49:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934030" lon="0.5407840"> + <ele>1667.4</ele> + <time>2020-08-23T07:49:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934280" lon="0.5407890"> + <ele>1667.6</ele> + <time>2020-08-23T07:49:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934490" lon="0.5407950"> + <ele>1667.6</ele> + <time>2020-08-23T07:49:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934690" lon="0.5408020"> + <ele>1667.8</ele> + <time>2020-08-23T07:49:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934890" lon="0.5408110"> + <ele>1667.8</ele> + <time>2020-08-23T07:49:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935090" lon="0.5408140"> + <ele>1668.0</ele> + <time>2020-08-23T07:49:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935320" lon="0.5408180"> + <ele>1668.0</ele> + <time>2020-08-23T07:49:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935530" lon="0.5408190"> + <ele>1668.4</ele> + <time>2020-08-23T07:49:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935740" lon="0.5408190"> + <ele>1668.6</ele> + <time>2020-08-23T07:49:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935960" lon="0.5408230"> + <ele>1668.8</ele> + <time>2020-08-23T07:49:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936190" lon="0.5408270"> + <ele>1669.0</ele> + <time>2020-08-23T07:49:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936420" lon="0.5408350"> + <ele>1669.0</ele> + <time>2020-08-23T07:49:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936650" lon="0.5408410"> + <ele>1669.2</ele> + <time>2020-08-23T07:49:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936880" lon="0.5408450"> + <ele>1669.2</ele> + <time>2020-08-23T07:49:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937130" lon="0.5408490"> + <ele>1669.2</ele> + <time>2020-08-23T07:49:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937350" lon="0.5408550"> + <ele>1669.4</ele> + <time>2020-08-23T07:49:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937590" lon="0.5408630"> + <ele>1669.6</ele> + <time>2020-08-23T07:49:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937820" lon="0.5408710"> + <ele>1669.8</ele> + <time>2020-08-23T07:49:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938040" lon="0.5408820"> + <ele>1669.8</ele> + <time>2020-08-23T07:49:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938240" lon="0.5408900"> + <ele>1669.8</ele> + <time>2020-08-23T07:49:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938460" lon="0.5409000"> + <ele>1670.0</ele> + <time>2020-08-23T07:49:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938690" lon="0.5409130"> + <ele>1670.2</ele> + <time>2020-08-23T07:49:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938910" lon="0.5409270"> + <ele>1670.2</ele> + <time>2020-08-23T07:49:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939110" lon="0.5409430"> + <ele>1670.4</ele> + <time>2020-08-23T07:49:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939330" lon="0.5409570"> + <ele>1670.6</ele> + <time>2020-08-23T07:49:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939540" lon="0.5409690"> + <ele>1670.6</ele> + <time>2020-08-23T07:49:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939730" lon="0.5409830"> + <ele>1670.6</ele> + <time>2020-08-23T07:49:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939910" lon="0.5410000"> + <ele>1670.8</ele> + <time>2020-08-23T07:49:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940080" lon="0.5410180"> + <ele>1671.0</ele> + <time>2020-08-23T07:49:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940280" lon="0.5410340"> + <ele>1671.2</ele> + <time>2020-08-23T07:49:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940460" lon="0.5410540"> + <ele>1671.4</ele> + <time>2020-08-23T07:49:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940600" lon="0.5410730"> + <ele>1671.4</ele> + <time>2020-08-23T07:49:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940740" lon="0.5410940"> + <ele>1671.6</ele> + <time>2020-08-23T07:49:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940870" lon="0.5411150"> + <ele>1671.6</ele> + <time>2020-08-23T07:49:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941000" lon="0.5411360"> + <ele>1671.8</ele> + <time>2020-08-23T07:49:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941120" lon="0.5411540"> + <ele>1672.0</ele> + <time>2020-08-23T07:49:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941280" lon="0.5411740"> + <ele>1672.0</ele> + <time>2020-08-23T07:49:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941410" lon="0.5411920"> + <ele>1672.2</ele> + <time>2020-08-23T07:49:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941550" lon="0.5412120"> + <ele>1672.4</ele> + <time>2020-08-23T07:49:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941680" lon="0.5412310"> + <ele>1672.8</ele> + <time>2020-08-23T07:49:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941800" lon="0.5412500"> + <ele>1672.8</ele> + <time>2020-08-23T07:49:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941910" lon="0.5412690"> + <ele>1673.2</ele> + <time>2020-08-23T07:49:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942020" lon="0.5412890"> + <ele>1673.4</ele> + <time>2020-08-23T07:49:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942110" lon="0.5413090"> + <ele>1673.4</ele> + <time>2020-08-23T07:49:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942190" lon="0.5413290"> + <ele>1673.6</ele> + <time>2020-08-23T07:49:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942260" lon="0.5413510"> + <ele>1673.8</ele> + <time>2020-08-23T07:49:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942350" lon="0.5413760"> + <ele>1673.8</ele> + <time>2020-08-23T07:49:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942460" lon="0.5414000"> + <ele>1674.0</ele> + <time>2020-08-23T07:49:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942580" lon="0.5414250"> + <ele>1674.2</ele> + <time>2020-08-23T07:49:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942690" lon="0.5414500"> + <ele>1674.2</ele> + <time>2020-08-23T07:49:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942800" lon="0.5414760"> + <ele>1674.4</ele> + <time>2020-08-23T07:49:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942880" lon="0.5415000"> + <ele>1674.6</ele> + <time>2020-08-23T07:49:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942930" lon="0.5415270"> + <ele>1674.8</ele> + <time>2020-08-23T07:49:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942980" lon="0.5415540"> + <ele>1674.8</ele> + <time>2020-08-23T07:49:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943040" lon="0.5415860"> + <ele>1675.0</ele> + <time>2020-08-23T07:49:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943100" lon="0.5416150"> + <ele>1675.0</ele> + <time>2020-08-23T07:49:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943140" lon="0.5416420"> + <ele>1675.2</ele> + <time>2020-08-23T07:49:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943160" lon="0.5416700"> + <ele>1675.2</ele> + <time>2020-08-23T07:49:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943160" lon="0.5416980"> + <ele>1675.4</ele> + <time>2020-08-23T07:50:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943140" lon="0.5417250"> + <ele>1675.6</ele> + <time>2020-08-23T07:50:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943150" lon="0.5417530"> + <ele>1675.8</ele> + <time>2020-08-23T07:50:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943160" lon="0.5417800"> + <ele>1676.0</ele> + <time>2020-08-23T07:50:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943140" lon="0.5418030"> + <ele>1676.0</ele> + <time>2020-08-23T07:50:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943150" lon="0.5418290"> + <ele>1676.0</ele> + <time>2020-08-23T07:50:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943140" lon="0.5418560"> + <ele>1676.2</ele> + <time>2020-08-23T07:50:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943140" lon="0.5418830"> + <ele>1676.2</ele> + <time>2020-08-23T07:50:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943140" lon="0.5419120"> + <ele>1676.4</ele> + <time>2020-08-23T07:50:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943140" lon="0.5419430"> + <ele>1676.6</ele> + <time>2020-08-23T07:50:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943110" lon="0.5419730"> + <ele>1676.6</ele> + <time>2020-08-23T07:50:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943050" lon="0.5420020"> + <ele>1676.8</ele> + <time>2020-08-23T07:50:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942980" lon="0.5420310"> + <ele>1677.0</ele> + <time>2020-08-23T07:50:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942910" lon="0.5420560"> + <ele>1677.0</ele> + <time>2020-08-23T07:50:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942850" lon="0.5420830"> + <ele>1677.2</ele> + <time>2020-08-23T07:50:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942760" lon="0.5421100"> + <ele>1677.2</ele> + <time>2020-08-23T07:50:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942690" lon="0.5421400"> + <ele>1677.6</ele> + <time>2020-08-23T07:50:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942650" lon="0.5421670"> + <ele>1677.6</ele> + <time>2020-08-23T07:50:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942620" lon="0.5421900"> + <ele>1677.6</ele> + <time>2020-08-23T07:50:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942580" lon="0.5422100"> + <ele>1677.8</ele> + <time>2020-08-23T07:50:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942520" lon="0.5422330"> + <ele>1677.8</ele> + <time>2020-08-23T07:50:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942450" lon="0.5422580"> + <ele>1678.0</ele> + <time>2020-08-23T07:50:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942360" lon="0.5422810"> + <ele>1678.2</ele> + <time>2020-08-23T07:50:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942260" lon="0.5423040"> + <ele>1678.4</ele> + <time>2020-08-23T07:50:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942140" lon="0.5423270"> + <ele>1678.4</ele> + <time>2020-08-23T07:50:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942020" lon="0.5423500"> + <ele>1678.6</ele> + <time>2020-08-23T07:50:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941890" lon="0.5423730"> + <ele>1678.8</ele> + <time>2020-08-23T07:50:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941750" lon="0.5423950"> + <ele>1678.8</ele> + <time>2020-08-23T07:50:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941640" lon="0.5424180"> + <ele>1679.0</ele> + <time>2020-08-23T07:50:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941530" lon="0.5424420"> + <ele>1679.2</ele> + <time>2020-08-23T07:50:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941450" lon="0.5424650"> + <ele>1679.4</ele> + <time>2020-08-23T07:50:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941370" lon="0.5424880"> + <ele>1679.4</ele> + <time>2020-08-23T07:50:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941280" lon="0.5425120"> + <ele>1679.6</ele> + <time>2020-08-23T07:50:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941210" lon="0.5425360"> + <ele>1679.6</ele> + <time>2020-08-23T07:50:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941140" lon="0.5425580"> + <ele>1679.8</ele> + <time>2020-08-23T07:50:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941080" lon="0.5425790"> + <ele>1679.8</ele> + <time>2020-08-23T07:50:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941010" lon="0.5426020"> + <ele>1680.0</ele> + <time>2020-08-23T07:50:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940920" lon="0.5426230"> + <ele>1680.2</ele> + <time>2020-08-23T07:50:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940830" lon="0.5426420"> + <ele>1680.2</ele> + <time>2020-08-23T07:50:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940740" lon="0.5426620"> + <ele>1680.2</ele> + <time>2020-08-23T07:50:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940660" lon="0.5426860"> + <ele>1680.4</ele> + <time>2020-08-23T07:50:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940590" lon="0.5427100"> + <ele>1680.6</ele> + <time>2020-08-23T07:50:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940530" lon="0.5427340"> + <ele>1680.6</ele> + <time>2020-08-23T07:50:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940470" lon="0.5427580"> + <ele>1680.8</ele> + <time>2020-08-23T07:50:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940400" lon="0.5427810"> + <ele>1680.8</ele> + <time>2020-08-23T07:50:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940310" lon="0.5428020"> + <ele>1681.0</ele> + <time>2020-08-23T07:50:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940240" lon="0.5428240"> + <ele>1681.2</ele> + <time>2020-08-23T07:50:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940160" lon="0.5428430"> + <ele>1681.6</ele> + <time>2020-08-23T07:50:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940090" lon="0.5428640"> + <ele>1681.8</ele> + <time>2020-08-23T07:50:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940030" lon="0.5428860"> + <ele>1681.8</ele> + <time>2020-08-23T07:50:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939950" lon="0.5429080"> + <ele>1682.2</ele> + <time>2020-08-23T07:50:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939860" lon="0.5429300"> + <ele>1682.4</ele> + <time>2020-08-23T07:50:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939770" lon="0.5429500"> + <ele>1682.6</ele> + <time>2020-08-23T07:50:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939690" lon="0.5429720"> + <ele>1682.8</ele> + <time>2020-08-23T07:50:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939620" lon="0.5429940"> + <ele>1683.0</ele> + <time>2020-08-23T07:50:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939530" lon="0.5430140"> + <ele>1683.2</ele> + <time>2020-08-23T07:50:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939450" lon="0.5430350"> + <ele>1683.4</ele> + <time>2020-08-23T07:50:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939380" lon="0.5430560"> + <ele>1683.4</ele> + <time>2020-08-23T07:50:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939310" lon="0.5430770"> + <ele>1683.6</ele> + <time>2020-08-23T07:50:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939230" lon="0.5430970"> + <ele>1683.8</ele> + <time>2020-08-23T07:50:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939160" lon="0.5431190"> + <ele>1684.0</ele> + <time>2020-08-23T07:51:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939090" lon="0.5431410"> + <ele>1684.2</ele> + <time>2020-08-23T07:51:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939030" lon="0.5431640"> + <ele>1684.2</ele> + <time>2020-08-23T07:51:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938950" lon="0.5431840"> + <ele>1684.4</ele> + <time>2020-08-23T07:51:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938880" lon="0.5432070"> + <ele>1684.6</ele> + <time>2020-08-23T07:51:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938800" lon="0.5432290"> + <ele>1684.6</ele> + <time>2020-08-23T07:51:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938740" lon="0.5432520"> + <ele>1684.8</ele> + <time>2020-08-23T07:51:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938670" lon="0.5432720"> + <ele>1684.8</ele> + <time>2020-08-23T07:51:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938590" lon="0.5432920"> + <ele>1685.0</ele> + <time>2020-08-23T07:51:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938520" lon="0.5433140"> + <ele>1685.2</ele> + <time>2020-08-23T07:51:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938440" lon="0.5433360"> + <ele>1685.4</ele> + <time>2020-08-23T07:51:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938370" lon="0.5433590"> + <ele>1685.6</ele> + <time>2020-08-23T07:51:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938280" lon="0.5433810"> + <ele>1685.6</ele> + <time>2020-08-23T07:51:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938180" lon="0.5434010"> + <ele>1685.8</ele> + <time>2020-08-23T07:51:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938090" lon="0.5434220"> + <ele>1685.8</ele> + <time>2020-08-23T07:51:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938010" lon="0.5434420"> + <ele>1686.0</ele> + <time>2020-08-23T07:51:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937910" lon="0.5434610"> + <ele>1686.0</ele> + <time>2020-08-23T07:51:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937800" lon="0.5434800"> + <ele>1686.0</ele> + <time>2020-08-23T07:51:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937700" lon="0.5434990"> + <ele>1686.2</ele> + <time>2020-08-23T07:51:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937610" lon="0.5435180"> + <ele>1686.4</ele> + <time>2020-08-23T07:51:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937520" lon="0.5435360"> + <ele>1686.6</ele> + <time>2020-08-23T07:51:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937440" lon="0.5435560"> + <ele>1686.8</ele> + <time>2020-08-23T07:51:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937360" lon="0.5435760"> + <ele>1687.0</ele> + <time>2020-08-23T07:51:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937280" lon="0.5435970"> + <ele>1687.0</ele> + <time>2020-08-23T07:51:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937200" lon="0.5436180"> + <ele>1687.4</ele> + <time>2020-08-23T07:51:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937120" lon="0.5436400"> + <ele>1687.4</ele> + <time>2020-08-23T07:51:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937060" lon="0.5436630"> + <ele>1687.6</ele> + <time>2020-08-23T07:51:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936990" lon="0.5436850"> + <ele>1687.6</ele> + <time>2020-08-23T07:51:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936890" lon="0.5437050"> + <ele>1687.8</ele> + <time>2020-08-23T07:51:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936790" lon="0.5437260"> + <ele>1688.0</ele> + <time>2020-08-23T07:51:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936690" lon="0.5437460"> + <ele>1688.0</ele> + <time>2020-08-23T07:51:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936610" lon="0.5437660"> + <ele>1688.2</ele> + <time>2020-08-23T07:51:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936540" lon="0.5437890"> + <ele>1688.2</ele> + <time>2020-08-23T07:51:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936470" lon="0.5438110"> + <ele>1688.4</ele> + <time>2020-08-23T07:51:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936390" lon="0.5438330"> + <ele>1688.4</ele> + <time>2020-08-23T07:51:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936320" lon="0.5438550"> + <ele>1688.6</ele> + <time>2020-08-23T07:51:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936260" lon="0.5438780"> + <ele>1688.6</ele> + <time>2020-08-23T07:51:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936190" lon="0.5438990"> + <ele>1688.8</ele> + <time>2020-08-23T07:51:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936100" lon="0.5439190"> + <ele>1688.8</ele> + <time>2020-08-23T07:51:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936040" lon="0.5439410"> + <ele>1689.0</ele> + <time>2020-08-23T07:51:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936000" lon="0.5439620"> + <ele>1689.2</ele> + <time>2020-08-23T07:51:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935930" lon="0.5439820"> + <ele>1689.4</ele> + <time>2020-08-23T07:51:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935870" lon="0.5440010"> + <ele>1689.4</ele> + <time>2020-08-23T07:51:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935800" lon="0.5440210"> + <ele>1689.4</ele> + <time>2020-08-23T07:51:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935720" lon="0.5440410"> + <ele>1689.6</ele> + <time>2020-08-23T07:51:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935650" lon="0.5440620"> + <ele>1689.6</ele> + <time>2020-08-23T07:51:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935580" lon="0.5440820"> + <ele>1689.6</ele> + <time>2020-08-23T07:51:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935500" lon="0.5441010"> + <ele>1689.8</ele> + <time>2020-08-23T07:51:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935430" lon="0.5441200"> + <ele>1690.0</ele> + <time>2020-08-23T07:51:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935370" lon="0.5441410"> + <ele>1690.2</ele> + <time>2020-08-23T07:51:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935310" lon="0.5441620"> + <ele>1690.2</ele> + <time>2020-08-23T07:51:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935240" lon="0.5441810"> + <ele>1690.2</ele> + <time>2020-08-23T07:51:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935160" lon="0.5442020"> + <ele>1690.4</ele> + <time>2020-08-23T07:51:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935090" lon="0.5442230"> + <ele>1690.6</ele> + <time>2020-08-23T07:51:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935010" lon="0.5442430"> + <ele>1690.6</ele> + <time>2020-08-23T07:51:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934940" lon="0.5442640"> + <ele>1690.8</ele> + <time>2020-08-23T07:51:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934870" lon="0.5442840"> + <ele>1691.0</ele> + <time>2020-08-23T07:51:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934790" lon="0.5443050"> + <ele>1691.2</ele> + <time>2020-08-23T07:51:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934740" lon="0.5443240"> + <ele>1691.4</ele> + <time>2020-08-23T07:51:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934680" lon="0.5443460"> + <ele>1691.4</ele> + <time>2020-08-23T07:51:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934630" lon="0.5443670"> + <ele>1691.6</ele> + <time>2020-08-23T07:52:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934560" lon="0.5443870"> + <ele>1691.6</ele> + <time>2020-08-23T07:52:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934480" lon="0.5444070"> + <ele>1691.6</ele> + <time>2020-08-23T07:52:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934380" lon="0.5444270"> + <ele>1691.8</ele> + <time>2020-08-23T07:52:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934260" lon="0.5444450"> + <ele>1692.0</ele> + <time>2020-08-23T07:52:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934160" lon="0.5444630"> + <ele>1692.2</ele> + <time>2020-08-23T07:52:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934060" lon="0.5444820"> + <ele>1692.4</ele> + <time>2020-08-23T07:52:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933980" lon="0.5445020"> + <ele>1692.6</ele> + <time>2020-08-23T07:52:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933910" lon="0.5445230"> + <ele>1692.6</ele> + <time>2020-08-23T07:52:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933830" lon="0.5445430"> + <ele>1692.8</ele> + <time>2020-08-23T07:52:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933750" lon="0.5445610"> + <ele>1692.8</ele> + <time>2020-08-23T07:52:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933670" lon="0.5445810"> + <ele>1693.0</ele> + <time>2020-08-23T07:52:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933590" lon="0.5446000"> + <ele>1693.0</ele> + <time>2020-08-23T07:52:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933520" lon="0.5446210"> + <ele>1693.2</ele> + <time>2020-08-23T07:52:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933450" lon="0.5446420"> + <ele>1693.2</ele> + <time>2020-08-23T07:52:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933370" lon="0.5446620"> + <ele>1693.4</ele> + <time>2020-08-23T07:52:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933280" lon="0.5446790"> + <ele>1693.6</ele> + <time>2020-08-23T07:52:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933190" lon="0.5446980"> + <ele>1693.8</ele> + <time>2020-08-23T07:52:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933110" lon="0.5447160"> + <ele>1693.8</ele> + <time>2020-08-23T07:52:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933030" lon="0.5447340"> + <ele>1694.0</ele> + <time>2020-08-23T07:52:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932960" lon="0.5447540"> + <ele>1694.2</ele> + <time>2020-08-23T07:52:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932890" lon="0.5447730"> + <ele>1694.4</ele> + <time>2020-08-23T07:52:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932830" lon="0.5447930"> + <ele>1694.6</ele> + <time>2020-08-23T07:52:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932770" lon="0.5448120"> + <ele>1694.8</ele> + <time>2020-08-23T07:52:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932710" lon="0.5448320"> + <ele>1694.8</ele> + <time>2020-08-23T07:52:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932630" lon="0.5448520"> + <ele>1695.0</ele> + <time>2020-08-23T07:52:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932540" lon="0.5448710"> + <ele>1695.2</ele> + <time>2020-08-23T07:52:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932450" lon="0.5448910"> + <ele>1695.4</ele> + <time>2020-08-23T07:52:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932370" lon="0.5449090"> + <ele>1695.6</ele> + <time>2020-08-23T07:52:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932260" lon="0.5449270"> + <ele>1695.6</ele> + <time>2020-08-23T07:52:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932170" lon="0.5449470"> + <ele>1695.8</ele> + <time>2020-08-23T07:52:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932090" lon="0.5449660"> + <ele>1696.0</ele> + <time>2020-08-23T07:52:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932000" lon="0.5449870"> + <ele>1696.2</ele> + <time>2020-08-23T07:52:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931930" lon="0.5450090"> + <ele>1696.4</ele> + <time>2020-08-23T07:52:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931880" lon="0.5450310"> + <ele>1696.6</ele> + <time>2020-08-23T07:52:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931810" lon="0.5450540"> + <ele>1696.6</ele> + <time>2020-08-23T07:52:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931750" lon="0.5450740"> + <ele>1696.8</ele> + <time>2020-08-23T07:52:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931670" lon="0.5450950"> + <ele>1696.8</ele> + <time>2020-08-23T07:52:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931600" lon="0.5451160"> + <ele>1696.8</ele> + <time>2020-08-23T07:52:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931520" lon="0.5451370"> + <ele>1697.0</ele> + <time>2020-08-23T07:52:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931440" lon="0.5451580"> + <ele>1697.2</ele> + <time>2020-08-23T07:52:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931380" lon="0.5451790"> + <ele>1697.2</ele> + <time>2020-08-23T07:52:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931300" lon="0.5451990"> + <ele>1697.4</ele> + <time>2020-08-23T07:52:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931220" lon="0.5452190"> + <ele>1697.6</ele> + <time>2020-08-23T07:52:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931130" lon="0.5452380"> + <ele>1697.6</ele> + <time>2020-08-23T07:52:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931050" lon="0.5452580"> + <ele>1697.8</ele> + <time>2020-08-23T07:52:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930980" lon="0.5452790"> + <ele>1697.8</ele> + <time>2020-08-23T07:52:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930900" lon="0.5452990"> + <ele>1697.8</ele> + <time>2020-08-23T07:52:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930810" lon="0.5453190"> + <ele>1698.0</ele> + <time>2020-08-23T07:52:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930720" lon="0.5453380"> + <ele>1698.0</ele> + <time>2020-08-23T07:52:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930630" lon="0.5453580"> + <ele>1698.2</ele> + <time>2020-08-23T07:52:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930550" lon="0.5453800"> + <ele>1698.2</ele> + <time>2020-08-23T07:52:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930480" lon="0.5454020"> + <ele>1698.6</ele> + <time>2020-08-23T07:52:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930430" lon="0.5454270"> + <ele>1698.8</ele> + <time>2020-08-23T07:52:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930400" lon="0.5454550"> + <ele>1699.0</ele> + <time>2020-08-23T07:52:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930360" lon="0.5454840"> + <ele>1699.0</ele> + <time>2020-08-23T07:52:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930300" lon="0.5455110"> + <ele>1699.2</ele> + <time>2020-08-23T07:52:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930210" lon="0.5455370"> + <ele>1699.4</ele> + <time>2020-08-23T07:52:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930110" lon="0.5455640"> + <ele>1699.4</ele> + <time>2020-08-23T07:52:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929990" lon="0.5455900"> + <ele>1699.6</ele> + <time>2020-08-23T07:52:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929860" lon="0.5456130"> + <ele>1699.6</ele> + <time>2020-08-23T07:53:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929710" lon="0.5456340"> + <ele>1699.6</ele> + <time>2020-08-23T07:53:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929540" lon="0.5456520"> + <ele>1699.8</ele> + <time>2020-08-23T07:53:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929350" lon="0.5456650"> + <ele>1699.8</ele> + <time>2020-08-23T07:53:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929140" lon="0.5456710"> + <ele>1699.8</ele> + <time>2020-08-23T07:53:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928920" lon="0.5456680"> + <ele>1699.8</ele> + <time>2020-08-23T07:53:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928710" lon="0.5456660"> + <ele>1699.8</ele> + <time>2020-08-23T07:53:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928490" lon="0.5456610"> + <ele>1699.8</ele> + <time>2020-08-23T07:53:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928280" lon="0.5456550"> + <ele>1699.8</ele> + <time>2020-08-23T07:53:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928080" lon="0.5456480"> + <ele>1699.8</ele> + <time>2020-08-23T07:53:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927900" lon="0.5456390"> + <ele>1700.0</ele> + <time>2020-08-23T07:53:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927740" lon="0.5456290"> + <ele>1700.0</ele> + <time>2020-08-23T07:53:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927560" lon="0.5456210"> + <ele>1700.0</ele> + <time>2020-08-23T07:53:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927370" lon="0.5456140"> + <ele>1700.2</ele> + <time>2020-08-23T07:53:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927170" lon="0.5456060"> + <ele>1700.4</ele> + <time>2020-08-23T07:53:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927030" lon="0.5456010"> + <ele>1700.4</ele> + <time>2020-08-23T07:53:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926990" lon="0.5456000"> + <ele>1700.6</ele> + <time>2020-08-23T07:53:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927020" lon="0.5456000"> + <ele>1700.8</ele> + <time>2020-08-23T07:53:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926480" lon="0.5456010"> + <ele>1701.4</ele> + <time>2020-08-23T07:53:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926300" lon="0.5455990"> + <ele>1701.4</ele> + <time>2020-08-23T07:53:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926090" lon="0.5455970"> + <ele>1701.4</ele> + <time>2020-08-23T07:53:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925860" lon="0.5455970"> + <ele>1701.4</ele> + <time>2020-08-23T07:53:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925610" lon="0.5455960"> + <ele>1701.4</ele> + <time>2020-08-23T07:53:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925370" lon="0.5455950"> + <ele>1701.4</ele> + <time>2020-08-23T07:53:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925140" lon="0.5455920"> + <ele>1701.4</ele> + <time>2020-08-23T07:53:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924910" lon="0.5455900"> + <ele>1701.4</ele> + <time>2020-08-23T07:53:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924670" lon="0.5455890"> + <ele>1701.4</ele> + <time>2020-08-23T07:53:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924410" lon="0.5455860"> + <ele>1701.4</ele> + <time>2020-08-23T07:54:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924170" lon="0.5455850"> + <ele>1701.4</ele> + <time>2020-08-23T07:54:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923950" lon="0.5455850"> + <ele>1701.6</ele> + <time>2020-08-23T07:54:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923720" lon="0.5455840"> + <ele>1701.6</ele> + <time>2020-08-23T07:54:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923480" lon="0.5455840"> + <ele>1701.6</ele> + <time>2020-08-23T07:54:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923240" lon="0.5455840"> + <ele>1701.6</ele> + <time>2020-08-23T07:54:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923030" lon="0.5455820"> + <ele>1701.6</ele> + <time>2020-08-23T07:54:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922860" lon="0.5455750"> + <ele>1701.6</ele> + <time>2020-08-23T07:54:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922700" lon="0.5455670"> + <ele>1701.8</ele> + <time>2020-08-23T07:54:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922540" lon="0.5455590"> + <ele>1702.0</ele> + <time>2020-08-23T07:54:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922400" lon="0.5455470"> + <ele>1702.0</ele> + <time>2020-08-23T07:54:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922250" lon="0.5455330"> + <ele>1702.0</ele> + <time>2020-08-23T07:54:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922090" lon="0.5455180"> + <ele>1702.0</ele> + <time>2020-08-23T07:54:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921950" lon="0.5455040"> + <ele>1702.2</ele> + <time>2020-08-23T07:54:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921780" lon="0.5454880"> + <ele>1702.2</ele> + <time>2020-08-23T07:54:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921610" lon="0.5454690"> + <ele>1702.4</ele> + <time>2020-08-23T07:54:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921470" lon="0.5454530"> + <ele>1702.4</ele> + <time>2020-08-23T07:54:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921290" lon="0.5454400"> + <ele>1702.6</ele> + <time>2020-08-23T07:54:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921050" lon="0.5454270"> + <ele>1702.6</ele> + <time>2020-08-23T07:54:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920810" lon="0.5454150"> + <ele>1702.8</ele> + <time>2020-08-23T07:54:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920550" lon="0.5454070"> + <ele>1702.8</ele> + <time>2020-08-23T07:54:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920330" lon="0.5453990"> + <ele>1703.0</ele> + <time>2020-08-23T07:54:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920090" lon="0.5453880"> + <ele>1703.0</ele> + <time>2020-08-23T07:54:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919870" lon="0.5453800"> + <ele>1703.2</ele> + <time>2020-08-23T07:54:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919600" lon="0.5453670"> + <ele>1703.2</ele> + <time>2020-08-23T07:54:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919360" lon="0.5453550"> + <ele>1703.4</ele> + <time>2020-08-23T07:54:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919120" lon="0.5453440"> + <ele>1703.4</ele> + <time>2020-08-23T07:54:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918870" lon="0.5453320"> + <ele>1703.4</ele> + <time>2020-08-23T07:54:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918630" lon="0.5453220"> + <ele>1703.4</ele> + <time>2020-08-23T07:54:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918380" lon="0.5453070"> + <ele>1703.6</ele> + <time>2020-08-23T07:54:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918170" lon="0.5452980"> + <ele>1703.6</ele> + <time>2020-08-23T07:54:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917990" lon="0.5452910"> + <ele>1703.6</ele> + <time>2020-08-23T07:54:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917800" lon="0.5452840"> + <ele>1703.8</ele> + <time>2020-08-23T07:54:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917620" lon="0.5452770"> + <ele>1703.8</ele> + <time>2020-08-23T07:54:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917420" lon="0.5452710"> + <ele>1704.0</ele> + <time>2020-08-23T07:54:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917210" lon="0.5452640"> + <ele>1704.2</ele> + <time>2020-08-23T07:54:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917000" lon="0.5452550"> + <ele>1704.4</ele> + <time>2020-08-23T07:54:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916790" lon="0.5452480"> + <ele>1704.6</ele> + <time>2020-08-23T07:54:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916570" lon="0.5452450"> + <ele>1704.8</ele> + <time>2020-08-23T07:54:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916350" lon="0.5452440"> + <ele>1705.0</ele> + <time>2020-08-23T07:54:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916130" lon="0.5452430"> + <ele>1705.2</ele> + <time>2020-08-23T07:54:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5915910" lon="0.5452420"> + <ele>1705.4</ele> + <time>2020-08-23T07:54:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5915710" lon="0.5452410"> + <ele>1705.6</ele> + <time>2020-08-23T07:54:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5915480" lon="0.5452380"> + <ele>1705.8</ele> + <time>2020-08-23T07:54:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5915260" lon="0.5452370"> + <ele>1706.0</ele> + <time>2020-08-23T07:54:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5915050" lon="0.5452360"> + <ele>1706.4</ele> + <time>2020-08-23T07:54:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5914830" lon="0.5452370"> + <ele>1706.4</ele> + <time>2020-08-23T07:54:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5914620" lon="0.5452370"> + <ele>1706.8</ele> + <time>2020-08-23T07:54:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5914390" lon="0.5452380"> + <ele>1707.2</ele> + <time>2020-08-23T07:54:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5914170" lon="0.5452410"> + <ele>1707.4</ele> + <time>2020-08-23T07:54:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913950" lon="0.5452430"> + <ele>1707.8</ele> + <time>2020-08-23T07:54:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913730" lon="0.5452460"> + <ele>1708.0</ele> + <time>2020-08-23T07:54:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913500" lon="0.5452500"> + <ele>1708.0</ele> + <time>2020-08-23T07:54:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913280" lon="0.5452520"> + <ele>1708.2</ele> + <time>2020-08-23T07:54:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913060" lon="0.5452540"> + <ele>1708.4</ele> + <time>2020-08-23T07:54:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912850" lon="0.5452590"> + <ele>1708.4</ele> + <time>2020-08-23T07:54:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912630" lon="0.5452620"> + <ele>1708.6</ele> + <time>2020-08-23T07:54:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912420" lon="0.5452650"> + <ele>1708.6</ele> + <time>2020-08-23T07:54:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912220" lon="0.5452710"> + <ele>1708.6</ele> + <time>2020-08-23T07:54:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912010" lon="0.5452760"> + <ele>1708.8</ele> + <time>2020-08-23T07:54:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911800" lon="0.5452830"> + <ele>1708.8</ele> + <time>2020-08-23T07:55:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911620" lon="0.5452930"> + <ele>1708.8</ele> + <time>2020-08-23T07:55:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911440" lon="0.5453030"> + <ele>1708.8</ele> + <time>2020-08-23T07:55:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911250" lon="0.5453140"> + <ele>1708.8</ele> + <time>2020-08-23T07:55:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911060" lon="0.5453240"> + <ele>1708.8</ele> + <time>2020-08-23T07:55:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910880" lon="0.5453330"> + <ele>1709.0</ele> + <time>2020-08-23T07:55:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910700" lon="0.5453420"> + <ele>1709.0</ele> + <time>2020-08-23T07:55:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910510" lon="0.5453520"> + <ele>1709.2</ele> + <time>2020-08-23T07:55:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910330" lon="0.5453620"> + <ele>1709.2</ele> + <time>2020-08-23T07:55:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910140" lon="0.5453670"> + <ele>1709.2</ele> + <time>2020-08-23T07:55:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909980" lon="0.5453660"> + <ele>1709.4</ele> + <time>2020-08-23T07:55:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909800" lon="0.5453630"> + <ele>1709.4</ele> + <time>2020-08-23T07:55:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909590" lon="0.5453580"> + <ele>1709.4</ele> + <time>2020-08-23T07:55:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909420" lon="0.5453520"> + <ele>1709.8</ele> + <time>2020-08-23T07:55:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909240" lon="0.5453470"> + <ele>1710.0</ele> + <time>2020-08-23T07:55:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909040" lon="0.5453440"> + <ele>1710.0</ele> + <time>2020-08-23T07:55:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5908840" lon="0.5453400"> + <ele>1710.4</ele> + <time>2020-08-23T07:55:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5908630" lon="0.5453360"> + <ele>1710.2</ele> + <time>2020-08-23T07:55:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5908440" lon="0.5453330"> + <ele>1710.4</ele> + <time>2020-08-23T07:55:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5908240" lon="0.5453360"> + <ele>1710.6</ele> + <time>2020-08-23T07:55:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5908040" lon="0.5453400"> + <ele>1710.6</ele> + <time>2020-08-23T07:55:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907840" lon="0.5453480"> + <ele>1711.0</ele> + <time>2020-08-23T07:55:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907640" lon="0.5453610"> + <ele>1711.2</ele> + <time>2020-08-23T07:55:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907480" lon="0.5453790"> + <ele>1711.2</ele> + <time>2020-08-23T07:55:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907320" lon="0.5453970"> + <ele>1711.4</ele> + <time>2020-08-23T07:55:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907180" lon="0.5454170"> + <ele>1711.4</ele> + <time>2020-08-23T07:55:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907050" lon="0.5454390"> + <ele>1711.4</ele> + <time>2020-08-23T07:55:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906940" lon="0.5454600"> + <ele>1711.6</ele> + <time>2020-08-23T07:55:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906850" lon="0.5454840"> + <ele>1711.6</ele> + <time>2020-08-23T07:55:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906760" lon="0.5455060"> + <ele>1711.8</ele> + <time>2020-08-23T07:55:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906650" lon="0.5455300"> + <ele>1712.0</ele> + <time>2020-08-23T07:55:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906550" lon="0.5455520"> + <ele>1712.0</ele> + <time>2020-08-23T07:55:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906430" lon="0.5455740"> + <ele>1712.2</ele> + <time>2020-08-23T07:55:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906320" lon="0.5455970"> + <ele>1712.2</ele> + <time>2020-08-23T07:55:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906210" lon="0.5456180"> + <ele>1712.4</ele> + <time>2020-08-23T07:55:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906090" lon="0.5456370"> + <ele>1712.6</ele> + <time>2020-08-23T07:55:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905970" lon="0.5456570"> + <ele>1712.8</ele> + <time>2020-08-23T07:55:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905850" lon="0.5456760"> + <ele>1712.8</ele> + <time>2020-08-23T07:55:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905730" lon="0.5456950"> + <ele>1712.8</ele> + <time>2020-08-23T07:55:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905590" lon="0.5457140"> + <ele>1713.0</ele> + <time>2020-08-23T07:55:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905460" lon="0.5457310"> + <ele>1713.0</ele> + <time>2020-08-23T07:55:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905320" lon="0.5457460"> + <ele>1713.4</ele> + <time>2020-08-23T07:55:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905200" lon="0.5457620"> + <ele>1713.4</ele> + <time>2020-08-23T07:55:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905080" lon="0.5457800"> + <ele>1713.6</ele> + <time>2020-08-23T07:55:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904960" lon="0.5457990"> + <ele>1713.8</ele> + <time>2020-08-23T07:55:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904820" lon="0.5458160"> + <ele>1713.8</ele> + <time>2020-08-23T07:55:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904660" lon="0.5458320"> + <ele>1714.0</ele> + <time>2020-08-23T07:55:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904500" lon="0.5458460"> + <ele>1714.2</ele> + <time>2020-08-23T07:55:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904350" lon="0.5458620"> + <ele>1714.4</ele> + <time>2020-08-23T07:55:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904190" lon="0.5458790"> + <ele>1714.6</ele> + <time>2020-08-23T07:55:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904010" lon="0.5458940"> + <ele>1714.8</ele> + <time>2020-08-23T07:55:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903830" lon="0.5459080"> + <ele>1714.8</ele> + <time>2020-08-23T07:55:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903650" lon="0.5459220"> + <ele>1715.0</ele> + <time>2020-08-23T07:55:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903490" lon="0.5459360"> + <ele>1715.2</ele> + <time>2020-08-23T07:55:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903350" lon="0.5459510"> + <ele>1715.4</ele> + <time>2020-08-23T07:55:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903210" lon="0.5459660"> + <ele>1715.6</ele> + <time>2020-08-23T07:55:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903070" lon="0.5459840"> + <ele>1715.8</ele> + <time>2020-08-23T07:55:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902950" lon="0.5460030"> + <ele>1716.0</ele> + <time>2020-08-23T07:55:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902830" lon="0.5460240"> + <ele>1716.2</ele> + <time>2020-08-23T07:55:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902730" lon="0.5460400"> + <ele>1716.4</ele> + <time>2020-08-23T07:55:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902640" lon="0.5460550"> + <ele>1716.6</ele> + <time>2020-08-23T07:56:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902570" lon="0.5460730"> + <ele>1716.8</ele> + <time>2020-08-23T07:56:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902530" lon="0.5460910"> + <ele>1717.0</ele> + <time>2020-08-23T07:56:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902520" lon="0.5461080"> + <ele>1717.2</ele> + <time>2020-08-23T07:56:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902570" lon="0.5461200"> + <ele>1717.4</ele> + <time>2020-08-23T07:56:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902630" lon="0.5461340"> + <ele>1717.6</ele> + <time>2020-08-23T07:56:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902690" lon="0.5461520"> + <ele>1717.8</ele> + <time>2020-08-23T07:56:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902740" lon="0.5461700"> + <ele>1717.8</ele> + <time>2020-08-23T07:56:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902790" lon="0.5461880"> + <ele>1718.0</ele> + <time>2020-08-23T07:56:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902840" lon="0.5461990"> + <ele>1718.2</ele> + <time>2020-08-23T07:56:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902840" lon="0.5461980"> + <ele>1718.4</ele> + <time>2020-08-23T07:56:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902780" lon="0.5461870"> + <ele>1718.6</ele> + <time>2020-08-23T07:56:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902740" lon="0.5461720"> + <ele>1718.8</ele> + <time>2020-08-23T07:56:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902700" lon="0.5461500"> + <ele>1718.8</ele> + <time>2020-08-23T07:56:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902640" lon="0.5461280"> + <ele>1719.0</ele> + <time>2020-08-23T07:56:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902560" lon="0.5460990"> + <ele>1719.0</ele> + <time>2020-08-23T07:56:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902460" lon="0.5460730"> + <ele>1719.0</ele> + <time>2020-08-23T07:56:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902300" lon="0.5460570"> + <ele>1719.0</ele> + <time>2020-08-23T07:56:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902080" lon="0.5460610"> + <ele>1719.0</ele> + <time>2020-08-23T07:56:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901840" lon="0.5460810"> + <ele>1719.0</ele> + <time>2020-08-23T07:56:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901640" lon="0.5461130"> + <ele>1719.0</ele> + <time>2020-08-23T07:56:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901530" lon="0.5461520"> + <ele>1719.0</ele> + <time>2020-08-23T07:56:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901440" lon="0.5461860"> + <ele>1719.0</ele> + <time>2020-08-23T07:56:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901370" lon="0.5462150"> + <ele>1719.0</ele> + <time>2020-08-23T07:56:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901310" lon="0.5462410"> + <ele>1719.0</ele> + <time>2020-08-23T07:56:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901250" lon="0.5462680"> + <ele>1718.8</ele> + <time>2020-08-23T07:56:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901200" lon="0.5462970"> + <ele>1718.8</ele> + <time>2020-08-23T07:56:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901050" lon="0.5463280"> + <ele>1718.6</ele> + <time>2020-08-23T07:56:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900810" lon="0.5463620"> + <ele>1718.2</ele> + <time>2020-08-23T07:56:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900450" lon="0.5464010"> + <ele>1718.0</ele> + <time>2020-08-23T07:56:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900050" lon="0.5464470"> + <ele>1718.0</ele> + <time>2020-08-23T07:56:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899660" lon="0.5464940"> + <ele>1718.0</ele> + <time>2020-08-23T07:56:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899280" lon="0.5465390"> + <ele>1717.8</ele> + <time>2020-08-23T07:56:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898950" lon="0.5465780"> + <ele>1717.6</ele> + <time>2020-08-23T07:56:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898690" lon="0.5466100"> + <ele>1717.6</ele> + <time>2020-08-23T07:56:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898450" lon="0.5466370"> + <ele>1717.2</ele> + <time>2020-08-23T07:56:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898230" lon="0.5466610"> + <ele>1717.0</ele> + <time>2020-08-23T07:56:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897990" lon="0.5466840"> + <ele>1716.6</ele> + <time>2020-08-23T07:56:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897750" lon="0.5467090"> + <ele>1716.2</ele> + <time>2020-08-23T07:56:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897500" lon="0.5467340"> + <ele>1716.2</ele> + <time>2020-08-23T07:56:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897240" lon="0.5467580"> + <ele>1716.0</ele> + <time>2020-08-23T07:56:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897010" lon="0.5467820"> + <ele>1716.0</ele> + <time>2020-08-23T07:56:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896770" lon="0.5468070"> + <ele>1715.8</ele> + <time>2020-08-23T07:56:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896560" lon="0.5468320"> + <ele>1715.8</ele> + <time>2020-08-23T07:56:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896360" lon="0.5468590"> + <ele>1715.8</ele> + <time>2020-08-23T07:56:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896160" lon="0.5468850"> + <ele>1715.8</ele> + <time>2020-08-23T07:56:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895970" lon="0.5469120"> + <ele>1715.8</ele> + <time>2020-08-23T07:56:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895740" lon="0.5469380"> + <ele>1715.8</ele> + <time>2020-08-23T07:56:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895520" lon="0.5469670"> + <ele>1715.8</ele> + <time>2020-08-23T07:56:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895310" lon="0.5469950"> + <ele>1716.0</ele> + <time>2020-08-23T07:56:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895080" lon="0.5470190"> + <ele>1716.0</ele> + <time>2020-08-23T07:56:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894860" lon="0.5470430"> + <ele>1716.0</ele> + <time>2020-08-23T07:56:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894680" lon="0.5470660"> + <ele>1716.2</ele> + <time>2020-08-23T07:56:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894530" lon="0.5470910"> + <ele>1716.2</ele> + <time>2020-08-23T07:56:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894410" lon="0.5471090"> + <ele>1716.4</ele> + <time>2020-08-23T07:56:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894300" lon="0.5471200"> + <ele>1716.4</ele> + <time>2020-08-23T07:56:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894180" lon="0.5471330"> + <ele>1716.6</ele> + <time>2020-08-23T07:56:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894060" lon="0.5471470"> + <ele>1716.8</ele> + <time>2020-08-23T07:56:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893940" lon="0.5471600"> + <ele>1717.0</ele> + <time>2020-08-23T07:56:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893800" lon="0.5471710"> + <ele>1717.0</ele> + <time>2020-08-23T07:56:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893650" lon="0.5471830"> + <ele>1717.2</ele> + <time>2020-08-23T07:57:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893480" lon="0.5471970"> + <ele>1717.6</ele> + <time>2020-08-23T07:57:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893300" lon="0.5472130"> + <ele>1718.4</ele> + <time>2020-08-23T07:57:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893130" lon="0.5472280"> + <ele>1718.6</ele> + <time>2020-08-23T07:57:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892970" lon="0.5472450"> + <ele>1719.0</ele> + <time>2020-08-23T07:57:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892800" lon="0.5472620"> + <ele>1719.2</ele> + <time>2020-08-23T07:57:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892640" lon="0.5472780"> + <ele>1719.4</ele> + <time>2020-08-23T07:57:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892490" lon="0.5472960"> + <ele>1719.4</ele> + <time>2020-08-23T07:57:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892340" lon="0.5473130"> + <ele>1719.6</ele> + <time>2020-08-23T07:57:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892190" lon="0.5473300"> + <ele>1719.6</ele> + <time>2020-08-23T07:57:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892030" lon="0.5473460"> + <ele>1719.6</ele> + <time>2020-08-23T07:57:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891900" lon="0.5473630"> + <ele>1719.8</ele> + <time>2020-08-23T07:57:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891780" lon="0.5473780"> + <ele>1719.8</ele> + <time>2020-08-23T07:57:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891660" lon="0.5473930"> + <ele>1719.8</ele> + <time>2020-08-23T07:57:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891530" lon="0.5474080"> + <ele>1720.0</ele> + <time>2020-08-23T07:57:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891400" lon="0.5474250"> + <ele>1720.2</ele> + <time>2020-08-23T07:57:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891260" lon="0.5474430"> + <ele>1720.4</ele> + <time>2020-08-23T07:57:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891130" lon="0.5474620"> + <ele>1720.4</ele> + <time>2020-08-23T07:57:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891010" lon="0.5474810"> + <ele>1720.6</ele> + <time>2020-08-23T07:57:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890920" lon="0.5475020"> + <ele>1720.8</ele> + <time>2020-08-23T07:57:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890840" lon="0.5475200"> + <ele>1720.8</ele> + <time>2020-08-23T07:57:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890800" lon="0.5475380"> + <ele>1721.0</ele> + <time>2020-08-23T07:57:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890720" lon="0.5475610"> + <ele>1721.2</ele> + <time>2020-08-23T07:57:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890640" lon="0.5475910"> + <ele>1721.4</ele> + <time>2020-08-23T07:57:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890540" lon="0.5476250"> + <ele>1721.4</ele> + <time>2020-08-23T07:57:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890430" lon="0.5476580"> + <ele>1721.6</ele> + <time>2020-08-23T07:57:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890300" lon="0.5476860"> + <ele>1721.6</ele> + <time>2020-08-23T07:57:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890120" lon="0.5477020"> + <ele>1721.6</ele> + <time>2020-08-23T07:57:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889930" lon="0.5477150"> + <ele>1721.6</ele> + <time>2020-08-23T07:57:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889750" lon="0.5477340"> + <ele>1721.6</ele> + <time>2020-08-23T07:57:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889670" lon="0.5477620"> + <ele>1721.6</ele> + <time>2020-08-23T07:57:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889620" lon="0.5477910"> + <ele>1721.6</ele> + <time>2020-08-23T07:57:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889590" lon="0.5478250"> + <ele>1721.6</ele> + <time>2020-08-23T07:57:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889570" lon="0.5478580"> + <ele>1721.6</ele> + <time>2020-08-23T07:57:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889500" lon="0.5478920"> + <ele>1721.6</ele> + <time>2020-08-23T07:57:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889420" lon="0.5479240"> + <ele>1721.2</ele> + <time>2020-08-23T07:57:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889330" lon="0.5479550"> + <ele>1720.8</ele> + <time>2020-08-23T07:57:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889180" lon="0.5479890"> + <ele>1720.6</ele> + <time>2020-08-23T07:57:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5888930" lon="0.5480230"> + <ele>1720.6</ele> + <time>2020-08-23T07:57:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5888650" lon="0.5480610"> + <ele>1720.2</ele> + <time>2020-08-23T07:57:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5888380" lon="0.5481010"> + <ele>1720.2</ele> + <time>2020-08-23T07:57:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5888130" lon="0.5481420"> + <ele>1720.0</ele> + <time>2020-08-23T07:57:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887920" lon="0.5481810"> + <ele>1720.0</ele> + <time>2020-08-23T07:57:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887740" lon="0.5482150"> + <ele>1720.0</ele> + <time>2020-08-23T07:57:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887570" lon="0.5482440"> + <ele>1720.0</ele> + <time>2020-08-23T07:57:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887390" lon="0.5482730"> + <ele>1719.8</ele> + <time>2020-08-23T07:57:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887220" lon="0.5483020"> + <ele>1719.4</ele> + <time>2020-08-23T07:57:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886980" lon="0.5483240"> + <ele>1719.2</ele> + <time>2020-08-23T07:57:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886690" lon="0.5483520"> + <ele>1719.4</ele> + <time>2020-08-23T07:57:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886420" lon="0.5483870"> + <ele>1719.2</ele> + <time>2020-08-23T07:57:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886180" lon="0.5484230"> + <ele>1719.2</ele> + <time>2020-08-23T07:57:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885890" lon="0.5484640"> + <ele>1719.2</ele> + <time>2020-08-23T07:57:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885560" lon="0.5485080"> + <ele>1719.0</ele> + <time>2020-08-23T07:57:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885200" lon="0.5485570"> + <ele>1718.8</ele> + <time>2020-08-23T07:57:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884760" lon="0.5486150"> + <ele>1718.8</ele> + <time>2020-08-23T07:57:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884270" lon="0.5486770"> + <ele>1718.8</ele> + <time>2020-08-23T07:57:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883810" lon="0.5487410"> + <ele>1718.6</ele> + <time>2020-08-23T07:57:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883380" lon="0.5488040"> + <ele>1718.6</ele> + <time>2020-08-23T07:57:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883040" lon="0.5488590"> + <ele>1718.6</ele> + <time>2020-08-23T07:57:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882720" lon="0.5489040"> + <ele>1718.6</ele> + <time>2020-08-23T07:57:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882430" lon="0.5489410"> + <ele>1718.2</ele> + <time>2020-08-23T07:58:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882130" lon="0.5489720"> + <ele>1717.6</ele> + <time>2020-08-23T07:58:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881840" lon="0.5489970"> + <ele>1717.2</ele> + <time>2020-08-23T07:58:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881570" lon="0.5490260"> + <ele>1717.2</ele> + <time>2020-08-23T07:58:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881360" lon="0.5490550"> + <ele>1717.0</ele> + <time>2020-08-23T07:58:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881180" lon="0.5490850"> + <ele>1717.0</ele> + <time>2020-08-23T07:58:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881000" lon="0.5491150"> + <ele>1717.0</ele> + <time>2020-08-23T07:58:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880830" lon="0.5491440"> + <ele>1717.0</ele> + <time>2020-08-23T07:58:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880690" lon="0.5491690"> + <ele>1717.0</ele> + <time>2020-08-23T07:58:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880550" lon="0.5491940"> + <ele>1717.0</ele> + <time>2020-08-23T07:58:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880410" lon="0.5492190"> + <ele>1717.0</ele> + <time>2020-08-23T07:58:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880260" lon="0.5492430"> + <ele>1717.2</ele> + <time>2020-08-23T07:58:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880120" lon="0.5492700"> + <ele>1717.4</ele> + <time>2020-08-23T07:58:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879990" lon="0.5493010"> + <ele>1717.6</ele> + <time>2020-08-23T07:58:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879860" lon="0.5493310"> + <ele>1717.8</ele> + <time>2020-08-23T07:58:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879730" lon="0.5493590"> + <ele>1718.2</ele> + <time>2020-08-23T07:58:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879560" lon="0.5493850"> + <ele>1718.6</ele> + <time>2020-08-23T07:58:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879400" lon="0.5494140"> + <ele>1718.8</ele> + <time>2020-08-23T07:58:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879240" lon="0.5494490"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879090" lon="0.5494920"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878980" lon="0.5495400"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878900" lon="0.5495920"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878850" lon="0.5496440"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878820" lon="0.5496940"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878790" lon="0.5497380"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878760" lon="0.5497760"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878730" lon="0.5498090"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878710" lon="0.5498390"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878700" lon="0.5498680"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878670" lon="0.5498970"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878660" lon="0.5499250"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878670" lon="0.5499510"> + <ele>1719.0</ele> + <time>2020-08-23T07:58:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878680" lon="0.5499760"> + <ele>1719.2</ele> + <time>2020-08-23T07:58:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878670" lon="0.5500000"> + <ele>1719.2</ele> + <time>2020-08-23T07:58:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878650" lon="0.5500260"> + <ele>1719.2</ele> + <time>2020-08-23T07:58:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878640" lon="0.5500490"> + <ele>1719.2</ele> + <time>2020-08-23T07:58:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878630" lon="0.5500720"> + <ele>1719.2</ele> + <time>2020-08-23T07:58:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878600" lon="0.5500960"> + <ele>1719.4</ele> + <time>2020-08-23T07:58:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878590" lon="0.5501230"> + <ele>1719.6</ele> + <time>2020-08-23T07:58:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878580" lon="0.5501500"> + <ele>1719.8</ele> + <time>2020-08-23T07:58:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878580" lon="0.5501760"> + <ele>1720.2</ele> + <time>2020-08-23T07:58:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878590" lon="0.5502030"> + <ele>1720.4</ele> + <time>2020-08-23T07:58:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878600" lon="0.5502300"> + <ele>1720.6</ele> + <time>2020-08-23T07:58:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878570" lon="0.5502560"> + <ele>1721.2</ele> + <time>2020-08-23T07:58:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878530" lon="0.5502810"> + <ele>1721.4</ele> + <time>2020-08-23T07:58:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878510" lon="0.5503070"> + <ele>1721.4</ele> + <time>2020-08-23T07:58:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878490" lon="0.5503310"> + <ele>1721.6</ele> + <time>2020-08-23T07:58:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878410" lon="0.5503510"> + <ele>1721.8</ele> + <time>2020-08-23T07:58:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878300" lon="0.5503670"> + <ele>1722.0</ele> + <time>2020-08-23T07:58:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878190" lon="0.5503750"> + <ele>1722.0</ele> + <time>2020-08-23T07:58:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878030" lon="0.5503860"> + <ele>1722.2</ele> + <time>2020-08-23T07:58:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877870" lon="0.5504020"> + <ele>1722.2</ele> + <time>2020-08-23T07:58:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877770" lon="0.5504270"> + <ele>1722.4</ele> + <time>2020-08-23T07:58:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877650" lon="0.5504630"> + <ele>1722.4</ele> + <time>2020-08-23T07:58:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877530" lon="0.5505080"> + <ele>1722.4</ele> + <time>2020-08-23T07:58:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877420" lon="0.5505540"> + <ele>1722.6</ele> + <time>2020-08-23T07:58:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877310" lon="0.5505930"> + <ele>1722.6</ele> + <time>2020-08-23T07:58:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877120" lon="0.5506230"> + <ele>1722.6</ele> + <time>2020-08-23T07:58:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876930" lon="0.5506510"> + <ele>1722.6</ele> + <time>2020-08-23T07:58:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876780" lon="0.5506780"> + <ele>1722.6</ele> + <time>2020-08-23T07:58:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876670" lon="0.5507070"> + <ele>1722.6</ele> + <time>2020-08-23T07:59:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876610" lon="0.5507330"> + <ele>1722.6</ele> + <time>2020-08-23T07:59:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876560" lon="0.5507560"> + <ele>1722.6</ele> + <time>2020-08-23T07:59:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876530" lon="0.5507810"> + <ele>1722.6</ele> + <time>2020-08-23T07:59:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876520" lon="0.5508060"> + <ele>1722.6</ele> + <time>2020-08-23T07:59:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876550" lon="0.5508300"> + <ele>1722.6</ele> + <time>2020-08-23T07:59:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876590" lon="0.5508590"> + <ele>1722.6</ele> + <time>2020-08-23T07:59:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876640" lon="0.5508860"> + <ele>1722.6</ele> + <time>2020-08-23T07:59:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876700" lon="0.5509080"> + <ele>1722.6</ele> + <time>2020-08-23T07:59:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876780" lon="0.5509310"> + <ele>1722.6</ele> + <time>2020-08-23T07:59:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876840" lon="0.5509560"> + <ele>1722.6</ele> + <time>2020-08-23T07:59:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876850" lon="0.5509790"> + <ele>1722.8</ele> + <time>2020-08-23T07:59:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876870" lon="0.5510040"> + <ele>1723.0</ele> + <time>2020-08-23T07:59:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876890" lon="0.5510290"> + <ele>1723.0</ele> + <time>2020-08-23T07:59:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876920" lon="0.5510560"> + <ele>1723.2</ele> + <time>2020-08-23T07:59:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877010" lon="0.5510800"> + <ele>1723.4</ele> + <time>2020-08-23T07:59:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877130" lon="0.5510980"> + <ele>1724.2</ele> + <time>2020-08-23T07:59:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877230" lon="0.5511150"> + <ele>1724.6</ele> + <time>2020-08-23T07:59:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877300" lon="0.5511380"> + <ele>1724.8</ele> + <time>2020-08-23T07:59:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877350" lon="0.5511600"> + <ele>1725.0</ele> + <time>2020-08-23T07:59:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877380" lon="0.5511770"> + <ele>1725.2</ele> + <time>2020-08-23T07:59:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877380" lon="0.5511860"> + <ele>1725.4</ele> + <time>2020-08-23T07:59:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877400" lon="0.5511920"> + <ele>1725.6</ele> + <time>2020-08-23T07:59:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878600" lon="0.5514120"> + <ele>1730.4</ele> + <time>2020-08-23T07:59:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878660" lon="0.5514290"> + <ele>1730.6</ele> + <time>2020-08-23T07:59:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878720" lon="0.5514490"> + <ele>1730.8</ele> + <time>2020-08-23T07:59:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878790" lon="0.5514670"> + <ele>1730.8</ele> + <time>2020-08-23T07:59:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878830" lon="0.5514850"> + <ele>1731.0</ele> + <time>2020-08-23T07:59:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878890" lon="0.5515020"> + <ele>1731.2</ele> + <time>2020-08-23T07:59:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878950" lon="0.5515170"> + <ele>1731.4</ele> + <time>2020-08-23T07:59:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879000" lon="0.5515310"> + <ele>1731.6</ele> + <time>2020-08-23T07:59:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879060" lon="0.5515450"> + <ele>1731.6</ele> + <time>2020-08-23T07:59:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879140" lon="0.5515580"> + <ele>1731.8</ele> + <time>2020-08-23T07:59:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879230" lon="0.5515710"> + <ele>1731.8</ele> + <time>2020-08-23T07:59:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879300" lon="0.5515840"> + <ele>1731.8</ele> + <time>2020-08-23T07:59:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879370" lon="0.5515970"> + <ele>1731.8</ele> + <time>2020-08-23T07:59:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879450" lon="0.5516110"> + <ele>1732.0</ele> + <time>2020-08-23T07:59:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879520" lon="0.5516260"> + <ele>1732.2</ele> + <time>2020-08-23T07:59:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879590" lon="0.5516420"> + <ele>1732.4</ele> + <time>2020-08-23T07:59:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879670" lon="0.5516600"> + <ele>1732.4</ele> + <time>2020-08-23T07:59:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879730" lon="0.5516770"> + <ele>1732.6</ele> + <time>2020-08-23T08:00:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879800" lon="0.5516930"> + <ele>1732.6</ele> + <time>2020-08-23T08:00:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879870" lon="0.5517100"> + <ele>1732.8</ele> + <time>2020-08-23T08:00:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879930" lon="0.5517290"> + <ele>1732.8</ele> + <time>2020-08-23T08:00:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879960" lon="0.5517480"> + <ele>1732.8</ele> + <time>2020-08-23T08:00:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879970" lon="0.5517660"> + <ele>1732.8</ele> + <time>2020-08-23T08:00:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879940" lon="0.5517820"> + <ele>1733.0</ele> + <time>2020-08-23T08:00:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879890" lon="0.5517970"> + <ele>1733.0</ele> + <time>2020-08-23T08:00:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879840" lon="0.5518140"> + <ele>1733.2</ele> + <time>2020-08-23T08:00:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879820" lon="0.5518310"> + <ele>1733.2</ele> + <time>2020-08-23T08:00:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879810" lon="0.5518470"> + <ele>1733.4</ele> + <time>2020-08-23T08:00:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879800" lon="0.5518610"> + <ele>1733.4</ele> + <time>2020-08-23T08:00:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879820" lon="0.5518750"> + <ele>1733.6</ele> + <time>2020-08-23T08:00:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879860" lon="0.5518940"> + <ele>1733.6</ele> + <time>2020-08-23T08:00:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879890" lon="0.5519120"> + <ele>1733.8</ele> + <time>2020-08-23T08:00:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879890" lon="0.5519320"> + <ele>1733.8</ele> + <time>2020-08-23T08:00:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879870" lon="0.5519560"> + <ele>1734.2</ele> + <time>2020-08-23T08:00:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879860" lon="0.5519860"> + <ele>1734.2</ele> + <time>2020-08-23T08:00:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879880" lon="0.5520130"> + <ele>1734.4</ele> + <time>2020-08-23T08:00:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879900" lon="0.5520290"> + <ele>1734.6</ele> + <time>2020-08-23T08:00:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879900" lon="0.5520410"> + <ele>1734.6</ele> + <time>2020-08-23T08:00:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879930" lon="0.5520620"> + <ele>1734.6</ele> + <time>2020-08-23T08:00:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879960" lon="0.5520870"> + <ele>1734.6</ele> + <time>2020-08-23T08:00:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879960" lon="0.5521190"> + <ele>1734.6</ele> + <time>2020-08-23T08:00:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879970" lon="0.5521580"> + <ele>1734.6</ele> + <time>2020-08-23T08:00:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879980" lon="0.5521930"> + <ele>1734.6</ele> + <time>2020-08-23T08:00:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879970" lon="0.5522240"> + <ele>1734.6</ele> + <time>2020-08-23T08:00:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879950" lon="0.5522490"> + <ele>1734.6</ele> + <time>2020-08-23T08:00:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879890" lon="0.5522680"> + <ele>1734.4</ele> + <time>2020-08-23T08:00:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879790" lon="0.5522840"> + <ele>1734.2</ele> + <time>2020-08-23T08:00:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879680" lon="0.5523000"> + <ele>1734.0</ele> + <time>2020-08-23T08:00:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879550" lon="0.5523160"> + <ele>1733.8</ele> + <time>2020-08-23T08:00:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879440" lon="0.5523270"> + <ele>1734.0</ele> + <time>2020-08-23T08:00:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879350" lon="0.5523350"> + <ele>1733.6</ele> + <time>2020-08-23T08:00:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879250" lon="0.5523410"> + <ele>1733.6</ele> + <time>2020-08-23T08:00:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879160" lon="0.5523580"> + <ele>1733.8</ele> + <time>2020-08-23T08:00:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879120" lon="0.5523900"> + <ele>1733.6</ele> + <time>2020-08-23T08:00:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879120" lon="0.5524440"> + <ele>1733.8</ele> + <time>2020-08-23T08:00:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879190" lon="0.5525090"> + <ele>1733.6</ele> + <time>2020-08-23T08:00:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879250" lon="0.5525710"> + <ele>1733.6</ele> + <time>2020-08-23T08:00:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879220" lon="0.5526210"> + <ele>1733.4</ele> + <time>2020-08-23T08:00:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879070" lon="0.5526560"> + <ele>1733.4</ele> + <time>2020-08-23T08:00:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878880" lon="0.5526810"> + <ele>1733.2</ele> + <time>2020-08-23T08:00:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878690" lon="0.5527100"> + <ele>1733.2</ele> + <time>2020-08-23T08:00:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878460" lon="0.5527540"> + <ele>1733.2</ele> + <time>2020-08-23T08:00:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878230" lon="0.5528090"> + <ele>1732.8</ele> + <time>2020-08-23T08:00:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878030" lon="0.5528640"> + <ele>1732.2</ele> + <time>2020-08-23T08:00:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877850" lon="0.5529100"> + <ele>1731.8</ele> + <time>2020-08-23T08:00:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877720" lon="0.5529500"> + <ele>1731.6</ele> + <time>2020-08-23T08:00:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877640" lon="0.5529840"> + <ele>1731.4</ele> + <time>2020-08-23T08:00:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877580" lon="0.5530150"> + <ele>1731.4</ele> + <time>2020-08-23T08:00:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877540" lon="0.5530440"> + <ele>1731.2</ele> + <time>2020-08-23T08:00:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877480" lon="0.5530690"> + <ele>1731.2</ele> + <time>2020-08-23T08:00:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877400" lon="0.5530940"> + <ele>1731.2</ele> + <time>2020-08-23T08:00:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877320" lon="0.5531170"> + <ele>1731.2</ele> + <time>2020-08-23T08:00:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877230" lon="0.5531390"> + <ele>1731.2</ele> + <time>2020-08-23T08:00:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877100" lon="0.5531590"> + <ele>1731.0</ele> + <time>2020-08-23T08:00:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876960" lon="0.5531760"> + <ele>1731.2</ele> + <time>2020-08-23T08:00:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876840" lon="0.5531880"> + <ele>1731.2</ele> + <time>2020-08-23T08:00:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876740" lon="0.5532060"> + <ele>1731.4</ele> + <time>2020-08-23T08:00:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876620" lon="0.5532190"> + <ele>1731.6</ele> + <time>2020-08-23T08:01:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876500" lon="0.5532320"> + <ele>1732.0</ele> + <time>2020-08-23T08:01:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876380" lon="0.5532480"> + <ele>1732.4</ele> + <time>2020-08-23T08:01:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876250" lon="0.5532620"> + <ele>1732.4</ele> + <time>2020-08-23T08:01:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876120" lon="0.5532770"> + <ele>1733.0</ele> + <time>2020-08-23T08:01:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875980" lon="0.5532900"> + <ele>1733.4</ele> + <time>2020-08-23T08:01:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875830" lon="0.5532990"> + <ele>1733.6</ele> + <time>2020-08-23T08:01:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875710" lon="0.5533110"> + <ele>1734.0</ele> + <time>2020-08-23T08:01:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875600" lon="0.5533270"> + <ele>1734.4</ele> + <time>2020-08-23T08:01:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875500" lon="0.5533410"> + <ele>1734.6</ele> + <time>2020-08-23T08:01:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875410" lon="0.5533490"> + <ele>1734.8</ele> + <time>2020-08-23T08:01:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875400" lon="0.5533520"> + <ele>1735.0</ele> + <time>2020-08-23T08:01:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875370" lon="0.5533550"> + <ele>1735.2</ele> + <time>2020-08-23T08:01:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874780" lon="0.5534130"> + <ele>1737.0</ele> + <time>2020-08-23T08:01:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874620" lon="0.5534340"> + <ele>1737.2</ele> + <time>2020-08-23T08:01:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874430" lon="0.5534540"> + <ele>1737.2</ele> + <time>2020-08-23T08:01:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874230" lon="0.5534770"> + <ele>1737.4</ele> + <time>2020-08-23T08:01:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874020" lon="0.5535020"> + <ele>1737.4</ele> + <time>2020-08-23T08:01:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873820" lon="0.5535270"> + <ele>1737.4</ele> + <time>2020-08-23T08:01:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873650" lon="0.5535550"> + <ele>1737.4</ele> + <time>2020-08-23T08:01:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873470" lon="0.5535880"> + <ele>1737.4</ele> + <time>2020-08-23T08:01:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873290" lon="0.5536280"> + <ele>1737.4</ele> + <time>2020-08-23T08:01:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873140" lon="0.5536670"> + <ele>1737.4</ele> + <time>2020-08-23T08:01:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873050" lon="0.5536980"> + <ele>1737.2</ele> + <time>2020-08-23T08:01:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872980" lon="0.5537230"> + <ele>1737.0</ele> + <time>2020-08-23T08:01:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872920" lon="0.5537460"> + <ele>1737.0</ele> + <time>2020-08-23T08:01:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872880" lon="0.5537670"> + <ele>1737.0</ele> + <time>2020-08-23T08:01:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872860" lon="0.5537880"> + <ele>1737.0</ele> + <time>2020-08-23T08:01:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872810" lon="0.5538050"> + <ele>1737.0</ele> + <time>2020-08-23T08:01:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872790" lon="0.5538190"> + <ele>1737.0</ele> + <time>2020-08-23T08:01:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872800" lon="0.5538340"> + <ele>1737.0</ele> + <time>2020-08-23T08:01:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872810" lon="0.5538520"> + <ele>1737.0</ele> + <time>2020-08-23T08:01:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872830" lon="0.5538700"> + <ele>1737.0</ele> + <time>2020-08-23T08:01:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872830" lon="0.5538910"> + <ele>1737.0</ele> + <time>2020-08-23T08:01:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872830" lon="0.5539130"> + <ele>1737.2</ele> + <time>2020-08-23T08:01:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872830" lon="0.5539330"> + <ele>1737.4</ele> + <time>2020-08-23T08:01:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872830" lon="0.5539520"> + <ele>1737.8</ele> + <time>2020-08-23T08:01:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872810" lon="0.5539710"> + <ele>1737.8</ele> + <time>2020-08-23T08:01:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872790" lon="0.5539890"> + <ele>1738.0</ele> + <time>2020-08-23T08:01:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872780" lon="0.5540080"> + <ele>1738.2</ele> + <time>2020-08-23T08:01:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872770" lon="0.5540270"> + <ele>1738.6</ele> + <time>2020-08-23T08:01:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872760" lon="0.5540440"> + <ele>1738.8</ele> + <time>2020-08-23T08:01:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872740" lon="0.5540610"> + <ele>1739.0</ele> + <time>2020-08-23T08:01:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872700" lon="0.5540780"> + <ele>1739.2</ele> + <time>2020-08-23T08:01:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872660" lon="0.5540960"> + <ele>1739.2</ele> + <time>2020-08-23T08:01:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872620" lon="0.5541140"> + <ele>1739.4</ele> + <time>2020-08-23T08:01:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872550" lon="0.5541300"> + <ele>1739.8</ele> + <time>2020-08-23T08:01:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872470" lon="0.5541470"> + <ele>1740.0</ele> + <time>2020-08-23T08:01:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872400" lon="0.5541650"> + <ele>1740.0</ele> + <time>2020-08-23T08:01:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872330" lon="0.5541800"> + <ele>1740.2</ele> + <time>2020-08-23T08:01:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872270" lon="0.5541970"> + <ele>1740.4</ele> + <time>2020-08-23T08:01:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872230" lon="0.5542150"> + <ele>1740.4</ele> + <time>2020-08-23T08:01:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872160" lon="0.5542310"> + <ele>1740.6</ele> + <time>2020-08-23T08:01:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872090" lon="0.5542460"> + <ele>1740.6</ele> + <time>2020-08-23T08:01:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872030" lon="0.5542620"> + <ele>1740.8</ele> + <time>2020-08-23T08:02:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872000" lon="0.5542780"> + <ele>1741.0</ele> + <time>2020-08-23T08:02:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872000" lon="0.5542930"> + <ele>1741.2</ele> + <time>2020-08-23T08:02:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872020" lon="0.5543090"> + <ele>1741.6</ele> + <time>2020-08-23T08:02:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872050" lon="0.5543260"> + <ele>1741.6</ele> + <time>2020-08-23T08:02:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872060" lon="0.5543410"> + <ele>1741.8</ele> + <time>2020-08-23T08:02:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872100" lon="0.5543580"> + <ele>1742.0</ele> + <time>2020-08-23T08:02:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872150" lon="0.5543760"> + <ele>1742.4</ele> + <time>2020-08-23T08:02:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872190" lon="0.5543950"> + <ele>1742.6</ele> + <time>2020-08-23T08:02:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872210" lon="0.5544170"> + <ele>1742.8</ele> + <time>2020-08-23T08:02:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872230" lon="0.5544410"> + <ele>1742.8</ele> + <time>2020-08-23T08:02:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872240" lon="0.5544650"> + <ele>1742.8</ele> + <time>2020-08-23T08:02:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872240" lon="0.5544850"> + <ele>1743.0</ele> + <time>2020-08-23T08:02:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872220" lon="0.5545060"> + <ele>1743.0</ele> + <time>2020-08-23T08:02:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872110" lon="0.5545320"> + <ele>1743.0</ele> + <time>2020-08-23T08:02:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871920" lon="0.5545560"> + <ele>1743.0</ele> + <time>2020-08-23T08:02:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871660" lon="0.5545820"> + <ele>1743.2</ele> + <time>2020-08-23T08:02:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871380" lon="0.5546080"> + <ele>1743.2</ele> + <time>2020-08-23T08:02:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871110" lon="0.5546310"> + <ele>1743.2</ele> + <time>2020-08-23T08:02:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870860" lon="0.5546580"> + <ele>1743.2</ele> + <time>2020-08-23T08:02:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870620" lon="0.5546990"> + <ele>1743.2</ele> + <time>2020-08-23T08:02:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870320" lon="0.5547460"> + <ele>1743.2</ele> + <time>2020-08-23T08:02:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870000" lon="0.5548010"> + <ele>1743.0</ele> + <time>2020-08-23T08:02:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869710" lon="0.5548590"> + <ele>1742.6</ele> + <time>2020-08-23T08:02:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869480" lon="0.5549140"> + <ele>1742.2</ele> + <time>2020-08-23T08:02:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869320" lon="0.5549560"> + <ele>1741.6</ele> + <time>2020-08-23T08:02:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869230" lon="0.5549820"> + <ele>1741.0</ele> + <time>2020-08-23T08:02:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869180" lon="0.5550050"> + <ele>1740.4</ele> + <time>2020-08-23T08:02:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869130" lon="0.5550320"> + <ele>1739.8</ele> + <time>2020-08-23T08:02:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869040" lon="0.5550590"> + <ele>1739.4</ele> + <time>2020-08-23T08:02:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868960" lon="0.5550860"> + <ele>1739.2</ele> + <time>2020-08-23T08:02:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868900" lon="0.5551140"> + <ele>1739.4</ele> + <time>2020-08-23T08:02:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868830" lon="0.5551410"> + <ele>1739.2</ele> + <time>2020-08-23T08:02:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868760" lon="0.5551680"> + <ele>1739.2</ele> + <time>2020-08-23T08:02:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868700" lon="0.5551980"> + <ele>1739.2</ele> + <time>2020-08-23T08:02:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868610" lon="0.5552260"> + <ele>1739.2</ele> + <time>2020-08-23T08:02:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868510" lon="0.5552540"> + <ele>1739.2</ele> + <time>2020-08-23T08:02:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868410" lon="0.5552830"> + <ele>1739.4</ele> + <time>2020-08-23T08:02:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868330" lon="0.5553090"> + <ele>1739.6</ele> + <time>2020-08-23T08:02:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868240" lon="0.5553340"> + <ele>1739.6</ele> + <time>2020-08-23T08:02:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868100" lon="0.5553620"> + <ele>1739.8</ele> + <time>2020-08-23T08:02:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867920" lon="0.5553940"> + <ele>1739.8</ele> + <time>2020-08-23T08:02:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867660" lon="0.5554260"> + <ele>1739.8</ele> + <time>2020-08-23T08:02:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867320" lon="0.5554630"> + <ele>1739.8</ele> + <time>2020-08-23T08:02:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866970" lon="0.5555110"> + <ele>1739.8</ele> + <time>2020-08-23T08:02:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866670" lon="0.5555670"> + <ele>1739.8</ele> + <time>2020-08-23T08:02:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866480" lon="0.5556260"> + <ele>1739.8</ele> + <time>2020-08-23T08:02:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866360" lon="0.5556730"> + <ele>1739.8</ele> + <time>2020-08-23T08:02:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866310" lon="0.5557110"> + <ele>1739.8</ele> + <time>2020-08-23T08:02:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866260" lon="0.5557430"> + <ele>1739.8</ele> + <time>2020-08-23T08:02:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866240" lon="0.5557710"> + <ele>1739.6</ele> + <time>2020-08-23T08:02:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866210" lon="0.5557980"> + <ele>1739.4</ele> + <time>2020-08-23T08:02:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866160" lon="0.5558250"> + <ele>1739.4</ele> + <time>2020-08-23T08:02:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866160" lon="0.5558490"> + <ele>1739.4</ele> + <time>2020-08-23T08:02:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866160" lon="0.5558740"> + <ele>1739.2</ele> + <time>2020-08-23T08:02:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866120" lon="0.5558990"> + <ele>1739.2</ele> + <time>2020-08-23T08:02:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866100" lon="0.5559250"> + <ele>1739.2</ele> + <time>2020-08-23T08:02:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866110" lon="0.5559500"> + <ele>1739.2</ele> + <time>2020-08-23T08:02:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866090" lon="0.5559750"> + <ele>1739.2</ele> + <time>2020-08-23T08:02:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866070" lon="0.5560010"> + <ele>1739.2</ele> + <time>2020-08-23T08:02:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866050" lon="0.5560260"> + <ele>1739.4</ele> + <time>2020-08-23T08:03:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866030" lon="0.5560500"> + <ele>1739.6</ele> + <time>2020-08-23T08:03:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866000" lon="0.5560750"> + <ele>1739.8</ele> + <time>2020-08-23T08:03:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865990" lon="0.5561000"> + <ele>1740.0</ele> + <time>2020-08-23T08:03:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865950" lon="0.5561230"> + <ele>1740.0</ele> + <time>2020-08-23T08:03:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865890" lon="0.5561430"> + <ele>1740.2</ele> + <time>2020-08-23T08:03:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865810" lon="0.5561650"> + <ele>1740.2</ele> + <time>2020-08-23T08:03:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865730" lon="0.5561830"> + <ele>1740.4</ele> + <time>2020-08-23T08:03:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865650" lon="0.5562030"> + <ele>1740.6</ele> + <time>2020-08-23T08:03:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865570" lon="0.5562250"> + <ele>1740.8</ele> + <time>2020-08-23T08:03:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865490" lon="0.5562460"> + <ele>1741.0</ele> + <time>2020-08-23T08:03:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865420" lon="0.5562660"> + <ele>1741.2</ele> + <time>2020-08-23T08:03:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865350" lon="0.5562850"> + <ele>1741.2</ele> + <time>2020-08-23T08:03:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865300" lon="0.5563070"> + <ele>1741.4</ele> + <time>2020-08-23T08:03:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865280" lon="0.5563320"> + <ele>1741.6</ele> + <time>2020-08-23T08:03:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865290" lon="0.5563590"> + <ele>1741.8</ele> + <time>2020-08-23T08:03:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865350" lon="0.5563810"> + <ele>1741.8</ele> + <time>2020-08-23T08:03:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865440" lon="0.5563980"> + <ele>1742.0</ele> + <time>2020-08-23T08:03:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865540" lon="0.5564150"> + <ele>1742.2</ele> + <time>2020-08-23T08:03:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865620" lon="0.5564330"> + <ele>1742.4</ele> + <time>2020-08-23T08:03:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865690" lon="0.5564490"> + <ele>1742.4</ele> + <time>2020-08-23T08:03:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865780" lon="0.5564670"> + <ele>1742.4</ele> + <time>2020-08-23T08:03:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865870" lon="0.5564840"> + <ele>1742.4</ele> + <time>2020-08-23T08:03:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865930" lon="0.5565020"> + <ele>1742.6</ele> + <time>2020-08-23T08:03:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866010" lon="0.5565210"> + <ele>1742.6</ele> + <time>2020-08-23T08:03:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866090" lon="0.5565380"> + <ele>1742.6</ele> + <time>2020-08-23T08:03:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866170" lon="0.5565570"> + <ele>1742.8</ele> + <time>2020-08-23T08:03:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866240" lon="0.5565730"> + <ele>1742.8</ele> + <time>2020-08-23T08:03:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866300" lon="0.5565900"> + <ele>1743.0</ele> + <time>2020-08-23T08:03:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866400" lon="0.5566050"> + <ele>1743.2</ele> + <time>2020-08-23T08:03:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866530" lon="0.5566140"> + <ele>1743.4</ele> + <time>2020-08-23T08:03:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866660" lon="0.5566270"> + <ele>1743.6</ele> + <time>2020-08-23T08:03:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866750" lon="0.5566420"> + <ele>1743.6</ele> + <time>2020-08-23T08:03:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866820" lon="0.5566560"> + <ele>1743.8</ele> + <time>2020-08-23T08:03:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866860" lon="0.5566660"> + <ele>1743.8</ele> + <time>2020-08-23T08:03:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866860" lon="0.5566680"> + <ele>1744.0</ele> + <time>2020-08-23T08:03:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866870" lon="0.5566730"> + <ele>1744.0</ele> + <time>2020-08-23T08:03:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866890" lon="0.5566790"> + <ele>1744.2</ele> + <time>2020-08-23T08:03:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866920" lon="0.5566840"> + <ele>1744.2</ele> + <time>2020-08-23T08:03:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866980" lon="0.5566900"> + <ele>1744.4</ele> + <time>2020-08-23T08:03:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867010" lon="0.5566950"> + <ele>1744.4</ele> + <time>2020-08-23T08:03:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867050" lon="0.5566980"> + <ele>1744.6</ele> + <time>2020-08-23T08:03:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867080" lon="0.5567020"> + <ele>1744.8</ele> + <time>2020-08-23T08:03:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867110" lon="0.5567090"> + <ele>1745.0</ele> + <time>2020-08-23T08:03:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867130" lon="0.5567160"> + <ele>1745.4</ele> + <time>2020-08-23T08:03:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867150" lon="0.5567280"> + <ele>1745.4</ele> + <time>2020-08-23T08:03:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867190" lon="0.5567420"> + <ele>1745.6</ele> + <time>2020-08-23T08:03:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867240" lon="0.5567560"> + <ele>1745.6</ele> + <time>2020-08-23T08:03:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867260" lon="0.5567740"> + <ele>1745.8</ele> + <time>2020-08-23T08:03:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867300" lon="0.5567910"> + <ele>1746.0</ele> + <time>2020-08-23T08:03:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867350" lon="0.5568090"> + <ele>1746.2</ele> + <time>2020-08-23T08:03:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867420" lon="0.5568240"> + <ele>1746.2</ele> + <time>2020-08-23T08:03:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867500" lon="0.5568390"> + <ele>1746.4</ele> + <time>2020-08-23T08:03:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867580" lon="0.5568540"> + <ele>1746.4</ele> + <time>2020-08-23T08:03:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867690" lon="0.5568670"> + <ele>1746.4</ele> + <time>2020-08-23T08:03:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867800" lon="0.5568800"> + <ele>1746.4</ele> + <time>2020-08-23T08:03:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867880" lon="0.5568930"> + <ele>1746.6</ele> + <time>2020-08-23T08:03:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867950" lon="0.5569050"> + <ele>1746.6</ele> + <time>2020-08-23T08:03:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868040" lon="0.5569150"> + <ele>1746.6</ele> + <time>2020-08-23T08:03:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868120" lon="0.5569270"> + <ele>1746.8</ele> + <time>2020-08-23T08:03:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868190" lon="0.5569410"> + <ele>1746.8</ele> + <time>2020-08-23T08:04:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868250" lon="0.5569570"> + <ele>1746.8</ele> + <time>2020-08-23T08:04:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868320" lon="0.5569710"> + <ele>1747.0</ele> + <time>2020-08-23T08:04:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868400" lon="0.5569860"> + <ele>1747.2</ele> + <time>2020-08-23T08:04:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868480" lon="0.5570030"> + <ele>1747.4</ele> + <time>2020-08-23T08:04:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868580" lon="0.5570190"> + <ele>1747.6</ele> + <time>2020-08-23T08:04:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868680" lon="0.5570320"> + <ele>1747.6</ele> + <time>2020-08-23T08:04:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868780" lon="0.5570430"> + <ele>1747.8</ele> + <time>2020-08-23T08:04:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868880" lon="0.5570570"> + <ele>1747.8</ele> + <time>2020-08-23T08:04:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868940" lon="0.5570730"> + <ele>1747.8</ele> + <time>2020-08-23T08:04:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869000" lon="0.5570890"> + <ele>1748.0</ele> + <time>2020-08-23T08:04:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869040" lon="0.5571050"> + <ele>1748.0</ele> + <time>2020-08-23T08:04:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869070" lon="0.5571240"> + <ele>1748.2</ele> + <time>2020-08-23T08:04:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869110" lon="0.5571420"> + <ele>1748.2</ele> + <time>2020-08-23T08:04:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869150" lon="0.5571570"> + <ele>1748.4</ele> + <time>2020-08-23T08:04:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869170" lon="0.5571750"> + <ele>1748.4</ele> + <time>2020-08-23T08:04:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869180" lon="0.5571930"> + <ele>1748.4</ele> + <time>2020-08-23T08:04:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869190" lon="0.5572100"> + <ele>1748.6</ele> + <time>2020-08-23T08:04:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869210" lon="0.5572280"> + <ele>1748.8</ele> + <time>2020-08-23T08:04:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869200" lon="0.5572450"> + <ele>1748.8</ele> + <time>2020-08-23T08:04:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869220" lon="0.5572630"> + <ele>1749.0</ele> + <time>2020-08-23T08:04:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869240" lon="0.5572790"> + <ele>1749.2</ele> + <time>2020-08-23T08:04:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869290" lon="0.5572950"> + <ele>1749.4</ele> + <time>2020-08-23T08:04:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869360" lon="0.5573130"> + <ele>1749.6</ele> + <time>2020-08-23T08:04:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869410" lon="0.5573290"> + <ele>1749.8</ele> + <time>2020-08-23T08:04:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869440" lon="0.5573440"> + <ele>1750.0</ele> + <time>2020-08-23T08:04:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869490" lon="0.5573600"> + <ele>1750.2</ele> + <time>2020-08-23T08:04:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869530" lon="0.5573770"> + <ele>1750.6</ele> + <time>2020-08-23T08:04:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869550" lon="0.5573930"> + <ele>1751.0</ele> + <time>2020-08-23T08:04:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869570" lon="0.5574070"> + <ele>1751.2</ele> + <time>2020-08-23T08:04:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869590" lon="0.5574240"> + <ele>1751.4</ele> + <time>2020-08-23T08:04:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869630" lon="0.5574410"> + <ele>1751.6</ele> + <time>2020-08-23T08:04:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869660" lon="0.5574570"> + <ele>1751.8</ele> + <time>2020-08-23T08:04:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869700" lon="0.5574710"> + <ele>1752.0</ele> + <time>2020-08-23T08:04:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869720" lon="0.5574850"> + <ele>1752.0</ele> + <time>2020-08-23T08:04:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869710" lon="0.5575020"> + <ele>1752.2</ele> + <time>2020-08-23T08:04:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869690" lon="0.5575210"> + <ele>1752.4</ele> + <time>2020-08-23T08:04:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869670" lon="0.5575390"> + <ele>1752.6</ele> + <time>2020-08-23T08:04:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869670" lon="0.5575580"> + <ele>1752.8</ele> + <time>2020-08-23T08:04:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869700" lon="0.5575760"> + <ele>1752.8</ele> + <time>2020-08-23T08:04:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869780" lon="0.5575920"> + <ele>1753.0</ele> + <time>2020-08-23T08:04:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869840" lon="0.5576080"> + <ele>1753.0</ele> + <time>2020-08-23T08:04:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869880" lon="0.5576230"> + <ele>1753.2</ele> + <time>2020-08-23T08:04:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869930" lon="0.5576340"> + <ele>1753.2</ele> + <time>2020-08-23T08:04:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869960" lon="0.5576440"> + <ele>1753.4</ele> + <time>2020-08-23T08:04:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870000" lon="0.5576580"> + <ele>1753.4</ele> + <time>2020-08-23T08:04:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870040" lon="0.5576730"> + <ele>1753.6</ele> + <time>2020-08-23T08:04:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870070" lon="0.5576870"> + <ele>1753.6</ele> + <time>2020-08-23T08:04:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870100" lon="0.5577020"> + <ele>1753.6</ele> + <time>2020-08-23T08:04:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870160" lon="0.5577160"> + <ele>1753.8</ele> + <time>2020-08-23T08:04:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870220" lon="0.5577320"> + <ele>1753.8</ele> + <time>2020-08-23T08:04:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870270" lon="0.5577450"> + <ele>1754.0</ele> + <time>2020-08-23T08:04:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870370" lon="0.5577580"> + <ele>1754.0</ele> + <time>2020-08-23T08:04:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870430" lon="0.5577740"> + <ele>1754.2</ele> + <time>2020-08-23T08:04:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870460" lon="0.5577900"> + <ele>1754.4</ele> + <time>2020-08-23T08:04:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870480" lon="0.5578050"> + <ele>1754.4</ele> + <time>2020-08-23T08:04:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870510" lon="0.5578210"> + <ele>1754.4</ele> + <time>2020-08-23T08:04:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870550" lon="0.5578370"> + <ele>1754.6</ele> + <time>2020-08-23T08:04:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870610" lon="0.5578530"> + <ele>1754.6</ele> + <time>2020-08-23T08:04:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870700" lon="0.5578690"> + <ele>1754.8</ele> + <time>2020-08-23T08:04:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870740" lon="0.5578850"> + <ele>1755.0</ele> + <time>2020-08-23T08:05:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870820" lon="0.5579010"> + <ele>1755.2</ele> + <time>2020-08-23T08:05:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870880" lon="0.5579180"> + <ele>1755.2</ele> + <time>2020-08-23T08:05:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870920" lon="0.5579340"> + <ele>1755.4</ele> + <time>2020-08-23T08:05:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870950" lon="0.5579510"> + <ele>1755.4</ele> + <time>2020-08-23T08:05:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870970" lon="0.5579690"> + <ele>1755.6</ele> + <time>2020-08-23T08:05:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871000" lon="0.5579860"> + <ele>1755.8</ele> + <time>2020-08-23T08:05:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871020" lon="0.5580020"> + <ele>1755.8</ele> + <time>2020-08-23T08:05:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871030" lon="0.5580190"> + <ele>1756.0</ele> + <time>2020-08-23T08:05:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871020" lon="0.5580350"> + <ele>1756.0</ele> + <time>2020-08-23T08:05:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870990" lon="0.5580460"> + <ele>1756.0</ele> + <time>2020-08-23T08:05:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870970" lon="0.5580510"> + <ele>1756.0</ele> + <time>2020-08-23T08:05:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870980" lon="0.5580580"> + <ele>1756.0</ele> + <time>2020-08-23T08:05:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871030" lon="0.5580620"> + <ele>1756.2</ele> + <time>2020-08-23T08:05:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871060" lon="0.5580620"> + <ele>1756.2</ele> + <time>2020-08-23T08:05:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871060" lon="0.5580610"> + <ele>1756.4</ele> + <time>2020-08-23T08:05:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870220" lon="0.5584090"> + <ele>1763.0</ele> + <time>2020-08-23T08:06:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870190" lon="0.5584330"> + <ele>1763.0</ele> + <time>2020-08-23T08:06:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870150" lon="0.5584650"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870070" lon="0.5584920"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869960" lon="0.5585120"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869890" lon="0.5585270"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869820" lon="0.5585430"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869690" lon="0.5585670"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869560" lon="0.5585950"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869470" lon="0.5586160"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869420" lon="0.5586310"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869410" lon="0.5586460"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869420" lon="0.5586600"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869440" lon="0.5586730"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869440" lon="0.5586820"> + <ele>1763.2</ele> + <time>2020-08-23T08:06:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869420" lon="0.5586880"> + <ele>1763.4</ele> + <time>2020-08-23T08:06:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869400" lon="0.5586960"> + <ele>1763.4</ele> + <time>2020-08-23T08:06:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869360" lon="0.5587110"> + <ele>1763.6</ele> + <time>2020-08-23T08:06:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869340" lon="0.5587270"> + <ele>1764.0</ele> + <time>2020-08-23T08:06:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869340" lon="0.5587420"> + <ele>1764.4</ele> + <time>2020-08-23T08:06:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869350" lon="0.5587560"> + <ele>1764.6</ele> + <time>2020-08-23T08:06:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869380" lon="0.5587700"> + <ele>1764.8</ele> + <time>2020-08-23T08:06:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869400" lon="0.5587890"> + <ele>1764.8</ele> + <time>2020-08-23T08:06:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869420" lon="0.5588080"> + <ele>1765.0</ele> + <time>2020-08-23T08:06:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869430" lon="0.5588260"> + <ele>1765.0</ele> + <time>2020-08-23T08:06:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869420" lon="0.5588430"> + <ele>1765.2</ele> + <time>2020-08-23T08:06:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869400" lon="0.5588580"> + <ele>1765.4</ele> + <time>2020-08-23T08:06:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869380" lon="0.5588730"> + <ele>1765.6</ele> + <time>2020-08-23T08:06:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869340" lon="0.5588860"> + <ele>1765.6</ele> + <time>2020-08-23T08:06:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869270" lon="0.5589000"> + <ele>1765.8</ele> + <time>2020-08-23T08:06:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869180" lon="0.5589110"> + <ele>1765.8</ele> + <time>2020-08-23T08:06:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869080" lon="0.5589250"> + <ele>1765.8</ele> + <time>2020-08-23T08:06:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869000" lon="0.5589430"> + <ele>1766.0</ele> + <time>2020-08-23T08:06:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868950" lon="0.5589630"> + <ele>1766.0</ele> + <time>2020-08-23T08:06:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868920" lon="0.5589850"> + <ele>1766.0</ele> + <time>2020-08-23T08:06:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868900" lon="0.5590040"> + <ele>1766.2</ele> + <time>2020-08-23T08:06:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868880" lon="0.5590220"> + <ele>1766.2</ele> + <time>2020-08-23T08:06:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868900" lon="0.5590410"> + <ele>1766.4</ele> + <time>2020-08-23T08:06:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868930" lon="0.5590580"> + <ele>1766.4</ele> + <time>2020-08-23T08:06:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868980" lon="0.5590750"> + <ele>1766.4</ele> + <time>2020-08-23T08:06:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869030" lon="0.5590930"> + <ele>1766.4</ele> + <time>2020-08-23T08:06:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869060" lon="0.5591120"> + <ele>1766.4</ele> + <time>2020-08-23T08:06:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869110" lon="0.5591300"> + <ele>1766.6</ele> + <time>2020-08-23T08:06:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869150" lon="0.5591480"> + <ele>1766.8</ele> + <time>2020-08-23T08:06:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869190" lon="0.5591670"> + <ele>1767.0</ele> + <time>2020-08-23T08:06:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869250" lon="0.5591870"> + <ele>1767.4</ele> + <time>2020-08-23T08:06:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869310" lon="0.5592060"> + <ele>1767.6</ele> + <time>2020-08-23T08:06:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869370" lon="0.5592270"> + <ele>1767.8</ele> + <time>2020-08-23T08:06:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869430" lon="0.5592470"> + <ele>1767.8</ele> + <time>2020-08-23T08:06:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869480" lon="0.5592680"> + <ele>1768.0</ele> + <time>2020-08-23T08:06:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869490" lon="0.5592880"> + <ele>1768.0</ele> + <time>2020-08-23T08:06:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869500" lon="0.5593090"> + <ele>1768.0</ele> + <time>2020-08-23T08:06:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869520" lon="0.5593290"> + <ele>1768.0</ele> + <time>2020-08-23T08:06:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869600" lon="0.5593470"> + <ele>1768.2</ele> + <time>2020-08-23T08:06:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869670" lon="0.5593660"> + <ele>1768.2</ele> + <time>2020-08-23T08:06:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869750" lon="0.5593830"> + <ele>1768.2</ele> + <time>2020-08-23T08:07:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869820" lon="0.5594000"> + <ele>1768.2</ele> + <time>2020-08-23T08:07:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869900" lon="0.5594170"> + <ele>1768.4</ele> + <time>2020-08-23T08:07:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869950" lon="0.5594340"> + <ele>1768.4</ele> + <time>2020-08-23T08:07:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869970" lon="0.5594510"> + <ele>1768.8</ele> + <time>2020-08-23T08:07:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870000" lon="0.5594680"> + <ele>1769.2</ele> + <time>2020-08-23T08:07:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870060" lon="0.5594850"> + <ele>1769.4</ele> + <time>2020-08-23T08:07:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870100" lon="0.5595040"> + <ele>1769.6</ele> + <time>2020-08-23T08:07:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870130" lon="0.5595180"> + <ele>1769.8</ele> + <time>2020-08-23T08:07:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870170" lon="0.5595270"> + <ele>1770.0</ele> + <time>2020-08-23T08:07:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870200" lon="0.5595370"> + <ele>1770.2</ele> + <time>2020-08-23T08:07:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870220" lon="0.5595470"> + <ele>1770.4</ele> + <time>2020-08-23T08:07:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870270" lon="0.5595560"> + <ele>1770.8</ele> + <time>2020-08-23T08:07:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870280" lon="0.5595650"> + <ele>1771.0</ele> + <time>2020-08-23T08:07:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870280" lon="0.5595730"> + <ele>1771.2</ele> + <time>2020-08-23T08:07:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870320" lon="0.5595790"> + <ele>1771.6</ele> + <time>2020-08-23T08:07:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870380" lon="0.5595890"> + <ele>1771.8</ele> + <time>2020-08-23T08:07:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870460" lon="0.5595970"> + <ele>1772.2</ele> + <time>2020-08-23T08:07:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870480" lon="0.5596010"> + <ele>1772.4</ele> + <time>2020-08-23T08:07:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870540" lon="0.5596100"> + <ele>1772.4</ele> + <time>2020-08-23T08:07:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870610" lon="0.5596200"> + <ele>1772.6</ele> + <time>2020-08-23T08:07:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870660" lon="0.5596320"> + <ele>1772.8</ele> + <time>2020-08-23T08:07:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>162</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870730" lon="0.5596460"> + <ele>1772.8</ele> + <time>2020-08-23T08:07:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>162</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870830" lon="0.5596620"> + <ele>1773.0</ele> + <time>2020-08-23T08:07:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871000" lon="0.5596790"> + <ele>1773.0</ele> + <time>2020-08-23T08:07:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871190" lon="0.5596980"> + <ele>1773.0</ele> + <time>2020-08-23T08:07:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871330" lon="0.5597190"> + <ele>1773.0</ele> + <time>2020-08-23T08:07:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871470" lon="0.5597380"> + <ele>1773.0</ele> + <time>2020-08-23T08:07:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871580" lon="0.5597560"> + <ele>1773.0</ele> + <time>2020-08-23T08:07:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871700" lon="0.5597720"> + <ele>1773.0</ele> + <time>2020-08-23T08:07:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871820" lon="0.5597870"> + <ele>1773.0</ele> + <time>2020-08-23T08:07:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871940" lon="0.5598020"> + <ele>1773.0</ele> + <time>2020-08-23T08:07:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872030" lon="0.5598170"> + <ele>1773.0</ele> + <time>2020-08-23T08:07:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872060" lon="0.5598240"> + <ele>1773.2</ele> + <time>2020-08-23T08:07:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872070" lon="0.5598240"> + <ele>1773.2</ele> + <time>2020-08-23T08:07:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872350" lon="0.5598630"> + <ele>1773.4</ele> + <time>2020-08-23T08:07:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872430" lon="0.5598810"> + <ele>1773.4</ele> + <time>2020-08-23T08:07:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872490" lon="0.5598990"> + <ele>1773.4</ele> + <time>2020-08-23T08:07:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872540" lon="0.5599160"> + <ele>1773.4</ele> + <time>2020-08-23T08:07:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872600" lon="0.5599330"> + <ele>1773.4</ele> + <time>2020-08-23T08:07:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872670" lon="0.5599490"> + <ele>1773.4</ele> + <time>2020-08-23T08:07:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872740" lon="0.5599640"> + <ele>1773.4</ele> + <time>2020-08-23T08:07:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872830" lon="0.5599810"> + <ele>1773.6</ele> + <time>2020-08-23T08:07:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872910" lon="0.5599960"> + <ele>1773.6</ele> + <time>2020-08-23T08:07:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872960" lon="0.5600140"> + <ele>1773.6</ele> + <time>2020-08-23T08:07:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873010" lon="0.5600310"> + <ele>1773.6</ele> + <time>2020-08-23T08:07:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873060" lon="0.5600470"> + <ele>1773.6</ele> + <time>2020-08-23T08:07:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873100" lon="0.5600630"> + <ele>1773.8</ele> + <time>2020-08-23T08:07:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873150" lon="0.5600800"> + <ele>1773.8</ele> + <time>2020-08-23T08:07:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873220" lon="0.5600980"> + <ele>1773.8</ele> + <time>2020-08-23T08:07:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873260" lon="0.5601180"> + <ele>1774.0</ele> + <time>2020-08-23T08:07:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873310" lon="0.5601400"> + <ele>1774.2</ele> + <time>2020-08-23T08:07:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873320" lon="0.5601610"> + <ele>1774.2</ele> + <time>2020-08-23T08:07:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873330" lon="0.5601810"> + <ele>1774.4</ele> + <time>2020-08-23T08:07:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873360" lon="0.5602010"> + <ele>1774.6</ele> + <time>2020-08-23T08:08:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873410" lon="0.5602190"> + <ele>1774.8</ele> + <time>2020-08-23T08:08:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873470" lon="0.5602370"> + <ele>1775.0</ele> + <time>2020-08-23T08:08:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873520" lon="0.5602550"> + <ele>1775.0</ele> + <time>2020-08-23T08:08:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873570" lon="0.5602740"> + <ele>1775.2</ele> + <time>2020-08-23T08:08:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873650" lon="0.5602930"> + <ele>1775.2</ele> + <time>2020-08-23T08:08:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873730" lon="0.5603120"> + <ele>1775.4</ele> + <time>2020-08-23T08:08:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873810" lon="0.5603320"> + <ele>1775.4</ele> + <time>2020-08-23T08:08:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873880" lon="0.5603530"> + <ele>1775.6</ele> + <time>2020-08-23T08:08:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873980" lon="0.5603700"> + <ele>1775.6</ele> + <time>2020-08-23T08:08:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874090" lon="0.5603850"> + <ele>1775.8</ele> + <time>2020-08-23T08:08:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874190" lon="0.5604010"> + <ele>1776.6</ele> + <time>2020-08-23T08:08:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874280" lon="0.5604190"> + <ele>1776.8</ele> + <time>2020-08-23T08:08:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874350" lon="0.5604400"> + <ele>1777.0</ele> + <time>2020-08-23T08:08:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874410" lon="0.5604600"> + <ele>1777.0</ele> + <time>2020-08-23T08:08:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874470" lon="0.5604770"> + <ele>1777.4</ele> + <time>2020-08-23T08:08:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874530" lon="0.5604950"> + <ele>1777.6</ele> + <time>2020-08-23T08:08:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874580" lon="0.5605130"> + <ele>1778.0</ele> + <time>2020-08-23T08:08:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874610" lon="0.5605330"> + <ele>1778.2</ele> + <time>2020-08-23T08:08:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874640" lon="0.5605540"> + <ele>1778.4</ele> + <time>2020-08-23T08:08:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874650" lon="0.5605760"> + <ele>1778.4</ele> + <time>2020-08-23T08:08:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874640" lon="0.5605980"> + <ele>1778.4</ele> + <time>2020-08-23T08:08:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874610" lon="0.5606220"> + <ele>1778.6</ele> + <time>2020-08-23T08:08:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874630" lon="0.5606460"> + <ele>1778.8</ele> + <time>2020-08-23T08:08:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874650" lon="0.5606690"> + <ele>1778.8</ele> + <time>2020-08-23T08:08:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874670" lon="0.5606910"> + <ele>1779.0</ele> + <time>2020-08-23T08:08:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874700" lon="0.5607120"> + <ele>1779.0</ele> + <time>2020-08-23T08:08:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874720" lon="0.5607350"> + <ele>1779.0</ele> + <time>2020-08-23T08:08:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874740" lon="0.5607580"> + <ele>1779.0</ele> + <time>2020-08-23T08:08:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874750" lon="0.5607820"> + <ele>1779.0</ele> + <time>2020-08-23T08:08:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874760" lon="0.5608050"> + <ele>1779.2</ele> + <time>2020-08-23T08:08:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874780" lon="0.5608280"> + <ele>1779.2</ele> + <time>2020-08-23T08:08:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874820" lon="0.5608500"> + <ele>1779.4</ele> + <time>2020-08-23T08:08:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874850" lon="0.5608730"> + <ele>1779.4</ele> + <time>2020-08-23T08:08:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874890" lon="0.5608920"> + <ele>1779.6</ele> + <time>2020-08-23T08:08:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874930" lon="0.5609080"> + <ele>1779.8</ele> + <time>2020-08-23T08:08:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874950" lon="0.5609230"> + <ele>1779.8</ele> + <time>2020-08-23T08:08:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875010" lon="0.5609390"> + <ele>1780.0</ele> + <time>2020-08-23T08:08:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875070" lon="0.5609560"> + <ele>1780.0</ele> + <time>2020-08-23T08:08:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875130" lon="0.5609740"> + <ele>1780.2</ele> + <time>2020-08-23T08:08:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875120" lon="0.5609880"> + <ele>1780.4</ele> + <time>2020-08-23T08:08:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875120" lon="0.5609940"> + <ele>1780.6</ele> + <time>2020-08-23T08:08:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875140" lon="0.5610010"> + <ele>1780.8</ele> + <time>2020-08-23T08:08:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875170" lon="0.5610080"> + <ele>1780.8</ele> + <time>2020-08-23T08:08:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875190" lon="0.5610140"> + <ele>1781.2</ele> + <time>2020-08-23T08:08:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875200" lon="0.5610210"> + <ele>1781.4</ele> + <time>2020-08-23T08:08:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875220" lon="0.5610260"> + <ele>1781.4</ele> + <time>2020-08-23T08:08:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875280" lon="0.5610310"> + <ele>1781.4</ele> + <time>2020-08-23T08:08:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875290" lon="0.5610420"> + <ele>1781.4</ele> + <time>2020-08-23T08:08:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875240" lon="0.5610460"> + <ele>1781.4</ele> + <time>2020-08-23T08:08:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875270" lon="0.5610500"> + <ele>1781.6</ele> + <time>2020-08-23T08:08:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875300" lon="0.5610580"> + <ele>1781.8</ele> + <time>2020-08-23T08:08:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875300" lon="0.5610690"> + <ele>1781.8</ele> + <time>2020-08-23T08:08:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875300" lon="0.5610790"> + <ele>1782.0</ele> + <time>2020-08-23T08:08:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875330" lon="0.5610870"> + <ele>1782.0</ele> + <time>2020-08-23T08:08:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875350" lon="0.5610940"> + <ele>1782.2</ele> + <time>2020-08-23T08:08:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875360" lon="0.5611010"> + <ele>1782.2</ele> + <time>2020-08-23T08:08:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875380" lon="0.5611060"> + <ele>1782.2</ele> + <time>2020-08-23T08:08:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875400" lon="0.5611150"> + <ele>1782.4</ele> + <time>2020-08-23T08:08:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875430" lon="0.5611260"> + <ele>1782.4</ele> + <time>2020-08-23T08:08:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875500" lon="0.5611370"> + <ele>1782.6</ele> + <time>2020-08-23T08:09:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875570" lon="0.5611450"> + <ele>1782.8</ele> + <time>2020-08-23T08:09:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875620" lon="0.5611520"> + <ele>1783.0</ele> + <time>2020-08-23T08:09:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875660" lon="0.5611540"> + <ele>1783.2</ele> + <time>2020-08-23T08:09:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875660" lon="0.5611560"> + <ele>1783.4</ele> + <time>2020-08-23T08:09:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876150" lon="0.5613530"> + <ele>1784.4</ele> + <time>2020-08-23T08:09:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876190" lon="0.5613720"> + <ele>1784.4</ele> + <time>2020-08-23T08:09:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876230" lon="0.5613910"> + <ele>1784.4</ele> + <time>2020-08-23T08:09:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876280" lon="0.5614100"> + <ele>1784.6</ele> + <time>2020-08-23T08:09:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876340" lon="0.5614290"> + <ele>1784.6</ele> + <time>2020-08-23T08:09:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876390" lon="0.5614490"> + <ele>1784.8</ele> + <time>2020-08-23T08:09:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876480" lon="0.5614660"> + <ele>1784.8</ele> + <time>2020-08-23T08:09:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876570" lon="0.5614810"> + <ele>1785.0</ele> + <time>2020-08-23T08:09:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876640" lon="0.5614950"> + <ele>1785.0</ele> + <time>2020-08-23T08:09:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876710" lon="0.5615100"> + <ele>1785.0</ele> + <time>2020-08-23T08:09:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876780" lon="0.5615260"> + <ele>1785.2</ele> + <time>2020-08-23T08:09:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876850" lon="0.5615410"> + <ele>1785.2</ele> + <time>2020-08-23T08:09:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876930" lon="0.5615550"> + <ele>1785.2</ele> + <time>2020-08-23T08:09:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877010" lon="0.5615670"> + <ele>1785.4</ele> + <time>2020-08-23T08:09:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877090" lon="0.5615810"> + <ele>1785.4</ele> + <time>2020-08-23T08:09:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877160" lon="0.5615970"> + <ele>1785.6</ele> + <time>2020-08-23T08:09:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877230" lon="0.5616100"> + <ele>1785.8</ele> + <time>2020-08-23T08:09:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877270" lon="0.5616260"> + <ele>1786.0</ele> + <time>2020-08-23T08:09:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877280" lon="0.5616410"> + <ele>1786.2</ele> + <time>2020-08-23T08:09:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877270" lon="0.5616560"> + <ele>1786.4</ele> + <time>2020-08-23T08:09:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877260" lon="0.5616710"> + <ele>1786.6</ele> + <time>2020-08-23T08:09:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877270" lon="0.5616850"> + <ele>1786.8</ele> + <time>2020-08-23T08:09:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877310" lon="0.5616990"> + <ele>1787.0</ele> + <time>2020-08-23T08:09:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877330" lon="0.5617140"> + <ele>1787.2</ele> + <time>2020-08-23T08:09:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877360" lon="0.5617270"> + <ele>1787.4</ele> + <time>2020-08-23T08:09:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877400" lon="0.5617410"> + <ele>1787.4</ele> + <time>2020-08-23T08:09:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877470" lon="0.5617580"> + <ele>1787.8</ele> + <time>2020-08-23T08:09:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877530" lon="0.5617780"> + <ele>1788.0</ele> + <time>2020-08-23T08:09:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877600" lon="0.5617990"> + <ele>1788.2</ele> + <time>2020-08-23T08:09:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877650" lon="0.5618190"> + <ele>1788.6</ele> + <time>2020-08-23T08:09:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877700" lon="0.5618390"> + <ele>1788.6</ele> + <time>2020-08-23T08:09:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877780" lon="0.5618560"> + <ele>1788.8</ele> + <time>2020-08-23T08:09:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877850" lon="0.5618720"> + <ele>1789.0</ele> + <time>2020-08-23T08:09:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877900" lon="0.5618900"> + <ele>1789.0</ele> + <time>2020-08-23T08:09:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877960" lon="0.5619090"> + <ele>1789.2</ele> + <time>2020-08-23T08:09:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878000" lon="0.5619280"> + <ele>1789.2</ele> + <time>2020-08-23T08:09:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878010" lon="0.5619420"> + <ele>1789.2</ele> + <time>2020-08-23T08:09:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878020" lon="0.5619480"> + <ele>1789.2</ele> + <time>2020-08-23T08:09:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878060" lon="0.5619460"> + <ele>1789.4</ele> + <time>2020-08-23T08:09:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878390" lon="0.5620390"> + <ele>1791.4</ele> + <time>2020-08-23T08:10:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878430" lon="0.5620540"> + <ele>1791.4</ele> + <time>2020-08-23T08:10:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878470" lon="0.5620640"> + <ele>1791.4</ele> + <time>2020-08-23T08:10:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878500" lon="0.5620750"> + <ele>1791.6</ele> + <time>2020-08-23T08:10:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878550" lon="0.5620880"> + <ele>1791.6</ele> + <time>2020-08-23T08:10:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878590" lon="0.5621030"> + <ele>1791.6</ele> + <time>2020-08-23T08:10:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878610" lon="0.5621150"> + <ele>1791.8</ele> + <time>2020-08-23T08:10:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878630" lon="0.5621270"> + <ele>1791.8</ele> + <time>2020-08-23T08:10:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878650" lon="0.5621390"> + <ele>1791.8</ele> + <time>2020-08-23T08:10:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878700" lon="0.5621520"> + <ele>1792.0</ele> + <time>2020-08-23T08:10:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878750" lon="0.5621670"> + <ele>1792.2</ele> + <time>2020-08-23T08:10:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878830" lon="0.5621850"> + <ele>1792.4</ele> + <time>2020-08-23T08:10:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878900" lon="0.5622040"> + <ele>1792.4</ele> + <time>2020-08-23T08:10:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878950" lon="0.5622210"> + <ele>1792.6</ele> + <time>2020-08-23T08:10:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879010" lon="0.5622330"> + <ele>1792.6</ele> + <time>2020-08-23T08:10:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879070" lon="0.5622420"> + <ele>1792.8</ele> + <time>2020-08-23T08:10:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879140" lon="0.5622510"> + <ele>1793.0</ele> + <time>2020-08-23T08:10:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879200" lon="0.5622620"> + <ele>1793.0</ele> + <time>2020-08-23T08:10:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879270" lon="0.5622740"> + <ele>1793.0</ele> + <time>2020-08-23T08:10:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879330" lon="0.5622880"> + <ele>1793.0</ele> + <time>2020-08-23T08:10:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879390" lon="0.5623020"> + <ele>1793.2</ele> + <time>2020-08-23T08:10:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879450" lon="0.5623100"> + <ele>1793.2</ele> + <time>2020-08-23T08:10:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879520" lon="0.5623190"> + <ele>1793.2</ele> + <time>2020-08-23T08:10:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879590" lon="0.5623270"> + <ele>1793.4</ele> + <time>2020-08-23T08:10:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879650" lon="0.5623350"> + <ele>1793.6</ele> + <time>2020-08-23T08:10:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879710" lon="0.5623440"> + <ele>1793.6</ele> + <time>2020-08-23T08:10:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879780" lon="0.5623520"> + <ele>1793.8</ele> + <time>2020-08-23T08:10:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879850" lon="0.5623590"> + <ele>1794.0</ele> + <time>2020-08-23T08:10:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879920" lon="0.5623660"> + <ele>1794.0</ele> + <time>2020-08-23T08:10:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879980" lon="0.5623710"> + <ele>1794.2</ele> + <time>2020-08-23T08:10:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880050" lon="0.5623770"> + <ele>1794.2</ele> + <time>2020-08-23T08:10:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880140" lon="0.5623820"> + <ele>1794.4</ele> + <time>2020-08-23T08:10:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880200" lon="0.5623880"> + <ele>1794.6</ele> + <time>2020-08-23T08:10:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880250" lon="0.5623930"> + <ele>1794.6</ele> + <time>2020-08-23T08:10:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880280" lon="0.5623950"> + <ele>1794.8</ele> + <time>2020-08-23T08:10:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880280" lon="0.5624010"> + <ele>1795.2</ele> + <time>2020-08-23T08:10:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880290" lon="0.5624070"> + <ele>1795.4</ele> + <time>2020-08-23T08:10:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880320" lon="0.5624140"> + <ele>1795.4</ele> + <time>2020-08-23T08:10:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880420" lon="0.5624200"> + <ele>1795.8</ele> + <time>2020-08-23T08:10:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880480" lon="0.5624280"> + <ele>1795.8</ele> + <time>2020-08-23T08:10:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880550" lon="0.5624410"> + <ele>1796.0</ele> + <time>2020-08-23T08:10:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880600" lon="0.5624520"> + <ele>1796.2</ele> + <time>2020-08-23T08:10:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880650" lon="0.5624630"> + <ele>1796.4</ele> + <time>2020-08-23T08:10:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880720" lon="0.5624720"> + <ele>1796.6</ele> + <time>2020-08-23T08:10:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880800" lon="0.5624810"> + <ele>1796.6</ele> + <time>2020-08-23T08:10:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880910" lon="0.5624940"> + <ele>1796.6</ele> + <time>2020-08-23T08:10:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881060" lon="0.5625080"> + <ele>1796.8</ele> + <time>2020-08-23T08:10:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881200" lon="0.5625210"> + <ele>1796.8</ele> + <time>2020-08-23T08:10:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881320" lon="0.5625310"> + <ele>1796.8</ele> + <time>2020-08-23T08:10:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881420" lon="0.5625420"> + <ele>1796.8</ele> + <time>2020-08-23T08:10:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881480" lon="0.5625500"> + <ele>1796.8</ele> + <time>2020-08-23T08:11:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881540" lon="0.5625570"> + <ele>1796.8</ele> + <time>2020-08-23T08:11:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881650" lon="0.5625610"> + <ele>1796.8</ele> + <time>2020-08-23T08:11:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881730" lon="0.5625670"> + <ele>1796.8</ele> + <time>2020-08-23T08:11:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881790" lon="0.5625740"> + <ele>1796.8</ele> + <time>2020-08-23T08:11:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881850" lon="0.5625830"> + <ele>1796.8</ele> + <time>2020-08-23T08:11:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881900" lon="0.5625910"> + <ele>1796.8</ele> + <time>2020-08-23T08:11:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881950" lon="0.5625990"> + <ele>1796.8</ele> + <time>2020-08-23T08:11:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882010" lon="0.5626060"> + <ele>1796.8</ele> + <time>2020-08-23T08:11:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882080" lon="0.5626100"> + <ele>1796.8</ele> + <time>2020-08-23T08:11:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882110" lon="0.5626140"> + <ele>1796.8</ele> + <time>2020-08-23T08:11:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882120" lon="0.5626160"> + <ele>1797.0</ele> + <time>2020-08-23T08:11:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882930" lon="0.5627610"> + <ele>1798.0</ele> + <time>2020-08-23T08:11:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883000" lon="0.5627780"> + <ele>1798.0</ele> + <time>2020-08-23T08:11:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883070" lon="0.5627930"> + <ele>1798.0</ele> + <time>2020-08-23T08:11:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883160" lon="0.5628060"> + <ele>1798.2</ele> + <time>2020-08-23T08:11:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883270" lon="0.5628170"> + <ele>1798.2</ele> + <time>2020-08-23T08:11:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883390" lon="0.5628260"> + <ele>1798.4</ele> + <time>2020-08-23T08:11:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883500" lon="0.5628330"> + <ele>1798.4</ele> + <time>2020-08-23T08:11:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883540" lon="0.5628400"> + <ele>1798.4</ele> + <time>2020-08-23T08:11:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883600" lon="0.5628440"> + <ele>1798.6</ele> + <time>2020-08-23T08:11:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883650" lon="0.5628480"> + <ele>1798.6</ele> + <time>2020-08-23T08:11:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883710" lon="0.5628530"> + <ele>1798.8</ele> + <time>2020-08-23T08:11:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883780" lon="0.5628550"> + <ele>1798.8</ele> + <time>2020-08-23T08:11:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883840" lon="0.5628550"> + <ele>1799.0</ele> + <time>2020-08-23T08:11:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883920" lon="0.5628610"> + <ele>1799.0</ele> + <time>2020-08-23T08:11:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883960" lon="0.5628660"> + <ele>1799.2</ele> + <time>2020-08-23T08:11:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884000" lon="0.5628760"> + <ele>1799.2</ele> + <time>2020-08-23T08:11:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884060" lon="0.5628860"> + <ele>1799.4</ele> + <time>2020-08-23T08:11:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884130" lon="0.5628940"> + <ele>1799.6</ele> + <time>2020-08-23T08:11:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884220" lon="0.5629060"> + <ele>1799.6</ele> + <time>2020-08-23T08:11:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884270" lon="0.5629190"> + <ele>1799.8</ele> + <time>2020-08-23T08:11:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884310" lon="0.5629300"> + <ele>1799.8</ele> + <time>2020-08-23T08:11:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884360" lon="0.5629430"> + <ele>1799.8</ele> + <time>2020-08-23T08:11:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884380" lon="0.5629540"> + <ele>1799.8</ele> + <time>2020-08-23T08:11:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884420" lon="0.5629670"> + <ele>1799.8</ele> + <time>2020-08-23T08:11:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884460" lon="0.5629750"> + <ele>1799.8</ele> + <time>2020-08-23T08:11:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884480" lon="0.5629840"> + <ele>1799.8</ele> + <time>2020-08-23T08:11:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884480" lon="0.5629980"> + <ele>1800.0</ele> + <time>2020-08-23T08:11:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884470" lon="0.5630140"> + <ele>1800.0</ele> + <time>2020-08-23T08:11:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884450" lon="0.5630250"> + <ele>1800.0</ele> + <time>2020-08-23T08:11:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884440" lon="0.5630320"> + <ele>1800.0</ele> + <time>2020-08-23T08:11:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884420" lon="0.5630350"> + <ele>1800.0</ele> + <time>2020-08-23T08:11:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884410" lon="0.5630420"> + <ele>1800.0</ele> + <time>2020-08-23T08:11:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884400" lon="0.5630980"> + <ele>1800.0</ele> + <time>2020-08-23T08:11:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884360" lon="0.5631190"> + <ele>1800.0</ele> + <time>2020-08-23T08:12:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884320" lon="0.5631390"> + <ele>1800.0</ele> + <time>2020-08-23T08:12:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884300" lon="0.5631590"> + <ele>1800.0</ele> + <time>2020-08-23T08:12:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884280" lon="0.5631780"> + <ele>1800.0</ele> + <time>2020-08-23T08:12:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884260" lon="0.5631970"> + <ele>1800.0</ele> + <time>2020-08-23T08:12:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884260" lon="0.5632170"> + <ele>1800.2</ele> + <time>2020-08-23T08:12:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884270" lon="0.5632340"> + <ele>1800.2</ele> + <time>2020-08-23T08:12:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884290" lon="0.5632510"> + <ele>1800.2</ele> + <time>2020-08-23T08:12:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884300" lon="0.5632720"> + <ele>1800.2</ele> + <time>2020-08-23T08:12:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884320" lon="0.5632950"> + <ele>1800.2</ele> + <time>2020-08-23T08:12:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884310" lon="0.5633170"> + <ele>1800.4</ele> + <time>2020-08-23T08:12:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884310" lon="0.5633390"> + <ele>1800.4</ele> + <time>2020-08-23T08:12:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884330" lon="0.5633580"> + <ele>1800.6</ele> + <time>2020-08-23T08:12:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884360" lon="0.5633750"> + <ele>1800.8</ele> + <time>2020-08-23T08:12:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884390" lon="0.5633930"> + <ele>1800.8</ele> + <time>2020-08-23T08:12:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884390" lon="0.5634130"> + <ele>1801.0</ele> + <time>2020-08-23T08:12:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884380" lon="0.5634330"> + <ele>1801.0</ele> + <time>2020-08-23T08:12:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884380" lon="0.5634540"> + <ele>1801.0</ele> + <time>2020-08-23T08:12:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884380" lon="0.5634760"> + <ele>1801.2</ele> + <time>2020-08-23T08:12:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884370" lon="0.5634930"> + <ele>1801.4</ele> + <time>2020-08-23T08:12:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884310" lon="0.5635080"> + <ele>1801.4</ele> + <time>2020-08-23T08:12:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884230" lon="0.5635210"> + <ele>1801.4</ele> + <time>2020-08-23T08:12:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884150" lon="0.5635370"> + <ele>1801.6</ele> + <time>2020-08-23T08:12:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884090" lon="0.5635480"> + <ele>1801.6</ele> + <time>2020-08-23T08:12:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884050" lon="0.5635600"> + <ele>1801.8</ele> + <time>2020-08-23T08:12:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884070" lon="0.5635740"> + <ele>1802.0</ele> + <time>2020-08-23T08:12:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884060" lon="0.5635890"> + <ele>1802.2</ele> + <time>2020-08-23T08:12:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884030" lon="0.5636020"> + <ele>1802.4</ele> + <time>2020-08-23T08:12:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883950" lon="0.5636170"> + <ele>1802.6</ele> + <time>2020-08-23T08:12:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883870" lon="0.5636320"> + <ele>1802.8</ele> + <time>2020-08-23T08:12:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883830" lon="0.5636490"> + <ele>1803.0</ele> + <time>2020-08-23T08:12:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883810" lon="0.5636650"> + <ele>1803.2</ele> + <time>2020-08-23T08:12:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883840" lon="0.5636810"> + <ele>1803.4</ele> + <time>2020-08-23T08:12:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883890" lon="0.5636960"> + <ele>1803.6</ele> + <time>2020-08-23T08:12:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883930" lon="0.5637130"> + <ele>1803.8</ele> + <time>2020-08-23T08:12:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883950" lon="0.5637290"> + <ele>1804.0</ele> + <time>2020-08-23T08:12:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883990" lon="0.5637460"> + <ele>1804.2</ele> + <time>2020-08-23T08:12:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884040" lon="0.5637600"> + <ele>1804.2</ele> + <time>2020-08-23T08:12:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884110" lon="0.5637720"> + <ele>1804.4</ele> + <time>2020-08-23T08:12:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884180" lon="0.5637850"> + <ele>1805.0</ele> + <time>2020-08-23T08:12:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884250" lon="0.5637960"> + <ele>1805.4</ele> + <time>2020-08-23T08:12:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884280" lon="0.5638080"> + <ele>1805.8</ele> + <time>2020-08-23T08:12:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884300" lon="0.5638220"> + <ele>1806.0</ele> + <time>2020-08-23T08:12:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884330" lon="0.5638370"> + <ele>1806.2</ele> + <time>2020-08-23T08:12:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884380" lon="0.5638510"> + <ele>1806.4</ele> + <time>2020-08-23T08:12:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884460" lon="0.5638650"> + <ele>1806.6</ele> + <time>2020-08-23T08:12:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>161</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884520" lon="0.5638820"> + <ele>1806.8</ele> + <time>2020-08-23T08:12:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884560" lon="0.5638980"> + <ele>1806.8</ele> + <time>2020-08-23T08:12:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884600" lon="0.5639120"> + <ele>1807.0</ele> + <time>2020-08-23T08:12:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>160</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884660" lon="0.5639260"> + <ele>1807.0</ele> + <time>2020-08-23T08:12:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884710" lon="0.5639400"> + <ele>1807.2</ele> + <time>2020-08-23T08:12:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884770" lon="0.5639540"> + <ele>1807.2</ele> + <time>2020-08-23T08:12:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884830" lon="0.5639680"> + <ele>1807.4</ele> + <time>2020-08-23T08:12:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884890" lon="0.5639830"> + <ele>1807.4</ele> + <time>2020-08-23T08:12:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884950" lon="0.5639970"> + <ele>1807.4</ele> + <time>2020-08-23T08:12:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884990" lon="0.5640120"> + <ele>1807.4</ele> + <time>2020-08-23T08:12:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885040" lon="0.5640290"> + <ele>1807.4</ele> + <time>2020-08-23T08:12:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885100" lon="0.5640450"> + <ele>1807.4</ele> + <time>2020-08-23T08:12:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885140" lon="0.5640590"> + <ele>1807.6</ele> + <time>2020-08-23T08:12:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885190" lon="0.5640720"> + <ele>1807.6</ele> + <time>2020-08-23T08:12:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885200" lon="0.5640880"> + <ele>1807.8</ele> + <time>2020-08-23T08:13:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885190" lon="0.5641040"> + <ele>1807.8</ele> + <time>2020-08-23T08:13:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885200" lon="0.5641210"> + <ele>1807.8</ele> + <time>2020-08-23T08:13:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885220" lon="0.5641340"> + <ele>1808.0</ele> + <time>2020-08-23T08:13:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885260" lon="0.5641480"> + <ele>1808.2</ele> + <time>2020-08-23T08:13:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885300" lon="0.5641610"> + <ele>1808.4</ele> + <time>2020-08-23T08:13:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885360" lon="0.5641730"> + <ele>1808.4</ele> + <time>2020-08-23T08:13:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885400" lon="0.5641870"> + <ele>1808.6</ele> + <time>2020-08-23T08:13:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885430" lon="0.5642030"> + <ele>1808.8</ele> + <time>2020-08-23T08:13:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885490" lon="0.5642210"> + <ele>1809.0</ele> + <time>2020-08-23T08:13:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885550" lon="0.5642370"> + <ele>1809.0</ele> + <time>2020-08-23T08:13:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885590" lon="0.5642530"> + <ele>1809.2</ele> + <time>2020-08-23T08:13:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885600" lon="0.5642680"> + <ele>1809.4</ele> + <time>2020-08-23T08:13:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>159</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885640" lon="0.5642780"> + <ele>1809.8</ele> + <time>2020-08-23T08:13:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885690" lon="0.5642840"> + <ele>1810.0</ele> + <time>2020-08-23T08:13:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885710" lon="0.5642840"> + <ele>1810.2</ele> + <time>2020-08-23T08:13:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885790" lon="0.5642960"> + <ele>1810.2</ele> + <time>2020-08-23T08:13:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885810" lon="0.5643050"> + <ele>1810.4</ele> + <time>2020-08-23T08:13:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885830" lon="0.5643140"> + <ele>1810.6</ele> + <time>2020-08-23T08:13:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885820" lon="0.5643210"> + <ele>1810.6</ele> + <time>2020-08-23T08:13:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885830" lon="0.5643280"> + <ele>1810.8</ele> + <time>2020-08-23T08:13:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885850" lon="0.5643340"> + <ele>1810.8</ele> + <time>2020-08-23T08:13:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885870" lon="0.5643400"> + <ele>1811.0</ele> + <time>2020-08-23T08:13:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885920" lon="0.5643500"> + <ele>1811.0</ele> + <time>2020-08-23T08:13:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885940" lon="0.5643570"> + <ele>1811.2</ele> + <time>2020-08-23T08:13:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885960" lon="0.5643650"> + <ele>1811.2</ele> + <time>2020-08-23T08:13:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885980" lon="0.5643750"> + <ele>1811.2</ele> + <time>2020-08-23T08:13:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885990" lon="0.5643850"> + <ele>1811.2</ele> + <time>2020-08-23T08:13:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886000" lon="0.5643950"> + <ele>1811.4</ele> + <time>2020-08-23T08:13:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886020" lon="0.5644040"> + <ele>1811.6</ele> + <time>2020-08-23T08:13:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886050" lon="0.5644120"> + <ele>1811.6</ele> + <time>2020-08-23T08:13:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886070" lon="0.5644220"> + <ele>1811.8</ele> + <time>2020-08-23T08:13:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886090" lon="0.5644310"> + <ele>1811.8</ele> + <time>2020-08-23T08:13:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886110" lon="0.5644390"> + <ele>1812.0</ele> + <time>2020-08-23T08:13:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886120" lon="0.5644470"> + <ele>1812.0</ele> + <time>2020-08-23T08:13:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886150" lon="0.5644560"> + <ele>1812.2</ele> + <time>2020-08-23T08:13:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886180" lon="0.5644640"> + <ele>1812.2</ele> + <time>2020-08-23T08:13:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886210" lon="0.5644730"> + <ele>1812.4</ele> + <time>2020-08-23T08:13:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886240" lon="0.5644810"> + <ele>1812.6</ele> + <time>2020-08-23T08:13:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886260" lon="0.5644870"> + <ele>1812.8</ele> + <time>2020-08-23T08:13:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886280" lon="0.5644940"> + <ele>1813.0</ele> + <time>2020-08-23T08:13:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886340" lon="0.5645000"> + <ele>1813.2</ele> + <time>2020-08-23T08:13:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886410" lon="0.5645070"> + <ele>1813.4</ele> + <time>2020-08-23T08:13:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886450" lon="0.5645160"> + <ele>1813.4</ele> + <time>2020-08-23T08:13:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886470" lon="0.5645220"> + <ele>1813.6</ele> + <time>2020-08-23T08:13:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886480" lon="0.5645260"> + <ele>1813.6</ele> + <time>2020-08-23T08:13:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>158</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886510" lon="0.5645330"> + <ele>1813.8</ele> + <time>2020-08-23T08:13:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886530" lon="0.5645390"> + <ele>1814.0</ele> + <time>2020-08-23T08:13:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886550" lon="0.5645430"> + <ele>1814.4</ele> + <time>2020-08-23T08:13:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886600" lon="0.5645490"> + <ele>1814.6</ele> + <time>2020-08-23T08:13:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886640" lon="0.5645540"> + <ele>1814.8</ele> + <time>2020-08-23T08:13:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886680" lon="0.5645570"> + <ele>1815.0</ele> + <time>2020-08-23T08:13:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886730" lon="0.5645600"> + <ele>1815.4</ele> + <time>2020-08-23T08:13:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886770" lon="0.5645660"> + <ele>1815.8</ele> + <time>2020-08-23T08:13:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886820" lon="0.5645730"> + <ele>1816.0</ele> + <time>2020-08-23T08:13:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886850" lon="0.5645780"> + <ele>1816.0</ele> + <time>2020-08-23T08:13:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886880" lon="0.5645830"> + <ele>1816.2</ele> + <time>2020-08-23T08:13:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>157</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886910" lon="0.5645870"> + <ele>1816.6</ele> + <time>2020-08-23T08:13:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886930" lon="0.5645920"> + <ele>1816.6</ele> + <time>2020-08-23T08:13:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886940" lon="0.5645980"> + <ele>1816.8</ele> + <time>2020-08-23T08:13:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886970" lon="0.5646040"> + <ele>1817.0</ele> + <time>2020-08-23T08:14:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>156</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886970" lon="0.5646120"> + <ele>1817.2</ele> + <time>2020-08-23T08:14:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886980" lon="0.5646200"> + <ele>1817.2</ele> + <time>2020-08-23T08:14:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886980" lon="0.5646280"> + <ele>1817.4</ele> + <time>2020-08-23T08:14:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886990" lon="0.5646360"> + <ele>1817.6</ele> + <time>2020-08-23T08:14:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887000" lon="0.5646440"> + <ele>1817.6</ele> + <time>2020-08-23T08:14:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887010" lon="0.5646520"> + <ele>1817.8</ele> + <time>2020-08-23T08:14:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887020" lon="0.5646590"> + <ele>1818.0</ele> + <time>2020-08-23T08:14:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887030" lon="0.5646670"> + <ele>1818.2</ele> + <time>2020-08-23T08:14:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887070" lon="0.5646750"> + <ele>1818.2</ele> + <time>2020-08-23T08:14:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887080" lon="0.5646830"> + <ele>1818.4</ele> + <time>2020-08-23T08:14:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887090" lon="0.5646920"> + <ele>1818.4</ele> + <time>2020-08-23T08:14:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887090" lon="0.5647000"> + <ele>1818.6</ele> + <time>2020-08-23T08:14:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887080" lon="0.5647070"> + <ele>1818.8</ele> + <time>2020-08-23T08:14:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887090" lon="0.5647150"> + <ele>1818.8</ele> + <time>2020-08-23T08:14:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887090" lon="0.5647230"> + <ele>1819.0</ele> + <time>2020-08-23T08:14:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887100" lon="0.5647300"> + <ele>1819.2</ele> + <time>2020-08-23T08:14:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887110" lon="0.5647360"> + <ele>1819.4</ele> + <time>2020-08-23T08:14:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887120" lon="0.5647410"> + <ele>1819.4</ele> + <time>2020-08-23T08:14:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887140" lon="0.5647460"> + <ele>1819.8</ele> + <time>2020-08-23T08:14:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887180" lon="0.5647520"> + <ele>1820.0</ele> + <time>2020-08-23T08:14:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887260" lon="0.5647580"> + <ele>1820.0</ele> + <time>2020-08-23T08:14:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887350" lon="0.5647630"> + <ele>1820.2</ele> + <time>2020-08-23T08:14:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887430" lon="0.5647670"> + <ele>1820.4</ele> + <time>2020-08-23T08:14:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887510" lon="0.5647720"> + <ele>1820.6</ele> + <time>2020-08-23T08:14:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887550" lon="0.5647780"> + <ele>1820.6</ele> + <time>2020-08-23T08:14:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887590" lon="0.5647860"> + <ele>1820.8</ele> + <time>2020-08-23T08:14:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887610" lon="0.5647910"> + <ele>1820.8</ele> + <time>2020-08-23T08:14:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887640" lon="0.5647960"> + <ele>1821.0</ele> + <time>2020-08-23T08:14:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887640" lon="0.5648030"> + <ele>1821.0</ele> + <time>2020-08-23T08:14:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887620" lon="0.5648130"> + <ele>1821.0</ele> + <time>2020-08-23T08:14:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887580" lon="0.5648230"> + <ele>1821.0</ele> + <time>2020-08-23T08:14:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887520" lon="0.5648310"> + <ele>1821.2</ele> + <time>2020-08-23T08:14:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887470" lon="0.5648360"> + <ele>1821.4</ele> + <time>2020-08-23T08:14:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887400" lon="0.5648370"> + <ele>1821.6</ele> + <time>2020-08-23T08:14:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887330" lon="0.5648330"> + <ele>1821.8</ele> + <time>2020-08-23T08:14:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887240" lon="0.5648250"> + <ele>1821.8</ele> + <time>2020-08-23T08:14:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887130" lon="0.5648180"> + <ele>1821.8</ele> + <time>2020-08-23T08:14:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887020" lon="0.5648180"> + <ele>1821.8</ele> + <time>2020-08-23T08:14:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886910" lon="0.5648240"> + <ele>1821.8</ele> + <time>2020-08-23T08:14:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886850" lon="0.5648320"> + <ele>1822.0</ele> + <time>2020-08-23T08:14:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886810" lon="0.5648400"> + <ele>1822.0</ele> + <time>2020-08-23T08:14:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886790" lon="0.5648490"> + <ele>1822.0</ele> + <time>2020-08-23T08:14:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886760" lon="0.5648580"> + <ele>1822.0</ele> + <time>2020-08-23T08:14:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886740" lon="0.5648660"> + <ele>1822.0</ele> + <time>2020-08-23T08:14:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886720" lon="0.5648730"> + <ele>1822.0</ele> + <time>2020-08-23T08:14:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886710" lon="0.5648810"> + <ele>1822.0</ele> + <time>2020-08-23T08:14:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886710" lon="0.5648890"> + <ele>1822.0</ele> + <time>2020-08-23T08:14:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886700" lon="0.5648970"> + <ele>1822.2</ele> + <time>2020-08-23T08:14:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886690" lon="0.5649020"> + <ele>1822.6</ele> + <time>2020-08-23T08:14:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886680" lon="0.5649090"> + <ele>1822.8</ele> + <time>2020-08-23T08:14:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886660" lon="0.5649140"> + <ele>1823.0</ele> + <time>2020-08-23T08:14:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886640" lon="0.5649190"> + <ele>1823.4</ele> + <time>2020-08-23T08:14:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886630" lon="0.5649230"> + <ele>1823.8</ele> + <time>2020-08-23T08:14:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886620" lon="0.5649270"> + <ele>1824.0</ele> + <time>2020-08-23T08:14:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886610" lon="0.5649310"> + <ele>1824.0</ele> + <time>2020-08-23T08:14:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886600" lon="0.5649390"> + <ele>1824.4</ele> + <time>2020-08-23T08:14:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886580" lon="0.5649450"> + <ele>1824.6</ele> + <time>2020-08-23T08:14:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886560" lon="0.5649540"> + <ele>1824.8</ele> + <time>2020-08-23T08:14:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886540" lon="0.5649580"> + <ele>1824.8</ele> + <time>2020-08-23T08:14:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886520" lon="0.5649640"> + <ele>1825.0</ele> + <time>2020-08-23T08:15:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886510" lon="0.5649690"> + <ele>1825.2</ele> + <time>2020-08-23T08:15:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886500" lon="0.5649730"> + <ele>1825.4</ele> + <time>2020-08-23T08:15:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>155</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886070" lon="0.5649160"> + <ele>1827.0</ele> + <time>2020-08-23T08:15:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885980" lon="0.5648950"> + <ele>1827.0</ele> + <time>2020-08-23T08:15:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885880" lon="0.5648730"> + <ele>1827.0</ele> + <time>2020-08-23T08:15:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885760" lon="0.5648470"> + <ele>1827.0</ele> + <time>2020-08-23T08:15:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885620" lon="0.5648200"> + <ele>1827.0</ele> + <time>2020-08-23T08:15:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885470" lon="0.5647930"> + <ele>1826.8</ele> + <time>2020-08-23T08:15:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885320" lon="0.5647680"> + <ele>1826.8</ele> + <time>2020-08-23T08:15:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885190" lon="0.5647470"> + <ele>1826.8</ele> + <time>2020-08-23T08:15:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885080" lon="0.5647290"> + <ele>1826.8</ele> + <time>2020-08-23T08:15:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884960" lon="0.5647120"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884850" lon="0.5646950"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884750" lon="0.5646790"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884640" lon="0.5646610"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884500" lon="0.5646440"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884370" lon="0.5646270"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884250" lon="0.5646090"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884130" lon="0.5645900"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884020" lon="0.5645720"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883870" lon="0.5645510"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883720" lon="0.5645320"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883600" lon="0.5645140"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883480" lon="0.5644940"> + <ele>1826.6</ele> + <time>2020-08-23T08:15:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883340" lon="0.5644760"> + <ele>1826.8</ele> + <time>2020-08-23T08:15:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883190" lon="0.5644600"> + <ele>1826.8</ele> + <time>2020-08-23T08:15:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883070" lon="0.5644410"> + <ele>1827.0</ele> + <time>2020-08-23T08:15:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882960" lon="0.5644210"> + <ele>1827.0</ele> + <time>2020-08-23T08:15:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882830" lon="0.5644020"> + <ele>1827.2</ele> + <time>2020-08-23T08:15:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882710" lon="0.5643830"> + <ele>1827.2</ele> + <time>2020-08-23T08:15:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882620" lon="0.5643620"> + <ele>1827.2</ele> + <time>2020-08-23T08:15:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882520" lon="0.5643420"> + <ele>1827.2</ele> + <time>2020-08-23T08:15:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882430" lon="0.5643200"> + <ele>1827.2</ele> + <time>2020-08-23T08:15:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882350" lon="0.5642960"> + <ele>1827.2</ele> + <time>2020-08-23T08:15:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882270" lon="0.5642720"> + <ele>1827.4</ele> + <time>2020-08-23T08:15:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882190" lon="0.5642470"> + <ele>1827.4</ele> + <time>2020-08-23T08:15:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882110" lon="0.5642230"> + <ele>1827.4</ele> + <time>2020-08-23T08:15:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882050" lon="0.5641980"> + <ele>1827.6</ele> + <time>2020-08-23T08:15:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881980" lon="0.5641730"> + <ele>1827.6</ele> + <time>2020-08-23T08:15:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881890" lon="0.5641500"> + <ele>1827.6</ele> + <time>2020-08-23T08:15:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881780" lon="0.5641270"> + <ele>1828.0</ele> + <time>2020-08-23T08:15:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881660" lon="0.5641030"> + <ele>1827.8</ele> + <time>2020-08-23T08:15:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881560" lon="0.5640780"> + <ele>1828.0</ele> + <time>2020-08-23T08:15:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881460" lon="0.5640550"> + <ele>1828.2</ele> + <time>2020-08-23T08:15:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881350" lon="0.5640330"> + <ele>1828.2</ele> + <time>2020-08-23T08:15:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881270" lon="0.5640100"> + <ele>1828.2</ele> + <time>2020-08-23T08:15:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881140" lon="0.5639860"> + <ele>1828.4</ele> + <time>2020-08-23T08:15:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881030" lon="0.5639560"> + <ele>1828.4</ele> + <time>2020-08-23T08:16:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880930" lon="0.5639260"> + <ele>1828.4</ele> + <time>2020-08-23T08:16:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880840" lon="0.5638980"> + <ele>1828.4</ele> + <time>2020-08-23T08:16:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880740" lon="0.5638710"> + <ele>1828.6</ele> + <time>2020-08-23T08:16:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880610" lon="0.5638440"> + <ele>1828.6</ele> + <time>2020-08-23T08:16:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880480" lon="0.5638190"> + <ele>1828.6</ele> + <time>2020-08-23T08:16:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880350" lon="0.5637970"> + <ele>1828.6</ele> + <time>2020-08-23T08:16:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880230" lon="0.5637780"> + <ele>1828.6</ele> + <time>2020-08-23T08:16:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880100" lon="0.5637590"> + <ele>1828.6</ele> + <time>2020-08-23T08:16:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879970" lon="0.5637410"> + <ele>1828.8</ele> + <time>2020-08-23T08:16:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879860" lon="0.5637250"> + <ele>1828.8</ele> + <time>2020-08-23T08:16:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879760" lon="0.5637080"> + <ele>1828.8</ele> + <time>2020-08-23T08:16:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879630" lon="0.5636920"> + <ele>1828.8</ele> + <time>2020-08-23T08:16:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879490" lon="0.5636780"> + <ele>1828.8</ele> + <time>2020-08-23T08:16:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879350" lon="0.5636660"> + <ele>1829.0</ele> + <time>2020-08-23T08:16:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879200" lon="0.5636530"> + <ele>1829.2</ele> + <time>2020-08-23T08:16:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879050" lon="0.5636410"> + <ele>1829.4</ele> + <time>2020-08-23T08:16:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878890" lon="0.5636280"> + <ele>1829.8</ele> + <time>2020-08-23T08:16:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878740" lon="0.5636170"> + <ele>1830.0</ele> + <time>2020-08-23T08:16:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878560" lon="0.5636050"> + <ele>1830.4</ele> + <time>2020-08-23T08:16:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878370" lon="0.5635940"> + <ele>1830.6</ele> + <time>2020-08-23T08:16:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878200" lon="0.5635810"> + <ele>1830.8</ele> + <time>2020-08-23T08:16:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878070" lon="0.5635670"> + <ele>1831.0</ele> + <time>2020-08-23T08:16:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877940" lon="0.5635560"> + <ele>1831.2</ele> + <time>2020-08-23T08:16:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877780" lon="0.5635450"> + <ele>1831.6</ele> + <time>2020-08-23T08:16:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877640" lon="0.5635310"> + <ele>1831.8</ele> + <time>2020-08-23T08:16:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877490" lon="0.5635170"> + <ele>1832.0</ele> + <time>2020-08-23T08:16:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877310" lon="0.5635030"> + <ele>1832.2</ele> + <time>2020-08-23T08:16:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877150" lon="0.5634900"> + <ele>1832.2</ele> + <time>2020-08-23T08:16:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876990" lon="0.5634770"> + <ele>1832.4</ele> + <time>2020-08-23T08:16:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876830" lon="0.5634630"> + <ele>1832.6</ele> + <time>2020-08-23T08:16:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876690" lon="0.5634470"> + <ele>1832.6</ele> + <time>2020-08-23T08:16:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876570" lon="0.5634290"> + <ele>1832.8</ele> + <time>2020-08-23T08:16:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876430" lon="0.5634150"> + <ele>1833.0</ele> + <time>2020-08-23T08:16:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876310" lon="0.5633970"> + <ele>1833.2</ele> + <time>2020-08-23T08:16:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876190" lon="0.5633790"> + <ele>1833.4</ele> + <time>2020-08-23T08:16:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876080" lon="0.5633620"> + <ele>1833.6</ele> + <time>2020-08-23T08:16:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875970" lon="0.5633450"> + <ele>1833.8</ele> + <time>2020-08-23T08:16:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875870" lon="0.5633290"> + <ele>1834.0</ele> + <time>2020-08-23T08:16:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875780" lon="0.5633120"> + <ele>1834.0</ele> + <time>2020-08-23T08:16:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875690" lon="0.5632950"> + <ele>1834.2</ele> + <time>2020-08-23T08:16:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875610" lon="0.5632800"> + <ele>1834.2</ele> + <time>2020-08-23T08:16:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875530" lon="0.5632630"> + <ele>1834.4</ele> + <time>2020-08-23T08:16:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875430" lon="0.5632450"> + <ele>1834.6</ele> + <time>2020-08-23T08:16:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875340" lon="0.5632220"> + <ele>1834.8</ele> + <time>2020-08-23T08:16:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875240" lon="0.5632000"> + <ele>1835.0</ele> + <time>2020-08-23T08:16:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875130" lon="0.5631780"> + <ele>1835.0</ele> + <time>2020-08-23T08:16:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875060" lon="0.5631550"> + <ele>1835.2</ele> + <time>2020-08-23T08:16:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874990" lon="0.5631340"> + <ele>1835.2</ele> + <time>2020-08-23T08:16:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874890" lon="0.5631160"> + <ele>1835.4</ele> + <time>2020-08-23T08:16:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874780" lon="0.5631020"> + <ele>1835.8</ele> + <time>2020-08-23T08:16:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874680" lon="0.5630850"> + <ele>1836.0</ele> + <time>2020-08-23T08:16:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874590" lon="0.5630660"> + <ele>1836.4</ele> + <time>2020-08-23T08:16:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874500" lon="0.5630470"> + <ele>1836.4</ele> + <time>2020-08-23T08:16:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874430" lon="0.5630280"> + <ele>1836.8</ele> + <time>2020-08-23T08:16:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874340" lon="0.5630080"> + <ele>1836.8</ele> + <time>2020-08-23T08:16:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874210" lon="0.5629910"> + <ele>1837.2</ele> + <time>2020-08-23T08:16:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874100" lon="0.5629740"> + <ele>1837.4</ele> + <time>2020-08-23T08:16:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874020" lon="0.5629580"> + <ele>1837.4</ele> + <time>2020-08-23T08:16:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873910" lon="0.5629400"> + <ele>1837.6</ele> + <time>2020-08-23T08:16:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873810" lon="0.5629200"> + <ele>1837.6</ele> + <time>2020-08-23T08:17:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873710" lon="0.5629000"> + <ele>1837.8</ele> + <time>2020-08-23T08:17:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873620" lon="0.5628830"> + <ele>1838.0</ele> + <time>2020-08-23T08:17:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873550" lon="0.5628650"> + <ele>1838.2</ele> + <time>2020-08-23T08:17:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873460" lon="0.5628490"> + <ele>1838.4</ele> + <time>2020-08-23T08:17:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873360" lon="0.5628320"> + <ele>1838.6</ele> + <time>2020-08-23T08:17:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873290" lon="0.5628130"> + <ele>1838.6</ele> + <time>2020-08-23T08:17:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873180" lon="0.5627940"> + <ele>1838.8</ele> + <time>2020-08-23T08:17:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873060" lon="0.5627760"> + <ele>1838.8</ele> + <time>2020-08-23T08:17:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872960" lon="0.5627560"> + <ele>1839.0</ele> + <time>2020-08-23T08:17:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872860" lon="0.5627370"> + <ele>1839.0</ele> + <time>2020-08-23T08:17:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872750" lon="0.5627210"> + <ele>1839.0</ele> + <time>2020-08-23T08:17:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872650" lon="0.5627020"> + <ele>1839.0</ele> + <time>2020-08-23T08:17:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872540" lon="0.5626800"> + <ele>1839.2</ele> + <time>2020-08-23T08:17:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872450" lon="0.5626600"> + <ele>1839.4</ele> + <time>2020-08-23T08:17:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872350" lon="0.5626410"> + <ele>1839.4</ele> + <time>2020-08-23T08:17:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872200" lon="0.5626230"> + <ele>1839.6</ele> + <time>2020-08-23T08:17:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872060" lon="0.5626060"> + <ele>1839.8</ele> + <time>2020-08-23T08:17:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871920" lon="0.5625890"> + <ele>1840.0</ele> + <time>2020-08-23T08:17:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871810" lon="0.5625710"> + <ele>1840.0</ele> + <time>2020-08-23T08:17:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871720" lon="0.5625510"> + <ele>1840.2</ele> + <time>2020-08-23T08:17:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871620" lon="0.5625310"> + <ele>1840.4</ele> + <time>2020-08-23T08:17:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871510" lon="0.5625120"> + <ele>1840.4</ele> + <time>2020-08-23T08:17:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871400" lon="0.5624920"> + <ele>1840.6</ele> + <time>2020-08-23T08:17:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871310" lon="0.5624720"> + <ele>1840.6</ele> + <time>2020-08-23T08:17:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871210" lon="0.5624530"> + <ele>1840.8</ele> + <time>2020-08-23T08:17:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871110" lon="0.5624340"> + <ele>1841.0</ele> + <time>2020-08-23T08:17:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871000" lon="0.5624150"> + <ele>1841.0</ele> + <time>2020-08-23T08:17:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870880" lon="0.5623980"> + <ele>1841.2</ele> + <time>2020-08-23T08:17:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870780" lon="0.5623830"> + <ele>1841.4</ele> + <time>2020-08-23T08:17:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870650" lon="0.5623700"> + <ele>1841.4</ele> + <time>2020-08-23T08:17:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870520" lon="0.5623540"> + <ele>1841.6</ele> + <time>2020-08-23T08:17:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870400" lon="0.5623370"> + <ele>1841.6</ele> + <time>2020-08-23T08:17:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870300" lon="0.5623180"> + <ele>1841.8</ele> + <time>2020-08-23T08:17:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870160" lon="0.5623000"> + <ele>1842.0</ele> + <time>2020-08-23T08:17:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870030" lon="0.5622800"> + <ele>1842.2</ele> + <time>2020-08-23T08:17:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869890" lon="0.5622630"> + <ele>1842.2</ele> + <time>2020-08-23T08:17:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869780" lon="0.5622470"> + <ele>1842.4</ele> + <time>2020-08-23T08:17:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869670" lon="0.5622320"> + <ele>1842.4</ele> + <time>2020-08-23T08:17:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869560" lon="0.5622170"> + <ele>1842.6</ele> + <time>2020-08-23T08:17:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869430" lon="0.5622010"> + <ele>1842.8</ele> + <time>2020-08-23T08:17:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869300" lon="0.5621850"> + <ele>1843.0</ele> + <time>2020-08-23T08:17:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869160" lon="0.5621730"> + <ele>1843.0</ele> + <time>2020-08-23T08:17:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869040" lon="0.5621590"> + <ele>1843.0</ele> + <time>2020-08-23T08:17:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868930" lon="0.5621430"> + <ele>1843.2</ele> + <time>2020-08-23T08:17:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868810" lon="0.5621270"> + <ele>1843.4</ele> + <time>2020-08-23T08:17:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868680" lon="0.5621120"> + <ele>1843.6</ele> + <time>2020-08-23T08:17:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868560" lon="0.5620980"> + <ele>1843.8</ele> + <time>2020-08-23T08:17:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868440" lon="0.5620830"> + <ele>1844.0</ele> + <time>2020-08-23T08:17:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868330" lon="0.5620690"> + <ele>1844.0</ele> + <time>2020-08-23T08:17:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868230" lon="0.5620570"> + <ele>1844.2</ele> + <time>2020-08-23T08:17:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868120" lon="0.5620430"> + <ele>1844.4</ele> + <time>2020-08-23T08:17:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868000" lon="0.5620270"> + <ele>1844.6</ele> + <time>2020-08-23T08:17:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867870" lon="0.5620130"> + <ele>1844.6</ele> + <time>2020-08-23T08:17:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867740" lon="0.5619990"> + <ele>1844.8</ele> + <time>2020-08-23T08:17:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867610" lon="0.5619860"> + <ele>1845.0</ele> + <time>2020-08-23T08:17:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867480" lon="0.5619730"> + <ele>1845.4</ele> + <time>2020-08-23T08:17:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867350" lon="0.5619590"> + <ele>1845.4</ele> + <time>2020-08-23T08:17:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867220" lon="0.5619430"> + <ele>1845.6</ele> + <time>2020-08-23T08:17:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867120" lon="0.5619270"> + <ele>1845.6</ele> + <time>2020-08-23T08:17:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867010" lon="0.5619140"> + <ele>1845.8</ele> + <time>2020-08-23T08:18:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866890" lon="0.5618990"> + <ele>1845.8</ele> + <time>2020-08-23T08:18:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866780" lon="0.5618850"> + <ele>1845.8</ele> + <time>2020-08-23T08:18:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866680" lon="0.5618720"> + <ele>1846.0</ele> + <time>2020-08-23T08:18:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866590" lon="0.5618600"> + <ele>1846.2</ele> + <time>2020-08-23T08:18:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866510" lon="0.5618480"> + <ele>1846.4</ele> + <time>2020-08-23T08:18:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866410" lon="0.5618340"> + <ele>1846.6</ele> + <time>2020-08-23T08:18:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866320" lon="0.5618180"> + <ele>1846.8</ele> + <time>2020-08-23T08:18:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866200" lon="0.5618030"> + <ele>1846.8</ele> + <time>2020-08-23T08:18:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866090" lon="0.5617890"> + <ele>1847.0</ele> + <time>2020-08-23T08:18:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865980" lon="0.5617750"> + <ele>1847.2</ele> + <time>2020-08-23T08:18:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865870" lon="0.5617610"> + <ele>1847.2</ele> + <time>2020-08-23T08:18:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865760" lon="0.5617490"> + <ele>1847.4</ele> + <time>2020-08-23T08:18:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865650" lon="0.5617380"> + <ele>1847.6</ele> + <time>2020-08-23T08:18:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865550" lon="0.5617260"> + <ele>1847.8</ele> + <time>2020-08-23T08:18:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865460" lon="0.5617120"> + <ele>1848.0</ele> + <time>2020-08-23T08:18:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865370" lon="0.5616990"> + <ele>1848.2</ele> + <time>2020-08-23T08:18:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865270" lon="0.5616880"> + <ele>1848.2</ele> + <time>2020-08-23T08:18:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865170" lon="0.5616730"> + <ele>1848.4</ele> + <time>2020-08-23T08:18:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865090" lon="0.5616570"> + <ele>1848.4</ele> + <time>2020-08-23T08:18:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865000" lon="0.5616420"> + <ele>1848.6</ele> + <time>2020-08-23T08:18:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864930" lon="0.5616290"> + <ele>1848.8</ele> + <time>2020-08-23T08:18:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864840" lon="0.5616150"> + <ele>1849.0</ele> + <time>2020-08-23T08:18:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864750" lon="0.5616010"> + <ele>1849.0</ele> + <time>2020-08-23T08:18:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864650" lon="0.5615880"> + <ele>1849.2</ele> + <time>2020-08-23T08:18:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864550" lon="0.5615740"> + <ele>1849.4</ele> + <time>2020-08-23T08:18:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864450" lon="0.5615600"> + <ele>1849.6</ele> + <time>2020-08-23T08:18:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864360" lon="0.5615450"> + <ele>1849.8</ele> + <time>2020-08-23T08:18:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864260" lon="0.5615320"> + <ele>1850.0</ele> + <time>2020-08-23T08:18:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864180" lon="0.5615180"> + <ele>1850.0</ele> + <time>2020-08-23T08:18:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864110" lon="0.5615040"> + <ele>1850.2</ele> + <time>2020-08-23T08:18:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864020" lon="0.5614890"> + <ele>1850.2</ele> + <time>2020-08-23T08:18:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863920" lon="0.5614750"> + <ele>1850.4</ele> + <time>2020-08-23T08:18:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863830" lon="0.5614620"> + <ele>1850.4</ele> + <time>2020-08-23T08:18:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863730" lon="0.5614470"> + <ele>1850.6</ele> + <time>2020-08-23T08:18:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863650" lon="0.5614320"> + <ele>1850.8</ele> + <time>2020-08-23T08:18:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863570" lon="0.5614180"> + <ele>1851.0</ele> + <time>2020-08-23T08:18:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863490" lon="0.5614040"> + <ele>1851.2</ele> + <time>2020-08-23T08:18:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863400" lon="0.5613900"> + <ele>1851.2</ele> + <time>2020-08-23T08:18:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863310" lon="0.5613760"> + <ele>1851.2</ele> + <time>2020-08-23T08:18:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863220" lon="0.5613620"> + <ele>1851.4</ele> + <time>2020-08-23T08:18:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863130" lon="0.5613470"> + <ele>1851.4</ele> + <time>2020-08-23T08:18:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863030" lon="0.5613330"> + <ele>1851.6</ele> + <time>2020-08-23T08:18:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862930" lon="0.5613190"> + <ele>1851.8</ele> + <time>2020-08-23T08:18:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862840" lon="0.5613040"> + <ele>1852.0</ele> + <time>2020-08-23T08:18:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862740" lon="0.5612900"> + <ele>1852.0</ele> + <time>2020-08-23T08:18:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862640" lon="0.5612760"> + <ele>1852.0</ele> + <time>2020-08-23T08:18:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862540" lon="0.5612600"> + <ele>1852.2</ele> + <time>2020-08-23T08:18:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862450" lon="0.5612440"> + <ele>1852.2</ele> + <time>2020-08-23T08:18:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862340" lon="0.5612290"> + <ele>1852.4</ele> + <time>2020-08-23T08:18:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862250" lon="0.5612140"> + <ele>1852.4</ele> + <time>2020-08-23T08:18:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862160" lon="0.5611990"> + <ele>1852.6</ele> + <time>2020-08-23T08:18:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862060" lon="0.5611830"> + <ele>1852.6</ele> + <time>2020-08-23T08:18:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861960" lon="0.5611680"> + <ele>1852.8</ele> + <time>2020-08-23T08:18:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861860" lon="0.5611540"> + <ele>1853.0</ele> + <time>2020-08-23T08:18:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861750" lon="0.5611400"> + <ele>1853.2</ele> + <time>2020-08-23T08:18:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861650" lon="0.5611270"> + <ele>1853.2</ele> + <time>2020-08-23T08:18:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861570" lon="0.5611140"> + <ele>1853.4</ele> + <time>2020-08-23T08:18:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861460" lon="0.5611000"> + <ele>1853.4</ele> + <time>2020-08-23T08:18:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861370" lon="0.5610850"> + <ele>1853.4</ele> + <time>2020-08-23T08:18:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861270" lon="0.5610710"> + <ele>1853.6</ele> + <time>2020-08-23T08:19:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861160" lon="0.5610570"> + <ele>1853.6</ele> + <time>2020-08-23T08:19:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861050" lon="0.5610430"> + <ele>1853.6</ele> + <time>2020-08-23T08:19:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860930" lon="0.5610300"> + <ele>1853.8</ele> + <time>2020-08-23T08:19:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860840" lon="0.5610170"> + <ele>1853.8</ele> + <time>2020-08-23T08:19:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860750" lon="0.5610040"> + <ele>1854.0</ele> + <time>2020-08-23T08:19:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860630" lon="0.5609920"> + <ele>1854.0</ele> + <time>2020-08-23T08:19:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860520" lon="0.5609830"> + <ele>1854.2</ele> + <time>2020-08-23T08:19:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860420" lon="0.5609750"> + <ele>1854.2</ele> + <time>2020-08-23T08:19:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860300" lon="0.5609660"> + <ele>1854.4</ele> + <time>2020-08-23T08:19:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860190" lon="0.5609560"> + <ele>1854.4</ele> + <time>2020-08-23T08:19:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860070" lon="0.5609450"> + <ele>1854.4</ele> + <time>2020-08-23T08:19:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859950" lon="0.5609380"> + <ele>1854.6</ele> + <time>2020-08-23T08:19:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859820" lon="0.5609330"> + <ele>1854.6</ele> + <time>2020-08-23T08:19:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859690" lon="0.5609260"> + <ele>1854.8</ele> + <time>2020-08-23T08:19:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859600" lon="0.5609150"> + <ele>1855.0</ele> + <time>2020-08-23T08:19:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859500" lon="0.5609010"> + <ele>1855.0</ele> + <time>2020-08-23T08:19:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859400" lon="0.5608870"> + <ele>1855.0</ele> + <time>2020-08-23T08:19:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859300" lon="0.5608740"> + <ele>1855.2</ele> + <time>2020-08-23T08:19:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859170" lon="0.5608610"> + <ele>1855.4</ele> + <time>2020-08-23T08:19:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859040" lon="0.5608510"> + <ele>1855.8</ele> + <time>2020-08-23T08:19:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858910" lon="0.5608420"> + <ele>1855.8</ele> + <time>2020-08-23T08:19:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858810" lon="0.5608360"> + <ele>1856.0</ele> + <time>2020-08-23T08:19:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858700" lon="0.5608330"> + <ele>1856.0</ele> + <time>2020-08-23T08:19:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858570" lon="0.5608320"> + <ele>1856.0</ele> + <time>2020-08-23T08:19:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858440" lon="0.5608350"> + <ele>1856.2</ele> + <time>2020-08-23T08:19:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858310" lon="0.5608410"> + <ele>1856.4</ele> + <time>2020-08-23T08:19:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858180" lon="0.5608470"> + <ele>1856.4</ele> + <time>2020-08-23T08:19:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858070" lon="0.5608520"> + <ele>1856.6</ele> + <time>2020-08-23T08:19:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857980" lon="0.5608600"> + <ele>1856.8</ele> + <time>2020-08-23T08:19:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857890" lon="0.5608730"> + <ele>1857.0</ele> + <time>2020-08-23T08:19:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857810" lon="0.5608870"> + <ele>1857.2</ele> + <time>2020-08-23T08:19:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857730" lon="0.5609030"> + <ele>1857.2</ele> + <time>2020-08-23T08:19:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857660" lon="0.5609200"> + <ele>1857.4</ele> + <time>2020-08-23T08:19:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857630" lon="0.5609370"> + <ele>1857.6</ele> + <time>2020-08-23T08:19:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857580" lon="0.5609530"> + <ele>1857.6</ele> + <time>2020-08-23T08:19:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857540" lon="0.5609700"> + <ele>1857.8</ele> + <time>2020-08-23T08:19:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857480" lon="0.5609870"> + <ele>1858.0</ele> + <time>2020-08-23T08:19:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857440" lon="0.5610040"> + <ele>1858.2</ele> + <time>2020-08-23T08:19:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857390" lon="0.5610210"> + <ele>1858.4</ele> + <time>2020-08-23T08:19:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857350" lon="0.5610380"> + <ele>1858.4</ele> + <time>2020-08-23T08:19:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857320" lon="0.5610560"> + <ele>1858.8</ele> + <time>2020-08-23T08:19:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857320" lon="0.5610740"> + <ele>1859.0</ele> + <time>2020-08-23T08:19:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857340" lon="0.5610930"> + <ele>1859.0</ele> + <time>2020-08-23T08:19:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857360" lon="0.5611120"> + <ele>1859.2</ele> + <time>2020-08-23T08:19:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857350" lon="0.5611320"> + <ele>1859.4</ele> + <time>2020-08-23T08:19:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857380" lon="0.5611520"> + <ele>1859.6</ele> + <time>2020-08-23T08:19:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857430" lon="0.5611720"> + <ele>1859.6</ele> + <time>2020-08-23T08:19:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857470" lon="0.5611920"> + <ele>1859.8</ele> + <time>2020-08-23T08:19:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857500" lon="0.5612130"> + <ele>1860.0</ele> + <time>2020-08-23T08:19:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857520" lon="0.5612340"> + <ele>1860.0</ele> + <time>2020-08-23T08:19:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857510" lon="0.5612550"> + <ele>1860.2</ele> + <time>2020-08-23T08:19:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857470" lon="0.5612740"> + <ele>1860.2</ele> + <time>2020-08-23T08:19:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857450" lon="0.5612940"> + <ele>1860.4</ele> + <time>2020-08-23T08:19:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857420" lon="0.5613090"> + <ele>1860.6</ele> + <time>2020-08-23T08:19:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857390" lon="0.5613290"> + <ele>1860.6</ele> + <time>2020-08-23T08:19:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857360" lon="0.5613490"> + <ele>1860.6</ele> + <time>2020-08-23T08:19:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857320" lon="0.5613670"> + <ele>1860.6</ele> + <time>2020-08-23T08:19:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857270" lon="0.5613840"> + <ele>1860.8</ele> + <time>2020-08-23T08:19:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857220" lon="0.5613990"> + <ele>1860.8</ele> + <time>2020-08-23T08:19:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857180" lon="0.5614140"> + <ele>1861.0</ele> + <time>2020-08-23T08:20:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857110" lon="0.5614320"> + <ele>1861.2</ele> + <time>2020-08-23T08:20:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857020" lon="0.5614490"> + <ele>1861.4</ele> + <time>2020-08-23T08:20:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856940" lon="0.5614670"> + <ele>1861.6</ele> + <time>2020-08-23T08:20:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856810" lon="0.5614830"> + <ele>1861.6</ele> + <time>2020-08-23T08:20:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856680" lon="0.5614960"> + <ele>1861.6</ele> + <time>2020-08-23T08:20:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856530" lon="0.5615070"> + <ele>1861.8</ele> + <time>2020-08-23T08:20:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856370" lon="0.5615130"> + <ele>1861.8</ele> + <time>2020-08-23T08:20:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856220" lon="0.5615150"> + <ele>1862.0</ele> + <time>2020-08-23T08:20:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856050" lon="0.5615150"> + <ele>1862.0</ele> + <time>2020-08-23T08:20:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855880" lon="0.5615100"> + <ele>1862.2</ele> + <time>2020-08-23T08:20:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855720" lon="0.5615000"> + <ele>1862.4</ele> + <time>2020-08-23T08:20:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855580" lon="0.5614890"> + <ele>1862.4</ele> + <time>2020-08-23T08:20:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855460" lon="0.5614750"> + <ele>1862.6</ele> + <time>2020-08-23T08:20:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855390" lon="0.5614610"> + <ele>1862.8</ele> + <time>2020-08-23T08:20:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855300" lon="0.5614460"> + <ele>1863.0</ele> + <time>2020-08-23T08:20:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855200" lon="0.5614320"> + <ele>1863.2</ele> + <time>2020-08-23T08:20:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855090" lon="0.5614170"> + <ele>1863.4</ele> + <time>2020-08-23T08:20:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855000" lon="0.5614000"> + <ele>1863.4</ele> + <time>2020-08-23T08:20:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854940" lon="0.5613810"> + <ele>1863.6</ele> + <time>2020-08-23T08:20:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854870" lon="0.5613630"> + <ele>1863.8</ele> + <time>2020-08-23T08:20:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854800" lon="0.5613460"> + <ele>1864.0</ele> + <time>2020-08-23T08:20:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854720" lon="0.5613280"> + <ele>1864.4</ele> + <time>2020-08-23T08:20:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854650" lon="0.5613100"> + <ele>1864.4</ele> + <time>2020-08-23T08:20:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854590" lon="0.5612910"> + <ele>1864.6</ele> + <time>2020-08-23T08:20:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854500" lon="0.5612730"> + <ele>1864.6</ele> + <time>2020-08-23T08:20:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854430" lon="0.5612560"> + <ele>1864.6</ele> + <time>2020-08-23T08:20:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854350" lon="0.5612390"> + <ele>1865.2</ele> + <time>2020-08-23T08:20:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854270" lon="0.5612230"> + <ele>1865.2</ele> + <time>2020-08-23T08:20:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854200" lon="0.5612070"> + <ele>1865.4</ele> + <time>2020-08-23T08:20:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854120" lon="0.5611900"> + <ele>1865.4</ele> + <time>2020-08-23T08:20:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854050" lon="0.5611750"> + <ele>1865.6</ele> + <time>2020-08-23T08:20:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853960" lon="0.5611600"> + <ele>1865.8</ele> + <time>2020-08-23T08:20:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853860" lon="0.5611450"> + <ele>1866.0</ele> + <time>2020-08-23T08:20:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853760" lon="0.5611280"> + <ele>1866.0</ele> + <time>2020-08-23T08:20:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853680" lon="0.5611110"> + <ele>1866.2</ele> + <time>2020-08-23T08:20:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853590" lon="0.5610950"> + <ele>1866.2</ele> + <time>2020-08-23T08:20:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853510" lon="0.5610790"> + <ele>1866.4</ele> + <time>2020-08-23T08:20:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853430" lon="0.5610620"> + <ele>1866.4</ele> + <time>2020-08-23T08:20:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853360" lon="0.5610460"> + <ele>1866.6</ele> + <time>2020-08-23T08:20:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853300" lon="0.5610310"> + <ele>1866.8</ele> + <time>2020-08-23T08:20:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853240" lon="0.5610140"> + <ele>1867.0</ele> + <time>2020-08-23T08:20:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853160" lon="0.5609970"> + <ele>1867.0</ele> + <time>2020-08-23T08:20:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853060" lon="0.5609810"> + <ele>1867.2</ele> + <time>2020-08-23T08:20:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852980" lon="0.5609640"> + <ele>1867.4</ele> + <time>2020-08-23T08:20:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852920" lon="0.5609470"> + <ele>1867.4</ele> + <time>2020-08-23T08:20:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852840" lon="0.5609310"> + <ele>1867.8</ele> + <time>2020-08-23T08:20:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852770" lon="0.5609140"> + <ele>1867.8</ele> + <time>2020-08-23T08:20:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852710" lon="0.5608980"> + <ele>1868.0</ele> + <time>2020-08-23T08:20:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852640" lon="0.5608840"> + <ele>1868.0</ele> + <time>2020-08-23T08:20:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852540" lon="0.5608740"> + <ele>1868.0</ele> + <time>2020-08-23T08:20:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852430" lon="0.5608640"> + <ele>1868.2</ele> + <time>2020-08-23T08:20:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852350" lon="0.5608510"> + <ele>1868.2</ele> + <time>2020-08-23T08:20:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852260" lon="0.5608390"> + <ele>1868.4</ele> + <time>2020-08-23T08:20:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852150" lon="0.5608300"> + <ele>1868.6</ele> + <time>2020-08-23T08:20:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852060" lon="0.5608190"> + <ele>1868.6</ele> + <time>2020-08-23T08:20:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851950" lon="0.5608070"> + <ele>1868.8</ele> + <time>2020-08-23T08:20:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851820" lon="0.5607960"> + <ele>1868.8</ele> + <time>2020-08-23T08:20:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851680" lon="0.5607840"> + <ele>1868.8</ele> + <time>2020-08-23T08:20:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851560" lon="0.5607720"> + <ele>1869.0</ele> + <time>2020-08-23T08:20:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851440" lon="0.5607600"> + <ele>1869.2</ele> + <time>2020-08-23T08:21:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851310" lon="0.5607480"> + <ele>1869.2</ele> + <time>2020-08-23T08:21:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851190" lon="0.5607360"> + <ele>1869.4</ele> + <time>2020-08-23T08:21:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851080" lon="0.5607250"> + <ele>1869.4</ele> + <time>2020-08-23T08:21:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850970" lon="0.5607120"> + <ele>1869.4</ele> + <time>2020-08-23T08:21:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850860" lon="0.5606980"> + <ele>1869.6</ele> + <time>2020-08-23T08:21:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850750" lon="0.5606860"> + <ele>1869.8</ele> + <time>2020-08-23T08:21:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850640" lon="0.5606750"> + <ele>1869.8</ele> + <time>2020-08-23T08:21:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850520" lon="0.5606640"> + <ele>1870.0</ele> + <time>2020-08-23T08:21:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850400" lon="0.5606530"> + <ele>1870.0</ele> + <time>2020-08-23T08:21:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850280" lon="0.5606440"> + <ele>1870.2</ele> + <time>2020-08-23T08:21:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850170" lon="0.5606360"> + <ele>1870.4</ele> + <time>2020-08-23T08:21:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850050" lon="0.5606260"> + <ele>1870.6</ele> + <time>2020-08-23T08:21:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849940" lon="0.5606180"> + <ele>1870.6</ele> + <time>2020-08-23T08:21:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849840" lon="0.5606080"> + <ele>1870.8</ele> + <time>2020-08-23T08:21:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849730" lon="0.5605980"> + <ele>1871.0</ele> + <time>2020-08-23T08:21:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849620" lon="0.5605890"> + <ele>1871.2</ele> + <time>2020-08-23T08:21:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849510" lon="0.5605780"> + <ele>1871.2</ele> + <time>2020-08-23T08:21:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849410" lon="0.5605660"> + <ele>1871.4</ele> + <time>2020-08-23T08:21:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849290" lon="0.5605550"> + <ele>1871.6</ele> + <time>2020-08-23T08:21:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849170" lon="0.5605430"> + <ele>1872.0</ele> + <time>2020-08-23T08:21:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849040" lon="0.5605300"> + <ele>1872.2</ele> + <time>2020-08-23T08:21:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848900" lon="0.5605190"> + <ele>1872.4</ele> + <time>2020-08-23T08:21:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848780" lon="0.5605090"> + <ele>1872.6</ele> + <time>2020-08-23T08:21:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848650" lon="0.5604970"> + <ele>1872.8</ele> + <time>2020-08-23T08:21:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848530" lon="0.5604840"> + <ele>1872.8</ele> + <time>2020-08-23T08:21:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848400" lon="0.5604730"> + <ele>1872.8</ele> + <time>2020-08-23T08:21:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848270" lon="0.5604620"> + <ele>1873.0</ele> + <time>2020-08-23T08:21:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848130" lon="0.5604500"> + <ele>1873.0</ele> + <time>2020-08-23T08:21:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848000" lon="0.5604380"> + <ele>1873.0</ele> + <time>2020-08-23T08:21:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847870" lon="0.5604270"> + <ele>1873.2</ele> + <time>2020-08-23T08:21:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847720" lon="0.5604160"> + <ele>1873.2</ele> + <time>2020-08-23T08:21:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847580" lon="0.5604040"> + <ele>1873.4</ele> + <time>2020-08-23T08:21:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847440" lon="0.5603920"> + <ele>1873.6</ele> + <time>2020-08-23T08:21:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847300" lon="0.5603800"> + <ele>1873.6</ele> + <time>2020-08-23T08:21:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847150" lon="0.5603710"> + <ele>1873.8</ele> + <time>2020-08-23T08:21:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847010" lon="0.5603650"> + <ele>1873.8</ele> + <time>2020-08-23T08:21:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846840" lon="0.5603590"> + <ele>1873.8</ele> + <time>2020-08-23T08:21:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846690" lon="0.5603550"> + <ele>1873.8</ele> + <time>2020-08-23T08:21:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846550" lon="0.5603490"> + <ele>1874.0</ele> + <time>2020-08-23T08:21:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846390" lon="0.5603450"> + <ele>1874.2</ele> + <time>2020-08-23T08:21:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846240" lon="0.5603420"> + <ele>1874.2</ele> + <time>2020-08-23T08:21:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846090" lon="0.5603410"> + <ele>1874.2</ele> + <time>2020-08-23T08:21:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845930" lon="0.5603440"> + <ele>1874.4</ele> + <time>2020-08-23T08:21:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845780" lon="0.5603490"> + <ele>1874.6</ele> + <time>2020-08-23T08:21:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845640" lon="0.5603550"> + <ele>1874.8</ele> + <time>2020-08-23T08:21:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845490" lon="0.5603650"> + <ele>1875.0</ele> + <time>2020-08-23T08:21:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845340" lon="0.5603790"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845170" lon="0.5603960"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844990" lon="0.5604180"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844780" lon="0.5604450"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844540" lon="0.5604780"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844280" lon="0.5605190"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843980" lon="0.5605650"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843640" lon="0.5606150"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843230" lon="0.5606630"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842730" lon="0.5607090"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842130" lon="0.5607490"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841410" lon="0.5607730"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840600" lon="0.5607840"> + <ele>1875.2</ele> + <time>2020-08-23T08:21:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839730" lon="0.5607990"> + <ele>1875.0</ele> + <time>2020-08-23T08:22:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838870" lon="0.5608290"> + <ele>1875.0</ele> + <time>2020-08-23T08:22:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838020" lon="0.5608730"> + <ele>1874.4</ele> + <time>2020-08-23T08:22:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837170" lon="0.5609250"> + <ele>1874.0</ele> + <time>2020-08-23T08:22:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836310" lon="0.5609870"> + <ele>1873.4</ele> + <time>2020-08-23T08:22:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835510" lon="0.5610640"> + <ele>1872.8</ele> + <time>2020-08-23T08:22:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834750" lon="0.5611530"> + <ele>1871.6</ele> + <time>2020-08-23T08:22:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833980" lon="0.5612410"> + <ele>1870.4</ele> + <time>2020-08-23T08:22:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833200" lon="0.5613170"> + <ele>1868.2</ele> + <time>2020-08-23T08:22:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832440" lon="0.5613750"> + <ele>1867.2</ele> + <time>2020-08-23T08:22:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5831720" lon="0.5614140"> + <ele>1866.0</ele> + <time>2020-08-23T08:22:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5831000" lon="0.5614210"> + <ele>1864.8</ele> + <time>2020-08-23T08:22:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5830380" lon="0.5614010"> + <ele>1864.0</ele> + <time>2020-08-23T08:22:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5829900" lon="0.5613640"> + <ele>1863.4</ele> + <time>2020-08-23T08:22:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5829480" lon="0.5613230"> + <ele>1863.2</ele> + <time>2020-08-23T08:22:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5829110" lon="0.5612850"> + <ele>1863.0</ele> + <time>2020-08-23T08:22:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5828770" lon="0.5612520"> + <ele>1863.0</ele> + <time>2020-08-23T08:22:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5828510" lon="0.5612220"> + <ele>1863.0</ele> + <time>2020-08-23T08:22:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5828250" lon="0.5611960"> + <ele>1863.0</ele> + <time>2020-08-23T08:22:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5827970" lon="0.5611780"> + <ele>1863.0</ele> + <time>2020-08-23T08:22:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5827700" lon="0.5611660"> + <ele>1863.0</ele> + <time>2020-08-23T08:22:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5827440" lon="0.5611530"> + <ele>1863.0</ele> + <time>2020-08-23T08:22:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5827210" lon="0.5611400"> + <ele>1863.4</ele> + <time>2020-08-23T08:22:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5826990" lon="0.5611270"> + <ele>1864.0</ele> + <time>2020-08-23T08:22:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5826760" lon="0.5611110"> + <ele>1864.4</ele> + <time>2020-08-23T08:22:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5826530" lon="0.5610940"> + <ele>1865.0</ele> + <time>2020-08-23T08:22:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5826310" lon="0.5610780"> + <ele>1865.4</ele> + <time>2020-08-23T08:22:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5826090" lon="0.5610610"> + <ele>1865.8</ele> + <time>2020-08-23T08:22:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5825880" lon="0.5610450"> + <ele>1866.0</ele> + <time>2020-08-23T08:22:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5825670" lon="0.5610280"> + <ele>1866.2</ele> + <time>2020-08-23T08:22:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5825460" lon="0.5610110"> + <ele>1866.6</ele> + <time>2020-08-23T08:22:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5825250" lon="0.5609950"> + <ele>1866.8</ele> + <time>2020-08-23T08:22:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5825030" lon="0.5609820"> + <ele>1867.0</ele> + <time>2020-08-23T08:22:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5824790" lon="0.5609700"> + <ele>1867.2</ele> + <time>2020-08-23T08:22:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5824550" lon="0.5609600"> + <ele>1867.4</ele> + <time>2020-08-23T08:22:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5824310" lon="0.5609510"> + <ele>1867.6</ele> + <time>2020-08-23T08:22:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5824090" lon="0.5609420"> + <ele>1867.8</ele> + <time>2020-08-23T08:22:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5823870" lon="0.5609350"> + <ele>1868.0</ele> + <time>2020-08-23T08:22:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5823630" lon="0.5609270"> + <ele>1868.2</ele> + <time>2020-08-23T08:22:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5823400" lon="0.5609200"> + <ele>1868.2</ele> + <time>2020-08-23T08:22:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5823170" lon="0.5609130"> + <ele>1868.4</ele> + <time>2020-08-23T08:22:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5822950" lon="0.5609070"> + <ele>1868.8</ele> + <time>2020-08-23T08:22:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5822720" lon="0.5609010"> + <ele>1869.0</ele> + <time>2020-08-23T08:22:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5822480" lon="0.5608960"> + <ele>1869.0</ele> + <time>2020-08-23T08:22:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5822250" lon="0.5608920"> + <ele>1869.2</ele> + <time>2020-08-23T08:22:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5822020" lon="0.5608900"> + <ele>1869.4</ele> + <time>2020-08-23T08:22:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5821790" lon="0.5608910"> + <ele>1869.6</ele> + <time>2020-08-23T08:22:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5821550" lon="0.5608930"> + <ele>1869.8</ele> + <time>2020-08-23T08:22:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5821310" lon="0.5608920"> + <ele>1870.0</ele> + <time>2020-08-23T08:22:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5821080" lon="0.5608900"> + <ele>1870.2</ele> + <time>2020-08-23T08:22:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5820850" lon="0.5608910"> + <ele>1870.2</ele> + <time>2020-08-23T08:22:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5820620" lon="0.5608910"> + <ele>1870.4</ele> + <time>2020-08-23T08:22:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5820400" lon="0.5608890"> + <ele>1870.6</ele> + <time>2020-08-23T08:22:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5820170" lon="0.5608870"> + <ele>1870.8</ele> + <time>2020-08-23T08:22:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5819940" lon="0.5608870"> + <ele>1870.8</ele> + <time>2020-08-23T08:22:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5819710" lon="0.5608890"> + <ele>1871.0</ele> + <time>2020-08-23T08:22:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5819500" lon="0.5608910"> + <ele>1871.0</ele> + <time>2020-08-23T08:22:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5819280" lon="0.5608930"> + <ele>1871.2</ele> + <time>2020-08-23T08:22:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5819050" lon="0.5608930"> + <ele>1871.2</ele> + <time>2020-08-23T08:22:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5818830" lon="0.5608940"> + <ele>1871.4</ele> + <time>2020-08-23T08:22:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5818600" lon="0.5608950"> + <ele>1871.6</ele> + <time>2020-08-23T08:23:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5818380" lon="0.5608950"> + <ele>1871.8</ele> + <time>2020-08-23T08:23:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5818160" lon="0.5608960"> + <ele>1872.0</ele> + <time>2020-08-23T08:23:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5817950" lon="0.5608970"> + <ele>1872.0</ele> + <time>2020-08-23T08:23:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5817730" lon="0.5608980"> + <ele>1872.2</ele> + <time>2020-08-23T08:23:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5817520" lon="0.5609000"> + <ele>1872.4</ele> + <time>2020-08-23T08:23:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5817310" lon="0.5609030"> + <ele>1872.4</ele> + <time>2020-08-23T08:23:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5817100" lon="0.5609060"> + <ele>1872.6</ele> + <time>2020-08-23T08:23:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5816890" lon="0.5609080"> + <ele>1872.8</ele> + <time>2020-08-23T08:23:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5816670" lon="0.5609110"> + <ele>1873.0</ele> + <time>2020-08-23T08:23:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5816460" lon="0.5609140"> + <ele>1873.2</ele> + <time>2020-08-23T08:23:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5816250" lon="0.5609150"> + <ele>1873.4</ele> + <time>2020-08-23T08:23:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5816050" lon="0.5609170"> + <ele>1873.6</ele> + <time>2020-08-23T08:23:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5815840" lon="0.5609210"> + <ele>1873.6</ele> + <time>2020-08-23T08:23:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5815640" lon="0.5609260"> + <ele>1873.8</ele> + <time>2020-08-23T08:23:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5815440" lon="0.5609300"> + <ele>1874.0</ele> + <time>2020-08-23T08:23:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5815220" lon="0.5609340"> + <ele>1874.2</ele> + <time>2020-08-23T08:23:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5815010" lon="0.5609410"> + <ele>1874.2</ele> + <time>2020-08-23T08:23:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5814800" lon="0.5609470"> + <ele>1874.4</ele> + <time>2020-08-23T08:23:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5814590" lon="0.5609530"> + <ele>1874.4</ele> + <time>2020-08-23T08:23:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5814380" lon="0.5609610"> + <ele>1874.4</ele> + <time>2020-08-23T08:23:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5814170" lon="0.5609710"> + <ele>1874.6</ele> + <time>2020-08-23T08:23:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5813980" lon="0.5609790"> + <ele>1874.8</ele> + <time>2020-08-23T08:23:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5813780" lon="0.5609880"> + <ele>1875.0</ele> + <time>2020-08-23T08:23:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5813580" lon="0.5609960"> + <ele>1875.0</ele> + <time>2020-08-23T08:23:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5813390" lon="0.5610050"> + <ele>1875.2</ele> + <time>2020-08-23T08:23:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5813200" lon="0.5610160"> + <ele>1875.2</ele> + <time>2020-08-23T08:23:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5813010" lon="0.5610300"> + <ele>1875.4</ele> + <time>2020-08-23T08:23:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5812810" lon="0.5610430"> + <ele>1875.6</ele> + <time>2020-08-23T08:23:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5812610" lon="0.5610550"> + <ele>1875.8</ele> + <time>2020-08-23T08:23:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5812410" lon="0.5610690"> + <ele>1875.8</ele> + <time>2020-08-23T08:23:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5812220" lon="0.5610840"> + <ele>1876.0</ele> + <time>2020-08-23T08:23:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5812040" lon="0.5610970"> + <ele>1876.2</ele> + <time>2020-08-23T08:23:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5811860" lon="0.5611100"> + <ele>1876.2</ele> + <time>2020-08-23T08:23:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5811680" lon="0.5611230"> + <ele>1876.4</ele> + <time>2020-08-23T08:23:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5811490" lon="0.5611370"> + <ele>1876.6</ele> + <time>2020-08-23T08:23:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5811310" lon="0.5611500"> + <ele>1876.6</ele> + <time>2020-08-23T08:23:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5811130" lon="0.5611630"> + <ele>1876.8</ele> + <time>2020-08-23T08:23:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5810940" lon="0.5611740"> + <ele>1877.0</ele> + <time>2020-08-23T08:23:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5810750" lon="0.5611840"> + <ele>1877.0</ele> + <time>2020-08-23T08:23:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5810570" lon="0.5611970"> + <ele>1877.2</ele> + <time>2020-08-23T08:23:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5810390" lon="0.5612110"> + <ele>1877.2</ele> + <time>2020-08-23T08:23:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5810220" lon="0.5612240"> + <ele>1877.4</ele> + <time>2020-08-23T08:23:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5810030" lon="0.5612370"> + <ele>1877.6</ele> + <time>2020-08-23T08:23:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5809840" lon="0.5612490"> + <ele>1877.8</ele> + <time>2020-08-23T08:23:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5809650" lon="0.5612640"> + <ele>1878.0</ele> + <time>2020-08-23T08:23:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5809470" lon="0.5612790"> + <ele>1878.2</ele> + <time>2020-08-23T08:23:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5809260" lon="0.5612910"> + <ele>1878.4</ele> + <time>2020-08-23T08:23:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5809050" lon="0.5613040"> + <ele>1878.6</ele> + <time>2020-08-23T08:23:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5808830" lon="0.5613200"> + <ele>1878.8</ele> + <time>2020-08-23T08:23:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5808630" lon="0.5613370"> + <ele>1878.8</ele> + <time>2020-08-23T08:23:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5808400" lon="0.5613510"> + <ele>1879.0</ele> + <time>2020-08-23T08:23:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5808190" lon="0.5613660"> + <ele>1879.2</ele> + <time>2020-08-23T08:23:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5807990" lon="0.5613820"> + <ele>1879.4</ele> + <time>2020-08-23T08:23:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5807780" lon="0.5613960"> + <ele>1879.4</ele> + <time>2020-08-23T08:23:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5807570" lon="0.5614100"> + <ele>1879.6</ele> + <time>2020-08-23T08:23:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5807360" lon="0.5614240"> + <ele>1879.8</ele> + <time>2020-08-23T08:23:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5807160" lon="0.5614400"> + <ele>1879.8</ele> + <time>2020-08-23T08:23:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5806950" lon="0.5614570"> + <ele>1879.8</ele> + <time>2020-08-23T08:23:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5806750" lon="0.5614720"> + <ele>1880.0</ele> + <time>2020-08-23T08:23:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5806530" lon="0.5614840"> + <ele>1880.0</ele> + <time>2020-08-23T08:24:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5806320" lon="0.5614970"> + <ele>1880.2</ele> + <time>2020-08-23T08:24:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5806120" lon="0.5615110"> + <ele>1880.4</ele> + <time>2020-08-23T08:24:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5805930" lon="0.5615260"> + <ele>1880.6</ele> + <time>2020-08-23T08:24:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5805730" lon="0.5615430"> + <ele>1880.8</ele> + <time>2020-08-23T08:24:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5805540" lon="0.5615590"> + <ele>1880.8</ele> + <time>2020-08-23T08:24:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5805350" lon="0.5615760"> + <ele>1881.0</ele> + <time>2020-08-23T08:24:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5805160" lon="0.5615930"> + <ele>1880.8</ele> + <time>2020-08-23T08:24:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5804980" lon="0.5616110"> + <ele>1881.0</ele> + <time>2020-08-23T08:24:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5804800" lon="0.5616300"> + <ele>1881.2</ele> + <time>2020-08-23T08:24:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5804610" lon="0.5616480"> + <ele>1881.2</ele> + <time>2020-08-23T08:24:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5804430" lon="0.5616670"> + <ele>1881.4</ele> + <time>2020-08-23T08:24:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5804260" lon="0.5616890"> + <ele>1881.6</ele> + <time>2020-08-23T08:24:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5804100" lon="0.5617100"> + <ele>1881.8</ele> + <time>2020-08-23T08:24:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5803920" lon="0.5617290"> + <ele>1881.8</ele> + <time>2020-08-23T08:24:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5803760" lon="0.5617490"> + <ele>1882.0</ele> + <time>2020-08-23T08:24:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5803610" lon="0.5617720"> + <ele>1882.2</ele> + <time>2020-08-23T08:24:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5803460" lon="0.5617960"> + <ele>1882.4</ele> + <time>2020-08-23T08:24:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5803280" lon="0.5618150"> + <ele>1882.4</ele> + <time>2020-08-23T08:24:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5803100" lon="0.5618340"> + <ele>1882.6</ele> + <time>2020-08-23T08:24:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5802940" lon="0.5618560"> + <ele>1882.8</ele> + <time>2020-08-23T08:24:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5802770" lon="0.5618790"> + <ele>1883.0</ele> + <time>2020-08-23T08:24:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5802620" lon="0.5619020"> + <ele>1883.2</ele> + <time>2020-08-23T08:24:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5802460" lon="0.5619230"> + <ele>1883.4</ele> + <time>2020-08-23T08:24:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5802300" lon="0.5619420"> + <ele>1883.4</ele> + <time>2020-08-23T08:24:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5802130" lon="0.5619620"> + <ele>1883.6</ele> + <time>2020-08-23T08:24:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801960" lon="0.5619810"> + <ele>1883.8</ele> + <time>2020-08-23T08:24:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801800" lon="0.5620020"> + <ele>1884.0</ele> + <time>2020-08-23T08:24:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801650" lon="0.5620240"> + <ele>1884.4</ele> + <time>2020-08-23T08:24:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801490" lon="0.5620450"> + <ele>1884.4</ele> + <time>2020-08-23T08:24:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801320" lon="0.5620650"> + <ele>1884.6</ele> + <time>2020-08-23T08:24:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801160" lon="0.5620870"> + <ele>1884.8</ele> + <time>2020-08-23T08:24:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801000" lon="0.5621090"> + <ele>1884.8</ele> + <time>2020-08-23T08:24:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5800830" lon="0.5621320"> + <ele>1885.0</ele> + <time>2020-08-23T08:24:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5800660" lon="0.5621540"> + <ele>1885.0</ele> + <time>2020-08-23T08:24:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5800490" lon="0.5621770"> + <ele>1885.2</ele> + <time>2020-08-23T08:24:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5800310" lon="0.5621980"> + <ele>1885.2</ele> + <time>2020-08-23T08:24:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5800120" lon="0.5622180"> + <ele>1885.2</ele> + <time>2020-08-23T08:24:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5799920" lon="0.5622370"> + <ele>1885.4</ele> + <time>2020-08-23T08:24:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5799730" lon="0.5622560"> + <ele>1885.6</ele> + <time>2020-08-23T08:24:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5799540" lon="0.5622740"> + <ele>1885.6</ele> + <time>2020-08-23T08:24:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5799340" lon="0.5622910"> + <ele>1885.8</ele> + <time>2020-08-23T08:24:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5799140" lon="0.5623080"> + <ele>1886.0</ele> + <time>2020-08-23T08:24:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798950" lon="0.5623270"> + <ele>1886.2</ele> + <time>2020-08-23T08:24:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798770" lon="0.5623460"> + <ele>1886.2</ele> + <time>2020-08-23T08:24:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798580" lon="0.5623640"> + <ele>1886.4</ele> + <time>2020-08-23T08:24:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798380" lon="0.5623810"> + <ele>1886.6</ele> + <time>2020-08-23T08:24:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798170" lon="0.5623960"> + <ele>1886.8</ele> + <time>2020-08-23T08:24:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5797960" lon="0.5624100"> + <ele>1887.0</ele> + <time>2020-08-23T08:24:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5797740" lon="0.5624230"> + <ele>1887.2</ele> + <time>2020-08-23T08:24:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5797530" lon="0.5624360"> + <ele>1887.4</ele> + <time>2020-08-23T08:24:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5797310" lon="0.5624470"> + <ele>1887.6</ele> + <time>2020-08-23T08:24:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5797090" lon="0.5624570"> + <ele>1887.8</ele> + <time>2020-08-23T08:24:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5796860" lon="0.5624690"> + <ele>1887.8</ele> + <time>2020-08-23T08:24:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5796650" lon="0.5624830"> + <ele>1888.0</ele> + <time>2020-08-23T08:24:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5796440" lon="0.5624980"> + <ele>1888.2</ele> + <time>2020-08-23T08:24:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5796230" lon="0.5625110"> + <ele>1888.2</ele> + <time>2020-08-23T08:24:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5796010" lon="0.5625180"> + <ele>1888.4</ele> + <time>2020-08-23T08:24:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5795770" lon="0.5625230"> + <ele>1888.6</ele> + <time>2020-08-23T08:24:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5795550" lon="0.5625300"> + <ele>1888.8</ele> + <time>2020-08-23T08:24:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5795330" lon="0.5625400"> + <ele>1889.0</ele> + <time>2020-08-23T08:25:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5795110" lon="0.5625500"> + <ele>1889.0</ele> + <time>2020-08-23T08:25:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5794890" lon="0.5625600"> + <ele>1889.2</ele> + <time>2020-08-23T08:25:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5794670" lon="0.5625710"> + <ele>1889.4</ele> + <time>2020-08-23T08:25:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5794440" lon="0.5625820"> + <ele>1889.4</ele> + <time>2020-08-23T08:25:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5794230" lon="0.5625910"> + <ele>1889.6</ele> + <time>2020-08-23T08:25:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5794010" lon="0.5625980"> + <ele>1889.6</ele> + <time>2020-08-23T08:25:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5793790" lon="0.5626060"> + <ele>1889.8</ele> + <time>2020-08-23T08:25:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5793570" lon="0.5626140"> + <ele>1890.0</ele> + <time>2020-08-23T08:25:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5793360" lon="0.5626240"> + <ele>1890.4</ele> + <time>2020-08-23T08:25:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5793150" lon="0.5626350"> + <ele>1890.8</ele> + <time>2020-08-23T08:25:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5792950" lon="0.5626480"> + <ele>1891.2</ele> + <time>2020-08-23T08:25:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5792740" lon="0.5626610"> + <ele>1891.4</ele> + <time>2020-08-23T08:25:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5792530" lon="0.5626740"> + <ele>1891.6</ele> + <time>2020-08-23T08:25:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5792330" lon="0.5626840"> + <ele>1891.8</ele> + <time>2020-08-23T08:25:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5792110" lon="0.5626930"> + <ele>1892.0</ele> + <time>2020-08-23T08:25:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5791900" lon="0.5627030"> + <ele>1892.0</ele> + <time>2020-08-23T08:25:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5791680" lon="0.5627120"> + <ele>1892.2</ele> + <time>2020-08-23T08:25:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5791460" lon="0.5627190"> + <ele>1892.2</ele> + <time>2020-08-23T08:25:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5791240" lon="0.5627270"> + <ele>1892.4</ele> + <time>2020-08-23T08:25:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5791030" lon="0.5627380"> + <ele>1892.6</ele> + <time>2020-08-23T08:25:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5790810" lon="0.5627470"> + <ele>1892.6</ele> + <time>2020-08-23T08:25:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5790600" lon="0.5627590"> + <ele>1892.8</ele> + <time>2020-08-23T08:25:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5790400" lon="0.5627720"> + <ele>1892.8</ele> + <time>2020-08-23T08:25:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5790190" lon="0.5627840"> + <ele>1893.0</ele> + <time>2020-08-23T08:25:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5789990" lon="0.5627960"> + <ele>1893.2</ele> + <time>2020-08-23T08:25:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5789790" lon="0.5628090"> + <ele>1893.4</ele> + <time>2020-08-23T08:25:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5789590" lon="0.5628210"> + <ele>1893.6</ele> + <time>2020-08-23T08:25:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5789370" lon="0.5628310"> + <ele>1894.0</ele> + <time>2020-08-23T08:25:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5789150" lon="0.5628410"> + <ele>1894.2</ele> + <time>2020-08-23T08:25:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5788940" lon="0.5628520"> + <ele>1894.2</ele> + <time>2020-08-23T08:25:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5788730" lon="0.5628660"> + <ele>1894.4</ele> + <time>2020-08-23T08:25:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5788510" lon="0.5628770"> + <ele>1894.6</ele> + <time>2020-08-23T08:25:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5788300" lon="0.5628870"> + <ele>1894.8</ele> + <time>2020-08-23T08:25:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5788090" lon="0.5628960"> + <ele>1894.8</ele> + <time>2020-08-23T08:25:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5787880" lon="0.5629050"> + <ele>1894.8</ele> + <time>2020-08-23T08:25:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5787660" lon="0.5629150"> + <ele>1895.2</ele> + <time>2020-08-23T08:25:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5787460" lon="0.5629240"> + <ele>1895.2</ele> + <time>2020-08-23T08:25:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5787250" lon="0.5629340"> + <ele>1895.2</ele> + <time>2020-08-23T08:25:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5787070" lon="0.5629460"> + <ele>1895.4</ele> + <time>2020-08-23T08:25:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5786890" lon="0.5629570"> + <ele>1895.4</ele> + <time>2020-08-23T08:25:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5786710" lon="0.5629690"> + <ele>1895.6</ele> + <time>2020-08-23T08:25:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5786520" lon="0.5629780"> + <ele>1895.6</ele> + <time>2020-08-23T08:25:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5786340" lon="0.5629870"> + <ele>1895.6</ele> + <time>2020-08-23T08:25:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5786160" lon="0.5629990"> + <ele>1895.8</ele> + <time>2020-08-23T08:25:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5785980" lon="0.5630110"> + <ele>1896.0</ele> + <time>2020-08-23T08:25:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5785800" lon="0.5630210"> + <ele>1896.0</ele> + <time>2020-08-23T08:25:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5785620" lon="0.5630310"> + <ele>1896.2</ele> + <time>2020-08-23T08:25:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5785430" lon="0.5630390"> + <ele>1896.4</ele> + <time>2020-08-23T08:25:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5785250" lon="0.5630480"> + <ele>1896.6</ele> + <time>2020-08-23T08:25:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5785060" lon="0.5630560"> + <ele>1896.8</ele> + <time>2020-08-23T08:25:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5784870" lon="0.5630650"> + <ele>1896.8</ele> + <time>2020-08-23T08:25:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5784690" lon="0.5630750"> + <ele>1897.0</ele> + <time>2020-08-23T08:25:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5784500" lon="0.5630840"> + <ele>1897.2</ele> + <time>2020-08-23T08:25:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5784310" lon="0.5630920"> + <ele>1897.4</ele> + <time>2020-08-23T08:25:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5784120" lon="0.5631020"> + <ele>1897.6</ele> + <time>2020-08-23T08:25:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5783930" lon="0.5631090"> + <ele>1897.8</ele> + <time>2020-08-23T08:25:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5783740" lon="0.5631140"> + <ele>1897.8</ele> + <time>2020-08-23T08:25:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5783540" lon="0.5631180"> + <ele>1898.0</ele> + <time>2020-08-23T08:25:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5783350" lon="0.5631190"> + <ele>1898.2</ele> + <time>2020-08-23T08:25:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5783150" lon="0.5631210"> + <ele>1898.2</ele> + <time>2020-08-23T08:26:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5782960" lon="0.5631270"> + <ele>1898.4</ele> + <time>2020-08-23T08:26:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5782760" lon="0.5631310"> + <ele>1898.8</ele> + <time>2020-08-23T08:26:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5782570" lon="0.5631350"> + <ele>1899.0</ele> + <time>2020-08-23T08:26:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5782370" lon="0.5631370"> + <ele>1899.0</ele> + <time>2020-08-23T08:26:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5782170" lon="0.5631400"> + <ele>1899.2</ele> + <time>2020-08-23T08:26:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5781970" lon="0.5631430"> + <ele>1899.4</ele> + <time>2020-08-23T08:26:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5781770" lon="0.5631430"> + <ele>1899.4</ele> + <time>2020-08-23T08:26:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5781570" lon="0.5631430"> + <ele>1899.6</ele> + <time>2020-08-23T08:26:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5781380" lon="0.5631440"> + <ele>1899.8</ele> + <time>2020-08-23T08:26:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5781190" lon="0.5631480"> + <ele>1899.8</ele> + <time>2020-08-23T08:26:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5781010" lon="0.5631520"> + <ele>1900.0</ele> + <time>2020-08-23T08:26:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5780840" lon="0.5631540"> + <ele>1900.0</ele> + <time>2020-08-23T08:26:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5780660" lon="0.5631530"> + <ele>1900.2</ele> + <time>2020-08-23T08:26:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5780470" lon="0.5631500"> + <ele>1900.4</ele> + <time>2020-08-23T08:26:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5780280" lon="0.5631450"> + <ele>1900.4</ele> + <time>2020-08-23T08:26:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5780080" lon="0.5631400"> + <ele>1900.6</ele> + <time>2020-08-23T08:26:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5779880" lon="0.5631340"> + <ele>1900.8</ele> + <time>2020-08-23T08:26:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5779690" lon="0.5631290"> + <ele>1900.8</ele> + <time>2020-08-23T08:26:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5779490" lon="0.5631260"> + <ele>1901.0</ele> + <time>2020-08-23T08:26:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5779280" lon="0.5631210"> + <ele>1901.0</ele> + <time>2020-08-23T08:26:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5779090" lon="0.5631150"> + <ele>1901.2</ele> + <time>2020-08-23T08:26:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5778900" lon="0.5631100"> + <ele>1901.2</ele> + <time>2020-08-23T08:26:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5778710" lon="0.5631060"> + <ele>1901.2</ele> + <time>2020-08-23T08:26:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5778520" lon="0.5631020"> + <ele>1901.4</ele> + <time>2020-08-23T08:26:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5778340" lon="0.5630980"> + <ele>1901.4</ele> + <time>2020-08-23T08:26:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5778160" lon="0.5630890"> + <ele>1901.6</ele> + <time>2020-08-23T08:26:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5777990" lon="0.5630820"> + <ele>1901.6</ele> + <time>2020-08-23T08:26:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5777810" lon="0.5630730"> + <ele>1901.8</ele> + <time>2020-08-23T08:26:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5777630" lon="0.5630650"> + <ele>1902.0</ele> + <time>2020-08-23T08:26:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5777430" lon="0.5630580"> + <ele>1902.0</ele> + <time>2020-08-23T08:26:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5777230" lon="0.5630500"> + <ele>1902.2</ele> + <time>2020-08-23T08:26:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5777040" lon="0.5630400"> + <ele>1902.2</ele> + <time>2020-08-23T08:26:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5776850" lon="0.5630310"> + <ele>1902.4</ele> + <time>2020-08-23T08:26:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5776640" lon="0.5630220"> + <ele>1902.6</ele> + <time>2020-08-23T08:26:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5776420" lon="0.5630130"> + <ele>1902.8</ele> + <time>2020-08-23T08:26:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5776220" lon="0.5630060"> + <ele>1903.0</ele> + <time>2020-08-23T08:26:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5776010" lon="0.5629990"> + <ele>1903.2</ele> + <time>2020-08-23T08:26:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5775810" lon="0.5629920"> + <ele>1903.2</ele> + <time>2020-08-23T08:26:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5775600" lon="0.5629850"> + <ele>1903.4</ele> + <time>2020-08-23T08:26:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5775400" lon="0.5629770"> + <ele>1903.6</ele> + <time>2020-08-23T08:26:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5775190" lon="0.5629720"> + <ele>1903.6</ele> + <time>2020-08-23T08:26:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5774990" lon="0.5629680"> + <ele>1903.8</ele> + <time>2020-08-23T08:26:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5774780" lon="0.5629660"> + <ele>1904.0</ele> + <time>2020-08-23T08:26:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5774580" lon="0.5629670"> + <ele>1904.0</ele> + <time>2020-08-23T08:26:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5774370" lon="0.5629690"> + <ele>1904.2</ele> + <time>2020-08-23T08:26:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5774160" lon="0.5629700"> + <ele>1904.4</ele> + <time>2020-08-23T08:26:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5773960" lon="0.5629720"> + <ele>1904.6</ele> + <time>2020-08-23T08:26:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5773760" lon="0.5629780"> + <ele>1904.8</ele> + <time>2020-08-23T08:26:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5773560" lon="0.5629850"> + <ele>1905.0</ele> + <time>2020-08-23T08:26:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5773360" lon="0.5629920"> + <ele>1905.0</ele> + <time>2020-08-23T08:26:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5773160" lon="0.5629980"> + <ele>1905.4</ele> + <time>2020-08-23T08:26:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5772960" lon="0.5630070"> + <ele>1905.4</ele> + <time>2020-08-23T08:26:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5772770" lon="0.5630190"> + <ele>1905.6</ele> + <time>2020-08-23T08:26:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5772590" lon="0.5630300"> + <ele>1905.8</ele> + <time>2020-08-23T08:26:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5772410" lon="0.5630430"> + <ele>1906.0</ele> + <time>2020-08-23T08:26:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5772240" lon="0.5630580"> + <ele>1906.0</ele> + <time>2020-08-23T08:26:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5772070" lon="0.5630730"> + <ele>1906.2</ele> + <time>2020-08-23T08:26:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771910" lon="0.5630900"> + <ele>1906.4</ele> + <time>2020-08-23T08:26:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771750" lon="0.5631070"> + <ele>1906.4</ele> + <time>2020-08-23T08:26:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771610" lon="0.5631280"> + <ele>1906.6</ele> + <time>2020-08-23T08:27:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771470" lon="0.5631480"> + <ele>1906.8</ele> + <time>2020-08-23T08:27:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771320" lon="0.5631670"> + <ele>1907.0</ele> + <time>2020-08-23T08:27:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771180" lon="0.5631860"> + <ele>1907.0</ele> + <time>2020-08-23T08:27:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771050" lon="0.5632050"> + <ele>1907.2</ele> + <time>2020-08-23T08:27:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5770900" lon="0.5632210"> + <ele>1907.2</ele> + <time>2020-08-23T08:27:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5770730" lon="0.5632340"> + <ele>1907.4</ele> + <time>2020-08-23T08:27:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5770570" lon="0.5632490"> + <ele>1907.6</ele> + <time>2020-08-23T08:27:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5770410" lon="0.5632650"> + <ele>1907.8</ele> + <time>2020-08-23T08:27:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5770260" lon="0.5632810"> + <ele>1908.2</ele> + <time>2020-08-23T08:27:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5770100" lon="0.5632970"> + <ele>1908.2</ele> + <time>2020-08-23T08:27:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5769950" lon="0.5633140"> + <ele>1908.4</ele> + <time>2020-08-23T08:27:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5769790" lon="0.5633300"> + <ele>1908.4</ele> + <time>2020-08-23T08:27:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5769640" lon="0.5633480"> + <ele>1908.6</ele> + <time>2020-08-23T08:27:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5769500" lon="0.5633680"> + <ele>1908.6</ele> + <time>2020-08-23T08:27:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5769360" lon="0.5633870"> + <ele>1908.8</ele> + <time>2020-08-23T08:27:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5769210" lon="0.5634050"> + <ele>1908.8</ele> + <time>2020-08-23T08:27:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5769070" lon="0.5634230"> + <ele>1908.8</ele> + <time>2020-08-23T08:27:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768920" lon="0.5634410"> + <ele>1909.0</ele> + <time>2020-08-23T08:27:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768770" lon="0.5634580"> + <ele>1909.2</ele> + <time>2020-08-23T08:27:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768630" lon="0.5634750"> + <ele>1909.4</ele> + <time>2020-08-23T08:27:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768470" lon="0.5634910"> + <ele>1909.4</ele> + <time>2020-08-23T08:27:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768310" lon="0.5635070"> + <ele>1909.4</ele> + <time>2020-08-23T08:27:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768150" lon="0.5635230"> + <ele>1909.6</ele> + <time>2020-08-23T08:27:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768000" lon="0.5635380"> + <ele>1909.8</ele> + <time>2020-08-23T08:27:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5767840" lon="0.5635540"> + <ele>1909.8</ele> + <time>2020-08-23T08:27:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5767670" lon="0.5635700"> + <ele>1909.8</ele> + <time>2020-08-23T08:27:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5767510" lon="0.5635860"> + <ele>1910.0</ele> + <time>2020-08-23T08:27:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5767350" lon="0.5636020"> + <ele>1910.2</ele> + <time>2020-08-23T08:27:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5767190" lon="0.5636170"> + <ele>1910.4</ele> + <time>2020-08-23T08:27:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5767020" lon="0.5636320"> + <ele>1910.4</ele> + <time>2020-08-23T08:27:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5766870" lon="0.5636490"> + <ele>1910.6</ele> + <time>2020-08-23T08:27:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5766720" lon="0.5636660"> + <ele>1910.6</ele> + <time>2020-08-23T08:27:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5766570" lon="0.5636830"> + <ele>1910.6</ele> + <time>2020-08-23T08:27:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5766420" lon="0.5637000"> + <ele>1910.8</ele> + <time>2020-08-23T08:27:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5766240" lon="0.5637150"> + <ele>1911.0</ele> + <time>2020-08-23T08:27:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5766080" lon="0.5637310"> + <ele>1911.2</ele> + <time>2020-08-23T08:27:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765910" lon="0.5637480"> + <ele>1911.4</ele> + <time>2020-08-23T08:27:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765740" lon="0.5637630"> + <ele>1911.6</ele> + <time>2020-08-23T08:27:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765570" lon="0.5637760"> + <ele>1911.8</ele> + <time>2020-08-23T08:27:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765380" lon="0.5637860"> + <ele>1912.0</ele> + <time>2020-08-23T08:27:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765200" lon="0.5637970"> + <ele>1912.2</ele> + <time>2020-08-23T08:27:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765030" lon="0.5638080"> + <ele>1912.6</ele> + <time>2020-08-23T08:27:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5764850" lon="0.5638140"> + <ele>1912.6</ele> + <time>2020-08-23T08:27:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5764660" lon="0.5638170"> + <ele>1912.8</ele> + <time>2020-08-23T08:27:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5764470" lon="0.5638180"> + <ele>1913.0</ele> + <time>2020-08-23T08:27:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5764270" lon="0.5638180"> + <ele>1913.0</ele> + <time>2020-08-23T08:27:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5764070" lon="0.5638200"> + <ele>1913.2</ele> + <time>2020-08-23T08:27:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5763870" lon="0.5638230"> + <ele>1913.2</ele> + <time>2020-08-23T08:27:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5763680" lon="0.5638250"> + <ele>1913.4</ele> + <time>2020-08-23T08:27:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5763480" lon="0.5638260"> + <ele>1913.4</ele> + <time>2020-08-23T08:27:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5763280" lon="0.5638240"> + <ele>1913.6</ele> + <time>2020-08-23T08:27:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5763090" lon="0.5638210"> + <ele>1913.6</ele> + <time>2020-08-23T08:27:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5762900" lon="0.5638220"> + <ele>1913.8</ele> + <time>2020-08-23T08:27:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5762700" lon="0.5638250"> + <ele>1914.0</ele> + <time>2020-08-23T08:27:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5762510" lon="0.5638280"> + <ele>1914.0</ele> + <time>2020-08-23T08:27:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5762320" lon="0.5638320"> + <ele>1914.2</ele> + <time>2020-08-23T08:27:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5762120" lon="0.5638380"> + <ele>1914.4</ele> + <time>2020-08-23T08:27:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5761940" lon="0.5638420"> + <ele>1914.6</ele> + <time>2020-08-23T08:27:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5761750" lon="0.5638480"> + <ele>1914.6</ele> + <time>2020-08-23T08:27:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5761570" lon="0.5638550"> + <ele>1914.8</ele> + <time>2020-08-23T08:28:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5761400" lon="0.5638640"> + <ele>1914.8</ele> + <time>2020-08-23T08:28:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5761210" lon="0.5638730"> + <ele>1915.0</ele> + <time>2020-08-23T08:28:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5761030" lon="0.5638800"> + <ele>1915.0</ele> + <time>2020-08-23T08:28:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5760850" lon="0.5638880"> + <ele>1915.2</ele> + <time>2020-08-23T08:28:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5760670" lon="0.5638980"> + <ele>1915.4</ele> + <time>2020-08-23T08:28:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5760490" lon="0.5639100"> + <ele>1915.6</ele> + <time>2020-08-23T08:28:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5760300" lon="0.5639220"> + <ele>1915.6</ele> + <time>2020-08-23T08:28:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5760120" lon="0.5639350"> + <ele>1915.8</ele> + <time>2020-08-23T08:28:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5759950" lon="0.5639490"> + <ele>1916.0</ele> + <time>2020-08-23T08:28:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5759760" lon="0.5639630"> + <ele>1916.0</ele> + <time>2020-08-23T08:28:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5759580" lon="0.5639780"> + <ele>1916.2</ele> + <time>2020-08-23T08:28:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5759400" lon="0.5639950"> + <ele>1916.2</ele> + <time>2020-08-23T08:28:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5759240" lon="0.5640130"> + <ele>1916.6</ele> + <time>2020-08-23T08:28:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5759080" lon="0.5640300"> + <ele>1916.6</ele> + <time>2020-08-23T08:28:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5758900" lon="0.5640450"> + <ele>1916.8</ele> + <time>2020-08-23T08:28:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5758740" lon="0.5640620"> + <ele>1917.2</ele> + <time>2020-08-23T08:28:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5758580" lon="0.5640780"> + <ele>1917.4</ele> + <time>2020-08-23T08:28:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5758410" lon="0.5640910"> + <ele>1917.6</ele> + <time>2020-08-23T08:28:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5758230" lon="0.5641020"> + <ele>1917.8</ele> + <time>2020-08-23T08:28:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5758070" lon="0.5641160"> + <ele>1918.0</ele> + <time>2020-08-23T08:28:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5757920" lon="0.5641320"> + <ele>1918.0</ele> + <time>2020-08-23T08:28:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5757760" lon="0.5641460"> + <ele>1918.2</ele> + <time>2020-08-23T08:28:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5757590" lon="0.5641610"> + <ele>1918.2</ele> + <time>2020-08-23T08:28:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5757420" lon="0.5641760"> + <ele>1918.4</ele> + <time>2020-08-23T08:28:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5757260" lon="0.5641930"> + <ele>1918.4</ele> + <time>2020-08-23T08:28:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5757100" lon="0.5642080"> + <ele>1918.6</ele> + <time>2020-08-23T08:28:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5756930" lon="0.5642230"> + <ele>1918.6</ele> + <time>2020-08-23T08:28:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5756760" lon="0.5642360"> + <ele>1918.8</ele> + <time>2020-08-23T08:28:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5756610" lon="0.5642500"> + <ele>1918.8</ele> + <time>2020-08-23T08:28:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5756460" lon="0.5642650"> + <ele>1918.8</ele> + <time>2020-08-23T08:28:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5756290" lon="0.5642820"> + <ele>1919.0</ele> + <time>2020-08-23T08:28:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5756130" lon="0.5642990"> + <ele>1919.0</ele> + <time>2020-08-23T08:28:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755970" lon="0.5643170"> + <ele>1919.2</ele> + <time>2020-08-23T08:28:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755820" lon="0.5643310"> + <ele>1919.4</ele> + <time>2020-08-23T08:28:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755660" lon="0.5643470"> + <ele>1919.2</ele> + <time>2020-08-23T08:28:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755500" lon="0.5643620"> + <ele>1919.4</ele> + <time>2020-08-23T08:28:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755340" lon="0.5643760"> + <ele>1919.6</ele> + <time>2020-08-23T08:28:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755180" lon="0.5643910"> + <ele>1919.8</ele> + <time>2020-08-23T08:28:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755010" lon="0.5644070"> + <ele>1920.0</ele> + <time>2020-08-23T08:28:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5754850" lon="0.5644210"> + <ele>1920.2</ele> + <time>2020-08-23T08:28:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5754680" lon="0.5644350"> + <ele>1920.4</ele> + <time>2020-08-23T08:28:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5754520" lon="0.5644510"> + <ele>1920.4</ele> + <time>2020-08-23T08:28:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5754340" lon="0.5644650"> + <ele>1920.6</ele> + <time>2020-08-23T08:28:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5754160" lon="0.5644790"> + <ele>1920.6</ele> + <time>2020-08-23T08:28:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5753980" lon="0.5644920"> + <ele>1920.8</ele> + <time>2020-08-23T08:28:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5753790" lon="0.5645040"> + <ele>1921.0</ele> + <time>2020-08-23T08:28:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5753600" lon="0.5645140"> + <ele>1921.0</ele> + <time>2020-08-23T08:28:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5753410" lon="0.5645220"> + <ele>1921.2</ele> + <time>2020-08-23T08:28:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5753220" lon="0.5645240"> + <ele>1921.4</ele> + <time>2020-08-23T08:28:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5753020" lon="0.5645240"> + <ele>1921.6</ele> + <time>2020-08-23T08:28:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5752820" lon="0.5645290"> + <ele>1921.8</ele> + <time>2020-08-23T08:28:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5752620" lon="0.5645340"> + <ele>1922.0</ele> + <time>2020-08-23T08:28:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5752410" lon="0.5645340"> + <ele>1922.2</ele> + <time>2020-08-23T08:28:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5752210" lon="0.5645280"> + <ele>1922.4</ele> + <time>2020-08-23T08:28:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5752020" lon="0.5645190"> + <ele>1922.6</ele> + <time>2020-08-23T08:28:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5751820" lon="0.5645080"> + <ele>1922.6</ele> + <time>2020-08-23T08:28:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5751630" lon="0.5644950"> + <ele>1922.8</ele> + <time>2020-08-23T08:28:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5751450" lon="0.5644830"> + <ele>1923.0</ele> + <time>2020-08-23T08:28:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5751260" lon="0.5644710"> + <ele>1923.2</ele> + <time>2020-08-23T08:28:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5751090" lon="0.5644610"> + <ele>1923.2</ele> + <time>2020-08-23T08:29:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5750910" lon="0.5644480"> + <ele>1923.4</ele> + <time>2020-08-23T08:29:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5750720" lon="0.5644370"> + <ele>1923.4</ele> + <time>2020-08-23T08:29:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5750530" lon="0.5644290"> + <ele>1923.6</ele> + <time>2020-08-23T08:29:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5750340" lon="0.5644210"> + <ele>1923.8</ele> + <time>2020-08-23T08:29:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5750150" lon="0.5644130"> + <ele>1924.0</ele> + <time>2020-08-23T08:29:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749960" lon="0.5644080"> + <ele>1924.2</ele> + <time>2020-08-23T08:29:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749770" lon="0.5644050"> + <ele>1924.2</ele> + <time>2020-08-23T08:29:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749590" lon="0.5644040"> + <ele>1924.4</ele> + <time>2020-08-23T08:29:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749400" lon="0.5644030"> + <ele>1924.6</ele> + <time>2020-08-23T08:29:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749210" lon="0.5644050"> + <ele>1924.8</ele> + <time>2020-08-23T08:29:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749030" lon="0.5644080"> + <ele>1925.0</ele> + <time>2020-08-23T08:29:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748830" lon="0.5644110"> + <ele>1925.0</ele> + <time>2020-08-23T08:29:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748650" lon="0.5644200"> + <ele>1925.2</ele> + <time>2020-08-23T08:29:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748470" lon="0.5644340"> + <ele>1925.2</ele> + <time>2020-08-23T08:29:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748310" lon="0.5644490"> + <ele>1925.4</ele> + <time>2020-08-23T08:29:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748140" lon="0.5644630"> + <ele>1925.6</ele> + <time>2020-08-23T08:29:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747970" lon="0.5644750"> + <ele>1925.8</ele> + <time>2020-08-23T08:29:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747800" lon="0.5644860"> + <ele>1925.8</ele> + <time>2020-08-23T08:29:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747620" lon="0.5644970"> + <ele>1926.0</ele> + <time>2020-08-23T08:29:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747440" lon="0.5645100"> + <ele>1926.0</ele> + <time>2020-08-23T08:29:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747300" lon="0.5645280"> + <ele>1926.2</ele> + <time>2020-08-23T08:29:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747170" lon="0.5645470"> + <ele>1926.4</ele> + <time>2020-08-23T08:29:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747020" lon="0.5645640"> + <ele>1926.4</ele> + <time>2020-08-23T08:29:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746880" lon="0.5645820"> + <ele>1926.6</ele> + <time>2020-08-23T08:29:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746740" lon="0.5646000"> + <ele>1926.8</ele> + <time>2020-08-23T08:29:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746610" lon="0.5646210"> + <ele>1927.0</ele> + <time>2020-08-23T08:29:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746490" lon="0.5646410"> + <ele>1927.0</ele> + <time>2020-08-23T08:29:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746350" lon="0.5646600"> + <ele>1927.2</ele> + <time>2020-08-23T08:29:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746250" lon="0.5646830"> + <ele>1927.4</ele> + <time>2020-08-23T08:29:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746150" lon="0.5647060"> + <ele>1927.6</ele> + <time>2020-08-23T08:29:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746010" lon="0.5647250"> + <ele>1927.8</ele> + <time>2020-08-23T08:29:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5745870" lon="0.5647430"> + <ele>1928.0</ele> + <time>2020-08-23T08:29:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5745730" lon="0.5647620"> + <ele>1928.2</ele> + <time>2020-08-23T08:29:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5745580" lon="0.5647790"> + <ele>1928.4</ele> + <time>2020-08-23T08:29:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5745430" lon="0.5647970"> + <ele>1928.4</ele> + <time>2020-08-23T08:29:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5745280" lon="0.5648150"> + <ele>1928.6</ele> + <time>2020-08-23T08:29:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5745110" lon="0.5648290"> + <ele>1928.6</ele> + <time>2020-08-23T08:29:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5744960" lon="0.5648450"> + <ele>1928.8</ele> + <time>2020-08-23T08:29:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5744810" lon="0.5648620"> + <ele>1928.8</ele> + <time>2020-08-23T08:29:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5744660" lon="0.5648760"> + <ele>1929.0</ele> + <time>2020-08-23T08:29:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5744480" lon="0.5648860"> + <ele>1929.0</ele> + <time>2020-08-23T08:29:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5744290" lon="0.5648920"> + <ele>1929.0</ele> + <time>2020-08-23T08:29:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5744070" lon="0.5648960"> + <ele>1929.2</ele> + <time>2020-08-23T08:29:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5743870" lon="0.5648970"> + <ele>1929.4</ele> + <time>2020-08-23T08:29:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5743660" lon="0.5648970"> + <ele>1929.4</ele> + <time>2020-08-23T08:29:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5743460" lon="0.5648980"> + <ele>1929.6</ele> + <time>2020-08-23T08:29:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5743260" lon="0.5648990"> + <ele>1929.8</ele> + <time>2020-08-23T08:29:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5743060" lon="0.5649010"> + <ele>1929.8</ele> + <time>2020-08-23T08:29:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5742860" lon="0.5649060"> + <ele>1930.0</ele> + <time>2020-08-23T08:29:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5742650" lon="0.5649100"> + <ele>1930.0</ele> + <time>2020-08-23T08:29:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5742450" lon="0.5649120"> + <ele>1930.0</ele> + <time>2020-08-23T08:29:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5742240" lon="0.5649110"> + <ele>1930.2</ele> + <time>2020-08-23T08:29:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5742030" lon="0.5649130"> + <ele>1930.2</ele> + <time>2020-08-23T08:29:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5741830" lon="0.5649140"> + <ele>1930.2</ele> + <time>2020-08-23T08:29:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5741620" lon="0.5649150"> + <ele>1930.4</ele> + <time>2020-08-23T08:29:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5741410" lon="0.5649180"> + <ele>1930.4</ele> + <time>2020-08-23T08:29:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5741200" lon="0.5649190"> + <ele>1930.6</ele> + <time>2020-08-23T08:29:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5740990" lon="0.5649190"> + <ele>1930.8</ele> + <time>2020-08-23T08:29:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5740790" lon="0.5649200"> + <ele>1931.2</ele> + <time>2020-08-23T08:29:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5740580" lon="0.5649200"> + <ele>1931.2</ele> + <time>2020-08-23T08:30:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5740370" lon="0.5649220"> + <ele>1931.4</ele> + <time>2020-08-23T08:30:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5740170" lon="0.5649230"> + <ele>1931.6</ele> + <time>2020-08-23T08:30:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5739960" lon="0.5649240"> + <ele>1931.6</ele> + <time>2020-08-23T08:30:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5739760" lon="0.5649250"> + <ele>1931.8</ele> + <time>2020-08-23T08:30:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5739550" lon="0.5649260"> + <ele>1932.0</ele> + <time>2020-08-23T08:30:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5739350" lon="0.5649280"> + <ele>1932.2</ele> + <time>2020-08-23T08:30:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5739150" lon="0.5649310"> + <ele>1932.4</ele> + <time>2020-08-23T08:30:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5738950" lon="0.5649330"> + <ele>1932.6</ele> + <time>2020-08-23T08:30:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5738740" lon="0.5649320"> + <ele>1933.0</ele> + <time>2020-08-23T08:30:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5738540" lon="0.5649310"> + <ele>1933.2</ele> + <time>2020-08-23T08:30:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5738340" lon="0.5649340"> + <ele>1933.4</ele> + <time>2020-08-23T08:30:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5738150" lon="0.5649380"> + <ele>1933.6</ele> + <time>2020-08-23T08:30:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5737960" lon="0.5649420"> + <ele>1933.8</ele> + <time>2020-08-23T08:30:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5737770" lon="0.5649480"> + <ele>1934.0</ele> + <time>2020-08-23T08:30:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5737590" lon="0.5649560"> + <ele>1934.2</ele> + <time>2020-08-23T08:30:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5737390" lon="0.5649630"> + <ele>1934.4</ele> + <time>2020-08-23T08:30:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5737210" lon="0.5649710"> + <ele>1934.4</ele> + <time>2020-08-23T08:30:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5737020" lon="0.5649780"> + <ele>1934.6</ele> + <time>2020-08-23T08:30:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5736840" lon="0.5649870"> + <ele>1934.8</ele> + <time>2020-08-23T08:30:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5736650" lon="0.5649980"> + <ele>1934.8</ele> + <time>2020-08-23T08:30:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5736460" lon="0.5650090"> + <ele>1935.0</ele> + <time>2020-08-23T08:30:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5736280" lon="0.5650220"> + <ele>1935.2</ele> + <time>2020-08-23T08:30:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5736110" lon="0.5650390"> + <ele>1935.2</ele> + <time>2020-08-23T08:30:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5735940" lon="0.5650540"> + <ele>1935.4</ele> + <time>2020-08-23T08:30:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5735770" lon="0.5650690"> + <ele>1935.6</ele> + <time>2020-08-23T08:30:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5735600" lon="0.5650850"> + <ele>1935.6</ele> + <time>2020-08-23T08:30:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5735450" lon="0.5651040"> + <ele>1935.8</ele> + <time>2020-08-23T08:30:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5735310" lon="0.5651240"> + <ele>1936.0</ele> + <time>2020-08-23T08:30:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5735180" lon="0.5651430"> + <ele>1936.2</ele> + <time>2020-08-23T08:30:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5735040" lon="0.5651630"> + <ele>1936.2</ele> + <time>2020-08-23T08:30:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734920" lon="0.5651850"> + <ele>1936.2</ele> + <time>2020-08-23T08:30:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734840" lon="0.5652100"> + <ele>1936.4</ele> + <time>2020-08-23T08:30:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734750" lon="0.5652340"> + <ele>1936.6</ele> + <time>2020-08-23T08:30:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734640" lon="0.5652570"> + <ele>1936.8</ele> + <time>2020-08-23T08:30:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734520" lon="0.5652770"> + <ele>1936.8</ele> + <time>2020-08-23T08:30:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734410" lon="0.5652990"> + <ele>1937.0</ele> + <time>2020-08-23T08:30:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734310" lon="0.5653210"> + <ele>1937.2</ele> + <time>2020-08-23T08:30:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734230" lon="0.5653440"> + <ele>1937.4</ele> + <time>2020-08-23T08:30:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734170" lon="0.5653700"> + <ele>1937.4</ele> + <time>2020-08-23T08:30:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734120" lon="0.5653950"> + <ele>1937.6</ele> + <time>2020-08-23T08:30:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734040" lon="0.5654210"> + <ele>1937.8</ele> + <time>2020-08-23T08:30:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733990" lon="0.5654460"> + <ele>1938.0</ele> + <time>2020-08-23T08:30:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733950" lon="0.5654740"> + <ele>1938.2</ele> + <time>2020-08-23T08:30:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733900" lon="0.5655030"> + <ele>1938.4</ele> + <time>2020-08-23T08:30:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733780" lon="0.5655310"> + <ele>1938.6</ele> + <time>2020-08-23T08:30:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733650" lon="0.5655530"> + <ele>1938.8</ele> + <time>2020-08-23T08:30:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733560" lon="0.5655760"> + <ele>1938.8</ele> + <time>2020-08-23T08:30:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733490" lon="0.5656050"> + <ele>1939.0</ele> + <time>2020-08-23T08:30:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733450" lon="0.5656330"> + <ele>1939.0</ele> + <time>2020-08-23T08:30:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733430" lon="0.5656630"> + <ele>1939.2</ele> + <time>2020-08-23T08:30:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733410" lon="0.5656940"> + <ele>1939.2</ele> + <time>2020-08-23T08:30:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733380" lon="0.5657240"> + <ele>1939.4</ele> + <time>2020-08-23T08:30:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733320" lon="0.5657530"> + <ele>1939.4</ele> + <time>2020-08-23T08:30:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733260" lon="0.5657830"> + <ele>1939.6</ele> + <time>2020-08-23T08:30:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733230" lon="0.5658140"> + <ele>1939.8</ele> + <time>2020-08-23T08:30:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733200" lon="0.5658420"> + <ele>1939.8</ele> + <time>2020-08-23T08:30:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733170" lon="0.5658710"> + <ele>1940.0</ele> + <time>2020-08-23T08:30:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733140" lon="0.5659020"> + <ele>1940.2</ele> + <time>2020-08-23T08:30:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733120" lon="0.5659340"> + <ele>1940.4</ele> + <time>2020-08-23T08:30:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733080" lon="0.5659650"> + <ele>1940.6</ele> + <time>2020-08-23T08:31:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733060" lon="0.5659970"> + <ele>1940.8</ele> + <time>2020-08-23T08:31:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733040" lon="0.5660290"> + <ele>1940.8</ele> + <time>2020-08-23T08:31:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733020" lon="0.5660570"> + <ele>1941.0</ele> + <time>2020-08-23T08:31:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732990" lon="0.5660870"> + <ele>1941.0</ele> + <time>2020-08-23T08:31:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732960" lon="0.5661200"> + <ele>1941.2</ele> + <time>2020-08-23T08:31:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732940" lon="0.5661520"> + <ele>1941.4</ele> + <time>2020-08-23T08:31:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732900" lon="0.5661820"> + <ele>1941.6</ele> + <time>2020-08-23T08:31:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732880" lon="0.5662120"> + <ele>1941.8</ele> + <time>2020-08-23T08:31:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732860" lon="0.5662460"> + <ele>1942.0</ele> + <time>2020-08-23T08:31:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732820" lon="0.5662750"> + <ele>1942.0</ele> + <time>2020-08-23T08:31:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732780" lon="0.5663060"> + <ele>1942.2</ele> + <time>2020-08-23T08:31:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732750" lon="0.5663360"> + <ele>1942.4</ele> + <time>2020-08-23T08:31:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732720" lon="0.5663670"> + <ele>1942.6</ele> + <time>2020-08-23T08:31:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732690" lon="0.5663960"> + <ele>1942.8</ele> + <time>2020-08-23T08:31:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732660" lon="0.5664250"> + <ele>1942.8</ele> + <time>2020-08-23T08:31:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732640" lon="0.5664530"> + <ele>1943.0</ele> + <time>2020-08-23T08:31:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732630" lon="0.5664800"> + <ele>1943.0</ele> + <time>2020-08-23T08:31:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732610" lon="0.5665070"> + <ele>1943.2</ele> + <time>2020-08-23T08:31:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732560" lon="0.5665340"> + <ele>1943.2</ele> + <time>2020-08-23T08:31:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732490" lon="0.5665580"> + <ele>1943.4</ele> + <time>2020-08-23T08:31:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732410" lon="0.5665830"> + <ele>1943.4</ele> + <time>2020-08-23T08:31:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732310" lon="0.5666060"> + <ele>1943.6</ele> + <time>2020-08-23T08:31:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732250" lon="0.5666300"> + <ele>1943.8</ele> + <time>2020-08-23T08:31:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732190" lon="0.5666550"> + <ele>1944.0</ele> + <time>2020-08-23T08:31:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732140" lon="0.5666800"> + <ele>1944.2</ele> + <time>2020-08-23T08:31:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732070" lon="0.5667050"> + <ele>1944.4</ele> + <time>2020-08-23T08:31:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731970" lon="0.5667240"> + <ele>1944.4</ele> + <time>2020-08-23T08:31:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731850" lon="0.5667430"> + <ele>1944.6</ele> + <time>2020-08-23T08:31:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731720" lon="0.5667610"> + <ele>1944.8</ele> + <time>2020-08-23T08:31:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731610" lon="0.5667810"> + <ele>1944.8</ele> + <time>2020-08-23T08:31:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731500" lon="0.5668000"> + <ele>1945.0</ele> + <time>2020-08-23T08:31:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731380" lon="0.5668200"> + <ele>1945.2</ele> + <time>2020-08-23T08:31:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731250" lon="0.5668400"> + <ele>1945.4</ele> + <time>2020-08-23T08:31:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731140" lon="0.5668600"> + <ele>1945.4</ele> + <time>2020-08-23T08:31:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731040" lon="0.5668810"> + <ele>1945.6</ele> + <time>2020-08-23T08:31:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5730940" lon="0.5669000"> + <ele>1945.8</ele> + <time>2020-08-23T08:31:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5730840" lon="0.5669190"> + <ele>1946.0</ele> + <time>2020-08-23T08:31:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5730700" lon="0.5669350"> + <ele>1946.0</ele> + <time>2020-08-23T08:31:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5730550" lon="0.5669530"> + <ele>1946.4</ele> + <time>2020-08-23T08:31:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5730400" lon="0.5669690"> + <ele>1946.4</ele> + <time>2020-08-23T08:31:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5730230" lon="0.5669850"> + <ele>1946.6</ele> + <time>2020-08-23T08:31:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5730060" lon="0.5669980"> + <ele>1946.8</ele> + <time>2020-08-23T08:31:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5729890" lon="0.5670080"> + <ele>1947.0</ele> + <time>2020-08-23T08:31:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5729710" lon="0.5670180"> + <ele>1947.2</ele> + <time>2020-08-23T08:31:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5729530" lon="0.5670270"> + <ele>1947.2</ele> + <time>2020-08-23T08:31:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5729350" lon="0.5670330"> + <ele>1947.4</ele> + <time>2020-08-23T08:31:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5729180" lon="0.5670420"> + <ele>1947.6</ele> + <time>2020-08-23T08:31:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5728990" lon="0.5670520"> + <ele>1947.8</ele> + <time>2020-08-23T08:31:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5728820" lon="0.5670610"> + <ele>1947.8</ele> + <time>2020-08-23T08:31:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5728630" lon="0.5670650"> + <ele>1948.0</ele> + <time>2020-08-23T08:31:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5728440" lon="0.5670640"> + <ele>1948.2</ele> + <time>2020-08-23T08:31:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5728240" lon="0.5670640"> + <ele>1948.2</ele> + <time>2020-08-23T08:31:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5728060" lon="0.5670640"> + <ele>1948.4</ele> + <time>2020-08-23T08:31:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5727860" lon="0.5670680"> + <ele>1948.6</ele> + <time>2020-08-23T08:31:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5727680" lon="0.5670720"> + <ele>1948.8</ele> + <time>2020-08-23T08:31:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5727490" lon="0.5670750"> + <ele>1949.0</ele> + <time>2020-08-23T08:31:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5727300" lon="0.5670780"> + <ele>1949.2</ele> + <time>2020-08-23T08:31:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5727110" lon="0.5670780"> + <ele>1949.2</ele> + <time>2020-08-23T08:31:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5726930" lon="0.5670750"> + <ele>1949.2</ele> + <time>2020-08-23T08:31:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5726740" lon="0.5670730"> + <ele>1949.4</ele> + <time>2020-08-23T08:32:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5726550" lon="0.5670690"> + <ele>1949.4</ele> + <time>2020-08-23T08:32:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5726350" lon="0.5670650"> + <ele>1949.4</ele> + <time>2020-08-23T08:32:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5726160" lon="0.5670600"> + <ele>1949.6</ele> + <time>2020-08-23T08:32:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725970" lon="0.5670540"> + <ele>1949.6</ele> + <time>2020-08-23T08:32:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725790" lon="0.5670470"> + <ele>1949.8</ele> + <time>2020-08-23T08:32:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725590" lon="0.5670400"> + <ele>1949.8</ele> + <time>2020-08-23T08:32:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725390" lon="0.5670320"> + <ele>1950.0</ele> + <time>2020-08-23T08:32:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725190" lon="0.5670220"> + <ele>1950.0</ele> + <time>2020-08-23T08:32:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725000" lon="0.5670110"> + <ele>1950.0</ele> + <time>2020-08-23T08:32:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5724790" lon="0.5670010"> + <ele>1950.4</ele> + <time>2020-08-23T08:32:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5724600" lon="0.5669900"> + <ele>1950.6</ele> + <time>2020-08-23T08:32:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5724420" lon="0.5669790"> + <ele>1950.8</ele> + <time>2020-08-23T08:32:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5724240" lon="0.5669660"> + <ele>1951.2</ele> + <time>2020-08-23T08:32:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5724050" lon="0.5669570"> + <ele>1951.4</ele> + <time>2020-08-23T08:32:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5723870" lon="0.5669480"> + <ele>1951.4</ele> + <time>2020-08-23T08:32:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5723690" lon="0.5669390"> + <ele>1951.6</ele> + <time>2020-08-23T08:32:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5723500" lon="0.5669330"> + <ele>1951.8</ele> + <time>2020-08-23T08:32:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5723310" lon="0.5669260"> + <ele>1952.0</ele> + <time>2020-08-23T08:32:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5723120" lon="0.5669180"> + <ele>1952.2</ele> + <time>2020-08-23T08:32:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722940" lon="0.5669050"> + <ele>1952.2</ele> + <time>2020-08-23T08:32:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722750" lon="0.5668970"> + <ele>1952.6</ele> + <time>2020-08-23T08:32:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722560" lon="0.5668910"> + <ele>1952.8</ele> + <time>2020-08-23T08:32:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722370" lon="0.5668820"> + <ele>1953.0</ele> + <time>2020-08-23T08:32:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722210" lon="0.5668710"> + <ele>1953.0</ele> + <time>2020-08-23T08:32:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722040" lon="0.5668600"> + <ele>1953.2</ele> + <time>2020-08-23T08:32:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721870" lon="0.5668510"> + <ele>1953.4</ele> + <time>2020-08-23T08:32:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721690" lon="0.5668460"> + <ele>1953.4</ele> + <time>2020-08-23T08:32:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721520" lon="0.5668360"> + <ele>1953.6</ele> + <time>2020-08-23T08:32:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721340" lon="0.5668270"> + <ele>1953.6</ele> + <time>2020-08-23T08:32:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721130" lon="0.5668190"> + <ele>1953.8</ele> + <time>2020-08-23T08:32:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720940" lon="0.5668140"> + <ele>1954.0</ele> + <time>2020-08-23T08:32:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720750" lon="0.5668100"> + <ele>1954.2</ele> + <time>2020-08-23T08:32:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720560" lon="0.5668080"> + <ele>1954.2</ele> + <time>2020-08-23T08:32:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720370" lon="0.5668050"> + <ele>1954.4</ele> + <time>2020-08-23T08:32:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720180" lon="0.5668010"> + <ele>1954.6</ele> + <time>2020-08-23T08:32:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720000" lon="0.5667970"> + <ele>1954.8</ele> + <time>2020-08-23T08:32:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719830" lon="0.5667900"> + <ele>1955.0</ele> + <time>2020-08-23T08:32:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719660" lon="0.5667860"> + <ele>1955.0</ele> + <time>2020-08-23T08:32:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719470" lon="0.5667850"> + <ele>1955.2</ele> + <time>2020-08-23T08:32:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719270" lon="0.5667840"> + <ele>1955.4</ele> + <time>2020-08-23T08:32:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719080" lon="0.5667840"> + <ele>1955.6</ele> + <time>2020-08-23T08:32:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718870" lon="0.5667790"> + <ele>1955.8</ele> + <time>2020-08-23T08:32:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718680" lon="0.5667760"> + <ele>1955.8</ele> + <time>2020-08-23T08:32:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718490" lon="0.5667760"> + <ele>1955.8</ele> + <time>2020-08-23T08:32:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718310" lon="0.5667810"> + <ele>1956.0</ele> + <time>2020-08-23T08:32:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718110" lon="0.5667820"> + <ele>1956.4</ele> + <time>2020-08-23T08:32:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717910" lon="0.5667820"> + <ele>1956.4</ele> + <time>2020-08-23T08:32:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717710" lon="0.5667820"> + <ele>1956.6</ele> + <time>2020-08-23T08:32:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717520" lon="0.5667840"> + <ele>1956.8</ele> + <time>2020-08-23T08:32:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717330" lon="0.5667890"> + <ele>1957.0</ele> + <time>2020-08-23T08:32:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717160" lon="0.5667940"> + <ele>1957.0</ele> + <time>2020-08-23T08:32:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716970" lon="0.5667990"> + <ele>1957.2</ele> + <time>2020-08-23T08:32:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716770" lon="0.5668050"> + <ele>1957.2</ele> + <time>2020-08-23T08:32:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716600" lon="0.5668130"> + <ele>1957.4</ele> + <time>2020-08-23T08:32:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716440" lon="0.5668250"> + <ele>1957.6</ele> + <time>2020-08-23T08:32:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716260" lon="0.5668360"> + <ele>1957.6</ele> + <time>2020-08-23T08:32:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716090" lon="0.5668450"> + <ele>1957.8</ele> + <time>2020-08-23T08:32:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715910" lon="0.5668510"> + <ele>1958.0</ele> + <time>2020-08-23T08:32:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715730" lon="0.5668560"> + <ele>1958.0</ele> + <time>2020-08-23T08:32:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715560" lon="0.5668640"> + <ele>1958.2</ele> + <time>2020-08-23T08:33:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715390" lon="0.5668750"> + <ele>1958.2</ele> + <time>2020-08-23T08:33:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715220" lon="0.5668860"> + <ele>1958.4</ele> + <time>2020-08-23T08:33:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715040" lon="0.5668980"> + <ele>1958.6</ele> + <time>2020-08-23T08:33:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5714880" lon="0.5669130"> + <ele>1958.6</ele> + <time>2020-08-23T08:33:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5714720" lon="0.5669270"> + <ele>1958.8</ele> + <time>2020-08-23T08:33:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5714560" lon="0.5669420"> + <ele>1958.8</ele> + <time>2020-08-23T08:33:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5714410" lon="0.5669570"> + <ele>1959.0</ele> + <time>2020-08-23T08:33:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5714250" lon="0.5669710"> + <ele>1959.0</ele> + <time>2020-08-23T08:33:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5714090" lon="0.5669830"> + <ele>1959.2</ele> + <time>2020-08-23T08:33:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5713940" lon="0.5669980"> + <ele>1959.4</ele> + <time>2020-08-23T08:33:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5713820" lon="0.5670160"> + <ele>1959.6</ele> + <time>2020-08-23T08:33:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5713720" lon="0.5670370"> + <ele>1959.8</ele> + <time>2020-08-23T08:33:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5713640" lon="0.5670600"> + <ele>1960.0</ele> + <time>2020-08-23T08:33:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5713600" lon="0.5670840"> + <ele>1960.2</ele> + <time>2020-08-23T08:33:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5713630" lon="0.5671120"> + <ele>1960.4</ele> + <time>2020-08-23T08:33:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5713740" lon="0.5671350"> + <ele>1960.4</ele> + <time>2020-08-23T08:33:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5713910" lon="0.5671500"> + <ele>1960.6</ele> + <time>2020-08-23T08:33:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5714090" lon="0.5671600"> + <ele>1960.6</ele> + <time>2020-08-23T08:33:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5714250" lon="0.5671700"> + <ele>1960.8</ele> + <time>2020-08-23T08:33:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5714420" lon="0.5671800"> + <ele>1961.0</ele> + <time>2020-08-23T08:33:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5714580" lon="0.5671910"> + <ele>1961.2</ele> + <time>2020-08-23T08:33:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5714730" lon="0.5672030"> + <ele>1961.2</ele> + <time>2020-08-23T08:33:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5714890" lon="0.5672130"> + <ele>1961.4</ele> + <time>2020-08-23T08:33:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715050" lon="0.5672220"> + <ele>1961.4</ele> + <time>2020-08-23T08:33:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715200" lon="0.5672280"> + <ele>1961.4</ele> + <time>2020-08-23T08:33:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715360" lon="0.5672350"> + <ele>1961.4</ele> + <time>2020-08-23T08:33:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715500" lon="0.5672450"> + <ele>1961.4</ele> + <time>2020-08-23T08:33:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715640" lon="0.5672540"> + <ele>1961.6</ele> + <time>2020-08-23T08:33:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715780" lon="0.5672640"> + <ele>1962.0</ele> + <time>2020-08-23T08:33:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5715920" lon="0.5672750"> + <ele>1962.0</ele> + <time>2020-08-23T08:33:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716050" lon="0.5672880"> + <ele>1962.2</ele> + <time>2020-08-23T08:33:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716190" lon="0.5672990"> + <ele>1962.4</ele> + <time>2020-08-23T08:33:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716320" lon="0.5673110"> + <ele>1962.6</ele> + <time>2020-08-23T08:33:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716450" lon="0.5673230"> + <ele>1963.0</ele> + <time>2020-08-23T08:33:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716590" lon="0.5673340"> + <ele>1963.2</ele> + <time>2020-08-23T08:33:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716720" lon="0.5673450"> + <ele>1963.4</ele> + <time>2020-08-23T08:33:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716840" lon="0.5673590"> + <ele>1963.4</ele> + <time>2020-08-23T08:33:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5716960" lon="0.5673740"> + <ele>1963.6</ele> + <time>2020-08-23T08:33:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717070" lon="0.5673890"> + <ele>1963.6</ele> + <time>2020-08-23T08:33:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717200" lon="0.5674030"> + <ele>1963.8</ele> + <time>2020-08-23T08:33:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717330" lon="0.5674150"> + <ele>1964.0</ele> + <time>2020-08-23T08:33:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717460" lon="0.5674260"> + <ele>1964.2</ele> + <time>2020-08-23T08:33:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717590" lon="0.5674390"> + <ele>1964.4</ele> + <time>2020-08-23T08:33:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717720" lon="0.5674520"> + <ele>1964.6</ele> + <time>2020-08-23T08:33:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717840" lon="0.5674650"> + <ele>1964.8</ele> + <time>2020-08-23T08:33:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5717960" lon="0.5674790"> + <ele>1965.0</ele> + <time>2020-08-23T08:33:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718080" lon="0.5674930"> + <ele>1965.2</ele> + <time>2020-08-23T08:33:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718200" lon="0.5675070"> + <ele>1965.4</ele> + <time>2020-08-23T08:33:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718310" lon="0.5675230"> + <ele>1965.6</ele> + <time>2020-08-23T08:33:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718430" lon="0.5675390"> + <ele>1965.6</ele> + <time>2020-08-23T08:33:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718540" lon="0.5675530"> + <ele>1965.8</ele> + <time>2020-08-23T08:33:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718640" lon="0.5675680"> + <ele>1966.0</ele> + <time>2020-08-23T08:33:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718720" lon="0.5675850"> + <ele>1966.4</ele> + <time>2020-08-23T08:33:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718810" lon="0.5676030"> + <ele>1966.4</ele> + <time>2020-08-23T08:33:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718880" lon="0.5676220"> + <ele>1966.6</ele> + <time>2020-08-23T08:33:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5718930" lon="0.5676410"> + <ele>1966.8</ele> + <time>2020-08-23T08:33:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719000" lon="0.5676600"> + <ele>1966.8</ele> + <time>2020-08-23T08:33:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719070" lon="0.5676790"> + <ele>1967.0</ele> + <time>2020-08-23T08:33:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719130" lon="0.5676980"> + <ele>1967.0</ele> + <time>2020-08-23T08:33:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719180" lon="0.5677180"> + <ele>1967.2</ele> + <time>2020-08-23T08:34:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719260" lon="0.5677360"> + <ele>1967.6</ele> + <time>2020-08-23T08:34:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719310" lon="0.5677550"> + <ele>1967.8</ele> + <time>2020-08-23T08:34:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719330" lon="0.5677740"> + <ele>1967.8</ele> + <time>2020-08-23T08:34:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719330" lon="0.5677950"> + <ele>1968.0</ele> + <time>2020-08-23T08:34:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719360" lon="0.5678140"> + <ele>1968.2</ele> + <time>2020-08-23T08:34:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719370" lon="0.5678340"> + <ele>1968.4</ele> + <time>2020-08-23T08:34:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719370" lon="0.5678530"> + <ele>1968.4</ele> + <time>2020-08-23T08:34:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719410" lon="0.5678720"> + <ele>1968.6</ele> + <time>2020-08-23T08:34:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719450" lon="0.5678910"> + <ele>1968.6</ele> + <time>2020-08-23T08:34:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719490" lon="0.5679120"> + <ele>1968.8</ele> + <time>2020-08-23T08:34:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719530" lon="0.5679310"> + <ele>1969.0</ele> + <time>2020-08-23T08:34:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719560" lon="0.5679500"> + <ele>1969.2</ele> + <time>2020-08-23T08:34:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719580" lon="0.5679720"> + <ele>1969.4</ele> + <time>2020-08-23T08:34:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719620" lon="0.5679920"> + <ele>1969.6</ele> + <time>2020-08-23T08:34:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719660" lon="0.5680130"> + <ele>1969.8</ele> + <time>2020-08-23T08:34:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719700" lon="0.5680330"> + <ele>1969.8</ele> + <time>2020-08-23T08:34:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719730" lon="0.5680530"> + <ele>1970.0</ele> + <time>2020-08-23T08:34:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719780" lon="0.5680700"> + <ele>1970.2</ele> + <time>2020-08-23T08:34:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719860" lon="0.5680860"> + <ele>1970.2</ele> + <time>2020-08-23T08:34:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719900" lon="0.5681050"> + <ele>1970.4</ele> + <time>2020-08-23T08:34:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719920" lon="0.5681220"> + <ele>1970.6</ele> + <time>2020-08-23T08:34:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5719970" lon="0.5681370"> + <ele>1970.8</ele> + <time>2020-08-23T08:34:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720030" lon="0.5681530"> + <ele>1971.0</ele> + <time>2020-08-23T08:34:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720110" lon="0.5681690"> + <ele>1971.0</ele> + <time>2020-08-23T08:34:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720190" lon="0.5681860"> + <ele>1971.2</ele> + <time>2020-08-23T08:34:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720290" lon="0.5682010"> + <ele>1971.4</ele> + <time>2020-08-23T08:34:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720400" lon="0.5682160"> + <ele>1971.4</ele> + <time>2020-08-23T08:34:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720470" lon="0.5682330"> + <ele>1971.6</ele> + <time>2020-08-23T08:34:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720550" lon="0.5682500"> + <ele>1971.8</ele> + <time>2020-08-23T08:34:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720630" lon="0.5682670"> + <ele>1972.0</ele> + <time>2020-08-23T08:34:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720720" lon="0.5682820"> + <ele>1972.0</ele> + <time>2020-08-23T08:34:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720840" lon="0.5682950"> + <ele>1972.2</ele> + <time>2020-08-23T08:34:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5720940" lon="0.5683070"> + <ele>1972.4</ele> + <time>2020-08-23T08:34:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721040" lon="0.5683210"> + <ele>1972.4</ele> + <time>2020-08-23T08:34:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721130" lon="0.5683350"> + <ele>1972.6</ele> + <time>2020-08-23T08:34:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721230" lon="0.5683470"> + <ele>1972.8</ele> + <time>2020-08-23T08:34:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721340" lon="0.5683600"> + <ele>1972.6</ele> + <time>2020-08-23T08:34:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721460" lon="0.5683730"> + <ele>1972.8</ele> + <time>2020-08-23T08:34:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721580" lon="0.5683840"> + <ele>1973.0</ele> + <time>2020-08-23T08:34:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721700" lon="0.5683960"> + <ele>1973.4</ele> + <time>2020-08-23T08:34:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721820" lon="0.5684080"> + <ele>1973.6</ele> + <time>2020-08-23T08:34:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5721950" lon="0.5684170"> + <ele>1974.0</ele> + <time>2020-08-23T08:34:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722100" lon="0.5684240"> + <ele>1974.2</ele> + <time>2020-08-23T08:34:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722240" lon="0.5684320"> + <ele>1974.4</ele> + <time>2020-08-23T08:34:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722380" lon="0.5684370"> + <ele>1974.4</ele> + <time>2020-08-23T08:34:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722530" lon="0.5684440"> + <ele>1974.6</ele> + <time>2020-08-23T08:34:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722660" lon="0.5684510"> + <ele>1974.8</ele> + <time>2020-08-23T08:34:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722800" lon="0.5684550"> + <ele>1975.0</ele> + <time>2020-08-23T08:34:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5722930" lon="0.5684560"> + <ele>1975.2</ele> + <time>2020-08-23T08:34:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5723060" lon="0.5684580"> + <ele>1975.4</ele> + <time>2020-08-23T08:34:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5723210" lon="0.5684620"> + <ele>1975.4</ele> + <time>2020-08-23T08:34:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5723350" lon="0.5684680"> + <ele>1975.6</ele> + <time>2020-08-23T08:34:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5723480" lon="0.5684740"> + <ele>1975.8</ele> + <time>2020-08-23T08:34:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5723620" lon="0.5684790"> + <ele>1975.8</ele> + <time>2020-08-23T08:34:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5723760" lon="0.5684830"> + <ele>1976.0</ele> + <time>2020-08-23T08:34:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5723910" lon="0.5684880"> + <ele>1976.2</ele> + <time>2020-08-23T08:34:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5724070" lon="0.5684890"> + <ele>1976.4</ele> + <time>2020-08-23T08:34:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5724240" lon="0.5684880"> + <ele>1976.6</ele> + <time>2020-08-23T08:34:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5724410" lon="0.5684900"> + <ele>1976.6</ele> + <time>2020-08-23T08:34:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5724580" lon="0.5684900"> + <ele>1976.8</ele> + <time>2020-08-23T08:35:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5724740" lon="0.5684900"> + <ele>1977.0</ele> + <time>2020-08-23T08:35:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5724880" lon="0.5684890"> + <ele>1977.0</ele> + <time>2020-08-23T08:35:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725020" lon="0.5684840"> + <ele>1977.2</ele> + <time>2020-08-23T08:35:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725160" lon="0.5684760"> + <ele>1977.4</ele> + <time>2020-08-23T08:35:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725310" lon="0.5684700"> + <ele>1977.4</ele> + <time>2020-08-23T08:35:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725470" lon="0.5684660"> + <ele>1977.4</ele> + <time>2020-08-23T08:35:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725630" lon="0.5684590"> + <ele>1977.4</ele> + <time>2020-08-23T08:35:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725780" lon="0.5684460"> + <ele>1977.4</ele> + <time>2020-08-23T08:35:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5725930" lon="0.5684330"> + <ele>1977.6</ele> + <time>2020-08-23T08:35:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5726070" lon="0.5684200"> + <ele>1977.6</ele> + <time>2020-08-23T08:35:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5726230" lon="0.5684070"> + <ele>1977.6</ele> + <time>2020-08-23T08:35:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5726400" lon="0.5683960"> + <ele>1977.6</ele> + <time>2020-08-23T08:35:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5726570" lon="0.5683820"> + <ele>1977.8</ele> + <time>2020-08-23T08:35:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5726760" lon="0.5683700"> + <ele>1977.8</ele> + <time>2020-08-23T08:35:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5726960" lon="0.5683620"> + <ele>1977.8</ele> + <time>2020-08-23T08:35:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5727170" lon="0.5683540"> + <ele>1977.8</ele> + <time>2020-08-23T08:35:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5727390" lon="0.5683460"> + <ele>1978.0</ele> + <time>2020-08-23T08:35:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5727620" lon="0.5683400"> + <ele>1978.0</ele> + <time>2020-08-23T08:35:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5727850" lon="0.5683370"> + <ele>1978.0</ele> + <time>2020-08-23T08:35:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5728090" lon="0.5683340"> + <ele>1978.0</ele> + <time>2020-08-23T08:35:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5728330" lon="0.5683300"> + <ele>1978.2</ele> + <time>2020-08-23T08:35:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5728580" lon="0.5683250"> + <ele>1978.2</ele> + <time>2020-08-23T08:35:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5728830" lon="0.5683180"> + <ele>1978.2</ele> + <time>2020-08-23T08:35:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5729090" lon="0.5683110"> + <ele>1978.2</ele> + <time>2020-08-23T08:35:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5729350" lon="0.5683040"> + <ele>1978.2</ele> + <time>2020-08-23T08:35:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5729600" lon="0.5682970"> + <ele>1978.2</ele> + <time>2020-08-23T08:35:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5729850" lon="0.5682890"> + <ele>1978.4</ele> + <time>2020-08-23T08:35:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5730100" lon="0.5682780"> + <ele>1978.4</ele> + <time>2020-08-23T08:35:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5730340" lon="0.5682660"> + <ele>1978.4</ele> + <time>2020-08-23T08:35:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5730580" lon="0.5682520"> + <ele>1978.6</ele> + <time>2020-08-23T08:35:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5730830" lon="0.5682370"> + <ele>1978.6</ele> + <time>2020-08-23T08:35:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731080" lon="0.5682250"> + <ele>1978.6</ele> + <time>2020-08-23T08:35:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731320" lon="0.5682130"> + <ele>1978.8</ele> + <time>2020-08-23T08:35:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731560" lon="0.5682020"> + <ele>1978.8</ele> + <time>2020-08-23T08:35:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5731800" lon="0.5681930"> + <ele>1979.0</ele> + <time>2020-08-23T08:35:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732050" lon="0.5681870"> + <ele>1979.0</ele> + <time>2020-08-23T08:35:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732280" lon="0.5681830"> + <ele>1979.2</ele> + <time>2020-08-23T08:35:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732530" lon="0.5681830"> + <ele>1979.2</ele> + <time>2020-08-23T08:35:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5732770" lon="0.5681850"> + <ele>1979.4</ele> + <time>2020-08-23T08:35:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733030" lon="0.5681870"> + <ele>1979.4</ele> + <time>2020-08-23T08:35:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733270" lon="0.5681930"> + <ele>1979.6</ele> + <time>2020-08-23T08:35:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733510" lon="0.5682010"> + <ele>1979.6</ele> + <time>2020-08-23T08:35:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733740" lon="0.5682090"> + <ele>1979.8</ele> + <time>2020-08-23T08:35:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>22</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5733980" lon="0.5682170"> + <ele>1979.8</ele> + <time>2020-08-23T08:35:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734220" lon="0.5682280"> + <ele>1980.0</ele> + <time>2020-08-23T08:35:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734460" lon="0.5682380"> + <ele>1980.0</ele> + <time>2020-08-23T08:35:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734670" lon="0.5682460"> + <ele>1980.2</ele> + <time>2020-08-23T08:35:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5734850" lon="0.5682520"> + <ele>1980.2</ele> + <time>2020-08-23T08:35:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5735040" lon="0.5682560"> + <ele>1980.4</ele> + <time>2020-08-23T08:35:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5735270" lon="0.5682560"> + <ele>1980.6</ele> + <time>2020-08-23T08:35:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5735480" lon="0.5682580"> + <ele>1980.6</ele> + <time>2020-08-23T08:35:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5735690" lon="0.5682620"> + <ele>1980.8</ele> + <time>2020-08-23T08:35:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5735890" lon="0.5682650"> + <ele>1981.0</ele> + <time>2020-08-23T08:35:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5736100" lon="0.5682690"> + <ele>1981.2</ele> + <time>2020-08-23T08:35:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5736310" lon="0.5682740"> + <ele>1981.2</ele> + <time>2020-08-23T08:35:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5736510" lon="0.5682770"> + <ele>1981.4</ele> + <time>2020-08-23T08:35:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5736710" lon="0.5682770"> + <ele>1981.6</ele> + <time>2020-08-23T08:35:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5736900" lon="0.5682770"> + <ele>1981.8</ele> + <time>2020-08-23T08:35:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5737070" lon="0.5682770"> + <ele>1982.0</ele> + <time>2020-08-23T08:35:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5737250" lon="0.5682760"> + <ele>1982.0</ele> + <time>2020-08-23T08:36:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5737420" lon="0.5682740"> + <ele>1982.2</ele> + <time>2020-08-23T08:36:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5737600" lon="0.5682750"> + <ele>1982.2</ele> + <time>2020-08-23T08:36:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5737790" lon="0.5682780"> + <ele>1982.2</ele> + <time>2020-08-23T08:36:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5737980" lon="0.5682800"> + <ele>1982.4</ele> + <time>2020-08-23T08:36:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5738180" lon="0.5682790"> + <ele>1982.4</ele> + <time>2020-08-23T08:36:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5738400" lon="0.5682810"> + <ele>1982.6</ele> + <time>2020-08-23T08:36:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5738610" lon="0.5682830"> + <ele>1982.8</ele> + <time>2020-08-23T08:36:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5738810" lon="0.5682870"> + <ele>1983.0</ele> + <time>2020-08-23T08:36:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5739020" lon="0.5682930"> + <ele>1983.0</ele> + <time>2020-08-23T08:36:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5739230" lon="0.5682990"> + <ele>1983.0</ele> + <time>2020-08-23T08:36:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5739430" lon="0.5683070"> + <ele>1983.2</ele> + <time>2020-08-23T08:36:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5739640" lon="0.5683150"> + <ele>1983.2</ele> + <time>2020-08-23T08:36:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5739830" lon="0.5683250"> + <ele>1983.2</ele> + <time>2020-08-23T08:36:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5740010" lon="0.5683400"> + <ele>1983.4</ele> + <time>2020-08-23T08:36:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5740190" lon="0.5683530"> + <ele>1983.4</ele> + <time>2020-08-23T08:36:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5740370" lon="0.5683640"> + <ele>1983.4</ele> + <time>2020-08-23T08:36:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5740560" lon="0.5683760"> + <ele>1983.4</ele> + <time>2020-08-23T08:36:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5740740" lon="0.5683880"> + <ele>1983.4</ele> + <time>2020-08-23T08:36:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5740930" lon="0.5683980"> + <ele>1983.6</ele> + <time>2020-08-23T08:36:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5741110" lon="0.5684100"> + <ele>1983.6</ele> + <time>2020-08-23T08:36:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5741290" lon="0.5684220"> + <ele>1983.6</ele> + <time>2020-08-23T08:36:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5741470" lon="0.5684330"> + <ele>1983.8</ele> + <time>2020-08-23T08:36:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5741650" lon="0.5684450"> + <ele>1983.8</ele> + <time>2020-08-23T08:36:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5741840" lon="0.5684570"> + <ele>1984.0</ele> + <time>2020-08-23T08:36:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5742020" lon="0.5684680"> + <ele>1984.0</ele> + <time>2020-08-23T08:36:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5742200" lon="0.5684780"> + <ele>1984.2</ele> + <time>2020-08-23T08:36:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5742380" lon="0.5684890"> + <ele>1984.2</ele> + <time>2020-08-23T08:36:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5742570" lon="0.5684990"> + <ele>1984.4</ele> + <time>2020-08-23T08:36:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5742760" lon="0.5685110"> + <ele>1984.4</ele> + <time>2020-08-23T08:36:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5742950" lon="0.5685230"> + <ele>1984.6</ele> + <time>2020-08-23T08:36:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5743150" lon="0.5685370"> + <ele>1984.6</ele> + <time>2020-08-23T08:36:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5743330" lon="0.5685530"> + <ele>1984.8</ele> + <time>2020-08-23T08:36:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5743530" lon="0.5685670"> + <ele>1985.0</ele> + <time>2020-08-23T08:36:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5743740" lon="0.5685820"> + <ele>1985.2</ele> + <time>2020-08-23T08:36:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5743930" lon="0.5685990"> + <ele>1985.4</ele> + <time>2020-08-23T08:36:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5744120" lon="0.5686160"> + <ele>1985.6</ele> + <time>2020-08-23T08:36:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5744300" lon="0.5686330"> + <ele>1985.6</ele> + <time>2020-08-23T08:36:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5744490" lon="0.5686500"> + <ele>1985.8</ele> + <time>2020-08-23T08:36:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5744680" lon="0.5686660"> + <ele>1986.0</ele> + <time>2020-08-23T08:36:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5744870" lon="0.5686840"> + <ele>1986.2</ele> + <time>2020-08-23T08:36:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5745050" lon="0.5687020"> + <ele>1986.2</ele> + <time>2020-08-23T08:36:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5745230" lon="0.5687210"> + <ele>1986.4</ele> + <time>2020-08-23T08:36:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5745390" lon="0.5687410"> + <ele>1986.4</ele> + <time>2020-08-23T08:36:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5745560" lon="0.5687610"> + <ele>1986.6</ele> + <time>2020-08-23T08:36:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5745730" lon="0.5687790"> + <ele>1986.6</ele> + <time>2020-08-23T08:36:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5745910" lon="0.5687970"> + <ele>1986.6</ele> + <time>2020-08-23T08:36:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746070" lon="0.5688170"> + <ele>1986.8</ele> + <time>2020-08-23T08:36:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746220" lon="0.5688380"> + <ele>1986.8</ele> + <time>2020-08-23T08:36:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746380" lon="0.5688580"> + <ele>1987.0</ele> + <time>2020-08-23T08:36:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746540" lon="0.5688790"> + <ele>1987.2</ele> + <time>2020-08-23T08:36:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746690" lon="0.5689000"> + <ele>1987.4</ele> + <time>2020-08-23T08:36:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5746860" lon="0.5689210"> + <ele>1987.6</ele> + <time>2020-08-23T08:36:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747010" lon="0.5689420"> + <ele>1987.6</ele> + <time>2020-08-23T08:36:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747160" lon="0.5689620"> + <ele>1987.8</ele> + <time>2020-08-23T08:36:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747320" lon="0.5689820"> + <ele>1987.8</ele> + <time>2020-08-23T08:36:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747470" lon="0.5690020"> + <ele>1988.0</ele> + <time>2020-08-23T08:36:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747620" lon="0.5690220"> + <ele>1988.2</ele> + <time>2020-08-23T08:36:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747780" lon="0.5690420"> + <ele>1988.4</ele> + <time>2020-08-23T08:36:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5747930" lon="0.5690640"> + <ele>1988.4</ele> + <time>2020-08-23T08:36:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748060" lon="0.5690860"> + <ele>1988.6</ele> + <time>2020-08-23T08:37:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748190" lon="0.5691080"> + <ele>1988.6</ele> + <time>2020-08-23T08:37:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748320" lon="0.5691310"> + <ele>1988.8</ele> + <time>2020-08-23T08:37:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748450" lon="0.5691530"> + <ele>1989.0</ele> + <time>2020-08-23T08:37:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748580" lon="0.5691740"> + <ele>1989.2</ele> + <time>2020-08-23T08:37:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748720" lon="0.5691960"> + <ele>1989.4</ele> + <time>2020-08-23T08:37:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748830" lon="0.5692190"> + <ele>1989.4</ele> + <time>2020-08-23T08:37:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5748910" lon="0.5692440"> + <ele>1989.6</ele> + <time>2020-08-23T08:37:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749000" lon="0.5692740"> + <ele>1989.6</ele> + <time>2020-08-23T08:37:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749060" lon="0.5693000"> + <ele>1989.6</ele> + <time>2020-08-23T08:37:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749100" lon="0.5693220"> + <ele>1989.8</ele> + <time>2020-08-23T08:37:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749140" lon="0.5693450"> + <ele>1990.0</ele> + <time>2020-08-23T08:37:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749180" lon="0.5693680"> + <ele>1990.2</ele> + <time>2020-08-23T08:37:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749210" lon="0.5693900"> + <ele>1990.4</ele> + <time>2020-08-23T08:37:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749240" lon="0.5694140"> + <ele>1990.4</ele> + <time>2020-08-23T08:37:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749280" lon="0.5694380"> + <ele>1990.6</ele> + <time>2020-08-23T08:37:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749310" lon="0.5694620"> + <ele>1990.6</ele> + <time>2020-08-23T08:37:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749360" lon="0.5694860"> + <ele>1991.2</ele> + <time>2020-08-23T08:37:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749410" lon="0.5695100"> + <ele>1991.4</ele> + <time>2020-08-23T08:37:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749480" lon="0.5695330"> + <ele>1991.6</ele> + <time>2020-08-23T08:37:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749570" lon="0.5695550"> + <ele>1991.6</ele> + <time>2020-08-23T08:37:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749670" lon="0.5695770"> + <ele>1991.8</ele> + <time>2020-08-23T08:37:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749770" lon="0.5695960"> + <ele>1992.0</ele> + <time>2020-08-23T08:37:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5749900" lon="0.5696120"> + <ele>1992.2</ele> + <time>2020-08-23T08:37:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5750030" lon="0.5696250"> + <ele>1992.2</ele> + <time>2020-08-23T08:37:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5750180" lon="0.5696360"> + <ele>1992.4</ele> + <time>2020-08-23T08:37:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5750330" lon="0.5696470"> + <ele>1992.6</ele> + <time>2020-08-23T08:37:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5750500" lon="0.5696580"> + <ele>1992.4</ele> + <time>2020-08-23T08:37:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5750680" lon="0.5696660"> + <ele>1992.6</ele> + <time>2020-08-23T08:37:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5750870" lon="0.5696750"> + <ele>1992.6</ele> + <time>2020-08-23T08:37:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5751050" lon="0.5696810"> + <ele>1992.6</ele> + <time>2020-08-23T08:37:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5751240" lon="0.5696830"> + <ele>1992.6</ele> + <time>2020-08-23T08:37:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5751440" lon="0.5696830"> + <ele>1992.6</ele> + <time>2020-08-23T08:37:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5751640" lon="0.5696830"> + <ele>1992.6</ele> + <time>2020-08-23T08:37:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5751820" lon="0.5696800"> + <ele>1992.8</ele> + <time>2020-08-23T08:37:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5752000" lon="0.5696740"> + <ele>1992.8</ele> + <time>2020-08-23T08:37:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5752180" lon="0.5696680"> + <ele>1992.8</ele> + <time>2020-08-23T08:37:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5752360" lon="0.5696580"> + <ele>1992.8</ele> + <time>2020-08-23T08:37:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5752520" lon="0.5696440"> + <ele>1992.8</ele> + <time>2020-08-23T08:37:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5752670" lon="0.5696290"> + <ele>1993.0</ele> + <time>2020-08-23T08:37:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5752820" lon="0.5696130"> + <ele>1993.0</ele> + <time>2020-08-23T08:37:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5752970" lon="0.5695970"> + <ele>1993.0</ele> + <time>2020-08-23T08:37:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5753120" lon="0.5695810"> + <ele>1993.0</ele> + <time>2020-08-23T08:37:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5753290" lon="0.5695670"> + <ele>1993.4</ele> + <time>2020-08-23T08:37:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5753460" lon="0.5695520"> + <ele>1993.6</ele> + <time>2020-08-23T08:37:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5753640" lon="0.5695350"> + <ele>1994.0</ele> + <time>2020-08-23T08:37:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5753820" lon="0.5695200"> + <ele>1994.0</ele> + <time>2020-08-23T08:37:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5753980" lon="0.5695050"> + <ele>1994.0</ele> + <time>2020-08-23T08:37:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5754140" lon="0.5694900"> + <ele>1994.2</ele> + <time>2020-08-23T08:37:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5754310" lon="0.5694760"> + <ele>1994.2</ele> + <time>2020-08-23T08:37:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5754480" lon="0.5694610"> + <ele>1994.2</ele> + <time>2020-08-23T08:37:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5754640" lon="0.5694470"> + <ele>1994.4</ele> + <time>2020-08-23T08:37:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5754790" lon="0.5694320"> + <ele>1994.4</ele> + <time>2020-08-23T08:37:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5754930" lon="0.5694180"> + <ele>1994.4</ele> + <time>2020-08-23T08:37:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755090" lon="0.5694050"> + <ele>1994.6</ele> + <time>2020-08-23T08:37:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755250" lon="0.5693940"> + <ele>1994.6</ele> + <time>2020-08-23T08:37:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755420" lon="0.5693840"> + <ele>1994.8</ele> + <time>2020-08-23T08:37:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755600" lon="0.5693760"> + <ele>1994.8</ele> + <time>2020-08-23T08:37:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755790" lon="0.5693700"> + <ele>1995.0</ele> + <time>2020-08-23T08:37:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5755970" lon="0.5693620"> + <ele>1995.0</ele> + <time>2020-08-23T08:37:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5756150" lon="0.5693580"> + <ele>1995.2</ele> + <time>2020-08-23T08:38:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5756330" lon="0.5693550"> + <ele>1995.4</ele> + <time>2020-08-23T08:38:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5756520" lon="0.5693520"> + <ele>1995.8</ele> + <time>2020-08-23T08:38:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5756710" lon="0.5693520"> + <ele>1996.0</ele> + <time>2020-08-23T08:38:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5756910" lon="0.5693560"> + <ele>1996.0</ele> + <time>2020-08-23T08:38:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5757100" lon="0.5693590"> + <ele>1996.2</ele> + <time>2020-08-23T08:38:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5757290" lon="0.5693570"> + <ele>1996.2</ele> + <time>2020-08-23T08:38:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5757480" lon="0.5693570"> + <ele>1996.4</ele> + <time>2020-08-23T08:38:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5757670" lon="0.5693590"> + <ele>1996.6</ele> + <time>2020-08-23T08:38:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5757850" lon="0.5693610"> + <ele>1996.6</ele> + <time>2020-08-23T08:38:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5758020" lon="0.5693640"> + <ele>1996.8</ele> + <time>2020-08-23T08:38:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5758200" lon="0.5693670"> + <ele>1996.8</ele> + <time>2020-08-23T08:38:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5758370" lon="0.5693740"> + <ele>1997.0</ele> + <time>2020-08-23T08:38:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5758550" lon="0.5693820"> + <ele>1997.2</ele> + <time>2020-08-23T08:38:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5758720" lon="0.5693930"> + <ele>1997.4</ele> + <time>2020-08-23T08:38:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5758900" lon="0.5694050"> + <ele>1997.6</ele> + <time>2020-08-23T08:38:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5759070" lon="0.5694170"> + <ele>1997.8</ele> + <time>2020-08-23T08:38:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5759220" lon="0.5694300"> + <ele>1998.0</ele> + <time>2020-08-23T08:38:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5759370" lon="0.5694440"> + <ele>1998.2</ele> + <time>2020-08-23T08:38:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5759530" lon="0.5694580"> + <ele>1998.2</ele> + <time>2020-08-23T08:38:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5759690" lon="0.5694690"> + <ele>1998.4</ele> + <time>2020-08-23T08:38:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5759840" lon="0.5694810"> + <ele>1998.6</ele> + <time>2020-08-23T08:38:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5760000" lon="0.5694920"> + <ele>1998.8</ele> + <time>2020-08-23T08:38:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5760150" lon="0.5695040"> + <ele>1998.8</ele> + <time>2020-08-23T08:38:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5760310" lon="0.5695160"> + <ele>1999.2</ele> + <time>2020-08-23T08:38:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5760470" lon="0.5695250"> + <ele>1999.4</ele> + <time>2020-08-23T08:38:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5760640" lon="0.5695290"> + <ele>1999.6</ele> + <time>2020-08-23T08:38:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5760820" lon="0.5695330"> + <ele>1999.8</ele> + <time>2020-08-23T08:38:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5760980" lon="0.5695320"> + <ele>2000.0</ele> + <time>2020-08-23T08:38:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5761140" lon="0.5695270"> + <ele>2000.0</ele> + <time>2020-08-23T08:38:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5761310" lon="0.5695210"> + <ele>2000.2</ele> + <time>2020-08-23T08:38:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5761480" lon="0.5695140"> + <ele>2000.2</ele> + <time>2020-08-23T08:38:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5761650" lon="0.5695050"> + <ele>2000.6</ele> + <time>2020-08-23T08:38:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5761810" lon="0.5694940"> + <ele>2000.8</ele> + <time>2020-08-23T08:38:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5761970" lon="0.5694850"> + <ele>2000.8</ele> + <time>2020-08-23T08:38:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5762130" lon="0.5694770"> + <ele>2001.0</ele> + <time>2020-08-23T08:38:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5762280" lon="0.5694700"> + <ele>2001.2</ele> + <time>2020-08-23T08:38:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5762450" lon="0.5694640"> + <ele>2001.6</ele> + <time>2020-08-23T08:38:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5762620" lon="0.5694620"> + <ele>2001.8</ele> + <time>2020-08-23T08:38:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5762810" lon="0.5694590"> + <ele>2002.0</ele> + <time>2020-08-23T08:38:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5762990" lon="0.5694580"> + <ele>2002.2</ele> + <time>2020-08-23T08:38:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5763170" lon="0.5694560"> + <ele>2002.4</ele> + <time>2020-08-23T08:38:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5763350" lon="0.5694560"> + <ele>2002.6</ele> + <time>2020-08-23T08:38:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5763530" lon="0.5694550"> + <ele>2002.8</ele> + <time>2020-08-23T08:38:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5763720" lon="0.5694550"> + <ele>2002.8</ele> + <time>2020-08-23T08:38:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5763890" lon="0.5694540"> + <ele>2002.8</ele> + <time>2020-08-23T08:38:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5764060" lon="0.5694520"> + <ele>2003.0</ele> + <time>2020-08-23T08:38:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5764240" lon="0.5694520"> + <ele>2003.0</ele> + <time>2020-08-23T08:38:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5764410" lon="0.5694500"> + <ele>2003.0</ele> + <time>2020-08-23T08:38:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5764580" lon="0.5694480"> + <ele>2003.2</ele> + <time>2020-08-23T08:38:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5764740" lon="0.5694420"> + <ele>2003.4</ele> + <time>2020-08-23T08:38:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5764900" lon="0.5694350"> + <ele>2003.4</ele> + <time>2020-08-23T08:38:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765070" lon="0.5694320"> + <ele>2003.6</ele> + <time>2020-08-23T08:38:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765220" lon="0.5694260"> + <ele>2003.6</ele> + <time>2020-08-23T08:38:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765370" lon="0.5694180"> + <ele>2003.6</ele> + <time>2020-08-23T08:38:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765520" lon="0.5694090"> + <ele>2003.8</ele> + <time>2020-08-23T08:38:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765660" lon="0.5693990"> + <ele>2003.8</ele> + <time>2020-08-23T08:38:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765810" lon="0.5693900"> + <ele>2004.2</ele> + <time>2020-08-23T08:38:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5765970" lon="0.5693810"> + <ele>2004.4</ele> + <time>2020-08-23T08:38:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5766130" lon="0.5693720"> + <ele>2004.6</ele> + <time>2020-08-23T08:38:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5766280" lon="0.5693650"> + <ele>2004.6</ele> + <time>2020-08-23T08:39:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5766430" lon="0.5693560"> + <ele>2004.8</ele> + <time>2020-08-23T08:39:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5766580" lon="0.5693450"> + <ele>2005.0</ele> + <time>2020-08-23T08:39:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5766740" lon="0.5693360"> + <ele>2005.2</ele> + <time>2020-08-23T08:39:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5766900" lon="0.5693260"> + <ele>2005.2</ele> + <time>2020-08-23T08:39:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5767050" lon="0.5693170"> + <ele>2005.4</ele> + <time>2020-08-23T08:39:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5767210" lon="0.5693070"> + <ele>2005.4</ele> + <time>2020-08-23T08:39:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5767370" lon="0.5692990"> + <ele>2005.6</ele> + <time>2020-08-23T08:39:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5767530" lon="0.5692940"> + <ele>2005.6</ele> + <time>2020-08-23T08:39:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5767690" lon="0.5692870"> + <ele>2006.0</ele> + <time>2020-08-23T08:39:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5767860" lon="0.5692790"> + <ele>2006.0</ele> + <time>2020-08-23T08:39:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768030" lon="0.5692690"> + <ele>2006.2</ele> + <time>2020-08-23T08:39:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768180" lon="0.5692580"> + <ele>2006.2</ele> + <time>2020-08-23T08:39:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768350" lon="0.5692470"> + <ele>2006.4</ele> + <time>2020-08-23T08:39:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768500" lon="0.5692350"> + <ele>2006.4</ele> + <time>2020-08-23T08:39:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768660" lon="0.5692210"> + <ele>2006.6</ele> + <time>2020-08-23T08:39:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768800" lon="0.5692050"> + <ele>2006.6</ele> + <time>2020-08-23T08:39:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5768980" lon="0.5691910"> + <ele>2006.8</ele> + <time>2020-08-23T08:39:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5769170" lon="0.5691740"> + <ele>2007.0</ele> + <time>2020-08-23T08:39:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5769350" lon="0.5691570"> + <ele>2007.0</ele> + <time>2020-08-23T08:39:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5769520" lon="0.5691430"> + <ele>2007.2</ele> + <time>2020-08-23T08:39:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5769690" lon="0.5691290"> + <ele>2007.4</ele> + <time>2020-08-23T08:39:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5769880" lon="0.5691140"> + <ele>2007.6</ele> + <time>2020-08-23T08:39:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5770060" lon="0.5690980"> + <ele>2007.6</ele> + <time>2020-08-23T08:39:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5770240" lon="0.5690820"> + <ele>2007.8</ele> + <time>2020-08-23T08:39:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5770400" lon="0.5690630"> + <ele>2007.8</ele> + <time>2020-08-23T08:39:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5770560" lon="0.5690440"> + <ele>2008.0</ele> + <time>2020-08-23T08:39:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5770710" lon="0.5690230"> + <ele>2008.0</ele> + <time>2020-08-23T08:39:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5770870" lon="0.5690040"> + <ele>2008.2</ele> + <time>2020-08-23T08:39:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771030" lon="0.5689890"> + <ele>2008.4</ele> + <time>2020-08-23T08:39:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771230" lon="0.5689740"> + <ele>2008.6</ele> + <time>2020-08-23T08:39:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771430" lon="0.5689640"> + <ele>2008.6</ele> + <time>2020-08-23T08:39:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771600" lon="0.5689550"> + <ele>2008.8</ele> + <time>2020-08-23T08:39:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771750" lon="0.5689400"> + <ele>2009.0</ele> + <time>2020-08-23T08:39:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5771900" lon="0.5689240"> + <ele>2009.2</ele> + <time>2020-08-23T08:39:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5772070" lon="0.5689140"> + <ele>2009.4</ele> + <time>2020-08-23T08:39:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5772240" lon="0.5689040"> + <ele>2009.6</ele> + <time>2020-08-23T08:39:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5772390" lon="0.5688920"> + <ele>2009.8</ele> + <time>2020-08-23T08:39:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5772540" lon="0.5688770"> + <ele>2010.0</ele> + <time>2020-08-23T08:39:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5772690" lon="0.5688640"> + <ele>2010.2</ele> + <time>2020-08-23T08:39:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5772860" lon="0.5688490"> + <ele>2010.4</ele> + <time>2020-08-23T08:39:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5773030" lon="0.5688350"> + <ele>2010.8</ele> + <time>2020-08-23T08:39:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5773210" lon="0.5688230"> + <ele>2011.0</ele> + <time>2020-08-23T08:39:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5773390" lon="0.5688140"> + <ele>2011.2</ele> + <time>2020-08-23T08:39:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5773570" lon="0.5688030"> + <ele>2011.4</ele> + <time>2020-08-23T08:39:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5773750" lon="0.5687900"> + <ele>2011.6</ele> + <time>2020-08-23T08:39:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5773930" lon="0.5687810"> + <ele>2011.8</ele> + <time>2020-08-23T08:39:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5774100" lon="0.5687690"> + <ele>2011.8</ele> + <time>2020-08-23T08:39:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5774270" lon="0.5687560"> + <ele>2012.0</ele> + <time>2020-08-23T08:39:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5774450" lon="0.5687430"> + <ele>2012.0</ele> + <time>2020-08-23T08:39:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5774630" lon="0.5687330"> + <ele>2012.2</ele> + <time>2020-08-23T08:39:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5774800" lon="0.5687250"> + <ele>2012.4</ele> + <time>2020-08-23T08:39:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5774980" lon="0.5687170"> + <ele>2012.6</ele> + <time>2020-08-23T08:39:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5775170" lon="0.5687120"> + <ele>2012.6</ele> + <time>2020-08-23T08:39:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5775370" lon="0.5687090"> + <ele>2012.8</ele> + <time>2020-08-23T08:39:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5775570" lon="0.5687060"> + <ele>2013.0</ele> + <time>2020-08-23T08:39:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5775750" lon="0.5687020"> + <ele>2013.0</ele> + <time>2020-08-23T08:39:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5775950" lon="0.5687000"> + <ele>2013.2</ele> + <time>2020-08-23T08:39:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5776130" lon="0.5686950"> + <ele>2013.4</ele> + <time>2020-08-23T08:39:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5776330" lon="0.5686880"> + <ele>2013.6</ele> + <time>2020-08-23T08:39:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5776530" lon="0.5686860"> + <ele>2013.6</ele> + <time>2020-08-23T08:40:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5776720" lon="0.5686840"> + <ele>2013.6</ele> + <time>2020-08-23T08:40:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5776910" lon="0.5686830"> + <ele>2013.8</ele> + <time>2020-08-23T08:40:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5777100" lon="0.5686820"> + <ele>2014.0</ele> + <time>2020-08-23T08:40:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5777290" lon="0.5686820"> + <ele>2014.2</ele> + <time>2020-08-23T08:40:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5777490" lon="0.5686820"> + <ele>2014.4</ele> + <time>2020-08-23T08:40:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5777690" lon="0.5686800"> + <ele>2014.4</ele> + <time>2020-08-23T08:40:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5777880" lon="0.5686790"> + <ele>2014.6</ele> + <time>2020-08-23T08:40:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5778070" lon="0.5686780"> + <ele>2014.6</ele> + <time>2020-08-23T08:40:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5778270" lon="0.5686840"> + <ele>2014.8</ele> + <time>2020-08-23T08:40:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5778450" lon="0.5686890"> + <ele>2014.8</ele> + <time>2020-08-23T08:40:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5778640" lon="0.5686920"> + <ele>2015.0</ele> + <time>2020-08-23T08:40:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5778830" lon="0.5686930"> + <ele>2015.0</ele> + <time>2020-08-23T08:40:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5779020" lon="0.5686970"> + <ele>2015.2</ele> + <time>2020-08-23T08:40:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5779200" lon="0.5687040"> + <ele>2015.2</ele> + <time>2020-08-23T08:40:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5779380" lon="0.5687080"> + <ele>2015.4</ele> + <time>2020-08-23T08:40:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5779560" lon="0.5687130"> + <ele>2015.6</ele> + <time>2020-08-23T08:40:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5779730" lon="0.5687180"> + <ele>2015.8</ele> + <time>2020-08-23T08:40:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5779910" lon="0.5687240"> + <ele>2015.8</ele> + <time>2020-08-23T08:40:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5780090" lon="0.5687300"> + <ele>2015.8</ele> + <time>2020-08-23T08:40:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5780260" lon="0.5687350"> + <ele>2016.2</ele> + <time>2020-08-23T08:40:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5780440" lon="0.5687380"> + <ele>2016.4</ele> + <time>2020-08-23T08:40:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5780610" lon="0.5687420"> + <ele>2016.6</ele> + <time>2020-08-23T08:40:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5780790" lon="0.5687440"> + <ele>2016.8</ele> + <time>2020-08-23T08:40:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5780960" lon="0.5687420"> + <ele>2017.0</ele> + <time>2020-08-23T08:40:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5781130" lon="0.5687400"> + <ele>2017.2</ele> + <time>2020-08-23T08:40:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5781320" lon="0.5687370"> + <ele>2017.2</ele> + <time>2020-08-23T08:40:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5781500" lon="0.5687350"> + <ele>2017.4</ele> + <time>2020-08-23T08:40:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>154</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5781680" lon="0.5687350"> + <ele>2017.6</ele> + <time>2020-08-23T08:40:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5781870" lon="0.5687320"> + <ele>2017.6</ele> + <time>2020-08-23T08:40:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5782050" lon="0.5687280"> + <ele>2017.8</ele> + <time>2020-08-23T08:40:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5782240" lon="0.5687270"> + <ele>2017.8</ele> + <time>2020-08-23T08:40:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5782440" lon="0.5687280"> + <ele>2018.0</ele> + <time>2020-08-23T08:40:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5782630" lon="0.5687270"> + <ele>2018.0</ele> + <time>2020-08-23T08:40:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5782830" lon="0.5687240"> + <ele>2018.4</ele> + <time>2020-08-23T08:40:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5783030" lon="0.5687200"> + <ele>2019.0</ele> + <time>2020-08-23T08:40:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5783230" lon="0.5687190"> + <ele>2019.4</ele> + <time>2020-08-23T08:40:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5783420" lon="0.5687180"> + <ele>2019.8</ele> + <time>2020-08-23T08:40:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5783620" lon="0.5687140"> + <ele>2020.0</ele> + <time>2020-08-23T08:40:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5783810" lon="0.5687100"> + <ele>2020.0</ele> + <time>2020-08-23T08:40:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5784010" lon="0.5687070"> + <ele>2020.0</ele> + <time>2020-08-23T08:40:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5784220" lon="0.5687040"> + <ele>2020.0</ele> + <time>2020-08-23T08:40:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5784420" lon="0.5687020"> + <ele>2020.0</ele> + <time>2020-08-23T08:40:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5784610" lon="0.5687020"> + <ele>2020.2</ele> + <time>2020-08-23T08:40:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5784810" lon="0.5687020"> + <ele>2020.2</ele> + <time>2020-08-23T08:40:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5785010" lon="0.5687000"> + <ele>2020.2</ele> + <time>2020-08-23T08:40:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5785210" lon="0.5687000"> + <ele>2020.4</ele> + <time>2020-08-23T08:40:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5785410" lon="0.5686990"> + <ele>2020.6</ele> + <time>2020-08-23T08:40:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5785600" lon="0.5687000"> + <ele>2020.4</ele> + <time>2020-08-23T08:40:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5785800" lon="0.5687010"> + <ele>2020.8</ele> + <time>2020-08-23T08:40:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5785990" lon="0.5687010"> + <ele>2020.8</ele> + <time>2020-08-23T08:40:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5786190" lon="0.5687040"> + <ele>2021.0</ele> + <time>2020-08-23T08:40:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5786400" lon="0.5687090"> + <ele>2021.0</ele> + <time>2020-08-23T08:40:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5786600" lon="0.5687100"> + <ele>2021.2</ele> + <time>2020-08-23T08:40:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5786790" lon="0.5687150"> + <ele>2021.4</ele> + <time>2020-08-23T08:40:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5786990" lon="0.5687230"> + <ele>2021.6</ele> + <time>2020-08-23T08:40:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5787180" lon="0.5687300"> + <ele>2021.6</ele> + <time>2020-08-23T08:40:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5787360" lon="0.5687360"> + <ele>2021.8</ele> + <time>2020-08-23T08:40:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5787550" lon="0.5687420"> + <ele>2021.8</ele> + <time>2020-08-23T08:40:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5787740" lon="0.5687510"> + <ele>2022.0</ele> + <time>2020-08-23T08:40:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5787930" lon="0.5687590"> + <ele>2022.0</ele> + <time>2020-08-23T08:41:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5788110" lon="0.5687700"> + <ele>2022.2</ele> + <time>2020-08-23T08:41:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5788280" lon="0.5687810"> + <ele>2022.4</ele> + <time>2020-08-23T08:41:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5788440" lon="0.5687950"> + <ele>2022.4</ele> + <time>2020-08-23T08:41:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5788610" lon="0.5688090"> + <ele>2022.6</ele> + <time>2020-08-23T08:41:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5788780" lon="0.5688220"> + <ele>2022.6</ele> + <time>2020-08-23T08:41:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5788960" lon="0.5688340"> + <ele>2022.8</ele> + <time>2020-08-23T08:41:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5789140" lon="0.5688420"> + <ele>2023.0</ele> + <time>2020-08-23T08:41:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5789320" lon="0.5688520"> + <ele>2023.2</ele> + <time>2020-08-23T08:41:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5789500" lon="0.5688620"> + <ele>2023.4</ele> + <time>2020-08-23T08:41:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5789680" lon="0.5688720"> + <ele>2023.4</ele> + <time>2020-08-23T08:41:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5789870" lon="0.5688820"> + <ele>2023.8</ele> + <time>2020-08-23T08:41:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5790050" lon="0.5688910"> + <ele>2023.8</ele> + <time>2020-08-23T08:41:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5790220" lon="0.5689010"> + <ele>2024.0</ele> + <time>2020-08-23T08:41:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5790400" lon="0.5689100"> + <ele>2024.2</ele> + <time>2020-08-23T08:41:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5790590" lon="0.5689180"> + <ele>2024.2</ele> + <time>2020-08-23T08:41:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5790780" lon="0.5689270"> + <ele>2024.4</ele> + <time>2020-08-23T08:41:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5790970" lon="0.5689380"> + <ele>2024.4</ele> + <time>2020-08-23T08:41:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5791170" lon="0.5689470"> + <ele>2024.6</ele> + <time>2020-08-23T08:41:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5791360" lon="0.5689550"> + <ele>2024.6</ele> + <time>2020-08-23T08:41:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5791550" lon="0.5689640"> + <ele>2024.8</ele> + <time>2020-08-23T08:41:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5791740" lon="0.5689720"> + <ele>2024.8</ele> + <time>2020-08-23T08:41:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5791930" lon="0.5689820"> + <ele>2025.0</ele> + <time>2020-08-23T08:41:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5792120" lon="0.5689900"> + <ele>2025.2</ele> + <time>2020-08-23T08:41:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5792300" lon="0.5689980"> + <ele>2025.2</ele> + <time>2020-08-23T08:41:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5792490" lon="0.5690070"> + <ele>2025.4</ele> + <time>2020-08-23T08:41:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5792680" lon="0.5690140"> + <ele>2025.4</ele> + <time>2020-08-23T08:41:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5792860" lon="0.5690210"> + <ele>2025.6</ele> + <time>2020-08-23T08:41:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5793050" lon="0.5690290"> + <ele>2025.8</ele> + <time>2020-08-23T08:41:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5793230" lon="0.5690370"> + <ele>2026.0</ele> + <time>2020-08-23T08:41:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5793410" lon="0.5690460"> + <ele>2026.2</ele> + <time>2020-08-23T08:41:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5793580" lon="0.5690560"> + <ele>2026.6</ele> + <time>2020-08-23T08:41:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5793760" lon="0.5690630"> + <ele>2026.6</ele> + <time>2020-08-23T08:41:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5793940" lon="0.5690710"> + <ele>2026.8</ele> + <time>2020-08-23T08:41:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5794120" lon="0.5690780"> + <ele>2026.8</ele> + <time>2020-08-23T08:41:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5794290" lon="0.5690850"> + <ele>2027.0</ele> + <time>2020-08-23T08:41:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5794470" lon="0.5690930"> + <ele>2027.0</ele> + <time>2020-08-23T08:41:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5794640" lon="0.5691000"> + <ele>2027.2</ele> + <time>2020-08-23T08:41:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5794810" lon="0.5691100"> + <ele>2027.4</ele> + <time>2020-08-23T08:41:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5794990" lon="0.5691180"> + <ele>2027.4</ele> + <time>2020-08-23T08:41:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5795170" lon="0.5691260"> + <ele>2027.4</ele> + <time>2020-08-23T08:41:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5795340" lon="0.5691370"> + <ele>2027.6</ele> + <time>2020-08-23T08:41:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5795520" lon="0.5691480"> + <ele>2027.8</ele> + <time>2020-08-23T08:41:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5795690" lon="0.5691570"> + <ele>2028.0</ele> + <time>2020-08-23T08:41:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5795860" lon="0.5691670"> + <ele>2028.2</ele> + <time>2020-08-23T08:41:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5796040" lon="0.5691770"> + <ele>2028.4</ele> + <time>2020-08-23T08:41:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5796220" lon="0.5691870"> + <ele>2028.6</ele> + <time>2020-08-23T08:41:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5796390" lon="0.5691960"> + <ele>2028.8</ele> + <time>2020-08-23T08:41:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5796570" lon="0.5692050"> + <ele>2029.0</ele> + <time>2020-08-23T08:41:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5796740" lon="0.5692150"> + <ele>2029.2</ele> + <time>2020-08-23T08:41:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5796910" lon="0.5692260"> + <ele>2029.2</ele> + <time>2020-08-23T08:41:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5797070" lon="0.5692380"> + <ele>2029.4</ele> + <time>2020-08-23T08:41:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5797240" lon="0.5692490"> + <ele>2029.4</ele> + <time>2020-08-23T08:41:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5797410" lon="0.5692580"> + <ele>2029.6</ele> + <time>2020-08-23T08:41:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5797560" lon="0.5692690"> + <ele>2029.8</ele> + <time>2020-08-23T08:41:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5797710" lon="0.5692820"> + <ele>2029.8</ele> + <time>2020-08-23T08:41:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5797850" lon="0.5692910"> + <ele>2030.0</ele> + <time>2020-08-23T08:41:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798000" lon="0.5693030"> + <ele>2030.0</ele> + <time>2020-08-23T08:41:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798150" lon="0.5693120"> + <ele>2030.4</ele> + <time>2020-08-23T08:41:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798290" lon="0.5693250"> + <ele>2030.4</ele> + <time>2020-08-23T08:41:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798450" lon="0.5693380"> + <ele>2030.6</ele> + <time>2020-08-23T08:42:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798600" lon="0.5693490"> + <ele>2030.8</ele> + <time>2020-08-23T08:42:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798750" lon="0.5693620"> + <ele>2031.2</ele> + <time>2020-08-23T08:42:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798880" lon="0.5693780"> + <ele>2031.2</ele> + <time>2020-08-23T08:42:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5798990" lon="0.5693960"> + <ele>2031.4</ele> + <time>2020-08-23T08:42:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5799110" lon="0.5694130"> + <ele>2031.4</ele> + <time>2020-08-23T08:42:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5799240" lon="0.5694260"> + <ele>2031.6</ele> + <time>2020-08-23T08:42:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5799380" lon="0.5694380"> + <ele>2031.8</ele> + <time>2020-08-23T08:42:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5799540" lon="0.5694490"> + <ele>2032.0</ele> + <time>2020-08-23T08:42:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5799680" lon="0.5694610"> + <ele>2032.4</ele> + <time>2020-08-23T08:42:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5799810" lon="0.5694750"> + <ele>2032.4</ele> + <time>2020-08-23T08:42:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5799940" lon="0.5694890"> + <ele>2032.6</ele> + <time>2020-08-23T08:42:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5800080" lon="0.5695020"> + <ele>2032.6</ele> + <time>2020-08-23T08:42:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5800230" lon="0.5695160"> + <ele>2033.0</ele> + <time>2020-08-23T08:42:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5800370" lon="0.5695270"> + <ele>2033.2</ele> + <time>2020-08-23T08:42:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5800520" lon="0.5695350"> + <ele>2033.4</ele> + <time>2020-08-23T08:42:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5800680" lon="0.5695410"> + <ele>2033.6</ele> + <time>2020-08-23T08:42:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5800810" lon="0.5695480"> + <ele>2033.8</ele> + <time>2020-08-23T08:42:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5800940" lon="0.5695650"> + <ele>2033.8</ele> + <time>2020-08-23T08:42:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801080" lon="0.5695770"> + <ele>2034.0</ele> + <time>2020-08-23T08:42:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801240" lon="0.5695850"> + <ele>2034.2</ele> + <time>2020-08-23T08:42:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801380" lon="0.5695960"> + <ele>2034.6</ele> + <time>2020-08-23T08:42:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801540" lon="0.5695990"> + <ele>2034.8</ele> + <time>2020-08-23T08:42:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801710" lon="0.5695990"> + <ele>2034.8</ele> + <time>2020-08-23T08:42:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5801890" lon="0.5695940"> + <ele>2035.0</ele> + <time>2020-08-23T08:42:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5802080" lon="0.5695880"> + <ele>2035.0</ele> + <time>2020-08-23T08:42:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5802250" lon="0.5695790"> + <ele>2035.2</ele> + <time>2020-08-23T08:42:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5802420" lon="0.5695690"> + <ele>2035.4</ele> + <time>2020-08-23T08:42:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5802600" lon="0.5695570"> + <ele>2035.6</ele> + <time>2020-08-23T08:42:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5802770" lon="0.5695430"> + <ele>2035.8</ele> + <time>2020-08-23T08:42:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5802930" lon="0.5695290"> + <ele>2035.8</ele> + <time>2020-08-23T08:42:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5803090" lon="0.5695130"> + <ele>2036.0</ele> + <time>2020-08-23T08:42:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5803250" lon="0.5694990"> + <ele>2036.0</ele> + <time>2020-08-23T08:42:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5803410" lon="0.5694840"> + <ele>2036.0</ele> + <time>2020-08-23T08:42:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5803570" lon="0.5694690"> + <ele>2036.2</ele> + <time>2020-08-23T08:42:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5803720" lon="0.5694560"> + <ele>2036.2</ele> + <time>2020-08-23T08:42:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5803880" lon="0.5694440"> + <ele>2036.2</ele> + <time>2020-08-23T08:42:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5804030" lon="0.5694310"> + <ele>2036.4</ele> + <time>2020-08-23T08:42:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5804180" lon="0.5694150"> + <ele>2036.6</ele> + <time>2020-08-23T08:42:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5804340" lon="0.5694000"> + <ele>2036.8</ele> + <time>2020-08-23T08:42:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5804530" lon="0.5693880"> + <ele>2036.8</ele> + <time>2020-08-23T08:42:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5804720" lon="0.5693740"> + <ele>2036.8</ele> + <time>2020-08-23T08:42:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5804910" lon="0.5693620"> + <ele>2036.8</ele> + <time>2020-08-23T08:42:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5805100" lon="0.5693500"> + <ele>2036.8</ele> + <time>2020-08-23T08:42:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5805310" lon="0.5693370"> + <ele>2037.0</ele> + <time>2020-08-23T08:42:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5805510" lon="0.5693260"> + <ele>2037.0</ele> + <time>2020-08-23T08:42:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5805730" lon="0.5693140"> + <ele>2037.0</ele> + <time>2020-08-23T08:42:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5805950" lon="0.5693030"> + <ele>2037.0</ele> + <time>2020-08-23T08:42:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5806180" lon="0.5692970"> + <ele>2037.0</ele> + <time>2020-08-23T08:42:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5806410" lon="0.5692880"> + <ele>2037.0</ele> + <time>2020-08-23T08:42:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5806630" lon="0.5692730"> + <ele>2037.0</ele> + <time>2020-08-23T08:42:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5806840" lon="0.5692600"> + <ele>2037.0</ele> + <time>2020-08-23T08:42:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5807060" lon="0.5692510"> + <ele>2037.2</ele> + <time>2020-08-23T08:42:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5807290" lon="0.5692410"> + <ele>2037.2</ele> + <time>2020-08-23T08:42:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5807520" lon="0.5692300"> + <ele>2037.4</ele> + <time>2020-08-23T08:42:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5807740" lon="0.5692240"> + <ele>2037.6</ele> + <time>2020-08-23T08:42:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5807970" lon="0.5692120"> + <ele>2037.6</ele> + <time>2020-08-23T08:42:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5808200" lon="0.5692010"> + <ele>2037.8</ele> + <time>2020-08-23T08:42:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5808420" lon="0.5691910"> + <ele>2037.8</ele> + <time>2020-08-23T08:42:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5808610" lon="0.5691800"> + <ele>2038.0</ele> + <time>2020-08-23T08:42:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5808810" lon="0.5691670"> + <ele>2038.0</ele> + <time>2020-08-23T08:43:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5809020" lon="0.5691550"> + <ele>2038.2</ele> + <time>2020-08-23T08:43:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5809200" lon="0.5691450"> + <ele>2038.2</ele> + <time>2020-08-23T08:43:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5809390" lon="0.5691350"> + <ele>2038.4</ele> + <time>2020-08-23T08:43:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5809570" lon="0.5691260"> + <ele>2038.6</ele> + <time>2020-08-23T08:43:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5809770" lon="0.5691160"> + <ele>2038.8</ele> + <time>2020-08-23T08:43:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5810000" lon="0.5691070"> + <ele>2039.0</ele> + <time>2020-08-23T08:43:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5810220" lon="0.5690970"> + <ele>2039.0</ele> + <time>2020-08-23T08:43:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5810420" lon="0.5690830"> + <ele>2039.2</ele> + <time>2020-08-23T08:43:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5810620" lon="0.5690720"> + <ele>2039.2</ele> + <time>2020-08-23T08:43:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5810830" lon="0.5690590"> + <ele>2039.4</ele> + <time>2020-08-23T08:43:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5811020" lon="0.5690430"> + <ele>2039.4</ele> + <time>2020-08-23T08:43:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5811220" lon="0.5690300"> + <ele>2039.6</ele> + <time>2020-08-23T08:43:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5811430" lon="0.5690230"> + <ele>2039.6</ele> + <time>2020-08-23T08:43:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5811650" lon="0.5690140"> + <ele>2039.8</ele> + <time>2020-08-23T08:43:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5811860" lon="0.5690010"> + <ele>2040.0</ele> + <time>2020-08-23T08:43:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5812090" lon="0.5689860"> + <ele>2040.2</ele> + <time>2020-08-23T08:43:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5812290" lon="0.5689650"> + <ele>2040.0</ele> + <time>2020-08-23T08:43:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5812520" lon="0.5689470"> + <ele>2040.2</ele> + <time>2020-08-23T08:43:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5812760" lon="0.5689320"> + <ele>2040.2</ele> + <time>2020-08-23T08:43:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5812990" lon="0.5689180"> + <ele>2040.4</ele> + <time>2020-08-23T08:43:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5813250" lon="0.5689090"> + <ele>2040.6</ele> + <time>2020-08-23T08:43:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5813470" lon="0.5688980"> + <ele>2040.8</ele> + <time>2020-08-23T08:43:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5813700" lon="0.5688870"> + <ele>2040.8</ele> + <time>2020-08-23T08:43:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5813940" lon="0.5688770"> + <ele>2041.0</ele> + <time>2020-08-23T08:43:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5814170" lon="0.5688670"> + <ele>2041.2</ele> + <time>2020-08-23T08:43:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5814420" lon="0.5688530"> + <ele>2041.2</ele> + <time>2020-08-23T08:43:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5814650" lon="0.5688390"> + <ele>2041.4</ele> + <time>2020-08-23T08:43:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5814890" lon="0.5688260"> + <ele>2041.4</ele> + <time>2020-08-23T08:43:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5815130" lon="0.5688120"> + <ele>2041.6</ele> + <time>2020-08-23T08:43:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5815360" lon="0.5687970"> + <ele>2041.6</ele> + <time>2020-08-23T08:43:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5815590" lon="0.5687830"> + <ele>2041.8</ele> + <time>2020-08-23T08:43:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5815830" lon="0.5687690"> + <ele>2041.8</ele> + <time>2020-08-23T08:43:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5816070" lon="0.5687550"> + <ele>2042.0</ele> + <time>2020-08-23T08:43:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5816320" lon="0.5687470"> + <ele>2042.2</ele> + <time>2020-08-23T08:43:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5816550" lon="0.5687370"> + <ele>2042.2</ele> + <time>2020-08-23T08:43:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5816770" lon="0.5687230"> + <ele>2042.2</ele> + <time>2020-08-23T08:43:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5816980" lon="0.5687070"> + <ele>2042.4</ele> + <time>2020-08-23T08:43:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5817190" lon="0.5686910"> + <ele>2042.4</ele> + <time>2020-08-23T08:43:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5817400" lon="0.5686740"> + <ele>2042.6</ele> + <time>2020-08-23T08:43:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5817600" lon="0.5686590"> + <ele>2042.6</ele> + <time>2020-08-23T08:43:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5817820" lon="0.5686460"> + <ele>2042.6</ele> + <time>2020-08-23T08:43:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5818030" lon="0.5686340"> + <ele>2042.6</ele> + <time>2020-08-23T08:43:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5818230" lon="0.5686220"> + <ele>2042.6</ele> + <time>2020-08-23T08:43:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5818430" lon="0.5686050"> + <ele>2043.0</ele> + <time>2020-08-23T08:43:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5818630" lon="0.5685850"> + <ele>2043.0</ele> + <time>2020-08-23T08:43:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5818830" lon="0.5685660"> + <ele>2043.4</ele> + <time>2020-08-23T08:43:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5819030" lon="0.5685430"> + <ele>2043.4</ele> + <time>2020-08-23T08:43:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5819230" lon="0.5685210"> + <ele>2043.6</ele> + <time>2020-08-23T08:43:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5819430" lon="0.5685000"> + <ele>2043.6</ele> + <time>2020-08-23T08:43:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5819640" lon="0.5684810"> + <ele>2043.8</ele> + <time>2020-08-23T08:43:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5819850" lon="0.5684600"> + <ele>2043.8</ele> + <time>2020-08-23T08:43:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5820050" lon="0.5684380"> + <ele>2044.0</ele> + <time>2020-08-23T08:43:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5820260" lon="0.5684150"> + <ele>2044.0</ele> + <time>2020-08-23T08:43:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5820460" lon="0.5683990"> + <ele>2044.2</ele> + <time>2020-08-23T08:43:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5820650" lon="0.5683780"> + <ele>2044.2</ele> + <time>2020-08-23T08:43:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5820850" lon="0.5683570"> + <ele>2044.4</ele> + <time>2020-08-23T08:43:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5821060" lon="0.5683360"> + <ele>2044.6</ele> + <time>2020-08-23T08:43:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5821270" lon="0.5683140"> + <ele>2044.6</ele> + <time>2020-08-23T08:43:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5821460" lon="0.5682910"> + <ele>2044.6</ele> + <time>2020-08-23T08:43:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5821660" lon="0.5682680"> + <ele>2044.8</ele> + <time>2020-08-23T08:44:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5821850" lon="0.5682470"> + <ele>2045.0</ele> + <time>2020-08-23T08:44:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5822030" lon="0.5682270"> + <ele>2045.2</ele> + <time>2020-08-23T08:44:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5822200" lon="0.5682070"> + <ele>2045.2</ele> + <time>2020-08-23T08:44:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5822390" lon="0.5681900"> + <ele>2045.4</ele> + <time>2020-08-23T08:44:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5822590" lon="0.5681690"> + <ele>2045.4</ele> + <time>2020-08-23T08:44:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5822800" lon="0.5681470"> + <ele>2045.6</ele> + <time>2020-08-23T08:44:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5822980" lon="0.5681280"> + <ele>2045.8</ele> + <time>2020-08-23T08:44:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5823180" lon="0.5681100"> + <ele>2046.0</ele> + <time>2020-08-23T08:44:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5823380" lon="0.5680920"> + <ele>2046.0</ele> + <time>2020-08-23T08:44:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5823600" lon="0.5680730"> + <ele>2046.0</ele> + <time>2020-08-23T08:44:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5823820" lon="0.5680540"> + <ele>2046.2</ele> + <time>2020-08-23T08:44:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5824040" lon="0.5680360"> + <ele>2046.2</ele> + <time>2020-08-23T08:44:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5824240" lon="0.5680160"> + <ele>2046.2</ele> + <time>2020-08-23T08:44:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5824440" lon="0.5679960"> + <ele>2046.4</ele> + <time>2020-08-23T08:44:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5824640" lon="0.5679740"> + <ele>2046.4</ele> + <time>2020-08-23T08:44:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5824830" lon="0.5679550"> + <ele>2046.4</ele> + <time>2020-08-23T08:44:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5825020" lon="0.5679380"> + <ele>2046.6</ele> + <time>2020-08-23T08:44:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5825220" lon="0.5679190"> + <ele>2046.6</ele> + <time>2020-08-23T08:44:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5825410" lon="0.5679060"> + <ele>2046.8</ele> + <time>2020-08-23T08:44:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5825620" lon="0.5678870"> + <ele>2047.0</ele> + <time>2020-08-23T08:44:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5825830" lon="0.5678710"> + <ele>2047.2</ele> + <time>2020-08-23T08:44:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5826040" lon="0.5678540"> + <ele>2047.4</ele> + <time>2020-08-23T08:44:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5826260" lon="0.5678370"> + <ele>2047.4</ele> + <time>2020-08-23T08:44:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5826470" lon="0.5678190"> + <ele>2047.6</ele> + <time>2020-08-23T08:44:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5826690" lon="0.5678000"> + <ele>2047.8</ele> + <time>2020-08-23T08:44:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5826900" lon="0.5677820"> + <ele>2047.8</ele> + <time>2020-08-23T08:44:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5827120" lon="0.5677670"> + <ele>2048.0</ele> + <time>2020-08-23T08:44:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5827340" lon="0.5677500"> + <ele>2048.0</ele> + <time>2020-08-23T08:44:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5827550" lon="0.5677330"> + <ele>2048.2</ele> + <time>2020-08-23T08:44:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5827760" lon="0.5677160"> + <ele>2048.4</ele> + <time>2020-08-23T08:44:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5827960" lon="0.5677000"> + <ele>2048.6</ele> + <time>2020-08-23T08:44:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5828170" lon="0.5676860"> + <ele>2048.8</ele> + <time>2020-08-23T08:44:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5828360" lon="0.5676740"> + <ele>2048.8</ele> + <time>2020-08-23T08:44:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5828520" lon="0.5676630"> + <ele>2049.0</ele> + <time>2020-08-23T08:44:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5828650" lon="0.5676550"> + <ele>2049.0</ele> + <time>2020-08-23T08:44:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5828710" lon="0.5676510"> + <ele>2049.2</ele> + <time>2020-08-23T08:44:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5828730" lon="0.5676480"> + <ele>2049.4</ele> + <time>2020-08-23T08:44:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5828750" lon="0.5676480"> + <ele>2049.4</ele> + <time>2020-08-23T08:44:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5829110" lon="0.5676100"> + <ele>2048.6</ele> + <time>2020-08-23T08:48:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5829290" lon="0.5675980"> + <ele>2048.8</ele> + <time>2020-08-23T08:48:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5829470" lon="0.5675860"> + <ele>2048.8</ele> + <time>2020-08-23T08:48:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5829640" lon="0.5675720"> + <ele>2048.8</ele> + <time>2020-08-23T08:48:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5829810" lon="0.5675550"> + <ele>2048.8</ele> + <time>2020-08-23T08:48:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5829980" lon="0.5675390"> + <ele>2049.0</ele> + <time>2020-08-23T08:48:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5830150" lon="0.5675240"> + <ele>2049.0</ele> + <time>2020-08-23T08:48:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5830320" lon="0.5675080"> + <ele>2049.0</ele> + <time>2020-08-23T08:48:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5830510" lon="0.5674890"> + <ele>2049.0</ele> + <time>2020-08-23T08:48:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5830690" lon="0.5674730"> + <ele>2049.0</ele> + <time>2020-08-23T08:48:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5830830" lon="0.5674590"> + <ele>2049.0</ele> + <time>2020-08-23T08:48:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5830940" lon="0.5674420"> + <ele>2049.0</ele> + <time>2020-08-23T08:48:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5831070" lon="0.5674260"> + <ele>2049.2</ele> + <time>2020-08-23T08:48:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5831260" lon="0.5674120"> + <ele>2049.2</ele> + <time>2020-08-23T08:48:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5831450" lon="0.5674000"> + <ele>2049.2</ele> + <time>2020-08-23T08:48:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5831630" lon="0.5673890"> + <ele>2049.2</ele> + <time>2020-08-23T08:48:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5831830" lon="0.5673780"> + <ele>2049.2</ele> + <time>2020-08-23T08:48:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832030" lon="0.5673680"> + <ele>2049.2</ele> + <time>2020-08-23T08:48:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832230" lon="0.5673580"> + <ele>2049.4</ele> + <time>2020-08-23T08:48:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832430" lon="0.5673440"> + <ele>2049.4</ele> + <time>2020-08-23T08:48:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832630" lon="0.5673310"> + <ele>2049.4</ele> + <time>2020-08-23T08:48:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832830" lon="0.5673210"> + <ele>2049.4</ele> + <time>2020-08-23T08:48:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833040" lon="0.5673130"> + <ele>2049.6</ele> + <time>2020-08-23T08:48:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833240" lon="0.5673060"> + <ele>2049.6</ele> + <time>2020-08-23T08:48:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833420" lon="0.5672940"> + <ele>2049.6</ele> + <time>2020-08-23T08:48:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833600" lon="0.5672810"> + <ele>2049.6</ele> + <time>2020-08-23T08:48:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833800" lon="0.5672730"> + <ele>2049.6</ele> + <time>2020-08-23T08:48:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834000" lon="0.5672660"> + <ele>2049.8</ele> + <time>2020-08-23T08:48:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834210" lon="0.5672610"> + <ele>2049.8</ele> + <time>2020-08-23T08:48:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834410" lon="0.5672560"> + <ele>2050.0</ele> + <time>2020-08-23T08:48:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834630" lon="0.5672490"> + <ele>2050.2</ele> + <time>2020-08-23T08:48:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834860" lon="0.5672430"> + <ele>2050.4</ele> + <time>2020-08-23T08:48:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835070" lon="0.5672370"> + <ele>2050.4</ele> + <time>2020-08-23T08:48:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835270" lon="0.5672310"> + <ele>2050.4</ele> + <time>2020-08-23T08:48:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835480" lon="0.5672260"> + <ele>2050.6</ele> + <time>2020-08-23T08:48:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835700" lon="0.5672220"> + <ele>2050.6</ele> + <time>2020-08-23T08:48:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835930" lon="0.5672190"> + <ele>2050.8</ele> + <time>2020-08-23T08:48:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836160" lon="0.5672150"> + <ele>2051.0</ele> + <time>2020-08-23T08:48:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836380" lon="0.5672120"> + <ele>2050.8</ele> + <time>2020-08-23T08:48:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836600" lon="0.5672100"> + <ele>2050.8</ele> + <time>2020-08-23T08:48:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836820" lon="0.5672060"> + <ele>2051.0</ele> + <time>2020-08-23T08:48:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837030" lon="0.5672020"> + <ele>2051.0</ele> + <time>2020-08-23T08:48:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837250" lon="0.5671980"> + <ele>2051.0</ele> + <time>2020-08-23T08:48:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837470" lon="0.5671940"> + <ele>2051.2</ele> + <time>2020-08-23T08:48:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837690" lon="0.5671890"> + <ele>2051.2</ele> + <time>2020-08-23T08:48:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837920" lon="0.5671850"> + <ele>2051.2</ele> + <time>2020-08-23T08:48:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838130" lon="0.5671800"> + <ele>2051.4</ele> + <time>2020-08-23T08:48:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838340" lon="0.5671750"> + <ele>2051.6</ele> + <time>2020-08-23T08:48:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838550" lon="0.5671690"> + <ele>2051.6</ele> + <time>2020-08-23T08:48:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838760" lon="0.5671660"> + <ele>2051.8</ele> + <time>2020-08-23T08:49:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838970" lon="0.5671650"> + <ele>2051.8</ele> + <time>2020-08-23T08:49:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839180" lon="0.5671620"> + <ele>2052.0</ele> + <time>2020-08-23T08:49:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839390" lon="0.5671570"> + <ele>2052.0</ele> + <time>2020-08-23T08:49:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839580" lon="0.5671510"> + <ele>2052.0</ele> + <time>2020-08-23T08:49:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839780" lon="0.5671460"> + <ele>2052.2</ele> + <time>2020-08-23T08:49:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839980" lon="0.5671390"> + <ele>2052.2</ele> + <time>2020-08-23T08:49:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840180" lon="0.5671300"> + <ele>2052.4</ele> + <time>2020-08-23T08:49:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840380" lon="0.5671220"> + <ele>2052.6</ele> + <time>2020-08-23T08:49:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840580" lon="0.5671130"> + <ele>2052.6</ele> + <time>2020-08-23T08:49:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840770" lon="0.5671030"> + <ele>2052.8</ele> + <time>2020-08-23T08:49:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840960" lon="0.5670920"> + <ele>2053.0</ele> + <time>2020-08-23T08:49:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841140" lon="0.5670820"> + <ele>2053.0</ele> + <time>2020-08-23T08:49:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841310" lon="0.5670710"> + <ele>2053.2</ele> + <time>2020-08-23T08:49:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841480" lon="0.5670580"> + <ele>2053.4</ele> + <time>2020-08-23T08:49:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841650" lon="0.5670440"> + <ele>2053.6</ele> + <time>2020-08-23T08:49:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841820" lon="0.5670300"> + <ele>2053.8</ele> + <time>2020-08-23T08:49:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841980" lon="0.5670170"> + <ele>2053.8</ele> + <time>2020-08-23T08:49:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842130" lon="0.5670030"> + <ele>2054.0</ele> + <time>2020-08-23T08:49:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842280" lon="0.5669850"> + <ele>2054.0</ele> + <time>2020-08-23T08:49:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842430" lon="0.5669700"> + <ele>2054.0</ele> + <time>2020-08-23T08:49:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842580" lon="0.5669560"> + <ele>2054.2</ele> + <time>2020-08-23T08:49:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842740" lon="0.5669440"> + <ele>2054.2</ele> + <time>2020-08-23T08:49:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842910" lon="0.5669300"> + <ele>2054.4</ele> + <time>2020-08-23T08:49:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843100" lon="0.5669190"> + <ele>2054.6</ele> + <time>2020-08-23T08:49:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843300" lon="0.5669040"> + <ele>2054.8</ele> + <time>2020-08-23T08:49:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843490" lon="0.5668900"> + <ele>2055.0</ele> + <time>2020-08-23T08:49:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843690" lon="0.5668820"> + <ele>2055.2</ele> + <time>2020-08-23T08:49:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843890" lon="0.5668720"> + <ele>2055.2</ele> + <time>2020-08-23T08:49:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844080" lon="0.5668610"> + <ele>2055.4</ele> + <time>2020-08-23T08:49:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844270" lon="0.5668520"> + <ele>2055.4</ele> + <time>2020-08-23T08:49:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844460" lon="0.5668440"> + <ele>2055.6</ele> + <time>2020-08-23T08:49:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844650" lon="0.5668380"> + <ele>2055.8</ele> + <time>2020-08-23T08:49:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844850" lon="0.5668300"> + <ele>2055.8</ele> + <time>2020-08-23T08:49:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845040" lon="0.5668190"> + <ele>2055.8</ele> + <time>2020-08-23T08:49:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845230" lon="0.5668120"> + <ele>2055.8</ele> + <time>2020-08-23T08:49:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845430" lon="0.5668040"> + <ele>2056.0</ele> + <time>2020-08-23T08:49:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845610" lon="0.5667950"> + <ele>2056.0</ele> + <time>2020-08-23T08:49:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845810" lon="0.5667860"> + <ele>2056.2</ele> + <time>2020-08-23T08:49:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846000" lon="0.5667790"> + <ele>2056.4</ele> + <time>2020-08-23T08:49:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846200" lon="0.5667740"> + <ele>2056.6</ele> + <time>2020-08-23T08:49:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846410" lon="0.5667670"> + <ele>2056.8</ele> + <time>2020-08-23T08:49:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846610" lon="0.5667630"> + <ele>2057.0</ele> + <time>2020-08-23T08:49:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846820" lon="0.5667590"> + <ele>2057.0</ele> + <time>2020-08-23T08:49:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847030" lon="0.5667520"> + <ele>2057.2</ele> + <time>2020-08-23T08:49:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847230" lon="0.5667470"> + <ele>2057.4</ele> + <time>2020-08-23T08:49:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847430" lon="0.5667390"> + <ele>2057.4</ele> + <time>2020-08-23T08:49:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847630" lon="0.5667330"> + <ele>2057.8</ele> + <time>2020-08-23T08:49:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847830" lon="0.5667280"> + <ele>2058.0</ele> + <time>2020-08-23T08:49:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848030" lon="0.5667270"> + <ele>2058.2</ele> + <time>2020-08-23T08:49:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848230" lon="0.5667250"> + <ele>2058.2</ele> + <time>2020-08-23T08:49:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848430" lon="0.5667220"> + <ele>2058.2</ele> + <time>2020-08-23T08:49:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848630" lon="0.5667210"> + <ele>2058.4</ele> + <time>2020-08-23T08:49:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848830" lon="0.5667220"> + <ele>2058.6</ele> + <time>2020-08-23T08:49:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849020" lon="0.5667240"> + <ele>2058.8</ele> + <time>2020-08-23T08:49:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849220" lon="0.5667240"> + <ele>2059.0</ele> + <time>2020-08-23T08:49:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849420" lon="0.5667210"> + <ele>2059.2</ele> + <time>2020-08-23T08:49:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849610" lon="0.5667210"> + <ele>2059.4</ele> + <time>2020-08-23T08:49:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849790" lon="0.5667230"> + <ele>2059.6</ele> + <time>2020-08-23T08:49:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849970" lon="0.5667250"> + <ele>2059.8</ele> + <time>2020-08-23T08:49:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850150" lon="0.5667290"> + <ele>2059.8</ele> + <time>2020-08-23T08:50:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850330" lon="0.5667300"> + <ele>2060.0</ele> + <time>2020-08-23T08:50:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850510" lon="0.5667310"> + <ele>2060.2</ele> + <time>2020-08-23T08:50:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850680" lon="0.5667350"> + <ele>2060.2</ele> + <time>2020-08-23T08:50:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850870" lon="0.5667340"> + <ele>2060.4</ele> + <time>2020-08-23T08:50:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851050" lon="0.5667370"> + <ele>2060.6</ele> + <time>2020-08-23T08:50:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851230" lon="0.5667410"> + <ele>2060.8</ele> + <time>2020-08-23T08:50:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851420" lon="0.5667440"> + <ele>2061.0</ele> + <time>2020-08-23T08:50:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851600" lon="0.5667480"> + <ele>2061.2</ele> + <time>2020-08-23T08:50:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851750" lon="0.5667520"> + <ele>2061.4</ele> + <time>2020-08-23T08:50:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851890" lon="0.5667550"> + <ele>2061.6</ele> + <time>2020-08-23T08:50:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852030" lon="0.5667590"> + <ele>2061.6</ele> + <time>2020-08-23T08:50:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852160" lon="0.5667620"> + <ele>2061.8</ele> + <time>2020-08-23T08:50:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852310" lon="0.5667680"> + <ele>2062.0</ele> + <time>2020-08-23T08:50:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852460" lon="0.5667770"> + <ele>2062.0</ele> + <time>2020-08-23T08:50:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852630" lon="0.5667870"> + <ele>2062.2</ele> + <time>2020-08-23T08:50:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852810" lon="0.5668010"> + <ele>2062.2</ele> + <time>2020-08-23T08:50:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852980" lon="0.5668120"> + <ele>2062.4</ele> + <time>2020-08-23T08:50:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853140" lon="0.5668220"> + <ele>2062.4</ele> + <time>2020-08-23T08:50:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853300" lon="0.5668340"> + <ele>2062.6</ele> + <time>2020-08-23T08:50:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853470" lon="0.5668500"> + <ele>2062.6</ele> + <time>2020-08-23T08:50:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853650" lon="0.5668690"> + <ele>2062.6</ele> + <time>2020-08-23T08:50:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853820" lon="0.5668930"> + <ele>2062.8</ele> + <time>2020-08-23T08:50:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853970" lon="0.5669120"> + <ele>2063.0</ele> + <time>2020-08-23T08:50:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854160" lon="0.5669310"> + <ele>2063.2</ele> + <time>2020-08-23T08:50:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854330" lon="0.5669470"> + <ele>2063.4</ele> + <time>2020-08-23T08:50:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854430" lon="0.5669680"> + <ele>2063.4</ele> + <time>2020-08-23T08:50:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854540" lon="0.5669880"> + <ele>2063.6</ele> + <time>2020-08-23T08:50:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854650" lon="0.5670090"> + <ele>2063.6</ele> + <time>2020-08-23T08:50:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854780" lon="0.5670290"> + <ele>2063.8</ele> + <time>2020-08-23T08:50:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854870" lon="0.5670510"> + <ele>2064.0</ele> + <time>2020-08-23T08:50:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854970" lon="0.5670720"> + <ele>2064.0</ele> + <time>2020-08-23T08:50:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855080" lon="0.5670930"> + <ele>2064.2</ele> + <time>2020-08-23T08:50:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855180" lon="0.5671140"> + <ele>2064.2</ele> + <time>2020-08-23T08:50:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855290" lon="0.5671370"> + <ele>2064.4</ele> + <time>2020-08-23T08:50:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855370" lon="0.5671620"> + <ele>2064.4</ele> + <time>2020-08-23T08:50:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855450" lon="0.5671870"> + <ele>2064.4</ele> + <time>2020-08-23T08:50:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855530" lon="0.5672120"> + <ele>2064.6</ele> + <time>2020-08-23T08:50:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855600" lon="0.5672380"> + <ele>2064.6</ele> + <time>2020-08-23T08:50:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855690" lon="0.5672630"> + <ele>2064.8</ele> + <time>2020-08-23T08:50:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855770" lon="0.5672870"> + <ele>2064.8</ele> + <time>2020-08-23T08:50:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855860" lon="0.5673130"> + <ele>2064.8</ele> + <time>2020-08-23T08:50:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855960" lon="0.5673390"> + <ele>2064.8</ele> + <time>2020-08-23T08:50:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856060" lon="0.5673620"> + <ele>2065.0</ele> + <time>2020-08-23T08:50:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856210" lon="0.5673850"> + <ele>2065.2</ele> + <time>2020-08-23T08:50:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856370" lon="0.5674090"> + <ele>2065.2</ele> + <time>2020-08-23T08:50:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856530" lon="0.5674330"> + <ele>2065.2</ele> + <time>2020-08-23T08:50:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856730" lon="0.5674560"> + <ele>2065.2</ele> + <time>2020-08-23T08:50:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856950" lon="0.5674790"> + <ele>2065.4</ele> + <time>2020-08-23T08:50:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857170" lon="0.5675020"> + <ele>2065.6</ele> + <time>2020-08-23T08:50:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857390" lon="0.5675240"> + <ele>2065.6</ele> + <time>2020-08-23T08:50:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857610" lon="0.5675450"> + <ele>2065.6</ele> + <time>2020-08-23T08:50:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857830" lon="0.5675680"> + <ele>2065.6</ele> + <time>2020-08-23T08:50:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858040" lon="0.5675930"> + <ele>2065.6</ele> + <time>2020-08-23T08:50:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858260" lon="0.5676180"> + <ele>2065.6</ele> + <time>2020-08-23T08:50:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858470" lon="0.5676440"> + <ele>2065.8</ele> + <time>2020-08-23T08:50:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858670" lon="0.5676720"> + <ele>2065.8</ele> + <time>2020-08-23T08:50:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858890" lon="0.5676990"> + <ele>2065.8</ele> + <time>2020-08-23T08:50:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859100" lon="0.5677250"> + <ele>2065.8</ele> + <time>2020-08-23T08:50:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859300" lon="0.5677520"> + <ele>2065.8</ele> + <time>2020-08-23T08:50:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859500" lon="0.5677780"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859710" lon="0.5678040"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859910" lon="0.5678330"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860110" lon="0.5678620"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860320" lon="0.5678890"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860520" lon="0.5679160"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860730" lon="0.5679430"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860960" lon="0.5679670"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861170" lon="0.5679930"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861380" lon="0.5680200"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861600" lon="0.5680460"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861810" lon="0.5680720"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862010" lon="0.5680970"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862230" lon="0.5681230"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862450" lon="0.5681480"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862650" lon="0.5681750"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862860" lon="0.5682020"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863070" lon="0.5682290"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863270" lon="0.5682560"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863470" lon="0.5682840"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863680" lon="0.5683100"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863900" lon="0.5683380"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864100" lon="0.5683670"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864300" lon="0.5683970"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864500" lon="0.5684300"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864690" lon="0.5684620"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864870" lon="0.5684960"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865040" lon="0.5685310"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865240" lon="0.5685660"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865430" lon="0.5686030"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865630" lon="0.5686420"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865810" lon="0.5686840"> + <ele>2066.0</ele> + <time>2020-08-23T08:51:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865990" lon="0.5687280"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866160" lon="0.5687730"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866320" lon="0.5688180"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866420" lon="0.5688640"> + <ele>2065.8</ele> + <time>2020-08-23T08:51:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866490" lon="0.5689120"> + <ele>2065.6</ele> + <time>2020-08-23T08:51:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866530" lon="0.5689600"> + <ele>2065.6</ele> + <time>2020-08-23T08:51:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866570" lon="0.5690070"> + <ele>2065.4</ele> + <time>2020-08-23T08:51:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866610" lon="0.5690520"> + <ele>2065.4</ele> + <time>2020-08-23T08:51:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866620" lon="0.5690970"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866620" lon="0.5691400"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866600" lon="0.5691800"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866580" lon="0.5692170"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866570" lon="0.5692510"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866550" lon="0.5692890"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866520" lon="0.5693280"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866460" lon="0.5693670"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866390" lon="0.5694060"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866310" lon="0.5694420"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866250" lon="0.5694770"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866200" lon="0.5695110"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866170" lon="0.5695430"> + <ele>2065.2</ele> + <time>2020-08-23T08:51:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866130" lon="0.5695720"> + <ele>2065.4</ele> + <time>2020-08-23T08:51:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866100" lon="0.5696010"> + <ele>2065.4</ele> + <time>2020-08-23T08:51:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866060" lon="0.5696260"> + <ele>2065.4</ele> + <time>2020-08-23T08:51:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866000" lon="0.5696480"> + <ele>2065.4</ele> + <time>2020-08-23T08:51:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865970" lon="0.5696650"> + <ele>2065.4</ele> + <time>2020-08-23T08:51:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865980" lon="0.5696730"> + <ele>2065.4</ele> + <time>2020-08-23T08:51:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865970" lon="0.5696760"> + <ele>2065.6</ele> + <time>2020-08-23T08:51:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865910" lon="0.5698420"> + <ele>2065.6</ele> + <time>2020-08-23T08:52:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865860" lon="0.5698750"> + <ele>2065.6</ele> + <time>2020-08-23T08:52:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865810" lon="0.5699080"> + <ele>2065.6</ele> + <time>2020-08-23T08:52:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865770" lon="0.5699410"> + <ele>2065.8</ele> + <time>2020-08-23T08:52:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865710" lon="0.5699730"> + <ele>2065.8</ele> + <time>2020-08-23T08:52:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865630" lon="0.5700020"> + <ele>2065.8</ele> + <time>2020-08-23T08:52:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865560" lon="0.5700330"> + <ele>2065.8</ele> + <time>2020-08-23T08:52:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865500" lon="0.5700620"> + <ele>2065.8</ele> + <time>2020-08-23T08:52:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865430" lon="0.5700900"> + <ele>2066.2</ele> + <time>2020-08-23T08:52:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865390" lon="0.5701190"> + <ele>2066.2</ele> + <time>2020-08-23T08:52:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865320" lon="0.5701460"> + <ele>2066.2</ele> + <time>2020-08-23T08:52:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865200" lon="0.5701720"> + <ele>2066.2</ele> + <time>2020-08-23T08:52:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>12</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865160" lon="0.5702030"> + <ele>2066.4</ele> + <time>2020-08-23T08:52:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865110" lon="0.5702310"> + <ele>2066.6</ele> + <time>2020-08-23T08:52:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865020" lon="0.5702580"> + <ele>2066.8</ele> + <time>2020-08-23T08:52:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864920" lon="0.5702850"> + <ele>2066.8</ele> + <time>2020-08-23T08:52:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864860" lon="0.5703160"> + <ele>2067.0</ele> + <time>2020-08-23T08:52:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864830" lon="0.5703470"> + <ele>2067.0</ele> + <time>2020-08-23T08:52:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864780" lon="0.5703820"> + <ele>2067.2</ele> + <time>2020-08-23T08:52:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864720" lon="0.5704140"> + <ele>2067.4</ele> + <time>2020-08-23T08:52:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864660" lon="0.5704490"> + <ele>2067.4</ele> + <time>2020-08-23T08:52:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864580" lon="0.5704800"> + <ele>2067.6</ele> + <time>2020-08-23T08:52:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864530" lon="0.5705180"> + <ele>2067.6</ele> + <time>2020-08-23T08:52:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864450" lon="0.5705520"> + <ele>2067.8</ele> + <time>2020-08-23T08:52:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864350" lon="0.5705890"> + <ele>2067.8</ele> + <time>2020-08-23T08:52:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864230" lon="0.5706190"> + <ele>2068.0</ele> + <time>2020-08-23T08:52:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864120" lon="0.5706500"> + <ele>2068.0</ele> + <time>2020-08-23T08:52:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864020" lon="0.5706830"> + <ele>2068.2</ele> + <time>2020-08-23T08:53:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863940" lon="0.5707170"> + <ele>2068.4</ele> + <time>2020-08-23T08:53:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863840" lon="0.5707490"> + <ele>2068.6</ele> + <time>2020-08-23T08:53:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863700" lon="0.5707780"> + <ele>2068.8</ele> + <time>2020-08-23T08:53:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863550" lon="0.5708060"> + <ele>2068.8</ele> + <time>2020-08-23T08:53:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863410" lon="0.5708370"> + <ele>2069.0</ele> + <time>2020-08-23T08:53:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863260" lon="0.5708650"> + <ele>2069.0</ele> + <time>2020-08-23T08:53:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863100" lon="0.5708920"> + <ele>2069.0</ele> + <time>2020-08-23T08:53:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862980" lon="0.5709220"> + <ele>2069.2</ele> + <time>2020-08-23T08:53:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862820" lon="0.5709470"> + <ele>2069.2</ele> + <time>2020-08-23T08:53:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862640" lon="0.5709720"> + <ele>2069.4</ele> + <time>2020-08-23T08:53:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862470" lon="0.5710020"> + <ele>2069.4</ele> + <time>2020-08-23T08:53:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862340" lon="0.5710350"> + <ele>2069.4</ele> + <time>2020-08-23T08:53:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862220" lon="0.5710650"> + <ele>2069.6</ele> + <time>2020-08-23T08:53:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862070" lon="0.5710920"> + <ele>2069.6</ele> + <time>2020-08-23T08:53:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861910" lon="0.5711170"> + <ele>2069.6</ele> + <time>2020-08-23T08:53:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861760" lon="0.5711430"> + <ele>2070.0</ele> + <time>2020-08-23T08:53:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861600" lon="0.5711670"> + <ele>2070.2</ele> + <time>2020-08-23T08:53:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861440" lon="0.5711920"> + <ele>2070.4</ele> + <time>2020-08-23T08:53:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861270" lon="0.5712160"> + <ele>2070.6</ele> + <time>2020-08-23T08:53:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861120" lon="0.5712420"> + <ele>2070.6</ele> + <time>2020-08-23T08:53:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860990" lon="0.5712690"> + <ele>2070.8</ele> + <time>2020-08-23T08:53:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860860" lon="0.5712980"> + <ele>2070.8</ele> + <time>2020-08-23T08:53:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860730" lon="0.5713290"> + <ele>2071.0</ele> + <time>2020-08-23T08:53:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860590" lon="0.5713570"> + <ele>2071.2</ele> + <time>2020-08-23T08:53:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860440" lon="0.5713830"> + <ele>2071.4</ele> + <time>2020-08-23T08:53:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860290" lon="0.5714090"> + <ele>2071.4</ele> + <time>2020-08-23T08:53:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860140" lon="0.5714370"> + <ele>2071.4</ele> + <time>2020-08-23T08:53:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860000" lon="0.5714660"> + <ele>2071.6</ele> + <time>2020-08-23T08:53:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859880" lon="0.5714950"> + <ele>2071.8</ele> + <time>2020-08-23T08:53:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859760" lon="0.5715260"> + <ele>2071.8</ele> + <time>2020-08-23T08:53:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859640" lon="0.5715530"> + <ele>2071.8</ele> + <time>2020-08-23T08:53:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859510" lon="0.5715800"> + <ele>2072.0</ele> + <time>2020-08-23T08:53:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859380" lon="0.5716060"> + <ele>2072.0</ele> + <time>2020-08-23T08:53:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859240" lon="0.5716320"> + <ele>2072.0</ele> + <time>2020-08-23T08:53:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859100" lon="0.5716590"> + <ele>2072.2</ele> + <time>2020-08-23T08:53:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858960" lon="0.5716870"> + <ele>2072.4</ele> + <time>2020-08-23T08:53:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858830" lon="0.5717150"> + <ele>2072.4</ele> + <time>2020-08-23T08:53:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858680" lon="0.5717390"> + <ele>2072.6</ele> + <time>2020-08-23T08:53:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858540" lon="0.5717660"> + <ele>2072.6</ele> + <time>2020-08-23T08:53:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858390" lon="0.5717920"> + <ele>2072.8</ele> + <time>2020-08-23T08:53:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858240" lon="0.5718170"> + <ele>2072.8</ele> + <time>2020-08-23T08:53:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858090" lon="0.5718430"> + <ele>2073.0</ele> + <time>2020-08-23T08:53:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857940" lon="0.5718690"> + <ele>2073.0</ele> + <time>2020-08-23T08:53:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857780" lon="0.5718950"> + <ele>2073.2</ele> + <time>2020-08-23T08:53:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857620" lon="0.5719190"> + <ele>2073.2</ele> + <time>2020-08-23T08:53:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857460" lon="0.5719450"> + <ele>2073.2</ele> + <time>2020-08-23T08:53:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857280" lon="0.5719690"> + <ele>2073.4</ele> + <time>2020-08-23T08:53:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857090" lon="0.5719920"> + <ele>2073.4</ele> + <time>2020-08-23T08:53:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856900" lon="0.5720150"> + <ele>2073.6</ele> + <time>2020-08-23T08:53:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856720" lon="0.5720380"> + <ele>2073.6</ele> + <time>2020-08-23T08:53:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856540" lon="0.5720620"> + <ele>2073.6</ele> + <time>2020-08-23T08:53:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856340" lon="0.5720850"> + <ele>2073.6</ele> + <time>2020-08-23T08:53:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856110" lon="0.5721030"> + <ele>2073.8</ele> + <time>2020-08-23T08:53:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855880" lon="0.5721160"> + <ele>2073.8</ele> + <time>2020-08-23T08:53:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855660" lon="0.5721270"> + <ele>2073.8</ele> + <time>2020-08-23T08:53:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855450" lon="0.5721410"> + <ele>2073.8</ele> + <time>2020-08-23T08:53:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855210" lon="0.5721580"> + <ele>2074.0</ele> + <time>2020-08-23T08:53:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854970" lon="0.5721740"> + <ele>2074.0</ele> + <time>2020-08-23T08:53:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854750" lon="0.5721910"> + <ele>2074.0</ele> + <time>2020-08-23T08:53:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854500" lon="0.5722040"> + <ele>2074.0</ele> + <time>2020-08-23T08:54:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854270" lon="0.5722200"> + <ele>2074.2</ele> + <time>2020-08-23T08:54:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854030" lon="0.5722340"> + <ele>2074.2</ele> + <time>2020-08-23T08:54:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853770" lon="0.5722470"> + <ele>2074.4</ele> + <time>2020-08-23T08:54:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853520" lon="0.5722590"> + <ele>2074.4</ele> + <time>2020-08-23T08:54:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853280" lon="0.5722710"> + <ele>2074.6</ele> + <time>2020-08-23T08:54:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853040" lon="0.5722850"> + <ele>2074.6</ele> + <time>2020-08-23T08:54:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852790" lon="0.5723020"> + <ele>2074.6</ele> + <time>2020-08-23T08:54:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852540" lon="0.5723170"> + <ele>2074.6</ele> + <time>2020-08-23T08:54:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852280" lon="0.5723300"> + <ele>2074.8</ele> + <time>2020-08-23T08:54:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852040" lon="0.5723450"> + <ele>2074.8</ele> + <time>2020-08-23T08:54:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851800" lon="0.5723580"> + <ele>2074.8</ele> + <time>2020-08-23T08:54:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851560" lon="0.5723710"> + <ele>2075.0</ele> + <time>2020-08-23T08:54:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851320" lon="0.5723830"> + <ele>2075.0</ele> + <time>2020-08-23T08:54:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851080" lon="0.5723940"> + <ele>2075.2</ele> + <time>2020-08-23T08:54:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850840" lon="0.5724080"> + <ele>2075.2</ele> + <time>2020-08-23T08:54:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850590" lon="0.5724190"> + <ele>2075.2</ele> + <time>2020-08-23T08:54:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850330" lon="0.5724250"> + <ele>2075.4</ele> + <time>2020-08-23T08:54:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850090" lon="0.5724330"> + <ele>2075.4</ele> + <time>2020-08-23T08:54:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849870" lon="0.5724480"> + <ele>2075.4</ele> + <time>2020-08-23T08:54:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849680" lon="0.5724670"> + <ele>2075.4</ele> + <time>2020-08-23T08:54:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849500" lon="0.5724870"> + <ele>2075.6</ele> + <time>2020-08-23T08:54:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849320" lon="0.5725070"> + <ele>2075.8</ele> + <time>2020-08-23T08:54:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849150" lon="0.5725310"> + <ele>2076.0</ele> + <time>2020-08-23T08:54:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848960" lon="0.5725540"> + <ele>2076.0</ele> + <time>2020-08-23T08:54:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848750" lon="0.5725750"> + <ele>2076.2</ele> + <time>2020-08-23T08:54:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848580" lon="0.5725970"> + <ele>2076.2</ele> + <time>2020-08-23T08:54:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848410" lon="0.5726220"> + <ele>2076.4</ele> + <time>2020-08-23T08:54:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>13</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848240" lon="0.5726460"> + <ele>2076.6</ele> + <time>2020-08-23T08:54:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848060" lon="0.5726690"> + <ele>2076.8</ele> + <time>2020-08-23T08:54:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847900" lon="0.5726910"> + <ele>2076.8</ele> + <time>2020-08-23T08:54:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847730" lon="0.5727140"> + <ele>2077.0</ele> + <time>2020-08-23T08:54:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847570" lon="0.5727380"> + <ele>2077.0</ele> + <time>2020-08-23T08:54:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847420" lon="0.5727630"> + <ele>2077.2</ele> + <time>2020-08-23T08:54:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847260" lon="0.5727870"> + <ele>2077.2</ele> + <time>2020-08-23T08:54:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847090" lon="0.5728080"> + <ele>2077.4</ele> + <time>2020-08-23T08:54:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846930" lon="0.5728290"> + <ele>2077.6</ele> + <time>2020-08-23T08:54:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846770" lon="0.5728510"> + <ele>2077.8</ele> + <time>2020-08-23T08:54:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846610" lon="0.5728720"> + <ele>2077.8</ele> + <time>2020-08-23T08:54:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846460" lon="0.5728920"> + <ele>2078.0</ele> + <time>2020-08-23T08:54:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846320" lon="0.5729150"> + <ele>2078.0</ele> + <time>2020-08-23T08:54:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846180" lon="0.5729390"> + <ele>2078.2</ele> + <time>2020-08-23T08:54:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846040" lon="0.5729610"> + <ele>2078.2</ele> + <time>2020-08-23T08:54:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845880" lon="0.5729820"> + <ele>2078.4</ele> + <time>2020-08-23T08:54:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845720" lon="0.5730030"> + <ele>2078.6</ele> + <time>2020-08-23T08:54:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845570" lon="0.5730290"> + <ele>2078.6</ele> + <time>2020-08-23T08:54:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845410" lon="0.5730500"> + <ele>2078.8</ele> + <time>2020-08-23T08:54:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845250" lon="0.5730690"> + <ele>2079.0</ele> + <time>2020-08-23T08:54:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845100" lon="0.5730920"> + <ele>2079.2</ele> + <time>2020-08-23T08:54:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844970" lon="0.5731150"> + <ele>2079.4</ele> + <time>2020-08-23T08:54:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844850" lon="0.5731380"> + <ele>2079.4</ele> + <time>2020-08-23T08:54:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844720" lon="0.5731630"> + <ele>2079.6</ele> + <time>2020-08-23T08:54:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844610" lon="0.5731890"> + <ele>2079.6</ele> + <time>2020-08-23T08:54:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844520" lon="0.5732160"> + <ele>2079.6</ele> + <time>2020-08-23T08:54:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844420" lon="0.5732440"> + <ele>2079.8</ele> + <time>2020-08-23T08:54:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844300" lon="0.5732690"> + <ele>2080.0</ele> + <time>2020-08-23T08:54:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844200" lon="0.5732980"> + <ele>2080.2</ele> + <time>2020-08-23T08:54:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844130" lon="0.5733280"> + <ele>2080.4</ele> + <time>2020-08-23T08:54:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844070" lon="0.5733560"> + <ele>2080.6</ele> + <time>2020-08-23T08:54:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843990" lon="0.5733830"> + <ele>2080.8</ele> + <time>2020-08-23T08:54:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843910" lon="0.5734110"> + <ele>2080.8</ele> + <time>2020-08-23T08:55:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843830" lon="0.5734380"> + <ele>2081.0</ele> + <time>2020-08-23T08:55:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843760" lon="0.5734680"> + <ele>2081.0</ele> + <time>2020-08-23T08:55:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843700" lon="0.5734980"> + <ele>2081.0</ele> + <time>2020-08-23T08:55:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843660" lon="0.5735290"> + <ele>2081.2</ele> + <time>2020-08-23T08:55:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843640" lon="0.5735580"> + <ele>2081.2</ele> + <time>2020-08-23T08:55:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843610" lon="0.5735860"> + <ele>2081.4</ele> + <time>2020-08-23T08:55:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843610" lon="0.5736170"> + <ele>2081.4</ele> + <time>2020-08-23T08:55:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843630" lon="0.5736470"> + <ele>2081.6</ele> + <time>2020-08-23T08:55:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843660" lon="0.5736780"> + <ele>2081.8</ele> + <time>2020-08-23T08:55:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843710" lon="0.5737100"> + <ele>2081.8</ele> + <time>2020-08-23T08:55:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843780" lon="0.5737390"> + <ele>2081.8</ele> + <time>2020-08-23T08:55:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843890" lon="0.5737660"> + <ele>2082.0</ele> + <time>2020-08-23T08:55:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844020" lon="0.5737930"> + <ele>2082.0</ele> + <time>2020-08-23T08:55:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844150" lon="0.5738180"> + <ele>2082.2</ele> + <time>2020-08-23T08:55:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844260" lon="0.5738440"> + <ele>2082.4</ele> + <time>2020-08-23T08:55:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844360" lon="0.5738710"> + <ele>2082.6</ele> + <time>2020-08-23T08:55:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844450" lon="0.5738980"> + <ele>2082.6</ele> + <time>2020-08-23T08:55:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844560" lon="0.5739250"> + <ele>2082.6</ele> + <time>2020-08-23T08:55:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844640" lon="0.5739520"> + <ele>2082.8</ele> + <time>2020-08-23T08:55:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844680" lon="0.5739810"> + <ele>2082.8</ele> + <time>2020-08-23T08:55:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844690" lon="0.5740100"> + <ele>2082.8</ele> + <time>2020-08-23T08:55:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844680" lon="0.5740390"> + <ele>2083.0</ele> + <time>2020-08-23T08:55:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844650" lon="0.5740690"> + <ele>2083.0</ele> + <time>2020-08-23T08:55:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844600" lon="0.5740990"> + <ele>2083.2</ele> + <time>2020-08-23T08:55:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844550" lon="0.5741290"> + <ele>2083.2</ele> + <time>2020-08-23T08:55:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844480" lon="0.5741590"> + <ele>2083.4</ele> + <time>2020-08-23T08:55:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844410" lon="0.5741890"> + <ele>2083.4</ele> + <time>2020-08-23T08:55:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844310" lon="0.5742190"> + <ele>2083.4</ele> + <time>2020-08-23T08:55:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844210" lon="0.5742480"> + <ele>2083.4</ele> + <time>2020-08-23T08:55:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844120" lon="0.5742770"> + <ele>2083.6</ele> + <time>2020-08-23T08:55:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844030" lon="0.5743070"> + <ele>2083.6</ele> + <time>2020-08-23T08:55:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843930" lon="0.5743360"> + <ele>2083.8</ele> + <time>2020-08-23T08:55:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843840" lon="0.5743650"> + <ele>2083.8</ele> + <time>2020-08-23T08:55:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843750" lon="0.5743960"> + <ele>2083.8</ele> + <time>2020-08-23T08:55:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843680" lon="0.5744270"> + <ele>2083.8</ele> + <time>2020-08-23T08:55:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843620" lon="0.5744560"> + <ele>2083.8</ele> + <time>2020-08-23T08:55:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843570" lon="0.5744860"> + <ele>2084.0</ele> + <time>2020-08-23T08:55:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843540" lon="0.5745150"> + <ele>2084.2</ele> + <time>2020-08-23T08:55:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843490" lon="0.5745450"> + <ele>2084.2</ele> + <time>2020-08-23T08:55:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843450" lon="0.5745740"> + <ele>2084.4</ele> + <time>2020-08-23T08:55:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843420" lon="0.5746030"> + <ele>2084.4</ele> + <time>2020-08-23T08:55:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843390" lon="0.5746330"> + <ele>2084.4</ele> + <time>2020-08-23T08:55:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843370" lon="0.5746640"> + <ele>2084.4</ele> + <time>2020-08-23T08:55:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843350" lon="0.5746940"> + <ele>2084.4</ele> + <time>2020-08-23T08:55:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843340" lon="0.5747240"> + <ele>2084.6</ele> + <time>2020-08-23T08:55:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843310" lon="0.5747540"> + <ele>2084.6</ele> + <time>2020-08-23T08:55:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843280" lon="0.5747840"> + <ele>2084.6</ele> + <time>2020-08-23T08:55:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843270" lon="0.5748140"> + <ele>2084.6</ele> + <time>2020-08-23T08:55:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843230" lon="0.5748440"> + <ele>2084.6</ele> + <time>2020-08-23T08:55:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843190" lon="0.5748740"> + <ele>2084.6</ele> + <time>2020-08-23T08:55:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843160" lon="0.5749050"> + <ele>2084.8</ele> + <time>2020-08-23T08:55:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843130" lon="0.5749350"> + <ele>2084.8</ele> + <time>2020-08-23T08:55:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843100" lon="0.5749650"> + <ele>2085.0</ele> + <time>2020-08-23T08:55:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843070" lon="0.5749950"> + <ele>2085.0</ele> + <time>2020-08-23T08:55:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843040" lon="0.5750270"> + <ele>2085.2</ele> + <time>2020-08-23T08:55:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843010" lon="0.5750580"> + <ele>2085.2</ele> + <time>2020-08-23T08:55:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842970" lon="0.5750900"> + <ele>2085.4</ele> + <time>2020-08-23T08:55:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842940" lon="0.5751210"> + <ele>2085.4</ele> + <time>2020-08-23T08:55:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842920" lon="0.5751520"> + <ele>2085.6</ele> + <time>2020-08-23T08:55:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842900" lon="0.5751830"> + <ele>2085.8</ele> + <time>2020-08-23T08:56:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842880" lon="0.5752140"> + <ele>2085.8</ele> + <time>2020-08-23T08:56:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842860" lon="0.5752430"> + <ele>2086.0</ele> + <time>2020-08-23T08:56:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842800" lon="0.5752710"> + <ele>2086.2</ele> + <time>2020-08-23T08:56:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842730" lon="0.5753000"> + <ele>2086.4</ele> + <time>2020-08-23T08:56:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842670" lon="0.5753300"> + <ele>2086.6</ele> + <time>2020-08-23T08:56:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842610" lon="0.5753590"> + <ele>2086.6</ele> + <time>2020-08-23T08:56:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842560" lon="0.5753890"> + <ele>2087.2</ele> + <time>2020-08-23T08:56:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842490" lon="0.5754170"> + <ele>2087.2</ele> + <time>2020-08-23T08:56:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842350" lon="0.5754410"> + <ele>2087.4</ele> + <time>2020-08-23T08:56:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842180" lon="0.5754620"> + <ele>2087.6</ele> + <time>2020-08-23T08:56:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842030" lon="0.5754850"> + <ele>2087.6</ele> + <time>2020-08-23T08:56:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841870" lon="0.5755060"> + <ele>2087.8</ele> + <time>2020-08-23T08:56:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841700" lon="0.5755270"> + <ele>2088.0</ele> + <time>2020-08-23T08:56:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841540" lon="0.5755490"> + <ele>2088.2</ele> + <time>2020-08-23T08:56:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841380" lon="0.5755720"> + <ele>2088.2</ele> + <time>2020-08-23T08:56:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841230" lon="0.5755950"> + <ele>2088.4</ele> + <time>2020-08-23T08:56:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>14</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841060" lon="0.5756180"> + <ele>2088.4</ele> + <time>2020-08-23T08:56:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840880" lon="0.5756420"> + <ele>2088.6</ele> + <time>2020-08-23T08:56:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840710" lon="0.5756660"> + <ele>2088.6</ele> + <time>2020-08-23T08:56:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840570" lon="0.5756910"> + <ele>2088.6</ele> + <time>2020-08-23T08:56:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840430" lon="0.5757170"> + <ele>2088.8</ele> + <time>2020-08-23T08:56:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840300" lon="0.5757420"> + <ele>2088.8</ele> + <time>2020-08-23T08:56:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840180" lon="0.5757690"> + <ele>2089.0</ele> + <time>2020-08-23T08:56:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840080" lon="0.5757990"> + <ele>2089.0</ele> + <time>2020-08-23T08:56:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840000" lon="0.5758280"> + <ele>2089.0</ele> + <time>2020-08-23T08:56:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839920" lon="0.5758570"> + <ele>2089.2</ele> + <time>2020-08-23T08:56:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839840" lon="0.5758870"> + <ele>2089.2</ele> + <time>2020-08-23T08:56:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839770" lon="0.5759160"> + <ele>2089.2</ele> + <time>2020-08-23T08:56:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839690" lon="0.5759470"> + <ele>2089.2</ele> + <time>2020-08-23T08:56:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839620" lon="0.5759760"> + <ele>2089.2</ele> + <time>2020-08-23T08:56:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839550" lon="0.5760070"> + <ele>2089.4</ele> + <time>2020-08-23T08:56:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839460" lon="0.5760350"> + <ele>2089.4</ele> + <time>2020-08-23T08:56:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839390" lon="0.5760640"> + <ele>2089.2</ele> + <time>2020-08-23T08:56:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839340" lon="0.5760950"> + <ele>2089.4</ele> + <time>2020-08-23T08:56:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839290" lon="0.5761250"> + <ele>2089.6</ele> + <time>2020-08-23T08:56:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839240" lon="0.5761560"> + <ele>2089.6</ele> + <time>2020-08-23T08:56:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839160" lon="0.5761850"> + <ele>2089.6</ele> + <time>2020-08-23T08:56:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839070" lon="0.5762130"> + <ele>2089.8</ele> + <time>2020-08-23T08:56:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839000" lon="0.5762430"> + <ele>2089.8</ele> + <time>2020-08-23T08:56:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838940" lon="0.5762730"> + <ele>2089.8</ele> + <time>2020-08-23T08:56:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838860" lon="0.5763030"> + <ele>2090.0</ele> + <time>2020-08-23T08:56:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838790" lon="0.5763330"> + <ele>2090.0</ele> + <time>2020-08-23T08:56:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838720" lon="0.5763630"> + <ele>2090.2</ele> + <time>2020-08-23T08:56:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838650" lon="0.5763930"> + <ele>2090.2</ele> + <time>2020-08-23T08:56:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838580" lon="0.5764220"> + <ele>2090.2</ele> + <time>2020-08-23T08:56:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838490" lon="0.5764510"> + <ele>2090.4</ele> + <time>2020-08-23T08:56:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838410" lon="0.5764800"> + <ele>2090.4</ele> + <time>2020-08-23T08:56:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838300" lon="0.5765090"> + <ele>2090.4</ele> + <time>2020-08-23T08:56:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838170" lon="0.5765350"> + <ele>2090.6</ele> + <time>2020-08-23T08:56:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838030" lon="0.5765600"> + <ele>2090.6</ele> + <time>2020-08-23T08:56:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837890" lon="0.5765860"> + <ele>2090.6</ele> + <time>2020-08-23T08:56:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837750" lon="0.5766110"> + <ele>2090.8</ele> + <time>2020-08-23T08:56:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837600" lon="0.5766350"> + <ele>2090.8</ele> + <time>2020-08-23T08:56:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837430" lon="0.5766580"> + <ele>2091.0</ele> + <time>2020-08-23T08:56:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837280" lon="0.5766810"> + <ele>2091.0</ele> + <time>2020-08-23T08:56:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837130" lon="0.5767060"> + <ele>2091.2</ele> + <time>2020-08-23T08:56:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836980" lon="0.5767310"> + <ele>2091.2</ele> + <time>2020-08-23T08:56:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836830" lon="0.5767550"> + <ele>2091.2</ele> + <time>2020-08-23T08:56:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836680" lon="0.5767780"> + <ele>2091.2</ele> + <time>2020-08-23T08:56:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836530" lon="0.5768030"> + <ele>2091.4</ele> + <time>2020-08-23T08:57:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836370" lon="0.5768270"> + <ele>2091.4</ele> + <time>2020-08-23T08:57:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836220" lon="0.5768520"> + <ele>2091.4</ele> + <time>2020-08-23T08:57:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836080" lon="0.5768780"> + <ele>2091.4</ele> + <time>2020-08-23T08:57:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835960" lon="0.5769050"> + <ele>2091.4</ele> + <time>2020-08-23T08:57:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835850" lon="0.5769340"> + <ele>2091.4</ele> + <time>2020-08-23T08:57:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835730" lon="0.5769620"> + <ele>2091.4</ele> + <time>2020-08-23T08:57:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835620" lon="0.5769910"> + <ele>2091.4</ele> + <time>2020-08-23T08:57:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835530" lon="0.5770200"> + <ele>2091.4</ele> + <time>2020-08-23T08:57:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835460" lon="0.5770500"> + <ele>2091.4</ele> + <time>2020-08-23T08:57:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835390" lon="0.5770790"> + <ele>2091.6</ele> + <time>2020-08-23T08:57:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835320" lon="0.5771090"> + <ele>2091.6</ele> + <time>2020-08-23T08:57:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835270" lon="0.5771380"> + <ele>2091.6</ele> + <time>2020-08-23T08:57:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835220" lon="0.5771670"> + <ele>2091.6</ele> + <time>2020-08-23T08:57:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835170" lon="0.5771970"> + <ele>2091.6</ele> + <time>2020-08-23T08:57:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835150" lon="0.5772280"> + <ele>2091.6</ele> + <time>2020-08-23T08:57:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835120" lon="0.5772600"> + <ele>2091.8</ele> + <time>2020-08-23T08:57:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835080" lon="0.5772900"> + <ele>2091.8</ele> + <time>2020-08-23T08:57:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835040" lon="0.5773210"> + <ele>2091.8</ele> + <time>2020-08-23T08:57:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835010" lon="0.5773520"> + <ele>2091.8</ele> + <time>2020-08-23T08:57:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834950" lon="0.5773830"> + <ele>2091.8</ele> + <time>2020-08-23T08:57:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834880" lon="0.5774150"> + <ele>2092.0</ele> + <time>2020-08-23T08:57:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834800" lon="0.5774460"> + <ele>2092.2</ele> + <time>2020-08-23T08:57:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834730" lon="0.5774770"> + <ele>2092.0</ele> + <time>2020-08-23T08:57:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834660" lon="0.5775100"> + <ele>2092.2</ele> + <time>2020-08-23T08:57:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834600" lon="0.5775410"> + <ele>2092.4</ele> + <time>2020-08-23T08:57:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834550" lon="0.5775720"> + <ele>2092.4</ele> + <time>2020-08-23T08:57:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834480" lon="0.5776050"> + <ele>2092.4</ele> + <time>2020-08-23T08:57:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834390" lon="0.5776400"> + <ele>2092.4</ele> + <time>2020-08-23T08:57:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834280" lon="0.5776750"> + <ele>2092.4</ele> + <time>2020-08-23T08:57:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834160" lon="0.5777100"> + <ele>2092.6</ele> + <time>2020-08-23T08:57:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834060" lon="0.5777450"> + <ele>2092.6</ele> + <time>2020-08-23T08:57:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833950" lon="0.5777790"> + <ele>2092.8</ele> + <time>2020-08-23T08:57:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833850" lon="0.5778130"> + <ele>2092.8</ele> + <time>2020-08-23T08:57:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833760" lon="0.5778470"> + <ele>2092.8</ele> + <time>2020-08-23T08:57:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833700" lon="0.5778820"> + <ele>2093.0</ele> + <time>2020-08-23T08:57:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833640" lon="0.5779180"> + <ele>2093.0</ele> + <time>2020-08-23T08:57:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833570" lon="0.5779530"> + <ele>2093.0</ele> + <time>2020-08-23T08:57:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833480" lon="0.5779870"> + <ele>2093.2</ele> + <time>2020-08-23T08:57:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833380" lon="0.5780220"> + <ele>2093.2</ele> + <time>2020-08-23T08:57:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833290" lon="0.5780580"> + <ele>2093.2</ele> + <time>2020-08-23T08:57:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833220" lon="0.5780940"> + <ele>2093.2</ele> + <time>2020-08-23T08:57:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833150" lon="0.5781280"> + <ele>2093.4</ele> + <time>2020-08-23T08:57:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833070" lon="0.5781630"> + <ele>2093.4</ele> + <time>2020-08-23T08:57:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833000" lon="0.5781990"> + <ele>2093.4</ele> + <time>2020-08-23T08:57:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832930" lon="0.5782360"> + <ele>2093.4</ele> + <time>2020-08-23T08:57:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832870" lon="0.5782740"> + <ele>2093.6</ele> + <time>2020-08-23T08:57:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832810" lon="0.5783120"> + <ele>2093.8</ele> + <time>2020-08-23T08:57:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832750" lon="0.5783500"> + <ele>2093.8</ele> + <time>2020-08-23T08:57:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832700" lon="0.5783870"> + <ele>2094.0</ele> + <time>2020-08-23T08:57:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832680" lon="0.5784250"> + <ele>2094.4</ele> + <time>2020-08-23T08:57:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832670" lon="0.5784640"> + <ele>2094.4</ele> + <time>2020-08-23T08:57:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832640" lon="0.5785040"> + <ele>2094.4</ele> + <time>2020-08-23T08:57:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832620" lon="0.5785440"> + <ele>2094.6</ele> + <time>2020-08-23T08:57:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832610" lon="0.5785830"> + <ele>2094.6</ele> + <time>2020-08-23T08:57:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832610" lon="0.5786190"> + <ele>2094.6</ele> + <time>2020-08-23T08:57:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832630" lon="0.5786560"> + <ele>2094.6</ele> + <time>2020-08-23T08:57:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832650" lon="0.5786930"> + <ele>2094.8</ele> + <time>2020-08-23T08:57:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832650" lon="0.5787300"> + <ele>2094.8</ele> + <time>2020-08-23T08:57:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832670" lon="0.5787690"> + <ele>2094.8</ele> + <time>2020-08-23T08:57:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832720" lon="0.5788090"> + <ele>2094.8</ele> + <time>2020-08-23T08:58:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832760" lon="0.5788480"> + <ele>2094.8</ele> + <time>2020-08-23T08:58:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832780" lon="0.5788860"> + <ele>2094.8</ele> + <time>2020-08-23T08:58:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832810" lon="0.5789250"> + <ele>2095.0</ele> + <time>2020-08-23T08:58:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832810" lon="0.5789650"> + <ele>2095.0</ele> + <time>2020-08-23T08:58:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832800" lon="0.5790030"> + <ele>2095.0</ele> + <time>2020-08-23T08:58:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832780" lon="0.5790410"> + <ele>2095.0</ele> + <time>2020-08-23T08:58:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832770" lon="0.5790790"> + <ele>2095.2</ele> + <time>2020-08-23T08:58:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832770" lon="0.5791170"> + <ele>2095.2</ele> + <time>2020-08-23T08:58:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832770" lon="0.5791550"> + <ele>2095.2</ele> + <time>2020-08-23T08:58:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832790" lon="0.5791930"> + <ele>2095.4</ele> + <time>2020-08-23T08:58:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832830" lon="0.5792290"> + <ele>2095.4</ele> + <time>2020-08-23T08:58:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832880" lon="0.5792650"> + <ele>2095.4</ele> + <time>2020-08-23T08:58:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5832940" lon="0.5792980"> + <ele>2095.4</ele> + <time>2020-08-23T08:58:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833000" lon="0.5793310"> + <ele>2095.4</ele> + <time>2020-08-23T08:58:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833070" lon="0.5793640"> + <ele>2095.6</ele> + <time>2020-08-23T08:58:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833130" lon="0.5793960"> + <ele>2095.6</ele> + <time>2020-08-23T08:58:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833210" lon="0.5794280"> + <ele>2095.6</ele> + <time>2020-08-23T08:58:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833290" lon="0.5794580"> + <ele>2095.6</ele> + <time>2020-08-23T08:58:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833380" lon="0.5794880"> + <ele>2095.6</ele> + <time>2020-08-23T08:58:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833490" lon="0.5795180"> + <ele>2095.6</ele> + <time>2020-08-23T08:58:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833600" lon="0.5795490"> + <ele>2095.8</ele> + <time>2020-08-23T08:58:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833690" lon="0.5795790"> + <ele>2095.8</ele> + <time>2020-08-23T08:58:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833780" lon="0.5796100"> + <ele>2095.8</ele> + <time>2020-08-23T08:58:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833870" lon="0.5796410"> + <ele>2095.8</ele> + <time>2020-08-23T08:58:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5833970" lon="0.5796710"> + <ele>2096.0</ele> + <time>2020-08-23T08:58:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834090" lon="0.5797010"> + <ele>2096.0</ele> + <time>2020-08-23T08:58:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834200" lon="0.5797310"> + <ele>2096.0</ele> + <time>2020-08-23T08:58:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834300" lon="0.5797610"> + <ele>2096.0</ele> + <time>2020-08-23T08:58:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834400" lon="0.5797910"> + <ele>2096.2</ele> + <time>2020-08-23T08:58:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834510" lon="0.5798210"> + <ele>2096.2</ele> + <time>2020-08-23T08:58:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834600" lon="0.5798520"> + <ele>2096.2</ele> + <time>2020-08-23T08:58:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834700" lon="0.5798820"> + <ele>2096.2</ele> + <time>2020-08-23T08:58:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834790" lon="0.5799120"> + <ele>2096.4</ele> + <time>2020-08-23T08:58:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834880" lon="0.5799420"> + <ele>2096.4</ele> + <time>2020-08-23T08:58:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5834980" lon="0.5799720"> + <ele>2096.6</ele> + <time>2020-08-23T08:58:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835060" lon="0.5800020"> + <ele>2096.6</ele> + <time>2020-08-23T08:58:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835140" lon="0.5800320"> + <ele>2096.8</ele> + <time>2020-08-23T08:58:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835240" lon="0.5800620"> + <ele>2096.8</ele> + <time>2020-08-23T08:58:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835320" lon="0.5800930"> + <ele>2097.0</ele> + <time>2020-08-23T08:58:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835400" lon="0.5801240"> + <ele>2097.0</ele> + <time>2020-08-23T08:58:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835480" lon="0.5801550"> + <ele>2097.0</ele> + <time>2020-08-23T08:58:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835550" lon="0.5801860"> + <ele>2097.2</ele> + <time>2020-08-23T08:58:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835620" lon="0.5802180"> + <ele>2097.2</ele> + <time>2020-08-23T08:58:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835710" lon="0.5802500"> + <ele>2097.2</ele> + <time>2020-08-23T08:58:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835820" lon="0.5802800"> + <ele>2097.4</ele> + <time>2020-08-23T08:58:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5835950" lon="0.5803100"> + <ele>2097.6</ele> + <time>2020-08-23T08:58:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836120" lon="0.5803380"> + <ele>2097.6</ele> + <time>2020-08-23T08:58:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836300" lon="0.5803600"> + <ele>2097.8</ele> + <time>2020-08-23T08:58:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836490" lon="0.5803770"> + <ele>2097.8</ele> + <time>2020-08-23T08:58:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836700" lon="0.5803870"> + <ele>2097.8</ele> + <time>2020-08-23T08:58:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5836920" lon="0.5803920"> + <ele>2097.8</ele> + <time>2020-08-23T08:58:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837140" lon="0.5803980"> + <ele>2098.0</ele> + <time>2020-08-23T08:58:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837380" lon="0.5804000"> + <ele>2098.0</ele> + <time>2020-08-23T08:58:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837630" lon="0.5803930"> + <ele>2098.2</ele> + <time>2020-08-23T08:58:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5837860" lon="0.5803790"> + <ele>2098.2</ele> + <time>2020-08-23T08:58:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838080" lon="0.5803620"> + <ele>2098.2</ele> + <time>2020-08-23T08:58:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838240" lon="0.5803450"> + <ele>2098.2</ele> + <time>2020-08-23T08:58:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838380" lon="0.5803250"> + <ele>2098.2</ele> + <time>2020-08-23T08:58:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838520" lon="0.5803000"> + <ele>2098.2</ele> + <time>2020-08-23T08:58:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838660" lon="0.5802720"> + <ele>2098.2</ele> + <time>2020-08-23T08:59:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838810" lon="0.5802430"> + <ele>2098.4</ele> + <time>2020-08-23T08:59:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5838960" lon="0.5802150"> + <ele>2098.4</ele> + <time>2020-08-23T08:59:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839080" lon="0.5801860"> + <ele>2098.4</ele> + <time>2020-08-23T08:59:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839180" lon="0.5801560"> + <ele>2098.4</ele> + <time>2020-08-23T08:59:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839260" lon="0.5801250"> + <ele>2098.4</ele> + <time>2020-08-23T08:59:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839360" lon="0.5800950"> + <ele>2098.6</ele> + <time>2020-08-23T08:59:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839470" lon="0.5800640"> + <ele>2098.6</ele> + <time>2020-08-23T08:59:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839590" lon="0.5800380"> + <ele>2098.6</ele> + <time>2020-08-23T08:59:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839700" lon="0.5800100"> + <ele>2098.6</ele> + <time>2020-08-23T08:59:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839800" lon="0.5799810"> + <ele>2098.6</ele> + <time>2020-08-23T08:59:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839890" lon="0.5799510"> + <ele>2098.8</ele> + <time>2020-08-23T08:59:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5839990" lon="0.5799220"> + <ele>2098.8</ele> + <time>2020-08-23T08:59:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840110" lon="0.5798940"> + <ele>2099.0</ele> + <time>2020-08-23T08:59:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840220" lon="0.5798650"> + <ele>2099.0</ele> + <time>2020-08-23T08:59:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840310" lon="0.5798340"> + <ele>2099.2</ele> + <time>2020-08-23T08:59:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840430" lon="0.5798060"> + <ele>2099.2</ele> + <time>2020-08-23T08:59:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840550" lon="0.5797790"> + <ele>2099.4</ele> + <time>2020-08-23T08:59:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840660" lon="0.5797520"> + <ele>2099.6</ele> + <time>2020-08-23T08:59:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840770" lon="0.5797240"> + <ele>2099.8</ele> + <time>2020-08-23T08:59:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840870" lon="0.5796940"> + <ele>2100.0</ele> + <time>2020-08-23T08:59:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5840990" lon="0.5796660"> + <ele>2100.0</ele> + <time>2020-08-23T08:59:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841130" lon="0.5796410"> + <ele>2100.2</ele> + <time>2020-08-23T08:59:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841270" lon="0.5796150"> + <ele>2100.4</ele> + <time>2020-08-23T08:59:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841410" lon="0.5795900"> + <ele>2100.4</ele> + <time>2020-08-23T08:59:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841550" lon="0.5795650"> + <ele>2100.8</ele> + <time>2020-08-23T08:59:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841680" lon="0.5795380"> + <ele>2101.0</ele> + <time>2020-08-23T08:59:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841820" lon="0.5795120"> + <ele>2101.0</ele> + <time>2020-08-23T08:59:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5841960" lon="0.5794860"> + <ele>2101.2</ele> + <time>2020-08-23T08:59:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842100" lon="0.5794600"> + <ele>2101.2</ele> + <time>2020-08-23T08:59:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842230" lon="0.5794340"> + <ele>2101.2</ele> + <time>2020-08-23T08:59:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842380" lon="0.5794100"> + <ele>2101.6</ele> + <time>2020-08-23T08:59:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842520" lon="0.5793850"> + <ele>2101.4</ele> + <time>2020-08-23T08:59:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842680" lon="0.5793600"> + <ele>2101.6</ele> + <time>2020-08-23T08:59:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5842830" lon="0.5793370"> + <ele>2101.8</ele> + <time>2020-08-23T08:59:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843000" lon="0.5793150"> + <ele>2101.8</ele> + <time>2020-08-23T08:59:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843150" lon="0.5792930"> + <ele>2101.8</ele> + <time>2020-08-23T08:59:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843320" lon="0.5792700"> + <ele>2102.0</ele> + <time>2020-08-23T08:59:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843460" lon="0.5792460"> + <ele>2102.0</ele> + <time>2020-08-23T08:59:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843610" lon="0.5792230"> + <ele>2102.2</ele> + <time>2020-08-23T08:59:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843760" lon="0.5792010"> + <ele>2102.4</ele> + <time>2020-08-23T08:59:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5843910" lon="0.5791790"> + <ele>2102.6</ele> + <time>2020-08-23T08:59:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844060" lon="0.5791560"> + <ele>2102.8</ele> + <time>2020-08-23T08:59:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844220" lon="0.5791350"> + <ele>2103.0</ele> + <time>2020-08-23T08:59:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844370" lon="0.5791150"> + <ele>2103.0</ele> + <time>2020-08-23T08:59:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844500" lon="0.5790960"> + <ele>2103.2</ele> + <time>2020-08-23T08:59:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844660" lon="0.5790810"> + <ele>2103.2</ele> + <time>2020-08-23T08:59:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5844850" lon="0.5790670"> + <ele>2103.2</ele> + <time>2020-08-23T08:59:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845050" lon="0.5790520"> + <ele>2103.2</ele> + <time>2020-08-23T08:59:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845250" lon="0.5790370"> + <ele>2103.4</ele> + <time>2020-08-23T08:59:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845450" lon="0.5790210"> + <ele>2103.4</ele> + <time>2020-08-23T08:59:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845660" lon="0.5790070"> + <ele>2103.4</ele> + <time>2020-08-23T08:59:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5845870" lon="0.5789920"> + <ele>2103.6</ele> + <time>2020-08-23T08:59:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846060" lon="0.5789760"> + <ele>2103.6</ele> + <time>2020-08-23T08:59:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846260" lon="0.5789590"> + <ele>2103.6</ele> + <time>2020-08-23T08:59:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846440" lon="0.5789400"> + <ele>2103.6</ele> + <time>2020-08-23T08:59:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846610" lon="0.5789210"> + <ele>2103.6</ele> + <time>2020-08-23T08:59:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846780" lon="0.5789000"> + <ele>2103.8</ele> + <time>2020-08-23T08:59:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5846960" lon="0.5788810"> + <ele>2103.8</ele> + <time>2020-08-23T08:59:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847150" lon="0.5788650"> + <ele>2104.0</ele> + <time>2020-08-23T08:59:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847340" lon="0.5788480"> + <ele>2104.2</ele> + <time>2020-08-23T09:00:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847530" lon="0.5788310"> + <ele>2104.4</ele> + <time>2020-08-23T09:00:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847730" lon="0.5788140"> + <ele>2104.4</ele> + <time>2020-08-23T09:00:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5847920" lon="0.5787970"> + <ele>2104.6</ele> + <time>2020-08-23T09:00:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848110" lon="0.5787780"> + <ele>2104.8</ele> + <time>2020-08-23T09:00:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848290" lon="0.5787600"> + <ele>2105.0</ele> + <time>2020-08-23T09:00:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848490" lon="0.5787420"> + <ele>2105.0</ele> + <time>2020-08-23T09:00:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848680" lon="0.5787250"> + <ele>2105.0</ele> + <time>2020-08-23T09:00:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5848850" lon="0.5787080"> + <ele>2105.4</ele> + <time>2020-08-23T09:00:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849040" lon="0.5786900"> + <ele>2105.4</ele> + <time>2020-08-23T09:00:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849230" lon="0.5786750"> + <ele>2105.6</ele> + <time>2020-08-23T09:00:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849420" lon="0.5786600"> + <ele>2105.6</ele> + <time>2020-08-23T09:00:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849600" lon="0.5786440"> + <ele>2105.8</ele> + <time>2020-08-23T09:00:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849770" lon="0.5786300"> + <ele>2105.8</ele> + <time>2020-08-23T09:00:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5849960" lon="0.5786200"> + <ele>2106.0</ele> + <time>2020-08-23T09:00:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850150" lon="0.5786100"> + <ele>2106.2</ele> + <time>2020-08-23T09:00:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850330" lon="0.5786000"> + <ele>2106.4</ele> + <time>2020-08-23T09:00:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850530" lon="0.5785900"> + <ele>2106.6</ele> + <time>2020-08-23T09:00:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850720" lon="0.5785780"> + <ele>2106.8</ele> + <time>2020-08-23T09:00:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5850920" lon="0.5785680"> + <ele>2107.0</ele> + <time>2020-08-23T09:00:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851120" lon="0.5785610"> + <ele>2107.2</ele> + <time>2020-08-23T09:00:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851330" lon="0.5785560"> + <ele>2107.4</ele> + <time>2020-08-23T09:00:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851540" lon="0.5785490"> + <ele>2107.6</ele> + <time>2020-08-23T09:00:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851740" lon="0.5785410"> + <ele>2107.6</ele> + <time>2020-08-23T09:00:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5851940" lon="0.5785340"> + <ele>2107.8</ele> + <time>2020-08-23T09:00:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852140" lon="0.5785280"> + <ele>2107.8</ele> + <time>2020-08-23T09:00:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852340" lon="0.5785200"> + <ele>2108.0</ele> + <time>2020-08-23T09:00:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852540" lon="0.5785100"> + <ele>2108.2</ele> + <time>2020-08-23T09:00:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852740" lon="0.5784990"> + <ele>2108.2</ele> + <time>2020-08-23T09:00:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5852930" lon="0.5784870"> + <ele>2108.4</ele> + <time>2020-08-23T09:00:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853120" lon="0.5784750"> + <ele>2108.4</ele> + <time>2020-08-23T09:00:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853280" lon="0.5784590"> + <ele>2108.6</ele> + <time>2020-08-23T09:00:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853450" lon="0.5784420"> + <ele>2108.6</ele> + <time>2020-08-23T09:00:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853600" lon="0.5784230"> + <ele>2108.8</ele> + <time>2020-08-23T09:00:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853750" lon="0.5784040"> + <ele>2108.8</ele> + <time>2020-08-23T09:00:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5853900" lon="0.5783830"> + <ele>2109.0</ele> + <time>2020-08-23T09:00:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854030" lon="0.5783630"> + <ele>2109.2</ele> + <time>2020-08-23T09:00:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854160" lon="0.5783420"> + <ele>2109.4</ele> + <time>2020-08-23T09:00:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854260" lon="0.5783180"> + <ele>2109.6</ele> + <time>2020-08-23T09:00:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854370" lon="0.5782950"> + <ele>2109.8</ele> + <time>2020-08-23T09:00:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854480" lon="0.5782710"> + <ele>2109.8</ele> + <time>2020-08-23T09:00:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854590" lon="0.5782460"> + <ele>2110.0</ele> + <time>2020-08-23T09:00:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854690" lon="0.5782220"> + <ele>2110.2</ele> + <time>2020-08-23T09:00:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854780" lon="0.5781980"> + <ele>2110.6</ele> + <time>2020-08-23T09:00:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854860" lon="0.5781720"> + <ele>2110.8</ele> + <time>2020-08-23T09:00:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5854960" lon="0.5781470"> + <ele>2111.0</ele> + <time>2020-08-23T09:00:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855080" lon="0.5781230"> + <ele>2111.2</ele> + <time>2020-08-23T09:00:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855190" lon="0.5780990"> + <ele>2111.2</ele> + <time>2020-08-23T09:00:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855290" lon="0.5780740"> + <ele>2111.4</ele> + <time>2020-08-23T09:00:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855400" lon="0.5780510"> + <ele>2111.4</ele> + <time>2020-08-23T09:00:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855520" lon="0.5780280"> + <ele>2111.6</ele> + <time>2020-08-23T09:00:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855650" lon="0.5780070"> + <ele>2111.6</ele> + <time>2020-08-23T09:00:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855770" lon="0.5779840"> + <ele>2111.6</ele> + <time>2020-08-23T09:00:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5855890" lon="0.5779610"> + <ele>2111.8</ele> + <time>2020-08-23T09:00:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856020" lon="0.5779390"> + <ele>2112.0</ele> + <time>2020-08-23T09:00:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856140" lon="0.5779160"> + <ele>2112.4</ele> + <time>2020-08-23T09:00:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856280" lon="0.5778960"> + <ele>2112.8</ele> + <time>2020-08-23T09:00:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856440" lon="0.5778820"> + <ele>2113.0</ele> + <time>2020-08-23T09:00:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856600" lon="0.5778650"> + <ele>2113.0</ele> + <time>2020-08-23T09:00:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856780" lon="0.5778510"> + <ele>2113.2</ele> + <time>2020-08-23T09:00:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5856960" lon="0.5778400"> + <ele>2113.2</ele> + <time>2020-08-23T09:01:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857150" lon="0.5778320"> + <ele>2113.4</ele> + <time>2020-08-23T09:01:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857340" lon="0.5778260"> + <ele>2113.4</ele> + <time>2020-08-23T09:01:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857520" lon="0.5778200"> + <ele>2113.6</ele> + <time>2020-08-23T09:01:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857710" lon="0.5778140"> + <ele>2113.8</ele> + <time>2020-08-23T09:01:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5857890" lon="0.5778060"> + <ele>2113.8</ele> + <time>2020-08-23T09:01:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858080" lon="0.5778000"> + <ele>2114.2</ele> + <time>2020-08-23T09:01:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858270" lon="0.5777930"> + <ele>2114.2</ele> + <time>2020-08-23T09:01:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858460" lon="0.5777840"> + <ele>2114.4</ele> + <time>2020-08-23T09:01:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858650" lon="0.5777760"> + <ele>2114.4</ele> + <time>2020-08-23T09:01:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5858840" lon="0.5777700"> + <ele>2114.6</ele> + <time>2020-08-23T09:01:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859040" lon="0.5777640"> + <ele>2114.8</ele> + <time>2020-08-23T09:01:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859240" lon="0.5777580"> + <ele>2114.8</ele> + <time>2020-08-23T09:01:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859430" lon="0.5777520"> + <ele>2115.0</ele> + <time>2020-08-23T09:01:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859620" lon="0.5777450"> + <ele>2115.2</ele> + <time>2020-08-23T09:01:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5859810" lon="0.5777380"> + <ele>2115.2</ele> + <time>2020-08-23T09:01:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860010" lon="0.5777320"> + <ele>2115.4</ele> + <time>2020-08-23T09:01:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860210" lon="0.5777240"> + <ele>2115.6</ele> + <time>2020-08-23T09:01:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860390" lon="0.5777150"> + <ele>2115.8</ele> + <time>2020-08-23T09:01:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860570" lon="0.5777080"> + <ele>2115.8</ele> + <time>2020-08-23T09:01:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860720" lon="0.5777010"> + <ele>2116.0</ele> + <time>2020-08-23T09:01:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5860860" lon="0.5776920"> + <ele>2116.2</ele> + <time>2020-08-23T09:01:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861010" lon="0.5776800"> + <ele>2116.4</ele> + <time>2020-08-23T09:01:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861180" lon="0.5776660"> + <ele>2116.6</ele> + <time>2020-08-23T09:01:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861310" lon="0.5776490"> + <ele>2116.8</ele> + <time>2020-08-23T09:01:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861430" lon="0.5776300"> + <ele>2116.8</ele> + <time>2020-08-23T09:01:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861550" lon="0.5776120"> + <ele>2117.0</ele> + <time>2020-08-23T09:01:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861670" lon="0.5775930"> + <ele>2117.0</ele> + <time>2020-08-23T09:01:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861820" lon="0.5775760"> + <ele>2117.2</ele> + <time>2020-08-23T09:01:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5861970" lon="0.5775590"> + <ele>2117.4</ele> + <time>2020-08-23T09:01:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862120" lon="0.5775440"> + <ele>2117.4</ele> + <time>2020-08-23T09:01:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862260" lon="0.5775260"> + <ele>2117.6</ele> + <time>2020-08-23T09:01:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862410" lon="0.5775110"> + <ele>2117.8</ele> + <time>2020-08-23T09:01:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862570" lon="0.5774990"> + <ele>2117.8</ele> + <time>2020-08-23T09:01:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862710" lon="0.5774880"> + <ele>2118.0</ele> + <time>2020-08-23T09:01:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5862850" lon="0.5774720"> + <ele>2118.0</ele> + <time>2020-08-23T09:01:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863000" lon="0.5774570"> + <ele>2118.2</ele> + <time>2020-08-23T09:01:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863160" lon="0.5774440"> + <ele>2118.2</ele> + <time>2020-08-23T09:01:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863310" lon="0.5774310"> + <ele>2118.4</ele> + <time>2020-08-23T09:01:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863460" lon="0.5774160"> + <ele>2118.4</ele> + <time>2020-08-23T09:01:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863600" lon="0.5774010"> + <ele>2118.4</ele> + <time>2020-08-23T09:01:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863760" lon="0.5773890"> + <ele>2118.6</ele> + <time>2020-08-23T09:01:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5863930" lon="0.5773800"> + <ele>2118.8</ele> + <time>2020-08-23T09:01:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864090" lon="0.5773680"> + <ele>2119.0</ele> + <time>2020-08-23T09:01:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864260" lon="0.5773560"> + <ele>2119.0</ele> + <time>2020-08-23T09:01:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864440" lon="0.5773490"> + <ele>2119.0</ele> + <time>2020-08-23T09:01:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864630" lon="0.5773430"> + <ele>2119.2</ele> + <time>2020-08-23T09:01:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864810" lon="0.5773380"> + <ele>2119.0</ele> + <time>2020-08-23T09:01:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5864990" lon="0.5773300"> + <ele>2119.2</ele> + <time>2020-08-23T09:01:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865160" lon="0.5773190"> + <ele>2119.2</ele> + <time>2020-08-23T09:01:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865320" lon="0.5773070"> + <ele>2119.4</ele> + <time>2020-08-23T09:01:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865480" lon="0.5772940"> + <ele>2119.4</ele> + <time>2020-08-23T09:01:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865630" lon="0.5772840"> + <ele>2119.6</ele> + <time>2020-08-23T09:01:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865810" lon="0.5772720"> + <ele>2120.0</ele> + <time>2020-08-23T09:01:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5865980" lon="0.5772640"> + <ele>2120.0</ele> + <time>2020-08-23T09:01:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866150" lon="0.5772550"> + <ele>2120.0</ele> + <time>2020-08-23T09:01:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866310" lon="0.5772470"> + <ele>2120.2</ele> + <time>2020-08-23T09:01:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866470" lon="0.5772370"> + <ele>2120.4</ele> + <time>2020-08-23T09:01:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866620" lon="0.5772260"> + <ele>2120.4</ele> + <time>2020-08-23T09:01:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866780" lon="0.5772130"> + <ele>2120.6</ele> + <time>2020-08-23T09:01:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5866930" lon="0.5771990"> + <ele>2120.6</ele> + <time>2020-08-23T09:02:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867080" lon="0.5771890"> + <ele>2120.8</ele> + <time>2020-08-23T09:02:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867230" lon="0.5771790"> + <ele>2120.8</ele> + <time>2020-08-23T09:02:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867390" lon="0.5771680"> + <ele>2121.0</ele> + <time>2020-08-23T09:02:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867560" lon="0.5771590"> + <ele>2121.2</ele> + <time>2020-08-23T09:02:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867720" lon="0.5771490"> + <ele>2121.4</ele> + <time>2020-08-23T09:02:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5867880" lon="0.5771370"> + <ele>2121.6</ele> + <time>2020-08-23T09:02:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868040" lon="0.5771250"> + <ele>2121.8</ele> + <time>2020-08-23T09:02:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868210" lon="0.5771140"> + <ele>2122.0</ele> + <time>2020-08-23T09:02:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868380" lon="0.5771040"> + <ele>2122.0</ele> + <time>2020-08-23T09:02:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868540" lon="0.5770950"> + <ele>2122.4</ele> + <time>2020-08-23T09:02:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868700" lon="0.5770860"> + <ele>2122.6</ele> + <time>2020-08-23T09:02:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5868870" lon="0.5770770"> + <ele>2122.6</ele> + <time>2020-08-23T09:02:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869030" lon="0.5770670"> + <ele>2123.0</ele> + <time>2020-08-23T09:02:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869180" lon="0.5770550"> + <ele>2123.2</ele> + <time>2020-08-23T09:02:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869330" lon="0.5770430"> + <ele>2123.4</ele> + <time>2020-08-23T09:02:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869480" lon="0.5770330"> + <ele>2123.6</ele> + <time>2020-08-23T09:02:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869650" lon="0.5770280"> + <ele>2123.8</ele> + <time>2020-08-23T09:02:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5869830" lon="0.5770220"> + <ele>2124.0</ele> + <time>2020-08-23T09:02:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870010" lon="0.5770180"> + <ele>2124.2</ele> + <time>2020-08-23T09:02:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870200" lon="0.5770160"> + <ele>2124.2</ele> + <time>2020-08-23T09:02:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870370" lon="0.5770160"> + <ele>2124.4</ele> + <time>2020-08-23T09:02:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870550" lon="0.5770150"> + <ele>2124.6</ele> + <time>2020-08-23T09:02:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870720" lon="0.5770100"> + <ele>2124.8</ele> + <time>2020-08-23T09:02:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5870890" lon="0.5770100"> + <ele>2125.0</ele> + <time>2020-08-23T09:02:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871070" lon="0.5770120"> + <ele>2125.2</ele> + <time>2020-08-23T09:02:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871260" lon="0.5770120"> + <ele>2125.2</ele> + <time>2020-08-23T09:02:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871440" lon="0.5770130"> + <ele>2125.2</ele> + <time>2020-08-23T09:02:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871630" lon="0.5770170"> + <ele>2125.4</ele> + <time>2020-08-23T09:02:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871800" lon="0.5770190"> + <ele>2125.4</ele> + <time>2020-08-23T09:02:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5871990" lon="0.5770230"> + <ele>2125.6</ele> + <time>2020-08-23T09:02:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872150" lon="0.5770310"> + <ele>2125.8</ele> + <time>2020-08-23T09:02:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872310" lon="0.5770380"> + <ele>2125.8</ele> + <time>2020-08-23T09:02:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872480" lon="0.5770430"> + <ele>2126.0</ele> + <time>2020-08-23T09:02:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872650" lon="0.5770490"> + <ele>2126.2</ele> + <time>2020-08-23T09:02:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5872830" lon="0.5770560"> + <ele>2126.4</ele> + <time>2020-08-23T09:02:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873010" lon="0.5770600"> + <ele>2126.6</ele> + <time>2020-08-23T09:02:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873190" lon="0.5770610"> + <ele>2126.6</ele> + <time>2020-08-23T09:02:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873370" lon="0.5770610"> + <ele>2126.8</ele> + <time>2020-08-23T09:02:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873540" lon="0.5770580"> + <ele>2127.0</ele> + <time>2020-08-23T09:02:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873720" lon="0.5770560"> + <ele>2127.2</ele> + <time>2020-08-23T09:02:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5873890" lon="0.5770550"> + <ele>2127.4</ele> + <time>2020-08-23T09:02:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874060" lon="0.5770550"> + <ele>2127.6</ele> + <time>2020-08-23T09:02:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874240" lon="0.5770530"> + <ele>2127.8</ele> + <time>2020-08-23T09:02:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874410" lon="0.5770510"> + <ele>2127.8</ele> + <time>2020-08-23T09:02:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874590" lon="0.5770470"> + <ele>2128.0</ele> + <time>2020-08-23T09:02:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874760" lon="0.5770400"> + <ele>2128.0</ele> + <time>2020-08-23T09:02:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5874940" lon="0.5770330"> + <ele>2128.2</ele> + <time>2020-08-23T09:02:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875100" lon="0.5770240"> + <ele>2128.2</ele> + <time>2020-08-23T09:02:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875260" lon="0.5770140"> + <ele>2128.4</ele> + <time>2020-08-23T09:02:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875430" lon="0.5770060"> + <ele>2128.4</ele> + <time>2020-08-23T09:02:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875590" lon="0.5769980"> + <ele>2128.6</ele> + <time>2020-08-23T09:02:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875760" lon="0.5769890"> + <ele>2128.6</ele> + <time>2020-08-23T09:02:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5875930" lon="0.5769790"> + <ele>2128.8</ele> + <time>2020-08-23T09:02:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876100" lon="0.5769670"> + <ele>2129.0</ele> + <time>2020-08-23T09:02:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876260" lon="0.5769560"> + <ele>2129.2</ele> + <time>2020-08-23T09:02:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876410" lon="0.5769440"> + <ele>2129.2</ele> + <time>2020-08-23T09:02:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876560" lon="0.5769330"> + <ele>2129.4</ele> + <time>2020-08-23T09:02:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876700" lon="0.5769190"> + <ele>2129.4</ele> + <time>2020-08-23T09:02:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876840" lon="0.5769040"> + <ele>2129.4</ele> + <time>2020-08-23T09:02:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5876980" lon="0.5768890"> + <ele>2129.6</ele> + <time>2020-08-23T09:03:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877120" lon="0.5768730"> + <ele>2129.8</ele> + <time>2020-08-23T09:03:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877260" lon="0.5768580"> + <ele>2130.2</ele> + <time>2020-08-23T09:03:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877390" lon="0.5768410"> + <ele>2130.2</ele> + <time>2020-08-23T09:03:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877520" lon="0.5768240"> + <ele>2130.4</ele> + <time>2020-08-23T09:03:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877650" lon="0.5768070"> + <ele>2130.6</ele> + <time>2020-08-23T09:03:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877780" lon="0.5767920"> + <ele>2130.8</ele> + <time>2020-08-23T09:03:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5877920" lon="0.5767750"> + <ele>2131.0</ele> + <time>2020-08-23T09:03:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878050" lon="0.5767580"> + <ele>2131.0</ele> + <time>2020-08-23T09:03:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878180" lon="0.5767420"> + <ele>2131.2</ele> + <time>2020-08-23T09:03:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878300" lon="0.5767260"> + <ele>2131.4</ele> + <time>2020-08-23T09:03:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878430" lon="0.5767090"> + <ele>2131.4</ele> + <time>2020-08-23T09:03:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878560" lon="0.5766930"> + <ele>2131.6</ele> + <time>2020-08-23T09:03:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878700" lon="0.5766760"> + <ele>2131.8</ele> + <time>2020-08-23T09:03:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878830" lon="0.5766640"> + <ele>2132.0</ele> + <time>2020-08-23T09:03:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5878960" lon="0.5766530"> + <ele>2132.0</ele> + <time>2020-08-23T09:03:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879080" lon="0.5766380"> + <ele>2132.2</ele> + <time>2020-08-23T09:03:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879200" lon="0.5766220"> + <ele>2132.2</ele> + <time>2020-08-23T09:03:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879320" lon="0.5766070"> + <ele>2132.4</ele> + <time>2020-08-23T09:03:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879450" lon="0.5765880"> + <ele>2132.8</ele> + <time>2020-08-23T09:03:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879550" lon="0.5765680"> + <ele>2132.8</ele> + <time>2020-08-23T09:03:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879660" lon="0.5765500"> + <ele>2133.0</ele> + <time>2020-08-23T09:03:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879770" lon="0.5765320"> + <ele>2133.2</ele> + <time>2020-08-23T09:03:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879860" lon="0.5765120"> + <ele>2133.2</ele> + <time>2020-08-23T09:03:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5879960" lon="0.5764920"> + <ele>2133.4</ele> + <time>2020-08-23T09:03:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880080" lon="0.5764740"> + <ele>2133.4</ele> + <time>2020-08-23T09:03:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880200" lon="0.5764560"> + <ele>2133.8</ele> + <time>2020-08-23T09:03:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880290" lon="0.5764370"> + <ele>2133.8</ele> + <time>2020-08-23T09:03:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880380" lon="0.5764150"> + <ele>2134.0</ele> + <time>2020-08-23T09:03:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880480" lon="0.5763950"> + <ele>2134.2</ele> + <time>2020-08-23T09:03:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880620" lon="0.5763760"> + <ele>2134.4</ele> + <time>2020-08-23T09:03:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880730" lon="0.5763540"> + <ele>2134.6</ele> + <time>2020-08-23T09:03:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880840" lon="0.5763340"> + <ele>2134.8</ele> + <time>2020-08-23T09:03:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5880960" lon="0.5763160"> + <ele>2135.2</ele> + <time>2020-08-23T09:03:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881100" lon="0.5763000"> + <ele>2135.4</ele> + <time>2020-08-23T09:03:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881220" lon="0.5762810"> + <ele>2135.6</ele> + <time>2020-08-23T09:03:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881350" lon="0.5762620"> + <ele>2136.0</ele> + <time>2020-08-23T09:03:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881490" lon="0.5762450"> + <ele>2136.2</ele> + <time>2020-08-23T09:03:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881620" lon="0.5762250"> + <ele>2136.2</ele> + <time>2020-08-23T09:03:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881750" lon="0.5762050"> + <ele>2136.6</ele> + <time>2020-08-23T09:03:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5881870" lon="0.5761900"> + <ele>2136.8</ele> + <time>2020-08-23T09:03:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882020" lon="0.5761740"> + <ele>2137.0</ele> + <time>2020-08-23T09:03:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882180" lon="0.5761610"> + <ele>2137.2</ele> + <time>2020-08-23T09:03:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882360" lon="0.5761500"> + <ele>2137.6</ele> + <time>2020-08-23T09:03:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882550" lon="0.5761430"> + <ele>2137.8</ele> + <time>2020-08-23T09:03:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882740" lon="0.5761380"> + <ele>2138.0</ele> + <time>2020-08-23T09:03:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5882910" lon="0.5761330"> + <ele>2138.2</ele> + <time>2020-08-23T09:03:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883070" lon="0.5761260"> + <ele>2138.2</ele> + <time>2020-08-23T09:03:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883220" lon="0.5761180"> + <ele>2138.4</ele> + <time>2020-08-23T09:03:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883350" lon="0.5761110"> + <ele>2138.4</ele> + <time>2020-08-23T09:03:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883440" lon="0.5761080"> + <ele>2138.6</ele> + <time>2020-08-23T09:03:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883440" lon="0.5761070"> + <ele>2138.6</ele> + <time>2020-08-23T09:03:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883450" lon="0.5761040"> + <ele>2138.6</ele> + <time>2020-08-23T09:03:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>15</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5883960" lon="0.5761700"> + <ele>2138.8</ele> + <time>2020-08-23T09:06:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884140" lon="0.5761820"> + <ele>2138.8</ele> + <time>2020-08-23T09:06:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884320" lon="0.5761970"> + <ele>2138.4</ele> + <time>2020-08-23T09:06:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884500" lon="0.5762110"> + <ele>2138.4</ele> + <time>2020-08-23T09:06:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884660" lon="0.5762250"> + <ele>2138.4</ele> + <time>2020-08-23T09:06:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884820" lon="0.5762420"> + <ele>2138.4</ele> + <time>2020-08-23T09:06:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5884970" lon="0.5762570"> + <ele>2138.4</ele> + <time>2020-08-23T09:06:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885140" lon="0.5762700"> + <ele>2138.4</ele> + <time>2020-08-23T09:06:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885330" lon="0.5762870"> + <ele>2138.2</ele> + <time>2020-08-23T09:06:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885500" lon="0.5763070"> + <ele>2138.2</ele> + <time>2020-08-23T09:06:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885680" lon="0.5763240"> + <ele>2138.2</ele> + <time>2020-08-23T09:06:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5885850" lon="0.5763430"> + <ele>2138.2</ele> + <time>2020-08-23T09:06:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886020" lon="0.5763610"> + <ele>2138.2</ele> + <time>2020-08-23T09:06:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886190" lon="0.5763800"> + <ele>2138.2</ele> + <time>2020-08-23T09:06:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886340" lon="0.5764010"> + <ele>2138.2</ele> + <time>2020-08-23T09:06:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886490" lon="0.5764210"> + <ele>2138.2</ele> + <time>2020-08-23T09:06:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886660" lon="0.5764410"> + <ele>2138.2</ele> + <time>2020-08-23T09:06:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886810" lon="0.5764630"> + <ele>2138.4</ele> + <time>2020-08-23T09:06:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5886980" lon="0.5764830"> + <ele>2138.6</ele> + <time>2020-08-23T09:06:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887150" lon="0.5765020"> + <ele>2138.6</ele> + <time>2020-08-23T09:06:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887300" lon="0.5765230"> + <ele>2138.8</ele> + <time>2020-08-23T09:06:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887460" lon="0.5765420"> + <ele>2138.8</ele> + <time>2020-08-23T09:06:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887620" lon="0.5765600"> + <ele>2138.8</ele> + <time>2020-08-23T09:06:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887770" lon="0.5765800"> + <ele>2138.8</ele> + <time>2020-08-23T09:06:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5887920" lon="0.5766000"> + <ele>2139.0</ele> + <time>2020-08-23T09:06:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>16</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5888070" lon="0.5766190"> + <ele>2139.0</ele> + <time>2020-08-23T09:06:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5888240" lon="0.5766370"> + <ele>2139.2</ele> + <time>2020-08-23T09:06:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5888390" lon="0.5766570"> + <ele>2139.0</ele> + <time>2020-08-23T09:06:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5888520" lon="0.5766780"> + <ele>2139.2</ele> + <time>2020-08-23T09:06:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5888660" lon="0.5767000"> + <ele>2139.2</ele> + <time>2020-08-23T09:06:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5888810" lon="0.5767210"> + <ele>2139.4</ele> + <time>2020-08-23T09:06:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5888960" lon="0.5767410"> + <ele>2139.4</ele> + <time>2020-08-23T09:06:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889120" lon="0.5767600"> + <ele>2139.6</ele> + <time>2020-08-23T09:06:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889270" lon="0.5767800"> + <ele>2139.6</ele> + <time>2020-08-23T09:07:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889420" lon="0.5768000"> + <ele>2139.8</ele> + <time>2020-08-23T09:07:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889570" lon="0.5768210"> + <ele>2139.8</ele> + <time>2020-08-23T09:07:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889710" lon="0.5768420"> + <ele>2140.0</ele> + <time>2020-08-23T09:07:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889850" lon="0.5768630"> + <ele>2140.2</ele> + <time>2020-08-23T09:07:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5889990" lon="0.5768830"> + <ele>2140.2</ele> + <time>2020-08-23T09:07:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890140" lon="0.5769040"> + <ele>2140.4</ele> + <time>2020-08-23T09:07:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890290" lon="0.5769260"> + <ele>2140.4</ele> + <time>2020-08-23T09:07:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890440" lon="0.5769460"> + <ele>2140.6</ele> + <time>2020-08-23T09:07:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890590" lon="0.5769670"> + <ele>2140.8</ele> + <time>2020-08-23T09:07:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890730" lon="0.5769870"> + <ele>2141.0</ele> + <time>2020-08-23T09:07:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5890880" lon="0.5770070"> + <ele>2141.2</ele> + <time>2020-08-23T09:07:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891030" lon="0.5770270"> + <ele>2141.4</ele> + <time>2020-08-23T09:07:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891180" lon="0.5770460"> + <ele>2141.6</ele> + <time>2020-08-23T09:07:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891330" lon="0.5770670"> + <ele>2141.6</ele> + <time>2020-08-23T09:07:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891480" lon="0.5770870"> + <ele>2141.8</ele> + <time>2020-08-23T09:07:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891620" lon="0.5771070"> + <ele>2141.8</ele> + <time>2020-08-23T09:07:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891780" lon="0.5771250"> + <ele>2142.0</ele> + <time>2020-08-23T09:07:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5891930" lon="0.5771420"> + <ele>2142.2</ele> + <time>2020-08-23T09:07:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892080" lon="0.5771600"> + <ele>2142.4</ele> + <time>2020-08-23T09:07:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892230" lon="0.5771790"> + <ele>2142.4</ele> + <time>2020-08-23T09:07:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892390" lon="0.5771980"> + <ele>2142.4</ele> + <time>2020-08-23T09:07:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892550" lon="0.5772160"> + <ele>2142.4</ele> + <time>2020-08-23T09:07:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892700" lon="0.5772350"> + <ele>2142.6</ele> + <time>2020-08-23T09:07:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5892850" lon="0.5772530"> + <ele>2142.6</ele> + <time>2020-08-23T09:07:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893000" lon="0.5772700"> + <ele>2142.8</ele> + <time>2020-08-23T09:07:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893170" lon="0.5772880"> + <ele>2143.0</ele> + <time>2020-08-23T09:07:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893330" lon="0.5773040"> + <ele>2143.0</ele> + <time>2020-08-23T09:07:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893490" lon="0.5773200"> + <ele>2143.2</ele> + <time>2020-08-23T09:07:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893680" lon="0.5773370"> + <ele>2143.2</ele> + <time>2020-08-23T09:07:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893870" lon="0.5773540"> + <ele>2143.4</ele> + <time>2020-08-23T09:07:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894060" lon="0.5773700"> + <ele>2143.6</ele> + <time>2020-08-23T09:07:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894240" lon="0.5773870"> + <ele>2143.8</ele> + <time>2020-08-23T09:07:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894430" lon="0.5774020"> + <ele>2144.0</ele> + <time>2020-08-23T09:07:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894620" lon="0.5774150"> + <ele>2144.0</ele> + <time>2020-08-23T09:07:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894810" lon="0.5774280"> + <ele>2144.2</ele> + <time>2020-08-23T09:07:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895000" lon="0.5774420"> + <ele>2144.4</ele> + <time>2020-08-23T09:07:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895190" lon="0.5774560"> + <ele>2144.6</ele> + <time>2020-08-23T09:07:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895390" lon="0.5774670"> + <ele>2144.8</ele> + <time>2020-08-23T09:07:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895590" lon="0.5774770"> + <ele>2144.8</ele> + <time>2020-08-23T09:07:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895800" lon="0.5774850"> + <ele>2144.8</ele> + <time>2020-08-23T09:07:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896000" lon="0.5774950"> + <ele>2145.0</ele> + <time>2020-08-23T09:07:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896200" lon="0.5775070"> + <ele>2145.0</ele> + <time>2020-08-23T09:07:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896390" lon="0.5775200"> + <ele>2145.0</ele> + <time>2020-08-23T09:07:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896580" lon="0.5775330"> + <ele>2145.0</ele> + <time>2020-08-23T09:07:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896780" lon="0.5775470"> + <ele>2145.2</ele> + <time>2020-08-23T09:07:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896970" lon="0.5775630"> + <ele>2145.2</ele> + <time>2020-08-23T09:07:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897160" lon="0.5775790"> + <ele>2145.4</ele> + <time>2020-08-23T09:07:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897350" lon="0.5775960"> + <ele>2145.4</ele> + <time>2020-08-23T09:07:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897530" lon="0.5776130"> + <ele>2145.6</ele> + <time>2020-08-23T09:07:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897710" lon="0.5776310"> + <ele>2145.6</ele> + <time>2020-08-23T09:07:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897870" lon="0.5776500"> + <ele>2145.6</ele> + <time>2020-08-23T09:07:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898050" lon="0.5776650"> + <ele>2145.8</ele> + <time>2020-08-23T09:07:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898240" lon="0.5776760"> + <ele>2145.8</ele> + <time>2020-08-23T09:07:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898450" lon="0.5776870"> + <ele>2146.0</ele> + <time>2020-08-23T09:07:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898670" lon="0.5776960"> + <ele>2146.2</ele> + <time>2020-08-23T09:07:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898870" lon="0.5777060"> + <ele>2146.4</ele> + <time>2020-08-23T09:07:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899080" lon="0.5777180"> + <ele>2146.4</ele> + <time>2020-08-23T09:07:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899270" lon="0.5777330"> + <ele>2146.6</ele> + <time>2020-08-23T09:07:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899470" lon="0.5777440"> + <ele>2146.6</ele> + <time>2020-08-23T09:07:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899670" lon="0.5777520"> + <ele>2146.6</ele> + <time>2020-08-23T09:08:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899880" lon="0.5777600"> + <ele>2146.8</ele> + <time>2020-08-23T09:08:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900070" lon="0.5777700"> + <ele>2146.8</ele> + <time>2020-08-23T09:08:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900280" lon="0.5777770"> + <ele>2146.8</ele> + <time>2020-08-23T09:08:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900480" lon="0.5777820"> + <ele>2147.0</ele> + <time>2020-08-23T09:08:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900690" lon="0.5777840"> + <ele>2147.0</ele> + <time>2020-08-23T09:08:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900910" lon="0.5777820"> + <ele>2147.2</ele> + <time>2020-08-23T09:08:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901110" lon="0.5777770"> + <ele>2147.2</ele> + <time>2020-08-23T09:08:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901310" lon="0.5777680"> + <ele>2147.4</ele> + <time>2020-08-23T09:08:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901490" lon="0.5777570"> + <ele>2147.2</ele> + <time>2020-08-23T09:08:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901670" lon="0.5777410"> + <ele>2147.4</ele> + <time>2020-08-23T09:08:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901850" lon="0.5777210"> + <ele>2147.4</ele> + <time>2020-08-23T09:08:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902000" lon="0.5776990"> + <ele>2147.4</ele> + <time>2020-08-23T09:08:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902120" lon="0.5776730"> + <ele>2147.4</ele> + <time>2020-08-23T09:08:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902200" lon="0.5776440"> + <ele>2147.4</ele> + <time>2020-08-23T09:08:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902280" lon="0.5776150"> + <ele>2147.6</ele> + <time>2020-08-23T09:08:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902370" lon="0.5775860"> + <ele>2147.6</ele> + <time>2020-08-23T09:08:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902440" lon="0.5775550"> + <ele>2147.6</ele> + <time>2020-08-23T09:08:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902490" lon="0.5775230"> + <ele>2147.6</ele> + <time>2020-08-23T09:08:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902550" lon="0.5774910"> + <ele>2147.6</ele> + <time>2020-08-23T09:08:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902610" lon="0.5774550"> + <ele>2147.6</ele> + <time>2020-08-23T09:08:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902680" lon="0.5774210"> + <ele>2147.8</ele> + <time>2020-08-23T09:08:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902750" lon="0.5773850"> + <ele>2147.8</ele> + <time>2020-08-23T09:08:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902810" lon="0.5773500"> + <ele>2147.8</ele> + <time>2020-08-23T09:08:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902880" lon="0.5773140"> + <ele>2148.0</ele> + <time>2020-08-23T09:08:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902930" lon="0.5772780"> + <ele>2148.0</ele> + <time>2020-08-23T09:08:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902990" lon="0.5772420"> + <ele>2148.2</ele> + <time>2020-08-23T09:08:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903040" lon="0.5772070"> + <ele>2148.2</ele> + <time>2020-08-23T09:08:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903100" lon="0.5771760"> + <ele>2148.2</ele> + <time>2020-08-23T09:08:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903140" lon="0.5771450"> + <ele>2148.4</ele> + <time>2020-08-23T09:08:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903180" lon="0.5771140"> + <ele>2148.4</ele> + <time>2020-08-23T09:08:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903190" lon="0.5770830"> + <ele>2148.4</ele> + <time>2020-08-23T09:08:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903210" lon="0.5770530"> + <ele>2148.4</ele> + <time>2020-08-23T09:08:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903210" lon="0.5770220"> + <ele>2148.6</ele> + <time>2020-08-23T09:08:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903200" lon="0.5769920"> + <ele>2148.6</ele> + <time>2020-08-23T09:08:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903210" lon="0.5769630"> + <ele>2148.8</ele> + <time>2020-08-23T09:08:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903220" lon="0.5769340"> + <ele>2148.8</ele> + <time>2020-08-23T09:08:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903210" lon="0.5769070"> + <ele>2149.0</ele> + <time>2020-08-23T09:08:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903200" lon="0.5768790"> + <ele>2149.2</ele> + <time>2020-08-23T09:08:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903180" lon="0.5768510"> + <ele>2149.4</ele> + <time>2020-08-23T09:08:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903170" lon="0.5768220"> + <ele>2149.6</ele> + <time>2020-08-23T09:08:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903170" lon="0.5767950"> + <ele>2150.2</ele> + <time>2020-08-23T09:08:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903150" lon="0.5767670"> + <ele>2150.4</ele> + <time>2020-08-23T09:08:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903130" lon="0.5767400"> + <ele>2150.6</ele> + <time>2020-08-23T09:08:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903130" lon="0.5767140"> + <ele>2150.8</ele> + <time>2020-08-23T09:08:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903150" lon="0.5766880"> + <ele>2150.8</ele> + <time>2020-08-23T09:08:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903170" lon="0.5766610"> + <ele>2150.8</ele> + <time>2020-08-23T09:08:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903220" lon="0.5766350"> + <ele>2151.0</ele> + <time>2020-08-23T09:08:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903260" lon="0.5766100"> + <ele>2151.2</ele> + <time>2020-08-23T09:08:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903300" lon="0.5765880"> + <ele>2151.4</ele> + <time>2020-08-23T09:08:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903340" lon="0.5765680"> + <ele>2151.6</ele> + <time>2020-08-23T09:08:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903390" lon="0.5765500"> + <ele>2151.6</ele> + <time>2020-08-23T09:08:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903430" lon="0.5765330"> + <ele>2151.8</ele> + <time>2020-08-23T09:08:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903470" lon="0.5765160"> + <ele>2152.0</ele> + <time>2020-08-23T09:08:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903540" lon="0.5765050"> + <ele>2152.4</ele> + <time>2020-08-23T09:08:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903600" lon="0.5764960"> + <ele>2152.6</ele> + <time>2020-08-23T09:08:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903640" lon="0.5764880"> + <ele>2152.8</ele> + <time>2020-08-23T09:08:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903630" lon="0.5764770"> + <ele>2153.0</ele> + <time>2020-08-23T09:08:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903530" lon="0.5764720"> + <ele>2153.2</ele> + <time>2020-08-23T09:08:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903430" lon="0.5764810"> + <ele>2153.4</ele> + <time>2020-08-23T09:08:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903380" lon="0.5764990"> + <ele>2153.6</ele> + <time>2020-08-23T09:09:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903350" lon="0.5765210"> + <ele>2153.6</ele> + <time>2020-08-23T09:09:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903300" lon="0.5765450"> + <ele>2153.6</ele> + <time>2020-08-23T09:09:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903270" lon="0.5765770"> + <ele>2153.8</ele> + <time>2020-08-23T09:09:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903240" lon="0.5766120"> + <ele>2153.8</ele> + <time>2020-08-23T09:09:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903200" lon="0.5766510"> + <ele>2153.8</ele> + <time>2020-08-23T09:09:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903160" lon="0.5766960"> + <ele>2153.8</ele> + <time>2020-08-23T09:09:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903140" lon="0.5767470"> + <ele>2153.8</ele> + <time>2020-08-23T09:09:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903160" lon="0.5768060"> + <ele>2153.8</ele> + <time>2020-08-23T09:09:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903190" lon="0.5768700"> + <ele>2153.8</ele> + <time>2020-08-23T09:09:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903180" lon="0.5769390"> + <ele>2153.8</ele> + <time>2020-08-23T09:09:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903170" lon="0.5770070"> + <ele>2153.8</ele> + <time>2020-08-23T09:09:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903160" lon="0.5770680"> + <ele>2153.6</ele> + <time>2020-08-23T09:09:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903140" lon="0.5771200"> + <ele>2153.6</ele> + <time>2020-08-23T09:09:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903080" lon="0.5771640"> + <ele>2153.0</ele> + <time>2020-08-23T09:09:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902980" lon="0.5771980"> + <ele>2152.4</ele> + <time>2020-08-23T09:09:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902840" lon="0.5772230"> + <ele>2151.4</ele> + <time>2020-08-23T09:09:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902670" lon="0.5772390"> + <ele>2150.8</ele> + <time>2020-08-23T09:09:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902510" lon="0.5772420"> + <ele>2150.4</ele> + <time>2020-08-23T09:09:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902390" lon="0.5772280"> + <ele>2150.0</ele> + <time>2020-08-23T09:09:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902310" lon="0.5772030"> + <ele>2149.8</ele> + <time>2020-08-23T09:09:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902200" lon="0.5771770"> + <ele>2149.4</ele> + <time>2020-08-23T09:09:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902060" lon="0.5771520"> + <ele>2149.2</ele> + <time>2020-08-23T09:09:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901910" lon="0.5771260"> + <ele>2149.0</ele> + <time>2020-08-23T09:09:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901740" lon="0.5771020"> + <ele>2148.6</ele> + <time>2020-08-23T09:09:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901550" lon="0.5770800"> + <ele>2148.6</ele> + <time>2020-08-23T09:09:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901400" lon="0.5770590"> + <ele>2148.4</ele> + <time>2020-08-23T09:09:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901230" lon="0.5770380"> + <ele>2148.0</ele> + <time>2020-08-23T09:09:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901060" lon="0.5770160"> + <ele>2147.8</ele> + <time>2020-08-23T09:09:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900880" lon="0.5769910"> + <ele>2147.6</ele> + <time>2020-08-23T09:09:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900740" lon="0.5769660"> + <ele>2147.2</ele> + <time>2020-08-23T09:09:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900660" lon="0.5769480"> + <ele>2147.0</ele> + <time>2020-08-23T09:09:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900640" lon="0.5769320"> + <ele>2146.8</ele> + <time>2020-08-23T09:09:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900640" lon="0.5769130"> + <ele>2146.4</ele> + <time>2020-08-23T09:09:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900680" lon="0.5768910"> + <ele>2146.2</ele> + <time>2020-08-23T09:09:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900760" lon="0.5768690"> + <ele>2146.0</ele> + <time>2020-08-23T09:09:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900850" lon="0.5768500"> + <ele>2145.8</ele> + <time>2020-08-23T09:09:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900930" lon="0.5768260"> + <ele>2145.4</ele> + <time>2020-08-23T09:09:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900930" lon="0.5767980"> + <ele>2145.0</ele> + <time>2020-08-23T09:09:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900880" lon="0.5767720"> + <ele>2144.8</ele> + <time>2020-08-23T09:09:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900810" lon="0.5767520"> + <ele>2144.8</ele> + <time>2020-08-23T09:09:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900690" lon="0.5767280"> + <ele>2144.6</ele> + <time>2020-08-23T09:09:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900560" lon="0.5767030"> + <ele>2144.6</ele> + <time>2020-08-23T09:09:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900370" lon="0.5766760"> + <ele>2144.6</ele> + <time>2020-08-23T09:09:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900140" lon="0.5766490"> + <ele>2144.6</ele> + <time>2020-08-23T09:09:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899930" lon="0.5766240"> + <ele>2144.4</ele> + <time>2020-08-23T09:09:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899700" lon="0.5766010"> + <ele>2144.4</ele> + <time>2020-08-23T09:09:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899450" lon="0.5765770"> + <ele>2144.2</ele> + <time>2020-08-23T09:09:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899190" lon="0.5765500"> + <ele>2144.2</ele> + <time>2020-08-23T09:09:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898960" lon="0.5765280"> + <ele>2144.0</ele> + <time>2020-08-23T09:09:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898790" lon="0.5765070"> + <ele>2144.0</ele> + <time>2020-08-23T09:09:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898640" lon="0.5764880"> + <ele>2143.8</ele> + <time>2020-08-23T09:09:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898530" lon="0.5764740"> + <ele>2143.4</ele> + <time>2020-08-23T09:09:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898410" lon="0.5764560"> + <ele>2143.0</ele> + <time>2020-08-23T09:09:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898290" lon="0.5764360"> + <ele>2142.6</ele> + <time>2020-08-23T09:09:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898160" lon="0.5764170"> + <ele>2142.2</ele> + <time>2020-08-23T09:09:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898050" lon="0.5763980"> + <ele>2141.8</ele> + <time>2020-08-23T09:09:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897960" lon="0.5763760"> + <ele>2141.6</ele> + <time>2020-08-23T09:09:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897870" lon="0.5763510"> + <ele>2141.4</ele> + <time>2020-08-23T09:09:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897800" lon="0.5763270"> + <ele>2141.2</ele> + <time>2020-08-23T09:09:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897740" lon="0.5763020"> + <ele>2141.2</ele> + <time>2020-08-23T09:10:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897680" lon="0.5762760"> + <ele>2141.0</ele> + <time>2020-08-23T09:10:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897630" lon="0.5762490"> + <ele>2140.8</ele> + <time>2020-08-23T09:10:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897590" lon="0.5762250"> + <ele>2140.8</ele> + <time>2020-08-23T09:10:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897560" lon="0.5762040"> + <ele>2140.2</ele> + <time>2020-08-23T09:10:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897540" lon="0.5761820"> + <ele>2140.0</ele> + <time>2020-08-23T09:10:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897500" lon="0.5761580"> + <ele>2140.0</ele> + <time>2020-08-23T09:10:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897450" lon="0.5761370"> + <ele>2139.8</ele> + <time>2020-08-23T09:10:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897410" lon="0.5761180"> + <ele>2139.6</ele> + <time>2020-08-23T09:10:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897350" lon="0.5760970"> + <ele>2139.4</ele> + <time>2020-08-23T09:10:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897310" lon="0.5760720"> + <ele>2139.2</ele> + <time>2020-08-23T09:10:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897280" lon="0.5760430"> + <ele>2139.2</ele> + <time>2020-08-23T09:10:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897260" lon="0.5760140"> + <ele>2139.0</ele> + <time>2020-08-23T09:10:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897230" lon="0.5759850"> + <ele>2138.8</ele> + <time>2020-08-23T09:10:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897200" lon="0.5759560"> + <ele>2138.6</ele> + <time>2020-08-23T09:10:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897170" lon="0.5759280"> + <ele>2138.6</ele> + <time>2020-08-23T09:10:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897140" lon="0.5759000"> + <ele>2138.4</ele> + <time>2020-08-23T09:10:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897080" lon="0.5758710"> + <ele>2138.2</ele> + <time>2020-08-23T09:10:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897010" lon="0.5758400"> + <ele>2138.0</ele> + <time>2020-08-23T09:10:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896940" lon="0.5758080"> + <ele>2138.0</ele> + <time>2020-08-23T09:10:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896890" lon="0.5757720"> + <ele>2138.0</ele> + <time>2020-08-23T09:10:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896870" lon="0.5757400"> + <ele>2137.8</ele> + <time>2020-08-23T09:10:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896850" lon="0.5757100"> + <ele>2137.8</ele> + <time>2020-08-23T09:10:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896800" lon="0.5756800"> + <ele>2137.8</ele> + <time>2020-08-23T09:10:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896770" lon="0.5756550"> + <ele>2137.8</ele> + <time>2020-08-23T09:10:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896760" lon="0.5756390"> + <ele>2137.8</ele> + <time>2020-08-23T09:10:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896740" lon="0.5756380"> + <ele>2137.8</ele> + <time>2020-08-23T09:10:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896780" lon="0.5755960"> + <ele>2137.6</ele> + <time>2020-08-23T09:11:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896810" lon="0.5755840"> + <ele>2137.6</ele> + <time>2020-08-23T09:11:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896810" lon="0.5755830"> + <ele>2137.6</ele> + <time>2020-08-23T09:11:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896810" lon="0.5755820"> + <ele>2137.6</ele> + <time>2020-08-23T09:11:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896870" lon="0.5755470"> + <ele>2137.4</ele> + <time>2020-08-23T09:11:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896910" lon="0.5755180"> + <ele>2137.4</ele> + <time>2020-08-23T09:11:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896970" lon="0.5754840"> + <ele>2137.4</ele> + <time>2020-08-23T09:11:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897070" lon="0.5754470"> + <ele>2137.4</ele> + <time>2020-08-23T09:11:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897170" lon="0.5754070"> + <ele>2137.4</ele> + <time>2020-08-23T09:11:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897310" lon="0.5753660"> + <ele>2137.4</ele> + <time>2020-08-23T09:11:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897500" lon="0.5753270"> + <ele>2137.2</ele> + <time>2020-08-23T09:11:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897720" lon="0.5752910"> + <ele>2137.2</ele> + <time>2020-08-23T09:11:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897950" lon="0.5752540"> + <ele>2137.2</ele> + <time>2020-08-23T09:11:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898180" lon="0.5752160"> + <ele>2137.2</ele> + <time>2020-08-23T09:11:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898440" lon="0.5751780"> + <ele>2137.0</ele> + <time>2020-08-23T09:12:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898720" lon="0.5751410"> + <ele>2136.6</ele> + <time>2020-08-23T09:12:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899040" lon="0.5751080"> + <ele>2136.4</ele> + <time>2020-08-23T09:12:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899370" lon="0.5750790"> + <ele>2136.2</ele> + <time>2020-08-23T09:12:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899680" lon="0.5750470"> + <ele>2135.8</ele> + <time>2020-08-23T09:12:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899940" lon="0.5750120"> + <ele>2135.6</ele> + <time>2020-08-23T09:12:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900160" lon="0.5749780"> + <ele>2135.4</ele> + <time>2020-08-23T09:12:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900390" lon="0.5749420"> + <ele>2135.2</ele> + <time>2020-08-23T09:12:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900640" lon="0.5749000"> + <ele>2135.0</ele> + <time>2020-08-23T09:12:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900840" lon="0.5748540"> + <ele>2134.6</ele> + <time>2020-08-23T09:12:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900950" lon="0.5748220"> + <ele>2134.2</ele> + <time>2020-08-23T09:12:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901000" lon="0.5748110"> + <ele>2134.0</ele> + <time>2020-08-23T09:12:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901040" lon="0.5748120"> + <ele>2134.0</ele> + <time>2020-08-23T09:12:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901280" lon="0.5747690"> + <ele>2131.4</ele> + <time>2020-08-23T09:12:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901300" lon="0.5747400"> + <ele>2130.4</ele> + <time>2020-08-23T09:12:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901260" lon="0.5747120"> + <ele>2129.6</ele> + <time>2020-08-23T09:12:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901120" lon="0.5746830"> + <ele>2129.2</ele> + <time>2020-08-23T09:12:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900940" lon="0.5746550"> + <ele>2128.6</ele> + <time>2020-08-23T09:12:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900730" lon="0.5746380"> + <ele>2128.6</ele> + <time>2020-08-23T09:12:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900450" lon="0.5746380"> + <ele>2128.4</ele> + <time>2020-08-23T09:12:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900170" lon="0.5746480"> + <ele>2128.2</ele> + <time>2020-08-23T09:12:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899920" lon="0.5746550"> + <ele>2128.0</ele> + <time>2020-08-23T09:12:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899690" lon="0.5746590"> + <ele>2127.4</ele> + <time>2020-08-23T09:12:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899470" lon="0.5746600"> + <ele>2126.8</ele> + <time>2020-08-23T09:12:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899210" lon="0.5746620"> + <ele>2126.0</ele> + <time>2020-08-23T09:12:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898960" lon="0.5746620"> + <ele>2125.4</ele> + <time>2020-08-23T09:12:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898710" lon="0.5746650"> + <ele>2124.8</ele> + <time>2020-08-23T09:12:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898470" lon="0.5746710"> + <ele>2123.8</ele> + <time>2020-08-23T09:12:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898210" lon="0.5746760"> + <ele>2123.0</ele> + <time>2020-08-23T09:12:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897970" lon="0.5746790"> + <ele>2122.0</ele> + <time>2020-08-23T09:12:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897760" lon="0.5746810"> + <ele>2121.0</ele> + <time>2020-08-23T09:12:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897600" lon="0.5746720"> + <ele>2119.8</ele> + <time>2020-08-23T09:12:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897440" lon="0.5746560"> + <ele>2119.4</ele> + <time>2020-08-23T09:12:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897260" lon="0.5746370"> + <ele>2118.6</ele> + <time>2020-08-23T09:12:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5897060" lon="0.5746130"> + <ele>2117.8</ele> + <time>2020-08-23T09:12:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896850" lon="0.5745850"> + <ele>2117.0</ele> + <time>2020-08-23T09:12:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896670" lon="0.5745580"> + <ele>2116.4</ele> + <time>2020-08-23T09:12:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896560" lon="0.5745220"> + <ele>2115.6</ele> + <time>2020-08-23T09:12:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896500" lon="0.5744690"> + <ele>2115.0</ele> + <time>2020-08-23T09:12:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896480" lon="0.5744090"> + <ele>2114.2</ele> + <time>2020-08-23T09:12:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896510" lon="0.5743460"> + <ele>2113.6</ele> + <time>2020-08-23T09:12:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896490" lon="0.5742810"> + <ele>2112.8</ele> + <time>2020-08-23T09:12:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896380" lon="0.5742130"> + <ele>2111.8</ele> + <time>2020-08-23T09:12:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5896190" lon="0.5741440"> + <ele>2110.4</ele> + <time>2020-08-23T09:12:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895950" lon="0.5740750"> + <ele>2109.0</ele> + <time>2020-08-23T09:12:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895710" lon="0.5740150"> + <ele>2108.0</ele> + <time>2020-08-23T09:12:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895530" lon="0.5739770"> + <ele>2106.6</ele> + <time>2020-08-23T09:12:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895400" lon="0.5739540"> + <ele>2105.6</ele> + <time>2020-08-23T09:12:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895250" lon="0.5739320"> + <ele>2104.8</ele> + <time>2020-08-23T09:12:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895160" lon="0.5739120"> + <ele>2103.6</ele> + <time>2020-08-23T09:12:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895120" lon="0.5738850"> + <ele>2102.8</ele> + <time>2020-08-23T09:12:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895060" lon="0.5738500"> + <ele>2102.2</ele> + <time>2020-08-23T09:12:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894980" lon="0.5738130"> + <ele>2101.2</ele> + <time>2020-08-23T09:12:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894900" lon="0.5737850"> + <ele>2100.4</ele> + <time>2020-08-23T09:12:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894780" lon="0.5737600"> + <ele>2100.0</ele> + <time>2020-08-23T09:12:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894650" lon="0.5737330"> + <ele>2099.8</ele> + <time>2020-08-23T09:12:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894550" lon="0.5737100"> + <ele>2099.4</ele> + <time>2020-08-23T09:12:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894470" lon="0.5736870"> + <ele>2099.4</ele> + <time>2020-08-23T09:13:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894430" lon="0.5736530"> + <ele>2099.0</ele> + <time>2020-08-23T09:13:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894410" lon="0.5736070"> + <ele>2098.6</ele> + <time>2020-08-23T09:13:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894400" lon="0.5735530"> + <ele>2098.0</ele> + <time>2020-08-23T09:13:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894380" lon="0.5734940"> + <ele>2097.0</ele> + <time>2020-08-23T09:13:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894340" lon="0.5734330"> + <ele>2096.0</ele> + <time>2020-08-23T09:13:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894310" lon="0.5733830"> + <ele>2095.2</ele> + <time>2020-08-23T09:13:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894280" lon="0.5733430"> + <ele>2093.6</ele> + <time>2020-08-23T09:13:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894270" lon="0.5733150"> + <ele>2092.8</ele> + <time>2020-08-23T09:13:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894250" lon="0.5732950"> + <ele>2091.8</ele> + <time>2020-08-23T09:13:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894270" lon="0.5732800"> + <ele>2091.0</ele> + <time>2020-08-23T09:13:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894340" lon="0.5732550"> + <ele>2090.0</ele> + <time>2020-08-23T09:13:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894460" lon="0.5732270"> + <ele>2088.8</ele> + <time>2020-08-23T09:13:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894620" lon="0.5732030"> + <ele>2087.6</ele> + <time>2020-08-23T09:13:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894730" lon="0.5731840"> + <ele>2086.6</ele> + <time>2020-08-23T09:13:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894790" lon="0.5731770"> + <ele>2086.0</ele> + <time>2020-08-23T09:13:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894780" lon="0.5731790"> + <ele>2085.4</ele> + <time>2020-08-23T09:13:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895010" lon="0.5731440"> + <ele>2082.8</ele> + <time>2020-08-23T09:13:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895130" lon="0.5731140"> + <ele>2082.6</ele> + <time>2020-08-23T09:13:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895200" lon="0.5730910"> + <ele>2082.6</ele> + <time>2020-08-23T09:13:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895210" lon="0.5730690"> + <ele>2082.6</ele> + <time>2020-08-23T09:13:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895180" lon="0.5730350"> + <ele>2082.4</ele> + <time>2020-08-23T09:13:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895140" lon="0.5729930"> + <ele>2082.4</ele> + <time>2020-08-23T09:13:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895090" lon="0.5729610"> + <ele>2082.4</ele> + <time>2020-08-23T09:13:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894980" lon="0.5729360"> + <ele>2082.2</ele> + <time>2020-08-23T09:13:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894920" lon="0.5729140"> + <ele>2081.8</ele> + <time>2020-08-23T09:13:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894920" lon="0.5728980"> + <ele>2081.0</ele> + <time>2020-08-23T09:13:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894910" lon="0.5728750"> + <ele>2080.2</ele> + <time>2020-08-23T09:13:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894850" lon="0.5728440"> + <ele>2079.4</ele> + <time>2020-08-23T09:13:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894780" lon="0.5728110"> + <ele>2078.6</ele> + <time>2020-08-23T09:13:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894770" lon="0.5727790"> + <ele>2077.8</ele> + <time>2020-08-23T09:13:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894780" lon="0.5727480"> + <ele>2076.8</ele> + <time>2020-08-23T09:13:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894760" lon="0.5727130"> + <ele>2075.8</ele> + <time>2020-08-23T09:13:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894700" lon="0.5726710"> + <ele>2075.2</ele> + <time>2020-08-23T09:13:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894680" lon="0.5726170"> + <ele>2074.2</ele> + <time>2020-08-23T09:13:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894650" lon="0.5725610"> + <ele>2073.6</ele> + <time>2020-08-23T09:13:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894570" lon="0.5725000"> + <ele>2073.0</ele> + <time>2020-08-23T09:13:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894470" lon="0.5724390"> + <ele>2072.4</ele> + <time>2020-08-23T09:13:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894310" lon="0.5723810"> + <ele>2071.8</ele> + <time>2020-08-23T09:13:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894150" lon="0.5723290"> + <ele>2071.2</ele> + <time>2020-08-23T09:13:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894060" lon="0.5722830"> + <ele>2070.2</ele> + <time>2020-08-23T09:13:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893980" lon="0.5722360"> + <ele>2069.0</ele> + <time>2020-08-23T09:13:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893920" lon="0.5721910"> + <ele>2067.8</ele> + <time>2020-08-23T09:13:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5893940" lon="0.5721480"> + <ele>2066.6</ele> + <time>2020-08-23T09:13:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894060" lon="0.5721150"> + <ele>2065.2</ele> + <time>2020-08-23T09:13:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894200" lon="0.5720940"> + <ele>2063.6</ele> + <time>2020-08-23T09:13:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894330" lon="0.5720840"> + <ele>2062.4</ele> + <time>2020-08-23T09:13:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894500" lon="0.5720820"> + <ele>2061.4</ele> + <time>2020-08-23T09:13:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5894750" lon="0.5720870"> + <ele>2060.0</ele> + <time>2020-08-23T09:13:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895000" lon="0.5720950"> + <ele>2059.2</ele> + <time>2020-08-23T09:13:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895230" lon="0.5720980"> + <ele>2058.6</ele> + <time>2020-08-23T09:13:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895430" lon="0.5720950"> + <ele>2057.6</ele> + <time>2020-08-23T09:13:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895560" lon="0.5720910"> + <ele>2056.8</ele> + <time>2020-08-23T09:13:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895600" lon="0.5720900"> + <ele>2056.0</ele> + <time>2020-08-23T09:13:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5895620" lon="0.5720910"> + <ele>2055.4</ele> + <time>2020-08-23T09:14:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5898990" lon="0.5720810"> + <ele>2034.8</ele> + <time>2020-08-23T09:15:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899240" lon="0.5720950"> + <ele>2034.6</ele> + <time>2020-08-23T09:15:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899560" lon="0.5721150"> + <ele>2034.4</ele> + <time>2020-08-23T09:15:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5899860" lon="0.5721360"> + <ele>2034.2</ele> + <time>2020-08-23T09:15:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900090" lon="0.5721580"> + <ele>2034.2</ele> + <time>2020-08-23T09:15:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900280" lon="0.5721820"> + <ele>2034.0</ele> + <time>2020-08-23T09:15:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900420" lon="0.5722050"> + <ele>2034.0</ele> + <time>2020-08-23T09:15:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900640" lon="0.5722310"> + <ele>2033.8</ele> + <time>2020-08-23T09:15:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5900920" lon="0.5722640"> + <ele>2033.6</ele> + <time>2020-08-23T09:15:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901160" lon="0.5723000"> + <ele>2033.2</ele> + <time>2020-08-23T09:15:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901330" lon="0.5723320"> + <ele>2032.8</ele> + <time>2020-08-23T09:15:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901510" lon="0.5723590"> + <ele>2032.4</ele> + <time>2020-08-23T09:15:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901660" lon="0.5723790"> + <ele>2032.2</ele> + <time>2020-08-23T09:15:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901820" lon="0.5723880"> + <ele>2032.2</ele> + <time>2020-08-23T09:15:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5901990" lon="0.5723930"> + <ele>2032.0</ele> + <time>2020-08-23T09:15:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902130" lon="0.5723940"> + <ele>2032.0</ele> + <time>2020-08-23T09:15:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902250" lon="0.5724010"> + <ele>2032.0</ele> + <time>2020-08-23T09:15:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902380" lon="0.5724170"> + <ele>2031.8</ele> + <time>2020-08-23T09:15:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902540" lon="0.5724440"> + <ele>2031.8</ele> + <time>2020-08-23T09:15:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902720" lon="0.5724710"> + <ele>2031.8</ele> + <time>2020-08-23T09:15:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5902930" lon="0.5724950"> + <ele>2031.6</ele> + <time>2020-08-23T09:15:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903090" lon="0.5725160"> + <ele>2031.4</ele> + <time>2020-08-23T09:15:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903250" lon="0.5725420"> + <ele>2031.2</ele> + <time>2020-08-23T09:15:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903490" lon="0.5725710"> + <ele>2031.2</ele> + <time>2020-08-23T09:15:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903750" lon="0.5725930"> + <ele>2031.0</ele> + <time>2020-08-23T09:15:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5903980" lon="0.5726030"> + <ele>2030.8</ele> + <time>2020-08-23T09:15:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904170" lon="0.5725990"> + <ele>2030.4</ele> + <time>2020-08-23T09:15:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904310" lon="0.5725840"> + <ele>2030.0</ele> + <time>2020-08-23T09:15:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904430" lon="0.5725640"> + <ele>2029.4</ele> + <time>2020-08-23T09:15:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904500" lon="0.5725460"> + <ele>2029.2</ele> + <time>2020-08-23T09:15:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904550" lon="0.5725320"> + <ele>2028.8</ele> + <time>2020-08-23T09:15:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904540" lon="0.5725140"> + <ele>2028.4</ele> + <time>2020-08-23T09:15:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904520" lon="0.5724900"> + <ele>2027.8</ele> + <time>2020-08-23T09:15:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904530" lon="0.5724620"> + <ele>2027.4</ele> + <time>2020-08-23T09:15:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904590" lon="0.5724420"> + <ele>2027.2</ele> + <time>2020-08-23T09:15:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904660" lon="0.5724260"> + <ele>2027.0</ele> + <time>2020-08-23T09:15:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904740" lon="0.5724080"> + <ele>2027.0</ele> + <time>2020-08-23T09:15:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904820" lon="0.5723910"> + <ele>2027.0</ele> + <time>2020-08-23T09:15:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904900" lon="0.5723780"> + <ele>2027.0</ele> + <time>2020-08-23T09:15:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5904950" lon="0.5723620"> + <ele>2027.0</ele> + <time>2020-08-23T09:15:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905010" lon="0.5723470"> + <ele>2027.0</ele> + <time>2020-08-23T09:15:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905070" lon="0.5723330"> + <ele>2027.0</ele> + <time>2020-08-23T09:15:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905110" lon="0.5723150"> + <ele>2027.0</ele> + <time>2020-08-23T09:15:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905150" lon="0.5723020"> + <ele>2027.0</ele> + <time>2020-08-23T09:15:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905160" lon="0.5723010"> + <ele>2027.0</ele> + <time>2020-08-23T09:15:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905690" lon="0.5714250"> + <ele>2035.6</ele> + <time>2020-08-23T09:17:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905780" lon="0.5714130"> + <ele>2035.6</ele> + <time>2020-08-23T09:17:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905860" lon="0.5714030"> + <ele>2035.8</ele> + <time>2020-08-23T09:17:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5905930" lon="0.5713930"> + <ele>2035.8</ele> + <time>2020-08-23T09:17:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906000" lon="0.5713830"> + <ele>2035.8</ele> + <time>2020-08-23T09:17:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906090" lon="0.5713730"> + <ele>2036.0</ele> + <time>2020-08-23T09:17:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906170" lon="0.5713650"> + <ele>2036.0</ele> + <time>2020-08-23T09:17:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906230" lon="0.5713600"> + <ele>2036.0</ele> + <time>2020-08-23T09:17:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906310" lon="0.5713480"> + <ele>2036.0</ele> + <time>2020-08-23T09:17:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906380" lon="0.5713370"> + <ele>2036.0</ele> + <time>2020-08-23T09:17:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906460" lon="0.5713280"> + <ele>2036.2</ele> + <time>2020-08-23T09:17:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906500" lon="0.5713220"> + <ele>2036.2</ele> + <time>2020-08-23T09:17:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906570" lon="0.5713120"> + <ele>2036.2</ele> + <time>2020-08-23T09:17:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906630" lon="0.5713010"> + <ele>2036.4</ele> + <time>2020-08-23T09:17:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906690" lon="0.5712910"> + <ele>2036.4</ele> + <time>2020-08-23T09:17:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906760" lon="0.5712790"> + <ele>2036.4</ele> + <time>2020-08-23T09:17:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906820" lon="0.5712660"> + <ele>2036.4</ele> + <time>2020-08-23T09:17:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906880" lon="0.5712550"> + <ele>2036.6</ele> + <time>2020-08-23T09:17:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5906950" lon="0.5712450"> + <ele>2036.6</ele> + <time>2020-08-23T09:17:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907000" lon="0.5712350"> + <ele>2036.6</ele> + <time>2020-08-23T09:17:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907060" lon="0.5712260"> + <ele>2036.6</ele> + <time>2020-08-23T09:17:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907140" lon="0.5712160"> + <ele>2036.8</ele> + <time>2020-08-23T09:17:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907240" lon="0.5712060"> + <ele>2036.8</ele> + <time>2020-08-23T09:17:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907330" lon="0.5711950"> + <ele>2037.0</ele> + <time>2020-08-23T09:17:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907410" lon="0.5711850"> + <ele>2037.0</ele> + <time>2020-08-23T09:17:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907480" lon="0.5711760"> + <ele>2037.2</ele> + <time>2020-08-23T09:17:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907560" lon="0.5711690"> + <ele>2037.2</ele> + <time>2020-08-23T09:17:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907630" lon="0.5711610"> + <ele>2037.6</ele> + <time>2020-08-23T09:17:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907720" lon="0.5711540"> + <ele>2037.8</ele> + <time>2020-08-23T09:17:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907810" lon="0.5711500"> + <ele>2037.8</ele> + <time>2020-08-23T09:17:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907890" lon="0.5711500"> + <ele>2038.0</ele> + <time>2020-08-23T09:17:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5907970" lon="0.5711500"> + <ele>2038.0</ele> + <time>2020-08-23T09:17:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5908060" lon="0.5711500"> + <ele>2038.0</ele> + <time>2020-08-23T09:17:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5908120" lon="0.5711480"> + <ele>2038.2</ele> + <time>2020-08-23T09:17:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5908140" lon="0.5711480"> + <ele>2038.2</ele> + <time>2020-08-23T09:17:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5908580" lon="0.5711330"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5908760" lon="0.5711280"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5908950" lon="0.5711240"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909110" lon="0.5711200"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909230" lon="0.5711150"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909280" lon="0.5711110"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909350" lon="0.5711100"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909510" lon="0.5711070"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909680" lon="0.5710990"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5909870" lon="0.5710880"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910090" lon="0.5710760"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910300" lon="0.5710610"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910460" lon="0.5710350"> + <ele>2038.6</ele> + <time>2020-08-23T09:17:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910530" lon="0.5710070"> + <ele>2038.4</ele> + <time>2020-08-23T09:17:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910540" lon="0.5709790"> + <ele>2038.4</ele> + <time>2020-08-23T09:17:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910500" lon="0.5709480"> + <ele>2038.2</ele> + <time>2020-08-23T09:17:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910410" lon="0.5709150"> + <ele>2038.2</ele> + <time>2020-08-23T09:17:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910330" lon="0.5708780"> + <ele>2038.2</ele> + <time>2020-08-23T09:18:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910280" lon="0.5708390"> + <ele>2038.0</ele> + <time>2020-08-23T09:18:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910300" lon="0.5708030"> + <ele>2037.8</ele> + <time>2020-08-23T09:18:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910390" lon="0.5707700"> + <ele>2037.8</ele> + <time>2020-08-23T09:18:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910540" lon="0.5707450"> + <ele>2037.8</ele> + <time>2020-08-23T09:18:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910700" lon="0.5707230"> + <ele>2037.8</ele> + <time>2020-08-23T09:18:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5910880" lon="0.5706970"> + <ele>2037.4</ele> + <time>2020-08-23T09:18:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911070" lon="0.5706650"> + <ele>2037.2</ele> + <time>2020-08-23T09:18:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911270" lon="0.5706210"> + <ele>2037.0</ele> + <time>2020-08-23T09:18:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911380" lon="0.5705690"> + <ele>2037.0</ele> + <time>2020-08-23T09:18:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911360" lon="0.5705180"> + <ele>2036.8</ele> + <time>2020-08-23T09:18:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911310" lon="0.5704710"> + <ele>2036.8</ele> + <time>2020-08-23T09:18:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911260" lon="0.5704220"> + <ele>2036.8</ele> + <time>2020-08-23T09:18:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911240" lon="0.5703700"> + <ele>2036.6</ele> + <time>2020-08-23T09:18:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911270" lon="0.5703200"> + <ele>2036.4</ele> + <time>2020-08-23T09:18:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911390" lon="0.5702730"> + <ele>2036.2</ele> + <time>2020-08-23T09:18:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911570" lon="0.5702320"> + <ele>2035.8</ele> + <time>2020-08-23T09:18:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5911810" lon="0.5701950"> + <ele>2035.8</ele> + <time>2020-08-23T09:18:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912080" lon="0.5701590"> + <ele>2035.2</ele> + <time>2020-08-23T09:18:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912370" lon="0.5701150"> + <ele>2035.0</ele> + <time>2020-08-23T09:18:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912660" lon="0.5700640"> + <ele>2034.8</ele> + <time>2020-08-23T09:18:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912900" lon="0.5700170"> + <ele>2034.6</ele> + <time>2020-08-23T09:18:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912960" lon="0.5699710"> + <ele>2034.4</ele> + <time>2020-08-23T09:18:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913000" lon="0.5699300"> + <ele>2034.4</ele> + <time>2020-08-23T09:18:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913030" lon="0.5698850"> + <ele>2034.4</ele> + <time>2020-08-23T09:18:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913070" lon="0.5698350"> + <ele>2034.2</ele> + <time>2020-08-23T09:18:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913100" lon="0.5697820"> + <ele>2034.2</ele> + <time>2020-08-23T09:18:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913150" lon="0.5697290"> + <ele>2033.8</ele> + <time>2020-08-23T09:18:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913200" lon="0.5696820"> + <ele>2033.6</ele> + <time>2020-08-23T09:18:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913160" lon="0.5696460"> + <ele>2033.4</ele> + <time>2020-08-23T09:18:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913100" lon="0.5696150"> + <ele>2033.2</ele> + <time>2020-08-23T09:18:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913030" lon="0.5695810"> + <ele>2033.0</ele> + <time>2020-08-23T09:18:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912950" lon="0.5695410"> + <ele>2033.0</ele> + <time>2020-08-23T09:18:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912900" lon="0.5694980"> + <ele>2032.8</ele> + <time>2020-08-23T09:18:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912820" lon="0.5694510"> + <ele>2032.8</ele> + <time>2020-08-23T09:18:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912760" lon="0.5694000"> + <ele>2032.4</ele> + <time>2020-08-23T09:18:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912690" lon="0.5693480"> + <ele>2032.0</ele> + <time>2020-08-23T09:18:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912590" lon="0.5693040"> + <ele>2031.8</ele> + <time>2020-08-23T09:18:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912520" lon="0.5692640"> + <ele>2031.6</ele> + <time>2020-08-23T09:18:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912470" lon="0.5692250"> + <ele>2031.4</ele> + <time>2020-08-23T09:18:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912450" lon="0.5691890"> + <ele>2031.2</ele> + <time>2020-08-23T09:18:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912430" lon="0.5691500"> + <ele>2031.0</ele> + <time>2020-08-23T09:18:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912380" lon="0.5691100"> + <ele>2030.8</ele> + <time>2020-08-23T09:18:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912310" lon="0.5690710"> + <ele>2030.6</ele> + <time>2020-08-23T09:18:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912240" lon="0.5690310"> + <ele>2030.6</ele> + <time>2020-08-23T09:18:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912170" lon="0.5689890"> + <ele>2030.4</ele> + <time>2020-08-23T09:18:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912100" lon="0.5689410"> + <ele>2030.2</ele> + <time>2020-08-23T09:18:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912060" lon="0.5688910"> + <ele>2029.8</ele> + <time>2020-08-23T09:18:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912080" lon="0.5688410"> + <ele>2029.6</ele> + <time>2020-08-23T09:18:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912140" lon="0.5688030"> + <ele>2029.4</ele> + <time>2020-08-23T09:18:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912220" lon="0.5687750"> + <ele>2029.2</ele> + <time>2020-08-23T09:18:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912300" lon="0.5687600"> + <ele>2029.0</ele> + <time>2020-08-23T09:18:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912330" lon="0.5687590"> + <ele>2029.0</ele> + <time>2020-08-23T09:18:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912330" lon="0.5687600"> + <ele>2028.8</ele> + <time>2020-08-23T09:18:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5912880" lon="0.5687080"> + <ele>2028.0</ele> + <time>2020-08-23T09:18:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913120" lon="0.5686920"> + <ele>2028.0</ele> + <time>2020-08-23T09:19:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913400" lon="0.5686770"> + <ele>2027.8</ele> + <time>2020-08-23T09:19:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5913720" lon="0.5686630"> + <ele>2027.8</ele> + <time>2020-08-23T09:19:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5914060" lon="0.5686470"> + <ele>2027.8</ele> + <time>2020-08-23T09:19:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5914400" lon="0.5686260"> + <ele>2027.6</ele> + <time>2020-08-23T09:19:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5914730" lon="0.5686050"> + <ele>2027.4</ele> + <time>2020-08-23T09:19:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5915060" lon="0.5685870"> + <ele>2027.4</ele> + <time>2020-08-23T09:19:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5915440" lon="0.5685730"> + <ele>2027.4</ele> + <time>2020-08-23T09:19:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5915810" lon="0.5685610"> + <ele>2027.2</ele> + <time>2020-08-23T09:19:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916190" lon="0.5685490"> + <ele>2027.0</ele> + <time>2020-08-23T09:19:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916570" lon="0.5685400"> + <ele>2026.8</ele> + <time>2020-08-23T09:19:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916960" lon="0.5685300"> + <ele>2026.4</ele> + <time>2020-08-23T09:19:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917350" lon="0.5685170"> + <ele>2026.0</ele> + <time>2020-08-23T09:19:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917750" lon="0.5685010"> + <ele>2025.6</ele> + <time>2020-08-23T09:19:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918100" lon="0.5684820"> + <ele>2025.2</ele> + <time>2020-08-23T09:19:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918430" lon="0.5684560"> + <ele>2025.0</ele> + <time>2020-08-23T09:19:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918800" lon="0.5684250"> + <ele>2024.8</ele> + <time>2020-08-23T09:19:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919190" lon="0.5683860"> + <ele>2024.6</ele> + <time>2020-08-23T09:19:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919570" lon="0.5683460"> + <ele>2024.4</ele> + <time>2020-08-23T09:19:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919980" lon="0.5683060"> + <ele>2024.2</ele> + <time>2020-08-23T09:19:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920350" lon="0.5682750"> + <ele>2024.0</ele> + <time>2020-08-23T09:19:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920620" lon="0.5682400"> + <ele>2023.8</ele> + <time>2020-08-23T09:19:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920900" lon="0.5682070"> + <ele>2023.8</ele> + <time>2020-08-23T09:19:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921120" lon="0.5681710"> + <ele>2023.2</ele> + <time>2020-08-23T09:19:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921360" lon="0.5681380"> + <ele>2022.8</ele> + <time>2020-08-23T09:19:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921520" lon="0.5681020"> + <ele>2022.6</ele> + <time>2020-08-23T09:19:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921650" lon="0.5680780"> + <ele>2022.4</ele> + <time>2020-08-23T09:19:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921730" lon="0.5680630"> + <ele>2022.2</ele> + <time>2020-08-23T09:19:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921760" lon="0.5680550"> + <ele>2022.0</ele> + <time>2020-08-23T09:19:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921770" lon="0.5680520"> + <ele>2022.0</ele> + <time>2020-08-23T09:19:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922070" lon="0.5679850"> + <ele>2021.0</ele> + <time>2020-08-23T09:19:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922280" lon="0.5679480"> + <ele>2020.6</ele> + <time>2020-08-23T09:19:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922480" lon="0.5679050"> + <ele>2020.4</ele> + <time>2020-08-23T09:19:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922720" lon="0.5678610"> + <ele>2020.4</ele> + <time>2020-08-23T09:19:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923000" lon="0.5678190"> + <ele>2020.2</ele> + <time>2020-08-23T09:19:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923320" lon="0.5677790"> + <ele>2020.2</ele> + <time>2020-08-23T09:19:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923620" lon="0.5677410"> + <ele>2020.0</ele> + <time>2020-08-23T09:19:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923870" lon="0.5677150"> + <ele>2020.0</ele> + <time>2020-08-23T09:19:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924070" lon="0.5677010"> + <ele>2019.8</ele> + <time>2020-08-23T09:19:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924250" lon="0.5676980"> + <ele>2019.2</ele> + <time>2020-08-23T09:19:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924380" lon="0.5677010"> + <ele>2018.6</ele> + <time>2020-08-23T09:19:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924520" lon="0.5677080"> + <ele>2018.4</ele> + <time>2020-08-23T09:19:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924650" lon="0.5677110"> + <ele>2017.2</ele> + <time>2020-08-23T09:19:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924730" lon="0.5677060"> + <ele>2016.8</ele> + <time>2020-08-23T09:19:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924770" lon="0.5677010"> + <ele>2016.4</ele> + <time>2020-08-23T09:19:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924790" lon="0.5677060"> + <ele>2016.2</ele> + <time>2020-08-23T09:19:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924770" lon="0.5677160"> + <ele>2016.0</ele> + <time>2020-08-23T09:19:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924030" lon="0.5674690"> + <ele>2006.6</ele> + <time>2020-08-23T09:21:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923840" lon="0.5674550"> + <ele>2006.6</ele> + <time>2020-08-23T09:21:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923650" lon="0.5674380"> + <ele>2006.6</ele> + <time>2020-08-23T09:21:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923430" lon="0.5674140"> + <ele>2006.6</ele> + <time>2020-08-23T09:21:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923220" lon="0.5673930"> + <ele>2006.6</ele> + <time>2020-08-23T09:21:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923090" lon="0.5673740"> + <ele>2006.6</ele> + <time>2020-08-23T09:21:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923020" lon="0.5673650"> + <ele>2006.4</ele> + <time>2020-08-23T09:21:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922980" lon="0.5673650"> + <ele>2006.2</ele> + <time>2020-08-23T09:21:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922960" lon="0.5673550"> + <ele>2006.2</ele> + <time>2020-08-23T09:21:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922910" lon="0.5673410"> + <ele>2006.2</ele> + <time>2020-08-23T09:21:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922880" lon="0.5673230"> + <ele>2006.0</ele> + <time>2020-08-23T09:21:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922840" lon="0.5673090"> + <ele>2006.0</ele> + <time>2020-08-23T09:21:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922770" lon="0.5672990"> + <ele>2006.0</ele> + <time>2020-08-23T09:21:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922700" lon="0.5672860"> + <ele>2006.0</ele> + <time>2020-08-23T09:21:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922640" lon="0.5672740"> + <ele>2006.0</ele> + <time>2020-08-23T09:21:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922610" lon="0.5672640"> + <ele>2006.0</ele> + <time>2020-08-23T09:21:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922590" lon="0.5672610"> + <ele>2006.0</ele> + <time>2020-08-23T09:21:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922550" lon="0.5672510"> + <ele>2006.2</ele> + <time>2020-08-23T09:21:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922530" lon="0.5672430"> + <ele>2006.4</ele> + <time>2020-08-23T09:21:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922500" lon="0.5672330"> + <ele>2006.6</ele> + <time>2020-08-23T09:21:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922480" lon="0.5672250"> + <ele>2007.0</ele> + <time>2020-08-23T09:21:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922440" lon="0.5672130"> + <ele>2007.0</ele> + <time>2020-08-23T09:21:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922390" lon="0.5672030"> + <ele>2007.2</ele> + <time>2020-08-23T09:21:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922350" lon="0.5671900"> + <ele>2007.2</ele> + <time>2020-08-23T09:21:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922300" lon="0.5671790"> + <ele>2007.4</ele> + <time>2020-08-23T09:21:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922280" lon="0.5671740"> + <ele>2007.8</ele> + <time>2020-08-23T09:21:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922230" lon="0.5671630"> + <ele>2008.2</ele> + <time>2020-08-23T09:21:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922170" lon="0.5671530"> + <ele>2008.4</ele> + <time>2020-08-23T09:21:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922160" lon="0.5671470"> + <ele>2008.4</ele> + <time>2020-08-23T09:21:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922130" lon="0.5671390"> + <ele>2008.6</ele> + <time>2020-08-23T09:21:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922150" lon="0.5671360"> + <ele>2008.8</ele> + <time>2020-08-23T09:21:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922190" lon="0.5671330"> + <ele>2009.2</ele> + <time>2020-08-23T09:21:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922260" lon="0.5671300"> + <ele>2009.4</ele> + <time>2020-08-23T09:21:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922320" lon="0.5671260"> + <ele>2009.6</ele> + <time>2020-08-23T09:21:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922390" lon="0.5671220"> + <ele>2010.0</ele> + <time>2020-08-23T09:21:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922430" lon="0.5671170"> + <ele>2010.2</ele> + <time>2020-08-23T09:21:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922480" lon="0.5671130"> + <ele>2010.4</ele> + <time>2020-08-23T09:21:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922520" lon="0.5671100"> + <ele>2010.6</ele> + <time>2020-08-23T09:21:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922540" lon="0.5671090"> + <ele>2010.6</ele> + <time>2020-08-23T09:21:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922130" lon="0.5669480"> + <ele>2013.0</ele> + <time>2020-08-23T09:22:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922110" lon="0.5669190"> + <ele>2012.8</ele> + <time>2020-08-23T09:22:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922090" lon="0.5668900"> + <ele>2012.8</ele> + <time>2020-08-23T09:22:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922040" lon="0.5668600"> + <ele>2012.8</ele> + <time>2020-08-23T09:22:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921970" lon="0.5668300"> + <ele>2012.8</ele> + <time>2020-08-23T09:22:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921900" lon="0.5667980"> + <ele>2012.8</ele> + <time>2020-08-23T09:22:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921830" lon="0.5667630"> + <ele>2012.8</ele> + <time>2020-08-23T09:22:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921770" lon="0.5667270"> + <ele>2012.8</ele> + <time>2020-08-23T09:22:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921720" lon="0.5666910"> + <ele>2012.8</ele> + <time>2020-08-23T09:22:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921680" lon="0.5666570"> + <ele>2012.6</ele> + <time>2020-08-23T09:22:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921630" lon="0.5666220"> + <ele>2012.6</ele> + <time>2020-08-23T09:22:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921570" lon="0.5665830"> + <ele>2012.6</ele> + <time>2020-08-23T09:22:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921550" lon="0.5665450"> + <ele>2012.6</ele> + <time>2020-08-23T09:22:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921520" lon="0.5665070"> + <ele>2012.8</ele> + <time>2020-08-23T09:22:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921500" lon="0.5664670"> + <ele>2012.6</ele> + <time>2020-08-23T09:22:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921480" lon="0.5664240"> + <ele>2012.6</ele> + <time>2020-08-23T09:22:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921460" lon="0.5663820"> + <ele>2012.4</ele> + <time>2020-08-23T09:22:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921440" lon="0.5663410"> + <ele>2012.4</ele> + <time>2020-08-23T09:22:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921430" lon="0.5662980"> + <ele>2012.4</ele> + <time>2020-08-23T09:22:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921410" lon="0.5662540"> + <ele>2012.4</ele> + <time>2020-08-23T09:22:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921360" lon="0.5662100"> + <ele>2012.2</ele> + <time>2020-08-23T09:22:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921330" lon="0.5661680"> + <ele>2012.2</ele> + <time>2020-08-23T09:22:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921290" lon="0.5661270"> + <ele>2012.0</ele> + <time>2020-08-23T09:22:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921230" lon="0.5660900"> + <ele>2011.8</ele> + <time>2020-08-23T09:22:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921160" lon="0.5660510"> + <ele>2011.8</ele> + <time>2020-08-23T09:22:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921080" lon="0.5660110"> + <ele>2011.8</ele> + <time>2020-08-23T09:22:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921010" lon="0.5659700"> + <ele>2011.6</ele> + <time>2020-08-23T09:22:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920960" lon="0.5659280"> + <ele>2011.4</ele> + <time>2020-08-23T09:22:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920900" lon="0.5658850"> + <ele>2011.4</ele> + <time>2020-08-23T09:22:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920830" lon="0.5658360"> + <ele>2011.2</ele> + <time>2020-08-23T09:22:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920790" lon="0.5657860"> + <ele>2011.2</ele> + <time>2020-08-23T09:22:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920800" lon="0.5657360"> + <ele>2011.2</ele> + <time>2020-08-23T09:22:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920790" lon="0.5656860"> + <ele>2011.0</ele> + <time>2020-08-23T09:22:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920760" lon="0.5656370"> + <ele>2011.0</ele> + <time>2020-08-23T09:22:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920700" lon="0.5655900"> + <ele>2010.6</ele> + <time>2020-08-23T09:22:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920620" lon="0.5655440"> + <ele>2010.6</ele> + <time>2020-08-23T09:22:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920550" lon="0.5654980"> + <ele>2010.4</ele> + <time>2020-08-23T09:22:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920480" lon="0.5654550"> + <ele>2010.4</ele> + <time>2020-08-23T09:22:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920430" lon="0.5654110"> + <ele>2010.4</ele> + <time>2020-08-23T09:22:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920410" lon="0.5653670"> + <ele>2010.4</ele> + <time>2020-08-23T09:22:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920380" lon="0.5653270"> + <ele>2010.0</ele> + <time>2020-08-23T09:22:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920330" lon="0.5652940"> + <ele>2009.8</ele> + <time>2020-08-23T09:22:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920250" lon="0.5652610"> + <ele>2009.8</ele> + <time>2020-08-23T09:22:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920220" lon="0.5652290"> + <ele>2009.8</ele> + <time>2020-08-23T09:22:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920160" lon="0.5651950"> + <ele>2009.6</ele> + <time>2020-08-23T09:22:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920120" lon="0.5651590"> + <ele>2009.6</ele> + <time>2020-08-23T09:22:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920040" lon="0.5651250"> + <ele>2009.4</ele> + <time>2020-08-23T09:22:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919940" lon="0.5650880"> + <ele>2009.4</ele> + <time>2020-08-23T09:22:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919820" lon="0.5650590"> + <ele>2009.2</ele> + <time>2020-08-23T09:22:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919670" lon="0.5650320"> + <ele>2009.2</ele> + <time>2020-08-23T09:22:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919580" lon="0.5649950"> + <ele>2009.2</ele> + <time>2020-08-23T09:23:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919530" lon="0.5649600"> + <ele>2009.2</ele> + <time>2020-08-23T09:23:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919480" lon="0.5649130"> + <ele>2008.8</ele> + <time>2020-08-23T09:23:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919400" lon="0.5648670"> + <ele>2008.8</ele> + <time>2020-08-23T09:23:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919360" lon="0.5648230"> + <ele>2008.8</ele> + <time>2020-08-23T09:23:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919330" lon="0.5647790"> + <ele>2008.6</ele> + <time>2020-08-23T09:23:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919310" lon="0.5647280"> + <ele>2008.2</ele> + <time>2020-08-23T09:23:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919260" lon="0.5646780"> + <ele>2008.0</ele> + <time>2020-08-23T09:23:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919260" lon="0.5646290"> + <ele>2007.8</ele> + <time>2020-08-23T09:23:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919220" lon="0.5645850"> + <ele>2007.8</ele> + <time>2020-08-23T09:23:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919120" lon="0.5645380"> + <ele>2007.6</ele> + <time>2020-08-23T09:23:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919020" lon="0.5644870"> + <ele>2007.4</ele> + <time>2020-08-23T09:23:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918940" lon="0.5644370"> + <ele>2007.0</ele> + <time>2020-08-23T09:23:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918860" lon="0.5643870"> + <ele>2006.8</ele> + <time>2020-08-23T09:23:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918810" lon="0.5643290"> + <ele>2006.8</ele> + <time>2020-08-23T09:23:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918800" lon="0.5642650"> + <ele>2006.6</ele> + <time>2020-08-23T09:23:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918760" lon="0.5641970"> + <ele>2006.6</ele> + <time>2020-08-23T09:23:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918750" lon="0.5641360"> + <ele>2006.4</ele> + <time>2020-08-23T09:23:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918800" lon="0.5640810"> + <ele>2006.2</ele> + <time>2020-08-23T09:23:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918770" lon="0.5640320"> + <ele>2006.2</ele> + <time>2020-08-23T09:23:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918770" lon="0.5639800"> + <ele>2006.0</ele> + <time>2020-08-23T09:23:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918740" lon="0.5639250"> + <ele>2005.8</ele> + <time>2020-08-23T09:23:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918770" lon="0.5638690"> + <ele>2005.6</ele> + <time>2020-08-23T09:23:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918830" lon="0.5638140"> + <ele>2005.6</ele> + <time>2020-08-23T09:23:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918880" lon="0.5637620"> + <ele>2005.4</ele> + <time>2020-08-23T09:23:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918930" lon="0.5637070"> + <ele>2005.2</ele> + <time>2020-08-23T09:23:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918970" lon="0.5636470"> + <ele>2005.2</ele> + <time>2020-08-23T09:23:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919050" lon="0.5635920"> + <ele>2005.2</ele> + <time>2020-08-23T09:23:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919130" lon="0.5635390"> + <ele>2005.0</ele> + <time>2020-08-23T09:23:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919170" lon="0.5634840"> + <ele>2005.0</ele> + <time>2020-08-23T09:23:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919200" lon="0.5634170"> + <ele>2005.0</ele> + <time>2020-08-23T09:23:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919260" lon="0.5633560"> + <ele>2005.0</ele> + <time>2020-08-23T09:23:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919410" lon="0.5632990"> + <ele>2004.8</ele> + <time>2020-08-23T09:23:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919540" lon="0.5632500"> + <ele>2004.8</ele> + <time>2020-08-23T09:23:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919710" lon="0.5631950"> + <ele>2004.6</ele> + <time>2020-08-23T09:23:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919890" lon="0.5631480"> + <ele>2004.4</ele> + <time>2020-08-23T09:23:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920070" lon="0.5631030"> + <ele>2004.0</ele> + <time>2020-08-23T09:23:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920260" lon="0.5630570"> + <ele>2003.6</ele> + <time>2020-08-23T09:23:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920480" lon="0.5630150"> + <ele>2003.4</ele> + <time>2020-08-23T09:23:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920720" lon="0.5629720"> + <ele>2003.0</ele> + <time>2020-08-23T09:23:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920940" lon="0.5629270"> + <ele>2003.0</ele> + <time>2020-08-23T09:23:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921170" lon="0.5628850"> + <ele>2002.8</ele> + <time>2020-08-23T09:23:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921460" lon="0.5628390"> + <ele>2002.6</ele> + <time>2020-08-23T09:23:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921620" lon="0.5627810"> + <ele>2002.4</ele> + <time>2020-08-23T09:23:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921770" lon="0.5627190"> + <ele>2002.2</ele> + <time>2020-08-23T09:23:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921900" lon="0.5626410"> + <ele>2002.0</ele> + <time>2020-08-23T09:23:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922070" lon="0.5625790"> + <ele>2002.0</ele> + <time>2020-08-23T09:23:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922320" lon="0.5625210"> + <ele>2002.0</ele> + <time>2020-08-23T09:23:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922530" lon="0.5624460"> + <ele>2001.8</ele> + <time>2020-08-23T09:23:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922640" lon="0.5623490"> + <ele>2001.6</ele> + <time>2020-08-23T09:23:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922800" lon="0.5622600"> + <ele>2001.6</ele> + <time>2020-08-23T09:23:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922890" lon="0.5621780"> + <ele>2001.2</ele> + <time>2020-08-23T09:23:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923050" lon="0.5620970"> + <ele>2000.8</ele> + <time>2020-08-23T09:23:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923200" lon="0.5620250"> + <ele>2000.6</ele> + <time>2020-08-23T09:23:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923290" lon="0.5619510"> + <ele>2000.4</ele> + <time>2020-08-23T09:23:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923410" lon="0.5618670"> + <ele>1999.8</ele> + <time>2020-08-23T09:23:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923510" lon="0.5617950"> + <ele>1999.4</ele> + <time>2020-08-23T09:23:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923600" lon="0.5617340"> + <ele>1998.8</ele> + <time>2020-08-23T09:23:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923670" lon="0.5616750"> + <ele>1998.2</ele> + <time>2020-08-23T09:23:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923690" lon="0.5616170"> + <ele>1998.0</ele> + <time>2020-08-23T09:23:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923720" lon="0.5615520"> + <ele>1997.8</ele> + <time>2020-08-23T09:24:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923730" lon="0.5614890"> + <ele>1997.6</ele> + <time>2020-08-23T09:24:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923800" lon="0.5614190"> + <ele>1997.6</ele> + <time>2020-08-23T09:24:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923860" lon="0.5613510"> + <ele>1997.4</ele> + <time>2020-08-23T09:24:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923920" lon="0.5612840"> + <ele>1997.4</ele> + <time>2020-08-23T09:24:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923950" lon="0.5612180"> + <ele>1997.2</ele> + <time>2020-08-23T09:24:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924020" lon="0.5611570"> + <ele>1997.0</ele> + <time>2020-08-23T09:24:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924070" lon="0.5610900"> + <ele>1997.0</ele> + <time>2020-08-23T09:24:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924120" lon="0.5610220"> + <ele>1996.8</ele> + <time>2020-08-23T09:24:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924150" lon="0.5609560"> + <ele>1996.8</ele> + <time>2020-08-23T09:24:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924200" lon="0.5608930"> + <ele>1996.8</ele> + <time>2020-08-23T09:24:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924270" lon="0.5608320"> + <ele>1996.6</ele> + <time>2020-08-23T09:24:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924350" lon="0.5607750"> + <ele>1996.2</ele> + <time>2020-08-23T09:24:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924400" lon="0.5607190"> + <ele>1996.0</ele> + <time>2020-08-23T09:24:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924480" lon="0.5606650"> + <ele>1995.8</ele> + <time>2020-08-23T09:24:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>21</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924560" lon="0.5606100"> + <ele>1995.8</ele> + <time>2020-08-23T09:24:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924650" lon="0.5605550"> + <ele>1995.4</ele> + <time>2020-08-23T09:24:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924780" lon="0.5605040"> + <ele>1995.4</ele> + <time>2020-08-23T09:24:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924950" lon="0.5604520"> + <ele>1995.4</ele> + <time>2020-08-23T09:24:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925130" lon="0.5604050"> + <ele>1995.4</ele> + <time>2020-08-23T09:24:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925330" lon="0.5603580"> + <ele>1995.0</ele> + <time>2020-08-23T09:24:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925500" lon="0.5603150"> + <ele>1995.0</ele> + <time>2020-08-23T09:24:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925660" lon="0.5602740"> + <ele>1995.0</ele> + <time>2020-08-23T09:24:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925830" lon="0.5602320"> + <ele>1995.0</ele> + <time>2020-08-23T09:24:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926040" lon="0.5601920"> + <ele>1994.6</ele> + <time>2020-08-23T09:24:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926280" lon="0.5601520"> + <ele>1994.6</ele> + <time>2020-08-23T09:24:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926520" lon="0.5601100"> + <ele>1994.4</ele> + <time>2020-08-23T09:24:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926820" lon="0.5600700"> + <ele>1994.4</ele> + <time>2020-08-23T09:24:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927180" lon="0.5600360"> + <ele>1994.4</ele> + <time>2020-08-23T09:24:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927510" lon="0.5599980"> + <ele>1994.4</ele> + <time>2020-08-23T09:24:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927710" lon="0.5599520"> + <ele>1994.4</ele> + <time>2020-08-23T09:24:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927890" lon="0.5599070"> + <ele>1994.2</ele> + <time>2020-08-23T09:24:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928100" lon="0.5598660"> + <ele>1994.2</ele> + <time>2020-08-23T09:24:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928360" lon="0.5598230"> + <ele>1994.2</ele> + <time>2020-08-23T09:24:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928580" lon="0.5597730"> + <ele>1994.2</ele> + <time>2020-08-23T09:24:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928690" lon="0.5597230"> + <ele>1994.0</ele> + <time>2020-08-23T09:24:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928730" lon="0.5596710"> + <ele>1993.8</ele> + <time>2020-08-23T09:24:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928780" lon="0.5596220"> + <ele>1993.4</ele> + <time>2020-08-23T09:24:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928840" lon="0.5595690"> + <ele>1993.2</ele> + <time>2020-08-23T09:24:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928910" lon="0.5595160"> + <ele>1993.0</ele> + <time>2020-08-23T09:24:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928950" lon="0.5594610"> + <ele>1993.0</ele> + <time>2020-08-23T09:24:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928970" lon="0.5594040"> + <ele>1992.8</ele> + <time>2020-08-23T09:24:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929000" lon="0.5593460"> + <ele>1992.4</ele> + <time>2020-08-23T09:24:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929050" lon="0.5592870"> + <ele>1992.2</ele> + <time>2020-08-23T09:24:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929110" lon="0.5592280"> + <ele>1992.2</ele> + <time>2020-08-23T09:24:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929140" lon="0.5591730"> + <ele>1992.0</ele> + <time>2020-08-23T09:24:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929220" lon="0.5591220"> + <ele>1992.0</ele> + <time>2020-08-23T09:24:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929330" lon="0.5590660"> + <ele>1991.8</ele> + <time>2020-08-23T09:24:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929440" lon="0.5590110"> + <ele>1991.6</ele> + <time>2020-08-23T09:24:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929570" lon="0.5589560"> + <ele>1991.2</ele> + <time>2020-08-23T09:24:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929610" lon="0.5589000"> + <ele>1991.0</ele> + <time>2020-08-23T09:24:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929640" lon="0.5588460"> + <ele>1991.0</ele> + <time>2020-08-23T09:24:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929700" lon="0.5587970"> + <ele>1990.8</ele> + <time>2020-08-23T09:24:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929750" lon="0.5587490"> + <ele>1990.8</ele> + <time>2020-08-23T09:24:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929810" lon="0.5587070"> + <ele>1990.8</ele> + <time>2020-08-23T09:24:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929910" lon="0.5586690"> + <ele>1990.8</ele> + <time>2020-08-23T09:24:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930010" lon="0.5586340"> + <ele>1990.6</ele> + <time>2020-08-23T09:24:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930090" lon="0.5586000"> + <ele>1990.6</ele> + <time>2020-08-23T09:24:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930200" lon="0.5585680"> + <ele>1990.6</ele> + <time>2020-08-23T09:24:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930320" lon="0.5585360"> + <ele>1990.4</ele> + <time>2020-08-23T09:24:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930490" lon="0.5585110"> + <ele>1990.2</ele> + <time>2020-08-23T09:25:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930730" lon="0.5584840"> + <ele>1990.0</ele> + <time>2020-08-23T09:25:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930980" lon="0.5584460"> + <ele>1990.0</ele> + <time>2020-08-23T09:25:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931220" lon="0.5584070"> + <ele>1989.8</ele> + <time>2020-08-23T09:25:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931390" lon="0.5583690"> + <ele>1989.8</ele> + <time>2020-08-23T09:25:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931550" lon="0.5583290"> + <ele>1989.6</ele> + <time>2020-08-23T09:25:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931720" lon="0.5582860"> + <ele>1989.6</ele> + <time>2020-08-23T09:25:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931930" lon="0.5582470"> + <ele>1989.6</ele> + <time>2020-08-23T09:25:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932120" lon="0.5582150"> + <ele>1989.4</ele> + <time>2020-08-23T09:25:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932240" lon="0.5581860"> + <ele>1989.2</ele> + <time>2020-08-23T09:25:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932290" lon="0.5581500"> + <ele>1989.0</ele> + <time>2020-08-23T09:25:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932370" lon="0.5581160"> + <ele>1988.8</ele> + <time>2020-08-23T09:25:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932440" lon="0.5580800"> + <ele>1988.6</ele> + <time>2020-08-23T09:25:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932500" lon="0.5580410"> + <ele>1988.4</ele> + <time>2020-08-23T09:25:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932580" lon="0.5580090"> + <ele>1988.0</ele> + <time>2020-08-23T09:25:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932660" lon="0.5579840"> + <ele>1987.6</ele> + <time>2020-08-23T09:25:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932740" lon="0.5579570"> + <ele>1987.2</ele> + <time>2020-08-23T09:25:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932810" lon="0.5579280"> + <ele>1987.0</ele> + <time>2020-08-23T09:25:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932850" lon="0.5578980"> + <ele>1986.6</ele> + <time>2020-08-23T09:25:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932880" lon="0.5578600"> + <ele>1986.2</ele> + <time>2020-08-23T09:25:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932890" lon="0.5578170"> + <ele>1985.4</ele> + <time>2020-08-23T09:25:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932940" lon="0.5577740"> + <ele>1984.4</ele> + <time>2020-08-23T09:25:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932990" lon="0.5577400"> + <ele>1983.8</ele> + <time>2020-08-23T09:25:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933000" lon="0.5577060"> + <ele>1983.4</ele> + <time>2020-08-23T09:25:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932980" lon="0.5576740"> + <ele>1983.0</ele> + <time>2020-08-23T09:25:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932990" lon="0.5576390"> + <ele>1982.6</ele> + <time>2020-08-23T09:25:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933040" lon="0.5576110"> + <ele>1982.2</ele> + <time>2020-08-23T09:25:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933220" lon="0.5575880"> + <ele>1981.6</ele> + <time>2020-08-23T09:25:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933410" lon="0.5575600"> + <ele>1981.4</ele> + <time>2020-08-23T09:25:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933650" lon="0.5575440"> + <ele>1981.0</ele> + <time>2020-08-23T09:25:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933790" lon="0.5575320"> + <ele>1980.6</ele> + <time>2020-08-23T09:25:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933890" lon="0.5575220"> + <ele>1980.2</ele> + <time>2020-08-23T09:25:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933960" lon="0.5575160"> + <ele>1980.0</ele> + <time>2020-08-23T09:25:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>20</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934480" lon="0.5574310"> + <ele>1979.0</ele> + <time>2020-08-23T09:25:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934790" lon="0.5574050"> + <ele>1979.0</ele> + <time>2020-08-23T09:25:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935130" lon="0.5573740"> + <ele>1979.0</ele> + <time>2020-08-23T09:25:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935480" lon="0.5573580"> + <ele>1979.0</ele> + <time>2020-08-23T09:25:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935800" lon="0.5573390"> + <ele>1979.0</ele> + <time>2020-08-23T09:25:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936100" lon="0.5573170"> + <ele>1978.8</ele> + <time>2020-08-23T09:25:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936410" lon="0.5573050"> + <ele>1978.8</ele> + <time>2020-08-23T09:25:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936720" lon="0.5572830"> + <ele>1978.6</ele> + <time>2020-08-23T09:25:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937010" lon="0.5572540"> + <ele>1978.4</ele> + <time>2020-08-23T09:25:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937270" lon="0.5572210"> + <ele>1978.2</ele> + <time>2020-08-23T09:25:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937550" lon="0.5571880"> + <ele>1978.0</ele> + <time>2020-08-23T09:25:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937840" lon="0.5571610"> + <ele>1977.8</ele> + <time>2020-08-23T09:26:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938130" lon="0.5571330"> + <ele>1977.6</ele> + <time>2020-08-23T09:26:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938390" lon="0.5570940"> + <ele>1977.6</ele> + <time>2020-08-23T09:26:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938630" lon="0.5570660"> + <ele>1977.6</ele> + <time>2020-08-23T09:26:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938850" lon="0.5570360"> + <ele>1977.4</ele> + <time>2020-08-23T09:26:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939060" lon="0.5570010"> + <ele>1977.2</ele> + <time>2020-08-23T09:26:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939280" lon="0.5569620"> + <ele>1977.2</ele> + <time>2020-08-23T09:26:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939550" lon="0.5569250"> + <ele>1977.2</ele> + <time>2020-08-23T09:26:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939800" lon="0.5568810"> + <ele>1977.0</ele> + <time>2020-08-23T09:26:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940080" lon="0.5568470"> + <ele>1977.0</ele> + <time>2020-08-23T09:26:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940360" lon="0.5568150"> + <ele>1976.8</ele> + <time>2020-08-23T09:26:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940600" lon="0.5567820"> + <ele>1976.8</ele> + <time>2020-08-23T09:26:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940810" lon="0.5567490"> + <ele>1976.6</ele> + <time>2020-08-23T09:26:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941010" lon="0.5567150"> + <ele>1976.6</ele> + <time>2020-08-23T09:26:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941210" lon="0.5566830"> + <ele>1976.4</ele> + <time>2020-08-23T09:26:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941390" lon="0.5566610"> + <ele>1976.4</ele> + <time>2020-08-23T09:26:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941560" lon="0.5566370"> + <ele>1976.2</ele> + <time>2020-08-23T09:26:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941730" lon="0.5566110"> + <ele>1976.0</ele> + <time>2020-08-23T09:26:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941920" lon="0.5565770"> + <ele>1976.0</ele> + <time>2020-08-23T09:26:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942170" lon="0.5565430"> + <ele>1975.8</ele> + <time>2020-08-23T09:26:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942430" lon="0.5565100"> + <ele>1975.8</ele> + <time>2020-08-23T09:26:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942720" lon="0.5564800"> + <ele>1975.8</ele> + <time>2020-08-23T09:26:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942980" lon="0.5564510"> + <ele>1975.6</ele> + <time>2020-08-23T09:26:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943230" lon="0.5564220"> + <ele>1975.6</ele> + <time>2020-08-23T09:26:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943450" lon="0.5563970"> + <ele>1975.6</ele> + <time>2020-08-23T09:26:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943620" lon="0.5563640"> + <ele>1975.4</ele> + <time>2020-08-23T09:26:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943790" lon="0.5563280"> + <ele>1975.4</ele> + <time>2020-08-23T09:26:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943970" lon="0.5563080"> + <ele>1975.4</ele> + <time>2020-08-23T09:26:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5944150" lon="0.5562930"> + <ele>1975.4</ele> + <time>2020-08-23T09:26:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5944300" lon="0.5562720"> + <ele>1975.4</ele> + <time>2020-08-23T09:26:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5944440" lon="0.5562470"> + <ele>1975.4</ele> + <time>2020-08-23T09:26:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5944590" lon="0.5562150"> + <ele>1975.4</ele> + <time>2020-08-23T09:26:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5944760" lon="0.5561820"> + <ele>1975.2</ele> + <time>2020-08-23T09:26:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5944960" lon="0.5561480"> + <ele>1975.2</ele> + <time>2020-08-23T09:26:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5945200" lon="0.5561140"> + <ele>1975.2</ele> + <time>2020-08-23T09:26:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5945430" lon="0.5560790"> + <ele>1975.2</ele> + <time>2020-08-23T09:26:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5945680" lon="0.5560440"> + <ele>1975.0</ele> + <time>2020-08-23T09:26:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5945910" lon="0.5560050"> + <ele>1975.0</ele> + <time>2020-08-23T09:26:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5946130" lon="0.5559650"> + <ele>1975.0</ele> + <time>2020-08-23T09:26:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5946360" lon="0.5559280"> + <ele>1975.0</ele> + <time>2020-08-23T09:26:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5946590" lon="0.5558960"> + <ele>1974.8</ele> + <time>2020-08-23T09:26:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5946850" lon="0.5558650"> + <ele>1974.8</ele> + <time>2020-08-23T09:26:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5947070" lon="0.5558320"> + <ele>1974.8</ele> + <time>2020-08-23T09:26:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5947290" lon="0.5557980"> + <ele>1974.8</ele> + <time>2020-08-23T09:26:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5947530" lon="0.5557640"> + <ele>1974.8</ele> + <time>2020-08-23T09:26:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5947780" lon="0.5557310"> + <ele>1974.6</ele> + <time>2020-08-23T09:26:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5948050" lon="0.5557030"> + <ele>1974.6</ele> + <time>2020-08-23T09:26:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5948320" lon="0.5556710"> + <ele>1974.4</ele> + <time>2020-08-23T09:26:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5948630" lon="0.5556400"> + <ele>1974.2</ele> + <time>2020-08-23T09:26:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5948970" lon="0.5556040"> + <ele>1974.2</ele> + <time>2020-08-23T09:26:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5949300" lon="0.5555700"> + <ele>1974.0</ele> + <time>2020-08-23T09:26:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5949640" lon="0.5555360"> + <ele>1974.0</ele> + <time>2020-08-23T09:26:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5949950" lon="0.5555080"> + <ele>1973.8</ele> + <time>2020-08-23T09:26:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5950260" lon="0.5554850"> + <ele>1973.8</ele> + <time>2020-08-23T09:26:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5950580" lon="0.5554620"> + <ele>1973.6</ele> + <time>2020-08-23T09:26:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5950920" lon="0.5554340"> + <ele>1973.6</ele> + <time>2020-08-23T09:26:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5951230" lon="0.5554050"> + <ele>1973.4</ele> + <time>2020-08-23T09:26:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5951560" lon="0.5553770"> + <ele>1973.4</ele> + <time>2020-08-23T09:26:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5951870" lon="0.5553450"> + <ele>1973.4</ele> + <time>2020-08-23T09:26:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5952130" lon="0.5553140"> + <ele>1973.2</ele> + <time>2020-08-23T09:26:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5952430" lon="0.5552770"> + <ele>1973.2</ele> + <time>2020-08-23T09:27:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5952760" lon="0.5552420"> + <ele>1973.2</ele> + <time>2020-08-23T09:27:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5953040" lon="0.5552120"> + <ele>1973.0</ele> + <time>2020-08-23T09:27:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5953400" lon="0.5551860"> + <ele>1973.0</ele> + <time>2020-08-23T09:27:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5953730" lon="0.5551660"> + <ele>1972.8</ele> + <time>2020-08-23T09:27:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5954050" lon="0.5551520"> + <ele>1972.8</ele> + <time>2020-08-23T09:27:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5954470" lon="0.5551400"> + <ele>1972.8</ele> + <time>2020-08-23T09:27:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5954880" lon="0.5551340"> + <ele>1972.6</ele> + <time>2020-08-23T09:27:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5955220" lon="0.5551300"> + <ele>1972.4</ele> + <time>2020-08-23T09:27:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5955560" lon="0.5551240"> + <ele>1972.2</ele> + <time>2020-08-23T09:27:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5955900" lon="0.5551170"> + <ele>1972.0</ele> + <time>2020-08-23T09:27:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956230" lon="0.5551060"> + <ele>1971.8</ele> + <time>2020-08-23T09:27:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956600" lon="0.5550980"> + <ele>1971.8</ele> + <time>2020-08-23T09:27:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956930" lon="0.5550920"> + <ele>1971.8</ele> + <time>2020-08-23T09:27:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957310" lon="0.5550870"> + <ele>1971.8</ele> + <time>2020-08-23T09:27:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957650" lon="0.5550820"> + <ele>1971.8</ele> + <time>2020-08-23T09:27:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957980" lon="0.5550830"> + <ele>1971.8</ele> + <time>2020-08-23T09:27:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958290" lon="0.5550880"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958540" lon="0.5550950"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958810" lon="0.5551030"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959120" lon="0.5551150"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959420" lon="0.5551210"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959700" lon="0.5551230"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960030" lon="0.5551290"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960350" lon="0.5551260"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960720" lon="0.5551160"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5961090" lon="0.5551060"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5961510" lon="0.5551010"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5961810" lon="0.5550950"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5962190" lon="0.5550950"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5962510" lon="0.5550910"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5962840" lon="0.5550830"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963150" lon="0.5550680"> + <ele>1971.6</ele> + <time>2020-08-23T09:27:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963460" lon="0.5550440"> + <ele>1971.4</ele> + <time>2020-08-23T09:27:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963760" lon="0.5550240"> + <ele>1971.4</ele> + <time>2020-08-23T09:27:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964150" lon="0.5550050"> + <ele>1971.4</ele> + <time>2020-08-23T09:27:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964540" lon="0.5549940"> + <ele>1971.4</ele> + <time>2020-08-23T09:27:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964880" lon="0.5549820"> + <ele>1971.4</ele> + <time>2020-08-23T09:27:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965240" lon="0.5549720"> + <ele>1971.4</ele> + <time>2020-08-23T09:27:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965610" lon="0.5549610"> + <ele>1971.2</ele> + <time>2020-08-23T09:27:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965950" lon="0.5549560"> + <ele>1971.2</ele> + <time>2020-08-23T09:27:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966310" lon="0.5549530"> + <ele>1971.0</ele> + <time>2020-08-23T09:27:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966620" lon="0.5549470"> + <ele>1971.0</ele> + <time>2020-08-23T09:27:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966960" lon="0.5549410"> + <ele>1971.0</ele> + <time>2020-08-23T09:27:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967230" lon="0.5549280"> + <ele>1970.8</ele> + <time>2020-08-23T09:27:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967450" lon="0.5549140"> + <ele>1970.8</ele> + <time>2020-08-23T09:27:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967640" lon="0.5548960"> + <ele>1970.8</ele> + <time>2020-08-23T09:27:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967820" lon="0.5548740"> + <ele>1970.8</ele> + <time>2020-08-23T09:27:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968060" lon="0.5548480"> + <ele>1970.6</ele> + <time>2020-08-23T09:27:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968370" lon="0.5548170"> + <ele>1970.6</ele> + <time>2020-08-23T09:27:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968710" lon="0.5547900"> + <ele>1970.6</ele> + <time>2020-08-23T09:27:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969040" lon="0.5547710"> + <ele>1970.4</ele> + <time>2020-08-23T09:27:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969400" lon="0.5547600"> + <ele>1970.4</ele> + <time>2020-08-23T09:27:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969610" lon="0.5547520"> + <ele>1970.2</ele> + <time>2020-08-23T09:27:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969910" lon="0.5547410"> + <ele>1970.2</ele> + <time>2020-08-23T09:27:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970130" lon="0.5547270"> + <ele>1970.2</ele> + <time>2020-08-23T09:27:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970320" lon="0.5547050"> + <ele>1970.2</ele> + <time>2020-08-23T09:27:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970490" lon="0.5546890"> + <ele>1969.8</ele> + <time>2020-08-23T09:27:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970640" lon="0.5546690"> + <ele>1969.8</ele> + <time>2020-08-23T09:27:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970590" lon="0.5546460"> + <ele>1969.6</ele> + <time>2020-08-23T09:27:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970510" lon="0.5546260"> + <ele>1969.6</ele> + <time>2020-08-23T09:28:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970430" lon="0.5545920"> + <ele>1969.4</ele> + <time>2020-08-23T09:28:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970320" lon="0.5545590"> + <ele>1969.4</ele> + <time>2020-08-23T09:28:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970230" lon="0.5545210"> + <ele>1969.4</ele> + <time>2020-08-23T09:28:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970140" lon="0.5544820"> + <ele>1969.4</ele> + <time>2020-08-23T09:28:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970090" lon="0.5544450"> + <ele>1969.2</ele> + <time>2020-08-23T09:28:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970050" lon="0.5544050"> + <ele>1969.2</ele> + <time>2020-08-23T09:28:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970030" lon="0.5543660"> + <ele>1969.2</ele> + <time>2020-08-23T09:28:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970040" lon="0.5543320"> + <ele>1969.2</ele> + <time>2020-08-23T09:28:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970070" lon="0.5542950"> + <ele>1969.2</ele> + <time>2020-08-23T09:28:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970120" lon="0.5542590"> + <ele>1969.0</ele> + <time>2020-08-23T09:28:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970210" lon="0.5542160"> + <ele>1969.0</ele> + <time>2020-08-23T09:28:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970280" lon="0.5541760"> + <ele>1969.0</ele> + <time>2020-08-23T09:28:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970300" lon="0.5541320"> + <ele>1968.8</ele> + <time>2020-08-23T09:28:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970350" lon="0.5540780"> + <ele>1968.8</ele> + <time>2020-08-23T09:28:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970350" lon="0.5540280"> + <ele>1968.8</ele> + <time>2020-08-23T09:28:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970400" lon="0.5539900"> + <ele>1968.8</ele> + <time>2020-08-23T09:28:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970480" lon="0.5539510"> + <ele>1968.8</ele> + <time>2020-08-23T09:28:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970580" lon="0.5539000"> + <ele>1968.6</ele> + <time>2020-08-23T09:28:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970630" lon="0.5538610"> + <ele>1968.6</ele> + <time>2020-08-23T09:28:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970700" lon="0.5538240"> + <ele>1968.6</ele> + <time>2020-08-23T09:28:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970790" lon="0.5537850"> + <ele>1968.6</ele> + <time>2020-08-23T09:28:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970920" lon="0.5537360"> + <ele>1968.6</ele> + <time>2020-08-23T09:28:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971050" lon="0.5536840"> + <ele>1968.4</ele> + <time>2020-08-23T09:28:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971180" lon="0.5536290"> + <ele>1968.2</ele> + <time>2020-08-23T09:28:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971190" lon="0.5535770"> + <ele>1968.2</ele> + <time>2020-08-23T09:28:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971190" lon="0.5535290"> + <ele>1968.2</ele> + <time>2020-08-23T09:28:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971180" lon="0.5534710"> + <ele>1968.0</ele> + <time>2020-08-23T09:28:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971180" lon="0.5534080"> + <ele>1968.0</ele> + <time>2020-08-23T09:28:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971120" lon="0.5533500"> + <ele>1967.8</ele> + <time>2020-08-23T09:28:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971060" lon="0.5532990"> + <ele>1967.8</ele> + <time>2020-08-23T09:28:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971100" lon="0.5532380"> + <ele>1967.6</ele> + <time>2020-08-23T09:28:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971150" lon="0.5531820"> + <ele>1967.6</ele> + <time>2020-08-23T09:28:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971150" lon="0.5531330"> + <ele>1967.4</ele> + <time>2020-08-23T09:28:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971070" lon="0.5530800"> + <ele>1967.4</ele> + <time>2020-08-23T09:28:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971050" lon="0.5530330"> + <ele>1967.2</ele> + <time>2020-08-23T09:28:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971010" lon="0.5529800"> + <ele>1967.2</ele> + <time>2020-08-23T09:28:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970920" lon="0.5529300"> + <ele>1967.2</ele> + <time>2020-08-23T09:28:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970830" lon="0.5528860"> + <ele>1966.8</ele> + <time>2020-08-23T09:28:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970700" lon="0.5528510"> + <ele>1966.8</ele> + <time>2020-08-23T09:28:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970600" lon="0.5528170"> + <ele>1966.6</ele> + <time>2020-08-23T09:28:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970520" lon="0.5527910"> + <ele>1966.6</ele> + <time>2020-08-23T09:28:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970440" lon="0.5527590"> + <ele>1966.6</ele> + <time>2020-08-23T09:28:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970390" lon="0.5527330"> + <ele>1966.6</ele> + <time>2020-08-23T09:28:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970340" lon="0.5527080"> + <ele>1966.6</ele> + <time>2020-08-23T09:28:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970280" lon="0.5526800"> + <ele>1966.6</ele> + <time>2020-08-23T09:28:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970180" lon="0.5526450"> + <ele>1966.6</ele> + <time>2020-08-23T09:28:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970060" lon="0.5526090"> + <ele>1966.4</ele> + <time>2020-08-23T09:28:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969940" lon="0.5525760"> + <ele>1966.4</ele> + <time>2020-08-23T09:28:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969840" lon="0.5525480"> + <ele>1966.4</ele> + <time>2020-08-23T09:28:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969770" lon="0.5525270"> + <ele>1966.4</ele> + <time>2020-08-23T09:28:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969730" lon="0.5525020"> + <ele>1966.4</ele> + <time>2020-08-23T09:28:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969630" lon="0.5524790"> + <ele>1966.4</ele> + <time>2020-08-23T09:28:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969530" lon="0.5524490"> + <ele>1966.4</ele> + <time>2020-08-23T09:28:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969410" lon="0.5524150"> + <ele>1966.2</ele> + <time>2020-08-23T09:28:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969280" lon="0.5523790"> + <ele>1966.2</ele> + <time>2020-08-23T09:28:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969150" lon="0.5523400"> + <ele>1966.2</ele> + <time>2020-08-23T09:28:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969050" lon="0.5523120"> + <ele>1966.2</ele> + <time>2020-08-23T09:28:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968970" lon="0.5522920"> + <ele>1966.2</ele> + <time>2020-08-23T09:28:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968880" lon="0.5522670"> + <ele>1966.0</ele> + <time>2020-08-23T09:28:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968790" lon="0.5522390"> + <ele>1966.0</ele> + <time>2020-08-23T09:29:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968720" lon="0.5522150"> + <ele>1965.8</ele> + <time>2020-08-23T09:29:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968680" lon="0.5521900"> + <ele>1965.8</ele> + <time>2020-08-23T09:29:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968640" lon="0.5521650"> + <ele>1965.6</ele> + <time>2020-08-23T09:29:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968580" lon="0.5521350"> + <ele>1965.6</ele> + <time>2020-08-23T09:29:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968500" lon="0.5521100"> + <ele>1965.4</ele> + <time>2020-08-23T09:29:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968410" lon="0.5520900"> + <ele>1965.4</ele> + <time>2020-08-23T09:29:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968320" lon="0.5520760"> + <ele>1965.4</ele> + <time>2020-08-23T09:29:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968260" lon="0.5520570"> + <ele>1965.2</ele> + <time>2020-08-23T09:29:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968210" lon="0.5520380"> + <ele>1965.2</ele> + <time>2020-08-23T09:29:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968210" lon="0.5520260"> + <ele>1965.2</ele> + <time>2020-08-23T09:29:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968190" lon="0.5520140"> + <ele>1965.2</ele> + <time>2020-08-23T09:29:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968170" lon="0.5520000"> + <ele>1965.0</ele> + <time>2020-08-23T09:29:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968090" lon="0.5519830"> + <ele>1965.0</ele> + <time>2020-08-23T09:29:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967960" lon="0.5519630"> + <ele>1965.0</ele> + <time>2020-08-23T09:29:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967800" lon="0.5519400"> + <ele>1965.0</ele> + <time>2020-08-23T09:29:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967670" lon="0.5519160"> + <ele>1965.0</ele> + <time>2020-08-23T09:29:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967520" lon="0.5518900"> + <ele>1964.8</ele> + <time>2020-08-23T09:29:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967350" lon="0.5518640"> + <ele>1964.8</ele> + <time>2020-08-23T09:29:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967210" lon="0.5518440"> + <ele>1964.8</ele> + <time>2020-08-23T09:29:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967070" lon="0.5518220"> + <ele>1964.6</ele> + <time>2020-08-23T09:29:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966910" lon="0.5518060"> + <ele>1964.2</ele> + <time>2020-08-23T09:29:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966780" lon="0.5517920"> + <ele>1964.2</ele> + <time>2020-08-23T09:29:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966680" lon="0.5517770"> + <ele>1964.2</ele> + <time>2020-08-23T09:29:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966620" lon="0.5517610"> + <ele>1964.0</ele> + <time>2020-08-23T09:29:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966560" lon="0.5517480"> + <ele>1964.0</ele> + <time>2020-08-23T09:29:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966460" lon="0.5517360"> + <ele>1964.0</ele> + <time>2020-08-23T09:29:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966330" lon="0.5517220"> + <ele>1964.0</ele> + <time>2020-08-23T09:29:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966180" lon="0.5517080"> + <ele>1964.0</ele> + <time>2020-08-23T09:29:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966030" lon="0.5516890"> + <ele>1964.0</ele> + <time>2020-08-23T09:29:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965840" lon="0.5516660"> + <ele>1964.0</ele> + <time>2020-08-23T09:29:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965620" lon="0.5516380"> + <ele>1963.8</ele> + <time>2020-08-23T09:29:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965410" lon="0.5516150"> + <ele>1963.8</ele> + <time>2020-08-23T09:29:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965220" lon="0.5515930"> + <ele>1963.8</ele> + <time>2020-08-23T09:29:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965050" lon="0.5515740"> + <ele>1963.8</ele> + <time>2020-08-23T09:29:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964900" lon="0.5515560"> + <ele>1963.8</ele> + <time>2020-08-23T09:29:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964720" lon="0.5515390"> + <ele>1963.6</ele> + <time>2020-08-23T09:29:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964570" lon="0.5515220"> + <ele>1963.6</ele> + <time>2020-08-23T09:29:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964470" lon="0.5515000"> + <ele>1963.4</ele> + <time>2020-08-23T09:29:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964400" lon="0.5514750"> + <ele>1963.4</ele> + <time>2020-08-23T09:29:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964310" lon="0.5514490"> + <ele>1963.2</ele> + <time>2020-08-23T09:29:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964210" lon="0.5514200"> + <ele>1963.2</ele> + <time>2020-08-23T09:29:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964080" lon="0.5513950"> + <ele>1963.0</ele> + <time>2020-08-23T09:29:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963900" lon="0.5513730"> + <ele>1963.0</ele> + <time>2020-08-23T09:29:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963690" lon="0.5513540"> + <ele>1963.0</ele> + <time>2020-08-23T09:29:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963530" lon="0.5513340"> + <ele>1963.0</ele> + <time>2020-08-23T09:29:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963440" lon="0.5513140"> + <ele>1962.8</ele> + <time>2020-08-23T09:29:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963400" lon="0.5512930"> + <ele>1962.8</ele> + <time>2020-08-23T09:29:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963400" lon="0.5512720"> + <ele>1962.8</ele> + <time>2020-08-23T09:29:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963400" lon="0.5512460"> + <ele>1962.6</ele> + <time>2020-08-23T09:29:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963390" lon="0.5512260"> + <ele>1962.6</ele> + <time>2020-08-23T09:29:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963440" lon="0.5512110"> + <ele>1962.6</ele> + <time>2020-08-23T09:29:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963480" lon="0.5511950"> + <ele>1962.4</ele> + <time>2020-08-23T09:29:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963530" lon="0.5511790"> + <ele>1962.4</ele> + <time>2020-08-23T09:29:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963620" lon="0.5511570"> + <ele>1962.4</ele> + <time>2020-08-23T09:29:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963750" lon="0.5511330"> + <ele>1962.4</ele> + <time>2020-08-23T09:29:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963880" lon="0.5511120"> + <ele>1962.4</ele> + <time>2020-08-23T09:29:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964040" lon="0.5510910"> + <ele>1962.4</ele> + <time>2020-08-23T09:29:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964220" lon="0.5510680"> + <ele>1962.4</ele> + <time>2020-08-23T09:29:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964420" lon="0.5510440"> + <ele>1962.4</ele> + <time>2020-08-23T09:29:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964630" lon="0.5510230"> + <ele>1962.4</ele> + <time>2020-08-23T09:30:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964870" lon="0.5509980"> + <ele>1962.2</ele> + <time>2020-08-23T09:30:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965100" lon="0.5509760"> + <ele>1962.2</ele> + <time>2020-08-23T09:30:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965360" lon="0.5509510"> + <ele>1962.2</ele> + <time>2020-08-23T09:30:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965620" lon="0.5509290"> + <ele>1962.2</ele> + <time>2020-08-23T09:30:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965850" lon="0.5509120"> + <ele>1962.2</ele> + <time>2020-08-23T09:30:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966040" lon="0.5508940"> + <ele>1962.0</ele> + <time>2020-08-23T09:30:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966230" lon="0.5508720"> + <ele>1962.0</ele> + <time>2020-08-23T09:30:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966420" lon="0.5508470"> + <ele>1962.0</ele> + <time>2020-08-23T09:30:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966620" lon="0.5508210"> + <ele>1962.0</ele> + <time>2020-08-23T09:30:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966840" lon="0.5507910"> + <ele>1961.8</ele> + <time>2020-08-23T09:30:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967040" lon="0.5507640"> + <ele>1961.8</ele> + <time>2020-08-23T09:30:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967290" lon="0.5507510"> + <ele>1961.8</ele> + <time>2020-08-23T09:30:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967540" lon="0.5507420"> + <ele>1961.6</ele> + <time>2020-08-23T09:30:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967810" lon="0.5507200"> + <ele>1961.6</ele> + <time>2020-08-23T09:30:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968080" lon="0.5506950"> + <ele>1961.6</ele> + <time>2020-08-23T09:30:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968330" lon="0.5506740"> + <ele>1961.6</ele> + <time>2020-08-23T09:30:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968540" lon="0.5506580"> + <ele>1961.6</ele> + <time>2020-08-23T09:30:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968770" lon="0.5506300"> + <ele>1961.6</ele> + <time>2020-08-23T09:30:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969030" lon="0.5506050"> + <ele>1961.6</ele> + <time>2020-08-23T09:30:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969280" lon="0.5505800"> + <ele>1961.6</ele> + <time>2020-08-23T09:30:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969520" lon="0.5505640"> + <ele>1961.6</ele> + <time>2020-08-23T09:30:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969740" lon="0.5505400"> + <ele>1961.6</ele> + <time>2020-08-23T09:30:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969960" lon="0.5505140"> + <ele>1961.6</ele> + <time>2020-08-23T09:30:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970200" lon="0.5504790"> + <ele>1961.4</ele> + <time>2020-08-23T09:30:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970450" lon="0.5504440"> + <ele>1961.4</ele> + <time>2020-08-23T09:30:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970680" lon="0.5504140"> + <ele>1961.4</ele> + <time>2020-08-23T09:30:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970900" lon="0.5503900"> + <ele>1961.4</ele> + <time>2020-08-23T09:30:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971080" lon="0.5503620"> + <ele>1961.2</ele> + <time>2020-08-23T09:30:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971280" lon="0.5503350"> + <ele>1961.0</ele> + <time>2020-08-23T09:30:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971510" lon="0.5503070"> + <ele>1961.0</ele> + <time>2020-08-23T09:30:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971790" lon="0.5502780"> + <ele>1960.8</ele> + <time>2020-08-23T09:30:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5972070" lon="0.5502510"> + <ele>1960.8</ele> + <time>2020-08-23T09:30:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5972360" lon="0.5502250"> + <ele>1960.6</ele> + <time>2020-08-23T09:30:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5972640" lon="0.5501970"> + <ele>1960.8</ele> + <time>2020-08-23T09:30:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5972930" lon="0.5501710"> + <ele>1960.6</ele> + <time>2020-08-23T09:30:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5973220" lon="0.5501510"> + <ele>1960.6</ele> + <time>2020-08-23T09:30:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5973400" lon="0.5501360"> + <ele>1960.6</ele> + <time>2020-08-23T09:30:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5973630" lon="0.5501160"> + <ele>1960.4</ele> + <time>2020-08-23T09:30:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5973780" lon="0.5500970"> + <ele>1960.2</ele> + <time>2020-08-23T09:30:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5973960" lon="0.5500690"> + <ele>1960.0</ele> + <time>2020-08-23T09:30:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974160" lon="0.5500530"> + <ele>1960.0</ele> + <time>2020-08-23T09:30:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974360" lon="0.5500360"> + <ele>1959.8</ele> + <time>2020-08-23T09:30:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974540" lon="0.5500140"> + <ele>1959.8</ele> + <time>2020-08-23T09:30:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974690" lon="0.5499940"> + <ele>1959.8</ele> + <time>2020-08-23T09:30:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974790" lon="0.5499780"> + <ele>1959.8</ele> + <time>2020-08-23T09:30:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974810" lon="0.5499730"> + <ele>1959.8</ele> + <time>2020-08-23T09:30:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5975110" lon="0.5499070"> + <ele>1960.0</ele> + <time>2020-08-23T09:31:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5975330" lon="0.5498860"> + <ele>1959.8</ele> + <time>2020-08-23T09:31:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5975560" lon="0.5498640"> + <ele>1959.8</ele> + <time>2020-08-23T09:31:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5975810" lon="0.5498330"> + <ele>1959.8</ele> + <time>2020-08-23T09:31:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5976060" lon="0.5498040"> + <ele>1959.8</ele> + <time>2020-08-23T09:31:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5976270" lon="0.5497700"> + <ele>1959.8</ele> + <time>2020-08-23T09:31:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5976490" lon="0.5497390"> + <ele>1959.8</ele> + <time>2020-08-23T09:31:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5976720" lon="0.5497150"> + <ele>1959.8</ele> + <time>2020-08-23T09:31:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5976980" lon="0.5496940"> + <ele>1959.8</ele> + <time>2020-08-23T09:31:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977260" lon="0.5496790"> + <ele>1959.6</ele> + <time>2020-08-23T09:31:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977540" lon="0.5496670"> + <ele>1959.4</ele> + <time>2020-08-23T09:31:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977800" lon="0.5496550"> + <ele>1959.2</ele> + <time>2020-08-23T09:31:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978090" lon="0.5496500"> + <ele>1959.0</ele> + <time>2020-08-23T09:31:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978340" lon="0.5496360"> + <ele>1959.0</ele> + <time>2020-08-23T09:31:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978540" lon="0.5496020"> + <ele>1958.8</ele> + <time>2020-08-23T09:31:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978660" lon="0.5495700"> + <ele>1958.8</ele> + <time>2020-08-23T09:31:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978650" lon="0.5495460"> + <ele>1958.8</ele> + <time>2020-08-23T09:31:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978580" lon="0.5495160"> + <ele>1958.8</ele> + <time>2020-08-23T09:31:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978540" lon="0.5494790"> + <ele>1958.6</ele> + <time>2020-08-23T09:31:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978480" lon="0.5494270"> + <ele>1958.6</ele> + <time>2020-08-23T09:31:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978500" lon="0.5493800"> + <ele>1958.6</ele> + <time>2020-08-23T09:31:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978600" lon="0.5493390"> + <ele>1958.4</ele> + <time>2020-08-23T09:31:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978740" lon="0.5492980"> + <ele>1958.0</ele> + <time>2020-08-23T09:31:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978830" lon="0.5492470"> + <ele>1958.0</ele> + <time>2020-08-23T09:31:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978970" lon="0.5492030"> + <ele>1957.8</ele> + <time>2020-08-23T09:31:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979100" lon="0.5491720"> + <ele>1957.4</ele> + <time>2020-08-23T09:31:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979160" lon="0.5491430"> + <ele>1957.0</ele> + <time>2020-08-23T09:31:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979190" lon="0.5491180"> + <ele>1956.4</ele> + <time>2020-08-23T09:31:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979270" lon="0.5490870"> + <ele>1955.6</ele> + <time>2020-08-23T09:31:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979420" lon="0.5490490"> + <ele>1954.6</ele> + <time>2020-08-23T09:31:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979630" lon="0.5490060"> + <ele>1953.8</ele> + <time>2020-08-23T09:31:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979900" lon="0.5489740"> + <ele>1953.2</ele> + <time>2020-08-23T09:31:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980140" lon="0.5489400"> + <ele>1952.2</ele> + <time>2020-08-23T09:31:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980320" lon="0.5488980"> + <ele>1951.6</ele> + <time>2020-08-23T09:31:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980420" lon="0.5488670"> + <ele>1951.2</ele> + <time>2020-08-23T09:31:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980380" lon="0.5488470"> + <ele>1950.8</ele> + <time>2020-08-23T09:31:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980210" lon="0.5488280"> + <ele>1950.4</ele> + <time>2020-08-23T09:31:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980020" lon="0.5488060"> + <ele>1949.6</ele> + <time>2020-08-23T09:31:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979710" lon="0.5487690"> + <ele>1948.8</ele> + <time>2020-08-23T09:31:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979330" lon="0.5487240"> + <ele>1948.0</ele> + <time>2020-08-23T09:31:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978920" lon="0.5487020"> + <ele>1947.2</ele> + <time>2020-08-23T09:31:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978590" lon="0.5486840"> + <ele>1946.4</ele> + <time>2020-08-23T09:31:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978420" lon="0.5486610"> + <ele>1945.6</ele> + <time>2020-08-23T09:31:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978400" lon="0.5486380"> + <ele>1945.0</ele> + <time>2020-08-23T09:31:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978460" lon="0.5486130"> + <ele>1944.6</ele> + <time>2020-08-23T09:31:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978630" lon="0.5485850"> + <ele>1944.0</ele> + <time>2020-08-23T09:31:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978840" lon="0.5485470"> + <ele>1943.2</ele> + <time>2020-08-23T09:31:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979060" lon="0.5485140"> + <ele>1941.8</ele> + <time>2020-08-23T09:31:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979210" lon="0.5484900"> + <ele>1941.0</ele> + <time>2020-08-23T09:31:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979280" lon="0.5484690"> + <ele>1940.4</ele> + <time>2020-08-23T09:31:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979220" lon="0.5484500"> + <ele>1939.8</ele> + <time>2020-08-23T09:31:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979170" lon="0.5484230"> + <ele>1939.6</ele> + <time>2020-08-23T09:31:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979230" lon="0.5483910"> + <ele>1939.2</ele> + <time>2020-08-23T09:31:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979380" lon="0.5483680"> + <ele>1938.8</ele> + <time>2020-08-23T09:31:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979510" lon="0.5483450"> + <ele>1938.0</ele> + <time>2020-08-23T09:31:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979580" lon="0.5483210"> + <ele>1936.6</ele> + <time>2020-08-23T09:31:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979470" lon="0.5482960"> + <ele>1936.0</ele> + <time>2020-08-23T09:31:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979200" lon="0.5482720"> + <ele>1935.6</ele> + <time>2020-08-23T09:32:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978870" lon="0.5482440"> + <ele>1935.2</ele> + <time>2020-08-23T09:32:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978500" lon="0.5482210"> + <ele>1934.6</ele> + <time>2020-08-23T09:32:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978230" lon="0.5482100"> + <ele>1934.0</ele> + <time>2020-08-23T09:32:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978010" lon="0.5481960"> + <ele>1933.4</ele> + <time>2020-08-23T09:32:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977890" lon="0.5481800"> + <ele>1933.0</ele> + <time>2020-08-23T09:32:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977860" lon="0.5481560"> + <ele>1932.6</ele> + <time>2020-08-23T09:32:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977990" lon="0.5481140"> + <ele>1931.8</ele> + <time>2020-08-23T09:32:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978160" lon="0.5480780"> + <ele>1931.0</ele> + <time>2020-08-23T09:32:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978400" lon="0.5480510"> + <ele>1930.2</ele> + <time>2020-08-23T09:32:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978670" lon="0.5480240"> + <ele>1929.4</ele> + <time>2020-08-23T09:32:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978980" lon="0.5479950"> + <ele>1929.0</ele> + <time>2020-08-23T09:32:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979280" lon="0.5479720"> + <ele>1928.8</ele> + <time>2020-08-23T09:32:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979500" lon="0.5479440"> + <ele>1928.0</ele> + <time>2020-08-23T09:32:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979760" lon="0.5479070"> + <ele>1927.2</ele> + <time>2020-08-23T09:32:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979960" lon="0.5478820"> + <ele>1926.2</ele> + <time>2020-08-23T09:32:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980060" lon="0.5478580"> + <ele>1925.6</ele> + <time>2020-08-23T09:32:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980050" lon="0.5478410"> + <ele>1925.0</ele> + <time>2020-08-23T09:32:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979900" lon="0.5478310"> + <ele>1924.0</ele> + <time>2020-08-23T09:32:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979640" lon="0.5478200"> + <ele>1923.2</ele> + <time>2020-08-23T09:32:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979400" lon="0.5478030"> + <ele>1922.4</ele> + <time>2020-08-23T09:32:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979200" lon="0.5477860"> + <ele>1921.6</ele> + <time>2020-08-23T09:32:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979060" lon="0.5477770"> + <ele>1921.0</ele> + <time>2020-08-23T09:32:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978920" lon="0.5477690"> + <ele>1920.6</ele> + <time>2020-08-23T09:32:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978800" lon="0.5477510"> + <ele>1920.2</ele> + <time>2020-08-23T09:32:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978870" lon="0.5477370"> + <ele>1919.8</ele> + <time>2020-08-23T09:32:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978990" lon="0.5477130"> + <ele>1919.2</ele> + <time>2020-08-23T09:32:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979190" lon="0.5476860"> + <ele>1918.0</ele> + <time>2020-08-23T09:32:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979440" lon="0.5476580"> + <ele>1917.4</ele> + <time>2020-08-23T09:32:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979700" lon="0.5476350"> + <ele>1916.4</ele> + <time>2020-08-23T09:32:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979920" lon="0.5476030"> + <ele>1916.0</ele> + <time>2020-08-23T09:32:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980130" lon="0.5475750"> + <ele>1915.0</ele> + <time>2020-08-23T09:32:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980320" lon="0.5475540"> + <ele>1914.6</ele> + <time>2020-08-23T09:32:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980470" lon="0.5475290"> + <ele>1914.2</ele> + <time>2020-08-23T09:32:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980450" lon="0.5475110"> + <ele>1913.8</ele> + <time>2020-08-23T09:32:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980340" lon="0.5474930"> + <ele>1913.0</ele> + <time>2020-08-23T09:32:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980300" lon="0.5474740"> + <ele>1912.0</ele> + <time>2020-08-23T09:32:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980290" lon="0.5474560"> + <ele>1910.8</ele> + <time>2020-08-23T09:32:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980390" lon="0.5474360"> + <ele>1910.0</ele> + <time>2020-08-23T09:32:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980530" lon="0.5474030"> + <ele>1909.2</ele> + <time>2020-08-23T09:32:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980680" lon="0.5473710"> + <ele>1908.4</ele> + <time>2020-08-23T09:32:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980920" lon="0.5473440"> + <ele>1907.8</ele> + <time>2020-08-23T09:32:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981190" lon="0.5473220"> + <ele>1907.4</ele> + <time>2020-08-23T09:32:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981420" lon="0.5472890"> + <ele>1907.0</ele> + <time>2020-08-23T09:32:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981720" lon="0.5472660"> + <ele>1906.4</ele> + <time>2020-08-23T09:32:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982120" lon="0.5472490"> + <ele>1905.8</ele> + <time>2020-08-23T09:32:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982520" lon="0.5472470"> + <ele>1905.2</ele> + <time>2020-08-23T09:32:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982900" lon="0.5472500"> + <ele>1904.2</ele> + <time>2020-08-23T09:32:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983230" lon="0.5472540"> + <ele>1903.4</ele> + <time>2020-08-23T09:32:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983530" lon="0.5472510"> + <ele>1902.8</ele> + <time>2020-08-23T09:32:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983720" lon="0.5472340"> + <ele>1901.8</ele> + <time>2020-08-23T09:32:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983820" lon="0.5472120"> + <ele>1901.0</ele> + <time>2020-08-23T09:32:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983770" lon="0.5471860"> + <ele>1900.0</ele> + <time>2020-08-23T09:32:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983660" lon="0.5471580"> + <ele>1899.0</ele> + <time>2020-08-23T09:32:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983470" lon="0.5471190"> + <ele>1898.4</ele> + <time>2020-08-23T09:32:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983280" lon="0.5470850"> + <ele>1897.0</ele> + <time>2020-08-23T09:32:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983030" lon="0.5470630"> + <ele>1896.2</ele> + <time>2020-08-23T09:32:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982850" lon="0.5470490"> + <ele>1895.0</ele> + <time>2020-08-23T09:32:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982800" lon="0.5470300"> + <ele>1894.4</ele> + <time>2020-08-23T09:32:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982910" lon="0.5469990"> + <ele>1893.8</ele> + <time>2020-08-23T09:32:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983060" lon="0.5469760"> + <ele>1893.2</ele> + <time>2020-08-23T09:33:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983310" lon="0.5469610"> + <ele>1892.2</ele> + <time>2020-08-23T09:33:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983560" lon="0.5469460"> + <ele>1891.6</ele> + <time>2020-08-23T09:33:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983820" lon="0.5469390"> + <ele>1891.0</ele> + <time>2020-08-23T09:33:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5984030" lon="0.5469350"> + <ele>1889.4</ele> + <time>2020-08-23T09:33:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5984280" lon="0.5469270"> + <ele>1888.8</ele> + <time>2020-08-23T09:33:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5984550" lon="0.5469290"> + <ele>1888.4</ele> + <time>2020-08-23T09:33:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5984870" lon="0.5469410"> + <ele>1887.8</ele> + <time>2020-08-23T09:33:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5985220" lon="0.5469580"> + <ele>1886.8</ele> + <time>2020-08-23T09:33:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5985510" lon="0.5469690"> + <ele>1885.4</ele> + <time>2020-08-23T09:33:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5985720" lon="0.5469730"> + <ele>1884.8</ele> + <time>2020-08-23T09:33:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5985890" lon="0.5469690"> + <ele>1884.2</ele> + <time>2020-08-23T09:33:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5986060" lon="0.5469570"> + <ele>1883.6</ele> + <time>2020-08-23T09:33:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5986120" lon="0.5469400"> + <ele>1883.2</ele> + <time>2020-08-23T09:33:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5986060" lon="0.5469150"> + <ele>1882.4</ele> + <time>2020-08-23T09:33:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5985910" lon="0.5468880"> + <ele>1881.6</ele> + <time>2020-08-23T09:33:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5985830" lon="0.5468520"> + <ele>1880.6</ele> + <time>2020-08-23T09:33:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5985770" lon="0.5468220"> + <ele>1880.0</ele> + <time>2020-08-23T09:33:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5985820" lon="0.5468010"> + <ele>1879.6</ele> + <time>2020-08-23T09:33:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5985900" lon="0.5468010"> + <ele>1879.4</ele> + <time>2020-08-23T09:33:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5986080" lon="0.5468060"> + <ele>1879.0</ele> + <time>2020-08-23T09:33:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5986300" lon="0.5468090"> + <ele>1878.6</ele> + <time>2020-08-23T09:33:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5986520" lon="0.5468050"> + <ele>1877.6</ele> + <time>2020-08-23T09:33:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5986720" lon="0.5468000"> + <ele>1876.4</ele> + <time>2020-08-23T09:33:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5986920" lon="0.5467990"> + <ele>1875.6</ele> + <time>2020-08-23T09:33:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987080" lon="0.5467910"> + <ele>1875.0</ele> + <time>2020-08-23T09:33:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987270" lon="0.5467700"> + <ele>1874.6</ele> + <time>2020-08-23T09:33:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987450" lon="0.5467430"> + <ele>1874.2</ele> + <time>2020-08-23T09:33:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987550" lon="0.5467060"> + <ele>1873.8</ele> + <time>2020-08-23T09:33:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987640" lon="0.5466660"> + <ele>1873.2</ele> + <time>2020-08-23T09:33:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987740" lon="0.5466170"> + <ele>1872.4</ele> + <time>2020-08-23T09:33:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987740" lon="0.5465700"> + <ele>1871.6</ele> + <time>2020-08-23T09:33:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987700" lon="0.5465310"> + <ele>1871.0</ele> + <time>2020-08-23T09:33:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987720" lon="0.5465010"> + <ele>1870.4</ele> + <time>2020-08-23T09:33:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987840" lon="0.5464720"> + <ele>1869.4</ele> + <time>2020-08-23T09:33:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988030" lon="0.5464510"> + <ele>1868.4</ele> + <time>2020-08-23T09:33:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988280" lon="0.5464420"> + <ele>1867.8</ele> + <time>2020-08-23T09:33:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988510" lon="0.5464210"> + <ele>1866.8</ele> + <time>2020-08-23T09:33:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988730" lon="0.5463870"> + <ele>1863.6</ele> + <time>2020-08-23T09:33:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988970" lon="0.5463500"> + <ele>1862.6</ele> + <time>2020-08-23T09:33:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989260" lon="0.5463020"> + <ele>1861.8</ele> + <time>2020-08-23T09:33:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989650" lon="0.5462290"> + <ele>1861.0</ele> + <time>2020-08-23T09:33:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989960" lon="0.5461520"> + <ele>1860.0</ele> + <time>2020-08-23T09:33:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990290" lon="0.5460770"> + <ele>1859.2</ele> + <time>2020-08-23T09:33:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990600" lon="0.5460140"> + <ele>1858.2</ele> + <time>2020-08-23T09:33:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990940" lon="0.5459520"> + <ele>1857.6</ele> + <time>2020-08-23T09:33:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991250" lon="0.5459050"> + <ele>1856.6</ele> + <time>2020-08-23T09:33:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991620" lon="0.5458830"> + <ele>1855.4</ele> + <time>2020-08-23T09:33:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992040" lon="0.5458760"> + <ele>1853.6</ele> + <time>2020-08-23T09:33:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992540" lon="0.5458680"> + <ele>1852.0</ele> + <time>2020-08-23T09:33:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992980" lon="0.5458460"> + <ele>1850.6</ele> + <time>2020-08-23T09:33:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993310" lon="0.5458160"> + <ele>1849.2</ele> + <time>2020-08-23T09:33:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993540" lon="0.5457760"> + <ele>1848.0</ele> + <time>2020-08-23T09:33:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993760" lon="0.5457210"> + <ele>1847.0</ele> + <time>2020-08-23T09:33:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993870" lon="0.5456620"> + <ele>1846.2</ele> + <time>2020-08-23T09:33:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994010" lon="0.5455940"> + <ele>1845.2</ele> + <time>2020-08-23T09:33:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994030" lon="0.5455390"> + <ele>1844.2</ele> + <time>2020-08-23T09:33:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994070" lon="0.5455000"> + <ele>1843.0</ele> + <time>2020-08-23T09:33:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994200" lon="0.5454750"> + <ele>1842.2</ele> + <time>2020-08-23T09:33:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994450" lon="0.5454620"> + <ele>1841.8</ele> + <time>2020-08-23T09:33:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994800" lon="0.5454550"> + <ele>1841.2</ele> + <time>2020-08-23T09:34:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995060" lon="0.5454570"> + <ele>1840.2</ele> + <time>2020-08-23T09:34:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995320" lon="0.5454600"> + <ele>1839.4</ele> + <time>2020-08-23T09:34:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995550" lon="0.5454490"> + <ele>1838.4</ele> + <time>2020-08-23T09:34:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995770" lon="0.5454310"> + <ele>1837.6</ele> + <time>2020-08-23T09:34:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995780" lon="0.5454130"> + <ele>1836.6</ele> + <time>2020-08-23T09:34:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995820" lon="0.5453880"> + <ele>1836.0</ele> + <time>2020-08-23T09:34:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995850" lon="0.5453540"> + <ele>1835.4</ele> + <time>2020-08-23T09:34:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995800" lon="0.5453200"> + <ele>1834.4</ele> + <time>2020-08-23T09:34:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995760" lon="0.5453000"> + <ele>1833.2</ele> + <time>2020-08-23T09:34:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995740" lon="0.5452980"> + <ele>1832.0</ele> + <time>2020-08-23T09:34:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5996570" lon="0.5452210"> + <ele>1824.6</ele> + <time>2020-08-23T09:34:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5996630" lon="0.5451770"> + <ele>1824.6</ele> + <time>2020-08-23T09:34:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5996650" lon="0.5451340"> + <ele>1824.2</ele> + <time>2020-08-23T09:34:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5996610" lon="0.5450930"> + <ele>1823.6</ele> + <time>2020-08-23T09:34:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5996470" lon="0.5450580"> + <ele>1822.8</ele> + <time>2020-08-23T09:34:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5996240" lon="0.5450340"> + <ele>1822.6</ele> + <time>2020-08-23T09:34:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995880" lon="0.5450130"> + <ele>1822.4</ele> + <time>2020-08-23T09:34:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995440" lon="0.5450050"> + <ele>1822.2</ele> + <time>2020-08-23T09:34:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994940" lon="0.5449900"> + <ele>1822.0</ele> + <time>2020-08-23T09:34:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994410" lon="0.5449860"> + <ele>1821.8</ele> + <time>2020-08-23T09:34:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993950" lon="0.5449820"> + <ele>1821.4</ele> + <time>2020-08-23T09:34:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993420" lon="0.5449680"> + <ele>1821.0</ele> + <time>2020-08-23T09:34:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992910" lon="0.5449640"> + <ele>1820.6</ele> + <time>2020-08-23T09:34:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992440" lon="0.5449600"> + <ele>1820.2</ele> + <time>2020-08-23T09:34:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992100" lon="0.5449570"> + <ele>1819.8</ele> + <time>2020-08-23T09:34:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991800" lon="0.5449460"> + <ele>1819.4</ele> + <time>2020-08-23T09:34:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991540" lon="0.5449340"> + <ele>1818.8</ele> + <time>2020-08-23T09:34:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991160" lon="0.5449260"> + <ele>1818.0</ele> + <time>2020-08-23T09:34:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990770" lon="0.5449140"> + <ele>1817.8</ele> + <time>2020-08-23T09:34:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990420" lon="0.5449030"> + <ele>1817.2</ele> + <time>2020-08-23T09:34:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990090" lon="0.5448920"> + <ele>1816.6</ele> + <time>2020-08-23T09:35:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989890" lon="0.5448900"> + <ele>1816.0</ele> + <time>2020-08-23T09:35:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989700" lon="0.5448790"> + <ele>1815.4</ele> + <time>2020-08-23T09:35:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989530" lon="0.5448640"> + <ele>1815.0</ele> + <time>2020-08-23T09:35:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989250" lon="0.5448390"> + <ele>1814.6</ele> + <time>2020-08-23T09:35:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989000" lon="0.5448180"> + <ele>1813.8</ele> + <time>2020-08-23T09:35:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988810" lon="0.5448030"> + <ele>1813.0</ele> + <time>2020-08-23T09:35:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988620" lon="0.5447830"> + <ele>1812.0</ele> + <time>2020-08-23T09:35:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988570" lon="0.5447570"> + <ele>1810.8</ele> + <time>2020-08-23T09:35:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988520" lon="0.5447420"> + <ele>1810.0</ele> + <time>2020-08-23T09:35:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988560" lon="0.5447300"> + <ele>1809.2</ele> + <time>2020-08-23T09:35:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988640" lon="0.5447200"> + <ele>1808.4</ele> + <time>2020-08-23T09:35:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988670" lon="0.5447120"> + <ele>1807.6</ele> + <time>2020-08-23T09:35:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988680" lon="0.5447050"> + <ele>1807.0</ele> + <time>2020-08-23T09:35:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988670" lon="0.5446900"> + <ele>1806.2</ele> + <time>2020-08-23T09:35:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988720" lon="0.5446640"> + <ele>1805.6</ele> + <time>2020-08-23T09:35:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988830" lon="0.5446410"> + <ele>1804.4</ele> + <time>2020-08-23T09:35:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989020" lon="0.5446150"> + <ele>1803.4</ele> + <time>2020-08-23T09:35:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989300" lon="0.5446020"> + <ele>1802.0</ele> + <time>2020-08-23T09:35:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989560" lon="0.5445950"> + <ele>1801.4</ele> + <time>2020-08-23T09:35:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989780" lon="0.5445900"> + <ele>1801.0</ele> + <time>2020-08-23T09:35:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989930" lon="0.5445810"> + <ele>1800.8</ele> + <time>2020-08-23T09:35:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990090" lon="0.5445670"> + <ele>1800.4</ele> + <time>2020-08-23T09:35:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990270" lon="0.5445620"> + <ele>1800.0</ele> + <time>2020-08-23T09:35:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990470" lon="0.5445650"> + <ele>1799.6</ele> + <time>2020-08-23T09:35:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990670" lon="0.5445660"> + <ele>1799.4</ele> + <time>2020-08-23T09:35:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990880" lon="0.5445650"> + <ele>1799.4</ele> + <time>2020-08-23T09:35:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991050" lon="0.5445600"> + <ele>1799.0</ele> + <time>2020-08-23T09:35:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991200" lon="0.5445500"> + <ele>1799.0</ele> + <time>2020-08-23T09:35:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991340" lon="0.5445360"> + <ele>1799.0</ele> + <time>2020-08-23T09:35:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991520" lon="0.5445190"> + <ele>1799.0</ele> + <time>2020-08-23T09:35:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991690" lon="0.5445040"> + <ele>1799.0</ele> + <time>2020-08-23T09:35:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991770" lon="0.5444860"> + <ele>1799.0</ele> + <time>2020-08-23T09:35:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991870" lon="0.5444760"> + <ele>1799.0</ele> + <time>2020-08-23T09:35:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991980" lon="0.5444720"> + <ele>1799.0</ele> + <time>2020-08-23T09:35:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992150" lon="0.5444650"> + <ele>1799.0</ele> + <time>2020-08-23T09:35:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992340" lon="0.5444540"> + <ele>1799.0</ele> + <time>2020-08-23T09:35:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992540" lon="0.5444450"> + <ele>1799.0</ele> + <time>2020-08-23T09:35:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992750" lon="0.5444410"> + <ele>1799.0</ele> + <time>2020-08-23T09:35:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992940" lon="0.5444400"> + <ele>1798.8</ele> + <time>2020-08-23T09:35:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993090" lon="0.5444420"> + <ele>1798.8</ele> + <time>2020-08-23T09:35:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993220" lon="0.5444470"> + <ele>1798.8</ele> + <time>2020-08-23T09:35:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993390" lon="0.5444480"> + <ele>1798.8</ele> + <time>2020-08-23T09:35:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993470" lon="0.5444460"> + <ele>1798.8</ele> + <time>2020-08-23T09:35:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993510" lon="0.5444470"> + <ele>1798.6</ele> + <time>2020-08-23T09:35:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992660" lon="0.5444570"> + <ele>1798.4</ele> + <time>2020-08-23T09:35:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992520" lon="0.5444680"> + <ele>1798.4</ele> + <time>2020-08-23T09:35:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992430" lon="0.5444790"> + <ele>1798.4</ele> + <time>2020-08-23T09:35:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992360" lon="0.5444860"> + <ele>1798.4</ele> + <time>2020-08-23T09:36:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992290" lon="0.5444940"> + <ele>1798.4</ele> + <time>2020-08-23T09:36:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992180" lon="0.5445000"> + <ele>1798.4</ele> + <time>2020-08-23T09:36:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992070" lon="0.5445060"> + <ele>1798.6</ele> + <time>2020-08-23T09:36:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992030" lon="0.5445110"> + <ele>1798.6</ele> + <time>2020-08-23T09:36:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992010" lon="0.5445230"> + <ele>1798.6</ele> + <time>2020-08-23T09:36:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991970" lon="0.5445380"> + <ele>1798.6</ele> + <time>2020-08-23T09:36:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991950" lon="0.5445470"> + <ele>1798.6</ele> + <time>2020-08-23T09:36:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991910" lon="0.5445590"> + <ele>1798.6</ele> + <time>2020-08-23T09:36:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991890" lon="0.5445730"> + <ele>1798.6</ele> + <time>2020-08-23T09:36:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991910" lon="0.5445700"> + <ele>1798.6</ele> + <time>2020-08-23T09:36:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991930" lon="0.5445740"> + <ele>1798.6</ele> + <time>2020-08-23T09:36:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993340" lon="0.5445610"> + <ele>1798.4</ele> + <time>2020-08-23T09:36:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993680" lon="0.5445540"> + <ele>1798.0</ele> + <time>2020-08-23T09:36:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994020" lon="0.5445510"> + <ele>1797.8</ele> + <time>2020-08-23T09:36:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994310" lon="0.5445570"> + <ele>1797.6</ele> + <time>2020-08-23T09:36:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994640" lon="0.5445680"> + <ele>1797.2</ele> + <time>2020-08-23T09:36:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994870" lon="0.5445760"> + <ele>1796.8</ele> + <time>2020-08-23T09:36:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995100" lon="0.5445780"> + <ele>1796.4</ele> + <time>2020-08-23T09:36:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995290" lon="0.5445750"> + <ele>1796.0</ele> + <time>2020-08-23T09:36:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995420" lon="0.5445700"> + <ele>1795.2</ele> + <time>2020-08-23T09:36:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995510" lon="0.5445690"> + <ele>1794.4</ele> + <time>2020-08-23T09:36:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995570" lon="0.5445700"> + <ele>1793.6</ele> + <time>2020-08-23T09:36:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995600" lon="0.5445720"> + <ele>1793.2</ele> + <time>2020-08-23T09:36:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5996650" lon="0.5444180"> + <ele>1790.2</ele> + <time>2020-08-23T09:37:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5996800" lon="0.5444050"> + <ele>1790.2</ele> + <time>2020-08-23T09:37:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5997010" lon="0.5443950"> + <ele>1790.2</ele> + <time>2020-08-23T09:37:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5997510" lon="0.5443900"> + <ele>1789.8</ele> + <time>2020-08-23T09:37:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5998180" lon="0.5443840"> + <ele>1789.6</ele> + <time>2020-08-23T09:37:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5998780" lon="0.5443750"> + <ele>1789.0</ele> + <time>2020-08-23T09:37:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5999260" lon="0.5443750"> + <ele>1788.4</ele> + <time>2020-08-23T09:37:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5999530" lon="0.5443830"> + <ele>1787.6</ele> + <time>2020-08-23T09:37:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5999630" lon="0.5443890"> + <ele>1787.0</ele> + <time>2020-08-23T09:37:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5999590" lon="0.5443890"> + <ele>1786.4</ele> + <time>2020-08-23T09:37:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5999350" lon="0.5443820"> + <ele>1785.6</ele> + <time>2020-08-23T09:37:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5999180" lon="0.5443680"> + <ele>1784.8</ele> + <time>2020-08-23T09:37:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5999000" lon="0.5443520"> + <ele>1783.6</ele> + <time>2020-08-23T09:37:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5998810" lon="0.5443360"> + <ele>1783.0</ele> + <time>2020-08-23T09:37:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5998580" lon="0.5443200"> + <ele>1782.6</ele> + <time>2020-08-23T09:37:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5998360" lon="0.5443050"> + <ele>1782.4</ele> + <time>2020-08-23T09:37:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5998110" lon="0.5442870"> + <ele>1782.4</ele> + <time>2020-08-23T09:37:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5997850" lon="0.5442750"> + <ele>1782.2</ele> + <time>2020-08-23T09:37:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5997570" lon="0.5442600"> + <ele>1782.2</ele> + <time>2020-08-23T09:37:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5997290" lon="0.5442440"> + <ele>1782.0</ele> + <time>2020-08-23T09:37:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5997000" lon="0.5442250"> + <ele>1782.0</ele> + <time>2020-08-23T09:37:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5996710" lon="0.5442090"> + <ele>1782.0</ele> + <time>2020-08-23T09:37:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5996420" lon="0.5441950"> + <ele>1781.8</ele> + <time>2020-08-23T09:37:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5996150" lon="0.5441780"> + <ele>1781.8</ele> + <time>2020-08-23T09:37:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995890" lon="0.5441640"> + <ele>1781.6</ele> + <time>2020-08-23T09:37:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995620" lon="0.5441500"> + <ele>1781.6</ele> + <time>2020-08-23T09:37:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995330" lon="0.5441390"> + <ele>1781.6</ele> + <time>2020-08-23T09:37:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5995010" lon="0.5441300"> + <ele>1781.4</ele> + <time>2020-08-23T09:37:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994670" lon="0.5441200"> + <ele>1781.4</ele> + <time>2020-08-23T09:37:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5994310" lon="0.5441130"> + <ele>1781.4</ele> + <time>2020-08-23T09:37:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993960" lon="0.5441050"> + <ele>1781.2</ele> + <time>2020-08-23T09:37:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993580" lon="0.5440900"> + <ele>1781.2</ele> + <time>2020-08-23T09:37:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5993170" lon="0.5440780"> + <ele>1781.2</ele> + <time>2020-08-23T09:37:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992750" lon="0.5440710"> + <ele>1781.0</ele> + <time>2020-08-23T09:37:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5992300" lon="0.5440710"> + <ele>1781.0</ele> + <time>2020-08-23T09:37:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991810" lon="0.5440700"> + <ele>1781.0</ele> + <time>2020-08-23T09:37:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5991270" lon="0.5440610"> + <ele>1780.8</ele> + <time>2020-08-23T09:37:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990650" lon="0.5440480"> + <ele>1780.8</ele> + <time>2020-08-23T09:37:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989950" lon="0.5440340"> + <ele>1780.8</ele> + <time>2020-08-23T09:37:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989200" lon="0.5440220"> + <ele>1780.6</ele> + <time>2020-08-23T09:37:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988400" lon="0.5440060"> + <ele>1780.4</ele> + <time>2020-08-23T09:37:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987540" lon="0.5439930"> + <ele>1780.0</ele> + <time>2020-08-23T09:37:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5986650" lon="0.5439770"> + <ele>1779.8</ele> + <time>2020-08-23T09:37:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5985720" lon="0.5439540"> + <ele>1779.6</ele> + <time>2020-08-23T09:37:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5984790" lon="0.5439230"> + <ele>1779.0</ele> + <time>2020-08-23T09:37:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983850" lon="0.5438880"> + <ele>1778.6</ele> + <time>2020-08-23T09:37:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982890" lon="0.5438550"> + <ele>1778.0</ele> + <time>2020-08-23T09:37:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981930" lon="0.5438320"> + <ele>1777.2</ele> + <time>2020-08-23T09:38:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980950" lon="0.5438140"> + <ele>1776.2</ele> + <time>2020-08-23T09:38:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979940" lon="0.5437870"> + <ele>1775.0</ele> + <time>2020-08-23T09:38:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978940" lon="0.5437450"> + <ele>1774.0</ele> + <time>2020-08-23T09:38:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977980" lon="0.5437060"> + <ele>1771.8</ele> + <time>2020-08-23T09:38:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977060" lon="0.5436740"> + <ele>1770.8</ele> + <time>2020-08-23T09:38:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5976270" lon="0.5436590"> + <ele>1770.0</ele> + <time>2020-08-23T09:38:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>105</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5975640" lon="0.5436640"> + <ele>1769.0</ele> + <time>2020-08-23T09:38:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5975110" lon="0.5436880"> + <ele>1768.2</ele> + <time>2020-08-23T09:38:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>17</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974630" lon="0.5437060"> + <ele>1766.6</ele> + <time>2020-08-23T09:38:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974270" lon="0.5436930"> + <ele>1765.0</ele> + <time>2020-08-23T09:38:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974080" lon="0.5436590"> + <ele>1763.8</ele> + <time>2020-08-23T09:38:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974200" lon="0.5436250"> + <ele>1763.0</ele> + <time>2020-08-23T09:38:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974590" lon="0.5436000"> + <ele>1762.6</ele> + <time>2020-08-23T09:38:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5975200" lon="0.5435860"> + <ele>1762.4</ele> + <time>2020-08-23T09:38:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5975930" lon="0.5435770"> + <ele>1762.4</ele> + <time>2020-08-23T09:38:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5976590" lon="0.5435700"> + <ele>1762.2</ele> + <time>2020-08-23T09:38:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977260" lon="0.5435610"> + <ele>1762.0</ele> + <time>2020-08-23T09:38:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977980" lon="0.5435480"> + <ele>1762.0</ele> + <time>2020-08-23T09:38:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978730" lon="0.5435340"> + <ele>1761.8</ele> + <time>2020-08-23T09:38:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979550" lon="0.5435180"> + <ele>1761.6</ele> + <time>2020-08-23T09:38:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980410" lon="0.5435040"> + <ele>1761.2</ele> + <time>2020-08-23T09:38:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981300" lon="0.5434890"> + <ele>1760.6</ele> + <time>2020-08-23T09:38:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982220" lon="0.5434690"> + <ele>1760.0</ele> + <time>2020-08-23T09:38:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983130" lon="0.5434480"> + <ele>1759.4</ele> + <time>2020-08-23T09:38:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>96</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983990" lon="0.5434270"> + <ele>1758.8</ele> + <time>2020-08-23T09:38:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>95</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5984870" lon="0.5434120"> + <ele>1758.0</ele> + <time>2020-08-23T09:38:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>95</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5985760" lon="0.5434140"> + <ele>1757.4</ele> + <time>2020-08-23T09:38:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>95</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5986640" lon="0.5434340"> + <ele>1756.2</ele> + <time>2020-08-23T09:38:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>96</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987520" lon="0.5434700"> + <ele>1755.4</ele> + <time>2020-08-23T09:38:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>96</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988350" lon="0.5435110"> + <ele>1754.4</ele> + <time>2020-08-23T09:38:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989100" lon="0.5435410"> + <ele>1753.4</ele> + <time>2020-08-23T09:38:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989810" lon="0.5435520"> + <ele>1752.4</ele> + <time>2020-08-23T09:38:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990360" lon="0.5435390"> + <ele>1751.4</ele> + <time>2020-08-23T09:38:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990730" lon="0.5434860"> + <ele>1750.6</ele> + <time>2020-08-23T09:38:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990680" lon="0.5434370"> + <ele>1749.8</ele> + <time>2020-08-23T09:38:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5990460" lon="0.5433940"> + <ele>1749.0</ele> + <time>2020-08-23T09:38:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989980" lon="0.5433480"> + <ele>1747.6</ele> + <time>2020-08-23T09:38:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5989260" lon="0.5432940"> + <ele>1747.4</ele> + <time>2020-08-23T09:38:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5988510" lon="0.5432370"> + <ele>1747.0</ele> + <time>2020-08-23T09:38:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5987580" lon="0.5431760"> + <ele>1746.8</ele> + <time>2020-08-23T09:38:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5986520" lon="0.5431060"> + <ele>1746.6</ele> + <time>2020-08-23T09:38:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5985470" lon="0.5430470"> + <ele>1746.4</ele> + <time>2020-08-23T09:38:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5984400" lon="0.5429980"> + <ele>1745.8</ele> + <time>2020-08-23T09:38:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983310" lon="0.5429610"> + <ele>1744.6</ele> + <time>2020-08-23T09:38:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982210" lon="0.5429310"> + <ele>1743.4</ele> + <time>2020-08-23T09:38:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981160" lon="0.5428920"> + <ele>1742.6</ele> + <time>2020-08-23T09:38:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980150" lon="0.5428550"> + <ele>1741.4</ele> + <time>2020-08-23T09:38:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979370" lon="0.5428250"> + <ele>1740.0</ele> + <time>2020-08-23T09:38:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978890" lon="0.5428130"> + <ele>1738.6</ele> + <time>2020-08-23T09:38:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978640" lon="0.5428080"> + <ele>1736.8</ele> + <time>2020-08-23T09:38:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978570" lon="0.5428150"> + <ele>1735.6</ele> + <time>2020-08-23T09:38:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978640" lon="0.5428290"> + <ele>1734.8</ele> + <time>2020-08-23T09:38:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978790" lon="0.5428360"> + <ele>1733.4</ele> + <time>2020-08-23T09:38:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979200" lon="0.5428620"> + <ele>1731.4</ele> + <time>2020-08-23T09:38:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979340" lon="0.5428700"> + <ele>1731.2</ele> + <time>2020-08-23T09:38:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979430" lon="0.5428730"> + <ele>1731.0</ele> + <time>2020-08-23T09:38:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979450" lon="0.5428760"> + <ele>1731.0</ele> + <time>2020-08-23T09:38:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980300" lon="0.5428690"> + <ele>1731.0</ele> + <time>2020-08-23T09:39:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980510" lon="0.5428550"> + <ele>1731.0</ele> + <time>2020-08-23T09:39:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980690" lon="0.5428400"> + <ele>1731.0</ele> + <time>2020-08-23T09:39:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980870" lon="0.5428280"> + <ele>1730.8</ele> + <time>2020-08-23T09:39:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980970" lon="0.5428170"> + <ele>1730.8</ele> + <time>2020-08-23T09:39:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981030" lon="0.5427990"> + <ele>1730.8</ele> + <time>2020-08-23T09:39:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981070" lon="0.5427780"> + <ele>1730.4</ele> + <time>2020-08-23T09:39:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981170" lon="0.5427550"> + <ele>1730.0</ele> + <time>2020-08-23T09:39:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981360" lon="0.5427320"> + <ele>1729.4</ele> + <time>2020-08-23T09:39:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981520" lon="0.5427080"> + <ele>1729.0</ele> + <time>2020-08-23T09:39:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981660" lon="0.5426840"> + <ele>1728.4</ele> + <time>2020-08-23T09:39:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981820" lon="0.5426540"> + <ele>1727.6</ele> + <time>2020-08-23T09:39:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982030" lon="0.5426260"> + <ele>1727.0</ele> + <time>2020-08-23T09:39:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982330" lon="0.5426070"> + <ele>1726.2</ele> + <time>2020-08-23T09:39:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982700" lon="0.5425850"> + <ele>1725.6</ele> + <time>2020-08-23T09:39:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983040" lon="0.5425540"> + <ele>1724.2</ele> + <time>2020-08-23T09:39:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983300" lon="0.5425210"> + <ele>1723.0</ele> + <time>2020-08-23T09:39:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983430" lon="0.5424920"> + <ele>1722.0</ele> + <time>2020-08-23T09:39:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983400" lon="0.5424710"> + <ele>1721.2</ele> + <time>2020-08-23T09:39:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5983210" lon="0.5424640"> + <ele>1720.4</ele> + <time>2020-08-23T09:39:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982900" lon="0.5424630"> + <ele>1719.6</ele> + <time>2020-08-23T09:39:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982510" lon="0.5424640"> + <ele>1718.4</ele> + <time>2020-08-23T09:39:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5982080" lon="0.5424630"> + <ele>1717.4</ele> + <time>2020-08-23T09:39:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981670" lon="0.5424540"> + <ele>1716.6</ele> + <time>2020-08-23T09:39:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5981210" lon="0.5424420"> + <ele>1715.8</ele> + <time>2020-08-23T09:39:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980700" lon="0.5424190"> + <ele>1715.2</ele> + <time>2020-08-23T09:39:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5980160" lon="0.5423940"> + <ele>1714.8</ele> + <time>2020-08-23T09:39:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979740" lon="0.5423670"> + <ele>1714.2</ele> + <time>2020-08-23T09:39:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5979330" lon="0.5423420"> + <ele>1713.8</ele> + <time>2020-08-23T09:39:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978900" lon="0.5423300"> + <ele>1713.4</ele> + <time>2020-08-23T09:39:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978450" lon="0.5423120"> + <ele>1712.6</ele> + <time>2020-08-23T09:39:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5978020" lon="0.5422970"> + <ele>1712.0</ele> + <time>2020-08-23T09:39:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977620" lon="0.5422770"> + <ele>1711.4</ele> + <time>2020-08-23T09:39:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977350" lon="0.5422610"> + <ele>1710.4</ele> + <time>2020-08-23T09:39:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5977170" lon="0.5422490"> + <ele>1709.4</ele> + <time>2020-08-23T09:39:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5976980" lon="0.5422220"> + <ele>1708.6</ele> + <time>2020-08-23T09:39:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5976730" lon="0.5421950"> + <ele>1707.8</ele> + <time>2020-08-23T09:39:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5976420" lon="0.5421570"> + <ele>1707.2</ele> + <time>2020-08-23T09:39:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5976150" lon="0.5421210"> + <ele>1706.8</ele> + <time>2020-08-23T09:39:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5975790" lon="0.5420820"> + <ele>1706.4</ele> + <time>2020-08-23T09:39:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5975350" lon="0.5420600"> + <ele>1706.2</ele> + <time>2020-08-23T09:39:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974900" lon="0.5420440"> + <ele>1706.0</ele> + <time>2020-08-23T09:39:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5974440" lon="0.5420290"> + <ele>1705.8</ele> + <time>2020-08-23T09:39:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5973990" lon="0.5420190"> + <ele>1705.4</ele> + <time>2020-08-23T09:39:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5973620" lon="0.5420030"> + <ele>1704.8</ele> + <time>2020-08-23T09:39:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5973240" lon="0.5419920"> + <ele>1704.2</ele> + <time>2020-08-23T09:39:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5972840" lon="0.5419910"> + <ele>1703.8</ele> + <time>2020-08-23T09:39:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5972490" lon="0.5419960"> + <ele>1702.8</ele> + <time>2020-08-23T09:39:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5972340" lon="0.5420050"> + <ele>1701.6</ele> + <time>2020-08-23T09:39:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5972250" lon="0.5420110"> + <ele>1701.0</ele> + <time>2020-08-23T09:39:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5972230" lon="0.5420160"> + <ele>1700.0</ele> + <time>2020-08-23T09:39:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5972180" lon="0.5420210"> + <ele>1699.6</ele> + <time>2020-08-23T09:39:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971990" lon="0.5420320"> + <ele>1698.8</ele> + <time>2020-08-23T09:40:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971800" lon="0.5420450"> + <ele>1697.8</ele> + <time>2020-08-23T09:40:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971520" lon="0.5420600"> + <ele>1696.6</ele> + <time>2020-08-23T09:40:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5971210" lon="0.5420740"> + <ele>1696.2</ele> + <time>2020-08-23T09:40:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970830" lon="0.5420880"> + <ele>1695.8</ele> + <time>2020-08-23T09:40:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970390" lon="0.5421040"> + <ele>1695.6</ele> + <time>2020-08-23T09:40:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5970030" lon="0.5421160"> + <ele>1695.6</ele> + <time>2020-08-23T09:40:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969730" lon="0.5421220"> + <ele>1695.4</ele> + <time>2020-08-23T09:40:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969400" lon="0.5421280"> + <ele>1695.2</ele> + <time>2020-08-23T09:40:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5969040" lon="0.5421330"> + <ele>1695.0</ele> + <time>2020-08-23T09:40:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968620" lon="0.5421350"> + <ele>1694.8</ele> + <time>2020-08-23T09:40:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5968230" lon="0.5421360"> + <ele>1694.8</ele> + <time>2020-08-23T09:40:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967860" lon="0.5421430"> + <ele>1694.6</ele> + <time>2020-08-23T09:40:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967550" lon="0.5421550"> + <ele>1694.4</ele> + <time>2020-08-23T09:40:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5967250" lon="0.5421630"> + <ele>1694.4</ele> + <time>2020-08-23T09:40:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966960" lon="0.5421670"> + <ele>1694.4</ele> + <time>2020-08-23T09:40:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966690" lon="0.5421680"> + <ele>1694.4</ele> + <time>2020-08-23T09:40:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966380" lon="0.5421670"> + <ele>1694.4</ele> + <time>2020-08-23T09:40:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5966100" lon="0.5421620"> + <ele>1694.4</ele> + <time>2020-08-23T09:40:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965850" lon="0.5421590"> + <ele>1694.4</ele> + <time>2020-08-23T09:40:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965610" lon="0.5421560"> + <ele>1694.4</ele> + <time>2020-08-23T09:40:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965360" lon="0.5421450"> + <ele>1694.4</ele> + <time>2020-08-23T09:40:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5965100" lon="0.5421370"> + <ele>1694.6</ele> + <time>2020-08-23T09:40:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964830" lon="0.5421320"> + <ele>1695.0</ele> + <time>2020-08-23T09:40:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964590" lon="0.5421270"> + <ele>1695.2</ele> + <time>2020-08-23T09:40:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964370" lon="0.5421200"> + <ele>1695.6</ele> + <time>2020-08-23T09:40:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5964160" lon="0.5421130"> + <ele>1695.6</ele> + <time>2020-08-23T09:40:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963970" lon="0.5421080"> + <ele>1695.8</ele> + <time>2020-08-23T09:40:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963690" lon="0.5421050"> + <ele>1695.8</ele> + <time>2020-08-23T09:40:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963380" lon="0.5421080"> + <ele>1696.0</ele> + <time>2020-08-23T09:40:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5963040" lon="0.5421150"> + <ele>1696.2</ele> + <time>2020-08-23T09:40:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5962690" lon="0.5421260"> + <ele>1696.2</ele> + <time>2020-08-23T09:40:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5962320" lon="0.5421330"> + <ele>1696.4</ele> + <time>2020-08-23T09:40:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5961990" lon="0.5421310"> + <ele>1696.4</ele> + <time>2020-08-23T09:40:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5961650" lon="0.5421170"> + <ele>1696.4</ele> + <time>2020-08-23T09:40:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5961320" lon="0.5420890"> + <ele>1696.4</ele> + <time>2020-08-23T09:40:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5961000" lon="0.5420540"> + <ele>1696.4</ele> + <time>2020-08-23T09:40:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960750" lon="0.5420210"> + <ele>1696.4</ele> + <time>2020-08-23T09:40:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960550" lon="0.5419930"> + <ele>1696.4</ele> + <time>2020-08-23T09:40:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960380" lon="0.5419660"> + <ele>1696.4</ele> + <time>2020-08-23T09:40:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960190" lon="0.5419290"> + <ele>1696.4</ele> + <time>2020-08-23T09:40:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960030" lon="0.5418940"> + <ele>1696.0</ele> + <time>2020-08-23T09:40:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959900" lon="0.5418660"> + <ele>1695.8</ele> + <time>2020-08-23T09:40:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959770" lon="0.5418460"> + <ele>1695.4</ele> + <time>2020-08-23T09:40:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959690" lon="0.5418210"> + <ele>1694.8</ele> + <time>2020-08-23T09:40:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959670" lon="0.5417940"> + <ele>1693.8</ele> + <time>2020-08-23T09:40:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959670" lon="0.5417670"> + <ele>1693.0</ele> + <time>2020-08-23T09:40:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959600" lon="0.5417420"> + <ele>1692.4</ele> + <time>2020-08-23T09:40:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959530" lon="0.5417070"> + <ele>1692.2</ele> + <time>2020-08-23T09:40:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959430" lon="0.5416600"> + <ele>1691.2</ele> + <time>2020-08-23T09:40:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959290" lon="0.5416070"> + <ele>1689.4</ele> + <time>2020-08-23T09:40:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959080" lon="0.5415560"> + <ele>1688.6</ele> + <time>2020-08-23T09:40:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958870" lon="0.5415120"> + <ele>1687.8</ele> + <time>2020-08-23T09:40:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958680" lon="0.5414730"> + <ele>1687.2</ele> + <time>2020-08-23T09:40:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958580" lon="0.5414380"> + <ele>1687.2</ele> + <time>2020-08-23T09:40:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958500" lon="0.5414010"> + <ele>1686.6</ele> + <time>2020-08-23T09:40:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958430" lon="0.5413640"> + <ele>1685.8</ele> + <time>2020-08-23T09:40:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958340" lon="0.5413120"> + <ele>1685.0</ele> + <time>2020-08-23T09:40:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958280" lon="0.5412660"> + <ele>1684.2</ele> + <time>2020-08-23T09:40:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958220" lon="0.5412180"> + <ele>1683.6</ele> + <time>2020-08-23T09:40:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958110" lon="0.5411550"> + <ele>1683.2</ele> + <time>2020-08-23T09:41:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957970" lon="0.5410850"> + <ele>1682.6</ele> + <time>2020-08-23T09:41:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957860" lon="0.5410240"> + <ele>1682.2</ele> + <time>2020-08-23T09:41:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957790" lon="0.5409690"> + <ele>1681.8</ele> + <time>2020-08-23T09:41:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957780" lon="0.5409250"> + <ele>1681.2</ele> + <time>2020-08-23T09:41:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957830" lon="0.5408850"> + <ele>1680.6</ele> + <time>2020-08-23T09:41:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957980" lon="0.5408460"> + <ele>1679.8</ele> + <time>2020-08-23T09:41:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958130" lon="0.5408000"> + <ele>1679.2</ele> + <time>2020-08-23T09:41:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958330" lon="0.5407490"> + <ele>1678.4</ele> + <time>2020-08-23T09:41:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958660" lon="0.5406970"> + <ele>1677.4</ele> + <time>2020-08-23T09:41:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959040" lon="0.5406460"> + <ele>1676.6</ele> + <time>2020-08-23T09:41:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959340" lon="0.5405870"> + <ele>1675.8</ele> + <time>2020-08-23T09:41:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959620" lon="0.5405290"> + <ele>1675.4</ele> + <time>2020-08-23T09:41:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959800" lon="0.5404640"> + <ele>1675.2</ele> + <time>2020-08-23T09:41:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959930" lon="0.5404000"> + <ele>1674.8</ele> + <time>2020-08-23T09:41:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960000" lon="0.5403430"> + <ele>1674.2</ele> + <time>2020-08-23T09:41:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960010" lon="0.5403020"> + <ele>1673.6</ele> + <time>2020-08-23T09:41:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960060" lon="0.5402680"> + <ele>1672.6</ele> + <time>2020-08-23T09:41:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960170" lon="0.5402300"> + <ele>1672.0</ele> + <time>2020-08-23T09:41:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960300" lon="0.5401800"> + <ele>1671.4</ele> + <time>2020-08-23T09:41:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960400" lon="0.5401320"> + <ele>1671.0</ele> + <time>2020-08-23T09:41:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960470" lon="0.5400990"> + <ele>1670.6</ele> + <time>2020-08-23T09:41:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960560" lon="0.5400720"> + <ele>1669.8</ele> + <time>2020-08-23T09:41:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>117</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960690" lon="0.5400320"> + <ele>1669.4</ele> + <time>2020-08-23T09:41:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960790" lon="0.5399820"> + <ele>1669.0</ele> + <time>2020-08-23T09:41:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960830" lon="0.5399380"> + <ele>1668.6</ele> + <time>2020-08-23T09:41:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960840" lon="0.5398940"> + <ele>1668.4</ele> + <time>2020-08-23T09:41:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960840" lon="0.5398430"> + <ele>1668.0</ele> + <time>2020-08-23T09:41:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960810" lon="0.5397940"> + <ele>1667.2</ele> + <time>2020-08-23T09:41:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960760" lon="0.5397460"> + <ele>1666.8</ele> + <time>2020-08-23T09:41:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960630" lon="0.5396890"> + <ele>1666.4</ele> + <time>2020-08-23T09:41:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960330" lon="0.5396300"> + <ele>1665.4</ele> + <time>2020-08-23T09:41:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959980" lon="0.5395770"> + <ele>1664.6</ele> + <time>2020-08-23T09:41:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959610" lon="0.5395340"> + <ele>1664.0</ele> + <time>2020-08-23T09:41:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959310" lon="0.5394920"> + <ele>1663.6</ele> + <time>2020-08-23T09:41:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958950" lon="0.5394570"> + <ele>1662.6</ele> + <time>2020-08-23T09:41:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958570" lon="0.5394330"> + <ele>1661.6</ele> + <time>2020-08-23T09:41:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958230" lon="0.5394160"> + <ele>1660.8</ele> + <time>2020-08-23T09:41:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957950" lon="0.5394030"> + <ele>1660.0</ele> + <time>2020-08-23T09:41:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957700" lon="0.5393900"> + <ele>1659.4</ele> + <time>2020-08-23T09:41:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957460" lon="0.5393780"> + <ele>1659.0</ele> + <time>2020-08-23T09:41:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957270" lon="0.5393650"> + <ele>1658.8</ele> + <time>2020-08-23T09:41:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957110" lon="0.5393460"> + <ele>1658.8</ele> + <time>2020-08-23T09:41:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956930" lon="0.5393310"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956680" lon="0.5393200"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956480" lon="0.5393140"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956270" lon="0.5393140"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956120" lon="0.5393190"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956110" lon="0.5393240"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956320" lon="0.5393270"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956820" lon="0.5393390"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957080" lon="0.5393510"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957340" lon="0.5393680"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957630" lon="0.5393900"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957940" lon="0.5394080"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958300" lon="0.5394260"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958640" lon="0.5394460"> + <ele>1658.6</ele> + <time>2020-08-23T09:41:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958960" lon="0.5394720"> + <ele>1658.4</ele> + <time>2020-08-23T09:41:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959290" lon="0.5395040"> + <ele>1658.4</ele> + <time>2020-08-23T09:41:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959610" lon="0.5395410"> + <ele>1658.4</ele> + <time>2020-08-23T09:42:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959990" lon="0.5395680"> + <ele>1658.2</ele> + <time>2020-08-23T09:42:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960380" lon="0.5395720"> + <ele>1658.2</ele> + <time>2020-08-23T09:42:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960620" lon="0.5395240"> + <ele>1658.0</ele> + <time>2020-08-23T09:42:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960700" lon="0.5394610"> + <ele>1657.8</ele> + <time>2020-08-23T09:42:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960570" lon="0.5393930"> + <ele>1657.4</ele> + <time>2020-08-23T09:42:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5960240" lon="0.5393270"> + <ele>1657.2</ele> + <time>2020-08-23T09:42:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959680" lon="0.5392590"> + <ele>1657.0</ele> + <time>2020-08-23T09:42:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5959260" lon="0.5391800"> + <ele>1656.6</ele> + <time>2020-08-23T09:42:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958790" lon="0.5390920"> + <ele>1656.4</ele> + <time>2020-08-23T09:42:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5958220" lon="0.5390130"> + <ele>1656.2</ele> + <time>2020-08-23T09:42:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>119</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5957580" lon="0.5389480"> + <ele>1656.0</ele> + <time>2020-08-23T09:42:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956800" lon="0.5389020"> + <ele>1655.4</ele> + <time>2020-08-23T09:42:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5956050" lon="0.5388710"> + <ele>1654.8</ele> + <time>2020-08-23T09:42:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5955440" lon="0.5388520"> + <ele>1654.0</ele> + <time>2020-08-23T09:42:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5954990" lon="0.5388410"> + <ele>1653.0</ele> + <time>2020-08-23T09:42:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5954660" lon="0.5388300"> + <ele>1651.8</ele> + <time>2020-08-23T09:42:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5954400" lon="0.5388260"> + <ele>1650.8</ele> + <time>2020-08-23T09:42:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5954190" lon="0.5388240"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5953960" lon="0.5388210"> + <ele>1650.0</ele> + <time>2020-08-23T09:42:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5953720" lon="0.5388130"> + <ele>1649.8</ele> + <time>2020-08-23T09:42:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5953520" lon="0.5387960"> + <ele>1649.8</ele> + <time>2020-08-23T09:42:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5953240" lon="0.5387770"> + <ele>1649.8</ele> + <time>2020-08-23T09:42:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5952960" lon="0.5387550"> + <ele>1649.8</ele> + <time>2020-08-23T09:42:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5952630" lon="0.5387380"> + <ele>1649.8</ele> + <time>2020-08-23T09:42:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5952310" lon="0.5387230"> + <ele>1649.8</ele> + <time>2020-08-23T09:42:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5952020" lon="0.5387110"> + <ele>1649.8</ele> + <time>2020-08-23T09:42:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5951730" lon="0.5387080"> + <ele>1649.8</ele> + <time>2020-08-23T09:42:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5951470" lon="0.5387060"> + <ele>1650.0</ele> + <time>2020-08-23T09:42:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5951200" lon="0.5387040"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5950940" lon="0.5386990"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5950740" lon="0.5386980"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5950640" lon="0.5387000"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5950540" lon="0.5387010"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5950460" lon="0.5387030"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5950270" lon="0.5387020"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>113</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5949960" lon="0.5386900"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5949610" lon="0.5386730"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5949210" lon="0.5386550"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5948820" lon="0.5386440"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>108</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5948370" lon="0.5386470"> + <ele>1650.2</ele> + <time>2020-08-23T09:42:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5947900" lon="0.5386620"> + <ele>1650.0</ele> + <time>2020-08-23T09:42:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5947440" lon="0.5386880"> + <ele>1650.0</ele> + <time>2020-08-23T09:42:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5947110" lon="0.5386880"> + <ele>1649.8</ele> + <time>2020-08-23T09:42:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5946770" lon="0.5386740"> + <ele>1649.4</ele> + <time>2020-08-23T09:42:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5946440" lon="0.5386370"> + <ele>1648.8</ele> + <time>2020-08-23T09:42:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5946260" lon="0.5386350"> + <ele>1648.4</ele> + <time>2020-08-23T09:42:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5946080" lon="0.5386250"> + <ele>1648.0</ele> + <time>2020-08-23T09:42:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5945760" lon="0.5386210"> + <ele>1647.8</ele> + <time>2020-08-23T09:42:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5945490" lon="0.5386220"> + <ele>1647.2</ele> + <time>2020-08-23T09:42:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5945240" lon="0.5386280"> + <ele>1646.6</ele> + <time>2020-08-23T09:42:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5944980" lon="0.5386330"> + <ele>1646.2</ele> + <time>2020-08-23T09:42:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5944660" lon="0.5386410"> + <ele>1645.8</ele> + <time>2020-08-23T09:42:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5944240" lon="0.5386470"> + <ele>1645.4</ele> + <time>2020-08-23T09:42:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943880" lon="0.5386510"> + <ele>1644.8</ele> + <time>2020-08-23T09:42:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>96</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943550" lon="0.5386500"> + <ele>1644.2</ele> + <time>2020-08-23T09:42:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>93</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5943200" lon="0.5386350"> + <ele>1644.0</ele> + <time>2020-08-23T09:42:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>92</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942850" lon="0.5386190"> + <ele>1643.8</ele> + <time>2020-08-23T09:42:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>92</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942640" lon="0.5386080"> + <ele>1643.6</ele> + <time>2020-08-23T09:42:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>91</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942420" lon="0.5386200"> + <ele>1643.6</ele> + <time>2020-08-23T09:42:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>91</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5942220" lon="0.5386310"> + <ele>1643.2</ele> + <time>2020-08-23T09:43:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>92</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941890" lon="0.5386420"> + <ele>1643.0</ele> + <time>2020-08-23T09:43:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>94</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941550" lon="0.5386370"> + <ele>1642.8</ele> + <time>2020-08-23T09:43:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>96</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5941220" lon="0.5386450"> + <ele>1642.6</ele> + <time>2020-08-23T09:43:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940860" lon="0.5386580"> + <ele>1642.4</ele> + <time>2020-08-23T09:43:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>98</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940460" lon="0.5386760"> + <ele>1642.2</ele> + <time>2020-08-23T09:43:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5940040" lon="0.5387030"> + <ele>1642.2</ele> + <time>2020-08-23T09:43:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939560" lon="0.5387390"> + <ele>1642.0</ele> + <time>2020-08-23T09:43:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5939160" lon="0.5387780"> + <ele>1641.8</ele> + <time>2020-08-23T09:43:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938790" lon="0.5388060"> + <ele>1641.6</ele> + <time>2020-08-23T09:43:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938490" lon="0.5388290"> + <ele>1641.2</ele> + <time>2020-08-23T09:43:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5938080" lon="0.5388280"> + <ele>1640.8</ele> + <time>2020-08-23T09:43:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937710" lon="0.5388340"> + <ele>1640.4</ele> + <time>2020-08-23T09:43:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>96</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5937270" lon="0.5388480"> + <ele>1640.0</ele> + <time>2020-08-23T09:43:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>95</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936890" lon="0.5388560"> + <ele>1639.6</ele> + <time>2020-08-23T09:43:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>96</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936500" lon="0.5388630"> + <ele>1639.4</ele> + <time>2020-08-23T09:43:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>96</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5936020" lon="0.5388740"> + <ele>1639.4</ele> + <time>2020-08-23T09:43:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>95</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935570" lon="0.5388870"> + <ele>1639.2</ele> + <time>2020-08-23T09:43:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>93</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5935170" lon="0.5388880"> + <ele>1639.0</ele> + <time>2020-08-23T09:43:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>91</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934900" lon="0.5388910"> + <ele>1638.6</ele> + <time>2020-08-23T09:43:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>89</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934670" lon="0.5388850"> + <ele>1638.2</ele> + <time>2020-08-23T09:43:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>88</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934480" lon="0.5388860"> + <ele>1638.0</ele> + <time>2020-08-23T09:43:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>89</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934320" lon="0.5388790"> + <ele>1638.0</ele> + <time>2020-08-23T09:43:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>89</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934180" lon="0.5388690"> + <ele>1638.0</ele> + <time>2020-08-23T09:43:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>90</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5934050" lon="0.5388540"> + <ele>1637.8</ele> + <time>2020-08-23T09:43:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>91</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933810" lon="0.5388400"> + <ele>1637.8</ele> + <time>2020-08-23T09:43:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>91</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5933360" lon="0.5388300"> + <ele>1637.8</ele> + <time>2020-08-23T09:43:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>92</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932890" lon="0.5388210"> + <ele>1637.8</ele> + <time>2020-08-23T09:43:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>93</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932500" lon="0.5388250"> + <ele>1637.6</ele> + <time>2020-08-23T09:43:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>92</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932160" lon="0.5388200"> + <ele>1637.6</ele> + <time>2020-08-23T09:43:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>93</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931790" lon="0.5388210"> + <ele>1637.6</ele> + <time>2020-08-23T09:43:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>93</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931450" lon="0.5388250"> + <ele>1637.4</ele> + <time>2020-08-23T09:43:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>93</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931190" lon="0.5388310"> + <ele>1637.4</ele> + <time>2020-08-23T09:43:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>95</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930990" lon="0.5388330"> + <ele>1637.4</ele> + <time>2020-08-23T09:43:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>96</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930810" lon="0.5388300"> + <ele>1637.4</ele> + <time>2020-08-23T09:43:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>97</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930610" lon="0.5388300"> + <ele>1637.2</ele> + <time>2020-08-23T09:43:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>99</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930420" lon="0.5388330"> + <ele>1637.4</ele> + <time>2020-08-23T09:43:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>100</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930220" lon="0.5388380"> + <ele>1637.6</ele> + <time>2020-08-23T09:43:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>101</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930040" lon="0.5388440"> + <ele>1637.6</ele> + <time>2020-08-23T09:43:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929870" lon="0.5388470"> + <ele>1637.6</ele> + <time>2020-08-23T09:43:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>102</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929690" lon="0.5388480"> + <ele>1637.6</ele> + <time>2020-08-23T09:43:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>103</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929510" lon="0.5388460"> + <ele>1637.6</ele> + <time>2020-08-23T09:43:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>104</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929290" lon="0.5388440"> + <ele>1637.6</ele> + <time>2020-08-23T09:43:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>106</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929070" lon="0.5388410"> + <ele>1637.8</ele> + <time>2020-08-23T09:43:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928870" lon="0.5388380"> + <ele>1638.0</ele> + <time>2020-08-23T09:43:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>107</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928710" lon="0.5388320"> + <ele>1638.2</ele> + <time>2020-08-23T09:43:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>109</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928500" lon="0.5388360"> + <ele>1638.6</ele> + <time>2020-08-23T09:43:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>110</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928300" lon="0.5388350"> + <ele>1638.8</ele> + <time>2020-08-23T09:43:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>111</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928070" lon="0.5388360"> + <ele>1639.0</ele> + <time>2020-08-23T09:43:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>112</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927820" lon="0.5388400"> + <ele>1639.2</ele> + <time>2020-08-23T09:43:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>114</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927580" lon="0.5388480"> + <ele>1639.2</ele> + <time>2020-08-23T09:43:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>115</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927370" lon="0.5388650"> + <ele>1639.4</ele> + <time>2020-08-23T09:43:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>116</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927160" lon="0.5388800"> + <ele>1639.6</ele> + <time>2020-08-23T09:43:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>118</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926990" lon="0.5388970"> + <ele>1639.6</ele> + <time>2020-08-23T09:43:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>120</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926790" lon="0.5389120"> + <ele>1639.8</ele> + <time>2020-08-23T09:43:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>121</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926590" lon="0.5389250"> + <ele>1640.0</ele> + <time>2020-08-23T09:43:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>122</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926350" lon="0.5389380"> + <ele>1640.2</ele> + <time>2020-08-23T09:43:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>123</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926150" lon="0.5389530"> + <ele>1640.2</ele> + <time>2020-08-23T09:43:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925970" lon="0.5389660"> + <ele>1640.4</ele> + <time>2020-08-23T09:43:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925790" lon="0.5389790"> + <ele>1640.4</ele> + <time>2020-08-23T09:43:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>124</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925530" lon="0.5389900"> + <ele>1640.4</ele> + <time>2020-08-23T09:44:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925260" lon="0.5389950"> + <ele>1640.6</ele> + <time>2020-08-23T09:44:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>125</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925010" lon="0.5390050"> + <ele>1640.6</ele> + <time>2020-08-23T09:44:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924800" lon="0.5390200"> + <ele>1640.8</ele> + <time>2020-08-23T09:44:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>126</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924600" lon="0.5390310"> + <ele>1641.0</ele> + <time>2020-08-23T09:44:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924410" lon="0.5390420"> + <ele>1641.4</ele> + <time>2020-08-23T09:44:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924240" lon="0.5390550"> + <ele>1641.4</ele> + <time>2020-08-23T09:44:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924080" lon="0.5390660"> + <ele>1641.6</ele> + <time>2020-08-23T09:44:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923890" lon="0.5390730"> + <ele>1641.6</ele> + <time>2020-08-23T09:44:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>128</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923660" lon="0.5390740"> + <ele>1641.8</ele> + <time>2020-08-23T09:44:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923430" lon="0.5390750"> + <ele>1641.8</ele> + <time>2020-08-23T09:44:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923230" lon="0.5390800"> + <ele>1642.0</ele> + <time>2020-08-23T09:44:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>130</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922980" lon="0.5390830"> + <ele>1642.2</ele> + <time>2020-08-23T09:44:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922830" lon="0.5391000"> + <ele>1642.2</ele> + <time>2020-08-23T09:44:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922640" lon="0.5391120"> + <ele>1642.4</ele> + <time>2020-08-23T09:44:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922390" lon="0.5391270"> + <ele>1642.6</ele> + <time>2020-08-23T09:44:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922160" lon="0.5391470"> + <ele>1642.8</ele> + <time>2020-08-23T09:44:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921910" lon="0.5391650"> + <ele>1643.0</ele> + <time>2020-08-23T09:44:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921700" lon="0.5391850"> + <ele>1643.2</ele> + <time>2020-08-23T09:44:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921500" lon="0.5392010"> + <ele>1643.2</ele> + <time>2020-08-23T09:44:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921330" lon="0.5392150"> + <ele>1643.2</ele> + <time>2020-08-23T09:44:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921180" lon="0.5392330"> + <ele>1643.4</ele> + <time>2020-08-23T09:44:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921050" lon="0.5392560"> + <ele>1643.4</ele> + <time>2020-08-23T09:44:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920970" lon="0.5392810"> + <ele>1643.4</ele> + <time>2020-08-23T09:44:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920870" lon="0.5393060"> + <ele>1643.6</ele> + <time>2020-08-23T09:44:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920800" lon="0.5393320"> + <ele>1643.6</ele> + <time>2020-08-23T09:44:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920700" lon="0.5393570"> + <ele>1643.6</ele> + <time>2020-08-23T09:44:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920640" lon="0.5393890"> + <ele>1643.4</ele> + <time>2020-08-23T09:44:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920580" lon="0.5394140"> + <ele>1643.8</ele> + <time>2020-08-23T09:44:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920580" lon="0.5394450"> + <ele>1643.6</ele> + <time>2020-08-23T09:44:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920490" lon="0.5394680"> + <ele>1643.8</ele> + <time>2020-08-23T09:44:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>134</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920380" lon="0.5394910"> + <ele>1644.0</ele> + <time>2020-08-23T09:44:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920270" lon="0.5395180"> + <ele>1644.2</ele> + <time>2020-08-23T09:44:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920170" lon="0.5395450"> + <ele>1644.2</ele> + <time>2020-08-23T09:44:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920070" lon="0.5395720"> + <ele>1644.4</ele> + <time>2020-08-23T09:44:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919970" lon="0.5395980"> + <ele>1644.4</ele> + <time>2020-08-23T09:44:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919910" lon="0.5396260"> + <ele>1644.6</ele> + <time>2020-08-23T09:44:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919840" lon="0.5396550"> + <ele>1644.6</ele> + <time>2020-08-23T09:44:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>137</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919790" lon="0.5396840"> + <ele>1644.8</ele> + <time>2020-08-23T09:44:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919740" lon="0.5397170"> + <ele>1644.8</ele> + <time>2020-08-23T09:44:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919650" lon="0.5397430"> + <ele>1645.2</ele> + <time>2020-08-23T09:44:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919560" lon="0.5397730"> + <ele>1645.2</ele> + <time>2020-08-23T09:44:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919470" lon="0.5398000"> + <ele>1645.6</ele> + <time>2020-08-23T09:44:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919440" lon="0.5398300"> + <ele>1645.8</ele> + <time>2020-08-23T09:44:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919400" lon="0.5398600"> + <ele>1645.8</ele> + <time>2020-08-23T09:44:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919370" lon="0.5398890"> + <ele>1646.0</ele> + <time>2020-08-23T09:44:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919330" lon="0.5399160"> + <ele>1646.0</ele> + <time>2020-08-23T09:44:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919250" lon="0.5399460"> + <ele>1646.2</ele> + <time>2020-08-23T09:44:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919170" lon="0.5399740"> + <ele>1646.2</ele> + <time>2020-08-23T09:44:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919070" lon="0.5399980"> + <ele>1646.2</ele> + <time>2020-08-23T09:44:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918970" lon="0.5400230"> + <ele>1646.4</ele> + <time>2020-08-23T09:44:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918860" lon="0.5400480"> + <ele>1646.6</ele> + <time>2020-08-23T09:44:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918780" lon="0.5400740"> + <ele>1647.0</ele> + <time>2020-08-23T09:44:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918710" lon="0.5400980"> + <ele>1647.0</ele> + <time>2020-08-23T09:44:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918610" lon="0.5401230"> + <ele>1647.2</ele> + <time>2020-08-23T09:44:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918510" lon="0.5401480"> + <ele>1647.4</ele> + <time>2020-08-23T09:44:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918440" lon="0.5401720"> + <ele>1647.4</ele> + <time>2020-08-23T09:44:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918370" lon="0.5401980"> + <ele>1647.6</ele> + <time>2020-08-23T09:44:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918300" lon="0.5402260"> + <ele>1647.8</ele> + <time>2020-08-23T09:44:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918210" lon="0.5402520"> + <ele>1648.0</ele> + <time>2020-08-23T09:44:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918110" lon="0.5402790"> + <ele>1648.2</ele> + <time>2020-08-23T09:45:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918000" lon="0.5403050"> + <ele>1648.2</ele> + <time>2020-08-23T09:45:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917880" lon="0.5403300"> + <ele>1648.8</ele> + <time>2020-08-23T09:45:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917790" lon="0.5403550"> + <ele>1649.0</ele> + <time>2020-08-23T09:45:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917710" lon="0.5403790"> + <ele>1649.2</ele> + <time>2020-08-23T09:45:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917640" lon="0.5404030"> + <ele>1649.2</ele> + <time>2020-08-23T09:45:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917570" lon="0.5404260"> + <ele>1649.4</ele> + <time>2020-08-23T09:45:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917510" lon="0.5404540"> + <ele>1649.6</ele> + <time>2020-08-23T09:45:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917440" lon="0.5404800"> + <ele>1649.8</ele> + <time>2020-08-23T09:45:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917350" lon="0.5405070"> + <ele>1650.0</ele> + <time>2020-08-23T09:45:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917280" lon="0.5405350"> + <ele>1650.0</ele> + <time>2020-08-23T09:45:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917210" lon="0.5405640"> + <ele>1650.2</ele> + <time>2020-08-23T09:45:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917170" lon="0.5405900"> + <ele>1650.4</ele> + <time>2020-08-23T09:45:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917110" lon="0.5406190"> + <ele>1650.6</ele> + <time>2020-08-23T09:45:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917010" lon="0.5406460"> + <ele>1651.0</ele> + <time>2020-08-23T09:45:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916890" lon="0.5406750"> + <ele>1651.2</ele> + <time>2020-08-23T09:45:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916760" lon="0.5407030"> + <ele>1651.4</ele> + <time>2020-08-23T09:45:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916690" lon="0.5407350"> + <ele>1651.6</ele> + <time>2020-08-23T09:45:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916660" lon="0.5407640"> + <ele>1652.0</ele> + <time>2020-08-23T09:45:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916610" lon="0.5407910"> + <ele>1652.2</ele> + <time>2020-08-23T09:45:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916510" lon="0.5408200"> + <ele>1652.4</ele> + <time>2020-08-23T09:45:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916440" lon="0.5408500"> + <ele>1652.6</ele> + <time>2020-08-23T09:45:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916410" lon="0.5408800"> + <ele>1652.8</ele> + <time>2020-08-23T09:45:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916390" lon="0.5409070"> + <ele>1653.0</ele> + <time>2020-08-23T09:45:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916390" lon="0.5409350"> + <ele>1653.2</ele> + <time>2020-08-23T09:45:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916420" lon="0.5409650"> + <ele>1653.6</ele> + <time>2020-08-23T09:45:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916440" lon="0.5409950"> + <ele>1654.0</ele> + <time>2020-08-23T09:45:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916460" lon="0.5410220"> + <ele>1654.2</ele> + <time>2020-08-23T09:45:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916520" lon="0.5410520"> + <ele>1654.4</ele> + <time>2020-08-23T09:45:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916600" lon="0.5410790"> + <ele>1654.4</ele> + <time>2020-08-23T09:45:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916700" lon="0.5411030"> + <ele>1654.6</ele> + <time>2020-08-23T09:45:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5916840" lon="0.5411250"> + <ele>1654.8</ele> + <time>2020-08-23T09:45:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917000" lon="0.5411450"> + <ele>1655.2</ele> + <time>2020-08-23T09:45:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917160" lon="0.5411650"> + <ele>1655.2</ele> + <time>2020-08-23T09:45:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917310" lon="0.5411850"> + <ele>1655.2</ele> + <time>2020-08-23T09:45:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917470" lon="0.5412050"> + <ele>1655.4</ele> + <time>2020-08-23T09:45:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917620" lon="0.5412250"> + <ele>1655.6</ele> + <time>2020-08-23T09:45:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917770" lon="0.5412450"> + <ele>1655.8</ele> + <time>2020-08-23T09:45:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5917920" lon="0.5412620"> + <ele>1656.0</ele> + <time>2020-08-23T09:45:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918110" lon="0.5412720"> + <ele>1656.2</ele> + <time>2020-08-23T09:45:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918330" lon="0.5412800"> + <ele>1656.2</ele> + <time>2020-08-23T09:45:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918520" lon="0.5412870"> + <ele>1656.4</ele> + <time>2020-08-23T09:45:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918700" lon="0.5412910"> + <ele>1656.6</ele> + <time>2020-08-23T09:45:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5918910" lon="0.5412920"> + <ele>1656.8</ele> + <time>2020-08-23T09:45:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919120" lon="0.5412940"> + <ele>1657.0</ele> + <time>2020-08-23T09:45:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919340" lon="0.5412930"> + <ele>1657.2</ele> + <time>2020-08-23T09:45:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919550" lon="0.5412910"> + <ele>1657.4</ele> + <time>2020-08-23T09:45:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919770" lon="0.5412880"> + <ele>1657.6</ele> + <time>2020-08-23T09:45:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5919960" lon="0.5412830"> + <ele>1658.0</ele> + <time>2020-08-23T09:45:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920170" lon="0.5412730"> + <ele>1658.2</ele> + <time>2020-08-23T09:45:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920380" lon="0.5412630"> + <ele>1658.2</ele> + <time>2020-08-23T09:45:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920610" lon="0.5412550"> + <ele>1658.4</ele> + <time>2020-08-23T09:45:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5920830" lon="0.5412480"> + <ele>1658.4</ele> + <time>2020-08-23T09:45:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921060" lon="0.5412390"> + <ele>1658.6</ele> + <time>2020-08-23T09:45:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921290" lon="0.5412310"> + <ele>1658.8</ele> + <time>2020-08-23T09:45:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921510" lon="0.5412210"> + <ele>1659.2</ele> + <time>2020-08-23T09:45:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921730" lon="0.5412120"> + <ele>1659.4</ele> + <time>2020-08-23T09:45:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5921960" lon="0.5412050"> + <ele>1659.6</ele> + <time>2020-08-23T09:45:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>18</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922180" lon="0.5411970"> + <ele>1659.8</ele> + <time>2020-08-23T09:45:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>153</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922400" lon="0.5411870"> + <ele>1660.0</ele> + <time>2020-08-23T09:45:59Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922620" lon="0.5411770"> + <ele>1660.2</ele> + <time>2020-08-23T09:46:00Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5922830" lon="0.5411700"> + <ele>1660.4</ele> + <time>2020-08-23T09:46:01Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>152</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923070" lon="0.5411630"> + <ele>1660.4</ele> + <time>2020-08-23T09:46:02Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923310" lon="0.5411560"> + <ele>1660.4</ele> + <time>2020-08-23T09:46:03Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923560" lon="0.5411460"> + <ele>1660.6</ele> + <time>2020-08-23T09:46:04Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5923830" lon="0.5411390"> + <ele>1660.6</ele> + <time>2020-08-23T09:46:05Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924030" lon="0.5411360"> + <ele>1660.6</ele> + <time>2020-08-23T09:46:06Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924200" lon="0.5411320"> + <ele>1660.8</ele> + <time>2020-08-23T09:46:07Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>151</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924360" lon="0.5411280"> + <ele>1660.8</ele> + <time>2020-08-23T09:46:08Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924560" lon="0.5411180"> + <ele>1660.8</ele> + <time>2020-08-23T09:46:09Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924760" lon="0.5411090"> + <ele>1661.0</ele> + <time>2020-08-23T09:46:10Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>150</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5924950" lon="0.5411030"> + <ele>1661.0</ele> + <time>2020-08-23T09:46:11Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925210" lon="0.5410950"> + <ele>1661.0</ele> + <time>2020-08-23T09:46:12Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925440" lon="0.5410840"> + <ele>1661.2</ele> + <time>2020-08-23T09:46:13Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925640" lon="0.5410720"> + <ele>1661.4</ele> + <time>2020-08-23T09:46:14Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>149</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5925800" lon="0.5410540"> + <ele>1661.4</ele> + <time>2020-08-23T09:46:15Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926000" lon="0.5410380"> + <ele>1661.6</ele> + <time>2020-08-23T09:46:16Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>148</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926230" lon="0.5410270"> + <ele>1661.6</ele> + <time>2020-08-23T09:46:17Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926450" lon="0.5410180"> + <ele>1661.8</ele> + <time>2020-08-23T09:46:18Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926700" lon="0.5410080"> + <ele>1661.8</ele> + <time>2020-08-23T09:46:19Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5926960" lon="0.5409960"> + <ele>1661.8</ele> + <time>2020-08-23T09:46:20Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927230" lon="0.5409860"> + <ele>1662.0</ele> + <time>2020-08-23T09:46:21Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927490" lon="0.5409820"> + <ele>1662.4</ele> + <time>2020-08-23T09:46:22Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927730" lon="0.5409760"> + <ele>1662.6</ele> + <time>2020-08-23T09:46:23Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5927960" lon="0.5409660"> + <ele>1662.6</ele> + <time>2020-08-23T09:46:24Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928180" lon="0.5409540"> + <ele>1662.8</ele> + <time>2020-08-23T09:46:25Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928420" lon="0.5409430"> + <ele>1662.8</ele> + <time>2020-08-23T09:46:26Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928640" lon="0.5409300"> + <ele>1662.8</ele> + <time>2020-08-23T09:46:27Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5928870" lon="0.5409100"> + <ele>1662.8</ele> + <time>2020-08-23T09:46:28Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929090" lon="0.5408980"> + <ele>1663.0</ele> + <time>2020-08-23T09:46:29Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929320" lon="0.5408880"> + <ele>1663.0</ele> + <time>2020-08-23T09:46:30Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929530" lon="0.5408810"> + <ele>1663.0</ele> + <time>2020-08-23T09:46:31Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5929770" lon="0.5408710"> + <ele>1663.0</ele> + <time>2020-08-23T09:46:32Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930010" lon="0.5408590"> + <ele>1663.2</ele> + <time>2020-08-23T09:46:33Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>147</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930280" lon="0.5408530"> + <ele>1663.4</ele> + <time>2020-08-23T09:46:34Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930540" lon="0.5408500"> + <ele>1663.4</ele> + <time>2020-08-23T09:46:35Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930770" lon="0.5408420"> + <ele>1663.6</ele> + <time>2020-08-23T09:46:36Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930980" lon="0.5408290"> + <ele>1663.8</ele> + <time>2020-08-23T09:46:37Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931140" lon="0.5408120"> + <ele>1663.8</ele> + <time>2020-08-23T09:46:38Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931240" lon="0.5407870"> + <ele>1664.2</ele> + <time>2020-08-23T09:46:39Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>146</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931330" lon="0.5407600"> + <ele>1664.2</ele> + <time>2020-08-23T09:46:40Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>145</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931380" lon="0.5407300"> + <ele>1664.4</ele> + <time>2020-08-23T09:46:41Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>144</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931380" lon="0.5406990"> + <ele>1664.4</ele> + <time>2020-08-23T09:46:42Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931350" lon="0.5406660"> + <ele>1664.4</ele> + <time>2020-08-23T09:46:43Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>143</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931300" lon="0.5406300"> + <ele>1664.6</ele> + <time>2020-08-23T09:46:44Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>142</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931250" lon="0.5405910"> + <ele>1664.8</ele> + <time>2020-08-23T09:46:45Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931190" lon="0.5405510"> + <ele>1665.0</ele> + <time>2020-08-23T09:46:46Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>141</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931110" lon="0.5405080"> + <ele>1665.0</ele> + <time>2020-08-23T09:46:47Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>140</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930980" lon="0.5404630"> + <ele>1665.0</ele> + <time>2020-08-23T09:46:48Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>139</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930840" lon="0.5404160"> + <ele>1665.0</ele> + <time>2020-08-23T09:46:49Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930720" lon="0.5403650"> + <ele>1665.0</ele> + <time>2020-08-23T09:46:50Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>138</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930710" lon="0.5403120"> + <ele>1665.0</ele> + <time>2020-08-23T09:46:51Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5930840" lon="0.5402610"> + <ele>1665.0</ele> + <time>2020-08-23T09:46:52Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>136</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931120" lon="0.5402280"> + <ele>1665.0</ele> + <time>2020-08-23T09:46:53Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>135</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931460" lon="0.5402080"> + <ele>1665.0</ele> + <time>2020-08-23T09:46:54Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>133</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5931800" lon="0.5401940"> + <ele>1664.8</ele> + <time>2020-08-23T09:46:55Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>132</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932040" lon="0.5401890"> + <ele>1664.6</ele> + <time>2020-08-23T09:46:56Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>131</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932150" lon="0.5401930"> + <ele>1664.4</ele> + <time>2020-08-23T09:46:57Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>129</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + <trkpt lat="42.5932190" lon="0.5401930"> + <ele>1664.2</ele> + <time>2020-08-23T09:46:58Z</time> + <extensions> + <gpxtpx:TrackPointExtension> + <gpxtpx:atemp>19</gpxtpx:atemp> + <gpxtpx:hr>127</gpxtpx:hr> + </gpxtpx:TrackPointExtension> + </extensions> + </trkpt> + </trkseg> + </trk> +</gpx> diff --git a/public/static/SampleData/gpx/route.gpx b/public/static/SampleData/gpx/route.gpx new file mode 100644 index 0000000..c0331bb --- /dev/null +++ b/public/static/SampleData/gpx/route.gpx @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<gpx xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="RouteConverter"> + <metadata> + <name>Test file by Patrick</name> + </metadata> + <rte> + <name>Patrick's Route</name> + <rtept lon="9.860624216140083" lat="54.9328621088893"> + <ele>0.0</ele> + <name>Position 1</name> + </rtept> + <rtept lon="9.86092208681491" lat="54.93293237320851"> + <ele>0.0</ele> + <name>Position 2</name> + </rtept> + <rtept lon="9.86187816543752" lat="54.93327743521187"> + <ele>0.0</ele> + <name>Position 3</name> + </rtept> + <rtept lon="9.862439849679859" lat="54.93342326167919"> + <ele>0.0</ele> + <name>Position 4</name> + </rtept> + </rte> +</gpx> \ No newline at end of file diff --git a/public/static/SampleData/gpx/simple.gpx b/public/static/SampleData/gpx/simple.gpx new file mode 100644 index 0000000..d78090b --- /dev/null +++ b/public/static/SampleData/gpx/simple.gpx @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<gpx xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="RouteConverter"> + <metadata> + <name>Test file by Andre</name> + </metadata> + <wpt lon="38.737125" lat="-9.139242"> + <ele>0.0</ele> + <name>Position 1</name> + </wpt> +</gpx> diff --git a/public/static/SampleData/gpx/wpt.gpx b/public/static/SampleData/gpx/wpt.gpx new file mode 100644 index 0000000..a0beced --- /dev/null +++ b/public/static/SampleData/gpx/wpt.gpx @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<gpx xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="RouteConverter"> + <metadata> + <name>Test file by Patrick</name> + </metadata> + <wpt lon="9.860624216140083" lat="54.9328621088893"> + <ele>0.0</ele> + <name>Position 1</name> + </wpt> + <wpt lon="9.86092208681491" lat="54.93293237320851"> + <ele>0.0</ele> + <name>Position 2</name> + </wpt> + <wpt lon="9.86187816543752" lat="54.93327743521187"> + <ele>0.0</ele> + <name>Position 3</name> + </wpt> + <wpt lon="9.862439849679859" lat="54.93342326167919"> + <ele>0.0</ele> + <name>Position 4</name> + </wpt> +</gpx> \ No newline at end of file diff --git a/public/static/SampleData/kml/bikeRide.kml b/public/static/SampleData/kml/bikeRide.kml new file mode 100644 index 0000000..8818d7b --- /dev/null +++ b/public/static/SampleData/kml/bikeRide.kml @@ -0,0 +1,10565 @@ +<?xml version="1.0" encoding="UTF-8"?> +<kml xmlns="http://www.opengis.net/kml/2.2" +xmlns:gx="http://www.google.com/kml/ext/2.2" +xmlns:atom="http://www.w3.org/2005/Atom"> +<Document> +<open>1</open> +<visibility>1</visibility> +<name><![CDATA[Schuylkill River Trail Bike Ride]]></name> +<Style id="track"> +<LineStyle><color>7f0000ff</color><width>4</width></LineStyle> +<IconStyle> +<scale>1.3</scale> +<Icon><href>http://maps.google.com/mapfiles/kml/paddle/ylw-circle.png</href></Icon> +</IconStyle> +</Style> +<Style id="start"><IconStyle> +<scale>1.3</scale> +<Icon><href>http://maps.google.com/mapfiles/kml/paddle/grn-circle.png</href></Icon> +<hotSpot x="32" y="1" xunits="pixels" yunits="pixels"/> +</IconStyle></Style> +<Style id="end"><IconStyle> +<scale>1.3</scale> +<Icon><href>http://maps.google.com/mapfiles/kml/paddle/red-circle.png</href></Icon> +<hotSpot x="32" y="1" xunits="pixels" yunits="pixels"/> +</IconStyle></Style> +<Style id="statistics"><IconStyle> +<scale>1.3</scale> +<Icon><href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href></Icon> +<hotSpot x="20" y="2" xunits="pixels" yunits="pixels"/> +</IconStyle></Style> +<Style id="waypoint"><IconStyle> +<scale>1.3</scale> +<Icon><href>http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png</href></Icon> +<hotSpot x="20" y="2" xunits="pixels" yunits="pixels"/> +</IconStyle></Style> +<Schema id="schema"> +<gx:SimpleArrayField name="power" type="int"> +<displayName><![CDATA[Power (W)]]></displayName> +</gx:SimpleArrayField> +<gx:SimpleArrayField name="cadence" type="int"> +<displayName><![CDATA[Cadence (rpm)]]></displayName> +</gx:SimpleArrayField> +<gx:SimpleArrayField name="heart_rate" type="int"> +<displayName><![CDATA[Heart rate (bpm)]]></displayName> +</gx:SimpleArrayField> +</Schema> +<Placemark> +<name><![CDATA[Schuylkill River Trail Bike Ride (Start)]]></name> +<description><![CDATA[]]></description> +<TimeStamp><when>2013-07-25T19:33:58.000Z</when></TimeStamp> +<styleUrl>#start</styleUrl> +<Point> +<coordinates>-75.300238,40.109584,-2.799999952316284</coordinates> +</Point> +</Placemark> +<Placemark id="tour"> +<name><![CDATA[Matt]]></name> +<description><![CDATA[ +Name: Schuylkill River Trail Bike Ride<br> +Activity type: biking<br> +Total distance: 26.30 km (16.3 mi)<br> +Total time: 1:33:41<br> +Moving time: 1:32:26<br> +Average speed: 16.84 km/h (10.5 mi/h)<br> +Average moving speed: 17.07 km/h (10.6 mi/h)<br> +Max speed: 36.90 km/h (22.9 mi/h)<br> +Average pace: 3.56 min/km (5.7 min/mi)<br> +Average moving pace: 3.51 min/km (5.7 min/mi)<br> +Fastest pace: 1.63 min/km (2.6 min/mi)<br> +Max elevation: 54 m (176 ft)<br> +Min elevation: -32 m (-105 ft)<br> +Elevation gain: 740 m (2429 ft)<br> +Max grade: 30 %<br> +Min grade: -23 %<br> +Recorded: 7/25/2013 3:33pm +]]></description> +<styleUrl>#track</styleUrl> +<ExtendedData> +<Data name="type"><value><![CDATA[biking]]></value></Data> +</ExtendedData> +<gx:MultiTrack> +<altitudeMode>absolute</altitudeMode> +<gx:interpolate>1</gx:interpolate> +<gx:Track> +<when>2013-07-25T19:33:58.000Z</when> +<gx:coord>-75.300238 40.109584 -2.799999952316284</gx:coord> +<when>2013-07-25T19:33:59.000Z</when> +<gx:coord>-75.300234 40.109597 38.0</gx:coord> +<when>2013-07-25T19:34:00.000Z</when> +<gx:coord>-75.300214 40.109641 36.099998474121094</gx:coord> +<when>2013-07-25T19:34:09.000Z</when> +<gx:coord>-75.300233 40.109603 20.700000762939453</gx:coord> +<when>2013-07-25T19:34:10.000Z</when> +<gx:coord>-75.30025 40.109586 25.600000381469727</gx:coord> +<when>2013-07-25T19:34:42.000Z</when> +<gx:coord>-75.30026 40.10963 36.5</gx:coord> +<when>2013-07-25T19:34:43.000Z</when> +<gx:coord>-75.300268 40.109631 37.900001525878906</gx:coord> +<when>2013-07-25T19:34:57.000Z</when> +<gx:coord>-75.300292 40.109618 39.70000076293945</gx:coord> +<when>2013-07-25T19:34:58.000Z</when> +<gx:coord>-75.30032 40.109599 40.70000076293945</gx:coord> +<when>2013-07-25T19:34:59.000Z</when> +<gx:coord>-75.300355 40.109574 40.70000076293945</gx:coord> +<when>2013-07-25T19:35:00.000Z</when> +<gx:coord>-75.300391 40.109544 35.29999923706055</gx:coord> +<when>2013-07-25T19:35:01.000Z</when> +<gx:coord>-75.300423 40.109513 33.20000076293945</gx:coord> +<when>2013-07-25T19:35:02.000Z</when> +<gx:coord>-75.300446 40.109481 31.5</gx:coord> +<when>2013-07-25T19:35:03.000Z</when> +<gx:coord>-75.300441 40.109397 29.100000381469727</gx:coord> +<when>2013-07-25T19:35:04.000Z</when> +<gx:coord>-75.300476 40.109341 28.0</gx:coord> +<when>2013-07-25T19:35:05.000Z</when> +<gx:coord>-75.300515 40.109283 26.299999237060547</gx:coord> +<when>2013-07-25T19:35:06.000Z</when> +<gx:coord>-75.300541 40.109225 24.5</gx:coord> +<when>2013-07-25T19:35:07.000Z</when> +<gx:coord>-75.300559 40.109158 23.600000381469727</gx:coord> +<when>2013-07-25T19:35:08.000Z</when> +<gx:coord>-75.300542 40.10908 22.5</gx:coord> +<when>2013-07-25T19:35:09.000Z</when> +<gx:coord>-75.300506 40.109006 21.799999237060547</gx:coord> +<when>2013-07-25T19:35:10.000Z</when> +<gx:coord>-75.300485 40.108955 22.5</gx:coord> +<when>2013-07-25T19:35:11.000Z</when> +<gx:coord>-75.30047 40.108896 22.0</gx:coord> +<when>2013-07-25T19:35:12.000Z</when> +<gx:coord>-75.300473 40.108851 21.799999237060547</gx:coord> +<when>2013-07-25T19:35:13.000Z</when> +<gx:coord>-75.300476 40.108809 21.100000381469727</gx:coord> +<when>2013-07-25T19:35:14.000Z</when> +<gx:coord>-75.300501 40.108767 19.700000762939453</gx:coord> +<when>2013-07-25T19:35:15.000Z</when> +<gx:coord>-75.300594 40.108757 18.799999237060547</gx:coord> +<when>2013-07-25T19:35:16.000Z</when> +<gx:coord>-75.300664 40.108737 17.600000381469727</gx:coord> +<when>2013-07-25T19:35:17.000Z</when> +<gx:coord>-75.300737 40.108722 17.100000381469727</gx:coord> +<when>2013-07-25T19:35:18.000Z</when> +<gx:coord>-75.300809 40.108693 16.600000381469727</gx:coord> +<when>2013-07-25T19:35:19.000Z</when> +<gx:coord>-75.300886 40.108666 15.800000190734863</gx:coord> +<when>2013-07-25T19:35:20.000Z</when> +<gx:coord>-75.300979 40.108632 13.300000190734863</gx:coord> +<when>2013-07-25T19:35:21.000Z</when> +<gx:coord>-75.301058 40.108617 12.399999618530273</gx:coord> +<when>2013-07-25T19:35:22.000Z</when> +<gx:coord>-75.30114 40.108604 11.5</gx:coord> +<when>2013-07-25T19:35:23.000Z</when> +<gx:coord>-75.301227 40.108588 10.600000381469727</gx:coord> +<when>2013-07-25T19:35:24.000Z</when> +<gx:coord>-75.301324 40.108567 9.600000381469727</gx:coord> +<when>2013-07-25T19:35:25.000Z</when> +<gx:coord>-75.30141 40.108548 9.600000381469727</gx:coord> +<when>2013-07-25T19:35:26.000Z</when> +<gx:coord>-75.301494 40.108535 9.699999809265137</gx:coord> +<when>2013-07-25T19:35:27.000Z</when> +<gx:coord>-75.301577 40.108513 9.600000381469727</gx:coord> +<when>2013-07-25T19:35:28.000Z</when> +<gx:coord>-75.301661 40.10849 8.5</gx:coord> +<when>2013-07-25T19:35:29.000Z</when> +<gx:coord>-75.301744 40.108468 7.0</gx:coord> +<when>2013-07-25T19:35:30.000Z</when> +<gx:coord>-75.301837 40.108453 6.699999809265137</gx:coord> +<when>2013-07-25T19:35:31.000Z</when> +<gx:coord>-75.301926 40.108432 5.900000095367432</gx:coord> +<when>2013-07-25T19:35:32.000Z</when> +<gx:coord>-75.302012 40.108413 5.300000190734863</gx:coord> +<when>2013-07-25T19:35:33.000Z</when> +<gx:coord>-75.302093 40.10839 5.599999904632568</gx:coord> +<when>2013-07-25T19:35:34.000Z</when> +<gx:coord>-75.302174 40.108367 5.300000190734863</gx:coord> +<when>2013-07-25T19:35:35.000Z</when> +<gx:coord>-75.302264 40.108336 4.699999809265137</gx:coord> +<when>2013-07-25T19:35:36.000Z</when> +<gx:coord>-75.302351 40.108315 3.9000000953674316</gx:coord> +<when>2013-07-25T19:35:37.000Z</when> +<gx:coord>-75.302434 40.108296 2.799999952316284</gx:coord> +<when>2013-07-25T19:35:38.000Z</when> +<gx:coord>-75.302509 40.108282 2.700000047683716</gx:coord> +<when>2013-07-25T19:35:39.000Z</when> +<gx:coord>-75.302582 40.108266 2.0</gx:coord> +<when>2013-07-25T19:35:40.000Z</when> +<gx:coord>-75.302664 40.108251 1.5</gx:coord> +<when>2013-07-25T19:35:41.000Z</when> +<gx:coord>-75.302746 40.108235 0.699999988079071</gx:coord> +<when>2013-07-25T19:35:42.000Z</when> +<gx:coord>-75.302819 40.108224 -0.10000000149011612</gx:coord> +<when>2013-07-25T19:35:43.000Z</when> +<gx:coord>-75.302883 40.108209 0.30000001192092896</gx:coord> +<when>2013-07-25T19:35:44.000Z</when> +<gx:coord>-75.302943 40.108193 0.0</gx:coord> +<when>2013-07-25T19:35:45.000Z</when> +<gx:coord>-75.303 40.108175 -0.10000000149011612</gx:coord> +<when>2013-07-25T19:35:46.000Z</when> +<gx:coord>-75.303052 40.108173 0.5</gx:coord> +<when>2013-07-25T19:35:47.000Z</when> +<gx:coord>-75.303106 40.108159 0.5</gx:coord> +<when>2013-07-25T19:35:48.000Z</when> +<gx:coord>-75.303168 40.108146 0.20000000298023224</gx:coord> +<when>2013-07-25T19:35:49.000Z</when> +<gx:coord>-75.30324 40.108138 0.10000000149011612</gx:coord> +<when>2013-07-25T19:35:50.000Z</when> +<gx:coord>-75.303308 40.108131 0.5</gx:coord> +<when>2013-07-25T19:35:51.000Z</when> +<gx:coord>-75.303369 40.108118 -0.6000000238418579</gx:coord> +<when>2013-07-25T19:35:52.000Z</when> +<gx:coord>-75.303422 40.108105 0.0</gx:coord> +<when>2013-07-25T19:35:53.000Z</when> +<gx:coord>-75.303467 40.108097 -0.6000000238418579</gx:coord> +<when>2013-07-25T19:35:54.000Z</when> +<gx:coord>-75.303517 40.108087 -0.6000000238418579</gx:coord> +<when>2013-07-25T19:35:55.000Z</when> +<gx:coord>-75.30356 40.10807 -1.0</gx:coord> +<when>2013-07-25T19:35:56.000Z</when> +<gx:coord>-75.303566 40.108042 0.30000001192092896</gx:coord> +<when>2013-07-25T19:35:57.000Z</when> +<gx:coord>-75.303556 40.108009 2.0999999046325684</gx:coord> +<when>2013-07-25T19:35:58.000Z</when> +<gx:coord>-75.303539 40.107973 1.2999999523162842</gx:coord> +<when>2013-07-25T19:35:59.000Z</when> +<gx:coord>-75.303525 40.107947 0.800000011920929</gx:coord> +<when>2013-07-25T19:36:00.000Z</when> +<gx:coord>-75.303477 40.107917 0.800000011920929</gx:coord> +<when>2013-07-25T19:36:01.000Z</when> +<gx:coord>-75.303428 40.107887 1.0</gx:coord> +<when>2013-07-25T19:36:03.000Z</when> +<gx:coord>-75.303407 40.107857 0.5</gx:coord> +<when>2013-07-25T19:36:04.000Z</when> +<gx:coord>-75.303369 40.107838 0.30000001192092896</gx:coord> +<when>2013-07-25T19:36:05.000Z</when> +<gx:coord>-75.303344 40.107822 0.30000001192092896</gx:coord> +<when>2013-07-25T19:36:06.000Z</when> +<gx:coord>-75.303317 40.107811 0.30000001192092896</gx:coord> +<when>2013-07-25T19:36:07.000Z</when> +<gx:coord>-75.303228 40.107803 0.30000001192092896</gx:coord> +<when>2013-07-25T19:36:08.000Z</when> +<gx:coord>-75.30308 40.107756 0.5</gx:coord> +<when>2013-07-25T19:36:09.000Z</when> +<gx:coord>-75.303044 40.107777 0.5</gx:coord> +<when>2013-07-25T19:36:10.000Z</when> +<gx:coord>-75.302966 40.107708 0.699999988079071</gx:coord> +<when>2013-07-25T19:36:11.000Z</when> +<gx:coord>-75.30287 40.107664 2.5999999046325684</gx:coord> +<when>2013-07-25T19:36:12.000Z</when> +<gx:coord>-75.302789 40.10762 6.900000095367432</gx:coord> +<when>2013-07-25T19:36:13.000Z</when> +<gx:coord>-75.302728 40.107595 8.800000190734863</gx:coord> +<when>2013-07-25T19:36:14.000Z</when> +<gx:coord>-75.302681 40.107562 9.100000381469727</gx:coord> +<when>2013-07-25T19:36:15.000Z</when> +<gx:coord>-75.302644 40.107551 9.699999809265137</gx:coord> +<when>2013-07-25T19:36:16.000Z</when> +<gx:coord>-75.302612 40.107537 9.899999618530273</gx:coord> +<when>2013-07-25T19:36:17.000Z</when> +<gx:coord>-75.302526 40.107472 8.600000381469727</gx:coord> +<when>2013-07-25T19:36:18.000Z</when> +<gx:coord>-75.30248 40.107439 10.600000381469727</gx:coord> +<when>2013-07-25T19:36:19.000Z</when> +<gx:coord>-75.302437 40.107428 13.300000190734863</gx:coord> +<when>2013-07-25T19:36:20.000Z</when> +<gx:coord>-75.302425 40.107413 17.5</gx:coord> +<when>2013-07-25T19:36:21.000Z</when> +<gx:coord>-75.302403 40.107405 19.299999237060547</gx:coord> +<when>2013-07-25T19:36:22.000Z</when> +<gx:coord>-75.302372 40.107387 19.5</gx:coord> +<when>2013-07-25T19:36:23.000Z</when> +<gx:coord>-75.302347 40.107356 17.899999618530273</gx:coord> +<when>2013-07-25T19:36:24.000Z</when> +<gx:coord>-75.302335 40.107346 19.399999618530273</gx:coord> +<when>2013-07-25T19:36:26.000Z</when> +<gx:coord>-75.302289 40.107323 19.700000762939453</gx:coord> +<when>2013-07-25T19:36:27.000Z</when> +<gx:coord>-75.302258 40.107305 19.600000381469727</gx:coord> +<when>2013-07-25T19:36:28.000Z</when> +<gx:coord>-75.302242 40.107296 18.899999618530273</gx:coord> +<when>2013-07-25T19:36:28.999Z</when> +<gx:coord>-75.302212 40.107273 18.200000762939453</gx:coord> +<when>2013-07-25T19:36:30.000Z</when> +<gx:coord>-75.302182 40.107255 18.5</gx:coord> +<when>2013-07-25T19:36:31.000Z</when> +<gx:coord>-75.30215 40.107239 19.0</gx:coord> +<when>2013-07-25T19:36:32.000Z</when> +<gx:coord>-75.302116 40.107219 18.0</gx:coord> +<when>2013-07-25T19:36:33.000Z</when> +<gx:coord>-75.302083 40.1072 17.299999237060547</gx:coord> +<when>2013-07-25T19:36:34.000Z</when> +<gx:coord>-75.302049 40.10718 17.200000762939453</gx:coord> +<when>2013-07-25T19:36:35.000Z</when> +<gx:coord>-75.302016 40.107162 15.100000381469727</gx:coord> +<when>2013-07-25T19:36:36.000Z</when> +<gx:coord>-75.301981 40.107144 15.300000190734863</gx:coord> +<when>2013-07-25T19:36:37.000Z</when> +<gx:coord>-75.301946 40.107124 15.5</gx:coord> +<when>2013-07-25T19:36:38.000Z</when> +<gx:coord>-75.301899 40.107089 13.0</gx:coord> +<when>2013-07-25T19:36:39.000Z</when> +<gx:coord>-75.301855 40.107063 12.5</gx:coord> +<when>2013-07-25T19:36:40.000Z</when> +<gx:coord>-75.301819 40.10704 12.199999809265137</gx:coord> +<when>2013-07-25T19:36:41.000Z</when> +<gx:coord>-75.301787 40.107043 12.300000190734863</gx:coord> +<when>2013-07-25T19:36:42.000Z</when> +<gx:coord>-75.301757 40.107032 13.300000190734863</gx:coord> +<when>2013-07-25T19:36:43.000Z</when> +<gx:coord>-75.301716 40.107013 14.0</gx:coord> +<when>2013-07-25T19:36:44.000Z</when> +<gx:coord>-75.30168 40.106992 14.5</gx:coord> +<when>2013-07-25T19:36:45.000Z</when> +<gx:coord>-75.30164 40.106975 14.5</gx:coord> +<when>2013-07-25T19:36:46.000Z</when> +<gx:coord>-75.301595 40.106959 14.800000190734863</gx:coord> +<when>2013-07-25T19:36:47.000Z</when> +<gx:coord>-75.301549 40.106946 14.800000190734863</gx:coord> +<when>2013-07-25T19:36:48.000Z</when> +<gx:coord>-75.301494 40.106929 14.899999618530273</gx:coord> +<when>2013-07-25T19:36:49.000Z</when> +<gx:coord>-75.301444 40.106915 15.100000381469727</gx:coord> +<when>2013-07-25T19:36:50.000Z</when> +<gx:coord>-75.301389 40.1069 15.199999809265137</gx:coord> +<when>2013-07-25T19:36:51.000Z</when> +<gx:coord>-75.301335 40.106887 16.600000381469727</gx:coord> +<when>2013-07-25T19:36:52.000Z</when> +<gx:coord>-75.30127 40.106873 17.0</gx:coord> +<when>2013-07-25T19:36:53.000Z</when> +<gx:coord>-75.301209 40.106858 17.299999237060547</gx:coord> +<when>2013-07-25T19:36:54.000Z</when> +<gx:coord>-75.301142 40.106856 17.299999237060547</gx:coord> +<when>2013-07-25T19:36:55.000Z</when> +<gx:coord>-75.301076 40.106847 18.200000762939453</gx:coord> +<when>2013-07-25T19:36:56.000Z</when> +<gx:coord>-75.301009 40.106829 19.100000381469727</gx:coord> +<when>2013-07-25T19:36:57.000Z</when> +<gx:coord>-75.300938 40.106822 19.100000381469727</gx:coord> +<when>2013-07-25T19:36:58.000Z</when> +<gx:coord>-75.300866 40.106809 19.399999618530273</gx:coord> +<when>2013-07-25T19:36:59.000Z</when> +<gx:coord>-75.300786 40.106801 19.799999237060547</gx:coord> +<when>2013-07-25T19:37:00.000Z</when> +<gx:coord>-75.300722 40.106781 19.899999618530273</gx:coord> +<when>2013-07-25T19:37:01.001Z</when> +<gx:coord>-75.300651 40.106771 19.899999618530273</gx:coord> +<when>2013-07-25T19:37:02.000Z</when> +<gx:coord>-75.30055 40.106756 20.600000381469727</gx:coord> +<when>2013-07-25T19:37:03.000Z</when> +<gx:coord>-75.300477 40.106744 21.100000381469727</gx:coord> +<when>2013-07-25T19:37:04.000Z</when> +<gx:coord>-75.3004 40.106733 21.200000762939453</gx:coord> +<when>2013-07-25T19:37:05.000Z</when> +<gx:coord>-75.300335 40.106717 22.0</gx:coord> +<when>2013-07-25T19:37:06.000Z</when> +<gx:coord>-75.300268 40.106709 22.200000762939453</gx:coord> +<when>2013-07-25T19:37:07.000Z</when> +<gx:coord>-75.300202 40.106702 22.700000762939453</gx:coord> +<when>2013-07-25T19:37:08.000Z</when> +<gx:coord>-75.300144 40.106672 22.0</gx:coord> +<when>2013-07-25T19:37:09.000Z</when> +<gx:coord>-75.300087 40.10666 22.0</gx:coord> +<when>2013-07-25T19:37:10.000Z</when> +<gx:coord>-75.30002 40.106633 21.0</gx:coord> +<when>2013-07-25T19:37:11.000Z</when> +<gx:coord>-75.299938 40.106605 20.399999618530273</gx:coord> +<when>2013-07-25T19:37:12.000Z</when> +<gx:coord>-75.299934 40.10657 20.799999237060547</gx:coord> +<when>2013-07-25T19:37:13.000Z</when> +<gx:coord>-75.299897 40.106544 20.700000762939453</gx:coord> +<when>2013-07-25T19:37:14.000Z</when> +<gx:coord>-75.299865 40.106516 20.399999618530273</gx:coord> +<when>2013-07-25T19:37:15.000Z</when> +<gx:coord>-75.299845 40.106498 20.5</gx:coord> +<when>2013-07-25T19:37:16.000Z</when> +<gx:coord>-75.299821 40.10648 21.399999618530273</gx:coord> +<when>2013-07-25T19:37:17.000Z</when> +<gx:coord>-75.299804 40.106462 22.100000381469727</gx:coord> +<when>2013-07-25T19:37:19.000Z</when> +<gx:coord>-75.299772 40.106431 22.700000762939453</gx:coord> +<when>2013-07-25T19:37:20.000Z</when> +<gx:coord>-75.299754 40.106413 23.799999237060547</gx:coord> +<when>2013-07-25T19:37:21.000Z</when> +<gx:coord>-75.299737 40.106394 23.799999237060547</gx:coord> +<when>2013-07-25T19:37:22.000Z</when> +<gx:coord>-75.299722 40.106373 23.5</gx:coord> +<when>2013-07-25T19:37:23.000Z</when> +<gx:coord>-75.299707 40.106354 23.5</gx:coord> +<when>2013-07-25T19:37:24.001Z</when> +<gx:coord>-75.299693 40.106331 24.100000381469727</gx:coord> +<when>2013-07-25T19:37:25.000Z</when> +<gx:coord>-75.299681 40.106309 24.5</gx:coord> +<when>2013-07-25T19:37:26.000Z</when> +<gx:coord>-75.299669 40.106286 25.0</gx:coord> +<when>2013-07-25T19:37:27.000Z</when> +<gx:coord>-75.299656 40.106262 25.0</gx:coord> +<when>2013-07-25T19:37:28.000Z</when> +<gx:coord>-75.299638 40.106239 25.200000762939453</gx:coord> +<when>2013-07-25T19:37:29.000Z</when> +<gx:coord>-75.299621 40.106216 26.100000381469727</gx:coord> +<when>2013-07-25T19:37:30.000Z</when> +<gx:coord>-75.299604 40.106193 26.200000762939453</gx:coord> +<when>2013-07-25T19:37:31.000Z</when> +<gx:coord>-75.299585 40.106167 26.299999237060547</gx:coord> +<when>2013-07-25T19:37:32.000Z</when> +<gx:coord>-75.299565 40.106139 27.600000381469727</gx:coord> +<when>2013-07-25T19:37:33.000Z</when> +<gx:coord>-75.299546 40.106112 28.0</gx:coord> +<when>2013-07-25T19:37:34.000Z</when> +<gx:coord>-75.299526 40.106084 28.5</gx:coord> +<when>2013-07-25T19:37:35.000Z</when> +<gx:coord>-75.299505 40.106056 29.0</gx:coord> +<when>2013-07-25T19:37:36.000Z</when> +<gx:coord>-75.299482 40.106026 29.399999618530273</gx:coord> +<when>2013-07-25T19:37:37.000Z</when> +<gx:coord>-75.299459 40.105998 30.0</gx:coord> +<when>2013-07-25T19:37:38.000Z</when> +<gx:coord>-75.299438 40.105968 30.399999618530273</gx:coord> +<when>2013-07-25T19:37:39.000Z</when> +<gx:coord>-75.299395 40.105931 29.399999618530273</gx:coord> +<when>2013-07-25T19:37:40.000Z</when> +<gx:coord>-75.299363 40.105889 28.399999618530273</gx:coord> +<when>2013-07-25T19:37:41.000Z</when> +<gx:coord>-75.299342 40.10585 27.899999618530273</gx:coord> +<when>2013-07-25T19:37:42.000Z</when> +<gx:coord>-75.299314 40.105812 27.899999618530273</gx:coord> +<when>2013-07-25T19:37:43.000Z</when> +<gx:coord>-75.299285 40.105769 27.5</gx:coord> +<when>2013-07-25T19:37:44.000Z</when> +<gx:coord>-75.299253 40.105727 27.399999618530273</gx:coord> +<when>2013-07-25T19:37:45.000Z</when> +<gx:coord>-75.299219 40.105681 27.0</gx:coord> +<when>2013-07-25T19:37:46.000Z</when> +<gx:coord>-75.299176 40.105632 26.0</gx:coord> +<when>2013-07-25T19:37:47.000Z</when> +<gx:coord>-75.29914 40.105585 25.0</gx:coord> +<when>2013-07-25T19:37:48.000Z</when> +<gx:coord>-75.29909 40.10554 25.0</gx:coord> +<when>2013-07-25T19:37:49.000Z</when> +<gx:coord>-75.299043 40.105483 24.0</gx:coord> +<when>2013-07-25T19:37:50.000Z</when> +<gx:coord>-75.29899 40.105441 23.899999618530273</gx:coord> +<when>2013-07-25T19:37:51.000Z</when> +<gx:coord>-75.298941 40.105404 24.399999618530273</gx:coord> +<when>2013-07-25T19:37:52.000Z</when> +<gx:coord>-75.298875 40.105366 23.5</gx:coord> +<when>2013-07-25T19:37:53.000Z</when> +<gx:coord>-75.298811 40.105331 24.0</gx:coord> +<when>2013-07-25T19:37:54.000Z</when> +<gx:coord>-75.298768 40.105301 24.5</gx:coord> +<when>2013-07-25T19:37:55.000Z</when> +<gx:coord>-75.298706 40.105272 24.899999618530273</gx:coord> +<when>2013-07-25T19:37:56.000Z</when> +<gx:coord>-75.298646 40.105239 22.100000381469727</gx:coord> +<when>2013-07-25T19:37:57.000Z</when> +<gx:coord>-75.29858 40.105218 20.799999237060547</gx:coord> +<when>2013-07-25T19:37:58.000Z</when> +<gx:coord>-75.298519 40.105199 20.5</gx:coord> +<when>2013-07-25T19:37:59.000Z</when> +<gx:coord>-75.298465 40.105167 20.899999618530273</gx:coord> +<when>2013-07-25T19:38:00.000Z</when> +<gx:coord>-75.298417 40.105138 21.0</gx:coord> +<when>2013-07-25T19:38:01.000Z</when> +<gx:coord>-75.29836 40.105113 21.0</gx:coord> +<when>2013-07-25T19:38:02.000Z</when> +<gx:coord>-75.298293 40.105056 21.600000381469727</gx:coord> +<when>2013-07-25T19:38:03.000Z</when> +<gx:coord>-75.298228 40.10502 22.600000381469727</gx:coord> +<when>2013-07-25T19:38:04.000Z</when> +<gx:coord>-75.298178 40.104979 23.299999237060547</gx:coord> +<when>2013-07-25T19:38:05.000Z</when> +<gx:coord>-75.298144 40.104947 24.600000381469727</gx:coord> +<when>2013-07-25T19:38:06.000Z</when> +<gx:coord>-75.298079 40.104918 24.299999237060547</gx:coord> +<when>2013-07-25T19:38:07.000Z</when> +<gx:coord>-75.298018 40.104889 24.100000381469727</gx:coord> +<when>2013-07-25T19:38:08.000Z</when> +<gx:coord>-75.297958 40.104866 25.5</gx:coord> +<when>2013-07-25T19:38:09.000Z</when> +<gx:coord>-75.297911 40.104833 25.299999237060547</gx:coord> +<when>2013-07-25T19:38:10.000Z</when> +<gx:coord>-75.297855 40.104796 25.600000381469727</gx:coord> +<when>2013-07-25T19:38:11.000Z</when> +<gx:coord>-75.297806 40.104759 25.600000381469727</gx:coord> +<when>2013-07-25T19:38:12.000Z</when> +<gx:coord>-75.297741 40.104719 26.600000381469727</gx:coord> +<when>2013-07-25T19:38:13.000Z</when> +<gx:coord>-75.297689 40.104679 27.100000381469727</gx:coord> +<when>2013-07-25T19:38:14.000Z</when> +<gx:coord>-75.297634 40.104643 27.0</gx:coord> +<when>2013-07-25T19:38:15.000Z</when> +<gx:coord>-75.297578 40.104605 27.799999237060547</gx:coord> +<when>2013-07-25T19:38:16.000Z</when> +<gx:coord>-75.297513 40.104571 27.899999618530273</gx:coord> +<when>2013-07-25T19:38:17.000Z</when> +<gx:coord>-75.297453 40.104541 27.600000381469727</gx:coord> +<when>2013-07-25T19:38:18.000Z</when> +<gx:coord>-75.297404 40.104506 27.600000381469727</gx:coord> +<when>2013-07-25T19:38:19.000Z</when> +<gx:coord>-75.29735 40.104471 27.299999237060547</gx:coord> +<when>2013-07-25T19:38:20.000Z</when> +<gx:coord>-75.297294 40.104426 26.200000762939453</gx:coord> +<when>2013-07-25T19:38:21.000Z</when> +<gx:coord>-75.29724 40.10439 26.0</gx:coord> +<when>2013-07-25T19:38:22.000Z</when> +<gx:coord>-75.297186 40.10435 25.5</gx:coord> +<when>2013-07-25T19:38:23.000Z</when> +<gx:coord>-75.297126 40.104302 26.100000381469727</gx:coord> +<when>2013-07-25T19:38:24.000Z</when> +<gx:coord>-75.297066 40.104251 25.5</gx:coord> +<when>2013-07-25T19:38:25.000Z</when> +<gx:coord>-75.297006 40.104199 24.899999618530273</gx:coord> +<when>2013-07-25T19:38:25.999Z</when> +<gx:coord>-75.29695 40.104146 24.600000381469727</gx:coord> +<when>2013-07-25T19:38:27.000Z</when> +<gx:coord>-75.296908 40.10409 26.200000762939453</gx:coord> +<when>2013-07-25T19:38:28.000Z</when> +<gx:coord>-75.296851 40.104024 26.100000381469727</gx:coord> +<when>2013-07-25T19:38:29.000Z</when> +<gx:coord>-75.29681 40.10396 25.399999618530273</gx:coord> +<when>2013-07-25T19:38:30.000Z</when> +<gx:coord>-75.296761 40.103893 25.0</gx:coord> +<when>2013-07-25T19:38:31.000Z</when> +<gx:coord>-75.2967 40.103808 24.200000762939453</gx:coord> +<when>2013-07-25T19:38:32.000Z</when> +<gx:coord>-75.296644 40.103736 24.200000762939453</gx:coord> +<when>2013-07-25T19:38:33.000Z</when> +<gx:coord>-75.29661 40.103671 24.100000381469727</gx:coord> +<when>2013-07-25T19:38:34.000Z</when> +<gx:coord>-75.29657 40.103599 23.899999618530273</gx:coord> +<when>2013-07-25T19:38:35.000Z</when> +<gx:coord>-75.296534 40.103523 23.899999618530273</gx:coord> +<when>2013-07-25T19:38:36.000Z</when> +<gx:coord>-75.296506 40.103452 24.299999237060547</gx:coord> +<when>2013-07-25T19:38:37.000Z</when> +<gx:coord>-75.296477 40.103394 24.0</gx:coord> +<when>2013-07-25T19:38:38.000Z</when> +<gx:coord>-75.296467 40.103342 23.799999237060547</gx:coord> +<when>2013-07-25T19:38:39.000Z</when> +<gx:coord>-75.296453 40.103308 23.700000762939453</gx:coord> +<when>2013-07-25T19:38:40.000Z</when> +<gx:coord>-75.296448 40.103278 24.600000381469727</gx:coord> +<when>2013-07-25T19:38:42.000Z</when> +<gx:coord>-75.296431 40.103239 24.399999618530273</gx:coord> +<when>2013-07-25T19:38:43.000Z</when> +<gx:coord>-75.296423 40.103224 24.600000381469727</gx:coord> +<when>2013-07-25T19:38:46.000Z</when> +<gx:coord>-75.296398 40.103184 23.899999618530273</gx:coord> +<when>2013-07-25T19:38:47.000Z</when> +<gx:coord>-75.296386 40.10318 25.200000762939453</gx:coord> +<when>2013-07-25T19:38:51.000Z</when> +<gx:coord>-75.296373 40.103137 22.100000381469727</gx:coord> +<when>2013-07-25T19:38:52.000Z</when> +<gx:coord>-75.296403 40.103121 21.600000381469727</gx:coord> +<when>2013-07-25T19:38:53.000Z</when> +<gx:coord>-75.296443 40.103103 21.100000381469727</gx:coord> +<when>2013-07-25T19:38:54.000Z</when> +<gx:coord>-75.296488 40.103083 20.799999237060547</gx:coord> +<when>2013-07-25T19:38:55.000Z</when> +<gx:coord>-75.296534 40.103059 21.0</gx:coord> +<when>2013-07-25T19:38:56.000Z</when> +<gx:coord>-75.296573 40.103033 21.100000381469727</gx:coord> +<when>2013-07-25T19:38:57.000Z</when> +<gx:coord>-75.296599 40.103008 21.5</gx:coord> +<when>2013-07-25T19:38:58.000Z</when> +<gx:coord>-75.296611 40.102987 20.200000762939453</gx:coord> +<when>2013-07-25T19:39:00.000Z</when> +<gx:coord>-75.296586 40.102957 17.200000762939453</gx:coord> +<when>2013-07-25T19:39:01.000Z</when> +<gx:coord>-75.296566 40.102955 17.200000762939453</gx:coord> +<when>2013-07-25T19:39:03.000Z</when> +<gx:coord>-75.29652 40.102965 18.299999237060547</gx:coord> +<when>2013-07-25T19:39:04.000Z</when> +<gx:coord>-75.296494 40.102971 18.200000762939453</gx:coord> +<when>2013-07-25T19:39:06.000Z</when> +<gx:coord>-75.296445 40.102991 15.800000190734863</gx:coord> +<when>2013-07-25T19:39:07.000Z</when> +<gx:coord>-75.296425 40.103002 15.199999809265137</gx:coord> +<when>2013-07-25T19:39:12.000Z</when> +<gx:coord>-75.296376 40.10302 17.299999237060547</gx:coord> +<when>2013-07-25T19:39:13.000Z</when> +<gx:coord>-75.296365 40.10302 17.0</gx:coord> +<when>2013-07-25T19:39:15.000Z</when> +<gx:coord>-75.296332 40.103006 16.899999618530273</gx:coord> +<when>2013-07-25T19:39:16.000Z</when> +<gx:coord>-75.296316 40.102985 16.899999618530273</gx:coord> +<when>2013-07-25T19:39:17.000Z</when> +<gx:coord>-75.2963 40.102957 20.299999237060547</gx:coord> +<when>2013-07-25T19:39:18.000Z</when> +<gx:coord>-75.296286 40.102924 20.100000381469727</gx:coord> +<when>2013-07-25T19:39:19.000Z</when> +<gx:coord>-75.296262 40.102849 21.700000762939453</gx:coord> +<when>2013-07-25T19:39:20.000Z</when> +<gx:coord>-75.296235 40.102811 23.799999237060547</gx:coord> +<when>2013-07-25T19:39:21.000Z</when> +<gx:coord>-75.296213 40.102761 21.600000381469727</gx:coord> +<when>2013-07-25T19:39:22.000Z</when> +<gx:coord>-75.296193 40.102712 21.899999618530273</gx:coord> +<when>2013-07-25T19:39:23.000Z</when> +<gx:coord>-75.296165 40.102659 21.100000381469727</gx:coord> +<when>2013-07-25T19:39:24.000Z</when> +<gx:coord>-75.296141 40.102597 20.799999237060547</gx:coord> +<when>2013-07-25T19:39:25.000Z</when> +<gx:coord>-75.296118 40.102543 20.399999618530273</gx:coord> +<when>2013-07-25T19:39:26.000Z</when> +<gx:coord>-75.296095 40.102484 20.899999618530273</gx:coord> +<when>2013-07-25T19:39:27.000Z</when> +<gx:coord>-75.296064 40.102426 20.700000762939453</gx:coord> +<when>2013-07-25T19:39:28.000Z</when> +<gx:coord>-75.29603 40.102362 20.700000762939453</gx:coord> +<when>2013-07-25T19:39:29.000Z</when> +<gx:coord>-75.295996 40.102308 19.899999618530273</gx:coord> +<when>2013-07-25T19:39:30.000Z</when> +<gx:coord>-75.295961 40.10225 19.700000762939453</gx:coord> +<when>2013-07-25T19:39:31.000Z</when> +<gx:coord>-75.295928 40.102186 19.600000381469727</gx:coord> +<when>2013-07-25T19:39:32.000Z</when> +<gx:coord>-75.295897 40.102122 20.0</gx:coord> +<when>2013-07-25T19:39:33.000Z</when> +<gx:coord>-75.295874 40.102063 19.899999618530273</gx:coord> +<when>2013-07-25T19:39:34.000Z</when> +<gx:coord>-75.295852 40.10201 19.700000762939453</gx:coord> +<when>2013-07-25T19:39:35.000Z</when> +<gx:coord>-75.295833 40.101952 19.200000762939453</gx:coord> +<when>2013-07-25T19:39:36.000Z</when> +<gx:coord>-75.295812 40.101894 19.200000762939453</gx:coord> +<when>2013-07-25T19:39:37.000Z</when> +<gx:coord>-75.295791 40.101844 19.200000762939453</gx:coord> +<when>2013-07-25T19:39:38.000Z</when> +<gx:coord>-75.295764 40.101788 19.899999618530273</gx:coord> +<when>2013-07-25T19:39:39.000Z</when> +<gx:coord>-75.29573 40.101739 20.799999237060547</gx:coord> +<when>2013-07-25T19:39:40.000Z</when> +<gx:coord>-75.295695 40.10169 21.700000762939453</gx:coord> +<when>2013-07-25T19:39:41.000Z</when> +<gx:coord>-75.295654 40.101641 21.700000762939453</gx:coord> +<when>2013-07-25T19:39:42.000Z</when> +<gx:coord>-75.295609 40.101592 21.899999618530273</gx:coord> +<when>2013-07-25T19:39:43.000Z</when> +<gx:coord>-75.295584 40.101541 20.700000762939453</gx:coord> +<when>2013-07-25T19:39:44.000Z</when> +<gx:coord>-75.295526 40.1015 20.799999237060547</gx:coord> +<when>2013-07-25T19:39:45.000Z</when> +<gx:coord>-75.29547 40.101457 21.200000762939453</gx:coord> +<when>2013-07-25T19:39:46.000Z</when> +<gx:coord>-75.295424 40.101409 20.899999618530273</gx:coord> +<when>2013-07-25T19:39:47.000Z</when> +<gx:coord>-75.295364 40.101369 21.200000762939453</gx:coord> +<when>2013-07-25T19:39:48.000Z</when> +<gx:coord>-75.295305 40.101327 21.600000381469727</gx:coord> +<when>2013-07-25T19:39:48.999Z</when> +<gx:coord>-75.295252 40.101287 21.299999237060547</gx:coord> +<when>2013-07-25T19:39:50.000Z</when> +<gx:coord>-75.29519 40.101248 20.899999618530273</gx:coord> +<when>2013-07-25T19:39:51.000Z</when> +<gx:coord>-75.295132 40.101212 20.799999237060547</gx:coord> +<when>2013-07-25T19:39:52.000Z</when> +<gx:coord>-75.295078 40.101174 20.899999618530273</gx:coord> +<when>2013-07-25T19:39:53.000Z</when> +<gx:coord>-75.295021 40.101133 20.600000381469727</gx:coord> +<when>2013-07-25T19:39:54.000Z</when> +<gx:coord>-75.294963 40.101094 20.799999237060547</gx:coord> +<when>2013-07-25T19:39:55.000Z</when> +<gx:coord>-75.2949 40.101052 20.899999618530273</gx:coord> +<when>2013-07-25T19:39:56.000Z</when> +<gx:coord>-75.294839 40.101004 20.700000762939453</gx:coord> +<when>2013-07-25T19:39:57.000Z</when> +<gx:coord>-75.294778 40.100957 20.100000381469727</gx:coord> +<when>2013-07-25T19:39:58.000Z</when> +<gx:coord>-75.294724 40.100915 19.399999618530273</gx:coord> +<when>2013-07-25T19:39:59.000Z</when> +<gx:coord>-75.294655 40.100871 20.299999237060547</gx:coord> +<when>2013-07-25T19:40:00.000Z</when> +<gx:coord>-75.29458 40.100822 19.899999618530273</gx:coord> +<when>2013-07-25T19:40:01.000Z</when> +<gx:coord>-75.294508 40.10078 19.799999237060547</gx:coord> +<when>2013-07-25T19:40:02.000Z</when> +<gx:coord>-75.294444 40.100744 19.200000762939453</gx:coord> +<when>2013-07-25T19:40:03.000Z</when> +<gx:coord>-75.294387 40.100709 18.0</gx:coord> +<when>2013-07-25T19:40:04.000Z</when> +<gx:coord>-75.294336 40.100676 17.600000381469727</gx:coord> +<when>2013-07-25T19:40:05.000Z</when> +<gx:coord>-75.294308 40.10064 17.100000381469727</gx:coord> +<when>2013-07-25T19:40:06.000Z</when> +<gx:coord>-75.294287 40.100603 16.399999618530273</gx:coord> +<when>2013-07-25T19:40:07.000Z</when> +<gx:coord>-75.294272 40.100562 15.399999618530273</gx:coord> +<when>2013-07-25T19:40:08.000Z</when> +<gx:coord>-75.294284 40.100515 14.5</gx:coord> +<when>2013-07-25T19:40:09.000Z</when> +<gx:coord>-75.294299 40.100472 13.399999618530273</gx:coord> +<when>2013-07-25T19:40:10.000Z</when> +<gx:coord>-75.294329 40.100427 13.399999618530273</gx:coord> +<when>2013-07-25T19:40:11.000Z</when> +<gx:coord>-75.294366 40.100385 11.699999809265137</gx:coord> +<when>2013-07-25T19:40:12.000Z</when> +<gx:coord>-75.294414 40.100338 11.199999809265137</gx:coord> +<when>2013-07-25T19:40:13.000Z</when> +<gx:coord>-75.294462 40.100293 11.600000381469727</gx:coord> +<when>2013-07-25T19:40:14.000Z</when> +<gx:coord>-75.29451 40.100259 11.100000381469727</gx:coord> +<when>2013-07-25T19:40:15.000Z</when> +<gx:coord>-75.294553 40.100209 10.199999809265137</gx:coord> +<when>2013-07-25T19:40:15.999Z</when> +<gx:coord>-75.294592 40.100149 8.699999809265137</gx:coord> +<when>2013-07-25T19:40:17.000Z</when> +<gx:coord>-75.294642 40.100118 9.300000190734863</gx:coord> +<when>2013-07-25T19:40:18.000Z</when> +<gx:coord>-75.294688 40.100078 9.0</gx:coord> +<when>2013-07-25T19:40:19.000Z</when> +<gx:coord>-75.294734 40.100039 9.5</gx:coord> +<when>2013-07-25T19:40:20.000Z</when> +<gx:coord>-75.294788 40.100007 10.199999809265137</gx:coord> +<when>2013-07-25T19:40:21.000Z</when> +<gx:coord>-75.294846 40.099975 10.5</gx:coord> +<when>2013-07-25T19:40:22.000Z</when> +<gx:coord>-75.294896 40.09995 10.5</gx:coord> +<when>2013-07-25T19:40:23.000Z</when> +<gx:coord>-75.294959 40.099912 9.0</gx:coord> +<when>2013-07-25T19:40:24.000Z</when> +<gx:coord>-75.295024 40.099902 8.899999618530273</gx:coord> +<when>2013-07-25T19:40:25.000Z</when> +<gx:coord>-75.295088 40.099895 8.300000190734863</gx:coord> +<when>2013-07-25T19:40:26.000Z</when> +<gx:coord>-75.295165 40.099884 7.5</gx:coord> +<when>2013-07-25T19:40:27.000Z</when> +<gx:coord>-75.295239 40.099868 6.5</gx:coord> +<when>2013-07-25T19:40:28.000Z</when> +<gx:coord>-75.295328 40.099851 4.900000095367432</gx:coord> +<when>2013-07-25T19:40:29.000Z</when> +<gx:coord>-75.295397 40.099835 4.300000190734863</gx:coord> +<when>2013-07-25T19:40:30.000Z</when> +<gx:coord>-75.295477 40.099822 2.9000000953674316</gx:coord> +<when>2013-07-25T19:40:31.000Z</when> +<gx:coord>-75.29556 40.099793 2.200000047683716</gx:coord> +<when>2013-07-25T19:40:32.000Z</when> +<gx:coord>-75.295653 40.099781 1.899999976158142</gx:coord> +<when>2013-07-25T19:40:33.000Z</when> +<gx:coord>-75.29573 40.099773 1.399999976158142</gx:coord> +<when>2013-07-25T19:40:34.000Z</when> +<gx:coord>-75.295808 40.099758 0.699999988079071</gx:coord> +<when>2013-07-25T19:40:35.000Z</when> +<gx:coord>-75.295889 40.099743 0.30000001192092896</gx:coord> +<when>2013-07-25T19:40:36.000Z</when> +<gx:coord>-75.295958 40.099734 0.4000000059604645</gx:coord> +<when>2013-07-25T19:40:37.000Z</when> +<gx:coord>-75.296038 40.099709 -0.20000000298023224</gx:coord> +<when>2013-07-25T19:40:38.000Z</when> +<gx:coord>-75.296121 40.099695 -1.2000000476837158</gx:coord> +<when>2013-07-25T19:40:39.000Z</when> +<gx:coord>-75.296204 40.099698 -1.899999976158142</gx:coord> +<when>2013-07-25T19:40:40.000Z</when> +<gx:coord>-75.296292 40.099701 -1.7000000476837158</gx:coord> +<when>2013-07-25T19:40:41.000Z</when> +<gx:coord>-75.296374 40.099698 -1.7999999523162842</gx:coord> +<when>2013-07-25T19:40:42.000Z</when> +<gx:coord>-75.29644 40.099686 -1.899999976158142</gx:coord> +<when>2013-07-25T19:40:43.000Z</when> +<gx:coord>-75.296509 40.099677 -1.0</gx:coord> +<when>2013-07-25T19:40:44.000Z</when> +<gx:coord>-75.296583 40.099674 -0.6000000238418579</gx:coord> +<when>2013-07-25T19:40:45.000Z</when> +<gx:coord>-75.296656 40.099673 -0.699999988079071</gx:coord> +<when>2013-07-25T19:40:46.000Z</when> +<gx:coord>-75.296718 40.099668 -0.8999999761581421</gx:coord> +<when>2013-07-25T19:40:47.000Z</when> +<gx:coord>-75.296789 40.099667 -1.2999999523162842</gx:coord> +<when>2013-07-25T19:40:48.000Z</when> +<gx:coord>-75.296858 40.099674 -2.299999952316284</gx:coord> +<when>2013-07-25T19:40:49.000Z</when> +<gx:coord>-75.29693 40.099677 -2.5999999046325684</gx:coord> +<when>2013-07-25T19:40:50.000Z</when> +<gx:coord>-75.296992 40.099681 -3.0999999046325684</gx:coord> +<when>2013-07-25T19:40:51.000Z</when> +<gx:coord>-75.29706 40.099679 -4.0</gx:coord> +<when>2013-07-25T19:40:52.000Z</when> +<gx:coord>-75.297144 40.099691 -5.699999809265137</gx:coord> +<when>2013-07-25T19:40:53.000Z</when> +<gx:coord>-75.297218 40.099704 -6.300000190734863</gx:coord> +<when>2013-07-25T19:40:54.000Z</when> +<gx:coord>-75.297275 40.099709 -6.400000095367432</gx:coord> +<when>2013-07-25T19:40:55.000Z</when> +<gx:coord>-75.297339 40.099717 -6.800000190734863</gx:coord> +<when>2013-07-25T19:40:56.000Z</when> +<gx:coord>-75.297404 40.099748 -6.599999904632568</gx:coord> +<when>2013-07-25T19:40:57.000Z</when> +<gx:coord>-75.297477 40.099768 -7.699999809265137</gx:coord> +<when>2013-07-25T19:40:58.000Z</when> +<gx:coord>-75.29755 40.099775 -7.400000095367432</gx:coord> +<when>2013-07-25T19:40:59.000Z</when> +<gx:coord>-75.297612 40.099795 -6.800000190734863</gx:coord> +<when>2013-07-25T19:41:00.000Z</when> +<gx:coord>-75.297677 40.099817 -5.800000190734863</gx:coord> +<when>2013-07-25T19:41:01.000Z</when> +<gx:coord>-75.29775 40.099841 -6.199999809265137</gx:coord> +<when>2013-07-25T19:41:02.000Z</when> +<gx:coord>-75.297806 40.09987 -6.5</gx:coord> +<when>2013-07-25T19:41:03.000Z</when> +<gx:coord>-75.297867 40.099894 -6.900000095367432</gx:coord> +<when>2013-07-25T19:41:04.000Z</when> +<gx:coord>-75.297941 40.099934 -7.599999904632568</gx:coord> +<when>2013-07-25T19:41:05.000Z</when> +<gx:coord>-75.298013 40.099964 -8.300000190734863</gx:coord> +<when>2013-07-25T19:41:06.000Z</when> +<gx:coord>-75.2981 40.099978 -8.399999618530273</gx:coord> +<when>2013-07-25T19:41:07.000Z</when> +<gx:coord>-75.29819 40.099983 -8.600000381469727</gx:coord> +<when>2013-07-25T19:41:08.000Z</when> +<gx:coord>-75.298278 40.099979 -8.300000190734863</gx:coord> +<when>2013-07-25T19:41:09.000Z</when> +<gx:coord>-75.298358 40.099978 -10.100000381469727</gx:coord> +<when>2013-07-25T19:41:10.000Z</when> +<gx:coord>-75.298443 40.099963 -10.699999809265137</gx:coord> +<when>2013-07-25T19:41:11.000Z</when> +<gx:coord>-75.29852 40.099942 -10.100000381469727</gx:coord> +<when>2013-07-25T19:41:12.000Z</when> +<gx:coord>-75.298613 40.099917 -9.899999618530273</gx:coord> +<when>2013-07-25T19:41:13.000Z</when> +<gx:coord>-75.298698 40.099895 -8.5</gx:coord> +<when>2013-07-25T19:41:14.000Z</when> +<gx:coord>-75.298789 40.099877 -7.599999904632568</gx:coord> +<when>2013-07-25T19:41:15.000Z</when> +<gx:coord>-75.298877 40.099858 -7.0</gx:coord> +<when>2013-07-25T19:41:16.000Z</when> +<gx:coord>-75.298967 40.09984 -7.300000190734863</gx:coord> +<when>2013-07-25T19:41:17.000Z</when> +<gx:coord>-75.299054 40.099822 -7.699999809265137</gx:coord> +<when>2013-07-25T19:41:18.000Z</when> +<gx:coord>-75.299143 40.09979 -8.0</gx:coord> +<when>2013-07-25T19:41:19.000Z</when> +<gx:coord>-75.299228 40.099755 -7.800000190734863</gx:coord> +<when>2013-07-25T19:41:20.000Z</when> +<gx:coord>-75.299304 40.099722 -6.800000190734863</gx:coord> +<when>2013-07-25T19:41:21.000Z</when> +<gx:coord>-75.299391 40.099701 -7.300000190734863</gx:coord> +<when>2013-07-25T19:41:22.000Z</when> +<gx:coord>-75.299476 40.099689 -8.399999618530273</gx:coord> +<when>2013-07-25T19:41:23.000Z</when> +<gx:coord>-75.299554 40.099667 -8.100000381469727</gx:coord> +<when>2013-07-25T19:41:24.000Z</when> +<gx:coord>-75.299637 40.09962 -9.100000381469727</gx:coord> +<when>2013-07-25T19:41:25.000Z</when> +<gx:coord>-75.299712 40.099588 -9.199999809265137</gx:coord> +<when>2013-07-25T19:41:26.000Z</when> +<gx:coord>-75.299784 40.099556 -9.300000190734863</gx:coord> +<when>2013-07-25T19:41:27.000Z</when> +<gx:coord>-75.299866 40.09953 -9.300000190734863</gx:coord> +<when>2013-07-25T19:41:28.000Z</when> +<gx:coord>-75.299942 40.099496 -8.800000190734863</gx:coord> +<when>2013-07-25T19:41:29.000Z</when> +<gx:coord>-75.300011 40.099468 -9.600000381469727</gx:coord> +<when>2013-07-25T19:41:30.000Z</when> +<gx:coord>-75.300094 40.09945 -9.899999618530273</gx:coord> +<when>2013-07-25T19:41:31.000Z</when> +<gx:coord>-75.300167 40.099432 -9.0</gx:coord> +<when>2013-07-25T19:41:32.000Z</when> +<gx:coord>-75.300235 40.099413 -8.699999809265137</gx:coord> +<when>2013-07-25T19:41:33.000Z</when> +<gx:coord>-75.300304 40.099415 -7.699999809265137</gx:coord> +<when>2013-07-25T19:41:34.000Z</when> +<gx:coord>-75.300395 40.099361 -7.699999809265137</gx:coord> +<when>2013-07-25T19:41:35.000Z</when> +<gx:coord>-75.30047 40.099324 -7.800000190734863</gx:coord> +<when>2013-07-25T19:41:36.000Z</when> +<gx:coord>-75.300556 40.09929 -6.800000190734863</gx:coord> +<when>2013-07-25T19:41:37.000Z</when> +<gx:coord>-75.300636 40.099254 -6.400000095367432</gx:coord> +<when>2013-07-25T19:41:38.000Z</when> +<gx:coord>-75.300704 40.099218 -6.599999904632568</gx:coord> +<when>2013-07-25T19:41:39.000Z</when> +<gx:coord>-75.300786 40.09919 -6.099999904632568</gx:coord> +<when>2013-07-25T19:41:40.000Z</when> +<gx:coord>-75.300872 40.099161 -6.0</gx:coord> +<when>2013-07-25T19:41:41.000Z</when> +<gx:coord>-75.300941 40.099128 -5.699999809265137</gx:coord> +<when>2013-07-25T19:41:42.000Z</when> +<gx:coord>-75.30102 40.099097 -5.699999809265137</gx:coord> +<when>2013-07-25T19:41:43.000Z</when> +<gx:coord>-75.301004 40.099122 -1.7000000476837158</gx:coord> +<when>2013-07-25T19:41:44.000Z</when> +<gx:coord>-75.301004 40.09914 0.30000001192092896</gx:coord> +<when>2013-07-25T19:41:45.001Z</when> +<gx:coord>-75.301006 40.099157 1.7999999523162842</gx:coord> +<when>2013-07-25T19:41:46.000Z</when> +<gx:coord>-75.301058 40.099048 -0.6000000238418579</gx:coord> +<when>2013-07-25T19:41:47.000Z</when> +<gx:coord>-75.301178 40.099001 -0.4000000059604645</gx:coord> +<when>2013-07-25T19:41:48.000Z</when> +<gx:coord>-75.301281 40.098976 -0.10000000149011612</gx:coord> +<when>2013-07-25T19:41:49.000Z</when> +<gx:coord>-75.301387 40.098961 -1.7000000476837158</gx:coord> +<when>2013-07-25T19:41:50.000Z</when> +<gx:coord>-75.301473 40.098926 -3.9000000953674316</gx:coord> +<when>2013-07-25T19:41:51.000Z</when> +<gx:coord>-75.301554 40.098938 -2.5999999046325684</gx:coord> +<when>2013-07-25T19:41:52.000Z</when> +<gx:coord>-75.301628 40.098934 -3.0999999046325684</gx:coord> +<when>2013-07-25T19:41:53.000Z</when> +<gx:coord>-75.301692 40.098967 -4.800000190734863</gx:coord> +<when>2013-07-25T19:41:54.000Z</when> +<gx:coord>-75.301757 40.099001 -5.5</gx:coord> +<when>2013-07-25T19:41:55.000Z</when> +<gx:coord>-75.301798 40.099021 -5.300000190734863</gx:coord> +<when>2013-07-25T19:41:56.000Z</when> +<gx:coord>-75.301806 40.099066 -7.0</gx:coord> +<when>2013-07-25T19:41:57.000Z</when> +<gx:coord>-75.301867 40.099099 -7.300000190734863</gx:coord> +<when>2013-07-25T19:41:58.000Z</when> +<gx:coord>-75.301921 40.09913 -7.599999904632568</gx:coord> +<when>2013-07-25T19:41:59.000Z</when> +<gx:coord>-75.301967 40.099157 -7.300000190734863</gx:coord> +<when>2013-07-25T19:42:00.000Z</when> +<gx:coord>-75.302004 40.099185 -7.199999809265137</gx:coord> +<when>2013-07-25T19:42:01.000Z</when> +<gx:coord>-75.302042 40.099216 -6.300000190734863</gx:coord> +<when>2013-07-25T19:42:02.000Z</when> +<gx:coord>-75.302083 40.099243 -5.699999809265137</gx:coord> +<when>2013-07-25T19:42:03.000Z</when> +<gx:coord>-75.302122 40.099273 -5.099999904632568</gx:coord> +<when>2013-07-25T19:42:04.000Z</when> +<gx:coord>-75.302155 40.099291 -5.300000190734863</gx:coord> +<when>2013-07-25T19:42:05.000Z</when> +<gx:coord>-75.302186 40.099308 -4.900000095367432</gx:coord> +<when>2013-07-25T19:42:06.000Z</when> +<gx:coord>-75.30226 40.099292 -1.899999976158142</gx:coord> +<when>2013-07-25T19:42:07.000Z</when> +<gx:coord>-75.302294 40.099308 -1.5</gx:coord> +<when>2013-07-25T19:42:08.000Z</when> +<gx:coord>-75.302318 40.099324 -1.7000000476837158</gx:coord> +<when>2013-07-25T19:42:09.000Z</when> +<gx:coord>-75.302347 40.099332 -1.600000023841858</gx:coord> +<when>2013-07-25T19:42:10.000Z</when> +<gx:coord>-75.302376 40.099339 -0.699999988079071</gx:coord> +<when>2013-07-25T19:42:13.000Z</when> +<gx:coord>-75.302431 40.099348 5.199999809265137</gx:coord> +<when>2013-07-25T19:42:14.000Z</when> +<gx:coord>-75.302446 40.099352 5.0</gx:coord> +<when>2013-07-25T19:42:16.000Z</when> +<gx:coord>-75.302487 40.09936 3.299999952316284</gx:coord> +<when>2013-07-25T19:42:17.000Z</when> +<gx:coord>-75.302512 40.099358 2.5999999046325684</gx:coord> +<when>2013-07-25T19:42:18.000Z</when> +<gx:coord>-75.302541 40.099349 2.0999999046325684</gx:coord> +<when>2013-07-25T19:42:19.000Z</when> +<gx:coord>-75.302569 40.099335 1.600000023841858</gx:coord> +<when>2013-07-25T19:42:20.000Z</when> +<gx:coord>-75.302595 40.099319 2.9000000953674316</gx:coord> +<when>2013-07-25T19:42:21.000Z</when> +<gx:coord>-75.302616 40.099306 3.0</gx:coord> +<when>2013-07-25T19:42:23.000Z</when> +<gx:coord>-75.302653 40.099286 4.0</gx:coord> +<when>2013-07-25T19:42:24.000Z</when> +<gx:coord>-75.30267 40.099278 4.900000095367432</gx:coord> +<when>2013-07-25T19:42:26.000Z</when> +<gx:coord>-75.302705 40.099258 4.5</gx:coord> +<when>2013-07-25T19:42:27.000Z</when> +<gx:coord>-75.302724 40.099242 4.800000190734863</gx:coord> +<when>2013-07-25T19:42:28.000Z</when> +<gx:coord>-75.302744 40.099223 4.300000190734863</gx:coord> +<when>2013-07-25T19:42:29.000Z</when> +<gx:coord>-75.302767 40.099197 4.0</gx:coord> +<when>2013-07-25T19:42:30.000Z</when> +<gx:coord>-75.302792 40.099167 3.5999999046325684</gx:coord> +<when>2013-07-25T19:42:31.000Z</when> +<gx:coord>-75.302831 40.099114 3.4000000953674316</gx:coord> +<when>2013-07-25T19:42:32.000Z</when> +<gx:coord>-75.302871 40.099077 3.4000000953674316</gx:coord> +<when>2013-07-25T19:42:33.000Z</when> +<gx:coord>-75.302911 40.099033 3.700000047683716</gx:coord> +<when>2013-07-25T19:42:34.000Z</when> +<gx:coord>-75.30295 40.098987 3.4000000953674316</gx:coord> +<when>2013-07-25T19:42:35.000Z</when> +<gx:coord>-75.303001 40.098934 2.799999952316284</gx:coord> +<when>2013-07-25T19:42:36.000Z</when> +<gx:coord>-75.303048 40.098882 3.0</gx:coord> +<when>2013-07-25T19:42:37.000Z</when> +<gx:coord>-75.3031 40.098832 2.4000000953674316</gx:coord> +<when>2013-07-25T19:42:38.000Z</when> +<gx:coord>-75.303154 40.098784 2.299999952316284</gx:coord> +<when>2013-07-25T19:42:39.000Z</when> +<gx:coord>-75.303222 40.098737 1.7999999523162842</gx:coord> +<when>2013-07-25T19:42:40.000Z</when> +<gx:coord>-75.303297 40.098697 1.600000023841858</gx:coord> +<when>2013-07-25T19:42:41.000Z</when> +<gx:coord>-75.303366 40.098654 1.600000023841858</gx:coord> +<when>2013-07-25T19:42:42.000Z</when> +<gx:coord>-75.303439 40.098616 1.7999999523162842</gx:coord> +<when>2013-07-25T19:42:43.000Z</when> +<gx:coord>-75.303524 40.098583 1.399999976158142</gx:coord> +<when>2013-07-25T19:42:44.000Z</when> +<gx:coord>-75.303611 40.098528 0.0</gx:coord> +<when>2013-07-25T19:42:45.000Z</when> +<gx:coord>-75.303698 40.098503 -0.10000000149011612</gx:coord> +<when>2013-07-25T19:42:46.000Z</when> +<gx:coord>-75.303777 40.098483 -0.30000001192092896</gx:coord> +<when>2013-07-25T19:42:47.000Z</when> +<gx:coord>-75.303852 40.098459 -0.699999988079071</gx:coord> +<when>2013-07-25T19:42:48.000Z</when> +<gx:coord>-75.30391 40.098463 -1.5</gx:coord> +<when>2013-07-25T19:42:49.000Z</when> +<gx:coord>-75.303986 40.098469 -0.699999988079071</gx:coord> +<when>2013-07-25T19:42:50.000Z</when> +<gx:coord>-75.304038 40.098473 -2.0</gx:coord> +<when>2013-07-25T19:42:51.000Z</when> +<gx:coord>-75.304076 40.098475 -2.4000000953674316</gx:coord> +<when>2013-07-25T19:42:53.000Z</when> +<gx:coord>-75.304123 40.098471 -2.4000000953674316</gx:coord> +<when>2013-07-25T19:42:54.000Z</when> +<gx:coord>-75.304137 40.09847 -2.5</gx:coord> +<when>2013-07-25T19:42:56.000Z</when> +<gx:coord>-75.304176 40.098476 -2.299999952316284</gx:coord> +<when>2013-07-25T19:42:57.000Z</when> +<gx:coord>-75.304209 40.098469 -3.5</gx:coord> +<when>2013-07-25T19:42:58.000Z</when> +<gx:coord>-75.304247 40.098463 -4.900000095367432</gx:coord> +<when>2013-07-25T19:42:59.000Z</when> +<gx:coord>-75.304292 40.098455 -5.800000190734863</gx:coord> +<when>2013-07-25T19:43:00.000Z</when> +<gx:coord>-75.304346 40.098448 -6.599999904632568</gx:coord> +<when>2013-07-25T19:43:01.000Z</when> +<gx:coord>-75.3044 40.098441 -6.900000095367432</gx:coord> +<when>2013-07-25T19:43:02.000Z</when> +<gx:coord>-75.304458 40.098433 -6.699999809265137</gx:coord> +<when>2013-07-25T19:43:03.000Z</when> +<gx:coord>-75.304518 40.098425 -7.0</gx:coord> +<when>2013-07-25T19:43:04.000Z</when> +<gx:coord>-75.304598 40.098401 -7.099999904632568</gx:coord> +<when>2013-07-25T19:43:05.000Z</when> +<gx:coord>-75.304651 40.098395 -7.699999809265137</gx:coord> +<when>2013-07-25T19:43:06.000Z</when> +<gx:coord>-75.304712 40.098381 -8.199999809265137</gx:coord> +<when>2013-07-25T19:43:07.000Z</when> +<gx:coord>-75.30476 40.098368 -8.100000381469727</gx:coord> +<when>2013-07-25T19:43:08.000Z</when> +<gx:coord>-75.304814 40.098353 -7.599999904632568</gx:coord> +<when>2013-07-25T19:43:09.000Z</when> +<gx:coord>-75.304867 40.098341 -7.099999904632568</gx:coord> +<when>2013-07-25T19:43:10.000Z</when> +<gx:coord>-75.304916 40.09833 -6.900000095367432</gx:coord> +<when>2013-07-25T19:43:11.000Z</when> +<gx:coord>-75.304976 40.098323 -6.900000095367432</gx:coord> +<when>2013-07-25T19:43:12.000Z</when> +<gx:coord>-75.305024 40.098319 -6.199999809265137</gx:coord> +<when>2013-07-25T19:43:13.000Z</when> +<gx:coord>-75.305076 40.098311 -6.800000190734863</gx:coord> +<when>2013-07-25T19:43:14.000Z</when> +<gx:coord>-75.305123 40.098302 -7.0</gx:coord> +<when>2013-07-25T19:43:15.000Z</when> +<gx:coord>-75.305171 40.098289 -6.699999809265137</gx:coord> +<when>2013-07-25T19:43:16.000Z</when> +<gx:coord>-75.305218 40.098277 -6.300000190734863</gx:coord> +<when>2013-07-25T19:43:17.000Z</when> +<gx:coord>-75.305262 40.098267 -6.699999809265137</gx:coord> +<when>2013-07-25T19:43:18.000Z</when> +<gx:coord>-75.305305 40.098257 -6.0</gx:coord> +<when>2013-07-25T19:43:19.000Z</when> +<gx:coord>-75.305346 40.098247 -5.599999904632568</gx:coord> +<when>2013-07-25T19:43:20.000Z</when> +<gx:coord>-75.305384 40.098237 -5.599999904632568</gx:coord> +<when>2013-07-25T19:43:21.000Z</when> +<gx:coord>-75.305415 40.098227 -5.199999809265137</gx:coord> +<when>2013-07-25T19:43:22.000Z</when> +<gx:coord>-75.305448 40.098214 -5.099999904632568</gx:coord> +<when>2013-07-25T19:43:23.000Z</when> +<gx:coord>-75.305479 40.0982 -5.0</gx:coord> +<when>2013-07-25T19:43:24.000Z</when> +<gx:coord>-75.305512 40.098185 -4.400000095367432</gx:coord> +<when>2013-07-25T19:43:25.000Z</when> +<gx:coord>-75.305541 40.098171 -3.9000000953674316</gx:coord> +<when>2013-07-25T19:43:26.000Z</when> +<gx:coord>-75.305568 40.098157 -3.5</gx:coord> +<when>2013-07-25T19:43:27.000Z</when> +<gx:coord>-75.305595 40.098142 -3.5999999046325684</gx:coord> +<when>2013-07-25T19:43:28.000Z</when> +<gx:coord>-75.305622 40.098128 -3.5</gx:coord> +<when>2013-07-25T19:43:29.000Z</when> +<gx:coord>-75.305648 40.098114 -3.5</gx:coord> +<when>2013-07-25T19:43:30.000Z</when> +<gx:coord>-75.305663 40.098091 -3.9000000953674316</gx:coord> +<when>2013-07-25T19:43:31.000Z</when> +<gx:coord>-75.305675 40.098066 -3.200000047683716</gx:coord> +<when>2013-07-25T19:43:32.000Z</when> +<gx:coord>-75.30569 40.098042 -3.0999999046325684</gx:coord> +<when>2013-07-25T19:43:33.000Z</when> +<gx:coord>-75.305705 40.098021 -3.0</gx:coord> +<when>2013-07-25T19:43:35.000Z</when> +<gx:coord>-75.30574 40.097991 -2.4000000953674316</gx:coord> +<when>2013-07-25T19:43:36.000Z</when> +<gx:coord>-75.305759 40.097976 -1.899999976158142</gx:coord> +<when>2013-07-25T19:43:38.000Z</when> +<gx:coord>-75.305788 40.097938 -1.100000023841858</gx:coord> +<when>2013-07-25T19:43:39.000Z</when> +<gx:coord>-75.305799 40.097918 -0.30000001192092896</gx:coord> +<when>2013-07-25T19:43:41.000Z</when> +<gx:coord>-75.305819 40.097876 1.0</gx:coord> +<when>2013-07-25T19:43:42.000Z</when> +<gx:coord>-75.305832 40.097852 0.699999988079071</gx:coord> +<when>2013-07-25T19:43:43.000Z</when> +<gx:coord>-75.30585 40.097823 0.5</gx:coord> +<when>2013-07-25T19:43:44.000Z</when> +<gx:coord>-75.305863 40.097791 2.0999999046325684</gx:coord> +<when>2013-07-25T19:43:45.000Z</when> +<gx:coord>-75.305867 40.09776 3.299999952316284</gx:coord> +<when>2013-07-25T19:43:46.000Z</when> +<gx:coord>-75.305867 40.097732 4.5</gx:coord> +<when>2013-07-25T19:43:47.000Z</when> +<gx:coord>-75.305871 40.097701 4.900000095367432</gx:coord> +<when>2013-07-25T19:43:48.000Z</when> +<gx:coord>-75.305881 40.097665 5.199999809265137</gx:coord> +<when>2013-07-25T19:43:49.000Z</when> +<gx:coord>-75.305901 40.097629 5.0</gx:coord> +<when>2013-07-25T19:43:50.000Z</when> +<gx:coord>-75.305921 40.097591 5.300000190734863</gx:coord> +<when>2013-07-25T19:43:51.000Z</when> +<gx:coord>-75.305933 40.09755 6.099999904632568</gx:coord> +<when>2013-07-25T19:43:52.000Z</when> +<gx:coord>-75.305936 40.097508 7.099999904632568</gx:coord> +<when>2013-07-25T19:43:53.000Z</when> +<gx:coord>-75.305934 40.097468 7.5</gx:coord> +<when>2013-07-25T19:43:54.000Z</when> +<gx:coord>-75.305937 40.09743 7.699999809265137</gx:coord> +<when>2013-07-25T19:43:55.000Z</when> +<gx:coord>-75.305948 40.097392 7.599999904632568</gx:coord> +<when>2013-07-25T19:43:56.000Z</when> +<gx:coord>-75.305966 40.097353 7.0</gx:coord> +<when>2013-07-25T19:43:57.000Z</when> +<gx:coord>-75.305986 40.097317 6.699999809265137</gx:coord> +<when>2013-07-25T19:43:58.000Z</when> +<gx:coord>-75.306006 40.097281 7.599999904632568</gx:coord> +<when>2013-07-25T19:43:59.000Z</when> +<gx:coord>-75.306031 40.097246 6.900000095367432</gx:coord> +<when>2013-07-25T19:44:00.000Z</when> +<gx:coord>-75.306058 40.09721 6.900000095367432</gx:coord> +<when>2013-07-25T19:44:01.000Z</when> +<gx:coord>-75.306086 40.097176 7.099999904632568</gx:coord> +<when>2013-07-25T19:44:02.000Z</when> +<gx:coord>-75.306116 40.097143 7.400000095367432</gx:coord> +<when>2013-07-25T19:44:03.000Z</when> +<gx:coord>-75.306148 40.09711 7.5</gx:coord> +<when>2013-07-25T19:44:04.000Z</when> +<gx:coord>-75.30618 40.097075 7.699999809265137</gx:coord> +<when>2013-07-25T19:44:05.000Z</when> +<gx:coord>-75.306211 40.097042 7.5</gx:coord> +<when>2013-07-25T19:44:06.000Z</when> +<gx:coord>-75.306241 40.097012 7.400000095367432</gx:coord> +<when>2013-07-25T19:44:07.000Z</when> +<gx:coord>-75.306272 40.096981 7.400000095367432</gx:coord> +<when>2013-07-25T19:44:08.000Z</when> +<gx:coord>-75.306305 40.096951 6.800000190734863</gx:coord> +<when>2013-07-25T19:44:09.000Z</when> +<gx:coord>-75.306336 40.096923 6.699999809265137</gx:coord> +<when>2013-07-25T19:44:10.000Z</when> +<gx:coord>-75.306368 40.096898 6.699999809265137</gx:coord> +<when>2013-07-25T19:44:11.000Z</when> +<gx:coord>-75.3064 40.096872 6.300000190734863</gx:coord> +<when>2013-07-25T19:44:12.000Z</when> +<gx:coord>-75.306431 40.096842 6.5</gx:coord> +<when>2013-07-25T19:44:13.000Z</when> +<gx:coord>-75.306456 40.09681 7.0</gx:coord> +<when>2013-07-25T19:44:14.000Z</when> +<gx:coord>-75.306476 40.096777 7.199999809265137</gx:coord> +<when>2013-07-25T19:44:15.000Z</when> +<gx:coord>-75.306493 40.096742 7.099999904632568</gx:coord> +<when>2013-07-25T19:44:16.000Z</when> +<gx:coord>-75.306516 40.096707 6.900000095367432</gx:coord> +<when>2013-07-25T19:44:17.000Z</when> +<gx:coord>-75.30654 40.096677 6.599999904632568</gx:coord> +<when>2013-07-25T19:44:18.000Z</when> +<gx:coord>-75.306566 40.096652 6.699999809265137</gx:coord> +<when>2013-07-25T19:44:19.000Z</when> +<gx:coord>-75.306593 40.09663 7.199999809265137</gx:coord> +<when>2013-07-25T19:44:20.000Z</when> +<gx:coord>-75.306624 40.096612 6.699999809265137</gx:coord> +<when>2013-07-25T19:44:21.000Z</when> +<gx:coord>-75.306652 40.096596 6.699999809265137</gx:coord> +<when>2013-07-25T19:44:22.000Z</when> +<gx:coord>-75.306678 40.096582 6.5</gx:coord> +<when>2013-07-25T19:44:23.000Z</when> +<gx:coord>-75.306708 40.09657 5.699999809265137</gx:coord> +<when>2013-07-25T19:44:24.000Z</when> +<gx:coord>-75.306742 40.096564 5.199999809265137</gx:coord> +<when>2013-07-25T19:44:25.000Z</when> +<gx:coord>-75.306777 40.096557 4.599999904632568</gx:coord> +<when>2013-07-25T19:44:26.000Z</when> +<gx:coord>-75.306811 40.096548 4.599999904632568</gx:coord> +<when>2013-07-25T19:44:27.000Z</when> +<gx:coord>-75.306847 40.096535 4.900000095367432</gx:coord> +<when>2013-07-25T19:44:28.000Z</when> +<gx:coord>-75.306881 40.096516 5.300000190734863</gx:coord> +<when>2013-07-25T19:44:29.000Z</when> +<gx:coord>-75.306915 40.096492 5.300000190734863</gx:coord> +<when>2013-07-25T19:44:30.000Z</when> +<gx:coord>-75.306948 40.096465 5.300000190734863</gx:coord> +<when>2013-07-25T19:44:31.000Z</when> +<gx:coord>-75.307007 40.096426 4.699999809265137</gx:coord> +<when>2013-07-25T19:44:32.000Z</when> +<gx:coord>-75.307049 40.096391 4.800000190734863</gx:coord> +<when>2013-07-25T19:44:33.000Z</when> +<gx:coord>-75.307082 40.096355 5.5</gx:coord> +<when>2013-07-25T19:44:34.000Z</when> +<gx:coord>-75.307116 40.096316 6.199999809265137</gx:coord> +<when>2013-07-25T19:44:35.000Z</when> +<gx:coord>-75.307156 40.096277 6.699999809265137</gx:coord> +<when>2013-07-25T19:44:36.000Z</when> +<gx:coord>-75.307197 40.096242 6.900000095367432</gx:coord> +<when>2013-07-25T19:44:37.000Z</when> +<gx:coord>-75.307231 40.096195 6.300000190734863</gx:coord> +<when>2013-07-25T19:44:38.000Z</when> +<gx:coord>-75.307276 40.096156 6.199999809265137</gx:coord> +<when>2013-07-25T19:44:39.000Z</when> +<gx:coord>-75.307318 40.096112 6.599999904632568</gx:coord> +<when>2013-07-25T19:44:40.000Z</when> +<gx:coord>-75.30737 40.096067 6.800000190734863</gx:coord> +<when>2013-07-25T19:44:41.000Z</when> +<gx:coord>-75.307417 40.096019 6.699999809265137</gx:coord> +<when>2013-07-25T19:44:42.000Z</when> +<gx:coord>-75.307469 40.09598 6.400000095367432</gx:coord> +<when>2013-07-25T19:44:43.000Z</when> +<gx:coord>-75.307519 40.095937 6.0</gx:coord> +<when>2013-07-25T19:44:44.000Z</when> +<gx:coord>-75.307578 40.095891 5.5</gx:coord> +<when>2013-07-25T19:44:45.000Z</when> +<gx:coord>-75.30764 40.09584 5.400000095367432</gx:coord> +<when>2013-07-25T19:44:46.000Z</when> +<gx:coord>-75.307696 40.095804 5.5</gx:coord> +<when>2013-07-25T19:44:47.000Z</when> +<gx:coord>-75.307756 40.095752 5.400000095367432</gx:coord> +<when>2013-07-25T19:44:48.000Z</when> +<gx:coord>-75.307816 40.095695 5.900000095367432</gx:coord> +<when>2013-07-25T19:44:49.000Z</when> +<gx:coord>-75.307872 40.095644 6.199999809265137</gx:coord> +<when>2013-07-25T19:44:50.000Z</when> +<gx:coord>-75.307924 40.095594 6.099999904632568</gx:coord> +<when>2013-07-25T19:44:51.000Z</when> +<gx:coord>-75.307983 40.095547 6.0</gx:coord> +<when>2013-07-25T19:44:52.000Z</when> +<gx:coord>-75.308043 40.095497 6.0</gx:coord> +<when>2013-07-25T19:44:53.000Z</when> +<gx:coord>-75.308103 40.095452 6.599999904632568</gx:coord> +<when>2013-07-25T19:44:54.000Z</when> +<gx:coord>-75.308163 40.095415 5.900000095367432</gx:coord> +<when>2013-07-25T19:44:55.000Z</when> +<gx:coord>-75.308224 40.095364 4.699999809265137</gx:coord> +<when>2013-07-25T19:44:56.000Z</when> +<gx:coord>-75.308279 40.095317 3.799999952316284</gx:coord> +<when>2013-07-25T19:44:57.000Z</when> +<gx:coord>-75.308334 40.095275 3.799999952316284</gx:coord> +<when>2013-07-25T19:44:58.000Z</when> +<gx:coord>-75.308389 40.095228 3.5999999046325684</gx:coord> +<when>2013-07-25T19:44:59.000Z</when> +<gx:coord>-75.30845 40.095185 3.4000000953674316</gx:coord> +<when>2013-07-25T19:45:00.000Z</when> +<gx:coord>-75.308509 40.095139 3.9000000953674316</gx:coord> +<when>2013-07-25T19:45:01.000Z</when> +<gx:coord>-75.308573 40.095083 3.799999952316284</gx:coord> +<when>2013-07-25T19:45:02.000Z</when> +<gx:coord>-75.308635 40.095032 3.299999952316284</gx:coord> +<when>2013-07-25T19:45:03.000Z</when> +<gx:coord>-75.308704 40.09498 2.5999999046325684</gx:coord> +<when>2013-07-25T19:45:04.000Z</when> +<gx:coord>-75.308777 40.094924 2.799999952316284</gx:coord> +<when>2013-07-25T19:45:05.000Z</when> +<gx:coord>-75.308841 40.09487 2.200000047683716</gx:coord> +<when>2013-07-25T19:45:06.000Z</when> +<gx:coord>-75.308896 40.09482 2.299999952316284</gx:coord> +<when>2013-07-25T19:45:07.000Z</when> +<gx:coord>-75.30895 40.094776 2.0999999046325684</gx:coord> +<when>2013-07-25T19:45:08.000Z</when> +<gx:coord>-75.309005 40.094722 2.0999999046325684</gx:coord> +<when>2013-07-25T19:45:09.000Z</when> +<gx:coord>-75.30906 40.09467 1.2000000476837158</gx:coord> +<when>2013-07-25T19:45:10.000Z</when> +<gx:coord>-75.309116 40.094615 0.800000011920929</gx:coord> +<when>2013-07-25T19:45:11.000Z</when> +<gx:coord>-75.309173 40.09456 1.0</gx:coord> +<when>2013-07-25T19:45:12.000Z</when> +<gx:coord>-75.309238 40.094509 1.2000000476837158</gx:coord> +<when>2013-07-25T19:45:13.000Z</when> +<gx:coord>-75.309298 40.094458 1.100000023841858</gx:coord> +<when>2013-07-25T19:45:14.000Z</when> +<gx:coord>-75.309359 40.094408 1.2999999523162842</gx:coord> +<when>2013-07-25T19:45:15.000Z</when> +<gx:coord>-75.309418 40.09436 1.0</gx:coord> +<when>2013-07-25T19:45:16.000Z</when> +<gx:coord>-75.309483 40.094313 1.0</gx:coord> +<when>2013-07-25T19:45:17.000Z</when> +<gx:coord>-75.30955 40.094268 0.4000000059604645</gx:coord> +<when>2013-07-25T19:45:18.000Z</when> +<gx:coord>-75.30961 40.094208 -0.20000000298023224</gx:coord> +<when>2013-07-25T19:45:19.000Z</when> +<gx:coord>-75.30967 40.094153 -0.5</gx:coord> +<when>2013-07-25T19:45:19.999Z</when> +<gx:coord>-75.309731 40.094101 -0.8999999761581421</gx:coord> +<when>2013-07-25T19:45:21.000Z</when> +<gx:coord>-75.309791 40.094061 -0.20000000298023224</gx:coord> +<when>2013-07-25T19:45:22.000Z</when> +<gx:coord>-75.309848 40.094009 -0.10000000149011612</gx:coord> +<when>2013-07-25T19:45:23.000Z</when> +<gx:coord>-75.309908 40.093955 -0.30000001192092896</gx:coord> +<when>2013-07-25T19:45:24.000Z</when> +<gx:coord>-75.309975 40.093906 0.0</gx:coord> +<when>2013-07-25T19:45:25.000Z</when> +<gx:coord>-75.310041 40.093861 0.20000000298023224</gx:coord> +<when>2013-07-25T19:45:26.000Z</when> +<gx:coord>-75.3101 40.09382 0.0</gx:coord> +<when>2013-07-25T19:45:27.000Z</when> +<gx:coord>-75.310162 40.09378 0.0</gx:coord> +<when>2013-07-25T19:45:28.000Z</when> +<gx:coord>-75.310224 40.093733 0.0</gx:coord> +<when>2013-07-25T19:45:29.000Z</when> +<gx:coord>-75.310282 40.093692 -0.8999999761581421</gx:coord> +<when>2013-07-25T19:45:30.000Z</when> +<gx:coord>-75.31034 40.093644 -1.100000023841858</gx:coord> +<when>2013-07-25T19:45:31.000Z</when> +<gx:coord>-75.310404 40.093591 -1.2000000476837158</gx:coord> +<when>2013-07-25T19:45:32.000Z</when> +<gx:coord>-75.310471 40.093534 -1.399999976158142</gx:coord> +<when>2013-07-25T19:45:33.000Z</when> +<gx:coord>-75.310531 40.093479 -1.399999976158142</gx:coord> +<when>2013-07-25T19:45:34.000Z</when> +<gx:coord>-75.310596 40.093426 -0.8999999761581421</gx:coord> +<when>2013-07-25T19:45:35.000Z</when> +<gx:coord>-75.310648 40.093353 -1.100000023841858</gx:coord> +<when>2013-07-25T19:45:36.000Z</when> +<gx:coord>-75.310684 40.093275 -1.899999976158142</gx:coord> +<when>2013-07-25T19:45:37.000Z</when> +<gx:coord>-75.310713 40.093197 -2.700000047683716</gx:coord> +<when>2013-07-25T19:45:38.000Z</when> +<gx:coord>-75.310747 40.093133 -3.200000047683716</gx:coord> +<when>2013-07-25T19:45:39.000Z</when> +<gx:coord>-75.310773 40.093073 -2.5</gx:coord> +<when>2013-07-25T19:45:40.000Z</when> +<gx:coord>-75.310803 40.093004 -2.5</gx:coord> +<when>2013-07-25T19:45:41.000Z</when> +<gx:coord>-75.310837 40.092942 -2.700000047683716</gx:coord> +<when>2013-07-25T19:45:42.000Z</when> +<gx:coord>-75.310869 40.092876 -3.200000047683716</gx:coord> +<when>2013-07-25T19:45:43.000Z</when> +<gx:coord>-75.310891 40.092809 -3.5</gx:coord> +<when>2013-07-25T19:45:44.000Z</when> +<gx:coord>-75.310916 40.092736 -3.700000047683716</gx:coord> +<when>2013-07-25T19:45:45.000Z</when> +<gx:coord>-75.310931 40.092661 -4.300000190734863</gx:coord> +<when>2013-07-25T19:45:46.000Z</when> +<gx:coord>-75.31096 40.092591 -4.699999809265137</gx:coord> +<when>2013-07-25T19:45:47.000Z</when> +<gx:coord>-75.31098 40.092521 -5.300000190734863</gx:coord> +<when>2013-07-25T19:45:48.000Z</when> +<gx:coord>-75.310995 40.09245 -5.400000095367432</gx:coord> +<when>2013-07-25T19:45:49.000Z</when> +<gx:coord>-75.311 40.092396 -4.800000190734863</gx:coord> +<when>2013-07-25T19:45:50.000Z</when> +<gx:coord>-75.311018 40.092349 -4.300000190734863</gx:coord> +<when>2013-07-25T19:45:51.000Z</when> +<gx:coord>-75.311035 40.092322 -4.800000190734863</gx:coord> +<when>2013-07-25T19:45:52.000Z</when> +<gx:coord>-75.311066 40.092283 -6.099999904632568</gx:coord> +<when>2013-07-25T19:45:59.000Z</when> +<gx:coord>-75.311108 40.092253 -8.300000190734863</gx:coord> +<when>2013-07-25T19:46:00.000Z</when> +<gx:coord>-75.311109 40.09225 -8.399999618530273</gx:coord> +<when>2013-07-25T19:46:03.000Z</when> +<gx:coord>-75.311125 40.092246 -8.899999618530273</gx:coord> +<when>2013-07-25T19:46:04.000Z</when> +<gx:coord>-75.311164 40.092228 -9.800000190734863</gx:coord> +<when>2013-07-25T19:46:05.000Z</when> +<gx:coord>-75.311201 40.092228 -9.399999618530273</gx:coord> +<when>2013-07-25T19:46:06.000Z</when> +<gx:coord>-75.311237 40.092224 -9.399999618530273</gx:coord> +<when>2013-07-25T19:46:07.000Z</when> +<gx:coord>-75.31127 40.09222 -9.5</gx:coord> +<when>2013-07-25T19:46:08.000Z</when> +<gx:coord>-75.311299 40.092211 -8.300000190734863</gx:coord> +<when>2013-07-25T19:46:10.000Z</when> +<gx:coord>-75.311337 40.092189 -9.300000190734863</gx:coord> +<when>2013-07-25T19:46:11.000Z</when> +<gx:coord>-75.311356 40.092168 -9.0</gx:coord> +<when>2013-07-25T19:46:12.000Z</when> +<gx:coord>-75.31138 40.092143 -8.800000190734863</gx:coord> +<when>2013-07-25T19:46:13.000Z</when> +<gx:coord>-75.311409 40.092115 -8.199999809265137</gx:coord> +<when>2013-07-25T19:46:14.000Z</when> +<gx:coord>-75.311444 40.092092 -8.199999809265137</gx:coord> +<when>2013-07-25T19:46:15.000Z</when> +<gx:coord>-75.311481 40.092072 -8.100000381469727</gx:coord> +<when>2013-07-25T19:46:16.000Z</when> +<gx:coord>-75.311522 40.092053 -7.599999904632568</gx:coord> +<when>2013-07-25T19:46:17.000Z</when> +<gx:coord>-75.311564 40.092036 -7.599999904632568</gx:coord> +<when>2013-07-25T19:46:18.000Z</when> +<gx:coord>-75.311606 40.092016 -6.900000095367432</gx:coord> +<when>2013-07-25T19:46:19.000Z</when> +<gx:coord>-75.311646 40.091993 -6.800000190734863</gx:coord> +<when>2013-07-25T19:46:20.000Z</when> +<gx:coord>-75.311686 40.091967 -6.800000190734863</gx:coord> +<when>2013-07-25T19:46:21.000Z</when> +<gx:coord>-75.311725 40.09194 -6.599999904632568</gx:coord> +<when>2013-07-25T19:46:22.000Z</when> +<gx:coord>-75.311763 40.091915 -6.699999809265137</gx:coord> +<when>2013-07-25T19:46:23.000Z</when> +<gx:coord>-75.311803 40.091888 -6.699999809265137</gx:coord> +<when>2013-07-25T19:46:24.000Z</when> +<gx:coord>-75.311846 40.09186 -6.400000095367432</gx:coord> +<when>2013-07-25T19:46:25.000Z</when> +<gx:coord>-75.311886 40.091831 -6.599999904632568</gx:coord> +<when>2013-07-25T19:46:26.000Z</when> +<gx:coord>-75.311926 40.091801 -6.599999904632568</gx:coord> +<when>2013-07-25T19:46:27.000Z</when> +<gx:coord>-75.311974 40.091761 -6.099999904632568</gx:coord> +<when>2013-07-25T19:46:28.000Z</when> +<gx:coord>-75.312013 40.091726 -5.699999809265137</gx:coord> +<when>2013-07-25T19:46:29.000Z</when> +<gx:coord>-75.312047 40.091689 -5.5</gx:coord> +<when>2013-07-25T19:46:30.000Z</when> +<gx:coord>-75.312069 40.09165 -5.199999809265137</gx:coord> +<when>2013-07-25T19:46:31.000Z</when> +<gx:coord>-75.312109 40.091628 -4.699999809265137</gx:coord> +<when>2013-07-25T19:46:32.000Z</when> +<gx:coord>-75.312111 40.091578 -3.4000000953674316</gx:coord> +<when>2013-07-25T19:46:33.000Z</when> +<gx:coord>-75.312089 40.091523 -1.7000000476837158</gx:coord> +<when>2013-07-25T19:46:34.000Z</when> +<gx:coord>-75.312079 40.091472 -1.2000000476837158</gx:coord> +<when>2013-07-25T19:46:35.000Z</when> +<gx:coord>-75.312082 40.091426 -1.2000000476837158</gx:coord> +<when>2013-07-25T19:46:36.000Z</when> +<gx:coord>-75.312086 40.091373 -0.800000011920929</gx:coord> +<when>2013-07-25T19:46:37.000Z</when> +<gx:coord>-75.312098 40.091324 -2.0</gx:coord> +<when>2013-07-25T19:46:38.000Z</when> +<gx:coord>-75.312091 40.091276 -1.899999976158142</gx:coord> +<when>2013-07-25T19:46:39.000Z</when> +<gx:coord>-75.312089 40.091228 -2.0999999046325684</gx:coord> +<when>2013-07-25T19:46:40.000Z</when> +<gx:coord>-75.312087 40.091178 -2.5999999046325684</gx:coord> +<when>2013-07-25T19:46:41.000Z</when> +<gx:coord>-75.312085 40.091123 -2.0999999046325684</gx:coord> +<when>2013-07-25T19:46:42.000Z</when> +<gx:coord>-75.312081 40.091071 -1.899999976158142</gx:coord> +<when>2013-07-25T19:46:43.000Z</when> +<gx:coord>-75.312071 40.091017 -1.899999976158142</gx:coord> +<when>2013-07-25T19:46:44.000Z</when> +<gx:coord>-75.312062 40.09096 -2.4000000953674316</gx:coord> +<when>2013-07-25T19:46:45.000Z</when> +<gx:coord>-75.312051 40.090902 -2.0999999046325684</gx:coord> +<when>2013-07-25T19:46:46.000Z</when> +<gx:coord>-75.312044 40.09085 -1.899999976158142</gx:coord> +<when>2013-07-25T19:46:47.000Z</when> +<gx:coord>-75.312043 40.090799 -2.0999999046325684</gx:coord> +<when>2013-07-25T19:46:48.000Z</when> +<gx:coord>-75.312046 40.090744 -2.0999999046325684</gx:coord> +<when>2013-07-25T19:46:49.000Z</when> +<gx:coord>-75.312047 40.090687 -2.4000000953674316</gx:coord> +<when>2013-07-25T19:46:50.000Z</when> +<gx:coord>-75.312037 40.090631 -2.0999999046325684</gx:coord> +<when>2013-07-25T19:46:51.000Z</when> +<gx:coord>-75.312028 40.090576 -2.299999952316284</gx:coord> +<when>2013-07-25T19:46:52.001Z</when> +<gx:coord>-75.312016 40.090516 -2.4000000953674316</gx:coord> +<when>2013-07-25T19:46:53.000Z</when> +<gx:coord>-75.311999 40.090458 -2.200000047683716</gx:coord> +<when>2013-07-25T19:46:54.000Z</when> +<gx:coord>-75.311979 40.0904 -2.799999952316284</gx:coord> +<when>2013-07-25T19:46:54.999Z</when> +<gx:coord>-75.311959 40.090341 -3.5999999046325684</gx:coord> +<when>2013-07-25T19:46:56.000Z</when> +<gx:coord>-75.311936 40.090295 -3.0999999046325684</gx:coord> +<when>2013-07-25T19:46:57.001Z</when> +<gx:coord>-75.311914 40.090238 -3.0</gx:coord> +<when>2013-07-25T19:46:58.000Z</when> +<gx:coord>-75.311897 40.090185 -3.5999999046325684</gx:coord> +<when>2013-07-25T19:46:59.000Z</when> +<gx:coord>-75.311873 40.090135 -4.800000190734863</gx:coord> +<when>2013-07-25T19:47:00.000Z</when> +<gx:coord>-75.311859 40.090083 -5.599999904632568</gx:coord> +<when>2013-07-25T19:47:01.000Z</when> +<gx:coord>-75.311841 40.090026 -5.900000095367432</gx:coord> +<when>2013-07-25T19:47:02.000Z</when> +<gx:coord>-75.31182 40.089973 -6.199999809265137</gx:coord> +<when>2013-07-25T19:47:03.000Z</when> +<gx:coord>-75.311799 40.089916 -6.5</gx:coord> +<when>2013-07-25T19:47:04.000Z</when> +<gx:coord>-75.311764 40.089864 -4.300000190734863</gx:coord> +<when>2013-07-25T19:47:05.000Z</when> +<gx:coord>-75.311731 40.089811 -4.199999809265137</gx:coord> +<when>2013-07-25T19:47:06.000Z</when> +<gx:coord>-75.3117 40.089757 -4.0</gx:coord> +<when>2013-07-25T19:47:07.000Z</when> +<gx:coord>-75.311647 40.089725 1.5</gx:coord> +<when>2013-07-25T19:47:08.000Z</when> +<gx:coord>-75.311605 40.089671 1.899999976158142</gx:coord> +<when>2013-07-25T19:47:09.000Z</when> +<gx:coord>-75.31156 40.089618 1.7000000476837158</gx:coord> +<when>2013-07-25T19:47:10.000Z</when> +<gx:coord>-75.311516 40.089561 1.399999976158142</gx:coord> +<when>2013-07-25T19:47:11.000Z</when> +<gx:coord>-75.311479 40.089494 1.2000000476837158</gx:coord> +<when>2013-07-25T19:47:12.000Z</when> +<gx:coord>-75.31145 40.08942 3.799999952316284</gx:coord> +<when>2013-07-25T19:47:13.000Z</when> +<gx:coord>-75.311423 40.08935 4.0</gx:coord> +<when>2013-07-25T19:47:14.000Z</when> +<gx:coord>-75.311402 40.089285 4.400000095367432</gx:coord> +<when>2013-07-25T19:47:15.000Z</when> +<gx:coord>-75.311378 40.089223 4.0</gx:coord> +<when>2013-07-25T19:47:16.000Z</when> +<gx:coord>-75.311362 40.089152 3.799999952316284</gx:coord> +<when>2013-07-25T19:47:17.000Z</when> +<gx:coord>-75.311341 40.089085 3.299999952316284</gx:coord> +<when>2013-07-25T19:47:18.000Z</when> +<gx:coord>-75.311319 40.089019 3.200000047683716</gx:coord> +<when>2013-07-25T19:47:19.000Z</when> +<gx:coord>-75.3113 40.088954 3.0</gx:coord> +<when>2013-07-25T19:47:20.000Z</when> +<gx:coord>-75.311289 40.088891 1.7999999523162842</gx:coord> +<when>2013-07-25T19:47:21.000Z</when> +<gx:coord>-75.311275 40.088825 1.5</gx:coord> +<when>2013-07-25T19:47:22.000Z</when> +<gx:coord>-75.311262 40.088753 0.20000000298023224</gx:coord> +<when>2013-07-25T19:47:23.000Z</when> +<gx:coord>-75.311241 40.088684 -0.30000001192092896</gx:coord> +<when>2013-07-25T19:47:24.000Z</when> +<gx:coord>-75.311222 40.088616 -0.8999999761581421</gx:coord> +<when>2013-07-25T19:47:25.000Z</when> +<gx:coord>-75.311203 40.088553 -1.5</gx:coord> +<when>2013-07-25T19:47:26.000Z</when> +<gx:coord>-75.311189 40.088489 -1.5</gx:coord> +<when>2013-07-25T19:47:27.000Z</when> +<gx:coord>-75.311175 40.088429 -2.0999999046325684</gx:coord> +<when>2013-07-25T19:47:28.000Z</when> +<gx:coord>-75.31117 40.088363 -1.899999976158142</gx:coord> +<when>2013-07-25T19:47:29.000Z</when> +<gx:coord>-75.311167 40.088301 -2.299999952316284</gx:coord> +<when>2013-07-25T19:47:30.000Z</when> +<gx:coord>-75.311163 40.088239 -2.0999999046325684</gx:coord> +<when>2013-07-25T19:47:31.000Z</when> +<gx:coord>-75.311176 40.088181 -2.299999952316284</gx:coord> +<when>2013-07-25T19:47:32.000Z</when> +<gx:coord>-75.311186 40.088117 -1.7000000476837158</gx:coord> +<when>2013-07-25T19:47:33.000Z</when> +<gx:coord>-75.311199 40.088055 -1.399999976158142</gx:coord> +<when>2013-07-25T19:47:34.000Z</when> +<gx:coord>-75.311212 40.087994 -0.6000000238418579</gx:coord> +<when>2013-07-25T19:47:35.000Z</when> +<gx:coord>-75.311226 40.087928 -0.699999988079071</gx:coord> +<when>2013-07-25T19:47:36.000Z</when> +<gx:coord>-75.311236 40.087864 -0.6000000238418579</gx:coord> +<when>2013-07-25T19:47:37.000Z</when> +<gx:coord>-75.311244 40.087804 -1.0</gx:coord> +<when>2013-07-25T19:47:38.000Z</when> +<gx:coord>-75.311259 40.087743 -0.800000011920929</gx:coord> +<when>2013-07-25T19:47:39.000Z</when> +<gx:coord>-75.311267 40.087682 -0.10000000149011612</gx:coord> +<when>2013-07-25T19:47:40.000Z</when> +<gx:coord>-75.311274 40.087616 0.30000001192092896</gx:coord> +<when>2013-07-25T19:47:41.000Z</when> +<gx:coord>-75.311273 40.087553 0.30000001192092896</gx:coord> +<when>2013-07-25T19:47:42.000Z</when> +<gx:coord>-75.311271 40.087497 0.800000011920929</gx:coord> +<when>2013-07-25T19:47:43.000Z</when> +<gx:coord>-75.311263 40.087431 0.4000000059604645</gx:coord> +<when>2013-07-25T19:47:44.000Z</when> +<gx:coord>-75.311254 40.087367 0.30000001192092896</gx:coord> +<when>2013-07-25T19:47:45.000Z</when> +<gx:coord>-75.31125 40.087301 0.0</gx:coord> +<when>2013-07-25T19:47:46.000Z</when> +<gx:coord>-75.311241 40.087235 -0.30000001192092896</gx:coord> +<when>2013-07-25T19:47:47.000Z</when> +<gx:coord>-75.311235 40.087167 0.30000001192092896</gx:coord> +<when>2013-07-25T19:47:48.000Z</when> +<gx:coord>-75.311236 40.087102 0.4000000059604645</gx:coord> +<when>2013-07-25T19:47:49.000Z</when> +<gx:coord>-75.311232 40.087039 -0.5</gx:coord> +<when>2013-07-25T19:47:50.000Z</when> +<gx:coord>-75.311225 40.086969 -0.699999988079071</gx:coord> +<when>2013-07-25T19:47:51.000Z</when> +<gx:coord>-75.311223 40.086903 -0.8999999761581421</gx:coord> +<when>2013-07-25T19:47:52.000Z</when> +<gx:coord>-75.311215 40.086836 -1.600000023841858</gx:coord> +<when>2013-07-25T19:47:53.000Z</when> +<gx:coord>-75.311203 40.086766 -2.9000000953674316</gx:coord> +<when>2013-07-25T19:47:54.000Z</when> +<gx:coord>-75.311189 40.086702 -3.5999999046325684</gx:coord> +<when>2013-07-25T19:47:55.000Z</when> +<gx:coord>-75.311179 40.086635 -3.9000000953674316</gx:coord> +<when>2013-07-25T19:47:56.000Z</when> +<gx:coord>-75.311168 40.086561 -3.700000047683716</gx:coord> +<when>2013-07-25T19:47:57.000Z</when> +<gx:coord>-75.311157 40.086496 -3.4000000953674316</gx:coord> +<when>2013-07-25T19:47:58.000Z</when> +<gx:coord>-75.311146 40.08643 -3.299999952316284</gx:coord> +<when>2013-07-25T19:47:59.000Z</when> +<gx:coord>-75.31114 40.086363 -3.4000000953674316</gx:coord> +<when>2013-07-25T19:48:00.000Z</when> +<gx:coord>-75.31113 40.086288 -4.199999809265137</gx:coord> +<when>2013-07-25T19:48:01.000Z</when> +<gx:coord>-75.311122 40.086226 -4.199999809265137</gx:coord> +<when>2013-07-25T19:48:02.000Z</when> +<gx:coord>-75.311116 40.086166 -4.0</gx:coord> +<when>2013-07-25T19:48:03.000Z</when> +<gx:coord>-75.311118 40.086094 -4.5</gx:coord> +<when>2013-07-25T19:48:03.999Z</when> +<gx:coord>-75.311115 40.086032 -4.400000095367432</gx:coord> +<when>2013-07-25T19:48:05.000Z</when> +<gx:coord>-75.311107 40.085966 -4.599999904632568</gx:coord> +<when>2013-07-25T19:48:06.000Z</when> +<gx:coord>-75.311095 40.085901 -4.400000095367432</gx:coord> +<when>2013-07-25T19:48:07.000Z</when> +<gx:coord>-75.311085 40.085855 -2.4000000953674316</gx:coord> +<when>2013-07-25T19:48:08.000Z</when> +<gx:coord>-75.311079 40.085799 -1.5</gx:coord> +<when>2013-07-25T19:48:09.000Z</when> +<gx:coord>-75.311078 40.085741 -1.2000000476837158</gx:coord> +<when>2013-07-25T19:48:10.000Z</when> +<gx:coord>-75.311068 40.085682 -1.100000023841858</gx:coord> +<when>2013-07-25T19:48:11.001Z</when> +<gx:coord>-75.311064 40.085622 -1.100000023841858</gx:coord> +<when>2013-07-25T19:48:12.000Z</when> +<gx:coord>-75.311061 40.085565 -0.699999988079071</gx:coord> +<when>2013-07-25T19:48:13.000Z</when> +<gx:coord>-75.311066 40.085514 -0.699999988079071</gx:coord> +<when>2013-07-25T19:48:14.000Z</when> +<gx:coord>-75.311073 40.085451 2.0</gx:coord> +<when>2013-07-25T19:48:15.000Z</when> +<gx:coord>-75.311076 40.085391 3.0999999046325684</gx:coord> +<when>2013-07-25T19:48:16.000Z</when> +<gx:coord>-75.311078 40.085342 2.200000047683716</gx:coord> +<when>2013-07-25T19:48:17.000Z</when> +<gx:coord>-75.311073 40.085283 1.399999976158142</gx:coord> +<when>2013-07-25T19:48:18.000Z</when> +<gx:coord>-75.31107 40.085223 1.899999976158142</gx:coord> +<when>2013-07-25T19:48:19.000Z</when> +<gx:coord>-75.31107 40.085167 2.700000047683716</gx:coord> +<when>2013-07-25T19:48:20.000Z</when> +<gx:coord>-75.311091 40.085101 2.700000047683716</gx:coord> +<when>2013-07-25T19:48:21.000Z</when> +<gx:coord>-75.311109 40.085039 2.200000047683716</gx:coord> +<when>2013-07-25T19:48:22.000Z</when> +<gx:coord>-75.311123 40.08498 2.200000047683716</gx:coord> +<when>2013-07-25T19:48:23.000Z</when> +<gx:coord>-75.311142 40.08492 1.7999999523162842</gx:coord> +<when>2013-07-25T19:48:24.000Z</when> +<gx:coord>-75.311152 40.084854 1.7000000476837158</gx:coord> +<when>2013-07-25T19:48:25.000Z</when> +<gx:coord>-75.311191 40.084809 0.10000000149011612</gx:coord> +<when>2013-07-25T19:48:26.000Z</when> +<gx:coord>-75.311211 40.084753 -1.5</gx:coord> +<when>2013-07-25T19:48:27.000Z</when> +<gx:coord>-75.31123 40.084689 -2.5</gx:coord> +<when>2013-07-25T19:48:28.000Z</when> +<gx:coord>-75.311255 40.084626 -3.200000047683716</gx:coord> +<when>2013-07-25T19:48:29.000Z</when> +<gx:coord>-75.311287 40.084569 -0.20000000298023224</gx:coord> +<when>2013-07-25T19:48:30.000Z</when> +<gx:coord>-75.311309 40.084511 2.5999999046325684</gx:coord> +<when>2013-07-25T19:48:31.000Z</when> +<gx:coord>-75.311327 40.084448 0.0</gx:coord> +<when>2013-07-25T19:48:32.000Z</when> +<gx:coord>-75.311352 40.084402 0.10000000149011612</gx:coord> +<when>2013-07-25T19:48:33.000Z</when> +<gx:coord>-75.311381 40.084352 0.0</gx:coord> +<when>2013-07-25T19:48:34.000Z</when> +<gx:coord>-75.3114 40.084301 0.0</gx:coord> +<when>2013-07-25T19:48:35.000Z</when> +<gx:coord>-75.311415 40.084211 0.0</gx:coord> +<when>2013-07-25T19:48:36.000Z</when> +<gx:coord>-75.311439 40.084158 -0.30000001192092896</gx:coord> +<when>2013-07-25T19:48:37.000Z</when> +<gx:coord>-75.311455 40.0841 -0.4000000059604645</gx:coord> +<when>2013-07-25T19:48:38.000Z</when> +<gx:coord>-75.311495 40.084053 -0.699999988079071</gx:coord> +<when>2013-07-25T19:48:39.000Z</when> +<gx:coord>-75.311518 40.083998 -0.800000011920929</gx:coord> +<when>2013-07-25T19:48:40.000Z</when> +<gx:coord>-75.311547 40.083946 -1.2000000476837158</gx:coord> +<when>2013-07-25T19:48:41.000Z</when> +<gx:coord>-75.311565 40.083891 -1.100000023841858</gx:coord> +<when>2013-07-25T19:48:42.000Z</when> +<gx:coord>-75.311588 40.083835 -1.0</gx:coord> +<when>2013-07-25T19:48:43.000Z</when> +<gx:coord>-75.311605 40.083782 -0.6000000238418579</gx:coord> +<when>2013-07-25T19:48:43.999Z</when> +<gx:coord>-75.311622 40.083727 -0.30000001192092896</gx:coord> +<when>2013-07-25T19:48:45.000Z</when> +<gx:coord>-75.311629 40.08367 -0.699999988079071</gx:coord> +<when>2013-07-25T19:48:46.000Z</when> +<gx:coord>-75.311637 40.083614 -0.800000011920929</gx:coord> +<when>2013-07-25T19:48:47.000Z</when> +<gx:coord>-75.311654 40.083563 -1.0</gx:coord> +<when>2013-07-25T19:48:48.000Z</when> +<gx:coord>-75.31167 40.083512 -1.899999976158142</gx:coord> +<when>2013-07-25T19:48:49.000Z</when> +<gx:coord>-75.311694 40.083453 -3.0</gx:coord> +<when>2013-07-25T19:48:50.000Z</when> +<gx:coord>-75.311701 40.083394 -2.5</gx:coord> +<when>2013-07-25T19:48:51.000Z</when> +<gx:coord>-75.311711 40.083337 -2.5999999046325684</gx:coord> +<when>2013-07-25T19:48:52.000Z</when> +<gx:coord>-75.311745 40.08332 -2.5999999046325684</gx:coord> +<when>2013-07-25T19:48:53.000Z</when> +<gx:coord>-75.311811 40.083364 -3.200000047683716</gx:coord> +<when>2013-07-25T19:48:56.000Z</when> +<gx:coord>-75.311855 40.083348 -5.300000190734863</gx:coord> +<when>2013-07-25T19:48:57.000Z</when> +<gx:coord>-75.311924 40.083312 -4.900000095367432</gx:coord> +<when>2013-07-25T19:48:58.000Z</when> +<gx:coord>-75.311926 40.083224 -5.0</gx:coord> +<when>2013-07-25T19:48:59.000Z</when> +<gx:coord>-75.311861 40.083091 -4.199999809265137</gx:coord> +<when>2013-07-25T19:49:00.000Z</when> +<gx:coord>-75.31186 40.083005 -3.200000047683716</gx:coord> +<when>2013-07-25T19:49:01.000Z</when> +<gx:coord>-75.311879 40.08292 -2.700000047683716</gx:coord> +<when>2013-07-25T19:49:02.000Z</when> +<gx:coord>-75.311887 40.08287 -2.799999952316284</gx:coord> +<when>2013-07-25T19:49:04.000Z</when> +<gx:coord>-75.311869 40.082845 -5.199999809265137</gx:coord> +<when>2013-07-25T19:49:05.000Z</when> +<gx:coord>-75.311834 40.082827 -0.800000011920929</gx:coord> +<when>2013-07-25T19:49:06.000Z</when> +<gx:coord>-75.311867 40.082704 1.7000000476837158</gx:coord> +<when>2013-07-25T19:49:07.000Z</when> +<gx:coord>-75.311877 40.082622 3.4000000953674316</gx:coord> +<when>2013-07-25T19:49:08.000Z</when> +<gx:coord>-75.311871 40.082531 3.799999952316284</gx:coord> +<when>2013-07-25T19:49:09.000Z</when> +<gx:coord>-75.311869 40.082466 3.9000000953674316</gx:coord> +<when>2013-07-25T19:49:10.000Z</when> +<gx:coord>-75.311858 40.08237 4.099999904632568</gx:coord> +<when>2013-07-25T19:49:11.000Z</when> +<gx:coord>-75.311841 40.082281 5.900000095367432</gx:coord> +<when>2013-07-25T19:49:12.000Z</when> +<gx:coord>-75.311837 40.08224 8.300000190734863</gx:coord> +<when>2013-07-25T19:49:13.000Z</when> +<gx:coord>-75.31183 40.082164 9.0</gx:coord> +<when>2013-07-25T19:49:14.000Z</when> +<gx:coord>-75.311842 40.082097 9.600000381469727</gx:coord> +<when>2013-07-25T19:49:15.000Z</when> +<gx:coord>-75.311859 40.082025 10.100000381469727</gx:coord> +<when>2013-07-25T19:49:16.000Z</when> +<gx:coord>-75.311907 40.081979 10.800000190734863</gx:coord> +<when>2013-07-25T19:49:17.000Z</when> +<gx:coord>-75.311944 40.081923 10.800000190734863</gx:coord> +<when>2013-07-25T19:49:18.000Z</when> +<gx:coord>-75.311967 40.081879 11.0</gx:coord> +<when>2013-07-25T19:49:19.000Z</when> +<gx:coord>-75.311986 40.081826 10.300000190734863</gx:coord> +<when>2013-07-25T19:49:20.000Z</when> +<gx:coord>-75.311997 40.081782 10.899999618530273</gx:coord> +<when>2013-07-25T19:49:21.000Z</when> +<gx:coord>-75.311992 40.081714 9.600000381469727</gx:coord> +<when>2013-07-25T19:49:22.000Z</when> +<gx:coord>-75.312008 40.081652 9.399999618530273</gx:coord> +<when>2013-07-25T19:49:23.000Z</when> +<gx:coord>-75.312026 40.081593 8.600000381469727</gx:coord> +<when>2013-07-25T19:49:24.000Z</when> +<gx:coord>-75.312037 40.081537 8.199999809265137</gx:coord> +<when>2013-07-25T19:49:25.000Z</when> +<gx:coord>-75.312061 40.081499 5.400000095367432</gx:coord> +<when>2013-07-25T19:49:25.999Z</when> +<gx:coord>-75.312079 40.081463 4.599999904632568</gx:coord> +<when>2013-07-25T19:49:27.000Z</when> +<gx:coord>-75.312087 40.081424 3.799999952316284</gx:coord> +<when>2013-07-25T19:49:28.000Z</when> +<gx:coord>-75.312086 40.081392 4.599999904632568</gx:coord> +<when>2013-07-25T19:49:29.000Z</when> +<gx:coord>-75.312081 40.081341 5.099999904632568</gx:coord> +<when>2013-07-25T19:49:31.000Z</when> +<gx:coord>-75.312092 40.081301 5.199999809265137</gx:coord> +<when>2013-07-25T19:49:32.000Z</when> +<gx:coord>-75.312118 40.081221 5.599999904632568</gx:coord> +<when>2013-07-25T19:49:33.000Z</when> +<gx:coord>-75.312131 40.081184 5.5</gx:coord> +<when>2013-07-25T19:49:34.000Z</when> +<gx:coord>-75.312141 40.081127 5.599999904632568</gx:coord> +<when>2013-07-25T19:49:35.000Z</when> +<gx:coord>-75.312142 40.081006 5.300000190734863</gx:coord> +<when>2013-07-25T19:49:36.000Z</when> +<gx:coord>-75.312155 40.08092 5.099999904632568</gx:coord> +<when>2013-07-25T19:49:37.000Z</when> +<gx:coord>-75.312177 40.080846 5.400000095367432</gx:coord> +<when>2013-07-25T19:49:38.000Z</when> +<gx:coord>-75.312184 40.080769 9.100000381469727</gx:coord> +<when>2013-07-25T19:49:39.000Z</when> +<gx:coord>-75.312194 40.080709 10.0</gx:coord> +<when>2013-07-25T19:49:40.000Z</when> +<gx:coord>-75.312201 40.080657 10.100000381469727</gx:coord> +<when>2013-07-25T19:49:41.000Z</when> +<gx:coord>-75.31218 40.080581 7.699999809265137</gx:coord> +<when>2013-07-25T19:49:42.000Z</when> +<gx:coord>-75.312231 40.080532 5.699999809265137</gx:coord> +<when>2013-07-25T19:49:43.000Z</when> +<gx:coord>-75.312277 40.080465 4.599999904632568</gx:coord> +<when>2013-07-25T19:49:44.000Z</when> +<gx:coord>-75.312313 40.080406 5.400000095367432</gx:coord> +<when>2013-07-25T19:49:45.000Z</when> +<gx:coord>-75.312366 40.080343 5.099999904632568</gx:coord> +<when>2013-07-25T19:49:46.000Z</when> +<gx:coord>-75.312349 40.080259 5.900000095367432</gx:coord> +<when>2013-07-25T19:49:47.000Z</when> +<gx:coord>-75.312348 40.080201 6.099999904632568</gx:coord> +<when>2013-07-25T19:49:48.000Z</when> +<gx:coord>-75.312356 40.080138 6.0</gx:coord> +<when>2013-07-25T19:49:49.000Z</when> +<gx:coord>-75.312354 40.080083 5.599999904632568</gx:coord> +<when>2013-07-25T19:49:50.000Z</when> +<gx:coord>-75.312368 40.080039 5.099999904632568</gx:coord> +<when>2013-07-25T19:49:51.000Z</when> +<gx:coord>-75.31254 40.080074 4.199999809265137</gx:coord> +<when>2013-07-25T19:49:52.000Z</when> +<gx:coord>-75.312595 40.080029 3.0</gx:coord> +<when>2013-07-25T19:49:53.000Z</when> +<gx:coord>-75.312609 40.079998 2.4000000953674316</gx:coord> +<when>2013-07-25T19:49:54.000Z</when> +<gx:coord>-75.312634 40.079953 2.4000000953674316</gx:coord> +<when>2013-07-25T19:49:55.000Z</when> +<gx:coord>-75.312673 40.079899 2.200000047683716</gx:coord> +<when>2013-07-25T19:49:56.000Z</when> +<gx:coord>-75.312682 40.079853 1.2000000476837158</gx:coord> +<when>2013-07-25T19:49:57.000Z</when> +<gx:coord>-75.312711 40.079819 0.20000000298023224</gx:coord> +<when>2013-07-25T19:49:58.000Z</when> +<gx:coord>-75.312731 40.079747 2.5999999046325684</gx:coord> +<when>2013-07-25T19:49:59.000Z</when> +<gx:coord>-75.31276 40.079684 1.399999976158142</gx:coord> +<when>2013-07-25T19:50:00.000Z</when> +<gx:coord>-75.312777 40.079643 1.7999999523162842</gx:coord> +<when>2013-07-25T19:50:01.000Z</when> +<gx:coord>-75.312788 40.079612 2.299999952316284</gx:coord> +<when>2013-07-25T19:50:02.000Z</when> +<gx:coord>-75.31276 40.079558 2.5999999046325684</gx:coord> +<when>2013-07-25T19:50:03.000Z</when> +<gx:coord>-75.312789 40.079474 4.400000095367432</gx:coord> +<when>2013-07-25T19:50:04.000Z</when> +<gx:coord>-75.312811 40.079411 4.400000095367432</gx:coord> +<when>2013-07-25T19:50:05.000Z</when> +<gx:coord>-75.312846 40.079352 3.5999999046325684</gx:coord> +<when>2013-07-25T19:50:06.000Z</when> +<gx:coord>-75.312868 40.079275 3.9000000953674316</gx:coord> +<when>2013-07-25T19:50:07.000Z</when> +<gx:coord>-75.312875 40.079213 2.799999952316284</gx:coord> +<when>2013-07-25T19:50:08.000Z</when> +<gx:coord>-75.312892 40.07916 2.0999999046325684</gx:coord> +<when>2013-07-25T19:50:09.000Z</when> +<gx:coord>-75.312925 40.0791 1.600000023841858</gx:coord> +<when>2013-07-25T19:50:10.000Z</when> +<gx:coord>-75.312927 40.079051 1.7000000476837158</gx:coord> +<when>2013-07-25T19:50:11.000Z</when> +<gx:coord>-75.312917 40.078985 0.10000000149011612</gx:coord> +<when>2013-07-25T19:50:12.000Z</when> +<gx:coord>-75.312913 40.078923 0.0</gx:coord> +<when>2013-07-25T19:50:13.000Z</when> +<gx:coord>-75.3129 40.07888 0.8999999761581421</gx:coord> +<when>2013-07-25T19:50:14.000Z</when> +<gx:coord>-75.3129 40.078822 1.2000000476837158</gx:coord> +<when>2013-07-25T19:50:15.000Z</when> +<gx:coord>-75.312899 40.078763 1.0</gx:coord> +<when>2013-07-25T19:50:16.000Z</when> +<gx:coord>-75.312895 40.078704 1.0</gx:coord> +<when>2013-07-25T19:50:17.000Z</when> +<gx:coord>-75.31287 40.078624 2.200000047683716</gx:coord> +<when>2013-07-25T19:50:18.000Z</when> +<gx:coord>-75.312852 40.078564 3.0</gx:coord> +<when>2013-07-25T19:50:19.000Z</when> +<gx:coord>-75.312844 40.078524 4.599999904632568</gx:coord> +<when>2013-07-25T19:50:20.000Z</when> +<gx:coord>-75.312848 40.078464 5.599999904632568</gx:coord> +<when>2013-07-25T19:50:21.000Z</when> +<gx:coord>-75.312855 40.078411 4.199999809265137</gx:coord> +<when>2013-07-25T19:50:22.001Z</when> +<gx:coord>-75.312854 40.078356 3.299999952316284</gx:coord> +<when>2013-07-25T19:50:23.000Z</when> +<gx:coord>-75.312847 40.078335 4.800000190734863</gx:coord> +<when>2013-07-25T19:50:24.002Z</when> +<gx:coord>-75.312839 40.078292 4.800000190734863</gx:coord> +<when>2013-07-25T19:50:25.000Z</when> +<gx:coord>-75.312842 40.078265 4.900000095367432</gx:coord> +<when>2013-07-25T19:50:26.000Z</when> +<gx:coord>-75.312841 40.078222 5.099999904632568</gx:coord> +<when>2013-07-25T19:50:29.000Z</when> +<gx:coord>-75.312845 40.07821 5.400000095367432</gx:coord> +<when>2013-07-25T19:50:30.000Z</when> +<gx:coord>-75.312794 40.078182 5.400000095367432</gx:coord> +<when>2013-07-25T19:50:31.000Z</when> +<gx:coord>-75.312812 40.078115 3.4000000953674316</gx:coord> +<when>2013-07-25T19:50:32.000Z</when> +<gx:coord>-75.312795 40.078094 4.0</gx:coord> +<when>2013-07-25T19:50:33.000Z</when> +<gx:coord>-75.312775 40.078068 4.800000190734863</gx:coord> +<when>2013-07-25T19:50:34.000Z</when> +<gx:coord>-75.312768 40.078032 4.599999904632568</gx:coord> +<when>2013-07-25T19:50:35.000Z</when> +<gx:coord>-75.312769 40.077989 4.300000190734863</gx:coord> +<when>2013-07-25T19:50:36.000Z</when> +<gx:coord>-75.312765 40.077941 4.5</gx:coord> +<when>2013-07-25T19:50:37.000Z</when> +<gx:coord>-75.312757 40.077891 5.400000095367432</gx:coord> +<when>2013-07-25T19:50:38.000Z</when> +<gx:coord>-75.312737 40.07784 5.599999904632568</gx:coord> +<when>2013-07-25T19:50:39.000Z</when> +<gx:coord>-75.312672 40.077671 6.099999904632568</gx:coord> +<when>2013-07-25T19:50:40.000Z</when> +<gx:coord>-75.312666 40.077597 4.599999904632568</gx:coord> +<when>2013-07-25T19:50:41.000Z</when> +<gx:coord>-75.312653 40.077538 4.800000190734863</gx:coord> +<when>2013-07-25T19:50:42.000Z</when> +<gx:coord>-75.312654 40.077476 2.9000000953674316</gx:coord> +<when>2013-07-25T19:50:43.000Z</when> +<gx:coord>-75.312635 40.077436 3.299999952316284</gx:coord> +<when>2013-07-25T19:50:44.000Z</when> +<gx:coord>-75.31261 40.077393 3.5999999046325684</gx:coord> +<when>2013-07-25T19:50:45.000Z</when> +<gx:coord>-75.312606 40.077357 3.9000000953674316</gx:coord> +<when>2013-07-25T19:50:46.000Z</when> +<gx:coord>-75.312602 40.077317 4.0</gx:coord> +<when>2013-07-25T19:50:47.000Z</when> +<gx:coord>-75.312572 40.077281 4.699999809265137</gx:coord> +<when>2013-07-25T19:50:48.000Z</when> +<gx:coord>-75.312558 40.0772 7.800000190734863</gx:coord> +<when>2013-07-25T19:50:49.000Z</when> +<gx:coord>-75.312572 40.077144 7.400000095367432</gx:coord> +<when>2013-07-25T19:50:50.000Z</when> +<gx:coord>-75.312567 40.07709 6.5</gx:coord> +<when>2013-07-25T19:50:51.000Z</when> +<gx:coord>-75.312533 40.077052 6.5</gx:coord> +<when>2013-07-25T19:50:52.000Z</when> +<gx:coord>-75.31252 40.077011 4.900000095367432</gx:coord> +<when>2013-07-25T19:50:53.000Z</when> +<gx:coord>-75.312516 40.076981 4.099999904632568</gx:coord> +<when>2013-07-25T19:50:54.001Z</when> +<gx:coord>-75.312503 40.076956 4.300000190734863</gx:coord> +<when>2013-07-25T19:50:55.000Z</when> +<gx:coord>-75.312485 40.076904 5.300000190734863</gx:coord> +<when>2013-07-25T19:50:56.000Z</when> +<gx:coord>-75.312463 40.076726 3.0</gx:coord> +<when>2013-07-25T19:50:57.000Z</when> +<gx:coord>-75.312471 40.076665 4.300000190734863</gx:coord> +<when>2013-07-25T19:50:58.000Z</when> +<gx:coord>-75.312457 40.076628 5.300000190734863</gx:coord> +<when>2013-07-25T19:50:59.000Z</when> +<gx:coord>-75.312472 40.076596 6.400000095367432</gx:coord> +<when>2013-07-25T19:51:00.000Z</when> +<gx:coord>-75.312457 40.076549 5.199999809265137</gx:coord> +<when>2013-07-25T19:51:01.999Z</when> +<gx:coord>-75.312467 40.076515 4.400000095367432</gx:coord> +<when>2013-07-25T19:51:03.000Z</when> +<gx:coord>-75.312444 40.076477 2.0999999046325684</gx:coord> +<when>2013-07-25T19:51:06.000Z</when> +<gx:coord>-75.312464 40.07645 -0.10000000149011612</gx:coord> +<when>2013-07-25T19:51:07.000Z</when> +<gx:coord>-75.312478 40.076438 -1.100000023841858</gx:coord> +<when>2013-07-25T19:51:13.000Z</when> +<gx:coord>-75.312527 40.076427 -5.0</gx:coord> +<when>2013-07-25T19:51:14.000Z</when> +<gx:coord>-75.312535 40.076427 -4.800000190734863</gx:coord> +<when>2013-07-25T19:51:17.000Z</when> +<gx:coord>-75.312573 40.076451 -11.199999809265137</gx:coord> +<when>2013-07-25T19:51:18.000Z</when> +<gx:coord>-75.312584 40.076462 -11.199999809265137</gx:coord> +<when>2013-07-25T19:51:21.000Z</when> +<gx:coord>-75.312617 40.076489 -10.199999809265137</gx:coord> +<when>2013-07-25T19:51:22.000Z</when> +<gx:coord>-75.312633 40.076494 -11.300000190734863</gx:coord> +<when>2013-07-25T19:51:25.000Z</when> +<gx:coord>-75.312689 40.076495 -11.699999809265137</gx:coord> +<when>2013-07-25T19:51:26.000Z</when> +<gx:coord>-75.312705 40.076494 -11.399999618530273</gx:coord> +<when>2013-07-25T19:51:29.000Z</when> +<gx:coord>-75.312751 40.076495 -10.100000381469727</gx:coord> +<when>2013-07-25T19:51:30.000Z</when> +<gx:coord>-75.31277 40.076492 -9.699999809265137</gx:coord> +<when>2013-07-25T19:51:32.000Z</when> +<gx:coord>-75.31281 40.076481 -9.600000381469727</gx:coord> +<when>2013-07-25T19:51:33.000Z</when> +<gx:coord>-75.312828 40.076475 -10.800000190734863</gx:coord> +<when>2013-07-25T19:51:35.000Z</when> +<gx:coord>-75.312866 40.076457 -11.899999618530273</gx:coord> +<when>2013-07-25T19:51:36.000Z</when> +<gx:coord>-75.312885 40.076448 -10.5</gx:coord> +<when>2013-07-25T19:51:38.000Z</when> +<gx:coord>-75.312919 40.076429 -7.099999904632568</gx:coord> +<when>2013-07-25T19:51:39.000Z</when> +<gx:coord>-75.312931 40.076418 -6.099999904632568</gx:coord> +<when>2013-07-25T19:51:42.000Z</when> +<gx:coord>-75.312975 40.076396 -5.5</gx:coord> +<when>2013-07-25T19:51:43.000Z</when> +<gx:coord>-75.312996 40.076393 -6.199999809265137</gx:coord> +<when>2013-07-25T19:51:45.000Z</when> +<gx:coord>-75.313042 40.076379 -3.799999952316284</gx:coord> +<when>2013-07-25T19:51:46.000Z</when> +<gx:coord>-75.313065 40.07637 -2.799999952316284</gx:coord> +<when>2013-07-25T19:51:47.000Z</when> +<gx:coord>-75.313089 40.076357 -2.200000047683716</gx:coord> +<when>2013-07-25T19:51:48.000Z</when> +<gx:coord>-75.313119 40.076343 -0.8999999761581421</gx:coord> +<when>2013-07-25T19:51:49.000Z</when> +<gx:coord>-75.313151 40.076335 -0.4000000059604645</gx:coord> +<when>2013-07-25T19:51:50.000Z</when> +<gx:coord>-75.313184 40.076324 -0.800000011920929</gx:coord> +<when>2013-07-25T19:51:51.000Z</when> +<gx:coord>-75.313218 40.076312 -1.100000023841858</gx:coord> +<when>2013-07-25T19:51:52.000Z</when> +<gx:coord>-75.313246 40.076297 -1.100000023841858</gx:coord> +<when>2013-07-25T19:51:54.000Z</when> +<gx:coord>-75.313274 40.076264 1.0</gx:coord> +<when>2013-07-25T19:51:55.000Z</when> +<gx:coord>-75.313266 40.076247 1.5</gx:coord> +<when>2013-07-25T19:51:56.000Z</when> +<gx:coord>-75.313245 40.07623 1.399999976158142</gx:coord> +<when>2013-07-25T19:51:57.000Z</when> +<gx:coord>-75.313217 40.076216 1.0</gx:coord> +<when>2013-07-25T19:51:58.000Z</when> +<gx:coord>-75.313186 40.076203 0.6000000238418579</gx:coord> +<when>2013-07-25T19:51:59.000Z</when> +<gx:coord>-75.313161 40.07619 0.20000000298023224</gx:coord> +<when>2013-07-25T19:52:00.000Z</when> +<gx:coord>-75.313123 40.07617 -1.2999999523162842</gx:coord> +<when>2013-07-25T19:52:01.000Z</when> +<gx:coord>-75.313097 40.076154 -1.5</gx:coord> +<when>2013-07-25T19:52:02.000Z</when> +<gx:coord>-75.313052 40.076133 -1.899999976158142</gx:coord> +<when>2013-07-25T19:52:03.000Z</when> +<gx:coord>-75.313011 40.076113 -1.600000023841858</gx:coord> +<when>2013-07-25T19:52:04.000Z</when> +<gx:coord>-75.312968 40.076096 0.0</gx:coord> +<when>2013-07-25T19:52:05.000Z</when> +<gx:coord>-75.312931 40.07608 2.200000047683716</gx:coord> +<when>2013-07-25T19:52:06.000Z</when> +<gx:coord>-75.312904 40.076065 5.199999809265137</gx:coord> +<when>2013-07-25T19:52:07.000Z</when> +<gx:coord>-75.31288 40.076052 8.100000381469727</gx:coord> +<when>2013-07-25T19:52:08.000Z</when> +<gx:coord>-75.312859 40.076036 10.300000190734863</gx:coord> +<when>2013-07-25T19:52:09.000Z</when> +<gx:coord>-75.312829 40.076018 9.600000381469727</gx:coord> +<when>2013-07-25T19:52:10.000Z</when> +<gx:coord>-75.312795 40.075999 8.300000190734863</gx:coord> +<when>2013-07-25T19:52:11.000Z</when> +<gx:coord>-75.312763 40.075983 7.099999904632568</gx:coord> +<when>2013-07-25T19:52:12.000Z</when> +<gx:coord>-75.312708 40.075964 6.599999904632568</gx:coord> +<when>2013-07-25T19:52:13.000Z</when> +<gx:coord>-75.312667 40.075949 6.099999904632568</gx:coord> +<when>2013-07-25T19:52:14.000Z</when> +<gx:coord>-75.312609 40.075924 7.699999809265137</gx:coord> +<when>2013-07-25T19:52:15.000Z</when> +<gx:coord>-75.312555 40.075902 8.300000190734863</gx:coord> +<when>2013-07-25T19:52:16.000Z</when> +<gx:coord>-75.312499 40.075877 7.599999904632568</gx:coord> +<when>2013-07-25T19:52:17.000Z</when> +<gx:coord>-75.312448 40.075852 6.599999904632568</gx:coord> +<when>2013-07-25T19:52:18.000Z</when> +<gx:coord>-75.3124 40.075829 6.099999904632568</gx:coord> +<when>2013-07-25T19:52:19.000Z</when> +<gx:coord>-75.312349 40.075799 7.5</gx:coord> +<when>2013-07-25T19:52:20.000Z</when> +<gx:coord>-75.312283 40.075767 8.600000381469727</gx:coord> +<when>2013-07-25T19:52:21.000Z</when> +<gx:coord>-75.312235 40.075742 8.899999618530273</gx:coord> +<when>2013-07-25T19:52:22.000Z</when> +<gx:coord>-75.312196 40.075725 8.199999809265137</gx:coord> +<when>2013-07-25T19:52:23.000Z</when> +<gx:coord>-75.312176 40.075668 7.300000190734863</gx:coord> +<when>2013-07-25T19:52:24.000Z</when> +<gx:coord>-75.312147 40.07563 7.0</gx:coord> +<when>2013-07-25T19:52:25.000Z</when> +<gx:coord>-75.312106 40.075582 5.199999809265137</gx:coord> +<when>2013-07-25T19:52:26.000Z</when> +<gx:coord>-75.312065 40.075547 4.400000095367432</gx:coord> +<when>2013-07-25T19:52:27.000Z</when> +<gx:coord>-75.312038 40.075502 3.700000047683716</gx:coord> +<when>2013-07-25T19:52:28.000Z</when> +<gx:coord>-75.312029 40.07545 3.299999952316284</gx:coord> +<when>2013-07-25T19:52:29.000Z</when> +<gx:coord>-75.312062 40.075411 3.9000000953674316</gx:coord> +<when>2013-07-25T19:52:30.002Z</when> +<gx:coord>-75.312082 40.075367 4.300000190734863</gx:coord> +<when>2013-07-25T19:52:31.000Z</when> +<gx:coord>-75.312084 40.075335 4.0</gx:coord> +<when>2013-07-25T19:52:32.000Z</when> +<gx:coord>-75.312105 40.075303 4.099999904632568</gx:coord> +<when>2013-07-25T19:52:33.000Z</when> +<gx:coord>-75.312069 40.075272 4.0</gx:coord> +<when>2013-07-25T19:52:34.000Z</when> +<gx:coord>-75.312031 40.075229 3.799999952316284</gx:coord> +<when>2013-07-25T19:52:35.000Z</when> +<gx:coord>-75.311927 40.075206 4.800000190734863</gx:coord> +<when>2013-07-25T19:52:36.000Z</when> +<gx:coord>-75.311901 40.075159 4.300000190734863</gx:coord> +<when>2013-07-25T19:52:37.000Z</when> +<gx:coord>-75.311873 40.075114 4.099999904632568</gx:coord> +<when>2013-07-25T19:52:38.000Z</when> +<gx:coord>-75.311848 40.075055 3.4000000953674316</gx:coord> +<when>2013-07-25T19:52:39.000Z</when> +<gx:coord>-75.311818 40.074992 2.9000000953674316</gx:coord> +<when>2013-07-25T19:52:40.000Z</when> +<gx:coord>-75.311802 40.074929 2.5</gx:coord> +<when>2013-07-25T19:52:41.000Z</when> +<gx:coord>-75.311796 40.074851 1.2000000476837158</gx:coord> +<when>2013-07-25T19:52:42.000Z</when> +<gx:coord>-75.311793 40.074785 0.20000000298023224</gx:coord> +<when>2013-07-25T19:52:43.000Z</when> +<gx:coord>-75.311792 40.074716 -0.6000000238418579</gx:coord> +<when>2013-07-25T19:52:44.000Z</when> +<gx:coord>-75.311812 40.074651 -0.5</gx:coord> +<when>2013-07-25T19:52:45.000Z</when> +<gx:coord>-75.311829 40.074574 -0.800000011920929</gx:coord> +<when>2013-07-25T19:52:46.000Z</when> +<gx:coord>-75.311826 40.074501 -1.2000000476837158</gx:coord> +<when>2013-07-25T19:52:47.000Z</when> +<gx:coord>-75.311799 40.074429 -0.30000001192092896</gx:coord> +<when>2013-07-25T19:52:48.000Z</when> +<gx:coord>-75.311777 40.074353 0.4000000059604645</gx:coord> +<when>2013-07-25T19:52:49.000Z</when> +<gx:coord>-75.311744 40.074285 1.100000023841858</gx:coord> +<when>2013-07-25T19:52:50.000Z</when> +<gx:coord>-75.311675 40.074235 1.5</gx:coord> +<when>2013-07-25T19:52:51.000Z</when> +<gx:coord>-75.311614 40.074176 1.2999999523162842</gx:coord> +<when>2013-07-25T19:52:52.000Z</when> +<gx:coord>-75.311568 40.074093 1.100000023841858</gx:coord> +<when>2013-07-25T19:52:53.000Z</when> +<gx:coord>-75.311479 40.07406 1.2999999523162842</gx:coord> +<when>2013-07-25T19:52:54.000Z</when> +<gx:coord>-75.311401 40.074002 1.2000000476837158</gx:coord> +<when>2013-07-25T19:52:55.000Z</when> +<gx:coord>-75.311358 40.073923 0.0</gx:coord> +<when>2013-07-25T19:52:56.000Z</when> +<gx:coord>-75.311281 40.073872 0.4000000059604645</gx:coord> +<when>2013-07-25T19:52:57.000Z</when> +<gx:coord>-75.311206 40.073825 0.8999999761581421</gx:coord> +<when>2013-07-25T19:52:58.000Z</when> +<gx:coord>-75.31114 40.073785 1.2000000476837158</gx:coord> +<when>2013-07-25T19:52:59.000Z</when> +<gx:coord>-75.311074 40.073744 1.7999999523162842</gx:coord> +<when>2013-07-25T19:53:00.000Z</when> +<gx:coord>-75.311021 40.073688 1.0</gx:coord> +<when>2013-07-25T19:53:01.000Z</when> +<gx:coord>-75.310962 40.073654 0.699999988079071</gx:coord> +<when>2013-07-25T19:53:02.000Z</when> +<gx:coord>-75.31091 40.073616 0.10000000149011612</gx:coord> +<when>2013-07-25T19:53:03.000Z</when> +<gx:coord>-75.310853 40.073583 0.4000000059604645</gx:coord> +<when>2013-07-25T19:53:04.000Z</when> +<gx:coord>-75.310786 40.073544 1.0</gx:coord> +<when>2013-07-25T19:53:05.000Z</when> +<gx:coord>-75.310718 40.073511 1.7999999523162842</gx:coord> +<when>2013-07-25T19:53:06.000Z</when> +<gx:coord>-75.310653 40.073475 2.299999952316284</gx:coord> +<when>2013-07-25T19:53:07.000Z</when> +<gx:coord>-75.310595 40.073425 1.7999999523162842</gx:coord> +<when>2013-07-25T19:53:08.000Z</when> +<gx:coord>-75.31054 40.073375 0.20000000298023224</gx:coord> +<when>2013-07-25T19:53:09.000Z</when> +<gx:coord>-75.310479 40.07333 -0.6000000238418579</gx:coord> +<when>2013-07-25T19:53:10.000Z</when> +<gx:coord>-75.310407 40.073293 -0.699999988079071</gx:coord> +<when>2013-07-25T19:53:11.000Z</when> +<gx:coord>-75.310338 40.073252 -0.6000000238418579</gx:coord> +<when>2013-07-25T19:53:12.000Z</when> +<gx:coord>-75.310269 40.073205 -1.2000000476837158</gx:coord> +<when>2013-07-25T19:53:13.000Z</when> +<gx:coord>-75.310207 40.073153 -2.299999952316284</gx:coord> +<when>2013-07-25T19:53:14.000Z</when> +<gx:coord>-75.310128 40.073115 -1.7999999523162842</gx:coord> +<when>2013-07-25T19:53:15.000Z</when> +<gx:coord>-75.310054 40.073067 -2.700000047683716</gx:coord> +<when>2013-07-25T19:53:16.000Z</when> +<gx:coord>-75.309975 40.073026 -4.400000095367432</gx:coord> +<when>2013-07-25T19:53:17.000Z</when> +<gx:coord>-75.309895 40.072994 -4.099999904632568</gx:coord> +<when>2013-07-25T19:53:18.000Z</when> +<gx:coord>-75.30981 40.07297 -2.5</gx:coord> +<when>2013-07-25T19:53:19.000Z</when> +<gx:coord>-75.309738 40.072934 -1.100000023841858</gx:coord> +<when>2013-07-25T19:53:20.000Z</when> +<gx:coord>-75.309673 40.072875 -0.699999988079071</gx:coord> +<when>2013-07-25T19:53:21.000Z</when> +<gx:coord>-75.309607 40.072829 -0.800000011920929</gx:coord> +<when>2013-07-25T19:53:22.000Z</when> +<gx:coord>-75.309548 40.072764 -1.899999976158142</gx:coord> +<when>2013-07-25T19:53:23.000Z</when> +<gx:coord>-75.309489 40.072719 -1.5</gx:coord> +<when>2013-07-25T19:53:24.000Z</when> +<gx:coord>-75.309417 40.072691 -1.600000023841858</gx:coord> +<when>2013-07-25T19:53:25.000Z</when> +<gx:coord>-75.309347 40.072652 -1.5</gx:coord> +<when>2013-07-25T19:53:26.000Z</when> +<gx:coord>-75.309284 40.072624 -1.100000023841858</gx:coord> +<when>2013-07-25T19:53:27.000Z</when> +<gx:coord>-75.309219 40.072586 -1.5</gx:coord> +<when>2013-07-25T19:53:28.000Z</when> +<gx:coord>-75.309153 40.07255 -1.899999976158142</gx:coord> +<when>2013-07-25T19:53:29.000Z</when> +<gx:coord>-75.309089 40.072519 -1.600000023841858</gx:coord> +<when>2013-07-25T19:53:30.000Z</when> +<gx:coord>-75.309023 40.072492 -1.7000000476837158</gx:coord> +<when>2013-07-25T19:53:31.000Z</when> +<gx:coord>-75.308956 40.072463 -1.600000023841858</gx:coord> +<when>2013-07-25T19:53:32.000Z</when> +<gx:coord>-75.308878 40.072433 -1.7000000476837158</gx:coord> +<when>2013-07-25T19:53:33.000Z</when> +<gx:coord>-75.308798 40.072405 -2.0</gx:coord> +<when>2013-07-25T19:53:34.000Z</when> +<gx:coord>-75.308732 40.072375 -2.200000047683716</gx:coord> +<when>2013-07-25T19:53:35.000Z</when> +<gx:coord>-75.308668 40.072341 -2.200000047683716</gx:coord> +<when>2013-07-25T19:53:36.000Z</when> +<gx:coord>-75.308599 40.07231 -2.5</gx:coord> +<when>2013-07-25T19:53:37.000Z</when> +<gx:coord>-75.308535 40.07228 -2.5999999046325684</gx:coord> +<when>2013-07-25T19:53:38.000Z</when> +<gx:coord>-75.308474 40.072257 -2.799999952316284</gx:coord> +<when>2013-07-25T19:53:39.000Z</when> +<gx:coord>-75.308404 40.072232 -3.299999952316284</gx:coord> +<when>2013-07-25T19:53:40.000Z</when> +<gx:coord>-75.308336 40.072209 -3.0</gx:coord> +<when>2013-07-25T19:53:41.000Z</when> +<gx:coord>-75.308281 40.07219 -3.5999999046325684</gx:coord> +<when>2013-07-25T19:53:42.000Z</when> +<gx:coord>-75.308215 40.072167 -4.0</gx:coord> +<when>2013-07-25T19:53:46.000Z</when> +<gx:coord>-75.308174 40.072158 0.5</gx:coord> +<when>2013-07-25T19:53:47.000Z</when> +<gx:coord>-75.308129 40.072196 1.5</gx:coord> +<when>2013-07-25T19:53:48.000Z</when> +<gx:coord>-75.308084 40.072228 3.0</gx:coord> +<when>2013-07-25T19:53:49.000Z</when> +<gx:coord>-75.308001 40.072179 1.7999999523162842</gx:coord> +<when>2013-07-25T19:53:50.000Z</when> +<gx:coord>-75.30792 40.07215 1.100000023841858</gx:coord> +<when>2013-07-25T19:53:51.000Z</when> +<gx:coord>-75.307864 40.072122 0.800000011920929</gx:coord> +<when>2013-07-25T19:53:52.000Z</when> +<gx:coord>-75.307801 40.07209 0.30000001192092896</gx:coord> +<when>2013-07-25T19:53:53.000Z</when> +<gx:coord>-75.307741 40.072072 1.100000023841858</gx:coord> +<when>2013-07-25T19:53:54.000Z</when> +<gx:coord>-75.307687 40.072055 1.0</gx:coord> +<when>2013-07-25T19:53:55.000Z</when> +<gx:coord>-75.307648 40.072046 2.200000047683716</gx:coord> +<when>2013-07-25T19:53:58.000Z</when> +<gx:coord>-75.307595 40.072052 4.400000095367432</gx:coord> +<when>2013-07-25T19:53:59.000Z</when> +<gx:coord>-75.307575 40.072048 4.5</gx:coord> +<when>2013-07-25T19:54:00.000Z</when> +<gx:coord>-75.307537 40.072036 5.0</gx:coord> +<when>2013-07-25T19:54:01.000Z</when> +<gx:coord>-75.307488 40.072019 5.699999809265137</gx:coord> +<when>2013-07-25T19:54:02.000Z</when> +<gx:coord>-75.307437 40.072006 6.300000190734863</gx:coord> +<when>2013-07-25T19:54:03.000Z</when> +<gx:coord>-75.30738 40.071987 8.199999809265137</gx:coord> +<when>2013-07-25T19:54:04.000Z</when> +<gx:coord>-75.307319 40.071968 7.400000095367432</gx:coord> +<when>2013-07-25T19:54:05.000Z</when> +<gx:coord>-75.307256 40.071942 6.199999809265137</gx:coord> +<when>2013-07-25T19:54:06.000Z</when> +<gx:coord>-75.307197 40.071914 4.800000190734863</gx:coord> +<when>2013-07-25T19:54:07.000Z</when> +<gx:coord>-75.307144 40.071882 3.0999999046325684</gx:coord> +<when>2013-07-25T19:54:08.000Z</when> +<gx:coord>-75.307096 40.071845 1.7000000476837158</gx:coord> +<when>2013-07-25T19:54:09.000Z</when> +<gx:coord>-75.307052 40.071808 2.4000000953674316</gx:coord> +<when>2013-07-25T19:54:10.000Z</when> +<gx:coord>-75.307002 40.071775 4.199999809265137</gx:coord> +<when>2013-07-25T19:54:11.000Z</when> +<gx:coord>-75.306953 40.071747 5.599999904632568</gx:coord> +<when>2013-07-25T19:54:12.000Z</when> +<gx:coord>-75.306897 40.071731 5.800000190734863</gx:coord> +<when>2013-07-25T19:54:13.000Z</when> +<gx:coord>-75.306839 40.071727 5.699999809265137</gx:coord> +<when>2013-07-25T19:54:14.000Z</when> +<gx:coord>-75.306774 40.071729 5.400000095367432</gx:coord> +<when>2013-07-25T19:54:15.000Z</when> +<gx:coord>-75.306711 40.071734 4.800000190734863</gx:coord> +<when>2013-07-25T19:54:16.000Z</when> +<gx:coord>-75.306648 40.071738 5.400000095367432</gx:coord> +<when>2013-07-25T19:54:17.000Z</when> +<gx:coord>-75.306589 40.071739 5.699999809265137</gx:coord> +<when>2013-07-25T19:54:18.000Z</when> +<gx:coord>-75.306536 40.071739 8.100000381469727</gx:coord> +<when>2013-07-25T19:54:19.000Z</when> +<gx:coord>-75.306487 40.071737 8.699999809265137</gx:coord> +<when>2013-07-25T19:54:20.000Z</when> +<gx:coord>-75.30644 40.071735 9.399999618530273</gx:coord> +<when>2013-07-25T19:54:21.000Z</when> +<gx:coord>-75.306391 40.071727 8.899999618530273</gx:coord> +<when>2013-07-25T19:54:22.000Z</when> +<gx:coord>-75.30634 40.071719 9.0</gx:coord> +<when>2013-07-25T19:54:23.000Z</when> +<gx:coord>-75.306286 40.071706 8.699999809265137</gx:coord> +<when>2013-07-25T19:54:24.000Z</when> +<gx:coord>-75.30623 40.071693 8.600000381469727</gx:coord> +<when>2013-07-25T19:54:25.000Z</when> +<gx:coord>-75.306183 40.07168 8.800000190734863</gx:coord> +<when>2013-07-25T19:54:26.000Z</when> +<gx:coord>-75.306148 40.071669 9.300000190734863</gx:coord> +<when>2013-07-25T19:54:27.000Z</when> +<gx:coord>-75.306111 40.071653 8.899999618530273</gx:coord> +<when>2013-07-25T19:54:28.000Z</when> +<gx:coord>-75.306067 40.071634 9.600000381469727</gx:coord> +<when>2013-07-25T19:54:29.000Z</when> +<gx:coord>-75.305909 40.071582 9.899999618530273</gx:coord> +<when>2013-07-25T19:54:30.001Z</when> +<gx:coord>-75.305848 40.071567 10.199999809265137</gx:coord> +<when>2013-07-25T19:54:31.000Z</when> +<gx:coord>-75.305768 40.071573 8.399999618530273</gx:coord> +<when>2013-07-25T19:54:32.000Z</when> +<gx:coord>-75.30573 40.071563 8.300000190734863</gx:coord> +<when>2013-07-25T19:54:33.000Z</when> +<gx:coord>-75.305681 40.071558 8.5</gx:coord> +<when>2013-07-25T19:54:34.000Z</when> +<gx:coord>-75.305614 40.071543 8.5</gx:coord> +<when>2013-07-25T19:54:35.000Z</when> +<gx:coord>-75.305571 40.071525 8.800000190734863</gx:coord> +<when>2013-07-25T19:54:36.000Z</when> +<gx:coord>-75.305483 40.071541 8.300000190734863</gx:coord> +<when>2013-07-25T19:54:37.000Z</when> +<gx:coord>-75.305407 40.071536 7.0</gx:coord> +<when>2013-07-25T19:54:38.000Z</when> +<gx:coord>-75.305341 40.071545 7.0</gx:coord> +<when>2013-07-25T19:54:39.000Z</when> +<gx:coord>-75.305285 40.071552 7.199999809265137</gx:coord> +<when>2013-07-25T19:54:40.000Z</when> +<gx:coord>-75.305234 40.071537 7.199999809265137</gx:coord> +<when>2013-07-25T19:54:41.000Z</when> +<gx:coord>-75.305176 40.071527 7.800000190734863</gx:coord> +<when>2013-07-25T19:54:42.000Z</when> +<gx:coord>-75.305114 40.071511 7.699999809265137</gx:coord> +<when>2013-07-25T19:54:43.000Z</when> +<gx:coord>-75.305051 40.071514 7.800000190734863</gx:coord> +<when>2013-07-25T19:54:44.000Z</when> +<gx:coord>-75.305002 40.071516 8.100000381469727</gx:coord> +<when>2013-07-25T19:54:45.000Z</when> +<gx:coord>-75.304947 40.071512 7.300000190734863</gx:coord> +<when>2013-07-25T19:54:46.000Z</when> +<gx:coord>-75.304895 40.071524 7.199999809265137</gx:coord> +<when>2013-07-25T19:54:47.000Z</when> +<gx:coord>-75.304848 40.071529 6.699999809265137</gx:coord> +<when>2013-07-25T19:54:48.000Z</when> +<gx:coord>-75.304803 40.071534 6.699999809265137</gx:coord> +<when>2013-07-25T19:54:49.000Z</when> +<gx:coord>-75.30476 40.071535 6.099999904632568</gx:coord> +<when>2013-07-25T19:54:50.000Z</when> +<gx:coord>-75.304716 40.071532 6.900000095367432</gx:coord> +<when>2013-07-25T19:54:51.000Z</when> +<gx:coord>-75.304671 40.071525 6.699999809265137</gx:coord> +<when>2013-07-25T19:54:52.000Z</when> +<gx:coord>-75.304622 40.071514 5.599999904632568</gx:coord> +<when>2013-07-25T19:54:53.000Z</when> +<gx:coord>-75.304576 40.071501 6.800000190734863</gx:coord> +<when>2013-07-25T19:54:54.000Z</when> +<gx:coord>-75.304525 40.071495 5.0</gx:coord> +<when>2013-07-25T19:54:55.000Z</when> +<gx:coord>-75.304474 40.071493 4.800000190734863</gx:coord> +<when>2013-07-25T19:54:56.000Z</when> +<gx:coord>-75.304417 40.071495 4.5</gx:coord> +<when>2013-07-25T19:54:57.000Z</when> +<gx:coord>-75.304364 40.071501 5.5</gx:coord> +<when>2013-07-25T19:54:58.000Z</when> +<gx:coord>-75.304304 40.07151 3.799999952316284</gx:coord> +<when>2013-07-25T19:54:59.000Z</when> +<gx:coord>-75.304187 40.071512 2.799999952316284</gx:coord> +<when>2013-07-25T19:55:00.000Z</when> +<gx:coord>-75.304133 40.071519 2.5</gx:coord> +<when>2013-07-25T19:55:01.000Z</when> +<gx:coord>-75.30408 40.071534 1.7999999523162842</gx:coord> +<when>2013-07-25T19:55:02.000Z</when> +<gx:coord>-75.304005 40.071539 2.700000047683716</gx:coord> +<when>2013-07-25T19:55:03.000Z</when> +<gx:coord>-75.303946 40.071555 1.100000023841858</gx:coord> +<when>2013-07-25T19:55:04.000Z</when> +<gx:coord>-75.303896 40.071558 0.6000000238418579</gx:coord> +<when>2013-07-25T19:55:05.000Z</when> +<gx:coord>-75.303857 40.07157 1.899999976158142</gx:coord> +<when>2013-07-25T19:55:06.000Z</when> +<gx:coord>-75.303804 40.071578 2.5999999046325684</gx:coord> +<when>2013-07-25T19:55:07.000Z</when> +<gx:coord>-75.303753 40.071602 3.5</gx:coord> +<when>2013-07-25T19:55:08.000Z</when> +<gx:coord>-75.30367 40.07161 4.800000190734863</gx:coord> +<when>2013-07-25T19:55:09.000Z</when> +<gx:coord>-75.303598 40.071606 5.300000190734863</gx:coord> +<when>2013-07-25T19:55:10.000Z</when> +<gx:coord>-75.303528 40.071607 6.5</gx:coord> +<when>2013-07-25T19:55:11.000Z</when> +<gx:coord>-75.303453 40.071615 6.800000190734863</gx:coord> +<when>2013-07-25T19:55:12.000Z</when> +<gx:coord>-75.303388 40.071617 6.599999904632568</gx:coord> +<when>2013-07-25T19:55:13.000Z</when> +<gx:coord>-75.303333 40.071637 5.599999904632568</gx:coord> +<when>2013-07-25T19:55:14.000Z</when> +<gx:coord>-75.303285 40.071651 5.800000190734863</gx:coord> +<when>2013-07-25T19:55:15.000Z</when> +<gx:coord>-75.303218 40.07164 6.400000095367432</gx:coord> +<when>2013-07-25T19:55:16.000Z</when> +<gx:coord>-75.303186 40.071649 6.099999904632568</gx:coord> +<when>2013-07-25T19:55:17.000Z</when> +<gx:coord>-75.30315 40.071663 6.5</gx:coord> +<when>2013-07-25T19:55:18.000Z</when> +<gx:coord>-75.303093 40.071686 6.900000095367432</gx:coord> +<when>2013-07-25T19:55:19.000Z</when> +<gx:coord>-75.303033 40.071687 7.400000095367432</gx:coord> +<when>2013-07-25T19:55:20.000Z</when> +<gx:coord>-75.302952 40.071706 6.800000190734863</gx:coord> +<when>2013-07-25T19:55:21.000Z</when> +<gx:coord>-75.302879 40.071695 6.699999809265137</gx:coord> +<when>2013-07-25T19:55:22.000Z</when> +<gx:coord>-75.302835 40.07171 6.900000095367432</gx:coord> +<when>2013-07-25T19:55:23.000Z</when> +<gx:coord>-75.302777 40.07172 6.699999809265137</gx:coord> +<when>2013-07-25T19:55:24.000Z</when> +<gx:coord>-75.302715 40.071733 7.599999904632568</gx:coord> +<when>2013-07-25T19:55:25.000Z</when> +<gx:coord>-75.302659 40.071741 8.100000381469727</gx:coord> +<when>2013-07-25T19:55:26.000Z</when> +<gx:coord>-75.302603 40.071749 8.199999809265137</gx:coord> +<when>2013-07-25T19:55:27.000Z</when> +<gx:coord>-75.302549 40.071758 8.699999809265137</gx:coord> +<when>2013-07-25T19:55:28.000Z</when> +<gx:coord>-75.302494 40.071766 7.400000095367432</gx:coord> +<when>2013-07-25T19:55:29.000Z</when> +<gx:coord>-75.302442 40.071774 5.099999904632568</gx:coord> +<when>2013-07-25T19:55:30.000Z</when> +<gx:coord>-75.302395 40.071785 5.300000190734863</gx:coord> +<when>2013-07-25T19:55:31.000Z</when> +<gx:coord>-75.302356 40.071801 5.099999904632568</gx:coord> +<when>2013-07-25T19:55:32.000Z</when> +<gx:coord>-75.302321 40.071814 8.800000190734863</gx:coord> +<when>2013-07-25T19:55:33.000Z</when> +<gx:coord>-75.302294 40.071824 11.399999618530273</gx:coord> +<when>2013-07-25T19:55:34.000Z</when> +<gx:coord>-75.302266 40.07183 13.800000190734863</gx:coord> +<when>2013-07-25T19:55:35.000Z</when> +<gx:coord>-75.302233 40.071821 14.300000190734863</gx:coord> +<when>2013-07-25T19:55:36.000Z</when> +<gx:coord>-75.302202 40.071813 12.600000381469727</gx:coord> +<when>2013-07-25T19:55:37.000Z</when> +<gx:coord>-75.302159 40.071811 12.0</gx:coord> +<when>2013-07-25T19:55:38.000Z</when> +<gx:coord>-75.302107 40.071815 14.100000381469727</gx:coord> +<when>2013-07-25T19:55:39.000Z</when> +<gx:coord>-75.302052 40.071824 13.399999618530273</gx:coord> +<when>2013-07-25T19:55:40.000Z</when> +<gx:coord>-75.301989 40.071835 12.699999809265137</gx:coord> +<when>2013-07-25T19:55:41.000Z</when> +<gx:coord>-75.301927 40.071844 12.899999618530273</gx:coord> +<when>2013-07-25T19:55:42.000Z</when> +<gx:coord>-75.301864 40.071853 14.0</gx:coord> +<when>2013-07-25T19:55:43.000Z</when> +<gx:coord>-75.3018 40.071859 14.100000381469727</gx:coord> +<when>2013-07-25T19:55:44.000Z</when> +<gx:coord>-75.301738 40.071866 14.100000381469727</gx:coord> +<when>2013-07-25T19:55:45.000Z</when> +<gx:coord>-75.30168 40.07187 14.300000190734863</gx:coord> +<when>2013-07-25T19:55:46.000Z</when> +<gx:coord>-75.30162 40.071877 13.399999618530273</gx:coord> +<when>2013-07-25T19:55:47.000Z</when> +<gx:coord>-75.30156 40.071886 13.300000190734863</gx:coord> +<when>2013-07-25T19:55:48.000Z</when> +<gx:coord>-75.301495 40.071894 11.899999618530273</gx:coord> +<when>2013-07-25T19:55:49.000Z</when> +<gx:coord>-75.301436 40.071897 13.100000381469727</gx:coord> +<when>2013-07-25T19:55:50.000Z</when> +<gx:coord>-75.301383 40.0719 13.0</gx:coord> +<when>2013-07-25T19:55:51.000Z</when> +<gx:coord>-75.301334 40.071906 9.800000190734863</gx:coord> +<when>2013-07-25T19:55:52.000Z</when> +<gx:coord>-75.301295 40.071912 9.800000190734863</gx:coord> +<when>2013-07-25T19:55:53.000Z</when> +<gx:coord>-75.301265 40.071922 9.399999618530273</gx:coord> +<when>2013-07-25T19:55:54.000Z</when> +<gx:coord>-75.301241 40.071934 10.0</gx:coord> +<when>2013-07-25T19:55:56.000Z</when> +<gx:coord>-75.301201 40.071958 4.900000095367432</gx:coord> +<when>2013-07-25T19:55:57.000Z</when> +<gx:coord>-75.301182 40.071971 1.100000023841858</gx:coord> +<when>2013-07-25T19:56:06.000Z</when> +<gx:coord>-75.301232 40.071974 -4.400000095367432</gx:coord> +<when>2013-07-25T19:56:07.000Z</when> +<gx:coord>-75.301258 40.071966 -5.5</gx:coord> +<when>2013-07-25T19:56:08.000Z</when> +<gx:coord>-75.301289 40.071958 -6.300000190734863</gx:coord> +<when>2013-07-25T19:56:09.000Z</when> +<gx:coord>-75.30132 40.071953 -7.800000190734863</gx:coord> +<when>2013-07-25T19:56:10.000Z</when> +<gx:coord>-75.301353 40.071948 -7.599999904632568</gx:coord> +<when>2013-07-25T19:56:11.000Z</when> +<gx:coord>-75.301388 40.071941 -7.800000190734863</gx:coord> +<when>2013-07-25T19:56:12.000Z</when> +<gx:coord>-75.301423 40.071932 -7.800000190734863</gx:coord> +<when>2013-07-25T19:56:13.000Z</when> +<gx:coord>-75.301454 40.071923 -7.699999809265137</gx:coord> +<when>2013-07-25T19:56:14.000Z</when> +<gx:coord>-75.301486 40.07191 -8.199999809265137</gx:coord> +<when>2013-07-25T19:56:15.000Z</when> +<gx:coord>-75.301517 40.071899 -8.899999618530273</gx:coord> +<when>2013-07-25T19:56:16.000Z</when> +<gx:coord>-75.301547 40.071889 -8.300000190734863</gx:coord> +<when>2013-07-25T19:56:17.000Z</when> +<gx:coord>-75.301585 40.071882 -8.300000190734863</gx:coord> +<when>2013-07-25T19:56:18.000Z</when> +<gx:coord>-75.301625 40.071875 -7.099999904632568</gx:coord> +<when>2013-07-25T19:56:19.000Z</when> +<gx:coord>-75.301668 40.071869 -7.599999904632568</gx:coord> +<when>2013-07-25T19:56:20.000Z</when> +<gx:coord>-75.301715 40.071865 -8.199999809265137</gx:coord> +<when>2013-07-25T19:56:21.000Z</when> +<gx:coord>-75.30176 40.071864 -7.0</gx:coord> +<when>2013-07-25T19:56:22.000Z</when> +<gx:coord>-75.301798 40.071861 -7.900000095367432</gx:coord> +<when>2013-07-25T19:56:23.000Z</when> +<gx:coord>-75.301827 40.071854 -7.900000095367432</gx:coord> +<when>2013-07-25T19:56:54.000Z</when> +<gx:coord>-75.301799 40.071875 -7.300000190734863</gx:coord> +<when>2013-07-25T19:56:55.000Z</when> +<gx:coord>-75.301772 40.071875 -7.400000095367432</gx:coord> +<when>2013-07-25T19:56:57.000Z</when> +<gx:coord>-75.301714 40.07188 -6.599999904632568</gx:coord> +<when>2013-07-25T19:56:58.000Z</when> +<gx:coord>-75.301681 40.071884 -6.699999809265137</gx:coord> +<when>2013-07-25T19:56:59.000Z</when> +<gx:coord>-75.301644 40.071892 -6.5</gx:coord> +<when>2013-07-25T19:57:00.000Z</when> +<gx:coord>-75.301601 40.071901 -5.800000190734863</gx:coord> +<when>2013-07-25T19:57:01.000Z</when> +<gx:coord>-75.301558 40.071911 -6.0</gx:coord> +<when>2013-07-25T19:57:02.000Z</when> +<gx:coord>-75.301512 40.07192 -5.599999904632568</gx:coord> +<when>2013-07-25T19:57:03.000Z</when> +<gx:coord>-75.301465 40.071929 -5.599999904632568</gx:coord> +<when>2013-07-25T19:57:04.000Z</when> +<gx:coord>-75.301415 40.071936 -5.199999809265137</gx:coord> +<when>2013-07-25T19:57:05.000Z</when> +<gx:coord>-75.301366 40.071944 -4.800000190734863</gx:coord> +<when>2013-07-25T19:57:06.000Z</when> +<gx:coord>-75.301317 40.071954 -4.400000095367432</gx:coord> +<when>2013-07-25T19:57:07.000Z</when> +<gx:coord>-75.301266 40.071965 -3.9000000953674316</gx:coord> +<when>2013-07-25T19:57:08.000Z</when> +<gx:coord>-75.301212 40.071978 -3.5999999046325684</gx:coord> +<when>2013-07-25T19:57:09.000Z</when> +<gx:coord>-75.301162 40.07199 -3.4000000953674316</gx:coord> +<when>2013-07-25T19:57:10.000Z</when> +<gx:coord>-75.301109 40.071999 -2.9000000953674316</gx:coord> +<when>2013-07-25T19:57:11.000Z</when> +<gx:coord>-75.301053 40.072007 -2.5</gx:coord> +<when>2013-07-25T19:57:12.000Z</when> +<gx:coord>-75.300996 40.072013 -2.4000000953674316</gx:coord> +<when>2013-07-25T19:57:13.000Z</when> +<gx:coord>-75.300942 40.07202 -2.200000047683716</gx:coord> +<when>2013-07-25T19:57:14.000Z</when> +<gx:coord>-75.300876 40.072017 -0.30000001192092896</gx:coord> +<when>2013-07-25T19:57:15.000Z</when> +<gx:coord>-75.30083 40.072031 0.0</gx:coord> +<when>2013-07-25T19:57:16.000Z</when> +<gx:coord>-75.300771 40.072035 0.6000000238418579</gx:coord> +<when>2013-07-25T19:57:17.000Z</when> +<gx:coord>-75.300718 40.072044 0.800000011920929</gx:coord> +<when>2013-07-25T19:57:18.000Z</when> +<gx:coord>-75.300665 40.072053 1.399999976158142</gx:coord> +<when>2013-07-25T19:57:19.000Z</when> +<gx:coord>-75.300611 40.072064 2.4000000953674316</gx:coord> +<when>2013-07-25T19:57:20.000Z</when> +<gx:coord>-75.300549 40.072069 2.799999952316284</gx:coord> +<when>2013-07-25T19:57:21.000Z</when> +<gx:coord>-75.300495 40.072077 3.0999999046325684</gx:coord> +<when>2013-07-25T19:57:22.000Z</when> +<gx:coord>-75.300428 40.072079 3.4000000953674316</gx:coord> +<when>2013-07-25T19:57:23.000Z</when> +<gx:coord>-75.300372 40.072091 3.0</gx:coord> +<when>2013-07-25T19:57:24.000Z</when> +<gx:coord>-75.30032 40.072095 3.4000000953674316</gx:coord> +<when>2013-07-25T19:57:25.000Z</when> +<gx:coord>-75.300264 40.072104 4.099999904632568</gx:coord> +<when>2013-07-25T19:57:26.000Z</when> +<gx:coord>-75.300201 40.072114 4.900000095367432</gx:coord> +<when>2013-07-25T19:57:27.000Z</when> +<gx:coord>-75.300135 40.072122 5.300000190734863</gx:coord> +<when>2013-07-25T19:57:28.000Z</when> +<gx:coord>-75.300076 40.072137 5.599999904632568</gx:coord> +<when>2013-07-25T19:57:29.000Z</when> +<gx:coord>-75.30002 40.072148 5.099999904632568</gx:coord> +<when>2013-07-25T19:57:30.000Z</when> +<gx:coord>-75.299964 40.072171 4.800000190734863</gx:coord> +<when>2013-07-25T19:57:31.000Z</when> +<gx:coord>-75.2999 40.072187 4.099999904632568</gx:coord> +<when>2013-07-25T19:57:32.000Z</when> +<gx:coord>-75.299836 40.072203 4.5</gx:coord> +<when>2013-07-25T19:57:33.000Z</when> +<gx:coord>-75.299785 40.072217 4.800000190734863</gx:coord> +<when>2013-07-25T19:57:34.000Z</when> +<gx:coord>-75.299724 40.072232 4.5</gx:coord> +<when>2013-07-25T19:57:35.000Z</when> +<gx:coord>-75.299673 40.07224 4.400000095367432</gx:coord> +<when>2013-07-25T19:57:36.000Z</when> +<gx:coord>-75.29961 40.072256 4.099999904632568</gx:coord> +<when>2013-07-25T19:57:37.000Z</when> +<gx:coord>-75.299556 40.072273 4.199999809265137</gx:coord> +<when>2013-07-25T19:57:38.000Z</when> +<gx:coord>-75.299503 40.072284 3.799999952316284</gx:coord> +<when>2013-07-25T19:57:39.000Z</when> +<gx:coord>-75.299445 40.072299 3.799999952316284</gx:coord> +<when>2013-07-25T19:57:40.000Z</when> +<gx:coord>-75.299388 40.072314 4.0</gx:coord> +<when>2013-07-25T19:57:41.000Z</when> +<gx:coord>-75.299337 40.072323 3.9000000953674316</gx:coord> +<when>2013-07-25T19:57:42.000Z</when> +<gx:coord>-75.299293 40.072326 4.5</gx:coord> +<when>2013-07-25T19:57:43.000Z</when> +<gx:coord>-75.299239 40.072329 4.800000190734863</gx:coord> +<when>2013-07-25T19:57:44.000Z</when> +<gx:coord>-75.299181 40.072343 5.0</gx:coord> +<when>2013-07-25T19:57:45.000Z</when> +<gx:coord>-75.299126 40.07235 5.400000095367432</gx:coord> +<when>2013-07-25T19:57:46.000Z</when> +<gx:coord>-75.29907 40.072368 5.699999809265137</gx:coord> +<when>2013-07-25T19:57:47.000Z</when> +<gx:coord>-75.299005 40.072382 4.599999904632568</gx:coord> +<when>2013-07-25T19:57:48.000Z</when> +<gx:coord>-75.298946 40.072392 4.199999809265137</gx:coord> +<when>2013-07-25T19:57:49.000Z</when> +<gx:coord>-75.298895 40.072401 4.099999904632568</gx:coord> +<when>2013-07-25T19:57:50.000Z</when> +<gx:coord>-75.298851 40.072408 3.799999952316284</gx:coord> +<when>2013-07-25T19:57:51.000Z</when> +<gx:coord>-75.298788 40.072431 4.099999904632568</gx:coord> +<when>2013-07-25T19:57:52.000Z</when> +<gx:coord>-75.298765 40.072449 4.400000095367432</gx:coord> +<when>2013-07-25T19:57:53.000Z</when> +<gx:coord>-75.2987 40.072459 4.699999809265137</gx:coord> +<when>2013-07-25T19:57:54.000Z</when> +<gx:coord>-75.298647 40.072474 3.5</gx:coord> +<when>2013-07-25T19:57:55.000Z</when> +<gx:coord>-75.298579 40.072488 3.799999952316284</gx:coord> +<when>2013-07-25T19:57:56.000Z</when> +<gx:coord>-75.298516 40.07253 3.700000047683716</gx:coord> +<when>2013-07-25T19:57:57.000Z</when> +<gx:coord>-75.298442 40.07254 3.700000047683716</gx:coord> +<when>2013-07-25T19:57:58.000Z</when> +<gx:coord>-75.298371 40.072542 4.199999809265137</gx:coord> +<when>2013-07-25T19:57:59.000Z</when> +<gx:coord>-75.298318 40.0725 4.599999904632568</gx:coord> +<when>2013-07-25T19:58:00.000Z</when> +<gx:coord>-75.298246 40.072503 4.900000095367432</gx:coord> +<when>2013-07-25T19:58:01.000Z</when> +<gx:coord>-75.298182 40.072514 4.5</gx:coord> +<when>2013-07-25T19:58:02.000Z</when> +<gx:coord>-75.298118 40.072527 4.199999809265137</gx:coord> +<when>2013-07-25T19:58:03.000Z</when> +<gx:coord>-75.298072 40.07254 4.199999809265137</gx:coord> +<when>2013-07-25T19:58:03.999Z</when> +<gx:coord>-75.298022 40.072549 4.300000190734863</gx:coord> +<when>2013-07-25T19:58:05.000Z</when> +<gx:coord>-75.297932 40.072559 4.400000095367432</gx:coord> +<when>2013-07-25T19:58:06.000Z</when> +<gx:coord>-75.297871 40.07258 4.699999809265137</gx:coord> +<when>2013-07-25T19:58:07.000Z</when> +<gx:coord>-75.297792 40.072582 3.0</gx:coord> +<when>2013-07-25T19:58:08.000Z</when> +<gx:coord>-75.297735 40.072586 2.700000047683716</gx:coord> +<when>2013-07-25T19:58:09.000Z</when> +<gx:coord>-75.297661 40.072592 1.399999976158142</gx:coord> +<when>2013-07-25T19:58:10.000Z</when> +<gx:coord>-75.297585 40.072592 0.4000000059604645</gx:coord> +<when>2013-07-25T19:58:11.000Z</when> +<gx:coord>-75.297514 40.072597 0.0</gx:coord> +<when>2013-07-25T19:58:12.000Z</when> +<gx:coord>-75.297449 40.072606 0.699999988079071</gx:coord> +<when>2013-07-25T19:58:13.000Z</when> +<gx:coord>-75.297392 40.072619 0.4000000059604645</gx:coord> +<when>2013-07-25T19:58:14.000Z</when> +<gx:coord>-75.297322 40.072634 -0.10000000149011612</gx:coord> +<when>2013-07-25T19:58:15.000Z</when> +<gx:coord>-75.29726 40.072646 0.0</gx:coord> +<when>2013-07-25T19:58:16.000Z</when> +<gx:coord>-75.297197 40.072668 0.30000001192092896</gx:coord> +<when>2013-07-25T19:58:17.000Z</when> +<gx:coord>-75.29713 40.072673 0.4000000059604645</gx:coord> +<when>2013-07-25T19:58:18.000Z</when> +<gx:coord>-75.297062 40.072676 0.10000000149011612</gx:coord> +<when>2013-07-25T19:58:19.000Z</when> +<gx:coord>-75.296991 40.072682 -0.6000000238418579</gx:coord> +<when>2013-07-25T19:58:20.000Z</when> +<gx:coord>-75.29693 40.072704 -3.4000000953674316</gx:coord> +<when>2013-07-25T19:58:21.000Z</when> +<gx:coord>-75.29686 40.072734 -7.5</gx:coord> +<when>2013-07-25T19:58:22.000Z</when> +<gx:coord>-75.296792 40.072766 -10.399999618530273</gx:coord> +<when>2013-07-25T19:58:23.000Z</when> +<gx:coord>-75.296717 40.072781 -14.199999809265137</gx:coord> +<when>2013-07-25T19:58:24.000Z</when> +<gx:coord>-75.296646 40.072799 -16.799999237060547</gx:coord> +<when>2013-07-25T19:58:25.000Z</when> +<gx:coord>-75.296579 40.07282 -18.200000762939453</gx:coord> +<when>2013-07-25T19:58:26.000Z</when> +<gx:coord>-75.29652 40.072843 -22.5</gx:coord> +<when>2013-07-25T19:58:27.000Z</when> +<gx:coord>-75.296452 40.072876 -26.399999618530273</gx:coord> +<when>2013-07-25T19:58:28.000Z</when> +<gx:coord>-75.29637 40.072912 -29.200000762939453</gx:coord> +<when>2013-07-25T19:58:29.000Z</when> +<gx:coord>-75.296302 40.072926 -28.799999237060547</gx:coord> +<when>2013-07-25T19:58:30.000Z</when> +<gx:coord>-75.296231 40.072935 -28.799999237060547</gx:coord> +<when>2013-07-25T19:58:31.001Z</when> +<gx:coord>-75.296168 40.072945 -28.700000762939453</gx:coord> +<when>2013-07-25T19:58:32.000Z</when> +<gx:coord>-75.296109 40.072956 -30.0</gx:coord> +<when>2013-07-25T19:58:33.000Z</when> +<gx:coord>-75.296045 40.072974 -31.600000381469727</gx:coord> +<when>2013-07-25T19:58:34.000Z</when> +<gx:coord>-75.295981 40.072986 -32.5</gx:coord> +<when>2013-07-25T19:58:35.000Z</when> +<gx:coord>-75.295923 40.073 -33.599998474121094</gx:coord> +<when>2013-07-25T19:58:36.000Z</when> +<gx:coord>-75.295864 40.073007 -33.599998474121094</gx:coord> +<when>2013-07-25T19:58:37.000Z</when> +<gx:coord>-75.295825 40.073008 -33.0</gx:coord> +<when>2013-07-25T19:58:38.000Z</when> +<gx:coord>-75.295775 40.07303 -31.600000381469727</gx:coord> +<when>2013-07-25T19:58:39.000Z</when> +<gx:coord>-75.295716 40.073034 -32.099998474121094</gx:coord> +<when>2013-07-25T19:58:40.000Z</when> +<gx:coord>-75.295651 40.073038 -32.20000076293945</gx:coord> +<when>2013-07-25T19:58:41.000Z</when> +<gx:coord>-75.295591 40.073041 -32.099998474121094</gx:coord> +<when>2013-07-25T19:58:42.000Z</when> +<gx:coord>-75.295536 40.073052 -32.20000076293945</gx:coord> +<when>2013-07-25T19:58:43.000Z</when> +<gx:coord>-75.295476 40.073067 -32.70000076293945</gx:coord> +<when>2013-07-25T19:58:44.000Z</when> +<gx:coord>-75.295409 40.073074 -32.5</gx:coord> +<when>2013-07-25T19:58:45.000Z</when> +<gx:coord>-75.295352 40.073079 -31.799999237060547</gx:coord> +<when>2013-07-25T19:58:46.000Z</when> +<gx:coord>-75.295292 40.073087 -31.5</gx:coord> +<when>2013-07-25T19:58:47.000Z</when> +<gx:coord>-75.295233 40.073087 -31.399999618530273</gx:coord> +<when>2013-07-25T19:58:48.000Z</when> +<gx:coord>-75.295177 40.073084 -29.799999237060547</gx:coord> +<when>2013-07-25T19:58:49.000Z</when> +<gx:coord>-75.295122 40.073097 -29.200000762939453</gx:coord> +<when>2013-07-25T19:58:50.000Z</when> +<gx:coord>-75.295066 40.07311 -28.299999237060547</gx:coord> +<when>2013-07-25T19:58:51.000Z</when> +<gx:coord>-75.295006 40.07312 -28.5</gx:coord> +<when>2013-07-25T19:58:52.000Z</when> +<gx:coord>-75.294936 40.07313 -29.0</gx:coord> +<when>2013-07-25T19:58:53.000Z</when> +<gx:coord>-75.29488 40.073139 -29.0</gx:coord> +<when>2013-07-25T19:58:54.000Z</when> +<gx:coord>-75.294822 40.073147 -28.600000381469727</gx:coord> +<when>2013-07-25T19:58:55.000Z</when> +<gx:coord>-75.294761 40.073154 -28.100000381469727</gx:coord> +<when>2013-07-25T19:58:56.000Z</when> +<gx:coord>-75.294696 40.073161 -29.299999237060547</gx:coord> +<when>2013-07-25T19:58:57.000Z</when> +<gx:coord>-75.294638 40.073162 -30.100000381469727</gx:coord> +<when>2013-07-25T19:58:58.000Z</when> +<gx:coord>-75.294578 40.073166 -29.899999618530273</gx:coord> +<when>2013-07-25T19:58:59.000Z</when> +<gx:coord>-75.294522 40.073176 -29.899999618530273</gx:coord> +<when>2013-07-25T19:59:00.000Z</when> +<gx:coord>-75.294462 40.073189 -31.799999237060547</gx:coord> +<when>2013-07-25T19:59:01.000Z</when> +<gx:coord>-75.2944 40.073202 -33.0</gx:coord> +<when>2013-07-25T19:59:02.000Z</when> +<gx:coord>-75.294349 40.073215 -32.599998474121094</gx:coord> +<when>2013-07-25T19:59:03.000Z</when> +<gx:coord>-75.294286 40.073227 -33.79999923706055</gx:coord> +<when>2013-07-25T19:59:04.000Z</when> +<gx:coord>-75.294228 40.073238 -33.79999923706055</gx:coord> +<when>2013-07-25T19:59:05.000Z</when> +<gx:coord>-75.29417 40.073246 -34.099998474121094</gx:coord> +<when>2013-07-25T19:59:06.000Z</when> +<gx:coord>-75.294122 40.07326 -34.79999923706055</gx:coord> +<when>2013-07-25T19:59:07.000Z</when> +<gx:coord>-75.294055 40.073274 -35.900001525878906</gx:coord> +<when>2013-07-25T19:59:08.000Z</when> +<gx:coord>-75.293993 40.07329 -36.099998474121094</gx:coord> +<when>2013-07-25T19:59:09.000Z</when> +<gx:coord>-75.293933 40.073304 -36.599998474121094</gx:coord> +<when>2013-07-25T19:59:10.000Z</when> +<gx:coord>-75.293896 40.073305 -32.79999923706055</gx:coord> +<when>2013-07-25T19:59:11.000Z</when> +<gx:coord>-75.293828 40.073316 -32.099998474121094</gx:coord> +<when>2013-07-25T19:59:12.000Z</when> +<gx:coord>-75.293768 40.073319 -31.700000762939453</gx:coord> +<when>2013-07-25T19:59:12.999Z</when> +<gx:coord>-75.293711 40.073326 -31.0</gx:coord> +<when>2013-07-25T19:59:14.000Z</when> +<gx:coord>-75.293642 40.073332 -32.099998474121094</gx:coord> +<when>2013-07-25T19:59:15.000Z</when> +<gx:coord>-75.293584 40.073332 -31.100000381469727</gx:coord> +<when>2013-07-25T19:59:16.000Z</when> +<gx:coord>-75.293534 40.073332 -30.5</gx:coord> +<when>2013-07-25T19:59:17.000Z</when> +<gx:coord>-75.293485 40.073335 -30.700000762939453</gx:coord> +<when>2013-07-25T19:59:18.000Z</when> +<gx:coord>-75.293447 40.073336 -30.600000381469727</gx:coord> +<when>2013-07-25T19:59:20.000Z</when> +<gx:coord>-75.293402 40.073357 -26.700000762939453</gx:coord> +<when>2013-07-25T19:59:21.000Z</when> +<gx:coord>-75.293367 40.073353 -20.899999618530273</gx:coord> +<when>2013-07-25T19:59:22.000Z</when> +<gx:coord>-75.293283 40.073365 -18.5</gx:coord> +<when>2013-07-25T19:59:23.000Z</when> +<gx:coord>-75.29321 40.073375 -18.5</gx:coord> +<when>2013-07-25T19:59:24.000Z</when> +<gx:coord>-75.293168 40.073392 -18.5</gx:coord> +<when>2013-07-25T19:59:25.000Z</when> +<gx:coord>-75.293086 40.073405 -17.899999618530273</gx:coord> +<when>2013-07-25T19:59:26.002Z</when> +<gx:coord>-75.293029 40.073423 -17.799999237060547</gx:coord> +<when>2013-07-25T19:59:27.000Z</when> +<gx:coord>-75.292937 40.073434 -17.200000762939453</gx:coord> +<when>2013-07-25T19:59:28.000Z</when> +<gx:coord>-75.292859 40.073445 -16.700000762939453</gx:coord> +<when>2013-07-25T19:59:29.000Z</when> +<gx:coord>-75.292787 40.073452 -16.799999237060547</gx:coord> +<when>2013-07-25T19:59:30.000Z</when> +<gx:coord>-75.292725 40.073462 -17.200000762939453</gx:coord> +<when>2013-07-25T19:59:31.000Z</when> +<gx:coord>-75.292662 40.073469 -17.100000381469727</gx:coord> +<when>2013-07-25T19:59:32.000Z</when> +<gx:coord>-75.292606 40.073476 -18.100000381469727</gx:coord> +<when>2013-07-25T19:59:33.000Z</when> +<gx:coord>-75.292545 40.073484 -18.600000381469727</gx:coord> +<when>2013-07-25T19:59:34.000Z</when> +<gx:coord>-75.29248 40.073491 -19.200000762939453</gx:coord> +<when>2013-07-25T19:59:35.000Z</when> +<gx:coord>-75.292421 40.073507 -20.600000381469727</gx:coord> +<when>2013-07-25T19:59:36.000Z</when> +<gx:coord>-75.292346 40.07353 -20.299999237060547</gx:coord> +<when>2013-07-25T19:59:37.000Z</when> +<gx:coord>-75.292292 40.073528 -21.299999237060547</gx:coord> +<when>2013-07-25T19:59:38.000Z</when> +<gx:coord>-75.292245 40.073537 -21.0</gx:coord> +<when>2013-07-25T19:59:39.000Z</when> +<gx:coord>-75.2922 40.073545 -20.799999237060547</gx:coord> +<when>2013-07-25T19:59:40.000Z</when> +<gx:coord>-75.292175 40.073563 -20.600000381469727</gx:coord> +<when>2013-07-25T19:59:41.000Z</when> +<gx:coord>-75.29208 40.073576 -22.0</gx:coord> +<when>2013-07-25T19:59:42.000Z</when> +<gx:coord>-75.292008 40.07359 -22.5</gx:coord> +<when>2013-07-25T19:59:43.000Z</when> +<gx:coord>-75.291945 40.073608 -22.5</gx:coord> +<when>2013-07-25T19:59:44.000Z</when> +<gx:coord>-75.291895 40.07365 -23.799999237060547</gx:coord> +<when>2013-07-25T19:59:45.000Z</when> +<gx:coord>-75.29184 40.073677 -22.200000762939453</gx:coord> +<when>2013-07-25T19:59:45.999Z</when> +<gx:coord>-75.291792 40.073701 -20.100000381469727</gx:coord> +<when>2013-07-25T19:59:47.000Z</when> +<gx:coord>-75.291753 40.073711 -16.399999618530273</gx:coord> +<when>2013-07-25T19:59:48.000Z</when> +<gx:coord>-75.291678 40.07372 -15.399999618530273</gx:coord> +<when>2013-07-25T19:59:49.000Z</when> +<gx:coord>-75.291615 40.073727 -15.100000381469727</gx:coord> +<when>2013-07-25T19:59:50.000Z</when> +<gx:coord>-75.291556 40.07373 -15.600000381469727</gx:coord> +<when>2013-07-25T19:59:51.000Z</when> +<gx:coord>-75.291509 40.073743 -15.300000190734863</gx:coord> +<when>2013-07-25T19:59:52.000Z</when> +<gx:coord>-75.291443 40.073769 -16.100000381469727</gx:coord> +<when>2013-07-25T19:59:52.999Z</when> +<gx:coord>-75.291393 40.073785 -16.100000381469727</gx:coord> +<when>2013-07-25T19:59:54.000Z</when> +<gx:coord>-75.291305 40.07378 -15.899999618530273</gx:coord> +<when>2013-07-25T19:59:55.000Z</when> +<gx:coord>-75.291207 40.073787 -16.600000381469727</gx:coord> +<when>2013-07-25T19:59:56.000Z</when> +<gx:coord>-75.291101 40.073728 -18.200000762939453</gx:coord> +<when>2013-07-25T19:59:57.000Z</when> +<gx:coord>-75.291047 40.073734 -18.0</gx:coord> +<when>2013-07-25T19:59:58.000Z</when> +<gx:coord>-75.290979 40.073738 -17.100000381469727</gx:coord> +<when>2013-07-25T19:59:59.000Z</when> +<gx:coord>-75.290908 40.073744 -15.800000190734863</gx:coord> +<when>2013-07-25T20:00:00.000Z</when> +<gx:coord>-75.290843 40.073777 -18.0</gx:coord> +<when>2013-07-25T20:00:01.000Z</when> +<gx:coord>-75.290775 40.073774 -18.0</gx:coord> +<when>2013-07-25T20:00:02.000Z</when> +<gx:coord>-75.29072 40.073779 -18.200000762939453</gx:coord> +<when>2013-07-25T20:00:03.000Z</when> +<gx:coord>-75.290665 40.073796 -18.200000762939453</gx:coord> +<when>2013-07-25T20:00:04.000Z</when> +<gx:coord>-75.290605 40.073839 -18.200000762939453</gx:coord> +<when>2013-07-25T20:00:05.000Z</when> +<gx:coord>-75.290545 40.073844 -17.799999237060547</gx:coord> +<when>2013-07-25T20:00:06.000Z</when> +<gx:coord>-75.290465 40.073855 -18.799999237060547</gx:coord> +<when>2013-07-25T20:00:07.000Z</when> +<gx:coord>-75.290399 40.073862 -18.600000381469727</gx:coord> +<when>2013-07-25T20:00:08.000Z</when> +<gx:coord>-75.290325 40.073867 -19.299999237060547</gx:coord> +<when>2013-07-25T20:00:09.000Z</when> +<gx:coord>-75.290258 40.073868 -18.899999618530273</gx:coord> +<when>2013-07-25T20:00:10.000Z</when> +<gx:coord>-75.29019 40.073878 -19.5</gx:coord> +<when>2013-07-25T20:00:11.000Z</when> +<gx:coord>-75.290121 40.073896 -20.299999237060547</gx:coord> +<when>2013-07-25T20:00:12.000Z</when> +<gx:coord>-75.290054 40.073911 -21.0</gx:coord> +<when>2013-07-25T20:00:13.000Z</when> +<gx:coord>-75.289991 40.073917 -20.399999618530273</gx:coord> +<when>2013-07-25T20:00:14.000Z</when> +<gx:coord>-75.289929 40.073939 -20.5</gx:coord> +<when>2013-07-25T20:00:15.000Z</when> +<gx:coord>-75.289858 40.073944 -19.399999618530273</gx:coord> +<when>2013-07-25T20:00:16.000Z</when> +<gx:coord>-75.289794 40.073953 -19.200000762939453</gx:coord> +<when>2013-07-25T20:00:17.000Z</when> +<gx:coord>-75.289749 40.073966 -19.299999237060547</gx:coord> +<when>2013-07-25T20:00:17.999Z</when> +<gx:coord>-75.289693 40.073979 -19.200000762939453</gx:coord> +<when>2013-07-25T20:00:19.000Z</when> +<gx:coord>-75.289645 40.073977 -18.899999618530273</gx:coord> +<when>2013-07-25T20:00:20.000Z</when> +<gx:coord>-75.289561 40.073976 -18.899999618530273</gx:coord> +<when>2013-07-25T20:00:21.000Z</when> +<gx:coord>-75.289499 40.073986 -18.600000381469727</gx:coord> +<when>2013-07-25T20:00:22.000Z</when> +<gx:coord>-75.289459 40.074001 -17.0</gx:coord> +<when>2013-07-25T20:00:23.000Z</when> +<gx:coord>-75.289426 40.07402 -16.600000381469727</gx:coord> +<when>2013-07-25T20:00:25.000Z</when> +<gx:coord>-75.289377 40.074042 -16.100000381469727</gx:coord> +<when>2013-07-25T20:00:26.000Z</when> +<gx:coord>-75.289333 40.074059 -15.399999618530273</gx:coord> +<when>2013-07-25T20:00:28.000Z</when> +<gx:coord>-75.289276 40.074071 -12.5</gx:coord> +<when>2013-07-25T20:00:29.000Z</when> +<gx:coord>-75.289214 40.074099 -10.699999809265137</gx:coord> +<when>2013-07-25T20:00:30.000Z</when> +<gx:coord>-75.289174 40.07412 -8.699999809265137</gx:coord> +<when>2013-07-25T20:00:31.000Z</when> +<gx:coord>-75.28913 40.074132 -7.0</gx:coord> +<when>2013-07-25T20:00:32.000Z</when> +<gx:coord>-75.289076 40.074148 -5.900000095367432</gx:coord> +<when>2013-07-25T20:00:33.000Z</when> +<gx:coord>-75.288902 40.074121 -3.0</gx:coord> +<when>2013-07-25T20:00:34.000Z</when> +<gx:coord>-75.288818 40.074133 -3.0999999046325684</gx:coord> +<when>2013-07-25T20:00:35.000Z</when> +<gx:coord>-75.28875 40.074149 -4.0</gx:coord> +<when>2013-07-25T20:00:36.000Z</when> +<gx:coord>-75.28869 40.07417 -4.300000190734863</gx:coord> +<when>2013-07-25T20:00:36.999Z</when> +<gx:coord>-75.288651 40.074194 -4.5</gx:coord> +<when>2013-07-25T20:00:38.000Z</when> +<gx:coord>-75.28863 40.074206 -3.0</gx:coord> +<when>2013-07-25T20:00:39.000Z</when> +<gx:coord>-75.288565 40.074223 -2.0</gx:coord> +<when>2013-07-25T20:00:40.000Z</when> +<gx:coord>-75.28851 40.074235 -1.2000000476837158</gx:coord> +<when>2013-07-25T20:00:41.000Z</when> +<gx:coord>-75.288429 40.074203 -0.6000000238418579</gx:coord> +<when>2013-07-25T20:00:42.000Z</when> +<gx:coord>-75.28833 40.074184 -4.099999904632568</gx:coord> +<when>2013-07-25T20:00:43.000Z</when> +<gx:coord>-75.288272 40.074173 -4.0</gx:coord> +<when>2013-07-25T20:00:44.000Z</when> +<gx:coord>-75.288205 40.074169 -3.799999952316284</gx:coord> +<when>2013-07-25T20:00:45.000Z</when> +<gx:coord>-75.28815 40.074167 -4.099999904632568</gx:coord> +<when>2013-07-25T20:00:46.000Z</when> +<gx:coord>-75.288124 40.074143 16.700000762939453</gx:coord> +<when>2013-07-25T20:00:47.000Z</when> +<gx:coord>-75.288088 40.074127 17.0</gx:coord> +<when>2013-07-25T20:00:48.000Z</when> +<gx:coord>-75.288045 40.074123 17.899999618530273</gx:coord> +<when>2013-07-25T20:00:50.000Z</when> +<gx:coord>-75.288 40.0741 21.299999237060547</gx:coord> +<when>2013-07-25T20:00:51.000Z</when> +<gx:coord>-75.287965 40.074093 23.100000381469727</gx:coord> +<when>2013-07-25T20:00:52.000Z</when> +<gx:coord>-75.287927 40.07409 24.5</gx:coord> +<when>2013-07-25T20:00:53.000Z</when> +<gx:coord>-75.287889 40.07409 24.700000762939453</gx:coord> +<when>2013-07-25T20:00:54.000Z</when> +<gx:coord>-75.287853 40.074091 25.700000762939453</gx:coord> +<when>2013-07-25T20:00:55.000Z</when> +<gx:coord>-75.287819 40.074094 26.600000381469727</gx:coord> +<when>2013-07-25T20:00:56.000Z</when> +<gx:coord>-75.287784 40.074102 28.299999237060547</gx:coord> +<when>2013-07-25T20:00:57.000Z</when> +<gx:coord>-75.287744 40.074112 29.799999237060547</gx:coord> +<when>2013-07-25T20:00:58.000Z</when> +<gx:coord>-75.287685 40.074127 26.899999618530273</gx:coord> +<when>2013-07-25T20:00:59.000Z</when> +<gx:coord>-75.287488 40.07418 26.5</gx:coord> +<when>2013-07-25T20:01:00.000Z</when> +<gx:coord>-75.287418 40.074192 25.100000381469727</gx:coord> +<when>2013-07-25T20:01:01.000Z</when> +<gx:coord>-75.287363 40.074205 23.700000762939453</gx:coord> +<when>2013-07-25T20:01:02.000Z</when> +<gx:coord>-75.287297 40.074212 21.700000762939453</gx:coord> +<when>2013-07-25T20:01:03.000Z</when> +<gx:coord>-75.287235 40.07423 22.100000381469727</gx:coord> +<when>2013-07-25T20:01:04.000Z</when> +<gx:coord>-75.287166 40.074244 21.399999618530273</gx:coord> +<when>2013-07-25T20:01:05.000Z</when> +<gx:coord>-75.287109 40.07425 19.799999237060547</gx:coord> +<when>2013-07-25T20:01:06.000Z</when> +<gx:coord>-75.287048 40.074263 19.100000381469727</gx:coord> +<when>2013-07-25T20:01:07.000Z</when> +<gx:coord>-75.286987 40.074266 19.0</gx:coord> +<when>2013-07-25T20:01:08.000Z</when> +<gx:coord>-75.286917 40.074279 18.899999618530273</gx:coord> +<when>2013-07-25T20:01:09.000Z</when> +<gx:coord>-75.286867 40.074284 18.600000381469727</gx:coord> +<when>2013-07-25T20:01:10.000Z</when> +<gx:coord>-75.2868 40.074275 14.0</gx:coord> +<when>2013-07-25T20:01:11.000Z</when> +<gx:coord>-75.286725 40.074276 13.600000381469727</gx:coord> +<when>2013-07-25T20:01:12.000Z</when> +<gx:coord>-75.286637 40.074279 8.5</gx:coord> +<when>2013-07-25T20:01:13.000Z</when> +<gx:coord>-75.286583 40.074297 7.400000095367432</gx:coord> +<when>2013-07-25T20:01:14.000Z</when> +<gx:coord>-75.28652 40.07431 7.300000190734863</gx:coord> +<when>2013-07-25T20:01:15.000Z</when> +<gx:coord>-75.286451 40.074298 7.300000190734863</gx:coord> +<when>2013-07-25T20:01:16.000Z</when> +<gx:coord>-75.286376 40.0743 6.800000190734863</gx:coord> +<when>2013-07-25T20:01:17.000Z</when> +<gx:coord>-75.286311 40.074299 7.400000095367432</gx:coord> +<when>2013-07-25T20:01:18.000Z</when> +<gx:coord>-75.286249 40.074309 7.599999904632568</gx:coord> +<when>2013-07-25T20:01:19.000Z</when> +<gx:coord>-75.286182 40.074316 6.099999904632568</gx:coord> +<when>2013-07-25T20:01:20.000Z</when> +<gx:coord>-75.286117 40.074312 5.400000095367432</gx:coord> +<when>2013-07-25T20:01:21.000Z</when> +<gx:coord>-75.286073 40.074323 6.199999809265137</gx:coord> +<when>2013-07-25T20:01:22.000Z</when> +<gx:coord>-75.286024 40.074345 6.099999904632568</gx:coord> +<when>2013-07-25T20:01:23.000Z</when> +<gx:coord>-75.285976 40.074356 6.099999904632568</gx:coord> +<when>2013-07-25T20:01:24.000Z</when> +<gx:coord>-75.285897 40.074373 4.199999809265137</gx:coord> +<when>2013-07-25T20:01:25.000Z</when> +<gx:coord>-75.285828 40.07436 4.199999809265137</gx:coord> +<when>2013-07-25T20:01:26.000Z</when> +<gx:coord>-75.285777 40.074373 2.5</gx:coord> +<when>2013-07-25T20:01:27.000Z</when> +<gx:coord>-75.285724 40.074382 2.299999952316284</gx:coord> +<when>2013-07-25T20:01:28.000Z</when> +<gx:coord>-75.285649 40.07437 6.5</gx:coord> +<when>2013-07-25T20:01:29.000Z</when> +<gx:coord>-75.285596 40.074381 7.900000095367432</gx:coord> +<when>2013-07-25T20:01:30.000Z</when> +<gx:coord>-75.28555 40.074391 8.600000381469727</gx:coord> +<when>2013-07-25T20:01:30.999Z</when> +<gx:coord>-75.285506 40.074403 9.399999618530273</gx:coord> +<when>2013-07-25T20:01:32.000Z</when> +<gx:coord>-75.28547 40.074408 10.699999809265137</gx:coord> +<when>2013-07-25T20:01:33.000Z</when> +<gx:coord>-75.285427 40.074411 12.399999618530273</gx:coord> +<when>2013-07-25T20:01:34.000Z</when> +<gx:coord>-75.285387 40.074409 16.200000762939453</gx:coord> +<when>2013-07-25T20:01:35.000Z</when> +<gx:coord>-75.285333 40.074406 15.899999618530273</gx:coord> +<when>2013-07-25T20:01:36.000Z</when> +<gx:coord>-75.285256 40.074404 13.300000190734863</gx:coord> +<when>2013-07-25T20:01:37.000Z</when> +<gx:coord>-75.285197 40.0744 13.199999809265137</gx:coord> +<when>2013-07-25T20:01:38.000Z</when> +<gx:coord>-75.285132 40.074379 12.199999809265137</gx:coord> +<when>2013-07-25T20:01:39.000Z</when> +<gx:coord>-75.285057 40.074364 12.0</gx:coord> +<when>2013-07-25T20:01:40.000Z</when> +<gx:coord>-75.285003 40.074379 12.100000381469727</gx:coord> +<when>2013-07-25T20:01:41.000Z</when> +<gx:coord>-75.284934 40.074398 10.0</gx:coord> +<when>2013-07-25T20:01:42.000Z</when> +<gx:coord>-75.284879 40.074396 11.399999618530273</gx:coord> +<when>2013-07-25T20:01:43.000Z</when> +<gx:coord>-75.284829 40.074391 12.399999618530273</gx:coord> +<when>2013-07-25T20:01:44.000Z</when> +<gx:coord>-75.284768 40.074406 11.399999618530273</gx:coord> +<when>2013-07-25T20:01:45.000Z</when> +<gx:coord>-75.284711 40.074416 11.0</gx:coord> +<when>2013-07-25T20:01:46.000Z</when> +<gx:coord>-75.284634 40.074411 11.399999618530273</gx:coord> +<when>2013-07-25T20:01:47.000Z</when> +<gx:coord>-75.284573 40.074406 10.399999618530273</gx:coord> +<when>2013-07-25T20:01:48.000Z</when> +<gx:coord>-75.284505 40.074406 10.0</gx:coord> +<when>2013-07-25T20:01:49.000Z</when> +<gx:coord>-75.284447 40.074393 10.300000190734863</gx:coord> +<when>2013-07-25T20:01:50.000Z</when> +<gx:coord>-75.284374 40.074384 10.699999809265137</gx:coord> +<when>2013-07-25T20:01:51.000Z</when> +<gx:coord>-75.284301 40.074377 10.699999809265137</gx:coord> +<when>2013-07-25T20:01:52.000Z</when> +<gx:coord>-75.284223 40.07438 9.899999618530273</gx:coord> +<when>2013-07-25T20:01:53.000Z</when> +<gx:coord>-75.284142 40.07437 10.199999809265137</gx:coord> +<when>2013-07-25T20:01:54.000Z</when> +<gx:coord>-75.28408 40.074346 11.300000190734863</gx:coord> +<when>2013-07-25T20:01:55.000Z</when> +<gx:coord>-75.28403 40.074356 11.100000381469727</gx:coord> +<when>2013-07-25T20:01:56.000Z</when> +<gx:coord>-75.283943 40.074353 9.699999809265137</gx:coord> +<when>2013-07-25T20:01:56.999Z</when> +<gx:coord>-75.28388 40.074351 9.300000190734863</gx:coord> +<when>2013-07-25T20:01:58.000Z</when> +<gx:coord>-75.283828 40.074367 7.599999904632568</gx:coord> +<when>2013-07-25T20:01:59.000Z</when> +<gx:coord>-75.283756 40.074383 6.699999809265137</gx:coord> +<when>2013-07-25T20:02:00.000Z</when> +<gx:coord>-75.283681 40.074382 6.199999809265137</gx:coord> +<when>2013-07-25T20:02:01.000Z</when> +<gx:coord>-75.283627 40.074375 6.800000190734863</gx:coord> +<when>2013-07-25T20:02:02.000Z</when> +<gx:coord>-75.283572 40.074371 5.900000095367432</gx:coord> +<when>2013-07-25T20:02:03.000Z</when> +<gx:coord>-75.283515 40.074368 5.900000095367432</gx:coord> +<when>2013-07-25T20:02:04.000Z</when> +<gx:coord>-75.283448 40.074361 5.800000190734863</gx:coord> +<when>2013-07-25T20:02:05.000Z</when> +<gx:coord>-75.283393 40.074345 6.900000095367432</gx:coord> +<when>2013-07-25T20:02:06.000Z</when> +<gx:coord>-75.283333 40.074328 7.400000095367432</gx:coord> +<when>2013-07-25T20:02:07.000Z</when> +<gx:coord>-75.283267 40.074318 7.199999809265137</gx:coord> +<when>2013-07-25T20:02:08.000Z</when> +<gx:coord>-75.283199 40.074308 5.599999904632568</gx:coord> +<when>2013-07-25T20:02:09.000Z</when> +<gx:coord>-75.28314 40.0743 5.199999809265137</gx:coord> +<when>2013-07-25T20:02:10.000Z</when> +<gx:coord>-75.283078 40.074291 4.599999904632568</gx:coord> +<when>2013-07-25T20:02:11.000Z</when> +<gx:coord>-75.283013 40.074271 5.0</gx:coord> +<when>2013-07-25T20:02:12.000Z</when> +<gx:coord>-75.282949 40.07426 4.699999809265137</gx:coord> +<when>2013-07-25T20:02:13.000Z</when> +<gx:coord>-75.282893 40.074272 4.400000095367432</gx:coord> +<when>2013-07-25T20:02:14.000Z</when> +<gx:coord>-75.282824 40.074258 3.299999952316284</gx:coord> +<when>2013-07-25T20:02:15.000Z</when> +<gx:coord>-75.282766 40.074242 3.0</gx:coord> +<when>2013-07-25T20:02:16.000Z</when> +<gx:coord>-75.28271 40.074227 3.0</gx:coord> +<when>2013-07-25T20:02:17.000Z</when> +<gx:coord>-75.282649 40.074216 2.700000047683716</gx:coord> +<when>2013-07-25T20:02:18.000Z</when> +<gx:coord>-75.282604 40.074214 1.899999976158142</gx:coord> +<when>2013-07-25T20:02:19.000Z</when> +<gx:coord>-75.282547 40.074202 1.0</gx:coord> +<when>2013-07-25T20:02:20.000Z</when> +<gx:coord>-75.282485 40.074213 0.20000000298023224</gx:coord> +<when>2013-07-25T20:02:21.000Z</when> +<gx:coord>-75.282418 40.074201 -0.699999988079071</gx:coord> +<when>2013-07-25T20:02:22.000Z</when> +<gx:coord>-75.282361 40.074191 -1.5</gx:coord> +<when>2013-07-25T20:02:23.000Z</when> +<gx:coord>-75.282308 40.074187 -1.899999976158142</gx:coord> +<when>2013-07-25T20:02:24.000Z</when> +<gx:coord>-75.282252 40.074185 -1.600000023841858</gx:coord> +<when>2013-07-25T20:02:25.000Z</when> +<gx:coord>-75.28219 40.074179 -1.7999999523162842</gx:coord> +<when>2013-07-25T20:02:26.000Z</when> +<gx:coord>-75.282126 40.074142 -1.5</gx:coord> +<when>2013-07-25T20:02:27.000Z</when> +<gx:coord>-75.282071 40.074119 -2.799999952316284</gx:coord> +<when>2013-07-25T20:02:28.000Z</when> +<gx:coord>-75.282005 40.074087 -3.299999952316284</gx:coord> +<when>2013-07-25T20:02:29.000Z</when> +<gx:coord>-75.281953 40.074065 -4.199999809265137</gx:coord> +<when>2013-07-25T20:02:30.000Z</when> +<gx:coord>-75.281898 40.074038 -4.199999809265137</gx:coord> +<when>2013-07-25T20:02:31.000Z</when> +<gx:coord>-75.281838 40.074015 -4.099999904632568</gx:coord> +<when>2013-07-25T20:02:32.000Z</when> +<gx:coord>-75.28178 40.073996 -4.0</gx:coord> +<when>2013-07-25T20:02:33.000Z</when> +<gx:coord>-75.28172 40.073973 -3.9000000953674316</gx:coord> +<when>2013-07-25T20:02:34.000Z</when> +<gx:coord>-75.281661 40.073954 -3.9000000953674316</gx:coord> +<when>2013-07-25T20:02:35.000Z</when> +<gx:coord>-75.281617 40.073929 -4.699999809265137</gx:coord> +<when>2013-07-25T20:02:36.000Z</when> +<gx:coord>-75.281568 40.073909 -4.699999809265137</gx:coord> +<when>2013-07-25T20:02:37.000Z</when> +<gx:coord>-75.281508 40.073873 -2.700000047683716</gx:coord> +<when>2013-07-25T20:02:38.000Z</when> +<gx:coord>-75.281455 40.073865 -5.699999809265137</gx:coord> +<when>2013-07-25T20:02:39.000Z</when> +<gx:coord>-75.281403 40.073827 -6.599999904632568</gx:coord> +<when>2013-07-25T20:02:40.000Z</when> +<gx:coord>-75.28135 40.073802 -6.800000190734863</gx:coord> +<when>2013-07-25T20:02:41.000Z</when> +<gx:coord>-75.281299 40.073783 -6.300000190734863</gx:coord> +<when>2013-07-25T20:02:42.000Z</when> +<gx:coord>-75.281248 40.073772 -6.900000095367432</gx:coord> +<when>2013-07-25T20:02:43.000Z</when> +<gx:coord>-75.281198 40.07375 -7.0</gx:coord> +<when>2013-07-25T20:02:44.000Z</when> +<gx:coord>-75.281154 40.073723 -7.400000095367432</gx:coord> +<when>2013-07-25T20:02:45.000Z</when> +<gx:coord>-75.281104 40.073697 -7.400000095367432</gx:coord> +<when>2013-07-25T20:02:46.000Z</when> +<gx:coord>-75.281051 40.07368 -7.699999809265137</gx:coord> +<when>2013-07-25T20:02:47.000Z</when> +<gx:coord>-75.281001 40.073656 -7.900000095367432</gx:coord> +<when>2013-07-25T20:02:48.000Z</when> +<gx:coord>-75.280952 40.073633 -7.199999809265137</gx:coord> +<when>2013-07-25T20:02:49.000Z</when> +<gx:coord>-75.280905 40.07361 -9.300000190734863</gx:coord> +<when>2013-07-25T20:02:50.001Z</when> +<gx:coord>-75.280857 40.073588 -9.199999809265137</gx:coord> +<when>2013-07-25T20:02:51.000Z</when> +<gx:coord>-75.280808 40.073552 -10.300000190734863</gx:coord> +<when>2013-07-25T20:02:52.000Z</when> +<gx:coord>-75.280747 40.073554 -10.699999809265137</gx:coord> +<when>2013-07-25T20:02:53.000Z</when> +<gx:coord>-75.280722 40.073504 -6.800000190734863</gx:coord> +<when>2013-07-25T20:02:54.000Z</when> +<gx:coord>-75.280674 40.073487 -9.300000190734863</gx:coord> +<when>2013-07-25T20:02:55.000Z</when> +<gx:coord>-75.280622 40.07346 -10.600000381469727</gx:coord> +<when>2013-07-25T20:02:56.000Z</when> +<gx:coord>-75.280566 40.073428 -10.600000381469727</gx:coord> +<when>2013-07-25T20:02:57.000Z</when> +<gx:coord>-75.280522 40.073401 -10.699999809265137</gx:coord> +<when>2013-07-25T20:02:58.000Z</when> +<gx:coord>-75.280475 40.073379 -10.800000190734863</gx:coord> +<when>2013-07-25T20:02:59.000Z</when> +<gx:coord>-75.280424 40.073366 -14.100000381469727</gx:coord> +<when>2013-07-25T20:03:00.000Z</when> +<gx:coord>-75.280378 40.073351 -14.199999809265137</gx:coord> +<when>2013-07-25T20:03:01.000Z</when> +<gx:coord>-75.280325 40.073322 -14.899999618530273</gx:coord> +<when>2013-07-25T20:03:02.001Z</when> +<gx:coord>-75.280277 40.073295 -15.0</gx:coord> +<when>2013-07-25T20:03:03.000Z</when> +<gx:coord>-75.280218 40.073271 -15.0</gx:coord> +<when>2013-07-25T20:03:04.000Z</when> +<gx:coord>-75.280166 40.073242 -15.5</gx:coord> +<when>2013-07-25T20:03:05.000Z</when> +<gx:coord>-75.280116 40.073214 -16.299999237060547</gx:coord> +<when>2013-07-25T20:03:06.000Z</when> +<gx:coord>-75.280069 40.073183 -16.399999618530273</gx:coord> +<when>2013-07-25T20:03:07.000Z</when> +<gx:coord>-75.280024 40.073154 -16.5</gx:coord> +<when>2013-07-25T20:03:08.000Z</when> +<gx:coord>-75.279975 40.073128 -14.899999618530273</gx:coord> +<when>2013-07-25T20:03:09.000Z</when> +<gx:coord>-75.279931 40.073107 -14.5</gx:coord> +<when>2013-07-25T20:03:10.000Z</when> +<gx:coord>-75.279892 40.073087 -14.600000381469727</gx:coord> +<when>2013-07-25T20:03:11.000Z</when> +<gx:coord>-75.279825 40.073071 -14.5</gx:coord> +<when>2013-07-25T20:03:12.000Z</when> +<gx:coord>-75.27977 40.073046 -14.699999809265137</gx:coord> +<when>2013-07-25T20:03:13.000Z</when> +<gx:coord>-75.279706 40.073047 -14.399999618530273</gx:coord> +<when>2013-07-25T20:03:14.000Z</when> +<gx:coord>-75.279654 40.072999 -9.399999618530273</gx:coord> +<when>2013-07-25T20:03:15.000Z</when> +<gx:coord>-75.279609 40.072963 -9.600000381469727</gx:coord> +<when>2013-07-25T20:03:16.000Z</when> +<gx:coord>-75.279571 40.07293 -11.5</gx:coord> +<when>2013-07-25T20:03:17.000Z</when> +<gx:coord>-75.279525 40.072932 -16.700000762939453</gx:coord> +<when>2013-07-25T20:03:18.000Z</when> +<gx:coord>-75.279481 40.072924 -19.399999618530273</gx:coord> +<when>2013-07-25T20:03:19.000Z</when> +<gx:coord>-75.279448 40.072883 -17.5</gx:coord> +<when>2013-07-25T20:03:20.000Z</when> +<gx:coord>-75.27941 40.072852 -16.600000381469727</gx:coord> +<when>2013-07-25T20:03:21.000Z</when> +<gx:coord>-75.279377 40.072827 -16.399999618530273</gx:coord> +<when>2013-07-25T20:03:22.000Z</when> +<gx:coord>-75.279337 40.072812 -15.600000381469727</gx:coord> +<when>2013-07-25T20:03:23.000Z</when> +<gx:coord>-75.279298 40.072805 -14.800000190734863</gx:coord> +<when>2013-07-25T20:03:24.000Z</when> +<gx:coord>-75.279258 40.072793 -14.0</gx:coord> +<when>2013-07-25T20:03:25.000Z</when> +<gx:coord>-75.279221 40.072736 -10.899999618530273</gx:coord> +<when>2013-07-25T20:03:26.000Z</when> +<gx:coord>-75.27918 40.072704 -9.800000190734863</gx:coord> +<when>2013-07-25T20:03:27.000Z</when> +<gx:coord>-75.279131 40.072651 -4.800000190734863</gx:coord> +<when>2013-07-25T20:03:28.000Z</when> +<gx:coord>-75.279089 40.072603 -4.099999904632568</gx:coord> +<when>2013-07-25T20:03:29.000Z</when> +<gx:coord>-75.279056 40.072543 -4.5</gx:coord> +<when>2013-07-25T20:03:29.999Z</when> +<gx:coord>-75.279016 40.072508 -4.199999809265137</gx:coord> +<when>2013-07-25T20:03:31.000Z</when> +<gx:coord>-75.27897 40.072453 -3.4000000953674316</gx:coord> +<when>2013-07-25T20:03:32.000Z</when> +<gx:coord>-75.27893 40.072418 -3.9000000953674316</gx:coord> +<when>2013-07-25T20:03:33.000Z</when> +<gx:coord>-75.278889 40.072395 -6.199999809265137</gx:coord> +<when>2013-07-25T20:03:34.000Z</when> +<gx:coord>-75.278846 40.072362 -6.900000095367432</gx:coord> +<when>2013-07-25T20:03:35.000Z</when> +<gx:coord>-75.278802 40.072323 -7.599999904632568</gx:coord> +<when>2013-07-25T20:03:36.000Z</when> +<gx:coord>-75.278762 40.072291 -8.0</gx:coord> +<when>2013-07-25T20:03:37.000Z</when> +<gx:coord>-75.278717 40.072297 -13.699999809265137</gx:coord> +<when>2013-07-25T20:03:37.999Z</when> +<gx:coord>-75.278677 40.072286 -16.100000381469727</gx:coord> +<when>2013-07-25T20:03:39.000Z</when> +<gx:coord>-75.278636 40.072283 -16.799999237060547</gx:coord> +<when>2013-07-25T20:03:40.000Z</when> +<gx:coord>-75.278596 40.072276 -18.0</gx:coord> +<when>2013-07-25T20:03:41.002Z</when> +<gx:coord>-75.278569 40.072262 -17.0</gx:coord> +<when>2013-07-25T20:03:42.000Z</when> +<gx:coord>-75.278527 40.072239 -15.5</gx:coord> +<when>2013-07-25T20:03:43.000Z</when> +<gx:coord>-75.278494 40.072219 -15.899999618530273</gx:coord> +<when>2013-07-25T20:03:43.999Z</when> +<gx:coord>-75.278454 40.072205 -19.700000762939453</gx:coord> +<when>2013-07-25T20:03:45.000Z</when> +<gx:coord>-75.278412 40.072182 -23.100000381469727</gx:coord> +<when>2013-07-25T20:03:46.000Z</when> +<gx:coord>-75.278372 40.072151 -21.600000381469727</gx:coord> +<when>2013-07-25T20:03:47.000Z</when> +<gx:coord>-75.278331 40.072112 -21.200000762939453</gx:coord> +<when>2013-07-25T20:03:48.000Z</when> +<gx:coord>-75.278291 40.072065 -21.799999237060547</gx:coord> +<when>2013-07-25T20:03:49.000Z</when> +<gx:coord>-75.278254 40.072036 -22.0</gx:coord> +<when>2013-07-25T20:03:50.000Z</when> +<gx:coord>-75.27822 40.071906 -19.399999618530273</gx:coord> +<when>2013-07-25T20:03:51.000Z</when> +<gx:coord>-75.278176 40.071856 -16.700000762939453</gx:coord> +<when>2013-07-25T20:03:52.000Z</when> +<gx:coord>-75.278135 40.0718 -15.0</gx:coord> +<when>2013-07-25T20:03:53.000Z</when> +<gx:coord>-75.278094 40.071763 -15.100000381469727</gx:coord> +<when>2013-07-25T20:03:54.001Z</when> +<gx:coord>-75.278051 40.071725 -14.600000381469727</gx:coord> +<when>2013-07-25T20:03:55.000Z</when> +<gx:coord>-75.278001 40.071673 -10.399999618530273</gx:coord> +<when>2013-07-25T20:03:58.000Z</when> +<gx:coord>-75.277979 40.071638 -13.800000190734863</gx:coord> +<when>2013-07-25T20:03:59.000Z</when> +<gx:coord>-75.277929 40.071609 -17.700000762939453</gx:coord> +<when>2013-07-25T20:04:00.000Z</when> +<gx:coord>-75.277894 40.07159 -19.299999237060547</gx:coord> +<when>2013-07-25T20:04:01.000Z</when> +<gx:coord>-75.277865 40.071554 -20.600000381469727</gx:coord> +<when>2013-07-25T20:04:02.000Z</when> +<gx:coord>-75.27784 40.071505 -22.399999618530273</gx:coord> +<when>2013-07-25T20:04:03.000Z</when> +<gx:coord>-75.277795 40.071484 -25.899999618530273</gx:coord> +<when>2013-07-25T20:04:04.000Z</when> +<gx:coord>-75.277763 40.071449 -27.399999618530273</gx:coord> +<when>2013-07-25T20:04:05.000Z</when> +<gx:coord>-75.277732 40.071415 -26.399999618530273</gx:coord> +<when>2013-07-25T20:04:06.000Z</when> +<gx:coord>-75.277698 40.071377 -27.0</gx:coord> +<when>2013-07-25T20:04:07.000Z</when> +<gx:coord>-75.277667 40.071339 -26.600000381469727</gx:coord> +<when>2013-07-25T20:04:08.000Z</when> +<gx:coord>-75.27764 40.071306 -31.0</gx:coord> +<when>2013-07-25T20:04:09.000Z</when> +<gx:coord>-75.277615 40.071273 -27.799999237060547</gx:coord> +<when>2013-07-25T20:04:10.000Z</when> +<gx:coord>-75.277578 40.071224 -24.899999618530273</gx:coord> +<when>2013-07-25T20:04:11.000Z</when> +<gx:coord>-75.277532 40.071193 -22.399999618530273</gx:coord> +<when>2013-07-25T20:04:12.000Z</when> +<gx:coord>-75.277479 40.071149 -22.200000762939453</gx:coord> +<when>2013-07-25T20:04:13.000Z</when> +<gx:coord>-75.277447 40.071133 -21.899999618530273</gx:coord> +<when>2013-07-25T20:04:14.000Z</when> +<gx:coord>-75.277413 40.071102 -21.100000381469727</gx:coord> +<when>2013-07-25T20:04:15.000Z</when> +<gx:coord>-75.277375 40.071059 -18.600000381469727</gx:coord> +<when>2013-07-25T20:04:16.000Z</when> +<gx:coord>-75.27734 40.071021 -16.5</gx:coord> +<when>2013-07-25T20:04:17.000Z</when> +<gx:coord>-75.277311 40.07098 -17.0</gx:coord> +<when>2013-07-25T20:04:18.000Z</when> +<gx:coord>-75.27726 40.070962 -13.399999618530273</gx:coord> +<when>2013-07-25T20:04:19.000Z</when> +<gx:coord>-75.27722 40.070918 -11.199999809265137</gx:coord> +<when>2013-07-25T20:04:20.001Z</when> +<gx:coord>-75.277181 40.070896 -9.199999809265137</gx:coord> +<when>2013-07-25T20:04:21.000Z</when> +<gx:coord>-75.277144 40.070856 -10.300000190734863</gx:coord> +<when>2013-07-25T20:04:22.000Z</when> +<gx:coord>-75.277111 40.070819 -9.699999809265137</gx:coord> +<when>2013-07-25T20:04:23.000Z</when> +<gx:coord>-75.277085 40.070731 -9.899999618530273</gx:coord> +<when>2013-07-25T20:04:24.000Z</when> +<gx:coord>-75.277055 40.070686 -9.399999618530273</gx:coord> +<when>2013-07-25T20:04:25.000Z</when> +<gx:coord>-75.277027 40.070637 -9.300000190734863</gx:coord> +<when>2013-07-25T20:04:26.000Z</when> +<gx:coord>-75.276996 40.070582 -8.800000190734863</gx:coord> +<when>2013-07-25T20:04:27.000Z</when> +<gx:coord>-75.276968 40.070506 -8.699999809265137</gx:coord> +<when>2013-07-25T20:04:28.000Z</when> +<gx:coord>-75.276935 40.070468 -7.800000190734863</gx:coord> +<when>2013-07-25T20:04:29.000Z</when> +<gx:coord>-75.27691 40.070419 -8.0</gx:coord> +<when>2013-07-25T20:04:30.000Z</when> +<gx:coord>-75.276875 40.070366 -7.199999809265137</gx:coord> +<when>2013-07-25T20:04:31.000Z</when> +<gx:coord>-75.276841 40.07032 -6.400000095367432</gx:coord> +<when>2013-07-25T20:04:32.000Z</when> +<gx:coord>-75.276805 40.070293 -2.799999952316284</gx:coord> +<when>2013-07-25T20:04:33.000Z</when> +<gx:coord>-75.276779 40.07024 -2.0</gx:coord> +<when>2013-07-25T20:04:34.000Z</when> +<gx:coord>-75.276744 40.070197 -1.5</gx:coord> +<when>2013-07-25T20:04:35.000Z</when> +<gx:coord>-75.276708 40.070152 -0.30000001192092896</gx:coord> +<when>2013-07-25T20:04:36.000Z</when> +<gx:coord>-75.276674 40.070104 0.10000000149011612</gx:coord> +<when>2013-07-25T20:04:37.000Z</when> +<gx:coord>-75.276643 40.070066 -0.4000000059604645</gx:coord> +<when>2013-07-25T20:04:38.000Z</when> +<gx:coord>-75.276614 40.070021 -0.10000000149011612</gx:coord> +<when>2013-07-25T20:04:39.000Z</when> +<gx:coord>-75.276584 40.069976 0.0</gx:coord> +<when>2013-07-25T20:04:40.000Z</when> +<gx:coord>-75.276551 40.069933 -0.699999988079071</gx:coord> +<when>2013-07-25T20:04:41.000Z</when> +<gx:coord>-75.27652 40.069891 -0.5</gx:coord> +<when>2013-07-25T20:04:42.000Z</when> +<gx:coord>-75.276492 40.06985 -0.8999999761581421</gx:coord> +<when>2013-07-25T20:04:43.000Z</when> +<gx:coord>-75.276481 40.069785 -3.0999999046325684</gx:coord> +<when>2013-07-25T20:04:44.000Z</when> +<gx:coord>-75.276485 40.069731 -4.599999904632568</gx:coord> +<when>2013-07-25T20:04:45.000Z</when> +<gx:coord>-75.276476 40.069684 -5.800000190734863</gx:coord> +<when>2013-07-25T20:04:46.000Z</when> +<gx:coord>-75.27646 40.06965 -6.0</gx:coord> +<when>2013-07-25T20:04:47.000Z</when> +<gx:coord>-75.276437 40.069608 -6.199999809265137</gx:coord> +<when>2013-07-25T20:04:48.000Z</when> +<gx:coord>-75.276386 40.069611 -0.8999999761581421</gx:coord> +<when>2013-07-25T20:04:49.000Z</when> +<gx:coord>-75.276369 40.06958 -0.800000011920929</gx:coord> +<when>2013-07-25T20:04:50.000Z</when> +<gx:coord>-75.276337 40.069557 -0.699999988079071</gx:coord> +<when>2013-07-25T20:04:51.000Z</when> +<gx:coord>-75.276322 40.06951 1.2000000476837158</gx:coord> +<when>2013-07-25T20:04:52.000Z</when> +<gx:coord>-75.276292 40.069482 3.0</gx:coord> +<when>2013-07-25T20:04:53.000Z</when> +<gx:coord>-75.276255 40.069424 3.0999999046325684</gx:coord> +<when>2013-07-25T20:04:54.000Z</when> +<gx:coord>-75.276219 40.06938 3.0</gx:coord> +<when>2013-07-25T20:04:55.000Z</when> +<gx:coord>-75.276188 40.069346 3.0</gx:coord> +<when>2013-07-25T20:04:56.000Z</when> +<gx:coord>-75.276181 40.069293 1.2999999523162842</gx:coord> +<when>2013-07-25T20:04:57.000Z</when> +<gx:coord>-75.276121 40.069223 1.2999999523162842</gx:coord> +<when>2013-07-25T20:04:58.000Z</when> +<gx:coord>-75.276081 40.069177 1.2999999523162842</gx:coord> +<when>2013-07-25T20:04:59.000Z</when> +<gx:coord>-75.276041 40.069131 1.2999999523162842</gx:coord> +<when>2013-07-25T20:05:00.000Z</when> +<gx:coord>-75.27602 40.069071 0.0</gx:coord> +<when>2013-07-25T20:05:01.000Z</when> +<gx:coord>-75.275978 40.069054 0.6000000238418579</gx:coord> +<when>2013-07-25T20:05:02.000Z</when> +<gx:coord>-75.275923 40.069017 0.6000000238418579</gx:coord> +<when>2013-07-25T20:05:03.000Z</when> +<gx:coord>-75.275921 40.068939 -0.20000000298023224</gx:coord> +<when>2013-07-25T20:05:04.000Z</when> +<gx:coord>-75.275909 40.068889 1.2999999523162842</gx:coord> +<when>2013-07-25T20:05:05.000Z</when> +<gx:coord>-75.275874 40.068858 1.2000000476837158</gx:coord> +<when>2013-07-25T20:05:06.000Z</when> +<gx:coord>-75.275846 40.068832 2.5</gx:coord> +<when>2013-07-25T20:05:07.000Z</when> +<gx:coord>-75.275853 40.068748 0.30000001192092896</gx:coord> +<when>2013-07-25T20:05:08.000Z</when> +<gx:coord>-75.275819 40.068722 1.2999999523162842</gx:coord> +<when>2013-07-25T20:05:09.000Z</when> +<gx:coord>-75.275799 40.068689 3.799999952316284</gx:coord> +<when>2013-07-25T20:05:10.000Z</when> +<gx:coord>-75.275776 40.068657 4.5</gx:coord> +<when>2013-07-25T20:05:11.000Z</when> +<gx:coord>-75.275746 40.068623 4.5</gx:coord> +<when>2013-07-25T20:05:12.000Z</when> +<gx:coord>-75.275712 40.068583 4.5</gx:coord> +<when>2013-07-25T20:05:13.000Z</when> +<gx:coord>-75.275679 40.068543 4.400000095367432</gx:coord> +<when>2013-07-25T20:05:14.000Z</when> +<gx:coord>-75.275642 40.068466 4.599999904632568</gx:coord> +<when>2013-07-25T20:05:15.000Z</when> +<gx:coord>-75.275613 40.068425 3.799999952316284</gx:coord> +<when>2013-07-25T20:05:16.000Z</when> +<gx:coord>-75.275565 40.068379 3.0</gx:coord> +<when>2013-07-25T20:05:17.000Z</when> +<gx:coord>-75.275543 40.068326 2.299999952316284</gx:coord> +<when>2013-07-25T20:05:18.000Z</when> +<gx:coord>-75.275528 40.068304 5.199999809265137</gx:coord> +<when>2013-07-25T20:05:19.000Z</when> +<gx:coord>-75.275507 40.06825 4.800000190734863</gx:coord> +<when>2013-07-25T20:05:20.000Z</when> +<gx:coord>-75.275486 40.068212 5.099999904632568</gx:coord> +<when>2013-07-25T20:05:21.000Z</when> +<gx:coord>-75.275448 40.06815 5.0</gx:coord> +<when>2013-07-25T20:05:22.000Z</when> +<gx:coord>-75.275412 40.068109 5.099999904632568</gx:coord> +<when>2013-07-25T20:05:23.000Z</when> +<gx:coord>-75.275363 40.06808 6.400000095367432</gx:coord> +<when>2013-07-25T20:05:24.000Z</when> +<gx:coord>-75.275334 40.068016 6.199999809265137</gx:coord> +<when>2013-07-25T20:05:25.000Z</when> +<gx:coord>-75.275301 40.067989 5.900000095367432</gx:coord> +<when>2013-07-25T20:05:26.000Z</when> +<gx:coord>-75.275267 40.067956 5.800000190734863</gx:coord> +<when>2013-07-25T20:05:27.000Z</when> +<gx:coord>-75.275225 40.067913 5.599999904632568</gx:coord> +<when>2013-07-25T20:05:28.000Z</when> +<gx:coord>-75.275187 40.067875 7.800000190734863</gx:coord> +<when>2013-07-25T20:05:29.000Z</when> +<gx:coord>-75.27515 40.067841 9.0</gx:coord> +<when>2013-07-25T20:05:30.000Z</when> +<gx:coord>-75.275112 40.067803 10.0</gx:coord> +<when>2013-07-25T20:05:31.000Z</when> +<gx:coord>-75.275081 40.06777 10.600000381469727</gx:coord> +<when>2013-07-25T20:05:32.000Z</when> +<gx:coord>-75.275043 40.067737 12.300000190734863</gx:coord> +<when>2013-07-25T20:05:33.000Z</when> +<gx:coord>-75.27501 40.067696 12.5</gx:coord> +<when>2013-07-25T20:05:34.000Z</when> +<gx:coord>-75.274996 40.067621 10.0</gx:coord> +<when>2013-07-25T20:05:35.000Z</when> +<gx:coord>-75.274967 40.067598 10.5</gx:coord> +<when>2013-07-25T20:05:36.000Z</when> +<gx:coord>-75.274952 40.06753 8.899999618530273</gx:coord> +<when>2013-07-25T20:05:37.000Z</when> +<gx:coord>-75.274923 40.067477 8.5</gx:coord> +<when>2013-07-25T20:05:38.000Z</when> +<gx:coord>-75.274874 40.067471 10.199999809265137</gx:coord> +<when>2013-07-25T20:05:39.000Z</when> +<gx:coord>-75.274839 40.067438 11.0</gx:coord> +<when>2013-07-25T20:05:40.000Z</when> +<gx:coord>-75.274808 40.067398 9.399999618530273</gx:coord> +<when>2013-07-25T20:05:41.000Z</when> +<gx:coord>-75.274783 40.067392 12.399999618530273</gx:coord> +<when>2013-07-25T20:05:42.000Z</when> +<gx:coord>-75.274755 40.067347 12.600000381469727</gx:coord> +<when>2013-07-25T20:05:43.000Z</when> +<gx:coord>-75.27472 40.067315 13.300000190734863</gx:coord> +<when>2013-07-25T20:05:44.000Z</when> +<gx:coord>-75.27468 40.067295 14.5</gx:coord> +<when>2013-07-25T20:05:45.000Z</when> +<gx:coord>-75.274663 40.067269 13.5</gx:coord> +<when>2013-07-25T20:05:46.000Z</when> +<gx:coord>-75.274644 40.067235 14.800000190734863</gx:coord> +<when>2013-07-25T20:05:47.000Z</when> +<gx:coord>-75.274615 40.067209 15.300000190734863</gx:coord> +<when>2013-07-25T20:05:48.000Z</when> +<gx:coord>-75.274589 40.06718 15.899999618530273</gx:coord> +<when>2013-07-25T20:05:49.000Z</when> +<gx:coord>-75.274565 40.067148 16.600000381469727</gx:coord> +<when>2013-07-25T20:05:50.000Z</when> +<gx:coord>-75.274539 40.067111 16.899999618530273</gx:coord> +<when>2013-07-25T20:05:51.000Z</when> +<gx:coord>-75.274511 40.067073 16.899999618530273</gx:coord> +<when>2013-07-25T20:05:52.000Z</when> +<gx:coord>-75.274481 40.067028 17.100000381469727</gx:coord> +<when>2013-07-25T20:05:53.000Z</when> +<gx:coord>-75.274453 40.066984 16.399999618530273</gx:coord> +<when>2013-07-25T20:05:54.000Z</when> +<gx:coord>-75.274425 40.06694 16.600000381469727</gx:coord> +<when>2013-07-25T20:05:55.000Z</when> +<gx:coord>-75.2744 40.066897 15.600000381469727</gx:coord> +<when>2013-07-25T20:05:56.000Z</when> +<gx:coord>-75.274372 40.066857 16.700000762939453</gx:coord> +<when>2013-07-25T20:05:57.000Z</when> +<gx:coord>-75.274344 40.066823 17.5</gx:coord> +<when>2013-07-25T20:05:58.000Z</when> +<gx:coord>-75.274314 40.06679 18.399999618530273</gx:coord> +<when>2013-07-25T20:05:59.000Z</when> +<gx:coord>-75.274283 40.066757 19.0</gx:coord> +<when>2013-07-25T20:06:00.000Z</when> +<gx:coord>-75.274251 40.066718 18.600000381469727</gx:coord> +<when>2013-07-25T20:06:01.000Z</when> +<gx:coord>-75.274225 40.066666 14.0</gx:coord> +<when>2013-07-25T20:06:02.000Z</when> +<gx:coord>-75.274198 40.066614 13.800000190734863</gx:coord> +<when>2013-07-25T20:06:03.000Z</when> +<gx:coord>-75.274171 40.066563 13.899999618530273</gx:coord> +<when>2013-07-25T20:06:04.000Z</when> +<gx:coord>-75.274143 40.066513 13.5</gx:coord> +<when>2013-07-25T20:06:05.000Z</when> +<gx:coord>-75.274116 40.066467 13.600000381469727</gx:coord> +<when>2013-07-25T20:06:06.000Z</when> +<gx:coord>-75.274089 40.06642 13.600000381469727</gx:coord> +<when>2013-07-25T20:06:07.000Z</when> +<gx:coord>-75.274063 40.066374 13.800000190734863</gx:coord> +<when>2013-07-25T20:06:08.000Z</when> +<gx:coord>-75.274037 40.066327 13.699999809265137</gx:coord> +<when>2013-07-25T20:06:09.000Z</when> +<gx:coord>-75.274012 40.066284 13.5</gx:coord> +<when>2013-07-25T20:06:10.000Z</when> +<gx:coord>-75.273983 40.066242 13.300000190734863</gx:coord> +<when>2013-07-25T20:06:11.000Z</when> +<gx:coord>-75.273957 40.066202 13.100000381469727</gx:coord> +<when>2013-07-25T20:06:12.000Z</when> +<gx:coord>-75.273921 40.066187 22.299999237060547</gx:coord> +<when>2013-07-25T20:06:13.000Z</when> +<gx:coord>-75.27389 40.066252 27.899999618530273</gx:coord> +<when>2013-07-25T20:06:14.000Z</when> +<gx:coord>-75.27386 40.066239 32.29999923706055</gx:coord> +<when>2013-07-25T20:06:15.000Z</when> +<gx:coord>-75.27382 40.066205 33.20000076293945</gx:coord> +<when>2013-07-25T20:06:16.000Z</when> +<gx:coord>-75.273792 40.066161 33.5</gx:coord> +<when>2013-07-25T20:06:17.000Z</when> +<gx:coord>-75.273766 40.066118 33.20000076293945</gx:coord> +<when>2013-07-25T20:06:18.000Z</when> +<gx:coord>-75.273748 40.066078 34.099998474121094</gx:coord> +<when>2013-07-25T20:06:19.000Z</when> +<gx:coord>-75.273754 40.066003 31.399999618530273</gx:coord> +<when>2013-07-25T20:06:20.000Z</when> +<gx:coord>-75.273716 40.065965 31.899999618530273</gx:coord> +<when>2013-07-25T20:06:21.000Z</when> +<gx:coord>-75.273712 40.065889 27.799999237060547</gx:coord> +<when>2013-07-25T20:06:22.000Z</when> +<gx:coord>-75.273678 40.065854 27.799999237060547</gx:coord> +<when>2013-07-25T20:06:23.000Z</when> +<gx:coord>-75.273661 40.06582 28.799999237060547</gx:coord> +<when>2013-07-25T20:06:24.000Z</when> +<gx:coord>-75.273645 40.065751 23.799999237060547</gx:coord> +<when>2013-07-25T20:06:25.000Z</when> +<gx:coord>-75.273626 40.065711 24.5</gx:coord> +<when>2013-07-25T20:06:26.000Z</when> +<gx:coord>-75.273607 40.065676 25.700000762939453</gx:coord> +<when>2013-07-25T20:06:27.000Z</when> +<gx:coord>-75.273583 40.065645 25.799999237060547</gx:coord> +<when>2013-07-25T20:06:28.000Z</when> +<gx:coord>-75.273554 40.065613 25.5</gx:coord> +<when>2013-07-25T20:06:29.000Z</when> +<gx:coord>-75.273518 40.065578 26.399999618530273</gx:coord> +<when>2013-07-25T20:06:30.000Z</when> +<gx:coord>-75.27343 40.065508 26.200000762939453</gx:coord> +<when>2013-07-25T20:06:31.000Z</when> +<gx:coord>-75.273382 40.065468 25.299999237060547</gx:coord> +<when>2013-07-25T20:06:32.000Z</when> +<gx:coord>-75.273335 40.065425 25.200000762939453</gx:coord> +<when>2013-07-25T20:06:33.000Z</when> +<gx:coord>-75.273294 40.065387 25.399999618530273</gx:coord> +<when>2013-07-25T20:06:34.000Z</when> +<gx:coord>-75.273248 40.065339 24.899999618530273</gx:coord> +<when>2013-07-25T20:06:35.000Z</when> +<gx:coord>-75.273202 40.065304 25.799999237060547</gx:coord> +<when>2013-07-25T20:06:36.000Z</when> +<gx:coord>-75.273149 40.06528 24.399999618530273</gx:coord> +<when>2013-07-25T20:06:37.000Z</when> +<gx:coord>-75.273098 40.06525 24.0</gx:coord> +<when>2013-07-25T20:06:38.000Z</when> +<gx:coord>-75.27306 40.065207 24.100000381469727</gx:coord> +<when>2013-07-25T20:06:39.000Z</when> +<gx:coord>-75.273022 40.065176 23.700000762939453</gx:coord> +<when>2013-07-25T20:06:40.000Z</when> +<gx:coord>-75.272983 40.065137 23.799999237060547</gx:coord> +<when>2013-07-25T20:06:41.000Z</when> +<gx:coord>-75.273009 40.064997 14.199999809265137</gx:coord> +<when>2013-07-25T20:06:42.000Z</when> +<gx:coord>-75.272963 40.064984 14.800000190734863</gx:coord> +<when>2013-07-25T20:06:43.000Z</when> +<gx:coord>-75.272901 40.064956 13.5</gx:coord> +<when>2013-07-25T20:06:44.000Z</when> +<gx:coord>-75.272847 40.064942 12.600000381469727</gx:coord> +<when>2013-07-25T20:06:45.000Z</when> +<gx:coord>-75.272845 40.064884 13.899999618530273</gx:coord> +<when>2013-07-25T20:06:46.000Z</when> +<gx:coord>-75.272805 40.064847 13.800000190734863</gx:coord> +<when>2013-07-25T20:06:47.000Z</when> +<gx:coord>-75.272762 40.064816 14.300000190734863</gx:coord> +<when>2013-07-25T20:06:48.000Z</when> +<gx:coord>-75.272726 40.064782 14.699999809265137</gx:coord> +<when>2013-07-25T20:06:49.000Z</when> +<gx:coord>-75.272723 40.064709 11.199999809265137</gx:coord> +<when>2013-07-25T20:06:50.000Z</when> +<gx:coord>-75.272713 40.064646 7.699999809265137</gx:coord> +<when>2013-07-25T20:06:51.000Z</when> +<gx:coord>-75.272686 40.064595 4.599999904632568</gx:coord> +<when>2013-07-25T20:06:52.000Z</when> +<gx:coord>-75.272643 40.064558 3.299999952316284</gx:coord> +<when>2013-07-25T20:06:53.000Z</when> +<gx:coord>-75.272607 40.06451 1.600000023841858</gx:coord> +<when>2013-07-25T20:06:54.000Z</when> +<gx:coord>-75.272558 40.064481 1.2000000476837158</gx:coord> +<when>2013-07-25T20:06:55.000Z</when> +<gx:coord>-75.272518 40.064434 0.0</gx:coord> +<when>2013-07-25T20:06:56.000Z</when> +<gx:coord>-75.272473 40.064399 -0.20000000298023224</gx:coord> +<when>2013-07-25T20:06:57.000Z</when> +<gx:coord>-75.272423 40.064367 -0.30000001192092896</gx:coord> +<when>2013-07-25T20:06:58.000Z</when> +<gx:coord>-75.272376 40.064332 -0.20000000298023224</gx:coord> +<when>2013-07-25T20:06:59.000Z</when> +<gx:coord>-75.272331 40.064304 -0.4000000059604645</gx:coord> +<when>2013-07-25T20:07:00.000Z</when> +<gx:coord>-75.272286 40.064261 -1.7000000476837158</gx:coord> +<when>2013-07-25T20:07:01.000Z</when> +<gx:coord>-75.272235 40.064232 -1.7999999523162842</gx:coord> +<when>2013-07-25T20:07:02.000Z</when> +<gx:coord>-75.272184 40.064195 -2.4000000953674316</gx:coord> +<when>2013-07-25T20:07:03.000Z</when> +<gx:coord>-75.272136 40.064154 -3.299999952316284</gx:coord> +<when>2013-07-25T20:07:04.000Z</when> +<gx:coord>-75.272098 40.064125 -3.4000000953674316</gx:coord> +<when>2013-07-25T20:07:05.000Z</when> +<gx:coord>-75.272042 40.064091 -2.299999952316284</gx:coord> +<when>2013-07-25T20:07:06.000Z</when> +<gx:coord>-75.271996 40.064059 -1.7999999523162842</gx:coord> +<when>2013-07-25T20:07:07.000Z</when> +<gx:coord>-75.271951 40.064021 -2.4000000953674316</gx:coord> +<when>2013-07-25T20:07:08.000Z</when> +<gx:coord>-75.271906 40.063985 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:07:09.000Z</when> +<gx:coord>-75.271859 40.063952 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:07:10.000Z</when> +<gx:coord>-75.271813 40.063925 -2.700000047683716</gx:coord> +<when>2013-07-25T20:07:11.000Z</when> +<gx:coord>-75.271763 40.063898 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:07:12.000Z</when> +<gx:coord>-75.271713 40.063866 -3.0</gx:coord> +<when>2013-07-25T20:07:13.000Z</when> +<gx:coord>-75.271665 40.063832 -2.799999952316284</gx:coord> +<when>2013-07-25T20:07:14.000Z</when> +<gx:coord>-75.271621 40.0638 -3.0</gx:coord> +<when>2013-07-25T20:07:15.000Z</when> +<gx:coord>-75.271573 40.06377 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:07:16.000Z</when> +<gx:coord>-75.271525 40.063746 -1.7000000476837158</gx:coord> +<when>2013-07-25T20:07:17.000Z</when> +<gx:coord>-75.271483 40.063723 -2.299999952316284</gx:coord> +<when>2013-07-25T20:07:18.000Z</when> +<gx:coord>-75.271432 40.063689 -1.899999976158142</gx:coord> +<when>2013-07-25T20:07:19.000Z</when> +<gx:coord>-75.271366 40.063668 -2.700000047683716</gx:coord> +<when>2013-07-25T20:07:20.000Z</when> +<gx:coord>-75.271317 40.063628 -2.0</gx:coord> +<when>2013-07-25T20:07:21.000Z</when> +<gx:coord>-75.271267 40.063596 -1.899999976158142</gx:coord> +<when>2013-07-25T20:07:22.000Z</when> +<gx:coord>-75.271233 40.063557 -1.7000000476837158</gx:coord> +<when>2013-07-25T20:07:23.000Z</when> +<gx:coord>-75.271213 40.063506 -4.099999904632568</gx:coord> +<when>2013-07-25T20:07:24.000Z</when> +<gx:coord>-75.271191 40.063459 -6.300000190734863</gx:coord> +<when>2013-07-25T20:07:25.000Z</when> +<gx:coord>-75.271167 40.063427 -5.300000190734863</gx:coord> +<when>2013-07-25T20:07:26.000Z</when> +<gx:coord>-75.271133 40.063394 -4.699999809265137</gx:coord> +<when>2013-07-25T20:07:27.000Z</when> +<gx:coord>-75.271087 40.063361 -5.400000095367432</gx:coord> +<when>2013-07-25T20:07:28.000Z</when> +<gx:coord>-75.271048 40.063328 -5.699999809265137</gx:coord> +<when>2013-07-25T20:07:29.000Z</when> +<gx:coord>-75.271 40.063297 -5.599999904632568</gx:coord> +<when>2013-07-25T20:07:30.000Z</when> +<gx:coord>-75.270958 40.063266 -6.099999904632568</gx:coord> +<when>2013-07-25T20:07:31.000Z</when> +<gx:coord>-75.270918 40.063232 -6.900000095367432</gx:coord> +<when>2013-07-25T20:07:32.000Z</when> +<gx:coord>-75.270873 40.063199 -7.099999904632568</gx:coord> +<when>2013-07-25T20:07:33.000Z</when> +<gx:coord>-75.270833 40.06317 -7.599999904632568</gx:coord> +<when>2013-07-25T20:07:34.000Z</when> +<gx:coord>-75.270791 40.063139 -8.199999809265137</gx:coord> +<when>2013-07-25T20:07:35.000Z</when> +<gx:coord>-75.270749 40.06311 -7.900000095367432</gx:coord> +<when>2013-07-25T20:07:36.000Z</when> +<gx:coord>-75.270705 40.063082 -8.300000190734863</gx:coord> +<when>2013-07-25T20:07:37.000Z</when> +<gx:coord>-75.270662 40.063058 -7.900000095367432</gx:coord> +<when>2013-07-25T20:07:38.000Z</when> +<gx:coord>-75.270617 40.063036 -8.600000381469727</gx:coord> +<when>2013-07-25T20:07:39.000Z</when> +<gx:coord>-75.27057 40.063012 -8.699999809265137</gx:coord> +<when>2013-07-25T20:07:40.000Z</when> +<gx:coord>-75.270522 40.062984 -8.300000190734863</gx:coord> +<when>2013-07-25T20:07:41.000Z</when> +<gx:coord>-75.270477 40.062957 -8.699999809265137</gx:coord> +<when>2013-07-25T20:07:42.000Z</when> +<gx:coord>-75.270422 40.062917 -8.0</gx:coord> +<when>2013-07-25T20:07:43.000Z</when> +<gx:coord>-75.270377 40.062887 -8.300000190734863</gx:coord> +<when>2013-07-25T20:07:44.000Z</when> +<gx:coord>-75.270332 40.062858 -7.699999809265137</gx:coord> +<when>2013-07-25T20:07:45.000Z</when> +<gx:coord>-75.270285 40.062827 -6.599999904632568</gx:coord> +<when>2013-07-25T20:07:46.000Z</when> +<gx:coord>-75.270243 40.062797 -6.099999904632568</gx:coord> +<when>2013-07-25T20:07:47.000Z</when> +<gx:coord>-75.270196 40.062774 -5.0</gx:coord> +<when>2013-07-25T20:07:48.000Z</when> +<gx:coord>-75.270155 40.062741 -4.300000190734863</gx:coord> +<when>2013-07-25T20:07:49.000Z</when> +<gx:coord>-75.270108 40.062718 -3.9000000953674316</gx:coord> +<when>2013-07-25T20:07:50.000Z</when> +<gx:coord>-75.270086 40.062685 -3.700000047683716</gx:coord> +<when>2013-07-25T20:07:51.000Z</when> +<gx:coord>-75.270077 40.062667 0.699999988079071</gx:coord> +<when>2013-07-25T20:07:52.000Z</when> +<gx:coord>-75.270039 40.062639 2.0999999046325684</gx:coord> +<when>2013-07-25T20:07:53.000Z</when> +<gx:coord>-75.270007 40.062604 2.5</gx:coord> +<when>2013-07-25T20:07:54.000Z</when> +<gx:coord>-75.26996 40.062574 2.5</gx:coord> +<when>2013-07-25T20:07:55.000Z</when> +<gx:coord>-75.269925 40.062552 3.700000047683716</gx:coord> +<when>2013-07-25T20:07:56.000Z</when> +<gx:coord>-75.269883 40.062526 3.700000047683716</gx:coord> +<when>2013-07-25T20:07:57.000Z</when> +<gx:coord>-75.269851 40.062505 7.800000190734863</gx:coord> +<when>2013-07-25T20:07:58.000Z</when> +<gx:coord>-75.26982 40.062484 9.600000381469727</gx:coord> +<when>2013-07-25T20:07:59.000Z</when> +<gx:coord>-75.26979 40.062464 10.899999618530273</gx:coord> +<when>2013-07-25T20:08:00.000Z</when> +<gx:coord>-75.26976 40.062441 11.100000381469727</gx:coord> +<when>2013-07-25T20:08:01.000Z</when> +<gx:coord>-75.269729 40.06242 12.199999809265137</gx:coord> +<when>2013-07-25T20:08:02.000Z</when> +<gx:coord>-75.269689 40.062395 9.899999618530273</gx:coord> +<when>2013-07-25T20:08:03.000Z</when> +<gx:coord>-75.269643 40.062371 9.5</gx:coord> +<when>2013-07-25T20:08:04.000Z</when> +<gx:coord>-75.269544 40.062355 12.600000381469727</gx:coord> +<when>2013-07-25T20:08:05.000Z</when> +<gx:coord>-75.269493 40.062347 13.699999809265137</gx:coord> +<when>2013-07-25T20:08:06.000Z</when> +<gx:coord>-75.26944 40.062337 14.5</gx:coord> +<when>2013-07-25T20:08:07.000Z</when> +<gx:coord>-75.269386 40.062298 14.5</gx:coord> +<when>2013-07-25T20:08:08.000Z</when> +<gx:coord>-75.269328 40.062263 13.399999618530273</gx:coord> +<when>2013-07-25T20:08:09.000Z</when> +<gx:coord>-75.269274 40.062229 12.600000381469727</gx:coord> +<when>2013-07-25T20:08:10.000Z</when> +<gx:coord>-75.269234 40.062207 13.300000190734863</gx:coord> +<when>2013-07-25T20:08:11.000Z</when> +<gx:coord>-75.269185 40.062177 13.600000381469727</gx:coord> +<when>2013-07-25T20:08:12.000Z</when> +<gx:coord>-75.269129 40.062153 13.399999618530273</gx:coord> +<when>2013-07-25T20:08:13.000Z</when> +<gx:coord>-75.269079 40.062125 13.600000381469727</gx:coord> +<when>2013-07-25T20:08:14.000Z</when> +<gx:coord>-75.26903 40.062095 12.800000190734863</gx:coord> +<when>2013-07-25T20:08:15.000Z</when> +<gx:coord>-75.268991 40.062057 10.899999618530273</gx:coord> +<when>2013-07-25T20:08:16.000Z</when> +<gx:coord>-75.268935 40.062029 10.5</gx:coord> +<when>2013-07-25T20:08:17.000Z</when> +<gx:coord>-75.268886 40.062005 9.899999618530273</gx:coord> +<when>2013-07-25T20:08:18.000Z</when> +<gx:coord>-75.268828 40.061995 12.5</gx:coord> +<when>2013-07-25T20:08:19.000Z</when> +<gx:coord>-75.268808 40.061962 12.699999809265137</gx:coord> +<when>2013-07-25T20:08:20.000Z</when> +<gx:coord>-75.268798 40.061955 12.699999809265137</gx:coord> +<when>2013-07-25T20:08:22.000Z</when> +<gx:coord>-75.268753 40.061935 12.399999618530273</gx:coord> +<when>2013-07-25T20:08:23.000Z</when> +<gx:coord>-75.268724 40.061932 12.300000190734863</gx:coord> +<when>2013-07-25T20:08:24.000Z</when> +<gx:coord>-75.268636 40.06188 11.899999618530273</gx:coord> +<when>2013-07-25T20:08:25.000Z</when> +<gx:coord>-75.268578 40.061871 14.399999618530273</gx:coord> +<when>2013-07-25T20:08:26.000Z</when> +<gx:coord>-75.268524 40.06184 14.100000381469727</gx:coord> +<when>2013-07-25T20:08:27.000Z</when> +<gx:coord>-75.268489 40.061791 11.300000190734863</gx:coord> +<when>2013-07-25T20:08:28.000Z</when> +<gx:coord>-75.268447 40.061762 9.699999809265137</gx:coord> +<when>2013-07-25T20:08:29.000Z</when> +<gx:coord>-75.268408 40.061731 9.199999809265137</gx:coord> +<when>2013-07-25T20:08:30.000Z</when> +<gx:coord>-75.268366 40.0617 8.300000190734863</gx:coord> +<when>2013-07-25T20:08:31.000Z</when> +<gx:coord>-75.268325 40.061669 7.400000095367432</gx:coord> +<when>2013-07-25T20:08:32.000Z</when> +<gx:coord>-75.268283 40.061636 6.599999904632568</gx:coord> +<when>2013-07-25T20:08:33.000Z</when> +<gx:coord>-75.268243 40.061605 6.0</gx:coord> +<when>2013-07-25T20:08:34.000Z</when> +<gx:coord>-75.268202 40.061573 5.400000095367432</gx:coord> +<when>2013-07-25T20:08:35.000Z</when> +<gx:coord>-75.26816 40.061544 6.400000095367432</gx:coord> +<when>2013-07-25T20:08:36.000Z</when> +<gx:coord>-75.268116 40.061512 6.0</gx:coord> +<when>2013-07-25T20:08:37.000Z</when> +<gx:coord>-75.268075 40.06148 5.5</gx:coord> +<when>2013-07-25T20:08:38.000Z</when> +<gx:coord>-75.268033 40.061448 5.0</gx:coord> +<when>2013-07-25T20:08:39.001Z</when> +<gx:coord>-75.267992 40.061415 5.0</gx:coord> +<when>2013-07-25T20:08:40.000Z</when> +<gx:coord>-75.267951 40.061385 4.5</gx:coord> +<when>2013-07-25T20:08:41.000Z</when> +<gx:coord>-75.267904 40.061335 7.699999809265137</gx:coord> +<when>2013-07-25T20:08:41.999Z</when> +<gx:coord>-75.26786 40.06131 10.0</gx:coord> +<when>2013-07-25T20:08:43.000Z</when> +<gx:coord>-75.267845 40.061298 7.5</gx:coord> +<when>2013-07-25T20:08:44.000Z</when> +<gx:coord>-75.267808 40.061284 7.0</gx:coord> +<when>2013-07-25T20:08:45.000Z</when> +<gx:coord>-75.267773 40.061272 7.099999904632568</gx:coord> +<when>2013-07-25T20:08:46.000Z</when> +<gx:coord>-75.267718 40.061216 8.100000381469727</gx:coord> +<when>2013-07-25T20:08:47.000Z</when> +<gx:coord>-75.267679 40.061178 8.5</gx:coord> +<when>2013-07-25T20:08:48.000Z</when> +<gx:coord>-75.267641 40.061145 7.699999809265137</gx:coord> +<when>2013-07-25T20:08:49.000Z</when> +<gx:coord>-75.267601 40.061118 7.599999904632568</gx:coord> +<when>2013-07-25T20:08:50.000Z</when> +<gx:coord>-75.267559 40.061078 7.599999904632568</gx:coord> +<when>2013-07-25T20:08:51.000Z</when> +<gx:coord>-75.267517 40.061055 6.599999904632568</gx:coord> +<when>2013-07-25T20:08:52.000Z</when> +<gx:coord>-75.267487 40.061034 5.5</gx:coord> +<when>2013-07-25T20:08:53.000Z</when> +<gx:coord>-75.267447 40.061 4.400000095367432</gx:coord> +<when>2013-07-25T20:08:54.000Z</when> +<gx:coord>-75.267408 40.060983 4.400000095367432</gx:coord> +<when>2013-07-25T20:08:55.000Z</when> +<gx:coord>-75.267355 40.060922 5.5</gx:coord> +<when>2013-07-25T20:08:56.000Z</when> +<gx:coord>-75.267315 40.060896 5.699999809265137</gx:coord> +<when>2013-07-25T20:08:57.000Z</when> +<gx:coord>-75.267266 40.060842 6.099999904632568</gx:coord> +<when>2013-07-25T20:08:57.998Z</when> +<gx:coord>-75.26722 40.060792 6.699999809265137</gx:coord> +<when>2013-07-25T20:08:59.000Z</when> +<gx:coord>-75.267169 40.060751 6.5</gx:coord> +<when>2013-07-25T20:09:00.000Z</when> +<gx:coord>-75.267115 40.060708 6.5</gx:coord> +<when>2013-07-25T20:09:01.000Z</when> +<gx:coord>-75.267058 40.060675 6.800000190734863</gx:coord> +<when>2013-07-25T20:09:02.000Z</when> +<gx:coord>-75.267 40.060636 5.900000095367432</gx:coord> +<when>2013-07-25T20:09:03.000Z</when> +<gx:coord>-75.26697 40.06061 4.099999904632568</gx:coord> +<when>2013-07-25T20:09:04.000Z</when> +<gx:coord>-75.266924 40.060585 3.0</gx:coord> +<when>2013-07-25T20:09:05.000Z</when> +<gx:coord>-75.266886 40.060599 -1.2000000476837158</gx:coord> +<when>2013-07-25T20:09:06.000Z</when> +<gx:coord>-75.266851 40.060596 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:09:07.000Z</when> +<gx:coord>-75.266805 40.060592 -3.4000000953674316</gx:coord> +<when>2013-07-25T20:09:08.000Z</when> +<gx:coord>-75.266757 40.060614 -10.199999809265137</gx:coord> +<when>2013-07-25T20:09:09.000Z</when> +<gx:coord>-75.266711 40.0606 -11.5</gx:coord> +<when>2013-07-25T20:09:10.000Z</when> +<gx:coord>-75.266671 40.060572 -12.100000381469727</gx:coord> +<when>2013-07-25T20:09:10.999Z</when> +<gx:coord>-75.266631 40.060546 -12.100000381469727</gx:coord> +<when>2013-07-25T20:09:12.000Z</when> +<gx:coord>-75.266591 40.060514 -13.100000381469727</gx:coord> +<when>2013-07-25T20:09:13.000Z</when> +<gx:coord>-75.266549 40.060497 -13.199999809265137</gx:coord> +<when>2013-07-25T20:09:14.000Z</when> +<gx:coord>-75.266507 40.060479 -13.5</gx:coord> +<when>2013-07-25T20:09:15.000Z</when> +<gx:coord>-75.266445 40.060454 -13.300000190734863</gx:coord> +<when>2013-07-25T20:09:16.000Z</when> +<gx:coord>-75.266395 40.060425 -13.100000381469727</gx:coord> +<when>2013-07-25T20:09:17.000Z</when> +<gx:coord>-75.266366 40.060396 -10.600000381469727</gx:coord> +<when>2013-07-25T20:09:18.000Z</when> +<gx:coord>-75.266322 40.060373 -10.5</gx:coord> +<when>2013-07-25T20:09:19.000Z</when> +<gx:coord>-75.266277 40.060347 -9.899999618530273</gx:coord> +<when>2013-07-25T20:09:20.000Z</when> +<gx:coord>-75.266238 40.060321 -9.0</gx:coord> +<when>2013-07-25T20:09:21.000Z</when> +<gx:coord>-75.2662 40.060302 -8.100000381469727</gx:coord> +<when>2013-07-25T20:09:22.000Z</when> +<gx:coord>-75.266165 40.060287 -7.699999809265137</gx:coord> +<when>2013-07-25T20:09:23.000Z</when> +<gx:coord>-75.26613 40.060275 -7.199999809265137</gx:coord> +<when>2013-07-25T20:09:24.000Z</when> +<gx:coord>-75.266093 40.060264 -7.199999809265137</gx:coord> +<when>2013-07-25T20:09:25.000Z</when> +<gx:coord>-75.26605 40.060246 -7.300000190734863</gx:coord> +<when>2013-07-25T20:09:26.000Z</when> +<gx:coord>-75.265957 40.060177 -6.300000190734863</gx:coord> +<when>2013-07-25T20:09:27.000Z</when> +<gx:coord>-75.2659 40.060148 -6.300000190734863</gx:coord> +<when>2013-07-25T20:09:28.000Z</when> +<gx:coord>-75.265846 40.06011 -5.699999809265137</gx:coord> +<when>2013-07-25T20:09:29.000Z</when> +<gx:coord>-75.265801 40.060092 -2.799999952316284</gx:coord> +<when>2013-07-25T20:09:30.000Z</when> +<gx:coord>-75.265767 40.060058 -1.899999976158142</gx:coord> +<when>2013-07-25T20:09:31.000Z</when> +<gx:coord>-75.265719 40.060044 -0.4000000059604645</gx:coord> +<when>2013-07-25T20:09:32.000Z</when> +<gx:coord>-75.265675 40.060026 0.0</gx:coord> +<when>2013-07-25T20:09:33.000Z</when> +<gx:coord>-75.265617 40.060011 0.20000000298023224</gx:coord> +<when>2013-07-25T20:09:34.000Z</when> +<gx:coord>-75.26556 40.059979 0.30000001192092896</gx:coord> +<when>2013-07-25T20:09:35.000Z</when> +<gx:coord>-75.265502 40.059928 1.600000023841858</gx:coord> +<when>2013-07-25T20:09:36.000Z</when> +<gx:coord>-75.265475 40.059874 0.4000000059604645</gx:coord> +<when>2013-07-25T20:09:37.000Z</when> +<gx:coord>-75.265433 40.059831 -0.20000000298023224</gx:coord> +<when>2013-07-25T20:09:38.000Z</when> +<gx:coord>-75.265384 40.059797 0.5</gx:coord> +<when>2013-07-25T20:09:39.000Z</when> +<gx:coord>-75.265339 40.059764 1.399999976158142</gx:coord> +<when>2013-07-25T20:09:40.000Z</when> +<gx:coord>-75.265294 40.059732 2.0999999046325684</gx:coord> +<when>2013-07-25T20:09:41.000Z</when> +<gx:coord>-75.265256 40.059692 2.0999999046325684</gx:coord> +<when>2013-07-25T20:09:42.000Z</when> +<gx:coord>-75.265206 40.059638 1.100000023841858</gx:coord> +<when>2013-07-25T20:09:43.000Z</when> +<gx:coord>-75.26515 40.059605 1.7999999523162842</gx:coord> +<when>2013-07-25T20:09:44.000Z</when> +<gx:coord>-75.265114 40.05954 1.399999976158142</gx:coord> +<when>2013-07-25T20:09:45.000Z</when> +<gx:coord>-75.26508 40.059486 1.100000023841858</gx:coord> +<when>2013-07-25T20:09:46.000Z</when> +<gx:coord>-75.26503 40.05946 1.2000000476837158</gx:coord> +<when>2013-07-25T20:09:47.000Z</when> +<gx:coord>-75.264991 40.059407 1.0</gx:coord> +<when>2013-07-25T20:09:48.000Z</when> +<gx:coord>-75.264949 40.059365 -0.5</gx:coord> +<when>2013-07-25T20:09:49.000Z</when> +<gx:coord>-75.264908 40.059324 -0.8999999761581421</gx:coord> +<when>2013-07-25T20:09:50.000Z</when> +<gx:coord>-75.264863 40.059287 -0.5</gx:coord> +<when>2013-07-25T20:09:51.000Z</when> +<gx:coord>-75.264834 40.05925 0.10000000149011612</gx:coord> +<when>2013-07-25T20:09:52.000Z</when> +<gx:coord>-75.264805 40.059231 1.7999999523162842</gx:coord> +<when>2013-07-25T20:09:53.000Z</when> +<gx:coord>-75.264753 40.059187 0.800000011920929</gx:coord> +<when>2013-07-25T20:09:54.000Z</when> +<gx:coord>-75.264711 40.05915 1.2000000476837158</gx:coord> +<when>2013-07-25T20:09:55.000Z</when> +<gx:coord>-75.26467 40.059111 1.2000000476837158</gx:coord> +<when>2013-07-25T20:09:56.000Z</when> +<gx:coord>-75.264656 40.059094 1.2000000476837158</gx:coord> +<when>2013-07-25T20:09:57.000Z</when> +<gx:coord>-75.264618 40.059025 3.0999999046325684</gx:coord> +<when>2013-07-25T20:09:58.000Z</when> +<gx:coord>-75.26457 40.058979 3.0999999046325684</gx:coord> +<when>2013-07-25T20:09:59.000Z</when> +<gx:coord>-75.264541 40.058915 5.199999809265137</gx:coord> +<when>2013-07-25T20:10:00.000Z</when> +<gx:coord>-75.264496 40.058879 4.400000095367432</gx:coord> +<when>2013-07-25T20:10:01.000Z</when> +<gx:coord>-75.264464 40.058872 4.5</gx:coord> +<when>2013-07-25T20:10:01.999Z</when> +<gx:coord>-75.26443 40.05885 4.699999809265137</gx:coord> +<when>2013-07-25T20:10:03.000Z</when> +<gx:coord>-75.264399 40.058762 9.100000381469727</gx:coord> +<when>2013-07-25T20:10:04.000Z</when> +<gx:coord>-75.264356 40.058717 7.599999904632568</gx:coord> +<when>2013-07-25T20:10:04.999Z</when> +<gx:coord>-75.264328 40.058681 8.699999809265137</gx:coord> +<when>2013-07-25T20:10:06.000Z</when> +<gx:coord>-75.264275 40.058648 14.800000190734863</gx:coord> +<when>2013-07-25T20:10:07.000Z</when> +<gx:coord>-75.264223 40.058634 17.0</gx:coord> +<when>2013-07-25T20:10:08.000Z</when> +<gx:coord>-75.264194 40.058596 19.600000381469727</gx:coord> +<when>2013-07-25T20:10:10.000Z</when> +<gx:coord>-75.26415 40.058589 19.700000762939453</gx:coord> +<when>2013-07-25T20:10:11.000Z</when> +<gx:coord>-75.26413 40.05859 20.200000762939453</gx:coord> +<when>2013-07-25T20:10:12.000Z</when> +<gx:coord>-75.264117 40.058575 19.700000762939453</gx:coord> +<when>2013-07-25T20:10:13.000Z</when> +<gx:coord>-75.264082 40.058488 18.100000381469727</gx:coord> +<when>2013-07-25T20:10:14.000Z</when> +<gx:coord>-75.26407 40.058436 17.200000762939453</gx:coord> +<when>2013-07-25T20:10:14.999Z</when> +<gx:coord>-75.264052 40.058381 17.399999618530273</gx:coord> +<when>2013-07-25T20:10:16.000Z</when> +<gx:coord>-75.264036 40.058362 13.800000190734863</gx:coord> +<when>2013-07-25T20:10:17.000Z</when> +<gx:coord>-75.264026 40.058311 13.399999618530273</gx:coord> +<when>2013-07-25T20:10:18.000Z</when> +<gx:coord>-75.264022 40.058257 12.899999618530273</gx:coord> +<when>2013-07-25T20:10:20.000Z</when> +<gx:coord>-75.26403 40.058228 13.100000381469727</gx:coord> +<when>2013-07-25T20:10:21.000Z</when> +<gx:coord>-75.26403 40.058193 11.600000381469727</gx:coord> +<when>2013-07-25T20:10:23.000Z</when> +<gx:coord>-75.264022 40.058156 11.600000381469727</gx:coord> +<when>2013-07-25T20:10:24.000Z</when> +<gx:coord>-75.263988 40.058127 9.800000190734863</gx:coord> +<when>2013-07-25T20:10:25.000Z</when> +<gx:coord>-75.263934 40.058089 18.600000381469727</gx:coord> +<when>2013-07-25T20:10:26.000Z</when> +<gx:coord>-75.263945 40.058041 15.899999618530273</gx:coord> +<when>2013-07-25T20:10:27.000Z</when> +<gx:coord>-75.263955 40.058011 16.399999618530273</gx:coord> +<when>2013-07-25T20:10:28.000Z</when> +<gx:coord>-75.263927 40.057924 17.399999618530273</gx:coord> +<when>2013-07-25T20:10:29.000Z</when> +<gx:coord>-75.263916 40.057878 16.100000381469727</gx:coord> +<when>2013-07-25T20:10:30.000Z</when> +<gx:coord>-75.263903 40.057824 14.699999809265137</gx:coord> +<when>2013-07-25T20:10:31.000Z</when> +<gx:coord>-75.263896 40.057768 14.100000381469727</gx:coord> +<when>2013-07-25T20:10:32.000Z</when> +<gx:coord>-75.263855 40.057646 16.299999237060547</gx:coord> +<when>2013-07-25T20:10:33.000Z</when> +<gx:coord>-75.263841 40.057608 16.799999237060547</gx:coord> +<when>2013-07-25T20:10:34.000Z</when> +<gx:coord>-75.263829 40.057545 16.0</gx:coord> +<when>2013-07-25T20:10:35.000Z</when> +<gx:coord>-75.263823 40.057488 15.5</gx:coord> +<when>2013-07-25T20:10:36.000Z</when> +<gx:coord>-75.263804 40.057442 15.100000381469727</gx:coord> +<when>2013-07-25T20:10:37.000Z</when> +<gx:coord>-75.263794 40.057388 15.800000190734863</gx:coord> +<when>2013-07-25T20:10:38.000Z</when> +<gx:coord>-75.263791 40.057307 15.100000381469727</gx:coord> +<when>2013-07-25T20:10:39.000Z</when> +<gx:coord>-75.263767 40.05727 15.5</gx:coord> +<when>2013-07-25T20:10:40.000Z</when> +<gx:coord>-75.26373 40.05722 14.699999809265137</gx:coord> +<when>2013-07-25T20:10:41.000Z</when> +<gx:coord>-75.263734 40.057173 15.800000190734863</gx:coord> +<when>2013-07-25T20:10:42.000Z</when> +<gx:coord>-75.263728 40.057112 17.799999237060547</gx:coord> +<when>2013-07-25T20:10:43.000Z</when> +<gx:coord>-75.26374 40.057092 17.0</gx:coord> +<when>2013-07-25T20:10:44.000Z</when> +<gx:coord>-75.263751 40.057067 17.100000381469727</gx:coord> +<when>2013-07-25T20:10:45.000Z</when> +<gx:coord>-75.263756 40.057045 17.600000381469727</gx:coord> +<when>2013-07-25T20:10:46.000Z</when> +<gx:coord>-75.263744 40.057006 19.200000762939453</gx:coord> +<when>2013-07-25T20:10:47.000Z</when> +<gx:coord>-75.263737 40.056981 19.299999237060547</gx:coord> +<when>2013-07-25T20:10:48.000Z</when> +<gx:coord>-75.263749 40.056931 18.399999618530273</gx:coord> +<when>2013-07-25T20:10:49.000Z</when> +<gx:coord>-75.263737 40.056855 18.5</gx:coord> +<when>2013-07-25T20:10:50.000Z</when> +<gx:coord>-75.263716 40.05682 17.799999237060547</gx:coord> +<when>2013-07-25T20:10:51.000Z</when> +<gx:coord>-75.263683 40.056786 17.399999618530273</gx:coord> +<when>2013-07-25T20:10:52.000Z</when> +<gx:coord>-75.263659 40.056736 17.200000762939453</gx:coord> +<when>2013-07-25T20:10:53.000Z</when> +<gx:coord>-75.263647 40.056709 17.299999237060547</gx:coord> +<when>2013-07-25T20:10:54.000Z</when> +<gx:coord>-75.263636 40.056625 23.200000762939453</gx:coord> +<when>2013-07-25T20:10:57.000Z</when> +<gx:coord>-75.263595 40.056605 32.599998474121094</gx:coord> +<when>2013-07-25T20:10:58.000Z</when> +<gx:coord>-75.26358 40.056566 32.29999923706055</gx:coord> +<when>2013-07-25T20:10:59.000Z</when> +<gx:coord>-75.263568 40.056551 32.900001525878906</gx:coord> +<when>2013-07-25T20:11:00.000Z</when> +<gx:coord>-75.26354 40.056434 31.899999618530273</gx:coord> +<when>2013-07-25T20:11:01.000Z</when> +<gx:coord>-75.263527 40.056399 32.599998474121094</gx:coord> +<when>2013-07-25T20:11:02.000Z</when> +<gx:coord>-75.26351 40.056358 32.70000076293945</gx:coord> +<when>2013-07-25T20:11:03.000Z</when> +<gx:coord>-75.26348 40.056346 37.29999923706055</gx:coord> +<when>2013-07-25T20:11:04.000Z</when> +<gx:coord>-75.26346 40.056305 39.20000076293945</gx:coord> +<when>2013-07-25T20:11:05.000Z</when> +<gx:coord>-75.26344 40.056277 38.900001525878906</gx:coord> +<when>2013-07-25T20:11:06.000Z</when> +<gx:coord>-75.263418 40.056249 39.79999923706055</gx:coord> +<when>2013-07-25T20:11:07.000Z</when> +<gx:coord>-75.263395 40.056224 40.29999923706055</gx:coord> +<when>2013-07-25T20:11:08.000Z</when> +<gx:coord>-75.263372 40.056201 45.70000076293945</gx:coord> +<when>2013-07-25T20:11:09.000Z</when> +<gx:coord>-75.263347 40.056179 49.5</gx:coord> +<when>2013-07-25T20:11:10.000Z</when> +<gx:coord>-75.263322 40.056156 51.29999923706055</gx:coord> +<when>2013-07-25T20:11:11.000Z</when> +<gx:coord>-75.263301 40.056121 48.900001525878906</gx:coord> +<when>2013-07-25T20:11:12.000Z</when> +<gx:coord>-75.263281 40.056082 50.0</gx:coord> +<when>2013-07-25T20:11:13.000Z</when> +<gx:coord>-75.263261 40.056049 51.400001525878906</gx:coord> +<when>2013-07-25T20:11:14.000Z</when> +<gx:coord>-75.263239 40.05602 51.20000076293945</gx:coord> +<when>2013-07-25T20:11:15.000Z</when> +<gx:coord>-75.263218 40.05598 52.400001525878906</gx:coord> +<when>2013-07-25T20:11:16.000Z</when> +<gx:coord>-75.263194 40.055933 52.599998474121094</gx:coord> +<when>2013-07-25T20:11:17.000Z</when> +<gx:coord>-75.26317 40.055885 52.5</gx:coord> +<when>2013-07-25T20:11:18.000Z</when> +<gx:coord>-75.263111 40.055788 56.400001525878906</gx:coord> +<when>2013-07-25T20:11:19.000Z</when> +<gx:coord>-75.263096 40.055748 54.70000076293945</gx:coord> +<when>2013-07-25T20:11:20.000Z</when> +<gx:coord>-75.263075 40.055688 54.099998474121094</gx:coord> +<when>2013-07-25T20:11:21.000Z</when> +<gx:coord>-75.263043 40.055676 54.400001525878906</gx:coord> +<when>2013-07-25T20:11:22.000Z</when> +<gx:coord>-75.26301 40.055629 55.400001525878906</gx:coord> +<when>2013-07-25T20:11:23.000Z</when> +<gx:coord>-75.262984 40.055576 55.900001525878906</gx:coord> +<when>2013-07-25T20:11:24.000Z</when> +<gx:coord>-75.262953 40.055536 57.400001525878906</gx:coord> +<when>2013-07-25T20:11:25.000Z</when> +<gx:coord>-75.262922 40.055492 57.099998474121094</gx:coord> +<when>2013-07-25T20:11:26.000Z</when> +<gx:coord>-75.262894 40.05543 57.400001525878906</gx:coord> +<when>2013-07-25T20:11:27.000Z</when> +<gx:coord>-75.262869 40.05538 58.5</gx:coord> +<when>2013-07-25T20:11:28.000Z</when> +<gx:coord>-75.262835 40.055327 58.599998474121094</gx:coord> +<when>2013-07-25T20:11:29.000Z</when> +<gx:coord>-75.262825 40.055276 58.599998474121094</gx:coord> +<when>2013-07-25T20:11:30.000Z</when> +<gx:coord>-75.262838 40.055129 50.099998474121094</gx:coord> +<when>2013-07-25T20:11:31.000Z</when> +<gx:coord>-75.262793 40.055091 50.20000076293945</gx:coord> +<when>2013-07-25T20:11:32.000Z</when> +<gx:coord>-75.26275 40.055013 50.0</gx:coord> +<when>2013-07-25T20:11:33.000Z</when> +<gx:coord>-75.262738 40.054987 50.20000076293945</gx:coord> +<when>2013-07-25T20:11:34.000Z</when> +<gx:coord>-75.262695 40.054949 50.599998474121094</gx:coord> +<when>2013-07-25T20:11:35.000Z</when> +<gx:coord>-75.262676 40.054916 51.400001525878906</gx:coord> +<when>2013-07-25T20:11:36.000Z</when> +<gx:coord>-75.262684 40.054845 48.29999923706055</gx:coord> +<when>2013-07-25T20:11:37.000Z</when> +<gx:coord>-75.262681 40.054767 43.0</gx:coord> +<when>2013-07-25T20:11:38.000Z</when> +<gx:coord>-75.262654 40.054714 42.29999923706055</gx:coord> +<when>2013-07-25T20:11:39.000Z</when> +<gx:coord>-75.262632 40.054671 41.29999923706055</gx:coord> +<when>2013-07-25T20:11:40.000Z</when> +<gx:coord>-75.262608 40.054623 41.70000076293945</gx:coord> +<when>2013-07-25T20:11:41.000Z</when> +<gx:coord>-75.262582 40.054574 40.29999923706055</gx:coord> +<when>2013-07-25T20:11:42.000Z</when> +<gx:coord>-75.262545 40.054541 40.400001525878906</gx:coord> +<when>2013-07-25T20:11:43.000Z</when> +<gx:coord>-75.262521 40.054482 39.5</gx:coord> +<when>2013-07-25T20:11:44.000Z</when> +<gx:coord>-75.262479 40.054439 39.70000076293945</gx:coord> +<when>2013-07-25T20:11:45.000Z</when> +<gx:coord>-75.262448 40.054373 37.79999923706055</gx:coord> +<when>2013-07-25T20:11:46.000Z</when> +<gx:coord>-75.262415 40.05435 38.0</gx:coord> +<when>2013-07-25T20:11:47.000Z</when> +<gx:coord>-75.262375 40.054273 34.79999923706055</gx:coord> +<when>2013-07-25T20:11:48.000Z</when> +<gx:coord>-75.262358 40.054233 33.29999923706055</gx:coord> +<when>2013-07-25T20:11:49.000Z</when> +<gx:coord>-75.262349 40.054183 33.099998474121094</gx:coord> +<when>2013-07-25T20:11:50.000Z</when> +<gx:coord>-75.262301 40.054132 32.900001525878906</gx:coord> +<when>2013-07-25T20:11:51.000Z</when> +<gx:coord>-75.262273 40.05408 31.200000762939453</gx:coord> +<when>2013-07-25T20:11:52.000Z</when> +<gx:coord>-75.262248 40.054011 28.5</gx:coord> +<when>2013-07-25T20:11:53.000Z</when> +<gx:coord>-75.262208 40.053955 27.399999618530273</gx:coord> +<when>2013-07-25T20:11:54.000Z</when> +<gx:coord>-75.262162 40.053914 26.5</gx:coord> +<when>2013-07-25T20:11:55.000Z</when> +<gx:coord>-75.262135 40.053886 26.899999618530273</gx:coord> +<when>2013-07-25T20:11:56.000Z</when> +<gx:coord>-75.262094 40.05385 27.399999618530273</gx:coord> +<when>2013-07-25T20:11:57.000Z</when> +<gx:coord>-75.262036 40.053865 31.399999618530273</gx:coord> +<when>2013-07-25T20:11:58.000Z</when> +<gx:coord>-75.261995 40.053811 29.600000381469727</gx:coord> +<when>2013-07-25T20:11:59.000Z</when> +<gx:coord>-75.261959 40.053775 29.399999618530273</gx:coord> +<when>2013-07-25T20:12:00.000Z</when> +<gx:coord>-75.261913 40.053736 29.200000762939453</gx:coord> +<when>2013-07-25T20:12:01.000Z</when> +<gx:coord>-75.261872 40.053695 27.700000762939453</gx:coord> +<when>2013-07-25T20:12:02.000Z</when> +<gx:coord>-75.261825 40.053654 25.399999618530273</gx:coord> +<when>2013-07-25T20:12:03.000Z</when> +<gx:coord>-75.261787 40.053631 24.200000762939453</gx:coord> +<when>2013-07-25T20:12:04.000Z</when> +<gx:coord>-75.261725 40.053612 21.100000381469727</gx:coord> +<when>2013-07-25T20:12:05.000Z</when> +<gx:coord>-75.261685 40.053571 19.899999618530273</gx:coord> +<when>2013-07-25T20:12:06.000Z</when> +<gx:coord>-75.261643 40.053542 19.799999237060547</gx:coord> +<when>2013-07-25T20:12:07.000Z</when> +<gx:coord>-75.261607 40.053524 20.100000381469727</gx:coord> +<when>2013-07-25T20:12:08.000Z</when> +<gx:coord>-75.261572 40.053501 20.5</gx:coord> +<when>2013-07-25T20:12:09.000Z</when> +<gx:coord>-75.261537 40.053469 20.200000762939453</gx:coord> +<when>2013-07-25T20:12:10.000Z</when> +<gx:coord>-75.261504 40.053434 19.899999618530273</gx:coord> +<when>2013-07-25T20:12:11.000Z</when> +<gx:coord>-75.261453 40.053425 20.299999237060547</gx:coord> +<when>2013-07-25T20:12:12.000Z</when> +<gx:coord>-75.26139 40.053357 22.0</gx:coord> +<when>2013-07-25T20:12:13.000Z</when> +<gx:coord>-75.261344 40.053316 21.600000381469727</gx:coord> +<when>2013-07-25T20:12:14.000Z</when> +<gx:coord>-75.26129 40.053278 21.299999237060547</gx:coord> +<when>2013-07-25T20:12:15.000Z</when> +<gx:coord>-75.261244 40.053241 21.799999237060547</gx:coord> +<when>2013-07-25T20:12:16.000Z</when> +<gx:coord>-75.261197 40.053209 21.600000381469727</gx:coord> +<when>2013-07-25T20:12:17.000Z</when> +<gx:coord>-75.261145 40.053167 22.399999618530273</gx:coord> +<when>2013-07-25T20:12:18.000Z</when> +<gx:coord>-75.261099 40.05313 22.700000762939453</gx:coord> +<when>2013-07-25T20:12:19.000Z</when> +<gx:coord>-75.261054 40.053101 21.700000762939453</gx:coord> +<when>2013-07-25T20:12:20.000Z</when> +<gx:coord>-75.261017 40.053069 20.100000381469727</gx:coord> +<when>2013-07-25T20:12:21.000Z</when> +<gx:coord>-75.26097 40.053044 19.700000762939453</gx:coord> +<when>2013-07-25T20:12:22.000Z</when> +<gx:coord>-75.260926 40.053012 19.899999618530273</gx:coord> +<when>2013-07-25T20:12:23.000Z</when> +<gx:coord>-75.260881 40.052981 20.200000762939453</gx:coord> +<when>2013-07-25T20:12:24.000Z</when> +<gx:coord>-75.260842 40.052943 19.5</gx:coord> +<when>2013-07-25T20:12:25.000Z</when> +<gx:coord>-75.260794 40.052913 19.600000381469727</gx:coord> +<when>2013-07-25T20:12:26.000Z</when> +<gx:coord>-75.260748 40.052902 21.299999237060547</gx:coord> +<when>2013-07-25T20:12:27.000Z</when> +<gx:coord>-75.260725 40.052884 20.0</gx:coord> +<when>2013-07-25T20:12:28.000Z</when> +<gx:coord>-75.260689 40.052865 20.200000762939453</gx:coord> +<when>2013-07-25T20:12:29.000Z</when> +<gx:coord>-75.260614 40.052752 30.0</gx:coord> +<when>2013-07-25T20:12:30.000Z</when> +<gx:coord>-75.260564 40.052702 32.599998474121094</gx:coord> +<when>2013-07-25T20:12:31.000Z</when> +<gx:coord>-75.260519 40.052655 33.79999923706055</gx:coord> +<when>2013-07-25T20:12:34.000Z</when> +<gx:coord>-75.260478 40.052636 36.099998474121094</gx:coord> +<when>2013-07-25T20:12:35.000Z</when> +<gx:coord>-75.260402 40.052622 34.79999923706055</gx:coord> +<when>2013-07-25T20:12:36.000Z</when> +<gx:coord>-75.260356 40.052611 36.0</gx:coord> +<when>2013-07-25T20:12:37.000Z</when> +<gx:coord>-75.260317 40.052584 35.900001525878906</gx:coord> +<when>2013-07-25T20:12:38.001Z</when> +<gx:coord>-75.260277 40.052575 36.5</gx:coord> +<when>2013-07-25T20:12:39.000Z</when> +<gx:coord>-75.260242 40.052555 35.400001525878906</gx:coord> +<when>2013-07-25T20:12:40.000Z</when> +<gx:coord>-75.260196 40.052533 34.70000076293945</gx:coord> +<when>2013-07-25T20:12:41.000Z</when> +<gx:coord>-75.260157 40.052524 35.20000076293945</gx:coord> +<when>2013-07-25T20:12:42.000Z</when> +<gx:coord>-75.260111 40.052444 34.599998474121094</gx:coord> +<when>2013-07-25T20:12:43.001Z</when> +<gx:coord>-75.260073 40.052411 35.20000076293945</gx:coord> +<when>2013-07-25T20:12:44.000Z</when> +<gx:coord>-75.260016 40.05238 35.400001525878906</gx:coord> +<when>2013-07-25T20:12:45.000Z</when> +<gx:coord>-75.259961 40.052318 35.599998474121094</gx:coord> +<when>2013-07-25T20:12:46.000Z</when> +<gx:coord>-75.259906 40.052315 34.70000076293945</gx:coord> +<when>2013-07-25T20:12:47.000Z</when> +<gx:coord>-75.259863 40.052309 35.400001525878906</gx:coord> +<when>2013-07-25T20:12:48.000Z</when> +<gx:coord>-75.259836 40.052262 31.0</gx:coord> +<when>2013-07-25T20:12:49.000Z</when> +<gx:coord>-75.259798 40.052219 30.200000762939453</gx:coord> +<when>2013-07-25T20:12:50.000Z</when> +<gx:coord>-75.259741 40.052157 34.099998474121094</gx:coord> +<when>2013-07-25T20:12:51.000Z</when> +<gx:coord>-75.259688 40.05212 37.0</gx:coord> +<when>2013-07-25T20:12:53.000Z</when> +<gx:coord>-75.259644 40.052096 33.400001525878906</gx:coord> +<when>2013-07-25T20:12:54.000Z</when> +<gx:coord>-75.259616 40.052042 32.79999923706055</gx:coord> +<when>2013-07-25T20:12:55.000Z</when> +<gx:coord>-75.259578 40.052016 33.5</gx:coord> +<when>2013-07-25T20:12:56.000Z</when> +<gx:coord>-75.259514 40.051979 32.20000076293945</gx:coord> +<when>2013-07-25T20:12:57.000Z</when> +<gx:coord>-75.259466 40.051904 32.29999923706055</gx:coord> +<when>2013-07-25T20:12:58.000Z</when> +<gx:coord>-75.259421 40.051829 34.29999923706055</gx:coord> +<when>2013-07-25T20:12:59.000Z</when> +<gx:coord>-75.259388 40.051848 31.600000381469727</gx:coord> +<when>2013-07-25T20:12:59.999Z</when> +<gx:coord>-75.259348 40.051815 31.799999237060547</gx:coord> +<when>2013-07-25T20:13:01.000Z</when> +<gx:coord>-75.259312 40.051779 29.200000762939453</gx:coord> +<when>2013-07-25T20:13:02.000Z</when> +<gx:coord>-75.259268 40.051744 28.799999237060547</gx:coord> +<when>2013-07-25T20:13:03.001Z</when> +<gx:coord>-75.259227 40.051713 28.5</gx:coord> +<when>2013-07-25T20:13:04.000Z</when> +<gx:coord>-75.259184 40.05167 28.200000762939453</gx:coord> +<when>2013-07-25T20:13:05.000Z</when> +<gx:coord>-75.259135 40.051656 29.899999618530273</gx:coord> +<when>2013-07-25T20:13:06.000Z</when> +<gx:coord>-75.25909 40.05162 30.700000762939453</gx:coord> +<when>2013-07-25T20:13:07.000Z</when> +<gx:coord>-75.25905 40.051596 31.299999237060547</gx:coord> +<when>2013-07-25T20:13:08.000Z</when> +<gx:coord>-75.259003 40.051569 31.399999618530273</gx:coord> +<when>2013-07-25T20:13:09.000Z</when> +<gx:coord>-75.258948 40.051571 36.099998474121094</gx:coord> +<when>2013-07-25T20:13:10.000Z</when> +<gx:coord>-75.258902 40.051569 36.5</gx:coord> +<when>2013-07-25T20:13:11.000Z</when> +<gx:coord>-75.25887 40.051525 35.29999923706055</gx:coord> +<when>2013-07-25T20:13:12.000Z</when> +<gx:coord>-75.258828 40.051495 35.400001525878906</gx:coord> +<when>2013-07-25T20:13:13.000Z</when> +<gx:coord>-75.258792 40.051469 35.400001525878906</gx:coord> +<when>2013-07-25T20:13:14.000Z</when> +<gx:coord>-75.258754 40.051442 34.79999923706055</gx:coord> +<when>2013-07-25T20:13:15.000Z</when> +<gx:coord>-75.258716 40.051416 35.29999923706055</gx:coord> +<when>2013-07-25T20:13:16.000Z</when> +<gx:coord>-75.25867 40.051385 35.29999923706055</gx:coord> +<when>2013-07-25T20:13:17.000Z</when> +<gx:coord>-75.258627 40.051358 34.599998474121094</gx:coord> +<when>2013-07-25T20:13:18.000Z</when> +<gx:coord>-75.258581 40.051341 36.20000076293945</gx:coord> +<when>2013-07-25T20:13:19.000Z</when> +<gx:coord>-75.258539 40.051312 36.0</gx:coord> +<when>2013-07-25T20:13:20.000Z</when> +<gx:coord>-75.258502 40.051285 36.20000076293945</gx:coord> +<when>2013-07-25T20:13:21.001Z</when> +<gx:coord>-75.258469 40.051261 36.0</gx:coord> +<when>2013-07-25T20:13:22.000Z</when> +<gx:coord>-75.258444 40.051236 35.900001525878906</gx:coord> +<when>2013-07-25T20:13:23.000Z</when> +<gx:coord>-75.258416 40.051211 35.79999923706055</gx:coord> +<when>2013-07-25T20:13:24.000Z</when> +<gx:coord>-75.258381 40.051168 33.0</gx:coord> +<when>2013-07-25T20:13:25.001Z</when> +<gx:coord>-75.258349 40.051141 33.0</gx:coord> +<when>2013-07-25T20:13:26.000Z</when> +<gx:coord>-75.258274 40.051026 29.399999618530273</gx:coord> +<when>2013-07-25T20:13:27.000Z</when> +<gx:coord>-75.258224 40.050997 29.200000762939453</gx:coord> +<when>2013-07-25T20:13:28.000Z</when> +<gx:coord>-75.258178 40.05097 29.200000762939453</gx:coord> +<when>2013-07-25T20:13:29.000Z</when> +<gx:coord>-75.258164 40.050971 27.600000381469727</gx:coord> +<when>2013-07-25T20:13:30.000Z</when> +<gx:coord>-75.258129 40.050933 28.0</gx:coord> +<when>2013-07-25T20:13:31.000Z</when> +<gx:coord>-75.258084 40.050894 29.799999237060547</gx:coord> +<when>2013-07-25T20:13:32.000Z</when> +<gx:coord>-75.258057 40.050865 29.899999618530273</gx:coord> +<when>2013-07-25T20:13:33.000Z</when> +<gx:coord>-75.258016 40.050842 30.700000762939453</gx:coord> +<when>2013-07-25T20:13:34.000Z</when> +<gx:coord>-75.257965 40.050798 33.400001525878906</gx:coord> +<when>2013-07-25T20:13:35.000Z</when> +<gx:coord>-75.257934 40.050765 32.0</gx:coord> +<when>2013-07-25T20:13:36.000Z</when> +<gx:coord>-75.257899 40.050728 31.399999618530273</gx:coord> +<when>2013-07-25T20:13:37.000Z</when> +<gx:coord>-75.257863 40.050694 32.70000076293945</gx:coord> +<when>2013-07-25T20:13:38.000Z</when> +<gx:coord>-75.257805 40.050645 36.400001525878906</gx:coord> +<when>2013-07-25T20:13:39.000Z</when> +<gx:coord>-75.257755 40.05061 40.900001525878906</gx:coord> +<when>2013-07-25T20:13:40.000Z</when> +<gx:coord>-75.257718 40.050599 38.099998474121094</gx:coord> +<when>2013-07-25T20:13:41.000Z</when> +<gx:coord>-75.25767 40.050553 39.900001525878906</gx:coord> +<when>2013-07-25T20:13:42.000Z</when> +<gx:coord>-75.257645 40.050519 39.099998474121094</gx:coord> +<when>2013-07-25T20:13:42.999Z</when> +<gx:coord>-75.257602 40.050485 40.79999923706055</gx:coord> +<when>2013-07-25T20:13:44.000Z</when> +<gx:coord>-75.257539 40.050439 41.0</gx:coord> +<when>2013-07-25T20:13:45.000Z</when> +<gx:coord>-75.257513 40.050426 39.79999923706055</gx:coord> +<when>2013-07-25T20:13:46.000Z</when> +<gx:coord>-75.257469 40.050417 40.20000076293945</gx:coord> +<when>2013-07-25T20:13:47.000Z</when> +<gx:coord>-75.25743 40.050404 39.5</gx:coord> +<when>2013-07-25T20:13:48.000Z</when> +<gx:coord>-75.257404 40.050388 38.29999923706055</gx:coord> +<when>2013-07-25T20:13:49.000Z</when> +<gx:coord>-75.25736 40.050358 39.099998474121094</gx:coord> +<when>2013-07-25T20:13:50.000Z</when> +<gx:coord>-75.257325 40.050324 38.20000076293945</gx:coord> +<when>2013-07-25T20:13:51.000Z</when> +<gx:coord>-75.257282 40.050291 38.70000076293945</gx:coord> +<when>2013-07-25T20:13:52.000Z</when> +<gx:coord>-75.257214 40.050207 37.70000076293945</gx:coord> +<when>2013-07-25T20:13:53.000Z</when> +<gx:coord>-75.257164 40.050208 36.79999923706055</gx:coord> +<when>2013-07-25T20:13:54.000Z</when> +<gx:coord>-75.257117 40.050203 37.099998474121094</gx:coord> +<when>2013-07-25T20:13:55.000Z</when> +<gx:coord>-75.257077 40.05013 40.099998474121094</gx:coord> +<when>2013-07-25T20:13:56.000Z</when> +<gx:coord>-75.257054 40.050163 36.79999923706055</gx:coord> +<when>2013-07-25T20:13:57.000Z</when> +<gx:coord>-75.257019 40.050198 35.900001525878906</gx:coord> +<when>2013-07-25T20:14:01.000Z</when> +<gx:coord>-75.257059 40.050222 30.799999237060547</gx:coord> +<when>2013-07-25T20:14:02.000Z</when> +<gx:coord>-75.256933 40.050103 30.200000762939453</gx:coord> +<when>2013-07-25T20:14:03.000Z</when> +<gx:coord>-75.256893 40.05007 29.899999618530273</gx:coord> +<when>2013-07-25T20:14:04.000Z</when> +<gx:coord>-75.256852 40.050036 29.799999237060547</gx:coord> +<when>2013-07-25T20:14:05.000Z</when> +<gx:coord>-75.256831 40.050002 28.200000762939453</gx:coord> +<when>2013-07-25T20:14:06.000Z</when> +<gx:coord>-75.2568 40.049972 27.100000381469727</gx:coord> +<when>2013-07-25T20:14:07.000Z</when> +<gx:coord>-75.256766 40.049942 26.600000381469727</gx:coord> +<when>2013-07-25T20:14:08.000Z</when> +<gx:coord>-75.256728 40.049913 26.200000762939453</gx:coord> +<when>2013-07-25T20:14:09.000Z</when> +<gx:coord>-75.256692 40.049885 26.200000762939453</gx:coord> +<when>2013-07-25T20:14:10.000Z</when> +<gx:coord>-75.256657 40.04986 24.200000762939453</gx:coord> +<when>2013-07-25T20:14:11.000Z</when> +<gx:coord>-75.25662 40.049837 23.899999618530273</gx:coord> +<when>2013-07-25T20:14:12.000Z</when> +<gx:coord>-75.25658 40.049813 24.899999618530273</gx:coord> +<when>2013-07-25T20:14:13.000Z</when> +<gx:coord>-75.256541 40.049789 24.100000381469727</gx:coord> +<when>2013-07-25T20:14:14.000Z</when> +<gx:coord>-75.256499 40.049758 24.100000381469727</gx:coord> +<when>2013-07-25T20:14:15.000Z</when> +<gx:coord>-75.256459 40.049727 23.200000762939453</gx:coord> +<when>2013-07-25T20:14:16.000Z</when> +<gx:coord>-75.256418 40.049692 22.600000381469727</gx:coord> +<when>2013-07-25T20:14:17.000Z</when> +<gx:coord>-75.256378 40.049659 21.899999618530273</gx:coord> +<when>2013-07-25T20:14:18.000Z</when> +<gx:coord>-75.256337 40.049626 21.600000381469727</gx:coord> +<when>2013-07-25T20:14:19.000Z</when> +<gx:coord>-75.256296 40.049593 21.799999237060547</gx:coord> +<when>2013-07-25T20:14:20.000Z</when> +<gx:coord>-75.256254 40.049559 21.799999237060547</gx:coord> +<when>2013-07-25T20:14:21.000Z</when> +<gx:coord>-75.256215 40.049525 21.0</gx:coord> +<when>2013-07-25T20:14:22.000Z</when> +<gx:coord>-75.256176 40.049489 20.700000762939453</gx:coord> +<when>2013-07-25T20:14:23.000Z</when> +<gx:coord>-75.256137 40.049454 20.899999618530273</gx:coord> +<when>2013-07-25T20:14:24.000Z</when> +<gx:coord>-75.256097 40.04942 20.0</gx:coord> +<when>2013-07-25T20:14:25.000Z</when> +<gx:coord>-75.256057 40.049391 21.600000381469727</gx:coord> +<when>2013-07-25T20:14:26.000Z</when> +<gx:coord>-75.256015 40.049362 21.399999618530273</gx:coord> +<when>2013-07-25T20:14:27.000Z</when> +<gx:coord>-75.255976 40.049333 20.200000762939453</gx:coord> +<when>2013-07-25T20:14:28.000Z</when> +<gx:coord>-75.255934 40.049306 19.600000381469727</gx:coord> +<when>2013-07-25T20:14:29.000Z</when> +<gx:coord>-75.255893 40.049281 19.600000381469727</gx:coord> +<when>2013-07-25T20:14:30.000Z</when> +<gx:coord>-75.255851 40.049252 18.700000762939453</gx:coord> +<when>2013-07-25T20:14:31.000Z</when> +<gx:coord>-75.25581 40.049223 17.5</gx:coord> +<when>2013-07-25T20:14:32.000Z</when> +<gx:coord>-75.25577 40.049192 17.0</gx:coord> +<when>2013-07-25T20:14:33.000Z</when> +<gx:coord>-75.255731 40.049165 18.100000381469727</gx:coord> +<when>2013-07-25T20:14:34.000Z</when> +<gx:coord>-75.25569 40.049141 19.100000381469727</gx:coord> +<when>2013-07-25T20:14:35.000Z</when> +<gx:coord>-75.255648 40.049117 19.299999237060547</gx:coord> +<when>2013-07-25T20:14:36.000Z</when> +<gx:coord>-75.255607 40.049091 19.100000381469727</gx:coord> +<when>2013-07-25T20:14:37.000Z</when> +<gx:coord>-75.255569 40.049065 19.399999618530273</gx:coord> +<when>2013-07-25T20:14:38.000Z</when> +<gx:coord>-75.25553 40.049038 19.0</gx:coord> +<when>2013-07-25T20:14:39.000Z</when> +<gx:coord>-75.255491 40.049008 19.899999618530273</gx:coord> +<when>2013-07-25T20:14:40.000Z</when> +<gx:coord>-75.255449 40.048979 19.399999618530273</gx:coord> +<when>2013-07-25T20:14:41.000Z</when> +<gx:coord>-75.255412 40.04895 18.200000762939453</gx:coord> +<when>2013-07-25T20:14:42.000Z</when> +<gx:coord>-75.255373 40.048919 17.299999237060547</gx:coord> +<when>2013-07-25T20:14:43.000Z</when> +<gx:coord>-75.255334 40.048892 19.200000762939453</gx:coord> +<when>2013-07-25T20:14:44.000Z</when> +<gx:coord>-75.255294 40.048866 21.0</gx:coord> +<when>2013-07-25T20:14:45.000Z</when> +<gx:coord>-75.255257 40.048846 23.100000381469727</gx:coord> +<when>2013-07-25T20:14:46.000Z</when> +<gx:coord>-75.255217 40.048824 22.700000762939453</gx:coord> +<when>2013-07-25T20:14:47.000Z</when> +<gx:coord>-75.255181 40.0488 22.600000381469727</gx:coord> +<when>2013-07-25T20:14:48.000Z</when> +<gx:coord>-75.255143 40.048772 22.100000381469727</gx:coord> +<when>2013-07-25T20:14:49.000Z</when> +<gx:coord>-75.255109 40.048744 22.0</gx:coord> +<when>2013-07-25T20:14:50.000Z</when> +<gx:coord>-75.255073 40.048714 22.100000381469727</gx:coord> +<when>2013-07-25T20:14:51.000Z</when> +<gx:coord>-75.255035 40.048683 22.0</gx:coord> +<when>2013-07-25T20:14:52.000Z</when> +<gx:coord>-75.254995 40.04865 21.799999237060547</gx:coord> +<when>2013-07-25T20:14:53.000Z</when> +<gx:coord>-75.254958 40.048619 21.5</gx:coord> +<when>2013-07-25T20:14:54.000Z</when> +<gx:coord>-75.254922 40.048585 21.299999237060547</gx:coord> +<when>2013-07-25T20:14:55.000Z</when> +<gx:coord>-75.254887 40.048551 20.0</gx:coord> +<when>2013-07-25T20:14:56.000Z</when> +<gx:coord>-75.254848 40.048518 20.899999618530273</gx:coord> +<when>2013-07-25T20:14:57.000Z</when> +<gx:coord>-75.254813 40.048496 20.299999237060547</gx:coord> +<when>2013-07-25T20:14:58.000Z</when> +<gx:coord>-75.254776 40.048477 18.899999618530273</gx:coord> +<when>2013-07-25T20:14:59.000Z</when> +<gx:coord>-75.254737 40.048456 18.399999618530273</gx:coord> +<when>2013-07-25T20:15:00.000Z</when> +<gx:coord>-75.254693 40.048433 18.700000762939453</gx:coord> +<when>2013-07-25T20:15:01.000Z</when> +<gx:coord>-75.254651 40.048407 17.600000381469727</gx:coord> +<when>2013-07-25T20:15:02.000Z</when> +<gx:coord>-75.254606 40.048376 17.100000381469727</gx:coord> +<when>2013-07-25T20:15:03.000Z</when> +<gx:coord>-75.254562 40.048346 17.0</gx:coord> +<when>2013-07-25T20:15:04.000Z</when> +<gx:coord>-75.254517 40.048315 16.799999237060547</gx:coord> +<when>2013-07-25T20:15:05.000Z</when> +<gx:coord>-75.254475 40.048288 16.899999618530273</gx:coord> +<when>2013-07-25T20:15:06.000Z</when> +<gx:coord>-75.254431 40.04826 16.100000381469727</gx:coord> +<when>2013-07-25T20:15:07.000Z</when> +<gx:coord>-75.254387 40.048232 16.200000762939453</gx:coord> +<when>2013-07-25T20:15:08.000Z</when> +<gx:coord>-75.254342 40.048204 16.899999618530273</gx:coord> +<when>2013-07-25T20:15:09.000Z</when> +<gx:coord>-75.254299 40.048176 17.600000381469727</gx:coord> +<when>2013-07-25T20:15:10.000Z</when> +<gx:coord>-75.254256 40.048146 17.200000762939453</gx:coord> +<when>2013-07-25T20:15:11.000Z</when> +<gx:coord>-75.254215 40.048117 17.100000381469727</gx:coord> +<when>2013-07-25T20:15:12.000Z</when> +<gx:coord>-75.254173 40.048087 16.700000762939453</gx:coord> +<when>2013-07-25T20:15:13.000Z</when> +<gx:coord>-75.254136 40.048061 16.700000762939453</gx:coord> +<when>2013-07-25T20:15:14.000Z</when> +<gx:coord>-75.254097 40.048035 16.399999618530273</gx:coord> +<when>2013-07-25T20:15:15.000Z</when> +<gx:coord>-75.254058 40.048009 16.100000381469727</gx:coord> +<when>2013-07-25T20:15:15.999Z</when> +<gx:coord>-75.254024 40.047985 15.0</gx:coord> +<when>2013-07-25T20:15:17.000Z</when> +<gx:coord>-75.253986 40.047963 15.399999618530273</gx:coord> +<when>2013-07-25T20:15:18.000Z</when> +<gx:coord>-75.25395 40.047939 14.199999809265137</gx:coord> +<when>2013-07-25T20:15:19.000Z</when> +<gx:coord>-75.253916 40.047919 12.5</gx:coord> +<when>2013-07-25T20:15:20.000Z</when> +<gx:coord>-75.253881 40.0479 10.699999809265137</gx:coord> +<when>2013-07-25T20:15:21.000Z</when> +<gx:coord>-75.253866 40.047883 10.899999618530273</gx:coord> +<when>2013-07-25T20:15:22.000Z</when> +<gx:coord>-75.253846 40.047861 11.0</gx:coord> +<when>2013-07-25T20:15:23.000Z</when> +<gx:coord>-75.253825 40.047844 11.100000381469727</gx:coord> +<when>2013-07-25T20:15:24.000Z</when> +<gx:coord>-75.253797 40.047804 10.100000381469727</gx:coord> +<when>2013-07-25T20:15:25.003Z</when> +<gx:coord>-75.25377 40.047778 10.300000190734863</gx:coord> +<when>2013-07-25T20:15:26.000Z</when> +<gx:coord>-75.253735 40.047742 10.5</gx:coord> +<when>2013-07-25T20:15:27.000Z</when> +<gx:coord>-75.253691 40.047677 8.300000190734863</gx:coord> +<when>2013-07-25T20:15:28.000Z</when> +<gx:coord>-75.253645 40.047652 8.300000190734863</gx:coord> +<when>2013-07-25T20:15:29.000Z</when> +<gx:coord>-75.253604 40.047622 8.100000381469727</gx:coord> +<when>2013-07-25T20:15:30.000Z</when> +<gx:coord>-75.253556 40.047595 8.399999618530273</gx:coord> +<when>2013-07-25T20:15:31.000Z</when> +<gx:coord>-75.25352 40.047568 8.0</gx:coord> +<when>2013-07-25T20:15:31.999Z</when> +<gx:coord>-75.25348 40.047542 8.100000381469727</gx:coord> +<when>2013-07-25T20:15:33.000Z</when> +<gx:coord>-75.253444 40.047514 6.599999904632568</gx:coord> +<when>2013-07-25T20:15:34.000Z</when> +<gx:coord>-75.253402 40.047496 6.599999904632568</gx:coord> +<when>2013-07-25T20:15:35.000Z</when> +<gx:coord>-75.253356 40.047472 6.699999809265137</gx:coord> +<when>2013-07-25T20:15:36.000Z</when> +<gx:coord>-75.253327 40.047429 7.099999904632568</gx:coord> +<when>2013-07-25T20:15:37.000Z</when> +<gx:coord>-75.253295 40.047395 7.800000190734863</gx:coord> +<when>2013-07-25T20:15:38.000Z</when> +<gx:coord>-75.253239 40.04734 6.199999809265137</gx:coord> +<when>2013-07-25T20:15:39.000Z</when> +<gx:coord>-75.253197 40.047293 5.599999904632568</gx:coord> +<when>2013-07-25T20:15:40.000Z</when> +<gx:coord>-75.253156 40.047246 5.400000095367432</gx:coord> +<when>2013-07-25T20:15:41.000Z</when> +<gx:coord>-75.253105 40.047203 5.599999904632568</gx:coord> +<when>2013-07-25T20:15:42.000Z</when> +<gx:coord>-75.253056 40.047162 5.199999809265137</gx:coord> +<when>2013-07-25T20:15:43.000Z</when> +<gx:coord>-75.253004 40.047126 5.300000190734863</gx:coord> +<when>2013-07-25T20:15:44.000Z</when> +<gx:coord>-75.252951 40.047088 5.800000190734863</gx:coord> +<when>2013-07-25T20:15:45.000Z</when> +<gx:coord>-75.252902 40.047056 6.0</gx:coord> +<when>2013-07-25T20:15:46.000Z</when> +<gx:coord>-75.252853 40.047032 5.800000190734863</gx:coord> +<when>2013-07-25T20:15:46.999Z</when> +<gx:coord>-75.252805 40.047003 5.900000095367432</gx:coord> +<when>2013-07-25T20:15:48.000Z</when> +<gx:coord>-75.252741 40.046958 5.800000190734863</gx:coord> +<when>2013-07-25T20:15:49.000Z</when> +<gx:coord>-75.252699 40.046932 6.0</gx:coord> +<when>2013-07-25T20:15:50.000Z</when> +<gx:coord>-75.252653 40.046896 5.900000095367432</gx:coord> +<when>2013-07-25T20:15:51.000Z</when> +<gx:coord>-75.252585 40.046852 9.199999809265137</gx:coord> +<when>2013-07-25T20:15:52.000Z</when> +<gx:coord>-75.25253 40.046816 9.800000190734863</gx:coord> +<when>2013-07-25T20:15:53.000Z</when> +<gx:coord>-75.25248 40.046777 9.399999618530273</gx:coord> +<when>2013-07-25T20:15:54.000Z</when> +<gx:coord>-75.252442 40.046755 9.199999809265137</gx:coord> +<when>2013-07-25T20:15:55.000Z</when> +<gx:coord>-75.252395 40.046721 9.300000190734863</gx:coord> +<when>2013-07-25T20:15:56.000Z</when> +<gx:coord>-75.252366 40.046714 8.699999809265137</gx:coord> +<when>2013-07-25T20:15:57.000Z</when> +<gx:coord>-75.25232 40.046712 7.5</gx:coord> +<when>2013-07-25T20:15:58.000Z</when> +<gx:coord>-75.252283 40.046693 6.400000095367432</gx:coord> +<when>2013-07-25T20:15:59.000Z</when> +<gx:coord>-75.25224 40.046686 6.099999904632568</gx:coord> +<when>2013-07-25T20:16:00.000Z</when> +<gx:coord>-75.25217 40.046606 8.899999618530273</gx:coord> +<when>2013-07-25T20:16:01.000Z</when> +<gx:coord>-75.252114 40.046568 10.800000190734863</gx:coord> +<when>2013-07-25T20:16:03.000Z</when> +<gx:coord>-75.252068 40.04656 12.800000190734863</gx:coord> +<when>2013-07-25T20:16:04.000Z</when> +<gx:coord>-75.252037 40.04654 13.300000190734863</gx:coord> +<when>2013-07-25T20:16:06.000Z</when> +<gx:coord>-75.251983 40.046526 13.800000190734863</gx:coord> +<when>2013-07-25T20:16:07.000Z</when> +<gx:coord>-75.251909 40.046491 14.5</gx:coord> +<when>2013-07-25T20:16:08.000Z</when> +<gx:coord>-75.251851 40.04649 15.100000381469727</gx:coord> +<when>2013-07-25T20:16:09.001Z</when> +<gx:coord>-75.251803 40.046472 15.800000190734863</gx:coord> +<when>2013-07-25T20:16:10.000Z</when> +<gx:coord>-75.251748 40.046445 14.600000381469727</gx:coord> +<when>2013-07-25T20:16:11.000Z</when> +<gx:coord>-75.251702 40.046416 13.800000190734863</gx:coord> +<when>2013-07-25T20:16:12.000Z</when> +<gx:coord>-75.251663 40.046359 11.199999809265137</gx:coord> +<when>2013-07-25T20:16:13.000Z</when> +<gx:coord>-75.251612 40.046329 9.800000190734863</gx:coord> +<when>2013-07-25T20:16:14.000Z</when> +<gx:coord>-75.251564 40.046295 9.300000190734863</gx:coord> +<when>2013-07-25T20:16:15.000Z</when> +<gx:coord>-75.251525 40.046276 8.5</gx:coord> +<when>2013-07-25T20:16:16.000Z</when> +<gx:coord>-75.251513 40.046259 8.899999618530273</gx:coord> +<when>2013-07-25T20:16:18.001Z</when> +<gx:coord>-75.251462 40.046256 9.199999809265137</gx:coord> +<when>2013-07-25T20:16:19.000Z</when> +<gx:coord>-75.25145 40.046286 9.5</gx:coord> +<when>2013-07-25T20:16:20.000Z</when> +<gx:coord>-75.25135 40.04618 12.800000190734863</gx:coord> +<when>2013-07-25T20:16:21.000Z</when> +<gx:coord>-75.251292 40.046189 15.300000190734863</gx:coord> +<when>2013-07-25T20:16:22.000Z</when> +<gx:coord>-75.251237 40.04615 14.800000190734863</gx:coord> +<when>2013-07-25T20:16:23.000Z</when> +<gx:coord>-75.251197 40.046114 15.0</gx:coord> +<when>2013-07-25T20:16:24.000Z</when> +<gx:coord>-75.251146 40.04607 15.800000190734863</gx:coord> +<when>2013-07-25T20:16:25.000Z</when> +<gx:coord>-75.251105 40.046004 16.399999618530273</gx:coord> +<when>2013-07-25T20:16:26.000Z</when> +<gx:coord>-75.251058 40.045947 16.100000381469727</gx:coord> +<when>2013-07-25T20:16:27.000Z</when> +<gx:coord>-75.251012 40.045884 16.200000762939453</gx:coord> +<when>2013-07-25T20:16:28.000Z</when> +<gx:coord>-75.250961 40.045812 15.800000190734863</gx:coord> +<when>2013-07-25T20:16:29.000Z</when> +<gx:coord>-75.250914 40.045744 15.5</gx:coord> +<when>2013-07-25T20:16:30.000Z</when> +<gx:coord>-75.25086 40.045674 16.799999237060547</gx:coord> +<when>2013-07-25T20:16:31.000Z</when> +<gx:coord>-75.250803 40.045595 17.0</gx:coord> +<when>2013-07-25T20:16:32.000Z</when> +<gx:coord>-75.250739 40.045521 16.899999618530273</gx:coord> +<when>2013-07-25T20:16:33.000Z</when> +<gx:coord>-75.250664 40.045402 13.100000381469727</gx:coord> +<when>2013-07-25T20:16:34.000Z</when> +<gx:coord>-75.250573 40.045351 11.600000381469727</gx:coord> +<when>2013-07-25T20:16:35.000Z</when> +<gx:coord>-75.250516 40.045284 9.5</gx:coord> +<when>2013-07-25T20:16:36.000Z</when> +<gx:coord>-75.25045 40.045224 7.699999809265137</gx:coord> +<when>2013-07-25T20:16:37.000Z</when> +<gx:coord>-75.250399 40.045181 6.0</gx:coord> +<when>2013-07-25T20:16:38.000Z</when> +<gx:coord>-75.250353 40.045136 4.900000095367432</gx:coord> +<when>2013-07-25T20:16:39.000Z</when> +<gx:coord>-75.250309 40.045098 4.099999904632568</gx:coord> +<when>2013-07-25T20:16:40.000Z</when> +<gx:coord>-75.250268 40.045061 3.0</gx:coord> +<when>2013-07-25T20:16:41.000Z</when> +<gx:coord>-75.250227 40.045025 2.200000047683716</gx:coord> +<when>2013-07-25T20:16:42.000Z</when> +<gx:coord>-75.25018 40.044989 1.7000000476837158</gx:coord> +<when>2013-07-25T20:16:43.000Z</when> +<gx:coord>-75.250143 40.044963 1.7000000476837158</gx:coord> +<when>2013-07-25T20:16:44.000Z</when> +<gx:coord>-75.250117 40.044936 1.0</gx:coord> +<when>2013-07-25T20:16:45.000Z</when> +<gx:coord>-75.250099 40.044908 0.10000000149011612</gx:coord> +<when>2013-07-25T20:16:46.000Z</when> +<gx:coord>-75.250085 40.044889 -0.20000000298023224</gx:coord> +<when>2013-07-25T20:16:47.000Z</when> +<gx:coord>-75.250071 40.044868 -0.8999999761581421</gx:coord> +<when>2013-07-25T20:16:48.000Z</when> +<gx:coord>-75.250049 40.044845 -1.399999976158142</gx:coord> +<when>2013-07-25T20:16:49.000Z</when> +<gx:coord>-75.250049 40.044809 -2.0</gx:coord> +<when>2013-07-25T20:16:50.000Z</when> +<gx:coord>-75.250043 40.044786 -3.4000000953674316</gx:coord> +<when>2013-07-25T20:16:51.000Z</when> +<gx:coord>-75.250017 40.044727 -5.599999904632568</gx:coord> +<when>2013-07-25T20:16:54.000Z</when> +<gx:coord>-75.250049 40.044709 -8.300000190734863</gx:coord> +<when>2013-07-25T20:16:55.000Z</when> +<gx:coord>-75.250086 40.044715 -8.5</gx:coord> +<when>2013-07-25T20:16:56.000Z</when> +<gx:coord>-75.250129 40.044733 -7.800000190734863</gx:coord> +<when>2013-07-25T20:16:57.000Z</when> +<gx:coord>-75.250175 40.044755 -7.300000190734863</gx:coord> +<when>2013-07-25T20:16:58.000Z</when> +<gx:coord>-75.250217 40.044793 -10.0</gx:coord> +<when>2013-07-25T20:16:59.000Z</when> +<gx:coord>-75.250253 40.044825 -9.800000190734863</gx:coord> +<when>2013-07-25T20:17:00.000Z</when> +<gx:coord>-75.25029 40.044859 -10.399999618530273</gx:coord> +<when>2013-07-25T20:17:01.000Z</when> +<gx:coord>-75.250324 40.04489 -9.399999618530273</gx:coord> +<when>2013-07-25T20:17:02.000Z</when> +<gx:coord>-75.250359 40.044918 -8.800000190734863</gx:coord> +<when>2013-07-25T20:17:03.000Z</when> +<gx:coord>-75.250394 40.044944 -8.199999809265137</gx:coord> +<when>2013-07-25T20:17:04.000Z</when> +<gx:coord>-75.250428 40.044966 -7.800000190734863</gx:coord> +<when>2013-07-25T20:17:05.000Z</when> +<gx:coord>-75.250459 40.044986 -7.300000190734863</gx:coord> +<when>2013-07-25T20:17:06.000Z</when> +<gx:coord>-75.250486 40.045004 -7.800000190734863</gx:coord> +<when>2013-07-25T20:17:07.000Z</when> +<gx:coord>-75.250511 40.045023 -7.699999809265137</gx:coord> +<when>2013-07-25T20:17:08.000Z</when> +<gx:coord>-75.250535 40.045043 -8.199999809265137</gx:coord> +<when>2013-07-25T20:17:10.000Z</when> +<gx:coord>-75.250574 40.045072 -6.800000190734863</gx:coord> +<when>2013-07-25T20:17:11.000Z</when> +<gx:coord>-75.250595 40.045088 -6.900000095367432</gx:coord> +<when>2013-07-25T20:17:12.000Z</when> +<gx:coord>-75.250617 40.045105 -7.099999904632568</gx:coord> +<when>2013-07-25T20:17:13.000Z</when> +<gx:coord>-75.25064 40.045125 -7.900000095367432</gx:coord> +<when>2013-07-25T20:17:14.000Z</when> +<gx:coord>-75.250668 40.045147 -7.400000095367432</gx:coord> +<when>2013-07-25T20:17:15.000Z</when> +<gx:coord>-75.250697 40.045171 -7.300000190734863</gx:coord> +<when>2013-07-25T20:17:16.000Z</when> +<gx:coord>-75.250727 40.045198 -7.199999809265137</gx:coord> +<when>2013-07-25T20:17:17.000Z</when> +<gx:coord>-75.250753 40.045224 -6.699999809265137</gx:coord> +<when>2013-07-25T20:17:18.000Z</when> +<gx:coord>-75.250774 40.045249 -5.800000190734863</gx:coord> +<when>2013-07-25T20:17:19.000Z</when> +<gx:coord>-75.250791 40.045273 -5.599999904632568</gx:coord> +<when>2013-07-25T20:17:20.000Z</when> +<gx:coord>-75.250804 40.045295 -5.5</gx:coord> +<when>2013-07-25T20:17:21.000Z</when> +<gx:coord>-75.250814 40.045314 -5.5</gx:coord> +<when>2013-07-25T20:17:22.000Z</when> +<gx:coord>-75.250825 40.045334 -5.800000190734863</gx:coord> +<when>2013-07-25T20:17:23.000Z</when> +<gx:coord>-75.250836 40.045356 -5.0</gx:coord> +<when>2013-07-25T20:17:24.000Z</when> +<gx:coord>-75.250847 40.045378 -5.0</gx:coord> +<when>2013-07-25T20:17:25.000Z</when> +<gx:coord>-75.250859 40.045402 -5.699999809265137</gx:coord> +<when>2013-07-25T20:17:26.000Z</when> +<gx:coord>-75.250871 40.045426 -6.300000190734863</gx:coord> +<when>2013-07-25T20:17:27.000Z</when> +<gx:coord>-75.250886 40.045453 -6.599999904632568</gx:coord> +<when>2013-07-25T20:17:28.000Z</when> +<gx:coord>-75.250903 40.045482 -6.900000095367432</gx:coord> +<when>2013-07-25T20:17:29.000Z</when> +<gx:coord>-75.250919 40.04551 -7.599999904632568</gx:coord> +<when>2013-07-25T20:17:30.000Z</when> +<gx:coord>-75.250936 40.045538 -7.599999904632568</gx:coord> +<when>2013-07-25T20:17:31.000Z</when> +<gx:coord>-75.250951 40.045565 -8.399999618530273</gx:coord> +<when>2013-07-25T20:17:32.000Z</when> +<gx:coord>-75.250965 40.045589 -8.699999809265137</gx:coord> +<when>2013-07-25T20:17:33.000Z</when> +<gx:coord>-75.250978 40.04561 -9.300000190734863</gx:coord> +<when>2013-07-25T20:17:34.000Z</when> +<gx:coord>-75.250991 40.04563 -8.800000190734863</gx:coord> +<when>2013-07-25T20:17:35.000Z</when> +<gx:coord>-75.251004 40.04565 -9.100000381469727</gx:coord> +<when>2013-07-25T20:17:37.000Z</when> +<gx:coord>-75.251027 40.045688 -9.399999618530273</gx:coord> +<when>2013-07-25T20:17:38.000Z</when> +<gx:coord>-75.251038 40.045707 -9.600000381469727</gx:coord> +<when>2013-07-25T20:17:39.000Z</when> +<gx:coord>-75.251049 40.045728 -8.899999618530273</gx:coord> +<when>2013-07-25T20:17:40.000Z</when> +<gx:coord>-75.251061 40.045748 -8.5</gx:coord> +<when>2013-07-25T20:17:42.000Z</when> +<gx:coord>-75.251079 40.045782 -8.0</gx:coord> +<when>2013-07-25T20:17:43.000Z</when> +<gx:coord>-75.251089 40.045796 -8.199999809265137</gx:coord> +<when>2013-07-25T20:17:45.000Z</when> +<gx:coord>-75.251113 40.045826 -8.699999809265137</gx:coord> +<when>2013-07-25T20:17:46.000Z</when> +<gx:coord>-75.251126 40.04584 -8.5</gx:coord> +<when>2013-07-25T20:17:49.000Z</when> +<gx:coord>-75.251169 40.04586 -4.800000190734863</gx:coord> +<when>2013-07-25T20:17:50.000Z</when> +<gx:coord>-75.251188 40.045866 -5.0</gx:coord> +<when>2013-07-25T20:17:52.000Z</when> +<gx:coord>-75.251224 40.04588 -2.700000047683716</gx:coord> +<when>2013-07-25T20:17:53.000Z</when> +<gx:coord>-75.251241 40.045885 -1.600000023841858</gx:coord> +<when>2013-07-25T20:17:55.000Z</when> +<gx:coord>-75.251275 40.045899 -0.10000000149011612</gx:coord> +<when>2013-07-25T20:17:56.000Z</when> +<gx:coord>-75.251292 40.045909 0.5</gx:coord> +<when>2013-07-25T20:17:58.000Z</when> +<gx:coord>-75.251324 40.045932 1.7999999523162842</gx:coord> +<when>2013-07-25T20:17:59.001Z</when> +<gx:coord>-75.25134 40.045944 2.299999952316284</gx:coord> +<when>2013-07-25T20:18:01.000Z</when> +<gx:coord>-75.251378 40.045974 3.200000047683716</gx:coord> +<when>2013-07-25T20:18:02.000Z</when> +<gx:coord>-75.2514 40.04599 4.0</gx:coord> +<when>2013-07-25T20:18:03.000Z</when> +<gx:coord>-75.251423 40.046007 4.099999904632568</gx:coord> +<when>2013-07-25T20:18:04.000Z</when> +<gx:coord>-75.251448 40.046024 4.5</gx:coord> +<when>2013-07-25T20:18:05.000Z</when> +<gx:coord>-75.251472 40.046043 5.0</gx:coord> +<when>2013-07-25T20:18:06.000Z</when> +<gx:coord>-75.251498 40.046064 4.800000190734863</gx:coord> +<when>2013-07-25T20:18:07.000Z</when> +<gx:coord>-75.251529 40.046089 4.0</gx:coord> +<when>2013-07-25T20:18:08.000Z</when> +<gx:coord>-75.251562 40.046119 4.0</gx:coord> +<when>2013-07-25T20:18:09.000Z</when> +<gx:coord>-75.251595 40.046145 5.0</gx:coord> +<when>2013-07-25T20:18:10.000Z</when> +<gx:coord>-75.251631 40.046171 5.199999809265137</gx:coord> +<when>2013-07-25T20:18:11.000Z</when> +<gx:coord>-75.251668 40.046195 5.599999904632568</gx:coord> +<when>2013-07-25T20:18:12.000Z</when> +<gx:coord>-75.251706 40.046218 5.800000190734863</gx:coord> +<when>2013-07-25T20:18:13.000Z</when> +<gx:coord>-75.251744 40.046243 4.800000190734863</gx:coord> +<when>2013-07-25T20:18:14.000Z</when> +<gx:coord>-75.251782 40.046269 5.099999904632568</gx:coord> +<when>2013-07-25T20:18:15.000Z</when> +<gx:coord>-75.251822 40.046298 3.700000047683716</gx:coord> +<when>2013-07-25T20:18:16.000Z</when> +<gx:coord>-75.251864 40.046326 4.099999904632568</gx:coord> +<when>2013-07-25T20:18:17.000Z</when> +<gx:coord>-75.251901 40.046353 4.699999809265137</gx:coord> +<when>2013-07-25T20:18:18.000Z</when> +<gx:coord>-75.251946 40.046376 4.199999809265137</gx:coord> +<when>2013-07-25T20:18:19.000Z</when> +<gx:coord>-75.251988 40.046401 4.400000095367432</gx:coord> +<when>2013-07-25T20:18:20.000Z</when> +<gx:coord>-75.25203 40.046427 5.300000190734863</gx:coord> +<when>2013-07-25T20:18:21.000Z</when> +<gx:coord>-75.25207 40.046453 5.699999809265137</gx:coord> +<when>2013-07-25T20:18:22.000Z</when> +<gx:coord>-75.252107 40.046478 6.599999904632568</gx:coord> +<when>2013-07-25T20:18:23.000Z</when> +<gx:coord>-75.252145 40.046503 7.699999809265137</gx:coord> +<when>2013-07-25T20:18:24.000Z</when> +<gx:coord>-75.252186 40.046529 7.599999904632568</gx:coord> +<when>2013-07-25T20:18:25.000Z</when> +<gx:coord>-75.252225 40.046553 7.800000190734863</gx:coord> +<when>2013-07-25T20:18:26.000Z</when> +<gx:coord>-75.252266 40.046577 8.0</gx:coord> +<when>2013-07-25T20:18:27.000Z</when> +<gx:coord>-75.252308 40.046602 8.300000190734863</gx:coord> +<when>2013-07-25T20:18:28.000Z</when> +<gx:coord>-75.25235 40.046629 8.699999809265137</gx:coord> +<when>2013-07-25T20:18:29.000Z</when> +<gx:coord>-75.252391 40.046655 8.899999618530273</gx:coord> +<when>2013-07-25T20:18:30.000Z</when> +<gx:coord>-75.25243 40.046682 8.899999618530273</gx:coord> +<when>2013-07-25T20:18:31.000Z</when> +<gx:coord>-75.252472 40.046711 8.800000190734863</gx:coord> +<when>2013-07-25T20:18:32.000Z</when> +<gx:coord>-75.252523 40.04675 8.399999618530273</gx:coord> +<when>2013-07-25T20:18:33.000Z</when> +<gx:coord>-75.252569 40.046783 7.699999809265137</gx:coord> +<when>2013-07-25T20:18:34.000Z</when> +<gx:coord>-75.252614 40.046816 7.800000190734863</gx:coord> +<when>2013-07-25T20:18:35.000Z</when> +<gx:coord>-75.252658 40.046847 7.699999809265137</gx:coord> +<when>2013-07-25T20:18:36.000Z</when> +<gx:coord>-75.252711 40.04688 7.300000190734863</gx:coord> +<when>2013-07-25T20:18:37.000Z</when> +<gx:coord>-75.252756 40.04691 6.800000190734863</gx:coord> +<when>2013-07-25T20:18:38.000Z</when> +<gx:coord>-75.252801 40.04694 7.599999904632568</gx:coord> +<when>2013-07-25T20:18:39.000Z</when> +<gx:coord>-75.252836 40.046964 8.899999618530273</gx:coord> +<when>2013-07-25T20:18:40.000Z</when> +<gx:coord>-75.252873 40.046987 11.199999809265137</gx:coord> +<when>2013-07-25T20:18:41.000Z</when> +<gx:coord>-75.252917 40.04701 12.100000381469727</gx:coord> +<when>2013-07-25T20:18:42.000Z</when> +<gx:coord>-75.252956 40.047033 12.699999809265137</gx:coord> +<when>2013-07-25T20:18:43.000Z</when> +<gx:coord>-75.253006 40.04706 13.0</gx:coord> +<when>2013-07-25T20:18:44.000Z</when> +<gx:coord>-75.25305 40.047091 13.699999809265137</gx:coord> +<when>2013-07-25T20:18:45.000Z</when> +<gx:coord>-75.253102 40.04713 12.300000190734863</gx:coord> +<when>2013-07-25T20:18:46.000Z</when> +<gx:coord>-75.253144 40.047162 12.800000190734863</gx:coord> +<when>2013-07-25T20:18:47.000Z</when> +<gx:coord>-75.253184 40.047193 13.199999809265137</gx:coord> +<when>2013-07-25T20:18:48.000Z</when> +<gx:coord>-75.253225 40.047223 13.199999809265137</gx:coord> +<when>2013-07-25T20:18:49.000Z</when> +<gx:coord>-75.253263 40.047251 13.0</gx:coord> +<when>2013-07-25T20:18:50.000Z</when> +<gx:coord>-75.2533 40.047278 14.699999809265137</gx:coord> +<when>2013-07-25T20:18:51.000Z</when> +<gx:coord>-75.253338 40.047306 14.600000381469727</gx:coord> +<when>2013-07-25T20:18:52.000Z</when> +<gx:coord>-75.253376 40.047331 15.800000190734863</gx:coord> +<when>2013-07-25T20:18:53.000Z</when> +<gx:coord>-75.253411 40.047354 16.299999237060547</gx:coord> +<when>2013-07-25T20:18:54.000Z</when> +<gx:coord>-75.253448 40.047378 15.800000190734863</gx:coord> +<when>2013-07-25T20:18:55.000Z</when> +<gx:coord>-75.253486 40.047402 15.300000190734863</gx:coord> +<when>2013-07-25T20:18:56.000Z</when> +<gx:coord>-75.253528 40.047428 15.199999809265137</gx:coord> +<when>2013-07-25T20:18:57.000Z</when> +<gx:coord>-75.253569 40.047453 15.600000381469727</gx:coord> +<when>2013-07-25T20:18:58.000Z</when> +<gx:coord>-75.253611 40.047479 15.100000381469727</gx:coord> +<when>2013-07-25T20:18:59.000Z</when> +<gx:coord>-75.253654 40.047504 14.399999618530273</gx:coord> +<when>2013-07-25T20:19:00.000Z</when> +<gx:coord>-75.253697 40.047531 13.699999809265137</gx:coord> +<when>2013-07-25T20:19:01.000Z</when> +<gx:coord>-75.253733 40.047557 13.5</gx:coord> +<when>2013-07-25T20:19:02.000Z</when> +<gx:coord>-75.253768 40.047584 12.600000381469727</gx:coord> +<when>2013-07-25T20:19:03.000Z</when> +<gx:coord>-75.253801 40.04761 12.600000381469727</gx:coord> +<when>2013-07-25T20:19:04.000Z</when> +<gx:coord>-75.253834 40.047637 12.899999618530273</gx:coord> +<when>2013-07-25T20:19:05.000Z</when> +<gx:coord>-75.253866 40.047661 13.0</gx:coord> +<when>2013-07-25T20:19:06.000Z</when> +<gx:coord>-75.253901 40.047686 11.699999809265137</gx:coord> +<when>2013-07-25T20:19:07.000Z</when> +<gx:coord>-75.253934 40.047709 11.5</gx:coord> +<when>2013-07-25T20:19:08.000Z</when> +<gx:coord>-75.253967 40.047731 12.100000381469727</gx:coord> +<when>2013-07-25T20:19:09.000Z</when> +<gx:coord>-75.253997 40.047751 11.199999809265137</gx:coord> +<when>2013-07-25T20:19:10.000Z</when> +<gx:coord>-75.25403 40.047773 9.699999809265137</gx:coord> +<when>2013-07-25T20:19:11.000Z</when> +<gx:coord>-75.254067 40.047793 7.900000095367432</gx:coord> +<when>2013-07-25T20:19:12.000Z</when> +<gx:coord>-75.254106 40.047813 9.0</gx:coord> +<when>2013-07-25T20:19:13.000Z</when> +<gx:coord>-75.254144 40.047832 8.5</gx:coord> +<when>2013-07-25T20:19:14.000Z</when> +<gx:coord>-75.25418 40.047851 7.900000095367432</gx:coord> +<when>2013-07-25T20:19:15.000Z</when> +<gx:coord>-75.254212 40.047873 8.199999809265137</gx:coord> +<when>2013-07-25T20:19:16.000Z</when> +<gx:coord>-75.254239 40.047895 7.5</gx:coord> +<when>2013-07-25T20:19:17.000Z</when> +<gx:coord>-75.25426 40.047912 7.699999809265137</gx:coord> +<when>2013-07-25T20:19:18.000Z</when> +<gx:coord>-75.254278 40.047929 6.300000190734863</gx:coord> +<when>2013-07-25T20:19:21.000Z</when> +<gx:coord>-75.25427 40.047909 5.800000190734863</gx:coord> +<when>2013-07-25T20:19:22.000Z</when> +<gx:coord>-75.254249 40.047882 5.5</gx:coord> +<when>2013-07-25T20:19:23.000Z</when> +<gx:coord>-75.254218 40.047852 5.300000190734863</gx:coord> +<when>2013-07-25T20:19:24.000Z</when> +<gx:coord>-75.254184 40.047828 4.199999809265137</gx:coord> +<when>2013-07-25T20:19:25.000Z</when> +<gx:coord>-75.254158 40.047808 4.300000190734863</gx:coord> +<when>2013-07-25T20:19:26.000Z</when> +<gx:coord>-75.254111 40.047788 3.4000000953674316</gx:coord> +<when>2013-07-25T20:19:26.999Z</when> +<gx:coord>-75.25408 40.047773 3.9000000953674316</gx:coord> +<when>2013-07-25T20:19:28.000Z</when> +<gx:coord>-75.254045 40.047763 2.5</gx:coord> +<when>2013-07-25T20:19:29.000Z</when> +<gx:coord>-75.254017 40.047748 2.9000000953674316</gx:coord> +<when>2013-07-25T20:19:30.000Z</when> +<gx:coord>-75.253992 40.047741 2.4000000953674316</gx:coord> +<when>2013-07-25T20:19:33.000Z</when> +<gx:coord>-75.253956 40.047776 3.299999952316284</gx:coord> +<when>2013-07-25T20:19:34.000Z</when> +<gx:coord>-75.253966 40.047801 2.799999952316284</gx:coord> +<when>2013-07-25T20:19:35.000Z</when> +<gx:coord>-75.253983 40.047828 1.7999999523162842</gx:coord> +<when>2013-07-25T20:19:36.000Z</when> +<gx:coord>-75.253997 40.047856 3.9000000953674316</gx:coord> +<when>2013-07-25T20:19:37.000Z</when> +<gx:coord>-75.254009 40.047881 4.199999809265137</gx:coord> +<when>2013-07-25T20:19:38.000Z</when> +<gx:coord>-75.254022 40.047903 4.199999809265137</gx:coord> +<when>2013-07-25T20:19:39.000Z</when> +<gx:coord>-75.254036 40.047922 4.0</gx:coord> +<when>2013-07-25T20:19:40.000Z</when> +<gx:coord>-75.254053 40.047942 3.700000047683716</gx:coord> +<when>2013-07-25T20:19:56.000Z</when> +<gx:coord>-75.254011 40.047937 1.7000000476837158</gx:coord> +<when>2013-07-25T20:19:57.000Z</when> +<gx:coord>-75.253988 40.047915 1.600000023841858</gx:coord> +<when>2013-07-25T20:19:58.000Z</when> +<gx:coord>-75.253968 40.047896 1.2999999523162842</gx:coord> +<when>2013-07-25T20:19:59.000Z</when> +<gx:coord>-75.253955 40.047871 0.800000011920929</gx:coord> +<when>2013-07-25T20:20:00.001Z</when> +<gx:coord>-75.253939 40.04785 0.20000000298023224</gx:coord> +<when>2013-07-25T20:20:01.000Z</when> +<gx:coord>-75.25394 40.047817 -0.10000000149011612</gx:coord> +<when>2013-07-25T20:20:04.000Z</when> +<gx:coord>-75.25397 40.04778 -2.299999952316284</gx:coord> +<when>2013-07-25T20:20:05.000Z</when> +<gx:coord>-75.253983 40.047784 -2.0</gx:coord> +<when>2013-07-25T20:20:08.000Z</when> +<gx:coord>-75.254016 40.047815 -0.4000000059604645</gx:coord> +<when>2013-07-25T20:20:09.000Z</when> +<gx:coord>-75.25403 40.047827 0.30000001192092896</gx:coord> +<when>2013-07-25T20:20:10.000Z</when> +<gx:coord>-75.254049 40.047841 0.20000000298023224</gx:coord> +<when>2013-07-25T20:20:11.000Z</when> +<gx:coord>-75.254076 40.047857 0.20000000298023224</gx:coord> +<when>2013-07-25T20:20:12.000Z</when> +<gx:coord>-75.254111 40.047875 -0.800000011920929</gx:coord> +<when>2013-07-25T20:20:13.000Z</when> +<gx:coord>-75.254149 40.047896 -1.2000000476837158</gx:coord> +<when>2013-07-25T20:20:14.000Z</when> +<gx:coord>-75.254188 40.047919 -1.100000023841858</gx:coord> +<when>2013-07-25T20:20:15.000Z</when> +<gx:coord>-75.254224 40.047944 -0.10000000149011612</gx:coord> +<when>2013-07-25T20:20:16.000Z</when> +<gx:coord>-75.254259 40.047971 1.100000023841858</gx:coord> +<when>2013-07-25T20:20:17.000Z</when> +<gx:coord>-75.254291 40.047996 1.600000023841858</gx:coord> +<when>2013-07-25T20:20:18.000Z</when> +<gx:coord>-75.254325 40.048022 1.899999976158142</gx:coord> +<when>2013-07-25T20:20:19.000Z</when> +<gx:coord>-75.25436 40.048048 3.0999999046325684</gx:coord> +<when>2013-07-25T20:20:20.000Z</when> +<gx:coord>-75.254397 40.048072 4.5</gx:coord> +<when>2013-07-25T20:20:21.000Z</when> +<gx:coord>-75.254436 40.048095 6.0</gx:coord> +<when>2013-07-25T20:20:22.000Z</when> +<gx:coord>-75.25448 40.04812 5.099999904632568</gx:coord> +<when>2013-07-25T20:20:23.000Z</when> +<gx:coord>-75.254524 40.048147 5.0</gx:coord> +<when>2013-07-25T20:20:24.000Z</when> +<gx:coord>-75.25457 40.048176 5.900000095367432</gx:coord> +<when>2013-07-25T20:20:25.000Z</when> +<gx:coord>-75.254612 40.048204 6.300000190734863</gx:coord> +<when>2013-07-25T20:20:26.000Z</when> +<gx:coord>-75.254658 40.048235 5.900000095367432</gx:coord> +<when>2013-07-25T20:20:27.000Z</when> +<gx:coord>-75.254701 40.048265 7.5</gx:coord> +<when>2013-07-25T20:20:28.000Z</when> +<gx:coord>-75.254743 40.048297 7.900000095367432</gx:coord> +<when>2013-07-25T20:20:29.000Z</when> +<gx:coord>-75.25478 40.048327 7.599999904632568</gx:coord> +<when>2013-07-25T20:20:30.000Z</when> +<gx:coord>-75.254816 40.048352 11.199999809265137</gx:coord> +<when>2013-07-25T20:20:31.000Z</when> +<gx:coord>-75.254849 40.048374 13.699999809265137</gx:coord> +<when>2013-07-25T20:20:32.000Z</when> +<gx:coord>-75.254886 40.048396 12.699999809265137</gx:coord> +<when>2013-07-25T20:20:33.000Z</when> +<gx:coord>-75.254923 40.048419 12.100000381469727</gx:coord> +<when>2013-07-25T20:20:34.000Z</when> +<gx:coord>-75.254963 40.048445 12.600000381469727</gx:coord> +<when>2013-07-25T20:20:35.000Z</when> +<gx:coord>-75.255007 40.048474 12.699999809265137</gx:coord> +<when>2013-07-25T20:20:36.000Z</when> +<gx:coord>-75.255075 40.048511 12.100000381469727</gx:coord> +<when>2013-07-25T20:20:37.000Z</when> +<gx:coord>-75.255119 40.048539 12.100000381469727</gx:coord> +<when>2013-07-25T20:20:38.000Z</when> +<gx:coord>-75.255162 40.048568 11.699999809265137</gx:coord> +<when>2013-07-25T20:20:39.000Z</when> +<gx:coord>-75.255201 40.048598 12.199999809265137</gx:coord> +<when>2013-07-25T20:20:40.000Z</when> +<gx:coord>-75.255243 40.048636 12.300000190734863</gx:coord> +<when>2013-07-25T20:20:41.000Z</when> +<gx:coord>-75.255291 40.048672 12.199999809265137</gx:coord> +<when>2013-07-25T20:20:42.000Z</when> +<gx:coord>-75.255328 40.048702 12.0</gx:coord> +<when>2013-07-25T20:20:43.000Z</when> +<gx:coord>-75.255367 40.048722 14.300000190734863</gx:coord> +<when>2013-07-25T20:20:44.000Z</when> +<gx:coord>-75.255404 40.048747 15.399999618530273</gx:coord> +<when>2013-07-25T20:20:45.000Z</when> +<gx:coord>-75.255451 40.048769 15.199999809265137</gx:coord> +<when>2013-07-25T20:20:46.000Z</when> +<gx:coord>-75.255495 40.048787 15.699999809265137</gx:coord> +<when>2013-07-25T20:20:47.000Z</when> +<gx:coord>-75.255551 40.048817 15.399999618530273</gx:coord> +<when>2013-07-25T20:20:48.000Z</when> +<gx:coord>-75.255602 40.048853 16.100000381469727</gx:coord> +<when>2013-07-25T20:20:49.000Z</when> +<gx:coord>-75.255647 40.048887 16.0</gx:coord> +<when>2013-07-25T20:20:50.000Z</when> +<gx:coord>-75.255691 40.04892 15.100000381469727</gx:coord> +<when>2013-07-25T20:20:51.000Z</when> +<gx:coord>-75.255745 40.048958 15.100000381469727</gx:coord> +<when>2013-07-25T20:20:52.000Z</when> +<gx:coord>-75.25579 40.048987 15.600000381469727</gx:coord> +<when>2013-07-25T20:20:53.000Z</when> +<gx:coord>-75.255828 40.049012 15.800000190734863</gx:coord> +<when>2013-07-25T20:20:54.000Z</when> +<gx:coord>-75.255873 40.049047 16.0</gx:coord> +<when>2013-07-25T20:20:55.000Z</when> +<gx:coord>-75.255917 40.049079 16.299999237060547</gx:coord> +<when>2013-07-25T20:20:56.000Z</when> +<gx:coord>-75.255964 40.049109 16.5</gx:coord> +<when>2013-07-25T20:20:57.000Z</when> +<gx:coord>-75.256009 40.049147 14.600000381469727</gx:coord> +<when>2013-07-25T20:20:58.000Z</when> +<gx:coord>-75.256054 40.049183 13.699999809265137</gx:coord> +<when>2013-07-25T20:20:59.000Z</when> +<gx:coord>-75.256107 40.049224 13.399999618530273</gx:coord> +<when>2013-07-25T20:21:00.000Z</when> +<gx:coord>-75.256146 40.049252 14.600000381469727</gx:coord> +<when>2013-07-25T20:21:01.000Z</when> +<gx:coord>-75.256182 40.049278 15.699999809265137</gx:coord> +<when>2013-07-25T20:21:02.000Z</when> +<gx:coord>-75.256214 40.049303 16.200000762939453</gx:coord> +<when>2013-07-25T20:21:03.000Z</when> +<gx:coord>-75.256264 40.049337 17.100000381469727</gx:coord> +<when>2013-07-25T20:21:04.000Z</when> +<gx:coord>-75.256315 40.049368 17.5</gx:coord> +<when>2013-07-25T20:21:05.000Z</when> +<gx:coord>-75.256357 40.04941 17.600000381469727</gx:coord> +<when>2013-07-25T20:21:06.000Z</when> +<gx:coord>-75.256405 40.049441 17.799999237060547</gx:coord> +<when>2013-07-25T20:21:07.000Z</when> +<gx:coord>-75.256448 40.04947 17.600000381469727</gx:coord> +<when>2013-07-25T20:21:08.000Z</when> +<gx:coord>-75.256496 40.049498 17.200000762939453</gx:coord> +<when>2013-07-25T20:21:09.000Z</when> +<gx:coord>-75.256547 40.04954 16.899999618530273</gx:coord> +<when>2013-07-25T20:21:10.000Z</when> +<gx:coord>-75.256585 40.049573 17.0</gx:coord> +<when>2013-07-25T20:21:11.000Z</when> +<gx:coord>-75.256623 40.049589 18.299999237060547</gx:coord> +<when>2013-07-25T20:21:12.000Z</when> +<gx:coord>-75.256672 40.049621 19.0</gx:coord> +<when>2013-07-25T20:21:13.000Z</when> +<gx:coord>-75.256721 40.049651 19.100000381469727</gx:coord> +<when>2013-07-25T20:21:14.000Z</when> +<gx:coord>-75.256768 40.049688 19.299999237060547</gx:coord> +<when>2013-07-25T20:21:15.000Z</when> +<gx:coord>-75.256812 40.049723 19.200000762939453</gx:coord> +<when>2013-07-25T20:21:16.000Z</when> +<gx:coord>-75.256852 40.049757 19.700000762939453</gx:coord> +<when>2013-07-25T20:21:17.000Z</when> +<gx:coord>-75.256907 40.049793 19.100000381469727</gx:coord> +<when>2013-07-25T20:21:17.998Z</when> +<gx:coord>-75.256954 40.049828 19.200000762939453</gx:coord> +<when>2013-07-25T20:21:19.000Z</when> +<gx:coord>-75.256992 40.049864 18.899999618530273</gx:coord> +<when>2013-07-25T20:21:20.000Z</when> +<gx:coord>-75.257048 40.049899 18.799999237060547</gx:coord> +<when>2013-07-25T20:21:21.000Z</when> +<gx:coord>-75.257097 40.049925 18.0</gx:coord> +<when>2013-07-25T20:21:22.000Z</when> +<gx:coord>-75.25715 40.04996 17.899999618530273</gx:coord> +<when>2013-07-25T20:21:23.000Z</when> +<gx:coord>-75.25719 40.049997 16.700000762939453</gx:coord> +<when>2013-07-25T20:21:24.000Z</when> +<gx:coord>-75.257274 40.050048 15.0</gx:coord> +<when>2013-07-25T20:21:25.000Z</when> +<gx:coord>-75.257315 40.050082 15.600000381469727</gx:coord> +<when>2013-07-25T20:21:26.000Z</when> +<gx:coord>-75.257361 40.05012 15.100000381469727</gx:coord> +<when>2013-07-25T20:21:27.000Z</when> +<gx:coord>-75.257417 40.050167 14.100000381469727</gx:coord> +<when>2013-07-25T20:21:28.000Z</when> +<gx:coord>-75.257455 40.050203 13.199999809265137</gx:coord> +<when>2013-07-25T20:21:29.000Z</when> +<gx:coord>-75.257515 40.050246 12.0</gx:coord> +<when>2013-07-25T20:21:30.000Z</when> +<gx:coord>-75.257565 40.050287 11.699999809265137</gx:coord> +<when>2013-07-25T20:21:31.000Z</when> +<gx:coord>-75.257609 40.050317 11.600000381469727</gx:coord> +<when>2013-07-25T20:21:32.000Z</when> +<gx:coord>-75.257652 40.050352 11.800000190734863</gx:coord> +<when>2013-07-25T20:21:33.000Z</when> +<gx:coord>-75.25768 40.050381 12.699999809265137</gx:coord> +<when>2013-07-25T20:21:34.000Z</when> +<gx:coord>-75.257721 40.050416 13.600000381469727</gx:coord> +<when>2013-07-25T20:21:35.000Z</when> +<gx:coord>-75.257754 40.050437 15.800000190734863</gx:coord> +<when>2013-07-25T20:21:36.000Z</when> +<gx:coord>-75.257812 40.050462 16.200000762939453</gx:coord> +<when>2013-07-25T20:21:37.000Z</when> +<gx:coord>-75.257867 40.050507 14.199999809265137</gx:coord> +<when>2013-07-25T20:21:38.000Z</when> +<gx:coord>-75.257918 40.050535 13.600000381469727</gx:coord> +<when>2013-07-25T20:21:39.000Z</when> +<gx:coord>-75.257973 40.05058 13.100000381469727</gx:coord> +<when>2013-07-25T20:21:40.000Z</when> +<gx:coord>-75.258009 40.050602 14.600000381469727</gx:coord> +<when>2013-07-25T20:21:41.000Z</when> +<gx:coord>-75.25806 40.050631 14.300000190734863</gx:coord> +<when>2013-07-25T20:21:42.000Z</when> +<gx:coord>-75.258107 40.05066 15.100000381469727</gx:coord> +<when>2013-07-25T20:21:43.000Z</when> +<gx:coord>-75.258161 40.050696 16.200000762939453</gx:coord> +<when>2013-07-25T20:21:44.000Z</when> +<gx:coord>-75.25822 40.050734 14.5</gx:coord> +<when>2013-07-25T20:21:45.000Z</when> +<gx:coord>-75.258263 40.050767 15.399999618530273</gx:coord> +<when>2013-07-25T20:21:46.000Z</when> +<gx:coord>-75.258298 40.050803 16.600000381469727</gx:coord> +<when>2013-07-25T20:21:47.000Z</when> +<gx:coord>-75.258341 40.05084 16.700000762939453</gx:coord> +<when>2013-07-25T20:21:48.000Z</when> +<gx:coord>-75.258391 40.050876 16.200000762939453</gx:coord> +<when>2013-07-25T20:21:49.000Z</when> +<gx:coord>-75.258437 40.050918 15.899999618530273</gx:coord> +<when>2013-07-25T20:21:50.000Z</when> +<gx:coord>-75.258484 40.05096 14.600000381469727</gx:coord> +<when>2013-07-25T20:21:51.000Z</when> +<gx:coord>-75.258543 40.051005 12.5</gx:coord> +<when>2013-07-25T20:21:52.000Z</when> +<gx:coord>-75.258589 40.051042 11.399999618530273</gx:coord> +<when>2013-07-25T20:21:53.000Z</when> +<gx:coord>-75.258636 40.051076 11.399999618530273</gx:coord> +<when>2013-07-25T20:21:54.000Z</when> +<gx:coord>-75.258674 40.05111 11.0</gx:coord> +<when>2013-07-25T20:21:55.000Z</when> +<gx:coord>-75.258719 40.051139 10.5</gx:coord> +<when>2013-07-25T20:21:56.000Z</when> +<gx:coord>-75.25876 40.051173 9.600000381469727</gx:coord> +<when>2013-07-25T20:21:57.000Z</when> +<gx:coord>-75.258803 40.051208 9.100000381469727</gx:coord> +<when>2013-07-25T20:21:58.000Z</when> +<gx:coord>-75.258859 40.051231 10.800000190734863</gx:coord> +<when>2013-07-25T20:21:59.000Z</when> +<gx:coord>-75.25891 40.051264 11.800000190734863</gx:coord> +<when>2013-07-25T20:22:00.000Z</when> +<gx:coord>-75.258946 40.051292 11.800000190734863</gx:coord> +<when>2013-07-25T20:22:01.000Z</when> +<gx:coord>-75.259001 40.051332 10.0</gx:coord> +<when>2013-07-25T20:22:02.000Z</when> +<gx:coord>-75.259043 40.051368 9.199999809265137</gx:coord> +<when>2013-07-25T20:22:03.000Z</when> +<gx:coord>-75.259088 40.051403 9.699999809265137</gx:coord> +<when>2013-07-25T20:22:04.000Z</when> +<gx:coord>-75.259141 40.051442 9.5</gx:coord> +<when>2013-07-25T20:22:05.000Z</when> +<gx:coord>-75.259184 40.051477 9.100000381469727</gx:coord> +<when>2013-07-25T20:22:06.000Z</when> +<gx:coord>-75.259233 40.051512 8.5</gx:coord> +<when>2013-07-25T20:22:07.000Z</when> +<gx:coord>-75.25927 40.051544 8.800000190734863</gx:coord> +<when>2013-07-25T20:22:08.000Z</when> +<gx:coord>-75.259317 40.051576 8.399999618530273</gx:coord> +<when>2013-07-25T20:22:09.000Z</when> +<gx:coord>-75.259363 40.051609 8.0</gx:coord> +<when>2013-07-25T20:22:10.000Z</when> +<gx:coord>-75.259411 40.051644 6.699999809265137</gx:coord> +<when>2013-07-25T20:22:11.000Z</when> +<gx:coord>-75.259464 40.051682 5.599999904632568</gx:coord> +<when>2013-07-25T20:22:12.000Z</when> +<gx:coord>-75.259516 40.051723 6.0</gx:coord> +<when>2013-07-25T20:22:13.000Z</when> +<gx:coord>-75.259555 40.051758 5.599999904632568</gx:coord> +<when>2013-07-25T20:22:14.000Z</when> +<gx:coord>-75.259608 40.051793 5.199999809265137</gx:coord> +<when>2013-07-25T20:22:15.000Z</when> +<gx:coord>-75.259646 40.051834 5.5</gx:coord> +<when>2013-07-25T20:22:16.000Z</when> +<gx:coord>-75.259689 40.051868 5.099999904632568</gx:coord> +<when>2013-07-25T20:22:17.000Z</when> +<gx:coord>-75.259729 40.051906 5.0</gx:coord> +<when>2013-07-25T20:22:18.000Z</when> +<gx:coord>-75.259775 40.051938 5.699999809265137</gx:coord> +<when>2013-07-25T20:22:19.000Z</when> +<gx:coord>-75.259823 40.05197 6.5</gx:coord> +<when>2013-07-25T20:22:20.000Z</when> +<gx:coord>-75.259886 40.052019 3.799999952316284</gx:coord> +<when>2013-07-25T20:22:21.000Z</when> +<gx:coord>-75.25993 40.052049 3.0</gx:coord> +<when>2013-07-25T20:22:22.000Z</when> +<gx:coord>-75.259982 40.05209 2.700000047683716</gx:coord> +<when>2013-07-25T20:22:23.000Z</when> +<gx:coord>-75.260025 40.052126 3.0999999046325684</gx:coord> +<when>2013-07-25T20:22:24.000Z</when> +<gx:coord>-75.260078 40.052159 2.5999999046325684</gx:coord> +<when>2013-07-25T20:22:25.000Z</when> +<gx:coord>-75.260128 40.052193 1.7000000476837158</gx:coord> +<when>2013-07-25T20:22:26.000Z</when> +<gx:coord>-75.260172 40.052224 0.6000000238418579</gx:coord> +<when>2013-07-25T20:22:27.000Z</when> +<gx:coord>-75.260222 40.052262 0.20000000298023224</gx:coord> +<when>2013-07-25T20:22:28.000Z</when> +<gx:coord>-75.260261 40.052307 0.8999999761581421</gx:coord> +<when>2013-07-25T20:22:29.000Z</when> +<gx:coord>-75.260314 40.052345 0.20000000298023224</gx:coord> +<when>2013-07-25T20:22:30.000Z</when> +<gx:coord>-75.260356 40.052373 0.20000000298023224</gx:coord> +<when>2013-07-25T20:22:31.000Z</when> +<gx:coord>-75.260401 40.052404 0.4000000059604645</gx:coord> +<when>2013-07-25T20:22:32.000Z</when> +<gx:coord>-75.260438 40.052437 0.5</gx:coord> +<when>2013-07-25T20:22:33.000Z</when> +<gx:coord>-75.26048 40.05247 1.600000023841858</gx:coord> +<when>2013-07-25T20:22:34.000Z</when> +<gx:coord>-75.260522 40.052503 3.4000000953674316</gx:coord> +<when>2013-07-25T20:22:35.000Z</when> +<gx:coord>-75.260584 40.052554 1.899999976158142</gx:coord> +<when>2013-07-25T20:22:36.000Z</when> +<gx:coord>-75.260633 40.052584 2.0</gx:coord> +<when>2013-07-25T20:22:37.000Z</when> +<gx:coord>-75.260674 40.052611 3.4000000953674316</gx:coord> +<when>2013-07-25T20:22:38.000Z</when> +<gx:coord>-75.260721 40.05264 4.0</gx:coord> +<when>2013-07-25T20:22:39.000Z</when> +<gx:coord>-75.260751 40.052686 4.5</gx:coord> +<when>2013-07-25T20:22:40.000Z</when> +<gx:coord>-75.260792 40.05272 5.699999809265137</gx:coord> +<when>2013-07-25T20:22:41.000Z</when> +<gx:coord>-75.26084 40.05276 3.700000047683716</gx:coord> +<when>2013-07-25T20:22:42.000Z</when> +<gx:coord>-75.260886 40.052799 3.5999999046325684</gx:coord> +<when>2013-07-25T20:22:43.000Z</when> +<gx:coord>-75.260934 40.052846 2.5999999046325684</gx:coord> +<when>2013-07-25T20:22:44.000Z</when> +<gx:coord>-75.260976 40.052894 2.700000047683716</gx:coord> +<when>2013-07-25T20:22:45.000Z</when> +<gx:coord>-75.261023 40.05293 2.200000047683716</gx:coord> +<when>2013-07-25T20:22:46.000Z</when> +<gx:coord>-75.261069 40.052967 2.299999952316284</gx:coord> +<when>2013-07-25T20:22:47.000Z</when> +<gx:coord>-75.261125 40.053003 1.7999999523162842</gx:coord> +<when>2013-07-25T20:22:48.000Z</when> +<gx:coord>-75.261171 40.053046 2.700000047683716</gx:coord> +<when>2013-07-25T20:22:49.000Z</when> +<gx:coord>-75.261218 40.053077 2.299999952316284</gx:coord> +<when>2013-07-25T20:22:50.000Z</when> +<gx:coord>-75.261272 40.053113 2.200000047683716</gx:coord> +<when>2013-07-25T20:22:51.000Z</when> +<gx:coord>-75.261317 40.053141 4.0</gx:coord> +<when>2013-07-25T20:22:52.000Z</when> +<gx:coord>-75.26137 40.053181 4.0</gx:coord> +<when>2013-07-25T20:22:53.000Z</when> +<gx:coord>-75.26142 40.053217 3.299999952316284</gx:coord> +<when>2013-07-25T20:22:54.000Z</when> +<gx:coord>-75.261469 40.053251 3.299999952316284</gx:coord> +<when>2013-07-25T20:22:55.000Z</when> +<gx:coord>-75.261517 40.053286 3.299999952316284</gx:coord> +<when>2013-07-25T20:22:56.000Z</when> +<gx:coord>-75.261567 40.053323 3.200000047683716</gx:coord> +<when>2013-07-25T20:22:57.000Z</when> +<gx:coord>-75.261616 40.053355 3.9000000953674316</gx:coord> +<when>2013-07-25T20:22:58.000Z</when> +<gx:coord>-75.261652 40.053381 5.599999904632568</gx:coord> +<when>2013-07-25T20:22:59.000Z</when> +<gx:coord>-75.261697 40.053424 3.5999999046325684</gx:coord> +<when>2013-07-25T20:23:00.000Z</when> +<gx:coord>-75.261744 40.053465 3.4000000953674316</gx:coord> +<when>2013-07-25T20:23:01.001Z</when> +<gx:coord>-75.261791 40.053501 3.0</gx:coord> +<when>2013-07-25T20:23:02.000Z</when> +<gx:coord>-75.26181 40.053527 3.200000047683716</gx:coord> +<when>2013-07-25T20:23:03.000Z</when> +<gx:coord>-75.261868 40.053567 2.700000047683716</gx:coord> +<when>2013-07-25T20:23:04.000Z</when> +<gx:coord>-75.261921 40.05361 2.700000047683716</gx:coord> +<when>2013-07-25T20:23:05.000Z</when> +<gx:coord>-75.26196 40.053645 2.0999999046325684</gx:coord> +<when>2013-07-25T20:23:06.000Z</when> +<gx:coord>-75.261992 40.053674 4.300000190734863</gx:coord> +<when>2013-07-25T20:23:07.000Z</when> +<gx:coord>-75.262024 40.053698 6.099999904632568</gx:coord> +<when>2013-07-25T20:23:08.000Z</when> +<gx:coord>-75.262072 40.053737 6.199999809265137</gx:coord> +<when>2013-07-25T20:23:09.000Z</when> +<gx:coord>-75.262115 40.053771 6.599999904632568</gx:coord> +<when>2013-07-25T20:23:10.000Z</when> +<gx:coord>-75.262151 40.053804 5.400000095367432</gx:coord> +<when>2013-07-25T20:23:11.000Z</when> +<gx:coord>-75.26219 40.053837 5.300000190734863</gx:coord> +<when>2013-07-25T20:23:12.000Z</when> +<gx:coord>-75.262232 40.053869 6.5</gx:coord> +<when>2013-07-25T20:23:13.000Z</when> +<gx:coord>-75.262277 40.053893 6.400000095367432</gx:coord> +<when>2013-07-25T20:23:14.000Z</when> +<gx:coord>-75.26232 40.053941 5.599999904632568</gx:coord> +<when>2013-07-25T20:23:15.000Z</when> +<gx:coord>-75.262352 40.053981 4.300000190734863</gx:coord> +<when>2013-07-25T20:23:16.000Z</when> +<gx:coord>-75.262392 40.054033 3.5999999046325684</gx:coord> +<when>2013-07-25T20:23:17.000Z</when> +<gx:coord>-75.262426 40.054075 3.299999952316284</gx:coord> +<when>2013-07-25T20:23:18.000Z</when> +<gx:coord>-75.262472 40.054106 3.700000047683716</gx:coord> +<when>2013-07-25T20:23:19.000Z</when> +<gx:coord>-75.262507 40.054144 4.800000190734863</gx:coord> +<when>2013-07-25T20:23:19.999Z</when> +<gx:coord>-75.262544 40.054179 5.800000190734863</gx:coord> +<when>2013-07-25T20:23:21.000Z</when> +<gx:coord>-75.262571 40.054221 4.300000190734863</gx:coord> +<when>2013-07-25T20:23:22.000Z</when> +<gx:coord>-75.262607 40.054267 4.699999809265137</gx:coord> +<when>2013-07-25T20:23:23.000Z</when> +<gx:coord>-75.262647 40.054313 4.5</gx:coord> +<when>2013-07-25T20:23:24.000Z</when> +<gx:coord>-75.262678 40.054347 5.0</gx:coord> +<when>2013-07-25T20:23:25.000Z</when> +<gx:coord>-75.262707 40.054379 6.0</gx:coord> +<when>2013-07-25T20:23:26.000Z</when> +<gx:coord>-75.262739 40.054423 5.099999904632568</gx:coord> +<when>2013-07-25T20:23:27.000Z</when> +<gx:coord>-75.262764 40.054465 5.699999809265137</gx:coord> +<when>2013-07-25T20:23:28.000Z</when> +<gx:coord>-75.262784 40.054494 5.800000190734863</gx:coord> +<when>2013-07-25T20:23:29.000Z</when> +<gx:coord>-75.262838 40.054545 3.4000000953674316</gx:coord> +<when>2013-07-25T20:23:30.000Z</when> +<gx:coord>-75.262864 40.054577 2.799999952316284</gx:coord> +<when>2013-07-25T20:23:31.000Z</when> +<gx:coord>-75.262892 40.054614 2.5</gx:coord> +<when>2013-07-25T20:23:32.000Z</when> +<gx:coord>-75.262924 40.054678 0.4000000059604645</gx:coord> +<when>2013-07-25T20:23:33.000Z</when> +<gx:coord>-75.262964 40.05473 -0.6000000238418579</gx:coord> +<when>2013-07-25T20:23:34.000Z</when> +<gx:coord>-75.262994 40.054768 -1.100000023841858</gx:coord> +<when>2013-07-25T20:23:35.000Z</when> +<gx:coord>-75.263019 40.054806 0.0</gx:coord> +<when>2013-07-25T20:23:36.000Z</when> +<gx:coord>-75.263052 40.054854 -0.6000000238418579</gx:coord> +<when>2013-07-25T20:23:37.000Z</when> +<gx:coord>-75.26309 40.054898 -1.600000023841858</gx:coord> +<when>2013-07-25T20:23:38.000Z</when> +<gx:coord>-75.263118 40.054944 -1.2999999523162842</gx:coord> +<when>2013-07-25T20:23:39.000Z</when> +<gx:coord>-75.263149 40.054994 -1.600000023841858</gx:coord> +<when>2013-07-25T20:23:40.000Z</when> +<gx:coord>-75.263174 40.055045 -2.0999999046325684</gx:coord> +<when>2013-07-25T20:23:41.000Z</when> +<gx:coord>-75.263203 40.055098 -2.5999999046325684</gx:coord> +<when>2013-07-25T20:23:42.000Z</when> +<gx:coord>-75.26323 40.055141 -2.0999999046325684</gx:coord> +<when>2013-07-25T20:23:43.000Z</when> +<gx:coord>-75.263259 40.055188 -3.0</gx:coord> +<when>2013-07-25T20:23:44.000Z</when> +<gx:coord>-75.263288 40.055238 -3.5</gx:coord> +<when>2013-07-25T20:23:45.000Z</when> +<gx:coord>-75.26331 40.05528 -3.799999952316284</gx:coord> +<when>2013-07-25T20:23:46.000Z</when> +<gx:coord>-75.263336 40.055322 -3.9000000953674316</gx:coord> +<when>2013-07-25T20:23:47.000Z</when> +<gx:coord>-75.263364 40.055365 -4.599999904632568</gx:coord> +<when>2013-07-25T20:23:48.000Z</when> +<gx:coord>-75.263393 40.05541 -4.900000095367432</gx:coord> +<when>2013-07-25T20:23:49.000Z</when> +<gx:coord>-75.263398 40.055446 -3.5</gx:coord> +<when>2013-07-25T20:23:50.000Z</when> +<gx:coord>-75.263426 40.055486 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:23:51.000Z</when> +<gx:coord>-75.263459 40.055518 -2.4000000953674316</gx:coord> +<when>2013-07-25T20:23:52.000Z</when> +<gx:coord>-75.263468 40.055578 -2.799999952316284</gx:coord> +<when>2013-07-25T20:23:53.000Z</when> +<gx:coord>-75.26347 40.055631 -2.5</gx:coord> +<when>2013-07-25T20:23:54.000Z</when> +<gx:coord>-75.26349 40.055675 -2.4000000953674316</gx:coord> +<when>2013-07-25T20:23:55.000Z</when> +<gx:coord>-75.263512 40.055726 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:23:56.000Z</when> +<gx:coord>-75.263513 40.055765 -1.600000023841858</gx:coord> +<when>2013-07-25T20:23:57.000Z</when> +<gx:coord>-75.263534 40.055811 -2.200000047683716</gx:coord> +<when>2013-07-25T20:23:58.000Z</when> +<gx:coord>-75.263541 40.055855 -2.4000000953674316</gx:coord> +<when>2013-07-25T20:23:59.000Z</when> +<gx:coord>-75.263556 40.055898 -2.5999999046325684</gx:coord> +<when>2013-07-25T20:24:00.000Z</when> +<gx:coord>-75.263568 40.055948 -4.099999904632568</gx:coord> +<when>2013-07-25T20:24:01.000Z</when> +<gx:coord>-75.26359 40.055986 -4.099999904632568</gx:coord> +<when>2013-07-25T20:24:02.000Z</when> +<gx:coord>-75.263608 40.056029 -4.099999904632568</gx:coord> +<when>2013-07-25T20:24:03.000Z</when> +<gx:coord>-75.263628 40.056072 -4.800000190734863</gx:coord> +<when>2013-07-25T20:24:04.000Z</when> +<gx:coord>-75.263635 40.05612 -4.400000095367432</gx:coord> +<when>2013-07-25T20:24:05.000Z</when> +<gx:coord>-75.263636 40.05616 -4.599999904632568</gx:coord> +<when>2013-07-25T20:24:06.000Z</when> +<gx:coord>-75.263647 40.0562 -4.699999809265137</gx:coord> +<when>2013-07-25T20:24:07.000Z</when> +<gx:coord>-75.263655 40.056238 -4.800000190734863</gx:coord> +<when>2013-07-25T20:24:08.000Z</when> +<gx:coord>-75.263664 40.056274 -4.5</gx:coord> +<when>2013-07-25T20:24:09.000Z</when> +<gx:coord>-75.263649 40.056318 -3.799999952316284</gx:coord> +<when>2013-07-25T20:24:10.000Z</when> +<gx:coord>-75.263653 40.05636 -3.5999999046325684</gx:coord> +<when>2013-07-25T20:24:11.000Z</when> +<gx:coord>-75.263648 40.056406 -4.0</gx:coord> +<when>2013-07-25T20:24:12.000Z</when> +<gx:coord>-75.26365 40.056448 -3.799999952316284</gx:coord> +<when>2013-07-25T20:24:13.000Z</when> +<gx:coord>-75.263675 40.056491 -3.5</gx:coord> +<when>2013-07-25T20:24:14.000Z</when> +<gx:coord>-75.263683 40.056533 -3.0999999046325684</gx:coord> +<when>2013-07-25T20:24:15.000Z</when> +<gx:coord>-75.263686 40.056578 -2.799999952316284</gx:coord> +<when>2013-07-25T20:24:16.000Z</when> +<gx:coord>-75.263705 40.056626 -3.4000000953674316</gx:coord> +<when>2013-07-25T20:24:17.000Z</when> +<gx:coord>-75.263725 40.056667 -3.799999952316284</gx:coord> +<when>2013-07-25T20:24:18.000Z</when> +<gx:coord>-75.26374 40.056706 -3.4000000953674316</gx:coord> +<when>2013-07-25T20:24:19.000Z</when> +<gx:coord>-75.263749 40.056746 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:24:20.000Z</when> +<gx:coord>-75.263762 40.056781 -2.5</gx:coord> +<when>2013-07-25T20:24:21.000Z</when> +<gx:coord>-75.263764 40.05682 -2.0999999046325684</gx:coord> +<when>2013-07-25T20:24:22.000Z</when> +<gx:coord>-75.263767 40.056865 -2.0999999046325684</gx:coord> +<when>2013-07-25T20:24:23.000Z</when> +<gx:coord>-75.263771 40.056912 -2.5</gx:coord> +<when>2013-07-25T20:24:24.000Z</when> +<gx:coord>-75.263786 40.056962 -2.799999952316284</gx:coord> +<when>2013-07-25T20:24:25.000Z</when> +<gx:coord>-75.263798 40.057003 -2.700000047683716</gx:coord> +<when>2013-07-25T20:24:26.000Z</when> +<gx:coord>-75.263807 40.057047 -2.700000047683716</gx:coord> +<when>2013-07-25T20:24:27.000Z</when> +<gx:coord>-75.26381 40.057084 -2.4000000953674316</gx:coord> +<when>2013-07-25T20:24:28.000Z</when> +<gx:coord>-75.26381 40.057122 -1.899999976158142</gx:coord> +<when>2013-07-25T20:24:29.000Z</when> +<gx:coord>-75.263821 40.057166 -2.5999999046325684</gx:coord> +<when>2013-07-25T20:24:30.000Z</when> +<gx:coord>-75.263825 40.057206 -2.0999999046325684</gx:coord> +<when>2013-07-25T20:24:31.000Z</when> +<gx:coord>-75.263832 40.057247 -2.5</gx:coord> +<when>2013-07-25T20:24:32.000Z</when> +<gx:coord>-75.263844 40.05729 -2.5999999046325684</gx:coord> +<when>2013-07-25T20:24:33.000Z</when> +<gx:coord>-75.263854 40.057331 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:24:34.000Z</when> +<gx:coord>-75.263861 40.057373 -2.799999952316284</gx:coord> +<when>2013-07-25T20:24:35.000Z</when> +<gx:coord>-75.263868 40.057414 -2.799999952316284</gx:coord> +<when>2013-07-25T20:24:36.000Z</when> +<gx:coord>-75.263875 40.057457 -2.799999952316284</gx:coord> +<when>2013-07-25T20:24:37.000Z</when> +<gx:coord>-75.263881 40.057496 -2.299999952316284</gx:coord> +<when>2013-07-25T20:24:38.000Z</when> +<gx:coord>-75.263889 40.057533 -2.0</gx:coord> +<when>2013-07-25T20:24:39.000Z</when> +<gx:coord>-75.263896 40.057573 -3.0</gx:coord> +<when>2013-07-25T20:24:40.000Z</when> +<gx:coord>-75.263903 40.057616 -3.200000047683716</gx:coord> +<when>2013-07-25T20:24:41.000Z</when> +<gx:coord>-75.26391 40.057657 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:24:42.000Z</when> +<gx:coord>-75.263917 40.0577 -2.5999999046325684</gx:coord> +<when>2013-07-25T20:24:43.000Z</when> +<gx:coord>-75.263925 40.057742 -2.0999999046325684</gx:coord> +<when>2013-07-25T20:24:44.000Z</when> +<gx:coord>-75.263936 40.057783 -2.200000047683716</gx:coord> +<when>2013-07-25T20:24:45.000Z</when> +<gx:coord>-75.26395 40.057823 -2.200000047683716</gx:coord> +<when>2013-07-25T20:24:46.000Z</when> +<gx:coord>-75.263966 40.057862 -2.200000047683716</gx:coord> +<when>2013-07-25T20:24:47.000Z</when> +<gx:coord>-75.263979 40.057897 -2.799999952316284</gx:coord> +<when>2013-07-25T20:24:48.000Z</when> +<gx:coord>-75.263989 40.057934 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:24:49.000Z</when> +<gx:coord>-75.263997 40.057967 -2.0</gx:coord> +<when>2013-07-25T20:24:50.000Z</when> +<gx:coord>-75.264004 40.058006 -1.899999976158142</gx:coord> +<when>2013-07-25T20:24:51.000Z</when> +<gx:coord>-75.264011 40.058047 -1.899999976158142</gx:coord> +<when>2013-07-25T20:24:52.000Z</when> +<gx:coord>-75.264021 40.05809 -1.7000000476837158</gx:coord> +<when>2013-07-25T20:24:53.000Z</when> +<gx:coord>-75.264032 40.058129 -1.7999999523162842</gx:coord> +<when>2013-07-25T20:24:54.000Z</when> +<gx:coord>-75.264046 40.05817 -1.899999976158142</gx:coord> +<when>2013-07-25T20:24:55.000Z</when> +<gx:coord>-75.264064 40.058209 -2.0999999046325684</gx:coord> +<when>2013-07-25T20:24:56.000Z</when> +<gx:coord>-75.264082 40.05825 -2.0999999046325684</gx:coord> +<when>2013-07-25T20:24:57.000Z</when> +<gx:coord>-75.264099 40.058288 -1.7000000476837158</gx:coord> +<when>2013-07-25T20:24:58.000Z</when> +<gx:coord>-75.264114 40.058328 -1.399999976158142</gx:coord> +<when>2013-07-25T20:24:59.000Z</when> +<gx:coord>-75.264131 40.058368 -1.2999999523162842</gx:coord> +<when>2013-07-25T20:25:00.000Z</when> +<gx:coord>-75.264149 40.058409 -1.399999976158142</gx:coord> +<when>2013-07-25T20:25:01.000Z</when> +<gx:coord>-75.264168 40.058448 -1.2999999523162842</gx:coord> +<when>2013-07-25T20:25:02.000Z</when> +<gx:coord>-75.26419 40.058488 -1.2000000476837158</gx:coord> +<when>2013-07-25T20:25:03.000Z</when> +<gx:coord>-75.264213 40.058525 -0.6000000238418579</gx:coord> +<when>2013-07-25T20:25:04.000Z</when> +<gx:coord>-75.264237 40.058563 -0.699999988079071</gx:coord> +<when>2013-07-25T20:25:05.000Z</when> +<gx:coord>-75.264266 40.058598 -0.10000000149011612</gx:coord> +<when>2013-07-25T20:25:06.000Z</when> +<gx:coord>-75.264296 40.058632 1.100000023841858</gx:coord> +<when>2013-07-25T20:25:07.000Z</when> +<gx:coord>-75.264326 40.058668 1.7999999523162842</gx:coord> +<when>2013-07-25T20:25:08.000Z</when> +<gx:coord>-75.264358 40.058703 2.200000047683716</gx:coord> +<when>2013-07-25T20:25:09.000Z</when> +<gx:coord>-75.264405 40.058754 0.8999999761581421</gx:coord> +<when>2013-07-25T20:25:10.000Z</when> +<gx:coord>-75.264436 40.0588 0.0</gx:coord> +<when>2013-07-25T20:25:11.000Z</when> +<gx:coord>-75.26447 40.058834 0.800000011920929</gx:coord> +<when>2013-07-25T20:25:12.000Z</when> +<gx:coord>-75.264499 40.058871 0.800000011920929</gx:coord> +<when>2013-07-25T20:25:13.000Z</when> +<gx:coord>-75.264528 40.058905 1.5</gx:coord> +<when>2013-07-25T20:25:14.000Z</when> +<gx:coord>-75.264568 40.058933 1.5</gx:coord> +<when>2013-07-25T20:25:15.000Z</when> +<gx:coord>-75.2646 40.058964 2.0</gx:coord> +<when>2013-07-25T20:25:16.000Z</when> +<gx:coord>-75.264639 40.059003 2.5</gx:coord> +<when>2013-07-25T20:25:17.000Z</when> +<gx:coord>-75.264669 40.059037 2.700000047683716</gx:coord> +<when>2013-07-25T20:25:18.000Z</when> +<gx:coord>-75.264729 40.05909 0.4000000059604645</gx:coord> +<when>2013-07-25T20:25:19.000Z</when> +<gx:coord>-75.264782 40.059131 -1.2000000476837158</gx:coord> +<when>2013-07-25T20:25:20.000Z</when> +<gx:coord>-75.264831 40.059167 -1.2000000476837158</gx:coord> +<when>2013-07-25T20:25:21.000Z</when> +<gx:coord>-75.26486 40.059185 -0.800000011920929</gx:coord> +<when>2013-07-25T20:25:22.000Z</when> +<gx:coord>-75.264907 40.059215 -0.5</gx:coord> +<when>2013-07-25T20:25:23.000Z</when> +<gx:coord>-75.26494 40.059241 -0.4000000059604645</gx:coord> +<when>2013-07-25T20:25:24.000Z</when> +<gx:coord>-75.264967 40.059272 -1.100000023841858</gx:coord> +<when>2013-07-25T20:25:25.000Z</when> +<gx:coord>-75.265001 40.059303 -1.2999999523162842</gx:coord> +<when>2013-07-25T20:25:26.000Z</when> +<gx:coord>-75.265042 40.059327 -0.4000000059604645</gx:coord> +<when>2013-07-25T20:25:27.000Z</when> +<gx:coord>-75.26508 40.059351 0.10000000149011612</gx:coord> +<when>2013-07-25T20:25:28.000Z</when> +<gx:coord>-75.265097 40.059368 2.0</gx:coord> +<when>2013-07-25T20:25:29.000Z</when> +<gx:coord>-75.265141 40.059402 1.100000023841858</gx:coord> +<when>2013-07-25T20:25:30.000Z</when> +<gx:coord>-75.265183 40.059427 1.100000023841858</gx:coord> +<when>2013-07-25T20:25:31.000Z</when> +<gx:coord>-75.26522 40.059461 0.0</gx:coord> +<when>2013-07-25T20:25:32.000Z</when> +<gx:coord>-75.265233 40.059476 3.299999952316284</gx:coord> +<when>2013-07-25T20:25:33.000Z</when> +<gx:coord>-75.265251 40.059502 4.900000095367432</gx:coord> +<when>2013-07-25T20:25:34.000Z</when> +<gx:coord>-75.265259 40.059528 6.699999809265137</gx:coord> +<when>2013-07-25T20:25:35.000Z</when> +<gx:coord>-75.265282 40.05955 7.599999904632568</gx:coord> +<when>2013-07-25T20:25:36.000Z</when> +<gx:coord>-75.265304 40.059573 7.800000190734863</gx:coord> +<when>2013-07-25T20:25:37.000Z</when> +<gx:coord>-75.265339 40.059594 8.399999618530273</gx:coord> +<when>2013-07-25T20:25:38.000Z</when> +<gx:coord>-75.265373 40.059616 8.399999618530273</gx:coord> +<when>2013-07-25T20:25:39.000Z</when> +<gx:coord>-75.265395 40.059646 8.0</gx:coord> +<when>2013-07-25T20:25:40.000Z</when> +<gx:coord>-75.265422 40.059674 11.899999618530273</gx:coord> +<when>2013-07-25T20:25:41.000Z</when> +<gx:coord>-75.265458 40.059704 11.600000381469727</gx:coord> +<when>2013-07-25T20:25:42.000Z</when> +<gx:coord>-75.265497 40.059733 12.0</gx:coord> +<when>2013-07-25T20:25:43.000Z</when> +<gx:coord>-75.265541 40.059761 12.0</gx:coord> +<when>2013-07-25T20:25:44.000Z</when> +<gx:coord>-75.265652 40.059803 3.5999999046325684</gx:coord> +<when>2013-07-25T20:25:45.000Z</when> +<gx:coord>-75.26571 40.059829 3.0999999046325684</gx:coord> +<when>2013-07-25T20:25:47.000Z</when> +<gx:coord>-75.265761 40.05985 12.399999618530273</gx:coord> +<when>2013-07-25T20:25:48.000Z</when> +<gx:coord>-75.265791 40.059873 14.899999618530273</gx:coord> +<when>2013-07-25T20:25:49.000Z</when> +<gx:coord>-75.265823 40.059894 18.899999618530273</gx:coord> +<when>2013-07-25T20:25:50.000Z</when> +<gx:coord>-75.265871 40.059927 20.299999237060547</gx:coord> +<when>2013-07-25T20:25:51.000Z</when> +<gx:coord>-75.265922 40.059953 20.100000381469727</gx:coord> +<when>2013-07-25T20:25:52.000Z</when> +<gx:coord>-75.265966 40.059972 20.0</gx:coord> +<when>2013-07-25T20:25:53.000Z</when> +<gx:coord>-75.266004 40.059994 20.299999237060547</gx:coord> +<when>2013-07-25T20:25:54.000Z</when> +<gx:coord>-75.266026 40.060016 20.700000762939453</gx:coord> +<when>2013-07-25T20:25:55.000Z</when> +<gx:coord>-75.266062 40.060039 21.100000381469727</gx:coord> +<when>2013-07-25T20:25:56.000Z</when> +<gx:coord>-75.266158 40.060096 19.700000762939453</gx:coord> +<when>2013-07-25T20:25:57.000Z</when> +<gx:coord>-75.266214 40.060137 18.299999237060547</gx:coord> +<when>2013-07-25T20:25:58.000Z</when> +<gx:coord>-75.266267 40.060164 18.100000381469727</gx:coord> +<when>2013-07-25T20:25:59.000Z</when> +<gx:coord>-75.266314 40.060192 18.200000762939453</gx:coord> +<when>2013-07-25T20:26:00.000Z</when> +<gx:coord>-75.266372 40.060216 16.600000381469727</gx:coord> +<when>2013-07-25T20:26:01.000Z</when> +<gx:coord>-75.266412 40.060252 17.399999618530273</gx:coord> +<when>2013-07-25T20:26:02.000Z</when> +<gx:coord>-75.266467 40.060287 16.299999237060547</gx:coord> +<when>2013-07-25T20:26:03.000Z</when> +<gx:coord>-75.266512 40.060326 15.600000381469727</gx:coord> +<when>2013-07-25T20:26:04.000Z</when> +<gx:coord>-75.266559 40.06036 15.300000190734863</gx:coord> +<when>2013-07-25T20:26:05.000Z</when> +<gx:coord>-75.266603 40.060401 14.699999809265137</gx:coord> +<when>2013-07-25T20:26:06.000Z</when> +<gx:coord>-75.266647 40.060431 14.0</gx:coord> +<when>2013-07-25T20:26:07.000Z</when> +<gx:coord>-75.266701 40.060458 13.600000381469727</gx:coord> +<when>2013-07-25T20:26:08.000Z</when> +<gx:coord>-75.266749 40.06049 13.899999618530273</gx:coord> +<when>2013-07-25T20:26:09.000Z</when> +<gx:coord>-75.266793 40.060517 14.699999809265137</gx:coord> +<when>2013-07-25T20:26:10.000Z</when> +<gx:coord>-75.266839 40.060541 13.899999618530273</gx:coord> +<when>2013-07-25T20:26:11.000Z</when> +<gx:coord>-75.266882 40.060567 14.199999809265137</gx:coord> +<when>2013-07-25T20:26:12.000Z</when> +<gx:coord>-75.266934 40.060601 14.100000381469727</gx:coord> +<when>2013-07-25T20:26:13.000Z</when> +<gx:coord>-75.266989 40.060631 13.600000381469727</gx:coord> +<when>2013-07-25T20:26:14.000Z</when> +<gx:coord>-75.267037 40.06066 13.699999809265137</gx:coord> +<when>2013-07-25T20:26:15.000Z</when> +<gx:coord>-75.267085 40.060694 13.800000190734863</gx:coord> +<when>2013-07-25T20:26:16.000Z</when> +<gx:coord>-75.267133 40.060732 13.399999618530273</gx:coord> +<when>2013-07-25T20:26:17.000Z</when> +<gx:coord>-75.267182 40.060763 13.199999809265137</gx:coord> +<when>2013-07-25T20:26:18.000Z</when> +<gx:coord>-75.26723 40.060793 13.199999809265137</gx:coord> +<when>2013-07-25T20:26:19.000Z</when> +<gx:coord>-75.267278 40.060824 13.100000381469727</gx:coord> +<when>2013-07-25T20:26:20.000Z</when> +<gx:coord>-75.267325 40.060853 14.0</gx:coord> +<when>2013-07-25T20:26:21.000Z</when> +<gx:coord>-75.267373 40.060878 14.199999809265137</gx:coord> +<when>2013-07-25T20:26:22.000Z</when> +<gx:coord>-75.267423 40.060904 14.300000190734863</gx:coord> +<when>2013-07-25T20:26:23.000Z</when> +<gx:coord>-75.267462 40.060932 15.199999809265137</gx:coord> +<when>2013-07-25T20:26:24.000Z</when> +<gx:coord>-75.267499 40.060953 17.799999237060547</gx:coord> +<when>2013-07-25T20:26:25.000Z</when> +<gx:coord>-75.267565 40.060997 13.600000381469727</gx:coord> +<when>2013-07-25T20:26:26.000Z</when> +<gx:coord>-75.267603 40.061006 13.600000381469727</gx:coord> +<when>2013-07-25T20:26:27.000Z</when> +<gx:coord>-75.267648 40.061019 13.5</gx:coord> +<when>2013-07-25T20:26:28.000Z</when> +<gx:coord>-75.267691 40.061028 14.600000381469727</gx:coord> +<when>2013-07-25T20:26:29.000Z</when> +<gx:coord>-75.267738 40.061041 14.399999618530273</gx:coord> +<when>2013-07-25T20:26:30.000Z</when> +<gx:coord>-75.267781 40.061062 13.699999809265137</gx:coord> +<when>2013-07-25T20:26:31.000Z</when> +<gx:coord>-75.267856 40.061141 11.0</gx:coord> +<when>2013-07-25T20:26:32.000Z</when> +<gx:coord>-75.267903 40.061181 11.199999809265137</gx:coord> +<when>2013-07-25T20:26:33.000Z</when> +<gx:coord>-75.267953 40.06121 11.800000190734863</gx:coord> +<when>2013-07-25T20:26:34.000Z</when> +<gx:coord>-75.267989 40.061246 11.899999618530273</gx:coord> +<when>2013-07-25T20:26:35.000Z</when> +<gx:coord>-75.268022 40.061273 12.0</gx:coord> +<when>2013-07-25T20:26:36.000Z</when> +<gx:coord>-75.268104 40.061351 7.199999809265137</gx:coord> +<when>2013-07-25T20:26:37.000Z</when> +<gx:coord>-75.268166 40.061385 6.699999809265137</gx:coord> +<when>2013-07-25T20:26:38.000Z</when> +<gx:coord>-75.26822 40.061417 7.199999809265137</gx:coord> +<when>2013-07-25T20:26:39.000Z</when> +<gx:coord>-75.268273 40.061453 7.199999809265137</gx:coord> +<when>2013-07-25T20:26:40.000Z</when> +<gx:coord>-75.268321 40.061491 8.300000190734863</gx:coord> +<when>2013-07-25T20:26:41.000Z</when> +<gx:coord>-75.268374 40.061523 9.100000381469727</gx:coord> +<when>2013-07-25T20:26:42.000Z</when> +<gx:coord>-75.268426 40.061553 9.399999618530273</gx:coord> +<when>2013-07-25T20:26:43.000Z</when> +<gx:coord>-75.268479 40.06158 9.5</gx:coord> +<when>2013-07-25T20:26:44.000Z</when> +<gx:coord>-75.268532 40.061629 9.600000381469727</gx:coord> +<when>2013-07-25T20:26:45.000Z</when> +<gx:coord>-75.268583 40.061668 9.0</gx:coord> +<when>2013-07-25T20:26:46.000Z</when> +<gx:coord>-75.268637 40.0617 8.899999618530273</gx:coord> +<when>2013-07-25T20:26:47.000Z</when> +<gx:coord>-75.268684 40.06173 8.800000190734863</gx:coord> +<when>2013-07-25T20:26:48.000Z</when> +<gx:coord>-75.268693 40.061756 9.600000381469727</gx:coord> +<when>2013-07-25T20:26:49.000Z</when> +<gx:coord>-75.268725 40.061785 12.600000381469727</gx:coord> +<when>2013-07-25T20:26:50.000Z</when> +<gx:coord>-75.268793 40.061818 13.699999809265137</gx:coord> +<when>2013-07-25T20:26:51.000Z</when> +<gx:coord>-75.268858 40.061865 15.100000381469727</gx:coord> +<when>2013-07-25T20:26:52.000Z</when> +<gx:coord>-75.268907 40.061898 16.200000762939453</gx:coord> +<when>2013-07-25T20:26:53.000Z</when> +<gx:coord>-75.268971 40.061926 16.399999618530273</gx:coord> +<when>2013-07-25T20:26:54.000Z</when> +<gx:coord>-75.26903 40.061955 18.100000381469727</gx:coord> +<when>2013-07-25T20:26:55.000Z</when> +<gx:coord>-75.269082 40.061996 17.0</gx:coord> +<when>2013-07-25T20:26:56.000Z</when> +<gx:coord>-75.26912 40.062027 17.299999237060547</gx:coord> +<when>2013-07-25T20:26:57.000Z</when> +<gx:coord>-75.269191 40.062064 17.5</gx:coord> +<when>2013-07-25T20:26:58.000Z</when> +<gx:coord>-75.269243 40.0621 17.299999237060547</gx:coord> +<when>2013-07-25T20:26:59.000Z</when> +<gx:coord>-75.269298 40.062138 17.5</gx:coord> +<when>2013-07-25T20:27:00.000Z</when> +<gx:coord>-75.269368 40.062171 18.100000381469727</gx:coord> +<when>2013-07-25T20:27:01.000Z</when> +<gx:coord>-75.269422 40.062206 17.899999618530273</gx:coord> +<when>2013-07-25T20:27:02.000Z</when> +<gx:coord>-75.269467 40.062232 18.600000381469727</gx:coord> +<when>2013-07-25T20:27:03.000Z</when> +<gx:coord>-75.269498 40.062262 19.0</gx:coord> +<when>2013-07-25T20:27:04.000Z</when> +<gx:coord>-75.269586 40.062296 17.700000762939453</gx:coord> +<when>2013-07-25T20:27:05.000Z</when> +<gx:coord>-75.269634 40.062321 17.700000762939453</gx:coord> +<when>2013-07-25T20:27:06.000Z</when> +<gx:coord>-75.269655 40.062339 18.600000381469727</gx:coord> +<when>2013-07-25T20:27:07.000Z</when> +<gx:coord>-75.269696 40.06237 19.600000381469727</gx:coord> +<when>2013-07-25T20:27:08.000Z</when> +<gx:coord>-75.269745 40.062397 21.100000381469727</gx:coord> +<when>2013-07-25T20:27:09.000Z</when> +<gx:coord>-75.269796 40.062429 21.5</gx:coord> +<when>2013-07-25T20:27:10.000Z</when> +<gx:coord>-75.269873 40.06248 19.600000381469727</gx:coord> +<when>2013-07-25T20:27:11.000Z</when> +<gx:coord>-75.269933 40.062514 19.100000381469727</gx:coord> +<when>2013-07-25T20:27:12.000Z</when> +<gx:coord>-75.269981 40.062552 18.899999618530273</gx:coord> +<when>2013-07-25T20:27:13.000Z</when> +<gx:coord>-75.270018 40.062602 17.600000381469727</gx:coord> +<when>2013-07-25T20:27:14.000Z</when> +<gx:coord>-75.270045 40.062633 19.700000762939453</gx:coord> +<when>2013-07-25T20:27:15.000Z</when> +<gx:coord>-75.270097 40.062664 20.5</gx:coord> +<when>2013-07-25T20:27:16.000Z</when> +<gx:coord>-75.270163 40.062683 19.700000762939453</gx:coord> +<when>2013-07-25T20:27:17.000Z</when> +<gx:coord>-75.270189 40.062716 21.899999618530273</gx:coord> +<when>2013-07-25T20:27:18.000Z</when> +<gx:coord>-75.270239 40.062744 21.399999618530273</gx:coord> +<when>2013-07-25T20:27:19.000Z</when> +<gx:coord>-75.270295 40.062786 21.100000381469727</gx:coord> +<when>2013-07-25T20:27:20.000Z</when> +<gx:coord>-75.270338 40.062811 22.0</gx:coord> +<when>2013-07-25T20:27:21.000Z</when> +<gx:coord>-75.270396 40.062848 21.5</gx:coord> +<when>2013-07-25T20:27:22.000Z</when> +<gx:coord>-75.270434 40.062888 20.600000381469727</gx:coord> +<when>2013-07-25T20:27:23.000Z</when> +<gx:coord>-75.270475 40.062924 20.299999237060547</gx:coord> +<when>2013-07-25T20:27:24.000Z</when> +<gx:coord>-75.270544 40.062974 17.600000381469727</gx:coord> +<when>2013-07-25T20:27:25.000Z</when> +<gx:coord>-75.270593 40.063014 16.100000381469727</gx:coord> +<when>2013-07-25T20:27:26.000Z</when> +<gx:coord>-75.270649 40.063055 13.800000190734863</gx:coord> +<when>2013-07-25T20:27:27.000Z</when> +<gx:coord>-75.270696 40.063083 13.0</gx:coord> +<when>2013-07-25T20:27:28.000Z</when> +<gx:coord>-75.270744 40.063113 13.0</gx:coord> +<when>2013-07-25T20:27:29.000Z</when> +<gx:coord>-75.270784 40.063148 12.899999618530273</gx:coord> +<when>2013-07-25T20:27:30.000Z</when> +<gx:coord>-75.270844 40.063171 12.5</gx:coord> +<when>2013-07-25T20:27:31.000Z</when> +<gx:coord>-75.270898 40.063192 12.300000190734863</gx:coord> +<when>2013-07-25T20:27:32.000Z</when> +<gx:coord>-75.270963 40.063251 11.800000190734863</gx:coord> +<when>2013-07-25T20:27:33.000Z</when> +<gx:coord>-75.271019 40.063299 10.899999618530273</gx:coord> +<when>2013-07-25T20:27:34.000Z</when> +<gx:coord>-75.271064 40.063327 10.300000190734863</gx:coord> +<when>2013-07-25T20:27:35.000Z</when> +<gx:coord>-75.271087 40.063347 10.800000190734863</gx:coord> +<when>2013-07-25T20:27:36.000Z</when> +<gx:coord>-75.271123 40.06337 10.899999618530273</gx:coord> +<when>2013-07-25T20:27:37.000Z</when> +<gx:coord>-75.271168 40.063402 9.600000381469727</gx:coord> +<when>2013-07-25T20:27:37.999Z</when> +<gx:coord>-75.271202 40.063428 9.600000381469727</gx:coord> +<when>2013-07-25T20:27:39.000Z</when> +<gx:coord>-75.271251 40.063473 9.600000381469727</gx:coord> +<when>2013-07-25T20:27:40.000Z</when> +<gx:coord>-75.271315 40.063508 8.600000381469727</gx:coord> +<when>2013-07-25T20:27:41.001Z</when> +<gx:coord>-75.271357 40.063538 8.199999809265137</gx:coord> +<when>2013-07-25T20:27:42.000Z</when> +<gx:coord>-75.271389 40.063562 7.5</gx:coord> +<when>2013-07-25T20:27:43.000Z</when> +<gx:coord>-75.271435 40.063598 4.400000095367432</gx:coord> +<when>2013-07-25T20:27:44.000Z</when> +<gx:coord>-75.271486 40.063637 3.4000000953674316</gx:coord> +<when>2013-07-25T20:27:45.000Z</when> +<gx:coord>-75.27153 40.063665 4.699999809265137</gx:coord> +<when>2013-07-25T20:27:46.000Z</when> +<gx:coord>-75.271585 40.063681 9.0</gx:coord> +<when>2013-07-25T20:27:47.000Z</when> +<gx:coord>-75.271631 40.063697 10.300000190734863</gx:coord> +<when>2013-07-25T20:27:48.000Z</when> +<gx:coord>-75.271675 40.063713 11.399999618530273</gx:coord> +<when>2013-07-25T20:27:49.000Z</when> +<gx:coord>-75.271731 40.063774 7.199999809265137</gx:coord> +<when>2013-07-25T20:27:49.999Z</when> +<gx:coord>-75.271776 40.063808 5.900000095367432</gx:coord> +<when>2013-07-25T20:27:51.000Z</when> +<gx:coord>-75.271834 40.063835 8.800000190734863</gx:coord> +<when>2013-07-25T20:27:52.000Z</when> +<gx:coord>-75.271896 40.063874 8.100000381469727</gx:coord> +<when>2013-07-25T20:27:53.000Z</when> +<gx:coord>-75.271939 40.063904 8.0</gx:coord> +<when>2013-07-25T20:27:54.000Z</when> +<gx:coord>-75.272011 40.06393 8.0</gx:coord> +<when>2013-07-25T20:27:55.000Z</when> +<gx:coord>-75.272042 40.063962 8.600000381469727</gx:coord> +<when>2013-07-25T20:27:56.000Z</when> +<gx:coord>-75.272073 40.063987 9.300000190734863</gx:coord> +<when>2013-07-25T20:27:57.000Z</when> +<gx:coord>-75.272156 40.064044 6.599999904632568</gx:coord> +<when>2013-07-25T20:27:58.000Z</when> +<gx:coord>-75.272207 40.064068 7.900000095367432</gx:coord> +<when>2013-07-25T20:27:59.000Z</when> +<gx:coord>-75.272265 40.064098 9.0</gx:coord> +<when>2013-07-25T20:28:00.000Z</when> +<gx:coord>-75.272317 40.064123 9.5</gx:coord> +<when>2013-07-25T20:28:01.000Z</when> +<gx:coord>-75.272354 40.064151 10.100000381469727</gx:coord> +<when>2013-07-25T20:28:02.000Z</when> +<gx:coord>-75.272384 40.064176 10.0</gx:coord> +<when>2013-07-25T20:28:03.000Z</when> +<gx:coord>-75.272441 40.064209 10.100000381469727</gx:coord> +<when>2013-07-25T20:28:04.000Z</when> +<gx:coord>-75.272496 40.064257 9.399999618530273</gx:coord> +<when>2013-07-25T20:28:05.000Z</when> +<gx:coord>-75.272539 40.064285 9.399999618530273</gx:coord> +<when>2013-07-25T20:28:06.000Z</when> +<gx:coord>-75.272587 40.064314 9.100000381469727</gx:coord> +<when>2013-07-25T20:28:07.000Z</when> +<gx:coord>-75.272642 40.064343 10.199999809265137</gx:coord> +<when>2013-07-25T20:28:08.000Z</when> +<gx:coord>-75.272695 40.0644 8.699999809265137</gx:coord> +<when>2013-07-25T20:28:09.000Z</when> +<gx:coord>-75.272753 40.064447 7.5</gx:coord> +<when>2013-07-25T20:28:10.000Z</when> +<gx:coord>-75.272804 40.064482 7.5</gx:coord> +<when>2013-07-25T20:28:11.000Z</when> +<gx:coord>-75.272818 40.06451 7.900000095367432</gx:coord> +<when>2013-07-25T20:28:11.999Z</when> +<gx:coord>-75.272846 40.06454 7.900000095367432</gx:coord> +<when>2013-07-25T20:28:13.000Z</when> +<gx:coord>-75.272913 40.064612 6.699999809265137</gx:coord> +<when>2013-07-25T20:28:14.000Z</when> +<gx:coord>-75.272956 40.06464 7.5</gx:coord> +<when>2013-07-25T20:28:15.000Z</when> +<gx:coord>-75.273011 40.064683 5.900000095367432</gx:coord> +<when>2013-07-25T20:28:16.000Z</when> +<gx:coord>-75.273049 40.064713 5.699999809265137</gx:coord> +<when>2013-07-25T20:28:17.000Z</when> +<gx:coord>-75.273105 40.06477 3.200000047683716</gx:coord> +<when>2013-07-25T20:28:18.000Z</when> +<gx:coord>-75.273146 40.064812 3.4000000953674316</gx:coord> +<when>2013-07-25T20:28:18.999Z</when> +<gx:coord>-75.273185 40.064853 3.0999999046325684</gx:coord> +<when>2013-07-25T20:28:20.000Z</when> +<gx:coord>-75.273226 40.064888 3.0</gx:coord> +<when>2013-07-25T20:28:21.000Z</when> +<gx:coord>-75.27327 40.064917 3.4000000953674316</gx:coord> +<when>2013-07-25T20:28:22.000Z</when> +<gx:coord>-75.273309 40.064965 3.0</gx:coord> +<when>2013-07-25T20:28:22.999Z</when> +<gx:coord>-75.273347 40.065004 3.4000000953674316</gx:coord> +<when>2013-07-25T20:28:24.000Z</when> +<gx:coord>-75.273338 40.065017 7.0</gx:coord> +<when>2013-07-25T20:28:25.000Z</when> +<gx:coord>-75.27335 40.065051 8.199999809265137</gx:coord> +<when>2013-07-25T20:28:26.000Z</when> +<gx:coord>-75.273385 40.065097 8.100000381469727</gx:coord> +<when>2013-07-25T20:28:26.999Z</when> +<gx:coord>-75.273414 40.065135 8.300000190734863</gx:coord> +<when>2013-07-25T20:28:28.000Z</when> +<gx:coord>-75.27347 40.0652 5.5</gx:coord> +<when>2013-07-25T20:28:29.000Z</when> +<gx:coord>-75.273526 40.065259 4.0</gx:coord> +<when>2013-07-25T20:28:30.000Z</when> +<gx:coord>-75.27358 40.065306 3.700000047683716</gx:coord> +<when>2013-07-25T20:28:31.000Z</when> +<gx:coord>-75.273626 40.06536 3.0</gx:coord> +<when>2013-07-25T20:28:32.000Z</when> +<gx:coord>-75.27368 40.065407 1.399999976158142</gx:coord> +<when>2013-07-25T20:28:33.000Z</when> +<gx:coord>-75.273717 40.065444 1.7000000476837158</gx:coord> +<when>2013-07-25T20:28:34.000Z</when> +<gx:coord>-75.273735 40.065474 2.299999952316284</gx:coord> +<when>2013-07-25T20:28:35.000Z</when> +<gx:coord>-75.273772 40.065505 4.0</gx:coord> +<when>2013-07-25T20:28:36.000Z</when> +<gx:coord>-75.273807 40.065546 4.699999809265137</gx:coord> +<when>2013-07-25T20:28:37.000Z</when> +<gx:coord>-75.273842 40.065597 4.5</gx:coord> +<when>2013-07-25T20:28:38.001Z</when> +<gx:coord>-75.273873 40.065643 4.199999809265137</gx:coord> +<when>2013-07-25T20:28:39.000Z</when> +<gx:coord>-75.273914 40.065688 3.5999999046325684</gx:coord> +<when>2013-07-25T20:28:40.000Z</when> +<gx:coord>-75.273947 40.065733 3.299999952316284</gx:coord> +<when>2013-07-25T20:28:41.000Z</when> +<gx:coord>-75.273977 40.065774 4.900000095367432</gx:coord> +<when>2013-07-25T20:28:42.000Z</when> +<gx:coord>-75.274018 40.065821 4.0</gx:coord> +<when>2013-07-25T20:28:43.001Z</when> +<gx:coord>-75.274052 40.065863 4.300000190734863</gx:coord> +<when>2013-07-25T20:28:44.000Z</when> +<gx:coord>-75.27407 40.065894 3.299999952316284</gx:coord> +<when>2013-07-25T20:28:45.000Z</when> +<gx:coord>-75.274129 40.065927 2.700000047683716</gx:coord> +<when>2013-07-25T20:28:46.000Z</when> +<gx:coord>-75.274163 40.065966 2.5</gx:coord> +<when>2013-07-25T20:28:47.000Z</when> +<gx:coord>-75.274186 40.066034 2.0999999046325684</gx:coord> +<when>2013-07-25T20:28:48.000Z</when> +<gx:coord>-75.274218 40.066079 2.799999952316284</gx:coord> +<when>2013-07-25T20:28:49.000Z</when> +<gx:coord>-75.274299 40.066132 0.699999988079071</gx:coord> +<when>2013-07-25T20:28:50.000Z</when> +<gx:coord>-75.274357 40.066178 1.0</gx:coord> +<when>2013-07-25T20:28:51.000Z</when> +<gx:coord>-75.27437 40.06623 1.899999976158142</gx:coord> +<when>2013-07-25T20:28:52.000Z</when> +<gx:coord>-75.274395 40.066274 3.4000000953674316</gx:coord> +<when>2013-07-25T20:28:53.000Z</when> +<gx:coord>-75.274409 40.066318 3.5999999046325684</gx:coord> +<when>2013-07-25T20:28:54.000Z</when> +<gx:coord>-75.274438 40.066362 3.9000000953674316</gx:coord> +<when>2013-07-25T20:28:55.000Z</when> +<gx:coord>-75.27447 40.066406 2.4000000953674316</gx:coord> +<when>2013-07-25T20:28:56.000Z</when> +<gx:coord>-75.274498 40.066446 0.8999999761581421</gx:coord> +<when>2013-07-25T20:28:57.000Z</when> +<gx:coord>-75.274518 40.066492 -0.20000000298023224</gx:coord> +<when>2013-07-25T20:28:58.000Z</when> +<gx:coord>-75.27454 40.066525 -1.0</gx:coord> +<when>2013-07-25T20:28:59.000Z</when> +<gx:coord>-75.274562 40.066567 -1.600000023841858</gx:coord> +<when>2013-07-25T20:29:00.000Z</when> +<gx:coord>-75.274593 40.066617 -1.7000000476837158</gx:coord> +<when>2013-07-25T20:29:01.000Z</when> +<gx:coord>-75.274621 40.066662 -2.5</gx:coord> +<when>2013-07-25T20:29:02.000Z</when> +<gx:coord>-75.274651 40.066708 -2.5999999046325684</gx:coord> +<when>2013-07-25T20:29:03.000Z</when> +<gx:coord>-75.274676 40.066758 -2.5</gx:coord> +<when>2013-07-25T20:29:04.000Z</when> +<gx:coord>-75.27471 40.066802 -0.30000001192092896</gx:coord> +<when>2013-07-25T20:29:05.000Z</when> +<gx:coord>-75.274743 40.066851 0.6000000238418579</gx:coord> +<when>2013-07-25T20:29:05.999Z</when> +<gx:coord>-75.274785 40.066895 1.100000023841858</gx:coord> +<when>2013-07-25T20:29:07.000Z</when> +<gx:coord>-75.274813 40.066942 1.0</gx:coord> +<when>2013-07-25T20:29:08.001Z</when> +<gx:coord>-75.274843 40.066988 1.0</gx:coord> +<when>2013-07-25T20:29:09.000Z</when> +<gx:coord>-75.274872 40.067038 0.8999999761581421</gx:coord> +<when>2013-07-25T20:29:10.000Z</when> +<gx:coord>-75.274901 40.067082 0.6000000238418579</gx:coord> +<when>2013-07-25T20:29:11.000Z</when> +<gx:coord>-75.27495 40.06713 2.799999952316284</gx:coord> +<when>2013-07-25T20:29:12.000Z</when> +<gx:coord>-75.27499 40.067189 2.200000047683716</gx:coord> +<when>2013-07-25T20:29:13.000Z</when> +<gx:coord>-75.275022 40.067236 1.899999976158142</gx:coord> +<when>2013-07-25T20:29:14.000Z</when> +<gx:coord>-75.275054 40.067294 2.5</gx:coord> +<when>2013-07-25T20:29:15.000Z</when> +<gx:coord>-75.275095 40.067336 2.700000047683716</gx:coord> +<when>2013-07-25T20:29:16.000Z</when> +<gx:coord>-75.27514 40.067371 3.0</gx:coord> +<when>2013-07-25T20:29:17.000Z</when> +<gx:coord>-75.275151 40.067436 2.0999999046325684</gx:coord> +<when>2013-07-25T20:29:18.000Z</when> +<gx:coord>-75.275177 40.067489 3.5</gx:coord> +<when>2013-07-25T20:29:19.000Z</when> +<gx:coord>-75.275206 40.067547 2.299999952316284</gx:coord> +<when>2013-07-25T20:29:20.000Z</when> +<gx:coord>-75.275245 40.067597 3.0</gx:coord> +<when>2013-07-25T20:29:21.000Z</when> +<gx:coord>-75.275289 40.06763 3.200000047683716</gx:coord> +<when>2013-07-25T20:29:22.000Z</when> +<gx:coord>-75.275319 40.067676 4.0</gx:coord> +<when>2013-07-25T20:29:23.000Z</when> +<gx:coord>-75.27536 40.067728 3.4000000953674316</gx:coord> +<when>2013-07-25T20:29:24.000Z</when> +<gx:coord>-75.275404 40.067775 5.099999904632568</gx:coord> +<when>2013-07-25T20:29:25.000Z</when> +<gx:coord>-75.275404 40.067811 5.900000095367432</gx:coord> +<when>2013-07-25T20:29:26.000Z</when> +<gx:coord>-75.275428 40.067856 5.599999904632568</gx:coord> +<when>2013-07-25T20:29:27.000Z</when> +<gx:coord>-75.275483 40.067906 5.099999904632568</gx:coord> +<when>2013-07-25T20:29:28.000Z</when> +<gx:coord>-75.27553 40.067954 5.0</gx:coord> +<when>2013-07-25T20:29:29.000Z</when> +<gx:coord>-75.275562 40.068002 5.199999809265137</gx:coord> +<when>2013-07-25T20:29:30.000Z</when> +<gx:coord>-75.275586 40.068051 4.900000095367432</gx:coord> +<when>2013-07-25T20:29:31.000Z</when> +<gx:coord>-75.275615 40.068103 4.800000190734863</gx:coord> +<when>2013-07-25T20:29:32.000Z</when> +<gx:coord>-75.27566 40.068145 4.900000095367432</gx:coord> +<when>2013-07-25T20:29:33.000Z</when> +<gx:coord>-75.275709 40.068185 5.599999904632568</gx:coord> +<when>2013-07-25T20:29:34.000Z</when> +<gx:coord>-75.275737 40.068233 5.900000095367432</gx:coord> +<when>2013-07-25T20:29:35.000Z</when> +<gx:coord>-75.275755 40.068284 6.0</gx:coord> +<when>2013-07-25T20:29:36.000Z</when> +<gx:coord>-75.275796 40.068334 5.699999809265137</gx:coord> +<when>2013-07-25T20:29:37.000Z</when> +<gx:coord>-75.275835 40.068377 5.900000095367432</gx:coord> +<when>2013-07-25T20:29:38.000Z</when> +<gx:coord>-75.275872 40.068428 5.5</gx:coord> +<when>2013-07-25T20:29:39.000Z</when> +<gx:coord>-75.275914 40.068472 4.800000190734863</gx:coord> +<when>2013-07-25T20:29:40.000Z</when> +<gx:coord>-75.275963 40.068517 5.099999904632568</gx:coord> +<when>2013-07-25T20:29:41.000Z</when> +<gx:coord>-75.275988 40.068559 5.0</gx:coord> +<when>2013-07-25T20:29:42.000Z</when> +<gx:coord>-75.276018 40.068611 3.4000000953674316</gx:coord> +<when>2013-07-25T20:29:43.000Z</when> +<gx:coord>-75.276047 40.068654 3.799999952316284</gx:coord> +<when>2013-07-25T20:29:44.000Z</when> +<gx:coord>-75.276072 40.068704 3.200000047683716</gx:coord> +<when>2013-07-25T20:29:45.000Z</when> +<gx:coord>-75.276097 40.068753 1.7000000476837158</gx:coord> +<when>2013-07-25T20:29:46.000Z</when> +<gx:coord>-75.276132 40.068795 2.4000000953674316</gx:coord> +<when>2013-07-25T20:29:47.000Z</when> +<gx:coord>-75.27615 40.068844 1.2999999523162842</gx:coord> +<when>2013-07-25T20:29:48.000Z</when> +<gx:coord>-75.276176 40.068891 1.0</gx:coord> +<when>2013-07-25T20:29:49.000Z</when> +<gx:coord>-75.276211 40.068921 1.399999976158142</gx:coord> +<when>2013-07-25T20:29:50.000Z</when> +<gx:coord>-75.276245 40.068974 2.200000047683716</gx:coord> +<when>2013-07-25T20:29:51.000Z</when> +<gx:coord>-75.276286 40.069018 1.7999999523162842</gx:coord> +<when>2013-07-25T20:29:52.000Z</when> +<gx:coord>-75.276318 40.069071 1.5</gx:coord> +<when>2013-07-25T20:29:53.000Z</when> +<gx:coord>-75.276328 40.069126 -0.20000000298023224</gx:coord> +<when>2013-07-25T20:29:54.000Z</when> +<gx:coord>-75.276373 40.069163 -0.30000001192092896</gx:coord> +<when>2013-07-25T20:29:55.000Z</when> +<gx:coord>-75.276419 40.069195 1.600000023841858</gx:coord> +<when>2013-07-25T20:29:56.000Z</when> +<gx:coord>-75.27645 40.069249 1.0</gx:coord> +<when>2013-07-25T20:29:57.000Z</when> +<gx:coord>-75.276472 40.06929 0.5</gx:coord> +<when>2013-07-25T20:29:58.000Z</when> +<gx:coord>-75.276505 40.069332 0.0</gx:coord> +<when>2013-07-25T20:29:59.000Z</when> +<gx:coord>-75.27654 40.069372 0.0</gx:coord> +<when>2013-07-25T20:30:00.000Z</when> +<gx:coord>-75.276573 40.069414 0.0</gx:coord> +<when>2013-07-25T20:30:01.000Z</when> +<gx:coord>-75.276608 40.069456 -0.10000000149011612</gx:coord> +<when>2013-07-25T20:30:02.000Z</when> +<gx:coord>-75.276638 40.069503 -0.5</gx:coord> +<when>2013-07-25T20:30:03.000Z</when> +<gx:coord>-75.276665 40.069548 -0.699999988079071</gx:coord> +<when>2013-07-25T20:30:04.000Z</when> +<gx:coord>-75.276692 40.069593 -0.8999999761581421</gx:coord> +<when>2013-07-25T20:30:05.000Z</when> +<gx:coord>-75.276728 40.069638 -1.100000023841858</gx:coord> +<when>2013-07-25T20:30:06.000Z</when> +<gx:coord>-75.27677 40.069679 -0.6000000238418579</gx:coord> +<when>2013-07-25T20:30:07.000Z</when> +<gx:coord>-75.276813 40.069722 2.5</gx:coord> +<when>2013-07-25T20:30:08.000Z</when> +<gx:coord>-75.276848 40.069769 2.799999952316284</gx:coord> +<when>2013-07-25T20:30:09.000Z</when> +<gx:coord>-75.276869 40.069812 2.0999999046325684</gx:coord> +<when>2013-07-25T20:30:10.000Z</when> +<gx:coord>-75.2769 40.069857 2.0999999046325684</gx:coord> +<when>2013-07-25T20:30:11.000Z</when> +<gx:coord>-75.27693 40.069898 2.200000047683716</gx:coord> +<when>2013-07-25T20:30:12.000Z</when> +<gx:coord>-75.276968 40.069942 1.2999999523162842</gx:coord> +<when>2013-07-25T20:30:13.000Z</when> +<gx:coord>-75.276991 40.06999 0.6000000238418579</gx:coord> +<when>2013-07-25T20:30:14.000Z</when> +<gx:coord>-75.277025 40.070035 0.10000000149011612</gx:coord> +<when>2013-07-25T20:30:15.000Z</when> +<gx:coord>-75.277057 40.070077 0.0</gx:coord> +<when>2013-07-25T20:30:16.000Z</when> +<gx:coord>-75.277087 40.070117 0.4000000059604645</gx:coord> +<when>2013-07-25T20:30:17.000Z</when> +<gx:coord>-75.277116 40.070154 0.699999988079071</gx:coord> +<when>2013-07-25T20:30:18.000Z</when> +<gx:coord>-75.277149 40.070199 -0.10000000149011612</gx:coord> +<when>2013-07-25T20:30:19.000Z</when> +<gx:coord>-75.277173 40.070244 -1.100000023841858</gx:coord> +<when>2013-07-25T20:30:20.000Z</when> +<gx:coord>-75.277213 40.070282 -0.5</gx:coord> +<when>2013-07-25T20:30:21.000Z</when> +<gx:coord>-75.277241 40.070319 -0.699999988079071</gx:coord> +<when>2013-07-25T20:30:22.000Z</when> +<gx:coord>-75.277267 40.070364 -1.2999999523162842</gx:coord> +<when>2013-07-25T20:30:23.000Z</when> +<gx:coord>-75.277288 40.070409 -2.5</gx:coord> +<when>2013-07-25T20:30:24.000Z</when> +<gx:coord>-75.277316 40.070454 -1.899999976158142</gx:coord> +<when>2013-07-25T20:30:25.000Z</when> +<gx:coord>-75.277342 40.070497 -1.899999976158142</gx:coord> +<when>2013-07-25T20:30:26.000Z</when> +<gx:coord>-75.277371 40.070537 -2.200000047683716</gx:coord> +<when>2013-07-25T20:30:27.000Z</when> +<gx:coord>-75.277404 40.070585 -2.4000000953674316</gx:coord> +<when>2013-07-25T20:30:28.000Z</when> +<gx:coord>-75.277439 40.070633 -2.5</gx:coord> +<when>2013-07-25T20:30:29.000Z</when> +<gx:coord>-75.277466 40.070671 -2.4000000953674316</gx:coord> +<when>2013-07-25T20:30:30.000Z</when> +<gx:coord>-75.277492 40.070712 -3.0999999046325684</gx:coord> +<when>2013-07-25T20:30:31.000Z</when> +<gx:coord>-75.277521 40.070754 -2.5999999046325684</gx:coord> +<when>2013-07-25T20:30:32.000Z</when> +<gx:coord>-75.277549 40.0708 -2.4000000953674316</gx:coord> +<when>2013-07-25T20:30:33.000Z</when> +<gx:coord>-75.277578 40.070842 -2.4000000953674316</gx:coord> +<when>2013-07-25T20:30:34.000Z</when> +<gx:coord>-75.277608 40.070885 -2.299999952316284</gx:coord> +<when>2013-07-25T20:30:35.000Z</when> +<gx:coord>-75.277633 40.070938 -3.4000000953674316</gx:coord> +<when>2013-07-25T20:30:36.000Z</when> +<gx:coord>-75.277664 40.070982 -3.200000047683716</gx:coord> +<when>2013-07-25T20:30:37.000Z</when> +<gx:coord>-75.2777 40.071022 -2.4000000953674316</gx:coord> +<when>2013-07-25T20:30:38.000Z</when> +<gx:coord>-75.27773 40.071068 -2.799999952316284</gx:coord> +<when>2013-07-25T20:30:39.000Z</when> +<gx:coord>-75.277761 40.071108 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:30:40.000Z</when> +<gx:coord>-75.277806 40.071148 -2.5999999046325684</gx:coord> +<when>2013-07-25T20:30:41.000Z</when> +<gx:coord>-75.277843 40.071182 -2.200000047683716</gx:coord> +<when>2013-07-25T20:30:42.000Z</when> +<gx:coord>-75.277893 40.071187 0.20000000298023224</gx:coord> +<when>2013-07-25T20:30:43.000Z</when> +<gx:coord>-75.277929 40.071227 0.30000001192092896</gx:coord> +<when>2013-07-25T20:30:44.000Z</when> +<gx:coord>-75.277957 40.071271 1.600000023841858</gx:coord> +<when>2013-07-25T20:30:45.000Z</when> +<gx:coord>-75.277983 40.071308 2.299999952316284</gx:coord> +<when>2013-07-25T20:30:46.000Z</when> +<gx:coord>-75.278019 40.071354 1.899999976158142</gx:coord> +<when>2013-07-25T20:30:47.000Z</when> +<gx:coord>-75.278059 40.071395 1.899999976158142</gx:coord> +<when>2013-07-25T20:30:48.000Z</when> +<gx:coord>-75.278102 40.07144 1.600000023841858</gx:coord> +<when>2013-07-25T20:30:49.000Z</when> +<gx:coord>-75.278138 40.071475 2.0</gx:coord> +<when>2013-07-25T20:30:50.000Z</when> +<gx:coord>-75.278174 40.071518 1.2000000476837158</gx:coord> +<when>2013-07-25T20:30:51.000Z</when> +<gx:coord>-75.27821 40.071561 0.699999988079071</gx:coord> +<when>2013-07-25T20:30:52.000Z</when> +<gx:coord>-75.278248 40.0716 0.20000000298023224</gx:coord> +<when>2013-07-25T20:30:53.000Z</when> +<gx:coord>-75.27828 40.071639 0.30000001192092896</gx:coord> +<when>2013-07-25T20:30:54.000Z</when> +<gx:coord>-75.278329 40.071673 1.0</gx:coord> +<when>2013-07-25T20:30:55.000Z</when> +<gx:coord>-75.278368 40.071709 1.0</gx:coord> +<when>2013-07-25T20:30:56.000Z</when> +<gx:coord>-75.278402 40.071745 1.2000000476837158</gx:coord> +<when>2013-07-25T20:30:57.000Z</when> +<gx:coord>-75.278408 40.071741 0.30000001192092896</gx:coord> +<when>2013-07-25T20:30:58.000Z</when> +<gx:coord>-75.278487 40.071774 3.0999999046325684</gx:coord> +<when>2013-07-25T20:30:59.000Z</when> +<gx:coord>-75.278518 40.07182 3.5999999046325684</gx:coord> +<when>2013-07-25T20:31:00.000Z</when> +<gx:coord>-75.278521 40.071868 2.700000047683716</gx:coord> +<when>2013-07-25T20:31:01.000Z</when> +<gx:coord>-75.278525 40.07191 2.4000000953674316</gx:coord> +<when>2013-07-25T20:31:02.000Z</when> +<gx:coord>-75.278565 40.071957 2.5</gx:coord> +<when>2013-07-25T20:31:03.000Z</when> +<gx:coord>-75.278595 40.071989 2.5999999046325684</gx:coord> +<when>2013-07-25T20:31:04.000Z</when> +<gx:coord>-75.278642 40.072026 2.5999999046325684</gx:coord> +<when>2013-07-25T20:31:05.000Z</when> +<gx:coord>-75.278673 40.072063 2.4000000953674316</gx:coord> +<when>2013-07-25T20:31:06.000Z</when> +<gx:coord>-75.278718 40.072103 2.4000000953674316</gx:coord> +<when>2013-07-25T20:31:07.000Z</when> +<gx:coord>-75.278762 40.072135 2.5999999046325684</gx:coord> +<when>2013-07-25T20:31:08.000Z</when> +<gx:coord>-75.278801 40.072169 3.0</gx:coord> +<when>2013-07-25T20:31:09.000Z</when> +<gx:coord>-75.278841 40.072209 2.4000000953674316</gx:coord> +<when>2013-07-25T20:31:10.000Z</when> +<gx:coord>-75.278876 40.072248 2.0999999046325684</gx:coord> +<when>2013-07-25T20:31:11.000Z</when> +<gx:coord>-75.278919 40.072293 1.2999999523162842</gx:coord> +<when>2013-07-25T20:31:12.000Z</when> +<gx:coord>-75.278964 40.072338 0.6000000238418579</gx:coord> +<when>2013-07-25T20:31:13.000Z</when> +<gx:coord>-75.279012 40.072377 1.0</gx:coord> +<when>2013-07-25T20:31:14.000Z</when> +<gx:coord>-75.279033 40.072398 2.4000000953674316</gx:coord> +<when>2013-07-25T20:31:15.000Z</when> +<gx:coord>-75.279071 40.072423 2.4000000953674316</gx:coord> +<when>2013-07-25T20:31:16.000Z</when> +<gx:coord>-75.279132 40.072468 1.0</gx:coord> +<when>2013-07-25T20:31:17.000Z</when> +<gx:coord>-75.279178 40.072503 1.100000023841858</gx:coord> +<when>2013-07-25T20:31:18.000Z</when> +<gx:coord>-75.27922 40.07253 1.399999976158142</gx:coord> +<when>2013-07-25T20:31:19.000Z</when> +<gx:coord>-75.279264 40.072569 1.100000023841858</gx:coord> +<when>2013-07-25T20:31:20.000Z</when> +<gx:coord>-75.279305 40.072581 4.400000095367432</gx:coord> +<when>2013-07-25T20:31:21.000Z</when> +<gx:coord>-75.279343 40.072615 4.900000095367432</gx:coord> +<when>2013-07-25T20:31:22.000Z</when> +<gx:coord>-75.279383 40.072635 7.300000190734863</gx:coord> +<when>2013-07-25T20:31:23.000Z</when> +<gx:coord>-75.279425 40.072663 9.0</gx:coord> +<when>2013-07-25T20:31:24.000Z</when> +<gx:coord>-75.279468 40.072691 9.399999618530273</gx:coord> +<when>2013-07-25T20:31:25.000Z</when> +<gx:coord>-75.279514 40.072724 10.100000381469727</gx:coord> +<when>2013-07-25T20:31:26.000Z</when> +<gx:coord>-75.279558 40.072753 11.600000381469727</gx:coord> +<when>2013-07-25T20:31:27.000Z</when> +<gx:coord>-75.279604 40.072782 12.399999618530273</gx:coord> +<when>2013-07-25T20:31:28.000Z</when> +<gx:coord>-75.279654 40.072818 12.100000381469727</gx:coord> +<when>2013-07-25T20:31:29.000Z</when> +<gx:coord>-75.279688 40.072844 13.699999809265137</gx:coord> +<when>2013-07-25T20:31:30.000Z</when> +<gx:coord>-75.279727 40.072873 14.0</gx:coord> +<when>2013-07-25T20:31:31.000Z</when> +<gx:coord>-75.279775 40.072881 14.5</gx:coord> +<when>2013-07-25T20:31:32.000Z</when> +<gx:coord>-75.279819 40.072906 14.399999618530273</gx:coord> +<when>2013-07-25T20:31:33.000Z</when> +<gx:coord>-75.279873 40.072932 17.799999237060547</gx:coord> +<when>2013-07-25T20:31:34.000Z</when> +<gx:coord>-75.27992 40.07296 18.899999618530273</gx:coord> +<when>2013-07-25T20:31:35.000Z</when> +<gx:coord>-75.279968 40.072993 19.5</gx:coord> +<when>2013-07-25T20:31:36.000Z</when> +<gx:coord>-75.280006 40.073021 19.799999237060547</gx:coord> +<when>2013-07-25T20:31:37.000Z</when> +<gx:coord>-75.280065 40.073074 18.5</gx:coord> +<when>2013-07-25T20:31:38.000Z</when> +<gx:coord>-75.280136 40.07312 17.399999618530273</gx:coord> +<when>2013-07-25T20:31:39.000Z</when> +<gx:coord>-75.280188 40.073153 16.700000762939453</gx:coord> +<when>2013-07-25T20:31:40.000Z</when> +<gx:coord>-75.280248 40.07321 15.5</gx:coord> +<when>2013-07-25T20:31:41.000Z</when> +<gx:coord>-75.2803 40.073236 15.399999618530273</gx:coord> +<when>2013-07-25T20:31:42.000Z</when> +<gx:coord>-75.280351 40.073266 15.100000381469727</gx:coord> +<when>2013-07-25T20:31:43.000Z</when> +<gx:coord>-75.280405 40.073293 15.100000381469727</gx:coord> +<when>2013-07-25T20:31:44.000Z</when> +<gx:coord>-75.280484 40.073342 12.100000381469727</gx:coord> +<when>2013-07-25T20:31:45.000Z</when> +<gx:coord>-75.280542 40.073378 11.699999809265137</gx:coord> +<when>2013-07-25T20:31:46.000Z</when> +<gx:coord>-75.28059 40.073402 12.199999809265137</gx:coord> +<when>2013-07-25T20:31:47.000Z</when> +<gx:coord>-75.280649 40.073436 12.100000381469727</gx:coord> +<when>2013-07-25T20:31:48.000Z</when> +<gx:coord>-75.280695 40.073468 12.800000190734863</gx:coord> +<when>2013-07-25T20:31:49.000Z</when> +<gx:coord>-75.280723 40.073478 16.600000381469727</gx:coord> +<when>2013-07-25T20:31:50.000Z</when> +<gx:coord>-75.280787 40.073516 14.899999618530273</gx:coord> +<when>2013-07-25T20:31:51.000Z</when> +<gx:coord>-75.280855 40.07355 12.899999618530273</gx:coord> +<when>2013-07-25T20:31:52.000Z</when> +<gx:coord>-75.28092 40.073582 12.0</gx:coord> +<when>2013-07-25T20:31:53.000Z</when> +<gx:coord>-75.28097 40.073602 12.5</gx:coord> +<when>2013-07-25T20:31:54.000Z</when> +<gx:coord>-75.281029 40.07363 11.5</gx:coord> +<when>2013-07-25T20:31:55.000Z</when> +<gx:coord>-75.281081 40.073652 11.699999809265137</gx:coord> +<when>2013-07-25T20:31:56.000Z</when> +<gx:coord>-75.281148 40.073684 10.899999618530273</gx:coord> +<when>2013-07-25T20:31:57.000Z</when> +<gx:coord>-75.281209 40.073709 10.300000190734863</gx:coord> +<when>2013-07-25T20:31:58.000Z</when> +<gx:coord>-75.281274 40.073734 9.699999809265137</gx:coord> +<when>2013-07-25T20:31:59.000Z</when> +<gx:coord>-75.281331 40.073757 10.100000381469727</gx:coord> +<when>2013-07-25T20:32:00.000Z</when> +<gx:coord>-75.281389 40.07378 10.0</gx:coord> +<when>2013-07-25T20:32:01.000Z</when> +<gx:coord>-75.281447 40.073817 8.199999809265137</gx:coord> +<when>2013-07-25T20:32:02.000Z</when> +<gx:coord>-75.28151 40.073841 7.400000095367432</gx:coord> +<when>2013-07-25T20:32:03.000Z</when> +<gx:coord>-75.281581 40.073854 6.900000095367432</gx:coord> +<when>2013-07-25T20:32:04.000Z</when> +<gx:coord>-75.281651 40.073875 6.900000095367432</gx:coord> +<when>2013-07-25T20:32:05.000Z</when> +<gx:coord>-75.28171 40.073876 7.099999904632568</gx:coord> +<when>2013-07-25T20:32:06.000Z</when> +<gx:coord>-75.281768 40.073893 9.399999618530273</gx:coord> +<when>2013-07-25T20:32:07.000Z</when> +<gx:coord>-75.28184 40.073913 9.5</gx:coord> +<when>2013-07-25T20:32:08.000Z</when> +<gx:coord>-75.2819 40.073934 10.5</gx:coord> +<when>2013-07-25T20:32:09.000Z</when> +<gx:coord>-75.28193 40.073951 11.800000190734863</gx:coord> +<when>2013-07-25T20:32:10.000Z</when> +<gx:coord>-75.281965 40.073966 11.899999618530273</gx:coord> +<when>2013-07-25T20:32:11.000Z</when> +<gx:coord>-75.282002 40.073981 12.100000381469727</gx:coord> +<when>2013-07-25T20:32:11.999Z</when> +<gx:coord>-75.282108 40.073976 12.300000190734863</gx:coord> +<when>2013-07-25T20:32:13.000Z</when> +<gx:coord>-75.282166 40.073985 11.199999809265137</gx:coord> +<when>2013-07-25T20:32:14.000Z</when> +<gx:coord>-75.282251 40.074016 8.800000190734863</gx:coord> +<when>2013-07-25T20:32:15.000Z</when> +<gx:coord>-75.282336 40.07405 7.599999904632568</gx:coord> +<when>2013-07-25T20:32:16.000Z</when> +<gx:coord>-75.282416 40.074074 6.900000095367432</gx:coord> +<when>2013-07-25T20:32:17.000Z</when> +<gx:coord>-75.282481 40.074098 5.699999809265137</gx:coord> +<when>2013-07-25T20:32:18.000Z</when> +<gx:coord>-75.282552 40.074126 3.799999952316284</gx:coord> +<when>2013-07-25T20:32:19.000Z</when> +<gx:coord>-75.282622 40.074151 2.0</gx:coord> +<when>2013-07-25T20:32:20.000Z</when> +<gx:coord>-75.282675 40.074167 1.7999999523162842</gx:coord> +<when>2013-07-25T20:32:21.000Z</when> +<gx:coord>-75.282733 40.074194 0.6000000238418579</gx:coord> +<when>2013-07-25T20:32:22.000Z</when> +<gx:coord>-75.282794 40.074212 1.600000023841858</gx:coord> +<when>2013-07-25T20:32:23.000Z</when> +<gx:coord>-75.282855 40.074222 2.299999952316284</gx:coord> +<when>2013-07-25T20:32:24.000Z</when> +<gx:coord>-75.282925 40.074247 1.2999999523162842</gx:coord> +<when>2013-07-25T20:32:25.000Z</when> +<gx:coord>-75.282976 40.074252 1.0</gx:coord> +<when>2013-07-25T20:32:26.000Z</when> +<gx:coord>-75.283036 40.074256 0.5</gx:coord> +<when>2013-07-25T20:32:27.000Z</when> +<gx:coord>-75.283095 40.074261 0.0</gx:coord> +<when>2013-07-25T20:32:28.000Z</when> +<gx:coord>-75.283156 40.074287 -0.6000000238418579</gx:coord> +<when>2013-07-25T20:32:29.000Z</when> +<gx:coord>-75.283217 40.074301 -1.5</gx:coord> +<when>2013-07-25T20:32:30.000Z</when> +<gx:coord>-75.283267 40.074323 -2.299999952316284</gx:coord> +<when>2013-07-25T20:32:31.000Z</when> +<gx:coord>-75.283327 40.074323 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:32:32.000Z</when> +<gx:coord>-75.283396 40.074336 -3.0</gx:coord> +<when>2013-07-25T20:32:33.000Z</when> +<gx:coord>-75.283445 40.074329 -3.4000000953674316</gx:coord> +<when>2013-07-25T20:32:34.000Z</when> +<gx:coord>-75.283509 40.074344 -5.199999809265137</gx:coord> +<when>2013-07-25T20:32:35.000Z</when> +<gx:coord>-75.283576 40.074355 -5.400000095367432</gx:coord> +<when>2013-07-25T20:32:36.000Z</when> +<gx:coord>-75.283638 40.074365 -5.599999904632568</gx:coord> +<when>2013-07-25T20:32:37.000Z</when> +<gx:coord>-75.283699 40.074372 -5.0</gx:coord> +<when>2013-07-25T20:32:38.000Z</when> +<gx:coord>-75.283752 40.074381 -4.5</gx:coord> +<when>2013-07-25T20:32:39.000Z</when> +<gx:coord>-75.2838 40.074392 -3.5999999046325684</gx:coord> +<when>2013-07-25T20:32:40.000Z</when> +<gx:coord>-75.283855 40.074398 -3.200000047683716</gx:coord> +<when>2013-07-25T20:32:41.000Z</when> +<gx:coord>-75.28391 40.074406 -2.5999999046325684</gx:coord> +<when>2013-07-25T20:32:42.000Z</when> +<gx:coord>-75.283977 40.074411 -3.700000047683716</gx:coord> +<when>2013-07-25T20:32:43.001Z</when> +<gx:coord>-75.284036 40.074413 -3.4000000953674316</gx:coord> +<when>2013-07-25T20:32:44.000Z</when> +<gx:coord>-75.284105 40.074413 -4.0</gx:coord> +<when>2013-07-25T20:32:45.000Z</when> +<gx:coord>-75.284164 40.074408 -4.099999904632568</gx:coord> +<when>2013-07-25T20:32:46.000Z</when> +<gx:coord>-75.284228 40.074407 -4.599999904632568</gx:coord> +<when>2013-07-25T20:32:47.000Z</when> +<gx:coord>-75.284277 40.074407 -4.699999809265137</gx:coord> +<when>2013-07-25T20:32:48.000Z</when> +<gx:coord>-75.284337 40.074415 -5.400000095367432</gx:coord> +<when>2013-07-25T20:32:49.000Z</when> +<gx:coord>-75.2844 40.074415 -5.199999809265137</gx:coord> +<when>2013-07-25T20:32:50.000Z</when> +<gx:coord>-75.284449 40.07442 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:32:51.000Z</when> +<gx:coord>-75.284492 40.074427 -1.5</gx:coord> +<when>2013-07-25T20:32:52.000Z</when> +<gx:coord>-75.284542 40.074439 -1.100000023841858</gx:coord> +<when>2013-07-25T20:32:53.000Z</when> +<gx:coord>-75.284598 40.074428 -0.699999988079071</gx:coord> +<when>2013-07-25T20:32:54.000Z</when> +<gx:coord>-75.284658 40.074433 0.10000000149011612</gx:coord> +<when>2013-07-25T20:32:55.000Z</when> +<gx:coord>-75.284693 40.074429 2.5</gx:coord> +<when>2013-07-25T20:32:56.000Z</when> +<gx:coord>-75.284733 40.074434 4.400000095367432</gx:coord> +<when>2013-07-25T20:32:58.000Z</when> +<gx:coord>-75.284764 40.074405 12.399999618530273</gx:coord> +<when>2013-07-25T20:32:59.000Z</when> +<gx:coord>-75.284815 40.074395 12.600000381469727</gx:coord> +<when>2013-07-25T20:33:00.000Z</when> +<gx:coord>-75.284898 40.074378 12.0</gx:coord> +<when>2013-07-25T20:33:01.000Z</when> +<gx:coord>-75.284968 40.074384 11.699999809265137</gx:coord> +<when>2013-07-25T20:33:02.000Z</when> +<gx:coord>-75.285022 40.074395 10.0</gx:coord> +<when>2013-07-25T20:33:03.000Z</when> +<gx:coord>-75.2851 40.07439 8.800000190734863</gx:coord> +<when>2013-07-25T20:33:04.000Z</when> +<gx:coord>-75.285146 40.074386 9.399999618530273</gx:coord> +<when>2013-07-25T20:33:05.000Z</when> +<gx:coord>-75.285196 40.074378 9.899999618530273</gx:coord> +<when>2013-07-25T20:33:06.000Z</when> +<gx:coord>-75.285251 40.07437 10.600000381469727</gx:coord> +<when>2013-07-25T20:33:07.000Z</when> +<gx:coord>-75.285281 40.074382 10.699999809265137</gx:coord> +<when>2013-07-25T20:33:08.000Z</when> +<gx:coord>-75.285327 40.074381 9.899999618530273</gx:coord> +<when>2013-07-25T20:33:09.000Z</when> +<gx:coord>-75.285369 40.074379 8.600000381469727</gx:coord> +<when>2013-07-25T20:33:10.000Z</when> +<gx:coord>-75.285417 40.074373 7.300000190734863</gx:coord> +<when>2013-07-25T20:33:11.000Z</when> +<gx:coord>-75.285466 40.074368 6.400000095367432</gx:coord> +<when>2013-07-25T20:33:12.000Z</when> +<gx:coord>-75.285518 40.074363 5.400000095367432</gx:coord> +<when>2013-07-25T20:33:13.000Z</when> +<gx:coord>-75.285566 40.07436 4.900000095367432</gx:coord> +<when>2013-07-25T20:33:14.000Z</when> +<gx:coord>-75.285618 40.074358 4.900000095367432</gx:coord> +<when>2013-07-25T20:33:15.000Z</when> +<gx:coord>-75.285673 40.074357 4.0</gx:coord> +<when>2013-07-25T20:33:16.000Z</when> +<gx:coord>-75.285732 40.074356 3.5</gx:coord> +<when>2013-07-25T20:33:17.000Z</when> +<gx:coord>-75.285788 40.074356 4.0</gx:coord> +<when>2013-07-25T20:33:18.001Z</when> +<gx:coord>-75.28584 40.074353 4.199999809265137</gx:coord> +<when>2013-07-25T20:33:19.000Z</when> +<gx:coord>-75.285907 40.074349 2.700000047683716</gx:coord> +<when>2013-07-25T20:33:20.000Z</when> +<gx:coord>-75.285971 40.074345 1.7000000476837158</gx:coord> +<when>2013-07-25T20:33:21.000Z</when> +<gx:coord>-75.28603 40.074341 1.2000000476837158</gx:coord> +<when>2013-07-25T20:33:22.000Z</when> +<gx:coord>-75.286118 40.074341 -0.20000000298023224</gx:coord> +<when>2013-07-25T20:33:23.000Z</when> +<gx:coord>-75.286184 40.074341 -1.100000023841858</gx:coord> +<when>2013-07-25T20:33:24.000Z</when> +<gx:coord>-75.286247 40.074336 -2.0</gx:coord> +<when>2013-07-25T20:33:25.000Z</when> +<gx:coord>-75.286313 40.07433 -2.799999952316284</gx:coord> +<when>2013-07-25T20:33:26.000Z</when> +<gx:coord>-75.286379 40.074325 -3.0</gx:coord> +<when>2013-07-25T20:33:27.000Z</when> +<gx:coord>-75.286436 40.074325 -2.700000047683716</gx:coord> +<when>2013-07-25T20:33:28.000Z</when> +<gx:coord>-75.286496 40.074331 -3.0</gx:coord> +<when>2013-07-25T20:33:29.000Z</when> +<gx:coord>-75.28656 40.074319 -3.9000000953674316</gx:coord> +<when>2013-07-25T20:33:30.000Z</when> +<gx:coord>-75.286628 40.074322 -4.599999904632568</gx:coord> +<when>2013-07-25T20:33:31.000Z</when> +<gx:coord>-75.286685 40.074331 -4.0</gx:coord> +<when>2013-07-25T20:33:32.000Z</when> +<gx:coord>-75.286744 40.074328 -4.400000095367432</gx:coord> +<when>2013-07-25T20:33:33.000Z</when> +<gx:coord>-75.2868 40.074311 -4.5</gx:coord> +<when>2013-07-25T20:33:34.000Z</when> +<gx:coord>-75.28686 40.074299 -4.900000095367432</gx:coord> +<when>2013-07-25T20:33:35.000Z</when> +<gx:coord>-75.286931 40.074297 -6.0</gx:coord> +<when>2013-07-25T20:33:36.000Z</when> +<gx:coord>-75.286985 40.07429 -6.0</gx:coord> +<when>2013-07-25T20:33:37.000Z</when> +<gx:coord>-75.287022 40.074297 -6.800000190734863</gx:coord> +<when>2013-07-25T20:33:38.000Z</when> +<gx:coord>-75.287079 40.074282 -6.699999809265137</gx:coord> +<when>2013-07-25T20:33:39.000Z</when> +<gx:coord>-75.287125 40.07427 -7.199999809265137</gx:coord> +<when>2013-07-25T20:33:40.000Z</when> +<gx:coord>-75.287187 40.07427 -7.900000095367432</gx:coord> +<when>2013-07-25T20:33:41.000Z</when> +<gx:coord>-75.287234 40.074266 -8.600000381469727</gx:coord> +<when>2013-07-25T20:33:42.000Z</when> +<gx:coord>-75.287281 40.074254 -8.199999809265137</gx:coord> +<when>2013-07-25T20:33:43.000Z</when> +<gx:coord>-75.287327 40.074241 -7.199999809265137</gx:coord> +<when>2013-07-25T20:33:44.000Z</when> +<gx:coord>-75.287383 40.074228 -7.400000095367432</gx:coord> +<when>2013-07-25T20:33:45.000Z</when> +<gx:coord>-75.287434 40.074214 -7.400000095367432</gx:coord> +<when>2013-07-25T20:33:46.000Z</when> +<gx:coord>-75.287483 40.0742 -7.300000190734863</gx:coord> +<when>2013-07-25T20:33:47.000Z</when> +<gx:coord>-75.287552 40.074188 -8.800000190734863</gx:coord> +<when>2013-07-25T20:33:48.000Z</when> +<gx:coord>-75.287605 40.074176 -9.300000190734863</gx:coord> +<when>2013-07-25T20:33:49.000Z</when> +<gx:coord>-75.287662 40.074164 -9.5</gx:coord> +<when>2013-07-25T20:33:50.000Z</when> +<gx:coord>-75.287712 40.074152 -9.699999809265137</gx:coord> +<when>2013-07-25T20:33:51.000Z</when> +<gx:coord>-75.287755 40.074149 -9.600000381469727</gx:coord> +<when>2013-07-25T20:33:52.000Z</when> +<gx:coord>-75.287807 40.074147 -10.100000381469727</gx:coord> +<when>2013-07-25T20:33:53.000Z</when> +<gx:coord>-75.287867 40.074144 -11.100000381469727</gx:coord> +<when>2013-07-25T20:33:54.000Z</when> +<gx:coord>-75.287908 40.074141 -10.600000381469727</gx:coord> +<when>2013-07-25T20:33:55.000Z</when> +<gx:coord>-75.287951 40.074138 -9.300000190734863</gx:coord> +<when>2013-07-25T20:33:56.000Z</when> +<gx:coord>-75.287994 40.074137 -9.100000381469727</gx:coord> +<when>2013-07-25T20:33:57.000Z</when> +<gx:coord>-75.288036 40.074135 -9.199999809265137</gx:coord> +<when>2013-07-25T20:33:58.000Z</when> +<gx:coord>-75.288082 40.074137 -9.600000381469727</gx:coord> +<when>2013-07-25T20:33:59.000Z</when> +<gx:coord>-75.288129 40.07414 -9.300000190734863</gx:coord> +<when>2013-07-25T20:34:00.000Z</when> +<gx:coord>-75.288174 40.074141 -6.5</gx:coord> +<when>2013-07-25T20:34:01.000Z</when> +<gx:coord>-75.288207 40.074139 -4.199999809265137</gx:coord> +<when>2013-07-25T20:34:02.000Z</when> +<gx:coord>-75.288242 40.074133 -4.199999809265137</gx:coord> +<when>2013-07-25T20:34:03.000Z</when> +<gx:coord>-75.288278 40.074123 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:34:04.000Z</when> +<gx:coord>-75.288312 40.074111 1.5</gx:coord> +<when>2013-07-25T20:34:05.000Z</when> +<gx:coord>-75.288347 40.074099 2.799999952316284</gx:coord> +<when>2013-07-25T20:34:06.000Z</when> +<gx:coord>-75.288385 40.074085 3.0999999046325684</gx:coord> +<when>2013-07-25T20:34:07.000Z</when> +<gx:coord>-75.288426 40.074072 2.9000000953674316</gx:coord> +<when>2013-07-25T20:34:08.000Z</when> +<gx:coord>-75.28849 40.074056 0.8999999761581421</gx:coord> +<when>2013-07-25T20:34:09.000Z</when> +<gx:coord>-75.288549 40.074048 0.0</gx:coord> +<when>2013-07-25T20:34:10.000Z</when> +<gx:coord>-75.288595 40.074038 0.6000000238418579</gx:coord> +<when>2013-07-25T20:34:11.000Z</when> +<gx:coord>-75.288639 40.074032 0.0</gx:coord> +<when>2013-07-25T20:34:12.000Z</when> +<gx:coord>-75.288669 40.074034 0.20000000298023224</gx:coord> +<when>2013-07-25T20:34:13.000Z</when> +<gx:coord>-75.288699 40.074044 0.699999988079071</gx:coord> +<when>2013-07-25T20:34:14.000Z</when> +<gx:coord>-75.288737 40.074055 1.600000023841858</gx:coord> +<when>2013-07-25T20:34:15.000Z</when> +<gx:coord>-75.288784 40.074071 1.7999999523162842</gx:coord> +<when>2013-07-25T20:34:17.000Z</when> +<gx:coord>-75.28883 40.074044 10.0</gx:coord> +<when>2013-07-25T20:34:18.000Z</when> +<gx:coord>-75.288847 40.074046 12.199999809265137</gx:coord> +<when>2013-07-25T20:34:20.000Z</when> +<gx:coord>-75.288891 40.074046 13.699999809265137</gx:coord> +<when>2013-07-25T20:34:21.000Z</when> +<gx:coord>-75.288921 40.074044 15.800000190734863</gx:coord> +<when>2013-07-25T20:34:22.000Z</when> +<gx:coord>-75.28896 40.074039 16.899999618530273</gx:coord> +<when>2013-07-25T20:34:23.000Z</when> +<gx:coord>-75.289062 40.074037 21.899999618530273</gx:coord> +<when>2013-07-25T20:34:24.000Z</when> +<gx:coord>-75.289127 40.074051 22.100000381469727</gx:coord> +<when>2013-07-25T20:34:25.000Z</when> +<gx:coord>-75.289172 40.074055 21.299999237060547</gx:coord> +<when>2013-07-25T20:34:26.000Z</when> +<gx:coord>-75.289217 40.074063 19.700000762939453</gx:coord> +<when>2013-07-25T20:34:27.000Z</when> +<gx:coord>-75.289271 40.074071 19.299999237060547</gx:coord> +<when>2013-07-25T20:34:28.000Z</when> +<gx:coord>-75.28934 40.074036 20.399999618530273</gx:coord> +<when>2013-07-25T20:34:29.000Z</when> +<gx:coord>-75.289418 40.074038 20.100000381469727</gx:coord> +<when>2013-07-25T20:34:30.000Z</when> +<gx:coord>-75.289482 40.074002 22.299999237060547</gx:coord> +<when>2013-07-25T20:34:31.000Z</when> +<gx:coord>-75.289482 40.07396 25.899999618530273</gx:coord> +<when>2013-07-25T20:34:32.000Z</when> +<gx:coord>-75.289533 40.073924 27.399999618530273</gx:coord> +<when>2013-07-25T20:34:33.000Z</when> +<gx:coord>-75.28958 40.073924 26.0</gx:coord> +<when>2013-07-25T20:34:34.000Z</when> +<gx:coord>-75.28963 40.073912 24.0</gx:coord> +<when>2013-07-25T20:34:35.000Z</when> +<gx:coord>-75.289683 40.073897 24.100000381469727</gx:coord> +<when>2013-07-25T20:34:36.000Z</when> +<gx:coord>-75.289746 40.073881 21.700000762939453</gx:coord> +<when>2013-07-25T20:34:37.000Z</when> +<gx:coord>-75.289809 40.07387 20.5</gx:coord> +<when>2013-07-25T20:34:38.000Z</when> +<gx:coord>-75.289877 40.073862 19.200000762939453</gx:coord> +<when>2013-07-25T20:34:39.000Z</when> +<gx:coord>-75.289945 40.073857 18.0</gx:coord> +<when>2013-07-25T20:34:40.000Z</when> +<gx:coord>-75.290064 40.073832 17.200000762939453</gx:coord> +<when>2013-07-25T20:34:41.000Z</when> +<gx:coord>-75.290118 40.073818 16.200000762939453</gx:coord> +<when>2013-07-25T20:34:42.000Z</when> +<gx:coord>-75.290176 40.073808 15.600000381469727</gx:coord> +<when>2013-07-25T20:34:43.000Z</when> +<gx:coord>-75.290246 40.073831 14.5</gx:coord> +<when>2013-07-25T20:34:44.000Z</when> +<gx:coord>-75.29033 40.073834 13.100000381469727</gx:coord> +<when>2013-07-25T20:34:45.000Z</when> +<gx:coord>-75.290383 40.07382 12.399999618530273</gx:coord> +<when>2013-07-25T20:34:46.000Z</when> +<gx:coord>-75.290437 40.073817 11.100000381469727</gx:coord> +<when>2013-07-25T20:34:47.000Z</when> +<gx:coord>-75.290487 40.073805 10.800000190734863</gx:coord> +<when>2013-07-25T20:34:48.000Z</when> +<gx:coord>-75.290524 40.073802 11.199999809265137</gx:coord> +<when>2013-07-25T20:34:49.000Z</when> +<gx:coord>-75.290592 40.073783 9.600000381469727</gx:coord> +<when>2013-07-25T20:34:50.000Z</when> +<gx:coord>-75.290631 40.073762 8.899999618530273</gx:coord> +<when>2013-07-25T20:34:51.000Z</when> +<gx:coord>-75.290699 40.073752 7.900000095367432</gx:coord> +<when>2013-07-25T20:34:52.000Z</when> +<gx:coord>-75.290763 40.073733 7.199999809265137</gx:coord> +<when>2013-07-25T20:34:53.000Z</when> +<gx:coord>-75.290806 40.073729 6.400000095367432</gx:coord> +<when>2013-07-25T20:34:54.000Z</when> +<gx:coord>-75.290865 40.073721 6.400000095367432</gx:coord> +<when>2013-07-25T20:34:55.000Z</when> +<gx:coord>-75.290919 40.073705 6.400000095367432</gx:coord> +<when>2013-07-25T20:34:56.000Z</when> +<gx:coord>-75.29096 40.073692 6.900000095367432</gx:coord> +<when>2013-07-25T20:34:58.000Z</when> +<gx:coord>-75.291001 40.073676 12.300000190734863</gx:coord> +<when>2013-07-25T20:34:59.000Z</when> +<gx:coord>-75.29103 40.073664 15.399999618530273</gx:coord> +<when>2013-07-25T20:35:01.000Z</when> +<gx:coord>-75.29108 40.073643 19.200000762939453</gx:coord> +<when>2013-07-25T20:35:02.000Z</when> +<gx:coord>-75.291107 40.073632 21.899999618530273</gx:coord> +<when>2013-07-25T20:35:03.000Z</when> +<gx:coord>-75.29114 40.073622 22.399999618530273</gx:coord> +<when>2013-07-25T20:35:04.000Z</when> +<gx:coord>-75.291186 40.073612 20.600000381469727</gx:coord> +<when>2013-07-25T20:35:05.000Z</when> +<gx:coord>-75.291238 40.073605 20.0</gx:coord> +<when>2013-07-25T20:35:06.000Z</when> +<gx:coord>-75.291288 40.073598 22.5</gx:coord> +<when>2013-07-25T20:35:07.000Z</when> +<gx:coord>-75.291341 40.073589 23.200000762939453</gx:coord> +<when>2013-07-25T20:35:08.000Z</when> +<gx:coord>-75.291409 40.073558 25.600000381469727</gx:coord> +<when>2013-07-25T20:35:09.000Z</when> +<gx:coord>-75.291473 40.073535 24.5</gx:coord> +<when>2013-07-25T20:35:10.000Z</when> +<gx:coord>-75.29154 40.073527 24.100000381469727</gx:coord> +<when>2013-07-25T20:35:11.000Z</when> +<gx:coord>-75.291606 40.073519 22.899999618530273</gx:coord> +<when>2013-07-25T20:35:12.000Z</when> +<gx:coord>-75.291662 40.07351 23.100000381469727</gx:coord> +<when>2013-07-25T20:35:13.000Z</when> +<gx:coord>-75.291712 40.073504 23.0</gx:coord> +<when>2013-07-25T20:35:14.000Z</when> +<gx:coord>-75.291785 40.073491 21.299999237060547</gx:coord> +<when>2013-07-25T20:35:15.000Z</when> +<gx:coord>-75.291848 40.07348 21.799999237060547</gx:coord> +<when>2013-07-25T20:35:16.000Z</when> +<gx:coord>-75.291912 40.073475 21.600000381469727</gx:coord> +<when>2013-07-25T20:35:17.000Z</when> +<gx:coord>-75.291983 40.073473 21.700000762939453</gx:coord> +<when>2013-07-25T20:35:18.000Z</when> +<gx:coord>-75.292048 40.073471 23.299999237060547</gx:coord> +<when>2013-07-25T20:35:19.000Z</when> +<gx:coord>-75.292113 40.073462 22.799999237060547</gx:coord> +<when>2013-07-25T20:35:20.000Z</when> +<gx:coord>-75.292162 40.073451 21.899999618530273</gx:coord> +<when>2013-07-25T20:35:21.000Z</when> +<gx:coord>-75.292245 40.073442 20.100000381469727</gx:coord> +<when>2013-07-25T20:35:22.000Z</when> +<gx:coord>-75.292321 40.073435 19.600000381469727</gx:coord> +<when>2013-07-25T20:35:23.000Z</when> +<gx:coord>-75.292412 40.073421 16.700000762939453</gx:coord> +<when>2013-07-25T20:35:24.000Z</when> +<gx:coord>-75.292479 40.073404 16.0</gx:coord> +<when>2013-07-25T20:35:25.000Z</when> +<gx:coord>-75.292533 40.073398 14.800000190734863</gx:coord> +<when>2013-07-25T20:35:26.000Z</when> +<gx:coord>-75.292625 40.073395 10.899999618530273</gx:coord> +<when>2013-07-25T20:35:27.000Z</when> +<gx:coord>-75.292688 40.073387 9.899999618530273</gx:coord> +<when>2013-07-25T20:35:28.000Z</when> +<gx:coord>-75.292747 40.073374 9.699999809265137</gx:coord> +<when>2013-07-25T20:35:29.000Z</when> +<gx:coord>-75.29281 40.073366 8.699999809265137</gx:coord> +<when>2013-07-25T20:35:30.000Z</when> +<gx:coord>-75.292866 40.073356 8.399999618530273</gx:coord> +<when>2013-07-25T20:35:31.000Z</when> +<gx:coord>-75.292917 40.073346 9.100000381469727</gx:coord> +<when>2013-07-25T20:35:32.000Z</when> +<gx:coord>-75.292959 40.073331 11.600000381469727</gx:coord> +<when>2013-07-25T20:35:33.000Z</when> +<gx:coord>-75.292993 40.073332 13.199999809265137</gx:coord> +<when>2013-07-25T20:35:35.000Z</when> +<gx:coord>-75.29304 40.073315 19.799999237060547</gx:coord> +<when>2013-07-25T20:35:36.000Z</when> +<gx:coord>-75.293056 40.073304 24.799999237060547</gx:coord> +<when>2013-07-25T20:35:37.000Z</when> +<gx:coord>-75.293095 40.073297 27.200000762939453</gx:coord> +<when>2013-07-25T20:35:38.000Z</when> +<gx:coord>-75.293159 40.073295 28.600000381469727</gx:coord> +<when>2013-07-25T20:35:39.000Z</when> +<gx:coord>-75.293201 40.073283 30.700000762939453</gx:coord> +<when>2013-07-25T20:35:40.000Z</when> +<gx:coord>-75.293248 40.073272 31.399999618530273</gx:coord> +<when>2013-07-25T20:35:41.000Z</when> +<gx:coord>-75.293299 40.07326 30.700000762939453</gx:coord> +<when>2013-07-25T20:35:42.000Z</when> +<gx:coord>-75.293356 40.07325 28.899999618530273</gx:coord> +<when>2013-07-25T20:35:43.000Z</when> +<gx:coord>-75.29342 40.073242 27.5</gx:coord> +<when>2013-07-25T20:35:44.000Z</when> +<gx:coord>-75.293486 40.073233 27.700000762939453</gx:coord> +<when>2013-07-25T20:35:45.000Z</when> +<gx:coord>-75.293603 40.073231 25.700000762939453</gx:coord> +<when>2013-07-25T20:35:46.000Z</when> +<gx:coord>-75.293676 40.07321 23.399999618530273</gx:coord> +<when>2013-07-25T20:35:47.000Z</when> +<gx:coord>-75.293727 40.073205 23.299999237060547</gx:coord> +<when>2013-07-25T20:35:48.000Z</when> +<gx:coord>-75.293774 40.073198 23.399999618530273</gx:coord> +<when>2013-07-25T20:35:49.000Z</when> +<gx:coord>-75.293853 40.073186 23.399999618530273</gx:coord> +<when>2013-07-25T20:35:50.000Z</when> +<gx:coord>-75.293912 40.073171 23.700000762939453</gx:coord> +<when>2013-07-25T20:35:51.000Z</when> +<gx:coord>-75.293993 40.073159 20.0</gx:coord> +<when>2013-07-25T20:35:52.000Z</when> +<gx:coord>-75.294049 40.073155 18.600000381469727</gx:coord> +<when>2013-07-25T20:35:53.000Z</when> +<gx:coord>-75.294151 40.073159 14.5</gx:coord> +<when>2013-07-25T20:35:54.000Z</when> +<gx:coord>-75.294222 40.073164 12.699999809265137</gx:coord> +<when>2013-07-25T20:35:55.000Z</when> +<gx:coord>-75.294302 40.073158 11.399999618530273</gx:coord> +<when>2013-07-25T20:35:56.000Z</when> +<gx:coord>-75.294372 40.073146 10.600000381469727</gx:coord> +<when>2013-07-25T20:35:57.000Z</when> +<gx:coord>-75.294437 40.073131 9.600000381469727</gx:coord> +<when>2013-07-25T20:35:58.000Z</when> +<gx:coord>-75.294497 40.073113 8.300000190734863</gx:coord> +<when>2013-07-25T20:35:59.000Z</when> +<gx:coord>-75.294572 40.073109 7.099999904632568</gx:coord> +<when>2013-07-25T20:36:00.000Z</when> +<gx:coord>-75.294634 40.073094 6.5</gx:coord> +<when>2013-07-25T20:36:01.001Z</when> +<gx:coord>-75.294694 40.073085 6.199999809265137</gx:coord> +<when>2013-07-25T20:36:02.000Z</when> +<gx:coord>-75.294754 40.073083 6.099999904632568</gx:coord> +<when>2013-07-25T20:36:03.000Z</when> +<gx:coord>-75.294832 40.073065 5.5</gx:coord> +<when>2013-07-25T20:36:04.000Z</when> +<gx:coord>-75.294897 40.073058 4.300000190734863</gx:coord> +<when>2013-07-25T20:36:05.000Z</when> +<gx:coord>-75.294954 40.073047 3.5</gx:coord> +<when>2013-07-25T20:36:06.000Z</when> +<gx:coord>-75.295014 40.073034 2.700000047683716</gx:coord> +<when>2013-07-25T20:36:07.000Z</when> +<gx:coord>-75.295082 40.073024 2.0</gx:coord> +<when>2013-07-25T20:36:08.000Z</when> +<gx:coord>-75.295153 40.073008 1.399999976158142</gx:coord> +<when>2013-07-25T20:36:09.000Z</when> +<gx:coord>-75.295215 40.073004 0.800000011920929</gx:coord> +<when>2013-07-25T20:36:10.000Z</when> +<gx:coord>-75.295276 40.072987 0.4000000059604645</gx:coord> +<when>2013-07-25T20:36:11.000Z</when> +<gx:coord>-75.295342 40.072977 0.0</gx:coord> +<when>2013-07-25T20:36:12.000Z</when> +<gx:coord>-75.295414 40.07297 -1.0</gx:coord> +<when>2013-07-25T20:36:13.000Z</when> +<gx:coord>-75.295476 40.072963 -1.100000023841858</gx:coord> +<when>2013-07-25T20:36:14.000Z</when> +<gx:coord>-75.295536 40.072952 -1.2999999523162842</gx:coord> +<when>2013-07-25T20:36:15.000Z</when> +<gx:coord>-75.29558 40.072948 -0.8999999761581421</gx:coord> +<when>2013-07-25T20:36:16.000Z</when> +<gx:coord>-75.295651 40.072932 -1.0</gx:coord> +<when>2013-07-25T20:36:17.000Z</when> +<gx:coord>-75.295722 40.072923 -1.5</gx:coord> +<when>2013-07-25T20:36:18.000Z</when> +<gx:coord>-75.295798 40.072917 -3.799999952316284</gx:coord> +<when>2013-07-25T20:36:19.000Z</when> +<gx:coord>-75.29585 40.072908 -4.5</gx:coord> +<when>2013-07-25T20:36:20.000Z</when> +<gx:coord>-75.295916 40.072899 -4.599999904632568</gx:coord> +<when>2013-07-25T20:36:21.000Z</when> +<gx:coord>-75.295979 40.072892 -5.0</gx:coord> +<when>2013-07-25T20:36:22.000Z</when> +<gx:coord>-75.296046 40.072875 -5.699999809265137</gx:coord> +<when>2013-07-25T20:36:23.000Z</when> +<gx:coord>-75.296112 40.072868 -5.599999904632568</gx:coord> +<when>2013-07-25T20:36:24.000Z</when> +<gx:coord>-75.296185 40.072853 -6.300000190734863</gx:coord> +<when>2013-07-25T20:36:25.000Z</when> +<gx:coord>-75.296253 40.072846 -7.5</gx:coord> +<when>2013-07-25T20:36:26.000Z</when> +<gx:coord>-75.296322 40.072835 -8.300000190734863</gx:coord> +<when>2013-07-25T20:36:27.000Z</when> +<gx:coord>-75.296387 40.07282 -8.899999618530273</gx:coord> +<when>2013-07-25T20:36:28.000Z</when> +<gx:coord>-75.296455 40.072808 -9.199999809265137</gx:coord> +<when>2013-07-25T20:36:29.000Z</when> +<gx:coord>-75.296515 40.072796 -9.699999809265137</gx:coord> +<when>2013-07-25T20:36:30.000Z</when> +<gx:coord>-75.29658 40.072788 -9.899999618530273</gx:coord> +<when>2013-07-25T20:36:31.000Z</when> +<gx:coord>-75.296641 40.072782 -9.699999809265137</gx:coord> +<when>2013-07-25T20:36:32.000Z</when> +<gx:coord>-75.296713 40.07277 -9.699999809265137</gx:coord> +<when>2013-07-25T20:36:33.000Z</when> +<gx:coord>-75.296776 40.072762 -10.100000381469727</gx:coord> +<when>2013-07-25T20:36:34.000Z</when> +<gx:coord>-75.296839 40.072754 -10.0</gx:coord> +<when>2013-07-25T20:36:35.000Z</when> +<gx:coord>-75.296897 40.072744 -9.600000381469727</gx:coord> +<when>2013-07-25T20:36:36.000Z</when> +<gx:coord>-75.296961 40.072736 -10.300000190734863</gx:coord> +<when>2013-07-25T20:36:37.000Z</when> +<gx:coord>-75.29703 40.07273 -10.100000381469727</gx:coord> +<when>2013-07-25T20:36:38.000Z</when> +<gx:coord>-75.297097 40.072718 -10.399999618530273</gx:coord> +<when>2013-07-25T20:36:39.000Z</when> +<gx:coord>-75.297152 40.072701 -10.5</gx:coord> +<when>2013-07-25T20:36:40.000Z</when> +<gx:coord>-75.297209 40.072683 -10.699999809265137</gx:coord> +<when>2013-07-25T20:36:41.000Z</when> +<gx:coord>-75.297279 40.072664 -10.800000190734863</gx:coord> +<when>2013-07-25T20:36:42.000Z</when> +<gx:coord>-75.297346 40.072657 -11.100000381469727</gx:coord> +<when>2013-07-25T20:36:43.000Z</when> +<gx:coord>-75.29741 40.072641 -11.899999618530273</gx:coord> +<when>2013-07-25T20:36:44.000Z</when> +<gx:coord>-75.297482 40.072632 -12.399999618530273</gx:coord> +<when>2013-07-25T20:36:45.000Z</when> +<gx:coord>-75.297528 40.072628 -11.800000190734863</gx:coord> +<when>2013-07-25T20:36:46.000Z</when> +<gx:coord>-75.297587 40.072615 -12.600000381469727</gx:coord> +<when>2013-07-25T20:36:47.000Z</when> +<gx:coord>-75.297647 40.072605 -12.399999618530273</gx:coord> +<when>2013-07-25T20:36:48.000Z</when> +<gx:coord>-75.297712 40.072594 -12.0</gx:coord> +<when>2013-07-25T20:36:49.000Z</when> +<gx:coord>-75.297766 40.072584 -11.600000381469727</gx:coord> +<when>2013-07-25T20:36:50.000Z</when> +<gx:coord>-75.297838 40.072568 -11.800000190734863</gx:coord> +<when>2013-07-25T20:36:51.000Z</when> +<gx:coord>-75.297901 40.072551 -12.5</gx:coord> +<when>2013-07-25T20:36:52.000Z</when> +<gx:coord>-75.297961 40.07254 -12.399999618530273</gx:coord> +<when>2013-07-25T20:36:53.000Z</when> +<gx:coord>-75.298019 40.072532 -12.899999618530273</gx:coord> +<when>2013-07-25T20:36:54.000Z</when> +<gx:coord>-75.298084 40.072512 -12.5</gx:coord> +<when>2013-07-25T20:36:55.000Z</when> +<gx:coord>-75.298145 40.072505 -12.100000381469727</gx:coord> +<when>2013-07-25T20:36:56.000Z</when> +<gx:coord>-75.29821 40.072493 -11.800000190734863</gx:coord> +<when>2013-07-25T20:36:57.000Z</when> +<gx:coord>-75.298258 40.072483 -10.199999809265137</gx:coord> +<when>2013-07-25T20:36:58.000Z</when> +<gx:coord>-75.298295 40.072471 -7.5</gx:coord> +<when>2013-07-25T20:36:59.000Z</when> +<gx:coord>-75.298339 40.07247 -6.800000190734863</gx:coord> +<when>2013-07-25T20:37:00.000Z</when> +<gx:coord>-75.298381 40.072471 -7.300000190734863</gx:coord> +<when>2013-07-25T20:37:01.000Z</when> +<gx:coord>-75.298421 40.072475 -7.199999809265137</gx:coord> +<when>2013-07-25T20:37:02.000Z</when> +<gx:coord>-75.298519 40.072443 -10.600000381469727</gx:coord> +<when>2013-07-25T20:37:03.000Z</when> +<gx:coord>-75.298575 40.072432 -9.800000190734863</gx:coord> +<when>2013-07-25T20:37:04.000Z</when> +<gx:coord>-75.29864 40.072424 -10.300000190734863</gx:coord> +<when>2013-07-25T20:37:05.000Z</when> +<gx:coord>-75.298696 40.072415 -10.600000381469727</gx:coord> +<when>2013-07-25T20:37:06.000Z</when> +<gx:coord>-75.298749 40.072412 -10.5</gx:coord> +<when>2013-07-25T20:37:07.000Z</when> +<gx:coord>-75.298796 40.072402 -8.5</gx:coord> +<when>2013-07-25T20:37:08.000Z</when> +<gx:coord>-75.298833 40.072395 -6.300000190734863</gx:coord> +<when>2013-07-25T20:37:09.000Z</when> +<gx:coord>-75.298862 40.072378 -2.799999952316284</gx:coord> +<when>2013-07-25T20:37:10.000Z</when> +<gx:coord>-75.298935 40.072366 -4.5</gx:coord> +<when>2013-07-25T20:37:11.000Z</when> +<gx:coord>-75.298996 40.072358 -5.800000190734863</gx:coord> +<when>2013-07-25T20:37:12.000Z</when> +<gx:coord>-75.299058 40.072345 -6.099999904632568</gx:coord> +<when>2013-07-25T20:37:13.000Z</when> +<gx:coord>-75.29911 40.072343 -6.699999809265137</gx:coord> +<when>2013-07-25T20:37:14.000Z</when> +<gx:coord>-75.299166 40.072334 -6.800000190734863</gx:coord> +<when>2013-07-25T20:37:15.000Z</when> +<gx:coord>-75.299222 40.072324 -7.0</gx:coord> +<when>2013-07-25T20:37:16.000Z</when> +<gx:coord>-75.299286 40.072314 -7.400000095367432</gx:coord> +<when>2013-07-25T20:37:17.000Z</when> +<gx:coord>-75.299343 40.072312 -8.800000190734863</gx:coord> +<when>2013-07-25T20:37:18.000Z</when> +<gx:coord>-75.299415 40.07231 -10.5</gx:coord> +<when>2013-07-25T20:37:19.000Z</when> +<gx:coord>-75.299474 40.072299 -12.300000190734863</gx:coord> +<when>2013-07-25T20:37:20.000Z</when> +<gx:coord>-75.299539 40.072289 -11.800000190734863</gx:coord> +<when>2013-07-25T20:37:21.000Z</when> +<gx:coord>-75.299582 40.07228 -11.5</gx:coord> +<when>2013-07-25T20:37:22.000Z</when> +<gx:coord>-75.299643 40.072262 -11.100000381469727</gx:coord> +<when>2013-07-25T20:37:23.000Z</when> +<gx:coord>-75.299723 40.072238 -11.5</gx:coord> +<when>2013-07-25T20:37:24.000Z</when> +<gx:coord>-75.299787 40.072233 -12.100000381469727</gx:coord> +<when>2013-07-25T20:37:25.000Z</when> +<gx:coord>-75.299873 40.072225 -13.300000190734863</gx:coord> +<when>2013-07-25T20:37:26.000Z</when> +<gx:coord>-75.299943 40.072198 -14.100000381469727</gx:coord> +<when>2013-07-25T20:37:27.000Z</when> +<gx:coord>-75.299988 40.07219 -14.699999809265137</gx:coord> +<when>2013-07-25T20:37:28.000Z</when> +<gx:coord>-75.30004 40.072198 -14.100000381469727</gx:coord> +<when>2013-07-25T20:37:29.000Z</when> +<gx:coord>-75.300071 40.072195 -13.699999809265137</gx:coord> +<when>2013-07-25T20:37:30.000Z</when> +<gx:coord>-75.300118 40.072189 -13.800000190734863</gx:coord> +<when>2013-07-25T20:37:31.000Z</when> +<gx:coord>-75.300192 40.072165 -13.800000190734863</gx:coord> +<when>2013-07-25T20:37:32.000Z</when> +<gx:coord>-75.300256 40.072156 -12.399999618530273</gx:coord> +<when>2013-07-25T20:37:33.000Z</when> +<gx:coord>-75.300325 40.072149 -12.399999618530273</gx:coord> +<when>2013-07-25T20:37:34.000Z</when> +<gx:coord>-75.300393 40.072132 -13.800000190734863</gx:coord> +<when>2013-07-25T20:37:35.000Z</when> +<gx:coord>-75.300447 40.072132 -13.199999809265137</gx:coord> +<when>2013-07-25T20:37:36.000Z</when> +<gx:coord>-75.300509 40.07213 -11.300000190734863</gx:coord> +<when>2013-07-25T20:37:37.000Z</when> +<gx:coord>-75.300576 40.072126 -12.399999618530273</gx:coord> +<when>2013-07-25T20:37:38.000Z</when> +<gx:coord>-75.300627 40.072112 -12.100000381469727</gx:coord> +<when>2013-07-25T20:37:39.000Z</when> +<gx:coord>-75.300689 40.072107 -13.100000381469727</gx:coord> +<when>2013-07-25T20:37:40.000Z</when> +<gx:coord>-75.300766 40.072104 -14.0</gx:coord> +<when>2013-07-25T20:37:41.000Z</when> +<gx:coord>-75.300822 40.072098 -14.199999809265137</gx:coord> +<when>2013-07-25T20:37:42.000Z</when> +<gx:coord>-75.300876 40.07209 -14.5</gx:coord> +<when>2013-07-25T20:37:43.000Z</when> +<gx:coord>-75.300927 40.072084 -15.100000381469727</gx:coord> +<when>2013-07-25T20:37:44.000Z</when> +<gx:coord>-75.300984 40.072069 -15.100000381469727</gx:coord> +<when>2013-07-25T20:37:45.000Z</when> +<gx:coord>-75.301036 40.072064 -15.100000381469727</gx:coord> +<when>2013-07-25T20:37:46.000Z</when> +<gx:coord>-75.301089 40.072046 -15.699999809265137</gx:coord> +<when>2013-07-25T20:37:47.000Z</when> +<gx:coord>-75.301152 40.072036 -15.399999618530273</gx:coord> +<when>2013-07-25T20:37:48.000Z</when> +<gx:coord>-75.301204 40.072027 -15.100000381469727</gx:coord> +<when>2013-07-25T20:37:49.000Z</when> +<gx:coord>-75.301267 40.072021 -16.0</gx:coord> +<when>2013-07-25T20:37:50.000Z</when> +<gx:coord>-75.301319 40.072009 -16.100000381469727</gx:coord> +<when>2013-07-25T20:37:51.000Z</when> +<gx:coord>-75.301371 40.071985 -15.899999618530273</gx:coord> +<when>2013-07-25T20:37:52.000Z</when> +<gx:coord>-75.301419 40.071975 -15.600000381469727</gx:coord> +<when>2013-07-25T20:37:53.000Z</when> +<gx:coord>-75.301462 40.071966 -15.899999618530273</gx:coord> +<when>2013-07-25T20:37:54.000Z</when> +<gx:coord>-75.301513 40.071954 -16.200000762939453</gx:coord> +<when>2013-07-25T20:37:55.000Z</when> +<gx:coord>-75.301564 40.071944 -16.0</gx:coord> +<when>2013-07-25T20:37:56.000Z</when> +<gx:coord>-75.301616 40.071933 -15.399999618530273</gx:coord> +<when>2013-07-25T20:37:57.000Z</when> +<gx:coord>-75.301665 40.071919 -14.300000190734863</gx:coord> +<when>2013-07-25T20:37:58.000Z</when> +<gx:coord>-75.301716 40.071909 -15.699999809265137</gx:coord> +<when>2013-07-25T20:37:59.000Z</when> +<gx:coord>-75.301772 40.071901 -17.100000381469727</gx:coord> +<when>2013-07-25T20:38:00.000Z</when> +<gx:coord>-75.301832 40.071895 -17.600000381469727</gx:coord> +<when>2013-07-25T20:38:01.000Z</when> +<gx:coord>-75.301889 40.071889 -17.600000381469727</gx:coord> +<when>2013-07-25T20:38:02.000Z</when> +<gx:coord>-75.301941 40.071879 -16.600000381469727</gx:coord> +<when>2013-07-25T20:38:03.000Z</when> +<gx:coord>-75.301989 40.071862 -15.699999809265137</gx:coord> +<when>2013-07-25T20:38:04.000Z</when> +<gx:coord>-75.302036 40.071843 -15.600000381469727</gx:coord> +<when>2013-07-25T20:38:05.000Z</when> +<gx:coord>-75.302074 40.071829 -15.5</gx:coord> +<when>2013-07-25T20:38:06.000Z</when> +<gx:coord>-75.302111 40.071818 -15.0</gx:coord> +<when>2013-07-25T20:38:07.000Z</when> +<gx:coord>-75.302146 40.071815 -14.5</gx:coord> +<when>2013-07-25T20:38:08.000Z</when> +<gx:coord>-75.302179 40.071815 -13.5</gx:coord> +<when>2013-07-25T20:38:09.000Z</when> +<gx:coord>-75.302211 40.071816 -10.300000190734863</gx:coord> +<when>2013-07-25T20:38:10.000Z</when> +<gx:coord>-75.302255 40.071816 -11.699999809265137</gx:coord> +<when>2013-07-25T20:38:11.000Z</when> +<gx:coord>-75.302305 40.071814 -12.199999809265137</gx:coord> +<when>2013-07-25T20:38:12.000Z</when> +<gx:coord>-75.302363 40.071808 -12.100000381469727</gx:coord> +<when>2013-07-25T20:38:13.000Z</when> +<gx:coord>-75.302419 40.071802 -12.0</gx:coord> +<when>2013-07-25T20:38:14.000Z</when> +<gx:coord>-75.302475 40.0718 -11.100000381469727</gx:coord> +<when>2013-07-25T20:38:15.000Z</when> +<gx:coord>-75.302526 40.071801 -11.199999809265137</gx:coord> +<when>2013-07-25T20:38:16.000Z</when> +<gx:coord>-75.302573 40.071803 -11.600000381469727</gx:coord> +<when>2013-07-25T20:38:17.000Z</when> +<gx:coord>-75.302613 40.071804 -12.5</gx:coord> +<when>2013-07-25T20:38:18.000Z</when> +<gx:coord>-75.302654 40.071806 -11.800000190734863</gx:coord> +<when>2013-07-25T20:38:19.000Z</when> +<gx:coord>-75.302697 40.071807 -12.199999809265137</gx:coord> +<when>2013-07-25T20:38:20.000Z</when> +<gx:coord>-75.302745 40.071811 -12.0</gx:coord> +<when>2013-07-25T20:38:21.000Z</when> +<gx:coord>-75.302787 40.071814 -12.100000381469727</gx:coord> +<when>2013-07-25T20:38:22.000Z</when> +<gx:coord>-75.302834 40.071819 -11.699999809265137</gx:coord> +<when>2013-07-25T20:38:23.000Z</when> +<gx:coord>-75.302873 40.071821 -10.300000190734863</gx:coord> +<when>2013-07-25T20:38:24.000Z</when> +<gx:coord>-75.302912 40.071825 -10.199999809265137</gx:coord> +<when>2013-07-25T20:38:25.000Z</when> +<gx:coord>-75.30297 40.071842 -13.699999809265137</gx:coord> +<when>2013-07-25T20:38:26.000Z</when> +<gx:coord>-75.303032 40.071858 -16.0</gx:coord> +<when>2013-07-25T20:38:27.000Z</when> +<gx:coord>-75.303097 40.07187 -14.300000190734863</gx:coord> +<when>2013-07-25T20:38:28.000Z</when> +<gx:coord>-75.303168 40.071882 -14.899999618530273</gx:coord> +<when>2013-07-25T20:38:29.000Z</when> +<gx:coord>-75.30324 40.071887 -15.300000190734863</gx:coord> +<when>2013-07-25T20:38:30.000Z</when> +<gx:coord>-75.303401 40.071773 -10.899999618530273</gx:coord> +<when>2013-07-25T20:38:31.000Z</when> +<gx:coord>-75.303473 40.071747 -10.100000381469727</gx:coord> +<when>2013-07-25T20:38:32.000Z</when> +<gx:coord>-75.303537 40.071706 -7.900000095367432</gx:coord> +<when>2013-07-25T20:38:33.000Z</when> +<gx:coord>-75.303606 40.071691 -7.800000190734863</gx:coord> +<when>2013-07-25T20:38:34.000Z</when> +<gx:coord>-75.303677 40.071653 -7.400000095367432</gx:coord> +<when>2013-07-25T20:38:35.000Z</when> +<gx:coord>-75.303719 40.07164 -4.800000190734863</gx:coord> +<when>2013-07-25T20:38:36.000Z</when> +<gx:coord>-75.303768 40.07165 -4.5</gx:coord> +<when>2013-07-25T20:38:37.000Z</when> +<gx:coord>-75.303839 40.071646 -4.400000095367432</gx:coord> +<when>2013-07-25T20:38:38.000Z</when> +<gx:coord>-75.303885 40.071636 -3.4000000953674316</gx:coord> +<when>2013-07-25T20:38:39.000Z</when> +<gx:coord>-75.303969 40.071633 -4.5</gx:coord> +<when>2013-07-25T20:38:40.000Z</when> +<gx:coord>-75.304041 40.07163 -5.699999809265137</gx:coord> +<when>2013-07-25T20:38:41.000Z</when> +<gx:coord>-75.304098 40.071626 -6.800000190734863</gx:coord> +<when>2013-07-25T20:38:42.000Z</when> +<gx:coord>-75.304139 40.071613 -6.800000190734863</gx:coord> +<when>2013-07-25T20:38:43.000Z</when> +<gx:coord>-75.304196 40.07161 -7.599999904632568</gx:coord> +<when>2013-07-25T20:38:44.000Z</when> +<gx:coord>-75.304249 40.071605 -6.699999809265137</gx:coord> +<when>2013-07-25T20:38:45.000Z</when> +<gx:coord>-75.3043 40.071602 -6.400000095367432</gx:coord> +<when>2013-07-25T20:38:46.000Z</when> +<gx:coord>-75.304348 40.071596 -5.900000095367432</gx:coord> +<when>2013-07-25T20:38:47.000Z</when> +<gx:coord>-75.304396 40.071591 -5.5</gx:coord> +<when>2013-07-25T20:38:48.000Z</when> +<gx:coord>-75.304448 40.071588 -6.5</gx:coord> +<when>2013-07-25T20:38:49.000Z</when> +<gx:coord>-75.3045 40.071585 -6.699999809265137</gx:coord> +<when>2013-07-25T20:38:50.000Z</when> +<gx:coord>-75.304549 40.071581 -7.099999904632568</gx:coord> +<when>2013-07-25T20:38:51.000Z</when> +<gx:coord>-75.304599 40.071578 -7.699999809265137</gx:coord> +<when>2013-07-25T20:38:52.000Z</when> +<gx:coord>-75.304651 40.071576 -8.199999809265137</gx:coord> +<when>2013-07-25T20:38:53.000Z</when> +<gx:coord>-75.304699 40.071576 -9.399999618530273</gx:coord> +<when>2013-07-25T20:38:54.000Z</when> +<gx:coord>-75.304746 40.071579 -9.899999618530273</gx:coord> +<when>2013-07-25T20:38:55.000Z</when> +<gx:coord>-75.304794 40.071582 -10.600000381469727</gx:coord> +<when>2013-07-25T20:38:56.000Z</when> +<gx:coord>-75.304843 40.071586 -10.300000190734863</gx:coord> +<when>2013-07-25T20:38:57.000Z</when> +<gx:coord>-75.304889 40.071586 -10.800000190734863</gx:coord> +<when>2013-07-25T20:38:58.000Z</when> +<gx:coord>-75.304938 40.071585 -11.5</gx:coord> +<when>2013-07-25T20:38:59.000Z</when> +<gx:coord>-75.304985 40.071583 -11.600000381469727</gx:coord> +<when>2013-07-25T20:39:00.000Z</when> +<gx:coord>-75.305033 40.071582 -11.699999809265137</gx:coord> +<when>2013-07-25T20:39:01.000Z</when> +<gx:coord>-75.305079 40.071582 -11.100000381469727</gx:coord> +<when>2013-07-25T20:39:02.000Z</when> +<gx:coord>-75.305124 40.071582 -10.699999809265137</gx:coord> +<when>2013-07-25T20:39:03.000Z</when> +<gx:coord>-75.305175 40.071583 -10.699999809265137</gx:coord> +<when>2013-07-25T20:39:04.000Z</when> +<gx:coord>-75.305227 40.07158 -10.399999618530273</gx:coord> +<when>2013-07-25T20:39:05.000Z</when> +<gx:coord>-75.305276 40.071578 -10.800000190734863</gx:coord> +<when>2013-07-25T20:39:06.000Z</when> +<gx:coord>-75.305322 40.071574 -9.199999809265137</gx:coord> +<when>2013-07-25T20:39:07.000Z</when> +<gx:coord>-75.30537 40.071572 -8.5</gx:coord> +<when>2013-07-25T20:39:08.000Z</when> +<gx:coord>-75.305424 40.07157 -8.600000381469727</gx:coord> +<when>2013-07-25T20:39:09.000Z</when> +<gx:coord>-75.305475 40.07157 -7.5</gx:coord> +<when>2013-07-25T20:39:10.000Z</when> +<gx:coord>-75.305528 40.071574 -8.399999618530273</gx:coord> +<when>2013-07-25T20:39:11.000Z</when> +<gx:coord>-75.305578 40.071577 -7.699999809265137</gx:coord> +<when>2013-07-25T20:39:12.000Z</when> +<gx:coord>-75.305629 40.071579 -6.599999904632568</gx:coord> +<when>2013-07-25T20:39:13.000Z</when> +<gx:coord>-75.305679 40.071585 -6.5</gx:coord> +<when>2013-07-25T20:39:14.000Z</when> +<gx:coord>-75.305728 40.071591 -6.199999809265137</gx:coord> +<when>2013-07-25T20:39:15.000Z</when> +<gx:coord>-75.305773 40.071596 -5.400000095367432</gx:coord> +<when>2013-07-25T20:39:16.000Z</when> +<gx:coord>-75.305821 40.071601 -6.099999904632568</gx:coord> +<when>2013-07-25T20:39:17.000Z</when> +<gx:coord>-75.305867 40.071606 -6.300000190734863</gx:coord> +<when>2013-07-25T20:39:18.000Z</when> +<gx:coord>-75.305912 40.071612 -5.599999904632568</gx:coord> +<when>2013-07-25T20:39:19.000Z</when> +<gx:coord>-75.305957 40.07162 -5.599999904632568</gx:coord> +<when>2013-07-25T20:39:20.000Z</when> +<gx:coord>-75.306004 40.07163 -6.400000095367432</gx:coord> +<when>2013-07-25T20:39:21.000Z</when> +<gx:coord>-75.306048 40.071642 -7.0</gx:coord> +<when>2013-07-25T20:39:22.000Z</when> +<gx:coord>-75.306092 40.071654 -7.099999904632568</gx:coord> +<when>2013-07-25T20:39:22.999Z</when> +<gx:coord>-75.306138 40.071663 -7.400000095367432</gx:coord> +<when>2013-07-25T20:39:24.000Z</when> +<gx:coord>-75.306185 40.071679 -6.300000190734863</gx:coord> +<when>2013-07-25T20:39:25.000Z</when> +<gx:coord>-75.306228 40.071691 -6.400000095367432</gx:coord> +<when>2013-07-25T20:39:26.000Z</when> +<gx:coord>-75.306274 40.071701 -6.199999809265137</gx:coord> +<when>2013-07-25T20:39:27.000Z</when> +<gx:coord>-75.306312 40.071717 -5.199999809265137</gx:coord> +<when>2013-07-25T20:39:27.999Z</when> +<gx:coord>-75.306355 40.071728 -4.400000095367432</gx:coord> +<when>2013-07-25T20:39:29.000Z</when> +<gx:coord>-75.306391 40.071744 -3.799999952316284</gx:coord> +<when>2013-07-25T20:39:30.000Z</when> +<gx:coord>-75.306429 40.071755 -3.299999952316284</gx:coord> +<when>2013-07-25T20:39:31.000Z</when> +<gx:coord>-75.306363 40.071733 6.900000095367432</gx:coord> +<when>2013-07-25T20:39:33.000Z</when> +<gx:coord>-75.306374 40.071723 11.699999809265137</gx:coord> +<when>2013-07-25T20:39:34.000Z</when> +<gx:coord>-75.306452 40.07173 10.699999809265137</gx:coord> +<when>2013-07-25T20:39:35.000Z</when> +<gx:coord>-75.30649 40.071732 12.0</gx:coord> +<when>2013-07-25T20:39:36.000Z</when> +<gx:coord>-75.306537 40.071738 13.100000381469727</gx:coord> +<when>2013-07-25T20:39:37.000Z</when> +<gx:coord>-75.306599 40.071741 13.399999618530273</gx:coord> +<when>2013-07-25T20:39:38.000Z</when> +<gx:coord>-75.306653 40.071745 14.699999809265137</gx:coord> +<when>2013-07-25T20:39:39.000Z</when> +<gx:coord>-75.306715 40.07176 14.5</gx:coord> +<when>2013-07-25T20:39:40.000Z</when> +<gx:coord>-75.306784 40.07176 14.199999809265137</gx:coord> +<when>2013-07-25T20:39:41.000Z</when> +<gx:coord>-75.30683 40.071779 15.600000381469727</gx:coord> +<when>2013-07-25T20:39:42.000Z</when> +<gx:coord>-75.306882 40.071797 16.399999618530273</gx:coord> +<when>2013-07-25T20:39:43.000Z</when> +<gx:coord>-75.306934 40.071818 14.800000190734863</gx:coord> +<when>2013-07-25T20:39:44.000Z</when> +<gx:coord>-75.306987 40.071844 13.100000381469727</gx:coord> +<when>2013-07-25T20:39:45.000Z</when> +<gx:coord>-75.307042 40.071863 11.899999618530273</gx:coord> +<when>2013-07-25T20:39:45.999Z</when> +<gx:coord>-75.307104 40.071878 11.199999809265137</gx:coord> +<when>2013-07-25T20:39:47.000Z</when> +<gx:coord>-75.307166 40.071886 11.699999809265137</gx:coord> +<when>2013-07-25T20:39:48.000Z</when> +<gx:coord>-75.307225 40.071892 11.5</gx:coord> +<when>2013-07-25T20:39:49.000Z</when> +<gx:coord>-75.307282 40.071897 10.800000190734863</gx:coord> +<when>2013-07-25T20:39:50.000Z</when> +<gx:coord>-75.307342 40.071906 9.399999618530273</gx:coord> +<when>2013-07-25T20:39:51.000Z</when> +<gx:coord>-75.307392 40.071916 9.399999618530273</gx:coord> +<when>2013-07-25T20:39:52.000Z</when> +<gx:coord>-75.307466 40.071932 8.600000381469727</gx:coord> +<when>2013-07-25T20:39:53.000Z</when> +<gx:coord>-75.307524 40.071948 8.899999618530273</gx:coord> +<when>2013-07-25T20:39:54.000Z</when> +<gx:coord>-75.307581 40.071967 7.800000190734863</gx:coord> +<when>2013-07-25T20:39:55.000Z</when> +<gx:coord>-75.30764 40.071985 8.100000381469727</gx:coord> +<when>2013-07-25T20:39:56.000Z</when> +<gx:coord>-75.307731 40.072012 6.900000095367432</gx:coord> +<when>2013-07-25T20:39:57.000Z</when> +<gx:coord>-75.307789 40.072019 6.400000095367432</gx:coord> +<when>2013-07-25T20:39:58.001Z</when> +<gx:coord>-75.307841 40.072033 6.400000095367432</gx:coord> +<when>2013-07-25T20:39:59.001Z</when> +<gx:coord>-75.307886 40.072047 6.699999809265137</gx:coord> +<when>2013-07-25T20:40:01.000Z</when> +<gx:coord>-75.307904 40.072075 8.5</gx:coord> +<when>2013-07-25T20:40:02.000Z</when> +<gx:coord>-75.307979 40.072101 11.0</gx:coord> +<when>2013-07-25T20:40:03.000Z</when> +<gx:coord>-75.308065 40.072115 11.0</gx:coord> +<when>2013-07-25T20:40:04.000Z</when> +<gx:coord>-75.308184 40.072152 8.800000190734863</gx:coord> +<when>2013-07-25T20:40:05.000Z</when> +<gx:coord>-75.308257 40.072173 8.199999809265137</gx:coord> +<when>2013-07-25T20:40:06.000Z</when> +<gx:coord>-75.308306 40.072193 7.5</gx:coord> +<when>2013-07-25T20:40:07.000Z</when> +<gx:coord>-75.308393 40.072219 6.400000095367432</gx:coord> +<when>2013-07-25T20:40:08.000Z</when> +<gx:coord>-75.308448 40.072241 6.5</gx:coord> +<when>2013-07-25T20:40:09.000Z</when> +<gx:coord>-75.308506 40.072272 6.5</gx:coord> +<when>2013-07-25T20:40:10.000Z</when> +<gx:coord>-75.308557 40.072287 6.400000095367432</gx:coord> +<when>2013-07-25T20:40:11.000Z</when> +<gx:coord>-75.308634 40.0723 6.300000190734863</gx:coord> +<when>2013-07-25T20:40:12.000Z</when> +<gx:coord>-75.308711 40.072319 6.599999904632568</gx:coord> +<when>2013-07-25T20:40:13.000Z</when> +<gx:coord>-75.308774 40.072336 6.5</gx:coord> +<when>2013-07-25T20:40:14.000Z</when> +<gx:coord>-75.308829 40.072355 6.5</gx:coord> +<when>2013-07-25T20:40:15.000Z</when> +<gx:coord>-75.308874 40.072441 -0.30000001192092896</gx:coord> +<when>2013-07-25T20:40:16.000Z</when> +<gx:coord>-75.308923 40.072452 -1.5</gx:coord> +<when>2013-07-25T20:40:17.000Z</when> +<gx:coord>-75.308973 40.072458 -1.7000000476837158</gx:coord> +<when>2013-07-25T20:40:18.000Z</when> +<gx:coord>-75.30901 40.072463 -1.7999999523162842</gx:coord> +<when>2013-07-25T20:40:19.000Z</when> +<gx:coord>-75.309049 40.072486 -3.0999999046325684</gx:coord> +<when>2013-07-25T20:40:20.000Z</when> +<gx:coord>-75.309103 40.072524 -2.9000000953674316</gx:coord> +<when>2013-07-25T20:40:21.000Z</when> +<gx:coord>-75.30916 40.072545 -2.799999952316284</gx:coord> +<when>2013-07-25T20:40:22.000Z</when> +<gx:coord>-75.309205 40.072552 -0.800000011920929</gx:coord> +<when>2013-07-25T20:40:23.000Z</when> +<gx:coord>-75.309246 40.072575 -0.6000000238418579</gx:coord> +<when>2013-07-25T20:40:24.000Z</when> +<gx:coord>-75.309288 40.072607 -0.30000001192092896</gx:coord> +<when>2013-07-25T20:40:25.000Z</when> +<gx:coord>-75.309338 40.072632 -1.0</gx:coord> +<when>2013-07-25T20:40:26.000Z</when> +<gx:coord>-75.309392 40.072665 -2.0</gx:coord> +<when>2013-07-25T20:40:27.000Z</when> +<gx:coord>-75.309441 40.072692 -2.0</gx:coord> +<when>2013-07-25T20:40:28.000Z</when> +<gx:coord>-75.309489 40.072718 -2.0999999046325684</gx:coord> +<when>2013-07-25T20:40:29.000Z</when> +<gx:coord>-75.309537 40.072734 -1.5</gx:coord> +<when>2013-07-25T20:40:30.000Z</when> +<gx:coord>-75.309575 40.07275 -1.5</gx:coord> +<when>2013-07-25T20:40:31.000Z</when> +<gx:coord>-75.309614 40.072777 -1.600000023841858</gx:coord> +<when>2013-07-25T20:40:32.000Z</when> +<gx:coord>-75.309671 40.072799 -2.299999952316284</gx:coord> +<when>2013-07-25T20:40:33.000Z</when> +<gx:coord>-75.309709 40.072814 -1.7999999523162842</gx:coord> +<when>2013-07-25T20:40:34.000Z</when> +<gx:coord>-75.309749 40.072834 -1.600000023841858</gx:coord> +<when>2013-07-25T20:40:35.000Z</when> +<gx:coord>-75.309793 40.072844 -1.600000023841858</gx:coord> +<when>2013-07-25T20:40:36.000Z</when> +<gx:coord>-75.309836 40.072867 -2.700000047683716</gx:coord> +<when>2013-07-25T20:40:37.000Z</when> +<gx:coord>-75.309878 40.072886 -3.0</gx:coord> +<when>2013-07-25T20:40:38.000Z</when> +<gx:coord>-75.309922 40.072904 -1.899999976158142</gx:coord> +<when>2013-07-25T20:40:39.000Z</when> +<gx:coord>-75.309965 40.072922 -2.200000047683716</gx:coord> +<when>2013-07-25T20:40:40.000Z</when> +<gx:coord>-75.310007 40.072939 -1.100000023841858</gx:coord> +<when>2013-07-25T20:40:41.000Z</when> +<gx:coord>-75.310043 40.072954 -1.2999999523162842</gx:coord> +<when>2013-07-25T20:40:42.000Z</when> +<gx:coord>-75.310078 40.072973 -1.7000000476837158</gx:coord> +<when>2013-07-25T20:40:43.000Z</when> +<gx:coord>-75.310111 40.072993 -1.0</gx:coord> +<when>2013-07-25T20:40:44.000Z</when> +<gx:coord>-75.310145 40.073013 -0.30000001192092896</gx:coord> +<when>2013-07-25T20:40:45.000Z</when> +<gx:coord>-75.310178 40.073032 0.8999999761581421</gx:coord> +<when>2013-07-25T20:40:46.000Z</when> +<gx:coord>-75.310209 40.07305 1.7000000476837158</gx:coord> +<when>2013-07-25T20:40:47.000Z</when> +<gx:coord>-75.310242 40.073069 1.399999976158142</gx:coord> +<when>2013-07-25T20:40:48.000Z</when> +<gx:coord>-75.310275 40.073091 2.5</gx:coord> +<when>2013-07-25T20:40:49.000Z</when> +<gx:coord>-75.310314 40.073114 2.700000047683716</gx:coord> +<when>2013-07-25T20:40:50.000Z</when> +<gx:coord>-75.310355 40.073133 5.5</gx:coord> +<when>2013-07-25T20:40:51.000Z</when> +<gx:coord>-75.310398 40.073154 4.900000095367432</gx:coord> +<when>2013-07-25T20:40:52.000Z</when> +<gx:coord>-75.310443 40.073182 5.199999809265137</gx:coord> +<when>2013-07-25T20:40:53.000Z</when> +<gx:coord>-75.310487 40.073211 4.800000190734863</gx:coord> +<when>2013-07-25T20:40:54.000Z</when> +<gx:coord>-75.310532 40.073242 5.699999809265137</gx:coord> +<when>2013-07-25T20:40:55.000Z</when> +<gx:coord>-75.310574 40.073268 7.199999809265137</gx:coord> +<when>2013-07-25T20:40:56.000Z</when> +<gx:coord>-75.310614 40.073289 8.899999618530273</gx:coord> +<when>2013-07-25T20:40:57.000Z</when> +<gx:coord>-75.310652 40.073309 8.300000190734863</gx:coord> +<when>2013-07-25T20:40:58.000Z</when> +<gx:coord>-75.310687 40.07333 8.300000190734863</gx:coord> +<when>2013-07-25T20:40:59.000Z</when> +<gx:coord>-75.31073 40.073351 8.5</gx:coord> +<when>2013-07-25T20:41:00.000Z</when> +<gx:coord>-75.310772 40.073373 8.5</gx:coord> +<when>2013-07-25T20:41:01.000Z</when> +<gx:coord>-75.310808 40.073396 8.5</gx:coord> +<when>2013-07-25T20:41:02.000Z</when> +<gx:coord>-75.310845 40.073419 7.300000190734863</gx:coord> +<when>2013-07-25T20:41:03.000Z</when> +<gx:coord>-75.310879 40.073443 7.099999904632568</gx:coord> +<when>2013-07-25T20:41:04.000Z</when> +<gx:coord>-75.310913 40.073469 6.900000095367432</gx:coord> +<when>2013-07-25T20:41:05.000Z</when> +<gx:coord>-75.310948 40.073489 7.699999809265137</gx:coord> +<when>2013-07-25T20:41:06.000Z</when> +<gx:coord>-75.310981 40.073506 8.800000190734863</gx:coord> +<when>2013-07-25T20:41:07.000Z</when> +<gx:coord>-75.311014 40.073522 10.0</gx:coord> +<when>2013-07-25T20:41:08.000Z</when> +<gx:coord>-75.311046 40.073538 10.600000381469727</gx:coord> +<when>2013-07-25T20:41:09.000Z</when> +<gx:coord>-75.311075 40.073554 10.699999809265137</gx:coord> +<when>2013-07-25T20:41:10.000Z</when> +<gx:coord>-75.311108 40.073575 10.300000190734863</gx:coord> +<when>2013-07-25T20:41:11.000Z</when> +<gx:coord>-75.311138 40.073602 9.5</gx:coord> +<when>2013-07-25T20:41:12.000Z</when> +<gx:coord>-75.311176 40.073634 8.0</gx:coord> +<when>2013-07-25T20:41:13.000Z</when> +<gx:coord>-75.311244 40.073687 6.900000095367432</gx:coord> +<when>2013-07-25T20:41:14.000Z</when> +<gx:coord>-75.311296 40.073724 7.199999809265137</gx:coord> +<when>2013-07-25T20:41:15.000Z</when> +<gx:coord>-75.311347 40.073758 6.900000095367432</gx:coord> +<when>2013-07-25T20:41:16.000Z</when> +<gx:coord>-75.311394 40.073789 6.900000095367432</gx:coord> +<when>2013-07-25T20:41:17.000Z</when> +<gx:coord>-75.311449 40.073828 5.900000095367432</gx:coord> +<when>2013-07-25T20:41:18.000Z</when> +<gx:coord>-75.311497 40.073868 7.400000095367432</gx:coord> +<when>2013-07-25T20:41:19.000Z</when> +<gx:coord>-75.311549 40.073931 4.300000190734863</gx:coord> +<when>2013-07-25T20:41:20.000Z</when> +<gx:coord>-75.311592 40.073966 3.799999952316284</gx:coord> +<when>2013-07-25T20:41:21.000Z</when> +<gx:coord>-75.311615 40.073987 3.9000000953674316</gx:coord> +<when>2013-07-25T20:41:22.000Z</when> +<gx:coord>-75.311651 40.074017 3.700000047683716</gx:coord> +<when>2013-07-25T20:41:23.000Z</when> +<gx:coord>-75.31168 40.074054 3.0</gx:coord> +<when>2013-07-25T20:41:24.000Z</when> +<gx:coord>-75.311708 40.074085 2.0999999046325684</gx:coord> +<when>2013-07-25T20:41:25.000Z</when> +<gx:coord>-75.311737 40.074113 1.5</gx:coord> +<when>2013-07-25T20:41:26.000Z</when> +<gx:coord>-75.311764 40.074145 0.6000000238418579</gx:coord> +<when>2013-07-25T20:41:27.000Z</when> +<gx:coord>-75.311781 40.074177 0.20000000298023224</gx:coord> +<when>2013-07-25T20:41:28.000Z</when> +<gx:coord>-75.311799 40.074214 0.6000000238418579</gx:coord> +<when>2013-07-25T20:41:29.000Z</when> +<gx:coord>-75.31181 40.074248 0.6000000238418579</gx:coord> +<when>2013-07-25T20:41:30.000Z</when> +<gx:coord>-75.311816 40.074283 0.6000000238418579</gx:coord> +<when>2013-07-25T20:41:31.000Z</when> +<gx:coord>-75.31182 40.074319 1.7999999523162842</gx:coord> +<when>2013-07-25T20:41:32.000Z</when> +<gx:coord>-75.31182 40.074354 2.700000047683716</gx:coord> +<when>2013-07-25T20:41:33.000Z</when> +<gx:coord>-75.311816 40.074387 4.0</gx:coord> +<when>2013-07-25T20:41:34.000Z</when> +<gx:coord>-75.311814 40.074421 4.199999809265137</gx:coord> +<when>2013-07-25T20:41:35.000Z</when> +<gx:coord>-75.311811 40.074458 4.699999809265137</gx:coord> +<when>2013-07-25T20:41:36.000Z</when> +<gx:coord>-75.311808 40.074496 5.300000190734863</gx:coord> +<when>2013-07-25T20:41:37.000Z</when> +<gx:coord>-75.311806 40.074531 5.900000095367432</gx:coord> +<when>2013-07-25T20:41:38.000Z</when> +<gx:coord>-75.311804 40.074567 5.800000190734863</gx:coord> +<when>2013-07-25T20:41:39.000Z</when> +<gx:coord>-75.311804 40.074602 5.599999904632568</gx:coord> +<when>2013-07-25T20:41:40.000Z</when> +<gx:coord>-75.311803 40.074637 6.0</gx:coord> +<when>2013-07-25T20:41:41.000Z</when> +<gx:coord>-75.311803 40.074666 6.199999809265137</gx:coord> +<when>2013-07-25T20:41:42.000Z</when> +<gx:coord>-75.311804 40.074692 6.800000190734863</gx:coord> +<when>2013-07-25T20:41:44.000Z</when> +<gx:coord>-75.311817 40.074735 8.800000190734863</gx:coord> +<when>2013-07-25T20:41:45.000Z</when> +<gx:coord>-75.311825 40.074753 9.300000190734863</gx:coord> +<when>2013-07-25T20:41:47.000Z</when> +<gx:coord>-75.311842 40.074794 9.600000381469727</gx:coord> +<when>2013-07-25T20:41:48.000Z</when> +<gx:coord>-75.311851 40.074817 8.800000190734863</gx:coord> +<when>2013-07-25T20:41:50.000Z</when> +<gx:coord>-75.311869 40.074856 9.800000190734863</gx:coord> +<when>2013-07-25T20:41:51.000Z</when> +<gx:coord>-75.311876 40.07487 10.699999809265137</gx:coord> +<when>2013-07-25T20:41:54.000Z</when> +<gx:coord>-75.311896 40.074905 12.199999809265137</gx:coord> +<when>2013-07-25T20:41:55.000Z</when> +<gx:coord>-75.311905 40.074919 11.0</gx:coord> +<when>2013-07-25T20:41:56.000Z</when> +<gx:coord>-75.311918 40.074937 11.699999809265137</gx:coord> +<when>2013-07-25T20:41:57.000Z</when> +<gx:coord>-75.311933 40.074959 10.899999618530273</gx:coord> +<when>2013-07-25T20:41:58.000Z</when> +<gx:coord>-75.311952 40.074985 11.199999809265137</gx:coord> +<when>2013-07-25T20:41:59.000Z</when> +<gx:coord>-75.311969 40.075011 11.399999618530273</gx:coord> +<when>2013-07-25T20:42:00.000Z</when> +<gx:coord>-75.311982 40.075039 12.399999618530273</gx:coord> +<when>2013-07-25T20:42:01.000Z</when> +<gx:coord>-75.311987 40.075067 13.600000381469727</gx:coord> +<when>2013-07-25T20:42:02.000Z</when> +<gx:coord>-75.311987 40.075096 14.100000381469727</gx:coord> +<when>2013-07-25T20:42:03.000Z</when> +<gx:coord>-75.311976 40.075124 13.5</gx:coord> +<when>2013-07-25T20:42:04.000Z</when> +<gx:coord>-75.311959 40.075152 13.5</gx:coord> +<when>2013-07-25T20:42:05.000Z</when> +<gx:coord>-75.311939 40.075178 13.0</gx:coord> +<when>2013-07-25T20:42:06.000Z</when> +<gx:coord>-75.311919 40.075204 12.899999618530273</gx:coord> +<when>2013-07-25T20:42:07.000Z</when> +<gx:coord>-75.311904 40.075231 12.899999618530273</gx:coord> +<when>2013-07-25T20:42:08.000Z</when> +<gx:coord>-75.3119 40.07526 12.699999809265137</gx:coord> +<when>2013-07-25T20:42:09.000Z</when> +<gx:coord>-75.311906 40.075288 13.300000190734863</gx:coord> +<when>2013-07-25T20:42:11.000Z</when> +<gx:coord>-75.311942 40.075318 20.100000381469727</gx:coord> +<when>2013-07-25T20:42:12.000Z</when> +<gx:coord>-75.311965 40.075327 20.600000381469727</gx:coord> +<when>2013-07-25T20:42:14.000Z</when> +<gx:coord>-75.312003 40.075344 22.5</gx:coord> +<when>2013-07-25T20:42:15.000Z</when> +<gx:coord>-75.312013 40.075356 23.399999618530273</gx:coord> +<when>2013-07-25T20:42:17.001Z</when> +<gx:coord>-75.312031 40.075384 24.299999237060547</gx:coord> +<when>2013-07-25T20:42:18.000Z</when> +<gx:coord>-75.31203 40.075403 24.200000762939453</gx:coord> +<when>2013-07-25T20:42:20.000Z</when> +<gx:coord>-75.312051 40.075429 25.600000381469727</gx:coord> +<when>2013-07-25T20:42:21.000Z</when> +<gx:coord>-75.312071 40.075439 25.700000762939453</gx:coord> +<when>2013-07-25T20:42:23.000Z</when> +<gx:coord>-75.312122 40.075458 27.200000762939453</gx:coord> +<when>2013-07-25T20:42:24.000Z</when> +<gx:coord>-75.31215 40.075472 26.0</gx:coord> +<when>2013-07-25T20:42:25.000Z</when> +<gx:coord>-75.312174 40.075494 23.799999237060547</gx:coord> +<when>2013-07-25T20:42:26.000Z</when> +<gx:coord>-75.312198 40.075523 22.5</gx:coord> +<when>2013-07-25T20:42:27.000Z</when> +<gx:coord>-75.312221 40.075552 22.299999237060547</gx:coord> +<when>2013-07-25T20:42:28.000Z</when> +<gx:coord>-75.312247 40.075575 22.600000381469727</gx:coord> +<when>2013-07-25T20:42:29.000Z</when> +<gx:coord>-75.312275 40.075591 22.600000381469727</gx:coord> +<when>2013-07-25T20:42:30.000Z</when> +<gx:coord>-75.312307 40.075604 22.200000762939453</gx:coord> +<when>2013-07-25T20:42:31.000Z</when> +<gx:coord>-75.312344 40.075617 20.5</gx:coord> +<when>2013-07-25T20:42:32.000Z</when> +<gx:coord>-75.312381 40.075632 20.100000381469727</gx:coord> +<when>2013-07-25T20:42:33.000Z</when> +<gx:coord>-75.312416 40.075647 19.0</gx:coord> +<when>2013-07-25T20:42:34.000Z</when> +<gx:coord>-75.312451 40.075661 19.0</gx:coord> +<when>2013-07-25T20:42:35.000Z</when> +<gx:coord>-75.312484 40.075677 18.399999618530273</gx:coord> +<when>2013-07-25T20:42:36.000Z</when> +<gx:coord>-75.312511 40.075696 15.699999809265137</gx:coord> +<when>2013-07-25T20:42:37.000Z</when> +<gx:coord>-75.312535 40.075715 14.699999809265137</gx:coord> +<when>2013-07-25T20:42:38.000Z</when> +<gx:coord>-75.312561 40.075734 14.300000190734863</gx:coord> +<when>2013-07-25T20:42:39.000Z</when> +<gx:coord>-75.312588 40.075753 14.399999618530273</gx:coord> +<when>2013-07-25T20:42:40.000Z</when> +<gx:coord>-75.312622 40.075773 14.399999618530273</gx:coord> +<when>2013-07-25T20:42:41.000Z</when> +<gx:coord>-75.312656 40.075791 14.0</gx:coord> +<when>2013-07-25T20:42:42.000Z</when> +<gx:coord>-75.31269 40.075807 13.899999618530273</gx:coord> +<when>2013-07-25T20:42:43.000Z</when> +<gx:coord>-75.312724 40.075823 13.5</gx:coord> +<when>2013-07-25T20:42:44.000Z</when> +<gx:coord>-75.31276 40.075838 13.300000190734863</gx:coord> +<when>2013-07-25T20:42:45.000Z</when> +<gx:coord>-75.312793 40.075849 14.199999809265137</gx:coord> +<when>2013-07-25T20:42:46.000Z</when> +<gx:coord>-75.312825 40.075858 16.299999237060547</gx:coord> +<when>2013-07-25T20:42:47.000Z</when> +<gx:coord>-75.312857 40.07587 14.399999618530273</gx:coord> +<when>2013-07-25T20:42:48.000Z</when> +<gx:coord>-75.31289 40.075885 13.699999809265137</gx:coord> +<when>2013-07-25T20:42:49.000Z</when> +<gx:coord>-75.312921 40.075901 14.199999809265137</gx:coord> +<when>2013-07-25T20:42:50.001Z</when> +<gx:coord>-75.31295 40.075916 15.0</gx:coord> +<when>2013-07-25T20:42:51.000Z</when> +<gx:coord>-75.312983 40.075936 15.899999618530273</gx:coord> +<when>2013-07-25T20:42:52.000Z</when> +<gx:coord>-75.313011 40.075955 16.399999618530273</gx:coord> +<when>2013-07-25T20:42:53.000Z</when> +<gx:coord>-75.313032 40.075975 16.799999237060547</gx:coord> +<when>2013-07-25T20:42:54.000Z</when> +<gx:coord>-75.313045 40.076 16.299999237060547</gx:coord> +<when>2013-07-25T20:42:56.000Z</when> +<gx:coord>-75.313041 40.076042 18.0</gx:coord> +<when>2013-07-25T20:42:57.000Z</when> +<gx:coord>-75.313036 40.07606 19.600000381469727</gx:coord> +<when>2013-07-25T20:42:58.000Z</when> +<gx:coord>-75.313011 40.076082 16.799999237060547</gx:coord> +<when>2013-07-25T20:42:59.000Z</when> +<gx:coord>-75.312995 40.076106 16.200000762939453</gx:coord> +<when>2013-07-25T20:43:00.000Z</when> +<gx:coord>-75.312983 40.076133 16.100000381469727</gx:coord> +<when>2013-07-25T20:43:01.000Z</when> +<gx:coord>-75.312972 40.076158 15.600000381469727</gx:coord> +<when>2013-07-25T20:43:02.000Z</when> +<gx:coord>-75.31296 40.076184 15.100000381469727</gx:coord> +<when>2013-07-25T20:43:03.000Z</when> +<gx:coord>-75.312948 40.076207 15.800000190734863</gx:coord> +<when>2013-07-25T20:43:04.000Z</when> +<gx:coord>-75.312937 40.076229 16.899999618530273</gx:coord> +<when>2013-07-25T20:43:05.000Z</when> +<gx:coord>-75.312923 40.07625 16.200000762939453</gx:coord> +<when>2013-07-25T20:43:06.000Z</when> +<gx:coord>-75.312907 40.076271 16.100000381469727</gx:coord> +<when>2013-07-25T20:43:07.000Z</when> +<gx:coord>-75.312887 40.076295 16.799999237060547</gx:coord> +<when>2013-07-25T20:43:08.000Z</when> +<gx:coord>-75.312861 40.07632 16.399999618530273</gx:coord> +<when>2013-07-25T20:43:09.000Z</when> +<gx:coord>-75.312835 40.076341 15.5</gx:coord> +<when>2013-07-25T20:43:10.000Z</when> +<gx:coord>-75.31281 40.076362 14.199999809265137</gx:coord> +<when>2013-07-25T20:43:11.000Z</when> +<gx:coord>-75.312796 40.076386 14.0</gx:coord> +<when>2013-07-25T20:43:12.000Z</when> +<gx:coord>-75.312796 40.076413 13.300000190734863</gx:coord> +<when>2013-07-25T20:43:13.000Z</when> +<gx:coord>-75.312806 40.076436 14.0</gx:coord> +<when>2013-07-25T20:43:17.000Z</when> +<gx:coord>-75.312778 40.076469 18.600000381469727</gx:coord> +<when>2013-07-25T20:43:18.000Z</when> +<gx:coord>-75.312756 40.076463 18.700000762939453</gx:coord> +<when>2013-07-25T20:43:19.000Z</when> +<gx:coord>-75.312735 40.076461 20.299999237060547</gx:coord> +<when>2013-07-25T20:43:20.000Z</when> +<gx:coord>-75.312707 40.076432 17.5</gx:coord> +<when>2013-07-25T20:43:21.000Z</when> +<gx:coord>-75.312682 40.076407 17.200000762939453</gx:coord> +<when>2013-07-25T20:43:22.000Z</when> +<gx:coord>-75.312654 40.076375 16.700000762939453</gx:coord> +<when>2013-07-25T20:43:23.000Z</when> +<gx:coord>-75.31262 40.076345 14.5</gx:coord> +<when>2013-07-25T20:43:24.000Z</when> +<gx:coord>-75.312589 40.076318 12.5</gx:coord> +<when>2013-07-25T20:43:25.000Z</when> +<gx:coord>-75.312528 40.0763 11.399999618530273</gx:coord> +<when>2013-07-25T20:43:26.000Z</when> +<gx:coord>-75.312481 40.076286 10.199999809265137</gx:coord> +<when>2013-07-25T20:43:26.999Z</when> +<gx:coord>-75.312436 40.076271 9.699999809265137</gx:coord> +<when>2013-07-25T20:43:28.000Z</when> +<gx:coord>-75.312436 40.07633 8.800000190734863</gx:coord> +<when>2013-07-25T20:43:29.000Z</when> +<gx:coord>-75.31244 40.076374 8.300000190734863</gx:coord> +<when>2013-07-25T20:43:30.000Z</when> +<gx:coord>-75.312452 40.076426 7.400000095367432</gx:coord> +<when>2013-07-25T20:43:31.000Z</when> +<gx:coord>-75.312464 40.076478 6.800000190734863</gx:coord> +<when>2013-07-25T20:43:32.000Z</when> +<gx:coord>-75.312472 40.076527 6.400000095367432</gx:coord> +<when>2013-07-25T20:43:33.000Z</when> +<gx:coord>-75.312478 40.07657 6.5</gx:coord> +<when>2013-07-25T20:43:34.000Z</when> +<gx:coord>-75.312482 40.07661 6.400000095367432</gx:coord> +<when>2013-07-25T20:43:35.000Z</when> +<gx:coord>-75.312488 40.076648 6.0</gx:coord> +<when>2013-07-25T20:43:36.000Z</when> +<gx:coord>-75.312496 40.076685 6.300000190734863</gx:coord> +<when>2013-07-25T20:43:37.000Z</when> +<gx:coord>-75.312498 40.076717 6.300000190734863</gx:coord> +<when>2013-07-25T20:43:38.000Z</when> +<gx:coord>-75.312511 40.07674 6.5</gx:coord> +<when>2013-07-25T20:43:40.000Z</when> +<gx:coord>-75.312514 40.076784 7.699999809265137</gx:coord> +<when>2013-07-25T20:43:41.000Z</when> +<gx:coord>-75.3125 40.076791 8.300000190734863</gx:coord> +<when>2013-07-25T20:43:43.000Z</when> +<gx:coord>-75.312486 40.076825 8.800000190734863</gx:coord> +<when>2013-07-25T20:43:44.000Z</when> +<gx:coord>-75.312482 40.076846 8.399999618530273</gx:coord> +<when>2013-07-25T20:43:45.000Z</when> +<gx:coord>-75.31248 40.076868 8.0</gx:coord> +<when>2013-07-25T20:43:46.000Z</when> +<gx:coord>-75.312477 40.076893 7.599999904632568</gx:coord> +<when>2013-07-25T20:43:47.000Z</when> +<gx:coord>-75.312471 40.076925 6.199999809265137</gx:coord> +<when>2013-07-25T20:43:48.000Z</when> +<gx:coord>-75.312479 40.076957 7.400000095367432</gx:coord> +<when>2013-07-25T20:43:49.000Z</when> +<gx:coord>-75.312488 40.077001 7.099999904632568</gx:coord> +<when>2013-07-25T20:43:50.000Z</when> +<gx:coord>-75.312508 40.077051 6.400000095367432</gx:coord> +<when>2013-07-25T20:43:51.000Z</when> +<gx:coord>-75.312539 40.077106 5.900000095367432</gx:coord> +<when>2013-07-25T20:43:52.000Z</when> +<gx:coord>-75.312573 40.077166 7.5</gx:coord> +<when>2013-07-25T20:43:53.000Z</when> +<gx:coord>-75.312602 40.07722 9.199999809265137</gx:coord> +<when>2013-07-25T20:43:54.000Z</when> +<gx:coord>-75.312634 40.077273 9.300000190734863</gx:coord> +<when>2013-07-25T20:43:55.000Z</when> +<gx:coord>-75.312664 40.077322 9.800000190734863</gx:coord> +<when>2013-07-25T20:43:56.000Z</when> +<gx:coord>-75.312694 40.077367 9.399999618530273</gx:coord> +<when>2013-07-25T20:43:57.000Z</when> +<gx:coord>-75.312727 40.077412 8.100000381469727</gx:coord> +<when>2013-07-25T20:43:58.000Z</when> +<gx:coord>-75.312758 40.077455 8.399999618530273</gx:coord> +<when>2013-07-25T20:43:59.000Z</when> +<gx:coord>-75.312788 40.077498 8.699999809265137</gx:coord> +<when>2013-07-25T20:44:00.000Z</when> +<gx:coord>-75.312815 40.077544 9.399999618530273</gx:coord> +<when>2013-07-25T20:44:01.000Z</when> +<gx:coord>-75.312836 40.077585 11.600000381469727</gx:coord> +<when>2013-07-25T20:44:02.000Z</when> +<gx:coord>-75.312853 40.077626 11.699999809265137</gx:coord> +<when>2013-07-25T20:44:03.000Z</when> +<gx:coord>-75.312868 40.077671 9.800000190734863</gx:coord> +<when>2013-07-25T20:44:04.000Z</when> +<gx:coord>-75.312846 40.077783 2.700000047683716</gx:coord> +<when>2013-07-25T20:44:05.000Z</when> +<gx:coord>-75.312827 40.077835 2.5</gx:coord> +<when>2013-07-25T20:44:07.000Z</when> +<gx:coord>-75.312856 40.077866 3.4000000953674316</gx:coord> +<when>2013-07-25T20:44:08.000Z</when> +<gx:coord>-75.31286 40.077887 3.4000000953674316</gx:coord> +<when>2013-07-25T20:44:09.000Z</when> +<gx:coord>-75.312859 40.077906 3.700000047683716</gx:coord> +<when>2013-07-25T20:44:10.000Z</when> +<gx:coord>-75.312864 40.077935 4.599999904632568</gx:coord> +<when>2013-07-25T20:44:11.000Z</when> +<gx:coord>-75.312878 40.077967 5.5</gx:coord> +<when>2013-07-25T20:44:12.000Z</when> +<gx:coord>-75.312895 40.078014 6.699999809265137</gx:coord> +<when>2013-07-25T20:44:13.000Z</when> +<gx:coord>-75.31293 40.078085 6.099999904632568</gx:coord> +<when>2013-07-25T20:44:14.000Z</when> +<gx:coord>-75.312957 40.078144 6.699999809265137</gx:coord> +<when>2013-07-25T20:44:15.000Z</when> +<gx:coord>-75.312969 40.078182 8.800000190734863</gx:coord> +<when>2013-07-25T20:44:16.000Z</when> +<gx:coord>-75.312977 40.078225 10.300000190734863</gx:coord> +<when>2013-07-25T20:44:17.000Z</when> +<gx:coord>-75.312978 40.078264 10.100000381469727</gx:coord> +<when>2013-07-25T20:44:18.000Z</when> +<gx:coord>-75.31298 40.078302 13.0</gx:coord> +<when>2013-07-25T20:44:19.000Z</when> +<gx:coord>-75.31298 40.078342 13.300000190734863</gx:coord> +<when>2013-07-25T20:44:20.000Z</when> +<gx:coord>-75.312983 40.078385 13.300000190734863</gx:coord> +<when>2013-07-25T20:44:21.000Z</when> +<gx:coord>-75.312973 40.07846 9.600000381469727</gx:coord> +<when>2013-07-25T20:44:22.000Z</when> +<gx:coord>-75.312972 40.078493 10.899999618530273</gx:coord> +<when>2013-07-25T20:44:23.000Z</when> +<gx:coord>-75.31297 40.078531 11.0</gx:coord> +<when>2013-07-25T20:44:24.000Z</when> +<gx:coord>-75.312972 40.078557 11.399999618530273</gx:coord> +<when>2013-07-25T20:44:25.000Z</when> +<gx:coord>-75.312946 40.078596 12.600000381469727</gx:coord> +<when>2013-07-25T20:44:26.000Z</when> +<gx:coord>-75.312942 40.078655 10.600000381469727</gx:coord> +<when>2013-07-25T20:44:27.000Z</when> +<gx:coord>-75.312933 40.078709 8.800000190734863</gx:coord> +<when>2013-07-25T20:44:28.000Z</when> +<gx:coord>-75.312936 40.078758 8.600000381469727</gx:coord> +<when>2013-07-25T20:44:29.000Z</when> +<gx:coord>-75.312937 40.078804 8.800000190734863</gx:coord> +<when>2013-07-25T20:44:30.000Z</when> +<gx:coord>-75.312958 40.078834 11.600000381469727</gx:coord> +<when>2013-07-25T20:44:31.000Z</when> +<gx:coord>-75.312948 40.078878 12.5</gx:coord> +<when>2013-07-25T20:44:32.000Z</when> +<gx:coord>-75.312943 40.078922 13.0</gx:coord> +<when>2013-07-25T20:44:33.000Z</when> +<gx:coord>-75.312937 40.078968 14.399999618530273</gx:coord> +<when>2013-07-25T20:44:34.000Z</when> +<gx:coord>-75.312936 40.079015 14.699999809265137</gx:coord> +<when>2013-07-25T20:44:35.000Z</when> +<gx:coord>-75.312881 40.079063 12.600000381469727</gx:coord> +<when>2013-07-25T20:44:36.000Z</when> +<gx:coord>-75.312873 40.079105 13.600000381469727</gx:coord> +<when>2013-07-25T20:44:37.000Z</when> +<gx:coord>-75.312866 40.079142 14.100000381469727</gx:coord> +<when>2013-07-25T20:44:38.000Z</when> +<gx:coord>-75.312843 40.079194 12.100000381469727</gx:coord> +<when>2013-07-25T20:44:39.000Z</when> +<gx:coord>-75.312821 40.07924 11.5</gx:coord> +<when>2013-07-25T20:44:40.000Z</when> +<gx:coord>-75.3128 40.079285 11.199999809265137</gx:coord> +<when>2013-07-25T20:44:41.000Z</when> +<gx:coord>-75.312782 40.079329 11.100000381469727</gx:coord> +<when>2013-07-25T20:44:42.000Z</when> +<gx:coord>-75.312769 40.079362 11.0</gx:coord> +<when>2013-07-25T20:44:43.000Z</when> +<gx:coord>-75.312756 40.079403 11.0</gx:coord> +<when>2013-07-25T20:44:44.000Z</when> +<gx:coord>-75.312738 40.079444 11.0</gx:coord> +<when>2013-07-25T20:44:45.000Z</when> +<gx:coord>-75.31271 40.079502 8.5</gx:coord> +<when>2013-07-25T20:44:46.000Z</when> +<gx:coord>-75.312694 40.079541 9.0</gx:coord> +<when>2013-07-25T20:44:47.000Z</when> +<gx:coord>-75.312671 40.079576 10.199999809265137</gx:coord> +<when>2013-07-25T20:44:48.000Z</when> +<gx:coord>-75.312646 40.079595 13.399999618530273</gx:coord> +<when>2013-07-25T20:44:49.000Z</when> +<gx:coord>-75.312617 40.079621 15.0</gx:coord> +<when>2013-07-25T20:44:50.000Z</when> +<gx:coord>-75.312592 40.079638 15.899999618530273</gx:coord> +<when>2013-07-25T20:44:51.000Z</when> +<gx:coord>-75.312566 40.079661 16.399999618530273</gx:coord> +<when>2013-07-25T20:44:52.000Z</when> +<gx:coord>-75.312541 40.079677 16.399999618530273</gx:coord> +<when>2013-07-25T20:44:53.000Z</when> +<gx:coord>-75.312568 40.079722 16.799999237060547</gx:coord> +<when>2013-07-25T20:44:54.000Z</when> +<gx:coord>-75.312519 40.079792 15.100000381469727</gx:coord> +<when>2013-07-25T20:44:55.000Z</when> +<gx:coord>-75.312486 40.079846 12.5</gx:coord> +<when>2013-07-25T20:44:56.000Z</when> +<gx:coord>-75.312461 40.079897 12.899999618530273</gx:coord> +<when>2013-07-25T20:44:57.000Z</when> +<gx:coord>-75.312434 40.079945 13.300000190734863</gx:coord> +<when>2013-07-25T20:44:58.000Z</when> +<gx:coord>-75.312419 40.079986 18.5</gx:coord> +<when>2013-07-25T20:44:59.000Z</when> +<gx:coord>-75.312411 40.080028 18.700000762939453</gx:coord> +<when>2013-07-25T20:45:00.000Z</when> +<gx:coord>-75.312405 40.080071 19.200000762939453</gx:coord> +<when>2013-07-25T20:45:01.000Z</when> +<gx:coord>-75.3124 40.080112 19.200000762939453</gx:coord> +<when>2013-07-25T20:45:02.000Z</when> +<gx:coord>-75.31239 40.080153 19.799999237060547</gx:coord> +<when>2013-07-25T20:45:03.000Z</when> +<gx:coord>-75.312375 40.080195 20.100000381469727</gx:coord> +<when>2013-07-25T20:45:04.000Z</when> +<gx:coord>-75.312354 40.080238 20.399999618530273</gx:coord> +<when>2013-07-25T20:45:05.000Z</when> +<gx:coord>-75.312329 40.080278 20.0</gx:coord> +<when>2013-07-25T20:45:06.000Z</when> +<gx:coord>-75.312301 40.080316 19.700000762939453</gx:coord> +<when>2013-07-25T20:45:07.000Z</when> +<gx:coord>-75.312279 40.080355 21.200000762939453</gx:coord> +<when>2013-07-25T20:45:08.000Z</when> +<gx:coord>-75.312261 40.080397 22.0</gx:coord> +<when>2013-07-25T20:45:09.000Z</when> +<gx:coord>-75.312248 40.080439 21.899999618530273</gx:coord> +<when>2013-07-25T20:45:10.000Z</when> +<gx:coord>-75.312224 40.080491 20.899999618530273</gx:coord> +<when>2013-07-25T20:45:11.000Z</when> +<gx:coord>-75.312207 40.080538 20.899999618530273</gx:coord> +<when>2013-07-25T20:45:12.000Z</when> +<gx:coord>-75.312191 40.080587 20.0</gx:coord> +<when>2013-07-25T20:45:13.000Z</when> +<gx:coord>-75.312175 40.080635 19.100000381469727</gx:coord> +<when>2013-07-25T20:45:14.000Z</when> +<gx:coord>-75.312157 40.080683 18.399999618530273</gx:coord> +<when>2013-07-25T20:45:15.000Z</when> +<gx:coord>-75.31214 40.080728 17.5</gx:coord> +<when>2013-07-25T20:45:16.000Z</when> +<gx:coord>-75.312123 40.080779 17.100000381469727</gx:coord> +<when>2013-07-25T20:45:17.000Z</when> +<gx:coord>-75.312109 40.080825 16.5</gx:coord> +<when>2013-07-25T20:45:18.000Z</when> +<gx:coord>-75.312097 40.080878 14.5</gx:coord> +<when>2013-07-25T20:45:19.000Z</when> +<gx:coord>-75.312089 40.080916 14.699999809265137</gx:coord> +<when>2013-07-25T20:45:20.000Z</when> +<gx:coord>-75.312078 40.08096 15.399999618530273</gx:coord> +<when>2013-07-25T20:45:21.000Z</when> +<gx:coord>-75.312067 40.080997 15.600000381469727</gx:coord> +<when>2013-07-25T20:45:22.000Z</when> +<gx:coord>-75.312054 40.081025 15.800000190734863</gx:coord> +<when>2013-07-25T20:45:23.000Z</when> +<gx:coord>-75.312041 40.081058 15.199999809265137</gx:coord> +<when>2013-07-25T20:45:24.000Z</when> +<gx:coord>-75.312019 40.081095 13.899999618530273</gx:coord> +<when>2013-07-25T20:45:25.000Z</when> +<gx:coord>-75.312003 40.081132 13.5</gx:coord> +<when>2013-07-25T20:45:26.000Z</when> +<gx:coord>-75.311988 40.081209 15.199999809265137</gx:coord> +<when>2013-07-25T20:45:27.000Z</when> +<gx:coord>-75.311976 40.081271 13.600000381469727</gx:coord> +<when>2013-07-25T20:45:28.000Z</when> +<gx:coord>-75.311958 40.081316 13.899999618530273</gx:coord> +<when>2013-07-25T20:45:29.000Z</when> +<gx:coord>-75.31195 40.081358 14.199999809265137</gx:coord> +<when>2013-07-25T20:45:30.000Z</when> +<gx:coord>-75.311926 40.081423 11.600000381469727</gx:coord> +<when>2013-07-25T20:45:31.000Z</when> +<gx:coord>-75.311914 40.081472 11.5</gx:coord> +<when>2013-07-25T20:45:32.000Z</when> +<gx:coord>-75.311914 40.081523 11.399999618530273</gx:coord> +<when>2013-07-25T20:45:33.000Z</when> +<gx:coord>-75.311905 40.081581 10.300000190734863</gx:coord> +<when>2013-07-25T20:45:34.000Z</when> +<gx:coord>-75.3119 40.081626 10.300000190734863</gx:coord> +<when>2013-07-25T20:45:35.000Z</when> +<gx:coord>-75.311894 40.081681 9.100000381469727</gx:coord> +<when>2013-07-25T20:45:36.000Z</when> +<gx:coord>-75.3119 40.081728 10.0</gx:coord> +<when>2013-07-25T20:45:37.000Z</when> +<gx:coord>-75.311899 40.081779 9.399999618530273</gx:coord> +<when>2013-07-25T20:45:38.000Z</when> +<gx:coord>-75.311891 40.081827 9.399999618530273</gx:coord> +<when>2013-07-25T20:45:39.000Z</when> +<gx:coord>-75.31188 40.081878 8.600000381469727</gx:coord> +<when>2013-07-25T20:45:40.000Z</when> +<gx:coord>-75.311876 40.081929 8.199999809265137</gx:coord> +<when>2013-07-25T20:45:41.000Z</when> +<gx:coord>-75.31187 40.081977 8.199999809265137</gx:coord> +<when>2013-07-25T20:45:42.000Z</when> +<gx:coord>-75.311865 40.082023 8.199999809265137</gx:coord> +<when>2013-07-25T20:45:43.000Z</when> +<gx:coord>-75.311854 40.082069 8.300000190734863</gx:coord> +<when>2013-07-25T20:45:44.000Z</when> +<gx:coord>-75.311847 40.082121 8.100000381469727</gx:coord> +<when>2013-07-25T20:45:45.000Z</when> +<gx:coord>-75.311842 40.082171 7.5</gx:coord> +<when>2013-07-25T20:45:46.000Z</when> +<gx:coord>-75.311839 40.082217 7.5</gx:coord> +<when>2013-07-25T20:45:47.000Z</when> +<gx:coord>-75.311836 40.082265 7.599999904632568</gx:coord> +<when>2013-07-25T20:45:48.000Z</when> +<gx:coord>-75.31183 40.082311 7.5</gx:coord> +<when>2013-07-25T20:45:49.000Z</when> +<gx:coord>-75.311837 40.082345 8.399999618530273</gx:coord> +<when>2013-07-25T20:45:50.000Z</when> +<gx:coord>-75.31183 40.082386 7.800000190734863</gx:coord> +<when>2013-07-25T20:45:52.000Z</when> +<gx:coord>-75.311825 40.082423 7.599999904632568</gx:coord> +<when>2013-07-25T20:45:53.000Z</when> +<gx:coord>-75.311883 40.082466 8.899999618530273</gx:coord> +<when>2013-07-25T20:45:54.000Z</when> +<gx:coord>-75.311874 40.082525 10.699999809265137</gx:coord> +<when>2013-07-25T20:45:55.000Z</when> +<gx:coord>-75.311848 40.082575 10.800000190734863</gx:coord> +<when>2013-07-25T20:45:56.000Z</when> +<gx:coord>-75.311842 40.082626 11.199999809265137</gx:coord> +<when>2013-07-25T20:45:57.000Z</when> +<gx:coord>-75.311841 40.082681 12.199999809265137</gx:coord> +<when>2013-07-25T20:45:58.000Z</when> +<gx:coord>-75.311837 40.082723 12.100000381469727</gx:coord> +<when>2013-07-25T20:45:59.000Z</when> +<gx:coord>-75.311826 40.082787 12.399999618530273</gx:coord> +<when>2013-07-25T20:46:00.000Z</when> +<gx:coord>-75.311829 40.082801 13.800000190734863</gx:coord> +<when>2013-07-25T20:46:01.000Z</when> +<gx:coord>-75.311819 40.082844 14.100000381469727</gx:coord> +<when>2013-07-25T20:46:02.000Z</when> +<gx:coord>-75.311807 40.082881 13.800000190734863</gx:coord> +<when>2013-07-25T20:46:03.000Z</when> +<gx:coord>-75.311797 40.0829 12.199999809265137</gx:coord> +<when>2013-07-25T20:46:04.000Z</when> +<gx:coord>-75.311796 40.082926 11.5</gx:coord> +<when>2013-07-25T20:46:05.000Z</when> +<gx:coord>-75.311775 40.082944 10.800000190734863</gx:coord> +<when>2013-07-25T20:46:06.000Z</when> +<gx:coord>-75.311797 40.08297 12.300000190734863</gx:coord> +<when>2013-07-25T20:46:07.000Z</when> +<gx:coord>-75.311822 40.08301 13.800000190734863</gx:coord> +<when>2013-07-25T20:46:08.000Z</when> +<gx:coord>-75.311825 40.083098 15.899999618530273</gx:coord> +<when>2013-07-25T20:46:09.000Z</when> +<gx:coord>-75.311814 40.083139 14.800000190734863</gx:coord> +<when>2013-07-25T20:46:10.000Z</when> +<gx:coord>-75.311807 40.083188 14.600000381469727</gx:coord> +<when>2013-07-25T20:46:11.000Z</when> +<gx:coord>-75.311797 40.083241 14.800000190734863</gx:coord> +<when>2013-07-25T20:46:12.000Z</when> +<gx:coord>-75.311785 40.083292 14.699999809265137</gx:coord> +<when>2013-07-25T20:46:13.000Z</when> +<gx:coord>-75.311773 40.083341 14.899999618530273</gx:coord> +<when>2013-07-25T20:46:14.000Z</when> +<gx:coord>-75.311762 40.083387 15.199999809265137</gx:coord> +<when>2013-07-25T20:46:15.000Z</when> +<gx:coord>-75.311751 40.083431 13.800000190734863</gx:coord> +<when>2013-07-25T20:46:16.000Z</when> +<gx:coord>-75.311739 40.083488 15.399999618530273</gx:coord> +<when>2013-07-25T20:46:17.000Z</when> +<gx:coord>-75.311729 40.083539 15.100000381469727</gx:coord> +<when>2013-07-25T20:46:18.000Z</when> +<gx:coord>-75.311709 40.083588 14.699999809265137</gx:coord> +<when>2013-07-25T20:46:19.000Z</when> +<gx:coord>-75.311693 40.083635 14.399999618530273</gx:coord> +<when>2013-07-25T20:46:20.000Z</when> +<gx:coord>-75.311679 40.083685 14.699999809265137</gx:coord> +<when>2013-07-25T20:46:21.000Z</when> +<gx:coord>-75.31166 40.083737 14.199999809265137</gx:coord> +<when>2013-07-25T20:46:22.000Z</when> +<gx:coord>-75.311648 40.083782 14.0</gx:coord> +<when>2013-07-25T20:46:23.000Z</when> +<gx:coord>-75.311637 40.083831 13.399999618530273</gx:coord> +<when>2013-07-25T20:46:24.000Z</when> +<gx:coord>-75.311621 40.08388 13.600000381469727</gx:coord> +<when>2013-07-25T20:46:25.000Z</when> +<gx:coord>-75.311603 40.083925 13.399999618530273</gx:coord> +<when>2013-07-25T20:46:26.000Z</when> +<gx:coord>-75.311587 40.08397 13.199999809265137</gx:coord> +<when>2013-07-25T20:46:27.000Z</when> +<gx:coord>-75.311573 40.084016 13.5</gx:coord> +<when>2013-07-25T20:46:28.000Z</when> +<gx:coord>-75.311554 40.084066 13.300000190734863</gx:coord> +<when>2013-07-25T20:46:29.000Z</when> +<gx:coord>-75.311532 40.084115 12.100000381469727</gx:coord> +<when>2013-07-25T20:46:30.000Z</when> +<gx:coord>-75.311514 40.084161 11.899999618530273</gx:coord> +<when>2013-07-25T20:46:31.000Z</when> +<gx:coord>-75.311526 40.084206 13.0</gx:coord> +<when>2013-07-25T20:46:32.000Z</when> +<gx:coord>-75.311522 40.084253 13.100000381469727</gx:coord> +<when>2013-07-25T20:46:33.000Z</when> +<gx:coord>-75.3115 40.08429 14.600000381469727</gx:coord> +<when>2013-07-25T20:46:34.000Z</when> +<gx:coord>-75.311485 40.084337 14.699999809265137</gx:coord> +<when>2013-07-25T20:46:35.000Z</when> +<gx:coord>-75.311474 40.084385 14.699999809265137</gx:coord> +<when>2013-07-25T20:46:36.000Z</when> +<gx:coord>-75.31146 40.084436 13.800000190734863</gx:coord> +<when>2013-07-25T20:46:37.000Z</when> +<gx:coord>-75.311448 40.084482 14.199999809265137</gx:coord> +<when>2013-07-25T20:46:38.000Z</when> +<gx:coord>-75.311418 40.08453 13.100000381469727</gx:coord> +<when>2013-07-25T20:46:39.000Z</when> +<gx:coord>-75.311403 40.084576 13.600000381469727</gx:coord> +<when>2013-07-25T20:46:40.000Z</when> +<gx:coord>-75.311383 40.084621 13.699999809265137</gx:coord> +<when>2013-07-25T20:46:41.000Z</when> +<gx:coord>-75.311371 40.084667 13.300000190734863</gx:coord> +<when>2013-07-25T20:46:42.000Z</when> +<gx:coord>-75.311356 40.084712 12.800000190734863</gx:coord> +<when>2013-07-25T20:46:43.000Z</when> +<gx:coord>-75.311341 40.084752 13.699999809265137</gx:coord> +<when>2013-07-25T20:46:44.000Z</when> +<gx:coord>-75.311326 40.084796 12.0</gx:coord> +<when>2013-07-25T20:46:45.000Z</when> +<gx:coord>-75.311328 40.084816 17.0</gx:coord> +<when>2013-07-25T20:46:46.000Z</when> +<gx:coord>-75.311299 40.084864 15.199999809265137</gx:coord> +<when>2013-07-25T20:46:47.000Z</when> +<gx:coord>-75.311292 40.0849 16.0</gx:coord> +<when>2013-07-25T20:46:48.000Z</when> +<gx:coord>-75.311278 40.084924 18.899999618530273</gx:coord> +<when>2013-07-25T20:46:49.000Z</when> +<gx:coord>-75.311258 40.084961 18.399999618530273</gx:coord> +<when>2013-07-25T20:46:50.000Z</when> +<gx:coord>-75.311235 40.085018 15.199999809265137</gx:coord> +<when>2013-07-25T20:46:51.000Z</when> +<gx:coord>-75.311209 40.085056 15.0</gx:coord> +<when>2013-07-25T20:46:52.000Z</when> +<gx:coord>-75.311195 40.085087 18.399999618530273</gx:coord> +<when>2013-07-25T20:46:53.000Z</when> +<gx:coord>-75.311184 40.085121 19.5</gx:coord> +<when>2013-07-25T20:46:54.000Z</when> +<gx:coord>-75.311175 40.085152 20.200000762939453</gx:coord> +<when>2013-07-25T20:46:55.000Z</when> +<gx:coord>-75.311173 40.085177 26.0</gx:coord> +<when>2013-07-25T20:46:56.000Z</when> +<gx:coord>-75.311171 40.085202 28.0</gx:coord> +<when>2013-07-25T20:46:58.000Z</when> +<gx:coord>-75.311174 40.085237 32.400001525878906</gx:coord> +<when>2013-07-25T20:46:59.000Z</when> +<gx:coord>-75.311171 40.085259 33.0</gx:coord> +<when>2013-07-25T20:47:00.000Z</when> +<gx:coord>-75.311169 40.085282 34.599998474121094</gx:coord> +<when>2013-07-25T20:47:01.000Z</when> +<gx:coord>-75.311162 40.085307 35.29999923706055</gx:coord> +<when>2013-07-25T20:47:02.000Z</when> +<gx:coord>-75.31116 40.085333 36.900001525878906</gx:coord> +<when>2013-07-25T20:47:03.000Z</when> +<gx:coord>-75.31116 40.085361 37.5</gx:coord> +<when>2013-07-25T20:47:04.000Z</when> +<gx:coord>-75.311152 40.085398 31.5</gx:coord> +<when>2013-07-25T20:47:05.000Z</when> +<gx:coord>-75.311146 40.085435 31.100000381469727</gx:coord> +<when>2013-07-25T20:47:06.000Z</when> +<gx:coord>-75.311133 40.085472 28.899999618530273</gx:coord> +<when>2013-07-25T20:47:07.000Z</when> +<gx:coord>-75.311126 40.085518 28.0</gx:coord> +<when>2013-07-25T20:47:08.000Z</when> +<gx:coord>-75.311121 40.085568 26.600000381469727</gx:coord> +<when>2013-07-25T20:47:09.000Z</when> +<gx:coord>-75.311123 40.085615 26.5</gx:coord> +<when>2013-07-25T20:47:10.000Z</when> +<gx:coord>-75.311132 40.085661 29.200000762939453</gx:coord> +<when>2013-07-25T20:47:11.000Z</when> +<gx:coord>-75.311137 40.085705 27.799999237060547</gx:coord> +<when>2013-07-25T20:47:12.000Z</when> +<gx:coord>-75.311138 40.085751 27.600000381469727</gx:coord> +<when>2013-07-25T20:47:13.000Z</when> +<gx:coord>-75.311139 40.085797 26.5</gx:coord> +<when>2013-07-25T20:47:14.000Z</when> +<gx:coord>-75.311136 40.085844 26.299999237060547</gx:coord> +<when>2013-07-25T20:47:15.000Z</when> +<gx:coord>-75.311137 40.085893 25.5</gx:coord> +<when>2013-07-25T20:47:16.000Z</when> +<gx:coord>-75.311142 40.085941 26.799999237060547</gx:coord> +<when>2013-07-25T20:47:17.000Z</when> +<gx:coord>-75.311144 40.085989 25.5</gx:coord> +<when>2013-07-25T20:47:18.000Z</when> +<gx:coord>-75.311146 40.086034 24.0</gx:coord> +<when>2013-07-25T20:47:19.000Z</when> +<gx:coord>-75.31115 40.086079 22.799999237060547</gx:coord> +<when>2013-07-25T20:47:20.000Z</when> +<gx:coord>-75.311155 40.086127 22.0</gx:coord> +<when>2013-07-25T20:47:21.000Z</when> +<gx:coord>-75.311162 40.08617 23.200000762939453</gx:coord> +<when>2013-07-25T20:47:22.000Z</when> +<gx:coord>-75.311171 40.086212 22.100000381469727</gx:coord> +<when>2013-07-25T20:47:23.000Z</when> +<gx:coord>-75.311173 40.086257 17.0</gx:coord> +<when>2013-07-25T20:47:24.000Z</when> +<gx:coord>-75.311174 40.086303 15.800000190734863</gx:coord> +<when>2013-07-25T20:47:25.000Z</when> +<gx:coord>-75.311177 40.086345 15.699999809265137</gx:coord> +<when>2013-07-25T20:47:26.000Z</when> +<gx:coord>-75.311183 40.086386 14.699999809265137</gx:coord> +<when>2013-07-25T20:47:27.000Z</when> +<gx:coord>-75.311191 40.086427 13.5</gx:coord> +<when>2013-07-25T20:47:28.000Z</when> +<gx:coord>-75.311198 40.086468 12.300000190734863</gx:coord> +<when>2013-07-25T20:47:29.000Z</when> +<gx:coord>-75.311203 40.086506 11.899999618530273</gx:coord> +<when>2013-07-25T20:47:30.000Z</when> +<gx:coord>-75.311208 40.086544 12.0</gx:coord> +<when>2013-07-25T20:47:31.000Z</when> +<gx:coord>-75.311215 40.086578 13.199999809265137</gx:coord> +<when>2013-07-25T20:47:32.000Z</when> +<gx:coord>-75.311222 40.086612 13.800000190734863</gx:coord> +<when>2013-07-25T20:47:33.000Z</when> +<gx:coord>-75.311228 40.086645 12.600000381469727</gx:coord> +<when>2013-07-25T20:47:34.000Z</when> +<gx:coord>-75.311233 40.086679 12.800000190734863</gx:coord> +<when>2013-07-25T20:47:35.000Z</when> +<gx:coord>-75.311234 40.086716 10.600000381469727</gx:coord> +<when>2013-07-25T20:47:36.000Z</when> +<gx:coord>-75.311234 40.086755 10.800000190734863</gx:coord> +<when>2013-07-25T20:47:37.000Z</when> +<gx:coord>-75.311233 40.086791 10.899999618530273</gx:coord> +<when>2013-07-25T20:47:38.000Z</when> +<gx:coord>-75.311232 40.086828 10.300000190734863</gx:coord> +<when>2013-07-25T20:47:39.000Z</when> +<gx:coord>-75.311232 40.086863 9.600000381469727</gx:coord> +<when>2013-07-25T20:47:40.000Z</when> +<gx:coord>-75.311232 40.0869 9.300000190734863</gx:coord> +<when>2013-07-25T20:47:41.000Z</when> +<gx:coord>-75.311227 40.086937 5.0</gx:coord> +<when>2013-07-25T20:47:42.000Z</when> +<gx:coord>-75.311224 40.086975 5.300000190734863</gx:coord> +<when>2013-07-25T20:47:43.000Z</when> +<gx:coord>-75.311225 40.087012 6.699999809265137</gx:coord> +<when>2013-07-25T20:47:44.000Z</when> +<gx:coord>-75.311227 40.08705 7.5</gx:coord> +<when>2013-07-25T20:47:45.000Z</when> +<gx:coord>-75.311229 40.087086 6.5</gx:coord> +<when>2013-07-25T20:47:46.000Z</when> +<gx:coord>-75.311232 40.087122 6.300000190734863</gx:coord> +<when>2013-07-25T20:47:47.000Z</when> +<gx:coord>-75.311235 40.08716 6.400000095367432</gx:coord> +<when>2013-07-25T20:47:48.000Z</when> +<gx:coord>-75.311237 40.087198 6.400000095367432</gx:coord> +<when>2013-07-25T20:47:49.000Z</when> +<gx:coord>-75.311238 40.087234 5.800000190734863</gx:coord> +<when>2013-07-25T20:47:50.000Z</when> +<gx:coord>-75.311241 40.087271 5.099999904632568</gx:coord> +<when>2013-07-25T20:47:51.000Z</when> +<gx:coord>-75.311243 40.087307 4.400000095367432</gx:coord> +<when>2013-07-25T20:47:52.000Z</when> +<gx:coord>-75.311245 40.087342 5.199999809265137</gx:coord> +<when>2013-07-25T20:47:53.000Z</when> +<gx:coord>-75.311245 40.087377 4.5</gx:coord> +<when>2013-07-25T20:47:54.000Z</when> +<gx:coord>-75.311244 40.087412 5.800000190734863</gx:coord> +<when>2013-07-25T20:47:55.000Z</when> +<gx:coord>-75.311243 40.087448 6.599999904632568</gx:coord> +<when>2013-07-25T20:47:56.000Z</when> +<gx:coord>-75.311242 40.087484 6.599999904632568</gx:coord> +<when>2013-07-25T20:47:57.000Z</when> +<gx:coord>-75.31124 40.087518 6.900000095367432</gx:coord> +<when>2013-07-25T20:47:58.000Z</when> +<gx:coord>-75.311238 40.087553 7.0</gx:coord> +<when>2013-07-25T20:47:59.000Z</when> +<gx:coord>-75.311234 40.087587 7.400000095367432</gx:coord> +<when>2013-07-25T20:48:00.000Z</when> +<gx:coord>-75.311228 40.087624 8.899999618530273</gx:coord> +<when>2013-07-25T20:48:01.000Z</when> +<gx:coord>-75.311226 40.087655 11.5</gx:coord> +<when>2013-07-25T20:48:02.000Z</when> +<gx:coord>-75.311224 40.087689 11.199999809265137</gx:coord> +<when>2013-07-25T20:48:03.000Z</when> +<gx:coord>-75.31122 40.087723 12.0</gx:coord> +<when>2013-07-25T20:48:04.000Z</when> +<gx:coord>-75.311215 40.087757 13.100000381469727</gx:coord> +<when>2013-07-25T20:48:05.000Z</when> +<gx:coord>-75.311209 40.08779 13.899999618530273</gx:coord> +<when>2013-07-25T20:48:06.000Z</when> +<gx:coord>-75.311202 40.087824 14.100000381469727</gx:coord> +<when>2013-07-25T20:48:07.000Z</when> +<gx:coord>-75.311198 40.087858 14.800000190734863</gx:coord> +<when>2013-07-25T20:48:08.000Z</when> +<gx:coord>-75.311195 40.087894 15.600000381469727</gx:coord> +<when>2013-07-25T20:48:09.000Z</when> +<gx:coord>-75.311195 40.087927 16.700000762939453</gx:coord> +<when>2013-07-25T20:48:10.000Z</when> +<gx:coord>-75.311194 40.087959 17.5</gx:coord> +<when>2013-07-25T20:48:11.000Z</when> +<gx:coord>-75.311194 40.08799 17.899999618530273</gx:coord> +<when>2013-07-25T20:48:12.000Z</when> +<gx:coord>-75.311194 40.088024 17.899999618530273</gx:coord> +<when>2013-07-25T20:48:13.000Z</when> +<gx:coord>-75.311195 40.088056 17.899999618530273</gx:coord> +<when>2013-07-25T20:48:14.000Z</when> +<gx:coord>-75.311199 40.088091 18.0</gx:coord> +<when>2013-07-25T20:48:15.000Z</when> +<gx:coord>-75.311206 40.088125 18.5</gx:coord> +<when>2013-07-25T20:48:16.000Z</when> +<gx:coord>-75.311211 40.088163 16.399999618530273</gx:coord> +<when>2013-07-25T20:48:17.000Z</when> +<gx:coord>-75.311216 40.088197 16.5</gx:coord> +<when>2013-07-25T20:48:18.000Z</when> +<gx:coord>-75.311219 40.088229 16.899999618530273</gx:coord> +<when>2013-07-25T20:48:19.000Z</when> +<gx:coord>-75.311221 40.088261 17.700000762939453</gx:coord> +<when>2013-07-25T20:48:20.000Z</when> +<gx:coord>-75.311226 40.088296 17.200000762939453</gx:coord> +<when>2013-07-25T20:48:21.000Z</when> +<gx:coord>-75.311232 40.08833 16.299999237060547</gx:coord> +<when>2013-07-25T20:48:22.000Z</when> +<gx:coord>-75.311241 40.088367 16.5</gx:coord> +<when>2013-07-25T20:48:23.000Z</when> +<gx:coord>-75.31125 40.088404 17.5</gx:coord> +<when>2013-07-25T20:48:24.000Z</when> +<gx:coord>-75.311259 40.088441 18.399999618530273</gx:coord> +<when>2013-07-25T20:48:25.000Z</when> +<gx:coord>-75.311267 40.088476 18.200000762939453</gx:coord> +<when>2013-07-25T20:48:26.000Z</when> +<gx:coord>-75.311275 40.088513 17.5</gx:coord> +<when>2013-07-25T20:48:27.000Z</when> +<gx:coord>-75.311282 40.08855 18.200000762939453</gx:coord> +<when>2013-07-25T20:48:28.000Z</when> +<gx:coord>-75.31129 40.088587 18.100000381469727</gx:coord> +<when>2013-07-25T20:48:29.000Z</when> +<gx:coord>-75.311296 40.088622 16.399999618530273</gx:coord> +<when>2013-07-25T20:48:30.000Z</when> +<gx:coord>-75.311305 40.088661 15.699999809265137</gx:coord> +<when>2013-07-25T20:48:31.001Z</when> +<gx:coord>-75.311315 40.088697 15.899999618530273</gx:coord> +<when>2013-07-25T20:48:32.000Z</when> +<gx:coord>-75.311327 40.088735 15.800000190734863</gx:coord> +<when>2013-07-25T20:48:33.000Z</when> +<gx:coord>-75.311336 40.08877 14.300000190734863</gx:coord> +<when>2013-07-25T20:48:34.000Z</when> +<gx:coord>-75.311345 40.088805 14.100000381469727</gx:coord> +<when>2013-07-25T20:48:35.000Z</when> +<gx:coord>-75.311355 40.088841 13.600000381469727</gx:coord> +<when>2013-07-25T20:48:36.000Z</when> +<gx:coord>-75.311365 40.08888 13.5</gx:coord> +<when>2013-07-25T20:48:37.000Z</when> +<gx:coord>-75.311375 40.088917 13.5</gx:coord> +<when>2013-07-25T20:48:38.000Z</when> +<gx:coord>-75.311387 40.088952 13.199999809265137</gx:coord> +<when>2013-07-25T20:48:39.000Z</when> +<gx:coord>-75.311398 40.088987 12.699999809265137</gx:coord> +<when>2013-07-25T20:48:40.000Z</when> +<gx:coord>-75.311411 40.089022 12.699999809265137</gx:coord> +<when>2013-07-25T20:48:41.000Z</when> +<gx:coord>-75.311424 40.089054 12.699999809265137</gx:coord> +<when>2013-07-25T20:48:42.000Z</when> +<gx:coord>-75.311436 40.089085 12.5</gx:coord> +<when>2013-07-25T20:48:43.000Z</when> +<gx:coord>-75.311448 40.089119 11.5</gx:coord> +<when>2013-07-25T20:48:44.000Z</when> +<gx:coord>-75.311461 40.089153 11.399999618530273</gx:coord> +<when>2013-07-25T20:48:45.000Z</when> +<gx:coord>-75.311474 40.089187 11.5</gx:coord> +<when>2013-07-25T20:48:46.000Z</when> +<gx:coord>-75.31149 40.089217 12.800000190734863</gx:coord> +<when>2013-07-25T20:48:47.000Z</when> +<gx:coord>-75.311503 40.089249 13.5</gx:coord> +<when>2013-07-25T20:48:48.000Z</when> +<gx:coord>-75.311518 40.089282 11.0</gx:coord> +<when>2013-07-25T20:48:49.000Z</when> +<gx:coord>-75.311529 40.089314 8.300000190734863</gx:coord> +<when>2013-07-25T20:48:50.000Z</when> +<gx:coord>-75.311539 40.089349 5.800000190734863</gx:coord> +<when>2013-07-25T20:48:51.000Z</when> +<gx:coord>-75.311552 40.089385 5.800000190734863</gx:coord> +<when>2013-07-25T20:48:52.000Z</when> +<gx:coord>-75.311563 40.089426 0.10000000149011612</gx:coord> +<when>2013-07-25T20:48:53.000Z</when> +<gx:coord>-75.311574 40.089462 0.8999999761581421</gx:coord> +<when>2013-07-25T20:48:54.000Z</when> +<gx:coord>-75.311588 40.089495 0.0</gx:coord> +<when>2013-07-25T20:48:55.000Z</when> +<gx:coord>-75.311603 40.089524 0.6000000238418579</gx:coord> +<when>2013-07-25T20:48:56.000Z</when> +<gx:coord>-75.311619 40.089551 0.6000000238418579</gx:coord> +<when>2013-07-25T20:48:57.000Z</when> +<gx:coord>-75.311633 40.089575 -0.10000000149011612</gx:coord> +<when>2013-07-25T20:48:58.000Z</when> +<gx:coord>-75.311644 40.089599 -0.10000000149011612</gx:coord> +<when>2013-07-25T20:48:59.000Z</when> +<gx:coord>-75.311654 40.089621 1.7000000476837158</gx:coord> +<when>2013-07-25T20:49:00.000Z</when> +<gx:coord>-75.311666 40.089646 2.200000047683716</gx:coord> +<when>2013-07-25T20:49:01.000Z</when> +<gx:coord>-75.311678 40.089669 2.200000047683716</gx:coord> +<when>2013-07-25T20:49:02.000Z</when> +<gx:coord>-75.311689 40.089693 1.600000023841858</gx:coord> +<when>2013-07-25T20:49:03.000Z</when> +<gx:coord>-75.311701 40.089718 1.899999976158142</gx:coord> +<when>2013-07-25T20:49:04.000Z</when> +<gx:coord>-75.311715 40.089746 1.2000000476837158</gx:coord> +<when>2013-07-25T20:49:05.000Z</when> +<gx:coord>-75.311729 40.089774 2.0999999046325684</gx:coord> +<when>2013-07-25T20:49:06.000Z</when> +<gx:coord>-75.311742 40.089803 2.299999952316284</gx:coord> +<when>2013-07-25T20:49:07.000Z</when> +<gx:coord>-75.311753 40.089832 2.0</gx:coord> +<when>2013-07-25T20:49:08.000Z</when> +<gx:coord>-75.311764 40.089859 3.0999999046325684</gx:coord> +<when>2013-07-25T20:49:09.000Z</when> +<gx:coord>-75.311774 40.089885 3.200000047683716</gx:coord> +<when>2013-07-25T20:49:10.000Z</when> +<gx:coord>-75.311784 40.089912 2.9000000953674316</gx:coord> +<when>2013-07-25T20:49:11.000Z</when> +<gx:coord>-75.311792 40.089939 2.4000000953674316</gx:coord> +<when>2013-07-25T20:49:12.000Z</when> +<gx:coord>-75.311799 40.089967 2.700000047683716</gx:coord> +<when>2013-07-25T20:49:13.000Z</when> +<gx:coord>-75.311806 40.089993 3.0999999046325684</gx:coord> +<when>2013-07-25T20:49:14.000Z</when> +<gx:coord>-75.311813 40.090021 2.200000047683716</gx:coord> +<when>2013-07-25T20:49:15.000Z</when> +<gx:coord>-75.311822 40.09005 1.899999976158142</gx:coord> +<when>2013-07-25T20:49:16.000Z</when> +<gx:coord>-75.311832 40.090081 1.899999976158142</gx:coord> +<when>2013-07-25T20:49:17.000Z</when> +<gx:coord>-75.311843 40.090113 1.7999999523162842</gx:coord> +<when>2013-07-25T20:49:18.000Z</when> +<gx:coord>-75.311854 40.090146 1.7999999523162842</gx:coord> +<when>2013-07-25T20:49:19.000Z</when> +<gx:coord>-75.311864 40.090177 2.299999952316284</gx:coord> +<when>2013-07-25T20:49:20.000Z</when> +<gx:coord>-75.311876 40.09021 2.4000000953674316</gx:coord> +<when>2013-07-25T20:49:21.000Z</when> +<gx:coord>-75.311887 40.090244 -0.30000001192092896</gx:coord> +<when>2013-07-25T20:49:22.000Z</when> +<gx:coord>-75.3119 40.090282 -0.4000000059604645</gx:coord> +<when>2013-07-25T20:49:23.000Z</when> +<gx:coord>-75.31191 40.090321 -1.399999976158142</gx:coord> +<when>2013-07-25T20:49:24.000Z</when> +<gx:coord>-75.311919 40.090361 -1.399999976158142</gx:coord> +<when>2013-07-25T20:49:25.000Z</when> +<gx:coord>-75.311926 40.090399 -1.5</gx:coord> +<when>2013-07-25T20:49:26.000Z</when> +<gx:coord>-75.311935 40.090436 -1.2000000476837158</gx:coord> +<when>2013-07-25T20:49:27.000Z</when> +<gx:coord>-75.311944 40.090471 -1.0</gx:coord> +<when>2013-07-25T20:49:28.000Z</when> +<gx:coord>-75.311953 40.090508 -1.899999976158142</gx:coord> +<when>2013-07-25T20:49:29.000Z</when> +<gx:coord>-75.311962 40.09054 -2.0</gx:coord> +<when>2013-07-25T20:49:30.000Z</when> +<gx:coord>-75.311969 40.090574 -2.200000047683716</gx:coord> +<when>2013-07-25T20:49:31.000Z</when> +<gx:coord>-75.311976 40.090609 -2.799999952316284</gx:coord> +<when>2013-07-25T20:49:32.000Z</when> +<gx:coord>-75.31198 40.090646 -2.5</gx:coord> +<when>2013-07-25T20:49:33.000Z</when> +<gx:coord>-75.311983 40.090681 -2.5</gx:coord> +<when>2013-07-25T20:49:34.000Z</when> +<gx:coord>-75.311986 40.090716 -1.2999999523162842</gx:coord> +<when>2013-07-25T20:49:35.000Z</when> +<gx:coord>-75.311989 40.090751 -0.5</gx:coord> +<when>2013-07-25T20:49:36.000Z</when> +<gx:coord>-75.31199 40.090785 -0.6000000238418579</gx:coord> +<when>2013-07-25T20:49:37.000Z</when> +<gx:coord>-75.311991 40.090818 -1.399999976158142</gx:coord> +<when>2013-07-25T20:49:38.000Z</when> +<gx:coord>-75.311989 40.090851 -1.5</gx:coord> +<when>2013-07-25T20:49:39.000Z</when> +<gx:coord>-75.311989 40.090886 -2.0</gx:coord> +<when>2013-07-25T20:49:40.000Z</when> +<gx:coord>-75.311991 40.090922 -1.899999976158142</gx:coord> +<when>2013-07-25T20:49:41.000Z</when> +<gx:coord>-75.311994 40.090954 -1.0</gx:coord> +<when>2013-07-25T20:49:42.000Z</when> +<gx:coord>-75.311997 40.090986 -1.899999976158142</gx:coord> +<when>2013-07-25T20:49:43.000Z</when> +<gx:coord>-75.312003 40.091016 -1.2999999523162842</gx:coord> +<when>2013-07-25T20:49:44.000Z</when> +<gx:coord>-75.312008 40.091047 -1.2000000476837158</gx:coord> +<when>2013-07-25T20:49:45.000Z</when> +<gx:coord>-75.312015 40.091079 -1.7000000476837158</gx:coord> +<when>2013-07-25T20:49:46.000Z</when> +<gx:coord>-75.31202 40.091111 -2.0</gx:coord> +<when>2013-07-25T20:49:47.000Z</when> +<gx:coord>-75.312021 40.091144 -1.7999999523162842</gx:coord> +<when>2013-07-25T20:49:48.000Z</when> +<gx:coord>-75.312022 40.091177 -0.8999999761581421</gx:coord> +<when>2013-07-25T20:49:49.000Z</when> +<gx:coord>-75.312025 40.091208 0.10000000149011612</gx:coord> +<when>2013-07-25T20:49:50.000Z</when> +<gx:coord>-75.312029 40.091241 0.0</gx:coord> +<when>2013-07-25T20:49:51.000Z</when> +<gx:coord>-75.312035 40.091274 0.5</gx:coord> +<when>2013-07-25T20:49:52.000Z</when> +<gx:coord>-75.312041 40.091308 1.0</gx:coord> +<when>2013-07-25T20:49:53.000Z</when> +<gx:coord>-75.312048 40.091341 1.2999999523162842</gx:coord> +<when>2013-07-25T20:49:54.000Z</when> +<gx:coord>-75.312055 40.091375 1.399999976158142</gx:coord> +<when>2013-07-25T20:49:55.000Z</when> +<gx:coord>-75.312066 40.091409 1.899999976158142</gx:coord> +<when>2013-07-25T20:49:56.000Z</when> +<gx:coord>-75.312077 40.091445 1.399999976158142</gx:coord> +<when>2013-07-25T20:49:57.000Z</when> +<gx:coord>-75.312087 40.091478 1.100000023841858</gx:coord> +<when>2013-07-25T20:49:58.000Z</when> +<gx:coord>-75.312093 40.091512 0.5</gx:coord> +<when>2013-07-25T20:49:59.000Z</when> +<gx:coord>-75.31209 40.091542 -1.100000023841858</gx:coord> +<when>2013-07-25T20:49:59.999Z</when> +<gx:coord>-75.312085 40.091572 -3.0</gx:coord> +<when>2013-07-25T20:50:01.000Z</when> +<gx:coord>-75.31206 40.091597 -1.5</gx:coord> +<when>2013-07-25T20:50:02.000Z</when> +<gx:coord>-75.31204 40.09162 -0.699999988079071</gx:coord> +<when>2013-07-25T20:50:03.000Z</when> +<gx:coord>-75.312017 40.091643 0.800000011920929</gx:coord> +<when>2013-07-25T20:50:04.000Z</when> +<gx:coord>-75.311991 40.091666 1.7999999523162842</gx:coord> +<when>2013-07-25T20:50:05.000Z</when> +<gx:coord>-75.311962 40.091687 1.600000023841858</gx:coord> +<when>2013-07-25T20:50:06.000Z</when> +<gx:coord>-75.31193 40.09171 1.600000023841858</gx:coord> +<when>2013-07-25T20:50:07.000Z</when> +<gx:coord>-75.311898 40.091736 2.200000047683716</gx:coord> +<when>2013-07-25T20:50:08.000Z</when> +<gx:coord>-75.311865 40.091763 2.200000047683716</gx:coord> +<when>2013-07-25T20:50:09.000Z</when> +<gx:coord>-75.311835 40.091789 2.5999999046325684</gx:coord> +<when>2013-07-25T20:50:10.000Z</when> +<gx:coord>-75.311805 40.091817 2.9000000953674316</gx:coord> +<when>2013-07-25T20:50:11.000Z</when> +<gx:coord>-75.311776 40.091844 2.799999952316284</gx:coord> +<when>2013-07-25T20:50:12.000Z</when> +<gx:coord>-75.311744 40.09187 3.200000047683716</gx:coord> +<when>2013-07-25T20:50:13.000Z</when> +<gx:coord>-75.311713 40.091891 4.0</gx:coord> +<when>2013-07-25T20:50:14.000Z</when> +<gx:coord>-75.311681 40.091912 4.800000190734863</gx:coord> +<when>2013-07-25T20:50:15.000Z</when> +<gx:coord>-75.311651 40.091932 6.400000095367432</gx:coord> +<when>2013-07-25T20:50:16.000Z</when> +<gx:coord>-75.311621 40.091952 8.100000381469727</gx:coord> +<when>2013-07-25T20:50:17.000Z</when> +<gx:coord>-75.31159 40.09197 9.600000381469727</gx:coord> +<when>2013-07-25T20:50:18.000Z</when> +<gx:coord>-75.311556 40.091985 10.600000381469727</gx:coord> +<when>2013-07-25T20:50:19.001Z</when> +<gx:coord>-75.311522 40.092001 11.399999618530273</gx:coord> +<when>2013-07-25T20:50:19.999Z</when> +<gx:coord>-75.311483 40.092015 11.899999618530273</gx:coord> +<when>2013-07-25T20:50:21.000Z</when> +<gx:coord>-75.311442 40.09203 12.199999809265137</gx:coord> +<when>2013-07-25T20:50:22.000Z</when> +<gx:coord>-75.311405 40.092046 12.5</gx:coord> +<when>2013-07-25T20:50:23.000Z</when> +<gx:coord>-75.311368 40.092066 12.600000381469727</gx:coord> +<when>2013-07-25T20:50:24.000Z</when> +<gx:coord>-75.311338 40.092093 11.699999809265137</gx:coord> +<when>2013-07-25T20:50:25.000Z</when> +<gx:coord>-75.31131 40.092116 11.699999809265137</gx:coord> +<when>2013-07-25T20:50:26.000Z</when> +<gx:coord>-75.31128 40.092139 9.199999809265137</gx:coord> +<when>2013-07-25T20:50:27.000Z</when> +<gx:coord>-75.311243 40.092156 6.300000190734863</gx:coord> +<when>2013-07-25T20:50:27.999Z</when> +<gx:coord>-75.31121 40.09217 6.300000190734863</gx:coord> +<when>2013-07-25T20:50:29.000Z</when> +<gx:coord>-75.311152 40.092163 5.5</gx:coord> +<when>2013-07-25T20:50:30.000Z</when> +<gx:coord>-75.311106 40.092157 4.400000095367432</gx:coord> +<when>2013-07-25T20:50:31.000Z</when> +<gx:coord>-75.311061 40.09215 4.300000190734863</gx:coord> +<when>2013-07-25T20:50:32.000Z</when> +<gx:coord>-75.311026 40.092152 4.300000190734863</gx:coord> +<when>2013-07-25T20:50:34.000Z</when> +<gx:coord>-75.310991 40.092185 5.400000095367432</gx:coord> +<when>2013-07-25T20:50:35.000Z</when> +<gx:coord>-75.310985 40.092214 5.800000190734863</gx:coord> +<when>2013-07-25T20:50:36.000Z</when> +<gx:coord>-75.310981 40.092244 5.900000095367432</gx:coord> +<when>2013-07-25T20:50:37.000Z</when> +<gx:coord>-75.310978 40.092273 6.599999904632568</gx:coord> +<when>2013-07-25T20:50:38.000Z</when> +<gx:coord>-75.310973 40.092301 6.900000095367432</gx:coord> +<when>2013-07-25T20:50:39.000Z</when> +<gx:coord>-75.310967 40.092326 6.5</gx:coord> +<when>2013-07-25T20:50:41.000Z</when> +<gx:coord>-75.310962 40.092368 8.300000190734863</gx:coord> +<when>2013-07-25T20:50:42.000Z</when> +<gx:coord>-75.310957 40.092387 9.0</gx:coord> +<when>2013-07-25T20:50:44.000Z</when> +<gx:coord>-75.310953 40.092429 6.599999904632568</gx:coord> +<when>2013-07-25T20:50:45.000Z</when> +<gx:coord>-75.310948 40.092452 6.699999809265137</gx:coord> +<when>2013-07-25T20:50:46.000Z</when> +<gx:coord>-75.310944 40.092478 7.300000190734863</gx:coord> +<when>2013-07-25T20:50:47.000Z</when> +<gx:coord>-75.310939 40.092503 7.400000095367432</gx:coord> +<when>2013-07-25T20:50:48.000Z</when> +<gx:coord>-75.310931 40.092531 6.199999809265137</gx:coord> +<when>2013-07-25T20:50:49.000Z</when> +<gx:coord>-75.310922 40.092556 6.099999904632568</gx:coord> +<when>2013-07-25T20:50:50.000Z</when> +<gx:coord>-75.310914 40.092581 5.900000095367432</gx:coord> +<when>2013-07-25T20:50:51.000Z</when> +<gx:coord>-75.310905 40.092606 5.800000190734863</gx:coord> +<when>2013-07-25T20:50:52.000Z</when> +<gx:coord>-75.310895 40.092633 5.300000190734863</gx:coord> +<when>2013-07-25T20:50:53.000Z</when> +<gx:coord>-75.310883 40.09266 5.0</gx:coord> +<when>2013-07-25T20:50:54.000Z</when> +<gx:coord>-75.31087 40.09269 4.5</gx:coord> +<when>2013-07-25T20:50:55.000Z</when> +<gx:coord>-75.310858 40.092718 6.400000095367432</gx:coord> +<when>2013-07-25T20:50:56.000Z</when> +<gx:coord>-75.310847 40.092747 6.199999809265137</gx:coord> +<when>2013-07-25T20:50:57.000Z</when> +<gx:coord>-75.310837 40.092773 6.599999904632568</gx:coord> +<when>2013-07-25T20:50:58.000Z</when> +<gx:coord>-75.310827 40.092801 6.400000095367432</gx:coord> +<when>2013-07-25T20:50:59.000Z</when> +<gx:coord>-75.310817 40.092829 7.300000190734863</gx:coord> +<when>2013-07-25T20:51:00.000Z</when> +<gx:coord>-75.310806 40.092853 8.699999809265137</gx:coord> +<when>2013-07-25T20:51:01.000Z</when> +<gx:coord>-75.310799 40.092875 8.600000381469727</gx:coord> +<when>2013-07-25T20:51:02.000Z</when> +<gx:coord>-75.31079 40.092897 9.100000381469727</gx:coord> +<when>2013-07-25T20:51:03.000Z</when> +<gx:coord>-75.310779 40.092921 9.399999618530273</gx:coord> +<when>2013-07-25T20:51:04.000Z</when> +<gx:coord>-75.310764 40.092947 9.399999618530273</gx:coord> +<when>2013-07-25T20:51:05.000Z</when> +<gx:coord>-75.31075 40.092972 9.199999809265137</gx:coord> +<when>2013-07-25T20:51:06.000Z</when> +<gx:coord>-75.310736 40.092996 9.100000381469727</gx:coord> +<when>2013-07-25T20:51:07.000Z</when> +<gx:coord>-75.310723 40.093018 9.100000381469727</gx:coord> +<when>2013-07-25T20:51:08.000Z</when> +<gx:coord>-75.310711 40.09304 9.699999809265137</gx:coord> +<when>2013-07-25T20:51:09.000Z</when> +<gx:coord>-75.3107 40.093062 8.800000190734863</gx:coord> +<when>2013-07-25T20:51:10.000Z</when> +<gx:coord>-75.310689 40.093085 8.800000190734863</gx:coord> +<when>2013-07-25T20:51:11.000Z</when> +<gx:coord>-75.310676 40.093109 9.300000190734863</gx:coord> +<when>2013-07-25T20:51:12.000Z</when> +<gx:coord>-75.310665 40.093134 9.699999809265137</gx:coord> +<when>2013-07-25T20:51:13.000Z</when> +<gx:coord>-75.310652 40.093158 10.0</gx:coord> +<when>2013-07-25T20:51:14.000Z</when> +<gx:coord>-75.31064 40.093184 12.100000381469727</gx:coord> +<when>2013-07-25T20:51:15.000Z</when> +<gx:coord>-75.310622 40.093212 10.399999618530273</gx:coord> +<when>2013-07-25T20:51:16.000Z</when> +<gx:coord>-75.310601 40.093243 10.300000190734863</gx:coord> +<when>2013-07-25T20:51:17.000Z</when> +<gx:coord>-75.310577 40.093272 10.600000381469727</gx:coord> +<when>2013-07-25T20:51:18.000Z</when> +<gx:coord>-75.31055 40.093302 10.600000381469727</gx:coord> +<when>2013-07-25T20:51:19.000Z</when> +<gx:coord>-75.310522 40.09333 10.899999618530273</gx:coord> +<when>2013-07-25T20:51:20.000Z</when> +<gx:coord>-75.310491 40.093359 10.300000190734863</gx:coord> +<when>2013-07-25T20:51:21.000Z</when> +<gx:coord>-75.310463 40.093385 11.0</gx:coord> +<when>2013-07-25T20:51:22.000Z</when> +<gx:coord>-75.310433 40.09341 10.699999809265137</gx:coord> +<when>2013-07-25T20:51:23.000Z</when> +<gx:coord>-75.310406 40.093434 11.699999809265137</gx:coord> +<when>2013-07-25T20:51:24.000Z</when> +<gx:coord>-75.310383 40.093453 12.600000381469727</gx:coord> +<when>2013-07-25T20:51:25.000Z</when> +<gx:coord>-75.310364 40.093466 13.199999809265137</gx:coord> +<when>2013-07-25T20:51:27.000Z</when> +<gx:coord>-75.31033 40.09349 14.0</gx:coord> +<when>2013-07-25T20:51:28.000Z</when> +<gx:coord>-75.310313 40.093504 14.600000381469727</gx:coord> +<when>2013-07-25T20:51:30.000Z</when> +<gx:coord>-75.310276 40.093538 13.5</gx:coord> +<when>2013-07-25T20:51:31.000Z</when> +<gx:coord>-75.310257 40.093555 14.0</gx:coord> +<when>2013-07-25T20:51:32.000Z</when> +<gx:coord>-75.310237 40.093572 14.300000190734863</gx:coord> +<when>2013-07-25T20:51:33.000Z</when> +<gx:coord>-75.310217 40.093588 14.300000190734863</gx:coord> +<when>2013-07-25T20:51:34.000Z</when> +<gx:coord>-75.310197 40.093606 13.300000190734863</gx:coord> +<when>2013-07-25T20:51:35.000Z</when> +<gx:coord>-75.310178 40.093625 12.399999618530273</gx:coord> +<when>2013-07-25T20:51:37.000Z</when> +<gx:coord>-75.310145 40.093662 11.699999809265137</gx:coord> +<when>2013-07-25T20:51:38.000Z</when> +<gx:coord>-75.310127 40.093679 11.5</gx:coord> +<when>2013-07-25T20:51:39.000Z</when> +<gx:coord>-75.310107 40.093695 12.0</gx:coord> +<when>2013-07-25T20:51:40.000Z</when> +<gx:coord>-75.310083 40.093711 12.600000381469727</gx:coord> +<when>2013-07-25T20:51:41.000Z</when> +<gx:coord>-75.310058 40.093727 12.600000381469727</gx:coord> +<when>2013-07-25T20:51:42.000Z</when> +<gx:coord>-75.310032 40.093743 14.899999618530273</gx:coord> +<when>2013-07-25T20:51:43.000Z</when> +<gx:coord>-75.31001 40.093759 17.299999237060547</gx:coord> +<when>2013-07-25T20:51:43.999Z</when> +<gx:coord>-75.309989 40.093776 19.100000381469727</gx:coord> +<when>2013-07-25T20:51:45.000Z</when> +<gx:coord>-75.309968 40.093802 16.399999618530273</gx:coord> +<when>2013-07-25T20:51:46.000Z</when> +<gx:coord>-75.309944 40.093826 16.100000381469727</gx:coord> +<when>2013-07-25T20:51:47.000Z</when> +<gx:coord>-75.309915 40.093851 17.299999237060547</gx:coord> +<when>2013-07-25T20:51:48.000Z</when> +<gx:coord>-75.309885 40.093875 17.299999237060547</gx:coord> +<when>2013-07-25T20:51:49.000Z</when> +<gx:coord>-75.309856 40.093895 17.5</gx:coord> +<when>2013-07-25T20:51:50.000Z</when> +<gx:coord>-75.309828 40.093916 17.5</gx:coord> +<when>2013-07-25T20:51:51.000Z</when> +<gx:coord>-75.3098 40.093936 18.399999618530273</gx:coord> +<when>2013-07-25T20:51:52.000Z</when> +<gx:coord>-75.309773 40.093955 20.100000381469727</gx:coord> +<when>2013-07-25T20:51:53.000Z</when> +<gx:coord>-75.30975 40.09397 23.299999237060547</gx:coord> +<when>2013-07-25T20:51:54.000Z</when> +<gx:coord>-75.309723 40.093987 21.399999618530273</gx:coord> +<when>2013-07-25T20:51:55.000Z</when> +<gx:coord>-75.309692 40.094008 19.5</gx:coord> +<when>2013-07-25T20:51:56.000Z</when> +<gx:coord>-75.309659 40.09403 19.299999237060547</gx:coord> +<when>2013-07-25T20:51:57.000Z</when> +<gx:coord>-75.309627 40.094053 18.600000381469727</gx:coord> +<when>2013-07-25T20:51:58.000Z</when> +<gx:coord>-75.309591 40.094078 17.200000762939453</gx:coord> +<when>2013-07-25T20:51:59.000Z</when> +<gx:coord>-75.30956 40.094103 18.700000762939453</gx:coord> +<when>2013-07-25T20:52:00.000Z</when> +<gx:coord>-75.309531 40.094129 18.899999618530273</gx:coord> +<when>2013-07-25T20:52:01.000Z</when> +<gx:coord>-75.309507 40.094153 19.100000381469727</gx:coord> +<when>2013-07-25T20:52:02.000Z</when> +<gx:coord>-75.309485 40.094174 20.0</gx:coord> +<when>2013-07-25T20:52:03.000Z</when> +<gx:coord>-75.309462 40.094195 19.399999618530273</gx:coord> +<when>2013-07-25T20:52:04.000Z</when> +<gx:coord>-75.309436 40.094216 19.299999237060547</gx:coord> +<when>2013-07-25T20:52:05.000Z</when> +<gx:coord>-75.309412 40.094234 19.700000762939453</gx:coord> +<when>2013-07-25T20:52:06.000Z</when> +<gx:coord>-75.309384 40.094254 17.700000762939453</gx:coord> +<when>2013-07-25T20:52:07.000Z</when> +<gx:coord>-75.309356 40.094275 17.5</gx:coord> +<when>2013-07-25T20:52:08.000Z</when> +<gx:coord>-75.309327 40.094298 17.600000381469727</gx:coord> +<when>2013-07-25T20:52:09.000Z</when> +<gx:coord>-75.309299 40.09432 17.399999618530273</gx:coord> +<when>2013-07-25T20:52:10.000Z</when> +<gx:coord>-75.309273 40.094343 18.100000381469727</gx:coord> +<when>2013-07-25T20:52:11.000Z</when> +<gx:coord>-75.309245 40.094366 17.200000762939453</gx:coord> +<when>2013-07-25T20:52:12.000Z</when> +<gx:coord>-75.309214 40.09439 16.200000762939453</gx:coord> +<when>2013-07-25T20:52:13.000Z</when> +<gx:coord>-75.309186 40.094412 16.5</gx:coord> +<when>2013-07-25T20:52:14.000Z</when> +<gx:coord>-75.309158 40.094435 16.799999237060547</gx:coord> +<when>2013-07-25T20:52:15.000Z</when> +<gx:coord>-75.30913 40.094459 17.700000762939453</gx:coord> +<when>2013-07-25T20:52:16.000Z</when> +<gx:coord>-75.309101 40.094484 17.600000381469727</gx:coord> +<when>2013-07-25T20:52:17.000Z</when> +<gx:coord>-75.309076 40.094507 17.899999618530273</gx:coord> +<when>2013-07-25T20:52:18.000Z</when> +<gx:coord>-75.309048 40.094532 17.700000762939453</gx:coord> +<when>2013-07-25T20:52:19.000Z</when> +<gx:coord>-75.30902 40.094556 17.100000381469727</gx:coord> +<when>2013-07-25T20:52:20.000Z</when> +<gx:coord>-75.308992 40.094581 16.399999618530273</gx:coord> +<when>2013-07-25T20:52:21.000Z</when> +<gx:coord>-75.308968 40.094603 18.200000762939453</gx:coord> +<when>2013-07-25T20:52:22.000Z</when> +<gx:coord>-75.308948 40.09462 19.600000381469727</gx:coord> +<when>2013-07-25T20:52:24.000Z</when> +<gx:coord>-75.308907 40.094649 19.399999618530273</gx:coord> +<when>2013-07-25T20:52:25.000Z</when> +<gx:coord>-75.308885 40.094666 18.5</gx:coord> +<when>2013-07-25T20:52:26.000Z</when> +<gx:coord>-75.308862 40.094682 17.899999618530273</gx:coord> +<when>2013-07-25T20:52:27.000Z</when> +<gx:coord>-75.308838 40.094704 17.600000381469727</gx:coord> +<when>2013-07-25T20:52:28.000Z</when> +<gx:coord>-75.308816 40.094726 17.399999618530273</gx:coord> +<when>2013-07-25T20:52:29.000Z</when> +<gx:coord>-75.3088 40.09474 23.299999237060547</gx:coord> +<when>2013-07-25T20:52:31.000Z</when> +<gx:coord>-75.308771 40.094766 26.600000381469727</gx:coord> +<when>2013-07-25T20:52:32.000Z</when> +<gx:coord>-75.308749 40.094781 27.299999237060547</gx:coord> +<when>2013-07-25T20:52:33.000Z</when> +<gx:coord>-75.308725 40.094798 29.100000381469727</gx:coord> +<when>2013-07-25T20:52:34.000Z</when> +<gx:coord>-75.308697 40.094818 30.600000381469727</gx:coord> +<when>2013-07-25T20:52:35.000Z</when> +<gx:coord>-75.308665 40.094843 28.799999237060547</gx:coord> +<when>2013-07-25T20:52:36.000Z</when> +<gx:coord>-75.308629 40.094869 26.700000762939453</gx:coord> +<when>2013-07-25T20:52:37.000Z</when> +<gx:coord>-75.308599 40.094893 27.700000762939453</gx:coord> +<when>2013-07-25T20:52:38.000Z</when> +<gx:coord>-75.30857 40.094916 28.600000381469727</gx:coord> +<when>2013-07-25T20:52:39.000Z</when> +<gx:coord>-75.308545 40.094936 30.0</gx:coord> +<when>2013-07-25T20:52:40.000Z</when> +<gx:coord>-75.308519 40.094955 31.0</gx:coord> +<when>2013-07-25T20:52:41.000Z</when> +<gx:coord>-75.308495 40.094974 31.200000762939453</gx:coord> +<when>2013-07-25T20:52:42.000Z</when> +<gx:coord>-75.308466 40.094994 29.100000381469727</gx:coord> +<when>2013-07-25T20:52:43.000Z</when> +<gx:coord>-75.308438 40.095014 28.799999237060547</gx:coord> +<when>2013-07-25T20:52:44.000Z</when> +<gx:coord>-75.308411 40.095034 29.299999237060547</gx:coord> +<when>2013-07-25T20:52:45.000Z</when> +<gx:coord>-75.308387 40.095052 29.899999618530273</gx:coord> +<when>2013-07-25T20:52:46.000Z</when> +<gx:coord>-75.308367 40.095069 32.0</gx:coord> +<when>2013-07-25T20:52:48.000Z</when> +<gx:coord>-75.30833 40.095101 33.70000076293945</gx:coord> +<when>2013-07-25T20:52:49.000Z</when> +<gx:coord>-75.308311 40.095118 32.20000076293945</gx:coord> +<when>2013-07-25T20:52:50.000Z</when> +<gx:coord>-75.308286 40.09514 29.799999237060547</gx:coord> +<when>2013-07-25T20:52:51.000Z</when> +<gx:coord>-75.308258 40.095163 28.600000381469727</gx:coord> +<when>2013-07-25T20:52:52.000Z</when> +<gx:coord>-75.308229 40.095188 28.399999618530273</gx:coord> +<when>2013-07-25T20:52:53.000Z</when> +<gx:coord>-75.308198 40.095212 28.100000381469727</gx:coord> +<when>2013-07-25T20:52:54.000Z</when> +<gx:coord>-75.308168 40.095238 28.0</gx:coord> +<when>2013-07-25T20:52:55.000Z</when> +<gx:coord>-75.308136 40.095265 26.200000762939453</gx:coord> +<when>2013-07-25T20:52:56.000Z</when> +<gx:coord>-75.308104 40.095292 26.700000762939453</gx:coord> +<when>2013-07-25T20:52:57.000Z</when> +<gx:coord>-75.308076 40.095317 26.5</gx:coord> +<when>2013-07-25T20:52:58.000Z</when> +<gx:coord>-75.308044 40.095345 25.600000381469727</gx:coord> +<when>2013-07-25T20:52:59.000Z</when> +<gx:coord>-75.308013 40.095371 26.200000762939453</gx:coord> +<when>2013-07-25T20:53:00.000Z</when> +<gx:coord>-75.30798 40.095399 24.799999237060547</gx:coord> +<when>2013-07-25T20:53:01.000Z</when> +<gx:coord>-75.307951 40.095423 26.399999618530273</gx:coord> +<when>2013-07-25T20:53:02.000Z</when> +<gx:coord>-75.307922 40.095448 25.799999237060547</gx:coord> +<when>2013-07-25T20:53:03.000Z</when> +<gx:coord>-75.307894 40.095473 25.600000381469727</gx:coord> +<when>2013-07-25T20:53:04.000Z</when> +<gx:coord>-75.307866 40.095498 25.5</gx:coord> +<when>2013-07-25T20:53:05.000Z</when> +<gx:coord>-75.30784 40.095522 25.100000381469727</gx:coord> +<when>2013-07-25T20:53:06.000Z</when> +<gx:coord>-75.307812 40.095547 24.700000762939453</gx:coord> +<when>2013-07-25T20:53:07.000Z</when> +<gx:coord>-75.307787 40.095572 25.799999237060547</gx:coord> +<when>2013-07-25T20:53:08.000Z</when> +<gx:coord>-75.307758 40.095599 24.399999618530273</gx:coord> +<when>2013-07-25T20:53:09.000Z</when> +<gx:coord>-75.307733 40.095623 24.399999618530273</gx:coord> +<when>2013-07-25T20:53:10.000Z</when> +<gx:coord>-75.307707 40.095646 24.899999618530273</gx:coord> +<when>2013-07-25T20:53:11.000Z</when> +<gx:coord>-75.307685 40.095668 26.100000381469727</gx:coord> +<when>2013-07-25T20:53:12.000Z</when> +<gx:coord>-75.307661 40.095688 26.399999618530273</gx:coord> +<when>2013-07-25T20:53:13.000Z</when> +<gx:coord>-75.30764 40.095706 27.399999618530273</gx:coord> +<when>2013-07-25T20:53:15.000Z</when> +<gx:coord>-75.307604 40.095739 28.200000762939453</gx:coord> +<when>2013-07-25T20:53:16.000Z</when> +<gx:coord>-75.307584 40.095757 27.899999618530273</gx:coord> +<when>2013-07-25T20:53:17.000Z</when> +<gx:coord>-75.307559 40.095777 24.799999237060547</gx:coord> +<when>2013-07-25T20:53:18.000Z</when> +<gx:coord>-75.307532 40.095795 24.899999618530273</gx:coord> +<when>2013-07-25T20:53:19.000Z</when> +<gx:coord>-75.307502 40.095816 23.600000381469727</gx:coord> +<when>2013-07-25T20:53:20.000Z</when> +<gx:coord>-75.307472 40.095839 23.200000762939453</gx:coord> +<when>2013-07-25T20:53:21.000Z</when> +<gx:coord>-75.307445 40.095863 22.600000381469727</gx:coord> +<when>2013-07-25T20:53:22.000Z</when> +<gx:coord>-75.307421 40.095887 24.299999237060547</gx:coord> +<when>2013-07-25T20:53:23.000Z</when> +<gx:coord>-75.307401 40.095909 25.299999237060547</gx:coord> +<when>2013-07-25T20:53:23.999Z</when> +<gx:coord>-75.307379 40.09593 26.200000762939453</gx:coord> +<when>2013-07-25T20:53:25.000Z</when> +<gx:coord>-75.307366 40.095953 25.799999237060547</gx:coord> +<when>2013-07-25T20:53:26.000Z</when> +<gx:coord>-75.307352 40.095976 25.600000381469727</gx:coord> +<when>2013-07-25T20:53:27.000Z</when> +<gx:coord>-75.307337 40.096 25.200000762939453</gx:coord> +<when>2013-07-25T20:53:28.000Z</when> +<gx:coord>-75.30732 40.096024 24.399999618530273</gx:coord> +<when>2013-07-25T20:53:29.000Z</when> +<gx:coord>-75.307304 40.096046 24.100000381469727</gx:coord> +<when>2013-07-25T20:53:30.000Z</when> +<gx:coord>-75.307289 40.096066 24.0</gx:coord> +<when>2013-07-25T20:53:31.000Z</when> +<gx:coord>-75.307274 40.096087 23.600000381469727</gx:coord> +<when>2013-07-25T20:53:32.000Z</when> +<gx:coord>-75.30726 40.096107 23.5</gx:coord> +<when>2013-07-25T20:53:34.000Z</when> +<gx:coord>-75.307233 40.096142 24.299999237060547</gx:coord> +<when>2013-07-25T20:53:35.000Z</when> +<gx:coord>-75.307217 40.096159 23.299999237060547</gx:coord> +<when>2013-07-25T20:53:37.000Z</when> +<gx:coord>-75.307183 40.096188 21.899999618530273</gx:coord> +<when>2013-07-25T20:53:38.000Z</when> +<gx:coord>-75.307163 40.096204 22.100000381469727</gx:coord> +<when>2013-07-25T20:53:39.000Z</when> +<gx:coord>-75.307144 40.096223 22.299999237060547</gx:coord> +<when>2013-07-25T20:53:40.000Z</when> +<gx:coord>-75.307124 40.096245 23.600000381469727</gx:coord> +<when>2013-07-25T20:53:41.000Z</when> +<gx:coord>-75.307103 40.09627 23.299999237060547</gx:coord> +<when>2013-07-25T20:53:42.000Z</when> +<gx:coord>-75.30708 40.096294 24.600000381469727</gx:coord> +<when>2013-07-25T20:53:43.000Z</when> +<gx:coord>-75.307057 40.096317 25.600000381469727</gx:coord> +<when>2013-07-25T20:53:44.000Z</when> +<gx:coord>-75.30703 40.096341 24.899999618530273</gx:coord> +<when>2013-07-25T20:53:45.000Z</when> +<gx:coord>-75.307001 40.096365 24.700000762939453</gx:coord> +<when>2013-07-25T20:53:46.000Z</when> +<gx:coord>-75.306972 40.09639 24.899999618530273</gx:coord> +<when>2013-07-25T20:53:47.000Z</when> +<gx:coord>-75.306941 40.096416 26.100000381469727</gx:coord> +<when>2013-07-25T20:53:48.000Z</when> +<gx:coord>-75.306909 40.096441 26.799999237060547</gx:coord> +<when>2013-07-25T20:53:49.000Z</when> +<gx:coord>-75.306878 40.096464 26.700000762939453</gx:coord> +<when>2013-07-25T20:53:50.000Z</when> +<gx:coord>-75.306847 40.096486 27.399999618530273</gx:coord> +<when>2013-07-25T20:53:51.000Z</when> +<gx:coord>-75.306814 40.096509 30.0</gx:coord> +<when>2013-07-25T20:53:52.000Z</when> +<gx:coord>-75.306778 40.096535 30.0</gx:coord> +<when>2013-07-25T20:53:53.000Z</when> +<gx:coord>-75.306744 40.096563 30.200000762939453</gx:coord> +<when>2013-07-25T20:53:54.000Z</when> +<gx:coord>-75.306675 40.096629 26.5</gx:coord> +<when>2013-07-25T20:53:55.000Z</when> +<gx:coord>-75.306634 40.096665 26.799999237060547</gx:coord> +<when>2013-07-25T20:53:55.998Z</when> +<gx:coord>-75.306593 40.096699 26.899999618530273</gx:coord> +<when>2013-07-25T20:53:57.000Z</when> +<gx:coord>-75.306549 40.096748 25.600000381469727</gx:coord> +<when>2013-07-25T20:53:58.000Z</when> +<gx:coord>-75.306515 40.096783 25.299999237060547</gx:coord> +<when>2013-07-25T20:53:59.000Z</when> +<gx:coord>-75.306484 40.096821 26.5</gx:coord> +<when>2013-07-25T20:54:00.000Z</when> +<gx:coord>-75.306452 40.096862 27.600000381469727</gx:coord> +<when>2013-07-25T20:54:01.000Z</when> +<gx:coord>-75.306424 40.096904 27.799999237060547</gx:coord> +<when>2013-07-25T20:54:02.000Z</when> +<gx:coord>-75.306403 40.096949 28.799999237060547</gx:coord> +<when>2013-07-25T20:54:03.000Z</when> +<gx:coord>-75.306373 40.096998 29.0</gx:coord> +<when>2013-07-25T20:54:04.000Z</when> +<gx:coord>-75.306344 40.097048 29.0</gx:coord> +<when>2013-07-25T20:54:05.000Z</when> +<gx:coord>-75.306317 40.097101 29.299999237060547</gx:coord> +<when>2013-07-25T20:54:06.000Z</when> +<gx:coord>-75.306285 40.097145 29.200000762939453</gx:coord> +<when>2013-07-25T20:54:07.000Z</when> +<gx:coord>-75.306249 40.097186 29.700000762939453</gx:coord> +<when>2013-07-25T20:54:08.000Z</when> +<gx:coord>-75.306234 40.097227 30.600000381469727</gx:coord> +<when>2013-07-25T20:54:09.000Z</when> +<gx:coord>-75.306216 40.097262 30.899999618530273</gx:coord> +<when>2013-07-25T20:54:10.000Z</when> +<gx:coord>-75.306203 40.097313 31.299999237060547</gx:coord> +<when>2013-07-25T20:54:11.000Z</when> +<gx:coord>-75.306155 40.097373 29.0</gx:coord> +<when>2013-07-25T20:54:12.000Z</when> +<gx:coord>-75.306128 40.097429 27.799999237060547</gx:coord> +<when>2013-07-25T20:54:13.000Z</when> +<gx:coord>-75.306107 40.097484 26.600000381469727</gx:coord> +<when>2013-07-25T20:54:14.000Z</when> +<gx:coord>-75.306094 40.097535 26.299999237060547</gx:coord> +<when>2013-07-25T20:54:15.000Z</when> +<gx:coord>-75.306036 40.097606 21.700000762939453</gx:coord> +<when>2013-07-25T20:54:16.000Z</when> +<gx:coord>-75.306011 40.097659 21.5</gx:coord> +<when>2013-07-25T20:54:17.000Z</when> +<gx:coord>-75.305972 40.097718 18.799999237060547</gx:coord> +<when>2013-07-25T20:54:18.000Z</when> +<gx:coord>-75.305947 40.097762 18.0</gx:coord> +<when>2013-07-25T20:54:19.000Z</when> +<gx:coord>-75.305905 40.09781 16.899999618530273</gx:coord> +<when>2013-07-25T20:54:20.000Z</when> +<gx:coord>-75.305864 40.09786 15.600000381469727</gx:coord> +<when>2013-07-25T20:54:21.000Z</when> +<gx:coord>-75.305819 40.097909 15.399999618530273</gx:coord> +<when>2013-07-25T20:54:22.000Z</when> +<gx:coord>-75.305772 40.097955 14.300000190734863</gx:coord> +<when>2013-07-25T20:54:23.000Z</when> +<gx:coord>-75.30572 40.098002 12.699999809265137</gx:coord> +<when>2013-07-25T20:54:24.000Z</when> +<gx:coord>-75.305657 40.098055 11.199999809265137</gx:coord> +<when>2013-07-25T20:54:25.000Z</when> +<gx:coord>-75.305602 40.098086 11.899999618530273</gx:coord> +<when>2013-07-25T20:54:26.000Z</when> +<gx:coord>-75.305544 40.098119 11.5</gx:coord> +<when>2013-07-25T20:54:27.000Z</when> +<gx:coord>-75.305465 40.098155 10.100000381469727</gx:coord> +<when>2013-07-25T20:54:28.000Z</when> +<gx:coord>-75.305385 40.098183 9.899999618530273</gx:coord> +<when>2013-07-25T20:54:29.000Z</when> +<gx:coord>-75.305308 40.098209 9.800000190734863</gx:coord> +<when>2013-07-25T20:54:30.000Z</when> +<gx:coord>-75.305214 40.098234 8.300000190734863</gx:coord> +<when>2013-07-25T20:54:31.000Z</when> +<gx:coord>-75.305128 40.098259 7.699999809265137</gx:coord> +<when>2013-07-25T20:54:32.000Z</when> +<gx:coord>-75.305043 40.098256 9.600000381469727</gx:coord> +<when>2013-07-25T20:54:33.000Z</when> +<gx:coord>-75.304963 40.098275 10.199999809265137</gx:coord> +<when>2013-07-25T20:54:33.999Z</when> +<gx:coord>-75.304877 40.098287 11.100000381469727</gx:coord> +<when>2013-07-25T20:54:35.000Z</when> +<gx:coord>-75.304767 40.098326 8.399999618530273</gx:coord> +<when>2013-07-25T20:54:36.000Z</when> +<gx:coord>-75.304679 40.098346 8.5</gx:coord> +<when>2013-07-25T20:54:37.000Z</when> +<gx:coord>-75.304586 40.098371 7.900000095367432</gx:coord> +<when>2013-07-25T20:54:37.999Z</when> +<gx:coord>-75.304493 40.098395 7.199999809265137</gx:coord> +<when>2013-07-25T20:54:39.000Z</when> +<gx:coord>-75.304398 40.098406 6.099999904632568</gx:coord> +<when>2013-07-25T20:54:40.000Z</when> +<gx:coord>-75.304305 40.098415 5.800000190734863</gx:coord> +<when>2013-07-25T20:54:41.000Z</when> +<gx:coord>-75.304237 40.098422 7.5</gx:coord> +<when>2013-07-25T20:54:42.000Z</when> +<gx:coord>-75.30416 40.098428 7.800000190734863</gx:coord> +<when>2013-07-25T20:54:43.000Z</when> +<gx:coord>-75.304081 40.09844 6.5</gx:coord> +<when>2013-07-25T20:54:44.000Z</when> +<gx:coord>-75.304002 40.098449 6.300000190734863</gx:coord> +<when>2013-07-25T20:54:45.000Z</when> +<gx:coord>-75.303937 40.098461 5.300000190734863</gx:coord> +<when>2013-07-25T20:54:46.000Z</when> +<gx:coord>-75.303874 40.098478 5.400000095367432</gx:coord> +<when>2013-07-25T20:54:47.000Z</when> +<gx:coord>-75.303812 40.098489 5.400000095367432</gx:coord> +<when>2013-07-25T20:54:47.999Z</when> +<gx:coord>-75.303752 40.098501 5.0</gx:coord> +<when>2013-07-25T20:54:49.000Z</when> +<gx:coord>-75.3037 40.09852 5.199999809265137</gx:coord> +<when>2013-07-25T20:54:50.000Z</when> +<gx:coord>-75.303659 40.098526 5.599999904632568</gx:coord> +<when>2013-07-25T20:54:51.000Z</when> +<gx:coord>-75.30361 40.098524 5.300000190734863</gx:coord> +<when>2013-07-25T20:54:52.000Z</when> +<gx:coord>-75.303565 40.09854 5.099999904632568</gx:coord> +<when>2013-07-25T20:54:52.999Z</when> +<gx:coord>-75.303524 40.098556 5.199999809265137</gx:coord> +<when>2013-07-25T20:54:54.000Z</when> +<gx:coord>-75.303495 40.098577 5.900000095367432</gx:coord> +<when>2013-07-25T20:54:55.000Z</when> +<gx:coord>-75.30347 40.098591 5.900000095367432</gx:coord> +<when>2013-07-25T20:54:56.000Z</when> +<gx:coord>-75.303438 40.098608 5.800000190734863</gx:coord> +<when>2013-07-25T20:54:57.999Z</when> +<gx:coord>-75.303393 40.098632 7.400000095367432</gx:coord> +<when>2013-07-25T20:54:59.000Z</when> +<gx:coord>-75.303358 40.09865 6.199999809265137</gx:coord> +<when>2013-07-25T20:55:00.000Z</when> +<gx:coord>-75.303326 40.098668 6.199999809265137</gx:coord> +<when>2013-07-25T20:55:01.000Z</when> +<gx:coord>-75.303299 40.098684 8.5</gx:coord> +<when>2013-07-25T20:55:02.000Z</when> +<gx:coord>-75.303271 40.098703 6.800000190734863</gx:coord> +<when>2013-07-25T20:55:03.000Z</when> +<gx:coord>-75.303242 40.098724 6.5</gx:coord> +<when>2013-07-25T20:55:04.000Z</when> +<gx:coord>-75.303214 40.098745 6.199999809265137</gx:coord> +<when>2013-07-25T20:55:05.000Z</when> +<gx:coord>-75.30319 40.098766 6.0</gx:coord> +<when>2013-07-25T20:55:06.000Z</when> +<gx:coord>-75.303167 40.098787 5.400000095367432</gx:coord> +<when>2013-07-25T20:55:07.000Z</when> +<gx:coord>-75.303148 40.098807 7.0</gx:coord> +<when>2013-07-25T20:55:08.000Z</when> +<gx:coord>-75.303129 40.098827 7.5</gx:coord> +<when>2013-07-25T20:55:09.000Z</when> +<gx:coord>-75.303112 40.098846 9.100000381469727</gx:coord> +<when>2013-07-25T20:55:10.000Z</when> +<gx:coord>-75.303093 40.098868 8.600000381469727</gx:coord> +<when>2013-07-25T20:55:11.000Z</when> +<gx:coord>-75.303068 40.098894 6.5</gx:coord> +<when>2013-07-25T20:55:12.000Z</when> +<gx:coord>-75.30304 40.098923 6.5</gx:coord> +<when>2013-07-25T20:55:13.000Z</when> +<gx:coord>-75.303013 40.098953 6.0</gx:coord> +<when>2013-07-25T20:55:14.000Z</when> +<gx:coord>-75.302984 40.098986 4.900000095367432</gx:coord> +<when>2013-07-25T20:55:15.000Z</when> +<gx:coord>-75.302955 40.099018 5.900000095367432</gx:coord> +<when>2013-07-25T20:55:16.000Z</when> +<gx:coord>-75.302927 40.099051 6.699999809265137</gx:coord> +<when>2013-07-25T20:55:17.000Z</when> +<gx:coord>-75.302904 40.099077 7.599999904632568</gx:coord> +<when>2013-07-25T20:55:19.000Z</when> +<gx:coord>-75.302872 40.099114 9.899999618530273</gx:coord> +<when>2013-07-25T20:55:20.000Z</when> +<gx:coord>-75.302857 40.09913 9.300000190734863</gx:coord> +<when>2013-07-25T20:55:22.000Z</when> +<gx:coord>-75.302835 40.099159 11.100000381469727</gx:coord> +<when>2013-07-25T20:55:23.000Z</when> +<gx:coord>-75.302827 40.099174 11.899999618530273</gx:coord> +<when>2013-07-25T20:55:25.000Z</when> +<gx:coord>-75.302812 40.099209 13.199999809265137</gx:coord> +<when>2013-07-25T20:55:26.000Z</when> +<gx:coord>-75.302801 40.099226 13.300000190734863</gx:coord> +<when>2013-07-25T20:55:28.000Z</when> +<gx:coord>-75.302774 40.099258 15.800000190734863</gx:coord> +<when>2013-07-25T20:55:29.000Z</when> +<gx:coord>-75.302763 40.09927 16.700000762939453</gx:coord> +<when>2013-07-25T20:55:31.000Z</when> +<gx:coord>-75.302733 40.099292 14.199999809265137</gx:coord> +<when>2013-07-25T20:55:32.000Z</when> +<gx:coord>-75.302714 40.099302 14.5</gx:coord> +<when>2013-07-25T20:55:34.000Z</when> +<gx:coord>-75.302674 40.099318 16.399999618530273</gx:coord> +<when>2013-07-25T20:55:35.000Z</when> +<gx:coord>-75.302654 40.099326 16.0</gx:coord> +<when>2013-07-25T20:55:37.000Z</when> +<gx:coord>-75.302607 40.099343 14.899999618530273</gx:coord> +<when>2013-07-25T20:55:38.000Z</when> +<gx:coord>-75.302566 40.099352 15.5</gx:coord> +<when>2013-07-25T20:55:39.000Z</when> +<gx:coord>-75.302524 40.09936 17.200000762939453</gx:coord> +<when>2013-07-25T20:55:40.000Z</when> +<gx:coord>-75.302474 40.099369 17.899999618530273</gx:coord> +<when>2013-07-25T20:55:41.001Z</when> +<gx:coord>-75.302432 40.099376 19.5</gx:coord> +<when>2013-07-25T20:55:42.000Z</when> +<gx:coord>-75.302348 40.099361 19.5</gx:coord> +<when>2013-07-25T20:55:43.000Z</when> +<gx:coord>-75.302319 40.099332 19.299999237060547</gx:coord> +<when>2013-07-25T20:55:44.000Z</when> +<gx:coord>-75.30226 40.099302 18.899999618530273</gx:coord> +<when>2013-07-25T20:55:45.001Z</when> +<gx:coord>-75.302209 40.09927 18.899999618530273</gx:coord> +<when>2013-07-25T20:55:46.000Z</when> +<gx:coord>-75.302158 40.099225 18.5</gx:coord> +<when>2013-07-25T20:55:47.000Z</when> +<gx:coord>-75.302103 40.099183 18.700000762939453</gx:coord> +<when>2013-07-25T20:55:48.000Z</when> +<gx:coord>-75.302055 40.099127 18.600000381469727</gx:coord> +<when>2013-07-25T20:55:49.000Z</when> +<gx:coord>-75.302004 40.099079 18.100000381469727</gx:coord> +<when>2013-07-25T20:55:50.000Z</when> +<gx:coord>-75.301956 40.099031 18.200000762939453</gx:coord> +<when>2013-07-25T20:55:51.000Z</when> +<gx:coord>-75.301892 40.098981 17.299999237060547</gx:coord> +<when>2013-07-25T20:55:52.000Z</when> +<gx:coord>-75.301818 40.098933 16.799999237060547</gx:coord> +<when>2013-07-25T20:55:53.000Z</when> +<gx:coord>-75.301734 40.098893 16.399999618530273</gx:coord> +<when>2013-07-25T20:55:54.000Z</when> +<gx:coord>-75.30164 40.098861 15.600000381469727</gx:coord> +<when>2013-07-25T20:55:55.000Z</when> +<gx:coord>-75.301538 40.098847 15.600000381469727</gx:coord> +<when>2013-07-25T20:55:56.000Z</when> +<gx:coord>-75.30144 40.098835 15.600000381469727</gx:coord> +<when>2013-07-25T20:55:57.000Z</when> +<gx:coord>-75.301362 40.098882 15.800000190734863</gx:coord> +<when>2013-07-25T20:55:58.000Z</when> +<gx:coord>-75.301286 40.098892 16.200000762939453</gx:coord> +<when>2013-07-25T20:55:59.000Z</when> +<gx:coord>-75.3012 40.098906 16.299999237060547</gx:coord> +<when>2013-07-25T20:56:00.000Z</when> +<gx:coord>-75.30125 40.098877 16.5</gx:coord> +<when>2013-07-25T20:56:01.000Z</when> +<gx:coord>-75.301258 40.098909 18.0</gx:coord> +<when>2013-07-25T20:56:02.000Z</when> +<gx:coord>-75.301061 40.098961 17.5</gx:coord> +<when>2013-07-25T20:56:03.000Z</when> +<gx:coord>-75.300971 40.098999 20.0</gx:coord> +<when>2013-07-25T20:56:04.000Z</when> +<gx:coord>-75.30084 40.099045 21.299999237060547</gx:coord> +<when>2013-07-25T20:56:05.000Z</when> +<gx:coord>-75.300786 40.099075 22.299999237060547</gx:coord> +<when>2013-07-25T20:56:06.000Z</when> +<gx:coord>-75.300702 40.099092 21.700000762939453</gx:coord> +<when>2013-07-25T20:56:06.999Z</when> +<gx:coord>-75.300633 40.099116 21.700000762939453</gx:coord> +<when>2013-07-25T20:56:08.000Z</when> +<gx:coord>-75.30056 40.099147 23.299999237060547</gx:coord> +<when>2013-07-25T20:56:09.000Z</when> +<gx:coord>-75.300487 40.099148 27.600000381469727</gx:coord> +<when>2013-07-25T20:56:10.000Z</when> +<gx:coord>-75.300444 40.099164 30.700000762939453</gx:coord> +<when>2013-07-25T20:56:11.000Z</when> +<gx:coord>-75.300401 40.099201 30.399999618530273</gx:coord> +<when>2013-07-25T20:56:12.000Z</when> +<gx:coord>-75.300348 40.099226 30.799999237060547</gx:coord> +<when>2013-07-25T20:56:13.000Z</when> +<gx:coord>-75.300297 40.09925 30.399999618530273</gx:coord> +<when>2013-07-25T20:56:14.000Z</when> +<gx:coord>-75.300227 40.099268 30.899999618530273</gx:coord> +<when>2013-07-25T20:56:15.000Z</when> +<gx:coord>-75.300178 40.099292 31.799999237060547</gx:coord> +<when>2013-07-25T20:56:16.000Z</when> +<gx:coord>-75.300129 40.099315 32.400001525878906</gx:coord> +<when>2013-07-25T20:56:17.000Z</when> +<gx:coord>-75.300089 40.099343 33.29999923706055</gx:coord> +<when>2013-07-25T20:56:18.000Z</when> +<gx:coord>-75.300036 40.099361 34.0</gx:coord> +<when>2013-07-25T20:56:19.000Z</when> +<gx:coord>-75.299976 40.099379 32.70000076293945</gx:coord> +<when>2013-07-25T20:56:20.000Z</when> +<gx:coord>-75.299945 40.099394 34.70000076293945</gx:coord> +<when>2013-07-25T20:56:21.000Z</when> +<gx:coord>-75.299907 40.099412 35.599998474121094</gx:coord> +<when>2013-07-25T20:56:22.000Z</when> +<gx:coord>-75.299863 40.099428 36.900001525878906</gx:coord> +<when>2013-07-25T20:56:23.000Z</when> +<gx:coord>-75.299816 40.099444 37.29999923706055</gx:coord> +<when>2013-07-25T20:56:24.000Z</when> +<gx:coord>-75.299765 40.099461 37.900001525878906</gx:coord> +<when>2013-07-25T20:56:25.000Z</when> +<gx:coord>-75.299721 40.09948 37.70000076293945</gx:coord> +<when>2013-07-25T20:56:26.001Z</when> +<gx:coord>-75.299678 40.099497 37.70000076293945</gx:coord> +<when>2013-07-25T20:56:27.000Z</when> +<gx:coord>-75.299635 40.099518 37.400001525878906</gx:coord> +<when>2013-07-25T20:56:28.000Z</when> +<gx:coord>-75.299593 40.099537 38.70000076293945</gx:coord> +<when>2013-07-25T20:56:29.000Z</when> +<gx:coord>-75.299549 40.099554 38.900001525878906</gx:coord> +<when>2013-07-25T20:56:30.001Z</when> +<gx:coord>-75.299513 40.099568 39.5</gx:coord> +<when>2013-07-25T20:56:31.000Z</when> +<gx:coord>-75.299483 40.09958 38.900001525878906</gx:coord> +<when>2013-07-25T20:56:32.000Z</when> +<gx:coord>-75.299443 40.099593 39.29999923706055</gx:coord> +<when>2013-07-25T20:56:33.000Z</when> +<gx:coord>-75.299402 40.099605 41.099998474121094</gx:coord> +<when>2013-07-25T20:56:34.000Z</when> +<gx:coord>-75.299359 40.099621 41.5</gx:coord> +<when>2013-07-25T20:56:35.000Z</when> +<gx:coord>-75.299319 40.099633 43.599998474121094</gx:coord> +<when>2013-07-25T20:56:36.000Z</when> +<gx:coord>-75.299281 40.099638 45.79999923706055</gx:coord> +<when>2013-07-25T20:56:37.000Z</when> +<gx:coord>-75.299251 40.099637 50.400001525878906</gx:coord> +<when>2013-07-25T20:56:38.000Z</when> +<gx:coord>-75.299199 40.099617 51.599998474121094</gx:coord> +<when>2013-07-25T20:56:39.000Z</when> +<gx:coord>-75.299188 40.099605 57.900001525878906</gx:coord> +<when>2013-07-25T20:56:40.000Z</when> +<gx:coord>-75.29913 40.099616 56.900001525878906</gx:coord> +<when>2013-07-25T20:56:42.000Z</when> +<gx:coord>-75.29909 40.099605 61.70000076293945</gx:coord> +<when>2013-07-25T20:56:43.002Z</when> +<gx:coord>-75.299055 40.099595 62.29999923706055</gx:coord> +<when>2013-07-25T20:56:44.000Z</when> +<gx:coord>-75.299051 40.09961 60.70000076293945</gx:coord> +<when>2013-07-25T20:56:45.000Z</when> +<gx:coord>-75.298984 40.09962 61.29999923706055</gx:coord> +<when>2013-07-25T20:56:46.000Z</when> +<gx:coord>-75.298947 40.099636 61.70000076293945</gx:coord> +<when>2013-07-25T20:56:47.000Z</when> +<gx:coord>-75.298905 40.099645 61.79999923706055</gx:coord> +<when>2013-07-25T20:56:48.000Z</when> +<gx:coord>-75.298866 40.099659 62.29999923706055</gx:coord> +<when>2013-07-25T20:56:49.000Z</when> +<gx:coord>-75.298826 40.099673 60.400001525878906</gx:coord> +<when>2013-07-25T20:56:50.000Z</when> +<gx:coord>-75.298785 40.099689 58.099998474121094</gx:coord> +<when>2013-07-25T20:56:51.000Z</when> +<gx:coord>-75.298741 40.099715 49.900001525878906</gx:coord> +<when>2013-07-25T20:56:52.000Z</when> +<gx:coord>-75.298696 40.099741 43.599998474121094</gx:coord> +<when>2013-07-25T20:56:53.000Z</when> +<gx:coord>-75.298651 40.09977 37.29999923706055</gx:coord> +<when>2013-07-25T20:56:54.000Z</when> +<gx:coord>-75.298609 40.099794 37.099998474121094</gx:coord> +<when>2013-07-25T20:56:55.000Z</when> +<gx:coord>-75.298568 40.099817 34.900001525878906</gx:coord> +<when>2013-07-25T20:56:56.000Z</when> +<gx:coord>-75.298527 40.099838 33.900001525878906</gx:coord> +<when>2013-07-25T20:56:57.000Z</when> +<gx:coord>-75.29849 40.099858 33.29999923706055</gx:coord> +<when>2013-07-25T20:56:58.000Z</when> +<gx:coord>-75.298456 40.099878 31.700000762939453</gx:coord> +<when>2013-07-25T20:56:59.000Z</when> +<gx:coord>-75.298416 40.099896 29.5</gx:coord> +<when>2013-07-25T20:57:00.000Z</when> +<gx:coord>-75.29837 40.099913 27.5</gx:coord> +<when>2013-07-25T20:57:01.000Z</when> +<gx:coord>-75.29832 40.099925 26.600000381469727</gx:coord> +<when>2013-07-25T20:57:02.000Z</when> +<gx:coord>-75.298267 40.099935 26.0</gx:coord> +<when>2013-07-25T20:57:03.000Z</when> +<gx:coord>-75.298216 40.099946 25.899999618530273</gx:coord> +<when>2013-07-25T20:57:04.000Z</when> +<gx:coord>-75.298164 40.099958 26.200000762939453</gx:coord> +<when>2013-07-25T20:57:05.000Z</when> +<gx:coord>-75.298108 40.099959 24.700000762939453</gx:coord> +<when>2013-07-25T20:57:06.000Z</when> +<gx:coord>-75.298049 40.099953 24.399999618530273</gx:coord> +<when>2013-07-25T20:57:07.000Z</when> +<gx:coord>-75.297988 40.099941 23.799999237060547</gx:coord> +<when>2013-07-25T20:57:08.000Z</when> +<gx:coord>-75.297927 40.099924 23.399999618530273</gx:coord> +<when>2013-07-25T20:57:09.000Z</when> +<gx:coord>-75.297873 40.099909 23.399999618530273</gx:coord> +<when>2013-07-25T20:57:10.000Z</when> +<gx:coord>-75.297827 40.099894 22.700000762939453</gx:coord> +<when>2013-07-25T20:57:11.000Z</when> +<gx:coord>-75.297784 40.09988 22.100000381469727</gx:coord> +<when>2013-07-25T20:57:12.000Z</when> +<gx:coord>-75.297744 40.099862 21.600000381469727</gx:coord> +<when>2013-07-25T20:57:13.000Z</when> +<gx:coord>-75.297706 40.099845 20.799999237060547</gx:coord> +<when>2013-07-25T20:57:14.000Z</when> +<gx:coord>-75.297671 40.099828 20.5</gx:coord> +<when>2013-07-25T20:57:15.000Z</when> +<gx:coord>-75.29764 40.099813 20.399999618530273</gx:coord> +<when>2013-07-25T20:57:16.000Z</when> +<gx:coord>-75.297615 40.0998 19.799999237060547</gx:coord> +<when>2013-07-25T20:57:17.000Z</when> +<gx:coord>-75.297592 40.09979 19.299999237060547</gx:coord> +<when>2013-07-25T20:57:18.000Z</when> +<gx:coord>-75.297563 40.09977 15.800000190734863</gx:coord> +<when>2013-07-25T20:57:19.000Z</when> +<gx:coord>-75.297525 40.099751 15.600000381469727</gx:coord> +<when>2013-07-25T20:57:20.000Z</when> +<gx:coord>-75.29748 40.099732 15.0</gx:coord> +<when>2013-07-25T20:57:21.000Z</when> +<gx:coord>-75.297431 40.099715 14.699999809265137</gx:coord> +<when>2013-07-25T20:57:22.000Z</when> +<gx:coord>-75.297383 40.099706 14.800000190734863</gx:coord> +<when>2013-07-25T20:57:23.000Z</when> +<gx:coord>-75.297333 40.099695 13.899999618530273</gx:coord> +<when>2013-07-25T20:57:24.000Z</when> +<gx:coord>-75.297283 40.099685 13.5</gx:coord> +<when>2013-07-25T20:57:25.000Z</when> +<gx:coord>-75.297234 40.099675 12.899999618530273</gx:coord> +<when>2013-07-25T20:57:26.000Z</when> +<gx:coord>-75.29719 40.099658 10.800000190734863</gx:coord> +<when>2013-07-25T20:57:27.000Z</when> +<gx:coord>-75.297148 40.099637 9.600000381469727</gx:coord> +<when>2013-07-25T20:57:28.000Z</when> +<gx:coord>-75.297107 40.099614 8.800000190734863</gx:coord> +<when>2013-07-25T20:57:29.000Z</when> +<gx:coord>-75.297074 40.099586 6.300000190734863</gx:coord> +<when>2013-07-25T20:57:30.000Z</when> +<gx:coord>-75.297043 40.099563 5.699999809265137</gx:coord> +<when>2013-07-25T20:57:31.000Z</when> +<gx:coord>-75.29701 40.099546 6.699999809265137</gx:coord> +<when>2013-07-25T20:57:32.000Z</when> +<gx:coord>-75.296968 40.099536 6.199999809265137</gx:coord> +<when>2013-07-25T20:57:33.000Z</when> +<gx:coord>-75.296921 40.099536 6.300000190734863</gx:coord> +<when>2013-07-25T20:57:34.000Z</when> +<gx:coord>-75.296879 40.099543 7.599999904632568</gx:coord> +<when>2013-07-25T20:57:35.000Z</when> +<gx:coord>-75.296837 40.099553 8.100000381469727</gx:coord> +<when>2013-07-25T20:57:36.000Z</when> +<gx:coord>-75.296791 40.099564 8.0</gx:coord> +<when>2013-07-25T20:57:37.000Z</when> +<gx:coord>-75.296746 40.099575 8.5</gx:coord> +<when>2013-07-25T20:57:38.000Z</when> +<gx:coord>-75.296696 40.099587 8.899999618530273</gx:coord> +<when>2013-07-25T20:57:39.000Z</when> +<gx:coord>-75.296639 40.099598 9.5</gx:coord> +<when>2013-07-25T20:57:40.000Z</when> +<gx:coord>-75.29658 40.099612 9.600000381469727</gx:coord> +<when>2013-07-25T20:57:41.000Z</when> +<gx:coord>-75.296523 40.099627 11.300000190734863</gx:coord> +<when>2013-07-25T20:57:42.000Z</when> +<gx:coord>-75.29647 40.099641 11.899999618530273</gx:coord> +<when>2013-07-25T20:57:43.000Z</when> +<gx:coord>-75.296418 40.099657 12.800000190734863</gx:coord> +<when>2013-07-25T20:57:44.000Z</when> +<gx:coord>-75.296365 40.09967 13.5</gx:coord> +<when>2013-07-25T20:57:45.000Z</when> +<gx:coord>-75.296313 40.09968 14.199999809265137</gx:coord> +<when>2013-07-25T20:57:46.000Z</when> +<gx:coord>-75.296261 40.099688 15.100000381469727</gx:coord> +<when>2013-07-25T20:57:47.000Z</when> +<gx:coord>-75.296209 40.099696 15.100000381469727</gx:coord> +<when>2013-07-25T20:57:48.000Z</when> +<gx:coord>-75.296155 40.099704 15.0</gx:coord> +<when>2013-07-25T20:57:49.000Z</when> +<gx:coord>-75.296106 40.099713 15.899999618530273</gx:coord> +<when>2013-07-25T20:57:50.000Z</when> +<gx:coord>-75.29606 40.099721 16.399999618530273</gx:coord> +<when>2013-07-25T20:57:51.000Z</when> +<gx:coord>-75.296012 40.099731 16.700000762939453</gx:coord> +<when>2013-07-25T20:57:52.000Z</when> +<gx:coord>-75.295959 40.099739 16.799999237060547</gx:coord> +<when>2013-07-25T20:57:53.000Z</when> +<gx:coord>-75.295905 40.099747 16.799999237060547</gx:coord> +<when>2013-07-25T20:57:54.000Z</when> +<gx:coord>-75.295852 40.099753 17.399999618530273</gx:coord> +<when>2013-07-25T20:57:55.000Z</when> +<gx:coord>-75.295797 40.099757 18.0</gx:coord> +<when>2013-07-25T20:57:56.000Z</when> +<gx:coord>-75.29574 40.099761 18.0</gx:coord> +<when>2013-07-25T20:57:57.000Z</when> +<gx:coord>-75.295685 40.099762 17.399999618530273</gx:coord> +<when>2013-07-25T20:57:58.000Z</when> +<gx:coord>-75.295631 40.099762 16.399999618530273</gx:coord> +<when>2013-07-25T20:57:59.000Z</when> +<gx:coord>-75.295574 40.099763 15.600000381469727</gx:coord> +<when>2013-07-25T20:58:00.000Z</when> +<gx:coord>-75.295517 40.099766 14.699999809265137</gx:coord> +<when>2013-07-25T20:58:01.000Z</when> +<gx:coord>-75.295462 40.09977 15.0</gx:coord> +<when>2013-07-25T20:58:02.000Z</when> +<gx:coord>-75.295411 40.099775 14.800000190734863</gx:coord> +<when>2013-07-25T20:58:03.000Z</when> +<gx:coord>-75.295359 40.09978 14.5</gx:coord> +<when>2013-07-25T20:58:04.000Z</when> +<gx:coord>-75.295304 40.099787 14.0</gx:coord> +<when>2013-07-25T20:58:05.000Z</when> +<gx:coord>-75.295249 40.099791 13.399999618530273</gx:coord> +<when>2013-07-25T20:58:06.000Z</when> +<gx:coord>-75.295199 40.099794 13.100000381469727</gx:coord> +<when>2013-07-25T20:58:07.000Z</when> +<gx:coord>-75.295156 40.099781 10.199999809265137</gx:coord> +<when>2013-07-25T20:58:08.000Z</when> +<gx:coord>-75.295112 40.099776 8.100000381469727</gx:coord> +<when>2013-07-25T20:58:09.000Z</when> +<gx:coord>-75.295094 40.099735 8.199999809265137</gx:coord> +<when>2013-07-25T20:58:10.000Z</when> +<gx:coord>-75.295078 40.099706 7.300000190734863</gx:coord> +<when>2013-07-25T20:58:11.000Z</when> +<gx:coord>-75.295052 40.099693 8.5</gx:coord> +<when>2013-07-25T20:58:12.000Z</when> +<gx:coord>-75.295022 40.099692 9.300000190734863</gx:coord> +<when>2013-07-25T20:58:13.000Z</when> +<gx:coord>-75.294988 40.099705 10.699999809265137</gx:coord> +<when>2013-07-25T20:58:14.000Z</when> +<gx:coord>-75.29495 40.099729 11.100000381469727</gx:coord> +<when>2013-07-25T20:58:15.000Z</when> +<gx:coord>-75.294911 40.099755 12.199999809265137</gx:coord> +<when>2013-07-25T20:58:16.000Z</when> +<gx:coord>-75.294878 40.099783 13.899999618530273</gx:coord> +<when>2013-07-25T20:58:17.000Z</when> +<gx:coord>-75.294848 40.099812 14.399999618530273</gx:coord> +<when>2013-07-25T20:58:18.000Z</when> +<gx:coord>-75.294825 40.099841 19.299999237060547</gx:coord> +<when>2013-07-25T20:58:19.000Z</when> +<gx:coord>-75.294807 40.099869 22.0</gx:coord> +<when>2013-07-25T20:58:20.000Z</when> +<gx:coord>-75.294786 40.099896 23.299999237060547</gx:coord> +<when>2013-07-25T20:58:21.000Z</when> +<gx:coord>-75.294765 40.099919 25.299999237060547</gx:coord> +<when>2013-07-25T20:58:22.000Z</when> +<gx:coord>-75.294741 40.099941 26.5</gx:coord> +<when>2013-07-25T20:58:23.000Z</when> +<gx:coord>-75.294715 40.099961 27.399999618530273</gx:coord> +<when>2013-07-25T20:58:24.000Z</when> +<gx:coord>-75.294688 40.099982 29.5</gx:coord> +<when>2013-07-25T20:58:25.000Z</when> +<gx:coord>-75.294658 40.100006 28.100000381469727</gx:coord> +<when>2013-07-25T20:58:26.000Z</when> +<gx:coord>-75.294624 40.100035 28.600000381469727</gx:coord> +<when>2013-07-25T20:58:27.000Z</when> +<gx:coord>-75.294549 40.100102 26.600000381469727</gx:coord> +<when>2013-07-25T20:58:28.000Z</when> +<gx:coord>-75.294514 40.100137 27.0</gx:coord> +<when>2013-07-25T20:58:29.000Z</when> +<gx:coord>-75.294462 40.100179 25.799999237060547</gx:coord> +<when>2013-07-25T20:58:30.000Z</when> +<gx:coord>-75.294435 40.100209 25.899999618530273</gx:coord> +<when>2013-07-25T20:58:31.000Z</when> +<gx:coord>-75.294398 40.100236 25.799999237060547</gx:coord> +<when>2013-07-25T20:58:32.000Z</when> +<gx:coord>-75.294368 40.100259 26.0</gx:coord> +<when>2013-07-25T20:58:33.000Z</when> +<gx:coord>-75.294333 40.100285 25.100000381469727</gx:coord> +<when>2013-07-25T20:58:34.000Z</when> +<gx:coord>-75.294257 40.100334 19.700000762939453</gx:coord> +<when>2013-07-25T20:58:35.000Z</when> +<gx:coord>-75.294225 40.100354 19.799999237060547</gx:coord> +<when>2013-07-25T20:58:36.000Z</when> +<gx:coord>-75.294203 40.100373 21.799999237060547</gx:coord> +<when>2013-07-25T20:58:37.000Z</when> +<gx:coord>-75.294176 40.100393 22.600000381469727</gx:coord> +<when>2013-07-25T20:58:38.000Z</when> +<gx:coord>-75.294151 40.100417 22.5</gx:coord> +<when>2013-07-25T20:58:38.999Z</when> +<gx:coord>-75.294126 40.100439 22.399999618530273</gx:coord> +<when>2013-07-25T20:58:40.000Z</when> +<gx:coord>-75.294135 40.100469 24.799999237060547</gx:coord> +<when>2013-07-25T20:58:41.000Z</when> +<gx:coord>-75.294148 40.1005 24.200000762939453</gx:coord> +<when>2013-07-25T20:58:42.000Z</when> +<gx:coord>-75.29417 40.100532 23.5</gx:coord> +<when>2013-07-25T20:58:43.000Z</when> +<gx:coord>-75.294199 40.100565 23.600000381469727</gx:coord> +<when>2013-07-25T20:58:44.000Z</when> +<gx:coord>-75.294234 40.100598 23.899999618530273</gx:coord> +<when>2013-07-25T20:58:45.000Z</when> +<gx:coord>-75.29427 40.100626 23.799999237060547</gx:coord> +<when>2013-07-25T20:58:46.000Z</when> +<gx:coord>-75.294306 40.100653 23.299999237060547</gx:coord> +<when>2013-07-25T20:58:47.000Z</when> +<gx:coord>-75.294338 40.100678 22.200000762939453</gx:coord> +<when>2013-07-25T20:58:48.000Z</when> +<gx:coord>-75.294369 40.100701 21.899999618530273</gx:coord> +<when>2013-07-25T20:58:49.000Z</when> +<gx:coord>-75.294397 40.100723 22.799999237060547</gx:coord> +<when>2013-07-25T20:58:50.000Z</when> +<gx:coord>-75.294424 40.100747 22.700000762939453</gx:coord> +<when>2013-07-25T20:58:51.000Z</when> +<gx:coord>-75.294454 40.100774 22.200000762939453</gx:coord> +<when>2013-07-25T20:58:52.000Z</when> +<gx:coord>-75.294486 40.100803 20.600000381469727</gx:coord> +<when>2013-07-25T20:58:53.000Z</when> +<gx:coord>-75.294519 40.10083 19.899999618530273</gx:coord> +<when>2013-07-25T20:58:54.000Z</when> +<gx:coord>-75.294555 40.100855 19.799999237060547</gx:coord> +<when>2013-07-25T20:58:55.000Z</when> +<gx:coord>-75.294588 40.100876 20.700000762939453</gx:coord> +<when>2013-07-25T20:58:56.000Z</when> +<gx:coord>-75.294619 40.100895 20.899999618530273</gx:coord> +<when>2013-07-25T20:58:57.000Z</when> +<gx:coord>-75.294645 40.100914 19.700000762939453</gx:coord> +<when>2013-07-25T20:58:58.000Z</when> +<gx:coord>-75.294668 40.100932 20.0</gx:coord> +<when>2013-07-25T20:58:59.000Z</when> +<gx:coord>-75.294692 40.100951 20.399999618530273</gx:coord> +<when>2013-07-25T20:59:00.000Z</when> +<gx:coord>-75.294716 40.100969 19.899999618530273</gx:coord> +<when>2013-07-25T20:59:01.000Z</when> +<gx:coord>-75.294739 40.100986 20.600000381469727</gx:coord> +<when>2013-07-25T20:59:02.000Z</when> +<gx:coord>-75.294762 40.101002 20.5</gx:coord> +<when>2013-07-25T20:59:03.000Z</when> +<gx:coord>-75.294786 40.101017 20.600000381469727</gx:coord> +<when>2013-07-25T20:59:04.000Z</when> +<gx:coord>-75.29481 40.101036 19.799999237060547</gx:coord> +<when>2013-07-25T20:59:05.000Z</when> +<gx:coord>-75.29483 40.101054 19.0</gx:coord> +<when>2013-07-25T20:59:06.000Z</when> +<gx:coord>-75.294852 40.101072 18.5</gx:coord> +<when>2013-07-25T20:59:07.000Z</when> +<gx:coord>-75.294873 40.101089 18.399999618530273</gx:coord> +<when>2013-07-25T20:59:08.000Z</when> +<gx:coord>-75.294894 40.101107 18.399999618530273</gx:coord> +<when>2013-07-25T20:59:09.000Z</when> +<gx:coord>-75.294915 40.101123 18.700000762939453</gx:coord> +<when>2013-07-25T20:59:10.000Z</when> +<gx:coord>-75.294938 40.101139 18.299999237060547</gx:coord> +<when>2013-07-25T20:59:11.000Z</when> +<gx:coord>-75.294959 40.101154 18.299999237060547</gx:coord> +<when>2013-07-25T20:59:12.000Z</when> +<gx:coord>-75.294982 40.10117 18.299999237060547</gx:coord> +<when>2013-07-25T20:59:13.000Z</when> +<gx:coord>-75.295004 40.101186 18.399999618530273</gx:coord> +<when>2013-07-25T20:59:14.000Z</when> +<gx:coord>-75.295026 40.101204 17.600000381469727</gx:coord> +<when>2013-07-25T20:59:15.000Z</when> +<gx:coord>-75.295048 40.101223 17.100000381469727</gx:coord> +<when>2013-07-25T20:59:16.000Z</when> +<gx:coord>-75.295071 40.101242 16.799999237060547</gx:coord> +<when>2013-07-25T20:59:18.000Z</when> +<gx:coord>-75.295112 40.101272 16.799999237060547</gx:coord> +<when>2013-07-25T20:59:19.000Z</when> +<gx:coord>-75.295132 40.101287 15.399999618530273</gx:coord> +<when>2013-07-25T20:59:20.000Z</when> +<gx:coord>-75.295153 40.101304 15.100000381469727</gx:coord> +<when>2013-07-25T20:59:21.000Z</when> +<gx:coord>-75.295174 40.10132 15.100000381469727</gx:coord> +<when>2013-07-25T20:59:22.000Z</when> +<gx:coord>-75.295196 40.101336 15.5</gx:coord> +<when>2013-07-25T20:59:23.000Z</when> +<gx:coord>-75.295218 40.101352 15.600000381469727</gx:coord> +<when>2013-07-25T20:59:24.000Z</when> +<gx:coord>-75.295242 40.101368 15.800000190734863</gx:coord> +<when>2013-07-25T20:59:25.000Z</when> +<gx:coord>-75.295266 40.101386 15.199999809265137</gx:coord> +<when>2013-07-25T20:59:26.000Z</when> +<gx:coord>-75.29529 40.101404 15.5</gx:coord> +<when>2013-07-25T20:59:27.000Z</when> +<gx:coord>-75.295315 40.101424 15.699999809265137</gx:coord> +<when>2013-07-25T20:59:28.000Z</when> +<gx:coord>-75.295342 40.101444 15.899999618530273</gx:coord> +<when>2013-07-25T20:59:29.000Z</when> +<gx:coord>-75.295367 40.101464 16.0</gx:coord> +<when>2013-07-25T20:59:30.000Z</when> +<gx:coord>-75.295392 40.101484 15.5</gx:coord> +<when>2013-07-25T20:59:31.000Z</when> +<gx:coord>-75.295418 40.101505 15.600000381469727</gx:coord> +<when>2013-07-25T20:59:32.000Z</when> +<gx:coord>-75.295444 40.101527 15.399999618530273</gx:coord> +<when>2013-07-25T20:59:33.000Z</when> +<gx:coord>-75.295468 40.10155 15.899999618530273</gx:coord> +<when>2013-07-25T20:59:34.000Z</when> +<gx:coord>-75.29549 40.101571 16.799999237060547</gx:coord> +<when>2013-07-25T20:59:35.000Z</when> +<gx:coord>-75.295514 40.101594 16.700000762939453</gx:coord> +<when>2013-07-25T20:59:36.000Z</when> +<gx:coord>-75.295536 40.101619 15.899999618530273</gx:coord> +<when>2013-07-25T20:59:37.000Z</when> +<gx:coord>-75.295557 40.101643 15.600000381469727</gx:coord> +<when>2013-07-25T20:59:38.000Z</when> +<gx:coord>-75.295579 40.101669 14.699999809265137</gx:coord> +<when>2013-07-25T20:59:39.000Z</when> +<gx:coord>-75.295598 40.101698 14.100000381469727</gx:coord> +<when>2013-07-25T20:59:40.000Z</when> +<gx:coord>-75.295616 40.101731 14.800000190734863</gx:coord> +<when>2013-07-25T20:59:41.000Z</when> +<gx:coord>-75.295635 40.101764 14.399999618530273</gx:coord> +<when>2013-07-25T20:59:42.000Z</when> +<gx:coord>-75.295654 40.101797 15.899999618530273</gx:coord> +<when>2013-07-25T20:59:43.000Z</when> +<gx:coord>-75.295673 40.101831 15.699999809265137</gx:coord> +<when>2013-07-25T20:59:44.000Z</when> +<gx:coord>-75.295691 40.101868 14.899999618530273</gx:coord> +<when>2013-07-25T20:59:45.000Z</when> +<gx:coord>-75.29571 40.101906 14.199999809265137</gx:coord> +<when>2013-07-25T20:59:46.000Z</when> +<gx:coord>-75.295726 40.101945 13.800000190734863</gx:coord> +<when>2013-07-25T20:59:47.000Z</when> +<gx:coord>-75.295741 40.101986 14.0</gx:coord> +<when>2013-07-25T20:59:48.000Z</when> +<gx:coord>-75.295759 40.102029 14.399999618530273</gx:coord> +<when>2013-07-25T20:59:49.000Z</when> +<gx:coord>-75.295778 40.102066 16.5</gx:coord> +<when>2013-07-25T20:59:50.000Z</when> +<gx:coord>-75.295798 40.102102 17.700000762939453</gx:coord> +<when>2013-07-25T20:59:51.000Z</when> +<gx:coord>-75.295817 40.10214 16.799999237060547</gx:coord> +<when>2013-07-25T20:59:52.000Z</when> +<gx:coord>-75.295828 40.102193 15.399999618530273</gx:coord> +<when>2013-07-25T20:59:53.000Z</when> +<gx:coord>-75.295843 40.102236 14.300000190734863</gx:coord> +<when>2013-07-25T20:59:54.000Z</when> +<gx:coord>-75.295863 40.102278 14.300000190734863</gx:coord> +<when>2013-07-25T20:59:55.001Z</when> +<gx:coord>-75.29588 40.102321 14.300000190734863</gx:coord> +<when>2013-07-25T20:59:56.000Z</when> +<gx:coord>-75.295894 40.102359 14.100000381469727</gx:coord> +<when>2013-07-25T20:59:57.000Z</when> +<gx:coord>-75.295913 40.102395 15.0</gx:coord> +<when>2013-07-25T20:59:58.000Z</when> +<gx:coord>-75.295934 40.102435 14.899999618530273</gx:coord> +<when>2013-07-25T20:59:59.000Z</when> +<gx:coord>-75.295951 40.10247 15.300000190734863</gx:coord> +<when>2013-07-25T21:00:00.000Z</when> +<gx:coord>-75.295974 40.102509 14.399999618530273</gx:coord> +<when>2013-07-25T21:00:01.000Z</when> +<gx:coord>-75.295993 40.102546 14.0</gx:coord> +<when>2013-07-25T21:00:02.000Z</when> +<gx:coord>-75.296007 40.102577 13.800000190734863</gx:coord> +<when>2013-07-25T21:00:03.000Z</when> +<gx:coord>-75.296019 40.102609 13.699999809265137</gx:coord> +<when>2013-07-25T21:00:04.000Z</when> +<gx:coord>-75.296035 40.102642 13.699999809265137</gx:coord> +<when>2013-07-25T21:00:05.000Z</when> +<gx:coord>-75.296046 40.102667 14.100000381469727</gx:coord> +<when>2013-07-25T21:00:06.000Z</when> +<gx:coord>-75.296058 40.10269 14.600000381469727</gx:coord> +<when>2013-07-25T21:00:07.000Z</when> +<gx:coord>-75.29607 40.102711 15.100000381469727</gx:coord> +<when>2013-07-25T21:00:08.000Z</when> +<gx:coord>-75.296083 40.102735 15.399999618530273</gx:coord> +<when>2013-07-25T21:00:09.000Z</when> +<gx:coord>-75.296095 40.102752 16.799999237060547</gx:coord> +<when>2013-07-25T21:00:11.000Z</when> +<gx:coord>-75.296115 40.102792 17.799999237060547</gx:coord> +<when>2013-07-25T21:00:12.000Z</when> +<gx:coord>-75.296124 40.102816 17.700000762939453</gx:coord> +<when>2013-07-25T21:00:13.000Z</when> +<gx:coord>-75.296132 40.102842 17.299999237060547</gx:coord> +<when>2013-07-25T21:00:14.000Z</when> +<gx:coord>-75.296143 40.102871 17.700000762939453</gx:coord> +<when>2013-07-25T21:00:15.000Z</when> +<gx:coord>-75.296155 40.102901 17.600000381469727</gx:coord> +<when>2013-07-25T21:00:16.000Z</when> +<gx:coord>-75.296169 40.10293 18.600000381469727</gx:coord> +<when>2013-07-25T21:00:17.000Z</when> +<gx:coord>-75.296184 40.102956 19.299999237060547</gx:coord> +<when>2013-07-25T21:00:18.000Z</when> +<gx:coord>-75.2962 40.10298 19.5</gx:coord> +<when>2013-07-25T21:00:18.999Z</when> +<gx:coord>-75.296217 40.103004 19.899999618530273</gx:coord> +<when>2013-07-25T21:00:20.000Z</when> +<gx:coord>-75.296237 40.103029 20.399999618530273</gx:coord> +<when>2013-07-25T21:00:21.000Z</when> +<gx:coord>-75.296253 40.103055 19.799999237060547</gx:coord> +<when>2013-07-25T21:00:22.000Z</when> +<gx:coord>-75.296268 40.103082 19.200000762939453</gx:coord> +<when>2013-07-25T21:00:23.000Z</when> +<gx:coord>-75.296283 40.103108 20.0</gx:coord> +<when>2013-07-25T21:00:24.000Z</when> +<gx:coord>-75.2963 40.103136 19.799999237060547</gx:coord> +<when>2013-07-25T21:00:25.000Z</when> +<gx:coord>-75.296314 40.103162 19.700000762939453</gx:coord> +<when>2013-07-25T21:00:26.000Z</when> +<gx:coord>-75.296331 40.103186 20.200000762939453</gx:coord> +<when>2013-07-25T21:00:27.000Z</when> +<gx:coord>-75.296345 40.103212 20.100000381469727</gx:coord> +<when>2013-07-25T21:00:28.000Z</when> +<gx:coord>-75.296359 40.103238 20.299999237060547</gx:coord> +<when>2013-07-25T21:00:29.000Z</when> +<gx:coord>-75.29637 40.103263 20.299999237060547</gx:coord> +<when>2013-07-25T21:00:30.000Z</when> +<gx:coord>-75.296381 40.103287 20.5</gx:coord> +<when>2013-07-25T21:00:31.000Z</when> +<gx:coord>-75.296393 40.103312 20.100000381469727</gx:coord> +<when>2013-07-25T21:00:32.000Z</when> +<gx:coord>-75.296408 40.103335 20.5</gx:coord> +<when>2013-07-25T21:00:33.000Z</when> +<gx:coord>-75.296424 40.103357 20.799999237060547</gx:coord> +<when>2013-07-25T21:00:34.000Z</when> +<gx:coord>-75.29644 40.10338 20.899999618530273</gx:coord> +<when>2013-07-25T21:00:35.000Z</when> +<gx:coord>-75.296457 40.103404 20.0</gx:coord> +<when>2013-07-25T21:00:36.000Z</when> +<gx:coord>-75.296474 40.103429 20.5</gx:coord> +<when>2013-07-25T21:00:37.000Z</when> +<gx:coord>-75.296489 40.103453 20.700000762939453</gx:coord> +<when>2013-07-25T21:00:38.000Z</when> +<gx:coord>-75.296505 40.103477 21.899999618530273</gx:coord> +<when>2013-07-25T21:00:39.000Z</when> +<gx:coord>-75.29652 40.1035 22.100000381469727</gx:coord> +<when>2013-07-25T21:00:40.000Z</when> +<gx:coord>-75.296535 40.103526 21.600000381469727</gx:coord> +<when>2013-07-25T21:00:41.000Z</when> +<gx:coord>-75.296548 40.10355 21.899999618530273</gx:coord> +<when>2013-07-25T21:00:42.000Z</when> +<gx:coord>-75.296563 40.103574 21.899999618530273</gx:coord> +<when>2013-07-25T21:00:43.000Z</when> +<gx:coord>-75.296578 40.1036 22.100000381469727</gx:coord> +<when>2013-07-25T21:00:44.000Z</when> +<gx:coord>-75.296595 40.103629 21.600000381469727</gx:coord> +<when>2013-07-25T21:00:44.999Z</when> +<gx:coord>-75.296611 40.103656 21.5</gx:coord> +<when>2013-07-25T21:00:46.000Z</when> +<gx:coord>-75.296627 40.103684 21.0</gx:coord> +<when>2013-07-25T21:00:47.000Z</when> +<gx:coord>-75.29664 40.103713 18.700000762939453</gx:coord> +<when>2013-07-25T21:00:48.000Z</when> +<gx:coord>-75.296653 40.103741 18.600000381469727</gx:coord> +<when>2013-07-25T21:00:49.000Z</when> +<gx:coord>-75.296665 40.103765 18.399999618530273</gx:coord> +<when>2013-07-25T21:00:50.000Z</when> +<gx:coord>-75.29668 40.103789 18.799999237060547</gx:coord> +<when>2013-07-25T21:00:51.000Z</when> +<gx:coord>-75.296696 40.103811 18.899999618530273</gx:coord> +<when>2013-07-25T21:00:52.000Z</when> +<gx:coord>-75.296711 40.103835 18.100000381469727</gx:coord> +<when>2013-07-25T21:00:53.000Z</when> +<gx:coord>-75.296726 40.103858 18.399999618530273</gx:coord> +<when>2013-07-25T21:00:54.000Z</when> +<gx:coord>-75.296742 40.103881 18.700000762939453</gx:coord> +<when>2013-07-25T21:00:55.000Z</when> +<gx:coord>-75.29676 40.103905 19.0</gx:coord> +<when>2013-07-25T21:00:56.000Z</when> +<gx:coord>-75.29678 40.103929 18.899999618530273</gx:coord> +<when>2013-07-25T21:00:57.000Z</when> +<gx:coord>-75.2968 40.103953 18.799999237060547</gx:coord> +<when>2013-07-25T21:00:58.000Z</when> +<gx:coord>-75.296817 40.103977 19.200000762939453</gx:coord> +<when>2013-07-25T21:00:59.000Z</when> +<gx:coord>-75.296835 40.104001 19.399999618530273</gx:coord> +<when>2013-07-25T21:01:00.001Z</when> +<gx:coord>-75.296851 40.104025 18.600000381469727</gx:coord> +<when>2013-07-25T21:01:02.000Z</when> +<gx:coord>-75.296884 40.104055 20.600000381469727</gx:coord> +<when>2013-07-25T21:01:03.000Z</when> +<gx:coord>-75.296902 40.10407 20.600000381469727</gx:coord> +<when>2013-07-25T21:01:04.000Z</when> +<gx:coord>-75.296921 40.104088 20.799999237060547</gx:coord> +<when>2013-07-25T21:01:05.000Z</when> +<gx:coord>-75.296939 40.104105 21.100000381469727</gx:coord> +<when>2013-07-25T21:01:06.000Z</when> +<gx:coord>-75.296958 40.104125 20.799999237060547</gx:coord> +<when>2013-07-25T21:01:07.000Z</when> +<gx:coord>-75.296975 40.104145 21.0</gx:coord> +<when>2013-07-25T21:01:08.000Z</when> +<gx:coord>-75.296992 40.104167 21.200000762939453</gx:coord> +<when>2013-07-25T21:01:09.000Z</when> +<gx:coord>-75.297008 40.10419 21.100000381469727</gx:coord> +<when>2013-07-25T21:01:10.000Z</when> +<gx:coord>-75.297025 40.104212 21.399999618530273</gx:coord> +<when>2013-07-25T21:01:11.000Z</when> +<gx:coord>-75.297042 40.104233 21.799999237060547</gx:coord> +<when>2013-07-25T21:01:12.000Z</when> +<gx:coord>-75.297063 40.104256 21.799999237060547</gx:coord> +<when>2013-07-25T21:01:13.000Z</when> +<gx:coord>-75.297085 40.104277 21.799999237060547</gx:coord> +<when>2013-07-25T21:01:14.000Z</when> +<gx:coord>-75.29711 40.104297 22.0</gx:coord> +<when>2013-07-25T21:01:15.000Z</when> +<gx:coord>-75.297134 40.104315 22.600000381469727</gx:coord> +<when>2013-07-25T21:01:16.000Z</when> +<gx:coord>-75.297159 40.104332 22.899999618530273</gx:coord> +<when>2013-07-25T21:01:17.000Z</when> +<gx:coord>-75.297183 40.104347 22.899999618530273</gx:coord> +<when>2013-07-25T21:01:18.000Z</when> +<gx:coord>-75.297207 40.104362 23.799999237060547</gx:coord> +<when>2013-07-25T21:01:19.000Z</when> +<gx:coord>-75.297231 40.104376 23.899999618530273</gx:coord> +<when>2013-07-25T21:01:20.000Z</when> +<gx:coord>-75.297252 40.104394 22.0</gx:coord> +<when>2013-07-25T21:01:21.000Z</when> +<gx:coord>-75.297273 40.104413 21.200000762939453</gx:coord> +<when>2013-07-25T21:01:22.000Z</when> +<gx:coord>-75.297294 40.10443 21.200000762939453</gx:coord> +<when>2013-07-25T21:01:23.000Z</when> +<gx:coord>-75.297316 40.104448 20.899999618530273</gx:coord> +<when>2013-07-25T21:01:24.000Z</when> +<gx:coord>-75.297341 40.104464 21.799999237060547</gx:coord> +<when>2013-07-25T21:01:25.000Z</when> +<gx:coord>-75.297366 40.104479 21.5</gx:coord> +<when>2013-07-25T21:01:26.000Z</when> +<gx:coord>-75.297392 40.104494 21.399999618530273</gx:coord> +<when>2013-07-25T21:01:27.000Z</when> +<gx:coord>-75.297419 40.104508 21.399999618530273</gx:coord> +<when>2013-07-25T21:01:29.000Z</when> +<gx:coord>-75.297465 40.104533 22.700000762939453</gx:coord> +<when>2013-07-25T21:01:30.000Z</when> +<gx:coord>-75.297487 40.104546 22.5</gx:coord> +<when>2013-07-25T21:01:31.000Z</when> +<gx:coord>-75.29751 40.104562 22.5</gx:coord> +<when>2013-07-25T21:01:32.000Z</when> +<gx:coord>-75.297534 40.104581 22.399999618530273</gx:coord> +<when>2013-07-25T21:01:33.000Z</when> +<gx:coord>-75.297558 40.1046 22.700000762939453</gx:coord> +<when>2013-07-25T21:01:34.000Z</when> +<gx:coord>-75.297583 40.10462 23.100000381469727</gx:coord> +<when>2013-07-25T21:01:35.000Z</when> +<gx:coord>-75.29761 40.104639 22.799999237060547</gx:coord> +<when>2013-07-25T21:01:36.000Z</when> +<gx:coord>-75.297639 40.104659 22.899999618530273</gx:coord> +<when>2013-07-25T21:01:37.000Z</when> +<gx:coord>-75.297668 40.104678 23.299999237060547</gx:coord> +<when>2013-07-25T21:01:38.000Z</when> +<gx:coord>-75.297699 40.104697 23.799999237060547</gx:coord> +<when>2013-07-25T21:01:39.000Z</when> +<gx:coord>-75.297728 40.104717 23.799999237060547</gx:coord> +<when>2013-07-25T21:01:40.000Z</when> +<gx:coord>-75.297756 40.104738 23.899999618530273</gx:coord> +<when>2013-07-25T21:01:41.000Z</when> +<gx:coord>-75.297781 40.104759 23.600000381469727</gx:coord> +<when>2013-07-25T21:01:42.000Z</when> +<gx:coord>-75.297806 40.104779 24.0</gx:coord> +<when>2013-07-25T21:01:43.000Z</when> +<gx:coord>-75.297831 40.104801 23.899999618530273</gx:coord> +<when>2013-07-25T21:01:44.000Z</when> +<gx:coord>-75.29786 40.104824 24.5</gx:coord> +<when>2013-07-25T21:01:45.000Z</when> +<gx:coord>-75.297887 40.104845 23.700000762939453</gx:coord> +<when>2013-07-25T21:01:46.000Z</when> +<gx:coord>-75.297919 40.104864 23.799999237060547</gx:coord> +<when>2013-07-25T21:01:47.000Z</when> +<gx:coord>-75.297952 40.104881 23.600000381469727</gx:coord> +<when>2013-07-25T21:01:48.000Z</when> +<gx:coord>-75.297987 40.104898 23.700000762939453</gx:coord> +<when>2013-07-25T21:01:49.000Z</when> +<gx:coord>-75.29802 40.104914 23.899999618530273</gx:coord> +<when>2013-07-25T21:01:50.000Z</when> +<gx:coord>-75.298052 40.104929 23.899999618530273</gx:coord> +<when>2013-07-25T21:01:51.000Z</when> +<gx:coord>-75.298084 40.104945 23.700000762939453</gx:coord> +<when>2013-07-25T21:01:52.000Z</when> +<gx:coord>-75.298116 40.10496 23.700000762939453</gx:coord> +<when>2013-07-25T21:01:53.000Z</when> +<gx:coord>-75.298146 40.104975 23.700000762939453</gx:coord> +<when>2013-07-25T21:01:54.000Z</when> +<gx:coord>-75.298178 40.10499 23.200000762939453</gx:coord> +<when>2013-07-25T21:01:55.000Z</when> +<gx:coord>-75.298211 40.105007 22.799999237060547</gx:coord> +<when>2013-07-25T21:01:56.000Z</when> +<gx:coord>-75.298247 40.105026 23.200000762939453</gx:coord> +<when>2013-07-25T21:01:57.000Z</when> +<gx:coord>-75.298283 40.105044 24.0</gx:coord> +<when>2013-07-25T21:01:58.000Z</when> +<gx:coord>-75.298318 40.10506 24.0</gx:coord> +<when>2013-07-25T21:01:59.000Z</when> +<gx:coord>-75.298357 40.105079 23.600000381469727</gx:coord> +<when>2013-07-25T21:02:00.000Z</when> +<gx:coord>-75.298398 40.105099 23.299999237060547</gx:coord> +<when>2013-07-25T21:02:01.000Z</when> +<gx:coord>-75.298441 40.105119 22.799999237060547</gx:coord> +<when>2013-07-25T21:02:02.000Z</when> +<gx:coord>-75.298484 40.105141 22.200000762939453</gx:coord> +<when>2013-07-25T21:02:03.000Z</when> +<gx:coord>-75.29853 40.105163 22.299999237060547</gx:coord> +<when>2013-07-25T21:02:04.000Z</when> +<gx:coord>-75.298576 40.105186 22.299999237060547</gx:coord> +<when>2013-07-25T21:02:05.000Z</when> +<gx:coord>-75.29862 40.105207 22.0</gx:coord> +<when>2013-07-25T21:02:06.000Z</when> +<gx:coord>-75.298664 40.10523 21.700000762939453</gx:coord> +<when>2013-07-25T21:02:07.000Z</when> +<gx:coord>-75.298706 40.105253 21.799999237060547</gx:coord> +<when>2013-07-25T21:02:08.000Z</when> +<gx:coord>-75.29875 40.105277 21.700000762939453</gx:coord> +<when>2013-07-25T21:02:09.000Z</when> +<gx:coord>-75.298793 40.1053 21.799999237060547</gx:coord> +<when>2013-07-25T21:02:10.000Z</when> +<gx:coord>-75.298835 40.105322 22.200000762939453</gx:coord> +<when>2013-07-25T21:02:11.000Z</when> +<gx:coord>-75.298877 40.105343 22.600000381469727</gx:coord> +<when>2013-07-25T21:02:12.000Z</when> +<gx:coord>-75.298919 40.105366 22.5</gx:coord> +<when>2013-07-25T21:02:13.000Z</when> +<gx:coord>-75.298958 40.105388 22.700000762939453</gx:coord> +<when>2013-07-25T21:02:14.000Z</when> +<gx:coord>-75.298994 40.105411 22.100000381469727</gx:coord> +<when>2013-07-25T21:02:15.000Z</when> +<gx:coord>-75.299029 40.105436 20.799999237060547</gx:coord> +<when>2013-07-25T21:02:16.000Z</when> +<gx:coord>-75.299061 40.105462 20.600000381469727</gx:coord> +<when>2013-07-25T21:02:17.000Z</when> +<gx:coord>-75.299089 40.105486 21.600000381469727</gx:coord> +<when>2013-07-25T21:02:18.000Z</when> +<gx:coord>-75.299117 40.105511 21.899999618530273</gx:coord> +<when>2013-07-25T21:02:19.000Z</when> +<gx:coord>-75.299142 40.105536 22.399999618530273</gx:coord> +<when>2013-07-25T21:02:20.000Z</when> +<gx:coord>-75.299165 40.105561 22.799999237060547</gx:coord> +<when>2013-07-25T21:02:21.000Z</when> +<gx:coord>-75.299183 40.105583 22.700000762939453</gx:coord> +<when>2013-07-25T21:02:22.000Z</when> +<gx:coord>-75.299198 40.105607 23.100000381469727</gx:coord> +<when>2013-07-25T21:02:23.000Z</when> +<gx:coord>-75.299211 40.105632 22.899999618530273</gx:coord> +<when>2013-07-25T21:02:24.000Z</when> +<gx:coord>-75.299225 40.105658 22.899999618530273</gx:coord> +<when>2013-07-25T21:02:25.000Z</when> +<gx:coord>-75.299239 40.105684 22.799999237060547</gx:coord> +<when>2013-07-25T21:02:26.000Z</when> +<gx:coord>-75.299256 40.105711 23.100000381469727</gx:coord> +<when>2013-07-25T21:02:27.000Z</when> +<gx:coord>-75.299275 40.10574 23.700000762939453</gx:coord> +<when>2013-07-25T21:02:28.000Z</when> +<gx:coord>-75.299292 40.105767 24.5</gx:coord> +<when>2013-07-25T21:02:29.000Z</when> +<gx:coord>-75.299306 40.105792 24.299999237060547</gx:coord> +<when>2013-07-25T21:02:30.000Z</when> +<gx:coord>-75.299322 40.105813 25.899999618530273</gx:coord> +<when>2013-07-25T21:02:31.000Z</when> +<gx:coord>-75.29934 40.105832 27.0</gx:coord> +<when>2013-07-25T21:02:32.000Z</when> +<gx:coord>-75.299362 40.10585 27.899999618530273</gx:coord> +<when>2013-07-25T21:02:33.000Z</when> +<gx:coord>-75.299382 40.105866 27.600000381469727</gx:coord> +<when>2013-07-25T21:02:34.000Z</when> +<gx:coord>-75.299404 40.105883 28.899999618530273</gx:coord> +<when>2013-07-25T21:02:35.000Z</when> +<gx:coord>-75.299424 40.105903 29.799999237060547</gx:coord> +<when>2013-07-25T21:02:36.000Z</when> +<gx:coord>-75.299446 40.105925 30.600000381469727</gx:coord> +<when>2013-07-25T21:02:37.000Z</when> +<gx:coord>-75.299469 40.105946 31.100000381469727</gx:coord> +<when>2013-07-25T21:02:38.000Z</when> +<gx:coord>-75.29949 40.10597 30.399999618530273</gx:coord> +<when>2013-07-25T21:02:39.000Z</when> +<gx:coord>-75.299508 40.105998 29.600000381469727</gx:coord> +<when>2013-07-25T21:02:40.000Z</when> +<gx:coord>-75.299526 40.106024 29.100000381469727</gx:coord> +<when>2013-07-25T21:02:41.000Z</when> +<gx:coord>-75.299544 40.106059 30.100000381469727</gx:coord> +<when>2013-07-25T21:02:42.000Z</when> +<gx:coord>-75.299563 40.106089 30.100000381469727</gx:coord> +<when>2013-07-25T21:02:42.999Z</when> +<gx:coord>-75.299581 40.106117 30.0</gx:coord> +<when>2013-07-25T21:02:44.000Z</when> +<gx:coord>-75.299607 40.106149 29.600000381469727</gx:coord> +<when>2013-07-25T21:02:45.000Z</when> +<gx:coord>-75.299632 40.106176 31.299999237060547</gx:coord> +<when>2013-07-25T21:02:46.000Z</when> +<gx:coord>-75.299658 40.106204 30.200000762939453</gx:coord> +<when>2013-07-25T21:02:47.000Z</when> +<gx:coord>-75.299684 40.106235 29.799999237060547</gx:coord> +<when>2013-07-25T21:02:48.000Z</when> +<gx:coord>-75.29971 40.106268 30.0</gx:coord> +<when>2013-07-25T21:02:49.000Z</when> +<gx:coord>-75.299739 40.106302 31.5</gx:coord> +<when>2013-07-25T21:02:50.000Z</when> +<gx:coord>-75.299766 40.106342 29.299999237060547</gx:coord> +<when>2013-07-25T21:02:51.000Z</when> +<gx:coord>-75.299799 40.106409 29.5</gx:coord> +<when>2013-07-25T21:02:52.000Z</when> +<gx:coord>-75.299829 40.106447 29.200000762939453</gx:coord> +<when>2013-07-25T21:02:53.000Z</when> +<gx:coord>-75.299853 40.106503 27.200000762939453</gx:coord> +<when>2013-07-25T21:02:54.000Z</when> +<gx:coord>-75.29988 40.106552 25.100000381469727</gx:coord> +<when>2013-07-25T21:02:55.000Z</when> +<gx:coord>-75.299926 40.106595 24.399999618530273</gx:coord> +<when>2013-07-25T21:02:56.000Z</when> +<gx:coord>-75.299985 40.106643 23.5</gx:coord> +<when>2013-07-25T21:02:57.000Z</when> +<gx:coord>-75.300055 40.106684 24.0</gx:coord> +<when>2013-07-25T21:02:58.000Z</when> +<gx:coord>-75.300112 40.106723 23.399999618530273</gx:coord> +<when>2013-07-25T21:02:59.000Z</when> +<gx:coord>-75.300182 40.106754 22.100000381469727</gx:coord> +<when>2013-07-25T21:03:00.000Z</when> +<gx:coord>-75.300262 40.106774 21.600000381469727</gx:coord> +<when>2013-07-25T21:03:01.000Z</when> +<gx:coord>-75.300341 40.106792 21.700000762939453</gx:coord> +<when>2013-07-25T21:03:02.000Z</when> +<gx:coord>-75.300425 40.106801 21.100000381469727</gx:coord> +<when>2013-07-25T21:03:03.000Z</when> +<gx:coord>-75.300502 40.106803 20.5</gx:coord> +<when>2013-07-25T21:03:04.000Z</when> +<gx:coord>-75.300585 40.106807 20.100000381469727</gx:coord> +<when>2013-07-25T21:03:05.000Z</when> +<gx:coord>-75.300669 40.106815 20.399999618530273</gx:coord> +<when>2013-07-25T21:03:06.000Z</when> +<gx:coord>-75.300755 40.106822 20.899999618530273</gx:coord> +<when>2013-07-25T21:03:07.000Z</when> +<gx:coord>-75.300842 40.106829 21.600000381469727</gx:coord> +<when>2013-07-25T21:03:08.000Z</when> +<gx:coord>-75.300926 40.106839 21.0</gx:coord> +<when>2013-07-25T21:03:09.000Z</when> +<gx:coord>-75.300999 40.106848 21.100000381469727</gx:coord> +<when>2013-07-25T21:03:10.000Z</when> +<gx:coord>-75.301068 40.106859 21.299999237060547</gx:coord> +<when>2013-07-25T21:03:11.000Z</when> +<gx:coord>-75.301143 40.106869 21.100000381469727</gx:coord> +<when>2013-07-25T21:03:12.000Z</when> +<gx:coord>-75.301224 40.106893 21.100000381469727</gx:coord> +<when>2013-07-25T21:03:13.000Z</when> +<gx:coord>-75.301254 40.1069 21.200000762939453</gx:coord> +<when>2013-07-25T21:03:14.000Z</when> +<gx:coord>-75.301323 40.106917 21.700000762939453</gx:coord> +<when>2013-07-25T21:03:15.000Z</when> +<gx:coord>-75.301374 40.106917 21.600000381469727</gx:coord> +<when>2013-07-25T21:03:16.000Z</when> +<gx:coord>-75.301464 40.106959 21.200000762939453</gx:coord> +<when>2013-07-25T21:03:17.000Z</when> +<gx:coord>-75.301518 40.106974 20.600000381469727</gx:coord> +<when>2013-07-25T21:03:18.000Z</when> +<gx:coord>-75.301587 40.106997 21.299999237060547</gx:coord> +<when>2013-07-25T21:03:19.000Z</when> +<gx:coord>-75.301645 40.107025 22.0</gx:coord> +<when>2013-07-25T21:03:20.000Z</when> +<gx:coord>-75.301705 40.107053 23.200000762939453</gx:coord> +<when>2013-07-25T21:03:21.000Z</when> +<gx:coord>-75.301763 40.107075 23.700000762939453</gx:coord> +<when>2013-07-25T21:03:22.000Z</when> +<gx:coord>-75.301805 40.107105 24.299999237060547</gx:coord> +<when>2013-07-25T21:03:23.000Z</when> +<gx:coord>-75.301856 40.10712 26.100000381469727</gx:coord> +<when>2013-07-25T21:03:24.000Z</when> +<gx:coord>-75.301892 40.107115 29.5</gx:coord> +<when>2013-07-25T21:03:24.999Z</when> +<gx:coord>-75.301923 40.10711 33.0</gx:coord> +<when>2013-07-25T21:03:26.000Z</when> +<gx:coord>-75.301985 40.107176 27.899999618530273</gx:coord> +<when>2013-07-25T21:03:27.000Z</when> +<gx:coord>-75.302044 40.10721 27.899999618530273</gx:coord> +<when>2013-07-25T21:03:28.000Z</when> +<gx:coord>-75.302101 40.107226 27.200000762939453</gx:coord> +<when>2013-07-25T21:03:29.000Z</when> +<gx:coord>-75.302164 40.107279 26.5</gx:coord> +<when>2013-07-25T21:03:30.000Z</when> +<gx:coord>-75.302245 40.107302 25.299999237060547</gx:coord> +<when>2013-07-25T21:03:31.000Z</when> +<gx:coord>-75.302317 40.107331 24.700000762939453</gx:coord> +<when>2013-07-25T21:03:32.000Z</when> +<gx:coord>-75.302378 40.107361 25.200000762939453</gx:coord> +<when>2013-07-25T21:03:33.000Z</when> +<gx:coord>-75.302434 40.107393 24.5</gx:coord> +<when>2013-07-25T21:03:34.000Z</when> +<gx:coord>-75.302499 40.107427 24.0</gx:coord> +<when>2013-07-25T21:03:35.000Z</when> +<gx:coord>-75.302572 40.107476 22.899999618530273</gx:coord> +<when>2013-07-25T21:03:36.000Z</when> +<gx:coord>-75.302662 40.107518 21.799999237060547</gx:coord> +<when>2013-07-25T21:03:37.000Z</when> +<gx:coord>-75.302755 40.107559 20.600000381469727</gx:coord> +<when>2013-07-25T21:03:38.000Z</when> +<gx:coord>-75.30286 40.107603 19.799999237060547</gx:coord> +<when>2013-07-25T21:03:39.000Z</when> +<gx:coord>-75.302962 40.107664 19.600000381469727</gx:coord> +<when>2013-07-25T21:03:40.000Z</when> +<gx:coord>-75.30306 40.107713 19.399999618530273</gx:coord> +<when>2013-07-25T21:03:41.000Z</when> +<gx:coord>-75.303157 40.107756 19.399999618530273</gx:coord> +<when>2013-07-25T21:03:42.000Z</when> +<gx:coord>-75.3032 40.107813 19.200000762939453</gx:coord> +<when>2013-07-25T21:03:43.000Z</when> +<gx:coord>-75.303265 40.107865 19.200000762939453</gx:coord> +<when>2013-07-25T21:03:44.000Z</when> +<gx:coord>-75.303333 40.107914 19.200000762939453</gx:coord> +<when>2013-07-25T21:03:45.000Z</when> +<gx:coord>-75.303401 40.107965 19.299999237060547</gx:coord> +<when>2013-07-25T21:03:46.000Z</when> +<gx:coord>-75.303449 40.107945 19.299999237060547</gx:coord> +<when>2013-07-25T21:03:47.000Z</when> +<gx:coord>-75.30343 40.107908 18.5</gx:coord> +<when>2013-07-25T21:03:48.000Z</when> +<gx:coord>-75.303228 40.108026 17.899999618530273</gx:coord> +<when>2013-07-25T21:03:49.000Z</when> +<gx:coord>-75.303185 40.108035 17.5</gx:coord> +<when>2013-07-25T21:03:50.000Z</when> +<gx:coord>-75.303156 40.108056 17.899999618530273</gx:coord> +<when>2013-07-25T21:03:51.000Z</when> +<gx:coord>-75.303115 40.108071 17.899999618530273</gx:coord> +<when>2013-07-25T21:03:52.000Z</when> +<gx:coord>-75.303066 40.108088 18.200000762939453</gx:coord> +<when>2013-07-25T21:03:53.000Z</when> +<gx:coord>-75.303014 40.108101 18.100000381469727</gx:coord> +<when>2013-07-25T21:03:54.000Z</when> +<gx:coord>-75.302965 40.108121 17.700000762939453</gx:coord> +<when>2013-07-25T21:03:55.000Z</when> +<gx:coord>-75.30291 40.108138 17.100000381469727</gx:coord> +<when>2013-07-25T21:03:56.000Z</when> +<gx:coord>-75.302859 40.108151 17.200000762939453</gx:coord> +<when>2013-07-25T21:03:57.000Z</when> +<gx:coord>-75.302808 40.108162 17.299999237060547</gx:coord> +<when>2013-07-25T21:03:58.000Z</when> +<gx:coord>-75.302759 40.108174 17.700000762939453</gx:coord> +<when>2013-07-25T21:03:59.000Z</when> +<gx:coord>-75.302708 40.108189 18.0</gx:coord> +<when>2013-07-25T21:04:00.000Z</when> +<gx:coord>-75.302668 40.108207 17.899999618530273</gx:coord> +<when>2013-07-25T21:04:01.000Z</when> +<gx:coord>-75.302623 40.108216 18.899999618530273</gx:coord> +<when>2013-07-25T21:04:02.000Z</when> +<gx:coord>-75.302578 40.108226 18.700000762939453</gx:coord> +<when>2013-07-25T21:04:03.000Z</when> +<gx:coord>-75.30254 40.108235 19.200000762939453</gx:coord> +<when>2013-07-25T21:04:04.000Z</when> +<gx:coord>-75.302502 40.108245 20.0</gx:coord> +<when>2013-07-25T21:04:05.000Z</when> +<gx:coord>-75.302463 40.108256 20.0</gx:coord> +<when>2013-07-25T21:04:06.000Z</when> +<gx:coord>-75.302421 40.108265 20.100000381469727</gx:coord> +<when>2013-07-25T21:04:07.000Z</when> +<gx:coord>-75.302377 40.108276 18.799999237060547</gx:coord> +<when>2013-07-25T21:04:08.000Z</when> +<gx:coord>-75.302331 40.108287 18.200000762939453</gx:coord> +<when>2013-07-25T21:04:09.000Z</when> +<gx:coord>-75.302287 40.108297 18.299999237060547</gx:coord> +<when>2013-07-25T21:04:10.000Z</when> +<gx:coord>-75.302248 40.108308 18.899999618530273</gx:coord> +<when>2013-07-25T21:04:11.000Z</when> +<gx:coord>-75.30221 40.108317 19.299999237060547</gx:coord> +<when>2013-07-25T21:04:12.000Z</when> +<gx:coord>-75.302171 40.108326 19.399999618530273</gx:coord> +<when>2013-07-25T21:04:13.000Z</when> +<gx:coord>-75.302132 40.108336 19.5</gx:coord> +<when>2013-07-25T21:04:14.000Z</when> +<gx:coord>-75.302091 40.108346 18.899999618530273</gx:coord> +<when>2013-07-25T21:04:15.000Z</when> +<gx:coord>-75.302044 40.108359 18.5</gx:coord> +<when>2013-07-25T21:04:16.000Z</when> +<gx:coord>-75.301995 40.108372 18.200000762939453</gx:coord> +<when>2013-07-25T21:04:17.000Z</when> +<gx:coord>-75.301951 40.108387 18.799999237060547</gx:coord> +<when>2013-07-25T21:04:18.000Z</when> +<gx:coord>-75.30191 40.108399 18.700000762939453</gx:coord> +<when>2013-07-25T21:04:19.000Z</when> +<gx:coord>-75.301867 40.108411 19.100000381469727</gx:coord> +<when>2013-07-25T21:04:20.000Z</when> +<gx:coord>-75.301832 40.108418 23.799999237060547</gx:coord> +<when>2013-07-25T21:04:21.000Z</when> +<gx:coord>-75.301794 40.108424 23.399999618530273</gx:coord> +<when>2013-07-25T21:04:22.000Z</when> +<gx:coord>-75.30176 40.108428 23.399999618530273</gx:coord> +<when>2013-07-25T21:04:23.000Z</when> +<gx:coord>-75.301724 40.108432 23.5</gx:coord> +<when>2013-07-25T21:04:24.000Z</when> +<gx:coord>-75.301683 40.108439 23.5</gx:coord> +<when>2013-07-25T21:04:25.000Z</when> +<gx:coord>-75.301643 40.108447 23.5</gx:coord> +<when>2013-07-25T21:04:26.000Z</when> +<gx:coord>-75.301604 40.108456 22.5</gx:coord> +<when>2013-07-25T21:04:27.000Z</when> +<gx:coord>-75.301563 40.108466 22.299999237060547</gx:coord> +<when>2013-07-25T21:04:28.000Z</when> +<gx:coord>-75.301523 40.108476 23.299999237060547</gx:coord> +<when>2013-07-25T21:04:29.000Z</when> +<gx:coord>-75.301486 40.108485 23.399999618530273</gx:coord> +<when>2013-07-25T21:04:30.000Z</when> +<gx:coord>-75.301447 40.108494 20.600000381469727</gx:coord> +<when>2013-07-25T21:04:31.000Z</when> +<gx:coord>-75.301407 40.108503 21.600000381469727</gx:coord> +<when>2013-07-25T21:04:32.000Z</when> +<gx:coord>-75.301369 40.108511 22.799999237060547</gx:coord> +<when>2013-07-25T21:04:33.000Z</when> +<gx:coord>-75.301339 40.108523 23.5</gx:coord> +<when>2013-07-25T21:04:35.000Z</when> +<gx:coord>-75.301295 40.108547 23.799999237060547</gx:coord> +<when>2013-07-25T21:04:36.000Z</when> +<gx:coord>-75.301265 40.108559 24.5</gx:coord> +<when>2013-07-25T21:04:37.000Z</when> +<gx:coord>-75.301228 40.108567 24.200000762939453</gx:coord> +<when>2013-07-25T21:04:38.000Z</when> +<gx:coord>-75.301187 40.108573 24.399999618530273</gx:coord> +<when>2013-07-25T21:04:39.000Z</when> +<gx:coord>-75.301147 40.108581 24.600000381469727</gx:coord> +<when>2013-07-25T21:04:40.000Z</when> +<gx:coord>-75.301105 40.108588 24.5</gx:coord> +<when>2013-07-25T21:04:41.000Z</when> +<gx:coord>-75.301064 40.108595 24.299999237060547</gx:coord> +<when>2013-07-25T21:04:42.000Z</when> +<gx:coord>-75.30103 40.1086 26.5</gx:coord> +<when>2013-07-25T21:04:43.000Z</when> +<gx:coord>-75.300999 40.108604 27.700000762939453</gx:coord> +<when>2013-07-25T21:04:44.000Z</when> +<gx:coord>-75.300965 40.10861 26.600000381469727</gx:coord> +<when>2013-07-25T21:04:45.000Z</when> +<gx:coord>-75.30093 40.108617 26.299999237060547</gx:coord> +<when>2013-07-25T21:04:46.000Z</when> +<gx:coord>-75.300896 40.108626 27.0</gx:coord> +<when>2013-07-25T21:04:47.000Z</when> +<gx:coord>-75.30086 40.108634 27.799999237060547</gx:coord> +<when>2013-07-25T21:04:48.000Z</when> +<gx:coord>-75.300826 40.10864 28.200000762939453</gx:coord> +<when>2013-07-25T21:04:49.000Z</when> +<gx:coord>-75.300795 40.108646 28.799999237060547</gx:coord> +<when>2013-07-25T21:04:50.000Z</when> +<gx:coord>-75.300765 40.108651 29.200000762939453</gx:coord> +<when>2013-07-25T21:04:51.000Z</when> +<gx:coord>-75.300734 40.108657 29.399999618530273</gx:coord> +<when>2013-07-25T21:04:52.000Z</when> +<gx:coord>-75.300706 40.108661 31.399999618530273</gx:coord> +<when>2013-07-25T21:04:54.000Z</when> +<gx:coord>-75.300652 40.108669 31.700000762939453</gx:coord> +<when>2013-07-25T21:04:55.000Z</when> +<gx:coord>-75.300624 40.108674 31.799999237060547</gx:coord> +<when>2013-07-25T21:04:57.000Z</when> +<gx:coord>-75.30058 40.108703 30.799999237060547</gx:coord> +<when>2013-07-25T21:04:58.000Z</when> +<gx:coord>-75.300572 40.108724 30.600000381469727</gx:coord> +<when>2013-07-25T21:04:59.000Z</when> +<gx:coord>-75.300571 40.108749 31.200000762939453</gx:coord> +<when>2013-07-25T21:05:00.000Z</when> +<gx:coord>-75.30057 40.108777 30.399999618530273</gx:coord> +<when>2013-07-25T21:05:01.000Z</when> +<gx:coord>-75.300569 40.108803 31.0</gx:coord> +<when>2013-07-25T21:05:02.000Z</when> +<gx:coord>-75.300568 40.108827 29.899999618530273</gx:coord> +<when>2013-07-25T21:05:03.000Z</when> +<gx:coord>-75.300566 40.108853 29.0</gx:coord> +<when>2013-07-25T21:05:04.000Z</when> +<gx:coord>-75.300566 40.108881 28.200000762939453</gx:coord> +<when>2013-07-25T21:05:05.000Z</when> +<gx:coord>-75.300568 40.10891 28.100000381469727</gx:coord> +<when>2013-07-25T21:05:06.000Z</when> +<gx:coord>-75.300572 40.108939 27.700000762939453</gx:coord> +<when>2013-07-25T21:05:07.000Z</when> +<gx:coord>-75.300576 40.108967 28.600000381469727</gx:coord> +<when>2013-07-25T21:05:08.000Z</when> +<gx:coord>-75.300581 40.108991 29.799999237060547</gx:coord> +<when>2013-07-25T21:05:10.000Z</when> +<gx:coord>-75.300597 40.109032 29.899999618530273</gx:coord> +<when>2013-07-25T21:05:11.000Z</when> +<gx:coord>-75.300606 40.10905 30.200000762939453</gx:coord> +<when>2013-07-25T21:05:13.001Z</when> +<gx:coord>-75.300618 40.109086 29.200000762939453</gx:coord> +<when>2013-07-25T21:05:14.000Z</when> +<gx:coord>-75.300629 40.109097 31.0</gx:coord> +<when>2013-07-25T21:05:17.000Z</when> +<gx:coord>-75.300655 40.109134 30.600000381469727</gx:coord> +<when>2013-07-25T21:05:18.000Z</when> +<gx:coord>-75.300656 40.109149 31.700000762939453</gx:coord> +<when>2013-07-25T21:05:20.000Z</when> +<gx:coord>-75.300654 40.109178 32.70000076293945</gx:coord> +<when>2013-07-25T21:05:21.000Z</when> +<gx:coord>-75.300646 40.109199 28.899999618530273</gx:coord> +<when>2013-07-25T21:05:22.000Z</when> +<gx:coord>-75.300632 40.109226 25.799999237060547</gx:coord> +<when>2013-07-25T21:05:23.000Z</when> +<gx:coord>-75.300612 40.109256 25.0</gx:coord> +<when>2013-07-25T21:05:24.000Z</when> +<gx:coord>-75.300589 40.109292 24.5</gx:coord> +<when>2013-07-25T21:05:25.000Z</when> +<gx:coord>-75.300565 40.109328 25.200000762939453</gx:coord> +<when>2013-07-25T21:05:26.000Z</when> +<gx:coord>-75.300475 40.109381 25.799999237060547</gx:coord> +<when>2013-07-25T21:05:27.000Z</when> +<gx:coord>-75.300441 40.109423 24.899999618530273</gx:coord> +<when>2013-07-25T21:05:28.000Z</when> +<gx:coord>-75.300417 40.109458 24.600000381469727</gx:coord> +<when>2013-07-25T21:05:29.000Z</when> +<gx:coord>-75.3004 40.109496 24.700000762939453</gx:coord> +<when>2013-07-25T21:05:30.000Z</when> +<gx:coord>-75.300397 40.109523 25.5</gx:coord> +<when>2013-07-25T21:05:31.000Z</when> +<gx:coord>-75.300397 40.109552 26.0</gx:coord> +<when>2013-07-25T21:05:33.999Z</when> +<gx:coord>-75.300394 40.109589 28.299999237060547</gx:coord> +<when>2013-07-25T21:05:35.000Z</when> +<gx:coord>-75.300397 40.109601 29.100000381469727</gx:coord> +<when>2013-07-25T21:05:38.000Z</when> +<gx:coord>-75.30039 40.10964 30.799999237060547</gx:coord> +<when>2013-07-25T21:05:39.000Z</when> +<gx:coord>-75.300381 40.109649 32.20000076293945</gx:coord> +<when>2013-07-25T21:05:47.999Z</when> +<gx:coord>-75.300355 40.109624 35.70000076293945</gx:coord> +<when>2013-07-25T21:05:49.000Z</when> +<gx:coord>-75.3003 40.109628 34.099998474121094</gx:coord> +<when>2013-07-25T21:06:14.000Z</when> +<gx:coord>-75.300243 40.109622 33.900001525878906</gx:coord> +<when>2013-07-25T21:06:15.000Z</when> +<gx:coord>-75.300232 40.10962 34.20000076293945</gx:coord> +<when>2013-07-25T21:06:59.000Z</when> +<gx:coord>-75.300255 40.109655 35.29999923706055</gx:coord> +<when>2013-07-25T21:07:00.000Z</when> +<gx:coord>-75.300242 40.109664 34.70000076293945</gx:coord> +<when>2013-07-25T21:07:02.000Z</when> +<gx:coord>-75.300212 40.109686 34.29999923706055</gx:coord> +<when>2013-07-25T21:07:03.000Z</when> +<gx:coord>-75.300196 40.109696 34.0</gx:coord> +<when>2013-07-25T21:07:06.000Z</when> +<gx:coord>-75.300147 40.109702 33.79999923706055</gx:coord> +<when>2013-07-25T21:07:07.000Z</when> +<gx:coord>-75.300127 40.109701 33.599998474121094</gx:coord> +<when>2013-07-25T21:07:11.000Z</when> +<gx:coord>-75.300071 40.10971 33.400001525878906</gx:coord> +<when>2013-07-25T21:07:12.000Z</when> +<gx:coord>-75.300061 40.10971 33.400001525878906</gx:coord> +<when>2013-07-25T21:07:25.000Z</when> +<gx:coord>-75.30001 40.109709 33.29999923706055</gx:coord> +<ExtendedData> +<SchemaData schemaUrl="#schema"> +</SchemaData> +</ExtendedData> +</gx:Track> +</gx:MultiTrack> +</Placemark> +<Placemark> +<name><![CDATA[Schuylkill River Trail Bike Ride (End)]]></name> +<TimeStamp><when>2013-07-25T21:07:25.000Z</when></TimeStamp> +<styleUrl>#end</styleUrl> +<Point> +<coordinates>-75.30001,40.109709,33.29999923706055</coordinates> +</Point> +</Placemark> +</Document> +</kml> diff --git a/public/static/SampleData/kml/eiffel-tower-flyto.kml b/public/static/SampleData/kml/eiffel-tower-flyto.kml new file mode 100644 index 0000000..7669803 --- /dev/null +++ b/public/static/SampleData/kml/eiffel-tower-flyto.kml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> + <Document id="Document_65"> + <name>Eiffel Tower Flyto</name> + <visibility>1</visibility> + <open>0</open> + <Folder id="Folder_66"> + <name>AutoPlay</name> + <visibility>1</visibility> + <open>0</open> + </Folder> + <gx:Tour id="Tour_69"> + <name>eiffel-tower-flyto</name> + <gx:Playlist> + <gx:Wait id="Wait_70"> + <gx:duration>0.2</gx:duration> + </gx:Wait> + <gx:FlyTo id="FlyTo_74"> + <gx:duration>6</gx:duration> + <LookAt id="LookAt_72"> + <longitude>2.29448129999356</longitude> + <latitude>48.8583700998311</latitude> + <altitude>196.5753973788714</altitude> + <heading>0.0</heading> + <tilt>67.0</tilt> + <range>1500.0</range> + <gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode> + </LookAt> + </gx:FlyTo> + <gx:Wait id="Wait_75"> + <gx:duration>4</gx:duration> + </gx:Wait> + <gx:FlyTo id="FlyTo_74"> + <gx:duration>6</gx:duration> + <Camera> + <longitude>170.157</longitude> + <latitude>-43.671</latitude> + <altitude>9700</altitude> + <heading>-6.333</heading> + <tilt>33.5</tilt> + </Camera> + </gx:FlyTo> + </gx:Playlist> + </gx:Tour> + </Document> +</kml> diff --git a/public/static/SampleData/kml/facilities/GroundStation.png b/public/static/SampleData/kml/facilities/GroundStation.png new file mode 100644 index 0000000..3d570f9 Binary files /dev/null and b/public/static/SampleData/kml/facilities/GroundStation.png differ diff --git a/public/static/SampleData/kml/facilities/LaserStation.png b/public/static/SampleData/kml/facilities/LaserStation.png new file mode 100644 index 0000000..6a6bff3 Binary files /dev/null and b/public/static/SampleData/kml/facilities/LaserStation.png differ diff --git a/public/static/SampleData/kml/facilities/LaunchPad.png b/public/static/SampleData/kml/facilities/LaunchPad.png new file mode 100644 index 0000000..f1d3ea4 Binary files /dev/null and b/public/static/SampleData/kml/facilities/LaunchPad.png differ diff --git a/public/static/SampleData/kml/facilities/LaunchSite.png b/public/static/SampleData/kml/facilities/LaunchSite.png new file mode 100644 index 0000000..9b1b761 Binary files /dev/null and b/public/static/SampleData/kml/facilities/LaunchSite.png differ diff --git a/public/static/SampleData/kml/facilities/OpticalTrackingStation.png b/public/static/SampleData/kml/facilities/OpticalTrackingStation.png new file mode 100644 index 0000000..a03b407 Binary files /dev/null and b/public/static/SampleData/kml/facilities/OpticalTrackingStation.png differ diff --git a/public/static/SampleData/kml/facilities/RadarStation.png b/public/static/SampleData/kml/facilities/RadarStation.png new file mode 100644 index 0000000..af8899c Binary files /dev/null and b/public/static/SampleData/kml/facilities/RadarStation.png differ diff --git a/public/static/SampleData/kml/facilities/agiLogo.svg b/public/static/SampleData/kml/facilities/agiLogo.svg new file mode 100644 index 0000000..ee86ce2 --- /dev/null +++ b/public/static/SampleData/kml/facilities/agiLogo.svg @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="799px" height="282px" viewBox="0 0 799 282" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- Generator: Sketch 60.1 (88133) - https://sketch.com --> + <title>Group 8 + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/public/static/SampleData/kml/facilities/facilities.kml b/public/static/SampleData/kml/facilities/facilities.kml new file mode 100644 index 0000000..81fe52f --- /dev/null +++ b/public/static/SampleData/kml/facilities/facilities.kml @@ -0,0 +1 @@ +MACRES Ground Receiving Station#GroundStation102.339,3.463Ground StationActiveMalaysiaALCOR STDN KMRQ#RadarStation167.48284936,9.39859958Radar StationActiveMarshall IslandsGuiana Space Center - ZL3 (STDN KR3P)#LaunchPad-52.75178147,5.24036314Launch PadActiveFrench GuianaAsan Teleport#GroundStation127.018,36.741Ground StationActiveSouth KoreaPillar Point STDN PP2F#GroundStation-122.49668389,37.49685436Ground StationActiveUnited StatesDiego Garcia GEODSS Cam3#OpticalTrackingStation72.45237,-7.41186Optical Tracking StationActiveUnited KingdomPlesetsk Cosmodrome#LaunchSite40.6,62.9Launch SiteActiveRussiaPhillips Hill STDN WH9F#GroundStation-106.13210839,33.44521867Ground StationActiveUnited StatesSantiago Station AGO 6#GroundStation-70.6701611,-33.1506778Ground StationActiveChileTanegashima#LaunchSite130.976,30.401Launch SiteActiveJapanBaikonur Cosmodrome - LC 90-19#LaunchPad62.9144,46.0863Launch PadActiveKazakhstanMid-Atlantic Regional Spaceport#LaunchSite-75.49,37.832Launch SiteActiveUnited StatesDombarovsky Cosmodrome x44#LaunchPad59.911557,51.54739Launch PadActiveRussiaFort Bliss#LaunchSite-106.1526,32.0737Launch SiteActiveUnited StatesSemnan Launch Center - xx3#LaunchPad53.952,35.239Launch PadActiveIranEarth Observation Center#GroundStation139.348734,36.002563Ground StationActiveJapanFillmore Teleport#GroundStation-118.894041,34.405802Ground StationActiveUnited StatesDSS 23 Goldstone#GroundStation-116.87295,35.33951Ground StationInactiveUnited StatesGTSA#GroundStation144.8560742,13.6151942Ground StationActiveUnited StatesAntigua STDN AN8S#GroundStation-61.77428983,17.13662489Ground StationActiveAntigua and BarbudaLandsat Station STDN SF1S#GroundStation-96.62251461,43.73607264Ground StationActiveUnited StatesZhanyi Station#GroundStation103.82,25.6Ground StationActiveChinaWallops Island STDN WP3S#GroundStation-75.47418797,37.92836117Ground StationActiveUnited StatesRAL Station 2m#GroundStation-1.31419,51.57159Ground StationActiveUnited KingdomMaryland LSE Leolut#GroundStation-76.93,38.850333Ground StationActiveUnited StatesSemnan Launch Center xx2#LaunchPad53.921,35.2347Launch PadActiveIranBaikonur Cosmodrome LC 200-40#LaunchPad63.0379,46.0364Launch PadActiveKazakhstanNakhodka Leolut#GroundStation132.7907,42.858666Ground StationPlannedRussiaXichang Satellite Launch Center - LA 4#LaunchPad102.0232,28.2495Launch PadActiveChinaBarking Sands LC 14#LaunchPad-159.7788,22.058Launch PadActiveUnited StatesDombarovsky Cosmodrome - x24#LaunchPad59.59691,51.150886Launch PadActiveRussiaWhite Sands Space STDN WSSH#GroundStation-106.46472222,32.88027778Ground StationActiveUnited StatesFort Detrick#GroundStation-77.416,39.443Ground StationActiveUnited StatesBristow Station#GroundStation-77.5732,38.7837Ground StationActiveUnited StatesTromsoe Leolut#GroundStation18.9403,69.662333Ground StationActiveNorwayTonghae Satellite Launching Ground#LaunchSite129.665994,40.855652Launch SiteActiveNorth KoreaDombarovsky Cosmodrome - x29#LaunchPad60.765442,51.201923Launch PadActiveRussiaVandenberg AFB SLC 1E#LaunchPad-120.6263,34.7561Launch PadInactiveUnited StatesSevastopol Radar#RadarStation33.386,44.579Radar StationActiveUkraineWallops Flight Facility - LA 2#LaunchPad-75.4834,37.8376Launch PadActiveUnited StatesOkno Complex#OpticalTrackingStation69.224,38.282Optical Tracking StationActiveTajikistanKapustin Yar - xx7#LaunchPad45.716196,48.812023Launch PadActiveRussiaKwajalein STDN KMRT#GroundStation167.71852428,8.71954542Ground StationInactiveMarshall IslandsXTAR 6m 2#GroundStation-15.63057,27.76272Ground StationActiveSpainWallops Flight Facility LA 1#LaunchPad-75.4861,37.8352Launch PadActiveUnited StatesPoker Flat LEO-T STDN LE1S#GroundStation-147.462255,65.11685167Ground StationActiveUnited StatesVLBA North Liberty#GroundStation-91.574133,41.771425Ground StationActiveUnited StatesWhite Sands - SULF#LaunchPad-106.7364,33.7212Launch PadActiveUnited StatesBaikonur Cosmodrome - LC 108#LaunchPad63.815,46.046Launch PadActiveKazakhstanBaikonur Cosmodrome LC 246#LaunchPad63.4236,45.7656Launch PadActiveKazakhstanMILA STDN MILA#GroundStation-80.69275272,28.50816025Ground StationInactiveUnited StatesMeck Island#LaunchSite167.727188,9.006637Launch SiteActiveMarshall IslandsVLBA Mauna Kea#GroundStation-155.455733,19.801415Ground StationActiveUnited StatesVandenberg STDN WULY#GroundStation-120.55598472,34.65541336Ground StationActiveUnited StatesCape Canaveral AFS SLC 17B STDN B17P#LaunchPad-80.56564944,28.44579042Launch PadActiveUnited StatesGRGT STDN GWMJ#GroundStation144.84080419,13.58675639Ground StationActiveUnited StatesJicamarca Radio Observatory#RadarStation-76.874,-11.951Radar StationActivePeruCarteret Station#GroundStation-74.2166,40.58Ground StationActiveUnited StatesSomis Station#GroundStation-118.996,34.325Ground StationActiveUnited StatesEchoStar New Braunfels Station#GroundStation-98.0635,29.7599Ground StationActiveUnited StatesKashima Space Research Center, 13m B#GroundStation140.66298,35.95631Ground StationActiveJapanOttawa 1 Geolut#GroundStation-75.674,45.329Ground StationActiveCanadaSvobodny Cosmodrome x10#LaunchPad128.3323,51.877Launch PadInactiveRussiaSvalbard STDN S22S#GroundStation15.381773,78.232908Ground StationActiveNorwayCamp Parks Communications Annex#GroundStation-121.881,37.7331Ground StationActiveUnited StatesKapustin Yar PL1#LaunchPad46.2621,48.4116Launch PadActiveRussiaBaikonur Cosmodrome - xx5#LaunchPad62.932319,46.081306Launch PadActiveKazakhstanMillstone Hill Steerable Antenna#RadarStation-71.4912,42.61959Radar StationActiveUnited StatesDombarovsky Cosmodrome - xx2#LaunchPad59.791895,50.681452Launch PadActiveRussiaKamisaibara Spaceguard Center#RadarStation133.9413,35.3125Radar StationActiveJapanMauritius#GroundStation57.52,-20.17Ground StationActiveMauritiusOrbcomm San Luis B#GroundStation-65.18199,-33.83795Ground StationActiveArgentinaDombarovsky Cosmodrome - x37#LaunchPad60.728749,51.301802Launch PadActiveRussiaOverberg Test Range#LaunchSite20.28,-34.61Launch SiteActiveSouth AfricaBermuda STDN BDAA#GroundStation-64.65878961,32.35115261Ground StationInactiveBermudaSemnan Launch Center xx4#LaunchPad53.955,35.258Launch PadActiveIranBaikonur Cosmodrome LC 172#LaunchPad63.092,46.065Launch PadActiveKazakhstanCape Canaveral AFS LC 3#LaunchPad-80.5363,28.4662Launch PadInactiveUnited StatesXichang LA 3#LaunchPad102.0271,28.2455Launch PadActiveChinaNatal Station STDN NATL#LaserStation-35.16455019,-5.92780617Laser StationInactiveBrazilBaikonur Cosmodrome - LC 200-39#LaunchPad63.032,46.0399Launch PadActiveKazakhstanWallops Island STDN HR1S#GroundStation-75.46113556,37.94549917Ground StationActiveUnited StatesWoomera Test Range LA 5B#LaunchPad136.4763,-30.9711Launch PadActiveAustraliaGreen Bank#GroundStation-79.83977,38.43297Ground StationActiveUnited StatesMukachevo Radar#RadarStation22.708,48.378Radar StationActiveUkraineHolloman SLED#LaunchPad-106.1484,32.9263Launch PadActiveUnited StatesNevada Test Site Area 26#LaunchSite-116.114,36.771Launch SiteActiveUnited StatesBaikonur Cosmodrome - LC 70#LaunchPad63.0963,46.0329Launch PadActiveKazakhstanEl Arenosillo#LaunchSite-6.733,37.098Launch SiteActiveSpainBaikonur Cosmodrome - LC 81-23#LaunchPad62.9785,46.074Launch PadActiveKazakhstanKeelung (1) Leolut#GroundStation121.7573,25.135333Ground StationActiveTaiwanPushkino Phased-array Radar#RadarStation37.769,56.173Radar StationActiveRussiaAuScope VLBI Hobart#GroundStation147.4381,-42.80557Ground StationActiveAustraliaSvalsat SG 5#GroundStation15.389123,78.230127Ground StationActiveNorwayQueensland Transmitter#RadarStation144.1454,-23.658Radar StationActiveAustraliaAlice Springs BRT STDN AL2J#GroundStation133.8825985,-23.75881044Ground StationActiveAustraliaSGS Oakhanger Site Annex#GroundStation-0.899,51.1095Ground StationActiveUnited KingdomBaikonur Cosmodrome LC 110L#LaunchPad63.3049,45.9647Launch PadActiveKazakhstanBaikonur Cosmodrome LC 45-2#LaunchPad63.6532,45.9433Launch PadActiveKazakhstanJiuquan Satellite Launch Center - LA 3#LaunchPad100.78,41.0152Launch PadActiveChinaBaikonur Cosmodrome - LC 241#LaunchPad63.4558,45.8583Launch PadActiveKazakhstanGrand Bahama Island STDN GBIQ#GroundStation-78.34784006,26.615642Ground StationInactiveBahamasOrbcomm Kijal A#GroundStation103.47377,4.34888Ground StationActiveMalaysiaMisawa Air Base Security Hill#GroundStation141.3225,40.72Ground StationActiveJapanMoscow Leolut#GroundStation37.7227,55.743333Ground StationPlannedRussiaWallops Flight Facility - LA 3A#LaunchPad-75.4726,37.848Launch PadActiveUnited StatesPoker Flat STDN PFTS#GroundStation-147.46329083,65.11679308Ground StationActiveUnited StatesEtisalat Jebel Ali Teleport#GroundStation55.1247,25.0306Ground StationActiveUnited Arab EmiratesPlesetsk Cosmodrome - LC 133-1#LaunchPad40.8468,62.8868Launch PadActiveRussiaKapustin Yar xx6#LaunchPad45.8152,48.783061Launch PadActiveRussiaAnkara (2) Leolut#GroundStation32.9897,40.140666Ground StationActiveTurkeySvobodny Cosmodrome - xx7#LaunchPad128.301,51.823Launch PadInactiveRussiaOnizuka Control Node xx2#GroundStation-122.029075,37.403492Ground StationInactiveUnited StatesCSTARS_West_11m#GroundStation-80.38489,25.61403Ground StationActiveUnited StatesMaspalomas (1) Geolut#GroundStation-15.634,27.764Ground StationActiveSpainGalenki RT-70#GroundStation131.757,44.0161Ground StationActiveRussiaSugar Grove Station#GroundStation-79.28,38.516Ground StationActiveUnited StatesEnnylabegan#GroundStation167.618495,8.797797Ground StationActiveMarshall IslandsFinegayan SATCOM Site#GroundStation144.849827,13.583618Ground StationActiveUnited StatesHawley Earth Station#GroundStation-75.13,41.46417Ground StationActiveUnited StatesKapustin Yar - xx1#LaunchPad46.318006,48.484051Launch PadActiveRussiaEsrange Station KSX#GroundStation21.0556028,67.8887061Ground StationActiveSwedenVTS STDN VTSS#GroundStation-120.50184844,34.82261656Ground StationActiveUnited StatesEchoStar Gilbert Station#GroundStation-111.8142,33.3655Ground StationActiveUnited StatesTriunfo Pass Station#GroundStation-118.8964,34.0808Ground StationActiveUnited StatesSocorro GEODSS, xx2#OpticalTrackingStation-106.65962,33.81725Optical Tracking StationActiveUnited StatesSaskatoon#GroundStation-106.62587,52.139427Ground StationActiveCanadaBaikonur Cosmodrome - LC 60-7#LaunchPad64.0173,46.0181Launch PadActiveKazakhstanHolloman NATIV#LaunchPad-106.0753,32.8866Launch PadActiveUnited StatesAscension Island STDN ACN3#GroundStation-14.32710328,-7.95488247Ground StationActiveUnited KingdomDombarovsky Cosmodrome x24#LaunchPad59.59691,51.150886Launch PadActiveRussiaBaikonur Cosmodrome - LC 103#LaunchPad63.4448,45.9523Launch PadActiveKazakhstanGoonhilly Satellite Earth Station#GroundStation-5.181944,50.048056Ground StationInactiveUnited KingdomEffelsberg Radio Telescope#GroundStation6.883417,50.525Ground StationActiveGermanyWallops Flight Facility LA 5#LaunchPad-75.4681,37.8529Launch PadActiveUnited StatesSouth Point Station USHI01#GroundStation-155.6633318,19.0139525Ground StationActiveUnited StatesUchinoura Lambda Pad#LaunchPad131.079125,31.251908Launch PadActiveJapanKapustin Yar START Pioner#LaunchPad46.3009,48.6149Launch PadActiveRussiaMount Pleasant 14m#GroundStation147.44165,-42.8034Ground StationActiveAustraliaHartebeesthoek STDN HBK3#GroundStation27.7126,-25.88672778Ground StationActiveSouth AfricaLake Kickapoo Space Fence#RadarStation-98.7628,33.5464Radar StationActiveUnited StatesEsrange Rocket Range - N#LaunchPad21.1064,67.8933Launch PadActiveSwedenSantiago Station AGO 3 STDN AGU3#GroundStation-70.666403,-33.15110747Ground StationActiveChileDakar STDN DAKS#GroundStation-17.12876689,14.72476222Ground StationActiveSenegalHartebeesthoek 5m#GroundStation27.70665,-25.88649Ground StationActiveSouth AfricaPhilippine Space Comm Center#GroundStation121.294,14.585Ground StationActivePhilippinesWenchang#LaunchSite111.01,19.68Launch SitePlannedChinaMaui GEODSS, xx3#OpticalTrackingStation-156.2575,20.7081Optical Tracking StationActiveUnited StatesBochum Observatory#GroundStation7.19257,51.42697Ground StationActiveGermanyMaui GEODSS Cam1#OpticalTrackingStation-156.2578,20.7081Optical Tracking StationActiveUnited StatesOttawa 2 Geolut#GroundStation-75.674333,45.3438Ground StationActiveCanadaHartebeesthoek Ka 13m#GroundStation27.70746,-25.88813Ground StationActiveSouth AfricaSANAE IV#GroundStation-2.8403,-71.6725Ground StationActiveAntarcticaKwajalein GPS Station#GroundStation167.731327,8.723044Ground StationActiveMarshall IslandsTowi Alsaman#GroundStation55.832,25.251Ground StationActiveUnited Arab EmiratesWhite Sands STDN ST3K#GroundStation-106.61208889,32.542675Ground StationActiveUnited StatesAlcantara Launch Center#LaunchSite-44.367,-2.317Launch SiteActiveBrazilSouth Point Station USHI02 STDN U2HS#GroundStation-155.66294408,19.01379344Ground StationActiveUnited StatesVandenberg Air Force Base - SLC 1E#LaunchPad-120.6263,34.7561Launch PadInactiveUnited StatesCape Canaveral Air Force Station - SLC 37A#LaunchPad-80.568,28.534Launch PadInactiveUnited StatesPlesetsk Cosmodrome LC 35#LaunchPad40.575422,62.927806Launch PadActiveRussiaSednaya#GroundStation36.3635,33.6676Ground StationActiveSyriaDSS 16 Goldstone STDN DS16#GroundStation-116.87364975,35.34153939Ground StationInactiveUnited StatesEagle Vision 6#GroundStation-86.66,34.64Ground StationActiveUnited StatesKapustin Yar LC 107 2d#LaunchPad46.2959,48.5695Launch PadActiveRussiaVentspils#GroundStation21.857778,57.558056Ground StationActiveLatviaVandenberg Air Force Base - SLC 2W (STDN WTRP)#LaunchPad-120.62237833,34.75563222Launch PadActiveUnited StatesBaikonur Cosmodrome LC 81-24#LaunchPad62.9848,46.0709Launch PadActiveKazakhstanCape Canaveral AFS#LaunchSite-80.57,28.5Launch SiteActiveUnited StatesGuam 1 GU1 Leolut#GroundStation144.939,13.578333Ground StationActiveUnited StatesESTEC#GroundStation4.41994,52.21838Ground StationActiveNetherlandsKapustin Yar LC 107 2b#LaunchPad46.2959,48.5609Launch PadActiveRussiaSvobodny Cosmodrome#LaunchSite128.4,51.8Launch SiteInactiveRussiaPik Terskol Observatory#OpticalTrackingStation42.49939,43.27631Optical Tracking StationActiveRussiaOrroral Valley STDN ORR3#GroundStation148.95702322,-35.62789289Ground StationRelocatedAustraliaKapustin Yar LC 107 1a#LaunchPad46.298,48.5992Launch PadActiveRussiaKashima Space Research Center 13m B#GroundStation140.66298,35.95631Ground StationActiveJapanUchinoura#LaunchSite131.08,31.251Launch SiteActiveJapanAnkara Geolut#GroundStation32.99,40.1403Ground StationActiveTurkeyPlesetsk Cosmodrome LC 133-3#LaunchPad40.8504,62.887Launch PadActiveRussiaKijal Earth Station#GroundStation103.475,4.439Ground StationActiveMalaysiaPlesetsk Cosmodrome LC 32-1#LaunchPad40.7872,62.9073Launch PadActiveRussiaSantiago Station AGO 3 (STDN AGU3)#GroundStation-70.666403,-33.15110747Ground StationActiveChileQabala Phased-array Radar#RadarStation47.7955,40.8679Radar StationActiveAzerbaijanGCSB Waihopai#GroundStation173.738889,-41.576389Ground StationActiveNew ZealandGRGT STDN GWMS#GroundStation144.8409295,13.58801786Ground StationActiveUnited StatesBarreira do Inferno Launch Center#LaunchSite-35.1613,-5.9236Launch SiteActiveBrazilDiego Garcia GEODSS, xx3#OpticalTrackingStation72.45237,-7.41186Optical Tracking StationActiveUnited KingdomMichelstadt Station#GroundStation8.971934,49.711812Ground StationInactiveGermanySHAR-1#GroundStation80.19631,13.67484Ground StationActiveIndiaMt Lemmon STDN MTLS#GroundStation-110.78945064,32.44213656Ground StationActiveUnited StatesPunta Arenas Station#GroundStation-70.857,-52.938Ground StationActiveChileBermuda STDN BDAL#LaserStation-64.65610619,32.35381689Laser StationInactiveBermudaSan Nicolas Island STDN SN2F#GroundStation-119.52074281,33.247685Ground StationActiveUnited StatesLackland Air Force Base#GroundStation-98.590371,29.363209Ground StationActiveUnited StatesBaikonur Cosmodrome#LaunchSite63.3,46Launch SiteActiveKazakhstanNorth Pole Station USAK01 (STDN USAS)#GroundStation-147.50021417,64.80424111Ground StationActiveUnited StatesOoty Radio Telescope#GroundStation76.666,11.384Ground StationActiveIndiaWeilheim STDN WU2S#GroundStation11.08361889,47.88119889Ground StationActiveGermanyBaikonur Cosmodrome - LC 243#LaunchPad63.737,45.8549Launch PadActiveKazakhstanLongyearbyen EISCAT Radar#RadarStation16.0289,78.1531Radar StationActiveNorwayKapustin Yar - LC 107 2b#LaunchPad46.2959,48.5609Launch PadActiveRussiaKerguelen Island STDN KERS#GroundStation70.257282,-49.352906Ground StationActiveFranceGrand Turk Island STDN GTKL#LaserStation-71.13194483,21.46052522Laser StationActiveUnited KingdomHartebeesthoek STDN HB33#GroundStation27.70744722,-25.88642778Ground StationActiveSouth AfricaIP-1 Tracking Station#GroundStation63.334,45.908Ground StationActiveKazakhstanCSTARS#GroundStation-80.3844,25.6138Ground StationActiveUnited StatesDombarovsky Cosmodrome - x11#LaunchPad59.567713,51.020939Launch PadActiveRussiaDombarovsky Cosmodrome x28#LaunchPad59.635083,51.193164Launch PadActiveRussiaEUMETSAT Maspalomas#GroundStation-15.63295,27.76264Ground StationActiveSpainDombarovsky Cosmodrome x43#LaunchPad59.801475,51.526422Launch PadActiveRussiaCarnarvon Tracking Station#GroundStation113.721,-24.905Ground StationDemolishedAustraliaAlgonquin#GroundStation-78.0727,45.9554Ground StationActiveCanadaDSS 28 Goldstone#GroundStation-116.778711,35.23831Ground StationInactiveUnited StatesArequipa STDN AREL#LaserStation-71.49305469,-16.46570239Laser StationActivePeruKapustin Yar xx5#LaunchPad45.781879,48.781927Launch PadActiveRussiaBarking Sands - LC 42#LaunchPad-159.7727,22.0682Launch PadActiveUnited StatesDombarovsky Cosmodrome - x31#LaunchPad60.606992,51.241105Launch PadActiveRussiaMSSC 15in Aux Telescope#OpticalTrackingStation-156.2576,20.70849Optical Tracking StationActiveUnited StatesSimferopol TNA-400#GroundStation33.890256,45.052703Ground StationActiveUkraineMalabar Test Facility#OpticalTrackingStation-80.684,28.025Optical Tracking StationActiveUnited StatesEsrange Rocket Range - S#LaunchPad21.1054,67.8932Launch PadActiveSwedenGuiana Space Center - ZL3#LaunchPad-52.7685,5.2393Launch PadActiveFrench GuianaDombarovsky Cosmodrome x21#LaunchPad59.576451,51.102299Launch PadActiveRussiaPCMC Radar#RadarStation80.19886,13.67944Radar StationActiveIndiaCape Canaveral Air Force Station - LC 26B#LaunchPad-80.5712,28.4433Launch PadInactiveUnited StatesCDAS#GroundStation116.27,40.05Ground StationActiveChinaDombarovsky Cosmodrome x30#LaunchPad59.85002,51.207054Launch PadActiveRussiaDombarovsky Cosmodrome xx6#LaunchPad60.52463,50.877274Launch PadActiveRussiaGuam STDN GWM3#GroundStation144.73681531,13.31068944Ground StationDemolishedUnited StatesRAL Station 4m#GroundStation-1.43673,51.14283Ground StationActiveUnited KingdomEsrange Station ETX STDN KU1S#GroundStation21.06565472,67.88955833Ground StationActiveSwedenUniversity of Hawaii STDN HAWQ#GroundStation-157.8864,21.3161Ground StationActiveUnited StatesOrbcomm Arcade B#GroundStation-78.382119,42.524096Ground StationActiveUnited StatesKiruna Station KIR-2 13m#GroundStation20.96688,67.858428Ground StationActiveSwedenEdwards AFB STDN EA2F#GroundStation-117.93056167,34.97045389Ground StationActiveUnited StatesPoker Flat LC 5#LaunchPad-147.4832,65.1292Launch PadActiveUnited StatesNy-Alesund#GroundStation11.870967,78.929071Ground StationActiveNorwayWashington International Teleport#GroundStation-77.164891,38.794257Ground StationActiveUnited StatesVandenberg Air Force Base - SLC 8#LaunchPad-120.6324,34.5762Launch PadActiveUnited StatesMaspalomas (2) Geolut#GroundStation-15.634,27.764Ground StationActiveSpainAtlanta STDN ATDQ#GroundStation-84.10862994,33.93088417Ground StationActiveUnited StatesDongara Station AUWA01 STDN USDS#GroundStation115.348678,-29.045772Ground StationActiveAustraliaPoint Mugu LC 1#LaunchPad-119.1215,34.0996Launch PadActiveUnited StatesTromso Satellite Station#GroundStation18.9408,69.6625Ground StationActiveNorwayDombarovsky Cosmodrome x23#LaunchPad60.675969,51.146793Launch PadActiveRussiaMaui STDN MA2C#OpticalTrackingStation-156.2575,20.70057325Optical Tracking StationActiveUnited StatesWettzel STDN WETL#LaserStation12.87800803,49.14441731Laser StationActiveGermanyCape Canaveral Air Force Station#LaunchSite-80.57,28.5Launch SiteActiveUnited StatesClear AFS BMEWS#RadarStation-149.1897,64.3002Radar StationActiveUnited StatesMalaysia Space Centre#GroundStation101.508,2.784Ground StationActiveMalaysiaBaikonur Cosmodrome - LC 67-22#LaunchPad63.7073,45.9895Launch PadActiveKazakhstanIssus-Aussaguel Station#GroundStation1.497,43.429Ground StationActiveFranceWallops Flight Facility LA 4 MAST#LaunchPad-75.4702,37.8508Launch PadActiveUnited StatesPlesetsk Cosmodrome PU 11#LaunchPad40.4953,62.8978Launch PadActiveRussiaOrbcomm Albury A#GroundStation146.53351,-36.03145Ground StationActiveAustraliaBiscarosse BS#LaunchPad-1.2675,44.2882Launch PadInactiveFranceCape Canaveral Air Force Station - LC 18B#LaunchPad-80.562,28.449Launch PadInactiveUnited StatesGuiana Space Center ZL3#LaunchPad-52.7685,5.2393Launch PadActiveFrench GuianaAntigua Radar STDN ANTQ#RadarStation-61.7925125,17.14365111Radar StationActiveAntigua and BarbudaPoker Flat LC 2#LaunchPad-147.4857,65.1299Launch PadActiveUnited StatesTokai University#GroundStation130.87,32.835Ground StationActiveJapanKapustin Yar - xx3#LaunchPad46.300125,48.540529Launch PadActiveRussiaHong Kong (2) Leolut#GroundStation114.1445,22.275833Ground StationActiveChinaPaliivka Station#GroundStation30.5069,46.6339Ground StationActiveUkraineKapustin Yar - SAM#LaunchPad45.7346,48.8055Launch PadActiveRussiaDSS 14 Goldstone STDN DS14#GroundStation-116.88953822,35.42590086Ground StationActiveUnited StatesVLBA St Croix#GroundStation-64.583631,17.756578Ground StationActiveUnited StatesPoker Flat - LC 4#LaunchPad-147.4827,65.1303Launch PadActiveUnited StatesVandenberg AFB SLC 2W STDN WTRP#LaunchPad-120.62237833,34.75563222Launch PadActiveUnited StatesOrbcomm Hartebeesthoek B#GroundStation27.70568,-25.88812Ground StationActiveSouth AfricaDombarovsky Cosmodrome x18#LaunchPad59.842142,51.094496Launch PadActiveRussiaVandenberg Air Force Base - SLC 3W (STDN WT3P)#LaunchPad-120.59285703,34.64367528Launch PadActiveUnited StatesBisei Spaceguard Center#OpticalTrackingStation133.545,34.672Optical Tracking StationActiveJapanGRGT STDN GW2K#GroundStation144.84087447,13.58758828Ground StationActiveUnited StatesFinegayan SATCOM Site#GroundStation144.849827,13.583618Ground StationActiveUnited StatesKodiak Launch Complex#LaunchSite-152.3393,57.4352Launch SiteActiveUnited StatesWhite Sands STDN STGS#GroundStation-106.61208894,32.54245167Ground StationActiveUnited StatesLucknow Leolut#GroundStation80.9573,26.913333Ground StationActiveIndiaBarking Sands#LaunchSite-159.78,22.06Launch SiteActiveUnited StatesWeipa STDN KRCS#GroundStation141.93066667,-12.694Ground StationActiveAustraliaDombarovsky Cosmodrome - x26#LaunchPad59.74824,51.154839Launch PadActiveRussiaDombarovsky Cosmodrome - x12#LaunchPad59.808673,51.022624Launch PadActiveRussiaVandenberg Air Force Base - SLC 3E (STDN WTEP)#LaunchPad-120.59,34.64Launch PadActiveUnited StatesGreen Bank 85-2 Telescope#GroundStation-79.8525,38.42577Ground StationActiveUnited StatesSubmarine Launch Platform - Barents Sea#LaunchSite34.2,69.5Launch SiteActiveRussiaWettzell#GroundStation12.8772,49.145Ground StationActiveGermanyBaikonur Cosmodrome xx4#LaunchPad62.935495,46.079747Launch PadActiveKazakhstanBaikonur Cosmodrome - LC 104#LaunchPad63.4197,45.9875Launch PadActiveKazakhstanVillafranca VIL-1#GroundStation-3.951582,40.442565Ground StationInactiveSpainGreen Bank Telescope 14m#GroundStation-79.8224,38.43326Ground StationActiveUnited StatesEsrange Station ESTC STDN KU2S#GroundStation21.06044833,67.8831825Ground StationActiveSwedenHerstmonceaux STDN HERL#LaserStation0.33612414,50.86738069Laser StationActiveUnited KingdomWallops Island STDN WL3F#GroundStation-75.51143536,37.85636525Ground StationActiveUnited StatesEsrange Station ESX (STDN KIXS)#GroundStation21.063398,67.878157Ground StationActiveSwedenMU Radar#RadarStation136.1055,34.854Radar StationActiveJapanBarking Sands LC 1#LaunchPad-159.777,22.058Launch PadActiveUnited StatesSouthbury Station#GroundStation-73.2889,41.4514Ground StationActiveUnited StatesSantiago Station AGO 4 (STDN AG33)#GroundStation-70.66830756,-33.15147853Ground StationActiveChilePlesetsk Cosmodrome - LC 32-2#LaunchPad40.7895,62.9057Launch PadActiveRussiaDSS 62 Cebreros#GroundStation-4.36788,40.45311Ground StationDemolishedSpainVandenberg Air Force Base - SLC 2E#LaunchPad-120.619201,34.751617Launch PadDemolishedUnited StatesKTS#GroundStation-152.178,57.5986Ground StationDemolishedUnited StatesDombarovsky Cosmodrome x40#LaunchPad60.372543,51.379286Launch PadActiveRussiaMaspalomas 2 Geolut#GroundStation-15.634,27.764Ground StationActiveSpainBaikonur Cosmodrome LC 244#LaunchPad63.6346,45.8403Launch PadActiveKazakhstanDombarovsky Cosmodrome - x13#LaunchPad59.689541,51.030416Launch PadActiveRussiaAdour 2 Radar STDN ADRQ#RadarStation-52.74840111,5.20912725Radar StationActiveFrench GuianaOrbcomm Albury B#GroundStation146.53351,-36.03223Ground StationActiveAustraliaVTSB#GroundStation-120.505403,34.8256235Ground StationActiveUnited StatesUchinoura Space Center, 20m#GroundStation131.080567,31.256784Ground StationActiveJapanBaikonur Cosmodrome - LC 81-24#LaunchPad62.9848,46.0709Launch PadActiveKazakhstanWallops Island STDN WD4F#GroundStation-75.511439,37.85636639Ground StationActiveUnited StatesBaikonur Cosmodrome LC 109#LaunchPad63.4452,45.9525Launch PadActiveKazakhstanKeelung (2) Leolut#GroundStation121.7573,25.135333Ground StationActiveTaiwanTelkom SA Earth Station#GroundStation27.71,-25.91Ground StationActiveSouth AfricaVTSA#GroundStation-120.501852,34.8226094Ground StationActiveUnited StatesBaikonur Cosmodrome - xx3#LaunchPad63.481448,45.945516Launch PadActiveKazakhstanZimmerwald#GroundStation7.478169,46.886794Ground StationActiveSwitzerlandNHSB#GroundStation-71.630319,42.9447544Ground StationActiveUnited StatesElephant Butte Space Fence#RadarStation-106.9972,33.4431Radar StationActiveUnited StatesMid-Atlantic Regional Spaceport#LaunchSite-75.49,37.832Launch SiteActiveUnited StatesGrand Bahama Island STDN GBIY#GroundStation-78.29909119,26.62544656Ground StationActiveBahamasMoores Valley Station#GroundStation-123.2875,45.3425Ground StationDemolishedUnited StatesJiuquan xx2#LaunchPad100.305083,41.283173Launch PadActiveChinaSouth Uist Range Radar#GroundStation-7.446834,57.617444Ground StationActiveUnited KingdomKapustin Yar xx3#LaunchPad46.300125,48.540529Launch PadActiveRussiaIssus-Aussaguel Station#GroundStation1.497,43.429Ground StationActiveFranceAscension#LaunchSite-14.4147,-7.9748Launch SiteActiveUnited KingdomAyios Nikolaos Station#GroundStation33.888,35.09423Ground StationActiveCyprusAscension Island BRT STDN AC2J#GroundStation-14.39076792,-7.91791558Ground StationActiveUnited KingdomHammaguira Brigitte-A#LaunchPad-3.0081,30.8712Launch PadActiveAlgeriaHartebeesthoek STDN HBKS#GroundStation27.712,-25.887Ground StationActiveSouth AfricaGRAVES Receiver#RadarStation5.5346,44.0715Radar StationActiveFranceDSS 13 Goldstone STDN VEND#GroundStation-116.794459,35.24716425Ground StationActiveUnited StatesGalenki 32m#GroundStation131.7561,44.0204Ground StationActiveRussiaCape Canaveral AFS LC 18B#LaunchPad-80.562,28.449Launch PadInactiveUnited StatesSan Nicolas Island STDN SNIF#GroundStation-119.52009433,33.24697758Ground StationActiveUnited StatesHaystack Auxilliary Radar#RadarStation-71.4872,42.62283Radar StationActiveUnited StatesVLBA Brewster#GroundStation-119.683278,48.131228Ground StationActiveUnited StatesDombarovsky Cosmodrome - x42#LaunchPad59.972508,51.521988Launch PadActiveRussiaWallops Flight Facility LA 2 JUP#LaunchPad-75.482,37.8394Launch PadActiveUnited StatesMid-Atlantic Regional Spaceport - Launch Pad 0-A#LaunchPad-75.4882,37.8338Launch PadActiveUnited StatesGilmore Creek STDN ULA4#GroundStation-147.52128289,64.97659575Ground StationActiveUnited StatesKashima Space Research Center 26m#GroundStation140.6627,35.9541Ground StationDemolishedJapanUchinoura Space Center - Lambda Pad#LaunchPad131.079125,31.251908Launch PadActiveJapanMizusawa VLBI Observatory#GroundStation141.1326,39.1335Ground StationActiveJapanOmelek Island#LaunchSite167.743322,9.048224Launch SiteActiveMarshall IslandsBaikonur Cosmodrome LC 60-8#LaunchPad64.0183,46.0174Launch PadActiveKazakhstanHiroshima Institute of Technology#GroundStation132.3761,34.3678Ground StationActiveJapanTHEOS Control and Receiving Station#GroundStation100.932849,13.103529Ground StationActiveThailandZhongshan Station#GroundStation76.378,-69.379Ground StationActiveAntarcticaDSS 44 Honeysuckle Creek#GroundStation148.97784,-35.58319Ground StationRelocatedAustraliaDombarovsky Cosmodrome - x35#LaunchPad60.858975,51.26491Launch PadActiveRussiaDombarovsky Cosmodrome#LaunchSite60,51Launch SiteActiveRussiaBiscarosse BESA#LaunchPad-1.2335,44.3917Launch PadActiveFranceAllen Telescope Array#GroundStation-121.47,40.817Ground StationActiveUnited StatesDulles Station#GroundStation-77.42795,39.01449Ground StationActiveUnited StatesSvobodny Cosmodrome - xx1#LaunchPad128.3102,51.747Launch PadInactiveRussiaRAF Fylingdales BMEWS#RadarStation-0.6701,54.3618Radar StationActiveUnited KingdomWoomera Test Range - LA 4#LaunchPad136.5155,-30.9053Launch PadActiveAustraliaBaikonur Cosmodrome LC 163#LaunchPad63.172,46.002Launch PadActiveKazakhstanAndover Station#GroundStation-70.699,44.633Ground StationActiveUnited StatesThuraya Station#GroundStation55.8285,25.2433Ground StationActiveUnited Arab EmiratesGEROC Ikonos Station#GroundStation11.28006,48.08407Ground StationActiveGermanySuffa RT-70 Radio Telescope#GroundStation68.448,39.624Ground StationActiveUzbekistanSocorro GEODSS, xx3#OpticalTrackingStation-106.65968,33.81703Optical Tracking StationActiveUnited StatesBaikonur Cosmodrome xx5#LaunchPad62.932319,46.081306Launch PadActiveKazakhstanBiscarosse - BLB#LaunchPad-1.262,44.3659Launch PadActiveFranceAlaska 2 (AK2) Leolut#GroundStation-147.5177,64.9735Ground StationActiveUnited StatesOuargla Leolut#GroundStation5.49,31.88Ground StationActiveAlgeriaEsrange Station ESX STDN KIXS#GroundStation21.063398,67.878157Ground StationActiveSwedenMaryland 2 Geolut#GroundStation-76.93,38.8503Ground StationActiveUnited StatesBaikonur Cosmodrome LC 103#LaunchPad63.4448,45.9523Launch PadActiveKazakhstanWellington (1) Geolut#GroundStation175.5045,-41.152Ground StationActiveNew ZealandWallops Flight Facility - LA 4 ML#LaunchPad-75.4698,37.851Launch PadActiveUnited StatesJiuquan LA 3B#LaunchPad100.7803,41.1593Launch PadActiveChinaColomb-Bechar#LaunchSite-2.255,31.693Launch SiteActiveAlgeriaWallops Flight Facility LA 2 HAD#LaunchPad-75.4826,37.8383Launch PadActiveUnited StatesAnkara (1) Leolut#GroundStation32.9897,40.140833Ground StationActiveTurkeyTCSA#GroundStation-0.90636355,51.1167229Ground StationActiveUnited KingdomBiscarosse - BP#LaunchPad-1.2396,44.3755Launch PadActiveFranceNakhodka Station#GroundStation132.7906,42.8584Ground StationActiveRussiaPlesetsk Cosmodrome - LC 16-2#LaunchPad40.6834,62.96Launch PadActiveRussiaPlesetsk Cosmodrome - LC 35#LaunchPad40.575422,62.927806Launch PadActiveRussiaGilmore Creek STDN GILD#GroundStation-147.49800019,64.97850925Ground StationActiveUnited StatesKapustin Yar LC 86 4c#LaunchPad46.297,48.5481Launch PadActiveRussiaOrbcomm Maghreb A#GroundStation-7.64361,33.04828Ground StationActiveMoroccoTidbinbilla STDN RTKS#GroundStation148.98260486,-35.40474494Ground StationActiveAustraliaPrimrose Lake#LaunchSite-110.05,54.75Launch SiteActiveCanadaNetaji Station#GroundStation88.4276,22.946Ground StationActiveIndiaRobins AFB PAVE PAWS#RadarStation-83.56936,32.58115Radar StationInactiveUnited StatesSantiago Station AGO 4 STDN AG33#GroundStation-70.66830756,-33.15147853Ground StationActiveChileAscension Island STDN ASNS#GroundStation-14.33333333,-7.91666717Ground StationActiveUnited KingdomJiuquan Satellite Launch Center - xx2#LaunchPad100.305083,41.283173Launch PadActiveChinaBretagne 2 Radar STDN BREQ#RadarStation-52.30954428,4.94887892Radar StationActiveFrench GuianaVandenberg Air Force Base - SLC 10E#LaunchPad-120.6213,34.7626Launch PadInactiveUnited StatesTTSC#GroundStation-68.605031,76.5157036Ground StationActiveGreenlandWhite Sands LC 39#LaunchPad-106.2367,32.4161Launch PadActiveUnited StatesArecibo Observatory#RadarStation-66.753083,18.3435Radar StationActiveUnited StatesOrbcomm Wenatchee A#GroundStation-120.17509,47.551685Ground StationActiveUnited StatesWallops Flight Facility LA 4 HAD#LaunchPad-75.4696,37.8511Launch PadActiveUnited StatesBaikonur Cosmodrome - LC 75#LaunchPad63.1983,45.9657Launch PadActiveKazakhstanDombarovsky Cosmodrome - x46#LaunchPad60.082438,51.588487Launch PadActiveRussiaDombarovsky Cosmodrome xx3#LaunchPad59.597872,50.756297Launch PadActiveRussiaEsrange Station ESX#GroundStation21.0634472,67.8781431Ground StationActiveSwedenKumsan Station#GroundStation127.4892,36.125Ground StationActiveSouth KoreaKennedy Space Center - LC 39A (STDN A39P)#LaunchPad-80.60411653,28.60827486Launch PadActiveUnited StatesScanEx Moscow Station#GroundStation37.58411,55.73606Ground StationActiveRussiaMaiquetia 2 Leolut#GroundStation-66.9865,10.599Ground StationPlannedVenezuelaOTC Carnarvon#GroundStation113.7049,-24.8691Ground StationActiveAustraliaVandenberg AFB SLC 5#LaunchPad-120.6247,34.608Launch PadInactiveUnited StatesEglin AFB STDN EG3F#GroundStation-86.798012,30.42166558Ground StationInactiveUnited StatesVLBA Pie Town#GroundStation-108.119183,34.301003Ground StationActiveUnited StatesDombarovsky Cosmodrome xx7#LaunchPad59.73193,50.883614Launch PadActiveRussiaBaikonur Cosmodrome LC 51#LaunchPad63.3409,45.9239Launch PadActiveKazakhstanSanta Paula Station#GroundStation-119.0734,34.4021Ground StationActiveUnited StatesWallops Island STDN WLPF#GroundStation-75.48508908,37.84133972Ground StationActiveUnited StatesEagle Vision 2#GroundStation-104.71,38.82Ground StationActiveUnited StatesLibreville Station STDN LBVS#GroundStation9.67530028,0.35462978Ground StationActiveGabonGreen Bank 85-3 Telescope#GroundStation-79.84341,38.42959Ground StationActiveUnited StatesHTS STDN HTSS#GroundStation-158.24208956,21.56227219Ground StationActiveUnited StatesHyderabad#GroundStation78.188333,17.028611Ground StationActiveIndiaLAPAN Station#GroundStation119.65,-3.978Ground StationActiveIndonesiaYellowknife Site#GroundStation-114.47924,62.48044Ground StationActiveCanadaBaikonur Cosmodrome LC 191-66#LaunchPad63.1966,45.9698Launch PadActiveKazakhstanPoker Flat LC 4#LaunchPad-147.4827,65.1303Launch PadActiveUnited StatesCape Canaveral AFS LC 1#LaunchPad-80.5375,28.465Launch PadInactiveUnited StatesKunming Station#GroundStation102.79583,25.02734Ground StationActiveChinaWake Island#LaunchSite166.618,19.29Launch SiteActiveUnited StatesChangchun Station#GroundStation125.324,43.817Ground StationActiveChinaBiak#GroundStation136.1074,-1.19Ground StationActiveIndonesiaMaryland 1 Geolut#GroundStation-76.93,38.8503Ground StationActiveUnited StatesBaikonur Cosmodrome LC 67-21#LaunchPad63.705,45.9893Launch PadActiveKazakhstanJiuquan LA 2A#LaunchPad100.3165,41.3088Launch PadActiveChinaRiverside Teleport#GroundStation-117.087843,33.795862Ground StationActiveUnited StatesIrkutsk Radar#RadarStation103.259,52.877Radar StationActiveRussiaRAL Station 12m STDN RALS#GroundStation-1.31146389,51.572026Ground StationActiveUnited KingdomTehran Station#GroundStation51.408,35.78Ground StationActiveIranUchinoura 10m#GroundStation131.084654,31.255675Ground StationActiveJapanOnizuka Control Node xx1#GroundStation-122.028987,37.403778Ground StationInactiveUnited StatesSubmarine Launch Platform Barents Sea#LaunchSite34.2,69.5Launch SiteActiveRussiaMaryland (1) Geolut#GroundStation-76.93,38.8503Ground StationActiveUnited StatesPoker Flat - LC 2#LaunchPad-147.4857,65.1299Launch PadActiveUnited StatesNy-Alesund Station#GroundStation11.883535,78.927718Ground StationActiveNorwayAlcantara Launch Center MRL Pad#LaunchPad-44.3671,-2.3167Launch PadActiveBrazilSocorro GEODSS Cam2#OpticalTrackingStation-106.65962,33.81725Optical Tracking StationActiveUnited StatesWoomera Test Range LA 6A#LaunchPad136.4394,-31.074Launch PadActiveAustraliaERIS#GroundStation-88.263568,18.544696Ground StationActiveMexicoWhite Sands STDN WH3K#GroundStation-106.60855158,32.50046228Ground StationActiveUnited StatesNevada Test Site Area 26#LaunchSite-116.114,36.771Launch SiteActiveUnited StatesKapustin Yar LC 107 1b#LaunchPad46.298,48.5969Launch PadActiveRussiaJiuquan SLS 2#LaunchPad100.2983,40.9607Launch PadActiveChinaEsrange Station TTC (STDN KICS)#GroundStation21.060769,67.884232Ground StationActiveSwedenShcholkovo#GroundStation37.9576,55.9506Ground StationActiveRussiaDombarovsky Cosmodrome xx9#LaunchPad59.551097,50.972694Launch PadActiveRussiaEsrange Rocket Range#LaunchSite21.105,67.893Launch SiteActiveSwedenAlcantara Launch Center VLS Pad#LaunchPad-44.3675,-2.3184Launch PadActiveBrazilCasey Station#GroundStation110.52871,-66.28125Ground StationActiveAntarcticaNegev#LaunchSite34.9728,31.02335Launch SiteActiveIsraelDombarovsky Cosmodrome x25#LaunchPad59.524663,51.153297Launch PadActiveRussiaLannion STDN LANS#GroundStation-3.47,48.75141536Ground StationActiveFranceCape Canaveral AFS LC 30#LaunchPad-80.5803,28.4393Launch PadInactiveUnited StatesByalalu 32m#GroundStation77.36898,12.90314Ground StationActiveIndiaSeoul#GroundStation126.9997,37.5664Ground StationActiveSouth KoreaQuantico#GroundStation-77.3198,38.4912Ground StationActiveUnited StatesConcepcion#GroundStation-73.025036,-36.842772Ground StationActiveChilePlesetsk Cosmodrome LC 41-1#LaunchPad40.529,62.9405Launch PadDemolishedRussiaCape Canaveral AFS LC 9#LaunchPad-80.5594,28.4522Launch PadInactiveUnited StatesEOC Antenna 4#GroundStation139.35,36.0026Ground StationActiveJapanKwajalein STDN KMQF#RadarStation167.726622,8.72163539Radar StationActiveMarshall IslandsLuxembourg Teleport#GroundStation6.114,49.579Ground StationActiveLuxembourgNCTS Bahrain#GroundStation50.61,26.2073Ground StationActiveBahrainKapustin Yar LC 107 2h#LaunchPad46.2949,48.5617Launch PadActiveRussiaWallops Flight Facility#LaunchSite-75.48,37.85Launch SiteActiveUnited StatesCape Canaveral AFS LC 26B#LaunchPad-80.5712,28.4433Launch PadInactiveUnited StatesMerritt Island STDN MIMF#GroundStation-80.68279381,28.62594319Ground StationActiveUnited StatesSantiago Geolut#GroundStation-70.7,-33.489Ground StationActiveChileAhemad Station#GroundStation78.1042,30.1778Ground StationActiveIndiaWhite Sands STDN WHSF#GroundStation-106.36980742,32.35804211Ground StationActiveUnited StatesJeddah (2) Leolut#GroundStation39.1427,21.654833Ground StationActiveSaudi ArabiaDSS 65 Robledo STDN DS65#GroundStation-4.25069889,40.42720636Ground StationActiveSpainFirepond Laser#LaserStation-71.4923,42.61757Laser StationActiveUnited StatesPoker Flat Station PF1 STDN DX2S#GroundStation-147.4311625,65.11783389Ground StationActiveUnited StatesKapustin Yar - PL1#LaunchPad46.2621,48.4116Launch PadActiveRussiaAPL 10m#GroundStation-76.89825,39.169Ground StationActiveUnited StatesDSS 45 Tidbinbilla STDN DS45#GroundStation148.97768564,-35.39845769Ground StationActiveAustraliaKashi Ground Station#GroundStation75.929,39.505Ground StationActiveChinaCape Canaveral AFS LC 25#LaunchPad-80.575,28.431Launch PadInactiveUnited StatesCape Canaveral AFS SLC 36B STDN B36P#LaunchPad-80.54095408,28.46836775Launch PadDemolishedUnited StatesWallops Island STDN WL4F#GroundStation-75.511439,37.85636639Ground StationActiveUnited StatesGreen Bank Telescope 12m#GroundStation-79.83131,38.43724Ground StationActiveUnited StatesAlgiers Geolut#GroundStation3.381,36.7533Ground StationActiveAlgeriaNCTAMS PAC#GroundStation-157.995,21.52Ground StationActiveUnited StatesGlobus II#RadarStation31.1271,70.3671Radar StationActiveNorwayKapustin Yar xx1#LaunchPad46.318006,48.484051Launch PadActiveRussiaNenoksa Test Range#LaunchSite39.22,64.646Launch SiteActiveRussiaMSSC AEOS 3.7m#OpticalTrackingStation-156.2569,20.7081Optical Tracking StationActiveUnited StatesNanhai Station#GroundStation113.14,23.03Ground StationActiveChinaSilver Lake Space Fence#RadarStation-91.0211,33.145Radar StationActiveUnited StatesKourou Station STDN KRUP#GroundStation-52.80582497,5.25185486Ground StationActiveFrench GuianaSvobodny Cosmodrome xx9#LaunchPad128.3656,51.837Launch PadInactiveRussiaBaikonur Cosmodrome - LC 80-17#LaunchPad64.0198,46.0068Launch PadActiveKazakhstanOrbcomm St Johns A#GroundStation-109.554917,34.456282Ground StationActiveUnited StatesMSSC RAVEN#OpticalTrackingStation-156.25745,20.7085Optical Tracking StationActiveUnited StatesASF 10m#GroundStation-147.849467,64.859482Ground StationActiveUnited StatesSvobodny Cosmodrome - xx5#LaunchPad128.23218,51.80532Launch PadInactiveRussiaDombarovsky Cosmodrome - x30#LaunchPad59.85002,51.207054Launch PadActiveRussiaAtlanta STDN ATDS#GroundStation-84.10862994,33.93088417Ground StationActiveUnited StatesBaikonur Cosmodrome - xx2#LaunchPad63.462445,45.94176Launch PadActiveKazakhstanWallops Island (STDN WAPS)#GroundStation-75.4765225,37.92492556Ground StationActiveUnited StatesBlossom Point Tracking Facility#GroundStation-77.086,38.431Ground StationActiveUnited StatesCape Canaveral STDN CN2F#GroundStation-80.59056164,28.52887219Ground StationInactiveUnited StatesLackland AFB#GroundStation-98.590371,29.363209Ground StationActiveUnited StatesFranklin Station#GroundStation-74.5757,41.1167Ground StationActiveUnited StatesBaikonur Cosmodrome - LC 195#LaunchPad63.2127,45.783Launch PadActiveKazakhstanWallops Flight Facility - LA 5#LaunchPad-75.4681,37.8529Launch PadActiveUnited StatesYevpatoria North Station#GroundStation33.169,45.221Ground StationActiveUkraineCyberjaya Station#GroundStation101.6583,2.9348Ground StationActiveMalaysiaDombarovsky Cosmodrome x27#LaunchPad59.967627,51.168438Launch PadActiveRussiaHumacao Station#GroundStation-65.788,18.1494Ground StationActiveUnited StatesCombe Martin Geolut#GroundStation-4.047166,51.1675Ground StationActiveUnited KingdomDombarovsky Cosmodrome - x38#LaunchPad60.163782,51.338805Launch PadActiveRussiaMullach Sgr Radar Station#GroundStation-8.580436,57.806607Ground StationActiveUnited KingdomAtlanta STDN ATLS#GroundStation-84.10836667,33.93086667Ground StationActiveUnited StatesWestern Australian Receiver#RadarStation122.008,-28.327Radar StationActiveAustraliaProspect Harbor Naval Satellite Operations Station#GroundStation-68.013,44.404Ground StationActiveUnited StatesCape Town Leolut#GroundStation18.5,-33.88Ground StationActiveSouth AfricaLarge Millimeter Telescope#RadarStation-97.3149,18.9858Radar StationActiveMexicoAerospace Data Facility Southwest#GroundStation-106.6,32.5Ground StationActiveUnited StatesIbaraki Satellite Control Center#GroundStation140.373,36.532Ground StationActiveJapanCobra Dane Radar#RadarStation174.0914,52.7373Radar StationActiveUnited StatesKrona 30J6 Complex#OpticalTrackingStation41.226213,43.718337Optical Tracking StationActiveRussiaBaikonur Cosmodrome - xx1#LaunchPad63.462718,45.939593Launch PadActiveKazakhstanFairbanks STDN UL23#GroundStation-147.51806567,64.97240711Ground StationActiveUnited StatesBaikonur Cosmodrome - LC 90-20#LaunchPad62.9167,46.0855Launch PadActiveKazakhstanAPL 5m#GroundStation-76.89839,39.16821Ground StationActiveUnited StatesBaikonur Cosmodrome - LC 193#LaunchPad63.389,45.9532Launch PadActiveKazakhstanEagle Vision 1#GroundStation7.6,49.44Ground StationActiveGermanyTilla#LaunchSite73.29608,33.3961Launch SiteActivePakistanVandenberg AFB SLC 4E#LaunchPad-120.61059,34.632067Launch PadInactiveUnited StatesSingapore Leolut#GroundStation103.988,1.352Ground StationActiveSingaporeWallops Flight Facility LA 4 ML#LaunchPad-75.4698,37.851Launch PadActiveUnited StatesYamaguchi Station#GroundStation131.557,34.217Ground StationActiveJapanWhite Sands BRT STDN WHSJ#GroundStation-106.61196575,32.50628147Ground StationActiveUnited StatesHawaii Station STDN HAWS#GroundStation-155.663,19.01358372Ground StationActiveUnited StatesOrbcomm Curacao#GroundStation-69.1538,12.3814Ground StationActiveNetherlandsKiruna Station KIR-1 15m STDN KI2S#GroundStation20.96434169,67.85712517Ground StationActiveSwedenWhite Sands LC 38#LaunchPad-106.2796,32.4179Launch PadActiveUnited StatesHolloman#LaunchSite-106.07,32.88Launch SiteActiveUnited StatesBaikonur Cosmodrome LC 60-6#LaunchPad64.0161,46.0188Launch PadActiveKazakhstanXichang#LaunchSite102.029,28.246Launch SiteActiveChinaWeilheim 11m#GroundStation11.08538,47.88118Ground StationActiveGermanySyowa Station STDN SYOQ#GroundStation39.59015389,-69.00609644Ground StationActiveAntarcticaKorou SIGINT Station#GroundStation-52.7007,5.1664Ground StationActiveFrench GuianaGreenbelt Test BRT STDN BLTJ#GroundStation-76.83792783,39.00270353Ground StationActiveUnited StatesXichang LA 1#LaunchPad102.0292,28.2474Launch PadActiveChinaMopra Observatory#GroundStation149.0996,-31.2678Ground StationActiveAustraliaWhite Sands LC 32#LaunchPad-106.4069,32.4068Launch PadActiveUnited StatesJiamusi Station#GroundStation130.32,46.8Ground StationActiveChinaOrbcomm Rio de Janiero A#GroundStation-42.87275,-22.69619Ground StationActiveBrazilTokyo Institute of Technology#GroundStation139.68495,35.60084Ground StationActiveJapanAlcantara Launch Center - VLS Pad#LaunchPad-44.3675,-2.3184Launch PadActiveBrazilWhite Sands LC 33#LaunchPad-106.443,32.3396Launch PadActiveUnited StatesTeide Observatory#GroundStation-16.51,28.3Ground StationActiveSpainWoomera Test Range LA 9#LaunchPad136.4871,-30.9031Launch PadActiveAustraliaDombarovsky Cosmodrome - x27#LaunchPad59.967627,51.168438Launch PadActiveRussiaHammaguira Bacchus#LaunchPad-3.1241,30.8565Launch PadActiveAlgeriaUssuriysk Observatory#OpticalTrackingStation132.16583,43.69917Optical Tracking StationActiveRussiaBaikonur Cosmodrome - LC 191-66#LaunchPad63.1966,45.9698Launch PadActiveKazakhstanTTS STDN TT2S#GroundStation-68.59885831,76.51536442Ground StationActiveGreenland5N24 Argun Radar#RadarStation73.5721,45.808Radar StationActiveKazakhstanLibya Station#GroundStation13.236,32.34Ground StationActiveLibyaCanadian Forces Station Leitrim#GroundStation-75.5867,45.3377Ground StationActiveCanadaSemnan Launch Center - xx2#LaunchPad53.921,35.2347Launch PadActiveIranWallops Island STDN WPSS#GroundStation-75.47630453,37.92658986Ground StationActiveUnited StatesBiscarosse BLB#LaunchPad-1.262,44.3659Launch PadActiveFranceTelegraph Hill#GroundStation-14.3915,-7.9743Ground StationActiveUnited KingdomPoker Flat - LC 5#LaunchPad-147.4832,65.1292Launch PadActiveUnited StatesNaval SATCOM Facility Northwest#GroundStation-76.267222,36.559444Ground StationActiveUnited StatesVandenberg Air Force Base - SLC 4W#LaunchPad-120.6154,34.6331Launch PadInactiveUnited StatesKapustin Yar LC 107 2c#LaunchPad46.2949,48.5695Launch PadActiveRussiaCape Canaveral Air Force Station - SLC 36A (STDN A36P)#LaunchPad-80.53772211,28.47143831Launch PadDemolishedUnited StatesTelesat Calgary Teleport#GroundStation-114.016,51.053Ground StationActiveCanadaWallops Flight Facility - LA 2 HAD#LaunchPad-75.4826,37.8383Launch PadActiveUnited StatesEchoStar Orange Station#GroundStation-74.2203,40.784Ground StationActiveUnited StatesDSS 49 Parkes#GroundStation148.263524,-32.998278Ground StationActiveAustraliaPlesetsk Cosmodrome LC 133-1#LaunchPad40.8468,62.8868Launch PadActiveRussiaAPT Satellite Control Center#GroundStation114.188,22.453Ground StationActiveChinaTelesat Montreal Teleport#GroundStation-73.5504,45.5224Ground StationActiveCanadaWallops Flight Facility LA 2#LaunchPad-75.4834,37.8376Launch PadActiveUnited StatesMoron MOSS#OpticalTrackingStation-5.5884,37.1516Optical Tracking StationActiveSpainBaikonur Cosmodrome - LC 175-2#LaunchPad62.987,46.0512Launch PadActiveKazakhstanCape Canaveral AFS SLC 20#LaunchPad-80.5567,28.5122Launch PadActiveUnited StatesKiritimati Downrange Tracking Station#GroundStation-157.44821,2.04613Ground StationActiveKiribatiSentosa Station#GroundStation103.836,1.248Ground StationActiveSingaporePoint Mugu - LC 1#LaunchPad-119.1215,34.0996Launch PadActiveUnited StatesWhite Sands STDN WSGT#GroundStation-106.60854583,32.5013695Ground StationActiveUnited StatesKapustin Yar - xx6#LaunchPad45.8152,48.783061Launch PadActiveRussiaBrisbane Station#GroundStation153.1312,-27.5539Ground StationActiveAustraliaCape Canaveral Air Force Station - LC 14#LaunchPad-80.5471,28.4911Launch PadInactiveUnited StatesSouth Uist Missile Range#LaunchSite-7.4,57.36Launch SiteActiveUnited KingdomWallops Flight Facility LA 3B#LaunchPad-75.4725,37.8494Launch PadActiveUnited StatesBermuda STDN BDA3#GroundStation-64.65788833,32.35126753Ground StationInactiveBermudaEchoStar Monee Station#GroundStation-87.7764,41.4684Ground StationActiveUnited StatesPenteli Geolut#GroundStation23.883,38.0808Ground StationActiveGreeceDSS 43 Tidbinbilla STDN DS43#GroundStation148.98126731,-35.40242422Ground StationActiveAustraliaBaikonur Cosmodrome - LC 51#LaunchPad63.3409,45.9239Launch PadActiveKazakhstanSmolino A-35 Anti-missile Site#RadarStation36.482,55.35Radar StationActiveRussiaWallops Flight Facility - LA 1 AML#LaunchPad-75.4871,37.8352Launch PadActiveUnited StatesDombarovsky Cosmodrome x13#LaunchPad59.689541,51.030416Launch PadActiveRussiaBaikonur Cosmodrome LC 75#LaunchPad63.1983,45.9657Launch PadActiveKazakhstanGuiana Space Center - Diamant Pad#LaunchPad-52.7524,5.2325Launch PadInactiveFrench GuianaGilmore Creek STDN GLAS#GroundStation-147.51283867,64.97367197Ground StationActiveUnited StatesEik Station#GroundStation6.4675,58.5383Ground StationActiveNorwayGran Canaria Drop Zone#LaunchSite-15.3,27Launch SiteActiveSpainKashima Space Research Center 13m A#GroundStation140.66245,35.95629Ground StationActiveJapanAlaska 2 AK2 Leolut#GroundStation-147.5177,64.9735Ground StationActiveUnited StatesAnkara#GroundStation32.86,39.93Ground StationActiveTurkeyPlesetsk Cosmodrome - PU 11#LaunchPad40.4953,62.8978Launch PadActiveRussiaCamp Zama#GroundStation139.39804,35.50014Ground StationActiveJapanEagle Vision 4#GroundStation-80.8,33.92Ground StationActiveUnited StatesBaikonur Cosmodrome - LC 164#LaunchPad63.064,45.9445Launch PadActiveKazakhstanSantiago Station AGO 5 (STDN AG23)#GroundStation-70.66731169,-33.15179414Ground StationActiveChileGrimstad Ground Station#GroundStation8.35,58.33Ground StationActiveNorwayEsrange Station ETX (STDN KU1S)#GroundStation21.06565472,67.88955833Ground StationActiveSwedenSt Thomas STDN ST1F#GroundStation-64.97321647,18.35725333Ground StationActiveUnited StatesGuiana Space Center ZLV#LaunchPad-52.775,5.236Launch PadActiveFrench GuianaLongovilo Station#GroundStation-71.401,-33.956Ground StationActiveChileEsrange Station ESC#GroundStation21.0599183,67.8843522Ground StationActiveSwedenLivermore Station#GroundStation-121.799,37.7605Ground StationActiveUnited StatesYevpatoria RT-70#GroundStation33.187068,45.189096Ground StationActiveUkraineSemnan Launch Center#LaunchSite53.92,35.25Launch SiteActiveIranOrbcomm Ocilla A#GroundStation-83.199591,31.50119Ground StationActiveUnited StatesGuiana Space Center ELS#LaunchPad-52.8345,5.3047Launch PadActiveFrench GuianaDombarovsky Cosmodrome xx4#LaunchPad59.77451,50.775737Launch PadActiveRussiaTranquillon Peak STDN CALF#GroundStation-120.56157233,34.58273856Ground StationActiveUnited StatesNaval Radio Transmitter Facility#GroundStation14.44,37.117Ground StationActiveItalyCape Canaveral Air Force Station - LC 25#LaunchPad-80.575,28.431Launch PadInactiveUnited StatesGuiana Space Center#LaunchSite-52.77,5.23Launch SiteActiveFrench GuianaGreenbelt STDN GGAL#LaserStation-76.82747947,39.02026828Laser StationActiveUnited StatesCombe Martin Leolut#GroundStation-4.051,51.17Ground StationActiveUnited KingdomDombarovsky Cosmodrome x12#LaunchPad59.808673,51.022624Launch PadActiveRussiaSydney Station#GroundStation151.2115,-33.7172Ground StationActiveAustraliaBaikonur Cosmodrome LC 243#LaunchPad63.737,45.8549Launch PadActiveKazakhstanJSC Test BRT STDN JSCJ#GroundStation-95.09,29.56168961Ground StationActiveUnited StatesVandenberg AFB SLC 2E#LaunchPad-120.619201,34.751617Launch PadDemolishedUnited StatesGissar#OpticalTrackingStation68.6818,38.491Optical Tracking StationActiveTajikistanBrewster Station#GroundStation-119.692,48.147Ground StationActiveUnited StatesNanning Station#GroundStation108.37,22.82Ground StationActiveChinaTattnall Space Fence#RadarStation-81.926,32.0437Radar StationActiveUnited StatesKaneohe Omega Station#GroundStation-157.8319,21.4047Ground StationInactiveUnited StatesPlesetsk Tracking Station#GroundStation40.558672,62.9001Ground StationActiveRussiaBTA-6#OpticalTrackingStation41.440447,43.646825Optical Tracking StationActiveRussiaPoker Flat Station PF2 STDN DXAS#GroundStation-147.43350389,65.11792972Ground StationActiveUnited StatesVandenberg AFB SLC 10E#LaunchPad-120.6213,34.7626Launch PadInactiveUnited StatesMakaha Ridge#GroundStation-159.723,22.13Ground StationActiveUnited StatesGTS STDN GTSS#GroundStation144.85605225,13.61518911Ground StationActiveUnited StatesRambouillet Teleport#GroundStation1.7826,48.5494Ground StationActiveFranceDombarovsky Cosmodrome - xx8#LaunchPad60.52694,50.959329Launch PadActiveRussiaDombarovsky Cosmodrome - x28#LaunchPad59.635083,51.193164Launch PadActiveRussiaSocorro GEODSS Cam3#OpticalTrackingStation-106.65968,33.81703Optical Tracking StationActiveUnited StatesYakima Training Center#GroundStation-120.356544,46.68209Ground StationActiveUnited StatesVLBA Los Alamos#GroundStation-106.245597,35.775125Ground StationActiveUnited StatesDombarovsky Cosmodrome xx2#LaunchPad59.791895,50.681452Launch PadActiveRussiaGreenbelt#GroundStation-76.8265,39.0219Ground StationActiveUnited StatesSUPARCO Satellite Ground Station#GroundStation73.17674,33.51787Ground StationActivePakistanDombarovsky Cosmodrome x20#LaunchPad60.087307,51.096909Launch PadActiveRussiaWoomera Test Range - LA 5A#LaunchPad136.474,-30.9716Launch PadActiveAustraliaWeinan Station#GroundStation109.51,34.5Ground StationActiveChinaBaikonur Cosmodrome xx3#LaunchPad63.481448,45.945516Launch PadActiveKazakhstanKapustin Yar S#LaunchPad46.3175,48.4763Launch PadActiveRussiaSan Diego Space Fence#RadarStation-116.973,32.5774Radar StationActiveUnited StatesKalyazin Radio Astronomy Observatory#GroundStation37.9,57.222Ground StationActiveRussiaGAVRT STDN DS12#GroundStation-116.80544339,35.29993942Ground StationActiveUnited StatesXichang Satellite Launch Center - LA 1#LaunchPad102.0292,28.2474Launch PadActiveChinaKennedy Space Center LC 39B STDN B39P#LaunchPad-80.62084967,28.62716064Launch PadActiveUnited StatesXian#GroundStation109.494,34.445Ground StationActiveChinaSvobodny Cosmodrome - x11#LaunchPad128.373907,51.879783Launch PadInactiveRussiaOrlando Station#GroundStation-81.121,28.4251Ground StationActiveUnited StatesDombarovsky Cosmodrome - x47#LaunchPad59.92692,51.600688Launch PadActiveRussiaDiego Garcia GEODSS Cam1#OpticalTrackingStation72.45203,-7.41162Optical Tracking StationActiveUnited KingdomWoomera Test Range#LaunchSite136.5,-30.95Launch SiteActiveAustraliaCape Canaveral Air Force Station - LC 15#LaunchPad-80.5494,28.4963Launch PadInactiveUnited StatesCape Canaveral STDN CN5F#GroundStation-80.56341989,28.51702439Ground StationActiveUnited StatesQuicksburg Station#GroundStation-78.658,38.73Ground StationActiveUnited StatesMid-Atlantic Regional Spaceport - Launch Pad 0-B#LaunchPad-75.4913,37.8312Launch PadActiveUnited StatesStarfire Optical Range#OpticalTrackingStation-106.4639,34.9642Optical Tracking StationActiveUnited StatesCape Canaveral Air Force Station - LC 18A#LaunchPad-80.5623,28.4506Launch PadInactiveUnited StatesPoker Flat LC 1#LaunchPad-147.4879,65.1295Launch PadActiveUnited StatesCape Canaveral AFS SLC 46 STDN A46P#LaunchPad-80.52840256,28.45849161Launch PadInactiveUnited StatesKapustin Yar - LC 107 1a#LaunchPad46.298,48.5992Launch PadActiveRussiaGrand Bahama Island STDN GB2Y#GroundStation-78.29852533,26.62547128Ground StationActiveBahamasSvobodny Cosmodrome x11#LaunchPad128.373907,51.879783Launch PadInactiveRussiaEsrange Rocket Range - L#LaunchPad21.1062,67.8943Launch PadActiveSwedenEsrange Station Idun#GroundStation21.038,67.879Ground StationActiveSwedenSES ASTRA#GroundStation6.330278,49.694167Ground StationActiveLuxembourgYacolt Station#GroundStation-122.396,45.863Ground StationActiveUnited StatesLondon Inmarsat HQ#GroundStation-0.0865,51.5254Ground StationActiveUnited KingdomKiruna EISCAT Radar#RadarStation20.43395,67.86068Radar StationActiveSwedenGoose Bay Leolut#GroundStation-60.466,53.312666Ground StationActiveCanadaEOC Antenna 2#GroundStation139.34814,36.00353Ground StationActiveJapanEchoStar Spokane Station#GroundStation-117.551,47.592Ground StationActiveUnited StatesBatam Island Station#GroundStation103.9506,1.1131Ground StationActiveIndonesiaBaikonur Cosmodrome LC 175-2#LaunchPad62.987,46.0512Launch PadActiveKazakhstanBaikonur Cosmodrome LC 81-23#LaunchPad62.9785,46.074Launch PadActiveKazakhstanVandenberg Air Force Base - SLC 576-E#LaunchPad-120.6191,34.7396Launch PadActiveUnited StatesWallops Island STDN WL2S#GroundStation-75.46205786,37.94642969Ground StationActiveUnited StatesNCTAMS LANT#GroundStation-76.3088,36.9505Ground StationActiveUnited StatesWhite Sands - LC 94#LaunchPad-106.4589,34.2049Launch PadActiveUnited StatesEsrange Station ESC#GroundStation21.0599183,67.8843522Ground StationActiveSwedenHelios Station#GroundStation-15.63071,27.76343Ground StationActiveSpainGreen River Station#GroundStation-109.352,41.537Ground StationActiveUnited StatesGalenki 25m#GroundStation131.7581,44.0204Ground StationActiveRussiaCape Canaveral AFS LC 15#LaunchPad-80.5494,28.4963Launch PadInactiveUnited StatesSpitsbergen Leolut#GroundStation15.396,78.229Ground StationActiveNorwayPatrick AFB STDN RAML#LaserStation-80.60574442,28.22799675Laser StationInactiveUnited StatesSatish Dhawan Pad 2#LaunchPad80.2304,13.7199Launch PadActiveIndiaDombarovsky Cosmodrome x41#LaunchPad60.178331,51.50362Launch PadActiveRussiaRoi-Namur Super RADOT#OpticalTrackingStation167.476576,9.393608Optical Tracking StationActiveMarshall IslandsSalto di Quirra#LaunchSite9.633,39.5273Launch SiteActiveItalyWhite Sands LC 36#LaunchPad-106.322,32.417Launch PadActiveUnited StatesZimmerwald Observatory#OpticalTrackingStation7.46522,46.877229Optical Tracking StationActiveSwitzerlandDSS 55 Robledo STDN DS55#GroundStation-4.25263331,40.42429592Ground StationActiveSpainSemnan Launch Center xx3#LaunchPad53.952,35.239Launch PadActiveIranDominion Observatory#GroundStation-119.6203,49.3209Ground StationActiveCanadaHawaii 1 HI1 Leolut#GroundStation-157.9963,21.520666Ground StationActiveUnited StatesDongara Station AUWA01 STDN USPS#GroundStation115.34867764,-29.04577217Ground StationActiveAustraliaWoomera Test Range - LA 8#LaunchPad136.4629,-31.0328Launch PadActiveAustraliaYap Station#GroundStation138.0772,9.4909Ground StationActiveMicronesiaAscension Island STDN ASCQ#GroundStation-14.4025,-7.90663519Ground StationActiveUnited KingdomWhite Sands - LC 38#LaunchPad-106.2796,32.4179Launch PadActiveUnited StatesBangalore STDN BANF#GroundStation77.51,13.03Ground StationActiveIndiaAMISR Poker Flat#RadarStation-147.4707,65.1298Radar StationActiveUnited StatesWilkes-Barre Station#GroundStation-75.88268,41.24499Ground StationActiveUnited StatesBangkok 2 Leolut#GroundStation100.5432,13.717166Ground StationActiveThailandTangua Station#GroundStation-42.7837,-22.7468Ground StationActiveBrazilTanegashima Osaki Range#LaunchPad130.970274,30.39953Launch PadInactiveJapanAlcantara Launch Center - HAD Pad#LaunchPad-44.377,-2.3652Launch PadActiveBrazilHolloman A#LaunchPad-106.0714,32.8954Launch PadActiveUnited StatesKennedy Space Center LC 39A STDN A39P#LaunchPad-80.60411653,28.60827486Launch PadActiveUnited StatesKoganei xx2#GroundStation139.488122,35.710559Ground StationActiveJapanAlcantara Launch Center#LaunchSite-44.367,-2.317Launch SiteActiveBrazilOrbcomm Rio de Janiero B#GroundStation-42.87227,-22.69679Ground StationActiveBrazilUchinoura 20m#GroundStation131.080567,31.256784Ground StationActiveJapanChurchill Leolut#GroundStation-93.994,58.759Ground StationActiveCanadaPoker Flat - LC 3#LaunchPad-147.4851,65.1299Launch PadActiveUnited StatesTonghae Satellite Launching Ground#LaunchSite129.665994,40.855652Launch SiteActiveNorth KoreaCape Canaveral Air Force Station - LC 2#LaunchPad-80.5369,28.4657Launch PadInactiveUnited StatesDryden STDN DFRS#GroundStation-117.88739406,34.94979075Ground StationActiveUnited StatesMiyun Ground Station#GroundStation116.8589,40.4514Ground StationActiveChinaGRGT STDN GW3S#GroundStation144.84087494,13.58730961Ground StationActiveUnited StatesKapustin Yar - LC 107 2g#LaunchPad46.2958,48.5616Launch PadActiveRussiaMasuda USB F2#GroundStation131.01771,30.5555Ground StationActiveJapanBaikonur Cosmodrome LC 67-22#LaunchPad63.7073,45.9895Launch PadActiveKazakhstanUchinoura Space Center, 34m#GroundStation131.078495,31.254462Ground StationActiveJapanFort Buckner#GroundStation127.776,26.296Ground StationActiveJapanVandenberg Air Force Base - SLC 6 (STDN WT6P)#LaunchPad-120.62609183,34.58163228Launch PadActiveUnited StatesBear Lake RT-64#GroundStation37.951896,55.868035Ground StationActiveRussiaAberporth#LaunchSite-4.5566,52.1393Launch SiteActiveUnited KingdomMSSC 1.6m#OpticalTrackingStation-156.2574,20.70837Optical Tracking StationActiveUnited StatesWallops Island STDN WD3F#GroundStation-75.51143536,37.85636525Ground StationActiveUnited StatesKapustin Yar - LC 107 1b#LaunchPad46.298,48.5969Launch PadActiveRussiaDombarovsky Cosmodrome x11#LaunchPad59.567713,51.020939Launch PadActiveRussiaVandenberg STDN VDBF#GroundStation-120.53610972,34.77487769Ground StationActiveUnited StatesYatharagga Satellite Station#GroundStation115.3543,-29.0452Ground StationActiveAustraliaPlesetsk Cosmodrome - LC 133-3#LaunchPad40.8504,62.887Launch PadActiveRussiaPoker Flat - LC 1#LaunchPad-147.4879,65.1295Launch PadActiveUnited StatesRecife Geolut#GroundStation-34.925,-8.1383Ground StationActiveBrazilMSSC MOTIF#OpticalTrackingStation-156.2578,20.70852Optical Tracking StationActiveUnited StatesDombarovsky Cosmodrome - x43#LaunchPad59.801475,51.526422Launch PadActiveRussiaKeelung 2 Leolut#GroundStation121.7573,25.135333Ground StationActiveTaiwanTCSB#GroundStation-0.90642519,51.1178738Ground StationActiveUnited KingdomLandstuhl SATCOM Terminal#GroundStation7.534,49.402Ground StationActiveGermanyHelsinki Teleport#GroundStation24.921667,60.206389Ground StationActiveFinlandWallops Flight Facility LA 2 RAG#LaunchPad-75.4823,37.8385Launch PadActiveUnited StatesSantiago Station AGO 6#GroundStation-70.6701611,-33.1506778Ground StationActiveChileDirecTV Los Angeles Broadcast Center (LABC)#GroundStation-118.425,33.9827Ground StationActiveUnited StatesSan Nicolas Island STDN SN3F#GroundStation-119.52139117,33.24839275Ground StationActiveUnited StatesDiego Garcia GEODSS Cam2#OpticalTrackingStation72.45244,-7.41163Optical Tracking StationActiveUnited KingdomSagamihara Campus#GroundStation139.395276,35.55831Ground StationActiveJapanEsrange Rocket Range - C#LaunchPad21.1029,67.8931Launch PadActiveSwedenHolloman AFB STDN HOLF#GroundStation-106.09916956,32.90146386Ground StationActiveUnited StatesBarreira do Inferno Launch Center#LaunchSite-35.1613,-5.9236Launch SiteActiveBrazilSocorro GEODSS Cam1#OpticalTrackingStation-106.66009,33.81727Optical Tracking StationActiveUnited StatesBiscarosse BP#LaunchPad-1.2396,44.3755Launch PadActiveFranceDongara Station AUWA02#GroundStation115.3494,-29.0454Ground StationActiveAustraliaMaiquetia (2) Leolut#GroundStation-66.9865,10.599Ground StationPlannedVenezuelaOrbcomm Kitaura#GroundStation140.31,36.05Ground StationActiveJapanHammaguira - Beatrice#LaunchPad-3.0851,30.8601Launch PadActiveAlgeriaArbuckle Station#GroundStation-122.1481,38.9383Ground StationActiveUnited StatesDombarovsky Cosmodrome - x17#LaunchPad59.748227,51.079713Launch PadActiveRussiaVandenberg STDN CALT#GroundStation-120.58144669,34.6658445Ground StationActiveUnited StatesAguimes#GroundStation-15.443,27.88Ground StationActiveSpainWallops Island LEO-T STDN LE2S#GroundStation-75.47613917,37.92352944Ground StationActiveUnited StatesCat House Phased-array Radar#RadarStation37.297,55.231Radar StationActiveRussiaEsrange Rocket Range N#LaunchPad21.1064,67.8933Launch PadActiveSwedenMasuda USB F1#GroundStation131.01494,30.55581Ground StationActiveJapanTarawa Station#GroundStation173.1558,1.3645Ground StationInactiveKiribatiDiyarbakir Radar#RadarStation39.9932,37.90476Radar StationInactiveTurkeyMalindi Station STDN KENS#GroundStation40.194505,-2.9955575Ground StationActiveKenyaBiscarosse#LaunchSite-1.25,44.32Launch SiteActiveFranceOrbcomm Kijal B#GroundStation103.47409,4.34818Ground StationActiveMalaysiaGreenbelt STDN BLTD#GroundStation-76.84276675,38.9984475Ground StationInactiveUnited StatesBaikonur Cosmodrome LC 106#LaunchPad63.4971,45.9511Launch PadActiveKazakhstanPune Earth Station#GroundStation73.8657,18.6041Ground StationActiveIndiaBaikonur Cosmodrome LC 175-59#LaunchPad62.9862,46.0525Launch PadActiveKazakhstanAflenz Teleport#GroundStation15.29175,47.55456Ground StationActiveAustriaVandenberg Air Force Base - SLC 4E#LaunchPad-120.61059,34.632067Launch PadInactiveUnited StatesWoomera Test Range LA 6B#LaunchPad136.445,-31.0792Launch PadActiveAustraliaYevpatoria South Station#GroundStation33.253128,45.170314Ground StationActiveUkraineESRIN Frascati#GroundStation12.67585,41.8275Ground StationActiveItalyKwajalein Drop Zone#LaunchSite167.7,7.65Launch SiteActiveMarshall IslandsKapustin Yar xx7#LaunchPad45.716196,48.812023Launch PadActiveRussiaCape Canaveral AFS LC 19#LaunchPad-80.5542,28.5068Launch PadInactiveUnited StatesVandenberg Air Force Base - SLC 10N#LaunchPad-120.6227,34.7663Launch PadInactiveUnited StatesAMISR Resolute Bay#RadarStation-94.90624,74.72941Radar StationActiveCanadaEuropean Direct Access Facility#GroundStation11.2789,48.0862Ground StationActiveGermanySwakopmund Station#GroundStation14.547462,-22.574087Ground StationActiveNamibiaGreen River#LaunchSite-110.076,38.942Launch SiteActiveUnited StatesEmeq Haela Station#GroundStation34.9942,31.6833Ground StationActiveIsraelBITF 11m#GroundStation166.1504,-78.1296Ground StationActiveAntarcticaSouth Point Station USHI01 STDN USHS#GroundStation-155.66330125,19.0139045Ground StationActiveUnited StatesHammaguira#LaunchSite-3.06,30.88Launch SiteActiveAlgeriaKapustin Yar - V2#LaunchPad45.9074,48.5709Launch PadActiveRussiaKingston#OpticalTrackingStation-76.4675,44.231Optical Tracking StationActiveCanadaDombarovsky Cosmodrome#LaunchSite60,51Launch SiteActiveRussiaKiruna Station 15m (STDN KI2S)#GroundStation20.96434169,67.85712517Ground StationActiveSwedenSanta Ynez Peak STDN SNYC#OpticalTrackingStation-119.98584869,34.53031086Optical Tracking StationActiveUnited StatesMumbai Station#GroundStation72.8306,18.9345Ground StationActiveIndiaDombarovsky Cosmodrome - x19#LaunchPad59.844333,51.093509Launch PadActiveRussiaBaikonur Cosmodrome - LC 200-40#LaunchPad63.0379,46.0364Launch PadActiveKazakhstanSatish Dhawan#LaunchSite80.23,13.73Launch SiteActiveIndiaDombarovsky Cosmodrome x17#LaunchPad59.748227,51.079713Launch PadActiveRussiaBarking Sands LC 10#LaunchPad-159.7816,22.0569Launch PadActiveUnited StatesDombarovsky Cosmodrome x22#LaunchPad59.634472,51.11475Launch PadActiveRussiaLakhadaria Station#GroundStation3.6057,36.564Ground StationActiveAlgeriaMaidanak#OpticalTrackingStation66.89641,38.67332Optical Tracking StationActiveUzbekistanNairobi#GroundStation36.82,-1.28Ground StationActiveKenyaCape Canaveral Air Force Station - SLC 17B (STDN B17P)#LaunchPad-80.56564944,28.44579042Launch PadActiveUnited StatesEagle River Earth Station#GroundStation-149.4475,61.2995Ground StationActiveUnited StatesOklahoma Spaceport#LaunchSite-99.2,35.34Launch SitePlannedUnited StatesOsan AB#GroundStation127.03166,37.09433Ground StationActiveSouth KoreaKauai STDN HAW3#GroundStation-159.66515503,22.12627256Ground StationActiveUnited StatesMagdalena Ridge Observatory#OpticalTrackingStation-107.1894,33.98486Optical Tracking StationActiveUnited StatesCape Canaveral AFS LC 5#LaunchPad-80.5733,28.4394Launch PadInactiveUnited StatesNaval Reserve Center Station#GroundStation-121.347,37.945Ground StationInactiveUnited StatesEsrange Rocket Range - A#LaunchPad21.1018,67.8931Launch PadActiveSwedenSemnan Launch Center#LaunchSite53.92,35.25Launch SiteActiveIranAdelaide Satellite Facility#GroundStation138.572,-34.8627Ground StationActiveAustraliaDombarovsky Cosmodrome - x45#LaunchPad59.956989,51.558712Launch PadActiveRussiaAlcantara Launch Center HAD Pad#LaunchPad-44.377,-2.3652Launch PadActiveBrazilKolonicke#OpticalTrackingStation22.273858,48.935001Optical Tracking StationActiveSlovakiaAndoya Rocket Range#LaunchSite16.021,69.294Launch SiteActiveNorwayEsrange Rocket Range - MRL#LaunchPad21.103,67.8934Launch PadActiveSwedenGiant Metrewave Radio Telescope#GroundStation74.05,19.09Ground StationActiveIndiaEsrange Station ESTC (STDN KU2S)#GroundStation21.06044833,67.8831825Ground StationActiveSwedenPenteli Leolut#GroundStation23.883,38.080833Ground StationActiveGreeceHeimenschwand#GroundStation7.716108,46.831336Ground StationActiveSwitzerlandWhite Sands LC 35#LaunchPad-106.3422,32.4041Launch PadActiveUnited StatesPlesetsk Cosmodrome LC 132-2#LaunchPad40.8722,62.8834Launch PadActiveRussiaIOS STDN SEYS#GroundStation55.47782053,-4.67174811Ground StationInactiveSeychellesDombarovsky Cosmodrome x38#LaunchPad60.163782,51.338805Launch PadActiveRussiaHartebeesthoek STDN HARL#LaserStation27.68617419,-25.88970925Laser StationActiveSouth AfricaGilmore Creek STDN GLCS#GroundStation-147.50477836,64.97314211Ground StationActiveUnited StatesWeilheim#GroundStation11.078325,47.881242Ground StationInactiveGermanyWhite Sands SULF#LaunchPad-106.7364,33.7212Launch PadActiveUnited StatesCape Canaveral AFS LC 2#LaunchPad-80.5369,28.4657Launch PadInactiveUnited StatesTaiyuan North Pad#LaunchPad111.608381,38.848552Launch PadActiveChinaKapustin Yar - START R12#LaunchPad46.298,48.5807Launch PadActiveRussiaHolloman - NATIV#LaunchPad-106.0753,32.8866Launch PadActiveUnited StatesMakassar Leolut#GroundStation119.55,-5.066666Ground StationPlannedIndonesiaWellington Leolut#GroundStation175.5045,-41.152Ground StationActiveNew ZealandHartRAO#GroundStation27.685393,-25.889752Ground StationActiveSouth AfricaAbu Dhabi Geolut#GroundStation54.448,24.4312Ground StationActiveUnited Arab EmiratesKapustin Yar - xx2#LaunchPad46.297833,48.539973Launch PadActiveRussiaKapustin Yar xx4#LaunchPad46.299018,48.615791Launch PadActiveRussiaAlice Springs Transmitter#RadarStation134.4479,-22.9676Radar StationActiveAustraliaBaikonur Cosmodrome - LC 45-1#LaunchPad63.655387,45.940067Launch PadActiveKazakhstanBaikonur Cosmodrome LC 241#LaunchPad63.4558,45.8583Launch PadActiveKazakhstanPillar Point STDN PPTQ#GroundStation-122.49971472,37.49781692Ground StationActiveUnited StatesGalliot Station STDN KRUS#GroundStation-52.639872,5.098848Ground StationActiveFrench GuianaCape Canaveral AFS SLC 37B STDN B37P#LaunchPad-80.56445806,28.53121944Launch PadActiveUnited StatesNERC Satellite Receiving Station#GroundStation-2.980112,56.458105Ground StationActiveUnited KingdomWoomera Test Range - MRL#LaunchPad136.5332,-30.9573Launch PadActiveAustraliaBeijing (1) Leolut#GroundStation116.42,39.908Ground StationActiveChinaSemnan Launch Center - xx1#LaunchPad53.896,35.222Launch PadActiveIranGuiana Space Center Diamant Pad#LaunchPad-52.7524,5.2325Launch PadInactiveFrench GuianaMcMurdo STDN MC1S#GroundStation166.66708233,-77.8391295Ground StationActiveAntarcticaBangkok (1) Leolut#GroundStation100.5433,13.717166Ground StationActiveThailandMid-Atlantic Regional Spaceport 0-A#LaunchPad-75.4882,37.8338Launch PadActiveUnited StatesWhite Sands - LC 35#LaunchPad-106.3422,32.4041Launch PadActiveUnited StatesByalalu 18m#GroundStation77.36882,12.90042Ground StationActiveIndiaNew Norcia DSA 1#GroundStation116.1915,-31.048225Ground StationActiveAustraliaSvobodny Cosmodrome xx2#LaunchPad128.4085,51.7734Launch PadInactiveRussiaDombarovsky Cosmodrome x46#LaunchPad60.082438,51.588487Launch PadActiveRussiaWoomera Test Range - LA 3#LaunchPad136.5191,-30.93Launch PadActiveAustraliaJiuquan Satellite Launch Center - SLS#LaunchPad100.2915,40.958Launch PadActiveChinaUchinoura Space Center - Mu Pad#LaunchPad131.08223,31.251028Launch PadActiveJapanUS Naval Observatory#GroundStation-77.067,38.921Ground StationActiveUnited StatesNenoksa Test Range#LaunchSite39.22,64.646Launch SiteActiveRussiaVandenberg AFB SLC 10N#LaunchPad-120.6227,34.7663Launch PadInactiveUnited StatesHawkinsville Space Fence#RadarStation-83.5361,32.2889Radar StationActiveUnited StatesPoint Mugu - LC 2#LaunchPad-119.121,34.0992Launch PadActiveUnited StatesBaikonur Cosmodrome - LC 131#LaunchPad62.9562,46.0716Launch PadActiveKazakhstanDubai#GroundStation55.267,25.267Ground StationActiveUnited Arab EmiratesKarachi Station#GroundStation67.03,24.89Ground StationActivePakistanHartebeesthoek Europ Star#GroundStation27.70793,-25.88549Ground StationActiveSouth AfricaRiyadh SLR#LaserStation46.40037,24.91067Laser StationActiveSaudi ArabiaSvobodny Cosmodrome#LaunchSite128.4,51.8Launch SiteInactiveRussiaJeddah 2 Leolut#GroundStation39.1427,21.654833Ground StationActiveSaudi ArabiaTanum Teleport#GroundStation11.377,58.704Ground StationInactiveSwedenWoomera Test Range LA 5A#LaunchPad136.474,-30.9716Launch PadActiveAustraliaMonument Peak STDN MNPL#LaserStation-116.42267108,32.89173831Laser StationActiveUnited StatesFort Greely#LaunchSite-145.73,63.95Launch SiteActiveUnited StatesMelbourne Station#GroundStation-80.63638,28.08647Ground StationActiveUnited StatesChantilly STDN CHAS#GroundStation-77.44216667,38.89033333Ground StationInactiveUnited StatesJAXA Maspalomas#GroundStation-15.6348,27.76505Ground StationActiveSpainRoi-Namur Island#LaunchSite167.4652,9.4012Launch SiteActiveMarshall IslandsMoscow Teleport#GroundStation37.626,55.843Ground StationActiveRussiaCape Canaveral Air Force Station - LC 19#LaunchPad-80.5542,28.5068Launch PadInactiveUnited StatesALMA#GroundStation-67.755,-23.028Ground StationPlannedChileCape Canaveral STDN CN4F#GroundStation-80.58311147,28.46316792Ground StationActiveUnited StatesVLBA Owens Valley#GroundStation-118.277047,37.231653Ground StationActiveUnited StatesTTS STDN TTSS#GroundStation-68.59997228,76.51593456Ground StationActiveGreenlandPerth International Telecom Centre#GroundStation115.88785,-31.80485Ground StationActiveAustraliaAlamo Peak STDN ALAY#GroundStation-105.81237947,32.87253311Ground StationActiveUnited StatesPunta Arenas Leolut#GroundStation-70.847,-53.006Ground StationActiveChileCape Canaveral Air Force Station - LC 16#LaunchPad-80.5518,28.5016Launch PadInactiveUnited StatesSvobodny Cosmodrome - xx8#LaunchPad128.2764,51.8357Launch PadInactiveRussiaNorman Station#GroundStation-97.5658,35.1798Ground StationActiveUnited StatesGreen River - Pad 2#LaunchPad-110.0753,38.9413Launch PadActiveUnited StatesEsrange Station SfinX#GroundStation21.0525247,67.8882281Ground StationActiveSwedenHTSB#GroundStation-158.262297,21.5689783Ground StationActiveUnited StatesBaikonur Cosmodrome - LC 106#LaunchPad63.4971,45.9511Launch PadActiveKazakhstanGuam 2 GU2 Leolut#GroundStation144.9392,13.578333Ground StationActiveUnited StatesWallops Island STDN WPDA#GroundStation-75.47495275,37.92737297Ground StationActiveUnited StatesGuiana Space Center ZL3 STDN KR3P#LaunchPad-52.75178147,5.24036314Launch PadActiveFrench GuianaWallops Flight Facility LA 3#LaunchPad-75.4725,37.8506Launch PadActiveUnited StatesMt Hopkins STDN HOPL#LaserStation-110.87806108,31.68424706Laser StationInactiveUnited StatesDSS 24 Goldstone STDN DS24#GroundStation-116.87479442,35.33989283Ground StationActiveUnited StatesWellington 2 Geolut#GroundStation175.5045,-41.152Ground StationActiveNew ZealandStaten Island Teleport#GroundStation-74.1784,40.6028Ground StationActiveUnited StatesThornton Station#GroundStation-104.9839,39.9158Ground StationActiveUnited StatesToulouse MultiMission Station#GroundStation1.487456,43.554442Ground StationActiveFranceAustralia Telescope Compact Array#GroundStation149.565,-30.313Ground StationActiveAustraliaSatish Dhawan Space Centre - Pad 1#LaunchPad80.2346,13.7334Launch PadActiveIndiaUchinoura Space Center, 10m#GroundStation131.084654,31.255675Ground StationActiveJapanWallops Island STDN WL4S#GroundStation-75.46059947,37.94631331Ground StationActiveUnited StatesNanshan Station#GroundStation87.17837,43.47153Ground StationActiveChinaWhite Sands STDN WH6K#GroundStation-106.60923475,32.50146197Ground StationActiveUnited StatesTaiyuan Satellite Launch Center - North Pad#LaunchPad111.608381,38.848552Launch PadActiveChinaEareckson#LaunchSite174.07,52.72Launch SiteActiveUnited StatesHartebeesthoek 11m#GroundStation27.70692,-25.8855Ground StationActiveSouth AfricaSvobodny Cosmodrome xx5#LaunchPad128.23218,51.80532Launch PadInactiveRussiaPoker Flat STDN PFTQ#GroundStation-147.46329083,65.11679308Ground StationActiveUnited StatesStockholm Teleport#GroundStation18.083866,59.211779Ground StationActiveSwedenDombarovsky Cosmodrome - x39#LaunchPad60.472701,51.346817Launch PadActiveRussiaKashima Space Research Center 11m#GroundStation140.65745,35.95558Ground StationActiveJapanCape Canaveral Air Force Station - LC 26A#LaunchPad-80.5705,28.4446Launch PadInactiveUnited StatesSatish Dhawan Space Centre - Pad 2#LaunchPad80.2304,13.7199Launch PadActiveIndiaDombarovsky Cosmodrome - xx4#LaunchPad59.77451,50.775737Launch PadActiveRussiaWhite Sands - LC 37#LaunchPad-106.2911,32.4155Launch PadActiveUnited StatesSatish Dhawan Space Centre - Sounding Rocket Pad#LaunchPad80.2404,13.759Launch PadActiveIndiaBaikonur Cosmodrome LC 107#LaunchPad63.81,46.046Launch PadActiveKazakhstanBaikonur Cosmodrome LC 131#LaunchPad62.9562,46.0716Launch PadActiveKazakhstanDSS 46 Tidbinbilla STDN DS46#GroundStation148.98308169,-35.40501064Ground StationInactiveAustraliaHammaguira - Bacchus#LaunchPad-3.1241,30.8565Launch PadActiveAlgeriaVandenberg AFB SLC 8#LaunchPad-120.6324,34.5762Launch PadActiveUnited StatesHong Kong 1 Leolut#GroundStation114.1445,22.275833Ground StationActiveChinaSheshan Station#GroundStation121.1995,31.0992Ground StationActiveChinaMaiquetia 1 Leolut#GroundStation-66.982,10.598Ground StationPlannedVenezuelaLatefia#GroundStation44.2079,33.7224Ground StationActiveIraqComcast Los Angeles Station#GroundStation-118.4566,34.0312Ground StationActiveUnited StatesBaikonur Cosmodrome - LC 163#LaunchPad63.172,46.002Launch PadActiveKazakhstanEdwards AFB STDN EAFF#GroundStation-117.91155094,34.96065983Ground StationActiveUnited StatesDSS 26 Goldstone STDN D26D#GroundStation-116.8730165,35.33568922Ground StationActiveUnited StatesAscension Island STDN AS2Q#GroundStation-14.40095086,-7.97280625Ground StationActiveUnited KingdomWallops Flight Facility LA 2 MLS#LaunchPad-75.4835,37.8375Launch PadActiveUnited StatesFlorida 2 (FL2) Leolut#GroundStation-80.3838,25.616333Ground StationActiveUnited StatesDombarovsky Cosmodrome x26#LaunchPad59.74824,51.154839Launch PadActiveRussiaPrince Albert xx2#GroundStation-105.92615,53.21206Ground StationActiveCanadaWhite Sands BRT STDN WH2J#GroundStation-106.61196575,32.50628147Ground StationActiveUnited StatesMaryland (LSE) Leolut#GroundStation-76.93,38.850333Ground StationActiveUnited StatesMaiquetia Geolut#GroundStation-66.982,10.598Ground StationPlannedVenezuelaSpace Surveillance Telescope#OpticalTrackingStation-106.3644,33.7395Optical Tracking StationActiveUnited StatesSintra Station#GroundStation-9.2817,38.8692Ground StationActivePortugalKapustin Yar xx2#LaunchPad46.297833,48.539973Launch PadActiveRussiaERMEXS#GroundStation-99.12879,19.32263Ground StationActiveMexicoAerospace Data Facility East#GroundStation-77.1583,38.7361Ground StationActiveUnited StatesHammaguira Brigitte#LaunchPad-3.0357,30.8935Launch PadActiveAlgeriaSvobodny Cosmodrome - x12#LaunchPad128.252,51.8818Launch PadInactiveRussiaCalifornia 1 (CA1) Leolut#GroundStation-120.5515,34.6625Ground StationActiveUnited StatesOrbcomm Almaty B#GroundStation76.78226,44.49652Ground StationActiveKazakhstanAuckland Station#GroundStation174.6959,-36.7482Ground StationActiveNew ZealandTVB City#GroundStation114.2723,22.2778Ground StationActiveChinaTaejon#GroundStation127.4333,36.3269Ground StationActiveSouth KoreaWhite Sands LC 37#LaunchPad-106.2911,32.4155Launch PadActiveUnited StatesWhite Sands STDN WHSS#GroundStation-106.60855189,32.50026978Ground StationActiveUnited StatesSondrestrom Rocket Range#LaunchSite-50.6,67.024Launch SiteActiveGreenlandKapustin Yar SAM#LaunchPad45.7346,48.8055Launch PadActiveRussiaKapustin Yar - xx5#LaunchPad45.781879,48.781927Launch PadActiveRussiaWhite Sands STDN STSS#GroundStation-106.61209906,32.54171675Ground StationActiveUnited StatesBaikonur Cosmodrome LC 110R#LaunchPad63.3102,45.9622Launch PadActiveKazakhstanKitab#OpticalTrackingStation66.8863,39.1337Optical Tracking StationActiveUzbekistanAPL STDN MDLS#GroundStation-76.89877778,39.16736111Ground StationActiveUnited StatesBerkeley STDN BRKS#GroundStation-122.24278381,37.87937658Ground StationActiveUnited StatesTorrejon Air Base xx1#GroundStation-3.4469,40.4805Ground StationActiveSpainVandenberg Air Force Base - SLC 10W#LaunchPad-120.6244,34.7636Launch PadInactiveUnited StatesMaryland Point#GroundStation-77.23068,38.3742Ground StationActiveUnited StatesEsrange Station TTC STDN KICS#GroundStation21.060769,67.884232Ground StationActiveSwedenGreen River Pad 3#LaunchPad-110.0741,38.9426Launch PadActiveUnited StatesTanegashima Space Center - Yoshinobu LC, Pad 1#LaunchPad130.977582,30.400975Launch PadActiveJapanJPL#GroundStation-118.1726,34.2031Ground StationActiveUnited StatesBITF 7m#GroundStation166.1504,-78.1296Ground StationActiveAntarcticaGRGT STDN GWMK#GroundStation144.8409295,13.58801786Ground StationActiveUnited StatesCape Cod AFS PAVE PAWS#RadarStation-70.5386,41.7524Radar StationActiveUnited StatesKronogard#LaunchSite19.32,66.3922Launch SiteInactiveSwedenTTSA#GroundStation-68.5956028,76.5151944Ground StationActiveGreenlandEagle Vision 5#GroundStation-157.92,21.32Ground StationActiveUnited StatesAlcantara Ground Station#GroundStation-44.404167,-2.338333Ground StationActiveBrazilRAL Station 12m#GroundStation-1.31268,51.57215Ground StationActiveUnited KingdomOttawa Leolut#GroundStation-75.6745,45.328666Ground StationActiveCanadaCape Canaveral Air Force Station - SLC 36B (STDN B36P)#LaunchPad-80.54095408,28.46836775Launch PadDemolishedUnited StatesCocos Island STDN COCS#GroundStation96.85,-12.2Ground StationActiveAustraliaQingdao Station#GroundStation120.383,36.066Ground StationActiveChinaWoomera Test Range LA 8#LaunchPad136.4629,-31.0328Launch PadActiveAustraliaTutuila BRT STDN AM2J#GroundStation-170.71941667,-14.33144444Ground StationActiveUnited StatesAlcantara Launch Center - UL Pad#LaunchPad-44.367,-2.316Launch PadActiveBrazilOverberg Earth Station 10m#GroundStation20.226,-34.616Ground StationActiveSouth AfricaKapustin Yar - LC 107 2a#LaunchPad46.2949,48.5609Launch PadActiveRussiaBatelco Teleport#GroundStation50.6114,26.0714Ground StationActiveBahrainMcMurdo STDN MCMS#GroundStation166.4,-77.8Ground StationActiveAntarcticaBarking Sands - LC 14#LaunchPad-159.7788,22.058Launch PadActiveUnited StatesGreenbelt Geolut#GroundStation-76.840666,38.999Ground StationActiveUnited StatesEsrange Rocket Range A#LaunchPad21.1018,67.8931Launch PadActiveSwedenOrbcomm San Luis A#GroundStation-65.18131,-33.8374Ground StationActiveArgentinaStanley Earth Station#GroundStation114.221,22.197Ground StationActiveChinaPARTNeR STDN DS61#GroundStation-4.24892803,40.42874444Ground StationActiveSpainKennedy Space Center - LC 39B (STDN B39P)#LaunchPad-80.62084967,28.62716064Launch PadActiveUnited StatesDoral Station#GroundStation-80.3525,25.81Ground StationActiveUnited StatesCape D-Aguilar Station#GroundStation114.2492,22.2167Ground StationActiveChinaDombarovsky Cosmodrome x29#LaunchPad60.765442,51.201923Launch PadActiveRussiaChilbolton Observatory#GroundStation-1.43842,51.14502Ground StationActiveUnited KingdomMojave Air and Space Port#LaunchSite-118.15,35.06Launch SitePlannedUnited StatesEsrange Rocket Range MRL#LaunchPad21.103,67.8934Launch PadActiveSwedenCape Canaveral Air Force Station - LC 31#LaunchPad-80.5563,28.4519Launch PadInactiveUnited StatesWoomera Test Range LA 2#LaunchPad136.521,-30.9433Launch PadActiveAustraliaWoomera Test Range - HAD#LaunchPad136.5322,-30.9553Launch PadActiveAustraliaDSS 53 Robledo#GroundStation-4.24964,40.42744Ground StationInactiveSpainRio Grande Leolut#GroundStation-67.7053,-53.779166Ground StationActiveArgentinaKapustin Yar START R12#LaunchPad46.298,48.5807Launch PadActiveRussiaBaikonur Cosmodrome - LC 67-21#LaunchPad63.705,45.9893Launch PadActiveKazakhstanBundaberg Leolut#GroundStation152.4128,-24.758333Ground StationActiveAustraliaMiyun Deep Space Station#GroundStation116.976,40.558Ground StationActiveChinaSan Marco Launch Platform#LaunchSite40.2125,-2.9383Launch SiteInactiveKenyaBlack Island STDN BLKQ#GroundStation166.15043278,-78.12957889Ground StationActiveAntarcticaTDC Herstedvester Teleport#GroundStation12.355,55.68Ground StationActiveDenmarkSvalsat SG 3 STDN SG3S#GroundStation15.40809583,78.229735Ground StationActiveNorwayAlice Springs BRT STDN ALSJ#GroundStation133.8825985,-23.75881044Ground StationActiveAustraliaTai Po Earth Station#GroundStation114.19,22.453Ground StationActiveChinaKashima Space Research Center 34m#GroundStation140.66006,35.95589Ground StationActiveJapanWallops Flight Facility LA 2 AML-2#LaunchPad-75.483,37.8379Launch PadActiveUnited StatesXichang Satellite Launch Center - LA 2#LaunchPad102.0271,28.2455Launch PadActiveChinaKwajalein STDN KMPF#RadarStation167.72649006,8.72167692Radar StationActiveMarshall IslandsGuam 2 (GU2) Leolut#GroundStation144.9392,13.578333Ground StationActiveUnited StatesBaikonur Cosmodrome xx2#LaunchPad63.462445,45.94176Launch PadActiveKazakhstanDefford Site#GroundStation-2.147,52.097Ground StationActiveUnited KingdomWhite Sands - LC 33#LaunchPad-106.443,32.3396Launch PadActiveUnited StatesWallops Flight Facility LA 2 AML-1#LaunchPad-75.4828,37.8381Launch PadActiveUnited StatesSantiago Station AGO 3 STDN AGO3#GroundStation-70.666403,-33.15110747Ground StationActiveChileKapustin Yar - LC 107 2h#LaunchPad46.2949,48.5617Launch PadActiveRussiaWhite Sands STDN STGK#GroundStation-106.61208894,32.54327958Ground StationActiveUnited StatesBangalore#GroundStation77.5116,13.0344Ground StationActiveIndiaLasham Satellite Ground Station#GroundStation-1.044,51.184Ground StationDemolishedUnited KingdomOtay Mt STDN SNDL#LaserStation-116.84080406,32.60073169Laser StationInactiveUnited StatesBaikonur Cosmodrome - LC 172#LaunchPad63.092,46.065Launch PadActiveKazakhstanHolloman - SLED#LaunchPad-106.1484,32.9263Launch PadActiveUnited StatesVandenberg STDN VDB3#GroundStation-120.50161731,34.56562592Ground StationActiveUnited StatesPerth STDN PRTS#GroundStation115.885,-31.802Ground StationActiveAustraliaMadley Communications Centre#GroundStation-2.84049,52.03198Ground StationActiveUnited KingdomIllegini Island#LaunchSite167.4754,9.0856Launch SiteActiveMarshall IslandsEsrange Station SSC-CNES#GroundStation21.0309,67.88225Ground StationActiveSwedenAlcantara Launch Center - MRL Pad#LaunchPad-44.3671,-2.3167Launch PadActiveBrazilRed River Space Fence#RadarStation-93.5503,33.33Radar StationActiveUnited StatesRedu Station#GroundStation5.145344,50.000456Ground StationActiveBelgiumWallops Flight Facility - LA 2 ARC#LaunchPad-75.4841,37.838Launch PadActiveUnited StatesVandenberg STDN VD2F#GroundStation-120.62712139,34.75823183Ground StationActiveUnited StatesFort Wingate#LaunchSite-108.5994,35.44868Launch SiteActiveUnited StatesAnkara 2 Leolut#GroundStation32.9897,40.140666Ground StationActiveTurkeyBaikonur Cosmodrome LC 195#LaunchPad63.2127,45.783Launch PadActiveKazakhstanChilworth Station#GroundStation-1.4274,50.9608Ground StationActiveUnited KingdomSvobodny Cosmodrome - xx6#LaunchPad128.467,51.8054Launch PadInactiveRussiaBiscarosse CE#LaunchPad-1.2325,44.3917Launch PadActiveFranceRATAN-600 Radio Telescope#GroundStation41.587,43.826Ground StationActiveRussiaDSTO Adelaide#GroundStation138.65,-34.731Ground StationActiveAustraliaZhuklino A-35 Anti-missile Site#RadarStation38.579,56.244Radar StationActiveRussiaTanegashima Yoshinobu LC Pad 1#LaunchPad130.977582,30.400975Launch PadActiveJapanWhite Sands STDN WH7F#GroundStation-106.65901447,33.81307828Ground StationActiveUnited StatesJiuquan Satellite Launch Center - LA 2A#LaunchPad100.3165,41.3088Launch PadActiveChinaDombarovsky Cosmodrome xx1#LaunchPad59.655376,50.658373Launch PadActiveRussiaVandenberg Air Force Base - SLC 1W#LaunchPad-120.6303,34.7571Launch PadInactiveUnited StatesJiuquan Satellite Launch Center - xx1#LaunchPad100.304946,41.280432Launch PadActiveChinaDGSA#GroundStation72.37002305,-7.2700227Ground StationActiveUnited KingdomHetian Station#GroundStation79.922,37.114Ground StationActiveChinaElfordstown Station#GroundStation-8.1758,51.9533Ground StationActiveIrelandBaikonur Cosmodrome LC 164#LaunchPad63.064,45.9445Launch PadActiveKazakhstanEsrange Rocket Range L#LaunchPad21.1062,67.8943Launch PadActiveSwedenWoodbine Teleport#GroundStation-77.081,39.3763Ground StationActiveUnited StatesCape Canaveral AFS LC 11#LaunchPad-80.5395,28.4753Launch PadInactiveUnited StatesDSS 42 Tidbinbilla STDN DS42#GroundStation148.98124419,-35.40068386Ground StationDemolishedAustraliaEdmonton Leolut#GroundStation-113.3162,53.678166Ground StationActiveCanadaCarpentersville Station#GroundStation-75.1911,40.6444Ground StationActiveUnited StatesBaikonur Cosmodrome LC 160#LaunchPad62.9423,46.0783Launch PadActiveKazakhstanPoker Flat STDN WT1S#GroundStation-147.45906028,65.11723692Ground StationInactiveUnited StatesUchinoura 34m#GroundStation131.078495,31.254462Ground StationActiveJapanWoomera Test Range - LA 6B#LaunchPad136.445,-31.0792Launch PadActiveAustraliaEagle Vision 3#GroundStation-117.16202,32.83818Ground StationActiveUnited StatesEchoStar Cheyenne Station#GroundStation-104.736,41.132Ground StationActiveUnited StatesYarragadee STDN YARL#LaserStation115.34674628,-29.04649844Laser StationActiveAustraliaO-Higgins#GroundStation-57.901241,-63.321128Ground StationActiveAntarcticaOrbcomm Matera A#GroundStation16.70751,40.64922Ground StationActiveItalyEOC Antenna 3#GroundStation139.3478,36.00235Ground StationActiveJapanOverberg Test Range - xx1#LaunchPad20.30271,-34.60276Launch PadActiveSouth AfricaMatera STDN MROL#LaserStation16.70460944,40.64867006Laser StationActiveItalyDombarovsky Cosmodrome - x36#LaunchPad60.301504,51.270092Launch PadActiveRussiaGrasse STDN GRAL#LaserStation6.92157186,43.75463183Laser StationActiveFranceVillafranca VIL-2#GroundStation-3.95257,40.44558Ground StationActiveSpainDombarovsky Cosmodrome - xx9#LaunchPad59.551097,50.972694Launch PadActiveRussiaSGS Colerne Site#GroundStation-2.2771,51.444Ground StationActiveUnited KingdomXichang Satellite Launch Center - LA 3#LaunchPad102.0271,28.2455Launch PadActiveChinaAlbright Station#GroundStation-79.579,39.5686Ground StationActiveUnited StatesCape Canaveral AFS LC 22#LaunchPad-80.5398,28.461Launch PadInactiveUnited StatesGilmore Creek STDN GILE#GroundStation-147.49800047,64.97850711Ground StationActiveUnited StatesDSS 34 Tidbinbilla STDN DS34#GroundStation148.98196442,-35.39847883Ground StationActiveAustraliaFairbanks STDN ULA3#GroundStation-147.51338883,64.97214025Ground StationInactiveUnited StatesSvobodny Cosmodrome xx4#LaunchPad128.3386,51.7938Launch PadInactiveRussiaFGAN Radar#RadarStation7.129822,50.616569Radar StationActiveGermanyWallops Flight Facility - LA 4 HAD#LaunchPad-75.4696,37.8511Launch PadActiveUnited StatesAlaska 1 (AK1) Leolut#GroundStation-147.5173,64.973666Ground StationActiveUnited StatesKwajalein Phased Array Radar#RadarStation167.715317,8.725601Radar StationActiveMarshall IslandsBaikonur Cosmodrome LC 194#LaunchPad63.301,45.854Launch PadActiveKazakhstanLucknow#GroundStation80.957329,26.913182Ground StationActiveIndiaEOC Antenna 1#GroundStation139.3488,36.00386Ground StationActiveJapanCallao Leolut#GroundStation-77.1298,-12.030666Ground StationActivePeruTranquillon Peak STDN CALC#OpticalTrackingStation-120.56243417,34.58238614Optical Tracking StationActiveUnited StatesDSS 17 Goldstone STDN DS17#GroundStation-116.87345528,35.34222994Ground StationDemolishedUnited StatesKaena Point Radar STDN KPTQ#RadarStation-158.26658533,21.57211972Radar StationActiveUnited StatesSvalsat EUM 2#GroundStation15.3884,78.229Ground StationActiveNorwayMid-Atlantic Regional Spaceport 0-B#LaunchPad-75.4913,37.8312Launch PadActiveUnited StatesEsrange Rocket Range#LaunchSite21.105,67.893Launch SiteActiveSwedenTaiyuan#LaunchSite111.61,38.84Launch SiteActiveChinaBaikonur Cosmodrome LC 60-7#LaunchPad64.0173,46.0181Launch PadActiveKazakhstanTRADEX Radar STDN KMRF#RadarStation167.48214819,9.39874711Radar StationActiveMarshall IslandsOrbcomm Maghreb B#GroundStation-7.64393,33.04755Ground StationActiveMoroccoGuiana Space Center ZL2 STDN KR2P#LaunchPad-52.77567156,5.23240672Launch PadInactiveFrench GuianaTaeduk Radio Astronomy Observatory#GroundStation127.3752,36.3976Ground StationActiveSouth KoreaCar Nicobar Station#GroundStation92.82765,9.1548Ground StationActiveIndiaSatish Dhawan Sounding Rocket Pad#LaunchPad80.2404,13.759Launch PadActiveIndiaWallops Island STDN WAPS#GroundStation-75.4765225,37.92492556Ground StationActiveUnited StatesHai Phong Station#GroundStation106.7104,20.8005Ground StationActiveVietnamPlesetsk Cosmodrome - LC 41-1#LaunchPad40.529,62.9405Launch PadDemolishedRussiaPatrick AFB STDN PATQ#GroundStation-80.59927636,28.22640242Ground StationActiveUnited StatesAtom Peak STDN ATMY#GroundStation-106.36455683,33.73962981Ground StationActiveUnited StatesWoomera Test Range - LA 1#LaunchPad136.5037,-30.9587Launch PadActiveAustraliaWellington (2) Geolut#GroundStation175.5045,-41.152Ground StationActiveNew ZealandDSS 63 Robledo STDN DS63#GroundStation-4.24800856,40.43120975Ground StationActiveSpainEdwards AFB STDN FRCF#GroundStation-117.91149608,34.96080469Ground StationActiveUnited StatesBukit Timah Satellite Earth Station#GroundStation103.7911,1.3514Ground StationActiveSingaporeFort Meade SATCOM Terminal#GroundStation-76.757,39.104Ground StationActiveUnited StatesWhite Sands STDN ST2K#GroundStation-106.61208894,32.54297736Ground StationActiveUnited StatesAuScope VLBI Katherine#GroundStation132.1524,-14.3755Ground StationActiveAustraliaPlesetsk Cosmodrome LC 32-2#LaunchPad40.7895,62.9057Launch PadActiveRussiaCape Canaveral Air Force Station - LC 4#LaunchPad-80.5356,28.4669Launch PadInactiveUnited StatesWallops Island STDN WPSA#GroundStation-75.47498581,37.92727767Ground StationInactiveUnited StatesThule BMEWS#RadarStation-68.2992,76.5703Radar StationActiveGreenlandFauske Geolut#GroundStation15.302,67.237Ground StationActiveNorwayCape Canaveral Air Force Station - LC 6#LaunchPad-80.5726,28.4407Launch PadInactiveUnited StatesMILA Test BRT STDN MILJ#GroundStation-80.69301289,28.50598947Ground StationInactiveUnited StatesEsrange Station KSX#GroundStation21.0556028,67.8887061Ground StationActiveSwedenNeustrelitz STDN NSGS#GroundStation13.07,53.32972222Ground StationActiveGermanyQueensland Receiver#RadarStation143.1936,-24.2871Radar StationActiveAustraliaMcDonald Observatory STDN MLRL#LaserStation-104.01519731,30.68026717Laser StationActiveUnited StatesMidway Research Center#GroundStation-77.373,38.498Ground StationActiveUnited StatesAlaska 1 AK1 Leolut#GroundStation-147.5173,64.973666Ground StationActiveUnited StatesTromso EISCAT Dish Radar#RadarStation19.22637,69.58648Radar StationActiveNorwayOrbcomm St Johns B#GroundStation-109.554917,34.455501Ground StationActiveUnited StatesBretagne 1 Radar STDN KRUF#RadarStation-52.64498992,5.11400642Radar StationActiveFrench GuianaNauchny#OpticalTrackingStation34.01567,44.72785Optical Tracking StationActiveUkraineSocorro GEODSS, xx1#OpticalTrackingStation-106.66009,33.81727Optical Tracking StationActiveUnited StatesKuantan Station#GroundStation103.36,3.866Ground StationActiveMalaysiaOttawa (2) Geolut#GroundStation-75.674333,45.3438Ground StationActiveCanadaDombarovsky Cosmodrome x37#LaunchPad60.728749,51.301802Launch PadActiveRussiaNHS STDN NH2S#GroundStation-71.63032172,42.94474167Ground StationActiveUnited StatesVostochny Cosmodrome#LaunchSite128.25,51.817Launch SitePlannedRussiaPsary Station#GroundStation20.8542,50.9336Ground StationActivePolandCape Canaveral AFS SLC 17A STDN A17P#LaunchPad-80.56492617,28.44716106Launch PadActiveUnited StatesMiramar Station#GroundStation-80.2833,25.9756Ground StationActiveUnited StatesHolloman - A#LaunchPad-106.0714,32.8954Launch PadActiveUnited StatesCheia Station#GroundStation25.9465,45.4567Ground StationActiveRomaniaTularosa STDN TULF#GroundStation-106.15915417,33.09616153Ground StationActiveUnited StatesCSTARS_East_11m#GroundStation-80.3837,25.61336Ground StationActiveUnited StatesPillar Point STDN PPTY#GroundStation-122.49918072,37.49777411Ground StationActiveUnited StatesDongara Station AUWA01 STDN AUWS#GroundStation115.34866806,-29.04576808Ground StationActiveAustraliaGSE Geolut#GroundStation-76.93,38.8503Ground StationActiveUnited StatesOrbcomm Chong Ho Won#GroundStation127.66,37.14Ground StationActiveSouth KoreaWallops Flight Facility - LA 4#LaunchPad-75.4701,37.8508Launch PadActiveUnited StatesKapustin Yar - LC 86 4a#LaunchPad46.295,48.5508Launch PadActiveRussiaPoint Mugu LC 2#LaunchPad-119.121,34.0992Launch PadActiveUnited StatesGreenbelt STDN STAL#LaserStation-76.82777092,39.02029483Laser StationInactiveUnited StatesBeijing 2 Leolut#GroundStation116.42,39.908Ground StationActiveChinaEglin AFB AN-FPS 85 PAR STDN EG2F#RadarStation-86.21471742,30.57252794Radar StationActiveUnited StatesRas Al Khaimah Spaceport#LaunchSite55.941,25.617Launch SitePlannedUnited Arab EmiratesPatrick AFB STDN PA2Q#GroundStation-80.60609819,28.22732817Ground StationActiveUnited StatesSvobodny Cosmodrome xx1#LaunchPad128.3102,51.747Launch PadInactiveRussiaNOAA STDN SOCA#GroundStation-76.93222222,38.85002611Ground StationActiveUnited StatesSpaceport Singapore#LaunchSite103.99,1.36Launch SitePlannedSingaporeSpaceport America#LaunchSite-106.98,32.99Launch SitePlannedUnited StatesJiuquan#LaunchSite100.5,41.1Launch SiteActiveChinaJamesburg Earth Station#GroundStation-121.64704,36.40313Ground StationActiveUnited StatesWestford Radio Telescope#GroundStation-71.49377,42.61293Ground StationActiveUnited StatesAnkara 1 Leolut#GroundStation32.9897,40.140833Ground StationActiveTurkeyKapustin Yar - LC 107 2d#LaunchPad46.2959,48.5695Launch PadActiveRussiaBaikonur Cosmodrome - LC 45-2#LaunchPad63.6532,45.9433Launch PadActiveKazakhstanJiuquan SLS#LaunchPad100.2915,40.958Launch PadActiveChinaWhite Sands LC 50#LaunchPad-106.3488,32.4064Launch PadActiveUnited StatesSvobodny Cosmodrome xx3#LaunchPad128.185,51.792Launch PadInactiveRussiaVillafranca VIL-4#GroundStation-3.95173,40.44451Ground StationActiveSpainKwajalein BC-4 Cameras#OpticalTrackingStation167.719465,8.72304Optical Tracking StationActiveMarshall IslandsADSCGS#GroundStation114.842,-28.695Ground StationActiveAustraliaSvobodny Cosmodrome xx8#LaunchPad128.2764,51.8357Launch PadInactiveRussiaIncheon Leolut#GroundStation126.649,37.393Ground StationActiveSouth KoreaWoomera Test Range - LA 9#LaunchPad136.4871,-30.9031Launch PadActiveAustraliaWestern Australian Transmitter#RadarStation122.8435,-28.3174Radar StationActiveAustraliaWallops Island STDN WTDS#GroundStation-75.47746889,37.92306592Ground StationActiveUnited StatesHauppauge Station#GroundStation-73.264,40.8202Ground StationActiveUnited StatesKeelung 1 Leolut#GroundStation121.7573,25.135333Ground StationActiveTaiwanSPTR-2#GroundStation0,-90Ground StationActiveAntarcticaBaikonur Cosmodrome LC 105#LaunchPad63.4962,45.9503Launch PadActiveKazakhstanBaikonur Cosmodrome - LC 110R#LaunchPad63.3102,45.9622Launch PadActiveKazakhstanYarragedee STDN YARZ#GroundStation115.34666667,-29.04664553Ground StationActiveAustraliaResolute Bay#LaunchSite-94.8962,74.687Launch SiteInactiveCanadaMaui GEODSS Cam3#OpticalTrackingStation-156.2575,20.7085Optical Tracking StationActiveUnited StatesAntigua Island STDN ANRQ#GroundStation-61.77522336,17.13728994Ground StationActiveAntigua and BarbudaCape Canaveral AFS LC 34#LaunchPad-80.5611,28.5218Launch PadInactiveUnited StatesCebreros DSA 2#GroundStation-4.367549,40.45269Ground StationActiveSpainBaikonur Cosmodrome - LC 109#LaunchPad63.4452,45.9525Launch PadActiveKazakhstanEsrange Station ELS#GroundStation21.062325,67.8765153Ground StationActiveSwedenAntigua STDN AN3S#GroundStation-61.77435,17.13695083Ground StationActiveAntigua and BarbudaWallops Flight Facility - LA 4 MAST#LaunchPad-75.4702,37.8508Launch PadActiveUnited StatesJoint Defense Facility Pine Gap#GroundStation133.737,-23.799Ground StationActiveAustraliaKarachi Leolut#GroundStation67.136,24.946Ground StationActivePakistanDarwin Station#GroundStation130.9812,-12.4765Ground StationActiveAustraliaBaikonur Cosmodrome - LC 110L#LaunchPad63.3049,45.9647Launch PadActiveKazakhstanSvalsat EUM 1#GroundStation15.4014,78.2286Ground StationActiveNorwayTidbinbilla STDN RGTS#GroundStation148.98241831,-35.40453633Ground StationActiveAustraliaSvalsat SG 4 STDN SG4S#GroundStation15.4097095,78.22801361Ground StationActiveNorwayTianshan Station#GroundStation120.09,43.874Ground StationActiveChinaMMW Radar#RadarStation167.48123,9.39731Radar StationActiveMarshall IslandsCTS STDN CTSS#GroundStation-104.52846914,38.80598842Ground StationActiveUnited StatesTromso EISCAT Cylinder Radar#RadarStation19.2219,69.5867Radar StationActiveNorwayKodiak Launch Complex#LaunchSite-152.3393,57.4352Launch SiteActiveUnited StatesEchoStar Mt Jackson Station#GroundStation-78.667,38.723Ground StationActiveUnited StatesItapetinga Radio Observatory#GroundStation-46.55823,-23.18524Ground StationActiveBrazilVostochny Cosmodrome#LaunchSite128.25,51.817Launch SitePlannedRussiaWallops Island STDN WLPQ#GroundStation-75.50929556,37.86026147Ground StationActiveUnited StatesHawaii 1 (HI1) Leolut#GroundStation-157.9963,21.520666Ground StationActiveUnited StatesKapustin Yar LC 107 2a#LaunchPad46.2949,48.5609Launch PadActiveRussiaDombarovsky Cosmodrome x36#LaunchPad60.301504,51.270092Launch PadActiveRussiaWallops Island STDN WL53#GroundStation-75.4601,37.9468Ground StationActiveUnited StatesSvobodny Cosmodrome xx6#LaunchPad128.467,51.8054Launch PadInactiveRussiaDehmandro Station#GroundStation67.0992,25.1933Ground StationActivePakistanXTAR 16m#GroundStation-15.63132,27.76271Ground StationActiveSpainBaikonur Cosmodrome LC 1#LaunchPad63.3422,45.9203Launch PadActiveKazakhstanMakassar Leolut#GroundStation119.55,-5.066666Ground StationPlannedIndonesiaVandenberg AFB SLC 10W#LaunchPad-120.6244,34.7636Launch PadInactiveUnited StatesBiscarosse - CE#LaunchPad-1.2325,44.3917Launch PadActiveFranceBaikonur Cosmodrome LC 104#LaunchPad63.4197,45.9875Launch PadActiveKazakhstanBaikonur Cosmodrome LC 161-35#LaunchPad63.063,46.0335Launch PadActiveKazakhstanWallops Island STDN WPS8#GroundStation-75.47583319,37.92735903Ground StationActiveUnited StatesAnderson Peak STDN ANPC#OpticalTrackingStation-121.64434508,36.18052364Optical Tracking StationActiveUnited StatesCape Canaveral Air Force Station - SLC 46 (STDN A46P)#LaunchPad-80.52840256,28.45849161Launch PadInactiveUnited StatesPoint Mugu#LaunchSite-119.121,34.099Launch SiteActiveUnited StatesChilca#LaunchSite-76.799,-12.505Launch SiteActivePeruKueijen#GroundStation120.28,22.97Ground StationActiveTaiwanZimmerwald STDN ZIML#LaserStation7.46521981,46.87722883Laser StationActiveSwitzerlandFresnedillas Monitoring Station#GroundStation-4.1697,40.4555Ground StationActiveSpainDombarovsky Cosmodrome - x23#LaunchPad60.675969,51.146793Launch PadActiveRussiaHagerstown Teleport#GroundStation-77.757011,39.599906Ground StationActiveUnited StatesNapa Teleport#GroundStation-122.279965,38.245535Ground StationActiveUnited StatesDombarovsky Cosmodrome xx5#LaunchPad59.595072,50.837656Launch PadActiveRussiaDSS 25 Goldstone STDN DS25#GroundStation-116.87536319,35.33761197Ground StationActiveUnited StatesCape Canaveral Air Force Station - LC 22#LaunchPad-80.5398,28.461Launch PadInactiveUnited StatesEglin AFB Launch Site#LaunchSite-85.34588,29.67729Launch SiteActiveUnited StatesHolloman ZEL#LaunchPad-106.06,32.88Launch PadActiveUnited StatesOgasawara Downrange Station#GroundStation142.215439,27.079017Ground StationActiveJapanInuvik Station INU#GroundStation-133.54391,68.31788Ground StationActiveCanadaToulouse 1 Leolut#GroundStation1.4808,43.560666Ground StationActiveFranceBaikonur Cosmodrome - LC 165#LaunchPad62.9185,45.9912Launch PadActiveKazakhstanJiuquan LA 2B#LaunchPad100.3132,41.3061Launch PadActiveChinaPort Hedland STDN SWNS#GroundStation118.635,-20.38Ground StationActiveAustraliaTsukuba Space Center#GroundStation140.126716,36.071299Ground StationActiveJapanDSS 27 Goldstone STDN D27D#GroundStation-116.77665044,35.23827178Ground StationActiveUnited StatesTrivandrum#GroundStation76.8731,8.5365Ground StationActiveIndiaMaryland (2) Geolut#GroundStation-76.93,38.8503Ground StationActiveUnited StatesEsrange Station SfinX#GroundStation21.0525247,67.8882281Ground StationActiveSwedenTranquillon Peak STDN CA2F#GroundStation-120.56111489,34.58302833Ground StationActiveUnited StatesWhite Sands STDN WH2K#GroundStation-106.60855172,32.50073719Ground StationActiveUnited StatesBaikonur Cosmodrome - LC 161-35#LaunchPad63.063,46.0335Launch PadActiveKazakhstanBaikonur Cosmodrome LC 45-1#LaunchPad63.655387,45.940067Launch PadActiveKazakhstanASF 11m STDN ASFS#GroundStation-147.85817536,64.85880858Ground StationActiveUnited StatesBaikonur Cosmodrome - LC 41-3#LaunchPad63.6598,45.9754Launch PadActiveKazakhstanDSS 17 Goldstone STDN GDSA#GroundStation-116.87300133,35.34154264Ground StationDemolishedUnited StatesKodiak Ranging Site#GroundStation-152.3737,57.4554Ground StationActiveUnited StatesToulouse (2) Leolut#GroundStation1.4808,43.5605Ground StationActiveFranceDSS 15 Goldstone STDN DS15#GroundStation-116.88719511,35.42185328Ground StationActiveUnited StatesDomme SIGINT Station#GroundStation1.2381,44.7864Ground StationActiveFranceMullach Mor Radar Station#GroundStation-8.584962,57.819175Ground StationActiveUnited KingdomTula Peak STDN TULS#GroundStation-106.139091,33.02694489Ground StationInactiveUnited StatesESA Space Debris Telescope#OpticalTrackingStation-16.51189,28.30095Optical Tracking StationActiveSpainBaikonur Cosmodrome - LC 175-59#LaunchPad62.9862,46.0525Launch PadActiveKazakhstanCTSA#GroundStation-104.52848,38.8059353Ground StationActiveUnited StatesPanamsat Long Beach Operations Center#GroundStation-118.2112,33.8292Ground StationActiveUnited StatesDombarovsky Cosmodrome x34#LaunchPad60.461524,51.259129Launch PadActiveRussiaESRIN Maspalomas#GroundStation-15.63377,27.76433Ground StationActiveSpainBaikonur Cosmodrome - LC 60-8#LaunchPad64.0183,46.0174Launch PadActiveKazakhstanSary Shagan#LaunchSite73.562,45.812Launch SiteActiveKazakhstanNiles Canyon Station#GroundStation-121.944,37.6Ground StationActiveUnited StatesComcast Titan Station#GroundStation-105.025,39.514Ground StationActiveUnited StatesPrince Albert xx1#GroundStation-105.93291,53.21266Ground StationActiveCanadaTidbinbilla STDN CANS#GroundStation148.983058,-35.40466667Ground StationActiveAustraliaNATO Missile Firing Installation#LaunchSite24.175,35.573Launch SiteActiveCreteEldorado AFS PAVE PAWS#RadarStation-100.5529,30.9783Radar StationInactiveUnited StatesSanta Maria Station#GroundStation-25.136103,36.99694Ground StationActivePortugalBaikonur Cosmodrome - LC 1#LaunchPad63.3422,45.9203Launch PadActiveKazakhstanWallops Flight Facility - LA 2 AML-2#LaunchPad-75.483,37.8379Launch PadActiveUnited StatesTokyo STDN KA2S#GroundStation139.49177778,35.70876186Ground StationActiveJapanWallops Island STDN WP2Y#GroundStation-75.47685742,37.92558517Ground StationActiveUnited StatesFort Huachuca STDN FT2F#GroundStation-110.43817333,31.55676686Ground StationActiveUnited StatesGatineau xx1#GroundStation-75.80933,45.5858Ground StationActiveCanadaWallops Island Drop Zone#LaunchSite-75,37.5Launch SiteActiveUnited StatesHAARP#RadarStation-145.151,62.393Radar StationActiveUnited StatesDombarovsky Cosmodrome x35#LaunchPad60.858975,51.26491Launch PadActiveRussiaNatal Station STDN NATC#OpticalTrackingStation-35.16434436,-5.92780506Optical Tracking StationActiveBrazilCape Canaveral AFS SLC 36A STDN A36P#LaunchPad-80.53772211,28.47143831Launch PadDemolishedUnited StatesTrollSat Ground Station#GroundStation2.53838,-72.0117Ground StationActiveAntarcticaMount Pleasant STDN TSMF#GroundStation147.439,-42.805Ground StationActiveAustraliaDGS STDN DGIS#GroundStation72.36999861,-7.27003056Ground StationActiveUnited KingdomVela Antenna#GroundStation147.44165,-42.8034Ground StationActiveAustraliaWhite Sands STDN STWS#GroundStation-106.60856383,32.49950678Ground StationActiveUnited StatesEsrange Station Balder#GroundStation21.038,67.879Ground StationActiveSwedenBaikonur Cosmodrome - LC 192#LaunchPad63.2995,46.0243Launch PadActiveKazakhstanMerritt Island STDN MLAQ#GroundStation-80.66438767,28.42471119Ground StationActiveUnited StatesNCTS Naples#GroundStation14.049,40.929Ground StationActiveItalyKennedy Space Center#LaunchSite-80.62,28.62Launch SiteActiveUnited StatesRAF Menwith Hill#GroundStation-1.689492,54.008692Ground StationActiveUnited KingdomVLBA Kitt Peak#GroundStation-111.611992,31.956316Ground StationActiveUnited StatesDiego Garcia GEODSS, xx2#OpticalTrackingStation72.45244,-7.41163Optical Tracking StationActiveUnited KingdomBaikonur Cosmodrome LC 41-3#LaunchPad63.6598,45.9754Launch PadActiveKazakhstanLustbuhel Observatory#LaserStation15.4934,47.06714Laser StationActiveAustriaWoomera Test Range MRL#LaunchPad136.5332,-30.9573Launch PadActiveAustraliaCape Canaveral Air Force Station - SLC 37B (STDN B37P)#LaunchPad-80.56445806,28.53121944Launch PadActiveUnited StatesDombarovsky Cosmodrome - xx7#LaunchPad59.73193,50.883614Launch PadActiveRussiaKunia Station#GroundStation-158.055314,21.473136Ground StationActiveUnited StatesGRGT STDN GW2S#GroundStation144.84087447,13.58758828Ground StationActiveUnited StatesJohnston Island#LaunchSite-169.53,16.733Launch SiteActiveUnited StatesFort Churchill#LaunchSite-93.820278,58.734167Launch SiteActiveCanadaHolloman - ZEL#LaunchPad-106.06,32.88Launch PadActiveUnited StatesNHSA#GroundStation-71.626559,42.9478333Ground StationActiveUnited StatesSondrestrom Rocket Range#LaunchSite-50.6,67.024Launch SiteActiveGreenlandWoomera Test Range HAD#LaunchPad136.5322,-30.9553Launch PadActiveAustraliaOrbcomm Wenatchee B#GroundStation-120.175247,47.550924Ground StationActiveUnited StatesHong Kong (1) Leolut#GroundStation114.1445,22.275833Ground StationActiveChinaCape Canaveral Air Force Station - LC 5#LaunchPad-80.5733,28.4394Launch PadInactiveUnited StatesTTSB#GroundStation-68.5988147,76.5153639Ground StationActiveGreenlandScanEx Magadan Station#GroundStation150.81308,59.55632Ground StationActiveRussiaNemea Station#GroundStation22.6222,37.8461Ground StationActiveGreeceRoaring Creek Station#GroundStation-76.4393,40.8935Ground StationActiveUnited StatesBaikonur Cosmodrome - LC 244#LaunchPad63.6346,45.8403Launch PadActiveKazakhstanRas Al Khaimah Station#GroundStation56.0408,25.7927Ground StationActiveUnited Arab EmiratesNaro Space Center#LaunchSite127.53507,34.43187Launch SiteActiveSouth KoreaFlorida 2 FL2 Leolut#GroundStation-80.3838,25.616333Ground StationActiveUnited StatesCape Canaveral Air Force Station - SLC 41 (STDN A41P)#LaunchPad-80.58287267,28.58345786Launch PadActiveUnited StatesCachoeira Paulista#GroundStation-45.000214,-22.68211Ground StationActiveBrazilGreen River Pad 1#LaunchPad-110.0775,38.9416Launch PadActiveUnited StatesEsrange Station ESX#GroundStation21.0634472,67.8781431Ground StationActiveSwedenToulouse 2 Leolut#GroundStation1.4808,43.5605Ground StationActiveFranceWallops Island STDN WP2Z#GroundStation-75.47375114,37.92891233Ground StationActiveUnited StatesGellinam#GroundStation167.727855,9.099416Ground StationActiveMarshall IslandsGreat Wall Station#GroundStation-58.9626,-62.2166Ground StationActiveAntarcticaBarking Sands - LC 19#LaunchPad-159.7813,22.0619Launch PadActiveUnited StatesThule STDN TH2S#GroundStation-68.59881472,76.51536389Ground StationActiveGreenlandOrbcomm Ocilla B#GroundStation-83.199585,31.500413Ground StationActiveUnited StatesWallops Island STDN HR2S#GroundStation-75.46209,37.94542583Ground StationActiveUnited StatesOhr Station#GroundStation9.33,52.06Ground StationActiveGermanyRozhen#OpticalTrackingStation24.744,41.693Optical Tracking StationActiveBulgariaOrroral Valley#GroundStation148.95713,-35.62982Ground StationRelocatedAustraliaBaikonur Cosmodrome - LC 242#LaunchPad63.4626,45.9407Launch PadActiveKazakhstanCape Canaveral Air Force Station - LC 9#LaunchPad-80.5594,28.4522Launch PadInactiveUnited StatesGCHQ Bude#GroundStation-4.5537,50.8862Ground StationActiveUnited KingdomVandenberg AFB SLC 576-E#LaunchPad-120.6191,34.7396Launch PadActiveUnited StatesDombarovsky Cosmodrome - xx3#LaunchPad59.597872,50.756297Launch PadActiveRussiaPomonkey STDN PMKS#GroundStation-77.05774122,38.55771053Ground StationInactiveUnited StatesEaster Island Leolut#GroundStation-109.437,-27.150166Ground StationActiveChilePoint Mugu STDN PM3F#GroundStation-119.15476742,34.12288772Ground StationActiveUnited StatesCape Canaveral AFS LC 16#LaunchPad-80.5518,28.5016Launch PadInactiveUnited StatesAmman#GroundStation35.837,32.0808Ground StationActiveJordanBaikonur Cosmodrome LC 90-19#LaunchPad62.9144,46.0863Launch PadActiveKazakhstanKapustin Yar V2#LaunchPad45.9074,48.5709Launch PadActiveRussiaBarking Sands LC 42#LaunchPad-159.7727,22.0682Launch PadActiveUnited StatesCape Canaveral AFS SLC 37A#LaunchPad-80.568,28.534Launch PadInactiveUnited StatesBermuda STDN BDDQ#GroundStation-64.65344947,32.34794319Ground StationInactiveBermudaSouth Uist Range Control Unit#GroundStation-7.355771,57.340814Ground StationActiveUnited KingdomSvobodny Cosmodrome - x10#LaunchPad128.3323,51.877Launch PadInactiveRussiaWallops Flight Facility LA 3A#LaunchPad-75.4726,37.848Launch PadActiveUnited StatesKapustin Yar - LC 107 2c#LaunchPad46.2949,48.5695Launch PadActiveRussiaWhite Sands STDN WHSX#GroundStation-106.60801708,32.50094139Ground StationActiveUnited StatesTonopah Test Range#LaunchSite-116.77,37.8Launch SiteActiveUnited StatesWhite Sands STDN WH4K#GroundStation-106.60855389,32.50138961Ground StationActiveUnited StatesVandenberg AFB#LaunchSite-120.6,34.7Launch SiteActiveUnited StatesKapustin Yar#LaunchSite46.1,48.5Launch SiteActiveRussiaEl Palomar Geolut#GroundStation-58.6,-34.6Ground StationActiveArgentinaBiscarosse - BS#LaunchPad-1.2675,44.2882Launch PadInactiveFranceBad Aibling Station#GroundStation11.984444,47.879444Ground StationInactiveGermanyPlesetsk Cosmodrome#LaunchSite40.6,62.9Launch SiteActiveRussiaSHAR-2#GroundStation80.19633,13.67394Ground StationActiveIndiaMayaguez#GroundStation-67.1368,18.2111Ground StationActiveUnited StatesWallops Flight Facility LA 1 AML#LaunchPad-75.4871,37.8352Launch PadActiveUnited StatesBaikonur Cosmodrome LC 162-36#LaunchPad63.0668,46.0323Launch PadActiveKazakhstanValcartier#OpticalTrackingStation-71.47075,46.87545Optical Tracking StationActiveCanadaGRAVES Transmitter#RadarStation5.515,47.348Radar StationActiveFranceGuam 1 (GU1) Leolut#GroundStation144.939,13.578333Ground StationActiveUnited StatesSpaceport Sweden#LaunchSite20.331,67.822Launch SitePlannedSwedenKapustin Yar - LC 86 4c#LaunchPad46.297,48.5481Launch PadActiveRussiaSan Clemente#LaunchSite-118.48698,32.91771Launch SiteActiveUnited StatesMayport Drop Zone#LaunchSite-78.5,29Launch SiteActiveUnited StatesYokohama Satellite Control Center#GroundStation139.5145,35.5055Ground StationActiveJapanEsrange Station SSC-CNES#GroundStation21.0309,67.88225Ground StationActiveSwedenWallops Island STDN WL2F#GroundStation-75.46422336,37.94409914Ground StationActiveUnited StatesSuffield#OpticalTrackingStation-111.10471,50.29301Optical Tracking StationActiveCanadaBarking Sands - LC 12#LaunchPad-159.7819,22.0593Launch PadActiveUnited StatesBarking Sands - Kokole Point#LaunchPad-159.7627,21.988Launch PadActiveUnited StatesMedicina Radio Observatory#GroundStation11.646944,44.520833Ground StationActiveItalyVandenberg STDN CALY#GroundStation-120.50101308,34.56562375Ground StationActiveUnited StatesSemnan Launch Center xx1#LaunchPad53.896,35.222Launch PadActiveIranWallops Island STDN WP3Z#GroundStation-75.47589722,37.92820833Ground StationActiveUnited StatesNATO Missile Firing Installation#LaunchSite24.175,35.573Launch SiteActiveCreteYorii#GroundStation139.2,36.12Ground StationActiveJapanUsuda Deep Space Center#GroundStation138.3627,36.1325Ground StationActiveJapanEsrange Station ELS#GroundStation21.062325,67.8765153Ground StationActiveSwedenCorn Ranch#LaunchSite-104.7589,31.4233Launch SiteActiveUnited StatesWallops Flight Facility LA 2 ARC#LaunchPad-75.4841,37.838Launch PadActiveUnited StatesPennant Point Station#GroundStation-63.6133,44.4648Ground StationActiveCanadaSodankyla EISCAT Radar#RadarStation26.63043,67.36383Radar StationActiveFinlandWallops Island STDN WT3S#GroundStation-75.47746889,37.92306592Ground StationActiveUnited StatesOttawa Leolut#GroundStation-75.6745,45.328666Ground StationActiveCanadaBiscarosse SUD#LaunchPad-1.276,44.295Launch PadActiveFranceTorrejon Air Base xx2#GroundStation-3.44474,40.48276Ground StationActiveSpainSPTR-1#GroundStation0,-90Ground StationInactiveAntarcticaPlesetsk Cosmodrome - LC 132-1#LaunchPad40.8686,62.8833Launch PadActiveRussiaEsrange Station ESSEX#GroundStation21.0630978,67.8904339Ground StationActiveSwedenDirecTV LA Broadcast Center LABC#GroundStation-118.425,33.9827Ground StationActiveUnited StatesYatharagga STDN ATFS#GroundStation115.35126589,-29.04494003Ground StationActiveAustraliaWhite Sands - LC 32#LaunchPad-106.4069,32.4068Launch PadActiveUnited StatesFairbanks STDN UL33#GroundStation-147.51806617,64.97681389Ground StationActiveUnited StatesCalifornia 1 CA1 Leolut#GroundStation-120.5515,34.6625Ground StationActiveUnited StatesESRIN#GroundStation12.67585,41.8275Ground StationActiveItalyDSS 16 Goldstone STDN GD28#GroundStation-116.87360467,35.34154264Ground StationInactiveUnited StatesUchinoura Mu Pad#LaunchPad131.08223,31.251028Launch PadActiveJapanPort Blair#GroundStation92.71247,11.63727Ground StationActiveIndiaAndrushevka#OpticalTrackingStation28.997306,50.000556Optical Tracking StationActiveUkraineMatera Station#GroundStation16.704079,40.649536Ground StationActiveItalyCape Canaveral AFS SLC 40 STDN A40P#LaunchPad-80.57719364,28.56198939Launch PadActiveUnited StatesEllenwood Teleport#GroundStation-84.272016,33.664202Ground StationActiveUnited StatesEdmonton Geolut#GroundStation-113.316166,53.6782Ground StationActiveCanadaCalifornia 2 CA2 Leolut#GroundStation-120.5517,34.662333Ground StationActiveUnited StatesPalmachim AFB#LaunchSite34.69,31.89Launch SiteActiveIsraelDombarovsky Cosmodrome x31#LaunchPad60.606992,51.241105Launch PadActiveRussiaGuiana Space Center - ELS#LaunchPad-52.8345,5.3047Launch PadActiveFrench GuianaVLBA Hancock#GroundStation-71.986581,42.933608Ground StationActiveUnited StatesEsrange Station ELS (STDN KILS)#GroundStation21.062337,67.876532Ground StationActiveSwedenClewiston Station#GroundStation-81.049,26.747Ground StationActiveUnited StatesEutelsat Paris#GroundStation2.277808,48.840264Ground StationActiveFrancePalmachim AFB Shavit Pad#LaunchPad34.6802,31.8848Launch PadActiveIsraelWhite Sands STDN WS1S#GroundStation-106.61209953,32.54075494Ground StationActiveUnited StatesBrasilia Leolut#GroundStation-47.9027,-15.857166Ground StationActiveBrazilCape Canaveral Air Force Station - LC 13#LaunchPad-80.5446,28.4859Launch PadInactiveUnited StatesOttawa (1) Geolut#GroundStation-75.674,45.329Ground StationActiveCanadaEsrange Station Balder#GroundStation21.038,67.879Ground StationActiveSwedenHaiphong Leolut#GroundStation106.71,20.801166Ground StationActiveVietnamFucino#GroundStation13.6018,41.9793Ground StationActiveItalyFuchsstadt Station#GroundStation9.924176,50.118315Ground StationActiveGermanySouth Point Station USHI01 STDN HWIS#GroundStation-155.66330125,19.0139045Ground StationActiveUnited StatesWhite Sands STDN WH2S#GroundStation-106.60855389,32.50129656Ground StationActiveUnited StatesPulantat Station#GroundStation144.75,13.42Ground StationActiveUnited StatesDombarovsky Cosmodrome xx8#LaunchPad60.52694,50.959329Launch PadActiveRussiaRAF Feltwell#GroundStation0.5205,52.4806Ground StationActiveUnited KingdomMondy#OpticalTrackingStation100.918792,51.621694Optical Tracking StationActiveRussiaNeu Golm Station#GroundStation14.0867,52.3137Ground StationActiveGermanyCape Canaveral AFS LC 4#LaunchPad-80.5356,28.4669Launch PadInactiveUnited StatesMerritt Island STDN MMTF#GroundStation-80.67478864,28.47857681Ground StationActiveUnited StatesVandenberg AFB SLC 4W#LaunchPad-120.6154,34.6331Launch PadInactiveUnited StatesPongdong-ri#LaunchSite124.705265,39.659987Launch SiteActiveNorth KoreaDombarovsky Cosmodrome x10#LaunchPad60.649859,50.985518Launch PadActiveRussiaJiuquan LA 3#LaunchPad100.78,41.0152Launch PadActiveChinaCape Canaveral STDN CNVF#GroundStation-80.57650917,28.48160589Ground StationActiveUnited StatesBaikonur Cosmodrome - LC 41-15#LaunchPad63.6687,45.9763Launch PadActiveKazakhstanKapustin Yar - S#LaunchPad46.3175,48.4763Launch PadActiveRussiaDombarovsky Cosmodrome x42#LaunchPad59.972508,51.521988Launch PadActiveRussiaPlesetsk Cosmodrome - LC 132-2#LaunchPad40.8722,62.8834Launch PadActiveRussiaMountain Horse Station#GroundStation-121.5933,37.7502Ground StationActiveUnited StatesBarking Sands LC 12#LaunchPad-159.7819,22.0593Launch PadActiveUnited StatesLethbridge Station#GroundStation-112.873188,49.681208Ground StationActiveCanadaBaikonur Cosmodrome LC 41-15#LaunchPad63.6687,45.9763Launch PadActiveKazakhstanCape Canaveral AFS LC 21#LaunchPad-80.5403,28.4606Launch PadInactiveUnited StatesVandenberg Air Force Base - SLC 5#LaunchPad-120.6247,34.608Launch PadInactiveUnited StatesCSTARS_20m#GroundStation-80.38477,25.61375Ground StationActiveUnited StatesAlice Springs Receiver#RadarStation133.6792,-23.5213Radar StationActiveAustraliaBarking Sands Kokole Point#LaunchPad-159.7627,21.988Launch PadActiveUnited StatesBaikonur Cosmodrome LC 200-39#LaunchPad63.032,46.0399Launch PadActiveKazakhstanCotopaxi Station#GroundStation-78.578,-0.623Ground StationActiveEcuadorBaikonur Cosmodrome LC 245#LaunchPad63.5271,45.8175Launch PadActiveKazakhstanOuargla Leolut#GroundStation5.49,31.88Ground StationActiveAlgeriaDombarovsky Cosmodrome x14#LaunchPad59.958431,51.036288Launch PadActiveRussiaAbu Dhabi Leolut#GroundStation54.4478,24.4315Ground StationActiveUnited Arab EmiratesCape Canaveral AFS SLC 41 STDN A41P#LaunchPad-80.58287267,28.58345786Launch PadActiveUnited StatesHammaguira - Brigitte-A#LaunchPad-3.0081,30.8712Launch PadActiveAlgeriaSemnan Launch Center - xx4#LaunchPad53.955,35.258Launch PadActiveIranSvobodny Cosmodrome - xx4#LaunchPad128.3386,51.7938Launch PadInactiveRussiaFlorida 1 (FL1) Leolut#GroundStation-80.3838,25.616Ground StationActiveUnited StatesDongfeng Station#GroundStation125.53,42.68Ground StationActiveChinaGreen River - Pad 3#LaunchPad-110.0741,38.9426Launch PadActiveUnited StatesBaikonur Cosmodrome LC 193#LaunchPad63.389,45.9532Launch PadActiveKazakhstanBeijing Station#GroundStation116.2275,40.1172Ground StationActiveChinaBaikonur Cosmodrome LC 41-4#LaunchPad63.6649,45.9759Launch PadActiveKazakhstanBrunei#GroundStation114.929,4.946Ground StationActiveBruneiMatagorda Island#LaunchSite-96.46,28.32Launch SiteActiveUnited StatesDombarovsky Cosmodrome - x41#LaunchPad60.178331,51.50362Launch PadActiveRussiaMaiquetia (1) Leolut#GroundStation-66.982,10.598Ground StationPlannedVenezuelaBaikonur Cosmodrome - LC 250#LaunchPad63.3049,46.0083Launch PadActiveKazakhstanProspect Harbor Naval Sat Station#GroundStation-68.013,44.404Ground StationActiveUnited StatesGISTDA Ground Receiving Station#GroundStation100.788982,13.730775Ground StationActiveThailandKoganei xx1#GroundStation139.488503,35.711393Ground StationActiveJapanTanegashima Space Center - Sounding Rocket Pad#LaunchPad130.962691,30.376847Launch PadActiveJapanGatineau xx2#GroundStation-75.80811,45.58435Ground StationActiveCanadaGreen Bank Telescope 20m#GroundStation-79.82551,38.43684Ground StationActiveUnited StatesWest Freugh Ground Station#GroundStation-4.946,54.846Ground StationActiveUnited KingdomCUHK Station#GroundStation114.206591,22.421278Ground StationActiveChinaBaikonur Cosmodrome - LC 196#LaunchPad63.1477,45.8283Launch PadActiveKazakhstanMaspalomas 1 Geolut#GroundStation-15.634,27.764Ground StationActiveSpainKatsuura USB F2#GroundStation140.29975,35.20592Ground StationActiveJapanOrroral Valley STDN ORRL#LaserStation148.95480464,-35.62492722Laser StationActiveAustraliaBiscarosse BE#LaunchPad-1.2727,44.2742Launch PadActiveFranceKapustin Yar LC 107 2g#LaunchPad46.2958,48.5616Launch PadActiveRussiaDombarovsky Cosmodrome - x32#LaunchPad60.607974,51.241789Launch PadActiveRussiaWallops Flight Facility - LA 2 RAG#LaunchPad-75.4823,37.8385Launch PadActiveUnited StatesNorth Pole Station USAK01 STDN USAS#GroundStation-147.50021417,64.80424111Ground StationActiveUnited StatesDkhila Mateur#GroundStation9.714,36.88Ground StationActiveTunisiaCavalier AFS PARCS#RadarStation-97.8998,48.7246Radar StationActiveUnited StatesGreen River Pad 2#LaunchPad-110.0753,38.9413Launch PadActiveUnited StatesPoker Flat Station PF1 (STDN DX2S)#GroundStation-147.4311625,65.11783389Ground StationActiveUnited StatesHammaguira - Brigitte#LaunchPad-3.0357,30.8935Launch PadActiveAlgeriaBangkok (2) Leolut#GroundStation100.5432,13.717166Ground StationActiveThailandEglin AFB AN-FPS 85 PAR (STDN EG2F)#RadarStation-86.21471742,30.57252794Radar StationActiveUnited StatesPalmer Station#GroundStation-64.05107,-64.77413Ground StationActiveAntarcticaBaikonur Cosmodrome - LC 160#LaunchPad62.9423,46.0783Launch PadActiveKazakhstanOverberg Test Range xx2#LaunchPad20.25879,-34.61745Launch PadActiveSouth AfricaBarking Sands - LC 1#LaunchPad-159.777,22.058Launch PadActiveUnited StatesPonce de Leon STDN PDLS#GroundStation-80.91302136,29.06664839Ground StationActiveUnited StatesJiuquan Satellite Launch Center - SLS 2#LaunchPad100.2983,40.9607Launch PadActiveChinaCape Canaveral AFS LC 6#LaunchPad-80.5726,28.4407Launch PadInactiveUnited StatesOlenegorsk Radar#RadarStation33.9107,68.1137Radar StationActiveRussiaNHS STDN NHSS#GroundStation-71.62656253,42.94782133Ground StationActiveUnited StatesFort Huachuca STDN FTHF#GroundStation-110.37079797,31.57102425Ground StationActiveUnited StatesSvobodny Cosmodrome x12#LaunchPad128.252,51.8818Launch PadInactiveRussiaMount Stromlo SLR Station STDN MTSL#LaserStation149.00987869,-35.31614697Laser StationActiveAustraliaEuropean Direct Access Facility#GroundStation11.2789,48.0862Ground StationActiveGermanyWhite Sands - LC 50#LaunchPad-106.3488,32.4064Launch PadActiveUnited StatesGreen River - Pad 1#LaunchPad-110.0775,38.9416Launch PadActiveUnited StatesBaikonur Cosmodrome LC 90-20#LaunchPad62.9167,46.0855Launch PadActiveKazakhstanOrbcomm Matera B#GroundStation16.70869,40.64935Ground StationActiveItalyPulkovo#OpticalTrackingStation30.32737,59.77186Optical Tracking StationActiveRussiaTERSS#GroundStation147.42215,-42.92417Ground StationActiveAustraliaRaisting Station#GroundStation11.1126,47.8978Ground StationActiveGermanyYevpatoria 32m#GroundStation33.25016,45.17031Ground StationActiveUkraineAlcantara Launch Center UL Pad#LaunchPad-44.367,-2.316Launch PadActiveBrazilDombarovsky Cosmodrome - x25#LaunchPad59.524663,51.153297Launch PadActiveRussiaSeaMobile Holmdel Teleport#GroundStation-74.1732,40.3945Ground StationActiveUnited StatesIssus-Aussaguel STDN AUSS#GroundStation1.499412,43.428696Ground StationActiveFranceAlbany Leolut#GroundStation117.899,-35.12Ground StationActiveAustraliaVLBA Fort Davis#GroundStation-103.944817,30.635031Ground StationActiveUnited StatesBiscarosse - BE#LaunchPad-1.2727,44.2742Launch PadActiveFranceKwajalein RADOT#OpticalTrackingStation167.719221,8.723176Optical Tracking StationActiveMarshall IslandsPoker Flat - LC 6#LaunchPad-147.4621,65.1169Launch PadActiveUnited StatesLeuk#GroundStation7.645278,46.318056Ground StationActiveSwitzerlandGilmore Creek STDN GLBS#GroundStation-147.50869853,64.97348203Ground StationActiveUnited StatesWhite Sands STDN WH6F#GroundStation-106.65901228,33.81386394Ground StationActiveUnited StatesManaus Leolut#GroundStation-60.054,-3.023166Ground StationActiveBrazilAuScope VLBI Yarragadee#GroundStation115.3456,-29.0471Ground StationActiveAustraliaWallops Island STDN WL6S#GroundStation-75.4611,37.9456Ground StationActiveUnited StatesCape Canaveral ROCC#GroundStation-80.5949,28.4311Ground StationActiveUnited StatesPoint Mugu STDN PM2F#GroundStation-119.15379856,34.12250292Ground StationActiveUnited StatesXichang LA 2#LaunchPad102.0271,28.2455Launch PadActiveChinaNorth Pole Station USAK02#GroundStation-147.5003,64.8048Ground StationActiveUnited StatesBiscarosse - SUD#LaunchPad-1.276,44.295Launch PadActiveFranceDombarovsky Cosmodrome x33#LaunchPad60.142215,51.248931Launch PadActiveRussiaCayenne Station#GroundStation-52.30968,4.94777Ground StationActiveFrench GuianaMillstone Hill Radar#RadarStation-71.491,42.6174Radar StationActiveUnited StatesTranquillon Peak STDN VD4F#GroundStation-120.56111494,34.58304294Ground StationActiveUnited StatesEtam Earth Station#GroundStation-79.736,39.281Ground StationActiveUnited StatesCalifornia 2 (CA2) Leolut#GroundStation-120.5517,34.662333Ground StationActiveUnited StatesFort Meade#GroundStation-76.765,39.102Ground StationActiveUnited StatesInmarsat Station Pune#GroundStation73.957,19.151Ground StationActiveIndiaXiamen Station#GroundStation118.09,24.48Ground StationActiveChinaPlesetsk Cosmodrome - LC 43-3#LaunchPad40.4501,62.9273Launch PadActiveRussiaKapustin Yar - START Pioner#LaunchPad46.3009,48.6149Launch PadActiveRussiaBaikonur Cosmodrome - LC 31#LaunchPad63.5643,45.9961Launch PadActiveKazakhstanKaneohe Omega Transmitter#GroundStation-157.8307,21.4048Ground StationInactiveUnited StatesMerritt Island STDN EULY#GroundStation-80.65301219,28.46356408Ground StationActiveUnited StatesMt Lemmon STDN MTLF#GroundStation-110.78880306,32.44166322Ground StationActiveUnited StatesNakhodka Krona Complex#RadarStation132.577073,42.935333Radar StationActiveRussiaVTS STDN VT2S#GroundStation-120.50539767,34.82564078Ground StationActiveUnited StatesThermopylae Station#GroundStation22.6866,38.8231Ground StationActiveGreeceGrand Turk Island STDN GTKQ#GroundStation-71.13208822,21.46263161Ground StationActiveUnited KingdomFort Monmouth#GroundStation-74.036,40.321Ground StationActiveUnited StatesJonathan Dickinson STDN JDIY#GroundStation-80.10874725,26.98380394Ground StationActiveUnited StatesBaikonur Cosmodrome - LC 41-4#LaunchPad63.6649,45.9759Launch PadActiveKazakhstanOverberg Test Range - xx2#LaunchPad20.25879,-34.61745Launch PadActiveSouth AfricaDombarovsky Cosmodrome x45#LaunchPad59.956989,51.558712Launch PadActiveRussiaFairbanks STDN ULAE#GroundStation-147.51806617,64.97681389Ground StationActiveUnited StatesCape Canaveral Air Force Station - LC 3#LaunchPad-80.5363,28.4662Launch PadInactiveUnited StatesDombarovsky Cosmodrome - x34#LaunchPad60.461524,51.259129Launch PadActiveRussiaDombarovsky Cosmodrome - x40#LaunchPad60.372543,51.379286Launch PadActiveRussiaGunma Leolut#GroundStation138.955,36.426Ground StationActiveJapanOverberg Test Range xx1#LaunchPad20.30271,-34.60276Launch PadActiveSouth AfricaSatish Dhawan Pad 1#LaunchPad80.2346,13.7334Launch PadActiveIndiaCape Canaveral Air Force Station - LC 1#LaunchPad-80.5375,28.465Launch PadInactiveUnited StatesDSS 65 Robledo prior to 2005#GroundStation-4.25141796,40.42718512Ground StationRelocatedSpainSturup Station#GroundStation13.349467,55.541122Ground StationActiveSwedenBaikonur Cosmodrome LC 196#LaunchPad63.1477,45.8283Launch PadActiveKazakhstanMSSC Beam Director Tracker#OpticalTrackingStation-156.2576,20.70855Optical Tracking StationActiveUnited StatesPaumalu Teleport#GroundStation-158.034,21.67Ground StationActiveUnited StatesBaikonur Cosmodrome LC 242#LaunchPad63.4626,45.9407Launch PadActiveKazakhstanKerguelen Island STDN KGLQ#GroundStation70.25598389,-49.35191544Ground StationActiveFranceSantiago Leolut#GroundStation-70.7,-33.489Ground StationActiveChileDombarovsky Cosmodrome x16#LaunchPad59.484369,51.06922Launch PadActiveRussiaBaikonur Cosmodrome - LC 107#LaunchPad63.81,46.046Launch PadActiveKazakhstanPoint Mugu STDN PM4F#GroundStation-119.15283014,34.12211825Ground StationActiveUnited StatesVandenberg AFB SLC 1W#LaunchPad-120.6303,34.7571Launch PadInactiveUnited StatesSan Marco Launch Platform#LaunchSite40.2125,-2.9383Launch SiteInactiveKenyaEsrange Station ELS STDN KILS#GroundStation21.062337,67.876532Ground StationActiveSwedenGTS STDN GT2S#GroundStation144.85543775,13.61588064Ground StationActiveUnited StatesCold Lake#LaunchSite-110.28,54.41Launch SiteActiveCanadaSvobodny Cosmodrome - xx3#LaunchPad128.185,51.792Launch PadInactiveRussiaLabuan Teleport#GroundStation115.198261,5.33198Ground StationActiveMalaysiaFrance Sud#GroundStation2.12416,43.27977Ground StationActiveFranceBaikonur Cosmodrome#LaunchSite63.3,46Launch SiteActiveKazakhstanBaikonur Cosmodrome xx1#LaunchPad63.462718,45.939593Launch PadActiveKazakhstanCape Canaveral Air Force Station - LC 11#LaunchPad-80.5395,28.4753Launch PadInactiveUnited StatesWoomera Test Range#LaunchSite136.5,-30.95Launch SiteActiveAustraliaObninsk#GroundStation36.62,55.08Ground StationActiveRussiaPoker Flat#LaunchSite-147.485,65.129Launch SiteActiveUnited StatesHaystack Radar#RadarStation-71.4881,42.62329Radar StationActiveUnited StatesAlcantara Launch Center RAG Pad#LaunchPad-44.367,-2.3148Launch PadActiveBrazilMickelsen Safeguard Complex#RadarStation-98.3565,48.5895Radar StationInactiveUnited StatesXichang LA 4#LaunchPad102.0232,28.2495Launch PadActiveChinaBaikonur Cosmodrome LC 31#LaunchPad63.5643,45.9961Launch PadActiveKazakhstanFresnedillas STDN MAD8#GroundStation-4.16838497,40.45544939Ground StationRelocatedSpainCape Canaveral Air Force Station - LC 34#LaunchPad-80.5611,28.5218Launch PadInactiveUnited StatesKrona 20J6 Complex#RadarStation41.342745,43.825373Radar StationActiveRussiaBangalore Leolut#GroundStation77.5117,13.034833Ground StationActiveIndiaBaikonur Cosmodrome - LC 105#LaunchPad63.4962,45.9503Launch PadActiveKazakhstanGreenbelt STDN BLT3#GroundStation-76.84276675,38.9984475Ground StationInactiveUnited StatesRiyadh#GroundStation46.5865,24.4259Ground StationActiveSaudi ArabiaBaikonur Cosmodrome - LC 246#LaunchPad63.4236,45.7656Launch PadActiveKazakhstanAscent Media Northvale#GroundStation-73.9414,41.0161Ground StationActiveUnited StatesHTSA#GroundStation-158.242109,21.56228Ground StationActiveUnited StatesCordoba#GroundStation-64.4636,-31.5242Ground StationActiveArgentinaOnsala Observatory 20m#GroundStation11.92632,57.39582Ground StationActiveSwedenPoker Flat Station PF2 (STDN DXAS)#GroundStation-147.43350389,65.11792972Ground StationActiveUnited StatesGreen Bank 85-1 Telescope#GroundStation-79.82817,38.43586Ground StationActiveUnited StatesOkinawa USB F2#GroundStation127.90353,26.49976Ground StationActiveJapanCape Canaveral AFS LC 26A#LaunchPad-80.5705,28.4446Launch PadInactiveUnited StatesNoto Radio Observatory#GroundStation14.989031,36.87605Ground StationActiveItalyGTSB#GroundStation144.8554464,13.6158802Ground StationActiveUnited StatesPalmachim Air Force Base - Arrow II Launcher#LaunchPad34.7023,31.8859Launch PadActiveIsraelCamp Roberts#GroundStation-120.754,35.736Ground StationActiveUnited StatesWoomera Test Range - LA 6A#LaunchPad136.4394,-31.074Launch PadActiveAustraliaHartebeesthoek STDN HB4S#GroundStation27.71260331,-25.88672544Ground StationActiveSouth AfricaDSS 66 Robledo STDN DS66#GroundStation-4.25141764,40.42997486Ground StationActiveSpainMojave Air and Space Port#LaunchSite-118.15,35.06Launch SitePlannedUnited StatesOrbcomm Almaty A#GroundStation76.78235,44.49732Ground StationActiveKazakhstanArabsat Amman Station#GroundStation35.9315,31.9053Ground StationActiveJordanAGS STDN AG1S#GroundStation-147.46120417,65.11670028Ground StationActiveUnited StatesWallops Island STDN WTDQ#GroundStation-75.47746889,37.92306592Ground StationActiveUnited StatesDSS 13 Goldstone legacy#GroundStation-116.79488,35.24773Ground StationInactiveUnited StatesDocklands Teleport#GroundStation0.058858,51.49939Ground StationActiveUnited KingdomJiuquan xx1#LaunchPad100.304946,41.280432Launch PadActiveChinaPoint Arguello Drop Zone#LaunchSite-123,36Launch SiteActiveUnited StatesKatsuura USB F1#GroundStation140.29886,35.21086Ground StationActiveJapanLandsat Station STDN SF2S#GroundStation-96.61943778,43.73428667Ground StationActiveUnited StatesCeduna Observatory#GroundStation133.80968,-31.86772Ground StationActiveAustraliaInuvik Station IVK#GroundStation-133.53816,68.31762Ground StationActiveCanadaAbuja Leolut#GroundStation7.493,9.076Ground StationActiveNigeriaTanegashima Space Center - Osaki Range#LaunchPad130.970274,30.39953Launch PadInactiveJapanJeddah (1) Leolut#GroundStation39.1427,21.654833Ground StationActiveSaudi ArabiaWhite Sands LC 94#LaunchPad-106.4589,34.2049Launch PadActiveUnited StatesAerospace Data Facility Colorado#GroundStation-104.7765,39.7173Ground StationActiveUnited StatesMaspalomas STDN MPLS#GroundStation-15.6338,27.762892Ground StationActiveSpainAdelaide Satellite Facility#GroundStation138.572,-34.8627Ground StationActiveAustraliaGagan Super RADOT#OpticalTrackingStation167.5376,9.286663Optical Tracking StationActiveMarshall IslandsLasham Satellite Ground Station#GroundStation-1.044,51.184Ground StationDemolishedUnited KingdomDSS 11 Goldstone STDN PIOD#GroundStation-116.84937706,35.38951828Ground StationInactiveUnited StatesBaikonur Cosmodrome LC 70#LaunchPad63.0963,46.0329Launch PadActiveKazakhstanKapustin Yar LC 107 2f#LaunchPad46.2958,48.5688Launch PadActiveRussiaKootwijk STDN KOOL#LaserStation5.80976658,52.1783975Laser StationActiveNetherlandsOkinawa USB F1#GroundStation127.90179,26.49815Ground StationActiveJapanIP-5 Tracking Station#GroundStation63.34,45.704Ground StationActiveKazakhstanDombarovsky Cosmodrome x19#LaunchPad59.844333,51.093509Launch PadActiveRussiaTonopah Test Range#LaunchSite-116.77,37.8Launch SiteActiveUnited StatesOverberg Earth Station 4m#GroundStation20.2206,-34.6202Ground StationActiveSouth AfricaKapustin Yar LC 107 2e#LaunchPad46.2949,48.5688Launch PadActiveRussiaGila River Space Fence#RadarStation-112.031,33.113Radar StationActiveUnited StatesAtlantic Test Range#GroundStation-76.378,38.296Ground StationActiveUnited StatesCape Canaveral AFS LC 12#LaunchPad-80.5421,28.4806Launch PadInactiveUnited StatesTranquillon Peak STDN VD3F#GroundStation-120.56111494,34.58304294Ground StationActiveUnited StatesEdwards AFB STDN FR2F#GroundStation-117.91187492,34.95773825Ground StationActiveUnited StatesBigen Island#LaunchSite171.0428,8.3646Launch SiteActiveMarshall IslandsLovell Telescope#GroundStation-2.308724,53.236548Ground StationActiveUnited KingdomSonmiani#LaunchSite66.75,25.2Launch SiteActivePakistanSt Hubert#GroundStation-73.39675,45.518836Ground StationActiveCanadaHartebeesthoek, Europ Star#GroundStation27.70793,-25.88549Ground StationActiveSouth AfricaSanta Ana#OpticalTrackingStation-64.624,-21.5963Optical Tracking StationActiveBoliviaPlesetsk Cosmodrome - LC 32-1#LaunchPad40.7872,62.9073Launch PadActiveRussiaDombarovsky Cosmodrome - x10#LaunchPad60.649859,50.985518Launch PadActiveRussiaCuiaba Station#GroundStation-56.0734,-15.5525Ground StationActiveBrazilPlesetsk Cosmodrome LC 43-4#LaunchPad40.4572,62.9288Launch PadActiveRussiaKapustin Yar LC 86 4a#LaunchPad46.295,48.5508Launch PadActiveRussiaEVCF STDN EVCS#GroundStation-80.576,28.486Ground StationActiveUnited StatesPoker Flat LC 6#LaunchPad-147.4621,65.1169Launch PadActiveUnited StatesCape Canaveral AFS LC 32#LaunchPad-80.5556,28.4537Launch PadInactiveUnited StatesBarking Sands - LC 10#LaunchPad-159.7816,22.0569Launch PadActiveUnited StatesSvobodny Cosmodrome - xx2#LaunchPad128.4085,51.7734Launch PadInactiveRussiaBangkok 1 Leolut#GroundStation100.5433,13.717166Ground StationActiveThailandEdwards AFB STDN EA3F#GroundStation-118.09132969,34.93811433Ground StationActiveUnited StatesStellenbosch University#GroundStation18.86608,-33.92826Ground StationActiveSouth AfricaBeale AFB PAVE PAWS#RadarStation-121.3506,39.1361Radar StationActiveUnited StatesKourou Station#GroundStation-52.80466242,5.25143694Ground StationActiveFrench GuianaOnsala Observatory 25m#GroundStation11.9178,57.39307Ground StationActiveSwedenSvalsat SG 1 STDN SG1S#GroundStation15.38969589,78.23072231Ground StationActiveNorwayTVF1#GroundStation-80.575793,28.4858933Ground StationActiveUnited StatesWoomera Test Range LA 4#LaunchPad136.5155,-30.9053Launch PadActiveAustraliaHawaii 2 HI2 Leolut#GroundStation-157.9963,21.520666Ground StationActiveUnited StatesUsingen Station#GroundStation8.48,50.333Ground StationActiveGermanyWallops Flight Facility - LA 2 MLS#LaunchPad-75.4835,37.8375Launch PadActiveUnited StatesLegan Super RADOT#OpticalTrackingStation167.578487,8.981922Optical Tracking StationActiveMarshall IslandsAscension AAF Radar#RadarStation-14.412,-7.951Radar StationActiveUnited KingdomDSS 41 Island Lagoon#GroundStation136.8875,-31.382Ground StationDemolishedAustraliaLushan Station#GroundStation116,29.7Ground StationActiveChinaEsrange Rocket Range C#LaunchPad21.1029,67.8931Launch PadActiveSwedenRota SATCOM Terminal#GroundStation-6.367,36.63747Ground StationActiveSpainWoomera Test Range LA 1#LaunchPad136.5037,-30.9587Launch PadActiveAustraliaWhite Sands STDN WH5K#GroundStation-106.60855361,32.50124183Ground StationActiveUnited StatesJordan Lake Space Fence#RadarStation-86.2636,32.6588Radar StationActiveUnited StatesTaiyuan Satellite Launch Center - South Pad#LaunchPad111.60666,38.83538Launch PadActiveChinaTanegashima Space Center - Yoshinobu LC, Pad 2#LaunchPad130.975497,30.400919Launch PadActiveJapanBaikonur Cosmodrome - LC 60-6#LaunchPad64.0161,46.0188Launch PadActiveKazakhstanTanegashima Sounding Rocket Pad#LaunchPad130.962691,30.376847Launch PadActiveJapanWallops Flight Facility - LA 3B#LaunchPad-75.4725,37.8494Launch PadActiveUnited StatesDombarovsky Cosmodrome - x15#LaunchPad60.492582,51.053644Launch PadActiveRussiaOverberg Test Range#LaunchSite20.28,-34.61Launch SiteActiveSouth AfricaDubna Teleport#GroundStation37.251,56.738Ground StationActiveRussiaDombarovsky Cosmodrome x32#LaunchPad60.607974,51.241789Launch PadActiveRussiaJiuquan Satellite Launch Center - LA 3B#LaunchPad100.7803,41.1593Launch PadActiveChinaTel Aviv#GroundStation34.9,32Ground StationActiveIsraelJoint Defense Facility Nurrungar#GroundStation136.776545,-31.323342Ground StationInactiveAustraliaCroughton Station#GroundStation-1.187,51.987Ground StationActiveUnited KingdomBermuda STDN BDAQ#GroundStation-64.65344947,32.34794319Ground StationInactiveBermudaOrbcomm Hartebeesthoek A#GroundStation27.70566,-25.88736Ground StationActiveSouth AfricaCape Canaveral Air Force Station - LC 30#LaunchPad-80.5803,28.4393Launch PadInactiveUnited StatesNobeyama Radio Observatory#GroundStation138.472609,35.944518Ground StationActiveJapanJeddah 1 Leolut#GroundStation39.1427,21.654833Ground StationActiveSaudi ArabiaDombarovsky Cosmodrome - x18#LaunchPad59.842142,51.094496Launch PadActiveRussiaNorth Pole Station USAK02#GroundStation-147.5003,64.8048Ground StationActiveUnited StatesRecife Leolut#GroundStation-34.925,-8.138333Ground StationActiveBrazilWoomera Test Range LA 3#LaunchPad136.5191,-30.93Launch PadActiveAustraliaSea Launch Mobile Platform#LaunchSite-154,0Launch SiteActiveInternationalPillar Point STDN PPTF#GroundStation-122.49869897,37.49769667Ground StationActiveUnited StatesSea Launch Mobile Platform#LaunchSite-154,0Launch SiteActiveInternationalBaikonur Cosmodrome - LC 194#LaunchPad63.301,45.854Launch PadActiveKazakhstanBurum Station#GroundStation6.2143,53.2842Ground StationActiveNetherlandsBarking Sands LC 19#LaunchPad-159.7813,22.0619Launch PadActiveUnited StatesWallops Flight Facility#LaunchSite-75.48,37.85Launch SiteActiveUnited StatesVernon Valley Teleport#GroundStation-74.5269,41.2018Ground StationActiveUnited StatesWoomera Test Range - LA 5B#LaunchPad136.4763,-30.9711Launch PadActiveAustraliaPalmachim Air Force Base - Shavit Pad#LaunchPad34.6802,31.8848Launch PadActiveIsraelCape Canaveral AFS LC 18A#LaunchPad-80.5623,28.4506Launch PadInactiveUnited StatesSouth Uist Missile Range#LaunchSite-7.4,57.36Launch SiteActiveUnited KingdomBrasilia Geolut#GroundStation-47.902666,-15.8572Ground StationActiveBrazilToulouse (1) Leolut#GroundStation1.4808,43.560666Ground StationActiveFranceGreen Bank Telescope 43m#GroundStation-79.83585,38.43773Ground StationActiveUnited StatesIstanbul ITU Station#GroundStation29.02729,41.1015Ground StationActiveTurkeyNashville Station#GroundStation-86.756,36.235Ground StationActiveUnited StatesCastle Rock Teleport#GroundStation-104.807303,39.276772Ground StationActiveUnited StatesRas Al Khaimah Spaceport#LaunchSite55.941,25.617Launch SitePlannedUnited Arab EmiratesBaikonur Cosmodrome LC 165#LaunchPad62.9185,45.9912Launch PadActiveKazakhstanBaikonur Cosmodrome LC 80-17#LaunchPad64.0198,46.0068Launch PadActiveKazakhstanL-3 Integrated Systems Test Range#GroundStation-96.056,33.07Ground StationActiveUnited StatesVandenberg AFB SLC 3E STDN WTEP#LaunchPad-120.59,34.64Launch PadActiveUnited StatesAndoya Rocket Range#LaunchSite16.021,69.294Launch SiteActiveNorwayAbastumani#OpticalTrackingStation42.82311,41.75444Optical Tracking StationActiveGeorgiaDombarovsky Cosmodrome x47#LaunchPad59.92692,51.600688Launch PadActiveRussiaThule STDN THUS#GroundStation-68.59901778,76.51629306Ground StationActiveGreenlandGuiana Space Center - ZL2 (STDN KR2P)#LaunchPad-52.77567156,5.23240672Launch PadInactiveFrench GuianaGreenbelt STDN BLTA#GroundStation-76.84193894,38.9982475Ground StationActiveUnited StatesIstana Station#GroundStation114.9231,4.8717Ground StationActiveBruneiWallops Flight Facility - LA 1#LaunchPad-75.4861,37.8352Launch PadActiveUnited StatesCape Canaveral AFS LC 14#LaunchPad-80.5471,28.4911Launch PadInactiveUnited StatesSGS Oakhanger Site STDN OTSS#GroundStation-0.89489706,51.11411733Ground StationActiveUnited KingdomALTAIR STDN KM2F#RadarStation167.47928833,9.39542881Radar StationActiveMarshall IslandsBangalore Geolut#GroundStation77.511666,13.0348Ground StationActiveIndiaLaurentides Station#GroundStation-74.5333,45.9444Ground StationActiveCanadaReach Stanley Station#GroundStation114.2722,22.2778Ground StationActiveChinaGagan#GroundStation167.53753,9.28686Ground StationActiveMarshall IslandsKapustin Yar - LC 107 2e#LaunchPad46.2949,48.5688Launch PadActiveRussiaHammaguira Beatrice#LaunchPad-3.0851,30.8601Launch PadActiveAlgeriaWoomera Test Range - LA 2#LaunchPad136.521,-30.9433Launch PadActiveAustraliaTRY ADD Radar#RadarStation73.573,45.8108Radar StationActiveKazakhstanKapustin Yar - LC 86 4b#LaunchPad46.295,48.5487Launch PadActiveRussiaBaikonur Cosmodrome LC 192#LaunchPad63.2995,46.0243Launch PadActiveKazakhstanPalmachim AFB Arrow II Launcher#LaunchPad34.7023,31.8859Launch PadActiveIsraelPoker Flat STDN WT2S#GroundStation-147.46154869,65.11673325Ground StationInactiveUnited StatesMaui GEODSS Cam2#OpticalTrackingStation-156.2575,20.7081Optical Tracking StationActiveUnited StatesVandenberg AFB SLC 6 STDN WT6P#LaunchPad-120.62609183,34.58163228Launch PadActiveUnited StatesAlcantara Launch Center - RAG Pad#LaunchPad-44.367,-2.3148Launch PadActiveBrazilPlesetsk Cosmodrome - LC 43-4#LaunchPad40.4572,62.9288Launch PadActiveRussiaDombarovsky Cosmodrome - x20#LaunchPad60.087307,51.096909Launch PadActiveRussiaDongara Station AUWA03#GroundStation115.3493,-29.04607Ground StationActiveAustraliaWhite Sands - LC 39#LaunchPad-106.2367,32.4161Launch PadActiveUnited StatesDombarovsky Cosmodrome - xx6#LaunchPad60.52463,50.877274Launch PadActiveRussiaSATCOM Ground Terminal Facility#GroundStation-75.890866,45.349824Ground StationActiveCanadaDombarovsky Cosmodrome - xx5#LaunchPad59.595072,50.837656Launch PadActiveRussiaBoa Vista Station#GroundStation-60.67,2.82Ground StationActiveBrazilMalargue DSA 3#GroundStation-69.3983,-35.776Ground StationPlannedArgentinaGuiana Space Center - ZLV#LaunchPad-52.775,5.236Launch PadActiveFrench GuianaBeijing (2) Leolut#GroundStation116.42,39.908Ground StationActiveChinaScanEx Irkutsk Station#GroundStation104.30864,52.275261Ground StationActiveRussiaPleumeur-Bodou Station#GroundStation-3.521,48.786Ground StationInactiveFranceSolna#GroundStation17.96916,59.35483Ground StationActiveSwedenCape Canaveral AFS LC 29#LaunchPad-80.5778,28.4285Launch PadInactiveUnited StatesMILA STDN MIL3#GroundStation-80.69339994,28.50812389Ground StationInactiveUnited StatesMaspalomas Leolut#GroundStation-15.634,27.764Ground StationActiveSpainWellington 1 Geolut#GroundStation175.5045,-41.152Ground StationActiveNew ZealandTanegashima Yoshinobu LC Pad 2#LaunchPad130.975497,30.400919Launch PadActiveJapanNARSS Aswan Station#GroundStation32.91,24.07Ground StationActiveEgyptMojave Apollo Station#GroundStation-116.88759,35.33163Ground StationActiveUnited StatesEsrange Station ESSEX#GroundStation21.0630978,67.8904339Ground StationActiveSwedenWallops Flight Facility - LA 2 AML-1#LaunchPad-75.4828,37.8381Launch PadActiveUnited StatesWallops Island STDN DS87#GroundStation-75.47630453,37.92658986Ground StationActiveUnited StatesHartebeesthoek STDN HB5S#GroundStation27.70667183,-25.8869335Ground StationActiveSouth AfricaRecife Station#GroundStation-34.9,-8.04Ground StationActiveBrazilVery Large Array#GroundStation-107.618283,34.078749Ground StationActiveUnited StatesClear AFS PAVE PAWS#RadarStation-149.189444,64.288611Radar StationActiveUnited StatesWallops Flight Facility - LA 2 JUP#LaunchPad-75.482,37.8394Launch PadActiveUnited StatesXTAR 6m 1#GroundStation-15.63075,27.76268Ground StationActiveSpainCape Canaveral AFS LC 13#LaunchPad-80.5446,28.4859Launch PadInactiveUnited StatesBari Leolut#GroundStation16.8477,41.137666Ground StationActiveItalyDombarovsky Cosmodrome x39#LaunchPad60.472701,51.346817Launch PadActiveRussiaPlesetsk Cosmodrome LC 16-2#LaunchPad40.6834,62.96Launch PadActiveRussiaEglin AFB Launch Site#LaunchSite-85.34588,29.67729Launch SiteActiveUnited StatesFlorida 1 FL1 Leolut#GroundStation-80.3838,25.616Ground StationActiveUnited StatesNudol Station#GroundStation36.5033,56.15Ground StationActiveRussiaGEROC Ikonos Station#GroundStation11.28006,48.08407Ground StationActiveGermanyBaikonur Cosmodrome - LC 245#LaunchPad63.5271,45.8175Launch PadActiveKazakhstanSwedish-ESO Submillimetre Telescope#GroundStation-70.73234,-29.26345Ground StationInactiveChileSantiago Station AGO 5 STDN AG23#GroundStation-70.66731169,-33.15179414Ground StationActiveChileSylmar Station#GroundStation-118.4875,34.3152Ground StationActiveUnited StatesCape Canaveral Air Force Station - SLC 40 (STDN A40P)#LaunchPad-80.57719364,28.56198939Launch PadActiveUnited StatesBaikonur Cosmodrome - xx4#LaunchPad62.935495,46.079747Launch PadActiveKazakhstanVikram Sarabhai#LaunchSite76.869836,8.530116Launch SiteActiveIndiaWallops Island STDN WP2S#GroundStation-75.47441625,37.92806697Ground StationActiveUnited StatesWhite Sands - LC 36#LaunchPad-106.322,32.417Launch PadActiveUnited StatesLake Cowichan Station#GroundStation-124.07536,48.843501Ground StationActiveCanadaTutuila BRT STDN AMSJ#GroundStation-170.71941667,-14.33144444Ground StationActiveUnited StatesOffutt AFB SATCOM Terminal#GroundStation-95.911,41.1086Ground StationActiveUnited StatesCape Canaveral AFS LC 31#LaunchPad-80.5563,28.4519Launch PadInactiveUnited StatesCape Canaveral Air Force Station - SLC 20#LaunchPad-80.5567,28.5122Launch PadActiveUnited StatesMaadi Earth Station#GroundStation31.275,29.967Ground StationActiveEgyptDombarovsky Cosmodrome - x44#LaunchPad59.911557,51.54739Launch PadActiveRussiaZenith Antenna#RadarStation-71.49122,42.619Radar StationActiveUnited StatesSaipan STDN SIPQ#GroundStation145.79621667,15.24914583Ground StationActiveUnited StatesDSS 54 Robledo STDN DS54#GroundStation-4.25409683,40.42562167Ground StationActiveSpainCape Canaveral Air Force Station - LC 32#LaunchPad-80.5556,28.4537Launch PadInactiveUnited StatesBaikonur Cosmodrome LC 108#LaunchPad63.815,46.046Launch PadActiveKazakhstanBACC#GroundStation116.257092,40.071989Ground StationActiveChinaWhite Sands STDN WHSK#GroundStation-106.60855172,32.50101206Ground StationActiveUnited StatesDombarovsky Cosmodrome x15#LaunchPad60.492582,51.053644Launch PadActiveRussiaPlesetsk Cosmodrome LC 132-1#LaunchPad40.8686,62.8833Launch PadActiveRussiaCape Canaveral Air Force Station - LC 21#LaunchPad-80.5403,28.4606Launch PadInactiveUnited StatesPoker Flat LC 3#LaunchPad-147.4851,65.1299Launch PadActiveUnited StatesPlesetsk Cosmodrome LC 43-3#LaunchPad40.4501,62.9273Launch PadActiveRussiaWeilheim STDN WU1S#GroundStation11.0853025,47.88006944Ground StationActiveGermanyKoganei STDN KOGL#LaserStation139.48827494,35.71027478Laser StationActiveJapanEsrange Rocket Range S#LaunchPad21.1054,67.8932Launch PadActiveSwedenSvalsat SG 2 STDN KLMS#GroundStation15.39813814,78.23022167Ground StationActiveNorwayNCTS Diego Garcia#GroundStation72.363,-7.266Ground StationActiveUnited KingdomNortheastern Space Radio Observatory#GroundStation-38.42599,-3.87812Ground StationActiveBrazilHTS STDN HT2S#GroundStation-158.26227883,21.56897181Ground StationActiveUnited StatesGreenbelt Leolut#GroundStation-76.841,38.998666Ground StationActiveUnited StatesDombarovsky Cosmodrome - x22#LaunchPad59.634472,51.11475Launch PadActiveRussiaWallops Island STDN WL3S#GroundStation-75.46043669,37.94579497Ground StationActiveUnited StatesWallops Flight Facility - LA 3#LaunchPad-75.4725,37.8506Launch PadActiveUnited StatesMartlesham Heath Station#GroundStation1.2874,52.0597Ground StationActiveUnited KingdomHawaii 2 (HI2) Leolut#GroundStation-157.9963,21.520666Ground StationActiveUnited StatesMaui GEODSS, xx1#OpticalTrackingStation-156.2575,20.7085Optical Tracking StationActiveUnited StatesHartebeesthoek Ku 13m#GroundStation27.70745,-25.88547Ground StationActiveSouth AfricaDombarovsky Cosmodrome - xx1#LaunchPad59.655376,50.658373Launch PadActiveRussiaSanya Ground Station#GroundStation109.311,18.313Ground StationActiveChinaClarksburg Teleport#GroundStation-77.270401,39.218075Ground StationActiveUnited StatesToulouse Geolut#GroundStation1.480833,43.5587Ground StationActiveFranceSvobodny Cosmodrome - xx9#LaunchPad128.3656,51.837Launch PadInactiveRussiaDombarovsky Cosmodrome - x16#LaunchPad59.484369,51.06922Launch PadActiveRussiaBaikonur Cosmodrome - LC 162-36#LaunchPad63.0668,46.0323Launch PadActiveKazakhstanHong Kong 2 Leolut#GroundStation114.1445,22.275833Ground StationActiveChinaDiego Garcia GEODSS, xx1#OpticalTrackingStation72.45203,-7.41162Optical Tracking StationActiveUnited KingdomBeijing 1 Leolut#GroundStation116.42,39.908Ground StationActiveChinaKapustin Yar - LC 107 2f#LaunchPad46.2958,48.5688Launch PadActiveRussiaFort Belvoir SATCOM Terminal#GroundStation-77.145,38.726Ground StationActiveUnited StatesCape Canaveral Air Force Station - LC 12#LaunchPad-80.5421,28.4806Launch PadInactiveUnited StatesBaikonur Cosmodrome LC 250#LaunchPad63.3049,46.0083Launch PadActiveKazakhstanDSS 33 Tidbinbilla#GroundStation148.98304,-35.400549Ground StationDemolishedAustraliaAscension Island BRT STDN ACNJ#GroundStation-14.39076792,-7.91791558Ground StationActiveUnited KingdomJonathan Dickinson STDN JDIQ#GroundStation-80.10820406,26.98299969Ground StationActiveUnited StatesKiruna Station 13m#GroundStation20.96688,67.858428Ground StationActiveSwedenKennedy Space Center#LaunchSite-80.62,28.62Launch SiteActiveUnited StatesJakarta Leolut#GroundStation106.656,-6.126166Ground StationActiveIndonesiaVandenberg AFB SLC 3W STDN WT3P#LaunchPad-120.59285703,34.64367528Launch PadActiveUnited StatesKapustin Yar LC 86 4b#LaunchPad46.295,48.5487Launch PadActiveRussiaWallops Flight Facility LA 4#LaunchPad-75.4701,37.8508Launch PadActiveUnited StatesSan Nicolas#LaunchSite-119.52208,33.27981Launch SiteActiveUnited StatesDombarovsky Cosmodrome - x14#LaunchPad59.958431,51.036288Launch PadActiveRussiaAnhueng#LaunchSite126.47,36.7Launch SiteActiveSouth KoreaBlaavand Station#GroundStation8.1137,55.5571Ground StationActiveDenmarkBari Geolut#GroundStation16.847,41.137Ground StationActiveItalyChung-Li Station#GroundStation121.18705,24.96783Ground StationActiveTaiwanCape Canaveral Air Force Station - LC 29#LaunchPad-80.5778,28.4285Launch PadInactiveUnited StatesDish Antenna Facility#GroundStation-122.179604,37.40854Ground StationActiveUnited StatesOrbcomm Arcade A#GroundStation-78.382119,42.524867Ground StationActiveUnited StatesGerman Space Operations Center#GroundStation11.28123,48.08716Ground StationActiveGermanyCRISP Station#GroundStation103.774,1.2977Ground StationActiveSingaporeDombarovsky Cosmodrome - x33#LaunchPad60.142215,51.248931Launch PadActiveRussiaKACST Station#GroundStation46.642,24.71Ground StationActiveSaudi ArabiaUsuda#GroundStation138.3627,36.1325Ground StationActiveJapanCape Canaveral Air Force Station - SLC 17A (STDN A17P)#LaunchPad-80.56492617,28.44716106Launch PadActiveUnited StatesJiuquan Satellite Launch Center - LA 2B#LaunchPad100.3132,41.3061Launch PadActiveChinaMaui GEODSS, xx2#OpticalTrackingStation-156.2578,20.7081Optical Tracking StationActiveUnited StatesComcast Denver Station#GroundStation-104.9386,39.5793Ground StationActiveUnited StatesSvobodny Cosmodrome xx7#LaunchPad128.301,51.823Launch PadInactiveRussiaDombarovsky Cosmodrome - x21#LaunchPad59.576451,51.102299Launch PadActiveRussiaTaiyuan South Pad#LaunchPad111.60666,38.83538Launch PadActiveChinaKapustin Yar - xx4#LaunchPad46.299018,48.615791Launch PadActiveRussiaSondrestrom Radar Facility#RadarStation-50.9459,66.9856Radar StationActiveGreenlandAlgiers Leolut#GroundStation3.381,36.753333Ground StationActiveAlgeriaBiscarosse - BESA#LaunchPad-1.2335,44.3917Launch PadActiveFranceSedlec-Prcice Station#GroundStation14.5247,49.5919Ground StationActiveCzech RepublicJonathan Dickinson STDN JD2Y#GroundStation-80.10756081,26.98222986Ground StationActiveUnited StatesSvalRak#LaunchSite11.850278,78.931389Launch SiteActiveNorwayWhite Sands#LaunchSite-106.3,32.4Launch SiteActiveUnited StatesSantiago Station AGO 3 (STDN AGO3)#GroundStation-70.666403,-33.15110747Ground StationActiveChileKwajalein X-band Radar#RadarStation167.733133,8.724319Radar StationActiveMarshall IslandsEl Palomar Leolut#GroundStation-58.6,-34.6Ground StationActiveArgentinaSary Shagan Radar#RadarStation74.52,46.62Radar StationActiveKazakhstan \ No newline at end of file diff --git a/public/static/SampleData/kml/gdpPerCapita2008.kmz b/public/static/SampleData/kml/gdpPerCapita2008.kmz new file mode 100644 index 0000000..95dd00e Binary files /dev/null and b/public/static/SampleData/kml/gdpPerCapita2008.kmz differ diff --git a/public/static/SampleData/models/BoxInstanced/BoxInstanced.gltf b/public/static/SampleData/models/BoxInstanced/BoxInstanced.gltf new file mode 100644 index 0000000..311af0c --- /dev/null +++ b/public/static/SampleData/models/BoxInstanced/BoxInstanced.gltf @@ -0,0 +1,292 @@ +{ + "asset": { + "version": "2.0" + }, + "extensionsUsed": [ + "EXT_instance_features", + "EXT_structural_metadata", + "EXT_mesh_gpu_instancing" + ], + "extensionsRequired": [ + "EXT_mesh_gpu_instancing" + ], + "extensions": { + "EXT_structural_metadata": { + "schema": { + "classes": { + "box": { + "properties": { + "name": { + "type": "STRING" + }, + "volume": { + "type": "SCALAR", + "componentType": "FLOAT32" + } + } + }, + "section": { + "properties": { + "name": { + "type": "STRING" + }, + "id": { + "type": "SCALAR", + "componentType": "UINT16" + } + } + } + } + }, + "propertyTables": [ + { + "name": "Box", + "class": "box", + "count": 4, + "properties": { + "name": { + "stringOffsetType": "UINT16", + "values": 7, + "stringOffsets": 8 + }, + "volume": { + "values": 9 + } + } + }, + { + "name": "Section", + "class": "section", + "count": 2, + "properties": { + "name": { + "stringOffsetType": "UINT16", + "values": 10, + "stringOffsets": 11 + }, + "id": { + "values": 12 + } + } + } + ] + } + }, + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "nodes": [ + { + "mesh": 0, + "extensions": { + "EXT_mesh_gpu_instancing": { + "attributes": { + "TRANSLATION": 3, + "ROTATION": 4, + "SCALE": 5, + "_FEATURE_ID_0": 6 + } + }, + "EXT_instance_features": { + "featureIds": [ + { + "label": "perInstance", + "propertyTable": 0, + "featureCount": 4 + }, + { + "label": "section", + "propertyTable": 1, + "attribute": 0, + "featureCount": 2 + } + ] + } + } + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "POSITION": 0, + "NORMAL": 1 + }, + "indices": 2, + "mode": 4 + } + ] + } + ], + "accessors": [ + { + "name": "Positions", + "bufferView": 0, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + }, + { + "name": "Normals", + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "type": "VEC3" + }, + { + "name": "Indices", + "bufferView": 2, + "byteOffset": 0, + "componentType": 5123, + "count": 36, + "type": "SCALAR" + }, + { + "name": "Instance Translations", + "bufferView": 3, + "byteOffset": 0, + "componentType": 5126, + "count": 4, + "type": "VEC3" + }, + { + "name": "Instance Rotations", + "bufferView": 4, + "byteOffset": 0, + "componentType": 5126, + "count": 4, + "type": "VEC4" + }, + { + "name": "Instance Scales", + "bufferView": 5, + "byteOffset": 0, + "componentType": 5126, + "count": 4, + "type": "VEC3" + }, + { + "name": "Instance Feature IDs", + "bufferView": 6, + "byteOffset": 0, + "componentType": 5126, + "count": 4, + "type": "SCALAR" + } + ], + "bufferViews": [ + { + "name": "Positions", + "buffer": 0, + "byteLength": 288, + "byteOffset": 0 + }, + { + "name": "Normals", + "buffer": 0, + "byteLength": 288, + "byteOffset": 288 + }, + { + "name": "Indices", + "buffer": 0, + "byteLength": 72, + "byteOffset": 576 + }, + { + "name": "Instance Translations", + "buffer": 1, + "byteLength": 48, + "byteOffset": 0 + }, + { + "name": "Instance Rotations", + "buffer": 1, + "byteLength": 64, + "byteOffset": 48 + }, + { + "name": "Instance Scales", + "buffer": 1, + "byteLength": 48, + "byteOffset": 112 + }, + { + "name": "Instance Feature IDs", + "buffer": 1, + "byteLength": 16, + "byteOffset": 160 + }, + { + "name": "Box Names", + "buffer": 2, + "byteLength": 40, + "byteOffset": 0 + }, + { + "name": "Box Name Offsets", + "buffer": 2, + "byteLength": 10, + "byteOffset": 40 + }, + { + "name": "Box Volumes", + "buffer": 2, + "byteLength": 16, + "byteOffset": 56 + }, + { + "name": "Section Name", + "buffer": 2, + "byteLength": 9, + "byteOffset": 72 + }, + { + "name": "Section Name Offsets", + "buffer": 2, + "byteLength": 6, + "byteOffset": 88 + }, + { + "name": "Section IDs", + "buffer": 2, + "byteLength": 4, + "byteOffset": 96 + } + ], + "buffers": [ + { + "name": "Geometry Buffer", + "byteLength": 648, + "uri": "geometry.bin" + }, + { + "name": "Instances Buffer", + "byteLength": 176, + "uri": "instances.bin" + }, + { + "name": "Metadata Buffer", + "byteLength": 104, + "uri": "metadata.bin" + } + ] +} diff --git a/public/static/SampleData/models/BoxInstanced/geometry.bin b/public/static/SampleData/models/BoxInstanced/geometry.bin new file mode 100644 index 0000000..999f962 Binary files /dev/null and b/public/static/SampleData/models/BoxInstanced/geometry.bin differ diff --git a/public/static/SampleData/models/BoxInstanced/instances.bin b/public/static/SampleData/models/BoxInstanced/instances.bin new file mode 100644 index 0000000..0f4b2a8 Binary files /dev/null and b/public/static/SampleData/models/BoxInstanced/instances.bin differ diff --git a/public/static/SampleData/models/BoxInstanced/metadata.bin b/public/static/SampleData/models/BoxInstanced/metadata.bin new file mode 100644 index 0000000..1dffc77 Binary files /dev/null and b/public/static/SampleData/models/BoxInstanced/metadata.bin differ diff --git a/public/static/SampleData/models/BoxUnlit/BoxUnlit.gltf b/public/static/SampleData/models/BoxUnlit/BoxUnlit.gltf new file mode 100644 index 0000000..f4bda30 --- /dev/null +++ b/public/static/SampleData/models/BoxUnlit/BoxUnlit.gltf @@ -0,0 +1,151 @@ +{ + "asset": { + "generator": "COLLADA2GLTF", + "version": "2.0" + }, + "extensionsUsed": [ + "KHR_materials_unlit" + ], + "extensionsRequired": [ + "KHR_materials_unlit" + ], + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "nodes": [ + { + "children": [ + 1 + ], + "matrix": [ + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + -1.0, + 0.0, + 0.0, + 1.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 1.0 + ] + }, + { + "mesh": 0 + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "NORMAL": 1, + "POSITION": 2 + }, + "indices": 0, + "mode": 4, + "material": 0 + } + ], + "name": "Mesh" + } + ], + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5123, + "count": 36, + "max": [ + 23 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 24, + "max": [ + 1.0, + 1.0, + 1.0 + ], + "min": [ + -1.0, + -1.0, + -1.0 + ], + "type": "VEC3" + }, + { + "bufferView": 1, + "byteOffset": 288, + "componentType": 5126, + "count": 24, + "max": [ + 0.5, + 0.5, + 0.5 + ], + "min": [ + -0.5, + -0.5, + -0.5 + ], + "type": "VEC3" + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.0, + 1.0, + 0.0, + 1.0 + ], + "metallicFactor": 1.0 + }, + "name": "Unlit Green", + "extensions": { + "KHR_materials_unlit": {} + } + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 576, + "byteLength": 72, + "target": 34963 + }, + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 576, + "byteStride": 12, + "target": 34962 + } + ], + "buffers": [ + { + "byteLength": 648, + "uri": "data:application/octet-stream;base64,AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAvwAAAL8AAAA/AAAAPwAAAL8AAAA/AAAAvwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAL8AAAA/AAAAvwAAAL8AAAA/AAAAPwAAAL8AAAC/AAAAvwAAAL8AAAC/AAAAPwAAAD8AAAA/AAAAPwAAAL8AAAA/AAAAPwAAAD8AAAC/AAAAPwAAAL8AAAC/AAAAvwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAvwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAvwAAAL8AAAA/AAAAvwAAAD8AAAA/AAAAvwAAAL8AAAC/AAAAvwAAAD8AAAC/AAAAvwAAAL8AAAC/AAAAvwAAAD8AAAC/AAAAPwAAAL8AAAC/AAAAPwAAAD8AAAC/AAABAAIAAwACAAEABAAFAAYABwAGAAUACAAJAAoACwAKAAkADAANAA4ADwAOAA0AEAARABIAEwASABEAFAAVABYAFwAWABUA" + } + ] +} diff --git a/public/static/SampleData/models/CesiumAir/Cesium_Air.glb b/public/static/SampleData/models/CesiumAir/Cesium_Air.glb new file mode 100644 index 0000000..f4b70f7 Binary files /dev/null and b/public/static/SampleData/models/CesiumAir/Cesium_Air.glb differ diff --git a/public/static/SampleData/models/CesiumBalloon/CesiumBalloon.glb b/public/static/SampleData/models/CesiumBalloon/CesiumBalloon.glb new file mode 100644 index 0000000..b494975 Binary files /dev/null and b/public/static/SampleData/models/CesiumBalloon/CesiumBalloon.glb differ diff --git a/public/static/SampleData/models/CesiumBalloonKTX2/CesiumBalloonKTX2.glb b/public/static/SampleData/models/CesiumBalloonKTX2/CesiumBalloonKTX2.glb new file mode 100644 index 0000000..4b7580f Binary files /dev/null and b/public/static/SampleData/models/CesiumBalloonKTX2/CesiumBalloonKTX2.glb differ diff --git a/public/static/SampleData/models/CesiumDrone/CesiumDrone.glb b/public/static/SampleData/models/CesiumDrone/CesiumDrone.glb new file mode 100644 index 0000000..22dbdc0 Binary files /dev/null and b/public/static/SampleData/models/CesiumDrone/CesiumDrone.glb differ diff --git a/public/static/SampleData/models/CesiumMan/Cesium_Man.glb b/public/static/SampleData/models/CesiumMan/Cesium_Man.glb new file mode 100644 index 0000000..926e07f Binary files /dev/null and b/public/static/SampleData/models/CesiumMan/Cesium_Man.glb differ diff --git a/public/static/SampleData/models/CesiumMilkTruck/CesiumMilkTruck.dae b/public/static/SampleData/models/CesiumMilkTruck/CesiumMilkTruck.dae new file mode 100644 index 0000000..0d6676b --- /dev/null +++ b/public/static/SampleData/models/CesiumMilkTruck/CesiumMilkTruck.dae @@ -0,0 +1,412 @@ + + + + + modo 901 [Build 79473], Microsoft Windows 7 Service Pack 1 (6.1.7601 Service Pack 1) + Plug-in: [Build 79473]; Use Absolute Path: No; Merge Reference Items: No; Save Hidden Items: No; Save Cameras: No; Save Lights: Yes; Save Locators: Yes; Save Triangles as Triangles: Yes; Order Vertex Maps Alphabetically: Yes; Bake Matrices: No; Save Vertex Normals: Yes; Save UV Texture Coordinates: Yes; Save Vertex Colors: No; Save Vertex Weights: No; Save Animation: Yes; Sample Animation: No; Sample Animation Start: 0; Sample Animation End: 120; Save modo Profile: No; Save Maya Profile: No; Save 3ds Max Profile: No; Formatted Arrays: No; + file:///C:/Users/bcoker/Creative%20Cloud%20Files/Cesium%20Milk%20Truck/Cesium%20Milk%20Truck.lxo + + 2015-02-09T13:13:10Z + 2015-02-09T13:13:10Z + Y_UP + + + + + 0 0.0416667 0.0833333 0.125 0.166667 0.208333 0.25 0.291667 0.333333 0.375 0.416667 0.458333 0.5 0.541667 0.583333 0.625 0.666667 0.708333 0.75 0.791667 0.833333 0.875 0.916667 0.958333 1 1.04167 1.08333 1.125 1.16667 1.20833 1.25 + + + + + + + + 349.847 338.186 326.524 314.863 303.201 291.539 279.878 268.216 256.555 244.893 233.232 221.57 209.908 198.247 186.585 174.924 163.262 151.6 139.939 128.277 116.616 104.954 93.2926 81.631 69.9695 58.3079 46.6463 34.9847 23.3232 11.6616 0 + + + + + + + + -0.0138889 349.847 0.0277778 342.073 0.0694444 330.411 0.111111 318.75 0.152778 307.088 0.194444 295.427 0.236111 283.765 0.277778 272.103 0.319444 260.442 0.361111 248.78 0.402778 237.119 0.444444 225.457 0.486111 213.796 0.527778 202.134 0.569444 190.472 0.611111 178.811 0.652778 167.149 0.694444 155.488 0.736111 143.826 0.777778 132.165 0.819444 120.503 0.861111 108.841 0.902778 97.1798 0.944444 85.5182 0.986111 73.8566 1.02778 62.1951 1.06944 50.5335 1.11111 38.8719 1.15278 27.2103 1.19444 15.5488 1.23611 0 + + + + + + + + + 0.0138889 349.847 0.0555556 334.298 0.0972222 322.637 0.138889 310.975 0.180556 299.314 0.222222 287.652 0.263889 275.991 0.305556 264.329 0.347222 252.667 0.388889 241.006 0.430556 229.344 0.472222 217.683 0.513889 206.021 0.555556 194.36 0.597222 182.698 0.638889 171.036 0.680556 159.375 0.722222 147.713 0.763889 136.052 0.805556 124.39 0.847222 112.729 0.888889 101.067 0.930556 89.4054 0.972222 77.7438 1.01389 66.0823 1.05556 54.4207 1.09722 42.7591 1.13889 31.0975 1.18056 19.436 1.22222 7.77438 1.26389 0 + + + + + + + + + BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + 0 0.0416667 0.0833333 0.125 0.166667 0.208333 0.25 0.291667 0.333333 0.375 0.416667 0.458333 0.5 0.541667 0.583333 0.625 0.666667 0.708333 0.75 0.791667 0.833333 0.875 0.916667 0.958333 1 1.04167 1.08333 1.125 1.16667 1.20833 1.25 + + + + + + + + 349.847 338.186 326.524 314.863 303.201 291.539 279.878 268.216 256.555 244.893 233.232 221.57 209.908 198.247 186.585 174.924 163.262 151.6 139.939 128.277 116.616 104.954 93.2926 81.631 69.9695 58.3079 46.6463 34.9847 23.3232 11.6616 0 + + + + + + + + -0.0138889 349.847 0.0277778 342.073 0.0694444 330.411 0.111111 318.75 0.152778 307.088 0.194444 295.427 0.236111 283.765 0.277778 272.103 0.319444 260.442 0.361111 248.78 0.402778 237.119 0.444444 225.457 0.486111 213.796 0.527778 202.134 0.569444 190.472 0.611111 178.811 0.652778 167.149 0.694444 155.488 0.736111 143.826 0.777778 132.165 0.819444 120.503 0.861111 108.841 0.902778 97.1798 0.944444 85.5182 0.986111 73.8566 1.02778 62.1951 1.06944 50.5335 1.11111 38.8719 1.15278 27.2103 1.19444 15.5488 1.23611 0 + + + + + + + + + 0.0138889 349.847 0.0555556 334.298 0.0972222 322.637 0.138889 310.975 0.180556 299.314 0.222222 287.652 0.263889 275.991 0.305556 264.329 0.347222 252.667 0.388889 241.006 0.430556 229.344 0.472222 217.683 0.513889 206.021 0.555556 194.36 0.597222 182.698 0.638889 171.036 0.680556 159.375 0.722222 147.713 0.763889 136.052 0.805556 124.39 0.847222 112.729 0.888889 101.067 0.930556 89.4054 0.972222 77.7438 1.01389 66.0823 1.05556 54.4207 1.09722 42.7591 1.13889 31.0975 1.18056 19.436 1.22222 7.77438 1.26389 0 + + + + + + + + + BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER + + + + + + + + + + + + + + + + + + + CesiumMilkTruck.jpg + + + + + + + + + + + + + + + + + + + + + + + 0 0.0405063 0.0212407 1 + + + 0.65 0.65 0.65 1 + + + 256 + + + + + + + + + + Image0001 + A8R8G8B8 + + + + + Image0001-surface + LINEAR_MIPMAP_LINEAR + LINEAR + + + + + + + + + 0.04 0.04 0.04 1 + + + 256 + + + + + + + + + + Image0001 + A8R8G8B8 + + + + + Image0001-surface + LINEAR_MIPMAP_LINEAR + LINEAR + + + + + + + + + 0.04 0.04 0.04 1 + + + 256 + + + + + + + + + + + 0.064 0.064 0.064 1 + + + 0.04 0.04 0.04 1 + + + 256 + + + + + + + + + + + 1.95888 0.414 1.09 1.95888 0.414 -1.1 0.857956 0.414 1.09 0.857956 0.414 -1.1 1.56425 0.964964 -1.1 1.42614 0.9844 -1.1 1.69294 0.907981 -1.1 1.80345 0.817334 -1.1 1.88825 0.6992 -1.1 1.94156 0.56163 -1.1 1.0562 0.822 -1.1 1.15996 0.911218 -1.1 1.28804 0.964964 -1.1 1.56425 0.964964 1.09 1.42614 0.9844 1.09 1.69294 0.907981 1.09 1.80345 0.817334 1.09 1.88825 0.6992 1.09 1.94156 0.56163 1.09 1.0562 0.822 1.09 1.15996 0.911218 1.09 1.28804 0.964964 1.09 -0.850175 0.414 -1.1 -0.850175 0.414 1.09 -1.85152 0.414 1.09 -1.85152 0.414 -1.1 -1.17947 0.8556 -1.1 -1.51855 0.8556 -1.1 -1.01076 0.69 -1.1 -1.0236 0.753372 -1.1 -1.06017 0.807097 -1.1 -1.11491 0.842994 -1.1 -1.70125 0.69 -1.1 -1.58847 0.842994 -1.1 -1.64774 0.807097 -1.1 -1.68734 0.753372 -1.1 -1.17947 0.8556 1.09 -1.51855 0.8556 1.09 -1.01076 0.69 1.09 -1.0236 0.753372 1.09 -1.06017 0.807097 1.09 -1.11491 0.842994 1.09 -1.70125 0.69 1.09 -1.58847 0.842994 1.09 -1.64774 0.807097 1.09 -1.68734 0.753372 1.09 1.0028 1.6192 -1.1 1.0028 2.34048 -1.1 0.138 1.6192 -1.1 0.138 2.34048 -1.1 0.19872 2.4012 -1.1 0.94208 2.4012 -1.1 0.965317 2.39658 -1.1 0.985016 2.38342 -1.1 0.998178 2.36372 -1.1 0.175483 2.39658 -1.1 0.155784 2.38342 -1.1 0.142622 2.36372 -1.1 1.0028 1.6192 1.09 1.0028 2.34048 1.09 0.138 1.6192 1.09 0.138 2.34048 1.09 0.19872 2.4012 1.09 0.94208 2.4012 1.09 0.965317 2.39658 1.09 0.985016 2.38342 1.09 0.998178 2.36372 1.09 0.175483 2.39658 1.09 0.155784 2.38342 1.09 0.142622 2.36372 1.09 0.138 1.2696 -1.1 0.138 1.2696 1.09 0.7912 0.4784 -1.1 1.0028 0.8924 -1.1 0.138 0.4784 -1.1 0.7912 0.4784 1.09 1.0028 0.8924 1.09 0.138 0.4784 1.09 0.138 0.4784 1.055 1.0028 0.8924 1.055 0.7912 0.4784 1.055 0.19872 2.4012 1.055 0.138 2.34048 1.055 1.0028 2.34048 1.055 0.94208 2.4012 1.055 0.142622 2.36372 1.055 0.155784 2.38342 1.055 0.175483 2.39658 1.055 0.998178 2.36372 1.055 0.985015 2.38342 1.055 0.965316 2.39658 1.055 0.9062 1.68268 -1.055 0.9062 2.22272 -1.055 0.81972 2.3092 -1.055 0.27968 2.3092 -1.055 0.1932 2.22272 -1.055 0.1932 1.68268 -1.055 0.27968 1.5962 -1.055 0.81972 1.5962 -1.055 0.9062 1.68268 1.055 0.9062 2.22272 1.055 0.81972 2.3092 1.055 0.27968 2.3092 1.055 0.1932 2.22272 1.055 0.1932 1.68268 1.055 0.27968 1.5962 1.055 0.81972 1.5962 1.055 0.87055 1.70968 -1.055 0.87055 2.19572 -1.055 0.792718 2.27355 -1.055 0.306682 2.27355 -1.055 0.22885 2.19572 -1.055 0.22885 1.70968 -1.055 0.306682 1.63185 -1.055 0.792718 1.63185 -1.055 0.87055 1.70968 1.055 0.87055 2.19572 1.055 0.792718 2.27355 1.055 0.306682 2.27355 1.055 0.22885 2.19572 1.055 0.22885 1.70968 1.055 0.306682 1.63185 1.055 0.792718 1.63185 1.055 0.9062 1.68268 -1.065 0.9062 2.22272 -1.065 0.81972 2.3092 -1.065 0.27968 2.3092 -1.065 0.1932 2.22272 -1.065 0.1932 1.68268 -1.065 0.27968 1.5962 -1.065 0.81972 1.5962 -1.065 0.9062 1.68268 1.065 0.9062 2.22272 1.065 0.81972 2.3092 1.065 0.27968 2.3092 1.065 0.1932 2.22272 1.065 0.1932 1.68268 1.065 0.27968 1.5962 1.065 0.81972 1.5962 1.065 0.87055 1.70968 -1.065 0.87055 2.19572 -1.065 0.792718 2.27355 -1.065 0.306682 2.27355 -1.065 0.22885 2.19572 -1.065 0.22885 1.70968 -1.065 0.306682 1.63185 -1.065 0.792718 1.63185 -1.065 0.87055 1.70968 1.065 0.87055 2.19572 1.065 0.792718 2.27355 1.065 0.306682 2.27355 1.065 0.22885 2.19572 1.065 0.22885 1.70968 1.065 0.306682 1.63185 1.065 0.792718 1.63185 1.065 1.0442 1.6767 -1.1 1.0442 2.3483 -1.1 1.0879 2.392 -1.1 1.2489 2.392 -1.1 1.30664 2.35062 -1.1 1.53021 1.6919 -1.1 1.46502 1.633 -1.1 1.0879 1.633 -1.1 1.0442 1.6767 1.09 1.0442 2.3483 1.09 1.0879 2.392 1.09 1.2489 2.392 1.09 1.30664 2.35062 1.09 1.53021 1.6919 1.09 1.46502 1.633 1.09 1.0879 1.633 1.09 1.08229 1.69248 -1.1 1.08229 2.33252 -1.1 1.10368 2.35391 -1.1 1.23666 2.35391 -1.1 1.27451 2.32679 -1.1 1.48609 1.70338 -1.1 1.45036 1.67109 -1.1 1.10368 1.67109 -1.1 1.08229 1.69248 1.09 1.08229 2.33252 1.09 1.10368 2.35391 1.09 1.23666 2.35391 1.09 1.27451 2.32679 1.09 1.48609 1.70338 1.09 1.45036 1.67109 1.09 1.10368 1.67109 1.09 1.0442 1.6767 -1.11 1.0442 2.3483 -1.11 1.0879 2.392 -1.11 1.2489 2.392 -1.11 1.30664 2.35062 -1.11 1.53021 1.6919 -1.11 1.46502 1.633 -1.11 1.0879 1.633 -1.11 1.0442 1.6767 1.1 1.0442 2.3483 1.1 1.0879 2.392 1.1 1.2489 2.392 1.1 1.30664 2.35062 1.1 1.53021 1.6919 1.1 1.46502 1.633 1.1 1.0879 1.633 1.1 1.08229 1.69248 -1.11 1.08229 2.33252 -1.11 1.10368 2.35391 -1.11 1.23666 2.35391 -1.11 1.27451 2.32679 -1.11 1.48609 1.70338 -1.11 1.45036 1.67109 -1.11 1.10368 1.67109 -1.11 1.08229 1.69248 1.1 1.08229 2.33252 1.1 1.10368 2.35391 1.1 1.23666 2.35391 1.1 1.27451 2.32679 1.1 1.48609 1.70338 1.1 1.45036 1.67109 1.1 1.10368 1.67109 1.1 1.0028 1.242 -1.1 1.0028 1.2972 -1.1 1.0028 1.2972 1.09 1.0028 1.242 1.09 1.0028 1.2696 -1.1 1.0028 1.2696 1.09 2.29264 0.414 -1.062 -2.28344 0.414 -1.062 2.29264 0.414 1.052 -2.28344 0.414 1.052 1.95888 0.414 1.052 1.95888 0.414 -1.062 0.857956 0.414 1.052 0.857956 0.414 -1.062 1.56425 0.964964 -1.062 1.42614 0.9844 -1.062 1.69294 0.907981 -1.062 1.80345 0.817334 -1.062 1.88825 0.6992 -1.062 1.94156 0.56163 -1.062 1.0562 0.822 -1.062 1.15996 0.911218 -1.062 1.28804 0.964964 -1.062 1.56425 0.964964 1.052 1.42614 0.9844 1.052 1.69294 0.907981 1.052 1.80345 0.817334 1.052 1.88825 0.6992 1.052 1.94156 0.56163 1.052 1.0562 0.822 1.052 1.15996 0.911218 1.052 1.28804 0.964964 1.052 -0.850175 0.414 -1.062 -0.850175 0.414 1.052 -1.85152 0.414 1.052 -1.85152 0.414 -1.062 -1.17947 0.8556 -1.062 -1.51855 0.8556 -1.062 -1.01076 0.69 -1.062 -1.0236 0.753372 -1.062 -1.06017 0.807097 -1.062 -1.11491 0.842994 -1.062 -1.70125 0.69 -1.062 -1.58847 0.842994 -1.062 -1.64774 0.807097 -1.062 -1.68734 0.753372 -1.062 -1.17947 0.8556 1.052 -1.51855 0.8556 1.052 -1.01076 0.69 1.052 -1.0236 0.753372 1.052 -1.06017 0.807097 1.052 -1.11491 0.842994 1.052 -1.70125 0.69 1.052 -1.58847 0.842994 1.052 -1.64774 0.807097 1.052 -1.68734 0.753372 1.052 2.25032 0.4692 -0.55094 -2.24112 0.4692 -0.55094 2.25032 0.4692 0.54094 -2.24112 0.4692 0.54094 1.99191 0.4692 0.54094 1.99191 0.4692 -0.55094 0.824928 0.4692 0.54094 0.824928 0.4692 -0.55094 1.5736 1.02016 -0.55094 1.42721 1.0396 -0.55094 1.71001 0.963181 -0.55094 1.82716 0.872534 -0.55094 1.91704 0.7544 -0.55094 1.97355 0.61683 -0.55094 1.03507 0.8772 -0.55094 1.14505 0.966418 -0.55094 1.28081 1.02016 -0.55094 1.5736 1.02016 0.54094 1.42721 1.0396 0.54094 1.71001 0.963181 0.54094 1.82716 0.872534 0.54094 1.91704 0.7544 0.54094 1.97355 0.61683 0.54094 1.03507 0.8772 0.54094 1.14505 0.966418 0.54094 1.28081 1.02016 0.54094 -0.830148 0.4692 -0.55094 -0.830148 0.4692 0.54094 -1.87155 0.4692 0.54094 -1.87155 0.4692 -0.55094 -1.17262 0.9108 -0.55094 -1.52526 0.9108 -0.55094 -0.997156 0.7452 -0.55094 -1.01051 0.808572 -0.55094 -1.04855 0.862297 -0.55094 -1.10547 0.898194 -0.55094 -1.71527 0.7452 -0.55094 -1.59797 0.898194 -0.55094 -1.65961 0.862297 -0.55094 -1.7008 0.808572 -0.55094 -1.17262 0.9108 0.54094 -1.52526 0.9108 0.54094 -0.997156 0.7452 0.54094 -1.01051 0.808572 0.54094 -1.04855 0.862297 0.54094 -1.10547 0.898194 0.54094 -1.71527 0.7452 0.54094 -1.59797 0.898194 0.54094 -1.65961 0.862297 0.54094 -1.7008 0.808572 0.54094 2.29264 0.4692 -1.062 -2.28344 0.4692 -1.062 2.29264 0.4692 1.052 -2.28344 0.4692 1.052 1.99191 0.4692 1.052 1.99191 0.4692 -1.062 0.824928 0.4692 1.052 0.824928 0.4692 -1.062 1.5736 1.02016 -1.062 1.42721 1.0396 -1.062 1.71001 0.963181 -1.062 1.82716 0.872534 -1.062 1.91704 0.7544 -1.062 1.97355 0.61683 -1.062 1.03507 0.8772 -1.062 1.14505 0.966418 -1.062 1.28081 1.02016 -1.062 1.5736 1.02016 1.052 1.42721 1.0396 1.052 1.71001 0.963181 1.052 1.82716 0.872534 1.052 1.91704 0.7544 1.052 1.97355 0.61683 1.052 1.03507 0.8772 1.052 1.14505 0.966418 1.052 1.28081 1.02016 1.052 -0.830148 0.4692 -1.062 -0.830148 0.4692 1.052 -1.87155 0.4692 1.052 -1.87155 0.4692 -1.062 -1.17262 0.9108 -1.062 -1.52526 0.9108 -1.062 -0.997156 0.7452 -1.062 -1.01051 0.808572 -1.062 -1.04855 0.862297 -1.062 -1.10547 0.898194 -1.062 -1.71527 0.7452 -1.062 -1.59797 0.898194 -1.062 -1.65961 0.862297 -1.062 -1.7008 0.808572 -1.062 -1.17262 0.9108 1.052 -1.52526 0.9108 1.052 -0.997156 0.7452 1.052 -1.01051 0.808572 1.052 -1.04855 0.862297 1.052 -1.10547 0.898194 1.052 -1.71527 0.7452 1.052 -1.59797 0.898194 1.052 -1.65961 0.862297 1.052 -1.7008 0.808572 1.052 -2.18289 0.38864 -1.12699 -2.20303 0.3634 -1.1054 -2.43091 0.38864 -1.12699 -2.41077 0.3634 -1.1054 -2.43091 0.49916 -1.12699 -2.41077 0.5244 -1.1054 -2.18289 0.49916 -1.12699 -2.20303 0.5244 -1.1054 -2.18289 0.38864 1.12699 -2.20303 0.3634 1.1054 -2.43091 0.38864 1.12699 -2.41077 0.3634 1.1054 -2.43091 0.49916 1.12699 -2.41077 0.5244 1.1054 -2.18289 0.49916 1.12699 -2.20303 0.5244 1.1054 -2.42748 0.516542 1.12347 -2.42748 0.516542 -1.12347 -2.42748 0.371258 1.12347 -2.42748 0.371258 -1.12347 -2.18632 0.516542 -1.12347 -2.18632 0.371258 -1.12347 -2.18632 0.371258 1.12347 -2.18632 0.516542 1.12347 -2.18944 0.475849 -1.1196 -2.19088 0.465213 -1.11797 -2.42292 0.465213 -1.11797 -2.42436 0.475849 -1.1196 -2.19088 0.422587 -1.11797 -2.18944 0.41195 -1.1196 -2.42436 0.41195 -1.1196 -2.42292 0.422587 -1.11797 -2.42292 0.465213 1.11797 -2.42436 0.475849 1.1196 -2.42436 0.41195 1.1196 -2.42292 0.422587 1.11797 -2.18944 0.475849 1.1196 -2.19088 0.465213 1.11797 -2.19088 0.422587 1.11797 -2.18944 0.41195 1.1196 -2.42329 0.417169 -1.11838 -2.42329 0.417169 1.11838 -2.19051 0.470631 -1.11838 -2.42329 0.470631 -1.11838 -2.19051 0.417169 -1.11838 -2.19051 0.417169 1.11838 -2.42329 0.470631 1.11838 -2.19051 0.470631 1.11838 2.20202 0.3864 -1.1115 2.18408 0.40434 -1.1115 2.20202 0.40434 -1.131 2.20202 0.66838 -1.131 2.18408 0.66838 -1.1115 2.20202 0.68632 -1.1115 2.42006 0.66838 -1.131 2.42006 0.68632 -1.1115 2.438 0.66838 -1.1115 2.40833 0.494263 -1.131 2.42006 0.52578 -1.131 2.438 0.52578 -1.1115 2.42627 0.494263 -1.1115 2.32565 0.402713 -1.131 2.34485 0.399977 -1.1115 2.31518 0.3864 -1.1115 2.20202 0.40434 1.131 2.18408 0.40434 1.1115 2.20202 0.3864 1.1115 2.18408 0.66838 1.1115 2.20202 0.66838 1.131 2.20202 0.68632 1.1115 2.42006 0.68632 1.1115 2.42006 0.66838 1.131 2.438 0.66838 1.1115 2.438 0.52578 1.1115 2.42006 0.52578 1.131 2.40833 0.494263 1.131 2.42627 0.494263 1.1115 2.34485 0.399977 1.1115 2.32565 0.402713 1.131 2.31518 0.3864 1.1115 2.18408 0.52578 -1.1115 2.20202 0.52578 -1.131 2.20202 0.4899 -1.131 2.18408 0.4899 -1.1115 2.18408 0.4899 1.1115 2.20202 0.4899 1.131 2.20202 0.52578 1.131 2.18408 0.52578 1.1115 2.42006 0.681065 -1.12529 2.20202 0.681065 -1.12529 2.41703 0.508966 1.131 2.20202 0.50784 1.131 2.43275 0.52578 -1.12529 2.43275 0.66838 -1.12529 2.18933 0.66838 1.12529 2.18933 0.52578 1.12529 2.18933 0.4899 1.12529 2.18933 0.40434 1.12529 2.18408 0.50784 1.1115 2.18408 0.50784 -1.1115 2.18933 0.681065 -1.1115 2.18933 0.681065 1.1115 2.18933 0.391655 1.1115 2.18933 0.391655 -1.1115 2.43497 0.508966 1.1115 2.43497 0.508966 -1.1115 2.43275 0.681065 1.1115 2.43275 0.681065 -1.1115 2.18933 0.4899 -1.12529 2.18933 0.40434 -1.12529 2.20202 0.391655 -1.12529 2.31799 0.391744 -1.12529 2.42102 0.494263 1.12529 2.33897 0.401345 1.12529 2.18933 0.66838 -1.12529 2.18933 0.52578 -1.12529 2.43275 0.66838 1.12529 2.43275 0.52578 1.12529 2.20202 0.50784 -1.131 2.41703 0.508966 -1.131 2.33897 0.401345 -1.12529 2.42102 0.494263 -1.12529 2.31799 0.391744 1.12529 2.20202 0.391655 1.12529 2.20202 0.681065 1.12529 2.42006 0.681065 1.12529 2.33149 0.389956 1.1115 2.33149 0.389956 -1.1115 2.19109 0.393406 -1.12338 2.19109 0.679314 -1.12338 2.43099 0.679314 -1.12338 2.42972 0.508966 -1.12529 2.33066 0.391774 -1.12382 2.19109 0.393406 1.12338 2.19109 0.679314 1.12338 2.43099 0.679314 1.12338 2.42972 0.508966 1.12529 2.33066 0.391774 1.12382 2.18933 0.50784 -1.12529 2.18933 0.50784 1.12529 2.3276 1.1914 0.92 2.3276 1.1914 0.645 2.3276 0.7682 0.645 2.3276 0.7682 0.92 2.3276 0.7682 -0.645 2.3276 1.1914 -0.645 2.3276 1.1914 -0.92 2.3276 0.7682 -0.92 2.3276 0.7406 0.505 2.3276 0.897 0.505 2.3276 0.897 -0.505 2.3276 0.7406 -0.505 2.3276 0.9936 0.505 2.3276 1.15 0.505 2.3276 1.15 -0.505 2.3276 0.9936 -0.505 2.27884 0.7406 0.505 2.27884 0.897 0.505 2.27884 0.897 -0.505 2.27884 0.7406 -0.505 2.27884 0.9936 0.505 2.27884 1.15 0.505 2.27884 1.15 -0.505 2.27884 0.9936 -0.505 2.31564 1.1914 0.92 2.31564 1.1914 0.645 2.31564 0.7682 0.645 2.31564 0.7682 0.92 2.31564 0.7682 -0.645 2.31564 1.1914 -0.645 2.31564 1.1914 -0.92 2.31564 0.7682 -0.92 1.3271 0.3358 -0.8625 1.3271 0.4646 -0.8625 1.3271 0.4646 0.8625 1.3271 0.3358 0.8625 1.5341 0.3358 -0.8625 1.5341 0.3358 0.8625 1.5341 0.4646 0.8625 1.5341 0.4646 -0.8625 1.36074 0.2668 -0.8625 1.36074 0.2668 0.8625 1.50046 0.2668 -0.8625 1.50046 0.2668 0.8625 1.3271 0.4646 -0.408501 1.3271 0.4646 -0.166501 1.5341 0.4646 -0.166501 1.5341 0.4646 -0.408501 1.3271 0.4646 0.166501 1.3271 0.4646 0.408501 1.5341 0.4646 0.408501 1.5341 0.4646 0.166501 1.3271 0.3358 -0.408501 1.3271 0.3358 -0.166501 1.3271 0.3358 0.166501 1.3271 0.3358 0.408501 1.5341 0.3358 -0.166501 1.5341 0.3358 -0.408501 1.5341 0.3358 0.408501 1.5341 0.3358 0.166501 1.50046 0.2668 -0.166501 1.50046 0.2668 -0.408501 1.50046 0.2668 0.408501 1.50046 0.2668 0.166501 1.36074 0.2668 -0.408501 1.36074 0.2668 -0.166501 1.36074 0.2668 0.166501 1.36074 0.2668 0.408501 1.3271 0.375469 0.253456 1.3271 0.375469 0.321545 1.3271 0.504269 0.253456 1.3271 0.504269 0.321545 1.5341 0.504269 -0.321545 1.5341 0.504269 -0.253456 1.5341 0.375469 -0.321545 1.5341 0.375469 -0.253456 1.50046 0.306469 0.253456 1.50046 0.306469 0.321545 1.36074 0.306469 0.253456 1.36074 0.306469 0.321545 1.5341 0.504269 0.253456 1.5341 0.504269 0.321545 1.5341 0.375469 0.253456 1.5341 0.375469 0.321545 1.3271 0.504269 -0.321545 1.3271 0.504269 -0.253456 1.50046 0.306469 -0.321545 1.50046 0.306469 -0.253456 1.36074 0.306469 -0.321545 1.36074 0.306469 -0.253456 1.3271 0.375469 -0.321545 1.3271 0.375469 -0.253456 1.3271 0.382808 0.287501 1.36074 0.313808 0.287501 1.50046 0.313808 0.287501 1.5341 0.382808 0.287501 1.3271 0.382808 -0.287501 1.36074 0.313808 -0.287501 1.50046 0.313808 -0.287501 1.3271 0.511608 -0.287501 1.5341 0.382808 -0.287501 1.5341 0.511608 -0.287501 1.3271 0.511608 0.287501 1.5341 0.511608 0.287501 -1.4559 0.3358 -0.8625 -1.4559 0.4646 -0.8625 -1.4559 0.4646 0.8625 -1.4559 0.3358 0.8625 -1.2489 0.3358 -0.8625 -1.2489 0.3358 0.8625 -1.2489 0.4646 0.8625 -1.2489 0.4646 -0.8625 -1.42226 0.2668 -0.8625 -1.42226 0.2668 0.8625 -1.28254 0.2668 -0.8625 -1.28254 0.2668 0.8625 -1.4559 0.4646 -0.4085 -1.4559 0.4646 -0.1665 -1.2489 0.4646 -0.1665 -1.2489 0.4646 -0.4085 -1.4559 0.4646 0.166501 -1.4559 0.4646 0.408501 -1.2489 0.4646 0.408501 -1.2489 0.4646 0.166501 -1.4559 0.3358 -0.4085 -1.4559 0.3358 -0.1665 -1.4559 0.3358 0.166501 -1.4559 0.3358 0.408501 -1.2489 0.3358 -0.1665 -1.2489 0.3358 -0.4085 -1.2489 0.3358 0.408501 -1.2489 0.3358 0.166501 -1.28254 0.2668 -0.1665 -1.28254 0.2668 -0.4085 -1.28254 0.2668 0.408501 -1.28254 0.2668 0.166501 -1.42226 0.2668 -0.4085 -1.42226 0.2668 -0.1665 -1.42226 0.2668 0.166501 -1.42226 0.2668 0.408501 -1.4559 0.375469 0.253456 -1.4559 0.375469 0.321545 -1.4559 0.504269 0.253456 -1.4559 0.504269 0.321545 -1.2489 0.504269 -0.321545 -1.2489 0.504269 -0.253456 -1.2489 0.375469 -0.321545 -1.2489 0.375469 -0.253456 -1.28254 0.306469 0.253456 -1.28254 0.306469 0.321545 -1.42226 0.306469 0.253456 -1.42226 0.306469 0.321545 -1.2489 0.504269 0.253456 -1.2489 0.504269 0.321545 -1.2489 0.375469 0.253456 -1.2489 0.375469 0.321545 -1.4559 0.504269 -0.321545 -1.4559 0.504269 -0.253456 -1.28254 0.306469 -0.321545 -1.28254 0.306469 -0.253456 -1.42226 0.306469 -0.321545 -1.42226 0.306469 -0.253456 -1.4559 0.375469 -0.321545 -1.4559 0.375469 -0.253456 -1.4559 0.382808 0.287501 -1.42226 0.313808 0.287501 -1.28254 0.313808 0.287501 -1.2489 0.382808 0.287501 -1.4559 0.382808 -0.287501 -1.42226 0.313808 -0.287501 -1.28254 0.313808 -0.287501 -1.4559 0.511608 -0.287501 -1.2489 0.382808 -0.287501 -1.2489 0.511608 -0.287501 -1.4559 0.511608 0.287501 -1.2489 0.511608 0.287501 -2.3184 2.4104 -0.6075 -2.3184 2.4104 0.6075 -2.3184 1.6192 0.6075 -2.3184 1.6192 -0.6075 -2.3184 1.2696 0.6075 -2.3184 1.2696 -0.6075 -2.2954 2.4104 -0.6075 -2.2954 2.4104 0.6075 -2.2954 1.6192 0.6075 -2.2954 1.6192 -0.6075 -2.2954 1.2696 0.6075 -2.2954 1.2696 -0.6075 -2.2954 0.7176 0.6075 -2.2954 0.7176 -0.6075 -2.3184 0.5244 -0.6075 -2.3184 0.5244 0.6075 -2.34692 0.5244 -0.6075 -2.34692 0.7176 -0.6075 -2.34692 0.7176 0.6075 -2.34692 0.5244 0.6075 -2.3184 0.7176 -0.3146 -2.3184 0.5244 -0.3146 -2.3184 0.7176 0.3146 -2.3184 0.5244 0.3146 -2.34692 0.7176 -0.3146 -2.34692 0.7176 0.3146 -2.34692 0.5244 -0.3146 -2.34692 0.5244 0.3146 -2.33266 0.5244 -0.6075 -2.33266 0.7176 -0.6075 -2.33266 0.7176 0.6075 -2.33266 0.5244 0.6075 -2.33266 0.7176 -0.3146 -2.33266 0.7176 0.3146 -2.33266 0.5244 -0.3146 -2.33266 0.5244 0.3146 0.138 1.6192 1.055 0.138 1.2696 1.055 1.0028 1.6192 1.055 1.0028 1.2972 1.055 1.0028 1.2696 1.055 1.0028 1.242 1.055 0.138 0.4784 -1.055 1.0028 0.8924 -1.055 0.7912 0.4784 -1.055 0.19872 2.4012 -1.055 0.138 2.34048 -1.055 1.0028 2.34048 -1.055 0.94208 2.4012 -1.055 0.142622 2.36372 -1.055 0.155784 2.38342 -1.055 0.175483 2.39658 -1.055 0.998178 2.36372 -1.055 0.985015 2.38342 -1.055 0.965316 2.39658 -1.055 0.138 1.6192 -1.055 0.138 1.2696 -1.055 1.0028 1.6192 -1.055 1.0028 1.2972 -1.055 1.0028 1.2696 -1.055 1.0028 1.242 -1.055 1.5226 1.633 -1.217 1.5226 1.65232 -1.196 1.5226 1.88048 -1.196 1.5226 1.8998 -1.217 1.5226 1.8998 -1.375 1.5226 1.88048 -1.396 1.5226 1.65232 -1.396 1.5226 1.633 -1.375 1.5226 1.63866 -1.38985 1.5226 1.63866 -1.20215 1.5226 1.89414 -1.38985 1.5226 1.89414 -1.20215 1.56725 1.7664 -1.296 1.54249 1.64056 -1.22148 1.53226 1.633 -1.217 1.53226 1.65232 -1.196 1.54254 1.65902 -1.20187 1.54254 1.87378 -1.20187 1.53226 1.88048 -1.196 1.53226 1.8998 -1.217 1.54249 1.89224 -1.22148 1.54249 1.89224 -1.37052 1.53226 1.8998 -1.375 1.53226 1.88048 -1.396 1.54254 1.87378 -1.39013 1.53226 1.633 -1.375 1.54249 1.64056 -1.37052 1.54254 1.65902 -1.39013 1.53226 1.65232 -1.396 1.53226 1.63866 -1.38985 1.54247 1.6458 -1.3846 1.54247 1.6458 -1.2074 1.53226 1.63866 -1.20215 1.53226 1.89414 -1.38985 1.54247 1.887 -1.3846 1.53226 1.89414 -1.20215 1.54247 1.887 -1.2074 1.53896 1.87858 -1.39434 1.53896 1.65421 -1.39434 1.53894 1.64068 -1.38836 1.53895 1.63514 -1.37373 1.53896 1.65421 -1.19766 1.53896 1.87858 -1.19766 1.53894 1.89212 -1.20364 1.53895 1.89766 -1.21827 1.53895 1.63514 -1.21827 1.53895 1.89766 -1.37373 1.53894 1.64068 -1.20364 1.53894 1.89212 -1.38836 1.55986 1.79032 -1.308 1.55986 1.79032 -1.2754 1.55986 1.57504 -1.09 1.58746 1.57504 -1.09 1.58746 1.60503 -1.09 1.55986 1.60503 -1.09 1.58746 1.57504 -1.285 1.58746 1.5962 -1.308 1.55986 1.5962 -1.308 1.55986 1.57504 -1.285 1.58746 1.60503 -1.2524 1.58746 1.62619 -1.2754 1.55986 1.62619 -1.2754 1.55986 1.60503 -1.2524 1.58746 1.58124 -1.30126 1.55986 1.58124 -1.30126 1.58746 1.61123 -1.26866 1.55986 1.61123 -1.26866 1.58746 1.77707 -1.308 1.57421 1.79032 -1.308 1.58746 1.77707 -1.2754 1.57421 1.79032 -1.2754 1.58358 1.78644 -1.2754 1.58358 1.78644 -1.308 2.3276 0.414 1.044 2.28528 0.414 1.09 2.3276 1.242 1.044 2.28528 1.242 1.09 2.32089 1.2654 1.044 2.27857 1.26554 1.09 2.30279 1.28169 1.044 2.26047 1.28219 1.09 1.56768 1.6192 1.09 1.61 1.6192 1.044 2.30849 1.26544 1.07653 2.29039 1.28184 1.07653 1.5976 1.6192 1.07653 2.3152 0.414 1.07653 2.3152 1.242 1.07653 2.28528 0.414 -1.1 2.3276 0.414 -1.054 2.28528 1.242 -1.1 2.3276 1.242 -1.054 2.27857 1.26554 -1.1 2.32089 1.2654 -1.054 2.26047 1.28219 -1.1 2.30279 1.28169 -1.054 1.56768 1.6192 -1.1 1.61 1.6192 -1.054 2.29039 1.28184 -1.08653 1.5976 1.6192 -1.08653 2.3152 0.414 -1.08653 2.3152 1.242 -1.08653 2.30849 1.26544 -1.08653 -2.27608 0.414 1.09 -2.3184 0.414 1.044 -2.27608 1.2696 1.09 -2.3184 1.2696 1.044 -2.27608 1.6192 1.09 -2.3184 1.6192 1.044 -2.27608 1.6192 -1.1 -2.3184 1.6192 -1.054 -2.27608 1.2696 -1.1 -2.3184 1.2696 -1.054 -2.3184 0.414 -1.054 -2.27608 0.414 -1.1 -2.306 1.2696 -1.08653 -2.306 0.414 -1.08653 -2.306 1.6192 1.07653 -2.306 1.2696 1.07653 -2.306 0.414 1.07653 -2.306 1.6192 -1.08653 -2.27608 2.53519 1.09 -2.3184 2.53519 1.044 -2.3184 2.53519 -1.054 -2.27608 2.53519 -1.1 -2.306 2.53519 1.07653 -2.306 2.53519 -1.08653 -2.3184 0.7176 -0.6075 -2.3184 0.7176 0.6075 1.29565 2.55597 1.08541 1.32979 2.55597 1.0482 1.31979 2.55597 1.07451 1.29565 2.55597 -1.09541 1.32979 2.55597 -1.0582 1.31979 2.55597 -1.08451 -2.28005 2.55597 1.08541 -2.31419 2.55597 1.0482 -2.31419 2.55597 -1.0582 -2.28005 2.55597 -1.09541 -2.30419 2.55597 1.07451 -2.30419 2.55597 -1.08451 1.29337 2.57293 1.0729 1.31831 2.57293 1.04572 1.31101 2.57293 1.06494 1.29337 2.57293 -1.0829 1.31831 2.57293 -1.05572 1.31101 2.57293 -1.07494 -2.27777 2.57293 1.0729 -2.30271 2.57293 1.04572 -2.30271 2.57293 -1.05572 -2.27777 2.57293 -1.0829 -2.29541 2.57293 1.06494 -2.29541 2.57293 -1.07494 1.28998 2.58437 1.05435 1.30129 2.58437 1.04203 1.29798 2.58437 1.05074 1.28998 2.58437 -1.06435 1.30129 2.58437 -1.05203 1.29798 2.58437 -1.06074 -2.27438 2.58437 1.05435 -2.28569 2.58437 1.04203 -2.28569 2.58437 -1.05203 -2.27438 2.58437 -1.06435 -2.28238 2.58437 1.05074 -2.28238 2.58437 -1.06074 -2.27396 2.58437 1.04157 -2.27396 2.58437 -1.05157 1.28956 2.58437 1.04157 1.28956 2.58437 -1.05157 1.29168 2.53519 1.09 1.3216 2.53519 1.07653 1.334 2.53519 1.044 1.334 2.53519 -1.054 1.3216 2.53519 -1.08653 1.29168 2.53519 -1.1 1.6026 1.69365 -1.035 1.62267 1.62811 -0.9605 1.39173 2.38251 -0.9605 1.41179 2.31697 -1.035 1.41179 2.31697 -0.00500002 1.39173 2.38251 -0.0795 1.62267 1.62811 -0.0795 1.6026 1.69365 -0.00499998 1.59948 1.70385 -1.007 1.61513 1.65274 -0.948902 1.39927 2.35788 -0.948902 1.41491 2.30677 -1.007 1.41491 2.30677 -0.033 1.39927 2.35788 -0.091098 1.61513 1.65274 -0.091098 1.59948 1.70385 -0.033 1.6026 1.69365 1.035 1.62267 1.62811 0.9605 1.39173 2.38251 0.9605 1.41179 2.31697 1.035 1.41179 2.31697 0.00500002 1.39173 2.38251 0.0795 1.62267 1.62811 0.0795 1.6026 1.69365 0.00499998 1.59948 1.70385 1.007 1.61513 1.65274 0.948902 1.39927 2.35788 0.948902 1.41491 2.30677 1.007 1.41491 2.30677 0.033 1.39927 2.35788 0.091098 1.61513 1.65274 0.091098 1.59948 1.70385 0.033 1.60861 1.6238 -0.9605 1.60861 1.6238 -0.0795 1.58887 1.68934 -0.005 1.3813 2.3782 -0.0795 1.3813 2.3782 -0.9605 1.40105 2.31266 -1.035 1.58887 1.68934 -1.035 1.3813 2.3782 0.9605 1.3813 2.3782 0.0795 1.58887 1.68934 0.005 1.60861 1.6238 0.0795 1.60861 1.6238 0.9605 1.40105 2.31266 1.035 1.40105 2.31266 -0.005 1.40105 2.31266 0.005 1.58887 1.68934 1.035 1.58576 1.69965 -1.007 1.60118 1.64847 -0.948902 1.60118 1.64847 -0.091098 1.58576 1.69965 -0.033 1.60118 1.64847 0.091098 1.58576 1.69965 0.033 1.58576 1.69965 1.007 1.60118 1.64847 0.948902 1.38843 2.35454 -0.948902 1.40385 2.30337 -1.007 1.40385 2.30337 -0.033 1.38843 2.35454 -0.091098 1.40385 2.30337 0.033 1.38843 2.35454 0.091098 1.38843 2.35454 0.948902 1.40385 2.30337 1.007 1.5226 1.633 1.217 1.5226 1.65232 1.196 1.5226 1.88048 1.196 1.5226 1.8998 1.217 1.5226 1.8998 1.375 1.5226 1.88048 1.396 1.5226 1.65232 1.396 1.5226 1.633 1.375 1.5226 1.63866 1.38985 1.5226 1.63866 1.20215 1.5226 1.89414 1.38985 1.5226 1.89414 1.20215 1.56725 1.7664 1.296 1.54249 1.64056 1.22148 1.53226 1.633 1.217 1.53226 1.65232 1.196 1.54254 1.65902 1.20187 1.54254 1.87378 1.20187 1.53226 1.88048 1.196 1.53226 1.8998 1.217 1.54249 1.89224 1.22148 1.54249 1.89224 1.37052 1.53226 1.8998 1.375 1.53226 1.88048 1.396 1.54254 1.87378 1.39013 1.53226 1.633 1.375 1.54249 1.64056 1.37052 1.54254 1.65902 1.39013 1.53226 1.65232 1.396 1.53226 1.63866 1.38985 1.54247 1.6458 1.3846 1.54247 1.6458 1.2074 1.53226 1.63866 1.20215 1.53226 1.89414 1.38985 1.54247 1.887 1.3846 1.53226 1.89414 1.20215 1.54247 1.887 1.2074 1.53896 1.87858 1.39434 1.53896 1.65421 1.39434 1.53894 1.64068 1.38836 1.53895 1.63514 1.37373 1.53896 1.65421 1.19766 1.53896 1.87858 1.19766 1.53894 1.89212 1.20364 1.53895 1.89766 1.21827 1.53895 1.63514 1.21827 1.53895 1.89766 1.37373 1.53894 1.64068 1.20364 1.53894 1.89212 1.38836 1.55986 1.79032 1.308 1.55986 1.79032 1.2754 1.55986 1.57504 1.09 1.58746 1.57504 1.09 1.58746 1.60503 1.09 1.55986 1.60503 1.09 1.58746 1.57504 1.285 1.58746 1.5962 1.308 1.55986 1.5962 1.308 1.55986 1.57504 1.285 1.58746 1.60503 1.2524 1.58746 1.62619 1.2754 1.55986 1.62619 1.2754 1.55986 1.60503 1.2524 1.58746 1.58124 1.30126 1.55986 1.58124 1.30126 1.58746 1.61123 1.26866 1.55986 1.61123 1.26866 1.58746 1.77707 1.308 1.57421 1.79032 1.308 1.58746 1.77707 1.2754 1.57421 1.79032 1.2754 1.58358 1.78644 1.2754 1.58358 1.78644 1.308 + + + + + + + + + + 0.924164 -0.272968 0.267226 1 -1.4561e-007 0 0.913785 -0.0729492 0.399595 0.889292 0.0584811 0.453585 0.924164 0.272967 0.267227 0.935842 0.347328 0.0596965 0.919752 0.38958 -0.0477789 0.924164 0.272967 -0.267227 0.913785 0.0729492 -0.399595 0.889292 -0.0584811 -0.453585 0.924164 -0.272968 -0.267226 0.935841 -0.347329 -0.0596954 0.919752 -0.389581 0.047778 0.913785 -0.0729492 -0.399595 0.889292 0.0584811 -0.453585 0.935842 0.347328 -0.0596965 0.919752 0.38958 0.0477789 0.913785 0.0729492 0.399595 0.889292 -0.0584811 0.453585 0.935841 -0.347329 0.0596954 0.919752 -0.389581 -0.047778 0.862101 0.506737 0 0.405568 0.914065 0 0.735226 0.677822 0 0.202784 0.979224 0 0 -1 0 0.707103 0.707111 0 0 0 1 0.624228 -0.781242 0 0.87929 -0.476286 0 0.721503 -0.692411 0 0.937701 -0.347443 0 -0.893422 -0.449218 0 -0.952787 -0.303641 0 -0.945478 -0.325686 0 -0.913747 -0.406284 0 -0.959499 -0.281712 0 -0.993189 -0.116512 0 -0.979892 -0.199528 0 -0.864345 -0.502899 0 -1 0 0 0 0 -1 -0.954954 -0.296755 0 -0.992357 -0.123398 0 -0.97758 -0.210565 0 0.460116 -0.887859 0 0.730132 -0.683306 0 0.548312 -0.836274 0 0.818147 -0.575009 0 0.871843 -0.489785 0 0.94891 -0.315546 0 0.933543 -0.358466 0 0.913662 -0.406475 0 -0.30562 -0.952154 0 -0.638528 -0.769599 0 -0.423782 -0.905764 0 -0.734409 -0.678707 0 0.221397 -0.969648 -0.10376 0.147514 -0.949614 -0.276537 0.295028 -0.945431 0.138268 0.0881926 -0.982287 0.16533 -0.999006 0.0445724 0 -0.987589 0.157062 0 -0.993707 0.112013 0 -0.999752 0.0222862 0 0.999006 0.0445724 0 0.987589 0.157062 0 0.993707 0.112013 0 0.999752 0.0222862 0 0.999207 0.039826 0 0.992934 -0.118672 0 0.968845 -0.247669 0 0.974419 -0.224739 0 -0.166166 -0.260691 0.951015 -0.239826 0 0.970816 -0.356143 -0.147246 0.922757 -0.410534 0 0.911845 -0.962054 -0.232838 -0.142263 -0.978378 0 -0.206823 -0.941205 -0.138479 -0.308152 -0.934454 0 -0.356083 0.584335 -0.600641 -0.545695 0.691599 -0.54436 -0.474725 0.68288 -0.704184 -0.194421 0.81201 -0.568842 -0.130607 0.751151 -0.578836 -0.317366 -0.975332 0.128045 -0.179809 -0.934564 0.332271 -0.127227 -0.938907 0.184676 -0.290428 -0.968009 0.184657 -0.169885 -0.196275 -0.3357 0.921293 -0.198948 -0.198953 0.959603 0.922075 -0.345578 0.174223 0.863312 -0.382713 0.328973 0.808054 -0.560034 0.182787 0.751151 -0.578836 0.317366 0.0848338 -0.973727 0.211326 -0.194002 -0.973813 0.118537 0.091692 -0.984269 -0.151023 -0.192406 -0.965026 -0.178059 0 1 0 0 0.97719 0.212368 -0.898877 -0.438201 0 -0.954275 -0.298929 0 -0.896939 -0.437256 -0.0656262 -0.972515 -0.222888 -0.0673432 0 -0.949185 -0.314719 0 -0.997428 -0.0716727 0 -0.997428 0.0716735 0 0.949185 -0.314718 0 0.997428 -0.0716727 0 0.997428 0.0716734 0 0.97719 -0.212368 0 0.949185 -0.314719 -0.952418 -0.297306 0.0671509 0 -0.97719 0.212369 0 -0.97719 -0.212369 -0.97252 -0.223308 0.0658702 -0.988835 -0.149017 5.47167e-008 0.97252 -0.223308 0.06587 1 0 0 0.988835 -0.149017 -5.47167e-008 0.97252 -0.223308 0.0658702 0.88697 -0.432397 0.162226 0.972515 -0.222888 0.0673432 0.896939 -0.437256 0.0656262 0 -0.949185 0.314719 0.0653088 -0.997865 -1.1122e-007 0.32072 -0.947174 -5.46182e-007 0.130618 -0.991433 -2.2244e-007 0.442966 -0.896539 -7.54364e-007 -1 0 -2.64909e-006 -0.442967 -0.896538 -1.17346e-006 -0.320721 -0.947174 -7.61988e-007 -0.130618 -0.991433 -2.59513e-007 -0.0653089 -0.997865 -8.65046e-008 0.585875 0.145583 0.797217 0.669861 -0.143487 0.72849 0.741459 0.56494 -0.362052 0.765131 0.618373 -0.179414 0.860873 0.495047 -0.117582 0 0.139609 0.990207 0.150289 0.273993 0.949916 0 0.41054 0.911843 0.1575 0.405416 0.900462 0.19509 0.980785 0 0.369012 0.758016 -0.537812 0.436471 0.896012 -0.0815846 0.475858 0.816598 -0.326691 0.593431 0.797297 -0.110256 0.834153 0.526617 0.1639 0.988479 0.0921435 0.12008 0.881712 0.442661 -0.163206 0.993681 0.0681303 -0.0892019 -0.983476 0 0.181038 -0.987895 0 0.155122 -0.209948 0 0.977713 -0.113958 0.0313055 0.992992 -0.410538 0 0.911843 -0.409473 0.0818412 0.908644 -0.685223 0.715904 0.133976 -0.436959 0.766999 0.469871 -0.237632 0.969582 0.0586683 -0.256909 0.93681 0.237454 -0.321212 0.945184 -0.0587289 -0.730925 0.6692 -0.133867 0.956314 0.288149 0.0493336 0.957737 0.255543 0.132052 0.899475 0.271023 0.342769 0.921274 0.168012 0.35075 0.9562 0.292714 8.27963e-007 0.9562 0.292715 -8.32654e-007 0.9562 0.292715 -2.39203e-007 0.956199 0.292717 -1.23299e-006 0.9562 0.292715 5.04e-007 0.9562 0.292714 5.95027e-007 0.9562 0.292714 2.93252e-007 0.9562 0.292714 -1.84548e-007 -1.5175e-006 -4.57242e-007 -1 1.74263e-007 9.36015e-008 -1 1.86603e-006 6.44445e-007 -1 1.49139e-006 4.49373e-007 -1 -1.67253e-007 -9.18595e-008 -1 -1.82589e-006 -6.33092e-007 -1 0.115091 0.928237 -0.353738 0.190541 0.97007 -0.150529 0.342559 0.878245 -0.333674 0.681053 0.724099 -0.108847 0.546264 0.78303 -0.297422 0.104852 0.408277 0.906816 0.164368 0.174482 0.970845 0.51823 0.34829 0.781109 0.669861 0.143487 0.72849 0.16985 -0.956644 -0.236607 0.190541 -0.97007 0.150526 0 -0.992717 -0.120467 0 -0.970541 0.240934 -0.707106 0.707107 0 0.670445 -0.741959 0 0.946948 0.321388 0 -0.670444 0.74196 0 0.0593545 -0.998237 0 0.295353 -0.955388 0 0.118709 -0.992929 0 0.410599 -0.911816 0 -0.315808 -0.948823 0 -0.652288 -0.757971 0 -0.436751 -0.899582 0 -0.746637 -0.665232 0 -0.698876 -0.715243 0 -0.858487 -0.512835 0 -0.758722 -0.651414 0 -0.898797 -0.438365 0 0.748257 -0.663409 0 0.899446 -0.437031 0 0.8323 -0.554325 0 -0.678421 -0.734673 0 -0.845256 -0.534362 0 -0.740169 -0.672421 0 -0.888646 -0.458594 0 -0.0442123 -0.999022 0 0.21185 -0.977302 0 0.0442122 -0.999022 0 0.291207 -0.95666 0 0.285621 -0.958343 0 0.610265 -0.792198 0 0.398003 -0.917384 0 0.708707 -0.705503 0 0.114248 -0.993452 0 -0.0617387 -0.998092 0 0.0571242 -0.998367 0 -0.123477 -0.992347 0 0.295027 0.945432 -0.138268 -0.147515 0.949614 -0.276536 0.0881923 0.982287 -0.165329 -0.221399 0.969648 -0.10376 -0.2214 -0.969647 0.10376 -0.0881937 -0.982287 -0.16533 0.987589 -0.157063 0 0.993707 -0.112013 0 -0.999206 0.0398318 0 -0.992933 -0.118674 0 -0.968843 -0.247675 0 -0.974418 -0.224742 0 -0.167802 0 0.985821 -0.208433 0.137178 0.968369 -0.335686 0.196383 0.921275 0.332278 0.934561 -0.127227 0.153735 0.96424 -0.215885 0.194004 0.973813 0.118536 0.313824 0.934194 0.169696 -0.209946 0 -0.977713 0.194873 -0.153271 -0.968779 0.206941 -0.09355 -0.973871 -0.210318 -0.21769 -0.953088 -0.196275 -0.3357 -0.921293 -0.335686 -0.196384 -0.921275 -0.198948 -0.198953 -0.959603 0.440918 -0.886632 -0.139555 0.617149 -0.64919 -0.444612 0.735738 -0.661057 -0.147285 0.673853 -0.68486 -0.277288 0.206941 -0.09355 0.973871 0.407149 -0.128195 0.904321 0.239634 -0.0215382 0.970624 0.410262 -0.0368727 0.911222 -0.209946 0 0.977713 -0.894506 -0.43607 0.0984929 -0.952418 -0.297306 0.0671509 -0.898877 -0.438201 0 -0.988767 -0.149464 0 -0.88697 -0.432397 -0.162226 -0.97252 -0.223308 -0.06587 -0.898877 -0.438201 1.60901e-007 -0.97252 -0.223308 0.06587 -0.988835 -0.149017 -5.47167e-008 0.97252 -0.223309 0.0658702 0.972515 -0.222888 0.0673434 -0.442967 -0.896538 1.50873e-006 -0.130618 -0.991433 3.3366e-007 -0.320721 -0.947174 9.79699e-007 -0.0653089 -0.997865 1.1122e-007 -1 0 -2.64909e-006 0.442966 -0.896539 5.86728e-007 0.32072 -0.947174 4.24808e-007 0.130618 -0.991433 1.73009e-007 0.0653088 -0.997865 8.65045e-008 0.727366 -0.212062 -0.652663 0.6402 -0.398846 -0.656557 0.741459 -0.564942 0.362049 0.765131 -0.618374 0.179411 0.860873 -0.495049 0.11758 0 0.992717 -0.120469 0.16985 0.956643 -0.236612 0 0.934446 -0.356104 0.172931 0.920368 -0.350739 0.965732 0.259542 0 0.991544 0.129771 0 0.0977657 0.106221 0.989525 0.201542 0.163362 0.965761 0.103724 0.0312533 -0.994115 0.0977657 0.106221 -0.989525 -0.93445 0 -0.356094 -0.93445 0 -0.356094 -0.978377 0 -0.206829 -0.987895 0 -0.155122 -0.0648771 0.951784 0.29983 -0.11332 0.714766 0.690121 0.151591 0.741218 0.653924 0.0648149 0.972991 0.221556 -0.937035 0.30341 -0.17294 -0.913809 0.367214 0.173517 -0.748552 0.489335 -0.447461 -0.436959 0.766999 -0.469871 0.359723 0.491727 0.792971 0.407673 0.122662 0.904852 0.130817 0.103217 0.986019 0.0829834 0.0688243 0.994172 0.9562 0.292715 3.36e-007 0.9562 0.292714 2.25174e-007 0.9562 0.292714 3.91003e-007 0.9562 0.292714 4.82625e-007 0.9562 0.292714 1.47111e-006 0.956199 0.292716 -6.24492e-007 0.9562 0.292715 -3.22717e-007 0.956199 0.292717 -1.84949e-006 0.293133 -0.956072 0 -0.292755 0.956188 0 0.293974 -0.955814 0 0.293974 -0.955814 0 0.1575 0.405416 -0.900462 0.51823 0.34829 -0.781109 0.150289 0.273993 -0.949916 0.585875 0.145583 -0.797217 0.104852 -0.408277 -0.906816 0.164368 -0.174482 -0.970845 0.51823 -0.34829 -0.781109 0.669861 -0.143487 -0.72849 0.16985 0.956643 0.236612 0 0.992717 0.120469 0 0.97054 -0.240939 0 -0.992718 0.120466 0 -0.970542 0.240931 0.707107 -0.707107 0 0 -0.139295 -0.990251 0 0.0326285 -0.999468 0 0.198746 -0.980051 0 0.198746 -0.980051 0.221396 0.969648 0.10376 -0.0881934 0.982287 0.165329 0.999006 -0.0445721 0 0.999752 -0.0222861 0 -0.999218 0.0395457 0 -0.971699 0.236224 0 -0.971699 0.236224 0 -0.934454 0 0.356083 -0.941205 0.138478 0.308152 -0.983477 0 0.181033 -0.962054 0.232837 0.142263 0.973813 0.194004 -0.118536 0.934191 0.313828 -0.1697 0.93456 0.332282 0.12723 0.96424 0.153735 0.215885 0.209692 -0.0251407 -0.977444 -0.137176 0.208436 -0.968368 -0.356144 0.147245 -0.922757 -0.196379 0.335692 -0.921274 -0.198949 0.198952 -0.959603 0.0854144 -0.891376 -0.445144 0.0194109 -0.988902 -0.147299 0.074675 -0.957689 -0.27795 0.194873 -0.153271 0.968779 0.395134 -0.271327 0.877639 -0.894506 -0.43607 0.0984929 -0.88697 -0.432397 0.162226 -0.97252 -0.223308 -0.0658702 0.952418 -0.297307 -0.0671511 0.97252 -0.223309 -0.0658704 0 0.949185 0.314719 0 0.949185 0.314718 0.1575 -0.405416 -0.900462 0.150289 -0.273993 -0.949916 0.585875 -0.145583 -0.797217 0.172931 -0.92037 0.350733 0.16985 -0.956644 0.236607 0.342559 -0.878248 0.333668 0.570072 -0.814287 0.109339 0.546263 -0.783032 0.297417 0 0.41054 -0.911843 0.104852 0.408277 -0.906816 0 0.279218 -0.960228 0.164368 0.174482 -0.970845 0 0.167804 0.98582 0 0.209948 0.977713 0.995929 0 0.0901381 0.994668 0 -0.10313 -0.089308 0 0.996004 -0.93445 0 0.356094 -0.932959 0.0580001 0.355279 -0.98887 0.0872156 0.120539 -0.845719 0.425992 0.321387 0.321209 0.945185 0.0587289 0.719191 0.687499 0.10054 0.662855 0.741984 -0.10042 0.237629 0.969583 -0.0586683 0.200969 0.391214 0.898089 0.368332 0.445792 0.815844 0.215859 -0.704038 -0.676562 0.218049 -0.703127 -0.676807 0.220238 -0.702212 -0.677048 -0.21545 0.703695 -0.677049 -0.215472 0.703684 -0.677052 -0.215495 0.703674 -0.677056 0.216255 -0.70345 -0.677046 0.2163 -0.703432 -0.677051 0.216344 -0.703413 -0.677056 0.782824 0.605677 -0.142622 0.85628 0.508919 -0.0882341 0.640199 0.398845 0.656557 0.150289 -0.273993 0.949916 0 -0.139609 0.990207 0 0.279218 0.960228 -0.707107 -0.707107 0 0.707107 -0.707107 0 -0.707106 0.707108 0 -0.405566 -0.914066 0 -0.202783 -0.979224 0 0.046859 -0.998901 0 -0.229817 -0.973234 0 -0.0468589 -0.998902 0 -0.319079 -0.947728 0 0.223535 -0.974696 0 0.306679 -0.951813 0 -0.217902 -0.975971 0 -0.303169 -0.952937 0 -0.540615 -0.84127 0 -0.464516 -0.885565 0 -0.295031 0.94543 0.138268 0.981097 0.193515 0 0.981097 0.193515 0 0 0.264657 0.964343 0 0.176594 0.984284 0 0.126077 0.99202 0 0.0502738 0.998735 0 0.0251369 0.999684 0 -0.0251368 0.999684 0 -0.0502735 0.998735 -0.934195 -0.31382 -0.169696 -0.934563 -0.332272 0.127227 -0.975332 -0.128045 0.179809 -0.410534 0 -0.911845 0.382828 -0.913218 0.139555 0.973694 -0.0699582 -0.216853 0.941694 -0.288031 -0.173926 0.928684 -0.110926 -0.353895 0.863312 -0.382713 -0.328973 0.164671 0.25021 0.954085 0.356149 0.147245 0.922755 0.196383 0.335692 0.921273 0.198953 0.198953 0.959602 -0.983477 0 -0.181033 -0.934454 0 -0.356083 0.132149 -0.293381 0.946818 0.896939 -0.437258 0.0656264 0.954275 -0.29893 0 0.898876 -0.438202 0 0.988835 -0.149017 -5.59892e-008 0.898876 -0.438202 -1.64642e-007 0.88697 -0.432398 0.162226 0.988835 -0.149017 5.59892e-008 0.97252 -0.223309 -0.0658702 0.88697 -0.432398 -0.162226 0.894506 -0.436072 -0.0984932 0.988767 -0.149464 0 0.898877 -0.438201 0 0.952418 -0.297306 -0.0671509 0.894506 -0.43607 -0.0984929 0 -0.997428 0.0716727 0 -0.997428 -0.0716735 0 -0.949185 -0.314719 0 0.997428 -0.0716734 0 0.997428 0.0716727 -0.88697 -0.432397 -0.162226 -0.995185 -0.0980162 3.38957e-006 -0.947174 -0.320721 3.22605e-006 -0.896538 -0.442967 3.05358e-006 0.997865 -0.0653095 9.91288e-007 0.991433 -0.130619 1.09362e-006 0.947174 -0.320721 1.14444e-006 0.896538 -0.442966 1.18751e-006 0.410733 -0.100421 -0.906209 0.551736 0.101199 -0.827856 0.190541 -0.97007 -0.150526 0.472082 -0.877191 0.0876065 0.619672 -0.779835 -0.0886748 0 -0.934449 -0.356098 0.11509 -0.928239 -0.353732 0 -0.970541 -0.240934 0 -0.410538 -0.911843 0 -0.279217 -0.960228 0 -0.139608 -0.990207 0.923884 0.382672 0 0.410226 0.0389825 0.91115 0.401142 0.217971 0.889704 0.0959263 0.018238 0.995221 0.18098 0.306193 -0.934608 0.360201 0.496883 -0.789533 0.201542 0.163362 -0.965761 0.401142 0.217971 -0.889704 -0.410538 0 0.911843 -0.22162 0.365979 0.903849 -0.991283 0.0534436 -0.120421 -0.104476 0.0470358 -0.993414 -0.409473 0.0818412 -0.908644 -0.221751 0.422759 -0.878693 -0.382702 0.367395 -0.847679 0.256907 0.936811 0.237454 0.0922245 0.0520886 -0.994375 0.407673 0.122662 -0.904852 0.130817 0.103217 -0.986019 0.359723 0.491727 -0.792971 0.9562 0.292714 -2.25174e-007 0.9562 0.292714 -4.82625e-007 0.9562 0.292714 -8.27963e-007 0.9562 0.292715 2.39203e-007 -1.5175e-006 -4.57242e-007 1 1.74263e-007 9.36015e-008 1 1.86603e-006 6.44445e-007 1 0.95748 0.288501 2.03387e-007 0.95748 0.288501 -4.77108e-008 0.95748 0.288501 1.01693e-007 0.95748 0.2885 -1.36508e-007 0.95748 0.288501 2.41707e-007 0.95748 0.288501 3.94062e-007 0.95748 0.288501 7.88125e-007 -0.21545 0.703695 0.677049 -0.215472 0.703684 0.677052 -0.215495 0.703674 0.677056 0.741459 0.56494 0.362052 0.765131 0.618373 0.179414 0.860873 0.495047 0.117582 0 0.139609 -0.990207 0.707107 0.707107 0 0.707103 -0.707111 0 -0.0641391 -0.997941 0 -0.128278 -0.991738 0 -0.485236 -0.874383 0 -0.562301 -0.826933 0 0.480504 -0.876993 0 0.569809 -0.821777 0 -0.147516 -0.949614 0.276537 -0.295032 -0.94543 -0.138268 0 -0.277288 0.960787 0 -0.251982 0.967732 0 -0.176594 0.984284 0 -0.126077 0.99202 0 -0.277288 -0.960787 0 -0.251982 -0.967732 0.941201 0.138482 -0.308162 0.988828 -0.088319 0.120076 0.931208 -0.0832264 0.354858 0.938903 0.18468 0.290437 -0.332273 -0.934563 -0.127226 -0.138305 -0.940787 -0.309501 -0.184635 -0.968016 -0.169868 0.968009 0.184657 0.169885 -0.983477 0 0.181033 -0.934454 0 0.356083 0.25021 0.164671 -0.954085 0 -0.949185 0.314719 -0.88697 -0.432397 0.162226 -0.752339 -0.658776 2.56245e-006 -0.658776 -0.752339 2.24377e-006 -0.890435 0.455111 1.5164e-006 -0.890435 0.455111 2.2746e-006 -0.950385 0.311076 2.71874e-006 -0.98783 0.155538 3.36452e-006 0.75234 -0.658775 9.96508e-007 0.658776 -0.752339 8.72578e-007 0.741459 -0.564942 -0.362049 0.782824 -0.605679 -0.14262 0.85628 -0.50892 -0.0882325 0.632732 0.76459 -0.122688 0.719587 0.683736 0.121242 0.164368 -0.174482 0.970845 0 -0.279218 0.960228 0.104852 -0.408277 0.906816 0 -0.41054 0.911843 0 0.410538 0.911843 0.382682 0.92388 0 0.758528 0.584784 0.287514 0.920262 0.173812 0.350581 0.119177 0.0169757 -0.992728 0.11332 0.714767 -0.690121 0.221621 0.36598 -0.903849 -0.113184 0.76687 -0.631743 -0.382702 0.367395 0.847679 -0.0648156 0.972991 -0.221556 -0.256909 0.93681 -0.237454 0.382703 0.367395 -0.847678 0.9562 0.292715 8.32654e-007 0.956199 0.292717 1.23299e-006 -0.274696 0.684662 0.675115 -0.27819 0.683103 0.675263 -0.281679 0.681534 0.675402 1.49139e-006 4.49373e-007 1 -1.67253e-007 -9.18595e-008 1 -1.82589e-006 -6.33092e-007 1 0.172931 0.920368 0.350739 0.342559 0.878245 0.333674 0.570073 0.814286 0.109341 0.546264 0.78303 0.297422 0.707107 0.707107 0 -0.8621 -0.506738 0 -0.735225 -0.677823 0 -0.981095 0.193528 0 0.147514 0.949615 0.276536 -0.313819 -0.934196 0.169696 -0.989471 0 -0.144728 0.685474 -0.714719 0.138928 0.410417 -0.02458 -0.911567 0.407149 -0.128195 -0.904321 0.138478 0.941202 0.308159 0.184642 0.968014 0.169871 0.988767 -0.149465 0 0.97252 -0.223309 0.0658704 -1 0 3.40597e-006 -1 0 3.40597e-006 1 0 -1.27724e-006 1 0 -1.27724e-006 1 0 9.93409e-007 1 0 9.93409e-007 0.669861 0.143487 -0.72849 0.632732 -0.764591 0.122686 0.719587 -0.683736 -0.12124 0 -0.139609 -0.990207 0 -0.41054 -0.911843 0 -0.992718 -0.120466 0 -0.93445 -0.356094 0 -0.970542 -0.240931 0 0.992718 0.120466 0 0.970542 0.240931 0.369012 0.758016 0.537812 0.475858 0.816598 0.326691 0.435321 0.893684 0.108739 0.554961 0.824521 0.110376 0.758528 0.584784 -0.287514 0.503301 0.764121 0.403493 0.546502 0.461157 -0.699049 0.485754 0.748445 -0.451523 0.9562 0.292715 -3.36e-007 0.9562 0.292714 -3.91003e-007 0.215859 -0.704038 0.676562 0.218049 -0.703127 0.676807 0.220238 -0.702212 0.677048 0.95748 0.288501 -2.03387e-007 0.95748 0.288501 1.71322e-007 0.95748 0.288501 2.56983e-007 0.95748 0.288501 2.39117e-007 0.95748 0.288501 4.34759e-008 0.95748 0.288501 -2.19232e-007 0.95748 0.288501 -3.28849e-007 0.95748 0.288501 -7.88125e-007 0.1575 -0.405416 0.900462 0.51823 -0.34829 0.781109 0.585875 -0.145583 0.797217 0.172931 -0.92037 -0.350733 0.342559 -0.878248 -0.333668 0.570072 -0.814287 -0.109339 0.546263 -0.783032 -0.297417 0 0.209948 -0.977713 0.952353 -0.304997 0 0.878258 -0.478187 0 0.919227 -0.393728 0 -0.886628 -0.462483 0 -0.949426 -0.31399 0 -0.941757 -0.336293 0 -0.907925 -0.419132 0 0 -0.176594 -0.984284 0 -0.126077 -0.99202 -0.987589 -0.157063 0 -0.993707 -0.112013 0 0 0.0326285 0.999468 0 -0.139295 0.990251 -0.138305 -0.940787 0.309501 0.0854144 -0.891376 0.445144 0.147245 0.356149 -0.922755 0.335692 0.196383 -0.921273 0.198953 0.198953 -0.959602 -0.184635 -0.968016 0.169868 0.0637547 -0.695909 0.715294 0.213313 -0.466081 0.858642 0.494941 -0.519801 0.696305 0.88697 -0.432398 0.162226 0.954275 -0.298929 0 -0.898877 -0.438201 -1.60901e-007 0.88697 -0.432397 -0.162226 0.898877 -0.438201 1.60901e-007 0.97252 -0.223308 -0.06587 0.988835 -0.149017 5.47167e-008 0.658776 -0.752339 -1.12189e-006 0.896538 -0.442966 -1.52679e-006 0.75234 -0.658775 -1.28122e-006 0.947174 -0.320721 -1.47142e-006 -0.972223 0.234057 -2.57551e-006 -0.890435 0.455111 -1.76913e-006 -0.972223 0.234057 -2.27223e-006 -0.890435 0.455111 -1.17942e-006 -0.658776 -0.752339 -1.74516e-006 -0.752339 -0.658776 -1.99301e-006 -0.896538 -0.442967 -2.37501e-006 -0.947174 -0.320721 -2.50915e-006 0.6402 -0.398846 0.656557 0.926487 0.130484 -0.35298 0.93445 0 -0.356094 -0.167804 0 -0.98582 -0.410538 0 -0.911843 0.64292 0.50458 0.57624 0.918994 0.344359 0.192007 0.256907 0.936811 -0.237454 0.896915 0.398295 -0.192107 0.961562 0.253526 -0.105467 0.9562 0.292714 -1.47111e-006 0.9562 0.292715 3.22717e-007 0.956199 0.292716 6.24492e-007 0.956199 0.292717 1.84949e-006 -0.274698 0.684662 -0.675114 -0.278191 0.683103 -0.675263 -0.28168 0.681535 -0.675401 -0.381964 0.924177 0 0.472082 -0.877191 -0.0876065 0.619672 -0.779835 0.0886748 0 -0.934449 0.356098 0.11509 -0.928239 0.353732 0 -0.410538 0.911843 0 -0.279217 0.960228 0 -0.104374 0.994538 -0.946948 -0.321388 0 -0.981095 -0.193528 0 0 0.0535322 0.998566 0 -0.198746 0.980051 0 0.0535322 -0.998566 0 0.264657 -0.964343 -0.968009 -0.184657 -0.169884 0.494941 -0.519801 -0.696305 0.213313 -0.466081 -0.858642 0.132149 -0.293381 -0.946818 0.0637547 -0.695909 -0.715294 0.97252 -0.223308 -0.0658702 0.681052 -0.7241 -0.108845 0.190541 0.97007 0.150529 0.472082 0.877191 -0.0876082 0 -0.992717 0.120467 0 0.93445 0.356094 -0.089308 0 -0.996004 0.0648764 0.951784 -0.29983 0.49282 0.497968 0.713551 0.9562 0.292715 -5.04e-007 0.9562 0.292714 -2.93252e-007 -0.274698 0.684662 0.675114 -0.278191 0.683103 0.675263 -0.28168 0.681535 0.675401 -0.215449 0.703695 0.677049 -0.215473 0.703684 0.677052 -0.215496 0.703674 0.677056 0.216254 -0.703451 0.677046 0.216299 -0.703432 0.677051 0.216345 -0.703413 0.677056 0.640199 0.398845 -0.656557 0 -0.279218 -0.960228 -0.707107 -0.707107 0 -0.707106 -0.707108 0 0.870177 -0.492739 0 0.889014 -0.45788 0 0 0.198746 0.980051 0 0.198746 0.980051 0 0.176594 -0.984284 0 0.126077 -0.99202 -0.999752 -0.0222861 0 -0.999006 -0.0445721 0 -0.934195 0.313819 0.169696 0.352571 -0.355694 0.865549 0.494108 -0.375334 0.784208 0.458948 -0.440018 0.771849 -0.147242 0.356149 0.922755 0.395134 -0.271327 -0.877639 -0.153732 0.964241 0.215886 -0.332273 0.934563 0.127227 -0.184672 0.938906 0.290433 -0.184638 0.968015 0.169871 0.898876 -0.438202 1.64642e-007 0.898877 -0.438201 0 0.898877 -0.438201 -1.60901e-007 0.88697 -0.432397 0.162226 0.88697 -0.432397 -0.162226 0.115091 0.928237 0.353738 0.33958 0.574522 0.744721 0.40013 0.627629 0.667816 0.464763 0.713509 0.52431 0.409835 0.0584849 -0.910283 -0.620011 0.499814 0.604791 0.215859 -0.704038 0.676561 0.218049 -0.703127 0.676806 0.220239 -0.702212 0.677048 -0.215449 0.703695 -0.677049 -0.215473 0.703684 -0.677052 -0.215496 0.703674 -0.677056 0.765131 -0.618374 -0.179411 0.860873 -0.495049 -0.11758 0 0.934446 0.356104 -0.707107 0.707107 0 0 0.0502738 -0.998735 0 0.0251369 -0.999684 0 -0.0251368 -0.999684 0 -0.0502735 -0.998735 -0.194001 0.973813 -0.118536 -0.138475 0.941203 -0.308159 0.184675 0.938906 -0.290433 -0.313818 0.934196 -0.169696 0.584335 -0.600641 0.545695 0.691599 -0.54436 0.474725 0.968009 0.184657 -0.169885 -0.198949 0.198952 0.959603 0.88697 -0.432398 -0.162226 0.995185 -0.0980171 -1.27109e-006 0.995185 -0.0980172 -1.37599e-006 -0.991433 -0.130618 -2.6264e-006 -0.997865 -0.0653089 -2.64344e-006 0.737343 0.16868 -0.65412 0.93445 0 0.356094 -0.279217 0 -0.960228 0.139608 0 -0.990207 -0.748552 0.489335 0.447461 -0.932959 0.0580001 -0.355279 -0.845719 0.425992 -0.321387 0.921274 0.168012 -0.35075 0.875567 0.350238 -0.332739 0.9562 0.292714 -5.95027e-007 0.9562 0.292714 1.84548e-007 0.215859 -0.704038 -0.676561 0.218049 -0.703127 -0.676806 0.220239 -0.702212 -0.677048 0.681052 -0.7241 0.108845 0.472082 0.877191 0.0876082 0.619673 0.779835 -0.0886765 0 0.93445 -0.356094 0 0.970542 -0.240931 0 0.992718 -0.120466 -0.855562 -0.517701 0 0 -0.198746 -0.980051 0.0315185 -0.462003 -0.886318 0.0315185 -0.462003 0.886318 0.184642 0.968014 -0.169871 -0.968009 0.184657 0.169885 0.0194109 -0.988902 0.147299 0.074675 -0.957689 0.27795 0 0.97054 0.240939 0.209948 0 0.977713 0.410538 0 0.911843 0.410538 0 -0.911843 -0.995929 0 -0.0901381 -0.620011 0.499814 -0.604791 0.734771 0.458436 -0.499948 0.955889 0.288021 -0.0576147 0.899475 0.271023 -0.342769 0.95748 0.2885 2.21632e-008 0.95748 0.288501 2.32699e-006 0.95748 0.2885 0 0.95748 0.2885 0 0.95748 0.2885 0 0.95748 0.2885 0 0.95748 0.288501 0 0.95748 0.288501 0 0.95748 0.2885 0 0.95748 0.2885 0 0.95748 0.288501 -1.342e-006 0.95748 0.2885 4.41488e-007 0.95748 0.2885 -4.25255e-007 0.95748 0.288501 3.54971e-007 0.95748 0.288501 -1.11168e-006 0.95748 0.2885 -1.99183e-008 0.216255 -0.70345 0.677046 0.2163 -0.703432 0.677051 0.216344 -0.703413 0.677056 0.782824 -0.605679 0.14262 0.85628 -0.50892 0.0882325 0.632732 0.76459 0.122688 0.719587 0.683736 -0.121242 0 0.410538 -0.911843 0.981097 -0.193515 0 0.999218 0.0395475 0 0.999218 0.0395475 0 0.981097 -0.193515 0 0.9717 0.23622 0 -0.938907 -0.184676 0.290428 0.352571 -0.355694 -0.865549 0.494108 -0.375334 -0.784208 0.458948 -0.440018 -0.771849 -0.184638 0.968015 -0.169871 -0.968009 -0.184657 0.169884 0.617149 -0.64919 0.444612 0.735738 -0.661057 0.147285 0.673853 -0.68486 0.277288 0.570073 0.814286 -0.109341 0.360201 0.496883 0.789533 0.18098 0.306193 0.934608 0.39056 0.308159 -0.867468 0.40013 0.627629 -0.667816 0.33958 0.574522 -0.744721 0.464763 0.713509 -0.52431 0.875567 0.350238 0.332739 -0.274696 0.684662 -0.675115 -0.27819 0.683103 -0.675263 -0.281679 0.681534 -0.675402 0.216254 -0.703451 -0.677046 0.216299 -0.703432 -0.677051 0.216345 -0.703413 -0.677056 0.632732 -0.764591 -0.122686 0.719587 -0.683736 0.12124 0 -0.93445 0.356094 + + + + + + + + + + 0.888832 0.43171 0.867977 0.397389 0.890194 0.428129 0.890887 0.367159 0.889581 0.363569 0.886299 0.362105 0.85042 0.361652 0.847127 0.363061 0.845765 0.366642 0.845065 0.427619 0.846371 0.431211 0.849653 0.432675 0.885539 0.433121 0.652343 0.526656 0.645853 0.531257 0.342628 0.19345 0.385127 0.19345 0.62953 0.451111 0.627126 0.453489 0.627757 0.446876 0.622846 0.451735 0.320286 0.355058 0.315835 0.349086 0.623078 0.0953997 0.621631 0.0883357 0.288925 0.0740266 0.286974 0.0575705 0.409928 0.311357 0.391879 0.34204 0.247005 0.709895 0.246849 0.572222 0.250423 0.710201 0.250266 0.571892 0.412179 0.317493 0.598201 0.317493 0.601913 0.311357 0.248836 0.317493 0.295131 0.317493 0.248836 0.311357 0.297382 0.311357 0.620098 0.0944887 0.621603 0.101553 0.784937 0.0779967 0.784937 0.0612169 0.829911 0.0777785 0.829911 0.0609987 0.673366 0.0477318 0.657392 0.0477316 0.673148 0.00275482 0.657174 0.00275482 0.28875 0.0477289 0.281418 0.0477288 0.288531 0.00275482 0.281199 0.00275482 0.784937 0.507805 0.784937 0.500215 0.829914 0.507587 0.829914 0.499996 0.55379 0.676965 0.478049 0.677022 0.553766 0.605055 0.478047 0.605021 0.0266158 0.953332 0.0247274 0.955156 0.025049 0.732798 0.0269321 0.734627 0.0552485 0.954742 0.0546903 0.954775 0.0550086 0.733286 0.0555666 0.73332 0.0196358 0.733337 0.0201942 0.733297 0.0198733 0.954638 0.0193153 0.954597 0.0113421 0.955476 0.0116674 0.732432 0.0138281 0.954748 0.0141511 0.733168 0.166663 0.71356 0.157427 0.710113 0.16736 0.712073 0.157832 0.708622 0.179135 0.953923 0.187897 0.953889 0.178854 0.955437 0.187802 0.955361 0.161509 0.955671 0.148823 0.954682 0.161355 0.953876 0.14867 0.953384 0.206235 0.953929 0.207638 0.953975 0.206467 0.955202 0.20764 0.955192 0.168131 0.713918 0.168609 0.712525 0.146558 0.731986 0.146753 0.730821 0.148291 0.731972 0.148435 0.730686 0.164391 0.73157 0.175959 0.731649 0.164763 0.953926 0.176335 0.953931 0.159382 0.637361 0.159377 0.654655 0.200924 0.651616 0.173393 0.651608 0.558831 0.936818 0.537591 0.936273 0.559826 0.892343 0.538318 0.891444 0.50215 0.935771 0.494221 0.93544 0.503576 0.891489 0.496091 0.890759 0.519094 0.824653 0.50289 0.824477 0.519335 0.821082 0.502598 0.820997 0.539932 0.875941 0.560635 0.875723 0.540238 0.879135 0.560641 0.879254 0.560241 0.807984 0.560905 0.817391 0.538738 0.808649 0.540234 0.817875 0.560099 0.86635 0.538499 0.866685 0.496584 0.866298 0.483608 0.866434 0.496753 0.83339 0.483847 0.833056 0.517827 0.865942 0.50409 0.865974 0.517919 0.8338 0.504159 0.833903 0.493962 0.817801 0.493342 0.821166 0.480353 0.818126 0.479663 0.821358 0.527437 0.875479 0.527897 0.879023 0.527727 0.817493 0.51908 0.81755 0.525491 0.808471 0.517938 0.808073 0.504121 0.808334 0.502835 0.817473 0.378624 0.747548 0.314396 0.747548 0.378624 0.769043 0.314396 0.769043 0.527818 0.53228 0.525206 0.531766 0.394717 0.152943 0.394717 0.152943 0.394717 0.149866 0.394717 0.149866 0.398941 0.278565 0.40156 0.27908 0.892234 0.365748 0.891505 0.429566 0.846111 0.361541 0.849565 0.359857 0.896458 0.365016 0.893984 0.365111 0.893498 0.358894 0.891709 0.360663 0.853352 0.101309 0.849499 0.103051 0.845628 0.0928827 0.841774 0.0946244 0.847903 0.157401 0.840179 0.157401 0.847903 0.153369 0.840179 0.153369 0.327687 0.191912 0.32629 0.191912 0.249614 0.154307 0.248217 0.15429 0.213355 0.596641 0.213354 0.599229 0.00331832 0.596575 0.00331755 0.599163 0.453081 0.830457 0.453081 0.869352 0.408523 0.830457 0.408523 0.869352 0.249664 0.445342 0.249664 0.547176 0.2463 0.445342 0.2463 0.547176 0.408523 0.769043 0.24667 0.551372 0.247491 0.551372 0.248583 0.552643 0.248956 0.552643 0.239121 0.976734 0.238744 0.975462 0.453256 0.975462 0.452879 0.976734 0.239168 0.976734 0.452832 0.976734 0.686439 0.445342 0.655418 0.547176 0.685045 0.445342 0.654024 0.547176 0.00527087 0.43139 0.0127316 0.423813 0.00807369 0.43257 0.0138918 0.426662 0.116822 0.511086 0.109366 0.503504 0.117984 0.508237 0.11217 0.502325 0.109366 0.503522 0.109388 0.431536 0.109388 0.431422 0.105562 0.50233 0.105584 0.432608 0.105562 0.502323 0.105584 0.432601 0.842479 0.0817143 0.845985 0.0832026 0.841052 0.0781828 0.841561 0.0194097 0.883419 0.0835243 0.843049 0.0159033 0.88695 0.0820967 0.846581 0.0144757 0.888439 0.0785903 0.884016 0.0147973 0.888948 0.0198165 0.887522 0.0162854 0.887656 0.358401 0.890603 0.362056 0.887181 0.360335 0.844998 0.360149 0.84272 0.364531 0.844453 0.365204 0.88684 0.43686 0.848296 0.43638 0.886976 0.439553 0.848057 0.439083 0.891833 0.101309 0.891833 0.0928827 0.527198 0.512437 0.536918 0.522052 0.536918 0.442785 0.597615 0.442785 0.476208 0.268825 0.415349 0.268825 0.473165 0.264851 0.418392 0.264851 0.405603 0.259185 0.405603 0.198988 0.409621 0.256175 0.409621 0.201998 0.670144 0.446876 0.67747 0.453425 0.360476 0.273442 0.335282 0.200016 0.672512 0.4547 0.668496 0.451111 0.627757 0.531257 0.622846 0.526399 0.62953 0.527022 0.627126 0.524645 0.334806 0.36045 0.326948 0.359049 0.633368 0.10539 0.6272 0.101388 0.304489 0.102529 0.294933 0.0893613 0.624194 0.356715 0.283252 0.0637235 0.28532 0.0801796 0.621819 0.362852 0.635856 0.366634 0.634181 0.37277 0.314272 0.34204 0.312696 0.348177 0.314322 0.355222 0.632305 0.111543 0.62589 0.107541 0.784937 0.111515 0.784937 0.0947717 0.829912 0.111297 0.829912 0.0945533 0.706492 0.0477321 0.689835 0.0477319 0.706275 0.00275482 0.689618 0.00275482 0.304432 0.047729 0.296386 0.0477289 0.304212 0.00275482 0.296166 0.00275482 0.784937 0.555286 0.784937 0.515511 0.829914 0.555068 0.829914 0.515293 0.357286 0.605038 0.35728 0.676984 0.0901731 0.955209 0.0650558 0.955169 0.0882876 0.953383 0.0669457 0.953346 0.0482547 0.734683 0.0479312 0.95335 0.0143752 0.954629 0.014698 0.733289 0.0635496 0.732641 0.0632365 0.95544 0.0610516 0.733215 0.0607336 0.954868 0.1534 0.708532 0.137682 0.7029 0.153836 0.707175 0.137955 0.701423 0.129223 0.953643 0.127819 0.953653 0.12748 0.731444 0.128883 0.731469 0.15774 0.975745 0.155698 0.976513 0.149436 0.955823 0.147621 0.955627 0.167108 0.972573 0.168591 0.972251 0.167807 0.974119 0.169073 0.973703 0.163059 0.953907 0.163049 0.955572 0.147224 0.729731 0.145384 0.72943 0.145069 0.730705 0.155834 0.707898 0.15541 0.709303 0.0582626 0.654623 0.0582679 0.637329 0.0167167 0.651558 0.016731 0.604762 0.55971 0.763565 0.538526 0.76374 0.496586 0.808896 0.502984 0.764022 0.49509 0.764319 0.494016 0.824513 0.493715 0.875075 0.493009 0.878414 0.480115 0.874883 0.479325 0.878087 0.525285 0.866436 0.483592 0.809589 0.284497 0.747548 0.284497 0.769043 0.613979 0.531766 0.611368 0.53228 0.394717 0.191912 0.394717 0.191912 0.394717 0.156019 0.394717 0.156019 0.48795 0.278565 0.485331 0.27908 0.843718 0.429031 0.84535 0.432724 0.889848 0.43323 0.886394 0.434914 0.848985 0.355219 0.84912 0.357912 0.843422 0.358166 0.847904 0.205534 0.8495 0.209744 0.840178 0.213965 0.841772 0.21817 0.847903 0.1631 0.840179 0.163099 0.618192 0.409545 0.618192 0.406476 0.759548 0.407876 0.761582 0.406025 0.331059 0.191912 0.252986 0.154346 0.767596 0.191912 0.767596 0.152943 0.768993 0.191912 0.768993 0.152943 0.238103 0.735266 0.453897 0.735266 0.238919 0.735266 0.453081 0.735266 0.408523 0.747548 0.249854 0.552643 0.249474 0.551372 0.650851 0.551372 0.65047 0.552643 0.23849 0.973574 0.45351 0.973574 0.768519 0.296332 0.767226 0.298223 0.767392 0.296332 0.766402 0.298223 0.681682 0.445342 0.650661 0.547176 0.012705 0.511053 0.00524889 0.503472 0.013867 0.508205 0.00805243 0.502293 0.116849 0.423846 0.112191 0.432603 0.118009 0.426695 0.205022 0.511121 0.116822 0.511093 0.205022 0.511113 0.013867 0.508212 0.0997442 0.508239 0.0997442 0.508232 0.203886 0.426722 0.118009 0.426702 0.203886 0.426729 0.890962 0.434621 0.893238 0.430239 0.887896 0.355699 0.848733 0.230142 0.841625 0.230146 0.848757 0.280535 0.84165 0.280539 0.59458 0.518088 0.539952 0.518088 0.539952 0.446749 0.527198 0.4524 0.531205 0.455401 0.481936 0.256175 0.249361 0.0637235 0.249361 0.0575705 0.580626 0.676958 0.580599 0.605047 0.0631066 0.980748 0.0649437 0.980413 0.0885853 0.734777 0.0672549 0.734742 0.0149333 0.954589 0.0152556 0.73333 0.0519633 0.732597 0.0544595 0.733188 0.0516361 0.955444 0.0541409 0.954871 0.191174 0.730366 0.2061 0.730602 0.191209 0.731812 0.205873 0.731876 0.130628 0.953623 0.130286 0.731505 0.15366 0.97724 0.145785 0.955906 0.137711 0.982428 0.137974 0.983912 0.136355 0.982974 0.136707 0.984328 0.164381 0.95556 0.149042 0.729564 0.189297 0.730336 0.189367 0.731796 0.044262 0.604771 0.560236 0.834029 0.538746 0.833394 0.479986 0.881322 0.493598 0.881782 0.525026 0.891498 0.527368 0.882551 0.53994 0.882345 0.480423 0.824571 0.481883 0.764888 0.517403 0.763706 0.560516 0.882757 0.560852 0.824439 0.540292 0.824276 0.844243 0.434117 0.841967 0.429668 0.84024 0.364329 0.853352 0.211493 0.845624 0.219913 0.860852 0.232013 0.863268 0.23093 0.859845 0.234642 0.859728 0.277048 0.866965 0.230942 0.866837 0.277065 0.618192 0.445342 0.0582764 0.609353 0.0582711 0.626647 0.159385 0.626679 0.15939 0.609385 0.173408 0.604811 0.0442477 0.651567 0.200939 0.60482 0.213326 0.690787 0.00328964 0.690721 0.520993 0.445342 0.520993 0.406476 0.249664 0.406476 0.244907 0.445342 0.244907 0.547176 0.24538 0.549486 0.246504 0.549486 0.213229 0.398983 0.21359 0.401254 0.00320285 0.401188 0.00356856 0.398917 0.651108 0.549486 0.653821 0.549486 0.209701 0.432641 0.209701 0.432634 0.839493 0.429762 0.89182 0.21153 0.891812 0.219957 0.603328 0.509435 0.607335 0.4524 0.481936 0.201998 0.368362 0.273809 0.364097 0.270785 0.383349 0.273809 0.385759 0.271425 0.340253 0.201295 0.385759 0.20008 0.34428 0.197696 0.383349 0.197696 0.390052 0.273183 0.385127 0.278054 0.648731 0.524007 0.686735 0.10539 0.678856 0.106795 0.347009 0.121152 0.331446 0.118985 0.665774 0.37477 0.650251 0.372609 0.301818 0.108682 0.316943 0.112634 0.315019 0.118787 0.665893 0.380906 0.682347 0.378746 0.681296 0.372609 0.334052 0.366587 0.32588 0.365186 0.679612 0.112948 0.687806 0.111543 0.784937 0.161554 0.784937 0.144897 0.829912 0.161335 0.829912 0.144679 0.756532 0.0477325 0.739825 0.0477323 0.756314 0.00275482 0.739607 0.00275482 0.360237 0.0477294 0.352531 0.0477294 0.360018 0.00275482 0.352312 0.00275482 0.784937 0.579292 0.784937 0.571656 0.829915 0.579074 0.829915 0.571438 0.784937 0.19468 0.784937 0.178211 0.829912 0.194461 0.829912 0.177992 0.0653704 0.732915 0.00985034 0.732778 0.00952579 0.955124 0.0546716 0.707986 0.0552079 0.708117 0.0557536 0.708166 0.0599445 0.733339 0.0600377 0.708183 0.177735 0.95393 0.177359 0.73166 0.178759 0.731677 0.154085 0.978623 0.162688 0.731577 0.1452 0.953339 0.146935 0.953352 0.145458 0.954621 0.147141 0.954525 0.130673 0.728414 0.130393 0.729946 0.129187 0.728442 0.128819 0.729785 0.189738 0.953883 0.189678 0.955345 0.161669 0.728213 0.537286 0.950028 0.55852 0.950563 0.525322 0.763692 0.519019 0.878991 0.518814 0.87545 0.540564 0.821064 0.528224 0.82103 0.52773 0.824554 0.52547 0.833486 0.518727 0.882566 0.517418 0.89173 0.559654 0.749825 0.53842 0.749973 0.55616 0.74248 0.541824 0.742578 0.524428 0.936125 0.516553 0.936067 0.50228 0.878555 0.502498 0.882039 0.560946 0.820931 0.408523 0.957379 0.284497 0.957379 0.284497 0.869352 0.618192 0.525529 0.617673 0.528112 0.520993 0.318516 0.59441 0.318516 0.492174 0.272312 0.491653 0.274902 0.848771 0.434446 0.842454 0.435886 0.848758 0.285089 0.848756 0.289642 0.84165 0.285089 0.841649 0.28964 0.840179 0.16025 0.847903 0.160251 0.7657 0.403408 0.764945 0.406014 0.762336 0.403408 0.250947 0.15249 0.247575 0.152479 0.2463 0.406476 0.244637 0.572435 0.244793 0.709697 0.249217 0.549486 0.453081 0.971263 0.238919 0.971263 0.764224 0.294016 0.767596 0.294016 0.764672 0.296332 0.650423 0.552643 0.651741 0.552643 0.651369 0.552643 0.362162 0.294016 0.35879 0.294016 0.212483 0.503537 0.20968 0.502356 0.212505 0.431455 0.108365 0.503522 0.108365 0.503504 0.108387 0.431536 0.108387 0.431422 0.20968 0.502363 0.203862 0.508272 0.112191 0.43261 0.117984 0.508245 0.11217 0.502333 0.415349 0.189348 0.644477 0.527022 0.366983 0.278054 0.640644 0.106795 0.291688 0.0955143 0.64944 0.378746 0.318951 0.361195 0.639871 0.112948 0.784937 0.128222 0.829912 0.128003 0.723149 0.0477322 0.722932 0.00275482 0.312756 0.047729 0.312536 0.00275482 0.784937 0.56361 0.829914 0.563392 0.0501426 0.732862 0.0498139 0.955176 0.0611245 0.70802 0.0605844 0.70814 0.0605024 0.733308 0.0606563 0.979994 0.130729 0.955176 0.144826 0.731981 0.176509 0.955457 0.177682 0.955447 0.187526 0.731777 0.187419 0.730307 0.131001 0.956705 0.540568 0.957483 0.554905 0.957841 0.502595 0.875044 0.284497 0.830457 0.616194 0.530302 0.616193 0.530302 0.618192 0.364542 0.49017 0.277098 0.895718 0.430441 0.892538 0.436604 0.866833 0.281607 0.859725 0.281608 0.766338 0.40601 0.767093 0.403408 0.25019 0.149866 0.244907 0.406476 0.249664 0.311357 0.361972 0.298223 0.361714 0.296332 0.764415 0.298223 0.764033 0.299498 0.764934 0.299498 0.520993 0.525529 0.521513 0.528112 0.522992 0.530302 0.358994 0.296332 0.205048 0.423874 0.100931 0.423964 0.100931 0.423841 0.00805243 0.5023 0.00807369 0.432577 0.840178 0.0988286 0.847903 0.107255 0.531205 0.509435 0.476208 0.189348 0.607335 0.512437 0.597615 0.522052 0.390052 0.198321 0.693414 0.101388 0.362573 0.118985 0.330392 0.125138 0.695761 0.366274 0.697679 0.372411 0.373687 0.366587 0.372917 0.36045 0.694753 0.107541 0.346889 0.127305 0.363387 0.125138 0.773275 0.0477326 0.773058 0.00275482 0.367828 0.0477295 0.367609 0.00275482 0.784937 0.586624 0.829915 0.586406 0.784937 0.210654 0.829912 0.210435 0.0904742 0.732954 0.191579 0.95388 0.191554 0.955329 0.160986 0.731596 0.127647 0.729803 0.156112 0.977958 0.158139 0.977293 0.492174 0.191912 0.859856 0.328151 0.859732 0.286168 0.866965 0.328127 0.86684 0.286149 0.762911 0.407836 0.764304 0.40782 0.246178 0.152475 0.2463 0.311357 0.244907 0.311357 0.25019 0.0575705 0.21351 0.00316012 0.213189 0.397685 0.0036889 0.00300418 0.00361069 0.397619 0.653655 0.551372 0.652833 0.551372 0.359984 0.298223 0.763986 0.299498 0.765307 0.299498 0.203862 0.508265 0.100904 0.511088 0.100904 0.511081 0.0138918 0.426669 0.0997691 0.426696 0.59458 0.446749 0.603328 0.455401 0.418392 0.193322 0.473165 0.193322 0.603534 0.0575705 0.41104 0.0575705 0.723704 0.327769 0.717713 0.343063 0.390436 0.349086 0.386325 0.355058 0.72565 0.311357 0.729363 0.317493 0.7273 0.333906 0.393408 0.348177 0.391907 0.355222 0.765053 0.0637235 0.765053 0.0575705 0.718636 0.0637235 0.71638 0.0575705 0.601278 0.0637235 0.414762 0.0637235 0.253477 0.67677 0.253396 0.605317 0.605627 0.0477313 0.418944 0.0477299 0.605409 0.00275482 0.418726 0.00275482 0.583683 0.57137 0.553788 0.571363 0.784937 0.49279 0.784937 0.485485 0.829914 0.492572 0.829914 0.485267 0.542487 0.585301 0.490317 0.585228 0.538494 0.576912 0.541465 0.580767 0.491324 0.58068 0.494112 0.576838 0.498257 0.574271 0.503134 0.573377 0.528746 0.573421 0.534023 0.574334 0.0601844 0.954773 0.0601208 0.979867 0.0636465 0.707317 0.176117 0.730128 0.163978 0.729936 0.129502 0.956641 0.12915 0.955287 0.17729 0.730147 0.163188 0.728331 0.162644 0.729915 0.161118 0.729836 0.618192 0.403408 0.394717 0.110897 0.418563 0.0647491 0.394717 0.110897 0.396721 0.277098 0.395238 0.274902 0.245421 0.149866 0.245421 0.0575705 0.246818 0.149866 0.246818 0.0575705 0.213381 0.511655 0.213356 0.59484 0.00334425 0.511589 0.00331889 0.594774 0.238919 0.830457 0.238919 0.869352 0.764224 0.191912 0.654945 0.549486 0.359161 0.298223 0.361079 0.299498 0.361452 0.299498 0.249902 0.552643 0.00295639 0.403456 0.213836 0.403522 0.00337652 0.405803 0.213413 0.405869 0.0997691 0.426689 0.00527084 0.431503 0.0127316 0.423937 0.116849 0.423969 0.205048 0.423997 0.485953 0.259185 0.27225 0.605173 0.272308 0.67688 0.0521586 0.707252 0.0503203 0.707582 0.0517686 0.980748 0.0542203 0.979994 0.162075 0.957335 0.163597 0.957223 0.492174 0.0647491 0.492174 0.152943 0.485953 0.198988 0.394717 0.272312 0.842622 0.343134 0.841625 0.340501 0.845034 0.344227 0.848731 0.344232 0.764224 0.152943 0.764224 0.0575705 0.362353 0.299498 0.212504 0.431568 0.697877 0.0953997 0.377006 0.112994 0.708182 0.356196 0.710846 0.362333 0.380173 0.359049 0.381234 0.365186 0.699394 0.101553 0.378686 0.119147 0.79005 0.0477327 0.789833 0.00275482 0.375253 0.0477295 0.375034 0.00275482 0.784937 0.622399 0.829915 0.622181 0.784937 0.262418 0.829913 0.2622 0.490324 0.696805 0.542518 0.696731 0.541489 0.701266 0.538517 0.705122 0.494119 0.705196 0.491332 0.701353 0.503151 0.708656 0.498266 0.707762 0.53405 0.707699 0.52877 0.708612 0.0654571 0.707679 0.0547589 0.979868 0.0596264 0.954741 0.207276 0.731838 0.136339 0.702314 0.105075 0.731439 0.103676 0.731385 0.104846 0.730149 0.103674 0.730167 0.483133 0.889889 0.762336 0.311357 0.763164 0.311357 0.767093 0.311357 0.7657 0.311357 0.394717 0.272312 0.012705 0.511061 0.212483 0.503555 0.699445 0.0883357 0.388699 0.10305 0.720949 0.3492 0.387632 0.361195 0.701024 0.0944887 0.391081 0.109203 0.80683 0.0477328 0.806613 0.00275482 0.382558 0.0477296 0.382339 0.00275482 0.583723 0.710636 0.55382 0.710654 0.784937 0.449099 0.829914 0.448881 0.34192 0.70618 0.273668 0.687465 0.33392 0.712564 0.277793 0.697327 0.32405 0.716406 0.284336 0.705797 0.31341 0.717789 0.292855 0.712297 0.302772 0.716387 0.0553034 0.979823 0.0595762 0.979823 0.105402 0.953469 0.105177 0.954759 0.127977 0.955261 0.104003 0.953516 0.136707 0.700971 0.767596 0.0575705 0.768993 0.294016 0.357393 0.294016 0.357867 0.296332 0.00524889 0.503489 0.272071 0.571688 0.453897 0.741407 0.238103 0.741407 0.401729 0.741407 0.290271 0.741407 0.341898 0.575852 0.333894 0.56947 0.273618 0.594586 0.324019 0.565632 0.277748 0.584724 0.313375 0.564251 0.284294 0.576253 0.302733 0.565656 0.292815 0.56975 0.049956 0.980402 0.207274 0.73062 0.480987 0.934778 0.768993 0.0575705 0.362401 0.299498 0.763164 0.317493 0.272222 0.710362 0.245643 0.0477285 0.245423 0.00275482 0.0229076 0.955499 0.02323 0.732448 0.020742 0.733178 0.0204208 0.954759 0.178463 0.730165 0.104005 0.954733 + + + + + + + + + + + + + + +

783 0 0 764 1 1 768 2 2 768 2 2 764 1 1 769 3 3 769 3 3 764 1 1 788 4 4 788 4 4 764 1 1 772 5 5 772 5 5 764 1 1 773 6 6 773 6 6 764 1 1 786 7 7 786 7 7 764 1 1 776 8 8 776 8 8 764 1 1 779 9 9 779 9 9 764 1 1 782 10 10 782 10 10 764 1 1 778 11 11 778 11 11 764 1 1 765 12 12 765 12 12 764 1 1 783 0 0 1022 10 0 1007 13 2 1003 1 1 1007 13 2 1008 14 3 1003 1 1 1008 14 3 1027 7 4 1003 1 1 1027 7 4 1011 15 5 1003 1 1 1011 15 5 1012 16 6 1003 1 1 1012 16 6 1025 4 7 1003 1 1 1025 4 7 1015 17 8 1003 1 1 1015 17 8 1018 18 9 1003 1 1 1018 18 9 1021 0 10 1003 1 1 1021 0 10 1017 19 11 1003 1 1 1017 19 11 1004 20 12 1003 1 1 1004 20 12 1022 10 0 1003 1 1 44 28 21 45 29 22 273 30 21 274 31 22 273 30 21 45 29 22 29 32 23 28 33 24 258 34 23 257 35 24 258 34 23 28 33 24 9 36 25 1 37 26 238 38 25 230 37 26 238 38 25 1 37 26 23 39 27 38 35 28 252 39 27 267 33 28 252 39 27 38 35 28 225 40 29 227 40 30 325 40 31 327 40 32 325 40 31 227 40 30 352 41 33 331 41 34 252 41 27 231 41 35 252 41 27 331 41 34 328 41 36 353 41 37 228 41 38 253 41 39 228 41 38 353 41 37 257 27 24 357 27 40 258 27 23 358 27 41 258 27 23 357 27 40 338 42 42 330 43 43 288 44 44 280 43 45 288 44 44 330 43 43 349 45 46 348 46 47 299 47 48 298 48 49 299 47 48 348 46 47 374 49 50 371 50 51 324 51 52 321 52 53 324 51 52 371 50 51 360 53 54 359 54 55 310 55 56 309 56 57 310 55 56 359 54 55 304 25 58 301 25 59 303 25 60 302 25 61 303 25 60 301 25 59 376 57 62 396 58 63 397 59 64 397 59 64 384 60 65 376 57 62 406 61 66 415 62 67 416 63 68 416 63 68 410 64 69 406 61 66 413 65 70 420 66 71 419 67 72 419 67 72 403 68 73 413 65 70 381 69 74 389 70 75 399 71 76 411 72 77 399 71 76 389 70 75 439 73 78 460 74 79 472 75 80 471 76 81 472 75 80 460 74 79 424 77 82 458 78 83 484 79 84 483 80 85 484 79 84 458 78 83 495 81 86 496 82 87 437 83 88 435 84 89 437 83 88 496 85 87 427 86 90 475 87 91 489 88 92 504 89 93 489 88 92 475 87 91 439 73 78 472 75 80 498 90 94 508 91 95 498 90 94 472 75 80 479 92 96 511 93 97 451 94 98 487 95 99 451 94 98 511 93 97 454 96 100 441 97 101 438 98 102 423 99 103 438 98 102 441 97 101 524 41 104 523 41 105 532 41 104 531 41 105 532 41 104 523 41 105 518 100 106 517 100 107 542 100 106 541 100 107 542 100 106 517 100 107 549 100 108 553 100 109 564 101 110 565 101 111 564 101 110 553 100 109 556 102 112 550 103 113 582 104 114 570 105 115 582 104 114 550 103 113 602 106 116 604 106 117 613 107 118 612 108 119 613 107 118 604 106 117 595 109 120 585 109 121 618 110 122 617 111 123 618 110 122 585 109 121 559 112 124 599 113 125 562 112 126 587 113 127 562 112 126 599 113 125 563 112 128 585 109 121 566 112 129 595 109 120 566 112 129 585 109 121 641 114 130 635 40 131 640 105 132 632 40 133 640 105 132 635 40 131 650 115 134 653 115 135 647 116 136 652 116 137 647 116 136 653 115 135 677 117 138 683 118 139 671 40 140 686 40 141 671 40 140 683 118 139 669 119 142 667 120 120 682 121 143 690 120 122 682 121 143 667 120 120 661 122 144 673 123 145 644 124 146 648 125 147 644 124 146 673 123 145 648 115 147 673 126 145 651 115 148 675 126 149 651 115 148 673 126 145 714 120 150 712 120 151 713 120 152 711 120 153 713 120 152 712 120 151 725 40 151 726 40 150 723 40 153 724 40 152 723 40 153 726 40 150 62 127 154 67 128 155 81 129 154 87 130 155 81 129 154 67 128 155 750 131 156 223 131 157 751 131 158 219 131 159 751 131 158 223 131 157 52 132 160 745 133 160 51 134 161 739 135 161 51 134 161 745 133 160 794 136 162 793 137 163 769 3 3 768 2 2 769 3 3 793 137 163 800 138 164 798 139 165 786 7 7 773 6 6 786 7 7 798 140 165 754 141 166 770 142 167 763 143 168 787 144 169 763 143 168 770 142 167 814 40 170 818 40 171 810 40 172 816 40 173 810 40 172 818 40 171 822 145 174 820 145 175 802 100 176 801 100 177 802 100 176 820 145 175 851 146 178 849 147 179 850 148 180 847 149 181 850 148 180 849 147 179 829 150 182 827 151 183 845 152 184 843 153 185 845 152 184 827 151 183 858 154 186 860 155 187 695 40 188 693 40 189 695 40 188 860 155 187 859 156 190 873 157 191 869 158 192 877 159 193 869 158 192 873 157 191 713 100 152 724 100 152 880 100 194 721 100 194 880 100 194 724 100 152 900 160 195 903 161 196 912 162 197 915 163 198 912 162 197 903 161 196 913 164 199 901 165 200 900 160 201 900 160 201 912 162 202 913 164 199 918 100 203 913 164 199 912 162 202 912 162 202 917 100 204 918 100 203 834 166 205 923 167 206 837 168 207 922 169 208 837 168 207 923 167 206 1026 184 169 1010 185 236 1034 186 237 1035 187 238 1034 188 237 1010 185 236 1024 189 239 1014 190 240 1039 191 164 1028 192 241 1039 191 164 1014 190 240 1005 193 242 1016 194 243 991 195 244 998 196 245 991 195 244 1016 194 243 1045 40 246 1042 40 247 1053 40 170 1049 40 172 1053 40 170 1042 40 247 37 201 270 43 202 271 266 203 270 272 204 271 266 203 270 43 202 271 31 205 272 30 206 273 260 207 272 259 208 273 260 207 272 30 206 273 7 209 274 8 210 275 236 211 274 237 212 275 236 211 274 8 210 275 19 213 276 2 214 35 248 215 276 231 214 35 248 215 276 2 214 35 230 27 26 330 27 277 238 27 25 338 27 278 238 27 25 330 27 277 248 41 276 348 41 279 249 41 280 349 41 281 249 41 280 348 41 279 271 41 282 371 41 283 274 41 22 374 41 284 274 41 22 371 41 283 360 27 285 260 27 272 359 27 286 259 27 273 359 27 286 260 27 272 336 216 287 337 217 288 286 218 289 287 219 290 286 218 289 337 217 288 343 220 291 350 221 292 293 222 293 300 223 294 293 222 293 350 221 292 372 224 295 373 225 296 322 226 297 323 227 298 322 226 297 373 225 296 356 228 299 355 229 300 306 230 301 305 231 302 306 230 301 355 229 300 281 25 303 302 25 61 282 25 304 301 25 59 282 25 304 302 25 61 395 232 305 392 233 306 382 234 307 380 235 308 382 234 307 392 233 306 386 236 309 378 237 310 384 60 65 376 57 62 384 60 65 378 237 310 417 238 311 399 71 76 411 72 77 411 72 77 422 239 312 417 238 311 387 240 313 379 241 314 408 242 315 402 243 316 408 242 315 379 241 314 461 244 317 443 245 318 470 76 319 469 246 320 470 76 319 443 245 318 482 247 321 430 248 322 445 249 323 445 249 323 481 250 324 482 247 321 457 251 325 493 251 326 432 252 327 494 253 328 432 252 327 493 251 326 425 254 329 485 255 330 484 256 331 503 257 332 484 256 331 485 255 330 437 83 88 502 258 333 495 259 86 507 260 334 495 261 86 502 258 333 465 262 335 511 263 97 449 264 336 492 265 337 449 264 336 511 263 97 514 76 338 466 266 339 470 76 319 461 244 317 470 76 319 466 266 339 526 27 340 525 27 341 534 27 340 533 27 341 534 27 340 525 27 341 522 27 342 521 27 343 546 27 342 545 27 343 546 27 342 521 27 343 559 112 124 562 112 126 548 100 344 554 100 345 548 100 344 562 112 126 579 267 148 567 268 346 555 269 347 547 270 348 555 269 347 567 268 346 604 271 117 606 272 349 612 273 119 611 118 139 612 273 119 606 272 349 583 274 350 607 275 351 585 40 352 617 40 353 585 40 352 607 275 351 595 120 120 597 276 142 566 120 129 574 277 354 566 120 129 597 276 142 567 268 346 605 117 138 559 40 355 599 40 140 559 40 355 605 117 138 621 100 108 625 100 109 636 101 110 637 101 111 636 101 110 625 100 109 628 102 112 622 103 113 654 104 114 642 105 115 654 104 114 622 103 113 674 106 116 676 106 117 685 107 118 684 108 119 685 107 118 676 106 117 667 109 120 657 109 121 690 110 122 689 111 123 690 110 122 657 109 121 631 112 124 671 113 125 634 112 126 659 113 127 634 112 126 671 113 125 635 112 128 657 109 121 638 112 129 667 109 120 638 112 129 657 109 121 707 40 356 717 40 151 708 40 357 715 40 153 708 40 357 717 40 151 711 100 153 723 100 153 713 100 152 724 100 152 713 100 152 723 100 153 64 278 358 63 279 359 90 280 358 84 281 359 90 280 358 63 279 359 748 282 360 46 282 361 749 282 362 220 131 363 749 282 362 46 282 361 742 283 364 55 284 364 736 285 365 50 286 365 736 285 365 55 284 364 779 9 9 782 10 10 790 287 366 791 288 367 790 287 366 782 10 10 799 289 368 797 290 369 783 0 0 765 12 12 783 0 0 797 291 369 756 292 370 774 293 371 762 294 372 785 295 239 762 294 372 774 293 371 812 120 373 817 120 374 808 120 375 815 120 376 808 120 375 817 120 374 821 296 377 812 120 373 819 297 378 808 120 375 819 297 378 812 120 373 221 27 379 224 27 380 832 298 381 830 299 382 832 298 381 224 27 380 46 41 361 848 300 383 220 41 363 846 301 384 220 41 363 848 300 383 872 302 385 867 303 386 862 304 387 864 305 388 862 304 387 867 303 386 226 25 389 228 25 390 865 25 391 856 25 392 865 25 391 228 25 390 880 27 194 721 27 194 706 27 393 722 27 393 706 27 393 721 27 194 911 306 394 899 307 395 893 308 396 893 308 396 905 309 397 911 306 394 901 165 200 889 310 398 888 311 399 888 311 399 900 160 201 901 165 200 889 310 400 901 165 401 892 312 402 904 313 403 892 312 402 901 165 401 837 314 207 922 315 208 833 316 404 921 317 405 833 316 404 922 315 208 1026 330 169 1034 331 237 1009 332 167 1033 333 162 1009 332 167 1034 331 237 1023 334 422 1006 335 423 1038 336 368 1032 337 163 1038 336 368 1006 335 423 1013 338 371 1010 185 236 995 339 370 994 340 424 995 339 370 1010 185 236 1042 25 425 1043 25 426 1049 341 427 1046 342 428 1049 341 427 1043 25 426 43 202 271 44 28 21 272 204 271 273 30 21 272 204 271 44 28 21 30 206 273 29 32 23 259 208 273 258 34 23 259 208 273 29 32 23 8 210 275 9 36 25 237 212 275 238 38 25 237 212 275 9 36 25 2 25 35 23 25 27 231 25 35 252 25 27 231 25 35 23 25 27 325 27 435 330 27 277 225 27 436 230 27 26 225 27 436 330 27 277 231 41 35 331 41 34 248 41 276 348 41 279 248 41 276 331 41 34 253 41 39 353 41 37 271 41 282 371 41 283 271 41 282 353 41 37 359 27 286 259 27 273 358 27 41 258 27 23 358 27 41 259 27 273 337 217 288 338 42 42 287 219 290 288 44 44 287 219 290 338 42 42 350 221 292 349 45 46 300 223 294 299 47 48 300 223 294 349 45 46 373 225 296 374 49 50 323 227 298 324 51 52 323 227 298 374 49 50 355 229 300 360 53 54 305 231 302 310 55 56 305 231 302 360 53 54 276 25 437 304 25 58 278 25 438 303 25 60 278 25 438 304 25 58 381 344 439 379 345 314 395 346 440 392 347 306 395 346 440 379 345 314 390 348 441 382 234 307 388 349 442 380 235 308 388 349 442 382 234 307 400 350 443 417 238 311 422 239 312 422 239 312 412 351 444 400 350 443 385 352 445 409 353 446 377 352 447 405 354 448 377 352 447 409 353 446 470 355 449 469 356 450 462 357 451 442 358 452 462 357 451 469 356 450 431 359 453 482 360 321 481 361 324 481 361 324 447 362 454 431 359 453 493 251 326 456 251 455 494 253 328 433 363 456 494 253 328 456 251 455 426 364 457 489 365 458 464 366 459 504 367 460 464 366 459 489 365 458 438 98 102 486 368 461 502 258 333 507 369 334 502 258 333 486 370 461 450 371 462 487 372 99 465 262 335 511 263 97 465 262 335 487 372 99 514 355 463 470 355 449 473 357 464 462 357 451 473 357 464 470 355 449 525 25 341 524 25 104 533 25 341 532 25 104 533 25 341 524 25 104 521 25 343 520 25 465 545 25 343 544 25 465 545 25 343 520 25 465 563 112 128 566 112 129 560 101 466 561 101 467 560 101 466 566 112 129 581 373 135 569 114 130 580 104 137 568 105 132 580 104 137 569 114 130 611 118 139 605 117 138 612 273 119 603 374 149 612 273 119 605 117 138 617 40 353 607 275 351 586 40 468 584 375 469 586 40 468 607 275 351 573 376 470 598 377 471 565 120 111 596 120 472 565 120 111 598 377 471 568 105 132 560 40 133 606 272 349 600 40 473 606 272 349 560 40 133 639 268 346 631 40 355 619 270 348 620 40 474 619 270 348 631 40 355 648 115 147 651 115 148 629 25 475 627 25 347 629 25 475 651 115 148 685 107 118 684 108 119 673 126 145 675 126 149 673 126 145 684 108 119 690 110 122 689 111 123 668 378 472 658 378 476 668 378 472 689 111 123 672 379 477 632 101 466 660 379 478 633 101 467 660 379 478 632 101 466 658 378 476 636 101 110 668 378 472 637 101 111 668 378 472 636 101 110 718 40 150 710 40 393 716 40 152 709 40 194 716 40 152 710 40 393 726 41 150 718 41 150 724 41 152 716 41 152 724 41 152 718 41 150 63 279 359 62 127 154 84 281 359 81 129 154 84 281 359 62 127 154 749 282 362 220 131 363 750 131 156 223 131 157 750 131 156 220 131 363 51 134 161 739 135 161 50 286 365 736 285 365 50 286 365 739 135 161 781 380 479 780 381 480 791 336 367 790 382 366 791 336 367 780 381 480 784 383 422 766 384 242 799 385 368 797 386 369 799 387 368 766 384 242 762 388 372 785 389 239 757 390 481 775 391 240 757 390 481 785 389 239 811 120 482 807 120 483 817 120 374 815 120 376 817 120 374 807 120 483 823 27 484 822 27 485 821 27 486 812 392 487 821 27 486 822 27 485 822 27 485 802 27 488 812 392 487 813 393 489 812 392 487 802 27 488 58 27 490 221 27 379 833 316 404 832 298 381 833 316 404 221 27 379 520 120 465 529 120 491 530 120 492 527 120 493 528 120 494 516 120 495 519 120 496 520 120 465 530 120 492 527 120 493 516 120 495 517 120 107 518 120 106 515 120 497 827 151 183 524 120 104 527 120 493 517 120 107 523 120 105 524 120 104 517 120 107 518 120 106 827 151 183 825 394 498 517 120 107 518 120 106 825 394 498 517 120 107 825 394 498 841 395 499 530 120 492 527 120 493 524 120 104 530 120 492 524 120 104 525 120 341 519 120 496 530 120 492 525 120 341 519 120 496 525 120 341 526 120 340 827 151 183 515 120 497 516 120 495 522 120 342 519 120 496 526 120 340 516 120 495 528 120 494 529 120 491 516 120 495 529 120 491 520 120 465 843 153 185 827 151 183 516 120 495 843 153 185 516 120 495 520 120 465 843 153 185 520 120 465 521 120 343 843 153 185 521 120 343 522 120 342 841 395 499 843 153 185 522 120 342 841 395 499 522 120 342 526 120 340 841 395 499 526 120 340 523 120 105 841 395 499 523 120 105 517 120 107 60 27 500 859 156 190 71 27 501 857 396 502 71 27 501 859 156 190 869 397 192 877 398 193 860 155 503 874 399 504 860 155 503 877 398 193 879 100 357 720 100 357 711 100 153 723 100 153 711 100 153 720 100 357 899 307 395 911 306 394 903 161 196 915 163 198 903 161 196 911 306 394 874 399 504 877 398 193 888 311 505 891 400 506 888 311 505 877 398 193 906 401 507 894 402 508 897 403 509 897 403 509 909 404 510 906 401 507 921 317 405 922 315 208 881 405 511 883 406 512 881 405 511 922 315 208 1034 138 237 1035 416 238 1027 7 4 1011 15 5 1027 7 4 1035 417 238 1015 17 8 1025 4 7 1028 192 241 1039 418 164 1028 192 241 1025 4 7 1019 419 480 1014 190 240 997 420 515 996 421 481 997 420 515 1014 190 240 1044 120 516 1050 120 482 1043 120 517 1046 120 483 1043 120 517 1050 120 482 33 204 532 27 203 533 262 202 532 256 201 533 262 202 532 27 203 533 5 427 534 4 428 535 234 429 534 233 430 535 234 429 534 4 428 535 14 429 536 21 431 537 243 427 536 250 432 537 243 427 536 21 431 537 236 27 274 336 27 538 235 27 539 335 27 540 235 27 539 336 27 538 343 41 541 342 41 542 243 41 536 242 41 543 243 41 536 342 41 542 366 41 544 266 41 270 372 41 545 272 41 271 372 41 545 266 41 270 356 27 546 362 27 547 256 27 533 262 27 532 256 27 533 362 27 547 334 222 548 333 433 549 284 220 550 283 434 551 284 220 550 333 433 549 345 218 552 344 435 553 295 216 554 294 436 555 295 216 554 344 435 553 370 55 556 365 231 557 320 53 558 315 229 559 320 53 558 365 231 557 364 51 560 363 227 561 314 49 562 313 225 563 314 49 562 363 227 561 340 47 564 341 223 565 290 45 566 291 221 567 290 45 566 341 223 565 380 235 308 392 233 306 391 437 568 391 437 568 388 349 442 380 235 308 398 438 569 389 70 75 381 69 74 381 69 74 395 439 570 398 438 569 409 440 446 414 440 571 416 441 68 420 442 572 416 441 68 414 440 571 410 443 69 413 444 573 407 445 574 412 446 575 407 445 574 413 444 573 466 266 339 465 262 335 461 244 317 449 264 336 461 244 317 465 262 335 424 77 82 478 447 576 477 448 577 477 448 577 440 449 578 424 77 82 490 450 579 489 365 458 456 251 455 426 364 457 456 251 455 489 365 458 438 98 102 502 258 333 501 451 580 501 451 580 454 96 100 438 98 102 434 452 581 480 453 582 467 454 583 506 455 584 467 454 583 480 453 582 446 456 585 491 457 586 500 458 587 510 459 588 500 458 587 491 457 586 474 460 589 513 461 590 458 78 83 483 80 85 458 78 83 513 461 590 439 73 78 453 462 591 460 74 79 450 371 462 460 74 79 453 462 591 536 120 494 535 120 493 537 120 491 538 120 492 537 120 491 535 120 493 552 27 592 553 27 109 550 27 593 549 27 108 550 27 593 553 27 109 572 277 146 576 463 147 551 464 594 557 465 475 551 464 594 576 463 147 610 466 143 609 467 595 597 276 142 591 468 596 597 276 142 609 467 595 616 120 597 588 120 478 615 469 598 590 470 599 615 469 598 588 120 478 571 376 600 590 470 599 561 120 467 588 120 478 561 120 467 590 470 599 598 377 471 573 376 470 592 471 601 577 472 602 592 471 601 573 376 470 619 41 603 623 41 604 627 41 605 629 41 606 627 41 605 623 41 604 624 473 607 630 474 608 645 475 470 649 476 602 645 475 470 630 474 608 680 477 609 681 478 595 666 479 610 664 479 601 666 479 610 681 478 595 688 480 597 686 481 611 660 379 478 672 379 477 660 379 478 686 481 611 664 479 601 649 116 602 666 479 610 654 116 114 666 479 610 649 116 602 654 104 114 642 105 115 666 482 610 656 375 469 666 482 610 642 105 115 698 40 612 697 40 613 699 40 189 700 40 614 699 40 189 697 40 613 706 25 393 722 25 393 714 25 150 726 25 150 714 25 150 722 25 393 59 483 615 66 484 616 83 483 615 88 485 616 83 483 615 66 484 616 78 100 617 77 100 617 80 100 618 75 100 618 80 100 618 77 100 617 737 486 619 49 487 619 740 488 620 57 489 620 740 488 620 49 487 619 780 381 480 775 391 240 790 490 366 789 491 241 790 490 366 775 391 240 766 384 242 777 492 243 797 493 369 792 494 621 797 493 369 777 492 243 760 495 622 781 496 479 759 497 245 777 492 243 759 497 245 781 496 479 816 498 623 809 499 624 815 498 625 808 500 626 815 498 625 809 499 624 819 297 378 824 501 627 821 296 377 823 501 628 821 296 377 824 501 627 839 502 629 835 503 630 828 504 631 830 299 382 828 504 631 835 503 630 846 505 384 850 506 180 844 507 632 854 508 633 844 507 632 850 506 180 857 396 502 859 156 190 870 509 634 869 158 192 870 509 634 859 156 190 227 25 30 225 25 29 825 25 635 841 25 636 825 25 635 225 25 29 879 120 357 711 120 153 705 120 356 712 120 151 705 120 356 711 120 153 899 307 395 887 510 637 881 405 511 881 405 511 893 308 396 899 307 395 888 311 399 889 310 398 874 399 638 875 511 639 874 399 638 889 310 398 876 512 640 878 513 641 890 514 642 892 515 402 890 514 642 878 513 641 919 100 643 905 309 397 906 401 644 907 516 645 906 401 644 905 309 397 926 517 646 925 518 647 848 519 383 851 520 178 848 519 383 925 518 647 1033 333 162 1008 14 3 1032 337 163 1007 13 2 1032 337 163 1008 14 3 1039 538 164 1025 4 7 1037 539 165 1012 16 6 1037 540 165 1025 4 7 993 541 166 1002 388 168 1009 332 167 1026 330 169 1009 332 167 1002 388 168 1053 40 170 1049 40 172 1057 40 171 1055 40 173 1057 40 171 1049 40 172 1061 145 174 1041 100 176 1059 145 175 1040 100 177 1059 145 175 1041 100 176 27 203 533 26 544 663 256 201 533 255 545 663 256 201 533 26 544 663 4 428 535 6 546 539 233 430 535 235 547 539 233 430 535 6 546 539 21 431 537 20 548 280 250 432 537 249 549 280 250 432 537 20 548 280 237 27 275 337 27 664 236 27 274 336 27 538 236 27 274 337 27 664 343 41 541 243 41 536 350 41 665 250 41 537 350 41 665 243 41 536 372 41 545 272 41 271 373 41 666 273 41 21 373 41 666 272 41 271 355 27 667 356 27 546 255 27 663 256 27 533 255 27 663 356 27 546 333 433 549 335 436 668 283 434 551 285 435 669 283 434 551 335 436 668 344 435 553 342 434 670 294 436 555 292 433 671 294 436 555 342 434 670 365 231 557 366 230 672 315 229 559 316 228 673 315 229 559 366 230 672 363 227 561 362 226 674 313 225 563 312 224 675 313 225 563 362 226 674 341 223 565 334 222 548 291 221 567 284 220 550 291 221 567 334 222 548 386 236 309 393 550 676 394 551 677 394 551 677 378 237 310 386 236 309 397 59 64 393 550 676 384 60 65 386 236 309 384 60 65 393 550 676 411 552 678 408 553 315 422 554 679 421 555 680 422 554 679 408 553 315 379 345 314 381 344 439 402 556 316 399 557 681 402 556 316 381 344 439 431 359 453 434 452 581 468 558 682 467 454 583 468 558 682 434 452 581 480 453 582 434 452 581 448 559 683 448 559 683 479 92 96 480 453 582 448 559 683 447 362 454 492 560 337 491 561 586 492 560 337 447 362 454 423 99 103 478 562 576 485 563 684 503 564 685 485 563 684 478 562 576 496 85 87 506 455 584 435 84 89 480 453 582 435 84 89 506 455 584 447 362 454 481 361 324 491 561 586 510 565 588 491 561 586 481 361 324 473 357 464 459 566 686 514 355 463 471 567 687 514 355 463 459 566 686 429 568 688 433 363 456 426 364 457 456 251 455 426 364 457 433 363 456 520 41 465 519 41 496 544 41 465 543 41 496 544 41 465 519 41 496 552 27 592 550 27 593 558 27 689 556 27 690 558 27 689 550 27 593 574 277 354 578 463 134 571 376 600 575 472 136 571 376 600 578 463 134 593 569 691 591 569 596 608 477 609 609 478 595 608 477 609 591 569 596 587 113 127 599 113 125 616 480 597 614 481 611 616 480 597 599 113 125 578 115 134 591 569 596 581 115 135 593 569 691 581 115 135 591 569 596 581 373 135 593 570 691 569 114 130 583 274 350 569 114 130 593 570 691 631 112 124 634 112 126 620 100 344 626 100 345 620 100 344 634 112 126 651 267 148 639 268 346 627 269 347 619 270 348 627 269 347 639 268 346 676 271 117 678 272 349 684 273 119 683 118 139 684 273 119 678 272 349 655 274 350 679 275 351 657 40 352 689 40 353 657 40 352 679 275 351 667 120 120 669 119 142 638 120 129 646 124 354 638 120 129 669 119 142 639 268 346 677 117 138 631 40 355 671 40 140 631 40 355 677 117 138 699 40 189 700 40 614 701 40 188 702 40 692 701 40 188 700 40 614 722 25 393 710 25 393 726 25 150 718 25 150 726 25 150 710 25 393 66 484 616 65 571 693 88 485 616 89 572 694 88 485 616 65 571 693 80 573 618 75 574 618 79 575 695 76 576 695 79 575 695 75 574 618 740 488 620 57 489 620 741 577 696 56 578 696 741 577 696 57 489 620 791 579 367 782 10 10 792 580 621 778 11 11 792 581 621 782 10 10 798 582 165 796 583 238 773 6 6 772 5 5 773 6 6 796 583 238 767 584 423 753 585 697 784 586 422 761 587 698 784 586 422 753 585 697 813 393 489 818 588 699 812 392 487 817 588 700 812 392 487 818 588 699 824 589 627 820 145 175 823 589 628 822 145 174 823 589 628 820 145 175 835 590 630 839 591 629 829 150 701 827 151 702 829 150 701 839 591 629 223 41 157 844 507 632 219 41 159 842 592 703 219 41 159 844 507 632 870 397 634 869 397 192 858 154 704 860 155 503 858 154 704 869 397 192 24 25 39 855 25 705 253 25 39 228 25 38 253 25 39 855 25 705 713 120 152 880 120 194 714 120 150 706 120 393 714 120 150 880 120 194 896 593 706 884 594 707 890 514 642 890 514 642 902 595 708 896 593 706 873 157 191 887 510 637 877 159 193 891 596 506 877 159 193 887 510 637 902 595 708 904 313 403 914 597 709 916 598 710 914 597 709 904 313 403 66 27 616 59 27 615 164 27 267 873 157 191 859 156 190 60 27 500 66 27 616 164 27 267 165 27 266 873 157 191 60 27 500 61 27 711 65 27 693 66 27 616 165 27 266 64 27 358 65 27 693 165 27 266 163 27 20 164 27 267 59 27 615 163 27 20 59 27 615 58 27 490 170 27 19 163 27 20 58 27 490 170 27 19 58 27 490 833 316 404 169 27 260 170 27 19 833 316 404 168 27 261 169 27 260 833 316 404 63 27 359 64 27 358 165 27 266 63 27 359 165 27 266 166 27 14 168 27 261 833 316 404 921 317 405 167 27 13 168 27 261 921 317 405 166 27 14 167 27 13 921 317 405 63 27 359 166 27 14 921 317 405 62 27 154 63 27 359 921 317 405 62 27 154 921 317 405 873 157 191 873 157 191 61 27 711 69 27 712 873 157 191 69 27 712 68 27 713 873 157 191 68 27 713 67 27 155 873 157 191 67 27 155 62 27 154 926 517 646 884 594 707 925 518 647 886 599 714 925 518 647 884 594 707 1009 332 167 1033 333 162 1006 335 423 1032 337 163 1006 335 423 1033 333 162 1024 608 239 1039 609 164 1013 338 371 1037 610 165 1013 338 371 1039 611 164 1002 294 168 994 340 424 1026 184 169 1010 185 236 1026 184 169 994 340 424 1055 40 173 1048 40 720 1057 40 171 1052 40 721 1057 40 171 1048 40 720 34 30 727 33 204 532 263 28 727 262 202 532 263 28 727 33 204 532 12 432 728 5 427 534 241 431 728 234 429 534 241 431 728 5 427 534 13 430 543 14 429 536 242 428 543 243 427 536 242 428 543 14 429 536 235 27 539 335 27 540 233 27 535 333 27 729 233 27 535 335 27 540 244 41 730 242 41 543 344 41 731 342 41 542 344 41 731 242 41 543 366 41 544 365 41 732 266 41 270 265 41 733 266 41 270 365 41 732 263 27 727 262 27 532 363 27 734 362 27 547 363 27 734 262 27 532 334 27 735 341 27 736 234 27 534 241 27 728 234 27 534 341 27 736 346 219 737 345 218 552 296 217 738 295 216 554 296 217 738 345 218 552 369 56 739 370 55 556 319 54 740 320 53 558 319 54 740 370 55 556 361 52 741 364 51 560 311 50 742 314 49 562 311 50 742 364 51 560 339 48 743 340 47 564 289 46 744 290 45 566 289 46 744 340 47 564 392 615 306 379 241 314 387 240 313 387 240 313 391 615 568 392 615 306 390 348 441 398 616 745 395 232 305 395 232 305 382 234 307 390 348 441 416 441 68 420 442 572 410 443 69 413 444 573 410 443 69 420 442 572 413 65 70 403 68 73 412 351 444 400 350 443 412 351 444 403 68 73 460 74 79 450 371 462 466 266 339 465 262 335 466 266 339 450 371 462 478 562 576 423 99 103 441 97 101 441 97 101 477 617 577 478 562 576 455 618 746 427 86 90 490 461 747 489 88 92 490 461 747 427 86 90 502 258 333 437 83 88 452 619 748 452 619 748 501 451 580 502 258 333 467 620 583 506 621 584 433 363 456 494 253 328 433 363 456 506 621 584 445 249 323 500 622 749 481 250 324 510 623 588 481 250 324 500 622 749 493 251 326 457 251 325 513 450 750 483 450 751 513 450 750 457 251 325 461 244 317 449 264 336 443 245 318 446 456 585 443 245 318 449 264 336 532 120 104 531 120 105 533 120 341 534 120 340 533 120 341 531 120 105 554 41 345 551 41 604 548 41 344 547 41 603 548 41 344 551 41 604 553 120 109 552 624 607 565 120 111 573 376 470 565 120 111 552 624 607 592 471 601 609 467 595 598 377 471 610 466 143 598 377 471 609 467 595 589 625 144 587 120 127 615 469 598 616 120 597 615 469 598 587 120 127 587 120 127 589 625 144 562 120 126 572 277 146 562 120 126 589 625 144 597 276 142 591 468 596 574 277 354 578 463 134 574 277 354 591 468 596 624 27 592 622 27 593 630 27 689 628 27 690 630 27 689 622 27 593 646 124 354 650 125 134 643 475 600 647 476 136 643 475 600 650 125 134 665 569 691 663 569 596 680 477 609 681 478 595 680 477 609 663 569 596 659 113 127 671 113 125 688 480 597 686 481 611 688 480 597 671 113 125 650 115 134 663 569 596 653 115 135 665 569 691 653 115 135 663 569 596 653 373 135 665 570 691 641 114 130 655 274 350 641 114 130 665 570 691 694 27 614 696 27 692 700 27 614 702 27 692 700 27 614 696 27 692 725 25 151 717 25 151 719 25 356 707 25 356 719 25 356 717 25 151 729 626 490 58 627 490 83 483 615 59 483 615 83 483 615 58 627 490 728 628 501 71 629 501 78 629 617 77 629 617 78 629 617 71 629 501 746 630 752 48 631 752 737 486 619 49 487 619 737 486 619 48 631 752 790 382 366 789 632 241 779 9 9 776 8 8 779 9 9 789 632 241 797 633 369 792 634 621 765 12 12 778 11 11 765 12 12 792 634 621 758 635 515 780 381 480 760 636 622 781 380 479 760 636 622 780 381 480 810 637 427 816 638 623 807 639 428 815 638 625 807 639 428 816 638 623 805 100 753 811 640 754 806 100 755 814 641 756 806 100 755 811 640 754 837 642 207 836 643 757 834 644 205 831 645 758 834 644 205 836 643 757 845 152 759 854 646 633 847 149 181 850 148 180 847 149 181 854 646 633 871 397 760 870 397 634 856 154 761 858 154 704 856 154 761 870 397 634 1 25 26 840 25 762 230 25 26 225 25 436 230 25 26 840 25 762 880 41 194 695 41 188 703 41 194 701 41 188 703 41 194 695 41 188 917 100 763 919 100 764 918 100 765 920 100 766 918 100 765 919 100 764 894 402 767 906 401 644 895 647 768 907 516 645 895 647 768 906 401 644 886 648 714 884 594 707 898 649 769 896 593 706 898 649 769 884 594 707 918 100 770 914 597 709 913 164 771 916 598 710 913 164 771 914 597 709 876 512 640 890 514 642 884 594 707 884 594 707 926 517 646 876 512 640 1020 663 479 1030 664 367 1019 419 480 1029 665 366 1019 419 480 1030 664 367 1023 666 422 1038 667 368 1005 193 242 1036 668 369 1005 193 242 1038 669 368 1001 143 372 996 421 481 1024 189 239 1014 190 240 1024 189 239 996 421 481 1054 120 376 1046 120 483 1056 120 374 1050 120 482 1056 120 374 1046 120 483 1062 41 484 1060 41 486 1061 41 485 1041 41 488 1061 41 485 1060 41 486 1060 41 486 1051 670 487 1041 41 488 1052 670 489 1041 41 488 1051 670 487 42 671 282 24 672 39 271 673 282 253 672 39 271 673 282 24 672 39 22 25 781 3 25 782 251 25 781 232 25 782 251 25 781 3 25 782 18 38 783 17 212 784 247 36 783 246 210 784 247 36 783 17 212 784 39 34 785 40 208 786 268 32 785 269 206 786 268 32 785 40 208 786 229 41 787 247 41 783 329 41 788 347 41 789 329 41 788 247 41 783 267 41 28 268 41 785 367 41 790 368 41 791 367 41 790 268 41 785 326 27 792 226 27 793 354 27 794 254 27 795 354 27 794 226 27 793 351 27 796 251 27 781 332 27 797 232 27 782 332 27 797 251 27 781 325 25 31 327 25 32 275 25 798 277 25 799 275 25 798 327 25 32 331 25 800 352 25 801 281 25 802 302 25 803 281 25 802 352 25 801 328 25 804 278 25 438 353 25 805 303 25 60 353 25 805 278 25 438 358 674 806 357 675 807 308 676 808 307 677 809 308 676 808 357 675 807 321 27 810 303 27 60 302 27 61 321 27 810 302 27 61 317 27 811 323 27 812 324 27 813 321 27 810 323 27 812 321 27 810 317 27 811 317 27 811 318 27 814 319 27 815 323 27 812 317 27 811 319 27 815 319 27 815 320 27 816 315 27 817 316 27 818 322 27 819 323 27 812 323 27 812 319 27 815 315 27 817 315 27 817 316 27 818 323 27 812 394 551 677 396 58 63 378 237 310 376 57 62 378 237 310 396 58 63 402 556 316 399 557 681 418 678 820 417 679 821 418 678 820 399 557 681 421 680 680 408 242 315 402 243 316 402 243 316 418 681 820 421 680 680 389 682 822 387 683 313 411 552 678 408 553 315 411 552 678 387 683 313 474 460 589 458 78 83 459 566 686 459 566 686 473 357 464 474 460 589 423 99 103 485 563 684 438 98 102 486 368 461 438 98 102 485 563 684 441 97 101 454 96 100 498 684 823 497 685 824 498 684 823 454 96 100 429 568 688 463 686 825 468 687 682 505 688 826 468 687 682 463 686 825 441 97 101 498 684 823 477 617 577 508 689 827 477 617 577 498 684 823 497 690 828 512 691 829 453 462 591 488 692 830 453 462 591 512 691 829 447 362 454 448 559 683 431 359 453 434 452 581 431 359 453 448 559 683 530 27 492 529 27 491 538 27 492 537 27 491 538 27 492 529 27 491 516 25 495 515 25 497 540 25 495 539 25 497 540 25 495 515 25 497 569 114 130 563 40 131 568 105 132 560 40 133 568 105 132 563 40 131 578 115 134 581 115 135 575 116 136 580 116 137 575 116 136 581 115 135 605 117 138 611 118 139 599 40 140 614 40 141 599 40 140 611 118 139 597 276 142 595 120 120 610 466 143 618 120 122 610 466 143 595 120 120 589 625 144 601 693 145 572 277 146 576 463 147 572 277 146 601 693 145 576 115 147 601 126 145 579 115 148 603 126 149 579 115 148 601 126 145 634 120 126 644 124 146 626 120 345 623 694 594 626 120 345 644 124 146 666 482 610 656 375 469 680 695 609 679 275 351 680 695 609 656 375 469 674 696 116 685 697 118 662 698 599 687 699 598 662 698 599 685 697 118 641 114 130 655 274 350 635 40 131 657 40 352 635 40 131 655 274 350 651 267 148 675 374 149 639 268 346 677 117 138 639 268 346 675 374 149 695 41 188 693 41 189 701 41 188 699 41 189 701 41 188 693 41 189 721 27 194 709 27 194 722 27 393 710 27 393 722 27 393 709 27 194 79 575 695 76 576 695 732 627 831 222 626 831 732 627 831 76 576 695 68 700 713 69 701 712 86 702 713 85 703 712 86 702 713 69 701 712 73 704 832 72 705 833 734 706 834 735 707 833 734 706 834 72 705 833 744 708 835 53 709 835 743 710 836 54 711 836 743 710 836 53 709 835 769 3 3 788 4 4 794 136 162 795 418 237 794 136 162 788 4 4 768 2 2 793 137 163 783 0 0 799 712 368 783 0 0 793 137 163 770 142 167 754 141 166 767 584 423 753 585 697 767 584 423 754 141 166 802 40 176 801 40 177 813 40 721 809 40 720 813 40 721 801 40 177 829 150 701 831 645 758 835 590 630 836 643 757 835 590 630 831 645 758 843 153 837 841 395 838 853 713 839 852 714 840 853 713 839 841 395 838 834 644 841 831 645 842 849 147 843 847 149 844 849 147 843 831 645 842 696 40 692 694 40 614 864 305 845 862 304 846 864 305 845 694 40 614 861 715 847 872 716 385 876 512 640 878 513 641 876 512 640 872 716 385 855 25 705 871 25 760 228 25 38 856 25 761 228 25 38 871 25 760 883 717 512 882 718 848 895 647 768 894 402 767 895 647 768 882 718 848 897 403 849 898 649 769 909 404 850 910 719 851 909 404 850 898 649 769 917 100 852 912 162 197 911 306 394 915 163 198 911 306 394 912 162 197 885 720 853 882 718 854 924 721 855 923 167 856 924 721 855 882 718 854 1019 419 480 1029 665 366 1014 190 240 1028 192 241 1014 190 240 1029 665 366 1005 193 242 1036 730 369 1016 194 243 1031 731 621 1016 194 243 1036 730 369 999 732 622 998 196 245 1020 733 479 1016 194 243 1020 733 479 998 196 245 1055 734 623 1054 734 625 1048 735 624 1047 736 626 1048 735 624 1054 734 625 1058 297 378 1060 296 377 1063 501 627 1062 501 628 1063 501 627 1060 296 377 36 545 733 37 201 270 265 544 733 266 203 270 265 544 733 37 201 270 26 544 663 31 205 272 255 545 663 260 207 272 255 545 663 31 205 272 6 546 539 7 209 274 235 547 539 236 211 274 235 547 539 7 209 274 20 548 280 19 213 276 249 549 280 248 215 276 249 549 280 19 213 276 238 27 25 338 27 278 237 27 275 337 27 664 237 27 275 338 27 278 249 41 280 349 41 281 250 41 537 350 41 665 250 41 537 349 41 281 373 41 666 273 41 21 374 41 284 274 41 22 374 41 284 273 41 21 355 27 667 255 27 663 360 27 285 260 27 272 360 27 285 255 27 663 335 436 668 336 216 287 285 435 669 286 218 289 285 435 669 336 216 287 342 434 670 343 220 291 292 433 671 293 222 293 292 433 671 343 220 291 366 230 672 372 224 295 316 228 673 322 226 297 316 228 673 372 224 295 362 226 674 356 228 299 312 224 675 306 230 301 312 224 675 356 228 299 277 25 799 279 25 863 275 25 798 280 25 864 275 25 798 279 25 863 393 738 676 385 352 445 377 352 447 377 352 447 394 738 677 393 738 676 383 739 865 385 739 445 397 740 866 393 740 676 397 740 866 385 739 445 422 554 679 421 555 680 412 446 575 407 445 574 412 446 575 421 555 680 377 741 447 405 742 448 375 741 867 404 742 868 375 741 867 405 742 448 468 687 682 467 620 583 429 568 688 433 363 456 429 568 688 467 620 583 435 84 89 480 453 582 479 92 96 479 92 96 451 94 98 435 84 89 492 265 337 491 457 586 449 264 336 446 456 585 449 264 336 491 457 586 424 77 82 484 79 84 478 447 576 503 743 685 478 447 576 484 79 84 495 744 86 507 745 334 436 746 869 486 747 870 436 746 869 507 745 334 448 559 683 492 560 337 479 92 96 511 93 97 479 92 96 492 560 337 466 266 339 514 76 338 460 74 79 471 76 81 460 74 79 514 76 338 425 254 329 457 251 325 436 746 869 432 252 327 436 746 869 457 251 325 519 100 496 522 100 342 543 100 496 546 100 342 543 100 496 522 100 342 547 41 603 551 41 604 555 41 605 557 41 606 555 41 605 551 41 604 552 624 607 558 465 608 573 376 470 577 472 602 573 376 470 558 465 608 608 477 609 609 478 595 594 479 610 592 479 601 594 479 610 609 478 595 616 480 597 614 481 611 588 379 478 600 379 477 588 379 478 614 481 611 592 479 601 577 116 602 594 479 610 582 116 114 594 479 610 577 116 602 582 104 114 570 105 115 594 482 610 584 375 469 594 482 610 570 105 115 635 112 128 638 112 129 632 101 466 633 101 467 632 101 466 638 112 129 653 373 135 641 114 130 652 104 137 640 105 132 652 104 137 641 114 130 683 118 139 677 117 138 684 273 119 675 374 149 684 273 119 677 117 138 689 40 353 679 275 351 658 40 468 656 375 469 658 40 468 679 275 351 645 475 470 670 748 471 637 120 111 668 120 472 637 120 111 670 748 471 640 105 132 632 40 133 678 272 349 672 40 473 678 272 349 632 40 133 701 40 188 702 40 692 703 40 194 704 40 357 703 40 194 702 40 692 714 25 150 726 25 150 712 25 151 725 25 151 712 25 151 726 25 150 65 571 693 64 278 358 89 572 694 90 280 358 89 572 694 64 278 358 735 41 833 733 41 871 747 41 872 736 41 365 94 41 252 95 41 862 734 41 834 735 41 833 747 41 872 751 41 158 734 41 834 747 41 872 751 41 158 747 41 872 746 41 752 742 41 364 736 41 365 95 41 862 93 41 253 94 41 252 736 41 365 93 41 253 736 41 365 739 41 161 92 41 256 93 41 253 739 41 161 92 41 256 739 41 161 745 41 160 92 41 256 745 41 160 744 41 835 741 41 696 742 41 364 95 41 862 92 41 256 744 41 835 743 41 836 91 41 257 92 41 256 743 41 836 740 41 620 741 41 696 95 41 862 737 41 619 740 41 620 95 41 862 746 41 752 737 41 619 95 41 862 746 41 752 95 41 862 96 41 873 746 41 752 96 41 873 97 41 723 751 41 158 746 41 752 97 41 723 751 41 158 97 41 723 98 41 660 751 41 158 98 41 660 91 41 257 751 41 158 91 41 257 743 41 836 743 41 836 738 41 874 748 41 360 743 41 836 748 41 360 749 41 362 743 41 836 749 41 362 750 41 156 743 41 836 750 41 156 751 41 158 741 577 696 56 578 696 742 283 364 55 284 364 742 283 364 56 578 696 781 496 479 791 667 367 777 492 243 792 749 621 777 492 243 791 669 367 774 293 371 771 750 236 798 751 165 796 583 238 798 751 165 771 750 236 784 383 422 761 732 698 766 384 242 752 752 244 766 384 242 761 732 698 818 753 699 814 641 756 817 753 700 811 640 754 817 753 700 814 641 756 824 41 875 819 41 876 820 41 877 801 41 878 820 41 877 819 41 876 819 41 876 808 500 626 801 41 878 809 499 624 801 41 878 808 500 626 224 27 380 222 27 831 830 299 382 828 504 631 830 299 382 222 27 831 220 41 363 846 301 384 223 41 157 844 507 632 223 41 157 846 301 384 861 715 847 863 754 879 872 716 385 867 716 386 872 716 385 863 754 879 25 25 795 254 25 795 866 25 880 226 25 793 866 25 880 254 25 795 705 41 356 719 41 356 879 41 357 720 41 357 879 41 357 719 41 356 908 755 881 896 593 706 902 595 708 902 595 708 914 597 709 908 755 881 896 593 706 908 755 881 898 649 769 910 719 851 898 649 769 908 755 881 881 405 511 883 756 512 893 308 396 895 647 768 893 308 396 883 756 512 921 317 405 881 405 511 887 510 637 887 510 637 873 157 191 921 317 405 1008 14 3 1033 333 162 1027 7 4 1034 768 237 1027 7 4 1033 333 162 1007 13 2 1022 10 0 1032 337 163 1038 288 368 1032 337 163 1022 10 0 1009 332 167 1006 335 423 993 541 166 992 769 697 993 541 166 1006 335 423 1041 40 176 1052 40 721 1040 40 177 1048 40 720 1040 40 177 1052 40 721 35 31 883 34 30 727 264 29 883 263 28 727 264 29 883 34 30 727 11 549 884 12 432 728 240 548 884 241 431 728 240 548 884 12 432 728 15 547 730 13 430 543 244 546 730 242 428 543 244 546 730 13 430 543 334 27 735 234 27 534 333 27 729 233 27 535 333 27 729 234 27 534 245 41 885 244 41 730 345 41 886 344 41 731 345 41 886 244 41 730 270 41 887 265 41 733 370 41 888 365 41 732 370 41 888 265 41 733 264 27 883 263 27 727 364 27 889 363 27 734 364 27 889 263 27 727 240 27 884 241 27 728 340 27 890 341 27 736 340 27 890 241 27 728 347 44 891 346 219 737 297 42 892 296 217 738 297 42 892 346 219 737 368 676 893 369 56 739 318 674 894 319 54 740 318 674 894 369 56 739 354 772 895 361 52 741 304 772 896 311 50 742 304 772 896 361 52 741 332 773 897 339 48 743 282 773 898 289 46 744 282 773 898 339 48 743 307 41 899 301 41 59 304 41 58 307 41 899 304 41 58 311 41 900 311 41 900 314 41 901 313 41 902 307 41 899 311 41 900 313 41 902 309 41 903 308 41 904 307 41 899 309 41 903 307 41 899 313 41 902 305 41 905 310 41 906 309 41 903 313 41 902 312 41 907 306 41 908 309 41 903 313 41 902 306 41 908 306 41 908 305 41 905 309 41 903 387 683 313 389 682 822 391 774 568 398 775 909 391 774 568 389 682 822 404 742 868 405 742 448 419 776 910 415 777 67 419 776 910 405 742 448 406 61 66 410 64 69 401 778 911 407 779 574 401 778 911 410 64 69 464 366 459 463 686 825 426 364 457 429 568 688 426 364 457 463 686 825 442 358 452 476 780 912 475 87 91 475 87 91 427 86 90 442 358 452 453 462 591 488 781 830 450 371 462 487 782 99 450 371 462 488 783 830 500 458 587 499 784 913 446 456 585 443 245 318 446 456 585 499 784 913 432 252 327 494 253 328 496 785 87 506 621 584 496 785 87 494 253 328 444 786 914 476 787 915 499 788 916 509 789 917 499 788 916 476 787 915 513 450 750 490 450 579 493 251 326 456 251 455 493 251 326 490 450 579 424 77 82 440 449 578 458 78 83 459 566 686 458 78 83 440 449 578 527 100 493 530 100 492 535 100 493 538 100 492 535 100 493 530 100 492 544 120 465 543 120 496 545 120 343 546 120 342 545 120 343 543 120 496 566 120 129 574 277 354 561 120 467 571 376 600 561 120 467 574 277 354 607 275 351 583 274 350 608 695 609 593 570 691 608 695 609 583 274 350 615 469 598 613 790 118 589 625 144 601 693 145 589 625 144 613 790 118 570 105 115 564 40 918 584 375 469 586 40 468 584 375 469 564 40 918 580 104 137 568 105 132 604 271 117 606 272 349 604 271 117 568 105 132 624 27 592 625 27 109 622 27 593 621 27 108 622 27 593 625 27 109 644 124 146 648 125 147 623 694 594 629 791 475 623 694 594 648 125 147 682 121 143 681 792 595 669 119 142 663 793 596 669 119 142 681 792 595 688 120 597 660 120 478 687 699 598 662 698 599 687 699 598 660 120 478 643 475 600 662 698 599 633 120 467 660 120 478 633 120 467 662 698 599 670 748 471 645 475 470 664 794 601 649 476 602 664 794 601 645 475 470 691 27 613 694 27 614 697 27 613 700 27 614 697 27 613 694 27 614 712 25 151 725 25 151 705 25 356 719 25 356 705 25 356 725 25 151 730 627 379 221 626 379 729 626 490 58 627 490 729 626 490 221 626 379 727 628 500 60 628 500 728 628 501 71 629 501 728 628 501 60 628 500 747 630 872 70 630 872 746 630 752 48 631 752 746 630 752 70 630 872 787 795 169 795 609 237 771 750 236 796 583 238 771 750 236 795 611 237 785 389 239 800 331 164 775 391 240 789 632 241 775 391 240 800 331 164 766 384 242 752 752 244 777 492 243 759 497 245 777 492 243 752 752 244 806 40 246 814 40 170 803 40 247 810 40 172 803 40 247 814 40 170 833 316 404 832 796 381 837 797 207 836 798 757 837 797 207 832 796 381 844 507 632 854 508 633 842 592 703 853 799 839 842 592 703 854 508 633 855 156 705 857 396 502 871 509 760 870 509 634 871 509 760 857 396 502 0 25 787 229 25 787 826 25 919 227 25 920 826 25 919 229 25 787 879 100 357 880 100 194 704 100 357 703 100 194 704 100 357 880 100 194 825 25 921 838 25 922 227 25 920 826 25 919 227 25 920 838 25 922 893 308 396 895 647 768 905 309 397 907 516 645 905 309 397 895 647 768 891 800 506 887 510 637 903 161 196 899 307 395 903 161 196 887 510 637 917 100 852 911 306 394 905 309 397 905 309 397 919 100 643 917 100 852 156 41 529 47 41 923 54 41 836 48 41 752 861 715 847 876 512 640 157 41 530 156 41 529 54 41 836 49 41 619 48 41 752 876 512 640 157 41 530 54 41 836 53 41 835 157 41 530 53 41 835 52 41 160 47 41 923 156 41 529 155 41 726 46 41 361 47 41 923 155 41 726 46 41 361 155 41 726 162 41 16 848 300 383 46 41 361 162 41 16 848 300 383 162 41 16 161 41 15 848 300 383 161 41 15 160 41 263 157 41 530 52 41 160 51 41 161 158 41 662 157 41 530 51 41 161 926 517 646 848 300 383 160 41 263 926 517 646 160 41 263 159 41 262 926 517 646 159 41 262 158 41 662 926 517 646 158 41 662 51 41 161 926 517 646 51 41 161 50 41 365 876 512 640 926 517 646 50 41 365 57 41 620 49 41 619 876 512 640 56 41 696 57 41 620 876 512 640 55 41 364 56 41 696 876 512 640 876 512 640 50 41 365 55 41 364 1018 18 9 1029 665 366 1021 0 10 1030 712 367 1021 0 10 1029 665 366 1038 579 368 1022 10 0 1036 807 369 1004 20 12 1036 808 369 1022 10 0 995 339 370 1001 809 372 1013 338 371 1024 608 239 1013 338 371 1001 809 372 1051 120 373 1047 120 375 1056 120 374 1054 120 376 1056 120 374 1047 120 375 1060 296 377 1058 297 378 1051 120 373 1047 120 375 1051 120 373 1058 297 378 32 673 926 35 31 883 261 671 926 264 29 883 261 671 926 35 31 883 10 215 927 11 549 884 239 213 927 240 548 884 239 213 927 11 549 884 16 211 885 15 547 730 245 209 885 244 546 730 245 209 885 15 547 730 41 207 887 36 545 733 270 205 887 265 544 733 270 205 887 36 545 733 246 41 784 245 41 885 346 41 928 345 41 886 346 41 928 245 41 885 269 41 786 270 41 887 369 41 929 370 41 888 369 41 929 270 41 887 261 27 926 264 27 883 361 27 930 364 27 889 361 27 930 264 27 883 239 27 927 240 27 884 339 27 931 340 27 890 339 27 931 240 27 884 329 43 932 347 44 891 279 43 933 297 42 892 279 43 933 347 44 891 367 677 934 368 676 893 317 675 935 318 674 894 317 675 935 368 676 893 326 25 936 354 25 937 276 25 437 304 25 58 276 25 437 354 25 937 351 25 938 332 25 897 301 25 939 282 25 898 301 25 939 332 25 897 282 41 304 289 41 940 280 41 864 288 41 941 280 41 864 289 41 940 289 41 940 290 41 942 288 41 941 287 41 943 288 41 941 290 41 942 290 41 942 291 41 944 287 41 943 286 41 945 287 41 943 291 41 944 291 41 944 284 41 946 286 41 945 285 41 947 286 41 945 284 41 946 284 41 946 283 41 948 285 41 947 391 437 568 398 616 745 388 349 442 390 348 441 388 349 442 398 616 745 419 776 910 415 777 67 403 811 949 406 812 66 403 811 949 415 777 67 403 811 949 406 812 66 400 813 950 401 814 911 400 813 950 406 812 66 428 815 951 430 248 322 464 816 952 463 817 953 464 816 952 430 248 322 476 787 915 444 786 914 428 815 951 428 815 951 475 818 954 476 787 915 488 819 830 452 619 748 487 820 99 451 94 98 487 95 99 452 619 748 445 249 323 444 786 914 500 622 749 499 788 916 500 622 749 444 786 914 431 359 453 468 558 682 482 360 321 505 821 826 482 360 321 468 558 682 443 245 318 499 784 913 469 246 320 509 822 955 469 246 320 499 784 913 513 461 590 474 460 589 490 461 747 455 618 746 490 461 747 474 460 589 442 358 452 427 86 90 462 357 451 455 618 746 462 357 451 427 86 90 528 41 494 527 41 493 536 41 494 535 41 493 536 41 494 527 41 493 540 120 495 539 120 497 541 120 107 542 120 106 541 120 107 539 120 497 562 120 126 572 277 146 554 120 345 551 464 594 554 120 345 572 277 146 594 482 610 584 375 469 608 695 609 607 275 351 608 695 609 584 375 469 602 823 116 613 790 118 590 470 599 615 469 598 590 470 599 613 790 118 569 114 130 583 274 350 563 40 131 585 40 352 563 40 131 583 274 350 579 267 148 603 374 149 567 268 346 605 117 138 567 268 346 603 374 149 626 41 345 623 41 604 620 41 344 619 41 603 620 41 344 623 41 604 625 120 109 624 473 607 637 120 111 645 475 470 637 120 111 624 473 607 664 794 601 681 792 595 670 748 471 682 121 143 670 748 471 681 792 595 661 122 144 659 120 127 687 699 598 688 120 597 687 699 598 659 120 127 659 120 127 661 122 144 634 120 126 644 124 146 634 120 126 661 122 144 669 119 142 663 793 596 646 124 354 650 125 134 646 124 354 663 793 596 692 25 612 691 25 613 698 25 612 697 25 613 698 25 612 691 25 613 724 100 152 716 100 152 721 100 194 709 100 194 721 100 194 716 100 152 731 626 380 224 627 380 730 627 379 221 626 379 730 627 379 224 627 380 82 824 711 61 825 711 727 628 500 60 628 500 727 628 500 61 825 711 733 630 871 74 630 871 747 630 872 70 630 872 747 630 872 74 630 871 738 826 874 47 827 923 748 282 360 46 282 361 748 282 360 47 827 923 795 538 237 788 4 4 796 583 238 772 5 5 796 583 238 788 4 4 776 8 8 789 828 241 786 7 7 800 768 164 786 7 7 789 828 241 780 381 480 758 635 515 775 391 240 757 390 481 775 391 240 758 635 515 805 120 516 804 120 517 811 120 482 807 120 483 811 120 482 804 120 517 839 591 629 838 829 922 827 151 702 825 394 921 827 151 702 838 829 922 854 646 633 845 152 759 853 713 839 843 153 837 853 713 839 845 152 759 868 716 956 867 716 386 866 830 880 863 754 879 866 830 880 867 716 386 25 41 795 866 830 880 863 754 879 840 831 762 1 41 26 9 41 25 842 592 703 840 831 762 9 41 25 863 754 879 70 41 872 74 41 871 32 41 926 25 41 795 863 754 879 73 41 832 219 41 159 842 592 703 842 592 703 9 41 25 8 41 275 842 592 703 8 41 275 7 41 274 842 592 703 7 41 274 6 41 539 842 592 703 6 41 539 4 41 535 35 41 883 32 41 926 863 754 879 34 41 727 35 41 883 863 754 879 33 41 532 34 41 727 863 754 879 842 592 703 4 41 535 5 41 534 27 41 533 33 41 532 863 754 879 26 41 663 27 41 533 863 754 879 22 41 781 28 41 24 29 41 23 842 592 703 5 41 534 12 41 728 31 41 272 26 41 663 863 754 879 31 41 272 863 754 879 74 41 871 30 41 273 31 41 272 74 41 871 29 41 23 30 41 273 74 41 871 22 41 781 29 41 23 74 41 871 3 41 782 22 41 781 74 41 871 3 41 782 74 41 871 72 41 833 10 41 927 3 41 782 72 41 833 10 41 927 72 41 833 73 41 832 11 41 884 10 41 927 73 41 832 12 41 728 11 41 884 73 41 832 73 41 832 842 592 703 12 41 728 696 27 692 879 27 357 702 27 692 704 27 357 702 27 692 879 27 357 840 25 762 852 25 840 225 25 436 841 25 838 225 25 436 852 25 840 888 311 505 891 832 506 900 160 195 903 161 196 900 160 195 891 832 506 875 511 957 889 310 400 878 833 641 892 834 402 878 833 641 889 310 400 919 100 764 906 401 507 909 404 510 909 404 510 920 100 766 919 100 764 924 721 958 925 835 647 885 720 959 886 836 714 885 720 959 925 835 647 1020 733 479 1016 194 243 1030 385 367 1031 842 621 1030 387 367 1016 194 243 1013 338 371 1037 843 165 1010 185 236 1035 844 238 1010 185 236 1037 843 165 1023 666 422 1005 193 242 1000 495 698 991 195 244 1000 495 698 1005 193 242 1057 845 699 1056 845 700 1053 846 756 1050 847 754 1053 846 756 1056 845 700 1063 27 875 1059 27 877 1058 27 876 1047 736 626 1058 27 876 1059 27 877 1059 27 877 1040 27 878 1047 736 626 1048 735 624 1047 736 626 1040 27 878 25 672 795 32 673 926 254 672 795 261 671 926 254 672 795 32 673 926 3 214 782 10 215 927 232 214 782 239 213 927 232 214 782 10 215 927 17 212 784 16 211 885 246 210 784 245 209 885 246 210 784 16 211 885 40 208 786 41 207 887 269 206 786 270 205 887 269 206 786 41 207 887 247 41 783 246 41 784 347 41 789 346 41 928 347 41 789 246 41 784 268 41 785 269 41 786 368 41 791 369 41 929 368 41 791 269 41 786 254 27 795 261 27 926 354 27 794 361 27 930 354 27 794 261 27 926 232 27 782 239 27 927 332 27 797 339 27 931 332 27 797 239 27 927 327 25 32 329 25 961 277 25 799 279 25 863 277 25 799 329 25 961 352 848 801 367 677 934 302 848 803 317 675 935 302 848 803 367 677 934 328 25 962 326 25 963 278 25 964 276 25 965 278 25 964 326 25 963 357 675 807 351 848 938 307 677 809 301 848 939 307 677 809 351 848 938 281 27 303 279 27 863 298 27 966 299 27 967 298 27 966 279 27 863 279 27 863 297 27 968 299 27 967 300 27 969 299 27 967 297 27 968 297 27 968 296 27 970 300 27 969 293 27 971 300 27 969 296 27 970 296 27 970 295 27 972 293 27 971 292 27 973 293 27 971 295 27 972 295 27 972 294 27 974 292 27 973 377 741 447 375 741 867 394 849 677 396 849 975 394 849 677 375 741 867 418 678 820 417 679 821 401 814 911 400 813 950 401 814 911 417 679 821 407 779 574 421 680 680 418 681 820 418 681 820 401 778 911 407 779 574 383 739 865 414 440 571 385 739 445 409 440 446 385 739 445 414 440 571 455 618 746 474 460 589 473 357 464 473 357 464 462 357 451 455 618 746 485 255 330 425 254 329 486 850 870 436 746 869 486 850 870 425 254 329 498 90 94 497 851 828 439 73 78 453 462 591 439 73 78 497 851 828 430 248 322 482 247 321 463 817 953 505 852 826 463 817 953 482 247 321 442 358 452 469 356 450 476 780 912 509 853 976 476 780 912 469 356 450 454 96 100 501 451 580 497 685 824 512 854 829 497 855 824 501 451 580 444 786 914 445 249 323 428 815 951 430 248 322 428 815 951 445 249 323 529 25 491 528 25 494 537 25 491 536 25 494 537 25 491 528 25 494 515 41 497 518 41 106 539 41 497 542 41 106 539 41 497 518 41 106 550 103 113 549 40 977 570 105 115 564 40 918 570 105 115 549 40 977 558 25 608 556 25 112 577 116 602 582 116 114 577 116 602 556 25 112 614 40 141 611 118 139 600 40 473 606 272 349 600 40 473 611 118 139 618 120 122 596 120 472 610 466 143 598 377 471 610 466 143 596 120 472 590 470 599 571 376 600 602 823 116 575 472 136 602 823 116 571 376 600 602 106 116 575 116 136 604 106 117 580 116 137 604 106 117 575 116 136 638 120 129 646 124 354 633 120 467 643 475 600 633 120 467 646 124 354 679 275 351 655 274 350 680 695 609 665 570 691 680 695 609 655 274 350 687 699 598 685 697 118 661 122 144 673 123 145 661 122 144 685 697 118 642 105 115 636 40 918 656 375 469 658 40 468 656 375 469 636 40 918 652 104 137 640 105 132 676 271 117 678 272 349 676 271 117 640 105 132 693 41 189 692 41 612 699 41 189 698 41 612 699 41 189 692 41 612 720 100 357 708 100 357 723 100 153 715 100 153 723 100 153 708 100 357 732 627 831 222 626 831 731 626 380 224 627 380 731 626 380 222 626 831 69 701 712 61 825 711 85 703 712 82 824 711 85 703 712 61 825 711 733 100 871 735 100 833 74 100 871 72 100 833 74 100 871 735 100 833 743 710 836 54 711 836 738 826 874 47 827 923 738 826 874 54 711 836 787 144 169 770 142 167 795 191 237 794 136 162 795 191 237 770 142 167 784 586 422 799 664 368 767 584 423 793 137 163 767 584 423 799 664 368 774 293 371 756 292 370 771 750 236 755 856 424 771 750 236 756 292 370 803 25 425 810 637 427 804 25 426 807 639 428 804 25 426 810 637 427 828 504 631 826 857 919 839 502 629 838 858 922 839 502 629 826 857 919 853 799 839 852 859 840 842 592 703 840 831 762 842 592 703 852 859 840 865 860 978 864 305 388 868 302 956 867 303 386 868 302 956 864 305 388 857 396 502 855 156 705 24 27 39 18 27 783 0 27 787 826 857 919 18 27 783 826 857 919 828 504 631 77 27 617 71 27 501 857 396 502 857 396 502 24 27 39 42 27 282 828 504 631 222 27 831 76 27 695 17 27 784 18 27 783 828 504 631 16 27 885 17 27 784 828 504 631 15 27 730 16 27 885 828 504 631 13 27 543 15 27 730 828 504 631 857 396 502 42 27 282 45 27 22 857 396 502 45 27 22 44 27 21 857 396 502 44 27 21 43 27 271 14 27 536 13 27 543 828 504 631 857 396 502 43 27 271 37 27 270 857 396 502 37 27 270 36 27 733 39 27 785 38 27 28 23 27 27 21 27 537 14 27 536 828 504 631 857 396 502 36 27 733 41 27 887 77 27 617 857 396 502 41 27 887 77 27 617 41 27 887 40 27 786 77 27 617 40 27 786 39 27 785 77 27 617 39 27 785 23 27 27 77 27 617 23 27 27 2 27 35 75 27 618 77 27 617 2 27 35 75 27 618 2 27 35 19 27 276 76 27 695 75 27 618 19 27 276 76 27 695 19 27 276 20 27 280 76 27 695 20 27 280 21 27 537 21 27 537 828 504 631 76 27 695 872 302 385 862 304 387 878 833 641 875 511 957 878 833 641 862 304 387 865 25 978 868 25 956 226 25 793 866 25 880 226 25 793 868 25 956 892 861 402 904 313 403 890 514 642 902 595 708 890 514 642 904 313 403 886 862 714 898 649 769 885 720 959 897 403 849 885 720 959 898 649 769 920 100 979 909 404 850 908 755 881 910 719 851 908 755 881 909 404 850 849 863 179 851 864 178 924 721 958 925 835 647 924 721 958 851 864 178 970 865 413 974 866 925 834 166 841 967 867 860 973 868 218 972 869 653 967 867 860 972 869 653 962 870 716 961 871 651 972 869 653 973 868 218 961 871 651 973 868 218 968 872 217 960 873 773 961 871 651 968 872 217 960 873 773 968 872 217 969 874 414 834 166 841 974 866 925 971 875 882 923 167 856 834 166 841 971 875 882 923 167 856 971 875 882 966 876 861 923 167 856 966 876 861 967 867 860 924 721 855 923 167 856 967 867 860 924 721 855 967 867 860 962 870 716 924 721 855 962 870 716 963 877 859 924 721 855 963 877 859 964 878 858 849 863 843 924 721 855 964 878 858 849 863 843 964 878 858 965 879 960 849 863 843 965 879 960 959 880 924 969 874 414 970 865 413 834 166 841 849 863 843 959 880 924 960 873 773 834 166 841 849 863 843 960 873 773 960 873 773 969 874 414 834 166 841 1030 289 367 1031 884 621 1021 0 10 1017 19 11 1021 0 10 1031 885 621 1037 886 165 1012 16 6 1035 887 238 1011 15 5 1035 887 238 1012 16 6 1006 335 423 1023 334 422 992 769 697 1000 636 698 992 769 697 1023 334 422 1052 670 489 1051 670 487 1057 888 699 1056 888 700 1057 888 699 1051 670 487 1063 589 627 1062 589 628 1059 145 175 1061 145 174 1059 145 175 1062 589 628 728 27 501 78 27 617 80 27 618 103 27 248 102 27 249 81 27 154 728 27 501 80 27 618 79 27 695 728 27 501 79 27 695 732 27 831 727 27 500 728 27 501 732 27 831 103 27 248 81 27 154 87 27 155 81 27 154 102 27 249 101 27 725 84 27 359 81 27 154 101 27 725 84 27 359 101 27 725 100 27 724 90 27 358 84 27 359 100 27 724 89 27 694 90 27 358 100 27 724 103 27 248 87 27 155 86 27 713 88 27 616 89 27 694 100 27 724 88 27 616 100 27 724 99 27 519 103 27 248 86 27 713 85 27 712 103 27 248 85 27 712 82 27 711 103 27 248 82 27 711 727 27 500 104 27 432 103 27 248 727 27 500 105 27 250 104 27 432 727 27 500 105 27 250 727 27 500 732 27 831 106 27 251 105 27 250 732 27 831 99 27 519 106 27 251 732 27 831 88 27 616 99 27 519 732 27 831 729 27 490 83 27 615 88 27 616 730 27 379 729 27 490 88 27 616 731 27 380 730 27 379 88 27 616 732 27 831 731 27 380 88 27 616 45 29 22 42 671 282 274 31 22 271 673 282 274 31 22 42 671 282 28 33 24 22 39 781 257 35 24 251 39 781 257 35 24 22 39 781 0 37 787 18 38 783 229 37 787 247 36 783 229 37 787 18 38 783 38 35 28 39 34 785 267 33 28 268 32 785 267 33 28 39 34 785 327 41 980 227 41 920 329 41 788 229 41 787 329 41 788 227 41 920 252 41 27 267 41 28 352 41 33 367 41 790 352 41 33 267 41 28 228 120 390 226 120 389 328 120 962 326 120 963 328 120 962 226 120 389 251 27 781 351 27 796 257 27 24 357 27 40 257 27 24 351 27 796 325 25 31 275 25 798 330 25 981 280 25 864 330 25 981 275 25 798 348 46 47 331 773 800 298 48 49 281 773 802 298 48 49 331 773 800 371 50 51 353 772 982 321 52 53 303 772 983 321 52 53 353 772 982 359 54 55 358 674 806 309 56 57 308 676 808 309 56 57 358 674 806 282 25 304 280 25 864 281 25 303 279 25 863 281 25 303 280 25 864 396 889 63 375 890 984 383 891 985 383 891 985 397 892 64 396 889 63 415 62 67 405 354 448 409 353 446 409 353 446 416 63 68 415 62 67 420 66 71 414 893 986 404 893 987 404 893 987 419 67 72 420 66 71 375 890 984 404 893 987 383 891 985 414 893 986 383 891 985 404 893 987 472 894 988 471 567 687 440 449 578 459 566 686 440 449 578 471 567 687 484 256 331 483 450 751 425 254 329 457 251 325 425 254 329 483 450 751 436 746 869 432 252 327 495 895 86 496 896 87 495 897 86 432 252 327 428 815 951 464 816 952 475 818 954 504 898 989 475 818 954 464 816 952 440 449 578 477 448 577 472 894 988 508 899 827 472 894 988 477 448 577 452 619 748 488 900 830 501 451 580 512 901 829 501 451 580 488 902 830 451 94 98 452 619 748 435 84 89 437 83 88 435 84 89 452 619 748 523 100 105 526 100 340 531 100 105 534 100 340 531 100 105 526 100 340 517 27 107 516 27 495 541 27 107 540 27 495 541 27 107 516 27 495 567 268 346 559 40 355 547 270 348 548 40 474 547 270 348 559 40 355 576 115 147 579 115 148 557 25 475 555 25 347 557 25 475 579 115 148 613 107 118 612 108 119 601 126 145 603 126 149 601 126 145 612 108 119 618 110 122 617 111 123 596 378 472 586 378 476 596 378 472 617 111 123 600 379 477 560 101 466 588 379 478 561 101 467 588 379 478 560 101 466 586 378 476 564 101 110 596 378 472 565 101 111 596 378 472 564 101 110 622 103 113 621 40 977 642 105 115 636 40 918 642 105 115 621 40 977 630 25 608 628 25 112 649 116 602 654 116 114 649 116 602 628 25 112 686 40 141 683 118 139 672 40 473 678 272 349 672 40 473 683 118 139 690 120 122 668 120 472 682 121 143 670 748 471 682 121 143 668 120 472 662 698 599 643 475 600 674 696 116 647 476 136 674 696 116 643 475 600 674 106 116 647 116 136 676 106 117 652 116 137 676 106 117 647 116 136 719 41 356 707 41 356 720 41 357 708 41 357 720 41 357 707 41 356 717 27 151 725 27 151 715 27 153 723 27 153 715 27 153 725 27 151 67 128 155 68 700 713 87 130 155 86 702 713 87 130 155 68 700 713 751 131 158 219 131 159 734 706 834 73 704 832 734 706 834 219 131 159 745 133 160 52 132 160 744 708 835 53 709 835 744 708 835 52 132 160 770 142 167 767 584 423 794 136 162 793 137 163 794 136 162 767 584 423 785 295 239 774 293 371 800 186 164 798 903 165 800 188 164 774 293 371 763 809 168 787 795 169 755 856 424 771 750 236 755 856 424 787 795 169 813 40 721 809 40 720 818 40 171 816 40 173 818 40 171 809 40 720 835 503 630 836 904 757 830 299 382 832 905 381 830 299 382 836 904 757 848 906 383 851 907 178 846 908 384 850 909 180 846 908 384 851 907 178 831 645 842 829 150 182 847 149 844 845 152 184 847 149 844 829 150 182 48 41 752 70 41 872 861 715 847 863 754 879 861 715 847 70 41 872 862 304 846 694 40 614 691 40 613 875 511 639 862 304 846 691 40 613 692 40 612 693 40 189 860 155 187 692 40 612 860 155 187 874 399 638 692 40 612 874 399 638 875 511 639 875 511 639 691 40 613 692 40 612 879 40 357 696 40 692 864 305 845 879 40 357 864 305 845 865 860 391 858 154 186 695 40 188 880 40 194 856 154 392 858 154 186 880 40 194 865 860 391 856 154 392 880 40 194 880 40 194 879 40 357 865 860 391 901 165 401 913 164 771 904 313 403 916 598 710 904 313 403 913 164 771 894 402 508 882 718 854 885 720 853 885 720 853 897 403 509 894 402 508 920 100 979 908 755 881 914 597 709 914 597 709 918 100 770 920 100 979 923 167 206 882 718 848 922 169 208 883 910 512 922 169 208 882 718 848 1029 665 366 1018 18 9 1028 192 241 1015 17 8 1028 192 241 1018 18 9 1036 917 369 1004 20 12 1031 918 621 1017 19 11 1031 918 621 1004 20 12 997 420 515 999 587 622 1019 419 480 1020 663 479 1019 419 480 999 587 622 1049 341 427 1046 342 428 1055 919 623 1054 919 625 1055 919 623 1046 342 428 1044 100 753 1045 100 755 1050 847 754 1053 846 756 1050 847 754 1045 100 755

+
+ + + + +

1000 40 224 991 40 225 992 40 226 993 40 227 992 40 226 991 40 225 991 40 225 998 40 228 993 40 227 1002 40 229 993 40 227 998 40 228 998 40 228 999 40 230 1002 40 229 994 40 231 1002 40 229 999 40 230 999 40 230 997 40 232 994 40 231 995 40 233 994 40 231 997 40 232 997 40 232 996 40 234 995 40 233 1001 40 235 995 40 233 996 40 234 174 41 521 175 41 522 173 41 523 172 41 524 173 41 523 175 41 522 175 41 522 176 41 525 172 41 524 171 41 526 172 41 524 176 41 525 176 41 525 177 41 527 171 41 526 178 41 528 171 41 526 177 41 527 990 528 513 981 529 655 989 530 421 988 531 420 989 530 421 981 529 655 981 529 655 982 531 656 988 531 420 987 532 657 988 531 420 982 531 656 982 531 656 979 533 658 987 532 657 980 534 659 987 532 657 979 533 658 182 27 661 181 27 268 183 27 531 184 27 264 183 27 531 181 27 268 181 27 268 180 27 269 184 27 264 185 27 265 184 27 264 180 27 269 180 27 269 179 27 18 185 27 265 186 27 17 185 27 265 179 27 18 984 655 719 983 656 775 975 657 718 976 658 416 975 657 718 983 656 775 983 656 775 986 659 776 976 658 416 977 660 417 976 658 416 986 659 776 986 659 776 985 661 221 977 660 417 978 662 220 977 660 417 985 661 221 114 41 779 113 41 780 107 41 259 108 41 258 107 41 259 113 41 780 113 41 780 112 41 520 108 41 258 109 41 255 108 41 258 112 41 520 112 41 520 111 41 434 109 41 255 110 41 254 109 41 255 111 41 434 760 40 230 759 40 228 758 40 232 757 40 234 758 40 232 759 40 228 759 40 228 752 40 225 757 40 234 762 40 235 757 40 234 752 40 225 752 40 225 761 40 224 762 40 235 756 40 233 762 40 235 761 40 224 761 40 224 753 40 226 756 40 233 755 40 231 756 40 233 753 40 226 753 40 226 754 40 227 755 40 231 763 40 229 755 40 231 754 40 227 121 27 431 122 27 777 120 27 433 119 27 722 120 27 433 122 27 777 122 27 777 115 27 778 119 27 722 118 27 430 119 27 722 115 27 778 115 27 778 116 27 518 118 27 430 117 27 429 118 27 430 116 27 518

+
+ + + + +

167 21 13 166 22 14 199 23 13 198 24 14 199 23 13 166 22 14 161 25 15 162 25 16 193 25 15 194 25 16 193 25 15 162 25 16 186 26 17 179 26 18 218 26 17 211 26 18 218 26 17 179 26 18 202 27 19 218 27 17 195 27 20 211 27 18 195 27 20 218 27 17 930 170 209 929 171 210 938 172 211 937 173 212 938 172 211 929 171 210 949 174 213 950 175 214 957 176 215 958 177 216 957 176 215 950 175 214 968 178 217 973 179 218 950 179 214 947 180 219 950 179 214 973 179 218 978 181 220 985 182 221 942 182 222 939 183 223 942 182 222 985 182 221 135 197 248 134 197 249 103 197 248 102 197 249 103 197 248 134 197 249 105 25 250 106 25 251 137 25 250 138 25 251 137 25 250 106 25 251 126 41 252 125 41 253 142 41 254 141 41 255 142 41 254 125 41 253 124 41 256 123 41 257 140 41 258 139 41 259 140 41 258 123 41 257 169 198 260 168 198 261 201 198 260 200 198 261 201 198 260 168 198 261 159 23 262 160 199 263 191 21 262 192 199 263 191 21 262 160 199 263 184 200 264 185 200 265 216 200 264 217 200 265 216 200 264 185 200 265 197 27 266 196 27 267 213 27 268 212 27 269 213 27 268 196 27 267 928 318 406 927 319 407 936 320 408 935 321 409 936 320 408 927 319 407 947 322 219 948 323 410 955 324 411 956 325 412 955 324 411 948 323 410 970 326 413 969 326 414 944 326 415 949 326 213 944 326 415 969 326 414 976 327 416 977 327 417 936 327 408 941 327 418 936 327 408 977 327 417 956 328 412 953 329 419 988 329 420 989 329 421 988 329 420 953 329 419 149 25 429 150 25 430 117 25 429 118 25 430 117 25 429 150 25 430 137 27 250 153 27 431 136 27 432 152 27 433 136 27 432 153 27 431 143 343 434 142 343 254 111 343 434 110 343 254 111 343 434 142 343 254 123 120 257 124 120 256 91 120 257 92 120 256 91 120 257 124 120 256 168 199 261 167 21 13 200 199 261 199 23 13 200 199 261 167 21 13 160 198 263 161 198 15 192 198 263 193 198 15 192 198 263 161 198 15 185 100 265 186 100 17 217 100 265 218 100 17 217 100 265 186 100 17 196 27 267 195 27 20 212 27 269 211 27 18 212 27 269 195 27 20 927 319 407 930 170 209 935 321 409 938 172 211 935 321 409 930 170 209 947 322 219 955 324 411 950 175 214 958 177 216 950 175 214 955 324 411 969 407 414 968 408 217 949 408 213 950 409 214 949 408 213 968 408 217 977 410 417 978 411 220 941 411 418 942 412 222 941 411 418 978 411 220 990 413 513 989 414 421 954 414 514 953 415 419 954 414 514 989 414 421 148 422 518 149 422 429 116 422 518 117 422 429 116 422 518 149 422 429 131 423 519 138 423 251 99 423 519 106 423 251 99 423 519 138 423 251 94 100 252 93 100 253 126 100 252 125 100 253 126 100 252 93 100 253 111 120 434 112 120 520 143 120 434 144 120 520 143 120 434 112 120 520 156 424 529 157 424 530 188 424 529 189 424 530 188 424 529 157 424 530 174 425 521 173 25 523 206 426 521 205 25 523 206 426 521 173 25 523 215 27 531 216 27 264 199 27 13 200 27 261 199 27 13 216 27 264 193 41 15 209 41 527 192 41 263 208 41 525 192 41 263 209 41 527 943 521 648 951 522 649 946 523 650 954 524 514 946 523 650 951 522 649 961 525 651 934 526 652 972 526 653 931 527 654 972 526 653 934 526 652 979 535 658 957 536 215 980 536 659 958 537 216 980 536 659 957 536 215 152 542 433 153 542 431 120 542 433 121 542 431 120 542 433 153 542 431 141 422 255 140 422 258 109 422 255 108 422 258 109 422 255 140 422 258 130 423 660 123 423 257 98 423 660 91 423 257 98 423 660 123 423 257 157 100 530 158 24 662 189 100 530 190 22 662 189 100 530 158 24 662 173 543 523 172 543 524 205 543 523 204 543 524 205 543 523 172 543 524 198 27 14 214 27 661 199 27 13 215 27 531 199 27 13 214 27 661 193 41 15 194 41 16 209 41 527 210 41 528 209 41 527 194 41 16 946 523 650 954 524 514 945 600 715 953 601 419 945 600 715 954 524 514 972 602 653 931 603 654 962 603 716 932 604 717 962 603 716 931 603 654 975 27 718 935 27 409 984 27 719 938 27 211 984 27 719 935 27 409 980 605 659 958 606 216 987 606 657 955 607 411 987 606 657 958 606 216 136 40 432 135 40 248 104 40 432 103 40 248 104 40 432 135 40 248 120 120 433 119 120 722 152 120 433 151 120 722 152 120 433 119 120 722 142 25 254 141 25 255 110 25 254 109 25 255 110 25 254 141 25 255 129 25 723 130 25 660 97 25 723 98 25 660 97 25 723 130 25 660 100 612 724 101 612 725 132 612 724 133 612 725 132 612 724 101 612 725 155 40 726 156 40 529 187 40 726 188 40 529 187 40 726 156 40 529 175 613 522 174 425 521 207 614 522 206 426 521 207 614 522 174 425 521 201 27 260 200 27 261 217 27 265 216 27 264 217 27 265 200 27 261 207 41 522 191 41 262 208 41 525 192 41 263 208 41 525 191 41 262 944 650 415 952 651 772 943 521 648 951 522 649 943 521 648 952 651 772 960 652 773 933 653 774 961 653 651 934 654 652 961 653 651 933 653 774 982 327 656 952 327 772 979 327 658 957 327 215 979 327 658 952 327 772 153 100 431 154 100 777 121 100 431 122 100 777 121 100 431 154 100 777 131 27 519 132 27 724 147 27 778 148 27 518 147 27 778 132 27 724 146 100 779 145 100 780 114 100 779 113 100 780 114 100 779 145 100 780 165 424 266 164 424 267 197 424 266 196 424 267 197 424 266 164 424 267 171 26 526 178 26 528 203 26 526 210 26 528 203 26 526 178 26 528 180 543 269 181 543 268 212 543 269 213 543 268 212 543 269 181 543 268 187 41 726 188 41 529 203 41 526 204 41 524 203 41 526 188 41 529 931 722 654 939 723 223 932 724 717 940 725 857 932 724 717 939 723 223 964 726 858 963 727 859 930 727 209 929 728 210 930 727 209 963 727 859 967 729 860 966 729 861 948 729 410 945 729 715 948 729 410 966 729 861 937 328 212 940 329 857 983 329 775 986 329 776 983 329 775 940 329 857 133 27 725 134 27 249 149 27 429 150 27 430 149 27 429 134 27 249 132 120 724 131 120 519 100 120 724 99 120 519 100 120 724 131 120 519 95 197 862 94 197 252 127 197 862 126 197 252 127 197 862 94 197 252 130 41 660 129 41 723 146 41 779 145 41 780 146 41 779 129 41 723 170 25 19 169 25 260 202 25 19 201 25 260 202 25 19 169 25 260 158 24 662 159 23 262 190 22 662 191 21 262 190 22 662 159 23 262 183 614 531 184 737 264 215 613 531 216 737 264 215 613 531 184 737 264 198 27 14 197 27 266 214 27 661 213 27 268 214 27 661 197 27 266 933 757 774 928 318 406 941 758 418 936 320 408 941 758 418 928 318 406 945 600 715 953 601 419 948 323 410 956 325 412 948 323 410 953 601 419 971 759 882 946 760 650 966 760 861 945 761 715 966 760 861 946 760 650 976 762 416 936 763 408 975 763 718 935 764 409 975 763 718 936 763 408 987 765 657 955 766 411 988 766 420 956 767 412 988 766 420 955 766 411 150 343 430 151 343 722 118 343 430 119 343 722 118 343 430 151 343 722 135 27 248 136 27 432 151 27 722 152 27 433 151 27 722 136 27 432 125 41 253 124 41 256 141 41 255 140 41 258 141 41 255 124 41 256 128 770 873 129 770 723 96 770 873 97 770 723 96 770 873 129 770 723 93 612 253 92 612 256 125 612 253 124 612 256 125 612 253 92 612 256 162 771 16 155 771 726 194 771 16 187 771 726 194 771 16 155 771 726 176 737 525 175 613 522 208 737 525 207 614 522 208 737 525 175 613 522 202 27 19 201 27 260 218 27 17 217 27 265 218 27 17 201 27 260 190 41 662 191 41 262 206 41 521 207 41 522 206 41 521 191 41 262 949 174 213 957 176 215 944 650 415 952 651 772 944 650 415 957 176 215 959 326 924 928 326 406 960 326 773 933 326 774 960 326 773 928 326 406 970 801 413 944 802 415 974 802 925 943 803 648 974 802 925 944 802 415 982 804 656 981 805 655 952 805 772 951 806 649 952 805 772 981 805 655 137 770 250 136 770 432 105 770 250 104 770 432 105 770 250 136 770 432 138 27 251 131 27 519 154 27 777 147 27 778 154 27 777 131 27 519 145 542 780 144 542 520 113 542 780 112 542 520 113 542 780 144 542 520 114 810 779 107 810 259 146 810 779 139 810 259 146 810 779 107 810 259 163 771 20 170 771 19 195 771 20 202 771 19 195 771 20 170 771 19 177 200 527 176 200 525 209 200 527 208 200 525 209 200 527 176 200 525 182 426 661 183 614 531 214 425 661 215 613 531 214 425 661 183 614 531 189 41 530 190 41 662 205 41 523 206 41 521 205 41 523 190 41 662 933 757 774 941 758 418 934 837 652 942 838 222 934 837 652 941 758 418 959 839 924 965 840 960 928 840 406 927 841 407 928 840 406 965 840 960 974 27 925 943 27 648 971 27 882 946 27 650 971 27 882 943 27 648 981 41 655 990 41 513 951 41 649 954 41 514 951 41 649 990 41 513 135 27 248 151 27 722 134 27 249 150 27 430 134 27 249 151 27 722 115 810 778 122 810 777 147 810 778 154 810 777 147 810 778 122 810 777 140 40 258 139 40 259 108 40 258 107 40 259 108 40 258 139 40 259 128 41 873 127 41 862 144 41 520 143 41 434 144 41 520 127 41 862 164 40 267 163 40 20 196 40 267 195 40 20 196 40 267 163 40 20 178 100 528 177 100 527 210 100 528 209 100 527 210 100 528 177 100 527 181 25 268 182 426 661 213 25 268 214 425 661 213 25 268 182 426 661 189 41 530 205 41 523 188 41 529 204 41 524 188 41 529 205 41 523 931 722 654 934 837 652 939 723 223 942 838 222 939 723 223 934 837 652 965 41 960 964 41 858 927 41 407 930 41 209 927 41 407 964 41 858 984 881 719 938 882 211 983 882 775 937 883 212 983 882 775 938 882 211 133 27 725 149 27 429 132 27 724 148 27 518 132 27 724 149 27 429 147 40 778 148 40 518 115 40 778 116 40 518 115 40 778 148 40 518 127 41 862 126 41 252 143 41 434 142 41 254 143 41 434 126 41 252 129 41 723 128 41 873 145 41 780 144 41 520 145 41 780 128 41 873 166 22 14 165 100 266 198 24 14 197 100 266 198 24 14 165 100 266 172 120 524 171 120 526 204 120 524 203 120 526 204 120 524 171 120 526 179 120 18 180 120 269 211 120 18 212 120 269 211 120 18 180 120 269 194 41 16 187 41 726 210 41 528 203 41 526 210 41 528 187 41 726 929 171 210 932 724 717 937 173 212 940 725 857 937 173 212 932 724 717 962 729 716 932 729 717 963 729 859 929 729 210 963 729 859 932 729 717 973 911 218 967 912 860 947 912 219 948 913 410 947 912 219 967 912 860 985 914 221 986 915 776 939 915 223 940 916 857 939 915 223 986 915 776 134 100 249 133 100 725 102 100 249 101 100 725 102 100 249 133 100 725 137 27 250 138 27 251 153 27 431 154 27 777 153 27 431 138 27 251 127 40 862 128 40 873 95 40 862 96 40 873 95 40 862 128 40 873 130 41 660 146 41 779 123 41 257 139 41 259 123 41 257 146 41 779

+
+
+
+ + + + 2.60209e-018 -0.4278 0.8 0.110723 -0.413223 0.8 0.2139 -0.370486 0.8 0.3025 -0.3025 0.8 0.370486 -0.2139 0.8 0.413223 -0.110723 0.8 0.4278 -6.93889e-018 0.8 0.413223 0.110723 0.8 0.370486 0.2139 0.8 0.3025 0.3025 0.8 0.2139 0.370486 0.8 0.110723 0.413223 0.8 2.60209e-018 0.4278 0.8 -0.110723 0.413223 0.8 -0.2139 0.370486 0.8 -0.3025 0.3025 0.8 -0.370486 0.2139 0.8 -0.413223 0.110723 0.8 -0.4278 -6.93889e-018 0.8 -0.413223 -0.110723 0.8 -0.370486 -0.2139 0.8 -0.3025 -0.3025 0.8 -0.2139 -0.370486 0.8 -0.110723 -0.413223 0.8 2.60209e-018 -0.4278 0.988 2.60209e-018 -0.37996 1.04 0.110723 -0.413223 0.988 0.0983409 -0.367013 1.04 0.2139 -0.370486 0.988 0.18998 -0.329055 1.04 0.3025 -0.3025 0.988 0.268672 -0.268672 1.04 0.370486 -0.2139 0.988 0.329055 -0.18998 1.04 0.413223 -0.110723 0.988 0.367013 -0.0983409 1.04 0.4278 -6.93889e-018 0.988 0.37996 -6.93889e-018 1.04 0.413223 0.110723 0.988 0.367013 0.0983409 1.04 0.370486 0.2139 0.988 0.329055 0.18998 1.04 0.3025 0.3025 0.988 0.268672 0.268672 1.04 0.2139 0.370486 0.988 0.18998 0.329055 1.04 0.110723 0.413223 0.988 0.0983409 0.367013 1.04 2.60209e-018 0.4278 0.988 2.60209e-018 0.37996 1.04 -0.110723 0.413223 0.988 -0.0983409 0.367013 1.04 -0.2139 0.370486 0.988 -0.18998 0.329055 1.04 -0.3025 0.3025 0.988 -0.268672 0.268672 1.04 -0.370486 0.2139 0.988 -0.329055 0.18998 1.04 -0.413223 0.110723 0.988 -0.367013 0.0983409 1.04 -0.4278 -6.93889e-018 0.988 -0.37996 -6.93889e-018 1.04 -0.413223 -0.110723 0.988 -0.367013 -0.0983409 1.04 -0.370486 -0.2139 0.988 -0.329055 -0.18998 1.04 -0.3025 -0.3025 0.988 -0.268672 -0.268672 1.04 -0.2139 -0.370486 0.988 -0.18998 -0.329055 1.04 -0.110723 -0.413223 0.988 -0.0983409 -0.367013 1.04 0.358351 -0.206894 1.02477 0.292592 -0.292592 1.02477 -0.107096 -0.399689 1.02477 -0.206894 -0.358351 1.02477 0.206894 0.358351 1.02477 0.292592 0.292592 1.02477 -0.358351 0.206894 1.02477 -0.292592 0.292592 1.02477 0.206894 -0.358351 1.02477 -0.292592 -0.292592 1.02477 0.358351 0.206894 1.02477 -0.206894 0.358351 1.02477 0.107096 -0.399689 1.02477 -0.358351 -0.206894 1.02477 0.399689 0.107096 1.02477 -0.107096 0.399689 1.02477 2.60209e-018 -0.413788 1.02477 -0.399688 -0.107096 1.02477 0.413788 -6.93889e-018 1.02477 2.60209e-018 0.413788 1.02477 -0.413788 -6.93889e-018 1.02477 0.399689 -0.107096 1.02477 0.107096 0.399689 1.02477 -0.399688 0.107096 1.02477 2.60209e-018 -0.309437 1.058 0.080088 -0.298893 1.058 0.154718 -0.26798 1.058 0.218805 -0.218805 1.058 0.26798 -0.154718 1.058 0.298893 -0.080088 1.058 0.309437 -6.93889e-018 1.058 0.298893 0.0800881 1.058 0.26798 0.154718 1.058 0.218805 0.218805 1.058 0.154718 0.26798 1.058 0.080088 0.298893 1.058 2.60209e-018 0.309437 1.058 -0.080088 0.298893 1.058 -0.154718 0.26798 1.058 -0.218805 0.218805 1.058 -0.26798 0.154718 1.058 -0.298893 0.0800881 1.058 -0.309437 -6.93889e-018 1.058 -0.298893 -0.080088 1.058 -0.26798 -0.154718 1.058 -0.218805 -0.218805 1.058 -0.154718 -0.26798 1.058 -0.080088 -0.298893 1.058 2.60209e-018 -0.245966 1.058 0.0636605 -0.237585 1.058 0.122983 -0.213012 1.058 0.173924 -0.173924 1.058 0.213013 -0.122983 1.058 0.237585 -0.0636605 1.058 0.245966 -6.93889e-018 1.058 0.237585 0.0636607 1.058 0.213013 0.122983 1.058 0.173924 0.173924 1.058 0.122983 0.213013 1.058 0.0636605 0.237585 1.058 2.60209e-018 0.245966 1.058 -0.0636605 0.237585 1.058 -0.122983 0.213013 1.058 -0.173924 0.173924 1.058 -0.213013 0.122983 1.058 -0.237585 0.0636607 1.058 -0.245966 -6.93889e-018 1.058 -0.237585 -0.0636605 1.058 -0.213012 -0.122983 1.058 -0.173924 -0.173924 1.058 -0.122983 -0.213012 1.058 -0.0636605 -0.237585 1.058 2.60209e-018 -0.224809 1.018 0.0581847 -0.217149 1.018 0.112404 -0.19469 1.018 0.158964 -0.158964 1.018 0.19469 -0.112404 1.018 0.217149 -0.0581847 1.018 0.224809 -6.93889e-018 1.018 0.217149 0.0581849 1.018 0.19469 0.112404 1.018 0.158964 0.158964 1.018 0.112404 0.19469 1.018 0.0581847 0.217149 1.018 2.60209e-018 0.224809 1.018 -0.0581846 0.217149 1.018 -0.112404 0.19469 1.018 -0.158964 0.158964 1.018 -0.19469 0.112404 1.018 -0.217149 0.0581849 1.018 -0.224809 -6.93889e-018 1.018 -0.217149 -0.0581847 1.018 -0.19469 -0.112404 1.018 -0.158964 -0.158964 1.018 -0.112404 -0.19469 1.018 -0.0581846 -0.217149 1.018 2.60209e-018 -0.172102 1.018 0.0445431 -0.166238 1.018 0.0860509 -0.149045 1.018 0.121694 -0.121694 1.018 0.149045 -0.0860507 1.018 0.166238 -0.0445431 1.018 0.172102 -6.93889e-018 1.018 0.166238 0.0445433 1.018 0.149045 0.0860507 1.018 0.121694 0.121694 1.018 0.0860509 0.149045 1.018 0.0445431 0.166238 1.018 2.60209e-018 0.172102 1.018 -0.044543 0.166238 1.018 -0.0860509 0.149045 1.018 -0.121694 0.121694 1.018 -0.149045 0.0860508 1.018 -0.166238 0.0445433 1.018 -0.172102 -6.93889e-018 1.018 -0.166238 -0.0445431 1.018 -0.149045 -0.0860509 1.018 -0.121694 -0.121694 1.018 -0.0860509 -0.149045 1.018 -0.0445431 -0.166238 1.018 2.60209e-018 -6.93889e-018 1.018 2.60209e-018 -6.93889e-018 0.8 2.60209e-018 -0.4278 -0.8 0.110723 -0.413223 -0.8 0.2139 -0.370486 -0.8 0.3025 -0.3025 -0.8 0.370486 -0.2139 -0.8 0.413223 -0.110723 -0.8 0.4278 -6.93889e-018 -0.8 0.413223 0.110723 -0.8 0.370486 0.2139 -0.8 0.3025 0.3025 -0.8 0.2139 0.370486 -0.8 0.110723 0.413223 -0.8 2.60209e-018 0.4278 -0.8 -0.110723 0.413223 -0.8 -0.2139 0.370486 -0.8 -0.3025 0.3025 -0.8 -0.370486 0.2139 -0.8 -0.413223 0.110723 -0.8 -0.4278 -6.93889e-018 -0.8 -0.413223 -0.110723 -0.8 -0.370486 -0.2139 -0.8 -0.3025 -0.3025 -0.8 -0.2139 -0.370486 -0.8 -0.110723 -0.413223 -0.8 2.60209e-018 -0.4278 -0.988 2.60209e-018 -0.37996 -1.04 0.110723 -0.413223 -0.988 0.0983409 -0.367013 -1.04 0.2139 -0.370486 -0.988 0.18998 -0.329055 -1.04 0.3025 -0.3025 -0.988 0.268672 -0.268672 -1.04 0.370486 -0.2139 -0.988 0.329055 -0.18998 -1.04 0.413223 -0.110723 -0.988 0.367013 -0.0983409 -1.04 0.4278 -6.93889e-018 -0.988 0.37996 -6.93889e-018 -1.04 0.413223 0.110723 -0.988 0.367013 0.0983409 -1.04 0.370486 0.2139 -0.988 0.329055 0.18998 -1.04 0.3025 0.3025 -0.988 0.268672 0.268672 -1.04 0.2139 0.370486 -0.988 0.18998 0.329055 -1.04 0.110723 0.413223 -0.988 0.0983409 0.367013 -1.04 2.60209e-018 0.4278 -0.988 2.60209e-018 0.37996 -1.04 -0.110723 0.413223 -0.988 -0.0983409 0.367013 -1.04 -0.2139 0.370486 -0.988 -0.18998 0.329055 -1.04 -0.3025 0.3025 -0.988 -0.268672 0.268672 -1.04 -0.370486 0.2139 -0.988 -0.329055 0.18998 -1.04 -0.413223 0.110723 -0.988 -0.367013 0.0983409 -1.04 -0.4278 -6.93889e-018 -0.988 -0.37996 -6.93889e-018 -1.04 -0.413223 -0.110723 -0.988 -0.367013 -0.0983409 -1.04 -0.370486 -0.2139 -0.988 -0.329055 -0.18998 -1.04 -0.3025 -0.3025 -0.988 -0.268672 -0.268672 -1.04 -0.2139 -0.370486 -0.988 -0.18998 -0.329055 -1.04 -0.110723 -0.413223 -0.988 -0.0983409 -0.367013 -1.04 0.358351 -0.206894 -1.02477 0.292592 -0.292592 -1.02477 -0.107096 -0.399689 -1.02477 -0.206894 -0.358351 -1.02477 0.206894 0.358351 -1.02477 0.292592 0.292592 -1.02477 -0.358351 0.206894 -1.02477 -0.292592 0.292592 -1.02477 0.206894 -0.358351 -1.02477 -0.292592 -0.292592 -1.02477 0.358351 0.206894 -1.02477 -0.206894 0.358351 -1.02477 0.107096 -0.399689 -1.02477 -0.358351 -0.206894 -1.02477 0.399689 0.107096 -1.02477 -0.107096 0.399689 -1.02477 2.60209e-018 -0.413788 -1.02477 -0.399688 -0.107096 -1.02477 0.413788 -6.93889e-018 -1.02477 2.60209e-018 0.413788 -1.02477 -0.413788 -6.93889e-018 -1.02477 0.399689 -0.107096 -1.02477 0.107096 0.399689 -1.02477 -0.399688 0.107096 -1.02477 2.60209e-018 -0.309437 -1.058 0.080088 -0.298893 -1.058 0.154718 -0.26798 -1.058 0.218805 -0.218805 -1.058 0.26798 -0.154718 -1.058 0.298893 -0.080088 -1.058 0.309437 -6.93889e-018 -1.058 0.298893 0.0800881 -1.058 0.26798 0.154718 -1.058 0.218805 0.218805 -1.058 0.154718 0.26798 -1.058 0.080088 0.298893 -1.058 2.60209e-018 0.309437 -1.058 -0.080088 0.298893 -1.058 -0.154718 0.26798 -1.058 -0.218805 0.218805 -1.058 -0.26798 0.154718 -1.058 -0.298893 0.0800881 -1.058 -0.309437 -6.93889e-018 -1.058 -0.298893 -0.080088 -1.058 -0.26798 -0.154718 -1.058 -0.218805 -0.218805 -1.058 -0.154718 -0.26798 -1.058 -0.080088 -0.298893 -1.058 2.60209e-018 -0.245966 -1.058 0.0636605 -0.237585 -1.058 0.122983 -0.213012 -1.058 0.173924 -0.173924 -1.058 0.213013 -0.122983 -1.058 0.237585 -0.0636605 -1.058 0.245966 -6.93889e-018 -1.058 0.237585 0.0636607 -1.058 0.213013 0.122983 -1.058 0.173924 0.173924 -1.058 0.122983 0.213013 -1.058 0.0636605 0.237585 -1.058 2.60209e-018 0.245966 -1.058 -0.0636605 0.237585 -1.058 -0.122983 0.213013 -1.058 -0.173924 0.173924 -1.058 -0.213013 0.122983 -1.058 -0.237585 0.0636607 -1.058 -0.245966 -6.93889e-018 -1.058 -0.237585 -0.0636605 -1.058 -0.213012 -0.122983 -1.058 -0.173924 -0.173924 -1.058 -0.122983 -0.213012 -1.058 -0.0636605 -0.237585 -1.058 2.60209e-018 -0.224809 -1.018 0.0581847 -0.217149 -1.018 0.112404 -0.19469 -1.018 0.158964 -0.158964 -1.018 0.19469 -0.112404 -1.018 0.217149 -0.0581847 -1.018 0.224809 -6.93889e-018 -1.018 0.217149 0.0581849 -1.018 0.19469 0.112404 -1.018 0.158964 0.158964 -1.018 0.112404 0.19469 -1.018 0.0581847 0.217149 -1.018 2.60209e-018 0.224809 -1.018 -0.0581846 0.217149 -1.018 -0.112404 0.19469 -1.018 -0.158964 0.158964 -1.018 -0.19469 0.112404 -1.018 -0.217149 0.0581849 -1.018 -0.224809 -6.93889e-018 -1.018 -0.217149 -0.0581847 -1.018 -0.19469 -0.112404 -1.018 -0.158964 -0.158964 -1.018 -0.112404 -0.19469 -1.018 -0.0581846 -0.217149 -1.018 2.60209e-018 -0.172102 -1.018 0.0445431 -0.166238 -1.018 0.0860509 -0.149045 -1.018 0.121694 -0.121694 -1.018 0.149045 -0.0860507 -1.018 0.166238 -0.0445431 -1.018 0.172102 -6.93889e-018 -1.018 0.166238 0.0445433 -1.018 0.149045 0.0860507 -1.018 0.121694 0.121694 -1.018 0.0860509 0.149045 -1.018 0.0445431 0.166238 -1.018 2.60209e-018 0.172102 -1.018 -0.044543 0.166238 -1.018 -0.0860509 0.149045 -1.018 -0.121694 0.121694 -1.018 -0.149045 0.0860508 -1.018 -0.166238 0.0445433 -1.018 -0.172102 -6.93889e-018 -1.018 -0.166238 -0.0445431 -1.018 -0.149045 -0.0860509 -1.018 -0.121694 -0.121694 -1.018 -0.0860509 -0.149045 -1.018 -0.0445431 -0.166238 -1.018 2.60209e-018 -6.93889e-018 -1.018 2.60209e-018 -6.93889e-018 -0.8 + + + + + + + + + + 0 0 1 0 0 -1 -0.680498 -0.718305 0.144776 -0.490482 -0.852418 0.181137 -0.660755 -0.660755 0.356096 -0.431349 -0.829064 0.355797 -0.528613 0.829348 0.180969 -0.431349 0.829064 0.355798 -0.29595 0.937904 0.180969 -0.202074 0.912455 0.355797 0.950319 -0.253147 0.181138 0.978178 0.0191014 0.206889 0.912455 -0.202073 0.355797 0.934449 0 0.356096 -0.962319 0.230176 0.144778 -0.902608 0.241853 0.356097 -0.856678 0.472547 0.206889 -0.809257 0.467225 0.356095 -0.0431182 0.982543 0.180969 0.212652 0.960223 0.180969 0.0438421 0.999038 0 0.300919 0.95365 0 0.0267338 -0.989103 0.144777 -0.234721 -0.949791 0.206889 -0.0438421 -0.999038 0 -0.300919 -0.95365 0 -0.0854417 -0.318873 0.943938 -0.0322467 -0.120346 0.992208 -0.165061 -0.285893 0.943938 -0.0622959 -0.1079 0.992208 0.174943 0.293668 0.939763 0.0783423 0.292377 0.953089 0.05756 0.110632 0.992193 0.0214771 0.0801535 0.996551 0.883964 1.57518e-007 0.467554 0.883965 1.66894e-007 0.467553 0.853845 -0.228787 0.467552 0.853846 -0.228786 0.467551 -0.883301 -0.0387621 0.467201 -0.883301 0.0387628 0.467201 -0.853846 0.228787 0.467551 -0.853846 0.228786 0.467551 -0.680498 -0.718305 -0.144776 -0.660755 -0.660755 -0.356096 -0.490482 -0.852418 -0.181137 -0.431349 -0.829064 -0.355797 -0.528613 0.829348 -0.180969 -0.29595 0.937904 -0.180969 -0.431349 0.829064 -0.355798 -0.202074 0.912455 -0.355797 0.950319 -0.253147 -0.181138 0.912455 -0.202073 -0.355797 0.978178 0.0191014 -0.206889 0.934449 0 -0.356096 -0.962319 0.230176 -0.144778 -0.856678 0.472547 -0.206889 -0.902608 0.241853 -0.356097 -0.809257 0.467225 -0.356095 -0.0431182 0.982543 -0.180969 0.212652 0.960223 -0.180969 0.0267338 -0.989103 -0.144777 -0.234721 -0.949791 -0.206889 -0.0854419 -0.318874 -0.943938 -0.165061 -0.285894 -0.943938 -0.0322469 -0.120347 -0.992208 -0.0622963 -0.1079 -0.992208 0.174943 0.293669 -0.939762 0.0575604 0.110633 -0.992193 0.0783426 0.292378 -0.953088 0.0214772 0.0801541 -0.996551 0.883964 1.57518e-007 -0.467554 0.853845 -0.228787 -0.467552 0.883965 1.66894e-007 -0.467553 0.853846 -0.228786 -0.467551 -0.883301 -0.0387621 -0.467201 -0.853846 0.228787 -0.467551 -0.883301 0.0387628 -0.467201 -0.853846 0.228786 -0.467551 -0.20527 -0.355537 0.911843 -0.290295 -0.290295 0.911843 -0.233431 -0.233431 0.943938 -0.220837 0.346474 0.911695 -0.161952 0.287686 0.943932 -0.106256 0.396551 0.911843 -0.0783424 0.292377 0.953089 0.396551 -0.106255 0.911843 0.41054 0 0.911843 0.34511 -0.092472 0.933996 0.302691 -6.85825e-009 0.953089 -0.355538 0.20527 0.911843 -0.396551 0.106255 0.911843 -0.285894 0.165061 0.943938 -0.318873 0.0854416 0.943938 0.45393 0.872466 0.180969 0.537487 0.843272 0 -0.537488 -0.843272 0 0 -0.330122 0.943938 0 -0.124592 0.992208 0 0.357285 0.933996 0 0.165992 0.986127 0.853845 0.228787 0.467552 0.853846 0.228787 0.467551 -0.843171 -0.266058 0.467199 -0.863236 -0.191172 0.4672 -0.20527 -0.355537 -0.911843 -0.290295 -0.290295 -0.911843 -0.233432 -0.233432 -0.943938 -0.220837 0.346474 -0.911695 -0.106256 0.396551 -0.911843 -0.161953 0.287687 -0.943932 -0.0783426 0.292378 -0.953088 0.396551 -0.106255 -0.911843 0.345111 -0.0924721 -0.933995 0.41054 0 -0.911843 0.302692 -6.23477e-009 -0.953088 -0.355538 0.20527 -0.911843 -0.285894 0.165061 -0.943938 -0.396551 0.106255 -0.911843 -0.318874 0.0854418 -0.943938 0.45393 0.872466 -0.180969 0 -0.330122 -0.943938 0 -0.124593 -0.992208 0 0.357285 -0.933995 0 0.165993 -0.986127 0.853845 0.228787 -0.467552 0.853846 0.228787 -0.467551 -0.843171 -0.266058 -0.467199 -0.863236 -0.191172 -0.4672 -0.718305 0.680498 0.144777 -0.660755 0.660756 0.356097 -0.837576 -0.505632 0.206889 -0.809257 -0.467225 0.356096 0.0409732 0.933665 0.355797 0.869955 -0.4714 0.144777 0.809256 -0.467225 0.356097 0.843221 0.517704 0.144777 0.937904 0.29595 0.180969 0.887113 0.461552 0 0.976344 0.216221 0 -0.948481 -0.281822 0.144778 -0.887113 -0.461552 0 -0.976344 -0.216222 0 0.233431 -0.233431 0.943938 0.0880997 -0.0880997 0.992208 0.165061 -0.285893 0.943938 0.062296 -0.1079 0.992208 -0.237299 0.252635 0.938011 -0.117374 0.117374 0.986127 -0.05756 0.110632 0.992193 0.625059 0.625059 0.46755 0.47522 0.745581 0.467199 0.625059 0.625058 0.467551 0.408081 0.784343 0.4672 -0.408082 -0.784343 0.4672 -0.475221 -0.74558 0.467199 -0.597179 -0.651998 0.4672 -0.651998 -0.59718 0.4672 -0.718305 0.680498 -0.144777 -0.660755 0.660756 -0.356097 -0.837576 -0.505632 -0.206889 -0.809257 -0.467225 -0.356096 0.0409732 0.933665 -0.355797 0.869955 -0.4714 -0.144777 0.809256 -0.467225 -0.356097 0.843221 0.517704 -0.144777 0.937904 0.29595 -0.180969 -0.948481 -0.281822 -0.144778 0.233432 -0.233432 -0.943938 0.165061 -0.285894 -0.943938 0.0881002 -0.0881003 -0.992208 0.0622963 -0.1079 -0.992208 -0.237299 0.252635 -0.938011 -0.117375 0.117375 -0.986127 -0.0575604 0.110632 -0.992193 0.625059 0.625059 -0.46755 0.625059 0.625058 -0.467551 0.47522 0.745581 -0.467199 0.408081 0.784343 -0.4672 -0.408082 -0.784343 -0.4672 -0.597179 -0.651998 -0.4672 -0.475221 -0.74558 -0.467199 -0.651998 -0.59718 -0.4672 0.725252 -0.664274 0.180969 0.631229 -0.689173 0.355796 0.505632 -0.837576 0.206888 0.467225 -0.809257 0.356094 0.809256 0.467225 0.356097 0.912455 0.202073 0.355797 -0.902608 -0.241853 0.356097 -0.978178 -0.0191015 0.206889 -0.934449 0 0.356096 0.281227 0.891246 0.355797 0.502316 0.788091 0.355797 0.678169 0.705183 0.206889 0.737427 0.675426 0 -0.737428 -0.675426 0 0.0854417 -0.318873 0.943938 0.0322467 -0.120346 0.992208 -0.0214771 0.0801535 0.996551 0.745581 0.47522 0.4672 0.784343 0.408081 0.4672 -0.74558 -0.475222 0.467199 -0.784343 -0.408082 0.467199 0.725252 -0.664274 -0.180969 0.505632 -0.837576 -0.206888 0.631229 -0.689173 -0.355796 0.467225 -0.809257 -0.356094 0.809256 0.467225 -0.356097 0.912455 0.202073 -0.355797 -0.978178 -0.0191015 -0.206889 -0.902608 -0.241853 -0.356097 -0.934449 0 -0.356096 0.281227 0.891246 -0.355797 0.502316 0.788091 -0.355797 0.678169 0.705183 -0.206889 0.0854419 -0.318874 -0.943938 0.0322469 -0.120347 -0.992208 -0.0214773 0.080154 -0.996551 0.745581 0.47522 -0.4672 0.784343 0.408081 -0.4672 -0.74558 -0.475222 -0.467199 -0.784343 -0.408082 -0.467199 0.205269 -0.355537 0.911843 0.290296 -0.290295 0.911843 0.396551 0.106255 0.911843 0.364487 0.189637 0.911695 0.32894 0.0929748 0.939763 0.278621 0.177589 0.943839 -0.410538 0 0.911843 -0.396551 -0.106256 0.911843 -0.330122 -5.61452e-009 0.943938 -0.318873 -0.0854417 0.943938 0.20527 0.355537 0.911843 0.106256 0.396551 0.911843 0.205269 -0.355537 -0.911843 0.290296 -0.290295 -0.911843 0.396551 0.106255 -0.911843 0.328941 0.092975 -0.939762 0.364487 0.189637 -0.911695 0.278621 0.177589 -0.943839 -0.410538 0 -0.911843 -0.330122 -4.67877e-009 -0.943938 -0.396551 -0.106256 -0.911843 -0.318874 -0.0854419 -0.943938 0.20527 0.355537 -0.911843 0.106256 0.396551 -0.911843 -0.302985 0.277511 0.911695 -0.355538 -0.20527 0.911843 -0.285894 -0.165061 0.943938 0 0.41054 0.911843 0.364487 -0.189637 0.911695 0.271857 -0.1659 0.94793 0.999039 -0.0438416 0 -0.999038 0.0438419 0 0.0862879 -0.0498184 0.995024 -0.0718636 0.0414905 0.996551 0.266058 0.843171 0.4672 0.191173 0.863236 0.4672 -0.191174 -0.863236 0.4672 -0.266058 -0.843171 0.4672 -0.302985 0.277511 -0.911695 -0.355538 -0.20527 -0.911843 -0.285894 -0.165061 -0.943938 0 0.41054 -0.911843 0.364487 -0.189637 -0.911695 0.271857 -0.165901 -0.94793 0.0862884 -0.0498187 -0.995024 -0.0718641 0.0414908 -0.996551 0.266058 0.843171 -0.4672 0.191173 0.863236 -0.4672 -0.191174 -0.863236 -0.4672 -0.266058 -0.843171 -0.4672 0.660755 0.660755 0.356097 0.255928 -0.949574 0.181138 0.281227 -0.891246 0.355797 0.95365 -0.300918 0 -0.95365 0.300919 0 0.137522 -0.0368489 0.989813 -0.137522 0.0368489 0.989813 0.0387627 0.883301 0.467201 -0.0387629 0.883301 0.4672 0.0387632 -0.883301 0.4672 -0.0387629 -0.883301 0.4672 0.660755 0.660755 -0.356097 0.255928 -0.949574 -0.181138 0.281227 -0.891246 -0.355797 0.137523 -0.0368491 -0.989813 -0.137523 0.0368491 -0.989813 0.0387627 0.883301 -0.467201 -0.0387629 0.883301 -0.4672 0.0387632 -0.883301 -0.4672 -0.0387629 -0.883301 -0.4672 0.290295 0.290296 0.911843 0.233431 0.233431 0.943938 0.106255 -0.396551 0.911843 0.843271 -0.537488 0 -0.843272 0.537488 0 0.124592 -1.22056e-008 0.992208 -0.124592 -1.31444e-008 0.992208 -0.191173 0.863236 0.4672 -0.266057 0.843172 0.467199 0.266058 -0.843171 0.467201 0.191173 -0.863236 0.467201 0.290295 0.290296 -0.911843 0.233432 0.233432 -0.943938 0.106255 -0.396551 -0.911843 0.124593 -1.22056e-008 -0.992208 -0.124593 -1.22056e-008 -0.992208 -0.191173 0.863236 -0.4672 -0.266057 0.843172 -0.467199 0.266058 -0.843171 -0.467201 0.191173 -0.863236 -0.467201 -0.241853 -0.902609 0.356097 0 -0.934449 0.356097 0.675426 -0.737428 0 -0.675426 0.737428 0 0.104345 0.0231083 0.994273 -0.120346 -0.0322467 0.992208 -0.408081 0.784344 0.467199 -0.475221 0.745581 0.467199 0.441983 -0.765537 0.467552 0.441983 -0.765537 0.467552 -0.241853 -0.902609 -0.356097 0 -0.934449 -0.356097 0.104346 0.0231084 -0.994273 -0.120347 -0.0322469 -0.992208 -0.408081 0.784344 -0.467199 -0.475221 0.745581 -0.467199 0.441983 -0.765537 -0.467552 0.441983 -0.765537 -0.467552 -0.106255 -0.396551 0.911843 0 -0.410539 0.911843 0.461551 -0.887114 0 -0.461551 0.887114 0 0.110632 0.0575601 0.992193 -0.1079 -0.0622958 0.992208 -0.597179 0.651999 0.467199 -0.651998 0.597179 0.467199 0.597179 -0.651998 0.4672 0.651998 -0.597179 0.4672 -0.106255 -0.396551 -0.911843 0 -0.410539 -0.911843 0.110632 0.0575604 -0.992193 -0.1079 -0.0622962 -0.992208 -0.597179 0.651999 -0.467199 -0.651998 0.597179 -0.467199 0.597179 -0.651998 -0.4672 0.651998 -0.597179 -0.4672 0.216222 -0.976344 0 -0.216222 0.976344 0 0.117374 0.117374 0.986127 -0.0880997 -0.0880997 0.992208 -0.74558 0.475221 0.467199 -0.784343 0.408082 0.467199 0.74558 -0.475221 0.4672 0.784343 -0.408081 0.4672 0.117375 0.117375 -0.986127 -0.0881002 -0.0881002 -0.992208 -0.74558 0.475221 -0.467199 -0.784343 0.408082 -0.467199 0.74558 -0.475221 -0.4672 0.784343 -0.408081 -0.4672 + + + + + + + + + + 0.711914 0.879754 0.755219 0.840549 0.703284 0.867173 0.698147 0.852813 0.696978 0.837605 0.699712 0.822601 0.706295 0.808857 0.716206 0.797285 0.72872 0.788605 0.743053 0.783468 0.758223 0.782207 0.773197 0.784904 0.786932 0.791449 0.798514 0.801316 0.807147 0.813847 0.812248 0.828184 0.813474 0.843358 0.81073 0.858334 0.804197 0.872105 0.794375 0.883768 0.781842 0.89244 0.767511 0.897632 0.752302 0.89887 0.73728 0.896197 0.723511 0.889651 0.71878 0.545912 0.7 0.616 0.73628 0.553161 0.751308 0.564692 0.762839 0.57972 0.770088 0.59722 0.77256 0.616 0.770088 0.63478 0.762839 0.65228 0.751308 0.667308 0.73628 0.678839 0.71878 0.686088 0.7 0.68856 0.68122 0.686088 0.66372 0.678839 0.648692 0.667308 0.637161 0.65228 0.629912 0.63478 0.62744 0.616 0.629912 0.59722 0.637161 0.57972 0.648692 0.564692 0.66372 0.553161 0.68122 0.545912 0.7 0.54344 0.936453 0.129068 0.936453 0.0895202 0.924343 0.129068 0.924343 0.0895202 0.936453 0.405904 0.924343 0.405904 0.936453 0.445452 0.924343 0.445452 0.936453 0.761836 0.936453 0.722288 0.924343 0.761836 0.924343 0.722288 0.936453 0.28726 0.924343 0.28726 0.936453 0.326808 0.924343 0.326808 0.936453 0.485 0.936453 0.524548 0.993657 0.485 0.993657 0.524548 0.936453 0.0104244 0.936453 0.0499725 0.993657 0.0104244 0.993657 0.0499725 0.652913 0.932938 0.671683 0.916088 0.632496 0.903149 0.654953 0.891806 0.877571 0.777565 0.857187 0.748098 0.855215 0.789057 0.838555 0.76497 0.674417 0.881931 0.687888 0.901481 0.835835 0.799021 0.82243 0.779579 0.679266 0.791266 0.691342 0.799104 0.694559 0.773196 0.704319 0.784072 0.831469 0.889507 0.819151 0.881685 0.816116 0.907514 0.806491 0.897012 0.831317 0.844238 0.827747 0.863797 0.682642 0.817053 0.67923 0.836675 0.621059 0.908889 0.608038 0.871699 0.620586 0.869118 0.762886 0.690356 0.76225 0.70312 0.801414 0.697383 0.797492 0.70957 0.856522 0.951554 0.881756 0.921569 0.847864 0.942144 0.870986 0.914717 0.686991 0.706646 0.654746 0.728832 0.692792 0.718028 0.663272 0.738337 0.936453 0.564096 0.993657 0.564096 0.993657 0.0895202 0.680417 0.956429 0.694103 0.935228 0.829893 0.724875 0.816252 0.746002 0.705986 0.916835 0.80441 0.764335 0.6691 0.812627 0.841538 0.868086 0.829703 0.824426 0.680567 0.856555 0.936453 0.366356 0.924343 0.366356 0.936453 0.168616 0.924343 0.168616 0.924343 0.485 0.936453 0.801384 0.924343 0.801384 0.936453 0.643192 0.936453 0.68274 0.993657 0.643192 0.993657 0.68274 0.936453 0.208164 0.993657 0.168616 0.993657 0.208164 0.784611 0.975009 0.77911 0.950425 0.748695 0.978165 0.749789 0.95303 0.726541 0.706006 0.731791 0.730581 0.760978 0.728223 0.750776 0.931231 0.774408 0.929134 0.736351 0.751919 0.759873 0.749982 0.666601 0.859519 0.687427 0.875253 0.823052 0.805699 0.843754 0.821266 0.811788 0.789334 0.796646 0.776451 0.69859 0.891724 0.71377 0.904684 0.936453 0.840932 0.924343 0.840932 0.936453 0.88048 0.924343 0.88048 0.924343 0.643192 0.924343 0.68274 0.924343 0.208164 0.936453 0.247712 0.924343 0.247712 0.924343 0.524548 0.924343 0.564096 0.936453 0.603644 0.993657 0.603644 0.993657 0.129068 0.713147 0.971815 0.720784 0.947758 0.789777 0.733511 0.727447 0.92694 0.783081 0.754255 0.664676 0.835896 0.84572 0.844807 0.748174 0.99095 0.787427 0.987505 0.898397 0.886124 0.905341 0.847603 0.886211 0.882263 0.892587 0.847007 0.629295 0.75859 0.612357 0.79393 0.639976 0.765589 0.624503 0.797947 0.888941 0.771731 0.866675 0.739512 0.723865 0.693523 0.605093 0.832494 0.617848 0.833249 0.836821 0.714147 0.824367 0.97405 0.818425 0.962735 0.993657 0.722288 0.993657 0.247712 0.806791 0.940466 0.7042 0.740416 0.796743 0.921176 0.714067 0.759797 0.778709 0.76781 0.731794 0.913333 0.924343 0.603644 0.936453 0.920028 0.924343 0.920028 0.993657 0.761836 0.993657 0.28726 0.830845 0.92362 0.680043 0.75703 0.759102 0.764361 0.751455 0.916648 0.902121 0.808596 0.889642 0.811299 0.709276 0.98406 0.993657 0.801384 0.993657 0.326808 0.849832 0.901229 0.660996 0.779321 0.739278 0.766017 0.771332 0.915195 0.924343 0.0499725 0.924343 0.0104244 0.993657 0.840932 0.993657 0.366356 0.862256 0.874661 0.648407 0.805826 0.720565 0.772701 0.790021 0.90823 0.643351 0.941502 0.673458 0.967206 0.993657 0.88048 0.993657 0.405904 0.867481 0.845827 0.642919 0.834681 0.936453 0.959576 0.924343 0.959576 0.993657 0.920028 0.993657 0.445452 0.865081 0.816633 0.645256 0.864004 0.993657 0.959576 + + + + + + + + + + + + + + +

191 0 0 192 0 1 190 0 2 190 0 2 192 0 1 189 0 3 189 0 3 192 0 1 188 0 4 188 0 4 192 0 1 187 0 5 187 0 5 192 0 1 186 0 6 186 0 6 192 0 1 185 0 7 185 0 7 192 0 1 184 0 8 184 0 8 192 0 1 183 0 9 183 0 9 192 0 1 182 0 10 182 0 10 192 0 1 181 0 11 181 0 11 192 0 1 180 0 12 180 0 12 192 0 1 179 0 13 179 0 13 192 0 1 178 0 14 178 0 14 192 0 1 177 0 15 177 0 15 192 0 1 176 0 16 176 0 16 192 0 1 175 0 17 175 0 17 192 0 1 174 0 18 174 0 18 192 0 1 173 0 19 173 0 19 192 0 1 172 0 20 172 0 20 192 0 1 171 0 21 171 0 21 192 0 1 170 0 22 170 0 22 192 0 1 169 0 23 169 0 23 192 0 1 168 0 24 168 0 24 192 0 1 191 0 0 7 1 25 193 1 26 8 1 27 8 1 27 193 1 26 9 1 28 9 1 28 193 1 26 10 1 29 10 1 29 193 1 26 11 1 30 11 1 30 193 1 26 12 1 31 12 1 31 193 1 26 13 1 32 13 1 32 193 1 26 14 1 33 14 1 33 193 1 26 15 1 34 15 1 34 193 1 26 16 1 35 16 1 35 193 1 26 17 1 36 17 1 36 193 1 26 18 1 37 18 1 37 193 1 26 19 1 38 19 1 38 193 1 26 20 1 39 20 1 39 193 1 26 21 1 40 21 1 40 193 1 26 22 1 41 22 1 41 193 1 26 23 1 42 23 1 42 193 1 26 0 1 43 0 1 43 193 1 26 1 1 44 1 1 44 193 1 26 2 1 45 2 1 45 193 1 26 3 1 46 3 1 46 193 1 26 4 1 47 4 1 47 193 1 26 5 1 48 5 1 48 193 1 26 6 1 49 6 1 49 193 1 26 7 1 25 385 1 0 384 1 2 386 1 1 384 1 2 383 1 3 386 1 1 383 1 3 382 1 4 386 1 1 382 1 4 381 1 5 386 1 1 381 1 5 380 1 6 386 1 1 380 1 6 379 1 7 386 1 1 379 1 7 378 1 8 386 1 1 378 1 8 377 1 9 386 1 1 377 1 9 376 1 10 386 1 1 376 1 10 375 1 11 386 1 1 375 1 11 374 1 12 386 1 1 374 1 12 373 1 13 386 1 1 373 1 13 372 1 14 386 1 1 372 1 14 371 1 15 386 1 1 371 1 15 370 1 16 386 1 1 370 1 16 369 1 17 386 1 1 369 1 17 368 1 18 386 1 1 368 1 18 367 1 19 386 1 1 367 1 19 366 1 20 386 1 1 366 1 20 365 1 21 386 1 1 365 1 21 364 1 22 386 1 1 364 1 22 363 1 23 386 1 1 363 1 23 362 1 24 386 1 1 362 1 24 385 1 0 386 1 1 201 0 25 202 0 27 387 0 26 202 0 27 203 0 28 387 0 26 203 0 28 204 0 29 387 0 26 204 0 29 205 0 30 387 0 26 205 0 30 206 0 31 387 0 26 206 0 31 207 0 32 387 0 26 207 0 32 208 0 33 387 0 26 208 0 33 209 0 34 387 0 26 209 0 34 210 0 35 387 0 26 210 0 35 211 0 36 387 0 26 211 0 36 212 0 37 387 0 26 212 0 37 213 0 38 387 0 26 213 0 38 214 0 39 387 0 26 214 0 39 215 0 40 387 0 26 215 0 40 216 0 41 387 0 26 216 0 41 217 0 42 387 0 26 217 0 42 194 0 43 387 0 26 194 0 43 195 0 44 387 0 26 195 0 44 196 0 45 387 0 26 196 0 45 197 0 46 387 0 26 197 0 46 198 0 47 387 0 26 198 0 47 199 0 48 387 0 26 199 0 48 200 0 49 387 0 26 200 0 49 201 0 25 387 0 26 66 2 50 68 3 51 81 4 52 75 5 53 81 4 52 68 3 51 52 6 54 83 7 55 50 8 56 87 9 57 50 8 56 83 7 55 34 10 58 36 11 59 93 12 60 90 13 61 93 12 60 36 11 59 58 14 62 95 15 63 56 16 64 78 17 65 56 16 64 95 15 63 48 18 66 46 19 67 12 20 68 11 21 69 12 20 68 46 19 67 24 22 70 70 23 71 0 24 72 23 25 73 0 24 72 70 23 71 71 26 74 119 27 75 69 28 76 118 29 77 69 28 76 119 27 75 45 30 78 47 31 79 106 32 80 107 33 81 106 32 80 47 31 79 118 29 77 119 27 75 142 0 82 143 0 83 142 0 82 119 27 75 106 32 80 107 33 81 130 0 84 131 0 85 130 0 84 107 33 81 138 34 86 162 35 87 137 36 88 161 37 89 137 36 88 162 35 87 126 38 90 150 39 91 125 40 92 149 41 93 125 40 92 150 39 91 152 0 94 176 0 16 151 0 95 175 0 17 151 0 95 176 0 16 163 0 96 164 0 97 187 0 5 188 0 4 187 0 5 164 0 97 260 42 50 275 43 52 262 44 51 269 45 53 262 44 51 275 43 52 246 46 54 244 47 56 277 48 55 281 49 57 277 48 55 244 47 56 228 50 58 287 51 60 230 52 59 284 53 61 230 52 59 287 51 60 252 54 62 250 55 64 289 56 63 272 57 65 289 56 63 250 55 64 242 58 66 206 20 68 240 59 67 205 21 69 240 59 67 206 20 68 218 60 70 194 24 72 264 61 71 217 25 73 264 61 71 194 24 72 265 62 74 263 63 76 313 64 75 312 65 77 313 64 75 263 63 76 239 66 78 300 67 80 241 68 79 301 69 81 241 68 79 300 67 80 312 65 77 336 1 82 313 64 75 337 1 83 313 64 75 336 1 82 300 67 80 324 1 84 301 69 81 325 1 85 301 69 81 324 1 84 332 70 86 331 71 88 356 72 87 355 73 89 356 72 87 331 71 88 320 74 90 319 75 92 344 76 91 343 77 93 344 76 91 319 75 92 346 1 94 345 1 95 370 1 16 369 1 17 370 1 16 345 1 95 357 1 96 381 1 5 358 1 97 382 1 4 358 1 97 381 1 5 75 78 98 69 28 76 81 79 99 67 80 100 81 79 99 69 28 76 83 81 101 53 82 102 87 83 103 51 84 104 87 83 103 53 82 102 93 85 105 90 86 106 35 87 107 37 88 108 35 87 107 90 86 106 78 89 109 95 90 110 57 91 111 59 92 112 57 91 111 95 90 110 46 19 67 44 93 113 11 21 69 10 94 114 11 21 69 44 93 113 70 23 71 68 3 51 23 25 73 22 95 115 23 25 73 68 3 51 71 26 74 25 96 116 119 27 75 96 97 117 119 27 75 25 96 116 49 98 118 108 99 119 47 31 79 107 33 81 47 31 79 108 99 119 96 97 117 120 0 120 119 27 75 143 0 83 119 27 75 120 0 120 108 99 119 132 0 121 107 33 81 131 0 85 107 33 81 132 0 121 138 34 86 139 100 122 162 35 87 163 101 96 162 35 87 139 100 122 127 102 123 151 103 95 126 38 90 150 39 91 126 38 90 151 103 95 152 0 94 153 0 124 176 0 16 177 0 15 176 0 16 153 0 124 165 0 125 189 0 3 164 0 97 188 0 4 164 0 97 189 0 3 269 104 98 275 105 99 263 63 76 261 106 100 263 63 76 275 105 99 277 107 101 281 108 103 247 109 102 245 110 104 247 109 102 281 108 103 287 111 105 229 112 107 284 113 106 231 114 108 284 113 106 229 112 107 272 115 109 251 116 111 289 117 110 253 118 112 289 117 110 251 116 111 240 59 67 205 21 69 238 119 113 204 94 114 238 119 113 205 21 69 264 61 71 217 25 73 262 44 51 216 95 115 262 44 51 217 25 73 265 62 74 313 64 75 219 120 116 290 121 117 219 120 116 313 64 75 243 122 118 241 68 79 302 123 119 301 69 81 302 123 119 241 68 79 290 121 117 313 64 75 314 1 120 337 1 83 314 1 120 313 64 75 302 123 119 301 69 81 326 1 121 325 1 85 326 1 121 301 69 81 332 70 86 356 72 87 333 124 122 357 125 96 333 124 122 356 72 87 321 126 123 320 74 90 345 127 95 344 76 91 345 127 95 320 74 90 346 1 94 370 1 16 347 1 124 371 1 15 347 1 124 370 1 16 359 1 125 358 1 97 383 1 3 382 1 4 383 1 3 358 1 97 54 128 126 56 16 64 79 129 127 78 17 65 79 129 127 56 16 64 66 2 50 81 4 52 64 130 128 85 131 129 64 130 128 81 4 52 50 8 56 87 9 57 48 18 66 91 132 130 48 18 66 87 9 57 32 133 131 34 10 58 72 134 132 93 12 60 72 134 132 34 10 58 40 135 133 38 136 134 8 137 135 7 138 136 8 137 135 38 136 134 64 130 128 62 139 137 20 140 138 19 141 139 20 140 138 62 139 137 31 142 140 99 143 141 29 144 142 98 145 143 29 144 142 99 143 141 55 146 144 111 147 145 53 82 102 110 148 146 53 82 102 111 147 145 98 145 143 99 143 141 122 0 147 123 0 148 122 0 147 99 143 141 111 147 145 135 0 149 110 148 146 134 0 150 110 148 146 135 0 149 141 149 151 142 150 82 165 151 125 166 152 152 165 151 125 142 150 82 130 153 84 154 154 153 129 155 154 153 156 124 129 155 154 154 154 153 155 0 155 156 0 156 179 0 13 180 0 12 179 0 13 156 0 156 167 0 157 144 0 158 191 0 0 168 0 24 191 0 0 144 0 158 248 157 126 273 158 127 250 55 64 272 57 65 250 55 64 273 158 127 260 42 50 258 159 128 275 43 52 279 160 129 275 43 52 258 159 128 244 47 56 242 58 66 281 49 57 285 161 130 281 49 57 242 58 66 226 162 131 266 163 132 228 50 58 287 51 60 228 50 58 266 163 132 234 164 133 202 137 135 232 165 134 201 138 136 232 165 134 202 137 135 258 159 128 214 140 138 256 166 137 213 141 139 256 166 137 214 140 138 225 167 140 223 168 142 293 169 141 292 170 143 293 169 141 223 168 142 249 171 144 247 109 102 305 172 145 304 173 146 305 172 145 247 109 102 292 170 143 316 1 147 293 169 141 317 1 148 293 169 141 316 1 147 305 172 145 304 173 146 329 1 149 328 1 150 329 1 149 304 173 146 335 174 151 359 175 125 336 176 82 360 177 152 336 176 82 359 175 125 324 178 84 323 179 154 348 180 153 347 181 124 348 180 153 323 179 154 349 1 155 373 1 13 350 1 156 374 1 12 350 1 156 373 1 13 361 1 157 385 1 0 338 1 158 362 1 24 338 1 158 385 1 0 30 182 159 73 183 160 28 184 161 80 185 162 28 184 161 73 183 160 40 135 133 82 186 163 38 136 134 86 187 164 38 136 134 82 186 163 62 139 137 89 188 165 60 189 166 92 190 167 60 189 166 89 188 165 46 19 67 94 191 168 44 93 113 76 192 169 44 93 113 94 191 168 44 93 113 42 193 170 10 94 114 9 194 171 10 94 114 42 193 170 68 3 51 66 2 50 22 95 115 21 195 172 22 95 115 66 2 50 27 196 173 97 197 174 25 96 116 96 97 117 25 96 116 97 197 174 49 98 118 51 84 104 108 99 119 109 198 175 108 99 119 51 84 104 96 97 117 97 197 174 120 0 120 121 0 176 120 0 120 97 197 174 108 99 119 109 198 175 132 0 121 133 0 177 132 0 121 109 198 175 140 199 178 164 200 97 139 100 122 163 101 96 139 100 122 164 200 97 128 201 179 152 202 94 127 102 123 151 103 95 127 102 123 152 202 94 153 0 124 154 0 153 177 0 15 178 0 14 177 0 15 154 0 153 165 0 125 166 0 152 189 0 3 190 0 2 189 0 3 166 0 152 224 203 159 222 204 161 267 205 160 274 206 162 267 205 160 222 204 161 234 164 133 232 165 134 276 207 163 280 208 164 276 207 163 232 165 134 256 166 137 254 209 166 283 210 165 286 211 167 283 210 165 254 209 166 240 59 67 238 119 113 288 212 168 270 213 169 288 212 168 238 119 113 238 119 113 204 94 114 236 214 170 203 194 171 236 214 170 204 94 114 262 44 51 216 95 115 260 42 50 215 195 172 260 42 50 216 95 115 221 215 173 219 120 116 291 216 174 290 121 117 291 216 174 219 120 116 243 122 118 302 123 119 245 110 104 303 217 175 245 110 104 302 123 119 290 121 117 314 1 120 291 216 174 315 1 176 291 216 174 314 1 120 302 123 119 326 1 121 303 217 175 327 1 177 303 217 175 326 1 121 334 218 178 333 124 122 358 219 97 357 125 96 358 219 97 333 124 122 322 220 179 321 126 123 346 221 94 345 127 95 346 221 94 321 126 123 347 1 124 371 1 15 348 1 153 372 1 14 348 1 153 371 1 15 359 1 125 383 1 3 360 1 152 384 1 2 360 1 152 383 1 3 80 222 180 73 223 181 29 144 142 31 142 140 29 144 142 73 223 181 86 224 182 82 225 183 39 226 184 41 227 185 39 226 184 82 225 183 92 228 186 89 229 187 61 230 188 63 231 189 61 230 188 89 229 187 76 232 190 94 233 191 45 30 78 47 31 79 45 30 78 94 233 191 42 193 170 40 135 133 9 194 171 8 137 135 9 194 171 40 135 133 66 2 50 64 130 128 21 195 172 20 140 138 21 195 172 64 130 128 27 196 173 29 144 142 97 197 174 98 145 143 97 197 174 29 144 142 53 82 102 110 148 146 51 84 104 109 198 175 51 84 104 110 148 146 98 145 143 122 0 147 97 197 174 121 0 176 97 197 174 122 0 147 110 148 146 134 0 150 109 198 175 133 0 177 109 198 175 134 0 150 141 149 151 165 151 125 140 199 178 164 200 97 140 199 178 165 151 125 129 155 154 153 156 124 128 201 179 152 202 94 128 201 179 153 156 124 155 0 155 179 0 13 154 0 153 178 0 14 154 0 153 179 0 13 167 0 157 191 0 0 166 0 152 190 0 2 166 0 152 191 0 0 274 234 180 223 168 142 267 235 181 225 167 140 267 235 181 223 168 142 280 236 182 233 237 184 276 238 183 235 239 185 276 238 183 233 237 184 286 240 186 255 241 188 283 242 187 257 243 189 283 242 187 255 241 188 270 244 190 239 66 78 288 245 191 241 68 79 288 245 191 239 66 78 236 214 170 203 194 171 234 164 133 202 137 135 234 164 133 203 194 171 260 42 50 215 195 172 258 159 128 214 140 138 258 159 128 215 195 172 221 215 173 291 216 174 223 168 142 292 170 143 223 168 142 291 216 174 247 109 102 245 110 104 304 173 146 303 217 175 304 173 146 245 110 104 292 170 143 291 216 174 316 1 147 315 1 176 316 1 147 291 216 174 304 173 146 303 217 175 328 1 150 327 1 177 328 1 150 303 217 175 335 174 151 334 218 178 359 175 125 358 219 97 359 175 125 334 218 178 323 179 154 322 220 179 347 181 124 346 221 94 347 181 124 322 220 179 349 1 155 348 1 153 373 1 13 372 1 14 373 1 13 348 1 153 361 1 157 360 1 152 385 1 0 384 1 2 385 1 0 360 1 152 78 89 109 57 91 111 79 246 192 55 146 144 79 246 192 57 91 111 85 247 193 81 79 99 65 248 194 67 80 100 65 248 194 81 79 99 91 249 195 87 83 103 49 98 118 51 84 104 49 98 118 87 83 103 93 85 105 35 87 107 72 250 196 33 251 197 72 250 196 35 87 107 38 136 134 36 11 59 7 138 136 6 252 198 7 138 136 36 11 59 62 139 137 60 189 166 19 141 139 18 253 199 19 141 139 60 189 166 31 142 140 33 251 197 99 143 141 100 254 200 99 143 141 33 251 197 55 146 144 57 91 111 111 147 145 112 255 201 111 147 145 57 91 111 100 254 200 124 0 202 99 143 141 123 0 148 99 143 141 124 0 202 111 147 145 112 255 201 135 0 149 136 0 203 135 0 149 112 255 201 142 150 82 143 256 83 166 152 152 167 257 157 166 152 152 143 256 83 131 258 85 155 259 155 130 153 84 154 154 153 130 153 84 155 259 155 157 0 204 181 0 11 156 0 156 180 0 12 156 0 156 181 0 11 145 0 205 169 0 23 144 0 158 168 0 24 144 0 158 169 0 23 272 115 109 273 260 192 251 116 111 249 171 144 251 116 111 273 260 192 279 261 193 259 262 194 275 105 99 261 106 100 275 105 99 259 262 194 285 263 195 243 122 118 281 108 103 245 110 104 281 108 103 243 122 118 287 111 105 266 264 196 229 112 107 227 265 197 229 112 107 266 264 196 232 165 134 201 138 136 230 52 59 200 252 198 230 52 59 201 138 136 256 166 137 213 141 139 254 209 166 212 253 199 254 209 166 213 141 139 225 167 140 293 169 141 227 265 197 294 266 200 227 265 197 293 169 141 249 171 144 305 172 145 251 116 111 306 267 201 251 116 111 305 172 145 294 266 200 293 169 141 318 1 202 317 1 148 318 1 202 293 169 141 305 172 145 329 1 149 306 267 201 330 1 203 306 267 201 329 1 149 336 176 82 360 177 152 337 268 83 361 269 157 337 268 83 360 177 152 325 270 85 324 178 84 349 271 155 348 180 153 349 271 155 324 178 84 351 1 204 350 1 156 375 1 11 374 1 12 375 1 11 350 1 156 339 1 205 338 1 158 363 1 23 362 1 24 363 1 23 338 1 158 44 93 113 76 192 169 42 193 170 77 272 206 42 193 170 76 192 169 26 273 207 28 184 161 84 274 208 80 185 162 84 274 208 28 184 161 38 136 134 86 187 164 36 11 59 90 13 61 36 11 59 86 187 164 58 14 62 60 189 166 95 15 63 92 190 167 95 15 63 60 189 166 36 11 59 34 10 58 6 252 198 5 275 209 6 252 198 34 10 58 60 189 166 58 14 62 18 253 199 17 276 210 18 253 199 58 14 62 35 87 107 101 277 211 33 251 197 100 254 200 33 251 197 101 277 211 59 92 112 113 278 212 57 91 111 112 255 201 57 91 111 113 278 212 101 277 211 125 0 92 100 254 200 124 0 202 100 254 200 125 0 92 113 278 212 137 0 88 112 255 201 136 0 203 112 255 201 137 0 88 143 256 83 120 279 120 167 257 157 144 280 158 167 257 157 120 279 120 132 281 121 156 282 156 131 258 85 155 259 155 131 258 85 156 282 156 157 0 204 158 0 213 181 0 11 182 0 10 181 0 11 158 0 213 145 0 205 146 0 214 169 0 23 170 0 22 169 0 23 146 0 214 238 119 113 236 214 170 270 213 169 271 283 206 270 213 169 236 214 170 220 284 207 278 285 208 222 204 161 274 206 162 222 204 161 278 285 208 232 165 134 230 52 59 280 208 164 284 53 61 280 208 164 230 52 59 252 54 62 289 56 63 254 209 166 286 211 167 254 209 166 289 56 63 230 52 59 200 252 198 228 50 58 199 275 209 228 50 58 200 252 198 254 209 166 212 253 199 252 54 62 211 276 210 252 54 62 212 253 199 229 112 107 227 265 197 295 286 211 294 266 200 295 286 211 227 265 197 253 118 112 251 116 111 307 287 212 306 267 201 307 287 212 251 116 111 295 286 211 294 266 200 319 1 92 318 1 202 319 1 92 294 266 200 307 287 212 306 267 201 331 1 88 330 1 203 331 1 88 306 267 201 337 268 83 361 269 157 314 288 120 338 289 158 314 288 120 361 269 157 326 290 121 325 270 85 350 291 156 349 271 155 350 291 156 325 270 85 351 1 204 375 1 11 352 1 213 376 1 10 352 1 213 375 1 11 339 1 205 363 1 23 340 1 214 364 1 22 340 1 214 363 1 23 76 232 190 45 30 78 77 292 215 43 293 216 77 292 215 45 30 78 80 222 180 29 144 142 84 294 217 27 196 173 84 294 217 29 144 142 86 224 182 39 226 184 90 86 106 37 88 108 90 86 106 39 226 184 92 228 186 61 230 188 95 90 110 59 92 112 95 90 110 61 230 188 34 10 58 32 133 131 5 275 209 4 295 218 5 275 209 32 133 131 58 14 62 56 16 64 17 276 210 16 296 219 17 276 210 56 16 64 35 87 107 37 88 108 101 277 211 102 297 220 101 277 211 37 88 108 59 92 112 61 230 188 113 278 212 114 298 221 113 278 212 61 230 188 102 297 220 126 0 90 101 277 211 125 0 92 101 277 211 126 0 90 114 298 221 138 0 86 113 278 212 137 0 88 113 278 212 138 0 86 120 279 120 121 299 176 144 280 158 145 300 205 144 280 158 121 299 176 133 301 177 157 302 204 132 281 121 156 282 156 132 281 121 157 302 204 159 0 222 183 0 9 158 0 213 182 0 10 158 0 213 183 0 9 147 0 223 171 0 21 146 0 214 170 0 22 146 0 214 171 0 21 270 244 190 271 303 215 239 66 78 237 304 216 239 66 78 271 303 215 274 234 180 278 305 217 223 168 142 221 215 173 223 168 142 278 305 217 280 236 182 284 113 106 233 237 184 231 114 108 233 237 184 284 113 106 286 240 186 289 117 110 255 241 188 253 118 112 255 241 188 289 117 110 228 50 58 199 275 209 226 162 131 198 295 218 226 162 131 199 275 209 252 54 62 211 276 210 250 55 64 210 296 219 250 55 64 211 276 210 229 112 107 295 286 211 231 114 108 296 306 220 231 114 108 295 286 211 253 118 112 307 287 212 255 241 188 308 307 221 255 241 188 307 287 212 296 306 220 295 286 211 320 1 90 319 1 92 320 1 90 295 286 211 308 307 221 307 287 212 332 1 86 331 1 88 332 1 86 307 287 212 314 288 120 338 289 158 315 308 176 339 309 205 315 308 176 338 289 158 327 310 177 326 290 121 351 311 204 350 291 156 351 311 204 326 290 121 353 1 222 352 1 213 377 1 9 376 1 10 377 1 9 352 1 213 341 1 223 340 1 214 365 1 21 364 1 22 365 1 21 340 1 214 68 3 51 70 23 71 75 5 53 74 312 224 75 5 53 70 23 71 54 128 126 79 129 127 52 6 54 83 7 55 52 6 54 79 129 127 62 139 137 64 130 128 89 188 165 85 131 129 89 188 165 64 130 128 24 22 70 88 313 225 70 23 71 74 312 224 70 23 71 88 313 225 32 133 131 30 182 159 4 295 218 3 314 226 4 295 218 30 182 159 56 16 64 54 128 126 16 296 219 15 315 227 16 296 219 54 128 126 39 226 184 103 316 228 37 88 108 102 297 220 37 88 108 103 316 228 63 231 189 115 317 229 61 230 188 114 298 221 61 230 188 115 317 229 102 297 220 103 316 228 126 0 90 127 0 123 126 0 90 103 316 228 114 298 221 115 317 229 138 0 86 139 0 122 138 0 86 115 317 229 121 299 176 122 318 147 145 300 205 146 319 214 145 300 205 122 318 147 134 320 150 158 321 213 133 301 177 157 302 204 133 301 177 158 321 213 160 0 230 184 0 8 159 0 222 183 0 9 159 0 222 184 0 8 148 0 231 172 0 20 147 0 223 171 0 21 147 0 223 172 0 20 262 44 51 269 45 53 264 61 71 268 322 224 264 61 71 269 45 53 248 157 126 246 46 54 273 158 127 277 48 55 273 158 127 246 46 54 256 166 137 283 210 165 258 159 128 279 160 129 258 159 128 283 210 165 218 60 70 264 61 71 282 323 225 268 322 224 282 323 225 264 61 71 226 162 131 198 295 218 224 203 159 197 314 226 224 203 159 198 295 218 250 55 64 210 296 219 248 157 126 209 315 227 248 157 126 210 296 219 233 237 184 231 114 108 297 324 228 296 306 220 297 324 228 231 114 108 257 243 189 255 241 188 309 325 229 308 307 221 309 325 229 255 241 188 296 306 220 320 1 90 297 324 228 321 1 123 297 324 228 320 1 90 308 307 221 332 1 86 309 325 229 333 1 122 309 325 229 332 1 86 315 308 176 339 309 205 316 326 147 340 327 214 316 326 147 339 309 205 328 328 150 327 310 177 352 329 213 351 311 204 352 329 213 327 310 177 354 1 230 353 1 222 378 1 8 377 1 9 378 1 8 353 1 222 342 1 231 341 1 223 366 1 20 365 1 21 366 1 20 341 1 223 75 78 98 74 330 232 69 28 76 71 26 74 69 28 76 74 330 232 79 246 192 55 146 144 83 81 101 53 82 102 83 81 101 55 146 144 85 247 193 65 248 194 89 229 187 63 231 189 89 229 187 65 248 194 88 331 233 25 96 116 74 330 232 71 26 74 74 330 232 25 96 116 30 182 159 28 184 161 3 314 226 2 332 234 3 314 226 28 184 161 54 128 126 52 6 54 15 315 227 14 333 235 15 315 227 52 6 54 41 227 185 104 334 236 39 226 184 103 316 228 39 226 184 104 334 236 63 231 189 65 248 194 115 317 229 116 335 237 115 317 229 65 248 194 104 334 236 128 0 179 103 316 228 127 0 123 103 316 228 128 0 179 116 335 237 140 0 178 115 317 229 139 0 122 115 317 229 140 0 178 122 318 147 123 336 148 146 319 214 147 337 223 146 319 214 123 336 148 134 320 150 135 338 149 158 321 213 159 339 222 158 321 213 135 338 149 161 0 89 185 0 7 160 0 230 184 0 8 160 0 230 185 0 7 148 0 231 149 0 93 172 0 20 173 0 19 172 0 20 149 0 93 269 104 98 263 63 76 268 340 232 265 62 74 268 340 232 263 63 76 273 260 192 277 107 101 249 171 144 247 109 102 249 171 144 277 107 101 279 261 193 283 242 187 259 262 194 257 243 189 259 262 194 283 242 187 282 341 233 268 340 232 219 120 116 265 62 74 219 120 116 268 340 232 224 203 159 197 314 226 222 204 161 196 332 234 222 204 161 197 314 226 248 157 126 209 315 227 246 46 54 208 333 235 246 46 54 209 315 227 235 239 185 233 237 184 298 342 236 297 324 228 298 342 236 233 237 184 257 243 189 309 325 229 259 262 194 310 343 237 259 262 194 309 325 229 298 342 236 297 324 228 322 1 179 321 1 123 322 1 179 297 324 228 310 343 237 309 325 229 334 1 178 333 1 122 334 1 178 309 325 229 316 326 147 340 327 214 317 344 148 341 345 223 317 344 148 340 327 214 328 328 150 352 329 213 329 346 149 353 347 222 329 346 149 352 329 213 355 1 89 354 1 230 379 1 7 378 1 8 379 1 7 354 1 230 342 1 231 366 1 20 343 1 93 367 1 19 343 1 93 366 1 20 32 133 131 72 134 132 30 182 159 73 183 160 30 182 159 72 134 132 40 135 133 42 193 170 82 186 163 77 272 206 82 186 163 42 193 170 24 22 238 26 273 207 88 313 239 84 274 208 88 313 239 26 273 207 48 18 66 91 132 130 46 19 67 94 191 168 46 19 67 91 132 130 28 184 161 26 273 207 2 332 234 1 348 240 2 332 234 26 273 207 52 6 54 50 8 56 14 333 235 13 349 241 14 333 235 50 8 56 43 293 216 105 350 242 41 227 185 104 334 236 41 227 185 105 350 242 67 80 100 117 351 243 65 248 194 116 335 237 65 248 194 117 351 243 105 350 242 129 0 154 104 334 236 128 0 179 104 334 236 129 0 154 116 335 237 117 351 243 140 0 178 141 0 151 140 0 178 117 351 243 123 336 148 124 352 202 147 337 223 148 353 231 147 337 223 124 352 202 135 338 149 136 354 203 159 339 222 160 355 230 159 339 222 136 354 203 161 0 89 162 0 87 185 0 7 186 0 6 185 0 7 162 0 87 149 0 93 150 0 91 173 0 19 174 0 18 173 0 19 150 0 91 226 162 131 224 203 159 266 163 132 267 205 160 266 163 132 224 203 159 234 164 133 276 207 163 236 214 170 271 283 206 236 214 170 276 207 163 218 60 238 282 323 239 220 284 207 278 285 208 220 284 207 282 323 239 242 58 66 240 59 67 285 161 130 288 212 168 285 161 130 240 59 67 222 204 161 196 332 234 220 284 207 195 348 240 220 284 207 196 332 234 246 46 54 208 333 235 244 47 56 207 349 241 244 47 56 208 333 235 237 304 216 235 239 185 299 356 242 298 342 236 299 356 242 235 239 185 261 106 100 259 262 194 311 357 243 310 343 237 311 357 243 259 262 194 299 356 242 298 342 236 323 1 154 322 1 179 323 1 154 298 342 236 310 343 237 334 1 178 311 357 243 335 1 151 311 357 243 334 1 178 317 344 148 341 345 223 318 358 202 342 359 231 318 358 202 341 345 223 329 346 149 353 347 222 330 360 203 354 361 230 330 360 203 353 347 222 355 1 89 379 1 7 356 1 87 380 1 6 356 1 87 379 1 7 343 1 93 367 1 19 344 1 91 368 1 18 344 1 91 367 1 19 72 250 196 33 251 197 73 223 181 31 142 140 73 223 181 33 251 197 82 225 183 77 292 215 41 227 185 43 293 216 41 227 185 77 292 215 88 331 233 84 294 217 25 96 116 27 196 173 25 96 116 84 294 217 91 249 195 49 98 118 94 233 191 47 31 79 94 233 191 49 98 118 26 273 207 24 22 238 1 348 240 0 24 244 1 348 240 24 22 238 50 8 56 48 18 66 13 349 241 12 20 68 13 349 241 48 18 66 43 293 216 45 30 78 105 350 242 106 32 80 105 350 242 45 30 78 67 80 100 69 28 76 117 351 243 118 29 77 117 351 243 69 28 76 105 350 242 106 32 80 129 0 154 130 0 84 129 0 154 106 32 80 118 29 77 142 0 82 117 351 243 141 0 151 117 351 243 142 0 82 124 352 202 125 40 92 148 353 231 149 41 93 148 353 231 125 40 92 136 354 203 137 36 88 160 355 230 161 37 89 160 355 230 137 36 88 163 0 96 187 0 5 162 0 87 186 0 6 162 0 87 187 0 5 151 0 95 175 0 17 150 0 91 174 0 18 150 0 91 175 0 17 266 264 196 267 235 181 227 265 197 225 167 140 227 265 197 267 235 181 276 238 183 235 239 185 271 303 215 237 304 216 271 303 215 235 239 185 282 341 233 219 120 116 278 305 217 221 215 173 278 305 217 219 120 116 285 263 195 288 245 191 243 122 118 241 68 79 243 122 118 288 245 191 220 284 207 195 348 240 218 60 238 194 24 244 218 60 238 195 348 240 244 47 56 207 349 241 242 58 66 206 20 68 242 58 66 207 349 241 237 304 216 299 356 242 239 66 78 300 67 80 239 66 78 299 356 242 261 106 100 311 357 243 263 63 76 312 65 77 263 63 76 311 357 243 299 356 242 323 1 154 300 67 80 324 1 84 300 67 80 323 1 154 312 65 77 311 357 243 336 1 82 335 1 151 336 1 82 311 357 243 318 358 202 342 359 231 319 75 92 343 77 93 319 75 92 342 359 231 330 360 203 354 361 230 331 71 88 355 73 89 331 71 88 354 361 230 357 1 96 356 1 87 381 1 5 380 1 6 381 1 5 356 1 87 345 1 95 344 1 91 369 1 17 368 1 18 369 1 17 344 1 91

+
+
+
+
+ + + + + 0.2 0.2 0.2 + + + + + + + + + + + + + + + + + + + + + + + 1.43267 0.427722 -2.98023e-008 + 0 1 0 0 + 1 0 0 0 + 0 0 1 349.847 + 1 1 1 + + + + + + + + + + + + -1.35233 0.427722 -2.98023e-008 + 0 1 0 0 + 1 0 0 0 + 0 0 1 349.847 + 1 1 1 + + + + + + + + + + + + + + 0 0 0 + 0 1 0 0 + 1 0 0 0 + 0 0 1 0 + 1 1 1 + + + 0 0 0 + 0 1 0 0 + 1 0 0 0 + 0 0 1 0 + 1 1 1 + + + + + + + +
diff --git a/public/static/SampleData/models/CesiumMilkTruck/CesiumMilkTruck.glb b/public/static/SampleData/models/CesiumMilkTruck/CesiumMilkTruck.glb new file mode 100644 index 0000000..1faef43 Binary files /dev/null and b/public/static/SampleData/models/CesiumMilkTruck/CesiumMilkTruck.glb differ diff --git a/public/static/SampleData/models/CesiumMilkTruck/CesiumMilkTruck.jpg b/public/static/SampleData/models/CesiumMilkTruck/CesiumMilkTruck.jpg new file mode 100644 index 0000000..0bebaad Binary files /dev/null and b/public/static/SampleData/models/CesiumMilkTruck/CesiumMilkTruck.jpg differ diff --git a/public/static/SampleData/models/DracoCompressed/0.bin b/public/static/SampleData/models/DracoCompressed/0.bin new file mode 100644 index 0000000..c4996c5 Binary files /dev/null and b/public/static/SampleData/models/DracoCompressed/0.bin differ diff --git a/public/static/SampleData/models/DracoCompressed/CesiumMilkTruck.gltf b/public/static/SampleData/models/DracoCompressed/CesiumMilkTruck.gltf new file mode 100644 index 0000000..f9edc43 --- /dev/null +++ b/public/static/SampleData/models/DracoCompressed/CesiumMilkTruck.gltf @@ -0,0 +1,592 @@ +{ + "asset": { + "generator": "COLLADA2GLTF", + "version": "2.0" + }, + "scene": 0, + "scenes": [ + { + "nodes": [ + 0 + ] + } + ], + "nodes": [ + { + "mesh": 0, + "children": [ + 3, + 1 + ], + "matrix": [ + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 1 + ] + }, + { + "children": [ + 2 + ], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + -1.352329969406128, + 0.4277220070362091, + -2.98022992950564e-8, + 1 + ] + }, + { + "mesh": 1, + "rotation": [ + 0, + 0, + 0.08848590403795242, + -0.9960774183273317 + ] + }, + { + "children": [ + 4 + ], + "matrix": [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1.432669997215271, + 0.4277220070362091, + -2.98022992950564e-8, + 1 + ] + }, + { + "mesh": 1, + "rotation": [ + 0, + 0, + 0.08848590403795242, + -0.9960774183273317 + ] + } + ], + "meshes": [ + { + "primitives": [ + { + "attributes": { + "NORMAL": 5, + "POSITION": 6, + "TEXCOORD_0": 7 + }, + "indices": 4, + "mode": 4, + "material": 0, + "extensions": { + "KHR_draco_mesh_compression": { + "bufferView": 2, + "attributes": { + "NORMAL": 0, + "POSITION": 1, + "TEXCOORD_0": 2 + } + } + } + }, + { + "attributes": { + "NORMAL": 9, + "POSITION": 10 + }, + "indices": 8, + "mode": 4, + "material": 1, + "extensions": { + "KHR_draco_mesh_compression": { + "bufferView": 3, + "attributes": { + "NORMAL": 0, + "POSITION": 1 + } + } + } + }, + { + "attributes": { + "NORMAL": 12, + "POSITION": 13 + }, + "indices": 11, + "mode": 4, + "material": 2, + "extensions": { + "KHR_draco_mesh_compression": { + "bufferView": 4, + "attributes": { + "NORMAL": 0, + "POSITION": 1 + } + } + } + } + ], + "name": "Cesium_Milk_Truck" + }, + { + "primitives": [ + { + "attributes": { + "NORMAL": 15, + "POSITION": 16, + "TEXCOORD_0": 17 + }, + "indices": 14, + "mode": 4, + "material": 3, + "extensions": { + "KHR_draco_mesh_compression": { + "bufferView": 5, + "attributes": { + "NORMAL": 0, + "POSITION": 1, + "TEXCOORD_0": 2 + } + } + } + } + ], + "name": "Wheels" + } + ], + "animations": [ + { + "channels": [ + { + "sampler": 0, + "target": { + "node": 4, + "path": "rotation" + } + }, + { + "sampler": 1, + "target": { + "node": 2, + "path": "rotation" + } + } + ], + "samplers": [ + { + "input": 0, + "interpolation": "LINEAR", + "output": 1 + }, + { + "input": 2, + "interpolation": "LINEAR", + "output": 3 + } + ] + } + ], + "accessors": [ + { + "bufferView": 0, + "byteOffset": 0, + "componentType": 5126, + "count": 31, + "max": [ + 1.25 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 1, + "byteOffset": 0, + "componentType": 5126, + "count": 31, + "max": [ + 0, + 0, + 0.9990190863609314, + 1 + ], + "min": [ + 0, + 0, + 0, + -0.9960774183273317 + ], + "type": "VEC4" + }, + { + "bufferView": 0, + "byteOffset": 124, + "componentType": 5126, + "count": 31, + "max": [ + 1.25 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "bufferView": 1, + "byteOffset": 496, + "componentType": 5126, + "count": 31, + "max": [ + 0, + 0, + 0.9990190863609314, + 1 + ], + "min": [ + 0, + 0, + 0, + -0.9960774183273317 + ], + "type": "VEC4" + }, + { + "componentType": 5123, + "count": 5232, + "max": [ + 1855 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "componentType": 5126, + "count": 1856, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" + }, + { + "componentType": 5126, + "count": 1856, + "max": [ + 2.437999963760376, + 2.5843698978424072, + 1.3960000276565552 + ], + "min": [ + -2.430910110473633, + 0.2667999863624573, + -1.3960000276565552 + ], + "type": "VEC3" + }, + { + "componentType": 5126, + "count": 1856, + "max": [ + 0.8964580297470093, + 0.997245192527771 + ], + "min": [ + 0.002956389915198088, + 0.015672028064727783 + ], + "type": "VEC2" + }, + { + "componentType": 5123, + "count": 168, + "max": [ + 71 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "componentType": 5126, + "count": 72, + "max": [ + 0.957480013370514, + 0.28850099444389343, + 1 + ], + "min": [ + -1, + 0, + -1 + ], + "type": "VEC3" + }, + { + "componentType": 5126, + "count": 72, + "max": [ + 1.6011799573898315, + 2.3545401096343994, + 1.3960000276565552 + ], + "min": [ + 0.22885000705718997, + 1.631850004196167, + -1.3960000276565552 + ], + "type": "VEC3" + }, + { + "componentType": 5123, + "count": 864, + "max": [ + 463 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "componentType": 5126, + "count": 464, + "max": [ + 1, + 1, + 1 + ], + "min": [ + -1, + -1, + -1 + ], + "type": "VEC3" + }, + { + "componentType": 5126, + "count": 464, + "max": [ + 1.62267005443573, + 2.3919999599456787, + 1.100000023841858 + ], + "min": [ + 0.1932000070810318, + 1.5961999893188477, + -1.1100000143051147 + ], + "type": "VEC3" + }, + { + "componentType": 5123, + "count": 2304, + "max": [ + 585 + ], + "min": [ + 0 + ], + "type": "SCALAR" + }, + { + "componentType": 5126, + "count": 586, + "max": [ + 0.9990389943122864, + 0.9990379810333252, + 1 + ], + "min": [ + -0.9990379810333252, + -0.9990379810333252, + -1 + ], + "type": "VEC3" + }, + { + "componentType": 5126, + "count": 586, + "max": [ + 0.4277999997138977, + 0.4277999997138977, + 1.0579999685287476 + ], + "min": [ + -0.4277999997138977, + -0.4277999997138977, + -1.0579999685287476 + ], + "type": "VEC3" + }, + { + "componentType": 5126, + "count": 586, + "max": [ + 0.9936569929122924, + 0.9895756244659424 + ], + "min": [ + 0.6050930023193359, + 0.00905001163482666 + ], + "type": "VEC2" + } + ], + "materials": [ + { + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 0 + }, + "metallicFactor": 0 + }, + "name": "truck" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0, + 0.04050629958510399, + 0.021240700036287308, + 1 + ], + "metallicFactor": 0 + }, + "name": "glass" + }, + { + "pbrMetallicRoughness": { + "baseColorFactor": [ + 0.06400000303983688, + 0.06400000303983688, + 0.06400000303983688, + 1 + ], + "metallicFactor": 0 + }, + "name": "window_trim" + }, + { + "pbrMetallicRoughness": { + "baseColorTexture": { + "index": 1 + }, + "metallicFactor": 0 + }, + "name": "wheels" + } + ], + "textures": [ + { + "sampler": 0, + "source": 0 + }, + { + "sampler": 0, + "source": 0 + } + ], + "images": [ + { + "uri": "CesiumMilkTruck.png" + } + ], + "samplers": [ + { + "magFilter": 9729, + "minFilter": 9986, + "wrapS": 10497, + "wrapT": 10497 + } + ], + "bufferViews": [ + { + "buffer": 0, + "byteOffset": 0, + "byteLength": 248 + }, + { + "buffer": 0, + "byteOffset": 248, + "byteLength": 992 + }, + { + "buffer": 0, + "byteOffset": 1240, + "byteLength": 7871 + }, + { + "buffer": 0, + "byteOffset": 9111, + "byteLength": 474 + }, + { + "buffer": 0, + "byteOffset": 9585, + "byteLength": 1249 + }, + { + "buffer": 0, + "byteOffset": 10834, + "byteLength": 3137 + } + ], + "buffers": [ + { + "byteLength": 13971, + "uri": "0.bin" + } + ], + "extensionsRequired": [ + "KHR_draco_mesh_compression" + ], + "extensionsUsed": [ + "KHR_draco_mesh_compression" + ] +} diff --git a/public/static/SampleData/models/DracoCompressed/CesiumMilkTruck.png b/public/static/SampleData/models/DracoCompressed/CesiumMilkTruck.png new file mode 100644 index 0000000..390ef28 Binary files /dev/null and b/public/static/SampleData/models/DracoCompressed/CesiumMilkTruck.png differ diff --git a/public/static/SampleData/models/GroundVehicle/GroundVehicle.glb b/public/static/SampleData/models/GroundVehicle/GroundVehicle.glb new file mode 100644 index 0000000..dd76715 Binary files /dev/null and b/public/static/SampleData/models/GroundVehicle/GroundVehicle.glb differ diff --git a/public/static/SampleData/models/ParcLeadMine/ParcLeadMine.glb b/public/static/SampleData/models/ParcLeadMine/ParcLeadMine.glb new file mode 100644 index 0000000..039106f Binary files /dev/null and b/public/static/SampleData/models/ParcLeadMine/ParcLeadMine.glb differ diff --git a/public/static/SampleData/models/Pawns/Pawns.glb b/public/static/SampleData/models/Pawns/Pawns.glb new file mode 100644 index 0000000..417011c Binary files /dev/null and b/public/static/SampleData/models/Pawns/Pawns.glb differ diff --git a/public/static/SampleData/models/PointCloudWave/PointCloudWave.glb b/public/static/SampleData/models/PointCloudWave/PointCloudWave.glb new file mode 100644 index 0000000..f157b6b Binary files /dev/null and b/public/static/SampleData/models/PointCloudWave/PointCloudWave.glb differ diff --git a/public/static/SampleData/models/ShadowTester/Shadow_Tester.glb b/public/static/SampleData/models/ShadowTester/Shadow_Tester.glb new file mode 100644 index 0000000..a51d5fa Binary files /dev/null and b/public/static/SampleData/models/ShadowTester/Shadow_Tester.glb differ diff --git a/public/static/SampleData/models/ShadowTester/Shadow_Tester_2.glb b/public/static/SampleData/models/ShadowTester/Shadow_Tester_2.glb new file mode 100644 index 0000000..66c2190 Binary files /dev/null and b/public/static/SampleData/models/ShadowTester/Shadow_Tester_2.glb differ diff --git a/public/static/SampleData/models/ShadowTester/Shadow_Tester_3.glb b/public/static/SampleData/models/ShadowTester/Shadow_Tester_3.glb new file mode 100644 index 0000000..c0cdceb Binary files /dev/null and b/public/static/SampleData/models/ShadowTester/Shadow_Tester_3.glb differ diff --git a/public/static/SampleData/models/ShadowTester/Shadow_Tester_4.glb b/public/static/SampleData/models/ShadowTester/Shadow_Tester_4.glb new file mode 100644 index 0000000..f617700 Binary files /dev/null and b/public/static/SampleData/models/ShadowTester/Shadow_Tester_4.glb differ diff --git a/public/static/SampleData/models/ShadowTester/Shadow_Tester_Point.glb b/public/static/SampleData/models/ShadowTester/Shadow_Tester_Point.glb new file mode 100644 index 0000000..a162c9e Binary files /dev/null and b/public/static/SampleData/models/ShadowTester/Shadow_Tester_Point.glb differ diff --git a/public/static/SampleData/models/ShadowTester/Shadow_Transparent.glb b/public/static/SampleData/models/ShadowTester/Shadow_Transparent.glb new file mode 100644 index 0000000..5ad2083 Binary files /dev/null and b/public/static/SampleData/models/ShadowTester/Shadow_Transparent.glb differ diff --git a/public/static/SampleData/models/WoodTower/Wood_Tower.glb b/public/static/SampleData/models/WoodTower/Wood_Tower.glb new file mode 100644 index 0000000..c4aa97b Binary files /dev/null and b/public/static/SampleData/models/WoodTower/Wood_Tower.glb differ diff --git a/public/static/SampleData/ne_10m_us_states.topojson b/public/static/SampleData/ne_10m_us_states.topojson new file mode 100644 index 0000000..95ed115 --- /dev/null +++ b/public/static/SampleData/ne_10m_us_states.topojson @@ -0,0 +1,763 @@ +{ + "type" : "Topology", + "transform" : { + "scale" : [0.0035892802775563276, 0.0005250691027211737], + "translate" : [-179.14350338367416, 18.906117143691233] + }, + "objects" : { + "states" : { + "type" : "GeometryCollection", + "geometries" : [{ + "type" : "MultiPolygon", + "arcs" : [[[0]], [[1]], [[2, 3, 4, 5, 6, 7, 8, 9]]], + "id" : "MA", + "properties" : { + "name" : "Massachusetts", + "Statehood" : "Feb. 6, 1788", + "Population" : 6692824 + } + }, { + "type" : "Polygon", + "arcs" : [[10, 11, 12, 13, 14, 15]], + "id" : "MN", + "properties" : { + "name" : "Minnesota", + "Statehood" : "May 11, 1858", + "Population" : 5420380 + } + }, { + "type" : "Polygon", + "arcs" : [[16, 17, 18, 19, 20]], + "id" : "MT", + "properties" : { + "name" : "Montana", + "Statehood" : "Nov. 8, 1889", + "Population" : 1015165 + } + }, { + "type" : "Polygon", + "arcs" : [[21, -21, 22, -15]], + "id" : "ND", + "properties" : { + "name" : "North Dakota", + "Statehood" : "Nov. 2, 1889", + "Population" : 723393 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[23]], [[24]], [[25]], [[26]], [[27]], [[28]], [[29]], [[30]]], + "id" : "HI", + "properties" : { + "name" : "Hawaii", + "Statehood" : "Aug. 21, 1959", + "Population" : 1404054 + } + }, { + "type" : "Polygon", + "arcs" : [[31, 32, 33, 34, 35, 36, -19]], + "id" : "ID", + "properties" : { + "name" : "Idaho", + "Statehood" : "July 3, 1890", + "Population" : 1612136 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[37]], [[38]], [[39]], [[40]], [[41]], [[42]], [[43]], [[-36, 44, 45]]], + "id" : "WA", + "properties" : { + "name" : "Washington", + "Statehood" : "Nov. 11, 1889", + "Population" : 6971406 + } + }, { + "type" : "Polygon", + "arcs" : [[46, 47, 48, 49, 50]], + "id" : "AZ", + "properties" : { + "name" : "Arizona", + "Statehood" : "Feb. 14, 1912", + "Population" : 6626624 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[51]], [[52]], [[53]], [[54]], [[-49, 55, 56, 57]]], + "id" : "CA", + "properties" : { + "name" : "California", + "Statehood" : "Sept. 9, 1850", + "Population" : 38332521 + } + }, { + "type" : "Polygon", + "arcs" : [[58, 59, 60, 61, 62, 63]], + "id" : "CO", + "properties" : { + "name" : "Colorado", + "Statehood" : "Aug. 1, 1876", + "Population" : 5268367 + } + }, { + "type" : "Polygon", + "arcs" : [[-50, -58, 64, -34, 65]], + "id" : "NV", + "properties" : { + "name" : "Nevada", + "Statehood" : "Oct. 31, 1864", + "Population" : 2790136 + } + }, { + "type" : "Polygon", + "arcs" : [[66, 67, -47, -61, 68]], + "id" : "NM", + "properties" : { + "name" : "New Mexico", + "Statehood" : "Jan. 6, 1912", + "Population" : 2085287 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[-45, -35, -65, -57, 69]]], + "id" : "OR", + "properties" : { + "name" : "Oregon", + "Statehood" : "Feb. 14, 1859", + "Population" : 3930065 + } + }, { + "type" : "Polygon", + "arcs" : [[70, -62, -51, -66, -33]], + "id" : "UT", + "properties" : { + "name" : "Utah", + "Statehood" : "Jan. 4, 1896", + "Population" : 2900872 + } + }, { + "type" : "Polygon", + "arcs" : [[71, -63, -71, -32, -18, 72]], + "id" : "WY", + "properties" : { + "name" : "Wyoming", + "Statehood" : "July 10, 1890", + "Population" : 582658 + } + }, { + "type" : "Polygon", + "arcs" : [[73, 74, 75, 76, 77, 78]], + "id" : "AR", + "properties" : { + "name" : "Arkansas", + "Statehood" : "June 15, 1836", + "Population" : 2959373 + } + }, { + "type" : "Polygon", + "arcs" : [[79, 80, 81, 82, -13, 83]], + "id" : "IA", + "properties" : { + "name" : "Iowa", + "Statehood" : "Dec. 28, 1846", + "Population" : 3090416 + } + }, { + "type" : "Polygon", + "arcs" : [[84, -59, 85, 86]], + "id" : "KS", + "properties" : { + "name" : "Kansas", + "Statehood" : "Jan. 29, 1861", + "Population" : 2893957 + } + }, { + "type" : "Polygon", + "arcs" : [[87, 88, 89, 90, 91, -79, 92, -87, 93, -81]], + "id" : "MO", + "properties" : { + "name" : "Missouri", + "Statehood" : "Aug. 10, 1821", + "Population" : 6044171 + } + }, { + "type" : "Polygon", + "arcs" : [[-82, -94, -86, -64, -72, 94]], + "id" : "NE", + "properties" : { + "name" : "Nebraska", + "Statehood" : "Mar. 1, 1867", + "Population" : 1868516 + } + }, { + "type" : "Polygon", + "arcs" : [[-78, 95, -69, -60, -85, -93]], + "id" : "OK", + "properties" : { + "name" : "Oklahoma", + "Statehood" : "Nov. 16, 1907", + "Population" : 3850568 + } + }, { + "type" : "Polygon", + "arcs" : [[-14, -83, -95, -73, -17, -22]], + "id" : "SD", + "properties" : { + "name" : "South Dakota", + "Statehood" : "Nov. 2, 1889", + "Population" : 844877 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[96]], [[97]], [[98, 99, -76, 100]]], + "id" : "LA", + "properties" : { + "name" : "Louisiana", + "Statehood" : "Apr. 30, 1812", + "Population" : 4625470 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[101]], [[102]], [[103]], [[104]], [[105]], [[-77, -100, 106, -67, -96]]], + "id" : "TX", + "properties" : { + "name" : "Texas", + "Statehood" : "Dec. 29, 1845", + "Population" : 26448193 + } + }, { + "type" : "Polygon", + "arcs" : [[107, 108, 109, -7]], + "id" : "CT", + "properties" : { + "name" : "Connecticut", + "Statehood" : "Jan. 9, 1788", + "Population" : 3596080 + } + }, { + "type" : "Polygon", + "arcs" : [[110, -10, 111, 112, 113]], + "id" : "NH", + "properties" : { + "name" : "New Hampshire", + "Statehood" : "June 21, 1788", + "Population" : 1323459 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[114]], [[115, -4]], [[116, -108, -6]]], + "id" : "RI", + "properties" : { + "name" : "Rhode Island", + "Statehood" : "May 29, 1790", + "Population" : 1051511 + } + }, { + "type" : "Polygon", + "arcs" : [[-9, 117, 118, -112]], + "id" : "VT", + "properties" : { + "name" : "Vermont", + "Statehood" : "Mar. 4, 1791", + "Population" : 626630 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[119]], [[120, 121, 122, 123, 124]]], + "id" : "AL", + "properties" : { + "name" : "Alabama", + "Statehood" : "Dec. 14, 1819", + "Population" : 4833722 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[125]], [[126]], [[127]], [[128]], [[129]], [[130]], [[131, -122, 132]]], + "id" : "FL", + "properties" : { + "name" : "Florida", + "Statehood" : "Mar. 3, 1845", + "Population" : 19552860 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[133]], [[134]], [[135, -133, -121, 136, 137, 138]]], + "id" : "GA", + "properties" : { + "name" : "Georgia", + "Statehood" : "Jan. 2, 1788", + "Population" : 9992167 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[-124, 139, -101, -75, 140]]], + "id" : "MS", + "properties" : { + "name" : "Mississippi", + "Statehood" : "Dec. 10, 1817", + "Population" : 2991207 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[141, -139, 142]]], + "id" : "SC", + "properties" : { + "name" : "South Carolina", + "Statehood" : "May 23, 1788", + "Population" : 4774839 + } + }, { + "type" : "Polygon", + "arcs" : [[143, 144, 145, -88, -80, 146]], + "id" : "IL", + "properties" : { + "name" : "Illinois", + "Statehood" : "Dec. 3, 1818", + "Population" : 12882135 + } + }, { + "type" : "Polygon", + "arcs" : [[147, 148, 149, -145]], + "id" : "IN", + "properties" : { + "name" : "Indiana", + "Statehood" : "Dec. 11, 1816", + "Population" : 6570902 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[150, 151, 152, -89, -146, -150, 153]]], + "id" : "KY", + "properties" : { + "name" : "Kentucky", + "Statehood" : "June 1, 1792", + "Population" : 4395295 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[154]], [[155, 156]], [[157, 158, 159, 160]], [[161, -143, -138, 162, 163]]], + "id" : "NC", + "properties" : { + "name" : "North Carolina", + "Statehood" : "Nov. 21, 1789", + "Population" : 9848060 + } + }, { + "type" : "Polygon", + "arcs" : [[164, -154, -149, 165, 166, 167]], + "id" : "OH", + "properties" : { + "name" : "Ohio", + "Statehood" : "Mar. 1, 1803", + "Population" : 11570808 + } + }, { + "type" : "Polygon", + "arcs" : [[168, -163, -137, -125, -141, -74, -92, -170, -90, -153]], + "id" : "TN", + "properties" : { + "name" : "Tennessee", + "Statehood" : "June 1, 1796", + "Population" : 6495978 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[170, 171, 172, -156, 173, -161, 174, -164, -169, -152, 175]]], + "id" : "VA", + "properties" : { + "name" : "Virginia", + "Statehood" : "June 25, 1788", + "Population" : 8260405 + } + }, { + "type" : "Polygon", + "arcs" : [[176, -147, -84, -12]], + "id" : "WI", + "properties" : { + "name" : "Wisconsin", + "Statehood" : "May 29, 1848", + "Population" : 5742713 + } + }, { + "type" : "Polygon", + "arcs" : [[177, -176, -151, -165, 178]], + "id" : "WV", + "properties" : { + "name" : "West Virginia", + "Statehood" : "June 20, 1863", + "Population" : 1854304 + } + }, { + "type" : "Polygon", + "arcs" : [[179, 180, 181, 182, 183]], + "id" : "DE", + "properties" : { + "name" : "Delaware", + "Statehood" : "Dec. 7, 1787", + "Population" : 925749 + } + }, { + "type" : "Polygon", + "arcs" : [[184, -172, 185]], + "id" : "DC", + "properties" : { + "name" : "District of Columbia", + "Statehood" : "July 16, 1790", + "Population" : 646449 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[-183, 186, -186, -171, -178, 187]]], + "id" : "MD", + "properties" : { + "name" : "Maryland", + "Statehood" : "Apr. 28, 1788", + "Population" : 5928814 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[188, 189, 190]]], + "id" : "NJ", + "properties" : { + "name" : "New Jersey", + "Statehood" : "Dec. 18, 1787", + "Population" : 8899339 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[191]], [[192]], [[-118, -8, -110, 193, -190, 194, 195]]], + "id" : "NY", + "properties" : { + "name" : "New York", + "Statehood" : "July 26, 1788", + "Population" : 19651127 + } + }, { + "type" : "Polygon", + "arcs" : [[-189, 196, -184, -188, -179, -168, 197, -195]], + "id" : "PA", + "properties" : { + "name" : "Pennsylvania", + "Statehood" : "Dec. 12, 1787", + "Population" : 12773801 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[198]], [[199]], [[200]], [[-114, 201]]], + "id" : "ME", + "properties" : { + "name" : "Maine", + "Statehood" : "Mar. 15, 1820", + "Population" : 1328302 + } + }, { + "type" : "Polygon", + "arcs" : [[-166, -148, -144, -177, -11, 202]], + "id" : "MI", + "properties" : { + "name" : "Michigan", + "Statehood" : "Jan. 26, 1837", + "Population" : 9895622 + } + }, { + "type" : "MultiPolygon", + "arcs" : [[[203]], [[204]], [[205]], [[206]], [[207]], [[208]], [[209]], [[210]], [[211]], [[212]], [[213]], [[214]], [[215]], [[216]], [[217]], [[218]], [[219]], [[220]], [[221]], [[222]], [[223]], [[224]], [[225]], [[226]], [[227]], [[228]], [[229]], [[230]], [[231]], [[232]], [[233]], [[234]], [[235]], [[236]], [[237]], [[238]], [[239]], [[240]], [[241]], [[242]], [[243]], [[244]], [[245]], [[246]], [[247]], [[248]], [[249]], [[250]], [[251]], [[252]], [[253]], [[254]], [[255]], [[256]], [[257]], [[258]], [[259]], [[260]], [[261]], [[262]], [[263]], [[264]], [[265]], [[266]], [[267]], [[268]], [[269]], [[270]], [[271]], [[272]], [[273]], [[274]], [[275]], [[276]], [[277]], [[278]], [[279]], [[280]], [[281]], [[282]], [[283]], [[284]], [[285]], [[286]], [[287]], [[288]]], + "id" : "AK", + "properties" : { + "name" : "Alaska", + "Statehood" : "Jan. 3, 1959", + "Population" : 735132 + } + }] + } + }, + "arcs" : [ + [[30403, 42783], [17, -180], [-50, -54], [-39, 115], [50, -34], [22, 153]], + [[30242, 42976], [25, -207], [-77, -16], [52, 223]], + [[30181, 45653], [11, -306], [36, -213], [-60, -110], [7, -91], [-38, -141], [-20, -197], [27, -151], [14, 145], [51, -203], [23, -227], [-6, -259], [25, -3], [9, -264], [72, -193], [76, 193], [4, 185], [-23, -39], [5, 278], [19, -164], [14, -305], [-2, -226], [-136, -80], [-21, -130], [-43, -82], [7, 362], [-24, 67], [-16, -190], [-36, -13], [-6, -170], [-54, -71]], + [[30096, 43055], [-3, 282], [-17, 30]], + [[30076, 43367], [23, 229], [-36, -167]], + [[30063, 43429], [-29, 179], [-12, 404], [-116, -10]], + [[29906, 44002], [0, 22], [-266, 21], [-202, 41]], + [[29438, 44086], [-7, 47], [67, 1270]], + [[29498, 45403], [223, -32]], + [[29721, 45371], [323, -54], [106, 354], [31, -18]], + [[24976, 55400], [-128, -1350]], + [[24848, 54050], [-194, 41], [-227, -731], [-138, -373], [-41, 78], [-29, -200], [-21, -2], [-1, -1104], [-19, -106], [-95, -218], [-19, -207], [-31, -169], [0, -266], [37, -32], [23, -217], [-26, -309], [3, -255], [-15, -136], [13, -289], [-18, -321], [66, -285], [63, -92], [24, -178], [47, -55], [43, -193], [31, -294], [49, -206], [71, -114], [33, -199], [11, -266], [0, -511]], + [[24488, 46841], [-272, 0], [-244, -1], [-391, 0], [-271, 0], [-272, 0]], + [[23038, 46840], [0, 3421], [-31, 185], [-40, 53], [-43, 340], [9, 103], [54, 208], [22, 340]], + [[23009, 51490], [-10, 687], [-43, 373], [-15, 562], [12, 242], [-19, 129], [-9, 1178], [-43, 515], [-32, 558], [2, 492], [-10, 201], [16, 222], [-35, 651]], + [[22823, 57300], [203, 0], [368, 0], [4, 718], [90, -116], [35, -751], [3, -237], [62, -170], [47, 25], [22, -118], [99, -31], [33, -227], [74, 49], [11, 105], [54, 63], [78, -24], [92, -155], [-15, -174], [49, 1], [40, -407], [22, 151], [73, 45], [14, -165], [63, -116], [20, -170], [33, -95], [83, 32], [99, 309], [23, -13], [15, -228], [71, -31], [98, 60], [30, -28], [47, -219], [39, 60], [74, -43]], + [[20923, 51490], [2, -1794], [-5, 0]], + [[20920, 49696], [-419, 0], [-303, 0], [-243, 0], [-364, 0], [-364, 0], [-256, 0], [0, -957]], + [[18971, 48739], [-43, 176], [-32, 283], [-37, -32], [-15, -242], [15, -81], [-64, 26], [-32, -72], [-32, 68], [-47, -47], [-42, 57], [-37, -195], [-94, 71], [-34, -130], [5, -80], [-52, 127], [-14, 366], [-27, 236], [-55, 41], [-40, 250], [14, 122], [-23, 250], [-57, 360], [-25, 412], [4, 134], [-58, 183], [-31, -240], [-63, -162], [-58, 166], [14, 253], [-15, 149], [45, 214], [-23, 211], [11, 352], [-6, 159], [32, 488], [4, 255], [-68, -40], [-14, 131], [-80, 245], [-3, 155], [-38, 141], [-81, 518], [-45, 74], [-23, 154], [-37, 91], [21, 64], [-24, 154], [15, 119], [-12, 165], [-91, 578], [0, 1884]], + [[17579, 57300], [426, 0], [244, 0], [307, 0], [245, 0], [490, 0], [428, 0], [368, 0], [490, 0], [345, 0]], + [[20922, 57300], [1, -362], [0, -5448]], + [[23009, 51490], [-454, 0], [-260, 0], [-324, 0], [-454, 0], [-325, 0], [-269, 0]], + [[20922, 57300], [389, 0], [307, 0], [490, 0], [245, 0], [470, 0]], + [[6558, 2346], [76, -175], [46, -190], [21, -165], [2, -253], [17, 36], [20, -257], [37, -250], [-17, -127], [-60, -242], [-56, -51], [-71, -307], [0, -99], [-34, -266], [-58, 233], [-11, 210], [9, 372], [-26, 521], [-22, 235], [37, 262], [28, 289], [-15, 160], [3, 301], [37, -35], [37, -202]], + [[6299, 3095], [-47, -12], [39, 138], [8, -126]], + [[6192, 3482], [-18, 48], [-2, 165], [-18, 124], [44, 4], [22, -138], [-5, -148], [-23, -55]], + [[6283, 4041], [31, -235], [51, 92], [49, -223], [33, -68], [0, -217], [-36, -118], [-47, -83], [-30, 13], [-15, 369], [-45, 48], [-20, 207], [5, 138], [24, 77]], + [[6100, 4410], [97, -108], [54, -16], [-45, -198], [-57, 89], [-57, -24], [8, 257]], + [[5919, 5127], [16, -261], [29, -107], [25, -189], [-42, -98], [-49, 151], [-34, -76], [-37, 455], [-14, 81], [44, 21], [30, 220], [14, 7], [18, -204]], + [[5277, 5480], [-9, 173], [49, 239], [-7, -202], [-33, -210]], + [[5504, 6328], [26, -157], [-11, -343], [-29, -187], [-46, 44], [-45, 165], [-6, 167], [18, 174], [45, 145], [48, -8]], + [[18971, 48739], [0, -4757]], + [[18971, 43982], [-417, 0], [-416, 1]], + [[18138, 43983], [-156, -1], [-362, 0], [-311, 0]], + [[17309, 43982], [-1, 3400], [35, 746], [-22, 174], [-63, 56], [5, 412], [17, 77], [25, 341], [32, 132], [23, 223], [3, 221], [29, 220], [19, 374], [52, 446], [-18, 323], [-65, 165], [-34, 311]], + [[17346, 51603], [-20, 176], [13, 131], [-38, 410], [1, 147], [1, 4833]], + [[17303, 57300], [276, 0]], + [[15681, 53844], [-17, 97], [20, 132], [-3, -229]], + [[15803, 54284], [-31, -99], [12, 238], [19, -139]], + [[15783, 54651], [-23, 0], [4, 213], [19, -213]], + [[15757, 56154], [20, -132], [-59, -168], [37, -54], [13, -358], [9, 139], [46, -265], [-25, -77], [-10, 146], [-33, 73], [-8, 263], [-37, 165], [28, 257], [19, 11]], + [[15684, 56288], [-25, -5], [17, 204], [8, -199]], + [[15644, 56388], [-8, -119], [-37, 104], [7, 218], [38, -203]], + [[15681, 56759], [32, -85], [-33, -118], [-44, 77], [45, 126]], + [[17346, 51603], [-324, -2], [-267, -1], [-25, -98], [-134, -39], [-24, -106], [-76, -65], [-82, -192], [-68, -51], [-41, 39], [-78, -170], [-77, -20], [-28, 148], [-83, 39], [-62, -15], [-48, -151], [-81, -144], [-133, 183], [-19, 600], [-30, 248], [-56, 150], [-18, -15]], + [[15592, 51941], [-33, -53], [-51, 238], [-34, -30], [-26, 86], [-49, -124], [-53, 221], [0, 569], [12, -165], [1, -349], [16, -14], [18, 293], [-2, 411], [-20, -89], [-34, 81], [-11, 272], [88, 138], [-92, 126], [-30, 527], [-17, 107], [-9, 361], [-20, 370], [-60, 317], [-27, 500], [20, 283], [-18, 131], [42, -33], [49, -147], [48, -67], [49, -155], [98, -22], [77, -91], [49, -5], [26, 118], [44, -263], [38, 164], [65, -448], [-48, -214], [-62, -404], [-40, -396], [60, 456], [48, 122], [40, 341], [19, -10], [-13, 212], [22, -76], [11, -325], [-28, -82], [0, -182], [23, -145], [-21, -351], [4, -137], [-43, 142], [-14, -315], [-3, 337], [-37, -138], [-31, -297], [60, 84], [25, -146], [43, 229], [10, 203], [24, -91], [31, 149], [-20, 417], [20, 63], [-25, 118], [30, 535], [29, 86], [-34, 196], [-28, 275], [-20, -166], [-6, 196], [40, 103], [-54, 254], [-18, -64], [-16, 158], [20, 57], [43, -100], [-13, 226], [23, 40], [-42, 325], [-14, -100], [-44, 458], [13, 58], [519, 0], [244, 0], [429, 0], [401, 0]], + [[19530, 34460], [-1, -1012], [0, -9793]], + [[19529, 23655], [-208, 0], [-337, 0], [-17, 13], [-465, 992], [-228, 481], [-354, 748], [28, 406]], + [[17948, 26295], [11, 67], [41, -19], [22, 263], [-3, 184], [-19, 118], [-45, 104], [7, 220], [-14, 192], [2, 211], [25, 39], [25, 238], [13, 311], [-9, 411], [39, 348], [44, 142], [28, 247], [-67, 264], [-1, 121], [-36, 425], [-33, 240], [-4, 237]], + [[17974, 30658], [-2, 254], [18, 102], [-6, 309], [-21, 313], [7, 216], [-13, 169], [6, 315], [-20, 191], [6, 214], [48, 119], [56, -39], [16, -156], [46, -22], [23, 313], [0, 1510]], + [[18138, 34466], [348, -2], [217, -1], [435, -2], [392, -1]], + [[16869, 26908], [60, -357], [-33, 6], [-27, 351]], + [[16886, 27750], [45, -128], [19, -192], [-44, 27], [-20, 293]], + [[16466, 28799], [12, -165], [-31, -91], [-38, 205], [57, 51]], + [[16524, 28868], [77, -132], [-45, -68], [-37, 16], [-18, 213], [23, -29]], + [[17948, 26295], [-421, -218], [-249, -127], [-1, 301], [-36, 22], [2, 350], [-19, 426], [-52, 430], [-76, 371], [-55, 203], [-31, 181], [-46, 66], [-10, -119], [-34, 72], [6, 181], [-26, 310], [-17, 77], [-57, -15], [-17, -62], [-113, 279], [-15, 209], [-81, 304], [-88, -16], [-71, 127], [-95, -44], [-11, 135], [-38, 124], [12, 227], [-3, 291], [-17, 95], [9, 441], [-34, 39], [-37, 172], [19, 164], [-22, 213], [-26, 24], [-46, 336], [-33, 53], [-14, 232], [-35, 191], [-8, 182], [-21, 72], [-39, 309], [-54, 232], [-12, 345], [1, 293], [29, -8], [13, 325], [-19, 232], [-23, 96], [-29, -58], [-31, 55], [-68, 390], [0, 340], [-34, 445], [2, 358], [29, 55], [9, -392], [36, -69], [42, -215], [19, 15], [-32, 221], [-5, 162], [-47, 225], [1, 238], [-17, 0], [6, 200], [39, 88], [17, -58], [74, 48], [-43, 152], [-22, -173], [-38, 61], [-36, 150], [-28, -75], [-1, -360], [18, -81], [-26, -126], [-48, 145], [-37, 218], [-49, -11], [18, 273], [-7, 232], [-24, 57], [-19, 292], [-58, 224], [-21, 190], [-87, 479], [10, 209], [-39, 608], [17, 376], [-25, 550], [-72, 522], [-70, 294], [-12, 347], [25, 352], [26, 109], [1, 135], [31, 492], [-14, 236], [11, 81], [17, 483], [-27, 574], [-30, 76], [16, 218], [-1, 207]], + [[15304, 43982], [372, 0], [437, 0], [365, 0]], + [[16478, 43982], [0, -5714], [130, -623], [261, -1247], [131, -621], [153, -788], [255, -1312], [224, -1201], [185, -991], [157, -827]], + [[21478, 40174], [4, -5714]], + [[21482, 34460], [-268, 0]], + [[21214, 34460], [-421, 0], [-263, 0], [-264, 0], [-473, 0], [-263, 0]], + [[19530, 34460], [0, 7617]], + [[19530, 42077], [481, 0], [262, 0], [349, 0], [299, 0]], + [[20921, 42077], [274, -1], [283, 0], [0, -1902]], + [[16478, 43982], [260, 0], [363, 0], [208, 0]], + [[18138, 43983], [0, -9517]], + [[21214, 33508], [-12, -1], [0, -1153], [-6, -7413], [-248, -1], [-434, -1], [-320, -1], [16, -313], [27, -125]], + [[20237, 24500], [-476, 14], [0, -858], [-232, -1]], + [[21214, 34460], [0, -952]], + [[15304, 43982], [-41, 216], [-15, 259], [-7, 362], [11, 243], [-4, 182], [-28, 165], [-10, 184], [31, 400], [14, 395], [42, 540], [24, 638], [28, 1430], [-4, 364], [13, 177], [16, 690], [-12, 111], [24, 154], [6, 271], [-17, 30], [5, 288], [-12, 77], [12, 598], [-23, 284], [62, -244], [-16, 165], [36, -36], [68, 114], [28, -160], [41, -17], [16, 79]], + [[18971, 43982], [0, -1905], [210, 0], [349, 0]], + [[20921, 45888], [0, -3811]], + [[20920, 49696], [1, -3808]], + [[24913, 32555], [14, -197], [-32, -37], [18, -83], [-60, -186], [6, -357], [-23, -50], [-32, -290], [8, -421], [-25, -37], [-36, -246]], + [[24751, 30651], [9, -148], [-53, -181], [-4, -171], [-21, 4], [-11, -185], [0, -414], [-47, -85], [-54, -479], [13, -178], [-49, -74], [13, -127], [-2, -221], [-52, -236], [22, -108], [-23, -127], [30, -170], [-15, -300], [19, -77], [6, -213], [-20, -93], [-1, -199]], + [[24511, 26869], [-253, -3], [-299, -2], [-249, -1]], + [[23710, 26863], [-2, 1033], [-40, 76], [-38, -67], [-43, 170]], + [[23587, 28075], [12, 3311], [-50, 2121]], + [[23549, 33507], [459, 0], [305, 0], [478, 0], [28, -260], [-23, -289], [-41, -174], [-23, -256], [181, 27]], + [[24657, 44957], [50, -258], [17, -250], [65, -245], [8, -163], [-13, -373], [-37, -203], [-7, -235], [-27, -117], [-45, -63], [-28, -113], [-80, -34], [-24, -171], [-2, -293], [37, -217], [-4, -246], [-36, -235], [-16, -287], [-64, -141], [0, -392], [-17, -25]], + [[24434, 40896], [-67, 327], [-13, 129], [-60, -25], [-320, -46], [-130, 8], [-256, -24], [-359, 52]], + [[23229, 41317], [-21, 167], [4, 202], [-9, 593], [-27, 444], [8, 239], [-42, 162], [-6, 267], [11, 203], [-20, 132], [-6, 233], [-29, 134], [-25, 281], [4, 148], [-19, 163], [2, 243], [-24, 42]], + [[23030, 44970], [-11, 248], [-32, 220], [20, 153], [31, 528], [-6, 174], [-27, 28], [10, 301], [-16, 215], [39, 3]], + [[24488, 46841], [9, -224], [37, -196], [-23, -228], [7, -443], [29, -379], [93, -140], [17, -274]], + [[23549, 34460], [-321, 0], [-322, 0], [-194, 0], [-321, 0], [-387, 0], [-257, 0], [-265, 0]], + [[21478, 40174], [242, 0], [408, 0], [291, 0], [352, 0], [233, 0], [351, 0]], + [[23355, 40174], [32, -167], [37, -90], [30, 79], [24, -314], [-24, 0], [-39, -403], [53, -311], [22, -285], [61, -123], [-2, -695], [0, -3405]], + [[24434, 40896], [-22, -389], [21, -602], [26, -282], [74, -367], [10, -125], [65, -253], [20, -148], [12, -470], [21, -201], [24, 8], [31, 140], [69, -161], [16, -101], [-20, -164], [0, -201], [-46, -513], [5, -308], [65, -363], [53, -122], [56, -220], [20, -198], [28, -67], [6, -259], [21, -232], [-20, -254], [36, -465], [33, -118], [4, 157], [38, -198]], + [[25080, 34420], [-2, -415], [-26, -344], [-37, 110], [-19, -265]], + [[24996, 33506], [-20, 4]], + [[24976, 33510], [-17, -2]], + [[24959, 33508], [8, -222], [-27, -81], [12, -165], [-31, -14], [23, -202], [-31, -269]], + [[23549, 33507], [0, 953]], + [[23355, 40174], [-26, 63], [2, 154], [-63, 440], [-19, 330], [-20, 156]], + [[20921, 45888], [339, 0], [237, 0], [427, -2], [238, 0], [310, 0], [113, -375], [35, -35], [32, 166], [50, -34], [100, 64], [48, -186], [76, -94], [41, -120], [27, -273], [36, -29]], + [[23587, 28075], [-63, 84], [-46, 122], [-28, 197], [-68, 198], [-38, -181], [-54, 53], [-14, 107], [-48, -172], [-46, 65], [-98, -253], [-11, -116], [-23, 160], [-24, 0], [-43, 246], [-11, -116], [-45, 33], [-17, 161], [-45, -180], [-5, -228], [-21, -9], [-12, 329], [-45, -152], [-55, 131], [-9, 152], [-22, 9], [-33, -183], [-42, -9], [-2, 215], [-36, 60], [-1, 212], [-78, -2], [-34, -119], [-23, 146], [-40, -28], [-65, 143], [-67, 38], [0, 171], [-20, 171], [-32, 97], [-10, -157], [-37, 62], [-32, -43], [-61, 333], [-33, 20], [-1, 3665], [-350, 1], [-485, 0]], + [[24334, 20156], [-61, 151], [29, 150], [55, -125], [-23, -176]], + [[25053, 21267], [-35, -13], [42, 169], [-7, -156]], + [[24968, 21496], [-51, -34], [-12, 119], [-60, 52], [-25, 182], [-46, 51], [-51, -318], [-8, -147], [15, -119], [59, -108], [37, 30], [42, 218], [24, -105], [44, 78], [-24, -221], [-30, 4], [4, -131], [29, 6], [15, -162], [17, 29], [10, 210], [24, 151], [24, -45], [-17, -153], [34, -184], [-20, -206], [-9, 85], [-46, -156], [18, -139], [-44, 72], [21, -136], [-38, 12], [24, -213], [41, -100], [-6, -117], [57, -34], [27, -142], [15, 58], [46, -378], [-35, -189], [-23, 97], [-49, -249], [31, 306], [-24, -79], [-32, 269], [-35, 107], [-54, 58], [19, 146], [-92, 276], [-36, 2], [39, -150], [9, -229], [-16, -106], [12, -104], [-22, -185], [-28, -87], [-6, 264], [-41, 165], [-50, -51], [-18, -243], [-18, -71], [-39, 119], [-10, -92], [-30, 143], [-25, -25], [-69, 188], [19, 138], [39, -55], [-40, 249], [9, 265], [-19, -237], [-65, 95], [-8, 208], [-22, -15], [-12, 225], [-49, -65], [3, 214], [-38, 1], [-38, -167], [-23, 38], [27, -274], [23, 14], [-70, -179], [-113, 134], [-96, 246], [-48, 76], [-83, -7], [-68, -62], [-25, -70], [-16, 203], [29, 95], [-4, 246]], + [[23778, 21101], [22, 179], [1, 395], [-10, 201], [13, 169], [-7, 161], [31, 283], [22, 429], [-11, 130], [18, 65], [-46, 550], [7, 82], [-25, 188], [3, 94], [-28, 154], [6, 201], [-31, 366], [-33, 174], [0, 1941]], + [[24511, 26869], [26, -173], [-23, -320], [16, -359], [-3, -163], [54, -270], [-34, -367], [-14, 4], [-1, -257], [-46, -252], [-22, -45], [-19, -228], [-9, -315], [-20, -83], [3, -214], [-12, -257], [-26, -7], [2, -260], [12, -163], [-21, -107], [264, 0], [272, 0], [-31, -605], [16, -248], [32, -195], [10, -281], [31, -208]], + [[22840, 13727], [-7, 67], [-20, 607], [-38, 691], [-2, 561], [6, 120], [2, -489], [9, -333], [29, -592], [21, -632]], + [[22836, 16657], [-39, -561], [-9, -234], [-13, -12], [8, 227], [31, 467], [56, 442], [-34, -329]], + [[22878, 17074], [14, 264], [31, 240], [5, -124], [-50, -380]], + [[23051, 17975], [-82, -302], [-37, -186], [7, 189], [24, 41], [81, 343], [7, -85]], + [[23495, 19896], [25, -39], [-109, -464], [84, 503]], + [[23778, 21101], [-16, 2], [-22, -401], [16, -192], [-63, -9], [-154, -416], [26, 233], [-54, -96], [18, 328], [-15, 164], [-23, -27], [-13, -195], [-50, 159], [19, -142], [-11, -252], [33, -88], [-16, -51], [21, -179], [-49, -326], [-24, -56], [-2, -246], [-58, -302], [-66, -235], [-97, -143], [0, -118], [65, 169], [-51, -186], [-35, 62], [-56, -120], [11, 197], [-44, -106], [-20, 180], [0, -164], [-38, 7], [-27, 157], [23, -294], [46, -268], [-70, -220], [-39, 306], [3, -453], [-45, -220], [7, 261], [-18, -256], [-10, 152], [-55, -255], [25, -112], [30, 160], [-1, -112], [-44, -390], [-19, 73], [-76, -3], [37, -52], [5, -174], [31, -143], [-46, -670], [-27, -95], [10, 233], [-33, -191], [-48, 321], [31, -300], [-13, -83], [53, -67], [23, 75], [-11, -475], [-20, -25], [-1, -350], [19, -95], [16, -491], [-5, -185], [37, -297], [1, -269], [28, -62], [-7, -204], [26, 121], [1, -155], [-32, -5], [-28, -97], [-3, -130], [-44, 130], [-38, 226], [-40, 62], [-118, 23], [-40, 225], [-59, 131], [-16, -39], [-45, 248], [-79, 68], [-8, 223], [-14, 29], [-24, 547], [-59, 437], [6, 358], [-23, 127], [14, 219], [-11, 281], [-25, 138], [-29, 24], [-44, 277], [-4, 185], [-28, 173], [-27, 308], [-56, 233], [-35, 620], [-26, 202], [-12, 243], [-24, 169], [-12, 365], [-29, 135], [-12, 160], [-58, 247], [-4, 112], [-53, 181], [-2, 130], [-22, -47], [-27, 318], [-31, 1], [-7, 104], [-24, -85], [-133, 51], [-59, 173], [-23, -221], [-31, 14], [-45, -76], [-28, -291], [-34, -601], [11, -91], [-36, -98], [-44, -366], [-43, 33], [-49, 152], [-22, 140], [-32, 33], [-34, 200], [-63, 81], [-40, 183], [-29, 210], [-23, 21], [-47, 222], [-14, 254], [-30, 284], [-7, 225], [6, 263], [-49, 427], [-8, 256], [-34, 238], [-62, 254], [-41, 94], [-50, 273], [-10, 131], [-49, 207], [-66, 413], [-57, 153], [-51, 511], [-32, 47]], + [[29906, 44002], [2, -937], [-14, -395]], + [[29894, 42670], [-15, 67], [-108, -120], [-17, 46], [-45, -97], [-27, 52], [-80, -73], [-5, 114], [-62, -302], [-14, 52], [-128, -330]], + [[29393, 42079], [-22, 196], [66, 218], [-16, 147], [17, 1446]], + [[30201, 46046], [10, -35], [-30, -358]], + [[29721, 45371], [-22, 178], [18, 317], [9, 421], [13, 172], [1, 440], [26, 358], [25, 124], [45, 610], [3, 337], [17, 110], [39, 33], [46, 169], [36, 268], [-24, 294], [36, 341], [0, 179]], + [[29989, 49722], [27, 364], [32, 167], [42, -77], [16, 100]], + [[30106, 50276], [35, -3261], [-4, -398], [45, -317], [19, -254]], + [[30063, 43031], [-30, -87], [35, 392], [-5, -305]], + [[30096, 43055], [-23, -20], [3, 332]], + [[30063, 43429], [-6, -111], [-36, 319], [1, -275], [-16, -190], [6, -168], [-21, -228], [-97, -106]], + [[29498, 45403], [6, 1535], [-14, 129], [-31, -94], [11, 337], [-20, 595], [32, 346], [9, 424], [-22, 226], [10, 393], [-12, 117], [7, 294]], + [[29474, 49705], [265, 9], [250, 8]], + [[25368, 21594], [-61, -15], [56, 75], [5, -60]], + [[26060, 30622], [82, -2762], [31, -1141], [33, -611], [32, -345], [-7, -184], [27, -130], [-34, -162], [-12, -349], [-23, -336], [28, -524], [-16, -698], [23, -182], [3, -165]], + [[26227, 23033], [-310, 0], [-411, -1], [-9, -241], [32, -268], [27, -99], [-1, -382]], + [[25555, 22042], [8, -57], [-56, -332], [-54, -74], [6, 82], [-37, 226], [-12, 193], [8, 160], [-27, 272], [-22, -304], [-9, -435], [-51, 119], [-29, -26]], + [[25280, 21866], [-22, 2861], [30, 1543], [81, 4206], [-26, 171]], + [[25343, 30647], [-1, 22], [406, -37], [312, -10]], + [[27521, 11909], [-60, -399], [62, 529], [-2, 123], [31, 100], [-31, -353]], + [[27042, 14480], [-27, 365], [18, -89], [9, -276]], + [[27576, 15790], [-35, 409], [-13, 371], [48, -780]], + [[27452, 18403], [-13, -250], [-2, -353], [-14, 224], [-5, 333], [34, 46]], + [[26205, 20530], [-6, -100], [-29, 106], [35, -6]], + [[25779, 21913], [15, -22], [-189, -141], [97, 127], [77, 36]], + [[27204, 22485], [20, -58], [-7, -281], [11, -131], [5, -318], [61, -1358], [68, -923], [102, -1034], [11, -163], [-18, -126], [0, -378], [17, -360], [-25, 359], [6, 749], [-50, 50], [8, 219], [-27, 93], [5, -246], [25, -548], [100, -1348], [10, -288], [41, -607], [34, -425], [10, -308], [2, -426], [-22, -988], [-5, -560], [-3, 240], [-16, -279], [-30, -259], [-11, -272], [9, -198], [-38, -244], [-37, -3], [-36, -185], [-40, 80], [-15, -80], [-50, -45], [-25, 204], [8, 197], [57, -227], [-10, 202], [-45, 126], [-38, 609], [-22, 93], [-4, 158], [-69, 190], [-24, -55], [-32, 502], [-8, 502], [-45, 95], [64, 439], [-22, -50], [-25, -266], [-25, -39], [-12, 333], [8, 264], [-13, 104], [23, 145], [-38, -85], [-19, 72], [20, -309], [-46, 88], [-57, 697], [-15, 341], [-37, 180], [32, 93], [13, 214], [41, 278], [-7, 231], [-29, -176], [-20, 301], [-33, -106], [31, -87], [-9, -344], [-13, 0], [-42, 352], [17, 402], [-5, 120], [36, 548], [9, 810], [-27, 164], [-20, 411], [-67, 10], [-12, 174], [-47, 325], [-42, 171], [-2, 258], [-33, 93], [-42, 391], [-96, 352], [-43, -64], [-23, 50], [-36, -143], [11, -232], [-44, 38], [-66, -259], [-39, -107], [2, 142], [-35, -168], [-34, 10], [-61, -83], [12, 229], [-15, 173], [-88, 446], [52, -124], [-3, 156], [-24, -30], [-39, 136], [-9, 235], [-28, -103], [24, -46], [7, -193], [-90, 317], [-83, 143], [12, 105], [60, -69], [-28, 200], [-80, -62], [-52, -95], [-102, -63], [34, 154], [-25, 78], [-15, -97], [-31, 237], [6, -211], [-48, -294], [-33, -13], [29, 219], [-21, 99]], + [[26227, 23033], [36, -536], [302, -118], [433, -175], [13, -364], [30, -21], [21, 429], [-8, 300], [21, 139], [71, -147], [58, -55]], + [[27217, 22527], [-8, 324], [18, 40], [-10, -364]], + [[27271, 23771], [2, 223], [22, 32], [-24, -255]], + [[27374, 24999], [15, -57], [-40, -261], [-45, -20], [28, -53], [-18, -161], [-25, -48], [-29, -279], [-18, -296], [11, -127], [-40, -2], [55, -139], [-32, -253], [-20, 93], [9, -316], [-26, -348], [5, -247]], + [[26060, 30622], [357, 3]], + [[26417, 30625], [337, 27]], + [[26754, 30652], [-54, -344], [-13, -212], [95, -433], [44, -39], [27, -321], [7, -205], [36, -245], [13, -189], [87, -393], [15, -220], [37, -115], [34, -187], [2, -219], [48, -391], [70, -254], [2, -174], [18, -158], [7, -427], [59, -267], [19, -373], [-7, -180], [22, -203], [52, -104]], + [[25280, 21866], [-18, -121], [-33, 136], [-42, -78], [-29, 130], [-111, -194], [-22, 115], [-2, -149], [-26, -87], [-6, -128], [-23, 6]], + [[24751, 30651], [362, -3], [230, -1]], + [[28020, 28522], [0, -65], [-53, -132], [-49, -261], [-54, -427], [-14, -336], [-33, 106], [33, -215], [-25, -52], [-32, -266], [-29, -49], [-8, 95], [-29, -163], [10, -79], [-44, -218], [-29, -79], [-25, 183], [-1, -175], [18, -60], [-35, -228], [-56, -96], [-35, -141], [-56, 62], [15, -93], [-31, -26], [44, -90], [-11, -166], [-46, -106], [-34, 180], [-7, 249], [-20, 91], [16, -419], [33, -200], [-59, -347]], + [[26754, 30652], [123, 241], [108, 150], [338, -99], [13, -176], [28, 89], [37, -279], [5, -259], [299, -38], [14, -19], [209, -1212], [92, -528]], + [[25667, 44928], [-14, -294], [-39, -1109]], + [[25614, 43525], [-87, 0], [-3, -4219], [-1, -348], [-25, -118], [7, -180], [-19, -167], [35, -281], [8, -394], [-42, -366], [5, -97], [-33, -113], [-25, -327], [-26, 19], [-13, -170], [17, -95], [-27, -118], [-2, -367], [-21, -13], [19, -175]], + [[25381, 35996], [-33, -317], [22, -229], [-11, -86], [-91, -113], [-18, -213], [22, -257], [-14, -183], [-117, 281], [-40, -23], [-36, -277], [15, -159]], + [[24657, 44957], [495, -24], [297, -14], [218, 9]], + [[25614, 43525], [391, -1], [278, -2], [0, -118]], + [[26283, 43404], [2, -767], [-7, -4182]], + [[26278, 38455], [-15, -340], [26, -50], [-6, -186], [-54, -46], [-52, -147], [-20, 89], [-55, -27], [8, -359], [-54, -202], [-12, -234], [-42, -38], [-24, -208], [-4, -221], [-38, -179], [-65, 218], [1, 110], [-31, -47], [-36, -188], [1, -124], [-62, -96], [-22, 174], [-56, -143], [-27, -250], [-13, 111], [-73, 190], [-34, -62], [-30, -168], [-8, 154], [-32, -55], [-35, 87], [7, -178], [-40, -44]], + [[26901, 37163], [5, -327], [-19, -164], [46, -332], [-3, -87], [47, -370], [5, -112], [51, -238], [42, -47]], + [[27075, 35486], [-108, -496], [-78, -218], [-24, -229], [-37, -122], [-5, -150], [-60, -127], [-15, -161], [-104, -154], [-44, -124]], + [[26600, 33705], [-17, -34], [-388, 75], [-85, -12], [-178, 29], [-135, 44], [-357, -25], [-65, 86], [6, -363], [-385, 1]], + [[26278, 38455], [26, 92], [26, -131], [54, 47], [34, -138], [35, -417], [92, -92], [54, -251], [38, 147], [47, -92], [17, -111], [43, 34], [34, 184], [39, 55], [18, -301], [35, -97], [31, -221]], + [[28864, 31094], [-45, -70], [52, 180], [-7, -110]], + [[28770, 33602], [6, -1]], + [[28776, 33601], [20, -509], [20, -289], [42, -447], [-44, 312], [-44, 934]], + [[28746, 33603], [6, -1]], + [[28752, 33602], [10, 0]], + [[28762, 33602], [-29, 1]], + [[28733, 33603], [13, 0]], + [[28728, 33603], [-2, -94], [44, -381], [26, -418], [-10, 2], [-31, 391], [7, -233], [-31, 50], [-51, 210], [34, -237], [-32, -140], [-67, 117], [35, -131], [-53, -148], [-52, 70], [-18, 302], [-1, -186], [19, -209], [-12, -117], [48, -14], [24, 66], [46, -29], [31, 68], [40, -18], [-9, -229], [15, -405], [11, 450], [23, 97], [33, -10], [19, -232], [-1, -214], [-16, -233], [-32, 6], [-36, -305], [-34, -137], [-33, 2], [-38, 212], [-11, -106], [-37, 178], [32, 84], [-34, 16], [-5, -295], [-13, 82], [-31, -37], [-65, 150], [83, -273], [54, -81], [2, -155], [-51, -113], [32, -89], [-56, -257], [-21, 7], [-67, 312], [39, -337], [49, -128], [34, 135], [28, -97], [24, 268], [10, -166], [26, -19], [-3, -146], [-64, -306], [-14, 148], [-24, -174], [-54, 27], [-55, -118], [-8, 59], [-37, -217], [-41, -10], [18, 116], [-27, 196], [14, -230], [-18, -45], [19, -155], [-43, -111], [-37, -177], [-46, -322], [-28, -491], [3, 304], [-14, -297], [-17, -115], [-61, 63], [-89, -82]], + [[26417, 30625], [7, 437], [18, 98], [38, -19], [24, 318], [67, 251], [76, 27], [71, 279], [47, 139], [26, -3], [21, 301], [29, -20], [9, 122], [39, 109], [9, -145], [32, 33], [34, 219], [46, 86], [31, -110], [45, 369], [50, 189], [24, 411]], + [[27160, 33716], [5, -29], [115, -47], [153, -14], [164, -43], [395, 4], [216, 0], [520, 16]], + [[27477, 41405], [-41, -72], [18, -234], [-3, -380], [-35, -430], [-8, -269], [-20, -245], [-10, -308], [-51, -189], [-42, -236], [-50, -83], [-25, 73], [-28, -239], [-29, -8], [-17, -148], [-5, -488], [-20, 23], [-19, -142], [-10, 221], [-25, 60], [-18, -102], [-33, -392], [10, -268], [-24, -47], [-24, -303], [-67, -36]], + [[26283, 43404], [140, 21], [248, 53], [79, 387]], + [[26750, 43865], [17, -172], [112, -342], [68, 16], [319, 1013], [211, 219]], + [[27477, 44599], [0, -3194]], + [[26600, 33705], [477, -13], [83, 24]], + [[24976, 33510], [-17, -2]], + [[28253, 38900], [49, -62], [26, -105], [-12, -203], [24, -120], [42, -50], [43, -217]], + [[28425, 38143], [14, -61]], + [[28439, 38082], [6, -355], [-51, -113], [-34, -469], [29, -152], [58, 125], [22, -338], [22, -78], [74, -51], [24, -239], [78, -232], [-18, -87], [8, -279], [-10, -166], [-41, 162], [-13, -76], [-19, 206], [-69, 316], [-25, 208], [-1, -136], [36, -169], [22, -199], [29, -92], [17, -214], [34, -5], [40, -104], [-30, -52], [41, -177], [-3, -217], [-18, 96], [-34, -26], [18, -190], [-34, -45], [-78, 546], [49, -458], [38, -154], [18, 37], [31, -197], [3, -194], [-41, -100], [-7, 103], [-46, 192], [-10, 196], [-21, -26], [-72, 191], [-19, -63], [-54, 119], [21, -117], [44, 12], [12, -105], [85, -105], [3, -269], [46, -171], [5, -86], [44, -47], [14, 149], [78, -95], [36, -691]], + [[28770, 33602], [-22, 323], [-2, -322]], + [[28733, 33603], [-5, 0]], + [[27075, 35486], [-6, -128], [45, -353], [50, -147], [27, 6], [51, 233], [39, -172], [77, 96], [19, 205], [40, -37], [65, 166], [8, -75], [50, 150], [19, 201], [-18, 114], [23, 266], [58, 357], [22, 329], [36, 200], [44, 595], [23, -47], [12, -167], [59, -105], [30, 209], [12, 196], [42, 398], [32, -113], [38, 273], [20, -9], [72, 451], [1, 203], [25, 347], [135, -584], [28, 356]], + [[24848, 54050], [-127, -1338], [51, -142], [31, -321], [278, -367], [79, -215], [60, -54], [26, 36], [113, -179], [6, -254], [56, -75], [28, -148], [-1, -345], [-16, -271], [46, 57], [12, -69], [-23, -304], [23, -135], [60, -80], [9, 240], [25, 72], [62, 383], [92, 0], [143, -395], [-56, -231], [-74, -515], [-49, -720], [-30, -569], [-32, -767], [-12, -540], [7, -466], [32, -1410]], + [[27768, 39644], [-3, -976], [97, 395], [21, 125], [25, -61], [57, 355], [5, -111], [48, -94], [31, 8], [9, 173], [43, 21], [40, 125], [47, -189], [34, 18], [-4, -182], [21, -45], [14, -306]], + [[27477, 41405], [0, -1762], [291, 1]], + [[28897, 39805], [-47, -299], [11, -206], [-10, -150], [43, -281], [11, -172], [0, -322], [23, -243], [41, -255], [23, 3], [11, -652]], + [[29003, 37228], [-4, -1]], + [[28999, 37227], [-7, 0]], + [[28992, 37227], [-170, 14], [-27, 2261], [0, 141]], + [[28795, 39643], [52, 222], [50, -60]], + [[28452, 37892], [-13, 190]], + [[28425, 38143], [20, 119], [38, -197], [-31, -173]], + [[28992, 37227], [-3, -224], [-17, -180], [-22, -3], [-56, -529], [-10, -210], [-97, -756], [-23, -246], [-10, -362], [-18, 113], [-2, 232], [24, 561], [29, 117], [12, 180], [23, 68], [17, 299], [-43, 32], [-20, -87], [4, 292], [18, 136], [-38, -6], [27, 156], [-24, 71], [17, 254], [-31, -280], [-20, -30], [-69, 430], [27, 215], [-30, -34], [2, 118], [74, -112], [-52, 208], [-10, 157], [-21, 7], [14, 149], [24, -158], [-4, 172], [23, 60], [-39, 139], [-23, -67], [4, 216], [27, -106], [42, 327], [-30, -41], [-20, -174], [-7, 258], [46, 389], [20, 39], [28, 403], [-42, -89], [5, -165], [-40, -202], [-12, 170], [-9, -273], [-7, 175], [-24, -315], [-47, 52], [41, -334], [-23, -20], [29, -123], [-39, -234], [12, -125], [-8, -192], [6, -436], [33, -212], [-10, -120], [-61, 291], [70, -471], [18, -169], [-1, -180], [-66, 295], [-77, 111], [-38, 166], [-20, 195], [-44, -157], [-15, 279], [21, 180], [41, 196], [4, 179]], + [[27768, 39644], [225, -1], [321, 0], [481, 0]], + [[29009, 40204], [82, 279], [-69, 480], [-25, 74], [-7, 200], [-26, 23], [-4, 248], [38, 363], [-22, 173], [32, 123], [39, 255], [11, 176], [41, 159]], + [[29099, 42757], [221, -696]], + [[29320, 42061], [-35, -528], [-50, -152], [-20, -260], [7, -71], [74, -110], [5, -142], [-21, -520], [-21, -140], [-11, -528], [-54, -293], [-31, -287], [15, -81], [-32, -88], [-35, -208], [-25, -280], [-36, -211], [-26, -15], [23, 401], [-43, 130], [-25, -52], [-34, 209], [-30, 78], [-48, 266], [-7, 273], [41, 346], [74, 136], [34, 270]], + [[29273, 41381], [-8, -151], [-39, -105], [20, 274], [27, -18]], + [[29782, 42336], [-46, -134], [6, -65], [-65, -235], [47, 4], [25, 162], [72, 12], [45, 138], [25, -3], [-153, -400], [-68, -124], [-22, 21], [-42, -118], [-37, 7], [-41, -95], [-182, -221], [-49, -28], [-8, 207], [30, 212], [36, 6], [17, 141], [65, 150], [72, -70], [21, 104], [103, 5], [49, 47], [73, 287], [27, -10]], + [[29393, 42079], [-34, -173], [-9, -184], [-36, -16], [6, 355]], + [[29099, 42757], [-10, 128], [-42, 47], [-31, 125], [-19, 194], [-4, 404], [-48, 104], [-24, 219], [-465, 1], [-265, 1], [-265, 1], [-238, 1], [0, 1025]], + [[27688, 45007], [207, 504], [29, 276], [-32, 126], [-6, 470], [-34, 389], [136, 317], [514, -11], [12, 38], [96, 836], [35, 184], [40, 85], [33, 233], [55, 116], [47, 329], [120, 538], [112, 278], [48, -23], [374, 13]], + [[29009, 40204], [-31, -197], [-72, -139], [-9, -63]], + [[27477, 44599], [76, 80], [135, 328]], + [[30741, 47862], [-27, 147], [36, -61], [-9, -86]], + [[30794, 48218], [-29, -99], [14, 186], [15, -87]], + [[30910, 48379], [-34, -45], [-1, -112], [-31, 140], [23, 236], [22, 30], [21, -249]], + [[30106, 50276], [37, 52], [13, -163], [31, 351], [40, -7], [-23, 123], [40, 305], [51, 152], [-3, 138], [37, 164], [-8, 361], [35, 531], [35, 166], [15, 493], [206, 1401], [59, -41], [5, -324], [37, -112], [73, 106], [82, 216], [43, -33], [108, -508], [6, -2122], [-4, -496], [39, -119], [59, -51], [-12, -224], [18, -202], [-12, -230], [41, -214], [41, 47], [38, -391], [-22, -47], [39, -248], [-61, -332], [-36, 25], [-50, -91], [-18, -134], [-47, 93], [-38, -88], [-7, -275], [-24, 132], [1, -159], [-22, -105], [-14, 290], [-89, 12], [-40, -145], [10, -330], [-74, 252], [18, 320], [-17, 43], [-12, -202], [-39, -62], [11, -198], [-15, -43], [-25, -301], [4, -160], [-53, -234], [-29, 81], [1, 168], [-41, -431], [-13, 248], [-22, -229], [-5, 313], [-29, -233], [15, -113], [-14, -128], [-17, 526], [8, -577], [-24, 155], [-33, -169], [11, 235], [-43, -81], [-50, -311], [23, -156], [-39, -41], [3, -176], [-69, -328], [-22, -345], [-23, -20]], + [[24976, 55400], [44, -21], [194, 519], [83, 80], [365, -983], [601, -1684], [29, -504], [51, -302], [28, -34], [19, 104], [87, 27], [-14, -176], [20, -442], [39, -269], [30, 112], [63, -6], [41, -234], [-36, -336], [281, -848], [16, -148], [26, -801], [80, -2403], [-1, -117], [-72, -950], [-20, -443], [0, -189], [-18, -245], [-27, -62], [-43, -267], [-67, -164], [-25, -174], [-8, -369], [8, -206]], + [[99717, 62342], [61, -118], [81, -342], [-56, 105], [-38, 184], [-57, 66], [9, 105]], + [[777, 62716], [26, -103], [-38, -77], [12, 180]], + [[362, 62745], [54, -60], [-43, -46], [-25, -367], [-58, 118], [40, 187], [-71, 215], [72, 91], [31, -138]], + [[560, 62515], [-40, -97], [-30, 89], [-89, -40], [114, 147], [34, 291], [32, -50], [-23, -166], [2, -174]], + [[720, 62952], [-23, -196], [60, -44], [2, -151], [-48, -132], [-34, 0], [-25, -143], [-7, 207], [-28, -234], [-11, 139], [22, 78], [-8, 154], [52, -18], [6, 148], [-21, 146], [63, 46]], + [[99653, 62831], [-22, 91], [40, 16], [-18, -107]], + [[99968, 62794], [-48, 74], [-3, 110], [49, 104], [33, -118], [-31, -170]], + [[876, 63090], [-12, -132], [-42, 183], [34, 92], [20, -143]], + [[99385, 63007], [-3, -147], [-56, 0], [-12, -162], [-27, 124], [45, 165], [35, 43], [23, 235], [27, -66], [-32, -192]], + [[1546, 63317], [66, -118], [62, 39], [49, -39], [-97, -50], [-49, -75], [-99, 36], [-62, 154], [130, 53]], + [[1882, 63591], [-68, -66], [53, 262], [38, -104], [-23, -92]], + [[1399, 63788], [34, -203], [-57, -153], [28, -189], [-91, -7], [-79, -177], [-48, 50], [-41, -73], [-81, 6], [45, 78], [40, -32], [31, 158], [34, -72], [51, 53], [12, 142], [60, 13], [31, 155], [-57, 105], [68, 182], [20, -36]], + [[98330, 63982], [-22, -96], [9, -170], [-95, 67], [60, 194], [48, 5]], + [[2381, 64192], [-56, -135], [-14, 84], [28, 179], [49, 0], [-7, -128]], + [[2607, 64726], [30, -65], [-17, -151], [-76, 113], [63, 103]], + [[98083, 64934], [62, -11], [55, -151], [-17, -84], [50, -27], [-34, -89], [-64, 37], [-41, -153], [-50, 87], [13, 155], [-51, -10], [3, 107], [-45, -2], [51, 155], [68, -14]], + [[3101, 66018], [56, -95], [-11, -257], [-80, -213], [-42, -58], [-57, -383], [-26, -22], [-54, -222], [-60, -80], [63, 398], [3, 202], [43, 168], [48, -51], [19, 418], [46, 138], [52, 57]], + [[3637, 66541], [-25, -202], [-34, 82], [59, 120]], + [[3453, 66789], [23, 74], [16, -348], [41, 104], [16, 197], [52, -105], [-14, -114], [-46, -82], [-40, -222], [63, 130], [22, -182], [-82, -132], [-8, -156], [-60, 39], [16, -201], [-34, 58], [-144, -261], [-32, -161], [-45, -34], [-51, 129], [37, 136], [68, 101], [43, -34], [8, 114], [37, 2], [0, 277], [46, -9], [-20, 123], [42, 63], [32, -160], [-3, 187], [-63, 49], [-36, 194], [39, 198], [77, 26]], + [[3958, 67075], [-11, -94], [-70, 29], [25, 79], [56, -14]], + [[3697, 67169], [60, -94], [-65, -169], [-41, 0], [-24, 156], [42, 193], [28, -86]], + [[3796, 67351], [21, -133], [-41, -170], [-27, 236], [16, 117], [31, -50]], + [[4603, 67703], [20, -131], [-70, 71], [-4, 154], [54, -94]], + [[4698, 68459], [-41, 165], [52, 56], [-11, -221]], + [[13345, 68693], [12, -141], [-37, -75], [-40, 159], [65, 57]], + [[4286, 68856], [51, -6], [36, -197], [20, -307], [65, -42], [26, -202], [-54, 36], [-36, 155], [-16, -161], [-55, -130], [-46, 50], [-95, -28], [-56, -169], [-20, -188], [-70, -84], [-40, 23], [-31, 136], [-13, 209], [72, 178], [43, 398], [40, 77], [48, -63], [20, 118], [111, 197]], + [[4851, 69047], [25, -78], [-31, -117], [-43, 146], [49, 49]], + [[12913, 69071], [35, -233], [-23, -106], [-34, 78], [22, 261]], + [[5465, 68969], [0, -138], [-37, 34], [5, 131], [32, -27]], + [[12839, 69091], [33, -448], [50, -236], [26, -280], [-48, 31], [0, 92], [-81, 383], [-24, 297], [10, 260], [34, -99]], + [[13314, 68975], [-6, -200], [-70, -1], [27, 489], [38, -112], [11, -176]], + [[5354, 69164], [6, -156], [-78, -421], [26, 251], [-29, 135], [52, -4], [-17, 156], [40, 39]], + [[12775, 69347], [23, -91], [-27, -128], [-39, 50], [2, 162], [41, 7]], + [[5240, 69412], [0, -197], [-55, 145], [55, 52]], + [[5141, 69327], [42, 108], [-11, -245], [11, -195], [-62, 106], [-17, -132], [-9, 404], [45, 143], [1, -189]], + [[13184, 69529], [51, -218], [-29, -298], [-22, 105], [-12, 333], [12, 78]], + [[12697, 69549], [35, -84], [-34, -115], [-11, -160], [-15, 261], [25, 98]], + [[12718, 69559], [-29, 35], [26, 143], [3, -178]], + [[12762, 69626], [-28, 121], [32, 55], [-4, -176]], + [[12675, 69774], [-1, -180], [-42, 0], [43, 180]], + [[12692, 70287], [77, -56], [-49, -144], [-39, 44], [11, 156]], + [[6567, 70232], [-41, -15], [-7, 108], [53, 158], [-5, -251]], + [[12508, 70495], [41, 0], [-44, -195], [-24, 176], [27, 19]], + [[13354, 70541], [68, -465], [-3, -597], [-22, -217], [-37, -167], [-34, 95], [28, 166], [-20, 92], [-11, -198], [-35, 20], [49, 323], [-26, 373], [6, -430], [-51, -225], [-45, 105], [-34, 233], [45, 140], [-14, 126], [8, 425], [56, -14], [-30, 143], [83, 110], [19, -38]], + [[12746, 70951], [25, -18], [0, -264], [-47, 10], [-64, -218], [-27, 77], [33, 239], [48, 17], [32, 157]], + [[12999, 71016], [34, 45], [76, -213], [-24, -269], [-40, -96], [-30, 104], [12, 117], [-90, 165], [8, 213], [43, 217], [34, 14], [8, -150], [-31, -147]], + [[12692, 71318], [82, -75], [31, 36], [43, -320], [-31, -86], [20, -128], [91, -106], [77, -418], [9, -256], [19, 42], [20, -243], [-62, 42], [-41, -159], [72, 78], [8, -258], [34, 62], [45, -261], [-40, -60], [34, -83], [38, 84], [-28, -375], [-41, -113], [24, -37], [48, 115], [3, -366], [-15, -275], [-40, 9], [-41, 183], [-30, 420], [-53, -89], [23, 275], [-35, 243], [3, -178], [-43, 79], [-5, 156], [-108, 12], [-8, 198], [96, -41], [-65, 196], [11, 230], [26, 109], [-77, -105], [-37, 86], [22, 255], [43, 104], [-25, 156], [-14, 509], [-80, 33], [-3, 320]], + [[12956, 71488], [-3, -304], [-47, -89], [-61, 180], [18, 199], [93, 14]], + [[13092, 71316], [35, 4], [28, -273], [-42, -174], [-77, 302], [-3, 413], [59, -272]], + [[6152, 71755], [23, -87], [-92, -12], [14, 101], [55, -2]], + [[6876, 71799], [-8, -169], [-69, -226], [11, 252], [66, 143]], + [[6981, 71800], [9, -91], [-43, -104], [-36, 30], [16, 149], [54, 16]], + [[2618, 71827], [76, -52], [-45, -92], [-31, 144]], + [[12888, 72172], [19, -8], [78, -375], [-72, -197], [-40, 39], [15, 541]], + [[12581, 72294], [29, -299], [6, 193], [40, -74], [-16, -137], [18, -181], [-42, -31], [-17, -141], [22, -313], [-18, -139], [-10, -330], [-27, 18], [1, 370], [-29, -501], [-27, 142], [-12, 466], [28, 149], [35, -140], [5, 206], [-76, 170], [23, 81], [-46, 212], [3, 282], [20, 59], [56, -98], [-43, 182], [77, -146]], + [[12643, 72697], [125, -164], [58, 15], [48, -251], [-17, -112], [15, -346], [-19, -39], [-95, 431], [36, -353], [40, -222], [-20, -130], [-142, 4], [6, 270], [-17, 101], [5, 371], [-16, -86], [-28, 211], [-50, 187], [4, 87], [67, 26]], + [[7232, 72884], [84, -48], [-91, -135], [-37, -143], [-19, 143], [42, 241], [21, -58]], + [[2509, 72978], [-34, -159], [-42, 106], [76, 53]], + [[12140, 73010], [7, -191], [-23, -249], [-60, -39], [5, 171], [32, 169], [-42, 104], [5, 194], [32, 8], [44, -167]], + [[12184, 73405], [74, 39], [85, -403], [63, -1008], [-3, -889], [-9, -166], [-63, 295], [-48, 397], [29, 94], [-47, 143], [24, 215], [-43, -187], [19, 295], [-41, -82], [-29, 76], [-1, 216], [58, 190], [-40, 10], [-28, 211], [22, 176], [-56, -26], [-40, 215], [83, 389], [28, -81], [-37, -119]], + [[7211, 74241], [-6, -131], [-73, 222], [17, 80], [62, -171]], + [[7280, 74320], [57, -40], [-32, -267], [18, -53], [11, 229], [22, -64], [37, 206], [34, -46], [35, -213], [-31, -139], [13, -214], [77, 17], [-45, -216], [-8, -145], [-55, 17], [-59, 128], [-63, 17], [94, -214], [-8, -202], [-49, -55], [-11, 156], [-82, -91], [59, -91], [-37, -74], [-45, 35], [-68, -309], [-47, -122], [-19, -231], [-63, -268], [-45, -14], [17, 203], [63, 237], [-37, -17], [45, 364], [-82, -361], [-9, 75], [48, 221], [-110, 53], [-38, -65], [23, -121], [38, 128], [42, 12], [-9, -294], [-42, -128], [-62, 170], [-1, 349], [-19, 160], [-58, 167], [49, 319], [77, 256], [39, 52], [60, -87], [32, -423], [39, -199], [-28, 487], [39, -38], [-50, 208], [79, -20], [-89, 175], [0, 154], [55, 174], [42, -119], [7, -268], [36, 131], [-15, 136], [74, -102], [24, 211], [-44, 218], [75, -155]], + [[11925, 74483], [-31, -320], [-26, 407], [20, 71], [37, -158]], + [[7226, 74643], [88, -193], [-31, -26], [-117, 156], [34, 154], [26, -91]], + [[12100, 74892], [63, -129], [-50, -365], [64, 208], [13, 117], [130, -216], [-12, -269], [-65, 120], [74, -260], [-91, -32], [-164, 374], [16, -111], [117, -245], [43, -187], [85, 93], [28, -492], [-68, -59], [-198, 558], [16, -212], [28, -79], [15, -292], [-43, -166], [-40, 53], [-45, 236], [50, -56], [-87, 297], [17, 84], [-92, 261], [29, 323], [71, -276], [-104, 488], [44, 0], [-23, 215], [26, -5], [27, -219], [8, 231], [42, -106], [48, 203], [28, -85]], + [[12471, 74972], [34, -143], [-101, 95], [-11, 140], [50, 26], [28, -118]], + [[12322, 75166], [29, -82], [32, -309], [141, 0], [6, -172], [77, -532], [9, -268], [-29, 66], [-74, 706], [-25, -127], [14, -207], [93, -513], [12, -245], [-49, -54], [49, -50], [8, -152], [-33, -89], [-55, 150], [29, -209], [-23, -144], [-56, -130], [2, -90], [-73, -145], [10, 275], [-12, 143], [46, 156], [-28, 164], [68, -125], [1, 118], [-44, 0], [-23, 141], [55, 145], [-60, -63], [-28, 209], [-9, 365], [-28, 424], [0, 148], [-31, 168], [-17, 309], [16, 19]], + [[7340, 75002], [11, 139], [-35, 92], [69, 145], [73, -266], [3, 133], [48, -116], [21, 90], [13, -234], [18, 140], [9, -218], [-40, -171], [-57, 193], [-6, -271], [-57, -39], [-5, 209], [-23, -236], [-37, -17], [-8, -136], [-100, 227], [-6, 207], [78, -83], [-57, 182], [19, 65], [69, -35]], + [[7428, 75370], [-48, 119], [79, 181], [2, -164], [-33, -136]], + [[5104, 75701], [-12, -119], [-59, -86], [5, 293], [103, 225], [-37, -313]], + [[7171, 77004], [-42, 9], [43, 124], [-1, -133]], + [[9629, 77917], [66, 317], [37, 52], [-103, -369]], + [[8689, 78510], [20, -42], [-68, -196], [48, 238]], + [[8654, 78521], [-25, -185], [-28, 124], [53, 61]], + [[8924, 78943], [1, -134], [51, 52], [-86, -344], [-71, -369], [6, -119], [-125, -160], [60, 390], [88, 271], [53, 212], [23, 201]], + [[9479, 78882], [-46, 32], [52, 143], [-6, -175]], + [[3632, 79010], [33, -136], [49, 49], [35, -88], [-12, -445], [48, -251], [-56, -18], [-111, -186], [-12, -125], [-57, 177], [-74, 59], [-178, 351], [-35, 239], [40, 82], [116, -53], [23, 155], [60, 44], [32, 137], [22, -73], [77, 82]], + [[9083, 79156], [52, 5], [-3, -117], [60, 55], [-20, -166], [-31, 2], [-74, -204], [-23, 78], [53, 143], [-64, 47], [50, 157]], + [[8763, 79223], [20, -127], [-34, -337], [-48, -41], [42, 196], [-28, 68], [48, 241]], + [[7552, 78931], [23, 301], [25, -21], [-48, -280]], + [[1842, 79009], [40, -83], [-51, -39], [-131, 340], [32, 192], [5, -149], [105, -261]], + [[9206, 79177], [-54, -47], [2, 119], [146, 133], [-94, -205]], + [[8668, 80036], [32, -200], [-56, -53], [24, 253]], + [[4669, 85164], [-1, -116], [-93, 25], [37, 101], [57, -10]], + [[2081, 85494], [16, -196], [188, -232], [82, 216], [97, 20], [60, -153], [12, -159], [71, -184], [53, -20], [12, -117], [232, -98], [-36, -284], [-122, 58], [-80, -269], [-26, -203], [-42, 346], [-75, 148], [-50, -12], [8, 162], [-173, 337], [-63, -29], [-99, -239], [-82, 107], [-31, 383], [48, 418]], + [[6327, 99988], [-47, -101], [48, -169], [224, -155], [17, -194], [-74, -188], [-67, -17], [37, -231], [78, -55], [38, 244], [114, 378], [141, -247], [-26, -256], [158, -182], [67, 205], [106, -22], [59, 80], [270, -137], [31, -75], [-82, -245], [19, -120], [103, -89], [-123, 26], [-31, -65], [242, 15], [-62, -225], [147, -18], [77, -114], [0, 132], [108, 104], [114, -12], [-11, -144], [84, 40], [63, 134], [113, 19], [225, -196], [83, -204], [65, 84], [97, -126], [-1, -104], [190, -130], [69, 43], [276, -29], [162, -334], [198, -33], [146, 197], [213, 59], [196, -197], [91, -299], [173, -179], [67, -213], [114, 1], [0, -14159], [0, -3610], [6, -48], [125, -147], [31, 142], [112, -201], [109, 279], [146, 24], [8, -89], [-30, -431], [50, -184], [85, -159], [28, -266], [274, -980], [37, -471], [-1, -175], [180, 472], [62, 12], [42, 254], [0, 331], [52, 48], [-20, 201], [119, 142], [122, 240], [131, -444], [-23, -268], [29, -70], [17, -212], [63, -58], [71, -271], [37, -370], [27, -116], [98, -204], [68, -361], [65, -271], [6, -215], [57, -274], [26, -265], [44, -243], [102, -726], [89, -576], [-31, -222], [87, -99], [-22, -323], [65, -124], [21, -392], [59, 14], [136, -357], [72, -67], [54, -210], [42, -57], [26, -210], [80, -31], [28, -271], [-44, -407], [7, -386], [45, -501], [-32, -102], [-73, -615], [-85, -258], [-18, 113], [-37, -111], [-19, 98], [-1, 256], [-20, 88], [55, 270], [-52, -117], [-16, 216], [33, 168], [86, 7], [-11, 113], [-57, -15], [-3, 698], [-88, 500], [53, 269], [-93, -289], [-19, 94], [-91, -235], [-44, -60], [32, -57], [-12, -300], [-39, -318], [-57, 167], [-28, 320], [28, -64], [26, 152], [9, 289], [28, 100], [-6, 286], [90, 94], [-65, 32], [-26, 254], [-53, 45], [-12, 173], [-40, 110], [12, 212], [-48, -68], [-18, 293], [-62, 166], [-45, 262], [13, 73], [-189, 305], [31, 196], [53, -6], [-39, 103], [-31, 288], [19, 158], [-47, 18], [-12, 236], [20, 25], [113, -261], [3, 92], [-108, 261], [-2, 287], [115, -115], [-18, 76], [-98, 66], [-36, -264], [-48, 316], [44, -32], [9, 148], [-66, -64], [-42, 168], [-8, 237], [29, 227], [-6, 177], [-66, -370], [-71, 266], [-66, 38], [-51, 536], [-10, 314], [-20, -158], [-58, 740], [-37, 276], [9, 344], [-23, -287], [-39, 36], [54, -202], [-54, 32], [48, -247], [-1, -279], [61, -609], [-17, -42], [48, -497], [-11, -217], [-60, 28], [-42, 259], [-46, 73], [-79, -86], [17, 315], [-63, 506], [17, 88], [-37, 283], [14, -248], [-31, -240], [-68, 140], [-12, 279], [-39, -151], [-111, 335], [34, -216], [-29, -60], [60, -157], [17, 64], [71, -141], [-23, -26], [63, -180], [-32, -130], [35, -44], [9, 131], [47, -187], [29, -348], [-97, -169], [-63, 114], [10, -168], [-28, -97], [-60, 320], [-71, 25], [-126, 379], [29, 157], [-52, -94], [-73, 309], [-15, 237], [-85, 306], [-60, 84], [15, 127], [-57, -52], [-91, 211], [-63, 85], [-181, 432], [79, 130], [28, 196], [-41, 329], [41, 197], [46, -246], [-9, -275], [34, 287], [-81, 334], [-21, -174], [-74, -258], [-131, -225], [-82, 14], [-226, 311], [47, 233], [-34, 282], [-28, -60], [26, -145], [-97, -136], [-65, 123], [-231, 161], [-111, -85], [-115, -35], [-86, -100], [-93, 300], [17, 75], [-106, -6], [-59, 219], [-44, 2], [41, 301], [-11, 116], [20, 280], [-132, -580], [-43, -11], [-36, 140], [-117, 38], [88, 394], [-62, -79], [-19, 157], [-80, -128], [-18, 44], [58, 177], [-71, -15], [-35, -93], [-57, 4], [125, 233], [-88, -3], [-48, 116], [-20, 161], [29, 209], [102, 14], [-12, 105], [-73, 0], [-100, -356], [-28, 115], [-112, -204], [-27, 20], [10, 450], [-34, -327], [10, -207], [-37, 39], [-40, -99], [-49, 214], [46, 323], [51, 178], [-14, 120], [-89, -479], [-28, -2], [-45, -389], [-68, -71], [-35, -201], [74, 197], [21, -67], [-20, -221], [47, 252], [18, -252], [-32, -150], [11, -105], [54, 210], [41, -274], [-143, -528], [51, 92], [21, -186], [-40, 68], [-15, -213], [-50, -193], [-86, -38], [-65, 61], [19, 159], [-45, -84], [-25, -230], [-3, 258], [-37, 174], [12, -223], [-66, -322], [-31, 229], [-3, -536], [-48, 213], [-26, -287], [-45, -64], [0, -119], [-54, -120], [40, 469], [-71, -473], [-27, 28], [-95, -296], [-13, -175], [-24, 123], [-49, 33], [36, -129], [-17, -78], [-71, 98], [-91, -175], [-42, 101], [-26, 176], [23, 164], [69, 166], [53, -15], [54, 156], [77, 417], [-31, 14], [-102, -287], [-100, 153], [-14, 134], [49, 486], [67, 278], [52, 612], [-37, 368], [45, 139], [49, 19], [87, 270], [86, 204], [33, -2], [30, -182], [51, -39], [62, 117], [51, -74], [142, -106], [5, 85], [-62, 4], [-79, 122], [-125, 307], [48, 145], [66, 337], [93, 134], [-29, 65], [-93, -114], [-63, -395], [-130, 12], [-25, 223], [-52, -220], [-93, -173], [-26, -188], [-114, -133], [-51, -148], [-14, -169], [25, -195], [-45, 63], [-51, -163], [-79, -375], [25, -153], [-102, -327], [-77, 52], [83, -304], [-40, -350], [-137, -76], [-17, -92], [77, 23], [-12, -232], [-40, -107], [-70, 264], [-6, -248], [-66, -58], [38, -44], [-61, -126], [10, -195], [-108, -113], [33, -75], [-33, -114], [-15, -207], [9, -281], [40, 111], [93, -38], [99, -248], [-30, -381], [-71, -213], [-57, -10], [-9, -200], [-43, -31], [23, -209], [-53, -47], [-44, -201], [52, -73], [-38, -39], [-10, -212], [-29, 113], [-40, -228], [-31, 84], [-26, -124], [-70, 26], [-9, -229], [-71, -110], [-18, -217], [-59, 127], [-3, -241], [-43, -40], [7, -176], [-57, -34], [-20, 81], [-11, -279], [-30, 82], [-47, -111], [-57, -259], [54, 62], [-28, -156], [28, -99], [-57, -371], [-63, 131], [-14, -294], [-31, 32], [-69, -263], [-65, 174], [4, -179], [-46, -108], [33, -140], [-59, -61], [-25, 120], [-45, -39], [-60, -235], [70, 76], [1, -176], [-77, 67], [3, -91], [-77, -36], [-60, -282], [45, 85], [74, -113], [-39, -104], [8, -104], [-50, -130], [19, -190], [-48, 65], [31, 296], [-60, -171], [11, -261], [-54, 83], [-19, -175], [-43, 10], [-88, -127], [-45, 39], [14, -227], [-32, -347], [0, 430], [-62, 89], [-86, -218], [6, -118], [-87, -53], [22, -64], [-46, -262], [-19, 249], [-23, -270], [-28, -33], [-40, 137], [-28, -175], [-71, -138], [-66, 54], [37, 360], [57, -93], [-71, 220], [-51, -49], [-28, -191], [0, -228], [-52, -334], [-40, 22], [26, -197], [-28, -90], [-48, 65], [8, -139], [-69, 1], [-19, 142], [43, -18], [-61, 373], [-39, -159], [29, -98], [16, -391], [-31, 171], [-31, -219], [-39, 41], [-33, 270], [-44, 65], [-6, -167], [48, -198], [-77, -243], [12, 335], [-15, 247], [86, 240], [-11, -133], [65, 102], [-17, 71], [67, 181], [44, 23], [-15, 162], [89, 455], [113, 347], [187, 261], [-59, -117], [82, -27], [54, 99], [5, -112], [-47, -83], [63, -334], [5, 328], [76, -34], [14, -141], [54, -45], [7, 126], [-78, 184], [-16, 104], [59, 547], [49, 210], [124, 366], [80, 95], [79, 256], [63, 151], [86, -151], [-14, 464], [22, 179], [83, 407], [59, 125], [45, 223], [72, 143], [23, -151], [0, 249], [-29, 26], [26, 866], [42, 244], [-31, 191], [19, 272], [123, 500], [28, 452], [-34, -147], [-110, -165], [-26, -99], [-162, -255], [-31, 18], [-40, 279], [-45, 116], [51, 396], [-20, 71], [-77, -385], [-22, -246], [-29, 58], [43, -510], [-18, -195], [-62, 38], [-94, 630], [-56, 289], [-43, 40], [-14, -244], [-32, -67], [-39, 224], [-34, -35], [-46, 166], [-6, 227], [-116, -332], [-17, -160], [-15, 137], [-82, -194], [-31, 19], [-20, -253], [-111, -191], [15, 104], [-103, 13], [-12, 82], [74, 11], [-2, 89], [57, 172], [-34, 97], [-7, 306], [54, 119], [-8, 117], [-71, -127], [-43, 371], [29, 224], [65, 216], [-102, 717], [-74, 650], [-12, 210], [46, 492], [86, 240], [-102, -192], [-38, -439], [-53, -105], [39, -233], [-17, -395], [-62, 14], [-17, -119], [-77, -159], [-148, -111], [-72, -2], [-70, 82], [-23, 214], [26, 95], [-65, 117], [-74, 315], [-103, 209], [-43, 208], [32, 35], [5, 163], [-59, -106], [-60, 103], [122, 302], [-10, 144], [102, 256], [0, -183], [110, -72], [31, -250], [57, 235], [42, -86], [3, -287], [92, 176], [16, 145], [-39, 109], [-88, 86], [79, 124], [-40, 23], [6, 129], [-85, -262], [-156, -14], [-6, 105], [-74, 78], [-63, -64], [-33, 116], [68, 79], [-114, 368], [38, 88], [19, 304], [88, 153], [-68, -57], [-57, -257], [18, -117], [-49, -147], [8, -236], [-70, 137], [0, 260], [-57, 62], [-26, 165], [40, 222], [-40, 88], [-51, -121], [-26, 166], [23, 96], [93, 91], [-42, 48], [-48, 213], [139, 58], [-43, 332], [136, 784], [71, 197], [88, 136], [63, 254], [-93, -239], [-20, 422], [60, 362], [93, -44], [-12, 118], [-62, 113], [65, 189], [61, 63], [116, -87], [26, -136], [79, -218], [73, 51], [80, 308], [57, 109], [100, 514], [59, -114], [-40, -105], [274, 141], [110, 459], [8, 148], [-45, 427], [-14, 385], [-126, 348], [-30, -81], [26, 264], [98, -51], [80, 268], [-23, 318], [-82, 246], [-60, -291], [-90, 16], [-49, -159], [-51, 18], [-49, -183], [-98, -226], [-10, -214], [-39, -96], [-12, 299], [-116, 282], [-42, -98], [99, -145], [-28, -207], [-111, 289], [-79, 50], [-158, -40], [-73, -128], [-85, -15], [-23, -87], [-114, 120], [-207, 140], [-82, 275], [25, 322], [-82, 159], [-77, 328], [59, -73], [60, 41], [14, 185], [37, 77], [63, -79], [-3, 99], [-224, 190], [-128, 30], [-190, 363], [73, 245], [89, 39], [-17, 130], [60, 171], [81, -41], [51, 133], [-28, 52], [191, 391], [54, -104], [94, -38], [71, 90], [-108, 169], [34, 157], [128, 216], [76, -72], [88, 299], [125, 88], [150, 2], [-45, -389], [12, -209], [-94, -184], [80, 27], [62, -245], [91, 37], [65, -53], [94, 67], [40, -120], [70, -12], [58, 75], [101, -67], [66, 409], [131, -8], [12, -214], [19, 196], [-39, 194], [-103, 123], [-66, -4], [-59, -132], [25, 275], [-19, 144], [-91, 317], [-49, 16], [-56, 321], [87, 116], [86, -358], [-17, -202], [57, -256], [74, -149], [116, 157], [119, -316], [143, 61], [8, 247], [-60, 198], [-26, -82], [-98, 151], [-71, -39], [-49, -222], [-46, -2], [-108, 328], [-5, 195], [43, 276], [65, 32], [-94, 161], [-168, -122], [29, 305], [-63, -250], [-315, 159], [-22, 69], [-12, 373], [-42, 311], [-52, 230], [-151, 391], [-45, 47], [-162, 402], [-138, 146], [-103, 308], [-142, 116], [73, -2], [49, 155], [40, 266], [-3, 561], [159, -24], [173, 38], + [196, 91], [105, 139], [95, 222], [139, 516], [22, 566], [28, 197], [122, 355], [168, 654], [49, -133], [108, 16], [135, 168], [196, 494], [58, -18], [6, -205], [-48, -320], [59, 148], [23, 190], [-18, 191], [-64, 84], [73, 122], [46, 186], [139, 93], [-77, -146], [128, 0], [264, 114], [134, 218], [91, 228], [116, 448], [107, 191]]] +} diff --git a/public/static/SampleData/population909500.json b/public/static/SampleData/population909500.json new file mode 100644 index 0000000..034e20c --- /dev/null +++ b/public/static/SampleData/population909500.json @@ -0,0 +1 @@ +[["1990",[6,159,0.001,30,99,0.002,45,-109,0.000,42,115,0.007,4,-54,0.000,-16,-67,0.014,21,-103,0.006,-20,-64,0.004,-40,-69,0.001,32,64,0.001,28,67,0.006,8,22,0.000,-15,133,0.000,-16,20,0.000,55,42,0.006,32,-81,0.010,31,36,0.067,9,80,0.016,42,-91,0.006,19,54,0.001,21,111,0.163,-3,-51,0.001,33,119,0.150,65,21,0.002,46,49,0.015,43,77,0.043,45,130,0.018,4,119,0.006,22,59,0.002,9,-82,0.003,46,-60,0.002,-14,15,0.006,-15,-76,0.001,57,15,0.007,52,9,0.056,10,120,0.004,24,87,0.134,0,-51,0.005,-5,123,0.013,-24,-53,0.010,-28,-58,0.015,43,0,0.019,24,70,0.023,-9,33,0.012,20,73,0.037,13,104,0.034,43,41,0.012,23,78,0.095,20,-72,0.001,38,-4,0.006,0,-77,0.016,-9,-35,0.056,25,109,0.034,-13,34,0.013,61,18,0.001,58,40,0.002,34,50,0.027,49,88,0.000,48,-99,0.001,-42,176,0.002,20,86,0.156,-18,30,0.007,53,44,0.006,29,18,0.001,5,16,0.003,49,-74,0.000,48,131,0.006,14,121,0.210,63,19,0.001,40,54,0.001,36,57,0.005,16,52,0.000,50,128,0.010,39,30,0.021,54,12,0.006,16,-61,0.011,27,80,0.196,29,101,0.001,14,78,0.067,7,13,0.003,41,125,0.026,-17,23,0.002,54,27,0.010,30,29,0.001,41,142,0.003,12,124,0.024,41,43,0.014,18,98,0.004,36,117,0.195,17,33,0.003,32,109,0.051,-7,23,0.011,27,-101,0.005,45,-73,0.120,21,-83,0.000,55,-131,0.001,52,105,0.026,-40,-65,0.000,32,36,0.094,31,7,0.001,32,-109,0.001,31,120,0.191,9,124,0.037,46,-2,0.001,-2,-50,0.003,18,-13,0.001,42,28,0.016,4,99,0.008,19,-77,0.002,18,38,0.006,33,4,0.004,-5,-75,0.000,-14,51,0.001,-15,-48,0.002,57,-5,0.000,52,37,0.017,13,38,0.013,-10,-41,0.002,-11,36,0.006,-18,-71,0.003,-20,27,0.002,56,89,0.001,33,-94,0.007,44,15,0.001,43,-4,0.006,20,37,0.000,-4,27,0.006,47,8,0.075,44,-98,0.001,23,114,0.270,38,24,0.051,14,10,0.006,10,-3,0.009,47,89,0.002,-34,152,0.079,38,-121,0.062,14,25,0.001,29,5,0.001,-9,-78,0.016,20,98,0.018,-19,-39,0.003,53,0,0.046,-23,150,0.000,49,1,0.028,48,40,0.046,38,97,0.000,35,-99,0.001,16,1,0.004,53,-115,0.000,48,119,0.001,29,-85,0.000,63,39,0.001,40,26,0.002,16,40,0.002,11,120,0.002,-8,14,0.002,26,-98,0.016,-12,-47,0.001,-32,28,0.013,40,-87,0.006,36,-76,0.038,17,82,0.050,50,19,0.094,12,-70,0.001,27,108,0.076,7,49,0.003,41,105,0.000,3,46,0.006,-16,168,0.000,-21,56,0.004,51,83,0.002,50,-122,0.000,30,9,0.001,7,-62,0.001,41,-6,0.005,-17,-52,0.001,-38,-58,0.003,-6,13,0.014,45,6,0.045,60,59,0.001,41,-121,0.000,17,-3,0.000,-6,-64,0.000,-7,35,0.002,-26,-61,0.001,41,-104,0.003,51,30,0.006,32,-8,0.039,27,40,0.002,4,33,0.003,21,98,0.009,-1,122,0.001,32,-89,0.005,31,92,0.001,46,42,0.007,8,-83,0.003,22,36,0.000,19,30,0.001,-10,-64,0.002,-2,22,0.001,-5,40,0.031,69,20,0.001,37,35,0.020,-2,133,0.001,10,93,0.000,-10,36,0.008,-14,-41,0.005,-34,22,0.001,56,46,0.003,37,-108,0.001,52,49,0.003,13,10,0.016,46,91,0.001,-11,24,0.002,-34,-59,0.005,56,93,0.024,-38,-60,0.002,-30,-57,0.003,47,27,0.037,44,11,0.055,-33,-65,0.002,19,106,0.109,-23,-45,0.030,-24,34,0.001,58,45,0.001,20,-96,0.004,35,78,0.002,-38,150,0.000,34,39,0.004,15,27,0.001,10,33,0.002,47,109,0.000,-9,118,0.011,38,-93,0.004,34,-6,0.040,15,-84,0.001,49,16,0.023,25,38,0.002,2,39,0.001,1,28,0.003,16,102,0.026,6,122,0.008,68,65,0.000,49,-99,0.002,48,76,0.000,26,96,0.007,40,111,0.038,2,-70,0.000,38,125,0.004,16,-11,0.003,50,85,0.001,12,-8,0.031,63,75,0.001,-31,28,0.011,-20,-49,0.004,40,-2,0.002,36,1,0.014,35,26,0.010,-31,-55,0.004,6,-67,0.001,3,9,0.003,40,-115,0.001,39,102,0.000,54,68,0.002,50,55,0.001,30,54,0.004,26,49,0.002,60,-135,0.001,6,48,0.004,3,26,0.002,51,111,0.001,12,101,0.006,45,25,0.025,-3,13,0.002,-7,-46,0.002,30,88,0.000,-27,27,0.013,42,144,0.007,60,23,0.011,32,101,0.001,31,-114,0.003,28,40,0.001,8,-13,0.025,-30,-66,0.002,55,69,0.002,51,74,0.001,-3,115,0.011,31,63,0.001,28,-105,0.007,27,68,0.046,42,-78,0.037,22,-83,0.019,21,86,0.056,-1,14,0.000,-2,-57,0.000,-5,-45,0.007,32,-117,0.055,43,120,0.009,45,93,0.000,55,103,0.001,-2,34,0.011,-25,25,0.002,57,70,0.000,37,55,0.011,33,60,0.003,28,100,0.003,9,34,0.004,-9,24,0.002,-4,120,0.040,22,122,0.002,37,-88,0.008,8,101,0.011,46,119,0.000,43,-93,0.005,-11,124,0.014,0,41,0.003,-23,34,0.001,-5,143,0.002,47,47,0.001,43,52,0.006,24,-110,0.002,23,73,0.192,1,105,0.018,-4,-45,0.010,11,35,0.005,14,45,0.046,25,84,0.264,-13,21,0.001,58,17,0.007,37,123,0.040,34,75,0.072,-4,130,0.003,11,-12,0.021,48,-118,0.000,10,21,0.001,5,-58,0.001,1,-57,0.000,53,71,0.002,49,76,0.001,29,45,0.001,14,18,0.001,25,50,0.002,2,11,0.005,-18,-46,0.003,-19,33,0.016,49,-103,0.001,-8,-72,0.001,-12,-69,0.000,25,-97,0.018,40,83,0.002,39,-88,0.009,50,121,0.001,12,20,0.002,-7,114,0.025,14,107,0.004,-37,149,0.001,62,130,0.004,59,36,0.001,39,57,0.001,36,-99,0.001,35,54,0.005,30,-89,0.013,-8,-42,0.003,7,40,0.036,-17,34,0.006,54,32,0.015,-4,-50,0.001,30,66,0.001,26,69,0.060,7,-7,0.019,-20,34,0.012,-3,-60,0.026,-19,-44,0.004,-26,25,0.001,-27,-54,0.007,21,75,0.072,30,100,0.002,42,116,0.006,4,-53,0.000,-16,-66,0.000,21,-100,0.014,-20,-63,0.001,-40,-68,0.002,32,73,0.073,28,68,0.014,-16,13,0.001,-5,-41,0.006,55,41,0.007,32,-80,0.012,31,35,0.069,9,79,0.123,42,-90,0.007,19,53,0.001,-2,-45,0.003,65,24,0.000,46,50,0.001,43,84,0.007,45,129,0.024,4,120,0.002,22,60,0.003,9,-83,0.021,46,-63,0.003,-14,16,0.011,52,10,0.061,24,88,0.168,0,-50,0.003,34,126,0.001,-5,122,0.006,-24,-52,0.015,-28,-57,0.002,43,-1,0.023,24,71,0.011,58,83,0.001,20,74,0.102,-1,11,0.001,13,103,0.025,43,16,0.004,23,77,0.066,38,-7,0.014,0,-76,0.005,47,100,0.000,25,112,0.071,-13,33,0.005,61,17,0.003,58,37,0.002,34,47,0.023,49,87,0.001,48,-98,0.001,20,87,0.165,-33,-56,0.002,-18,35,0.004,53,43,0.005,29,17,0.000,5,15,0.002,48,132,0.001,-19,178,0.001,63,18,0.001,36,58,0.009,16,45,0.011,50,125,0.002,39,29,0.028,54,9,0.005,-55,-66,0.000,27,79,0.257,29,104,0.107,41,128,0.013,-17,22,0.000,54,28,0.008,53,95,0.000,30,30,0.019,41,141,0.017,-21,-53,0.000,64,29,0.001,41,30,0.081,18,95,0.013,36,118,0.246,17,36,0.002,32,110,0.043,-7,26,0.005,27,-102,0.000,45,-78,0.000,41,-69,0.001,21,-80,0.001,52,106,0.001,31,6,0.001,-16,49,0.007,32,-108,0.001,31,119,0.212,9,123,0.022,46,3,0.010,18,-12,0.001,6,-8,0.018,66,15,0.001,6,117,0.009,42,25,0.033,18,35,0.001,33,3,0.003,14,40,0.027,-15,-49,0.004,22,103,0.011,52,38,0.006,13,37,0.005,47,-91,0.001,-10,-40,0.011,-11,35,0.008,56,90,0.002,33,-95,0.004,44,16,0.011,43,-5,0.033,58,103,0.004,-4,28,0.005,-10,161,0.002,47,7,0.029,44,-97,0.002,-13,-44,0.003,23,113,0.122,38,21,0.003,14,-1,0.004,10,-2,0.014,47,88,0.002,38,-120,0.006,6,39,0.085,14,26,0.001,29,8,0.001,-9,-79,0.017,20,99,0.004,53,-1,0.154,49,4,0.023,48,17,0.080,40,140,0.001,38,98,0.000,35,-92,0.005,16,2,0.001,53,-112,0.002,12,-3,0.012,48,120,0.002,29,-90,0.032,40,27,0.012,16,17,0.000,-8,15,0.005,-12,-46,0.001,40,-86,0.016,39,129,0.000,17,81,0.070,50,20,0.093,12,-69,0.002,27,107,0.104,7,48,0.004,41,108,0.016,3,45,0.005,51,82,0.008,50,-125,0.001,-15,50,0.009,30,10,0.001,7,-63,0.005,41,-7,0.016,-17,-53,0.001,-6,14,0.023,30,121,0.273,23,96,0.020,45,5,0.082,60,60,0.002,-4,-41,0.009,17,0,0.001,-6,-67,0.000,28,13,0.000,-26,-60,0.001,41,-105,0.001,-8,132,0.002,51,29,0.006,32,1,0.001,27,39,0.002,4,34,0.002,21,97,0.041,-1,121,0.003,-3,-42,0.002,32,-88,0.005,46,31,0.055,8,-82,0.014,19,29,0.001,-2,27,0.002,-5,39,0.025,69,19,0.001,57,105,0.000,37,30,0.019,-2,134,0.001,-10,33,0.007,-14,-40,0.008,-34,27,0.004,56,47,0.004,52,50,0.007,13,9,0.031,47,-55,0.001,9,6,0.013,46,92,0.000,-11,23,0.002,-14,-57,0.000,-4,134,0.001,-34,-58,0.003,56,94,0.004,-38,-63,0.001,47,26,0.016,44,12,0.056,19,105,0.009,-8,142,0.000,-24,35,0.002,58,46,0.002,38,49,0.031,35,77,0.009,37,98,0.001,34,40,0.004,15,26,0.001,10,34,0.004,47,124,0.048,-33,30,0.000,38,-92,0.009,-8,139,0.000,15,-85,0.004,49,15,0.023,2,40,0.001,1,27,0.001,16,103,0.058,-22,34,0.001,49,-96,0.002,26,93,0.132,25,-106,0.001,40,112,0.040,2,-73,0.001,1,12,0.003,38,126,0.118,16,-10,0.002,50,86,0.000,12,-7,0.012,-31,27,0.001,40,-1,0.004,36,2,0.029,35,25,0.007,-7,150,0.000,-31,-52,0.005,6,-66,0.000,45,-120,0.000,39,101,0.015,54,65,0.002,50,56,0.001,30,59,0.004,26,50,0.001,6,45,0.002,3,25,0.002,17,-66,0.004,-21,19,0.000,51,110,0.001,12,102,0.019,45,28,0.033,-25,-64,0.004,-3,16,0.001,-7,-47,0.003,45,-87,0.004,42,141,0.010,60,24,0.005,-29,-67,0.000,17,-4,0.000,32,102,0.002,31,-115,0.010,28,41,0.001,8,-12,0.027,55,68,0.001,51,73,0.001,31,62,0.005,28,-104,0.001,27,67,0.005,42,-81,0.012,4,-2,0.002,22,-82,0.023,21,85,0.048,-1,13,0.001,-39,-62,0.008,-2,-56,0.000,-5,-46,0.003,32,-116,0.037,46,75,0.003,43,119,0.009,55,102,0.001,-8,-76,0.002,-25,24,0.002,5,9,0.027,57,69,0.000,37,66,0.004,33,59,0.002,28,101,0.003,9,33,0.005,-15,39,0.007,37,-89,0.009,46,120,0.001,43,-94,0.003,-11,123,0.001,0,42,0.001,-23,33,0.001,-5,142,0.002,47,46,0.001,23,72,0.029,-4,-44,0.011,11,34,0.004,-9,-41,0.002,25,83,0.311,-13,28,0.012,58,18,0.002,35,121,0.005,37,118,0.160,34,76,0.015,-4,131,0.001,49,94,0.000,11,-13,0.006,48,-117,0.001,10,22,0.001,-32,153,0.003,53,50,0.037,49,75,0.001,29,48,0.029,5,122,0.005,25,49,0.002,-2,105,0.004,2,12,0.005,-19,36,0.003,68,30,0.001,49,-100,0.001,48,105,0.001,26,129,0.002,-12,-68,0.000,40,84,0.002,39,-89,0.011,36,15,0.011,50,122,0.004,12,21,0.002,-7,113,0.027,18,123,0.002,59,35,0.002,39,56,0.000,36,-98,0.001,35,53,0.008,30,-88,0.020,-8,-41,0.006,7,39,0.066,-17,33,0.006,54,29,0.018,-55,-68,0.000,30,23,0.000,26,70,0.028,7,-8,0.016,6,73,0.000,22,98,0.012,-3,-61,0.000,-26,26,0.012,-27,-55,0.008,45,64,0.000,60,5,0.000,41,65,0.003,21,70,0.021,30,97,0.001,42,113,0.002,4,-52,0.002,-16,-65,0.000,21,-101,0.042,-20,-62,0.000,-41,-62,0.000,32,74,0.140,28,69,0.045,8,24,0.001,-16,14,0.003,55,40,0.012,31,34,0.003,-15,26,0.001,21,121,0.001,33,121,0.107,-6,151,0.002,65,23,0.001,43,83,0.008,45,132,0.031,22,57,0.001,6,2,0.069,9,-80,0.001,46,-62,0.001,-14,13,0.001,-15,-74,0.002,57,17,0.003,52,11,0.050,-43,172,0.001,24,81,0.059,-5,121,0.025,-24,-59,0.000,-28,-56,0.003,43,-2,0.044,24,72,0.038,58,84,0.000,20,75,0.092,-28,23,0.001,23,108,0.066,38,-6,0.013,14,-92,0.015,47,99,0.000,25,111,0.073,58,38,0.002,-46,169,0.000,34,48,0.033,49,90,0.000,48,-97,0.001,-18,36,0.010,53,38,0.009,44,113,0.000,5,26,0.001,48,125,0.020,63,17,0.001,40,56,0.000,36,59,0.014,35,8,0.017,16,46,0.002,50,126,0.005,39,28,0.032,54,10,0.027,27,78,0.189,29,103,0.030,41,127,0.032,-17,21,0.000,54,25,0.013,53,106,0.001,30,35,0.005,6,37,0.015,64,30,0.000,41,29,0.149,18,96,0.058,36,119,0.183,17,35,0.003,32,111,0.054,-7,25,0.013,45,-79,0.002,41,-82,0.015,52,107,0.001,51,24,0.016,31,5,0.001,-13,-43,0.003,-16,50,0.006,55,12,0.014,32,-115,0.011,31,118,0.185,46,4,0.013,42,-121,0.002,18,-15,0.011,-6,123,0.010,66,16,0.000,-44,-74,0.000,42,26,0.027,18,36,0.001,-1,-74,0.000,33,6,0.002,-5,-69,0.001,-14,49,0.006,-15,-46,0.002,22,104,0.020,37,-6,0.026,52,39,0.010,13,40,0.027,-10,-43,0.002,24,117,0.092,-33,118,0.000,56,91,0.007,33,-92,0.004,44,17,0.024,43,-6,0.005,-4,29,0.018,47,6,0.019,44,-96,0.002,-13,-45,0.002,23,112,0.072,38,22,0.016,35,104,0.062,14,0,0.006,10,11,0.020,47,87,0.001,38,-123,0.001,49,118,0.005,29,7,0.001,20,100,0.013,53,10,0.058,49,3,0.053,48,18,0.052,44,77,0.003,38,103,0.021,35,-93,0.004,53,-113,0.028,12,-2,0.026,29,-91,0.004,14,110,0.014,40,28,0.011,-20,-44,0.055,-8,16,0.005,7,94,0.001,40,-85,0.018,39,128,0.050,17,84,0.065,16,-95,0.010,50,17,0.037,12,-68,0.005,27,106,0.098,7,47,0.002,41,107,0.002,51,81,0.002,30,-1,0.001,7,-64,0.001,41,-4,0.021,-17,-54,0.005,-6,27,0.006,-35,-57,0.010,30,122,0.126,45,8,0.071,60,61,0.001,41,-119,0.000,-35,150,0.001,17,-1,0.001,-6,-66,0.000,-26,-63,0.001,8,9,0.024,41,-102,0.000,51,36,0.011,32,2,0.001,28,-3,0.000,27,38,0.002,4,35,0.002,22,-105,0.007,21,100,0.008,-1,120,0.014,46,32,0.010,8,-81,0.006,19,36,0.000,-2,28,0.003,-5,38,0.005,-10,151,0.001,22,-15,0.000,37,29,0.024,-2,139,0.000,-8,-62,0.001,10,107,0.305,-10,34,0.026,-2,12,0.001,-34,28,0.008,56,48,0.034,52,51,0.003,-12,-67,0.000,13,12,0.005,9,5,0.006,46,89,0.001,-14,-56,0.001,-34,-53,0.002,56,95,0.001,-38,-62,0.001,47,25,0.017,19,96,0.034,34,-106,0.003,-36,-61,0.003,-23,-59,0.000,-24,36,0.012,44,-100,0.001,58,59,0.002,37,97,0.001,34,37,0.031,15,25,0.001,10,31,0.007,47,123,0.014,5,-76,0.008,-33,29,0.016,38,-95,0.006,15,-86,0.011,49,18,0.041,25,40,0.003,2,37,0.001,1,30,0.008,16,104,0.059,-22,31,0.003,49,-97,0.023,26,94,0.057,25,-107,0.007,40,105,0.000,2,-72,0.001,1,11,0.004,-18,-69,0.001,16,-9,0.001,50,83,0.006,12,-6,0.009,-31,30,0.020,40,0,0.005,36,3,0.042,29,122,0.133,-31,-53,0.003,6,-61,0.001,39,100,0.008,54,66,0.002,50,53,0.001,30,60,0.003,26,47,0.003,6,46,0.002,3,16,0.002,17,-67,0.001,-21,18,0.000,51,109,0.003,12,103,0.016,45,27,0.023,22,84,0.044,-3,15,0.001,-7,-44,0.002,45,-84,0.003,42,142,0.028,60,25,0.027,32,103,0.002,31,-100,0.004,28,42,0.001,-30,-68,0.000,55,67,0.002,51,64,0.001,-3,109,0.002,31,61,0.000,9,101,0.001,27,66,0.002,42,-80,0.011,4,-1,0.006,21,88,0.098,-1,28,0.001,-39,-63,0.000,-5,-47,0.003,46,76,0.001,43,118,0.005,-48,-67,0.000,55,101,0.001,-10,-63,0.004,46,-101,0.000,57,72,0.001,37,65,0.003,33,62,0.001,28,102,0.009,9,36,0.020,37,-78,0.005,-4,-73,0.006,13,-16,0.026,43,-95,0.003,24,29,0.000,0,43,0.004,-23,36,0.003,-5,141,0.001,13,125,0.008,47,45,0.001,23,71,0.012,15,108,0.006,11,33,0.004,-43,-74,0.001,-9,-42,0.002,25,102,0.038,-13,27,0.002,58,15,0.004,35,112,0.097,37,117,0.161,34,73,0.120,-4,132,0.000,49,93,0.000,11,-14,0.007,48,-116,0.001,-9,113,0.096,5,-56,0.001,1,-55,0.000,53,49,0.012,49,46,0.002,29,47,0.008,25,52,0.015,-19,35,0.003,68,31,0.001,49,-101,0.000,48,106,0.000,40,77,0.003,39,-90,0.005,36,16,0.003,50,119,0.004,12,22,0.003,-7,116,0.003,11,93,0.001,-12,44,0.010,59,34,0.004,39,55,0.003,36,-97,0.006,35,60,0.015,30,-91,0.021,-8,-40,0.009,7,38,0.078,8,99,0.014,54,30,0.006,30,24,0.000,7,-9,0.005,6,74,0.001,17,-71,0.001,-3,-66,0.000,-26,31,0.004,-27,-52,0.012,45,63,0.001,60,6,0.011,41,68,0.002,17,74,0.059,-6,-45,0.004,30,98,0.002,45,-112,0.001,42,114,0.005,-16,-64,0.001,21,-106,0.001,54,79,0.001,32,75,0.204,28,70,0.046,8,17,0.009,-16,15,0.004,55,39,0.051,6,118,0.002,31,33,0.021,9,81,0.030,42,-108,0.000,-2,-47,0.013,-6,152,0.003,5,37,0.007,65,26,0.003,43,82,0.011,45,131,0.045,-4,152,0.000,22,58,0.003,-35,119,0.000,46,-73,0.005,-11,-68,0.003,-14,14,0.005,-15,-75,0.008,0,105,0.003,52,12,0.025,28,130,0.003,24,82,0.082,-24,-58,0.000,-28,-55,0.018,43,-3,0.025,20,76,0.080,-24,-43,0.021,-28,24,0.004,43,14,0.031,23,107,0.049,38,-1,0.016,-25,-68,0.002,14,50,0.003,25,114,0.059,-18,146,0.002,34,45,0.012,49,89,0.000,48,-96,0.001,-18,33,0.011,53,37,0.007,29,19,0.001,44,114,0.000,5,25,0.000,48,126,0.030,63,16,0.001,40,49,0.014,39,10,0.018,36,60,0.038,35,7,0.022,16,47,0.001,39,27,0.014,27,77,0.111,29,98,0.001,41,130,0.024,54,26,0.028,53,105,0.001,-35,-70,0.014,30,36,0.006,6,38,0.045,-25,-55,0.004,-19,-49,0.008,64,31,0.002,41,32,0.016,-29,-58,0.003,36,120,0.174,17,38,0.004,32,112,0.092,-7,28,0.003,45,-76,0.004,41,-83,0.032,52,108,0.001,51,23,0.035,5,27,0.000,-16,51,0.004,55,11,0.015,51,8,0.204,32,-114,0.007,31,117,0.124,46,1,0.015,18,-14,0.001,-8,-69,0.000,-6,124,0.003,42,23,0.020,18,33,0.001,-1,-75,0.001,33,5,0.006,-14,50,0.006,-18,-53,0.001,-15,-47,0.001,22,101,0.018,0,125,0.011,37,-7,0.010,52,40,0.026,13,39,0.022,47,-109,0.000,-10,-42,0.003,24,118,0.120,-33,117,0.004,56,92,0.001,33,-93,0.004,47,36,0.040,44,18,0.024,43,-7,0.009,20,40,0.004,-4,30,0.094,47,5,0.008,44,-95,0.003,62,17,0.003,23,111,0.105,20,-105,0.006,38,27,0.021,35,103,0.018,15,36,0.011,14,-3,0.013,10,12,0.032,47,86,0.001,38,-122,0.032,49,117,0.000,29,2,0.000,-13,-76,0.072,-29,-51,0.008,16,109,0.019,53,9,0.052,-23,151,0.000,49,6,0.019,48,19,0.030,44,78,0.002,38,104,0.007,35,-94,0.009,12,-1,0.048,59,-151,0.000,40,21,0.025,-12,-44,0.002,40,-84,0.015,-28,153,0.018,39,127,0.054,17,83,0.087,16,-94,0.007,50,18,0.029,27,105,0.075,7,46,0.003,41,94,0.001,51,104,0.001,50,-127,0.000,30,0,0.001,7,-65,0.001,41,-5,0.007,3,-60,0.003,21,-16,0.001,-17,-55,0.001,69,89,0.009,30,111,0.049,8,123,0.004,45,7,0.015,-35,149,0.001,17,2,0.000,-26,-62,0.001,64,178,0.001,41,-103,0.002,51,35,0.009,32,3,0.001,28,-2,0.000,27,37,0.002,4,36,0.002,22,-104,0.002,21,99,0.007,-39,-72,0.014,-52,-71,0.001,46,29,0.034,8,-80,0.010,22,39,0.000,19,35,0.000,-2,25,0.002,-5,37,0.006,42,-5,0.013,37,32,0.016,-10,-77,0.013,10,108,0.050,-10,39,0.003,-14,-42,0.005,-34,25,0.001,56,73,0.001,52,52,0.003,-44,-65,0.002,13,11,0.007,9,8,0.021,46,90,0.001,24,26,0.000,-14,-59,0.000,56,96,0.005,47,24,0.027,19,95,0.013,34,-109,0.001,-23,-56,0.002,-24,29,0.009,-43,-63,0.000,58,60,0.006,38,55,0.001,35,83,0.000,37,100,0.001,34,38,0.007,15,24,0.001,14,-23,0.001,10,32,0.003,47,122,0.008,5,-77,0.001,38,-94,0.022,15,-87,0.029,49,17,0.040,48,-72,0.002,-28,-50,0.007,25,39,0.003,2,38,0.001,1,29,0.002,16,81,0.190,-22,32,0.004,49,-94,0.001,48,71,0.001,26,107,0.129,25,-104,0.002,40,106,0.001,2,-75,0.014,36,37,0.046,-18,-68,0.002,16,-8,0.001,50,84,0.005,12,-5,0.016,-21,-48,0.015,-31,29,0.016,40,-7,0.017,36,4,0.124,35,15,0.012,29,121,0.153,40,-112,0.004,39,99,0.010,54,71,0.002,50,54,0.001,30,57,0.006,26,48,0.002,3,15,0.002,8,81,0.035,17,-64,0.002,-21,17,0.001,51,116,0.002,12,104,0.014,-7,-74,0.000,45,22,0.029,6,94,0.000,-3,42,0.000,-7,-45,0.001,30,91,0.001,-27,24,0.002,45,-85,0.001,60,26,0.020,-30,-56,0.004,32,104,0.005,-33,-66,0.000,31,-101,0.001,28,43,0.001,-30,-71,0.002,55,66,0.014,51,63,0.001,-3,112,0.006,31,76,0.188,28,-102,0.002,27,65,0.002,42,-83,0.139,21,87,0.109,-1,27,0.002,-3,-47,0.003,-2,-58,0.000,-5,-40,0.012,43,117,0.003,45,90,0.001,42,64,0.001,-1,12,0.000,46,-100,0.003,57,71,0.001,37,68,0.024,33,61,0.002,28,103,0.029,9,35,0.012,-15,41,0.021,56,13,0.011,37,-79,0.015,-4,-72,0.001,33,-82,0.011,9,-12,0.015,46,118,0.000,43,-88,0.026,-9,37,0.004,-4,139,0.004,0,44,0.003,-23,35,0.002,-30,-52,0.014,23,70,0.010,1,110,0.015,38,-28,0.001,15,107,0.007,11,40,0.050,-9,-43,0.001,25,101,0.061,-13,26,0.002,61,10,0.001,58,16,0.009,35,111,0.096,37,120,0.039,34,74,0.062,15,-4,0.004,49,96,0.000,11,-15,0.013,48,-123,0.014,5,-57,0.002,20,110,0.019,53,52,0.007,49,45,0.002,29,74,0.055,25,51,0.002,2,10,0.001,-19,30,0.009,68,32,0.001,49,-66,0.000,48,107,0.006,26,127,0.000,-32,-71,0.002,40,78,0.003,39,-91,0.005,50,120,0.001,12,23,0.008,-7,115,0.002,11,100,0.008,-12,29,0.004,59,33,0.006,39,54,0.002,36,-96,0.005,35,59,0.008,30,-90,0.021,-8,-47,0.001,7,37,0.039,-18,17,0.004,-17,31,0.007,-20,48,0.039,54,35,0.004,7,-10,0.005,6,15,0.004,-3,-67,0.000,-7,-62,0.000,-26,32,0.025,-27,-53,0.013,60,7,0.001,41,67,0.001,21,72,0.070,36,77,0.001,-6,-44,0.008,42,111,0.002,-16,-55,0.008,54,80,0.001,-40,-73,0.003,32,76,0.095,28,71,0.073,27,-12,0.002,8,18,0.006,-16,16,0.003,55,38,0.369,31,32,0.155,42,-111,0.001,-2,-46,0.006,-6,149,0.001,65,25,0.002,43,81,0.004,45,126,0.045,52,-114,0.001,13,-83,0.001,9,-78,0.001,46,-72,0.011,-11,-69,0.001,-15,-72,0.003,57,19,0.002,52,-3,0.015,-10,-69,0.000,24,83,0.064,34,121,0.024,-24,-57,0.002,-28,-54,0.013,43,4,0.027,-36,-70,0.004,13,100,0.048,-28,25,0.008,43,13,0.033,23,106,0.030,38,0,0.048,25,113,0.092,34,46,0.016,49,92,0.000,-8,113,0.455,-18,34,0.002,53,40,0.008,29,14,0.001,44,115,0.000,5,28,0.001,-20,-51,0.002,48,127,0.018,63,15,0.002,40,50,0.051,39,9,0.015,36,45,0.020,35,6,0.030,16,48,0.000,39,26,0.001,17,122,0.034,50,11,0.038,27,84,0.146,29,97,0.001,0,98,0.009,41,129,0.018,-36,174,0.001,30,33,0.029,6,43,0.003,-30,31,0.096,41,31,0.009,18,94,0.003,36,121,0.173,17,37,0.002,32,121,0.282,-7,27,0.003,27,-97,0.013,45,-77,0.002,42,83,0.004,41,-80,0.029,21,-71,0.000,52,93,0.000,-26,153,0.002,51,22,0.032,27,16,0.001,55,10,0.018,51,7,0.186,32,-113,0.001,31,132,0.023,46,2,0.010,42,-123,0.003,-29,115,0.001,-5,16,0.142,-6,121,0.022,66,14,0.001,42,24,0.060,18,34,0.001,6,11,0.029,33,8,0.004,5,117,0.015,-15,-44,0.002,22,102,0.011,37,-4,0.029,52,41,0.010,13,34,0.025,-10,-37,0.015,24,119,0.103,56,85,0.018,33,-90,0.006,47,35,0.021,44,19,0.028,20,41,0.011,15,146,0.001,44,-94,0.005,62,18,0.003,23,110,0.108,20,-104,0.007,38,28,0.055,35,102,0.004,15,35,0.004,14,-2,0.006,10,9,0.028,47,85,0.001,-9,122,0.013,-33,-59,0.003,61,50,0.001,-18,179,0.006,49,120,0.004,48,-67,0.002,-13,-77,0.074,-19,-43,0.005,53,12,0.018,49,5,0.020,48,20,0.022,44,79,0.004,38,101,0.014,35,-95,0.007,16,-3,0.006,12,0,0.022,29,-89,0.004,-3,12,0.001,62,78,0.002,59,48,0.001,40,22,0.011,11,124,0.018,-32,24,0.001,40,-91,0.005,39,126,0.130,16,-93,0.023,50,15,0.077,27,112,0.192,7,45,0.003,41,93,0.001,-50,-74,0.000,39,143,0.000,51,103,0.001,30,-3,0.001,-33,-70,0.007,7,-66,0.003,-17,-56,0.001,-6,25,0.004,30,112,0.116,-37,-73,0.015,8,124,0.040,45,2,0.018,-35,152,0.005,17,1,0.001,32,77,0.028,-26,-57,0.058,8,11,0.010,41,-100,0.001,51,34,0.017,32,4,0.001,27,44,0.002,4,21,0.004,21,94,0.004,-1,118,0.020,-39,-73,0.002,46,30,0.030,43,128,0.019,-4,143,0.002,22,40,0.011,19,34,0.001,-2,26,0.002,-10,149,0.002,42,-4,0.005,57,94,0.001,37,31,0.015,-2,137,0.003,10,105,0.036,-10,40,0.007,-9,28,0.003,-4,116,0.010,-34,26,0.032,56,74,0.001,37,-112,0.000,52,69,0.002,13,6,0.042,9,7,0.018,-10,-73,0.000,24,27,0.000,-14,-58,0.000,23,-80,0.001,-34,-55,0.002,0,17,0.000,-38,-64,0.000,47,23,0.025,19,94,0.011,-23,-57,0.002,-24,30,0.024,58,57,0.029,38,56,0.001,35,82,0.001,37,99,0.001,-8,121,0.000,15,23,0.001,10,29,0.003,47,121,0.003,38,-89,0.012,15,-88,0.026,49,20,0.042,14,14,0.001,25,42,0.003,2,35,0.005,1,32,0.015,16,82,0.170,-22,29,0.004,26,108,0.064,25,-105,0.002,40,107,0.006,2,-74,0.001,36,38,0.027,38,129,0.012,50,81,0.013,12,-4,0.011,40,-6,0.005,-20,-39,0.002,-7,151,0.000,40,-119,0.000,39,98,0.002,54,72,0.003,50,51,0.001,30,58,0.004,26,45,0.004,3,14,0.002,2,103,0.046,-20,30,0.010,-21,24,0.000,51,115,0.001,-3,-68,0.000,12,105,0.021,-7,-75,0.001,45,21,0.026,-3,41,0.004,-35,-66,0.002,30,92,0.002,45,-90,0.002,60,27,0.006,32,49,0.021,31,-102,0.006,28,44,0.001,-30,-70,0.003,55,65,0.003,51,62,0.001,-3,111,0.003,31,75,0.319,28,-101,0.003,27,72,0.010,42,-82,0.043,22,-79,0.023,-1,26,0.001,-39,-61,0.005,-2,-53,0.001,70,24,0.000,66,67,0.003,43,124,0.034,45,89,0.001,42,61,0.005,55,99,0.002,-11,-62,0.005,57,74,0.001,37,67,0.010,33,64,0.002,10,125,0.035,28,104,0.036,9,22,0.000,56,14,0.007,37,-76,0.017,-4,-71,0.000,33,-83,0.013,9,-13,0.053,46,123,0.015,43,-89,0.016,57,-152,0.000,0,37,0.011,23,69,0.004,1,109,0.001,15,106,0.027,11,39,0.040,-43,-72,0.000,-9,-44,0.001,25,104,0.068,-13,25,0.002,61,9,0.000,58,13,0.007,35,110,0.069,37,119,0.113,34,71,0.030,15,-5,0.001,49,95,0.000,11,-8,0.007,48,-122,0.013,20,111,0.054,1,-53,0.000,53,51,0.056,49,48,0.001,29,73,0.072,25,70,0.053,-19,29,0.008,68,33,0.003,48,108,0.003,26,128,0.037,-32,-70,0.002,40,79,0.002,39,-92,0.003,50,117,0.003,12,24,0.007,11,99,0.005,-12,30,0.005,59,40,0.012,39,53,0.001,36,-95,0.021,35,58,0.008,30,-85,0.008,-8,-46,0.001,7,36,0.016,-17,30,0.005,54,36,0.005,7,-11,0.020,6,16,0.005,-3,-64,0.000,-26,29,0.071,-27,-58,0.004,60,8,0.000,21,71,0.075,36,78,0.003,17,76,0.086,-6,-47,0.013,42,112,0.003,-16,-54,0.002,21,-104,0.012,54,77,0.001,-40,-72,0.005,32,69,0.003,28,72,0.033,27,-13,0.000,8,19,0.005,-15,40,0.011,-16,25,0.002,55,37,0.023,31,31,0.157,42,-110,0.000,-6,150,0.001,43,88,0.047,45,125,0.041,18,27,0.001,52,-113,0.004,9,-79,0.034,46,-75,0.001,-11,-74,0.001,-15,-73,0.002,57,38,0.003,52,-2,0.074,24,84,0.084,-24,-56,0.004,-28,-53,0.014,43,3,0.017,24,67,0.036,13,99,0.012,-28,26,0.004,-28,-64,0.011,43,20,0.024,23,105,0.042,38,-3,0.013,0,-80,0.000,25,116,0.063,61,13,0.000,49,91,0.000,-8,114,0.123,-18,23,0.000,53,39,0.020,29,13,0.001,44,116,0.002,6,-1,0.073,48,128,0.011,40,51,0.017,36,46,0.018,35,5,0.016,-19,146,0.000,-30,-50,0.019,26,-109,0.008,17,121,0.024,50,12,0.042,12,-61,0.004,27,83,0.151,29,100,0.002,6,-7,0.011,-36,175,0.002,54,-128,0.001,30,34,0.002,6,44,0.002,54,-113,0.001,64,41,0.019,-30,32,0.026,41,34,0.010,36,122,0.024,32,122,0.075,-25,153,0.002,-7,14,0.002,27,-98,0.002,42,84,0.005,41,-81,0.087,52,94,0.000,51,21,0.024,32,41,0.003,27,15,0.001,-9,-40,0.004,55,9,0.008,51,6,0.106,32,-112,0.000,31,131,0.052,42,-122,0.005,18,-16,0.003,-1,-46,0.002,-38,141,0.002,-5,15,0.009,-6,122,0.001,42,21,0.043,18,31,0.001,33,7,0.002,-5,-64,0.000,-15,-45,0.001,22,107,0.033,37,-5,0.040,52,42,0.020,13,33,0.021,47,-111,0.003,-10,-36,0.035,-11,31,0.004,-9,14,0.030,56,86,0.003,-3,148,0.000,33,-91,0.005,47,34,0.029,44,20,0.027,23,28,0.000,20,42,0.011,-8,146,0.001,-4,32,0.012,44,-93,0.053,62,39,0.001,23,109,0.092,20,-103,0.123,38,25,0.001,35,101,0.003,-27,154,0.004,15,34,0.012,14,3,0.005,10,10,0.019,47,132,0.014,61,49,0.001,-8,111,0.417,49,119,0.001,48,-66,0.001,29,4,0.001,-19,-40,0.010,53,11,0.069,-3,102,0.011,49,8,0.053,48,13,0.034,44,80,0.003,38,102,0.009,16,-2,0.001,12,1,0.007,29,-94,0.008,59,47,0.001,40,23,0.045,11,123,0.053,40,-90,0.006,39,125,0.019,-44,-73,0.000,16,-92,0.023,50,16,0.039,27,111,0.101,-22,-49,0.012,41,96,0.001,-21,-47,0.020,39,142,0.034,51,102,0.000,30,-2,0.000,7,-67,0.003,-17,-57,0.001,-6,26,0.003,30,109,0.105,45,1,0.016,60,64,0.000,-29,-55,0.005,-35,151,0.018,32,78,0.004,-6,-55,0.000,-26,-56,0.016,8,12,0.015,41,-101,0.000,3,100,0.044,55,60,0.010,51,33,0.009,32,-3,0.002,66,77,0.004,27,43,0.001,4,22,0.004,-16,-47,0.040,21,93,0.055,-1,117,0.006,-39,-70,0.000,46,35,0.007,43,127,0.056,19,33,0.001,-2,15,0.001,48,96,0.000,-25,48,0.002,9,-84,0.037,-10,150,0.002,43,144,0.009,42,-7,0.015,57,93,0.001,37,42,0.021,10,106,0.176,28,77,0.169,-10,37,0.003,-14,-44,0.003,56,75,0.002,37,-113,0.002,52,70,0.002,13,5,0.012,9,10,0.036,46,80,0.000,24,28,0.000,-14,-61,0.001,23,-81,0.007,-34,-54,0.002,0,18,0.000,-38,-67,0.001,47,22,0.035,34,-111,0.002,-23,-54,0.008,-24,31,0.036,62,51,0.001,58,58,0.010,35,81,0.001,37,94,0.000,34,36,0.020,15,22,0.001,10,30,0.009,47,120,0.001,1,-78,0.007,38,-88,0.005,15,-89,0.015,49,19,0.072,25,41,0.002,-2,101,0.015,2,36,0.003,1,31,0.020,16,83,0.045,-22,30,0.004,48,49,0.000,26,105,0.080,25,-102,0.002,40,108,0.013,2,-77,0.006,36,39,0.019,-18,-70,0.005,50,82,0.003,12,29,0.004,-31,31,0.025,40,-5,0.013,29,123,0.017,7,127,0.017,6,-62,0.001,39,97,0.001,54,69,0.002,50,52,0.001,30,47,0.014,26,46,0.004,6,49,0.002,3,13,0.004,2,104,0.011,17,-62,0.002,-21,23,0.000,51,114,0.001,-3,-69,0.000,12,106,0.030,45,24,0.021,6,100,0.007,30,89,0.000,45,-91,0.003,60,28,0.003,32,50,0.012,-17,-41,0.005,31,-103,0.001,28,45,0.000,55,64,0.002,51,61,0.001,31,74,0.202,28,-100,0.007,9,106,0.113,27,71,0.013,22,-78,0.005,-1,25,0.002,-2,-52,0.000,-5,-42,0.015,46,63,0.001,43,123,0.024,45,92,0.001,42,62,0.003,6,-2,0.025,46,-102,0.001,-11,-63,0.001,-15,-66,0.000,57,73,0.000,37,62,0.008,33,63,0.002,10,126,0.010,28,105,0.119,9,21,0.001,56,15,0.007,37,-77,0.032,-4,-70,0.001,33,-80,0.014,46,124,0.019,43,-90,0.004,0,38,0.029,-5,146,0.002,13,122,0.052,1,112,0.007,15,105,0.062,11,38,0.052,-43,-73,0.003,-9,-45,0.000,25,103,0.067,-13,16,0.018,61,12,0.001,58,14,0.006,0,102,0.028,-18,169,0.001,35,109,0.049,37,130,0.007,34,72,0.110,15,-6,0.002,14,75,0.040,11,-9,0.004,48,-121,0.001,-32,149,0.000,53,46,0.018,49,47,0.001,29,76,0.092,-9,126,0.012,25,69,0.093,-19,32,0.013,68,34,0.006,48,101,0.000,40,80,0.003,39,-93,0.003,50,118,0.001,12,25,0.010,-12,31,0.003,59,39,0.002,36,-94,0.011,35,57,0.002,30,-84,0.011,-8,-45,0.001,7,35,0.001,-17,29,0.004,54,33,0.006,7,-12,0.008,6,13,0.002,17,-98,0.016,-3,-65,0.000,-26,30,0.020,-27,-59,0.003,-13,-39,0.020,60,9,0.001,21,50,0.002,36,79,0.002,17,75,0.093,-6,-46,0.002,31,-116,0.001,42,109,0.001,-16,-53,0.000,21,-105,0.009,-20,-58,0.000,54,78,0.001,32,70,0.025,28,73,0.018,8,20,0.001,-16,26,0.002,55,36,0.005,31,30,0.065,42,-113,0.001,19,48,0.002,18,-87,0.001,-3,-48,0.003,65,27,0.000,43,87,0.006,45,128,0.041,18,28,0.001,52,-112,0.001,9,-76,0.002,46,-74,0.001,-11,-75,0.005,-14,41,0.008,-15,-70,0.005,57,37,0.003,52,-1,0.157,-10,-35,0.035,24,77,0.049,34,119,0.209,-24,-63,0.002,-28,-52,0.017,43,2,0.037,24,68,0.219,-9,32,0.009,0,74,0.001,13,94,0.001,-28,27,0.017,43,19,0.022,24,-77,0.001,23,104,0.050,38,-2,0.004,25,115,0.077,-38,177,0.003,61,16,0.001,49,126,0.008,-8,115,0.018,-42,173,0.001,-18,24,0.001,53,18,0.018,44,117,0.002,5,22,0.004,38,79,0.004,49,-68,0.001,48,137,0.000,14,122,0.331,63,13,0.001,36,47,0.019,35,12,0.002,11,126,0.015,26,-108,0.006,-11,30,0.004,39,24,0.002,50,9,0.110,27,82,0.167,29,99,0.002,6,-6,0.027,53,102,0.002,30,-9,0.030,6,41,0.006,17,-102,0.001,54,-112,0.000,64,42,0.000,-30,29,0.017,41,33,0.025,36,123,0.008,17,39,0.006,-3,-44,0.035,-25,152,0.000,-7,13,0.001,27,-99,0.013,45,-83,0.001,42,81,0.004,41,-78,0.006,-17,-48,0.016,51,28,0.006,32,42,0.002,-25,-69,0.002,22,-97,0.018,-16,46,0.001,-20,49,0.010,51,5,0.150,32,-103,0.002,-25,-70,0.001,19,28,0.001,-1,-47,0.005,-5,14,0.011,46,-121,0.000,42,22,0.050,18,32,0.001,33,10,0.007,-5,-65,0.001,-15,-42,0.009,22,108,0.046,0,128,0.009,52,43,0.005,13,36,0.004,-10,-39,0.002,24,113,0.059,56,87,0.005,33,-88,0.007,47,33,0.009,44,21,0.031,23,27,0.000,20,43,0.009,-4,33,0.024,44,-92,0.011,62,40,0.001,20,-102,0.035,35,108,0.056,15,33,0.079,14,4,0.004,10,7,0.011,47,131,0.025,61,52,0.004,38,-119,0.002,49,122,0.004,48,-65,0.001,29,3,0.001,-19,-41,0.012,53,6,0.012,49,7,0.067,48,14,0.028,44,81,0.010,40,129,0.030,38,107,0.035,35,-105,0.003,16,-1,0.001,53,-101,0.000,12,2,0.004,29,-95,0.108,59,46,0.001,40,24,0.008,61,77,0.000,35,40,0.011,11,122,0.002,40,-89,0.015,39,124,0.016,16,-99,0.016,50,13,0.069,-12,-51,0.000,27,110,0.072,41,95,0.001,3,40,0.003,2,129,0.002,39,141,0.035,-21,58,0.036,-21,-64,0.003,30,3,0.001,7,-68,0.001,-17,-58,0.001,-6,23,0.019,30,110,0.066,8,118,0.003,45,4,0.023,60,65,0.002,-35,146,0.000,32,79,0.000,-26,-59,0.002,8,5,0.048,3,99,0.153,55,59,0.003,51,56,0.022,32,-2,0.001,27,42,0.001,4,23,0.003,22,-101,0.018,-16,-46,0.001,21,96,0.077,-1,132,0.002,-39,-71,0.003,46,36,0.010,43,126,0.117,55,125,0.002,-2,16,0.001,-25,47,0.005,9,-85,0.002,43,143,0.021,42,-6,0.008,-11,38,0.003,57,96,0.000,37,41,0.021,28,78,0.584,-10,38,0.001,-14,-47,0.001,56,76,0.001,52,71,0.003,13,8,0.033,9,9,0.041,46,77,0.000,-14,-60,0.002,23,-82,0.072,-34,-65,0.002,0,19,0.003,47,21,0.022,19,100,0.031,34,-110,0.001,-23,-55,0.004,-24,32,0.003,58,55,0.003,35,136,0.059,34,33,0.004,15,21,0.001,10,43,0.005,-9,31,0.002,-9,117,0.087,-40,175,0.004,1,-79,0.001,38,-91,0.005,15,-90,0.021,49,22,0.029,25,44,0.005,2,33,0.030,1,34,0.036,26,106,0.102,25,-103,0.027,40,101,0.000,2,-76,0.022,36,40,0.021,50,79,0.001,12,30,0.006,40,-4,0.014,-52,-70,0.001,29,118,0.062,7,126,0.070,6,-57,0.004,40,-117,0.000,36,-122,0.002,54,70,0.011,53,141,0.002,50,49,0.002,30,48,0.029,26,59,0.003,6,50,0.000,3,20,0.014,2,101,0.009,-21,22,0.000,51,113,0.001,12,107,0.005,45,23,0.016,30,90,0.001,-37,-70,0.001,-27,33,0.017,45,-88,0.002,60,29,0.006,21,-98,0.028,32,51,0.020,28,46,0.001,8,41,0.024,55,63,0.003,51,68,0.001,-3,137,0.000,31,73,0.126,28,-99,0.001,9,105,0.011,27,70,0.041,-1,24,0.003,-2,-55,0.001,-5,-43,0.009,66,65,0.000,46,64,0.000,43,122,0.021,45,91,0.002,42,75,0.035,55,97,0.001,46,-113,0.001,-15,-67,0.000,57,76,0.000,37,61,0.003,33,66,0.004,28,106,0.122,9,24,0.002,-11,-47,0.001,-9,23,0.002,-4,121,0.014,56,16,0.006,37,-82,0.011,-4,-69,0.001,33,-81,0.013,44,62,0.000,46,121,0.005,43,-91,0.006,24,57,0.007,0,39,0.003,-5,145,0.003,13,121,0.016,1,111,0.019,15,104,0.063,11,37,0.020,14,46,0.011,25,106,0.064,-13,15,0.007,61,11,0.002,58,27,0.007,35,116,0.239,37,129,0.027,34,69,0.015,15,-7,0.002,14,76,0.104,11,-10,0.004,-8,144,0.001,-32,150,0.000,-19,-54,0.001,53,45,0.012,49,50,0.001,29,75,0.054,25,72,0.025,-33,-67,0.001,-19,31,0.011,48,102,0.000,-32,-68,0.015,40,73,0.080,39,-94,0.038,50,115,0.001,12,26,0.010,-12,32,0.002,59,38,0.012,36,-93,0.005,35,48,0.016,12,-87,0.008,30,-87,0.015,-8,-44,0.001,29,90,0.004,7,34,0.002,-36,149,0.001,54,34,0.003,30,28,0.002,6,14,0.004,-20,35,0.018,17,-99,0.023,-7,-61,0.000,-27,-56,0.006,60,10,0.001,21,49,0.002,18,85,0.035,36,80,0.004,17,46,0.001,-6,-49,0.003,42,110,0.001,-16,-52,0.002,-20,-57,0.001,54,83,0.007,32,71,0.054,31,-4,0.005,28,74,0.022,27,-15,0.007,8,13,0.010,-16,27,0.002,55,35,0.004,42,-112,0.003,19,47,0.003,65,30,0.000,43,86,0.003,45,127,0.157,18,25,0.001,52,-111,0.000,13,-86,0.021,-30,153,0.001,-18,-57,0.001,-15,-71,0.007,57,40,0.029,56,-3,0.024,52,0,0.056,24,78,0.047,34,120,0.147,-5,132,0.001,-24,-62,0.000,47,-116,0.003,43,1,0.013,-1,10,0.002,67,16,0.001,13,93,0.002,-28,28,0.007,43,18,0.031,23,103,0.040,-37,-60,0.003,0,-70,0.000,15,76,0.080,61,15,0.001,49,125,0.006,-8,116,0.001,29,-6,0.001,20,77,0.077,-18,21,0.000,53,17,0.013,29,15,0.000,44,118,0.002,5,21,0.004,38,80,0.003,48,138,0.000,63,28,0.003,40,45,0.079,36,48,0.011,35,11,0.040,12,54,0.001,11,125,0.045,26,-111,0.000,39,23,0.020,17,123,0.003,-55,-67,0.001,50,10,0.042,27,81,0.188,29,94,0.001,41,118,0.031,54,-130,0.001,53,101,0.001,30,-8,0.015,26,-13,0.001,6,42,0.002,-10,-68,0.002,54,-115,0.000,-21,-54,0.019,64,43,0.000,-30,30,0.009,41,36,0.022,17,42,0.001,-3,-45,0.007,-6,-77,0.003,-25,151,0.000,-7,16,0.005,45,-80,0.000,42,82,0.004,41,-79,0.008,3,118,0.004,51,27,0.010,32,43,0.002,8,49,0.002,-16,47,0.005,51,12,0.051,32,-102,0.003,45,142,0.002,19,27,0.001,6,-11,0.006,33,92,0.000,-5,13,0.014,-6,120,0.078,65,58,0.002,46,-120,0.006,42,3,0.019,18,29,0.001,33,9,0.002,-5,-66,0.000,-29,152,0.001,-15,-43,0.003,22,105,0.031,-20,-50,0.003,52,44,0.005,13,35,0.004,47,-113,0.000,-10,-38,0.007,24,114,0.067,56,88,0.002,33,-89,0.004,47,32,0.011,44,22,0.027,23,26,0.000,20,44,0.007,19,87,0.005,34,-85,0.014,-4,34,0.028,44,-91,0.008,62,37,0.001,20,-101,0.066,38,31,0.017,35,107,0.055,15,32,0.002,14,1,0.006,10,8,0.050,47,130,0.018,61,51,0.006,-33,20,0.000,-18,178,0.008,6,40,0.013,49,121,0.006,48,-64,0.001,29,-2,0.001,-13,-56,0.000,16,121,0.070,53,5,0.000,49,10,0.054,48,15,0.033,26,83,0.238,44,82,0.020,40,130,0.009,38,108,0.002,35,-106,0.020,16,0,0.003,12,3,0.007,29,-92,0.001,48,-113,0.000,59,45,0.001,40,17,0.022,35,39,0.022,11,121,0.000,-8,37,0.010,40,-88,0.012,39,123,0.060,16,-98,0.009,50,14,0.038,27,109,0.057,3,39,0.001,51,108,0.015,30,4,0.001,7,-69,0.002,3,-72,0.001,-17,-59,0.000,-6,24,0.010,30,115,0.249,23,95,0.011,45,3,0.006,-4,-40,0.016,17,6,0.000,-6,-57,0.000,28,19,0.000,-26,-58,0.005,8,6,0.018,3,98,0.011,55,58,0.003,51,55,0.003,32,-1,0.001,31,52,0.009,27,41,0.001,4,24,0.001,22,-100,0.020,-16,-45,0.001,21,95,0.033,-1,131,0.000,-3,-43,0.002,46,33,0.033,43,125,0.073,22,43,0.011,55,92,0.001,-2,13,0.001,-25,46,0.006,43,142,0.070,42,-9,0.002,57,95,0.000,19,-88,0.002,37,44,0.011,-2,128,0.001,10,104,0.006,28,79,0.240,-14,-46,0.002,56,69,0.001,37,-103,0.000,52,72,0.001,13,7,0.024,8,94,0.000,47,-77,0.000,9,12,0.026,46,78,0.000,43,-80,0.030,-11,125,0.002,-34,-64,0.004,0,20,0.002,37,-118,0.001,47,68,0.007,19,99,0.007,-8,143,0.000,-23,-52,0.007,-24,25,0.001,14,38,0.008,58,56,0.007,38,59,0.004,35,135,0.026,34,34,0.008,15,4,0.002,10,44,0.007,14,32,0.005,1,-76,0.009,38,-90,0.078,15,-91,0.045,49,21,0.036,25,43,0.005,2,34,0.015,1,33,0.014,16,77,0.063,-22,44,0.002,48,51,0.000,26,103,0.045,25,-100,0.098,36,41,0.039,-22,-69,0.001,50,80,0.001,12,31,0.007,7,172,0.001,5,126,0.005,-7,156,0.004,29,117,0.090,7,125,0.052,39,95,0.000,36,-121,0.018,54,75,0.003,50,50,0.001,30,45,0.003,26,60,0.002,3,19,0.004,2,102,0.029,12,108,0.012,-7,-70,0.000,45,18,0.012,-25,-65,0.019,36,101,0.003,-3,38,0.011,30,79,0.060,45,-89,0.003,60,30,0.021,-29,-60,0.001,21,-99,0.012,32,52,0.045,31,-105,0.000,28,47,0.002,8,42,0.015,55,62,0.047,51,67,0.001,-3,140,0.000,31,72,0.046,28,-98,0.001,27,69,0.063,42,-71,0.142,-1,23,0.003,-2,-54,0.001,43,121,0.012,45,86,0.005,42,76,0.008,22,71,0.073,56,-117,0.000,55,96,0.001,52,-122,0.001,13,-59,0.009,-25,18,0.000,5,12,0.006,46,-112,0.002,-11,-61,0.003,-15,-64,0.002,57,75,0.000,37,64,0.002,33,65,0.003,28,107,0.091,9,23,0.000,-11,-44,0.002,-18,-63,0.019,-15,13,0.001,56,41,0.027,37,-83,0.006,-4,-68,0.000,33,-78,0.004,44,63,0.001,46,122,0.009,43,-84,0.012,20,53,0.002,0,40,0.002,-5,152,0.002,13,124,0.073,43,53,0.002,1,114,0.001,34,-77,0.012,15,103,0.058,11,44,0.008,10,-83,0.008,-9,-47,0.001,25,105,0.075,-13,14,0.004,61,6,0.002,58,28,0.001,35,115,0.191,34,70,0.074,15,-8,0.002,49,100,0.000,11,-11,0.008,-32,151,0.002,-19,-55,0.000,53,48,0.005,49,49,0.001,29,70,0.014,25,71,0.020,-2,106,0.005,-19,26,0.001,48,103,0.000,40,74,0.014,39,-95,0.008,36,69,0.023,50,116,0.001,12,27,0.004,-7,135,0.001,11,104,0.003,-12,33,0.001,59,37,0.001,5,98,0.013,39,50,0.012,36,-92,0.003,35,47,0.020,12,-86,0.040,30,-86,0.007,-8,-51,0.000,29,89,0.003,7,33,0.004,-36,150,0.011,54,39,0.015,30,25,0.000,6,19,0.002,17,-96,0.024,-27,-57,0.002,60,11,0.012,21,52,0.002,36,81,0.003,17,45,0.002,-6,-48,0.003,42,123,0.041,-16,-59,0.001,-20,-56,0.001,52,85,0.003,54,84,0.026,-41,-63,0.001,32,72,0.047,31,-5,0.007,28,75,0.030,8,14,0.004,-16,28,0.006,55,34,0.004,31,44,0.006,19,46,0.003,18,-89,0.003,33,127,0.017,-5,56,0.002,-36,148,0.002,65,29,0.000,43,85,0.004,45,122,0.013,18,26,0.001,6,7,0.088,52,-110,0.000,13,-87,0.027,46,-68,0.001,-11,-73,0.000,-14,39,0.007,-15,-68,0.001,57,39,0.012,56,-2,0.010,52,1,0.030,24,79,0.061,34,117,0.236,33,-114,0.001,-24,-61,0.000,47,-117,0.013,43,8,0.035,19,122,0.001,67,15,0.001,43,17,0.017,58,-3,0.001,-37,-61,0.002,15,75,0.079,47,93,0.000,62,-7,0.001,61,42,0.001,-46,170,0.001,49,128,0.004,-8,109,0.170,29,-7,0.001,20,78,0.082,-18,22,0.000,53,20,0.017,48,-4,0.018,29,42,0.001,44,119,0.006,5,24,0.001,38,77,0.013,48,139,0.000,63,27,0.001,40,46,0.017,39,5,0.001,36,49,0.015,35,10,0.021,-19,147,0.000,12,55,0.000,39,22,0.012,50,7,0.077,27,88,0.023,29,93,0.002,41,117,0.015,53,104,0.005,26,-12,0.001,-9,143,0.000,17,-100,0.008,54,-114,0.000,-30,27,0.019,41,35,0.013,36,109,0.012,32,117,0.188,-6,-76,0.002,-7,15,0.003,42,79,0.005,41,-76,0.009,3,117,0.001,21,-75,0.002,51,26,0.009,32,44,0.002,8,50,0.002,4,45,0.003,22,-99,0.008,-16,48,0.005,51,11,0.038,32,-101,0.002,8,-63,0.006,19,26,0.001,-1,-49,0.001,33,91,0.000,-5,20,0.014,46,-123,0.004,42,4,0.004,57,86,0.002,18,30,0.001,33,12,0.003,6,0,0.036,-29,151,0.000,-15,-40,0.014,22,106,0.021,37,-8,0.009,52,29,0.006,13,30,0.006,47,-114,0.001,46,103,0.000,24,115,0.051,33,-86,0.032,47,31,0.008,44,23,0.025,19,86,0.032,34,-84,0.022,-4,35,0.014,44,-90,0.004,62,38,0.001,20,-100,0.064,38,32,0.015,35,106,0.058,15,31,0.001,14,2,0.008,10,5,0.009,47,129,0.017,61,46,0.001,-33,19,0.002,49,124,0.004,11,-83,0.001,48,-55,0.001,29,-3,0.001,16,122,0.038,53,8,0.022,49,9,0.126,48,16,0.018,26,84,0.316,44,83,0.004,5,-4,0.069,38,105,0.001,35,-107,0.001,16,9,0.000,12,4,0.016,29,-93,0.004,-37,141,0.000,59,52,0.001,40,18,0.041,-20,-43,0.080,35,38,0.052,16,16,0.001,-8,38,0.012,40,-95,0.003,39,122,0.073,16,-97,0.010,50,43,0.003,27,116,0.075,3,38,0.001,-1,103,0.010,-21,32,0.013,51,107,0.002,30,1,0.000,7,-70,0.003,3,-73,0.006,-13,-38,0.116,-6,21,0.007,-35,-62,0.003,30,116,0.155,-35,148,0.001,17,5,0.000,-6,-56,0.001,-26,-53,0.014,8,7,0.014,41,-112,0.004,3,97,0.003,55,57,0.003,52,125,0.002,51,54,0.002,32,0,0.001,31,51,0.012,27,48,0.002,4,25,0.001,22,-103,0.005,-16,-44,0.005,21,106,0.212,-39,-69,0.003,31,100,0.002,46,34,0.012,43,132,0.024,22,44,0.006,55,91,0.002,-2,14,0.002,-25,45,0.004,-10,153,0.000,43,141,0.004,42,-8,0.044,19,-89,0.002,37,43,0.015,-2,125,0.001,28,80,0.220,-14,-49,0.002,56,70,0.003,37,-100,0.002,52,73,0.001,-12,-66,0.001,13,2,0.012,9,11,0.013,46,83,0.002,43,-81,0.007,-14,-62,0.000,-34,-67,0.001,0,13,0.000,37,-119,0.001,-23,46,0.002,-30,-49,0.004,23,29,0.000,19,98,0.008,34,-112,0.003,-36,-60,0.003,-23,-53,0.004,-24,26,0.002,-43,-64,0.001,62,50,0.001,58,53,0.006,38,60,0.002,35,134,0.025,37,95,0.000,15,3,0.001,11,0,0.024,10,41,0.011,-9,29,0.003,5,-70,0.000,-10,162,0.001,1,-77,0.028,38,-85,0.037,49,24,0.044,2,31,0.038,1,36,0.014,16,78,0.083,48,52,0.001,26,104,0.072,25,-101,0.007,2,-78,0.002,36,42,0.030,-22,-68,0.001,50,77,0.000,12,32,0.008,-42,-73,0.005,-12,22,0.001,59,16,0.007,5,125,0.001,36,-7,0.000,29,120,0.110,7,124,0.031,40,-123,0.001,39,94,0.001,36,-120,0.004,54,76,0.002,53,143,0.002,50,47,0.002,30,46,0.003,26,57,0.001,3,18,0.002,2,99,0.030,17,-61,0.002,-21,28,0.005,12,77,0.152,64,-147,0.002,45,17,0.019,6,103,0.022,57,12,0.012,36,102,0.052,-21,165,0.001,-3,37,0.004,30,80,0.016,45,-94,0.008,60,31,0.024,32,45,0.037,31,-106,0.050,28,48,0.007,8,43,0.006,-16,33,0.002,55,61,0.010,51,66,0.001,-3,139,0.000,31,71,0.034,28,-97,0.004,9,107,0.044,27,76,0.096,42,-70,0.028,-1,22,0.004,-5,-37,0.006,66,63,0.001,46,62,0.001,43,96,0.000,45,85,0.003,42,73,0.004,22,72,0.060,18,51,0.001,55,95,0.003,-29,-50,0.006,-15,-65,0.000,57,62,0.010,56,-5,0.001,37,63,0.005,33,68,0.008,28,108,0.065,9,26,0.000,-11,-45,0.001,-15,16,0.004,56,42,0.017,37,-80,0.010,33,-79,0.007,44,64,0.000,43,-85,0.011,20,54,0.002,-23,26,0.001,13,123,0.025,47,55,0.001,43,60,0.003,20,-155,0.000,1,113,0.002,38,-27,0.002,37,142,0.001,34,-76,0.003,15,102,0.032,11,43,0.009,-9,-48,0.002,25,108,0.032,58,25,0.004,35,114,0.195,37,131,0.000,34,67,0.005,15,-9,0.005,49,99,0.000,11,-4,0.022,-9,112,0.066,-32,152,0.001,-19,-52,0.001,53,47,0.008,49,52,0.001,48,1,0.015,29,69,0.006,25,74,0.047,-19,25,0.000,48,104,0.000,-12,-77,0.053,40,75,0.003,39,-96,0.005,36,70,0.016,-19,170,0.001,50,113,0.001,12,28,0.004,11,103,0.001,-12,34,0.013,59,44,0.001,5,97,0.020,39,49,0.023,36,-107,0.001,35,46,0.022,12,-85,0.016,30,-97,0.028,-8,-50,0.002,29,92,0.010,7,32,0.005,8,100,0.043,54,40,0.026,6,20,0.002,-31,152,0.001,17,-97,0.011,-26,33,0.032,8,105,0.006,60,12,0.005,41,58,0.002,21,51,0.002,18,83,0.042,36,82,0.002,17,48,0.001,-6,-51,0.000,42,124,0.136,-16,-58,0.003,-20,-55,0.001,52,86,0.011,54,81,0.001,31,-6,0.012,28,76,0.071,27,-9,0.000,8,15,0.003,-16,21,0.000,55,33,0.003,31,43,0.002,42,-114,0.003,19,45,0.004,18,-88,0.005,33,130,0.025,43,92,0.001,45,121,0.006,-4,153,0.001,52,-109,0.000,13,-84,0.002,46,-71,0.028,-14,40,0.012,-15,-69,0.003,57,42,0.012,0,103,0.004,52,2,0.031,24,80,0.048,-9,18,0.003,34,118,0.253,33,-115,0.001,-5,130,0.001,47,-118,0.000,43,7,0.021,-13,-47,0.001,-24,-45,0.032,43,24,0.021,23,101,0.019,38,1,0.003,15,74,0.035,47,108,0.008,62,-6,0.001,61,41,0.001,-4,102,0.003,49,127,0.007,-8,110,0.259,29,-4,0.000,20,79,0.064,-18,27,0.003,53,19,0.038,-3,106,0.008,29,41,0.001,44,120,0.011,5,23,0.001,38,78,0.016,-22,-159,0.000,48,140,0.000,29,-102,0.001,63,26,0.001,40,47,0.027,39,4,0.005,36,50,0.017,35,9,0.015,16,53,0.000,39,21,0.017,50,8,0.085,27,87,0.031,29,96,0.000,-22,-45,0.020,41,120,0.046,3,73,0.000,53,103,0.003,-35,-71,0.011,-25,-56,0.008,17,-101,0.004,-21,-44,0.023,8,77,0.106,-30,28,0.023,41,22,0.023,-29,-59,0.004,36,110,0.020,17,44,0.010,32,118,0.144,-6,-79,0.010,-7,18,0.005,42,80,0.002,41,-77,0.006,51,25,0.011,32,37,0.032,4,46,0.004,22,-98,0.013,51,10,0.046,32,-100,0.002,-38,178,0.000,8,-62,0.020,19,25,0.001,-1,-50,0.001,33,94,0.000,-5,19,0.022,5,1,0.009,46,-122,0.007,42,1,0.003,57,85,0.001,33,11,0.009,-5,-60,0.000,-30,150,0.000,-18,-52,0.001,-15,-41,0.007,22,79,0.052,52,30,0.012,13,29,0.004,47,-115,0.000,46,104,0.000,24,116,0.093,-14,-69,0.001,33,-87,0.011,47,30,0.018,44,24,0.030,19,85,0.088,34,-87,0.010,-4,36,0.011,14,44,0.040,44,-89,0.009,62,43,0.000,38,29,0.035,35,105,0.049,15,30,0.001,14,-9,0.004,10,6,0.012,47,128,0.030,61,45,0.001,-33,18,0.000,38,-112,0.001,34,11,0.015,49,123,0.003,48,-54,0.001,29,0,0.000,22,-12,0.001,16,123,0.003,53,7,0.025,49,12,0.052,48,25,0.028,26,81,0.298,44,84,0.003,5,-5,0.018,38,106,0.010,35,-100,0.001,16,10,0.000,53,-104,0.000,12,5,0.034,29,-98,0.048,59,51,0.001,40,19,0.021,35,37,0.076,16,25,0.001,-8,39,0.010,26,-77,0.001,-32,29,0.027,40,-94,0.002,-17,-47,0.010,16,-96,0.015,50,44,0.005,27,115,0.086,3,37,0.000,2,128,0.000,-21,31,0.014,51,106,0.001,50,-101,0.001,30,2,0.000,7,-71,0.005,3,-74,0.044,-6,22,0.007,30,113,0.145,-35,147,0.001,17,8,0.000,-26,-52,0.008,8,8,0.015,55,56,0.005,52,126,0.002,51,53,0.002,32,9,0.003,31,50,0.016,27,47,0.002,4,26,0.001,22,-102,0.021,-16,-51,0.001,21,105,0.028,-1,129,0.000,-36,139,0.010,31,99,0.003,46,23,0.011,43,131,0.009,22,41,0.008,55,90,0.004,-2,19,0.004,-25,44,0.001,57,97,0.001,19,-90,0.007,37,38,0.030,-10,-76,0.013,-2,126,0.001,28,81,0.086,-14,-48,0.002,-34,19,0.063,56,71,0.001,37,-101,0.001,34,107,0.047,52,74,0.001,-44,-64,0.001,13,1,0.007,47,-79,0.001,9,-2,0.006,46,84,0.005,43,-82,0.004,-34,-66,0.003,-22,167,0.000,0,14,0.000,-23,45,0.003,43,63,0.000,19,97,0.025,34,-115,0.000,-24,27,0.003,-43,-65,0.001,58,54,0.002,38,57,0.004,35,133,0.012,37,106,0.019,15,2,0.001,11,-1,0.012,10,42,0.004,5,-71,0.001,1,-74,0.001,38,-84,0.017,49,23,0.019,-28,-49,0.011,2,32,0.014,1,35,0.035,16,79,0.057,48,45,0.048,26,101,0.032,36,43,0.014,12,33,0.013,-42,-72,0.004,-21,-49,0.020,-12,23,0.001,59,15,0.005,39,76,0.015,36,-6,0.022,-7,142,0.000,29,119,0.061,7,123,0.025,6,-58,0.012,40,-122,0.006,36,-119,0.035,54,73,0.003,50,48,0.002,30,51,0.011,26,58,0.005,7,12,0.004,3,17,0.001,2,100,0.055,8,82,0.012,-21,27,0.001,50,-97,0.001,12,78,0.124,45,20,0.027,36,103,0.044,-3,40,0.000,30,77,0.190,-27,30,0.012,45,-95,0.003,60,32,0.001,21,-97,0.009,32,46,0.014,31,-107,0.001,28,49,0.005,8,44,0.004,-16,34,0.003,55,28,0.005,51,65,0.001,-3,134,0.001,31,70,0.007,28,-96,0.003,27,75,0.051,42,-73,0.033,18,-63,0.002,-1,21,0.003,-5,-38,0.017,66,64,0.001,43,95,0.000,45,88,0.002,42,74,0.007,22,69,0.001,18,52,0.000,55,94,0.001,46,-114,0.002,-11,-67,0.002,-28,152,0.004,-15,-62,0.000,57,61,0.013,56,-4,0.003,52,-9,0.006,33,67,0.005,28,109,0.066,9,25,0.002,-11,-50,0.000,-15,15,0.004,56,43,0.007,37,-81,0.012,34,79,0.000,44,65,0.001,-52,-69,0.001,43,-86,0.008,-9,36,0.010,20,55,0.001,-30,-55,0.003,47,54,0.001,43,59,0.002,-12,21,0.001,37,141,0.066,34,-79,0.014,15,101,0.049,11,42,0.003,10,-69,0.033,-9,-49,0.002,25,107,0.036,-13,20,0.001,61,8,0.001,58,26,0.004,35,113,0.101,37,126,0.009,34,68,0.007,15,-10,0.004,49,102,0.000,11,-5,0.012,14,33,0.027,-19,-53,0.001,53,58,0.001,49,51,0.000,48,2,0.032,29,72,0.113,44,125,0.044,25,73,0.034,-19,28,0.003,48,81,0.001,-12,-76,0.027,40,76,0.001,39,-97,0.001,36,71,0.005,50,114,0.001,-38,147,0.001,-12,35,0.008,59,43,0.001,39,48,0.019,36,-106,0.001,35,45,0.025,12,-84,0.004,30,-96,0.008,-8,-49,0.003,29,91,0.004,14,79,0.069,7,31,0.005,-17,41,0.001,54,37,0.020,53,110,0.001,30,15,0.001,-22,-43,0.027,6,17,0.003,17,-94,0.016,-26,34,0.006,8,106,0.007,41,57,0.000,21,46,0.004,18,84,0.113,36,83,0.001,17,47,0.001,-6,-50,0.003,42,121,0.023,-16,-57,0.002,-20,-54,0.001,52,87,0.001,54,82,0.002,31,-7,0.023,27,-10,0.001,8,16,0.012,-16,22,0.000,55,32,0.002,31,42,0.002,-2,-49,0.004,19,52,0.002,18,-91,0.002,-29,32,0.023,43,91,0.002,45,124,0.023,52,-108,0.001,13,-85,0.010,5,7,0.098,46,-70,0.005,-14,37,0.001,57,41,0.020,0,104,0.006,-43,148,0.006,24,105,0.039,34,115,0.231,33,-112,0.042,47,-119,0.002,44,29,0.023,43,6,0.073,23,-13,0.000,-36,-69,0.000,-24,-44,0.003,43,23,0.025,24,-81,0.002,23,100,0.022,20,-78,0.001,38,2,0.002,0,-75,0.001,47,107,0.006,61,44,0.001,35,141,0.140,-4,103,0.038,49,130,0.003,48,-89,0.004,29,-5,0.001,20,80,0.056,-18,28,0.004,53,14,0.017,29,44,0.001,44,121,0.006,5,34,0.002,38,83,0.001,48,133,0.004,63,25,0.001,40,48,0.025,39,3,0.015,36,51,0.028,35,0,0.051,16,54,0.001,26,-112,0.000,59,7,0.001,39,20,0.004,17,96,0.083,50,5,0.119,27,86,0.104,29,95,0.001,41,119,0.039,54,-127,0.000,53,82,0.003,30,-5,0.006,-21,-45,0.011,8,78,0.178,-30,25,0.001,41,21,0.030,36,111,0.019,17,43,0.014,32,119,0.159,-6,-78,0.011,-7,17,0.005,42,77,0.006,41,-90,0.015,51,16,0.026,32,38,0.004,4,47,0.003,51,9,0.055,32,-107,0.001,8,-61,0.001,45,143,0.000,-1,-51,0.001,33,93,0.000,-5,18,0.009,46,-117,0.003,42,2,0.007,-34,149,0.001,6,12,0.009,-44,-71,0.001,-5,-61,0.000,22,80,0.053,52,31,0.020,13,32,0.010,47,-100,0.000,-10,-67,0.002,24,109,0.056,20,-16,0.001,56,83,0.000,33,-84,0.083,47,29,0.045,44,25,0.031,34,-86,0.020,-4,37,0.020,44,-88,0.018,62,44,0.000,38,30,0.021,35,96,0.000,15,29,0.001,14,-8,0.003,10,-13,0.013,47,127,0.045,-9,121,0.020,61,48,0.002,34,12,0.000,49,30,0.012,48,-53,0.001,29,-1,0.001,-13,-59,0.000,-19,-45,0.002,6,123,0.008,49,11,0.041,48,26,0.034,26,82,0.212,44,85,0.007,40,125,0.064,38,111,0.027,35,-101,0.008,53,-105,0.002,12,6,0.026,29,-99,0.002,59,50,0.001,40,20,0.026,-11,150,0.001,35,44,0.020,16,26,0.001,-8,40,0.014,-32,30,0.022,40,-93,0.002,39,120,0.029,50,41,0.007,27,114,0.149,26,35,0.001,3,44,0.008,-21,30,0.007,51,105,0.001,50,-100,0.000,23,81,0.071,7,-72,0.037,3,-75,0.017,-6,35,0.008,30,114,0.196,18,81,0.016,45,0,0.017,17,7,0.000,-26,-55,0.008,8,1,0.012,41,-110,0.001,55,55,0.006,52,127,0.001,51,60,0.002,32,10,0.001,31,49,0.028,28,5,0.000,27,46,0.002,4,27,0.001,-16,-50,0.003,21,108,0.027,-1,128,0.003,31,98,0.003,46,24,0.032,43,130,0.023,-4,144,0.001,22,42,0.011,55,89,0.001,-2,20,0.002,46,-89,0.001,57,100,0.000,37,37,0.031,-2,131,0.000,28,82,0.054,-9,27,0.006,-34,20,0.009,56,72,0.001,37,-106,0.001,34,108,0.091,52,75,0.001,13,4,0.013,9,-3,0.004,46,81,0.001,43,-83,0.023,-34,-61,0.008,0,15,0.000,-23,48,0.013,13,145,0.005,43,62,0.001,23,59,0.019,34,-114,0.002,-24,28,0.002,-42,146,0.001,44,-124,0.001,38,58,0.002,35,140,0.921,37,105,0.012,15,1,0.002,11,-2,0.012,10,39,0.041,1,-75,0.009,38,-87,0.009,49,26,0.027,14,19,0.002,2,29,0.005,1,38,0.001,16,80,0.072,48,46,0.002,26,102,0.041,40,97,0.002,36,44,0.015,38,139,0.002,-22,-70,0.001,50,107,0.001,12,34,0.005,-12,24,0.001,59,14,0.005,40,-8,0.037,39,75,0.001,36,-5,0.022,35,72,0.016,-7,141,0.000,29,114,0.112,7,122,0.002,40,-121,0.001,36,-118,0.001,54,74,0.025,50,45,0.003,30,52,0.010,26,55,0.001,7,11,0.011,2,97,0.001,-20,31,0.009,-21,26,0.000,-3,-78,0.018,50,-96,0.001,12,79,0.139,-7,-69,0.000,45,19,0.018,6,101,0.047,18,109,0.011,36,104,0.068,-3,39,0.004,-35,-67,0.001,30,78,0.102,-27,29,0.081,45,-92,0.007,60,33,0.001,21,-86,0.002,32,47,0.008,31,-92,0.007,8,37,0.025,-16,35,0.021,55,27,0.010,-3,133,0.001,31,69,0.004,28,-95,0.001,9,93,0.002,27,74,0.033,42,-72,0.032,-1,36,0.057,-5,-39,0.007,66,61,0.000,5,-6,0.019,43,94,0.001,45,87,0.002,42,71,0.007,22,70,0.028,18,49,0.002,55,93,0.009,-11,-64,0.001,-15,-63,0.001,57,64,0.004,37,73,0.001,52,-8,0.010,33,70,0.018,28,110,0.065,9,28,0.004,-11,-51,0.001,-15,18,0.001,56,44,0.065,34,80,0.000,-4,-65,0.000,44,66,0.006,46,109,0.000,43,-87,0.024,24,53,0.000,20,56,0.000,-20,147,0.004,-23,28,0.002,47,53,0.002,-47,-68,0.000,1,115,0.000,34,-78,0.007,14,-83,0.002,11,41,0.009,10,-68,0.034,-9,-50,0.001,25,94,0.031,-13,19,0.003,61,7,0.001,58,23,0.002,37,125,0.001,34,65,0.002,15,-11,0.003,49,101,0.000,11,-6,0.009,-19,-58,0.000,53,57,0.013,49,54,0.001,48,3,0.330,29,71,0.057,44,126,0.080,25,76,0.057,-19,27,0.002,48,82,0.001,-12,-59,0.001,40,69,0.036,39,-98,0.001,36,72,0.003,50,111,0.000,-7,140,0.001,-12,36,0.005,59,42,0.001,39,47,0.013,36,-105,0.001,35,52,0.287,30,-99,0.001,-8,-48,0.004,29,86,0.000,7,30,0.006,-17,40,0.013,54,38,0.037,30,16,0.000,6,18,0.004,17,-95,0.010,64,19,0.000,41,60,0.008,21,45,0.004,57,-1,0.001,-6,-37,0.013,42,122,0.050,4,-75,0.071,-16,-56,0.014,-20,-53,0.000,52,88,0.001,54,87,0.020,31,-8,0.041,27,-11,0.001,-16,23,0.003,55,31,0.014,31,41,0.001,19,51,0.002,18,-90,0.003,33,132,0.046,66,33,0.001,-29,31,0.017,43,90,0.004,45,123,0.028,42,43,0.027,4,114,0.002,13,-90,0.005,46,-81,0.003,-14,38,0.001,57,44,0.002,0,113,0.004,24,106,0.026,34,116,0.243,33,-113,0.000,-5,136,0.000,47,-120,0.003,43,5,0.027,23,-14,0.000,19,111,0.070,-24,-51,0.041,44,-83,0.002,43,22,0.032,58,12,0.005,20,-77,0.016,-37,-56,0.001,0,-74,0.001,47,106,0.000,61,43,0.001,-4,104,0.024,49,129,0.002,-8,112,0.241,29,-10,0.002,20,81,0.036,-18,25,0.003,53,13,0.013,29,43,0.000,44,122,0.010,5,33,0.003,-28,-59,0.008,48,134,0.002,29,-100,0.002,63,24,0.003,40,41,0.023,39,2,0.001,36,52,0.029,35,-1,0.011,59,6,0.005,39,19,0.005,17,95,0.018,54,-9,0.001,50,6,0.071,27,85,0.085,41,122,0.081,53,81,0.002,30,-4,0.002,54,-111,0.000,23,99,0.013,-30,26,0.001,41,24,0.015,36,112,0.078,32,120,0.259,-6,-81,0.001,-7,20,0.006,42,78,0.002,41,-91,0.010,51,15,0.036,32,39,0.001,8,45,0.005,4,48,0.002,-3,-39,0.000,51,0,0.311,32,-106,0.005,-29,-70,0.002,-38,142,0.000,-5,17,0.006,46,-116,0.002,42,-1,0.017,57,87,0.000,-2,120,0.007,-5,-62,0.000,-15,-39,0.030,22,77,0.073,52,32,0.015,13,31,0.010,47,-101,0.001,46,102,0.000,24,110,0.085,-14,-71,0.015,20,-15,0.001,56,84,0.001,-3,147,0.001,33,-85,0.011,47,44,0.002,44,26,0.041,34,-89,0.006,-4,38,0.036,44,-87,0.006,62,41,0.001,38,35,0.017,35,95,0.000,-27,153,0.003,15,44,0.047,49,144,0.002,10,-12,0.012,47,126,0.039,61,47,0.004,34,9,0.012,15,-83,0.001,49,29,0.033,-19,-50,0.003,-3,101,0.001,48,27,0.028,26,79,0.122,44,86,0.013,40,126,0.020,38,112,0.027,35,-102,0.000,12,7,0.030,29,-96,0.004,59,49,0.001,35,43,0.013,16,27,0.001,-8,33,0.003,14,98,0.001,-31,-70,0.002,-32,31,0.001,40,-92,0.003,39,119,0.141,16,-86,0.001,50,42,0.005,27,113,0.179,-22,-48,0.028,41,86,0.006,3,43,0.003,2,126,0.002,-54,-68,0.000,-21,29,0.063,50,-103,0.001,-35,-72,0.000,45,42,0.019,7,-73,0.037,-6,36,0.012,45,-1,0.003,41,-124,0.001,-29,-64,0.004,-35,141,0.001,17,10,0.000,32,92,0.000,-26,-54,0.021,8,2,0.010,41,-111,0.010,55,54,0.004,52,128,0.001,51,59,0.016,32,11,0.001,31,48,0.013,28,6,0.000,27,45,0.002,4,28,0.001,-16,-49,0.008,21,107,0.099,18,-69,0.072,-20,18,0.001,31,97,0.002,46,21,0.025,43,129,0.012,55,88,0.001,-2,17,0.002,-8,-79,0.010,5,0,0.111,46,-88,0.001,43,146,0.002,37,40,0.018,-39,142,0.001,-2,132,0.003,28,83,0.030,-10,15,0.005,-14,-50,0.001,-18,-67,0.008,56,65,0.002,37,-107,0.001,34,105,0.036,52,76,0.001,13,3,0.020,9,0,0.017,46,82,0.001,43,-76,0.020,-14,-67,0.000,-34,-60,0.042,0,16,0.001,37,-122,0.121,-23,47,0.004,43,61,0.001,23,58,0.011,-23,-64,0.002,44,-123,0.016,58,68,0.000,38,63,0.002,35,139,0.090,37,108,0.010,15,0,0.001,11,-3,0.013,10,40,0.043,1,-72,0.000,38,-86,0.007,49,25,0.041,-2,102,0.015,2,30,0.005,1,37,0.002,48,47,0.003,26,115,0.065,40,98,0.004,36,29,0.007,38,140,0.016,50,108,0.002,12,35,0.009,-12,25,0.003,59,13,0.003,39,74,0.002,36,-4,0.034,35,71,0.003,-7,144,0.004,29,113,0.156,40,-120,0.001,54,47,0.007,50,46,0.007,30,49,0.024,26,56,0.002,7,10,0.028,2,98,0.005,-21,25,0.000,-3,-79,0.035,50,-99,0.001,12,80,0.172,45,14,0.031,6,102,0.045,18,110,0.044,36,105,0.032,-3,34,0.030,-27,32,0.017,45,-93,0.033,42,131,0.015,60,34,0.002,21,-87,0.003,32,48,0.008,-17,-42,0.004,31,-93,0.004,28,51,0.001,8,38,0.040,-16,36,0.072,55,26,0.007,31,20,0.001,27,73,0.013,42,-75,0.012,4,-8,0.002,18,-65,0.022,-1,35,0.103,-36,144,0.001,66,62,0.000,43,93,0.001,45,82,0.002,42,72,0.016,22,75,0.081,18,50,0.001,6,3,0.074,9,-66,0.004,-10,124,0.002,-11,-65,0.001,-15,-60,0.000,57,63,0.002,37,76,0.000,52,-7,0.009,33,69,0.038,28,111,0.054,9,27,0.003,-11,-48,0.006,-33,148,0.000,-15,17,0.002,56,37,0.015,34,77,0.002,-4,-64,0.001,44,67,0.001,43,-112,0.003,24,54,0.000,-23,27,0.001,1,118,0.001,34,-81,0.018,11,16,0.006,10,-71,0.063,25,93,0.037,-13,18,0.006,-32,116,0.021,58,24,0.001,37,128,0.306,34,66,0.003,49,104,0.000,11,-7,0.006,10,76,0.021,-19,-59,0.000,53,60,0.011,49,53,0.001,48,4,0.013,29,66,0.001,44,127,0.077,25,75,0.059,-19,22,0.001,48,83,0.001,-12,-58,0.000,-32,-63,0.005,40,70,0.047,39,-99,0.001,36,73,0.007,50,112,0.001,-7,139,0.001,11,108,0.040,59,41,0.003,39,46,0.014,36,-104,0.000,35,51,0.038,30,-98,0.003,29,85,0.000,7,29,0.004,-17,39,0.005,54,43,0.004,30,13,0.001,-9,147,0.001,6,23,0.001,8,79,0.019,17,-92,0.025,64,20,0.001,-13,-48,0.001,41,59,0.004,21,48,0.004,18,82,0.024,17,49,0.000,-6,-36,0.007,-44,173,0.012,42,119,0.033,4,-74,0.186,-20,-52,0.000,52,89,0.001,54,88,0.001,31,-9,0.017,-16,24,0.005,55,30,0.007,31,40,0.000,19,50,0.002,18,-93,0.017,-3,-49,0.006,33,131,0.195,-29,30,0.010,43,89,0.004,45,118,0.001,42,44,0.013,4,115,0.012,13,-91,0.001,46,-80,0.003,-28,-65,0.010,-14,35,0.016,57,43,0.007,0,114,0.001,52,21,0.053,24,107,0.026,34,113,0.206,33,-110,0.001,-24,-65,0.003,47,-121,0.003,43,12,0.055,23,-15,0.000,19,110,0.057,-24,-50,0.014,-30,-58,0.002,43,21,0.033,-28,-60,0.004,23,98,0.012,20,-76,0.044,-37,-57,0.002,11,76,0.153,47,105,0.000,-13,46,0.003,61,38,0.001,-4,105,0.061,49,132,0.000,-42,174,0.003,20,82,0.056,-18,26,0.004,53,16,0.012,29,38,0.000,44,123,0.014,5,36,0.001,38,81,0.005,48,135,0.001,29,-101,0.001,63,23,0.002,40,42,0.012,39,1,0.000,-20,-47,0.007,35,-2,0.007,39,18,0.004,17,98,0.021,54,-8,0.003,50,3,0.055,27,92,0.015,41,121,0.066,53,84,0.027,30,-7,0.010,41,10,0.003,54,-110,0.001,-35,-58,0.401,64,40,0.010,-30,23,0.001,41,23,0.015,36,113,0.045,32,129,0.002,-6,-80,0.017,-7,19,0.003,42,91,0.001,41,-88,0.045,52,117,0.001,51,14,0.048,32,40,0.002,8,46,0.005,51,-1,0.049,32,-105,0.001,8,-67,0.002,-2,-44,0.002,33,95,0.000,-5,24,0.004,65,61,0.000,46,-119,0.006,42,0,0.004,-1,-52,0.000,-2,117,0.017,-5,-63,0.000,22,78,0.047,52,33,0.010,13,26,0.007,-10,-61,0.001,24,111,0.059,-14,-70,0.001,56,77,0.001,-20,170,0.000,47,43,0.009,44,27,0.105,20,33,0.001,34,-88,0.008,-4,39,0.006,47,-4,0.004,44,-86,0.001,62,42,0.001,38,36,0.019,15,43,0.005,49,143,0.002,47,125,0.035,61,74,0.009,-34,150,0.003,38,-109,0.000,34,10,0.016,49,32,0.019,-19,-51,0.002,-22,49,0.004,48,28,0.022,26,80,0.145,44,87,0.019,40,127,0.020,38,109,0.003,35,-103,0.000,16,5,0.000,12,8,0.062,-42,-65,0.000,29,-97,0.005,-36,-68,0.001,59,56,0.001,40,14,0.002,35,42,0.016,16,28,0.001,-8,34,0.004,26,-78,0.001,-31,-71,0.006,40,-99,0.002,39,118,0.284,50,39,0.008,-12,-50,0.000,27,120,0.063,26,33,0.057,41,85,0.002,3,42,0.005,51,95,0.004,-21,-65,0.002,50,-102,0.001,45,41,0.017,7,-74,0.007,-6,33,0.004,17,9,0.000,28,24,0.000,8,3,0.009,55,53,0.026,51,58,0.004,32,12,0.008,31,47,0.016,28,7,0.000,27,52,0.000,4,13,0.004,-16,-48,0.018,21,102,0.007,18,-68,0.008,-20,19,0.001,31,96,0.002,46,22,0.024,55,87,0.023,-10,-66,0.000,-2,18,0.004,46,-91,0.001,43,145,0.012,-11,37,0.004,57,54,0.004,37,39,0.020,-17,-50,0.004,28,84,0.035,-10,16,0.005,-34,18,0.000,56,66,0.002,37,-104,0.001,34,106,0.063,52,61,0.001,13,-2,0.018,9,-1,0.006,46,135,0.001,43,-77,0.028,-14,-66,0.000,-34,-63,0.003,0,25,0.006,-38,-56,0.001,47,63,0.000,43,68,0.001,23,57,0.004,-22,150,0.002,15,110,0.001,-23,-65,0.001,44,-122,0.006,58,65,0.000,38,64,0.003,35,138,0.079,37,107,0.019,15,-1,0.001,11,4,0.011,10,37,0.020,-9,116,0.085,-40,176,0.002,5,-74,0.020,1,-73,0.000,38,-81,0.013,49,28,0.019,25,34,0.000,2,27,0.002,1,40,0.001,48,48,0.000,26,116,0.071,40,99,0.004,36,30,0.012,35,-75,0.000,50,105,0.001,12,36,0.003,-12,26,0.005,62,114,0.002,-32,-51,0.001,39,73,0.003,35,70,0.016,-7,143,0.002,30,-105,0.000,29,116,0.098,36,-116,0.000,54,48,0.006,50,75,0.001,30,50,0.012,7,9,0.036,50,-98,0.000,12,81,0.065,-27,-70,0.001,45,13,0.060,8,125,0.058,36,106,0.027,-3,33,0.027,-7,-34,0.001,-37,-71,0.008,-27,31,0.009,45,-98,0.001,42,132,0.005,60,35,0.001,21,-84,0.001,32,57,0.001,31,-94,0.006,28,52,0.006,8,39,0.070,-16,29,0.033,55,25,0.012,-3,135,0.000,42,-74,0.007,4,-7,0.004,18,-64,0.002,-1,34,0.000,45,81,0.002,42,69,0.003,22,76,0.096,56,-120,0.001,18,47,0.001,-35,118,0.000,13,-60,0.003,14,-11,0.007,9,-67,0.013,46,-111,0.001,-11,-54,0.001,-15,-61,0.000,57,66,0.020,37,75,0.000,52,-6,0.006,33,72,0.080,28,112,0.109,9,14,0.014,-11,-49,0.001,-9,22,0.001,-4,122,0.005,56,38,0.015,34,78,0.000,-4,-63,0.000,44,68,0.001,43,-113,0.000,24,55,0.002,20,58,0.000,1,117,0.000,34,-80,0.013,15,82,0.001,11,15,0.018,10,-70,0.007,25,96,0.003,-13,17,0.011,37,127,0.358,34,63,0.016,49,103,0.000,10,73,0.000,53,59,0.009,49,56,0.001,48,-3,0.013,29,65,0.001,44,128,0.035,25,62,0.002,-1,167,0.000,35,-120,0.008,-19,21,0.000,48,84,0.001,-12,-57,0.000,-32,-62,0.005,40,71,0.040,39,-100,0.001,36,74,0.014,50,109,0.001,11,107,0.064,-12,154,0.000,39,45,0.015,35,50,0.018,30,-93,0.011,29,88,0.001,7,28,0.002,-17,38,0.012,54,44,0.005,53,111,0.001,30,14,0.001,-25,-52,0.011,17,-93,0.017,12,109,0.039,64,13,0.000,45,49,0.001,41,46,0.024,21,47,0.004,18,79,0.109,36,134,0.001,51,-104,0.000,-6,-39,0.009,45,-62,0.002,42,120,0.027,4,-73,0.018,52,90,0.001,54,85,0.002,32,13,0.013,55,29,0.008,31,39,0.001,9,139,0.000,42,-102,0.001,19,49,0.002,18,-92,0.012,33,134,0.035,66,31,0.001,-29,29,0.021,45,117,0.000,42,41,0.001,4,116,0.004,22,29,0.000,13,-88,0.052,46,-83,0.000,-14,36,0.007,57,30,0.002,0,115,0.000,52,22,0.058,33,36,0.079,24,108,0.046,-15,48,0.001,-38,148,0.001,34,114,0.281,33,-111,0.035,-24,-64,0.004,47,-122,0.095,46,143,0.006,43,11,0.045,19,109,0.009,-1,9,0.000,-24,-49,0.012,44,-81,0.003,43,28,0.027,23,97,0.008,-37,-58,0.001,47,104,0.000,-46,-68,0.001,-13,45,0.008,61,37,0.000,-4,106,0.007,49,131,0.001,29,-8,0.005,20,83,0.044,-18,15,0.002,53,15,0.029,48,33,0.019,29,37,0.000,44,124,0.025,5,35,0.002,38,82,0.002,48,136,0.023,29,-106,0.011,63,22,0.002,40,43,0.011,39,0,0.073,35,-3,0.009,16,33,0.017,-17,169,0.001,-7,106,0.025,26,-101,0.007,-19,-42,0.010,59,12,0.007,39,17,0.027,36,-75,0.002,17,97,0.056,50,4,0.117,27,91,0.010,41,124,0.259,-33,-53,0.002,53,83,0.002,-17,180,0.003,30,-6,0.005,41,9,0.003,-21,-40,0.043,-21,-55,0.001,-30,24,0.001,41,26,0.020,36,114,0.106,32,130,0.023,-17,-49,0.051,-7,38,0.013,42,92,0.001,41,-89,0.008,52,118,0.001,51,13,0.061,8,47,0.003,-15,14,0.002,-1,105,0.001,51,-2,0.070,32,-104,0.002,24,-13,0.000,8,-66,0.002,6,-10,0.017,33,98,0.001,-5,23,0.005,-33,116,0.013,46,-118,0.002,42,-3,0.009,37,14,0.028,-5,-56,0.001,-29,154,0.011,22,83,0.062,52,34,0.007,13,25,0.007,24,112,0.062,-14,-73,0.008,20,-13,0.001,56,78,0.000,47,42,0.006,44,28,0.019,0,10,0.014,61,-149,0.009,20,34,0.001,34,-91,0.003,-4,40,0.022,-23,-42,0.043,44,-85,0.005,62,31,0.001,38,33,0.015,37,82,0.002,14,-5,0.006,10,-14,0.006,-9,20,0.001,61,73,0.003,38,-108,0.001,34,7,0.006,49,31,0.023,11,-72,0.007,48,-58,0.001,-19,-48,0.014,48,21,0.029,26,77,0.077,44,88,0.010,40,128,0.026,2,-57,0.002,38,110,0.016,35,-112,0.000,16,6,0.001,-22,-63,0.002,12,9,0.081,63,58,0.001,59,55,0.002,40,15,0.142,35,41,0.013,-8,35,0.008,26,-81,0.017,-31,-68,0.001,40,-98,0.004,39,117,0.256,50,40,0.010,27,119,0.043,26,34,0.001,41,88,0.001,3,41,0.002,-21,35,0.004,51,94,0.001,50,-105,0.002,45,44,0.004,7,-75,0.007,6,80,0.054,21,34,0.001,-6,34,0.004,-33,-58,0.005,-4,-39,0.013,-35,143,0.002,28,25,0.000,8,4,0.022,45,-118,0.002,41,-109,0.001,55,52,0.011,51,57,0.002,32,5,0.001,31,46,0.012,-9,-46,0.001,4,14,0.002,-8,147,0.004,-16,-39,0.009,21,101,0.011,18,-71,0.028,-3,-40,0.003,31,95,0.001,46,27,0.036,43,135,0.001,55,86,0.004,-2,39,0.011,46,-90,0.001,57,53,0.003,37,50,0.052,-39,144,0.001,28,85,0.021,-4,-46,0.002,22,111,0.149,56,67,0.004,37,-105,0.001,34,103,0.003,52,62,0.003,13,-3,0.010,9,2,0.018,46,136,0.000,43,-78,0.019,-4,136,0.002,-34,-62,0.004,0,26,0.014,37,-120,0.017,-23,49,0.001,47,62,0.001,43,67,0.001,23,56,0.004,-26,-48,0.008,15,109,0.065,-23,-62,0.000,10,-61,0.041,47,143,0.009,44,-121,0.003,62,75,0.002,58,66,0.002,38,61,0.002,35,137,0.212,37,102,0.017,-20,-48,0.009,15,-2,0.002,11,3,0.006,10,38,0.045,14,29,0.001,5,-75,0.046,1,-70,0.000,38,-80,0.004,53,66,0.002,49,27,0.021,25,33,0.046,2,28,0.009,1,39,0.001,-18,-41,0.010,-3,100,0.000,26,113,0.157,40,100,0.002,36,31,0.008,16,-22,0.000,50,106,0.001,12,37,0.008,-12,27,0.008,59,19,0.030,39,72,0.004,35,69,0.007,-7,146,0.011,29,115,0.068,7,119,0.000,-1,100,0.003,54,45,0.006,50,76,0.001,30,71,0.039,26,54,0.000,7,8,0.037,2,96,0.001,51,138,0.000,-3,-77,0.001,-7,-80,0.002,45,16,0.017,-25,-66,0.000,36,107,0.025,-3,36,0.004,-7,-35,0.029,30,81,0.004,45,-99,0.000,42,129,0.011,60,36,0.001,-29,-61,0.001,32,58,0.000,31,-95,0.004,28,53,0.007,8,40,0.040,-16,30,0.005,55,24,0.013,-3,130,0.001,42,-93,0.005,4,-6,0.003,18,-67,0.014,-1,33,0.001,-2,-60,0.000,-22,33,0.002,66,60,0.000,46,55,0.001,45,84,0.001,42,70,0.025,22,73,0.169,18,48,0.001,13,-61,0.004,9,-64,0.010,-11,-55,0.002,57,65,0.002,37,70,0.027,33,71,0.037,28,113,0.209,9,13,0.022,-11,-38,0.010,-18,-62,0.007,-15,19,0.000,56,39,0.017,34,139,0.028,-4,-62,0.000,43,-114,0.001,24,56,0.019,20,59,0.001,23,92,0.229,34,-83,0.012,15,81,0.044,11,14,0.035,10,-73,0.018,25,95,0.019,-13,40,0.003,37,138,0.003,34,64,0.004,49,106,0.001,10,74,0.000,-19,-57,0.002,53,54,0.003,49,55,0.001,48,-2,0.015,29,68,0.008,44,129,0.017,25,61,0.002,5,74,0.001,39,-118,0.001,35,-121,0.000,-19,24,0.001,49,-56,0.000,48,77,0.000,-12,-56,0.000,-32,-61,0.006,40,72,0.078,39,-101,0.001,36,75,0.012,50,110,0.000,11,106,0.076,5,96,0.026,39,44,0.013,36,-102,0.000,35,49,0.018,30,-92,0.013,29,87,0.001,7,27,0.001,-17,37,0.009,54,41,0.005,53,122,0.001,30,19,0.001,6,21,0.001,17,-90,0.001,12,110,0.030,-27,-51,0.007,41,45,0.068,21,58,0.000,18,80,0.103,51,-105,0.000,-21,-69,0.001,-6,-38,0.008,45,-63,0.003,42,117,0.007,4,-72,0.002,52,91,0.001,54,86,0.003,-41,-64,0.001,32,14,0.049,55,-4,0.068,31,38,0.005,-11,32,0.004,9,126,0.018,42,-105,0.000,18,-95,0.020,33,133,0.039,66,32,0.001,45,120,0.004,42,42,0.016,4,101,0.021,6,8,0.108,13,-89,0.101,46,-82,0.001,-14,33,0.013,57,29,0.010,0,116,0.001,52,23,0.016,47,-92,0.003,24,101,0.036,34,111,0.080,47,-123,0.002,-4,13,0.003,-24,-48,0.010,44,-80,0.004,43,27,0.024,58,7,0.002,-37,-59,0.002,-38,-57,0.013,47,103,0.000,-46,-71,0.001,61,40,0.001,58,-134,0.001,-4,107,0.001,49,134,0.001,48,-109,0.001,29,-9,0.013,20,84,0.064,-18,16,0.011,53,26,0.014,48,34,0.021,29,40,0.001,44,93,0.001,5,30,0.002,29,-107,0.002,63,21,0.002,40,44,0.020,39,-1,0.006,35,4,0.014,16,34,0.006,26,-100,0.002,59,11,0.031,39,16,0.003,17,100,0.024,50,1,0.013,27,90,0.013,41,123,0.112,53,78,0.002,-9,142,0.000,-21,-41,0.019,60,45,0.001,41,25,0.014,36,115,0.264,32,131,0.075,-7,37,0.014,42,89,0.002,41,-86,0.021,52,119,0.001,51,20,0.061,8,48,0.002,-1,104,0.010,51,-3,0.063,32,-95,0.010,8,-65,0.002,18,5,0.000,33,97,0.001,-5,22,0.005,42,-2,0.020,37,13,0.013,-1,-54,0.001,-2,123,0.004,-29,153,0.001,-4,113,0.001,57,9,0.001,37,-2,0.006,52,35,0.005,13,28,0.004,47,-104,0.001,46,105,0.000,-11,18,0.004,-14,-72,0.010,-33,138,0.001,-34,-69,0.003,47,41,0.025,20,35,0.000,19,80,0.048,34,-90,0.006,-4,41,0.005,-23,-43,0.328,44,-84,0.003,62,32,0.000,38,34,0.014,35,100,0.001,37,81,0.004,15,41,0.000,14,-4,0.011,-9,19,0.001,-46,-67,0.002,61,76,0.001,38,-111,0.000,34,8,0.010,49,34,0.024,11,-73,0.007,48,-57,0.001,5,8,0.167,14,15,0.001,-13,-55,0.001,1,14,0.000,16,120,0.007,-22,47,0.009,48,22,0.035,26,78,0.089,44,89,0.005,40,121,0.055,38,115,0.197,35,-113,0.001,16,7,0.000,-22,-62,0.001,12,10,0.053,60,77,0.009,59,54,0.001,40,16,0.025,-20,-42,0.024,-8,36,0.008,26,-80,0.072,7,82,0.035,6,-77,0.001,40,-97,0.002,39,116,0.134,16,-91,0.008,50,37,0.047,27,118,0.036,41,87,0.003,3,32,0.016,-1,102,0.011,-21,34,0.004,51,93,0.001,50,-104,0.007,45,43,0.008,7,-76,0.009,3,-71,0.000,21,33,0.001,-6,31,0.007,-35,-63,0.001,60,73,0.001,17,11,0.000,-39,-66,0.001,8,-3,0.005,45,-119,0.001,55,51,0.006,51,48,0.005,32,6,0.001,31,45,0.012,27,50,0.000,4,15,0.003,-16,-38,0.001,21,104,0.022,18,-70,0.056,31,94,0.001,65,-18,0.001,46,28,0.024,43,134,0.004,55,85,0.006,-2,40,0.001,69,34,0.011,46,-85,0.000,57,56,0.005,19,-87,0.001,37,49,0.015,-39,143,0.001,33,46,0.014,10,79,0.161,28,86,0.009,-10,14,0.023,-2,10,0.001,22,112,0.106,56,68,0.001,37,-94,0.007,34,104,0.014,52,63,0.003,-12,-65,0.002,13,0,0.013,47,-68,0.002,9,1,0.011,46,133,0.011,43,-79,0.160,0,27,0.001,37,-121,0.071,-30,-51,0.077,67,64,0.001,43,66,0.001,23,55,0.005,-36,-59,0.003,-23,-63,0.002,-24,24,0.001,44,-120,0.000,25,86,0.374,58,63,0.001,38,62,0.004,35,128,0.061,37,101,0.003,15,-3,0.006,11,2,0.005,10,19,0.002,5,-72,0.011,1,-71,0.000,38,-83,0.006,53,65,0.002,14,103,0.043,2,25,0.002,1,42,0.003,-18,-40,0.006,48,58,0.001,26,114,0.079,25,-111,0.001,39,-74,0.032,36,32,0.005,50,103,0.000,12,38,0.037,-42,-71,0.003,-12,28,0.029,59,18,0.031,39,71,0.005,35,76,0.017,-7,145,0.008,30,-107,0.002,29,110,0.050,7,118,0.001,54,46,0.018,-10,-75,0.002,50,73,0.005,-12,-45,0.001,30,72,0.121,26,67,0.005,7,7,0.046,51,137,0.000,-27,-68,0.000,45,15,0.012,22,82,0.041,36,108,0.018,-3,35,0.014,30,82,0.001,64,-22,0.000,45,-96,0.001,42,130,0.032,60,37,0.001,17,-25,0.001,54,95,0.001,32,59,0.002,31,-96,0.003,28,54,0.011,8,33,0.005,-16,31,0.002,55,23,0.008,-3,129,0.001,42,-92,0.008,18,-66,0.083,-1,32,0.044,46,56,0.000,45,83,0.003,22,74,0.168,18,45,0.002,9,-65,0.005,-11,-52,0.000,-15,-59,0.001,57,68,0.001,37,69,0.028,52,-4,0.004,33,74,0.111,28,114,0.130,9,16,0.014,43,-124,0.002,-11,-39,0.007,-15,22,0.001,56,40,0.006,34,140,0.006,-4,-61,0.001,43,-115,0.001,24,49,0.002,-23,16,0.000,-5,153,0.002,-28,-67,0.000,23,91,0.638,1,119,0.001,34,-82,0.027,15,80,0.055,11,13,0.007,10,-72,0.009,25,98,0.008,-13,39,0.001,58,35,0.003,37,137,0.004,34,61,0.005,14,37,0.005,49,105,0.002,-9,111,0.015,-19,-62,0.000,53,53,0.006,49,58,0.001,48,-1,0.028,29,67,0.009,44,130,0.039,25,64,0.004,5,73,0.000,39,-119,0.011,-19,23,0.000,49,-57,0.001,-12,-55,0.002,-32,-60,0.022,40,65,0.010,39,-102,0.000,36,76,0.007,50,139,0.000,11,105,0.079,-24,-47,0.054,39,43,0.014,36,-101,0.001,54,-1,0.074,30,-95,0.019,29,82,0.018,-17,20,0.000,54,42,0.006,53,121,0.000,6,22,0.001,17,-91,0.008,-27,-48,0.018,41,48,0.010,21,57,0.000,18,77,0.086,17,54,0.002,-6,-41,0.002,27,-112,0.000,45,-60,0.002,42,118,0.014,4,-71,0.000,55,-118,0.001,52,92,0.001,54,91,0.001,32,15,0.013,31,4,0.001,55,-5,0.001,51,-8,0.010,31,37,0.016,9,125,0.016,42,-104,0.001,18,-94,0.016,33,136,0.011,45,119,0.001,4,102,0.032,19,-72,0.070,-14,34,0.050,57,32,0.003,0,109,0.006,52,24,0.015,33,38,0.014,47,-93,0.002,24,102,0.024,-9,17,0.004,-4,127,0.003,34,112,0.075,-3,151,0.001,33,-109,0.000,-5,140,0.003,-24,-70,0.001,44,34,0.018,43,9,0.002,-25,-63,0.001,-4,14,0.002,44,-79,0.015,43,26,0.025,58,8,0.003,15,52,0.000,11,73,0.000,47,102,0.000,61,39,0.001,-4,108,0.001,49,133,0.001,-8,140,0.001,20,101,0.010,-18,13,0.000,53,25,0.014,-3,105,0.040,-23,167,0.003,48,35,0.037,29,39,0.001,44,94,0.001,5,29,0.002,29,-104,0.001,63,36,0.000,-2,100,0.000,40,37,0.025,39,-2,0.007,35,3,0.018,16,35,0.004,50,143,0.002,-7,108,0.378,-8,25,0.003,26,-103,0.003,59,10,0.006,17,99,0.008,54,-5,0.024,-1,-90,0.000,50,2,0.018,12,-83,0.001,27,89,0.027,-22,-44,0.009,41,110,0.007,54,-122,0.000,53,77,0.002,-35,-68,0.002,-25,-57,0.001,-21,-42,0.019,60,46,0.001,41,28,0.018,-29,-52,0.014,36,116,0.222,32,132,0.023,14,125,0.000,-7,40,0.059,42,90,0.003,41,-87,0.181,51,19,0.025,55,-1,0.019,51,4,0.041,32,-94,0.010,8,-64,0.005,18,6,0.000,33,100,0.001,-5,21,0.005,48,93,0.000,42,11,0.004,37,16,0.032,-1,-55,0.001,-2,124,0.003,-5,-58,0.000,22,81,0.034,56,57,0.004,37,-3,0.030,52,36,0.009,13,27,0.003,-10,-62,0.001,-11,17,0.005,-14,-75,0.004,-34,-68,0.006,-5,104,0.016,47,40,0.052,-11,162,0.001,20,36,0.000,19,79,0.050,34,-93,0.004,-24,45,0.005,-9,161,0.001,62,29,0.002,38,39,0.019,-38,145,0.037,15,40,0.014,14,-7,0.003,47,138,0.000,-33,28,0.027,34,5,0.010,49,33,0.020,11,-74,0.014,-9,-61,0.000,1,13,0.001,46,-108,0.000,16,97,0.134,-22,48,0.022,48,23,0.031,26,91,0.112,44,90,0.004,40,122,0.009,38,116,0.222,35,-114,0.002,16,8,0.000,-22,-65,0.003,12,11,0.033,59,53,0.001,40,9,0.013,-8,29,0.003,7,81,0.153,-31,-66,0.001,6,-76,0.006,40,-96,0.010,39,115,0.043,16,-90,0.004,50,38,0.007,27,117,0.063,26,32,0.107,41,90,0.002,3,31,0.024,-21,33,0.015,50,-107,0.001,45,38,0.008,7,-77,0.001,21,36,0.000,-14,-43,0.004,-3,26,0.003,-6,32,0.005,8,-2,0.007,45,-116,0.000,55,50,0.036,51,47,0.022,32,7,0.001,31,60,0.001,27,49,0.002,4,16,0.004,21,103,0.005,18,-73,0.033,-20,22,0.000,-36,140,0.001,31,93,0.001,46,25,0.028,43,133,0.020,-34,139,0.001,55,84,0.011,-2,37,0.085,69,33,0.002,46,-84,0.004,57,55,0.007,19,-96,0.056,-39,146,0.016,33,45,0.173,10,80,0.134,28,87,0.001,-10,19,0.001,14,100,0.029,22,109,0.093,56,61,0.056,37,-95,0.004,34,101,0.001,52,64,0.004,-36,-67,0.001,13,-1,0.015,47,-69,0.002,9,4,0.006,46,134,0.007,43,-72,0.007,0,28,0.001,67,63,0.000,0,7,0.004,23,54,0.005,-23,-60,0.001,10,-63,0.019,25,85,0.286,58,64,0.001,38,67,0.013,35,127,0.086,37,104,0.018,-4,117,0.005,11,1,0.009,10,20,0.002,5,-73,0.033,38,-82,0.016,53,68,0.002,14,104,0.043,29,58,0.004,-28,-48,0.026,25,35,0.001,2,26,0.002,1,41,0.002,-18,-43,0.003,49,-114,0.001,48,59,0.000,26,111,0.063,63,-21,0.001,25,-108,0.017,40,94,0.001,39,-75,0.101,36,33,0.014,50,104,0.001,12,39,0.020,-21,-50,0.013,59,17,0.011,39,70,0.011,35,75,0.018,-7,148,0.003,30,-106,0.000,29,109,0.057,40,-124,0.003,54,51,0.005,51,143,0.001,50,74,0.006,30,69,0.008,26,68,0.028,7,6,0.081,51,128,0.001,-7,-78,0.018,-27,-69,0.001,36,93,0.000,-3,30,0.121,30,103,0.011,64,-21,0.005,45,-97,0.001,42,127,0.039,60,38,0.001,54,96,0.001,32,60,0.003,31,-97,0.016,28,55,0.007,8,34,0.004,-16,32,0.001,55,22,0.016,9,100,0.014,42,-95,0.003,18,-101,0.005,-1,31,0.054,-17,-44,0.006,66,58,0.002,45,78,0.001,22,47,0.004,18,46,0.001,9,-62,0.005,-11,-53,0.001,-14,27,0.001,-15,-56,0.002,57,67,0.001,-16,-61,0.000,37,72,0.003,33,73,0.083,28,115,0.069,9,15,0.014,-11,-36,0.012,-15,21,0.001,56,33,0.002,37,-75,0.002,34,137,0.073,-4,-60,0.005,-33,-52,0.006,44,71,0.000,43,-108,0.001,24,50,0.002,-9,35,0.013,20,45,0.004,-23,15,0.001,-30,-54,0.004,43,29,0.007,23,90,0.313,1,122,0.003,15,79,0.059,11,20,0.001,10,-75,0.036,25,97,0.007,-4,-49,0.003,58,36,0.002,37,140,0.044,34,62,0.003,49,108,0.001,14,34,0.033,-19,-63,0.006,53,56,0.009,49,57,0.001,48,0,0.016,29,62,0.002,44,131,0.012,25,63,0.004,39,-120,0.002,-19,18,0.000,49,-54,0.001,14,123,0.016,-12,-54,0.000,25,-80,0.074,-32,-67,0.001,40,66,0.015,-36,-64,0.001,36,61,0.024,50,140,0.001,11,80,0.180,39,42,0.012,36,-100,0.001,54,0,0.011,50,-5,0.007,30,-94,0.009,29,81,0.035,14,80,0.064,-17,19,0.000,53,124,0.001,30,17,0.001,-22,-42,0.021,6,27,0.001,17,-88,0.003,-35,-54,0.004,-27,-49,0.023,45,46,0.001,41,47,0.013,21,60,0.001,18,78,0.083,36,137,0.059,51,-107,0.000,-6,-40,0.006,27,-113,0.001,45,-61,0.001,55,-119,0.000,52,77,0.008,54,92,0.001,32,16,0.003,31,3,0.001,55,-6,0.004,51,-9,0.002,31,116,0.089,-2,-48,0.057,18,-97,0.038,33,135,0.010,-24,134,0.001,66,30,0.001,4,103,0.003,19,-73,0.006,-1,-76,0.002,33,-8,0.010,-14,31,0.002,57,31,0.002,0,110,0.019,52,25,0.009,33,37,0.021,47,-94,0.001,24,103,0.069,23,-100,0.005,-15,49,0.005,-48,-68,0.000,34,109,0.199,33,-106,0.000,-5,139,0.002,-24,-69,0.001,44,35,0.022,46,142,0.001,-10,160,0.002,-4,15,0.002,47,4,0.011,44,-78,0.009,43,25,0.025,23,94,0.008,15,51,0.002,47,101,0.000,-13,50,0.004,61,34,0.001,49,136,0.000,48,-115,0.001,20,102,0.005,-18,14,0.000,53,28,0.062,48,36,0.043,29,34,0.000,44,95,0.000,5,32,0.003,29,-105,0.001,63,35,0.002,40,38,0.029,39,-3,0.012,35,2,0.021,16,36,0.008,50,144,0.001,-7,107,0.706,-8,26,0.004,26,-102,0.003,-12,-43,0.001,59,9,0.001,40,-75,0.105,5,120,0.002,17,102,0.018,54,-4,0.003,50,-1,0.050,27,96,0.069,41,109,0.008,51,87,0.003,53,80,0.002,41,-2,0.003,-21,-43,0.020,60,47,0.002,41,27,0.016,-7,39,0.010,42,87,0.004,41,-84,0.011,3,109,0.001,52,121,0.001,51,18,0.035,-3,11,0.001,28,-17,0.003,4,37,0.001,55,-2,0.008,51,3,0.012,32,-93,0.014,8,-71,0.020,33,99,0.001,-5,28,0.003,-6,125,0.000,42,12,0.012,-11,41,0.006,37,15,0.034,6,9,0.051,-2,121,0.006,-5,-59,0.000,-25,-46,0.006,61,130,0.003,57,11,0.006,56,58,0.004,37,0,0.009,52,53,0.005,13,22,0.002,-11,20,0.001,-14,-74,0.008,-34,-71,0.031,56,105,0.001,-5,103,0.005,47,39,0.027,44,-1,0.003,19,78,0.088,34,-92,0.020,-23,-41,0.006,-24,46,0.003,-9,160,0.000,62,30,0.003,-33,-54,0.002,38,40,0.019,37,83,0.001,15,39,0.039,14,-6,0.004,47,137,0.001,-9,120,0.002,61,70,0.001,-33,27,0.009,38,-105,0.002,34,6,0.007,26,-11,0.000,49,36,0.012,48,-79,0.002,-9,-62,0.000,1,16,0.000,16,98,0.053,-22,45,0.002,-9,125,0.005,48,24,0.022,26,92,0.151,44,91,0.003,40,123,0.107,38,113,0.064,35,-115,0.000,16,-15,0.006,-22,-64,0.006,12,12,0.008,63,55,0.001,60,79,0.002,59,60,0.002,40,10,0.008,36,5,0.066,30,-81,0.030,-8,30,0.005,26,-82,0.004,7,80,0.047,-31,-67,0.000,40,-103,0.001,39,114,0.042,16,-89,0.004,50,35,0.022,-22,-41,0.023,41,89,0.001,3,30,0.004,45,37,0.009,21,35,0.000,-17,-68,0.024,-3,25,0.003,-6,29,0.004,-7,-42,0.005,32,97,0.002,8,-1,0.006,45,-117,0.001,-35,25,0.001,55,49,0.016,51,46,0.026,32,8,0.003,31,59,0.002,28,11,0.000,27,56,0.007,4,17,0.003,21,82,0.119,18,-72,0.096,-20,23,0.000,31,108,0.134,46,26,0.015,-4,145,0.000,55,83,0.025,-2,38,0.054,69,36,0.001,-21,-46,0.008,46,-87,0.003,57,58,0.003,19,-97,0.048,37,51,0.011,-39,145,0.007,33,48,0.015,10,77,0.301,28,88,0.001,9,38,0.028,-10,20,0.001,-9,26,0.003,22,110,0.125,56,62,0.012,37,-92,0.005,34,102,0.001,52,65,0.001,13,-6,0.014,47,-70,0.002,9,3,0.008,43,-73,0.009,0,21,0.002,43,72,0.003,-11,149,0.000,23,53,0.004,15,122,0.021,-24,18,0.001,10,-62,0.005,14,47,0.005,25,88,0.236,58,61,0.005,38,68,0.021,37,103,0.025,11,8,0.070,10,17,0.007,38,-77,0.077,53,67,0.002,14,101,0.095,29,57,0.004,14,20,0.002,2,23,0.010,1,44,0.005,-18,-42,0.007,-22,17,0.000,49,-115,0.001,26,112,0.110,63,-22,0.001,25,-109,0.004,40,95,0.001,39,-76,0.098,36,34,0.022,38,141,0.078,12,40,0.027,-8,148,0.002,-12,14,0.001,59,24,0.001,39,69,0.011,35,74,0.023,-7,147,0.005,29,112,0.114,54,52,0.004,50,71,0.001,30,70,0.008,26,65,0.004,7,5,0.104,-20,32,0.012,51,127,0.001,-3,-80,0.053,-19,-46,0.007,-7,-79,0.034,41,70,0.115,36,94,0.000,-3,29,0.047,-35,-64,0.001,30,104,0.173,42,128,0.018,60,39,0.001,21,-88,0.002,54,93,0.001,32,53,0.034,31,-98,0.002,28,56,0.004,8,35,0.011,-26,-51,0.009,-16,41,0.007,31,15,0.001,9,99,0.007,42,-94,0.004,18,-100,0.015,-1,30,0.030,33,110,0.043,5,-7,0.004,46,54,0.001,45,77,0.001,42,49,0.004,22,48,0.004,18,75,0.082,9,-63,0.008,-11,-58,0.000,-14,28,0.003,-15,-57,0.002,57,22,0.002,37,71,0.008,33,76,0.039,28,116,0.158,9,18,0.007,-11,-37,0.030,-15,24,0.002,56,34,0.001,34,138,0.086,-4,-59,0.004,44,72,0.000,24,51,0.002,20,46,0.004,-20,148,0.000,-23,18,0.005,23,89,0.325,1,121,0.002,15,78,0.084,14,-89,0.042,11,19,0.002,10,-74,0.060,25,100,0.030,-13,37,0.001,58,33,0.002,37,139,0.044,34,59,0.004,49,107,0.003,-18,39,0.001,-19,-60,0.000,53,55,0.003,49,60,0.000,48,9,0.074,29,61,0.004,44,132,0.006,25,66,0.002,39,-121,0.013,-19,17,0.002,49,-55,0.001,48,80,0.000,29,-82,0.014,25,-81,0.000,-32,-66,0.001,40,67,0.011,39,-104,0.033,36,62,0.004,50,137,0.005,11,79,0.158,39,41,0.010,36,-115,0.024,54,-3,0.011,50,-4,0.021,29,84,0.001,-17,18,0.001,54,16,0.004,53,123,0.001,30,18,0.001,6,28,0.002,17,-89,0.002,50,-66,0.001,64,25,0.002,45,45,0.002,41,50,0.001,21,59,0.001,18,107,0.007,36,138,0.047,51,-100,0.001,-6,-43,0.006,45,-66,0.005,55,-120,0.001,52,78,0.010,54,89,0.000,31,2,0.001,4,74,0.002,55,-7,0.003,-4,140,0.002,32,-64,0.002,31,115,0.147,9,127,0.004,46,7,0.050,42,-106,0.002,18,-96,0.042,66,27,0.000,-29,33,0.007,4,104,0.009,-15,-170,0.002,-1,-77,0.002,-5,-80,0.016,46,-79,0.003,-14,32,0.006,57,34,0.004,0,111,0.010,52,26,0.010,33,40,0.003,47,-95,0.001,9,46,0.005,14,41,0.006,24,104,0.053,23,-101,0.002,34,110,0.223,33,-107,0.000,-5,138,0.000,44,36,0.001,-4,16,0.019,47,3,0.015,44,-77,0.006,62,23,0.004,23,93,0.021,38,9,0.000,0,-60,0.000,15,50,0.003,47,84,0.002,-46,-72,0.001,-13,49,0.000,61,33,0.001,15,-61,0.004,49,135,0.001,48,-114,0.002,20,103,0.006,-18,19,0.000,53,27,0.010,48,29,0.018,29,33,0.011,5,31,0.002,35,-88,0.008,29,-110,0.003,63,34,0.000,-13,132,0.000,40,39,0.020,39,-4,0.008,35,1,0.039,16,29,0.001,-8,27,0.006,26,-105,0.002,-12,-42,0.004,40,-74,0.233,17,101,0.023,54,-7,0.009,50,0,0.029,12,-81,0.002,27,95,0.052,41,112,0.015,51,86,0.001,53,79,0.004,41,-3,0.003,54,-101,0.000,58,9,0.004,60,48,0.001,41,14,0.033,42,88,0.002,41,-85,0.025,3,116,0.001,52,122,0.001,51,17,0.040,28,-16,0.022,4,38,0.002,55,-3,0.038,51,2,0.019,32,-92,0.008,8,-70,0.011,55,110,0.001,33,102,0.001,-5,27,0.007,42,9,0.001,37,26,0.002,-2,122,0.002,-13,-40,0.006,-25,-47,0.007,-2,99,0.000,61,129,0.001,57,-2,0.013,56,59,0.003,37,-1,0.020,52,54,0.003,13,21,0.002,-10,-56,0.001,-11,19,0.002,23,-97,0.000,-34,-70,0.167,56,106,0.002,-3,142,0.000,47,38,0.058,44,0,0.035,19,77,0.073,34,-95,0.002,-24,47,0.003,10,-85,0.007,62,35,0.002,38,37,0.021,37,78,0.003,15,38,0.005,14,-17,0.070,47,136,0.001,62,-114,0.001,-33,26,0.002,38,-104,0.018,34,3,0.006,49,35,0.021,11,-68,0.001,48,-78,0.002,-9,-63,0.004,-13,-66,0.000,1,15,0.000,-18,47,0.002,16,99,0.012,-22,46,0.001,-3,104,0.011,26,89,0.186,44,92,0.001,40,124,0.046,-12,41,0.003,38,114,0.057,35,-108,0.002,16,-14,0.006,63,54,0.003,59,59,0.003,5,116,0.006,36,6,0.045,-8,31,0.003,-31,-64,0.003,40,-102,0.001,39,113,0.038,16,-88,0.001,50,36,0.010,-22,-51,0.011,41,92,0.001,3,29,0.002,45,40,0.031,-25,-62,0.000,-17,-69,0.008,-3,28,0.003,-6,30,0.003,-39,-68,0.006,-7,-43,0.004,-45,172,0.002,-29,-65,0.006,17,-16,0.001,32,98,0.002,8,0,0.008,45,-122,0.052,55,48,0.012,51,45,0.003,-3,122,0.004,31,58,0.003,28,12,0.000,27,55,0.004,4,18,0.003,5,6,0.044,21,81,0.067,-20,24,0.000,-39,-58,0.002,31,107,0.180,46,15,0.033,55,82,0.001,-8,-78,0.018,69,35,0.001,-25,36,0.005,5,-1,0.040,46,-86,0.000,57,57,0.023,19,-98,0.206,37,46,0.038,-39,148,0.001,33,47,0.011,10,78,0.124,28,89,0.001,9,37,0.017,-10,17,0.004,-18,-66,0.027,22,115,0.233,56,63,0.007,37,-93,0.011,52,66,0.001,13,-7,0.009,47,-71,0.001,9,-10,0.005,43,-74,0.003,-22,-55,0.001,0,22,0.002,43,71,0.003,23,52,0.002,15,121,0.130,10,-65,0.002,44,-117,0.001,25,87,0.277,58,62,0.001,38,65,0.003,37,114,0.051,15,10,0.000,11,7,0.021,10,18,0.004,38,-76,0.044,53,62,0.002,14,102,0.036,29,60,0.004,-2,107,0.003,2,24,0.004,1,43,0.003,49,-112,0.003,48,53,0.001,26,109,0.042,40,96,0.001,39,-77,0.044,36,35,0.010,38,142,0.030,35,-80,0.040,50,102,0.000,12,41,0.013,-12,15,0.005,39,68,0.032,35,73,0.044,29,111,0.054,54,49,0.032,50,72,0.001,30,75,0.116,-33,-63,0.007,26,66,0.002,7,4,0.089,51,126,0.002,-7,-76,0.009,45,76,0.000,41,69,0.010,36,95,0.000,-21,148,0.000,-3,32,0.016,30,101,0.002,42,125,0.045,60,40,0.001,21,-89,0.014,54,94,0.001,32,54,0.005,-17,-43,0.009,31,-99,0.001,28,57,0.003,8,36,0.025,-22,-46,0.021,-3,126,0.001,31,14,0.001,42,-97,0.003,18,-103,0.005,-1,29,0.008,33,109,0.041,-6,147,0.001,45,80,0.002,-11,34,0.005,22,45,0.004,18,76,0.057,6,4,0.225,-11,-59,0.000,-14,25,0.001,-15,-54,0.001,-10,-74,0.001,33,75,0.066,28,117,0.127,9,17,0.010,-11,-42,0.002,-15,23,0.002,56,35,0.005,34,135,0.110,-4,-58,0.002,43,-110,0.000,24,52,0.002,20,47,0.004,-23,17,0.001,13,110,0.038,23,88,0.204,15,77,0.092,14,-88,0.022,11,18,0.003,25,99,0.030,-13,44,0.001,58,34,0.002,-46,171,0.005,34,60,0.005,-37,143,0.001,-19,-61,0.000,53,34,0.006,49,59,0.001,48,10,0.104,29,64,0.001,44,133,0.007,25,65,0.002,39,-122,0.002,35,-117,0.002,-19,20,0.001,68,14,0.000,48,89,0.002,29,-83,0.001,-32,-65,0.001,40,68,0.014,39,-105,0.030,36,63,0.002,16,74,0.036,50,138,0.010,11,78,0.150,-20,17,0.001,-13,-49,0.001,39,40,0.007,36,-114,0.001,54,-2,0.014,-41,-70,0.000,29,83,0.004,7,23,0.000,-17,17,0.001,54,13,0.014,53,118,0.001,30,39,0.001,8,80,0.004,64,26,0.003,45,48,0.003,-31,150,0.000,41,49,0.016,21,54,0.002,36,139,0.068,17,55,0.002,51,-101,0.000,-6,-42,0.023,45,-67,0.001,52,79,0.002,54,90,0.001,31,1,0.001,55,-8,0.000,31,114,0.120,46,8,0.033,19,76,0.089,18,-99,0.053,33,137,0.001,66,28,0.000,-29,24,0.002,45,116,0.000,-15,-171,0.000,19,-75,0.006,-1,-78,0.061,33,-6,0.055,-5,-81,0.003,-24,151,0.003,-14,29,0.010,-4,109,0.000,57,33,0.001,19,-154,0.000,0,112,0.007,52,27,0.010,33,39,0.004,47,-96,0.001,9,45,0.009,24,97,0.012,23,-102,0.005,-15,51,0.004,33,-104,0.002,-5,137,0.002,-9,30,0.004,-4,17,0.002,47,2,0.021,44,-76,0.008,62,24,0.002,15,49,0.003,47,83,0.001,62,7,0.003,14,35,0.006,-30,154,0.001,29,-13,0.001,-9,-68,0.000,20,104,0.005,-18,20,0.001,53,22,0.012,48,30,0.016,29,36,0.002,5,42,0.002,35,-89,0.027,48,109,0.000,29,-111,0.006,63,33,0.000,-37,144,0.001,-13,131,0.003,40,40,0.022,39,-5,0.005,-20,-46,0.005,16,30,0.001,-8,28,0.004,26,-104,0.001,-12,-41,0.009,40,-73,0.343,39,140,0.003,17,104,0.042,54,-6,0.023,50,-3,0.023,27,94,0.012,14,81,0.017,41,111,0.007,51,85,0.001,53,90,0.001,41,0,0.019,-35,-59,0.013,60,49,0.001,41,13,0.112,-1,133,0.000,-6,-70,0.000,42,85,0.002,41,-98,0.001,3,115,0.001,52,123,0.002,51,40,0.043,28,-15,0.015,4,39,0.002,-1,116,0.002,51,1,0.148,32,-99,0.005,8,-69,0.006,33,101,0.001,-5,26,0.002,-6,139,0.001,42,10,0.004,37,25,0.002,-1,-58,0.000,-2,111,0.006,-5,-53,0.000,-8,-56,0.001,-25,-48,0.007,61,132,0.000,22,88,0.268,56,60,0.007,37,10,0.011,52,55,0.002,13,24,0.007,46,93,0.000,-11,14,0.001,-14,-76,0.011,23,-98,0.002,47,37,0.008,44,1,0.016,-11,163,0.000,19,84,0.040,34,-94,0.002,-36,-63,0.003,-24,48,0.007,10,-84,0.025,-9,158,0.001,62,36,0.001,20,-90,0.003,38,38,0.018,37,77,0.006,15,37,0.008,14,-16,0.052,10,-5,0.010,47,135,0.003,-33,25,0.002,38,-107,0.001,34,4,0.007,49,38,0.012,11,-69,0.010,48,-77,0.001,-9,-64,0.001,1,18,0.000,-18,48,0.003,16,100,0.030,53,-6,0.048,26,90,0.166,40,117,0.199,2,-60,0.002,38,119,0.012,35,-109,0.001,16,-13,0.005,-22,-66,0.001,49,-124,0.004,63,53,0.001,59,58,0.002,36,7,0.062,35,36,0.014,30,-83,0.006,-8,32,0.005,-31,-65,0.001,6,-73,0.016,40,-101,0.000,39,112,0.021,50,33,0.013,27,122,0.004,26,43,0.003,41,91,0.001,3,36,0.003,-17,-151,0.001,-21,-66,0.001,45,39,0.023,7,-80,0.006,6,81,0.180,-17,-70,0.002,-3,27,0.004,-7,-40,0.004,60,13,0.002,32,99,0.002,8,-7,0.005,45,-123,0.005,55,47,0.008,51,52,0.010,-3,121,0.016,31,57,0.004,27,54,0.005,4,19,0.022,-8,107,0.024,-16,-42,0.005,21,84,0.081,18,-74,0.014,-1,136,0.001,-39,-59,0.002,31,106,0.150,46,16,0.063,-34,138,0.001,55,81,0.001,69,30,0.000,-25,35,0.008,46,-97,0.001,-11,40,0.023,57,60,0.012,19,-99,0.476,37,45,0.023,-39,147,0.003,33,50,0.016,28,90,0.003,9,40,0.032,-10,18,0.003,-47,170,0.001,-15,30,0.002,22,116,0.036,56,64,0.005,37,-98,0.001,34,100,0.001,52,67,0.002,13,-4,0.013,47,-72,0.001,9,-11,0.008,46,137,0.000,43,-75,0.014,24,41,0.003,0,23,0.003,43,70,0.003,-11,151,0.001,23,51,0.002,15,120,0.003,-24,20,0.000,10,-64,0.023,44,-116,0.001,25,90,0.308,38,66,0.019,37,113,0.125,15,9,0.001,11,6,0.017,10,15,0.035,-9,115,0.062,38,-79,0.004,53,61,0.003,49,66,0.000,29,59,0.004,25,56,0.020,5,49,0.000,2,21,0.008,1,46,0.001,6,125,0.044,49,-113,0.001,48,54,0.000,26,110,0.043,39,-78,0.009,36,36,0.014,-18,-149,0.005,35,-81,0.027,16,-25,0.001,50,99,0.000,12,42,0.002,-12,16,0.009,39,67,0.052,35,64,0.003,30,-103,0.000,39,84,0.001,54,50,0.009,50,69,0.001,30,76,0.140,26,63,0.004,7,3,0.025,51,125,0.002,-3,-54,0.005,-26,-50,0.014,-7,-77,0.005,-33,-61,0.006,45,75,0.000,41,72,0.029,-36,-66,0.001,8,126,0.032,36,96,0.000,-21,147,0.000,-3,31,0.067,30,102,0.003,-37,-64,0.003,45,-100,0.000,42,126,0.052,60,41,0.001,-35,138,0.000,54,99,0.001,32,55,0.003,31,-84,0.007,28,58,0.004,8,29,0.013,31,13,0.002,42,-96,0.006,18,-102,0.010,33,112,0.064,-6,148,0.001,65,14,0.000,46,60,0.000,45,79,0.005,42,47,0.008,22,46,0.004,18,73,0.062,-35,117,0.000,14,-10,0.005,9,-61,0.001,-11,-56,0.002,-14,26,0.001,-15,-55,0.001,57,24,0.001,-38,175,0.004,28,118,0.096,9,20,0.005,-11,-43,0.002,-9,21,0.001,-4,123,0.008,56,36,0.017,34,136,0.535,-4,-57,0.001,44,74,0.000,-17,32,0.010,43,-111,0.003,24,45,0.004,20,48,0.003,67,32,0.002,13,109,0.025,23,87,0.209,14,-91,0.065,11,17,0.005,25,118,0.064,58,31,0.002,34,57,0.001,49,77,0.000,10,51,0.001,-33,-62,0.004,-18,37,0.015,-19,-66,0.007,53,33,0.007,48,11,0.052,29,63,0.001,44,134,0.005,25,68,0.059,39,-123,0.003,1,74,0.000,35,-118,0.007,-19,19,0.001,68,15,0.001,48,90,0.001,29,-80,0.002,63,12,0.002,-32,-64,0.050,40,61,0.001,39,-106,0.002,36,64,0.003,16,75,0.176,50,135,0.000,11,77,0.152,39,39,0.009,-20,64,0.001,-41,-71,0.001,29,78,0.258,7,22,0.001,-17,16,0.001,54,14,0.010,30,40,0.001,-25,-53,0.017,-26,47,0.003,64,27,0.001,45,47,0.001,-29,-56,0.002,21,53,0.002,18,105,0.004,36,140,0.182,51,-102,0.001,27,-108,0.001,45,-64,0.003,52,80,0.002,31,0,0.001,51,-4,0.011,31,113,0.084,46,5,0.025,42,-124,0.001,19,75,0.091,18,-98,0.045,66,25,0.001,5,-8,0.009,42,19,0.010,57,115,0.001,-1,-79,0.021,33,-7,0.119,-24,152,0.001,-14,30,0.002,-18,-59,0.000,57,36,0.004,19,-155,0.004,0,121,0.008,52,28,0.010,33,42,0.003,47,-97,0.003,9,48,0.001,24,98,0.015,23,-103,0.008,33,-105,0.001,44,38,0.014,-4,18,0.007,13,81,0.186,47,1,0.027,44,-75,0.007,-13,-42,0.004,38,15,0.004,15,48,0.001,47,82,0.001,62,8,0.002,61,35,0.012,14,36,0.007,48,-112,0.000,-9,-69,0.000,-13,-72,0.003,20,105,0.012,-10,120,0.012,53,21,0.017,48,31,0.018,29,35,0.001,5,41,0.002,35,-90,0.016,29,-108,0.001,40,33,0.029,39,-6,0.009,16,31,0.001,-17,168,0.001,-8,21,0.002,26,-107,0.002,-12,-40,0.011,-32,19,0.001,40,-72,0.009,17,103,0.056,-55,-65,0.000,50,-2,0.013,27,93,0.004,41,114,0.030,51,92,0.001,53,89,0.004,-17,179,0.001,26,-9,0.000,41,-1,0.011,-30,18,0.002,60,50,0.001,41,16,0.028,-6,-73,0.001,27,-80,0.014,42,86,0.003,41,-99,0.001,3,114,0.004,52,124,0.002,51,39,0.007,32,-17,0.002,28,-14,0.001,4,40,0.001,22,-84,0.003,-1,115,0.003,32,-98,0.003,8,-68,0.002,6,-5,0.031,33,104,0.003,-5,25,0.003,-6,140,0.001,46,-124,0.000,19,-104,0.011,37,28,0.021,-2,112,0.001,-5,-54,0.000,-25,-49,0.007,61,131,0.001,-11,22,0.001,22,85,0.063,56,53,0.006,52,56,0.007,13,23,0.011,47,-61,0.000,-10,-58,0.000,23,-99,0.010,-38,-69,0.000,47,20,0.093,44,2,0.011,5,119,0.005,0,11,0.001,19,83,0.063,34,-97,0.005,-36,-57,0.006,62,33,0.000,20,-89,0.023,38,43,0.012,37,80,0.008,15,20,0.001,10,-4,0.008,47,134,0.008,38,-106,0.001,34,1,0.007,-38,146,0.058,49,37,0.051,11,-70,0.006,-8,108,0.125,-13,-60,0.001,1,17,0.000,-18,45,0.001,53,-7,0.008,26,87,0.195,40,118,0.081,-18,-64,0.002,35,-110,0.001,16,-12,0.003,-22,-53,0.001,49,-125,0.001,59,57,0.012,36,8,0.049,35,35,0.001,30,-82,0.004,-31,-62,0.002,6,-72,0.010,40,-100,0.001,39,111,0.014,50,34,0.012,27,121,0.125,26,44,0.005,41,78,0.001,3,35,0.004,2,118,0.003,51,120,0.000,50,-111,0.001,45,34,0.015,7,-81,0.002,6,82,0.023,3,-76,0.099,-17,-71,0.026,-3,22,0.001,-7,-41,0.004,58,6,0.007,60,14,0.001,-4,-38,0.078,17,-14,0.001,32,100,0.002,28,31,0.092,8,-6,0.005,-30,-59,0.004,-35,22,0.001,55,46,0.005,51,51,0.002,-33,-55,0.002,31,56,0.002,28,-114,0.000,27,53,0.004,4,20,0.005,-16,-41,0.005,21,83,0.073,18,-77,0.030,-1,135,0.001,-3,-41,0.004,-5,12,0.009,31,105,0.169,46,13,0.013,45,102,0.000,55,80,0.000,-2,41,0.002,-25,34,0.016,46,-96,0.007,57,59,0.002,37,48,0.013,33,49,0.025,28,91,0.002,9,39,0.084,-10,23,0.002,-47,169,0.003,-15,29,0.009,22,113,0.119,56,25,0.027,37,-99,0.001,34,97,0.000,52,68,0.002,13,-5,0.015,9,-8,0.006,46,138,0.000,24,42,0.003,-14,-171,0.004,-4,137,0.002,0,24,0.004,43,69,0.008,24,-103,0.009,23,50,0.002,1,98,0.012,-22,-40,0.001,10,-67,0.074,25,89,0.247,38,71,0.003,37,116,0.170,15,8,0.000,11,5,0.022,10,16,0.018,14,30,0.001,38,-78,0.013,53,64,0.014,14,108,0.010,29,54,0.022,2,22,0.008,1,45,0.017,-18,-39,0.007,48,55,0.000,39,-79,0.010,35,-82,0.016,16,-24,0.002,50,100,0.000,12,43,0.002,-12,17,0.009,39,66,0.015,35,63,0.003,30,-102,0.000,39,83,0.001,-1,99,0.001,54,55,0.006,50,70,0.000,30,73,0.153,26,64,0.005,7,2,0.019,-3,-55,0.001,41,71,0.010,36,97,0.000,30,107,0.243,60,42,0.001,-29,-62,0.001,54,100,0.001,32,56,0.001,31,-85,0.009,28,59,0.004,8,30,0.006,31,28,0.001,-1,43,0.010,33,111,0.045,-6,145,0.011,65,13,0.001,42,48,0.016,4,127,0.002,22,51,0.002,18,74,0.175,9,-74,0.015,-11,-57,0.000,-14,23,0.002,-15,-52,0.001,57,23,0.002,-39,178,0.001,28,119,0.091,9,19,0.005,43,-121,0.001,-11,-40,0.009,-15,25,0.002,56,29,0.003,34,133,0.085,-4,-56,0.001,-5,115,0.000,39,-103,0.000,44,75,0.001,24,46,0.004,20,49,0.002,-36,-72,0.004,-23,19,0.000,67,31,0.001,-28,29,0.003,24,-99,0.004,23,86,0.133,1,126,0.007,14,-90,0.106,11,24,0.005,25,117,0.054,61,26,0.003,58,32,0.011,-10,125,0.026,34,58,0.001,49,80,0.000,-8,157,0.000,-18,38,0.015,-19,-67,0.002,53,36,0.004,48,12,0.089,44,135,0.001,25,67,0.006,35,-119,0.011,68,16,0.001,49,-82,0.000,48,91,0.001,29,-81,0.015,63,11,0.007,-32,-55,0.003,40,62,0.001,39,-107,0.001,36,65,0.005,16,76,0.086,50,136,0.001,5,102,0.009,39,38,0.009,-41,-72,0.005,29,77,0.138,-17,15,0.001,54,19,0.042,53,120,0.000,30,37,0.001,6,31,0.006,64,28,0.001,-19,179,0.004,21,56,0.001,18,106,0.075,51,-103,0.000,-21,-70,0.003,27,-109,0.012,45,-65,0.003,42,95,0.001,-16,-71,0.002,52,81,0.002,-41,-65,0.000,31,-1,0.000,51,-5,0.001,31,112,0.051,46,6,0.016,19,74,0.168,66,26,0.002,-29,22,0.003,42,20,0.018,-11,29,0.003,19,-69,0.010,6,5,0.031,33,-4,0.015,57,35,0.005,0,122,0.004,52,13,0.019,33,41,0.003,13,46,0.013,47,-98,0.000,9,47,0.002,-10,-49,0.001,24,99,0.032,23,-104,0.007,33,-102,0.002,-28,-70,0.002,44,39,0.010,-4,19,0.007,47,0,0.026,44,-74,0.003,62,22,0.002,23,122,0.014,38,16,0.027,34,-117,0.076,15,47,0.002,11,52,0.000,47,81,0.001,-9,124,0.006,61,30,0.002,49,140,0.001,48,-103,0.001,-9,-70,0.000,-13,-73,0.003,20,106,0.151,-18,18,0.001,53,24,0.023,48,32,0.011,5,44,0.002,35,-91,0.005,-19,50,0.006,29,-109,0.001,63,31,0.001,40,34,0.019,39,-7,0.007,16,32,0.011,-8,22,0.004,26,-106,0.001,-12,-39,0.014,-32,20,0.000,40,-79,0.056,17,106,0.005,50,27,0.025,27,100,0.009,41,113,0.018,-21,48,0.018,51,91,0.001,53,92,0.015,-33,-68,0.025,-9,141,0.002,41,2,0.042,3,-57,0.001,-17,-60,0.000,-13,-46,0.002,60,51,0.000,41,15,0.042,-26,-69,0.001,27,-81,0.009,41,-96,0.013,3,113,0.000,52,109,0.001,51,38,0.014,32,-16,0.007,28,-13,0.003,27,32,0.047,4,41,0.002,-53,-72,0.000,-1,114,0.002,32,-97,0.052,8,-75,0.022,-4,141,0.001,19,38,0.008,33,103,0.002,-5,32,0.006,19,-105,0.001,37,27,0.002,-5,-55,0.001,-25,-50,0.007,-4,114,0.001,22,86,0.063,56,54,0.030,37,12,0.000,52,57,0.002,13,18,0.002,-10,-53,0.001,43,-65,0.001,-11,16,0.005,56,101,0.001,-38,-68,0.001,47,19,0.044,44,3,0.012,19,82,0.025,34,-96,0.003,-42,147,0.003,62,34,0.000,20,-88,0.005,38,44,0.010,37,79,0.002,15,19,0.001,10,-7,0.003,47,133,0.013,61,66,0.000,-33,23,0.001,38,-101,0.000,34,2,0.009,15,-92,0.024,49,40,0.006,11,-71,0.002,14,16,0.001,-13,-61,0.001,2,47,0.001,1,20,0.002,-18,46,0.001,53,-4,0.003,26,88,0.158,40,119,0.076,38,117,0.164,35,-111,0.002,-22,-52,0.002,12,-16,0.014,49,-122,0.033,63,67,0.001,36,9,0.031,35,34,0.011,-31,-63,0.001,6,-75,0.114,40,-107,0.001,39,110,0.009,14,43,0.005,53,159,0.013,50,31,0.118,26,41,0.001,41,77,0.002,3,34,0.005,2,115,0.001,-1,101,0.091,51,119,0.000,50,-110,0.002,12,93,0.002,45,33,0.001,3,-77,0.004,-17,-72,0.002,-3,21,0.001,-7,-38,0.018,-27,19,0.001,60,15,0.002,17,-15,0.003,32,93,0.001,28,32,0.001,8,-5,0.007,45,-121,0.002,-35,21,0.002,55,45,0.005,51,50,0.002,31,55,0.004,28,-113,0.002,27,60,0.002,-16,-40,0.007,21,78,0.056,18,-76,0.027,-1,134,0.001,-39,-57,0.008,31,104,0.050,46,14,0.019,43,112,0.001,55,79,0.004,-2,42,0.002,69,32,0.000,-25,33,0.004,46,-99,0.000,57,46,0.003,37,47,0.043,33,52,0.010,28,92,0.002,9,42,0.041,-10,24,0.002,-15,32,0.006,22,114,0.200,56,26,0.005,37,-96,0.002,34,98,0.000,-12,-64,0.001,13,-10,0.003,9,-9,0.007,46,127,0.067,43,-69,0.002,24,43,0.004,0,33,0.095,67,66,0.001,43,76,0.003,24,-102,0.001,23,49,0.002,10,-66,0.137,25,92,0.064,38,72,0.002,35,130,0.161,37,115,0.166,15,7,0.001,11,12,0.016,10,13,0.018,53,63,0.002,14,105,0.032,29,53,0.038,25,58,0.000,2,19,0.006,-41,177,0.001,68,37,0.001,39,-80,0.011,36,22,0.001,35,-83,0.013,12,44,0.001,5,5,0.000,-12,18,0.005,59,28,0.004,5,81,0.010,39,65,0.020,36,-91,0.003,35,62,0.004,39,82,0.005,54,56,0.013,50,67,0.003,30,74,0.155,26,61,0.004,7,1,0.020,-3,-52,0.001,-27,-62,0.000,41,74,0.008,22,87,0.126,36,98,0.000,30,108,0.167,42,140,0.001,60,43,0.001,-35,140,0.001,32,65,0.004,31,-86,0.004,28,60,0.003,8,31,0.004,-16,37,0.009,31,27,0.001,42,-98,0.001,22,-159,0.001,21,114,0.001,18,-104,0.000,-1,42,0.012,33,114,0.209,-6,146,0.004,42,45,0.016,22,52,0.002,9,-75,0.030,-14,24,0.002,-15,-53,0.001,57,26,0.005,-39,177,0.003,-26,154,0.001,10,109,0.008,28,120,0.066,43,-122,0.001,-11,-41,0.001,-15,28,0.004,56,30,0.002,34,134,0.099,-4,-55,0.000,44,76,0.001,24,47,0.004,-11,122,0.002,20,50,0.002,67,30,0.000,-28,30,0.004,-28,-66,0.001,43,40,0.008,24,-98,0.002,23,85,0.059,1,125,0.032,14,-85,0.004,11,23,0.003,25,120,0.099,-13,41,0.004,-32,117,0.004,61,25,0.005,58,29,0.001,34,55,0.001,-8,158,0.000,10,49,0.003,-37,148,0.001,-19,-64,0.002,53,35,0.025,48,5,0.015,29,25,0.000,44,136,0.004,68,17,0.001,48,92,0.000,63,10,0.001,25,-77,0.005,-32,-54,0.005,40,63,0.006,39,-108,0.003,36,66,0.008,-35,-60,0.007,-24,-46,0.600,5,101,0.067,39,37,0.011,36,-111,0.001,-21,-62,0.000,-41,-73,0.009,29,80,0.067,7,20,0.002,-17,14,0.001,54,20,0.012,53,119,0.001,-6,28,0.004,30,38,0.000,60,-151,0.001,6,32,0.006,-26,45,0.001,64,21,0.002,-31,151,0.001,41,38,0.004,21,55,0.001,18,103,0.016,51,-112,0.001,27,-110,0.004,64,12,0.001,45,-70,0.001,42,96,0.001,-16,-70,0.012,52,82,0.002,32,21,0.003,31,-2,0.001,31,111,0.035,46,11,0.008,19,73,0.391,18,-4,0.000,33,78,0.000,66,23,0.001,-29,21,0.001,42,17,0.000,19,-70,0.056,18,43,0.007,33,-5,0.026,-5,-76,0.000,22,95,0.022,0,123,0.013,37,-25,0.004,52,14,0.141,33,44,0.010,13,45,0.050,-44,172,0.001,47,-99,0.001,9,50,0.002,-10,-48,0.002,24,100,0.040,-9,16,0.006,23,-105,0.006,-4,128,0.003,8,10,0.021,-28,-69,0.001,44,40,0.015,-4,20,0.002,47,-1,0.034,44,-73,0.010,62,27,0.001,23,121,0.156,38,13,0.002,34,-116,0.003,15,46,0.003,14,7,0.013,11,51,0.001,47,80,0.001,-36,146,0.001,62,6,0.001,59,152,0.000,61,29,0.004,49,139,0.000,11,-60,0.002,-8,130,0.000,-9,-71,0.001,-13,-74,0.012,20,107,0.248,-37,176,0.001,53,23,0.014,-3,108,0.004,48,41,0.013,5,43,0.002,35,-84,0.015,-19,49,0.008,29,-114,0.002,63,30,0.001,40,35,0.015,39,-8,0.026,-8,23,0.006,-45,-67,0.001,14,99,0.009,-12,-38,0.012,40,-78,0.016,36,-83,0.013,17,105,0.032,50,28,0.014,27,99,0.004,-22,-47,0.032,41,116,0.019,-17,50,0.006,-21,47,0.006,51,90,0.001,53,91,0.002,-35,-69,0.001,-28,-51,0.011,41,1,0.013,3,-58,0.000,-25,-58,0.001,-17,-61,0.000,41,18,0.002,-29,-53,0.010,-6,-75,0.001,-7,30,0.003,-26,-68,0.001,27,-82,0.059,41,-97,0.003,3,104,0.010,52,110,0.000,51,37,0.024,32,-7,0.027,27,31,0.071,4,42,0.002,-1,113,0.003,32,-96,0.074,46,39,0.009,8,-74,0.009,19,37,0.001,33,106,0.036,-5,31,0.015,-34,148,0.000,37,22,0.010,-2,110,0.003,-25,-51,0.009,-18,-54,0.001,22,91,0.267,-26,-49,0.073,56,55,0.011,37,11,0.004,52,58,0.001,13,17,0.001,43,-66,0.000,-11,15,0.004,56,102,0.011,-38,-71,0.003,-5,106,0.045,47,18,0.025,44,4,0.005,23,44,0.004,19,81,0.015,34,-99,0.002,-23,-50,0.012,44,-109,0.000,62,55,0.001,20,-87,0.003,38,41,0.020,15,18,0.001,14,-13,0.003,10,-6,0.007,61,65,0.000,38,-100,0.001,34,-1,0.025,15,-93,0.003,49,39,0.010,-9,-67,0.000,-13,-62,0.001,-2,103,0.014,1,19,0.002,-10,121,0.004,16,95,0.030,-9,149,0.001,26,85,0.303,40,120,0.069,38,118,0.075,53,-116,0.000,12,-15,0.017,49,-123,0.030,36,10,0.034,35,33,0.001,-4,-47,0.001,-31,-60,0.002,6,-74,0.007,40,-106,0.001,39,109,0.002,50,32,0.012,26,42,0.001,41,80,0.005,3,33,0.008,51,118,0.001,50,-113,0.005,45,36,0.007,21,42,0.012,-3,24,0.003,-7,-39,0.012,64,-51,0.000,60,16,0.005,17,-12,0.001,32,94,0.001,-17,-39,0.008,28,33,0.000,8,-4,0.004,-30,-61,0.001,-35,24,0.001,55,76,0.002,51,49,0.003,31,54,0.008,28,-112,0.000,27,59,0.002,-15,20,0.000,4,6,0.010,21,77,0.057,-20,28,0.005,-2,-80,0.022,31,103,0.004,46,19,0.028,45,104,0.000,55,78,0.001,-2,31,0.062,69,31,0.001,-25,32,0.019,46,-98,0.001,57,45,0.002,37,58,0.011,-10,-78,0.006,33,51,0.016,28,93,0.002,9,41,0.014,-10,21,0.001,-15,31,0.005,56,27,0.004,37,-97,0.017,13,-11,0.002,9,-6,0.006,46,128,0.045,43,-70,0.018,24,44,0.004,0,34,0.070,67,65,0.002,43,75,0.005,24,-101,0.006,23,48,0.004,1,100,0.026,-4,12,0.001,-23,-70,0.000,25,91,0.070,38,69,0.050,35,129,0.187,37,110,0.027,15,6,0.002,11,11,0.038,10,14,0.040,5,-67,0.002,53,74,0.001,14,106,0.018,29,56,0.004,-9,128,0.002,25,57,0.005,5,46,0.004,2,20,0.010,-18,-49,0.004,-41,176,0.007,68,38,0.001,-8,-71,0.000,26,121,0.004,39,-81,0.009,36,23,0.003,35,-76,0.002,12,13,0.007,-7,121,0.002,-21,-51,0.006,-12,19,0.005,59,27,0.003,39,64,0.011,36,-90,0.005,35,61,0.020,30,-112,0.001,39,81,0.005,54,53,0.013,53,126,0.001,50,68,0.001,30,63,0.001,26,62,0.002,7,0,0.008,51,130,0.000,-3,-53,0.001,-37,-62,0.002,-7,-56,0.001,-27,-63,0.001,-13,-37,0.001,41,73,0.015,36,99,0.001,30,105,0.310,60,44,0.001,49,98,0.000,-35,139,0.029,55,-97,0.001,32,66,0.005,31,-87,0.003,28,61,0.003,8,32,0.004,-16,38,0.014,55,16,0.000,32,-79,0.006,42,-85,0.034,-20,25,0.000,21,113,0.018,-1,41,0.002,-3,-50,0.001,33,113,0.140,-6,143,0.004,46,47,0.001,42,46,0.007,22,49,0.002,-20,45,0.001,9,-72,0.003,-14,21,0.001,57,25,0.013,13,76,0.071,28,121,0.142,43,-123,0.004,24,89,0.309,-15,27,0.002,56,31,0.006,34,131,0.006,-4,-54,0.003,44,45,0.007,24,48,0.003,-9,34,0.009,20,51,0.002,13,106,0.004,-28,31,0.015,24,-97,0.001,23,84,0.036,1,128,0.004,14,-84,0.001,11,22,0.001,25,119,0.167,-13,32,0.001,61,28,0.001,58,30,0.003,34,56,0.001,49,82,0.001,10,50,0.003,-42,175,0.010,-37,147,0.004,-19,-65,0.008,53,30,0.012,48,6,0.010,5,18,0.003,-19,16,0.001,68,18,0.001,48,85,0.001,14,124,0.001,63,9,0.001,-32,-53,0.002,40,64,0.004,-36,-58,0.011,36,67,0.015,5,104,0.012,39,36,0.014,36,-110,0.001,-21,-63,0.001,29,79,0.158,14,77,0.077,7,19,0.002,-17,13,0.001,54,17,0.010,30,43,0.001,60,-150,0.000,6,29,0.004,-16,-43,0.005,-21,-29,0.001,-35,-55,0.011,-26,46,0.004,64,22,0.000,-31,154,0.001,41,37,0.015,21,-158,0.007,18,104,0.017,36,127,0.042,51,-113,0.005,45,-71,0.007,42,93,0.001,41,-74,0.034,-16,-69,0.008,52,83,0.003,-40,-63,0.000,32,22,0.004,31,-3,0.003,51,-7,0.000,31,110,0.057,9,118,0.000,46,12,0.024,-2,-51,0.001,33,77,0.003,-6,115,0.001,66,24,0.001,-29,28,0.006,42,18,0.004,19,-71,0.034,18,44,0.006,33,-2,0.004,-5,-77,0.001,22,96,0.061,0,124,0.015,52,15,0.019,33,43,0.003,13,48,0.001,9,49,0.002,-10,-51,0.000,24,93,0.136,23,-106,0.012,-28,-68,0.000,44,41,0.017,-52,-72,0.000,-4,21,0.001,13,78,0.140,47,-2,0.019,44,-72,0.006,62,28,0.005,23,120,0.004,38,14,0.032,0,-55,0.001,34,-119,0.021,15,45,0.048,14,8,0.011,11,50,0.002,10,3,0.006,-28,154,0.034,62,11,0.001,59,151,0.006,61,32,0.001,-28,-63,0.002,14,23,0.005,48,-101,0.002,-9,-72,0.001,25,-12,0.000,-13,-75,0.012,20,108,0.005,-37,175,0.028,48,42,0.004,29,32,0.202,40,141,0.038,35,-85,0.015,48,121,0.002,29,-115,0.001,63,29,0.001,40,36,0.019,39,-9,0.009,35,-4,0.007,16,42,0.001,11,110,0.008,-8,24,0.011,-12,-37,0.018,40,-77,0.014,36,-82,0.018,17,108,0.002,50,25,0.021,27,98,0.002,41,115,0.026,-17,49,0.003,-21,46,0.002,51,89,0.000,53,86,0.002,30,7,0.001,26,-10,0.000,41,4,0.002,-17,-62,0.000,-6,19,0.013,60,53,0.000,41,17,0.038,-6,-74,0.001,31,-80,0.000,-7,29,0.004,-44,147,0.000,41,-94,0.003,3,103,0.016,52,111,0.000,51,44,0.006,32,-6,0.035,-36,118,0.000,28,-11,0.001,4,43,0.002,-1,112,0.007,32,-87,0.004,46,40,0.010,8,-73,0.014,19,44,0.006,33,105,0.018,-5,30,0.015,-6,135,0.001,57,84,0.001,37,21,0.001,6,10,0.027,-2,115,0.003,10,99,0.006,22,92,0.230,56,56,0.004,52,59,0.004,13,20,0.002,47,-64,0.001,-10,-55,0.000,-11,26,0.006,56,103,0.001,-38,-70,0.000,-5,105,0.051,47,17,0.026,44,5,0.026,23,43,0.005,19,104,0.004,34,-98,0.006,-23,-51,0.015,-24,44,0.005,44,-108,0.001,58,51,0.008,20,-86,0.003,38,42,0.021,15,17,0.001,14,-12,0.004,10,-9,0.005,-9,119,0.020,38,-103,0.001,34,0,0.016,49,42,0.003,48,-81,0.001,-13,-63,0.000,2,45,0.007,1,22,0.003,16,96,0.090,6,121,0.002,26,86,0.311,40,113,0.034,-18,-61,0.000,53,-117,0.000,50,91,0.001,12,-14,0.011,49,-120,0.000,48,141,0.001,59,62,0.001,36,11,0.070,35,24,0.002,-31,-61,0.003,6,-69,0.001,40,-105,0.012,39,108,0.002,50,29,0.023,26,39,0.003,41,79,0.002,3,24,0.002,2,113,0.004,51,117,0.003,50,-112,0.000,45,35,0.015,21,41,0.012,-3,23,0.002,-6,39,0.013,-7,-36,0.012,60,17,0.005,17,-13,0.001,32,95,0.001,31,-108,0.001,28,34,0.001,8,-11,0.023,-30,-60,0.001,-34,151,0.037,-35,23,0.002,55,75,0.003,51,72,0.012,-3,117,0.003,31,53,0.018,28,-111,0.007,27,58,0.005,4,7,0.055,21,80,0.102,18,-78,0.005,-1,20,0.002,31,102,0.004,46,20,0.019,45,103,0.000,-38,143,0.001,55,77,0.002,-2,32,0.024,-6,107,0.005,-25,31,0.014,46,-93,0.001,57,48,0.002,37,57,0.008,33,54,0.001,28,94,0.001,9,44,0.008,-10,22,0.001,-9,25,0.002,-4,119,0.005,56,28,0.005,37,-86,0.006,5,-10,0.001,13,-8,0.007,9,-7,0.004,46,125,0.037,43,-71,0.011,-14,-172,0.001,0,35,0.138,-23,44,0.004,43,74,0.004,24,-100,0.004,23,47,0.004,1,99,0.010,15,100,0.023,14,48,0.003,25,78,0.039,38,70,0.017,35,120,0.098,37,109,0.012,15,5,0.001,11,10,0.046,48,-124,0.000,10,27,0.004,38,-75,0.011,53,73,0.001,49,70,0.000,29,55,0.004,14,17,0.001,44,142,0.001,25,60,0.001,5,45,0.002,2,17,0.001,-18,-48,0.004,-22,27,0.001,-41,175,0.000,-8,-70,0.001,-12,-75,0.019,40,85,0.000,39,-82,0.024,35,-77,0.018,50,95,0.000,12,14,0.009,-12,20,0.001,-37,150,0.001,59,26,0.002,39,63,0.002,36,-89,0.007,35,68,0.004,30,-115,0.002,39,80,0.005,54,54,0.012,53,125,0.001,30,64,0.001,26,75,0.066,7,-1,0.021,-20,33,0.017,51,129,0.004,-3,-58,0.001,-19,-47,0.005,-27,-60,0.006,41,76,0.002,36,100,0.002,-35,-65,0.002,30,106,0.222,6,119,0.000,54,103,0.001,32,67,0.003,31,-88,0.003,28,62,0.002,8,25,0.001,-16,39,0.009,55,15,0.003,31,25,0.000,42,-84,0.025,-1,40,0.003,33,116,0.278,-6,144,0.007,46,48,0.013,42,59,0.005,22,50,0.002,52,-107,0.000,9,-73,0.010,46,-65,0.001,-11,-76,0.011,-14,22,0.001,57,28,0.004,56,9,0.009,-39,179,0.001,13,75,0.044,10,123,0.074,28,122,0.121,43,-116,0.011,24,90,0.359,-33,153,0.001,56,32,0.002,34,132,0.035,-4,-53,0.001,-5,120,0.029,44,46,0.003,24,73,0.068,20,52,0.002,13,105,0.010,-28,32,0.014,44,-67,0.001,23,83,0.042,38,-9,0.082,14,-87,0.040,11,21,0.001,25,122,0.184,-13,31,0.002,61,27,0.002,58,43,0.002,34,53,0.004,15,-23,0.004,49,81,0.001,10,47,0.001,-37,146,0.003,-19,-70,0.006,53,29,0.008,48,7,0.029,5,17,0.002,1,-50,0.000,-19,15,0.001,48,86,0.001,63,8,0.001,-32,-52,0.015,40,57,0.001,39,-110,0.001,36,68,0.015,50,131,0.001,-31,-50,0.003,5,103,0.023,39,35,0.014,36,-109,0.001,-21,-56,0.001,29,106,0.252,7,18,0.002,-20,-41,0.008,-17,28,0.009,54,18,0.011,30,44,0.005,6,30,0.005,-21,-52,0.001,-31,153,0.002,41,40,0.002,21,-159,0.001,18,101,0.021,36,128,0.104,17,30,0.001,51,-114,0.013,-17,-46,0.002,27,-104,0.001,45,-68,0.001,42,94,0.001,41,-75,0.022,-16,-68,0.005,21,-78,0.017,52,84,0.002,-40,-62,0.001,32,23,0.002,31,12,0.001,31,109,0.096,46,9,0.014,-4,-43,0.006,6,-9,0.008,-29,27,0.008,42,15,0.022,33,-3,0.007,-5,-78,0.003,22,93,0.059,0,117,0.002,52,16,0.016,13,47,0.003,-10,-50,0.001,24,94,0.048,33,-101,0.009,44,42,0.019,58,93,0.003,1,174,0.001,-4,22,0.001,13,77,0.083,47,-3,0.012,44,-71,0.003,62,25,0.002,34,-118,0.181,14,5,0.010,11,49,0.001,10,4,0.005,62,12,0.000,61,31,0.002,14,24,0.004,48,-100,0.001,-9,-73,0.002,25,-13,0.000,2,74,0.001,20,93,0.029,53,1,0.003,49,-2,0.005,48,43,0.003,29,31,0.071,44,102,0.000,40,142,0.024,35,-86,0.013,53,-110,0.001,48,122,0.005,29,-112,0.001,63,44,0.000,40,29,0.022,35,-5,0.051,16,43,0.005,11,109,0.038,-8,17,0.005,7,101,0.032,40,-76,0.043,36,-81,0.009,17,107,0.024,50,26,0.023,27,97,0.004,5,-3,0.053,-17,48,0.004,-21,45,0.003,51,80,0.001,53,85,0.005,50,-119,0.003,30,8,0.001,41,3,0.142,-17,-63,0.003,36,141,0.079,-6,20,0.011,-33,-60,0.012,30,119,0.077,58,10,0.001,60,54,0.000,41,20,0.028,17,26,0.001,31,-81,0.008,-7,32,0.003,-44,148,0.001,41,-95,0.014,3,102,0.119,51,43,0.008,32,-5,0.019,28,-10,0.003,4,44,0.003,-1,111,0.007,32,-86,0.013,46,37,0.007,8,-72,0.022,19,43,0.006,33,108,0.054,-5,29,0.006,57,83,0.000,19,-100,0.029,37,24,0.066,-2,116,0.004,10,100,0.008,-10,31,0.003,22,89,0.789,56,49,0.005,52,60,0.002,33,-118,0.121,13,19,0.002,47,-65,0.003,-10,-54,0.001,-11,25,0.006,56,104,0.001,-38,-73,0.007,-3,141,0.007,47,16,0.027,44,6,0.007,23,42,0.007,19,103,0.008,34,-101,0.002,-23,-48,0.019,44,-107,0.001,58,52,0.002,38,47,0.021,15,16,0.001,14,-15,0.018,10,-8,0.006,14,42,0.001,14,31,0.003,38,-102,0.001,34,-3,0.022,15,-95,0.000,49,41,0.004,48,-80,0.001,2,46,0.037,1,21,0.003,-18,49,0.013,16,105,0.038,-22,56,0.017,-3,103,0.013,26,99,0.005,40,114,0.066,5,11,0.064,-18,-60,0.000,16,-16,0.005,53,-122,0.002,50,92,0.001,12,-13,0.006,49,-121,0.002,59,61,0.007,40,1,0.008,36,12,0.001,-31,-58,0.003,6,-68,0.001,40,-104,0.005,39,107,0.029,54,63,0.002,50,30,0.013,26,40,0.002,-22,-50,0.018,41,82,0.005,3,23,0.005,2,114,0.001,51,124,0.002,45,30,0.007,21,44,0.008,-3,18,0.004,-6,40,0.019,-7,-37,0.013,30,131,0.001,60,18,0.005,17,-10,0.001,32,96,0.001,31,-109,0.002,28,35,0.001,-29,-48,0.005,8,-10,0.021,-30,-63,0.001,55,74,0.023,51,71,0.002,-3,120,0.011,31,68,0.006,28,-110,0.005,27,57,0.009,4,8,0.083,21,79,0.083,-1,19,0.008,-5,-48,0.002,31,101,0.002,46,17,0.038,22,27,0.000,-2,29,0.026,-8,-77,0.004,-6,108,0.001,-25,30,0.024,5,10,0.024,46,-92,0.006,-34,116,0.002,57,47,0.003,37,60,0.008,33,53,0.002,28,95,0.003,9,43,0.028,-10,27,0.003,-15,33,0.004,22,117,0.009,37,-87,0.015,-4,-80,0.008,13,-9,0.004,9,-4,0.003,46,126,0.046,43,-96,0.007,24,38,0.001,-22,-54,0.001,0,36,0.046,67,55,0.001,47,52,0.006,43,73,0.003,24,-107,0.024,23,46,0.004,1,102,0.011,15,99,0.005,-23,-68,0.003,11,32,0.003,25,77,0.048,38,75,0.001,35,119,0.198,37,112,0.063,15,-12,0.005,11,9,0.118,10,28,0.003,38,-74,0.001,53,76,0.001,49,69,0.000,44,143,0.004,25,59,0.001,5,48,0.001,2,18,0.000,-18,-51,0.003,-22,28,0.003,48,99,0.000,26,119,0.060,-12,-74,0.004,40,86,0.000,39,-83,0.022,35,-78,0.034,12,15,0.008,-12,37,0.003,59,25,0.020,39,62,0.002,36,-88,0.008,35,67,0.006,30,-114,0.001,-8,-39,0.020,39,79,0.005,54,59,0.006,53,128,0.001,50,66,0.000,30,61,0.003,-39,176,0.002,26,76,0.112,7,-2,0.025,57,-4,0.004,17,-76,0.010,-3,-59,0.004,-26,24,0.000,-27,-61,0.001,45,66,0.001,60,-1,0.001,41,75,0.002,30,95,0.001,4,-58,0.001,-16,-63,0.000,32,68,0.005,31,-89,0.009,28,63,0.001,8,26,0.000,-16,40,0.024,-39,-60,0.002,55,14,0.017,31,24,0.001,28,-82,0.039,42,-87,0.055,21,115,0.000,-1,39,0.007,33,115,0.276,-6,141,0.001,46,45,0.005,45,134,0.007,42,60,0.021,-11,33,0.002,22,55,0.003,6,1,0.034,52,-106,0.008,9,-70,0.023,46,-64,0.005,-11,-77,0.007,-14,19,0.001,57,27,0.004,56,10,0.016,52,5,0.122,10,124,0.109,43,-117,0.000,24,91,0.370,-33,152,0.011,34,129,0.013,-4,-52,0.001,44,47,0.002,43,-100,0.000,24,74,0.063,67,35,0.001,13,108,0.008,-28,33,0.007,44,-66,0.000,23,82,0.043,20,-156,0.003,38,-8,0.012,14,-86,0.012,11,28,0.004,-13,30,0.003,61,22,0.005,58,44,0.001,34,54,0.002,49,84,0.002,48,-95,0.001,10,48,0.001,-37,145,0.004,53,32,0.006,48,8,0.054,5,20,0.002,1,-51,0.000,48,87,0.002,-12,-62,0.003,-32,-59,0.008,40,58,0.002,39,-111,0.001,36,53,0.043,12,75,0.026,-31,-51,0.052,39,34,0.030,36,-108,0.003,-8,-35,0.062,29,105,0.208,7,17,0.006,-17,27,0.004,54,23,0.009,30,41,0.001,6,35,0.001,12,120,0.001,18,102,0.006,36,129,0.046,17,29,0.001,51,-115,0.001,32,113,0.181,27,-105,0.004,45,-69,0.001,41,-72,0.068,-16,-75,0.000,21,-79,0.009,32,24,0.000,31,11,0.001,-25,-60,0.001,46,10,0.014,33,79,0.000,66,22,0.001,-29,26,0.001,-48,-66,0.000,19,-81,0.001,18,42,0.007,33,0,0.001,-5,-79,0.010,22,94,0.006,0,118,0.005,52,17,0.037,13,42,0.005,9,51,0.001,-10,-45,0.001,24,95,0.014,-35,-61,0.005,33,-98,0.005,44,43,0.015,43,-8,0.024,1,173,0.000,-4,23,0.002,13,80,0.114,47,12,0.029,44,-70,0.007,62,26,0.006,23,118,0.027,14,6,0.019,10,1,0.017,62,9,0.001,14,21,0.002,11,-63,0.004,29,9,0.000,-9,-74,0.004,-13,-69,0.001,20,94,0.020,48,44,0.003,44,103,0.000,5,40,0.005,35,-87,0.006,-19,46,0.003,53,-111,0.001,48,123,0.007,29,-113,0.000,14,109,0.024,63,43,0.000,40,30,0.061,-20,-45,0.006,35,-6,0.006,16,44,0.029,-8,18,0.005,7,100,0.031,40,-83,0.019,36,-80,0.018,17,78,0.092,50,23,0.029,27,104,0.065,-17,47,0.006,51,79,0.001,53,88,0.028,50,-118,0.001,30,5,0.001,7,-58,0.001,6,127,0.005,-17,-64,0.002,-6,17,0.007,-35,-56,0.056,30,120,0.097,45,10,0.205,17,25,0.001,32,133,0.003,31,-82,0.005,-7,31,0.004,-26,-65,0.005,41,-92,0.005,3,101,0.003,52,113,0.000,51,42,0.006,32,-4,0.007,28,-9,0.001,27,36,0.001,4,29,0.002,-1,110,0.026,-36,147,0.001,32,-85,0.009,31,80,0.001,46,38,0.001,8,-79,0.007,19,42,0.010,33,107,0.037,-5,36,0.015,-6,133,0.003,65,73,0.002,19,-101,0.042,37,23,0.015,52,-66,0.000,-2,113,0.002,-10,32,0.004,-2,11,0.001,22,90,0.216,56,50,0.006,37,8,0.001,52,45,0.005,13,14,0.004,47,-66,0.001,46,87,0.000,-11,28,0.003,56,97,0.001,-38,-72,0.013,47,15,0.013,44,7,0.005,24,-14,0.000,23,41,0.003,19,102,0.007,34,-100,0.001,-36,-62,0.002,-23,-49,0.023,44,-106,0.001,62,54,0.001,58,49,0.003,38,48,0.016,34,43,0.003,15,15,0.001,14,-14,0.004,10,-11,0.007,61,62,0.000,38,-97,0.006,34,-2,0.025,15,-96,0.004,49,44,0.003,48,-71,0.007,2,43,0.005,-28,-62,0.001,1,24,0.002,-18,50,0.011,16,106,0.014,53,-8,0.006,26,100,0.021,40,115,0.056,38,121,0.001,16,-7,0.002,-22,-56,0.002,12,-12,0.004,49,-118,0.000,48,143,0.001,5,121,0.006,36,-3,0.006,-31,-59,0.002,6,-71,0.003,40,-111,0.036,39,106,0.001,54,64,0.002,50,59,0.002,26,37,0.001,41,81,0.005,3,22,0.004,-21,16,0.000,51,123,0.002,50,-114,0.006,45,29,0.034,21,43,0.012,57,10,0.005,-3,17,0.005,-6,37,0.007,-7,-50,0.001,30,132,0.001,60,19,0.001,17,-11,0.001,32,105,0.018,31,-110,0.006,28,36,0.002,8,-9,0.007,-30,-62,0.000,-15,34,0.024,55,73,0.003,51,70,0.002,-3,119,0.002,31,67,0.004,28,-109,0.003,27,64,0.002,4,9,0.025,21,90,0.010,-1,18,0.001,-2,-77,0.002,-5,-49,0.002,-8,141,0.001,46,18,0.018,43,116,0.001,22,28,0.000,-17,-45,0.001,-2,30,0.108,-6,105,0.037,-25,29,0.008,46,-95,0.003,-11,39,0.011,57,50,0.003,37,59,0.008,33,56,0.000,28,96,0.003,9,30,0.005,-10,28,0.002,-33,-71,0.022,-15,36,0.029,56,22,0.009,37,-84,0.013,-4,-79,0.021,13,-14,0.012,9,-5,0.016,46,131,0.046,43,-97,0.002,24,39,0.003,0,29,0.013,-23,30,0.002,47,51,0.001,43,48,0.013,24,-106,0.002,23,45,0.004,1,101,0.012,15,98,0.009,-23,-69,0.001,14,-61,0.007,11,31,0.006,-9,-36,0.028,25,80,0.079,62,66,0.002,58,69,0.004,38,76,0.002,35,118,0.203,37,111,0.045,15,-13,0.004,11,-16,0.001,10,25,0.004,-9,114,0.105,5,-54,0.001,53,75,0.002,49,72,0.001,29,49,0.035,44,144,0.002,25,46,0.004,5,47,0.002,2,15,0.001,-18,-50,0.004,-19,37,0.007,48,100,0.000,26,120,0.127,-12,-73,0.001,40,87,0.000,39,-84,0.087,36,26,0.001,35,-79,0.017,12,16,0.005,-7,110,0.108,-12,38,0.003,59,32,0.004,39,61,0.002,36,-87,0.010,35,66,0.004,30,-109,0.001,-8,-38,0.014,7,44,0.003,39,78,0.010,54,60,0.007,30,62,0.007,18,111,0.019,26,73,0.033,7,-3,0.013,17,-77,0.010,-3,-56,0.002,12,125,0.021,-7,-55,0.000,-27,-66,0.001,45,65,0.000,41,62,0.006,-21,149,0.001,30,96,0.001,-37,-65,0.000,45,-110,0.001,-16,-62,0.000,-35,136,0.001,-20,-67,0.000,54,101,0.002,32,61,0.002,31,-90,0.005,28,64,0.001,8,27,0.002,-16,17,0.002,55,13,0.061,31,23,0.002,28,-81,0.055,42,-86,0.008,21,110,0.109,-1,38,0.073,33,118,0.167,-6,142,0.001,65,20,0.001,46,46,0.001,43,80,0.002,45,133,0.010,22,56,0.002,52,-105,0.001,9,-71,0.003,46,-67,0.003,-14,20,0.001,57,14,0.006,56,11,0.016,52,6,0.081,-38,176,0.008,24,92,0.238,-33,151,0.001,34,130,0.002,44,48,0.000,24,75,0.065,67,34,0.003,13,107,0.003,44,-65,0.002,43,44,0.020,58,-6,0.001,20,-75,0.039,1,129,0.001,11,27,0.004,14,49,0.004,-13,29,0.031,49,109,0.000,58,41,0.002,-37,-63,0.002,34,51,0.020,49,83,0.010,11,-84,0.005,-8,122,0.000,10,45,0.002,-18,31,0.019,-19,-68,0.000,53,31,0.016,5,19,0.001,48,88,0.002,-12,-61,0.007,-32,-58,0.005,40,59,0.003,39,-112,0.000,36,54,0.021,16,49,0.001,50,129,0.005,12,76,0.119,-20,26,0.001,39,33,0.040,-8,-34,0.056,29,108,0.090,7,16,0.004,3,-51,0.000,-17,26,0.002,-20,46,0.002,54,24,0.022,30,42,0.001,6,36,0.007,-25,-54,0.007,12,121,0.002,41,42,0.017,-29,-57,0.001,21,-157,0.023,18,99,0.028,36,130,0.020,17,32,0.001,32,114,0.094,-6,-35,0.035,-7,22,0.010,27,-106,0.002,45,-74,0.012,42,108,0.001,4,-77,0.001,41,-73,0.078,-16,-74,0.001,21,-76,0.009,52,102,0.000,31,10,0.001,-25,-61,0.000,9,119,0.005,46,-1,0.018,-1,74,0.001,5,-9,0.006,-29,25,0.009,42,13,0.046,4,96,0.003,18,39,0.001,33,-1,0.002,-5,-72,0.000,-30,152,0.001,-1,-80,0.014,-18,-58,0.000,22,99,0.008,52,18,0.026,13,41,0.009,-10,-44,0.001,24,96,0.009,23,-109,0.002,33,-99,0.001,44,44,0.021,43,-9,0.001,-4,24,0.010,13,79,0.089,47,11,0.024,44,-69,0.009,62,15,0.000,23,117,0.296,38,17,0.024,0,-52,0.000,34,-120,0.006,14,11,0.002,10,2,0.009,47,92,0.000,62,10,0.001,14,22,0.002,29,12,0.000,-9,-75,0.001,-13,-70,0.000,20,95,0.034,49,0,0.015,48,37,0.012,5,39,0.019,35,-96,0.006,-19,45,0.001,-22,-175,0.002,48,124,0.011,63,42,0.000,40,31,0.035,16,37,0.009,-8,19,0.003,26,-97,0.008,7,99,0.005,-32,25,0.001,40,-82,0.025,36,-79,0.024,17,77,0.076,-33,-64,0.004,50,24,0.020,27,103,0.037,-17,46,0.002,51,78,0.001,53,87,0.011,50,-121,0.000,30,6,0.001,7,-59,0.001,21,-14,0.000,-17,-65,0.003,-6,18,0.009,30,117,0.117,64,53,0.001,45,9,0.080,60,56,0.000,41,-122,0.001,17,28,0.001,-17,-51,0.002,31,-83,0.007,-7,34,0.004,-26,-64,0.002,41,-93,0.016,52,114,0.014,51,41,0.007,28,-8,0.000,4,30,0.002,-20,36,0.004,32,-84,0.012,31,79,0.004,46,43,0.003,8,-78,0.001,-34,117,0.001,19,41,0.002,6,-4,0.018,-2,23,0.003,-5,35,0.016,-6,134,0.001,57,101,0.000,19,-102,0.027,37,34,0.014,-2,114,0.005,-10,29,0.004,-11,21,0.001,0,101,0.014,-34,23,0.005,56,51,0.005,37,7,0.001,52,46,0.004,33,-116,0.014,13,13,0.004,47,-67,0.001,46,88,0.000,-11,27,0.004,56,98,0.001,47,14,0.021,44,8,0.029,0,12,0.000,23,40,0.004,19,101,0.022,34,-103,0.002,-23,-46,0.034,44,-105,0.001,58,50,0.021,20,-99,0.028,38,45,0.017,34,44,0.009,10,-10,0.004,-9,40,0.002,38,-96,0.002,34,-5,0.064,15,-97,0.000,49,43,0.002,48,-70,0.001,-9,132,0.000,2,44,0.006,1,23,0.002,16,107,0.007,53,-9,0.005,26,97,0.001,40,116,0.056,38,122,0.026,16,-6,0.001,12,-11,0.005,49,-119,0.005,-31,23,0.000,23,102,0.024,36,-2,0.011,7,135,0.001,-31,-56,0.002,6,-70,0.001,3,12,0.028,40,-110,0.000,39,105,0.001,54,61,0.006,50,60,0.002,30,55,0.002,26,38,0.002,41,84,0.006,3,21,0.008,2,112,0.008,51,122,0.002,12,98,0.000,-13,-41,0.006,-3,20,0.002,-6,38,0.007,-7,-51,0.002,-27,26,0.010,42,145,0.002,60,20,0.001,32,106,0.056,31,-111,0.003,28,37,0.001,8,-8,0.009,-30,-65,0.001,-35,20,0.002,55,72,0.002,51,69,0.002,-3,114,0.004,31,66,0.014,28,-108,0.001,27,63,0.002,42,-77,0.010,4,10,0.028,21,89,0.047,-1,17,0.001,-3,-46,0.002,-5,-50,0.001,43,115,0.000,-2,35,0.030,-6,106,0.100,-25,28,0.003,46,-94,0.003,-4,-51,0.001,57,49,0.003,37,54,0.000,33,55,0.001,-9,148,0.002,28,97,0.001,9,29,0.008,-10,25,0.002,-15,35,0.040,56,23,0.007,37,-85,0.009,34,91,0.000,-4,-78,0.003,13,-15,0.019,46,132,0.035,43,-98,0.001,24,40,0.003,-4,138,0.002,0,30,0.035,-23,29,0.002,-30,-53,0.013,47,50,0.001,43,47,0.017,24,-105,0.005,23,76,0.083,1,104,0.145,-4,-48,0.002,14,-60,0.006,11,30,0.006,-9,-37,0.008,25,79,0.084,-13,24,0.001,38,73,0.001,35,117,0.243,37,122,0.088,15,-14,0.003,10,26,0.003,5,-55,0.010,1,-58,0.000,53,70,0.007,29,52,0.016,44,145,0.001,25,45,0.004,2,16,0.001,-18,-45,0.001,-8,-75,0.000,26,117,0.051,-12,-72,0.000,25,-98,0.011,40,88,0.000,39,-85,0.014,36,27,0.000,50,94,0.000,12,17,0.005,-7,109,0.181,-12,39,0.005,62,131,0.000,59,31,0.122,39,60,0.002,36,-86,0.031,35,65,0.009,30,-108,0.001,-8,-37,0.015,7,43,0.004,39,77,0.021,-20,47,0.016,54,57,0.033,30,67,0.025,26,74,0.051,7,-4,0.018,-3,-57,0.001,12,126,0.009,45,68,0.000,41,61,0.035,21,74,0.087,30,93,0.001,45,-111,0.001,42,133,0.008,-29,-63,0.001,-20,-66,0.003,54,102,0.001,-40,-71,0.002,32,62,0.002,31,-91,0.004,28,65,0.001,8,28,0.006,-16,18,0.000,55,44,0.012,32,-83,0.013,31,22,0.006,28,-80,0.014,9,78,0.134,42,-89,0.018,21,109,0.025,-1,37,0.063,33,117,0.190,-6,155,0.001,43,79,0.003,45,136,0.000,42,58,0.001,4,117,0.002,22,53,0.002,52,-104,0.001,9,-68,0.014,46,-66,0.001,-14,17,0.008,57,13,0.019,0,100,0.020,52,7,0.056,10,122,0.004,-33,-57,0.002,24,85,0.144,-33,150,0.001,34,127,0.025,-5,117,0.001,-24,-55,0.003,43,-102,0.000,24,76,0.056,-10,-71,0.000,20,71,0.021,-36,-71,0.016,67,33,0.004,13,102,0.044,44,-64,0.003,43,43,0.010,23,80,0.069,20,-74,0.008,0,-79,0.011,11,26,0.007,-13,36,0.001,61,24,0.010,58,42,0.003,-10,126,0.006,34,52,0.017,49,86,0.001,11,-85,0.007,48,-93,0.001,10,46,0.002,-18,32,0.031,-19,-69,0.004,53,42,0.006,29,24,0.000,5,118,0.006,5,14,0.002,14,39,0.027,48,129,0.006,-12,-60,0.001,-32,-57,0.003,40,60,0.002,36,55,0.022,16,50,0.002,50,130,0.002,12,45,0.008,-45,-68,0.000,39,32,0.018,29,107,0.263,7,15,0.003,-17,25,0.001,54,21,0.025,53,94,0.001,30,31,0.162,6,33,0.003,12,122,0.015,64,34,0.000,41,41,0.002,18,100,0.038,17,31,0.001,51,-109,0.000,32,115,0.141,-7,21,0.011,27,-107,0.002,45,-75,0.034,4,-76,0.016,41,-70,0.017,3,127,0.001,-16,-73,0.001,21,-77,0.016,52,103,0.001,-40,-67,0.001,31,9,0.001,32,-111,0.007,31,122,0.505,46,0,0.018,18,-11,0.001,-36,151,0.002,42,14,0.027,4,97,0.015,6,6,0.047,33,2,0.001,-5,-73,0.006,-15,-50,0.001,22,100,0.013,0,120,0.001,52,19,0.028,13,44,0.040,47,-88,0.001,-10,-47,0.001,24,121,0.095,23,-110,0.002,33,-96,0.018,-13,38,0.000,44,13,0.025,-4,25,0.003,47,10,0.053,44,-68,0.005,62,16,0.001,23,116,0.116,38,18,0.000,-38,-59,0.004,14,12,0.001,-36,145,0.001,10,-1,0.012,47,91,0.001,-9,123,0.010,-40,177,0.004,14,27,0.001,48,-105,0.000,29,11,0.000,-9,-76,0.003,-13,-71,0.000,20,96,0.054,53,-2,0.204,49,-1,0.011,48,38,0.066,38,99,0.001,35,-97,0.033,-19,48,0.054,53,-109,0.001,48,117,0.000,63,41,0.001,40,32,0.024,16,38,0.003,-4,-42,0.008,-8,20,0.002,-12,-49,0.001,-4,31,0.036,-32,26,0.001,40,-81,0.027,36,-78,0.011,17,80,0.098,50,21,0.044,27,102,0.016,26,15,0.001,3,48,0.001,-17,45,0.001,51,77,0.001,50,-120,0.003,30,11,0.000,-33,-69,0.005,7,-60,0.000,41,-8,0.090,21,-15,0.000,-17,-66,0.003,-6,15,0.015,30,118,0.100,-37,-72,0.019,64,54,0.001,45,12,0.081,60,57,0.000,41,-123,0.001,17,27,0.000,-7,33,0.003,3,107,0.000,52,115,0.001,51,32,0.021,27,34,0.002,4,31,0.006,-53,-70,0.000,-1,124,0.002,32,-91,0.004,31,78,0.049,46,44,0.002,8,-77,0.002,-4,142,0.002,-34,118,0.000,19,32,0.001,-2,24,0.003,-5,34,0.014,69,18,0.000,57,104,0.001,19,-103,0.020,37,33,0.014,-2,135,0.001,-10,30,0.003,-14,-39,0.020,-4,115,0.045,-34,24,0.001,56,52,0.005,52,47,0.004,33,-117,0.132,13,16,0.003,-27,152,0.001,47,-52,0.006,46,85,0.004,24,125,0.001,-14,-52,0.000,-34,-57,0.003,56,99,0.001,47,13,0.022,44,9,0.052,24,-12,0.000,23,39,0.002,34,-102,0.002,-23,-47,0.087,-42,148,0.003,44,-104,0.000,58,47,0.001,20,-98,0.036,38,46,0.019,35,80,0.001,34,41,0.006,14,-24,0.001,10,35,0.006,-9,39,0.003,61,64,0.000,38,-99,0.001,34,-4,0.040,49,14,0.023,48,-69,0.001,2,41,0.002,1,26,0.002,16,108,0.043,-22,35,0.002,48,74,0.000,26,98,0.001,40,109,0.004,38,127,0.058,16,-5,0.000,50,87,0.000,12,-10,0.003,49,-116,0.001,-31,26,0.001,40,4,0.000,-20,-40,0.014,-31,-57,0.003,6,-65,0.000,3,11,0.008,40,-109,0.001,39,104,0.002,54,62,0.011,50,57,0.002,30,56,0.006,26,51,0.016,41,83,0.005,3,28,0.003,-20,29,0.004,51,121,0.001,12,99,0.008,45,31,0.001,21,37,0.000,18,121,0.013,-3,19,0.005,-7,-48,0.002,-27,25,0.003,17,-9,0.001,54,111,0.000,32,107,0.065,31,-112,0.001,28,38,0.001,-30,-64,0.001,-35,19,0.036,55,71,0.001,52,143,0.000,51,76,0.005,-3,113,0.007,31,65,0.008,28,-107,0.004,27,62,0.002,42,-76,0.019,4,11,0.008,22,-81,0.014,21,92,0.019,-1,16,0.001,-39,-67,0.005,-2,-79,0.028,-5,-51,0.001,43,114,0.001,42,67,0.001,22,26,0.000,-2,36,0.005,-25,27,0.003,46,-105,0.000,57,52,0.002,33,58,0.001,28,98,0.000,9,32,0.003,-10,26,0.003,-15,38,0.005,56,24,0.013,37,-90,0.004,34,92,0.000,-12,-63,0.001,13,-12,0.002,46,129,0.017,43,-99,0.001,24,33,0.024,-14,-176,0.000,0,31,0.040,-23,32,0.001,47,49,0.001,43,46,0.028,24,-104,0.008,23,75,0.084,1,103,0.011,15,96,0.008,11,29,0.003,-43,-70,0.000,-9,-38,0.005,25,82,0.210,-13,23,0.001,38,74,0.000,37,121,0.122,15,-15,0.006,10,23,0.000,-32,142,0.001,5,-52,0.001,53,69,0.002,49,74,0.016,29,51,0.008,44,146,0.000,25,48,0.003,2,13,0.002,-18,-44,0.006,-29,-49,0.018,-8,-74,0.002,26,118,0.046,-12,-71,0.000,25,-99,0.006,40,81,0.004,39,-86,0.044,36,28,0.002,50,123,0.003,12,18,0.003,-7,112,0.072,-12,40,0.007,59,30,0.055,39,59,0.002,36,-85,0.006,35,56,0.001,-7,157,0.000,30,-111,0.001,-8,-36,0.009,7,42,0.002,-17,36,0.036,54,58,0.003,50,61,0.000,30,68,0.015,26,71,0.006,7,-5,0.020,-26,27,0.006,-27,-64,0.003,45,67,0.001,41,64,0.000,21,73,0.136,57,-3,0.003,30,94,0.001,45,-108,0.004,42,134,0.000,-16,-60,0.000,21,-102,0.030,-20,-65,0.009,-40,-70,0.000,32,63,0.004,28,66,0.001,8,21,0.000,-16,19,0.000,55,43,0.013,32,-82,0.005,31,21,0.015,9,77,0.241,42,-88,0.044,19,55,0.000,21,112,0.074,33,120,0.227,-6,156,0.001,65,22,0.002,43,78,0.015,45,135,0.001,4,118,0.009,22,54,0.003,52,-103,0.000,9,-69,0.025,-14,18,0.006,57,16,0.003,52,8,0.041,10,119,0.001,24,86,0.153,-33,149,0.002,34,128,0.028,-5,124,0.001,-24,-54,0.003,47,-124,0.000,43,-103,0.001,24,69,0.036,-11,121,0.001,20,72,0.007,13,101,0.278,44,-63,0.011,43,42,0.009,23,79,0.058,38,-5,0.005,0,-78,0.014,11,25,0.006,-9,-34,0.050,25,110,0.043,-13,35,0.006,61,23,0.003,58,39,0.001,34,49,0.038,49,85,0.003,11,-86,0.021,20,85,0.045,-18,29,0.006,53,41,0.006,5,13,0.003,48,130,0.013,63,20,0.001,-32,-56,0.003,40,53,0.001,36,56,0.004,16,51,0.001,50,127,0.004,12,46,0.005,39,31,0.015,54,11,0.022,16,-62,0.000,29,102,0.003,7,14,0.004,41,126,0.027,-17,24,0.002,54,22,0.009,53,93,0.001,30,32,0.591,6,34,0.001,12,123,0.006,64,35,0.001,41,44,0.015,18,97,0.031,17,34,0.003,-21,119,0.000,32,116,0.196,-7,24,0.046,27,-100,0.001,45,-72,0.013,41,-71,0.051,3,126,0.004,-16,-72,0.002,21,-82,0.002,52,104,0.015,-40,-66,0.001,32,35,0.055,31,8,0.001,32,-110,0.018,31,121,0.315,-29,-66,0.001,-38,144,0.004,42,27,0.016,4,98,0.018,19,-76,0.001,18,37,0.004,33,1,0.001,-5,-74,0.001,22,97,0.040,0,129,0.001,52,20,0.027,13,43,0.001,-10,-46,0.000,24,122,0.135,-9,15,0.004,-4,129,0.016,33,-97,0.009,44,14,0.001,-8,145,0.001,-4,26,0.002,47,9,0.097,-13,-50,0.000,23,115,0.082,38,23,0.009,14,9,0.008,10,0,0.028,47,90,0.001,14,28,0.001,5,-53,0.000,-8,128,0.000,29,6,0.001,-9,-77,0.008,20,97,0.032,53,-3,0.033,-3,107,0.010,49,2,0.038,48,39,0.085,38,100,0.001,35,-98,0.003,-19,47,0.007,53,-114,0.002,48,118,0.000,40,25,0.004,16,39,0.010,26,-99,0.003,-12,-48,0.002,-32,27,0.006,40,-80,0.047,36,-77,0.006,17,79,0.258,50,22,0.037,12,-71,0.001,27,101,0.011,7,50,0.002,41,106,0.001,3,47,0.004,-16,167,0.001,-21,49,0.008,51,84,0.001,30,12,0.000,7,-61,0.001,6,126,0.042,-25,-59,0.001,-17,-67,0.015,-6,16,0.013,30,123,0.024,8,127,0.013,45,11,0.061,60,58,0.000,-29,-54,0.008,-6,-65,0.000,-7,36,0.013,-26,-66,0.000,41,-107,0.000,52,116,0.001,51,31,0.006,32,-9,0.007,4,32,0.004,-53,-71,0.000,-1,123,0.003,32,-90,0.016,31,77,0.096,46,41,0.007,8,-76,0.011,19,31,0.001,-2,21,0.001,-5,33,0.010,48,95,0.000,5,-2,0.018,-10,148,0.008,37,36,0.033,-2,136,0.001,-10,35,0.011,-14,-38,0.002,-18,-65,0.006,-34,21,0.002,56,45,0.016,52,48,0.010,13,15,0.003,47,-53,0.003,46,86,0.002,24,126,0.002,-14,-55,0.000,-34,-56,0.002,56,100,0.000,-38,-61,0.001,47,28,0.040,44,10,0.027,-11,166,0.000,19,107,0.001,-23,-44,0.027,-24,33,0.001,44,-103,0.004,58,48,0.001,20,-97,0.048,35,79,0.001,34,42,0.003,15,28,0.001,10,36,0.003,-9,38,0.003,61,63,0.000,38,-98,0.002,49,13,0.024,48,-68,0.003,-2,104,0.028,2,42,0.002,1,25,0.003,16,101,0.044,-22,36,0.001,49,-98,0.002,48,75,0.000,26,95,0.068,40,110,0.036,2,-71,0.000,1,10,0.002,38,128,0.034,16,-4,0.001,12,-9,0.004,49,-117,0.002,63,76,0.004,-31,25,0.001,40,-3,0.174,35,27,0.001,-17,146,0.003,-31,-54,0.003,3,10,0.017,39,103,0.002,54,67,0.002,50,58,0.011,30,53,0.009,27,129,0.002,6,47,0.004,3,27,0.002,51,112,0.001,12,100,0.014,45,26,0.041,21,40,0.010,18,122,0.012,-14,-45,0.001,-3,14,0.001,-7,-49,0.003,30,87,0.000,-27,28,0.106,42,143,0.006,60,22,0.002,32,108,0.051,-17,-40,0.005,31,-113,0.001,28,39,0.001,-30,-67,0.001,55,70,0.002,51,75,0.000,-3,116,0.029,31,64,0.002,28,-106,0.011,27,61,0.002,42,-79,0.011,4,12,0.015,22,-80,0.028,21,91,0.008,-1,15,0.001,-2,-78,0.028,-5,-44,0.014,43,113,0.001,42,68,0.001,6,-3,0.020,-2,33,0.000,-6,104,0.001,-25,26,0.005,-28,-61,0.002,57,51,0.002,37,56,0.014,33,57,0.000,28,99,0.002,9,31,0.004,-15,37,0.005,22,121,0.095,56,17,0.003,37,-91,0.003,13,-13,0.005,46,130,0.023,43,-92,0.005,24,34,0.002,-22,166,0.001,0,32,0.026,-23,31,0.019,-5,144,0.003,47,48,0.001,43,45,0.018,24,-111,0.002,23,74,0.092,15,95,0.004,11,36,0.001,-43,-71,0.001,-9,-39,0.005,25,81,0.102,-13,22,0.001,15,-16,0.021,48,-119,0.001,10,24,0.004,5,38,0.020,20,122,0.000,53,72,0.001,49,73,0.017,-1,-48,0.003,29,46,0.002,-9,127,0.006,25,47,0.004,2,14,0.002,-18,-47,0.002,-19,34,0.005,49,-102,0.001,-8,-73,0.001,-12,-70,0.000,40,82,0.006,39,-87,0.009,50,124,0.002,12,19,0.002,-7,111,0.127,7,152,0.002,62,129,0.002,59,29,0.008,39,58,0.001,36,-84,0.009,35,55,0.002,30,-110,0.002,-8,-43,0.002,7,41,0.013,-17,35,0.013,54,31,0.013,50,62,0.000,30,65,0.001,26,72,0.008,7,-6,0.016,-27,-50,0.008,-26,28,0.023,-27,-65,0.026,45,62,0.001,41,63,0.001,21,76,0.084]],["1995",[6,159,0.001,30,99,0.002,45,-109,0.001,42,115,0.007,4,-54,0.000,-16,-67,0.016,21,-103,0.006,-20,-64,0.004,-40,-69,0.001,32,64,0.001,28,67,0.007,8,22,0.000,-15,133,0.000,-16,20,0.000,55,42,0.006,32,-81,0.011,31,36,0.084,9,80,0.014,42,-91,0.007,19,54,0.001,21,111,0.174,-3,-51,0.001,33,119,0.158,65,21,0.002,46,49,0.012,43,77,0.042,45,130,0.018,4,119,0.007,22,59,0.003,9,-82,0.003,46,-60,0.002,-14,15,0.007,-15,-76,0.001,57,15,0.007,52,9,0.058,10,120,0.004,24,87,0.150,0,-51,0.006,-5,123,0.016,-24,-53,0.010,-28,-58,0.016,43,0,0.019,24,70,0.026,-9,33,0.014,20,73,0.041,13,104,0.040,43,41,0.011,23,78,0.105,20,-72,0.001,38,-4,0.006,0,-77,0.018,-9,-35,0.059,25,109,0.035,-13,34,0.015,61,18,0.001,58,40,0.002,34,50,0.028,49,88,0.000,48,-99,0.001,-42,176,0.002,20,86,0.167,-18,30,0.008,53,44,0.006,29,18,0.001,5,16,0.003,49,-74,0.000,48,131,0.006,14,121,0.243,63,19,0.001,40,54,0.001,36,57,0.005,16,52,0.000,50,128,0.010,39,30,0.024,54,12,0.007,16,-61,0.012,27,80,0.216,29,101,0.002,14,78,0.071,7,13,0.003,41,125,0.026,-17,23,0.002,54,27,0.010,30,29,0.001,41,142,0.003,12,124,0.027,41,43,0.014,18,98,0.004,36,117,0.200,17,33,0.003,32,109,0.049,-7,23,0.013,27,-101,0.005,45,-73,0.124,21,-83,0.000,55,-131,0.001,52,105,0.025,-40,-65,0.000,32,36,0.115,31,7,0.001,32,-109,0.001,31,120,0.201,9,124,0.042,46,-2,0.001,-2,-50,0.003,18,-13,0.001,42,28,0.015,4,99,0.009,19,-77,0.002,18,38,0.007,33,4,0.005,-5,-75,0.000,-14,51,0.001,-15,-48,0.002,57,-5,0.000,52,37,0.017,13,38,0.015,-10,-41,0.002,-11,36,0.007,-18,-71,0.003,-20,27,0.002,56,89,0.001,33,-94,0.007,44,15,0.001,43,-4,0.006,20,37,0.000,-4,27,0.008,47,8,0.077,44,-98,0.001,23,114,0.385,38,24,0.056,14,10,0.007,10,-3,0.010,47,89,0.002,-34,152,0.083,38,-121,0.067,14,25,0.002,29,5,0.001,-9,-78,0.018,20,98,0.020,-19,-39,0.003,53,0,0.047,-23,150,0.000,49,1,0.029,48,40,0.045,38,97,0.000,35,-99,0.001,16,1,0.004,53,-115,0.000,48,119,0.001,29,-85,0.000,63,39,0.001,40,26,0.002,16,40,0.002,11,120,0.002,-8,14,0.003,26,-98,0.020,-12,-47,0.001,-32,28,0.012,40,-87,0.006,36,-76,0.039,17,82,0.053,50,19,0.093,12,-70,0.001,27,108,0.077,7,49,0.003,41,105,0.000,3,46,0.006,-16,168,0.001,-21,56,0.005,51,83,0.002,50,-122,0.000,30,9,0.001,7,-62,0.001,41,-6,0.005,-17,-52,0.001,-38,-58,0.003,-6,13,0.017,45,6,0.047,60,59,0.000,41,-121,0.000,17,-3,0.000,-6,-64,0.000,-7,35,0.003,-26,-61,0.001,41,-104,0.003,51,30,0.005,32,-8,0.043,27,40,0.002,4,33,0.003,21,98,0.010,-1,122,0.002,32,-89,0.005,31,92,0.001,46,42,0.007,8,-83,0.003,22,36,0.000,19,30,0.001,-10,-64,0.003,-2,22,0.002,-5,40,0.036,69,20,0.001,37,35,0.023,-2,133,0.001,10,93,0.001,-10,36,0.009,-14,-41,0.005,-34,22,0.001,56,46,0.003,37,-108,0.001,52,49,0.003,13,10,0.019,46,91,0.001,-11,24,0.003,-34,-59,0.006,56,93,0.025,-38,-60,0.002,-30,-57,0.004,47,27,0.037,44,11,0.057,-33,-65,0.002,19,106,0.120,-23,-45,0.032,-24,34,0.001,58,45,0.001,20,-96,0.004,35,78,0.002,-38,150,0.000,34,39,0.004,15,27,0.001,10,33,0.002,47,109,0.000,-9,118,0.012,38,-93,0.005,34,-6,0.045,15,-84,0.001,49,16,0.023,25,38,0.002,2,39,0.001,1,28,0.004,16,102,0.027,6,122,0.009,68,65,0.000,49,-99,0.002,48,76,0.000,26,96,0.008,40,111,0.042,2,-70,0.000,38,125,0.004,16,-11,0.003,50,85,0.001,12,-8,0.034,63,75,0.001,-31,28,0.011,-20,-49,0.004,40,-2,0.002,36,1,0.015,35,26,0.010,-31,-55,0.005,6,-67,0.001,3,9,0.003,40,-115,0.001,39,102,0.000,54,68,0.002,50,55,0.001,30,54,0.005,26,49,0.002,60,-135,0.001,6,48,0.004,3,26,0.003,51,111,0.001,12,101,0.007,45,25,0.024,-3,13,0.002,-7,-46,0.002,30,88,0.001,-27,27,0.015,42,144,0.007,60,23,0.011,32,101,0.002,31,-114,0.004,28,40,0.001,8,-13,0.027,-30,-66,0.003,55,69,0.002,51,74,0.001,-3,115,0.013,31,63,0.001,28,-105,0.008,27,68,0.052,42,-78,0.036,22,-83,0.020,21,86,0.060,-1,14,0.001,-2,-57,0.000,-5,-45,0.007,32,-117,0.059,43,120,0.009,45,93,0.000,55,103,0.001,-2,34,0.013,-25,25,0.001,57,70,0.000,37,55,0.012,33,60,0.004,28,100,0.004,9,34,0.004,-9,24,0.002,-4,120,0.044,22,122,0.002,37,-88,0.008,8,101,0.011,46,119,0.000,43,-93,0.005,-11,124,0.016,0,41,0.004,-23,34,0.001,-5,143,0.003,47,47,0.001,43,52,0.006,24,-110,0.003,23,73,0.213,1,105,0.022,-4,-45,0.011,11,35,0.005,14,45,0.059,25,84,0.293,-13,21,0.001,58,17,0.007,37,123,0.047,34,75,0.082,-4,130,0.003,11,-12,0.022,48,-118,0.000,10,21,0.001,5,-58,0.001,1,-57,0.000,53,71,0.002,49,76,0.001,29,45,0.002,14,18,0.001,25,50,0.002,2,11,0.006,-18,-46,0.003,-19,33,0.018,49,-103,0.001,-8,-72,0.001,-12,-69,0.000,25,-97,0.021,40,83,0.002,39,-88,0.009,50,121,0.001,12,20,0.002,-7,114,0.026,14,107,0.004,-37,149,0.001,62,130,0.003,59,36,0.001,39,57,0.001,36,-99,0.001,35,54,0.005,30,-89,0.014,-8,-42,0.003,7,40,0.042,-17,34,0.008,54,32,0.015,-4,-50,0.001,30,66,0.001,26,69,0.068,7,-7,0.021,-20,34,0.016,-3,-60,0.031,-19,-44,0.004,-26,25,0.002,-27,-54,0.007,21,75,0.080,30,100,0.002,42,116,0.006,4,-53,0.000,-16,-66,0.001,21,-100,0.015,-20,-63,0.001,-40,-68,0.002,32,73,0.082,28,68,0.016,-16,13,0.001,-5,-41,0.006,55,41,0.007,32,-80,0.013,31,35,0.086,9,79,0.129,42,-90,0.007,19,53,0.002,-2,-45,0.004,65,24,0.000,46,50,0.001,43,84,0.008,45,129,0.024,4,120,0.003,22,60,0.004,9,-83,0.025,46,-63,0.003,-14,16,0.014,52,10,0.063,24,88,0.186,0,-50,0.004,34,126,0.001,-5,122,0.007,-24,-52,0.015,-28,-57,0.002,43,-1,0.023,24,71,0.012,58,83,0.001,20,74,0.113,-1,11,0.001,13,103,0.028,43,16,0.004,23,77,0.073,38,-7,0.014,0,-76,0.007,47,100,0.000,25,112,0.073,-13,33,0.005,61,17,0.003,58,37,0.002,34,47,0.026,49,87,0.001,48,-98,0.001,20,87,0.177,-33,-56,0.002,-18,35,0.005,53,43,0.005,29,17,0.001,5,15,0.003,48,132,0.001,-19,178,0.001,63,18,0.001,36,58,0.009,16,45,0.014,50,125,0.002,39,29,0.030,54,9,0.005,-55,-66,0.001,27,79,0.284,29,104,0.080,41,128,0.013,-17,22,0.000,54,28,0.009,53,95,0.000,30,30,0.020,41,141,0.017,-21,-53,0.000,64,29,0.001,41,30,0.096,18,95,0.014,36,118,0.263,17,36,0.003,32,110,0.042,-7,26,0.006,27,-102,0.000,45,-78,0.000,41,-69,0.001,21,-80,0.001,52,106,0.001,31,6,0.001,-16,49,0.008,32,-108,0.001,31,119,0.226,9,123,0.024,46,3,0.009,18,-12,0.001,6,-8,0.018,66,15,0.001,6,117,0.011,42,25,0.033,18,35,0.001,33,3,0.004,14,40,0.031,-15,-49,0.004,22,103,0.011,52,38,0.007,13,37,0.006,47,-91,0.001,-10,-40,0.012,-11,35,0.010,56,90,0.002,33,-95,0.005,44,16,0.011,43,-5,0.032,58,103,0.004,-4,28,0.006,-10,161,0.002,47,7,0.029,44,-97,0.002,-13,-44,0.003,23,113,0.139,38,21,0.003,14,-1,0.005,10,-2,0.015,47,88,0.002,38,-120,0.006,6,39,0.099,14,26,0.001,29,8,0.001,-9,-79,0.018,20,99,0.004,53,-1,0.156,49,4,0.023,48,17,0.082,40,140,0.001,38,98,0.001,35,-92,0.005,16,2,0.001,53,-112,0.002,12,-3,0.014,48,120,0.002,29,-90,0.032,40,27,0.012,16,17,0.000,-8,15,0.006,-12,-46,0.001,40,-86,0.017,39,129,0.001,17,81,0.075,50,20,0.093,12,-69,0.003,27,107,0.109,7,48,0.004,41,108,0.016,3,45,0.005,51,82,0.009,50,-125,0.001,-15,50,0.011,30,10,0.001,7,-63,0.006,41,-7,0.015,-17,-53,0.001,-6,14,0.028,30,121,0.306,23,96,0.022,45,5,0.084,60,60,0.002,-4,-41,0.009,17,0,0.001,-6,-67,0.000,28,13,0.000,-26,-60,0.001,41,-105,0.001,-8,132,0.002,51,29,0.006,32,1,0.001,27,39,0.002,4,34,0.002,21,97,0.046,-1,121,0.003,-3,-42,0.003,32,-88,0.005,46,31,0.056,8,-82,0.015,19,29,0.001,-2,27,0.002,-5,39,0.028,69,19,0.001,57,105,0.000,37,30,0.020,-2,134,0.002,-10,33,0.008,-14,-40,0.008,-34,27,0.005,56,47,0.004,52,50,0.006,13,9,0.036,47,-55,0.001,9,6,0.015,46,92,0.000,-11,23,0.002,-14,-57,0.000,-4,134,0.001,-34,-58,0.004,56,94,0.004,-38,-63,0.001,47,26,0.016,44,12,0.057,19,105,0.009,-8,142,0.001,-24,35,0.002,58,46,0.002,38,49,0.033,35,77,0.010,37,98,0.001,34,40,0.005,15,26,0.001,10,34,0.004,47,124,0.050,-33,30,0.001,38,-92,0.010,-8,139,0.000,15,-85,0.005,49,15,0.024,2,40,0.002,1,27,0.001,16,103,0.061,-22,34,0.002,49,-96,0.002,26,93,0.144,25,-106,0.001,40,112,0.044,2,-73,0.001,1,12,0.004,38,126,0.127,16,-10,0.002,50,86,0.000,12,-7,0.013,-31,27,0.002,40,-1,0.003,36,2,0.031,35,25,0.007,-7,150,0.001,-31,-52,0.005,6,-66,0.000,45,-120,0.000,39,101,0.016,54,65,0.002,50,56,0.001,30,59,0.004,26,50,0.002,6,45,0.002,3,25,0.002,17,-66,0.004,-21,19,0.000,51,110,0.001,12,102,0.021,45,28,0.033,-25,-64,0.005,-3,16,0.001,-7,-47,0.003,45,-87,0.004,42,141,0.009,60,24,0.005,-29,-67,0.000,17,-4,0.000,32,102,0.002,31,-115,0.012,28,41,0.001,8,-12,0.026,55,68,0.002,51,73,0.001,31,62,0.006,28,-104,0.001,27,67,0.005,42,-81,0.013,4,-2,0.003,22,-82,0.024,21,85,0.052,-1,13,0.001,-39,-62,0.009,-2,-56,0.000,-5,-46,0.004,32,-116,0.045,46,75,0.003,43,119,0.009,55,102,0.001,-8,-76,0.003,-25,24,0.002,5,9,0.032,57,69,0.000,37,66,0.005,33,59,0.002,28,101,0.003,9,33,0.005,-15,39,0.007,37,-89,0.009,46,120,0.001,43,-94,0.003,-11,123,0.001,0,42,0.001,-23,33,0.001,-5,142,0.002,47,46,0.001,23,72,0.033,-4,-44,0.011,11,34,0.005,-9,-41,0.002,25,83,0.344,-13,28,0.013,58,18,0.002,35,121,0.005,37,118,0.164,34,76,0.017,-4,131,0.002,49,94,0.000,11,-13,0.007,48,-117,0.001,10,22,0.001,-32,153,0.004,53,50,0.031,49,75,0.001,29,48,0.023,5,122,0.006,25,49,0.002,-2,105,0.004,2,12,0.006,-19,36,0.003,68,30,0.001,49,-100,0.001,48,105,0.001,26,129,0.002,-12,-68,0.000,40,84,0.002,39,-89,0.011,36,15,0.011,50,122,0.004,12,21,0.003,-7,113,0.029,18,123,0.002,59,35,0.001,39,56,0.001,36,-98,0.001,35,53,0.009,30,-88,0.020,-8,-41,0.006,7,39,0.077,-17,33,0.007,54,29,0.018,-55,-68,0.001,30,23,0.000,26,70,0.032,7,-8,0.018,6,73,0.000,22,98,0.013,-3,-61,0.001,-26,26,0.015,-27,-55,0.008,45,64,0.000,60,5,0.000,41,65,0.003,21,70,0.023,30,97,0.001,42,113,0.002,4,-52,0.002,-16,-65,0.001,21,-101,0.047,-20,-62,0.000,-41,-62,0.000,32,74,0.157,28,69,0.050,8,24,0.001,-16,14,0.003,55,40,0.013,31,34,0.003,-15,26,0.002,21,121,0.001,33,121,0.110,-6,151,0.002,65,23,0.001,43,83,0.009,45,132,0.032,22,57,0.001,6,2,0.078,9,-80,0.001,46,-62,0.001,-14,13,0.002,-15,-74,0.002,57,17,0.003,52,11,0.052,-43,172,0.001,24,81,0.066,-5,121,0.027,-24,-59,0.000,-28,-56,0.004,43,-2,0.043,24,72,0.042,58,84,0.000,20,75,0.101,-28,23,0.001,23,108,0.065,38,-6,0.013,14,-92,0.017,47,99,0.000,25,111,0.077,58,38,0.002,-46,169,0.001,34,48,0.036,49,90,0.001,48,-97,0.001,-18,36,0.012,53,38,0.009,44,113,0.000,5,26,0.001,48,125,0.020,63,17,0.001,40,56,0.000,36,59,0.015,35,8,0.019,16,46,0.002,50,126,0.005,39,28,0.035,54,10,0.028,27,78,0.211,29,103,0.030,41,127,0.035,-17,21,0.000,54,25,0.013,53,106,0.001,30,35,0.006,6,37,0.017,64,30,0.000,41,29,0.177,18,96,0.063,36,119,0.189,17,35,0.003,32,111,0.057,-7,25,0.016,45,-79,0.002,41,-82,0.016,52,107,0.001,51,24,0.016,31,5,0.001,-13,-43,0.003,-16,50,0.007,55,12,0.015,32,-115,0.013,31,118,0.194,46,4,0.013,42,-121,0.002,18,-15,0.013,-6,123,0.012,66,16,0.000,-44,-74,0.000,42,26,0.025,18,36,0.001,-1,-74,0.000,33,6,0.003,-5,-69,0.001,-14,49,0.006,-15,-46,0.002,22,104,0.022,37,-6,0.027,52,39,0.010,13,40,0.032,-10,-43,0.002,24,117,0.092,-33,118,0.000,56,91,0.008,33,-92,0.004,44,17,0.019,43,-6,0.005,-4,29,0.022,47,6,0.019,44,-96,0.002,-13,-45,0.002,23,112,0.075,38,22,0.016,35,104,0.067,14,0,0.007,10,11,0.023,47,87,0.002,38,-123,0.001,49,118,0.006,29,7,0.001,20,100,0.015,53,10,0.061,49,3,0.055,48,18,0.052,44,77,0.003,38,103,0.023,35,-93,0.004,53,-113,0.029,12,-2,0.028,29,-91,0.004,14,110,0.016,40,28,0.012,-20,-44,0.063,-8,16,0.006,7,94,0.001,40,-85,0.018,39,128,0.054,17,84,0.069,16,-95,0.011,50,17,0.037,12,-68,0.005,27,106,0.101,7,47,0.003,41,107,0.002,51,81,0.002,30,-1,0.001,7,-64,0.001,41,-4,0.021,-17,-54,0.006,-6,27,0.007,-35,-57,0.011,30,122,0.138,45,8,0.070,60,61,0.001,41,-119,0.000,-35,150,0.001,17,-1,0.001,-6,-66,0.000,-26,-63,0.001,8,9,0.028,41,-102,0.000,51,36,0.010,32,2,0.001,28,-3,0.000,27,38,0.002,4,35,0.002,22,-105,0.007,21,100,0.008,-1,120,0.016,46,32,0.010,8,-81,0.006,19,36,0.000,-2,28,0.003,-5,38,0.006,-10,151,0.001,22,-15,0.000,37,29,0.026,-2,139,0.000,-8,-62,0.000,10,107,0.337,-10,34,0.029,-2,12,0.001,-34,28,0.008,56,48,0.034,52,51,0.003,-12,-67,0.000,13,12,0.006,9,5,0.006,46,89,0.001,-14,-56,0.001,-34,-53,0.002,56,95,0.001,-38,-62,0.001,47,25,0.016,19,96,0.037,34,-106,0.003,-36,-61,0.003,-23,-59,0.001,-24,36,0.015,44,-100,0.001,58,59,0.002,37,97,0.001,34,37,0.036,15,25,0.001,10,31,0.008,47,123,0.014,5,-76,0.010,-33,29,0.016,38,-95,0.006,15,-86,0.013,49,18,0.041,25,40,0.003,2,37,0.001,1,30,0.010,16,104,0.062,-22,31,0.003,49,-97,0.023,26,94,0.062,25,-107,0.007,40,105,0.000,2,-72,0.001,1,11,0.004,-18,-69,0.001,16,-9,0.002,50,83,0.006,12,-6,0.010,-31,30,0.022,40,0,0.005,36,3,0.043,29,122,0.138,-31,-53,0.003,6,-61,0.001,39,100,0.009,54,66,0.002,50,53,0.001,30,60,0.004,26,47,0.003,6,46,0.003,3,16,0.002,17,-67,0.001,-21,18,0.000,51,109,0.003,12,103,0.018,45,27,0.023,22,84,0.049,-3,15,0.001,-7,-44,0.002,45,-84,0.003,42,142,0.029,60,25,0.029,32,103,0.002,31,-100,0.004,28,42,0.001,-30,-68,0.000,55,67,0.002,51,64,0.001,-3,109,0.002,31,61,0.001,9,101,0.001,27,66,0.002,42,-80,0.011,4,-1,0.007,21,88,0.106,-1,28,0.002,-39,-63,0.000,-5,-47,0.004,46,76,0.001,43,118,0.005,-48,-67,0.000,55,101,0.001,-10,-63,0.005,46,-101,0.000,57,72,0.001,37,65,0.004,33,62,0.002,28,102,0.009,9,36,0.024,37,-78,0.005,-4,-73,0.007,13,-16,0.031,43,-95,0.003,24,29,0.000,0,43,0.004,-23,36,0.003,-5,141,0.002,13,125,0.009,47,45,0.001,23,71,0.013,15,108,0.006,11,33,0.004,-43,-74,0.001,-9,-42,0.002,25,102,0.040,-13,27,0.002,58,15,0.004,35,112,0.104,37,117,0.167,34,73,0.135,-4,132,0.000,49,93,0.000,11,-14,0.009,48,-116,0.001,-9,113,0.100,5,-56,0.001,1,-55,0.000,53,49,0.010,49,46,0.003,29,47,0.009,25,52,0.017,-19,35,0.003,68,31,0.000,49,-101,0.000,48,106,0.000,40,77,0.003,39,-90,0.005,36,16,0.003,50,119,0.003,12,22,0.003,-7,116,0.003,11,93,0.001,-12,44,0.011,59,34,0.004,39,55,0.004,36,-97,0.006,35,60,0.016,30,-91,0.022,-8,-40,0.009,7,38,0.091,8,99,0.016,54,30,0.006,30,24,0.001,7,-9,0.007,6,74,0.001,17,-71,0.001,-3,-66,0.001,-26,31,0.005,-27,-52,0.013,45,63,0.001,60,6,0.011,41,68,0.002,17,74,0.065,-6,-45,0.004,30,98,0.002,45,-112,0.001,42,114,0.005,-16,-64,0.001,21,-106,0.001,54,79,0.001,32,75,0.230,28,70,0.051,8,17,0.011,-16,15,0.005,55,39,0.054,6,118,0.002,31,33,0.023,9,81,0.026,42,-108,0.000,-2,-47,0.015,-6,152,0.004,5,37,0.008,65,26,0.003,43,82,0.012,45,131,0.046,-4,152,0.000,22,58,0.004,-35,119,0.000,46,-73,0.005,-11,-68,0.004,-14,14,0.006,-15,-75,0.009,0,105,0.004,52,12,0.024,28,130,0.003,24,82,0.091,-24,-58,0.000,-28,-55,0.021,43,-3,0.025,20,76,0.088,-24,-43,0.022,-28,24,0.004,43,14,0.032,23,107,0.047,38,-1,0.017,-25,-68,0.002,14,50,0.003,25,114,0.059,-18,146,0.002,34,45,0.013,49,89,0.000,48,-96,0.001,-18,33,0.012,53,37,0.007,29,19,0.001,44,114,0.000,5,25,0.000,48,126,0.030,63,16,0.001,40,49,0.015,39,10,0.018,36,60,0.041,35,7,0.025,16,47,0.001,39,27,0.014,27,77,0.125,29,98,0.001,41,130,0.026,54,26,0.028,53,105,0.001,-35,-70,0.015,30,36,0.008,6,38,0.053,-25,-55,0.005,-19,-49,0.008,64,31,0.001,41,32,0.015,-29,-58,0.003,36,120,0.181,17,38,0.005,32,112,0.094,-7,28,0.004,45,-76,0.004,41,-83,0.033,52,108,0.001,51,23,0.035,5,27,0.000,-16,51,0.004,55,11,0.015,51,8,0.207,32,-114,0.008,31,117,0.124,46,1,0.015,18,-14,0.001,-8,-69,0.000,-6,124,0.003,42,23,0.020,18,33,0.002,-1,-75,0.001,33,5,0.008,-14,50,0.007,-18,-53,0.001,-15,-47,0.001,22,101,0.020,0,125,0.012,37,-7,0.010,52,40,0.026,13,39,0.025,47,-109,0.000,-10,-42,0.003,24,118,0.130,-33,117,0.004,56,92,0.001,33,-93,0.004,47,36,0.040,44,18,0.019,43,-7,0.009,20,40,0.004,-4,30,0.100,47,5,0.008,44,-95,0.003,62,17,0.003,23,111,0.107,20,-105,0.008,38,27,0.024,35,103,0.019,15,36,0.013,14,-3,0.013,10,12,0.037,47,86,0.001,38,-122,0.034,49,117,0.001,29,2,0.000,-13,-76,0.078,-29,-51,0.009,16,109,0.020,53,9,0.053,-23,151,0.000,49,6,0.019,48,19,0.031,44,78,0.002,38,104,0.008,35,-94,0.010,12,-1,0.054,59,-151,0.000,40,21,0.022,-12,-44,0.002,40,-84,0.016,-28,153,0.020,39,127,0.058,17,83,0.093,16,-94,0.007,50,18,0.029,27,105,0.080,7,46,0.003,41,94,0.001,51,104,0.001,50,-127,0.000,30,0,0.001,7,-65,0.001,41,-5,0.007,3,-60,0.004,21,-16,0.001,-17,-55,0.001,69,89,0.010,30,111,0.049,8,123,0.004,45,7,0.016,-35,149,0.001,17,2,0.000,-26,-62,0.001,64,178,0.001,41,-103,0.002,51,35,0.008,32,3,0.002,28,-2,0.000,27,37,0.002,4,36,0.002,22,-104,0.002,21,99,0.007,-39,-72,0.015,-52,-71,0.001,46,29,0.035,8,-80,0.011,22,39,0.000,19,35,0.000,-2,25,0.002,-5,37,0.007,42,-5,0.012,37,32,0.018,-10,-77,0.014,10,108,0.055,-10,39,0.003,-14,-42,0.006,-34,25,0.001,56,73,0.001,52,52,0.002,-44,-65,0.002,13,11,0.008,9,8,0.025,46,90,0.001,24,26,0.000,-14,-59,0.000,56,96,0.005,47,24,0.026,19,95,0.014,34,-109,0.001,-23,-56,0.003,-24,29,0.010,-43,-63,0.000,58,60,0.007,38,55,0.001,35,83,0.000,37,100,0.001,34,38,0.008,15,24,0.001,14,-23,0.002,10,32,0.003,47,122,0.008,5,-77,0.001,38,-94,0.024,15,-87,0.034,49,17,0.040,48,-72,0.002,-28,-50,0.007,25,39,0.003,2,38,0.001,1,29,0.002,16,81,0.203,-22,32,0.004,49,-94,0.001,48,71,0.001,26,107,0.144,25,-104,0.002,40,106,0.001,2,-75,0.015,36,37,0.049,-18,-68,0.002,16,-8,0.002,50,84,0.005,12,-5,0.021,-21,-48,0.016,-31,29,0.016,40,-7,0.017,36,4,0.140,35,15,0.012,29,121,0.159,40,-112,0.005,39,99,0.011,54,71,0.002,50,54,0.001,30,57,0.007,26,48,0.002,3,15,0.002,8,81,0.038,17,-64,0.002,-21,17,0.001,51,116,0.002,12,104,0.016,-7,-74,0.000,45,22,0.028,6,94,0.000,-3,42,0.000,-7,-45,0.001,30,91,0.001,-27,24,0.003,45,-85,0.001,60,26,0.021,-30,-56,0.005,32,104,0.005,-33,-66,0.000,31,-101,0.001,28,43,0.001,-30,-71,0.003,55,66,0.016,51,63,0.001,-3,112,0.007,31,76,0.205,28,-102,0.002,27,65,0.002,42,-83,0.141,21,87,0.117,-1,27,0.002,-3,-47,0.004,-2,-58,0.000,-5,-40,0.013,43,117,0.003,45,90,0.001,42,64,0.001,-1,12,0.000,46,-100,0.003,57,71,0.001,37,68,0.027,33,61,0.003,28,103,0.031,9,35,0.013,-15,41,0.023,56,13,0.011,37,-79,0.016,-4,-72,0.001,33,-82,0.012,9,-12,0.017,46,118,0.000,43,-88,0.028,-9,37,0.005,-4,139,0.005,0,44,0.004,-23,35,0.003,-30,-52,0.015,23,70,0.011,1,110,0.017,38,-28,0.001,15,107,0.008,11,40,0.058,-9,-43,0.001,25,101,0.065,-13,26,0.002,61,10,0.001,58,16,0.009,35,111,0.103,37,120,0.041,34,74,0.069,15,-4,0.004,49,96,0.000,11,-15,0.015,48,-123,0.015,5,-57,0.002,20,110,0.021,53,52,0.006,49,45,0.002,29,74,0.063,25,51,0.002,2,10,0.001,-19,30,0.011,68,32,0.000,49,-66,0.000,48,107,0.007,26,127,0.000,-32,-71,0.002,40,78,0.003,39,-91,0.006,50,120,0.001,12,23,0.009,-7,115,0.002,11,100,0.009,-12,29,0.005,59,33,0.005,39,54,0.003,36,-96,0.006,35,59,0.009,30,-90,0.022,-8,-47,0.002,7,37,0.045,-18,17,0.005,-17,31,0.008,-20,48,0.045,54,35,0.003,7,-10,0.005,6,15,0.004,-3,-67,0.000,-7,-62,0.000,-26,32,0.027,-27,-53,0.013,60,7,0.001,41,67,0.001,21,72,0.078,36,77,0.001,-6,-44,0.008,42,111,0.002,-16,-55,0.008,54,80,0.001,-40,-73,0.004,32,76,0.107,28,71,0.082,27,-12,0.002,8,18,0.007,-16,16,0.004,55,38,0.421,31,32,0.172,42,-111,0.001,-2,-46,0.006,-6,149,0.001,65,25,0.002,43,81,0.005,45,126,0.048,52,-114,0.001,13,-83,0.001,9,-78,0.001,46,-72,0.011,-11,-69,0.001,-15,-72,0.004,57,19,0.002,52,-3,0.015,-10,-69,0.000,24,83,0.071,34,121,0.024,-24,-57,0.002,-28,-54,0.013,43,4,0.029,-36,-70,0.004,13,100,0.051,-28,25,0.008,43,13,0.034,23,106,0.031,38,0,0.050,25,113,0.095,34,46,0.019,49,92,0.000,-8,113,0.474,-18,34,0.003,53,40,0.008,29,14,0.001,44,115,0.001,5,28,0.001,-20,-51,0.002,48,127,0.018,63,15,0.002,40,50,0.054,39,9,0.015,36,45,0.023,35,6,0.034,16,48,0.000,39,26,0.001,17,122,0.038,50,11,0.038,27,84,0.163,29,97,0.001,0,98,0.009,41,129,0.019,-36,174,0.002,30,33,0.033,6,43,0.003,-30,31,0.108,41,31,0.010,18,94,0.004,36,121,0.184,17,37,0.003,32,121,0.282,-7,27,0.004,27,-97,0.014,45,-77,0.002,42,83,0.004,41,-80,0.029,21,-71,0.000,52,93,0.000,-26,153,0.002,51,22,0.032,27,16,0.001,55,10,0.019,51,7,0.191,32,-113,0.001,31,132,0.023,46,2,0.010,42,-123,0.004,-29,115,0.001,-5,16,0.172,-6,121,0.023,66,14,0.001,42,24,0.059,18,34,0.001,6,11,0.033,33,8,0.004,5,117,0.019,-15,-44,0.002,22,102,0.013,37,-4,0.029,52,41,0.010,13,34,0.029,-10,-37,0.016,24,119,0.129,56,85,0.020,33,-90,0.006,47,35,0.021,44,19,0.022,20,41,0.012,15,146,0.002,44,-94,0.005,62,18,0.003,23,110,0.110,20,-104,0.008,38,28,0.060,35,102,0.005,15,35,0.005,14,-2,0.006,10,9,0.032,47,85,0.001,-9,122,0.014,-33,-59,0.003,61,50,0.001,-18,179,0.007,49,120,0.005,48,-67,0.002,-13,-77,0.080,-19,-43,0.005,53,12,0.018,49,5,0.020,48,20,0.022,44,79,0.004,38,101,0.014,35,-95,0.007,16,-3,0.009,12,0,0.025,29,-89,0.004,-3,12,0.001,62,78,0.002,59,48,0.001,40,22,0.012,11,124,0.018,-32,24,0.001,40,-91,0.005,39,126,0.139,16,-93,0.027,50,15,0.077,27,112,0.198,7,45,0.004,41,93,0.001,-50,-74,0.000,39,143,0.000,51,103,0.001,30,-3,0.001,-33,-70,0.008,7,-66,0.003,-17,-56,0.001,-6,25,0.005,30,112,0.122,-37,-73,0.016,8,124,0.043,45,2,0.018,-35,152,0.005,17,1,0.001,32,77,0.031,-26,-57,0.068,8,11,0.011,41,-100,0.001,51,34,0.016,32,4,0.002,27,44,0.002,4,21,0.005,21,94,0.004,-1,118,0.023,-39,-73,0.002,46,30,0.030,43,128,0.019,-4,143,0.002,22,40,0.012,19,34,0.001,-2,26,0.002,-10,149,0.002,42,-4,0.004,57,94,0.001,37,31,0.017,-2,137,0.004,10,105,0.042,-10,40,0.007,-9,28,0.004,-4,116,0.011,-34,26,0.035,56,74,0.001,37,-112,0.000,52,69,0.002,13,6,0.049,9,7,0.021,-10,-73,0.000,24,27,0.000,-14,-58,0.000,23,-80,0.001,-34,-55,0.002,0,17,0.000,-38,-64,0.000,47,23,0.024,19,94,0.011,-23,-57,0.002,-24,30,0.026,58,57,0.024,38,56,0.002,35,82,0.001,37,99,0.001,-8,121,0.000,15,23,0.001,10,29,0.003,47,121,0.003,38,-89,0.012,15,-88,0.030,49,20,0.043,14,14,0.002,25,42,0.003,2,35,0.006,1,32,0.017,16,82,0.181,-22,29,0.004,26,108,0.068,25,-105,0.001,40,107,0.007,2,-74,0.001,36,38,0.031,38,129,0.013,50,81,0.013,12,-4,0.014,40,-6,0.005,-20,-39,0.002,-7,151,0.001,40,-119,0.000,39,98,0.002,54,72,0.003,50,51,0.001,30,58,0.004,26,45,0.005,3,14,0.002,2,103,0.049,-20,30,0.011,-21,24,0.000,51,115,0.001,-3,-68,0.000,12,105,0.025,-7,-75,0.001,45,21,0.026,-3,41,0.005,-35,-66,0.002,30,92,0.003,45,-90,0.002,60,27,0.006,32,49,0.024,31,-102,0.006,28,44,0.001,-30,-70,0.003,55,65,0.003,51,62,0.001,-3,111,0.003,31,75,0.357,28,-101,0.003,27,72,0.012,42,-82,0.044,22,-79,0.023,-1,26,0.002,-39,-61,0.005,-2,-53,0.001,70,24,0.000,66,67,0.002,43,124,0.035,45,89,0.001,42,61,0.005,55,99,0.002,-11,-62,0.005,57,74,0.001,37,67,0.012,33,64,0.003,10,125,0.040,28,104,0.037,9,22,0.000,56,14,0.008,37,-76,0.018,-4,-71,0.001,33,-83,0.015,9,-13,0.051,46,123,0.016,43,-89,0.017,57,-152,0.000,0,37,0.013,23,69,0.004,1,109,0.002,15,106,0.030,11,39,0.047,-43,-72,0.000,-9,-44,0.001,25,104,0.074,-13,25,0.002,61,9,0.000,58,13,0.007,35,110,0.072,37,119,0.111,34,71,0.042,15,-5,0.001,49,95,0.000,11,-8,0.009,48,-122,0.015,20,111,0.064,1,-53,0.000,53,51,0.046,49,48,0.001,29,73,0.081,25,70,0.059,-19,29,0.009,68,33,0.003,48,108,0.003,26,128,0.039,-32,-70,0.002,40,79,0.002,39,-92,0.004,50,117,0.003,12,24,0.007,11,99,0.005,-12,30,0.005,59,40,0.012,39,53,0.001,36,-95,0.023,35,58,0.009,30,-85,0.008,-8,-46,0.002,7,36,0.019,-17,30,0.006,54,36,0.005,7,-11,0.021,6,16,0.006,-3,-64,0.000,-26,29,0.083,-27,-58,0.005,60,8,0.000,21,71,0.083,36,78,0.003,17,76,0.095,-6,-47,0.014,42,112,0.003,-16,-54,0.002,21,-104,0.014,54,77,0.001,-40,-72,0.006,32,69,0.004,28,72,0.037,27,-13,0.001,8,19,0.006,-15,40,0.012,-16,25,0.002,55,37,0.023,31,31,0.173,42,-110,0.000,-6,150,0.002,43,88,0.058,45,125,0.043,18,27,0.001,52,-113,0.004,9,-79,0.038,46,-75,0.001,-11,-74,0.001,-15,-73,0.002,57,38,0.003,52,-2,0.075,24,84,0.094,-24,-56,0.005,-28,-53,0.014,43,3,0.017,24,67,0.040,13,99,0.013,-28,26,0.005,-28,-64,0.013,43,20,0.024,23,105,0.044,38,-3,0.012,0,-80,0.000,25,116,0.065,61,13,0.000,49,91,0.001,-8,114,0.129,-18,23,0.000,53,39,0.020,29,13,0.001,44,116,0.002,6,-1,0.086,48,128,0.011,40,51,0.018,36,46,0.021,35,5,0.018,-19,146,0.000,-30,-50,0.022,26,-109,0.008,17,121,0.027,50,12,0.042,12,-61,0.004,27,83,0.167,29,100,0.002,6,-7,0.014,-36,175,0.003,54,-128,0.001,30,34,0.002,6,44,0.003,54,-113,0.001,64,41,0.015,-30,32,0.030,41,34,0.009,36,122,0.023,32,122,0.074,-25,153,0.002,-7,14,0.002,27,-98,0.002,42,84,0.005,41,-81,0.088,52,94,0.000,51,21,0.024,32,41,0.003,27,15,0.001,-9,-40,0.004,55,9,0.008,51,6,0.111,32,-112,0.000,31,131,0.052,42,-122,0.005,18,-16,0.003,-1,-46,0.002,-38,141,0.002,-5,15,0.011,-6,122,0.001,42,21,0.046,18,31,0.001,33,7,0.003,-5,-64,0.000,-15,-45,0.001,22,107,0.034,37,-5,0.040,52,42,0.020,13,33,0.023,47,-111,0.003,-10,-36,0.036,-11,31,0.004,-9,14,0.036,56,86,0.003,-3,148,0.001,33,-91,0.005,47,34,0.029,44,20,0.027,23,28,0.000,20,42,0.013,-8,146,0.001,-4,32,0.015,44,-93,0.056,62,39,0.000,23,109,0.093,20,-103,0.135,38,25,0.001,35,101,0.003,-27,154,0.006,15,34,0.014,14,3,0.006,10,10,0.021,47,132,0.014,61,49,0.000,-8,111,0.438,49,119,0.001,48,-66,0.001,29,4,0.001,-19,-40,0.010,53,11,0.072,-3,102,0.012,49,8,0.054,48,13,0.036,44,80,0.003,38,102,0.010,16,-2,0.002,12,1,0.008,29,-94,0.009,59,47,0.001,40,23,0.046,11,123,0.055,40,-90,0.006,39,125,0.020,-44,-73,0.000,16,-92,0.026,50,16,0.040,27,111,0.104,-22,-49,0.012,41,96,0.001,-21,-47,0.022,39,142,0.034,51,102,0.000,30,-2,0.001,7,-67,0.004,-17,-57,0.001,-6,26,0.004,30,109,0.109,45,1,0.016,60,64,0.000,-29,-55,0.005,-35,151,0.019,32,78,0.004,-6,-55,0.000,-26,-56,0.017,8,12,0.017,41,-101,0.000,3,100,0.047,55,60,0.010,51,33,0.008,32,-3,0.002,66,77,0.003,27,43,0.001,4,22,0.005,-16,-47,0.046,21,93,0.063,-1,117,0.007,-39,-70,0.001,46,35,0.007,43,127,0.058,19,33,0.001,-2,15,0.001,48,96,0.000,-25,48,0.003,9,-84,0.042,-10,150,0.002,43,144,0.009,42,-7,0.014,57,93,0.001,37,42,0.024,10,106,0.194,28,77,0.193,-10,37,0.004,-14,-44,0.003,56,75,0.002,37,-113,0.003,52,70,0.002,13,5,0.014,9,10,0.042,46,80,0.000,24,28,0.000,-14,-61,0.001,23,-81,0.007,-34,-54,0.002,0,18,0.001,-38,-67,0.001,47,22,0.035,34,-111,0.002,-23,-54,0.009,-24,31,0.037,62,51,0.001,58,58,0.008,35,81,0.001,37,94,0.000,34,36,0.023,15,22,0.002,10,30,0.010,47,120,0.001,1,-78,0.007,38,-88,0.005,15,-89,0.017,49,19,0.073,25,41,0.002,-2,101,0.016,2,36,0.003,1,31,0.024,16,83,0.048,-22,30,0.004,48,49,0.000,26,105,0.086,25,-102,0.002,40,108,0.013,2,-77,0.006,36,39,0.022,-18,-70,0.005,50,82,0.003,12,29,0.005,-31,31,0.029,40,-5,0.012,29,123,0.020,7,127,0.019,6,-62,0.001,39,97,0.001,54,69,0.002,50,52,0.001,30,47,0.016,26,46,0.004,6,49,0.001,3,13,0.004,2,104,0.011,17,-62,0.002,-21,23,0.000,51,114,0.001,-3,-69,0.000,12,106,0.035,45,24,0.020,6,100,0.008,30,89,0.000,45,-91,0.003,60,28,0.002,32,50,0.014,-17,-41,0.005,31,-103,0.001,28,45,0.000,55,64,0.003,51,61,0.001,31,74,0.227,28,-100,0.008,9,106,0.124,27,71,0.015,22,-78,0.005,-1,25,0.002,-2,-52,0.000,-5,-42,0.016,46,63,0.001,43,123,0.026,45,92,0.001,42,62,0.004,6,-2,0.029,46,-102,0.001,-11,-63,0.002,-15,-66,0.000,57,73,0.000,37,62,0.009,33,63,0.003,10,126,0.011,28,105,0.123,9,21,0.001,56,15,0.007,37,-77,0.034,-4,-70,0.001,33,-80,0.014,46,124,0.019,43,-90,0.004,0,38,0.032,-5,146,0.002,13,122,0.059,1,112,0.007,15,105,0.065,11,38,0.061,-43,-73,0.003,-9,-45,0.001,25,103,0.077,-13,16,0.021,61,12,0.001,58,14,0.006,0,102,0.035,-18,169,0.001,35,109,0.051,37,130,0.007,34,72,0.124,15,-6,0.002,14,75,0.043,11,-9,0.006,48,-121,0.001,-32,149,0.000,53,46,0.018,49,47,0.001,29,76,0.103,-9,126,0.014,25,69,0.105,-19,32,0.015,68,34,0.005,48,101,0.000,40,80,0.004,39,-93,0.003,50,118,0.001,12,25,0.011,-12,31,0.003,59,39,0.002,36,-94,0.013,35,57,0.002,30,-84,0.012,-8,-45,0.001,7,35,0.001,-17,29,0.004,54,33,0.006,7,-12,0.007,6,13,0.002,17,-98,0.017,-3,-65,0.000,-26,30,0.022,-27,-59,0.003,-13,-39,0.021,60,9,0.001,21,50,0.002,36,79,0.002,17,75,0.103,-6,-46,0.003,31,-116,0.001,42,109,0.001,-16,-53,0.000,21,-105,0.009,-20,-58,0.000,54,78,0.001,32,70,0.029,28,73,0.020,8,20,0.001,-16,26,0.003,55,36,0.005,31,30,0.069,42,-113,0.002,19,48,0.003,18,-87,0.001,-3,-48,0.004,65,27,0.000,43,87,0.007,45,128,0.041,18,28,0.001,52,-112,0.001,9,-76,0.002,46,-74,0.002,-11,-75,0.005,-14,41,0.009,-15,-70,0.006,57,37,0.003,52,-1,0.159,-10,-35,0.038,24,77,0.056,34,119,0.222,-24,-63,0.002,-28,-52,0.018,43,2,0.040,24,68,0.247,-9,32,0.011,0,74,0.001,13,94,0.001,-28,27,0.016,43,19,0.018,24,-77,0.001,23,104,0.055,38,-2,0.004,25,115,0.079,-38,177,0.004,61,16,0.001,49,126,0.008,-8,115,0.019,-42,173,0.001,-18,24,0.001,53,18,0.018,44,117,0.002,5,22,0.004,38,79,0.004,49,-68,0.001,48,137,0.000,14,122,0.374,63,13,0.001,36,47,0.021,35,12,0.002,11,126,0.016,26,-108,0.006,-11,30,0.005,39,24,0.002,50,9,0.113,27,82,0.184,29,99,0.002,6,-6,0.031,53,102,0.002,30,-9,0.035,6,41,0.006,17,-102,0.001,54,-112,0.000,64,42,0.000,-30,29,0.019,41,33,0.024,36,123,0.008,17,39,0.006,-3,-44,0.040,-25,152,0.001,-7,13,0.001,27,-99,0.015,45,-83,0.001,42,81,0.004,41,-78,0.006,-17,-48,0.018,51,28,0.006,32,42,0.003,-25,-69,0.002,22,-97,0.020,-16,46,0.001,-20,49,0.012,51,5,0.154,32,-103,0.002,-25,-70,0.001,19,28,0.001,-1,-47,0.005,-5,14,0.013,46,-121,0.000,42,22,0.053,18,32,0.001,33,10,0.008,-5,-65,0.001,-15,-42,0.009,22,108,0.046,0,128,0.010,52,43,0.005,13,36,0.004,-10,-39,0.002,24,113,0.058,56,87,0.005,33,-88,0.007,47,33,0.009,44,21,0.031,23,27,0.000,20,43,0.010,-4,33,0.030,44,-92,0.013,62,40,0.001,20,-102,0.037,35,108,0.059,15,33,0.097,14,4,0.006,10,7,0.013,47,131,0.025,61,52,0.004,38,-119,0.002,49,122,0.004,48,-65,0.001,29,3,0.001,-19,-41,0.013,53,6,0.012,49,7,0.069,48,14,0.029,44,81,0.011,40,129,0.032,38,107,0.041,35,-105,0.004,16,-1,0.002,53,-101,0.000,12,2,0.005,29,-95,0.119,59,46,0.001,40,24,0.009,61,77,0.000,35,40,0.013,11,122,0.002,40,-89,0.015,39,124,0.016,16,-99,0.017,50,13,0.067,-12,-51,0.000,27,110,0.075,41,95,0.002,3,40,0.004,2,129,0.002,39,141,0.035,-21,58,0.037,-21,-64,0.003,30,3,0.001,7,-68,0.001,-17,-58,0.001,-6,23,0.023,30,110,0.067,8,118,0.004,45,4,0.024,60,65,0.002,-35,146,0.001,32,79,0.000,-26,-59,0.002,8,5,0.055,3,99,0.164,55,59,0.003,51,56,0.023,32,-2,0.001,27,42,0.001,4,23,0.003,22,-101,0.020,-16,-46,0.002,21,96,0.085,-1,132,0.002,-39,-71,0.003,46,36,0.010,43,126,0.127,55,125,0.002,-2,16,0.002,-25,47,0.006,9,-85,0.002,43,143,0.020,42,-6,0.007,-11,38,0.004,57,96,0.000,37,41,0.023,28,78,0.677,-10,38,0.001,-14,-47,0.001,56,76,0.001,52,71,0.003,13,8,0.039,9,9,0.048,46,77,0.000,-14,-60,0.001,23,-82,0.072,-34,-65,0.002,0,19,0.003,47,21,0.022,19,100,0.033,34,-110,0.001,-23,-55,0.005,-24,32,0.003,58,55,0.003,35,136,0.060,34,33,0.004,15,21,0.001,10,43,0.005,-9,31,0.003,-9,117,0.095,-40,175,0.004,1,-79,0.001,38,-91,0.005,15,-90,0.026,49,22,0.030,25,44,0.005,2,33,0.034,1,34,0.044,26,106,0.106,25,-103,0.029,40,101,0.000,2,-76,0.025,36,40,0.024,50,79,0.001,12,30,0.006,40,-4,0.014,-52,-70,0.001,29,118,0.065,7,126,0.080,6,-57,0.004,40,-117,0.000,36,-122,0.002,54,70,0.011,53,141,0.001,50,49,0.002,30,48,0.034,26,59,0.003,6,50,0.000,3,20,0.017,2,101,0.010,-21,22,0.000,51,113,0.001,12,107,0.006,45,23,0.015,30,90,0.001,-37,-70,0.001,-27,33,0.022,45,-88,0.002,60,29,0.005,21,-98,0.030,32,51,0.022,28,46,0.001,8,41,0.028,55,63,0.003,51,68,0.001,-3,137,0.001,31,73,0.142,28,-99,0.001,9,105,0.012,27,70,0.046,-1,24,0.003,-2,-55,0.001,-5,-43,0.010,66,65,0.000,46,64,0.000,43,122,0.022,45,91,0.002,42,75,0.037,55,97,0.001,46,-113,0.001,-15,-67,0.000,57,76,0.000,37,61,0.004,33,66,0.006,28,106,0.128,9,24,0.002,-11,-47,0.001,-9,23,0.002,-4,121,0.015,56,16,0.006,37,-82,0.010,-4,-69,0.001,33,-81,0.014,44,62,0.000,46,121,0.005,43,-91,0.007,24,57,0.008,0,39,0.004,-5,145,0.003,13,121,0.018,1,111,0.022,15,104,0.066,11,37,0.023,14,46,0.014,25,106,0.068,-13,15,0.008,61,11,0.002,58,27,0.007,35,116,0.250,37,129,0.027,34,69,0.021,15,-7,0.002,14,76,0.112,11,-10,0.004,-8,144,0.001,-32,150,0.000,-19,-54,0.001,53,45,0.012,49,50,0.001,29,75,0.061,25,72,0.029,-33,-67,0.001,-19,31,0.012,48,102,0.001,-32,-68,0.017,40,73,0.087,39,-94,0.038,50,115,0.001,12,26,0.012,-12,32,0.002,59,38,0.012,36,-93,0.006,35,48,0.018,12,-87,0.009,30,-87,0.016,-8,-44,0.001,29,90,0.005,7,34,0.002,-36,149,0.001,54,34,0.003,30,28,0.002,6,14,0.004,-20,35,0.022,17,-99,0.026,-7,-61,0.000,-27,-56,0.007,60,10,0.001,21,49,0.002,18,85,0.037,36,80,0.005,17,46,0.001,-6,-49,0.003,42,110,0.001,-16,-52,0.002,-20,-57,0.001,54,83,0.007,32,71,0.060,31,-4,0.006,28,74,0.025,27,-15,0.007,8,13,0.012,-16,27,0.003,55,35,0.004,42,-112,0.003,19,47,0.003,65,30,0.000,43,86,0.003,45,127,0.167,18,25,0.001,52,-111,0.000,13,-86,0.024,-30,153,0.001,-18,-57,0.001,-15,-71,0.008,57,40,0.029,56,-3,0.024,52,0,0.059,24,78,0.052,34,120,0.156,-5,132,0.001,-24,-62,0.001,47,-116,0.004,43,1,0.013,-1,10,0.002,67,16,0.001,13,93,0.002,-28,28,0.007,43,18,0.026,23,103,0.043,-37,-60,0.003,0,-70,0.000,15,76,0.086,61,15,0.001,49,125,0.006,-8,116,0.001,29,-6,0.001,20,77,0.085,-18,21,0.000,53,17,0.013,29,15,0.000,44,118,0.003,5,21,0.004,38,80,0.003,48,138,0.000,63,28,0.003,40,45,0.082,36,48,0.012,35,11,0.044,12,54,0.001,11,125,0.048,26,-111,0.000,39,23,0.018,17,123,0.004,-55,-67,0.001,50,10,0.043,27,81,0.208,29,94,0.001,41,118,0.026,54,-130,0.001,53,101,0.001,30,-8,0.016,26,-13,0.001,6,42,0.002,-10,-68,0.002,54,-115,0.000,-21,-54,0.021,64,43,0.000,-30,30,0.010,41,36,0.022,17,42,0.001,-3,-45,0.008,-6,-77,0.004,-25,151,0.000,-7,16,0.006,45,-80,0.000,42,82,0.004,41,-79,0.008,3,118,0.005,51,27,0.010,32,43,0.003,8,49,0.002,-16,47,0.006,51,12,0.047,32,-102,0.003,45,142,0.002,19,27,0.001,6,-11,0.005,33,92,0.000,-5,13,0.016,-6,120,0.084,65,58,0.002,46,-120,0.007,42,3,0.020,18,29,0.001,33,9,0.002,-5,-66,0.000,-29,152,0.001,-15,-43,0.003,22,105,0.034,-20,-50,0.003,52,44,0.006,13,35,0.005,47,-113,0.000,-10,-38,0.007,24,114,0.067,56,88,0.002,33,-89,0.004,47,32,0.012,44,22,0.028,23,26,0.000,20,44,0.007,19,87,0.005,34,-85,0.015,-4,34,0.033,44,-91,0.008,62,37,0.000,20,-101,0.070,38,31,0.018,35,107,0.058,15,32,0.003,14,1,0.006,10,8,0.058,47,130,0.017,61,51,0.006,-33,20,0.001,-18,178,0.008,6,40,0.015,49,121,0.006,48,-64,0.001,29,-2,0.001,-13,-56,0.000,16,121,0.078,53,5,0.000,49,10,0.057,48,15,0.034,26,83,0.264,44,82,0.023,40,130,0.010,38,108,0.002,35,-106,0.022,16,0,0.003,12,3,0.007,29,-92,0.001,48,-113,0.000,59,45,0.001,40,17,0.022,35,39,0.025,11,121,0.001,-8,37,0.011,40,-88,0.012,39,123,0.063,16,-98,0.010,50,14,0.038,27,109,0.058,3,39,0.002,51,108,0.015,30,4,0.001,7,-69,0.002,3,-72,0.001,-17,-59,0.000,-6,24,0.012,30,115,0.274,23,95,0.012,45,3,0.006,-4,-40,0.018,17,6,0.000,-6,-57,0.000,28,19,0.000,-26,-58,0.006,8,6,0.020,3,98,0.012,55,58,0.003,51,55,0.003,32,-1,0.001,31,52,0.010,27,41,0.001,4,24,0.002,22,-100,0.022,-16,-45,0.001,21,95,0.036,-1,131,0.000,-3,-43,0.003,46,33,0.033,43,125,0.077,22,43,0.012,55,92,0.001,-2,13,0.001,-25,46,0.007,43,142,0.072,42,-9,0.002,57,95,0.000,19,-88,0.003,37,44,0.013,-2,128,0.001,10,104,0.007,28,79,0.266,-14,-46,0.002,56,69,0.001,37,-103,0.000,52,72,0.001,13,7,0.029,8,94,0.000,47,-77,0.000,9,12,0.030,46,78,0.000,43,-80,0.032,-11,125,0.003,-34,-64,0.004,0,20,0.003,37,-118,0.001,47,68,0.007,19,99,0.008,-8,143,0.001,-23,-52,0.007,-24,25,0.000,14,38,0.008,58,56,0.006,38,59,0.004,35,135,0.026,34,34,0.008,15,4,0.002,10,44,0.007,14,32,0.005,1,-76,0.011,38,-90,0.079,15,-91,0.051,49,21,0.037,25,43,0.005,2,34,0.018,1,33,0.016,16,77,0.068,-22,44,0.002,48,51,0.000,26,103,0.049,25,-100,0.109,36,41,0.045,-22,-69,0.001,50,80,0.001,12,31,0.008,7,172,0.001,5,126,0.006,-7,156,0.004,29,117,0.094,7,125,0.061,39,95,0.001,36,-121,0.019,54,75,0.003,50,50,0.001,30,45,0.004,26,60,0.003,3,19,0.004,2,102,0.035,12,108,0.014,-7,-70,0.000,45,18,0.012,-25,-65,0.022,36,101,0.002,-3,38,0.012,30,79,0.067,45,-89,0.004,60,30,0.017,-29,-60,0.001,21,-99,0.012,32,52,0.049,31,-105,0.000,28,47,0.002,8,42,0.017,55,62,0.050,51,67,0.001,-3,140,0.000,31,72,0.052,28,-98,0.001,27,69,0.071,42,-71,0.146,-1,23,0.004,-2,-54,0.001,43,121,0.012,45,86,0.003,42,76,0.008,22,71,0.080,56,-117,0.000,55,96,0.001,52,-122,0.001,13,-59,0.009,-25,18,0.000,5,12,0.007,46,-112,0.002,-11,-61,0.003,-15,-64,0.002,57,75,0.000,37,64,0.003,33,65,0.005,28,107,0.094,9,23,0.000,-11,-44,0.002,-18,-63,0.024,-15,13,0.001,56,41,0.027,37,-83,0.006,-4,-68,0.000,33,-78,0.005,44,63,0.001,46,122,0.009,43,-84,0.013,20,53,0.002,0,40,0.002,-5,152,0.002,13,124,0.081,43,53,0.002,1,114,0.001,34,-77,0.012,15,103,0.062,11,44,0.009,10,-83,0.010,-9,-47,0.001,25,105,0.081,-13,14,0.005,61,6,0.002,58,28,0.001,35,115,0.202,34,70,0.103,15,-8,0.003,49,100,0.000,11,-11,0.009,-32,151,0.002,-19,-55,0.001,53,48,0.005,49,49,0.001,29,70,0.016,25,71,0.022,-2,106,0.005,-19,26,0.001,48,103,0.000,40,74,0.014,39,-95,0.008,36,69,0.032,50,116,0.001,12,27,0.004,-7,135,0.001,11,104,0.003,-12,33,0.002,59,37,0.001,5,98,0.014,39,50,0.013,36,-92,0.003,35,47,0.022,12,-86,0.047,30,-86,0.008,-8,-51,0.000,29,89,0.003,7,33,0.004,-36,150,0.012,54,39,0.016,30,25,0.001,6,19,0.002,17,-96,0.026,-27,-57,0.003,60,11,0.013,21,52,0.002,36,81,0.003,17,45,0.002,-6,-48,0.004,42,123,0.041,-16,-59,0.001,-20,-56,0.001,52,85,0.003,54,84,0.026,-41,-63,0.001,32,72,0.053,31,-5,0.008,28,75,0.034,8,14,0.004,-16,28,0.006,55,34,0.004,31,44,0.007,19,46,0.003,18,-89,0.003,33,127,0.018,-5,56,0.003,-36,148,0.002,65,29,0.000,43,85,0.004,45,122,0.013,18,26,0.001,6,7,0.101,52,-110,0.001,13,-87,0.029,46,-68,0.001,-11,-73,0.000,-14,39,0.009,-15,-68,0.001,57,39,0.013,56,-2,0.010,52,1,0.032,24,79,0.068,34,117,0.250,33,-114,0.001,-24,-61,0.000,47,-117,0.014,43,8,0.036,19,122,0.001,67,15,0.001,43,17,0.017,58,-3,0.001,-37,-61,0.002,15,75,0.086,47,93,0.000,62,-7,0.000,61,42,0.001,-46,170,0.001,49,128,0.004,-8,109,0.187,29,-7,0.001,20,78,0.090,-18,22,0.000,53,20,0.017,48,-4,0.018,29,42,0.001,44,119,0.006,5,24,0.001,38,77,0.014,48,139,0.000,63,27,0.001,40,46,0.019,39,5,0.001,36,49,0.016,35,10,0.023,-19,147,0.000,12,55,0.000,39,22,0.011,50,7,0.081,27,88,0.025,29,93,0.002,41,117,0.015,53,104,0.005,26,-12,0.001,-9,143,0.001,17,-100,0.008,54,-114,0.000,-30,27,0.021,41,35,0.012,36,109,0.013,32,117,0.193,-6,-76,0.002,-7,15,0.004,42,79,0.006,41,-76,0.010,3,117,0.001,21,-75,0.002,51,26,0.009,32,44,0.003,8,50,0.002,4,45,0.003,22,-99,0.008,-16,48,0.005,51,11,0.038,32,-101,0.002,8,-63,0.007,19,26,0.001,-1,-49,0.001,33,91,0.000,-5,20,0.017,46,-123,0.004,42,4,0.004,57,86,0.002,18,30,0.001,33,12,0.003,6,0,0.041,-29,151,0.000,-15,-40,0.015,22,106,0.023,37,-8,0.010,52,29,0.006,13,30,0.007,47,-114,0.001,46,103,0.001,24,115,0.050,33,-86,0.033,47,31,0.008,44,23,0.024,19,86,0.035,34,-84,0.027,-4,35,0.016,44,-90,0.004,62,38,0.000,20,-100,0.071,38,32,0.017,35,106,0.062,15,31,0.001,14,2,0.010,10,5,0.010,47,129,0.016,61,46,0.001,-33,19,0.002,49,124,0.003,11,-83,0.001,48,-55,0.001,29,-3,0.001,16,122,0.043,53,8,0.024,49,9,0.132,48,16,0.018,26,84,0.349,44,83,0.005,5,-4,0.077,38,105,0.001,35,-107,0.001,16,9,0.000,12,4,0.019,29,-93,0.004,-37,141,0.000,59,52,0.001,40,18,0.041,-20,-43,0.087,35,38,0.060,16,16,0.001,-8,38,0.014,40,-95,0.003,39,122,0.079,16,-97,0.011,50,43,0.003,27,116,0.078,3,38,0.001,-1,103,0.013,-21,32,0.014,51,107,0.002,30,1,0.000,7,-70,0.003,3,-73,0.007,-13,-38,0.128,-6,21,0.008,-35,-62,0.003,30,116,0.164,-35,148,0.001,17,5,0.000,-6,-56,0.001,-26,-53,0.014,8,7,0.017,41,-112,0.005,3,97,0.004,55,57,0.003,52,125,0.002,51,54,0.002,32,0,0.001,31,51,0.014,27,48,0.002,4,25,0.001,22,-103,0.005,-16,-44,0.005,21,106,0.234,-39,-69,0.003,31,100,0.002,46,34,0.012,43,132,0.020,22,44,0.006,55,91,0.002,-2,14,0.002,-25,45,0.005,-10,153,0.000,43,141,0.004,42,-8,0.044,19,-89,0.003,37,43,0.017,-2,125,0.001,28,80,0.243,-14,-49,0.002,56,70,0.004,37,-100,0.003,52,73,0.001,-12,-66,0.001,13,2,0.013,9,11,0.014,46,83,0.002,43,-81,0.008,-14,-62,0.000,-34,-67,0.001,0,13,0.001,37,-119,0.002,-23,46,0.002,-30,-49,0.004,23,29,0.000,19,98,0.009,34,-112,0.003,-36,-60,0.003,-23,-53,0.003,-24,26,0.004,-43,-64,0.001,62,50,0.001,58,53,0.006,38,60,0.002,35,134,0.025,37,95,0.000,15,3,0.001,11,0,0.027,10,41,0.013,-9,29,0.003,5,-70,0.001,-10,162,0.002,1,-77,0.031,38,-85,0.039,49,24,0.044,2,31,0.046,1,36,0.017,16,78,0.089,48,52,0.001,26,104,0.081,25,-101,0.009,2,-78,0.002,36,42,0.035,-22,-68,0.001,50,77,0.000,12,32,0.009,-42,-73,0.005,-12,22,0.001,59,16,0.008,5,125,0.001,36,-7,0.000,29,120,0.105,7,124,0.032,40,-123,0.001,39,94,0.001,36,-120,0.004,54,76,0.002,53,143,0.001,50,47,0.002,30,46,0.004,26,57,0.001,3,18,0.002,2,99,0.033,17,-61,0.002,-21,28,0.005,12,77,0.165,64,-147,0.002,45,17,0.018,6,103,0.024,57,12,0.012,36,102,0.056,-21,165,0.001,-3,37,0.005,30,80,0.017,45,-94,0.008,60,31,0.020,32,45,0.043,31,-106,0.058,28,48,0.006,8,43,0.007,-16,33,0.003,55,61,0.010,51,66,0.001,-3,139,0.000,31,71,0.038,28,-97,0.004,9,107,0.049,27,76,0.109,42,-70,0.029,-1,22,0.004,-5,-37,0.007,66,63,0.001,46,62,0.001,43,96,0.001,45,85,0.002,42,73,0.004,22,72,0.066,18,51,0.001,55,95,0.003,-29,-50,0.006,-15,-65,0.000,57,62,0.010,56,-5,0.001,37,63,0.006,33,68,0.011,28,108,0.066,9,26,0.000,-11,-45,0.001,-15,16,0.005,56,42,0.017,37,-80,0.011,33,-79,0.007,44,64,0.000,43,-85,0.012,20,54,0.002,-23,26,0.001,13,123,0.028,47,55,0.001,43,60,0.003,20,-155,0.000,1,113,0.002,38,-27,0.002,37,142,0.001,34,-76,0.003,15,102,0.034,11,43,0.010,-9,-48,0.002,25,108,0.034,58,25,0.004,35,114,0.210,37,131,0.000,34,67,0.007,15,-9,0.006,49,99,0.000,11,-4,0.025,-9,112,0.069,-32,152,0.001,-19,-52,0.001,53,47,0.008,49,52,0.001,48,1,0.016,29,69,0.007,25,74,0.053,-19,25,0.000,48,104,0.000,-12,-77,0.058,40,75,0.003,39,-96,0.005,36,70,0.022,-19,170,0.001,50,113,0.001,12,28,0.005,11,103,0.002,-12,34,0.015,59,44,0.001,5,97,0.021,39,49,0.025,36,-107,0.001,35,46,0.026,12,-85,0.017,30,-97,0.033,-8,-50,0.002,29,92,0.012,7,32,0.006,8,100,0.046,54,40,0.025,6,20,0.003,-31,152,0.001,17,-97,0.011,-26,33,0.043,8,105,0.007,60,12,0.005,41,58,0.003,21,51,0.002,18,83,0.045,36,82,0.002,17,48,0.001,-6,-51,0.000,42,124,0.143,-16,-58,0.003,-20,-55,0.001,52,86,0.011,54,81,0.001,31,-6,0.013,28,76,0.080,27,-9,0.000,8,15,0.003,-16,21,0.000,55,33,0.003,31,43,0.003,42,-114,0.003,19,45,0.004,18,-88,0.005,33,130,0.024,43,92,0.001,45,121,0.006,-4,153,0.001,52,-109,0.000,13,-84,0.002,46,-71,0.029,-14,40,0.014,-15,-69,0.003,57,42,0.012,0,103,0.005,52,2,0.032,24,80,0.053,-9,18,0.004,34,118,0.266,33,-115,0.001,-5,130,0.001,47,-118,0.000,43,7,0.023,-13,-47,0.001,-24,-45,0.036,43,24,0.019,23,101,0.020,38,1,0.003,15,74,0.037,47,108,0.009,62,-6,0.001,61,41,0.001,-4,102,0.003,49,127,0.007,-8,110,0.273,29,-4,0.000,20,79,0.071,-18,27,0.004,53,19,0.038,-3,106,0.009,29,41,0.001,44,120,0.011,5,23,0.001,38,78,0.017,-22,-159,0.000,48,140,0.000,29,-102,0.002,63,26,0.001,40,47,0.029,39,4,0.005,36,50,0.018,35,9,0.017,16,53,0.000,39,21,0.014,50,8,0.090,27,87,0.033,29,96,0.000,-22,-45,0.021,41,120,0.047,3,73,0.000,53,103,0.003,-35,-71,0.012,-25,-56,0.008,17,-101,0.004,-21,-44,0.026,8,77,0.110,-30,28,0.026,41,22,0.024,-29,-59,0.005,36,110,0.022,17,44,0.012,32,118,0.151,-6,-79,0.011,-7,18,0.006,42,80,0.002,41,-77,0.006,51,25,0.011,32,37,0.040,4,46,0.004,22,-98,0.013,51,10,0.047,32,-100,0.002,-38,178,0.000,8,-62,0.023,19,25,0.001,-1,-50,0.001,33,94,0.000,-5,19,0.026,5,1,0.010,46,-122,0.007,42,1,0.003,57,85,0.001,33,11,0.009,-5,-60,0.001,-30,150,0.000,-18,-52,0.002,-15,-41,0.007,22,79,0.058,52,30,0.012,13,29,0.004,47,-115,0.000,46,104,0.001,24,116,0.090,-14,-69,0.001,33,-87,0.011,47,30,0.017,44,24,0.030,19,85,0.094,34,-87,0.010,-4,36,0.013,14,44,0.052,44,-89,0.009,62,43,0.000,38,29,0.038,35,105,0.052,15,30,0.001,14,-9,0.004,10,6,0.014,47,128,0.030,61,45,0.001,-33,18,0.001,38,-112,0.001,34,11,0.017,49,123,0.003,48,-54,0.001,29,0,0.000,22,-12,0.001,16,123,0.003,53,7,0.026,49,12,0.054,48,25,0.029,26,81,0.330,44,84,0.003,5,-5,0.020,38,106,0.012,35,-100,0.001,16,10,0.000,53,-104,0.000,12,5,0.039,29,-98,0.052,59,51,0.001,40,19,0.021,35,37,0.087,16,25,0.001,-8,39,0.011,26,-77,0.001,-32,29,0.029,40,-94,0.002,-17,-47,0.012,16,-96,0.016,50,44,0.005,27,115,0.089,3,37,0.001,2,128,0.000,-21,31,0.015,51,106,0.001,50,-101,0.001,30,2,0.000,7,-71,0.006,3,-74,0.049,-6,22,0.008,30,113,0.153,-35,147,0.001,17,8,0.000,-26,-52,0.008,8,8,0.017,55,56,0.005,52,126,0.001,51,53,0.002,32,9,0.003,31,50,0.020,27,47,0.002,4,26,0.001,22,-102,0.023,-16,-51,0.001,21,105,0.031,-1,129,0.000,-36,139,0.011,31,99,0.002,46,23,0.010,43,131,0.009,22,41,0.009,55,90,0.004,-2,19,0.004,-25,44,0.001,57,97,0.001,19,-90,0.008,37,38,0.034,-10,-76,0.015,-2,126,0.001,28,81,0.097,-14,-48,0.002,-34,19,0.062,56,71,0.001,37,-101,0.001,34,107,0.049,52,74,0.001,-44,-64,0.001,13,1,0.008,47,-79,0.001,9,-2,0.007,46,84,0.006,43,-82,0.004,-34,-66,0.003,-22,167,0.000,0,14,0.001,-23,45,0.003,43,63,0.000,19,97,0.027,34,-115,0.000,-24,27,0.003,-43,-65,0.002,58,54,0.002,38,57,0.004,35,133,0.012,37,106,0.021,15,2,0.001,11,-1,0.013,10,42,0.005,5,-71,0.001,1,-74,0.001,38,-84,0.018,49,23,0.020,-28,-49,0.012,2,32,0.017,1,35,0.042,16,79,0.061,48,45,0.051,26,101,0.033,36,43,0.017,12,33,0.015,-42,-72,0.005,-21,-49,0.022,-12,23,0.001,59,15,0.005,39,76,0.016,36,-6,0.022,-7,142,0.001,29,119,0.059,7,123,0.029,6,-58,0.012,40,-122,0.006,36,-119,0.038,54,73,0.003,50,48,0.002,30,51,0.013,26,58,0.006,7,12,0.005,3,17,0.002,2,100,0.059,8,82,0.013,-21,27,0.001,50,-97,0.001,12,78,0.133,45,20,0.027,36,103,0.046,-3,40,0.001,30,77,0.211,-27,30,0.014,45,-95,0.003,60,32,0.000,21,-97,0.009,32,46,0.016,31,-107,0.001,28,49,0.004,8,44,0.005,-16,34,0.004,55,28,0.005,51,65,0.001,-3,134,0.001,31,70,0.008,28,-96,0.003,27,75,0.057,42,-73,0.033,18,-63,0.003,-1,21,0.004,-5,-38,0.018,66,64,0.001,43,95,0.001,45,88,0.003,42,74,0.007,22,69,0.001,18,52,0.000,55,94,0.001,46,-114,0.003,-11,-67,0.002,-28,152,0.004,-15,-62,0.001,57,61,0.013,56,-4,0.003,52,-9,0.006,33,67,0.006,28,109,0.067,9,25,0.002,-11,-50,0.000,-15,15,0.005,56,43,0.007,37,-81,0.011,34,79,0.000,44,65,0.001,-52,-69,0.001,43,-86,0.009,-9,36,0.011,20,55,0.002,-30,-55,0.003,47,54,0.001,43,59,0.002,-12,21,0.001,37,141,0.067,34,-79,0.015,15,101,0.050,11,42,0.003,10,-69,0.037,-9,-49,0.002,25,107,0.038,-13,20,0.001,61,8,0.001,58,26,0.004,35,113,0.108,37,126,0.010,34,68,0.009,15,-10,0.004,49,102,0.000,11,-5,0.016,14,33,0.031,-19,-53,0.001,53,58,0.001,49,51,0.000,48,2,0.033,29,72,0.128,44,125,0.045,25,73,0.039,-19,28,0.003,48,81,0.001,-12,-76,0.029,40,76,0.001,39,-97,0.001,36,71,0.007,50,114,0.001,-38,147,0.001,-12,35,0.009,59,43,0.001,39,48,0.020,36,-106,0.001,35,45,0.029,12,-84,0.005,30,-96,0.008,-8,-49,0.003,29,91,0.004,14,79,0.074,7,31,0.006,-17,41,0.001,54,37,0.018,53,110,0.001,30,15,0.001,-22,-43,0.029,6,17,0.004,17,-94,0.016,-26,34,0.008,8,106,0.007,41,57,0.001,21,46,0.004,18,84,0.120,36,83,0.001,17,47,0.001,-6,-50,0.003,42,121,0.024,-16,-57,0.002,-20,-54,0.001,52,87,0.001,54,82,0.002,31,-7,0.025,27,-10,0.001,8,16,0.014,-16,22,0.001,55,32,0.002,31,42,0.002,-2,-49,0.004,19,52,0.002,18,-91,0.002,-29,32,0.027,43,91,0.002,45,124,0.024,52,-108,0.001,13,-85,0.012,5,7,0.113,46,-70,0.005,-14,37,0.001,57,41,0.020,0,104,0.008,-43,148,0.007,24,105,0.042,34,115,0.242,33,-112,0.049,47,-119,0.002,44,29,0.023,43,6,0.076,23,-13,0.000,-36,-69,0.000,-24,-44,0.003,43,23,0.025,24,-81,0.002,23,100,0.025,20,-78,0.001,38,2,0.002,0,-75,0.002,47,107,0.007,61,44,0.001,35,141,0.144,-4,103,0.044,49,130,0.003,48,-89,0.004,29,-5,0.001,20,80,0.062,-18,28,0.005,53,14,0.016,29,44,0.001,44,121,0.006,5,34,0.002,38,83,0.001,48,133,0.004,63,25,0.001,40,48,0.027,39,3,0.016,36,51,0.031,35,0,0.057,16,54,0.001,26,-112,0.000,59,7,0.001,39,20,0.004,17,96,0.090,50,5,0.121,27,86,0.120,29,95,0.001,41,119,0.039,54,-127,0.000,53,82,0.003,30,-5,0.006,-21,-45,0.011,8,78,0.187,-30,25,0.002,41,21,0.030,36,111,0.020,17,43,0.016,32,119,0.169,-6,-78,0.013,-7,17,0.006,42,77,0.006,41,-90,0.015,51,16,0.027,32,38,0.005,4,47,0.002,51,9,0.057,32,-107,0.001,8,-61,0.001,45,143,0.000,-1,-51,0.002,33,93,0.000,-5,18,0.010,46,-117,0.003,42,2,0.008,-34,149,0.001,6,12,0.010,-44,-71,0.001,-5,-61,0.000,22,80,0.058,52,31,0.020,13,32,0.011,47,-100,0.000,-10,-67,0.002,24,109,0.055,20,-16,0.001,56,83,0.000,33,-84,0.094,47,29,0.045,44,25,0.030,34,-86,0.021,-4,37,0.025,44,-88,0.019,62,44,0.000,38,30,0.022,35,96,0.000,15,29,0.001,14,-8,0.003,10,-13,0.014,47,127,0.045,-9,121,0.022,61,48,0.002,34,12,0.001,49,30,0.012,48,-53,0.001,29,-1,0.001,-13,-59,0.000,-19,-45,0.002,6,123,0.009,49,11,0.043,48,26,0.034,26,82,0.234,44,85,0.008,40,125,0.068,38,111,0.028,35,-101,0.008,53,-105,0.002,12,6,0.030,29,-99,0.002,59,50,0.001,40,20,0.025,-11,150,0.001,35,44,0.023,16,26,0.001,-8,40,0.017,-32,30,0.024,40,-93,0.002,39,120,0.031,50,41,0.007,27,114,0.154,26,35,0.001,3,44,0.008,-21,30,0.008,51,105,0.001,50,-100,0.000,23,81,0.079,7,-72,0.041,3,-75,0.018,-6,35,0.009,30,114,0.208,18,81,0.017,45,0,0.017,17,7,0.000,-26,-55,0.009,8,1,0.014,41,-110,0.001,55,55,0.006,52,127,0.000,51,60,0.002,32,10,0.002,31,49,0.033,28,5,0.000,27,46,0.002,4,27,0.001,-16,-50,0.003,21,108,0.029,-1,128,0.003,31,98,0.003,46,24,0.031,43,130,0.025,-4,144,0.001,22,42,0.013,55,89,0.001,-2,20,0.003,46,-89,0.001,57,100,0.000,37,37,0.034,-2,131,0.000,28,82,0.062,-9,27,0.007,-34,20,0.010,56,72,0.001,37,-106,0.001,34,108,0.095,52,75,0.001,13,4,0.016,9,-3,0.004,46,81,0.001,43,-83,0.023,-34,-61,0.008,0,15,0.000,-23,48,0.015,13,145,0.005,43,62,0.001,23,59,0.022,34,-114,0.002,-24,28,0.002,-42,146,0.001,44,-124,0.001,38,58,0.002,35,140,0.951,37,105,0.013,15,1,0.002,11,-2,0.013,10,39,0.048,1,-75,0.010,38,-87,0.009,49,26,0.027,14,19,0.002,2,29,0.006,1,38,0.001,16,80,0.076,48,46,0.002,26,102,0.043,40,97,0.002,36,44,0.017,38,139,0.002,-22,-70,0.001,50,107,0.001,12,34,0.005,-12,24,0.001,59,14,0.005,40,-8,0.038,39,75,0.001,36,-5,0.023,35,72,0.019,-7,141,0.001,29,114,0.120,7,122,0.003,40,-121,0.001,36,-118,0.001,54,74,0.025,50,45,0.003,30,52,0.011,26,55,0.001,7,11,0.013,2,97,0.001,-20,31,0.010,-21,26,0.001,-3,-78,0.019,50,-96,0.002,12,79,0.147,-7,-69,0.000,45,19,0.018,6,101,0.051,18,109,0.012,36,104,0.075,-3,39,0.005,-35,-67,0.001,30,78,0.113,-27,29,0.099,45,-92,0.008,60,33,0.001,21,-86,0.003,32,47,0.010,31,-92,0.007,8,37,0.029,-16,35,0.023,55,27,0.010,-3,133,0.002,31,69,0.005,28,-95,0.001,9,93,0.002,27,74,0.038,42,-72,0.032,-1,36,0.068,-5,-39,0.007,66,61,0.000,5,-6,0.025,43,94,0.001,45,87,0.002,42,71,0.007,22,70,0.031,18,49,0.002,55,93,0.009,-11,-64,0.001,-15,-63,0.001,57,64,0.004,37,73,0.002,52,-8,0.011,33,70,0.025,28,110,0.067,9,28,0.004,-11,-51,0.001,-15,18,0.001,56,44,0.066,34,80,0.000,-4,-65,0.000,44,66,0.006,46,109,0.001,43,-87,0.024,24,53,0.000,20,56,0.000,-20,147,0.005,-23,28,0.002,47,53,0.002,-47,-68,0.000,1,115,0.001,34,-78,0.008,14,-83,0.002,11,41,0.011,10,-68,0.039,-9,-50,0.001,25,94,0.035,-13,19,0.004,61,7,0.001,58,23,0.001,37,125,0.001,34,65,0.002,15,-11,0.003,49,101,0.000,11,-6,0.012,-19,-58,0.000,53,57,0.014,49,54,0.001,48,3,0.336,29,71,0.065,44,126,0.085,25,76,0.064,-19,27,0.002,48,82,0.001,-12,-59,0.001,40,69,0.039,39,-98,0.001,36,72,0.004,50,111,0.000,-7,140,0.001,-12,36,0.005,59,42,0.001,39,47,0.015,36,-105,0.001,35,52,0.326,30,-99,0.002,-8,-48,0.004,29,86,0.000,7,30,0.006,-17,40,0.015,54,38,0.038,30,16,0.000,6,18,0.004,17,-95,0.010,64,19,0.000,41,60,0.009,21,45,0.004,57,-1,0.001,-6,-37,0.014,42,122,0.051,4,-75,0.077,-16,-56,0.016,-20,-53,0.001,52,88,0.001,54,87,0.021,31,-8,0.046,27,-11,0.001,-16,23,0.003,55,31,0.014,31,41,0.001,19,51,0.002,18,-90,0.003,33,132,0.046,66,33,0.000,-29,31,0.020,43,90,0.004,45,123,0.030,42,43,0.027,4,114,0.002,13,-90,0.005,46,-81,0.003,-14,38,0.002,57,44,0.002,0,113,0.004,24,106,0.028,34,116,0.255,33,-113,0.000,-5,136,0.000,47,-120,0.003,43,5,0.028,23,-14,0.000,19,111,0.075,-24,-51,0.044,44,-83,0.002,43,22,0.033,58,12,0.005,20,-77,0.016,-37,-56,0.002,0,-74,0.001,47,106,0.000,61,43,0.001,-4,104,0.028,49,129,0.002,-8,112,0.252,29,-10,0.002,20,81,0.040,-18,25,0.003,53,13,0.013,29,43,0.000,44,122,0.011,5,33,0.003,-28,-59,0.009,48,134,0.002,29,-100,0.002,63,24,0.003,40,41,0.024,39,2,0.001,36,52,0.033,35,-1,0.012,59,6,0.005,39,19,0.005,17,95,0.020,54,-9,0.001,50,6,0.072,27,85,0.097,41,122,0.084,53,81,0.002,30,-4,0.002,54,-111,0.000,23,99,0.014,-30,26,0.001,41,24,0.015,36,112,0.084,32,120,0.268,-6,-81,0.001,-7,20,0.007,42,78,0.002,41,-91,0.011,51,15,0.035,32,39,0.001,8,45,0.006,4,48,0.002,-3,-39,0.000,51,0,0.322,32,-106,0.005,-29,-70,0.002,-38,142,0.000,-5,17,0.008,46,-116,0.002,42,-1,0.017,57,87,0.000,-2,120,0.008,-5,-62,0.000,-15,-39,0.030,22,77,0.081,52,32,0.015,13,31,0.011,47,-101,0.001,46,102,0.000,24,110,0.091,-14,-71,0.016,20,-15,0.001,56,84,0.001,-3,147,0.001,33,-85,0.011,47,44,0.002,44,26,0.040,34,-89,0.007,-4,38,0.041,44,-87,0.007,62,41,0.001,38,35,0.018,35,95,0.000,-27,153,0.004,15,44,0.060,49,144,0.001,10,-12,0.016,47,126,0.038,61,47,0.003,34,9,0.014,15,-83,0.001,49,29,0.028,-19,-50,0.004,-3,101,0.001,48,27,0.027,26,79,0.135,44,86,0.014,40,126,0.021,38,112,0.029,35,-102,0.001,12,7,0.034,29,-96,0.004,59,49,0.001,35,43,0.015,16,27,0.001,-8,33,0.003,14,98,0.001,-31,-70,0.003,-32,31,0.001,40,-92,0.003,39,119,0.149,16,-86,0.001,50,42,0.006,27,113,0.182,-22,-48,0.030,41,86,0.007,3,43,0.003,2,126,0.002,-54,-68,0.001,-21,29,0.074,50,-103,0.001,-35,-72,0.000,45,42,0.021,7,-73,0.040,-6,36,0.014,45,-1,0.003,41,-124,0.001,-29,-64,0.004,-35,141,0.001,17,10,0.000,32,92,0.000,-26,-54,0.025,8,2,0.011,41,-111,0.011,55,54,0.004,52,128,0.001,51,59,0.016,32,11,0.001,31,48,0.015,28,6,0.000,27,45,0.002,4,28,0.002,-16,-49,0.008,21,107,0.109,18,-69,0.082,-20,18,0.001,31,97,0.002,46,21,0.024,43,129,0.012,55,88,0.001,-2,17,0.002,-8,-79,0.010,5,0,0.126,46,-88,0.001,43,146,0.002,37,40,0.022,-39,142,0.001,-2,132,0.003,28,83,0.033,-10,15,0.006,-14,-50,0.001,-18,-67,0.008,56,65,0.002,37,-107,0.001,34,105,0.038,52,76,0.001,13,3,0.019,9,0,0.020,46,82,0.001,43,-76,0.020,-14,-67,0.000,-34,-60,0.043,0,16,0.001,37,-122,0.126,-23,47,0.004,43,61,0.001,23,58,0.013,-23,-64,0.003,44,-123,0.018,58,68,0.000,38,63,0.003,35,139,0.091,37,108,0.011,15,0,0.001,11,-3,0.014,10,40,0.050,1,-72,0.000,38,-86,0.007,49,25,0.041,-2,102,0.016,2,30,0.006,1,37,0.003,48,47,0.003,26,115,0.067,40,98,0.004,36,29,0.008,38,140,0.016,50,108,0.002,12,35,0.010,-12,25,0.004,59,13,0.003,39,74,0.002,36,-4,0.035,35,71,0.004,-7,144,0.005,29,113,0.158,40,-120,0.001,54,47,0.007,50,46,0.008,30,49,0.029,26,56,0.003,7,10,0.032,2,98,0.006,-21,25,0.000,-3,-79,0.040,50,-99,0.001,12,80,0.181,45,14,0.031,6,102,0.049,18,110,0.047,36,105,0.033,-3,34,0.036,-27,32,0.018,45,-93,0.035,42,131,0.016,60,34,0.002,21,-87,0.003,32,48,0.009,-17,-42,0.005,31,-93,0.004,28,51,0.002,8,38,0.046,-16,36,0.075,55,26,0.007,31,20,0.001,27,73,0.015,42,-75,0.012,4,-8,0.002,18,-65,0.023,-1,35,0.116,-36,144,0.001,66,62,0.000,43,93,0.001,45,82,0.002,42,72,0.016,22,75,0.090,18,50,0.001,6,3,0.087,9,-66,0.005,-10,124,0.002,-11,-65,0.001,-15,-60,0.000,57,63,0.002,37,76,0.000,52,-7,0.009,33,69,0.053,28,111,0.055,9,27,0.003,-11,-48,0.007,-33,148,0.000,-15,17,0.003,56,37,0.015,34,77,0.003,-4,-64,0.001,44,67,0.001,43,-112,0.003,24,54,0.001,-23,27,0.002,1,118,0.001,34,-81,0.018,11,16,0.007,10,-71,0.072,25,93,0.041,-13,18,0.007,-32,116,0.023,58,24,0.001,37,128,0.330,34,66,0.004,49,104,0.000,11,-7,0.009,10,76,0.022,-19,-59,0.001,53,60,0.012,49,53,0.001,48,4,0.014,29,66,0.001,44,127,0.081,25,75,0.067,-19,22,0.001,48,83,0.001,-12,-58,0.000,-32,-63,0.006,40,70,0.051,39,-99,0.001,36,73,0.008,50,112,0.001,-7,139,0.001,11,108,0.044,59,41,0.003,39,46,0.016,36,-104,0.000,35,51,0.043,30,-98,0.004,29,85,0.000,7,29,0.005,-17,39,0.006,54,43,0.004,30,13,0.001,-9,147,0.001,6,23,0.001,8,79,0.020,17,-92,0.028,64,20,0.001,-13,-48,0.001,41,59,0.004,21,48,0.004,18,82,0.026,17,49,0.000,-6,-36,0.007,-44,173,0.013,42,119,0.035,4,-74,0.208,-20,-52,0.001,52,89,0.001,54,88,0.001,31,-9,0.018,-16,24,0.005,55,30,0.007,31,40,0.000,19,50,0.002,18,-93,0.019,-3,-49,0.006,33,131,0.198,-29,30,0.013,43,89,0.006,45,118,0.001,42,44,0.013,4,115,0.014,13,-91,0.001,46,-80,0.003,-28,-65,0.011,-14,35,0.017,57,43,0.007,0,114,0.001,52,21,0.054,24,107,0.027,34,113,0.219,33,-110,0.001,-24,-65,0.003,47,-121,0.004,43,12,0.055,23,-15,0.000,19,110,0.061,-24,-50,0.014,-30,-58,0.002,43,21,0.034,-28,-60,0.004,23,98,0.014,20,-76,0.046,-37,-57,0.002,11,76,0.160,47,105,0.000,-13,46,0.004,61,38,0.001,-4,105,0.069,49,132,0.000,-42,174,0.003,20,82,0.062,-18,26,0.005,53,16,0.012,29,38,0.000,44,123,0.014,5,36,0.002,38,81,0.005,48,135,0.002,29,-101,0.001,63,23,0.002,40,42,0.012,39,1,0.000,-20,-47,0.007,35,-2,0.007,39,18,0.004,17,98,0.023,54,-8,0.003,50,3,0.055,27,92,0.016,41,121,0.068,53,84,0.028,30,-7,0.011,41,10,0.003,54,-110,0.001,-35,-58,0.419,64,40,0.008,-30,23,0.001,41,23,0.015,36,113,0.046,32,129,0.002,-6,-80,0.018,-7,19,0.004,42,91,0.001,41,-88,0.049,52,117,0.001,51,14,0.047,32,40,0.003,8,46,0.004,51,-1,0.051,32,-105,0.001,8,-67,0.003,-2,-44,0.002,33,95,0.000,-5,24,0.004,65,61,0.000,46,-119,0.007,42,0,0.004,-1,-52,0.000,-2,117,0.019,-5,-63,0.000,22,78,0.052,52,33,0.010,13,26,0.009,-10,-61,0.001,24,111,0.060,-14,-70,0.001,56,77,0.001,-20,170,0.000,47,43,0.010,44,27,0.102,20,33,0.001,34,-88,0.008,-4,39,0.007,47,-4,0.004,44,-86,0.001,62,42,0.001,38,36,0.020,15,43,0.007,49,143,0.002,47,125,0.036,61,74,0.010,-34,150,0.003,38,-109,0.000,34,10,0.018,49,32,0.018,-19,-51,0.002,-22,49,0.004,48,28,0.021,26,80,0.160,44,87,0.020,40,127,0.022,38,109,0.003,35,-103,0.000,16,5,0.000,12,8,0.071,-42,-65,0.000,29,-97,0.006,-36,-68,0.001,59,56,0.001,40,14,0.002,35,42,0.018,16,28,0.001,-8,34,0.004,26,-78,0.002,-31,-71,0.007,40,-99,0.002,39,118,0.296,50,39,0.009,-12,-50,0.000,27,120,0.063,26,33,0.064,41,85,0.002,3,42,0.005,51,95,0.004,-21,-65,0.002,50,-102,0.001,45,41,0.018,7,-74,0.007,-6,33,0.005,17,9,0.000,28,24,0.001,8,3,0.010,55,53,0.027,51,58,0.004,32,12,0.009,31,47,0.019,28,7,0.000,27,52,0.001,4,13,0.005,-16,-48,0.021,21,102,0.008,18,-68,0.010,-20,19,0.001,31,96,0.002,46,22,0.024,55,87,0.023,-10,-66,0.000,-2,18,0.004,46,-91,0.001,43,145,0.012,-11,37,0.005,57,54,0.004,37,39,0.023,-17,-50,0.004,28,84,0.038,-10,16,0.006,-34,18,0.000,56,66,0.003,37,-104,0.001,34,106,0.067,52,61,0.002,13,-2,0.022,9,-1,0.007,46,135,0.001,43,-77,0.029,-14,-66,0.000,-34,-63,0.003,0,25,0.007,-38,-56,0.001,47,63,0.000,43,68,0.001,23,57,0.005,-22,150,0.003,15,110,0.001,-23,-65,0.002,44,-122,0.007,58,65,0.000,38,64,0.003,35,138,0.081,37,107,0.022,15,-1,0.002,11,4,0.013,10,37,0.023,-9,116,0.092,-40,176,0.002,5,-74,0.021,1,-73,0.001,38,-81,0.013,49,28,0.018,25,34,0.000,2,27,0.003,1,40,0.002,48,48,0.000,26,116,0.072,40,99,0.005,36,30,0.015,35,-75,0.001,50,105,0.001,12,36,0.003,-12,26,0.006,62,114,0.001,-32,-51,0.001,39,73,0.003,35,70,0.022,-7,143,0.002,30,-105,0.000,29,116,0.103,36,-116,0.000,54,48,0.005,50,75,0.001,30,50,0.014,7,9,0.042,50,-98,0.000,12,81,0.068,-27,-70,0.001,45,13,0.061,8,125,0.059,36,106,0.028,-3,33,0.033,-7,-34,0.001,-37,-71,0.009,-27,31,0.010,45,-98,0.001,42,132,0.005,60,35,0.001,21,-84,0.001,32,57,0.001,31,-94,0.006,28,52,0.006,8,39,0.082,-16,29,0.040,55,25,0.012,-3,135,0.000,42,-74,0.007,4,-7,0.006,18,-64,0.003,-1,34,0.000,45,81,0.002,42,69,0.003,22,76,0.106,56,-120,0.001,18,47,0.001,-35,118,0.000,13,-60,0.003,14,-11,0.007,9,-67,0.015,46,-111,0.001,-11,-54,0.001,-15,-61,0.000,57,66,0.021,37,75,0.000,52,-6,0.007,33,72,0.090,28,112,0.111,9,14,0.016,-11,-49,0.001,-9,22,0.001,-4,122,0.006,56,38,0.016,34,78,0.000,-4,-63,0.000,44,68,0.001,43,-113,0.000,24,55,0.002,20,58,0.000,1,117,0.000,34,-80,0.014,15,82,0.001,11,15,0.021,10,-70,0.008,25,96,0.003,-13,17,0.013,37,127,0.386,34,63,0.022,49,103,0.000,10,73,0.001,53,59,0.010,49,56,0.001,48,-3,0.013,29,65,0.001,44,128,0.036,25,62,0.003,-1,167,0.000,35,-120,0.008,-19,21,0.001,48,84,0.001,-12,-57,0.000,-32,-62,0.005,40,71,0.043,39,-100,0.000,36,74,0.016,50,109,0.001,11,107,0.070,-12,154,0.000,39,45,0.017,35,50,0.019,30,-93,0.011,29,88,0.001,7,28,0.002,-17,38,0.013,54,44,0.005,53,111,0.001,30,14,0.001,-25,-52,0.010,17,-93,0.018,12,109,0.043,64,13,0.000,45,49,0.001,41,46,0.024,21,47,0.004,18,79,0.116,36,134,0.001,51,-104,0.000,-6,-39,0.009,45,-62,0.002,42,120,0.029,4,-73,0.020,52,90,0.001,54,85,0.002,32,13,0.015,55,29,0.008,31,39,0.001,9,139,0.000,42,-102,0.001,19,49,0.002,18,-92,0.014,33,134,0.035,66,31,0.000,-29,29,0.023,45,117,0.001,42,41,0.000,4,116,0.004,22,29,0.000,13,-88,0.056,46,-83,0.000,-14,36,0.008,57,30,0.002,0,115,0.000,52,22,0.059,33,36,0.092,24,108,0.046,-15,48,0.001,-38,148,0.001,34,114,0.303,33,-111,0.041,-24,-64,0.004,47,-122,0.102,46,143,0.005,43,11,0.046,19,109,0.010,-1,9,0.000,-24,-49,0.013,44,-81,0.003,43,28,0.026,23,97,0.009,-37,-58,0.001,47,104,0.000,-46,-68,0.001,-13,45,0.009,61,37,0.000,-4,106,0.008,49,131,0.001,29,-8,0.006,20,83,0.048,-18,15,0.003,53,15,0.029,48,33,0.019,29,37,0.001,44,124,0.026,5,35,0.002,38,82,0.002,48,136,0.021,29,-106,0.012,63,22,0.002,40,43,0.011,39,0,0.074,35,-3,0.009,16,33,0.021,-17,169,0.001,-7,106,0.030,26,-101,0.008,-19,-42,0.010,59,12,0.008,39,17,0.027,36,-75,0.002,17,97,0.061,50,4,0.118,27,91,0.011,41,124,0.273,-33,-53,0.002,53,83,0.003,-17,180,0.003,30,-6,0.006,41,9,0.003,-21,-40,0.049,-21,-55,0.002,-30,24,0.001,41,26,0.019,36,114,0.111,32,130,0.023,-17,-49,0.058,-7,38,0.015,42,92,0.001,41,-89,0.008,52,118,0.001,51,13,0.059,8,47,0.003,-15,14,0.003,-1,105,0.002,51,-2,0.072,32,-104,0.002,24,-13,0.000,8,-66,0.002,6,-10,0.017,33,98,0.001,-5,23,0.006,-33,116,0.016,46,-118,0.002,42,-3,0.009,37,14,0.027,-5,-56,0.001,-29,154,0.013,22,83,0.069,52,34,0.007,13,25,0.009,24,112,0.065,-14,-73,0.009,20,-13,0.001,56,78,0.001,47,42,0.006,44,28,0.019,0,10,0.016,61,-149,0.010,20,34,0.001,34,-91,0.003,-4,40,0.026,-23,-42,0.048,44,-85,0.006,62,31,0.001,38,33,0.017,37,82,0.002,14,-5,0.006,10,-14,0.007,-9,20,0.001,61,73,0.004,38,-108,0.001,34,7,0.007,49,31,0.022,11,-72,0.009,48,-58,0.001,-19,-48,0.015,48,21,0.028,26,77,0.087,44,88,0.012,40,128,0.028,2,-57,0.002,38,110,0.018,35,-112,0.000,16,6,0.001,-22,-63,0.002,12,9,0.093,63,58,0.001,59,55,0.002,40,15,0.144,35,41,0.015,-8,35,0.009,26,-81,0.020,-31,-68,0.001,40,-98,0.004,39,117,0.284,50,40,0.010,27,119,0.042,26,34,0.001,41,88,0.001,3,41,0.003,-21,35,0.004,51,94,0.001,50,-105,0.002,45,44,0.005,7,-75,0.008,6,80,0.059,21,34,0.001,-6,34,0.005,-33,-58,0.005,-4,-39,0.014,-35,143,0.002,28,25,0.001,8,4,0.026,45,-118,0.002,41,-109,0.001,55,52,0.011,51,57,0.002,32,5,0.001,31,46,0.014,-9,-46,0.001,4,14,0.003,-8,147,0.004,-16,-39,0.009,21,101,0.012,18,-71,0.029,-3,-40,0.004,31,95,0.002,46,27,0.035,43,135,0.001,55,86,0.004,-2,39,0.012,46,-90,0.001,57,53,0.003,37,50,0.054,-39,144,0.001,28,85,0.023,-4,-46,0.003,22,111,0.154,56,67,0.004,37,-105,0.001,34,103,0.003,52,62,0.003,13,-3,0.011,9,2,0.021,46,136,0.000,43,-78,0.021,-4,136,0.003,-34,-62,0.004,0,26,0.016,37,-120,0.018,-23,49,0.001,47,62,0.001,43,67,0.001,23,56,0.004,-26,-48,0.010,15,109,0.071,-23,-62,0.000,10,-61,0.042,47,143,0.007,44,-121,0.003,62,75,0.002,58,66,0.002,38,61,0.003,35,137,0.216,37,102,0.018,-20,-48,0.011,15,-2,0.003,11,3,0.007,10,38,0.053,14,29,0.001,5,-75,0.049,1,-70,0.000,38,-80,0.004,53,66,0.002,49,27,0.021,25,33,0.052,2,28,0.011,1,39,0.001,-18,-41,0.010,-3,100,0.000,26,113,0.164,40,100,0.003,36,31,0.010,16,-22,0.000,50,106,0.001,12,37,0.010,-12,27,0.009,59,19,0.032,39,72,0.004,35,69,0.010,-7,146,0.012,29,115,0.073,7,119,0.000,-1,100,0.003,54,45,0.006,50,76,0.001,30,71,0.044,26,54,0.000,7,8,0.043,2,96,0.001,51,138,0.000,-3,-77,0.001,-7,-80,0.002,45,16,0.017,-25,-66,0.000,36,107,0.026,-3,36,0.005,-7,-35,0.030,30,81,0.004,45,-99,0.000,42,129,0.011,60,36,0.001,-29,-61,0.001,32,58,0.000,31,-95,0.004,28,53,0.008,8,40,0.047,-16,30,0.005,55,24,0.013,-3,130,0.001,42,-93,0.005,4,-6,0.004,18,-67,0.014,-1,33,0.002,-2,-60,0.001,-22,33,0.003,66,60,0.000,46,55,0.001,45,84,0.002,42,70,0.025,22,73,0.186,18,48,0.001,13,-61,0.004,9,-64,0.012,-11,-55,0.002,57,65,0.002,37,70,0.031,33,71,0.042,28,113,0.219,9,13,0.025,-11,-38,0.010,-18,-62,0.009,-15,19,0.000,56,39,0.018,34,139,0.028,-4,-62,0.000,43,-114,0.001,24,56,0.022,20,59,0.001,23,92,0.253,34,-83,0.015,15,81,0.047,11,14,0.040,10,-73,0.020,25,95,0.024,-13,40,0.004,37,138,0.003,34,64,0.005,49,106,0.001,10,74,0.000,-19,-57,0.002,53,54,0.003,49,55,0.001,48,-2,0.015,29,68,0.009,44,129,0.017,25,61,0.003,5,74,0.001,39,-118,0.001,35,-121,0.000,-19,24,0.001,49,-56,0.000,48,77,0.000,-12,-56,0.000,-32,-61,0.007,40,72,0.086,39,-101,0.001,36,75,0.014,50,110,0.000,11,106,0.090,5,96,0.028,39,44,0.014,36,-102,0.000,35,49,0.020,30,-92,0.014,29,87,0.001,7,27,0.001,-17,37,0.009,54,41,0.004,53,122,0.001,30,19,0.001,6,21,0.001,17,-90,0.002,12,110,0.033,-27,-51,0.007,41,45,0.069,21,58,0.000,18,80,0.110,51,-105,0.000,-21,-69,0.001,-6,-38,0.008,45,-63,0.003,42,117,0.007,4,-72,0.002,52,91,0.001,54,86,0.003,-41,-64,0.001,32,14,0.054,55,-4,0.067,31,38,0.006,-11,32,0.004,9,126,0.020,42,-105,0.000,18,-95,0.021,33,133,0.038,66,32,0.000,45,120,0.004,42,42,0.015,4,101,0.021,6,8,0.124,13,-89,0.115,46,-82,0.001,-14,33,0.015,57,29,0.010,0,116,0.001,52,23,0.016,47,-92,0.002,24,101,0.038,34,111,0.084,47,-123,0.002,-4,13,0.004,-24,-48,0.011,44,-80,0.004,43,27,0.022,58,7,0.002,-37,-59,0.002,-38,-57,0.013,47,103,0.001,-46,-71,0.001,61,40,0.001,58,-134,0.001,-4,107,0.001,49,134,0.001,48,-109,0.001,29,-9,0.014,20,84,0.069,-18,16,0.012,53,26,0.014,48,34,0.021,29,40,0.002,44,93,0.001,5,30,0.002,29,-107,0.002,63,21,0.002,40,44,0.021,39,-1,0.006,35,4,0.016,16,34,0.007,26,-100,0.003,59,11,0.032,39,16,0.003,17,100,0.025,50,1,0.014,27,90,0.014,41,123,0.117,53,78,0.002,-9,142,0.001,-21,-41,0.021,60,45,0.001,41,25,0.014,36,115,0.267,32,131,0.075,-7,37,0.016,42,89,0.003,41,-86,0.022,52,119,0.001,51,20,0.061,8,48,0.002,-1,104,0.012,51,-3,0.063,32,-95,0.011,8,-65,0.003,18,5,0.000,33,97,0.001,-5,22,0.006,42,-2,0.020,37,13,0.013,-1,-54,0.001,-2,123,0.005,-29,153,0.002,-4,113,0.001,57,9,0.001,37,-2,0.006,52,35,0.005,13,28,0.004,47,-104,0.001,46,105,0.000,-11,18,0.005,-14,-72,0.011,-33,138,0.001,-34,-69,0.004,47,41,0.026,20,35,0.000,19,80,0.052,34,-90,0.006,-4,41,0.005,-23,-43,0.346,44,-84,0.004,62,32,0.000,38,34,0.015,35,100,0.001,37,81,0.004,15,41,0.000,14,-4,0.012,-9,19,0.001,-46,-67,0.002,61,76,0.002,38,-111,0.000,34,8,0.012,49,34,0.024,11,-73,0.008,48,-57,0.001,5,8,0.193,14,15,0.002,-13,-55,0.001,1,14,0.000,16,120,0.008,-22,47,0.011,48,22,0.035,26,78,0.100,44,89,0.005,40,121,0.058,38,115,0.216,35,-113,0.001,16,7,0.000,-22,-62,0.001,12,10,0.061,60,77,0.010,59,54,0.001,40,16,0.025,-20,-42,0.025,-8,36,0.009,26,-80,0.078,7,82,0.039,6,-77,0.001,40,-97,0.002,39,116,0.140,16,-91,0.009,50,37,0.049,27,118,0.036,41,87,0.003,3,32,0.020,-1,102,0.013,-21,34,0.005,51,93,0.001,50,-104,0.007,45,43,0.008,7,-76,0.009,3,-71,0.000,21,33,0.001,-6,31,0.008,-35,-63,0.001,60,73,0.002,17,11,0.000,-39,-66,0.001,8,-3,0.006,45,-119,0.001,55,51,0.006,51,48,0.006,32,6,0.001,31,45,0.013,27,50,0.000,4,15,0.004,-16,-38,0.001,21,104,0.024,18,-70,0.062,31,94,0.001,65,-18,0.001,46,28,0.024,43,134,0.003,55,85,0.006,-2,40,0.001,69,34,0.009,46,-85,0.000,57,56,0.004,19,-87,0.001,37,49,0.015,-39,143,0.001,33,46,0.016,10,79,0.170,28,86,0.009,-10,14,0.028,-2,10,0.001,22,112,0.108,56,68,0.001,37,-94,0.008,34,104,0.013,52,63,0.003,-12,-65,0.002,13,0,0.015,47,-68,0.002,9,1,0.012,46,133,0.012,43,-79,0.173,0,27,0.001,37,-121,0.077,-30,-51,0.085,67,64,0.001,43,66,0.001,23,55,0.006,-36,-59,0.004,-23,-63,0.003,-24,24,0.000,44,-120,0.001,25,86,0.421,58,63,0.001,38,62,0.004,35,128,0.062,37,101,0.003,15,-3,0.006,11,2,0.006,10,19,0.003,5,-72,0.012,1,-71,0.000,38,-83,0.007,53,65,0.002,14,103,0.044,2,25,0.002,1,42,0.003,-18,-40,0.006,48,58,0.001,26,114,0.079,25,-111,0.001,39,-74,0.034,36,32,0.006,50,103,0.000,12,38,0.043,-42,-71,0.004,-12,28,0.035,59,18,0.034,39,71,0.005,35,76,0.019,-7,145,0.008,30,-107,0.002,29,110,0.053,7,118,0.001,54,46,0.018,-10,-75,0.003,50,73,0.005,-12,-45,0.002,30,72,0.137,26,67,0.005,7,7,0.053,51,137,0.000,-27,-68,0.001,45,15,0.013,22,82,0.045,36,108,0.020,-3,35,0.017,30,82,0.001,64,-22,0.001,45,-96,0.001,42,130,0.034,60,37,0.001,17,-25,0.001,54,95,0.001,32,59,0.003,31,-96,0.003,28,54,0.012,8,33,0.006,-16,31,0.002,55,23,0.008,-3,129,0.001,42,-92,0.008,18,-66,0.087,-1,32,0.048,46,56,0.000,45,83,0.003,22,74,0.185,18,45,0.002,9,-65,0.006,-11,-52,0.000,-15,-59,0.001,57,68,0.001,37,69,0.031,52,-4,0.004,33,74,0.127,28,114,0.135,9,16,0.016,43,-124,0.002,-11,-39,0.007,-15,22,0.001,56,40,0.006,34,140,0.006,-4,-61,0.001,43,-115,0.001,24,49,0.002,-23,16,0.000,-5,153,0.003,-28,-67,0.000,23,91,0.737,1,119,0.001,34,-82,0.029,15,80,0.058,11,13,0.008,10,-72,0.011,25,98,0.009,-13,39,0.001,58,35,0.003,37,137,0.004,34,61,0.006,14,37,0.006,49,105,0.002,-9,111,0.016,-19,-62,0.000,53,53,0.005,49,58,0.001,48,-1,0.029,29,67,0.010,44,130,0.041,25,64,0.004,5,73,0.000,39,-119,0.013,-19,23,0.000,49,-57,0.001,-12,-55,0.002,-32,-60,0.024,40,65,0.011,39,-102,0.000,36,76,0.008,50,139,0.000,11,105,0.093,-24,-47,0.062,39,43,0.015,36,-101,0.001,54,-1,0.074,30,-95,0.022,29,82,0.020,-17,20,0.000,54,42,0.006,53,121,0.000,6,22,0.001,17,-91,0.009,-27,-48,0.021,41,48,0.011,21,57,0.000,18,77,0.095,17,54,0.003,-6,-41,0.002,27,-112,0.000,45,-60,0.002,42,118,0.014,4,-71,0.000,55,-118,0.001,52,92,0.001,54,91,0.001,32,15,0.014,31,4,0.001,55,-5,0.001,51,-8,0.010,31,37,0.021,9,125,0.019,42,-104,0.001,18,-94,0.017,33,136,0.011,45,119,0.001,4,102,0.034,19,-72,0.074,-14,34,0.056,57,32,0.003,0,109,0.006,52,24,0.016,33,38,0.016,47,-93,0.002,24,102,0.025,-9,17,0.005,-4,127,0.003,34,112,0.080,-3,151,0.001,33,-109,0.000,-5,140,0.003,-24,-70,0.001,44,34,0.018,43,9,0.002,-25,-63,0.001,-4,14,0.003,44,-79,0.017,43,26,0.024,58,8,0.003,15,52,0.001,11,73,0.001,47,102,0.001,61,39,0.001,-4,108,0.001,49,133,0.000,-8,140,0.001,20,101,0.011,-18,13,0.000,53,25,0.014,-3,105,0.045,-23,167,0.003,48,35,0.037,29,39,0.001,44,94,0.001,5,29,0.002,29,-104,0.001,63,36,0.000,-2,100,0.000,40,37,0.026,39,-2,0.007,35,3,0.020,16,35,0.004,50,143,0.001,-7,108,0.421,-8,25,0.004,26,-103,0.003,59,10,0.006,17,99,0.009,54,-5,0.024,-1,-90,0.000,50,2,0.018,12,-83,0.001,27,89,0.030,-22,-44,0.010,41,110,0.007,54,-122,0.000,53,77,0.002,-35,-68,0.002,-25,-57,0.001,-21,-42,0.020,60,46,0.001,41,28,0.020,-29,-52,0.014,36,116,0.231,32,132,0.022,14,125,0.000,-7,40,0.075,42,90,0.003,41,-87,0.185,51,19,0.025,55,-1,0.019,51,4,0.041,32,-94,0.010,8,-64,0.006,18,6,0.000,33,100,0.001,-5,21,0.006,48,93,0.000,42,11,0.004,37,16,0.033,-1,-55,0.001,-2,124,0.004,-5,-58,0.000,22,81,0.038,56,57,0.003,37,-3,0.030,52,36,0.008,13,27,0.004,-10,-62,0.002,-11,17,0.006,-14,-75,0.004,-34,-68,0.007,-5,104,0.018,47,40,0.055,-11,162,0.001,20,36,0.000,19,79,0.054,34,-93,0.004,-24,45,0.006,-9,161,0.002,62,29,0.002,38,39,0.021,-38,145,0.038,15,40,0.014,14,-7,0.003,47,138,0.000,-33,28,0.028,34,5,0.012,49,33,0.020,11,-74,0.015,-9,-61,0.000,1,13,0.001,46,-108,0.000,16,97,0.147,-22,48,0.025,48,23,0.032,26,91,0.122,44,90,0.004,40,122,0.009,38,116,0.235,35,-114,0.003,16,8,0.000,-22,-65,0.003,12,11,0.038,59,53,0.001,40,9,0.013,-8,29,0.004,7,81,0.161,-31,-66,0.001,6,-76,0.006,40,-96,0.010,39,115,0.045,16,-90,0.004,50,38,0.008,27,117,0.066,26,32,0.120,41,90,0.002,3,31,0.028,-21,33,0.016,50,-107,0.001,45,38,0.008,7,-77,0.002,21,36,0.000,-14,-43,0.004,-3,26,0.003,-6,32,0.006,8,-2,0.009,45,-116,0.000,55,50,0.038,51,47,0.023,32,7,0.001,31,60,0.001,27,49,0.002,4,16,0.005,21,103,0.006,18,-73,0.034,-20,22,0.000,-36,140,0.001,31,93,0.001,46,25,0.027,43,133,0.016,-34,139,0.001,55,84,0.011,-2,37,0.104,69,33,0.002,46,-84,0.004,57,55,0.006,19,-96,0.061,-39,146,0.017,33,45,0.201,10,80,0.141,28,87,0.002,-10,19,0.001,14,100,0.030,22,109,0.100,56,61,0.058,37,-95,0.004,34,101,0.001,52,64,0.004,-36,-67,0.001,13,-1,0.020,47,-69,0.002,9,4,0.007,46,134,0.008,43,-72,0.007,0,28,0.001,67,63,0.000,0,7,0.004,23,54,0.006,-23,-60,0.001,10,-63,0.021,25,85,0.321,58,64,0.001,38,67,0.015,35,127,0.088,37,104,0.019,-4,117,0.006,11,1,0.010,10,20,0.002,5,-73,0.035,38,-82,0.016,53,68,0.002,14,104,0.044,29,58,0.005,-28,-48,0.031,25,35,0.002,2,26,0.003,1,41,0.003,-18,-43,0.003,49,-114,0.001,48,59,0.000,26,111,0.065,63,-21,0.001,25,-108,0.018,40,94,0.001,39,-75,0.102,36,33,0.016,50,104,0.001,12,39,0.024,-21,-50,0.013,59,17,0.011,39,70,0.012,35,75,0.020,-7,148,0.003,30,-106,0.000,29,109,0.059,40,-124,0.003,54,51,0.005,51,143,0.000,50,74,0.006,30,69,0.009,26,68,0.031,7,6,0.094,51,128,0.001,-7,-78,0.020,-27,-69,0.001,36,93,0.000,-3,30,0.104,30,103,0.012,64,-21,0.005,45,-97,0.001,42,127,0.039,60,38,0.001,54,96,0.001,32,60,0.003,31,-97,0.017,28,55,0.007,8,34,0.005,-16,32,0.001,55,22,0.016,9,100,0.016,42,-95,0.003,18,-101,0.005,-1,31,0.061,-17,-44,0.006,66,58,0.002,45,78,0.001,22,47,0.004,18,46,0.001,9,-62,0.006,-11,-53,0.001,-14,27,0.001,-15,-56,0.002,57,67,0.001,-16,-61,0.000,37,72,0.003,33,73,0.094,28,115,0.072,9,15,0.016,-11,-36,0.013,-15,21,0.001,56,33,0.002,37,-75,0.002,34,137,0.074,-4,-60,0.005,-33,-52,0.007,44,71,0.000,43,-108,0.001,24,50,0.002,-9,35,0.015,20,45,0.004,-23,15,0.002,-30,-54,0.004,43,29,0.007,23,90,0.350,1,122,0.003,15,79,0.063,11,20,0.001,10,-75,0.038,25,97,0.007,-4,-49,0.003,58,36,0.002,37,140,0.044,34,62,0.005,49,108,0.001,14,34,0.037,-19,-63,0.007,53,56,0.009,49,57,0.001,48,0,0.016,29,62,0.002,44,131,0.012,25,63,0.004,39,-120,0.002,-19,18,0.001,49,-54,0.001,14,123,0.018,-12,-54,0.000,25,-80,0.078,-32,-67,0.001,40,66,0.017,-36,-64,0.001,36,61,0.026,50,140,0.001,11,80,0.190,39,42,0.013,36,-100,0.001,54,0,0.010,50,-5,0.008,30,-94,0.010,29,81,0.038,14,80,0.068,-17,19,0.000,53,124,0.001,30,17,0.001,-22,-42,0.022,6,27,0.001,17,-88,0.004,-35,-54,0.004,-27,-49,0.026,45,46,0.001,41,47,0.014,21,60,0.001,18,78,0.090,36,137,0.060,51,-107,0.000,-6,-40,0.006,27,-113,0.001,45,-61,0.001,55,-119,0.001,52,77,0.008,54,92,0.001,32,16,0.003,31,3,0.001,55,-6,0.004,51,-9,0.002,31,116,0.090,-2,-48,0.065,18,-97,0.042,33,135,0.009,-24,134,0.001,66,30,0.001,4,103,0.004,19,-73,0.006,-1,-76,0.002,33,-8,0.011,-14,31,0.002,57,31,0.002,0,110,0.021,52,25,0.009,33,37,0.025,47,-94,0.002,24,103,0.077,23,-100,0.005,-15,49,0.005,-48,-68,0.000,34,109,0.210,33,-106,0.000,-5,139,0.002,-24,-69,0.001,44,35,0.023,46,142,0.001,-10,160,0.003,-4,15,0.002,47,4,0.011,44,-78,0.010,43,25,0.024,23,94,0.009,15,51,0.002,47,101,0.001,-13,50,0.005,61,34,0.001,49,136,0.000,48,-115,0.001,20,102,0.006,-18,14,0.000,53,28,0.064,48,36,0.042,29,34,0.000,44,95,0.000,5,32,0.003,29,-105,0.001,63,35,0.002,40,38,0.031,39,-3,0.012,35,2,0.023,16,36,0.009,50,144,0.000,-7,107,0.769,-8,26,0.004,26,-102,0.002,-12,-43,0.002,59,9,0.001,40,-75,0.108,5,120,0.003,17,102,0.020,54,-4,0.003,50,-1,0.051,27,96,0.075,41,109,0.008,51,87,0.003,53,80,0.002,41,-2,0.003,-21,-43,0.021,60,47,0.002,41,27,0.016,-7,39,0.012,42,87,0.005,41,-84,0.011,3,109,0.001,52,121,0.001,51,18,0.036,-3,11,0.001,28,-17,0.003,4,37,0.002,55,-2,0.009,51,3,0.013,32,-93,0.015,8,-71,0.022,33,99,0.001,-5,28,0.004,-6,125,0.000,42,12,0.012,-11,41,0.006,37,15,0.034,6,9,0.059,-2,121,0.007,-5,-59,0.000,-25,-46,0.008,61,130,0.003,57,11,0.006,56,58,0.004,37,0,0.009,52,53,0.006,13,22,0.003,-11,20,0.001,-14,-74,0.009,-34,-71,0.034,56,105,0.001,-5,103,0.006,47,39,0.028,44,-1,0.004,19,78,0.097,34,-92,0.020,-23,-41,0.007,-24,46,0.003,-9,160,0.000,62,30,0.003,-33,-54,0.002,38,40,0.020,37,83,0.001,15,39,0.040,14,-6,0.004,47,137,0.001,-9,120,0.003,61,70,0.001,-33,27,0.008,38,-105,0.002,34,6,0.008,26,-11,0.000,49,36,0.011,48,-79,0.002,-9,-62,0.000,1,16,0.000,16,98,0.059,-22,45,0.002,-9,125,0.006,48,24,0.023,26,92,0.164,44,91,0.003,40,123,0.112,38,113,0.070,35,-115,0.001,16,-15,0.006,-22,-64,0.007,12,12,0.010,63,55,0.001,60,79,0.002,59,60,0.002,40,10,0.008,36,5,0.072,30,-81,0.033,-8,30,0.005,26,-82,0.005,7,80,0.053,-31,-67,0.000,40,-103,0.002,39,114,0.044,16,-89,0.005,50,35,0.022,-22,-41,0.024,41,89,0.001,3,30,0.004,45,37,0.009,21,35,0.000,-17,-68,0.027,-3,25,0.004,-6,29,0.004,-7,-42,0.005,32,97,0.002,8,-1,0.007,45,-117,0.001,-35,25,0.001,55,49,0.017,51,46,0.027,32,8,0.004,31,59,0.002,28,11,0.000,27,56,0.008,4,17,0.004,21,82,0.132,18,-72,0.110,-20,23,0.000,31,108,0.135,46,26,0.014,-4,145,0.000,55,83,0.026,-2,38,0.060,69,36,0.001,-21,-46,0.009,46,-87,0.002,57,58,0.002,19,-97,0.053,37,51,0.012,-39,145,0.008,33,48,0.017,10,77,0.314,28,88,0.001,9,38,0.033,-10,20,0.001,-9,26,0.004,22,110,0.128,56,62,0.012,37,-92,0.005,34,102,0.002,52,65,0.001,13,-6,0.015,47,-70,0.002,9,3,0.009,43,-73,0.010,0,21,0.003,43,72,0.003,-11,149,0.000,23,53,0.005,15,122,0.024,-24,18,0.001,10,-62,0.005,14,47,0.006,25,88,0.264,58,61,0.005,38,68,0.024,37,103,0.026,11,8,0.081,10,17,0.008,38,-77,0.082,53,67,0.002,14,101,0.103,29,57,0.004,14,20,0.002,2,23,0.013,1,44,0.006,-18,-42,0.007,-22,17,0.000,49,-115,0.001,26,112,0.112,63,-22,0.001,25,-109,0.005,40,95,0.002,39,-76,0.101,36,34,0.025,38,141,0.080,12,40,0.032,-8,148,0.002,-12,14,0.001,59,24,0.001,39,69,0.012,35,74,0.026,-7,147,0.006,29,112,0.116,54,52,0.004,50,71,0.001,30,70,0.009,26,65,0.005,7,5,0.120,-20,32,0.013,51,127,0.001,-3,-80,0.060,-19,-46,0.008,-7,-79,0.037,41,70,0.127,36,94,0.000,-3,29,0.054,-35,-64,0.001,30,104,0.182,42,128,0.018,60,39,0.001,21,-88,0.003,54,93,0.001,32,53,0.037,31,-98,0.002,28,56,0.004,8,35,0.013,-26,-51,0.009,-16,41,0.008,31,15,0.001,9,99,0.008,42,-94,0.004,18,-100,0.016,-1,30,0.036,33,110,0.043,5,-7,0.005,46,54,0.001,45,77,0.001,42,49,0.004,22,48,0.004,18,75,0.091,9,-63,0.009,-11,-58,0.000,-14,28,0.004,-15,-57,0.003,57,22,0.002,37,71,0.010,33,76,0.044,28,116,0.172,9,18,0.008,-11,-37,0.033,-15,24,0.003,56,34,0.001,34,138,0.089,-4,-59,0.005,44,72,0.000,24,51,0.002,20,46,0.004,-20,148,0.001,-23,18,0.006,23,89,0.355,1,121,0.002,15,78,0.090,14,-89,0.046,11,19,0.002,10,-74,0.066,25,100,0.032,-13,37,0.001,58,33,0.002,37,139,0.044,34,59,0.005,49,107,0.003,-18,39,0.001,-19,-60,0.001,53,55,0.003,49,60,0.000,48,9,0.077,29,61,0.005,44,132,0.006,25,66,0.002,39,-121,0.014,-19,17,0.002,49,-55,0.001,48,80,0.000,29,-82,0.016,25,-81,0.001,-32,-66,0.001,40,67,0.012,39,-104,0.037,36,62,0.005,50,137,0.004,11,79,0.166,39,41,0.010,36,-115,0.031,54,-3,0.011,50,-4,0.021,29,84,0.001,-17,18,0.001,54,16,0.004,53,123,0.001,30,18,0.001,6,28,0.002,17,-89,0.002,50,-66,0.001,64,25,0.002,45,45,0.002,41,50,0.001,21,59,0.001,18,107,0.008,36,138,0.048,51,-100,0.001,-6,-43,0.006,45,-66,0.005,55,-120,0.001,52,78,0.009,54,89,0.000,31,2,0.001,4,74,0.003,55,-7,0.003,-4,140,0.002,32,-64,0.002,31,115,0.156,9,127,0.004,46,7,0.054,42,-106,0.002,18,-96,0.045,66,27,0.000,-29,33,0.009,4,104,0.010,-15,-170,0.002,-1,-77,0.003,-5,-80,0.017,46,-79,0.003,-14,32,0.007,57,34,0.004,0,111,0.011,52,26,0.010,33,40,0.003,47,-95,0.001,9,46,0.004,14,41,0.007,24,104,0.057,23,-101,0.002,34,110,0.239,33,-107,0.000,-5,138,0.000,44,36,0.001,-4,16,0.022,47,3,0.016,44,-77,0.006,62,23,0.004,23,93,0.024,38,9,0.000,0,-60,0.000,15,50,0.004,47,84,0.002,-46,-72,0.001,-13,49,0.000,61,33,0.001,15,-61,0.004,49,135,0.001,48,-114,0.002,20,103,0.007,-18,19,0.001,53,27,0.010,48,29,0.016,29,33,0.012,5,31,0.002,35,-88,0.008,29,-110,0.003,63,34,0.000,-13,132,0.000,40,39,0.021,39,-4,0.008,35,1,0.042,16,29,0.001,-8,27,0.007,26,-105,0.002,-12,-42,0.004,40,-74,0.243,17,101,0.023,54,-7,0.010,50,0,0.030,12,-81,0.002,27,95,0.057,41,112,0.017,51,86,0.001,53,79,0.004,41,-3,0.003,54,-101,0.000,58,9,0.004,60,48,0.001,41,14,0.033,42,88,0.002,41,-85,0.026,3,116,0.001,52,122,0.001,51,17,0.041,28,-16,0.023,4,38,0.002,55,-3,0.039,51,2,0.019,32,-92,0.008,8,-70,0.013,55,110,0.001,33,102,0.001,-5,27,0.008,42,9,0.001,37,26,0.002,-2,122,0.002,-13,-40,0.006,-25,-47,0.007,-2,99,0.000,61,129,0.001,57,-2,0.014,56,59,0.003,37,-1,0.021,52,54,0.003,13,21,0.002,-10,-56,0.001,-11,19,0.003,23,-97,0.000,-34,-70,0.182,56,106,0.002,-3,142,0.000,47,38,0.057,44,0,0.036,19,77,0.080,34,-95,0.002,-24,47,0.003,10,-85,0.008,62,35,0.002,38,37,0.023,37,78,0.003,15,38,0.005,14,-17,0.087,47,136,0.001,62,-114,0.001,-33,26,0.002,38,-104,0.019,34,3,0.007,49,35,0.022,11,-68,0.001,48,-78,0.002,-9,-63,0.004,-13,-66,0.001,1,15,0.000,-18,47,0.002,16,99,0.014,-22,46,0.001,-3,104,0.012,26,89,0.204,44,92,0.001,40,124,0.046,-12,41,0.004,38,114,0.059,35,-108,0.002,16,-14,0.006,63,54,0.003,59,59,0.003,5,116,0.007,36,6,0.050,-8,31,0.003,-31,-64,0.003,40,-102,0.001,39,113,0.041,16,-88,0.001,50,36,0.010,-22,-51,0.011,41,92,0.001,3,29,0.002,45,40,0.031,-25,-62,0.001,-17,-69,0.009,-3,28,0.004,-6,30,0.004,-39,-68,0.007,-7,-43,0.004,-45,172,0.002,-29,-65,0.006,17,-16,0.001,32,98,0.002,8,0,0.010,45,-122,0.058,55,48,0.012,51,45,0.003,-3,122,0.005,31,58,0.003,28,12,0.000,27,55,0.004,4,18,0.004,5,6,0.051,21,81,0.074,-20,24,0.000,-39,-58,0.002,31,107,0.182,46,15,0.034,55,82,0.001,-8,-78,0.019,69,35,0.001,-25,36,0.006,5,-1,0.046,46,-86,0.000,57,57,0.019,19,-98,0.236,37,46,0.041,-39,148,0.001,33,47,0.013,10,78,0.131,28,89,0.002,9,37,0.020,-10,17,0.005,-18,-66,0.030,22,115,0.380,56,63,0.007,37,-93,0.012,52,66,0.001,13,-7,0.010,47,-71,0.001,9,-10,0.007,43,-74,0.003,-22,-55,0.002,0,22,0.003,43,71,0.003,23,52,0.002,15,121,0.150,10,-65,0.002,44,-117,0.001,25,87,0.312,58,62,0.001,38,65,0.004,37,114,0.052,15,10,0.000,11,7,0.024,10,18,0.005,38,-76,0.045,53,62,0.002,14,102,0.038,29,60,0.005,-2,107,0.003,2,24,0.004,1,43,0.004,49,-112,0.004,48,53,0.001,26,109,0.044,40,96,0.001,39,-77,0.048,36,35,0.011,38,142,0.029,35,-80,0.045,50,102,0.000,12,41,0.016,-12,15,0.006,39,68,0.035,35,73,0.049,29,111,0.055,54,49,0.027,50,72,0.001,30,75,0.127,-33,-63,0.007,26,66,0.002,7,4,0.103,51,126,0.001,-7,-76,0.010,45,76,0.000,41,69,0.011,36,95,0.000,-21,148,0.000,-3,32,0.020,30,101,0.002,42,125,0.044,60,40,0.001,21,-89,0.015,54,94,0.001,32,54,0.006,-17,-43,0.009,31,-99,0.001,28,57,0.004,8,36,0.029,-22,-46,0.023,-3,126,0.001,31,14,0.001,42,-97,0.003,18,-103,0.005,-1,29,0.010,33,109,0.041,-6,147,0.001,45,80,0.002,-11,34,0.005,22,45,0.004,18,76,0.063,6,4,0.260,-11,-59,0.000,-14,25,0.001,-15,-54,0.001,-10,-74,0.001,33,75,0.075,28,117,0.132,9,17,0.012,-11,-42,0.002,-15,23,0.002,56,35,0.005,34,135,0.111,-4,-58,0.002,43,-110,0.001,24,52,0.002,20,47,0.004,-23,17,0.001,13,110,0.042,23,88,0.222,15,77,0.099,14,-88,0.025,11,18,0.004,25,99,0.032,-13,44,0.001,58,34,0.002,-46,171,0.005,34,60,0.006,-37,143,0.001,-19,-61,0.000,53,34,0.007,49,59,0.001,48,10,0.109,29,64,0.001,44,133,0.006,25,65,0.003,39,-122,0.003,35,-117,0.002,-19,20,0.002,68,14,0.000,48,89,0.002,29,-83,0.001,-32,-65,0.002,40,68,0.015,39,-105,0.033,36,63,0.003,16,74,0.040,50,138,0.009,11,78,0.159,-20,17,0.001,-13,-49,0.001,39,40,0.007,36,-114,0.002,54,-2,0.014,-41,-70,0.000,29,83,0.005,7,23,0.000,-17,17,0.001,54,13,0.013,53,118,0.001,30,39,0.001,8,80,0.005,64,26,0.004,45,48,0.003,-31,150,0.000,41,49,0.018,21,54,0.002,36,139,0.068,17,55,0.003,51,-101,0.000,-6,-42,0.025,45,-67,0.001,52,79,0.002,54,90,0.001,31,1,0.001,55,-8,0.000,31,114,0.127,46,8,0.034,19,76,0.098,18,-99,0.060,33,137,0.001,66,28,0.000,-29,24,0.002,45,116,0.000,-15,-171,0.000,19,-75,0.006,-1,-78,0.071,33,-6,0.061,-5,-81,0.004,-24,151,0.003,-14,29,0.011,-4,109,0.000,57,33,0.001,19,-154,0.000,0,112,0.008,52,27,0.010,33,39,0.005,47,-96,0.001,9,45,0.007,24,97,0.014,23,-102,0.006,-15,51,0.004,33,-104,0.002,-5,137,0.002,-9,30,0.005,-4,17,0.003,47,2,0.022,44,-76,0.008,62,24,0.002,15,49,0.004,47,83,0.001,62,7,0.003,14,35,0.007,-30,154,0.001,29,-13,0.001,-9,-68,0.001,20,104,0.006,-18,20,0.001,53,22,0.012,48,30,0.014,29,36,0.002,5,42,0.002,35,-89,0.028,48,109,0.000,29,-111,0.007,63,33,0.000,-37,144,0.001,-13,131,0.003,40,40,0.024,39,-5,0.005,-20,-46,0.005,16,30,0.001,-8,28,0.005,26,-104,0.001,-12,-41,0.009,40,-73,0.354,39,140,0.003,17,104,0.045,54,-6,0.023,50,-3,0.024,27,94,0.013,14,81,0.018,41,111,0.006,51,85,0.001,53,90,0.002,41,0,0.019,-35,-59,0.014,60,49,0.001,41,13,0.112,-1,133,0.000,-6,-70,0.000,42,85,0.002,41,-98,0.001,3,115,0.001,52,123,0.002,51,40,0.044,28,-15,0.016,4,39,0.002,-1,116,0.003,51,1,0.151,32,-99,0.005,8,-69,0.008,33,101,0.001,-5,26,0.002,-6,139,0.001,42,10,0.004,37,25,0.002,-1,-58,0.000,-2,111,0.006,-5,-53,0.000,-8,-56,0.001,-25,-48,0.008,61,132,0.000,22,88,0.290,56,60,0.007,37,10,0.012,52,55,0.002,13,24,0.008,46,93,0.000,-11,14,0.001,-14,-76,0.012,23,-98,0.002,47,37,0.008,44,1,0.016,-11,163,0.000,19,84,0.043,34,-94,0.002,-36,-63,0.003,-24,48,0.008,10,-84,0.030,-9,158,0.001,62,36,0.000,20,-90,0.003,38,38,0.019,37,77,0.007,15,37,0.009,14,-16,0.057,10,-5,0.012,47,135,0.003,-33,25,0.002,38,-107,0.001,34,4,0.008,49,38,0.012,11,-69,0.011,48,-77,0.001,-9,-64,0.001,1,18,0.000,-18,48,0.003,16,100,0.031,53,-6,0.049,26,90,0.181,40,117,0.228,2,-60,0.002,38,119,0.008,35,-109,0.001,16,-13,0.005,-22,-66,0.001,49,-124,0.005,63,53,0.001,59,58,0.002,36,7,0.069,35,36,0.016,30,-83,0.007,-8,32,0.006,-31,-65,0.001,6,-73,0.017,40,-101,0.000,39,112,0.023,50,33,0.013,27,122,0.004,26,43,0.003,41,91,0.001,3,36,0.003,-17,-151,0.001,-21,-66,0.001,45,39,0.023,7,-80,0.007,6,81,0.190,-17,-70,0.002,-3,27,0.005,-7,-40,0.004,60,13,0.002,32,99,0.002,8,-7,0.006,45,-123,0.005,55,47,0.008,51,52,0.010,-3,121,0.018,31,57,0.004,27,54,0.005,4,19,0.025,-8,107,0.027,-16,-42,0.005,21,84,0.088,18,-74,0.014,-1,136,0.001,-39,-59,0.003,31,106,0.151,46,16,0.065,-34,138,0.001,55,81,0.001,69,30,0.000,-25,35,0.010,46,-97,0.001,-11,40,0.025,57,60,0.012,19,-99,0.511,37,45,0.026,-39,147,0.003,33,50,0.017,28,90,0.003,9,40,0.038,-10,18,0.003,-47,170,0.001,-15,30,0.002,22,116,0.039,56,64,0.006,37,-98,0.001,34,100,0.001,52,67,0.002,13,-4,0.013,47,-72,0.001,9,-11,0.008,46,137,0.000,43,-75,0.014,24,41,0.003,0,23,0.003,43,70,0.003,-11,151,0.002,23,51,0.002,15,120,0.003,-24,20,0.000,10,-64,0.026,44,-116,0.001,25,90,0.340,38,66,0.022,37,113,0.137,15,9,0.001,11,6,0.020,10,15,0.040,-9,115,0.065,38,-79,0.004,53,61,0.003,49,66,0.000,29,59,0.004,25,56,0.024,5,49,0.000,2,21,0.010,1,46,0.001,6,125,0.051,49,-113,0.001,48,54,0.000,26,110,0.044,39,-78,0.010,36,36,0.016,-18,-149,0.006,35,-81,0.029,16,-25,0.001,50,99,0.000,12,42,0.003,-12,16,0.011,39,67,0.058,35,64,0.005,30,-103,0.000,39,84,0.001,54,50,0.007,50,69,0.001,30,76,0.153,26,63,0.005,7,3,0.030,51,125,0.001,-3,-54,0.006,-26,-50,0.014,-7,-77,0.005,-33,-61,0.007,45,75,0.000,41,72,0.032,-36,-66,0.001,8,126,0.036,36,96,0.000,-21,147,0.000,-3,31,0.064,30,102,0.003,-37,-64,0.003,45,-100,0.000,42,126,0.054,60,41,0.001,-35,138,0.000,54,99,0.001,32,55,0.003,31,-84,0.007,28,58,0.005,8,29,0.014,31,13,0.002,42,-96,0.007,18,-102,0.011,33,112,0.065,-6,148,0.001,65,14,0.000,46,60,0.000,45,79,0.005,42,47,0.008,22,46,0.004,18,73,0.069,-35,117,0.000,14,-10,0.005,9,-61,0.001,-11,-56,0.002,-14,26,0.001,-15,-55,0.001,57,24,0.001,-38,175,0.005,28,118,0.100,9,20,0.005,-11,-43,0.002,-9,21,0.001,-4,123,0.010,56,36,0.016,34,136,0.544,-4,-57,0.001,44,74,0.000,-17,32,0.012,43,-111,0.003,24,45,0.004,20,48,0.004,67,32,0.001,13,109,0.028,23,87,0.231,14,-91,0.073,11,17,0.006,25,118,0.068,58,31,0.002,34,57,0.001,49,77,0.000,10,51,0.001,-33,-62,0.004,-18,37,0.017,-19,-66,0.007,53,33,0.007,48,11,0.054,29,63,0.001,44,134,0.004,25,68,0.066,39,-123,0.003,1,74,0.000,35,-118,0.007,-19,19,0.001,68,15,0.001,48,90,0.001,29,-80,0.002,63,12,0.002,-32,-64,0.054,40,61,0.001,39,-106,0.002,36,64,0.004,16,75,0.193,50,135,0.000,11,77,0.159,39,39,0.010,-20,64,0.001,-41,-71,0.001,29,78,0.286,7,22,0.001,-17,16,0.001,54,14,0.009,30,40,0.001,-25,-53,0.017,-26,47,0.004,64,27,0.001,45,47,0.001,-29,-56,0.002,21,53,0.002,18,105,0.005,36,140,0.185,51,-102,0.001,27,-108,0.001,45,-64,0.003,52,80,0.002,31,0,0.001,51,-4,0.011,31,113,0.088,46,5,0.025,42,-124,0.001,19,75,0.100,18,-98,0.049,66,25,0.001,5,-8,0.008,42,19,0.009,57,115,0.001,-1,-79,0.023,33,-7,0.132,-24,152,0.001,-14,30,0.002,-18,-59,0.000,57,36,0.004,19,-155,0.004,0,121,0.009,52,28,0.010,33,42,0.003,47,-97,0.003,9,48,0.001,24,98,0.017,23,-103,0.008,33,-105,0.001,44,38,0.014,-4,18,0.009,13,81,0.196,47,1,0.028,44,-75,0.007,-13,-42,0.004,38,15,0.004,15,48,0.001,47,82,0.001,62,8,0.002,61,35,0.010,14,36,0.008,48,-112,0.000,-9,-69,0.000,-13,-72,0.003,20,105,0.013,-10,120,0.013,53,21,0.018,48,31,0.018,29,35,0.001,5,41,0.003,35,-90,0.016,29,-108,0.001,40,33,0.031,39,-6,0.009,16,31,0.001,-17,168,0.001,-8,21,0.003,26,-107,0.002,-12,-40,0.010,-32,19,0.001,40,-72,0.010,17,103,0.060,-55,-65,0.000,50,-2,0.013,27,93,0.004,41,114,0.030,51,92,0.001,53,89,0.005,-17,179,0.001,26,-9,0.000,41,-1,0.011,-30,18,0.002,60,50,0.000,41,16,0.028,-6,-73,0.001,27,-80,0.016,42,86,0.004,41,-99,0.001,3,114,0.004,52,124,0.001,51,39,0.007,32,-17,0.002,28,-14,0.001,4,40,0.002,22,-84,0.003,-1,115,0.004,32,-98,0.003,8,-68,0.002,6,-5,0.034,33,104,0.003,-5,25,0.004,-6,140,0.001,46,-124,0.000,19,-104,0.011,37,28,0.022,-2,112,0.002,-5,-54,0.000,-25,-49,0.007,61,131,0.001,-11,22,0.001,22,85,0.068,56,53,0.006,52,56,0.007,13,23,0.013,47,-61,0.000,-10,-58,0.000,23,-99,0.011,-38,-69,0.000,47,20,0.091,44,2,0.011,5,119,0.007,0,11,0.001,19,83,0.068,34,-97,0.005,-36,-57,0.006,62,33,0.000,20,-89,0.026,38,43,0.013,37,80,0.009,15,20,0.002,10,-4,0.009,47,134,0.008,38,-106,0.001,34,1,0.008,-38,146,0.061,49,37,0.051,11,-70,0.007,-8,108,0.139,-13,-60,0.001,1,17,0.000,-18,45,0.001,53,-7,0.008,26,87,0.220,40,118,0.082,-18,-64,0.003,35,-110,0.001,16,-12,0.004,-22,-53,0.001,49,-125,0.002,59,57,0.010,36,8,0.053,35,35,0.001,30,-82,0.004,-31,-62,0.002,6,-72,0.011,40,-100,0.001,39,111,0.015,50,34,0.012,27,121,0.134,26,44,0.005,41,78,0.001,3,35,0.005,2,118,0.004,51,120,0.000,50,-111,0.001,45,34,0.015,7,-81,0.002,6,82,0.025,3,-76,0.108,-17,-71,0.028,-3,22,0.001,-7,-41,0.004,58,6,0.007,60,14,0.001,-4,-38,0.088,17,-14,0.001,32,100,0.002,28,31,0.100,8,-6,0.006,-30,-59,0.005,-35,22,0.001,55,46,0.005,51,51,0.002,-33,-55,0.002,31,56,0.002,28,-114,0.000,27,53,0.004,4,20,0.006,-16,-41,0.005,21,83,0.081,18,-77,0.032,-1,135,0.001,-3,-41,0.004,-5,12,0.010,31,105,0.179,46,13,0.013,45,102,0.000,55,80,0.000,-2,41,0.003,-25,34,0.020,46,-96,0.007,57,59,0.002,37,48,0.014,33,49,0.027,28,91,0.002,9,39,0.097,-10,23,0.002,-47,169,0.003,-15,29,0.011,22,113,0.129,56,25,0.026,37,-99,0.001,34,97,0.000,52,68,0.002,13,-5,0.015,9,-8,0.008,46,138,0.000,24,42,0.003,-14,-171,0.004,-4,137,0.003,0,24,0.004,43,69,0.008,24,-103,0.009,23,50,0.002,1,98,0.013,-22,-40,0.001,10,-67,0.084,25,89,0.272,38,71,0.004,37,116,0.179,15,8,0.001,11,5,0.025,10,16,0.021,14,30,0.001,38,-78,0.014,53,64,0.013,14,108,0.011,29,54,0.024,2,22,0.009,1,45,0.019,-18,-39,0.008,48,55,0.000,39,-79,0.010,35,-82,0.017,16,-24,0.002,50,100,0.000,12,43,0.002,-12,17,0.010,39,66,0.016,35,63,0.004,30,-102,0.000,39,83,0.001,-1,99,0.001,54,55,0.007,50,70,0.000,30,73,0.172,26,64,0.005,7,2,0.022,-3,-55,0.001,41,71,0.011,36,97,0.000,30,107,0.250,60,42,0.001,-29,-62,0.001,54,100,0.001,32,56,0.001,31,-85,0.009,28,59,0.004,8,30,0.006,31,28,0.001,-1,43,0.013,33,111,0.045,-6,145,0.013,65,13,0.001,42,48,0.017,4,127,0.002,22,51,0.002,18,74,0.193,9,-74,0.016,-11,-57,0.001,-14,23,0.002,-15,-52,0.001,57,23,0.002,-39,178,0.001,28,119,0.090,9,19,0.006,43,-121,0.001,-11,-40,0.008,-15,25,0.002,56,29,0.003,34,133,0.085,-4,-56,0.001,-5,115,0.000,39,-103,0.000,44,75,0.001,24,46,0.004,20,49,0.002,-36,-72,0.004,-23,19,0.000,67,31,0.001,-28,29,0.004,24,-99,0.004,23,86,0.149,1,126,0.007,14,-90,0.121,11,24,0.006,25,117,0.054,61,26,0.003,58,32,0.011,-10,125,0.028,34,58,0.002,49,80,0.000,-8,157,0.000,-18,38,0.016,-19,-67,0.002,53,36,0.004,48,12,0.094,44,135,0.001,25,67,0.007,35,-119,0.013,68,16,0.001,49,-82,0.000,48,91,0.001,29,-81,0.016,63,11,0.007,-32,-55,0.003,40,62,0.001,39,-107,0.002,36,65,0.007,16,76,0.093,50,136,0.001,5,102,0.009,39,38,0.009,-41,-72,0.005,29,77,0.156,-17,15,0.001,54,19,0.043,53,120,0.000,30,37,0.001,6,31,0.006,64,28,0.001,-19,179,0.005,21,56,0.001,18,106,0.083,51,-103,0.000,-21,-70,0.003,27,-109,0.012,45,-65,0.003,42,95,0.001,-16,-71,0.002,52,81,0.002,-41,-65,0.000,31,-1,0.001,51,-5,0.001,31,112,0.052,46,6,0.016,19,74,0.185,66,26,0.002,-29,22,0.003,42,20,0.018,-11,29,0.004,19,-69,0.010,6,5,0.036,33,-4,0.017,57,35,0.005,0,122,0.004,52,13,0.020,33,41,0.003,13,46,0.017,47,-98,0.000,9,47,0.002,-10,-49,0.001,24,99,0.035,23,-104,0.008,33,-102,0.002,-28,-70,0.002,44,39,0.011,-4,19,0.008,47,0,0.027,44,-74,0.003,62,22,0.002,23,122,0.014,38,16,0.028,34,-117,0.081,15,47,0.002,11,52,0.000,47,81,0.001,-9,124,0.007,61,30,0.002,49,140,0.001,48,-103,0.001,-9,-70,0.000,-13,-73,0.003,20,106,0.166,-18,18,0.001,53,24,0.024,48,32,0.011,5,44,0.002,35,-91,0.005,-19,50,0.007,29,-109,0.001,63,31,0.001,40,34,0.021,39,-7,0.006,16,32,0.015,-8,22,0.005,26,-106,0.001,-12,-39,0.013,-32,20,0.000,40,-79,0.055,17,106,0.006,50,27,0.026,27,100,0.010,41,113,0.016,-21,48,0.021,51,91,0.001,53,92,0.016,-33,-68,0.027,-9,141,0.002,41,2,0.042,3,-57,0.001,-17,-60,0.000,-13,-46,0.002,60,51,0.000,41,15,0.043,-26,-69,0.001,27,-81,0.010,41,-96,0.014,3,113,0.000,52,109,0.001,51,38,0.015,32,-16,0.007,28,-13,0.003,27,32,0.052,4,41,0.002,-53,-72,0.000,-1,114,0.002,32,-97,0.058,8,-75,0.025,-4,141,0.001,19,38,0.010,33,103,0.002,-5,32,0.008,19,-105,0.001,37,27,0.002,-5,-55,0.001,-25,-50,0.007,-4,114,0.001,22,86,0.070,56,54,0.031,37,12,0.000,52,57,0.002,13,18,0.002,-10,-53,0.000,43,-65,0.001,-11,16,0.006,56,101,0.001,-38,-68,0.001,47,19,0.045,44,3,0.012,19,82,0.028,34,-96,0.003,-42,147,0.003,62,34,0.000,20,-88,0.006,38,44,0.012,37,79,0.002,15,19,0.001,10,-7,0.004,47,133,0.013,61,66,0.000,-33,23,0.001,38,-101,0.000,34,2,0.010,15,-92,0.026,49,40,0.006,11,-71,0.002,14,16,0.001,-13,-61,0.001,2,47,0.001,1,20,0.003,-18,46,0.001,53,-4,0.003,26,88,0.177,40,119,0.077,38,117,0.174,35,-111,0.002,-22,-52,0.002,12,-16,0.015,49,-122,0.039,63,67,0.001,36,9,0.033,35,34,0.012,-31,-63,0.001,6,-75,0.122,40,-107,0.001,39,110,0.010,14,43,0.006,53,159,0.011,50,31,0.121,26,41,0.001,41,77,0.002,3,34,0.006,2,115,0.001,-1,101,0.095,51,119,0.000,50,-110,0.002,12,93,0.003,45,33,0.001,3,-77,0.005,-17,-72,0.003,-3,21,0.001,-7,-38,0.018,-27,19,0.001,60,15,0.002,17,-15,0.004,32,93,0.001,28,32,0.001,8,-5,0.007,45,-121,0.002,-35,21,0.002,55,45,0.005,51,50,0.002,31,55,0.004,28,-113,0.002,27,60,0.002,-16,-40,0.007,21,78,0.061,18,-76,0.028,-1,134,0.002,-39,-57,0.008,31,104,0.053,46,14,0.020,43,112,0.001,55,79,0.004,-2,42,0.002,69,32,0.000,-25,33,0.005,46,-99,0.000,57,46,0.003,37,47,0.045,33,52,0.011,28,92,0.002,9,42,0.048,-10,24,0.002,-15,32,0.006,22,114,0.355,56,26,0.005,37,-96,0.002,34,98,0.000,-12,-64,0.001,13,-10,0.003,9,-9,0.008,46,127,0.067,43,-69,0.002,24,43,0.004,0,33,0.111,67,66,0.001,43,76,0.003,24,-102,0.001,23,49,0.002,10,-66,0.144,25,92,0.072,38,72,0.002,35,130,0.157,37,115,0.177,15,7,0.001,11,12,0.019,10,13,0.021,53,63,0.002,14,105,0.034,29,53,0.042,25,58,0.000,2,19,0.008,-41,177,0.001,68,37,0.001,39,-80,0.011,36,22,0.001,35,-83,0.013,12,44,0.001,5,5,0.000,-12,18,0.006,59,28,0.004,5,81,0.010,39,65,0.023,36,-91,0.003,35,62,0.004,39,82,0.005,54,56,0.014,50,67,0.003,30,74,0.174,26,61,0.005,7,1,0.022,-3,-52,0.001,-27,-62,0.000,41,74,0.008,22,87,0.139,36,98,0.000,30,108,0.171,42,140,0.001,60,43,0.001,-35,140,0.001,32,65,0.005,31,-86,0.004,28,60,0.003,8,31,0.004,-16,37,0.010,31,27,0.001,42,-98,0.001,22,-159,0.001,21,114,0.002,18,-104,0.000,-1,42,0.016,33,114,0.215,-6,146,0.005,42,45,0.018,22,52,0.002,9,-75,0.033,-14,24,0.002,-15,-53,0.001,57,26,0.005,-39,177,0.004,-26,154,0.001,10,109,0.009,28,120,0.062,43,-122,0.001,-11,-41,0.002,-15,28,0.005,56,30,0.002,34,134,0.099,-4,-55,0.001,44,76,0.001,24,47,0.004,-11,122,0.002,20,50,0.002,67,30,0.000,-28,30,0.005,-28,-66,0.001,43,40,0.008,24,-98,0.002,23,85,0.066,1,125,0.035,14,-85,0.005,11,23,0.003,25,120,0.105,-13,41,0.005,-32,117,0.004,61,25,0.005,58,29,0.001,34,55,0.001,-8,158,0.000,10,49,0.002,-37,148,0.001,-19,-64,0.002,53,35,0.025,48,5,0.015,29,25,0.001,44,136,0.003,68,17,0.001,48,92,0.000,63,10,0.001,25,-77,0.006,-32,-54,0.006,40,63,0.006,39,-108,0.004,36,66,0.011,-35,-60,0.007,-24,-46,0.649,5,101,0.073,39,37,0.012,36,-111,0.001,-21,-62,0.000,-41,-73,0.009,29,80,0.074,7,20,0.002,-17,14,0.002,54,20,0.012,53,119,0.000,-6,28,0.005,30,38,0.001,60,-151,0.001,6,32,0.006,-26,45,0.001,64,21,0.003,-31,151,0.001,41,38,0.004,21,55,0.001,18,103,0.018,51,-112,0.001,27,-110,0.005,64,12,0.001,45,-70,0.001,42,96,0.001,-16,-70,0.013,52,82,0.002,32,21,0.004,31,-2,0.001,31,111,0.035,46,11,0.008,19,73,0.432,18,-4,0.000,33,78,0.000,66,23,0.001,-29,21,0.001,42,17,0.000,19,-70,0.059,18,43,0.007,33,-5,0.029,-5,-76,0.000,22,95,0.024,0,123,0.014,37,-25,0.004,52,14,0.143,33,44,0.012,13,45,0.064,-44,172,0.001,47,-99,0.001,9,50,0.002,-10,-48,0.002,24,100,0.043,-9,16,0.007,23,-105,0.006,-4,128,0.004,8,10,0.024,-28,-69,0.001,44,40,0.016,-4,20,0.003,47,-1,0.036,44,-73,0.010,62,27,0.001,23,121,0.160,38,13,0.002,34,-116,0.004,15,46,0.004,14,7,0.016,11,51,0.001,47,80,0.001,-36,146,0.001,62,6,0.001,59,152,0.000,61,29,0.004,49,139,0.000,11,-60,0.002,-8,130,0.000,-9,-71,0.001,-13,-74,0.012,20,107,0.273,-37,176,0.001,53,23,0.014,-3,108,0.004,48,41,0.014,5,43,0.002,35,-84,0.017,-19,49,0.009,29,-114,0.002,63,30,0.001,40,35,0.015,39,-8,0.026,-8,23,0.008,-45,-67,0.001,14,99,0.010,-12,-38,0.013,40,-78,0.016,36,-83,0.014,17,105,0.034,50,28,0.014,27,99,0.004,-22,-47,0.035,41,116,0.018,-17,50,0.007,-21,47,0.008,51,90,0.001,53,91,0.002,-35,-69,0.001,-28,-51,0.011,41,1,0.013,3,-58,0.000,-25,-58,0.001,-17,-61,0.000,41,18,0.002,-29,-53,0.010,-6,-75,0.001,-7,30,0.004,-26,-68,0.001,27,-82,0.062,41,-97,0.003,3,104,0.012,52,110,0.000,51,37,0.022,32,-7,0.030,27,31,0.078,4,42,0.002,-1,113,0.003,32,-96,0.081,46,39,0.009,8,-74,0.010,19,37,0.001,33,106,0.038,-5,31,0.020,-34,148,0.000,37,22,0.010,-2,110,0.003,-25,-51,0.009,-18,-54,0.001,22,91,0.292,-26,-49,0.083,56,55,0.010,37,11,0.004,52,58,0.001,13,17,0.001,43,-66,0.000,-11,15,0.005,56,102,0.010,-38,-71,0.003,-5,106,0.048,47,18,0.025,44,4,0.005,23,44,0.004,19,81,0.016,34,-99,0.002,-23,-50,0.013,44,-109,0.000,62,55,0.001,20,-87,0.004,38,41,0.021,15,18,0.001,14,-13,0.004,10,-6,0.008,61,65,0.001,38,-100,0.001,34,-1,0.027,15,-93,0.004,49,39,0.009,-9,-67,0.000,-13,-62,0.001,-2,103,0.016,1,19,0.002,-10,121,0.004,16,95,0.032,-9,149,0.001,26,85,0.341,40,120,0.071,38,118,0.079,53,-116,0.000,12,-15,0.018,49,-123,0.034,36,10,0.037,35,33,0.001,-4,-47,0.001,-31,-60,0.002,6,-74,0.008,40,-106,0.001,39,109,0.002,50,32,0.012,26,42,0.001,41,80,0.006,3,33,0.009,51,118,0.001,50,-113,0.005,45,36,0.007,21,42,0.013,-3,24,0.003,-7,-39,0.012,64,-51,0.000,60,16,0.005,17,-12,0.001,32,94,0.001,-17,-39,0.009,28,33,0.001,8,-4,0.005,-30,-61,0.001,-35,24,0.002,55,76,0.002,51,49,0.004,31,54,0.009,28,-112,0.000,27,59,0.002,-15,20,0.000,4,6,0.011,21,77,0.063,-20,28,0.005,-2,-80,0.024,31,103,0.004,46,19,0.027,45,104,0.000,55,78,0.001,-2,31,0.052,69,31,0.000,-25,32,0.018,46,-98,0.001,57,45,0.002,37,58,0.012,-10,-78,0.007,33,51,0.017,28,93,0.002,9,41,0.016,-10,21,0.001,-15,31,0.005,56,27,0.004,37,-97,0.018,13,-11,0.002,9,-6,0.006,46,128,0.045,43,-70,0.019,24,44,0.004,0,34,0.082,67,65,0.002,43,75,0.005,24,-101,0.007,23,48,0.004,1,100,0.028,-4,12,0.001,-23,-70,0.000,25,91,0.078,38,69,0.055,35,129,0.196,37,110,0.028,15,6,0.002,11,11,0.044,10,14,0.046,5,-67,0.002,53,74,0.001,14,106,0.019,29,56,0.005,-9,128,0.002,25,57,0.006,5,46,0.004,2,20,0.012,-18,-49,0.004,-41,176,0.007,68,38,0.001,-8,-71,0.000,26,121,0.004,39,-81,0.010,36,23,0.002,35,-76,0.003,12,13,0.008,-7,121,0.002,-21,-51,0.006,-12,19,0.006,59,27,0.003,39,64,0.013,36,-90,0.006,35,61,0.021,30,-112,0.001,39,81,0.005,54,53,0.014,53,126,0.001,50,68,0.001,30,63,0.001,26,62,0.002,7,0,0.009,51,130,0.000,-3,-53,0.001,-37,-62,0.002,-7,-56,0.001,-27,-63,0.001,-13,-37,0.001,41,73,0.016,36,99,0.001,30,105,0.337,60,44,0.001,49,98,0.000,-35,139,0.030,55,-97,0.001,32,66,0.007,31,-87,0.004,28,61,0.003,8,32,0.005,-16,38,0.015,55,16,0.000,32,-79,0.006,42,-85,0.036,-20,25,0.001,21,113,0.018,-1,41,0.002,-3,-50,0.001,33,113,0.142,-6,143,0.005,46,47,0.001,42,46,0.008,22,49,0.002,-20,45,0.001,9,-72,0.004,-14,21,0.001,57,25,0.013,13,76,0.077,28,121,0.155,43,-123,0.004,24,89,0.342,-15,27,0.002,56,31,0.006,34,131,0.006,-4,-54,0.003,44,45,0.007,24,48,0.004,-9,34,0.011,20,51,0.002,13,106,0.005,-28,31,0.018,24,-97,0.001,23,84,0.040,1,128,0.004,14,-84,0.002,11,22,0.002,25,119,0.183,-13,32,0.002,61,28,0.002,58,30,0.003,34,56,0.001,49,82,0.001,10,50,0.003,-42,175,0.010,-37,147,0.004,-19,-65,0.009,53,30,0.012,48,6,0.010,5,18,0.003,-19,16,0.001,68,18,0.001,48,85,0.001,14,124,0.002,63,9,0.001,-32,-53,0.002,40,64,0.004,-36,-58,0.012,36,67,0.022,5,104,0.013,39,36,0.016,36,-110,0.001,-21,-63,0.001,29,79,0.175,14,77,0.083,7,19,0.002,-17,13,0.001,54,17,0.010,30,43,0.001,60,-150,0.000,6,29,0.004,-16,-43,0.006,-21,-29,0.001,-35,-55,0.012,-26,46,0.005,64,22,0.000,-31,154,0.001,41,37,0.015,21,-158,0.007,18,104,0.019,36,127,0.042,51,-113,0.006,45,-71,0.007,42,93,0.001,41,-74,0.035,-16,-69,0.008,52,83,0.003,-40,-63,0.000,32,22,0.004,31,-3,0.003,51,-7,0.000,31,110,0.058,9,118,0.001,46,12,0.024,-2,-51,0.001,33,77,0.003,-6,115,0.001,66,24,0.001,-29,28,0.007,42,18,0.003,19,-71,0.037,18,44,0.006,33,-2,0.004,-5,-77,0.001,22,96,0.067,0,124,0.016,52,15,0.019,33,43,0.003,13,48,0.001,9,49,0.002,-10,-51,0.000,24,93,0.150,23,-106,0.013,-28,-68,0.000,44,41,0.018,-52,-72,0.000,-4,21,0.001,13,78,0.151,47,-2,0.019,44,-72,0.006,62,28,0.005,23,120,0.003,38,14,0.033,0,-55,0.001,34,-119,0.022,15,45,0.061,14,8,0.014,11,50,0.002,10,3,0.007,-28,154,0.038,62,11,0.001,59,151,0.005,61,32,0.001,-28,-63,0.002,14,23,0.006,48,-101,0.002,-9,-72,0.001,25,-12,0.000,-13,-75,0.013,20,108,0.006,-37,175,0.032,48,42,0.004,29,32,0.220,40,141,0.038,35,-85,0.015,48,121,0.002,29,-115,0.001,63,29,0.001,40,36,0.020,39,-9,0.009,35,-4,0.008,16,42,0.001,11,110,0.009,-8,24,0.013,-12,-37,0.019,40,-77,0.014,36,-82,0.019,17,108,0.002,50,25,0.021,27,98,0.003,41,115,0.025,-17,49,0.003,-21,46,0.002,51,89,0.000,53,86,0.002,30,7,0.001,26,-10,0.000,41,4,0.003,-17,-62,0.001,-6,19,0.016,60,53,0.000,41,17,0.038,-6,-74,0.001,31,-80,0.000,-7,29,0.004,-44,147,0.000,41,-94,0.003,3,103,0.017,52,111,0.000,51,44,0.007,32,-6,0.037,-36,118,0.000,28,-11,0.001,4,43,0.002,-1,112,0.008,32,-87,0.004,46,40,0.010,8,-73,0.015,19,44,0.007,33,105,0.019,-5,30,0.018,-6,135,0.001,57,84,0.001,37,21,0.001,6,10,0.031,-2,115,0.004,10,99,0.007,22,92,0.262,56,56,0.004,52,59,0.004,13,20,0.002,47,-64,0.001,-10,-55,0.001,-11,26,0.007,56,103,0.001,-38,-70,0.000,-5,105,0.056,47,17,0.027,44,5,0.027,23,43,0.005,19,104,0.005,34,-98,0.006,-23,-51,0.016,-24,44,0.006,44,-108,0.001,58,51,0.007,20,-86,0.004,38,42,0.023,15,17,0.001,14,-12,0.005,10,-9,0.005,-9,119,0.022,38,-103,0.001,34,0,0.018,49,42,0.003,48,-81,0.001,-13,-63,0.000,2,45,0.007,1,22,0.003,16,96,0.098,6,121,0.003,26,86,0.350,40,113,0.036,-18,-61,0.000,53,-117,0.000,50,91,0.001,12,-14,0.013,49,-120,0.000,48,141,0.001,59,62,0.001,36,11,0.077,35,24,0.002,-31,-61,0.003,6,-69,0.001,40,-105,0.014,39,108,0.002,50,29,0.023,26,39,0.003,41,79,0.002,3,24,0.003,2,113,0.004,51,117,0.002,50,-112,0.000,45,35,0.015,21,41,0.013,-3,23,0.002,-6,39,0.014,-7,-36,0.012,60,17,0.005,17,-13,0.001,32,95,0.001,31,-108,0.001,28,34,0.001,8,-11,0.022,-30,-60,0.001,-34,151,0.041,-35,23,0.003,55,75,0.003,51,72,0.012,-3,117,0.003,31,53,0.020,28,-111,0.008,27,58,0.006,4,7,0.064,21,80,0.113,18,-78,0.005,-1,20,0.003,31,102,0.004,46,20,0.019,45,103,0.001,-38,143,0.001,55,77,0.002,-2,32,0.027,-6,107,0.006,-25,31,0.015,46,-93,0.001,57,48,0.002,37,57,0.009,33,54,0.001,28,94,0.001,9,44,0.008,-10,22,0.001,-9,25,0.003,-4,119,0.005,56,28,0.005,37,-86,0.007,5,-10,0.001,13,-8,0.008,9,-7,0.005,46,125,0.042,43,-71,0.012,-14,-172,0.001,0,35,0.156,-23,44,0.004,43,74,0.004,24,-100,0.005,23,47,0.004,1,99,0.011,15,100,0.024,14,48,0.003,25,78,0.043,38,70,0.018,35,120,0.104,37,109,0.012,15,5,0.001,11,10,0.053,48,-124,0.000,10,27,0.005,38,-75,0.012,53,73,0.001,49,70,0.000,29,55,0.005,14,17,0.001,44,142,0.001,25,60,0.002,5,45,0.002,2,17,0.001,-18,-48,0.005,-22,27,0.001,-41,175,0.000,-8,-70,0.001,-12,-75,0.020,40,85,0.001,39,-82,0.025,35,-77,0.019,50,95,0.000,12,14,0.011,-12,20,0.001,-37,150,0.001,59,26,0.002,39,63,0.003,36,-89,0.007,35,68,0.006,30,-115,0.003,39,80,0.005,54,54,0.013,53,125,0.001,30,64,0.001,26,75,0.074,7,-1,0.025,-20,33,0.019,51,129,0.004,-3,-58,0.001,-19,-47,0.005,-27,-60,0.006,41,76,0.003,36,100,0.002,-35,-65,0.002,30,106,0.226,6,119,0.000,54,103,0.001,32,67,0.005,31,-88,0.003,28,62,0.003,8,25,0.001,-16,39,0.010,55,15,0.003,31,25,0.001,42,-84,0.026,-1,40,0.004,33,116,0.288,-6,144,0.009,46,48,0.011,42,59,0.005,22,50,0.002,52,-107,0.000,9,-73,0.011,46,-65,0.001,-11,-76,0.012,-14,22,0.001,57,28,0.004,56,9,0.009,-39,179,0.001,13,75,0.048,10,123,0.073,28,122,0.130,43,-116,0.014,24,90,0.403,-33,153,0.001,56,32,0.002,34,132,0.034,-4,-53,0.001,-5,120,0.031,44,46,0.003,24,73,0.075,20,52,0.002,13,105,0.011,-28,32,0.016,44,-67,0.001,23,83,0.047,38,-9,0.081,14,-87,0.047,11,21,0.001,25,122,0.190,-13,31,0.002,61,27,0.002,58,43,0.002,34,53,0.005,15,-23,0.005,49,81,0.001,10,47,0.001,-37,146,0.003,-19,-70,0.006,53,29,0.008,48,7,0.029,5,17,0.003,1,-50,0.000,-19,15,0.001,48,86,0.001,63,8,0.001,-32,-52,0.016,40,57,0.001,39,-110,0.001,36,68,0.021,50,131,0.001,-31,-50,0.004,5,103,0.024,39,35,0.015,36,-109,0.001,-21,-56,0.001,29,106,0.246,7,18,0.003,-20,-41,0.008,-17,28,0.010,54,18,0.012,30,44,0.006,6,30,0.005,-21,-52,0.001,-31,153,0.003,41,40,0.002,21,-159,0.001,18,101,0.022,36,128,0.115,17,30,0.001,51,-114,0.015,-17,-46,0.002,27,-104,0.001,45,-68,0.001,42,94,0.001,41,-75,0.023,-16,-68,0.006,21,-78,0.018,52,84,0.002,-40,-62,0.001,32,23,0.002,31,12,0.001,31,109,0.098,46,9,0.015,-4,-43,0.007,6,-9,0.008,-29,27,0.008,42,15,0.022,33,-3,0.008,-5,-78,0.003,22,93,0.068,0,117,0.002,52,16,0.017,13,47,0.004,-10,-50,0.001,24,94,0.055,33,-101,0.009,44,42,0.019,58,93,0.004,1,174,0.001,-4,22,0.001,13,77,0.089,47,-3,0.013,44,-71,0.003,62,25,0.002,34,-118,0.187,14,5,0.012,11,49,0.001,10,4,0.006,62,12,0.000,61,31,0.001,14,24,0.005,48,-100,0.001,-9,-73,0.002,25,-13,0.000,2,74,0.001,20,93,0.032,53,1,0.003,49,-2,0.005,48,43,0.003,29,31,0.078,44,102,0.000,40,142,0.024,35,-86,0.014,53,-110,0.001,48,122,0.005,29,-112,0.001,63,44,0.000,40,29,0.025,35,-5,0.058,16,43,0.006,11,109,0.042,-8,17,0.006,7,101,0.034,40,-76,0.044,36,-81,0.009,17,107,0.026,50,26,0.023,27,97,0.004,5,-3,0.062,-17,48,0.005,-21,45,0.004,51,80,0.001,53,85,0.006,50,-119,0.004,30,8,0.001,41,3,0.143,-17,-63,0.003,36,141,0.080,-6,20,0.013,-33,-60,0.013,30,119,0.077,58,10,0.001,60,54,0.000,41,20,0.031,17,26,0.001,31,-81,0.009,-7,32,0.003,-44,148,0.001,41,-95,0.014,3,102,0.141,51,43,0.008,32,-5,0.020,28,-10,0.003,4,44,0.003,-1,111,0.008,32,-86,0.013,46,37,0.006,8,-72,0.024,19,43,0.007,33,108,0.054,-5,29,0.008,57,83,0.000,19,-100,0.032,37,24,0.072,-2,116,0.005,10,100,0.009,-10,31,0.003,22,89,0.856,56,49,0.005,52,60,0.002,33,-118,0.125,13,19,0.002,47,-65,0.003,-10,-54,0.001,-11,25,0.007,56,104,0.001,-38,-73,0.008,-3,141,0.009,47,16,0.028,44,6,0.008,23,42,0.008,19,103,0.008,34,-101,0.002,-23,-48,0.021,44,-107,0.001,58,52,0.002,38,47,0.022,15,16,0.001,14,-15,0.021,10,-8,0.007,14,42,0.001,14,31,0.003,38,-102,0.001,34,-3,0.024,15,-95,0.000,49,41,0.004,48,-80,0.001,2,46,0.039,1,21,0.003,-18,49,0.016,16,105,0.041,-22,56,0.018,-3,103,0.014,26,99,0.005,40,114,0.069,5,11,0.073,-18,-60,0.001,16,-16,0.006,53,-122,0.003,50,92,0.001,12,-13,0.006,49,-121,0.002,59,61,0.007,40,1,0.008,36,12,0.002,-31,-58,0.003,6,-68,0.001,40,-104,0.005,39,107,0.032,54,63,0.002,50,30,0.013,26,40,0.002,-22,-50,0.019,41,82,0.006,3,23,0.006,2,114,0.001,51,124,0.001,45,30,0.007,21,44,0.008,-3,18,0.004,-6,40,0.022,-7,-37,0.013,30,131,0.001,60,18,0.005,17,-10,0.001,32,96,0.001,31,-109,0.002,28,35,0.001,-29,-48,0.006,8,-10,0.025,-30,-63,0.001,55,74,0.023,51,71,0.002,-3,120,0.012,31,68,0.007,28,-110,0.005,27,57,0.011,4,8,0.096,21,79,0.092,-1,19,0.009,-5,-48,0.002,31,101,0.002,46,17,0.038,22,27,0.000,-2,29,0.031,-8,-77,0.005,-6,108,0.001,-25,30,0.025,5,10,0.027,46,-92,0.006,-34,116,0.002,57,47,0.003,37,60,0.009,33,53,0.003,28,95,0.003,9,43,0.032,-10,27,0.004,-15,33,0.005,22,117,0.010,37,-87,0.015,-4,-80,0.009,13,-9,0.004,9,-4,0.004,46,126,0.048,43,-96,0.007,24,38,0.001,-22,-54,0.001,0,36,0.055,67,55,0.001,47,52,0.006,43,73,0.003,24,-107,0.026,23,46,0.004,1,102,0.014,15,99,0.005,-23,-68,0.003,11,32,0.003,25,77,0.055,38,75,0.001,35,119,0.207,37,112,0.068,15,-12,0.006,11,9,0.136,10,28,0.004,38,-74,0.001,53,76,0.001,49,69,0.000,44,143,0.004,25,59,0.001,5,48,0.001,2,18,0.000,-18,-51,0.003,-22,28,0.004,48,99,0.000,26,119,0.061,-12,-74,0.005,40,86,0.000,39,-83,0.022,35,-78,0.038,12,15,0.009,-12,37,0.003,59,25,0.019,39,62,0.003,36,-88,0.008,35,67,0.008,30,-114,0.001,-8,-39,0.021,39,79,0.005,54,59,0.006,53,128,0.001,50,66,0.000,30,61,0.003,-39,176,0.002,26,76,0.127,7,-2,0.029,57,-4,0.004,17,-76,0.010,-3,-59,0.005,-26,24,0.001,-27,-61,0.001,45,66,0.001,60,-1,0.001,41,75,0.002,30,95,0.001,4,-58,0.001,-16,-63,0.000,32,68,0.007,31,-89,0.009,28,63,0.002,8,26,0.000,-16,40,0.026,-39,-60,0.002,55,14,0.018,31,24,0.001,28,-82,0.043,42,-87,0.057,21,115,0.000,-1,39,0.007,33,115,0.286,-6,141,0.001,46,45,0.004,45,134,0.007,42,60,0.023,-11,33,0.003,22,55,0.003,6,1,0.038,52,-106,0.008,9,-70,0.025,46,-64,0.006,-11,-77,0.007,-14,19,0.001,57,27,0.004,56,10,0.017,52,5,0.126,10,124,0.123,43,-117,0.000,24,91,0.411,-33,152,0.012,34,129,0.013,-4,-52,0.001,44,47,0.002,43,-100,0.000,24,74,0.071,67,35,0.001,13,108,0.009,-28,33,0.008,44,-66,0.000,23,82,0.047,20,-156,0.004,38,-8,0.012,14,-86,0.014,11,28,0.004,-13,30,0.003,61,22,0.005,58,44,0.001,34,54,0.002,49,84,0.002,48,-95,0.001,10,48,0.001,-37,145,0.004,53,32,0.006,48,8,0.057,5,20,0.003,1,-51,0.000,48,87,0.002,-12,-62,0.003,-32,-59,0.008,40,58,0.003,39,-111,0.001,36,53,0.047,12,75,0.028,-31,-51,0.055,39,34,0.032,36,-108,0.003,-8,-35,0.064,29,105,0.212,7,17,0.006,-17,27,0.004,54,23,0.010,30,41,0.001,6,35,0.002,12,120,0.001,18,102,0.007,36,129,0.047,17,29,0.001,51,-115,0.001,32,113,0.188,27,-105,0.004,45,-69,0.001,41,-72,0.068,-16,-75,0.000,21,-79,0.010,32,24,0.000,31,11,0.001,-25,-60,0.001,46,10,0.014,33,79,0.000,66,22,0.001,-29,26,0.001,-48,-66,0.000,19,-81,0.001,18,42,0.008,33,0,0.002,-5,-79,0.010,22,94,0.006,0,118,0.005,52,17,0.038,13,42,0.006,9,51,0.001,-10,-45,0.001,24,95,0.015,-35,-61,0.005,33,-98,0.005,44,43,0.017,43,-8,0.024,1,173,0.000,-4,23,0.003,13,80,0.120,47,12,0.031,44,-70,0.007,62,26,0.006,23,118,0.029,14,6,0.023,10,1,0.019,62,9,0.001,14,21,0.002,11,-63,0.004,29,9,0.000,-9,-74,0.005,-13,-69,0.001,20,94,0.022,48,44,0.003,44,103,0.000,5,40,0.005,35,-87,0.006,-19,46,0.004,53,-111,0.001,48,123,0.007,29,-113,0.000,14,109,0.026,63,43,0.000,40,30,0.070,-20,-45,0.007,35,-6,0.007,16,44,0.036,-8,18,0.006,7,100,0.034,40,-83,0.021,36,-80,0.020,17,78,0.099,50,23,0.029,27,104,0.069,-17,47,0.007,51,79,0.001,53,88,0.028,50,-118,0.001,30,5,0.001,7,-58,0.001,6,127,0.005,-17,-64,0.003,-6,17,0.009,-35,-56,0.057,30,120,0.100,45,10,0.208,17,25,0.001,32,133,0.003,31,-82,0.005,-7,31,0.005,-26,-65,0.006,41,-92,0.005,3,101,0.003,52,113,0.000,51,42,0.006,32,-4,0.008,28,-9,0.002,27,36,0.001,4,29,0.002,-1,110,0.029,-36,147,0.001,32,-85,0.010,31,80,0.001,46,38,0.001,8,-79,0.009,19,42,0.011,33,107,0.037,-5,36,0.018,-6,133,0.003,65,73,0.002,19,-101,0.045,37,23,0.014,52,-66,0.000,-2,113,0.002,-10,32,0.005,-2,11,0.001,22,90,0.238,56,50,0.006,37,8,0.001,52,45,0.005,13,14,0.005,47,-66,0.001,46,87,0.001,-11,28,0.004,56,97,0.001,-38,-72,0.014,47,15,0.013,44,7,0.005,24,-14,0.000,23,41,0.003,19,102,0.007,34,-100,0.001,-36,-62,0.002,-23,-49,0.026,44,-106,0.001,62,54,0.001,58,49,0.003,38,48,0.017,34,43,0.004,15,15,0.001,14,-14,0.005,10,-11,0.009,61,62,0.000,38,-97,0.007,34,-2,0.027,15,-96,0.005,49,44,0.003,48,-71,0.007,2,43,0.006,-28,-62,0.001,1,24,0.003,-18,50,0.013,16,106,0.015,53,-8,0.006,26,100,0.022,40,115,0.058,38,121,0.001,16,-7,0.002,-22,-56,0.002,12,-12,0.004,49,-118,0.001,48,143,0.001,5,121,0.008,36,-3,0.007,-31,-59,0.003,6,-71,0.003,40,-111,0.040,39,106,0.001,54,64,0.002,50,59,0.002,26,37,0.001,41,81,0.005,3,22,0.005,-21,16,0.000,51,123,0.002,50,-114,0.006,45,29,0.033,21,43,0.013,57,10,0.005,-3,17,0.006,-6,37,0.008,-7,-50,0.002,30,132,0.001,60,19,0.001,17,-11,0.001,32,105,0.018,31,-110,0.007,28,36,0.002,8,-9,0.012,-30,-62,0.001,-15,34,0.026,55,73,0.003,51,70,0.002,-3,119,0.002,31,67,0.005,28,-109,0.004,27,64,0.002,4,9,0.029,21,90,0.011,-1,18,0.002,-2,-77,0.002,-5,-49,0.002,-8,141,0.001,46,18,0.018,43,116,0.001,22,28,0.000,-17,-45,0.001,-2,30,0.094,-6,105,0.039,-25,29,0.009,46,-95,0.003,-11,39,0.012,57,50,0.003,37,59,0.009,33,56,0.001,28,96,0.004,9,30,0.006,-10,28,0.002,-33,-71,0.024,-15,36,0.031,56,22,0.008,37,-84,0.015,-4,-79,0.023,13,-14,0.014,9,-5,0.017,46,131,0.049,43,-97,0.002,24,39,0.003,0,29,0.016,-23,30,0.002,47,51,0.001,43,48,0.013,24,-106,0.003,23,45,0.004,1,101,0.014,15,98,0.010,-23,-69,0.001,14,-61,0.007,11,31,0.006,-9,-36,0.030,25,80,0.087,62,66,0.003,58,69,0.004,38,76,0.002,35,118,0.211,37,111,0.047,15,-13,0.004,11,-16,0.001,10,25,0.004,-9,114,0.109,5,-54,0.001,53,75,0.002,49,72,0.001,29,49,0.028,44,144,0.002,25,46,0.004,5,47,0.002,2,15,0.002,-18,-50,0.004,-19,37,0.008,48,100,0.000,26,120,0.142,-12,-73,0.001,40,87,0.000,39,-84,0.088,36,26,0.001,35,-79,0.019,12,16,0.006,-7,110,0.114,-12,38,0.003,59,32,0.004,39,61,0.002,36,-87,0.011,35,66,0.005,30,-109,0.001,-8,-38,0.014,7,44,0.004,39,78,0.011,54,60,0.007,30,62,0.008,18,111,0.019,26,73,0.038,7,-3,0.014,17,-77,0.011,-3,-56,0.003,12,125,0.024,-7,-55,0.000,-27,-66,0.001,45,65,0.000,41,62,0.007,-21,149,0.001,30,96,0.001,-37,-65,0.000,45,-110,0.001,-16,-62,0.001,-35,136,0.001,-20,-67,0.000,54,101,0.002,32,61,0.002,31,-90,0.005,28,64,0.001,8,27,0.002,-16,17,0.002,55,13,0.063,31,23,0.002,28,-81,0.062,42,-86,0.009,21,110,0.088,-1,38,0.081,33,118,0.177,-6,142,0.001,65,20,0.001,46,46,0.000,43,80,0.002,45,133,0.010,22,56,0.002,52,-105,0.001,9,-71,0.004,46,-67,0.003,-14,20,0.001,57,14,0.006,56,11,0.016,52,6,0.085,-38,176,0.009,24,92,0.264,-33,151,0.001,34,130,0.002,44,48,0.000,24,75,0.074,67,34,0.003,13,107,0.003,44,-65,0.002,43,44,0.023,58,-6,0.001,20,-75,0.040,1,129,0.001,11,27,0.005,14,49,0.006,-13,29,0.033,49,109,0.000,58,41,0.003,-37,-63,0.002,34,51,0.022,49,83,0.010,11,-84,0.006,-8,122,0.000,10,45,0.002,-18,31,0.020,-19,-68,0.000,53,31,0.016,5,19,0.001,48,88,0.003,-12,-61,0.007,-32,-58,0.006,40,59,0.003,39,-112,0.000,36,54,0.023,16,49,0.001,50,129,0.005,12,76,0.126,-20,26,0.001,39,33,0.044,-8,-34,0.062,29,108,0.094,7,16,0.005,3,-51,0.000,-17,26,0.002,-20,46,0.003,54,24,0.021,30,42,0.001,6,36,0.009,-25,-54,0.007,12,121,0.002,41,42,0.017,-29,-57,0.001,21,-157,0.023,18,99,0.030,36,130,0.020,17,32,0.001,32,114,0.096,-6,-35,0.039,-7,22,0.013,27,-106,0.002,45,-74,0.013,42,108,0.001,4,-77,0.002,41,-73,0.080,-16,-74,0.001,21,-76,0.010,52,102,0.000,31,10,0.001,-25,-61,0.001,9,119,0.005,46,-1,0.019,-1,74,0.001,5,-9,0.006,-29,25,0.009,42,13,0.046,4,96,0.004,18,39,0.001,33,-1,0.002,-5,-72,0.000,-30,152,0.001,-1,-80,0.015,-18,-58,0.000,22,99,0.008,52,18,0.026,13,41,0.011,-10,-44,0.001,24,96,0.010,23,-109,0.002,33,-99,0.001,44,44,0.023,43,-9,0.001,-4,24,0.012,13,79,0.095,47,11,0.026,44,-69,0.009,62,15,0.000,23,117,0.332,38,17,0.024,0,-52,0.000,34,-120,0.007,14,11,0.002,10,2,0.011,47,92,0.000,62,10,0.001,14,22,0.002,29,12,0.000,-9,-75,0.002,-13,-70,0.000,20,95,0.038,49,0,0.016,48,37,0.012,5,39,0.023,35,-96,0.006,-19,45,0.002,-22,-175,0.002,48,124,0.011,63,42,0.000,40,31,0.038,16,37,0.010,-8,19,0.004,26,-97,0.009,7,99,0.006,-32,25,0.001,40,-82,0.026,36,-79,0.026,17,77,0.083,-33,-64,0.004,50,24,0.020,27,103,0.040,-17,46,0.002,51,78,0.001,53,87,0.011,50,-121,0.000,30,6,0.001,7,-59,0.001,21,-14,0.000,-17,-65,0.003,-6,18,0.011,30,117,0.114,64,53,0.001,45,9,0.082,60,56,0.000,41,-122,0.001,17,28,0.001,-17,-51,0.002,31,-83,0.007,-7,34,0.004,-26,-64,0.002,41,-93,0.018,52,114,0.013,51,41,0.007,28,-8,0.001,4,30,0.002,-20,36,0.005,32,-84,0.012,31,79,0.005,46,43,0.003,8,-78,0.001,-34,117,0.001,19,41,0.002,6,-4,0.019,-2,23,0.004,-5,35,0.018,-6,134,0.001,57,101,0.000,19,-102,0.029,37,34,0.015,-2,114,0.006,-10,29,0.005,-11,21,0.001,0,101,0.016,-34,23,0.006,56,51,0.005,37,7,0.001,52,46,0.004,33,-116,0.016,13,13,0.005,47,-67,0.001,46,88,0.001,-11,27,0.005,56,98,0.001,47,14,0.022,44,8,0.030,0,12,0.001,23,40,0.005,19,101,0.023,34,-103,0.002,-23,-46,0.037,44,-105,0.001,58,50,0.021,20,-99,0.031,38,45,0.019,34,44,0.010,10,-10,0.005,-9,40,0.002,38,-96,0.002,34,-5,0.071,15,-97,0.000,49,43,0.002,48,-70,0.002,-9,132,0.000,2,44,0.006,1,23,0.003,16,107,0.008,53,-9,0.005,26,97,0.001,40,116,0.059,38,122,0.030,16,-6,0.001,12,-11,0.005,49,-119,0.006,-31,23,0.000,23,102,0.025,36,-2,0.012,7,135,0.001,-31,-56,0.002,6,-70,0.002,3,12,0.032,40,-110,0.001,39,105,0.001,54,61,0.006,50,60,0.002,30,55,0.002,26,38,0.003,41,84,0.007,3,21,0.010,2,112,0.009,51,122,0.002,12,98,0.000,-13,-41,0.006,-3,20,0.002,-6,38,0.009,-7,-51,0.002,-27,26,0.009,42,145,0.002,60,20,0.001,32,106,0.058,31,-111,0.004,28,37,0.001,8,-8,0.011,-30,-65,0.002,-35,20,0.003,55,72,0.002,51,69,0.002,-3,114,0.005,31,66,0.020,28,-108,0.001,27,63,0.003,42,-77,0.010,4,10,0.032,21,89,0.051,-1,17,0.001,-3,-46,0.002,-5,-50,0.001,43,115,0.000,-2,35,0.035,-6,106,0.107,-25,28,0.003,46,-94,0.003,-4,-51,0.001,57,49,0.003,37,54,0.001,33,55,0.001,-9,148,0.002,28,97,0.001,9,29,0.008,-10,25,0.002,-15,35,0.043,56,23,0.007,37,-85,0.009,34,91,0.000,-4,-78,0.003,13,-15,0.020,46,132,0.035,43,-98,0.001,24,40,0.003,-4,138,0.002,0,30,0.042,-23,29,0.003,-30,-53,0.013,47,50,0.001,43,47,0.018,24,-105,0.005,23,76,0.092,1,104,0.168,-4,-48,0.002,14,-60,0.006,11,30,0.006,-9,-37,0.008,25,79,0.093,-13,24,0.001,38,73,0.001,35,117,0.253,37,122,0.093,15,-14,0.003,10,26,0.003,5,-55,0.011,1,-58,0.000,53,70,0.007,29,52,0.017,44,145,0.001,25,45,0.004,2,16,0.001,-18,-45,0.001,-8,-75,0.001,26,117,0.051,-12,-72,0.000,25,-98,0.013,40,88,0.000,39,-85,0.015,36,27,0.000,50,94,0.000,12,17,0.006,-7,109,0.200,-12,39,0.005,62,131,0.000,59,31,0.101,39,60,0.002,36,-86,0.033,35,65,0.012,30,-108,0.001,-8,-37,0.015,7,43,0.005,39,77,0.024,-20,47,0.018,54,57,0.035,30,67,0.028,26,74,0.058,7,-4,0.020,-3,-57,0.001,12,126,0.009,45,68,0.000,41,61,0.039,21,74,0.096,30,93,0.001,45,-111,0.002,42,133,0.006,-29,-63,0.002,-20,-66,0.004,54,102,0.001,-40,-71,0.002,32,62,0.002,31,-91,0.004,28,65,0.001,8,28,0.006,-16,18,0.000,55,44,0.012,32,-83,0.014,31,22,0.007,28,-80,0.015,9,78,0.140,42,-89,0.018,21,109,0.025,-1,37,0.071,33,117,0.201,-6,155,0.002,43,79,0.003,45,136,0.000,42,58,0.001,4,117,0.002,22,53,0.002,52,-104,0.001,9,-68,0.016,46,-66,0.001,-14,17,0.009,57,13,0.020,0,100,0.021,52,7,0.058,10,122,0.005,-33,-57,0.002,24,85,0.163,-33,150,0.001,34,127,0.024,-5,117,0.001,-24,-55,0.003,43,-102,0.000,24,76,0.063,-10,-71,0.000,20,71,0.023,-36,-71,0.017,67,33,0.003,13,102,0.046,44,-64,0.003,43,43,0.011,23,80,0.077,20,-74,0.008,0,-79,0.013,11,26,0.008,-13,36,0.002,61,24,0.010,58,42,0.003,-10,126,0.006,34,52,0.019,49,86,0.001,11,-85,0.008,48,-93,0.001,10,46,0.001,-18,32,0.035,-19,-69,0.004,53,42,0.006,29,24,0.001,5,118,0.008,5,14,0.003,14,39,0.030,48,129,0.006,-12,-60,0.002,-32,-57,0.003,40,60,0.002,36,55,0.024,16,50,0.002,50,130,0.002,12,45,0.010,-45,-68,0.000,39,32,0.019,29,107,0.281,7,15,0.003,-17,25,0.001,54,21,0.025,53,94,0.001,30,31,0.179,6,33,0.003,12,122,0.017,64,34,0.000,41,41,0.002,18,100,0.039,17,31,0.001,51,-109,0.000,32,115,0.141,-7,21,0.014,27,-107,0.002,45,-75,0.036,4,-76,0.018,41,-70,0.018,3,127,0.001,-16,-73,0.001,21,-77,0.017,52,103,0.001,-40,-67,0.001,31,9,0.001,32,-111,0.008,31,122,0.550,46,0,0.018,18,-11,0.001,-36,151,0.002,42,14,0.027,4,97,0.016,6,6,0.054,33,2,0.001,-5,-73,0.007,-15,-50,0.001,22,100,0.016,0,120,0.001,52,19,0.028,13,44,0.051,47,-88,0.001,-10,-47,0.001,24,121,0.101,23,-110,0.002,33,-96,0.022,-13,38,0.000,44,13,0.025,-4,25,0.004,47,10,0.054,44,-68,0.005,62,16,0.001,23,116,0.123,38,18,0.000,-38,-59,0.004,14,12,0.001,-36,145,0.001,10,-1,0.013,47,91,0.001,-9,123,0.011,-40,177,0.005,14,27,0.001,48,-105,0.000,29,11,0.000,-9,-76,0.004,-13,-71,0.000,20,96,0.060,53,-2,0.204,49,-1,0.011,48,38,0.066,38,99,0.001,35,-97,0.035,-19,48,0.062,53,-109,0.001,48,117,0.000,63,41,0.001,40,32,0.026,16,38,0.003,-4,-42,0.009,-8,20,0.002,-12,-49,0.001,-4,31,0.039,-32,26,0.001,40,-81,0.027,36,-78,0.012,17,80,0.105,50,21,0.045,27,102,0.018,26,15,0.001,3,48,0.000,-17,45,0.001,51,77,0.001,50,-120,0.003,30,11,0.000,-33,-69,0.005,7,-60,0.000,41,-8,0.093,21,-15,0.000,-17,-66,0.003,-6,15,0.018,30,118,0.100,-37,-72,0.020,64,54,0.001,45,12,0.083,60,57,0.000,41,-123,0.001,17,27,0.001,-7,33,0.004,3,107,0.001,52,115,0.001,51,32,0.021,27,34,0.002,4,31,0.006,-53,-70,0.000,-1,124,0.002,32,-91,0.004,31,78,0.054,46,44,0.002,8,-77,0.002,-4,142,0.002,-34,118,0.000,19,32,0.001,-2,24,0.003,-5,34,0.016,69,18,0.000,57,104,0.001,19,-103,0.021,37,33,0.016,-2,135,0.001,-10,30,0.004,-14,-39,0.020,-4,115,0.049,-34,24,0.001,56,52,0.005,52,47,0.004,33,-117,0.144,13,16,0.003,-27,152,0.001,47,-52,0.006,46,85,0.004,24,125,0.002,-14,-52,0.001,-34,-57,0.003,56,99,0.001,47,13,0.023,44,9,0.051,24,-12,0.000,23,39,0.002,34,-102,0.002,-23,-47,0.098,-42,148,0.003,44,-104,0.000,58,47,0.001,20,-98,0.039,38,46,0.021,35,80,0.001,34,41,0.007,14,-24,0.001,10,35,0.007,-9,39,0.003,61,64,0.001,38,-99,0.001,34,-4,0.044,49,14,0.023,48,-69,0.001,2,41,0.002,1,26,0.002,16,108,0.047,-22,35,0.003,48,74,0.000,26,98,0.001,40,109,0.005,38,127,0.062,16,-5,0.000,50,87,0.000,12,-10,0.003,49,-116,0.001,-31,26,0.002,40,4,0.000,-20,-40,0.015,-31,-57,0.003,6,-65,0.000,3,11,0.009,40,-109,0.001,39,104,0.003,54,62,0.012,50,57,0.002,30,56,0.007,26,51,0.019,41,83,0.005,3,28,0.004,-20,29,0.005,51,121,0.001,12,99,0.009,45,31,0.001,21,37,0.000,18,121,0.014,-3,19,0.006,-7,-48,0.002,-27,25,0.003,17,-9,0.000,54,111,0.000,32,107,0.066,31,-112,0.001,28,38,0.001,-30,-64,0.001,-35,19,0.038,55,71,0.001,52,143,0.000,51,76,0.005,-3,113,0.008,31,65,0.011,28,-107,0.004,27,62,0.003,42,-76,0.019,4,11,0.009,22,-81,0.015,21,92,0.022,-1,16,0.002,-39,-67,0.005,-2,-79,0.031,-5,-51,0.001,43,114,0.001,42,67,0.001,22,26,0.000,-2,36,0.007,-25,27,0.003,46,-105,0.000,57,52,0.002,33,58,0.001,28,98,0.001,9,32,0.004,-10,26,0.004,-15,38,0.005,56,24,0.013,37,-90,0.004,34,92,0.000,-12,-63,0.001,13,-12,0.002,46,129,0.017,43,-99,0.001,24,33,0.027,-14,-176,0.000,0,31,0.047,-23,32,0.001,47,49,0.001,43,46,0.030,24,-104,0.008,23,75,0.094,1,103,0.013,15,96,0.009,11,29,0.003,-43,-70,0.000,-9,-38,0.005,25,82,0.233,-13,23,0.001,38,74,0.000,37,121,0.125,15,-15,0.006,10,23,0.001,-32,142,0.001,5,-52,0.001,53,69,0.002,49,74,0.015,29,51,0.009,44,146,0.000,25,48,0.003,2,13,0.003,-18,-44,0.006,-29,-49,0.020,-8,-74,0.003,26,118,0.047,-12,-71,0.000,25,-99,0.006,40,81,0.005,39,-86,0.046,36,28,0.002,50,123,0.002,12,18,0.003,-7,112,0.076,-12,40,0.008,59,30,0.046,39,59,0.003,36,-85,0.007,35,56,0.001,-7,157,0.000,30,-111,0.001,-8,-36,0.010,7,42,0.002,-17,36,0.037,54,58,0.003,50,61,0.000,30,68,0.017,26,71,0.007,7,-5,0.023,-26,27,0.006,-27,-64,0.004,45,67,0.001,41,64,0.000,21,73,0.150,57,-3,0.003,30,94,0.001,45,-108,0.004,42,134,0.000,-16,-60,0.000,21,-102,0.034,-20,-65,0.010,-40,-70,0.000,32,63,0.005,28,66,0.002,8,21,0.000,-16,19,0.000,55,43,0.013,32,-82,0.005,31,21,0.016,9,77,0.251,42,-88,0.048,19,55,0.000,21,112,0.077,33,120,0.232,-6,156,0.001,65,22,0.002,43,78,0.015,45,135,0.001,4,118,0.011,22,54,0.003,52,-103,0.000,9,-69,0.029,-14,18,0.007,57,16,0.003,52,8,0.043,10,119,0.002,24,86,0.172,-33,149,0.002,34,128,0.028,-5,124,0.002,-24,-54,0.004,47,-124,0.000,43,-103,0.001,24,69,0.041,-11,121,0.001,20,72,0.008,13,101,0.315,44,-63,0.012,43,42,0.008,23,79,0.064,38,-5,0.005,0,-78,0.015,11,25,0.007,-9,-34,0.054,25,110,0.043,-13,35,0.006,61,23,0.003,58,39,0.001,34,49,0.040,49,85,0.003,11,-86,0.024,20,85,0.049,-18,29,0.007,53,41,0.006,5,13,0.004,48,130,0.013,63,20,0.001,-32,-56,0.003,40,53,0.001,36,56,0.004,16,51,0.001,50,127,0.004,12,46,0.006,39,31,0.016,54,11,0.022,16,-62,0.000,29,102,0.003,7,14,0.004,41,126,0.027,-17,24,0.002,54,22,0.009,53,93,0.001,30,32,0.652,6,34,0.001,12,123,0.007,64,35,0.001,41,44,0.015,18,97,0.034,17,34,0.003,-21,119,0.000,32,116,0.197,-7,24,0.056,27,-100,0.001,45,-72,0.013,41,-71,0.052,3,126,0.004,-16,-72,0.002,21,-82,0.002,52,104,0.015,-40,-66,0.001,32,35,0.064,31,8,0.001,32,-110,0.020,31,121,0.307,-29,-66,0.001,-38,144,0.004,42,27,0.015,4,98,0.020,19,-76,0.001,18,37,0.005,33,1,0.001,-5,-74,0.001,22,97,0.044,0,129,0.001,52,20,0.027,13,43,0.001,-10,-46,0.000,24,122,0.147,-9,15,0.005,-4,129,0.016,33,-97,0.011,44,14,0.001,-8,145,0.001,-4,26,0.002,47,9,0.101,-13,-50,0.001,23,115,0.107,38,23,0.009,14,9,0.011,10,0,0.030,47,90,0.001,14,28,0.001,5,-53,0.000,-8,128,0.000,29,6,0.001,-9,-77,0.008,20,97,0.035,53,-3,0.033,-3,107,0.011,49,2,0.040,48,39,0.083,38,100,0.001,35,-98,0.003,-19,47,0.008,53,-114,0.002,48,118,0.000,40,25,0.004,16,39,0.011,26,-99,0.003,-12,-48,0.002,-32,27,0.006,40,-80,0.047,36,-77,0.006,17,79,0.275,50,22,0.037,12,-71,0.001,27,101,0.012,7,50,0.001,41,106,0.001,3,47,0.004,-16,167,0.001,-21,49,0.009,51,84,0.001,30,12,0.000,7,-61,0.001,6,126,0.048,-25,-59,0.001,-17,-67,0.017,-6,16,0.015,30,123,0.025,8,127,0.014,45,11,0.063,60,58,0.000,-29,-54,0.008,-6,-65,0.000,-7,36,0.015,-26,-66,0.000,41,-107,0.000,52,116,0.001,51,31,0.005,32,-9,0.008,4,32,0.003,-53,-71,0.000,-1,123,0.004,32,-90,0.016,31,77,0.105,46,41,0.007,8,-76,0.012,19,31,0.001,-2,21,0.001,-5,33,0.013,48,95,0.000,5,-2,0.022,-10,148,0.010,37,36,0.036,-2,136,0.001,-10,35,0.012,-14,-38,0.003,-18,-65,0.007,-34,21,0.002,56,45,0.016,52,48,0.010,13,15,0.003,47,-53,0.003,46,86,0.001,24,126,0.002,-14,-55,0.000,-34,-56,0.002,56,100,0.000,-38,-61,0.002,47,28,0.040,44,10,0.027,-11,166,0.000,19,107,0.001,-23,-44,0.029,-24,33,0.001,44,-103,0.004,58,48,0.001,20,-97,0.050,35,79,0.001,34,42,0.004,15,28,0.001,10,36,0.003,-9,38,0.003,61,63,0.000,38,-98,0.002,49,13,0.025,48,-68,0.003,-2,104,0.031,2,42,0.002,1,25,0.003,16,101,0.045,-22,36,0.001,49,-98,0.002,48,75,0.000,26,95,0.077,40,110,0.041,2,-71,0.001,1,10,0.002,38,128,0.036,16,-4,0.001,12,-9,0.004,49,-117,0.002,63,76,0.003,-31,25,0.001,40,-3,0.180,35,27,0.001,-17,146,0.004,-31,-54,0.003,3,10,0.020,39,103,0.002,54,67,0.002,50,58,0.011,30,53,0.010,27,129,0.002,6,47,0.004,3,27,0.003,51,112,0.001,12,100,0.015,45,26,0.039,21,40,0.011,18,122,0.013,-14,-45,0.001,-3,14,0.001,-7,-49,0.003,30,87,0.000,-27,28,0.114,42,143,0.006,60,22,0.002,32,108,0.051,-17,-40,0.005,31,-113,0.001,28,39,0.001,-30,-67,0.001,55,70,0.002,51,75,0.000,-3,116,0.031,31,64,0.003,28,-106,0.012,27,61,0.002,42,-79,0.011,4,12,0.017,22,-80,0.029,21,91,0.009,-1,15,0.001,-2,-78,0.031,-5,-44,0.014,43,113,0.002,42,68,0.001,6,-3,0.022,-2,33,0.000,-6,104,0.002,-25,26,0.007,-28,-61,0.002,57,51,0.002,37,56,0.015,33,57,0.000,28,99,0.002,9,31,0.004,-15,37,0.006,22,121,0.098,56,17,0.003,37,-91,0.003,13,-13,0.005,46,130,0.022,43,-92,0.005,24,34,0.003,-22,166,0.001,0,32,0.031,-23,31,0.021,-5,144,0.003,47,48,0.001,43,45,0.021,24,-111,0.002,23,74,0.102,15,95,0.004,11,36,0.002,-43,-71,0.001,-9,-39,0.006,25,81,0.113,-13,22,0.001,15,-16,0.021,48,-119,0.001,10,24,0.004,5,38,0.024,20,122,0.000,53,72,0.001,49,73,0.017,-1,-48,0.003,29,46,0.002,-9,127,0.006,25,47,0.004,2,14,0.002,-18,-47,0.002,-19,34,0.006,49,-102,0.001,-8,-73,0.001,-12,-70,0.000,40,82,0.007,39,-87,0.009,50,124,0.002,12,19,0.002,-7,111,0.134,7,152,0.002,62,129,0.002,59,29,0.007,39,58,0.002,36,-84,0.009,35,55,0.002,30,-110,0.002,-8,-43,0.002,7,41,0.015,-17,35,0.013,54,31,0.013,50,62,0.000,30,65,0.001,26,72,0.009,7,-6,0.019,-27,-50,0.008,-26,28,0.027,-27,-65,0.029,45,62,0.001,41,63,0.002,21,76,0.092]],["2000",[6,159,0.001,30,99,0.002,45,-109,0.001,42,115,0.006,4,-54,0.000,-16,-67,0.018,21,-103,0.006,-20,-64,0.004,-40,-69,0.001,32,64,0.001,28,67,0.008,8,22,0.000,-15,133,0.000,-16,20,0.000,55,42,0.006,32,-81,0.011,31,36,0.098,9,80,0.013,42,-91,0.007,19,54,0.001,21,111,0.186,-3,-51,0.001,33,119,0.164,65,21,0.001,46,49,0.010,43,77,0.041,45,130,0.018,4,119,0.007,22,59,0.003,9,-82,0.003,46,-60,0.002,-14,15,0.008,-15,-76,0.001,57,15,0.007,52,9,0.060,10,120,0.005,24,87,0.168,0,-51,0.008,-5,123,0.018,-24,-53,0.009,-28,-58,0.018,43,0,0.019,24,70,0.029,-9,33,0.016,20,73,0.046,13,104,0.046,43,41,0.009,23,78,0.115,20,-72,0.001,38,-4,0.006,0,-77,0.020,-9,-35,0.062,25,109,0.036,-13,34,0.018,61,18,0.001,58,40,0.002,34,50,0.030,49,88,0.000,48,-99,0.001,-42,176,0.002,20,86,0.178,-18,30,0.009,53,44,0.006,29,18,0.001,5,16,0.004,49,-74,0.000,48,131,0.006,14,121,0.272,63,19,0.001,40,54,0.001,36,57,0.005,16,52,0.000,50,128,0.010,39,30,0.026,54,12,0.007,16,-61,0.012,27,80,0.237,29,101,0.002,14,78,0.075,7,13,0.003,41,125,0.025,-17,23,0.002,54,27,0.009,30,29,0.001,41,142,0.003,12,124,0.029,41,43,0.013,18,98,0.004,36,117,0.203,17,33,0.004,32,109,0.047,-7,23,0.015,27,-101,0.005,45,-73,0.128,21,-83,0.000,55,-131,0.001,52,105,0.024,-40,-65,0.000,32,36,0.132,31,7,0.001,32,-109,0.001,31,120,0.209,9,124,0.046,46,-2,0.001,-2,-50,0.003,18,-13,0.001,42,28,0.015,4,99,0.009,19,-77,0.003,18,38,0.008,33,4,0.006,-5,-75,0.000,-14,51,0.001,-15,-48,0.002,57,-5,0.000,52,37,0.017,13,38,0.017,-10,-41,0.002,-11,36,0.008,-18,-71,0.004,-20,27,0.002,56,89,0.001,33,-94,0.007,44,15,0.001,43,-4,0.006,20,37,0.000,-4,27,0.009,47,8,0.078,44,-98,0.001,23,114,0.481,38,24,0.061,14,10,0.008,10,-3,0.010,47,89,0.002,-34,152,0.087,38,-121,0.073,14,25,0.002,29,5,0.001,-9,-78,0.019,20,98,0.021,-19,-39,0.004,53,0,0.048,-23,150,0.000,49,1,0.029,48,40,0.044,38,97,0.001,35,-99,0.001,16,1,0.004,53,-115,0.000,48,119,0.001,29,-85,0.000,63,39,0.001,40,26,0.002,16,40,0.002,11,120,0.002,-8,14,0.003,26,-98,0.024,-12,-47,0.001,-32,28,0.011,40,-87,0.006,36,-76,0.040,17,82,0.057,50,19,0.091,12,-70,0.002,27,108,0.078,7,49,0.003,41,105,0.000,3,46,0.006,-16,168,0.001,-21,56,0.005,51,83,0.002,50,-122,0.000,30,9,0.001,7,-62,0.002,41,-6,0.004,-17,-52,0.001,-38,-58,0.003,-6,13,0.020,45,6,0.050,60,59,0.000,41,-121,0.000,17,-3,0.001,-6,-64,0.000,-7,35,0.003,-26,-61,0.001,41,-104,0.003,51,30,0.004,32,-8,0.046,27,40,0.002,4,33,0.003,21,98,0.010,-1,122,0.002,32,-89,0.006,31,92,0.001,46,42,0.008,8,-83,0.003,22,36,0.000,19,30,0.001,-10,-64,0.003,-2,22,0.002,-5,40,0.040,69,20,0.001,37,35,0.025,-2,133,0.002,10,93,0.001,-10,36,0.010,-14,-41,0.006,-34,22,0.001,56,46,0.003,37,-108,0.001,52,49,0.003,13,10,0.022,46,91,0.001,-11,24,0.003,-34,-59,0.006,56,93,0.025,-38,-60,0.002,-30,-57,0.004,47,27,0.037,44,11,0.058,-33,-65,0.002,19,106,0.128,-23,-45,0.034,-24,34,0.001,58,45,0.001,20,-96,0.004,35,78,0.002,-38,150,0.000,34,39,0.005,15,27,0.001,10,33,0.003,47,109,0.000,-9,118,0.013,38,-93,0.005,34,-6,0.051,15,-84,0.001,49,16,0.022,25,38,0.002,2,39,0.001,1,28,0.005,16,102,0.028,6,122,0.010,68,65,0.000,49,-99,0.002,48,76,0.000,26,96,0.009,40,111,0.045,2,-70,0.000,38,125,0.004,16,-11,0.004,50,85,0.001,12,-8,0.042,63,75,0.001,-31,28,0.012,-20,-49,0.004,40,-2,0.002,36,1,0.016,35,26,0.010,-31,-55,0.005,6,-67,0.001,3,9,0.004,40,-115,0.001,39,102,0.000,54,68,0.002,50,55,0.001,30,54,0.005,26,49,0.002,60,-135,0.001,6,48,0.004,3,26,0.003,51,111,0.001,12,101,0.007,45,25,0.024,-3,13,0.002,-7,-46,0.002,30,88,0.001,-27,27,0.016,42,144,0.007,60,23,0.012,32,101,0.002,31,-114,0.004,28,40,0.002,8,-13,0.030,-30,-66,0.003,55,69,0.002,51,74,0.001,-3,115,0.015,31,63,0.001,28,-105,0.008,27,68,0.059,42,-78,0.035,22,-83,0.021,21,86,0.064,-1,14,0.001,-2,-57,0.000,-5,-45,0.007,32,-117,0.063,43,120,0.010,45,93,0.000,55,103,0.001,-2,34,0.015,-25,25,0.001,57,70,0.000,37,55,0.013,33,60,0.004,28,100,0.004,9,34,0.005,-9,24,0.003,-4,120,0.047,22,122,0.002,37,-88,0.008,8,101,0.012,46,119,0.001,43,-93,0.005,-11,124,0.017,0,41,0.005,-23,34,0.001,-5,143,0.003,47,47,0.001,43,52,0.006,24,-110,0.003,23,73,0.233,1,105,0.026,-4,-45,0.011,11,35,0.006,14,45,0.072,25,84,0.322,-13,21,0.001,58,17,0.007,37,123,0.051,34,75,0.093,-4,130,0.003,11,-12,0.024,48,-118,0.001,10,21,0.001,5,-58,0.001,1,-57,0.000,53,71,0.002,49,76,0.001,29,45,0.002,14,18,0.001,25,50,0.002,2,11,0.007,-18,-46,0.003,-19,33,0.019,49,-103,0.001,-8,-72,0.001,-12,-69,0.001,25,-97,0.023,40,83,0.002,39,-88,0.009,50,121,0.001,12,20,0.002,-7,114,0.027,14,107,0.004,-37,149,0.001,62,130,0.003,59,36,0.001,39,57,0.001,36,-99,0.001,35,54,0.006,30,-89,0.015,-8,-42,0.003,7,40,0.047,-17,34,0.010,54,32,0.015,-4,-50,0.001,30,66,0.001,26,69,0.078,7,-7,0.023,-20,34,0.019,-3,-60,0.037,-19,-44,0.004,-26,25,0.002,-27,-54,0.008,21,75,0.087,30,100,0.002,42,116,0.005,4,-53,0.000,-16,-66,0.001,21,-100,0.016,-20,-63,0.001,-40,-68,0.002,32,73,0.094,28,68,0.018,-16,13,0.001,-5,-41,0.006,55,41,0.007,32,-80,0.014,31,35,0.103,9,79,0.135,42,-90,0.007,19,53,0.002,-2,-45,0.004,65,24,0.000,46,50,0.001,43,84,0.008,45,129,0.024,4,120,0.003,22,60,0.004,9,-83,0.028,46,-63,0.003,-14,16,0.016,52,10,0.064,24,88,0.204,0,-50,0.004,34,126,0.001,-5,122,0.008,-24,-52,0.016,-28,-57,0.002,43,-1,0.024,24,71,0.014,58,83,0.002,20,74,0.125,-1,11,0.001,13,103,0.031,43,16,0.004,23,77,0.080,38,-7,0.009,0,-76,0.008,47,100,0.000,25,112,0.073,-13,33,0.006,61,17,0.003,58,37,0.002,34,47,0.028,49,87,0.001,48,-98,0.001,20,87,0.188,-33,-56,0.002,-18,35,0.006,53,43,0.005,29,17,0.001,5,15,0.003,48,132,0.001,-19,178,0.001,63,18,0.001,36,58,0.010,16,45,0.017,50,125,0.001,39,29,0.033,54,9,0.005,-55,-66,0.001,27,79,0.311,29,104,0.111,41,128,0.013,-17,22,0.000,54,28,0.009,53,95,0.000,30,30,0.021,41,141,0.016,-21,-53,0.000,64,29,0.001,41,30,0.111,18,95,0.015,36,118,0.278,17,36,0.003,32,110,0.040,-7,26,0.006,27,-102,0.000,45,-78,0.000,41,-69,0.001,21,-80,0.001,52,106,0.001,31,6,0.001,-16,49,0.009,32,-108,0.001,31,119,0.238,9,123,0.026,46,3,0.009,18,-12,0.001,6,-8,0.025,66,15,0.001,6,117,0.013,42,25,0.031,18,35,0.001,33,3,0.004,14,40,0.035,-15,-49,0.004,22,103,0.012,52,38,0.007,13,37,0.006,47,-91,0.001,-10,-40,0.014,-11,35,0.011,56,90,0.002,33,-95,0.005,44,16,0.011,43,-5,0.031,58,103,0.004,-4,28,0.006,-10,161,0.002,47,7,0.029,44,-97,0.002,-13,-44,0.003,23,113,0.154,38,21,0.003,14,-1,0.006,10,-2,0.016,47,88,0.003,38,-120,0.007,6,39,0.113,14,26,0.001,29,8,0.001,-9,-79,0.019,20,99,0.004,53,-1,0.157,49,4,0.023,48,17,0.082,40,140,0.001,38,98,0.001,35,-92,0.006,16,2,0.001,53,-112,0.002,12,-3,0.016,48,120,0.002,29,-90,0.031,40,27,0.012,16,17,0.000,-8,15,0.007,-12,-46,0.001,40,-86,0.017,39,129,0.001,17,81,0.079,50,20,0.092,12,-69,0.003,27,107,0.114,7,48,0.004,41,108,0.017,3,45,0.006,51,82,0.009,50,-125,0.001,-15,50,0.012,30,10,0.001,7,-63,0.006,41,-7,0.015,-17,-53,0.001,-6,14,0.032,30,121,0.338,23,96,0.024,45,5,0.086,60,60,0.002,-4,-41,0.010,17,0,0.001,-6,-67,0.000,28,13,0.001,-26,-60,0.001,41,-105,0.001,-8,132,0.002,51,29,0.006,32,1,0.001,27,39,0.002,4,34,0.003,21,97,0.050,-1,121,0.004,-3,-42,0.003,32,-88,0.005,46,31,0.054,8,-82,0.016,19,29,0.001,-2,27,0.003,-5,39,0.029,69,19,0.001,57,105,0.000,37,30,0.021,-2,134,0.002,-10,33,0.009,-14,-40,0.008,-34,27,0.005,56,47,0.004,52,50,0.005,13,9,0.042,47,-55,0.001,9,6,0.017,46,92,0.000,-11,23,0.003,-14,-57,0.001,-4,134,0.001,-34,-58,0.004,56,94,0.004,-38,-63,0.001,47,26,0.016,44,12,0.057,19,105,0.010,-8,142,0.001,-24,35,0.003,58,46,0.002,38,49,0.034,35,77,0.011,37,98,0.001,34,40,0.006,15,26,0.001,10,34,0.004,47,124,0.051,-33,30,0.001,38,-92,0.010,-8,139,0.000,15,-85,0.006,49,15,0.024,2,40,0.002,1,27,0.001,16,103,0.065,-22,34,0.002,49,-96,0.003,26,93,0.155,25,-106,0.001,40,112,0.050,2,-73,0.001,1,12,0.004,38,126,0.132,16,-10,0.002,50,86,0.000,12,-7,0.016,-31,27,0.002,40,-1,0.003,36,2,0.034,35,25,0.007,-7,150,0.001,-31,-52,0.005,6,-66,0.001,45,-120,0.000,39,101,0.017,54,65,0.002,50,56,0.001,30,59,0.005,26,50,0.002,6,45,0.002,3,25,0.002,17,-66,0.004,-21,19,0.001,51,110,0.001,12,102,0.023,45,28,0.033,-25,-64,0.005,-3,16,0.001,-7,-47,0.004,45,-87,0.004,42,141,0.009,60,24,0.005,-29,-67,0.001,17,-4,0.001,32,102,0.002,31,-115,0.013,28,41,0.002,8,-12,0.029,55,68,0.002,51,73,0.001,31,62,0.007,28,-104,0.001,27,67,0.006,42,-81,0.013,4,-2,0.003,22,-82,0.025,21,85,0.055,-1,13,0.001,-39,-62,0.009,-2,-56,0.001,-5,-46,0.004,32,-116,0.055,46,75,0.003,43,119,0.009,55,102,0.001,-8,-76,0.004,-25,24,0.002,5,9,0.036,57,69,0.000,37,66,0.006,33,59,0.002,28,101,0.003,9,33,0.006,-15,39,0.008,37,-89,0.009,46,120,0.001,43,-94,0.003,-11,123,0.001,0,42,0.002,-23,33,0.001,-5,142,0.002,47,46,0.001,23,72,0.036,-4,-44,0.012,11,34,0.006,-9,-41,0.002,25,83,0.377,-13,28,0.013,58,18,0.002,35,121,0.006,37,118,0.165,34,76,0.020,-4,131,0.002,49,94,0.000,11,-13,0.008,48,-117,0.002,10,22,0.001,-32,153,0.004,53,50,0.025,49,75,0.001,29,48,0.026,5,122,0.007,25,49,0.002,-2,105,0.004,2,12,0.006,-19,36,0.004,68,30,0.000,49,-100,0.001,48,105,0.001,26,129,0.002,-12,-68,0.001,40,84,0.002,39,-89,0.011,36,15,0.011,50,122,0.003,12,21,0.003,-7,113,0.030,18,123,0.003,59,35,0.001,39,56,0.001,36,-98,0.001,35,53,0.010,30,-88,0.021,-8,-41,0.006,7,39,0.087,-17,33,0.007,54,29,0.018,-55,-68,0.001,30,23,0.000,26,70,0.037,7,-8,0.022,6,73,0.000,22,98,0.014,-3,-61,0.001,-26,26,0.018,-27,-55,0.009,45,64,0.000,60,5,0.001,41,65,0.003,21,70,0.025,30,97,0.001,42,113,0.002,4,-52,0.003,-16,-65,0.001,21,-101,0.052,-20,-62,0.000,-41,-62,0.000,32,74,0.179,28,69,0.058,8,24,0.001,-16,14,0.004,55,40,0.013,31,34,0.004,-15,26,0.002,21,121,0.001,33,121,0.112,-6,151,0.002,65,23,0.001,43,83,0.009,45,132,0.032,22,57,0.002,6,2,0.091,9,-80,0.001,46,-62,0.001,-14,13,0.002,-15,-74,0.002,57,17,0.003,52,11,0.052,-43,172,0.001,24,81,0.072,-5,121,0.029,-24,-59,0.000,-28,-56,0.004,43,-2,0.042,24,72,0.047,58,84,0.000,20,75,0.111,-28,23,0.001,23,108,0.064,38,-6,0.013,14,-92,0.018,47,99,0.000,25,111,0.081,58,38,0.002,-46,169,0.001,34,48,0.039,49,90,0.001,48,-97,0.001,-18,36,0.013,53,38,0.009,44,113,0.000,5,26,0.001,48,125,0.020,63,17,0.001,40,56,0.000,36,59,0.016,35,8,0.021,16,46,0.003,50,126,0.005,39,28,0.037,54,10,0.029,27,78,0.233,29,103,0.032,41,127,0.037,-17,21,0.000,54,25,0.012,53,106,0.001,30,35,0.007,6,37,0.019,64,30,0.000,41,29,0.206,18,96,0.067,36,119,0.193,17,35,0.004,32,111,0.059,-7,25,0.018,45,-79,0.002,41,-82,0.016,52,107,0.001,51,24,0.016,31,5,0.001,-13,-43,0.003,-16,50,0.008,55,12,0.015,32,-115,0.014,31,118,0.203,46,4,0.013,42,-121,0.002,18,-15,0.015,-6,123,0.014,66,16,0.000,-44,-74,0.000,42,26,0.023,18,36,0.001,-1,-74,0.000,33,6,0.003,-5,-69,0.001,-14,49,0.007,-15,-46,0.002,22,104,0.023,37,-6,0.027,52,39,0.010,13,40,0.036,-10,-43,0.002,24,117,0.091,-33,118,0.000,56,91,0.008,33,-92,0.004,44,17,0.022,43,-6,0.005,-4,29,0.025,47,6,0.020,44,-96,0.002,-13,-45,0.002,23,112,0.078,38,22,0.016,35,104,0.071,14,0,0.007,10,11,0.026,47,87,0.002,38,-123,0.001,49,118,0.007,29,7,0.001,20,100,0.017,53,10,0.062,49,3,0.057,48,18,0.050,44,77,0.003,38,103,0.024,35,-93,0.005,53,-113,0.031,12,-2,0.031,29,-91,0.004,14,110,0.017,40,28,0.013,-20,-44,0.071,-8,16,0.007,7,94,0.001,40,-85,0.018,39,128,0.056,17,84,0.073,16,-95,0.012,50,17,0.037,12,-68,0.006,27,106,0.103,7,47,0.003,41,107,0.002,51,81,0.002,30,-1,0.001,7,-64,0.002,41,-4,0.020,-17,-54,0.006,-6,27,0.008,-35,-57,0.011,30,122,0.149,45,8,0.069,60,61,0.001,41,-119,0.000,-35,150,0.001,17,-1,0.001,-6,-66,0.001,-26,-63,0.001,8,9,0.032,41,-102,0.000,51,36,0.009,32,2,0.001,28,-3,0.000,27,38,0.003,4,35,0.002,22,-105,0.007,21,100,0.009,-1,120,0.018,46,32,0.010,8,-81,0.007,19,36,0.001,-2,28,0.003,-5,38,0.007,-10,151,0.001,22,-15,0.000,37,29,0.028,-2,139,0.000,-8,-62,0.000,10,107,0.361,-10,34,0.031,-2,12,0.001,-34,28,0.009,56,48,0.033,52,51,0.002,-12,-67,0.000,13,12,0.007,9,5,0.007,46,89,0.001,-14,-56,0.001,-34,-53,0.002,56,95,0.001,-38,-62,0.001,47,25,0.016,19,96,0.040,34,-106,0.004,-36,-61,0.003,-23,-59,0.001,-24,36,0.017,44,-100,0.001,58,59,0.001,37,97,0.001,34,37,0.041,15,25,0.001,10,31,0.009,47,123,0.014,5,-76,0.011,-33,29,0.017,38,-95,0.007,15,-86,0.015,49,18,0.041,25,40,0.004,2,37,0.001,1,30,0.012,16,104,0.064,-22,31,0.004,49,-97,0.024,26,94,0.067,25,-107,0.008,40,105,0.000,2,-72,0.001,1,11,0.004,-18,-69,0.001,16,-9,0.002,50,83,0.006,12,-6,0.012,-31,30,0.024,40,0,0.005,36,3,0.043,29,122,0.142,-31,-53,0.003,6,-61,0.001,39,100,0.009,54,66,0.002,50,53,0.001,30,60,0.004,26,47,0.004,6,46,0.003,3,16,0.002,17,-67,0.001,-21,18,0.000,51,109,0.003,12,103,0.021,45,27,0.022,22,84,0.054,-3,15,0.001,-7,-44,0.002,45,-84,0.003,42,142,0.029,60,25,0.031,32,103,0.003,31,-100,0.004,28,42,0.001,-30,-68,0.000,55,67,0.002,51,64,0.001,-3,109,0.002,31,61,0.001,9,101,0.001,27,66,0.002,42,-80,0.011,4,-1,0.008,21,88,0.114,-1,28,0.002,-39,-63,0.000,-5,-47,0.004,46,76,0.001,43,118,0.005,-48,-67,0.000,55,101,0.001,-10,-63,0.005,46,-101,0.000,57,72,0.001,37,65,0.005,33,62,0.002,28,102,0.010,9,36,0.027,37,-78,0.005,-4,-73,0.008,13,-16,0.037,43,-95,0.003,24,29,0.000,0,43,0.006,-23,36,0.004,-5,141,0.002,13,125,0.009,47,45,0.001,23,71,0.014,15,108,0.007,11,33,0.004,-43,-74,0.001,-9,-42,0.002,25,102,0.042,-13,27,0.003,58,15,0.004,35,112,0.109,37,117,0.171,34,73,0.153,-4,132,0.000,49,93,0.000,11,-14,0.010,48,-116,0.002,-9,113,0.103,5,-56,0.001,1,-55,0.000,53,49,0.008,49,46,0.003,29,47,0.010,25,52,0.019,-19,35,0.004,68,31,0.000,49,-101,0.000,48,106,0.000,40,77,0.003,39,-90,0.005,36,16,0.003,50,119,0.003,12,22,0.004,-7,116,0.003,11,93,0.001,-12,44,0.013,59,34,0.003,39,55,0.004,36,-97,0.006,35,60,0.016,30,-91,0.022,-8,-40,0.010,7,38,0.103,8,99,0.017,54,30,0.005,30,24,0.001,7,-9,0.008,6,74,0.001,17,-71,0.001,-3,-66,0.001,-26,31,0.006,-27,-52,0.013,45,63,0.001,60,6,0.012,41,68,0.002,17,74,0.072,-6,-45,0.004,30,98,0.002,45,-112,0.001,42,114,0.004,-16,-64,0.001,21,-106,0.001,54,79,0.001,32,75,0.262,28,70,0.059,8,17,0.012,-16,15,0.006,55,39,0.056,6,118,0.003,31,33,0.026,9,81,0.023,42,-108,0.000,-2,-47,0.016,-6,152,0.004,5,37,0.009,65,26,0.003,43,82,0.012,45,131,0.047,-4,152,0.001,22,58,0.005,-35,119,0.000,46,-73,0.005,-11,-68,0.005,-14,14,0.007,-15,-75,0.010,0,105,0.005,52,12,0.024,28,130,0.003,24,82,0.099,-24,-58,0.000,-28,-55,0.024,43,-3,0.024,20,76,0.097,-24,-43,0.022,-28,24,0.004,43,14,0.032,23,107,0.044,38,-1,0.017,-25,-68,0.002,14,50,0.004,25,114,0.058,-18,146,0.002,34,45,0.015,49,89,0.000,48,-96,0.001,-18,33,0.013,53,37,0.007,29,19,0.001,44,114,0.000,5,25,0.000,48,126,0.030,63,16,0.001,40,49,0.016,39,10,0.018,36,60,0.043,35,7,0.027,16,47,0.002,39,27,0.015,27,77,0.140,29,98,0.001,41,130,0.027,54,26,0.028,53,105,0.001,-35,-70,0.016,30,36,0.009,6,38,0.060,-25,-55,0.005,-19,-49,0.008,64,31,0.001,41,32,0.015,-29,-58,0.003,36,120,0.186,17,38,0.005,32,112,0.095,-7,28,0.004,45,-76,0.004,41,-83,0.032,52,108,0.001,51,23,0.035,5,27,0.001,-16,51,0.005,55,11,0.015,51,8,0.205,32,-114,0.009,31,117,0.123,46,1,0.015,18,-14,0.001,-8,-69,0.000,-6,124,0.004,42,23,0.020,18,33,0.002,-1,-75,0.001,33,5,0.009,-14,50,0.008,-18,-53,0.001,-15,-47,0.001,22,101,0.022,0,125,0.012,37,-7,0.011,52,40,0.027,13,39,0.029,47,-109,0.000,-10,-42,0.003,24,118,0.140,-33,117,0.004,56,92,0.001,33,-93,0.004,47,36,0.038,44,18,0.022,43,-7,0.008,20,40,0.005,-4,30,0.102,47,5,0.008,44,-95,0.003,62,17,0.003,23,111,0.108,20,-105,0.009,38,27,0.026,35,103,0.020,15,36,0.014,14,-3,0.014,10,12,0.042,47,86,0.001,38,-122,0.036,49,117,0.001,29,2,0.000,-13,-76,0.084,-29,-51,0.009,16,109,0.022,53,9,0.053,-23,151,0.000,49,6,0.019,48,19,0.032,44,78,0.002,38,104,0.008,35,-94,0.011,12,-1,0.060,59,-151,0.000,40,21,0.019,-12,-44,0.002,40,-84,0.015,-28,153,0.022,39,127,0.060,17,83,0.098,16,-94,0.007,50,18,0.029,27,105,0.084,7,46,0.003,41,94,0.001,51,104,0.001,50,-127,0.000,30,0,0.001,7,-65,0.001,41,-5,0.007,3,-60,0.005,21,-16,0.001,-17,-55,0.001,69,89,0.010,30,111,0.049,8,123,0.004,45,7,0.017,-35,149,0.001,17,2,0.000,-26,-62,0.001,64,178,0.000,41,-103,0.002,51,35,0.007,32,3,0.002,28,-2,0.000,27,37,0.002,4,36,0.002,22,-104,0.002,21,99,0.008,-39,-72,0.017,-52,-71,0.001,46,29,0.035,8,-80,0.011,22,39,0.000,19,35,0.001,-2,25,0.002,-5,37,0.008,42,-5,0.012,37,32,0.021,-10,-77,0.014,10,108,0.059,-10,39,0.004,-14,-42,0.006,-34,25,0.001,56,73,0.001,52,52,0.002,-44,-65,0.002,13,11,0.010,9,8,0.028,46,90,0.001,24,26,0.000,-14,-59,0.000,56,96,0.005,47,24,0.026,19,95,0.015,34,-109,0.001,-23,-56,0.003,-24,29,0.010,-43,-63,0.000,58,60,0.007,38,55,0.001,35,83,0.001,37,100,0.001,34,38,0.009,15,24,0.001,14,-23,0.002,10,32,0.003,47,122,0.008,5,-77,0.002,38,-94,0.027,15,-87,0.040,49,17,0.040,48,-72,0.002,-28,-50,0.008,25,39,0.004,2,38,0.001,1,29,0.003,16,81,0.214,-22,32,0.005,49,-94,0.001,48,71,0.001,26,107,0.160,25,-104,0.002,40,106,0.001,2,-75,0.016,36,37,0.053,-18,-68,0.002,16,-8,0.002,50,84,0.005,12,-5,0.023,-21,-48,0.016,-31,29,0.017,40,-7,0.017,36,4,0.157,35,15,0.013,29,121,0.163,40,-112,0.006,39,99,0.012,54,71,0.002,50,54,0.001,30,57,0.007,26,48,0.002,3,15,0.002,8,81,0.041,17,-64,0.002,-21,17,0.001,51,116,0.002,12,104,0.018,-7,-74,0.001,45,22,0.028,6,94,0.000,-3,42,0.000,-7,-45,0.001,30,91,0.001,-27,24,0.003,45,-85,0.001,60,26,0.022,-30,-56,0.005,32,104,0.005,-33,-66,0.000,31,-101,0.001,28,43,0.001,-30,-71,0.003,55,66,0.018,51,63,0.001,-3,112,0.008,31,76,0.222,28,-102,0.002,27,65,0.002,42,-83,0.144,21,87,0.124,-1,27,0.002,-3,-47,0.004,-2,-58,0.000,-5,-40,0.013,43,117,0.003,45,90,0.001,42,64,0.001,-1,12,0.001,46,-100,0.003,57,71,0.001,37,68,0.030,33,61,0.003,28,103,0.033,9,35,0.015,-15,41,0.024,56,13,0.012,37,-79,0.016,-4,-72,0.001,33,-82,0.013,9,-12,0.018,46,118,0.000,43,-88,0.029,-9,37,0.005,-4,139,0.006,0,44,0.005,-23,35,0.003,-30,-52,0.016,23,70,0.012,1,110,0.018,38,-28,0.001,15,107,0.009,11,40,0.066,-9,-43,0.001,25,101,0.069,-13,26,0.003,61,10,0.001,58,16,0.009,35,111,0.111,37,120,0.042,34,74,0.079,15,-4,0.005,49,96,0.000,11,-15,0.016,48,-123,0.016,5,-57,0.002,20,110,0.022,53,52,0.005,49,45,0.002,29,74,0.070,25,51,0.003,2,10,0.001,-19,30,0.012,68,32,0.000,49,-66,0.000,48,107,0.008,26,127,0.000,-32,-71,0.002,40,78,0.004,39,-91,0.006,50,120,0.001,12,23,0.010,-7,115,0.002,11,100,0.009,-12,29,0.005,59,33,0.004,39,54,0.003,36,-96,0.006,35,59,0.009,30,-90,0.024,-8,-47,0.002,7,37,0.051,-18,17,0.006,-17,31,0.010,-20,48,0.052,54,35,0.003,7,-10,0.007,6,15,0.005,-3,-67,0.000,-7,-62,0.000,-26,32,0.029,-27,-53,0.013,60,7,0.001,41,67,0.001,21,72,0.085,36,77,0.001,-6,-44,0.008,42,111,0.002,-16,-55,0.009,54,80,0.001,-40,-73,0.004,32,76,0.118,28,71,0.094,27,-12,0.003,8,18,0.008,-16,16,0.004,55,38,0.468,31,32,0.189,42,-111,0.001,-2,-46,0.006,-6,149,0.001,65,25,0.001,43,81,0.005,45,126,0.051,52,-114,0.001,13,-83,0.001,9,-78,0.001,46,-72,0.011,-11,-69,0.001,-15,-72,0.004,57,19,0.002,52,-3,0.015,-10,-69,0.000,24,83,0.077,34,121,0.024,-24,-57,0.003,-28,-54,0.013,43,4,0.031,-36,-70,0.005,13,100,0.054,-28,25,0.008,43,13,0.034,23,106,0.032,38,0,0.052,25,113,0.096,34,46,0.021,49,92,0.000,-8,113,0.489,-18,34,0.003,53,40,0.008,29,14,0.001,44,115,0.001,5,28,0.001,-20,-51,0.002,48,127,0.018,63,15,0.001,40,50,0.057,39,9,0.015,36,45,0.026,35,6,0.037,16,48,0.000,39,26,0.001,17,122,0.042,50,11,0.038,27,84,0.181,29,97,0.001,0,98,0.010,41,129,0.020,-36,174,0.002,30,33,0.036,6,43,0.004,-30,31,0.118,41,31,0.011,18,94,0.004,36,121,0.194,17,37,0.003,32,121,0.281,-7,27,0.004,27,-97,0.014,45,-77,0.002,42,83,0.004,41,-80,0.029,21,-71,0.000,52,93,0.000,-26,153,0.002,51,22,0.032,27,16,0.002,55,10,0.019,51,7,0.192,32,-113,0.001,31,132,0.023,46,2,0.010,42,-123,0.004,-29,115,0.001,-5,16,0.196,-6,121,0.025,66,14,0.001,42,24,0.057,18,34,0.002,6,11,0.037,33,8,0.005,5,117,0.024,-15,-44,0.003,22,102,0.015,37,-4,0.029,52,41,0.009,13,34,0.032,-10,-37,0.017,24,119,0.156,56,85,0.021,33,-90,0.006,47,35,0.020,44,19,0.025,20,41,0.015,15,146,0.002,44,-94,0.005,62,18,0.003,23,110,0.110,20,-104,0.008,38,28,0.066,35,102,0.005,15,35,0.005,14,-2,0.007,10,9,0.037,47,85,0.001,-9,122,0.015,-33,-59,0.003,61,50,0.001,-18,179,0.007,49,120,0.005,48,-67,0.002,-13,-77,0.086,-19,-43,0.005,53,12,0.018,49,5,0.021,48,20,0.022,44,79,0.004,38,101,0.015,35,-95,0.008,16,-3,0.010,12,0,0.028,29,-89,0.004,-3,12,0.002,62,78,0.002,59,48,0.001,40,22,0.012,11,124,0.020,-32,24,0.001,40,-91,0.005,39,126,0.145,16,-93,0.030,50,15,0.076,27,112,0.203,7,45,0.004,41,93,0.001,-50,-74,0.000,39,143,0.000,51,103,0.001,30,-3,0.001,-33,-70,0.009,7,-66,0.003,-17,-56,0.001,-6,25,0.006,30,112,0.127,-37,-73,0.016,8,124,0.047,45,2,0.018,-35,152,0.006,17,1,0.001,32,77,0.033,-26,-57,0.080,8,11,0.013,41,-100,0.001,51,34,0.015,32,4,0.002,27,44,0.002,4,21,0.005,21,94,0.004,-1,118,0.027,-39,-73,0.002,46,30,0.029,43,128,0.019,-4,143,0.002,22,40,0.014,19,34,0.001,-2,26,0.002,-10,149,0.002,42,-4,0.004,57,94,0.001,37,31,0.019,-2,137,0.004,10,105,0.047,-10,40,0.006,-9,28,0.004,-4,116,0.011,-34,26,0.036,56,74,0.001,37,-112,0.001,52,69,0.002,13,6,0.056,9,7,0.024,-10,-73,0.000,24,27,0.000,-14,-58,0.000,23,-80,0.001,-34,-55,0.002,0,17,0.001,-38,-64,0.000,47,23,0.023,19,94,0.012,-23,-57,0.002,-24,30,0.028,58,57,0.019,38,56,0.002,35,82,0.001,37,99,0.001,-8,121,0.000,15,23,0.002,10,29,0.003,47,121,0.003,38,-89,0.013,15,-88,0.033,49,20,0.045,14,14,0.002,25,42,0.004,2,35,0.008,1,32,0.021,16,82,0.191,-22,29,0.005,26,108,0.071,25,-105,0.001,40,107,0.007,2,-74,0.001,36,38,0.034,38,129,0.013,50,81,0.013,12,-4,0.015,40,-6,0.005,-20,-39,0.002,-7,151,0.001,40,-119,0.000,39,98,0.002,54,72,0.003,50,51,0.001,30,58,0.005,26,45,0.006,3,14,0.003,2,103,0.051,-20,30,0.012,-21,24,0.000,51,115,0.001,-3,-68,0.000,12,105,0.029,-7,-75,0.002,45,21,0.025,-3,41,0.006,-35,-66,0.003,30,92,0.003,45,-90,0.002,60,27,0.005,32,49,0.028,31,-102,0.006,28,44,0.001,-30,-70,0.004,55,65,0.003,51,62,0.001,-3,111,0.003,31,75,0.404,28,-101,0.003,27,72,0.013,42,-82,0.046,22,-79,0.024,-1,26,0.002,-39,-61,0.005,-2,-53,0.001,70,24,0.000,66,67,0.002,43,124,0.035,45,89,0.001,42,61,0.006,55,99,0.002,-11,-62,0.005,57,74,0.001,37,67,0.013,33,64,0.003,10,125,0.042,28,104,0.037,9,22,0.000,56,14,0.007,37,-76,0.019,-4,-71,0.001,33,-83,0.018,9,-13,0.049,46,123,0.017,43,-89,0.018,57,-152,0.000,0,37,0.015,23,69,0.004,1,109,0.002,15,106,0.033,11,39,0.053,-43,-72,0.000,-9,-44,0.001,25,104,0.080,-13,25,0.002,61,9,0.000,58,13,0.007,35,110,0.075,37,119,0.122,34,71,0.048,15,-5,0.001,49,95,0.000,11,-8,0.011,48,-122,0.017,20,111,0.073,1,-53,0.000,53,51,0.038,49,48,0.001,29,73,0.092,25,70,0.068,-19,29,0.010,68,33,0.002,48,108,0.003,26,128,0.040,-32,-70,0.002,40,79,0.002,39,-92,0.004,50,117,0.002,12,24,0.008,11,99,0.006,-12,30,0.006,59,40,0.012,39,53,0.001,36,-95,0.024,35,58,0.009,30,-85,0.009,-8,-46,0.002,7,36,0.022,-17,30,0.006,54,36,0.004,7,-11,0.025,6,16,0.007,-3,-64,0.000,-26,29,0.096,-27,-58,0.006,60,8,0.000,21,71,0.091,36,78,0.003,17,76,0.104,-6,-47,0.014,42,112,0.002,-16,-54,0.002,21,-104,0.015,54,77,0.001,-40,-72,0.006,32,69,0.005,28,72,0.043,27,-13,0.001,8,19,0.007,-15,40,0.013,-16,25,0.003,55,37,0.022,31,31,0.188,42,-110,0.000,-6,150,0.002,43,88,0.070,45,125,0.045,18,27,0.001,52,-113,0.005,9,-79,0.041,46,-75,0.001,-11,-74,0.001,-15,-73,0.002,57,38,0.003,52,-2,0.076,24,84,0.104,-24,-56,0.005,-28,-53,0.013,43,3,0.017,24,67,0.046,13,99,0.015,-28,26,0.006,-28,-64,0.014,43,20,0.024,23,105,0.046,38,-3,0.012,0,-80,0.000,25,116,0.067,61,13,0.000,49,91,0.000,-8,114,0.133,-18,23,0.001,53,39,0.020,29,13,0.001,44,116,0.002,6,-1,0.099,48,128,0.011,40,51,0.019,36,46,0.023,35,5,0.020,-19,146,0.001,-30,-50,0.024,26,-109,0.009,17,121,0.029,50,12,0.041,12,-61,0.004,27,83,0.184,29,100,0.002,6,-7,0.018,-36,175,0.003,54,-128,0.001,30,34,0.002,6,44,0.003,54,-113,0.001,64,41,0.012,-30,32,0.032,41,34,0.009,36,122,0.022,32,122,0.071,-25,153,0.002,-7,14,0.003,27,-98,0.002,42,84,0.006,41,-81,0.088,52,94,0.000,51,21,0.024,32,41,0.004,27,15,0.001,-9,-40,0.005,55,9,0.009,51,6,0.116,32,-112,0.001,31,131,0.052,42,-122,0.006,18,-16,0.004,-1,-46,0.002,-38,141,0.002,-5,15,0.012,-6,122,0.001,42,21,0.049,18,31,0.001,33,7,0.003,-5,-64,0.001,-15,-45,0.001,22,107,0.036,37,-5,0.041,52,42,0.020,13,33,0.026,47,-111,0.003,-10,-36,0.037,-11,31,0.005,-9,14,0.042,56,86,0.003,-3,148,0.001,33,-91,0.004,47,34,0.028,44,20,0.027,23,28,0.000,20,42,0.017,-8,146,0.002,-4,32,0.019,44,-93,0.059,62,39,0.000,23,109,0.094,20,-103,0.148,38,25,0.001,35,101,0.003,-27,154,0.006,15,34,0.015,14,3,0.008,10,10,0.025,47,132,0.014,61,49,0.000,-8,111,0.456,49,119,0.001,48,-66,0.001,29,4,0.001,-19,-40,0.010,53,11,0.074,-3,102,0.013,49,8,0.054,48,13,0.038,44,80,0.003,38,102,0.010,16,-2,0.002,12,1,0.009,29,-94,0.009,59,47,0.001,40,23,0.047,11,123,0.059,40,-90,0.006,39,125,0.021,-44,-73,0.000,16,-92,0.029,50,16,0.040,27,111,0.106,-22,-49,0.013,41,96,0.001,-21,-47,0.023,39,142,0.034,51,102,0.000,30,-2,0.001,7,-67,0.005,-17,-57,0.001,-6,26,0.005,30,109,0.111,45,1,0.016,60,64,0.000,-29,-55,0.005,-35,151,0.020,32,78,0.004,-6,-55,0.000,-26,-56,0.018,8,12,0.020,41,-101,0.000,3,100,0.050,55,60,0.011,51,33,0.008,32,-3,0.002,66,77,0.003,27,43,0.002,4,22,0.006,-16,-47,0.052,21,93,0.071,-1,117,0.007,-39,-70,0.001,46,35,0.006,43,127,0.062,19,33,0.001,-2,15,0.001,48,96,0.000,-25,48,0.003,9,-84,0.047,-10,150,0.002,43,144,0.008,42,-7,0.014,57,93,0.001,37,42,0.027,10,106,0.208,28,77,0.219,-10,37,0.004,-14,-44,0.003,56,75,0.002,37,-113,0.004,52,70,0.002,13,5,0.016,9,10,0.048,46,80,0.000,24,28,0.000,-14,-61,0.001,23,-81,0.008,-34,-54,0.002,0,18,0.001,-38,-67,0.001,47,22,0.034,34,-111,0.002,-23,-54,0.009,-24,31,0.039,62,51,0.001,58,58,0.006,35,81,0.001,37,94,0.000,34,36,0.025,15,22,0.002,10,30,0.011,47,120,0.001,1,-78,0.008,38,-88,0.005,15,-89,0.019,49,19,0.074,25,41,0.002,-2,101,0.016,2,36,0.004,1,31,0.028,16,83,0.051,-22,30,0.005,48,49,0.000,26,105,0.092,25,-102,0.002,40,108,0.014,2,-77,0.007,36,39,0.025,-18,-70,0.006,50,82,0.003,12,29,0.006,-31,31,0.033,40,-5,0.012,29,123,0.022,7,127,0.020,6,-62,0.001,39,97,0.001,54,69,0.002,50,52,0.001,30,47,0.019,26,46,0.005,6,49,0.001,3,13,0.005,2,104,0.012,17,-62,0.002,-21,23,0.000,51,114,0.001,-3,-69,0.000,12,106,0.040,45,24,0.020,6,100,0.010,30,89,0.001,45,-91,0.003,60,28,0.002,32,50,0.017,-17,-41,0.005,31,-103,0.001,28,45,0.001,55,64,0.003,51,61,0.001,31,74,0.259,28,-100,0.008,9,106,0.134,27,71,0.017,22,-78,0.005,-1,25,0.002,-2,-52,0.000,-5,-42,0.016,46,63,0.001,43,123,0.027,45,92,0.001,42,62,0.004,6,-2,0.033,46,-102,0.001,-11,-63,0.002,-15,-66,0.001,57,73,0.000,37,62,0.010,33,63,0.004,10,126,0.012,28,105,0.126,9,21,0.001,56,15,0.007,37,-77,0.036,-4,-70,0.001,33,-80,0.014,46,124,0.019,43,-90,0.004,0,38,0.035,-5,146,0.002,13,122,0.067,1,112,0.008,15,105,0.067,11,38,0.069,-43,-73,0.003,-9,-45,0.001,25,103,0.089,-13,16,0.024,61,12,0.001,58,14,0.006,0,102,0.043,-18,169,0.002,35,109,0.053,37,130,0.007,34,72,0.141,15,-6,0.003,14,75,0.046,11,-9,0.008,48,-121,0.001,-32,149,0.000,53,46,0.018,49,47,0.001,29,76,0.114,-9,126,0.012,25,69,0.121,-19,32,0.016,68,34,0.004,48,101,0.000,40,80,0.004,39,-93,0.003,50,118,0.001,12,25,0.013,-12,31,0.004,59,39,0.002,36,-94,0.015,35,57,0.003,30,-84,0.013,-8,-45,0.001,7,35,0.001,-17,29,0.005,54,33,0.006,7,-12,0.007,6,13,0.003,17,-98,0.018,-3,-65,0.000,-26,30,0.024,-27,-59,0.003,-13,-39,0.022,60,9,0.001,21,50,0.002,36,79,0.002,17,75,0.113,-6,-46,0.003,31,-116,0.001,42,109,0.001,-16,-53,0.000,21,-105,0.009,-20,-58,0.000,54,78,0.001,32,70,0.032,28,73,0.023,8,20,0.001,-16,26,0.003,55,36,0.005,31,30,0.073,42,-113,0.002,19,48,0.003,18,-87,0.001,-3,-48,0.004,65,27,0.000,43,87,0.008,45,128,0.042,18,28,0.001,52,-112,0.001,9,-76,0.002,46,-74,0.002,-11,-75,0.005,-14,41,0.010,-15,-70,0.007,57,37,0.003,52,-1,0.161,-10,-35,0.042,24,77,0.062,34,119,0.232,-24,-63,0.003,-28,-52,0.018,43,2,0.043,24,68,0.283,-9,32,0.013,0,74,0.001,13,94,0.001,-28,27,0.015,43,19,0.021,24,-77,0.001,23,104,0.059,38,-2,0.004,25,115,0.079,-38,177,0.004,61,16,0.001,49,126,0.009,-8,115,0.020,-42,173,0.001,-18,24,0.001,53,18,0.018,44,117,0.002,5,22,0.005,38,79,0.005,49,-68,0.001,48,137,0.000,14,122,0.423,63,13,0.000,36,47,0.023,35,12,0.002,11,126,0.017,26,-108,0.007,-11,30,0.005,39,24,0.002,50,9,0.114,27,82,0.202,29,99,0.002,6,-6,0.034,53,102,0.002,30,-9,0.043,6,41,0.007,17,-102,0.001,54,-112,0.000,64,42,0.000,-30,29,0.021,41,33,0.023,36,123,0.007,17,39,0.007,-3,-44,0.044,-25,152,0.001,-7,13,0.001,27,-99,0.018,45,-83,0.001,42,81,0.004,41,-78,0.006,-17,-48,0.021,51,28,0.006,32,42,0.003,-25,-69,0.003,22,-97,0.021,-16,46,0.001,-20,49,0.014,51,5,0.158,32,-103,0.002,-25,-70,0.001,19,28,0.001,-1,-47,0.006,-5,14,0.015,46,-121,0.001,42,22,0.056,18,32,0.001,33,10,0.008,-5,-65,0.001,-15,-42,0.009,22,108,0.047,0,128,0.010,52,43,0.005,13,36,0.005,-10,-39,0.002,24,113,0.057,56,87,0.005,33,-88,0.007,47,33,0.008,44,21,0.031,23,27,0.000,20,43,0.012,-4,33,0.035,44,-92,0.014,62,40,0.000,20,-102,0.038,35,108,0.061,15,33,0.108,14,4,0.008,10,7,0.015,47,131,0.024,61,52,0.003,38,-119,0.002,49,122,0.004,48,-65,0.001,29,3,0.001,-19,-41,0.012,53,6,0.012,49,7,0.070,48,14,0.030,44,81,0.011,40,129,0.034,38,107,0.047,35,-105,0.004,16,-1,0.002,53,-101,0.000,12,2,0.005,29,-95,0.132,59,46,0.001,40,24,0.009,61,77,0.000,35,40,0.015,11,122,0.002,40,-89,0.016,39,124,0.016,16,-99,0.019,50,13,0.064,-12,-51,0.000,27,110,0.077,41,95,0.002,3,40,0.004,2,129,0.002,39,141,0.035,-21,58,0.039,-21,-64,0.003,30,3,0.002,7,-68,0.001,-17,-58,0.001,-6,23,0.027,30,110,0.068,8,118,0.004,45,4,0.024,60,65,0.002,-35,146,0.001,32,79,0.000,-26,-59,0.002,8,5,0.063,3,99,0.174,55,59,0.003,51,56,0.023,32,-2,0.001,27,42,0.002,4,23,0.003,22,-101,0.021,-16,-46,0.002,21,96,0.093,-1,132,0.003,-39,-71,0.003,46,36,0.010,43,126,0.137,55,125,0.002,-2,16,0.002,-25,47,0.007,9,-85,0.003,43,143,0.020,42,-6,0.007,-11,38,0.005,57,96,0.000,37,41,0.026,28,78,0.779,-10,38,0.003,-14,-47,0.001,56,76,0.001,52,71,0.003,13,8,0.046,9,9,0.055,46,77,0.000,-14,-60,0.001,23,-82,0.071,-34,-65,0.003,0,19,0.004,47,21,0.021,19,100,0.034,34,-110,0.001,-23,-55,0.005,-24,32,0.004,58,55,0.002,35,136,0.061,34,33,0.004,15,21,0.001,10,43,0.006,-9,31,0.004,-9,117,0.104,-40,175,0.004,1,-79,0.001,38,-91,0.006,15,-90,0.031,49,22,0.031,25,44,0.006,2,33,0.039,1,34,0.053,26,106,0.108,25,-103,0.031,40,101,0.000,2,-76,0.028,36,40,0.028,50,79,0.001,12,30,0.007,40,-4,0.014,-52,-70,0.001,29,118,0.066,7,126,0.090,6,-57,0.004,40,-117,0.000,36,-122,0.002,54,70,0.010,53,141,0.001,50,49,0.002,30,48,0.039,26,59,0.004,6,50,0.000,3,20,0.020,2,101,0.011,-21,22,0.000,51,113,0.001,12,107,0.007,45,23,0.014,30,90,0.001,-37,-70,0.001,-27,33,0.028,45,-88,0.002,60,29,0.004,21,-98,0.031,32,51,0.023,28,46,0.001,8,41,0.032,55,63,0.003,51,68,0.001,-3,137,0.001,31,73,0.162,28,-99,0.001,9,105,0.013,27,70,0.053,-1,24,0.004,-2,-55,0.001,-5,-43,0.010,66,65,0.000,46,64,0.000,43,122,0.023,45,91,0.002,42,75,0.042,55,97,0.001,46,-113,0.001,-15,-67,0.001,57,76,0.000,37,61,0.004,33,66,0.007,28,106,0.133,9,24,0.002,-11,-47,0.001,-9,23,0.002,-4,121,0.017,56,16,0.006,37,-82,0.010,-4,-69,0.002,33,-81,0.015,44,62,0.000,46,121,0.005,43,-91,0.007,24,57,0.010,0,39,0.004,-5,145,0.004,13,121,0.021,1,111,0.025,15,104,0.069,11,37,0.026,14,46,0.018,25,106,0.071,-13,15,0.010,61,11,0.002,58,27,0.007,35,116,0.259,37,129,0.027,34,69,0.023,15,-7,0.003,14,76,0.120,11,-10,0.005,-8,144,0.001,-32,150,0.000,-19,-54,0.001,53,45,0.012,49,50,0.001,29,75,0.068,25,72,0.032,-33,-67,0.001,-19,31,0.013,48,102,0.001,-32,-68,0.018,40,73,0.094,39,-94,0.039,50,115,0.001,12,26,0.013,-12,32,0.002,59,38,0.012,36,-93,0.007,35,48,0.019,12,-87,0.010,30,-87,0.018,-8,-44,0.001,29,90,0.005,7,34,0.003,-36,149,0.001,54,34,0.003,30,28,0.002,6,14,0.005,-20,35,0.025,17,-99,0.028,-7,-61,0.000,-27,-56,0.007,60,10,0.001,21,49,0.002,18,85,0.039,36,80,0.005,17,46,0.001,-6,-49,0.004,42,110,0.001,-16,-52,0.002,-20,-57,0.002,54,83,0.007,32,71,0.069,31,-4,0.006,28,74,0.028,27,-15,0.007,8,13,0.013,-16,27,0.003,55,35,0.004,42,-112,0.003,19,47,0.004,65,30,0.000,43,86,0.003,45,127,0.176,18,25,0.001,52,-111,0.000,13,-86,0.027,-30,153,0.001,-18,-57,0.001,-15,-71,0.008,57,40,0.029,56,-3,0.024,52,0,0.061,24,78,0.056,34,120,0.163,-5,132,0.001,-24,-62,0.001,47,-116,0.004,43,1,0.013,-1,10,0.003,67,16,0.001,13,93,0.002,-28,28,0.007,43,18,0.029,23,103,0.045,-37,-60,0.003,0,-70,0.000,15,76,0.092,61,15,0.001,49,125,0.006,-8,116,0.001,29,-6,0.001,20,77,0.093,-18,21,0.000,53,17,0.013,29,15,0.001,44,118,0.003,5,21,0.005,38,80,0.003,48,138,0.000,63,28,0.003,40,45,0.082,36,48,0.013,35,11,0.048,12,54,0.001,11,125,0.050,26,-111,0.000,39,23,0.017,17,123,0.004,-55,-67,0.001,50,10,0.044,27,81,0.228,29,94,0.001,41,118,0.031,54,-130,0.001,53,101,0.001,30,-8,0.018,26,-13,0.001,6,42,0.003,-10,-68,0.003,54,-115,0.001,-21,-54,0.024,64,43,0.000,-30,30,0.011,41,36,0.022,17,42,0.002,-3,-45,0.008,-6,-77,0.004,-25,151,0.000,-7,16,0.007,45,-80,0.000,42,82,0.004,41,-79,0.008,3,118,0.006,51,27,0.010,32,43,0.003,8,49,0.003,-16,47,0.007,51,12,0.044,32,-102,0.003,45,142,0.002,19,27,0.001,6,-11,0.008,33,92,0.000,-5,13,0.019,-6,120,0.090,65,58,0.002,46,-120,0.007,42,3,0.020,18,29,0.001,33,9,0.002,-5,-66,0.000,-29,152,0.001,-15,-43,0.003,22,105,0.036,-20,-50,0.003,52,44,0.006,13,35,0.005,47,-113,0.000,-10,-38,0.008,24,114,0.067,56,88,0.002,33,-89,0.004,47,32,0.011,44,22,0.027,23,26,0.000,20,44,0.009,19,87,0.006,34,-85,0.016,-4,34,0.036,44,-91,0.009,62,37,0.000,20,-101,0.073,38,31,0.019,35,107,0.061,15,32,0.003,14,1,0.007,10,8,0.066,47,130,0.016,61,51,0.005,-33,20,0.001,-18,178,0.009,6,40,0.017,49,121,0.007,48,-64,0.001,29,-2,0.001,-13,-56,0.001,16,121,0.084,53,5,0.000,49,10,0.058,48,15,0.034,26,83,0.289,44,82,0.025,40,130,0.010,38,108,0.002,35,-106,0.024,16,0,0.003,12,3,0.008,29,-92,0.001,48,-113,0.000,59,45,0.001,40,17,0.023,35,39,0.029,11,121,0.001,-8,37,0.012,40,-88,0.013,39,123,0.064,16,-98,0.011,50,14,0.037,27,109,0.059,3,39,0.002,51,108,0.015,30,4,0.001,7,-69,0.002,3,-72,0.001,-17,-59,0.000,-6,24,0.014,30,115,0.298,23,95,0.013,45,3,0.006,-4,-40,0.019,17,6,0.001,-6,-57,0.000,28,19,0.000,-26,-58,0.007,8,6,0.023,3,98,0.013,55,58,0.003,51,55,0.003,32,-1,0.001,31,52,0.011,27,41,0.002,4,24,0.002,22,-100,0.024,-16,-45,0.001,21,95,0.039,-1,131,0.000,-3,-43,0.003,46,33,0.032,43,125,0.080,22,43,0.015,55,92,0.001,-2,13,0.001,-25,46,0.008,43,142,0.074,42,-9,0.002,57,95,0.000,19,-88,0.003,37,44,0.015,-2,128,0.001,10,104,0.009,28,79,0.291,-14,-46,0.001,56,69,0.002,37,-103,0.000,52,72,0.001,13,7,0.034,8,94,0.000,47,-77,0.000,9,12,0.034,46,78,0.000,43,-80,0.034,-11,125,0.003,-34,-64,0.005,0,20,0.003,37,-118,0.001,47,68,0.007,19,99,0.009,-8,143,0.001,-23,-52,0.008,-24,25,0.000,14,38,0.010,58,56,0.005,38,59,0.005,35,135,0.025,34,34,0.009,15,4,0.003,10,44,0.008,14,32,0.006,1,-76,0.012,38,-90,0.079,15,-91,0.057,49,21,0.038,25,43,0.007,2,34,0.022,1,33,0.018,16,77,0.073,-22,44,0.003,48,51,0.000,26,103,0.054,25,-100,0.122,36,41,0.051,-22,-69,0.001,50,80,0.001,12,31,0.009,7,172,0.001,5,126,0.007,-7,156,0.005,29,117,0.097,7,125,0.068,39,95,0.001,36,-121,0.021,54,75,0.003,50,50,0.001,30,45,0.004,26,60,0.003,3,19,0.005,2,102,0.042,12,108,0.015,-7,-70,0.001,45,18,0.012,-25,-65,0.025,36,101,0.002,-3,38,0.014,30,79,0.073,45,-89,0.004,60,30,0.014,-29,-60,0.001,21,-99,0.012,32,52,0.053,31,-105,0.000,28,47,0.002,8,42,0.020,55,62,0.051,51,67,0.001,-3,140,0.001,31,72,0.059,28,-98,0.001,27,69,0.081,42,-71,0.148,-1,23,0.004,-2,-54,0.001,43,121,0.013,45,86,0.006,42,76,0.007,22,71,0.088,56,-117,0.001,55,96,0.001,52,-122,0.001,13,-59,0.009,-25,18,0.000,5,12,0.008,46,-112,0.002,-11,-61,0.003,-15,-64,0.002,57,75,0.000,37,64,0.003,33,65,0.005,28,107,0.097,9,23,0.000,-11,-44,0.002,-18,-63,0.030,-15,13,0.001,56,41,0.026,37,-83,0.006,-4,-68,0.001,33,-78,0.005,44,63,0.001,46,122,0.009,43,-84,0.013,20,53,0.002,0,40,0.002,-5,152,0.002,13,124,0.087,43,53,0.002,1,114,0.001,34,-77,0.013,15,103,0.066,11,44,0.010,10,-83,0.012,-9,-47,0.001,25,105,0.087,-13,14,0.006,61,6,0.002,58,28,0.001,35,115,0.212,34,70,0.118,15,-8,0.004,49,100,0.000,11,-11,0.011,-32,151,0.002,-19,-55,0.001,53,48,0.004,49,49,0.001,29,70,0.018,25,71,0.025,-2,106,0.005,-19,26,0.001,48,103,0.000,40,74,0.017,39,-95,0.008,36,69,0.037,50,116,0.001,12,27,0.005,-7,135,0.001,11,104,0.003,-12,33,0.002,59,37,0.001,5,98,0.015,39,50,0.014,36,-92,0.004,35,47,0.025,12,-86,0.054,30,-86,0.009,-8,-51,0.000,29,89,0.004,7,33,0.005,-36,150,0.013,54,39,0.016,30,25,0.001,6,19,0.002,17,-96,0.029,-27,-57,0.003,60,11,0.013,21,52,0.002,36,81,0.003,17,45,0.002,-6,-48,0.004,42,123,0.041,-16,-59,0.001,-20,-56,0.001,52,85,0.003,54,84,0.027,-41,-63,0.001,32,72,0.061,31,-5,0.008,28,75,0.038,8,14,0.005,-16,28,0.007,55,34,0.004,31,44,0.008,19,46,0.004,18,-89,0.003,33,127,0.019,-5,56,0.003,-36,148,0.002,65,29,0.000,43,85,0.004,45,122,0.013,18,26,0.001,6,7,0.116,52,-110,0.001,13,-87,0.032,46,-68,0.001,-11,-73,0.001,-14,39,0.010,-15,-68,0.001,57,39,0.013,56,-2,0.010,52,1,0.033,24,79,0.074,34,117,0.262,33,-114,0.001,-24,-61,0.000,47,-117,0.015,43,8,0.036,19,122,0.001,67,15,0.001,43,17,0.017,58,-3,0.001,-37,-61,0.002,15,75,0.092,47,93,0.000,62,-7,0.001,61,42,0.001,-46,170,0.001,49,128,0.005,-8,109,0.203,29,-7,0.001,20,78,0.099,-18,22,0.000,53,20,0.017,48,-4,0.018,29,42,0.001,44,119,0.006,5,24,0.001,38,77,0.015,48,139,0.000,63,27,0.001,40,46,0.019,39,5,0.001,36,49,0.016,35,10,0.023,-19,147,0.000,12,55,0.001,39,22,0.010,50,7,0.082,27,88,0.026,29,93,0.002,41,117,0.015,53,104,0.004,26,-12,0.002,-9,143,0.001,17,-100,0.009,54,-114,0.000,-30,27,0.023,41,35,0.011,36,109,0.013,32,117,0.196,-6,-76,0.002,-7,15,0.005,42,79,0.005,41,-76,0.010,3,117,0.001,21,-75,0.002,51,26,0.009,32,44,0.003,8,50,0.002,4,45,0.004,22,-99,0.008,-16,48,0.006,51,11,0.037,32,-101,0.002,8,-63,0.008,19,26,0.001,-1,-49,0.001,33,91,0.000,-5,20,0.019,46,-123,0.004,42,4,0.004,57,86,0.002,18,30,0.001,33,12,0.003,6,0,0.045,-29,151,0.000,-15,-40,0.016,22,106,0.025,37,-8,0.010,52,29,0.006,13,30,0.008,47,-114,0.001,46,103,0.001,24,115,0.049,33,-86,0.034,47,31,0.008,44,23,0.024,19,86,0.037,34,-84,0.035,-4,35,0.018,44,-90,0.004,62,38,0.000,20,-100,0.078,38,32,0.018,35,106,0.065,15,31,0.001,14,2,0.011,10,5,0.012,47,129,0.016,61,46,0.000,-33,19,0.003,49,124,0.003,11,-83,0.001,48,-55,0.001,29,-3,0.001,16,122,0.046,53,8,0.024,49,9,0.134,48,16,0.018,26,84,0.383,44,83,0.005,5,-4,0.083,38,105,0.001,35,-107,0.001,16,9,0.000,12,4,0.023,29,-93,0.004,-37,141,0.000,59,52,0.001,40,18,0.040,-20,-43,0.092,35,38,0.068,16,16,0.001,-8,38,0.015,40,-95,0.003,39,122,0.086,16,-97,0.011,50,43,0.004,27,116,0.081,3,38,0.001,-1,103,0.016,-21,32,0.015,51,107,0.002,30,1,0.000,7,-70,0.004,3,-73,0.008,-13,-38,0.139,-6,21,0.010,-35,-62,0.003,30,116,0.171,-35,148,0.001,17,5,0.000,-6,-56,0.001,-26,-53,0.014,8,7,0.019,41,-112,0.005,3,97,0.004,55,57,0.004,52,125,0.001,51,54,0.002,32,0,0.001,31,51,0.015,27,48,0.002,4,25,0.002,22,-103,0.005,-16,-44,0.005,21,106,0.251,-39,-69,0.004,31,100,0.002,46,34,0.012,43,132,0.017,22,44,0.008,55,91,0.002,-2,14,0.003,-25,45,0.006,-10,153,0.000,43,141,0.004,42,-8,0.043,19,-89,0.003,37,43,0.019,-2,125,0.001,28,80,0.267,-14,-49,0.002,56,70,0.004,37,-100,0.003,52,73,0.001,-12,-66,0.002,13,2,0.013,9,11,0.017,46,83,0.002,43,-81,0.008,-14,-62,0.000,-34,-67,0.001,0,13,0.001,37,-119,0.002,-23,46,0.002,-30,-49,0.004,23,29,0.000,19,98,0.010,34,-112,0.004,-36,-60,0.004,-23,-53,0.003,-24,26,0.005,-43,-64,0.001,62,50,0.001,58,53,0.006,38,60,0.002,35,134,0.025,37,95,0.000,15,3,0.002,11,0,0.030,10,41,0.015,-9,29,0.004,5,-70,0.001,-10,162,0.002,1,-77,0.035,38,-85,0.040,49,24,0.043,2,31,0.053,1,36,0.020,16,78,0.094,48,52,0.001,26,104,0.090,25,-101,0.010,2,-78,0.003,36,42,0.040,-22,-68,0.001,50,77,0.000,12,32,0.010,-42,-73,0.006,-12,22,0.001,59,16,0.008,5,125,0.001,36,-7,0.001,29,120,0.103,7,124,0.029,40,-123,0.001,39,94,0.001,36,-120,0.005,54,76,0.002,53,143,0.001,50,47,0.003,30,46,0.004,26,57,0.002,3,18,0.002,2,99,0.035,17,-61,0.002,-21,28,0.005,12,77,0.176,64,-147,0.002,45,17,0.019,6,103,0.025,57,12,0.013,36,102,0.059,-21,165,0.001,-3,37,0.006,30,80,0.019,45,-94,0.009,60,31,0.016,32,45,0.050,31,-106,0.067,28,48,0.007,8,43,0.008,-16,33,0.003,55,61,0.010,51,66,0.001,-3,139,0.001,31,71,0.043,28,-97,0.004,9,107,0.052,27,76,0.122,42,-70,0.030,-1,22,0.005,-5,-37,0.007,66,63,0.001,46,62,0.001,43,96,0.001,45,85,0.004,42,73,0.004,22,72,0.072,18,51,0.001,55,95,0.003,-29,-50,0.006,-15,-65,0.000,57,62,0.011,56,-5,0.001,37,63,0.006,33,68,0.013,28,108,0.067,9,26,0.000,-11,-45,0.001,-15,16,0.006,56,42,0.016,37,-80,0.011,33,-79,0.008,44,64,0.000,43,-85,0.012,20,54,0.002,-23,26,0.001,13,123,0.029,47,55,0.001,43,60,0.003,20,-155,0.000,1,113,0.002,38,-27,0.002,37,142,0.001,34,-76,0.003,15,102,0.036,11,43,0.011,-9,-48,0.002,25,108,0.036,58,25,0.004,35,114,0.224,37,131,0.000,34,67,0.008,15,-9,0.007,49,99,0.000,11,-4,0.027,-9,112,0.071,-32,152,0.001,-19,-52,0.001,53,47,0.008,49,52,0.001,48,1,0.016,29,69,0.008,25,74,0.059,-19,25,0.000,48,104,0.000,-12,-77,0.062,40,75,0.003,39,-96,0.005,36,70,0.025,-19,170,0.001,50,113,0.001,12,28,0.006,11,103,0.002,-12,34,0.017,59,44,0.001,5,97,0.023,39,49,0.026,36,-107,0.001,35,46,0.029,12,-85,0.019,30,-97,0.040,-8,-50,0.002,29,92,0.014,7,32,0.007,8,100,0.049,54,40,0.024,6,20,0.003,-31,152,0.001,17,-97,0.012,-26,33,0.053,8,105,0.007,60,12,0.005,41,58,0.003,21,51,0.002,18,83,0.048,36,82,0.002,17,48,0.002,-6,-51,0.000,42,124,0.148,-16,-58,0.003,-20,-55,0.001,52,86,0.012,54,81,0.001,31,-6,0.014,28,76,0.089,27,-9,0.001,8,15,0.003,-16,21,0.000,55,33,0.003,31,43,0.003,42,-114,0.003,19,45,0.005,18,-88,0.005,33,130,0.024,43,92,0.001,45,121,0.007,-4,153,0.001,52,-109,0.000,13,-84,0.003,46,-71,0.030,-14,40,0.015,-15,-69,0.003,57,42,0.012,0,103,0.006,52,2,0.033,24,80,0.058,-9,18,0.004,34,118,0.279,33,-115,0.001,-5,130,0.001,47,-118,0.000,43,7,0.024,-13,-47,0.001,-24,-45,0.041,43,24,0.018,23,101,0.021,38,1,0.004,15,74,0.040,47,108,0.010,62,-6,0.001,61,41,0.001,-4,102,0.004,49,127,0.008,-8,110,0.285,29,-4,0.000,20,79,0.078,-18,27,0.004,53,19,0.038,-3,106,0.009,29,41,0.002,44,120,0.011,5,23,0.001,38,78,0.019,-22,-159,0.000,48,140,0.000,29,-102,0.002,63,26,0.001,40,47,0.030,39,4,0.006,36,50,0.019,35,9,0.018,16,53,0.000,39,21,0.012,50,8,0.092,27,87,0.036,29,96,0.000,-22,-45,0.023,41,120,0.047,3,73,0.000,53,103,0.003,-35,-71,0.012,-25,-56,0.009,17,-101,0.005,-21,-44,0.028,8,77,0.114,-30,28,0.029,41,22,0.024,-29,-59,0.005,36,110,0.024,17,44,0.014,32,118,0.156,-6,-79,0.012,-7,18,0.007,42,80,0.002,41,-77,0.006,51,25,0.011,32,37,0.047,4,46,0.004,22,-98,0.014,51,10,0.047,32,-100,0.002,-38,178,0.000,8,-62,0.027,19,25,0.001,-1,-50,0.001,33,94,0.000,-5,19,0.030,5,1,0.011,46,-122,0.008,42,1,0.003,57,85,0.001,33,11,0.010,-5,-60,0.001,-30,150,0.000,-18,-52,0.002,-15,-41,0.008,22,79,0.063,52,30,0.012,13,29,0.005,47,-115,0.000,46,104,0.001,24,116,0.086,-14,-69,0.001,33,-87,0.011,47,30,0.017,44,24,0.029,19,85,0.101,34,-87,0.011,-4,36,0.015,14,44,0.064,44,-89,0.009,62,43,0.000,38,29,0.040,35,105,0.054,15,30,0.001,14,-9,0.005,10,6,0.016,47,128,0.030,61,45,0.000,-33,18,0.001,38,-112,0.001,34,11,0.018,49,123,0.003,48,-54,0.001,29,0,0.000,22,-12,0.002,16,123,0.004,53,7,0.026,49,12,0.055,48,25,0.029,26,81,0.361,44,84,0.004,5,-5,0.022,38,106,0.014,35,-100,0.001,16,10,0.000,53,-104,0.000,12,5,0.045,29,-98,0.057,59,51,0.001,40,19,0.020,35,37,0.099,16,25,0.001,-8,39,0.012,26,-77,0.001,-32,29,0.030,40,-94,0.002,-17,-47,0.014,16,-96,0.017,50,44,0.005,27,115,0.093,3,37,0.001,2,128,0.000,-21,31,0.016,51,106,0.001,50,-101,0.001,30,2,0.000,7,-71,0.006,3,-74,0.055,-6,22,0.010,30,113,0.161,-35,147,0.001,17,8,0.000,-26,-52,0.008,8,8,0.020,55,56,0.005,52,126,0.001,51,53,0.002,32,9,0.003,31,50,0.023,27,47,0.002,4,26,0.001,22,-102,0.024,-16,-51,0.001,21,105,0.034,-1,129,0.000,-36,139,0.011,31,99,0.002,46,23,0.010,43,131,0.009,22,41,0.011,55,90,0.004,-2,19,0.005,-25,44,0.001,57,97,0.001,19,-90,0.009,37,38,0.037,-10,-76,0.017,-2,126,0.001,28,81,0.109,-14,-48,0.002,-34,19,0.062,56,71,0.001,37,-101,0.001,34,107,0.051,52,74,0.001,-44,-64,0.001,13,1,0.009,47,-79,0.001,9,-2,0.007,46,84,0.006,43,-82,0.004,-34,-66,0.004,-22,167,0.001,0,14,0.001,-23,45,0.003,43,63,0.000,19,97,0.030,34,-115,0.000,-24,27,0.003,-43,-65,0.002,58,54,0.002,38,57,0.004,35,133,0.012,37,106,0.023,15,2,0.002,11,-1,0.014,10,42,0.005,5,-71,0.001,1,-74,0.001,38,-84,0.019,49,23,0.020,-28,-49,0.012,2,32,0.020,1,35,0.049,16,79,0.064,48,45,0.052,26,101,0.034,36,43,0.019,12,33,0.016,-42,-72,0.005,-21,-49,0.024,-12,23,0.001,59,15,0.004,39,76,0.017,36,-6,0.022,-7,142,0.001,29,119,0.057,7,123,0.033,6,-58,0.012,40,-122,0.007,36,-119,0.041,54,73,0.003,50,48,0.002,30,51,0.015,26,58,0.007,7,12,0.006,3,17,0.002,2,100,0.063,8,82,0.014,-21,27,0.001,50,-97,0.001,12,78,0.142,45,20,0.026,36,103,0.047,-3,40,0.001,30,77,0.232,-27,30,0.016,45,-95,0.003,60,32,0.000,21,-97,0.009,32,46,0.018,31,-107,0.001,28,49,0.004,8,44,0.006,-16,34,0.005,55,28,0.005,51,65,0.001,-3,134,0.001,31,70,0.009,28,-96,0.004,27,75,0.064,42,-73,0.033,18,-63,0.003,-1,21,0.004,-5,-38,0.020,66,64,0.001,43,95,0.001,45,88,0.003,42,74,0.007,22,69,0.001,18,52,0.000,55,94,0.001,46,-114,0.003,-11,-67,0.002,-28,152,0.005,-15,-62,0.001,57,61,0.013,56,-4,0.003,52,-9,0.006,33,67,0.007,28,109,0.066,9,25,0.003,-11,-50,0.000,-15,15,0.006,56,43,0.007,37,-81,0.011,34,79,0.000,44,65,0.001,-52,-69,0.001,43,-86,0.009,-9,36,0.012,20,55,0.002,-30,-55,0.003,47,54,0.001,43,59,0.002,-12,21,0.001,37,141,0.067,34,-79,0.015,15,101,0.052,11,42,0.004,10,-69,0.041,-9,-49,0.002,25,107,0.039,-13,20,0.001,61,8,0.001,58,26,0.004,35,113,0.113,37,126,0.010,34,68,0.011,15,-10,0.004,49,102,0.000,11,-5,0.018,14,33,0.034,-19,-53,0.001,53,58,0.001,49,51,0.000,48,2,0.034,29,72,0.146,44,125,0.045,25,73,0.043,-19,28,0.004,48,81,0.001,-12,-76,0.031,40,76,0.001,39,-97,0.001,36,71,0.008,50,114,0.001,-38,147,0.001,-12,35,0.011,59,43,0.001,39,48,0.021,36,-106,0.001,35,45,0.033,12,-84,0.005,30,-96,0.009,-8,-49,0.003,29,91,0.004,14,79,0.078,7,31,0.006,-17,41,0.001,54,37,0.016,53,110,0.001,30,15,0.001,-22,-43,0.031,6,17,0.004,17,-94,0.016,-26,34,0.009,8,106,0.008,41,57,0.001,21,46,0.005,18,84,0.127,36,83,0.001,17,47,0.001,-6,-50,0.004,42,121,0.024,-16,-57,0.002,-20,-54,0.001,52,87,0.001,54,82,0.002,31,-7,0.028,27,-10,0.001,8,16,0.016,-16,22,0.001,55,32,0.002,31,42,0.002,-2,-49,0.005,19,52,0.002,18,-91,0.003,-29,32,0.032,43,91,0.002,45,124,0.025,52,-108,0.001,13,-85,0.013,5,7,0.130,46,-70,0.005,-14,37,0.001,57,41,0.019,0,104,0.010,-43,148,0.007,24,105,0.045,34,115,0.251,33,-112,0.058,47,-119,0.002,44,29,0.023,43,6,0.078,23,-13,0.000,-36,-69,0.000,-24,-44,0.003,43,23,0.024,24,-81,0.002,23,100,0.027,20,-78,0.001,38,2,0.002,0,-75,0.002,47,107,0.008,61,44,0.001,35,141,0.148,-4,103,0.050,49,130,0.003,48,-89,0.004,29,-5,0.001,20,80,0.068,-18,28,0.005,53,14,0.016,29,44,0.001,44,121,0.006,5,34,0.002,38,83,0.001,48,133,0.004,63,25,0.001,40,48,0.028,39,3,0.018,36,51,0.033,35,0,0.062,16,54,0.001,26,-112,0.001,59,7,0.001,39,20,0.004,17,96,0.096,50,5,0.123,27,86,0.140,29,95,0.001,41,119,0.039,54,-127,0.000,53,82,0.003,30,-5,0.006,-21,-45,0.012,8,78,0.195,-30,25,0.002,41,21,0.031,36,111,0.021,17,43,0.019,32,119,0.179,-6,-78,0.014,-7,17,0.007,42,77,0.005,41,-90,0.015,51,16,0.027,32,38,0.005,4,47,0.002,51,9,0.058,32,-107,0.001,8,-61,0.001,45,143,0.000,-1,-51,0.002,33,93,0.000,-5,18,0.012,46,-117,0.003,42,2,0.008,-34,149,0.001,6,12,0.011,-44,-71,0.001,-5,-61,0.000,22,80,0.064,52,31,0.019,13,32,0.013,47,-100,0.000,-10,-67,0.002,24,109,0.054,20,-16,0.001,56,83,0.000,33,-84,0.105,47,29,0.045,44,25,0.029,34,-86,0.022,-4,37,0.030,44,-88,0.020,62,44,0.000,38,30,0.023,35,96,0.000,15,29,0.001,14,-8,0.003,10,-13,0.016,47,127,0.043,-9,121,0.023,61,48,0.002,34,12,0.001,49,30,0.011,48,-53,0.001,29,-1,0.001,-13,-59,0.000,-19,-45,0.002,6,123,0.010,49,11,0.044,48,26,0.032,26,82,0.257,44,85,0.009,40,125,0.070,38,111,0.030,35,-101,0.009,53,-105,0.002,12,6,0.034,29,-99,0.002,59,50,0.001,40,20,0.024,-11,150,0.001,35,44,0.026,16,26,0.001,-8,40,0.020,-32,30,0.025,40,-93,0.002,39,120,0.033,50,41,0.007,27,114,0.157,26,35,0.001,3,44,0.010,-21,30,0.008,51,105,0.001,50,-100,0.000,23,81,0.086,7,-72,0.044,3,-75,0.019,-6,35,0.010,30,114,0.218,18,81,0.018,45,0,0.017,17,7,0.000,-26,-55,0.010,8,1,0.016,41,-110,0.001,55,55,0.006,52,127,0.000,51,60,0.002,32,10,0.002,31,49,0.039,28,5,0.000,27,46,0.002,4,27,0.001,-16,-50,0.003,21,108,0.030,-1,128,0.003,31,98,0.003,46,24,0.030,43,130,0.027,-4,144,0.002,22,42,0.015,55,89,0.001,-2,20,0.003,46,-89,0.001,57,100,0.000,37,37,0.036,-2,131,0.000,28,82,0.070,-9,27,0.008,-34,20,0.012,56,72,0.001,37,-106,0.001,34,108,0.099,52,75,0.001,13,4,0.020,9,-3,0.004,46,81,0.001,43,-83,0.022,-34,-61,0.008,0,15,0.000,-23,48,0.018,13,145,0.005,43,62,0.001,23,59,0.026,34,-114,0.003,-24,28,0.002,-42,146,0.001,44,-124,0.001,38,58,0.003,35,140,0.978,37,105,0.014,15,1,0.002,11,-2,0.014,10,39,0.054,1,-75,0.012,38,-87,0.009,49,26,0.027,14,19,0.002,2,29,0.007,1,38,0.001,16,80,0.081,48,46,0.002,26,102,0.045,40,97,0.002,36,44,0.019,38,139,0.002,-22,-70,0.001,50,107,0.001,12,34,0.006,-12,24,0.001,59,14,0.005,40,-8,0.039,39,75,0.001,36,-5,0.023,35,72,0.022,-7,141,0.001,29,114,0.128,7,122,0.003,40,-121,0.001,36,-118,0.001,54,74,0.025,50,45,0.004,30,52,0.012,26,55,0.001,7,11,0.015,2,97,0.001,-20,31,0.010,-21,26,0.001,-3,-78,0.020,50,-96,0.002,12,79,0.154,-7,-69,0.000,45,19,0.019,6,101,0.055,18,109,0.012,36,104,0.083,-3,39,0.005,-35,-67,0.001,30,78,0.125,-27,29,0.119,45,-92,0.008,60,33,0.000,21,-86,0.005,32,47,0.011,31,-92,0.007,8,37,0.033,-16,35,0.026,55,27,0.011,-3,133,0.002,31,69,0.006,28,-95,0.001,9,93,0.002,27,74,0.042,42,-72,0.032,-1,36,0.078,-5,-39,0.008,66,61,0.000,5,-6,0.031,43,94,0.001,45,87,0.003,42,71,0.007,22,70,0.033,18,49,0.002,55,93,0.009,-11,-64,0.001,-15,-63,0.001,57,64,0.004,37,73,0.002,52,-8,0.011,33,70,0.028,28,110,0.069,9,28,0.004,-11,-51,0.001,-15,18,0.001,56,44,0.065,34,80,0.000,-4,-65,0.001,44,66,0.006,46,109,0.001,43,-87,0.023,24,53,0.000,20,56,0.000,-20,147,0.005,-23,28,0.003,47,53,0.002,-47,-68,0.000,1,115,0.001,34,-78,0.009,14,-83,0.002,11,41,0.012,10,-68,0.043,-9,-50,0.001,25,94,0.041,-13,19,0.004,61,7,0.001,58,23,0.001,37,125,0.001,34,65,0.003,15,-11,0.004,49,101,0.000,11,-6,0.014,-19,-58,0.001,53,57,0.014,49,54,0.001,48,3,0.340,29,71,0.074,44,126,0.088,25,76,0.072,-19,27,0.002,48,82,0.001,-12,-59,0.001,40,69,0.041,39,-98,0.001,36,72,0.004,50,111,0.000,-7,140,0.002,-12,36,0.006,59,42,0.001,39,47,0.015,36,-105,0.002,35,52,0.364,30,-99,0.002,-8,-48,0.005,29,86,0.000,7,30,0.007,-17,40,0.015,54,38,0.037,30,16,0.001,6,18,0.004,17,-95,0.011,64,19,0.000,41,60,0.010,21,45,0.005,57,-1,0.001,-6,-37,0.014,42,122,0.052,4,-75,0.084,-16,-56,0.018,-20,-53,0.001,52,88,0.001,54,87,0.020,31,-8,0.051,27,-11,0.001,-16,23,0.003,55,31,0.014,31,41,0.001,19,51,0.002,18,-90,0.004,33,132,0.045,66,33,0.000,-29,31,0.023,43,90,0.004,45,123,0.032,42,43,0.028,4,114,0.003,13,-90,0.005,46,-81,0.003,-14,38,0.002,57,44,0.002,0,113,0.005,24,106,0.029,34,116,0.265,33,-113,0.001,-5,136,0.000,47,-120,0.004,43,5,0.030,23,-14,0.000,19,111,0.080,-24,-51,0.047,44,-83,0.002,43,22,0.033,58,12,0.005,20,-77,0.017,-37,-56,0.002,0,-74,0.001,47,106,0.000,61,43,0.001,-4,104,0.031,49,129,0.002,-8,112,0.261,29,-10,0.002,20,81,0.044,-18,25,0.003,53,13,0.012,29,43,0.001,44,122,0.011,5,33,0.003,-28,-59,0.011,48,134,0.002,29,-100,0.002,63,24,0.003,40,41,0.025,39,2,0.001,36,52,0.036,35,-1,0.013,59,6,0.005,39,19,0.005,17,95,0.021,54,-9,0.001,50,6,0.072,27,85,0.110,41,122,0.087,53,81,0.002,30,-4,0.002,54,-111,0.000,23,99,0.015,-30,26,0.001,41,24,0.015,36,112,0.090,32,120,0.273,-6,-81,0.001,-7,20,0.008,42,78,0.002,41,-91,0.011,51,15,0.034,32,39,0.002,8,45,0.006,4,48,0.002,-3,-39,0.001,51,0,0.331,32,-106,0.006,-29,-70,0.002,-38,142,0.000,-5,17,0.009,46,-116,0.002,42,-1,0.017,57,87,0.000,-2,120,0.009,-5,-62,0.001,-15,-39,0.029,22,77,0.089,52,32,0.014,13,31,0.012,47,-101,0.001,46,102,0.000,24,110,0.099,-14,-71,0.017,20,-15,0.001,56,84,0.001,-3,147,0.001,33,-85,0.012,47,44,0.002,44,26,0.040,34,-89,0.008,-4,38,0.044,44,-87,0.007,62,41,0.001,38,35,0.019,35,95,0.000,-27,153,0.004,15,44,0.074,49,144,0.001,10,-12,0.018,47,126,0.037,61,47,0.003,34,9,0.014,15,-83,0.001,49,29,0.023,-19,-50,0.004,-3,101,0.001,48,27,0.026,26,79,0.148,44,86,0.016,40,126,0.021,38,112,0.031,35,-102,0.001,12,7,0.039,29,-96,0.004,59,49,0.001,35,43,0.018,16,27,0.001,-8,33,0.003,14,98,0.001,-31,-70,0.003,-32,31,0.001,40,-92,0.003,39,119,0.154,16,-86,0.001,50,42,0.006,27,113,0.184,-22,-48,0.032,41,86,0.009,3,43,0.003,2,126,0.002,-54,-68,0.001,-21,29,0.086,50,-103,0.001,-35,-72,0.000,45,42,0.022,7,-73,0.042,-6,36,0.015,45,-1,0.003,41,-124,0.001,-29,-64,0.004,-35,141,0.001,17,10,0.001,32,92,0.001,-26,-54,0.030,8,2,0.013,41,-111,0.012,55,54,0.004,52,128,0.001,51,59,0.017,32,11,0.001,31,48,0.017,28,6,0.000,27,45,0.002,4,28,0.002,-16,-49,0.008,21,107,0.117,18,-69,0.094,-20,18,0.001,31,97,0.002,46,21,0.024,43,129,0.012,55,88,0.001,-2,17,0.003,-8,-79,0.011,5,0,0.140,46,-88,0.001,43,146,0.002,37,40,0.025,-39,142,0.001,-2,132,0.004,28,83,0.037,-10,15,0.007,-14,-50,0.001,-18,-67,0.009,56,65,0.002,37,-107,0.002,34,105,0.040,52,76,0.001,13,3,0.020,9,0,0.022,46,82,0.001,43,-76,0.020,-14,-67,0.000,-34,-60,0.045,0,16,0.001,37,-122,0.130,-23,47,0.005,43,61,0.001,23,58,0.016,-23,-64,0.003,44,-123,0.019,58,68,0.000,38,63,0.003,35,139,0.091,37,108,0.011,15,0,0.001,11,-3,0.015,10,40,0.057,1,-72,0.001,38,-86,0.008,49,25,0.040,-2,102,0.017,2,30,0.007,1,37,0.003,48,47,0.002,26,115,0.068,40,98,0.004,36,29,0.008,38,140,0.015,50,108,0.002,12,35,0.011,-12,25,0.004,59,13,0.003,39,74,0.003,36,-4,0.036,35,71,0.005,-7,144,0.006,29,113,0.157,40,-120,0.001,54,47,0.006,50,46,0.008,30,49,0.033,26,56,0.003,7,10,0.037,2,98,0.006,-21,25,0.000,-3,-79,0.044,50,-99,0.001,12,80,0.189,45,14,0.031,6,102,0.054,18,110,0.049,36,105,0.037,-3,34,0.041,-27,32,0.020,45,-93,0.038,42,131,0.016,60,34,0.001,21,-87,0.004,32,48,0.010,-17,-42,0.005,31,-93,0.004,28,51,0.002,8,38,0.053,-16,36,0.084,55,26,0.006,31,20,0.001,27,73,0.017,42,-75,0.011,4,-8,0.003,18,-65,0.025,-1,35,0.127,-36,144,0.001,66,62,0.000,43,93,0.001,45,82,0.002,42,72,0.015,22,75,0.099,18,50,0.001,6,3,0.099,9,-66,0.005,-10,124,0.002,-11,-65,0.001,-15,-60,0.000,57,63,0.002,37,76,0.001,52,-7,0.010,33,69,0.060,28,111,0.055,9,27,0.003,-11,-48,0.008,-33,148,0.000,-15,17,0.003,56,37,0.015,34,77,0.003,-4,-64,0.001,44,67,0.001,43,-112,0.003,24,54,0.001,-23,27,0.002,1,118,0.002,34,-81,0.019,11,16,0.009,10,-71,0.080,25,93,0.045,-13,18,0.008,-32,116,0.024,58,24,0.001,37,128,0.352,34,66,0.005,49,104,0.000,11,-7,0.010,10,76,0.023,-19,-59,0.001,53,60,0.012,49,53,0.001,48,4,0.014,29,66,0.001,44,127,0.085,25,75,0.075,-19,22,0.001,48,83,0.001,-12,-58,0.000,-32,-63,0.006,40,70,0.055,39,-99,0.001,36,73,0.009,50,112,0.000,-7,139,0.001,11,108,0.047,59,41,0.003,39,46,0.016,36,-104,0.000,35,51,0.047,30,-98,0.004,29,85,0.000,7,29,0.005,-17,39,0.006,54,43,0.004,30,13,0.001,-9,147,0.002,6,23,0.001,8,79,0.021,17,-92,0.031,64,20,0.001,-13,-48,0.001,41,59,0.005,21,48,0.005,18,82,0.028,17,49,0.000,-6,-36,0.007,-44,173,0.014,42,119,0.037,4,-74,0.231,-20,-52,0.001,52,89,0.001,54,88,0.001,31,-9,0.019,-16,24,0.005,55,30,0.007,31,40,0.001,19,50,0.002,18,-93,0.021,-3,-49,0.006,33,131,0.201,-29,30,0.015,43,89,0.007,45,118,0.001,42,44,0.013,4,115,0.016,13,-91,0.001,46,-80,0.003,-28,-65,0.011,-14,35,0.020,57,43,0.007,0,114,0.001,52,21,0.055,24,107,0.028,34,113,0.231,33,-110,0.001,-24,-65,0.003,47,-121,0.004,43,12,0.055,23,-15,0.000,19,110,0.064,-24,-50,0.014,-30,-58,0.002,43,21,0.034,-28,-60,0.004,23,98,0.015,20,-76,0.048,-37,-57,0.002,11,76,0.165,47,105,0.000,-13,46,0.005,61,38,0.000,-4,105,0.077,49,132,0.000,-42,174,0.003,20,82,0.068,-18,26,0.005,53,16,0.012,29,38,0.001,44,123,0.015,5,36,0.002,38,81,0.006,48,135,0.002,29,-101,0.002,63,23,0.002,40,42,0.012,39,1,0.000,-20,-47,0.008,35,-2,0.008,39,18,0.003,17,98,0.025,54,-8,0.004,50,3,0.056,27,92,0.018,41,121,0.070,53,84,0.028,30,-7,0.011,41,10,0.003,54,-110,0.001,-35,-58,0.436,64,40,0.007,-30,23,0.001,41,23,0.015,36,113,0.048,32,129,0.002,-6,-80,0.020,-7,19,0.005,42,91,0.002,41,-88,0.055,52,117,0.001,51,14,0.045,32,40,0.003,8,46,0.005,51,-1,0.053,32,-105,0.002,8,-67,0.003,-2,-44,0.002,33,95,0.000,-5,24,0.005,65,61,0.000,46,-119,0.008,42,0,0.004,-1,-52,0.000,-2,117,0.022,-5,-63,0.000,22,78,0.057,52,33,0.010,13,26,0.010,-10,-61,0.001,24,111,0.059,-14,-70,0.001,56,77,0.001,-20,170,0.000,47,43,0.010,44,27,0.101,20,33,0.001,34,-88,0.009,-4,39,0.008,47,-4,0.004,44,-86,0.001,62,42,0.000,38,36,0.021,15,43,0.008,49,143,0.001,47,125,0.036,61,74,0.010,-34,150,0.003,38,-109,0.000,34,10,0.018,49,32,0.017,-19,-51,0.002,-22,49,0.005,48,28,0.019,26,80,0.176,44,87,0.021,40,127,0.022,38,109,0.003,35,-103,0.000,16,5,0.001,12,8,0.082,-42,-65,0.000,29,-97,0.006,-36,-68,0.001,59,56,0.001,40,14,0.002,35,42,0.021,16,28,0.001,-8,34,0.005,26,-78,0.001,-31,-71,0.008,40,-99,0.003,39,118,0.305,50,39,0.009,-12,-50,0.000,27,120,0.063,26,33,0.071,41,85,0.002,3,42,0.006,51,95,0.003,-21,-65,0.002,50,-102,0.001,45,41,0.017,7,-74,0.007,-6,33,0.007,17,9,0.001,28,24,0.001,8,3,0.012,55,53,0.028,51,58,0.004,32,12,0.010,31,47,0.021,28,7,0.000,27,52,0.001,4,13,0.005,-16,-48,0.024,21,102,0.010,18,-68,0.012,-20,19,0.001,31,96,0.002,46,22,0.023,55,87,0.023,-10,-66,0.001,-2,18,0.005,46,-91,0.001,43,145,0.011,-11,37,0.005,57,54,0.004,37,39,0.026,-17,-50,0.004,28,84,0.041,-10,16,0.007,-34,18,0.001,56,66,0.003,37,-104,0.001,34,106,0.070,52,61,0.002,13,-2,0.026,9,-1,0.007,46,135,0.001,43,-77,0.029,-14,-66,0.001,-34,-63,0.003,0,25,0.008,-38,-56,0.001,47,63,0.000,43,68,0.001,23,57,0.006,-22,150,0.003,15,110,0.001,-23,-65,0.002,44,-122,0.007,58,65,0.000,38,64,0.004,35,138,0.084,37,107,0.024,15,-1,0.002,11,4,0.015,10,37,0.027,-9,116,0.097,-40,176,0.002,5,-74,0.023,1,-73,0.001,38,-81,0.013,49,28,0.017,25,34,0.000,2,27,0.003,1,40,0.002,48,48,0.000,26,116,0.073,40,99,0.005,36,30,0.017,35,-75,0.001,50,105,0.001,12,36,0.004,-12,26,0.007,62,114,0.001,-32,-51,0.001,39,73,0.004,35,70,0.025,-7,143,0.002,30,-105,0.000,29,116,0.108,36,-116,0.001,54,48,0.005,50,75,0.001,30,50,0.016,7,9,0.048,50,-98,0.000,12,81,0.071,-27,-70,0.001,45,13,0.062,8,125,0.065,36,106,0.031,-3,33,0.038,-7,-34,0.001,-37,-71,0.009,-27,31,0.011,45,-98,0.001,42,132,0.004,60,35,0.001,21,-84,0.001,32,57,0.001,31,-94,0.007,28,52,0.007,8,39,0.093,-16,29,0.048,55,25,0.012,-3,135,0.001,42,-74,0.007,4,-7,0.008,18,-64,0.003,-1,34,0.000,45,81,0.002,42,69,0.003,22,76,0.116,56,-120,0.001,18,47,0.001,-35,118,0.000,13,-60,0.003,14,-11,0.008,9,-67,0.018,46,-111,0.001,-11,-54,0.001,-15,-61,0.000,57,66,0.022,37,75,0.000,52,-6,0.007,33,72,0.102,28,112,0.111,9,14,0.018,-11,-49,0.001,-9,22,0.001,-4,122,0.006,56,38,0.016,34,78,0.000,-4,-63,0.000,44,68,0.001,43,-113,0.000,24,55,0.003,20,58,0.000,1,117,0.000,34,-80,0.016,15,82,0.001,11,15,0.024,10,-70,0.009,25,96,0.003,-13,17,0.015,37,127,0.413,34,63,0.025,49,103,0.000,10,73,0.001,53,59,0.010,49,56,0.001,48,-3,0.013,29,65,0.001,44,128,0.036,25,62,0.003,-1,167,0.000,35,-120,0.009,-19,21,0.001,48,84,0.001,-12,-57,0.001,-32,-62,0.005,40,71,0.047,39,-100,0.000,36,74,0.018,50,109,0.001,11,107,0.076,-12,154,0.000,39,45,0.018,35,50,0.021,30,-93,0.011,29,88,0.002,7,28,0.003,-17,38,0.013,54,44,0.005,53,111,0.001,30,14,0.001,-25,-52,0.009,17,-93,0.019,12,109,0.046,64,13,0.000,45,49,0.001,41,46,0.024,21,47,0.005,18,79,0.123,36,134,0.001,51,-104,0.000,-6,-39,0.009,45,-62,0.002,42,120,0.030,4,-73,0.023,52,90,0.001,54,85,0.002,32,13,0.016,55,29,0.008,31,39,0.001,9,139,0.000,42,-102,0.001,19,49,0.002,18,-92,0.016,33,134,0.035,66,31,0.000,-29,29,0.024,45,117,0.001,42,41,0.000,4,116,0.004,22,29,0.000,13,-88,0.060,46,-83,0.000,-14,36,0.010,57,30,0.002,0,115,0.000,52,22,0.059,33,36,0.102,24,108,0.045,-15,48,0.001,-38,148,0.001,34,114,0.324,33,-111,0.051,-24,-64,0.005,47,-122,0.110,46,143,0.004,43,11,0.046,19,109,0.011,-1,9,0.000,-24,-49,0.013,44,-81,0.003,43,28,0.026,23,97,0.010,-37,-58,0.001,47,104,0.000,-46,-68,0.001,-13,45,0.010,61,37,0.000,-4,106,0.009,49,131,0.001,29,-8,0.006,20,83,0.052,-18,15,0.003,53,15,0.029,48,33,0.018,29,37,0.001,44,124,0.027,5,35,0.002,38,82,0.002,48,136,0.019,29,-106,0.014,63,22,0.002,40,43,0.011,39,0,0.074,35,-3,0.010,16,33,0.023,-17,169,0.001,-7,106,0.035,26,-101,0.008,-19,-42,0.010,59,12,0.008,39,17,0.027,36,-75,0.003,17,97,0.065,50,4,0.118,27,91,0.012,41,124,0.284,-33,-53,0.003,53,83,0.003,-17,180,0.003,30,-6,0.006,41,9,0.003,-21,-40,0.055,-21,-55,0.002,-30,24,0.001,41,26,0.018,36,114,0.116,32,130,0.023,-17,-49,0.065,-7,38,0.016,42,92,0.002,41,-89,0.008,52,118,0.001,51,13,0.057,8,47,0.003,-15,14,0.003,-1,105,0.002,51,-2,0.074,32,-104,0.002,24,-13,0.000,8,-66,0.003,6,-10,0.024,33,98,0.001,-5,23,0.007,-33,116,0.017,46,-118,0.002,42,-3,0.009,37,14,0.027,-5,-56,0.001,-29,154,0.014,22,83,0.076,52,34,0.007,13,25,0.010,24,112,0.067,-14,-73,0.010,20,-13,0.001,56,78,0.001,47,42,0.006,44,28,0.018,0,10,0.018,61,-149,0.011,20,34,0.001,34,-91,0.003,-4,40,0.030,-23,-42,0.053,44,-85,0.006,62,31,0.001,38,33,0.018,37,82,0.002,14,-5,0.007,10,-14,0.008,-9,20,0.002,61,73,0.004,38,-108,0.001,34,7,0.008,49,31,0.021,11,-72,0.010,48,-58,0.001,-19,-48,0.017,48,21,0.028,26,77,0.098,44,88,0.013,40,128,0.029,2,-57,0.002,38,110,0.019,35,-112,0.000,16,6,0.001,-22,-63,0.002,12,9,0.107,63,58,0.001,59,55,0.002,40,15,0.145,35,41,0.017,-8,35,0.010,26,-81,0.024,-31,-68,0.001,40,-98,0.004,39,117,0.312,50,40,0.010,27,119,0.041,26,34,0.002,41,88,0.001,3,41,0.003,-21,35,0.005,51,94,0.001,50,-105,0.001,45,44,0.005,7,-75,0.008,6,80,0.063,21,34,0.001,-6,34,0.007,-33,-58,0.006,-4,-39,0.015,-35,143,0.002,28,25,0.001,8,4,0.029,45,-118,0.002,41,-109,0.001,55,52,0.011,51,57,0.002,32,5,0.002,31,46,0.016,-9,-46,0.001,4,14,0.003,-8,147,0.005,-16,-39,0.009,21,101,0.013,18,-71,0.030,-3,-40,0.004,31,95,0.002,46,27,0.035,43,135,0.001,55,86,0.004,-2,39,0.013,46,-90,0.001,57,53,0.003,37,50,0.055,-39,144,0.001,28,85,0.025,-4,-46,0.003,22,111,0.158,56,67,0.004,37,-105,0.001,34,103,0.003,52,62,0.003,13,-3,0.012,9,2,0.024,46,136,0.000,43,-78,0.022,-4,136,0.003,-34,-62,0.004,0,26,0.019,37,-120,0.020,-23,49,0.001,47,62,0.001,43,67,0.001,23,56,0.005,-26,-48,0.011,15,109,0.077,-23,-62,0.000,10,-61,0.043,47,143,0.006,44,-121,0.004,62,75,0.002,58,66,0.002,38,61,0.003,35,137,0.220,37,102,0.018,-20,-48,0.012,15,-2,0.003,11,3,0.008,10,38,0.060,14,29,0.001,5,-75,0.053,1,-70,0.000,38,-80,0.003,53,66,0.002,49,27,0.020,25,33,0.057,2,28,0.012,1,39,0.001,-18,-41,0.009,-3,100,0.000,26,113,0.169,40,100,0.003,36,31,0.013,16,-22,0.001,50,106,0.001,12,37,0.011,-12,27,0.011,59,19,0.034,39,72,0.004,35,69,0.012,-7,146,0.014,29,115,0.076,7,119,0.000,-1,100,0.003,54,45,0.006,50,76,0.001,30,71,0.050,26,54,0.001,7,8,0.049,2,96,0.001,51,138,0.000,-3,-77,0.001,-7,-80,0.002,45,16,0.017,-25,-66,0.000,36,107,0.027,-3,36,0.006,-7,-35,0.031,30,81,0.004,45,-99,0.000,42,129,0.010,60,36,0.001,-29,-61,0.001,32,58,0.000,31,-95,0.004,28,53,0.009,8,40,0.053,-16,30,0.006,55,24,0.013,-3,130,0.001,42,-93,0.005,4,-6,0.006,18,-67,0.015,-1,33,0.002,-2,-60,0.001,-22,33,0.003,66,60,0.000,46,55,0.001,45,84,0.002,42,70,0.024,22,73,0.204,18,48,0.002,13,-61,0.005,9,-64,0.014,-11,-55,0.002,57,65,0.002,37,70,0.033,33,71,0.047,28,113,0.230,9,13,0.029,-11,-38,0.011,-18,-62,0.011,-15,19,0.000,56,39,0.018,34,139,0.029,-4,-62,0.001,43,-114,0.001,24,56,0.025,20,59,0.001,23,92,0.277,34,-83,0.017,15,81,0.049,11,14,0.046,10,-73,0.022,25,95,0.028,-13,40,0.004,37,138,0.003,34,64,0.006,49,106,0.001,10,74,0.001,-19,-57,0.002,53,54,0.003,49,55,0.001,48,-2,0.015,29,68,0.011,44,129,0.017,25,61,0.003,5,74,0.001,39,-118,0.001,35,-121,0.000,-19,24,0.001,49,-56,0.000,48,77,0.000,-12,-56,0.000,-32,-61,0.007,40,72,0.094,39,-101,0.001,36,75,0.016,50,110,0.000,11,106,0.103,5,96,0.030,39,44,0.016,36,-102,0.000,35,49,0.021,30,-92,0.014,29,87,0.001,7,27,0.001,-17,37,0.010,54,41,0.004,53,122,0.001,30,19,0.001,6,21,0.001,17,-90,0.002,12,110,0.036,-27,-51,0.008,41,45,0.068,21,58,0.000,18,80,0.116,51,-105,0.000,-21,-69,0.001,-6,-38,0.009,45,-63,0.003,42,117,0.007,4,-72,0.003,52,91,0.001,54,86,0.003,-41,-64,0.001,32,14,0.060,55,-4,0.066,31,38,0.007,-11,32,0.005,9,126,0.022,42,-105,0.000,18,-95,0.021,33,133,0.038,66,32,0.000,45,120,0.005,42,42,0.015,4,101,0.021,6,8,0.143,13,-89,0.130,46,-82,0.001,-14,33,0.018,57,29,0.010,0,116,0.002,52,23,0.016,47,-92,0.002,24,101,0.039,34,111,0.088,47,-123,0.003,-4,13,0.004,-24,-48,0.012,44,-80,0.005,43,27,0.021,58,7,0.002,-37,-59,0.002,-38,-57,0.014,47,103,0.001,-46,-71,0.001,61,40,0.001,58,-134,0.001,-4,107,0.001,49,134,0.001,48,-109,0.001,29,-9,0.014,20,84,0.074,-18,16,0.013,53,26,0.014,48,34,0.020,29,40,0.002,44,93,0.001,5,30,0.002,29,-107,0.002,63,21,0.002,40,44,0.021,39,-1,0.006,35,4,0.018,16,34,0.007,26,-100,0.003,59,11,0.034,39,16,0.003,17,100,0.026,50,1,0.014,27,90,0.016,41,123,0.121,53,78,0.002,-9,142,0.001,-21,-41,0.022,60,45,0.001,41,25,0.014,36,115,0.299,32,131,0.075,-7,37,0.018,42,89,0.003,41,-86,0.022,52,119,0.001,51,20,0.059,8,48,0.003,-1,104,0.014,51,-3,0.063,32,-95,0.012,8,-65,0.003,18,5,0.000,33,97,0.002,-5,22,0.007,42,-2,0.020,37,13,0.013,-1,-54,0.001,-2,123,0.005,-29,153,0.002,-4,113,0.001,57,9,0.001,37,-2,0.006,52,35,0.005,13,28,0.005,47,-104,0.001,46,105,0.000,-11,18,0.006,-14,-72,0.012,-33,138,0.001,-34,-69,0.004,47,41,0.027,20,35,0.000,19,80,0.056,34,-90,0.006,-4,41,0.006,-23,-43,0.361,44,-84,0.004,62,32,0.000,38,34,0.017,35,100,0.001,37,81,0.005,15,41,0.000,14,-4,0.013,-9,19,0.002,-46,-67,0.002,61,76,0.002,38,-111,0.000,34,8,0.013,49,34,0.023,11,-73,0.008,48,-57,0.001,5,8,0.222,14,15,0.002,-13,-55,0.002,1,14,0.001,16,120,0.009,-22,47,0.012,48,22,0.034,26,78,0.111,44,89,0.006,40,121,0.060,38,115,0.236,35,-113,0.001,16,7,0.001,-22,-62,0.001,12,10,0.070,60,77,0.011,59,54,0.001,40,16,0.025,-20,-42,0.027,-8,36,0.010,26,-80,0.090,7,82,0.044,6,-77,0.001,40,-97,0.002,39,116,0.145,16,-91,0.010,50,37,0.049,27,118,0.035,41,87,0.004,3,32,0.025,-1,102,0.015,-21,34,0.006,51,93,0.001,50,-104,0.007,45,43,0.009,7,-76,0.010,3,-71,0.000,21,33,0.001,-6,31,0.010,-35,-63,0.001,60,73,0.002,17,11,0.001,-39,-66,0.001,8,-3,0.007,45,-119,0.002,55,51,0.007,51,48,0.006,32,6,0.001,31,45,0.015,27,50,0.000,4,15,0.004,-16,-38,0.001,21,104,0.025,18,-70,0.068,31,94,0.001,65,-18,0.001,46,28,0.024,43,134,0.002,55,85,0.006,-2,40,0.001,69,34,0.008,46,-85,0.000,57,56,0.004,19,-87,0.001,37,49,0.016,-39,143,0.002,33,46,0.019,10,79,0.177,28,86,0.010,-10,14,0.032,-2,10,0.002,22,112,0.109,56,68,0.001,37,-94,0.008,34,104,0.012,52,63,0.003,-12,-65,0.002,13,0,0.018,47,-68,0.002,9,1,0.014,46,133,0.012,43,-79,0.189,0,27,0.001,37,-121,0.084,-30,-51,0.092,67,64,0.001,43,66,0.001,23,55,0.006,-36,-59,0.004,-23,-63,0.003,-24,24,0.000,44,-120,0.001,25,86,0.470,58,63,0.001,38,62,0.005,35,128,0.062,37,101,0.002,15,-3,0.007,11,2,0.007,10,19,0.003,5,-72,0.013,1,-71,0.000,38,-83,0.007,53,65,0.002,14,103,0.046,2,25,0.003,1,42,0.004,-18,-40,0.006,48,58,0.001,26,114,0.078,25,-111,0.001,39,-74,0.035,36,32,0.008,50,103,0.000,12,38,0.049,-42,-71,0.004,-12,28,0.040,59,18,0.035,39,71,0.006,35,76,0.022,-7,145,0.010,30,-107,0.003,29,110,0.054,7,118,0.001,54,46,0.018,-10,-75,0.003,50,73,0.005,-12,-45,0.002,30,72,0.156,26,67,0.006,7,7,0.061,51,137,0.000,-27,-68,0.001,45,15,0.013,22,82,0.049,36,108,0.021,-3,35,0.020,30,82,0.001,64,-22,0.001,45,-96,0.001,42,130,0.035,60,37,0.001,17,-25,0.001,54,95,0.001,32,59,0.003,31,-96,0.003,28,54,0.013,8,33,0.007,-16,31,0.003,55,23,0.008,-3,129,0.001,42,-92,0.008,18,-66,0.091,-1,32,0.052,46,56,0.000,45,83,0.003,22,74,0.203,18,45,0.002,9,-65,0.006,-11,-52,0.000,-15,-59,0.001,57,68,0.001,37,69,0.034,52,-4,0.004,33,74,0.148,28,114,0.140,9,16,0.019,43,-124,0.002,-11,-39,0.008,-15,22,0.001,56,40,0.006,34,140,0.005,-4,-61,0.001,43,-115,0.001,24,49,0.002,-23,16,0.000,-5,153,0.003,-28,-67,0.000,23,91,0.844,1,119,0.001,34,-82,0.031,15,80,0.062,11,13,0.009,10,-72,0.013,25,98,0.010,-13,39,0.001,58,35,0.003,37,137,0.003,34,61,0.006,14,37,0.007,49,105,0.003,-9,111,0.016,-19,-62,0.001,53,53,0.005,49,58,0.001,48,-1,0.030,29,67,0.011,44,130,0.042,25,64,0.005,5,73,0.000,39,-119,0.015,-19,23,0.000,49,-57,0.000,-12,-55,0.003,-32,-60,0.025,40,65,0.012,39,-102,0.000,36,76,0.010,50,139,0.000,11,105,0.107,-24,-47,0.070,39,43,0.016,36,-101,0.001,54,-1,0.073,30,-95,0.026,29,82,0.022,-17,20,0.000,54,42,0.006,53,121,0.000,6,22,0.001,17,-91,0.010,-27,-48,0.024,41,48,0.012,21,57,0.001,18,77,0.105,17,54,0.003,-6,-41,0.002,27,-112,0.000,45,-60,0.002,42,118,0.014,4,-71,0.001,55,-118,0.002,52,92,0.001,54,91,0.001,32,15,0.016,31,4,0.002,55,-5,0.001,51,-8,0.011,31,37,0.025,9,125,0.021,42,-104,0.001,18,-94,0.018,33,136,0.011,45,119,0.001,4,102,0.035,19,-72,0.078,-14,34,0.065,57,32,0.002,0,109,0.007,52,24,0.016,33,38,0.018,47,-93,0.002,24,102,0.026,-9,17,0.006,-4,127,0.003,34,112,0.084,-3,151,0.001,33,-109,0.000,-5,140,0.004,-24,-70,0.002,44,34,0.018,43,9,0.002,-25,-63,0.001,-4,14,0.003,44,-79,0.020,43,26,0.022,58,8,0.003,15,52,0.001,11,73,0.001,47,102,0.001,61,39,0.000,-4,108,0.001,49,133,0.000,-8,140,0.001,20,101,0.012,-18,13,0.000,53,25,0.014,-3,105,0.051,-23,167,0.003,48,35,0.036,29,39,0.001,44,94,0.001,5,29,0.002,29,-104,0.001,63,36,0.000,-2,100,0.000,40,37,0.027,39,-2,0.006,35,3,0.022,16,35,0.005,50,143,0.001,-7,108,0.464,-8,25,0.005,26,-103,0.002,59,10,0.007,17,99,0.010,54,-5,0.024,-1,-90,0.000,50,2,0.018,12,-83,0.001,27,89,0.033,-22,-44,0.010,41,110,0.006,54,-122,0.000,53,77,0.001,-35,-68,0.002,-25,-57,0.001,-21,-42,0.021,60,46,0.001,41,28,0.021,-29,-52,0.015,36,116,0.237,32,132,0.022,14,125,0.000,-7,40,0.091,42,90,0.003,41,-87,0.188,51,19,0.025,55,-1,0.019,51,4,0.042,32,-94,0.011,8,-64,0.007,18,6,0.001,33,100,0.001,-5,21,0.006,48,93,0.000,42,11,0.004,37,16,0.033,-1,-55,0.001,-2,124,0.004,-5,-58,0.001,22,81,0.041,56,57,0.003,37,-3,0.030,52,36,0.008,13,27,0.005,-10,-62,0.002,-11,17,0.007,-14,-75,0.004,-34,-68,0.008,-5,104,0.021,47,40,0.056,-11,162,0.001,20,36,0.000,19,79,0.057,34,-93,0.004,-24,45,0.007,-9,161,0.002,62,29,0.002,38,39,0.023,-38,145,0.041,15,40,0.016,14,-7,0.003,47,138,0.000,-33,28,0.028,34,5,0.013,49,33,0.019,11,-74,0.016,-9,-61,0.000,1,13,0.001,46,-108,0.000,16,97,0.159,-22,48,0.029,48,23,0.031,26,91,0.132,44,90,0.004,40,122,0.009,38,116,0.246,35,-114,0.003,16,8,0.000,-22,-65,0.003,12,11,0.043,59,53,0.001,40,9,0.013,-8,29,0.004,7,81,0.166,-31,-66,0.001,6,-76,0.007,40,-96,0.011,39,115,0.046,16,-90,0.006,50,38,0.008,27,117,0.069,26,32,0.133,41,90,0.002,3,31,0.033,-21,33,0.016,50,-107,0.001,45,38,0.008,7,-77,0.002,21,36,0.000,-14,-43,0.005,-3,26,0.004,-6,32,0.008,8,-2,0.010,45,-116,0.000,55,50,0.039,51,47,0.023,32,7,0.001,31,60,0.001,27,49,0.002,4,16,0.005,21,103,0.006,18,-73,0.034,-20,22,0.000,-36,140,0.001,31,93,0.002,46,25,0.027,43,133,0.013,-34,139,0.001,55,84,0.011,-2,37,0.123,69,33,0.002,46,-84,0.004,57,55,0.006,19,-96,0.066,-39,146,0.018,33,45,0.230,10,80,0.148,28,87,0.002,-10,19,0.002,14,100,0.031,22,109,0.107,56,61,0.059,37,-95,0.004,34,101,0.001,52,64,0.003,-36,-67,0.002,13,-1,0.025,47,-69,0.002,9,4,0.008,46,134,0.008,43,-72,0.007,0,28,0.002,67,63,0.000,0,7,0.004,23,54,0.006,-23,-60,0.001,10,-63,0.022,25,85,0.357,58,64,0.001,38,67,0.016,35,127,0.090,37,104,0.021,-4,117,0.006,11,1,0.011,10,20,0.003,5,-73,0.037,38,-82,0.016,53,68,0.002,14,104,0.046,29,58,0.005,-28,-48,0.036,25,35,0.002,2,26,0.003,1,41,0.003,-18,-43,0.003,49,-114,0.001,48,59,0.000,26,111,0.066,63,-21,0.001,25,-108,0.019,40,94,0.002,39,-75,0.102,36,33,0.019,50,104,0.001,12,39,0.027,-21,-50,0.014,59,17,0.011,39,70,0.013,35,75,0.023,-7,148,0.003,30,-106,0.000,29,109,0.060,40,-124,0.003,54,51,0.005,51,143,0.000,50,74,0.006,30,69,0.010,26,68,0.036,7,6,0.108,51,128,0.000,-7,-78,0.022,-27,-69,0.001,36,93,0.000,-3,30,0.139,30,103,0.012,64,-21,0.005,45,-97,0.001,42,127,0.039,60,38,0.001,54,96,0.001,32,60,0.003,31,-97,0.019,28,55,0.008,8,34,0.006,-16,32,0.002,55,22,0.016,9,100,0.017,42,-95,0.003,18,-101,0.005,-1,31,0.069,-17,-44,0.007,66,58,0.002,45,78,0.001,22,47,0.005,18,46,0.001,9,-62,0.007,-11,-53,0.001,-14,27,0.002,-15,-56,0.002,57,67,0.001,-16,-61,0.000,37,72,0.004,33,73,0.108,28,115,0.073,9,15,0.018,-11,-36,0.013,-15,21,0.001,56,33,0.002,37,-75,0.002,34,137,0.075,-4,-60,0.006,-33,-52,0.007,44,71,0.000,43,-108,0.001,24,50,0.002,-9,35,0.016,20,45,0.005,-23,15,0.002,-30,-54,0.004,43,29,0.006,23,90,0.386,1,122,0.003,15,79,0.066,11,20,0.001,10,-75,0.039,25,97,0.008,-4,-49,0.004,58,36,0.002,37,140,0.044,34,62,0.005,49,108,0.001,14,34,0.041,-19,-63,0.009,53,56,0.009,49,57,0.001,48,0,0.016,29,62,0.002,44,131,0.012,25,63,0.005,39,-120,0.003,-19,18,0.001,49,-54,0.001,14,123,0.018,-12,-54,0.001,25,-80,0.086,-32,-67,0.001,40,66,0.018,-36,-64,0.001,36,61,0.027,50,140,0.000,11,80,0.200,39,42,0.014,36,-100,0.001,54,0,0.010,50,-5,0.008,30,-94,0.010,29,81,0.042,14,80,0.072,-17,19,0.000,53,124,0.001,30,17,0.001,-22,-42,0.023,6,27,0.001,17,-88,0.004,-35,-54,0.005,-27,-49,0.029,45,46,0.001,41,47,0.014,21,60,0.001,18,78,0.098,36,137,0.060,51,-107,0.000,-6,-40,0.006,27,-113,0.001,45,-61,0.001,55,-119,0.001,52,77,0.007,54,92,0.001,32,16,0.004,31,3,0.001,55,-6,0.004,51,-9,0.002,31,116,0.089,-2,-48,0.074,18,-97,0.047,33,135,0.009,-24,134,0.001,66,30,0.000,4,103,0.004,19,-73,0.007,-1,-76,0.003,33,-8,0.012,-14,31,0.003,57,31,0.002,0,110,0.024,52,25,0.009,33,37,0.028,47,-94,0.002,24,103,0.084,23,-100,0.005,-15,49,0.006,-48,-68,0.000,34,109,0.219,33,-106,0.000,-5,139,0.002,-24,-69,0.001,44,35,0.022,46,142,0.001,-10,160,0.003,-4,15,0.002,47,4,0.011,44,-78,0.010,43,25,0.023,23,94,0.009,15,51,0.003,47,101,0.001,-13,50,0.005,61,34,0.001,49,136,0.000,48,-115,0.001,20,102,0.007,-18,14,0.000,53,28,0.065,48,36,0.041,29,34,0.000,44,95,0.000,5,32,0.003,29,-105,0.001,63,35,0.001,40,38,0.032,39,-3,0.012,35,2,0.025,16,36,0.010,50,144,0.000,-7,107,0.833,-8,26,0.005,26,-102,0.002,-12,-43,0.002,59,9,0.001,40,-75,0.110,5,120,0.004,17,102,0.021,54,-4,0.003,50,-1,0.053,27,96,0.082,41,109,0.009,51,87,0.003,53,80,0.002,41,-2,0.003,-21,-43,0.022,60,47,0.002,41,27,0.016,-7,39,0.014,42,87,0.005,41,-84,0.011,3,109,0.001,52,121,0.001,51,18,0.036,-3,11,0.001,28,-17,0.003,4,37,0.002,55,-2,0.009,51,3,0.013,32,-93,0.015,8,-71,0.025,33,99,0.001,-5,28,0.004,-6,125,0.000,42,12,0.012,-11,41,0.007,37,15,0.034,6,9,0.067,-2,121,0.008,-5,-59,0.000,-25,-46,0.010,61,130,0.002,57,11,0.006,56,58,0.004,37,0,0.010,52,53,0.006,13,22,0.003,-11,20,0.001,-14,-74,0.009,-34,-71,0.036,56,105,0.001,-5,103,0.007,47,39,0.028,44,-1,0.004,19,78,0.106,34,-92,0.021,-23,-41,0.009,-24,46,0.004,-9,160,0.000,62,30,0.003,-33,-54,0.002,38,40,0.022,37,83,0.001,15,39,0.045,14,-6,0.004,47,137,0.000,-9,120,0.003,61,70,0.001,-33,27,0.007,38,-105,0.002,34,6,0.009,26,-11,0.000,49,36,0.011,48,-79,0.002,-9,-62,0.000,1,16,0.001,16,98,0.064,-22,45,0.002,-9,125,0.006,48,24,0.022,26,92,0.177,44,91,0.003,40,123,0.116,38,113,0.075,35,-115,0.002,16,-15,0.007,-22,-64,0.008,12,12,0.011,63,55,0.001,60,79,0.002,59,60,0.002,40,10,0.008,36,5,0.077,30,-81,0.036,-8,30,0.006,26,-82,0.005,7,80,0.060,-31,-67,0.000,40,-103,0.002,39,114,0.047,16,-89,0.006,50,35,0.021,-22,-41,0.025,41,89,0.001,3,30,0.005,45,37,0.008,21,35,0.000,-17,-68,0.030,-3,25,0.004,-6,29,0.005,-7,-42,0.005,32,97,0.002,8,-1,0.008,45,-117,0.001,-35,25,0.002,55,49,0.017,51,46,0.027,32,8,0.004,31,59,0.002,28,11,0.000,27,56,0.009,4,17,0.004,21,82,0.144,18,-72,0.124,-20,23,0.000,31,108,0.135,46,26,0.014,-4,145,0.000,55,83,0.026,-2,38,0.065,69,36,0.001,-21,-46,0.009,46,-87,0.002,57,58,0.002,19,-97,0.057,37,51,0.012,-39,145,0.008,33,48,0.018,10,77,0.325,28,88,0.001,9,38,0.038,-10,20,0.001,-9,26,0.005,22,110,0.131,56,62,0.013,37,-92,0.005,34,102,0.002,52,65,0.001,13,-6,0.017,47,-70,0.002,9,3,0.010,43,-73,0.010,0,21,0.003,43,72,0.003,-11,149,0.000,23,53,0.005,15,122,0.027,-24,18,0.001,10,-62,0.005,14,47,0.008,25,88,0.293,58,61,0.005,38,68,0.026,37,103,0.026,11,8,0.093,10,17,0.009,38,-77,0.088,53,67,0.002,14,101,0.111,29,57,0.005,14,20,0.002,2,23,0.014,1,44,0.007,-18,-42,0.007,-22,17,0.001,49,-115,0.001,26,112,0.114,63,-22,0.001,25,-109,0.005,40,95,0.002,39,-76,0.103,36,34,0.028,38,141,0.082,12,40,0.036,-8,148,0.002,-12,14,0.001,59,24,0.001,39,69,0.013,35,74,0.030,-7,147,0.007,29,112,0.116,54,52,0.003,50,71,0.001,30,70,0.010,26,65,0.005,7,5,0.137,-20,32,0.014,51,127,0.001,-3,-80,0.068,-19,-46,0.008,-7,-79,0.040,41,70,0.138,36,94,0.000,-3,29,0.063,-35,-64,0.001,30,104,0.189,42,128,0.017,60,39,0.001,21,-88,0.003,54,93,0.001,32,53,0.040,31,-98,0.002,28,56,0.005,8,35,0.015,-26,-51,0.009,-16,41,0.008,31,15,0.001,9,99,0.009,42,-94,0.004,18,-100,0.017,-1,30,0.040,33,110,0.043,5,-7,0.007,46,54,0.001,45,77,0.001,42,49,0.005,22,48,0.005,18,75,0.100,9,-63,0.012,-11,-58,0.000,-14,28,0.005,-15,-57,0.003,57,22,0.002,37,71,0.012,33,76,0.050,28,116,0.185,9,18,0.009,-11,-37,0.036,-15,24,0.003,56,34,0.001,34,138,0.091,-4,-59,0.006,44,72,0.000,24,51,0.002,20,46,0.005,-20,148,0.001,-23,18,0.007,23,89,0.386,1,121,0.002,15,78,0.095,14,-89,0.050,11,19,0.002,10,-74,0.071,25,100,0.034,-13,37,0.001,58,33,0.002,37,139,0.044,34,59,0.005,49,107,0.003,-18,39,0.002,-19,-60,0.001,53,55,0.003,49,60,0.000,48,9,0.079,29,61,0.006,44,132,0.006,25,66,0.003,39,-121,0.014,-19,17,0.002,49,-55,0.001,48,80,0.000,29,-82,0.018,25,-81,0.001,-32,-66,0.001,40,67,0.013,39,-104,0.044,36,62,0.005,50,137,0.004,11,79,0.173,39,41,0.010,36,-115,0.043,54,-3,0.011,50,-4,0.021,29,84,0.001,-17,18,0.001,54,16,0.004,53,123,0.001,30,18,0.001,6,28,0.002,17,-89,0.003,50,-66,0.001,64,25,0.002,45,45,0.002,41,50,0.001,21,59,0.002,18,107,0.009,36,138,0.048,51,-100,0.001,-6,-43,0.006,45,-66,0.005,55,-120,0.001,52,78,0.009,54,89,0.000,31,2,0.001,4,74,0.003,55,-7,0.003,-4,140,0.002,32,-64,0.002,31,115,0.164,9,127,0.005,46,7,0.055,42,-106,0.002,18,-96,0.047,66,27,0.000,-29,33,0.010,4,104,0.011,-15,-170,0.002,-1,-77,0.004,-5,-80,0.019,46,-79,0.003,-14,32,0.008,57,34,0.004,0,111,0.012,52,26,0.010,33,40,0.004,47,-95,0.001,9,46,0.004,14,41,0.008,24,104,0.060,23,-101,0.002,34,110,0.252,33,-107,0.000,-5,138,0.001,44,36,0.001,-4,16,0.026,47,3,0.016,44,-77,0.006,62,23,0.004,23,93,0.028,38,9,0.000,0,-60,0.000,15,50,0.006,47,84,0.002,-46,-72,0.001,-13,49,0.000,61,33,0.001,15,-61,0.004,49,135,0.001,48,-114,0.002,20,103,0.008,-18,19,0.001,53,27,0.010,48,29,0.013,29,33,0.013,5,31,0.002,35,-88,0.009,29,-110,0.003,63,34,0.000,-13,132,0.000,40,39,0.021,39,-4,0.008,35,1,0.045,16,29,0.001,-8,27,0.008,26,-105,0.002,-12,-42,0.003,40,-74,0.251,17,101,0.024,54,-7,0.010,50,0,0.030,12,-81,0.002,27,95,0.061,41,112,0.019,51,86,0.002,53,79,0.004,41,-3,0.003,54,-101,0.000,58,9,0.005,60,48,0.001,41,14,0.033,42,88,0.002,41,-85,0.027,3,116,0.001,52,122,0.001,51,17,0.041,28,-16,0.024,4,38,0.002,55,-3,0.039,51,2,0.020,32,-92,0.008,8,-70,0.014,55,110,0.001,33,102,0.001,-5,27,0.010,42,9,0.001,37,26,0.002,-2,122,0.003,-13,-40,0.006,-25,-47,0.008,-2,99,0.000,61,129,0.001,57,-2,0.014,56,59,0.003,37,-1,0.022,52,54,0.003,13,21,0.003,-10,-56,0.001,-11,19,0.003,23,-97,0.000,-34,-70,0.196,56,106,0.002,-3,142,0.000,47,38,0.054,44,0,0.037,19,77,0.088,34,-95,0.003,-24,47,0.004,10,-85,0.009,62,35,0.001,38,37,0.024,37,78,0.004,15,38,0.005,14,-17,0.099,47,136,0.001,62,-114,0.001,-33,26,0.002,38,-104,0.022,34,3,0.008,49,35,0.021,11,-68,0.001,48,-78,0.001,-9,-63,0.005,-13,-66,0.001,1,15,0.001,-18,47,0.003,16,99,0.016,-22,46,0.001,-3,104,0.013,26,89,0.222,44,92,0.001,40,124,0.046,-12,41,0.004,38,114,0.060,35,-108,0.002,16,-14,0.007,63,54,0.002,59,59,0.002,5,116,0.008,36,6,0.055,-8,31,0.004,-31,-64,0.004,40,-102,0.001,39,113,0.044,16,-88,0.002,50,36,0.010,-22,-51,0.011,41,92,0.001,3,29,0.003,45,40,0.031,-25,-62,0.001,-17,-69,0.010,-3,28,0.005,-6,30,0.005,-39,-68,0.007,-7,-43,0.004,-45,172,0.002,-29,-65,0.007,17,-16,0.001,32,98,0.002,8,0,0.011,45,-122,0.065,55,48,0.012,51,45,0.003,-3,122,0.005,31,58,0.004,28,12,0.000,27,55,0.005,4,18,0.004,5,6,0.058,21,81,0.081,-20,24,0.001,-39,-58,0.002,31,107,0.182,46,15,0.034,55,82,0.001,-8,-78,0.021,69,35,0.001,-25,36,0.007,5,-1,0.052,46,-86,0.000,57,57,0.015,19,-98,0.272,37,46,0.044,-39,148,0.001,33,47,0.014,10,78,0.136,28,89,0.002,9,37,0.023,-10,17,0.006,-18,-66,0.034,22,115,0.449,56,63,0.007,37,-93,0.013,52,66,0.001,13,-7,0.012,47,-71,0.001,9,-10,0.008,43,-74,0.003,-22,-55,0.002,0,22,0.003,43,71,0.003,23,52,0.002,15,121,0.169,10,-65,0.002,44,-117,0.001,25,87,0.348,58,62,0.001,38,65,0.004,37,114,0.053,15,10,0.001,11,7,0.028,10,18,0.006,38,-76,0.047,53,62,0.002,14,102,0.039,29,60,0.005,-2,107,0.003,2,24,0.005,1,43,0.005,49,-112,0.004,48,53,0.000,26,109,0.045,40,96,0.001,39,-77,0.053,36,35,0.013,38,142,0.029,35,-80,0.051,50,102,0.000,12,41,0.018,-12,15,0.007,39,68,0.038,35,73,0.056,29,111,0.056,54,49,0.022,50,72,0.001,30,75,0.139,-33,-63,0.007,26,66,0.002,7,4,0.118,51,126,0.001,-7,-76,0.013,45,76,0.000,41,69,0.011,36,95,0.000,-21,148,0.000,-3,32,0.023,30,101,0.002,42,125,0.042,60,40,0.001,21,-89,0.017,54,94,0.001,32,54,0.006,-17,-43,0.010,31,-99,0.001,28,57,0.004,8,36,0.033,-22,-46,0.024,-3,126,0.001,31,14,0.001,42,-97,0.003,18,-103,0.006,-1,29,0.011,33,109,0.041,-6,147,0.002,45,80,0.002,-11,34,0.006,22,45,0.005,18,76,0.069,6,4,0.299,-11,-59,0.000,-14,25,0.002,-15,-54,0.001,-10,-74,0.001,33,75,0.085,28,117,0.136,9,17,0.014,-11,-42,0.002,-15,23,0.002,56,35,0.005,34,135,0.112,-4,-58,0.002,43,-110,0.001,24,52,0.002,20,47,0.005,-23,17,0.001,13,110,0.045,23,88,0.238,15,77,0.107,14,-88,0.029,11,18,0.004,25,99,0.034,-13,44,0.001,58,34,0.002,-46,171,0.005,34,60,0.006,-37,143,0.001,-19,-61,0.001,53,34,0.007,49,59,0.001,48,10,0.111,29,64,0.001,44,133,0.005,25,65,0.003,39,-122,0.003,35,-117,0.002,-19,20,0.002,68,14,0.000,48,89,0.002,29,-83,0.001,-32,-65,0.002,40,68,0.017,39,-105,0.037,36,63,0.003,16,74,0.044,50,138,0.008,11,78,0.166,-20,17,0.001,-13,-49,0.001,39,40,0.007,36,-114,0.003,54,-2,0.014,-41,-70,0.000,29,83,0.005,7,23,0.000,-17,17,0.002,54,13,0.013,53,118,0.001,30,39,0.001,8,80,0.006,64,26,0.004,45,48,0.002,-31,150,0.000,41,49,0.018,21,54,0.002,36,139,0.068,17,55,0.003,51,-101,0.000,-6,-42,0.027,45,-67,0.001,52,79,0.002,54,90,0.001,31,1,0.001,55,-8,0.000,31,114,0.133,46,8,0.034,19,76,0.108,18,-99,0.066,33,137,0.001,66,28,0.000,-29,24,0.002,45,116,0.000,-15,-171,0.000,19,-75,0.007,-1,-78,0.080,33,-6,0.068,-5,-81,0.004,-24,151,0.003,-14,29,0.012,-4,109,0.000,57,33,0.001,19,-154,0.000,0,112,0.009,52,27,0.010,33,39,0.005,47,-96,0.001,9,45,0.007,24,97,0.015,23,-102,0.006,-15,51,0.005,33,-104,0.002,-5,137,0.003,-9,30,0.006,-4,17,0.003,47,2,0.023,44,-76,0.008,62,24,0.002,15,49,0.005,47,83,0.001,62,7,0.004,14,35,0.007,-30,154,0.001,29,-13,0.001,-9,-68,0.001,20,104,0.006,-18,20,0.001,53,22,0.012,48,30,0.012,29,36,0.002,5,42,0.003,35,-89,0.030,48,109,0.000,29,-111,0.008,63,33,0.000,-37,144,0.001,-13,131,0.003,40,40,0.026,39,-5,0.005,-20,-46,0.006,16,30,0.001,-8,28,0.006,26,-104,0.001,-12,-41,0.010,40,-73,0.362,39,140,0.003,17,104,0.048,54,-6,0.024,50,-3,0.025,27,94,0.014,14,81,0.020,41,111,0.006,51,85,0.001,53,90,0.002,41,0,0.019,-35,-59,0.016,60,49,0.001,41,13,0.111,-1,133,0.000,-6,-70,0.000,42,85,0.002,41,-98,0.001,3,115,0.001,52,123,0.002,51,40,0.045,28,-15,0.017,4,39,0.003,-1,116,0.003,51,1,0.154,32,-99,0.006,8,-69,0.009,33,101,0.001,-5,26,0.002,-6,139,0.001,42,10,0.004,37,25,0.002,-1,-58,0.000,-2,111,0.007,-5,-53,0.000,-8,-56,0.001,-25,-48,0.008,61,132,0.000,22,88,0.312,56,60,0.007,37,10,0.012,52,55,0.002,13,24,0.009,46,93,0.000,-11,14,0.002,-14,-76,0.013,23,-98,0.002,47,37,0.008,44,1,0.016,-11,163,0.000,19,84,0.046,34,-94,0.002,-36,-63,0.003,-24,48,0.009,10,-84,0.035,-9,158,0.001,62,36,0.000,20,-90,0.004,38,38,0.021,37,77,0.007,15,37,0.010,14,-16,0.064,10,-5,0.013,47,135,0.003,-33,25,0.002,38,-107,0.002,34,4,0.010,49,38,0.012,11,-69,0.012,48,-77,0.001,-9,-64,0.001,1,18,0.001,-18,48,0.004,16,100,0.032,53,-6,0.052,26,90,0.196,40,117,0.257,2,-60,0.003,38,119,0.014,35,-109,0.001,16,-13,0.006,-22,-66,0.001,49,-124,0.005,63,53,0.001,59,58,0.002,36,7,0.075,35,36,0.019,30,-83,0.007,-8,32,0.007,-31,-65,0.001,6,-73,0.018,40,-101,0.000,39,112,0.024,50,33,0.012,27,122,0.004,26,43,0.004,41,91,0.001,3,36,0.004,-17,-151,0.001,-21,-66,0.001,45,39,0.023,7,-80,0.007,6,81,0.198,-17,-70,0.002,-3,27,0.006,-7,-40,0.004,60,13,0.001,32,99,0.002,8,-7,0.006,45,-123,0.006,55,47,0.008,51,52,0.010,-3,121,0.019,31,57,0.005,27,54,0.006,4,19,0.028,-8,107,0.030,-16,-42,0.005,21,84,0.094,18,-74,0.014,-1,136,0.001,-39,-59,0.003,31,106,0.150,46,16,0.065,-34,138,0.001,55,81,0.001,69,30,0.000,-25,35,0.012,46,-97,0.001,-11,40,0.026,57,60,0.012,19,-99,0.543,37,45,0.029,-39,147,0.003,33,50,0.018,28,90,0.003,9,40,0.043,-10,18,0.004,-47,170,0.000,-15,30,0.003,22,116,0.042,56,64,0.006,37,-98,0.001,34,100,0.001,52,67,0.002,13,-4,0.015,47,-72,0.001,9,-11,0.008,46,137,0.000,43,-75,0.013,24,41,0.004,0,23,0.004,43,70,0.003,-11,151,0.002,23,51,0.002,15,120,0.003,-24,20,0.000,10,-64,0.029,44,-116,0.001,25,90,0.372,38,66,0.024,37,113,0.148,15,9,0.001,11,6,0.023,10,15,0.044,-9,115,0.068,38,-79,0.004,53,61,0.003,49,66,0.000,29,59,0.005,25,56,0.027,5,49,0.000,2,21,0.011,1,46,0.001,6,125,0.060,49,-113,0.001,48,54,0.000,26,110,0.044,39,-78,0.010,36,36,0.017,-18,-149,0.006,35,-81,0.031,16,-25,0.001,50,99,0.000,12,42,0.003,-12,16,0.012,39,67,0.063,35,64,0.005,30,-103,0.000,39,84,0.001,54,50,0.006,50,69,0.001,30,76,0.166,26,63,0.006,7,3,0.034,51,125,0.001,-3,-54,0.006,-26,-50,0.015,-7,-77,0.006,-33,-61,0.007,45,75,0.000,41,72,0.035,-36,-66,0.001,8,126,0.040,36,96,0.000,-21,147,0.000,-3,31,0.080,30,102,0.003,-37,-64,0.004,45,-100,0.000,42,126,0.055,60,41,0.001,-35,138,0.000,54,99,0.001,32,55,0.003,31,-84,0.007,28,58,0.005,8,29,0.015,31,13,0.002,42,-96,0.007,18,-102,0.012,33,112,0.064,-6,148,0.001,65,14,0.000,46,60,0.000,45,79,0.005,42,47,0.009,22,46,0.005,18,73,0.075,-35,117,0.000,14,-10,0.005,9,-61,0.002,-11,-56,0.002,-14,26,0.001,-15,-55,0.001,57,24,0.001,-38,175,0.005,28,118,0.103,9,20,0.006,-11,-43,0.002,-9,21,0.001,-4,123,0.011,56,36,0.016,34,136,0.551,-4,-57,0.002,44,74,0.000,-17,32,0.014,43,-111,0.003,24,45,0.005,20,48,0.005,67,32,0.001,13,109,0.030,23,87,0.253,14,-91,0.080,11,17,0.007,25,118,0.071,58,31,0.002,34,57,0.001,49,77,0.000,10,51,0.001,-33,-62,0.004,-18,37,0.017,-19,-66,0.007,53,33,0.007,48,11,0.055,29,63,0.001,44,134,0.003,25,68,0.076,39,-123,0.003,1,74,0.000,35,-118,0.007,-19,19,0.001,68,15,0.001,48,90,0.001,29,-80,0.002,63,12,0.002,-32,-64,0.058,40,61,0.001,39,-106,0.003,36,64,0.004,16,75,0.210,50,135,0.000,11,77,0.166,39,39,0.010,-20,64,0.001,-41,-71,0.002,29,78,0.315,7,22,0.001,-17,16,0.002,54,14,0.009,30,40,0.002,-25,-53,0.017,-26,47,0.004,64,27,0.001,45,47,0.000,-29,-56,0.002,21,53,0.002,18,105,0.006,36,140,0.188,51,-102,0.001,27,-108,0.001,45,-64,0.003,52,80,0.002,31,0,0.001,51,-4,0.011,31,113,0.092,46,5,0.025,42,-124,0.001,19,75,0.110,18,-98,0.053,66,25,0.001,5,-8,0.012,42,19,0.010,57,115,0.001,-1,-79,0.025,33,-7,0.147,-24,152,0.001,-14,30,0.002,-18,-59,0.000,57,36,0.004,19,-155,0.004,0,121,0.010,52,28,0.010,33,42,0.004,47,-97,0.003,9,48,0.001,24,98,0.019,23,-103,0.008,33,-105,0.001,44,38,0.014,-4,18,0.010,13,81,0.205,47,1,0.028,44,-75,0.007,-13,-42,0.004,38,15,0.004,15,48,0.002,47,82,0.001,62,8,0.002,61,35,0.008,14,36,0.009,48,-112,0.000,-9,-69,0.000,-13,-72,0.003,20,105,0.014,-10,120,0.014,53,21,0.018,48,31,0.017,29,35,0.001,5,41,0.003,35,-90,0.015,29,-108,0.001,40,33,0.034,39,-6,0.009,16,31,0.001,-17,168,0.001,-8,21,0.003,26,-107,0.003,-12,-40,0.010,-32,19,0.002,40,-72,0.010,17,103,0.065,-55,-65,0.000,50,-2,0.014,27,93,0.005,41,114,0.030,51,92,0.001,53,89,0.004,-17,179,0.001,26,-9,0.000,41,-1,0.011,-30,18,0.002,60,50,0.000,41,16,0.027,-6,-73,0.001,27,-80,0.018,42,86,0.004,41,-99,0.001,3,114,0.005,52,124,0.001,51,39,0.007,32,-17,0.001,28,-14,0.001,4,40,0.002,22,-84,0.003,-1,115,0.004,32,-98,0.003,8,-68,0.002,6,-5,0.037,33,104,0.003,-5,25,0.004,-6,140,0.001,46,-124,0.000,19,-104,0.012,37,28,0.024,-2,112,0.002,-5,-54,0.000,-25,-49,0.008,61,131,0.000,-11,22,0.001,22,85,0.074,56,53,0.006,52,56,0.007,13,23,0.014,47,-61,0.000,-10,-58,0.000,23,-99,0.012,-38,-69,0.000,47,20,0.089,44,2,0.011,5,119,0.008,0,11,0.001,19,83,0.073,34,-97,0.005,-36,-57,0.007,62,33,0.000,20,-89,0.028,38,43,0.014,37,80,0.011,15,20,0.002,10,-4,0.010,47,134,0.009,38,-106,0.001,34,1,0.008,-38,146,0.064,49,37,0.049,11,-70,0.008,-8,108,0.153,-13,-60,0.001,1,17,0.000,-18,45,0.001,53,-7,0.008,26,87,0.245,40,118,0.086,-18,-64,0.003,35,-110,0.001,16,-12,0.004,-22,-53,0.001,49,-125,0.002,59,57,0.008,36,8,0.058,35,35,0.001,30,-82,0.005,-31,-62,0.002,6,-72,0.012,40,-100,0.001,39,111,0.017,50,34,0.011,27,121,0.141,26,44,0.007,41,78,0.001,3,35,0.007,2,118,0.004,51,120,0.000,50,-111,0.001,45,34,0.015,7,-81,0.002,6,82,0.027,3,-76,0.118,-17,-71,0.030,-3,22,0.001,-7,-41,0.004,58,6,0.007,60,14,0.001,-4,-38,0.098,17,-14,0.001,32,100,0.002,28,31,0.108,8,-6,0.007,-30,-59,0.005,-35,22,0.001,55,46,0.005,51,51,0.002,-33,-55,0.002,31,56,0.002,28,-114,0.001,27,53,0.004,4,20,0.006,-16,-41,0.006,21,83,0.089,18,-77,0.034,-1,135,0.001,-3,-41,0.004,-5,12,0.012,31,105,0.187,46,13,0.013,45,102,0.001,55,80,0.001,-2,41,0.003,-25,34,0.023,46,-96,0.007,57,59,0.001,37,48,0.014,33,49,0.028,28,91,0.002,9,39,0.111,-10,23,0.003,-47,169,0.003,-15,29,0.012,22,113,0.137,56,25,0.025,37,-99,0.001,34,97,0.001,52,68,0.001,13,-5,0.018,9,-8,0.009,46,138,0.000,24,42,0.004,-14,-171,0.004,-4,137,0.003,0,24,0.005,43,69,0.008,24,-103,0.009,23,50,0.002,1,98,0.014,-22,-40,0.001,10,-67,0.093,25,89,0.297,38,71,0.004,37,116,0.187,15,8,0.001,11,5,0.029,10,16,0.024,14,30,0.001,38,-78,0.015,53,64,0.013,14,108,0.011,29,54,0.026,2,22,0.010,1,45,0.024,-18,-39,0.008,48,55,0.000,39,-79,0.010,35,-82,0.019,16,-24,0.002,50,100,0.000,12,43,0.002,-12,17,0.012,39,66,0.018,35,63,0.004,30,-102,0.000,39,83,0.002,-1,99,0.001,54,55,0.007,50,70,0.000,30,73,0.197,26,64,0.006,7,2,0.026,-3,-55,0.001,41,71,0.013,36,97,0.000,30,107,0.254,60,42,0.001,-29,-62,0.002,54,100,0.001,32,56,0.001,31,-85,0.009,28,59,0.005,8,30,0.007,31,28,0.001,-1,43,0.020,33,111,0.045,-6,145,0.015,65,13,0.001,42,48,0.018,4,127,0.002,22,51,0.002,18,74,0.212,9,-74,0.017,-11,-57,0.001,-14,23,0.002,-15,-52,0.001,57,23,0.002,-39,178,0.001,28,119,0.089,9,19,0.007,43,-121,0.001,-11,-40,0.008,-15,25,0.003,56,29,0.003,34,133,0.086,-4,-56,0.001,-5,115,0.000,39,-103,0.000,44,75,0.001,24,46,0.005,20,49,0.002,-36,-72,0.004,-23,19,0.001,67,31,0.001,-28,29,0.004,24,-99,0.004,23,86,0.166,1,126,0.008,14,-90,0.141,11,24,0.006,25,117,0.054,61,26,0.003,58,32,0.010,-10,125,0.030,34,58,0.002,49,80,0.000,-8,157,0.000,-18,38,0.017,-19,-67,0.003,53,36,0.004,48,12,0.096,44,135,0.001,25,67,0.008,35,-119,0.015,68,16,0.001,49,-82,0.000,48,91,0.001,29,-81,0.017,63,11,0.007,-32,-55,0.003,40,62,0.001,39,-107,0.002,36,65,0.008,16,76,0.100,50,136,0.000,5,102,0.010,39,38,0.009,-41,-72,0.005,29,77,0.174,-17,15,0.002,54,19,0.044,53,120,0.000,30,37,0.001,6,31,0.007,64,28,0.001,-19,179,0.005,21,56,0.001,18,106,0.089,51,-103,0.000,-21,-70,0.004,27,-109,0.012,45,-65,0.003,42,95,0.002,-16,-71,0.002,52,81,0.002,-41,-65,0.000,31,-1,0.001,51,-5,0.001,31,112,0.053,46,6,0.017,19,74,0.203,66,26,0.002,-29,22,0.003,42,20,0.017,-11,29,0.005,19,-69,0.011,6,5,0.042,33,-4,0.018,57,35,0.005,0,122,0.005,52,13,0.021,33,41,0.004,13,46,0.021,47,-98,0.000,9,47,0.002,-10,-49,0.001,24,99,0.037,23,-104,0.008,33,-102,0.002,-28,-70,0.002,44,39,0.010,-4,19,0.009,47,0,0.027,44,-74,0.003,62,22,0.002,23,122,0.013,38,16,0.028,34,-117,0.086,15,47,0.003,11,52,0.000,47,81,0.001,-9,124,0.008,61,30,0.002,49,140,0.000,48,-103,0.001,-9,-70,0.001,-13,-73,0.003,20,106,0.178,-18,18,0.001,53,24,0.024,48,32,0.010,5,44,0.002,35,-91,0.005,-19,50,0.008,29,-109,0.001,63,31,0.000,40,34,0.022,39,-7,0.006,16,32,0.016,-8,22,0.006,26,-106,0.001,-12,-39,0.013,-32,20,0.000,40,-79,0.053,17,106,0.007,50,27,0.026,27,100,0.010,41,113,0.015,-21,48,0.024,51,91,0.001,53,92,0.016,-33,-68,0.028,-9,141,0.003,41,2,0.043,3,-57,0.001,-17,-60,0.000,-13,-46,0.002,60,51,0.000,41,15,0.043,-26,-69,0.001,27,-81,0.011,41,-96,0.016,3,113,0.000,52,109,0.001,51,38,0.016,32,-16,0.007,28,-13,0.003,27,32,0.058,4,41,0.003,-53,-72,0.000,-1,114,0.002,32,-97,0.064,8,-75,0.027,-4,141,0.001,19,38,0.011,33,103,0.002,-5,32,0.011,19,-105,0.001,37,27,0.002,-5,-55,0.001,-25,-50,0.008,-4,114,0.001,22,86,0.077,56,54,0.031,37,12,0.000,52,57,0.003,13,18,0.002,-10,-53,0.000,43,-65,0.001,-11,16,0.006,56,101,0.001,-38,-68,0.001,47,19,0.045,44,3,0.011,19,82,0.031,34,-96,0.003,-42,147,0.003,62,34,0.000,20,-88,0.006,38,44,0.013,37,79,0.002,15,19,0.001,10,-7,0.005,47,133,0.013,61,66,0.000,-33,23,0.001,38,-101,0.000,34,2,0.010,15,-92,0.027,49,40,0.006,11,-71,0.002,14,16,0.001,-13,-61,0.001,2,47,0.000,1,20,0.003,-18,46,0.002,53,-4,0.003,26,88,0.198,40,119,0.078,38,117,0.183,35,-111,0.003,-22,-52,0.002,12,-16,0.017,49,-122,0.043,63,67,0.001,36,9,0.034,35,34,0.012,-31,-63,0.001,6,-75,0.130,40,-107,0.001,39,110,0.011,14,43,0.007,53,159,0.009,50,31,0.120,26,41,0.002,41,77,0.002,3,34,0.008,2,115,0.001,-1,101,0.098,51,119,0.000,50,-110,0.002,12,93,0.003,45,33,0.001,3,-77,0.005,-17,-72,0.003,-3,21,0.001,-7,-38,0.018,-27,19,0.001,60,15,0.002,17,-15,0.004,32,93,0.001,28,32,0.002,8,-5,0.008,45,-121,0.002,-35,21,0.002,55,45,0.005,51,50,0.002,31,55,0.005,28,-113,0.002,27,60,0.002,-16,-40,0.008,21,78,0.067,18,-76,0.028,-1,134,0.002,-39,-57,0.008,31,104,0.055,46,14,0.020,43,112,0.001,55,79,0.004,-2,42,0.003,69,32,0.000,-25,33,0.006,46,-99,0.000,57,46,0.003,37,47,0.046,33,52,0.012,28,92,0.002,9,42,0.054,-10,24,0.003,-15,32,0.007,22,114,0.444,56,26,0.005,37,-96,0.002,34,98,0.000,-12,-64,0.001,13,-10,0.003,9,-9,0.010,46,127,0.068,43,-69,0.002,24,43,0.005,0,33,0.129,67,66,0.001,43,76,0.003,24,-102,0.001,23,49,0.003,10,-66,0.151,25,92,0.079,38,72,0.002,35,130,0.158,37,115,0.186,15,7,0.001,11,12,0.021,10,13,0.024,53,63,0.002,14,105,0.037,29,53,0.045,25,58,0.000,2,19,0.009,-41,177,0.001,68,37,0.001,39,-80,0.010,36,22,0.001,35,-83,0.014,12,44,0.002,5,5,0.001,-12,18,0.007,59,28,0.003,5,81,0.011,39,65,0.025,36,-91,0.003,35,62,0.005,39,82,0.006,54,56,0.014,50,67,0.003,30,74,0.199,26,61,0.006,7,1,0.025,-3,-52,0.001,-27,-62,0.001,41,74,0.010,22,87,0.152,36,98,0.000,30,108,0.173,42,140,0.001,60,43,0.001,-35,140,0.001,32,65,0.006,31,-86,0.004,28,60,0.003,8,31,0.005,-16,37,0.011,31,27,0.001,42,-98,0.001,22,-159,0.001,21,114,0.002,18,-104,0.000,-1,42,0.024,33,114,0.220,-6,146,0.005,42,45,0.019,22,52,0.002,9,-75,0.035,-14,24,0.002,-15,-53,0.001,57,26,0.005,-39,177,0.004,-26,154,0.001,10,109,0.010,28,120,0.060,43,-122,0.001,-11,-41,0.002,-15,28,0.007,56,30,0.002,34,134,0.099,-4,-55,0.001,44,76,0.001,24,47,0.005,-11,122,0.002,20,50,0.002,67,30,0.000,-28,30,0.006,-28,-66,0.001,43,40,0.008,24,-98,0.002,23,85,0.074,1,125,0.037,14,-85,0.006,11,23,0.004,25,120,0.111,-13,41,0.006,-32,117,0.004,61,25,0.005,58,29,0.001,34,55,0.002,-8,158,0.000,10,49,0.002,-37,148,0.001,-19,-64,0.003,53,35,0.025,48,5,0.014,29,25,0.001,44,136,0.002,68,17,0.001,48,92,0.000,63,10,0.001,25,-77,0.007,-32,-54,0.006,40,63,0.007,39,-108,0.004,36,66,0.012,-35,-60,0.007,-24,-46,0.695,5,101,0.079,39,37,0.012,36,-111,0.001,-21,-62,0.000,-41,-73,0.010,29,80,0.081,7,20,0.002,-17,14,0.002,54,20,0.012,53,119,0.000,-6,28,0.006,30,38,0.001,60,-151,0.001,6,32,0.007,-26,45,0.001,64,21,0.003,-31,151,0.001,41,38,0.004,21,55,0.002,18,103,0.021,51,-112,0.001,27,-110,0.005,64,12,0.001,45,-70,0.001,42,96,0.002,-16,-70,0.014,52,82,0.002,32,21,0.004,31,-2,0.001,31,111,0.035,46,11,0.008,19,73,0.473,18,-4,0.001,33,78,0.001,66,23,0.001,-29,21,0.001,42,17,0.000,19,-70,0.062,18,43,0.009,33,-5,0.032,-5,-76,0.001,22,95,0.026,0,123,0.016,37,-25,0.004,52,14,0.142,33,44,0.014,13,45,0.079,-44,172,0.001,47,-99,0.000,9,50,0.002,-10,-48,0.003,24,100,0.045,-9,16,0.008,23,-105,0.006,-4,128,0.004,8,10,0.028,-28,-69,0.001,44,40,0.016,-4,20,0.003,47,-1,0.038,44,-73,0.010,62,27,0.001,23,121,0.165,38,13,0.002,34,-116,0.004,15,46,0.005,14,7,0.021,11,51,0.002,47,80,0.001,-36,146,0.001,62,6,0.001,59,152,0.000,61,29,0.003,49,139,0.000,11,-60,0.002,-8,130,0.000,-9,-71,0.001,-13,-74,0.013,20,107,0.293,-37,176,0.001,53,23,0.014,-3,108,0.004,48,41,0.015,5,43,0.002,35,-84,0.018,-19,49,0.011,29,-114,0.002,63,30,0.001,40,35,0.015,39,-8,0.027,-8,23,0.009,-45,-67,0.001,14,99,0.010,-12,-38,0.013,40,-78,0.016,36,-83,0.014,17,105,0.037,50,28,0.014,27,99,0.004,-22,-47,0.037,41,116,0.016,-17,50,0.008,-21,47,0.009,51,90,0.001,53,91,0.002,-35,-69,0.001,-28,-51,0.011,41,1,0.013,3,-58,0.000,-25,-58,0.001,-17,-61,0.000,41,18,0.002,-29,-53,0.010,-6,-75,0.001,-7,30,0.005,-26,-68,0.001,27,-82,0.065,41,-97,0.003,3,104,0.013,52,110,0.000,51,37,0.020,32,-7,0.032,27,31,0.086,4,42,0.002,-1,113,0.003,32,-96,0.088,46,39,0.009,8,-74,0.010,19,37,0.001,33,106,0.039,-5,31,0.025,-34,148,0.001,37,22,0.009,-2,110,0.003,-25,-51,0.008,-18,-54,0.001,22,91,0.316,-26,-49,0.095,56,55,0.010,37,11,0.005,52,58,0.001,13,17,0.001,43,-66,0.000,-11,15,0.006,56,102,0.010,-38,-71,0.003,-5,106,0.051,47,18,0.025,44,4,0.005,23,44,0.005,19,81,0.018,34,-99,0.002,-23,-50,0.013,44,-109,0.000,62,55,0.001,20,-87,0.006,38,41,0.023,15,18,0.001,14,-13,0.004,10,-6,0.009,61,65,0.001,38,-100,0.001,34,-1,0.029,15,-93,0.004,49,39,0.009,-9,-67,0.000,-13,-62,0.001,-2,103,0.017,1,19,0.002,-10,121,0.004,16,95,0.035,-9,149,0.001,26,85,0.379,40,120,0.073,38,118,0.083,53,-116,0.000,12,-15,0.021,49,-123,0.037,36,10,0.040,35,33,0.001,-4,-47,0.002,-31,-60,0.002,6,-74,0.008,40,-106,0.001,39,109,0.002,50,32,0.012,26,42,0.002,41,80,0.006,3,33,0.011,51,118,0.001,50,-113,0.006,45,36,0.007,21,42,0.015,-3,24,0.004,-7,-39,0.013,64,-51,0.000,60,16,0.005,17,-12,0.002,32,94,0.001,-17,-39,0.010,28,33,0.001,8,-4,0.005,-30,-61,0.001,-35,24,0.002,55,76,0.002,51,49,0.004,31,54,0.011,28,-112,0.000,27,59,0.003,-15,20,0.001,4,6,0.013,21,77,0.069,-20,28,0.006,-2,-80,0.026,31,103,0.005,46,19,0.026,45,104,0.000,55,78,0.001,-2,31,0.071,69,31,0.000,-25,32,0.017,46,-98,0.001,57,45,0.002,37,58,0.012,-10,-78,0.007,33,51,0.018,28,93,0.002,9,41,0.018,-10,21,0.001,-15,31,0.006,56,27,0.004,37,-97,0.019,13,-11,0.002,9,-6,0.007,46,128,0.045,43,-70,0.020,24,44,0.005,0,34,0.095,67,65,0.002,43,75,0.005,24,-101,0.008,23,48,0.005,1,100,0.029,-4,12,0.001,-23,-70,0.000,25,91,0.086,38,69,0.058,35,129,0.202,37,110,0.028,15,6,0.002,11,11,0.050,10,14,0.053,5,-67,0.002,53,74,0.001,14,106,0.021,29,56,0.005,-9,128,0.002,25,57,0.006,5,46,0.004,2,20,0.013,-18,-49,0.005,-41,176,0.007,68,38,0.000,-8,-71,0.001,26,121,0.004,39,-81,0.010,36,23,0.002,35,-76,0.003,12,13,0.009,-7,121,0.002,-21,-51,0.007,-12,19,0.007,59,27,0.002,39,64,0.014,36,-90,0.006,35,61,0.022,30,-112,0.002,39,81,0.006,54,53,0.014,53,126,0.001,50,68,0.001,30,63,0.001,26,62,0.003,7,0,0.010,51,130,0.000,-3,-53,0.001,-37,-62,0.002,-7,-56,0.001,-27,-63,0.001,-13,-37,0.001,41,73,0.017,36,99,0.001,30,105,0.365,60,44,0.001,49,98,0.000,-35,139,0.030,55,-97,0.001,32,66,0.008,31,-87,0.004,28,61,0.004,8,32,0.005,-16,38,0.015,55,16,0.000,32,-79,0.006,42,-85,0.037,-20,25,0.001,21,113,0.019,-1,41,0.002,-3,-50,0.001,33,113,0.143,-6,143,0.005,46,47,0.001,42,46,0.008,22,49,0.003,-20,45,0.002,9,-72,0.004,-14,21,0.001,57,25,0.012,13,76,0.082,28,121,0.169,43,-123,0.004,24,89,0.375,-15,27,0.002,56,31,0.006,34,131,0.006,-4,-54,0.003,44,45,0.008,24,48,0.004,-9,34,0.012,20,51,0.002,13,106,0.005,-28,31,0.021,24,-97,0.001,23,84,0.044,1,128,0.004,14,-84,0.002,11,22,0.002,25,119,0.192,-13,32,0.002,61,28,0.003,58,30,0.002,34,56,0.001,49,82,0.001,10,50,0.004,-42,175,0.011,-37,147,0.004,-19,-65,0.010,53,30,0.011,48,6,0.010,5,18,0.003,-19,16,0.001,68,18,0.001,48,85,0.001,14,124,0.002,63,9,0.001,-32,-53,0.002,40,64,0.005,-36,-58,0.013,36,67,0.025,5,104,0.013,39,36,0.017,36,-110,0.001,-21,-63,0.001,29,79,0.191,14,77,0.089,7,19,0.002,-17,13,0.001,54,17,0.010,30,43,0.001,60,-150,0.000,6,29,0.004,-16,-43,0.006,-21,-29,0.001,-35,-55,0.013,-26,46,0.005,64,22,0.000,-31,154,0.001,41,37,0.015,21,-158,0.008,18,104,0.020,36,127,0.042,51,-113,0.007,45,-71,0.008,42,93,0.002,41,-74,0.037,-16,-69,0.009,52,83,0.003,-40,-63,0.000,32,22,0.005,31,-3,0.003,51,-7,0.000,31,110,0.058,9,118,0.001,46,12,0.025,-2,-51,0.001,33,77,0.003,-6,115,0.001,66,24,0.001,-29,28,0.008,42,18,0.003,19,-71,0.039,18,44,0.007,33,-2,0.004,-5,-77,0.001,22,96,0.072,0,124,0.017,52,15,0.019,33,43,0.004,13,48,0.001,9,49,0.002,-10,-51,0.000,24,93,0.163,23,-106,0.014,-28,-68,0.001,44,41,0.018,-52,-72,0.000,-4,21,0.001,13,78,0.161,47,-2,0.020,44,-72,0.006,62,28,0.005,23,120,0.003,38,14,0.033,0,-55,0.001,34,-119,0.022,15,45,0.075,14,8,0.019,11,50,0.002,10,3,0.008,-28,154,0.042,62,11,0.001,59,151,0.004,61,32,0.001,-28,-63,0.002,14,23,0.007,48,-101,0.002,-9,-72,0.001,25,-12,0.000,-13,-75,0.014,20,108,0.006,-37,175,0.035,48,42,0.004,29,32,0.238,40,141,0.038,35,-85,0.016,48,121,0.002,29,-115,0.001,63,29,0.001,40,36,0.020,39,-9,0.010,35,-4,0.008,16,42,0.001,11,110,0.010,-8,24,0.015,-12,-37,0.021,40,-77,0.015,36,-82,0.020,17,108,0.002,50,25,0.021,27,98,0.003,41,115,0.024,-17,49,0.004,-21,46,0.002,51,89,0.000,53,86,0.002,30,7,0.001,26,-10,0.000,41,4,0.003,-17,-62,0.001,-6,19,0.018,60,53,0.000,41,17,0.038,-6,-74,0.001,31,-80,0.000,-7,29,0.005,-44,147,0.000,41,-94,0.003,3,103,0.017,52,111,0.000,51,44,0.007,32,-6,0.039,-36,118,0.001,28,-11,0.001,4,43,0.003,-1,112,0.009,32,-87,0.004,46,40,0.010,8,-73,0.017,19,44,0.008,33,105,0.020,-5,30,0.021,-6,135,0.001,57,84,0.001,37,21,0.001,6,10,0.035,-2,115,0.004,10,99,0.007,22,92,0.297,56,56,0.004,52,59,0.004,13,20,0.002,47,-64,0.001,-10,-55,0.001,-11,26,0.008,56,103,0.001,-38,-70,0.000,-5,105,0.061,47,17,0.027,44,5,0.028,23,43,0.006,19,104,0.006,34,-98,0.006,-23,-51,0.016,-24,44,0.007,44,-108,0.001,58,51,0.007,20,-86,0.006,38,42,0.025,15,17,0.001,14,-12,0.005,10,-9,0.006,-9,119,0.024,38,-103,0.001,34,0,0.019,49,42,0.003,48,-81,0.001,-13,-63,0.001,2,45,0.009,1,22,0.004,16,96,0.104,6,121,0.003,26,86,0.391,40,113,0.038,-18,-61,0.001,53,-117,0.000,50,91,0.001,12,-14,0.014,49,-120,0.000,48,141,0.001,59,62,0.001,36,11,0.082,35,24,0.002,-31,-61,0.003,6,-69,0.001,40,-105,0.016,39,108,0.002,50,29,0.023,26,39,0.003,41,79,0.003,3,24,0.003,2,113,0.004,51,117,0.002,50,-112,0.000,45,35,0.015,21,41,0.015,-3,23,0.002,-6,39,0.016,-7,-36,0.012,60,17,0.005,17,-13,0.001,32,95,0.001,31,-108,0.001,28,34,0.001,8,-11,0.023,-30,-60,0.001,-34,151,0.043,-35,23,0.004,55,75,0.003,51,72,0.011,-3,117,0.003,31,53,0.021,28,-111,0.009,27,58,0.006,4,7,0.073,21,80,0.123,18,-78,0.005,-1,20,0.003,31,102,0.004,46,20,0.019,45,103,0.001,-38,143,0.001,55,77,0.002,-2,32,0.029,-6,107,0.007,-25,31,0.015,46,-93,0.001,57,48,0.002,37,57,0.010,33,54,0.001,28,94,0.001,9,44,0.008,-10,22,0.001,-9,25,0.003,-4,119,0.005,56,28,0.005,37,-86,0.007,5,-10,0.001,13,-8,0.009,9,-7,0.005,46,125,0.047,43,-71,0.013,-14,-172,0.001,0,35,0.172,-23,44,0.005,43,74,0.004,24,-100,0.005,23,47,0.005,1,99,0.011,15,100,0.024,14,48,0.004,25,78,0.047,38,70,0.020,35,120,0.108,37,109,0.013,15,5,0.001,11,10,0.060,48,-124,0.000,10,27,0.006,38,-75,0.013,53,73,0.001,49,70,0.000,29,55,0.005,14,17,0.001,44,142,0.001,25,60,0.002,5,45,0.003,2,17,0.001,-18,-48,0.005,-22,27,0.001,-41,175,0.000,-8,-70,0.001,-12,-75,0.021,40,85,0.001,39,-82,0.026,35,-77,0.020,50,95,0.000,12,14,0.012,-12,20,0.002,-37,150,0.001,59,26,0.002,39,63,0.003,36,-89,0.006,35,68,0.007,30,-115,0.003,39,80,0.006,54,54,0.013,53,125,0.001,30,64,0.001,26,75,0.083,7,-1,0.028,-20,33,0.021,51,129,0.004,-3,-58,0.001,-19,-47,0.006,-27,-60,0.006,41,76,0.002,36,100,0.002,-35,-65,0.002,30,106,0.228,6,119,0.001,54,103,0.001,32,67,0.005,31,-88,0.003,28,62,0.003,8,25,0.001,-16,39,0.010,55,15,0.003,31,25,0.001,42,-84,0.026,-1,40,0.005,33,116,0.296,-6,144,0.009,46,48,0.009,42,59,0.006,22,50,0.002,52,-107,0.000,9,-73,0.012,46,-65,0.001,-11,-76,0.012,-14,22,0.001,57,28,0.004,56,9,0.009,-39,179,0.001,13,75,0.051,10,123,0.079,28,122,0.139,43,-116,0.016,24,90,0.449,-33,153,0.001,56,32,0.002,34,132,0.034,-4,-53,0.001,-5,120,0.034,44,46,0.003,24,73,0.083,20,52,0.002,13,105,0.013,-28,32,0.018,44,-67,0.001,23,83,0.051,38,-9,0.082,14,-87,0.053,11,21,0.001,25,122,0.198,-13,31,0.002,61,27,0.002,58,43,0.002,34,53,0.005,15,-23,0.006,49,81,0.001,10,47,0.001,-37,146,0.003,-19,-70,0.007,53,29,0.008,48,7,0.029,5,17,0.003,1,-50,0.000,-19,15,0.001,48,86,0.001,63,8,0.001,-32,-52,0.016,40,57,0.001,39,-110,0.001,36,68,0.025,50,131,0.001,-31,-50,0.004,5,103,0.025,39,35,0.015,36,-109,0.001,-21,-56,0.001,29,106,0.240,7,18,0.003,-20,-41,0.008,-17,28,0.011,54,18,0.012,30,44,0.007,6,30,0.006,-21,-52,0.001,-31,153,0.003,41,40,0.002,21,-159,0.001,18,101,0.022,36,128,0.123,17,30,0.001,51,-114,0.017,-17,-46,0.002,27,-104,0.001,45,-68,0.001,42,94,0.002,41,-75,0.023,-16,-68,0.006,21,-78,0.019,52,84,0.002,-40,-62,0.001,32,23,0.002,31,12,0.001,31,109,0.100,46,9,0.015,-4,-43,0.007,6,-9,0.011,-29,27,0.007,42,15,0.022,33,-3,0.009,-5,-78,0.003,22,93,0.077,0,117,0.002,52,16,0.017,13,47,0.005,-10,-50,0.001,24,94,0.062,33,-101,0.009,44,42,0.020,58,93,0.004,1,174,0.001,-4,22,0.002,13,77,0.096,47,-3,0.013,44,-71,0.003,62,25,0.002,34,-118,0.192,14,5,0.014,11,49,0.001,10,4,0.007,62,12,0.000,61,31,0.001,14,24,0.005,48,-100,0.001,-9,-73,0.003,25,-13,0.000,2,74,0.001,20,93,0.034,53,1,0.004,49,-2,0.005,48,43,0.003,29,31,0.084,44,102,0.000,40,142,0.024,35,-86,0.017,53,-110,0.001,48,122,0.005,29,-112,0.001,63,44,0.000,40,29,0.028,35,-5,0.066,16,43,0.007,11,109,0.045,-8,17,0.007,7,101,0.037,40,-76,0.045,36,-81,0.010,17,107,0.028,50,26,0.023,27,97,0.005,5,-3,0.070,-17,48,0.005,-21,45,0.004,51,80,0.001,53,85,0.006,50,-119,0.004,30,8,0.001,41,3,0.143,-17,-63,0.004,36,141,0.081,-6,20,0.015,-33,-60,0.014,30,119,0.077,58,10,0.001,60,54,0.000,41,20,0.036,17,26,0.001,31,-81,0.009,-7,32,0.004,-44,148,0.001,41,-95,0.014,3,102,0.164,51,43,0.008,32,-5,0.021,28,-10,0.003,4,44,0.004,-1,111,0.008,32,-86,0.014,46,37,0.006,8,-72,0.026,19,43,0.008,33,108,0.053,-5,29,0.009,57,83,0.000,19,-100,0.035,37,24,0.078,-2,116,0.005,10,100,0.010,-10,31,0.004,22,89,0.919,56,49,0.005,52,60,0.002,33,-118,0.128,13,19,0.002,47,-65,0.003,-10,-54,0.001,-11,25,0.008,56,104,0.001,-38,-73,0.008,-3,141,0.010,47,16,0.028,44,6,0.008,23,42,0.009,19,103,0.010,34,-101,0.002,-23,-48,0.022,44,-107,0.001,58,52,0.002,38,47,0.022,15,16,0.001,14,-15,0.024,10,-8,0.008,14,42,0.001,14,31,0.003,38,-102,0.001,34,-3,0.025,15,-95,0.000,49,41,0.004,48,-80,0.001,2,46,0.046,1,21,0.004,-18,49,0.020,16,105,0.044,-22,56,0.020,-3,103,0.016,26,99,0.006,40,114,0.072,5,11,0.082,-18,-60,0.001,16,-16,0.007,53,-122,0.002,50,92,0.001,12,-13,0.007,49,-121,0.002,59,61,0.007,40,1,0.008,36,12,0.002,-31,-58,0.003,6,-68,0.001,40,-104,0.006,39,107,0.034,54,63,0.002,50,30,0.012,26,40,0.003,-22,-50,0.020,41,82,0.007,3,23,0.007,2,114,0.001,51,124,0.001,45,30,0.007,21,44,0.010,-3,18,0.005,-6,40,0.024,-7,-37,0.013,30,131,0.001,60,18,0.005,17,-10,0.001,32,96,0.001,31,-109,0.002,28,35,0.001,-29,-48,0.006,8,-10,0.028,-30,-63,0.001,55,74,0.023,51,71,0.002,-3,120,0.013,31,68,0.008,28,-110,0.005,27,57,0.013,4,8,0.110,21,79,0.101,-1,19,0.011,-5,-48,0.002,31,101,0.003,46,17,0.038,22,27,0.000,-2,29,0.035,-8,-77,0.005,-6,108,0.001,-25,30,0.026,5,10,0.030,46,-92,0.007,-34,116,0.003,57,47,0.003,37,60,0.009,33,53,0.003,28,95,0.004,9,43,0.037,-10,27,0.005,-15,33,0.006,22,117,0.010,37,-87,0.015,-4,-80,0.010,13,-9,0.004,9,-4,0.004,46,126,0.049,43,-96,0.008,24,38,0.002,-22,-54,0.002,0,36,0.063,67,55,0.001,47,52,0.006,43,73,0.002,24,-107,0.029,23,46,0.005,1,102,0.017,15,99,0.006,-23,-68,0.003,11,32,0.004,25,77,0.061,38,75,0.001,35,119,0.213,37,112,0.073,15,-12,0.008,11,9,0.156,10,28,0.004,38,-74,0.001,53,76,0.001,49,69,0.000,44,143,0.004,25,59,0.001,5,48,0.001,2,18,0.000,-18,-51,0.004,-22,28,0.004,48,99,0.000,26,119,0.062,-12,-74,0.005,40,86,0.000,39,-83,0.023,35,-78,0.044,12,15,0.011,-12,37,0.004,59,25,0.018,39,62,0.003,36,-88,0.008,35,67,0.009,30,-114,0.001,-8,-39,0.022,39,79,0.006,54,59,0.006,53,128,0.001,50,66,0.000,30,61,0.004,-39,176,0.002,26,76,0.142,7,-2,0.032,57,-4,0.004,17,-76,0.011,-3,-59,0.006,-26,24,0.001,-27,-61,0.002,45,66,0.001,60,-1,0.001,41,75,0.002,30,95,0.001,4,-58,0.001,-16,-63,0.001,32,68,0.008,31,-89,0.010,28,63,0.002,8,26,0.000,-16,40,0.027,-39,-60,0.002,55,14,0.019,31,24,0.001,28,-82,0.048,42,-87,0.058,21,115,0.001,-1,39,0.008,33,115,0.294,-6,141,0.001,46,45,0.004,45,134,0.006,42,60,0.026,-11,33,0.003,22,55,0.004,6,1,0.043,52,-106,0.008,9,-70,0.027,46,-64,0.006,-11,-77,0.008,-14,19,0.001,57,27,0.003,56,10,0.017,52,5,0.127,10,124,0.138,43,-117,0.000,24,91,0.452,-33,152,0.013,34,129,0.014,-4,-52,0.001,44,47,0.002,43,-100,0.000,24,74,0.080,67,35,0.001,13,108,0.010,-28,33,0.010,44,-66,0.000,23,82,0.052,20,-156,0.004,38,-8,0.013,14,-86,0.015,11,28,0.005,-13,30,0.004,61,22,0.005,58,44,0.001,34,54,0.002,49,84,0.002,48,-95,0.001,10,48,0.001,-37,145,0.004,53,32,0.005,48,8,0.059,5,20,0.003,1,-51,0.000,48,87,0.002,-12,-62,0.003,-32,-59,0.009,40,58,0.003,39,-111,0.002,36,53,0.050,12,75,0.029,-31,-51,0.058,39,34,0.035,36,-108,0.003,-8,-35,0.066,29,105,0.214,7,17,0.007,-17,27,0.005,54,23,0.010,30,41,0.002,6,35,0.002,12,120,0.001,18,102,0.008,36,129,0.046,17,29,0.001,51,-115,0.001,32,113,0.194,27,-105,0.004,45,-69,0.001,41,-72,0.068,-16,-75,0.000,21,-79,0.010,32,24,0.000,31,11,0.001,-25,-60,0.001,46,10,0.014,33,79,0.001,66,22,0.001,-29,26,0.001,-48,-66,0.000,19,-81,0.001,18,42,0.009,33,0,0.002,-5,-79,0.011,22,94,0.007,0,118,0.006,52,17,0.038,13,42,0.006,9,51,0.001,-10,-45,0.001,24,95,0.017,-35,-61,0.005,33,-98,0.005,44,43,0.018,43,-8,0.024,1,173,0.001,-4,23,0.003,13,80,0.127,47,12,0.032,44,-70,0.007,62,26,0.006,23,118,0.030,14,6,0.029,10,1,0.022,62,9,0.001,14,21,0.002,11,-63,0.005,29,9,0.000,-9,-74,0.005,-13,-69,0.001,20,94,0.023,48,44,0.003,44,103,0.000,5,40,0.006,35,-87,0.007,-19,46,0.004,53,-111,0.001,48,123,0.007,29,-113,0.000,14,109,0.028,63,43,0.000,40,30,0.080,-20,-45,0.007,35,-6,0.008,16,44,0.045,-8,18,0.007,7,100,0.038,40,-83,0.022,36,-80,0.021,17,78,0.105,50,23,0.030,27,104,0.073,-17,47,0.008,51,79,0.001,53,88,0.028,50,-118,0.001,30,5,0.001,7,-58,0.001,6,127,0.006,-17,-64,0.003,-6,17,0.010,-35,-56,0.058,30,120,0.102,45,10,0.209,17,25,0.001,32,133,0.003,31,-82,0.006,-7,31,0.006,-26,-65,0.006,41,-92,0.005,3,101,0.003,52,113,0.000,51,42,0.006,32,-4,0.008,28,-9,0.002,27,36,0.001,4,29,0.002,-1,110,0.033,-36,147,0.001,32,-85,0.010,31,80,0.001,46,38,0.001,8,-79,0.011,19,42,0.014,33,107,0.037,-5,36,0.021,-6,133,0.003,65,73,0.001,19,-101,0.047,37,23,0.013,52,-66,0.000,-2,113,0.003,-10,32,0.006,-2,11,0.001,22,90,0.260,56,50,0.006,37,8,0.001,52,45,0.005,13,14,0.005,47,-66,0.001,46,87,0.001,-11,28,0.004,56,97,0.001,-38,-72,0.014,47,15,0.013,44,7,0.005,24,-14,0.000,23,41,0.004,19,102,0.008,34,-100,0.001,-36,-62,0.002,-23,-49,0.028,44,-106,0.001,62,54,0.001,58,49,0.003,38,48,0.018,34,43,0.005,15,15,0.001,14,-14,0.006,10,-11,0.011,61,62,0.000,38,-97,0.007,34,-2,0.028,15,-96,0.005,49,44,0.004,48,-71,0.007,2,43,0.007,-28,-62,0.001,1,24,0.003,-18,50,0.015,16,106,0.017,53,-8,0.006,26,100,0.023,40,115,0.060,38,121,0.001,16,-7,0.002,-22,-56,0.002,12,-12,0.005,49,-118,0.001,48,143,0.001,5,121,0.011,36,-3,0.007,-31,-59,0.003,6,-71,0.004,40,-111,0.044,39,106,0.001,54,64,0.002,50,59,0.002,26,37,0.002,41,81,0.006,3,22,0.006,-21,16,0.000,51,123,0.002,50,-114,0.007,45,29,0.033,21,43,0.015,57,10,0.005,-3,17,0.006,-6,37,0.010,-7,-50,0.002,30,132,0.001,60,19,0.001,17,-11,0.001,32,105,0.019,31,-110,0.008,28,36,0.002,8,-9,0.014,-30,-62,0.001,-15,34,0.031,55,73,0.003,51,70,0.001,-3,119,0.002,31,67,0.006,28,-109,0.004,27,64,0.003,4,9,0.033,21,90,0.012,-1,18,0.002,-2,-77,0.002,-5,-49,0.003,-8,141,0.001,46,18,0.018,43,116,0.001,22,28,0.000,-17,-45,0.002,-2,30,0.127,-6,105,0.041,-25,29,0.010,46,-95,0.003,-11,39,0.013,57,50,0.003,37,59,0.009,33,56,0.001,28,96,0.004,9,30,0.006,-10,28,0.003,-33,-71,0.026,-15,36,0.035,56,22,0.008,37,-84,0.016,-4,-79,0.025,13,-14,0.015,9,-5,0.017,46,131,0.052,43,-97,0.002,24,39,0.004,0,29,0.018,-23,30,0.002,47,51,0.001,43,48,0.014,24,-106,0.003,23,45,0.005,1,101,0.016,15,98,0.011,-23,-69,0.001,14,-61,0.008,11,31,0.007,-9,-36,0.031,25,80,0.095,62,66,0.003,58,69,0.004,38,76,0.002,35,118,0.216,37,111,0.048,15,-13,0.005,11,-16,0.001,10,25,0.005,-9,114,0.113,5,-54,0.001,53,75,0.002,49,72,0.001,29,49,0.033,44,144,0.002,25,46,0.005,5,47,0.002,2,15,0.002,-18,-50,0.005,-19,37,0.008,48,100,0.000,26,120,0.158,-12,-73,0.001,40,87,0.000,39,-84,0.089,36,26,0.001,35,-79,0.021,12,16,0.007,-7,110,0.119,-12,38,0.004,59,32,0.003,39,61,0.002,36,-87,0.012,35,66,0.006,30,-109,0.001,-8,-38,0.014,7,44,0.005,39,78,0.012,54,60,0.007,30,62,0.010,18,111,0.020,26,73,0.042,7,-3,0.014,17,-77,0.011,-3,-56,0.003,12,125,0.025,-7,-55,0.000,-27,-66,0.001,45,65,0.000,41,62,0.008,-21,149,0.001,30,96,0.001,-37,-65,0.000,45,-110,0.001,-16,-62,0.001,-35,136,0.001,-20,-67,0.000,54,101,0.002,32,61,0.003,31,-90,0.006,28,64,0.002,8,27,0.002,-16,17,0.002,55,13,0.065,31,23,0.002,28,-81,0.071,42,-86,0.009,21,110,0.090,-1,38,0.087,33,118,0.185,-6,142,0.001,65,20,0.000,46,46,0.000,43,80,0.002,45,133,0.010,22,56,0.002,52,-105,0.001,9,-71,0.004,46,-67,0.003,-14,20,0.001,57,14,0.006,56,11,0.017,52,6,0.088,-38,176,0.009,24,92,0.290,-33,151,0.001,34,130,0.001,44,48,0.000,24,75,0.082,67,34,0.002,13,107,0.003,44,-65,0.002,43,44,0.025,58,-6,0.001,20,-75,0.040,1,129,0.001,11,27,0.005,14,49,0.007,-13,29,0.034,49,109,0.000,58,41,0.002,-37,-63,0.002,34,51,0.024,49,83,0.009,11,-84,0.008,-8,122,0.000,10,45,0.002,-18,31,0.021,-19,-68,0.001,53,31,0.015,5,19,0.002,48,88,0.003,-12,-61,0.007,-32,-58,0.006,40,59,0.004,39,-112,0.000,36,54,0.024,16,49,0.001,50,129,0.005,12,76,0.133,-20,26,0.001,39,33,0.049,-8,-34,0.066,29,108,0.096,7,16,0.006,3,-51,0.000,-17,26,0.003,-20,46,0.003,54,24,0.021,30,42,0.001,6,36,0.010,-25,-54,0.007,12,121,0.002,41,42,0.018,-29,-57,0.001,21,-157,0.023,18,99,0.031,36,130,0.020,17,32,0.001,32,114,0.097,-6,-35,0.043,-7,22,0.014,27,-106,0.001,45,-74,0.014,42,108,0.001,4,-77,0.002,41,-73,0.081,-16,-74,0.001,21,-76,0.010,52,102,0.000,31,10,0.001,-25,-61,0.001,9,119,0.007,46,-1,0.020,-1,74,0.001,5,-9,0.008,-29,25,0.009,42,13,0.047,4,96,0.004,18,39,0.001,33,-1,0.002,-5,-72,0.001,-30,152,0.001,-1,-80,0.015,-18,-58,0.000,22,99,0.009,52,18,0.027,13,41,0.012,-10,-44,0.001,24,96,0.011,23,-109,0.003,33,-99,0.001,44,44,0.025,43,-9,0.001,-4,24,0.014,13,79,0.101,47,11,0.026,44,-69,0.009,62,15,0.000,23,117,0.369,38,17,0.023,0,-52,0.000,34,-120,0.007,14,11,0.002,10,2,0.012,47,92,0.000,62,10,0.001,14,22,0.002,29,12,0.001,-9,-75,0.002,-13,-70,0.001,20,95,0.041,49,0,0.016,48,37,0.011,5,39,0.026,35,-96,0.006,-19,45,0.002,-22,-175,0.002,48,124,0.010,63,42,0.000,40,31,0.041,16,37,0.012,-8,19,0.004,26,-97,0.010,7,99,0.008,-32,25,0.001,40,-82,0.027,36,-79,0.027,17,77,0.089,-33,-64,0.005,50,24,0.020,27,103,0.043,-17,46,0.002,51,78,0.001,53,87,0.011,50,-121,0.000,30,6,0.001,7,-59,0.001,21,-14,0.000,-17,-65,0.004,-6,18,0.012,30,117,0.110,64,53,0.001,45,9,0.083,60,56,0.000,41,-122,0.001,17,28,0.001,-17,-51,0.002,31,-83,0.008,-7,34,0.005,-26,-64,0.002,41,-93,0.019,52,114,0.012,51,41,0.007,28,-8,0.001,4,30,0.002,-20,36,0.006,32,-84,0.012,31,79,0.005,46,43,0.003,8,-78,0.001,-34,117,0.001,19,41,0.002,6,-4,0.019,-2,23,0.004,-5,35,0.020,-6,134,0.001,57,101,0.000,19,-102,0.031,37,34,0.016,-2,114,0.007,-10,29,0.006,-11,21,0.001,0,101,0.018,-34,23,0.007,56,51,0.005,37,7,0.001,52,46,0.004,33,-116,0.019,13,13,0.007,47,-67,0.001,46,88,0.001,-11,27,0.006,56,98,0.001,47,14,0.022,44,8,0.030,0,12,0.001,23,40,0.005,19,101,0.024,34,-103,0.002,-23,-46,0.040,44,-105,0.001,58,50,0.020,20,-99,0.033,38,45,0.021,34,44,0.011,10,-10,0.005,-9,40,0.002,38,-96,0.002,34,-5,0.078,15,-97,0.000,49,43,0.002,48,-70,0.001,-9,132,0.000,2,44,0.007,1,23,0.003,16,107,0.009,53,-9,0.005,26,97,0.001,40,116,0.061,38,122,0.034,16,-6,0.001,12,-11,0.005,49,-119,0.007,-31,23,0.000,23,102,0.025,36,-2,0.012,7,135,0.001,-31,-56,0.003,6,-70,0.002,3,12,0.036,40,-110,0.001,39,105,0.001,54,61,0.006,50,60,0.002,30,55,0.003,26,38,0.003,41,84,0.007,3,21,0.011,2,112,0.010,51,122,0.002,12,98,0.000,-13,-41,0.005,-3,20,0.003,-6,38,0.010,-7,-51,0.002,-27,26,0.008,42,145,0.002,60,20,0.001,32,106,0.060,31,-111,0.004,28,37,0.002,8,-8,0.013,-30,-65,0.002,-35,20,0.004,55,72,0.002,51,69,0.002,-3,114,0.006,31,66,0.023,28,-108,0.001,27,63,0.004,42,-77,0.010,4,10,0.036,21,89,0.055,-1,17,0.001,-3,-46,0.002,-5,-50,0.001,43,115,0.000,-2,35,0.039,-6,106,0.113,-25,28,0.003,46,-94,0.003,-4,-51,0.001,57,49,0.003,37,54,0.001,33,55,0.001,-9,148,0.002,28,97,0.001,9,29,0.009,-10,25,0.003,-15,35,0.048,56,23,0.007,37,-85,0.010,34,91,0.000,-4,-78,0.004,13,-15,0.022,46,132,0.034,43,-98,0.001,24,40,0.004,-4,138,0.003,0,30,0.049,-23,29,0.003,-30,-53,0.014,47,50,0.001,43,47,0.019,24,-105,0.005,23,76,0.101,1,104,0.195,-4,-48,0.002,14,-60,0.006,11,30,0.007,-9,-37,0.009,25,79,0.102,-13,24,0.001,38,73,0.001,35,117,0.260,37,122,0.098,15,-14,0.004,10,26,0.003,5,-55,0.011,1,-58,0.000,53,70,0.007,29,52,0.019,44,145,0.001,25,45,0.005,2,16,0.001,-18,-45,0.001,-8,-75,0.001,26,117,0.051,-12,-72,0.001,25,-98,0.015,40,88,0.000,39,-85,0.016,36,27,0.000,50,94,0.000,12,17,0.007,-7,109,0.219,-12,39,0.006,62,131,0.000,59,31,0.082,39,60,0.002,36,-86,0.036,35,65,0.014,30,-108,0.001,-8,-37,0.015,7,43,0.005,39,77,0.027,-20,47,0.021,54,57,0.036,30,67,0.032,26,74,0.065,7,-4,0.021,-3,-57,0.001,12,126,0.010,45,68,0.000,41,61,0.043,21,74,0.105,30,93,0.001,45,-111,0.002,42,133,0.005,-29,-63,0.002,-20,-66,0.004,54,102,0.001,-40,-71,0.002,32,62,0.002,31,-91,0.004,28,65,0.002,8,28,0.007,-16,18,0.001,55,44,0.012,32,-83,0.015,31,22,0.008,28,-80,0.016,9,78,0.146,42,-89,0.019,21,109,0.026,-1,37,0.078,33,117,0.210,-6,155,0.002,43,79,0.003,45,136,0.000,42,58,0.001,4,117,0.003,22,53,0.002,52,-104,0.001,9,-68,0.018,46,-66,0.001,-14,17,0.011,57,13,0.021,0,100,0.022,52,7,0.059,10,122,0.005,-33,-57,0.002,24,85,0.181,-33,150,0.001,34,127,0.022,-5,117,0.001,-24,-55,0.003,43,-102,0.001,24,76,0.069,-10,-71,0.000,20,71,0.026,-36,-71,0.018,67,33,0.003,13,102,0.049,44,-64,0.003,43,43,0.012,23,80,0.084,20,-74,0.009,0,-79,0.014,11,26,0.009,-13,36,0.002,61,24,0.011,58,42,0.003,-10,126,0.006,34,52,0.021,49,86,0.001,11,-85,0.009,48,-93,0.001,10,46,0.001,-18,32,0.039,-19,-69,0.004,53,42,0.006,29,24,0.001,5,118,0.010,5,14,0.003,14,39,0.034,48,129,0.006,-12,-60,0.002,-32,-57,0.003,40,60,0.003,36,55,0.026,16,50,0.003,50,130,0.002,12,45,0.012,-45,-68,0.000,39,32,0.020,29,107,0.298,7,15,0.003,-17,25,0.001,54,21,0.025,53,94,0.001,30,31,0.197,6,33,0.004,12,122,0.019,64,34,0.000,41,41,0.002,18,100,0.040,17,31,0.001,51,-109,0.000,32,115,0.139,-7,21,0.015,27,-107,0.003,45,-75,0.039,4,-76,0.020,41,-70,0.018,3,127,0.001,-16,-73,0.001,21,-77,0.017,52,103,0.001,-40,-67,0.001,31,9,0.002,32,-111,0.010,31,122,0.593,46,0,0.018,18,-11,0.001,-36,151,0.002,42,14,0.027,4,97,0.017,6,6,0.062,33,2,0.001,-5,-73,0.008,-15,-50,0.001,22,100,0.018,0,120,0.001,52,19,0.028,13,44,0.063,47,-88,0.001,-10,-47,0.001,24,121,0.108,23,-110,0.003,33,-96,0.028,-13,38,0.001,44,13,0.026,-4,25,0.005,47,10,0.055,44,-68,0.005,62,16,0.001,23,116,0.130,38,18,0.000,-38,-59,0.004,14,12,0.001,-36,145,0.001,10,-1,0.014,47,91,0.001,-9,123,0.012,-40,177,0.005,14,27,0.001,48,-105,0.000,29,11,0.000,-9,-76,0.004,-13,-71,0.001,20,96,0.064,53,-2,0.203,49,-1,0.011,48,38,0.063,38,99,0.001,35,-97,0.037,-19,48,0.071,53,-109,0.001,48,117,0.000,63,41,0.000,40,32,0.028,16,38,0.004,-4,-42,0.009,-8,20,0.002,-12,-49,0.001,-4,31,0.043,-32,26,0.001,40,-81,0.027,36,-78,0.012,17,80,0.111,50,21,0.045,27,102,0.019,26,15,0.001,3,48,0.000,-17,45,0.001,51,77,0.001,50,-120,0.003,30,11,0.001,-33,-69,0.006,7,-60,0.000,41,-8,0.097,21,-15,0.001,-17,-66,0.003,-6,15,0.021,30,118,0.100,-37,-72,0.021,64,54,0.000,45,12,0.085,60,57,0.000,41,-123,0.001,17,27,0.001,-7,33,0.005,3,107,0.001,52,115,0.001,51,32,0.021,27,34,0.003,4,31,0.006,-53,-70,0.000,-1,124,0.002,32,-91,0.004,31,78,0.057,46,44,0.002,8,-77,0.002,-4,142,0.002,-34,118,0.000,19,32,0.001,-2,24,0.004,-5,34,0.019,69,18,0.000,57,104,0.001,19,-103,0.023,37,33,0.018,-2,135,0.001,-10,30,0.005,-14,-39,0.021,-4,115,0.052,-34,24,0.002,56,52,0.005,52,47,0.004,33,-117,0.158,13,16,0.004,-27,152,0.001,47,-52,0.006,46,85,0.004,24,125,0.002,-14,-52,0.001,-34,-57,0.003,56,99,0.001,47,13,0.024,44,9,0.050,24,-12,0.000,23,39,0.003,34,-102,0.002,-23,-47,0.108,-42,148,0.003,44,-104,0.000,58,47,0.001,20,-98,0.042,38,46,0.022,35,80,0.001,34,41,0.008,14,-24,0.001,10,35,0.007,-9,39,0.004,61,64,0.001,38,-99,0.001,34,-4,0.047,49,14,0.023,48,-69,0.001,2,41,0.003,1,26,0.002,16,108,0.051,-22,35,0.003,48,74,0.000,26,98,0.001,40,109,0.004,38,127,0.065,16,-5,0.000,50,87,0.000,12,-10,0.003,49,-116,0.001,-31,26,0.002,40,4,0.000,-20,-40,0.015,-31,-57,0.003,6,-65,0.001,3,11,0.010,40,-109,0.001,39,104,0.003,54,62,0.012,50,57,0.002,30,56,0.007,26,51,0.021,41,83,0.005,3,28,0.004,-20,29,0.005,51,121,0.001,12,99,0.010,45,31,0.000,21,37,0.000,18,121,0.015,-3,19,0.007,-7,-48,0.003,-27,25,0.004,17,-9,0.000,54,111,0.000,32,107,0.068,31,-112,0.001,28,38,0.002,-30,-64,0.001,-35,19,0.040,55,71,0.001,52,143,0.000,51,76,0.005,-3,113,0.009,31,65,0.012,28,-107,0.004,27,62,0.003,42,-76,0.018,4,11,0.011,22,-81,0.015,21,92,0.025,-1,16,0.002,-39,-67,0.005,-2,-79,0.034,-5,-51,0.000,43,114,0.001,42,67,0.001,22,26,0.000,-2,36,0.008,-25,27,0.003,46,-105,0.000,57,52,0.002,33,58,0.001,28,98,0.001,9,32,0.004,-10,26,0.004,-15,38,0.006,56,24,0.012,37,-90,0.005,34,92,0.000,-12,-63,0.001,13,-12,0.002,46,129,0.016,43,-99,0.001,24,33,0.030,-14,-176,0.000,0,31,0.056,-23,32,0.002,47,49,0.001,43,46,0.032,24,-104,0.008,23,75,0.105,1,103,0.015,15,96,0.009,11,29,0.003,-43,-70,0.000,-9,-38,0.005,25,82,0.255,-13,23,0.001,38,74,0.000,37,121,0.127,15,-15,0.007,10,23,0.001,-32,142,0.001,5,-52,0.001,53,69,0.002,49,74,0.015,29,51,0.009,44,146,0.000,25,48,0.003,2,13,0.003,-18,-44,0.006,-29,-49,0.021,-8,-74,0.003,26,118,0.048,-12,-71,0.000,25,-99,0.006,40,81,0.006,39,-86,0.049,36,28,0.003,50,123,0.002,12,18,0.004,-7,112,0.079,-12,40,0.009,59,30,0.037,39,59,0.003,36,-85,0.007,35,56,0.002,-7,157,0.000,30,-111,0.001,-8,-36,0.010,7,42,0.002,-17,36,0.039,54,58,0.003,50,61,0.000,30,68,0.019,26,71,0.008,7,-5,0.025,-26,27,0.007,-27,-64,0.004,45,67,0.001,41,64,0.000,21,73,0.164,57,-3,0.003,30,94,0.001,45,-108,0.004,42,134,0.000,-16,-60,0.000,21,-102,0.037,-20,-65,0.010,-40,-70,0.000,32,63,0.006,28,66,0.002,8,21,0.000,-16,19,0.000,55,43,0.013,32,-82,0.006,31,21,0.018,9,77,0.260,42,-88,0.053,19,55,0.000,21,112,0.080,33,120,0.235,-6,156,0.001,65,22,0.002,43,78,0.015,45,135,0.001,4,118,0.012,22,54,0.003,52,-103,0.000,9,-69,0.032,-14,18,0.008,57,16,0.003,52,8,0.045,10,119,0.002,24,86,0.192,-33,149,0.002,34,128,0.027,-5,124,0.002,-24,-54,0.004,47,-124,0.000,43,-103,0.001,24,69,0.047,-11,121,0.001,20,72,0.008,13,101,0.354,44,-63,0.012,43,42,0.007,23,79,0.070,38,-5,0.005,0,-78,0.017,11,25,0.008,-9,-34,0.056,25,110,0.042,-13,35,0.007,61,23,0.003,58,39,0.001,34,49,0.042,49,85,0.003,11,-86,0.028,20,85,0.052,-18,29,0.009,53,41,0.005,5,13,0.004,48,130,0.013,63,20,0.001,-32,-56,0.003,40,53,0.002,36,56,0.004,16,51,0.001,50,127,0.005,12,46,0.008,39,31,0.017,54,11,0.022,16,-62,0.000,29,102,0.004,7,14,0.005,41,126,0.027,-17,24,0.002,54,22,0.009,53,93,0.001,30,32,0.714,6,34,0.002,12,123,0.008,64,35,0.001,41,44,0.015,18,97,0.036,17,34,0.004,-21,119,0.000,32,116,0.195,-7,24,0.063,27,-100,0.001,45,-72,0.014,41,-71,0.052,3,126,0.005,-16,-72,0.002,21,-82,0.002,52,104,0.014,-40,-66,0.001,32,35,0.070,31,8,0.001,32,-110,0.022,31,121,0.303,-29,-66,0.002,-38,144,0.004,42,27,0.015,4,98,0.021,19,-76,0.001,18,37,0.006,33,1,0.001,-5,-74,0.001,22,97,0.047,0,129,0.001,52,20,0.027,13,43,0.001,-10,-46,0.001,24,122,0.161,-9,15,0.006,-4,129,0.016,33,-97,0.013,44,14,0.001,-8,145,0.001,-4,26,0.002,47,9,0.103,-13,-50,0.001,23,115,0.122,38,23,0.010,14,9,0.013,10,0,0.032,47,90,0.001,14,28,0.001,5,-53,0.000,-8,128,0.000,29,6,0.001,-9,-77,0.009,20,97,0.038,53,-3,0.032,-3,107,0.011,49,2,0.040,48,39,0.079,38,100,0.001,35,-98,0.003,-19,47,0.010,53,-114,0.002,48,118,0.000,40,25,0.004,16,39,0.012,26,-99,0.003,-12,-48,0.003,-32,27,0.006,40,-80,0.046,36,-77,0.006,17,79,0.290,50,22,0.037,12,-71,0.001,27,101,0.013,7,50,0.002,41,106,0.001,3,47,0.004,-16,167,0.001,-21,49,0.011,51,84,0.001,30,12,0.001,7,-61,0.001,6,126,0.055,-25,-59,0.001,-17,-67,0.019,-6,16,0.017,30,123,0.025,8,127,0.015,45,11,0.065,60,58,0.000,-29,-54,0.008,-6,-65,0.000,-7,36,0.017,-26,-66,0.000,41,-107,0.000,52,116,0.001,51,31,0.005,32,-9,0.008,4,32,0.004,-53,-71,0.000,-1,123,0.004,32,-90,0.017,31,77,0.113,46,41,0.008,8,-76,0.013,19,31,0.001,-2,21,0.001,-5,33,0.015,48,95,0.000,5,-2,0.026,-10,148,0.011,37,36,0.039,-2,136,0.001,-10,35,0.013,-14,-38,0.003,-18,-65,0.007,-34,21,0.002,56,45,0.016,52,48,0.010,13,15,0.004,47,-53,0.003,46,86,0.002,24,126,0.002,-14,-55,0.000,-34,-56,0.002,56,100,0.000,-38,-61,0.002,47,28,0.040,44,10,0.026,-11,166,0.000,19,107,0.002,-23,-44,0.031,-24,33,0.001,44,-103,0.004,58,48,0.001,20,-97,0.052,35,79,0.001,34,42,0.004,15,28,0.001,10,36,0.003,-9,38,0.005,61,63,0.001,38,-98,0.002,49,13,0.025,48,-68,0.003,-2,104,0.034,2,42,0.003,1,25,0.004,16,101,0.047,-22,36,0.001,49,-98,0.002,48,75,0.000,26,95,0.088,40,110,0.046,2,-71,0.001,1,10,0.003,38,128,0.038,16,-4,0.001,12,-9,0.005,49,-117,0.002,63,76,0.003,-31,25,0.001,40,-3,0.185,35,27,0.001,-17,146,0.004,-31,-54,0.003,3,10,0.022,39,103,0.002,54,67,0.002,50,58,0.010,30,53,0.010,27,129,0.002,6,47,0.004,3,27,0.003,51,112,0.001,12,100,0.016,45,26,0.039,21,40,0.014,18,122,0.015,-14,-45,0.001,-3,14,0.001,-7,-49,0.003,30,87,0.000,-27,28,0.122,42,143,0.006,60,22,0.002,32,108,0.051,-17,-40,0.005,31,-113,0.001,28,39,0.001,-30,-67,0.002,55,70,0.002,51,75,0.000,-3,116,0.033,31,64,0.003,28,-106,0.013,27,61,0.002,42,-79,0.011,4,12,0.019,22,-80,0.029,21,91,0.010,-1,15,0.001,-2,-78,0.032,-5,-44,0.014,43,113,0.002,42,68,0.001,6,-3,0.023,-2,33,0.001,-6,104,0.002,-25,26,0.008,-28,-61,0.002,57,51,0.002,37,56,0.016,33,57,0.000,28,99,0.002,9,31,0.005,-15,37,0.007,22,121,0.100,56,17,0.003,37,-91,0.003,13,-13,0.006,46,130,0.022,43,-92,0.005,24,34,0.003,-22,166,0.001,0,32,0.037,-23,31,0.023,-5,144,0.003,47,48,0.001,43,45,0.024,24,-111,0.002,23,74,0.113,15,95,0.004,11,36,0.002,-43,-71,0.001,-9,-39,0.006,25,81,0.124,-13,22,0.001,15,-16,0.024,48,-119,0.001,10,24,0.005,5,38,0.027,20,122,0.000,53,72,0.001,49,73,0.016,-1,-48,0.004,29,46,0.002,-9,127,0.006,25,47,0.005,2,14,0.003,-18,-47,0.002,-19,34,0.007,49,-102,0.001,-8,-73,0.002,-12,-70,0.000,40,82,0.009,39,-87,0.009,50,124,0.001,12,19,0.002,-7,111,0.140,7,152,0.002,62,129,0.001,59,29,0.006,39,58,0.002,36,-84,0.010,35,55,0.002,30,-110,0.002,-8,-43,0.002,7,41,0.017,-17,35,0.015,54,31,0.012,50,62,0.000,30,65,0.002,26,72,0.010,7,-6,0.022,-27,-50,0.009,-26,28,0.030,-27,-65,0.032,45,62,0.001,41,63,0.002,21,76,0.101]]] diff --git a/public/static/SampleData/simple.czml b/public/static/SampleData/simple.czml new file mode 100644 index 0000000..073be16 --- /dev/null +++ b/public/static/SampleData/simple.czml @@ -0,0 +1,2416 @@ + +[ + { + "id":"document", + "name":"simple", + "version":"1.0", + "clock":{ + "interval":"2012-03-15T10:00:00Z/2012-03-16T10:00:00Z", + "currentTime":"2012-03-15T10:00:00Z", + "multiplier":60, + "range":"LOOP_STOP", + "step":"SYSTEM_CLOCK_MULTIPLIER" + } + }, + { + "id":"9927edc4-e87a-4e1f-9b8b-0bfb3b05b227", + "name":"Accesses", + "description":"List of Accesses" + }, + { + "id":"Satellite/Geoeye1-to-Satellite/ISS", + "name":"Geoeye1 to ISS", + "parent":"9927edc4-e87a-4e1f-9b8b-0bfb3b05b227", + "availability":[ + "2012-03-15T10:16:06.97400000000198Z/2012-03-15T10:33:59.3549999999959Z","2012-03-15T11:04:09.73799999999756Z/2012-03-15T11:21:04.51900000000023Z","2012-03-15T11:52:06.94400000000314Z/2012-03-15T12:08:18.8840000000055Z","2012-03-15T12:40:57.2069999999949Z/2012-03-15T12:54:39.301999999996Z","2012-03-15T13:29:44.5040000000008Z/2012-03-15T13:41:05.96899999999732Z","2012-03-15T14:20:16.8450000000012Z/2012-03-15T14:25:48.0559999999969Z","2012-03-16T07:01:44.4309999999823Z/2012-03-16T07:06:19.6309999999939Z","2012-03-16T07:46:00.457999999984168Z/2012-03-16T07:57:20.8470000000088Z","2012-03-16T08:32:14.5289999999804Z/2012-03-16T08:46:17.0109999999986Z","2012-03-16T09:18:28.4590000000026Z/2012-03-16T09:35:16.6410000000033Z" + ], + "description":"

Access times

StartEndDuration
2012-03-15 10:16:06.974Z 2012-03-15 10:33:59.355Z 1072.381s
2012-03-15 11:04:09.738Z 2012-03-15 11:21:04.519Z 1014.781s
2012-03-15 11:52:06.944Z 2012-03-15 12:08:18.884Z 971.940s
2012-03-15 12:40:57.207Z 2012-03-15 12:54:39.302Z 822.095s
2012-03-15 13:29:44.504Z 2012-03-15 13:41:05.969Z 681.465s
2012-03-15 14:20:16.845Z 2012-03-15 14:25:48.056Z 331.211s
2012-03-16 07:01:44.431Z 2012-03-16 07:06:19.631Z 275.200s
2012-03-16 07:46:00.458Z 2012-03-16 07:57:20.847Z 680.389s
2012-03-16 08:32:14.529Z 2012-03-16 08:46:17.011Z 842.482s
2012-03-16 09:18:28.459Z 2012-03-16 09:35:16.641Z 1008.182s
", + "polyline":{ + "show":[ + { + "interval":"0000-01-01T00:00:00Z/2012-03-15T10:16:06.97400000000198Z", + "boolean":false + }, + { + "interval":"2012-03-15T10:16:06.97400000000198Z/2012-03-15T10:33:59.3549999999959Z", + "boolean":true + }, + { + "interval":"2012-03-15T10:33:59.3549999999959Z/2012-03-15T11:04:09.73799999999756Z", + "boolean":false + }, + { + "interval":"2012-03-15T11:04:09.73799999999756Z/2012-03-15T11:21:04.51900000000023Z", + "boolean":true + }, + { + "interval":"2012-03-15T11:21:04.51900000000023Z/2012-03-15T11:52:06.94400000000314Z", + "boolean":false + }, + { + "interval":"2012-03-15T11:52:06.94400000000314Z/2012-03-15T12:08:18.8840000000055Z", + "boolean":true + }, + { + "interval":"2012-03-15T12:08:18.8840000000055Z/2012-03-15T12:40:57.2069999999949Z", + "boolean":false + }, + { + "interval":"2012-03-15T12:40:57.2069999999949Z/2012-03-15T12:54:39.301999999996Z", + "boolean":true + }, + { + "interval":"2012-03-15T12:54:39.301999999996Z/2012-03-15T13:29:44.5040000000008Z", + "boolean":false + }, + { + "interval":"2012-03-15T13:29:44.5040000000008Z/2012-03-15T13:41:05.96899999999732Z", + "boolean":true + }, + { + "interval":"2012-03-15T13:41:05.96899999999732Z/2012-03-15T14:20:16.8450000000012Z", + "boolean":false + }, + { + "interval":"2012-03-15T14:20:16.8450000000012Z/2012-03-15T14:25:48.0559999999969Z", + "boolean":true + }, + { + "interval":"2012-03-15T14:25:48.0559999999969Z/2012-03-16T07:01:44.4309999999823Z", + "boolean":false + }, + { + "interval":"2012-03-16T07:01:44.4309999999823Z/2012-03-16T07:06:19.6309999999939Z", + "boolean":true + }, + { + "interval":"2012-03-16T07:06:19.6309999999939Z/2012-03-16T07:46:00.457999999984168Z", + "boolean":false + }, + { + "interval":"2012-03-16T07:46:00.457999999984168Z/2012-03-16T07:57:20.8470000000088Z", + "boolean":true + }, + { + "interval":"2012-03-16T07:57:20.8470000000088Z/2012-03-16T08:32:14.5289999999804Z", + "boolean":false + }, + { + "interval":"2012-03-16T08:32:14.5289999999804Z/2012-03-16T08:46:17.0109999999986Z", + "boolean":true + }, + { + "interval":"2012-03-16T08:46:17.0109999999986Z/2012-03-16T09:18:28.4590000000026Z", + "boolean":false + }, + { + "interval":"2012-03-16T09:18:28.4590000000026Z/2012-03-16T09:35:16.6410000000033Z", + "boolean":true + }, + { + "interval":"2012-03-16T09:35:16.6410000000033Z/9999-12-31T24:00:00Z", + "boolean":false + } + ], + "width":1, + "material":{ + "solidColor":{ + "color":{ + "rgba":[ + 0,255,0,255 + ] + } + } + }, + "arcType":"NONE", + "positions":{ + "references":[ + "Satellite/Geoeye1#position","Satellite/ISS#position" + ] + } + } + }, + { + "id":"Facility/AGI-to-Satellite/ISS", + "name":"AGI to ISS", + "parent":"9927edc4-e87a-4e1f-9b8b-0bfb3b05b227", + "availability":[ + "2012-03-15T10:52:19.3940000000002Z/2012-03-15T11:02:24.5570000000007Z","2012-03-15T12:28:24.0339999999997Z/2012-03-15T12:38:34.6399999999994Z","2012-03-15T14:06:02.09799999999814Z/2012-03-15T14:14:48.5310000000027Z","2012-03-15T15:43:15.2350000000006Z/2012-03-15T15:52:06.56500000000233Z","2012-03-15T17:19:26.3190000000031Z/2012-03-15T17:29:36.0240000000049Z","2012-03-15T18:55:44.7079999999987Z/2012-03-15T19:05:17.7339999999967Z","2012-03-16T09:56:05.90600000001723Z/2012-03-16T10:00:00Z" + ], + "description":"

Access times

StartEndDuration
2012-03-15 10:52:19.394Z 2012-03-15 11:02:24.557Z 605.163s
2012-03-15 12:28:24.034Z 2012-03-15 12:38:34.640Z 610.606s
2012-03-15 14:06:02.098Z 2012-03-15 14:14:48.531Z 526.433s
2012-03-15 15:43:15.235Z 2012-03-15 15:52:06.565Z 531.330s
2012-03-15 17:19:26.319Z 2012-03-15 17:29:36.024Z 609.705s
2012-03-15 18:55:44.708Z 2012-03-15 19:05:17.734Z 573.026s
2012-03-16 09:56:05.906Z 2012-03-16 10:00:00.000Z 234.094s
", + "polyline":{ + "show":[ + { + "interval":"0000-01-01T00:00:00Z/2012-03-15T10:52:19.3940000000002Z", + "boolean":false + }, + { + "interval":"2012-03-15T10:52:19.3940000000002Z/2012-03-15T11:02:24.5570000000007Z", + "boolean":true + }, + { + "interval":"2012-03-15T11:02:24.5570000000007Z/2012-03-15T12:28:24.0339999999997Z", + "boolean":false + }, + { + "interval":"2012-03-15T12:28:24.0339999999997Z/2012-03-15T12:38:34.6399999999994Z", + "boolean":true + }, + { + "interval":"2012-03-15T12:38:34.6399999999994Z/2012-03-15T14:06:02.09799999999814Z", + "boolean":false + }, + { + "interval":"2012-03-15T14:06:02.09799999999814Z/2012-03-15T14:14:48.5310000000027Z", + "boolean":true + }, + { + "interval":"2012-03-15T14:14:48.5310000000027Z/2012-03-15T15:43:15.2350000000006Z", + "boolean":false + }, + { + "interval":"2012-03-15T15:43:15.2350000000006Z/2012-03-15T15:52:06.56500000000233Z", + "boolean":true + }, + { + "interval":"2012-03-15T15:52:06.56500000000233Z/2012-03-15T17:19:26.3190000000031Z", + "boolean":false + }, + { + "interval":"2012-03-15T17:19:26.3190000000031Z/2012-03-15T17:29:36.0240000000049Z", + "boolean":true + }, + { + "interval":"2012-03-15T17:29:36.0240000000049Z/2012-03-15T18:55:44.7079999999987Z", + "boolean":false + }, + { + "interval":"2012-03-15T18:55:44.7079999999987Z/2012-03-15T19:05:17.7339999999967Z", + "boolean":true + }, + { + "interval":"2012-03-15T19:05:17.7339999999967Z/2012-03-16T09:56:05.90600000001723Z", + "boolean":false + }, + { + "interval":"2012-03-16T09:56:05.90600000001723Z/2012-03-16T10:00:00Z", + "boolean":true + } + ], + "width":1, + "material":{ + "solidColor":{ + "color":{ + "rgba":[ + 0,255,255,255 + ] + } + } + }, + "arcType":"NONE", + "positions":{ + "references":[ + "Facility/AGI#position","Satellite/ISS#position" + ] + } + } + }, + { + "id":"Facility/AGI-to-Satellite/Geoeye1/Sensor/Sensor", + "name":"AGI to Sensor", + "parent":"9927edc4-e87a-4e1f-9b8b-0bfb3b05b227", + "description":"

No accesses

", + "polyline":{ + "show":false, + "width":1, + "material":{ + "solidColor":{ + "color":{ + "rgba":[ + 0,255,255,255 + ] + } + } + }, + "arcType":"NONE", + "positions":{ + "references":[ + "Facility/AGI#position","Satellite/Geoeye1/Sensor/Sensor#position" + ] + } + } + }, + { + "id":"AreaTarget/Pennsylvania", + "name":"Pennsylvania", + "availability":"2012-03-15T10:00:00Z/2012-03-16T10:00:00Z", + "description":"\r\n

Pennsylvania, officially the Commonwealth of Pennsylvania, is a U.S. state that is located in the Northeastern and Mid-Atlantic regions of the United States, and the Great Lakes region. The state borders Delaware to the southeast, Maryland to the south, West Virginia to the southwest, Ohio to the west, Lake Erie and Ontario, Canada to the northwest, New York to the north and New Jersey to the east. The Appalachian Mountains run through the middle of the state.\r\nPennsylvania is the 33rd most extensive, the 6th most populous, and the 9th most densely populated of the 50 United States. The state's four most populous cities are Philadelphia, Pittsburgh, Allentown, and Erie. The state capital is Harrisburg. Pennsylvania has 51 miles (82 km) of coastline along Lake Erie and 57 miles (92 km) of shoreline along the Delaware Estuary. The state is one of the 13 original founding states of the U.S.

", + "label":{ + "fillColor":{ + "rgba":[ + 255,0,0,255 + ] + }, + "font":"11pt Lucida Console", + "horizontalOrigin":"LEFT", + "outlineColor":{ + "rgba":[ + 0,0,0,255 + ] + }, + "outlineWidth":2, + "show":true, + "style":"FILL_AND_OUTLINE", + "text":"Pennsylvania", + "verticalOrigin":"CENTER" + }, + "point":{ + "color":{ + "rgba":[ + 255,0,0,255 + ] + }, + "outlineWidth":0, + "pixelSize":5, + "show":true + }, + "polygon":{ + "positions":{ + "cartographicRadians":[ + -1.3522077240237877,0.6932383436059149,0,-1.3630314740519183,0.6933402355423893,0,-1.3671958658568963,0.6933164116349497,0,-1.3680725973741055,0.6933103378544294,0,-1.3756294390644388,0.693299289626768,0,-1.37759145155452,0.693285710886166,0,-1.3857323154905137,0.6932329317993553,0,-1.387204693159873,0.6932497043584019,0,-1.3921642397583167,0.6932764600632868,0,-1.3948369679907713,0.6932740164944832,0,-1.403752356914346,0.6932421638673993,0,-1.4054136839844849,0.6932660224548367,0,-1.4054203339781848,0.6974061187809533,0,-1.40542577948586,0.6985302157572724,0,-1.4054446815793686,0.7009683713811051,0,-1.4054013802466303,0.7051660984836011,0,-1.4054152208071435,0.7064882030988564,0,-1.405374066131245,0.7092531367782914,0,-1.405344517975858,0.7130398911135833,0,-1.4053553041696831,0.7137921630703696,0,-1.4053903506948033,0.717847558527404,0,-1.4053391082894005,0.7241248283511975,0,-1.4054076823049872,0.724226301809922,0,-1.4053853251132624,0.7304339504245932,0,-1.4053495111334156,0.732809309071272,0,-1.3921311340866651,0.7377041737073639,0,-1.3921036273290417,0.7330926289989202,0,-1.3894979895551738,0.7330486468055195,0,-1.3798484450375388,0.7330586305001696,0,-1.3773883852209647,0.7330357493325297,0,-1.3666816595180005,0.7330283146713379,0,-1.3649219132838528,0.7330070217223114,0,-1.3569064163205986,0.7329918900387238,0,-1.354599770992057,0.7330180002614316,0,-1.3433550648083268,0.7330904667885002,0,-1.342653826195758,0.7330826651925256,0,-1.3362924480939438,0.7330909906599572,0,-1.328981348766283,0.7330498535192947,0,-1.3282799705255588,0.7330296775356948,0,-1.317369878937513,0.7329750316713255,0,-1.3156783227347815,0.7330097463386135,0,-1.3150298279817356,0.7329135612488367,0,-1.314652993784966,0.7323625607125478,0,-1.3139482994025766,0.7321239392772451,0,-1.313439099339346,0.7307498413128194,0,-1.3119864438784967,0.730731794657347,0,-1.3115849481938966,0.7305214824566543,0,-1.3111742895338896,0.7304061685456499,0,-1.3110525702187852,0.7301933081536464,0,-1.3103904967805342,0.7297947098063845,0,-1.3106869061243591,0.7294990335104291,0,-1.3106926482391603,0.7291819769374323,0,-1.31006717438301,0.7290287195687776,0,-1.3099912873941209,0.7282685936295457,0,-1.3101384361377446,0.7280613880956304,0,-1.3098927634269164,0.7267083737010938,0,-1.3102614817770415,0.7262854105154587,0,-1.3102163475385047,0.7261352772658493,0,-1.3094348237109952,0.7254602361685523,0,-1.3092568000409661,0.7250021744241752,0,-1.308504580282513,0.7240255927322389,0,-1.3078199921164888,0.72403864782177,0,-1.3072264926882589,0.7236467166299556,0,-1.307169245851595,0.7233461185166344,0,-1.3066244760589671,0.7233894550695429,0,-1.3053806318405998,0.7230886126517037,0,-1.304717877749918,0.7230926094796837,0,-1.3044598132746381,0.7229514646847072,0,-1.304466742212013,0.7225949985688139,0,-1.3038530144070728,0.7221311597980974,0,-1.3037620652441313,0.7217037983975161,0,-1.3053608047669052,0.7210299440396993,0,-1.3054040889283545,0.7207376013315654,0,-1.3059460661823945,0.7205192954872712,0,-1.3066654038056376,0.7195438482063814,0,-1.3066038809082192,0.7191939794384397,0,-1.307509392852277,0.7180478912764205,0,-1.3081242027013054,0.7175373648956472,0,-1.308728104256843,0.717319652461049,0,-1.3088029439804343,0.7170121428373868,0,-1.3084086390699141,0.7170281126169686,0,-1.3090170610213867,0.7166757130974598,0,-1.3096123057176687,0.7160773791853247,0,-1.3102183365700435,0.7157721733780154,0,-1.3110323583836496,0.7155894722475611,0,-1.3114282515208273,0.715192915896617,0,-1.3113623303982265,0.7149382548578634,0,-1.3103886282856712,0.7138982478932651,0,-1.3102830183588716,0.7135714872902171,0,-1.3099828739776964,0.7133519073843598,0,-1.3099502537461944,0.7130661620241878,0,-1.3107343082404708,0.71278013738274,0,-1.3105539981986583,0.7124678106579555,0,-1.3107517440349952,0.7119489067090039,0,-1.31127146832641,0.711618131825877,0,-1.311969495533574,0.7116548186295764,0,-1.3123766984036227,0.7111869655638845,0,-1.312273898452243,0.7107655382832366,0,-1.3125810939125313,0.7101058734983065,0,-1.3122094259121033,0.7098219258392405,0,-1.3126432625232558,0.7094893707227551,0,-1.312451642745932,0.7092008153872138,0,-1.3124943858525955,0.7088611393395713,0,-1.3123744118489564,0.7083205235010411,0,-1.3124452547722973,0.708092164574061,0,-1.3121783938297178,0.7078498255687451,0,-1.311170361152473,0.7079894345182887,0,-1.3103895005747963,0.707650107564989,0,-1.3101083802768658,0.7072250674577409,0,-1.3102207619963784,0.7060949839922579,0,-1.309999715938635,0.7054652167207774,0,-1.3093681334206897,0.7051362570197143,0,-1.3090052619072645,0.705263631186341,0,-1.3085229574630952,0.7051907985987479,0,-1.3081275878407266,0.704161490481042,0,-1.3078189262517947,0.7039573043817338,0,-1.3076207789382897,0.7036127588721909,0,-1.3069140774300372,0.7033606983954779,0,-1.3062526671932404,0.7024681543136311,0,-1.3044385887704104,0.701233735108179,0,-1.3042056919320535,0.7007377298965646,0,-1.304568964853792,0.7003023050552322,0,-1.3060128412908008,0.7001592403389345,0,-1.3067616226475691,0.699494182468726,0,-1.3082325342309757,0.6991443834599382,0,-1.3087087299920748,0.6987265340836812,0,-1.3097941505737305,0.698265086353168,0,-1.310184580829599,0.6978768726763835,0,-1.3104732932768435,0.6977082912802286,0,-1.3109336414681285,0.6977250115221181,0,-1.3114380592151826,0.6973624890931379,0,-1.3115653635501037,0.6969928457322186,0,-1.3113672162189656,0.6963321861243438,0,-1.311491064806832,0.6960654124902647,0,-1.3122363904438565,0.6959921609813949,0,-1.313307848385792,0.6955209219518895,0,-1.3134255708764333,0.69543595930277,0,-1.3150346253356304,0.6954879526165308,0,-1.316335524310828,0.6946234384593984,0,-1.3171997767525299,0.6951045210815227,0,-1.319179975605344,0.6953413971468251,0,-1.3202367902547627,0.695309754284478,0,-1.3211230163524166,0.694998230372876,0,-1.3220100103668133,0.6942036166803666,0,-1.322522002814063,0.6933243719682792,0,-1.3228041702830704,0.6933123989973828,0,-1.3288801694793237,0.6932838277389112,0,-1.330519016712254,0.693277265241703,0,-1.3363957516005893,0.6932495491982945,0,-1.3402469439857425,0.6932668452760358,0,-1.3438479258876066,0.6932604746923505,0,-1.347761635982283,0.6932567744504896,0,-1.3520094545588786,0.6932461975964622,0,-1.3522077240237877,0.6932383436059149,0 + ] + }, + "material":{ + "solidColor":{ + "color":{ + "rgba":[ + 255,0,0,77 + ] + } + } + }, + "fill":false, + "outline":true, + "outlineColor":{ + "rgba":[ + 255,0,0,255 + ] + } + }, + "position":{ + "cartesian":[ + 1152255.80150063,-4694317.951340558,4147335.9067563135 + ] + } + }, + { + "id":"Facility/AGI", + "name":"AGI", + "availability":"2012-03-15T10:00:00Z/2012-03-16T10:00:00Z", + "description":"\r\n

\r\nAnalytical Graphics, Inc. (AGI) develops commercial modeling and analysis software used by more than 40,000 global space, defense and intelligence professionals. AGI founded Cesium to meet the need for a cross-platform virtual globe with dynamic-data visualization. AGI continues to invest heavily in Cesium's development and facilitate the growth of the user and contributor community.\r\n

", + "billboard":{ + "eyeOffset":{ + "cartesian":[ + 0,0,0 + ] + }, + "horizontalOrigin":"CENTER", + "image":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACvSURBVDhPrZDRDcMgDAU9GqN0lIzijw6SUbJJygUeNQgSqepJTyHG91LVVpwDdfxM3T9TSl1EXZvDwii471fivK73cBFFQNTT/d2KoGpfGOpSIkhUpgUMxq9DFEsWv4IXhlyCnhBFnZcFEEuYqbiUlNwWgMTdrZ3JbQFoEVG53rd8ztG9aPJMnBUQf/VFraBJeWnLS0RfjbKyLJA8FkT5seDYS1Qwyv8t0B/5C2ZmH2/eTGNNBgMmAAAAAElFTkSuQmCC", + "pixelOffset":{ + "cartesian2":[ + 0,0 + ] + }, + "scale":1.5, + "show":true, + "verticalOrigin":"CENTER" + }, + "label":{ + "fillColor":{ + "rgba":[ + 0,255,255,255 + ] + }, + "font":"11pt Lucida Console", + "horizontalOrigin":"LEFT", + "outlineColor":{ + "rgba":[ + 0,0,0,255 + ] + }, + "outlineWidth":2, + "pixelOffset":{ + "cartesian2":[ + 12,0 + ] + }, + "show":true, + "style":"FILL_AND_OUTLINE", + "text":"AGI", + "verticalOrigin":"CENTER" + }, + "position":{ + "cartesian":[ + 1216469.9357990976,-4736121.71856379,4081386.8856866374 + ] + } + }, + { + "id":"Satellite/Geoeye1", + "name":"Geoeye1", + "availability":"2012-03-15T10:00:00Z/2012-03-16T10:00:00Z", + "description":"\r\n

GeoEye-1 is a high-resolution earth observation satellite owned by GeoEye, which was launched in September 2008.

\r\n\r\n

On December 1, 2004, General Dynamics C4 Systems announced it had been awarded a contract worth approximately $209 million to build the OrbView-5 satellite. Its sensor is designed by the ITT Exelis.

\r\n\r\n

The satellite, now known as GeoEye-1, was originally scheduled for April 2008 but lost its 30-day launch slot to a U.S. government mission which had been delayed. It was rescheduled for launch August 22, 2008 from Vandenberg Air Force Base aboard a Delta II launch vehicle. The launch was postponed to September 4, 2008, due to unavailability of the Big Crow telemetry-relay aircraft. It was delayed again to September 6 because Hurricane Hanna interfered with its launch crews.

\r\n\r\n

The launch took place successfully on September 6, 2008 at 11:50:57 a.m. PDT (18:50:57 UTC). The GeoEye-1 satellite separated successfully from its Delta II launch vehicle at 12:49 p.m. PDT (19:49 UTC), 58 minutes and 56 seconds after launch.

", + "billboard":{ + "eyeOffset":{ + "cartesian":[ + 0,0,0 + ] + }, + "horizontalOrigin":"CENTER", + "image":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADJSURBVDhPnZHRDcMgEEMZjVEYpaNklIzSEfLfD4qNnXAJSFWfhO7w2Zc0Tf9QG2rXrEzSUeZLOGm47WoH95x3Hl3jEgilvDgsOQUTqsNl68ezEwn1vae6lceSEEYvvWNT/Rxc4CXQNGadho1NXoJ+9iaqc2xi2xbt23PJCDIB6TQjOC6Bho/sDy3fBQT8PrVhibU7yBFcEPaRxOoeTwbwByCOYf9VGp1BYI1BA+EeHhmfzKbBoJEQwn1yzUZtyspIQUha85MpkNIXB7GizqDEECsAAAAASUVORK5CYII=", + "pixelOffset":{ + "cartesian2":[ + 0,0 + ] + }, + "scale":1.5, + "show":true, + "verticalOrigin":"CENTER" + }, + "label":{ + "fillColor":{ + "rgba":[ + 0,255,0,255 + ] + }, + "font":"11pt Lucida Console", + "horizontalOrigin":"LEFT", + "outlineColor":{ + "rgba":[ + 0,0,0,255 + ] + }, + "outlineWidth":2, + "pixelOffset":{ + "cartesian2":[ + 12,0 + ] + }, + "show":true, + "style":"FILL_AND_OUTLINE", + "text":"Geoeye 1", + "verticalOrigin":"CENTER" + }, + "path":{ + "show":[ + { + "interval":"2012-03-15T10:00:00Z/2012-03-16T10:00:00Z", + "boolean":true + } + ], + "width":1, + "material":{ + "solidColor":{ + "color":{ + "rgba":[ + 0,255,0,255 + ] + } + } + }, + "resolution":120, + "leadTime":[ + { + "interval":"2012-03-15T10:00:00Z/2012-03-15T10:39:30.5752243210009Z", + "epoch":"2012-03-15T10:00:00Z", + "number":[ + 0,5903.376977238004, + 5903.376977238004,0 + ] + }, + { + "interval":"2012-03-15T10:39:30.5752243210009Z/2012-03-15T12:17:53.9522015590046Z", + "epoch":"2012-03-15T10:39:30.5752243210009Z", + "number":[ + 0,5903.376977238004, + 5903.376977238004,0 + ] + }, + { + "interval":"2012-03-15T12:17:53.9522015590046Z/2012-03-15T13:56:17.3309044399939Z", + "epoch":"2012-03-15T12:17:53.9522015590046Z", + "number":[ + 0,5903.378702880989, + 5903.378702880989,0 + ] + }, + { + "interval":"2012-03-15T13:56:17.3309044399939Z/2012-03-15T15:34:40.7113328760024Z", + "epoch":"2012-03-15T13:56:17.3309044399939Z", + "number":[ + 0,5903.3804284360085, + 5903.3804284360085,0 + ] + }, + { + "interval":"2012-03-15T15:34:40.7113328760024Z/2012-03-15T17:13:04.0934867610049Z", + "epoch":"2012-03-15T15:34:40.7113328760024Z", + "number":[ + 0,5903.3821538850025, + 5903.3821538850025,0 + ] + }, + { + "interval":"2012-03-15T17:13:04.0934867610049Z/2012-03-15T18:51:27.4773659909988Z", + "epoch":"2012-03-15T17:13:04.0934867610049Z", + "number":[ + 0,5903.383879229994, + 5903.383879229994,0 + ] + }, + { + "interval":"2012-03-15T18:51:27.4773659909988Z/2012-03-15T20:29:50.8629704579944Z", + "epoch":"2012-03-15T18:51:27.4773659909988Z", + "number":[ + 0,5903.385604466996, + 5903.385604466996,0 + ] + }, + { + "interval":"2012-03-15T20:29:50.8629704579944Z/2012-03-15T22:08:14.6231253900041Z", + "epoch":"2012-03-15T20:29:50.8629704579944Z", + "number":[ + 0,5903.76015493201, + 5903.76015493201,0 + ] + }, + { + "interval":"2012-03-15T22:08:14.6231253900041Z/2012-03-15T23:46:38.0402241229895Z", + "epoch":"2012-03-15T22:08:14.6231253900041Z", + "number":[ + 0,5903.417098732985, + 5903.417098732985,0 + ] + }, + { + "interval":"2012-03-15T23:46:38.0402241229895Z/2012-03-16T01:25:01.45978897399618Z", + "epoch":"2012-03-15T23:46:38.0402241229895Z", + "number":[ + 0,5903.419564851007, + 5903.419564851007,0 + ] + }, + { + "interval":"2012-03-16T01:25:01.45978897399618Z/2012-03-16T03:03:24.8818198189838Z", + "epoch":"2012-03-16T01:25:01.45978897399618Z", + "number":[ + 0,5903.422030844988, + 5903.422030844988,0 + ] + }, + { + "interval":"2012-03-16T03:03:24.8818198189838Z/2012-03-16T04:41:48.3063165349886Z", + "epoch":"2012-03-16T03:03:24.8818198189838Z", + "number":[ + 0,5903.424496716005, + 5903.424496716005,0 + ] + }, + { + "interval":"2012-03-16T04:41:48.3063165349886Z/2012-03-16T06:20:11.7332789999782Z", + "epoch":"2012-03-16T04:41:48.3063165349886Z", + "number":[ + 0,5903.42696246499, + 5903.42696246499,0 + ] + }, + { + "interval":"2012-03-16T06:20:11.7332789999782Z/2012-03-16T07:58:35.1683124770061Z", + "epoch":"2012-03-16T06:20:11.7332789999782Z", + "number":[ + 0,5903.435033477028, + 5903.435033477028,0 + ] + }, + { + "interval":"2012-03-16T07:58:35.1683124770061Z/2012-03-16T08:21:36.5644517090113Z", + "epoch":"2012-03-16T07:58:35.1683124770061Z", + "number":[ + 0,5903.435548290989, + 5903.435548290989,0 + ] + }, + { + "interval":"2012-03-16T08:21:36.5644517090113Z/2012-03-16T10:00:00Z", + "epoch":"2012-03-16T08:21:36.5644517090113Z", + "number":[ + 0,5903.435548290989, + 5903.435548290989,0 + ] + } + ], + "trailTime":[ + { + "interval":"2012-03-15T10:00:00Z/2012-03-15T10:39:30.5752243210009Z", + "epoch":"2012-03-15T10:00:00Z", + "number":[ + 0,0, + 5903.376977238004,5903.376977238004 + ] + }, + { + "interval":"2012-03-15T10:39:30.5752243210009Z/2012-03-15T12:17:53.9522015590046Z", + "epoch":"2012-03-15T10:39:30.5752243210009Z", + "number":[ + 0,0, + 5903.376977238004,5903.376977238004 + ] + }, + { + "interval":"2012-03-15T12:17:53.9522015590046Z/2012-03-15T13:56:17.3309044399939Z", + "epoch":"2012-03-15T12:17:53.9522015590046Z", + "number":[ + 0,0, + 5903.378702880989,5903.378702880989 + ] + }, + { + "interval":"2012-03-15T13:56:17.3309044399939Z/2012-03-15T15:34:40.7113328760024Z", + "epoch":"2012-03-15T13:56:17.3309044399939Z", + "number":[ + 0,0, + 5903.3804284360085,5903.3804284360085 + ] + }, + { + "interval":"2012-03-15T15:34:40.7113328760024Z/2012-03-15T17:13:04.0934867610049Z", + "epoch":"2012-03-15T15:34:40.7113328760024Z", + "number":[ + 0,0, + 5903.3821538850025,5903.3821538850025 + ] + }, + { + "interval":"2012-03-15T17:13:04.0934867610049Z/2012-03-15T18:51:27.4773659909988Z", + "epoch":"2012-03-15T17:13:04.0934867610049Z", + "number":[ + 0,0, + 5903.383879229994,5903.383879229994 + ] + }, + { + "interval":"2012-03-15T18:51:27.4773659909988Z/2012-03-15T20:29:50.8629704579944Z", + "epoch":"2012-03-15T18:51:27.4773659909988Z", + "number":[ + 0,0, + 5903.385604466996,5903.385604466996 + ] + }, + { + "interval":"2012-03-15T20:29:50.8629704579944Z/2012-03-15T22:08:14.6231253900041Z", + "epoch":"2012-03-15T20:29:50.8629704579944Z", + "number":[ + 0,0, + 5903.76015493201,5903.76015493201 + ] + }, + { + "interval":"2012-03-15T22:08:14.6231253900041Z/2012-03-15T23:46:38.0402241229895Z", + "epoch":"2012-03-15T22:08:14.6231253900041Z", + "number":[ + 0,0, + 5903.417098732985,5903.417098732985 + ] + }, + { + "interval":"2012-03-15T23:46:38.0402241229895Z/2012-03-16T01:25:01.45978897399618Z", + "epoch":"2012-03-15T23:46:38.0402241229895Z", + "number":[ + 0,0, + 5903.419564851007,5903.419564851007 + ] + }, + { + "interval":"2012-03-16T01:25:01.45978897399618Z/2012-03-16T03:03:24.8818198189838Z", + "epoch":"2012-03-16T01:25:01.45978897399618Z", + "number":[ + 0,0, + 5903.422030844988,5903.422030844988 + ] + }, + { + "interval":"2012-03-16T03:03:24.8818198189838Z/2012-03-16T04:41:48.3063165349886Z", + "epoch":"2012-03-16T03:03:24.8818198189838Z", + "number":[ + 0,0, + 5903.424496716005,5903.424496716005 + ] + }, + { + "interval":"2012-03-16T04:41:48.3063165349886Z/2012-03-16T06:20:11.7332789999782Z", + "epoch":"2012-03-16T04:41:48.3063165349886Z", + "number":[ + 0,0, + 5903.42696246499,5903.42696246499 + ] + }, + { + "interval":"2012-03-16T06:20:11.7332789999782Z/2012-03-16T07:58:35.1683124770061Z", + "epoch":"2012-03-16T06:20:11.7332789999782Z", + "number":[ + 0,0, + 5903.435033477028,5903.435033477028 + ] + }, + { + "interval":"2012-03-16T07:58:35.1683124770061Z/2012-03-16T08:21:36.5644517090113Z", + "epoch":"2012-03-16T07:58:35.1683124770061Z", + "number":[ + 0,0, + 5903.435548290989,5903.435548290989 + ] + }, + { + "interval":"2012-03-16T08:21:36.5644517090113Z/2012-03-16T10:00:00Z", + "epoch":"2012-03-16T08:21:36.5644517090113Z", + "number":[ + 0,0, + 5903.435548290989,5903.435548290989 + ] + } + ] + }, + "position":{ + "interpolationAlgorithm":"LAGRANGE", + "interpolationDegree":5, + "referenceFrame":"INERTIAL", + "epoch":"2012-03-15T10:00:00Z", + "cartesian":[ + 0,4650397.56551457,-3390535.52275848,-4087729.48877329, + 300,3169722.12564676,-2787480.80604407,-5661647.74541255, + 600,1369743.14695017,-1903662.23809705,-6663952.07552171, + 900,-567881.181741598,-828602.646229013,-6995188.66804375, + 1200,-2448582.60230996,329568.153528487,-6623075.06683579, + 1500,-4083754.13823344,1454683.10708859,-5585143.37246992, + 1800,-5308969.50307564,2433751.75579502,-3985152.1306503, + 2100,-6000251.41586053,3168038.65147806,-1983402.41619314, + 2400,-6086888.59948749,3583071.0890244,218668.596985674, + 2700,-5559191.47781264,3636465.81402216,2398566.73167249, + 3e3,-4469920.08845903,3322511.24085064,4335511.55404767, + 3300,-2928982.78408199,2672830.22757979,5833216.31169719, + 3600,-1092083.75801192,1753068.15442214,6739938.26134568, + 3900,855172.482158128,656135.125613598,6963670.20631676, + 4200,2715900.15544456,-507141.10370753,6481233.35568881, + 4500,4301545.02457765,-1619032.41301719,5340730.82941359, + 4800,5450887.61456272,-2566695.71952053,3657168.90089312, + 5100,6046743.71636896,-3253730.76621873,1601308.71661883, + 5400,6028480.33195964,-3610312.82817681,-617627.593798261, + 5700,5398572.81294241,-3600605.84777646,-2773801.46073176, + 6e3,4222131.44045066,-3226403.44705845,-4648544.33370408, + 6300,2619506.22498348,-2526553.4640733,-6052998.81756411, + 6600,753243.717795414,-1572460.33494755,-6846895.76189552, + 6900,-1188681.40488625,-460501.299931452,-6951744.44608042, + 7200,-3011438.3543463,697635.55422786,-6357762.60297625, + 7500,-4532151.11938648,1785788.3012355,-5124499.63066102, + 7800,-5597650.73991331,2694559.67974802,-3375267.6308537, + 8100,-6099819.6602219,3332144.87819992,-1285551.25441976, + 8400,-5986960.96848025,3633749.04814585,934060.845169727, + 8700,-5269630.81665556,3568466.92847822,3059081.28082907, + 9e3,-4019895.75365332,3142650.51265407,4874208.829971, + 9300,-2363959.24834243,2399275.2584582,6195511.03850927, + 9600,-469149.870760219,1413453.85724258,6889101.23661198, + 9900,1473060.67181718,284763.40426175,6884461.2201842, + 10200,3266189.40343301,-872716.655583284,6181432.05126297, + 10500,4728347.28355441,-1941746.59348253,4850477.39746136, + 10800,5710710.2309505,-2813734.86048061,3026098.49087128, + 11100,6113095.13961986,-3399958.81868676,893596.861584693, + 11400,5894739.57129755,-3640946.46595729,-1329913.85220463, + 11700,5078666.83994692,-3512760.54879695,-3418301.78745728, + 1.2e4,3748910.95111879,-3029296.38333698,-5160170.44648529, + 12300,2041115.54074956,-2240388.77388782,-6380510.87024598, + 12600,128062.841689814,-1226230.06015728,-6957810.72494893, + 12900,-1797880.02370018,-89029.4500196064,-6835259.47179512, + 13200,-3543573.22088694,1057095.05449295,-6025636.92847326, + 13500,-4933723.66130957,2097142.52871785,-4609929.79883268, + 13800,-5828032.08592363,2926410.8376128,-2729797.16692992, + 14100,-6135448.82449735,3460972.29119284,-574126.701345544, + 14400,-5823927.7453399,3646385.46288723,1639558.19879141, + 14700,-4924221.58519395,3463528.69521585,3687192.93154295, + 1.5e4,-3526959.31596672,2930706.251085,5361276.70706965, + 15300,-1773303.2569981,2101739.07409384,6492183.23224769, + 15600,159547.662987404,1060379.23480408,6965271.78475013, + 15900,2076237.39607934,-88180.8729786283,6732242.01695268, + 16200,3782725.81635179,-1227790.39374922,5815983.99990949, + 16500,5105722.20548866,-2242913.57649818,4308638.06403535, + 16800,5910441.07421132,-3030353.86516332,2362820.08963428, + 17100,6114851.51773991,-3510008.83668448,176385.679251524, + 17400,5698545.28993677,-3633371.19534201,-2028049.09959272, + 17700,4704828.76468794,-3388594.10597537,-4026549.32730149, + 1.8e4,3235698.38668044,-2801429.85157001,-5617256.78167319, + 18300,1440597.87544465,-1932078.39947018,-6640795.78057306, + 18600,-499271.406753861,-868624.163763964,-6995574.53823806, + 18900,-2389099.93056153,281955.155073057,-6646967.28761496, + 19200,-4039374.65314639,1404254.69599011,-5630169.87285918, + 19500,-5284177.74745136,2385580.5113947,-4046822.21760319, + 19800,-5997582.07668494,3126987.78863274,-2055530.11530625, + 20100,-6106647.9295009,3553296.55362796,143356.668050338, + 20400,-5599404.46957774,3620983.69073271,2327690.75353029, + 20700,-4526523.6344331,3322884.75009569,4276248.57556407, + 2.1e4,-2996245.95968125,2689013.19249613,5791558.99005475, + 21300,-1163200.2741721,1783416.84670725,6720089.01115394, + 21600,787392.993898573,697578.526522602,6967627.88152446, + 21900,2658313.93062137,-458794.910147627,6508599.14858285, + 22200,4259990.67255703,-1568681.0047992,5388741.89641135, + 22500,5429593.2831701,-2519450.97921993,3720960.53337583, + 22800,6047882.84940679,-3214395.00924545,1674395.1431695, + 23100,6051933.55069228,-3582878.93041997,-542688.518363143, + 23400,5441937.00725033,-3587843.0497094,-2704629.51345146, + 23700,4280981.3355276,-3229580.32104236,-4592141.67304755, + 2.4e4,2687870.63239537,-2545325.71682756,-6015038.82305718, + 24300,824227.476165237,-1604924.09680093,-6831172.62144631, + 24600,-1122206.7533029,-503393.526280383,-6959823.84518174, + 24900,-2956141.14030617,648615.184081045,-6388844.91324311, + 25200,-4493594.58923188,1735560.37697432,-5175495.01335972, + 25500,-5579742.15764727,2648182.45074863,-3441081.02701185, + 25800,-6104403.26233424,3294305.38566715,-1359568.96084645, + 26100,-6013607.17885908,3608279.93904281,859312.893815001, + 26400,-5315661.64405407,3557946.90172158,2991170.32920959, + 26700,-4080654.87799535,3148138.47866591,4820009.9588535, + 2.7e4,-2433295.14169919,2420207.41265824,6160500.86869024, + 27300,-540048.709695602,1447707.79842875,6876809.17070199, + 27600,1407767.0671378,328874.327204994,6896124.80284684, + 27900,3213109.50329342,-823211.994312959,6215875.70465174, + 28200,4692868.59118734,-1891866.70296935,4904219.94344902, + 28500,5696446.91317596,-2768546.70023811,3093687.88562859, + 28800,6121503.42645198,-3364055.24800511,968155.930008613, + 29100,5924955.48270504,-3617967.44053651,-1255976.3070331, + 29400,5127597.6892057,-3505018.25529556,-3352495.11813025, + 29700,3811571.94317904,-3037549.25029656,-5109143.31304328, + 3e4,2111161.49948368,-2263783.11174549,-6349384.85929529, + 30300,198440.814370976,-1262402.66740219,-6949691.77194863, + 30600,-1734232.20942493,-134349.362344097,-6850956.53988907, + 30900,-3493043.34940257,1007171.75248993,-6063593.6302678, + 31200,-4901404.59339724,2047631.5553316,-4666367.44252873, + 31500,-5817210.59449393,2882304.14537745,-2799066.43911321, + 31800,-6147255.41846079,3426731.53070299,-649254.5431675, + 32100,-5857198.0801714,3625479.50040521,1566166.40158537, + 32400,-4975601.20019172,3458072.25151343,3622969.15612808, + 32700,-3591247.48488601,2941244.1531075,5312719.83645661, + 3.3e4,-1843992.41265467,2127197.21558911,6464196.01056295, + 33300,89606.2868318625,1098179.28301232,6960674.00038747, + 33600,2014116.216064,-41861.9173412649,6751496.49323013, + 33900,3734716.93464761,-1177641.55889657,5857148.74823608, + 34200,5076704.10409687,-2194022.38273781,4367547.68932021, + 34500,5903372.88410761,-2987688.92982215,2433491.61675847, + 34800,6130453.95083298,-3477904.78368583,251624.603178938, + 35100,5735217.75213746,-3615077.15768101,-1955899.72625122, + 35400,4758822.55630629,-3385942.79917116,-3964806.69356341, + 35700,3301523.19211142,-2814664.43976308,-5572146.00475715, + 3.6e4,1511601.23664753,-1959847.10663623,-6616835.17806668, + 36300,-430228.574173179,-908129.800399028,-6995151.89199021, + 36600,-2328943.09312278,234674.826841814,-6670127.01821151, + 36900,-3994146.68251508,1353941.93189576,-5674612.94646658, + 37200,-5258447.49803637,2337295.48282856,-4108116.98999385, + 37500,-5993978.3578334,3085604.46208182,-2127529.51573296, + 37792.10937600001,-6130101.19290489,3515932.23049969,9264.18885075031, + 37792.10937600001,-6130384.46590958,3515584.20899647,6695.95297313175, + 37800,-6125874.41162028,3522668.06783492,65343.2925253213, + 38100,-5639991.96555162,3604984.9649137,2253983.5554605, + 38400,-4584395.94143214,3323147.09203951,4214321.78311218, + 38700,-3065568.13527098,2705519.4701818,5747698.43677366, + 3.9e4,-1236975.61319386,1814506.56685453,6698754.90266186, + 39300,716616.358619228,740116.661060127,6971010.28510801, + 39600,2597699.24211401,-409106.618477249,6536397.61888921, + 39900,4215695.47146154,-1516877.62428874,5438182.33102578, + 40200,5406138.82164494,-2470796.73853129,3787053.90015348, + 40500,6047673.30554989,-3173840.28074124,1750430.41209045, + 40800,6074988.85892697,-3554541.56526844,-464452.515495436, + 41100,5485885.96089374,-3574579.22997436,-2632147.29446065, + 41400,4341322.9852588,-3232699.06081148,-4532744.1278815, + 41700,2758464.91140936,-2564475.49099545,-5974684.5730493, + 4.2e4,897941.378998967,-1638151.03207697,-6813870.18895483, + 42300,-1052780.29114919,-547350.31501512,-6967266.98101188, + 42600,-2897962.38786145,598337.730126023,-6420270.92575253, + 42900,-4452507.67257208,1684006.98810485,-5227762.21729297, + 43200,-5559902.81446472,2600541.92981829,-3508960.37408922, + 43500,-6107852.50578303,3255392.58900438,-1436240.414533, + 43800,-6040042.84057261,3582042.33222067,781588.359021092, + 44100,-5362448.81628763,3547053.6267202,2920264.28926642, + 44400,-4143086.34484583,3153703.20118722,4763115.49884062, + 44700,-2505073.20990168,2441676.25611596,6123395.1710605, + 4.5e4,-613927.427842828,1482918.7438982,6863271.36754096, + 45300,1339253.51926787,374274.722489247,6907560.17367724, + 45600,3156902.43368155,-772213.536520633,6251170.31002552, + 45900,4654686.28493925,-1840443.09381273,4959835.53773277, + 46200,5680192.5911522,-2721927.0144689,3163998.96049871, + 46500,6128844.51276722,-3326981.82199689,1046014.11764365, + 46800,5955135.19089971,-3594198.42002226,-1178497.88600712, + 47100,5177515.37761796,-3496939.23059209,-3283263.70343719, + 47400,3876125.08406537,-3045941.10299702,-5055144.34831043, + 47700,2183796.65985995,-2287764.94024368,-6316019.07390942, + 4.8e4,271833.87521692,-1299541.32697329,-6940261.69174425, + 48300,-1667447.4521302,-180911.112150818,-6866372.68166609, + 48600,-3439563.26008233,955855.877452593,-6102303.72319006, + 48900,-4866610.13492781,1996714.47420741,-4724503.76740207, + 49200,-5804634.05552651,2836917.32537247,-2870806.06589895, + 49500,-6158210.22317347,3391468.10028257,-727378.529454526, + 49800,-5890622.43327254,3603920.37185301,1489553.62298514, + 50100,-5028149.07573745,3452412.7854813,3555632.13063885, + 50400,-3657625.67732601,2952067.47043493,5261491.80318722, + 50700,-1917502.9861475,2153417.50812297,6434281.66704866, + 5.1e4,16385.9030227461,1137154.22735658,6955128.03809566, + 51300,1948590.02716246,5932.68692494816,6770919.32140635, + 51600,3683531.56602696,-1125865.3101215,5899617.58513144, + 51900,5045075.05049747,-2143521.20647514,4428790.31172427, + 52200,5894537.93372833,-2943600.33881516,2507300.84221936, + 52500,6145319.33336977,-3444710.88598747,330489.762265361, + 52800,5772252.92619536,-3596135.17460611,-1880004.68907179, + 53100,4814227.70009439,-3383142.53754643,-3899575.22652161, + 53400,3369646.74065646,-2828251.54052332,-5524142.63835726, + 53700,1585543.23813733,-1988421.42228563,-6590845.93086525, + 5.4e4,-357910.350092875,-948803.773623948,-6993738.51176149, + 54300,-2265501.33106186,185984.632498067,-6693404.63427837, + 54600,-3945946.4455674,1302118.36361238,-5720250.0261776, + 54900,-5230349.11136857,2287547.71417922,-4171552.53759813, + 55200,-5988848.52093772,3042952.96658151,-2202401.06485164, + 55500,-6143975.07878275,3491770.60452847,-10850.1513717031, + 55800,-5679085.05394414,3588209.85780387,2181750.0146522, + 56100,-4640533.36129799,3322189.20886295,4153363.06092158, + 56400,-3133066.67299684,2720467.78933698,5704180.01803677, + 56700,-1309004.93755622,1843842.17028288,6677068.31359695, + 5.7e4,647339.025015699,780870.816708856,6973340.32950533, + 57300,2538181.10727378,-361055.853775189,6562510.21023275, + 57600,4171969.98041122,-1466397.21111577,5485442.38520507, + 57900,5382654.17879044,-2423011.01358071,3850674.60326007, + 58200,6046826.41525439,-3133606.57827198,1823944.99746878, + 58500,6096863.76991072,-3525944.93394749,-388529.418463662, + 58800,5528240.75886515,-3560508.1956446,-2561536.94201627, + 59100,4399833.93046646,-3234555.4105321,-4474596.98883736, + 59400,2827192.79466463,-2582047.94273418,-5934852.21727813, + 59700,969951.943537454,-1669655.41291604,-6796335.58749306, + 6e4,-984719.898824341,-589618.976376381,-6973776.52312107, + 60300,-2840679.06207876,549542.579643414,-6450181.15540378, + 60600,-4411762.44368795,1633582.32761397,-5278101.02383552, + 60900,-5539821.8812025,2553564.38717868,-3574700.65443009, + 61200,-6110499.4216937,3216608.78411877,-1510778.70527264, + 61500,-6065185.45343018,3555380.31168716,705776.464615322, + 61800,-5407563.38400485,3535213.46929476,2850853.06717591, + 62100,-4203610.62525511,3157878.15298021,4707132.72088483, + 62400,-2574879.64903651,2461435.61532725,6086499.1699117, + 62700,-685954.322605996,1516258.5606979,6849182.89364973, + 6.3e4,1272288.33228187,417822.56705157,6917698.46459339, + 63300,3101775.8499355,-722863.509031593,6284514.38079727, + 63600,4616992.47561324,-1790292.97190264,5013016.79790008, + 63900,5663770.71640256,-2676070.71899226,3231624.16863578, + 64200,6135371.4121741,-3290080.45730932,1121203.79010737, + 64500,5983939.59297669,-3569994.43267187,-1103399.34590389, + 64800,5225648.29405979,-3487870.2459942,-3215885.50983491, + 65100,3938681.17004128,-3052900.18665214,-5002296.80027205, + 65400,2254438.80143069,-2310028.26003838,-6283008.92961188, + 65700,343446.90133987,-1334858.28319514,-6930384.09001317, + 6.6e4,-1602050.37846173,-225735.909154036,-6880611.66512792, + 66300,-3386944.40986816,906017.150337268,-6139248.17757944, + 66600,-4832070.53958701,1946867.81229942,-4780477.35542575, + 66900,-5791683.20148079,2792087.12003739,-2940208.5728573, + 67200,-6168194.3033376,3356188.3380088,-803226.305916316, + 67500,-5922563.36745149,3581765.2245831,1414926.17666612, + 67800,-5078828.91845141,3445624.16493429,3489781.9709688, + 68100,-3721915.49406421,2961325.63371038,5211083.51804886, + 68400,-1988894.99497894,2177777.89839556,6404406.39513106, + 68700,-54888.2078361055,1174149.33331489,6948796.88236319, + 6.9e4,1884640.70448398,51820.9903687732,6788770.41227551, + 69300,3633383.3695744,-1075728.66780282,5939851.50484081, + 69600,5013822.83771548,-2094221.77216089,4487337.50776009, + 69900,5885368.24871984,-2900147.9444263,2578216.96936549, + 70200,6159167.95347313,-3411520.82070492,406556.345744964, + 70500,5807698.74230004,-3576568.0997769,-1806529.61694144, + 70800,4867646.30137514,-3379161.20988542,-3836145.68282692, + 71100,3435604.13167031,-2840233.61266231,-5477156.69730701, + 71400,1657370.97268364,-2015140.42598643,-6565011.82694444, + 71700,-287436.06291879,-987566.894613425,-6991631.49004769, + 7.2e4,-2203449.68389942,139065.542320005,-6715236.62764392, + 72300,-3898549.0661614,1251748.63425776,-5763854.67859798, + 72600,-5202391.35629523,2238791.87144665,-4232583.77922341, + 72900,-5983183.28985049,3000731.20227799,-2274741.09719522, + 73200,-6161212.76191318,3460356.43482851,-87207.9167899129, + 73212.755328,-6154907.45142338,3472367.94593854,7596.60346604248, + 73212.755328,-6154869.70054271,3472314.27813954,7580.8794079691, + 73500,-5717448.81578568,3570745.1629146,2109098.31104496, + 73800,-4696169.83114091,3320482.84120077,4091785.03705666, + 74100,-3200328.99009984,2734674.45681108,5659891.92891485, + 74400,-1381077.01266596,1872509.96377624,6654523.77848442, + 74700,577748.090126868,821093.769286612,6974795.11523067, + 7.5e4,2478109.48884739,-313347.47804376,6587807.13665381, + 75300,4127505.31278952,-1416035.41741213,5532024.2188774, + 75600,5358320.86187946,-2375108.38976716,3913825.28354394, + 75900,6045114.87388492,-3093035.47796134,1897250.96078875, + 76200,6117959.70137134,-3496831.82171999,-312528.286799539, + 76500,5569999.09392809,-3545804.51320804,-2490571.51128057, + 76800,4458008.95194446,-3235738.76990929,-4415862.92262388, + 77100,2895892.83203338,-2598985.49449698,-5894275.70505342, + 77400,1042253.23018028,-1700634.28000537,-6777992.26999029, + 77700,-916077.187647013,-631528.141129369,-6979509.92543813, + 7.8e4,-2782581.13402601,500903.59787269,-6479436.6285118, + 78300,-4370052.94363424,1583094.46259798,-5327977.01007168, + 78600,-5518721.85709652,2506309.26460801,-3640216.28040287, + 78900,-6112168.23541311,3177357.25513652,-1585350.31294321, + 79200,-6089477.83093395,3528100.98228024,629678.589070026, + 79500,-5452026.20496159,3522659.69615828,2780930.00344605, + 79800,-4263731.70020275,3161305.12361798,4650456.05959722, + 80100,-2644559.15506612,2480478.79327034,6048784.02286021, + 80400,-758135.633598154,1548979.41575856,6834216.6865031, + 80700,1204905.05796468,460907.635765506,6926974.41977554, + 8.1e4,3046008.27476155,-673773.966409097,6317089.29694364, + 81300,4578498.46402567,-1740174.28613336,5065597.72063859, + 81600,5646473.68468333,-2630014.64015221,3298882.43495241, + 81900,6141046.72596935,-3252772.80744689,1196302.81750839, + 82200,6012018.04859162,-3545227.32649779,-1028103.34443477, + 82500,5273272.81266634,-3478149.61476025,-3148045.87613995, + 82800,4001014.56171013,-3059196.63136835,-4948782.04286484, + 83100,2325178.22912325,-2331694.39515607,-6249209.71055206, + 83400,415473.178002811,-1369709.78007679,-6919692.49653159, + 83700,-1535964.66503722,-270276.547186386,-6894107.98457841, + 8.4e4,-3333431.83769341,856252.019175884,-6175604.75808401, + 84300,-4796522.04551855,1896876.29005214,-4836079.84361999, + 84600,-5777706.24779571,2746906.16140639,-3009492.61314694, + 84900,-6177229.98169397,3320382.63185734,-879217.258095039, + 85019.62118399999,-6162999.06701901,3457830.12375349,7561.5554257676, + 85019.62118399999,-6162974.43645965,3457855.60563033,7854.92641443949, + 85200,-5953637.85681474,3558954.7436216,1340197.97209599, + 85500,-5128782.17352735,3438064.29435161,3423588.54273433, + 85800,-3785673.79051689,2969762.46793873,5160112.25565087, + 86100,-2059990.30391251,2201339.18545503,6373787.29692082, + 86400,-126123.203602025,1210440.95210778,6941595.81244609 + ] + } + }, + { + "id":"Satellite/Geoeye1/Sensor/Sensor", + "name":"Sensor", + "parent":"Satellite/Geoeye1", + "availability":"2012-03-15T10:00:00Z/2012-03-16T10:00:00Z", + "description":"\r\nGeoEye-1 primary optical sensor", + "agi_rectangularSensor":{ + "xHalfAngle":0.03490658503988659, + "yHalfAngle":0.1308996938995747, + "radius":5e7, + "show":true, + "showIntersection":true, + "intersectionColor":{ + "rgba":[ + 91,141,42,255 + ] + }, + "intersectionWidth":1, + "portionToDisplay":"COMPLETE", + "ellipsoidSurfaceMaterial":{ + "solidColor":{ + "color":{ + "rgba":[ + 255,255,255,0 + ] + } + } + }, + "ellipsoidHorizonSurfaceMaterial":{ + "solidColor":{ + "color":{ + "rgba":[ + 91,141,42,102 + ] + } + } + }, + "lateralSurfaceMaterial":{ + "solidColor":{ + "color":{ + "rgba":[ + 91,141,42,102 + ] + } + } + }, + "domeSurfaceMaterial":{ + "solidColor":{ + "color":{ + "rgba":[ + 255,255,255,0 + ] + } + } + } + }, + "position":{ + "reference":"Satellite/Geoeye1#position" + }, + "orientation":{ + "interpolationAlgorithm":"LAGRANGE", + "interpolationDegree":1, + "epoch":"2012-03-15T10:00:00Z", + "unitQuaternion":[ + 0,0.45652188368372576,-0.049580035995243577,-0.8819344359461565,0.10640131785324795, + 300,0.309688526062018,-0.0592870464529779,-0.945283886004075,0.0837641797515638, + 600,0.15524757622990795,-0.06613430791377527,-0.9841132393764626,0.05518673278488507, + 900,-0.00292111994175703,-0.0708577012756388,-0.997213694292164,0.0231408976574577, + 1200,-0.16092541190488696,-0.07366221105872979,-0.9841684849777448,-0.009449002158555368, + 1500,-0.314913668750939,-0.0741332480934805,-0.945389362086838,-0.0396559808096601, + 1800,-0.46111797517849523,-0.07133681989759713,-0.8820752281273645,-0.06499663851493012, + 2100,-0.5958929710115779,-0.06408137429757078,-0.7961076114651798,-0.08377240317870609, + 2400,-0.7157616023420825,-0.05127477935754066,-0.6899173002208836,-0.09523835608859163, + 2700,-0.8174835312829725,-0.032293286222170224,-0.5663582893393724,-0.09957965576700036, + 3e3,-0.8981594732171307,-0.007282064965075748,-0.4286117712387239,-0.09771633310646917, + 3300,-0.9553732014106016,0.02268022485095099,-0.2801239104895849,-0.09098487895904225, + 3600,-0.9873546335794315,0.055600285300614775,-0.12456553542953895,-0.08076424460656585, + 3900,-0.9931290840820475,0.08878758518602645,0.03420539561535011,-0.06812765941954183, + 4200,-0.9726097523437336,0.11923848848370394,0.1921955189609909,-0.05360349803229558, + 4500,-0.9266013127761243,0.14410541763980506,0.3453500522795941,-0.03710764286372911, + 4800,-0.8567104492606202,0.16114010867609302,0.4896475405086631,-0.018065369560029604, + 5100,-0.7651904673799887,0.16900850386745597,0.6212093701046949,0.004311930589260289, + 5400,-0.65476509733607,0.167416041080326,0.736419679714748,0.0306690695702625, + 5700,-0.52847434486429,0.157033607133198,0.832054811891026,0.0611563820053577, + 6e3,-0.3895680947630498,0.13925597141420595,0.9054212965335245,0.09516695724737946, + 6300,-0.24145137791497695,0.11585074286656698,0.9544946480377988,0.13122425213131197, + 6600,-0.08766695138336913,0.08857186173275274,0.9780397112564104,0.16705644001300107, + 6900,0.0681091512143702,0.0588201701746901,0.975683568270575,0.199857213300588, + 7200,0.22208321436701708,0.02742889663617501,0.9479134421716864,0.22668658468458308, + 7500,0.37038610295591484,-0.005374179619418777,0.8959898561586955,0.24492331573631088, + 7800,0.5091468061725981,-0.03982156054139311,0.8217936152310702,0.25266386177239303, + 8100,0.6345951670526766,-0.07632032375575565,0.7276485749875976,0.24898139178203782, + 8400,0.74319081431201,-0.115101450055357,0.616167479939105,0.2340015093603, + 8700,0.831775949622172,-0.155889564893858,0.490154362443126,0.208796346149329, + 9e3,0.8977458609401552,-0.19767059537716106,0.35257322945531605,0.17513087323344004, + 9300,0.9392203755740813,-0.2386171448956041,0.20656933753811604,0.13511496237432705, + 9600,0.9551855860047288,-0.2762045000484599,0.055512659557813385,0.09082904310077039, + 9900,0.9455672936555236,-0.3075102813189379,-0.09697329110182466,0.04400114617822118, + 10200,0.9112057721154048,-0.32964137331128296,-0.24702843554328593,-0.004190214559769809, + 10500,0.8537280116812718,-0.34019054797696796,-0.3906342272417769,-0.05313919123483469, + 10800,0.7753477260340961,-0.33761413821004504,-0.5237494546655661,-0.10266014880160201, + 11100,0.678646883443177,-0.321448460029694,-0.642487282647484,-0.152706865509227, + 11400,0.5663937396095698,-0.29233135836535395,-0.7433131377803619,-0.20304208393942993, + 11700,0.44143384145561676,-0.2518422814615759,-0.8232445220301037,-0.25294285092366586, + 1.2e4,0.306663398124318,-0.202205709303897,-0.880034226696603,-0.301015234196321, + 12300,0.1650688010085161,-0.14591992362879705,-0.9123143712800115,-0.3451697477730842, + 12600,0.0197975469685519,-0.0853830520494517,-0.919673265375257,-0.382777842241111, + 12900,-0.125781912603622,-0.0225920035200833,-0.902638718569604,-0.410988875248159, + 13200,-0.268068269053218,0.0410200787717714,-0.862557835755081,-0.42714252450661, + 13500,-0.40328328188219814,0.10457256697936104,-0.8013929301708503,-0.42918124873047414, + 13800,-0.527595141075492,0.167562492191663,-0.721482275790624,-0.415968152680025, + 14100,-0.63729460613615,0.229579714680373,-0.625326421067951,-0.387447553497755, + 14400,-0.729004052371046,0.289990892924393,-0.515449622315533,-0.344630324409041, + 14700,-0.799898671746294,0.347674021531739,-0.394359239682847,-0.289423011813555, + 1.5e4,-0.8479156915470907,0.40087264899467984,-0.2645960251752219,-0.22434135324919588, + 15300,-0.8719196801444191,0.44721638158276605,-0.12884329208379902,-0.15216105121180204, + 15600,-0.8717857218102383,0.48392142877439215,0.009953272851643033,-0.07556876590426433, + 15900,-0.8483680702414826,0.5081411625681598,0.14850743324471194,0.003117462058986029, + 16200,-0.803346488369551,0.517391621000153,0.28319678412636,0.0820969646432368, + 16500,-0.738979706787557,0.509950643903202,0.410166022867909,0.160072381826497, + 16800,-0.6578270551762475,0.48513758881443464,0.5255175543129347,0.23608554700873682, + 17100,-0.562508179758941,0.443419390580516,0.625558404914632,0.309257940564423, + 17400,-0.4555540793799059,0.3863368771298169,0.7070659376935179,0.37851295603122187, + 17700,-0.3393715159331888,0.3162821830059178,0.7675366763881567,0.4423573276043278, + 1.8e4,-0.21631044585316,0.236177777329079,0.805384997836963,0.498783373590037, + 18300,-0.08879785232638711,0.14911640351638203,0.8200587302797112,0.5453282667500271, + 18600,0.0405154903570449,0.0580260470357324,0.812041865849672,0.579292224195974, + 18900,0.1686523581223119,-0.03457641091206519,0.7827295286715177,0.5980763654031878, + 19200,0.29229452865534405,-0.12669295854298504,0.7341902907503731,0.5995643582983051, + 19500,0.407873861578229,-0.216795336356195,0.668866166425428,0.582457506249872, + 19800,0.5117577836803161,-0.3036425430967061,0.5892826280070711,0.5464898546116441, + 20100,0.6004986784010852,-0.3860240301493302,0.49783712219037424,0.4924885634763772, + 20400,0.6711099234998507,-0.46250434322348277,0.3967081096267108,0.42228412098472384, + 20700,0.7213309057202829,-0.5312418622259029,0.28789149968305094,0.33850006304542296, + 2.1e4,0.749841925199537,-0.589937441612334,0.173339352944198,0.244262913512946, + 21300,0.7563872307097331,-0.6359420139423931,0.055151430337517605,0.14287908123262902, + 21600,0.7417687469327745,-0.6665156663640296,-0.06424431919231686,0.03753211979905787, + 21900,0.7076942014817681,-0.6791883285846031,-0.18198618346134604,-0.06894316886181981, + 22200,0.6565015531212547,-0.6721382007881237,-0.2947929093222409,-0.17416397562071592, + 22500,0.5908218944637248,-0.6444963594712376,-0.3991085848594578,-0.2761634826368209, + 22800,0.5132638829746581,-0.5965106183077261,-0.49135357412158703,-0.37323844105056103, + 23100,0.426193371000674,-0.529545248847109,-0.568234099794891,-0.463735967732529, + 23400,0.3316496590787451,-0.44593344609858715,-0.6270569574804962,-0.5458492808082592, + 23700,0.23140108646887603,-0.34872296538974706,-0.6659997992687671,-0.6174869212904571, + 2.4e4,0.12710921720814497,-0.24136360081321895,-0.6842931609583379,-0.6762615832419109, + 24300,0.02054636195045601,-0.12738703890664804,-0.6822767435988253,-0.7196171443714914, + 24600,-0.0862023812316024,-0.0101304714742255,-0.661306263211702,-0.745077545799554, + 24900,-0.190619010073819,0.107448011307467,-0.623515511970397,-0.750564936695581, + 25200,-0.289758976661335,0.222829416801619,-0.571477542870679,-0.734710966602866, + 25500,-0.3803928117433478,0.3338657990500558,-0.5078421383985328,-0.6970877272377297, + 25800,-0.45925684869690114,0.4386157627761852,-0.43503524751987915,-0.6383131621583362, + 26100,-0.52336572388435,0.5351415607715,-0.355085322401941,-0.560023430592652, + 26400,-0.570333529284564,0.621334676166358,-0.269603690640144,-0.464732972318808, + 26700,-0.598652090416787,0.694828694235594,-0.179907605032397,-0.355614979940353, + 2.7e4,-0.6078769362607971,0.7530380553771732,-0.08724376834577352,-0.23623683540206303, + 27300,-0.5986763258506331,0.7933317284738522,0.006952114549584682,-0.11028641605368303, + 27600,-0.5727157733578528,0.8133143245677628,0.10083578430566897,0.018670752621711695, + 27900,-0.5323861167815899,0.8111522725130088,0.19204506421905995,0.14736250121485397, + 28200,-0.48042916815224024,0.7858648228788684,0.2777431003868851,0.2728792127253231, + 28500,-0.4195497071613029,0.7375103147470279,0.35481393553807694,0.3926367914632889, + 28800,-0.35210671775049596,0.6672327970916498,0.4201699589054409,0.5042603091991539, + 29100,-0.279949347353188,0.577173960648789,0.471108061039901,0.60543849967502, + 29400,-0.2044201961108391,0.4702824433722522,0.5056479450476912,0.6938061419062803, + 29700,-0.12650775485514093,0.3500619591633148,0.5227933041431316,0.7669025843295615, + 3e4,-0.047098675197616416,0.2202982196806411,0.5226666515306132,0.8222347478536443, + 30300,0.03274057618905268,0.08480138456030355,0.5064825898443367,0.8574451387885045, + 30600,0.11153203501382301,-0.05280094691003661,0.47634967947869306,0.8705536445455991, + 30900,0.18727413572211804,-0.18918960505484902,0.43493049612557105,0.8602157607069801, + 31200,0.25748763079307097,-0.32138166662817597,0.3850316080708179,0.8259325669388918, + 31500,0.319414589200837,-0.446667239378329,0.329218965970603,0.76816506684244, + 31800,0.37032756938598604,-0.5624885241155801,0.26954572798271104,0.6883380362272701, + 32100,0.40788612892472786,-0.6663118854223579,0.20744434960313393,0.5887480097575158, + 32400,0.43047488951487084,-0.7555460461481587,0.14379121334933295,0.4724040946166438, + 32700,0.4374621389710881,-0.8275477752166153,0.07911484019237061,0.34282998521454705, + 3.3e4,0.429325110114308,-0.879734059580369,0.0138911421943771,0.203850362786326, + 33300,0.40760236524886084,-0.9097898799729895,-0.05115017245944058,0.05938304471511227, + 33600,0.3746640467828691,-0.9159290792249553,-0.11479145989999202,-0.08673923340933061, + 33900,0.3333371439356621,-0.8971439869547543,-0.17523572012836905,-0.2308927403251031, + 34200,0.28646891080099296,-0.8533799607115528,-0.23019171341094993,-0.36971608144273693, + 34500,0.2365330615048161,-0.7855959430565572,-0.27712032419877414,-0.5000954418750522, + 34800,0.185368316325562,-0.695708468465808,-0.313585602536811,-0.619106116985781, + 35100,0.134097151329766,-0.586445559098441,-0.33763436103108,-0.723949306560959, + 35400,0.08322534713473181,-0.46114837103369805,-0.34812908732914705,-0.8119247871832991, + 35700,0.03288479299809441,-0.32355506254181704,-0.34497013964376605,-0.8804693717825702, + 3.6e4,-0.01684462057506209,-0.17759260715192188,-0.3291585457595218,-0.9272711450250903, + 36300,-0.06561490494564011,-0.027195850841953605,-0.30267348190365706,-0.9504440190238841, + 36600,-0.11257572453713498,0.12382948697290097,-0.26817466233774295,-0.9487229916477228, + 36900,-0.15629215946623604,0.27188623019787506,-0.22858571748482606,-0.9216285631859052, + 37200,-0.1948410775677811,0.4136030441727912,-0.1866521769035501,-0.8695576123526214, + 37500,-0.2260645794699811,0.5458010874431712,-0.14457630571362706,-0.7937843981089023, + 37792.10937600001,-0.24746131015493694,0.6623478558995569,-0.10489043695696397,-0.6993255422166699, + 37800,-0.24790197338533188,0.6653091485187916,-0.10384193825221096,-0.6965092966708216, + 38100,-0.2588545475625549,0.7694589286156277,-0.06504290775954717,-0.5802557199460068, + 38400,-0.25815725661001,0.855271575625403,-0.0282559252459553,-0.448404912412129, + 38700,-0.2460974860822899,0.9201070964636615,0.006828938928050128,-0.3046183250796059, + 3.9e4,-0.2240255550485309,0.9616777784232365,0.04052383110138298,-0.15279469979358795, + 39300,-0.19420097404272005,0.9782507850680473,0.07281479763986022,0.003064056016802231, + 39600,-0.15945982388068305,0.9688465621184533,0.10313673829254803,0.15897080503529606, + 39900,-0.12276941443418095,0.9333789075032786,0.13031622196241993,0.31104528319991587, + 40200,-0.08677412295960199,0.8726998512482608,0.15270263341172297,0.4555734045847939, + 40500,-0.053439598989016415,0.7885444963034473,0.16845597329829404,0.5890368169049881, + 40800,-0.023869890073215806,0.6834005325410861,0.17592093141351003,0.7081283544394021, + 41100,0.0016777526606360203,0.5603406494158331,0.17400265666049602,0.8097768934918691, + 41400,0.023601119471086,0.422852158899476,0.162465404412487,0.891203697951737, + 41700,0.04263723365980768,0.2746848021488549,0.14209067421313995,0.9500213503263696, + 4.2e4,0.059496436540713016,0.11972436122508202,0.11465278681114303,0.9843683202158843, + 42300,0.07453205645949991,-0.038107993905392705,0.08270141773857792,0.9930524804180562, + 42600,0.0875281261148667,-0.194932123603032,0.0491846850037827,0.975664471571816, + 42900,0.09766181844226578,-0.34696159098147794,0.016992231968832497,0.9326259098131838, + 43200,0.10365148645947402,-0.49053494559041305,-0.011476168152497001,0.8651590224195131, + 43500,0.104051937615248,-0.622134867319881,-0.0346198850646464,0.775192146955513, + 43800,0.09762500588505527,-0.7384129188613829,-0.051766498857980084,0.6652337552173239, + 44100,0.0837027949886419,-0.836241520781023,-0.0631098610087335,0.538248182975465, + 44400,0.06246671213124077,-0.9128096086468875,-0.06948476964300637,0.39755300907562885, + 44700,0.035079013378482515,-0.9657638219221164,-0.07203200571508753,0.2467409435814021, + 4.5e4,0.003624787104027142,-0.9933764263730415,-0.07182626082895653,0.08961654255831594, + 45300,-0.02914268961366281,-0.9947019834916413,-0.06955153775857342,-0.06986595218913243, + 45600,-0.06021118464641079,-0.9696776358335197,-0.06530529545175069,-0.22767326192100695, + 45900,-0.08678332293770494,-0.9191344879761394,-0.05858468203367783,-0.37977398924063116, + 46200,-0.106702343162455,-0.844716581246295,-0.0484591972852643,-0.522226209156225, + 46500,-0.11873333683766307,-0.7487344265053985,-0.03388284631569912,-0.6512688431167063, + 46800,-0.12264874593808602,-0.6339961523630131,-0.014065839726468602,-0.7634188339709072, + 47100,-0.11911765548824894,-0.5036558868125158,0.011181750701142294,-0.8555797451327016, + 47400,-0.10943721534421805,-0.3611022951445421,0.041211343690350614,-0.9251649871727113, + 47700,-0.09516895488244563,-0.20989028121841707,0.07445940332991763,-0.9702292188613933, + 4.8e4,-0.07775797944101387,-0.05370334538002518,0.10856284237150596,-0.9895876699840516, + 48300,-0.05821954443568728,0.10367295908932997,0.14065697580549397,-0.9828926784530527, + 48600,-0.03696779308561079,0.2583839864914719,0.1677995616454469,-0.9506389456101355, + 48900,-0.013829082192318902,0.40655521483785106,0.18742566011733403,-0.8940879351067481, + 49200,0.011766469629828503,0.5443605187034081,0.19772816564216306,-0.8151298966307102, + 49500,0.0404681688584498,0.668110343768653,0.197884106103537,-0.716123436573738, + 49800,0.072642861517975,0.774362549135704,0.188092366046724,-0.599755716105716, + 50100,0.10805263992733496,0.8600589934915127,0.16943214110425092,-0.4689519210749958, + 50400,0.145646306565203,0.922684688534502,0.143581508490345,-0.326840128117006, + 50700,0.18351987928551103,0.9604329416178802,0.11245468291737502,-0.17675679011627704, + 5.1e4,0.2190725140814141,0.9723445113391573,0.07783103425662202,-0.022264656952409208, + 51300,0.24934144472069902,0.9583812375032571,0.04105686780304741,0.13284796254562303, + 51600,0.2714492977380079,0.9194043022525895,0.0028918657774757686,0.2846096359389409, + 51900,0.28305977184721715,0.8570548036973584,-0.03646140428655292,0.4289578009764322, + 52200,0.282734070244193,0.773567302829683,-0.0771568014233107,0.56187356363339, + 52500,0.27011328140769203,0.6715677071704201,-0.11939129178720101,0.6795449575549931, + 52800,0.245902507745395,0.553905766174498,-0.16306284908214,0.778544068201912, + 53100,0.2116776731866049,0.42355365461192784,-0.20748444291542592,0.8560052980485927, + 53400,0.16956496856604888,0.28357656384938684,-0.25122399258846284,0.9097903931227684, + 53700,0.12185924981534202,0.13715805012430202,-0.2921162113175861,0.9386192580626082, + 5.4e4,0.07065743064502437,-0.012352619174336894,-0.32745916085828286,0.9421387574365926, + 54300,0.017584324529306205,-0.16140829338882004,-0.35436518094274805,0.9209036175906631, + 54600,-0.03632701649805481,-0.30627621889471707,-0.3701917400610061,0.8762609777928663, + 54900,-0.09057486975090669,-0.4431077309594589,-0.3729520370387279,0.8101595582366657, + 55200,-0.14497074978174004,-0.5680620596741602,-0.3616128796476281,0.7249311024776223, + 55500,-0.19932677239289606,-0.6774717830596921,-0.33622421858085105,0.6231003898289971, + 55800,-0.2531311227973501,-0.7680353262416673,-0.2978700970700001,0.5072669687528623, + 56100,-0.30529260488205107,-0.8370208121735021,-0.24846573761424903,0.38007546964326705, + 56400,-0.35402015107600915,-0.8824598917623925,-0.1904458357193061,0.2442634964950791, + 56700,-0.3968789105887388,-0.9033002360471716,-0.12640192988914895,0.10275390993689196, + 5.7e4,-0.431029083415072,-0.899478691538971,-0.0587373715064084,-0.0412545016479648, + 57300,-0.45360750736745487,-0.8718843172397598,0.010587765429587998,-0.18424403880302398, + 57600,-0.4621677766732259,-0.8222065554968467,0.08016348251273119,-0.3224145505003909, + 57900,-0.45507374578458315,-0.7527002437830542,0.14906625620422007,-0.4518069058433892, + 58200,-0.43175665569963406,-0.6659273697920651,0.21665060994349702,-0.5684975300139841, + 58500,-0.3927894088224882,-0.5645404135728114,0.2822605608113132,-0.6688344919114163, + 58800,-0.3397797036895452,-0.45115365515922623,0.3449425386448632,-0.7496831180107714, + 59100,-0.2751183749941359,-0.32831854057386184,0.40323652481192285,-0.8086514210175106, + 59400,-0.20163744459867605,-0.19858906152631406,0.4551035622930941,-0.8442662335815342, + 59700,-0.12224136774640404,-0.06463949347573873,0.4980201962743402,-0.8560693126129193, + 6e4,-0.039579871575702405,0.07061677827166321,0.5292336203792131,-0.8446055170627841, + 60300,0.0441722407862117,0.203958359062781,0.546128627794601,-0.811291145530092, + 60600,0.12738231021541496,0.33187207792144297,0.5466226599232948,-0.7581809405403628, + 60900,0.20886530616213903,0.45066372105081204,0.5294962420028801,-0.6876854107186361, + 61200,0.2876624310818339,0.5566483196767968,0.4945889875827629,-0.6023078177368659, + 61500,0.36276026638534403,0.6463912720183441,0.4428328378257481,-0.5044624766360091, + 61800,0.432829485139109,0.716968002514046,0.37613272024323,-0.396408497547241, + 62100,0.49605498648370977,0.7662092068293966,0.29712813101942886,-0.2802994390137349, + 62400,0.5501099956814691,0.7928953062538361,0.20888005331819204,-0.15831976913120802, + 62700,0.5922976605979163,0.7968598209534364,0.11453513459800707,-0.03285741838472902, + 6.3e4,0.6198444580524902,0.7789665468911392,0.017026365585340406,0.09334918061270653, + 63300,0.6302860677356856,0.7409485453340336,-0.08113024176926446,0.21714651702508792, + 63600,0.6218548080234291,0.6851355650464052,-0.17790042210681603,0.33501835033458105, + 63900,0.5937758894577129,0.6141337580983018,-0.27165080145741993,0.44325586553400487, + 64200,0.5464100975537971,0.5305371868784071,-0.36095691178193606,0.5382159478009211, + 64500,0.481226267129805,0.43673722517576,-0.444364552761103,0.616621456178356, + 64800,0.40062596061032413,0.3348631010696651,-0.5201779852088032,0.6758553150868702, + 65100,0.307664355754868,0.226850085596114,-0.586338995026596,0.714204638583494, + 65400,0.2057192181253531,0.11460095392035607,-0.6404395864256344,0.7310152945003274, + 65700,0.09816273699152363,0.00018445280951332604,-0.6798810359979082,0.7267226568188893, + 6.6e4,-0.011907923475716897,-0.11399553010404997,-0.7021547878739269,0.7027388379337759, + 66300,-0.121831654489443,-0.225119584851284,-0.705184011843247,0.661206268815877, + 66600,-0.22940702591755782,-0.3299956451145088,-0.6876441356581305,0.6046658857254166, + 66900,-0.332783988556138,-0.425224726723986,-0.649188583463606,0.535717212569931, + 67200,-0.4302654353976429,-0.5074592274099279,-0.5905384352661269,0.4567506366629719, + 67500,-0.5200839432806192,-0.5737081258124063,-0.5134332036760212,0.3698080903407541, + 67800,-0.6002234141305132,-0.6216406793491032,-0.42046671986838013,0.2765907742333811, + 68100,-0.6683436320901986,-0.6498415015361416,-0.31484310155893086,0.17859628698964192, + 68400,-0.7218429346454092,-0.6579704978401492,-0.20009067847986403,0.07733900736341122, + 68700,-0.7580621231145412,-0.6467858613826543,-0.07977523285715282,-0.025412186784279808, + 6.9e4,-0.7745940759656997,-0.6180073435687139,0.042741415064368196,-0.12745239194413296, + 69300,-0.7696287484742997,-0.5740344253353199,0.16445347470250699,-0.22607769175684694, + 69600,-0.742248933819147,-0.517578608269526,0.282747009207622,-0.318171389804717, + 69900,-0.6926080977066918,-0.4512984857828239,0.3953237626629969,-0.4004282986943089, + 70200,-0.6219598567108189,-0.3775242528933459,0.5000502201263479,-0.4696713238735889, + 70500,-0.532548797350159,-0.298127762642598,0.594789807247584,-0.52319852902794, + 70800,-0.4273977706619069,-0.21455216751109996,0.6772786785587709,-0.5590993691815489, + 71100,-0.31003512961981594,-0.12797702590280097,0.7450929857468689,-0.5764863761039929, + 71400,-0.18420466324068302,-0.03956606750035801,0.7957327027891482,-0.5755976320788861, + 71700,-0.05359939179982419,0.049273807420240685,0.8268167228932488,-0.5577394587485008, + 7.2e4,0.0783410699105954,0.136698678323051,0.836350529704929,-0.525065652630487, + 72300,0.208537130508877,0.220360465180112,0.82300239469005,-0.48022972515159, + 72600,0.3342662971450888,0.29749365059515886,0.7863202472568347,-0.42598596127387484, + 72900,0.453065655864117,0.365141125559097,0.726842800059066,-0.364832857489769, + 73200,0.5625819921033653,0.4204721033600342,0.6460930470833414,-0.29877832412603317, + 73212.755328,0.5669939286816361,0.42251645868364207,0.6422229246000671,-0.29588417006953005, + 73500,0.6604254813626359,0.46113423495752087,0.5464708410763299,-0.22926626609774295, + 73800,0.744091198479039,0.485559171277932,0.431073529840053,-0.157277434507154, + 74100,0.8109629139217387,0.4932128042180208,0.30348133613183786,-0.08354256770409686, + 74400,0.8584564263719845,0.4846773482643177,0.1675181763122329,-0.008837007702530354, + 74700,0.884248797262134,0.461575403297667,0.027030302639963,0.0657386822978493, + 7.5e4,0.8865608476458315,0.42631668293953184,-0.11429410695373295,0.13856697436470294, + 75300,0.864419857556672,0.381715289737364,-0.253035212158867,0.207472718327352, + 75600,0.8178367922431093,0.3305650091481452,-0.38606775268709015,0.2698544910049261, + 75900,0.7478610192709619,0.27527461622357097,-0.5105132440637359,0.3229613121621289, + 76200,0.6565131428361372,0.21764420516288105,-0.6236514983128021,0.36425307396730705, + 76500,0.546624593670408,0.158820218644687,-0.722837344716153,0.391770168374286, + 76800,0.4216226990150949,0.09942160876596808,-0.8054664234803948,0.4044421887381619, + 77100,0.28529663999344196,0.03979416385983299,-0.8690197749875818,0.4022771214121949, + 77400,0.141572650290661,-0.0196745644793018,-0.9111941494,0.386387523480558, + 77700,-0.005677584185735727,-0.07826154067345656,-0.9300973077750726,0.35883407636231085, + 7.8e4,-0.15277362837259098,-0.13471618946980599,-0.9244627459745598,0.32230482167318797, + 78300,-0.29629216648631895,-0.18722699072552898,-0.8938279902066448,0.2796936358694209, + 78600,-0.43306006812108006,-0.23356112571252202,-0.8386325377975901,0.23367422729526402, + 78900,-0.5600928622469489,-0.27134571307257394,-0.7602201133464018,0.18636756402534396, + 79200,-0.6745148299776936,-0.2984278973198809,-0.6607587449061507,0.13917045401753195, + 79500,-0.7735044875430952,-0.31324056238568404,-0.5431070357087021,0.09276802030172142, + 79800,-0.854303528156998,-0.315103903767437,-0.410653900815267,0.0473115773805121, + 80100,-0.9143101176585895,-0.3044018158805231,-0.26715011438993813,0.002712861444940661, + 80400,-0.9512520844451003,-0.28258604524146685,-0.11654289572437991,-0.041016488511518574, + 80700,-0.9634072440661455,-0.2519881852053059,0.037176101940396486,-0.08346480720835676, + 8.1e4,-0.9498166289887418,-0.21546383681076095,0.19009604688535295,-0.12364141410470297, + 81300,-0.9104335717849658,-0.17594330707766598,0.33847190577209196,-0.15997322608627998, + 81600,-0.8461718173259047,-0.13599514244755997,0.4787635519131509,-0.19048369524331293, + 81900,-0.7588493876044478,-0.09750437701565508,0.6076381956604929,-0.21311106627672893, + 82200,-0.6510539230984973,-0.06152997911024004,0.7219596324483755,-0.22609099938687513, + 82500,-0.525967361882891,-0.0283562585790738,0.818794146997824,-0.228320830577183, + 82800,-0.38718343345053813,0.0022897786091653502,0.8954583824418912,-0.21963158035657204, + 83100,-0.238539254876924,0.0309129580138686,0.94962027600479,-0.200909791474137, + 83400,-0.08397131160139938,0.057893720148079086,0.9794434939833527,-0.17403326719061196, + 83700,0.07259928545320751,0.08318764786997251,0.9837445918784571,-0.14161827898768303, + 8.4e4,0.2273482827922059,0.10615883377605796,0.9621200448529635,-0.10662119683662295, + 84300,0.3765939394532881,0.12559351260496301,0.9150062312516662,-0.07188095108735322, + 84600,0.516810728663756,0.13989211911132,0.843658766172961,-0.0397083367581567, + 84900,0.6446259216517329,0.14739177708693998,0.7500654908534408,-0.011612261304097399, + 85019.62118399999,0.691423819083271,0.148169042503059,0.707089891023206,-0.00170975460861611, + 85200,0.7568368898141408,0.14674585487242997,0.6368080832915709,0.011791579569058797, + 85500,0.8503941081217007,0.13726761075097194,0.5069978006575427,0.030670735873659188, + 85800,0.9225783150135884,0.11919887448068606,0.3640722543520112,0.045741388263477324, + 86100,0.9710861600885923,0.09379557357744943,0.21175557803609504,0.057910579622979914, + 86400,0.9942220573758114,0.06323349479713833,0.05395779130633372,0.06791599605756453 + ] + } + }, + { + "id":"Satellite/ISS", + "name":"ISS", + "availability":"2012-03-15T10:00:00Z/2012-03-16T10:00:00Z", + "description":"\r\n

The International Space Station (ISS) is a space station, or a habitable artificial satellite in low Earth orbit. It is a modular structure whose first component was launched in 1998. Now the largest artificial body in orbit, it can often be seen at the appropriate time with the naked eye from Earth. The ISS consists of pressurised modules, external trusses, solar arrays and other components. ISS components have been launched by American Space Shuttles as well as Russian Proton and Soyuz rockets. In 1984 the ESA was invited to participate in Space Station Freedom. In 1993, after the USSR ended, the United States and Russia merged Mir-2 and Freedom together.\r\nThe ISS serves as a microgravity and space environment research laboratory in which crew members conduct experiments in biology, human biology, physics, astronomy, meteorology and other fields. The station is suited for the testing of spacecraft systems and equipment required for missions to the Moon and Mars.

\r\n\r\n

Since the arrival of Expedition 1 on 2 November 2000, the station has been continuously occupied for 13 years and 86 days, the longest continuous human presence in space. (In 2010, the station surpassed the previous record of almost 10 years (or 3,634 days) held by Mir.) The station is serviced by a variety of visiting spacecraft: Soyuz, Progress, the Automated Transfer Vehicle, the H-II Transfer Vehicle, Dragon, and Cygnus. It has been visited by astronauts and cosmonauts from 15 different nations.

\r\n\r\n

After the U.S. Space Shuttle program ended in 2011, Soyuz rockets became the only provider of transport for astronauts at the International Space Station.\r\nThe ISS programme is a joint project among five participating space agencies: NASA, Roskosmos, JAXA, ESA, and CSA. The ownership and use of the space station is established by intergovernmental treaties and agreements. The station is divided into two sections, the Russian Orbital Segment (ROS) and the United States Orbital Segment (USOS), which is shared by many nations. The ISS maintains an orbit with an altitude of between 330 km (205 mi) and 435 km (270 mi) by means of reboost manoeuvres using the engines of the Zvezda module or visiting spacecraft. It completes 15.410 orbits per day. The ISS is funded until 2024, and may operate until 2028. The Russian Federal Space Agency, Roskosmos (RKA) has proposed using the ISS to commission modules for a new space station, called OPSEK, before the remainder of the ISS is deorbited. ISS is the ninth space station to be inhabited by crews, following the Soviet and later Russian Salyut, Almaz, and Mir stations, and Skylab from the US.

", + "billboard":{ + "eyeOffset":{ + "cartesian":[ + 0,0,0 + ] + }, + "horizontalOrigin":"CENTER", + "image":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADJSURBVDhPnZHRDcMgEEMZjVEYpaNklIzSEfLfD4qNnXAJSFWfhO7w2Zc0Tf9QG2rXrEzSUeZLOGm47WoH95x3Hl3jEgilvDgsOQUTqsNl68ezEwn1vae6lceSEEYvvWNT/Rxc4CXQNGadho1NXoJ+9iaqc2xi2xbt23PJCDIB6TQjOC6Bho/sDy3fBQT8PrVhibU7yBFcEPaRxOoeTwbwByCOYf9VGp1BYI1BA+EeHhmfzKbBoJEQwn1yzUZtyspIQUha85MpkNIXB7GizqDEECsAAAAASUVORK5CYII=", + "pixelOffset":{ + "cartesian2":[ + 0,0 + ] + }, + "scale":1.5, + "show":true, + "verticalOrigin":"CENTER" + }, + "label":{ + "fillColor":{ + "rgba":[ + 255,0,255,255 + ] + }, + "font":"11pt Lucida Console", + "horizontalOrigin":"LEFT", + "outlineColor":{ + "rgba":[ + 0,0,0,255 + ] + }, + "outlineWidth":2, + "pixelOffset":{ + "cartesian2":[ + 12,0 + ] + }, + "show":true, + "style":"FILL_AND_OUTLINE", + "text":"ISS", + "verticalOrigin":"CENTER" + }, + "path":{ + "show":[ + { + "interval":"2012-03-15T10:00:00Z/2012-03-16T10:00:00Z", + "boolean":true + } + ], + "width":1, + "material":{ + "solidColor":{ + "color":{ + "rgba":[ + 255,0,255,255 + ] + } + } + }, + "resolution":120, + "leadTime":[ + { + "interval":"2012-03-15T10:00:00Z/2012-03-15T10:44:56.1031157730031Z", + "epoch":"2012-03-15T10:00:00Z", + "number":[ + 0,5537.546684141998, + 5537.546684141998,0 + ] + }, + { + "interval":"2012-03-15T10:44:56.1031157730031Z/2012-03-15T12:17:13.6497999150015Z", + "epoch":"2012-03-15T10:44:56.1031157730031Z", + "number":[ + 0,5537.546684141998, + 5537.546684141998,0 + ] + }, + { + "interval":"2012-03-15T12:17:13.6497999150015Z/2012-03-15T13:49:31.2088613029919Z", + "epoch":"2012-03-15T12:17:13.6497999150015Z", + "number":[ + 0,5537.55906138799, + 5537.55906138799,0 + ] + }, + { + "interval":"2012-03-15T13:49:31.2088613029919Z/2012-03-15T15:21:48.776005533Z", + "epoch":"2012-03-15T13:49:31.2088613029919Z", + "number":[ + 0,5537.567144230008, + 5537.567144230008,0 + ] + }, + { + "interval":"2012-03-15T15:21:48.776005533Z/2012-03-15T16:54:06.33371177400113Z", + "epoch":"2012-03-15T15:21:48.776005533Z", + "number":[ + 0,5537.557706241001, + 5537.557706241001,0 + ] + }, + { + "interval":"2012-03-15T16:54:06.33371177400113Z/2012-03-15T18:26:23.8819795500021Z", + "epoch":"2012-03-15T16:54:06.33371177400113Z", + "number":[ + 0,5537.548267776001, + 5537.548267776001,0 + ] + }, + { + "interval":"2012-03-15T18:26:23.8819795500021Z/2012-03-15T19:58:41.3312553199939Z", + "epoch":"2012-03-15T18:26:23.8819795500021Z", + "number":[ + 0,5537.449275769992, + 5537.449275769992,0 + ] + }, + { + "interval":"2012-03-15T19:58:41.3312553199939Z/2012-03-15T21:30:58.8527762320009Z", + "epoch":"2012-03-15T19:58:41.3312553199939Z", + "number":[ + 0,5537.521520912007, + 5537.521520912007,0 + ] + }, + { + "interval":"2012-03-15T21:30:58.8527762320009Z/2012-03-15T23:03:16.3758652800025Z", + "epoch":"2012-03-15T21:30:58.8527762320009Z", + "number":[ + 0,5537.523089048002, + 5537.523089048002,0 + ] + }, + { + "interval":"2012-03-15T23:03:16.3758652800025Z/2012-03-16T00:35:33.8758586170152Z", + "epoch":"2012-03-15T23:03:16.3758652800025Z", + "number":[ + 0,5537.499993337013, + 5537.499993337013,0 + ] + }, + { + "interval":"2012-03-16T00:35:33.8758586170152Z/2012-03-16T02:07:51.3639393709891Z", + "epoch":"2012-03-16T00:35:33.8758586170152Z", + "number":[ + 0,5537.488080753974, + 5537.488080753974,0 + ] + }, + { + "interval":"2012-03-16T02:07:51.3639393709891Z/2012-03-16T03:40:08.84424079000019Z", + "epoch":"2012-03-16T02:07:51.3639393709891Z", + "number":[ + 0,5537.480301419011, + 5537.480301419011,0 + ] + }, + { + "interval":"2012-03-16T03:40:08.84424079000019Z/2012-03-16T05:12:26.2685025699902Z", + "epoch":"2012-03-16T03:40:08.84424079000019Z", + "number":[ + 0,5537.42426177999, + 5537.42426177999,0 + ] + }, + { + "interval":"2012-03-16T05:12:26.2685025699902Z/2012-03-16T06:44:43.7279617500026Z", + "epoch":"2012-03-16T05:12:26.2685025699902Z", + "number":[ + 0,5537.459459180012, + 5537.459459180012,0 + ] + }, + { + "interval":"2012-03-16T06:44:43.7279617500026Z/2012-03-16T08:17:01.17765616998076Z", + "epoch":"2012-03-16T06:44:43.7279617500026Z", + "number":[ + 0,5537.449694419978, + 5537.449694419978,0 + ] + }, + { + "interval":"2012-03-16T08:17:01.17765616998076Z/2012-03-16T08:27:42.5600708879647Z", + "epoch":"2012-03-16T08:17:01.17765616998076Z", + "number":[ + 0,5537.439929112035, + 5537.439929112035,0 + ] + }, + { + "interval":"2012-03-16T08:27:42.5600708879647Z/2012-03-16T10:00:00Z", + "epoch":"2012-03-16T08:27:42.5600708879647Z", + "number":[ + 0,5537.439929112035, + 5537.439929112035,0 + ] + } + ], + "trailTime":[ + { + "interval":"2012-03-15T10:00:00Z/2012-03-15T10:44:56.1031157730031Z", + "epoch":"2012-03-15T10:00:00Z", + "number":[ + 0,0, + 5537.546684141998,5537.546684141998 + ] + }, + { + "interval":"2012-03-15T10:44:56.1031157730031Z/2012-03-15T12:17:13.6497999150015Z", + "epoch":"2012-03-15T10:44:56.1031157730031Z", + "number":[ + 0,0, + 5537.546684141998,5537.546684141998 + ] + }, + { + "interval":"2012-03-15T12:17:13.6497999150015Z/2012-03-15T13:49:31.2088613029919Z", + "epoch":"2012-03-15T12:17:13.6497999150015Z", + "number":[ + 0,0, + 5537.55906138799,5537.55906138799 + ] + }, + { + "interval":"2012-03-15T13:49:31.2088613029919Z/2012-03-15T15:21:48.776005533Z", + "epoch":"2012-03-15T13:49:31.2088613029919Z", + "number":[ + 0,0, + 5537.567144230008,5537.567144230008 + ] + }, + { + "interval":"2012-03-15T15:21:48.776005533Z/2012-03-15T16:54:06.33371177400113Z", + "epoch":"2012-03-15T15:21:48.776005533Z", + "number":[ + 0,0, + 5537.557706241001,5537.557706241001 + ] + }, + { + "interval":"2012-03-15T16:54:06.33371177400113Z/2012-03-15T18:26:23.8819795500021Z", + "epoch":"2012-03-15T16:54:06.33371177400113Z", + "number":[ + 0,0, + 5537.548267776001,5537.548267776001 + ] + }, + { + "interval":"2012-03-15T18:26:23.8819795500021Z/2012-03-15T19:58:41.3312553199939Z", + "epoch":"2012-03-15T18:26:23.8819795500021Z", + "number":[ + 0,0, + 5537.449275769992,5537.449275769992 + ] + }, + { + "interval":"2012-03-15T19:58:41.3312553199939Z/2012-03-15T21:30:58.8527762320009Z", + "epoch":"2012-03-15T19:58:41.3312553199939Z", + "number":[ + 0,0, + 5537.521520912007,5537.521520912007 + ] + }, + { + "interval":"2012-03-15T21:30:58.8527762320009Z/2012-03-15T23:03:16.3758652800025Z", + "epoch":"2012-03-15T21:30:58.8527762320009Z", + "number":[ + 0,0, + 5537.523089048002,5537.523089048002 + ] + }, + { + "interval":"2012-03-15T23:03:16.3758652800025Z/2012-03-16T00:35:33.8758586170152Z", + "epoch":"2012-03-15T23:03:16.3758652800025Z", + "number":[ + 0,0, + 5537.499993337013,5537.499993337013 + ] + }, + { + "interval":"2012-03-16T00:35:33.8758586170152Z/2012-03-16T02:07:51.3639393709891Z", + "epoch":"2012-03-16T00:35:33.8758586170152Z", + "number":[ + 0,0, + 5537.488080753974,5537.488080753974 + ] + }, + { + "interval":"2012-03-16T02:07:51.3639393709891Z/2012-03-16T03:40:08.84424079000019Z", + "epoch":"2012-03-16T02:07:51.3639393709891Z", + "number":[ + 0,0, + 5537.480301419011,5537.480301419011 + ] + }, + { + "interval":"2012-03-16T03:40:08.84424079000019Z/2012-03-16T05:12:26.2685025699902Z", + "epoch":"2012-03-16T03:40:08.84424079000019Z", + "number":[ + 0,0, + 5537.42426177999,5537.42426177999 + ] + }, + { + "interval":"2012-03-16T05:12:26.2685025699902Z/2012-03-16T06:44:43.7279617500026Z", + "epoch":"2012-03-16T05:12:26.2685025699902Z", + "number":[ + 0,0, + 5537.459459180012,5537.459459180012 + ] + }, + { + "interval":"2012-03-16T06:44:43.7279617500026Z/2012-03-16T08:17:01.17765616998076Z", + "epoch":"2012-03-16T06:44:43.7279617500026Z", + "number":[ + 0,0, + 5537.449694419978,5537.449694419978 + ] + }, + { + "interval":"2012-03-16T08:17:01.17765616998076Z/2012-03-16T08:27:42.5600708879647Z", + "epoch":"2012-03-16T08:17:01.17765616998076Z", + "number":[ + 0,0, + 5537.439929112035,5537.439929112035 + ] + }, + { + "interval":"2012-03-16T08:27:42.5600708879647Z/2012-03-16T10:00:00Z", + "epoch":"2012-03-16T08:27:42.5600708879647Z", + "number":[ + 0,0, + 5537.439929112035,5537.439929112035 + ] + } + ] + }, + "position":{ + "interpolationAlgorithm":"LAGRANGE", + "interpolationDegree":5, + "referenceFrame":"INERTIAL", + "epoch":"2012-03-15T10:00:00Z", + "cartesian":[ + 0,3849424.41859634,5535808.90838488,-469609.955032837, + 300,2403397.25163735,5923118.10887596,-2208538.08732886, + 600,681059.355577534,5629683.78882362,-3693007.85438243, + 900,-1119416.00777462,4691252.20079689,-4753268.77825646, + 1200,-2792163.54303408,3217045.3927905,-5269236.9636378, + 1500,-4146946.26695958,1376355.11151994,-5183333.77414211, + 1800,-5030073.80001301,-620907.843850796,-4506185.20959366, + 2100,-5341141.73000766,-2547536.97322381,-3315102.27876197, + 2400,-5044213.41576254,-4184126.46337638,-1745607.20300478, + 2700,-4172245.63939562,-5343667.09365887,23409.7618660682, + 3e3,-2823903.53321619,-5893019.5858321,1789694.91494771, + 3300,-1152706.81297821,-5768551.08921845,3350719.50403451, + 3494.253024000005,12647.226754864,-5331683.91916414,4165940.89199221, + 3494.253024000005,13029.0479309608,-5331460.99207657,4166115.22224224, + 3600,650789.93624267,-4983501.3435969,4527207.45547157, + 3900,2379305.75017934,-3627537.39864893,5183179.25792976, + 4200,3834777.21946002,-1855400.2986254,5242729.69023172, + 4500,4849528.23059951,129890.673107136,4698090.47721749, + 4800,5306015.3961238,2100167.56572551,3611124.18995888, + 5100,5150830.60792791,3828302.31094784,2106711.608498, + 5400,4401482.39688381,5114829.18540188,358590.197694369, + 5700,3144674.02408614,5811702.89808911,-1431035.79418686, + 6e3,1525939.53461617,5839838.69437877,-3055607.33495769, + 6300,-267980.182214884,5197915.25437212,-4328682.71628229, + 6600,-2031365.29937242,3961512.87223799,-5105391.73521875, + 6900,-3563213.2763466,2273344.0489862,-5298337.5762072, + 7200,-4689612.83519006,326428.771682565,-4886617.47645177, + 7500,-5282712.94306229,-1657607.93044914,-3917600.03751163, + 7800,-5274754.21237056,-3453007.99287842,-2501594.33092912, + 8100,-4665873.02143146,-4854971.98019869,-799823.217818969, + 8400,-3524604.66138732,-5702910.41801334,993421.369702083, + 8700,-1980586.46565429,-5899120.57098636,2672770.77875102, + 9e3,-209990.19226424,-5420375.16312849,4045403.0406125, + 9300,1584620.06155972,-4320812.37191124,4953336.17627952, + 9600,3197482.28308901,-2725830.9633234,5291644.93513457, + 9868.731839999993,4335118.12525452,-1025094.03550352,5076957.01479314, + 9868.731839999993,4335018.61132235,-1025343.9674375,5077035.18396777, + 9900,4443038.65402268,-818152.432440461,5020664.08503109, + 10200,5177638.17976653,1183789.15226985,4170531.37630724, + 10500,5315710.52847893,3049293.68665747,2838570.0655117, + 10800,4840686.89080989,4563082.50771604,1178298.7746302, + 11100,3807316.87231764,5550567.89507109,-618291.216385065, + 11400,2335314.9664624,5898676.67948854,-2343522.82794638, + 11700,594874.272254555,5568974.91052142,-3798788.25566978, + 1.2e4,-1213816.81950858,4601359.80120866,-4817778.43040243, + 12300,-2884021.70130156,3108323.14089662,-5285177.51260314, + 12600,-4225824.88397817,1261219.92433772,-5148934.77411409, + 12900,-5086993.72268719,-729358.459941565,-4425364.0696591, + 13200,-5369574.39231539,-2636958.95100008,-3197030.8918885, + 13500,-5040837.5197212,-4244298.60262776,-1603714.85512284, + 13800,-4137366.34626142,-5367663.54403821,172926.470930942, + 14100,-2761453.19106198,-5878037.05106202,1929714.21010032, + 14400,-1069805.86733299,-5716261.93867886,3465173.51384947, + 14700,744271.014577194,-4900133.10733316,4602797.70766243, + 1.5e4,2473015.24637326,-3522493.14212366,5211428.32266375, + 15300,3917949.69750226,-1740717.11167563,5220362.57351654, + 15600,4912565.91990974,241050.018704089,4627633.87425256, + 15900,5341597.95913848,2195004.16751206,3500652.18680438, + 16200,5154794.33140615,3895859.5271688,1968954.32783606, + 16500,4373342.05884918,5147295.39445405,209470.919840542, + 16800,3087689.85826338,5805357.43044991,-1574278.60237672, + 17100,1446707.2746503,5795488.70465371,-3176466.52098232, + 17400,-360344.060295147,5120757.79185039,-4413311.43252235, + 17700,-2126304.75226283,3860467.52125647,-5144165.18525407, + 1.8e4,-3649929.17406843,2159984.45316722,-5286887.516213, + 18300,-4758250.11234169,213666.927990528,-4826271.90544669, + 18600,-5325442.2368479,-1756947.10457405,-3815218.86999272, + 18900,-5286657.22396492,-3527602.31698614,-2368820.19001619, + 19200,-4645531.30247392,-4896282.29010561,-651797.787645176, + 19500,-3474297.5624219,-5706180.57236849,1139766.03637674, + 19800,-1906047.93477498,-5863954.29703593,2800659.87029817, + 20100,-119747.901651559,-5350794.90309783,4140162.20596163, + 20400,1680229.19009525,-4224790.44649401,5004082.8628856, + 20700,3287489.2688369,-2614368.27497782,5292531.03251418, + 2.1e4,4517178.30183363,-703777.87584566,4971465.55836947, + 21300,5227207.6648385,1287704.84490596,4076902.01656837, + 21600,5334936.82012406,3130764.60758613,2711278.57345959, + 21900,4827322.58105028,4612697.10330622,1032051.24412722, + 22200,3762924.29010265,5562626.91720275,-766576.689609238, + 22500,2265064.29180843,5871878.64924006,-2476730.65325254, + 22800,506889.553310488,5506538.13251038,-3901627.75375881, + 23100,-1309445.00056429,4510579.15516774,-4878537.15731657, + 23400,-2976402.0280992,2999662.91419282,-5297002.64945855, + 23700,-4304470.18896784,1147095.47806632,-5110539.63058255, + 2.4e4,-5142960.39846207,-835961.695152393,-4341133.17124268, + 24300,-5396449.98957973,-2723906.04437019,-3076534.5475795, + 24600,-5035483.62935387,-4301650.42679393,-1460666.86361877, + 24900,-4100316.26536105,-5388815.78416569,322191.929261417, + 25200,-2696886.30431052,-5860507.97233297,2068100.06234624, + 25500,-985081.652542641,-5662006.20709315,3576793.69154155, + 25800,839459.79250942,-4815326.71580347,4674816.27413303, + 26100,2567753.67880419,-3416822.63632586,5235537.19861624, + 26400,4001341.22224643,-1626275.18017047,5193737.27589445, + 26700,4974974.97424557,351131.478884937,4553277.35585279, + 2.7e4,5375773.87995422,2288048.26911964,3387088.9792563, + 27300,5156748.02950663,3961120.50809531,1829282.25467229, + 27600,4342845.19099752,5177245.67392912,59844.5828064916, + 27900,3028302.49713101,5796600.98139539,-1716563.33131291, + 28200,1365322.17124008,5749152.32120273,-3295029.47245872, + 28500,-454356.746329476,5042305.03137088,-4494597.38838164, + 28800,-2222206.15141325,3758992.7975105,-5178961.77341337, + 29100,-3736821.45847435,2047123.49588175,-5271303.16981529, + 29400,-4826265.95502002,102278.864630022,-4762117.1900019, + 29700,-5366821.81471981,-1854191.86229829,-3709788.89699013, + 3e4,-5296624.22229263,-3599613.59225076,-2234100.76820595, + 30300,-4622868.06480404,-4934799.73886552,-503148.170247627, + 30600,-3421525.18024483,-5706740.4426866,1285341.92829746, + 30900,-1829161.56261067,-5826434.6682239,2926465.90021911, + 31200,-27531.7144464045,-5279448.44528641,4231743.23526868, + 31500,1777212.57374346,-4127757.02234495,5050893.77551254, + 31800,3378103.15780159,-2502741.69029747,5289147.73077336, + 32100,4590977.0373709,-590348.657122951,4918217.20823007, + 32400,5275639.5121592,1389896.8820238,3979865.19308717, + 32517.176831999997,5380098.10478572,2132117.88500271,3480583.59052128, + 32517.176831999997,5380206.78578959,2132704.3566004,3480214.1472366, + 32700,5352360.16433155,3210451.03192908,2581202.47700398, + 3.3e4,4811544.23241305,4660070.40187028,884306.337985066, + 33300,3715810.92574891,5572272.00925959,-914895.68071231, + 33600,2192116.57709469,5842799.91924153,-2608513.17260553, + 33900,416546.428105066,5442236.06083956,-4001762.78504694, + 34200,-1406826.18080549,4418569.09511053,-4935635.03993958, + 34500,-3069733.06488903,2890544.87472284,-5304630.80211245, + 34800,-4383150.76083569,1033328.47975256,-5067879.38290912, + 35100,-5198026.54631352,-941436.515002387,-4253036.88764016, + 35400,-5421566.35735171,-2809075.63112747,-2952995.28558899, + 35700,-5027683.84810168,-4356761.26153088,-1315734.4678681, + 3.6e4,-4060387.62186786,-5407495.6825644,471970.041286316, + 36300,-2629319.40278933,-5840532.63387188,2205562.40102441, + 36600,-897570.045732632,-5605588.3371927,3686149.6135249, + 36900,936905.974602788,-4728874.88306931,4743478.4381812, + 37200,2663958.50480543,-3310205.62360817,5255575.29216226, + 37500,4085238.3175096,-1511695.74486031,5162794.69942285, + 37800,5036875.39765442,460520.818091434,4474863.60855029, + 38100,5408500.33456106,2379649.35813026,3270213.33641568, + 38400,5156502.71194835,4024363.44431024,1687442.37949306, + 38700,4309680.88869103,5204857.1289682,-90545.1306030105, + 3.9e4,2966108.87124662,5785482.51478768,-1858122.30706417, + 39300,1281325.49457454,5700727.20671709,-3411474.84408673, + 39600,-550487.037507769,4962289.69345522,-4572632.48528492, + 39900,-2319493.54179972,3656660.3548582,-5209753.83240227, + 40200,-3824209.81967054,1934199.65577177,-5251412.62186567, + 40500,-4893820.53403162,-8376.93057750767,-4693829.85242935, + 40800,-5406813.43654749,-1949991.09651749,-3600851.87830257, + 41100,-5304406.66726997,-3669618.40613288,-2096885.03389831, + 41400,-4597445.30923729,-4970957.56266923,-353291.724895338, + 41700,-3365711.80596329,-5704831.98690261,1430694.68133986, + 4.2e4,-1749287.19006089,-5786596.35823912,3050635.62042371, + 42300,67282.5104014716,-5206179.73592197,4320450.99966826, + 42600,1876105.53012849,-4029407.41454288,5093914.31300927, + 42900,3469716.53426206,-2390553.98308505,5281488.26936128, + 43200,4664751.44925217,-477181.808910395,4860703.76300645, + 43500,5323035.79623726,1491029.49886786,3879079.76320608, + 43589.759328,5402440.40004548,2056528.00645199,3491627.46684942, + 43589.759328,5402442.54264444,2056738.81686484,3491501.88840014, + 43800,5367840.30507371,3287565.24128733,2449044.98994153, + 44100,4793466.89948304,4704669.22750442,735845.196386836, + 44400,3666300.68694606,5579254.94649742,-1062487.36725239, + 44700,2116947.48184928,5811477.8903838,-2738215.22897224, + 4.5e4,324410.396313805,5376371.6825418,-4098714.1870081, + 45300,-1505371.25160745,4325863.56124646,-4988825.53074582, + 45600,-3163474.68055926,2781685.31685159,-5308091.27375613, + 45900,-4461454.46450387,920751.44587914,-5021285.15291004, + 46200,-5251987.83068379,-1044921.21948849,-4161708.55588854, + 46500,-5444995.16922548,-2891682.7271746,-2827313.90974466, + 46800,-5017826.0163413,-4409036.76825887,-1170010.47688321, + 47100,-4018281.61998877,-5423402.43984196,621088.759416269, + 47400,-2559714.28446385,-5818173.19291614,2340985.6034906, + 47700,-808395.704630906,-5547450.9983423,3792317.64641595, + 4.8e4,1035447.9983595,-4641558.91633002,4808162.62725822, + 48300,2760561.62652593,-3203667.07367331,5271287.27659829, + 48600,4168777.2937882,-1398117.80362934,5127654.23537955, + 48900,5097682.07585487,568104.375379669,4392842.08078676, + 49200,5439501.08861285,2468843.96703679,3150719.8955131, + 49500,5154080.72531675,4084868.12117622,1544267.87631319, + 49800,4274129.47939295,5229707.06682862,-240836.86870874, + 50100,2901588.51435516,5771894.9813108,-1998167.08917933, + 50400,1195328.12796693,5650411.99973262,-3525172.89029405, + 50700,-648065.863983004,4881185.95588798,-4647015.40064705, + 5.1e4,-2417518.44559387,3554173.1319714,-5236422.66927976, + 51300,-3911551.304888,1822079.84885746,-5227416.31542318, + 51600,-4960563.96410311,-117355.616655456,-4621941.65755199, + 51900,-5445340.36795493,-2043429.44720356,-3489249.35182206, + 52200,-5310257.97873623,-3736852.07785834,-1958261.33112716, + 52500,-4569863.84912929,-5004260.18152329,-203458.693372594, + 52800,-3307771.80391093,-5700321.82377175,1574588.75070263, + 53100,-1667567.39473325,-5744714.10305482,3172075.82670534, + 53400,163448.429505371,-5131656.78603713,4405467.10195982, + 53700,1975699.17700698,-3930727.12204608,5132693.71663132, + 5.4e4,3561290.10873786,-2278985.1022354,5269506.88509915, + 54148.15468800001,4203184.07952978,-1353489.53750881,5111445.70468465, + 54148.15468800001,4203191.30262867,-1353475.88589412,5111442.33629379, + 54300,4737737.78046698,-365490.542263622,4799257.56458761, + 54600,5368954.89050152,1589986.17944729,3775186.07047606, + 54900,5381374.56347384,3362167.42325737,2314799.09999447, + 55200,4773053.93352827,4746514.12880929,586645.025608239, + 55500,3614326.93479997,5583552.91481526,-1209386.38537695, + 55800,2039459.06568354,5777834.14557876,-2865875.35129307, + 56100,230353.889530254,5308792.26549321,-4192506.0039312, + 56400,-1605224.578801,4232218.88985275,-5038088.76435784, + 56700,-3257760.70626935,2672746.16024074,-5307286.16717191, + 5.7e4,-4539466.63964283,808949.683395425,-4970553.24732222, + 57300,-5304842.68965046,-1146866.91911664,-4066828.54766123, + 57600,-5466621.8198026,-2972159.5559343,-2699069.09611406, + 57900,-5005678.8581936,-4458833.52479963,-1023009.64607344, + 58200,-3973672.67017912,-5436774.1321751,770044.593415393, + 58500,-2487694.32678156,-5793531.7276185,2474823.52441331, + 58800,-717183.268044322,-5487571.46315032,3895667.50970416, + 59100,1135412.94462176,-4553265.36963682,4869134.29479731, + 59400,2857811.44872052,-3097047.54964928,5282836.82355544, + 59700,4252118.60571663,-1285377.68188911,5088396.78826617, + 6e4,5157476.03077594,674020.929380886,4307236.20275876, + 60300,5468795.1088992,2555731.77859298,3028596.47954634, + 60600,5149455.18246455,4142690.87191001,1399724.51609549, + 60900,4236126.95591789,5251805.34781038,-391079.885552966, + 61200,2834641.93086904,5755792.45957505,-2136754.611779, + 61500,1107196.05353689,5598088.16121645,-3636173.0202672, + 61800,-747252.788966703,4798784.15922154,-4717761.53669296, + 62100,-2516443.11881422,3451220.61614222,-5258915.3231165, + 62400,-3998974.76917799,1710361.73025264,-5199160.16474836, + 62700,-5026550.13601721,-225119.029858565,-4546178.07138944, + 6.3e4,-5482346.83102871,-2134976.21105312,-3374589.79519268, + 63300,-5313997.06814827,-3801730.99838127,-1817750.19592382, + 63600,-4539827.85846879,-5035017.86954231,-53130.9301591509, + 63900,-3247330.33885153,-5693382.22989429,1717523.54805407, + 64200,-1583599.98060968,-5700819.30944626,3291216.20615931, + 64500,261342.090524228,-5055794.75166179,4487118.85260636, + 64800,2076301.68267285,-3831557.43126966,5167447.81526317, + 65100,3653042.56435939,-2167848.84674734,5253319.62533565, + 65400,4810049.038801,-255142.390547666,4733934.55166336, + 65700,5413446.99440722,1686864.70430337,3668199.77871656, + 6.6e4,5392862.16834428,3434394.71396246,2178475.13297448, + 66300,4750196.32199498,4785751.66545322,436744.445152622, + 66600,3559796.52739365,5585316.7296347,-1355528.90652471, + 66900,1959597.20578925,5742025.63690215,-2991415.6046114, + 67200,134376.536240933,5239666.35451623,-4283065.85614241, + 67500,-1706331.07059426,4137818.56427346,-5083382.64756209, + 67800,-3352491.96081032,2563922.03332514,-5302226.99750498, + 68100,-4617064.16569915,698116.184533239,-4915763.52743991, + 68400,-5356466.08495862,-1247101.52462867,-3968546.00809847, + 68700,-5486336.41852137,-3050374.47831377,-2568465.25001707, + 6.9e4,-4991155.60227331,-4506072.59048139,-874966.280892015, + 69106.00003200001,-4675088.88357972,-4904462.29220647,-242107.371110211, + 69106.00003200001,-4674963.43006193,-4904676.83927901,-241826.66183195, + 69300,-3926327.89260015,-5447739.6656541,918866.020571072, + 69600,-2413003.0971971,-5766684.33045901,2607080.91832284, + 69900,-623679.307706445,-5425959.09823221,3996179.06378573, + 70200,1237024.11335224,-4463927.32507537,4926346.27837966, + 70500,2955874.28281264,-2990202.28421801,5290146.7654427, + 70800,4335347.20816686,-1173262.20585629,5044913.31517192, + 71100,5216242.70405186,778530.799227653,4217907.07731278, + 71400,5496260.69417988,2640589.40930168,2903682.37616923, + 71700,5142403.54666242,4198089.22501779,1253644.11189087, + 7.2e4,4195371.21443519,5271357.13164593,-541431.220697357, + 72300,2764921.48219317,5737302.94797553,-2274011.7559695, + 72600,1016577.67885122,5543794.51304654,-3744557.13007387, + 72900,-848361.242067968,4715035.78742378,-4784900.89171273, + 73200,-2616507.19175234,3347680.53244974,-5277212.503935, + 73500,-4086622.1877807,1598870.37343154,-5166586.67068703, + 73800,-5091813.77614537,-331870.766672772,-4466459.62473102, + 74100,-5517764.43038847,-2224840.34855441,-3256788.83205051, + 74400,-5315467.41998746,-3864448.48360322,-1675276.49132697, + 74700,-4507114.79181934,-5063389.5046787,97748.034459793, + 7.5e4,-3184124.73189051,-5684120.41792651,1859531.62860591, + 75300,-1497109.88999113,-5654952.06546536,3408062.23671877, + 75600,361222.120358981,-4978554.80719553,4565381.47677838, + 75900,2178126.06100545,-3731775.80119291,5198117.73976067, + 76200,3745113.46822549,-2056944.55535702,5232830.32818793, + 76500,4881743.39892134,-145833.276595929,4664585.42136462, + 76800,5456445.04082095,1782000.8778115,3557929.78632622, + 77100,5402144.12356169,3504373.03321367,2039988.19446098, + 77400,4724667.04921966,4822486.7484427,286049.40318698, + 77700,3502425.90876414,5584603.2025813,-1501008.43043863, + 7.8e4,1877042.16532639,5704035.19530578,-3114913.22994025, + 78300,36152.4433097746,5168885.3009109,-4370435.33319926, + 78600,-1808985.8806344,4042459.56852687,-5124695.32426894, + 78900,-3447895.4230698,2454929.90464636,-5292838.48153945, + 79200,-4694376.04083089,587917.246969181,-4856779.60954812, + 79500,-5406874.18834785,-1345971.57419841,-3866678.85024478, + 79800,-5504046.34498431,-3126649.11627623,-2435299.58352432, + 80100,-4974076.82345692,-4551020.79550854,-725685.023696793, + 80400,-3876520.14799315,-5456025.84259603,1066926.93178847, + 80700,-2336019.11244069,-5737550.10811308,2737230.19518184, + 8.1e4,-528308.767769235,-5362697.09411111,4093467.41014218, + 81300,1339863.00009893,-4373750.04288914,4979577.30146014, + 81600,3054380.83966471,-2883413.7415267,5293162.12728486, + 81900,4418177.53111484,-1062089.46683839,4997306.49647254, + 82200,5273810.55541913,881318.380504194,4125099.72024297, + 82500,5521868.59835782,2723142.07392809,2776343.07581227, + 82800,5133062.42720615,4250871.17037253,1106480.61319088, + 83100,4152176.15897934,5288297.93859615,-691394.68983223, + 83400,2692908.6058646,5716530.34787588,-2409460.98637571, + 83700,924084.940881169,5487829.34165832,-3849936.15782554, + 8.4e4,-950712.293476668,4630433.68817126,-4848200.08467262, + 84300,-2717045.86353999,3244208.36976243,-5291286.81070567, + 84600,-4173926.65526437,1488361.55584656,-5129895.26438968, + 84900,-5155955.37745777,-436837.457277556,-4383197.33262401, + 85200,-5551402.34469437,-2312317.78907392,-3136419.38414599, + 85500,-5314693.03520338,-3924443.17760687,-1531500.88583952, + 85800,-4471936.40864901,-5089002.50775752,248512.950876881, + 86100,-3118503.91090586,-5672365.37553485,2000019.0666746, + 86400,-1408522.57228522,-5607125.68800775,3522147.91298588 + ] + } + }, + { + "id":"Satellite/Molniya_1-92", + "name":"Molniya_1-92", + "availability":"2012-03-15T10:00:00Z/2012-03-16T10:00:00Z", + "description":"\r\n

Molniya, meaning \"lightning\", was a military communications satellite system used by the Soviet Union. The satellites were placed into highly eccentric elliptical orbits known as Molniya orbits, characterised by an inclination of +63.4 degrees and a period of around 12 hours. Such orbits allowed them to remain visible to sites in polar regions for extended periods, unlike geostationary satellites in geosynchronous orbits with a 24-hour orbital period.\r\nThe Molniya program was authorized by a government decree in late 1960. After some initial failures in 1964, the first operational satellite, Molniya 1-01, was successfully launched on April 23, 1965.\r\nSince October 1967, Molniya satellites have been used by Russia to broadcast their national Orbita television network.

", + "billboard":{ + "eyeOffset":{ + "cartesian":[ + 0,0,0 + ] + }, + "horizontalOrigin":"CENTER", + "image":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADJSURBVDhPnZHRDcMgEEMZjVEYpaNklIzSEfLfD4qNnXAJSFWfhO7w2Zc0Tf9QG2rXrEzSUeZLOGm47WoH95x3Hl3jEgilvDgsOQUTqsNl68ezEwn1vae6lceSEEYvvWNT/Rxc4CXQNGadho1NXoJ+9iaqc2xi2xbt23PJCDIB6TQjOC6Bho/sDy3fBQT8PrVhibU7yBFcEPaRxOoeTwbwByCOYf9VGp1BYI1BA+EeHhmfzKbBoJEQwn1yzUZtyspIQUha85MpkNIXB7GizqDEECsAAAAASUVORK5CYII=", + "pixelOffset":{ + "cartesian2":[ + 0,0 + ] + }, + "scale":1, + "show":true, + "verticalOrigin":"CENTER" + }, + "label":{ + "fillColor":{ + "rgba":[ + 255,255,0,255 + ] + }, + "font":"11pt Lucida Console", + "horizontalOrigin":"LEFT", + "outlineColor":{ + "rgba":[ + 0,0,0,255 + ] + }, + "outlineWidth":2, + "pixelOffset":{ + "cartesian2":[ + 6,-4 + ] + }, + "show":true, + "style":"FILL_AND_OUTLINE", + "text":"Molniya 1-92", + "verticalOrigin":"CENTER" + }, + "path":{ + "show":[ + { + "interval":"2012-03-15T10:00:00Z/2012-03-16T10:00:00Z", + "boolean":true + } + ], + "width":1, + "material":{ + "solidColor":{ + "color":{ + "rgba":[ + 255,255,0,255 + ] + } + } + }, + "resolution":120, + "leadTime":[ + { + "interval":"2012-03-15T10:00:00Z/2012-03-15T13:11:42.0607217289944Z", + "epoch":"2012-03-15T10:00:00Z", + "number":[ + 0,43058.246637085, + 43058.246637085,0 + ] + }, + { + "interval":"2012-03-15T13:11:42.0607217289944Z/2012-03-15T22:02:21.7533629149984Z", + "epoch":"2012-03-15T13:11:42.0607217289944Z", + "number":[ + 0,43058.246637085, + 43058.246637085,0 + ] + }, + { + "interval":"2012-03-15T22:02:21.7533629149984Z/2012-03-16T10:00:00Z", + "epoch":"2012-03-15T22:02:21.7533629149984Z", + "number":[ + 0,43058.246637085, + 43058.246637085,0 + ] + } + ], + "trailTime":[ + { + "interval":"2012-03-15T10:00:00Z/2012-03-15T13:11:42.0607217289944Z", + "epoch":"2012-03-15T10:00:00Z", + "number":[ + 0,0, + 43058.246637085,43058.246637085 + ] + }, + { + "interval":"2012-03-15T13:11:42.0607217289944Z/2012-03-15T22:02:21.7533629149984Z", + "epoch":"2012-03-15T13:11:42.0607217289944Z", + "number":[ + 0,0, + 43058.246637085,43058.246637085 + ] + }, + { + "interval":"2012-03-15T22:02:21.7533629149984Z/2012-03-16T10:00:00Z", + "epoch":"2012-03-15T22:02:21.7533629149984Z", + "number":[ + 0,0, + 43058.246637085,43058.246637085 + ] + } + ] + }, + "position":{ + "interpolationAlgorithm":"LAGRANGE", + "interpolationDegree":5, + "referenceFrame":"INERTIAL", + "epoch":"2012-03-15T10:00:00Z", + "cartesian":[ + 0,-14516939.0194339,-3368384.25750661,30226792.3721741, + 300,-14236743.3163964,-3919702.51855093,29582289.9003049, + 600,-13942424.1139376,-4467129.26191977,28908421.5359637, + 900,-13633412.071181,-5009844.58444676,28204070.1821176, + 1200,-13309088.3113149,-5546928.47070653,27468024.4389541, + 1500,-12968778.4476262,-6077343.65350594,26698967.7350563, + 1800,-12611745.6836145,-6599914.79272114,25895465.8760734, + 2100,-12237182.8194807,-7113302.99915085,25055952.7547651, + 2400,-11844202.9658249,-7615974.42187385,24178713.9307715, + 2700,-11431828.7299525,-8106161.19481207,23261867.7559608, + 3e3,-10998979.6024694,-8581812.45155408,22303343.7002154, + 3300,-10544457.2361802,-9040532.29373724,21300857.5394701, + 3600,-10066928.2853696,-9479500.42688149,20251883.1340717, + 3900,-9564904.4814628,-9895369.48981322,19153620.710254, + 4200,-9036719.70167946,-10284130.6387638,18002961.9727034, + 4500,-8480504.02264426,-10640935.296791,16796453.235133, + 4800,-7894155.30594742,-10959855.4991516,15530259.4698995, + 5100,-7275310.07195698,-11233556.9341146,14200135.5531068, + 5400,-6621317.9702169,-11452845.9838385,12801417.6282227, + 5700,-5929229.49169176,-11606032.3257967,11329060.7126073, + 6e3,-5195817.77253213,-11678018.39099,9777775.27268262, + 6277.083840000007,-4478773.76706345,-11655313.3067449,8270368.89067447, + 6277.083840000007,-4478268.10037373,-11655002.3016453,8271558.71323976, + 6300,-4417173.31072823,-11648675.8612253,8143561.65290543, + 6600,-3591004.98727468,-11492221.1238618,6419732.13332833, + 6900,-2714264.1917756,-11172416.9438645,4605652.12407148, + 7200,-1786645.17780594,-10640169.9366135,2705556.66766391, + 7500,-813337.813538265,-9828700.0150912,737007.599390244, + 7800,188233.353231275,-8651270.27692801,-1254693.55743904, + 8100,1176366.76804917,-7011465.10677307,-3172174.22196188, + 8400,2071790.603338,-4849058.62389255,-4842560.10950354, + 8700,2766815.90671727,-2229368.76461533,-6045617.77768703, + 9e3,3182272.38796828,617899.647099722,-6637475.77907852, + 9300,3320004.27075914,3421037.3354663,-6648990.56479804, + 9600,3240522.38746748,6010619.82040588,-6224373.30955022, + 9900,3012053.24570192,8331830.01273362,-5512702.26730715, + 10200,2686951.64418125,10391437.7347182,-4623528.7299006, + 10500,2300413.30988902,12217545.5783858,-3628162.45889052, + 10800,1875228.91640613,13841487.2707741,-2571476.70387795, + 11100,1426165.11041626,15291648.0730751,-1481744.62619231, + 11400,962931.345122992,16592051.0173598,-377025.495973707, + 11700,492032.237054782,17762560.2103926,730955.829581661, + 1.2e4,17906.3024188192,18819516.0067515,1834474.62131004, + 12300,-456367.847488706,19776397.3561125,2928385.28668296, + 12600,-928625.61461159,20644393.1797681,4009239.34951517, + 12900,-1397328.91928792,21432863.7997891,5074725.98115641, + 13200,-1861376.86234248,22149704.2338937,6123309.43727515, + 13500,-2319978.47892302,22801627.9016793,7153989.31540706, + 13800,-2772565.59545399,23394388.1937036,8166139.0740483, + 14100,-3218732.1118332,23932952.2433296,9159395.44118848, + 14400,-3658191.02697494,24421638.0743684,10133581.5435689, + 14700,-4090743.58825532,24864223.6369536,11088652.7710158, + 1.5e4,-4516256.85965915,25264034.1635206,12024658.2137017, + 15300,-4934647.22291781,25624012.6996664,12941712.9209666, + 15600,-5345868.11693242,25946777.4848643,13839977.7785253, + 15900,-5749900.84266385,26234668.9790399,14719644.8123664, + 16200,-6146747.61052835,26489788.6755993,15580926.3991517, + 16500,-6536426.24538209,26714031.3509984,16424047.3154033, + 16800,-6918966.12841831,26909112.0319066,17249238.8669069, + 17100,-7294405.0700727,27076588.6816604,18056734.553691, + 17400,-7662786.88923428,27217881.3948138,18846766.8757514, + 17700,-8024159.53213645,27334288.7252486,19619564.9907621, + 1.8e4,-8378573.60628823,27427001.6471127,20375353.0108891, + 18300,-8726081.23545591,27497115.5496923,21114348.7806072, + 18600,-9066735.16428039,27545640.5904642,21836763.0173291, + 18900,-9400588.05789797,27573510.6699969,22542798.7259664, + 19200,-9727691.95448266,27581591.2443325,23232650.820223, + 19500,-10048097.8381298,27570686.1521509,23906505.8995972, + 19800,-10361855.3066317,27541543.6032681,24564542.1430499, + 20100,-10669012.3144128,27494861.4501858,25206929.289863, + 20400,-10969614.974754,27431291.8442971,25833828.6843467, + 20700,-11263707.4091371,27351445.361913,26445393.3672199, + 2.1e4,-11551331.6338054,27255894.6718284,27041768.1999215, + 21300,-11832527.4757408,27145177.8050711,27623090.0114464, + 21600,-12107332.5118151,27019801.0783077,28189487.7596568, + 21900,-12375782.0260965,26880241.714778,28741082.7008622, + 22200,-12637908.9812832,26726950.2002774,29277988.562898, + 22500,-12893744.0010091,26560352.4063921,29800311.7180449, + 22800,-13143315.3603886,26380851.5087263,30308151.3529931, + 23100,-13386648.9826639,26188829.7240889,30801599.6337288, + 23400,-13623768.4402156,25984649.8874182,31280741.8637416, + 23700,-13854694.9585173,25768656.8865116,31745656.6343544, + 2.4e4,-14079447.4218753,25541178.9703174,32196415.9662919, + 24300,-14298042.3799923,25302528.9445744,32633085.4418427, + 24600,-14510494.0545734,25053005.2668899,33055724.3271522, + 24900,-14716814.3453147,24792893.0518956,33464385.684325, + 25200,-14917012.8347327,24522464.9958642,33859116.4731151, + 25500,-15111096.7913695,24241982.2290927,34239957.6420562, + 25800,-15299071.170985,23951695.1034164,34606944.2089394, + 26100,-15480938.6154052,23651843.921395,34960105.3305858, + 26400,-15656699.4486864,23342659.6130913,35299464.361796, + 26700,-15826351.67045,23024364.3654774,35625038.9036574, + 2.7e4,-15989890.9459714,22697172.2094628,35936840.8408357, + 27300,-16147310.5929561,22361289.5685133,36234876.3680985, + 27600,-16298601.5647143,22016915.7728103,36519146.0058581, + 27900,-16443752.4295431,21664243.5423891,36789644.6046732, + 28200,-16582749.3461165,21303459.4424101,37046361.338593, + 28500,-16715576.0346644,20934744.313455,37289279.687189, + 28800,-16842213.7437369,20558273.6794901,37518377.4060853, + 29100,-16962641.2123203,20174218.1359515,37733626.4857574, + 29400,-17076834.6270691,19782743.7202223,37934993.0983209, + 29700,-17184767.5744025,19384012.2666105,38122437.5319911, + 3e4,-17286410.9871632,18978181.7479193,38295914.1127898, + 30300,-17381733.0856182,18565406.60522,38455371.1131865, + 30600,-17470699.3123447,18145838.0681155,38600750.6469581, + 30900,-17553272.2607927,17719624.4666949,38731988.5499261, + 31200,-17629411.5970136,17286911.53736,38849014.2457332, + 31500,-17699073.9742256,16847842.7237547,38951750.5960806, + 31800,-17762212.9396772,16402559.4747961,39040113.7344928, + 32100,-17818778.8333326,15951201.5412602,39114012.8827603, + 32400,-17868718.6778046,15493907.2726613,39173350.149012, + 32700,-17911976.058905,15030813.9161383,39218020.3062838, + 3.3e4,-17948490.9961314,14562057.9191133,39247910.5503088, + 33300,-17978199.8023248,14087775.2375857,39262900.2351182, + 33600,-18001034.9316589,13608101.652015,39262860.5848778, + 33900,-18016924.8150288,13123173.0928798,39247654.3802143, + 34200,-18025793.6818089,12633125.9781544,39217135.6170851, + 34500,-18027561.366835,12138097.5650835,39171149.1360246, + 34800,-18022143.1013363,11638226.3190989,39109530.2193804, + 35100,-18009449.2864131,11133652.3023886,39032104.1538217, + 35400,-17989385.2474731,10624517.585779,38938685.7551732, + 35700,-17961850.9678803,10110966.6872111,38829078.8522174, + 3.6e4,-17926740.7998518,9593147.04090556,38703075.7257529, + 36300,-17883943.1504102,9071209.50168555,38560456.4987461, + 36600,-17833340.1399317,8545308.88951655,38400988.472919, + 36900,-17774807.2305323,8015604.57999435,38224425.4065471, + 37200,-17708212.821189,7482261.14730386,38030506.7276024, + 37500,-17633417.8060984,6945449.06710054,37818956.6756414, + 37800,-17550275.0923289,6405345.48784951,37589483.3650011, + 38100,-17458629.0722983,5862135.08046281,37341777.7609074, + 38400,-17358315.0460181,5316010.97758108,37075512.5590006, + 38700,-17249158.5873517,4767175.81566633,36790340.957514, + 3.9e4,-17130974.8477398,4215842.89522099,36485895.3098832, + 39300,-17003567.7899153,3662237.47701788,36161785.6438766, + 39600,-16866729.3430557,3106598.23530756,35817598.0313775, + 39900,-16720238.4695587,2549178.892672,35452892.7906785, + 40200,-16563860.1321541,1990250.06566907,35067202.5005047, + 40500,-16397344.1483358,1430101.3558343,34660029.8018868, + 40800,-16220423.9170581,869043.727222617,34230844.9604008, + 41100,-16032815.0002275,307412.219716921,33779083.1570174, + 41400,-15834213.538732,-254430.942535033,33304141.4709793, + 41700,-15624294.4792116,-816092.776378378,32805375.5118717, + 4.2e4,-15402709.5839726,-1377145.41145931,32282095.6516856, + 42300,-15169085.1914322,-1937121.30297729,31733562.7989957, + 42600,-14923019.6888274,-2495507.6554333,31158983.6479558, + 42900,-14664080.6519709,-3051739.8971781,30557505.3232709, + 43200,-14391801.5985167,-3605194.00688563,29928209.3287359, + 43500,-14105678.2911711,-4155177.44348482,29270104.6908793, + 43800,-13805164.5151904,-4700918.36702761,28582120.1703265, + 44100,-13489667.2399204,-5241552.75453848,27863095.3912988, + 44400,-13158541.0565714,-5776108.90536886,27111770.7138716, + 44700,-12811081.7633614,-6303488.68549808,26326775.6440673, + 4.5e4,-12446518.9440755,-6822444.66630004,25506615.5438407, + 45300,-12064007.3566052,-7331552.05147224,24649656.3676372, + 45600,-11662616.9141169,-7829173.92868931,23754107.117236, + 45900,-11241321.0039949,-8313417.889975,22817999.6778703, + 46200,-10798982.8512544,-8782081.37747756,21839165.6877433, + 46500,-10334339.5999814,-9232582.14049695,20815210.1223153, + 46800,-9845983.77211352,-9661868.80046832,19743481.3863496, + 47100,-9332341.79533939,-10066304.5062081,18621037.9804541, + 47400,-8791649.42744385,-10441513.7000893,17444612.3961023, + 47700,-8221924.25622785,-10782177.601005,16210574.0837682, + 4.8e4,-7620936.25098308,-11081757.3407266,14914895.6960976, + 48300,-6986179.05075924,-11332113.4963846,13553131.4452714, + 48600,-6314848.26671946,-11522975.052877,12120425.5765026, + 48900,-5603840.6044569,-11641186.6087909,10611587.2764817, + 49200,-4849803.51274299,-11669625.8911566,9021305.55297466, + 49500,-4049299.09079817,-11585630.9094586,7344654.62266412, + 49800,-3199219.7636004,-11358712.6528131,5578202.11476639, + 50100,-2297753.84912269,-10947301.966741,3722373.28023887, + 50400,-1346540.12996835,-10294494.5817827,1786420.25389465, + 50700,-355295.828314929,-9323959.33325604,-201418.608387867, + 5.1e4,649055.093305485,-7941522.80068753,-2174864.31917421, + 51300,1608336.50001882,-6058785.37140199,-4002436.89935619, + 51600,2425877.46814901,-3662674.5762764,-5479296.2425892, + 51900,2997948.20367617,-900563.965341401,-6402090.45707243, + 52200,3280874.08815693,1955289.76241298,-6706613.90394798, + 52500,3310533.84626079,4670857.32447501,-6492235.22875828, + 52800,3156074.73406497,7135933.46105691,-5915743.87263669, + 53100,2879331.64288349,9331333.83010422,-5109265.20128895, + 53400,2524130.1234571,11277307.2214193,-4162997.02682884, + 53700,2119225.88800953,13004758.3558934,-3134328.46983628, + 5.4e4,1683203.33546174,14543985.1095366,-2059298.79973026, + 54300,1228183.52074781,15921339.1613914,-960743.07960408, + 54600,762210.846767324,17158807.0537822,146640.995489291, + 54900,290726.204365045,18274499.1996752,1253241.81387739, + 55200,-182524.921083448,19283323.6095626,2352690.80694387, + 55500,-654924.642914064,20197611.1610428,3440730.82872111, + 55800,-1124620.52658887,21027634.4487028,4514506.62819834, + 56100,-1590289.64584216,21782020.5465716,5572110.18549049, + 56400,-2050981.62289321,22468074.2864168,6612283.20437705, + 56700,-2506012.14225064,23092030.5497377,7634218.62842988, + 5.7e4,-2954889.38714214,23659251.6278415,8637425.86948416, + 57300,-3397262.37315653,24174382.4432664,9621637.84180113, + 57600,-3832884.11345038,24641473.4717927,10586745.9300108, + 57900,-4261585.00029553,25064078.8231871,11532753.9347654, + 58200,-4683253.33372454,25445335.1096648,12459745.1081811, + 58500,-5097820.92166294,25788025.3551727,13367858.3427073, + 58800,-5505252.3258602,26094631.1721308,14257270.8407066, + 59100,-5905536.76013273,26367375.6675501,15128185.4239739, + 59400,-6298681.9393033,26608258.9693831,15980821.1986889, + 59700,-6684709.37717048,26819087.8355761,16815406.668626, + 6e4,-7063650.77071041,27001500.4850737,17632174.6488278, + 60300,-7435545.20532031,27156987.544592,18431358.5124764, + 60600,-7800436.98537444,27286909.8173315,19213189.4307803, + 60900,-8158373.9442823,27392513.4353616,19977894.3561235, + 61200,-8509406.12454548,27474942.8454501,20725694.5636979, + 61500,-8853584.74488575,27535251.9907553,21456804.6139508, + 61800,-9190961.3912229,27574413.9821817,22171431.6326414, + 62100,-9521587.38295469,27593329.498961,22869774.8306843, + 62400,-9845513.27703407,27592834.1148868,23552025.2048181, + 62700,-10162788.4807113,27573704.7121121,24218365.3742293, + 6.3e4,-10473460.9501242,27536665.1166632,24868969.5187733, + 63300,-10777576.9569715,27482391.0673363,25504003.3927231, + 63600,-11075180.9090051,27411514.6113993,26123624.3935453, + 63900,-11366315.2133013,27324628.0055659,26727981.6704331, + 64200,-11651020.173362,27222287.188453,27317216.2604914, + 64500,-11929333.9129573,27105014.8806127,27891461.2433666, + 64800,-12201292.3210341,26973303.3598398,28450841.907204, + 65100,-12466929.0131045,26827616.9524798,28995475.9204529, + 65400,-12726275.3054486,26668394.2756232,29525473.505311, + 65464.843104,-12781507.4823221,26632240.9259024,29638115.586487, + 65464.843104,-12780276.3248723,26632039.800944,29638813.9203624, + 65700,-12978128.3391635,26495847.6885184,30041635.9822444, + 6.6e4,-13224978.1419495,26310773.6445571,30542662.1905227, + 66300,-13465618.1524924,26113344.3042274,31029339.3206125, + 66600,-13700070.3829284,25903913.8544346,31501749.48709, + 66900,-13928354.5230888,25682819.1654355,31959968.1604324, + 67200,-14150487.9451588,25450381.0442511,32404064.3042511, + 67500,-14366485.7089154,25206905.3813303,32834100.502877, + 67800,-14576360.5667901,24952684.2018548,33250133.0789052, + 68100,-14780122.9681598,24687996.6316964,33652212.2004293, + 68400,-14977781.0623421,24413109.786886,34040381.9777848, + 68700,-15169340.699864,24128279.5944339,34414680.5496809, + 6.9e4,-15354805.4316269,23833751.551472,34775140.1586435, + 69300,-15534176.5056502,23529761.4289141,35121787.2157268, + 69600,-15707452.8610832,23216535.9252246,35454642.3544095, + 69900,-15874631.1192915,22894293.2751492,35773720.4737669, + 70200,-16035705.571685,22563243.8180493,36079030.7706809, + 70500,-16190668.1641505,22223590.5297188,36370576.7612053, + 70800,-16339508.4778339,21875529.5214029,36648356.2909222, + 71100,-16482213.7060727,21519250.5093178,36912361.5342057, + 71400,-16618768.6272664,21154937.2576952,37162578.982259, + 71700,-16749155.5734728,20782767.9981201,37398989.4197553, + 7.2e4,-16873354.3945057,20402915.8277143,37621567.8898738, + 72300,-16991342.4172995,20015549.0885255,37830283.6474786, + 72600,-17103094.4002932,19620831.7303205,38025100.1001415, + 72900,-17208582.4825676,19218923.6588408,38205974.7366567, + 73200,-17307776.12744,18809981.071475,38372859.0426373, + 73500,-17400642.0602178,18394156.7821715,38525698.4027349, + 73800,-17487144.199755,17971600.5374007,38664431.9889303, + 74100,-17567243.5834508,17542459.3248531,38788992.634305, + 74400,-17640898.285278,17106877.6765585,38899306.6916003, + 74700,-17708063.3263961,16664997.9680834,38995293.8757944, + 7.5e4,-17768690.5778568,16216960.7154509,39076867.089836, + 75300,-17822728.6548627,15762904.8714442,39143932.2325678, + 75600,-17870122.8019847,15302968.1229837,39196387.9877628, + 75900,-17910814.7686811,14837287.1913187,39234125.5930736, + 76200,-17944742.674395,14365998.1368413,39257028.587557, + 76500,-17971840.8624298,13889236.6704224,39264972.5362884, + 76800,-17992039.7417195,13407138.4732795,39257824.7304131, + 77100,-18005265.6155096,12919839.5275372,39235443.8607945, + 77400,-18011440.4958693,12427476.459768,39197679.6632156, + 77700,-18010481.9028216,11930186.9001506,39144372.5328645, + 7.8e4,-18002302.6467596,11428109.8597904,39075353.1055601, + 78300,-17986810.5926513,10921386.1294834,38990441.8029108, + 78600,-17963908.4043754,10410158.7031436,38889448.338255, + 78900,-17933493.2673346,9894573.22970135,38772171.1798739, + 79200,-17895456.58727,9374778.49768325,38638396.9675572, + 79500,-17849683.6629611,8850926.95720259,38487899.8781312, + 79800,-17796053.3302074,8323175.28472554,38320440.935036, + 80100,-17734437.574166,7791684.99669241,38135767.2564313, + 80400,-17664701.1067592,7256623.11892885,37933611.2356337, + 80700,-17586700.905437,6718162.91978095,37713689.6469038, + 8.1e4,-17500285.7091029,6176484.71608862,37475702.6687086, + 81300,-17405295.4664529,5631776.76250473,37219332.8155662, + 81600,-17301560.7313389,5084236.23631405,36944243.7683988, + 81900,-17188901.9990249,4534070.33187372,36650079.0919688, + 82200,-17067128.9763465,3981497.48112666,36336460.8264103, + 82500,-16936039.7777858,3426748.71944021,36002987.9380549, + 82800,-16795420.0383082,2870069.2193729,35649234.6126568, + 83100,-16645041.9324472,2311720.01902441,35274748.3716767, + 83400,-16484663.0875293,1751979.97650458,34879047.9894397, + 83700,-16314025.3770515,1191147.98801559,34461621.1856574, + 8.4e4,-16132853.5780103,629545.514273079,34021922.0638914, + 84300,-15940853.8733972,67519.4690120253,33559368.2620538, + 84600,-15737712.1778839,-494554.466002466,33073337.7754264, + 84900,-15523092.2611632,-1056268.02100451,32563165.406675, + 85200,-15296633.6388896,-1617175.9182893,32028138.7895405, + 85500,-15057949.1959615,-2176790.73586066,31467493.9241922, + 85800,-14806622.5005533,-2734576.91150487,30880410.151684, + 86100,-14542204.759712,-3289943.71015233,30266004.4825403, + 86400,-14264211.3581917,-3842236.93397723,29623325.1797918 + ] + } + } +] \ No newline at end of file diff --git a/public/static/SampleData/simplestyles.geojson b/public/static/SampleData/simplestyles.geojson new file mode 100644 index 0000000..206ef9a --- /dev/null +++ b/public/static/SampleData/simplestyles.geojson @@ -0,0 +1,2314 @@ +{ + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.0, + 0.0 + ] + }, + "properties": { + "title": "Unnamed", + "marker-color": "#B9EB14" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.1, + 0.0 + ] + }, + "properties": { + "title": "0", + "marker-symbol": "0", + "marker-color": "#D13C3C" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.2, + 0.0 + ] + }, + "properties": { + "title": "1", + "marker-symbol": "1", + "marker-color": "#C49D22" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.30000000000000004, + 0.0 + ] + }, + "properties": { + "title": "2", + "marker-symbol": "2", + "marker-color": "#8EE3A6" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.4, + 0.0 + ] + }, + "properties": { + "title": "3", + "marker-symbol": "3", + "marker-color": "#34BE96" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.5, + 0.0 + ] + }, + "properties": { + "title": "4", + "marker-symbol": "4", + "marker-color": "#8F1312" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.60000000000000009, + 0.0 + ] + }, + "properties": { + "title": "5", + "marker-symbol": "5", + "marker-color": "#E7F163" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.70000000000000007, + 0.0 + ] + }, + "properties": { + "title": "6", + "marker-symbol": "6", + "marker-color": "#713291" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.8, + 0.0 + ] + }, + "properties": { + "title": "7", + "marker-symbol": "7", + "marker-color": "#FA40B3" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.9, + 0.0 + ] + }, + "properties": { + "title": "8", + "marker-symbol": "8", + "marker-color": "#46117E" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.0, + 0.0 + ] + }, + "properties": { + "title": "9", + "marker-symbol": "9", + "marker-color": "#4ABA5E" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.1, + 0.0 + ] + }, + "properties": { + "title": "a", + "marker-symbol": "a", + "marker-color": "#77A1EF" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.2000000000000002, + 0.0 + ] + }, + "properties": { + "title": "b", + "marker-symbol": "b", + "marker-color": "#A1F5F1" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.3, + 0.0 + ] + }, + "properties": { + "title": "c", + "marker-symbol": "c", + "marker-color": "#7831EE" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.4000000000000001, + 0.0 + ] + }, + "properties": { + "title": "d", + "marker-symbol": "d", + "marker-color": "#FB6E43" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.0, + -0.1 + ] + }, + "properties": { + "title": "e", + "marker-symbol": "e", + "marker-color": "#07C621" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.1, + -0.1 + ] + }, + "properties": { + "title": "f", + "marker-symbol": "f", + "marker-color": "#DCC44A" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.2, + -0.1 + ] + }, + "properties": { + "title": "g", + "marker-symbol": "g", + "marker-color": "#FECF10" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.30000000000000004, + -0.1 + ] + }, + "properties": { + "title": "h", + "marker-symbol": "h", + "marker-color": "#AD5BBE" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.4, + -0.1 + ] + }, + "properties": { + "title": "i", + "marker-symbol": "i", + "marker-color": "#508916" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.5, + -0.1 + ] + }, + "properties": { + "title": "j", + "marker-symbol": "j", + "marker-color": "#D120E0" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.60000000000000009, + -0.1 + ] + }, + "properties": { + "title": "k", + "marker-symbol": "k", + "marker-color": "#D919EB" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.70000000000000007, + -0.1 + ] + }, + "properties": { + "title": "l", + "marker-symbol": "l", + "marker-color": "#FDED4D" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.8, + -0.1 + ] + }, + "properties": { + "title": "m", + "marker-symbol": "m", + "marker-color": "#085A20" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.9, + -0.1 + ] + }, + "properties": { + "title": "n", + "marker-symbol": "n", + "marker-color": "#B32F65" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.0, + -0.1 + ] + }, + "properties": { + "title": "o", + "marker-symbol": "o", + "marker-color": "#86BA8E" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.1, + -0.1 + ] + }, + "properties": { + "title": "p", + "marker-symbol": "p", + "marker-color": "#EF1BD8" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.2000000000000002, + -0.1 + ] + }, + "properties": { + "title": "q", + "marker-symbol": "q", + "marker-color": "#B007E2" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.3, + -0.1 + ] + }, + "properties": { + "title": "r", + "marker-symbol": "r", + "marker-color": "#8BFC18" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.4000000000000001, + -0.1 + ] + }, + "properties": { + "title": "s", + "marker-symbol": "s", + "marker-color": "#14C39F" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.0, + -0.2 + ] + }, + "properties": { + "title": "t", + "marker-symbol": "t", + "marker-color": "#2FE765" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.1, + -0.2 + ] + }, + "properties": { + "title": "u", + "marker-symbol": "u", + "marker-color": "#740D40" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.2, + -0.2 + ] + }, + "properties": { + "title": "v", + "marker-symbol": "v", + "marker-color": "#4C1374" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.30000000000000004, + -0.2 + ] + }, + "properties": { + "title": "w", + "marker-symbol": "w", + "marker-color": "#FD1134" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.4, + -0.2 + ] + }, + "properties": { + "title": "x", + "marker-symbol": "x", + "marker-color": "#A487D2" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.5, + -0.2 + ] + }, + "properties": { + "title": "y", + "marker-symbol": "y", + "marker-color": "#C35194" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.60000000000000009, + -0.2 + ] + }, + "properties": { + "title": "z", + "marker-symbol": "z", + "marker-color": "#07C7EB" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.70000000000000007, + -0.2 + ] + }, + "properties": { + "title": "airfield", + "marker-symbol": "airfield", + "marker-color": "#618982" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.8, + -0.2 + ] + }, + "properties": { + "title": "airport", + "marker-symbol": "airport", + "marker-color": "#57D824" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.9, + -0.2 + ] + }, + "properties": { + "title": "alcohol-shop", + "marker-symbol": "alcohol-shop", + "marker-color": "#F51BC8" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.0, + -0.2 + ] + }, + "properties": { + "title": "america-football", + "marker-symbol": "america-football", + "marker-color": "#815025" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.1, + -0.2 + ] + }, + "properties": { + "title": "art-gallery", + "marker-symbol": "art-gallery", + "marker-color": "#B749F9" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.2000000000000002, + -0.2 + ] + }, + "properties": { + "title": "bakery", + "marker-symbol": "bakery", + "marker-color": "#1E7403" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.3, + -0.2 + ] + }, + "properties": { + "title": "bank", + "marker-symbol": "bank", + "marker-color": "#4600EA" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.4000000000000001, + -0.2 + ] + }, + "properties": { + "title": "bar", + "marker-symbol": "bar", + "marker-color": "#E83792" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.0, + -0.30000000000000004 + ] + }, + "properties": { + "title": "baseball", + "marker-symbol": "baseball", + "marker-color": "#CB75C2" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.1, + -0.30000000000000004 + ] + }, + "properties": { + "title": "basketball", + "marker-symbol": "basketball", + "marker-color": "#565023" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.2, + -0.30000000000000004 + ] + }, + "properties": { + "title": "beer", + "marker-symbol": "beer", + "marker-color": "#750BA2" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.30000000000000004, + -0.30000000000000004 + ] + }, + "properties": { + "title": "bicycle", + "marker-symbol": "bicycle", + "marker-color": "#259653" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.4, + -0.30000000000000004 + ] + }, + "properties": { + "title": "building", + "marker-symbol": "building", + "marker-color": "#38A815" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.5, + -0.30000000000000004 + ] + }, + "properties": { + "title": "bus", + "marker-symbol": "bus", + "marker-color": "#68FA8F" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.60000000000000009, + -0.30000000000000004 + ] + }, + "properties": { + "title": "cafe", + "marker-symbol": "cafe", + "marker-color": "#B7FE7B" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.70000000000000007, + -0.30000000000000004 + ] + }, + "properties": { + "title": "camera", + "marker-symbol": "camera", + "marker-color": "#9EAD32" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.8, + -0.30000000000000004 + ] + }, + "properties": { + "title": "campsite", + "marker-symbol": "campsite", + "marker-color": "#7CEB79" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.9, + -0.30000000000000004 + ] + }, + "properties": { + "title": "car", + "marker-symbol": "car", + "marker-color": "#31E5D8" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.0, + -0.30000000000000004 + ] + }, + "properties": { + "title": "cemetery", + "marker-symbol": "cemetery", + "marker-color": "#E0D128" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.1, + -0.30000000000000004 + ] + }, + "properties": { + "title": "cesium", + "marker-symbol": "cesium", + "marker-color": "#D34EEF" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.2000000000000002, + -0.30000000000000004 + ] + }, + "properties": { + "title": "chemist", + "marker-symbol": "chemist", + "marker-color": "#BC4302" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.3, + -0.30000000000000004 + ] + }, + "properties": { + "title": "cinema", + "marker-symbol": "cinema", + "marker-color": "#DBB441" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.4000000000000001, + -0.30000000000000004 + ] + }, + "properties": { + "title": "circle-stroked", + "marker-symbol": "circle-stroked", + "marker-color": "#AE0407" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.0, + -0.4 + ] + }, + "properties": { + "title": "circle", + "marker-symbol": "circle", + "marker-color": "#9FF73A" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.1, + -0.4 + ] + }, + "properties": { + "title": "city", + "marker-symbol": "city", + "marker-color": "#37E981" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.2, + -0.4 + ] + }, + "properties": { + "title": "clothing-store", + "marker-symbol": "clothing-store", + "marker-color": "#E53679" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.30000000000000004, + -0.4 + ] + }, + "properties": { + "title": "college", + "marker-symbol": "college", + "marker-color": "#E57D14" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.4, + -0.4 + ] + }, + "properties": { + "title": "commercial", + "marker-symbol": "commercial", + "marker-color": "#162A19" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.5, + -0.4 + ] + }, + "properties": { + "title": "cricket", + "marker-symbol": "cricket", + "marker-color": "#D6AD1E" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.60000000000000009, + -0.4 + ] + }, + "properties": { + "title": "cross", + "marker-symbol": "cross", + "marker-color": "#2B8E7B" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.70000000000000007, + -0.4 + ] + }, + "properties": { + "title": "dam", + "marker-symbol": "dam", + "marker-color": "#A4E4BD" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.8, + -0.4 + ] + }, + "properties": { + "title": "danger", + "marker-symbol": "danger", + "marker-color": "#D3AA1B" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.9, + -0.4 + ] + }, + "properties": { + "title": "disability", + "marker-symbol": "disability", + "marker-color": "#381CAE" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.0, + -0.4 + ] + }, + "properties": { + "title": "dog-park", + "marker-symbol": "dog-park", + "marker-color": "#FFFE35" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.1, + -0.4 + ] + }, + "properties": { + "title": "embassy", + "marker-symbol": "embassy", + "marker-color": "#7B3AC7" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.2000000000000002, + -0.4 + ] + }, + "properties": { + "title": "emergency-telephone", + "marker-symbol": "emergency-telephone", + "marker-color": "#A6F6EC" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.3, + -0.4 + ] + }, + "properties": { + "title": "entrance", + "marker-symbol": "entrance", + "marker-color": "#B83FF6" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.4000000000000001, + -0.4 + ] + }, + "properties": { + "title": "farm", + "marker-symbol": "farm", + "marker-color": "#CF38F0" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.0, + -0.5 + ] + }, + "properties": { + "title": "fast-food", + "marker-symbol": "fast-food", + "marker-color": "#19D6E6" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.1, + -0.5 + ] + }, + "properties": { + "title": "ferry", + "marker-symbol": "ferry", + "marker-color": "#BAA5E8" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.2, + -0.5 + ] + }, + "properties": { + "title": "fire-station", + "marker-symbol": "fire-station", + "marker-color": "#B7EC62" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.30000000000000004, + -0.5 + ] + }, + "properties": { + "title": "fuel", + "marker-symbol": "fuel", + "marker-color": "#20228D" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.4, + -0.5 + ] + }, + "properties": { + "title": "garden", + "marker-symbol": "garden", + "marker-color": "#E7B9A3" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.5, + -0.5 + ] + }, + "properties": { + "title": "gift", + "marker-symbol": "gift", + "marker-color": "#306A6A" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.60000000000000009, + -0.5 + ] + }, + "properties": { + "title": "golf", + "marker-symbol": "golf", + "marker-color": "#7A1036" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.70000000000000007, + -0.5 + ] + }, + "properties": { + "title": "grocery", + "marker-symbol": "grocery", + "marker-color": "#8A718E" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.8, + -0.5 + ] + }, + "properties": { + "title": "hairdresser", + "marker-symbol": "hairdresser", + "marker-color": "#535403" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.9, + -0.5 + ] + }, + "properties": { + "title": "harbor", + "marker-symbol": "harbor", + "marker-color": "#ABC90F" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.0, + -0.5 + ] + }, + "properties": { + "title": "heart", + "marker-symbol": "heart", + "marker-color": "#77E8EA" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.1, + -0.5 + ] + }, + "properties": { + "title": "heliport", + "marker-symbol": "heliport", + "marker-color": "#D5600D" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.2000000000000002, + -0.5 + ] + }, + "properties": { + "title": "hospital", + "marker-symbol": "hospital", + "marker-color": "#CF27FB" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.3, + -0.5 + ] + }, + "properties": { + "title": "ice-cream", + "marker-symbol": "ice-cream", + "marker-color": "#CB2B5B" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.4000000000000001, + -0.5 + ] + }, + "properties": { + "title": "industrial", + "marker-symbol": "industrial", + "marker-color": "#C3B6AA" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.0, + -0.60000000000000009 + ] + }, + "properties": { + "title": "land-use", + "marker-symbol": "land-use", + "marker-color": "#F002A5" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.1, + -0.60000000000000009 + ] + }, + "properties": { + "title": "laundry", + "marker-symbol": "laundry", + "marker-color": "#4B84E9" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.2, + -0.60000000000000009 + ] + }, + "properties": { + "title": "library", + "marker-symbol": "library", + "marker-color": "#85D541" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.30000000000000004, + -0.60000000000000009 + ] + }, + "properties": { + "title": "lighthouse", + "marker-symbol": "lighthouse", + "marker-color": "#A9D41C" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.4, + -0.60000000000000009 + ] + }, + "properties": { + "title": "lodging", + "marker-symbol": "lodging", + "marker-color": "#55248D" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.5, + -0.60000000000000009 + ] + }, + "properties": { + "title": "logging", + "marker-symbol": "logging", + "marker-color": "#4966A4" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.60000000000000009, + -0.60000000000000009 + ] + }, + "properties": { + "title": "london-underground", + "marker-symbol": "london-underground", + "marker-color": "#D21380" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.70000000000000007, + -0.60000000000000009 + ] + }, + "properties": { + "title": "marker-stroked", + "marker-symbol": "marker-stroked", + "marker-color": "#38F6EF" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.8, + -0.60000000000000009 + ] + }, + "properties": { + "title": "marker", + "marker-symbol": "marker", + "marker-color": "#2FD6D1" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.9, + -0.60000000000000009 + ] + }, + "properties": { + "title": "minefield", + "marker-symbol": "minefield", + "marker-color": "#118A73" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.0, + -0.60000000000000009 + ] + }, + "properties": { + "title": "mobilephone", + "marker-symbol": "mobilephone", + "marker-color": "#9FE746" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.1, + -0.60000000000000009 + ] + }, + "properties": { + "title": "monument", + "marker-symbol": "monument", + "marker-color": "#B16B66" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.2000000000000002, + -0.60000000000000009 + ] + }, + "properties": { + "title": "museum", + "marker-symbol": "museum", + "marker-color": "#A16186" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.3, + -0.60000000000000009 + ] + }, + "properties": { + "title": "music", + "marker-symbol": "music", + "marker-color": "#ED79A4" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.4000000000000001, + -0.60000000000000009 + ] + }, + "properties": { + "title": "oil-well", + "marker-symbol": "oil-well", + "marker-color": "#38A9DF" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.0, + -0.70000000000000007 + ] + }, + "properties": { + "title": "park", + "marker-symbol": "park", + "marker-color": "#EDBFC8" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.1, + -0.70000000000000007 + ] + }, + "properties": { + "title": "park2", + "marker-symbol": "park2", + "marker-color": "#11078F" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.2, + -0.70000000000000007 + ] + }, + "properties": { + "title": "parking-garage", + "marker-symbol": "parking-garage", + "marker-color": "#E66D3C" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.30000000000000004, + -0.70000000000000007 + ] + }, + "properties": { + "title": "parking", + "marker-symbol": "parking", + "marker-color": "#ADB288" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.4, + -0.70000000000000007 + ] + }, + "properties": { + "title": "pharmacy", + "marker-symbol": "pharmacy", + "marker-color": "#180EF1" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.5, + -0.70000000000000007 + ] + }, + "properties": { + "title": "pitch", + "marker-symbol": "pitch", + "marker-color": "#262B3F" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.60000000000000009, + -0.70000000000000007 + ] + }, + "properties": { + "title": "place-of-worship", + "marker-symbol": "place-of-worship", + "marker-color": "#1B628C" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.70000000000000007, + -0.70000000000000007 + ] + }, + "properties": { + "title": "playground", + "marker-symbol": "playground", + "marker-color": "#9C2074" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.8, + -0.70000000000000007 + ] + }, + "properties": { + "title": "police", + "marker-symbol": "police", + "marker-color": "#F3FA9D" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.9, + -0.70000000000000007 + ] + }, + "properties": { + "title": "polling-place", + "marker-symbol": "polling-place", + "marker-color": "#7D999D" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.0, + -0.70000000000000007 + ] + }, + "properties": { + "title": "post", + "marker-symbol": "post", + "marker-color": "#25E703" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.1, + -0.70000000000000007 + ] + }, + "properties": { + "title": "prison", + "marker-symbol": "prison", + "marker-color": "#AD77F3" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.2000000000000002, + -0.70000000000000007 + ] + }, + "properties": { + "title": "rail-above", + "marker-symbol": "rail-above", + "marker-color": "#91E275" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.3, + -0.70000000000000007 + ] + }, + "properties": { + "title": "rail-light", + "marker-symbol": "rail-light", + "marker-color": "#39B405" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.4000000000000001, + -0.70000000000000007 + ] + }, + "properties": { + "title": "rail-metro", + "marker-symbol": "rail-metro", + "marker-color": "#9E412F" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.0, + -0.8 + ] + }, + "properties": { + "title": "rail-underground", + "marker-symbol": "rail-underground", + "marker-color": "#014D11" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.1, + -0.8 + ] + }, + "properties": { + "title": "rail", + "marker-symbol": "rail", + "marker-color": "#5C667F" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.2, + -0.8 + ] + }, + "properties": { + "title": "religious-christian", + "marker-symbol": "religious-christian", + "marker-color": "#D9B961" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.30000000000000004, + -0.8 + ] + }, + "properties": { + "title": "religious-jewish", + "marker-symbol": "religious-jewish", + "marker-color": "#0FF371" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.4, + -0.8 + ] + }, + "properties": { + "title": "religious-muslim", + "marker-symbol": "religious-muslim", + "marker-color": "#481A08" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.5, + -0.8 + ] + }, + "properties": { + "title": "restaurant", + "marker-symbol": "restaurant", + "marker-color": "#B4794C" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.60000000000000009, + -0.8 + ] + }, + "properties": { + "title": "roadblock", + "marker-symbol": "roadblock", + "marker-color": "#F56585" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.70000000000000007, + -0.8 + ] + }, + "properties": { + "title": "rocket", + "marker-symbol": "rocket", + "marker-color": "#FD22CF" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.8, + -0.8 + ] + }, + "properties": { + "title": "school", + "marker-symbol": "school", + "marker-color": "#631B68" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.9, + -0.8 + ] + }, + "properties": { + "title": "scooter", + "marker-symbol": "scooter", + "marker-color": "#85D24C" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.0, + -0.8 + ] + }, + "properties": { + "title": "shop", + "marker-symbol": "shop", + "marker-color": "#47C366" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.1, + -0.8 + ] + }, + "properties": { + "title": "skiing", + "marker-symbol": "skiing", + "marker-color": "#81AEF9" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.2000000000000002, + -0.8 + ] + }, + "properties": { + "title": "slaughterhouse", + "marker-symbol": "slaughterhouse", + "marker-color": "#881591" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.3, + -0.8 + ] + }, + "properties": { + "title": "soccer", + "marker-symbol": "soccer", + "marker-color": "#0E981A" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.4000000000000001, + -0.8 + ] + }, + "properties": { + "title": "square-stroked", + "marker-symbol": "square-stroked", + "marker-color": "#47D25C" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.0, + -0.9 + ] + }, + "properties": { + "title": "square", + "marker-symbol": "square", + "marker-color": "#7EFF04" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.1, + -0.9 + ] + }, + "properties": { + "title": "star-stroked", + "marker-symbol": "star-stroked", + "marker-color": "#D8AEAF" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.2, + -0.9 + ] + }, + "properties": { + "title": "star", + "marker-symbol": "star", + "marker-color": "#9CF7E9" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.30000000000000004, + -0.9 + ] + }, + "properties": { + "title": "suitcase", + "marker-symbol": "suitcase", + "marker-color": "#1AAA24" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.4, + -0.9 + ] + }, + "properties": { + "title": "swimming", + "marker-symbol": "swimming", + "marker-color": "#BE0946" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.5, + -0.9 + ] + }, + "properties": { + "title": "telephone", + "marker-symbol": "telephone", + "marker-color": "#66E15A" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.60000000000000009, + -0.9 + ] + }, + "properties": { + "title": "tennis", + "marker-symbol": "tennis", + "marker-color": "#EEF2D1" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.70000000000000007, + -0.9 + ] + }, + "properties": { + "title": "theatre", + "marker-symbol": "theatre", + "marker-color": "#217572" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.8, + -0.9 + ] + }, + "properties": { + "title": "toilets", + "marker-symbol": "toilets", + "marker-color": "#B31C69" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.9, + -0.9 + ] + }, + "properties": { + "title": "town-hall", + "marker-symbol": "town-hall", + "marker-color": "#9D8B6A" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.0, + -0.9 + ] + }, + "properties": { + "title": "town", + "marker-symbol": "town", + "marker-color": "#D4A019" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.1, + -0.9 + ] + }, + "properties": { + "title": "triangle-stroked", + "marker-symbol": "triangle-stroked", + "marker-color": "#AF6474" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.2000000000000002, + -0.9 + ] + }, + "properties": { + "title": "triangle", + "marker-symbol": "triangle", + "marker-color": "#91DAA4" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.3, + -0.9 + ] + }, + "properties": { + "title": "village", + "marker-symbol": "village", + "marker-color": "#2C3A7F" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 1.4000000000000001, + -0.9 + ] + }, + "properties": { + "title": "warehouse", + "marker-symbol": "warehouse", + "marker-color": "#2F3D8A" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.0, + -1.0 + ] + }, + "properties": { + "title": "waste-basket", + "marker-symbol": "waste-basket", + "marker-color": "#9BEEB0" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.1, + -1.0 + ] + }, + "properties": { + "title": "water", + "marker-symbol": "water", + "marker-color": "#40310A" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.2, + -1.0 + ] + }, + "properties": { + "title": "wetland", + "marker-symbol": "wetland", + "marker-color": "#FF42EA" + } + }, + { + "type": "Feature", + "geometry": { + "type": "Point", + "coordinates": [ + 0.30000000000000004, + -1.0 + ] + }, + "properties": { + "title": "zoo", + "marker-symbol": "zoo", + "marker-color": "#9195A1" + } + } + ] +} \ No newline at end of file diff --git a/public/static/SampleData/smoke.png b/public/static/SampleData/smoke.png new file mode 100644 index 0000000..1d8b3e0 Binary files /dev/null and b/public/static/SampleData/smoke.png differ diff --git a/public/static/SampleData/snowflake_particle.png b/public/static/SampleData/snowflake_particle.png new file mode 100644 index 0000000..8fadd90 Binary files /dev/null and b/public/static/SampleData/snowflake_particle.png differ diff --git a/src/App.vue b/src/App.vue index 75c529d..b383549 100644 --- a/src/App.vue +++ b/src/App.vue @@ -7,20 +7,7 @@ * @FilePath: \gis\src\App.vue --> + diff --git a/src/components/earth/bubble/bubble.js b/src/components/earth/bubble/bubble.js new file mode 100644 index 0000000..614de8c --- /dev/null +++ b/src/components/earth/bubble/bubble.js @@ -0,0 +1,75 @@ +import { createVNode, render } from 'vue' +// import component from +export default class Bubble { + constructor (viewer) { + this.viewer = viewer + this.bubbleNode = null + this.props = null + } + + init (props, type) { + const component = import(`./bubbleComponents/${type}Bubble.vue`) + if (this.bubbleNode) { + this.windowClose() + } + component.then(res => { + const instance = res.default + this.position = props.position._value + const app = createVNode(instance, { + info: props.props + }) + // this.bubbleNode = app.el + this.bubbleNode = document.createElement('div') + render(app, this.bubbleNode) + // this.bubbleNode = app.el + // this.viewer.cesiumWidget.container.appendChild(this.bubbleNode) + document.body.appendChild(this.bubbleNode) + this.addPostRender() + }) + // this.position = props.position._value + // const app = createVNode(component, { + // info: props.props + // }) + // debugger + // this.bubbleNode = document.createElement('div') + // render(app, this.bubbleNode) + // document.body.appendChild(this.bubbleNode) + // this.addPostRender() + } + + addPostRender () { + this.viewer.scene.postRender.addEventListener(this.postRender, this) + } + + postRender () { + if (!this.bubbleNode || !this.bubbleNode.style) return + this.bubbleNode.style.position = 'absolute' + const canvasHeight = this.viewer.scene.canvas.height + const windowPosition = new Cesium.Cartesian2() + Cesium.SceneTransforms.wgs84ToWindowCoordinates( + this.viewer.scene, + this.position, + windowPosition + ) + this.bubbleNode.style.bottom = + canvasHeight - windowPosition.y + 60 + 'px' + const elWidth = this.bubbleNode.offsetWidth + this.bubbleNode.style.left = windowPosition.x - elWidth / 2 + 110 + 'px' + + const camerPosition = this.viewer.camera.position + let height = this.viewer.scene.globe.ellipsoid.cartesianToCartographic(camerPosition).height + height += this.viewer.scene.globe.ellipsoid.maximumRadius + if ((!(Cesium.Cartesian3.distance(camerPosition, this.position) > height)) && this.viewer.camera.positionCartographic.height < 50000000) { + this.bubbleNode.style.display = 'block' + } else { + this.bubbleNode.style.display = 'none' + } + } + + windowClose () { + if (!this.bubbleNode) return + document.body.removeChild(this.bubbleNode) + this.bubbleNode = null + this.viewer.scene.postRender.removeEventListener(this.postRender, this) + } +} diff --git a/src/components/earth/bubble/bubbleComponents/VideoBubble.vue b/src/components/earth/bubble/bubbleComponents/VideoBubble.vue new file mode 100644 index 0000000..3da1032 --- /dev/null +++ b/src/components/earth/bubble/bubbleComponents/VideoBubble.vue @@ -0,0 +1,35 @@ + + + + diff --git a/src/components/earth/flyManager/flyManager.js b/src/components/earth/flyManager/flyManager.js new file mode 100644 index 0000000..796f8d1 --- /dev/null +++ b/src/components/earth/flyManager/flyManager.js @@ -0,0 +1,122 @@ + +class FlyManager { + constructor (viewer) { + this.viewer = viewer + this.currentSite = 0 + this.routeLine = null + this.isLoop = false + this.status = 'init' + } + + /* 初始化飞行浏览 */ + initFly (routeLine) { + this.status = 'init' + this.currentSite = 0 + this.routeLine = routeLine + + const scene = this.viewer.scene + scene.screenSpaceCameraController.enableRotate = false + scene.screenSpaceCameraController.enableTranslate = false + scene.screenSpaceCameraController.enableZoom = false + scene.screenSpaceCameraController.enableTilt = false + scene.screenSpaceCameraController.enableLook = false + + const viewer = this.viewer + viewer.camera.setView({ + // destination: Cesium.Cartesian3(this.routeLine[0].longitude, this.routeLine[0].latitude, this.routeLine[0].height), + destination: Cesium.Cartesian3.fromDegrees(routeLine[0].longitude, routeLine[0].latitude, routeLine[0].height), + orientation: { + heading: this.routeLine[0].heading, + pitch: this.routeLine[0].pitch, + roll: this.routeLine[0].roll + } + }) + + this.fly() + } + + /* 飞行浏览具体 */ + fly () { + if (this.status === 'stop') { + this.initFly(this.routeLine) + } + this.status = 'fly' + if (this.currentSite >= this.routeLine.length - 1) { + if (this.isLoop) { + this.initFly(this.routeLine) + } else { + this.stopFly() + } + } else { + let i = this.currentSite + 1 + if (i < 1) { + this.currentSite = 0 + i = 1 + } + this.viewer.camera.flyTo({ + // 设置位置 + // destination: Cesium.Cartesian3(this.routeLine[i].longitude, this.routeLine[i].latitude, this.routeLine[i].height), + destination: Cesium.Cartesian3.fromDegrees(this.routeLine[i].longitude, this.routeLine[i].latitude, this.routeLine[i].height), + orientation: { + // 方向 + heading: this.routeLine[this.currentSite].heading, + // 倾斜角度 + pitch: this.routeLine[this.currentSite].pitch, + roll: 0 + }, + maximumHeight: this.routeLine[this.currentSite].height * 1, + // 设置飞行持续时间,默认会根据距离来计算 + duration: 4, + complete: () => { + this.currentSite = this.currentSite + 1 + console.log('complete', this.routeLine[this.currentSite].height) + this.fly() + }, + cancel: () => { + // this.currentSite-- + }, + easingFunction: Cesium.EasingFunction.LINEAR_NONE + }) + } + } + + /* 直播飞行,按点飞 */ + // liveFly (nextSite) { + // this.viewer.camera.flyTo({ + // // 设置位置 + // destination: Cesium.Cartesian3.fromDegrees(nextSite.longitude, nextSite.latitude, nextSite.height), + // orientation: { + // // 方向 + // heading: nextSite.heading, + // // 倾斜角度 + // pitch: nextSite.pitch, + // roll: nextSite.roll + // }, + // // 设置飞行持续时间,默认会根据距离来计算 + // duration: 4, + // complete: () => { + // this.liveFly() + // } + // }) + // } + + pauseFly () { + if (this.status !== 'fly') return + this.status = 'pause' + this.viewer.camera.cancelFlight() + } + + /* 停止飞行浏览 */ + stopFly () { + this.status = 'stop' + this.currentSite = 0 + const scene = this.viewer.scene + scene.screenSpaceCameraController.enableRotate = true + scene.screenSpaceCameraController.enableTranslate = true + scene.screenSpaceCameraController.enableZoom = true + scene.screenSpaceCameraController.enableTilt = true + scene.screenSpaceCameraController.enableLook = true + } +} + +export default FlyManager diff --git a/src/components/earth/gisTools/loadGeojsonWithMaterial.js b/src/components/earth/gisTools/loadGeojsonWithMaterial.js new file mode 100644 index 0000000..efb87e9 --- /dev/null +++ b/src/components/earth/gisTools/loadGeojsonWithMaterial.js @@ -0,0 +1,54 @@ + +function entitiesToPrimitives(features) { + const instances = [] + for (let i = 0; i < features.length; i++) { + for (let j = 0; j < features[i].geometry.coordinates.length; j++) { + const polygonArray = features[i].geometry.coordinates[j].toString().split(',') + let polygonHierarchy + if (features[i].geometry.coordinates[0][0][0].length === 2) { + polygonHierarchy = new Cesium.PolygonHierarchy( + Cesium.Cartesian3.fromDegreesArray(polygonArray) + ) // fromDegreesArray + } else { + polygonHierarchy = new Cesium.PolygonHierarchy( + Cesium.Cartesian3.fromDegreesArrayHeights(polygonArray) + ) // fromDegreesArray + } + const polygon = new Cesium.PolygonGeometry({ + polygonHierarchy: polygonHierarchy, + // 设置面的拉伸高度 + extrudedHeight: 20 + }) + const geometry = Cesium.PolygonGeometry.createGeometry(polygon) + instances.push(new Cesium.GeometryInstance({ + geometry: geometry + // attributes: { + // color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.GREEN) + // } + })) + } + } + // 合并单个geometry,提高渲染效率 + const img = 'static/Cesium/Assets/Textures/waterNormals.jpg' + const primitive = new Cesium.Primitive({ + geometryInstances: instances, + appearance: new Cesium.EllipsoidSurfaceAppearance({ + material: new Cesium.Material({ + fabric: { + type: 'Water', + uniforms: { + baseWaterColor: new Cesium.Color(62 / 255.0, 96 / 255.0, 98 / 255.0, 0.8), + normalMap: img, + frequency: 200.0, // 频率 1000 + animationSpeed: 0.01, // 动画速度 0.1 + amplitude: 10, // 变化幅度 10 + specularIntensity: 0.5// 反射强度 10 + } + } + }) + }) + }) + viewer.scene.primitives.add(primitive) +} + +export default entitiesToPrimitives diff --git a/src/components/earth/gisTools/matrix.js b/src/components/earth/gisTools/matrix.js new file mode 100644 index 0000000..5c5ad62 --- /dev/null +++ b/src/components/earth/gisTools/matrix.js @@ -0,0 +1,6 @@ +export function heightTranslate(instance, height) { + const surface = Cesium.Cartesian3.fromRadians(0, 0, 0) + const offset = Cesium.Cartesian3.fromRadians(0, 0, height) + const translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3()) + instance.modelMatrix = Cesium.Matrix4.fromTranslation(translation) +} diff --git a/src/components/earth/gisTools/modelMove.js b/src/components/earth/gisTools/modelMove.js new file mode 100644 index 0000000..c01b6d2 --- /dev/null +++ b/src/components/earth/gisTools/modelMove.js @@ -0,0 +1,152 @@ +// const model = 'static/SampleData/models/CesiumDrone/CesiumDrone.glb' +// const routeLine = [ +// { +// longitude: 115.5310955104305, // 起始点经度 +// latitude: 29.45941132782301, // 起始点维度 +// height: 464.3558799552955, // 起始点高度 +// time: 0// 起始时间 +// }, +// { +// longitude: 115.53130228598145, +// latitude: 29.459378517206638, +// height: 466.1145881293518, +// time: 10 +// }, +// { +// longitude: 115.5313953769011, +// latitude: 29.459311296391423, +// height: 467.48996257505485, +// time: 20 +// }, +// { +// longitude: 115.53149832517173, +// latitude: 29.459228656016336, +// height: 469.9064236522573, +// time: 30 +// } +// ] +// const data = { +// routeLine, +// model + +// } +export default class ModelMove { + constructor(viewer, data) { + this.viewer = viewer + this.routeLine = data.routeLine + this.model = data.model + const totalTime = data.routeLine.slice(-1)[0].time + this.start = Cesium.JulianDate.fromDate(new Date(2023, 2, 6)) + this.stop = Cesium.JulianDate.addSeconds( + this.start, + totalTime, + new Cesium.JulianDate() + ) + this.entity = null + this.isPause = false + } + + move() { + // 设置始时钟始时间 + this.viewer.clock.startTime = this.start.clone() + // 设置时钟当前时间 + this.viewer.clock.currentTime = this.start.clone() + // 设置始终停止时间 + this.viewer.clock.stopTime = this.stop.clone() + // 时间速率,数字越大时间过的越快 + this.viewer.clock.multiplier = 1 + // 时间轴 + this.viewer.timeline.zoomTo(this.start, this.stop) + this.viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP + const property = this.computeTrack() + // 添加模型 + const droneEntity = this.viewer.entities.add({ + name: 'drone', + // 和时间轴关联 + availability: new Cesium.TimeIntervalCollection([ + new Cesium.TimeInterval({ + start: this.start, + stop: this.stop + }) + ]), + position: property, + // 根据所提供的速度计算模型的朝向 + orientation: new Cesium.VelocityOrientationProperty(property), + // 模型数据 + model: { + id: this.id, + name: 'drone', + uri: this.model, + minimumPixelSize: 32 + }, + path: { + resolution: 1, + material: new Cesium.PolylineGlowMaterialProperty({ + glowPower: 0.1, + color: Cesium.Color.YELLOW + }), + width: 10 + }, + viewFrom: new Cesium.Cartesian3(-100, 20, 50)// 观察位置的偏移量 + }) + this.entity = droneEntity + this.viewer.trackedEntity = droneEntity + // this.viewer.camera.lookUp(1000) + } + + computeTrack() { + const source = this.routeLine + // 取样位置 相当于一个集合 + const property = new Cesium.SampledPositionProperty() + for (let i = 0; i < source.length; i++) { + const time = Cesium.JulianDate.addSeconds( + this.start, + source[i].time, + new Cesium.JulianDate() + ) + const position = Cesium.Cartesian3.fromDegrees( + source[i].longitude, + source[i].latitude, + source[i].height + ) + // 添加位置,和时间对应 + property.addSample(time, position) + } + return property + } + + pause() { + this.isPause = true + this.viewer.clock.shouldAnimate = false + } + play() { + this.isPause = false + this.viewer.clock.shouldAnimate = true + } + + resetPosition() { + this.viewer.clock.currentTime = this.viewer.clock.startTime + this.viewer.clock.shouldAnimate = true + } + + setPositon(time) { + const positionTime = Cesium.JulianDate.addSeconds( + this.start, + time, + new Cesium.JulianDate() + ) + this.viewer.clock.currentTime = positionTime + } + + destroy() { + if (this.entity) { + this.viewer.entities.remove(this.entity) + } + } + + entityVisible(visible) { + if (this.entity) { + this.entity.show = visible + } + } +} diff --git a/src/components/earth/gisTools/modelMove2.js b/src/components/earth/gisTools/modelMove2.js new file mode 100644 index 0000000..2435a0e --- /dev/null +++ b/src/components/earth/gisTools/modelMove2.js @@ -0,0 +1,23 @@ +function addAnimaticEntity() { + const startPosition = new Cesium.Cartesian3.fromDegrees(120.14046454, 30.27415039) + const endPosition = new Cesium.Cartesian3.fromDegrees(120.16701991, 30.27648221) + let factor = 0 + + // 添加模型 + const vehicleEntity = viewer.entities.add({ + position: new Cesium.CallbackProperty(function() { + if (factor > 5000) { + factor = 0 + } + factor++ + // 动态更新位置 + return Cesium.Cartesian3.lerp(startPosition, endPosition, factor / 5000.0, new Cesium.Cartesian3()) + }, false), + model: { + uri: '../.././icons/hz/model/car.glb', + scale: 1000.0 + } + }) + + viewer.trackedEntity = vehicleEntity +} diff --git a/src/components/earth/layerManager/layerManager.js b/src/components/earth/layerManager/layerManager.js new file mode 100644 index 0000000..0cc896a --- /dev/null +++ b/src/components/earth/layerManager/layerManager.js @@ -0,0 +1,61 @@ +/* eslint-disable no-undef */ +// const layerManager = { +// add3DTilesetByUrl (url) { +// const tileset = new Cesium.Cesium3DTileset({ url: '../scripts/Cesium/b/tileset.json' }) +// scene.primitives.add(tileset) +// viewer.zoomTo(tileset) +// } +// } +// export default layerManager + +class LayerManager { + constructor(viewer) { + this.viewer = viewer + this.tilesetList = [] + } + + async add3DTilesetByUrl(url, name) { + // const tileset = new Cesium.Cesium3DTileset({ url: url }) + const tileset = await Cesium.Cesium3DTileset.fromUrl(url, { + maximumScreenSpaceError: 16, + skipLevelOfDetail: true, + preferLeaves: true, + maximumMemoryUsage: 512 + }) + // const tileset = Cesium.Cesium3DTileset.fromUrl(url) + this.viewer.scene.primitives.add(tileset) + // const boundingSphere = tileset.boundingSphere + // const cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center)// 获取到倾斜数据中心点的经纬度坐标(弧度) + // const surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0)// 倾斜数据中心点的笛卡尔坐标 + // const positions = [Cesium.Cartographic.fromDegrees(cartographic.longitude, cartographic.latitude)] + // const promise = Cesium.sampleTerrainMostDetailed(terrainProvider, positions)// 其中terrainProvider是当前场景使用的高程Provider + // Cesium.when(promise, function (updatedPositions) { + // const terrainHeight = updatedPositions[0].height// 高程 + // const offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, terrainHeight)// 带高程的新笛卡尔坐标 + // const translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3())// 做差得到变换矩阵 + // tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation) + // }) + + this.tilesetList.push({ name, tileset }) + + this.viewer.zoomTo(tileset) + } + + addPoint(pointList) { + const logoUrl = '/img/monitor_icon.png' + pointList.forEach(point => { + const position = Cesium.Cartesian3.fromDegrees(point.longitude * 1, point.latitude * 1, point.height * 1) + const entity = viewer.entities.add({ + id: point?.id || null, + position: position, + billboard: { + image: logoUrl, + scaleByDistance: new Cesium.NearFarScalar(1.5e2, 0.5, 7.0e6, 0.0) + }, + props: point + }) + }) + } +} + +export default LayerManager diff --git a/src/components/earth/weatherManager/weatherManager.js b/src/components/earth/weatherManager/weatherManager.js new file mode 100644 index 0000000..f6f90d0 --- /dev/null +++ b/src/components/earth/weatherManager/weatherManager.js @@ -0,0 +1,420 @@ +/* eslint-disable no-undef */ +/* eslint-disable no-multi-str */ +class RainEffect { + constructor(viewer, options) { + if (!viewer) throw new Error('no viewer object!') + options = options || {} + // 倾斜角度,负数向右,正数向左 + this.tiltAngle = Cesium.defaultValue(options.tiltAngle, -0.6) + this.rainSize = Cesium.defaultValue(options.rainSize, 0.3) + this.rainSpeed = Cesium.defaultValue(options.rainSpeed, 6.0) + this.viewer = viewer + this.init() + } + + init() { + this.rainStage = new Cesium.PostProcessStage({ + name: 'czm_rain', + fragmentShader: this.rain(), + uniforms: { + tiltAngle: () => { + return this.tiltAngle + }, + rainSize: () => { + return this.rainSize + }, + rainSpeed: () => { + return this.rainSpeed + } + } + }) + this.viewer.scene.postProcessStages.add(this.rainStage) + } + + destroy() { + if (!this.viewer || !this.rainStage) return + this.viewer.scene.postProcessStages.remove(this.rainStage) + this.rainStage.destroy() + delete this.tiltAngle + delete this.rainSize + delete this.rainSpeed + } + + show(visible) { + this.rainStage.enabled = visible + } + + rain() { + return 'uniform sampler2D colorTexture;\n\ + in vec2 v_textureCoordinates;\n\ + uniform float tiltAngle;\n\ + uniform float rainSize;\n\ + uniform float rainSpeed;\n\ + float hash(float x) {\n\ + return fract(sin(x * 133.3) * 13.13);\n\ + }\n\ + out vec4 vFragColor;\n\ + void main(void) {\n\ + float time = czm_frameNumber / rainSpeed;\n\ + vec2 resolution = czm_viewport.zw;\n\ + vec2 uv = (gl_FragCoord.xy * 2. - resolution.xy) / min(resolution.x, resolution.y);\n\ + vec3 c = vec3(.6, .7, .8);\n\ + float a = tiltAngle;\n\ + float si = sin(a), co = cos(a);\n\ + uv *= mat2(co, -si, si, co);\n\ + uv *= length(uv + vec2(0, 4.9)) * rainSize + 1.;\n\ + float v = 1. - sin(hash(floor(uv.x * 100.)) * 2.);\n\ + float b = clamp(abs(sin(20. * time * v + uv.y * (5. / (2. + v)))) - .95, 0., 1.) * 20.;\n\ + c *= v * b;\n\ + vFragColor = mix(texture(colorTexture, v_textureCoordinates), vec4(c, 1), .5);\n\ + }\n\ + ' + } +} +// class RainEffect { +// constructor (viewer, options) { +// if (!viewer) throw new Error('no viewer object!') +// options = options || {} +// // 倾斜角度,负数向右,正数向左 +// this.tiltAngle = Cesium.defaultValue(options.tiltAngle, -0.6) +// this.rainSize = Cesium.defaultValue(options.rainSize, 0.3) +// this.rainSpeed = Cesium.defaultValue(options.rainSpeed, 60.0) +// this.viewer = viewer +// this.init() +// } + +// init () { +// this.rainStage = new Cesium.PostProcessStage({ +// name: 'czm_rain', +// fragmentShader: this.rain(), +// uniforms: { +// tiltAngle: () => { +// return this.tiltAngle +// }, +// rainSize: () => { +// return this.rainSize +// }, +// rainSpeed: () => { +// return this.rainSpeed +// } +// } +// }) +// this.viewer.scene.postProcessStages.add(this.rainStage) +// } + +// destroy () { +// if (!this.viewer || !this.rainStage) return +// this.viewer.scene.postProcessStages.remove(this.rainStage) +// this.rainStage.destroy() +// delete this.tiltAngle +// delete this.rainSize +// delete this.rainSpeed +// } + +// show (visible) { +// this.rainStage.enabled = visible +// } + +// rain () { +// return 'uniform sampler2D colorTexture;\n\ +// varying vec2 v_textureCoordinates;\n\ +// uniform float tiltAngle;\n\ +// uniform float rainSize;\n\ +// uniform float rainSpeed;\n\ +// float hash(float x) {\n\ +// return fract(sin(x * 133.3) * 13.13);\n\ +// }\n\ +// void main(void) {\n\ +// float time = czm_frameNumber / rainSpeed;\n\ +// vec2 resolution = czm_viewport.zw;\n\ +// vec2 uv = (gl_FragCoord.xy * 2. - resolution.xy) / min(resolution.x, resolution.y);\n\ +// vec3 c = vec3(.6, .7, .8);\n\ +// float a = tiltAngle;\n\ +// float si = sin(a), co = cos(a);\n\ +// uv *= mat2(co, -si, si, co);\n\ +// uv *= length(uv + vec2(0, 4.9)) * rainSize + 1.;\n\ +// float v = 1. - sin(hash(floor(uv.x * 100.)) * 2.);\n\ +// float b = clamp(abs(sin(20. * time * v + uv.y * (5. / (2. + v)))) - .95, 0., 1.) * 20.;\n\ +// c *= v * b;\n\ +// gl_FragColor = mix(texture2D(colorTexture, v_textureCoordinates), vec4(c, 1), .5);\n\ +// }\n\ +// ' +// } +// } + +class SnowEffect { + constructor(viewer, options) { + if (!viewer) throw new Error('no viewer object!') + options = options || {} + this.snowSize = Cesium.defaultValue(options.snowSize, 0.02) // 最好小于0.02 + this.snowSpeed = Cesium.defaultValue(options.snowSpeed, 60.0) + this.viewer = viewer + this.init() + } + + init() { + this.snowStage = new Cesium.PostProcessStage({ + name: 'czm_snow', + fragmentShader: this.snow(), + uniforms: { + snowSize: () => { + return this.snowSize + }, + snowSpeed: () => { + return this.snowSpeed + } + } + }) + this.viewer.scene.postProcessStages.add(this.snowStage) + } + + destroy() { + if (!this.viewer || !this.snowStage) return + this.viewer.scene.postProcessStages.remove(this.snowStage) + this.snowStage.destroy() + delete this.snowSize + delete this.snowSpeed + } + + show(visible) { + this.snowStage.enabled = visible + } + + snow() { + return 'uniform sampler2D colorTexture;\n\ + in vec2 v_textureCoordinates;\n\ + uniform float snowSpeed;\n\ + uniform float snowSize;\n\ + float snow(vec2 uv,float scale)\n\ + {\n\ + float time=czm_frameNumber/snowSpeed;\n\ + float w=smoothstep(1.,0.,-uv.y*(scale/10.));if(w<.1)return 0.;\n\ + uv+=time/scale;uv.y+=time*2./scale;uv.x+=sin(uv.y+time*.5)/scale;\n\ + uv*=scale;vec2 s=floor(uv),f=fract(uv),p;float k=3.,d;\n\ + p=.5+.35*sin(11.*fract(sin((s+p+scale)*mat2(7,3,6,5))*5.))-f;d=length(p);k=min(d,k);\n\ + k=smoothstep(0.,k,sin(f.x+f.y)*snowSize);\n\ + return k*w;\n\ + }\n\ + out vec4 vFragColor;\n\ + void main(void){\n\ + vec2 resolution=czm_viewport.zw;\n\ + vec2 uv=(gl_FragCoord.xy*2.-resolution.xy)/min(resolution.x,resolution.y);\n\ + vec3 finalColor=vec3(0);\n\ + //float c=smoothstep(1.,0.3,clamp(uv.y*.3+.8,0.,.75));\n\ + float c=0.;\n\ + c+=snow(uv,30.)*.0;\n\ + c+=snow(uv,20.)*.0;\n\ + c+=snow(uv,15.)*.0;\n\ + c+=snow(uv,10.);\n\ + c+=snow(uv,8.);\n\ + c+=snow(uv,6.);\n\ + c+=snow(uv,5.);\n\ + finalColor=(vec3(c));\n\ + vFragColor=mix(texture(colorTexture,v_textureCoordinates),vec4(finalColor,1),.5);\n\ + }\n\ + ' + } +} +// class SnowEffect { +// constructor (viewer, options) { +// if (!viewer) throw new Error('no viewer object!') +// options = options || {} +// this.snowSize = Cesium.defaultValue(options.snowSize, 0.02) // 最好小于0.02 +// this.snowSpeed = Cesium.defaultValue(options.snowSpeed, 60.0) +// this.viewer = viewer +// this.init() +// } + +// init () { +// this.snowStage = new Cesium.PostProcessStage({ +// name: 'czm_snow', +// fragmentShader: this.snow(), +// uniforms: { +// snowSize: () => { +// return this.snowSize +// }, +// snowSpeed: () => { +// return this.snowSpeed +// } +// } +// }) +// this.viewer.scene.postProcessStages.add(this.snowStage) +// } + +// destroy () { +// if (!this.viewer || !this.snowStage) return +// this.viewer.scene.postProcessStages.remove(this.snowStage) +// this.snowStage.destroy() +// delete this.snowSize +// delete this.snowSpeed +// } + +// show (visible) { +// this.snowStage.enabled = visible +// } + +// snow () { +// return 'uniform sampler2D colorTexture;\n\ +// varying vec2 v_textureCoordinates;\n\ +// uniform float snowSpeed;\n\ +// uniform float snowSize;\n\ +// float snow(vec2 uv,float scale)\n\ +// {\n\ +// float time=czm_frameNumber/snowSpeed;\n\ +// float w=smoothstep(1.,0.,-uv.y*(scale/10.));if(w<.1)return 0.;\n\ +// uv+=time/scale;uv.y+=time*2./scale;uv.x+=sin(uv.y+time*.5)/scale;\n\ +// uv*=scale;vec2 s=floor(uv),f=fract(uv),p;float k=3.,d;\n\ +// p=.5+.35*sin(11.*fract(sin((s+p+scale)*mat2(7,3,6,5))*5.))-f;d=length(p);k=min(d,k);\n\ +// k=smoothstep(0.,k,sin(f.x+f.y)*snowSize);\n\ +// return k*w;\n\ +// }\n\ +// void main(void){\n\ +// vec2 resolution=czm_viewport.zw;\n\ +// vec2 uv=(gl_FragCoord.xy*2.-resolution.xy)/min(resolution.x,resolution.y);\n\ +// vec3 finalColor=vec3(0);\n\ +// //float c=smoothstep(1.,0.3,clamp(uv.y*.3+.8,0.,.75));\n\ +// float c=0.;\n\ +// c+=snow(uv,30.)*.0;\n\ +// c+=snow(uv,20.)*.0;\n\ +// c+=snow(uv,15.)*.0;\n\ +// c+=snow(uv,10.);\n\ +// c+=snow(uv,8.);\n\ +// c+=snow(uv,6.);\n\ +// c+=snow(uv,5.);\n\ +// finalColor=(vec3(c));\n\ +// gl_FragColor=mix(texture2D(colorTexture,v_textureCoordinates),vec4(finalColor,1),.5);\n\ +// }\n\ +// ' +// } +// } + +class FogEffect { + constructor(viewer, options) { + if (!viewer) throw new Error('no viewer object!') + options = options || {} + this.visibility = Cesium.defaultValue(options.visibility, 0.1) + this.color = Cesium.defaultValue(options.color, + new Cesium.Color(0.8, 0.8, 0.8, 0.5)) + this._show = Cesium.defaultValue(options.show, !0) + this.viewer = viewer + this.init() + } + + init() { + this.fogStage = new Cesium.PostProcessStage({ + name: 'czm_fog', + fragmentShader: this.fog(), + uniforms: { + visibility: () => { + return this.visibility + }, + fogColor: () => { + return this.color + } + } + }) + this.viewer.scene.postProcessStages.add(this.fogStage) + } + + destroy() { + if (!this.viewer || !this.fogStage) return + this.viewer.scene.postProcessStages.remove(this.fogStage) + this.fogStage.destroy() + delete this.visibility + delete this.color + } + + show(visible) { + this._show = visible + this.fogStage.enabled = this._show + } + + fog() { + return 'uniform sampler2D colorTexture;\n\ + uniform sampler2D depthTexture;\n\ + uniform float visibility;\n\ + uniform vec4 fogColor;\n\ + in vec2 v_textureCoordinates; \n\ + out vec4 vFragColor; \n\ + void main(void) \n\ + { \n\ + vec4 origcolor = texture(colorTexture, v_textureCoordinates); \n\ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); \n\ + vec4 depthcolor = texture(depthTexture, v_textureCoordinates); \n\ + float f = visibility * (depthcolor.r - 0.3) / 0.2; \n\ + if (f < 0.0) f = 0.0; \n\ + else if (f > 1.0) f = 1.0; \n\ + vFragColor = mix(origcolor, fogColor, f); \n\ + }\n' + } +} +// class FogEffect { +// constructor (viewer, options) { +// if (!viewer) throw new Error('no viewer object!') +// options = options || {} +// this.visibility = Cesium.defaultValue(options.visibility, 0.1) +// this.color = Cesium.defaultValue(options.color, +// new Cesium.Color(0.8, 0.8, 0.8, 0.5)) +// this._show = Cesium.defaultValue(options.show, !0) +// this.viewer = viewer +// this.init() +// } + +// init () { +// this.fogStage = new Cesium.PostProcessStage({ +// name: 'czm_fog', +// fragmentShader: this.fog(), +// uniforms: { +// visibility: () => { +// return this.visibility +// }, +// fogColor: () => { +// return this.color +// } +// } +// }) +// this.viewer.scene.postProcessStages.add(this.fogStage) +// } + +// destroy () { +// if (!this.viewer || !this.fogStage) return +// this.viewer.scene.postProcessStages.remove(this.fogStage) +// this.fogStage.destroy() +// delete this.visibility +// delete this.color +// } + +// show (visible) { +// this._show = visible +// this.fogStage.enabled = this._show +// } + +// fog () { +// return 'uniform sampler2D colorTexture;\n\ +// uniform sampler2D depthTexture;\n\ +// uniform float visibility;\n\ +// uniform vec4 fogColor;\n\ +// varying vec2 v_textureCoordinates; \n\ +// void main(void) \n\ +// { \n\ +// vec4 origcolor = texture2D(colorTexture, v_textureCoordinates); \n\ +// float depth = czm_readDepth(depthTexture, v_textureCoordinates); \n\ +// vec4 depthcolor = texture2D(depthTexture, v_textureCoordinates); \n\ +// float f = visibility * (depthcolor.r - 0.3) / 0.2; \n\ +// if (f < 0.0) f = 0.0; \n\ +// else if (f > 1.0) f = 1.0; \n\ +// gl_FragColor = mix(origcolor, fogColor, f); \n\ +// }\n' +// } +// } + +Cesium.FogEffect = FogEffect + +Cesium.SnowEffect = SnowEffect + +Cesium.RainEffect = RainEffect + +const WeahterManager = { + FogEffect, SnowEffect, RainEffect +} +export default WeahterManager